@justifi/webcomponents 4.0.2 → 4.0.6
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/CHANGELOG.md +7 -0
- package/dist/cjs/Api-11362403.js +111 -0
- package/dist/cjs/Api-11362403.js.map +1 -0
- package/dist/cjs/Payment-ac4dea02.js +2 -0
- package/dist/cjs/Payment-ac4dea02.js.map +1 -0
- package/dist/cjs/{index-051b6dd0.js → index-34312a38.js} +185 -21
- package/dist/cjs/index-34312a38.js.map +1 -0
- package/dist/cjs/index.cjs.js +2 -0
- package/dist/cjs/index.cjs.js.map +1 -0
- package/dist/cjs/{index.esm-8df4906e.js → index.esm-bcf90c56.js} +2 -244
- package/dist/cjs/index.esm-bcf90c56.js.map +1 -0
- package/dist/cjs/justifi-bank-account-form.cjs.entry.js +3 -1
- package/dist/cjs/justifi-bank-account-form.cjs.entry.js.map +1 -0
- package/dist/cjs/justifi-billing-form_2.cjs.entry.js +8 -5
- package/dist/cjs/justifi-billing-form_2.cjs.entry.js.map +1 -0
- package/dist/cjs/justifi-business-address.cjs.entry.js +7 -4
- package/dist/cjs/justifi-business-address.cjs.entry.js.map +1 -0
- package/dist/cjs/justifi-business-info.cjs.entry.js +174 -0
- package/dist/cjs/justifi-business-info.cjs.entry.js.map +1 -0
- package/dist/cjs/justifi-card-form.cjs.entry.js +3 -1
- package/dist/cjs/justifi-card-form.cjs.entry.js.map +1 -0
- package/dist/cjs/justifi-payment-form.cjs.entry.js +10 -4
- package/dist/cjs/justifi-payment-form.cjs.entry.js.map +1 -0
- package/dist/cjs/justifi-payment-method-form.cjs.entry.js +12 -7
- package/dist/cjs/justifi-payment-method-form.cjs.entry.js.map +1 -0
- package/dist/cjs/justifi-payments-list.cjs.entry.js +5 -108
- package/dist/cjs/justifi-payments-list.cjs.entry.js.map +1 -0
- package/dist/cjs/loader.cjs.js +6 -3
- package/dist/cjs/loader.cjs.js.map +1 -0
- package/dist/cjs/select-input_2.cjs.entry.js +5 -3
- package/dist/cjs/select-input_2.cjs.entry.js.map +1 -0
- package/dist/cjs/state-options-efeaa587.js +248 -0
- package/dist/cjs/state-options-efeaa587.js.map +1 -0
- package/dist/cjs/webcomponents.cjs.js +12 -3
- package/dist/cjs/webcomponents.cjs.js.map +1 -0
- package/dist/collection/api/Api.js +2 -1
- package/dist/collection/api/Api.js.map +1 -0
- package/dist/collection/api/Pagination.js +1 -0
- package/dist/collection/api/Pagination.js.map +1 -0
- package/dist/collection/api/Payment.js +1 -0
- package/dist/collection/api/Payment.js.map +1 -0
- package/dist/collection/api/index.js +1 -0
- package/dist/collection/api/index.js.map +1 -0
- package/dist/collection/api/mockData/MockPayments.js +1 -0
- package/dist/collection/api/mockData/MockPayments.js.map +1 -0
- package/dist/collection/collection-manifest.json +4 -3
- package/dist/collection/components/bank-account-form/bank-account-form.js +1 -0
- package/dist/collection/components/bank-account-form/bank-account-form.js.map +1 -0
- package/dist/collection/components/bank-account-form/bank-account-form.stories.js +1 -0
- package/dist/collection/components/bank-account-form/bank-account-form.stories.js.map +1 -0
- package/dist/collection/components/bank-account-form/test/bank-account-form.e2e.js +14 -0
- package/dist/collection/components/bank-account-form/test/bank-account-form.e2e.js.map +1 -0
- package/dist/collection/components/bank-account-form/test/bank-account-form.spec.js +48 -0
- package/dist/collection/components/bank-account-form/test/bank-account-form.spec.js.map +1 -0
- package/dist/collection/components/billing-form/billing-form-schema.js +1 -0
- package/dist/collection/components/billing-form/billing-form-schema.js.map +1 -0
- package/dist/collection/components/billing-form/billing-form.css +337 -0
- package/dist/collection/components/billing-form/billing-form.js +1 -0
- package/dist/collection/components/billing-form/billing-form.js.map +1 -0
- package/dist/collection/components/billing-form/billing-form.stories.js +1 -0
- package/dist/collection/components/billing-form/billing-form.stories.js.map +1 -0
- package/dist/collection/components/billing-form/state-options.js +1 -0
- package/dist/collection/components/billing-form/state-options.js.map +1 -0
- package/dist/collection/components/billing-form/test/billing-form.spec.js +31 -0
- package/dist/collection/components/billing-form/test/billing-form.spec.js.map +1 -0
- package/dist/collection/components/business-address/business-address-schema.js +1 -0
- package/dist/collection/components/business-address/business-address-schema.js.map +1 -0
- package/dist/collection/components/business-address/business-address.css +337 -0
- package/dist/collection/components/business-address/business-address.js +1 -0
- package/dist/collection/components/business-address/business-address.js.map +1 -0
- package/dist/collection/components/business-address/test/business-address.e2e.js +10 -0
- package/dist/collection/components/business-address/test/business-address.e2e.js.map +1 -0
- package/dist/collection/components/business-address/test/business-address.spec.js +18 -0
- package/dist/collection/components/business-address/test/business-address.spec.js.map +1 -0
- package/dist/collection/components/business-info/business-info-schema.js +94 -0
- package/dist/collection/components/business-info/business-info-schema.js.map +1 -0
- package/dist/collection/components/business-info/business-info.css +2274 -0
- package/dist/collection/components/business-info/business-info.js +168 -0
- package/dist/collection/components/business-info/business-info.js.map +1 -0
- package/dist/collection/components/card-form/card-form.js +1 -0
- package/dist/collection/components/card-form/card-form.js.map +1 -0
- package/dist/collection/components/card-form/card-form.stories.js +1 -0
- package/dist/collection/components/card-form/card-form.stories.js.map +1 -0
- package/dist/collection/components/card-form/test/card-form.e2e.js +14 -0
- package/dist/collection/components/card-form/test/card-form.e2e.js.map +1 -0
- package/dist/collection/components/card-form/test/card-form.spec.js +56 -0
- package/dist/collection/components/card-form/test/card-form.spec.js.map +1 -0
- package/dist/collection/components/payment-form/payment-form.css +412 -0
- package/dist/collection/components/payment-form/payment-form.js +8 -2
- package/dist/collection/components/payment-form/payment-form.js.map +1 -0
- package/dist/collection/components/payment-form/payment-form.stories.js +1 -0
- package/dist/collection/components/payment-form/payment-form.stories.js.map +1 -0
- package/dist/collection/components/payment-form/payment-method-selector.css +337 -0
- package/dist/collection/components/payment-form/payment-method-selector.js +1 -0
- package/dist/collection/components/payment-form/payment-method-selector.js.map +1 -0
- package/dist/collection/components/payment-form/test/payment-form.e2e.js +23 -0
- package/dist/collection/components/payment-form/test/payment-form.e2e.js.map +1 -0
- package/dist/collection/components/payment-form/test/payment-form.spec.js +182 -0
- package/dist/collection/components/payment-form/test/payment-form.spec.js.map +1 -0
- package/dist/collection/components/payment-form/tokenize.js +1 -0
- package/dist/collection/components/payment-form/tokenize.js.map +1 -0
- package/dist/collection/components/payment-method-form/get-computed-theme.js +1 -0
- package/dist/collection/components/payment-method-form/get-computed-theme.js.map +1 -0
- package/dist/collection/components/payment-method-form/message-event-types.js +1 -0
- package/dist/collection/components/payment-method-form/message-event-types.js.map +1 -0
- package/dist/collection/components/payment-method-form/payment-method-form.js +2 -2
- package/dist/collection/components/payment-method-form/payment-method-form.js.map +1 -0
- package/dist/collection/components/payment-method-form/payment-method-responses.js +1 -0
- package/dist/collection/components/payment-method-form/payment-method-responses.js.map +1 -0
- package/dist/collection/components/payment-method-form/test/payment-method-form.e2e.js +22 -0
- package/dist/collection/components/payment-method-form/test/payment-method-form.e2e.js.map +1 -0
- package/dist/collection/components/payment-method-form/test/payment-method-form.spec.js +83 -0
- package/dist/collection/components/payment-method-form/test/payment-method-form.spec.js.map +1 -0
- package/dist/collection/components/payment-method-form/theme.js +1 -0
- package/dist/collection/components/payment-method-form/theme.js.map +1 -0
- package/dist/collection/components/payments-list/payments-list.js +1 -0
- package/dist/collection/components/payments-list/payments-list.js.map +1 -0
- package/dist/collection/components/payments-list/test/payments-list.spec.js +21 -0
- package/dist/collection/components/payments-list/test/payments-list.spec.js.map +1 -0
- package/dist/collection/components/select-input/select-input.css +337 -0
- package/dist/collection/components/select-input/select-input.js +1 -0
- package/dist/collection/components/select-input/select-input.js.map +1 -0
- package/dist/collection/components/select-input/test/select-input.spec.js +36 -0
- package/dist/collection/components/select-input/test/select-input.spec.js.map +1 -0
- package/dist/collection/components/text-input/test/text-input.spec.js +19 -0
- package/dist/collection/components/text-input/test/text-input.spec.js.map +1 -0
- package/dist/collection/components/text-input/text-input.css +337 -0
- package/dist/collection/components/text-input/text-input.js +1 -0
- package/dist/collection/components/text-input/text-input.js.map +1 -0
- package/dist/collection/index.js +1 -0
- package/dist/collection/index.js.map +1 -0
- package/dist/collection/utils/utils.js +1 -0
- package/dist/collection/utils/utils.js.map +1 -0
- package/dist/components/Api.js +109 -0
- package/dist/components/Api.js.map +1 -0
- package/dist/components/Payment.js +2 -0
- package/dist/components/Payment.js.map +1 -0
- package/dist/components/billing-form.js +6 -3
- package/dist/components/billing-form.js.map +1 -0
- package/dist/components/index.d.ts +9 -13
- package/dist/{esm/index.esm-c6a89005.js → components/index.esm.js} +3 -244
- package/dist/components/index.esm.js.map +1 -0
- package/dist/components/index.js +3 -11
- package/dist/components/index.js.map +1 -0
- package/dist/components/justifi-bank-account-form.js +3 -1
- package/dist/components/justifi-bank-account-form.js.map +1 -0
- package/dist/components/justifi-billing-form.js +2 -0
- package/dist/components/justifi-billing-form.js.map +1 -0
- package/dist/components/justifi-business-address.js +6 -3
- package/dist/components/justifi-business-address.js.map +1 -0
- package/dist/components/justifi-business-info.d.ts +11 -0
- package/dist/components/justifi-business-info.js +207 -0
- package/dist/components/justifi-business-info.js.map +1 -0
- package/dist/components/justifi-card-form.js +3 -1
- package/dist/components/justifi-card-form.js.map +1 -0
- package/dist/components/justifi-payment-form.js +11 -4
- package/dist/components/justifi-payment-form.js.map +1 -0
- package/dist/components/justifi-payment-method-form.js +2 -0
- package/dist/components/justifi-payment-method-form.js.map +1 -0
- package/dist/components/justifi-payment-method-selector.js +2 -0
- package/dist/components/justifi-payment-method-selector.js.map +1 -0
- package/dist/components/justifi-payments-list.js +4 -107
- package/dist/components/justifi-payments-list.js.map +1 -0
- package/dist/components/payment-method-form.js +12 -7
- package/dist/components/payment-method-form.js.map +1 -0
- package/dist/components/payment-method-selector.js +4 -2
- package/dist/components/payment-method-selector.js.map +1 -0
- package/dist/components/select-input.js +2 -0
- package/dist/components/select-input.js.map +1 -0
- package/dist/components/select-input2.js +4 -2
- package/dist/components/select-input2.js.map +1 -0
- package/dist/components/state-options.js +3 -1845
- package/dist/components/state-options.js.map +1 -0
- package/dist/components/text-input.js +2 -0
- package/dist/components/text-input.js.map +1 -0
- package/dist/components/text-input2.js +4 -2
- package/dist/components/text-input2.js.map +1 -0
- package/dist/esm/Api-a07f0057.js +109 -0
- package/dist/esm/Api-a07f0057.js.map +1 -0
- package/dist/esm/Payment-c86e1e84.js +2 -0
- package/dist/esm/Payment-c86e1e84.js.map +1 -0
- package/dist/esm/{index-605b421a.js → index-044f93fc.js} +185 -22
- package/dist/esm/index-044f93fc.js.map +1 -0
- package/dist/esm/index.esm-5624a5ed.js +1847 -0
- package/dist/esm/index.esm-5624a5ed.js.map +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/justifi-bank-account-form.entry.js +3 -1
- package/dist/esm/justifi-bank-account-form.entry.js.map +1 -0
- package/dist/esm/justifi-billing-form_2.entry.js +7 -4
- package/dist/esm/justifi-billing-form_2.entry.js.map +1 -0
- package/dist/esm/justifi-business-address.entry.js +6 -3
- package/dist/esm/justifi-business-address.entry.js.map +1 -0
- package/dist/esm/justifi-business-info.entry.js +170 -0
- package/dist/esm/justifi-business-info.entry.js.map +1 -0
- package/dist/esm/justifi-card-form.entry.js +3 -1
- package/dist/esm/justifi-card-form.entry.js.map +1 -0
- package/dist/esm/justifi-payment-form.entry.js +10 -4
- package/dist/esm/justifi-payment-form.entry.js.map +1 -0
- package/dist/esm/justifi-payment-method-form.entry.js +12 -7
- package/dist/esm/justifi-payment-method-form.entry.js.map +1 -0
- package/dist/esm/justifi-payments-list.entry.js +4 -107
- package/dist/esm/justifi-payments-list.entry.js.map +1 -0
- package/dist/esm/loader.js +6 -3
- package/dist/esm/loader.js.map +1 -0
- package/dist/esm/polyfills/css-shim.js +1 -1
- package/dist/esm/select-input_2.entry.js +5 -3
- package/dist/esm/select-input_2.entry.js.map +1 -0
- package/dist/esm/state-options-188acc34.js +246 -0
- package/dist/esm/state-options-188acc34.js.map +1 -0
- package/dist/esm/webcomponents.js +9 -3
- package/dist/esm/webcomponents.js.map +1 -0
- package/dist/types/api/Api.d.ts +1 -1
- package/dist/types/api/Payment.d.ts +1 -1
- package/dist/types/components/business-info/business-info-schema.d.ts +42 -0
- package/dist/types/components/business-info/business-info.d.ts +20 -0
- package/dist/types/components/payment-form/payment-form.d.ts +1 -0
- package/dist/types/components/payment-method-form/payment-method-responses.d.ts +1 -1
- package/dist/types/components.d.ts +63 -0
- package/dist/types/stencil-public-runtime.d.ts +72 -15
- package/dist/webcomponents/index.esm.js +2 -0
- package/dist/webcomponents/index.esm.js.map +1 -0
- package/dist/webcomponents/p-0ea23153.js +2 -0
- package/dist/webcomponents/p-0ea23153.js.map +1 -0
- package/dist/webcomponents/p-16b4e90a.entry.js +2 -0
- package/dist/webcomponents/p-16b4e90a.entry.js.map +1 -0
- package/dist/webcomponents/p-1ca0646b.js +2 -1
- package/dist/webcomponents/p-1ca0646b.js.map +1 -0
- package/dist/webcomponents/p-1f151d49.js +2 -0
- package/dist/webcomponents/p-1f151d49.js.map +1 -0
- package/dist/webcomponents/p-1f23b391.entry.js +2 -0
- package/dist/webcomponents/p-1f23b391.entry.js.map +1 -0
- package/dist/webcomponents/p-255b1284.entry.js +2 -0
- package/dist/webcomponents/p-255b1284.entry.js.map +1 -0
- package/dist/webcomponents/p-3aa91155.js +3 -0
- package/dist/webcomponents/p-3aa91155.js.map +1 -0
- package/dist/webcomponents/p-90c0d9e1.entry.js +2 -0
- package/dist/webcomponents/p-90c0d9e1.entry.js.map +1 -0
- package/dist/webcomponents/p-c903cc5a.entry.js +2 -0
- package/dist/webcomponents/p-c903cc5a.entry.js.map +1 -0
- package/dist/webcomponents/p-d87b0711.entry.js +2 -0
- package/dist/webcomponents/p-d87b0711.entry.js.map +1 -0
- package/dist/webcomponents/p-dbf7100f.entry.js +2 -0
- package/dist/webcomponents/p-dbf7100f.entry.js.map +1 -0
- package/dist/webcomponents/p-e0054bc3.js +2 -0
- package/dist/webcomponents/p-e0054bc3.js.map +1 -0
- package/dist/webcomponents/p-f30d1567.entry.js +2 -0
- package/dist/webcomponents/p-f30d1567.entry.js.map +1 -0
- package/dist/webcomponents/p-f66f024e.entry.js +2 -0
- package/dist/webcomponents/p-f66f024e.entry.js.map +1 -0
- package/dist/webcomponents/webcomponents.css +1 -1
- package/dist/webcomponents/webcomponents.esm.js +2 -1
- package/dist/webcomponents/webcomponents.esm.js.map +1 -0
- package/loader/index.d.ts +9 -0
- package/package.json +8 -4
- package/dist/webcomponents/p-039e3540.entry.js +0 -1
- package/dist/webcomponents/p-11e5bef9.entry.js +0 -1
- package/dist/webcomponents/p-20732337.js +0 -1
- package/dist/webcomponents/p-24409e8e.entry.js +0 -1
- package/dist/webcomponents/p-4a406704.js +0 -2
- package/dist/webcomponents/p-5774e36e.entry.js +0 -1
- package/dist/webcomponents/p-5b5e8351.entry.js +0 -1
- package/dist/webcomponents/p-7747c086.entry.js +0 -1
- package/dist/webcomponents/p-b061da77.entry.js +0 -1
- package/dist/webcomponents/p-bc35e124.entry.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment-method-form.js","sourceRoot":"","sources":["../../../../src/components/payment-method-form/payment-method-form.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Event, Host, Prop, h, EventEmitter, Method, State } from '@stencil/core';\nimport { MessageEventType } from './message-event-types';\nimport { Theme } from './theme';\nimport packageJson from '../../../package.json';\nimport getComputedTheme from './get-computed-theme';\nimport { CreatePaymentMethodResponse } from './payment-method-responses';\n\n@Component({\n tag: 'justifi-payment-method-form',\n styleUrl: 'payment-method-form.css',\n shadow: false,\n})\nexport class PaymentMethodForm {\n @Prop() paymentMethodFormType: 'card' | 'bankAccount';\n @Prop({\n mutable: true,\n })\n paymentMethodFormValidationMode: 'onChange' | 'onBlur' | 'onSubmit' | 'onTouched' | 'all';\n @Prop() iframeOrigin?: string;\n @Prop() singleLine: boolean;\n @Event({ bubbles: true }) paymentMethodFormReady: EventEmitter;\n @Event({ bubbles: true }) paymentMethodFormTokenize: EventEmitter<{ data: any }>;\n @State() height: number = 55;\n\n private computedTheme: Theme = getComputedTheme();\n\n iframeElement!: HTMLIFrameElement;\n\n connectedCallback() {\n window.addEventListener('message', this.dispatchMessageEvent.bind(this));\n }\n\n disconnectedCallback() {\n window.removeEventListener('message', this.dispatchMessageEvent.bind(this));\n }\n\n componentShouldUpdate() {\n this.sendStyleOverrides();\n }\n\n sendStyleOverrides() {\n if (this.computedTheme) {\n this.postMessage(MessageEventType[this.paymentMethodFormType].styleOverrides, { styleOverrides: this.computedTheme });\n }\n }\n\n private dispatchMessageEvent(messageEvent: MessageEvent) {\n const messagePayload = messageEvent.data;\n const messageType = messagePayload.eventType;\n const messageData = messagePayload.data;\n\n if (messageType === MessageEventType[this.paymentMethodFormType].ready) {\n this.paymentMethodFormReady.emit(messageData);\n }\n\n if (messageType === MessageEventType[this.paymentMethodFormType].resize) {\n this.height = messageData.height;\n }\n }\n\n private postMessage(eventType: string, payload?: any) {\n this.iframeElement?.contentWindow?.postMessage({ eventType: eventType, ...payload }, '*');\n }\n\n private async postMessageWithResponseListener(eventType: string, payload?: any): Promise<any> {\n return new Promise(resolve => {\n const responseListener = (event: MessageEvent) => {\n if (event.data.eventType !== eventType) return;\n window.removeEventListener('message', responseListener);\n resolve(event.data.data);\n };\n window.addEventListener('message', responseListener);\n this.postMessage(eventType, payload);\n });\n }\n\n @Method()\n async tokenize(clientId: string, paymentMethodMetadata: any, account?: string): Promise<CreatePaymentMethodResponse> {\n const eventType = MessageEventType[this.paymentMethodFormType].tokenize;\n const payload = {\n clientId: clientId,\n componentVersion: packageJson.version,\n paymentMethodMetadata: paymentMethodMetadata,\n account: account,\n };\n\n return this.postMessageWithResponseListener(eventType, payload);\n }\n\n @Method()\n async validate(): Promise<any> {\n return this.postMessageWithResponseListener(MessageEventType[this.paymentMethodFormType].validate);\n }\n\n private composeQueryParams(values: string[]) {\n const queryParams = values.map(value => {\n if (value === values[0]) {\n return (value = `?${value}`);\n } else {\n return (value = `&${value}`);\n }\n });\n return queryParams.join('');\n }\n\n private getIframeSrc() {\n const iframeOrigin = process.env.IFRAME_ORIGIN;\n let iframeSrc = `${iframeOrigin}/${this.paymentMethodFormType}`;\n let paramsList = [];\n if (this.paymentMethodFormValidationMode) {\n paramsList.push(`validationMode=${this.paymentMethodFormValidationMode}`);\n }\n if (this.singleLine) {\n paramsList.push(`singleLine=${this.singleLine}`);\n }\n\n return iframeSrc.concat(this.composeQueryParams(paramsList));\n }\n\n render() {\n return (\n <Host>\n <iframe\n id={`justifi-payment-method-form-${this.paymentMethodFormType}`}\n src={this.getIframeSrc()}\n ref={el => (this.iframeElement = el as HTMLIFrameElement)}\n height={this.height}\n ></iframe>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment-method-responses.js","sourceRoot":"","sources":["../../../../src/components/payment-method-form/payment-method-responses.ts"],"names":[],"mappings":"","sourcesContent":["interface PaymentMethodCreateResponseWrapper {\n id: string;\n type: 'payment_method';\n error?: {\n code: string;\n message: string;\n };\n page_info: string;\n}\n\ninterface CardCreateResponse extends PaymentMethodCreateResponseWrapper {\n data?: {\n signature: string;\n customer_id: string;\n account_id: string;\n card: {\n id: string;\n name: string;\n acct_last_four: number;\n brand: string;\n token: string;\n month: string;\n year: string;\n metadata: any;\n address_line1_check: string;\n address_postal_code_check: string;\n };\n };\n}\n\ninterface BankAccountCreateResponse extends PaymentMethodCreateResponseWrapper {\n data?: {\n signature: string;\n customer_id: string;\n account_id: string;\n bank_account: {\n id: string;\n account_owner_name: string;\n account_type: 'checking' | 'savings';\n bank_name: string;\n acct_last_four: number;\n token: string;\n metadata: any;\n };\n };\n}\n\nexport type CreatePaymentMethodResponse = CardCreateResponse | BankAccountCreateResponse;\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { newE2EPage } from '@stencil/core/testing';
|
|
2
|
+
it('should emit "paymentMethodFormReady" when conditions are met', async () => {
|
|
3
|
+
const page = await newE2EPage();
|
|
4
|
+
await page.setContent('<justifi-card-form></justifi-card-form>');
|
|
5
|
+
const cardFormElement = await page.find('justifi-card-form');
|
|
6
|
+
const paymentFormElement = await page.find('justifi-payment-method-form');
|
|
7
|
+
const readyEventSpy = await cardFormElement.spyOnEvent('cardFormReady');
|
|
8
|
+
paymentFormElement.triggerEvent('paymentMethodFormReady');
|
|
9
|
+
await page.waitForChanges();
|
|
10
|
+
expect(readyEventSpy).toHaveReceivedEventTimes(1);
|
|
11
|
+
});
|
|
12
|
+
it('should emit "paymentMethodFormTokenize" when conditions are met', async () => {
|
|
13
|
+
const page = await newE2EPage();
|
|
14
|
+
await page.setContent('<justifi-card-form></justifi-card-form>');
|
|
15
|
+
const cardFormElement = await page.find('justifi-card-form');
|
|
16
|
+
const paymentFormElement = await page.find('justifi-payment-method-form');
|
|
17
|
+
const tokenizeEventSpy = await cardFormElement.spyOnEvent('cardFormTokenize');
|
|
18
|
+
paymentFormElement.triggerEvent('paymentMethodFormTokenize');
|
|
19
|
+
await page.waitForChanges();
|
|
20
|
+
expect(tokenizeEventSpy).toHaveReceivedEventTimes(1);
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=payment-method-form.e2e.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment-method-form.e2e.js","sourceRoot":"","sources":["../../../../../src/components/payment-method-form/test/payment-method-form.e2e.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;EAC5E,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;EAChC,MAAM,IAAI,CAAC,UAAU,CAAC,yCAAyC,CAAC,CAAC;EAEjE,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;EAC7D,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;EAE1E,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;EAExE,kBAAkB,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;EAC1D,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;EAE5B,MAAM,CAAC,aAAa,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;EAC/E,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;EAChC,MAAM,IAAI,CAAC,UAAU,CAAC,yCAAyC,CAAC,CAAC;EAEjE,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;EAC7D,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;EAE1E,MAAM,gBAAgB,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;EAE9E,kBAAkB,CAAC,YAAY,CAAC,2BAA2B,CAAC,CAAC;EAC7D,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;EAE5B,MAAM,CAAC,gBAAgB,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC","sourcesContent":["import { newE2EPage } from '@stencil/core/testing';\n\nit('should emit \"paymentMethodFormReady\" when conditions are met', async () => {\n const page = await newE2EPage();\n await page.setContent('<justifi-card-form></justifi-card-form>');\n\n const cardFormElement = await page.find('justifi-card-form');\n const paymentFormElement = await page.find('justifi-payment-method-form');\n\n const readyEventSpy = await cardFormElement.spyOnEvent('cardFormReady');\n\n paymentFormElement.triggerEvent('paymentMethodFormReady');\n await page.waitForChanges();\n\n expect(readyEventSpy).toHaveReceivedEventTimes(1);\n});\n\nit('should emit \"paymentMethodFormTokenize\" when conditions are met', async () => {\n const page = await newE2EPage();\n await page.setContent('<justifi-card-form></justifi-card-form>');\n\n const cardFormElement = await page.find('justifi-card-form');\n const paymentFormElement = await page.find('justifi-payment-method-form');\n\n const tokenizeEventSpy = await cardFormElement.spyOnEvent('cardFormTokenize');\n\n paymentFormElement.triggerEvent('paymentMethodFormTokenize');\n await page.waitForChanges();\n\n expect(tokenizeEventSpy).toHaveReceivedEventTimes(1);\n});\n"]}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { h } from '@stencil/core';
|
|
2
|
+
import { newSpecPage } from '@stencil/core/testing';
|
|
3
|
+
import { PaymentMethodForm } from '../payment-method-form';
|
|
4
|
+
describe('justifi-payment-method-form', () => {
|
|
5
|
+
it('renders an iframe', async () => {
|
|
6
|
+
const page = await newSpecPage({
|
|
7
|
+
components: [PaymentMethodForm],
|
|
8
|
+
template: () => h("justifi-payment-method-form", { paymentMethodFormType: "card" }),
|
|
9
|
+
});
|
|
10
|
+
expect(page.root).toEqualHtml(`
|
|
11
|
+
<justifi-payment-method-form>
|
|
12
|
+
<iframe height="55" id="justifi-payment-method-form-card" src="https://js.justifi.ai/v2/card"></iframe>
|
|
13
|
+
</justifi-payment-method-form>
|
|
14
|
+
`);
|
|
15
|
+
});
|
|
16
|
+
it('renders a card iframe when paymentMethodFormType is card', async () => {
|
|
17
|
+
const page = await newSpecPage({
|
|
18
|
+
components: [PaymentMethodForm],
|
|
19
|
+
template: () => h("justifi-payment-method-form", { paymentMethodFormType: "card" }),
|
|
20
|
+
});
|
|
21
|
+
expect(page.root).toEqualHtml(`
|
|
22
|
+
<justifi-payment-method-form>
|
|
23
|
+
<iframe height="55" id="justifi-payment-method-form-card" src="https://js.justifi.ai/v2/card"></iframe>
|
|
24
|
+
</justifi-payment-method-form>
|
|
25
|
+
`);
|
|
26
|
+
});
|
|
27
|
+
it('renders a bank iframe when paymentMethodFormType is bank', async () => {
|
|
28
|
+
const page = await newSpecPage({
|
|
29
|
+
components: [PaymentMethodForm],
|
|
30
|
+
template: () => h("justifi-payment-method-form", { paymentMethodFormType: "bankAccount" }),
|
|
31
|
+
});
|
|
32
|
+
expect(page.root).toEqualHtml(`
|
|
33
|
+
<justifi-payment-method-form>
|
|
34
|
+
<iframe height="55" id="justifi-payment-method-form-bankAccount" src="https://js.justifi.ai/v2/bankAccount"></iframe>
|
|
35
|
+
</justifi-payment-method-form>
|
|
36
|
+
`);
|
|
37
|
+
});
|
|
38
|
+
it('renders a card iframe with validationMode when paymentMethodFormType is card and paymentMethodFormValidationMode is set', async () => {
|
|
39
|
+
const page = await newSpecPage({
|
|
40
|
+
components: [PaymentMethodForm],
|
|
41
|
+
template: () => h("justifi-payment-method-form", { paymentMethodFormType: "bankAccount", paymentMethodFormValidationMode: "onChange" }),
|
|
42
|
+
});
|
|
43
|
+
expect(page.root).toEqualHtml(`
|
|
44
|
+
<justifi-payment-method-form>
|
|
45
|
+
<iframe height="55" id="justifi-payment-method-form-bankAccount" src="https://js.justifi.ai/v2/bankAccount?validationMode=onChange"></iframe>
|
|
46
|
+
</justifi-payment-method-form>
|
|
47
|
+
`);
|
|
48
|
+
});
|
|
49
|
+
it('renders a card iframe with validationMode when paymentMethodFormType is card and paymentMethodFormValidationMode is set', async () => {
|
|
50
|
+
const page = await newSpecPage({
|
|
51
|
+
components: [PaymentMethodForm],
|
|
52
|
+
template: () => h("justifi-payment-method-form", { paymentMethodFormType: "bankAccount", paymentMethodFormValidationMode: "onBlur" }),
|
|
53
|
+
});
|
|
54
|
+
expect(page.root).toEqualHtml(`
|
|
55
|
+
<justifi-payment-method-form>
|
|
56
|
+
<iframe height="55" id="justifi-payment-method-form-bankAccount" src="https://js.justifi.ai/v2/bankAccount?validationMode=onBlur"></iframe>
|
|
57
|
+
</justifi-payment-method-form>
|
|
58
|
+
`);
|
|
59
|
+
});
|
|
60
|
+
it('renders a card iframe with iframeOrigin when paymentMethodFormType is card and iframeOrigin is set', async () => {
|
|
61
|
+
const page = await newSpecPage({
|
|
62
|
+
components: [PaymentMethodForm],
|
|
63
|
+
template: () => h("justifi-payment-method-form", { paymentMethodFormType: "card", iframeOrigin: "https://js.justifi.ai/v2" }),
|
|
64
|
+
});
|
|
65
|
+
expect(page.root).toEqualHtml(`
|
|
66
|
+
<justifi-payment-method-form>
|
|
67
|
+
<iframe height="55" id="justifi-payment-method-form-card" src="https://js.justifi.ai/v2/card"></iframe>
|
|
68
|
+
</justifi-payment-method-form>
|
|
69
|
+
`);
|
|
70
|
+
});
|
|
71
|
+
it('renders a card iframe with singleLine when paymentMethodFormType is card and singleLine is set', async () => {
|
|
72
|
+
const page = await newSpecPage({
|
|
73
|
+
components: [PaymentMethodForm],
|
|
74
|
+
template: () => h("justifi-payment-method-form", { paymentMethodFormType: "card", singleLine: true }),
|
|
75
|
+
});
|
|
76
|
+
expect(page.root).toEqualHtml(`
|
|
77
|
+
<justifi-payment-method-form>
|
|
78
|
+
<iframe height="55" id="justifi-payment-method-form-card" src="https://js.justifi.ai/v2/card?singleLine=true"></iframe>
|
|
79
|
+
</justifi-payment-method-form>
|
|
80
|
+
`);
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
//# sourceMappingURL=payment-method-form.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment-method-form.spec.js","sourceRoot":"","sources":["../../../../../src/components/payment-method-form/test/payment-method-form.spec.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;EAC3C,EAAE,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;IACjC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,iBAAiB,CAAC;MAC/B,QAAQ,EAAE,GAAG,EAAE,CAAC,mCAA6B,qBAAqB,EAAC,MAAM,GAA+B;KACzG,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;GAI/B,CAAC,CAAC;EACH,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;IACxE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,iBAAiB,CAAC;MAC/B,QAAQ,EAAE,GAAG,EAAE,CAAC,mCAA6B,qBAAqB,EAAC,MAAM,GAA+B;KACzG,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;GAI/B,CAAC,CAAC;EACH,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;IACxE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,iBAAiB,CAAC;MAC/B,QAAQ,EAAE,GAAG,EAAE,CAAC,mCAA6B,qBAAqB,EAAC,aAAa,GAA+B;KAChH,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;GAI/B,CAAC,CAAC;EACH,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,yHAAyH,EAAE,KAAK,IAAI,EAAE;IACvI,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,iBAAiB,CAAC;MAC/B,QAAQ,EAAE,GAAG,EAAE,CAAC,mCAA6B,qBAAqB,EAAC,aAAa,EAAC,+BAA+B,EAAC,UAAU,GAA+B;KAC3J,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;KAI7B,CAAC,CAAC;EACL,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,yHAAyH,EAAE,KAAK,IAAI,EAAE;IACvI,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,iBAAiB,CAAC;MAC/B,QAAQ,EAAE,GAAG,EAAE,CAAC,mCAA6B,qBAAqB,EAAC,aAAa,EAAC,+BAA+B,EAAC,QAAQ,GAA+B;KACzJ,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;KAI7B,CAAC,CAAC;EACL,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,oGAAoG,EAAE,KAAK,IAAI,EAAE;IAClH,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,iBAAiB,CAAC;MAC/B,QAAQ,EAAE,GAAG,EAAE,CAAC,mCAA6B,qBAAqB,EAAC,MAAM,EAAC,YAAY,EAAC,0BAA0B,GAA+B;KACjJ,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;KAI7B,CAAC,CAAC;EACL,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,gGAAgG,EAAE,KAAK,IAAI,EAAE;IAC9G,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,iBAAiB,CAAC;MAC/B,QAAQ,EAAE,GAAG,EAAE,CAAC,mCAA6B,qBAAqB,EAAC,MAAM,EAAC,UAAU,EAAE,IAAI,GAAgC;KAC3H,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;KAI7B,CAAC,CAAC;EACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { h } from '@stencil/core';\nimport { newSpecPage } from '@stencil/core/testing';\nimport { PaymentMethodForm } from '../payment-method-form';\n\ndescribe('justifi-payment-method-form', () => {\n it('renders an iframe', async () => {\n const page = await newSpecPage({\n components: [PaymentMethodForm],\n template: () => <justifi-payment-method-form paymentMethodFormType=\"card\"></justifi-payment-method-form>,\n });\n expect(page.root).toEqualHtml(`\n <justifi-payment-method-form>\n <iframe height=\"55\" id=\"justifi-payment-method-form-card\" src=\"https://js.justifi.ai/v2/card\"></iframe>\n </justifi-payment-method-form>\n `);\n });\n\n it('renders a card iframe when paymentMethodFormType is card', async () => {\n const page = await newSpecPage({\n components: [PaymentMethodForm],\n template: () => <justifi-payment-method-form paymentMethodFormType=\"card\"></justifi-payment-method-form>,\n });\n expect(page.root).toEqualHtml(`\n <justifi-payment-method-form>\n <iframe height=\"55\" id=\"justifi-payment-method-form-card\" src=\"https://js.justifi.ai/v2/card\"></iframe>\n </justifi-payment-method-form>\n `);\n });\n\n it('renders a bank iframe when paymentMethodFormType is bank', async () => {\n const page = await newSpecPage({\n components: [PaymentMethodForm],\n template: () => <justifi-payment-method-form paymentMethodFormType=\"bankAccount\"></justifi-payment-method-form>,\n });\n expect(page.root).toEqualHtml(`\n <justifi-payment-method-form>\n <iframe height=\"55\" id=\"justifi-payment-method-form-bankAccount\" src=\"https://js.justifi.ai/v2/bankAccount\"></iframe>\n </justifi-payment-method-form>\n `);\n });\n\n it('renders a card iframe with validationMode when paymentMethodFormType is card and paymentMethodFormValidationMode is set', async () => {\n const page = await newSpecPage({\n components: [PaymentMethodForm],\n template: () => <justifi-payment-method-form paymentMethodFormType=\"bankAccount\" paymentMethodFormValidationMode=\"onChange\"></justifi-payment-method-form>,\n });\n\n expect(page.root).toEqualHtml(`\n <justifi-payment-method-form>\n <iframe height=\"55\" id=\"justifi-payment-method-form-bankAccount\" src=\"https://js.justifi.ai/v2/bankAccount?validationMode=onChange\"></iframe>\n </justifi-payment-method-form>\n `);\n });\n\n it('renders a card iframe with validationMode when paymentMethodFormType is card and paymentMethodFormValidationMode is set', async () => {\n const page = await newSpecPage({\n components: [PaymentMethodForm],\n template: () => <justifi-payment-method-form paymentMethodFormType=\"bankAccount\" paymentMethodFormValidationMode=\"onBlur\"></justifi-payment-method-form>,\n });\n\n expect(page.root).toEqualHtml(`\n <justifi-payment-method-form>\n <iframe height=\"55\" id=\"justifi-payment-method-form-bankAccount\" src=\"https://js.justifi.ai/v2/bankAccount?validationMode=onBlur\"></iframe>\n </justifi-payment-method-form>\n `);\n });\n\n it('renders a card iframe with iframeOrigin when paymentMethodFormType is card and iframeOrigin is set', async () => {\n const page = await newSpecPage({\n components: [PaymentMethodForm],\n template: () => <justifi-payment-method-form paymentMethodFormType=\"card\" iframeOrigin=\"https://js.justifi.ai/v2\"></justifi-payment-method-form>,\n });\n\n expect(page.root).toEqualHtml(`\n <justifi-payment-method-form>\n <iframe height=\"55\" id=\"justifi-payment-method-form-card\" src=\"https://js.justifi.ai/v2/card\"></iframe>\n </justifi-payment-method-form>\n `);\n });\n\n it('renders a card iframe with singleLine when paymentMethodFormType is card and singleLine is set', async () => {\n const page = await newSpecPage({\n components: [PaymentMethodForm],\n template: () => <justifi-payment-method-form paymentMethodFormType=\"card\" singleLine={true}></justifi-payment-method-form>,\n });\n\n expect(page.root).toEqualHtml(`\n <justifi-payment-method-form>\n <iframe height=\"55\" id=\"justifi-payment-method-form-card\" src=\"https://js.justifi.ai/v2/card?singleLine=true\"></iframe>\n </justifi-payment-method-form>\n `);\n });\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../../src/components/payment-method-form/theme.ts"],"names":[],"mappings":"","sourcesContent":["export interface Theme {\n layout?: {\n padding?: string;\n formControlSpacingHorizontal?: string;\n formControlSpacingVertical?: string;\n };\n formLabel?: {\n color?: string;\n fontFamily?: string;\n fontSize?: string;\n fontWeight?: string;\n margin?: string;\n };\n formControl?: {\n backgroundColor?: string;\n backgroundColorHover?: string;\n borderColor?: string;\n borderColorHover?: string;\n borderColorFocus?: string;\n borderColorError?: string;\n borderWidth?: string;\n borderBottomWidth?: string;\n borderLeftWidth?: string;\n borderRightWidth?: string;\n borderTopWidth?: string;\n borderRadius?: string;\n borderStyle?: string;\n boxShadow?: string;\n boxShadowError?: string;\n boxShadowErrorFocus?: string;\n boxShadowFocus?: string;\n color?: string;\n colorFocus?: string;\n fontSize?: string;\n fontWeight?: string;\n lineHeight?: string;\n margin?: string;\n padding?: string;\n };\n errorMessage?: {\n color?: string;\n margin?: string;\n fontSize?: string;\n };\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payments-list.js","sourceRoot":"","sources":["../../../../src/components/payments-list/payments-list.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,GAAG,EAA0B,OAAO,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAO3E,MAAM,OAAO,YAAY;;;gBAEY,EAAE;oBACN,EAAE;;EAIjC,mBAAmB;IACjB,IAAI,CAAC,SAAS,EAAE,CAAC;EACnB,CAAC;EAED,SAAS;IACP,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACjC,MAAM,QAAQ,GAAG,WAAW,SAAS,WAAW,CAAC;IACjD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;OACjB,GAAG,CAAC,QAAQ,CAAC;OACb,IAAI,CAAC,CAAC,QAA2C,EAAE,EAAE;MACpD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;MAClE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC,CAAC,CAAC;EACP,CAAC;EAED,MAAM;IACJ,OAAO,CACL,EAAC,IAAI;MACH,aAAO,KAAK,EAAC,eAAe;QAC1B;UACE;YACE,UAAI,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,yCAAyC,cAE1D;YACL,UAAI,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,mCAAmC,aAEpD;YACL,UAAI,KAAK,EAAC,KAAK,cAAa;YAC5B,UAAI,KAAK,EAAC,KAAK,kBAAiB;YAChC,UAAI,KAAK,EAAC,KAAK,iBAAgB;YAC/B,UAAI,KAAK,EAAC,KAAK,iBAAgB;YAC/B,UAAI,KAAK,EAAC,KAAK,qBAAoB;YACnC,UAAI,KAAK,EAAC,KAAK,aAAY,CACxB,CACC;QACR,iBACG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;;UAC3B;YACE;cACE,eAAM,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAO;cAC3C,eAAM,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAO,CACxC;YACL,cAAK,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAM;YACzC,cAAK,OAAO,CAAC,UAAU,CAAM;YAC7B,cAAK,OAAO,CAAC,WAAW,CAAM;YAC9B,cAAK,OAAO,CAAC,EAAE,CAAM;YACrB,cAAK,MAAA,MAAA,OAAO,CAAC,cAAc,0CAAE,IAAI,0CAAE,IAAI,CAAM;YAC7C,cAAK,MAAA,MAAA,OAAO,CAAC,cAAc,0CAAE,IAAI,0CAAE,cAAc,CAAM;YACvD,cAAK,OAAO,CAAC,MAAM,CAAM,CACtB,CAAC;QACR,CAAC,CAAC,CACI,CACF,CACH,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, h, Prop, State, Watch } from '@stencil/core';\nimport { Api, IApiResponseCollection, Payment } from '../../api';\nimport { formatCurrency, formatDate, formatTime } from '../../utils/utils';\n\n@Component({\n tag: 'justifi-payments-list',\n styleUrl: 'payments-list.css',\n shadow: true,\n})\nexport class PaymentsList {\n @Prop() accountId: string;\n @Prop() auth: { token?: string } = {};\n @State() payments: Payment[] = [];\n\n @Watch('accountId')\n @Watch('auth')\n requestPropsChanged() {\n this.fetchData();\n }\n\n fetchData(): void {\n const accountId = this.accountId;\n const endpoint = `account/${accountId}/payments`;\n Api(this.auth.token)\n .get(endpoint)\n .then((response: IApiResponseCollection<Payment[]>) => {\n const data = response.data.map(dataItem => new Payment(dataItem));\n this.payments = data;\n });\n }\n\n render() {\n return (\n <Host>\n <table class=\"justifi-table\">\n <thead>\n <tr>\n <th scope=\"col\" title=\"The date and time each payment was made\">\n Made on\n </th>\n <th scope=\"col\" title=\"The dollar amount of each payment\">\n Amount\n </th>\n <th scope=\"col\">Account</th>\n <th scope=\"col\">Description</th>\n <th scope=\"col\">Payment ID</th>\n <th scope=\"col\">Cardholder</th>\n <th scope=\"col\">Payment Method</th>\n <th scope=\"col\">Status</th>\n </tr>\n </thead>\n <tbody>\n {this.payments.map(payment => {\n <tr>\n <td>\n <div>{formatDate(payment.created_at)}</div>\n <div>{formatTime(payment.created_at)}</div>\n </td>\n <td>{formatCurrency(payment.amount)}</td>\n <td>{payment.account_id}</td>\n <td>{payment.description}</td>\n <td>{payment.id}</td>\n <td>{payment.payment_method?.card?.name}</td>\n <td>{payment.payment_method?.card?.acct_last_four}</td>\n <td>{payment.status}</td>\n </tr>;\n })}\n </tbody>\n </table>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// import { newSpecPage } from '@stencil/core/testing';
|
|
2
|
+
// import { PaymentsList } from '../payments-list';
|
|
3
|
+
describe('payments-list', () => {
|
|
4
|
+
it('passes', () => {
|
|
5
|
+
expect(true);
|
|
6
|
+
});
|
|
7
|
+
// it('renders', async () => {
|
|
8
|
+
// const page = await newSpecPage({
|
|
9
|
+
// components: [PaymentsList],
|
|
10
|
+
// html: `<payments-list></payments-list>`,
|
|
11
|
+
// });
|
|
12
|
+
// expect(page.root).toEqualHtml(`
|
|
13
|
+
// <payments-list>
|
|
14
|
+
// <mock:shadow-root>
|
|
15
|
+
// <slot></slot>
|
|
16
|
+
// </mock:shadow-root>
|
|
17
|
+
// </payments-list>
|
|
18
|
+
// `);
|
|
19
|
+
// });
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=payments-list.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payments-list.spec.js","sourceRoot":"","sources":["../../../../../src/components/payments-list/test/payments-list.spec.tsx"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,mDAAmD;AAEnD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;EAC7B,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IAChB,MAAM,CAAC,IAAI,CAAC,CAAC;EACf,CAAC,CAAC,CAAC;EACH,8BAA8B;EAC9B,qCAAqC;EACrC,kCAAkC;EAClC,+CAA+C;EAC/C,QAAQ;EACR,oCAAoC;EACpC,sBAAsB;EACtB,2BAA2B;EAC3B,wBAAwB;EACxB,4BAA4B;EAC5B,uBAAuB;EACvB,QAAQ;EACR,MAAM;AACR,CAAC,CAAC,CAAC","sourcesContent":["// import { newSpecPage } from '@stencil/core/testing';\n// import { PaymentsList } from '../payments-list';\n\ndescribe('payments-list', () => {\n it('passes', () => {\n expect(true);\n });\n // it('renders', async () => {\n // const page = await newSpecPage({\n // components: [PaymentsList],\n // html: `<payments-list></payments-list>`,\n // });\n // expect(page.root).toEqualHtml(`\n // <payments-list>\n // <mock:shadow-root>\n // <slot></slot>\n // </mock:shadow-root>\n // </payments-list>\n // `);\n // });\n});\n"]}
|
|
@@ -67,6 +67,343 @@
|
|
|
67
67
|
--bs-highlight-bg: #fff3cd;
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
+
.spinner-grow,
|
|
71
|
+
.spinner-border {
|
|
72
|
+
display: inline-block;
|
|
73
|
+
width: var(--bs-spinner-width);
|
|
74
|
+
height: var(--bs-spinner-height);
|
|
75
|
+
vertical-align: var(--bs-spinner-vertical-align);
|
|
76
|
+
border-radius: 50%;
|
|
77
|
+
animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
@keyframes spinner-border {
|
|
81
|
+
to {
|
|
82
|
+
transform: rotate(360deg) /* rtl:ignore */;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
.spinner-border {
|
|
86
|
+
--bs-spinner-width: 2rem;
|
|
87
|
+
--bs-spinner-height: 2rem;
|
|
88
|
+
--bs-spinner-vertical-align: -0.125em;
|
|
89
|
+
--bs-spinner-border-width: 0.25em;
|
|
90
|
+
--bs-spinner-animation-speed: 0.75s;
|
|
91
|
+
--bs-spinner-animation-name: spinner-border;
|
|
92
|
+
border: var(--bs-spinner-border-width) solid currentcolor;
|
|
93
|
+
border-right-color: transparent;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.spinner-border-sm {
|
|
97
|
+
--bs-spinner-width: 1rem;
|
|
98
|
+
--bs-spinner-height: 1rem;
|
|
99
|
+
--bs-spinner-border-width: 0.2em;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
@keyframes spinner-grow {
|
|
103
|
+
0% {
|
|
104
|
+
transform: scale(0);
|
|
105
|
+
}
|
|
106
|
+
50% {
|
|
107
|
+
opacity: 1;
|
|
108
|
+
transform: none;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
.spinner-grow {
|
|
112
|
+
--bs-spinner-width: 2rem;
|
|
113
|
+
--bs-spinner-height: 2rem;
|
|
114
|
+
--bs-spinner-vertical-align: -0.125em;
|
|
115
|
+
--bs-spinner-animation-speed: 0.75s;
|
|
116
|
+
--bs-spinner-animation-name: spinner-grow;
|
|
117
|
+
background-color: currentcolor;
|
|
118
|
+
opacity: 0;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.spinner-grow-sm {
|
|
122
|
+
--bs-spinner-width: 1rem;
|
|
123
|
+
--bs-spinner-height: 1rem;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
@media (prefers-reduced-motion: reduce) {
|
|
127
|
+
.spinner-border,
|
|
128
|
+
.spinner-grow {
|
|
129
|
+
--bs-spinner-animation-speed: 1.5s;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
.clearfix::after {
|
|
133
|
+
display: block;
|
|
134
|
+
clear: both;
|
|
135
|
+
content: "";
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.text-bg-primary {
|
|
139
|
+
color: #fff !important;
|
|
140
|
+
background-color: RGBA(13, 110, 253, var(--bs-bg-opacity, 1)) !important;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.text-bg-secondary {
|
|
144
|
+
color: #fff !important;
|
|
145
|
+
background-color: RGBA(108, 117, 125, var(--bs-bg-opacity, 1)) !important;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.text-bg-success {
|
|
149
|
+
color: #fff !important;
|
|
150
|
+
background-color: RGBA(25, 135, 84, var(--bs-bg-opacity, 1)) !important;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.text-bg-info {
|
|
154
|
+
color: #000 !important;
|
|
155
|
+
background-color: RGBA(13, 202, 240, var(--bs-bg-opacity, 1)) !important;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.text-bg-warning {
|
|
159
|
+
color: #000 !important;
|
|
160
|
+
background-color: RGBA(255, 193, 7, var(--bs-bg-opacity, 1)) !important;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.text-bg-danger {
|
|
164
|
+
color: #fff !important;
|
|
165
|
+
background-color: RGBA(220, 53, 69, var(--bs-bg-opacity, 1)) !important;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.text-bg-light {
|
|
169
|
+
color: #000 !important;
|
|
170
|
+
background-color: RGBA(248, 249, 250, var(--bs-bg-opacity, 1)) !important;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.text-bg-dark {
|
|
174
|
+
color: #fff !important;
|
|
175
|
+
background-color: RGBA(33, 37, 41, var(--bs-bg-opacity, 1)) !important;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.link-primary {
|
|
179
|
+
color: #0d6efd !important;
|
|
180
|
+
}
|
|
181
|
+
.link-primary:hover, .link-primary:focus {
|
|
182
|
+
color: #0a58ca !important;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
.link-secondary {
|
|
186
|
+
color: #6c757d !important;
|
|
187
|
+
}
|
|
188
|
+
.link-secondary:hover, .link-secondary:focus {
|
|
189
|
+
color: #565e64 !important;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.link-success {
|
|
193
|
+
color: #198754 !important;
|
|
194
|
+
}
|
|
195
|
+
.link-success:hover, .link-success:focus {
|
|
196
|
+
color: #146c43 !important;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.link-info {
|
|
200
|
+
color: #0dcaf0 !important;
|
|
201
|
+
}
|
|
202
|
+
.link-info:hover, .link-info:focus {
|
|
203
|
+
color: #3dd5f3 !important;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
.link-warning {
|
|
207
|
+
color: #ffc107 !important;
|
|
208
|
+
}
|
|
209
|
+
.link-warning:hover, .link-warning:focus {
|
|
210
|
+
color: #ffcd39 !important;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
.link-danger {
|
|
214
|
+
color: #dc3545 !important;
|
|
215
|
+
}
|
|
216
|
+
.link-danger:hover, .link-danger:focus {
|
|
217
|
+
color: #b02a37 !important;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
.link-light {
|
|
221
|
+
color: #f8f9fa !important;
|
|
222
|
+
}
|
|
223
|
+
.link-light:hover, .link-light:focus {
|
|
224
|
+
color: #f9fafb !important;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
.link-dark {
|
|
228
|
+
color: #212529 !important;
|
|
229
|
+
}
|
|
230
|
+
.link-dark:hover, .link-dark:focus {
|
|
231
|
+
color: #1a1e21 !important;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
.ratio {
|
|
235
|
+
position: relative;
|
|
236
|
+
width: 100%;
|
|
237
|
+
}
|
|
238
|
+
.ratio::before {
|
|
239
|
+
display: block;
|
|
240
|
+
padding-top: var(--bs-aspect-ratio);
|
|
241
|
+
content: "";
|
|
242
|
+
}
|
|
243
|
+
.ratio > * {
|
|
244
|
+
position: absolute;
|
|
245
|
+
top: 0;
|
|
246
|
+
left: 0;
|
|
247
|
+
width: 100%;
|
|
248
|
+
height: 100%;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
.ratio-1x1 {
|
|
252
|
+
--bs-aspect-ratio: 100%;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
.ratio-4x3 {
|
|
256
|
+
--bs-aspect-ratio: 75%;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
.ratio-16x9 {
|
|
260
|
+
--bs-aspect-ratio: 56.25%;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
.ratio-21x9 {
|
|
264
|
+
--bs-aspect-ratio: 42.8571428571%;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
.fixed-top {
|
|
268
|
+
position: fixed;
|
|
269
|
+
top: 0;
|
|
270
|
+
right: 0;
|
|
271
|
+
left: 0;
|
|
272
|
+
z-index: 1030;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
.fixed-bottom {
|
|
276
|
+
position: fixed;
|
|
277
|
+
right: 0;
|
|
278
|
+
bottom: 0;
|
|
279
|
+
left: 0;
|
|
280
|
+
z-index: 1030;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
.sticky-top {
|
|
284
|
+
position: sticky;
|
|
285
|
+
top: 0;
|
|
286
|
+
z-index: 1020;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
.sticky-bottom {
|
|
290
|
+
position: sticky;
|
|
291
|
+
bottom: 0;
|
|
292
|
+
z-index: 1020;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
@media (min-width: 576px) {
|
|
296
|
+
.sticky-sm-top {
|
|
297
|
+
position: sticky;
|
|
298
|
+
top: 0;
|
|
299
|
+
z-index: 1020;
|
|
300
|
+
}
|
|
301
|
+
.sticky-sm-bottom {
|
|
302
|
+
position: sticky;
|
|
303
|
+
bottom: 0;
|
|
304
|
+
z-index: 1020;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
@media (min-width: 768px) {
|
|
308
|
+
.sticky-md-top {
|
|
309
|
+
position: sticky;
|
|
310
|
+
top: 0;
|
|
311
|
+
z-index: 1020;
|
|
312
|
+
}
|
|
313
|
+
.sticky-md-bottom {
|
|
314
|
+
position: sticky;
|
|
315
|
+
bottom: 0;
|
|
316
|
+
z-index: 1020;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
@media (min-width: 992px) {
|
|
320
|
+
.sticky-lg-top {
|
|
321
|
+
position: sticky;
|
|
322
|
+
top: 0;
|
|
323
|
+
z-index: 1020;
|
|
324
|
+
}
|
|
325
|
+
.sticky-lg-bottom {
|
|
326
|
+
position: sticky;
|
|
327
|
+
bottom: 0;
|
|
328
|
+
z-index: 1020;
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
@media (min-width: 1200px) {
|
|
332
|
+
.sticky-xl-top {
|
|
333
|
+
position: sticky;
|
|
334
|
+
top: 0;
|
|
335
|
+
z-index: 1020;
|
|
336
|
+
}
|
|
337
|
+
.sticky-xl-bottom {
|
|
338
|
+
position: sticky;
|
|
339
|
+
bottom: 0;
|
|
340
|
+
z-index: 1020;
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
@media (min-width: 1400px) {
|
|
344
|
+
.sticky-xxl-top {
|
|
345
|
+
position: sticky;
|
|
346
|
+
top: 0;
|
|
347
|
+
z-index: 1020;
|
|
348
|
+
}
|
|
349
|
+
.sticky-xxl-bottom {
|
|
350
|
+
position: sticky;
|
|
351
|
+
bottom: 0;
|
|
352
|
+
z-index: 1020;
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
.hstack {
|
|
356
|
+
display: flex;
|
|
357
|
+
flex-direction: row;
|
|
358
|
+
align-items: center;
|
|
359
|
+
align-self: stretch;
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
.vstack {
|
|
363
|
+
display: flex;
|
|
364
|
+
flex: 1 1 auto;
|
|
365
|
+
flex-direction: column;
|
|
366
|
+
align-self: stretch;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
.visually-hidden,
|
|
370
|
+
.visually-hidden-focusable:not(:focus):not(:focus-within) {
|
|
371
|
+
position: absolute !important;
|
|
372
|
+
width: 1px !important;
|
|
373
|
+
height: 1px !important;
|
|
374
|
+
padding: 0 !important;
|
|
375
|
+
margin: -1px !important;
|
|
376
|
+
overflow: hidden !important;
|
|
377
|
+
clip: rect(0, 0, 0, 0) !important;
|
|
378
|
+
white-space: nowrap !important;
|
|
379
|
+
border: 0 !important;
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
.stretched-link::after {
|
|
383
|
+
position: absolute;
|
|
384
|
+
top: 0;
|
|
385
|
+
right: 0;
|
|
386
|
+
bottom: 0;
|
|
387
|
+
left: 0;
|
|
388
|
+
z-index: 1;
|
|
389
|
+
content: "";
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
.text-truncate {
|
|
393
|
+
overflow: hidden;
|
|
394
|
+
text-overflow: ellipsis;
|
|
395
|
+
white-space: nowrap;
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
.vr {
|
|
399
|
+
display: inline-block;
|
|
400
|
+
align-self: stretch;
|
|
401
|
+
width: 1px;
|
|
402
|
+
min-height: 1em;
|
|
403
|
+
background-color: currentcolor;
|
|
404
|
+
opacity: 0.25;
|
|
405
|
+
}
|
|
406
|
+
|
|
70
407
|
*,
|
|
71
408
|
*::before,
|
|
72
409
|
*::after {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-input.js","sourceRoot":"","sources":["../../../../src/components/select-input/select-input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAgB,KAAK,EAAE,MAAM,eAAe,CAAC;AAOrF,MAAM,OAAO,WAAW;;;;;;;yBAOG,EAAE;;EAE3B,OAAO,CAAC,KAAK;IACX,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;EACpE,CAAC;EAED,MAAM;IACJ,OAAO,CACL,EAAC,IAAI,IAAC,WAAW,EAAC,2BAA2B;MAC3C,aAAO,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,YAAY,IACnC,IAAI,CAAC,KAAK,CACL;MACR,cACE,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EACrC,IAAI,EAAE,SAAS,IAAI,CAAC,KAAK,IAAI,eAAe,EAAE,EAC9C,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,aAAa,IAE3D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAC1B,cAAQ,KAAK,EAAE,MAAM,CAAC,KAAK,IAAG,MAAM,CAAC,KAAK,CAAU,CACrD,CAAC,CACK;MACR,IAAI,CAAC,KAAK,IAAI,WAAK,KAAK,EAAC,kBAAkB,IAAE,IAAI,CAAC,KAAK,CAAO,CAC1D,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Event, Host, Prop, h, EventEmitter, State } from '@stencil/core';\n\n@Component({\n tag: 'select-input',\n styleUrl: 'select-input.scss',\n shadow: true,\n})\nexport class SelectInput {\n @Prop() name: string;\n @Prop() label: string;\n @Prop() defaultValue: string;\n @Prop() error: string;\n @Prop() options: { label: string; value: string }[];\n @Event() fieldReceivedInput: EventEmitter<{ name: string; value: string }>;\n @State() internalValue = '';\n\n onInput(event) {\n const target = event.target;\n const name = target.getAttribute('name');\n this.fieldReceivedInput.emit({ name: name, value: target.value });\n }\n\n render() {\n return (\n <Host exportparts=\"label,input,input-invalid\">\n <label part=\"label\" class=\"form-label\">\n {this.label}\n </label>\n <select\n name={this.name}\n onInput={event => this.onInput(event)}\n part={`input ${this.error && 'input-invalid'}`}\n class={this.error ? 'form-select is-invalid' : 'form-select'}\n >\n {this.options.map(option => (\n <option value={option.value}>{option.label}</option>\n ))}\n </select>\n {this.error && <div class=\"invalid-feedback\">{this.error}</div>}\n </Host>\n );\n }\n}\n"]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { h } from '@stencil/core';
|
|
2
|
+
import { newSpecPage } from '@stencil/core/testing';
|
|
3
|
+
import { SelectInput } from '../select-input';
|
|
4
|
+
describe('select-input', () => {
|
|
5
|
+
it('renders', async () => {
|
|
6
|
+
const page = await newSpecPage({
|
|
7
|
+
components: [SelectInput],
|
|
8
|
+
template: () => (h("select-input", { options: [
|
|
9
|
+
{
|
|
10
|
+
label: 'Option 1',
|
|
11
|
+
value: 'option1',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
label: 'Option 2',
|
|
15
|
+
value: 'option2',
|
|
16
|
+
},
|
|
17
|
+
] })),
|
|
18
|
+
});
|
|
19
|
+
expect(page.root).toEqualHtml(`
|
|
20
|
+
<select-input>
|
|
21
|
+
<mock:shadow-root>
|
|
22
|
+
<label></label>
|
|
23
|
+
<select>
|
|
24
|
+
<option value="option1">
|
|
25
|
+
Option 1
|
|
26
|
+
</option>
|
|
27
|
+
<option value="option2">
|
|
28
|
+
Option 2
|
|
29
|
+
</option>
|
|
30
|
+
</select>
|
|
31
|
+
</mock:shadow-root>
|
|
32
|
+
</select-input>
|
|
33
|
+
`);
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
//# sourceMappingURL=select-input.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-input.spec.js","sourceRoot":"","sources":["../../../../../src/components/select-input/test/select-input.spec.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAElC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;EAC5B,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;IACvB,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,WAAW,CAAC;MACzB,QAAQ,EAAE,GAAG,EAAE,CAAC,CACd,oBACE,OAAO,EAAE;UACP;YACE,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE,SAAS;WACjB;UACD;YACE,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE,SAAS;WACjB;SACF,GACa,CACjB;KACF,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;;;;;;;;;;;KAc7B,CAAC,CAAC;EACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { h } from '@stencil/core';\n\nimport { newSpecPage } from '@stencil/core/testing';\nimport { SelectInput } from '../select-input';\n\ndescribe('select-input', () => {\n it('renders', async () => {\n const page = await newSpecPage({\n components: [SelectInput],\n template: () => (\n <select-input\n options={[\n {\n label: 'Option 1',\n value: 'option1',\n },\n {\n label: 'Option 2',\n value: 'option2',\n },\n ]}\n ></select-input>\n ),\n });\n expect(page.root).toEqualHtml(`\n <select-input>\n <mock:shadow-root>\n <label></label>\n <select>\n <option value=\"option1\">\n Option 1\n </option>\n <option value=\"option2\">\n Option 2\n </option>\n </select>\n </mock:shadow-root>\n </select-input>\n `);\n });\n});\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { newSpecPage } from '@stencil/core/testing';
|
|
2
|
+
import { TextInput } from '../text-input';
|
|
3
|
+
describe('text-input', () => {
|
|
4
|
+
it('renders', async () => {
|
|
5
|
+
const page = await newSpecPage({
|
|
6
|
+
components: [TextInput],
|
|
7
|
+
html: `<text-input></text-input>`,
|
|
8
|
+
});
|
|
9
|
+
expect(page.root).toEqualHtml(`
|
|
10
|
+
<text-input>
|
|
11
|
+
<mock:shadow-root>
|
|
12
|
+
<label></label>
|
|
13
|
+
<input type="text">
|
|
14
|
+
</mock:shadow-root>
|
|
15
|
+
</text-input>
|
|
16
|
+
`);
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=text-input.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-input.spec.js","sourceRoot":"","sources":["../../../../../src/components/text-input/test/text-input.spec.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;EAC1B,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;IACvB,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,SAAS,CAAC;MACvB,IAAI,EAAE,2BAA2B;KAClC,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;;;;KAO7B,CAAC,CAAC;EACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { newSpecPage } from '@stencil/core/testing';\nimport { TextInput } from '../text-input';\n\ndescribe('text-input', () => {\n it('renders', async () => {\n const page = await newSpecPage({\n components: [TextInput],\n html: `<text-input></text-input>`,\n });\n expect(page.root).toEqualHtml(`\n <text-input>\n <mock:shadow-root>\n <label></label>\n <input type=\"text\">\n </mock:shadow-root>\n </text-input>\n `);\n });\n});\n"]}
|