@justifi/webcomponents 4.13.0 → 4.15.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 (263) hide show
  1. package/dist/cjs/{Api-ab34a402.js → Api-3bc6e43f.js} +7 -2
  2. package/dist/cjs/{Payment-eceed10f.js → Payment-24f22eca.js} +2 -1
  3. package/dist/cjs/{SubAccount-b3902202.js → SubAccount-f1eda5da.js} +1 -1
  4. package/dist/cjs/additional-questions-details_5.cjs.entry.js +1 -1
  5. package/dist/cjs/business-additional-questions-schema-e7dd7bc3.js +57 -0
  6. package/dist/cjs/gross-payment-chart-core.cjs.entry.js +1 -1
  7. package/dist/cjs/{index.esm-d25bd7bf.js → index.esm-a32e1831.js} +727 -0
  8. package/dist/cjs/justifi-additional-questions-form-step_5.cjs.entry.js +20 -17
  9. package/dist/cjs/justifi-additional-questions_4.cjs.entry.js +4 -1
  10. package/dist/cjs/justifi-billing-form_2.cjs.entry.js +1796 -0
  11. package/dist/cjs/justifi-business-details.cjs.entry.js +2 -2
  12. package/dist/cjs/justifi-business-form.cjs.entry.js +8 -8
  13. package/dist/cjs/justifi-business-list.cjs.entry.js +4 -4
  14. package/dist/cjs/justifi-checkout-core.cjs.entry.js +7 -3
  15. package/dist/cjs/justifi-checkout.cjs.entry.js +12 -6
  16. package/dist/cjs/justifi-gross-payment-chart.cjs.entry.js +2 -2
  17. package/dist/cjs/justifi-new-payment-method_4.cjs.entry.js +13 -11
  18. package/dist/cjs/justifi-owner-form.cjs.entry.js +12 -8
  19. package/dist/cjs/justifi-payment-balance-transactions.cjs.entry.js +4 -4
  20. package/dist/cjs/justifi-payment-details.cjs.entry.js +3 -3
  21. package/dist/cjs/justifi-payment-form.cjs.entry.js +39 -5
  22. package/dist/cjs/justifi-payment-method-selector.cjs.entry.js +1 -1
  23. package/dist/cjs/justifi-payments-list.cjs.entry.js +3 -3
  24. package/dist/cjs/justifi-payout-details.cjs.entry.js +3 -3
  25. package/dist/cjs/justifi-payouts-list.cjs.entry.js +3 -3
  26. package/dist/cjs/justifi-proceeds-list.cjs.entry.js +4 -4
  27. package/dist/cjs/justifi-refund-form.cjs.entry.js +5 -6
  28. package/dist/cjs/justifi-subaccount-details.cjs.entry.js +6 -6
  29. package/dist/cjs/justifi-subaccounts-list.cjs.entry.js +5 -5
  30. package/dist/cjs/loader.cjs.js +1 -1
  31. package/dist/cjs/payload-parsers-c2df4b29.js +95 -0
  32. package/dist/cjs/payment-details-core.cjs.entry.js +1 -1
  33. package/dist/cjs/{payment.service-336189d3.js → payment.service-35298e95.js} +4 -4
  34. package/dist/cjs/payments-list-core.cjs.entry.js +2 -2
  35. package/dist/cjs/payout-details-core.cjs.entry.js +1 -1
  36. package/dist/cjs/{payout.service-6012d576.js → payout.service-eec372aa.js} +4 -4
  37. package/dist/cjs/payouts-list-core.cjs.entry.js +2 -2
  38. package/dist/cjs/{payload-parsers-6c4b5323.js → schema-validations-3c70335c.js} +15 -89
  39. package/dist/cjs/select-input.cjs.entry.js +31 -0
  40. package/dist/cjs/subaccount-account-details_4.cjs.entry.js +1 -1
  41. package/dist/cjs/text-input.cjs.entry.js +30 -0
  42. package/dist/cjs/{utils-6f62f7a1.js → utils-e58fe016.js} +0 -2
  43. package/dist/cjs/webcomponents.cjs.js +1 -1
  44. package/dist/collection/api/Api.js +7 -2
  45. package/dist/collection/api/Payment.js +2 -1
  46. package/dist/collection/api/services/business.service.js +1 -1
  47. package/dist/collection/api/services/checkout.service.js +5 -3
  48. package/dist/collection/api/services/payment.service.js +2 -2
  49. package/dist/collection/api/services/payout.service.js +2 -2
  50. package/dist/collection/api/services/reports.service.js +1 -1
  51. package/dist/collection/collection-manifest.json +1 -1
  52. package/dist/collection/components/billing-form/billing-form-schema.js +8 -8
  53. package/dist/collection/components/billing-form/billing-form.js +49 -89
  54. package/dist/collection/components/billing-form/test/billing-form.spec.js +2 -1
  55. package/dist/collection/components/business-forms/business-form/business-form.js +1 -1
  56. package/dist/collection/components/business-forms/business-form/business-representative/business-representative.js +4 -1
  57. package/dist/collection/components/business-forms/owner-form/owner-form.js +6 -2
  58. package/dist/collection/components/business-forms/payment-provisioning/additional-questions/business-additional-questions-form-step.js +1 -1
  59. package/dist/collection/components/business-forms/payment-provisioning/business-core-info/business-core-info-form-step.js +1 -1
  60. package/dist/collection/components/business-forms/payment-provisioning/business-owners/business-owners-form-step.js +1 -1
  61. package/dist/collection/components/business-forms/payment-provisioning/business-representative/business-representative-form-step.js +5 -2
  62. package/dist/collection/components/business-forms/payment-provisioning/legal-address-form/legal-address-form-step.js +1 -1
  63. package/dist/collection/components/business-forms/schemas/business-identity-schema.js +4 -2
  64. package/dist/collection/components/business-forms/schemas/schema-validations.js +5 -0
  65. package/dist/collection/components/business-list/business-list.js +1 -1
  66. package/dist/collection/components/checkout/checkout-core.js +74 -2
  67. package/dist/collection/components/checkout/checkout.js +73 -1
  68. package/dist/collection/components/checkout/payment-method-options.css +6 -6
  69. package/dist/collection/components/checkout/payment-method-options.js +42 -6
  70. package/dist/collection/components/checkout/{sezzel-payment-method.js → sezzle-payment-method.js} +2 -2
  71. package/dist/collection/components/checkout/test/checkout-core.spec.js +1 -1
  72. package/dist/collection/components/payment-balance-transactions/payment-balance-transactions.js +1 -1
  73. package/dist/collection/components/payment-form/payment-form.js +56 -6
  74. package/dist/collection/components/payment-form/payment-method-selector.js +1 -1
  75. package/dist/collection/components/payment-form/test/payment-form.spec.js +18 -35
  76. package/dist/collection/components/payment-method-form/payment-method-form.js +1 -1
  77. package/dist/collection/components/proceeds-list/proceeds-list.js +1 -1
  78. package/dist/collection/components/refund-form/refund-form.js +1 -1
  79. package/dist/collection/components/subaccount-details/subaccount-details.js +2 -2
  80. package/dist/collection/components/subaccounts-list/subaccounts-list.js +1 -1
  81. package/dist/docs.json +287 -81
  82. package/dist/esm/{Api-e9d568c7.js → Api-b09a2f6a.js} +7 -2
  83. package/dist/esm/{Payment-ef9fc1ae.js → Payment-3e94da9c.js} +2 -1
  84. package/dist/esm/{SubAccount-f4ae9809.js → SubAccount-80d46814.js} +1 -1
  85. package/dist/esm/additional-questions-details_5.entry.js +1 -1
  86. package/dist/esm/{business-additional-questions-schema-e96b0509.js → business-additional-questions-schema-1fdc5c40.js} +2 -2
  87. package/dist/esm/gross-payment-chart-core.entry.js +1 -1
  88. package/dist/esm/{index.esm-22b47398.js → index.esm-d98bc080.js} +727 -1
  89. package/dist/esm/justifi-additional-questions-form-step_5.entry.js +16 -13
  90. package/dist/esm/justifi-additional-questions_4.entry.js +4 -1
  91. package/dist/esm/justifi-billing-form_2.entry.js +1791 -0
  92. package/dist/esm/justifi-business-details.entry.js +2 -2
  93. package/dist/esm/justifi-business-form.entry.js +7 -7
  94. package/dist/esm/justifi-business-list.entry.js +4 -4
  95. package/dist/esm/justifi-checkout-core.entry.js +7 -3
  96. package/dist/esm/justifi-checkout.entry.js +12 -6
  97. package/dist/esm/justifi-gross-payment-chart.entry.js +2 -2
  98. package/dist/esm/justifi-new-payment-method_4.entry.js +13 -11
  99. package/dist/esm/justifi-owner-form.entry.js +11 -7
  100. package/dist/esm/justifi-payment-balance-transactions.entry.js +4 -4
  101. package/dist/esm/justifi-payment-details.entry.js +3 -3
  102. package/dist/esm/justifi-payment-form.entry.js +39 -5
  103. package/dist/esm/justifi-payment-method-selector.entry.js +1 -1
  104. package/dist/esm/justifi-payments-list.entry.js +3 -3
  105. package/dist/esm/justifi-payout-details.entry.js +3 -3
  106. package/dist/esm/justifi-payouts-list.entry.js +3 -3
  107. package/dist/esm/justifi-proceeds-list.entry.js +4 -4
  108. package/dist/esm/justifi-refund-form.entry.js +4 -5
  109. package/dist/esm/justifi-subaccount-details.entry.js +6 -6
  110. package/dist/esm/justifi-subaccounts-list.entry.js +5 -5
  111. package/dist/esm/loader.js +1 -1
  112. package/dist/esm/payload-parsers-fd35eeca.js +88 -0
  113. package/dist/esm/payment-details-core.entry.js +1 -1
  114. package/dist/esm/{payment.service-2fdc5018.js → payment.service-c62d82d3.js} +4 -4
  115. package/dist/esm/payments-list-core.entry.js +2 -2
  116. package/dist/esm/payout-details-core.entry.js +1 -1
  117. package/dist/esm/{payout.service-15064bcc.js → payout.service-28b9594f.js} +4 -4
  118. package/dist/esm/payouts-list-core.entry.js +2 -2
  119. package/dist/esm/{payload-parsers-32028700.js → schema-validations-31feaa53.js} +7 -84
  120. package/dist/{module/select-input2.js → esm/select-input.entry.js} +7 -30
  121. package/dist/esm/subaccount-account-details_4.entry.js +1 -1
  122. package/dist/{module/text-input2.js → esm/text-input.entry.js} +7 -29
  123. package/dist/esm/{utils-243abdb4.js → utils-37533368.js} +1 -2
  124. package/dist/esm/webcomponents.js +1 -1
  125. package/dist/module/Api.js +7 -2
  126. package/dist/module/Payment.js +2 -1
  127. package/dist/module/billing-form.js +41 -62
  128. package/dist/module/business-additional-questions-form-step.js +2 -2
  129. package/dist/module/business-additional-questions-schema.js +1 -1
  130. package/dist/module/business-address-schema.js +1 -1
  131. package/dist/module/business-core-info-form-step.js +2 -2
  132. package/dist/module/business-core-info-schema.js +1 -1
  133. package/dist/module/business-form-types.js +1 -154
  134. package/dist/module/business-identity-schema.js +5 -3
  135. package/dist/module/business-owners-form-step.js +1 -1
  136. package/dist/module/business-representative-form-step.js +6 -3
  137. package/dist/module/business-representative.js +4 -1
  138. package/dist/module/checkout-core.js +27 -19
  139. package/dist/module/identity-address-form.js +1 -1
  140. package/dist/module/index.esm.js +727 -1
  141. package/dist/module/justifi-business-details.js +2 -2
  142. package/dist/module/justifi-business-form.js +4 -5
  143. package/dist/module/justifi-business-list.js +1 -1
  144. package/dist/module/justifi-checkout.js +34 -24
  145. package/dist/module/justifi-gross-payment-chart.js +2 -2
  146. package/dist/module/justifi-payment-balance-transactions.js +1 -1
  147. package/dist/module/justifi-payment-details.js +1 -1
  148. package/dist/module/justifi-payment-form.js +50 -15
  149. package/dist/module/justifi-payment-provisioning.js +2 -2
  150. package/dist/module/justifi-payments-list.js +1 -1
  151. package/dist/module/justifi-payout-details.js +1 -1
  152. package/dist/module/justifi-payouts-list.js +1 -1
  153. package/dist/module/justifi-proceeds-list.js +1 -1
  154. package/dist/module/justifi-refund-form.js +2 -3
  155. package/dist/module/justifi-sezzle-payment-method.d.ts +11 -0
  156. package/dist/module/justifi-sezzle-payment-method.js +6 -0
  157. package/dist/module/justifi-subaccount-details.js +2 -2
  158. package/dist/module/justifi-subaccounts-list.js +1 -1
  159. package/dist/module/legal-address-form-step.js +3 -3
  160. package/dist/module/legal-address-form.js +1 -1
  161. package/dist/module/new-payment-method.js +9 -9
  162. package/dist/module/owner-form.js +9 -5
  163. package/dist/module/payment-method-form.js +1 -1
  164. package/dist/module/payment-method-options.js +26 -22
  165. package/dist/module/payment.service.js +2 -2
  166. package/dist/module/payout.service.js +2 -2
  167. package/dist/module/schema-validations.js +159 -0
  168. package/dist/module/select-input.js +48 -1
  169. package/dist/module/{sezzel-payment-method.js → sezzle-payment-method.js} +6 -6
  170. package/dist/module/text-input.js +46 -1
  171. package/dist/module/utils2.js +1 -2
  172. package/dist/module/utils3.js +12 -21
  173. package/dist/module/utils4.js +21 -12
  174. package/dist/types/api/Api.d.ts +5 -1
  175. package/dist/types/api/Payment.d.ts +2 -1
  176. package/dist/types/components/billing-form/billing-form.d.ts +8 -15
  177. package/dist/types/components/business-forms/business-form/business-representative/business-representative.d.ts +1 -0
  178. package/dist/types/components/business-forms/owner-form/owner-form.d.ts +1 -0
  179. package/dist/types/components/business-forms/payment-provisioning/business-representative/business-representative-form-step.d.ts +1 -0
  180. package/dist/types/components/business-forms/schemas/business-form-schema.d.ts +3 -1
  181. package/dist/types/components/business-forms/schemas/business-identity-schema.d.ts +2 -0
  182. package/dist/types/components/checkout/checkout-core.d.ts +4 -0
  183. package/dist/types/components/checkout/checkout.d.ts +4 -0
  184. package/dist/types/components/checkout/payment-method-options.d.ts +2 -0
  185. package/dist/types/components/checkout/{sezzel-payment-method.d.ts → sezzle-payment-method.d.ts} +1 -1
  186. package/dist/types/components/payment-form/payment-form.d.ts +7 -1
  187. package/dist/types/components.d.ts +38 -29
  188. package/dist/webcomponents/p-0603a526.entry.js +1 -0
  189. package/dist/webcomponents/{p-3917edbf.entry.js → p-09a6df17.entry.js} +1 -1
  190. package/dist/webcomponents/{p-7da249b8.entry.js → p-1367c4c7.entry.js} +1 -1
  191. package/dist/webcomponents/p-1b959678.entry.js +1 -0
  192. package/dist/webcomponents/{p-a6f170ba.entry.js → p-1f23c9d5.entry.js} +1 -1
  193. package/dist/webcomponents/p-21f301a0.entry.js +1 -0
  194. package/dist/webcomponents/p-243caf7c.entry.js +1 -0
  195. package/dist/webcomponents/{p-c6e207f6.entry.js → p-27ea1f3f.entry.js} +1 -1
  196. package/dist/webcomponents/{p-13e2f667.js → p-29c0b182.js} +1 -1
  197. package/dist/webcomponents/{p-28b38699.js → p-3cd675e7.js} +1 -1
  198. package/dist/webcomponents/p-3d70b0f1.entry.js +1 -0
  199. package/dist/webcomponents/{p-41bdee27.entry.js → p-55d37253.entry.js} +1 -1
  200. package/dist/webcomponents/{p-02b18979.entry.js → p-60ea8fd1.entry.js} +1 -1
  201. package/dist/webcomponents/p-624ed594.entry.js +1 -0
  202. package/dist/webcomponents/p-62bbcdfb.entry.js +1 -0
  203. package/dist/webcomponents/p-76e74f01.js +1 -0
  204. package/dist/webcomponents/p-7ca334d6.entry.js +1 -0
  205. package/dist/webcomponents/p-7d6c67bb.js +1 -0
  206. package/dist/webcomponents/{p-78b32fb9.entry.js → p-7ea5b11c.entry.js} +1 -1
  207. package/dist/webcomponents/p-83ae34bf.js +1 -0
  208. package/dist/webcomponents/p-84aea66c.entry.js +1 -0
  209. package/dist/webcomponents/p-8960e936.entry.js +1 -0
  210. package/dist/webcomponents/p-8d53f1de.entry.js +1 -0
  211. package/dist/webcomponents/p-969572f2.entry.js +1 -0
  212. package/dist/webcomponents/{p-fce2b224.entry.js → p-9a36fca6.entry.js} +1 -1
  213. package/dist/webcomponents/p-a38fdda7.entry.js +1 -0
  214. package/dist/webcomponents/{p-1334f776.entry.js → p-adc9ae0f.entry.js} +1 -1
  215. package/dist/webcomponents/p-b53d7b7f.js +1 -0
  216. package/dist/webcomponents/p-b8d70349.entry.js +1 -0
  217. package/dist/webcomponents/p-b9db1c52.entry.js +1 -0
  218. package/dist/webcomponents/p-ca39c89f.js +1 -0
  219. package/dist/webcomponents/p-d6b980a3.entry.js +1 -0
  220. package/dist/webcomponents/p-dd609661.js +1 -0
  221. package/dist/webcomponents/{p-9ba31a6a.entry.js → p-de4ffaa1.entry.js} +1 -1
  222. package/dist/webcomponents/{p-9f529959.entry.js → p-e1a3a670.entry.js} +1 -1
  223. package/dist/webcomponents/p-e4be71ee.entry.js +1 -0
  224. package/dist/webcomponents/p-e8706cc4.js +1 -0
  225. package/dist/webcomponents/{p-65510838.js → p-f4dec164.js} +1 -1
  226. package/dist/webcomponents/p-f942f90b.entry.js +1 -0
  227. package/dist/webcomponents/p-fea93cb9.entry.js +1 -0
  228. package/dist/webcomponents/{p-f76283a5.entry.js → p-fee64d38.entry.js} +1 -1
  229. package/dist/webcomponents/webcomponents.css +1 -1
  230. package/dist/webcomponents/webcomponents.esm.js +1 -1
  231. package/package.json +1 -1
  232. package/dist/cjs/business-additional-questions-schema-0a35f597.js +0 -57
  233. package/dist/cjs/form-2ad3d374.js +0 -729
  234. package/dist/cjs/justifi-billing-form_4.cjs.entry.js +0 -1864
  235. package/dist/esm/form-5279c05a.js +0 -727
  236. package/dist/esm/justifi-billing-form_4.entry.js +0 -1857
  237. package/dist/module/form.js +0 -727
  238. package/dist/module/justifi-sezzel-payment-method.d.ts +0 -11
  239. package/dist/module/justifi-sezzel-payment-method.js +0 -6
  240. package/dist/webcomponents/p-02fa533c.js +0 -1
  241. package/dist/webcomponents/p-101b2648.entry.js +0 -1
  242. package/dist/webcomponents/p-132ba228.js +0 -1
  243. package/dist/webcomponents/p-1885c478.entry.js +0 -1
  244. package/dist/webcomponents/p-23099f1f.entry.js +0 -1
  245. package/dist/webcomponents/p-230b96df.entry.js +0 -1
  246. package/dist/webcomponents/p-3da23f21.js +0 -1
  247. package/dist/webcomponents/p-4c84952f.entry.js +0 -1
  248. package/dist/webcomponents/p-64710363.entry.js +0 -1
  249. package/dist/webcomponents/p-731085e3.js +0 -1
  250. package/dist/webcomponents/p-7e334dce.entry.js +0 -1
  251. package/dist/webcomponents/p-7faacb1e.entry.js +0 -1
  252. package/dist/webcomponents/p-9b4b91ba.js +0 -1
  253. package/dist/webcomponents/p-a9af8f40.entry.js +0 -1
  254. package/dist/webcomponents/p-ade12f56.js +0 -1
  255. package/dist/webcomponents/p-b81afd51.entry.js +0 -1
  256. package/dist/webcomponents/p-bb58e656.entry.js +0 -1
  257. package/dist/webcomponents/p-bc12b8b9.js +0 -1
  258. package/dist/webcomponents/p-bfe7c55c.entry.js +0 -1
  259. package/dist/webcomponents/p-c1be3378.entry.js +0 -1
  260. package/dist/webcomponents/p-cb31488b.entry.js +0 -1
  261. package/dist/webcomponents/p-d0a8c631.entry.js +0 -1
  262. package/dist/webcomponents/p-d7d40d26.entry.js +0 -1
  263. package/dist/webcomponents/p-efbc8ffc.entry.js +0 -1
@@ -1,1857 +0,0 @@
1
- import { r as registerInstance, h, H as Host, c as createEvent } from './index-83dcf934.js';
2
- import { c as create$3, a as create$6 } from './index.esm-22b47398.js';
3
- import { R as RegExZip, n as composeQueryParams } from './utils-243abdb4.js';
4
- import { S as StateOptions } from './state-options-a356fb11.js';
5
-
6
- const BillingFormSchema = create$3({
7
- name: create$6().required('Enter name'),
8
- address_line1: create$6().required('Enter street address'),
9
- address_line2: create$6(),
10
- address_city: create$6().required('Enter city'),
11
- address_state: create$6().required('Choose state'),
12
- address_postal_code: create$6().required('Enter ZIP').matches(RegExZip, 'Enter a valid ZIP').min(5, 'Enter a valid ZIP'),
13
- });
14
-
15
- const billingFormCss = ":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-color:#212529;--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-highlight-color:#dee2e6;--bs-highlight-bg:#664d03;--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;color:var(--bs-highlight-color);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}: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.33333333%}.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.66666667%}.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.33333333%}.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.66666667%}.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.33333333%}.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.66666667%}.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.33333333%}.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.66666667%}.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.33333333%}.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.66666667%}.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.33333333%}.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.66666667%}.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}}: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;display:block}justifi-billing-form{margin-left:calc(var(--jfi-layout-padding) * -1);margin-right:calc(var(--jfi-layout-padding) * -1)}*::part(label){color:var(--jfi-form-label-color);font-family:var(--jfi-form-label-font-family);font-weight:var(--jfi-form-label-font-weight);font-size:var(--jfi-form-label-font-size);margin:var(--jfi-form-label-margin)}*::part(input){background-color:var(--jfi-form-control-background-color);border-color:var(--jfi-form-control-border-color);border-width:var(--jfi-form-control-border-width);border-bottom-width:var(--jfi-form-control-border-bottom-width);border-left-width:var(--jfi-form-control-border-left-width);border-right-width:var(--jfi-form-control-border-right-width);border-top-width:var(--jfi-form-control-border-top-width);border-radius:var(--jfi-form-control-border-radius);border-style:var(--jfi-form-control-border-style);box-shadow:var(--jfi-form-control-box-shadow);color:var(--jfi-form-control-color);font-size:var(--jfi-form-control-font-size);font-weight:var(--jfi-form-control-font-weight);line-height:var(--jfi-form-control-line-height);margin:var(--jfi-form-control-margin);padding:var(--jfi-form-control-padding)}*::part(input):focus{color:var(--jfi-form-control-color-focus);border-color:var(--jfi-form-control-border-color-focus);box-shadow:var(--jfi-form-control-box-shadow-focus)}*::part(input-invalid){border-color:var(--jfi-form-control-border-color-error);box-shadow:var(--jfi-form-control-box-shadow-error)}*::part(input-invalid):focus{border-color:var(--jfi-form-control-border-color-error);box-shadow:var(--jfi-form-control-box-shadow-error-focus)}";
16
-
17
- const BillingForm = class {
18
- constructor(hostRef) {
19
- registerInstance(this, hostRef);
20
- this.legend = undefined;
21
- this.billingFields = {
22
- name: '',
23
- address_line1: '',
24
- address_line2: '',
25
- address_city: '',
26
- address_state: '',
27
- address_postal_code: '',
28
- };
29
- this.billingFieldsErrors = {};
30
- }
31
- setFormValue(event) {
32
- const data = event.detail;
33
- const billingFieldsClone = Object.assign({}, this.billingFields);
34
- if (data.name) {
35
- billingFieldsClone[data.name] = data.value;
36
- this.billingFields = billingFieldsClone;
37
- }
38
- }
39
- /**
40
- * Method for filling the form with provided data
41
- * @argument {BillingFormFields} fields - The fields to fill the form with
42
- */
43
- async fill(fields) {
44
- this.billingFields = Object.assign({}, fields);
45
- }
46
- /**
47
- * Run validation on the form
48
- */
49
- async validate() {
50
- const newErrors = {};
51
- let isValid = true;
52
- try {
53
- await BillingFormSchema.validate(this.billingFields, { abortEarly: false });
54
- }
55
- catch (err) {
56
- isValid = false;
57
- err.inner.map((item) => {
58
- newErrors[item.path] = item.message;
59
- });
60
- }
61
- this.billingFieldsErrors = newErrors;
62
- return { isValid: isValid };
63
- }
64
- /**
65
- * Returns the values of the form as an object
66
- * @returns {Promise<BillingFormFields>} The values of the form
67
- */
68
- async getValues() {
69
- return this.billingFields;
70
- }
71
- render() {
72
- return (h(Host, { exportparts: "label,input,input-invalid" }, h("fieldset", null, this.legend && h("legend", null, this.legend), h("div", { class: "row gy-3" }, h("div", { class: "col-12" }, h("text-input", { name: "name", label: "Full Name", defaultValue: this.billingFields.name, error: this.billingFieldsErrors.name })), h("div", { class: "col-12" }, h("text-input", { name: "address_line1", label: "Street Address", defaultValue: this.billingFields.address_line1, error: this.billingFieldsErrors.address_line1 })), h("div", { class: "col-12" }, h("text-input", { name: "address_line2", label: "Apartment, Suite, etc. (optional)", defaultValue: this.billingFields.address_line2, error: this.billingFieldsErrors.address_line2 })), h("div", { class: "col-12" }, h("text-input", { name: "address_city", label: "City", defaultValue: this.billingFields.address_city, error: this.billingFieldsErrors.address_city })), h("div", { class: "col-12" }, h("select-input", { name: "address_state", label: "State", options: StateOptions, defaultValue: this.billingFields.address_state, error: this.billingFieldsErrors.address_state })), h("div", { class: "col-12" }, h("text-input", { name: "address_postal_code", label: "ZIP", defaultValue: this.billingFields.address_postal_code, error: this.billingFieldsErrors.address_postal_code }))))));
73
- }
74
- };
75
- BillingForm.style = billingFormCss;
76
-
77
- function createCommonjsModule(fn, basedir, module) {
78
- return module = {
79
- path: basedir,
80
- exports: {},
81
- require: function (path, base) {
82
- return commonjsRequire();
83
- }
84
- }, fn(module, module.exports), module.exports;
85
- }
86
-
87
- function commonjsRequire () {
88
- throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');
89
- }
90
-
91
- var iframeResizer = createCommonjsModule(function (module) {
92
- (function (undefined$1) {
93
- if (typeof window === 'undefined') return // don't run for server side render
94
-
95
- var count = 0,
96
- logEnabled = false,
97
- hiddenCheckEnabled = false,
98
- msgHeader = 'message',
99
- msgHeaderLen = msgHeader.length,
100
- msgId = '[iFrameSizer]', // Must match iframe msg ID
101
- msgIdLen = msgId.length,
102
- pagePosition = null,
103
- requestAnimationFrame = window.requestAnimationFrame,
104
- resetRequiredMethods = Object.freeze({
105
- max: 1,
106
- scroll: 1,
107
- bodyScroll: 1,
108
- documentElementScroll: 1
109
- }),
110
- settings = {},
111
- timer = null,
112
- defaults = Object.freeze({
113
- autoResize: true,
114
- bodyBackground: null,
115
- bodyMargin: null,
116
- bodyMarginV1: 8,
117
- bodyPadding: null,
118
- checkOrigin: true,
119
- inPageLinks: false,
120
- enablePublicMethods: true,
121
- heightCalculationMethod: 'bodyOffset',
122
- id: 'iFrameResizer',
123
- interval: 32,
124
- log: false,
125
- maxHeight: Infinity,
126
- maxWidth: Infinity,
127
- minHeight: 0,
128
- minWidth: 0,
129
- mouseEvents: true,
130
- resizeFrom: 'parent',
131
- scrolling: false,
132
- sizeHeight: true,
133
- sizeWidth: false,
134
- warningTimeout: 5000,
135
- tolerance: 0,
136
- widthCalculationMethod: 'scroll',
137
- onClose: function () {
138
- return true
139
- },
140
- onClosed: function () {},
141
- onInit: function () {},
142
- onMessage: function () {
143
- warn('onMessage function not defined');
144
- },
145
- onMouseEnter: function () {},
146
- onMouseLeave: function () {},
147
- onResized: function () {},
148
- onScroll: function () {
149
- return true
150
- }
151
- });
152
-
153
- function getMutationObserver() {
154
- return (
155
- window.MutationObserver ||
156
- window.WebKitMutationObserver ||
157
- window.MozMutationObserver
158
- )
159
- }
160
-
161
- function addEventListener(el, evt, func) {
162
- el.addEventListener(evt, func, false);
163
- }
164
-
165
- function removeEventListener(el, evt, func) {
166
- el.removeEventListener(evt, func, false);
167
- }
168
-
169
- function setupRequestAnimationFrame() {
170
- var vendors = ['moz', 'webkit', 'o', 'ms'];
171
- var x;
172
-
173
- // Remove vendor prefixing if prefixed and break early if not
174
- for (x = 0; x < vendors.length && !requestAnimationFrame; x += 1) {
175
- requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];
176
- }
177
-
178
- if (requestAnimationFrame) {
179
- // Firefox extension content-scripts have a globalThis object that is not the same as window.
180
- // Binding `requestAnimationFrame` to window allows the function to work and prevents errors
181
- // being thrown when run in that context, and should be a no-op in every other context.
182
- requestAnimationFrame = requestAnimationFrame.bind(window);
183
- } else {
184
- log('setup', 'RequestAnimationFrame not supported');
185
- }
186
- }
187
-
188
- function getMyID(iframeId) {
189
- var retStr = 'Host page: ' + iframeId;
190
-
191
- if (window.top !== window.self) {
192
- retStr =
193
- window.parentIFrame && window.parentIFrame.getId
194
- ? window.parentIFrame.getId() + ': ' + iframeId
195
- : 'Nested host page: ' + iframeId;
196
- }
197
-
198
- return retStr
199
- }
200
-
201
- function formatLogHeader(iframeId) {
202
- return msgId + '[' + getMyID(iframeId) + ']'
203
- }
204
-
205
- function isLogEnabled(iframeId) {
206
- return settings[iframeId] ? settings[iframeId].log : logEnabled
207
- }
208
-
209
- function log(iframeId, msg) {
210
- output('log', iframeId, msg, isLogEnabled(iframeId));
211
- }
212
-
213
- function info(iframeId, msg) {
214
- output('info', iframeId, msg, isLogEnabled(iframeId));
215
- }
216
-
217
- function warn(iframeId, msg) {
218
- output('warn', iframeId, msg, true);
219
- }
220
-
221
- function output(type, iframeId, msg, enabled) {
222
- if (true === enabled && 'object' === typeof window.console) {
223
- // eslint-disable-next-line no-console
224
- console[type](formatLogHeader(iframeId), msg);
225
- }
226
- }
227
-
228
- function iFrameListener(event) {
229
- function resizeIFrame() {
230
- function resize() {
231
- setSize(messageData);
232
- setPagePosition(iframeId);
233
- on('onResized', messageData);
234
- }
235
-
236
- ensureInRange('Height');
237
- ensureInRange('Width');
238
-
239
- syncResize(resize, messageData, 'init');
240
- }
241
-
242
- function processMsg() {
243
- var data = msg.slice(msgIdLen).split(':');
244
- var height = data[1] ? parseInt(data[1], 10) : 0;
245
- var iframe = settings[data[0]] && settings[data[0]].iframe;
246
- var compStyle = getComputedStyle(iframe);
247
-
248
- return {
249
- iframe: iframe,
250
- id: data[0],
251
- height: height + getPaddingEnds(compStyle) + getBorderEnds(compStyle),
252
- width: data[2],
253
- type: data[3]
254
- }
255
- }
256
-
257
- function getPaddingEnds(compStyle) {
258
- if (compStyle.boxSizing !== 'border-box') {
259
- return 0
260
- }
261
- var top = compStyle.paddingTop ? parseInt(compStyle.paddingTop, 10) : 0;
262
- var bot = compStyle.paddingBottom
263
- ? parseInt(compStyle.paddingBottom, 10)
264
- : 0;
265
- return top + bot
266
- }
267
-
268
- function getBorderEnds(compStyle) {
269
- if (compStyle.boxSizing !== 'border-box') {
270
- return 0
271
- }
272
- var top = compStyle.borderTopWidth
273
- ? parseInt(compStyle.borderTopWidth, 10)
274
- : 0;
275
- var bot = compStyle.borderBottomWidth
276
- ? parseInt(compStyle.borderBottomWidth, 10)
277
- : 0;
278
- return top + bot
279
- }
280
-
281
- function ensureInRange(Dimension) {
282
- var max = Number(settings[iframeId]['max' + Dimension]),
283
- min = Number(settings[iframeId]['min' + Dimension]),
284
- dimension = Dimension.toLowerCase(),
285
- size = Number(messageData[dimension]);
286
-
287
- log(iframeId, 'Checking ' + dimension + ' is in range ' + min + '-' + max);
288
-
289
- if (size < min) {
290
- size = min;
291
- log(iframeId, 'Set ' + dimension + ' to min value');
292
- }
293
-
294
- if (size > max) {
295
- size = max;
296
- log(iframeId, 'Set ' + dimension + ' to max value');
297
- }
298
-
299
- messageData[dimension] = '' + size;
300
- }
301
-
302
- function isMessageFromIFrame() {
303
- function checkAllowedOrigin() {
304
- function checkList() {
305
- var i = 0,
306
- retCode = false;
307
-
308
- log(
309
- iframeId,
310
- 'Checking connection is from allowed list of origins: ' +
311
- checkOrigin
312
- );
313
-
314
- for (; i < checkOrigin.length; i++) {
315
- if (checkOrigin[i] === origin) {
316
- retCode = true;
317
- break
318
- }
319
- }
320
- return retCode
321
- }
322
-
323
- function checkSingle() {
324
- var remoteHost = settings[iframeId] && settings[iframeId].remoteHost;
325
- log(iframeId, 'Checking connection is from: ' + remoteHost);
326
- return origin === remoteHost
327
- }
328
-
329
- return checkOrigin.constructor === Array ? checkList() : checkSingle()
330
- }
331
-
332
- var origin = event.origin,
333
- checkOrigin = settings[iframeId] && settings[iframeId].checkOrigin;
334
-
335
- if (checkOrigin && '' + origin !== 'null' && !checkAllowedOrigin()) {
336
- throw new Error(
337
- 'Unexpected message received from: ' +
338
- origin +
339
- ' for ' +
340
- messageData.iframe.id +
341
- '. Message was: ' +
342
- event.data +
343
- '. This error can be disabled by setting the checkOrigin: false option or by providing of array of trusted domains.'
344
- )
345
- }
346
-
347
- return true
348
- }
349
-
350
- function isMessageForUs() {
351
- return (
352
- msgId === ('' + msg).slice(0, msgIdLen) &&
353
- msg.slice(msgIdLen).split(':')[0] in settings
354
- ) // ''+Protects against non-string msg
355
- }
356
-
357
- function isMessageFromMetaParent() {
358
- // Test if this message is from a parent above us. This is an ugly test, however, updating
359
- // the message format would break backwards compatibility.
360
- var retCode = messageData.type in { true: 1, false: 1, undefined: 1 };
361
-
362
- if (retCode) {
363
- log(iframeId, 'Ignoring init message from meta parent page');
364
- }
365
-
366
- return retCode
367
- }
368
-
369
- function getMsgBody(offset) {
370
- return msg.slice(msg.indexOf(':') + msgHeaderLen + offset)
371
- }
372
-
373
- function forwardMsgFromIFrame(msgBody) {
374
- log(
375
- iframeId,
376
- 'onMessage passed: {iframe: ' +
377
- messageData.iframe.id +
378
- ', message: ' +
379
- msgBody +
380
- '}'
381
- );
382
-
383
- on('onMessage', {
384
- iframe: messageData.iframe,
385
- message: JSON.parse(msgBody)
386
- });
387
-
388
- log(iframeId, '--');
389
- }
390
-
391
- function getPageInfo() {
392
- var bodyPosition = document.body.getBoundingClientRect(),
393
- iFramePosition = messageData.iframe.getBoundingClientRect();
394
-
395
- return JSON.stringify({
396
- iframeHeight: iFramePosition.height,
397
- iframeWidth: iFramePosition.width,
398
- clientHeight: Math.max(
399
- document.documentElement.clientHeight,
400
- window.innerHeight || 0
401
- ),
402
- clientWidth: Math.max(
403
- document.documentElement.clientWidth,
404
- window.innerWidth || 0
405
- ),
406
- offsetTop: parseInt(iFramePosition.top - bodyPosition.top, 10),
407
- offsetLeft: parseInt(iFramePosition.left - bodyPosition.left, 10),
408
- scrollTop: window.pageYOffset,
409
- scrollLeft: window.pageXOffset,
410
- documentHeight: document.documentElement.clientHeight,
411
- documentWidth: document.documentElement.clientWidth,
412
- windowHeight: window.innerHeight,
413
- windowWidth: window.innerWidth
414
- })
415
- }
416
-
417
- function sendPageInfoToIframe(iframe, iframeId) {
418
- function debouncedTrigger() {
419
- trigger('Send Page Info', 'pageInfo:' + getPageInfo(), iframe, iframeId);
420
- }
421
- debounceFrameEvents(debouncedTrigger, 32, iframeId);
422
- }
423
-
424
- function startPageInfoMonitor() {
425
- function setListener(type, func) {
426
- function sendPageInfo() {
427
- if (settings[id]) {
428
- sendPageInfoToIframe(settings[id].iframe, id);
429
- } else {
430
- stop();
431
- }
432
- }
433
- ['scroll', 'resize'].forEach(function (evt) {
434
- log(id, type + evt + ' listener for sendPageInfo');
435
- func(window, evt, sendPageInfo);
436
- });
437
- }
438
-
439
- function stop() {
440
- setListener('Remove ', removeEventListener);
441
- }
442
-
443
- function start() {
444
- setListener('Add ', addEventListener);
445
- }
446
-
447
- var id = iframeId; // Create locally scoped copy of iFrame ID
448
-
449
- start();
450
-
451
- if (settings[id]) {
452
- settings[id].stopPageInfo = stop;
453
- }
454
- }
455
-
456
- function stopPageInfoMonitor() {
457
- if (settings[iframeId] && settings[iframeId].stopPageInfo) {
458
- settings[iframeId].stopPageInfo();
459
- delete settings[iframeId].stopPageInfo;
460
- }
461
- }
462
-
463
- function checkIFrameExists() {
464
- var retBool = true;
465
-
466
- if (null === messageData.iframe) {
467
- warn(iframeId, 'IFrame (' + messageData.id + ') not found');
468
- retBool = false;
469
- }
470
- return retBool
471
- }
472
-
473
- function getElementPosition(target) {
474
- var iFramePosition = target.getBoundingClientRect();
475
-
476
- getPagePosition(iframeId);
477
-
478
- return {
479
- x: Math.floor(Number(iFramePosition.left) + Number(pagePosition.x)),
480
- y: Math.floor(Number(iFramePosition.top) + Number(pagePosition.y))
481
- }
482
- }
483
-
484
- function scrollRequestFromChild(addOffset) {
485
- /* istanbul ignore next */ // Not testable in Karma
486
- function reposition() {
487
- pagePosition = newPosition;
488
- scrollTo();
489
- log(iframeId, '--');
490
- }
491
-
492
- function calcOffset() {
493
- return {
494
- x: Number(messageData.width) + offset.x,
495
- y: Number(messageData.height) + offset.y
496
- }
497
- }
498
-
499
- function scrollParent() {
500
- if (window.parentIFrame) {
501
- window.parentIFrame['scrollTo' + (addOffset ? 'Offset' : '')](
502
- newPosition.x,
503
- newPosition.y
504
- );
505
- } else {
506
- warn(
507
- iframeId,
508
- 'Unable to scroll to requested position, window.parentIFrame not found'
509
- );
510
- }
511
- }
512
-
513
- var offset = addOffset
514
- ? getElementPosition(messageData.iframe)
515
- : { x: 0, y: 0 },
516
- newPosition = calcOffset();
517
-
518
- log(
519
- iframeId,
520
- 'Reposition requested from iFrame (offset x:' +
521
- offset.x +
522
- ' y:' +
523
- offset.y +
524
- ')'
525
- );
526
-
527
- if (window.top === window.self) {
528
- reposition();
529
- } else {
530
- scrollParent();
531
- }
532
- }
533
-
534
- function scrollTo() {
535
- if (false === on('onScroll', pagePosition)) {
536
- unsetPagePosition();
537
- } else {
538
- setPagePosition(iframeId);
539
- }
540
- }
541
-
542
- function findTarget(location) {
543
- function jumpToTarget() {
544
- var jumpPosition = getElementPosition(target);
545
-
546
- log(
547
- iframeId,
548
- 'Moving to in page link (#' +
549
- hash +
550
- ') at x: ' +
551
- jumpPosition.x +
552
- ' y: ' +
553
- jumpPosition.y
554
- );
555
- pagePosition = {
556
- x: jumpPosition.x,
557
- y: jumpPosition.y
558
- };
559
-
560
- scrollTo();
561
- log(iframeId, '--');
562
- }
563
-
564
- function jumpToParent() {
565
- if (window.parentIFrame) {
566
- window.parentIFrame.moveToAnchor(hash);
567
- } else {
568
- log(
569
- iframeId,
570
- 'In page link #' +
571
- hash +
572
- ' not found and window.parentIFrame not found'
573
- );
574
- }
575
- }
576
-
577
- var hash = location.split('#')[1] || '',
578
- hashData = decodeURIComponent(hash),
579
- target =
580
- document.getElementById(hashData) ||
581
- document.getElementsByName(hashData)[0];
582
-
583
- if (target) {
584
- jumpToTarget();
585
- } else if (window.top === window.self) {
586
- log(iframeId, 'In page link #' + hash + ' not found');
587
- } else {
588
- jumpToParent();
589
- }
590
- }
591
-
592
- function onMouse(event) {
593
- var mousePos = {};
594
-
595
- if (Number(messageData.width) === 0 && Number(messageData.height) === 0) {
596
- var data = getMsgBody(9).split(':');
597
- mousePos = {
598
- x: data[1],
599
- y: data[0]
600
- };
601
- } else {
602
- mousePos = {
603
- x: messageData.width,
604
- y: messageData.height
605
- };
606
- }
607
-
608
- on(event, {
609
- iframe: messageData.iframe,
610
- screenX: Number(mousePos.x),
611
- screenY: Number(mousePos.y),
612
- type: messageData.type
613
- });
614
- }
615
-
616
- function on(funcName, val) {
617
- return chkEvent(iframeId, funcName, val)
618
- }
619
-
620
- function actionMsg() {
621
- if (settings[iframeId] && settings[iframeId].firstRun) firstRun();
622
-
623
- switch (messageData.type) {
624
- case 'close': {
625
- closeIFrame(messageData.iframe);
626
- break
627
- }
628
-
629
- case 'message': {
630
- forwardMsgFromIFrame(getMsgBody(6));
631
- break
632
- }
633
-
634
- case 'mouseenter': {
635
- onMouse('onMouseEnter');
636
- break
637
- }
638
-
639
- case 'mouseleave': {
640
- onMouse('onMouseLeave');
641
- break
642
- }
643
-
644
- case 'autoResize': {
645
- settings[iframeId].autoResize = JSON.parse(getMsgBody(9));
646
- break
647
- }
648
-
649
- case 'scrollTo': {
650
- scrollRequestFromChild(false);
651
- break
652
- }
653
-
654
- case 'scrollToOffset': {
655
- scrollRequestFromChild(true);
656
- break
657
- }
658
-
659
- case 'pageInfo': {
660
- sendPageInfoToIframe(
661
- settings[iframeId] && settings[iframeId].iframe,
662
- iframeId
663
- );
664
- startPageInfoMonitor();
665
- break
666
- }
667
-
668
- case 'pageInfoStop': {
669
- stopPageInfoMonitor();
670
- break
671
- }
672
-
673
- case 'inPageLink': {
674
- findTarget(getMsgBody(9));
675
- break
676
- }
677
-
678
- case 'reset': {
679
- resetIFrame(messageData);
680
- break
681
- }
682
-
683
- case 'init': {
684
- resizeIFrame();
685
- on('onInit', messageData.iframe);
686
- break
687
- }
688
-
689
- default: {
690
- if (
691
- Number(messageData.width) === 0 &&
692
- Number(messageData.height) === 0
693
- ) {
694
- warn(
695
- 'Unsupported message received (' +
696
- messageData.type +
697
- '), this is likely due to the iframe containing a later ' +
698
- 'version of iframe-resizer than the parent page'
699
- );
700
- } else {
701
- resizeIFrame();
702
- }
703
- }
704
- }
705
- }
706
-
707
- function hasSettings(iframeId) {
708
- var retBool = true;
709
-
710
- if (!settings[iframeId]) {
711
- retBool = false;
712
- warn(
713
- messageData.type +
714
- ' No settings for ' +
715
- iframeId +
716
- '. Message was: ' +
717
- msg
718
- );
719
- }
720
-
721
- return retBool
722
- }
723
-
724
- function iFrameReadyMsgReceived() {
725
- // eslint-disable-next-line no-restricted-syntax, guard-for-in
726
- for (var iframeId in settings) {
727
- trigger(
728
- 'iFrame requested init',
729
- createOutgoingMsg(iframeId),
730
- settings[iframeId].iframe,
731
- iframeId
732
- );
733
- }
734
- }
735
-
736
- function firstRun() {
737
- if (settings[iframeId]) {
738
- settings[iframeId].firstRun = false;
739
- }
740
- }
741
-
742
- var msg = event.data,
743
- messageData = {},
744
- iframeId = null;
745
-
746
- if ('[iFrameResizerChild]Ready' === msg) {
747
- iFrameReadyMsgReceived();
748
- } else if (isMessageForUs()) {
749
- messageData = processMsg();
750
- iframeId = messageData.id;
751
- if (settings[iframeId]) {
752
- settings[iframeId].loaded = true;
753
- }
754
-
755
- if (!isMessageFromMetaParent() && hasSettings(iframeId)) {
756
- log(iframeId, 'Received: ' + msg);
757
-
758
- if (checkIFrameExists() && isMessageFromIFrame()) {
759
- actionMsg();
760
- }
761
- }
762
- } else {
763
- info(iframeId, 'Ignored: ' + msg);
764
- }
765
- }
766
-
767
- function chkEvent(iframeId, funcName, val) {
768
- var func = null,
769
- retVal = null;
770
-
771
- if (settings[iframeId]) {
772
- func = settings[iframeId][funcName];
773
-
774
- if ('function' === typeof func) {
775
- retVal = func(val);
776
- } else {
777
- throw new TypeError(
778
- funcName + ' on iFrame[' + iframeId + '] is not a function'
779
- )
780
- }
781
- }
782
-
783
- return retVal
784
- }
785
-
786
- function removeIframeListeners(iframe) {
787
- var iframeId = iframe.id;
788
- delete settings[iframeId];
789
- }
790
-
791
- function closeIFrame(iframe) {
792
- var iframeId = iframe.id;
793
- if (chkEvent(iframeId, 'onClose', iframeId) === false) {
794
- log(iframeId, 'Close iframe cancelled by onClose event');
795
- return
796
- }
797
- log(iframeId, 'Removing iFrame: ' + iframeId);
798
-
799
- try {
800
- // Catch race condition error with React
801
- if (iframe.parentNode) {
802
- iframe.parentNode.removeChild(iframe);
803
- }
804
- } catch (error) {
805
- warn(error);
806
- }
807
-
808
- chkEvent(iframeId, 'onClosed', iframeId);
809
- log(iframeId, '--');
810
- removeIframeListeners(iframe);
811
- }
812
-
813
- function getPagePosition(iframeId) {
814
- if (null === pagePosition) {
815
- pagePosition = {
816
- x:
817
- window.pageXOffset === undefined$1
818
- ? document.documentElement.scrollLeft
819
- : window.pageXOffset,
820
- y:
821
- window.pageYOffset === undefined$1
822
- ? document.documentElement.scrollTop
823
- : window.pageYOffset
824
- };
825
- log(
826
- iframeId,
827
- 'Get page position: ' + pagePosition.x + ',' + pagePosition.y
828
- );
829
- }
830
- }
831
-
832
- function setPagePosition(iframeId) {
833
- if (null !== pagePosition) {
834
- window.scrollTo(pagePosition.x, pagePosition.y);
835
- log(
836
- iframeId,
837
- 'Set page position: ' + pagePosition.x + ',' + pagePosition.y
838
- );
839
- unsetPagePosition();
840
- }
841
- }
842
-
843
- function unsetPagePosition() {
844
- pagePosition = null;
845
- }
846
-
847
- function resetIFrame(messageData) {
848
- function reset() {
849
- setSize(messageData);
850
- trigger('reset', 'reset', messageData.iframe, messageData.id);
851
- }
852
-
853
- log(
854
- messageData.id,
855
- 'Size reset requested by ' +
856
- ('init' === messageData.type ? 'host page' : 'iFrame')
857
- );
858
- getPagePosition(messageData.id);
859
- syncResize(reset, messageData, 'reset');
860
- }
861
-
862
- function setSize(messageData) {
863
- function setDimension(dimension) {
864
- if (!messageData.id) {
865
- log('undefined', 'messageData id not set');
866
- return
867
- }
868
- messageData.iframe.style[dimension] = messageData[dimension] + 'px';
869
- log(
870
- messageData.id,
871
- 'IFrame (' +
872
- iframeId +
873
- ') ' +
874
- dimension +
875
- ' set to ' +
876
- messageData[dimension] +
877
- 'px'
878
- );
879
- }
880
-
881
- function chkZero(dimension) {
882
- // FireFox sets dimension of hidden iFrames to zero.
883
- // So if we detect that set up an event to check for
884
- // when iFrame becomes visible.
885
-
886
- /* istanbul ignore next */ // Not testable in PhantomJS
887
- if (!hiddenCheckEnabled && '0' === messageData[dimension]) {
888
- hiddenCheckEnabled = true;
889
- log(iframeId, 'Hidden iFrame detected, creating visibility listener');
890
- fixHiddenIFrames();
891
- }
892
- }
893
-
894
- function processDimension(dimension) {
895
- setDimension(dimension);
896
- chkZero(dimension);
897
- }
898
-
899
- var iframeId = messageData.iframe.id;
900
-
901
- if (settings[iframeId]) {
902
- if (settings[iframeId].sizeHeight) {
903
- processDimension('height');
904
- }
905
- if (settings[iframeId].sizeWidth) {
906
- processDimension('width');
907
- }
908
- }
909
- }
910
-
911
- function syncResize(func, messageData, doNotSync) {
912
- /* istanbul ignore if */ // Not testable in PhantomJS
913
- if (
914
- doNotSync !== messageData.type &&
915
- requestAnimationFrame &&
916
- // including check for jasmine because had trouble getting spy to work in unit test using requestAnimationFrame
917
- !window.jasmine
918
- ) {
919
- log(messageData.id, 'Requesting animation frame');
920
- requestAnimationFrame(func);
921
- } else {
922
- func();
923
- }
924
- }
925
-
926
- function trigger(calleeMsg, msg, iframe, id, noResponseWarning) {
927
- function postMessageToIFrame() {
928
- var target = settings[id] && settings[id].targetOrigin;
929
- log(
930
- id,
931
- '[' +
932
- calleeMsg +
933
- '] Sending msg to iframe[' +
934
- id +
935
- '] (' +
936
- msg +
937
- ') targetOrigin: ' +
938
- target
939
- );
940
- iframe.contentWindow.postMessage(msgId + msg, target);
941
- }
942
-
943
- function iFrameNotFound() {
944
- warn(id, '[' + calleeMsg + '] IFrame(' + id + ') not found');
945
- }
946
-
947
- function chkAndSend() {
948
- if (
949
- iframe &&
950
- 'contentWindow' in iframe &&
951
- null !== iframe.contentWindow
952
- ) {
953
- // Null test for PhantomJS
954
- postMessageToIFrame();
955
- } else {
956
- iFrameNotFound();
957
- }
958
- }
959
-
960
- function warnOnNoResponse() {
961
- function warning() {
962
- if (settings[id] && !settings[id].loaded && !errorShown) {
963
- errorShown = true;
964
- warn(
965
- id,
966
- 'IFrame has not responded within ' +
967
- settings[id].warningTimeout / 1000 +
968
- ' seconds. Check iFrameResizer.contentWindow.js has been loaded in iFrame. This message can be ignored if everything is working, or you can set the warningTimeout option to a higher value or zero to suppress this warning.'
969
- );
970
- }
971
- }
972
-
973
- if (
974
- !!noResponseWarning &&
975
- settings[id] &&
976
- !!settings[id].warningTimeout
977
- ) {
978
- settings[id].msgTimeout = setTimeout(
979
- warning,
980
- settings[id].warningTimeout
981
- );
982
- }
983
- }
984
-
985
- var errorShown = false;
986
-
987
- id = id || iframe.id;
988
-
989
- if (settings[id]) {
990
- chkAndSend();
991
- warnOnNoResponse();
992
- }
993
- }
994
-
995
- function createOutgoingMsg(iframeId) {
996
- return (
997
- iframeId +
998
- ':' +
999
- settings[iframeId].bodyMarginV1 +
1000
- ':' +
1001
- settings[iframeId].sizeWidth +
1002
- ':' +
1003
- settings[iframeId].log +
1004
- ':' +
1005
- settings[iframeId].interval +
1006
- ':' +
1007
- settings[iframeId].enablePublicMethods +
1008
- ':' +
1009
- settings[iframeId].autoResize +
1010
- ':' +
1011
- settings[iframeId].bodyMargin +
1012
- ':' +
1013
- settings[iframeId].heightCalculationMethod +
1014
- ':' +
1015
- settings[iframeId].bodyBackground +
1016
- ':' +
1017
- settings[iframeId].bodyPadding +
1018
- ':' +
1019
- settings[iframeId].tolerance +
1020
- ':' +
1021
- settings[iframeId].inPageLinks +
1022
- ':' +
1023
- settings[iframeId].resizeFrom +
1024
- ':' +
1025
- settings[iframeId].widthCalculationMethod +
1026
- ':' +
1027
- settings[iframeId].mouseEvents
1028
- )
1029
- }
1030
-
1031
- function isNumber(value) {
1032
- return typeof value === 'number'
1033
- }
1034
-
1035
- function setupIFrame(iframe, options) {
1036
- function setLimits() {
1037
- function addStyle(style) {
1038
- var styleValue = settings[iframeId][style];
1039
- if (Infinity !== styleValue && 0 !== styleValue) {
1040
- iframe.style[style] = isNumber(styleValue)
1041
- ? styleValue + 'px'
1042
- : styleValue;
1043
- log(iframeId, 'Set ' + style + ' = ' + iframe.style[style]);
1044
- }
1045
- }
1046
-
1047
- function chkMinMax(dimension) {
1048
- if (
1049
- settings[iframeId]['min' + dimension] >
1050
- settings[iframeId]['max' + dimension]
1051
- ) {
1052
- throw new Error(
1053
- 'Value for min' +
1054
- dimension +
1055
- ' can not be greater than max' +
1056
- dimension
1057
- )
1058
- }
1059
- }
1060
-
1061
- chkMinMax('Height');
1062
- chkMinMax('Width');
1063
-
1064
- addStyle('maxHeight');
1065
- addStyle('minHeight');
1066
- addStyle('maxWidth');
1067
- addStyle('minWidth');
1068
- }
1069
-
1070
- function newId() {
1071
- var id = (options && options.id) || defaults.id + count++;
1072
- if (null !== document.getElementById(id)) {
1073
- id += count++;
1074
- }
1075
- return id
1076
- }
1077
-
1078
- function ensureHasId(iframeId) {
1079
- if (typeof iframeId !== 'string') {
1080
- throw new TypeError('Invaild id for iFrame. Expected String')
1081
- }
1082
-
1083
- if ('' === iframeId) {
1084
- // eslint-disable-next-line no-multi-assign
1085
- iframe.id = iframeId = newId();
1086
- logEnabled = (options || {}).log;
1087
- log(
1088
- iframeId,
1089
- 'Added missing iframe ID: ' + iframeId + ' (' + iframe.src + ')'
1090
- );
1091
- }
1092
-
1093
- return iframeId
1094
- }
1095
-
1096
- function setScrolling() {
1097
- log(
1098
- iframeId,
1099
- 'IFrame scrolling ' +
1100
- (settings[iframeId] && settings[iframeId].scrolling
1101
- ? 'enabled'
1102
- : 'disabled') +
1103
- ' for ' +
1104
- iframeId
1105
- );
1106
- iframe.style.overflow =
1107
- false === (settings[iframeId] && settings[iframeId].scrolling)
1108
- ? 'hidden'
1109
- : 'auto';
1110
- switch (settings[iframeId] && settings[iframeId].scrolling) {
1111
- case 'omit': {
1112
- break
1113
- }
1114
-
1115
- case true: {
1116
- iframe.scrolling = 'yes';
1117
- break
1118
- }
1119
-
1120
- case false: {
1121
- iframe.scrolling = 'no';
1122
- break
1123
- }
1124
-
1125
- default: {
1126
- iframe.scrolling = settings[iframeId]
1127
- ? settings[iframeId].scrolling
1128
- : 'no';
1129
- }
1130
- }
1131
- }
1132
-
1133
- // The V1 iFrame script expects an int, where as in V2 expects a CSS
1134
- // string value such as '1px 3em', so if we have an int for V2, set V1=V2
1135
- // and then convert V2 to a string PX value.
1136
- function setupBodyMarginValues() {
1137
- if (
1138
- 'number' ===
1139
- typeof (settings[iframeId] && settings[iframeId].bodyMargin) ||
1140
- '0' === (settings[iframeId] && settings[iframeId].bodyMargin)
1141
- ) {
1142
- settings[iframeId].bodyMarginV1 = settings[iframeId].bodyMargin;
1143
- settings[iframeId].bodyMargin =
1144
- '' + settings[iframeId].bodyMargin + 'px';
1145
- }
1146
- }
1147
-
1148
- function checkReset() {
1149
- // Reduce scope of firstRun to function, because IE8's JS execution
1150
- // context stack is borked and this value gets externally
1151
- // changed midway through running this function!!!
1152
- var firstRun = settings[iframeId] && settings[iframeId].firstRun,
1153
- resetRequertMethod =
1154
- settings[iframeId] &&
1155
- settings[iframeId].heightCalculationMethod in resetRequiredMethods;
1156
-
1157
- if (!firstRun && resetRequertMethod) {
1158
- resetIFrame({ iframe: iframe, height: 0, width: 0, type: 'init' });
1159
- }
1160
- }
1161
-
1162
- function setupIFrameObject() {
1163
- if (settings[iframeId]) {
1164
- settings[iframeId].iframe.iFrameResizer = {
1165
- close: closeIFrame.bind(null, settings[iframeId].iframe),
1166
-
1167
- removeListeners: removeIframeListeners.bind(
1168
- null,
1169
- settings[iframeId].iframe
1170
- ),
1171
-
1172
- resize: trigger.bind(
1173
- null,
1174
- 'Window resize',
1175
- 'resize',
1176
- settings[iframeId].iframe
1177
- ),
1178
-
1179
- moveToAnchor: function (anchor) {
1180
- trigger(
1181
- 'Move to anchor',
1182
- 'moveToAnchor:' + anchor,
1183
- settings[iframeId].iframe,
1184
- iframeId
1185
- );
1186
- },
1187
-
1188
- sendMessage: function (message) {
1189
- message = JSON.stringify(message);
1190
- trigger(
1191
- 'Send Message',
1192
- 'message:' + message,
1193
- settings[iframeId].iframe,
1194
- iframeId
1195
- );
1196
- }
1197
- };
1198
- }
1199
- }
1200
-
1201
- // We have to call trigger twice, as we can not be sure if all
1202
- // iframes have completed loading when this code runs. The
1203
- // event listener also catches the page changing in the iFrame.
1204
- function init(msg) {
1205
- function iFrameLoaded() {
1206
- trigger('iFrame.onload', msg, iframe, undefined$1, true);
1207
- checkReset();
1208
- }
1209
-
1210
- function createDestroyObserver(MutationObserver) {
1211
- if (!iframe.parentNode) {
1212
- return
1213
- }
1214
-
1215
- var destroyObserver = new MutationObserver(function (mutations) {
1216
- mutations.forEach(function (mutation) {
1217
- var removedNodes = Array.prototype.slice.call(mutation.removedNodes); // Transform NodeList into an Array
1218
- removedNodes.forEach(function (removedNode) {
1219
- if (removedNode === iframe) {
1220
- closeIFrame(iframe);
1221
- }
1222
- });
1223
- });
1224
- });
1225
- destroyObserver.observe(iframe.parentNode, {
1226
- childList: true
1227
- });
1228
- }
1229
-
1230
- var MutationObserver = getMutationObserver();
1231
- if (MutationObserver) {
1232
- createDestroyObserver(MutationObserver);
1233
- }
1234
-
1235
- addEventListener(iframe, 'load', iFrameLoaded);
1236
- trigger('init', msg, iframe, undefined$1, true);
1237
- }
1238
-
1239
- function checkOptions(options) {
1240
- if ('object' !== typeof options) {
1241
- throw new TypeError('Options is not an object')
1242
- }
1243
- }
1244
-
1245
- function copyOptions(options) {
1246
- // eslint-disable-next-line no-restricted-syntax
1247
- for (var option in defaults) {
1248
- if (Object.prototype.hasOwnProperty.call(defaults, option)) {
1249
- settings[iframeId][option] = Object.prototype.hasOwnProperty.call(
1250
- options,
1251
- option
1252
- )
1253
- ? options[option]
1254
- : defaults[option];
1255
- }
1256
- }
1257
- }
1258
-
1259
- function getTargetOrigin(remoteHost) {
1260
- return '' === remoteHost ||
1261
- null !== remoteHost.match(/^(about:blank|javascript:|file:\/\/)/)
1262
- ? '*'
1263
- : remoteHost
1264
- }
1265
-
1266
- function depricate(key) {
1267
- var splitName = key.split('Callback');
1268
-
1269
- if (splitName.length === 2) {
1270
- var name =
1271
- 'on' + splitName[0].charAt(0).toUpperCase() + splitName[0].slice(1);
1272
- this[name] = this[key];
1273
- delete this[key];
1274
- warn(
1275
- iframeId,
1276
- "Deprecated: '" +
1277
- key +
1278
- "' has been renamed '" +
1279
- name +
1280
- "'. The old method will be removed in the next major version."
1281
- );
1282
- }
1283
- }
1284
-
1285
- function processOptions(options) {
1286
- options = options || {};
1287
-
1288
- settings[iframeId] = Object.create(null); // Protect against prototype attacks
1289
- settings[iframeId].iframe = iframe;
1290
- settings[iframeId].firstRun = true;
1291
- settings[iframeId].remoteHost =
1292
- iframe.src && iframe.src.split('/').slice(0, 3).join('/');
1293
-
1294
- checkOptions(options);
1295
- Object.keys(options).forEach(depricate, options);
1296
- copyOptions(options);
1297
-
1298
- if (settings[iframeId]) {
1299
- settings[iframeId].targetOrigin =
1300
- true === settings[iframeId].checkOrigin
1301
- ? getTargetOrigin(settings[iframeId].remoteHost)
1302
- : '*';
1303
- }
1304
- }
1305
-
1306
- function beenHere() {
1307
- return iframeId in settings && 'iFrameResizer' in iframe
1308
- }
1309
-
1310
- var iframeId = ensureHasId(iframe.id);
1311
-
1312
- if (beenHere()) {
1313
- warn(iframeId, 'Ignored iFrame, already setup.');
1314
- } else {
1315
- processOptions(options);
1316
- setScrolling();
1317
- setLimits();
1318
- setupBodyMarginValues();
1319
- init(createOutgoingMsg(iframeId));
1320
- setupIFrameObject();
1321
- }
1322
- }
1323
-
1324
- function debouce(fn, time) {
1325
- if (null === timer) {
1326
- timer = setTimeout(function () {
1327
- timer = null;
1328
- fn();
1329
- }, time);
1330
- }
1331
- }
1332
-
1333
- var frameTimer = {};
1334
- function debounceFrameEvents(fn, time, frameId) {
1335
- if (!frameTimer[frameId]) {
1336
- frameTimer[frameId] = setTimeout(function () {
1337
- frameTimer[frameId] = null;
1338
- fn();
1339
- }, time);
1340
- }
1341
- }
1342
-
1343
- // Not testable in PhantomJS
1344
- /* istanbul ignore next */
1345
-
1346
- function fixHiddenIFrames() {
1347
- function checkIFrames() {
1348
- function checkIFrame(settingId) {
1349
- function chkDimension(dimension) {
1350
- return (
1351
- '0px' ===
1352
- (settings[settingId] && settings[settingId].iframe.style[dimension])
1353
- )
1354
- }
1355
-
1356
- function isVisible(el) {
1357
- return null !== el.offsetParent
1358
- }
1359
-
1360
- if (
1361
- settings[settingId] &&
1362
- isVisible(settings[settingId].iframe) &&
1363
- (chkDimension('height') || chkDimension('width'))
1364
- ) {
1365
- trigger(
1366
- 'Visibility change',
1367
- 'resize',
1368
- settings[settingId].iframe,
1369
- settingId
1370
- );
1371
- }
1372
- }
1373
-
1374
- Object.keys(settings).forEach(function (key) {
1375
- checkIFrame(key);
1376
- });
1377
- }
1378
-
1379
- function mutationObserved(mutations) {
1380
- log(
1381
- 'window',
1382
- 'Mutation observed: ' + mutations[0].target + ' ' + mutations[0].type
1383
- );
1384
- debouce(checkIFrames, 16);
1385
- }
1386
-
1387
- function createMutationObserver() {
1388
- var target = document.querySelector('body'),
1389
- config = {
1390
- attributes: true,
1391
- attributeOldValue: false,
1392
- characterData: true,
1393
- characterDataOldValue: false,
1394
- childList: true,
1395
- subtree: true
1396
- },
1397
- observer = new MutationObserver(mutationObserved);
1398
-
1399
- observer.observe(target, config);
1400
- }
1401
-
1402
- var MutationObserver = getMutationObserver();
1403
- if (MutationObserver) {
1404
- createMutationObserver();
1405
- }
1406
- }
1407
-
1408
- function resizeIFrames(event) {
1409
- function resize() {
1410
- sendTriggerMsg('Window ' + event, 'resize');
1411
- }
1412
-
1413
- log('window', 'Trigger event: ' + event);
1414
- debouce(resize, 16);
1415
- }
1416
-
1417
- // Not testable in PhantomJS
1418
- /* istanbul ignore next */
1419
- function tabVisible() {
1420
- function resize() {
1421
- sendTriggerMsg('Tab Visible', 'resize');
1422
- }
1423
-
1424
- if ('hidden' !== document.visibilityState) {
1425
- log('document', 'Trigger event: Visibility change');
1426
- debouce(resize, 16);
1427
- }
1428
- }
1429
-
1430
- function sendTriggerMsg(eventName, event) {
1431
- function isIFrameResizeEnabled(iframeId) {
1432
- return (
1433
- settings[iframeId] &&
1434
- 'parent' === settings[iframeId].resizeFrom &&
1435
- settings[iframeId].autoResize &&
1436
- !settings[iframeId].firstRun
1437
- )
1438
- }
1439
-
1440
- Object.keys(settings).forEach(function (iframeId) {
1441
- if (isIFrameResizeEnabled(iframeId)) {
1442
- trigger(eventName, event, settings[iframeId].iframe, iframeId);
1443
- }
1444
- });
1445
- }
1446
-
1447
- function setupEventListeners() {
1448
- addEventListener(window, 'message', iFrameListener);
1449
-
1450
- addEventListener(window, 'resize', function () {
1451
- resizeIFrames('resize');
1452
- });
1453
-
1454
- addEventListener(document, 'visibilitychange', tabVisible);
1455
-
1456
- addEventListener(document, '-webkit-visibilitychange', tabVisible);
1457
- }
1458
-
1459
- function factory() {
1460
- function init(options, element) {
1461
- function chkType() {
1462
- if (!element.tagName) {
1463
- throw new TypeError('Object is not a valid DOM element')
1464
- } else if ('IFRAME' !== element.tagName.toUpperCase()) {
1465
- throw new TypeError(
1466
- 'Expected <IFRAME> tag, found <' + element.tagName + '>'
1467
- )
1468
- }
1469
- }
1470
-
1471
- if (element) {
1472
- chkType();
1473
- setupIFrame(element, options);
1474
- iFrames.push(element);
1475
- }
1476
- }
1477
-
1478
- function warnDeprecatedOptions(options) {
1479
- if (options && options.enablePublicMethods) {
1480
- warn(
1481
- 'enablePublicMethods option has been removed, public methods are now always available in the iFrame'
1482
- );
1483
- }
1484
- }
1485
-
1486
- var iFrames;
1487
-
1488
- setupRequestAnimationFrame();
1489
- setupEventListeners();
1490
-
1491
- return function iFrameResizeF(options, target) {
1492
- iFrames = []; // Only return iFrames past in on this call
1493
-
1494
- warnDeprecatedOptions(options);
1495
-
1496
- switch (typeof target) {
1497
- case 'undefined':
1498
- case 'string': {
1499
- Array.prototype.forEach.call(
1500
- document.querySelectorAll(target || 'iframe'),
1501
- init.bind(undefined$1, options)
1502
- );
1503
- break
1504
- }
1505
-
1506
- case 'object': {
1507
- init(options, target);
1508
- break
1509
- }
1510
-
1511
- default: {
1512
- throw new TypeError('Unexpected data type (' + typeof target + ')')
1513
- }
1514
- }
1515
-
1516
- return iFrames
1517
- }
1518
- }
1519
-
1520
- function createJQueryPublicMethod($) {
1521
- if (!$.fn) {
1522
- info('', 'Unable to bind to jQuery, it is not fully loaded.');
1523
- } else if (!$.fn.iFrameResize) {
1524
- $.fn.iFrameResize = function $iFrameResizeF(options) {
1525
- function init(index, element) {
1526
- setupIFrame(element, options);
1527
- }
1528
-
1529
- return this.filter('iframe').each(init).end()
1530
- };
1531
- }
1532
- }
1533
-
1534
- if (window.jQuery !== undefined$1) {
1535
- createJQueryPublicMethod(window.jQuery);
1536
- }
1537
-
1538
- if (typeof undefined$1 === 'function' && undefined$1.amd) {
1539
- undefined$1([], factory);
1540
- } else {
1541
- // Node for browserfy
1542
- module.exports = factory();
1543
- }
1544
- window.iFrameResize = window.iFrameResize || factory();
1545
- })();
1546
- });
1547
-
1548
- const MessageEventType = {
1549
- card: {
1550
- ready: 'justifi.card.ready',
1551
- tokenize: 'justifi.card.tokenize',
1552
- validate: 'justifi.card.validate',
1553
- resize: 'justifi.card.resize',
1554
- styleOverrides: 'justifi.card.styleOverrides',
1555
- },
1556
- bankAccount: {
1557
- ready: 'justifi.bankAccount.ready',
1558
- tokenize: 'justifi.bankAccount.tokenize',
1559
- validate: 'justifi.bankAccount.validate',
1560
- resize: 'justifi.bankAccount.resize',
1561
- styleOverrides: 'justifi.bankAccount.styleOverrides',
1562
- },
1563
- };
1564
-
1565
- const name = "@justifi/webcomponents";
1566
- const version = "4.13.0";
1567
- const description = "JustiFi Web Components";
1568
- const main = "dist/module/index.js";
1569
- const module = "dist/module/index.js";
1570
- const types = "./dist/types/index.d.ts";
1571
- const repository = {
1572
- type: "git",
1573
- url: "git+https://github.com/justifi-tech/web-component-library.git"
1574
- };
1575
- const homepage = "https://storybook.justifi.ai/?path=/docs/introduction--docs";
1576
- const publishConfig = {
1577
- registry: "https://registry.npmjs.org"
1578
- };
1579
- const files = [
1580
- "dist/"
1581
- ];
1582
- const scripts = {
1583
- build: "stencil build --docs",
1584
- dev: "stencil build --watch",
1585
- lint: "eslint . --max-warnings 0",
1586
- clean: "rm -rf .turbo && rm -rf node_modules && rm -rf dist",
1587
- generate: "stencil generate",
1588
- test: "TZ=utc stencil test --spec",
1589
- "test:watch": "TZ=utc stencil test --spec --watchAll",
1590
- "test:e2e": "stencil test --e2e",
1591
- "test:file": "stencil test --spec --watch --"
1592
- };
1593
- const dependencies = {
1594
- "@stencil/core": "^4.0.5",
1595
- bootstrap: "^5.2.3",
1596
- "chart.js": "^4.4.1",
1597
- "date-fns": "^2.29.3",
1598
- "dinero.js": "^1.9.1",
1599
- "iframe-resizer": "^4.3.7",
1600
- imask: "^7.6.0",
1601
- rxjs: "^7.8.1",
1602
- "ts-dedent": "^2.2.0",
1603
- uuid: "^9.0.0",
1604
- yup: "^1.0.0"
1605
- };
1606
- const devDependencies = {
1607
- "@babel/preset-env": "^7.21.5",
1608
- "@babel/preset-react": "^7.18.6",
1609
- "@babel/preset-typescript": "^7.21.5",
1610
- "@stencil/sass": "^3.0.1",
1611
- "@stencil/store": "^2.0.8",
1612
- "@types/jest": "27.0.3",
1613
- "@types/node": "^20.1.4",
1614
- "@types/react": "^18.0.37",
1615
- "@types/react-dom": "^18.0.11",
1616
- dotenv: "^16.3.1",
1617
- jest: "^29.7.0",
1618
- "jest-cli": "^29.7.0",
1619
- "jest-environment-node": "^29.7.0",
1620
- puppeteer: "^21.0.0",
1621
- "ts-jest": "^29.1.2"
1622
- };
1623
- const license = "MIT";
1624
- const gitHead = "507bac1d941eae6e1f56e185ecd9bc9d22637783";
1625
- const packageJson = {
1626
- name: name,
1627
- version: version,
1628
- description: description,
1629
- main: main,
1630
- module: module,
1631
- types: types,
1632
- repository: repository,
1633
- homepage: homepage,
1634
- publishConfig: publishConfig,
1635
- files: files,
1636
- scripts: scripts,
1637
- dependencies: dependencies,
1638
- devDependencies: devDependencies,
1639
- license: license,
1640
- gitHead: gitHead
1641
- };
1642
-
1643
- const getComputedTheme = () => {
1644
- const computedStyles = getComputedStyle(document.body);
1645
- const computedTheme = {
1646
- loadGoogleFont: computedStyles.getPropertyValue('--jfi-load-google-font'),
1647
- layout: {
1648
- fontFamily: computedStyles.getPropertyValue('--jfi-layout-font-family'),
1649
- padding: computedStyles.getPropertyValue('--jfi-layout-padding'),
1650
- formControlSpacingHorizontal: computedStyles.getPropertyValue('--jfi-layout-form-control-spacing-x'),
1651
- formControlSpacingVertical: computedStyles.getPropertyValue('--jfi-layout-form-control-spacing-y'),
1652
- },
1653
- formControl: {
1654
- backgroundColor: computedStyles.getPropertyValue('--jfi-form-control-background-color'),
1655
- borderColor: computedStyles.getPropertyValue('--jfi-form-control-border-color'),
1656
- borderColorFocus: computedStyles.getPropertyValue('--jfi-form-control-border-color-focus'),
1657
- borderColorError: computedStyles.getPropertyValue('--jfi-form-control-border-color-error'),
1658
- borderWidth: computedStyles.getPropertyValue('--jfi-form-control-border-width'),
1659
- borderBottomWidth: computedStyles.getPropertyValue('--jfi-form-control-border-bottom-width'),
1660
- borderLeftWidth: computedStyles.getPropertyValue('--jfi-form-control-border-left-width'),
1661
- borderRightWidth: computedStyles.getPropertyValue('--jfi-form-control-border-right-width'),
1662
- borderTopWidth: computedStyles.getPropertyValue('--jfi-form-control-border-top-width'),
1663
- borderRadius: computedStyles.getPropertyValue('--jfi-form-control-border-radius'),
1664
- borderStyle: computedStyles.getPropertyValue('--jfi-form-control-border-style'),
1665
- boxShadow: computedStyles.getPropertyValue('--jfi-form-control-box-shadow'),
1666
- boxShadowError: computedStyles.getPropertyValue('--jfi-form-control-box-shadow-error'),
1667
- boxShadowErrorFocus: computedStyles.getPropertyValue('--jfi-form-control-box-shadow-error-focus'),
1668
- boxShadowFocus: computedStyles.getPropertyValue('--jfi-form-control-box-shadow-focus'),
1669
- color: computedStyles.getPropertyValue('--jfi-form-control-color'),
1670
- colorFocus: computedStyles.getPropertyValue('--jfi-form-control-color-focus'),
1671
- fontSize: computedStyles.getPropertyValue('--jfi-form-control-font-size'),
1672
- fontWeight: computedStyles.getPropertyValue('--jfi-form-control-font-weight'),
1673
- lineHeight: computedStyles.getPropertyValue('--jfi-form-control-line-height'),
1674
- margin: computedStyles.getPropertyValue('--jfi-form-control-margin'),
1675
- padding: computedStyles.getPropertyValue('--jfi-form-control-padding'),
1676
- },
1677
- formLabel: {
1678
- color: computedStyles.getPropertyValue('--jfi-form-label-color'),
1679
- fontFamily: computedStyles.getPropertyValue('--jfi-form-label-font-family'),
1680
- fontSize: computedStyles.getPropertyValue('--jfi-form-label-font-size'),
1681
- fontWeight: computedStyles.getPropertyValue('--jfi-form-label-font-weight'),
1682
- margin: computedStyles.getPropertyValue('--jfi-form-label-margin'),
1683
- },
1684
- errorMessage: {
1685
- color: computedStyles.getPropertyValue('--jfi-error-message-color'),
1686
- margin: computedStyles.getPropertyValue('--jfi-error-message-margin'),
1687
- fontSize: computedStyles.getPropertyValue('--jfi-error-message-font-size'),
1688
- },
1689
- };
1690
- return computedTheme;
1691
- };
1692
-
1693
- /**
1694
- * This approach decouples the communication logic from PaymentMethodForm component,
1695
- * making it cleaner, more maintainable, and easier to test
1696
- */
1697
- class FrameCommunicationService {
1698
- constructor(iframe, iframeOrigin) {
1699
- this.iframe = iframe;
1700
- this.iframeOrigin = iframeOrigin;
1701
- }
1702
- postMessage(eventType, payload) {
1703
- const message = Object.assign({ eventType }, payload);
1704
- this.iframe.contentWindow.postMessage(message, this.iframeOrigin);
1705
- }
1706
- addMessageListener(callback) {
1707
- window.addEventListener('message', callback);
1708
- }
1709
- removeMessageListener(callback) {
1710
- window.removeEventListener('message', callback);
1711
- }
1712
- postMessageWithResponseListener(eventType, payload) {
1713
- return new Promise((resolve) => {
1714
- const responseListener = (event) => {
1715
- if (event.data.eventType !== eventType)
1716
- return;
1717
- window.removeEventListener('message', responseListener);
1718
- resolve(event.data.data);
1719
- };
1720
- window.addEventListener('message', responseListener);
1721
- this.postMessage(eventType, payload);
1722
- });
1723
- }
1724
- }
1725
-
1726
- const paymentMethodFormCss = ":host{display:block}justifi-payment-method-form iframe{border:none;width:100%}iframe{width:1px;min-width:100%}";
1727
-
1728
- const PaymentMethodForm = class {
1729
- constructor(hostRef) {
1730
- registerInstance(this, hostRef);
1731
- this.paymentMethodFormReady = createEvent(this, "paymentMethodFormReady", 7);
1732
- this.paymentMethodFormValidated = createEvent(this, "paymentMethodFormValidated", 7);
1733
- this.paymentMethodFormTokenized = createEvent(this, "paymentMethodFormTokenized", 7);
1734
- this.computedTheme = getComputedTheme();
1735
- this.dispatchMessageEvent = (messageEvent) => {
1736
- const { eventType, data } = messageEvent.data;
1737
- const eventTypeMessage = MessageEventType[this.paymentMethodFormType];
1738
- if (eventType === eventTypeMessage.ready) {
1739
- this.paymentMethodFormReady.emit(data);
1740
- }
1741
- else if (eventType === eventTypeMessage.tokenize) {
1742
- this.paymentMethodFormTokenized.emit(data);
1743
- }
1744
- else if (eventType === eventTypeMessage.validate) {
1745
- this.paymentMethodFormValidated.emit(data);
1746
- }
1747
- };
1748
- this.postMessage = (eventType, payload) => {
1749
- this.frameService.postMessage(eventType, payload);
1750
- };
1751
- this.paymentMethodFormType = undefined;
1752
- this.paymentMethodFormValidationMode = undefined;
1753
- this.iframeOrigin = undefined;
1754
- this.singleLine = undefined;
1755
- }
1756
- disconnectedCallback() {
1757
- this.frameService.removeMessageListener(this.dispatchMessageEvent);
1758
- }
1759
- async resize() {
1760
- this.postMessage(MessageEventType[this.paymentMethodFormType].resize);
1761
- }
1762
- async tokenize(clientId, paymentMethodMetadata, account) {
1763
- const eventType = MessageEventType[this.paymentMethodFormType].tokenize;
1764
- return this.frameService.postMessageWithResponseListener(eventType, {
1765
- clientId,
1766
- paymentMethodMetadata,
1767
- account,
1768
- componentVersion: packageJson.version,
1769
- });
1770
- }
1771
- async validate() {
1772
- const eventType = MessageEventType[this.paymentMethodFormType].validate;
1773
- return this.frameService.postMessageWithResponseListener(eventType);
1774
- }
1775
- sendStyleOverrides() {
1776
- if (this.computedTheme) {
1777
- this.postMessage(MessageEventType[this.paymentMethodFormType].styleOverrides, { styleOverrides: this.computedTheme });
1778
- }
1779
- }
1780
- getIframeSrc() {
1781
- let paramsList = [];
1782
- if (this.paymentMethodFormValidationMode) {
1783
- paramsList.push(`validationMode=${this.paymentMethodFormValidationMode}`);
1784
- }
1785
- if (this.singleLine) {
1786
- paramsList.push(`singleLine=${this.singleLine}`);
1787
- }
1788
- let iframeSrc = `${this.iframeOrigin}/${this.paymentMethodFormType}${composeQueryParams(paramsList)}`;
1789
- return iframeSrc;
1790
- }
1791
- initializeFrameCommunicationService() {
1792
- var _a;
1793
- this.frameService = new FrameCommunicationService(this.iframeElement, this.iframeOrigin);
1794
- (_a = this.frameService) === null || _a === void 0 ? void 0 : _a.addMessageListener(this.dispatchMessageEvent);
1795
- }
1796
- render() {
1797
- return (h(Host, null, h("iframe", { id: `justifi-payment-method-form-${this.paymentMethodFormType}`, src: this.getIframeSrc(), ref: el => {
1798
- this.iframeElement = el;
1799
- this.initializeFrameCommunicationService();
1800
- }, onLoad: () => {
1801
- iframeResizer({
1802
- scrollbars: false,
1803
- }, this.iframeElement);
1804
- this.sendStyleOverrides();
1805
- } })));
1806
- }
1807
- };
1808
- PaymentMethodForm.style = paymentMethodFormCss;
1809
-
1810
- const selectInputCss = ":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-color:#212529;--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-highlight-color:#dee2e6;--bs-highlight-bg:#664d03;--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;color:var(--bs-highlight-color);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}.form-label{margin-bottom:0.5rem}.col-form-label{padding-top:calc(0.375rem + var(--bs-border-width));padding-bottom:calc(0.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(0.5rem + var(--bs-border-width));padding-bottom:calc(0.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(0.25rem + var(--bs-border-width));padding-bottom:calc(0.25rem + var(--bs-border-width));font-size:0.875rem}.form-text{margin-top:0.25rem;font-size:0.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:0.375rem 0.75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::file-selector-button{padding:0.375rem 0.75rem;margin:-0.375rem -0.75rem;margin-inline-end:0.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;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){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:0.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));padding:0.25rem 0.5rem;font-size:0.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::file-selector-button{padding:0.25rem 0.5rem;margin:-0.25rem -0.5rem;margin-inline-end:0.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:0.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::file-selector-button{padding:0.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));padding:0.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0 !important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0 !important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");display:block;width:100%;padding:0.375rem 2.25rem 0.375rem 0.75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img), var(--bs-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right 0.75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25)}.form-select[multiple],.form-select[size]:not([size=\"1\"]){padding-right:0.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:0.25rem;padding-bottom:0.25rem;padding-left:0.5rem;font-size:0.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:0.5rem;padding-bottom:0.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\")}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:0.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg:var(--bs-body-bg);flex-shrink:0;width:1em;height:1em;margin-top:0.25em;vertical-align:top;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:0.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e\")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e\")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;--bs-form-check-bg-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e\")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:0.5}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{cursor:default;opacity:0.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e\");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e\")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:0.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e\")}.form-range{width:100%;height:1.5rem;padding:0;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-0.25rem;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;transition: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){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:0.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;transition: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){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:0.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem 0.75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity 0.1s ease-in-out, transform 0.1s ease-in-out}@media (prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem 0.75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:transparent}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:0.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:0.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:0.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-control-plaintext~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem 0.375rem;z-index:-1;height:1.5em;content:\"\";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#6c757d}.form-floating>:disabled~label::after,.form-floating>.form-control:disabled~label::after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.input-group>.form-floating{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:0.375rem 0.75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:0.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:0.25rem 0.5rem;font-size:0.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:0.25rem;font-size:0.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:0.25rem 0.5rem;margin-top:0.1rem;font-size:0.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + 0.75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + 0.75rem);background-position:top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size=\"1\"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size=\"1\"]{--bs-form-select-bg-icon:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");padding-right:4.125rem;background-position:right 0.75rem center, center right 2.25rem;background-size:16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3rem + calc(1.5em + 0.75rem))}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:var(--bs-form-valid-color)}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:0.5em}.was-validated .input-group>.form-control:not(:focus):valid,.input-group>.form-control:not(:focus).is-valid,.was-validated .input-group>.form-select:not(:focus):valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.input-group>.form-floating:not(:focus-within).is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:0.25rem;font-size:0.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:0.25rem 0.5rem;margin-top:0.1rem;font-size:0.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + 0.75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + 0.75rem);background-position:top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size=\"1\"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size=\"1\"]{--bs-form-select-bg-icon:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");padding-right:4.125rem;background-position:right 0.75rem center, center right 2.25rem;background-size:16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3rem + calc(1.5em + 0.75rem))}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:var(--bs-form-invalid-color)}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:0.5em}.was-validated .input-group>.form-control:not(:focus):invalid,.input-group>.form-control:not(:focus).is-invalid,.was-validated .input-group>.form-select:not(:focus):invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.input-group>.form-floating:not(:focus-within).is-invalid{z-index:4}: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;display:block}";
1811
-
1812
- const SelectInput = class {
1813
- constructor(hostRef) {
1814
- registerInstance(this, hostRef);
1815
- this.fieldReceivedInput = createEvent(this, "fieldReceivedInput", 7);
1816
- this.name = undefined;
1817
- this.label = undefined;
1818
- this.defaultValue = undefined;
1819
- this.error = undefined;
1820
- this.options = [];
1821
- this.internalValue = '';
1822
- }
1823
- onInput(event) {
1824
- const target = event.target;
1825
- const name = target.getAttribute('name');
1826
- this.fieldReceivedInput.emit({ name: name, value: target.value });
1827
- }
1828
- render() {
1829
- return (h(Host, { exportparts: "label,input,input-invalid,invalid-feedback" }, h("label", { part: "label", class: "form-label" }, this.label), h("select", { name: this.name, onInput: event => this.onInput(event), part: `input${this.error ? ' input-invalid' : ''}`, class: this.error ? 'form-select is-invalid' : 'form-select' }, this.options.map(option => (h("option", { value: option.value }, option.label)))), this.error && h("div", { class: "invalid-feedback", part: "invalid-feedback" }, this.error)));
1830
- }
1831
- };
1832
- SelectInput.style = selectInputCss;
1833
-
1834
- const textInputCss = ":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-color:#212529;--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-highlight-color:#dee2e6;--bs-highlight-bg:#664d03;--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;color:var(--bs-highlight-color);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}.form-label{margin-bottom:0.5rem}.col-form-label{padding-top:calc(0.375rem + var(--bs-border-width));padding-bottom:calc(0.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(0.5rem + var(--bs-border-width));padding-bottom:calc(0.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(0.25rem + var(--bs-border-width));padding-bottom:calc(0.25rem + var(--bs-border-width));font-size:0.875rem}.form-text{margin-top:0.25rem;font-size:0.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:0.375rem 0.75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::file-selector-button{padding:0.375rem 0.75rem;margin:-0.375rem -0.75rem;margin-inline-end:0.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;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){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:0.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));padding:0.25rem 0.5rem;font-size:0.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::file-selector-button{padding:0.25rem 0.5rem;margin:-0.25rem -0.5rem;margin-inline-end:0.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:0.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::file-selector-button{padding:0.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));padding:0.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0 !important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0 !important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");display:block;width:100%;padding:0.375rem 2.25rem 0.375rem 0.75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img), var(--bs-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right 0.75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25)}.form-select[multiple],.form-select[size]:not([size=\"1\"]){padding-right:0.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:0.25rem;padding-bottom:0.25rem;padding-left:0.5rem;font-size:0.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:0.5rem;padding-bottom:0.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\")}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:0.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg:var(--bs-body-bg);flex-shrink:0;width:1em;height:1em;margin-top:0.25em;vertical-align:top;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:0.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e\")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e\")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;--bs-form-check-bg-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e\")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:0.5}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{cursor:default;opacity:0.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e\");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e\")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:0.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e\")}.form-range{width:100%;height:1.5rem;padding:0;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-0.25rem;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;transition: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){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:0.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;transition: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){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:0.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem 0.75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity 0.1s ease-in-out, transform 0.1s ease-in-out}@media (prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem 0.75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:transparent}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:0.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:0.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:0.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-control-plaintext~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem 0.375rem;z-index:-1;height:1.5em;content:\"\";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#6c757d}.form-floating>:disabled~label::after,.form-floating>.form-control:disabled~label::after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.input-group>.form-floating{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:0.375rem 0.75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:0.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:0.25rem 0.5rem;font-size:0.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:0.25rem;font-size:0.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:0.25rem 0.5rem;margin-top:0.1rem;font-size:0.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + 0.75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + 0.75rem);background-position:top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size=\"1\"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size=\"1\"]{--bs-form-select-bg-icon:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");padding-right:4.125rem;background-position:right 0.75rem center, center right 2.25rem;background-size:16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3rem + calc(1.5em + 0.75rem))}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:var(--bs-form-valid-color)}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:0.5em}.was-validated .input-group>.form-control:not(:focus):valid,.input-group>.form-control:not(:focus).is-valid,.was-validated .input-group>.form-select:not(:focus):valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.input-group>.form-floating:not(:focus-within).is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:0.25rem;font-size:0.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:0.25rem 0.5rem;margin-top:0.1rem;font-size:0.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + 0.75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + 0.75rem);background-position:top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size=\"1\"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size=\"1\"]{--bs-form-select-bg-icon:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");padding-right:4.125rem;background-position:right 0.75rem center, center right 2.25rem;background-size:16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3rem + calc(1.5em + 0.75rem))}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:var(--bs-form-invalid-color)}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:0.5em}.was-validated .input-group>.form-control:not(:focus):invalid,.input-group>.form-control:not(:focus).is-invalid,.was-validated .input-group>.form-select:not(:focus):invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.input-group>.form-floating:not(:focus-within).is-invalid{z-index:4}: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;display:block}";
1835
-
1836
- const TextInput = class {
1837
- constructor(hostRef) {
1838
- registerInstance(this, hostRef);
1839
- this.fieldReceivedInput = createEvent(this, "fieldReceivedInput", 7);
1840
- this.name = undefined;
1841
- this.label = undefined;
1842
- this.defaultValue = undefined;
1843
- this.error = undefined;
1844
- this.internalValue = '';
1845
- }
1846
- onInput(event) {
1847
- const target = event.target;
1848
- const name = target.getAttribute('name');
1849
- this.fieldReceivedInput.emit({ name: name, value: target.value });
1850
- }
1851
- render() {
1852
- return (h(Host, { exportparts: "label,input,input-invalid,invalid-feedback" }, h("label", { part: "label", class: "form-label" }, this.label), h("input", { name: this.name, type: "text", onInput: event => this.onInput(event), value: this.internalValue || this.defaultValue, part: `input${this.error ? ' input-invalid' : ''}`, class: this.error ? 'form-control is-invalid' : 'form-control' }), this.error && h("div", { class: "invalid-feedback", part: "invalid-feedback" }, this.error)));
1853
- }
1854
- };
1855
- TextInput.style = textInputCss;
1856
-
1857
- export { BillingForm as justifi_billing_form, PaymentMethodForm as justifi_payment_method_form, SelectInput as select_input, TextInput as text_input };