@justifi/webcomponents 4.14.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 (217) hide show
  1. package/dist/cjs/{Payment-eceed10f.js → Payment-24f22eca.js} +2 -1
  2. package/dist/cjs/{SubAccount-b3902202.js → SubAccount-f1eda5da.js} +1 -1
  3. package/dist/cjs/additional-questions-details_5.cjs.entry.js +1 -1
  4. package/dist/cjs/business-additional-questions-schema-e7dd7bc3.js +57 -0
  5. package/dist/cjs/gross-payment-chart-core.cjs.entry.js +1 -1
  6. package/dist/cjs/{index.esm-d25bd7bf.js → index.esm-a32e1831.js} +727 -0
  7. package/dist/cjs/justifi-additional-questions-form-step_5.cjs.entry.js +14 -11
  8. package/dist/cjs/justifi-additional-questions_4.cjs.entry.js +4 -1
  9. package/dist/cjs/justifi-billing-form_2.cjs.entry.js +1796 -0
  10. package/dist/cjs/justifi-business-form.cjs.entry.js +6 -6
  11. package/dist/cjs/justifi-business-list.cjs.entry.js +2 -2
  12. package/dist/cjs/justifi-checkout-core.cjs.entry.js +7 -3
  13. package/dist/cjs/justifi-checkout.cjs.entry.js +6 -2
  14. package/dist/cjs/justifi-new-payment-method_4.cjs.entry.js +13 -11
  15. package/dist/cjs/justifi-owner-form.cjs.entry.js +10 -6
  16. package/dist/cjs/justifi-payment-balance-transactions.cjs.entry.js +2 -2
  17. package/dist/cjs/justifi-payment-details.cjs.entry.js +2 -2
  18. package/dist/cjs/justifi-payment-form.cjs.entry.js +3 -3
  19. package/dist/cjs/justifi-payment-method-selector.cjs.entry.js +1 -1
  20. package/dist/cjs/justifi-payments-list.cjs.entry.js +2 -2
  21. package/dist/cjs/justifi-payout-details.cjs.entry.js +2 -2
  22. package/dist/cjs/justifi-payouts-list.cjs.entry.js +2 -2
  23. package/dist/cjs/justifi-proceeds-list.cjs.entry.js +2 -2
  24. package/dist/cjs/justifi-refund-form.cjs.entry.js +3 -4
  25. package/dist/cjs/justifi-subaccount-details.cjs.entry.js +3 -3
  26. package/dist/cjs/justifi-subaccounts-list.cjs.entry.js +3 -3
  27. package/dist/cjs/loader.cjs.js +1 -1
  28. package/dist/cjs/payload-parsers-c2df4b29.js +95 -0
  29. package/dist/cjs/payment-details-core.cjs.entry.js +1 -1
  30. package/dist/cjs/{payment.service-019157e9.js → payment.service-35298e95.js} +1 -1
  31. package/dist/cjs/payments-list-core.cjs.entry.js +2 -2
  32. package/dist/cjs/payout-details-core.cjs.entry.js +1 -1
  33. package/dist/cjs/{payout.service-7203762f.js → payout.service-eec372aa.js} +1 -1
  34. package/dist/cjs/payouts-list-core.cjs.entry.js +2 -2
  35. package/dist/cjs/{payload-parsers-6c4b5323.js → schema-validations-3c70335c.js} +15 -89
  36. package/dist/cjs/select-input.cjs.entry.js +31 -0
  37. package/dist/cjs/subaccount-account-details_4.cjs.entry.js +1 -1
  38. package/dist/cjs/text-input.cjs.entry.js +30 -0
  39. package/dist/cjs/{utils-6f62f7a1.js → utils-e58fe016.js} +0 -2
  40. package/dist/cjs/webcomponents.cjs.js +1 -1
  41. package/dist/collection/api/Payment.js +2 -1
  42. package/dist/collection/collection-manifest.json +1 -1
  43. package/dist/collection/components/billing-form/billing-form-schema.js +8 -8
  44. package/dist/collection/components/billing-form/billing-form.js +49 -89
  45. package/dist/collection/components/billing-form/test/billing-form.spec.js +2 -1
  46. package/dist/collection/components/business-forms/business-form/business-representative/business-representative.js +4 -1
  47. package/dist/collection/components/business-forms/owner-form/owner-form.js +5 -1
  48. package/dist/collection/components/business-forms/payment-provisioning/business-representative/business-representative-form-step.js +4 -1
  49. package/dist/collection/components/business-forms/schemas/business-identity-schema.js +4 -2
  50. package/dist/collection/components/business-forms/schemas/schema-validations.js +5 -0
  51. package/dist/collection/components/checkout/checkout-core.js +74 -2
  52. package/dist/collection/components/checkout/checkout.js +73 -1
  53. package/dist/collection/components/checkout/payment-method-options.css +6 -6
  54. package/dist/collection/components/checkout/payment-method-options.js +42 -6
  55. package/dist/collection/components/checkout/{sezzel-payment-method.js → sezzle-payment-method.js} +2 -2
  56. package/dist/collection/components/checkout/test/checkout-core.spec.js +1 -1
  57. package/dist/collection/components/payment-form/payment-form.js +2 -3
  58. package/dist/collection/components/payment-form/payment-method-selector.js +1 -1
  59. package/dist/collection/components/payment-form/test/payment-form.spec.js +1 -1
  60. package/dist/collection/components/payment-method-form/payment-method-form.js +1 -1
  61. package/dist/docs.json +265 -80
  62. package/dist/esm/{Payment-ef9fc1ae.js → Payment-3e94da9c.js} +2 -1
  63. package/dist/esm/{SubAccount-f4ae9809.js → SubAccount-80d46814.js} +1 -1
  64. package/dist/esm/additional-questions-details_5.entry.js +1 -1
  65. package/dist/esm/{business-additional-questions-schema-e96b0509.js → business-additional-questions-schema-1fdc5c40.js} +2 -2
  66. package/dist/esm/gross-payment-chart-core.entry.js +1 -1
  67. package/dist/esm/{index.esm-22b47398.js → index.esm-d98bc080.js} +727 -1
  68. package/dist/esm/justifi-additional-questions-form-step_5.entry.js +10 -7
  69. package/dist/esm/justifi-additional-questions_4.entry.js +4 -1
  70. package/dist/esm/justifi-billing-form_2.entry.js +1791 -0
  71. package/dist/esm/justifi-business-form.entry.js +5 -5
  72. package/dist/esm/justifi-business-list.entry.js +2 -2
  73. package/dist/esm/justifi-checkout-core.entry.js +7 -3
  74. package/dist/esm/justifi-checkout.entry.js +6 -2
  75. package/dist/esm/justifi-new-payment-method_4.entry.js +13 -11
  76. package/dist/esm/justifi-owner-form.entry.js +9 -5
  77. package/dist/esm/justifi-payment-balance-transactions.entry.js +2 -2
  78. package/dist/esm/justifi-payment-details.entry.js +2 -2
  79. package/dist/esm/justifi-payment-form.entry.js +3 -3
  80. package/dist/esm/justifi-payment-method-selector.entry.js +1 -1
  81. package/dist/esm/justifi-payments-list.entry.js +2 -2
  82. package/dist/esm/justifi-payout-details.entry.js +2 -2
  83. package/dist/esm/justifi-payouts-list.entry.js +2 -2
  84. package/dist/esm/justifi-proceeds-list.entry.js +2 -2
  85. package/dist/esm/justifi-refund-form.entry.js +2 -3
  86. package/dist/esm/justifi-subaccount-details.entry.js +3 -3
  87. package/dist/esm/justifi-subaccounts-list.entry.js +3 -3
  88. package/dist/esm/loader.js +1 -1
  89. package/dist/esm/payload-parsers-fd35eeca.js +88 -0
  90. package/dist/esm/payment-details-core.entry.js +1 -1
  91. package/dist/esm/{payment.service-03e274d7.js → payment.service-c62d82d3.js} +1 -1
  92. package/dist/esm/payments-list-core.entry.js +2 -2
  93. package/dist/esm/payout-details-core.entry.js +1 -1
  94. package/dist/esm/{payout.service-9823d66d.js → payout.service-28b9594f.js} +1 -1
  95. package/dist/esm/payouts-list-core.entry.js +2 -2
  96. package/dist/esm/{payload-parsers-32028700.js → schema-validations-31feaa53.js} +7 -84
  97. package/dist/{module/select-input2.js → esm/select-input.entry.js} +7 -30
  98. package/dist/esm/subaccount-account-details_4.entry.js +1 -1
  99. package/dist/{module/text-input2.js → esm/text-input.entry.js} +7 -29
  100. package/dist/esm/{utils-243abdb4.js → utils-37533368.js} +1 -2
  101. package/dist/esm/webcomponents.js +1 -1
  102. package/dist/module/Payment.js +2 -1
  103. package/dist/module/billing-form.js +41 -62
  104. package/dist/module/business-additional-questions-form-step.js +1 -1
  105. package/dist/module/business-additional-questions-schema.js +1 -1
  106. package/dist/module/business-address-schema.js +1 -1
  107. package/dist/module/business-core-info-form-step.js +1 -1
  108. package/dist/module/business-core-info-schema.js +1 -1
  109. package/dist/module/business-form-types.js +1 -154
  110. package/dist/module/business-identity-schema.js +5 -3
  111. package/dist/module/business-representative-form-step.js +5 -2
  112. package/dist/module/business-representative.js +4 -1
  113. package/dist/module/checkout-core.js +27 -19
  114. package/dist/module/identity-address-form.js +1 -1
  115. package/dist/module/index.esm.js +727 -1
  116. package/dist/module/justifi-business-details.js +1 -1
  117. package/dist/module/justifi-business-form.js +3 -4
  118. package/dist/module/justifi-checkout.js +29 -21
  119. package/dist/module/justifi-gross-payment-chart.js +1 -1
  120. package/dist/module/justifi-payment-details.js +1 -1
  121. package/dist/module/justifi-payment-form.js +13 -13
  122. package/dist/module/justifi-payment-provisioning.js +2 -2
  123. package/dist/module/justifi-payments-list.js +1 -1
  124. package/dist/module/justifi-payout-details.js +1 -1
  125. package/dist/module/justifi-payouts-list.js +1 -1
  126. package/dist/module/justifi-refund-form.js +1 -2
  127. package/dist/module/justifi-sezzle-payment-method.d.ts +11 -0
  128. package/dist/module/justifi-sezzle-payment-method.js +6 -0
  129. package/dist/module/legal-address-form-step.js +2 -2
  130. package/dist/module/legal-address-form.js +1 -1
  131. package/dist/module/new-payment-method.js +9 -9
  132. package/dist/module/owner-form.js +8 -4
  133. package/dist/module/payment-method-form.js +1 -1
  134. package/dist/module/payment-method-options.js +26 -22
  135. package/dist/module/schema-validations.js +159 -0
  136. package/dist/module/select-input.js +48 -1
  137. package/dist/module/{sezzel-payment-method.js → sezzle-payment-method.js} +6 -6
  138. package/dist/module/text-input.js +46 -1
  139. package/dist/module/utils2.js +1 -2
  140. package/dist/module/utils3.js +12 -21
  141. package/dist/module/utils4.js +21 -12
  142. package/dist/types/api/Payment.d.ts +2 -1
  143. package/dist/types/components/billing-form/billing-form.d.ts +8 -15
  144. package/dist/types/components/business-forms/business-form/business-representative/business-representative.d.ts +1 -0
  145. package/dist/types/components/business-forms/owner-form/owner-form.d.ts +1 -0
  146. package/dist/types/components/business-forms/payment-provisioning/business-representative/business-representative-form-step.d.ts +1 -0
  147. package/dist/types/components/business-forms/schemas/business-form-schema.d.ts +3 -1
  148. package/dist/types/components/business-forms/schemas/business-identity-schema.d.ts +2 -0
  149. package/dist/types/components/checkout/checkout-core.d.ts +4 -0
  150. package/dist/types/components/checkout/checkout.d.ts +4 -0
  151. package/dist/types/components/checkout/payment-method-options.d.ts +2 -0
  152. package/dist/types/components/checkout/{sezzel-payment-method.d.ts → sezzle-payment-method.d.ts} +1 -1
  153. package/dist/types/components.d.ts +35 -28
  154. package/dist/webcomponents/{p-96a86f04.entry.js → p-0603a526.entry.js} +1 -1
  155. package/dist/webcomponents/{p-3917edbf.entry.js → p-09a6df17.entry.js} +1 -1
  156. package/dist/webcomponents/{p-7da249b8.entry.js → p-1367c4c7.entry.js} +1 -1
  157. package/dist/webcomponents/{p-a6f170ba.entry.js → p-1f23c9d5.entry.js} +1 -1
  158. package/dist/webcomponents/p-21f301a0.entry.js +1 -0
  159. package/dist/webcomponents/p-243caf7c.entry.js +1 -0
  160. package/dist/webcomponents/{p-c6e207f6.entry.js → p-27ea1f3f.entry.js} +1 -1
  161. package/dist/webcomponents/{p-28b38699.js → p-3cd675e7.js} +1 -1
  162. package/dist/webcomponents/{p-c48a99b9.entry.js → p-55d37253.entry.js} +1 -1
  163. package/dist/webcomponents/{p-0b8c1ffc.entry.js → p-60ea8fd1.entry.js} +1 -1
  164. package/dist/webcomponents/p-624ed594.entry.js +1 -0
  165. package/dist/webcomponents/{p-598bb67c.entry.js → p-62bbcdfb.entry.js} +1 -1
  166. package/dist/webcomponents/p-76e74f01.js +1 -0
  167. package/dist/webcomponents/p-7ca334d6.entry.js +1 -0
  168. package/dist/webcomponents/p-7d6c67bb.js +1 -0
  169. package/dist/webcomponents/{p-5dac370e.entry.js → p-7ea5b11c.entry.js} +1 -1
  170. package/dist/webcomponents/p-83ae34bf.js +1 -0
  171. package/dist/webcomponents/p-84aea66c.entry.js +1 -0
  172. package/dist/webcomponents/{p-4824018b.entry.js → p-8960e936.entry.js} +1 -1
  173. package/dist/webcomponents/{p-28181471.entry.js → p-8d53f1de.entry.js} +1 -1
  174. package/dist/webcomponents/p-969572f2.entry.js +1 -0
  175. package/dist/webcomponents/{p-fce2b224.entry.js → p-9a36fca6.entry.js} +1 -1
  176. package/dist/webcomponents/p-a38fdda7.entry.js +1 -0
  177. package/dist/webcomponents/{p-1334f776.entry.js → p-adc9ae0f.entry.js} +1 -1
  178. package/dist/webcomponents/p-b53d7b7f.js +1 -0
  179. package/dist/webcomponents/p-b8d70349.entry.js +1 -0
  180. package/dist/webcomponents/p-b9db1c52.entry.js +1 -0
  181. package/dist/webcomponents/{p-edb66ae0.js → p-ca39c89f.js} +1 -1
  182. package/dist/webcomponents/{p-02993072.entry.js → p-d6b980a3.entry.js} +1 -1
  183. package/dist/webcomponents/p-dd609661.js +1 -0
  184. package/dist/webcomponents/{p-7c5f15f8.entry.js → p-de4ffaa1.entry.js} +1 -1
  185. package/dist/webcomponents/{p-9f529959.entry.js → p-e1a3a670.entry.js} +1 -1
  186. package/dist/webcomponents/{p-d2fcc58b.entry.js → p-e4be71ee.entry.js} +1 -1
  187. package/dist/webcomponents/p-e8706cc4.js +1 -0
  188. package/dist/webcomponents/{p-65510838.js → p-f4dec164.js} +1 -1
  189. package/dist/webcomponents/p-f942f90b.entry.js +1 -0
  190. package/dist/webcomponents/p-fea93cb9.entry.js +1 -0
  191. package/dist/webcomponents/{p-f76283a5.entry.js → p-fee64d38.entry.js} +1 -1
  192. package/dist/webcomponents/webcomponents.css +1 -1
  193. package/dist/webcomponents/webcomponents.esm.js +1 -1
  194. package/package.json +1 -1
  195. package/dist/cjs/business-additional-questions-schema-0a35f597.js +0 -57
  196. package/dist/cjs/form-2ad3d374.js +0 -729
  197. package/dist/cjs/justifi-billing-form_4.cjs.entry.js +0 -1864
  198. package/dist/esm/form-5279c05a.js +0 -727
  199. package/dist/esm/justifi-billing-form_4.entry.js +0 -1857
  200. package/dist/module/form.js +0 -727
  201. package/dist/module/justifi-sezzel-payment-method.d.ts +0 -11
  202. package/dist/module/justifi-sezzel-payment-method.js +0 -6
  203. package/dist/webcomponents/p-02fa533c.js +0 -1
  204. package/dist/webcomponents/p-132ba228.js +0 -1
  205. package/dist/webcomponents/p-230b96df.entry.js +0 -1
  206. package/dist/webcomponents/p-3d2f2937.entry.js +0 -1
  207. package/dist/webcomponents/p-3da23f21.js +0 -1
  208. package/dist/webcomponents/p-617caf03.entry.js +0 -1
  209. package/dist/webcomponents/p-64710363.entry.js +0 -1
  210. package/dist/webcomponents/p-70d43109.entry.js +0 -1
  211. package/dist/webcomponents/p-9b4b91ba.js +0 -1
  212. package/dist/webcomponents/p-ade12f56.js +0 -1
  213. package/dist/webcomponents/p-c1be3378.entry.js +0 -1
  214. package/dist/webcomponents/p-c211d068.js +0 -1
  215. package/dist/webcomponents/p-c3d5f7de.entry.js +0 -1
  216. package/dist/webcomponents/p-d57f5f01.entry.js +0 -1
  217. package/dist/webcomponents/p-f5ae07c4.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 };