@justifi/webcomponents 4.2.2 → 4.4.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 (380) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/{Api-11362403.js → Api-7303478d.js} +3 -2
  3. package/dist/cjs/Api-7303478d.js.map +1 -0
  4. package/dist/cjs/business-form-schema-63b311b2.js +132 -0
  5. package/dist/cjs/business-form-schema-63b311b2.js.map +1 -0
  6. package/dist/cjs/form-control-select_2.cjs.entry.js +61 -0
  7. package/dist/cjs/form-control-select_2.cjs.entry.js.map +1 -0
  8. package/dist/cjs/{index-34312a38.js → index-83b2ec02.js} +136 -20
  9. package/dist/cjs/index-83b2ec02.js.map +1 -0
  10. package/dist/cjs/{index.esm-bcf90c56.js → index.esm-7e12ce07.js} +301 -14
  11. package/dist/cjs/index.esm-7e12ce07.js.map +1 -0
  12. package/dist/cjs/justifi-bank-account-form.cjs.entry.js +8 -3
  13. package/dist/cjs/justifi-bank-account-form.cjs.entry.js.map +1 -1
  14. package/dist/cjs/justifi-billing-form_2.cjs.entry.js +5 -5
  15. package/dist/cjs/justifi-billing-form_2.cjs.entry.js.map +1 -1
  16. package/dist/cjs/justifi-business-address-form.cjs.entry.js +37 -0
  17. package/dist/cjs/justifi-business-address-form.cjs.entry.js.map +1 -0
  18. package/dist/cjs/justifi-business-form.cjs.entry.js +751 -0
  19. package/dist/cjs/justifi-business-form.cjs.entry.js.map +1 -0
  20. package/dist/cjs/justifi-business-generic-info_3.cjs.entry.js +148 -0
  21. package/dist/cjs/justifi-business-generic-info_3.cjs.entry.js.map +1 -0
  22. package/dist/cjs/justifi-card-form.cjs.entry.js +8 -3
  23. package/dist/cjs/justifi-card-form.cjs.entry.js.map +1 -1
  24. package/dist/cjs/justifi-payment-form.cjs.entry.js +24 -7
  25. package/dist/cjs/justifi-payment-form.cjs.entry.js.map +1 -1
  26. package/dist/cjs/justifi-payment-method-form.cjs.entry.js +22 -17
  27. package/dist/cjs/justifi-payment-method-form.cjs.entry.js.map +1 -1
  28. package/dist/cjs/justifi-payments-list.cjs.entry.js +75 -4038
  29. package/dist/cjs/justifi-payments-list.cjs.entry.js.map +1 -1
  30. package/dist/cjs/justifi-payouts-list.cjs.entry.js +113 -0
  31. package/dist/cjs/justifi-payouts-list.cjs.entry.js.map +1 -0
  32. package/dist/cjs/loader.cjs.js +3 -12
  33. package/dist/cjs/loader.cjs.js.map +1 -1
  34. package/dist/cjs/select-input_2.cjs.entry.js +6 -6
  35. package/dist/cjs/select-input_2.cjs.entry.js.map +1 -1
  36. package/dist/cjs/{state-options-efeaa587.js → state-options-83b52cd1.js} +1 -1
  37. package/dist/{esm/state-options-188acc34.js.map → cjs/state-options-83b52cd1.js.map} +1 -1
  38. package/dist/cjs/utils-4ee7e080.js +3979 -0
  39. package/dist/cjs/utils-4ee7e080.js.map +1 -0
  40. package/dist/cjs/webcomponents.cjs.js +3 -6
  41. package/dist/cjs/webcomponents.cjs.js.map +1 -1
  42. package/dist/collection/api/Api.js +3 -2
  43. package/dist/collection/api/Api.js.map +1 -1
  44. package/dist/collection/api/Payout.js +33 -0
  45. package/dist/collection/api/Payout.js.map +1 -0
  46. package/dist/collection/api/index.js +1 -0
  47. package/dist/collection/api/index.js.map +1 -1
  48. package/dist/collection/api/mockData/MockPayments.js +1 -1
  49. package/dist/collection/collection-manifest.json +18 -12
  50. package/dist/collection/components/bank-account-form/bank-account-form.js +38 -10
  51. package/dist/collection/components/bank-account-form/bank-account-form.js.map +1 -1
  52. package/dist/collection/components/bank-account-form/bank-account-form.stories.js +2 -0
  53. package/dist/collection/components/bank-account-form/bank-account-form.stories.js.map +1 -1
  54. package/dist/collection/components/bank-account-form/test/bank-account-form.e2e.js +1 -1
  55. package/dist/collection/components/bank-account-form/test/bank-account-form.spec.js +3 -3
  56. package/dist/collection/components/billing-form/billing-form-schema.js +1 -1
  57. package/dist/collection/components/billing-form/billing-form.css +212 -39
  58. package/dist/collection/components/billing-form/billing-form.js +16 -10
  59. package/dist/collection/components/billing-form/billing-form.js.map +1 -1
  60. package/dist/collection/components/billing-form/test/billing-form.spec.js +51 -24
  61. package/dist/collection/components/billing-form/test/billing-form.spec.js.map +1 -1
  62. package/dist/collection/components/{business-address/business-address-schema.js → business-form/business-address/business-address-form-schema.js} +2 -2
  63. package/dist/collection/components/business-form/business-address/business-address-form-schema.js.map +1 -0
  64. package/dist/collection/components/business-form/business-address/business-address-form.css +2532 -0
  65. package/dist/collection/components/business-form/business-address/business-address-form.js +98 -0
  66. package/dist/collection/components/business-form/business-address/business-address-form.js.map +1 -0
  67. package/dist/collection/components/business-form/business-address/test/business-address.e2e.js +10 -0
  68. package/dist/collection/components/business-form/business-address/test/business-address.e2e.js.map +1 -0
  69. package/dist/collection/components/business-form/business-address/test/business-address.spec.js +72 -0
  70. package/dist/collection/components/business-form/business-address/test/business-address.spec.js.map +1 -0
  71. package/dist/collection/components/business-form/business-form-schema.js +149 -0
  72. package/dist/collection/components/business-form/business-form-schema.js.map +1 -0
  73. package/dist/collection/components/business-form/business-form.css +2532 -0
  74. package/dist/collection/components/business-form/business-form.js +76 -0
  75. package/dist/collection/components/business-form/business-form.js.map +1 -0
  76. package/dist/collection/components/{business-info/business-info.css → business-form/business-generic-info/business-generic-info.css} +745 -530
  77. package/dist/collection/components/business-form/business-generic-info/business-generic-info.js +79 -0
  78. package/dist/collection/components/business-form/business-generic-info/business-generic-info.js.map +1 -0
  79. package/dist/collection/components/business-form/business-owners/business-owners.css +2489 -0
  80. package/dist/collection/components/business-form/business-owners/business-owners.js +120 -0
  81. package/dist/collection/components/business-form/business-owners/business-owners.js.map +1 -0
  82. package/dist/collection/components/business-form/business-representative/business-representative-schema.js +2 -0
  83. package/dist/collection/components/business-form/business-representative/business-representative-schema.js.map +1 -0
  84. package/dist/collection/components/business-form/business-representative/business-representative.css +2489 -0
  85. package/dist/collection/components/business-form/business-representative/business-representative.js +76 -0
  86. package/dist/collection/components/business-form/business-representative/business-representative.js.map +1 -0
  87. package/dist/collection/components/business-form/businessForm.stories.js +115 -0
  88. package/dist/collection/components/business-form/businessForm.stories.js.map +1 -0
  89. package/dist/collection/components/card-form/card-form.js +38 -10
  90. package/dist/collection/components/card-form/card-form.js.map +1 -1
  91. package/dist/collection/components/card-form/card-form.stories.js +5 -2
  92. package/dist/collection/components/card-form/card-form.stories.js.map +1 -1
  93. package/dist/collection/components/card-form/test/card-form.e2e.js +1 -1
  94. package/dist/collection/components/card-form/test/card-form.spec.js +3 -3
  95. package/dist/collection/components/{business-address/business-address.css → form/form-control-select.css} +344 -1212
  96. package/dist/collection/components/form/form-control-select.js +168 -0
  97. package/dist/collection/components/form/form-control-select.js.map +1 -0
  98. package/dist/collection/components/form/form-control-text.css +1794 -0
  99. package/dist/collection/components/form/form-control-text.js +152 -0
  100. package/dist/collection/components/form/form-control-text.js.map +1 -0
  101. package/dist/collection/components/form/form.js +85 -0
  102. package/dist/collection/components/form/form.js.map +1 -0
  103. package/dist/collection/components/payment-form/payment-form.css +220 -45
  104. package/dist/collection/components/payment-form/payment-form.js +47 -7
  105. package/dist/collection/components/payment-form/payment-form.js.map +1 -1
  106. package/dist/collection/components/payment-form/payment-form.stories.js +3 -2
  107. package/dist/collection/components/payment-form/payment-form.stories.js.map +1 -1
  108. package/dist/collection/components/payment-form/payment-method-selector.css +348 -145
  109. package/dist/collection/components/payment-form/payment-method-selector.js +5 -3
  110. package/dist/collection/components/payment-form/payment-method-selector.js.map +1 -1
  111. package/dist/collection/components/payment-form/test/payment-form.e2e.js +1 -1
  112. package/dist/collection/components/payment-form/test/payment-form.spec.js +4 -3
  113. package/dist/collection/components/payment-form/test/payment-form.spec.js.map +1 -1
  114. package/dist/collection/components/payment-method-form/get-computed-theme.js +2 -0
  115. package/dist/collection/components/payment-method-form/get-computed-theme.js.map +1 -1
  116. package/dist/collection/components/payment-method-form/payment-method-form.js +19 -11
  117. package/dist/collection/components/payment-method-form/payment-method-form.js.map +1 -1
  118. package/dist/collection/components/payment-method-form/test/payment-method-form.e2e.js +1 -1
  119. package/dist/collection/components/payment-method-form/test/payment-method-form.spec.js +3 -3
  120. package/dist/collection/components/payment-method-form/theme.js.map +1 -1
  121. package/dist/collection/components/payments-list/example.js +12 -0
  122. package/dist/collection/components/payments-list/payments-list.css +7954 -1
  123. package/dist/collection/components/payments-list/payments-list.js +104 -27
  124. package/dist/collection/components/payments-list/payments-list.js.map +1 -1
  125. package/dist/collection/components/payments-list/payments-list.stories.js +78 -0
  126. package/dist/collection/components/payments-list/payments-list.stories.js.map +1 -0
  127. package/dist/collection/components/payments-list/test/payments-list.spec.js +82 -18
  128. package/dist/collection/components/payments-list/test/payments-list.spec.js.map +1 -1
  129. package/dist/collection/components/payouts-list/payouts-list.css +7983 -0
  130. package/dist/collection/components/payouts-list/payouts-list.js +181 -0
  131. package/dist/collection/components/payouts-list/payouts-list.js.map +1 -0
  132. package/dist/collection/components/payouts-list/payouts-list.stories.js +69 -0
  133. package/dist/collection/components/payouts-list/payouts-list.stories.js.map +1 -0
  134. package/dist/collection/components/select-input/select-input.css +344 -141
  135. package/dist/collection/components/select-input/select-input.js +5 -4
  136. package/dist/collection/components/select-input/select-input.js.map +1 -1
  137. package/dist/collection/components/select-input/test/select-input.spec.js +72 -28
  138. package/dist/collection/components/select-input/test/select-input.spec.js.map +1 -1
  139. package/dist/collection/components/text-input/test/text-input.spec.js +47 -5
  140. package/dist/collection/components/text-input/test/text-input.spec.js.map +1 -1
  141. package/dist/collection/components/text-input/text-input.css +344 -141
  142. package/dist/collection/components/text-input/text-input.js +2 -2
  143. package/dist/collection/components/text-input/text-input.js.map +1 -1
  144. package/dist/collection/utils/utils.js +7 -2
  145. package/dist/collection/utils/utils.js.map +1 -1
  146. package/dist/components/Api.js +2 -1
  147. package/dist/components/Api.js.map +1 -1
  148. package/dist/components/billing-form.js +2 -2
  149. package/dist/components/billing-form.js.map +1 -1
  150. package/dist/components/business-address-form.js +65 -0
  151. package/dist/components/business-address-form.js.map +1 -0
  152. package/dist/components/business-generic-info.js +190 -0
  153. package/dist/components/business-generic-info.js.map +1 -0
  154. package/dist/components/business-owners.js +102 -0
  155. package/dist/components/business-owners.js.map +1 -0
  156. package/dist/components/business-representative.js +75 -0
  157. package/dist/components/business-representative.js.map +1 -0
  158. package/dist/components/{justifi-business-info.d.ts → form-control-select.d.ts} +4 -4
  159. package/dist/components/form-control-select.js +8 -0
  160. package/dist/components/form-control-select.js.map +1 -0
  161. package/dist/components/form-control-select2.js +53 -0
  162. package/dist/components/form-control-select2.js.map +1 -0
  163. package/dist/components/form-control-text.d.ts +11 -0
  164. package/dist/components/form-control-text.js +8 -0
  165. package/dist/components/form-control-text.js.map +1 -0
  166. package/dist/components/form-control-text2.js +51 -0
  167. package/dist/components/form-control-text2.js.map +1 -0
  168. package/dist/components/index.esm.js +298 -14
  169. package/dist/components/index.esm.js.map +1 -1
  170. package/dist/components/justifi-bank-account-form.js +7 -2
  171. package/dist/components/justifi-bank-account-form.js.map +1 -1
  172. package/dist/components/justifi-business-address-form.d.ts +11 -0
  173. package/dist/components/justifi-business-address-form.js +8 -0
  174. package/dist/components/justifi-business-address-form.js.map +1 -0
  175. package/dist/components/justifi-business-form.d.ts +11 -0
  176. package/dist/components/justifi-business-form.js +802 -0
  177. package/dist/components/justifi-business-form.js.map +1 -0
  178. package/dist/components/justifi-business-generic-info.d.ts +11 -0
  179. package/dist/components/justifi-business-generic-info.js +8 -0
  180. package/dist/components/justifi-business-generic-info.js.map +1 -0
  181. package/dist/components/justifi-business-owners.d.ts +11 -0
  182. package/dist/components/justifi-business-owners.js +8 -0
  183. package/dist/components/justifi-business-owners.js.map +1 -0
  184. package/dist/components/justifi-business-representative.d.ts +11 -0
  185. package/dist/components/justifi-business-representative.js +8 -0
  186. package/dist/components/justifi-business-representative.js.map +1 -0
  187. package/dist/components/justifi-card-form.js +7 -2
  188. package/dist/components/justifi-card-form.js.map +1 -1
  189. package/dist/components/justifi-payment-form.js +23 -4
  190. package/dist/components/justifi-payment-form.js.map +1 -1
  191. package/dist/components/justifi-payments-list.js +78 -4038
  192. package/dist/components/justifi-payments-list.js.map +1 -1
  193. package/dist/components/justifi-payouts-list.d.ts +11 -0
  194. package/dist/components/justifi-payouts-list.js +134 -0
  195. package/dist/components/justifi-payouts-list.js.map +1 -0
  196. package/dist/components/payment-method-form.js +21 -16
  197. package/dist/components/payment-method-form.js.map +1 -1
  198. package/dist/components/payment-method-selector.js +1 -1
  199. package/dist/components/payment-method-selector.js.map +1 -1
  200. package/dist/components/select-input2.js +3 -3
  201. package/dist/components/select-input2.js.map +1 -1
  202. package/dist/components/state-options.js.map +1 -1
  203. package/dist/components/text-input2.js +2 -2
  204. package/dist/components/text-input2.js.map +1 -1
  205. package/dist/components/utils.js +3972 -0
  206. package/dist/components/utils.js.map +1 -0
  207. package/dist/esm/{Api-a07f0057.js → Api-436dfa09.js} +3 -2
  208. package/dist/esm/Api-436dfa09.js.map +1 -0
  209. package/dist/esm/business-form-schema-30c48693.js +128 -0
  210. package/dist/esm/business-form-schema-30c48693.js.map +1 -0
  211. package/dist/esm/form-control-select_2.entry.js +56 -0
  212. package/dist/esm/form-control-select_2.entry.js.map +1 -0
  213. package/dist/esm/{index-044f93fc.js → index-c8f391de.js} +136 -20
  214. package/dist/esm/index-c8f391de.js.map +1 -0
  215. package/dist/esm/{index.esm-5624a5ed.js → index.esm-be2cd327.js} +299 -15
  216. package/dist/esm/index.esm-be2cd327.js.map +1 -0
  217. package/dist/esm/justifi-bank-account-form.entry.js +8 -3
  218. package/dist/esm/justifi-bank-account-form.entry.js.map +1 -1
  219. package/dist/esm/justifi-billing-form_2.entry.js +5 -5
  220. package/dist/esm/justifi-billing-form_2.entry.js.map +1 -1
  221. package/dist/esm/justifi-business-address-form.entry.js +33 -0
  222. package/dist/esm/justifi-business-address-form.entry.js.map +1 -0
  223. package/dist/esm/justifi-business-form.entry.js +747 -0
  224. package/dist/esm/justifi-business-form.entry.js.map +1 -0
  225. package/dist/esm/justifi-business-generic-info_3.entry.js +142 -0
  226. package/dist/esm/justifi-business-generic-info_3.entry.js.map +1 -0
  227. package/dist/esm/justifi-card-form.entry.js +8 -3
  228. package/dist/esm/justifi-card-form.entry.js.map +1 -1
  229. package/dist/esm/justifi-payment-form.entry.js +21 -4
  230. package/dist/esm/justifi-payment-form.entry.js.map +1 -1
  231. package/dist/esm/justifi-payment-method-form.entry.js +22 -17
  232. package/dist/esm/justifi-payment-method-form.entry.js.map +1 -1
  233. package/dist/esm/justifi-payments-list.entry.js +75 -4038
  234. package/dist/esm/justifi-payments-list.entry.js.map +1 -1
  235. package/dist/esm/justifi-payouts-list.entry.js +109 -0
  236. package/dist/esm/justifi-payouts-list.entry.js.map +1 -0
  237. package/dist/esm/loader.js +4 -13
  238. package/dist/esm/loader.js.map +1 -1
  239. package/dist/esm/select-input_2.entry.js +6 -6
  240. package/dist/esm/select-input_2.entry.js.map +1 -1
  241. package/dist/esm/{state-options-188acc34.js → state-options-ece00aa2.js} +1 -1
  242. package/dist/esm/state-options-ece00aa2.js.map +1 -0
  243. package/dist/esm/utils-e7782126.js +3972 -0
  244. package/dist/esm/utils-e7782126.js.map +1 -0
  245. package/dist/esm/webcomponents.js +4 -7
  246. package/dist/esm/webcomponents.js.map +1 -1
  247. package/dist/types/api/Payout.d.ts +62 -0
  248. package/dist/types/api/index.d.ts +1 -0
  249. package/dist/types/components/business-form/business-address/business-address-form.d.ts +9 -0
  250. package/dist/types/components/{business-info/business-info-schema.d.ts → business-form/business-form-schema.d.ts} +55 -4
  251. package/dist/types/components/business-form/business-form.d.ts +14 -0
  252. package/dist/types/components/business-form/business-generic-info/business-generic-info.d.ts +16 -0
  253. package/dist/types/components/business-form/business-owners/business-owners.d.ts +32 -0
  254. package/dist/types/components/business-form/business-representative/business-representative-schema.d.ts +15 -0
  255. package/dist/types/components/business-form/business-representative/business-representative.d.ts +12 -0
  256. package/dist/types/components/business-form/businessForm.stories.d.ts +21 -0
  257. package/dist/types/components/form/form-control-select.d.ts +16 -0
  258. package/dist/types/components/form/form-control-text.d.ts +12 -0
  259. package/dist/types/components/form/form.d.ts +21 -0
  260. package/dist/types/components/payment-form/payment-form.d.ts +2 -0
  261. package/dist/types/components/payment-method-form/theme.d.ts +2 -0
  262. package/dist/types/components/payments-list/payments-list.d.ts +38 -5
  263. package/dist/types/components/payments-list/payments-list.stories.d.ts +17 -0
  264. package/dist/types/components/payouts-list/payouts-list.d.ts +45 -0
  265. package/dist/types/components/payouts-list/payouts-list.stories.d.ts +16 -0
  266. package/dist/types/components.d.ts +339 -26
  267. package/dist/types/stencil-public-runtime.d.ts +14 -2
  268. package/dist/types/utils/utils.d.ts +1 -0
  269. package/dist/webcomponents/p-0fd4aae2.js +2 -0
  270. package/dist/webcomponents/p-0fd4aae2.js.map +1 -0
  271. package/dist/webcomponents/p-1953797f.entry.js +2 -0
  272. package/dist/webcomponents/p-1953797f.entry.js.map +1 -0
  273. package/dist/webcomponents/p-1a1f2196.js +2 -0
  274. package/dist/webcomponents/p-1a1f2196.js.map +1 -0
  275. package/dist/webcomponents/p-23e9c7d4.entry.js +2 -0
  276. package/dist/webcomponents/p-23e9c7d4.entry.js.map +1 -0
  277. package/dist/webcomponents/p-309a886f.entry.js +2 -0
  278. package/dist/webcomponents/p-309a886f.entry.js.map +1 -0
  279. package/dist/webcomponents/p-33d69eb5.entry.js +2 -0
  280. package/dist/webcomponents/p-33d69eb5.entry.js.map +1 -0
  281. package/dist/webcomponents/p-3a80a2ec.entry.js +2 -0
  282. package/dist/webcomponents/p-3a80a2ec.entry.js.map +1 -0
  283. package/dist/webcomponents/p-45fea6a8.entry.js +2 -0
  284. package/dist/webcomponents/p-45fea6a8.entry.js.map +1 -0
  285. package/dist/webcomponents/{p-0ea23153.js → p-47bc59b5.js} +1 -1
  286. package/dist/webcomponents/p-47bc59b5.js.map +1 -0
  287. package/dist/webcomponents/p-7041a637.entry.js +2 -0
  288. package/dist/webcomponents/p-7041a637.entry.js.map +1 -0
  289. package/dist/webcomponents/p-79456add.js +2 -0
  290. package/dist/webcomponents/p-79456add.js.map +1 -0
  291. package/dist/webcomponents/{p-1f151d49.js → p-af080b21.js} +2 -2
  292. package/dist/webcomponents/p-af080b21.js.map +1 -0
  293. package/dist/webcomponents/p-bc969904.js +3 -0
  294. package/dist/webcomponents/p-bc969904.js.map +1 -0
  295. package/dist/webcomponents/p-cd097ce9.entry.js +2 -0
  296. package/dist/webcomponents/p-cd097ce9.entry.js.map +1 -0
  297. package/dist/webcomponents/p-d5bc9f22.entry.js +2 -0
  298. package/dist/webcomponents/p-d5bc9f22.entry.js.map +1 -0
  299. package/dist/webcomponents/p-d5cadc78.entry.js +2 -0
  300. package/dist/webcomponents/p-d5cadc78.entry.js.map +1 -0
  301. package/dist/webcomponents/p-dd1ebc0b.entry.js +2 -0
  302. package/dist/webcomponents/p-dd1ebc0b.entry.js.map +1 -0
  303. package/dist/webcomponents/p-e05e0c6b.entry.js +2 -0
  304. package/dist/webcomponents/p-e05e0c6b.entry.js.map +1 -0
  305. package/dist/webcomponents/webcomponents.css +1 -1
  306. package/dist/webcomponents/webcomponents.esm.js +1 -1
  307. package/dist/webcomponents/webcomponents.esm.js.map +1 -1
  308. package/loader/index.d.ts +1 -1
  309. package/package.json +12 -14
  310. package/CHANGELOG.md +0 -208
  311. package/changelog-template.hbs +0 -10
  312. package/dist/cjs/Api-11362403.js.map +0 -1
  313. package/dist/cjs/Payment-ac4dea02.js +0 -73
  314. package/dist/cjs/Payment-ac4dea02.js.map +0 -1
  315. package/dist/cjs/index-34312a38.js.map +0 -1
  316. package/dist/cjs/index.esm-bcf90c56.js.map +0 -1
  317. package/dist/cjs/justifi-business-address.cjs.entry.js +0 -69
  318. package/dist/cjs/justifi-business-address.cjs.entry.js.map +0 -1
  319. package/dist/cjs/justifi-business-info.cjs.entry.js +0 -174
  320. package/dist/cjs/justifi-business-info.cjs.entry.js.map +0 -1
  321. package/dist/cjs/state-options-efeaa587.js.map +0 -1
  322. package/dist/collection/components/business-address/business-address-schema.js.map +0 -1
  323. package/dist/collection/components/business-address/business-address.js +0 -100
  324. package/dist/collection/components/business-address/business-address.js.map +0 -1
  325. package/dist/collection/components/business-address/test/business-address.e2e.js +0 -10
  326. package/dist/collection/components/business-address/test/business-address.e2e.js.map +0 -1
  327. package/dist/collection/components/business-address/test/business-address.spec.js +0 -18
  328. package/dist/collection/components/business-address/test/business-address.spec.js.map +0 -1
  329. package/dist/collection/components/business-info/business-info-schema.js +0 -94
  330. package/dist/collection/components/business-info/business-info-schema.js.map +0 -1
  331. package/dist/collection/components/business-info/business-info.js +0 -168
  332. package/dist/collection/components/business-info/business-info.js.map +0 -1
  333. package/dist/components/Payment.js +0 -71
  334. package/dist/components/Payment.js.map +0 -1
  335. package/dist/components/justifi-business-address.d.ts +0 -11
  336. package/dist/components/justifi-business-address.js +0 -99
  337. package/dist/components/justifi-business-address.js.map +0 -1
  338. package/dist/components/justifi-business-info.js +0 -207
  339. package/dist/components/justifi-business-info.js.map +0 -1
  340. package/dist/esm/Api-a07f0057.js.map +0 -1
  341. package/dist/esm/Payment-c86e1e84.js +0 -71
  342. package/dist/esm/Payment-c86e1e84.js.map +0 -1
  343. package/dist/esm/index-044f93fc.js.map +0 -1
  344. package/dist/esm/index.esm-5624a5ed.js.map +0 -1
  345. package/dist/esm/justifi-business-address.entry.js +0 -65
  346. package/dist/esm/justifi-business-address.entry.js.map +0 -1
  347. package/dist/esm/justifi-business-info.entry.js +0 -170
  348. package/dist/esm/justifi-business-info.entry.js.map +0 -1
  349. package/dist/esm/polyfills/css-shim.js +0 -1
  350. package/dist/types/components/bank-account-form/bank-account-form.d.ts +0 -56
  351. package/dist/types/components/business-address/business-address.d.ts +0 -11
  352. package/dist/types/components/business-info/business-info.d.ts +0 -20
  353. package/dist/types/components/card-form/card-form.d.ts +0 -62
  354. package/dist/webcomponents/p-0969db8f.entry.js +0 -2
  355. package/dist/webcomponents/p-0969db8f.entry.js.map +0 -1
  356. package/dist/webcomponents/p-0ea23153.js.map +0 -1
  357. package/dist/webcomponents/p-1ca0646b.js +0 -2
  358. package/dist/webcomponents/p-1ca0646b.js.map +0 -1
  359. package/dist/webcomponents/p-1f151d49.js.map +0 -1
  360. package/dist/webcomponents/p-255b1284.entry.js +0 -2
  361. package/dist/webcomponents/p-255b1284.entry.js.map +0 -1
  362. package/dist/webcomponents/p-3aa91155.js +0 -3
  363. package/dist/webcomponents/p-3aa91155.js.map +0 -1
  364. package/dist/webcomponents/p-4ecc9860.entry.js +0 -2
  365. package/dist/webcomponents/p-4ecc9860.entry.js.map +0 -1
  366. package/dist/webcomponents/p-90c0d9e1.entry.js +0 -2
  367. package/dist/webcomponents/p-90c0d9e1.entry.js.map +0 -1
  368. package/dist/webcomponents/p-bd5352d6.entry.js +0 -2
  369. package/dist/webcomponents/p-bd5352d6.entry.js.map +0 -1
  370. package/dist/webcomponents/p-c903cc5a.entry.js +0 -2
  371. package/dist/webcomponents/p-c903cc5a.entry.js.map +0 -1
  372. package/dist/webcomponents/p-d87b0711.entry.js +0 -2
  373. package/dist/webcomponents/p-d87b0711.entry.js.map +0 -1
  374. package/dist/webcomponents/p-dbf7100f.entry.js +0 -2
  375. package/dist/webcomponents/p-dbf7100f.entry.js.map +0 -1
  376. package/dist/webcomponents/p-e0054bc3.js +0 -2
  377. package/dist/webcomponents/p-e0054bc3.js.map +0 -1
  378. package/dist/webcomponents/p-f30d1567.entry.js +0 -2
  379. package/dist/webcomponents/p-f30d1567.entry.js.map +0 -1
  380. /package/dist/types/components/{business-address/business-address-schema.d.ts → business-form/business-address/business-address-form-schema.d.ts} +0 -0
@@ -2,4060 +2,97 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-34312a38.js');
6
- const Api = require('./Api-11362403.js');
7
- const Payment = require('./Payment-ac4dea02.js');
5
+ const index = require('./index-83b2ec02.js');
6
+ const Api = require('./Api-7303478d.js');
7
+ const utils = require('./utils-4ee7e080.js');
8
8
 
9
- function toInteger(dirtyNumber) {
10
- if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {
11
- return NaN;
12
- }
13
-
14
- var number = Number(dirtyNumber);
15
-
16
- if (isNaN(number)) {
17
- return number;
18
- }
19
-
20
- return number < 0 ? Math.ceil(number) : Math.floor(number);
21
- }
22
-
23
- function requiredArgs(required, args) {
24
- if (args.length < required) {
25
- throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');
26
- }
27
- }
28
-
29
- function _typeof$2(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof$2(obj); }
30
- /**
31
- * @name toDate
32
- * @category Common Helpers
33
- * @summary Convert the given argument to an instance of Date.
34
- *
35
- * @description
36
- * Convert the given argument to an instance of Date.
37
- *
38
- * If the argument is an instance of Date, the function returns its clone.
39
- *
40
- * If the argument is a number, it is treated as a timestamp.
41
- *
42
- * If the argument is none of the above, the function returns Invalid Date.
43
- *
44
- * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.
45
- *
46
- * @param {Date|Number} argument - the value to convert
47
- * @returns {Date} the parsed date in the local time zone
48
- * @throws {TypeError} 1 argument required
49
- *
50
- * @example
51
- * // Clone the date:
52
- * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))
53
- * //=> Tue Feb 11 2014 11:30:30
54
- *
55
- * @example
56
- * // Convert the timestamp to date:
57
- * const result = toDate(1392098430000)
58
- * //=> Tue Feb 11 2014 11:30:30
59
- */
60
-
61
- function toDate(argument) {
62
- requiredArgs(1, arguments);
63
- var argStr = Object.prototype.toString.call(argument); // Clone the date
64
-
65
- if (argument instanceof Date || _typeof$2(argument) === 'object' && argStr === '[object Date]') {
66
- // Prevent the date to lose the milliseconds when passed to new Date() in IE10
67
- return new Date(argument.getTime());
68
- } else if (typeof argument === 'number' || argStr === '[object Number]') {
69
- return new Date(argument);
70
- } else {
71
- if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {
72
- // eslint-disable-next-line no-console
73
- console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"); // eslint-disable-next-line no-console
74
-
75
- console.warn(new Error().stack);
76
- }
77
-
78
- return new Date(NaN);
79
- }
80
- }
81
-
82
- /**
83
- * @name addMilliseconds
84
- * @category Millisecond Helpers
85
- * @summary Add the specified number of milliseconds to the given date.
86
- *
87
- * @description
88
- * Add the specified number of milliseconds to the given date.
89
- *
90
- * @param {Date|Number} date - the date to be changed
91
- * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.
92
- * @returns {Date} the new date with the milliseconds added
93
- * @throws {TypeError} 2 arguments required
94
- *
95
- * @example
96
- * // Add 750 milliseconds to 10 July 2014 12:45:30.000:
97
- * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)
98
- * //=> Thu Jul 10 2014 12:45:30.750
99
- */
100
-
101
- function addMilliseconds(dirtyDate, dirtyAmount) {
102
- requiredArgs(2, arguments);
103
- var timestamp = toDate(dirtyDate).getTime();
104
- var amount = toInteger(dirtyAmount);
105
- return new Date(timestamp + amount);
106
- }
107
-
108
- var defaultOptions = {};
109
- function getDefaultOptions() {
110
- return defaultOptions;
111
- }
112
-
113
- /**
114
- * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.
115
- * They usually appear for dates that denote time before the timezones were introduced
116
- * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891
117
- * and GMT+01:00:00 after that date)
118
- *
119
- * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,
120
- * which would lead to incorrect calculations.
121
- *
122
- * This function returns the timezone offset in milliseconds that takes seconds in account.
123
- */
124
- function getTimezoneOffsetInMilliseconds(date) {
125
- var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));
126
- utcDate.setUTCFullYear(date.getFullYear());
127
- return date.getTime() - utcDate.getTime();
128
- }
129
-
130
- function _typeof$1(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof$1(obj); }
131
- /**
132
- * @name isDate
133
- * @category Common Helpers
134
- * @summary Is the given value a date?
135
- *
136
- * @description
137
- * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.
138
- *
139
- * @param {*} value - the value to check
140
- * @returns {boolean} true if the given value is a date
141
- * @throws {TypeError} 1 arguments required
142
- *
143
- * @example
144
- * // For a valid date:
145
- * const result = isDate(new Date())
146
- * //=> true
147
- *
148
- * @example
149
- * // For an invalid date:
150
- * const result = isDate(new Date(NaN))
151
- * //=> true
152
- *
153
- * @example
154
- * // For some value:
155
- * const result = isDate('2014-02-31')
156
- * //=> false
157
- *
158
- * @example
159
- * // For an object:
160
- * const result = isDate({})
161
- * //=> false
162
- */
163
-
164
- function isDate(value) {
165
- requiredArgs(1, arguments);
166
- return value instanceof Date || _typeof$1(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';
167
- }
168
-
169
- /**
170
- * @name isValid
171
- * @category Common Helpers
172
- * @summary Is the given date valid?
173
- *
174
- * @description
175
- * Returns false if argument is Invalid Date and true otherwise.
176
- * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}
177
- * Invalid Date is a Date, whose time value is NaN.
178
- *
179
- * Time value of Date: http://es5.github.io/#x15.9.1.1
180
- *
181
- * @param {*} date - the date to check
182
- * @returns {Boolean} the date is valid
183
- * @throws {TypeError} 1 argument required
184
- *
185
- * @example
186
- * // For the valid date:
187
- * const result = isValid(new Date(2014, 1, 31))
188
- * //=> true
189
- *
190
- * @example
191
- * // For the value, convertable into a date:
192
- * const result = isValid(1393804800000)
193
- * //=> true
194
- *
195
- * @example
196
- * // For the invalid date:
197
- * const result = isValid(new Date(''))
198
- * //=> false
199
- */
200
-
201
- function isValid(dirtyDate) {
202
- requiredArgs(1, arguments);
203
-
204
- if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {
205
- return false;
206
- }
207
-
208
- var date = toDate(dirtyDate);
209
- return !isNaN(Number(date));
210
- }
211
-
212
- /**
213
- * @name subMilliseconds
214
- * @category Millisecond Helpers
215
- * @summary Subtract the specified number of milliseconds from the given date.
216
- *
217
- * @description
218
- * Subtract the specified number of milliseconds from the given date.
219
- *
220
- * @param {Date|Number} date - the date to be changed
221
- * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.
222
- * @returns {Date} the new date with the milliseconds subtracted
223
- * @throws {TypeError} 2 arguments required
224
- *
225
- * @example
226
- * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:
227
- * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)
228
- * //=> Thu Jul 10 2014 12:45:29.250
229
- */
230
-
231
- function subMilliseconds(dirtyDate, dirtyAmount) {
232
- requiredArgs(2, arguments);
233
- var amount = toInteger(dirtyAmount);
234
- return addMilliseconds(dirtyDate, -amount);
235
- }
236
-
237
- var MILLISECONDS_IN_DAY = 86400000;
238
- function getUTCDayOfYear(dirtyDate) {
239
- requiredArgs(1, arguments);
240
- var date = toDate(dirtyDate);
241
- var timestamp = date.getTime();
242
- date.setUTCMonth(0, 1);
243
- date.setUTCHours(0, 0, 0, 0);
244
- var startOfYearTimestamp = date.getTime();
245
- var difference = timestamp - startOfYearTimestamp;
246
- return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;
247
- }
248
-
249
- function startOfUTCISOWeek(dirtyDate) {
250
- requiredArgs(1, arguments);
251
- var weekStartsOn = 1;
252
- var date = toDate(dirtyDate);
253
- var day = date.getUTCDay();
254
- var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
255
- date.setUTCDate(date.getUTCDate() - diff);
256
- date.setUTCHours(0, 0, 0, 0);
257
- return date;
258
- }
259
-
260
- function getUTCISOWeekYear(dirtyDate) {
261
- requiredArgs(1, arguments);
262
- var date = toDate(dirtyDate);
263
- var year = date.getUTCFullYear();
264
- var fourthOfJanuaryOfNextYear = new Date(0);
265
- fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);
266
- fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);
267
- var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);
268
- var fourthOfJanuaryOfThisYear = new Date(0);
269
- fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);
270
- fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);
271
- var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);
272
-
273
- if (date.getTime() >= startOfNextYear.getTime()) {
274
- return year + 1;
275
- } else if (date.getTime() >= startOfThisYear.getTime()) {
276
- return year;
277
- } else {
278
- return year - 1;
279
- }
280
- }
281
-
282
- function startOfUTCISOWeekYear(dirtyDate) {
283
- requiredArgs(1, arguments);
284
- var year = getUTCISOWeekYear(dirtyDate);
285
- var fourthOfJanuary = new Date(0);
286
- fourthOfJanuary.setUTCFullYear(year, 0, 4);
287
- fourthOfJanuary.setUTCHours(0, 0, 0, 0);
288
- var date = startOfUTCISOWeek(fourthOfJanuary);
289
- return date;
290
- }
291
-
292
- var MILLISECONDS_IN_WEEK$1 = 604800000;
293
- function getUTCISOWeek(dirtyDate) {
294
- requiredArgs(1, arguments);
295
- var date = toDate(dirtyDate);
296
- var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer
297
- // because the number of milliseconds in a week is not constant
298
- // (e.g. it's different in the week of the daylight saving time clock shift)
299
-
300
- return Math.round(diff / MILLISECONDS_IN_WEEK$1) + 1;
301
- }
302
-
303
- function startOfUTCWeek(dirtyDate, options) {
304
- var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;
305
-
306
- requiredArgs(1, arguments);
307
- var defaultOptions = getDefaultOptions();
308
- var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN
309
-
310
- if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {
311
- throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');
312
- }
313
-
314
- var date = toDate(dirtyDate);
315
- var day = date.getUTCDay();
316
- var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
317
- date.setUTCDate(date.getUTCDate() - diff);
318
- date.setUTCHours(0, 0, 0, 0);
319
- return date;
320
- }
321
-
322
- function getUTCWeekYear(dirtyDate, options) {
323
- var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;
324
-
325
- requiredArgs(1, arguments);
326
- var date = toDate(dirtyDate);
327
- var year = date.getUTCFullYear();
328
- var defaultOptions = getDefaultOptions();
329
- var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN
330
-
331
- if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {
332
- throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');
333
- }
334
-
335
- var firstWeekOfNextYear = new Date(0);
336
- firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);
337
- firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);
338
- var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);
339
- var firstWeekOfThisYear = new Date(0);
340
- firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);
341
- firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);
342
- var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);
343
-
344
- if (date.getTime() >= startOfNextYear.getTime()) {
345
- return year + 1;
346
- } else if (date.getTime() >= startOfThisYear.getTime()) {
347
- return year;
348
- } else {
349
- return year - 1;
350
- }
351
- }
352
-
353
- function startOfUTCWeekYear(dirtyDate, options) {
354
- var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;
355
-
356
- requiredArgs(1, arguments);
357
- var defaultOptions = getDefaultOptions();
358
- var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);
359
- var year = getUTCWeekYear(dirtyDate, options);
360
- var firstWeek = new Date(0);
361
- firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);
362
- firstWeek.setUTCHours(0, 0, 0, 0);
363
- var date = startOfUTCWeek(firstWeek, options);
364
- return date;
365
- }
366
-
367
- var MILLISECONDS_IN_WEEK = 604800000;
368
- function getUTCWeek(dirtyDate, options) {
369
- requiredArgs(1, arguments);
370
- var date = toDate(dirtyDate);
371
- var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer
372
- // because the number of milliseconds in a week is not constant
373
- // (e.g. it's different in the week of the daylight saving time clock shift)
374
-
375
- return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;
376
- }
377
-
378
- function addLeadingZeros(number, targetLength) {
379
- var sign = number < 0 ? '-' : '';
380
- var output = Math.abs(number).toString();
381
-
382
- while (output.length < targetLength) {
383
- output = '0' + output;
384
- }
385
-
386
- return sign + output;
387
- }
388
-
389
- /*
390
- * | | Unit | | Unit |
391
- * |-----|--------------------------------|-----|--------------------------------|
392
- * | a | AM, PM | A* | |
393
- * | d | Day of month | D | |
394
- * | h | Hour [1-12] | H | Hour [0-23] |
395
- * | m | Minute | M | Month |
396
- * | s | Second | S | Fraction of second |
397
- * | y | Year (abs) | Y | |
398
- *
399
- * Letters marked by * are not implemented but reserved by Unicode standard.
400
- */
401
-
402
- var formatters$1 = {
403
- // Year
404
- y: function y(date, token) {
405
- // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens
406
- // | Year | y | yy | yyy | yyyy | yyyyy |
407
- // |----------|-------|----|-------|-------|-------|
408
- // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |
409
- // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |
410
- // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |
411
- // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |
412
- // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |
413
- var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)
414
-
415
- var year = signedYear > 0 ? signedYear : 1 - signedYear;
416
- return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);
417
- },
418
- // Month
419
- M: function M(date, token) {
420
- var month = date.getUTCMonth();
421
- return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);
422
- },
423
- // Day of the month
424
- d: function d(date, token) {
425
- return addLeadingZeros(date.getUTCDate(), token.length);
426
- },
427
- // AM or PM
428
- a: function a(date, token) {
429
- var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';
430
-
431
- switch (token) {
432
- case 'a':
433
- case 'aa':
434
- return dayPeriodEnumValue.toUpperCase();
435
-
436
- case 'aaa':
437
- return dayPeriodEnumValue;
438
-
439
- case 'aaaaa':
440
- return dayPeriodEnumValue[0];
441
-
442
- case 'aaaa':
443
- default:
444
- return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';
445
- }
446
- },
447
- // Hour [1-12]
448
- h: function h(date, token) {
449
- return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);
450
- },
451
- // Hour [0-23]
452
- H: function H(date, token) {
453
- return addLeadingZeros(date.getUTCHours(), token.length);
454
- },
455
- // Minute
456
- m: function m(date, token) {
457
- return addLeadingZeros(date.getUTCMinutes(), token.length);
458
- },
459
- // Second
460
- s: function s(date, token) {
461
- return addLeadingZeros(date.getUTCSeconds(), token.length);
462
- },
463
- // Fraction of second
464
- S: function S(date, token) {
465
- var numberOfDigits = token.length;
466
- var milliseconds = date.getUTCMilliseconds();
467
- var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));
468
- return addLeadingZeros(fractionalSeconds, token.length);
469
- }
470
- };
471
-
472
- var dayPeriodEnum = {
473
- am: 'am',
474
- pm: 'pm',
475
- midnight: 'midnight',
476
- noon: 'noon',
477
- morning: 'morning',
478
- afternoon: 'afternoon',
479
- evening: 'evening',
480
- night: 'night'
481
- };
482
-
483
- /*
484
- * | | Unit | | Unit |
485
- * |-----|--------------------------------|-----|--------------------------------|
486
- * | a | AM, PM | A* | Milliseconds in day |
487
- * | b | AM, PM, noon, midnight | B | Flexible day period |
488
- * | c | Stand-alone local day of week | C* | Localized hour w/ day period |
489
- * | d | Day of month | D | Day of year |
490
- * | e | Local day of week | E | Day of week |
491
- * | f | | F* | Day of week in month |
492
- * | g* | Modified Julian day | G | Era |
493
- * | h | Hour [1-12] | H | Hour [0-23] |
494
- * | i! | ISO day of week | I! | ISO week of year |
495
- * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |
496
- * | k | Hour [1-24] | K | Hour [0-11] |
497
- * | l* | (deprecated) | L | Stand-alone month |
498
- * | m | Minute | M | Month |
499
- * | n | | N | |
500
- * | o! | Ordinal number modifier | O | Timezone (GMT) |
501
- * | p! | Long localized time | P! | Long localized date |
502
- * | q | Stand-alone quarter | Q | Quarter |
503
- * | r* | Related Gregorian year | R! | ISO week-numbering year |
504
- * | s | Second | S | Fraction of second |
505
- * | t! | Seconds timestamp | T! | Milliseconds timestamp |
506
- * | u | Extended year | U* | Cyclic year |
507
- * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |
508
- * | w | Local week of year | W* | Week of month |
509
- * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |
510
- * | y | Year (abs) | Y | Local week-numbering year |
511
- * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |
512
- *
513
- * Letters marked by * are not implemented but reserved by Unicode standard.
514
- *
515
- * Letters marked by ! are non-standard, but implemented by date-fns:
516
- * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)
517
- * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,
518
- * i.e. 7 for Sunday, 1 for Monday, etc.
519
- * - `I` is ISO week of year, as opposed to `w` which is local week of year.
520
- * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.
521
- * `R` is supposed to be used in conjunction with `I` and `i`
522
- * for universal ISO week-numbering date, whereas
523
- * `Y` is supposed to be used in conjunction with `w` and `e`
524
- * for week-numbering date specific to the locale.
525
- * - `P` is long localized date format
526
- * - `p` is long localized time format
527
- */
528
- var formatters = {
529
- // Era
530
- G: function G(date, token, localize) {
531
- var era = date.getUTCFullYear() > 0 ? 1 : 0;
532
-
533
- switch (token) {
534
- // AD, BC
535
- case 'G':
536
- case 'GG':
537
- case 'GGG':
538
- return localize.era(era, {
539
- width: 'abbreviated'
540
- });
541
- // A, B
542
-
543
- case 'GGGGG':
544
- return localize.era(era, {
545
- width: 'narrow'
546
- });
547
- // Anno Domini, Before Christ
548
-
549
- case 'GGGG':
550
- default:
551
- return localize.era(era, {
552
- width: 'wide'
553
- });
554
- }
555
- },
556
- // Year
557
- y: function y(date, token, localize) {
558
- // Ordinal number
559
- if (token === 'yo') {
560
- var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)
561
-
562
- var year = signedYear > 0 ? signedYear : 1 - signedYear;
563
- return localize.ordinalNumber(year, {
564
- unit: 'year'
565
- });
566
- }
567
-
568
- return formatters$1.y(date, token);
569
- },
570
- // Local week-numbering year
571
- Y: function Y(date, token, localize, options) {
572
- var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)
573
-
574
- var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year
575
-
576
- if (token === 'YY') {
577
- var twoDigitYear = weekYear % 100;
578
- return addLeadingZeros(twoDigitYear, 2);
579
- } // Ordinal number
580
-
581
-
582
- if (token === 'Yo') {
583
- return localize.ordinalNumber(weekYear, {
584
- unit: 'year'
585
- });
586
- } // Padding
587
-
588
-
589
- return addLeadingZeros(weekYear, token.length);
590
- },
591
- // ISO week-numbering year
592
- R: function R(date, token) {
593
- var isoWeekYear = getUTCISOWeekYear(date); // Padding
594
-
595
- return addLeadingZeros(isoWeekYear, token.length);
596
- },
597
- // Extended year. This is a single number designating the year of this calendar system.
598
- // The main difference between `y` and `u` localizers are B.C. years:
599
- // | Year | `y` | `u` |
600
- // |------|-----|-----|
601
- // | AC 1 | 1 | 1 |
602
- // | BC 1 | 1 | 0 |
603
- // | BC 2 | 2 | -1 |
604
- // Also `yy` always returns the last two digits of a year,
605
- // while `uu` pads single digit years to 2 characters and returns other years unchanged.
606
- u: function u(date, token) {
607
- var year = date.getUTCFullYear();
608
- return addLeadingZeros(year, token.length);
609
- },
610
- // Quarter
611
- Q: function Q(date, token, localize) {
612
- var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);
613
-
614
- switch (token) {
615
- // 1, 2, 3, 4
616
- case 'Q':
617
- return String(quarter);
618
- // 01, 02, 03, 04
619
-
620
- case 'QQ':
621
- return addLeadingZeros(quarter, 2);
622
- // 1st, 2nd, 3rd, 4th
623
-
624
- case 'Qo':
625
- return localize.ordinalNumber(quarter, {
626
- unit: 'quarter'
627
- });
628
- // Q1, Q2, Q3, Q4
629
-
630
- case 'QQQ':
631
- return localize.quarter(quarter, {
632
- width: 'abbreviated',
633
- context: 'formatting'
634
- });
635
- // 1, 2, 3, 4 (narrow quarter; could be not numerical)
636
-
637
- case 'QQQQQ':
638
- return localize.quarter(quarter, {
639
- width: 'narrow',
640
- context: 'formatting'
641
- });
642
- // 1st quarter, 2nd quarter, ...
643
-
644
- case 'QQQQ':
645
- default:
646
- return localize.quarter(quarter, {
647
- width: 'wide',
648
- context: 'formatting'
649
- });
650
- }
651
- },
652
- // Stand-alone quarter
653
- q: function q(date, token, localize) {
654
- var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);
655
-
656
- switch (token) {
657
- // 1, 2, 3, 4
658
- case 'q':
659
- return String(quarter);
660
- // 01, 02, 03, 04
661
-
662
- case 'qq':
663
- return addLeadingZeros(quarter, 2);
664
- // 1st, 2nd, 3rd, 4th
665
-
666
- case 'qo':
667
- return localize.ordinalNumber(quarter, {
668
- unit: 'quarter'
669
- });
670
- // Q1, Q2, Q3, Q4
671
-
672
- case 'qqq':
673
- return localize.quarter(quarter, {
674
- width: 'abbreviated',
675
- context: 'standalone'
676
- });
677
- // 1, 2, 3, 4 (narrow quarter; could be not numerical)
678
-
679
- case 'qqqqq':
680
- return localize.quarter(quarter, {
681
- width: 'narrow',
682
- context: 'standalone'
683
- });
684
- // 1st quarter, 2nd quarter, ...
685
-
686
- case 'qqqq':
687
- default:
688
- return localize.quarter(quarter, {
689
- width: 'wide',
690
- context: 'standalone'
691
- });
692
- }
693
- },
694
- // Month
695
- M: function M(date, token, localize) {
696
- var month = date.getUTCMonth();
697
-
698
- switch (token) {
699
- case 'M':
700
- case 'MM':
701
- return formatters$1.M(date, token);
702
- // 1st, 2nd, ..., 12th
703
-
704
- case 'Mo':
705
- return localize.ordinalNumber(month + 1, {
706
- unit: 'month'
707
- });
708
- // Jan, Feb, ..., Dec
709
-
710
- case 'MMM':
711
- return localize.month(month, {
712
- width: 'abbreviated',
713
- context: 'formatting'
714
- });
715
- // J, F, ..., D
716
-
717
- case 'MMMMM':
718
- return localize.month(month, {
719
- width: 'narrow',
720
- context: 'formatting'
721
- });
722
- // January, February, ..., December
723
-
724
- case 'MMMM':
725
- default:
726
- return localize.month(month, {
727
- width: 'wide',
728
- context: 'formatting'
729
- });
730
- }
731
- },
732
- // Stand-alone month
733
- L: function L(date, token, localize) {
734
- var month = date.getUTCMonth();
735
-
736
- switch (token) {
737
- // 1, 2, ..., 12
738
- case 'L':
739
- return String(month + 1);
740
- // 01, 02, ..., 12
741
-
742
- case 'LL':
743
- return addLeadingZeros(month + 1, 2);
744
- // 1st, 2nd, ..., 12th
745
-
746
- case 'Lo':
747
- return localize.ordinalNumber(month + 1, {
748
- unit: 'month'
749
- });
750
- // Jan, Feb, ..., Dec
751
-
752
- case 'LLL':
753
- return localize.month(month, {
754
- width: 'abbreviated',
755
- context: 'standalone'
756
- });
757
- // J, F, ..., D
758
-
759
- case 'LLLLL':
760
- return localize.month(month, {
761
- width: 'narrow',
762
- context: 'standalone'
763
- });
764
- // January, February, ..., December
765
-
766
- case 'LLLL':
767
- default:
768
- return localize.month(month, {
769
- width: 'wide',
770
- context: 'standalone'
771
- });
772
- }
773
- },
774
- // Local week of year
775
- w: function w(date, token, localize, options) {
776
- var week = getUTCWeek(date, options);
777
-
778
- if (token === 'wo') {
779
- return localize.ordinalNumber(week, {
780
- unit: 'week'
781
- });
782
- }
783
-
784
- return addLeadingZeros(week, token.length);
785
- },
786
- // ISO week of year
787
- I: function I(date, token, localize) {
788
- var isoWeek = getUTCISOWeek(date);
789
-
790
- if (token === 'Io') {
791
- return localize.ordinalNumber(isoWeek, {
792
- unit: 'week'
793
- });
794
- }
795
-
796
- return addLeadingZeros(isoWeek, token.length);
797
- },
798
- // Day of the month
799
- d: function d(date, token, localize) {
800
- if (token === 'do') {
801
- return localize.ordinalNumber(date.getUTCDate(), {
802
- unit: 'date'
803
- });
804
- }
805
-
806
- return formatters$1.d(date, token);
807
- },
808
- // Day of year
809
- D: function D(date, token, localize) {
810
- var dayOfYear = getUTCDayOfYear(date);
811
-
812
- if (token === 'Do') {
813
- return localize.ordinalNumber(dayOfYear, {
814
- unit: 'dayOfYear'
815
- });
816
- }
817
-
818
- return addLeadingZeros(dayOfYear, token.length);
819
- },
820
- // Day of week
821
- E: function E(date, token, localize) {
822
- var dayOfWeek = date.getUTCDay();
823
-
824
- switch (token) {
825
- // Tue
826
- case 'E':
827
- case 'EE':
828
- case 'EEE':
829
- return localize.day(dayOfWeek, {
830
- width: 'abbreviated',
831
- context: 'formatting'
832
- });
833
- // T
834
-
835
- case 'EEEEE':
836
- return localize.day(dayOfWeek, {
837
- width: 'narrow',
838
- context: 'formatting'
839
- });
840
- // Tu
841
-
842
- case 'EEEEEE':
843
- return localize.day(dayOfWeek, {
844
- width: 'short',
845
- context: 'formatting'
846
- });
847
- // Tuesday
848
-
849
- case 'EEEE':
850
- default:
851
- return localize.day(dayOfWeek, {
852
- width: 'wide',
853
- context: 'formatting'
854
- });
855
- }
856
- },
857
- // Local day of week
858
- e: function e(date, token, localize, options) {
859
- var dayOfWeek = date.getUTCDay();
860
- var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;
861
-
862
- switch (token) {
863
- // Numerical value (Nth day of week with current locale or weekStartsOn)
864
- case 'e':
865
- return String(localDayOfWeek);
866
- // Padded numerical value
867
-
868
- case 'ee':
869
- return addLeadingZeros(localDayOfWeek, 2);
870
- // 1st, 2nd, ..., 7th
871
-
872
- case 'eo':
873
- return localize.ordinalNumber(localDayOfWeek, {
874
- unit: 'day'
875
- });
876
-
877
- case 'eee':
878
- return localize.day(dayOfWeek, {
879
- width: 'abbreviated',
880
- context: 'formatting'
881
- });
882
- // T
883
-
884
- case 'eeeee':
885
- return localize.day(dayOfWeek, {
886
- width: 'narrow',
887
- context: 'formatting'
888
- });
889
- // Tu
890
-
891
- case 'eeeeee':
892
- return localize.day(dayOfWeek, {
893
- width: 'short',
894
- context: 'formatting'
895
- });
896
- // Tuesday
897
-
898
- case 'eeee':
899
- default:
900
- return localize.day(dayOfWeek, {
901
- width: 'wide',
902
- context: 'formatting'
903
- });
904
- }
905
- },
906
- // Stand-alone local day of week
907
- c: function c(date, token, localize, options) {
908
- var dayOfWeek = date.getUTCDay();
909
- var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;
910
-
911
- switch (token) {
912
- // Numerical value (same as in `e`)
913
- case 'c':
914
- return String(localDayOfWeek);
915
- // Padded numerical value
916
-
917
- case 'cc':
918
- return addLeadingZeros(localDayOfWeek, token.length);
919
- // 1st, 2nd, ..., 7th
920
-
921
- case 'co':
922
- return localize.ordinalNumber(localDayOfWeek, {
923
- unit: 'day'
924
- });
925
-
926
- case 'ccc':
927
- return localize.day(dayOfWeek, {
928
- width: 'abbreviated',
929
- context: 'standalone'
930
- });
931
- // T
932
-
933
- case 'ccccc':
934
- return localize.day(dayOfWeek, {
935
- width: 'narrow',
936
- context: 'standalone'
937
- });
938
- // Tu
939
-
940
- case 'cccccc':
941
- return localize.day(dayOfWeek, {
942
- width: 'short',
943
- context: 'standalone'
944
- });
945
- // Tuesday
946
-
947
- case 'cccc':
948
- default:
949
- return localize.day(dayOfWeek, {
950
- width: 'wide',
951
- context: 'standalone'
952
- });
953
- }
954
- },
955
- // ISO day of week
956
- i: function i(date, token, localize) {
957
- var dayOfWeek = date.getUTCDay();
958
- var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;
959
-
960
- switch (token) {
961
- // 2
962
- case 'i':
963
- return String(isoDayOfWeek);
964
- // 02
965
-
966
- case 'ii':
967
- return addLeadingZeros(isoDayOfWeek, token.length);
968
- // 2nd
969
-
970
- case 'io':
971
- return localize.ordinalNumber(isoDayOfWeek, {
972
- unit: 'day'
973
- });
974
- // Tue
975
-
976
- case 'iii':
977
- return localize.day(dayOfWeek, {
978
- width: 'abbreviated',
979
- context: 'formatting'
980
- });
981
- // T
982
-
983
- case 'iiiii':
984
- return localize.day(dayOfWeek, {
985
- width: 'narrow',
986
- context: 'formatting'
987
- });
988
- // Tu
989
-
990
- case 'iiiiii':
991
- return localize.day(dayOfWeek, {
992
- width: 'short',
993
- context: 'formatting'
994
- });
995
- // Tuesday
996
-
997
- case 'iiii':
998
- default:
999
- return localize.day(dayOfWeek, {
1000
- width: 'wide',
1001
- context: 'formatting'
1002
- });
1003
- }
1004
- },
1005
- // AM or PM
1006
- a: function a(date, token, localize) {
1007
- var hours = date.getUTCHours();
1008
- var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';
1009
-
1010
- switch (token) {
1011
- case 'a':
1012
- case 'aa':
1013
- return localize.dayPeriod(dayPeriodEnumValue, {
1014
- width: 'abbreviated',
1015
- context: 'formatting'
1016
- });
1017
-
1018
- case 'aaa':
1019
- return localize.dayPeriod(dayPeriodEnumValue, {
1020
- width: 'abbreviated',
1021
- context: 'formatting'
1022
- }).toLowerCase();
1023
-
1024
- case 'aaaaa':
1025
- return localize.dayPeriod(dayPeriodEnumValue, {
1026
- width: 'narrow',
1027
- context: 'formatting'
1028
- });
1029
-
1030
- case 'aaaa':
1031
- default:
1032
- return localize.dayPeriod(dayPeriodEnumValue, {
1033
- width: 'wide',
1034
- context: 'formatting'
1035
- });
1036
- }
1037
- },
1038
- // AM, PM, midnight, noon
1039
- b: function b(date, token, localize) {
1040
- var hours = date.getUTCHours();
1041
- var dayPeriodEnumValue;
1042
-
1043
- if (hours === 12) {
1044
- dayPeriodEnumValue = dayPeriodEnum.noon;
1045
- } else if (hours === 0) {
1046
- dayPeriodEnumValue = dayPeriodEnum.midnight;
1047
- } else {
1048
- dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';
1049
- }
1050
-
1051
- switch (token) {
1052
- case 'b':
1053
- case 'bb':
1054
- return localize.dayPeriod(dayPeriodEnumValue, {
1055
- width: 'abbreviated',
1056
- context: 'formatting'
1057
- });
1058
-
1059
- case 'bbb':
1060
- return localize.dayPeriod(dayPeriodEnumValue, {
1061
- width: 'abbreviated',
1062
- context: 'formatting'
1063
- }).toLowerCase();
1064
-
1065
- case 'bbbbb':
1066
- return localize.dayPeriod(dayPeriodEnumValue, {
1067
- width: 'narrow',
1068
- context: 'formatting'
1069
- });
1070
-
1071
- case 'bbbb':
1072
- default:
1073
- return localize.dayPeriod(dayPeriodEnumValue, {
1074
- width: 'wide',
1075
- context: 'formatting'
1076
- });
1077
- }
1078
- },
1079
- // in the morning, in the afternoon, in the evening, at night
1080
- B: function B(date, token, localize) {
1081
- var hours = date.getUTCHours();
1082
- var dayPeriodEnumValue;
1083
-
1084
- if (hours >= 17) {
1085
- dayPeriodEnumValue = dayPeriodEnum.evening;
1086
- } else if (hours >= 12) {
1087
- dayPeriodEnumValue = dayPeriodEnum.afternoon;
1088
- } else if (hours >= 4) {
1089
- dayPeriodEnumValue = dayPeriodEnum.morning;
1090
- } else {
1091
- dayPeriodEnumValue = dayPeriodEnum.night;
1092
- }
1093
-
1094
- switch (token) {
1095
- case 'B':
1096
- case 'BB':
1097
- case 'BBB':
1098
- return localize.dayPeriod(dayPeriodEnumValue, {
1099
- width: 'abbreviated',
1100
- context: 'formatting'
1101
- });
1102
-
1103
- case 'BBBBB':
1104
- return localize.dayPeriod(dayPeriodEnumValue, {
1105
- width: 'narrow',
1106
- context: 'formatting'
1107
- });
1108
-
1109
- case 'BBBB':
1110
- default:
1111
- return localize.dayPeriod(dayPeriodEnumValue, {
1112
- width: 'wide',
1113
- context: 'formatting'
1114
- });
1115
- }
1116
- },
1117
- // Hour [1-12]
1118
- h: function h(date, token, localize) {
1119
- if (token === 'ho') {
1120
- var hours = date.getUTCHours() % 12;
1121
- if (hours === 0) hours = 12;
1122
- return localize.ordinalNumber(hours, {
1123
- unit: 'hour'
1124
- });
1125
- }
1126
-
1127
- return formatters$1.h(date, token);
1128
- },
1129
- // Hour [0-23]
1130
- H: function H(date, token, localize) {
1131
- if (token === 'Ho') {
1132
- return localize.ordinalNumber(date.getUTCHours(), {
1133
- unit: 'hour'
1134
- });
1135
- }
1136
-
1137
- return formatters$1.H(date, token);
1138
- },
1139
- // Hour [0-11]
1140
- K: function K(date, token, localize) {
1141
- var hours = date.getUTCHours() % 12;
1142
-
1143
- if (token === 'Ko') {
1144
- return localize.ordinalNumber(hours, {
1145
- unit: 'hour'
1146
- });
1147
- }
1148
-
1149
- return addLeadingZeros(hours, token.length);
1150
- },
1151
- // Hour [1-24]
1152
- k: function k(date, token, localize) {
1153
- var hours = date.getUTCHours();
1154
- if (hours === 0) hours = 24;
1155
-
1156
- if (token === 'ko') {
1157
- return localize.ordinalNumber(hours, {
1158
- unit: 'hour'
1159
- });
1160
- }
1161
-
1162
- return addLeadingZeros(hours, token.length);
1163
- },
1164
- // Minute
1165
- m: function m(date, token, localize) {
1166
- if (token === 'mo') {
1167
- return localize.ordinalNumber(date.getUTCMinutes(), {
1168
- unit: 'minute'
1169
- });
1170
- }
1171
-
1172
- return formatters$1.m(date, token);
1173
- },
1174
- // Second
1175
- s: function s(date, token, localize) {
1176
- if (token === 'so') {
1177
- return localize.ordinalNumber(date.getUTCSeconds(), {
1178
- unit: 'second'
1179
- });
1180
- }
1181
-
1182
- return formatters$1.s(date, token);
1183
- },
1184
- // Fraction of second
1185
- S: function S(date, token) {
1186
- return formatters$1.S(date, token);
1187
- },
1188
- // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)
1189
- X: function X(date, token, _localize, options) {
1190
- var originalDate = options._originalDate || date;
1191
- var timezoneOffset = originalDate.getTimezoneOffset();
1192
-
1193
- if (timezoneOffset === 0) {
1194
- return 'Z';
1195
- }
1196
-
1197
- switch (token) {
1198
- // Hours and optional minutes
1199
- case 'X':
1200
- return formatTimezoneWithOptionalMinutes(timezoneOffset);
1201
- // Hours, minutes and optional seconds without `:` delimiter
1202
- // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
1203
- // so this token always has the same output as `XX`
1204
-
1205
- case 'XXXX':
1206
- case 'XX':
1207
- // Hours and minutes without `:` delimiter
1208
- return formatTimezone(timezoneOffset);
1209
- // Hours, minutes and optional seconds with `:` delimiter
1210
- // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
1211
- // so this token always has the same output as `XXX`
1212
-
1213
- case 'XXXXX':
1214
- case 'XXX': // Hours and minutes with `:` delimiter
1215
-
1216
- default:
1217
- return formatTimezone(timezoneOffset, ':');
1218
- }
1219
- },
1220
- // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)
1221
- x: function x(date, token, _localize, options) {
1222
- var originalDate = options._originalDate || date;
1223
- var timezoneOffset = originalDate.getTimezoneOffset();
1224
-
1225
- switch (token) {
1226
- // Hours and optional minutes
1227
- case 'x':
1228
- return formatTimezoneWithOptionalMinutes(timezoneOffset);
1229
- // Hours, minutes and optional seconds without `:` delimiter
1230
- // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
1231
- // so this token always has the same output as `xx`
1232
-
1233
- case 'xxxx':
1234
- case 'xx':
1235
- // Hours and minutes without `:` delimiter
1236
- return formatTimezone(timezoneOffset);
1237
- // Hours, minutes and optional seconds with `:` delimiter
1238
- // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
1239
- // so this token always has the same output as `xxx`
1240
-
1241
- case 'xxxxx':
1242
- case 'xxx': // Hours and minutes with `:` delimiter
1243
-
1244
- default:
1245
- return formatTimezone(timezoneOffset, ':');
1246
- }
1247
- },
1248
- // Timezone (GMT)
1249
- O: function O(date, token, _localize, options) {
1250
- var originalDate = options._originalDate || date;
1251
- var timezoneOffset = originalDate.getTimezoneOffset();
1252
-
1253
- switch (token) {
1254
- // Short
1255
- case 'O':
1256
- case 'OO':
1257
- case 'OOO':
1258
- return 'GMT' + formatTimezoneShort(timezoneOffset, ':');
1259
- // Long
1260
-
1261
- case 'OOOO':
1262
- default:
1263
- return 'GMT' + formatTimezone(timezoneOffset, ':');
1264
- }
1265
- },
1266
- // Timezone (specific non-location)
1267
- z: function z(date, token, _localize, options) {
1268
- var originalDate = options._originalDate || date;
1269
- var timezoneOffset = originalDate.getTimezoneOffset();
1270
-
1271
- switch (token) {
1272
- // Short
1273
- case 'z':
1274
- case 'zz':
1275
- case 'zzz':
1276
- return 'GMT' + formatTimezoneShort(timezoneOffset, ':');
1277
- // Long
1278
-
1279
- case 'zzzz':
1280
- default:
1281
- return 'GMT' + formatTimezone(timezoneOffset, ':');
1282
- }
1283
- },
1284
- // Seconds timestamp
1285
- t: function t(date, token, _localize, options) {
1286
- var originalDate = options._originalDate || date;
1287
- var timestamp = Math.floor(originalDate.getTime() / 1000);
1288
- return addLeadingZeros(timestamp, token.length);
1289
- },
1290
- // Milliseconds timestamp
1291
- T: function T(date, token, _localize, options) {
1292
- var originalDate = options._originalDate || date;
1293
- var timestamp = originalDate.getTime();
1294
- return addLeadingZeros(timestamp, token.length);
1295
- }
1296
- };
1297
-
1298
- function formatTimezoneShort(offset, dirtyDelimiter) {
1299
- var sign = offset > 0 ? '-' : '+';
1300
- var absOffset = Math.abs(offset);
1301
- var hours = Math.floor(absOffset / 60);
1302
- var minutes = absOffset % 60;
1303
-
1304
- if (minutes === 0) {
1305
- return sign + String(hours);
1306
- }
1307
-
1308
- var delimiter = dirtyDelimiter || '';
1309
- return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);
1310
- }
1311
-
1312
- function formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {
1313
- if (offset % 60 === 0) {
1314
- var sign = offset > 0 ? '-' : '+';
1315
- return sign + addLeadingZeros(Math.abs(offset) / 60, 2);
1316
- }
1317
-
1318
- return formatTimezone(offset, dirtyDelimiter);
1319
- }
1320
-
1321
- function formatTimezone(offset, dirtyDelimiter) {
1322
- var delimiter = dirtyDelimiter || '';
1323
- var sign = offset > 0 ? '-' : '+';
1324
- var absOffset = Math.abs(offset);
1325
- var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);
1326
- var minutes = addLeadingZeros(absOffset % 60, 2);
1327
- return sign + hours + delimiter + minutes;
1328
- }
1329
-
1330
- var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {
1331
- switch (pattern) {
1332
- case 'P':
1333
- return formatLong.date({
1334
- width: 'short'
1335
- });
1336
-
1337
- case 'PP':
1338
- return formatLong.date({
1339
- width: 'medium'
1340
- });
1341
-
1342
- case 'PPP':
1343
- return formatLong.date({
1344
- width: 'long'
1345
- });
1346
-
1347
- case 'PPPP':
1348
- default:
1349
- return formatLong.date({
1350
- width: 'full'
1351
- });
1352
- }
1353
- };
1354
-
1355
- var timeLongFormatter = function timeLongFormatter(pattern, formatLong) {
1356
- switch (pattern) {
1357
- case 'p':
1358
- return formatLong.time({
1359
- width: 'short'
1360
- });
1361
-
1362
- case 'pp':
1363
- return formatLong.time({
1364
- width: 'medium'
1365
- });
1366
-
1367
- case 'ppp':
1368
- return formatLong.time({
1369
- width: 'long'
1370
- });
1371
-
1372
- case 'pppp':
1373
- default:
1374
- return formatLong.time({
1375
- width: 'full'
1376
- });
1377
- }
1378
- };
1379
-
1380
- var dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {
1381
- var matchResult = pattern.match(/(P+)(p+)?/) || [];
1382
- var datePattern = matchResult[1];
1383
- var timePattern = matchResult[2];
1384
-
1385
- if (!timePattern) {
1386
- return dateLongFormatter(pattern, formatLong);
1387
- }
1388
-
1389
- var dateTimeFormat;
1390
-
1391
- switch (datePattern) {
1392
- case 'P':
1393
- dateTimeFormat = formatLong.dateTime({
1394
- width: 'short'
1395
- });
1396
- break;
1397
-
1398
- case 'PP':
1399
- dateTimeFormat = formatLong.dateTime({
1400
- width: 'medium'
1401
- });
1402
- break;
1403
-
1404
- case 'PPP':
1405
- dateTimeFormat = formatLong.dateTime({
1406
- width: 'long'
1407
- });
1408
- break;
1409
-
1410
- case 'PPPP':
1411
- default:
1412
- dateTimeFormat = formatLong.dateTime({
1413
- width: 'full'
1414
- });
1415
- break;
1416
- }
1417
-
1418
- return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));
1419
- };
1420
-
1421
- var longFormatters = {
1422
- p: timeLongFormatter,
1423
- P: dateTimeLongFormatter
1424
- };
1425
-
1426
- var protectedDayOfYearTokens = ['D', 'DD'];
1427
- var protectedWeekYearTokens = ['YY', 'YYYY'];
1428
- function isProtectedDayOfYearToken(token) {
1429
- return protectedDayOfYearTokens.indexOf(token) !== -1;
1430
- }
1431
- function isProtectedWeekYearToken(token) {
1432
- return protectedWeekYearTokens.indexOf(token) !== -1;
1433
- }
1434
- function throwProtectedError(token, format, input) {
1435
- if (token === 'YYYY') {
1436
- throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(format, "`) for formatting years to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));
1437
- } else if (token === 'YY') {
1438
- throw new RangeError("Use `yy` instead of `YY` (in `".concat(format, "`) for formatting years to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));
1439
- } else if (token === 'D') {
1440
- throw new RangeError("Use `d` instead of `D` (in `".concat(format, "`) for formatting days of the month to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));
1441
- } else if (token === 'DD') {
1442
- throw new RangeError("Use `dd` instead of `DD` (in `".concat(format, "`) for formatting days of the month to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));
1443
- }
1444
- }
1445
-
1446
- var formatDistanceLocale = {
1447
- lessThanXSeconds: {
1448
- one: 'less than a second',
1449
- other: 'less than {{count}} seconds'
1450
- },
1451
- xSeconds: {
1452
- one: '1 second',
1453
- other: '{{count}} seconds'
1454
- },
1455
- halfAMinute: 'half a minute',
1456
- lessThanXMinutes: {
1457
- one: 'less than a minute',
1458
- other: 'less than {{count}} minutes'
1459
- },
1460
- xMinutes: {
1461
- one: '1 minute',
1462
- other: '{{count}} minutes'
1463
- },
1464
- aboutXHours: {
1465
- one: 'about 1 hour',
1466
- other: 'about {{count}} hours'
1467
- },
1468
- xHours: {
1469
- one: '1 hour',
1470
- other: '{{count}} hours'
1471
- },
1472
- xDays: {
1473
- one: '1 day',
1474
- other: '{{count}} days'
1475
- },
1476
- aboutXWeeks: {
1477
- one: 'about 1 week',
1478
- other: 'about {{count}} weeks'
1479
- },
1480
- xWeeks: {
1481
- one: '1 week',
1482
- other: '{{count}} weeks'
1483
- },
1484
- aboutXMonths: {
1485
- one: 'about 1 month',
1486
- other: 'about {{count}} months'
1487
- },
1488
- xMonths: {
1489
- one: '1 month',
1490
- other: '{{count}} months'
1491
- },
1492
- aboutXYears: {
1493
- one: 'about 1 year',
1494
- other: 'about {{count}} years'
1495
- },
1496
- xYears: {
1497
- one: '1 year',
1498
- other: '{{count}} years'
1499
- },
1500
- overXYears: {
1501
- one: 'over 1 year',
1502
- other: 'over {{count}} years'
1503
- },
1504
- almostXYears: {
1505
- one: 'almost 1 year',
1506
- other: 'almost {{count}} years'
1507
- }
1508
- };
1509
-
1510
- var formatDistance = function formatDistance(token, count, options) {
1511
- var result;
1512
- var tokenValue = formatDistanceLocale[token];
1513
-
1514
- if (typeof tokenValue === 'string') {
1515
- result = tokenValue;
1516
- } else if (count === 1) {
1517
- result = tokenValue.one;
1518
- } else {
1519
- result = tokenValue.other.replace('{{count}}', count.toString());
1520
- }
1521
-
1522
- if (options !== null && options !== void 0 && options.addSuffix) {
1523
- if (options.comparison && options.comparison > 0) {
1524
- return 'in ' + result;
1525
- } else {
1526
- return result + ' ago';
1527
- }
1528
- }
1529
-
1530
- return result;
1531
- };
1532
-
1533
- function buildFormatLongFn(args) {
1534
- return function () {
1535
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1536
- // TODO: Remove String()
1537
- var width = options.width ? String(options.width) : args.defaultWidth;
1538
- var format = args.formats[width] || args.formats[args.defaultWidth];
1539
- return format;
1540
- };
1541
- }
1542
-
1543
- var dateFormats = {
1544
- full: 'EEEE, MMMM do, y',
1545
- long: 'MMMM do, y',
1546
- medium: 'MMM d, y',
1547
- short: 'MM/dd/yyyy'
1548
- };
1549
- var timeFormats = {
1550
- full: 'h:mm:ss a zzzz',
1551
- long: 'h:mm:ss a z',
1552
- medium: 'h:mm:ss a',
1553
- short: 'h:mm a'
1554
- };
1555
- var dateTimeFormats = {
1556
- full: "{{date}} 'at' {{time}}",
1557
- long: "{{date}} 'at' {{time}}",
1558
- medium: '{{date}}, {{time}}',
1559
- short: '{{date}}, {{time}}'
1560
- };
1561
- var formatLong = {
1562
- date: buildFormatLongFn({
1563
- formats: dateFormats,
1564
- defaultWidth: 'full'
1565
- }),
1566
- time: buildFormatLongFn({
1567
- formats: timeFormats,
1568
- defaultWidth: 'full'
1569
- }),
1570
- dateTime: buildFormatLongFn({
1571
- formats: dateTimeFormats,
1572
- defaultWidth: 'full'
1573
- })
1574
- };
1575
-
1576
- var formatRelativeLocale = {
1577
- lastWeek: "'last' eeee 'at' p",
1578
- yesterday: "'yesterday at' p",
1579
- today: "'today at' p",
1580
- tomorrow: "'tomorrow at' p",
1581
- nextWeek: "eeee 'at' p",
1582
- other: 'P'
1583
- };
1584
-
1585
- var formatRelative = function formatRelative(token, _date, _baseDate, _options) {
1586
- return formatRelativeLocale[token];
1587
- };
1588
-
1589
- function buildLocalizeFn(args) {
1590
- return function (dirtyIndex, options) {
1591
- var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';
1592
- var valuesArray;
1593
-
1594
- if (context === 'formatting' && args.formattingValues) {
1595
- var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
1596
- var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;
1597
- valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
1598
- } else {
1599
- var _defaultWidth = args.defaultWidth;
1600
-
1601
- var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;
1602
-
1603
- valuesArray = args.values[_width] || args.values[_defaultWidth];
1604
- }
1605
-
1606
- var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!
1607
-
1608
- return valuesArray[index];
1609
- };
1610
- }
1611
-
1612
- var eraValues = {
1613
- narrow: ['B', 'A'],
1614
- abbreviated: ['BC', 'AD'],
1615
- wide: ['Before Christ', 'Anno Domini']
1616
- };
1617
- var quarterValues = {
1618
- narrow: ['1', '2', '3', '4'],
1619
- abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],
1620
- wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']
1621
- }; // Note: in English, the names of days of the week and months are capitalized.
1622
- // If you are making a new locale based on this one, check if the same is true for the language you're working on.
1623
- // Generally, formatted dates should look like they are in the middle of a sentence,
1624
- // e.g. in Spanish language the weekdays and months should be in the lowercase.
1625
-
1626
- var monthValues = {
1627
- narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],
1628
- abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
1629
- wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
1630
- };
1631
- var dayValues = {
1632
- narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
1633
- short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
1634
- abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
1635
- wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
1636
- };
1637
- var dayPeriodValues = {
1638
- narrow: {
1639
- am: 'a',
1640
- pm: 'p',
1641
- midnight: 'mi',
1642
- noon: 'n',
1643
- morning: 'morning',
1644
- afternoon: 'afternoon',
1645
- evening: 'evening',
1646
- night: 'night'
1647
- },
1648
- abbreviated: {
1649
- am: 'AM',
1650
- pm: 'PM',
1651
- midnight: 'midnight',
1652
- noon: 'noon',
1653
- morning: 'morning',
1654
- afternoon: 'afternoon',
1655
- evening: 'evening',
1656
- night: 'night'
1657
- },
1658
- wide: {
1659
- am: 'a.m.',
1660
- pm: 'p.m.',
1661
- midnight: 'midnight',
1662
- noon: 'noon',
1663
- morning: 'morning',
1664
- afternoon: 'afternoon',
1665
- evening: 'evening',
1666
- night: 'night'
1667
- }
1668
- };
1669
- var formattingDayPeriodValues = {
1670
- narrow: {
1671
- am: 'a',
1672
- pm: 'p',
1673
- midnight: 'mi',
1674
- noon: 'n',
1675
- morning: 'in the morning',
1676
- afternoon: 'in the afternoon',
1677
- evening: 'in the evening',
1678
- night: 'at night'
1679
- },
1680
- abbreviated: {
1681
- am: 'AM',
1682
- pm: 'PM',
1683
- midnight: 'midnight',
1684
- noon: 'noon',
1685
- morning: 'in the morning',
1686
- afternoon: 'in the afternoon',
1687
- evening: 'in the evening',
1688
- night: 'at night'
1689
- },
1690
- wide: {
1691
- am: 'a.m.',
1692
- pm: 'p.m.',
1693
- midnight: 'midnight',
1694
- noon: 'noon',
1695
- morning: 'in the morning',
1696
- afternoon: 'in the afternoon',
1697
- evening: 'in the evening',
1698
- night: 'at night'
1699
- }
1700
- };
1701
-
1702
- var ordinalNumber = function ordinalNumber(dirtyNumber, _options) {
1703
- var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,
1704
- // if they are different for different grammatical genders,
1705
- // use `options.unit`.
1706
- //
1707
- // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',
1708
- // 'day', 'hour', 'minute', 'second'.
1709
-
1710
- var rem100 = number % 100;
1711
-
1712
- if (rem100 > 20 || rem100 < 10) {
1713
- switch (rem100 % 10) {
1714
- case 1:
1715
- return number + 'st';
1716
-
1717
- case 2:
1718
- return number + 'nd';
1719
-
1720
- case 3:
1721
- return number + 'rd';
1722
- }
1723
- }
1724
-
1725
- return number + 'th';
1726
- };
1727
-
1728
- var localize = {
1729
- ordinalNumber: ordinalNumber,
1730
- era: buildLocalizeFn({
1731
- values: eraValues,
1732
- defaultWidth: 'wide'
1733
- }),
1734
- quarter: buildLocalizeFn({
1735
- values: quarterValues,
1736
- defaultWidth: 'wide',
1737
- argumentCallback: function argumentCallback(quarter) {
1738
- return quarter - 1;
1739
- }
1740
- }),
1741
- month: buildLocalizeFn({
1742
- values: monthValues,
1743
- defaultWidth: 'wide'
1744
- }),
1745
- day: buildLocalizeFn({
1746
- values: dayValues,
1747
- defaultWidth: 'wide'
1748
- }),
1749
- dayPeriod: buildLocalizeFn({
1750
- values: dayPeriodValues,
1751
- defaultWidth: 'wide',
1752
- formattingValues: formattingDayPeriodValues,
1753
- defaultFormattingWidth: 'wide'
1754
- })
1755
- };
1756
-
1757
- function buildMatchFn(args) {
1758
- return function (string) {
1759
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1760
- var width = options.width;
1761
- var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];
1762
- var matchResult = string.match(matchPattern);
1763
-
1764
- if (!matchResult) {
1765
- return null;
1766
- }
1767
-
1768
- var matchedString = matchResult[0];
1769
- var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];
1770
- var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {
1771
- return pattern.test(matchedString);
1772
- }) : findKey(parsePatterns, function (pattern) {
1773
- return pattern.test(matchedString);
1774
- });
1775
- var value;
1776
- value = args.valueCallback ? args.valueCallback(key) : key;
1777
- value = options.valueCallback ? options.valueCallback(value) : value;
1778
- var rest = string.slice(matchedString.length);
1779
- return {
1780
- value: value,
1781
- rest: rest
1782
- };
1783
- };
1784
- }
1785
-
1786
- function findKey(object, predicate) {
1787
- for (var key in object) {
1788
- if (object.hasOwnProperty(key) && predicate(object[key])) {
1789
- return key;
1790
- }
1791
- }
1792
-
1793
- return undefined;
1794
- }
1795
-
1796
- function findIndex(array, predicate) {
1797
- for (var key = 0; key < array.length; key++) {
1798
- if (predicate(array[key])) {
1799
- return key;
1800
- }
1801
- }
1802
-
1803
- return undefined;
1804
- }
1805
-
1806
- function buildMatchPatternFn(args) {
1807
- return function (string) {
1808
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1809
- var matchResult = string.match(args.matchPattern);
1810
- if (!matchResult) return null;
1811
- var matchedString = matchResult[0];
1812
- var parseResult = string.match(args.parsePattern);
1813
- if (!parseResult) return null;
1814
- var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];
1815
- value = options.valueCallback ? options.valueCallback(value) : value;
1816
- var rest = string.slice(matchedString.length);
1817
- return {
1818
- value: value,
1819
- rest: rest
1820
- };
1821
- };
1822
- }
1823
-
1824
- var matchOrdinalNumberPattern = /^(\d+)(th|st|nd|rd)?/i;
1825
- var parseOrdinalNumberPattern = /\d+/i;
1826
- var matchEraPatterns = {
1827
- narrow: /^(b|a)/i,
1828
- abbreviated: /^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,
1829
- wide: /^(before christ|before common era|anno domini|common era)/i
1830
- };
1831
- var parseEraPatterns = {
1832
- any: [/^b/i, /^(a|c)/i]
1833
- };
1834
- var matchQuarterPatterns = {
1835
- narrow: /^[1234]/i,
1836
- abbreviated: /^q[1234]/i,
1837
- wide: /^[1234](th|st|nd|rd)? quarter/i
1838
- };
1839
- var parseQuarterPatterns = {
1840
- any: [/1/i, /2/i, /3/i, /4/i]
1841
- };
1842
- var matchMonthPatterns = {
1843
- narrow: /^[jfmasond]/i,
1844
- abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,
1845
- wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i
1846
- };
1847
- var parseMonthPatterns = {
1848
- narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],
1849
- any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]
1850
- };
1851
- var matchDayPatterns = {
1852
- narrow: /^[smtwf]/i,
1853
- short: /^(su|mo|tu|we|th|fr|sa)/i,
1854
- abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,
1855
- wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i
1856
- };
1857
- var parseDayPatterns = {
1858
- narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],
1859
- any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]
1860
- };
1861
- var matchDayPeriodPatterns = {
1862
- narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,
1863
- any: /^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i
1864
- };
1865
- var parseDayPeriodPatterns = {
1866
- any: {
1867
- am: /^a/i,
1868
- pm: /^p/i,
1869
- midnight: /^mi/i,
1870
- noon: /^no/i,
1871
- morning: /morning/i,
1872
- afternoon: /afternoon/i,
1873
- evening: /evening/i,
1874
- night: /night/i
1875
- }
1876
- };
1877
- var match = {
1878
- ordinalNumber: buildMatchPatternFn({
1879
- matchPattern: matchOrdinalNumberPattern,
1880
- parsePattern: parseOrdinalNumberPattern,
1881
- valueCallback: function valueCallback(value) {
1882
- return parseInt(value, 10);
1883
- }
1884
- }),
1885
- era: buildMatchFn({
1886
- matchPatterns: matchEraPatterns,
1887
- defaultMatchWidth: 'wide',
1888
- parsePatterns: parseEraPatterns,
1889
- defaultParseWidth: 'any'
1890
- }),
1891
- quarter: buildMatchFn({
1892
- matchPatterns: matchQuarterPatterns,
1893
- defaultMatchWidth: 'wide',
1894
- parsePatterns: parseQuarterPatterns,
1895
- defaultParseWidth: 'any',
1896
- valueCallback: function valueCallback(index) {
1897
- return index + 1;
1898
- }
1899
- }),
1900
- month: buildMatchFn({
1901
- matchPatterns: matchMonthPatterns,
1902
- defaultMatchWidth: 'wide',
1903
- parsePatterns: parseMonthPatterns,
1904
- defaultParseWidth: 'any'
1905
- }),
1906
- day: buildMatchFn({
1907
- matchPatterns: matchDayPatterns,
1908
- defaultMatchWidth: 'wide',
1909
- parsePatterns: parseDayPatterns,
1910
- defaultParseWidth: 'any'
1911
- }),
1912
- dayPeriod: buildMatchFn({
1913
- matchPatterns: matchDayPeriodPatterns,
1914
- defaultMatchWidth: 'any',
1915
- parsePatterns: parseDayPeriodPatterns,
1916
- defaultParseWidth: 'any'
1917
- })
1918
- };
1919
-
1920
- /**
1921
- * @type {Locale}
1922
- * @category Locales
1923
- * @summary English locale (United States).
1924
- * @language English
1925
- * @iso-639-2 eng
1926
- * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}
1927
- * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}
1928
- */
1929
- var locale = {
1930
- code: 'en-US',
1931
- formatDistance: formatDistance,
1932
- formatLong: formatLong,
1933
- formatRelative: formatRelative,
1934
- localize: localize,
1935
- match: match,
1936
- options: {
1937
- weekStartsOn: 0
1938
- /* Sunday */
1939
- ,
1940
- firstWeekContainsDate: 1
1941
- }
1942
- };
1943
-
1944
- // - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token
1945
- // (one of the certain letters followed by `o`)
1946
- // - (\w)\1* matches any sequences of the same letter
1947
- // - '' matches two quote characters in a row
1948
- // - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),
1949
- // except a single quote symbol, which ends the sequence.
1950
- // Two quote characters do not end the sequence.
1951
- // If there is no matching single quote
1952
- // then the sequence will continue until the end of the string.
1953
- // - . matches any single character unmatched by previous parts of the RegExps
1954
-
1955
- var formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also
1956
- // sequences of symbols P, p, and the combinations like `PPPPPPPppppp`
1957
-
1958
- var longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;
1959
- var escapedStringRegExp = /^'([^]*?)'?$/;
1960
- var doubleQuoteRegExp = /''/g;
1961
- var unescapedLatinCharacterRegExp = /[a-zA-Z]/;
1962
- /**
1963
- * @name format
1964
- * @category Common Helpers
1965
- * @summary Format the date.
1966
- *
1967
- * @description
1968
- * Return the formatted date string in the given format. The result may vary by locale.
1969
- *
1970
- * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.
1971
- * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
1972
- *
1973
- * The characters wrapped between two single quotes characters (') are escaped.
1974
- * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.
1975
- * (see the last example)
1976
- *
1977
- * Format of the string is based on Unicode Technical Standard #35:
1978
- * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table
1979
- * with a few additions (see note 7 below the table).
1980
- *
1981
- * Accepted patterns:
1982
- * | Unit | Pattern | Result examples | Notes |
1983
- * |---------------------------------|---------|-----------------------------------|-------|
1984
- * | Era | G..GGG | AD, BC | |
1985
- * | | GGGG | Anno Domini, Before Christ | 2 |
1986
- * | | GGGGG | A, B | |
1987
- * | Calendar year | y | 44, 1, 1900, 2017 | 5 |
1988
- * | | yo | 44th, 1st, 0th, 17th | 5,7 |
1989
- * | | yy | 44, 01, 00, 17 | 5 |
1990
- * | | yyy | 044, 001, 1900, 2017 | 5 |
1991
- * | | yyyy | 0044, 0001, 1900, 2017 | 5 |
1992
- * | | yyyyy | ... | 3,5 |
1993
- * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |
1994
- * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |
1995
- * | | YY | 44, 01, 00, 17 | 5,8 |
1996
- * | | YYY | 044, 001, 1900, 2017 | 5 |
1997
- * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |
1998
- * | | YYYYY | ... | 3,5 |
1999
- * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |
2000
- * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |
2001
- * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |
2002
- * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |
2003
- * | | RRRRR | ... | 3,5,7 |
2004
- * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |
2005
- * | | uu | -43, 01, 1900, 2017 | 5 |
2006
- * | | uuu | -043, 001, 1900, 2017 | 5 |
2007
- * | | uuuu | -0043, 0001, 1900, 2017 | 5 |
2008
- * | | uuuuu | ... | 3,5 |
2009
- * | Quarter (formatting) | Q | 1, 2, 3, 4 | |
2010
- * | | Qo | 1st, 2nd, 3rd, 4th | 7 |
2011
- * | | QQ | 01, 02, 03, 04 | |
2012
- * | | QQQ | Q1, Q2, Q3, Q4 | |
2013
- * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |
2014
- * | | QQQQQ | 1, 2, 3, 4 | 4 |
2015
- * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |
2016
- * | | qo | 1st, 2nd, 3rd, 4th | 7 |
2017
- * | | qq | 01, 02, 03, 04 | |
2018
- * | | qqq | Q1, Q2, Q3, Q4 | |
2019
- * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |
2020
- * | | qqqqq | 1, 2, 3, 4 | 4 |
2021
- * | Month (formatting) | M | 1, 2, ..., 12 | |
2022
- * | | Mo | 1st, 2nd, ..., 12th | 7 |
2023
- * | | MM | 01, 02, ..., 12 | |
2024
- * | | MMM | Jan, Feb, ..., Dec | |
2025
- * | | MMMM | January, February, ..., December | 2 |
2026
- * | | MMMMM | J, F, ..., D | |
2027
- * | Month (stand-alone) | L | 1, 2, ..., 12 | |
2028
- * | | Lo | 1st, 2nd, ..., 12th | 7 |
2029
- * | | LL | 01, 02, ..., 12 | |
2030
- * | | LLL | Jan, Feb, ..., Dec | |
2031
- * | | LLLL | January, February, ..., December | 2 |
2032
- * | | LLLLL | J, F, ..., D | |
2033
- * | Local week of year | w | 1, 2, ..., 53 | |
2034
- * | | wo | 1st, 2nd, ..., 53th | 7 |
2035
- * | | ww | 01, 02, ..., 53 | |
2036
- * | ISO week of year | I | 1, 2, ..., 53 | 7 |
2037
- * | | Io | 1st, 2nd, ..., 53th | 7 |
2038
- * | | II | 01, 02, ..., 53 | 7 |
2039
- * | Day of month | d | 1, 2, ..., 31 | |
2040
- * | | do | 1st, 2nd, ..., 31st | 7 |
2041
- * | | dd | 01, 02, ..., 31 | |
2042
- * | Day of year | D | 1, 2, ..., 365, 366 | 9 |
2043
- * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |
2044
- * | | DD | 01, 02, ..., 365, 366 | 9 |
2045
- * | | DDD | 001, 002, ..., 365, 366 | |
2046
- * | | DDDD | ... | 3 |
2047
- * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |
2048
- * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |
2049
- * | | EEEEE | M, T, W, T, F, S, S | |
2050
- * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |
2051
- * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |
2052
- * | | io | 1st, 2nd, ..., 7th | 7 |
2053
- * | | ii | 01, 02, ..., 07 | 7 |
2054
- * | | iii | Mon, Tue, Wed, ..., Sun | 7 |
2055
- * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |
2056
- * | | iiiii | M, T, W, T, F, S, S | 7 |
2057
- * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |
2058
- * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |
2059
- * | | eo | 2nd, 3rd, ..., 1st | 7 |
2060
- * | | ee | 02, 03, ..., 01 | |
2061
- * | | eee | Mon, Tue, Wed, ..., Sun | |
2062
- * | | eeee | Monday, Tuesday, ..., Sunday | 2 |
2063
- * | | eeeee | M, T, W, T, F, S, S | |
2064
- * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |
2065
- * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |
2066
- * | | co | 2nd, 3rd, ..., 1st | 7 |
2067
- * | | cc | 02, 03, ..., 01 | |
2068
- * | | ccc | Mon, Tue, Wed, ..., Sun | |
2069
- * | | cccc | Monday, Tuesday, ..., Sunday | 2 |
2070
- * | | ccccc | M, T, W, T, F, S, S | |
2071
- * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |
2072
- * | AM, PM | a..aa | AM, PM | |
2073
- * | | aaa | am, pm | |
2074
- * | | aaaa | a.m., p.m. | 2 |
2075
- * | | aaaaa | a, p | |
2076
- * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |
2077
- * | | bbb | am, pm, noon, midnight | |
2078
- * | | bbbb | a.m., p.m., noon, midnight | 2 |
2079
- * | | bbbbb | a, p, n, mi | |
2080
- * | Flexible day period | B..BBB | at night, in the morning, ... | |
2081
- * | | BBBB | at night, in the morning, ... | 2 |
2082
- * | | BBBBB | at night, in the morning, ... | |
2083
- * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |
2084
- * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |
2085
- * | | hh | 01, 02, ..., 11, 12 | |
2086
- * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |
2087
- * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |
2088
- * | | HH | 00, 01, 02, ..., 23 | |
2089
- * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |
2090
- * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |
2091
- * | | KK | 01, 02, ..., 11, 00 | |
2092
- * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |
2093
- * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |
2094
- * | | kk | 24, 01, 02, ..., 23 | |
2095
- * | Minute | m | 0, 1, ..., 59 | |
2096
- * | | mo | 0th, 1st, ..., 59th | 7 |
2097
- * | | mm | 00, 01, ..., 59 | |
2098
- * | Second | s | 0, 1, ..., 59 | |
2099
- * | | so | 0th, 1st, ..., 59th | 7 |
2100
- * | | ss | 00, 01, ..., 59 | |
2101
- * | Fraction of second | S | 0, 1, ..., 9 | |
2102
- * | | SS | 00, 01, ..., 99 | |
2103
- * | | SSS | 000, 001, ..., 999 | |
2104
- * | | SSSS | ... | 3 |
2105
- * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |
2106
- * | | XX | -0800, +0530, Z | |
2107
- * | | XXX | -08:00, +05:30, Z | |
2108
- * | | XXXX | -0800, +0530, Z, +123456 | 2 |
2109
- * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |
2110
- * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |
2111
- * | | xx | -0800, +0530, +0000 | |
2112
- * | | xxx | -08:00, +05:30, +00:00 | 2 |
2113
- * | | xxxx | -0800, +0530, +0000, +123456 | |
2114
- * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |
2115
- * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |
2116
- * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |
2117
- * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |
2118
- * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |
2119
- * | Seconds timestamp | t | 512969520 | 7 |
2120
- * | | tt | ... | 3,7 |
2121
- * | Milliseconds timestamp | T | 512969520900 | 7 |
2122
- * | | TT | ... | 3,7 |
2123
- * | Long localized date | P | 04/29/1453 | 7 |
2124
- * | | PP | Apr 29, 1453 | 7 |
2125
- * | | PPP | April 29th, 1453 | 7 |
2126
- * | | PPPP | Friday, April 29th, 1453 | 2,7 |
2127
- * | Long localized time | p | 12:00 AM | 7 |
2128
- * | | pp | 12:00:00 AM | 7 |
2129
- * | | ppp | 12:00:00 AM GMT+2 | 7 |
2130
- * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |
2131
- * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |
2132
- * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |
2133
- * | | PPPppp | April 29th, 1453 at ... | 7 |
2134
- * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |
2135
- * Notes:
2136
- * 1. "Formatting" units (e.g. formatting quarter) in the default en-US locale
2137
- * are the same as "stand-alone" units, but are different in some languages.
2138
- * "Formatting" units are declined according to the rules of the language
2139
- * in the context of a date. "Stand-alone" units are always nominative singular:
2140
- *
2141
- * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`
2142
- *
2143
- * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`
2144
- *
2145
- * 2. Any sequence of the identical letters is a pattern, unless it is escaped by
2146
- * the single quote characters (see below).
2147
- * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)
2148
- * the output will be the same as default pattern for this unit, usually
2149
- * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units
2150
- * are marked with "2" in the last column of the table.
2151
- *
2152
- * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`
2153
- *
2154
- * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`
2155
- *
2156
- * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`
2157
- *
2158
- * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`
2159
- *
2160
- * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`
2161
- *
2162
- * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).
2163
- * The output will be padded with zeros to match the length of the pattern.
2164
- *
2165
- * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`
2166
- *
2167
- * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.
2168
- * These tokens represent the shortest form of the quarter.
2169
- *
2170
- * 5. The main difference between `y` and `u` patterns are B.C. years:
2171
- *
2172
- * | Year | `y` | `u` |
2173
- * |------|-----|-----|
2174
- * | AC 1 | 1 | 1 |
2175
- * | BC 1 | 1 | 0 |
2176
- * | BC 2 | 2 | -1 |
2177
- *
2178
- * Also `yy` always returns the last two digits of a year,
2179
- * while `uu` pads single digit years to 2 characters and returns other years unchanged:
2180
- *
2181
- * | Year | `yy` | `uu` |
2182
- * |------|------|------|
2183
- * | 1 | 01 | 01 |
2184
- * | 14 | 14 | 14 |
2185
- * | 376 | 76 | 376 |
2186
- * | 1453 | 53 | 1453 |
2187
- *
2188
- * The same difference is true for local and ISO week-numbering years (`Y` and `R`),
2189
- * except local week-numbering years are dependent on `options.weekStartsOn`
2190
- * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}
2191
- * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).
2192
- *
2193
- * 6. Specific non-location timezones are currently unavailable in `date-fns`,
2194
- * so right now these tokens fall back to GMT timezones.
2195
- *
2196
- * 7. These patterns are not in the Unicode Technical Standard #35:
2197
- * - `i`: ISO day of week
2198
- * - `I`: ISO week of year
2199
- * - `R`: ISO week-numbering year
2200
- * - `t`: seconds timestamp
2201
- * - `T`: milliseconds timestamp
2202
- * - `o`: ordinal number modifier
2203
- * - `P`: long localized date
2204
- * - `p`: long localized time
2205
- *
2206
- * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.
2207
- * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
2208
- *
2209
- * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.
2210
- * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
2211
- *
2212
- * @param {Date|Number} date - the original date
2213
- * @param {String} format - the string of tokens
2214
- * @param {Object} [options] - an object with options.
2215
- * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}
2216
- * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)
2217
- * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is
2218
- * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;
2219
- * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
2220
- * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;
2221
- * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
2222
- * @returns {String} the formatted date string
2223
- * @throws {TypeError} 2 arguments required
2224
- * @throws {RangeError} `date` must not be Invalid Date
2225
- * @throws {RangeError} `options.locale` must contain `localize` property
2226
- * @throws {RangeError} `options.locale` must contain `formatLong` property
2227
- * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6
2228
- * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7
2229
- * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
2230
- * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
2231
- * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
2232
- * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
2233
- * @throws {RangeError} format string contains an unescaped latin alphabet character
2234
- *
2235
- * @example
2236
- * // Represent 11 February 2014 in middle-endian format:
2237
- * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')
2238
- * //=> '02/11/2014'
2239
- *
2240
- * @example
2241
- * // Represent 2 July 2014 in Esperanto:
2242
- * import { eoLocale } from 'date-fns/locale/eo'
2243
- * const result = format(new Date(2014, 6, 2), "do 'de' MMMM yyyy", {
2244
- * locale: eoLocale
2245
- * })
2246
- * //=> '2-a de julio 2014'
2247
- *
2248
- * @example
2249
- * // Escape string by single quote characters:
2250
- * const result = format(new Date(2014, 6, 2, 15), "h 'o''clock'")
2251
- * //=> "3 o'clock"
2252
- */
2253
-
2254
- function format(dirtyDate, dirtyFormatStr, options) {
2255
- var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;
2256
-
2257
- requiredArgs(2, arguments);
2258
- var formatStr = String(dirtyFormatStr);
2259
- var defaultOptions = getDefaultOptions();
2260
- var locale$1 = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : locale;
2261
- var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN
2262
-
2263
- if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {
2264
- throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');
2265
- }
2266
-
2267
- var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN
2268
-
2269
- if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {
2270
- throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');
2271
- }
2272
-
2273
- if (!locale$1.localize) {
2274
- throw new RangeError('locale must contain localize property');
2275
- }
2276
-
2277
- if (!locale$1.formatLong) {
2278
- throw new RangeError('locale must contain formatLong property');
2279
- }
2280
-
2281
- var originalDate = toDate(dirtyDate);
2282
-
2283
- if (!isValid(originalDate)) {
2284
- throw new RangeError('Invalid time value');
2285
- } // Convert the date in system timezone to the same date in UTC+00:00 timezone.
2286
- // This ensures that when UTC functions will be implemented, locales will be compatible with them.
2287
- // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376
2288
-
2289
-
2290
- var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);
2291
- var utcDate = subMilliseconds(originalDate, timezoneOffset);
2292
- var formatterOptions = {
2293
- firstWeekContainsDate: firstWeekContainsDate,
2294
- weekStartsOn: weekStartsOn,
2295
- locale: locale$1,
2296
- _originalDate: originalDate
2297
- };
2298
- var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {
2299
- var firstCharacter = substring[0];
2300
-
2301
- if (firstCharacter === 'p' || firstCharacter === 'P') {
2302
- var longFormatter = longFormatters[firstCharacter];
2303
- return longFormatter(substring, locale$1.formatLong);
2304
- }
2305
-
2306
- return substring;
2307
- }).join('').match(formattingTokensRegExp).map(function (substring) {
2308
- // Replace two single quote characters with one single quote character
2309
- if (substring === "''") {
2310
- return "'";
2311
- }
2312
-
2313
- var firstCharacter = substring[0];
2314
-
2315
- if (firstCharacter === "'") {
2316
- return cleanEscapedString(substring);
2317
- }
2318
-
2319
- var formatter = formatters[firstCharacter];
2320
-
2321
- if (formatter) {
2322
- if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {
2323
- throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));
2324
- }
2325
-
2326
- if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {
2327
- throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));
2328
- }
2329
-
2330
- return formatter(utcDate, substring, locale$1.localize, formatterOptions);
2331
- }
2332
-
2333
- if (firstCharacter.match(unescapedLatinCharacterRegExp)) {
2334
- throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');
2335
- }
2336
-
2337
- return substring;
2338
- }).join('');
2339
- return result;
2340
- }
2341
-
2342
- function cleanEscapedString(input) {
2343
- var matched = input.match(escapedStringRegExp);
2344
-
2345
- if (!matched) {
2346
- return input;
2347
- }
2348
-
2349
- return matched[1].replace(doubleQuoteRegExp, "'");
2350
- }
2351
-
2352
- /**
2353
- * Default values for all Dinero objects.
2354
- *
2355
- * You can override default values for all subsequent Dinero objects by changing them directly on the global `Dinero` object.
2356
- * Existing instances won't be affected.
2357
- *
2358
- * @property {Number} defaultAmount - The default amount for new Dinero objects (see {@link module:Dinero Dinero} for format).
2359
- * @property {String} defaultCurrency - The default currency for new Dinero objects (see {@link module:Dinero Dinero} for format).
2360
- * @property {Number} defaultPrecision - The default precision for new Dinero objects (see {@link module:Dinero Dinero} for format).
2361
- *
2362
- * @example
2363
- * // Will set currency to 'EUR' for all Dinero objects.
2364
- * Dinero.defaultCurrency = 'EUR'
2365
- *
2366
- * @type {Object}
2367
- */
2368
- var Defaults = {
2369
- defaultAmount: 0,
2370
- defaultCurrency: 'USD',
2371
- defaultPrecision: 2
2372
- };
2373
- /**
2374
- * Global settings for all Dinero objects.
2375
- *
2376
- * You can override global values for all subsequent Dinero objects by changing them directly on the global `Dinero` object.
2377
- * Existing instances won't be affected.
2378
- *
2379
- * @property {String} globalLocale - The global locale for new Dinero objects (see {@link module:Dinero~setLocale setLocale} for format).
2380
- * @property {String} globalFormat - The global format for new Dinero objects (see {@link module:Dinero~toFormat toFormat} for format).
2381
- * @property {String} globalRoundingMode - The global rounding mode for new Dinero objects (see {@link module:Dinero~multiply multiply} or {@link module:Dinero~divide divide} for format).
2382
- * @property {String} globalFormatRoundingMode - The global rounding mode to format new Dinero objects (see {@link module:Dinero~toFormat toFormat} or {@link module:Dinero~toRoundedUnit toRoundedUnit} for format).
2383
- * @property {(String|Promise)} globalExchangeRatesApi.endpoint - The global exchange rate API endpoint for new Dinero objects, or the global promise that resolves to the exchanges rates (see {@link module:Dinero~convert convert} for format).
2384
- * @property {String} globalExchangeRatesApi.propertyPath - The global exchange rate API property path for new Dinero objects (see {@link module:Dinero~convert convert} for format).
2385
- * @property {Object} globalExchangeRatesApi.headers - The global exchange rate API headers for new Dinero objects (see {@link module:Dinero~convert convert} for format).
2386
- *
2387
- * @example
2388
- * // Will set locale to 'fr-FR' for all Dinero objects.
2389
- * Dinero.globalLocale = 'fr-FR'
2390
- * @example
2391
- * // Will set global exchange rate API parameters for all Dinero objects.
2392
- * Dinero.globalExchangeRatesApi = {
2393
- * endpoint: 'https://yourexchangerates.api/latest?base={{from}}',
2394
- * propertyPath: 'data.rates.{{to}}',
2395
- * headers: {
2396
- * 'user-key': 'xxxxxxxxx'
2397
- * }
2398
- * }
2399
- *
2400
- * @type {Object}
2401
- */
2402
-
2403
- var Globals = {
2404
- globalLocale: 'en-US',
2405
- globalFormat: '$0,0.00',
2406
- globalRoundingMode: 'HALF_EVEN',
2407
- globalFormatRoundingMode: 'HALF_AWAY_FROM_ZERO',
2408
- globalExchangeRatesApi: {
2409
- endpoint: undefined,
2410
- headers: undefined,
2411
- propertyPath: undefined
2412
- }
2413
- };
2414
-
2415
- function _typeof(obj) {
2416
- "@babel/helpers - typeof";
2417
-
2418
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
2419
- _typeof = function (obj) {
2420
- return typeof obj;
2421
- };
2422
- } else {
2423
- _typeof = function (obj) {
2424
- return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
2425
- };
2426
- }
2427
-
2428
- return _typeof(obj);
2429
- }
9
+ const paymentsListCss = ":root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13, 110, 253;--bs-secondary-rgb:108, 117, 125;--bs-success-rgb:25, 135, 84;--bs-info-rgb:13, 202, 240;--bs-warning-rgb:255, 193, 7;--bs-danger-rgb:220, 53, 69;--bs-light-rgb:248, 249, 250;--bs-dark-rgb:33, 37, 41;--bs-primary-text-emphasis:#052c65;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#0a3622;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#664d03;--bs-danger-text-emphasis:#58151c;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#cfe2ff;--bs-secondary-bg-subtle:#e2e3e5;--bs-success-bg-subtle:#d1e7dd;--bs-info-bg-subtle:#cff4fc;--bs-warning-bg-subtle:#fff3cd;--bs-danger-bg-subtle:#f8d7da;--bs-light-bg-subtle:#fcfcfd;--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:#9ec5fe;--bs-secondary-border-subtle:#c4c8cb;--bs-success-border-subtle:#a3cfbb;--bs-info-border-subtle:#9eeaf9;--bs-warning-border-subtle:#ffe69c;--bs-danger-border-subtle:#f1aeb5;--bs-light-border-subtle:#e9ecef;--bs-dark-border-subtle:#adb5bd;--bs-white-rgb:255, 255, 255;--bs-black-rgb:0, 0, 0;--bs-font-sans-serif:system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";--bs-font-monospace:SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-color-rgb:33, 37, 41;--bs-body-bg:#fff;--bs-body-bg-rgb:255, 255, 255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0, 0, 0;--bs-secondary-color:rgba(33, 37, 41, 0.75);--bs-secondary-color-rgb:33, 37, 41;--bs-secondary-bg:#e9ecef;--bs-secondary-bg-rgb:233, 236, 239;--bs-tertiary-color:rgba(33, 37, 41, 0.5);--bs-tertiary-color-rgb:33, 37, 41;--bs-tertiary-bg:#f8f9fa;--bs-tertiary-bg-rgb:248, 249, 250;--bs-heading-color:inherit;--bs-link-color:#0d6efd;--bs-link-color-rgb:13, 110, 253;--bs-link-decoration:underline;--bs-link-hover-color:#0a58ca;--bs-link-hover-color-rgb:10, 88, 202;--bs-code-color:#d63384;--bs-highlight-bg:#fff3cd;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, 0.175);--bs-border-radius:0.375rem;--bs-border-radius-sm:0.25rem;--bs-border-radius-lg:0.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg:0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width:0.25rem;--bs-focus-ring-opacity:0.25;--bs-focus-ring-color:rgba(13, 110, 253, 0.25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color:#dee2e6;--bs-body-color-rgb:222, 226, 230;--bs-body-bg:#212529;--bs-body-bg-rgb:33, 37, 41;--bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255, 255, 255;--bs-secondary-color:rgba(222, 226, 230, 0.75);--bs-secondary-color-rgb:222, 226, 230;--bs-secondary-bg:#343a40;--bs-secondary-bg-rgb:52, 58, 64;--bs-tertiary-color:rgba(222, 226, 230, 0.5);--bs-tertiary-color-rgb:222, 226, 230;--bs-tertiary-bg:#2b3035;--bs-tertiary-bg-rgb:43, 48, 53;--bs-primary-text-emphasis:#6ea8fe;--bs-secondary-text-emphasis:#a7acb1;--bs-success-text-emphasis:#75b798;--bs-info-text-emphasis:#6edff6;--bs-warning-text-emphasis:#ffda6a;--bs-danger-text-emphasis:#ea868f;--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:#031633;--bs-secondary-bg-subtle:#161719;--bs-success-bg-subtle:#051b11;--bs-info-bg-subtle:#032830;--bs-warning-bg-subtle:#332701;--bs-danger-bg-subtle:#2c0b0e;--bs-light-bg-subtle:#343a40;--bs-dark-bg-subtle:#1a1d20;--bs-primary-border-subtle:#084298;--bs-secondary-border-subtle:#41464b;--bs-success-border-subtle:#0f5132;--bs-info-border-subtle:#087990;--bs-warning-border-subtle:#997404;--bs-danger-border-subtle:#842029;--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:#6ea8fe;--bs-link-hover-color:#8bb9fe;--bs-link-color-rgb:110, 168, 254;--bs-link-hover-color-rgb:139, 185, 254;--bs-code-color:#e685b5;--bs-border-color:#495057;--bs-border-color-translucent:rgba(255, 255, 255, 0.15);--bs-form-valid-color:#75b798;--bs-form-valid-border-color:#75b798;--bs-form-invalid-color:#ea868f;--bs-form-invalid-border-color:#ea868f}.spinner-grow,.spinner-border{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg) }}.spinner-border{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-border-width:0.25em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem;--bs-spinner-border-width:0.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem}@media (prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed:1.5s}}.clearfix::after{display:block;clear:both;content:\"\"}.text-bg-primary{color:#fff !important;background-color:RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-secondary{color:#fff !important;background-color:RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-success{color:#fff !important;background-color:RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-info{color:#000 !important;background-color:RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-warning{color:#000 !important;background-color:RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-danger{color:#fff !important;background-color:RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-light{color:#000 !important;background-color:RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-dark{color:#fff !important;background-color:RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important}.link-primary{color:RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-primary:hover,.link-primary:focus{color:RGBA(10, 88, 202, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)) !important}.link-secondary{color:RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-secondary:hover,.link-secondary:focus{color:RGBA(86, 94, 100, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important}.link-success{color:RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-success:hover,.link-success:focus{color:RGBA(20, 108, 67, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)) !important}.link-info{color:RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-info:hover,.link-info:focus{color:RGBA(61, 213, 243, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important}.link-warning{color:RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-warning:hover,.link-warning:focus{color:RGBA(255, 205, 57, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)) !important}.link-danger{color:RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-danger:hover,.link-danger:focus{color:RGBA(176, 42, 55, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)) !important}.link-light{color:RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-light:hover,.link-light:focus{color:RGBA(249, 250, 251, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important}.link-dark{color:RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-dark:hover,.link-dark:focus{color:RGBA(26, 30, 33, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:0.375rem;align-items:center;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5));text-underline-offset:0.25em;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:0.2s ease-in-out transform}@media (prefers-reduced-motion: reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--bs-icon-link-transform, translate3d(0.25em, 0, 0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:\"\"}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media (min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:\"\"}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:0.25}*,*::before,*::after{box-sizing:border-box}@media (prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0, 0, 0, 0)}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:0.25}h6,h5,h4,h3,h2,h1{margin-top:0;margin-bottom:0.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width: 1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + 0.9vw)}@media (min-width: 1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + 0.6vw)}@media (min-width: 1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + 0.3vw)}@media (min-width: 1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:0.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:0.875em}mark{padding:0.1875em;background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:0.75em;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}a{color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));text-decoration:underline}a:hover{--bs-link-color-rgb:var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:0.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:0.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:0.1875rem 0.375rem;font-size:0.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:0.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:0.5rem;padding-bottom:0.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none !important}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:0.5rem;font-size:calc(1.275rem + 0.3vw);line-height:inherit}@media (min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none !important}.table{--bs-table-color-type:initial;--bs-table-bg-type:initial;--bs-table-color-state:initial;--bs-table-bg-state:initial;--bs-table-color:var(--bs-body-color);--bs-table-bg:var(--bs-body-bg);--bs-table-border-color:var(--bs-border-color);--bs-table-accent-bg:transparent;--bs-table-striped-color:var(--bs-body-color);--bs-table-striped-bg:rgba(0, 0, 0, 0.05);--bs-table-active-color:var(--bs-body-color);--bs-table-active-bg:rgba(0, 0, 0, 0.1);--bs-table-hover-color:var(--bs-body-color);--bs-table-hover-bg:rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:0.5rem 0.5rem;color:var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:0.25rem 0.25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(even){--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-active{--bs-table-color-state:var(--bs-table-active-color);--bs-table-bg-state:var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state:var(--bs-table-hover-color);--bs-table-bg-state:var(--bs-table-hover-bg)}.table-primary{--bs-table-color:#000;--bs-table-bg:#cfe2ff;--bs-table-border-color:#bacbe6;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color:#000;--bs-table-bg:#e2e3e5;--bs-table-border-color:#cbccce;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color:#000;--bs-table-bg:#d1e7dd;--bs-table-border-color:#bcd0c7;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color:#000;--bs-table-bg:#cff4fc;--bs-table-border-color:#badce3;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color:#000;--bs-table-bg:#fff3cd;--bs-table-border-color:#e6dbb9;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color:#000;--bs-table-bg:#f8d7da;--bs-table-border-color:#dfc2c4;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color:#000;--bs-table-bg:#f8f9fa;--bs-table-border-color:#dfe0e1;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color:#fff;--bs-table-bg:#212529;--bs-table-border-color:#373b3e;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.btn{--bs-btn-padding-x:0.75rem;--bs-btn-padding-y:0.375rem;--bs-btn-font-size:1rem;--bs-btn-font-weight:400;--bs-btn-line-height:1.5;--bs-btn-color:var(--bs-body-color);--bs-btn-bg:transparent;--bs-btn-border-width:var(--bs-border-width);--bs-btn-border-color:transparent;--bs-btn-border-radius:var(--bs-border-radius);--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);--bs-btn-disabled-opacity:0.65;--bs-btn-focus-box-shadow:0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0b5ed7;--bs-btn-hover-border-color:#0a58ca;--bs-btn-focus-shadow-rgb:49, 132, 253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0a58ca;--bs-btn-active-border-color:#0a53be;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#0d6efd;--bs-btn-disabled-border-color:#0d6efd}.btn-secondary{--bs-btn-color:#fff;--bs-btn-bg:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#5c636a;--bs-btn-hover-border-color:#565e64;--bs-btn-focus-shadow-rgb:130, 138, 145;--bs-btn-active-color:#fff;--bs-btn-active-bg:#565e64;--bs-btn-active-border-color:#51585e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#6c757d;--bs-btn-disabled-border-color:#6c757d}.btn-success{--bs-btn-color:#fff;--bs-btn-bg:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#157347;--bs-btn-hover-border-color:#146c43;--bs-btn-focus-shadow-rgb:60, 153, 110;--bs-btn-active-color:#fff;--bs-btn-active-bg:#146c43;--bs-btn-active-border-color:#13653f;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#198754;--bs-btn-disabled-border-color:#198754}.btn-info{--bs-btn-color:#000;--bs-btn-bg:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#31d2f2;--bs-btn-hover-border-color:#25cff2;--bs-btn-focus-shadow-rgb:11, 172, 204;--bs-btn-active-color:#000;--bs-btn-active-bg:#3dd5f3;--bs-btn-active-border-color:#25cff2;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#0dcaf0;--bs-btn-disabled-border-color:#0dcaf0}.btn-warning{--bs-btn-color:#000;--bs-btn-bg:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffca2c;--bs-btn-hover-border-color:#ffc720;--bs-btn-focus-shadow-rgb:217, 164, 6;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffcd39;--bs-btn-active-border-color:#ffc720;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#ffc107;--bs-btn-disabled-border-color:#ffc107}.btn-danger{--bs-btn-color:#fff;--bs-btn-bg:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#bb2d3b;--bs-btn-hover-border-color:#b02a37;--bs-btn-focus-shadow-rgb:225, 83, 97;--bs-btn-active-color:#fff;--bs-btn-active-bg:#b02a37;--bs-btn-active-border-color:#a52834;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#dc3545;--bs-btn-disabled-border-color:#dc3545}.btn-light{--bs-btn-color:#000;--bs-btn-bg:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#d3d4d5;--bs-btn-hover-border-color:#c6c7c8;--bs-btn-focus-shadow-rgb:211, 212, 213;--bs-btn-active-color:#000;--bs-btn-active-bg:#c6c7c8;--bs-btn-active-border-color:#babbbc;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#f8f9fa;--bs-btn-disabled-border-color:#f8f9fa}.btn-dark{--bs-btn-color:#fff;--bs-btn-bg:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#424649;--bs-btn-hover-border-color:#373b3e;--bs-btn-focus-shadow-rgb:66, 70, 73;--bs-btn-active-color:#fff;--bs-btn-active-bg:#4d5154;--bs-btn-active-border-color:#373b3e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#212529;--bs-btn-disabled-border-color:#212529}.btn-outline-primary{--bs-btn-color:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0d6efd;--bs-btn-hover-border-color:#0d6efd;--bs-btn-focus-shadow-rgb:13, 110, 253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0d6efd;--bs-btn-active-border-color:#0d6efd;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#0d6efd;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0d6efd;--bs-gradient:none}.btn-outline-secondary{--bs-btn-color:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#6c757d;--bs-btn-hover-border-color:#6c757d;--bs-btn-focus-shadow-rgb:108, 117, 125;--bs-btn-active-color:#fff;--bs-btn-active-bg:#6c757d;--bs-btn-active-border-color:#6c757d;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#6c757d;--bs-gradient:none}.btn-outline-success{--bs-btn-color:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#198754;--bs-btn-hover-border-color:#198754;--bs-btn-focus-shadow-rgb:25, 135, 84;--bs-btn-active-color:#fff;--bs-btn-active-bg:#198754;--bs-btn-active-border-color:#198754;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#198754;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#198754;--bs-gradient:none}.btn-outline-info{--bs-btn-color:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#0dcaf0;--bs-btn-hover-border-color:#0dcaf0;--bs-btn-focus-shadow-rgb:13, 202, 240;--bs-btn-active-color:#000;--bs-btn-active-bg:#0dcaf0;--bs-btn-active-border-color:#0dcaf0;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#0dcaf0;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0dcaf0;--bs-gradient:none}.btn-outline-warning{--bs-btn-color:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffc107;--bs-btn-hover-border-color:#ffc107;--bs-btn-focus-shadow-rgb:255, 193, 7;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffc107;--bs-btn-active-border-color:#ffc107;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#ffc107;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#ffc107;--bs-gradient:none}.btn-outline-danger{--bs-btn-color:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#dc3545;--bs-btn-hover-border-color:#dc3545;--bs-btn-focus-shadow-rgb:220, 53, 69;--bs-btn-active-color:#fff;--bs-btn-active-bg:#dc3545;--bs-btn-active-border-color:#dc3545;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#dc3545;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#dc3545;--bs-gradient:none}.btn-outline-light{--bs-btn-color:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#f8f9fa;--bs-btn-hover-border-color:#f8f9fa;--bs-btn-focus-shadow-rgb:248, 249, 250;--bs-btn-active-color:#000;--bs-btn-active-bg:#f8f9fa;--bs-btn-active-border-color:#f8f9fa;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#f8f9fa;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#f8f9fa;--bs-gradient:none}.btn-outline-dark{--bs-btn-color:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#212529;--bs-btn-hover-border-color:#212529;--bs-btn-focus-shadow-rgb:33, 37, 41;--bs-btn-active-color:#fff;--bs-btn-active-bg:#212529;--bs-btn-active-border-color:#212529;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#212529;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#212529;--bs-gradient:none}.btn-link{--bs-btn-font-weight:400;--bs-btn-color:var(--bs-link-color);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--bs-link-hover-color);--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--bs-link-hover-color);--bs-btn-active-border-color:transparent;--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-border-color:transparent;--bs-btn-box-shadow:0 0 0 #000;--bs-btn-focus-shadow-rgb:49, 132, 253;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-lg{--bs-btn-padding-y:0.5rem;--bs-btn-padding-x:1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius:var(--bs-border-radius-lg)}.btn-sm{--bs-btn-padding-y:0.25rem;--bs-btn-padding-x:0.5rem;--bs-btn-font-size:0.875rem;--bs-btn-border-radius:var(--bs-border-radius-sm)}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;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>*{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{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{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: 576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{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: 768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{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: 992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{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: 1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{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: 1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{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}}/*!\n * Bootstrap Utilities v5.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2023 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */:root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13, 110, 253;--bs-secondary-rgb:108, 117, 125;--bs-success-rgb:25, 135, 84;--bs-info-rgb:13, 202, 240;--bs-warning-rgb:255, 193, 7;--bs-danger-rgb:220, 53, 69;--bs-light-rgb:248, 249, 250;--bs-dark-rgb:33, 37, 41;--bs-primary-text-emphasis:#052c65;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#0a3622;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#664d03;--bs-danger-text-emphasis:#58151c;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#cfe2ff;--bs-secondary-bg-subtle:#e2e3e5;--bs-success-bg-subtle:#d1e7dd;--bs-info-bg-subtle:#cff4fc;--bs-warning-bg-subtle:#fff3cd;--bs-danger-bg-subtle:#f8d7da;--bs-light-bg-subtle:#fcfcfd;--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:#9ec5fe;--bs-secondary-border-subtle:#c4c8cb;--bs-success-border-subtle:#a3cfbb;--bs-info-border-subtle:#9eeaf9;--bs-warning-border-subtle:#ffe69c;--bs-danger-border-subtle:#f1aeb5;--bs-light-border-subtle:#e9ecef;--bs-dark-border-subtle:#adb5bd;--bs-white-rgb:255, 255, 255;--bs-black-rgb:0, 0, 0;--bs-font-sans-serif:system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";--bs-font-monospace:SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-color-rgb:33, 37, 41;--bs-body-bg:#fff;--bs-body-bg-rgb:255, 255, 255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0, 0, 0;--bs-secondary-color:rgba(33, 37, 41, 0.75);--bs-secondary-color-rgb:33, 37, 41;--bs-secondary-bg:#e9ecef;--bs-secondary-bg-rgb:233, 236, 239;--bs-tertiary-color:rgba(33, 37, 41, 0.5);--bs-tertiary-color-rgb:33, 37, 41;--bs-tertiary-bg:#f8f9fa;--bs-tertiary-bg-rgb:248, 249, 250;--bs-heading-color:inherit;--bs-link-color:#0d6efd;--bs-link-color-rgb:13, 110, 253;--bs-link-decoration:underline;--bs-link-hover-color:#0a58ca;--bs-link-hover-color-rgb:10, 88, 202;--bs-code-color:#d63384;--bs-highlight-bg:#fff3cd;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, 0.175);--bs-border-radius:0.375rem;--bs-border-radius-sm:0.25rem;--bs-border-radius-lg:0.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg:0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width:0.25rem;--bs-focus-ring-opacity:0.25;--bs-focus-ring-color:rgba(13, 110, 253, 0.25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color:#dee2e6;--bs-body-color-rgb:222, 226, 230;--bs-body-bg:#212529;--bs-body-bg-rgb:33, 37, 41;--bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255, 255, 255;--bs-secondary-color:rgba(222, 226, 230, 0.75);--bs-secondary-color-rgb:222, 226, 230;--bs-secondary-bg:#343a40;--bs-secondary-bg-rgb:52, 58, 64;--bs-tertiary-color:rgba(222, 226, 230, 0.5);--bs-tertiary-color-rgb:222, 226, 230;--bs-tertiary-bg:#2b3035;--bs-tertiary-bg-rgb:43, 48, 53;--bs-primary-text-emphasis:#6ea8fe;--bs-secondary-text-emphasis:#a7acb1;--bs-success-text-emphasis:#75b798;--bs-info-text-emphasis:#6edff6;--bs-warning-text-emphasis:#ffda6a;--bs-danger-text-emphasis:#ea868f;--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:#031633;--bs-secondary-bg-subtle:#161719;--bs-success-bg-subtle:#051b11;--bs-info-bg-subtle:#032830;--bs-warning-bg-subtle:#332701;--bs-danger-bg-subtle:#2c0b0e;--bs-light-bg-subtle:#343a40;--bs-dark-bg-subtle:#1a1d20;--bs-primary-border-subtle:#084298;--bs-secondary-border-subtle:#41464b;--bs-success-border-subtle:#0f5132;--bs-info-border-subtle:#087990;--bs-warning-border-subtle:#997404;--bs-danger-border-subtle:#842029;--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:#6ea8fe;--bs-link-hover-color:#8bb9fe;--bs-link-color-rgb:110, 168, 254;--bs-link-hover-color-rgb:139, 185, 254;--bs-code-color:#e685b5;--bs-border-color:#495057;--bs-border-color-translucent:rgba(255, 255, 255, 0.15);--bs-form-valid-color:#75b798;--bs-form-valid-border-color:#75b798;--bs-form-invalid-color:#ea868f;--bs-form-invalid-border-color:#ea868f}.clearfix::after{display:block;clear:both;content:\"\"}.text-bg-primary{color:#fff !important;background-color:RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-secondary{color:#fff !important;background-color:RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-success{color:#fff !important;background-color:RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-info{color:#000 !important;background-color:RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-warning{color:#000 !important;background-color:RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-danger{color:#fff !important;background-color:RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-light{color:#000 !important;background-color:RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-dark{color:#fff !important;background-color:RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important}.link-primary{color:RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-primary:hover,.link-primary:focus{color:RGBA(10, 88, 202, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)) !important}.link-secondary{color:RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-secondary:hover,.link-secondary:focus{color:RGBA(86, 94, 100, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important}.link-success{color:RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-success:hover,.link-success:focus{color:RGBA(20, 108, 67, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)) !important}.link-info{color:RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-info:hover,.link-info:focus{color:RGBA(61, 213, 243, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important}.link-warning{color:RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-warning:hover,.link-warning:focus{color:RGBA(255, 205, 57, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)) !important}.link-danger{color:RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-danger:hover,.link-danger:focus{color:RGBA(176, 42, 55, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)) !important}.link-light{color:RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-light:hover,.link-light:focus{color:RGBA(249, 250, 251, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important}.link-dark{color:RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-dark:hover,.link-dark:focus{color:RGBA(26, 30, 33, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:0.375rem;align-items:center;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5));text-underline-offset:0.25em;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:0.2s ease-in-out transform}@media (prefers-reduced-motion: reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--bs-icon-link-transform, translate3d(0.25em, 0, 0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:\"\"}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media (min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:\"\"}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:0.25}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.float-start{float:left !important}.float-end{float:right !important}.float-none{float:none !important}.object-fit-contain{object-fit:contain !important}.object-fit-cover{object-fit:cover !important}.object-fit-fill{object-fit:fill !important}.object-fit-scale{object-fit:scale-down !important}.object-fit-none{object-fit:none !important}.opacity-0{opacity:0 !important}.opacity-25{opacity:0.25 !important}.opacity-50{opacity:0.5 !important}.opacity-75{opacity:0.75 !important}.opacity-100{opacity:1 !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.overflow-visible{overflow:visible !important}.overflow-scroll{overflow:scroll !important}.overflow-x-auto{overflow-x:auto !important}.overflow-x-hidden{overflow-x:hidden !important}.overflow-x-visible{overflow-x:visible !important}.overflow-x-scroll{overflow-x:scroll !important}.overflow-y-auto{overflow-y:auto !important}.overflow-y-hidden{overflow-y:hidden !important}.overflow-y-visible{overflow-y:visible !important}.overflow-y-scroll{overflow-y:scroll !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-inline-grid{display:inline-grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.shadow{box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important}.shadow-sm{box-shadow:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0, 0, 0, 0.175) !important}.shadow-none{box-shadow:none !important}.focus-ring-primary{--bs-focus-ring-color:rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color:rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color:rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color:rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color:rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color:rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color:rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color:rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.top-0{top:0 !important}.top-50{top:50% !important}.top-100{top:100% !important}.bottom-0{bottom:0 !important}.bottom-50{bottom:50% !important}.bottom-100{bottom:100% !important}.start-0{left:0 !important}.start-50{left:50% !important}.start-100{left:100% !important}.end-0{right:0 !important}.end-50{right:50% !important}.end-100{right:100% !important}.translate-middle{transform:translate(-50%, -50%) !important}.translate-middle-x{transform:translateX(-50%) !important}.translate-middle-y{transform:translateY(-50%) !important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-0{border:0 !important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-top-0{border-top:0 !important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-end-0{border-right:0 !important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-bottom-0{border-bottom:0 !important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-start-0{border-left:0 !important}.border-primary{--bs-border-opacity:1;border-color:rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important}.border-secondary{--bs-border-opacity:1;border-color:rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important}.border-success{--bs-border-opacity:1;border-color:rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important}.border-info{--bs-border-opacity:1;border-color:rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important}.border-warning{--bs-border-opacity:1;border-color:rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important}.border-danger{--bs-border-opacity:1;border-color:rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important}.border-light{--bs-border-opacity:1;border-color:rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important}.border-dark{--bs-border-opacity:1;border-color:rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important}.border-black{--bs-border-opacity:1;border-color:rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important}.border-white{--bs-border-opacity:1;border-color:rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle) !important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle) !important}.border-success-subtle{border-color:var(--bs-success-border-subtle) !important}.border-info-subtle{border-color:var(--bs-info-border-subtle) !important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle) !important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle) !important}.border-light-subtle{border-color:var(--bs-light-border-subtle) !important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle) !important}.border-1{border-width:1px !important}.border-2{border-width:2px !important}.border-3{border-width:3px !important}.border-4{border-width:4px !important}.border-5{border-width:5px !important}.border-opacity-10{--bs-border-opacity:0.1}.border-opacity-25{--bs-border-opacity:0.25}.border-opacity-50{--bs-border-opacity:0.5}.border-opacity-75{--bs-border-opacity:0.75}.border-opacity-100{--bs-border-opacity:1}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.mw-100{max-width:100% !important}.vw-100{width:100vw !important}.min-vw-100{min-width:100vw !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mh-100{max-height:100% !important}.vh-100{height:100vh !important}.min-vh-100{min-height:100vh !important}.flex-fill{flex:1 1 auto !important}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.justify-content-evenly{justify-content:space-evenly !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.m-0{margin:0 !important}.m-1{margin:0.25rem !important}.m-2{margin:0.5rem !important}.m-3{margin:1rem !important}.m-4{margin:1.5rem !important}.m-5{margin:3rem !important}.m-auto{margin:auto !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.mx-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.mx-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.mx-3{margin-right:1rem !important;margin-left:1rem !important}.mx-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-5{margin-right:3rem !important;margin-left:3rem !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.my-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.my-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-0{margin-top:0 !important}.mt-1{margin-top:0.25rem !important}.mt-2{margin-top:0.5rem !important}.mt-3{margin-top:1rem !important}.mt-4{margin-top:1.5rem !important}.mt-5{margin-top:3rem !important}.mt-auto{margin-top:auto !important}.me-0{margin-right:0 !important}.me-1{margin-right:0.25rem !important}.me-2{margin-right:0.5rem !important}.me-3{margin-right:1rem !important}.me-4{margin-right:1.5rem !important}.me-5{margin-right:3rem !important}.me-auto{margin-right:auto !important}.mb-0{margin-bottom:0 !important}.mb-1{margin-bottom:0.25rem !important}.mb-2{margin-bottom:0.5rem !important}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.mb-5{margin-bottom:3rem !important}.mb-auto{margin-bottom:auto !important}.ms-0{margin-left:0 !important}.ms-1{margin-left:0.25rem !important}.ms-2{margin-left:0.5rem !important}.ms-3{margin-left:1rem !important}.ms-4{margin-left:1.5rem !important}.ms-5{margin-left:3rem !important}.ms-auto{margin-left:auto !important}.p-0{padding:0 !important}.p-1{padding:0.25rem !important}.p-2{padding:0.5rem !important}.p-3{padding:1rem !important}.p-4{padding:1.5rem !important}.p-5{padding:3rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.px-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.px-3{padding-right:1rem !important;padding-left:1rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-5{padding-right:3rem !important;padding-left:3rem !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.py-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.py-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.py-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-0{padding-top:0 !important}.pt-1{padding-top:0.25rem !important}.pt-2{padding-top:0.5rem !important}.pt-3{padding-top:1rem !important}.pt-4{padding-top:1.5rem !important}.pt-5{padding-top:3rem !important}.pe-0{padding-right:0 !important}.pe-1{padding-right:0.25rem !important}.pe-2{padding-right:0.5rem !important}.pe-3{padding-right:1rem !important}.pe-4{padding-right:1.5rem !important}.pe-5{padding-right:3rem !important}.pb-0{padding-bottom:0 !important}.pb-1{padding-bottom:0.25rem !important}.pb-2{padding-bottom:0.5rem !important}.pb-3{padding-bottom:1rem !important}.pb-4{padding-bottom:1.5rem !important}.pb-5{padding-bottom:3rem !important}.ps-0{padding-left:0 !important}.ps-1{padding-left:0.25rem !important}.ps-2{padding-left:0.5rem !important}.ps-3{padding-left:1rem !important}.ps-4{padding-left:1.5rem !important}.ps-5{padding-left:3rem !important}.gap-0{gap:0 !important}.gap-1{gap:0.25rem !important}.gap-2{gap:0.5rem !important}.gap-3{gap:1rem !important}.gap-4{gap:1.5rem !important}.gap-5{gap:3rem !important}.row-gap-0{row-gap:0 !important}.row-gap-1{row-gap:0.25rem !important}.row-gap-2{row-gap:0.5rem !important}.row-gap-3{row-gap:1rem !important}.row-gap-4{row-gap:1.5rem !important}.row-gap-5{row-gap:3rem !important}.column-gap-0{column-gap:0 !important}.column-gap-1{column-gap:0.25rem !important}.column-gap-2{column-gap:0.5rem !important}.column-gap-3{column-gap:1rem !important}.column-gap-4{column-gap:1.5rem !important}.column-gap-5{column-gap:3rem !important}.font-monospace{font-family:var(--bs-font-monospace) !important}.fs-1{font-size:calc(1.375rem + 1.5vw) !important}.fs-2{font-size:calc(1.325rem + 0.9vw) !important}.fs-3{font-size:calc(1.3rem + 0.6vw) !important}.fs-4{font-size:calc(1.275rem + 0.3vw) !important}.fs-5{font-size:1.25rem !important}.fs-6{font-size:1rem !important}.fst-italic{font-style:italic !important}.fst-normal{font-style:normal !important}.fw-lighter{font-weight:lighter !important}.fw-light{font-weight:300 !important}.fw-normal{font-weight:400 !important}.fw-medium{font-weight:500 !important}.fw-semibold{font-weight:600 !important}.fw-bold{font-weight:700 !important}.fw-bolder{font-weight:bolder !important}.lh-1{line-height:1 !important}.lh-sm{line-height:1.25 !important}.lh-base{line-height:1.5 !important}.lh-lg{line-height:2 !important}.text-start{text-align:left !important}.text-end{text-align:right !important}.text-center{text-align:center !important}.text-decoration-none{text-decoration:none !important}.text-decoration-underline{text-decoration:underline !important}.text-decoration-line-through{text-decoration:line-through !important}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-break{word-wrap:break-word !important;word-break:break-word !important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important}.text-muted{--bs-text-opacity:1;color:var(--bs-secondary-color) !important}.text-black-50{--bs-text-opacity:1;color:rgba(0, 0, 0, 0.5) !important}.text-white-50{--bs-text-opacity:1;color:rgba(255, 255, 255, 0.5) !important}.text-body-secondary{--bs-text-opacity:1;color:var(--bs-secondary-color) !important}.text-body-tertiary{--bs-text-opacity:1;color:var(--bs-tertiary-color) !important}.text-body-emphasis{--bs-text-opacity:1;color:var(--bs-emphasis-color) !important}.text-reset{--bs-text-opacity:1;color:inherit !important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis) !important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis) !important}.text-success-emphasis{color:var(--bs-success-text-emphasis) !important}.text-info-emphasis{color:var(--bs-info-text-emphasis) !important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis) !important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis) !important}.text-light-emphasis{color:var(--bs-light-text-emphasis) !important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis) !important}.link-opacity-10{--bs-link-opacity:0.1}.link-opacity-10-hover:hover{--bs-link-opacity:0.1}.link-opacity-25{--bs-link-opacity:0.25}.link-opacity-25-hover:hover{--bs-link-opacity:0.25}.link-opacity-50{--bs-link-opacity:0.5}.link-opacity-50-hover:hover{--bs-link-opacity:0.5}.link-opacity-75{--bs-link-opacity:0.75}.link-opacity-75-hover:hover{--bs-link-opacity:0.75}.link-opacity-100{--bs-link-opacity:1}.link-opacity-100-hover:hover{--bs-link-opacity:1}.link-offset-1{text-underline-offset:0.125em !important}.link-offset-1-hover:hover{text-underline-offset:0.125em !important}.link-offset-2{text-underline-offset:0.25em !important}.link-offset-2-hover:hover{text-underline-offset:0.25em !important}.link-offset-3{text-underline-offset:0.375em !important}.link-offset-3-hover:hover{text-underline-offset:0.375em !important}.link-underline-primary{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-secondary{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-success{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-info{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-warning{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-danger{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-light{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-dark{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important}.link-underline{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-underline-opacity-0{--bs-link-underline-opacity:0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity:0}.link-underline-opacity-10{--bs-link-underline-opacity:0.1}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity:0.1}.link-underline-opacity-25{--bs-link-underline-opacity:0.25}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity:0.25}.link-underline-opacity-50{--bs-link-underline-opacity:0.5}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity:0.5}.link-underline-opacity-75{--bs-link-underline-opacity:0.75}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity:0.75}.link-underline-opacity-100{--bs-link-underline-opacity:1}.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent !important}.bg-body-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important}.bg-body-tertiary{--bs-bg-opacity:1;background-color:rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle) !important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle) !important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle) !important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle) !important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle) !important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle) !important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle) !important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle) !important}.bg-gradient{background-image:var(--bs-gradient) !important}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.pe-none{pointer-events:none !important}.pe-auto{pointer-events:auto !important}.rounded{border-radius:var(--bs-border-radius) !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:var(--bs-border-radius-sm) !important}.rounded-2{border-radius:var(--bs-border-radius) !important}.rounded-3{border-radius:var(--bs-border-radius-lg) !important}.rounded-4{border-radius:var(--bs-border-radius-xl) !important}.rounded-5{border-radius:var(--bs-border-radius-xxl) !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:var(--bs-border-radius-pill) !important}.rounded-top{border-top-left-radius:var(--bs-border-radius) !important;border-top-right-radius:var(--bs-border-radius) !important}.rounded-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm) !important;border-top-right-radius:var(--bs-border-radius-sm) !important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius) !important;border-top-right-radius:var(--bs-border-radius) !important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg) !important;border-top-right-radius:var(--bs-border-radius-lg) !important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl) !important;border-top-right-radius:var(--bs-border-radius-xl) !important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl) !important;border-top-right-radius:var(--bs-border-radius-xxl) !important}.rounded-top-circle{border-top-left-radius:50% !important;border-top-right-radius:50% !important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill) !important;border-top-right-radius:var(--bs-border-radius-pill) !important}.rounded-end{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm) !important;border-bottom-right-radius:var(--bs-border-radius-sm) !important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg) !important;border-bottom-right-radius:var(--bs-border-radius-lg) !important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl) !important;border-bottom-right-radius:var(--bs-border-radius-xl) !important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-right-radius:var(--bs-border-radius-xxl) !important}.rounded-end-circle{border-top-right-radius:50% !important;border-bottom-right-radius:50% !important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill) !important;border-bottom-right-radius:var(--bs-border-radius-pill) !important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm) !important;border-bottom-left-radius:var(--bs-border-radius-sm) !important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg) !important;border-bottom-left-radius:var(--bs-border-radius-lg) !important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl) !important;border-bottom-left-radius:var(--bs-border-radius-xl) !important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-left-radius:var(--bs-border-radius-xxl) !important}.rounded-bottom-circle{border-bottom-right-radius:50% !important;border-bottom-left-radius:50% !important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill) !important;border-bottom-left-radius:var(--bs-border-radius-pill) !important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm) !important;border-top-left-radius:var(--bs-border-radius-sm) !important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg) !important;border-top-left-radius:var(--bs-border-radius-lg) !important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl) !important;border-top-left-radius:var(--bs-border-radius-xl) !important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl) !important;border-top-left-radius:var(--bs-border-radius-xxl) !important}.rounded-start-circle{border-bottom-left-radius:50% !important;border-top-left-radius:50% !important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill) !important;border-top-left-radius:var(--bs-border-radius-pill) !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}.z-n1{z-index:-1 !important}.z-0{z-index:0 !important}.z-1{z-index:1 !important}.z-2{z-index:2 !important}.z-3{z-index:3 !important}@media (min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.object-fit-sm-contain{object-fit:contain !important}.object-fit-sm-cover{object-fit:cover !important}.object-fit-sm-fill{object-fit:fill !important}.object-fit-sm-scale{object-fit:scale-down !important}.object-fit-sm-none{object-fit:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-inline-grid{display:inline-grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.justify-content-sm-evenly{justify-content:space-evenly !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}.order-sm-first{order:-1 !important}.order-sm-0{order:0 !important}.order-sm-1{order:1 !important}.order-sm-2{order:2 !important}.order-sm-3{order:3 !important}.order-sm-4{order:4 !important}.order-sm-5{order:5 !important}.order-sm-last{order:6 !important}.m-sm-0{margin:0 !important}.m-sm-1{margin:0.25rem !important}.m-sm-2{margin:0.5rem !important}.m-sm-3{margin:1rem !important}.m-sm-4{margin:1.5rem !important}.m-sm-5{margin:3rem !important}.m-sm-auto{margin:auto !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.mx-sm-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.mx-sm-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.my-sm-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.my-sm-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-sm-0{margin-top:0 !important}.mt-sm-1{margin-top:0.25rem !important}.mt-sm-2{margin-top:0.5rem !important}.mt-sm-3{margin-top:1rem !important}.mt-sm-4{margin-top:1.5rem !important}.mt-sm-5{margin-top:3rem !important}.mt-sm-auto{margin-top:auto !important}.me-sm-0{margin-right:0 !important}.me-sm-1{margin-right:0.25rem !important}.me-sm-2{margin-right:0.5rem !important}.me-sm-3{margin-right:1rem !important}.me-sm-4{margin-right:1.5rem !important}.me-sm-5{margin-right:3rem !important}.me-sm-auto{margin-right:auto !important}.mb-sm-0{margin-bottom:0 !important}.mb-sm-1{margin-bottom:0.25rem !important}.mb-sm-2{margin-bottom:0.5rem !important}.mb-sm-3{margin-bottom:1rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.mb-sm-5{margin-bottom:3rem !important}.mb-sm-auto{margin-bottom:auto !important}.ms-sm-0{margin-left:0 !important}.ms-sm-1{margin-left:0.25rem !important}.ms-sm-2{margin-left:0.5rem !important}.ms-sm-3{margin-left:1rem !important}.ms-sm-4{margin-left:1.5rem !important}.ms-sm-5{margin-left:3rem !important}.ms-sm-auto{margin-left:auto !important}.p-sm-0{padding:0 !important}.p-sm-1{padding:0.25rem !important}.p-sm-2{padding:0.5rem !important}.p-sm-3{padding:1rem !important}.p-sm-4{padding:1.5rem !important}.p-sm-5{padding:3rem !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.px-sm-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.px-sm-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.py-sm-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.py-sm-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-sm-0{padding-top:0 !important}.pt-sm-1{padding-top:0.25rem !important}.pt-sm-2{padding-top:0.5rem !important}.pt-sm-3{padding-top:1rem !important}.pt-sm-4{padding-top:1.5rem !important}.pt-sm-5{padding-top:3rem !important}.pe-sm-0{padding-right:0 !important}.pe-sm-1{padding-right:0.25rem !important}.pe-sm-2{padding-right:0.5rem !important}.pe-sm-3{padding-right:1rem !important}.pe-sm-4{padding-right:1.5rem !important}.pe-sm-5{padding-right:3rem !important}.pb-sm-0{padding-bottom:0 !important}.pb-sm-1{padding-bottom:0.25rem !important}.pb-sm-2{padding-bottom:0.5rem !important}.pb-sm-3{padding-bottom:1rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pb-sm-5{padding-bottom:3rem !important}.ps-sm-0{padding-left:0 !important}.ps-sm-1{padding-left:0.25rem !important}.ps-sm-2{padding-left:0.5rem !important}.ps-sm-3{padding-left:1rem !important}.ps-sm-4{padding-left:1.5rem !important}.ps-sm-5{padding-left:3rem !important}.gap-sm-0{gap:0 !important}.gap-sm-1{gap:0.25rem !important}.gap-sm-2{gap:0.5rem !important}.gap-sm-3{gap:1rem !important}.gap-sm-4{gap:1.5rem !important}.gap-sm-5{gap:3rem !important}.row-gap-sm-0{row-gap:0 !important}.row-gap-sm-1{row-gap:0.25rem !important}.row-gap-sm-2{row-gap:0.5rem !important}.row-gap-sm-3{row-gap:1rem !important}.row-gap-sm-4{row-gap:1.5rem !important}.row-gap-sm-5{row-gap:3rem !important}.column-gap-sm-0{column-gap:0 !important}.column-gap-sm-1{column-gap:0.25rem !important}.column-gap-sm-2{column-gap:0.5rem !important}.column-gap-sm-3{column-gap:1rem !important}.column-gap-sm-4{column-gap:1.5rem !important}.column-gap-sm-5{column-gap:3rem !important}.text-sm-start{text-align:left !important}.text-sm-end{text-align:right !important}.text-sm-center{text-align:center !important}}@media (min-width: 768px){.float-md-start{float:left !important}.float-md-end{float:right !important}.float-md-none{float:none !important}.object-fit-md-contain{object-fit:contain !important}.object-fit-md-cover{object-fit:cover !important}.object-fit-md-fill{object-fit:fill !important}.object-fit-md-scale{object-fit:scale-down !important}.object-fit-md-none{object-fit:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-inline-grid{display:inline-grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.justify-content-md-evenly{justify-content:space-evenly !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}.order-md-first{order:-1 !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}.order-md-last{order:6 !important}.m-md-0{margin:0 !important}.m-md-1{margin:0.25rem !important}.m-md-2{margin:0.5rem !important}.m-md-3{margin:1rem !important}.m-md-4{margin:1.5rem !important}.m-md-5{margin:3rem !important}.m-md-auto{margin:auto !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.mx-md-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.mx-md-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.my-md-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.my-md-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-md-0{margin-top:0 !important}.mt-md-1{margin-top:0.25rem !important}.mt-md-2{margin-top:0.5rem !important}.mt-md-3{margin-top:1rem !important}.mt-md-4{margin-top:1.5rem !important}.mt-md-5{margin-top:3rem !important}.mt-md-auto{margin-top:auto !important}.me-md-0{margin-right:0 !important}.me-md-1{margin-right:0.25rem !important}.me-md-2{margin-right:0.5rem !important}.me-md-3{margin-right:1rem !important}.me-md-4{margin-right:1.5rem !important}.me-md-5{margin-right:3rem !important}.me-md-auto{margin-right:auto !important}.mb-md-0{margin-bottom:0 !important}.mb-md-1{margin-bottom:0.25rem !important}.mb-md-2{margin-bottom:0.5rem !important}.mb-md-3{margin-bottom:1rem !important}.mb-md-4{margin-bottom:1.5rem !important}.mb-md-5{margin-bottom:3rem !important}.mb-md-auto{margin-bottom:auto !important}.ms-md-0{margin-left:0 !important}.ms-md-1{margin-left:0.25rem !important}.ms-md-2{margin-left:0.5rem !important}.ms-md-3{margin-left:1rem !important}.ms-md-4{margin-left:1.5rem !important}.ms-md-5{margin-left:3rem !important}.ms-md-auto{margin-left:auto !important}.p-md-0{padding:0 !important}.p-md-1{padding:0.25rem !important}.p-md-2{padding:0.5rem !important}.p-md-3{padding:1rem !important}.p-md-4{padding:1.5rem !important}.p-md-5{padding:3rem !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.px-md-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.px-md-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.py-md-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.py-md-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-md-0{padding-top:0 !important}.pt-md-1{padding-top:0.25rem !important}.pt-md-2{padding-top:0.5rem !important}.pt-md-3{padding-top:1rem !important}.pt-md-4{padding-top:1.5rem !important}.pt-md-5{padding-top:3rem !important}.pe-md-0{padding-right:0 !important}.pe-md-1{padding-right:0.25rem !important}.pe-md-2{padding-right:0.5rem !important}.pe-md-3{padding-right:1rem !important}.pe-md-4{padding-right:1.5rem !important}.pe-md-5{padding-right:3rem !important}.pb-md-0{padding-bottom:0 !important}.pb-md-1{padding-bottom:0.25rem !important}.pb-md-2{padding-bottom:0.5rem !important}.pb-md-3{padding-bottom:1rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pb-md-5{padding-bottom:3rem !important}.ps-md-0{padding-left:0 !important}.ps-md-1{padding-left:0.25rem !important}.ps-md-2{padding-left:0.5rem !important}.ps-md-3{padding-left:1rem !important}.ps-md-4{padding-left:1.5rem !important}.ps-md-5{padding-left:3rem !important}.gap-md-0{gap:0 !important}.gap-md-1{gap:0.25rem !important}.gap-md-2{gap:0.5rem !important}.gap-md-3{gap:1rem !important}.gap-md-4{gap:1.5rem !important}.gap-md-5{gap:3rem !important}.row-gap-md-0{row-gap:0 !important}.row-gap-md-1{row-gap:0.25rem !important}.row-gap-md-2{row-gap:0.5rem !important}.row-gap-md-3{row-gap:1rem !important}.row-gap-md-4{row-gap:1.5rem !important}.row-gap-md-5{row-gap:3rem !important}.column-gap-md-0{column-gap:0 !important}.column-gap-md-1{column-gap:0.25rem !important}.column-gap-md-2{column-gap:0.5rem !important}.column-gap-md-3{column-gap:1rem !important}.column-gap-md-4{column-gap:1.5rem !important}.column-gap-md-5{column-gap:3rem !important}.text-md-start{text-align:left !important}.text-md-end{text-align:right !important}.text-md-center{text-align:center !important}}@media (min-width: 992px){.float-lg-start{float:left !important}.float-lg-end{float:right !important}.float-lg-none{float:none !important}.object-fit-lg-contain{object-fit:contain !important}.object-fit-lg-cover{object-fit:cover !important}.object-fit-lg-fill{object-fit:fill !important}.object-fit-lg-scale{object-fit:scale-down !important}.object-fit-lg-none{object-fit:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-grid{display:grid !important}.d-lg-inline-grid{display:inline-grid !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.justify-content-lg-evenly{justify-content:space-evenly !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}.order-lg-first{order:-1 !important}.order-lg-0{order:0 !important}.order-lg-1{order:1 !important}.order-lg-2{order:2 !important}.order-lg-3{order:3 !important}.order-lg-4{order:4 !important}.order-lg-5{order:5 !important}.order-lg-last{order:6 !important}.m-lg-0{margin:0 !important}.m-lg-1{margin:0.25rem !important}.m-lg-2{margin:0.5rem !important}.m-lg-3{margin:1rem !important}.m-lg-4{margin:1.5rem !important}.m-lg-5{margin:3rem !important}.m-lg-auto{margin:auto !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.mx-lg-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.mx-lg-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.my-lg-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.my-lg-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-lg-0{margin-top:0 !important}.mt-lg-1{margin-top:0.25rem !important}.mt-lg-2{margin-top:0.5rem !important}.mt-lg-3{margin-top:1rem !important}.mt-lg-4{margin-top:1.5rem !important}.mt-lg-5{margin-top:3rem !important}.mt-lg-auto{margin-top:auto !important}.me-lg-0{margin-right:0 !important}.me-lg-1{margin-right:0.25rem !important}.me-lg-2{margin-right:0.5rem !important}.me-lg-3{margin-right:1rem !important}.me-lg-4{margin-right:1.5rem !important}.me-lg-5{margin-right:3rem !important}.me-lg-auto{margin-right:auto !important}.mb-lg-0{margin-bottom:0 !important}.mb-lg-1{margin-bottom:0.25rem !important}.mb-lg-2{margin-bottom:0.5rem !important}.mb-lg-3{margin-bottom:1rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.mb-lg-5{margin-bottom:3rem !important}.mb-lg-auto{margin-bottom:auto !important}.ms-lg-0{margin-left:0 !important}.ms-lg-1{margin-left:0.25rem !important}.ms-lg-2{margin-left:0.5rem !important}.ms-lg-3{margin-left:1rem !important}.ms-lg-4{margin-left:1.5rem !important}.ms-lg-5{margin-left:3rem !important}.ms-lg-auto{margin-left:auto !important}.p-lg-0{padding:0 !important}.p-lg-1{padding:0.25rem !important}.p-lg-2{padding:0.5rem !important}.p-lg-3{padding:1rem !important}.p-lg-4{padding:1.5rem !important}.p-lg-5{padding:3rem !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.px-lg-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.px-lg-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.py-lg-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.py-lg-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-lg-0{padding-top:0 !important}.pt-lg-1{padding-top:0.25rem !important}.pt-lg-2{padding-top:0.5rem !important}.pt-lg-3{padding-top:1rem !important}.pt-lg-4{padding-top:1.5rem !important}.pt-lg-5{padding-top:3rem !important}.pe-lg-0{padding-right:0 !important}.pe-lg-1{padding-right:0.25rem !important}.pe-lg-2{padding-right:0.5rem !important}.pe-lg-3{padding-right:1rem !important}.pe-lg-4{padding-right:1.5rem !important}.pe-lg-5{padding-right:3rem !important}.pb-lg-0{padding-bottom:0 !important}.pb-lg-1{padding-bottom:0.25rem !important}.pb-lg-2{padding-bottom:0.5rem !important}.pb-lg-3{padding-bottom:1rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pb-lg-5{padding-bottom:3rem !important}.ps-lg-0{padding-left:0 !important}.ps-lg-1{padding-left:0.25rem !important}.ps-lg-2{padding-left:0.5rem !important}.ps-lg-3{padding-left:1rem !important}.ps-lg-4{padding-left:1.5rem !important}.ps-lg-5{padding-left:3rem !important}.gap-lg-0{gap:0 !important}.gap-lg-1{gap:0.25rem !important}.gap-lg-2{gap:0.5rem !important}.gap-lg-3{gap:1rem !important}.gap-lg-4{gap:1.5rem !important}.gap-lg-5{gap:3rem !important}.row-gap-lg-0{row-gap:0 !important}.row-gap-lg-1{row-gap:0.25rem !important}.row-gap-lg-2{row-gap:0.5rem !important}.row-gap-lg-3{row-gap:1rem !important}.row-gap-lg-4{row-gap:1.5rem !important}.row-gap-lg-5{row-gap:3rem !important}.column-gap-lg-0{column-gap:0 !important}.column-gap-lg-1{column-gap:0.25rem !important}.column-gap-lg-2{column-gap:0.5rem !important}.column-gap-lg-3{column-gap:1rem !important}.column-gap-lg-4{column-gap:1.5rem !important}.column-gap-lg-5{column-gap:3rem !important}.text-lg-start{text-align:left !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}}@media (min-width: 1200px){.float-xl-start{float:left !important}.float-xl-end{float:right !important}.float-xl-none{float:none !important}.object-fit-xl-contain{object-fit:contain !important}.object-fit-xl-cover{object-fit:cover !important}.object-fit-xl-fill{object-fit:fill !important}.object-fit-xl-scale{object-fit:scale-down !important}.object-fit-xl-none{object-fit:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-grid{display:grid !important}.d-xl-inline-grid{display:inline-grid !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.justify-content-xl-evenly{justify-content:space-evenly !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}.order-xl-first{order:-1 !important}.order-xl-0{order:0 !important}.order-xl-1{order:1 !important}.order-xl-2{order:2 !important}.order-xl-3{order:3 !important}.order-xl-4{order:4 !important}.order-xl-5{order:5 !important}.order-xl-last{order:6 !important}.m-xl-0{margin:0 !important}.m-xl-1{margin:0.25rem !important}.m-xl-2{margin:0.5rem !important}.m-xl-3{margin:1rem !important}.m-xl-4{margin:1.5rem !important}.m-xl-5{margin:3rem !important}.m-xl-auto{margin:auto !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.mx-xl-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.mx-xl-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xl-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.my-xl-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xl-0{margin-top:0 !important}.mt-xl-1{margin-top:0.25rem !important}.mt-xl-2{margin-top:0.5rem !important}.mt-xl-3{margin-top:1rem !important}.mt-xl-4{margin-top:1.5rem !important}.mt-xl-5{margin-top:3rem !important}.mt-xl-auto{margin-top:auto !important}.me-xl-0{margin-right:0 !important}.me-xl-1{margin-right:0.25rem !important}.me-xl-2{margin-right:0.5rem !important}.me-xl-3{margin-right:1rem !important}.me-xl-4{margin-right:1.5rem !important}.me-xl-5{margin-right:3rem !important}.me-xl-auto{margin-right:auto !important}.mb-xl-0{margin-bottom:0 !important}.mb-xl-1{margin-bottom:0.25rem !important}.mb-xl-2{margin-bottom:0.5rem !important}.mb-xl-3{margin-bottom:1rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.mb-xl-5{margin-bottom:3rem !important}.mb-xl-auto{margin-bottom:auto !important}.ms-xl-0{margin-left:0 !important}.ms-xl-1{margin-left:0.25rem !important}.ms-xl-2{margin-left:0.5rem !important}.ms-xl-3{margin-left:1rem !important}.ms-xl-4{margin-left:1.5rem !important}.ms-xl-5{margin-left:3rem !important}.ms-xl-auto{margin-left:auto !important}.p-xl-0{padding:0 !important}.p-xl-1{padding:0.25rem !important}.p-xl-2{padding:0.5rem !important}.p-xl-3{padding:1rem !important}.p-xl-4{padding:1.5rem !important}.p-xl-5{padding:3rem !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.px-xl-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.px-xl-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xl-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.py-xl-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xl-0{padding-top:0 !important}.pt-xl-1{padding-top:0.25rem !important}.pt-xl-2{padding-top:0.5rem !important}.pt-xl-3{padding-top:1rem !important}.pt-xl-4{padding-top:1.5rem !important}.pt-xl-5{padding-top:3rem !important}.pe-xl-0{padding-right:0 !important}.pe-xl-1{padding-right:0.25rem !important}.pe-xl-2{padding-right:0.5rem !important}.pe-xl-3{padding-right:1rem !important}.pe-xl-4{padding-right:1.5rem !important}.pe-xl-5{padding-right:3rem !important}.pb-xl-0{padding-bottom:0 !important}.pb-xl-1{padding-bottom:0.25rem !important}.pb-xl-2{padding-bottom:0.5rem !important}.pb-xl-3{padding-bottom:1rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pb-xl-5{padding-bottom:3rem !important}.ps-xl-0{padding-left:0 !important}.ps-xl-1{padding-left:0.25rem !important}.ps-xl-2{padding-left:0.5rem !important}.ps-xl-3{padding-left:1rem !important}.ps-xl-4{padding-left:1.5rem !important}.ps-xl-5{padding-left:3rem !important}.gap-xl-0{gap:0 !important}.gap-xl-1{gap:0.25rem !important}.gap-xl-2{gap:0.5rem !important}.gap-xl-3{gap:1rem !important}.gap-xl-4{gap:1.5rem !important}.gap-xl-5{gap:3rem !important}.row-gap-xl-0{row-gap:0 !important}.row-gap-xl-1{row-gap:0.25rem !important}.row-gap-xl-2{row-gap:0.5rem !important}.row-gap-xl-3{row-gap:1rem !important}.row-gap-xl-4{row-gap:1.5rem !important}.row-gap-xl-5{row-gap:3rem !important}.column-gap-xl-0{column-gap:0 !important}.column-gap-xl-1{column-gap:0.25rem !important}.column-gap-xl-2{column-gap:0.5rem !important}.column-gap-xl-3{column-gap:1rem !important}.column-gap-xl-4{column-gap:1.5rem !important}.column-gap-xl-5{column-gap:3rem !important}.text-xl-start{text-align:left !important}.text-xl-end{text-align:right !important}.text-xl-center{text-align:center !important}}@media (min-width: 1400px){.float-xxl-start{float:left !important}.float-xxl-end{float:right !important}.float-xxl-none{float:none !important}.object-fit-xxl-contain{object-fit:contain !important}.object-fit-xxl-cover{object-fit:cover !important}.object-fit-xxl-fill{object-fit:fill !important}.object-fit-xxl-scale{object-fit:scale-down !important}.object-fit-xxl-none{object-fit:none !important}.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !important}.d-xxl-grid{display:grid !important}.d-xxl-inline-grid{display:inline-grid !important}.d-xxl-table{display:table !important}.d-xxl-table-row{display:table-row !important}.d-xxl-table-cell{display:table-cell !important}.d-xxl-flex{display:flex !important}.d-xxl-inline-flex{display:inline-flex !important}.d-xxl-none{display:none !important}.flex-xxl-fill{flex:1 1 auto !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-column{flex-direction:column !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column-reverse{flex-direction:column-reverse !important}.flex-xxl-grow-0{flex-grow:0 !important}.flex-xxl-grow-1{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xxl-start{justify-content:flex-start !important}.justify-content-xxl-end{justify-content:flex-end !important}.justify-content-xxl-center{justify-content:center !important}.justify-content-xxl-between{justify-content:space-between !important}.justify-content-xxl-around{justify-content:space-around !important}.justify-content-xxl-evenly{justify-content:space-evenly !important}.align-items-xxl-start{align-items:flex-start !important}.align-items-xxl-end{align-items:flex-end !important}.align-items-xxl-center{align-items:center !important}.align-items-xxl-baseline{align-items:baseline !important}.align-items-xxl-stretch{align-items:stretch !important}.align-content-xxl-start{align-content:flex-start !important}.align-content-xxl-end{align-content:flex-end !important}.align-content-xxl-center{align-content:center !important}.align-content-xxl-between{align-content:space-between !important}.align-content-xxl-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-self-xxl-auto{align-self:auto !important}.align-self-xxl-start{align-self:flex-start !important}.align-self-xxl-end{align-self:flex-end !important}.align-self-xxl-center{align-self:center !important}.align-self-xxl-baseline{align-self:baseline !important}.align-self-xxl-stretch{align-self:stretch !important}.order-xxl-first{order:-1 !important}.order-xxl-0{order:0 !important}.order-xxl-1{order:1 !important}.order-xxl-2{order:2 !important}.order-xxl-3{order:3 !important}.order-xxl-4{order:4 !important}.order-xxl-5{order:5 !important}.order-xxl-last{order:6 !important}.m-xxl-0{margin:0 !important}.m-xxl-1{margin:0.25rem !important}.m-xxl-2{margin:0.5rem !important}.m-xxl-3{margin:1rem !important}.m-xxl-4{margin:1.5rem !important}.m-xxl-5{margin:3rem !important}.m-xxl-auto{margin:auto !important}.mx-xxl-0{margin-right:0 !important;margin-left:0 !important}.mx-xxl-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.mx-xxl-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.mx-xxl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xxl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xxl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xxl-auto{margin-right:auto !important;margin-left:auto !important}.my-xxl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xxl-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.my-xxl-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.my-xxl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xxl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xxl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xxl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xxl-0{margin-top:0 !important}.mt-xxl-1{margin-top:0.25rem !important}.mt-xxl-2{margin-top:0.5rem !important}.mt-xxl-3{margin-top:1rem !important}.mt-xxl-4{margin-top:1.5rem !important}.mt-xxl-5{margin-top:3rem !important}.mt-xxl-auto{margin-top:auto !important}.me-xxl-0{margin-right:0 !important}.me-xxl-1{margin-right:0.25rem !important}.me-xxl-2{margin-right:0.5rem !important}.me-xxl-3{margin-right:1rem !important}.me-xxl-4{margin-right:1.5rem !important}.me-xxl-5{margin-right:3rem !important}.me-xxl-auto{margin-right:auto !important}.mb-xxl-0{margin-bottom:0 !important}.mb-xxl-1{margin-bottom:0.25rem !important}.mb-xxl-2{margin-bottom:0.5rem !important}.mb-xxl-3{margin-bottom:1rem !important}.mb-xxl-4{margin-bottom:1.5rem !important}.mb-xxl-5{margin-bottom:3rem !important}.mb-xxl-auto{margin-bottom:auto !important}.ms-xxl-0{margin-left:0 !important}.ms-xxl-1{margin-left:0.25rem !important}.ms-xxl-2{margin-left:0.5rem !important}.ms-xxl-3{margin-left:1rem !important}.ms-xxl-4{margin-left:1.5rem !important}.ms-xxl-5{margin-left:3rem !important}.ms-xxl-auto{margin-left:auto !important}.p-xxl-0{padding:0 !important}.p-xxl-1{padding:0.25rem !important}.p-xxl-2{padding:0.5rem !important}.p-xxl-3{padding:1rem !important}.p-xxl-4{padding:1.5rem !important}.p-xxl-5{padding:3rem !important}.px-xxl-0{padding-right:0 !important;padding-left:0 !important}.px-xxl-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.px-xxl-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.px-xxl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xxl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xxl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xxl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xxl-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.py-xxl-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.py-xxl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xxl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xxl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xxl-0{padding-top:0 !important}.pt-xxl-1{padding-top:0.25rem !important}.pt-xxl-2{padding-top:0.5rem !important}.pt-xxl-3{padding-top:1rem !important}.pt-xxl-4{padding-top:1.5rem !important}.pt-xxl-5{padding-top:3rem !important}.pe-xxl-0{padding-right:0 !important}.pe-xxl-1{padding-right:0.25rem !important}.pe-xxl-2{padding-right:0.5rem !important}.pe-xxl-3{padding-right:1rem !important}.pe-xxl-4{padding-right:1.5rem !important}.pe-xxl-5{padding-right:3rem !important}.pb-xxl-0{padding-bottom:0 !important}.pb-xxl-1{padding-bottom:0.25rem !important}.pb-xxl-2{padding-bottom:0.5rem !important}.pb-xxl-3{padding-bottom:1rem !important}.pb-xxl-4{padding-bottom:1.5rem !important}.pb-xxl-5{padding-bottom:3rem !important}.ps-xxl-0{padding-left:0 !important}.ps-xxl-1{padding-left:0.25rem !important}.ps-xxl-2{padding-left:0.5rem !important}.ps-xxl-3{padding-left:1rem !important}.ps-xxl-4{padding-left:1.5rem !important}.ps-xxl-5{padding-left:3rem !important}.gap-xxl-0{gap:0 !important}.gap-xxl-1{gap:0.25rem !important}.gap-xxl-2{gap:0.5rem !important}.gap-xxl-3{gap:1rem !important}.gap-xxl-4{gap:1.5rem !important}.gap-xxl-5{gap:3rem !important}.row-gap-xxl-0{row-gap:0 !important}.row-gap-xxl-1{row-gap:0.25rem !important}.row-gap-xxl-2{row-gap:0.5rem !important}.row-gap-xxl-3{row-gap:1rem !important}.row-gap-xxl-4{row-gap:1.5rem !important}.row-gap-xxl-5{row-gap:3rem !important}.column-gap-xxl-0{column-gap:0 !important}.column-gap-xxl-1{column-gap:0.25rem !important}.column-gap-xxl-2{column-gap:0.5rem !important}.column-gap-xxl-3{column-gap:1rem !important}.column-gap-xxl-4{column-gap:1.5rem !important}.column-gap-xxl-5{column-gap:3rem !important}.text-xxl-start{text-align:left !important}.text-xxl-end{text-align:right !important}.text-xxl-center{text-align:center !important}}@media (min-width: 1200px){.fs-1{font-size:2.5rem !important}.fs-2{font-size:2rem !important}.fs-3{font-size:1.75rem !important}.fs-4{font-size:1.5rem !important}}@media print{.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-grid{display:grid !important}.d-print-inline-grid{display:inline-grid !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}.d-print-none{display:none !important}}:host{font-family:system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";font-size:1rem;font-weight:400;line-height:1.5;color:#212529}";
2430
10
 
2431
- function _toArray(arr) {
2432
- return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest();
2433
- }
2434
-
2435
- function _arrayWithHoles(arr) {
2436
- if (Array.isArray(arr)) return arr;
2437
- }
2438
-
2439
- function _iterableToArray(iter) {
2440
- if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
2441
- }
2442
-
2443
- function _unsupportedIterableToArray(o, minLen) {
2444
- if (!o) return;
2445
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
2446
- var n = Object.prototype.toString.call(o).slice(8, -1);
2447
- if (n === "Object" && o.constructor) n = o.constructor.name;
2448
- if (n === "Map" || n === "Set") return Array.from(o);
2449
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
2450
- }
2451
-
2452
- function _arrayLikeToArray(arr, len) {
2453
- if (len == null || len > arr.length) len = arr.length;
2454
-
2455
- for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
2456
-
2457
- return arr2;
2458
- }
2459
-
2460
- function _nonIterableRest() {
2461
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
2462
- }
2463
-
2464
- /**
2465
- * Static methods for Dinero.
2466
- * @ignore
2467
- *
2468
- * @type {Object}
2469
- */
2470
- var Static = {
2471
- /**
2472
- * Returns an array of Dinero objects, normalized to the same precision (the highest).
2473
- *
2474
- * @memberof module:Dinero
2475
- * @method
2476
- *
2477
- * @param {Dinero[]} objects - An array of Dinero objects
2478
- *
2479
- * @example
2480
- * // returns an array of Dinero objects
2481
- * // both with a precision of 3
2482
- * // and an amount of 1000
2483
- * Dinero.normalizePrecision([
2484
- * Dinero({ amount: 100, precision: 2 }),
2485
- * Dinero({ amount: 1000, precision: 3 })
2486
- * ])
2487
- *
2488
- * @return {Dinero[]}
2489
- */
2490
- normalizePrecision: function normalizePrecision(objects) {
2491
- var highestPrecision = objects.reduce(function (a, b) {
2492
- return Math.max(a.getPrecision(), b.getPrecision());
2493
- });
2494
- return objects.map(function (object) {
2495
- return object.getPrecision() !== highestPrecision ? object.convertPrecision(highestPrecision) : object;
2496
- });
2497
- },
2498
-
2499
- /**
2500
- * Returns the smallest Dinero object from an array of Dinero objects
2501
- *
2502
- * @memberof module:Dinero
2503
- * @method
2504
- *
2505
- * @param {Dinero[]} objects - An array of Dinero objects
2506
- *
2507
- * @example
2508
- * // returns the smallest Dinero object with amount of 500 from an array of Dinero objects with different precisions
2509
- * Dinero.minimum([
2510
- * Dinero({ amount: 500, precision: 3 }),
2511
- * Dinero({ amount: 100, precision: 2 })
2512
- * ])
2513
- * @example
2514
- * // returns the smallest Dinero object with amount of 50 from an array of Dinero objects
2515
- * Dinero.minimum([
2516
- * Dinero({ amount: 50 }),
2517
- * Dinero({ amount: 100 })
2518
- * ])
2519
- *
2520
- * @return {Dinero[]}
2521
- */
2522
- minimum: function minimum(objects) {
2523
- var _objects = _toArray(objects),
2524
- firstObject = _objects[0],
2525
- tailObjects = _objects.slice(1);
2526
-
2527
- var currentMinimum = firstObject;
2528
- tailObjects.forEach(function (obj) {
2529
- currentMinimum = currentMinimum.lessThan(obj) ? currentMinimum : obj;
2530
- });
2531
- return currentMinimum;
2532
- },
2533
-
2534
- /**
2535
- * Returns the biggest Dinero object from an array of Dinero objects
2536
- *
2537
- * @memberof module:Dinero
2538
- * @method
2539
- *
2540
- * @param {Dinero[]} objects - An array of Dinero objects
2541
- *
2542
- * @example
2543
- * // returns the biggest Dinero object with amount of 20, from an array of Dinero objects with different precisions
2544
- * Dinero.maximum([
2545
- * Dinero({ amount: 20, precision: 2 }),
2546
- * Dinero({ amount: 150, precision: 3 })
2547
- * ])
2548
- * @example
2549
- * // returns the biggest Dinero object with amount of 100, from an array of Dinero objects
2550
- * Dinero.maximum([
2551
- * Dinero({ amount: 100 }),
2552
- * Dinero({ amount: 50 })
2553
- * ])
2554
- *
2555
- * @return {Dinero[]}
2556
- */
2557
- maximum: function maximum(objects) {
2558
- var _objects2 = _toArray(objects),
2559
- firstObject = _objects2[0],
2560
- tailObjects = _objects2.slice(1);
2561
-
2562
- var currentMaximum = firstObject;
2563
- tailObjects.forEach(function (obj) {
2564
- currentMaximum = currentMaximum.greaterThan(obj) ? currentMaximum : obj;
2565
- });
2566
- return currentMaximum;
2567
- }
2568
- };
2569
-
2570
- /**
2571
- * Returns whether a value is numeric.
2572
- * @ignore
2573
- *
2574
- * @param {} value - The value to test.
2575
- *
2576
- * @return {Boolean}
2577
- */
2578
- function isNumeric(value) {
2579
- return !isNaN(parseInt(value)) && isFinite(value);
2580
- }
2581
- /**
2582
- * Returns whether a value is a percentage.
2583
- * @ignore
2584
- *
2585
- * @param {} percentage - The percentage to test.
2586
- *
2587
- * @return {Boolean}
2588
- */
2589
-
2590
- function isPercentage(percentage) {
2591
- return isNumeric(percentage) && percentage <= 100 && percentage >= 0;
2592
- }
2593
- /**
2594
- * Returns whether an array of ratios is valid.
2595
- * @ignore
2596
- *
2597
- * @param {} ratios - The ratios to test.
2598
- *
2599
- * @return {Boolean}
2600
- */
2601
-
2602
- function areValidRatios(ratios) {
2603
- return ratios.length > 0 && ratios.every(function (ratio) {
2604
- return ratio >= 0;
2605
- }) && ratios.some(function (ratio) {
2606
- return ratio > 0;
2607
- });
2608
- }
2609
- /**
2610
- * Returns whether a value is even.
2611
- * @ignore
2612
- *
2613
- * @param {Number} value - The value to test.
2614
- *
2615
- * @return {Boolean}
2616
- */
2617
-
2618
- function isEven(value) {
2619
- return value % 2 === 0;
2620
- }
2621
- /**
2622
- * Returns whether a value is a float.
2623
- * @ignore
2624
- *
2625
- * @param {} value - The value to test.
2626
- *
2627
- * @return {Boolean}
2628
- */
2629
-
2630
- function isFloat(value) {
2631
- return isNumeric(value) && !Number.isInteger(value);
2632
- }
2633
- /**
2634
- * Returns how many fraction digits a number has.
2635
- * @ignore
2636
- *
2637
- * @param {Number} [number=0] - The number to test.
2638
- *
2639
- * @return {Number}
2640
- */
2641
-
2642
- function countFractionDigits() {
2643
- var number = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
2644
- var stringRepresentation = number.toString();
2645
-
2646
- if (stringRepresentation.indexOf('e-') > 0) {
2647
- // It's too small for a normal string representation, e.g. 1e-7 instead of 0.00000001
2648
- return parseInt(stringRepresentation.split('e-')[1]);
2649
- } else {
2650
- var fractionDigits = stringRepresentation.split('.')[1];
2651
- return fractionDigits ? fractionDigits.length : 0;
2652
- }
2653
- }
2654
- /**
2655
- * Returns whether a number is half.
2656
- * @ignore
2657
- *
2658
- * @param {Number} number - The number to test.
2659
- *
2660
- * @return {Number}
2661
- */
2662
-
2663
- function isHalf(number) {
2664
- return Math.abs(number) % 1 === 0.5;
2665
- }
2666
- /**
2667
- * Fetches a JSON resource.
2668
- * @ignore
2669
- *
2670
- * @param {String} url - The resource to fetch.
2671
- * @param {Object} [options.headers] - The headers to pass.
2672
- *
2673
- * @throws {Error} If `request.status` is lesser than 200 or greater or equal to 400.
2674
- * @throws {Error} If network fails.
2675
- *
2676
- * @return {JSON}
2677
- */
2678
-
2679
- function getJSON(url) {
2680
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2681
- return new Promise(function (resolve, reject) {
2682
- var request = Object.assign(new XMLHttpRequest(), {
2683
- onreadystatechange: function onreadystatechange() {
2684
- if (request.readyState === 4) {
2685
- if (request.status >= 200 && request.status < 400) resolve(JSON.parse(request.responseText));else reject(new Error(request.statusText));
2686
- }
2687
- },
2688
- onerror: function onerror() {
2689
- reject(new Error('Network error'));
2690
- }
2691
- });
2692
- request.open('GET', url, true);
2693
- setXHRHeaders(request, options.headers);
2694
- request.send();
2695
- });
2696
- }
2697
- /**
2698
- * Returns an XHR object with attached headers.
2699
- * @ignore
2700
- *
2701
- * @param {XMLHttpRequest} xhr - The XHR request to set headers to.
2702
- * @param {Object} headers - The headers to set.
2703
- *
2704
- * @return {XMLHttpRequest}
2705
- */
2706
-
2707
- function setXHRHeaders(xhr) {
2708
- var headers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2709
-
2710
- for (var header in headers) {
2711
- xhr.setRequestHeader(header, headers[header]);
2712
- }
2713
-
2714
- return xhr;
2715
- }
2716
- /**
2717
- * Returns whether a value is undefined.
2718
- * @ignore
2719
- *
2720
- * @param {} value - The value to test.
2721
- *
2722
- * @return {Boolean}
2723
- */
2724
-
2725
- function isUndefined(value) {
2726
- return typeof value === 'undefined';
2727
- }
2728
- /**
2729
- * Returns an object flattened to one level deep.
2730
- * @ignore
2731
- *
2732
- * @param {Object} object - The object to flatten.
2733
- * @param {String} separator - The separator to use between flattened nodes.
2734
- *
2735
- * @return {Object}
2736
- */
2737
-
2738
- function flattenObject(object) {
2739
- var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '.';
2740
- var finalObject = {};
2741
- Object.entries(object).forEach(function (item) {
2742
- if (_typeof(item[1]) === 'object') {
2743
- var flatObject = flattenObject(item[1]);
2744
- Object.entries(flatObject).forEach(function (node) {
2745
- finalObject[item[0] + separator + node[0]] = node[1];
2746
- });
2747
- } else {
2748
- finalObject[item[0]] = item[1];
2749
- }
2750
- });
2751
- return finalObject;
2752
- }
2753
- /**
2754
- * Returns whether a value is thenable.
2755
- * @ignore
2756
- *
2757
- * @param {} value - The value to test.
2758
- *
2759
- * @return {Boolean}
2760
- */
2761
-
2762
- function isThenable(value) {
2763
- return Boolean(value) && (_typeof(value) === 'object' || typeof value === 'function') && typeof value.then === 'function';
2764
- }
2765
-
2766
- function Calculator() {
2767
- var floatMultiply = function floatMultiply(a, b) {
2768
- var getFactor = function getFactor(number) {
2769
- return Math.pow(10, countFractionDigits(number));
2770
- };
2771
-
2772
- var factor = Math.max(getFactor(a), getFactor(b));
2773
- return Math.round(a * factor) * Math.round(b * factor) / (factor * factor);
2774
- };
2775
-
2776
- var roundingModes = {
2777
- HALF_ODD: function HALF_ODD(number) {
2778
- var rounded = Math.round(number);
2779
- return isHalf(number) ? isEven(rounded) ? rounded - 1 : rounded : rounded;
2780
- },
2781
- HALF_EVEN: function HALF_EVEN(number) {
2782
- var rounded = Math.round(number);
2783
- return isHalf(number) ? isEven(rounded) ? rounded : rounded - 1 : rounded;
2784
- },
2785
- HALF_UP: function HALF_UP(number) {
2786
- return Math.round(number);
2787
- },
2788
- HALF_DOWN: function HALF_DOWN(number) {
2789
- return isHalf(number) ? Math.floor(number) : Math.round(number);
2790
- },
2791
- HALF_TOWARDS_ZERO: function HALF_TOWARDS_ZERO(number) {
2792
- return isHalf(number) ? Math.sign(number) * Math.floor(Math.abs(number)) : Math.round(number);
2793
- },
2794
- HALF_AWAY_FROM_ZERO: function HALF_AWAY_FROM_ZERO(number) {
2795
- return isHalf(number) ? Math.sign(number) * Math.ceil(Math.abs(number)) : Math.round(number);
2796
- },
2797
- DOWN: function DOWN(number) {
2798
- return Math.floor(number);
2799
- }
2800
- };
2801
- return {
2802
- /**
2803
- * Returns the sum of two numbers.
2804
- * @ignore
2805
- *
2806
- * @param {Number} a - The first number to add.
2807
- * @param {Number} b - The second number to add.
2808
- *
2809
- * @return {Number}
2810
- */
2811
- add: function add(a, b) {
2812
- return a + b;
2813
- },
2814
-
2815
- /**
2816
- * Returns the difference of two numbers.
2817
- * @ignore
2818
- *
2819
- * @param {Number} a - The first number to subtract.
2820
- * @param {Number} b - The second number to subtract.
2821
- *
2822
- * @return {Number}
2823
- */
2824
- subtract: function subtract(a, b) {
2825
- return a - b;
2826
- },
2827
-
2828
- /**
2829
- * Returns the product of two numbers.
2830
- * @ignore
2831
- *
2832
- * @param {Number} a - The first number to multiply.
2833
- * @param {Number} b - The second number to multiply.
2834
- *
2835
- * @return {Number}
2836
- */
2837
- multiply: function multiply(a, b) {
2838
- return isFloat(a) || isFloat(b) ? floatMultiply(a, b) : a * b;
2839
- },
2840
-
2841
- /**
2842
- * Returns the quotient of two numbers.
2843
- * @ignore
2844
- *
2845
- * @param {Number} a - The first number to divide.
2846
- * @param {Number} b - The second number to divide.
2847
- *
2848
- * @return {Number}
2849
- */
2850
- divide: function divide(a, b) {
2851
- return a / b;
2852
- },
2853
-
2854
- /**
2855
- * Returns the remainder of two numbers.
2856
- * @ignore
2857
- *
2858
- * @param {Number} a - The first number to divide.
2859
- * @param {Number} b - The second number to divide.
2860
- *
2861
- * @return {Number}
2862
- */
2863
- modulo: function modulo(a, b) {
2864
- return a % b;
2865
- },
2866
-
2867
- /**
2868
- * Returns a rounded number based off a specific rounding mode.
2869
- * @ignore
2870
- *
2871
- * @param {Number} number - The number to round.
2872
- * @param {String} [roundingMode='HALF_EVEN'] - The rounding mode to use.
2873
- *
2874
- * @returns {Number}
2875
- */
2876
- round: function round(number) {
2877
- var roundingMode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'HALF_EVEN';
2878
- return roundingModes[roundingMode](number);
2879
- }
2880
- };
2881
- }
2882
-
2883
- var calculator = Calculator();
2884
- function Format(format) {
2885
- var matches = /^(?:(\$|USD)?0(?:(,)0)?(\.)?(0+)?|0(?:(,)0)?(\.)?(0+)?\s?(dollar)?)$/gm.exec(format);
2886
- return {
2887
- /**
2888
- * Returns the matches.
2889
- * @ignore
2890
- *
2891
- * @return {Array}
2892
- */
2893
- getMatches: function getMatches() {
2894
- return matches !== null ? matches.slice(1).filter(function (match) {
2895
- return !isUndefined(match);
2896
- }) : [];
2897
- },
2898
-
2899
- /**
2900
- * Returns the amount of fraction digits to display.
2901
- * @ignore
2902
- *
2903
- * @return {Number}
2904
- */
2905
- getMinimumFractionDigits: function getMinimumFractionDigits() {
2906
- var decimalPosition = function decimalPosition(match) {
2907
- return match === '.';
2908
- };
2909
-
2910
- return !isUndefined(this.getMatches().find(decimalPosition)) ? this.getMatches()[calculator.add(this.getMatches().findIndex(decimalPosition), 1)].split('').length : 0;
2911
- },
2912
-
2913
- /**
2914
- * Returns the currency display mode.
2915
- * @ignore
2916
- *
2917
- * @return {String}
2918
- */
2919
- getCurrencyDisplay: function getCurrencyDisplay() {
2920
- var modes = {
2921
- USD: 'code',
2922
- dollar: 'name',
2923
- $: 'symbol'
2924
- };
2925
- return modes[this.getMatches().find(function (match) {
2926
- return match === 'USD' || match === 'dollar' || match === '$';
2927
- })];
2928
- },
2929
-
2930
- /**
2931
- * Returns the formatting style.
2932
- * @ignore
2933
- *
2934
- * @return {String}
2935
- */
2936
- getStyle: function getStyle() {
2937
- return !isUndefined(this.getCurrencyDisplay(this.getMatches())) ? 'currency' : 'decimal';
2938
- },
2939
-
2940
- /**
2941
- * Returns whether grouping should be used or not.
2942
- * @ignore
2943
- *
2944
- * @return {Boolean}
2945
- */
2946
- getUseGrouping: function getUseGrouping() {
2947
- return !isUndefined(this.getMatches().find(function (match) {
2948
- return match === ',';
2949
- }));
2950
- }
2951
- };
2952
- }
2953
-
2954
- function CurrencyConverter(options) {
2955
- /* istanbul ignore next */
2956
- var mergeTags = function mergeTags() {
2957
- var string = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
2958
- var tags = arguments.length > 1 ? arguments[1] : undefined;
2959
-
2960
- for (var tag in tags) {
2961
- string = string.replace("{{".concat(tag, "}}"), tags[tag]);
2962
- }
2963
-
2964
- return string;
2965
- };
2966
- /* istanbul ignore next */
2967
-
2968
-
2969
- var getRatesFromRestApi = function getRatesFromRestApi(from, to) {
2970
- return getJSON(mergeTags(options.endpoint, {
2971
- from: from,
2972
- to: to
2973
- }), {
2974
- headers: options.headers
2975
- });
2976
- };
2977
-
2978
- return {
2979
- /**
2980
- * Returns the exchange rate.
2981
- * @ignore
2982
- *
2983
- * @param {String} from - The base currency.
2984
- * @param {String} to - The destination currency.
2985
- *
2986
- * @return {Promise}
2987
- */
2988
- getExchangeRate: function getExchangeRate(from, to) {
2989
- return (isThenable(options.endpoint) ? options.endpoint : getRatesFromRestApi(from, to)).then(function (data) {
2990
- return flattenObject(data)[mergeTags(options.propertyPath, {
2991
- from: from,
2992
- to: to
2993
- })];
2994
- });
2995
- }
2996
- };
2997
- }
2998
-
2999
- /**
3000
- * Performs an assertion.
3001
- * @ignore
3002
- *
3003
- * @param {Boolean} condition - The expression to assert.
3004
- * @param {String} errorMessage - The message to throw if the assertion fails
3005
- * @param {ErrorConstructor} [ErrorType=Error] - The error to throw if the assertion fails.
3006
- *
3007
- * @throws {Error} If `condition` returns `false`.
3008
- */
3009
-
3010
- function assert(condition, errorMessage) {
3011
- var ErrorType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Error;
3012
- if (!condition) throw new ErrorType(errorMessage);
3013
- }
3014
- /**
3015
- * Asserts a value is a percentage.
3016
- * @ignore
3017
- *
3018
- * @param {} percentage - The percentage to test.
3019
- *
3020
- * @throws {RangeError} If `percentage` is out of range.
3021
- */
3022
-
3023
- function assertPercentage(percentage) {
3024
- assert(isPercentage(percentage), 'You must provide a numeric value between 0 and 100.', RangeError);
3025
- }
3026
- /**
3027
- * Asserts an array of ratios is valid.
3028
- * @ignore
3029
- *
3030
- * @param {} ratios - The ratios to test.
3031
- *
3032
- * @throws {TypeError} If `ratios` are invalid.
3033
- */
3034
-
3035
- function assertValidRatios(ratios) {
3036
- assert(areValidRatios(ratios), 'You must provide a non-empty array of numeric values greater than 0.', TypeError);
3037
- }
3038
- /**
3039
- * Asserts a value is an integer.
3040
- * @ignore
3041
- *
3042
- * @param {} number - The value to test.
3043
- *
3044
- * @throws {TypeError}
3045
- */
3046
-
3047
- function assertInteger(number) {
3048
- assert(Number.isInteger(number), 'You must provide an integer.', TypeError);
3049
- }
3050
-
3051
- var calculator$1 = Calculator();
3052
- /**
3053
- * A Dinero object is an immutable data structure representing a specific monetary value.
3054
- * It comes with methods for creating, parsing, manipulating, testing, transforming and formatting them.
3055
- *
3056
- * A Dinero object has:
3057
- *
3058
- * * An `amount`, expressed in minor currency units, as an integer.
3059
- * * A `currency`, expressed as an {@link https://en.wikipedia.org/wiki/ISO_4217#Active_codes ISO 4217 currency code}.
3060
- * * A `precision`, expressed as an integer, to represent the number of decimal places in the `amount`.
3061
- * This is helpful when you want to represent fractional minor currency units (e.g.: $10.4545).
3062
- * You can also use it to represent a currency with a different [exponent](https://en.wikipedia.org/wiki/ISO_4217#Treatment_of_minor_currency_units_.28the_.22exponent.22.29) than `2` (e.g.: Iraqi dinar with 1000 fils in 1 dinar (exponent of `3`), Japanese yen with no sub-units (exponent of `0`)).
3063
- * * An optional `locale` property that affects how output strings are formatted.
3064
- *
3065
- * Here's an overview of the public API:
3066
- *
3067
- * * **Access:** {@link module:Dinero~getAmount getAmount}, {@link module:Dinero~getCurrency getCurrency}, {@link module:Dinero~getLocale getLocale} and {@link module:Dinero~getPrecision getPrecision}.
3068
- * * **Manipulation:** {@link module:Dinero~add add}, {@link module:Dinero~subtract subtract}, {@link module:Dinero~multiply multiply}, {@link module:Dinero~divide divide}, {@link module:Dinero~percentage percentage}, {@link module:Dinero~allocate allocate} and {@link module:Dinero~convert convert}.
3069
- * * **Testing:** {@link module:Dinero~equalsTo equalsTo}, {@link module:Dinero~lessThan lessThan}, {@link module:Dinero~lessThanOrEqual lessThanOrEqual}, {@link module:Dinero~greaterThan greaterThan}, {@link module:Dinero~greaterThanOrEqual greaterThanOrEqual}, {@link module:Dinero~isZero isZero}, {@link module:Dinero~isPositive isPositive}, {@link module:Dinero~isNegative isNegative}, {@link module:Dinero~hasSubUnits hasSubUnits}, {@link module:Dinero~hasSameCurrency hasSameCurrency} and {@link module:Dinero~hasSameAmount hasSameAmount}.
3070
- * * **Configuration:** {@link module:Dinero~setLocale setLocale}.
3071
- * * **Conversion & formatting:** {@link module:Dinero~toFormat toFormat}, {@link module:Dinero~toUnit toUnit}, {@link module:Dinero~toRoundedUnit toRoundedUnit}, {@link module:Dinero~toObject toObject}, {@link module:Dinero~toJSON toJSON}, {@link module:Dinero~convertPrecision convertPrecision} and {@link module:Dinero.normalizePrecision normalizePrecision}.
3072
- *
3073
- * Dinero.js uses `number`s under the hood, so it's constrained by the [double-precision floating-point format](https://en.wikipedia.org/wiki/Double-precision_floating-point_format). Using values over [`Number.MAX_SAFE_INTEGER`](https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/MAX_SAFE_INTEGER) or below [`Number.MIN_SAFE_INTEGER`](https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/MIN_SAFE_INTEGER) will yield unpredictable results.
3074
- * Same goes with performing calculations: once the internal `amount` value exceeds those limits, precision is no longer guaranteed.
3075
- *
3076
- * @module Dinero
3077
- * @param {Number} [options.amount=0] - The amount in minor currency units (as an integer).
3078
- * @param {String} [options.currency='USD'] - An ISO 4217 currency code.
3079
- * @param {String} [options.precision=2] - The number of decimal places to represent.
3080
- *
3081
- * @throws {TypeError} If `amount` or `precision` is invalid. Integers over [`Number.MAX_SAFE_INTEGER`](https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/MAX_SAFE_INTEGER) or below [`Number.MIN_SAFE_INTEGER`](https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/MIN_SAFE_INTEGER) are considered valid, even though they can lead to imprecise amounts.
3082
- *
3083
- * @return {Object}
3084
- */
3085
-
3086
- var Dinero = function Dinero(options) {
3087
- var _Object$assign = Object.assign({}, {
3088
- amount: Dinero.defaultAmount,
3089
- currency: Dinero.defaultCurrency,
3090
- precision: Dinero.defaultPrecision
3091
- }, options),
3092
- amount = _Object$assign.amount,
3093
- currency = _Object$assign.currency,
3094
- precision = _Object$assign.precision;
3095
-
3096
- assertInteger(amount);
3097
- assertInteger(precision);
3098
- var globalLocale = Dinero.globalLocale,
3099
- globalFormat = Dinero.globalFormat,
3100
- globalRoundingMode = Dinero.globalRoundingMode,
3101
- globalFormatRoundingMode = Dinero.globalFormatRoundingMode;
3102
- var globalExchangeRatesApi = Object.assign({}, Dinero.globalExchangeRatesApi);
3103
- /**
3104
- * Uses ES5 function notation so `this` can be passed through call, apply and bind
3105
- * @ignore
3106
- */
3107
-
3108
- var create = function create(options) {
3109
- var obj = Object.assign({}, Object.assign({}, {
3110
- amount: amount,
3111
- currency: currency,
3112
- precision: precision
3113
- }, options), Object.assign({}, {
3114
- locale: this.locale
3115
- }, options));
3116
- return Object.assign(Dinero({
3117
- amount: obj.amount,
3118
- currency: obj.currency,
3119
- precision: obj.precision
3120
- }), {
3121
- locale: obj.locale
3122
- });
3123
- };
3124
- /**
3125
- * Uses ES5 function notation so `this` can be passed through call, apply and bind
3126
- * @ignore
3127
- */
3128
-
3129
-
3130
- var assertSameCurrency = function assertSameCurrency(comparator) {
3131
- assert(this.hasSameCurrency(comparator), 'You must provide a Dinero instance with the same currency.', TypeError);
3132
- };
3133
-
3134
- return {
3135
- /**
3136
- * Returns the amount.
3137
- *
3138
- * @example
3139
- * // returns 500
3140
- * Dinero({ amount: 500 }).getAmount()
3141
- *
3142
- * @return {Number}
3143
- */
3144
- getAmount: function getAmount() {
3145
- return amount;
3146
- },
3147
-
3148
- /**
3149
- * Returns the currency.
3150
- *
3151
- * @example
3152
- * // returns 'EUR'
3153
- * Dinero({ currency: 'EUR' }).getCurrency()
3154
- *
3155
- * @return {String}
3156
- */
3157
- getCurrency: function getCurrency() {
3158
- return currency;
3159
- },
3160
-
3161
- /**
3162
- * Returns the locale.
3163
- *
3164
- * @example
3165
- * // returns 'fr-FR'
3166
- * Dinero().setLocale('fr-FR').getLocale()
3167
- *
3168
- * @return {String}
3169
- */
3170
- getLocale: function getLocale() {
3171
- return this.locale || globalLocale;
3172
- },
3173
-
3174
- /**
3175
- * Returns a new Dinero object with an embedded locale.
3176
- *
3177
- * @param {String} newLocale - The new locale as an {@link http://tools.ietf.org/html/rfc5646 BCP 47 language tag}.
3178
- *
3179
- * @example
3180
- * // Returns a Dinero object with locale 'ja-JP'
3181
- * Dinero().setLocale('ja-JP')
3182
- *
3183
- * @return {Dinero}
3184
- */
3185
- setLocale: function setLocale(newLocale) {
3186
- return create.call(this, {
3187
- locale: newLocale
3188
- });
3189
- },
3190
-
3191
- /**
3192
- * Returns the precision.
3193
- *
3194
- * @example
3195
- * // returns 3
3196
- * Dinero({ precision: 3 }).getPrecision()
3197
- *
3198
- * @return {Number}
3199
- */
3200
- getPrecision: function getPrecision() {
3201
- return precision;
3202
- },
3203
-
3204
- /**
3205
- * Returns a new Dinero object with a new precision and a converted amount.
3206
- *
3207
- * By default, fractional minor currency units are rounded using the **half to even** rule ([banker's rounding](http://wiki.c2.com/?BankersRounding)).
3208
- * This can be necessary when you need to convert objects to a smaller precision.
3209
- *
3210
- * Rounding *can* lead to accuracy issues as you chain many times. Consider a minimal amount of subsequent conversions for safer results.
3211
- * You can also specify a different `roundingMode` to better fit your needs.
3212
- *
3213
- * @param {Number} newPrecision - The new precision.
3214
- * @param {String} [roundingMode='HALF_EVEN'] - The rounding mode to use: `'HALF_ODD'`, `'HALF_EVEN'`, `'HALF_UP'`, `'HALF_DOWN'`, `'HALF_TOWARDS_ZERO'`, `'HALF_AWAY_FROM_ZERO'` or `'DOWN'`.
3215
- *
3216
- * @example
3217
- * // Returns a Dinero object with precision 3 and amount 1000
3218
- * Dinero({ amount: 100, precision: 2 }).convertPrecision(3)
3219
- *
3220
- * @throws {TypeError} If `newPrecision` is invalid.
3221
- *
3222
- * @return {Dinero}
3223
- */
3224
- convertPrecision: function convertPrecision(newPrecision) {
3225
- var roundingMode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : globalFormatRoundingMode;
3226
- assertInteger(newPrecision);
3227
- var precision = this.getPrecision();
3228
- var isNewPrecisionLarger = newPrecision > precision;
3229
- var operation = isNewPrecisionLarger ? calculator$1.multiply : calculator$1.divide;
3230
- var terms = isNewPrecisionLarger ? [newPrecision, precision] : [precision, newPrecision];
3231
- var factor = Math.pow(10, calculator$1.subtract.apply(calculator$1, terms));
3232
- return create.call(this, {
3233
- amount: calculator$1.round(operation(this.getAmount(), factor), roundingMode),
3234
- precision: newPrecision
3235
- });
3236
- },
3237
-
3238
- /**
3239
- * Returns a new Dinero object that represents the sum of this and an other Dinero object.
3240
- *
3241
- * If Dinero objects have a different `precision`, they will be first converted to the highest.
3242
- *
3243
- * @param {Dinero} addend - The Dinero object to add.
3244
- *
3245
- * @example
3246
- * // returns a Dinero object with amount 600
3247
- * Dinero({ amount: 400 }).add(Dinero({ amount: 200 }))
3248
- * @example
3249
- * // returns a Dinero object with amount 144545 and precision 4
3250
- * Dinero({ amount: 400 }).add(Dinero({ amount: 104545, precision: 4 }))
3251
- *
3252
- * @throws {TypeError} If `addend` has a different currency.
3253
- *
3254
- * @return {Dinero}
3255
- */
3256
- add: function add(addend) {
3257
- assertSameCurrency.call(this, addend);
3258
- var addends = Dinero.normalizePrecision([this, addend]);
3259
- return create.call(this, {
3260
- amount: calculator$1.add(addends[0].getAmount(), addends[1].getAmount()),
3261
- precision: addends[0].getPrecision()
3262
- });
3263
- },
3264
-
3265
- /**
3266
- * Returns a new Dinero object that represents the difference of this and an other Dinero object.
3267
- *
3268
- * If Dinero objects have a different `precision`, they will be first converted to the highest.
3269
- *
3270
- * @param {Dinero} subtrahend - The Dinero object to subtract.
3271
- *
3272
- * @example
3273
- * // returns a Dinero object with amount 200
3274
- * Dinero({ amount: 400 }).subtract(Dinero({ amount: 200 }))
3275
- * @example
3276
- * // returns a Dinero object with amount 64545 and precision 4
3277
- * Dinero({ amount: 104545, precision: 4 }).subtract(Dinero({ amount: 400 }))
3278
- *
3279
- * @throws {TypeError} If `subtrahend` has a different currency.
3280
- *
3281
- * @return {Dinero}
3282
- */
3283
- subtract: function subtract(subtrahend) {
3284
- assertSameCurrency.call(this, subtrahend);
3285
- var subtrahends = Dinero.normalizePrecision([this, subtrahend]);
3286
- return create.call(this, {
3287
- amount: calculator$1.subtract(subtrahends[0].getAmount(), subtrahends[1].getAmount()),
3288
- precision: subtrahends[0].getPrecision()
3289
- });
3290
- },
3291
-
3292
- /**
3293
- * Returns a new Dinero object that represents the multiplied value by the given factor.
3294
- *
3295
- * By default, fractional minor currency units are rounded using the **half to even** rule ([banker's rounding](http://wiki.c2.com/?BankersRounding)).
3296
- *
3297
- * Rounding *can* lead to accuracy issues as you chain many times. Consider a minimal amount of subsequent calculations for safer results.
3298
- * You can also specify a different `roundingMode` to better fit your needs.
3299
- *
3300
- * @param {Number} multiplier - The factor to multiply by.
3301
- * @param {String} [roundingMode='HALF_EVEN'] - The rounding mode to use: `'HALF_ODD'`, `'HALF_EVEN'`, `'HALF_UP'`, `'HALF_DOWN'`, `'HALF_TOWARDS_ZERO'`, `'HALF_AWAY_FROM_ZERO'` or `'DOWN'`.
3302
- *
3303
- * @example
3304
- * // returns a Dinero object with amount 1600
3305
- * Dinero({ amount: 400 }).multiply(4)
3306
- * @example
3307
- * // returns a Dinero object with amount 800
3308
- * Dinero({ amount: 400 }).multiply(2.001)
3309
- * @example
3310
- * // returns a Dinero object with amount 801
3311
- * Dinero({ amount: 400 }).multiply(2.00125, 'HALF_UP')
3312
- *
3313
- * @return {Dinero}
3314
- */
3315
- multiply: function multiply(multiplier) {
3316
- var roundingMode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : globalRoundingMode;
3317
- return create.call(this, {
3318
- amount: calculator$1.round(calculator$1.multiply(this.getAmount(), multiplier), roundingMode)
3319
- });
3320
- },
3321
-
3322
- /**
3323
- * Returns a new Dinero object that represents the divided value by the given factor.
3324
- *
3325
- * By default, fractional minor currency units are rounded using the **half to even** rule ([banker's rounding](http://wiki.c2.com/?BankersRounding)).
3326
- *
3327
- * Rounding *can* lead to accuracy issues as you chain many times. Consider a minimal amount of subsequent calculations for safer results.
3328
- * You can also specify a different `roundingMode` to better fit your needs.
3329
- *
3330
- * As rounding is applied, precision may be lost in the process. If you want to accurately split a Dinero object, use {@link module:Dinero~allocate allocate} instead.
3331
- *
3332
- * @param {Number} divisor - The factor to divide by.
3333
- * @param {String} [roundingMode='HALF_EVEN'] - The rounding mode to use: `'HALF_ODD'`, `'HALF_EVEN'`, `'HALF_UP'`, `'HALF_DOWN'`, `'HALF_TOWARDS_ZERO'`, `'HALF_AWAY_FROM_ZERO'` or `'DOWN'`.
3334
- *
3335
- * @example
3336
- * // returns a Dinero object with amount 100
3337
- * Dinero({ amount: 400 }).divide(4)
3338
- * @example
3339
- * // returns a Dinero object with amount 52
3340
- * Dinero({ amount: 105 }).divide(2)
3341
- * @example
3342
- * // returns a Dinero object with amount 53
3343
- * Dinero({ amount: 105 }).divide(2, 'HALF_UP')
3344
- *
3345
- * @return {Dinero}
3346
- */
3347
- divide: function divide(divisor) {
3348
- var roundingMode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : globalRoundingMode;
3349
- return create.call(this, {
3350
- amount: calculator$1.round(calculator$1.divide(this.getAmount(), divisor), roundingMode)
3351
- });
3352
- },
3353
-
3354
- /**
3355
- * Returns a new Dinero object that represents a percentage of this.
3356
- *
3357
- * As rounding is applied, precision may be lost in the process. If you want to accurately split a Dinero object, use {@link module:Dinero~allocate allocate} instead.
3358
- *
3359
- * @param {Number} percentage - The percentage to extract (between 0 and 100).
3360
- * @param {String} [roundingMode='HALF_EVEN'] - The rounding mode to use: `'HALF_ODD'`, `'HALF_EVEN'`, `'HALF_UP'`, `'HALF_DOWN'`, `'HALF_TOWARDS_ZERO'`, `'HALF_AWAY_FROM_ZERO'` or `'DOWN'`.
3361
- *
3362
- * @example
3363
- * // returns a Dinero object with amount 5000
3364
- * Dinero({ amount: 10000 }).percentage(50)
3365
- * @example
3366
- * // returns a Dinero object with amount 29
3367
- * Dinero({ amount: 57 }).percentage(50, "HALF_ODD")
3368
- *
3369
- * @throws {RangeError} If `percentage` is out of range.
3370
- *
3371
- * @return {Dinero}
3372
- */
3373
- percentage: function percentage(_percentage) {
3374
- var roundingMode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : globalRoundingMode;
3375
- assertPercentage(_percentage);
3376
- return this.multiply(calculator$1.divide(_percentage, 100), roundingMode);
3377
- },
3378
-
3379
- /**
3380
- * Allocates the amount of a Dinero object according to a list of ratios.
3381
- *
3382
- * Sometimes you need to split monetary values but percentages can't cut it without adding or losing pennies.
3383
- * A good example is invoicing: let's say you need to bill $1,000.03 and you want a 50% downpayment.
3384
- * If you use {@link module:Dinero~percentage percentage}, you'll get an accurate Dinero object but the amount won't be billable: you can't split a penny.
3385
- * If you round it, you'll bill a penny extra.
3386
- * With {@link module:Dinero~allocate allocate}, you can split a monetary amount then distribute the remainder as evenly as possible.
3387
- *
3388
- * You can use percentage style or ratio style for `ratios`: `[25, 75]` and `[1, 3]` will do the same thing.
3389
- *
3390
- * Since v1.8.0, you can use zero ratios (such as [0, 50, 50]). If there's a remainder to distribute, zero ratios are skipped and return a Dinero object with amount zero.
3391
- *
3392
- * @param {Number[]} ratios - The ratios to allocate the money to.
3393
- *
3394
- * @example
3395
- * // returns an array of two Dinero objects
3396
- * // the first one with an amount of 502
3397
- * // the second one with an amount of 501
3398
- * Dinero({ amount: 1003 }).allocate([50, 50])
3399
- * @example
3400
- * // returns an array of two Dinero objects
3401
- * // the first one with an amount of 25
3402
- * // the second one with an amount of 75
3403
- * Dinero({ amount: 100 }).allocate([1, 3])
3404
- * @example
3405
- * // since version 1.8.0
3406
- * // returns an array of three Dinero objects
3407
- * // the first one with an amount of 0
3408
- * // the second one with an amount of 502
3409
- * // the third one with an amount of 501
3410
- * Dinero({ amount: 1003 }).allocate([0, 50, 50])
3411
- *
3412
- * @throws {TypeError} If ratios are invalid.
3413
- *
3414
- * @return {Dinero[]}
3415
- */
3416
- allocate: function allocate(ratios) {
3417
- var _this = this;
3418
-
3419
- assertValidRatios(ratios);
3420
- var total = ratios.reduce(function (a, b) {
3421
- return calculator$1.add(a, b);
3422
- });
3423
- var remainder = this.getAmount();
3424
- var shares = ratios.map(function (ratio) {
3425
- var share = Math.floor(calculator$1.divide(calculator$1.multiply(_this.getAmount(), ratio), total));
3426
- remainder = calculator$1.subtract(remainder, share);
3427
- return create.call(_this, {
3428
- amount: share
3429
- });
3430
- });
3431
- var i = 0;
3432
-
3433
- while (remainder > 0) {
3434
- if (ratios[i] > 0) {
3435
- shares[i] = shares[i].add(create.call(this, {
3436
- amount: 1
3437
- }));
3438
- remainder = calculator$1.subtract(remainder, 1);
3439
- }
3440
-
3441
- i += 1;
3442
- }
3443
-
3444
- return shares;
3445
- },
3446
-
3447
- /**
3448
- * Returns a Promise containing a new Dinero object converted to another currency.
3449
- *
3450
- * You have two options to provide the exchange rates:
3451
- *
3452
- * 1. **Use an exchange rate REST API, and let Dinero handle the fetching and conversion.**
3453
- * This is a simple option if you have access to an exchange rate REST API and want Dinero to do the rest.
3454
- * 2. **Fetch the exchange rates on your own and provide them directly.**
3455
- * This is useful if you're fetching your rates from somewhere else (a file, a database), use a different protocol or query language than REST (SOAP, GraphQL) or want to fetch rates once and cache them instead of making new requests every time.
3456
- *
3457
- * **If you want to use a REST API**, you must provide a third-party endpoint yourself. Dinero doesn't come bundled with an exchange rates endpoint.
3458
- *
3459
- * Here are some exchange rate APIs you can use:
3460
- *
3461
- * * [Fixer](https://fixer.io)
3462
- * * [Open Exchange Rates](https://openexchangerates.org)
3463
- * * [Coinbase](https://api.coinbase.com/v2/exchange-rates)
3464
- * * More [foreign](https://github.com/toddmotto/public-apis#currency-exchange) and [crypto](https://github.com/toddmotto/public-apis#cryptocurrency) exchange rate APIs.
3465
- *
3466
- * **If you want to fetch your own rates and provide them directly**, you need to pass a promise that resolves to the exchanges rates.
3467
- *
3468
- * In both cases, you need to specify at least:
3469
- *
3470
- * * a **destination currency**: the currency in which you want to convert your Dinero object. You can specify it with `currency`.
3471
- * * an **endpoint**: the API URL to query exchange rates, with parameters, or a promise that resolves to the exchange rates. You can specify it with `options.endpoint`.
3472
- * * a **property path**: the path to access the wanted rate in your API's JSON response (or the custom promise's payload). For example, with a response of:
3473
- * ```json
3474
- * {
3475
- * "data": {
3476
- * "base": "USD",
3477
- * "destination": "EUR",
3478
- * "rate": "0.827728919"
3479
- * }
3480
- * }
3481
- * ```
3482
- * Then the property path is `'data.rate'`. You can specify it with `options.propertyPath`.
3483
- *
3484
- * The base currency (the one of your Dinero object) and the destination currency can be used as "merge tags" with the mustache syntax, respectively `{{from}}` and `{{to}}`.
3485
- * You can use these tags to refer to these values in `options.endpoint` and `options.propertyPath`.
3486
- *
3487
- * For example, if you need to specify the base currency as a query parameter, you can do the following:
3488
- *
3489
- * ```js
3490
- * {
3491
- * endpoint: 'https://yourexchangerates.api/latest?base={{from}}'
3492
- * }
3493
- * ```
3494
- *
3495
- * @param {String} currency - The destination currency, expressed as an {@link https://en.wikipedia.org/wiki/ISO_4217#Active_codes ISO 4217 currency code}.
3496
- * @param {(String|Promise)} options.endpoint - The API endpoint to retrieve exchange rates. You can substitute this with a promise that resolves to the exchanges rates if you already have them.
3497
- * @param {String} [options.propertyPath='rates.{{to}}'] - The property path to the rate.
3498
- * @param {Object} [options.headers] - The HTTP headers to provide, if needed.
3499
- * @param {String} [options.roundingMode='HALF_EVEN'] - The rounding mode to use: `'HALF_ODD'`, `'HALF_EVEN'`, `'HALF_UP'`, `'HALF_DOWN'`, `'HALF_TOWARDS_ZERO'`, `'HALF_AWAY_FROM_ZERO'` or `'DOWN'`.
3500
- *
3501
- * @example
3502
- * // your global API parameters
3503
- * Dinero.globalExchangeRatesApi = { ... }
3504
- *
3505
- * // returns a Promise containing a Dinero object with the destination currency
3506
- * // and the initial amount converted to the new currency.
3507
- * Dinero({ amount: 500 }).convert('EUR')
3508
- * @example
3509
- * // returns a Promise containing a Dinero object,
3510
- * // with specific API parameters and rounding mode for this specific instance.
3511
- * Dinero({ amount: 500 })
3512
- * .convert('XBT', {
3513
- * endpoint: 'https://yourexchangerates.api/latest?base={{from}}',
3514
- * propertyPath: 'data.rates.{{to}}',
3515
- * headers: {
3516
- * 'user-key': 'xxxxxxxxx'
3517
- * },
3518
- * roundingMode: 'HALF_UP'
3519
- * })
3520
- * @example
3521
- * // usage with exchange rates provided as a custom promise
3522
- * // using the default `propertyPath` format (so it doesn't have to be specified)
3523
- * const rates = {
3524
- * rates: {
3525
- * EUR: 0.81162
3526
- * }
3527
- * }
3528
- *
3529
- * Dinero({ amount: 500 })
3530
- * .convert('EUR', {
3531
- * endpoint: new Promise(resolve => resolve(rates))
3532
- * })
3533
- * @example
3534
- * // usage with Promise.prototype.then and Promise.prototype.catch
3535
- * Dinero({ amount: 500 })
3536
- * .convert('EUR')
3537
- * .then(dinero => {
3538
- * dinero.getCurrency() // returns 'EUR'
3539
- * })
3540
- * .catch(err => {
3541
- * // handle errors
3542
- * })
3543
- * @example
3544
- * // usage with async/await
3545
- * (async () => {
3546
- * const price = await Dinero({ amount: 500 }).convert('EUR')
3547
- * price.getCurrency() // returns 'EUR'
3548
- * })()
3549
- *
3550
- * @return {Promise}
3551
- */
3552
- convert: function convert(currency) {
3553
- var _this2 = this;
3554
-
3555
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
3556
- _ref$endpoint = _ref.endpoint,
3557
- endpoint = _ref$endpoint === void 0 ? globalExchangeRatesApi.endpoint : _ref$endpoint,
3558
- _ref$propertyPath = _ref.propertyPath,
3559
- propertyPath = _ref$propertyPath === void 0 ? globalExchangeRatesApi.propertyPath || 'rates.{{to}}' : _ref$propertyPath,
3560
- _ref$headers = _ref.headers,
3561
- headers = _ref$headers === void 0 ? globalExchangeRatesApi.headers : _ref$headers,
3562
- _ref$roundingMode = _ref.roundingMode,
3563
- roundingMode = _ref$roundingMode === void 0 ? globalRoundingMode : _ref$roundingMode;
3564
-
3565
- var options = Object.assign({}, {
3566
- endpoint: endpoint,
3567
- propertyPath: propertyPath,
3568
- headers: headers,
3569
- roundingMode: roundingMode
3570
- });
3571
- return CurrencyConverter(options).getExchangeRate(this.getCurrency(), currency).then(function (rate) {
3572
- assert(!isUndefined(rate), "No rate was found for the destination currency \"".concat(currency, "\"."), TypeError);
3573
- return create.call(_this2, {
3574
- amount: calculator$1.round(calculator$1.multiply(_this2.getAmount(), parseFloat(rate)), options.roundingMode),
3575
- currency: currency
3576
- });
3577
- });
3578
- },
3579
-
3580
- /**
3581
- * Checks whether the value represented by this object equals to the other.
3582
- *
3583
- * @param {Dinero} comparator - The Dinero object to compare to.
3584
- *
3585
- * @example
3586
- * // returns true
3587
- * Dinero({ amount: 500, currency: 'EUR' }).equalsTo(Dinero({ amount: 500, currency: 'EUR' }))
3588
- * @example
3589
- * // returns false
3590
- * Dinero({ amount: 500, currency: 'EUR' }).equalsTo(Dinero({ amount: 800, currency: 'EUR' }))
3591
- * @example
3592
- * // returns false
3593
- * Dinero({ amount: 500, currency: 'USD' }).equalsTo(Dinero({ amount: 500, currency: 'EUR' }))
3594
- * @example
3595
- * // returns false
3596
- * Dinero({ amount: 500, currency: 'USD' }).equalsTo(Dinero({ amount: 800, currency: 'EUR' }))
3597
- * @example
3598
- * // returns true
3599
- * Dinero({ amount: 1000, currency: 'EUR', precision: 2 }).equalsTo(Dinero({ amount: 10000, currency: 'EUR', precision: 3 }))
3600
- * @example
3601
- * // returns false
3602
- * Dinero({ amount: 10000, currency: 'EUR', precision: 2 }).equalsTo(Dinero({ amount: 10000, currency: 'EUR', precision: 3 }))
3603
- *
3604
- * @return {Boolean}
3605
- */
3606
- equalsTo: function equalsTo(comparator) {
3607
- return this.hasSameAmount(comparator) && this.hasSameCurrency(comparator);
3608
- },
3609
-
3610
- /**
3611
- * Checks whether the value represented by this object is less than the other.
3612
- *
3613
- * @param {Dinero} comparator - The Dinero object to compare to.
3614
- *
3615
- * @example
3616
- * // returns true
3617
- * Dinero({ amount: 500 }).lessThan(Dinero({ amount: 800 }))
3618
- * @example
3619
- * // returns false
3620
- * Dinero({ amount: 800 }).lessThan(Dinero({ amount: 500 }))
3621
- * @example
3622
- * // returns true
3623
- * Dinero({ amount: 5000, precision: 3 }).lessThan(Dinero({ amount: 800 }))
3624
- * @example
3625
- * // returns false
3626
- * Dinero({ amount: 800 }).lessThan(Dinero({ amount: 5000, precision: 3 }))
3627
- *
3628
- * @throws {TypeError} If `comparator` has a different currency.
3629
- *
3630
- * @return {Boolean}
3631
- */
3632
- lessThan: function lessThan(comparator) {
3633
- assertSameCurrency.call(this, comparator);
3634
- var comparators = Dinero.normalizePrecision([this, comparator]);
3635
- return comparators[0].getAmount() < comparators[1].getAmount();
3636
- },
3637
-
3638
- /**
3639
- * Checks whether the value represented by this object is less than or equal to the other.
3640
- *
3641
- * @param {Dinero} comparator - The Dinero object to compare to.
3642
- *
3643
- * @example
3644
- * // returns true
3645
- * Dinero({ amount: 500 }).lessThanOrEqual(Dinero({ amount: 800 }))
3646
- * @example
3647
- * // returns true
3648
- * Dinero({ amount: 500 }).lessThanOrEqual(Dinero({ amount: 500 }))
3649
- * @example
3650
- * // returns false
3651
- * Dinero({ amount: 500 }).lessThanOrEqual(Dinero({ amount: 300 }))
3652
- * @example
3653
- * // returns true
3654
- * Dinero({ amount: 5000, precision: 3 }).lessThanOrEqual(Dinero({ amount: 800 }))
3655
- * @example
3656
- * // returns true
3657
- * Dinero({ amount: 5000, precision: 3 }).lessThanOrEqual(Dinero({ amount: 500 }))
3658
- * @example
3659
- * // returns false
3660
- * Dinero({ amount: 800 }).lessThanOrEqual(Dinero({ amount: 5000, precision: 3 }))
3661
- *
3662
- * @throws {TypeError} If `comparator` has a different currency.
3663
- *
3664
- * @return {Boolean}
3665
- */
3666
- lessThanOrEqual: function lessThanOrEqual(comparator) {
3667
- assertSameCurrency.call(this, comparator);
3668
- var comparators = Dinero.normalizePrecision([this, comparator]);
3669
- return comparators[0].getAmount() <= comparators[1].getAmount();
3670
- },
3671
-
3672
- /**
3673
- * Checks whether the value represented by this object is greater than the other.
3674
- *
3675
- * @param {Dinero} comparator - The Dinero object to compare to.
3676
- *
3677
- * @example
3678
- * // returns false
3679
- * Dinero({ amount: 500 }).greaterThan(Dinero({ amount: 800 }))
3680
- * @example
3681
- * // returns true
3682
- * Dinero({ amount: 800 }).greaterThan(Dinero({ amount: 500 }))
3683
- * @example
3684
- * // returns true
3685
- * Dinero({ amount: 800 }).greaterThan(Dinero({ amount: 5000, precision: 3 }))
3686
- * @example
3687
- * // returns false
3688
- * Dinero({ amount: 5000, precision: 3 }).greaterThan(Dinero({ amount: 800 }))
3689
- *
3690
- * @throws {TypeError} If `comparator` has a different currency.
3691
- *
3692
- * @return {Boolean}
3693
- */
3694
- greaterThan: function greaterThan(comparator) {
3695
- assertSameCurrency.call(this, comparator);
3696
- var comparators = Dinero.normalizePrecision([this, comparator]);
3697
- return comparators[0].getAmount() > comparators[1].getAmount();
3698
- },
3699
-
3700
- /**
3701
- * Checks whether the value represented by this object is greater than or equal to the other.
3702
- *
3703
- * @param {Dinero} comparator - The Dinero object to compare to.
3704
- *
3705
- * @example
3706
- * // returns true
3707
- * Dinero({ amount: 500 }).greaterThanOrEqual(Dinero({ amount: 300 }))
3708
- * @example
3709
- * // returns true
3710
- * Dinero({ amount: 500 }).greaterThanOrEqual(Dinero({ amount: 500 }))
3711
- * @example
3712
- * // returns false
3713
- * Dinero({ amount: 500 }).greaterThanOrEqual(Dinero({ amount: 800 }))
3714
- * @example
3715
- * // returns true
3716
- * Dinero({ amount: 800 }).greaterThanOrEqual(Dinero({ amount: 5000, precision: 3 }))
3717
- * @example
3718
- * // returns true
3719
- * Dinero({ amount: 500 }).greaterThanOrEqual(Dinero({ amount: 5000, precision: 3 }))
3720
- * @example
3721
- * // returns false
3722
- * Dinero({ amount: 5000, precision: 3 }).greaterThanOrEqual(Dinero({ amount: 800 }))
3723
- *
3724
- * @throws {TypeError} If `comparator` has a different currency.
3725
- *
3726
- * @return {Boolean}
3727
- */
3728
- greaterThanOrEqual: function greaterThanOrEqual(comparator) {
3729
- assertSameCurrency.call(this, comparator);
3730
- var comparators = Dinero.normalizePrecision([this, comparator]);
3731
- return comparators[0].getAmount() >= comparators[1].getAmount();
3732
- },
3733
-
3734
- /**
3735
- * Checks if the value represented by this object is zero.
3736
- *
3737
- * @example
3738
- * // returns true
3739
- * Dinero({ amount: 0 }).isZero()
3740
- * @example
3741
- * // returns false
3742
- * Dinero({ amount: 100 }).isZero()
3743
- *
3744
- * @return {Boolean}
3745
- */
3746
- isZero: function isZero() {
3747
- return this.getAmount() === 0;
3748
- },
3749
-
3750
- /**
3751
- * Checks if the value represented by this object is positive.
3752
- *
3753
- * @example
3754
- * // returns false
3755
- * Dinero({ amount: -10 }).isPositive()
3756
- * @example
3757
- * // returns true
3758
- * Dinero({ amount: 10 }).isPositive()
3759
- * @example
3760
- * // returns true
3761
- * Dinero({ amount: 0 }).isPositive()
3762
- *
3763
- * @return {Boolean}
3764
- */
3765
- isPositive: function isPositive() {
3766
- return this.getAmount() >= 0;
3767
- },
3768
-
3769
- /**
3770
- * Checks if the value represented by this object is negative.
3771
- *
3772
- * @example
3773
- * // returns true
3774
- * Dinero({ amount: -10 }).isNegative()
3775
- * @example
3776
- * // returns false
3777
- * Dinero({ amount: 10 }).isNegative()
3778
- * @example
3779
- * // returns false
3780
- * Dinero({ amount: 0 }).isNegative()
3781
- *
3782
- * @return {Boolean}
3783
- */
3784
- isNegative: function isNegative() {
3785
- return this.getAmount() < 0;
3786
- },
3787
-
3788
- /**
3789
- * Checks if this has minor currency units.
3790
- * Deprecates {@link module:Dinero~hasCents hasCents}.
3791
- *
3792
- * @example
3793
- * // returns false
3794
- * Dinero({ amount: 1100 }).hasSubUnits()
3795
- * @example
3796
- * // returns true
3797
- * Dinero({ amount: 1150 }).hasSubUnits()
3798
- *
3799
- * @return {Boolean}
3800
- */
3801
- hasSubUnits: function hasSubUnits() {
3802
- return calculator$1.modulo(this.getAmount(), Math.pow(10, precision)) !== 0;
3803
- },
3804
-
3805
- /**
3806
- * Checks if this has minor currency units.
3807
- *
3808
- * @deprecated since version 1.4.0, will be removed in 2.0.0
3809
- * Use {@link module:Dinero~hasSubUnits hasSubUnits} instead.
3810
- *
3811
- * @example
3812
- * // returns false
3813
- * Dinero({ amount: 1100 }).hasCents()
3814
- * @example
3815
- * // returns true
3816
- * Dinero({ amount: 1150 }).hasCents()
3817
- *
3818
- * @return {Boolean}
3819
- */
3820
- hasCents: function hasCents() {
3821
- return calculator$1.modulo(this.getAmount(), Math.pow(10, precision)) !== 0;
3822
- },
3823
-
3824
- /**
3825
- * Checks whether the currency represented by this object equals to the other.
3826
- *
3827
- * @param {Dinero} comparator - The Dinero object to compare to.
3828
- *
3829
- * @example
3830
- * // returns true
3831
- * Dinero({ amount: 2000, currency: 'EUR' }).hasSameCurrency(Dinero({ amount: 1000, currency: 'EUR' }))
3832
- * @example
3833
- * // returns false
3834
- * Dinero({ amount: 1000, currency: 'EUR' }).hasSameCurrency(Dinero({ amount: 1000, currency: 'USD' }))
3835
- *
3836
- * @return {Boolean}
3837
- */
3838
- hasSameCurrency: function hasSameCurrency(comparator) {
3839
- return this.getCurrency() === comparator.getCurrency();
3840
- },
3841
-
3842
- /**
3843
- * Checks whether the amount represented by this object equals to the other.
3844
- *
3845
- * @param {Dinero} comparator - The Dinero object to compare to.
3846
- *
3847
- * @example
3848
- * // returns true
3849
- * Dinero({ amount: 1000, currency: 'EUR' }).hasSameAmount(Dinero({ amount: 1000 }))
3850
- * @example
3851
- * // returns false
3852
- * Dinero({ amount: 2000, currency: 'EUR' }).hasSameAmount(Dinero({ amount: 1000, currency: 'EUR' }))
3853
- * @example
3854
- * // returns true
3855
- * Dinero({ amount: 1000, currency: 'EUR', precision: 2 }).hasSameAmount(Dinero({ amount: 10000, precision: 3 }))
3856
- * @example
3857
- * // returns false
3858
- * Dinero({ amount: 10000, currency: 'EUR', precision: 2 }).hasSameAmount(Dinero({ amount: 10000, precision: 3 }))
3859
- *
3860
- * @return {Boolean}
3861
- */
3862
- hasSameAmount: function hasSameAmount(comparator) {
3863
- var comparators = Dinero.normalizePrecision([this, comparator]);
3864
- return comparators[0].getAmount() === comparators[1].getAmount();
3865
- },
3866
-
3867
- /**
3868
- * Returns this object formatted as a string.
3869
- *
3870
- * The format is a mask which defines how the output string will be formatted.
3871
- * It defines whether to display a currency, in what format, how many fraction digits to display and whether to use grouping separators.
3872
- * The output is formatted according to the applying locale.
3873
- *
3874
- * Object | Format | String
3875
- * :--------------------------- | :---------------- | :---
3876
- * `Dinero({ amount: 500050 })` | `'$0,0.00'` | $5,000.50
3877
- * `Dinero({ amount: 500050 })` | `'$0,0'` | $5,001
3878
- * `Dinero({ amount: 500050 })` | `'$0'` | $5001
3879
- * `Dinero({ amount: 500050 })` | `'$0.0'` | $5000.5
3880
- * `Dinero({ amount: 500050 })` | `'USD0,0.0'` | USD5,000.5
3881
- * `Dinero({ amount: 500050 })` | `'0,0.0 dollar'` | 5,000.5 dollars
3882
- *
3883
- * Don't try to substitute the `$` sign or the `USD` code with your target currency, nor adapt the format string to the exact format you want.
3884
- * The format is a mask which defines a pattern and returns a valid, localized currency string.
3885
- * If you want to display the object in a custom way, either use {@link module:Dinero~getAmount getAmount}, {@link module:Dinero~toUnit toUnit} or {@link module:Dinero~toRoundedUnit toRoundedUnit} and manipulate the output string as you wish.
3886
- *
3887
- * {@link module:Dinero~toFormat toFormat} wraps around `Number.prototype.toLocaleString`. For that reason, **format will vary depending on how it's implemented in the end user's environment**.
3888
- *
3889
- * You can also use `toLocaleString` directly:
3890
- * `Dinero().toRoundedUnit(digits, roundingMode).toLocaleString(locale, options)`.
3891
- *
3892
- * By default, amounts are rounded using the **half away from zero** rule ([commercial rounding](https://en.wikipedia.org/wiki/Rounding#Round_half_away_from_zero)).
3893
- * You can also specify a different `roundingMode` to better fit your needs.
3894
- *
3895
- * @param {String} [format='$0,0.00'] - The format mask to format to.
3896
- * @param {String} [roundingMode='HALF_AWAY_FROM_ZERO'] - The rounding mode to use: `'HALF_ODD'`, `'HALF_EVEN'`, `'HALF_UP'`, `'HALF_DOWN'`, `'HALF_TOWARDS_ZERO'`, `'HALF_AWAY_FROM_ZERO'` or `'DOWN'`.
3897
- *
3898
- * @example
3899
- * // returns $2,000
3900
- * Dinero({ amount: 200000 }).toFormat('$0,0')
3901
- * @example
3902
- * // returns €50.5
3903
- * Dinero({ amount: 5050, currency: 'EUR' }).toFormat('$0,0.0')
3904
- * @example
3905
- * // returns 100 euros
3906
- * Dinero({ amount: 10000, currency: 'EUR' }).setLocale('fr-FR').toFormat('0,0 dollar')
3907
- * @example
3908
- * // returns 2000
3909
- * Dinero({ amount: 200000, currency: 'EUR' }).toFormat()
3910
- * @example
3911
- * // returns $10
3912
- * Dinero({ amount: 1050 }).toFormat('$0', 'HALF_EVEN')
3913
- *
3914
- * @return {String}
3915
- */
3916
- toFormat: function toFormat() {
3917
- var format = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : globalFormat;
3918
- var roundingMode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : globalFormatRoundingMode;
3919
- var formatter = Format(format);
3920
- return this.toRoundedUnit(formatter.getMinimumFractionDigits(), roundingMode).toLocaleString(this.getLocale(), {
3921
- currencyDisplay: formatter.getCurrencyDisplay(),
3922
- useGrouping: formatter.getUseGrouping(),
3923
- minimumFractionDigits: formatter.getMinimumFractionDigits(),
3924
- style: formatter.getStyle(),
3925
- currency: this.getCurrency()
3926
- });
3927
- },
3928
-
3929
- /**
3930
- * Returns the amount represented by this object in units.
3931
- *
3932
- * @example
3933
- * // returns 10.5
3934
- * Dinero({ amount: 1050 }).toUnit()
3935
- * @example
3936
- * // returns 10.545
3937
- * Dinero({ amount: 10545, precision: 3 }).toUnit()
3938
- *
3939
- * @return {Number}
3940
- */
3941
- toUnit: function toUnit() {
3942
- return calculator$1.divide(this.getAmount(), Math.pow(10, precision));
3943
- },
3944
-
3945
- /**
3946
- * Returns the amount represented by this object in rounded units.
3947
- *
3948
- * By default, the method uses the **half away from zero** rule ([commercial rounding](https://en.wikipedia.org/wiki/Rounding#Round_half_away_from_zero)).
3949
- * You can also specify a different `roundingMode` to better fit your needs.
3950
- *
3951
- * @example
3952
- * // returns 10.6
3953
- * Dinero({ amount: 1055 }).toRoundedUnit(1)
3954
- * @example
3955
- * // returns 10
3956
- * Dinero({ amount: 1050 }).toRoundedUnit(0, 'HALF_EVEN')
3957
- *
3958
- * @param {Number} digits - The number of fraction digits to round to.
3959
- * @param {String} [roundingMode='HALF_AWAY_FROM_ZERO'] - The rounding mode to use: `'HALF_ODD'`, `'HALF_EVEN'`, `'HALF_UP'`, `'HALF_DOWN'`, `'HALF_TOWARDS_ZERO'`, `'HALF_AWAY_FROM_ZERO'` or `'DOWN'`.
3960
- *
3961
- * @return {Number}
3962
- */
3963
- toRoundedUnit: function toRoundedUnit(digits) {
3964
- var roundingMode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : globalFormatRoundingMode;
3965
- var factor = Math.pow(10, digits);
3966
- return calculator$1.divide(calculator$1.round(calculator$1.multiply(this.toUnit(), factor), roundingMode), factor);
3967
- },
3968
-
3969
- /**
3970
- * Returns the object's data as an object literal.
3971
- *
3972
- * @example
3973
- * // returns { amount: 500, currency: 'EUR', precision: 2 }
3974
- * Dinero({ amount: 500, currency: 'EUR', precision: 2 }).toObject()
3975
- *
3976
- * @return {Object}
3977
- */
3978
- toObject: function toObject() {
3979
- return {
3980
- amount: amount,
3981
- currency: currency,
3982
- precision: precision
3983
- };
3984
- },
3985
-
3986
- /**
3987
- * Returns the object's data as an object literal.
3988
- *
3989
- * Alias of {@link module:Dinero~toObject toObject}.
3990
- * It is defined so that calling `JSON.stringify` on a Dinero object will automatically extract the relevant data.
3991
- *
3992
- * @example
3993
- * // returns '{"amount":500,"currency":"EUR","precision":2}'
3994
- * JSON.stringify(Dinero({ amount: 500, currency: 'EUR', precision: 2 }))
3995
- *
3996
- * @return {Object}
3997
- */
3998
- toJSON: function toJSON() {
3999
- return this.toObject();
4000
- }
4001
- };
11
+ const pagingDefaults = {
12
+ amount: 25,
13
+ start_cursor: '',
14
+ end_cursor: '',
15
+ has_previous: false,
16
+ has_next: false,
4002
17
  };
4003
-
4004
- var dinero = Object.assign(Dinero, Defaults, Globals, Static);
4005
-
4006
- function formatCurrency(amount, withSymbol = true) {
4007
- if (!amount)
4008
- amount = 0;
4009
- function format(amount) {
4010
- const formattedString = withSymbol ? '$0,0.00' : '0,0.00';
4011
- return dinero({ amount: amount, currency: 'USD' }).toFormat(formattedString);
4012
- }
4013
- return amount < 0 ? `(${format(-amount)})` : format(amount);
4014
- }
4015
- function formatDate(dateString) {
4016
- if (!dateString)
4017
- return '';
4018
- const date = new Date(dateString);
4019
- return format(date, 'MMM d, yyyy');
4020
- }
4021
- function formatTime(dateString) {
4022
- if (!dateString)
4023
- return '';
4024
- const date = new Date(dateString);
4025
- return format(date, 'h:mmaaa');
4026
- }
4027
-
4028
- const paymentsListCss = ":host{display:block}";
4029
-
4030
18
  const PaymentsList = class {
4031
19
  constructor(hostRef) {
4032
20
  index.registerInstance(this, hostRef);
21
+ // onChangeAmount = (e) => {
22
+ // const newVal = e?.target?.value;
23
+ // if (newVal) {
24
+ // this.paging = pagingDefaults;
25
+ // this.paging.amount = newVal;
26
+ // this.fetchData();
27
+ // }
28
+ // }
29
+ this.onPageChange = (direction) => {
30
+ return () => {
31
+ this.fetchData(direction);
32
+ };
33
+ };
34
+ this.emptyState = (index.h("tr", null, index.h("td", { class: "empty-state", part: "empty-state", colSpan: 7, style: { textAlign: 'center' } }, "No payments to show")));
35
+ this.errorState = () => (index.h("tr", null, index.h("td", { class: "error-state", part: "error-state", colSpan: 7, style: { textAlign: 'center' } }, "An unexpected error occurred: ", this.errorMessage)));
36
+ this.loadingState = (index.h("tr", null, index.h("td", { class: "loading-state", part: "loading-state-cell", colSpan: 7, style: { textAlign: 'center' } }, index.h("div", { part: "loading-state-spinner", class: "spinner-border", role: "status" }, index.h("span", { class: "visually-hidden" }, "Loading...")))));
37
+ this.paginationBar = () => {
38
+ return (index.h("div", { class: "pagination-bar d-flex justify-content-center gap-3" }, index.h("button", { onClick: this.onPageChange('prev'), part: `arrow arrow-left${this.paging.has_previous ? '' : ' arrow-disabled'}`, disabled: !this.paging.has_previous, class: `btn btn-primary pagination-btn pagination-prev-btn${this.paging.has_previous ? '' : ' disabled'}` }, "\u2190"), index.h("button", { onClick: this.onPageChange('next'), part: `arrow arrow-right${this.paging.has_next ? '' : ' arrow-disabled'}`, disabled: !this.paging.has_next, class: `btn btn-primary pagination-btn pagination-next-btn${this.paging.has_next ? '' : ' disabled'}` }, "\u2192")));
39
+ };
4033
40
  this.accountId = undefined;
4034
- this.auth = {};
41
+ this.authToken = undefined;
4035
42
  this.payments = [];
43
+ this.loading = true;
44
+ this.errorMessage = undefined;
45
+ this.paging = pagingDefaults;
46
+ }
47
+ updateOnPropChange() {
48
+ this.fetchData();
4036
49
  }
4037
- requestPropsChanged() {
50
+ connectedCallback() {
4038
51
  this.fetchData();
4039
52
  }
4040
- fetchData() {
4041
- const accountId = this.accountId;
4042
- const endpoint = `account/${accountId}/payments`;
4043
- Api.Api(this.auth.token)
4044
- .get(endpoint)
4045
- .then((response) => {
4046
- const data = response.data.map(dataItem => new Payment.Payment(dataItem));
53
+ async fetchData(direction) {
54
+ var _a;
55
+ if (!this.accountId || !this.authToken) {
56
+ this.errorMessage = "Can not fetch any data without an AccountID and an AuthToken";
57
+ this.loading = false;
58
+ return;
59
+ }
60
+ this.loading = true;
61
+ const limit = this.paging.amount;
62
+ const cursor = `${direction === 'prev'
63
+ ? '&before_cursor=' + this.paging.start_cursor
64
+ : direction === 'next'
65
+ ? '&after_cursor=' + this.paging.end_cursor
66
+ : ''}`;
67
+ const endpoint = `account/${this.accountId}/payments?limit=${limit}${cursor ? cursor : ''}`;
68
+ const response = await Api.Api(this.authToken).get(endpoint);
69
+ if (!response.error) {
70
+ this.paging = Object.assign(Object.assign({}, this.paging), response.page_info);
71
+ const data = (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.map(dataItem => new utils.Payment(dataItem));
4047
72
  this.payments = data;
4048
- });
73
+ }
74
+ else {
75
+ this.errorMessage = typeof response.error === 'string' ? response.error : response.error.message;
76
+ }
77
+ this.loading = false;
78
+ }
79
+ showEmptyState() {
80
+ return this.payments ? this.payments.length < 1 : true;
4049
81
  }
4050
82
  render() {
4051
- return (index.h(index.Host, null, index.h("table", { class: "justifi-table" }, index.h("thead", null, index.h("tr", null, index.h("th", { scope: "col", title: "The date and time each payment was made" }, "Made on"), index.h("th", { scope: "col", title: "The dollar amount of each payment" }, "Amount"), index.h("th", { scope: "col" }, "Account"), index.h("th", { scope: "col" }, "Description"), index.h("th", { scope: "col" }, "Payment ID"), index.h("th", { scope: "col" }, "Cardholder"), index.h("th", { scope: "col" }, "Payment Method"), index.h("th", { scope: "col" }, "Status"))), index.h("tbody", null, this.payments.map(payment => {
4052
- var _a, _b, _c, _d;
4053
- index.h("tr", null, index.h("td", null, index.h("div", null, formatDate(payment.created_at)), index.h("div", null, formatTime(payment.created_at))), index.h("td", null, formatCurrency(payment.amount)), index.h("td", null, payment.account_id), index.h("td", null, payment.description), index.h("td", null, payment.id), index.h("td", null, (_b = (_a = payment.payment_method) === null || _a === void 0 ? void 0 : _a.card) === null || _b === void 0 ? void 0 : _b.name), index.h("td", null, (_d = (_c = payment.payment_method) === null || _c === void 0 ? void 0 : _c.card) === null || _d === void 0 ? void 0 : _d.acct_last_four), index.h("td", null, payment.status));
4054
- })))));
83
+ var _a;
84
+ return (index.h(index.Host, { exportparts: "\n table-head,table-head-row,table-head-cell,table-body,table-row,table-cell,\n loading-state-cell,loading-state-spinner,error-state,empty-state,\n pagination-bar,arrow,arrow-left,arrow-right,arrow-disabled\n " }, index.h("table", { class: "table table-hover" }, index.h("thead", { class: "table-head sticky-top", part: "table-head" }, index.h("tr", { class: "table-light", part: 'table-head-row' }, index.h("th", { part: "table-head-cell", scope: "col", title: "The date and time each payment was made" }, "Made on"), index.h("th", { part: "table-head-cell", scope: "col", title: "The dollar amount of each payment" }, "Amount"), index.h("th", { part: "table-head-cell", scope: "col" }, "Description"), index.h("th", { part: "table-head-cell", scope: "col" }, "Cardholder"), index.h("th", { part: "table-head-cell", scope: "col" }, "Payment Method"), index.h("th", { part: "table-head-cell", scope: "col" }, "Status"), index.h("th", { part: "table-head-cell", scope: "col" }, "Payment ID"))), index.h("tbody", { class: "table-body", part: 'table-body' }, this.loading ? this.loadingState :
85
+ this.errorMessage ? this.errorState() :
86
+ this.showEmptyState() ? this.emptyState :
87
+ (_a = this.payments) === null || _a === void 0 ? void 0 : _a.map((payment, index$1) => {
88
+ var _a, _b, _c, _d;
89
+ return index.h("tr", { part: `table-row${index$1 % 2 ? ' table-row-even' : ' table-row-odd'}` }, index.h("th", { scope: "row", part: "table-cell" }, index.h("div", null, utils.formatDate(payment.created_at)), index.h("div", null, utils.formatTime(payment.created_at))), index.h("td", { part: "table-cell" }, utils.formatCurrency(payment.amount)), index.h("td", { part: "table-cell" }, payment.description), index.h("td", { part: "table-cell" }, (_b = (_a = payment.payment_method) === null || _a === void 0 ? void 0 : _a.card) === null || _b === void 0 ? void 0 : _b.name), index.h("td", { part: "table-cell" }, (_d = (_c = payment.payment_method) === null || _c === void 0 ? void 0 : _c.card) === null || _d === void 0 ? void 0 : _d.acct_last_four), index.h("td", { part: "table-cell" }, payment.status), index.h("td", { part: "table-cell" }, payment.id));
90
+ })), this.paging &&
91
+ index.h("tfoot", { class: "sticky-bottom" }, index.h("tr", { class: "table-light align-middle" }, index.h("td", { part: "pagination-bar", colSpan: 7 }, this.paginationBar()))))));
4055
92
  }
4056
93
  static get watchers() { return {
4057
- "accountId": ["requestPropsChanged"],
4058
- "auth": ["requestPropsChanged"]
94
+ "accountId": ["updateOnPropChange"],
95
+ "authToken": ["updateOnPropChange"]
4059
96
  }; }
4060
97
  };
4061
98
  PaymentsList.style = paymentsListCss;