| | |
| | | /******/ (() => { // webpackBootstrap |
| | | /******/ "use strict"; |
| | | /******/ var __webpack_modules__ = ({ |
| | | |
| | | /***/ "./src/forms/edit.js" |
| | | /*!***************************!*\ |
| | | !*** ./src/forms/edit.js ***! |
| | | \***************************/ |
| | | (__unused_webpack_module, __webpack_exports__, __webpack_require__) { |
| | | |
| | | __webpack_require__.r(__webpack_exports__); |
| | | /* harmony export */ __webpack_require__.d(__webpack_exports__, { |
| | | /* harmony export */ "default": () => (/* binding */ Edit) |
| | | /* harmony export */ }); |
| | | /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); |
| | | /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__); |
| | | /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); |
| | | /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__); |
| | | /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); |
| | | /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__); |
| | | /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); |
| | | /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__); |
| | | /* harmony import */ var _editor_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./editor.scss */ "./src/forms/editor.scss"); |
| | | /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime"); |
| | | /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__); |
| | | /** |
| | | * edit.js |
| | | * WordPress dependencies |
| | | */ |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * Styles |
| | | */ |
| | | |
| | | |
| | | /** |
| | | * Edit function for Form Block |
| | | */ |
| | | |
| | | function Edit({ |
| | | attributes, |
| | | setAttributes |
| | | }) { |
| | | const { |
| | | formType, |
| | | showLabels, |
| | | customEmailTo, |
| | | turnstileEnabled |
| | | } = attributes; |
| | | const [isPreviewVisible, setIsPreviewVisible] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useState)(true); |
| | | const blockProps = (0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.useBlockProps)({ |
| | | className: `jvb-form-block ${formType ? `jvb-form-block-${formType}` : ''}` |
| | | }); |
| | | |
| | | // Get form types from localized data, with fallback |
| | | const getFormTypes = () => { |
| | | if (typeof window !== 'undefined' && window.jvbFormsData && window.jvbFormsData.formTypes) { |
| | | return window.jvbFormsData.formTypes; |
| | | } |
| | | |
| | | // Fallback if data isn't available |
| | | return [{ |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Select a form type', 'jvb'), |
| | | value: '' |
| | | }, { |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No forms available', 'jvb'), |
| | | value: '', |
| | | disabled: true |
| | | }]; |
| | | }; |
| | | |
| | | // Get available forms configuration |
| | | const getAvailableForms = () => { |
| | | console.log(window.jvbFormsData); |
| | | if (typeof window !== 'undefined' && window.jvbFormsData && window.jvbFormsData.availableForms) { |
| | | return window.jvbFormsData.availableForms; |
| | | } |
| | | return {}; |
| | | }; |
| | | const formTypes = getFormTypes(); |
| | | const availableForms = getAvailableForms(); |
| | | |
| | | // Get form configuration based on selected type |
| | | const getCurrentFormConfig = () => { |
| | | if (!formType || !availableForms[formType]) { |
| | | return null; |
| | | } |
| | | return availableForms[formType]; |
| | | }; |
| | | |
| | | // Form labels based on the selected form type |
| | | const getFormLabels = () => { |
| | | const formConfig = getCurrentFormConfig(); |
| | | if (formConfig) { |
| | | return { |
| | | title: formConfig.title || (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Form', 'jvb'), |
| | | description: Array.isArray(formConfig.description) ? formConfig.description.join(' ') : formConfig.description || '', |
| | | button: formConfig.submit || (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Submit', 'jvb') |
| | | }; |
| | | } |
| | | return { |
| | | title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Form', 'jvb'), |
| | | description: formType ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Loading form configuration...', 'jvb') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Please select a form type in the sidebar', 'jvb'), |
| | | button: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Submit', 'jvb') |
| | | }; |
| | | }; |
| | | const formLabels = getFormLabels(); |
| | | |
| | | // Render a preview of the form in the editor |
| | | const renderFormPreview = () => { |
| | | if (!formType) { |
| | | return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.Notice, { |
| | | status: "warning", |
| | | isDismissible: false, |
| | | children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Please select a form type in the block settings.', 'jvb') |
| | | }); |
| | | } |
| | | let formFields = []; |
| | | switch (formType) { |
| | | case 'contact': |
| | | formFields = [{ |
| | | id: 'name', |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Name', 'jvb'), |
| | | type: 'text', |
| | | required: true |
| | | }, { |
| | | id: 'email', |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Email', 'jvb'), |
| | | type: 'email', |
| | | required: true |
| | | }, { |
| | | id: 'phone', |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Phone', 'jvb'), |
| | | type: 'tel', |
| | | required: true |
| | | }, { |
| | | id: 'instagram', |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Instagram URL', 'jvb'), |
| | | type: 'url' |
| | | }, { |
| | | id: 'contact_methods', |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Preferred Contact', 'jvb'), |
| | | type: 'checkboxes', |
| | | options: [{ |
| | | value: 'text', |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Text', 'jvb') |
| | | }, { |
| | | value: 'call', |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Call', 'jvb') |
| | | }, { |
| | | value: 'email', |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Email', 'jvb') |
| | | }, { |
| | | value: 'instagram', |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Instagram', 'jvb') |
| | | }] |
| | | }, { |
| | | id: 'message', |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Your Message', 'jvb'), |
| | | type: 'textarea', |
| | | required: true |
| | | }]; |
| | | break; |
| | | case 'feature_request': |
| | | formFields = [{ |
| | | id: 'name', |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Name', 'jvb'), |
| | | type: 'text', |
| | | help: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Required if you want us to follow up.', 'jvb') |
| | | }, { |
| | | id: 'email', |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Email', 'jvb'), |
| | | type: 'email', |
| | | help: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Required if you want us to follow up.', 'jvb') |
| | | }, { |
| | | id: 'follow_up', |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Would you like me to follow up with you?', 'jvb'), |
| | | type: 'checkbox' |
| | | }, { |
| | | id: 'target_audience', |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('This Feature is For', 'jvb'), |
| | | type: 'checkboxes', |
| | | options: [{ |
| | | value: 'artists', |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Artists', 'jvb') |
| | | }, { |
| | | value: 'visitors', |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Site Visitors', 'jvb') |
| | | }, { |
| | | value: 'partners', |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Partners', 'jvb') |
| | | }, { |
| | | value: 'other', |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Other', 'jvb') |
| | | }] |
| | | }, { |
| | | id: 'feature_name', |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Name your Feature', 'jvb'), |
| | | type: 'text', |
| | | required: true |
| | | }, { |
| | | id: 'message', |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Describe Your Feature', 'jvb'), |
| | | type: 'textarea', |
| | | required: true |
| | | }]; |
| | | break; |
| | | case 'technical_issue': |
| | | formFields = [{ |
| | | id: 'name', |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Name', 'jvb'), |
| | | type: 'text' |
| | | }, { |
| | | id: 'email', |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Email', 'jvb'), |
| | | type: 'email' |
| | | }, { |
| | | id: 'follow_up', |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Would you like me to follow up with you?', 'jvb'), |
| | | type: 'checkbox' |
| | | }, { |
| | | id: 'issue_type', |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Type of Issue', 'jvb'), |
| | | type: 'checkboxes', |
| | | options: [{ |
| | | value: 'visual', |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Visual', 'jvb') |
| | | }, { |
| | | value: 'error', |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Error Page', 'jvb') |
| | | }, { |
| | | value: 'other', |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Other', 'jvb') |
| | | }] |
| | | }, { |
| | | id: 'message', |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Please describe the issue.', 'jvb'), |
| | | type: 'textarea', |
| | | required: true |
| | | }]; |
| | | break; |
| | | } |
| | | return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.Fragment, { |
| | | children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("h3", { |
| | | className: "jvb-form-title", |
| | | children: formLabels.title |
| | | }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("p", { |
| | | className: "jvb-form-description", |
| | | children: formLabels.description |
| | | }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", { |
| | | className: "jvb-form-preview", |
| | | children: [formFields.map(field => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", { |
| | | className: "jvb-form-field", |
| | | children: [showLabels && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("label", { |
| | | htmlFor: `jvb-${field.id}`, |
| | | className: field.required ? 'required' : '', |
| | | children: field.label |
| | | }), field.type === 'text' && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("input", { |
| | | type: "text", |
| | | id: `jvb-${field.id}`, |
| | | placeholder: showLabels ? '' : field.label, |
| | | disabled: true |
| | | }), field.type === 'email' && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("input", { |
| | | type: "email", |
| | | id: `jvb-${field.id}`, |
| | | placeholder: showLabels ? '' : field.label, |
| | | disabled: true |
| | | }), field.type === 'tel' && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("input", { |
| | | type: "tel", |
| | | id: `jvb-${field.id}`, |
| | | placeholder: showLabels ? '' : field.label, |
| | | disabled: true |
| | | }), field.type === 'url' && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("input", { |
| | | type: "url", |
| | | id: `jvb-${field.id}`, |
| | | placeholder: showLabels ? '' : field.label, |
| | | disabled: true |
| | | }), field.type === 'textarea' && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("textarea", { |
| | | id: `jvb-${field.id}`, |
| | | placeholder: showLabels ? '' : field.label, |
| | | disabled: true, |
| | | rows: "4" |
| | | }), field.type === 'checkbox' && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", { |
| | | className: "jvb-form-checkbox", |
| | | children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("input", { |
| | | type: "checkbox", |
| | | id: `jvb-${field.id}`, |
| | | disabled: true |
| | | }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("label", { |
| | | htmlFor: `jvb-${field.id}`, |
| | | children: field.label |
| | | })] |
| | | }), field.type === 'checkboxes' && field.options && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", { |
| | | className: "jvb-form-checkboxes", |
| | | children: field.options.map(option => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", { |
| | | className: "jvb-form-checkbox", |
| | | children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("input", { |
| | | type: "checkbox", |
| | | id: `jvb-${field.id}-${option.value}`, |
| | | disabled: true |
| | | }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("label", { |
| | | htmlFor: `jvb-${field.id}-${option.value}`, |
| | | children: option.label |
| | | })] |
| | | }, option.value)) |
| | | }), field.help && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("p", { |
| | | className: "jvb-form-help", |
| | | children: field.help |
| | | })] |
| | | }, field.id)), turnstileEnabled && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", { |
| | | className: "jvb-form-turnstile", |
| | | children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", { |
| | | className: "jvb-turnstile-placeholder", |
| | | children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", { |
| | | children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Cloudflare Turnstile will appear here', 'jvb') |
| | | }) |
| | | }) |
| | | }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", { |
| | | className: "jvb-form-submit", |
| | | children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("button", { |
| | | type: "button", |
| | | className: "jvb-form-button", |
| | | children: formLabels.button |
| | | }) |
| | | })] |
| | | })] |
| | | }); |
| | | }; |
| | | return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.Fragment, { |
| | | children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.InspectorControls, { |
| | | children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.PanelBody, { |
| | | title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Form Settings', 'jvb'), |
| | | children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.SelectControl, { |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Form Type', 'jvb'), |
| | | value: formType, |
| | | options: formTypes, |
| | | onChange: value => setAttributes({ |
| | | formType: value |
| | | }) |
| | | }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.ToggleControl, { |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Show Field Labels', 'jvb'), |
| | | checked: showLabels, |
| | | onChange: value => setAttributes({ |
| | | showLabels: value |
| | | }), |
| | | help: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Toggle to show or hide field labels.', 'jvb') |
| | | }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.TextControl, { |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Custom Recipient Email', 'jvb'), |
| | | value: customEmailTo || '', |
| | | onChange: value => setAttributes({ |
| | | customEmailTo: value |
| | | }), |
| | | help: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Leave empty to use the default email.', 'jvb'), |
| | | type: "email" |
| | | })] |
| | | }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.PanelBody, { |
| | | title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Form Preview', 'jvb'), |
| | | initialOpen: false, |
| | | children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.ToggleControl, { |
| | | label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Show Preview', 'jvb'), |
| | | checked: isPreviewVisible, |
| | | onChange: value => setIsPreviewVisible(value) |
| | | }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("p", { |
| | | className: "components-base-control__help", |
| | | children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('This is just a preview. The actual form will be rendered on the frontend.', 'jvb') |
| | | })] |
| | | })] |
| | | }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", { |
| | | ...blockProps, |
| | | children: isPreviewVisible ? renderFormPreview() : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", { |
| | | className: "jvb-form-placeholder", |
| | | children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("h3", { |
| | | children: formLabels.title |
| | | }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("p", { |
| | | children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Form preview is hidden. Edit settings in the sidebar.', 'jvb') |
| | | })] |
| | | }) |
| | | })] |
| | | }); |
| | | } |
| | | |
| | | /***/ }, |
| | | |
| | | /***/ "./src/forms/index.js" |
| | | /*!****************************!*\ |
| | | !*** ./src/forms/index.js ***! |
| | | \****************************/ |
| | | (__unused_webpack_module, __webpack_exports__, __webpack_require__) { |
| | | |
| | | __webpack_require__.r(__webpack_exports__); |
| | | /* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); |
| | | /* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_0__); |
| | | /* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./style.scss */ "./src/forms/style.scss"); |
| | | /* harmony import */ var _edit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./edit */ "./src/forms/edit.js"); |
| | | /* harmony import */ var _save__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./save */ "./src/forms/save.js"); |
| | | /* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./block.json */ "./src/forms/block.json"); |
| | | //index.js |
| | | /** |
| | | * Registers a new block provided a unique name and an object defining its behavior. |
| | | * |
| | | * @see https://developer.wordpress.org/block-editor/reference-guides/block-api/block-registration/ |
| | | */ |
| | | |
| | | |
| | | /** |
| | | * Lets webpack process CSS, SASS or SCSS files referenced in JavaScript files. |
| | | * All files containing `style` keyword are bundled together. The code used |
| | | * gets applied both to the front of your site and to the editor. |
| | | * |
| | | * @see https://www.npmjs.com/package/@wordpress/scripts#using-css |
| | | */ |
| | | |
| | | |
| | | /** |
| | | * Internal dependencies |
| | | */ |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * Every block starts by registering a new block type definition. |
| | | * |
| | | * @see https://developer.wordpress.org/block-editor/reference-guides/block-api/block-registration/ |
| | | */ |
| | | (0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_0__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_4__.name, { |
| | | /** |
| | | * @see ./edit.js |
| | | */ |
| | | edit: _edit__WEBPACK_IMPORTED_MODULE_2__["default"], |
| | | /** |
| | | * @see ./save.js |
| | | */ |
| | | save: _save__WEBPACK_IMPORTED_MODULE_3__["default"] |
| | | }); |
| | | |
| | | /***/ }, |
| | | |
| | | /***/ "./src/forms/save.js" |
| | | /*!***************************!*\ |
| | | !*** ./src/forms/save.js ***! |
| | | \***************************/ |
| | | (__unused_webpack_module, __webpack_exports__, __webpack_require__) { |
| | | |
| | | __webpack_require__.r(__webpack_exports__); |
| | | /* harmony export */ __webpack_require__.d(__webpack_exports__, { |
| | | /* harmony export */ "default": () => (/* binding */ save) |
| | | /* harmony export */ }); |
| | | /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); |
| | | /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_0__); |
| | | //save.js |
| | | /** |
| | | * React hook that is used to mark the block wrapper element. |
| | | * It provides all the necessary props like the class name. |
| | | * |
| | | * @see https://developer.wordpress.org/block-editor/reference-guides/packages/packages-block-editor/#useblockprops |
| | | */ |
| | | |
| | | |
| | | /** |
| | | * The save function defines the way in which the different attributes should |
| | | * be combined into the final markup, which is then serialized by the block |
| | | * editor into `post_content`. |
| | | * |
| | | * @see https://developer.wordpress.org/block-editor/reference-guides/block-api/block-edit-save/#save |
| | | * |
| | | * @return {WPElement} Element to render. |
| | | */ |
| | | function save() { |
| | | // This is a dynamic block that is rendered on the server side |
| | | // Return null to let WordPress handle the saving and rendering |
| | | return null; |
| | | } |
| | | |
| | | /***/ }, |
| | | |
| | | /***/ "./src/forms/editor.scss" |
| | | /*!*******************************!*\ |
| | | !*** ./src/forms/editor.scss ***! |
| | | \*******************************/ |
| | | (__unused_webpack_module, __webpack_exports__, __webpack_require__) { |
| | | |
| | | __webpack_require__.r(__webpack_exports__); |
| | | // extracted by mini-css-extract-plugin |
| | | |
| | | |
| | | /***/ }, |
| | | |
| | | /***/ "./src/forms/style.scss" |
| | | /*!******************************!*\ |
| | | !*** ./src/forms/style.scss ***! |
| | | \******************************/ |
| | | (__unused_webpack_module, __webpack_exports__, __webpack_require__) { |
| | | |
| | | __webpack_require__.r(__webpack_exports__); |
| | | // extracted by mini-css-extract-plugin |
| | | |
| | | |
| | | /***/ }, |
| | | |
| | | /***/ "react/jsx-runtime" |
| | | /*!**********************************!*\ |
| | | !*** external "ReactJSXRuntime" ***! |
| | | \**********************************/ |
| | | (module) { |
| | | |
| | | module.exports = window["ReactJSXRuntime"]; |
| | | |
| | | /***/ }, |
| | | |
| | | /***/ "@wordpress/block-editor" |
| | | /*!*************************************!*\ |
| | | !*** external ["wp","blockEditor"] ***! |
| | | \*************************************/ |
| | | (module) { |
| | | |
| | | module.exports = window["wp"]["blockEditor"]; |
| | | |
| | | /***/ }, |
| | | |
| | | /***/ "@wordpress/blocks" |
| | | /*!********************************!*\ |
| | | !*** external ["wp","blocks"] ***! |
| | | \********************************/ |
| | | (module) { |
| | | |
| | | module.exports = window["wp"]["blocks"]; |
| | | |
| | | /***/ }, |
| | | |
| | | /***/ "@wordpress/components" |
| | | /*!************************************!*\ |
| | | !*** external ["wp","components"] ***! |
| | | \************************************/ |
| | | (module) { |
| | | |
| | | module.exports = window["wp"]["components"]; |
| | | |
| | | /***/ }, |
| | | |
| | | /***/ "@wordpress/element" |
| | | /*!*********************************!*\ |
| | | !*** external ["wp","element"] ***! |
| | | \*********************************/ |
| | | (module) { |
| | | |
| | | module.exports = window["wp"]["element"]; |
| | | |
| | | /***/ }, |
| | | |
| | | /***/ "@wordpress/i18n" |
| | | /*!******************************!*\ |
| | | !*** external ["wp","i18n"] ***! |
| | | \******************************/ |
| | | (module) { |
| | | |
| | | module.exports = window["wp"]["i18n"]; |
| | | |
| | | /***/ }, |
| | | |
| | | /***/ "./src/forms/block.json" |
| | | /*!******************************!*\ |
| | | !*** ./src/forms/block.json ***! |
| | | \******************************/ |
| | | (module) { |
| | | |
| | | module.exports = /*#__PURE__*/JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":3,"name":"jvb/forms","title":"Contact Forms","category":"jvb","icon":"align-center","description":"Our custom contact forms","keywords":["form","forms","contact"],"version":"1.0.0","textdomain":"jvb","attributes":{"formType":{"type":"string","default":""},"showLabels":{"type":"boolean","default":true},"customEmailTo":{"type":"string","default":""}},"supports":{"html":false,"align":["wide","full"]},"selectors":{"root":".jvb-form-block"},"styles":[{"name":"default","label":"Default","isDefault":true}],"example":{"attributes":{"formType":"contact","showLabels":true}},"render":"file:./render.php","editorScript":"file:./index.js","editorStyle":"file:./index.scss","style":"file:./style-index.css","viewScript":"file:./view.js"}'); |
| | | |
| | | /***/ } |
| | | |
| | | /******/ }); |
| | | /************************************************************************/ |
| | | /******/ // The module cache |
| | | /******/ var __webpack_module_cache__ = {}; |
| | | /******/ |
| | | /******/ // The require function |
| | | /******/ function __webpack_require__(moduleId) { |
| | | /******/ // Check if module is in cache |
| | | /******/ var cachedModule = __webpack_module_cache__[moduleId]; |
| | | /******/ if (cachedModule !== undefined) { |
| | | /******/ return cachedModule.exports; |
| | | /******/ } |
| | | /******/ // Create a new module (and put it into the cache) |
| | | /******/ var module = __webpack_module_cache__[moduleId] = { |
| | | /******/ // no module.id needed |
| | | /******/ // no module.loaded needed |
| | | /******/ exports: {} |
| | | /******/ }; |
| | | /******/ |
| | | /******/ // Execute the module function |
| | | /******/ if (!(moduleId in __webpack_modules__)) { |
| | | /******/ delete __webpack_module_cache__[moduleId]; |
| | | /******/ var e = new Error("Cannot find module '" + moduleId + "'"); |
| | | /******/ e.code = 'MODULE_NOT_FOUND'; |
| | | /******/ throw e; |
| | | /******/ } |
| | | /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); |
| | | /******/ |
| | | /******/ // Return the exports of the module |
| | | /******/ return module.exports; |
| | | /******/ } |
| | | /******/ |
| | | /******/ // expose the modules object (__webpack_modules__) |
| | | /******/ __webpack_require__.m = __webpack_modules__; |
| | | /******/ |
| | | /************************************************************************/ |
| | | /******/ /* webpack/runtime/chunk loaded */ |
| | | /******/ (() => { |
| | | /******/ var deferred = []; |
| | | /******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { |
| | | /******/ if(chunkIds) { |
| | | /******/ priority = priority || 0; |
| | | /******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; |
| | | /******/ deferred[i] = [chunkIds, fn, priority]; |
| | | /******/ return; |
| | | /******/ } |
| | | /******/ var notFulfilled = Infinity; |
| | | /******/ for (var i = 0; i < deferred.length; i++) { |
| | | /******/ var [chunkIds, fn, priority] = deferred[i]; |
| | | /******/ var fulfilled = true; |
| | | /******/ for (var j = 0; j < chunkIds.length; j++) { |
| | | /******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { |
| | | /******/ chunkIds.splice(j--, 1); |
| | | /******/ } else { |
| | | /******/ fulfilled = false; |
| | | /******/ if(priority < notFulfilled) notFulfilled = priority; |
| | | /******/ } |
| | | /******/ } |
| | | /******/ if(fulfilled) { |
| | | /******/ deferred.splice(i--, 1) |
| | | /******/ var r = fn(); |
| | | /******/ if (r !== undefined) result = r; |
| | | /******/ } |
| | | /******/ } |
| | | /******/ return result; |
| | | /******/ }; |
| | | /******/ })(); |
| | | /******/ |
| | | /******/ /* webpack/runtime/compat get default export */ |
| | | /******/ (() => { |
| | | /******/ // getDefaultExport function for compatibility with non-harmony modules |
| | | /******/ __webpack_require__.n = (module) => { |
| | | /******/ var getter = module && module.__esModule ? |
| | | /******/ () => (module['default']) : |
| | | /******/ () => (module); |
| | | /******/ __webpack_require__.d(getter, { a: getter }); |
| | | /******/ return getter; |
| | | /******/ }; |
| | | /******/ })(); |
| | | /******/ |
| | | /******/ /* webpack/runtime/define property getters */ |
| | | /******/ (() => { |
| | | /******/ // define getter functions for harmony exports |
| | | /******/ __webpack_require__.d = (exports, definition) => { |
| | | /******/ for(var key in definition) { |
| | | /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { |
| | | /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); |
| | | /******/ } |
| | | /******/ } |
| | | /******/ }; |
| | | /******/ })(); |
| | | /******/ |
| | | /******/ /* webpack/runtime/hasOwnProperty shorthand */ |
| | | /******/ (() => { |
| | | /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) |
| | | /******/ })(); |
| | | /******/ |
| | | /******/ /* webpack/runtime/make namespace object */ |
| | | /******/ (() => { |
| | | /******/ // define __esModule on exports |
| | | /******/ __webpack_require__.r = (exports) => { |
| | | /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { |
| | | /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); |
| | | /******/ } |
| | | /******/ Object.defineProperty(exports, '__esModule', { value: true }); |
| | | /******/ }; |
| | | /******/ })(); |
| | | /******/ |
| | | /******/ /* webpack/runtime/jsonp chunk loading */ |
| | | /******/ (() => { |
| | | /******/ // no baseURI |
| | | /******/ |
| | | /******/ // object to store loaded and loading chunks |
| | | /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched |
| | | /******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded |
| | | /******/ var installedChunks = { |
| | | /******/ "forms/index": 0, |
| | | /******/ "forms/style-index": 0 |
| | | /******/ }; |
| | | /******/ |
| | | /******/ // no chunk on demand loading |
| | | /******/ |
| | | /******/ // no prefetching |
| | | /******/ |
| | | /******/ // no preloaded |
| | | /******/ |
| | | /******/ // no HMR |
| | | /******/ |
| | | /******/ // no HMR manifest |
| | | /******/ |
| | | /******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); |
| | | /******/ |
| | | /******/ // install a JSONP callback for chunk loading |
| | | /******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { |
| | | /******/ var [chunkIds, moreModules, runtime] = data; |
| | | /******/ // add "moreModules" to the modules object, |
| | | /******/ // then flag all "chunkIds" as loaded and fire callback |
| | | /******/ var moduleId, chunkId, i = 0; |
| | | /******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { |
| | | /******/ for(moduleId in moreModules) { |
| | | /******/ if(__webpack_require__.o(moreModules, moduleId)) { |
| | | /******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; |
| | | /******/ } |
| | | /******/ } |
| | | /******/ if(runtime) var result = runtime(__webpack_require__); |
| | | /******/ } |
| | | /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); |
| | | /******/ for(;i < chunkIds.length; i++) { |
| | | /******/ chunkId = chunkIds[i]; |
| | | /******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { |
| | | /******/ installedChunks[chunkId][0](); |
| | | /******/ } |
| | | /******/ installedChunks[chunkId] = 0; |
| | | /******/ } |
| | | /******/ return __webpack_require__.O(result); |
| | | /******/ } |
| | | /******/ |
| | | /******/ var chunkLoadingGlobal = globalThis["webpackChunkjvb"] = globalThis["webpackChunkjvb"] || []; |
| | | /******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); |
| | | /******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); |
| | | /******/ })(); |
| | | /******/ |
| | | /************************************************************************/ |
| | | /******/ |
| | | /******/ // startup |
| | | /******/ // Load entry module and return exports |
| | | /******/ // This entry module depends on other loaded chunks and execution need to be delayed |
| | | /******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["forms/style-index"], () => (__webpack_require__("./src/forms/index.js"))) |
| | | /******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); |
| | | /******/ |
| | | /******/ })() |
| | | ; |
| | | //# sourceMappingURL=index.js.map |
| | | (()=>{"use strict";var e,l={677(){const e=window.wp.blocks,l=window.wp.i18n,a=window.wp.blockEditor,t=window.wp.components,i=window.wp.element,s=window.ReactJSXRuntime;(0,e.registerBlockType)("jvb/forms",{edit:function({attributes:e,setAttributes:r}){const{formType:o,showLabels:b,customEmailTo:n,turnstileEnabled:d}=e,[v,c]=(0,i.useState)(!0),j=(0,a.useBlockProps)({className:"jvb-form-block "+(o?`jvb-form-block-${o}`:"")}),p="undefined"!=typeof window&&window.jvbFormsData&&window.jvbFormsData.formTypes?window.jvbFormsData.formTypes:[{label:(0,l.__)("Select a form type","jvb"),value:""},{label:(0,l.__)("No forms available","jvb"),value:"",disabled:!0}],u=(console.log(window.jvbFormsData),"undefined"!=typeof window&&window.jvbFormsData&&window.jvbFormsData.availableForms?window.jvbFormsData.availableForms:{}),m=(()=>{const e=o&&u[o]?u[o]:null;return e?{title:e.title||(0,l.__)("Form","jvb"),description:Array.isArray(e.description)?e.description.join(" "):e.description||"",button:e.submit||(0,l.__)("Submit","jvb")}:{title:(0,l.__)("Form","jvb"),description:o?(0,l.__)("Loading form configuration...","jvb"):(0,l.__)("Please select a form type in the sidebar","jvb"),button:(0,l.__)("Submit","jvb")}})();return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(a.InspectorControls,{children:[(0,s.jsxs)(t.PanelBody,{title:(0,l.__)("Form Settings","jvb"),children:[(0,s.jsx)(t.SelectControl,{label:(0,l.__)("Form Type","jvb"),value:o,options:p,onChange:e=>r({formType:e})}),(0,s.jsx)(t.ToggleControl,{label:(0,l.__)("Show Field Labels","jvb"),checked:b,onChange:e=>r({showLabels:e}),help:(0,l.__)("Toggle to show or hide field labels.","jvb")}),(0,s.jsx)(t.TextControl,{label:(0,l.__)("Custom Recipient Email","jvb"),value:n||"",onChange:e=>r({customEmailTo:e}),help:(0,l.__)("Leave empty to use the default email.","jvb"),type:"email"})]}),(0,s.jsxs)(t.PanelBody,{title:(0,l.__)("Form Preview","jvb"),initialOpen:!1,children:[(0,s.jsx)(t.ToggleControl,{label:(0,l.__)("Show Preview","jvb"),checked:v,onChange:e=>c(e)}),(0,s.jsx)("p",{className:"components-base-control__help",children:(0,l.__)("This is just a preview. The actual form will be rendered on the frontend.","jvb")})]})]}),(0,s.jsx)("div",{...j,children:v?(()=>{if(!o)return(0,s.jsx)(t.Notice,{status:"warning",isDismissible:!1,children:(0,l.__)("Please select a form type in the block settings.","jvb")});let e=[];switch(o){case"contact":e=[{id:"name",label:(0,l.__)("Name","jvb"),type:"text",required:!0},{id:"email",label:(0,l.__)("Email","jvb"),type:"email",required:!0},{id:"phone",label:(0,l.__)("Phone","jvb"),type:"tel",required:!0},{id:"instagram",label:(0,l.__)("Instagram URL","jvb"),type:"url"},{id:"contact_methods",label:(0,l.__)("Preferred Contact","jvb"),type:"checkboxes",options:[{value:"text",label:(0,l.__)("Text","jvb")},{value:"call",label:(0,l.__)("Call","jvb")},{value:"email",label:(0,l.__)("Email","jvb")},{value:"instagram",label:(0,l.__)("Instagram","jvb")}]},{id:"message",label:(0,l.__)("Your Message","jvb"),type:"textarea",required:!0}];break;case"feature_request":e=[{id:"name",label:(0,l.__)("Name","jvb"),type:"text",help:(0,l.__)("Required if you want us to follow up.","jvb")},{id:"email",label:(0,l.__)("Email","jvb"),type:"email",help:(0,l.__)("Required if you want us to follow up.","jvb")},{id:"follow_up",label:(0,l.__)("Would you like me to follow up with you?","jvb"),type:"checkbox"},{id:"target_audience",label:(0,l.__)("This Feature is For","jvb"),type:"checkboxes",options:[{value:"artists",label:(0,l.__)("Artists","jvb")},{value:"visitors",label:(0,l.__)("Site Visitors","jvb")},{value:"partners",label:(0,l.__)("Partners","jvb")},{value:"other",label:(0,l.__)("Other","jvb")}]},{id:"feature_name",label:(0,l.__)("Name your Feature","jvb"),type:"text",required:!0},{id:"message",label:(0,l.__)("Describe Your Feature","jvb"),type:"textarea",required:!0}];break;case"technical_issue":e=[{id:"name",label:(0,l.__)("Name","jvb"),type:"text"},{id:"email",label:(0,l.__)("Email","jvb"),type:"email"},{id:"follow_up",label:(0,l.__)("Would you like me to follow up with you?","jvb"),type:"checkbox"},{id:"issue_type",label:(0,l.__)("Type of Issue","jvb"),type:"checkboxes",options:[{value:"visual",label:(0,l.__)("Visual","jvb")},{value:"error",label:(0,l.__)("Error Page","jvb")},{value:"other",label:(0,l.__)("Other","jvb")}]},{id:"message",label:(0,l.__)("Please describe the issue.","jvb"),type:"textarea",required:!0}]}return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("h3",{className:"jvb-form-title",children:m.title}),(0,s.jsx)("p",{className:"jvb-form-description",children:m.description}),(0,s.jsxs)("div",{className:"jvb-form-preview",children:[e.map(e=>(0,s.jsxs)("div",{className:"jvb-form-field",children:[b&&(0,s.jsx)("label",{htmlFor:`jvb-${e.id}`,className:e.required?"required":"",children:e.label}),"text"===e.type&&(0,s.jsx)("input",{type:"text",id:`jvb-${e.id}`,placeholder:b?"":e.label,disabled:!0}),"email"===e.type&&(0,s.jsx)("input",{type:"email",id:`jvb-${e.id}`,placeholder:b?"":e.label,disabled:!0}),"tel"===e.type&&(0,s.jsx)("input",{type:"tel",id:`jvb-${e.id}`,placeholder:b?"":e.label,disabled:!0}),"url"===e.type&&(0,s.jsx)("input",{type:"url",id:`jvb-${e.id}`,placeholder:b?"":e.label,disabled:!0}),"textarea"===e.type&&(0,s.jsx)("textarea",{id:`jvb-${e.id}`,placeholder:b?"":e.label,disabled:!0,rows:"4"}),"checkbox"===e.type&&(0,s.jsxs)("div",{className:"jvb-form-checkbox",children:[(0,s.jsx)("input",{type:"checkbox",id:`jvb-${e.id}`,disabled:!0}),(0,s.jsx)("label",{htmlFor:`jvb-${e.id}`,children:e.label})]}),"checkboxes"===e.type&&e.options&&(0,s.jsx)("div",{className:"jvb-form-checkboxes",children:e.options.map(l=>(0,s.jsxs)("div",{className:"jvb-form-checkbox",children:[(0,s.jsx)("input",{type:"checkbox",id:`jvb-${e.id}-${l.value}`,disabled:!0}),(0,s.jsx)("label",{htmlFor:`jvb-${e.id}-${l.value}`,children:l.label})]},l.value))}),e.help&&(0,s.jsx)("p",{className:"jvb-form-help",children:e.help})]},e.id)),d&&(0,s.jsx)("div",{className:"jvb-form-turnstile",children:(0,s.jsx)("div",{className:"jvb-turnstile-placeholder",children:(0,s.jsx)("span",{children:(0,l.__)("Cloudflare Turnstile will appear here","jvb")})})}),(0,s.jsx)("div",{className:"jvb-form-submit",children:(0,s.jsx)("button",{type:"button",className:"jvb-form-button",children:m.button})})]})]})})():(0,s.jsxs)("div",{className:"jvb-form-placeholder",children:[(0,s.jsx)("h3",{children:m.title}),(0,s.jsx)("p",{children:(0,l.__)("Form preview is hidden. Edit settings in the sidebar.","jvb")})]})})]})},save:function(){return null}})}},a={};function t(e){var i=a[e];if(void 0!==i)return i.exports;var s=a[e]={exports:{}};return l[e](s,s.exports,t),s.exports}t.m=l,e=[],t.O=(l,a,i,s)=>{if(!a){var r=1/0;for(d=0;d<e.length;d++){for(var[a,i,s]=e[d],o=!0,b=0;b<a.length;b++)(!1&s||r>=s)&&Object.keys(t.O).every(e=>t.O[e](a[b]))?a.splice(b--,1):(o=!1,s<r&&(r=s));if(o){e.splice(d--,1);var n=i();void 0!==n&&(l=n)}}return l}s=s||0;for(var d=e.length;d>0&&e[d-1][2]>s;d--)e[d]=e[d-1];e[d]=[a,i,s]},t.o=(e,l)=>Object.prototype.hasOwnProperty.call(e,l),(()=>{var e={637:0,705:0};t.O.j=l=>0===e[l];var l=(l,a)=>{var i,s,[r,o,b]=a,n=0;if(r.some(l=>0!==e[l])){for(i in o)t.o(o,i)&&(t.m[i]=o[i]);if(b)var d=b(t)}for(l&&l(a);n<r.length;n++)s=r[n],t.o(e,s)&&e[s]&&e[s][0](),e[s]=0;return t.O(d)},a=globalThis.webpackChunkjvb=globalThis.webpackChunkjvb||[];a.forEach(l.bind(null,0)),a.push=l.bind(null,a.push.bind(a))})();var i=t.O(void 0,[705],()=>t(677));i=t.O(i)})(); |