@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,3 +1,729 @@
1
+ function isFunction(value) {
2
+ return typeof value === 'function';
3
+ }
4
+
5
+ function createErrorClass(createImpl) {
6
+ const _super = (instance) => {
7
+ Error.call(instance);
8
+ instance.stack = new Error().stack;
9
+ };
10
+ const ctorFunc = createImpl(_super);
11
+ ctorFunc.prototype = Object.create(Error.prototype);
12
+ ctorFunc.prototype.constructor = ctorFunc;
13
+ return ctorFunc;
14
+ }
15
+
16
+ const UnsubscriptionError = createErrorClass((_super) => function UnsubscriptionErrorImpl(errors) {
17
+ _super(this);
18
+ this.message = errors
19
+ ? `${errors.length} errors occurred during unsubscription:
20
+ ${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\n ')}`
21
+ : '';
22
+ this.name = 'UnsubscriptionError';
23
+ this.errors = errors;
24
+ });
25
+
26
+ function arrRemove(arr, item) {
27
+ if (arr) {
28
+ const index = arr.indexOf(item);
29
+ 0 <= index && arr.splice(index, 1);
30
+ }
31
+ }
32
+
33
+ class Subscription {
34
+ constructor(initialTeardown) {
35
+ this.initialTeardown = initialTeardown;
36
+ this.closed = false;
37
+ this._parentage = null;
38
+ this._finalizers = null;
39
+ }
40
+ unsubscribe() {
41
+ let errors;
42
+ if (!this.closed) {
43
+ this.closed = true;
44
+ const { _parentage } = this;
45
+ if (_parentage) {
46
+ this._parentage = null;
47
+ if (Array.isArray(_parentage)) {
48
+ for (const parent of _parentage) {
49
+ parent.remove(this);
50
+ }
51
+ }
52
+ else {
53
+ _parentage.remove(this);
54
+ }
55
+ }
56
+ const { initialTeardown: initialFinalizer } = this;
57
+ if (isFunction(initialFinalizer)) {
58
+ try {
59
+ initialFinalizer();
60
+ }
61
+ catch (e) {
62
+ errors = e instanceof UnsubscriptionError ? e.errors : [e];
63
+ }
64
+ }
65
+ const { _finalizers } = this;
66
+ if (_finalizers) {
67
+ this._finalizers = null;
68
+ for (const finalizer of _finalizers) {
69
+ try {
70
+ execFinalizer(finalizer);
71
+ }
72
+ catch (err) {
73
+ errors = errors !== null && errors !== void 0 ? errors : [];
74
+ if (err instanceof UnsubscriptionError) {
75
+ errors = [...errors, ...err.errors];
76
+ }
77
+ else {
78
+ errors.push(err);
79
+ }
80
+ }
81
+ }
82
+ }
83
+ if (errors) {
84
+ throw new UnsubscriptionError(errors);
85
+ }
86
+ }
87
+ }
88
+ add(teardown) {
89
+ var _a;
90
+ if (teardown && teardown !== this) {
91
+ if (this.closed) {
92
+ execFinalizer(teardown);
93
+ }
94
+ else {
95
+ if (teardown instanceof Subscription) {
96
+ if (teardown.closed || teardown._hasParent(this)) {
97
+ return;
98
+ }
99
+ teardown._addParent(this);
100
+ }
101
+ (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);
102
+ }
103
+ }
104
+ }
105
+ _hasParent(parent) {
106
+ const { _parentage } = this;
107
+ return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));
108
+ }
109
+ _addParent(parent) {
110
+ const { _parentage } = this;
111
+ this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;
112
+ }
113
+ _removeParent(parent) {
114
+ const { _parentage } = this;
115
+ if (_parentage === parent) {
116
+ this._parentage = null;
117
+ }
118
+ else if (Array.isArray(_parentage)) {
119
+ arrRemove(_parentage, parent);
120
+ }
121
+ }
122
+ remove(teardown) {
123
+ const { _finalizers } = this;
124
+ _finalizers && arrRemove(_finalizers, teardown);
125
+ if (teardown instanceof Subscription) {
126
+ teardown._removeParent(this);
127
+ }
128
+ }
129
+ }
130
+ Subscription.EMPTY = (() => {
131
+ const empty = new Subscription();
132
+ empty.closed = true;
133
+ return empty;
134
+ })();
135
+ const EMPTY_SUBSCRIPTION = Subscription.EMPTY;
136
+ function isSubscription(value) {
137
+ return (value instanceof Subscription ||
138
+ (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));
139
+ }
140
+ function execFinalizer(finalizer) {
141
+ if (isFunction(finalizer)) {
142
+ finalizer();
143
+ }
144
+ else {
145
+ finalizer.unsubscribe();
146
+ }
147
+ }
148
+
149
+ const config = {
150
+ onUnhandledError: null,
151
+ onStoppedNotification: null,
152
+ Promise: undefined,
153
+ useDeprecatedSynchronousErrorHandling: false,
154
+ useDeprecatedNextContext: false,
155
+ };
156
+
157
+ const timeoutProvider = {
158
+ setTimeout(handler, timeout, ...args) {
159
+ const { delegate } = timeoutProvider;
160
+ if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {
161
+ return delegate.setTimeout(handler, timeout, ...args);
162
+ }
163
+ return setTimeout(handler, timeout, ...args);
164
+ },
165
+ clearTimeout(handle) {
166
+ const { delegate } = timeoutProvider;
167
+ return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);
168
+ },
169
+ delegate: undefined,
170
+ };
171
+
172
+ function reportUnhandledError(err) {
173
+ timeoutProvider.setTimeout(() => {
174
+ const { onUnhandledError } = config;
175
+ if (onUnhandledError) {
176
+ onUnhandledError(err);
177
+ }
178
+ else {
179
+ throw err;
180
+ }
181
+ });
182
+ }
183
+
184
+ function noop() { }
185
+
186
+ const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined))();
187
+ function errorNotification(error) {
188
+ return createNotification('E', undefined, error);
189
+ }
190
+ function nextNotification(value) {
191
+ return createNotification('N', value, undefined);
192
+ }
193
+ function createNotification(kind, value, error) {
194
+ return {
195
+ kind,
196
+ value,
197
+ error,
198
+ };
199
+ }
200
+
201
+ function errorContext(cb) {
202
+ {
203
+ cb();
204
+ }
205
+ }
206
+
207
+ class Subscriber extends Subscription {
208
+ constructor(destination) {
209
+ super();
210
+ this.isStopped = false;
211
+ if (destination) {
212
+ this.destination = destination;
213
+ if (isSubscription(destination)) {
214
+ destination.add(this);
215
+ }
216
+ }
217
+ else {
218
+ this.destination = EMPTY_OBSERVER;
219
+ }
220
+ }
221
+ static create(next, error, complete) {
222
+ return new SafeSubscriber(next, error, complete);
223
+ }
224
+ next(value) {
225
+ if (this.isStopped) {
226
+ handleStoppedNotification(nextNotification(value), this);
227
+ }
228
+ else {
229
+ this._next(value);
230
+ }
231
+ }
232
+ error(err) {
233
+ if (this.isStopped) {
234
+ handleStoppedNotification(errorNotification(err), this);
235
+ }
236
+ else {
237
+ this.isStopped = true;
238
+ this._error(err);
239
+ }
240
+ }
241
+ complete() {
242
+ if (this.isStopped) {
243
+ handleStoppedNotification(COMPLETE_NOTIFICATION, this);
244
+ }
245
+ else {
246
+ this.isStopped = true;
247
+ this._complete();
248
+ }
249
+ }
250
+ unsubscribe() {
251
+ if (!this.closed) {
252
+ this.isStopped = true;
253
+ super.unsubscribe();
254
+ this.destination = null;
255
+ }
256
+ }
257
+ _next(value) {
258
+ this.destination.next(value);
259
+ }
260
+ _error(err) {
261
+ try {
262
+ this.destination.error(err);
263
+ }
264
+ finally {
265
+ this.unsubscribe();
266
+ }
267
+ }
268
+ _complete() {
269
+ try {
270
+ this.destination.complete();
271
+ }
272
+ finally {
273
+ this.unsubscribe();
274
+ }
275
+ }
276
+ }
277
+ const _bind = Function.prototype.bind;
278
+ function bind(fn, thisArg) {
279
+ return _bind.call(fn, thisArg);
280
+ }
281
+ class ConsumerObserver {
282
+ constructor(partialObserver) {
283
+ this.partialObserver = partialObserver;
284
+ }
285
+ next(value) {
286
+ const { partialObserver } = this;
287
+ if (partialObserver.next) {
288
+ try {
289
+ partialObserver.next(value);
290
+ }
291
+ catch (error) {
292
+ handleUnhandledError(error);
293
+ }
294
+ }
295
+ }
296
+ error(err) {
297
+ const { partialObserver } = this;
298
+ if (partialObserver.error) {
299
+ try {
300
+ partialObserver.error(err);
301
+ }
302
+ catch (error) {
303
+ handleUnhandledError(error);
304
+ }
305
+ }
306
+ else {
307
+ handleUnhandledError(err);
308
+ }
309
+ }
310
+ complete() {
311
+ const { partialObserver } = this;
312
+ if (partialObserver.complete) {
313
+ try {
314
+ partialObserver.complete();
315
+ }
316
+ catch (error) {
317
+ handleUnhandledError(error);
318
+ }
319
+ }
320
+ }
321
+ }
322
+ class SafeSubscriber extends Subscriber {
323
+ constructor(observerOrNext, error, complete) {
324
+ super();
325
+ let partialObserver;
326
+ if (isFunction(observerOrNext) || !observerOrNext) {
327
+ partialObserver = {
328
+ next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),
329
+ error: error !== null && error !== void 0 ? error : undefined,
330
+ complete: complete !== null && complete !== void 0 ? complete : undefined,
331
+ };
332
+ }
333
+ else {
334
+ let context;
335
+ if (this && config.useDeprecatedNextContext) {
336
+ context = Object.create(observerOrNext);
337
+ context.unsubscribe = () => this.unsubscribe();
338
+ partialObserver = {
339
+ next: observerOrNext.next && bind(observerOrNext.next, context),
340
+ error: observerOrNext.error && bind(observerOrNext.error, context),
341
+ complete: observerOrNext.complete && bind(observerOrNext.complete, context),
342
+ };
343
+ }
344
+ else {
345
+ partialObserver = observerOrNext;
346
+ }
347
+ }
348
+ this.destination = new ConsumerObserver(partialObserver);
349
+ }
350
+ }
351
+ function handleUnhandledError(error) {
352
+ {
353
+ reportUnhandledError(error);
354
+ }
355
+ }
356
+ function defaultErrorHandler(err) {
357
+ throw err;
358
+ }
359
+ function handleStoppedNotification(notification, subscriber) {
360
+ const { onStoppedNotification } = config;
361
+ onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));
362
+ }
363
+ const EMPTY_OBSERVER = {
364
+ closed: true,
365
+ next: noop,
366
+ error: defaultErrorHandler,
367
+ complete: noop,
368
+ };
369
+
370
+ const observable = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();
371
+
372
+ function identity(x) {
373
+ return x;
374
+ }
375
+
376
+ function pipeFromArray(fns) {
377
+ if (fns.length === 0) {
378
+ return identity;
379
+ }
380
+ if (fns.length === 1) {
381
+ return fns[0];
382
+ }
383
+ return function piped(input) {
384
+ return fns.reduce((prev, fn) => fn(prev), input);
385
+ };
386
+ }
387
+
388
+ class Observable {
389
+ constructor(subscribe) {
390
+ if (subscribe) {
391
+ this._subscribe = subscribe;
392
+ }
393
+ }
394
+ lift(operator) {
395
+ const observable = new Observable();
396
+ observable.source = this;
397
+ observable.operator = operator;
398
+ return observable;
399
+ }
400
+ subscribe(observerOrNext, error, complete) {
401
+ const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);
402
+ errorContext(() => {
403
+ const { operator, source } = this;
404
+ subscriber.add(operator
405
+ ?
406
+ operator.call(subscriber, source)
407
+ : source
408
+ ?
409
+ this._subscribe(subscriber)
410
+ :
411
+ this._trySubscribe(subscriber));
412
+ });
413
+ return subscriber;
414
+ }
415
+ _trySubscribe(sink) {
416
+ try {
417
+ return this._subscribe(sink);
418
+ }
419
+ catch (err) {
420
+ sink.error(err);
421
+ }
422
+ }
423
+ forEach(next, promiseCtor) {
424
+ promiseCtor = getPromiseCtor(promiseCtor);
425
+ return new promiseCtor((resolve, reject) => {
426
+ const subscriber = new SafeSubscriber({
427
+ next: (value) => {
428
+ try {
429
+ next(value);
430
+ }
431
+ catch (err) {
432
+ reject(err);
433
+ subscriber.unsubscribe();
434
+ }
435
+ },
436
+ error: reject,
437
+ complete: resolve,
438
+ });
439
+ this.subscribe(subscriber);
440
+ });
441
+ }
442
+ _subscribe(subscriber) {
443
+ var _a;
444
+ return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);
445
+ }
446
+ [observable]() {
447
+ return this;
448
+ }
449
+ pipe(...operations) {
450
+ return pipeFromArray(operations)(this);
451
+ }
452
+ toPromise(promiseCtor) {
453
+ promiseCtor = getPromiseCtor(promiseCtor);
454
+ return new promiseCtor((resolve, reject) => {
455
+ let value;
456
+ this.subscribe((x) => (value = x), (err) => reject(err), () => resolve(value));
457
+ });
458
+ }
459
+ }
460
+ Observable.create = (subscribe) => {
461
+ return new Observable(subscribe);
462
+ };
463
+ function getPromiseCtor(promiseCtor) {
464
+ var _a;
465
+ return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;
466
+ }
467
+ function isObserver(value) {
468
+ return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);
469
+ }
470
+ function isSubscriber(value) {
471
+ return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));
472
+ }
473
+
474
+ const ObjectUnsubscribedError = createErrorClass((_super) => function ObjectUnsubscribedErrorImpl() {
475
+ _super(this);
476
+ this.name = 'ObjectUnsubscribedError';
477
+ this.message = 'object unsubscribed';
478
+ });
479
+
480
+ class Subject extends Observable {
481
+ constructor() {
482
+ super();
483
+ this.closed = false;
484
+ this.currentObservers = null;
485
+ this.observers = [];
486
+ this.isStopped = false;
487
+ this.hasError = false;
488
+ this.thrownError = null;
489
+ }
490
+ lift(operator) {
491
+ const subject = new AnonymousSubject(this, this);
492
+ subject.operator = operator;
493
+ return subject;
494
+ }
495
+ _throwIfClosed() {
496
+ if (this.closed) {
497
+ throw new ObjectUnsubscribedError();
498
+ }
499
+ }
500
+ next(value) {
501
+ errorContext(() => {
502
+ this._throwIfClosed();
503
+ if (!this.isStopped) {
504
+ if (!this.currentObservers) {
505
+ this.currentObservers = Array.from(this.observers);
506
+ }
507
+ for (const observer of this.currentObservers) {
508
+ observer.next(value);
509
+ }
510
+ }
511
+ });
512
+ }
513
+ error(err) {
514
+ errorContext(() => {
515
+ this._throwIfClosed();
516
+ if (!this.isStopped) {
517
+ this.hasError = this.isStopped = true;
518
+ this.thrownError = err;
519
+ const { observers } = this;
520
+ while (observers.length) {
521
+ observers.shift().error(err);
522
+ }
523
+ }
524
+ });
525
+ }
526
+ complete() {
527
+ errorContext(() => {
528
+ this._throwIfClosed();
529
+ if (!this.isStopped) {
530
+ this.isStopped = true;
531
+ const { observers } = this;
532
+ while (observers.length) {
533
+ observers.shift().complete();
534
+ }
535
+ }
536
+ });
537
+ }
538
+ unsubscribe() {
539
+ this.isStopped = this.closed = true;
540
+ this.observers = this.currentObservers = null;
541
+ }
542
+ get observed() {
543
+ var _a;
544
+ return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;
545
+ }
546
+ _trySubscribe(subscriber) {
547
+ this._throwIfClosed();
548
+ return super._trySubscribe(subscriber);
549
+ }
550
+ _subscribe(subscriber) {
551
+ this._throwIfClosed();
552
+ this._checkFinalizedStatuses(subscriber);
553
+ return this._innerSubscribe(subscriber);
554
+ }
555
+ _innerSubscribe(subscriber) {
556
+ const { hasError, isStopped, observers } = this;
557
+ if (hasError || isStopped) {
558
+ return EMPTY_SUBSCRIPTION;
559
+ }
560
+ this.currentObservers = null;
561
+ observers.push(subscriber);
562
+ return new Subscription(() => {
563
+ this.currentObservers = null;
564
+ arrRemove(observers, subscriber);
565
+ });
566
+ }
567
+ _checkFinalizedStatuses(subscriber) {
568
+ const { hasError, thrownError, isStopped } = this;
569
+ if (hasError) {
570
+ subscriber.error(thrownError);
571
+ }
572
+ else if (isStopped) {
573
+ subscriber.complete();
574
+ }
575
+ }
576
+ asObservable() {
577
+ const observable = new Observable();
578
+ observable.source = this;
579
+ return observable;
580
+ }
581
+ }
582
+ Subject.create = (destination, source) => {
583
+ return new AnonymousSubject(destination, source);
584
+ };
585
+ class AnonymousSubject extends Subject {
586
+ constructor(destination, source) {
587
+ super();
588
+ this.destination = destination;
589
+ this.source = source;
590
+ }
591
+ next(value) {
592
+ var _a, _b;
593
+ (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);
594
+ }
595
+ error(err) {
596
+ var _a, _b;
597
+ (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);
598
+ }
599
+ complete() {
600
+ var _a, _b;
601
+ (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);
602
+ }
603
+ _subscribe(subscriber) {
604
+ var _a, _b;
605
+ return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;
606
+ }
607
+ }
608
+
609
+ class BehaviorSubject extends Subject {
610
+ constructor(_value) {
611
+ super();
612
+ this._value = _value;
613
+ }
614
+ get value() {
615
+ return this.getValue();
616
+ }
617
+ _subscribe(subscriber) {
618
+ const subscription = super._subscribe(subscriber);
619
+ !subscription.closed && subscriber.next(this._value);
620
+ return subscription;
621
+ }
622
+ getValue() {
623
+ const { hasError, thrownError, _value } = this;
624
+ if (hasError) {
625
+ throw thrownError;
626
+ }
627
+ this._throwIfClosed();
628
+ return _value;
629
+ }
630
+ next(value) {
631
+ super.next((this._value = value));
632
+ }
633
+ }
634
+
635
+ class FormController {
636
+ constructor(schema) {
637
+ this.values = new BehaviorSubject({});
638
+ this.errors = new BehaviorSubject({});
639
+ this._initialValues = {};
640
+ this._values = {};
641
+ this._errors = {};
642
+ this._isValid = true;
643
+ this._schema = schema;
644
+ }
645
+ processArrayError(obj, property, remainingProperties, message) {
646
+ // Extract array name and index from the property string
647
+ const [arrayName, indexStr] = property
648
+ .match(/^([a-zA-Z0-9]+)\[(\d+)\]/)
649
+ .slice(1);
650
+ const index = parseInt(indexStr, 10);
651
+ // Ensure the array exists and has an entry at the given index
652
+ obj[arrayName] = obj[arrayName] || [];
653
+ obj[arrayName][index] = obj[arrayName][index] || {};
654
+ // Recursively set the error if there are remaining properties, else set the error message
655
+ if (remainingProperties.length) {
656
+ this.setNestedError(obj[arrayName][index], remainingProperties, message);
657
+ }
658
+ else {
659
+ obj[arrayName][index] = message;
660
+ }
661
+ }
662
+ processRegularError(obj, property, remainingProperties, message) {
663
+ // Ensure the property exists
664
+ obj[property] = obj[property] || {};
665
+ // Recursively set the error if there are remaining properties, else set the error message
666
+ if (remainingProperties.length) {
667
+ this.setNestedError(obj[property], remainingProperties, message);
668
+ }
669
+ else {
670
+ obj[property] = message;
671
+ }
672
+ }
673
+ setNestedError(obj, properties, message) {
674
+ const property = properties.shift();
675
+ const isArrayError = property.includes('[');
676
+ if (isArrayError) {
677
+ this.processArrayError(obj, property, properties, message);
678
+ }
679
+ else {
680
+ this.processRegularError(obj, property, properties, message);
681
+ }
682
+ }
683
+ setError(obj, path, message) {
684
+ // Convert path to properties array
685
+ const properties = Array.isArray(path) ? path : path.split('.');
686
+ this.setNestedError(obj, properties, message);
687
+ }
688
+ async validate(context) {
689
+ this._isValid = true;
690
+ this._errors = {};
691
+ try {
692
+ await this._schema.validate(this._values, { context, abortEarly: false });
693
+ }
694
+ catch (err) {
695
+ this._isValid = false;
696
+ err.inner.forEach((item) => {
697
+ this.setError(this._errors, item.path, item.message);
698
+ });
699
+ }
700
+ this.errors.next(this._errors);
701
+ return this._isValid;
702
+ }
703
+ async validateAndSubmit(submitHandler, context) {
704
+ const isValid = await this.validate(context || {});
705
+ if (isValid) {
706
+ submitHandler();
707
+ }
708
+ }
709
+ setInitialValues(values) {
710
+ this._initialValues = values;
711
+ this._values = values;
712
+ this.values.next(this._values);
713
+ }
714
+ setValues(values) {
715
+ this._values = Object.assign(Object.assign({}, this._values), values);
716
+ this.values.next(this._values);
717
+ }
718
+ resetValues() {
719
+ this._values = this._initialValues;
720
+ this.values.next(this._values);
721
+ }
722
+ getInitialValues() {
723
+ return this._initialValues;
724
+ }
725
+ }
726
+
1
727
  /**
2
728
  * Based on Kendo UI Core expression code <https://github.com/telerik/kendo-ui-core#license-information>
3
729
  */
@@ -2004,4 +2730,4 @@ class ObjectSchema extends Schema {
2004
2730
  }
2005
2731
  create$3.prototype = ObjectSchema.prototype;
2006
2732
 
2007
- export { create$6 as a, create$5 as b, create$3 as c };
2733
+ export { FormController as F, create$6 as a, create$5 as b, create$3 as c };