@justifi/webcomponents 6.5.1-rc.5 → 6.5.1-rc.7
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.
- package/dist/cjs/{check-pkg-version-T54BeR4n.js → check-pkg-version-BHAFLsKe.js} +1 -1
- package/dist/cjs/hidden-input_2.cjs.entry.js +1 -1
- package/dist/cjs/internal-tokenize-payment-method_7.cjs.entry.js +2 -2
- package/dist/cjs/justifi-apple-pay_7.cjs.entry.js +2 -2
- package/dist/cjs/justifi-business-details.cjs.entry.js +2 -2
- package/dist/cjs/justifi-business-form.cjs.entry.js +2 -2
- package/dist/cjs/justifi-checkout.cjs.entry.js +2 -2
- package/dist/cjs/justifi-checkouts-list.cjs.entry.js +2 -2
- package/dist/cjs/justifi-dispute-management.cjs.entry.js +2 -2
- package/dist/cjs/justifi-dispute-notification_3.cjs.entry.js +2 -2
- package/dist/cjs/justifi-gross-payment-chart.cjs.entry.js +2 -2
- package/dist/cjs/justifi-order-terminals.cjs.entry.js +2 -2
- package/dist/cjs/justifi-payment-details.cjs.entry.js +2 -2
- package/dist/cjs/justifi-payment-provisioning.cjs.entry.js +2 -2
- package/dist/cjs/justifi-payment-transactions-list.cjs.entry.js +2 -2
- package/dist/cjs/justifi-payments-list.cjs.entry.js +2 -2
- package/dist/cjs/justifi-payout-details.cjs.entry.js +2 -2
- package/dist/cjs/justifi-payout-transactions-list.cjs.entry.js +2 -2
- package/dist/cjs/justifi-payouts-list.cjs.entry.js +2 -2
- package/dist/cjs/justifi-refund-payment.cjs.entry.js +2 -2
- package/dist/cjs/justifi-season-interruption-insurance.cjs.entry.js +2 -2
- package/dist/cjs/justifi-terminal-orders-list.cjs.entry.js +2 -2
- package/dist/cjs/justifi-terminals-list.cjs.entry.js +2 -2
- package/dist/cjs/{package-JstJdxIu.js → package-CZK-K7yM.js} +1 -1
- package/dist/docs.json +1 -1
- package/dist/esm/{check-pkg-version-C8hgGLFx.js → check-pkg-version-ClZuo82s.js} +1 -1
- package/dist/esm/hidden-input_2.entry.js +1 -1
- package/dist/esm/internal-tokenize-payment-method_7.entry.js +2 -2
- package/dist/esm/justifi-apple-pay_7.entry.js +2 -2
- package/dist/esm/justifi-business-details.entry.js +2 -2
- package/dist/esm/justifi-business-form.entry.js +2 -2
- package/dist/esm/justifi-checkout.entry.js +2 -2
- package/dist/esm/justifi-checkouts-list.entry.js +2 -2
- package/dist/esm/justifi-dispute-management.entry.js +2 -2
- package/dist/esm/justifi-dispute-notification_3.entry.js +2 -2
- package/dist/esm/justifi-gross-payment-chart.entry.js +2 -2
- package/dist/esm/justifi-order-terminals.entry.js +2 -2
- package/dist/esm/justifi-payment-details.entry.js +2 -2
- package/dist/esm/justifi-payment-provisioning.entry.js +2 -2
- package/dist/esm/justifi-payment-transactions-list.entry.js +2 -2
- package/dist/esm/justifi-payments-list.entry.js +2 -2
- package/dist/esm/justifi-payout-details.entry.js +2 -2
- package/dist/esm/justifi-payout-transactions-list.entry.js +2 -2
- package/dist/esm/justifi-payouts-list.entry.js +2 -2
- package/dist/esm/justifi-refund-payment.entry.js +2 -2
- package/dist/esm/justifi-season-interruption-insurance.entry.js +2 -2
- package/dist/esm/justifi-terminal-orders-list.entry.js +2 -2
- package/dist/esm/justifi-terminals-list.entry.js +2 -2
- package/dist/esm/{package-DEhd71m_.js → package-C3_8r8V7.js} +1 -1
- package/dist/module/package.js +1 -1
- package/dist/webcomponents/{p-266a9aee.entry.js → p-082efda3.entry.js} +1 -1
- package/dist/webcomponents/{p-de35abb6.entry.js → p-12499226.entry.js} +1 -1
- package/dist/webcomponents/p-1ddddc82.entry.js +1 -0
- package/dist/webcomponents/{p-5a3687bf.entry.js → p-215ce79e.entry.js} +1 -1
- package/dist/webcomponents/{p-9fef2496.entry.js → p-239d1d07.entry.js} +1 -1
- package/dist/webcomponents/{p-04b23547.entry.js → p-23a3e38e.entry.js} +1 -1
- package/dist/webcomponents/{p-8cfda6c1.entry.js → p-27b88afd.entry.js} +1 -1
- package/dist/webcomponents/{p-cfd858be.entry.js → p-2a347349.entry.js} +1 -1
- package/dist/webcomponents/{p-20608f0c.entry.js → p-3787cf63.entry.js} +1 -1
- package/dist/webcomponents/{p-73388c68.entry.js → p-476ebd43.entry.js} +1 -1
- package/dist/webcomponents/p-64ddd8ea.entry.js +1 -0
- package/dist/webcomponents/p-7becc3d3.entry.js +1 -0
- package/dist/webcomponents/p-8071daf3.entry.js +1 -0
- package/dist/webcomponents/{p-d1951301.entry.js → p-93aa2d31.entry.js} +1 -1
- package/dist/webcomponents/{p-a9bd4e27.entry.js → p-9e346c2e.entry.js} +1 -1
- package/dist/webcomponents/p-C3_8r8V7.js +1 -0
- package/dist/webcomponents/{p-90de8098.entry.js → p-a9ea2c82.entry.js} +1 -1
- package/dist/webcomponents/{p-7a3d9c24.entry.js → p-aaef1450.entry.js} +1 -1
- package/dist/webcomponents/{p-7128920a.entry.js → p-beb0a3c8.entry.js} +1 -1
- package/dist/webcomponents/{p-c364c76d.entry.js → p-d3697504.entry.js} +1 -1
- package/dist/webcomponents/{p-42c3bda4.entry.js → p-d9c090b6.entry.js} +1 -1
- package/dist/webcomponents/{p-e47a2592.entry.js → p-f11eb1bc.entry.js} +1 -1
- package/dist/webcomponents/{p-2bafa257.entry.js → p-f358610a.entry.js} +1 -1
- package/dist/webcomponents/{p-C6wS5-M7.js → p-sassRpOu.js} +1 -1
- package/dist/webcomponents/webcomponents.esm.js +1 -1
- package/docs/entities/businessdetails/index.mdx +50 -70
- package/docs/entities/businessform/index.mdx +13 -18
- package/docs/entities/payment-provisioning/index.mdx +8 -16
- package/docs/helpers/PartsTable.jsx +29 -0
- package/docs/helpers/PropsTable.jsx +35 -0
- package/docs/merchant-tools/checkouts-list/index.mdx +49 -63
- package/docs/merchant-tools/gross-payments-chart/index.mdx +16 -18
- package/docs/merchant-tools/order-terminals/index.mdx +12 -16
- package/docs/merchant-tools/payment-details/index.mdx +13 -15
- package/docs/merchant-tools/payment-transactions-list/index.mdx +12 -16
- package/docs/merchant-tools/payments-list/index.mdx +12 -18
- package/docs/merchant-tools/payout-details/index.mdx +46 -56
- package/docs/merchant-tools/payout-transactions-list/index.mdx +12 -16
- package/docs/merchant-tools/payouts-list/index.mdx +12 -18
- package/docs/merchant-tools/terminal-orders-list/index.mdx +12 -16
- package/docs/merchant-tools/terminals-list/index.mdx +12 -16
- package/docs/modular-checkout/index.mdx +0 -5
- package/docs/modular-checkout/introduction/index.mdx +12 -14
- package/docs/modular-checkout/sub-components/apple-pay.mdx +27 -21
- package/docs/modular-checkout/sub-components/bank-account-form.mdx +51 -50
- package/docs/modular-checkout/sub-components/card-form.mdx +50 -53
- package/docs/modular-checkout/sub-components/payment-method-options.mdx +12 -14
- package/docs/modular-checkout/sub-components/plaid-payment-method.mdx +33 -54
- package/docs/modular-checkout/sub-components/saved-payment-methods.mdx +56 -54
- package/docs/modular-checkout/sub-components/season-interruption-insurance.mdx +21 -23
- package/docs/modular-checkout/sub-components/sezzle-payment-method.mdx +104 -108
- package/docs/modular-checkout/sub-components/summary.mdx +13 -13
- package/docs/payment-facilitation/dispute-management/index.mdx +12 -16
- package/docs/payment-facilitation/refund-payment/index.mdx +22 -14
- package/docs/payment-facilitation/tokenize-payment-method/index.mdx +28 -44
- package/docs/payment-facilitation/unified-fintech-checkout/342/204/242/index.mdx +103 -122
- package/package.json +1 -1
- package/dist/webcomponents/p-04ed045b.entry.js +0 -1
- package/dist/webcomponents/p-3101565c.entry.js +0 -1
- package/dist/webcomponents/p-8c07d9f0.entry.js +0 -1
- package/dist/webcomponents/p-9efd1bce.entry.js +0 -1
- package/dist/webcomponents/p-DEhd71m_.js +0 -1
- package/docs/helpers/PartsTable.js +0 -50
- package/docs/helpers/PartsTable.ts +0 -55
- package/docs/helpers/PropsTable.js +0 -56
- package/docs/helpers/PropsTable.ts +0 -63
- package/docs/helpers/index.js +0 -4
- package/docs/helpers/version.ts +0 -32
- package/docs/modular-checkout/docs/index.mdx +0 -32
- package/docs/modular-checkout/example/index.mdx +0 -25
|
@@ -5,7 +5,11 @@ description: Guided UI for issuing full or partial refunds with reason codes and
|
|
|
5
5
|
sidebar_position: 33
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
PropsTable,
|
|
10
|
+
PartsTable,
|
|
11
|
+
getWebcomponentsVersion,
|
|
12
|
+
} from '@justifi/webcomponents/docs/helpers';
|
|
9
13
|
|
|
10
14
|
## Overview
|
|
11
15
|
|
|
@@ -22,7 +26,12 @@ Component to render a form for partially or fully refunding a payment based on a
|
|
|
22
26
|
<title>justifi-refund-payment</title>
|
|
23
27
|
|
|
24
28
|
<script type="module" src="https://cdn.jsdelivr.net/npm/@justifi/webcomponents@${getWebcomponentsVersion()}/dist/webcomponents/webcomponents.esm.js"></script>
|
|
25
|
-
|
|
29
|
+
|
|
30
|
+
<script
|
|
31
|
+
nomodule
|
|
32
|
+
src="https://cdn.jsdelivr.net/npm/@justifi/webcomponents@${getWebcomponentsVersion()}/dist/webcomponents/webcomponents.js"
|
|
33
|
+
></script>
|
|
34
|
+
|
|
26
35
|
<style>
|
|
27
36
|
::part(font-family) {
|
|
28
37
|
font-family: georgia;
|
|
@@ -92,6 +101,7 @@ Component to render a form for partially or fully refunding a payment based on a
|
|
|
92
101
|
color: #333;
|
|
93
102
|
}
|
|
94
103
|
</style>
|
|
104
|
+
|
|
95
105
|
</head>
|
|
96
106
|
|
|
97
107
|
<body>
|
|
@@ -104,6 +114,7 @@ Component to render a form for partially or fully refunding a payment based on a
|
|
|
104
114
|
|
|
105
115
|
<!-- Optional external button - this is only needed if the built in button is hidden via the hide-submit-button prop
|
|
106
116
|
and the refund is submitted via provided refundPayment() method - see below. -->
|
|
117
|
+
|
|
107
118
|
<button id="submit-refund-button">Submit Refund</button>
|
|
108
119
|
</body>
|
|
109
120
|
|
|
@@ -128,11 +139,13 @@ Component to render a form for partially or fully refunding a payment based on a
|
|
|
128
139
|
});
|
|
129
140
|
})();
|
|
130
141
|
</script>
|
|
142
|
+
|
|
131
143
|
</html>`}</code></pre>
|
|
132
144
|
|
|
133
145
|
## Props, Events & Methods
|
|
134
146
|
|
|
135
|
-
<
|
|
147
|
+
<PropsTable
|
|
148
|
+
rows={[
|
|
136
149
|
{
|
|
137
150
|
name: 'account-id',
|
|
138
151
|
type: 'string',
|
|
@@ -163,7 +176,8 @@ Component to render a form for partially or fully refunding a payment based on a
|
|
|
163
176
|
type: 'string',
|
|
164
177
|
description: 'Preselects a refund reason code.',
|
|
165
178
|
},
|
|
166
|
-
]
|
|
179
|
+
]}
|
|
180
|
+
/>
|
|
167
181
|
|
|
168
182
|
### Events
|
|
169
183
|
|
|
@@ -177,7 +191,8 @@ Component to render a form for partially or fully refunding a payment based on a
|
|
|
177
191
|
|
|
178
192
|
## Theming & Layout
|
|
179
193
|
|
|
180
|
-
<
|
|
194
|
+
<PartsTable
|
|
195
|
+
parts={[
|
|
181
196
|
{
|
|
182
197
|
name: 'font-family',
|
|
183
198
|
description: 'Controls the font family for the component.',
|
|
@@ -218,12 +233,5 @@ Component to render a form for partially or fully refunding a payment based on a
|
|
|
218
233
|
name: 'button-primary',
|
|
219
234
|
description: 'Primary button styles.',
|
|
220
235
|
},
|
|
221
|
-
]
|
|
222
|
-
|
|
223
|
-
## Static examples
|
|
224
|
-
|
|
225
|
-
### Programmatic refunds
|
|
226
|
-
|
|
227
|
-
<pre><code className="language-js">{`const component = document.querySelector('justifi-refund-payment');
|
|
228
|
-
|
|
229
|
-
document.querySelector('#confirm-refund').onclick = () => component.submit();`}</code></pre>
|
|
236
|
+
]}
|
|
237
|
+
/>
|
|
@@ -5,7 +5,11 @@ description: Secure standalone card/bank tokenization form with built-in validat
|
|
|
5
5
|
sidebar_position: 1
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
PropsTable,
|
|
10
|
+
PartsTable,
|
|
11
|
+
getWebcomponentsVersion,
|
|
12
|
+
} from '@justifi/webcomponents/docs/helpers';
|
|
9
13
|
|
|
10
14
|
## Overview
|
|
11
15
|
|
|
@@ -22,7 +26,12 @@ Component to render an entire form including a switch to use a credit card or ba
|
|
|
22
26
|
<title>justifi-tokenize-payment-method</title>
|
|
23
27
|
|
|
24
28
|
<script type="module" src="https://cdn.jsdelivr.net/npm/@justifi/webcomponents@${getWebcomponentsVersion()}/dist/webcomponents/webcomponents.esm.js"></script>
|
|
25
|
-
|
|
29
|
+
|
|
30
|
+
<script
|
|
31
|
+
nomodule
|
|
32
|
+
src="https://cdn.jsdelivr.net/npm/@justifi/webcomponents@${getWebcomponentsVersion()}/dist/webcomponents/webcomponents.js"
|
|
33
|
+
></script>
|
|
34
|
+
|
|
26
35
|
<style>
|
|
27
36
|
::part(font-family) {
|
|
28
37
|
font-family: georgia;
|
|
@@ -125,16 +134,17 @@ Component to render an entire form including a switch to use a credit card or ba
|
|
|
125
134
|
cursor: pointer;
|
|
126
135
|
}
|
|
127
136
|
</style>
|
|
137
|
+
|
|
128
138
|
</head>
|
|
129
139
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
140
|
+
<body>
|
|
141
|
+
<justifi-tokenize-payment-method
|
|
142
|
+
account-id="acc_123"
|
|
143
|
+
auth-token="authToken"
|
|
144
|
+
payment-method-group-id="pmg_123"
|
|
145
|
+
submit-button-text="Tokenize Payment Method"
|
|
146
|
+
/>
|
|
147
|
+
</body>
|
|
138
148
|
|
|
139
149
|
<script>
|
|
140
150
|
const justifiTokenizePaymentMethod = document.querySelector("justifi-tokenize-payment-method");
|
|
@@ -199,7 +209,8 @@ Component to render an entire form including a switch to use a credit card or ba
|
|
|
199
209
|
|
|
200
210
|
## Props, Events & Methods
|
|
201
211
|
|
|
202
|
-
<
|
|
212
|
+
<PropsTable
|
|
213
|
+
rows={[
|
|
203
214
|
{
|
|
204
215
|
name: 'account-id',
|
|
205
216
|
type: 'string',
|
|
@@ -245,7 +256,8 @@ Component to render an entire form including a switch to use a credit card or ba
|
|
|
245
256
|
type: 'string',
|
|
246
257
|
description: 'Name of a predefined theme exported by JustiFi (optional).',
|
|
247
258
|
},
|
|
248
|
-
]
|
|
259
|
+
]}
|
|
260
|
+
/>
|
|
249
261
|
|
|
250
262
|
### Events
|
|
251
263
|
|
|
@@ -261,7 +273,8 @@ Component to render an entire form including a switch to use a credit card or ba
|
|
|
261
273
|
|
|
262
274
|
- Hosted fields remain inside PCI-safe iframes, so styling focuses on the outer wrapper plus the `::part` hooks listed below.
|
|
263
275
|
|
|
264
|
-
<
|
|
276
|
+
<PartsTable
|
|
277
|
+
parts={[
|
|
265
278
|
{
|
|
266
279
|
name: 'font-family',
|
|
267
280
|
description: 'Controls the font family for the component.',
|
|
@@ -326,36 +339,7 @@ Component to render an entire form including a switch to use a credit card or ba
|
|
|
326
339
|
name: 'radio-list-item',
|
|
327
340
|
description: 'Radio list item styles.',
|
|
328
341
|
},
|
|
329
|
-
]
|
|
330
|
-
|
|
331
|
-
- Slots are not exposed (all inputs are encapsulated in PCI iframes), so styling relies on CSS variables and `::part` hooks for wrapper elements.
|
|
332
|
-
|
|
333
|
-
## Static examples
|
|
334
|
-
|
|
335
|
-
### External submission control
|
|
336
|
-
|
|
337
|
-
Hide the internal CTA and trigger tokenization manually (e.g., to combine with a review step).
|
|
338
|
-
|
|
339
|
-
<pre><code className="language-html">{`<justifi-tokenize-payment-method
|
|
340
|
-
account-id="acc_123"
|
|
341
|
-
auth-token="wct_abc123"
|
|
342
|
-
hide-submit-button
|
|
343
|
-
ref={el => (window.tokenizer = el)}
|
|
342
|
+
]}
|
|
344
343
|
/>
|
|
345
344
|
|
|
346
|
-
|
|
347
|
-
Submit Payment
|
|
348
|
-
</button>
|
|
349
|
-
`}</code></pre>
|
|
350
|
-
|
|
351
|
-
### Prefill billing info
|
|
352
|
-
|
|
353
|
-
<pre><code className="language-js">{`const tokenizer = document.querySelector('justifi-tokenize-payment-method');
|
|
354
|
-
|
|
355
|
-
tokenizer.fillBillingForm({
|
|
356
|
-
name: 'Leslie Knope',
|
|
357
|
-
address_line1: '123 Main St',
|
|
358
|
-
address_city: 'Pawnee',
|
|
359
|
-
address_state: 'IN',
|
|
360
|
-
address_postal_code: '47998',
|
|
361
|
-
});`}</code></pre>
|
|
345
|
+
- Slots are not exposed (all inputs are encapsulated in PCI iframes), so styling relies on CSS variables and `::part` hooks for wrapper elements.
|
|
@@ -24,45 +24,42 @@ import { PropsTable, PartsTable } from '@justifi/webcomponents/docs/helpers';
|
|
|
24
24
|
|
|
25
25
|
## Props, Events & Methods
|
|
26
26
|
|
|
27
|
-
<
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
},
|
|
64
|
-
]),
|
|
65
|
-
}}
|
|
27
|
+
<PropsTable
|
|
28
|
+
rows={[
|
|
29
|
+
{
|
|
30
|
+
name: 'account-id',
|
|
31
|
+
type: 'string',
|
|
32
|
+
required: true,
|
|
33
|
+
description:
|
|
34
|
+
'Owning platform account; determines branding + permissions.',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: 'auth-token',
|
|
38
|
+
type: 'string',
|
|
39
|
+
required: true,
|
|
40
|
+
description: 'Web Component Token with `write:checkout` scope.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'checkout-id',
|
|
44
|
+
type: 'string',
|
|
45
|
+
required: true,
|
|
46
|
+
description:
|
|
47
|
+
'Server-generated checkout session controlling line items and totals.',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: 'require-save-payment-method',
|
|
51
|
+
type: 'boolean',
|
|
52
|
+
defaultValue: 'false',
|
|
53
|
+
description:
|
|
54
|
+
'When true, forces customers to save the payment method for future use.',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: 'locale',
|
|
58
|
+
type: 'string',
|
|
59
|
+
defaultValue: 'en-US',
|
|
60
|
+
description: 'Controls currency formatting, copy, and date presentation.',
|
|
61
|
+
},
|
|
62
|
+
]}
|
|
66
63
|
/>
|
|
67
64
|
|
|
68
65
|
### Events
|
|
@@ -78,87 +75,71 @@ import { PropsTable, PartsTable } from '@justifi/webcomponents/docs/helpers';
|
|
|
78
75
|
|
|
79
76
|
## Theming & Layout
|
|
80
77
|
|
|
81
|
-
<
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
]),
|
|
149
|
-
}}
|
|
78
|
+
<PartsTable
|
|
79
|
+
parts={[
|
|
80
|
+
{
|
|
81
|
+
name: 'font-family',
|
|
82
|
+
description: 'Controls the font family for the component.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
name: 'color',
|
|
86
|
+
description: 'Controls the text color.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
name: 'background-color',
|
|
90
|
+
description: 'Controls the background color.',
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
name: 'button',
|
|
94
|
+
description: 'Button styles.',
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
name: 'button-disabled',
|
|
98
|
+
description: 'Disabled button styles.',
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
name: 'input',
|
|
102
|
+
description: 'Input field styles.',
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
name: 'input-focused',
|
|
106
|
+
description: 'Input styles when focused.',
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
name: 'input-invalid',
|
|
110
|
+
description: 'Input styles when invalid.',
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
name: 'input-invalid-and-focused',
|
|
114
|
+
description: 'Input styles when invalid and focused.',
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
name: 'input-radio',
|
|
118
|
+
description: 'Radio input styles.',
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
name: 'input-checkbox',
|
|
122
|
+
description: 'Checkbox input styles.',
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
name: 'input-checkbox-checked',
|
|
126
|
+
description: 'Checkbox input styles when checked.',
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
name: 'input-checkbox-checked-focused',
|
|
130
|
+
description: 'Checkbox input styles when checked and focused.',
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
name: 'input-checkbox-focused',
|
|
134
|
+
description: 'Checkbox input styles when focused.',
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
name: 'button-primary',
|
|
138
|
+
description: 'Primary button styles.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
name: 'radio-list-item',
|
|
142
|
+
description: 'Radio list item styles.',
|
|
143
|
+
},
|
|
144
|
+
]}
|
|
150
145
|
/>
|
|
151
|
-
|
|
152
|
-
## Static examples
|
|
153
|
-
|
|
154
|
-
### Listen for completion
|
|
155
|
-
|
|
156
|
-
Trigger downstream logic when checkout completes.
|
|
157
|
-
|
|
158
|
-
<pre>
|
|
159
|
-
<code className="language-js">{`const checkout = document.querySelector('justifi-checkout');
|
|
160
|
-
|
|
161
|
-
checkout.addEventListener('completed', (event) => {
|
|
162
|
-
analytics.track('checkout_completed', event.detail);
|
|
163
|
-
});`}</code>
|
|
164
|
-
</pre>
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as t,c as s,h as r}from"./p-DwYM91AU.js";import{A as o}from"./p-C8yN3uBj.js";import{C as i,a as e}from"./p-Cjcsf8ku.js";import"./p-BpaE8q5f.js";import"./p-CLHwhyvu.js";import"./p-B5rtFhtR.js";import"./p-BH0Xfn-F.js";import{g as a,a as n}from"./p-D2muobcE.js";import{E as p}from"./p-BNqo3kt0.js";import{c as h,J as c}from"./p-C6wS5-M7.js";import"./p-tGDdRx0W.js";import"./p-BYsgavgS.js";import"./p-BS7OgSQe.js";import"./p-HXpYMWUU.js";import"./p-wtuY7MT2.js";import"./p-DEhd71m_.js";const m=o();class u{async fetchGrossVolumeChartData(t,s){return m.get({endpoint:`account/${t}/reports/gross_volume`,authToken:s})}}const d=class{constructor(r){t(this,r),this.errorEvent=s(this,"error-event"),this.errorMessage=null,this.handleErrorEvent=t=>{this.errorMessage=t.detail.message,this.errorEvent.emit(t.detail)}}componentWillLoad(){h(),this.analytics=new c(this),this.initializeGetGrossPayment()}disconnectedCallback(){var t;null===(t=this.analytics)||void 0===t||t.cleanup()}propChanged(){this.initializeGetGrossPayment()}initializeGetGrossPayment(){this.accountId&&this.authToken?this.getGrossPayment=(({id:t,authToken:s,service:r})=>async({onSuccess:o,onError:e})=>{var p;try{const h=await r.fetchGrossVolumeChartData(t,s);h.error?e({error:n(h.error),code:a(null===(p=h.error)||void 0===p?void 0:p.code),severity:i.ERROR}):o(h.data)}catch(t){const s=a(null==t?void 0:t.code);e({error:n(t),code:s,severity:i.ERROR})}})({id:this.accountId,authToken:this.authToken,service:new u}):(this.errorMessage="Account ID and Auth Token are required",this.errorEvent.emit({errorCode:e.MISSING_PROPS,message:this.errorMessage,severity:i.ERROR}))}render(){return this.errorMessage?p(this.errorMessage):r("gross-payment-chart-core",{getGrossPayment:this.getGrossPayment,"onError-event":this.handleErrorEvent})}static get watchers(){return{accountId:["propChanged"],authToken:["propChanged"]}}};export{d as justifi_gross_payment_chart}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r,c as s,h as t}from"./p-DwYM91AU.js";import{S as i}from"./p-BP2sTIQV.js";import"./p-CZfYo5-1.js";import{c as e,J as o}from"./p-C6wS5-M7.js";import{d as a}from"./p-CFevTCAJ.js";import"./p-tGDdRx0W.js";import"./p-HXpYMWUU.js";import{C as n,a as p}from"./p-Cjcsf8ku.js";import{i as c}from"./p-BpaE8q5f.js";import"./p-CLHwhyvu.js";import"./p-B5rtFhtR.js";import"./p-BH0Xfn-F.js";import{g as m,a as d}from"./p-D2muobcE.js";import{A as h}from"./p-C8yN3uBj.js";import"./p-DEhd71m_.js";import"./p-wtuY7MT2.js";import"./p-BS7OgSQe.js";import"./p-DOLBAxYf.js";import"./p-BYsgavgS.js";const l=h();class u{async fetchTerminalOrders(r,s,t){return l.get({endpoint:"terminals/orders",params:t,headers:{account:r},authToken:s})}}const f=class{constructor(t){r(this,t),this.errorEvent=s(this,"error-event"),this.errorMessage=null,this.columns=a,this.handleErrorEvent=r=>{this.errorMessage=r.detail.message,this.errorEvent.emit(r.detail)}}componentWillLoad(){e(),this.analytics=new o(this),this.initializeGetData()}disconnectedCallback(){var r;null===(r=this.analytics)||void 0===r||r.cleanup()}initializeGetData(){this.accountId&&this.authToken?this.getTerminalOrders=(({id:r,authToken:s,service:t})=>async({params:i,onSuccess:e,onError:o,final:a})=>{var p,h;try{const a=await t.fetchTerminalOrders(r,s,i);if(a.error)return o({error:d(a.error),code:m(null===(h=a.error)||void 0===h?void 0:h.code),severity:n.ERROR});{const r=Object.assign({},a.page_info);e({terminalOrders:(null===(p=a.data)||void 0===p?void 0:p.map((r=>new c(r))))||[],pagingInfo:r})}}catch(r){const s=m(null==r?void 0:r.code);return o({error:r.message||r,code:s,severity:n.ERROR})}finally{return a()}})({id:this.accountId,authToken:this.authToken,service:new u}):(this.errorMessage="Account ID and Auth Token are required",this.errorEvent.emit({errorCode:p.MISSING_PROPS,message:this.errorMessage,severity:n.ERROR}))}render(){return t(i,{key:"f89cb75d014a5d43c6766f0e0e7a572807c3df9f"},t("terminal-orders-list-core",{key:"c38fd6424ebca672c9577255d81b9e97712f3b9b",getTerminalOrders:this.getTerminalOrders,"onError-event":this.handleErrorEvent,columns:this.columns}))}};export{f as justifi_terminal_orders_list}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as t,c as s,h as i}from"./p-DwYM91AU.js";import{P as e}from"./p-C8QOezo8.js";import{m as r}from"./p-Ch9cTPyq.js";import{E as o}from"./p-BNqo3kt0.js";import{C as p,a as h}from"./p-Cjcsf8ku.js";import{c as a,J as n}from"./p-C6wS5-M7.js";import"./p-C8yN3uBj.js";import"./p-tGDdRx0W.js";import"./p-BYsgavgS.js";import"./p-BS7OgSQe.js";import"./p-HXpYMWUU.js";import"./p-BpaE8q5f.js";import"./p-BH0Xfn-F.js";import"./p-CLHwhyvu.js";import"./p-B5rtFhtR.js";import"./p-D2muobcE.js";import"./p-wtuY7MT2.js";import"./p-DEhd71m_.js";const m=class{constructor(i){t(this,i),this.errorEvent=s(this,"error-event"),this.recordClickEvent=s(this,"record-click-event"),this.errorMessage=null,this.paymentService=new e,this.handleErrorEvent=t=>{this.errorMessage=t.detail.message,this.errorEvent.emit(t.detail)},this.handleRecordClickEvent=t=>{this.recordClickEvent.emit({id:t.detail.id,type:t.detail.type})}}componentWillLoad(){a(),this.analytics=new n(this),this.initializeGetPaymentDetails()}disconnectedCallback(){var t;null===(t=this.analytics)||void 0===t||t.cleanup()}propChanged(){this.initializeGetPaymentDetails()}initializeGetPaymentDetails(){this.paymentId&&this.authToken?this.getPaymentDetails=r({id:this.paymentId,authToken:this.authToken,service:new e}):(this.errorMessage="Payment ID and Auth Token are required",this.errorEvent.emit({message:this.errorMessage,errorCode:h.MISSING_PROPS,severity:p.ERROR}))}render(){return this.errorMessage?o(this.errorMessage):i("payment-details-core",{getPaymentDetails:this.getPaymentDetails,"onError-event":this.handleErrorEvent,"onRecord-click-event":this.handleRecordClickEvent,"enable-record-click":"true"})}static get watchers(){return{paymentId:["propChanged"],authToken:["propChanged"]}}};export{m as justifi_payment_details}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h as i,r as s,c as t}from"./p-DwYM91AU.js";import{ao as e,am as r,af as o,D as l}from"./p-wtuY7MT2.js";import{S as d}from"./p-BP2sTIQV.js";import"./p-CZfYo5-1.js";import{c as n,J as a}from"./p-C6wS5-M7.js";import{C as h,a as c}from"./p-Cjcsf8ku.js";import{B as u}from"./p-BCPutgAi.js";import{B as v}from"./p-B5rtFhtR.js";import{m as p}from"./p-sCHf--Vc.js";import{S as m}from"./p-c7MCfTgE.js";import"./p-tGDdRx0W.js";import"./p-HXpYMWUU.js";import{j as f,i as w,b as g}from"./p-BpaE8q5f.js";import"./p-CLHwhyvu.js";import"./p-BH0Xfn-F.js";import{g as x,a as j}from"./p-D2muobcE.js";import{T as y}from"./p-MQxr_LMC.js";import{k as b}from"./p-BS7OgSQe.js";import"./p-DEhd71m_.js";import"./p-C8yN3uBj.js";import"./p-BYsgavgS.js";const S=()=>i("div",{class:"row gap-3"},i("div",{class:"col-12"},i(m,{width:"25%"})),i("div",{class:"col-12"},i(m,{width:"100%"})),i("div",{class:"col-12 d-flex gap-3"},i(m,{width:"50%"}),i(m,{width:"50%"})),i("div",{class:"col-12 d-flex gap-3"},i(m,{width:"65%"}),i(m,{width:"35%"}))),C=()=>i("div",{class:"row gap-5"},i("div",{class:"col-12"},i(m,{width:"40%",height:"40px"})),i(S,null)),k=()=>i("div",{class:"terminal-selector-skeleton mt-4 rounded shadow-sm"},i("div",{class:"d-flex align-items-center gap-3"},i(m,{width:"125px",height:"125px",styles:{borderRadius:"8px"}}),i("div",{class:"flex-grow-1"},i("div",{class:"d-flex row flex-row"},i("div",{class:"col-6 flex-column"},i(m,null),i(m,{width:"60%"})),i("div",{class:"d-flex justify-content-end align-items-center gap-2 col-6"},i(m,{width:"32px",height:"32px",styles:{borderRadius:"50%"}}),i(m,{width:"80px",height:"32px"}),i(m,{width:"32px",height:"32px",styles:{borderRadius:"50%"}}))),i("div",{class:"mt-4"},i("div",{class:"d-flex flex-column gap-2"},i(m,null),i(m,null)))))),B=class{constructor(i){s(this,i),this.errorEvent=t(this,"error-event"),this.submitted=t(this,"submit-event"),this.shipping=!1,this.submitButtonText="Submit Order",this.loading={business:!0,terminals:!0},this.submitting=!1,this.error=null,this.totalQuantity=0}componentWillLoad(){this.order=new w({business_id:this.businessId,sub_account_id:this.accountId,order_type:this.shipping?g.boardingShipping:g.boardingOnly}),n(),this.analytics=new a(this),this.loadData()}disconnectedCallback(){var i;null===(i=this.analytics)||void 0===i||i.cleanup()}handleError(i,s,t){this.error={message:i,code:s,severity:t},this.errorEvent.emit({errorCode:s,message:i,severity:t})}loadData(){this.businessId&&this.authToken?(this.initializeGetBusiness(),this.initializeGetTerminalModels()):this.handleError("Invalid business id or auth token",c.MISSING_PROPS,h.ERROR)}initializeGetBusiness(){p({id:this.businessId,authToken:this.authToken,service:new u})({onSuccess:({business:i})=>{this.business=new v(i),this.loading.business=!1},onError:({error:i,code:s,severity:t})=>{this.handleError(i,s,t),this.loading.business=!1}})}initializeGetTerminalModels(){(({id:i,authToken:s,service:t})=>async({onSuccess:e,onError:r})=>{var o,l,d,n;try{const a=await t.fetchTerminalModels(i,s);if(a.error)return r({error:j(a.error),code:x(null===(n=a.error)||void 0===n?void 0:n.code),severity:h.ERROR});e({terminals:(null===(l=null===(o=a.data)||void 0===o?void 0:o.terminal_order_models)||void 0===l?void 0:l.map((i=>new f(i))))||[],orderLimit:null===(d=a.data)||void 0===d?void 0:d.order_limit})}catch(i){const s=x(null==i?void 0:i.code);return r({error:i.message||i,code:s,severity:h.ERROR})}})({id:this.accountId,authToken:this.authToken,service:new y})({onSuccess:({terminals:i,orderLimit:s})=>{this.terminalModels=i,this.orderLimit=s,this.loading.terminals=!1},onError:({error:i,code:s,severity:t})=>{this.handleError(i,s,t),this.loading.terminals=!1}})}submitOrder(){const i=(({authToken:i,service:s,apiOrigin:t="https://wc-proxy.justifi.ai"})=>async({terminalOrder:e,onSuccess:r,onError:o})=>{var l;try{const d=await s.orderTerminals(i,e,t);if(d.error)return o({error:j(d.error),code:x(null===(l=d.error)||void 0===l?void 0:l.code),severity:h.ERROR});{const{data:i}=d;r({data:i})}}catch(i){const s=x(null==i?void 0:i.code);return o({error:i.message||i,code:s,severity:h.ERROR})}})({authToken:this.authToken,service:new y});this.submitting=!0,i({terminalOrder:this.order.payload,onSuccess:({data:i})=>{this.submitted.emit(i),this.submitting=!1},onError:({error:i,code:s,severity:t})=>{this.handleError(i,s,t),this.submitting=!1}})}onSelectedQuantityChange(i){this.order.updateTerminal(i.detail.modelName,i.detail.quantity),this.totalQuantity=this.order.totalQuantity}renderLoading(){return i("div",null,this.loading.business&&i(C,null),this.loading.terminals&&i("div",{class:"mt-5"},i(k,null),i(k,null),i(k,null)))}renderBusinessDetails(){var s,t,o,l,d,n,a,h;if(!this.loading.business&&this.business)return i("div",{class:"d-flex flex-column gap-4 mb-5 pt-5"},i("div",{class:"row"},i("div",{class:"col-12"},i("h2",{part:r},this.business.legal_name))),i("div",{class:"row"},i("div",{class:"col-6"},i("h5",{part:e},"Representative:"),i("div",null,i("div",null,null===(t=null===(s=this.business)||void 0===s?void 0:s.representative)||void 0===t?void 0:t.name),i("div",null,null===(l=null===(o=this.business)||void 0===o?void 0:o.representative)||void 0===l?void 0:l.title),i("div",null,null===(n=null===(d=this.business)||void 0===d?void 0:d.representative)||void 0===n?void 0:n.email),i("div",null,b(null===(h=null===(a=this.business)||void 0===a?void 0:a.representative)||void 0===h?void 0:h.phone)))),i("div",{class:"col-6"},i("h5",{part:e},this.shipping?"Shipping Address:":"Business Address:"),i("div",null,this.business.legal_address.line1,this.business.legal_address.line2?`, ${this.business.legal_address.line2}`:"",i("br",null),this.business.legal_address.city,", ",this.business.legal_address.state," ",this.business.legal_address.postal_code))))}renderTerminals(){if(!this.loading.terminals&&this.terminalModels)return i("div",{class:"d-flex flex-column gap-2 mt-5"},this.terminalModels.map((s=>i("terminal-quantity-selector",{modelName:s.model_name,description:s.description,imageUrl:s.image_url,helpUrl:s.help_url,limit:this.orderLimit-this.order.totalQuantity,onSelectedQuantityChange:this.onSelectedQuantityChange.bind(this)}))))}renderOrderSection(){return i("div",{class:"mt-3"},i("div",{class:"text-end"},"Order limit: ",this.orderLimit),i("div",{class:"d-flex justify-content-end mt-3"},i("button",{class:"btn btn-primary submit-btn",onClick:this.submitOrder.bind(this),disabled:0===this.order.totalQuantity||this.submitting,part:o},this.submitting?"Submitting...":this.submitButtonText)))}render(){return i(d,{key:"f9c515ea3cf3dd616d894cef2cc64789663608e8"},i("div",{key:"6b3d49555fe21563c251896300d313bed336f9fd",part:l},this.renderLoading(),this.renderBusinessDetails(),this.renderTerminals(),this.renderOrderSection()))}};export{B as justifi_order_terminals}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={name:"@justifi/webcomponents",version:"6.5.1-rc.5"};export{e as p}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
function escapeHtml(text) {
|
|
2
|
-
const map = {
|
|
3
|
-
'&': '&',
|
|
4
|
-
'<': '<',
|
|
5
|
-
'>': '>',
|
|
6
|
-
'"': '"',
|
|
7
|
-
"'": ''',
|
|
8
|
-
};
|
|
9
|
-
return text.replace(/[&<>"']/g, (m) => map[m]);
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export function PartsTable(parts, caption) {
|
|
13
|
-
if (!parts?.length) {
|
|
14
|
-
return '';
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
let html = '<table class="docs-parts-table">';
|
|
18
|
-
|
|
19
|
-
if (caption) {
|
|
20
|
-
html += `<caption>${escapeHtml(caption)}</caption>`;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
html += `
|
|
24
|
-
<thead>
|
|
25
|
-
<tr>
|
|
26
|
-
<th scope="col">Part</th>
|
|
27
|
-
<th scope="col">Description</th>
|
|
28
|
-
<th scope="col">DOM target</th>
|
|
29
|
-
</tr>
|
|
30
|
-
</thead>
|
|
31
|
-
<tbody>`;
|
|
32
|
-
|
|
33
|
-
for (const part of parts) {
|
|
34
|
-
html += `
|
|
35
|
-
<tr>
|
|
36
|
-
<td>
|
|
37
|
-
<code>::part(${escapeHtml(part.name)})</code>
|
|
38
|
-
</td>
|
|
39
|
-
<td>${escapeHtml(part.description)}</td>
|
|
40
|
-
<td>${part.target ? escapeHtml(part.target) : '—'}</td>
|
|
41
|
-
</tr>`;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
html += `
|
|
45
|
-
</tbody>
|
|
46
|
-
</table>`;
|
|
47
|
-
|
|
48
|
-
return html;
|
|
49
|
-
}
|
|
50
|
-
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
export interface PartsTableRow {
|
|
2
|
-
name: string;
|
|
3
|
-
description: string;
|
|
4
|
-
target?: string;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
function escapeHtml(text: string): string {
|
|
8
|
-
const map: Record<string, string> = {
|
|
9
|
-
'&': '&',
|
|
10
|
-
'<': '<',
|
|
11
|
-
'>': '>',
|
|
12
|
-
'"': '"',
|
|
13
|
-
"'": ''',
|
|
14
|
-
};
|
|
15
|
-
return text.replace(/[&<>"']/g, (m) => map[m]);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export function PartsTable(parts: PartsTableRow[], caption?: string): string {
|
|
19
|
-
if (!parts?.length) {
|
|
20
|
-
return '';
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
let html = '<table class="docs-parts-table">';
|
|
24
|
-
|
|
25
|
-
if (caption) {
|
|
26
|
-
html += `<caption>${escapeHtml(caption)}</caption>`;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
html += `
|
|
30
|
-
<thead>
|
|
31
|
-
<tr>
|
|
32
|
-
<th scope="col">Part</th>
|
|
33
|
-
<th scope="col">Description</th>
|
|
34
|
-
<th scope="col">DOM target</th>
|
|
35
|
-
</tr>
|
|
36
|
-
</thead>
|
|
37
|
-
<tbody>`;
|
|
38
|
-
|
|
39
|
-
for (const part of parts) {
|
|
40
|
-
html += `
|
|
41
|
-
<tr>
|
|
42
|
-
<td>
|
|
43
|
-
<code>::part(${escapeHtml(part.name)})</code>
|
|
44
|
-
</td>
|
|
45
|
-
<td>${escapeHtml(part.description)}</td>
|
|
46
|
-
<td>${part.target ? escapeHtml(part.target) : '—'}</td>
|
|
47
|
-
</tr>`;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
html += `
|
|
51
|
-
</tbody>
|
|
52
|
-
</table>`;
|
|
53
|
-
|
|
54
|
-
return html;
|
|
55
|
-
}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
function escapeHtml(text) {
|
|
2
|
-
const map = {
|
|
3
|
-
'&': '&',
|
|
4
|
-
'<': '<',
|
|
5
|
-
'>': '>',
|
|
6
|
-
'"': '"',
|
|
7
|
-
"'": ''',
|
|
8
|
-
};
|
|
9
|
-
return text.replace(/[&<>"']/g, (m) => map[m]);
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export function PropsTable(rows, caption) {
|
|
13
|
-
if (!rows?.length) {
|
|
14
|
-
return '';
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
let html = '<table class="docs-props-table">';
|
|
18
|
-
|
|
19
|
-
if (caption) {
|
|
20
|
-
html += `<caption>${escapeHtml(caption)}</caption>`;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
html += `
|
|
24
|
-
<thead>
|
|
25
|
-
<tr>
|
|
26
|
-
<th scope="col">Name</th>
|
|
27
|
-
<th scope="col">Type</th>
|
|
28
|
-
<th scope="col">Required</th>
|
|
29
|
-
<th scope="col">Default</th>
|
|
30
|
-
<th scope="col">Description</th>
|
|
31
|
-
</tr>
|
|
32
|
-
</thead>
|
|
33
|
-
<tbody>`;
|
|
34
|
-
|
|
35
|
-
for (const row of rows) {
|
|
36
|
-
html += `
|
|
37
|
-
<tr>
|
|
38
|
-
<td>
|
|
39
|
-
<code>${escapeHtml(row.name)}</code>
|
|
40
|
-
</td>
|
|
41
|
-
<td>
|
|
42
|
-
<code>${escapeHtml(row.type)}</code>
|
|
43
|
-
</td>
|
|
44
|
-
<td>${row.required ? 'Yes' : 'No'}</td>
|
|
45
|
-
<td>${row.defaultValue ? `<code>${escapeHtml(row.defaultValue)}</code>` : '—'}</td>
|
|
46
|
-
<td>${escapeHtml(row.description)}</td>
|
|
47
|
-
</tr>`;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
html += `
|
|
51
|
-
</tbody>
|
|
52
|
-
</table>`;
|
|
53
|
-
|
|
54
|
-
return html;
|
|
55
|
-
}
|
|
56
|
-
|