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