@swisspost/internet-header 1.5.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (508) hide show
  1. package/LICENSE +202 -0
  2. package/dist/cjs/_commonjsHelpers-537d719a.js +22 -0
  3. package/dist/cjs/_commonjsHelpers-537d719a.js.map +1 -0
  4. package/dist/cjs/bodyScrollLock.esm-59f17217.js +285 -0
  5. package/dist/cjs/bodyScrollLock.esm-59f17217.js.map +1 -0
  6. package/dist/cjs/if.component-313f59b8.js +12 -0
  7. package/dist/cjs/if.component-313f59b8.js.map +1 -0
  8. package/dist/cjs/index-5751975e.js +1735 -0
  9. package/dist/cjs/index-5751975e.js.map +1 -0
  10. package/dist/cjs/index-e7245d60.js +144 -0
  11. package/dist/cjs/index-e7245d60.js.map +1 -0
  12. package/dist/cjs/index.cjs.js +4 -0
  13. package/dist/cjs/index.cjs.js.map +1 -0
  14. package/dist/cjs/klp-widget.controller-675b23db.js +15862 -0
  15. package/dist/cjs/klp-widget.controller-675b23db.js.map +1 -0
  16. package/dist/cjs/language.service-a80ae01d.js +152 -0
  17. package/dist/cjs/language.service-a80ae01d.js.map +1 -0
  18. package/dist/cjs/loader.cjs.js +24 -0
  19. package/dist/cjs/loader.cjs.js.map +1 -0
  20. package/dist/cjs/post-klp-login-widget.cjs.entry.js +46 -0
  21. package/dist/cjs/post-klp-login-widget.cjs.entry.js.map +1 -0
  22. package/dist/cjs/post-language-switch.cjs.entry.js +103 -0
  23. package/dist/cjs/post-language-switch.cjs.entry.js.map +1 -0
  24. package/dist/cjs/post-logo.cjs.entry.js +67 -0
  25. package/dist/cjs/post-logo.cjs.entry.js.map +1 -0
  26. package/dist/cjs/post-main-navigation.cjs.entry.js +243 -0
  27. package/dist/cjs/post-main-navigation.cjs.entry.js.map +1 -0
  28. package/dist/cjs/post-meta-navigation.cjs.entry.js +28 -0
  29. package/dist/cjs/post-meta-navigation.cjs.entry.js.map +1 -0
  30. package/dist/cjs/post-search.cjs.entry.js +2739 -0
  31. package/dist/cjs/post-search.cjs.entry.js.map +1 -0
  32. package/dist/cjs/post-skiplinks.cjs.entry.js +54 -0
  33. package/dist/cjs/post-skiplinks.cjs.entry.js.map +1 -0
  34. package/dist/cjs/store-47e14589.js +202 -0
  35. package/dist/cjs/store-47e14589.js.map +1 -0
  36. package/dist/cjs/svg-icon.component-10fbda11.js +10 -0
  37. package/dist/cjs/svg-icon.component-10fbda11.js.map +1 -0
  38. package/dist/cjs/svg-sprite.component-c3b454b3.js +48 -0
  39. package/dist/cjs/svg-sprite.component-c3b454b3.js.map +1 -0
  40. package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js +3488 -0
  41. package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js.map +1 -0
  42. package/dist/cjs/swisspost-internet-footer.cjs.entry.js +148 -0
  43. package/dist/cjs/swisspost-internet-footer.cjs.entry.js.map +1 -0
  44. package/dist/cjs/swisspost-internet-header.cjs.entry.js +704 -0
  45. package/dist/cjs/swisspost-internet-header.cjs.entry.js.map +1 -0
  46. package/dist/cjs/swisspost-internet-header.cjs.js +28 -0
  47. package/dist/cjs/swisspost-internet-header.cjs.js.map +1 -0
  48. package/dist/cjs/ui.service-db4a8252.js +35 -0
  49. package/dist/cjs/ui.service-db4a8252.js.map +1 -0
  50. package/dist/cjs/utils-b6014257.js +22 -0
  51. package/dist/cjs/utils-b6014257.js.map +1 -0
  52. package/dist/collection/assets/config/test-configuration.json +4067 -0
  53. package/dist/collection/assets/i18n/translations.js +38 -0
  54. package/dist/collection/assets/i18n/translations.js.map +1 -0
  55. package/dist/collection/assets/js/klp-login-widget.js +1716 -0
  56. package/dist/collection/assets/js/sockjs-client.js +5134 -0
  57. package/dist/collection/collection-manifest.json +27 -0
  58. package/dist/collection/components/post-internet-breadcrumbs/components/breadcrumb-list.component.js +11 -0
  59. package/dist/collection/components/post-internet-breadcrumbs/components/breadcrumb-list.component.js.map +1 -0
  60. package/dist/collection/components/post-internet-breadcrumbs/components/focus-trap.component.js +42 -0
  61. package/dist/collection/components/post-internet-breadcrumbs/components/focus-trap.component.js.map +1 -0
  62. package/dist/collection/components/post-internet-breadcrumbs/components/middle-dropdown.component.js +8 -0
  63. package/dist/collection/components/post-internet-breadcrumbs/components/middle-dropdown.component.js.map +1 -0
  64. package/dist/collection/components/post-internet-breadcrumbs/components/middle-links.component.js +6 -0
  65. package/dist/collection/components/post-internet-breadcrumbs/components/middle-links.component.js.map +1 -0
  66. package/dist/collection/components/post-internet-breadcrumbs/components/overlay.component.js +12 -0
  67. package/dist/collection/components/post-internet-breadcrumbs/components/overlay.component.js.map +1 -0
  68. package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.css +2724 -0
  69. package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.js +253 -0
  70. package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.js.map +1 -0
  71. package/dist/collection/components/post-internet-footer/components/post-footer-block-address.component.js +12 -0
  72. package/dist/collection/components/post-internet-footer/components/post-footer-block-address.component.js.map +1 -0
  73. package/dist/collection/components/post-internet-footer/components/post-footer-block-contact.component.js +24 -0
  74. package/dist/collection/components/post-internet-footer/components/post-footer-block-contact.component.js.map +1 -0
  75. package/dist/collection/components/post-internet-footer/components/post-footer-block-custom.component.js +6 -0
  76. package/dist/collection/components/post-internet-footer/components/post-footer-block-custom.component.js.map +1 -0
  77. package/dist/collection/components/post-internet-footer/components/post-footer-block-list.component.js +6 -0
  78. package/dist/collection/components/post-internet-footer/components/post-footer-block-list.component.js.map +1 -0
  79. package/dist/collection/components/post-internet-footer/components/post-footer-block-socials.component.js +5 -0
  80. package/dist/collection/components/post-internet-footer/components/post-footer-block-socials.component.js.map +1 -0
  81. package/dist/collection/components/post-internet-footer/post-internet-footer.css +2501 -0
  82. package/dist/collection/components/post-internet-footer/post-internet-footer.js +86 -0
  83. package/dist/collection/components/post-internet-footer/post-internet-footer.js.map +1 -0
  84. package/dist/collection/components/post-internet-header/post-internet-header.css +340 -0
  85. package/dist/collection/components/post-internet-header/post-internet-header.js +676 -0
  86. package/dist/collection/components/post-internet-header/post-internet-header.js.map +1 -0
  87. package/dist/collection/components/post-klp-login-widget/klp-widget.controller.js +14 -0
  88. package/dist/collection/components/post-klp-login-widget/klp-widget.controller.js.map +1 -0
  89. package/dist/collection/components/post-klp-login-widget/post-klp-login-widget.css +1341 -0
  90. package/dist/collection/components/post-klp-login-widget/post-klp-login-widget.js +67 -0
  91. package/dist/collection/components/post-klp-login-widget/post-klp-login-widget.js.map +1 -0
  92. package/dist/collection/components/post-language-switch/components/post-language-switch-list.js +9 -0
  93. package/dist/collection/components/post-language-switch/components/post-language-switch-list.js.map +1 -0
  94. package/dist/collection/components/post-language-switch/post-language-switch.css +321 -0
  95. package/dist/collection/components/post-language-switch/post-language-switch.js +186 -0
  96. package/dist/collection/components/post-language-switch/post-language-switch.js.map +1 -0
  97. package/dist/collection/components/post-logo/logo-sprite.component.js +4 -0
  98. package/dist/collection/components/post-logo/logo-sprite.component.js.map +1 -0
  99. package/dist/collection/components/post-logo/post-logo.css +239 -0
  100. package/dist/collection/components/post-logo/post-logo.js +60 -0
  101. package/dist/collection/components/post-logo/post-logo.js.map +1 -0
  102. package/dist/collection/components/post-main-navigation/components/level-one-action.component.js +13 -0
  103. package/dist/collection/components/post-main-navigation/components/level-one-action.component.js.map +1 -0
  104. package/dist/collection/components/post-main-navigation/post-main-navigation.css +592 -0
  105. package/dist/collection/components/post-main-navigation/post-main-navigation.js +347 -0
  106. package/dist/collection/components/post-main-navigation/post-main-navigation.js.map +1 -0
  107. package/dist/collection/components/post-meta-navigation/post-meta-navigation.css +290 -0
  108. package/dist/collection/components/post-meta-navigation/post-meta-navigation.js +67 -0
  109. package/dist/collection/components/post-meta-navigation/post-meta-navigation.js.map +1 -0
  110. package/dist/collection/components/post-search/post-search.css +3028 -0
  111. package/dist/collection/components/post-search/post-search.js +362 -0
  112. package/dist/collection/components/post-search/post-search.js.map +1 -0
  113. package/dist/collection/components/post-skiplinks/post-skiplinks.css +20 -0
  114. package/dist/collection/components/post-skiplinks/post-skiplinks.js +51 -0
  115. package/dist/collection/components/post-skiplinks/post-skiplinks.js.map +1 -0
  116. package/dist/collection/data/store.js +11 -0
  117. package/dist/collection/data/store.js.map +1 -0
  118. package/dist/collection/index.js +2 -0
  119. package/dist/collection/index.js.map +1 -0
  120. package/dist/collection/models/breadcrumbs.model.js +2 -0
  121. package/dist/collection/models/breadcrumbs.model.js.map +1 -0
  122. package/dist/collection/models/coveo.model.js +2 -0
  123. package/dist/collection/models/coveo.model.js.map +1 -0
  124. package/dist/collection/models/footer.model.js +2 -0
  125. package/dist/collection/models/footer.model.js.map +1 -0
  126. package/dist/collection/models/general.model.js +2 -0
  127. package/dist/collection/models/general.model.js.map +1 -0
  128. package/dist/collection/models/geocode.model.js +10 -0
  129. package/dist/collection/models/geocode.model.js.map +1 -0
  130. package/dist/collection/models/header.model.js +2 -0
  131. package/dist/collection/models/header.model.js.map +1 -0
  132. package/dist/collection/models/implementor.model.js +2 -0
  133. package/dist/collection/models/implementor.model.js.map +1 -0
  134. package/dist/collection/models/language.model.js +2 -0
  135. package/dist/collection/models/language.model.js.map +1 -0
  136. package/dist/collection/models/track-and-trace.model.js +2 -0
  137. package/dist/collection/models/track-and-trace.model.js.map +1 -0
  138. package/dist/collection/services/config.service.js +170 -0
  139. package/dist/collection/services/config.service.js.map +1 -0
  140. package/dist/collection/services/language.service.js +107 -0
  141. package/dist/collection/services/language.service.js.map +1 -0
  142. package/dist/collection/services/route.service.js +163 -0
  143. package/dist/collection/services/route.service.js.map +1 -0
  144. package/dist/collection/services/search/coveo.service.js +34 -0
  145. package/dist/collection/services/search/coveo.service.js.map +1 -0
  146. package/dist/collection/services/search/coveo.settings.js +19 -0
  147. package/dist/collection/services/search/coveo.settings.js.map +1 -0
  148. package/dist/collection/services/search/parcel.service.js +54 -0
  149. package/dist/collection/services/search/parcel.service.js.map +1 -0
  150. package/dist/collection/services/search/places.service.js +95 -0
  151. package/dist/collection/services/search/places.service.js.map +1 -0
  152. package/dist/collection/services/search/places.settings.js +16 -0
  153. package/dist/collection/services/search/places.settings.js.map +1 -0
  154. package/dist/collection/services/search/search-utilities.js +26 -0
  155. package/dist/collection/services/search/search-utilities.js.map +1 -0
  156. package/dist/collection/services/search/search.service.js +42 -0
  157. package/dist/collection/services/search/search.service.js.map +1 -0
  158. package/dist/collection/services/ui.service.js +30 -0
  159. package/dist/collection/services/ui.service.js.map +1 -0
  160. package/dist/collection/tests/setup-tests.js +14 -0
  161. package/dist/collection/tests/setup-tests.js.map +1 -0
  162. package/dist/collection/utils/highlighted.component.js +11 -0
  163. package/dist/collection/utils/highlighted.component.js.map +1 -0
  164. package/dist/collection/utils/if.component.js +7 -0
  165. package/dist/collection/utils/if.component.js.map +1 -0
  166. package/dist/collection/utils/svg-icon.component.js +3 -0
  167. package/dist/collection/utils/svg-icon.component.js.map +1 -0
  168. package/dist/collection/utils/svg-sprite.component.js +3 -0
  169. package/dist/collection/utils/svg-sprite.component.js.map +1 -0
  170. package/dist/collection/utils/utils.js +16 -0
  171. package/dist/collection/utils/utils.js.map +1 -0
  172. package/dist/components/_commonjsHelpers.js +19 -0
  173. package/dist/components/_commonjsHelpers.js.map +1 -0
  174. package/dist/components/bodyScrollLock.esm.js +281 -0
  175. package/dist/components/bodyScrollLock.esm.js.map +1 -0
  176. package/dist/components/index.d.ts +39 -0
  177. package/dist/components/index.js +36 -0
  178. package/dist/components/index.js.map +1 -0
  179. package/dist/components/index2.js +141 -0
  180. package/dist/components/index2.js.map +1 -0
  181. package/dist/components/klp-widget.controller.js +15860 -0
  182. package/dist/components/klp-widget.controller.js.map +1 -0
  183. package/dist/components/language.service.js +148 -0
  184. package/dist/components/language.service.js.map +1 -0
  185. package/dist/components/post-klp-login-widget.d.ts +11 -0
  186. package/dist/components/post-klp-login-widget.js +8 -0
  187. package/dist/components/post-klp-login-widget.js.map +1 -0
  188. package/dist/components/post-klp-login-widget2.js +59 -0
  189. package/dist/components/post-klp-login-widget2.js.map +1 -0
  190. package/dist/components/post-language-switch.d.ts +11 -0
  191. package/dist/components/post-language-switch.js +8 -0
  192. package/dist/components/post-language-switch.js.map +1 -0
  193. package/dist/components/post-language-switch2.js +118 -0
  194. package/dist/components/post-language-switch2.js.map +1 -0
  195. package/dist/components/post-logo.d.ts +11 -0
  196. package/dist/components/post-logo.js +8 -0
  197. package/dist/components/post-logo.js.map +1 -0
  198. package/dist/components/post-logo2.js +80 -0
  199. package/dist/components/post-logo2.js.map +1 -0
  200. package/dist/components/post-main-navigation.d.ts +11 -0
  201. package/dist/components/post-main-navigation.js +8 -0
  202. package/dist/components/post-main-navigation.js.map +1 -0
  203. package/dist/components/post-main-navigation2.js +260 -0
  204. package/dist/components/post-main-navigation2.js.map +1 -0
  205. package/dist/components/post-meta-navigation.d.ts +11 -0
  206. package/dist/components/post-meta-navigation.js +8 -0
  207. package/dist/components/post-meta-navigation.js.map +1 -0
  208. package/dist/components/post-meta-navigation2.js +42 -0
  209. package/dist/components/post-meta-navigation2.js.map +1 -0
  210. package/dist/components/post-search.d.ts +11 -0
  211. package/dist/components/post-search.js +8 -0
  212. package/dist/components/post-search.js.map +1 -0
  213. package/dist/components/post-search2.js +2763 -0
  214. package/dist/components/post-search2.js.map +1 -0
  215. package/dist/components/post-skiplinks.d.ts +11 -0
  216. package/dist/components/post-skiplinks.js +8 -0
  217. package/dist/components/post-skiplinks.js.map +1 -0
  218. package/dist/components/post-skiplinks2.js +64 -0
  219. package/dist/components/post-skiplinks2.js.map +1 -0
  220. package/dist/components/store.js +199 -0
  221. package/dist/components/store.js.map +1 -0
  222. package/dist/components/svg-icon.component.js +8 -0
  223. package/dist/components/svg-icon.component.js.map +1 -0
  224. package/dist/components/svg-sprite.component.js +46 -0
  225. package/dist/components/svg-sprite.component.js.map +1 -0
  226. package/dist/components/swisspost-internet-breadcrumbs.d.ts +11 -0
  227. package/dist/components/swisspost-internet-breadcrumbs.js +3509 -0
  228. package/dist/components/swisspost-internet-breadcrumbs.js.map +1 -0
  229. package/dist/components/swisspost-internet-footer.d.ts +11 -0
  230. package/dist/components/swisspost-internet-footer.js +164 -0
  231. package/dist/components/swisspost-internet-footer.js.map +1 -0
  232. package/dist/components/swisspost-internet-header.d.ts +11 -0
  233. package/dist/components/swisspost-internet-header.js +779 -0
  234. package/dist/components/swisspost-internet-header.js.map +1 -0
  235. package/dist/components/ui.service.js +32 -0
  236. package/dist/components/ui.service.js.map +1 -0
  237. package/dist/components/utils.js +19 -0
  238. package/dist/components/utils.js.map +1 -0
  239. package/dist/esm/_commonjsHelpers-9943807e.js +19 -0
  240. package/dist/esm/_commonjsHelpers-9943807e.js.map +1 -0
  241. package/dist/esm/bodyScrollLock.esm-afcc00e3.js +281 -0
  242. package/dist/esm/bodyScrollLock.esm-afcc00e3.js.map +1 -0
  243. package/dist/esm/if.component-542fb8c3.js +10 -0
  244. package/dist/esm/if.component-542fb8c3.js.map +1 -0
  245. package/dist/esm/index-066666f4.js +1704 -0
  246. package/dist/esm/index-066666f4.js.map +1 -0
  247. package/dist/esm/index-a75df186.js +141 -0
  248. package/dist/esm/index-a75df186.js.map +1 -0
  249. package/dist/esm/index.js +3 -0
  250. package/dist/esm/index.js.map +1 -0
  251. package/dist/esm/klp-widget.controller-be1eeb16.js +15860 -0
  252. package/dist/esm/klp-widget.controller-be1eeb16.js.map +1 -0
  253. package/dist/esm/language.service-e49858e0.js +148 -0
  254. package/dist/esm/language.service-e49858e0.js.map +1 -0
  255. package/dist/esm/loader.js +20 -0
  256. package/dist/esm/loader.js.map +1 -0
  257. package/dist/esm/polyfills/core-js.js +11 -0
  258. package/dist/esm/polyfills/css-shim.js +1 -0
  259. package/dist/esm/polyfills/dom.js +79 -0
  260. package/dist/esm/polyfills/es5-html-element.js +1 -0
  261. package/dist/esm/polyfills/index.js +34 -0
  262. package/dist/esm/polyfills/system.js +6 -0
  263. package/dist/esm/post-klp-login-widget.entry.js +42 -0
  264. package/dist/esm/post-klp-login-widget.entry.js.map +1 -0
  265. package/dist/esm/post-language-switch.entry.js +99 -0
  266. package/dist/esm/post-language-switch.entry.js.map +1 -0
  267. package/dist/esm/post-logo.entry.js +63 -0
  268. package/dist/esm/post-logo.entry.js.map +1 -0
  269. package/dist/esm/post-main-navigation.entry.js +239 -0
  270. package/dist/esm/post-main-navigation.entry.js.map +1 -0
  271. package/dist/esm/post-meta-navigation.entry.js +24 -0
  272. package/dist/esm/post-meta-navigation.entry.js.map +1 -0
  273. package/dist/esm/post-search.entry.js +2735 -0
  274. package/dist/esm/post-search.entry.js.map +1 -0
  275. package/dist/esm/post-skiplinks.entry.js +50 -0
  276. package/dist/esm/post-skiplinks.entry.js.map +1 -0
  277. package/dist/esm/store-d495dc07.js +199 -0
  278. package/dist/esm/store-d495dc07.js.map +1 -0
  279. package/dist/esm/svg-icon.component-1b1b27a2.js +8 -0
  280. package/dist/esm/svg-icon.component-1b1b27a2.js.map +1 -0
  281. package/dist/esm/svg-sprite.component-ec0ac38c.js +46 -0
  282. package/dist/esm/svg-sprite.component-ec0ac38c.js.map +1 -0
  283. package/dist/esm/swisspost-internet-breadcrumbs.entry.js +3484 -0
  284. package/dist/esm/swisspost-internet-breadcrumbs.entry.js.map +1 -0
  285. package/dist/esm/swisspost-internet-footer.entry.js +144 -0
  286. package/dist/esm/swisspost-internet-footer.entry.js.map +1 -0
  287. package/dist/esm/swisspost-internet-header.entry.js +700 -0
  288. package/dist/esm/swisspost-internet-header.entry.js.map +1 -0
  289. package/dist/esm/swisspost-internet-header.js +23 -0
  290. package/dist/esm/swisspost-internet-header.js.map +1 -0
  291. package/dist/esm/ui.service-1d9b0f51.js +32 -0
  292. package/dist/esm/ui.service-1d9b0f51.js.map +1 -0
  293. package/dist/esm/utils-5bf107ff.js +19 -0
  294. package/dist/esm/utils-5bf107ff.js.map +1 -0
  295. package/dist/esm-es5/_commonjsHelpers-9943807e.js +2 -0
  296. package/dist/esm-es5/_commonjsHelpers-9943807e.js.map +1 -0
  297. package/dist/esm-es5/bodyScrollLock.esm-afcc00e3.js +2 -0
  298. package/dist/esm-es5/bodyScrollLock.esm-afcc00e3.js.map +1 -0
  299. package/dist/esm-es5/if.component-542fb8c3.js +2 -0
  300. package/dist/esm-es5/if.component-542fb8c3.js.map +1 -0
  301. package/dist/esm-es5/index-066666f4.js +3 -0
  302. package/dist/esm-es5/index-066666f4.js.map +1 -0
  303. package/dist/esm-es5/index-a75df186.js +2 -0
  304. package/dist/esm-es5/index-a75df186.js.map +1 -0
  305. package/dist/esm-es5/index.js +2 -0
  306. package/dist/esm-es5/index.js.map +1 -0
  307. package/dist/esm-es5/klp-widget.controller-be1eeb16.js +27 -0
  308. package/dist/esm-es5/klp-widget.controller-be1eeb16.js.map +1 -0
  309. package/dist/esm-es5/language.service-e49858e0.js +2 -0
  310. package/dist/esm-es5/language.service-e49858e0.js.map +1 -0
  311. package/dist/esm-es5/loader.js +2 -0
  312. package/dist/esm-es5/loader.js.map +1 -0
  313. package/dist/esm-es5/post-klp-login-widget.entry.js +2 -0
  314. package/dist/esm-es5/post-klp-login-widget.entry.js.map +1 -0
  315. package/dist/esm-es5/post-language-switch.entry.js +2 -0
  316. package/dist/esm-es5/post-language-switch.entry.js.map +1 -0
  317. package/dist/esm-es5/post-logo.entry.js +2 -0
  318. package/dist/esm-es5/post-logo.entry.js.map +1 -0
  319. package/dist/esm-es5/post-main-navigation.entry.js +2 -0
  320. package/dist/esm-es5/post-main-navigation.entry.js.map +1 -0
  321. package/dist/esm-es5/post-meta-navigation.entry.js +2 -0
  322. package/dist/esm-es5/post-meta-navigation.entry.js.map +1 -0
  323. package/dist/esm-es5/post-search.entry.js +2 -0
  324. package/dist/esm-es5/post-search.entry.js.map +1 -0
  325. package/dist/esm-es5/post-skiplinks.entry.js +2 -0
  326. package/dist/esm-es5/post-skiplinks.entry.js.map +1 -0
  327. package/dist/esm-es5/store-d495dc07.js +2 -0
  328. package/dist/esm-es5/store-d495dc07.js.map +1 -0
  329. package/dist/esm-es5/svg-icon.component-1b1b27a2.js +2 -0
  330. package/dist/esm-es5/svg-icon.component-1b1b27a2.js.map +1 -0
  331. package/dist/esm-es5/svg-sprite.component-ec0ac38c.js +2 -0
  332. package/dist/esm-es5/svg-sprite.component-ec0ac38c.js.map +1 -0
  333. package/dist/esm-es5/swisspost-internet-breadcrumbs.entry.js +6 -0
  334. package/dist/esm-es5/swisspost-internet-breadcrumbs.entry.js.map +1 -0
  335. package/dist/esm-es5/swisspost-internet-footer.entry.js +2 -0
  336. package/dist/esm-es5/swisspost-internet-footer.entry.js.map +1 -0
  337. package/dist/esm-es5/swisspost-internet-header.entry.js +2 -0
  338. package/dist/esm-es5/swisspost-internet-header.entry.js.map +1 -0
  339. package/dist/esm-es5/swisspost-internet-header.js +2 -0
  340. package/dist/esm-es5/swisspost-internet-header.js.map +1 -0
  341. package/dist/esm-es5/ui.service-1d9b0f51.js +2 -0
  342. package/dist/esm-es5/ui.service-1d9b0f51.js.map +1 -0
  343. package/dist/esm-es5/utils-5bf107ff.js +2 -0
  344. package/dist/esm-es5/utils-5bf107ff.js.map +1 -0
  345. package/dist/index.cjs.js +1 -0
  346. package/dist/index.js +1 -0
  347. package/dist/swisspost-internet-header/assets/config/test-configuration.json +4067 -0
  348. package/dist/swisspost-internet-header/index.esm.js +2 -0
  349. package/dist/swisspost-internet-header/index.esm.js.map +1 -0
  350. package/dist/swisspost-internet-header/p-00fd320e.entry.js +2 -0
  351. package/dist/swisspost-internet-header/p-00fd320e.entry.js.map +1 -0
  352. package/dist/swisspost-internet-header/p-0e2ec555.js +2 -0
  353. package/dist/swisspost-internet-header/p-0e2ec555.js.map +1 -0
  354. package/dist/swisspost-internet-header/p-112455b1.js +2 -0
  355. package/dist/swisspost-internet-header/p-112455b1.js.map +1 -0
  356. package/dist/swisspost-internet-header/p-17a47667.system.js +2 -0
  357. package/dist/swisspost-internet-header/p-17a47667.system.js.map +1 -0
  358. package/dist/swisspost-internet-header/p-1b8f9bc8.system.js +3 -0
  359. package/dist/swisspost-internet-header/p-1b8f9bc8.system.js.map +1 -0
  360. package/dist/swisspost-internet-header/p-2eb04045.entry.js +2 -0
  361. package/dist/swisspost-internet-header/p-2eb04045.entry.js.map +1 -0
  362. package/dist/swisspost-internet-header/p-3ba40afe.js +2 -0
  363. package/dist/swisspost-internet-header/p-3ba40afe.js.map +1 -0
  364. package/dist/swisspost-internet-header/p-3eb881c3.js +2 -0
  365. package/dist/swisspost-internet-header/p-3eb881c3.js.map +1 -0
  366. package/dist/swisspost-internet-header/p-43cbbf42.entry.js +2 -0
  367. package/dist/swisspost-internet-header/p-43cbbf42.entry.js.map +1 -0
  368. package/dist/swisspost-internet-header/p-4654b2af.system.js +2 -0
  369. package/dist/swisspost-internet-header/p-4654b2af.system.js.map +1 -0
  370. package/dist/swisspost-internet-header/p-4c9ec2d8.system.js +27 -0
  371. package/dist/swisspost-internet-header/p-4c9ec2d8.system.js.map +1 -0
  372. package/dist/swisspost-internet-header/p-5032057e.js +3 -0
  373. package/dist/swisspost-internet-header/p-5032057e.js.map +1 -0
  374. package/dist/swisspost-internet-header/p-50ea2036.system.js +2 -0
  375. package/dist/swisspost-internet-header/p-50ea2036.system.js.map +1 -0
  376. package/dist/swisspost-internet-header/p-549b62ba.system.js +2 -0
  377. package/dist/swisspost-internet-header/p-549b62ba.system.js.map +1 -0
  378. package/dist/swisspost-internet-header/p-5e43c5e0.js +2 -0
  379. package/dist/swisspost-internet-header/p-5e43c5e0.js.map +1 -0
  380. package/dist/swisspost-internet-header/p-69c64c29.js +2 -0
  381. package/dist/swisspost-internet-header/p-69c64c29.js.map +1 -0
  382. package/dist/swisspost-internet-header/p-6a09e0b4.system.entry.js +2 -0
  383. package/dist/swisspost-internet-header/p-6a09e0b4.system.entry.js.map +1 -0
  384. package/dist/swisspost-internet-header/p-74932c29.entry.js +6 -0
  385. package/dist/swisspost-internet-header/p-74932c29.entry.js.map +1 -0
  386. package/dist/swisspost-internet-header/p-76ce4acc.system.entry.js +2 -0
  387. package/dist/swisspost-internet-header/p-76ce4acc.system.entry.js.map +1 -0
  388. package/dist/swisspost-internet-header/p-78f653be.system.entry.js +2 -0
  389. package/dist/swisspost-internet-header/p-78f653be.system.entry.js.map +1 -0
  390. package/dist/swisspost-internet-header/p-7e653a26.js +27 -0
  391. package/dist/swisspost-internet-header/p-7e653a26.js.map +1 -0
  392. package/dist/swisspost-internet-header/p-7f16a46b.entry.js +2 -0
  393. package/dist/swisspost-internet-header/p-7f16a46b.entry.js.map +1 -0
  394. package/dist/swisspost-internet-header/p-8717445f.entry.js +2 -0
  395. package/dist/swisspost-internet-header/p-8717445f.entry.js.map +1 -0
  396. package/dist/swisspost-internet-header/p-883f9547.system.entry.js +2 -0
  397. package/dist/swisspost-internet-header/p-883f9547.system.entry.js.map +1 -0
  398. package/dist/swisspost-internet-header/p-9509f6c7.system.js +2 -0
  399. package/dist/swisspost-internet-header/p-9509f6c7.system.js.map +1 -0
  400. package/dist/swisspost-internet-header/p-9d0a7039.entry.js +2 -0
  401. package/dist/swisspost-internet-header/p-9d0a7039.entry.js.map +1 -0
  402. package/dist/swisspost-internet-header/p-a119b38d.js +2 -0
  403. package/dist/swisspost-internet-header/p-a119b38d.js.map +1 -0
  404. package/dist/swisspost-internet-header/p-a4160d23.entry.js +2 -0
  405. package/dist/swisspost-internet-header/p-a4160d23.entry.js.map +1 -0
  406. package/dist/swisspost-internet-header/p-a51ad207.system.entry.js +2 -0
  407. package/dist/swisspost-internet-header/p-a51ad207.system.entry.js.map +1 -0
  408. package/dist/swisspost-internet-header/p-a9c4b2d0.system.entry.js +2 -0
  409. package/dist/swisspost-internet-header/p-a9c4b2d0.system.entry.js.map +1 -0
  410. package/dist/swisspost-internet-header/p-b3014611.system.js +2 -0
  411. package/dist/swisspost-internet-header/p-b3014611.system.js.map +1 -0
  412. package/dist/swisspost-internet-header/p-bdabd6ac.js +2 -0
  413. package/dist/swisspost-internet-header/p-bdabd6ac.js.map +1 -0
  414. package/dist/swisspost-internet-header/p-bdfd2460.entry.js +2 -0
  415. package/dist/swisspost-internet-header/p-bdfd2460.entry.js.map +1 -0
  416. package/dist/swisspost-internet-header/p-c29ec122.system.js +2 -0
  417. package/dist/swisspost-internet-header/p-c29ec122.system.js.map +1 -0
  418. package/dist/swisspost-internet-header/p-c69923cd.system.js +2 -0
  419. package/dist/swisspost-internet-header/p-c69923cd.system.js.map +1 -0
  420. package/dist/swisspost-internet-header/p-c8296f63.system.js +2 -0
  421. package/dist/swisspost-internet-header/p-c8296f63.system.js.map +1 -0
  422. package/dist/swisspost-internet-header/p-c946c5b8.system.entry.js +2 -0
  423. package/dist/swisspost-internet-header/p-c946c5b8.system.entry.js.map +1 -0
  424. package/dist/swisspost-internet-header/p-cb06a633.system.entry.js +2 -0
  425. package/dist/swisspost-internet-header/p-cb06a633.system.entry.js.map +1 -0
  426. package/dist/swisspost-internet-header/p-cb3de015.system.entry.js +2 -0
  427. package/dist/swisspost-internet-header/p-cb3de015.system.entry.js.map +1 -0
  428. package/dist/swisspost-internet-header/p-d713a3b3.system.entry.js +7 -0
  429. package/dist/swisspost-internet-header/p-d713a3b3.system.entry.js.map +1 -0
  430. package/dist/swisspost-internet-header/p-ddcb8258.entry.js +2 -0
  431. package/dist/swisspost-internet-header/p-ddcb8258.entry.js.map +1 -0
  432. package/dist/swisspost-internet-header/p-ec80c8fc.js +2 -0
  433. package/dist/swisspost-internet-header/p-ec80c8fc.js.map +1 -0
  434. package/dist/swisspost-internet-header/p-ee915bbe.system.js +2 -0
  435. package/dist/swisspost-internet-header/p-ee915bbe.system.js.map +1 -0
  436. package/dist/swisspost-internet-header/p-eeff8b03.js +2 -0
  437. package/dist/swisspost-internet-header/p-eeff8b03.js.map +1 -0
  438. package/dist/swisspost-internet-header/p-f4ff1e9e.system.js +2 -0
  439. package/dist/swisspost-internet-header/p-f4ff1e9e.system.js.map +1 -0
  440. package/dist/swisspost-internet-header/p-f887c8bb.system.js +2 -0
  441. package/dist/swisspost-internet-header/p-f887c8bb.system.js.map +1 -0
  442. package/dist/swisspost-internet-header/swisspost-internet-header.css +29 -0
  443. package/dist/swisspost-internet-header/swisspost-internet-header.esm.js +2 -0
  444. package/dist/swisspost-internet-header/swisspost-internet-header.esm.js.map +1 -0
  445. package/dist/swisspost-internet-header/swisspost-internet-header.js +131 -0
  446. package/dist/types/assets/i18n/translations.d.ts +37 -0
  447. package/dist/types/components/post-internet-breadcrumbs/components/breadcrumb-list.component.d.ts +9 -0
  448. package/dist/types/components/post-internet-breadcrumbs/components/focus-trap.component.d.ts +12 -0
  449. package/dist/types/components/post-internet-breadcrumbs/components/middle-dropdown.component.d.ts +7 -0
  450. package/dist/types/components/post-internet-breadcrumbs/components/middle-links.component.d.ts +6 -0
  451. package/dist/types/components/post-internet-breadcrumbs/components/overlay.component.d.ts +16 -0
  452. package/dist/types/components/post-internet-breadcrumbs/post-internet-breadcrumbs.d.ts +45 -0
  453. package/dist/types/components/post-internet-footer/components/post-footer-block-address.component.d.ts +5 -0
  454. package/dist/types/components/post-internet-footer/components/post-footer-block-contact.component.d.ts +6 -0
  455. package/dist/types/components/post-internet-footer/components/post-footer-block-custom.component.d.ts +4 -0
  456. package/dist/types/components/post-internet-footer/components/post-footer-block-list.component.d.ts +5 -0
  457. package/dist/types/components/post-internet-footer/components/post-footer-block-socials.component.d.ts +5 -0
  458. package/dist/types/components/post-internet-footer/post-internet-footer.d.ts +10 -0
  459. package/dist/types/components/post-internet-header/post-internet-header.d.ts +124 -0
  460. package/dist/types/components/post-klp-login-widget/klp-widget.controller.d.ts +3 -0
  461. package/dist/types/components/post-klp-login-widget/post-klp-login-widget.d.ts +10 -0
  462. package/dist/types/components/post-language-switch/components/post-language-switch-list.d.ts +6 -0
  463. package/dist/types/components/post-language-switch/post-language-switch.d.ts +27 -0
  464. package/dist/types/components/post-logo/logo-sprite.component.d.ts +4 -0
  465. package/dist/types/components/post-logo/post-logo.d.ts +11 -0
  466. package/dist/types/components/post-main-navigation/components/level-one-action.component.d.ts +8 -0
  467. package/dist/types/components/post-main-navigation/post-main-navigation.d.ts +48 -0
  468. package/dist/types/components/post-meta-navigation/post-meta-navigation.d.ts +5 -0
  469. package/dist/types/components/post-search/post-search.d.ts +61 -0
  470. package/dist/types/components/post-skiplinks/post-skiplinks.d.ts +9 -0
  471. package/dist/types/components.d.ts +365 -0
  472. package/dist/types/data/store.d.ts +16 -0
  473. package/dist/types/index.d.ts +1 -0
  474. package/dist/types/models/breadcrumbs.model.d.ts +36 -0
  475. package/dist/types/models/coveo.model.d.ts +22 -0
  476. package/dist/types/models/footer.model.d.ts +48 -0
  477. package/dist/types/models/general.model.d.ts +46 -0
  478. package/dist/types/models/geocode.model.d.ts +52 -0
  479. package/dist/types/models/header.model.d.ts +163 -0
  480. package/dist/types/models/implementor.model.d.ts +22 -0
  481. package/dist/types/models/language.model.d.ts +6 -0
  482. package/dist/types/models/track-and-trace.model.d.ts +25 -0
  483. package/dist/types/services/config.service.d.ts +56 -0
  484. package/dist/types/services/language.service.d.ts +65 -0
  485. package/dist/types/services/route.service.d.ts +39 -0
  486. package/dist/types/services/search/coveo.service.d.ts +9 -0
  487. package/dist/types/services/search/coveo.settings.d.ts +2 -0
  488. package/dist/types/services/search/parcel.service.d.ts +28 -0
  489. package/dist/types/services/search/places.service.d.ts +24 -0
  490. package/dist/types/services/search/places.settings.d.ts +3 -0
  491. package/dist/types/services/search/search-utilities.d.ts +15 -0
  492. package/dist/types/services/search/search.service.d.ts +24 -0
  493. package/dist/types/services/ui.service.d.ts +23 -0
  494. package/dist/types/stencil-public-runtime.d.ts +1637 -0
  495. package/dist/types/tests/setup-tests.d.ts +0 -0
  496. package/dist/types/utils/highlighted.component.d.ts +4 -0
  497. package/dist/types/utils/if.component.d.ts +4 -0
  498. package/dist/types/utils/svg-icon.component.d.ts +4 -0
  499. package/dist/types/utils/svg-sprite.component.d.ts +1 -0
  500. package/dist/types/utils/utils.d.ts +8 -0
  501. package/loader/cdn.js +3 -0
  502. package/loader/index.cjs.js +3 -0
  503. package/loader/index.d.ts +21 -0
  504. package/loader/index.es2017.js +3 -0
  505. package/loader/index.js +4 -0
  506. package/loader/package.json +11 -0
  507. package/package.json +71 -0
  508. package/readme.md +15 -0
@@ -0,0 +1,2739 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-5751975e.js');
6
+ const index$1 = require('./index-e7245d60.js');
7
+ const bodyScrollLock_esm = require('./bodyScrollLock.esm-59f17217.js');
8
+ const store = require('./store-47e14589.js');
9
+ const ui_service = require('./ui.service-db4a8252.js');
10
+ const svgSprite_component = require('./svg-sprite.component-c3b454b3.js');
11
+ const svgIcon_component = require('./svg-icon.component-10fbda11.js');
12
+ const if_component = require('./if.component-313f59b8.js');
13
+
14
+ // https://www.post.ch/api/trackandtrace?id=99.00.306600.01004883
15
+ // Track and trace URL
16
+ const getTrackAndTraceApiUrl = (id) => {
17
+ const lang = store.state.currentLanguage;
18
+ return `https://www.post.ch/${lang}/api/trackandtrace?id=${encodeURIComponent(id)}`;
19
+ };
20
+ // Get the redire
21
+ const getTrackAndTraceRedirectUrl = (query, { packageTrackingRedirectUrl }) => {
22
+ return packageTrackingRedirectUrl.replace('{trackingNumber}', encodeURIComponent(query));
23
+ };
24
+ /**
25
+ * Check whether a query is a tracking id
26
+ *
27
+ * @param query User query
28
+ * @returns Boolean
29
+ */
30
+ const isParcel = async (query, searchConfig) => {
31
+ const parcelInfo = await getParcelInfo(query, searchConfig);
32
+ return parcelInfo.ok;
33
+ };
34
+ /**
35
+ * Try to get parcel info from a query that is possibly a tracking id.
36
+ * This is mainly used to check if a search should redirect to track&trace instead of the regular search.
37
+ *
38
+ * @param query User query that is possibly a tracking number
39
+ * @returns Track and trace info
40
+ */
41
+ const getParcelInfo = async (query, { redirectPattern }) => {
42
+ const trackingNrPattern = new RegExp(redirectPattern);
43
+ if (trackingNrPattern.test(query)) {
44
+ try {
45
+ const trackAndTraceReqest = await fetch(getTrackAndTraceApiUrl(query));
46
+ const trackAndTraceResult = await trackAndTraceReqest.json();
47
+ return Object.assign(Object.assign({}, trackAndTraceResult), { ok: trackAndTraceResult.ok === 'true' });
48
+ }
49
+ catch (error) {
50
+ console.warn(`Could not check track and trace API due to error: ${error.message}`);
51
+ }
52
+ }
53
+ return { ok: false, timestamp: new Date().toDateString() };
54
+ };
55
+ /**
56
+ * Get parcel info if query is a parcel or null
57
+ *
58
+ * @param query Parcel id
59
+ * @returns Parcel info and a redirect url or null if not a parcel
60
+ */
61
+ const getParcelSuggestion = async (query, searchConfig) => {
62
+ const parcelInfo = await getParcelInfo(query, searchConfig);
63
+ return parcelInfo.ok
64
+ ? Object.assign(Object.assign({}, parcelInfo), { url: getTrackAndTraceRedirectUrl(query, searchConfig) }) : null;
65
+ };
66
+
67
+ /**
68
+ * Construct a search page url from a query
69
+ *
70
+ * @param query Search term
71
+ * @returns
72
+ */
73
+ const getSearchRedirectUrl = async (query, searchConfig) => {
74
+ const isTrackTraceId = await isParcel(query, searchConfig);
75
+ return isTrackTraceId
76
+ ? getTrackAndTraceRedirectUrl(query, searchConfig)
77
+ : getSearchPageUrl(query);
78
+ };
79
+ /**
80
+ * Stitch toghether the search page URL
81
+ *
82
+ * @param query Search term
83
+ * @returns Search page URL
84
+ */
85
+ const getSearchPageUrl = (query) => {
86
+ var _a;
87
+ if (((_a = store.state.localizedConfig) === null || _a === void 0 ? void 0 : _a.header.search) === undefined) {
88
+ return;
89
+ }
90
+ const { searchPageUrl } = store.state.localizedConfig.header.search;
91
+ const searchParam = `#q=${encodeURIComponent(query)}`;
92
+ return `${searchPageUrl}${searchParam}&t=AllTab`;
93
+ };
94
+ /**
95
+ * Equalize the length of two arrays while filling up empty slots up to max. length
96
+ *
97
+ * @param arrayA First array
98
+ * @param arrayB Second array
99
+ * @param maxLength Max. length of result array
100
+ * @returns Array with two resulting arrays
101
+ */
102
+ const equalizeArrays = (arrayA, arrayB, maxLength = 8) => {
103
+ const coveoSliced = arrayA.slice(0, Math.max(maxLength / 2, maxLength - arrayB.length));
104
+ return [coveoSliced, arrayB.slice(0, maxLength - coveoSliced.length)];
105
+ };
106
+
107
+ // Coveo constants
108
+ const coveo = {
109
+ url: 'https://platform-eu.cloud.coveo.com/rest/search/v2/querySuggest',
110
+ environment: {
111
+ prod: {
112
+ organisation: 'postchagprod6ef4sbet',
113
+ token: 'xx5b629890-23b9-4fbe-b601-0e8719186969',
114
+ },
115
+ int01: {
116
+ organisation: 'postchagnonprods5sq57qt',
117
+ token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',
118
+ },
119
+ int02: {
120
+ organisation: 'postchagnonprods5sq57qt',
121
+ token: 'xx7c0e52ab-3de2-4fbd-b9a7-6ca6abd532b4',
122
+ },
123
+ },
124
+ };
125
+
126
+ /**
127
+ * Get suggestions from coveo
128
+ * https://docs.coveo.com/en/1459/build-a-search-ui/get-query-suggestions#context-object
129
+ *
130
+ * @param query Search term
131
+ * @returns
132
+ */
133
+ const getCoveoSuggestions = async (query) => {
134
+ var _a, _b;
135
+ if (((_b = (_a = store.state.localizedConfig) === null || _a === void 0 ? void 0 : _a.header) === null || _b === void 0 ? void 0 : _b.search) === undefined)
136
+ return [];
137
+ const config = store.state.localizedConfig.header.search;
138
+ const { token, organisation } = coveo.environment[store.state.environment];
139
+ const url = `${coveo.url}?q=${query}&locale=${store.state.currentLanguage}&searchHub=${config.searchHubName}&pipeline=${config.searchPipelineName}&organizationId=${organisation}`;
140
+ let coveoCompletions;
141
+ try {
142
+ const coveoResponse = await fetch(url, {
143
+ method: 'GET',
144
+ headers: {
145
+ Authorization: `Bearer ${token}`,
146
+ },
147
+ });
148
+ const coveoJSON = (await coveoResponse.json());
149
+ coveoCompletions = coveoJSON.completions.map(completion => (Object.assign(Object.assign({}, completion), { redirectUrl: getSearchPageUrl(completion.expression) })));
150
+ }
151
+ catch (error) {
152
+ console.error('Connection to coveo failed. Did you add "*.coveo.com" to your connect-src content security policy and tried turning off your adblocker?');
153
+ }
154
+ return coveoCompletions === undefined ? [] : coveoCompletions;
155
+ };
156
+
157
+ // Implement some TOPOS logic into the header search
158
+ const gisAPIUrl = 'https://places.post.ch/StandortSuche/StaoCacheService';
159
+ const placesUrl = 'https://places.post.ch';
160
+ const pois = [
161
+ '001PST',
162
+ '001MP24',
163
+ '001AG-PICK',
164
+ '001PFFIL',
165
+ '001PFST',
166
+ '001BZ',
167
+ '001LZB',
168
+ '001PZ',
169
+ '001LZP',
170
+ '001AL',
171
+ ];
172
+
173
+ function escapeStringRegexp(string) {
174
+ if (typeof string !== 'string') {
175
+ throw new TypeError('Expected a string');
176
+ }
177
+
178
+ // Escape characters with special meaning either inside or outside character sets.
179
+ // Use a simple backslash escape when it’s always valid, and a `\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.
180
+ return string
181
+ .replace(/[|\\{}()[\]^$+*?.]/g, '\\$&')
182
+ .replace(/-/g, '\\x2d');
183
+ }
184
+
185
+ const replacements = [
186
+ // German umlauts
187
+ ['ß', 'ss'],
188
+ ['ẞ', 'Ss'],
189
+ ['ä', 'ae'],
190
+ ['Ä', 'Ae'],
191
+ ['ö', 'oe'],
192
+ ['Ö', 'Oe'],
193
+ ['ü', 'ue'],
194
+ ['Ü', 'Ue'],
195
+
196
+ // Latin
197
+ ['À', 'A'],
198
+ ['Á', 'A'],
199
+ ['Â', 'A'],
200
+ ['Ã', 'A'],
201
+ ['Ä', 'Ae'],
202
+ ['Å', 'A'],
203
+ ['Æ', 'AE'],
204
+ ['Ç', 'C'],
205
+ ['È', 'E'],
206
+ ['É', 'E'],
207
+ ['Ê', 'E'],
208
+ ['Ë', 'E'],
209
+ ['Ì', 'I'],
210
+ ['Í', 'I'],
211
+ ['Î', 'I'],
212
+ ['Ï', 'I'],
213
+ ['Ð', 'D'],
214
+ ['Ñ', 'N'],
215
+ ['Ò', 'O'],
216
+ ['Ó', 'O'],
217
+ ['Ô', 'O'],
218
+ ['Õ', 'O'],
219
+ ['Ö', 'Oe'],
220
+ ['Ő', 'O'],
221
+ ['Ø', 'O'],
222
+ ['Ù', 'U'],
223
+ ['Ú', 'U'],
224
+ ['Û', 'U'],
225
+ ['Ü', 'Ue'],
226
+ ['Ű', 'U'],
227
+ ['Ý', 'Y'],
228
+ ['Þ', 'TH'],
229
+ ['ß', 'ss'],
230
+ ['à', 'a'],
231
+ ['á', 'a'],
232
+ ['â', 'a'],
233
+ ['ã', 'a'],
234
+ ['ä', 'ae'],
235
+ ['å', 'a'],
236
+ ['æ', 'ae'],
237
+ ['ç', 'c'],
238
+ ['è', 'e'],
239
+ ['é', 'e'],
240
+ ['ê', 'e'],
241
+ ['ë', 'e'],
242
+ ['ì', 'i'],
243
+ ['í', 'i'],
244
+ ['î', 'i'],
245
+ ['ï', 'i'],
246
+ ['ð', 'd'],
247
+ ['ñ', 'n'],
248
+ ['ò', 'o'],
249
+ ['ó', 'o'],
250
+ ['ô', 'o'],
251
+ ['õ', 'o'],
252
+ ['ö', 'oe'],
253
+ ['ő', 'o'],
254
+ ['ø', 'o'],
255
+ ['ù', 'u'],
256
+ ['ú', 'u'],
257
+ ['û', 'u'],
258
+ ['ü', 'ue'],
259
+ ['ű', 'u'],
260
+ ['ý', 'y'],
261
+ ['þ', 'th'],
262
+ ['ÿ', 'y'],
263
+ ['ẞ', 'SS'],
264
+
265
+ // Vietnamese
266
+ ['à', 'a'],
267
+ ['À', 'A'],
268
+ ['á', 'a'],
269
+ ['Á', 'A'],
270
+ ['â', 'a'],
271
+ ['Â', 'A'],
272
+ ['ã', 'a'],
273
+ ['Ã', 'A'],
274
+ ['è', 'e'],
275
+ ['È', 'E'],
276
+ ['é', 'e'],
277
+ ['É', 'E'],
278
+ ['ê', 'e'],
279
+ ['Ê', 'E'],
280
+ ['ì', 'i'],
281
+ ['Ì', 'I'],
282
+ ['í', 'i'],
283
+ ['Í', 'I'],
284
+ ['ò', 'o'],
285
+ ['Ò', 'O'],
286
+ ['ó', 'o'],
287
+ ['Ó', 'O'],
288
+ ['ô', 'o'],
289
+ ['Ô', 'O'],
290
+ ['õ', 'o'],
291
+ ['Õ', 'O'],
292
+ ['ù', 'u'],
293
+ ['Ù', 'U'],
294
+ ['ú', 'u'],
295
+ ['Ú', 'U'],
296
+ ['ý', 'y'],
297
+ ['Ý', 'Y'],
298
+ ['ă', 'a'],
299
+ ['Ă', 'A'],
300
+ ['Đ', 'D'],
301
+ ['đ', 'd'],
302
+ ['ĩ', 'i'],
303
+ ['Ĩ', 'I'],
304
+ ['ũ', 'u'],
305
+ ['Ũ', 'U'],
306
+ ['ơ', 'o'],
307
+ ['Ơ', 'O'],
308
+ ['ư', 'u'],
309
+ ['Ư', 'U'],
310
+ ['ạ', 'a'],
311
+ ['Ạ', 'A'],
312
+ ['ả', 'a'],
313
+ ['Ả', 'A'],
314
+ ['ấ', 'a'],
315
+ ['Ấ', 'A'],
316
+ ['ầ', 'a'],
317
+ ['Ầ', 'A'],
318
+ ['ẩ', 'a'],
319
+ ['Ẩ', 'A'],
320
+ ['ẫ', 'a'],
321
+ ['Ẫ', 'A'],
322
+ ['ậ', 'a'],
323
+ ['Ậ', 'A'],
324
+ ['ắ', 'a'],
325
+ ['Ắ', 'A'],
326
+ ['ằ', 'a'],
327
+ ['Ằ', 'A'],
328
+ ['ẳ', 'a'],
329
+ ['Ẳ', 'A'],
330
+ ['ẵ', 'a'],
331
+ ['Ẵ', 'A'],
332
+ ['ặ', 'a'],
333
+ ['Ặ', 'A'],
334
+ ['ẹ', 'e'],
335
+ ['Ẹ', 'E'],
336
+ ['ẻ', 'e'],
337
+ ['Ẻ', 'E'],
338
+ ['ẽ', 'e'],
339
+ ['Ẽ', 'E'],
340
+ ['ế', 'e'],
341
+ ['Ế', 'E'],
342
+ ['ề', 'e'],
343
+ ['Ề', 'E'],
344
+ ['ể', 'e'],
345
+ ['Ể', 'E'],
346
+ ['ễ', 'e'],
347
+ ['Ễ', 'E'],
348
+ ['ệ', 'e'],
349
+ ['Ệ', 'E'],
350
+ ['ỉ', 'i'],
351
+ ['Ỉ', 'I'],
352
+ ['ị', 'i'],
353
+ ['Ị', 'I'],
354
+ ['ọ', 'o'],
355
+ ['Ọ', 'O'],
356
+ ['ỏ', 'o'],
357
+ ['Ỏ', 'O'],
358
+ ['ố', 'o'],
359
+ ['Ố', 'O'],
360
+ ['ồ', 'o'],
361
+ ['Ồ', 'O'],
362
+ ['ổ', 'o'],
363
+ ['Ổ', 'O'],
364
+ ['ỗ', 'o'],
365
+ ['Ỗ', 'O'],
366
+ ['ộ', 'o'],
367
+ ['Ộ', 'O'],
368
+ ['ớ', 'o'],
369
+ ['Ớ', 'O'],
370
+ ['ờ', 'o'],
371
+ ['Ờ', 'O'],
372
+ ['ở', 'o'],
373
+ ['Ở', 'O'],
374
+ ['ỡ', 'o'],
375
+ ['Ỡ', 'O'],
376
+ ['ợ', 'o'],
377
+ ['Ợ', 'O'],
378
+ ['ụ', 'u'],
379
+ ['Ụ', 'U'],
380
+ ['ủ', 'u'],
381
+ ['Ủ', 'U'],
382
+ ['ứ', 'u'],
383
+ ['Ứ', 'U'],
384
+ ['ừ', 'u'],
385
+ ['Ừ', 'U'],
386
+ ['ử', 'u'],
387
+ ['Ử', 'U'],
388
+ ['ữ', 'u'],
389
+ ['Ữ', 'U'],
390
+ ['ự', 'u'],
391
+ ['Ự', 'U'],
392
+ ['ỳ', 'y'],
393
+ ['Ỳ', 'Y'],
394
+ ['ỵ', 'y'],
395
+ ['Ỵ', 'Y'],
396
+ ['ỷ', 'y'],
397
+ ['Ỷ', 'Y'],
398
+ ['ỹ', 'y'],
399
+ ['Ỹ', 'Y'],
400
+
401
+ // Arabic
402
+ ['ء', 'e'],
403
+ ['آ', 'a'],
404
+ ['أ', 'a'],
405
+ ['ؤ', 'w'],
406
+ ['إ', 'i'],
407
+ ['ئ', 'y'],
408
+ ['ا', 'a'],
409
+ ['ب', 'b'],
410
+ ['ة', 't'],
411
+ ['ت', 't'],
412
+ ['ث', 'th'],
413
+ ['ج', 'j'],
414
+ ['ح', 'h'],
415
+ ['خ', 'kh'],
416
+ ['د', 'd'],
417
+ ['ذ', 'dh'],
418
+ ['ر', 'r'],
419
+ ['ز', 'z'],
420
+ ['س', 's'],
421
+ ['ش', 'sh'],
422
+ ['ص', 's'],
423
+ ['ض', 'd'],
424
+ ['ط', 't'],
425
+ ['ظ', 'z'],
426
+ ['ع', 'e'],
427
+ ['غ', 'gh'],
428
+ ['ـ', '_'],
429
+ ['ف', 'f'],
430
+ ['ق', 'q'],
431
+ ['ك', 'k'],
432
+ ['ل', 'l'],
433
+ ['م', 'm'],
434
+ ['ن', 'n'],
435
+ ['ه', 'h'],
436
+ ['و', 'w'],
437
+ ['ى', 'a'],
438
+ ['ي', 'y'],
439
+ ['َ‎', 'a'],
440
+ ['ُ', 'u'],
441
+ ['ِ‎', 'i'],
442
+ ['٠', '0'],
443
+ ['١', '1'],
444
+ ['٢', '2'],
445
+ ['٣', '3'],
446
+ ['٤', '4'],
447
+ ['٥', '5'],
448
+ ['٦', '6'],
449
+ ['٧', '7'],
450
+ ['٨', '8'],
451
+ ['٩', '9'],
452
+
453
+ // Persian / Farsi
454
+ ['چ', 'ch'],
455
+ ['ک', 'k'],
456
+ ['گ', 'g'],
457
+ ['پ', 'p'],
458
+ ['ژ', 'zh'],
459
+ ['ی', 'y'],
460
+ ['۰', '0'],
461
+ ['۱', '1'],
462
+ ['۲', '2'],
463
+ ['۳', '3'],
464
+ ['۴', '4'],
465
+ ['۵', '5'],
466
+ ['۶', '6'],
467
+ ['۷', '7'],
468
+ ['۸', '8'],
469
+ ['۹', '9'],
470
+
471
+ // Pashto
472
+ ['ټ', 'p'],
473
+ ['ځ', 'z'],
474
+ ['څ', 'c'],
475
+ ['ډ', 'd'],
476
+ ['ﺫ', 'd'],
477
+ ['ﺭ', 'r'],
478
+ ['ړ', 'r'],
479
+ ['ﺯ', 'z'],
480
+ ['ږ', 'g'],
481
+ ['ښ', 'x'],
482
+ ['ګ', 'g'],
483
+ ['ڼ', 'n'],
484
+ ['ۀ', 'e'],
485
+ ['ې', 'e'],
486
+ ['ۍ', 'ai'],
487
+
488
+ // Urdu
489
+ ['ٹ', 't'],
490
+ ['ڈ', 'd'],
491
+ ['ڑ', 'r'],
492
+ ['ں', 'n'],
493
+ ['ہ', 'h'],
494
+ ['ھ', 'h'],
495
+ ['ے', 'e'],
496
+
497
+ // Russian
498
+ ['А', 'A'],
499
+ ['а', 'a'],
500
+ ['Б', 'B'],
501
+ ['б', 'b'],
502
+ ['В', 'V'],
503
+ ['в', 'v'],
504
+ ['Г', 'G'],
505
+ ['г', 'g'],
506
+ ['Д', 'D'],
507
+ ['д', 'd'],
508
+ ['ъе', 'ye'],
509
+ ['Ъе', 'Ye'],
510
+ ['ъЕ', 'yE'],
511
+ ['ЪЕ', 'YE'],
512
+ ['Е', 'E'],
513
+ ['е', 'e'],
514
+ ['Ё', 'Yo'],
515
+ ['ё', 'yo'],
516
+ ['Ж', 'Zh'],
517
+ ['ж', 'zh'],
518
+ ['З', 'Z'],
519
+ ['з', 'z'],
520
+ ['И', 'I'],
521
+ ['и', 'i'],
522
+ ['ый', 'iy'],
523
+ ['Ый', 'Iy'],
524
+ ['ЫЙ', 'IY'],
525
+ ['ыЙ', 'iY'],
526
+ ['Й', 'Y'],
527
+ ['й', 'y'],
528
+ ['К', 'K'],
529
+ ['к', 'k'],
530
+ ['Л', 'L'],
531
+ ['л', 'l'],
532
+ ['М', 'M'],
533
+ ['м', 'm'],
534
+ ['Н', 'N'],
535
+ ['н', 'n'],
536
+ ['О', 'O'],
537
+ ['о', 'o'],
538
+ ['П', 'P'],
539
+ ['п', 'p'],
540
+ ['Р', 'R'],
541
+ ['р', 'r'],
542
+ ['С', 'S'],
543
+ ['с', 's'],
544
+ ['Т', 'T'],
545
+ ['т', 't'],
546
+ ['У', 'U'],
547
+ ['у', 'u'],
548
+ ['Ф', 'F'],
549
+ ['ф', 'f'],
550
+ ['Х', 'Kh'],
551
+ ['х', 'kh'],
552
+ ['Ц', 'Ts'],
553
+ ['ц', 'ts'],
554
+ ['Ч', 'Ch'],
555
+ ['ч', 'ch'],
556
+ ['Ш', 'Sh'],
557
+ ['ш', 'sh'],
558
+ ['Щ', 'Sch'],
559
+ ['щ', 'sch'],
560
+ ['Ъ', ''],
561
+ ['ъ', ''],
562
+ ['Ы', 'Y'],
563
+ ['ы', 'y'],
564
+ ['Ь', ''],
565
+ ['ь', ''],
566
+ ['Э', 'E'],
567
+ ['э', 'e'],
568
+ ['Ю', 'Yu'],
569
+ ['ю', 'yu'],
570
+ ['Я', 'Ya'],
571
+ ['я', 'ya'],
572
+
573
+ // Romanian
574
+ ['ă', 'a'],
575
+ ['Ă', 'A'],
576
+ ['ș', 's'],
577
+ ['Ș', 'S'],
578
+ ['ț', 't'],
579
+ ['Ț', 'T'],
580
+ ['ţ', 't'],
581
+ ['Ţ', 'T'],
582
+
583
+ // Turkish
584
+ ['ş', 's'],
585
+ ['Ş', 'S'],
586
+ ['ç', 'c'],
587
+ ['Ç', 'C'],
588
+ ['ğ', 'g'],
589
+ ['Ğ', 'G'],
590
+ ['ı', 'i'],
591
+ ['İ', 'I'],
592
+
593
+ // Armenian
594
+ ['ա', 'a'],
595
+ ['Ա', 'A'],
596
+ ['բ', 'b'],
597
+ ['Բ', 'B'],
598
+ ['գ', 'g'],
599
+ ['Գ', 'G'],
600
+ ['դ', 'd'],
601
+ ['Դ', 'D'],
602
+ ['ե', 'ye'],
603
+ ['Ե', 'Ye'],
604
+ ['զ', 'z'],
605
+ ['Զ', 'Z'],
606
+ ['է', 'e'],
607
+ ['Է', 'E'],
608
+ ['ը', 'y'],
609
+ ['Ը', 'Y'],
610
+ ['թ', 't'],
611
+ ['Թ', 'T'],
612
+ ['ժ', 'zh'],
613
+ ['Ժ', 'Zh'],
614
+ ['ի', 'i'],
615
+ ['Ի', 'I'],
616
+ ['լ', 'l'],
617
+ ['Լ', 'L'],
618
+ ['խ', 'kh'],
619
+ ['Խ', 'Kh'],
620
+ ['ծ', 'ts'],
621
+ ['Ծ', 'Ts'],
622
+ ['կ', 'k'],
623
+ ['Կ', 'K'],
624
+ ['հ', 'h'],
625
+ ['Հ', 'H'],
626
+ ['ձ', 'dz'],
627
+ ['Ձ', 'Dz'],
628
+ ['ղ', 'gh'],
629
+ ['Ղ', 'Gh'],
630
+ ['ճ', 'tch'],
631
+ ['Ճ', 'Tch'],
632
+ ['մ', 'm'],
633
+ ['Մ', 'M'],
634
+ ['յ', 'y'],
635
+ ['Յ', 'Y'],
636
+ ['ն', 'n'],
637
+ ['Ն', 'N'],
638
+ ['շ', 'sh'],
639
+ ['Շ', 'Sh'],
640
+ ['ո', 'vo'],
641
+ ['Ո', 'Vo'],
642
+ ['չ', 'ch'],
643
+ ['Չ', 'Ch'],
644
+ ['պ', 'p'],
645
+ ['Պ', 'P'],
646
+ ['ջ', 'j'],
647
+ ['Ջ', 'J'],
648
+ ['ռ', 'r'],
649
+ ['Ռ', 'R'],
650
+ ['ս', 's'],
651
+ ['Ս', 'S'],
652
+ ['վ', 'v'],
653
+ ['Վ', 'V'],
654
+ ['տ', 't'],
655
+ ['Տ', 'T'],
656
+ ['ր', 'r'],
657
+ ['Ր', 'R'],
658
+ ['ց', 'c'],
659
+ ['Ց', 'C'],
660
+ ['ու', 'u'],
661
+ ['ՈՒ', 'U'],
662
+ ['Ու', 'U'],
663
+ ['փ', 'p'],
664
+ ['Փ', 'P'],
665
+ ['ք', 'q'],
666
+ ['Ք', 'Q'],
667
+ ['օ', 'o'],
668
+ ['Օ', 'O'],
669
+ ['ֆ', 'f'],
670
+ ['Ֆ', 'F'],
671
+ ['և', 'yev'],
672
+
673
+ // Georgian
674
+ ['ა', 'a'],
675
+ ['ბ', 'b'],
676
+ ['გ', 'g'],
677
+ ['დ', 'd'],
678
+ ['ე', 'e'],
679
+ ['ვ', 'v'],
680
+ ['ზ', 'z'],
681
+ ['თ', 't'],
682
+ ['ი', 'i'],
683
+ ['კ', 'k'],
684
+ ['ლ', 'l'],
685
+ ['მ', 'm'],
686
+ ['ნ', 'n'],
687
+ ['ო', 'o'],
688
+ ['პ', 'p'],
689
+ ['ჟ', 'zh'],
690
+ ['რ', 'r'],
691
+ ['ს', 's'],
692
+ ['ტ', 't'],
693
+ ['უ', 'u'],
694
+ ['ფ', 'ph'],
695
+ ['ქ', 'q'],
696
+ ['ღ', 'gh'],
697
+ ['ყ', 'k'],
698
+ ['შ', 'sh'],
699
+ ['ჩ', 'ch'],
700
+ ['ც', 'ts'],
701
+ ['ძ', 'dz'],
702
+ ['წ', 'ts'],
703
+ ['ჭ', 'tch'],
704
+ ['ხ', 'kh'],
705
+ ['ჯ', 'j'],
706
+ ['ჰ', 'h'],
707
+
708
+ // Czech
709
+ ['č', 'c'],
710
+ ['ď', 'd'],
711
+ ['ě', 'e'],
712
+ ['ň', 'n'],
713
+ ['ř', 'r'],
714
+ ['š', 's'],
715
+ ['ť', 't'],
716
+ ['ů', 'u'],
717
+ ['ž', 'z'],
718
+ ['Č', 'C'],
719
+ ['Ď', 'D'],
720
+ ['Ě', 'E'],
721
+ ['Ň', 'N'],
722
+ ['Ř', 'R'],
723
+ ['Š', 'S'],
724
+ ['Ť', 'T'],
725
+ ['Ů', 'U'],
726
+ ['Ž', 'Z'],
727
+
728
+ // Dhivehi
729
+ ['ހ', 'h'],
730
+ ['ށ', 'sh'],
731
+ ['ނ', 'n'],
732
+ ['ރ', 'r'],
733
+ ['ބ', 'b'],
734
+ ['ޅ', 'lh'],
735
+ ['ކ', 'k'],
736
+ ['އ', 'a'],
737
+ ['ވ', 'v'],
738
+ ['މ', 'm'],
739
+ ['ފ', 'f'],
740
+ ['ދ', 'dh'],
741
+ ['ތ', 'th'],
742
+ ['ލ', 'l'],
743
+ ['ގ', 'g'],
744
+ ['ޏ', 'gn'],
745
+ ['ސ', 's'],
746
+ ['ޑ', 'd'],
747
+ ['ޒ', 'z'],
748
+ ['ޓ', 't'],
749
+ ['ޔ', 'y'],
750
+ ['ޕ', 'p'],
751
+ ['ޖ', 'j'],
752
+ ['ޗ', 'ch'],
753
+ ['ޘ', 'tt'],
754
+ ['ޙ', 'hh'],
755
+ ['ޚ', 'kh'],
756
+ ['ޛ', 'th'],
757
+ ['ޜ', 'z'],
758
+ ['ޝ', 'sh'],
759
+ ['ޞ', 's'],
760
+ ['ޟ', 'd'],
761
+ ['ޠ', 't'],
762
+ ['ޡ', 'z'],
763
+ ['ޢ', 'a'],
764
+ ['ޣ', 'gh'],
765
+ ['ޤ', 'q'],
766
+ ['ޥ', 'w'],
767
+ ['ަ', 'a'],
768
+ ['ާ', 'aa'],
769
+ ['ި', 'i'],
770
+ ['ީ', 'ee'],
771
+ ['ު', 'u'],
772
+ ['ޫ', 'oo'],
773
+ ['ެ', 'e'],
774
+ ['ޭ', 'ey'],
775
+ ['ޮ', 'o'],
776
+ ['ޯ', 'oa'],
777
+ ['ް', ''],
778
+
779
+ // Greek
780
+ ['α', 'a'],
781
+ ['β', 'v'],
782
+ ['γ', 'g'],
783
+ ['δ', 'd'],
784
+ ['ε', 'e'],
785
+ ['ζ', 'z'],
786
+ ['η', 'i'],
787
+ ['θ', 'th'],
788
+ ['ι', 'i'],
789
+ ['κ', 'k'],
790
+ ['λ', 'l'],
791
+ ['μ', 'm'],
792
+ ['ν', 'n'],
793
+ ['ξ', 'ks'],
794
+ ['ο', 'o'],
795
+ ['π', 'p'],
796
+ ['ρ', 'r'],
797
+ ['σ', 's'],
798
+ ['τ', 't'],
799
+ ['υ', 'y'],
800
+ ['φ', 'f'],
801
+ ['χ', 'x'],
802
+ ['ψ', 'ps'],
803
+ ['ω', 'o'],
804
+ ['ά', 'a'],
805
+ ['έ', 'e'],
806
+ ['ί', 'i'],
807
+ ['ό', 'o'],
808
+ ['ύ', 'y'],
809
+ ['ή', 'i'],
810
+ ['ώ', 'o'],
811
+ ['ς', 's'],
812
+ ['ϊ', 'i'],
813
+ ['ΰ', 'y'],
814
+ ['ϋ', 'y'],
815
+ ['ΐ', 'i'],
816
+ ['Α', 'A'],
817
+ ['Β', 'B'],
818
+ ['Γ', 'G'],
819
+ ['Δ', 'D'],
820
+ ['Ε', 'E'],
821
+ ['Ζ', 'Z'],
822
+ ['Η', 'I'],
823
+ ['Θ', 'TH'],
824
+ ['Ι', 'I'],
825
+ ['Κ', 'K'],
826
+ ['Λ', 'L'],
827
+ ['Μ', 'M'],
828
+ ['Ν', 'N'],
829
+ ['Ξ', 'KS'],
830
+ ['Ο', 'O'],
831
+ ['Π', 'P'],
832
+ ['Ρ', 'R'],
833
+ ['Σ', 'S'],
834
+ ['Τ', 'T'],
835
+ ['Υ', 'Y'],
836
+ ['Φ', 'F'],
837
+ ['Χ', 'X'],
838
+ ['Ψ', 'PS'],
839
+ ['Ω', 'O'],
840
+ ['Ά', 'A'],
841
+ ['Έ', 'E'],
842
+ ['Ί', 'I'],
843
+ ['Ό', 'O'],
844
+ ['Ύ', 'Y'],
845
+ ['Ή', 'I'],
846
+ ['Ώ', 'O'],
847
+ ['Ϊ', 'I'],
848
+ ['Ϋ', 'Y'],
849
+
850
+ // Disabled as it conflicts with German and Latin.
851
+ // Hungarian
852
+ // ['ä', 'a'],
853
+ // ['Ä', 'A'],
854
+ // ['ö', 'o'],
855
+ // ['Ö', 'O'],
856
+ // ['ü', 'u'],
857
+ // ['Ü', 'U'],
858
+ // ['ű', 'u'],
859
+ // ['Ű', 'U'],
860
+
861
+ // Latvian
862
+ ['ā', 'a'],
863
+ ['ē', 'e'],
864
+ ['ģ', 'g'],
865
+ ['ī', 'i'],
866
+ ['ķ', 'k'],
867
+ ['ļ', 'l'],
868
+ ['ņ', 'n'],
869
+ ['ū', 'u'],
870
+ ['Ā', 'A'],
871
+ ['Ē', 'E'],
872
+ ['Ģ', 'G'],
873
+ ['Ī', 'I'],
874
+ ['Ķ', 'K'],
875
+ ['Ļ', 'L'],
876
+ ['Ņ', 'N'],
877
+ ['Ū', 'U'],
878
+ ['č', 'c'],
879
+ ['š', 's'],
880
+ ['ž', 'z'],
881
+ ['Č', 'C'],
882
+ ['Š', 'S'],
883
+ ['Ž', 'Z'],
884
+
885
+ // Lithuanian
886
+ ['ą', 'a'],
887
+ ['č', 'c'],
888
+ ['ę', 'e'],
889
+ ['ė', 'e'],
890
+ ['į', 'i'],
891
+ ['š', 's'],
892
+ ['ų', 'u'],
893
+ ['ū', 'u'],
894
+ ['ž', 'z'],
895
+ ['Ą', 'A'],
896
+ ['Č', 'C'],
897
+ ['Ę', 'E'],
898
+ ['Ė', 'E'],
899
+ ['Į', 'I'],
900
+ ['Š', 'S'],
901
+ ['Ų', 'U'],
902
+ ['Ū', 'U'],
903
+
904
+ // Macedonian
905
+ ['Ќ', 'Kj'],
906
+ ['ќ', 'kj'],
907
+ ['Љ', 'Lj'],
908
+ ['љ', 'lj'],
909
+ ['Њ', 'Nj'],
910
+ ['њ', 'nj'],
911
+ ['Тс', 'Ts'],
912
+ ['тс', 'ts'],
913
+
914
+ // Polish
915
+ ['ą', 'a'],
916
+ ['ć', 'c'],
917
+ ['ę', 'e'],
918
+ ['ł', 'l'],
919
+ ['ń', 'n'],
920
+ ['ś', 's'],
921
+ ['ź', 'z'],
922
+ ['ż', 'z'],
923
+ ['Ą', 'A'],
924
+ ['Ć', 'C'],
925
+ ['Ę', 'E'],
926
+ ['Ł', 'L'],
927
+ ['Ń', 'N'],
928
+ ['Ś', 'S'],
929
+ ['Ź', 'Z'],
930
+ ['Ż', 'Z'],
931
+
932
+ // Disabled as it conflicts with Vietnamese.
933
+ // Serbian
934
+ // ['љ', 'lj'],
935
+ // ['њ', 'nj'],
936
+ // ['Љ', 'Lj'],
937
+ // ['Њ', 'Nj'],
938
+ // ['đ', 'dj'],
939
+ // ['Đ', 'Dj'],
940
+ // ['ђ', 'dj'],
941
+ // ['ј', 'j'],
942
+ // ['ћ', 'c'],
943
+ // ['џ', 'dz'],
944
+ // ['Ђ', 'Dj'],
945
+ // ['Ј', 'j'],
946
+ // ['Ћ', 'C'],
947
+ // ['Џ', 'Dz'],
948
+
949
+ // Disabled as it conflicts with German and Latin.
950
+ // Slovak
951
+ // ['ä', 'a'],
952
+ // ['Ä', 'A'],
953
+ // ['ľ', 'l'],
954
+ // ['ĺ', 'l'],
955
+ // ['ŕ', 'r'],
956
+ // ['Ľ', 'L'],
957
+ // ['Ĺ', 'L'],
958
+ // ['Ŕ', 'R'],
959
+
960
+ // Disabled as it conflicts with German and Latin.
961
+ // Swedish
962
+ // ['å', 'o'],
963
+ // ['Å', 'o'],
964
+ // ['ä', 'a'],
965
+ // ['Ä', 'A'],
966
+ // ['ë', 'e'],
967
+ // ['Ë', 'E'],
968
+ // ['ö', 'o'],
969
+ // ['Ö', 'O'],
970
+
971
+ // Ukrainian
972
+ ['Є', 'Ye'],
973
+ ['І', 'I'],
974
+ ['Ї', 'Yi'],
975
+ ['Ґ', 'G'],
976
+ ['є', 'ye'],
977
+ ['і', 'i'],
978
+ ['ї', 'yi'],
979
+ ['ґ', 'g'],
980
+
981
+ // Dutch
982
+ ['IJ', 'IJ'],
983
+ ['ij', 'ij'],
984
+
985
+ // Danish
986
+ // ['Æ', 'Ae'],
987
+ // ['Ø', 'Oe'],
988
+ // ['Å', 'Aa'],
989
+ // ['æ', 'ae'],
990
+ // ['ø', 'oe'],
991
+ // ['å', 'aa']
992
+
993
+ // Currencies
994
+ ['¢', 'c'],
995
+ ['¥', 'Y'],
996
+ ['߿', 'b'],
997
+ ['৳', 't'],
998
+ ['૱', 'Bo'],
999
+ ['฿', 'B'],
1000
+ ['₠', 'CE'],
1001
+ ['₡', 'C'],
1002
+ ['₢', 'Cr'],
1003
+ ['₣', 'F'],
1004
+ ['₥', 'm'],
1005
+ ['₦', 'N'],
1006
+ ['₧', 'Pt'],
1007
+ ['₨', 'Rs'],
1008
+ ['₩', 'W'],
1009
+ ['₫', 's'],
1010
+ ['€', 'E'],
1011
+ ['₭', 'K'],
1012
+ ['₮', 'T'],
1013
+ ['₯', 'Dp'],
1014
+ ['₰', 'S'],
1015
+ ['₱', 'P'],
1016
+ ['₲', 'G'],
1017
+ ['₳', 'A'],
1018
+ ['₴', 'S'],
1019
+ ['₵', 'C'],
1020
+ ['₶', 'tt'],
1021
+ ['₷', 'S'],
1022
+ ['₸', 'T'],
1023
+ ['₹', 'R'],
1024
+ ['₺', 'L'],
1025
+ ['₽', 'P'],
1026
+ ['₿', 'B'],
1027
+ ['﹩', '$'],
1028
+ ['¢', 'c'],
1029
+ ['¥', 'Y'],
1030
+ ['₩', 'W'],
1031
+
1032
+ // Latin
1033
+ ['𝐀', 'A'],
1034
+ ['𝐁', 'B'],
1035
+ ['𝐂', 'C'],
1036
+ ['𝐃', 'D'],
1037
+ ['𝐄', 'E'],
1038
+ ['𝐅', 'F'],
1039
+ ['𝐆', 'G'],
1040
+ ['𝐇', 'H'],
1041
+ ['𝐈', 'I'],
1042
+ ['𝐉', 'J'],
1043
+ ['𝐊', 'K'],
1044
+ ['𝐋', 'L'],
1045
+ ['𝐌', 'M'],
1046
+ ['𝐍', 'N'],
1047
+ ['𝐎', 'O'],
1048
+ ['𝐏', 'P'],
1049
+ ['𝐐', 'Q'],
1050
+ ['𝐑', 'R'],
1051
+ ['𝐒', 'S'],
1052
+ ['𝐓', 'T'],
1053
+ ['𝐔', 'U'],
1054
+ ['𝐕', 'V'],
1055
+ ['𝐖', 'W'],
1056
+ ['𝐗', 'X'],
1057
+ ['𝐘', 'Y'],
1058
+ ['𝐙', 'Z'],
1059
+ ['𝐚', 'a'],
1060
+ ['𝐛', 'b'],
1061
+ ['𝐜', 'c'],
1062
+ ['𝐝', 'd'],
1063
+ ['𝐞', 'e'],
1064
+ ['𝐟', 'f'],
1065
+ ['𝐠', 'g'],
1066
+ ['𝐡', 'h'],
1067
+ ['𝐢', 'i'],
1068
+ ['𝐣', 'j'],
1069
+ ['𝐤', 'k'],
1070
+ ['𝐥', 'l'],
1071
+ ['𝐦', 'm'],
1072
+ ['𝐧', 'n'],
1073
+ ['𝐨', 'o'],
1074
+ ['𝐩', 'p'],
1075
+ ['𝐪', 'q'],
1076
+ ['𝐫', 'r'],
1077
+ ['𝐬', 's'],
1078
+ ['𝐭', 't'],
1079
+ ['𝐮', 'u'],
1080
+ ['𝐯', 'v'],
1081
+ ['𝐰', 'w'],
1082
+ ['𝐱', 'x'],
1083
+ ['𝐲', 'y'],
1084
+ ['𝐳', 'z'],
1085
+ ['𝐴', 'A'],
1086
+ ['𝐵', 'B'],
1087
+ ['𝐶', 'C'],
1088
+ ['𝐷', 'D'],
1089
+ ['𝐸', 'E'],
1090
+ ['𝐹', 'F'],
1091
+ ['𝐺', 'G'],
1092
+ ['𝐻', 'H'],
1093
+ ['𝐼', 'I'],
1094
+ ['𝐽', 'J'],
1095
+ ['𝐾', 'K'],
1096
+ ['𝐿', 'L'],
1097
+ ['𝑀', 'M'],
1098
+ ['𝑁', 'N'],
1099
+ ['𝑂', 'O'],
1100
+ ['𝑃', 'P'],
1101
+ ['𝑄', 'Q'],
1102
+ ['𝑅', 'R'],
1103
+ ['𝑆', 'S'],
1104
+ ['𝑇', 'T'],
1105
+ ['𝑈', 'U'],
1106
+ ['𝑉', 'V'],
1107
+ ['𝑊', 'W'],
1108
+ ['𝑋', 'X'],
1109
+ ['𝑌', 'Y'],
1110
+ ['𝑍', 'Z'],
1111
+ ['𝑎', 'a'],
1112
+ ['𝑏', 'b'],
1113
+ ['𝑐', 'c'],
1114
+ ['𝑑', 'd'],
1115
+ ['𝑒', 'e'],
1116
+ ['𝑓', 'f'],
1117
+ ['𝑔', 'g'],
1118
+ ['𝑖', 'i'],
1119
+ ['𝑗', 'j'],
1120
+ ['𝑘', 'k'],
1121
+ ['𝑙', 'l'],
1122
+ ['𝑚', 'm'],
1123
+ ['𝑛', 'n'],
1124
+ ['𝑜', 'o'],
1125
+ ['𝑝', 'p'],
1126
+ ['𝑞', 'q'],
1127
+ ['𝑟', 'r'],
1128
+ ['𝑠', 's'],
1129
+ ['𝑡', 't'],
1130
+ ['𝑢', 'u'],
1131
+ ['𝑣', 'v'],
1132
+ ['𝑤', 'w'],
1133
+ ['𝑥', 'x'],
1134
+ ['𝑦', 'y'],
1135
+ ['𝑧', 'z'],
1136
+ ['𝑨', 'A'],
1137
+ ['𝑩', 'B'],
1138
+ ['𝑪', 'C'],
1139
+ ['𝑫', 'D'],
1140
+ ['𝑬', 'E'],
1141
+ ['𝑭', 'F'],
1142
+ ['𝑮', 'G'],
1143
+ ['𝑯', 'H'],
1144
+ ['𝑰', 'I'],
1145
+ ['𝑱', 'J'],
1146
+ ['𝑲', 'K'],
1147
+ ['𝑳', 'L'],
1148
+ ['𝑴', 'M'],
1149
+ ['𝑵', 'N'],
1150
+ ['𝑶', 'O'],
1151
+ ['𝑷', 'P'],
1152
+ ['𝑸', 'Q'],
1153
+ ['𝑹', 'R'],
1154
+ ['𝑺', 'S'],
1155
+ ['𝑻', 'T'],
1156
+ ['𝑼', 'U'],
1157
+ ['𝑽', 'V'],
1158
+ ['𝑾', 'W'],
1159
+ ['𝑿', 'X'],
1160
+ ['𝒀', 'Y'],
1161
+ ['𝒁', 'Z'],
1162
+ ['𝒂', 'a'],
1163
+ ['𝒃', 'b'],
1164
+ ['𝒄', 'c'],
1165
+ ['𝒅', 'd'],
1166
+ ['𝒆', 'e'],
1167
+ ['𝒇', 'f'],
1168
+ ['𝒈', 'g'],
1169
+ ['𝒉', 'h'],
1170
+ ['𝒊', 'i'],
1171
+ ['𝒋', 'j'],
1172
+ ['𝒌', 'k'],
1173
+ ['𝒍', 'l'],
1174
+ ['𝒎', 'm'],
1175
+ ['𝒏', 'n'],
1176
+ ['𝒐', 'o'],
1177
+ ['𝒑', 'p'],
1178
+ ['𝒒', 'q'],
1179
+ ['𝒓', 'r'],
1180
+ ['𝒔', 's'],
1181
+ ['𝒕', 't'],
1182
+ ['𝒖', 'u'],
1183
+ ['𝒗', 'v'],
1184
+ ['𝒘', 'w'],
1185
+ ['𝒙', 'x'],
1186
+ ['𝒚', 'y'],
1187
+ ['𝒛', 'z'],
1188
+ ['𝒜', 'A'],
1189
+ ['𝒞', 'C'],
1190
+ ['𝒟', 'D'],
1191
+ ['𝒢', 'g'],
1192
+ ['𝒥', 'J'],
1193
+ ['𝒦', 'K'],
1194
+ ['𝒩', 'N'],
1195
+ ['𝒪', 'O'],
1196
+ ['𝒫', 'P'],
1197
+ ['𝒬', 'Q'],
1198
+ ['𝒮', 'S'],
1199
+ ['𝒯', 'T'],
1200
+ ['𝒰', 'U'],
1201
+ ['𝒱', 'V'],
1202
+ ['𝒲', 'W'],
1203
+ ['𝒳', 'X'],
1204
+ ['𝒴', 'Y'],
1205
+ ['𝒵', 'Z'],
1206
+ ['𝒶', 'a'],
1207
+ ['𝒷', 'b'],
1208
+ ['𝒸', 'c'],
1209
+ ['𝒹', 'd'],
1210
+ ['𝒻', 'f'],
1211
+ ['𝒽', 'h'],
1212
+ ['𝒾', 'i'],
1213
+ ['𝒿', 'j'],
1214
+ ['𝓀', 'h'],
1215
+ ['𝓁', 'l'],
1216
+ ['𝓂', 'm'],
1217
+ ['𝓃', 'n'],
1218
+ ['𝓅', 'p'],
1219
+ ['𝓆', 'q'],
1220
+ ['𝓇', 'r'],
1221
+ ['𝓈', 's'],
1222
+ ['𝓉', 't'],
1223
+ ['𝓊', 'u'],
1224
+ ['𝓋', 'v'],
1225
+ ['𝓌', 'w'],
1226
+ ['𝓍', 'x'],
1227
+ ['𝓎', 'y'],
1228
+ ['𝓏', 'z'],
1229
+ ['𝓐', 'A'],
1230
+ ['𝓑', 'B'],
1231
+ ['𝓒', 'C'],
1232
+ ['𝓓', 'D'],
1233
+ ['𝓔', 'E'],
1234
+ ['𝓕', 'F'],
1235
+ ['𝓖', 'G'],
1236
+ ['𝓗', 'H'],
1237
+ ['𝓘', 'I'],
1238
+ ['𝓙', 'J'],
1239
+ ['𝓚', 'K'],
1240
+ ['𝓛', 'L'],
1241
+ ['𝓜', 'M'],
1242
+ ['𝓝', 'N'],
1243
+ ['𝓞', 'O'],
1244
+ ['𝓟', 'P'],
1245
+ ['𝓠', 'Q'],
1246
+ ['𝓡', 'R'],
1247
+ ['𝓢', 'S'],
1248
+ ['𝓣', 'T'],
1249
+ ['𝓤', 'U'],
1250
+ ['𝓥', 'V'],
1251
+ ['𝓦', 'W'],
1252
+ ['𝓧', 'X'],
1253
+ ['𝓨', 'Y'],
1254
+ ['𝓩', 'Z'],
1255
+ ['𝓪', 'a'],
1256
+ ['𝓫', 'b'],
1257
+ ['𝓬', 'c'],
1258
+ ['𝓭', 'd'],
1259
+ ['𝓮', 'e'],
1260
+ ['𝓯', 'f'],
1261
+ ['𝓰', 'g'],
1262
+ ['𝓱', 'h'],
1263
+ ['𝓲', 'i'],
1264
+ ['𝓳', 'j'],
1265
+ ['𝓴', 'k'],
1266
+ ['𝓵', 'l'],
1267
+ ['𝓶', 'm'],
1268
+ ['𝓷', 'n'],
1269
+ ['𝓸', 'o'],
1270
+ ['𝓹', 'p'],
1271
+ ['𝓺', 'q'],
1272
+ ['𝓻', 'r'],
1273
+ ['𝓼', 's'],
1274
+ ['𝓽', 't'],
1275
+ ['𝓾', 'u'],
1276
+ ['𝓿', 'v'],
1277
+ ['𝔀', 'w'],
1278
+ ['𝔁', 'x'],
1279
+ ['𝔂', 'y'],
1280
+ ['𝔃', 'z'],
1281
+ ['𝔄', 'A'],
1282
+ ['𝔅', 'B'],
1283
+ ['𝔇', 'D'],
1284
+ ['𝔈', 'E'],
1285
+ ['𝔉', 'F'],
1286
+ ['𝔊', 'G'],
1287
+ ['𝔍', 'J'],
1288
+ ['𝔎', 'K'],
1289
+ ['𝔏', 'L'],
1290
+ ['𝔐', 'M'],
1291
+ ['𝔑', 'N'],
1292
+ ['𝔒', 'O'],
1293
+ ['𝔓', 'P'],
1294
+ ['𝔔', 'Q'],
1295
+ ['𝔖', 'S'],
1296
+ ['𝔗', 'T'],
1297
+ ['𝔘', 'U'],
1298
+ ['𝔙', 'V'],
1299
+ ['𝔚', 'W'],
1300
+ ['𝔛', 'X'],
1301
+ ['𝔜', 'Y'],
1302
+ ['𝔞', 'a'],
1303
+ ['𝔟', 'b'],
1304
+ ['𝔠', 'c'],
1305
+ ['𝔡', 'd'],
1306
+ ['𝔢', 'e'],
1307
+ ['𝔣', 'f'],
1308
+ ['𝔤', 'g'],
1309
+ ['𝔥', 'h'],
1310
+ ['𝔦', 'i'],
1311
+ ['𝔧', 'j'],
1312
+ ['𝔨', 'k'],
1313
+ ['𝔩', 'l'],
1314
+ ['𝔪', 'm'],
1315
+ ['𝔫', 'n'],
1316
+ ['𝔬', 'o'],
1317
+ ['𝔭', 'p'],
1318
+ ['𝔮', 'q'],
1319
+ ['𝔯', 'r'],
1320
+ ['𝔰', 's'],
1321
+ ['𝔱', 't'],
1322
+ ['𝔲', 'u'],
1323
+ ['𝔳', 'v'],
1324
+ ['𝔴', 'w'],
1325
+ ['𝔵', 'x'],
1326
+ ['𝔶', 'y'],
1327
+ ['𝔷', 'z'],
1328
+ ['𝔸', 'A'],
1329
+ ['𝔹', 'B'],
1330
+ ['𝔻', 'D'],
1331
+ ['𝔼', 'E'],
1332
+ ['𝔽', 'F'],
1333
+ ['𝔾', 'G'],
1334
+ ['𝕀', 'I'],
1335
+ ['𝕁', 'J'],
1336
+ ['𝕂', 'K'],
1337
+ ['𝕃', 'L'],
1338
+ ['𝕄', 'M'],
1339
+ ['𝕆', 'N'],
1340
+ ['𝕊', 'S'],
1341
+ ['𝕋', 'T'],
1342
+ ['𝕌', 'U'],
1343
+ ['𝕍', 'V'],
1344
+ ['𝕎', 'W'],
1345
+ ['𝕏', 'X'],
1346
+ ['𝕐', 'Y'],
1347
+ ['𝕒', 'a'],
1348
+ ['𝕓', 'b'],
1349
+ ['𝕔', 'c'],
1350
+ ['𝕕', 'd'],
1351
+ ['𝕖', 'e'],
1352
+ ['𝕗', 'f'],
1353
+ ['𝕘', 'g'],
1354
+ ['𝕙', 'h'],
1355
+ ['𝕚', 'i'],
1356
+ ['𝕛', 'j'],
1357
+ ['𝕜', 'k'],
1358
+ ['𝕝', 'l'],
1359
+ ['𝕞', 'm'],
1360
+ ['𝕟', 'n'],
1361
+ ['𝕠', 'o'],
1362
+ ['𝕡', 'p'],
1363
+ ['𝕢', 'q'],
1364
+ ['𝕣', 'r'],
1365
+ ['𝕤', 's'],
1366
+ ['𝕥', 't'],
1367
+ ['𝕦', 'u'],
1368
+ ['𝕧', 'v'],
1369
+ ['𝕨', 'w'],
1370
+ ['𝕩', 'x'],
1371
+ ['𝕪', 'y'],
1372
+ ['𝕫', 'z'],
1373
+ ['𝕬', 'A'],
1374
+ ['𝕭', 'B'],
1375
+ ['𝕮', 'C'],
1376
+ ['𝕯', 'D'],
1377
+ ['𝕰', 'E'],
1378
+ ['𝕱', 'F'],
1379
+ ['𝕲', 'G'],
1380
+ ['𝕳', 'H'],
1381
+ ['𝕴', 'I'],
1382
+ ['𝕵', 'J'],
1383
+ ['𝕶', 'K'],
1384
+ ['𝕷', 'L'],
1385
+ ['𝕸', 'M'],
1386
+ ['𝕹', 'N'],
1387
+ ['𝕺', 'O'],
1388
+ ['𝕻', 'P'],
1389
+ ['𝕼', 'Q'],
1390
+ ['𝕽', 'R'],
1391
+ ['𝕾', 'S'],
1392
+ ['𝕿', 'T'],
1393
+ ['𝖀', 'U'],
1394
+ ['𝖁', 'V'],
1395
+ ['𝖂', 'W'],
1396
+ ['𝖃', 'X'],
1397
+ ['𝖄', 'Y'],
1398
+ ['𝖅', 'Z'],
1399
+ ['𝖆', 'a'],
1400
+ ['𝖇', 'b'],
1401
+ ['𝖈', 'c'],
1402
+ ['𝖉', 'd'],
1403
+ ['𝖊', 'e'],
1404
+ ['𝖋', 'f'],
1405
+ ['𝖌', 'g'],
1406
+ ['𝖍', 'h'],
1407
+ ['𝖎', 'i'],
1408
+ ['𝖏', 'j'],
1409
+ ['𝖐', 'k'],
1410
+ ['𝖑', 'l'],
1411
+ ['𝖒', 'm'],
1412
+ ['𝖓', 'n'],
1413
+ ['𝖔', 'o'],
1414
+ ['𝖕', 'p'],
1415
+ ['𝖖', 'q'],
1416
+ ['𝖗', 'r'],
1417
+ ['𝖘', 's'],
1418
+ ['𝖙', 't'],
1419
+ ['𝖚', 'u'],
1420
+ ['𝖛', 'v'],
1421
+ ['𝖜', 'w'],
1422
+ ['𝖝', 'x'],
1423
+ ['𝖞', 'y'],
1424
+ ['𝖟', 'z'],
1425
+ ['𝖠', 'A'],
1426
+ ['𝖡', 'B'],
1427
+ ['𝖢', 'C'],
1428
+ ['𝖣', 'D'],
1429
+ ['𝖤', 'E'],
1430
+ ['𝖥', 'F'],
1431
+ ['𝖦', 'G'],
1432
+ ['𝖧', 'H'],
1433
+ ['𝖨', 'I'],
1434
+ ['𝖩', 'J'],
1435
+ ['𝖪', 'K'],
1436
+ ['𝖫', 'L'],
1437
+ ['𝖬', 'M'],
1438
+ ['𝖭', 'N'],
1439
+ ['𝖮', 'O'],
1440
+ ['𝖯', 'P'],
1441
+ ['𝖰', 'Q'],
1442
+ ['𝖱', 'R'],
1443
+ ['𝖲', 'S'],
1444
+ ['𝖳', 'T'],
1445
+ ['𝖴', 'U'],
1446
+ ['𝖵', 'V'],
1447
+ ['𝖶', 'W'],
1448
+ ['𝖷', 'X'],
1449
+ ['𝖸', 'Y'],
1450
+ ['𝖹', 'Z'],
1451
+ ['𝖺', 'a'],
1452
+ ['𝖻', 'b'],
1453
+ ['𝖼', 'c'],
1454
+ ['𝖽', 'd'],
1455
+ ['𝖾', 'e'],
1456
+ ['𝖿', 'f'],
1457
+ ['𝗀', 'g'],
1458
+ ['𝗁', 'h'],
1459
+ ['𝗂', 'i'],
1460
+ ['𝗃', 'j'],
1461
+ ['𝗄', 'k'],
1462
+ ['𝗅', 'l'],
1463
+ ['𝗆', 'm'],
1464
+ ['𝗇', 'n'],
1465
+ ['𝗈', 'o'],
1466
+ ['𝗉', 'p'],
1467
+ ['𝗊', 'q'],
1468
+ ['𝗋', 'r'],
1469
+ ['𝗌', 's'],
1470
+ ['𝗍', 't'],
1471
+ ['𝗎', 'u'],
1472
+ ['𝗏', 'v'],
1473
+ ['𝗐', 'w'],
1474
+ ['𝗑', 'x'],
1475
+ ['𝗒', 'y'],
1476
+ ['𝗓', 'z'],
1477
+ ['𝗔', 'A'],
1478
+ ['𝗕', 'B'],
1479
+ ['𝗖', 'C'],
1480
+ ['𝗗', 'D'],
1481
+ ['𝗘', 'E'],
1482
+ ['𝗙', 'F'],
1483
+ ['𝗚', 'G'],
1484
+ ['𝗛', 'H'],
1485
+ ['𝗜', 'I'],
1486
+ ['𝗝', 'J'],
1487
+ ['𝗞', 'K'],
1488
+ ['𝗟', 'L'],
1489
+ ['𝗠', 'M'],
1490
+ ['𝗡', 'N'],
1491
+ ['𝗢', 'O'],
1492
+ ['𝗣', 'P'],
1493
+ ['𝗤', 'Q'],
1494
+ ['𝗥', 'R'],
1495
+ ['𝗦', 'S'],
1496
+ ['𝗧', 'T'],
1497
+ ['𝗨', 'U'],
1498
+ ['𝗩', 'V'],
1499
+ ['𝗪', 'W'],
1500
+ ['𝗫', 'X'],
1501
+ ['𝗬', 'Y'],
1502
+ ['𝗭', 'Z'],
1503
+ ['𝗮', 'a'],
1504
+ ['𝗯', 'b'],
1505
+ ['𝗰', 'c'],
1506
+ ['𝗱', 'd'],
1507
+ ['𝗲', 'e'],
1508
+ ['𝗳', 'f'],
1509
+ ['𝗴', 'g'],
1510
+ ['𝗵', 'h'],
1511
+ ['𝗶', 'i'],
1512
+ ['𝗷', 'j'],
1513
+ ['𝗸', 'k'],
1514
+ ['𝗹', 'l'],
1515
+ ['𝗺', 'm'],
1516
+ ['𝗻', 'n'],
1517
+ ['𝗼', 'o'],
1518
+ ['𝗽', 'p'],
1519
+ ['𝗾', 'q'],
1520
+ ['𝗿', 'r'],
1521
+ ['𝘀', 's'],
1522
+ ['𝘁', 't'],
1523
+ ['𝘂', 'u'],
1524
+ ['𝘃', 'v'],
1525
+ ['𝘄', 'w'],
1526
+ ['𝘅', 'x'],
1527
+ ['𝘆', 'y'],
1528
+ ['𝘇', 'z'],
1529
+ ['𝘈', 'A'],
1530
+ ['𝘉', 'B'],
1531
+ ['𝘊', 'C'],
1532
+ ['𝘋', 'D'],
1533
+ ['𝘌', 'E'],
1534
+ ['𝘍', 'F'],
1535
+ ['𝘎', 'G'],
1536
+ ['𝘏', 'H'],
1537
+ ['𝘐', 'I'],
1538
+ ['𝘑', 'J'],
1539
+ ['𝘒', 'K'],
1540
+ ['𝘓', 'L'],
1541
+ ['𝘔', 'M'],
1542
+ ['𝘕', 'N'],
1543
+ ['𝘖', 'O'],
1544
+ ['𝘗', 'P'],
1545
+ ['𝘘', 'Q'],
1546
+ ['𝘙', 'R'],
1547
+ ['𝘚', 'S'],
1548
+ ['𝘛', 'T'],
1549
+ ['𝘜', 'U'],
1550
+ ['𝘝', 'V'],
1551
+ ['𝘞', 'W'],
1552
+ ['𝘟', 'X'],
1553
+ ['𝘠', 'Y'],
1554
+ ['𝘡', 'Z'],
1555
+ ['𝘢', 'a'],
1556
+ ['𝘣', 'b'],
1557
+ ['𝘤', 'c'],
1558
+ ['𝘥', 'd'],
1559
+ ['𝘦', 'e'],
1560
+ ['𝘧', 'f'],
1561
+ ['𝘨', 'g'],
1562
+ ['𝘩', 'h'],
1563
+ ['𝘪', 'i'],
1564
+ ['𝘫', 'j'],
1565
+ ['𝘬', 'k'],
1566
+ ['𝘭', 'l'],
1567
+ ['𝘮', 'm'],
1568
+ ['𝘯', 'n'],
1569
+ ['𝘰', 'o'],
1570
+ ['𝘱', 'p'],
1571
+ ['𝘲', 'q'],
1572
+ ['𝘳', 'r'],
1573
+ ['𝘴', 's'],
1574
+ ['𝘵', 't'],
1575
+ ['𝘶', 'u'],
1576
+ ['𝘷', 'v'],
1577
+ ['𝘸', 'w'],
1578
+ ['𝘹', 'x'],
1579
+ ['𝘺', 'y'],
1580
+ ['𝘻', 'z'],
1581
+ ['𝘼', 'A'],
1582
+ ['𝘽', 'B'],
1583
+ ['𝘾', 'C'],
1584
+ ['𝘿', 'D'],
1585
+ ['𝙀', 'E'],
1586
+ ['𝙁', 'F'],
1587
+ ['𝙂', 'G'],
1588
+ ['𝙃', 'H'],
1589
+ ['𝙄', 'I'],
1590
+ ['𝙅', 'J'],
1591
+ ['𝙆', 'K'],
1592
+ ['𝙇', 'L'],
1593
+ ['𝙈', 'M'],
1594
+ ['𝙉', 'N'],
1595
+ ['𝙊', 'O'],
1596
+ ['𝙋', 'P'],
1597
+ ['𝙌', 'Q'],
1598
+ ['𝙍', 'R'],
1599
+ ['𝙎', 'S'],
1600
+ ['𝙏', 'T'],
1601
+ ['𝙐', 'U'],
1602
+ ['𝙑', 'V'],
1603
+ ['𝙒', 'W'],
1604
+ ['𝙓', 'X'],
1605
+ ['𝙔', 'Y'],
1606
+ ['𝙕', 'Z'],
1607
+ ['𝙖', 'a'],
1608
+ ['𝙗', 'b'],
1609
+ ['𝙘', 'c'],
1610
+ ['𝙙', 'd'],
1611
+ ['𝙚', 'e'],
1612
+ ['𝙛', 'f'],
1613
+ ['𝙜', 'g'],
1614
+ ['𝙝', 'h'],
1615
+ ['𝙞', 'i'],
1616
+ ['𝙟', 'j'],
1617
+ ['𝙠', 'k'],
1618
+ ['𝙡', 'l'],
1619
+ ['𝙢', 'm'],
1620
+ ['𝙣', 'n'],
1621
+ ['𝙤', 'o'],
1622
+ ['𝙥', 'p'],
1623
+ ['𝙦', 'q'],
1624
+ ['𝙧', 'r'],
1625
+ ['𝙨', 's'],
1626
+ ['𝙩', 't'],
1627
+ ['𝙪', 'u'],
1628
+ ['𝙫', 'v'],
1629
+ ['𝙬', 'w'],
1630
+ ['𝙭', 'x'],
1631
+ ['𝙮', 'y'],
1632
+ ['𝙯', 'z'],
1633
+ ['𝙰', 'A'],
1634
+ ['𝙱', 'B'],
1635
+ ['𝙲', 'C'],
1636
+ ['𝙳', 'D'],
1637
+ ['𝙴', 'E'],
1638
+ ['𝙵', 'F'],
1639
+ ['𝙶', 'G'],
1640
+ ['𝙷', 'H'],
1641
+ ['𝙸', 'I'],
1642
+ ['𝙹', 'J'],
1643
+ ['𝙺', 'K'],
1644
+ ['𝙻', 'L'],
1645
+ ['𝙼', 'M'],
1646
+ ['𝙽', 'N'],
1647
+ ['𝙾', 'O'],
1648
+ ['𝙿', 'P'],
1649
+ ['𝚀', 'Q'],
1650
+ ['𝚁', 'R'],
1651
+ ['𝚂', 'S'],
1652
+ ['𝚃', 'T'],
1653
+ ['𝚄', 'U'],
1654
+ ['𝚅', 'V'],
1655
+ ['𝚆', 'W'],
1656
+ ['𝚇', 'X'],
1657
+ ['𝚈', 'Y'],
1658
+ ['𝚉', 'Z'],
1659
+ ['𝚊', 'a'],
1660
+ ['𝚋', 'b'],
1661
+ ['𝚌', 'c'],
1662
+ ['𝚍', 'd'],
1663
+ ['𝚎', 'e'],
1664
+ ['𝚏', 'f'],
1665
+ ['𝚐', 'g'],
1666
+ ['𝚑', 'h'],
1667
+ ['𝚒', 'i'],
1668
+ ['𝚓', 'j'],
1669
+ ['𝚔', 'k'],
1670
+ ['𝚕', 'l'],
1671
+ ['𝚖', 'm'],
1672
+ ['𝚗', 'n'],
1673
+ ['𝚘', 'o'],
1674
+ ['𝚙', 'p'],
1675
+ ['𝚚', 'q'],
1676
+ ['𝚛', 'r'],
1677
+ ['𝚜', 's'],
1678
+ ['𝚝', 't'],
1679
+ ['𝚞', 'u'],
1680
+ ['𝚟', 'v'],
1681
+ ['𝚠', 'w'],
1682
+ ['𝚡', 'x'],
1683
+ ['𝚢', 'y'],
1684
+ ['𝚣', 'z'],
1685
+
1686
+ // Dotless letters
1687
+ ['𝚤', 'l'],
1688
+ ['𝚥', 'j'],
1689
+
1690
+ // Greek
1691
+ ['𝛢', 'A'],
1692
+ ['𝛣', 'B'],
1693
+ ['𝛤', 'G'],
1694
+ ['𝛥', 'D'],
1695
+ ['𝛦', 'E'],
1696
+ ['𝛧', 'Z'],
1697
+ ['𝛨', 'I'],
1698
+ ['𝛩', 'TH'],
1699
+ ['𝛪', 'I'],
1700
+ ['𝛫', 'K'],
1701
+ ['𝛬', 'L'],
1702
+ ['𝛭', 'M'],
1703
+ ['𝛮', 'N'],
1704
+ ['𝛯', 'KS'],
1705
+ ['𝛰', 'O'],
1706
+ ['𝛱', 'P'],
1707
+ ['𝛲', 'R'],
1708
+ ['𝛳', 'TH'],
1709
+ ['𝛴', 'S'],
1710
+ ['𝛵', 'T'],
1711
+ ['𝛶', 'Y'],
1712
+ ['𝛷', 'F'],
1713
+ ['𝛸', 'x'],
1714
+ ['𝛹', 'PS'],
1715
+ ['𝛺', 'O'],
1716
+ ['𝛻', 'D'],
1717
+ ['𝛼', 'a'],
1718
+ ['𝛽', 'b'],
1719
+ ['𝛾', 'g'],
1720
+ ['𝛿', 'd'],
1721
+ ['𝜀', 'e'],
1722
+ ['𝜁', 'z'],
1723
+ ['𝜂', 'i'],
1724
+ ['𝜃', 'th'],
1725
+ ['𝜄', 'i'],
1726
+ ['𝜅', 'k'],
1727
+ ['𝜆', 'l'],
1728
+ ['𝜇', 'm'],
1729
+ ['𝜈', 'n'],
1730
+ ['𝜉', 'ks'],
1731
+ ['𝜊', 'o'],
1732
+ ['𝜋', 'p'],
1733
+ ['𝜌', 'r'],
1734
+ ['𝜍', 's'],
1735
+ ['𝜎', 's'],
1736
+ ['𝜏', 't'],
1737
+ ['𝜐', 'y'],
1738
+ ['𝜑', 'f'],
1739
+ ['𝜒', 'x'],
1740
+ ['𝜓', 'ps'],
1741
+ ['𝜔', 'o'],
1742
+ ['𝜕', 'd'],
1743
+ ['𝜖', 'E'],
1744
+ ['𝜗', 'TH'],
1745
+ ['𝜘', 'K'],
1746
+ ['𝜙', 'f'],
1747
+ ['𝜚', 'r'],
1748
+ ['𝜛', 'p'],
1749
+ ['𝜜', 'A'],
1750
+ ['𝜝', 'V'],
1751
+ ['𝜞', 'G'],
1752
+ ['𝜟', 'D'],
1753
+ ['𝜠', 'E'],
1754
+ ['𝜡', 'Z'],
1755
+ ['𝜢', 'I'],
1756
+ ['𝜣', 'TH'],
1757
+ ['𝜤', 'I'],
1758
+ ['𝜥', 'K'],
1759
+ ['𝜦', 'L'],
1760
+ ['𝜧', 'M'],
1761
+ ['𝜨', 'N'],
1762
+ ['𝜩', 'KS'],
1763
+ ['𝜪', 'O'],
1764
+ ['𝜫', 'P'],
1765
+ ['𝜬', 'S'],
1766
+ ['𝜭', 'TH'],
1767
+ ['𝜮', 'S'],
1768
+ ['𝜯', 'T'],
1769
+ ['𝜰', 'Y'],
1770
+ ['𝜱', 'F'],
1771
+ ['𝜲', 'X'],
1772
+ ['𝜳', 'PS'],
1773
+ ['𝜴', 'O'],
1774
+ ['𝜵', 'D'],
1775
+ ['𝜶', 'a'],
1776
+ ['𝜷', 'v'],
1777
+ ['𝜸', 'g'],
1778
+ ['𝜹', 'd'],
1779
+ ['𝜺', 'e'],
1780
+ ['𝜻', 'z'],
1781
+ ['𝜼', 'i'],
1782
+ ['𝜽', 'th'],
1783
+ ['𝜾', 'i'],
1784
+ ['𝜿', 'k'],
1785
+ ['𝝀', 'l'],
1786
+ ['𝝁', 'm'],
1787
+ ['𝝂', 'n'],
1788
+ ['𝝃', 'ks'],
1789
+ ['𝝄', 'o'],
1790
+ ['𝝅', 'p'],
1791
+ ['𝝆', 'r'],
1792
+ ['𝝇', 's'],
1793
+ ['𝝈', 's'],
1794
+ ['𝝉', 't'],
1795
+ ['𝝊', 'y'],
1796
+ ['𝝋', 'f'],
1797
+ ['𝝌', 'x'],
1798
+ ['𝝍', 'ps'],
1799
+ ['𝝎', 'o'],
1800
+ ['𝝏', 'a'],
1801
+ ['𝝐', 'e'],
1802
+ ['𝝑', 'i'],
1803
+ ['𝝒', 'k'],
1804
+ ['𝝓', 'f'],
1805
+ ['𝝔', 'r'],
1806
+ ['𝝕', 'p'],
1807
+ ['𝝖', 'A'],
1808
+ ['𝝗', 'B'],
1809
+ ['𝝘', 'G'],
1810
+ ['𝝙', 'D'],
1811
+ ['𝝚', 'E'],
1812
+ ['𝝛', 'Z'],
1813
+ ['𝝜', 'I'],
1814
+ ['𝝝', 'TH'],
1815
+ ['𝝞', 'I'],
1816
+ ['𝝟', 'K'],
1817
+ ['𝝠', 'L'],
1818
+ ['𝝡', 'M'],
1819
+ ['𝝢', 'N'],
1820
+ ['𝝣', 'KS'],
1821
+ ['𝝤', 'O'],
1822
+ ['𝝥', 'P'],
1823
+ ['𝝦', 'R'],
1824
+ ['𝝧', 'TH'],
1825
+ ['𝝨', 'S'],
1826
+ ['𝝩', 'T'],
1827
+ ['𝝪', 'Y'],
1828
+ ['𝝫', 'F'],
1829
+ ['𝝬', 'X'],
1830
+ ['𝝭', 'PS'],
1831
+ ['𝝮', 'O'],
1832
+ ['𝝯', 'D'],
1833
+ ['𝝰', 'a'],
1834
+ ['𝝱', 'v'],
1835
+ ['𝝲', 'g'],
1836
+ ['𝝳', 'd'],
1837
+ ['𝝴', 'e'],
1838
+ ['𝝵', 'z'],
1839
+ ['𝝶', 'i'],
1840
+ ['𝝷', 'th'],
1841
+ ['𝝸', 'i'],
1842
+ ['𝝹', 'k'],
1843
+ ['𝝺', 'l'],
1844
+ ['𝝻', 'm'],
1845
+ ['𝝼', 'n'],
1846
+ ['𝝽', 'ks'],
1847
+ ['𝝾', 'o'],
1848
+ ['𝝿', 'p'],
1849
+ ['𝞀', 'r'],
1850
+ ['𝞁', 's'],
1851
+ ['𝞂', 's'],
1852
+ ['𝞃', 't'],
1853
+ ['𝞄', 'y'],
1854
+ ['𝞅', 'f'],
1855
+ ['𝞆', 'x'],
1856
+ ['𝞇', 'ps'],
1857
+ ['𝞈', 'o'],
1858
+ ['𝞉', 'a'],
1859
+ ['𝞊', 'e'],
1860
+ ['𝞋', 'i'],
1861
+ ['𝞌', 'k'],
1862
+ ['𝞍', 'f'],
1863
+ ['𝞎', 'r'],
1864
+ ['𝞏', 'p'],
1865
+ ['𝞐', 'A'],
1866
+ ['𝞑', 'V'],
1867
+ ['𝞒', 'G'],
1868
+ ['𝞓', 'D'],
1869
+ ['𝞔', 'E'],
1870
+ ['𝞕', 'Z'],
1871
+ ['𝞖', 'I'],
1872
+ ['𝞗', 'TH'],
1873
+ ['𝞘', 'I'],
1874
+ ['𝞙', 'K'],
1875
+ ['𝞚', 'L'],
1876
+ ['𝞛', 'M'],
1877
+ ['𝞜', 'N'],
1878
+ ['𝞝', 'KS'],
1879
+ ['𝞞', 'O'],
1880
+ ['𝞟', 'P'],
1881
+ ['𝞠', 'S'],
1882
+ ['𝞡', 'TH'],
1883
+ ['𝞢', 'S'],
1884
+ ['𝞣', 'T'],
1885
+ ['𝞤', 'Y'],
1886
+ ['𝞥', 'F'],
1887
+ ['𝞦', 'X'],
1888
+ ['𝞧', 'PS'],
1889
+ ['𝞨', 'O'],
1890
+ ['𝞩', 'D'],
1891
+ ['𝞪', 'av'],
1892
+ ['𝞫', 'g'],
1893
+ ['𝞬', 'd'],
1894
+ ['𝞭', 'e'],
1895
+ ['𝞮', 'z'],
1896
+ ['𝞯', 'i'],
1897
+ ['𝞰', 'i'],
1898
+ ['𝞱', 'th'],
1899
+ ['𝞲', 'i'],
1900
+ ['𝞳', 'k'],
1901
+ ['𝞴', 'l'],
1902
+ ['𝞵', 'm'],
1903
+ ['𝞶', 'n'],
1904
+ ['𝞷', 'ks'],
1905
+ ['𝞸', 'o'],
1906
+ ['𝞹', 'p'],
1907
+ ['𝞺', 'r'],
1908
+ ['𝞻', 's'],
1909
+ ['𝞼', 's'],
1910
+ ['𝞽', 't'],
1911
+ ['𝞾', 'y'],
1912
+ ['𝞿', 'f'],
1913
+ ['𝟀', 'x'],
1914
+ ['𝟁', 'ps'],
1915
+ ['𝟂', 'o'],
1916
+ ['𝟃', 'a'],
1917
+ ['𝟄', 'e'],
1918
+ ['𝟅', 'i'],
1919
+ ['𝟆', 'k'],
1920
+ ['𝟇', 'f'],
1921
+ ['𝟈', 'r'],
1922
+ ['𝟉', 'p'],
1923
+ ['𝟊', 'F'],
1924
+ ['𝟋', 'f'],
1925
+ ['⒜', '(a)'],
1926
+ ['⒝', '(b)'],
1927
+ ['⒞', '(c)'],
1928
+ ['⒟', '(d)'],
1929
+ ['⒠', '(e)'],
1930
+ ['⒡', '(f)'],
1931
+ ['⒢', '(g)'],
1932
+ ['⒣', '(h)'],
1933
+ ['⒤', '(i)'],
1934
+ ['⒥', '(j)'],
1935
+ ['⒦', '(k)'],
1936
+ ['⒧', '(l)'],
1937
+ ['⒨', '(m)'],
1938
+ ['⒩', '(n)'],
1939
+ ['⒪', '(o)'],
1940
+ ['⒫', '(p)'],
1941
+ ['⒬', '(q)'],
1942
+ ['⒭', '(r)'],
1943
+ ['⒮', '(s)'],
1944
+ ['⒯', '(t)'],
1945
+ ['⒰', '(u)'],
1946
+ ['⒱', '(v)'],
1947
+ ['⒲', '(w)'],
1948
+ ['⒳', '(x)'],
1949
+ ['⒴', '(y)'],
1950
+ ['⒵', '(z)'],
1951
+ ['Ⓐ', '(A)'],
1952
+ ['Ⓑ', '(B)'],
1953
+ ['Ⓒ', '(C)'],
1954
+ ['Ⓓ', '(D)'],
1955
+ ['Ⓔ', '(E)'],
1956
+ ['Ⓕ', '(F)'],
1957
+ ['Ⓖ', '(G)'],
1958
+ ['Ⓗ', '(H)'],
1959
+ ['Ⓘ', '(I)'],
1960
+ ['Ⓙ', '(J)'],
1961
+ ['Ⓚ', '(K)'],
1962
+ ['Ⓛ', '(L)'],
1963
+ ['Ⓝ', '(N)'],
1964
+ ['Ⓞ', '(O)'],
1965
+ ['Ⓟ', '(P)'],
1966
+ ['Ⓠ', '(Q)'],
1967
+ ['Ⓡ', '(R)'],
1968
+ ['Ⓢ', '(S)'],
1969
+ ['Ⓣ', '(T)'],
1970
+ ['Ⓤ', '(U)'],
1971
+ ['Ⓥ', '(V)'],
1972
+ ['Ⓦ', '(W)'],
1973
+ ['Ⓧ', '(X)'],
1974
+ ['Ⓨ', '(Y)'],
1975
+ ['Ⓩ', '(Z)'],
1976
+ ['ⓐ', '(a)'],
1977
+ ['ⓑ', '(b)'],
1978
+ ['ⓒ', '(b)'],
1979
+ ['ⓓ', '(c)'],
1980
+ ['ⓔ', '(e)'],
1981
+ ['ⓕ', '(f)'],
1982
+ ['ⓖ', '(g)'],
1983
+ ['ⓗ', '(h)'],
1984
+ ['ⓘ', '(i)'],
1985
+ ['ⓙ', '(j)'],
1986
+ ['ⓚ', '(k)'],
1987
+ ['ⓛ', '(l)'],
1988
+ ['ⓜ', '(m)'],
1989
+ ['ⓝ', '(n)'],
1990
+ ['ⓞ', '(o)'],
1991
+ ['ⓟ', '(p)'],
1992
+ ['ⓠ', '(q)'],
1993
+ ['ⓡ', '(r)'],
1994
+ ['ⓢ', '(s)'],
1995
+ ['ⓣ', '(t)'],
1996
+ ['ⓤ', '(u)'],
1997
+ ['ⓥ', '(v)'],
1998
+ ['ⓦ', '(w)'],
1999
+ ['ⓧ', '(x)'],
2000
+ ['ⓨ', '(y)'],
2001
+ ['ⓩ', '(z)'],
2002
+
2003
+ // Maltese
2004
+ ['Ċ', 'C'],
2005
+ ['ċ', 'c'],
2006
+ ['Ġ', 'G'],
2007
+ ['ġ', 'g'],
2008
+ ['Ħ', 'H'],
2009
+ ['ħ', 'h'],
2010
+ ['Ż', 'Z'],
2011
+ ['ż', 'z'],
2012
+
2013
+ // Numbers
2014
+ ['𝟎', '0'],
2015
+ ['𝟏', '1'],
2016
+ ['𝟐', '2'],
2017
+ ['𝟑', '3'],
2018
+ ['𝟒', '4'],
2019
+ ['𝟓', '5'],
2020
+ ['𝟔', '6'],
2021
+ ['𝟕', '7'],
2022
+ ['𝟖', '8'],
2023
+ ['𝟗', '9'],
2024
+ ['𝟘', '0'],
2025
+ ['𝟙', '1'],
2026
+ ['𝟚', '2'],
2027
+ ['𝟛', '3'],
2028
+ ['𝟜', '4'],
2029
+ ['𝟝', '5'],
2030
+ ['𝟞', '6'],
2031
+ ['𝟟', '7'],
2032
+ ['𝟠', '8'],
2033
+ ['𝟡', '9'],
2034
+ ['𝟢', '0'],
2035
+ ['𝟣', '1'],
2036
+ ['𝟤', '2'],
2037
+ ['𝟥', '3'],
2038
+ ['𝟦', '4'],
2039
+ ['𝟧', '5'],
2040
+ ['𝟨', '6'],
2041
+ ['𝟩', '7'],
2042
+ ['𝟪', '8'],
2043
+ ['𝟫', '9'],
2044
+ ['𝟬', '0'],
2045
+ ['𝟭', '1'],
2046
+ ['𝟮', '2'],
2047
+ ['𝟯', '3'],
2048
+ ['𝟰', '4'],
2049
+ ['𝟱', '5'],
2050
+ ['𝟲', '6'],
2051
+ ['𝟳', '7'],
2052
+ ['𝟴', '8'],
2053
+ ['𝟵', '9'],
2054
+ ['𝟶', '0'],
2055
+ ['𝟷', '1'],
2056
+ ['𝟸', '2'],
2057
+ ['𝟹', '3'],
2058
+ ['𝟺', '4'],
2059
+ ['𝟻', '5'],
2060
+ ['𝟼', '6'],
2061
+ ['𝟽', '7'],
2062
+ ['𝟾', '8'],
2063
+ ['𝟿', '9'],
2064
+ ['①', '1'],
2065
+ ['②', '2'],
2066
+ ['③', '3'],
2067
+ ['④', '4'],
2068
+ ['⑤', '5'],
2069
+ ['⑥', '6'],
2070
+ ['⑦', '7'],
2071
+ ['⑧', '8'],
2072
+ ['⑨', '9'],
2073
+ ['⑩', '10'],
2074
+ ['⑪', '11'],
2075
+ ['⑫', '12'],
2076
+ ['⑬', '13'],
2077
+ ['⑭', '14'],
2078
+ ['⑮', '15'],
2079
+ ['⑯', '16'],
2080
+ ['⑰', '17'],
2081
+ ['⑱', '18'],
2082
+ ['⑲', '19'],
2083
+ ['⑳', '20'],
2084
+ ['⑴', '1'],
2085
+ ['⑵', '2'],
2086
+ ['⑶', '3'],
2087
+ ['⑷', '4'],
2088
+ ['⑸', '5'],
2089
+ ['⑹', '6'],
2090
+ ['⑺', '7'],
2091
+ ['⑻', '8'],
2092
+ ['⑼', '9'],
2093
+ ['⑽', '10'],
2094
+ ['⑾', '11'],
2095
+ ['⑿', '12'],
2096
+ ['⒀', '13'],
2097
+ ['⒁', '14'],
2098
+ ['⒂', '15'],
2099
+ ['⒃', '16'],
2100
+ ['⒄', '17'],
2101
+ ['⒅', '18'],
2102
+ ['⒆', '19'],
2103
+ ['⒇', '20'],
2104
+ ['⒈', '1.'],
2105
+ ['⒉', '2.'],
2106
+ ['⒊', '3.'],
2107
+ ['⒋', '4.'],
2108
+ ['⒌', '5.'],
2109
+ ['⒍', '6.'],
2110
+ ['⒎', '7.'],
2111
+ ['⒏', '8.'],
2112
+ ['⒐', '9.'],
2113
+ ['⒑', '10.'],
2114
+ ['⒒', '11.'],
2115
+ ['⒓', '12.'],
2116
+ ['⒔', '13.'],
2117
+ ['⒕', '14.'],
2118
+ ['⒖', '15.'],
2119
+ ['⒗', '16.'],
2120
+ ['⒘', '17.'],
2121
+ ['⒙', '18.'],
2122
+ ['⒚', '19.'],
2123
+ ['⒛', '20.'],
2124
+ ['⓪', '0'],
2125
+ ['⓫', '11'],
2126
+ ['⓬', '12'],
2127
+ ['⓭', '13'],
2128
+ ['⓮', '14'],
2129
+ ['⓯', '15'],
2130
+ ['⓰', '16'],
2131
+ ['⓱', '17'],
2132
+ ['⓲', '18'],
2133
+ ['⓳', '19'],
2134
+ ['⓴', '20'],
2135
+ ['⓵', '1'],
2136
+ ['⓶', '2'],
2137
+ ['⓷', '3'],
2138
+ ['⓸', '4'],
2139
+ ['⓹', '5'],
2140
+ ['⓺', '6'],
2141
+ ['⓻', '7'],
2142
+ ['⓼', '8'],
2143
+ ['⓽', '9'],
2144
+ ['⓾', '10'],
2145
+ ['⓿', '0'],
2146
+
2147
+ // Punctuation
2148
+ ['🙰', '&'],
2149
+ ['🙱', '&'],
2150
+ ['🙲', '&'],
2151
+ ['🙳', '&'],
2152
+ ['🙴', '&'],
2153
+ ['🙵', '&'],
2154
+ ['🙶', '"'],
2155
+ ['🙷', '"'],
2156
+ ['🙸', '"'],
2157
+ ['‽', '?!'],
2158
+ ['🙹', '?!'],
2159
+ ['🙺', '?!'],
2160
+ ['🙻', '?!'],
2161
+ ['🙼', '/'],
2162
+ ['🙽', '\\'],
2163
+
2164
+ // Alchemy
2165
+ ['🜇', 'AR'],
2166
+ ['🜈', 'V'],
2167
+ ['🜉', 'V'],
2168
+ ['🜆', 'VR'],
2169
+ ['🜅', 'VF'],
2170
+ ['🜩', '2'],
2171
+ ['🜪', '5'],
2172
+ ['🝡', 'f'],
2173
+ ['🝢', 'W'],
2174
+ ['🝣', 'U'],
2175
+ ['🝧', 'V'],
2176
+ ['🝨', 'T'],
2177
+ ['🝪', 'V'],
2178
+ ['🝫', 'MB'],
2179
+ ['🝬', 'VB'],
2180
+ ['🝲', '3B'],
2181
+ ['🝳', '3B'],
2182
+
2183
+ // Emojis
2184
+ ['💯', '100'],
2185
+ ['🔙', 'BACK'],
2186
+ ['🔚', 'END'],
2187
+ ['🔛', 'ON!'],
2188
+ ['🔜', 'SOON'],
2189
+ ['🔝', 'TOP'],
2190
+ ['🔞', '18'],
2191
+ ['🔤', 'abc'],
2192
+ ['🔠', 'ABCD'],
2193
+ ['🔡', 'abcd'],
2194
+ ['🔢', '1234'],
2195
+ ['🔣', 'T&@%'],
2196
+ ['#️⃣', '#'],
2197
+ ['*️⃣', '*'],
2198
+ ['0️⃣', '0'],
2199
+ ['1️⃣', '1'],
2200
+ ['2️⃣', '2'],
2201
+ ['3️⃣', '3'],
2202
+ ['4️⃣', '4'],
2203
+ ['5️⃣', '5'],
2204
+ ['6️⃣', '6'],
2205
+ ['7️⃣', '7'],
2206
+ ['8️⃣', '8'],
2207
+ ['9️⃣', '9'],
2208
+ ['🔟', '10'],
2209
+ ['🅰️', 'A'],
2210
+ ['🅱️', 'B'],
2211
+ ['🆎', 'AB'],
2212
+ ['🆑', 'CL'],
2213
+ ['🅾️', 'O'],
2214
+ ['🅿', 'P'],
2215
+ ['🆘', 'SOS'],
2216
+ ['🅲', 'C'],
2217
+ ['🅳', 'D'],
2218
+ ['🅴', 'E'],
2219
+ ['🅵', 'F'],
2220
+ ['🅶', 'G'],
2221
+ ['🅷', 'H'],
2222
+ ['🅸', 'I'],
2223
+ ['🅹', 'J'],
2224
+ ['🅺', 'K'],
2225
+ ['🅻', 'L'],
2226
+ ['🅼', 'M'],
2227
+ ['🅽', 'N'],
2228
+ ['🆀', 'Q'],
2229
+ ['🆁', 'R'],
2230
+ ['🆂', 'S'],
2231
+ ['🆃', 'T'],
2232
+ ['🆄', 'U'],
2233
+ ['🆅', 'V'],
2234
+ ['🆆', 'W'],
2235
+ ['🆇', 'X'],
2236
+ ['🆈', 'Y'],
2237
+ ['🆉', 'Z']
2238
+ ];
2239
+
2240
+ const doCustomReplacements = (string, replacements) => {
2241
+ for (const [key, value] of replacements) {
2242
+ // TODO: Use `String#replaceAll()` when targeting Node.js 16.
2243
+ string = string.replace(new RegExp(escapeStringRegexp(key), 'g'), value);
2244
+ }
2245
+
2246
+ return string;
2247
+ };
2248
+
2249
+ function transliterate(string, options) {
2250
+ if (typeof string !== 'string') {
2251
+ throw new TypeError(`Expected a string, got \`${typeof string}\``);
2252
+ }
2253
+
2254
+ options = {
2255
+ customReplacements: [],
2256
+ ...options
2257
+ };
2258
+
2259
+ const customReplacements = new Map([
2260
+ ...replacements,
2261
+ ...options.customReplacements
2262
+ ]);
2263
+
2264
+ string = string.normalize();
2265
+ string = doCustomReplacements(string, customReplacements);
2266
+ string = string.normalize('NFD').replace(/\p{Diacritic}/gu, '').normalize();
2267
+
2268
+ return string;
2269
+ }
2270
+
2271
+ const overridableReplacements = [
2272
+ ['&', ' and '],
2273
+ ['🦄', ' unicorn '],
2274
+ ['♥', ' love ']
2275
+ ];
2276
+
2277
+ const decamelize = string => {
2278
+ return string
2279
+ // Separate capitalized words.
2280
+ .replace(/([A-Z]{2,})(\d+)/g, '$1 $2')
2281
+ .replace(/([a-z\d]+)([A-Z]{2,})/g, '$1 $2')
2282
+
2283
+ .replace(/([a-z\d])([A-Z])/g, '$1 $2')
2284
+ // `[a-rt-z]` matches all lowercase characters except `s`.
2285
+ // This avoids matching plural acronyms like `APIs`.
2286
+ .replace(/([A-Z]+)([A-Z][a-rt-z\d]+)/g, '$1 $2');
2287
+ };
2288
+
2289
+ const removeMootSeparators = (string, separator) => {
2290
+ const escapedSeparator = escapeStringRegexp(separator);
2291
+
2292
+ return string
2293
+ .replace(new RegExp(`${escapedSeparator}{2,}`, 'g'), separator)
2294
+ .replace(new RegExp(`^${escapedSeparator}|${escapedSeparator}$`, 'g'), '');
2295
+ };
2296
+
2297
+ function slugify(string, options) {
2298
+ if (typeof string !== 'string') {
2299
+ throw new TypeError(`Expected a string, got \`${typeof string}\``);
2300
+ }
2301
+
2302
+ options = {
2303
+ separator: '-',
2304
+ lowercase: true,
2305
+ decamelize: true,
2306
+ customReplacements: [],
2307
+ preserveLeadingUnderscore: false,
2308
+ preserveTrailingDash: false,
2309
+ ...options
2310
+ };
2311
+
2312
+ const shouldPrependUnderscore = options.preserveLeadingUnderscore && string.startsWith('_');
2313
+ const shouldAppendDash = options.preserveTrailingDash && string.endsWith('-');
2314
+
2315
+ const customReplacements = new Map([
2316
+ ...overridableReplacements,
2317
+ ...options.customReplacements
2318
+ ]);
2319
+
2320
+ string = transliterate(string, {customReplacements});
2321
+
2322
+ if (options.decamelize) {
2323
+ string = decamelize(string);
2324
+ }
2325
+
2326
+ let patternSlug = /[^a-zA-Z\d]+/g;
2327
+
2328
+ if (options.lowercase) {
2329
+ string = string.toLowerCase();
2330
+ patternSlug = /[^a-z\d]+/g;
2331
+ }
2332
+
2333
+ string = string.replace(patternSlug, options.separator);
2334
+ string = string.replace(/\\/g, '');
2335
+ if (options.separator) {
2336
+ string = removeMootSeparators(string, options.separator);
2337
+ }
2338
+
2339
+ if (shouldPrependUnderscore) {
2340
+ string = `_${string}`;
2341
+ }
2342
+
2343
+ if (shouldAppendDash) {
2344
+ string = `${string}-`;
2345
+ }
2346
+
2347
+ return string;
2348
+ }
2349
+
2350
+ /**
2351
+ * Transform to lowercase, extract accents to separate unicode chars,
2352
+ * replace all accent unicode chars so only standard latin chars remain
2353
+ * https://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript/37511463#37511463
2354
+ *
2355
+ * @param str Input string
2356
+ * @returns
2357
+ */
2358
+ const hardNormalize = (str) => str
2359
+ .toLowerCase()
2360
+ .normalize('NFD')
2361
+ .replace(/[\u0300-\u036f]/g, '');
2362
+ /**
2363
+ * Convert a poi name to a URL compatible slug, logic copied from TOPOS
2364
+ * @param fragment A poi name
2365
+ * @returns
2366
+ */
2367
+ const createSlug = (fragment) => slugify(fragment
2368
+ .replace(/ \/ /g, '-')
2369
+ .replace(/ /g, '-')
2370
+ .replace(/\//g, '')
2371
+ .replace(/\./g, '')
2372
+ .replace(/\,/g, '')
2373
+ .replace(/\'/g, ''));
2374
+
2375
+ // Never load types twice
2376
+ let typesCache = null;
2377
+ /**
2378
+ * Convert Post POI ids to stao cache ids
2379
+ * @returns
2380
+ */
2381
+ const convertTypes = async () => {
2382
+ if (typesCache === null) {
2383
+ try {
2384
+ const typesResponse = await fetch(`${gisAPIUrl}/Types?lang=${store.state.currentLanguage}`);
2385
+ const typesJSON = (await typesResponse.json());
2386
+ typesCache = encodeURIComponent(pois
2387
+ .map(poi => {
2388
+ const foundType = typesJSON.types.find(type => type.id === poi);
2389
+ return foundType === null || foundType === void 0 ? void 0 : foundType.tag;
2390
+ })
2391
+ .filter(poi => poi !== undefined)
2392
+ .join(','));
2393
+ }
2394
+ catch (error) {
2395
+ console.error('Fetching places failed. Did you add "places.post.ch" to your connect-src content security policy?');
2396
+ throw error;
2397
+ }
2398
+ }
2399
+ return typesCache;
2400
+ };
2401
+ /**
2402
+ * Query the Gis API for locations and localities (pois)
2403
+ *
2404
+ * @param query User input string
2405
+ * @returns
2406
+ */
2407
+ const queryPlaces = async (query) => {
2408
+ if (query.length === 0) {
2409
+ return [];
2410
+ }
2411
+ const limit = 8;
2412
+ const excludeTypes = ['address', 'locality', 'region'];
2413
+ const types = await convertTypes();
2414
+ const geocoderUrl = `${gisAPIUrl}/Geocode?query=${encodeURIComponent(query)}&lang=${store.state.currentLanguage}&pois=${types}&limit=100`;
2415
+ try {
2416
+ const geocodeResponse = await fetch(geocoderUrl);
2417
+ const geocodeJSON = (await geocodeResponse.json());
2418
+ if (!geocodeJSON.ok) {
2419
+ throw new Error(geocodeJSON.info);
2420
+ }
2421
+ return geocodeJSON.locations
2422
+ .filter(location => !excludeTypes.includes(location.type))
2423
+ .slice(0, limit);
2424
+ }
2425
+ catch (error) {
2426
+ console.error('Fetching places failed. Did you add "places.post.ch" to your connect-src content security policy?');
2427
+ throw error;
2428
+ }
2429
+ };
2430
+ /**
2431
+ * Try to highlight place suggestions
2432
+ * Limitation: accented chars are not handled by this basic function
2433
+ *
2434
+ * @param query Search term
2435
+ * @param place Name of the suggested place
2436
+ * @returns
2437
+ */
2438
+ const highlightPlacesString = (query, place) => {
2439
+ if (query === undefined)
2440
+ return place;
2441
+ // Strip accents from the string
2442
+ const reference = hardNormalize(place);
2443
+ const q = hardNormalize(query);
2444
+ const indexOfQuery = reference.indexOf(q);
2445
+ if (indexOfQuery < 0) {
2446
+ return place;
2447
+ }
2448
+ return `${place.substring(0, indexOfQuery)}{${place.substring(indexOfQuery, indexOfQuery + query.length)}}${place.substring(indexOfQuery + query.length, place.length)}`;
2449
+ };
2450
+ /**
2451
+ * Get the deeplink to any location found via geocoder
2452
+ *
2453
+ * @param location A location from the Gis API Geocode endpoint
2454
+ * @returns
2455
+ */
2456
+ const getPlacesUrl = (location) => {
2457
+ let url;
2458
+ if (location.id !== '') {
2459
+ url = `${placesUrl}/${store.state.currentLanguage}/${location.id}/${createSlug(location.name)}`;
2460
+ }
2461
+ else {
2462
+ url = `${placesUrl}?preselecttext=${encodeURIComponent(location.name)}`;
2463
+ }
2464
+ return url;
2465
+ };
2466
+
2467
+ const HighlightedText = (props) => {
2468
+ var _a;
2469
+ const highlightClass = (_a = props.highlightClass) !== null && _a !== void 0 ? _a : 'bold';
2470
+ const highlightedString = props.text
2471
+ .replace(/{/g, `<span class=${highlightClass}>`)
2472
+ .replace(/}/g, '</span>')
2473
+ .replace(/[\[\]]/g, '');
2474
+ return index.h("span", { innerHTML: highlightedString });
2475
+ };
2476
+
2477
+ const postSearchCss = "@charset \"UTF-8\";/*!\n * Bootstrap Utilities v5.1.3 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n\n * The MIT License (MIT)\n\n * Copyright (c) 2011-2020 Twitter, Inc.\n * Copyright (c) 2011-2020 The Bootstrap Authors\n\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */.form-label{margin-bottom:0.5rem;color:rgba(var(--post-contrast-color-rgb), 0.8)}.col-form-label{padding-top:calc(0.875rem + 2px);padding-bottom:calc(0.875rem + 2px);margin-bottom:0;font-size:inherit;line-height:1.4;color:rgba(var(--post-contrast-color-rgb), 0.8)}.col-form-label-lg{padding-top:calc(1.25rem + 2px);padding-bottom:calc(1.25rem + 2px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(0.375rem + 2px);padding-bottom:calc(0.375rem + 2px);font-size:0.875rem}.form-text{margin-top:0.25rem;font-size:0.8125rem;color:var(--post-contrast-color)}.form-control{display:block;width:100%;padding:0.875rem 1.125rem;font-size:1rem;font-weight:400;line-height:1.4;color:#000;background-color:#fff;background-clip:padding-box;border:2px solid #666666;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0;-webkit-transition:border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;transition:border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;transition:border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;transition:border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{-webkit-transition:none;transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#000;background-color:#fff;border-color:#000;outline:0;-webkit-box-shadow:0 0 0 0.125rem rgba(51, 51, 51, 0.25);box-shadow:0 0 0 0.125rem rgba(51, 51, 51, 0.25)}.form-control::-webkit-date-and-time-value{height:1.4em}.form-control::-webkit-input-placeholder{color:#666666;opacity:1}.form-control::-moz-placeholder{color:#666666;opacity:1}.form-control:-ms-input-placeholder{color:#666666;opacity:1}.form-control::-ms-input-placeholder{color:#666666;opacity:1}.form-control::placeholder{color:#666666;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:rgba(var(--post-contrast-color-inverted-rgb), 0.6);border-color:#cccccc;opacity:1}.form-control::-webkit-file-upload-button{padding:0.875rem 1.125rem;margin:-0.875rem -1.125rem;-webkit-margin-end:1.125rem;margin-inline-end:1.125rem;color:#000;background-color:rgba(var(--post-contrast-color-inverted-rgb), 0.6);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:2px;border-radius:0;-webkit-transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1);transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1)}.form-control::file-selector-button{padding:0.875rem 1.125rem;margin:-0.875rem -1.125rem;-webkit-margin-end:1.125rem;margin-inline-end:1.125rem;color:#000;background-color:rgba(var(--post-contrast-color-inverted-rgb), 0.6);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:2px;border-radius:0;-webkit-transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1);transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1)}@media (prefers-reduced-motion: reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#fff}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#fff}.form-control::-webkit-file-upload-button{padding:0.875rem 1.125rem;margin:-0.875rem -1.125rem;-webkit-margin-end:1.125rem;margin-inline-end:1.125rem;color:#000;background-color:rgba(var(--post-contrast-color-inverted-rgb), 0.6);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:2px;border-radius:0;-webkit-transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1);transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1)}@media (prefers-reduced-motion: reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#fff}.form-control-plaintext{display:block;width:100%;padding:0.875rem 0;margin-bottom:0;line-height:1.4;color:var(--post-contrast-color);background-color:transparent;border:solid transparent;border-width:2px 0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg,.form-floating>.form-control-plaintext.form-control,.form-floating>.form-control-plaintext.form-select{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.8875rem + 4px);padding:0.375rem 0.875rem;font-size:0.875rem;border-radius:0}.form-control-sm::-webkit-file-upload-button{padding:0.375rem 0.875rem;margin:-0.375rem -0.875rem;-webkit-margin-end:0.875rem;margin-inline-end:0.875rem}.form-control-sm::file-selector-button{padding:0.375rem 0.875rem;margin:-0.375rem -0.875rem;-webkit-margin-end:0.875rem;margin-inline-end:0.875rem}.form-control-sm::-webkit-file-upload-button{padding:0.375rem 0.875rem;margin:-0.375rem -0.875rem;-webkit-margin-end:0.875rem;margin-inline-end:0.875rem}.form-control-lg,.form-floating>.form-control,.form-floating>.form-select{min-height:calc(4.25rem + 4px);padding:1.25rem 1.375rem;font-size:1.25rem;border-radius:0}.form-control-lg::-webkit-file-upload-button,.form-floating>.form-control::-webkit-file-upload-button,.form-floating>.form-select::-webkit-file-upload-button{padding:1.25rem 1.375rem;margin:-1.25rem -1.375rem;-webkit-margin-end:1.375rem;margin-inline-end:1.375rem}.form-control-lg::file-selector-button,.form-floating>.form-control::file-selector-button,.form-floating>.form-select::file-selector-button{padding:1.25rem 1.375rem;margin:-1.25rem -1.375rem;-webkit-margin-end:1.375rem;margin-inline-end:1.375rem}.form-control-lg::-webkit-file-upload-button,.form-floating>.form-control::-webkit-file-upload-button,.form-floating>.form-select::-webkit-file-upload-button{padding:1.25rem 1.375rem;margin:-1.25rem -1.375rem;-webkit-margin-end:1.375rem;margin-inline-end:1.375rem}textarea.form-control{min-height:calc(3.15rem + 4px)}textarea.form-control-sm{min-height:calc(1.8875rem + 4px)}textarea.form-control-lg,.form-floating>textarea.form-control,.form-floating>textarea.form-select{min-height:calc(4.25rem + 4px)}.form-control-color{width:3rem;height:auto;padding:0.875rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.4em;border-radius:0}.form-control-color::-webkit-color-swatch{height:1.4em;border-radius:0}.form-select{display:block;width:100%;padding:0.875rem 3.375rem 0.875rem 1.125rem;-moz-padding-start:calc(1.125rem - 3px);font-size:1rem;font-weight:400;line-height:1.4;color:#000;background-color:#fff;background-image:url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath opacity='1' fill='%23000000' d='M27.6 10.667l-11.6 11.6-11.467-11.6-1.067 1.067 12.533 12.4 12.533-12.4z'%3E%3C/path%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right 1.125rem center;background-size:14px 14px;border:2px solid #666666;border-radius:0;-webkit-transition:border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;transition:border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;transition:border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;transition:border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion: reduce){.form-select{-webkit-transition:none;transition:none}}.form-select:focus{border-color:#000;outline:0;-webkit-box-shadow:0 0 0 0.125rem rgba(51, 51, 51, 0.25);box-shadow:0 0 0 0.125rem rgba(51, 51, 51, 0.25)}.form-select[multiple],.form-select[size]:not([size=\"1\"]){padding-right:1.125rem;background-image:none}.form-select:disabled{color:#666666;background-color:rgba(var(--post-contrast-color-inverted-rgb), 0.6);border-color:#cccccc}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #000}.form-select-sm{padding-top:0.375rem;padding-bottom:0.375rem;padding-left:0.875rem;font-size:0.875rem;border-radius:0}.form-select-lg{padding-top:1.25rem;padding-bottom:1.25rem;padding-left:1.375rem;font-size:1.25rem;border-radius:0}.form-check{display:block;min-height:1.5rem;padding-left:0;margin-bottom:1rem}.form-check .form-check-input{float:left;margin-left:0}.form-check-input{width:1.5rem;height:1.5rem;margin-top:-0.05rem;vertical-align:top;background-color:transparent;background-repeat:no-repeat;background-position:center;background-size:contain;border:2px solid #666666;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact}.form-check-input[type=checkbox]{border-radius:0}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{-webkit-filter:none;filter:none}.form-check-input:focus{border-color:#000;outline:0;-webkit-box-shadow:0 0 0 0.125rem rgba(0, 0, 0, 0.25);box-shadow:0 0 0 0.125rem rgba(0, 0, 0, 0.25)}.form-check-input:checked{background-color:transparent;border-color:#000}.form-check-input:checked[type=checkbox]{background-image:url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath opacity='1' fill='%23000000' d='M12.667 23.6l-7.2-7.067 1.067-1.067 6.133 6.267 12.8-12.933 1.067 1.067z'%3E%3C/path%3E%3C/svg%3E\")}.form-check-input:checked[type=radio]{background-image:url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' viewBox='-3 -3 6 6'%3E%3Ccircle opacity='1' fill='%23000000' r='2'%3E%3C/circle%3E%3C/svg%3E\")}.form-check-input[type=checkbox]:indeterminate{background-color:transparent;border-color:#000;background-image:url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath opacity='1' fill='%23000000' d='M5.333 16.010l20-0.021 0.001 1.333-20 0.021-0.001-1.333z'%3E%3C/path%3E%3C/svg%3E\")}.form-check-input:disabled{pointer-events:none;-webkit-filter:none;filter:none;opacity:0.5}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{opacity:0.5}.form-check-label{color:rgba(var(--post-contrast-color-rgb), 0.8);cursor:pointer}.form-switch{padding-left:0}.form-switch .form-check-input{width:4rem;margin-left:0;background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-16 -16 32 32'%3e%3ccircle r='15' stroke='%23666666' stroke-width='2' fill='%23fff'/%3e%3c/svg%3e\");background-position:left center;border-radius:4rem;-webkit-transition:background-position 250ms cubic-bezier(0.4, 0, 0.2, 1), background-color 250ms;transition:background-position 250ms cubic-bezier(0.4, 0, 0.2, 1), background-color 250ms}@media (prefers-reduced-motion: reduce){.form-switch .form-check-input{-webkit-transition:none;transition:none}}.form-switch .form-check-input:focus{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-16 -16 32 32'%3e%3ccircle r='15' stroke='%23000' stroke-width='2' fill='%23fff'/%3e%3c/svg%3e\")}.form-switch .form-check-input:checked{background-position:right center;background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-16 -16 32 32'%3e%3ccircle r='15' stroke='%23000' stroke-width='2' fill='%23fff'/%3e%3c/svg%3e\")}.form-check-inline{display:inline-block;margin-right:1.5rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;-webkit-filter:none;filter:none;opacity:0.4}.form-range{width:100%;height:2.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{-webkit-box-shadow:0 0 0 1px #000, 0 0 0 0.2rem rgba(51, 51, 51, 0.25);box-shadow:0 0 0 1px #000, 0 0 0 0.2rem rgba(51, 51, 51, 0.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #000, 0 0 0 0.2rem rgba(51, 51, 51, 0.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:2rem;height:2rem;margin-top:-0.9rem;background-color:#fff;border:2px solid #000;border-radius:1rem;-webkit-transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#fff}.form-range::-webkit-slider-runnable-track{width:100%;height:0.2rem;color:transparent;cursor:pointer;background-color:#cccccc;border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:2rem;height:2rem;background-color:#fff;border:2px solid #000;border-radius:1rem;-moz-transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#fff}.form-range::-moz-range-track{width:100%;height:0.2rem;color:transparent;cursor:pointer;background-color:#cccccc;border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#fff}.form-range:disabled::-moz-range-thumb{background-color:#fff}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(4.25rem + 4px);line-height:1.4}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1.25rem 1.375rem;pointer-events:none;border:2px solid transparent;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1);transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1)}@media (prefers-reduced-motion: reduce){.form-floating>label{-webkit-transition:none;transition:none}}.form-floating>.form-control{padding:1.25rem 1.375rem}.form-floating>.form-control::-webkit-input-placeholder{color:transparent}.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control:-ms-input-placeholder{color:transparent}.form-floating>.form-control::-ms-input-placeholder{color:transparent}.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.5rem;padding-bottom:0}.form-floating>.form-control:not(:-ms-input-placeholder){padding-top:1.5rem;padding-bottom:0}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.5rem;padding-bottom:0}.form-floating>.form-control:-webkit-autofill{padding-top:1.5rem;padding-bottom:0}.form-floating>.form-select{padding-top:1.5rem;padding-bottom:0}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:1;transform:scale(0.7647058824)}.form-floating>.form-control:not(:-ms-input-placeholder)~label{opacity:1;transform:scale(0.7647058824)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:1;-webkit-transform:scale(0.7647058824);transform:scale(0.7647058824)}.form-floating>.form-control:-webkit-autofill~label{opacity:1;-webkit-transform:scale(0.7647058824);transform:scale(0.7647058824)}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:0.875rem 1.125rem;font-size:1rem;font-weight:400;line-height:1.4;color:#000;text-align:center;white-space:nowrap;background-color:rgba(var(--post-contrast-color-inverted-rgb), 0.6);border:2px solid #666666;border-radius:0}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:1.25rem 1.375rem;font-size:1.25rem;border-radius:0}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:0.375rem 0.875rem;font-size:0.875rem;border-radius:0}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:4.5rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-2px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:0;font-size:1rem;color:#666666}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:0.25rem 0.5rem;margin-top:0.1rem;font-size:1rem;color:#fff;background-color:#666666;border-radius:0}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:#666666;padding-right:3.15rem;background-image:url(\"data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='24pt' height='24pt' viewBox='0 0 24 24' version='1.1'%3E%3Cg id='surface1'%3E%3Cpath style=' stroke:none;fill-rule:nonzero;fill:rgb%280%25,50.588235%25,22.745098%25%29;fill-opacity:1;' d='M 9.5 18.398438 L 3.800781 12.699219 L 5.199219 11.300781 L 9.5 15.597656 L 18.800781 6.300781 L 20.199219 7.699219 Z M 9.5 18.398438 '/%3E%3C/g%3E%3C/svg%3E%0A\");background-repeat:no-repeat;background-position:right calc(0.35em + 0.4375rem) center;background-size:calc(0.7em + 0.875rem) calc(0.7em + 0.875rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#666666;-webkit-box-shadow:0 0 0 0.125rem rgba(102, 102, 102, 0.25);box-shadow:0 0 0 0.125rem rgba(102, 102, 102, 0.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:3.15rem;background-position:top calc(0.35em + 0.4375rem) right calc(0.35em + 0.4375rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:#666666}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size=\"1\"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size=\"1\"]{padding-right:6.1875rem;background-image:url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath opacity='1' fill='%23000000' d='M27.6 10.667l-11.6 11.6-11.467-11.6-1.067 1.067 12.533 12.4 12.533-12.4z'%3E%3C/path%3E%3C/svg%3E\"), url(\"data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='24pt' height='24pt' viewBox='0 0 24 24' version='1.1'%3E%3Cg id='surface1'%3E%3Cpath style=' stroke:none;fill-rule:nonzero;fill:rgb%280%25,50.588235%25,22.745098%25%29;fill-opacity:1;' d='M 9.5 18.398438 L 3.800781 12.699219 L 5.199219 11.300781 L 9.5 15.597656 L 18.800781 6.300781 L 20.199219 7.699219 Z M 9.5 18.398438 '/%3E%3C/g%3E%3C/svg%3E%0A\");background-position:right 1.125rem center, center right 3.375rem;background-size:14px 14px, calc(0.7em + 0.875rem) calc(0.7em + 0.875rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:#666666;-webkit-box-shadow:0 0 0 0.125rem rgba(102, 102, 102, 0.25);box-shadow:0 0 0 0.125rem rgba(102, 102, 102, 0.25)}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:#666666}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:#666666}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{-webkit-box-shadow:0 0 0 0.125rem rgba(102, 102, 102, 0.25);box-shadow:0 0 0 0.125rem rgba(102, 102, 102, 0.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#666666}.form-check-inline .form-check-input~.valid-feedback{margin-left:0.5em}.was-validated .input-group .form-control:valid,.input-group .form-control.is-valid,.was-validated .input-group .form-select:valid,.input-group .form-select.is-valid{z-index:1}.was-validated .input-group .form-control:valid:focus,.input-group .form-control.is-valid:focus,.was-validated .input-group .form-select:valid:focus,.input-group .form-select.is-valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:0;font-size:1rem;color:#a51728}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:0.25rem 0.5rem;margin-top:0.1rem;font-size:1rem;color:#fff;background-color:#a51728;border-radius:0}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#a51728;padding-right:3.15rem;background-image:url(\"data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='24pt' height='24pt' viewBox='0 0 24 24' version='1.1'%3E%3Cg id='surface1'%3E%3Cpath style=' stroke:none;fill-rule:nonzero;fill:rgb%2864.705882%25,9.019608%25,15.686275%25%29;fill-opacity:1;' d='M 11 3 L 13 3 L 13 17 L 11 17 Z M 11 3 '/%3E%3Cpath style=' stroke:none;fill-rule:nonzero;fill:rgb%2864.705882%25,9.019608%25,15.686275%25%29;fill-opacity:1;' d='M 11 19 L 13 19 L 13 21 L 11 21 Z M 11 19 '/%3E%3C/g%3E%3C/svg%3E%0A\");background-repeat:no-repeat;background-position:right calc(0.35em + 0.4375rem) center;background-size:calc(0.7em + 0.875rem) calc(0.7em + 0.875rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#a51728;-webkit-box-shadow:0 0 0 0.125rem rgba(165, 23, 40, 0.25);box-shadow:0 0 0 0.125rem rgba(165, 23, 40, 0.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:3.15rem;background-position:top calc(0.35em + 0.4375rem) right calc(0.35em + 0.4375rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:#a51728}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size=\"1\"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size=\"1\"]{padding-right:6.1875rem;background-image:url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath opacity='1' fill='%23000000' d='M27.6 10.667l-11.6 11.6-11.467-11.6-1.067 1.067 12.533 12.4 12.533-12.4z'%3E%3C/path%3E%3C/svg%3E\"), url(\"data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='24pt' height='24pt' viewBox='0 0 24 24' version='1.1'%3E%3Cg id='surface1'%3E%3Cpath style=' stroke:none;fill-rule:nonzero;fill:rgb%2864.705882%25,9.019608%25,15.686275%25%29;fill-opacity:1;' d='M 11 3 L 13 3 L 13 17 L 11 17 Z M 11 3 '/%3E%3Cpath style=' stroke:none;fill-rule:nonzero;fill:rgb%2864.705882%25,9.019608%25,15.686275%25%29;fill-opacity:1;' d='M 11 19 L 13 19 L 13 21 L 11 21 Z M 11 19 '/%3E%3C/g%3E%3C/svg%3E%0A\");background-position:right 1.125rem center, center right 3.375rem;background-size:14px 14px, calc(0.7em + 0.875rem) calc(0.7em + 0.875rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:#a51728;-webkit-box-shadow:0 0 0 0.125rem rgba(165, 23, 40, 0.25);box-shadow:0 0 0 0.125rem rgba(165, 23, 40, 0.25)}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:#a51728}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:#a51728}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{-webkit-box-shadow:0 0 0 0.125rem rgba(165, 23, 40, 0.25);box-shadow:0 0 0 0.125rem rgba(165, 23, 40, 0.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#a51728}.form-check-inline .form-check-input~.invalid-feedback{margin-left:0.5em}.was-validated .input-group .form-control:invalid,.input-group .form-control.is-invalid,.was-validated .input-group .form-select:invalid,.input-group .form-select.is-invalid{z-index:2}.was-validated .input-group .form-control:invalid:focus,.input-group .form-control.is-invalid:focus,.was-validated .input-group .form-select:invalid:focus,.input-group .form-select.is-invalid:focus{z-index:3}.form-control-rg{height:calc(2.65rem + 4px);padding:0.625rem 0.875rem;font-size:1rem;line-height:1.4}select.form-control-rg:not([size]):not([multiple]){height:calc(2.65rem + 4px)}.form-control{position:relative}.form-control:disabled{color:#666666}.form-control[readonly]:not(:disabled){border-color:#666666;background-color:#fff}.form-control[type=file]{min-height:calc(3.15rem + 4px)}.form-control[type=file]::-webkit-file-upload-button{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:0;margin-inline-end:0;padding-left:0;padding-right:0;width:0;border:0 none}.form-control[type=file]::file-selector-button{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:0;margin-inline-end:0;padding-left:0;padding-right:0;width:0;border:0 none}.form-control[type=file]::after{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;content:\"Choose File\";position:absolute;top:0;bottom:0;right:0;z-index:2;padding-left:inherit;padding-right:inherit;background-color:inherit;border-left:inherit;text-align:center}[lang=de] .form-control[type=file]::after{content:\"Datei auswählen\"}[lang=fr] .form-control[type=file]::after{content:\"Choisir un fichier\"}[lang=it] .form-control[type=file]::after{content:\"Scegli file\"}.form-control[type=file].form-control-sm{min-height:calc(2.15rem + 4px)}.form-control[type=file].form-control-rg{min-height:calc(2.65rem + 4px)}.form-control[type=file].form-control-lg{min-height:calc(3.9rem + 4px)}@media (forced-colors: active), (-ms-high-contrast: active), (-ms-high-contrast: white-on-black){.form-control:hover,.form-control:focus{border-color:Highlight}.form-control:hover[type=file]::after,.form-control:focus[type=file]::after{border-color:Highlight}}.form-floating>label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;top:2px;left:2px;margin:0;padding:1.25rem 1.375rem;height:4.25rem;border:0;color:#666666;font-size:1.0625rem;max-width:calc(100% - 4px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-transform-origin:1.375rem 0;transform-origin:1.375rem 0;-webkit-transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1), width 0ms linear;transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1), width 0ms linear}.form-floating>.form-control{}.form-floating>.form-control[type=file]::-webkit-file-upload-button{padding-top:1.7rem}.form-floating>.form-control[type=file]::file-selector-button{padding-top:1.7rem}.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.5rem;padding-bottom:0}.form-floating>.form-control:not(:-ms-input-placeholder){padding-top:1.5rem;padding-bottom:0}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.5rem;padding-bottom:0}.form-floating>.form-control:not(:-moz-placeholder-shown)[type=file]::file-selector-button{padding-top:1.7rem}.form-floating>.form-control:not(:-ms-input-placeholder)[type=file]::file-selector-button{padding-top:1.7rem}.form-floating>.form-control:focus[type=file]::-webkit-file-upload-button,.form-floating>.form-control:not(:placeholder-shown)[type=file]::-webkit-file-upload-button{padding-top:1.7rem}.form-floating>.form-control:focus[type=file]::file-selector-button,.form-floating>.form-control:not(:placeholder-shown)[type=file]::file-selector-button{padding-top:1.7rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{padding-top:0;max-width:calc(130.7692307692% - 0.8461538462rem - 5.2307692308px);-moz-transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1), width 0ms 250ms cubic-bezier(0.4, 0, 0.2, 1);transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1), width 0ms 250ms cubic-bezier(0.4, 0, 0.2, 1)}.form-floating>.form-control:not(:-ms-input-placeholder)~label{padding-top:0;max-width:calc(130.7692307692% - 0.8461538462rem - 5.2307692308px);-ms-transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1), width 0ms 250ms cubic-bezier(0.4, 0, 0.2, 1);transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1), width 0ms 250ms cubic-bezier(0.4, 0, 0.2, 1)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label{padding-top:0;max-width:calc(130.7692307692% - 0.8461538462rem - 5.2307692308px);-webkit-transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1), width 0ms 250ms cubic-bezier(0.4, 0, 0.2, 1);transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1), width 0ms 250ms cubic-bezier(0.4, 0, 0.2, 1)}.form-floating>.form-select{padding-top:1.5rem;padding-bottom:0}.form-floating>.form-select~label{padding-top:0;max-width:calc(130.7692307692% - 0.8461538462rem - 5.2307692308px);-webkit-transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1), width 0ms 250ms cubic-bezier(0.4, 0, 0.2, 1);transition:all 250ms cubic-bezier(0.4, 0, 0.2, 1), width 0ms 250ms cubic-bezier(0.4, 0, 0.2, 1)}.form-floating>.form-select:empty{padding-top:1.5rem;padding-bottom:0}.form-floating>.form-select:empty~label{padding-top:1.25rem;max-width:calc(100% - 4px);-webkit-transform:none;transform:none}.form-floating>.form-select[multiple]{padding-top:2.25rem;padding-bottom:0;height:auto}.form-floating>.form-select[multiple] option{height:1.4em}.form-floating>.form-select[multiple]~label{padding-top:0.9558823529rem;padding-bottom:0;width:calc(130.7692307692% - 0.8461538462rem - 5.2307692308px - 1.7980769231rem);height:auto;background:#fff}.form-floating>.form-select[multiple]:empty~label{padding-top:1.25rem;padding-bottom:1.25rem;width:calc(100% - 4px - 1.375rem);height:4.25rem}.form-floating>textarea.form-control{padding-top:1.875rem;padding-bottom:1.25rem;height:auto}.form-floating>textarea.form-control~label{padding-bottom:0;width:calc(100% - 4px);max-width:none;height:unset}.form-floating>textarea.form-control:not(:-moz-placeholder-shown){padding-top:1.875rem;padding-bottom:1.25rem}.form-floating>textarea.form-control:not(:-ms-input-placeholder){padding-top:1.875rem;padding-bottom:1.25rem}.form-floating>textarea.form-control:focus,.form-floating>textarea.form-control:not(:placeholder-shown){padding-top:1.875rem;padding-bottom:1.25rem}.form-floating>textarea.form-control:not(:-moz-placeholder-shown)~label{padding-top:0.9558823529rem;width:calc(130.7692307692% - 0.8461538462rem - 5.2307692308px - 1.7980769231rem);max-width:none;background:#fff}.form-floating>textarea.form-control:not(:-ms-input-placeholder)~label{padding-top:0.9558823529rem;width:calc(130.7692307692% - 0.8461538462rem - 5.2307692308px - 1.7980769231rem);max-width:none;background:#fff}.form-floating>textarea.form-control:focus~label,.form-floating>textarea.form-control:not(:placeholder-shown)~label{padding-top:0.9558823529rem;width:calc(130.7692307692% - 0.8461538462rem - 5.2307692308px - 1.7980769231rem);max-width:none;background:#fff}.form-floating>textarea.form-control:is(.is-valid,.is-invalid)~label{width:calc(100% - 4px - 1.375rem - 0.5rem - 2rem)}.form-floating>textarea.form-control:is(.is-valid,.is-invalid):not(:-moz-placeholder-shown)~label{width:calc(130.7692307692% - 0.8461538462rem - 5.2307692308px - 1.7980769231rem - 0.6538461538rem - 2.6153846154rem)}.form-floating>textarea.form-control:is(.is-valid,.is-invalid):not(:-ms-input-placeholder)~label{width:calc(130.7692307692% - 0.8461538462rem - 5.2307692308px - 1.7980769231rem - 0.6538461538rem - 2.6153846154rem)}.form-floating>textarea.form-control:is(.is-valid,.is-invalid):focus~label,.form-floating>textarea.form-control:is(.is-valid,.is-invalid):not(:placeholder-shown)~label{width:calc(130.7692307692% - 0.8461538462rem - 5.2307692308px - 1.7980769231rem - 0.6538461538rem - 2.6153846154rem)}@media (forced-colors: active), (-ms-high-contrast: active), (-ms-high-contrast: white-on-black){.form-floating>input,.form-floating>textarea{}.form-floating>input::-webkit-input-placeholder,.form-floating>textarea::-webkit-input-placeholder{opacity:0}.form-floating>input::-moz-placeholder,.form-floating>textarea::-moz-placeholder{opacity:0}.form-floating>input:-ms-input-placeholder,.form-floating>textarea:-ms-input-placeholder{opacity:0}.form-floating>input::-ms-input-placeholder,.form-floating>textarea::-ms-input-placeholder{opacity:0}.form-floating>input::placeholder,.form-floating>textarea::placeholder{opacity:0}.form-floating>input::input-placeholder,.form-floating>textarea::input-placeholder{opacity:0}}.row{--bs-gutter-x:30px;--bs-gutter-y:0;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-0.5 * var(--bs-gutter-x));margin-left:calc(-0.5 * var(--bs-gutter-x))}.row>*{-ms-flex-negative:0;flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * 0.5);padding-left:calc(var(--bs-gutter-x) * 0.5);margin-top:var(--bs-gutter-y)}.col{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width: 400px){.col-sm{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-sm-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-sm-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-sm-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-sm-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-sm-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-sm-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-sm-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-sm-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-sm-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-sm-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-sm-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-sm-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-sm-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-sm-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-sm-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-sm-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-sm-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-sm-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width: 600px){.col-rg{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-rg-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-rg-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-rg-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-rg-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-rg-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-rg-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-rg-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-rg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-rg-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-rg-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-rg-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-rg-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-rg-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-rg-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-rg-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-rg-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-rg-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-rg-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-rg-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-rg-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-rg-0{margin-left:0}.offset-rg-1{margin-left:8.33333333%}.offset-rg-2{margin-left:16.66666667%}.offset-rg-3{margin-left:25%}.offset-rg-4{margin-left:33.33333333%}.offset-rg-5{margin-left:41.66666667%}.offset-rg-6{margin-left:50%}.offset-rg-7{margin-left:58.33333333%}.offset-rg-8{margin-left:66.66666667%}.offset-rg-9{margin-left:75%}.offset-rg-10{margin-left:83.33333333%}.offset-rg-11{margin-left:91.66666667%}.g-rg-0,.gx-rg-0{--bs-gutter-x:0}.g-rg-0,.gy-rg-0{--bs-gutter-y:0}.g-rg-1,.gx-rg-1{--bs-gutter-x:0.25rem}.g-rg-1,.gy-rg-1{--bs-gutter-y:0.25rem}.g-rg-2,.gx-rg-2{--bs-gutter-x:0.5rem}.g-rg-2,.gy-rg-2{--bs-gutter-y:0.5rem}.g-rg-3,.gx-rg-3{--bs-gutter-x:1rem}.g-rg-3,.gy-rg-3{--bs-gutter-y:1rem}.g-rg-4,.gx-rg-4{--bs-gutter-x:1.5rem}.g-rg-4,.gy-rg-4{--bs-gutter-y:1.5rem}.g-rg-5,.gx-rg-5{--bs-gutter-x:3rem}.g-rg-5,.gy-rg-5{--bs-gutter-y:3rem}}@media (min-width: 780px){.col-md{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-md-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-md-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-md-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-md-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-md-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-md-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-md-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-md-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-md-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-md-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-md-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-md-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-md-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-md-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-md-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-md-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-md-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-md-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width: 1024px){.col-lg{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-lg-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-lg-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-lg-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-lg-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-lg-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-lg-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-lg-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-lg-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-lg-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-lg-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-lg-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-lg-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-lg-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-lg-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-lg-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-lg-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-lg-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-lg-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width: 1280px){.col-xl{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-xl-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-xl-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-xl-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-xl-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-xl-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-xl-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-xl-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-xl-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-xl-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-xl-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-xl-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-xl-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-xl-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-xl-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-xl-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-xl-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-xl-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-xl-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width: 1441px){.col-xxl{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-xxl-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-xxl-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-xxl-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-xxl-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-xxl-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-xxl-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-xxl-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-xxl-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-xxl-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-xxl-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-xxl-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-xxl-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-xxl-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-xxl-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-xxl-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-xxl-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-xxl-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-xxl-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.container,.container-fluid,.container-xs{width:100%;padding-right:var(--bs-gutter-x, 15px);padding-left:var(--bs-gutter-x, 15px);margin-right:auto;margin-left:auto}.container{max-width:1440px}.vertical-gutters{margin-bottom:-30px}.vertical-gutters>.col,.vertical-gutters>[class*=col-]{padding-bottom:30px}.row.border-gutters{margin-right:-1px;margin-bottom:-1px;margin-left:0}.row.border-gutters>.col,.row.border-gutters>[class*=col-]{padding-right:1px;padding-bottom:1px;padding-left:0}.container{padding-right:12px;padding-left:12px}.container-reset{margin-right:-12px;margin-left:-12px}.container-reset-left{margin-left:-12px}.container-reset-right{margin-right:-12px}@media (max-width: 399.98px){.container-fluid-xs{padding-right:1rem;padding-left:1rem}}@media (min-width: 400px){.container{padding-right:16px;padding-left:16px}}@media (min-width: 400px){.container-reset{margin-right:-16px;margin-left:-16px}}@media (min-width: 400px){.container-reset-left{margin-left:-16px}}@media (min-width: 400px){.container-reset-right{margin-right:-16px}}@media (min-width: 400px) and (max-width: 599.98px){.container-fluid-sm{padding-right:1rem;padding-left:1rem}}@media (min-width: 600px){.container{padding-right:32px;padding-left:32px}}@media (min-width: 600px){.container-reset{margin-right:-32px;margin-left:-32px}}@media (min-width: 600px){.container-reset-left{margin-left:-32px}}@media (min-width: 600px){.container-reset-right{margin-right:-32px}}@media (min-width: 600px) and (max-width: 779.98px){.container-fluid-rg{padding-right:1rem;padding-left:1rem}}@media (min-width: 780px) and (max-width: 1023.98px){.container-fluid-md{padding-right:1rem;padding-left:1rem}}@media (min-width: 1024px){.container{padding-right:40px;padding-left:40px}}@media (min-width: 1024px){.container-reset{margin-right:-40px;margin-left:-40px}}@media (min-width: 1024px){.container-reset-left{margin-left:-40px}}@media (min-width: 1024px){.container-reset-right{margin-right:-40px}}@media (min-width: 1024px) and (max-width: 1279.98px){.container-fluid-lg{padding-right:1rem;padding-left:1rem}}@media (min-width: 1280px){.container{padding-right:128px;padding-left:128px}}@media (min-width: 1280px){.container-reset{margin-right:-128px;margin-left:-128px}}@media (min-width: 1280px){.container-reset-left{margin-left:-128px}}@media (min-width: 1280px){.container-reset-right{margin-right:-128px}}@media (min-width: 1280px) and (max-width: 1440.98px){.container-fluid-xl{padding-right:1rem;padding-left:1rem}}@media (min-width: 1441px){.container-fluid-xxl{padding-right:1rem;padding-left:1rem}}@font-face{font-display:swap;font-family:\"Frutiger Neue For Post\";font-weight:700;src:url(\"https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Bold.woff2\") format(\"woff2\"), url(\"https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Bold.woff\") format(\"woff\")}@font-face{font-display:swap;font-family:\"Frutiger Neue For Post\";font-weight:400;src:url(\"https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Rg.woff2\") format(\"woff2\"), url(\"https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Rg.woff\") format(\"woff\")}@font-face{font-display:swap;font-family:\"Frutiger Neue For Post\";font-weight:300;src:url(\"https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Lt.woff2\") format(\"woff2\"), url(\"https://fonts.post.ch/frutigerneueforpost/v2/FrutigerNeueforPostW05-Lt.woff\") format(\"woff\")}*,:host,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{font-family:\"Frutiger Neue For Post\", system-ui, sans-serif}button{font:inherit;padding:0}img,svg{max-width:100%;max-height:100%}@media (forced-colors: active){svg{color:white}}.no-list{list-style:none;padding-left:0;margin-top:0;margin-bottom:0}.btn-blank{background-color:transparent;border:none;border-radius:0;padding:0}.search-button,.nav-link{text-decoration:none;color:rgba(0, 0, 0, 0.8);-webkit-transition:color 200ms;transition:color 200ms;background-color:transparent;border-radius:0;-webkit-box-shadow:none;box-shadow:none;border:0;margin:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:0.5rem}.search-button:hover,.nav-link:hover,.search-button:focus,.nav-link:focus{color:black}.search-button>svg,.nav-link>svg{width:1.4em;height:1.4em;-ms-flex-negative:0;flex-shrink:0}.search-button>span,.nav-link>span{-ms-flex-negative:1;flex-shrink:1}.box>*:first-child{margin-top:0}.box>*:last-child{margin-bottom:0}.mirrored{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.bold{font-weight:700}.light{font-weight:300}.d-flex{display:-ms-flexbox;display:flex}.d-inline-flex{display:-ms-inline-flexbox;display:inline-flex}.align-items-center{-ms-flex-align:center;align-items:center}@media (min-width: 1441px){.wide-container{margin:0 auto;max-width:1440px}}@media (max-width: 599.98px){.container{padding-right:16px;padding-left:16px}}@media (min-width: 600px) and (max-width: 1023.98px){.container{padding-right:32px;padding-left:32px}}@media (min-width: 1024px){.container{padding-right:40px;padding-left:40px}}.visually-hidden{position:absolute;width:1px;height:1px;border:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0)}@media (max-width: -0.02px){.hidden-xs{display:none}}@media (max-width: 399.98px){.hidden-sm{display:none}}@media (max-width: 599.98px){.hidden-rg{display:none}}@media (max-width: 779.98px){.hidden-md{display:none}}@media (max-width: 1023.98px){.hidden-lg{display:none}}@media (max-width: 1279.98px){.hidden-xl{display:none}}@media (max-width: 1440.98px){.hidden-xxl{display:none}}:host{display:block}.search,:host{height:100%}.search-button{height:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;cursor:pointer;padding-right:calc(1rem - 1px);padding-left:calc(1rem - 1px)}@media (min-width: 1024px){.search-button{padding:0 calc(1.125rem - 1px)}}@media (min-width: 1280px){.search-button{padding:0 calc(1.5rem - 1px)}}.search-button svg{width:1.5rem;height:1.5rem}@media (min-width: 600px) and (max-width: 1023.98px){.search-button .visually-hidden{position:static;width:auto;height:auto;margin:auto;overflow:visible;clip:auto;visibility:visible;font-weight:300;margin-right:0.5rem;cursor:pointer}}.flyout{position:absolute;top:100%;left:0;width:100%;background:white;overflow:auto;-ms-scroll-chaining:none;overscroll-behavior:contain;padding-top:3.25rem;padding-bottom:3.25rem;z-index:-1;-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transition:-webkit-transform 0.35s, -webkit-box-shadow 0.35s;transition:-webkit-transform 0.35s, -webkit-box-shadow 0.35s;transition:transform 0.35s, box-shadow 0.35s;transition:transform 0.35s, box-shadow 0.35s, -webkit-transform 0.35s, -webkit-box-shadow 0.35s}@media (prefers-reduced-motion: reduce){.flyout{-webkit-transition:none;transition:none}}@media (min-width: 1024px){.flyout{max-height:calc(100vh - var(--header-height) - var(--meta-header-height) - 1px);-webkit-box-shadow:0 0 1px 0 rgba(0, 0, 0, 0.4);box-shadow:0 0 1px 0 rgba(0, 0, 0, 0.4)}.flyout.open{-webkit-box-shadow:0 0 8px 0 rgba(0, 0, 0, 0.4);box-shadow:0 0 8px 0 rgba(0, 0, 0, 0.4)}}@media (max-width: 1023.98px){.flyout{height:calc(100vh - var(--header-height) - 1px)}}.flyout.open{-webkit-transform:translateY(0);transform:translateY(0)}.start-search-button{position:absolute;top:0;right:0;height:100%;padding-right:1rem;padding-left:1rem;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;cursor:pointer}.start-search-button svg{width:1.5rem;height:1.5rem}.suggestions{margin:1.5rem 0}.suggestions a{padding:0.75rem 1rem}.suggestions a:hover,.suggestions a:focus,.suggestions a.selected{background:#f4f3f1}.suggestions a.parcel-suggestion{-ms-flex-wrap:wrap;flex-wrap:wrap}.search-recommendation__icon{height:1.5em;width:1.5em}";
2478
+
2479
+ const PostSearch = class {
2480
+ constructor(hostRef) {
2481
+ index.registerInstance(this, hostRef);
2482
+ this.dropdownToggled = index.createEvent(this, "dropdownToggled", 7);
2483
+ this.searchDropdownOpen = false;
2484
+ this.coveoSuggestions = [];
2485
+ this.placeSuggestions = [];
2486
+ this.parcelSuggestion = null;
2487
+ }
2488
+ connectedCallback() {
2489
+ this.throttledResize = index$1.throttle(300, () => this.handleResize());
2490
+ window.addEventListener('resize', this.throttledResize, { passive: true });
2491
+ }
2492
+ disconnectedCallback() {
2493
+ window.removeEventListener('resize', this.throttledResize);
2494
+ bodyScrollLock_esm.clearAllBodyScrollLocks();
2495
+ }
2496
+ componentWillUpdate() {
2497
+ // Check if search flyout got set to close
2498
+ if (this.searchFlyout && !this.searchDropdownOpen) {
2499
+ this.searchFlyout.classList.remove('open');
2500
+ // Check if element has transition applied and whether user prefers to see animations or not
2501
+ if (ui_service.elementHasTransition(this.searchFlyout, 'transform') && !ui_service.userPrefersReducedMotion()) {
2502
+ // Wait for CSS transition 'transform' to end before continuing
2503
+ return new Promise(resolve => {
2504
+ if (this.searchFlyout === undefined) {
2505
+ return resolve(true);
2506
+ }
2507
+ this.searchFlyout.addEventListener('transitionend', event => {
2508
+ if (event.propertyName === 'transform') {
2509
+ resolve(true);
2510
+ }
2511
+ });
2512
+ });
2513
+ }
2514
+ }
2515
+ }
2516
+ componentDidUpdate() {
2517
+ // Search flyout got set to open
2518
+ if (this.searchFlyout && this.searchDropdownOpen) {
2519
+ // Force browser to redraw/refresh DOM before adding 'open' class
2520
+ this.searchFlyout.getBoundingClientRect();
2521
+ this.searchFlyout.classList.add('open');
2522
+ }
2523
+ // Focus on the searchBox whenever the dropdown is opened
2524
+ if (this.searchDropdownOpen && this.searchBox) {
2525
+ this.searchBox.focus({ preventScroll: true });
2526
+ }
2527
+ }
2528
+ /**
2529
+ * Toggle the dropdown and optionally force an open/closed state
2530
+ * @param force Boolean to force open/closed state
2531
+ * @returns Boolean indicating open state of the component
2532
+ */
2533
+ async toggleDropdown(force) {
2534
+ this.searchDropdownOpen =
2535
+ force === undefined || typeof force !== 'boolean' ? !this.searchDropdownOpen : force;
2536
+ this.dropdownToggled.emit({ open: this.searchDropdownOpen, element: this.host });
2537
+ if (!this.searchDropdownOpen) {
2538
+ // Reset suggestions when dropdown closes
2539
+ this.coveoSuggestions = [];
2540
+ this.placeSuggestions = [];
2541
+ if (this.searchBox)
2542
+ this.searchBox.value = '';
2543
+ this.setFocus();
2544
+ }
2545
+ else {
2546
+ // Get basic suggestions when dropdown opens
2547
+ try {
2548
+ this.coveoSuggestions = await getCoveoSuggestions('');
2549
+ }
2550
+ catch (_a) { }
2551
+ }
2552
+ this.setBodyScroll();
2553
+ return this.searchDropdownOpen;
2554
+ }
2555
+ /**
2556
+ * Sets the focus on the search button
2557
+ */
2558
+ async setFocus() {
2559
+ const shadowRoot = this.host.shadowRoot;
2560
+ if (shadowRoot === null) {
2561
+ return;
2562
+ }
2563
+ const toggleButton = shadowRoot.querySelector('.search-button');
2564
+ if (toggleButton) {
2565
+ toggleButton.focus();
2566
+ }
2567
+ }
2568
+ handleResize() {
2569
+ // Only enable/disable body scroll on resize if the search dropdown is open, otherwise this could lead to side effects in other controls
2570
+ if (this.searchDropdownOpen) {
2571
+ this.setBodyScroll();
2572
+ }
2573
+ }
2574
+ /**
2575
+ * Disable or re-enable body scrolling, depending on whether search dropdown is open or closed in mobile view (width < 1024px)
2576
+ */
2577
+ setBodyScroll() {
2578
+ if (this.searchDropdownOpen && window.innerWidth < 1024) {
2579
+ bodyScrollLock_esm.disableBodyScroll(this.searchFlyout);
2580
+ }
2581
+ else {
2582
+ bodyScrollLock_esm.enableBodyScroll(this.searchFlyout);
2583
+ }
2584
+ }
2585
+ /**
2586
+ * Fetch suggestions from all available sources
2587
+ */
2588
+ async handleSearchInput() {
2589
+ var _a;
2590
+ if (this.searchBox === undefined || ((_a = store.state.localizedConfig) === null || _a === void 0 ? void 0 : _a.header.search) === undefined) {
2591
+ return;
2592
+ }
2593
+ const query = this.searchBox.value.trim();
2594
+ const [placeSuggestions, coveoSuggestions, trackAndTraceInfo] = await Promise.all([
2595
+ queryPlaces(query),
2596
+ getCoveoSuggestions(query),
2597
+ getParcelSuggestion(query, store.state.localizedConfig.header.search),
2598
+ ]);
2599
+ // Parcel suggestion is more important than any other
2600
+ if (trackAndTraceInfo) {
2601
+ this.parcelSuggestion = trackAndTraceInfo;
2602
+ this.placeSuggestions = [];
2603
+ this.coveoSuggestions = [];
2604
+ }
2605
+ else {
2606
+ [this.coveoSuggestions, this.placeSuggestions] = equalizeArrays(coveoSuggestions, placeSuggestions, 8);
2607
+ }
2608
+ this.deselectSuggestion();
2609
+ }
2610
+ /**
2611
+ * Start search on enter
2612
+ * @param event
2613
+ */
2614
+ handleKeyDown(event) {
2615
+ var _a, _b, _c, _d;
2616
+ if (this.searchFlyout === undefined) {
2617
+ return;
2618
+ }
2619
+ let selectedSuggestion = this.searchFlyout.querySelector('.suggestions > li > a.selected');
2620
+ switch (event.key.toLowerCase()) {
2621
+ case 'enter':
2622
+ if (selectedSuggestion) {
2623
+ const selectedHref = selectedSuggestion.getAttribute('href');
2624
+ if (selectedHref !== null) {
2625
+ window.location.href = selectedHref;
2626
+ }
2627
+ }
2628
+ else {
2629
+ this.startSearch();
2630
+ }
2631
+ break;
2632
+ case 'arrowdown':
2633
+ case 'arrowup':
2634
+ const suggestions = this.searchFlyout.querySelectorAll('.suggestions > li > a');
2635
+ this.deselectSuggestion();
2636
+ if (event.key.toLowerCase() === 'arrowdown') {
2637
+ if ((_b = (_a = selectedSuggestion === null || selectedSuggestion === void 0 ? void 0 : selectedSuggestion.parentElement) === null || _a === void 0 ? void 0 : _a.nextElementSibling) === null || _b === void 0 ? void 0 : _b.firstElementChild) {
2638
+ // Select next suggestion if there's any, otherwise none will be selected
2639
+ selectedSuggestion.parentElement.nextElementSibling.firstElementChild.classList.add('selected');
2640
+ }
2641
+ else {
2642
+ // If there are any suggestions, select first suggestion in list
2643
+ if (suggestions.length > 0) {
2644
+ suggestions[0].classList.add('selected');
2645
+ }
2646
+ }
2647
+ }
2648
+ else if (event.key.toLowerCase() === 'arrowup') {
2649
+ if ((_d = (_c = selectedSuggestion === null || selectedSuggestion === void 0 ? void 0 : selectedSuggestion.parentElement) === null || _c === void 0 ? void 0 : _c.previousElementSibling) === null || _d === void 0 ? void 0 : _d.firstElementChild) {
2650
+ // Select previous suggestion if there's any, otherwise none will be selected
2651
+ selectedSuggestion.parentElement.previousElementSibling.firstElementChild.classList.add('selected');
2652
+ }
2653
+ else {
2654
+ // If there are any suggestions, select last suggestion in list
2655
+ if (suggestions.length > 0) {
2656
+ suggestions[suggestions.length - 1].classList.add('selected');
2657
+ }
2658
+ }
2659
+ }
2660
+ // Get the newly selected suggestion
2661
+ selectedSuggestion = this.searchFlyout.querySelector('.suggestions > li > a.selected');
2662
+ const suggestedText = selectedSuggestion === null || selectedSuggestion === void 0 ? void 0 : selectedSuggestion.dataset.suggestionText;
2663
+ // Update search box value with selected suggestion text
2664
+ if (suggestedText !== undefined && this.searchBox) {
2665
+ this.searchBox.value = suggestedText;
2666
+ }
2667
+ break;
2668
+ }
2669
+ }
2670
+ /**
2671
+ * Set selected suggestion on mouse enter
2672
+ * @param event
2673
+ */
2674
+ handleMouseEnterSuggestion(event) {
2675
+ this.deselectSuggestion();
2676
+ // Set hovered suggestion element as selected
2677
+ event.target.classList.add('selected');
2678
+ }
2679
+ /**
2680
+ * Set selected suggestion on mouse enter
2681
+ * @param event
2682
+ */
2683
+ handleMouseLeaveSuggestions() {
2684
+ this.deselectSuggestion();
2685
+ }
2686
+ /**
2687
+ * Deselect any previously selected suggestion
2688
+ */
2689
+ deselectSuggestion() {
2690
+ if (this.searchFlyout === undefined)
2691
+ return;
2692
+ const selectedSuggestion = this.searchFlyout.querySelector('.suggestions .selected');
2693
+ if (selectedSuggestion) {
2694
+ selectedSuggestion.classList.remove('selected');
2695
+ }
2696
+ }
2697
+ /**
2698
+ * Redirect to the post search page
2699
+ */
2700
+ async startSearch() {
2701
+ var _a;
2702
+ if (this.searchBox && ((_a = store.state.localizedConfig) === null || _a === void 0 ? void 0 : _a.header.search)) {
2703
+ const redirectUrl = await getSearchRedirectUrl(this.searchBox.value.trim(), store.state.localizedConfig.header.search);
2704
+ if (!redirectUrl)
2705
+ return;
2706
+ window.location.href = redirectUrl;
2707
+ }
2708
+ }
2709
+ render() {
2710
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
2711
+ if (((_a = store.state.localizedConfig) === null || _a === void 0 ? void 0 : _a.header) === undefined) {
2712
+ return;
2713
+ }
2714
+ const { translations, search } = store.state.localizedConfig.header;
2715
+ const showPortalRecommendations = ((_b = this.searchBox) === null || _b === void 0 ? void 0 : _b.value) === '' && ((_c = search.searchRecommendations) === null || _c === void 0 ? void 0 : _c.links.length) > 0;
2716
+ return (index.h(index.Host, null, index.h(svgSprite_component.SvgSprite, null), index.h("div", { class: "search" }, index.h("button", { id: "post-internet-header-search-button", class: "search-button", type: "button", "aria-expanded": `${this.searchDropdownOpen}`, onClick: e => this.toggleDropdown(e) }, index.h("span", { class: "visually-hidden" }, this.searchDropdownOpen
2717
+ ? translations.searchToggleExpanded
2718
+ : translations.searchToggle), index.h(svgIcon_component.SvgIcon, { name: this.searchDropdownOpen ? 'pi-close' : 'pi-search' })), index.h(if_component.If, { condition: this.searchDropdownOpen }, index.h("div", { class: "flyout", ref: e => (this.searchFlyout = e) }, index.h("div", { class: "container box" }, index.h("div", { class: "row" }, index.h("div", { class: "col-xs-12 col-md-10 col-lg-8" }, index.h("div", { class: "form-group form-floating" }, index.h("input", { type: "text", id: "searchBox", class: "form-control form-control-lg", placeholder: translations.flyoutSearchBoxFloatingLabel, autocomplete: "off", ref: el => (this.searchBox = el), onInput: () => this.handleSearchInput(), onKeyDown: e => this.handleKeyDown(e) }), index.h("label", { htmlFor: "searchBox" }, translations.flyoutSearchBoxFloatingLabel), index.h("button", { onClick: () => this.startSearch(), class: "nav-link start-search-button" }, index.h("span", { class: "visually-hidden" }, translations.searchSubmit), index.h(svgIcon_component.SvgIcon, { name: "pi-search" }))), showPortalRecommendations && (index.h("h2", { class: "bold" }, search.searchRecommendations.title)), index.h("ul", { class: "suggestions no-list", onMouseLeave: () => this.handleMouseLeaveSuggestions() }, showPortalRecommendations &&
2719
+ search.searchRecommendations.links.map(recommendation => (index.h("li", { key: recommendation.href }, index.h("a", { class: "nav-link search-recommendation", href: new URL(recommendation.href, 'https://post.ch').href, "data-suggestion-text": recommendation.label, onMouseEnter: e => this.handleMouseEnterSuggestion(e) }, index.h("span", { class: "search-recommendation__icon", innerHTML: recommendation.inlineSvg }), index.h("span", null, recommendation.label))))), this.parcelSuggestion && this.parcelSuggestion.ok && (index.h("li", null, index.h("a", { class: "nav-link parcel-suggestion", href: this.parcelSuggestion.url, "data-suggestion-text": (_d = this.searchBox) === null || _d === void 0 ? void 0 : _d.value, onMouseEnter: e => this.handleMouseEnterSuggestion(e) }, index.h(svgIcon_component.SvgIcon, { name: "pi-letter-parcel" }), index.h("span", { class: "bold" }, (_f = (_e = this.parcelSuggestion) === null || _e === void 0 ? void 0 : _e.sending) === null || _f === void 0 ? void 0 :
2720
+ _f.id, ":\u00A0"), index.h("span", null, (_h = (_g = this.parcelSuggestion) === null || _g === void 0 ? void 0 : _g.sending) === null || _h === void 0 ? void 0 :
2721
+ _h.product, ",", ' ', (_k = (_j = this.parcelSuggestion) === null || _j === void 0 ? void 0 : _j.sending) === null || _k === void 0 ? void 0 :
2722
+ _k.recipient.zipcode, ' ', (_m = (_l = this.parcelSuggestion) === null || _l === void 0 ? void 0 : _l.sending) === null || _m === void 0 ? void 0 :
2723
+ _m.recipient.city, ",", ' ', (_p = (_o = this.parcelSuggestion) === null || _o === void 0 ? void 0 : _o.sending) === null || _p === void 0 ? void 0 :
2724
+ _p.state)))), !showPortalRecommendations &&
2725
+ this.coveoSuggestions &&
2726
+ this.coveoSuggestions.map(suggestion => (index.h("li", { key: suggestion.objectId }, index.h("a", { class: "nav-link", href: suggestion.redirectUrl, "data-suggestion-text": suggestion.expression, onMouseEnter: e => this.handleMouseEnterSuggestion(e) }, index.h(svgIcon_component.SvgIcon, { name: "pi-search" }), index.h(HighlightedText, { text: suggestion.highlighted }))))), !showPortalRecommendations &&
2727
+ this.placeSuggestions &&
2728
+ this.placeSuggestions.map(suggestion => {
2729
+ var _a, _b;
2730
+ return (index.h("li", { key: suggestion.id }, index.h("a", { class: "nav-link", href: getPlacesUrl(suggestion), "data-suggestion-text": suggestion.name, onMouseEnter: e => this.handleMouseEnterSuggestion(e) }, index.h(svgIcon_component.SvgIcon, { name: "pi-place" }), index.h(HighlightedText, { text: highlightPlacesString((_b = (_a = this.searchBox) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.trim(), suggestion.name) }))));
2731
+ }))))))))));
2732
+ }
2733
+ get host() { return index.getElement(this); }
2734
+ };
2735
+ PostSearch.style = postSearchCss;
2736
+
2737
+ exports.post_search = PostSearch;
2738
+
2739
+ //# sourceMappingURL=post-search.cjs.entry.js.map