diff --git a/website/docs/basics/blocks-faq.md b/website/docs/basics/blocks-faq.md index 70c7b6dd2..1e96c4fd7 100644 --- a/website/docs/basics/blocks-faq.md +++ b/website/docs/basics/blocks-faq.md @@ -152,7 +152,7 @@ For WordPress versions > 5 and < 5.8 you would need to use the example below. ### How to allow only one pattern category? -In the blog post about Block Patterns we covered how to [manage pattern categories](/blog/block-patterns/#managing-pattern-categories). That section should give you an idea how to remove core categories and how to register one or more custom pattern categories. +In the blog post about Block Patterns we covered how to [manage pattern categories](/blog/block-patterns#managing-pattern-categories). That section should give you an idea how to remove core categories and how to register one or more custom pattern categories. ### Can I have blocks in multiple categories? diff --git a/website/docs/basics/blocks-wrapper.md b/website/docs/basics/blocks-wrapper.md index 27908320a..04383a05a 100644 --- a/website/docs/basics/blocks-wrapper.md +++ b/website/docs/basics/blocks-wrapper.md @@ -35,7 +35,7 @@ This attribute controls the usage of the wrapper component. It behaves the same ### wrapperUseShowControl -This attribute controls whether you will see the options for block use in the block editor. It behaves the same way as described in [this chapter](blocks-component-in-block#i-dont-want-my-editor-to-be-able-to-change-components-options-in-my-block). +This attribute controls whether you will see the options for block use in the block editor. It behaves the same way as described in [this chapter](blocks-component-in-block#i-dont-want-my-editor-to-be-able-to-change-component-options-in-my-block). ### wrapperUseSimple @@ -43,7 +43,7 @@ We wrapped some options in a specific condition and we call it `wrapperUseSimple ### wrapperUseSimpleShowControl -This attribute controls whether you are going to see options in the block editor to use the simple option. It behaves the same way as described in [this chapter](blocks-component-in-block#i-dont-want-my-editor-to-be-able-to-change-components-options-in-my-block). +This attribute controls whether you are going to see options in the block editor to use the simple option. It behaves the same way as described in [this chapter](blocks-component-in-block#i-dont-want-my-editor-to-be-able-to-change-component-options-in-my-block). ### wrapperDisable diff --git a/website/docs/legacy/v5/basics/blocks-wrapper.md b/website/docs/legacy/v5/basics/blocks-wrapper.md index 6e97e30c2..867cd4525 100644 --- a/website/docs/legacy/v5/basics/blocks-wrapper.md +++ b/website/docs/legacy/v5/basics/blocks-wrapper.md @@ -20,7 +20,7 @@ This attribute controls the usage of the wrapper component. It behaves the same ### wrapperUseShowControl -This attribute controls whether you will see the options for block use in the block editor. It behaves the same way as described in [this chapter](blocks-component-in-block#i-dont-want-my-editor-to-be-able-to-change-components-options-in-my-block). +This attribute controls whether you will see the options for block use in the block editor. It behaves the same way as described in [this chapter](blocks-component-in-block#i-dont-want-my-editor-to-be-able-to-change-component-options-in-my-block). ### wrapperUseSimple @@ -28,7 +28,7 @@ We wrapped some of the options in a specific condition and we call it `wrapperUs ### wrapperUseSimpleShowControl -This attribute controls whether you are going to see options in the block editor to use the simple option. It behaves the same way as described in [this chapter](blocks-component-in-block#i-dont-want-my-editor-to-be-able-to-change-components-options-in-my-block). +This attribute controls whether you are going to see options in the block editor to use the simple option. It behaves the same way as described in [this chapter](blocks-component-in-block#i-dont-want-my-editor-to-be-able-to-change-component-options-in-my-block). ### wrapperDisable diff --git a/website/docs/legacy/v6/basics/blocks-wrapper.md b/website/docs/legacy/v6/basics/blocks-wrapper.md index 028f5c8d5..7b4efd7aa 100644 --- a/website/docs/legacy/v6/basics/blocks-wrapper.md +++ b/website/docs/legacy/v6/basics/blocks-wrapper.md @@ -35,7 +35,7 @@ This attribute controls the usage of the wrapper component. It behaves the same ### wrapperUseShowControl -This attribute controls whether you will see the options for block use in the block editor. It behaves the same way as described in [this chapter](blocks-component-in-block#i-dont-want-my-editor-to-be-able-to-change-components-options-in-my-block). +This attribute controls whether you will see the options for block use in the block editor. It behaves the same way as described in [this chapter](blocks-component-in-block#i-dont-want-my-editor-to-be-able-to-change-component-options-in-my-block). ### wrapperUseSimple @@ -43,7 +43,7 @@ We wrapped some of the options in a specific condition and we call it `wrapperUs ### wrapperUseSimpleShowControl -This attribute controls whether you are going to see options in the block editor to use the simple option. It behaves the same way as described in [this chapter](blocks-component-in-block#i-dont-want-my-editor-to-be-able-to-change-components-options-in-my-block). +This attribute controls whether you are going to see options in the block editor to use the simple option. It behaves the same way as described in [this chapter](blocks-component-in-block#i-dont-want-my-editor-to-be-able-to-change-component-options-in-my-block). ### wrapperDisable diff --git a/website/docs/legacy/v7/basics/blocks-wrapper.md b/website/docs/legacy/v7/basics/blocks-wrapper.md index 76d7720fb..fd39386a2 100644 --- a/website/docs/legacy/v7/basics/blocks-wrapper.md +++ b/website/docs/legacy/v7/basics/blocks-wrapper.md @@ -35,7 +35,7 @@ This attribute controls the usage of the wrapper component. It behaves the same ### wrapperUseShowControl -This attribute controls whether you will see the options for block use in the block editor. It behaves the same way as described in [this chapter](blocks-component-in-block#i-dont-want-my-editor-to-be-able-to-change-components-options-in-my-block). +This attribute controls whether you will see the options for block use in the block editor. It behaves the same way as described in [this chapter](blocks-component-in-block#i-dont-want-my-editor-to-be-able-to-change-component-options-in-my-block). ### wrapperUseSimple @@ -43,7 +43,7 @@ We wrapped some of the options in a specific condition and we call it `wrapperUs ### wrapperUseSimpleShowControl -This attribute controls whether you are going to see options in the block editor to use the simple option. It behaves the same way as described in [this chapter](blocks-component-in-block#i-dont-want-my-editor-to-be-able-to-change-components-options-in-my-block). +This attribute controls whether you are going to see options in the block editor to use the simple option. It behaves the same way as described in [this chapter](blocks-component-in-block#i-dont-want-my-editor-to-be-able-to-change-component-options-in-my-block). ### wrapperDisable diff --git a/website/docs/legacy/v8/basics/blocks-wrapper.md b/website/docs/legacy/v8/basics/blocks-wrapper.md index 27908320a..04383a05a 100644 --- a/website/docs/legacy/v8/basics/blocks-wrapper.md +++ b/website/docs/legacy/v8/basics/blocks-wrapper.md @@ -35,7 +35,7 @@ This attribute controls the usage of the wrapper component. It behaves the same ### wrapperUseShowControl -This attribute controls whether you will see the options for block use in the block editor. It behaves the same way as described in [this chapter](blocks-component-in-block#i-dont-want-my-editor-to-be-able-to-change-components-options-in-my-block). +This attribute controls whether you will see the options for block use in the block editor. It behaves the same way as described in [this chapter](blocks-component-in-block#i-dont-want-my-editor-to-be-able-to-change-component-options-in-my-block). ### wrapperUseSimple @@ -43,7 +43,7 @@ We wrapped some options in a specific condition and we call it `wrapperUseSimple ### wrapperUseSimpleShowControl -This attribute controls whether you are going to see options in the block editor to use the simple option. It behaves the same way as described in [this chapter](blocks-component-in-block#i-dont-want-my-editor-to-be-able-to-change-components-options-in-my-block). +This attribute controls whether you are going to see options in the block editor to use the simple option. It behaves the same way as described in [this chapter](blocks-component-in-block#i-dont-want-my-editor-to-be-able-to-change-component-options-in-my-block). ### wrapperDisable diff --git a/website/forms/addons/create/intro.md b/website/forms/addons/create/intro.md new file mode 100644 index 000000000..8cd7a5f72 --- /dev/null +++ b/website/forms/addons/create/intro.md @@ -0,0 +1,6 @@ +--- +id: intro +title: Intro +--- + +**Coming soon** diff --git a/website/forms/addons/premium/computed-fields/intro.md b/website/forms/addons/premium/computed-fields/intro.md new file mode 100644 index 000000000..8cd7a5f72 --- /dev/null +++ b/website/forms/addons/premium/computed-fields/intro.md @@ -0,0 +1,6 @@ +--- +id: intro +title: Intro +--- + +**Coming soon** diff --git a/website/forms/features/entries.md b/website/forms/features/entries.md new file mode 100644 index 000000000..14cd1f7fe --- /dev/null +++ b/website/forms/features/entries.md @@ -0,0 +1,6 @@ +--- +id: entries +title: Entries +--- + +**Coming soon** diff --git a/website/forms/integrations/pipedrive.md b/website/forms/integrations/pipedrive.md index 313f21e47..19c485367 100644 --- a/website/forms/integrations/pipedrive.md +++ b/website/forms/integrations/pipedrive.md @@ -3,4 +3,24 @@ id: pipedrive title: Pipedrive --- -*Coming soon...* +Pipedrive is a web-based Sales CRM and pipeline management solution that enables businesses to plan their sales activities and monitor deals. + +### Website + +* [Visit website](https://www.pipedrive.com/) + +### API Version + +* V1 + +### API Documentation + +* [Documentation](https://developers.pipedrive.com/docs/api/v1) + +### Integration type + +* Form builder **not** provided by the service. +* The form is created using our forms fields and connected to Pipedrive fields using form settings. + +### Supported fields: +* All diff --git a/website/forms/javascript/events/available-events.mdx b/website/forms/javascript/events/available-events.mdx index fca8545b6..2c957151d 100644 --- a/website/forms/javascript/events/available-events.mdx +++ b/website/forms/javascript/events/available-events.mdx @@ -8,6 +8,10 @@ You can listen to these events by using the `on` method on the `Event` facade. Every event contains the whole window object inside the details property. This way you can be sure that everything is set and ready to be used. Additionally if an event is a part of the `after` event you can use the `additional` property to get the API response details. +:::note +List of all events can be found [here](https://github.com/infinum/eightshift-forms/blob/develop/src/Blocks/manifest.json). +::: + ### esFormsBeforeFormSubmit Triggered before form is submitted to the API-Rest endpoint. @@ -119,3 +123,11 @@ Triggered after multi-step/multi-flow form is used and the previous step is load :::tip This event is set on the form element. ::: + +### esFormsEnrichmentPrefill + +Triggered after enrichment data is pre-filled from `localStorage`. + +:::tip +This event is set on the form element. +::: diff --git a/website/forms/javascript/events/how-to-use.md b/website/forms/javascript/events/how-to-use.md index e8ed7036a..506493595 100644 --- a/website/forms/javascript/events/how-to-use.md +++ b/website/forms/javascript/events/how-to-use.md @@ -5,7 +5,7 @@ title: How to use? ### esFormsAfterCaptchaInit -In this example the event is hooked to the window object and in event details you have: +In this example the event is hooked to the `window` object and in event details you have: * `esForms` - object. * `formId` - not available because this is a global event. * `additional` - object from the API response. @@ -35,19 +35,28 @@ window.addEventListener('esFormsAfterCaptchaInit', ({detail}) => { ### esFormsJsFormLoaded -In this example the event is hooked to the window object and in event details you have: +In this example the event is hooked to the `form` element and in event details you have: * `esForms` - object. * `formId` - form Id this event is a part of. -* `additional` - not available because this is a not API response event. ```js -window.addEventListener('esFormsJsFormLoaded', ({detail}) => { - const { - formId, - esForms, - } = detail; +import domReady from '@wordpress/dom-ready'; - // Do some actions with the form. +domReady(() => { + const element = document.querySelector('.js-es-block-form'); + + if (!element) { + return; + } + + element?.addEventListener('esFormsJsFormLoaded', ({detail}) => { + const { + formId, + esForms, + } = detail; + + // Do some actions with the form. + }); }); ``` @@ -61,8 +70,13 @@ In this example the event is hooked to the `form` element and in event details y ```js const { store } = window.esForms.store; -[...document.querySelectorAll(store.getStateSelectorsForm())].forEach((form) => { +[...document.querySelectorAll(store.getStateSelector('form'))].forEach((form) => { form.addEventListener('esFormsAfterFormSubmitReset', ({detail}) => { + const { + formId, + esForms, + additional + } = detail; // Do some actions with the form. }); }); diff --git a/website/forms/javascript/state/how-to-use.md b/website/forms/javascript/state/how-to-use.md index 7d0081b4c..c88c516d6 100644 --- a/website/forms/javascript/state/how-to-use.md +++ b/website/forms/javascript/state/how-to-use.md @@ -16,7 +16,9 @@ window.esForms or you can use built-in events which also contain all the state in the time of the event. :::caution -It's important to be careful when using a state outside of the `esFormsJsFormLoaded` event, as it may not be ready at the time of use. To ensure that the state is available, calling your JavaScript after the `domReady` event and with the `esFormsJsFormLoaded` event is necessary. +Take caution when using state data outside of the `esFormsJsFormLoaded` event, as it may not be available at the time of use. To be sure the data is available, run code after the DOM is ready (`DOMContentLoaded` event), together with the `esFormsJsFormLoaded` event. + +If your script is loaded before the main form script, you can use PHP hooks to make forms script dependent on you script to ensure that your script is loaded before the main form script and the events will fire. ::: ## Example @@ -27,7 +29,13 @@ In this example we are using the `esFormsJsFormLoaded` event to initialize our f import domReady from '@wordpress/dom-ready'; domReady(() => { - window.addEventListener('esFormsJsFormLoaded', ({detail}) => { + const element = document.querySelector('.js-es-block-form'); + + if (!element) { + return; + } + + element?.addEventListener('esFormsJsFormLoaded', ({detail}) => { const { formId, esForms = { @@ -35,9 +43,7 @@ domReady(() => { }, } = detail; - if (store?.getStateFormElement(formId)) { - // Do some actions with the form. - } + // Do some actions with the form. }); }); ``` diff --git a/website/forms/php/filters/admin/settings-data.md b/website/forms/php/filters/admin/settings-data.md new file mode 100644 index 000000000..8ade13ce7 --- /dev/null +++ b/website/forms/php/filters/admin/settings-data.md @@ -0,0 +1,32 @@ +--- +id: settings-data +title: Settings data +--- + +This filter allows adding a custom settings page in the WordPress admin area. Useful when creating custom option pages for Forms add-on plugins. + +```php +add_filter('es_forms_admin_settings_data', 'getSettingsConfig'); + +/** + * Settings config data. + * + * @return array + */ +public function getSettingsConfig(): array +{ + return [ + self::SETTINGS_TYPE_KEY => [ + 'settings' => 'es_forms_settings_addon_', + 'settingsGlobal' => 'es_forms_settings_global_', + 'type' => 'addon', + 'use' => '-use', + 'labels' => [ + 'title' => \__('Title', ''), + 'desc' => \__('Description', ''), + 'icon' => '', + ], + ], + ]; +} +``` diff --git a/website/forms/php/filters/block/checkboxes/additional-content.md b/website/forms/php/filters/block/checkboxes/additional-content.md deleted file mode 100644 index 8ae679f60..000000000 --- a/website/forms/php/filters/block/checkboxes/additional-content.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -id: additional-content -title: Additional content ---- - -This filter allows to add custom content before the closing tag of the field element. Can be useful for additional markup, styles, etc. - -```php -add_filter('es_forms_block_checkboxes_additional_content', function(): string { - return ''; -}) -``` diff --git a/website/forms/php/filters/block/checkboxes/additional-content.mdx b/website/forms/php/filters/block/checkboxes/additional-content.mdx new file mode 100644 index 000000000..7e4381d79 --- /dev/null +++ b/website/forms/php/filters/block/checkboxes/additional-content.mdx @@ -0,0 +1,9 @@ +--- +id: additional-content +title: Additional content +--- + +import { AdditionalContentFilter } from './../../../../../src/docs/filters'; + + + diff --git a/website/forms/php/filters/block/country/additional-content.md b/website/forms/php/filters/block/country/additional-content.md deleted file mode 100644 index 54ec40268..000000000 --- a/website/forms/php/filters/block/country/additional-content.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -id: additional-content -title: Additional content ---- - -This filter allows to add custom content before the closing tag of the field element. Can be useful for additional markup, styles, etc. - -```php -add_filter('es_forms_block_country_additional_content', function(): string { - return ''; -}) -``` diff --git a/website/forms/php/filters/block/country/additional-content.mdx b/website/forms/php/filters/block/country/additional-content.mdx new file mode 100644 index 000000000..95d40d59c --- /dev/null +++ b/website/forms/php/filters/block/country/additional-content.mdx @@ -0,0 +1,9 @@ +--- +id: additional-content +title: Additional content +--- + +import { AdditionalContentFilter } from './../../../../../src/docs/filters'; + + + diff --git a/website/forms/php/filters/block/date/additional-content.md b/website/forms/php/filters/block/date/additional-content.md deleted file mode 100644 index e6031f8bd..000000000 --- a/website/forms/php/filters/block/date/additional-content.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -id: additional-content -title: Additional content ---- - -This filter allows to add custom content before the closing tag of the field element. Can be useful for additional markup, styles, etc. - -```php -add_filter('es_forms_block_date_additional_content', function(): string { - return ''; -}) -``` diff --git a/website/forms/php/filters/block/date/additional-content.mdx b/website/forms/php/filters/block/date/additional-content.mdx new file mode 100644 index 000000000..77dff8bcd --- /dev/null +++ b/website/forms/php/filters/block/date/additional-content.mdx @@ -0,0 +1,9 @@ +--- +id: additional-content +title: Additional content +--- + +import { AdditionalContentFilter } from './../../../../../src/docs/filters'; + + + diff --git a/website/forms/php/filters/block/field/additional-content.md b/website/forms/php/filters/block/field/additional-content.md deleted file mode 100644 index e36854132..000000000 --- a/website/forms/php/filters/block/field/additional-content.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -id: additional-content -title: Additional content ---- - -This filter allows to add custom content before the closing tag of the field element. Can be useful for additional markup, styles, etc. - -```php -add_filter('es_forms_block_field_additional_content', function(): string { - return ''; -}) -``` diff --git a/website/forms/php/filters/block/field/additional-content.mdx b/website/forms/php/filters/block/field/additional-content.mdx new file mode 100644 index 000000000..f73a46c42 --- /dev/null +++ b/website/forms/php/filters/block/field/additional-content.mdx @@ -0,0 +1,9 @@ +--- +id: additional-content +title: Additional content +--- + +import { AdditionalContentFilter } from './../../../../../src/docs/filters'; + + + diff --git a/website/forms/php/filters/block/file/additional-content.md b/website/forms/php/filters/block/file/additional-content.md deleted file mode 100644 index d0a5f2e84..000000000 --- a/website/forms/php/filters/block/file/additional-content.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -id: additional-content -title: Additional content ---- - -This filter allows to add custom content before the closing tag of the field element. Can be useful for additional markup, styles, etc. - -```php -add_filter('es_forms_block_file_additional_content', function(): string { - return ''; -}) -``` diff --git a/website/forms/php/filters/block/file/additional-content.mdx b/website/forms/php/filters/block/file/additional-content.mdx new file mode 100644 index 000000000..3754440ab --- /dev/null +++ b/website/forms/php/filters/block/file/additional-content.mdx @@ -0,0 +1,9 @@ +--- +id: additional-content +title: Additional content +--- + +import { AdditionalContentFilter } from './../../../../../src/docs/filters'; + + + diff --git a/website/forms/php/filters/block/form-selector/additional-content.md b/website/forms/php/filters/block/form-selector/additional-content.md deleted file mode 100644 index 19fba72e4..000000000 --- a/website/forms/php/filters/block/form-selector/additional-content.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -id: additional-content -title: Additional content ---- - -This filter allows to add custom content before the closing tag of the field element. Can be useful for additional markup, styles, etc. - -```php -add_filter('es_forms_block_form_selector_additional_content', function(): string { - return ''; -}) -``` diff --git a/website/forms/php/filters/block/form-selector/additional-content.mdx b/website/forms/php/filters/block/form-selector/additional-content.mdx new file mode 100644 index 000000000..5802f7a7e --- /dev/null +++ b/website/forms/php/filters/block/form-selector/additional-content.mdx @@ -0,0 +1,9 @@ +--- +id: additional-content +title: Additional content +--- + +import { AdditionalContentFilter } from './../../../../../src/docs/filters'; + + + diff --git a/website/forms/php/filters/block/form/additional-content.md b/website/forms/php/filters/block/form/additional-content.md deleted file mode 100644 index 67c7b5fe2..000000000 --- a/website/forms/php/filters/block/form/additional-content.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -id: additional-content -title: Additional content ---- - -This filter allows to add custom content before the closing tag of the field element. Can be useful for additional markup, styles, etc. - -```php -add_filter('es_forms_block_form_additional_content', function(): string { - return ''; -}) -``` diff --git a/website/forms/php/filters/block/form/additional-content.mdx b/website/forms/php/filters/block/form/additional-content.mdx new file mode 100644 index 000000000..3dcab34bd --- /dev/null +++ b/website/forms/php/filters/block/form/additional-content.mdx @@ -0,0 +1,9 @@ +--- +id: additional-content +title: Additional content +--- + +import { AdditionalContentFilter } from './../../../../../src/docs/filters'; + + + diff --git a/website/forms/php/filters/block/form/additional-hidden-fields.md b/website/forms/php/filters/block/form/additional-hidden-fields.md new file mode 100644 index 000000000..470a6681a --- /dev/null +++ b/website/forms/php/filters/block/form/additional-hidden-fields.md @@ -0,0 +1,30 @@ +--- +id: additional-hidden-fields +title: Additional hidden fields +--- + +Allows adding custom hidden fields to the form block. These fields will **not** be visible in the Block Editor. Useful if external data needs to be passed through the form. + +```php +\add_filter('es_forms_block_form_additional_hidden_fields', [$this, 'getBlockFormAdditionalHiddenFields'], 10, 2); + +/** + * Set additional hidden fields to form block. + * + * @param array $output Output data. + * @param string $formId FormId value. + * + * @return array + */ +public function getBlockFormAdditionalHiddenFields(array $output, string $formId): array +{ + $output['additionalHiddenFields'] = [ + [ + 'name' => 'additional-hidden-field', + 'value' => 'additional-hidden-field-value', + ], + ]; + + return $output; +} +``` diff --git a/website/forms/php/filters/block/form/pre-response-addon-data.md b/website/forms/php/filters/block/form/pre-response-addon-data.md new file mode 100644 index 000000000..776c1d5a7 --- /dev/null +++ b/website/forms/php/filters/block/form/pre-response-addon-data.md @@ -0,0 +1,27 @@ +--- +id: pre-response-addon-data +title: Pre-Response Addon Data +--- + +Allows adding custom data to the API response when the form is submitted. + +```php +\add_filter('es_forms_block_form_pre_response_addon_data', [$this, 'getPreResponseAddonData'], 10, 2); + +/** + * Set additional data to API response for addon data. + * + * @param array $output Output data. + * @param array $formDetails Data passed from the `getFormDetailsApi` function. + * + * @return array + */ +public function getPreResponseAddonData(array $output, string $formDetails): array +{ + $output['addonData'] = [ + 'key' => 'value', + ]; + + return $output; +} +``` diff --git a/website/forms/php/filters/block/form/pre-response-success-redirect-data.md b/website/forms/php/filters/block/form/pre-response-success-redirect-data.md new file mode 100644 index 000000000..9b16f6da3 --- /dev/null +++ b/website/forms/php/filters/block/form/pre-response-success-redirect-data.md @@ -0,0 +1,27 @@ +--- +id: pre-response-success-redirect-data +title: Pre-Response Success Redirect Data +--- + +Allows adding data to the API response key, which is used when passing data to the success redirect URL. + +```php +\add_filter('es_forms_block_form_pre_response_success_redirect_data', [$this, 'getPreResponseSuccessRedirectData'], 10, 2); + +/** + * Set additional data to API response for success redirect. + * + * @param array $output Output data. + * @param array $formDetails Data passed from the `getFormDetailsApi` function. + * + * @return array + */ +public function getPreResponseSuccessRedirectData(array $output, string $formDetails): array +{ + $output['successData'] = [ + 'key' => 'value', + ]; + + return $output; +} +``` diff --git a/website/forms/php/filters/block/input/additional-content.md b/website/forms/php/filters/block/input/additional-content.md deleted file mode 100644 index 8f5ee96a6..000000000 --- a/website/forms/php/filters/block/input/additional-content.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -id: additional-content -title: Additional content ---- - -This filter allows to add custom content before the closing tag of the field element. Can be useful for additional markup, styles, etc. - -```php -add_filter('es_forms_block_input_additional_content', function(): string { - return ''; -}) -``` diff --git a/website/forms/php/filters/block/input/additional-content.mdx b/website/forms/php/filters/block/input/additional-content.mdx new file mode 100644 index 000000000..8b98cde86 --- /dev/null +++ b/website/forms/php/filters/block/input/additional-content.mdx @@ -0,0 +1,9 @@ +--- +id: additional-content +title: Additional content +--- + +import { AdditionalContentFilter } from './../../../../../src/docs/filters'; + + + diff --git a/website/forms/php/filters/block/phone/additional-content.md b/website/forms/php/filters/block/phone/additional-content.md deleted file mode 100644 index 48b1f7aea..000000000 --- a/website/forms/php/filters/block/phone/additional-content.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -id: additional-content -title: Additional content ---- - -This filter allows to add custom content before the closing tag of the field element. Can be useful for additional markup, styles, etc. - -```php -add_filter('es_forms_block_phone_additional_content', function(): string { - return ''; -}) -``` diff --git a/website/forms/php/filters/block/phone/additional-content.mdx b/website/forms/php/filters/block/phone/additional-content.mdx new file mode 100644 index 000000000..d2357bf6c --- /dev/null +++ b/website/forms/php/filters/block/phone/additional-content.mdx @@ -0,0 +1,9 @@ +--- +id: additional-content +title: Additional content +--- + +import { AdditionalContentFilter } from './../../../../../src/docs/filters'; + + + diff --git a/website/forms/php/filters/block/radios/additional-content.md b/website/forms/php/filters/block/radios/additional-content.md deleted file mode 100644 index 56f02dbe3..000000000 --- a/website/forms/php/filters/block/radios/additional-content.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -id: additional-content -title: Additional content ---- - -This filter allows to add custom content before the closing tag of the field element. Can be useful for additional markup, styles, etc. - -```php -add_filter('es_forms_block_radios_additional_content', function(): string { - return ''; -}) -``` diff --git a/website/forms/php/filters/block/radios/additional-content.mdx b/website/forms/php/filters/block/radios/additional-content.mdx new file mode 100644 index 000000000..d7e360a1c --- /dev/null +++ b/website/forms/php/filters/block/radios/additional-content.mdx @@ -0,0 +1,9 @@ +--- +id: additional-content +title: Additional content +--- + +import { AdditionalContentFilter } from './../../../../../src/docs/filters'; + + + diff --git a/website/forms/php/filters/block/rating/additional-content.mdx b/website/forms/php/filters/block/rating/additional-content.mdx new file mode 100644 index 000000000..3119e228a --- /dev/null +++ b/website/forms/php/filters/block/rating/additional-content.mdx @@ -0,0 +1,8 @@ +--- +id: additional-content +title: Additional content +--- + +import { AdditionalContentFilter } from './../../../../../src/docs/filters'; + + diff --git a/website/forms/php/filters/block/select/additional-content.md b/website/forms/php/filters/block/select/additional-content.md deleted file mode 100644 index 79fde8aed..000000000 --- a/website/forms/php/filters/block/select/additional-content.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -id: additional-content -title: Additional content ---- - -This filter allows to add custom content before the closing tag of the field element. Can be useful for additional markup, styles, etc. - -```php -add_filter('es_forms_block_select_additional_content', function(): string { - return ''; -}) -``` diff --git a/website/forms/php/filters/block/select/additional-content.mdx b/website/forms/php/filters/block/select/additional-content.mdx new file mode 100644 index 000000000..43ae601a7 --- /dev/null +++ b/website/forms/php/filters/block/select/additional-content.mdx @@ -0,0 +1,9 @@ +--- +id: additional-content +title: Additional content +--- + +import { AdditionalContentFilter } from './../../../../../src/docs/filters'; + + + diff --git a/website/forms/php/filters/block/submit/additional-content.md b/website/forms/php/filters/block/submit/additional-content.md deleted file mode 100644 index 2425a8362..000000000 --- a/website/forms/php/filters/block/submit/additional-content.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -id: additional-content -title: Additional content ---- - -This filter allows to add custom content before the closing tag of the field element. Can be useful for additional markup, styles, etc. - -```php -add_filter('es_forms_block_submit_additional_content', function(): string { - return ''; -}) -``` diff --git a/website/forms/php/filters/block/submit/additional-content.mdx b/website/forms/php/filters/block/submit/additional-content.mdx new file mode 100644 index 000000000..248614e7f --- /dev/null +++ b/website/forms/php/filters/block/submit/additional-content.mdx @@ -0,0 +1,9 @@ +--- +id: additional-content +title: Additional content +--- + +import { AdditionalContentFilter } from './../../../../../src/docs/filters'; + + + diff --git a/website/forms/php/filters/block/textarea/additional-content.md b/website/forms/php/filters/block/textarea/additional-content.md deleted file mode 100644 index 90c675ed0..000000000 --- a/website/forms/php/filters/block/textarea/additional-content.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -id: additional-content -title: Additional content ---- - -This filter allows to add custom content before the closing tag of the field element. Can be useful for additional markup, styles, etc. - -```php -add_filter('es_forms_block_textarea_additional_content', function(): string { - return ''; -}) -``` diff --git a/website/forms/php/filters/block/textarea/additional-content.mdx b/website/forms/php/filters/block/textarea/additional-content.mdx new file mode 100644 index 000000000..8a0c4b760 --- /dev/null +++ b/website/forms/php/filters/block/textarea/additional-content.mdx @@ -0,0 +1,9 @@ +--- +id: additional-content +title: Additional content +--- + +import { AdditionalContentFilter } from './../../../../../src/docs/filters'; + + + diff --git a/website/forms/php/filters/blocks/allowed-blocks.md b/website/forms/php/filters/blocks/allowed-blocks.md new file mode 100644 index 000000000..f6ed215b0 --- /dev/null +++ b/website/forms/php/filters/blocks/allowed-blocks.md @@ -0,0 +1,27 @@ +--- +id: allowed-blocks +title: Allowed blocks +--- + +Allows setting a custom list of the allowed blocks within the form editor. It will override the project settings. +Useful if you want to ensure that a custom block (e.g. from an add-on) is visible in the form editor. + +```php +\add_filter('es_forms_blocks_allowed_blocks', 'getAllowedBlocks'); + + /** + * Override the allowed blocks list and provide addon block. + * + * @return array List of blocks. + */ + public function getAllowedBlocks(): array + { + return [ + '/', + ]; + } +``` + +:::note +Blocks should be listed with their _fully qualified_ names, e.g. `eightshift-boilerplate/heading`. +::: diff --git a/website/forms/php/filters/blocks/media-breakpoints.md b/website/forms/php/filters/blocks/media-breakpoints.md index f9fdf7c7b..22d36db7a 100644 --- a/website/forms/php/filters/blocks/media-breakpoints.md +++ b/website/forms/php/filters/blocks/media-breakpoints.md @@ -19,5 +19,5 @@ add_filter('es_forms_blocks_media_breakpoints', function(): array { ``` :::note -Additional breakpoints cannot be provided, only the current values can be modified! +Additional breakpoints can't be provided, only the current values can be modified! ::: diff --git a/website/forms/php/filters/entries/pre-post-params.md b/website/forms/php/filters/entries/pre-post-params.md new file mode 100644 index 000000000..609b4e72e --- /dev/null +++ b/website/forms/php/filters/entries/pre-post-params.md @@ -0,0 +1,35 @@ +--- +id: pre-post-params +title: Pre-Post Params +--- + +Allows modifying field data before storing it into the database. Useful if, for example, a field value needs to determine a custom output of a different field. + +```php +add_filter('es_forms_entries_pre_post_params', 'getIntegrationPrePostParams', 10, 3); + +/** + * Change form fields data before it is stored to the WordPress database + * + * @param array $params Array of params. + * @param string $formId Form ID. + * @param array $formDetails Data passed from the `getFormDetailsApi` function. + * + * @return array + */ +function getIntegrationPrePostParams(array $params, string $formId, array $formDetails): array +{ + $formSubmissionPageLt = $params['form_submission_page_lt']['value'] ?? ''; + + if ($formSubmissionPageLt) { + $params['ib-submission-source'] = [ + 'name' => 'ib-submission-source', + 'value' => $formSubmissionPageLt, + 'type' => 'text', + 'internalType' => '', + ]; + } + + return $params; +} +``` diff --git a/website/forms/php/filters/general/locale.md b/website/forms/php/filters/general/locale.md new file mode 100644 index 000000000..b50e7d545 --- /dev/null +++ b/website/forms/php/filters/general/locale.md @@ -0,0 +1,27 @@ +--- +id: locale +title: Locale +--- + +Allows changing the current locale. By default, WordPress will use the locale that is set as the Site Language in settings. A plugin like WPML can also set this value. + +Filter should return an array with two keys: `default` and `current`. Both keys should contain a string value of the locale for your project. + +```php +add_filter('es_forms_general_locale', 'getFormsLocale'); + +/** + * Change the current locale. + * + * @return array + */ +public function getFormsLocale(): mixed +{ + // Get the default and current locale (e.g. from WPML plugin). + return [ + 'default' => '', + 'current' => '', + ]; +} +``` + diff --git a/website/forms/php/filters/general/set-locale.md b/website/forms/php/filters/general/set-locale.md deleted file mode 100644 index 15a428ca6..000000000 --- a/website/forms/php/filters/general/set-locale.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -id: set-locale -title: Set locale ---- - -This filter can be used to change the value of current locale. By default, WordPress sets the locale in the admin to `en_US`. With this filter it can be changed to any locale (e.g. when using a multilingual plugin). - -```php -add_filter('es_forms_general_set_locale', function(string $locale): string { - // Get the custom locale (e.g. from the WPML plugin). - return $locale; -}) - diff --git a/website/forms/php/filters/integrations/active-campaign.mdx b/website/forms/php/filters/integrations/active-campaign.mdx index 0785f4b4f..6f8be236b 100644 --- a/website/forms/php/filters/integrations/active-campaign.mdx +++ b/website/forms/php/filters/integrations/active-campaign.mdx @@ -3,6 +3,6 @@ id: active-campaign title: ActiveCampaign --- -import { IntegrationFilters } from './../../../../src/docs/integration-filters'; +import { IntegrationFilters } from './../../../../src/docs/filters'; diff --git a/website/forms/php/filters/integrations/airtable.mdx b/website/forms/php/filters/integrations/airtable.mdx index 091283b66..ef918e15f 100644 --- a/website/forms/php/filters/integrations/airtable.mdx +++ b/website/forms/php/filters/integrations/airtable.mdx @@ -3,6 +3,6 @@ id: airtable title: Airtable --- -import { IntegrationFilters } from './../../../../src/docs/integration-filters'; +import { IntegrationFilters } from './../../../../src/docs/filters'; diff --git a/website/forms/php/filters/integrations/clearbit.md b/website/forms/php/filters/integrations/clearbit.md index 4faff019a..0556aefa4 100644 --- a/website/forms/php/filters/integrations/clearbit.md +++ b/website/forms/php/filters/integrations/clearbit.md @@ -3,10 +3,24 @@ id: clearbit title: Clearbit --- -This filter provides you the ability to change how we map Clearbit fields so you can combine multiple fields in one add some new one. +## Map + +Allows changing how Clearbit fields are mapped. Useful if you want to combine multiple fields, or add new ones. ```php -add_filter('es_forms_integrations_clearbit_map', function(array $params): array { +add_filter('es_forms_integrations_clearbit_map', 'getClearbitMap'); + +/** + * Change Clearbit integration fields map. + * + * Allows changing how Clearbit fields are mapped. Useful if you want to combine multiple fields, or add new ones. + * + * @param array $params Default params provided by the forms. + * + * @return array + */ +function getClearbitMap(array $params): array +{ $street = $params['company-street-number'] ?? ''; $city = $params['company-city'] ?? ''; $postalCode = $params['company-postal-code'] ?? ''; @@ -14,4 +28,5 @@ add_filter('es_forms_integrations_clearbit_map', function(array $params): array $params['company-location-combined'] = "{$street} {$city} {$postalCode}"; return $params; -}); +} +``` diff --git a/website/forms/php/filters/integrations/goodbits.mdx b/website/forms/php/filters/integrations/goodbits.mdx index bcd3b6e03..c9b3b4275 100644 --- a/website/forms/php/filters/integrations/goodbits.mdx +++ b/website/forms/php/filters/integrations/goodbits.mdx @@ -3,6 +3,6 @@ id: goodbits title: Goodbits --- -import { IntegrationFilters } from './../../../../src/docs/integration-filters'; +import { IntegrationFilters } from './../../../../src/docs/filters'; diff --git a/website/forms/php/filters/integrations/greenhouse.mdx b/website/forms/php/filters/integrations/greenhouse.mdx index c30a068eb..56ac5d14a 100644 --- a/website/forms/php/filters/integrations/greenhouse.mdx +++ b/website/forms/php/filters/integrations/greenhouse.mdx @@ -3,6 +3,6 @@ id: greenhouse title: Greenhouse --- -import { IntegrationFilters } from './../../../../src/docs/integration-filters'; +import { IntegrationFilters } from './../../../../src/docs/filters'; diff --git a/website/forms/php/filters/integrations/hubspot.mdx b/website/forms/php/filters/integrations/hubspot.mdx index 53906e4fa..53663cb1a 100644 --- a/website/forms/php/filters/integrations/hubspot.mdx +++ b/website/forms/php/filters/integrations/hubspot.mdx @@ -3,6 +3,31 @@ id: hubspot title: HubSpot --- -import { IntegrationFilters } from './../../../../src/docs/integration-filters'; +import { IntegrationFilters } from './../../../../src/docs/filters'; + +## Files options filter +Allows changing default file upload options set by Forms and Hubspot. For available options check the [HubSpot API reference](https://legacydocs.hubspot.com/docs/methods/files/v3/upload_new_file). + +```php +add_filter('es_forms_integrations_hubspot_files_options', 'getFileUploadCustomOptions'); + +/** + * Change Hubspot file upload options. + * + * Allows changing default file upload options set by Forms and Hubspot. For available options check the [HubSpot API reference](https://legacydocs.hubspot.com/docs/methods/files/v3/upload_new_file). + * + * @return array + */ +public function getFileUploadCustomOptions(): array +{ + return [ + 'folderPath' => '/esforms', + 'options' => \wp_json_encode([ + "access" => "PUBLIC_NOT_INDEXABLE", + "overwrite" => false, + ]), + ]; +} +``` diff --git a/website/forms/php/filters/integrations/jira.md b/website/forms/php/filters/integrations/jira.md deleted file mode 100644 index 99ec985ea..000000000 --- a/website/forms/php/filters/integrations/jira.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -id: jira -title: Jira ---- - -*Coming soon...* diff --git a/website/forms/php/filters/integrations/jira.mdx b/website/forms/php/filters/integrations/jira.mdx new file mode 100644 index 000000000..6e0ab4ff5 --- /dev/null +++ b/website/forms/php/filters/integrations/jira.mdx @@ -0,0 +1,8 @@ +--- +id: jira +title: Jira +--- + +import { IntegrationFilters } from './../../../../src/docs/filters'; + + diff --git a/website/forms/php/filters/integrations/mailchimp.mdx b/website/forms/php/filters/integrations/mailchimp.mdx index 756a12898..a8956ce57 100644 --- a/website/forms/php/filters/integrations/mailchimp.mdx +++ b/website/forms/php/filters/integrations/mailchimp.mdx @@ -3,6 +3,6 @@ id: mailchimp title: Mailchimp --- -import { IntegrationFilters } from './../../../../src/docs/integration-filters'; +import { IntegrationFilters } from './../../../../src/docs/filters'; diff --git a/website/forms/php/filters/integrations/mailer.mdx b/website/forms/php/filters/integrations/mailer.mdx index 50c4e5ac0..2d9aa6de7 100644 --- a/website/forms/php/filters/integrations/mailer.mdx +++ b/website/forms/php/filters/integrations/mailer.mdx @@ -3,4 +3,6 @@ id: mailer title: Mailer --- -*Coming soon* +import { IntegrationFilters } from './../../../../src/docs/filters'; + + diff --git a/website/forms/php/filters/integrations/mailerlite.mdx b/website/forms/php/filters/integrations/mailerlite.mdx index 92d1a1e97..bfde4959d 100644 --- a/website/forms/php/filters/integrations/mailerlite.mdx +++ b/website/forms/php/filters/integrations/mailerlite.mdx @@ -3,6 +3,6 @@ id: mailerlite title: MailerLite --- -import { IntegrationFilters } from './../../../../src/docs/integration-filters'; +import { IntegrationFilters } from './../../../../src/docs/filters'; diff --git a/website/forms/php/filters/integrations/moments.mdx b/website/forms/php/filters/integrations/moments.mdx index b01568e98..416316d88 100644 --- a/website/forms/php/filters/integrations/moments.mdx +++ b/website/forms/php/filters/integrations/moments.mdx @@ -3,6 +3,6 @@ id: moments title: Moments --- -import { IntegrationFilters } from './../../../../src/docs/integration-filters'; +import { IntegrationFilters } from './../../../../src/docs/filters'; diff --git a/website/forms/php/filters/integrations/pipedrive.md b/website/forms/php/filters/integrations/pipedrive.md deleted file mode 100644 index 313f21e47..000000000 --- a/website/forms/php/filters/integrations/pipedrive.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -id: pipedrive -title: Pipedrive ---- - -*Coming soon...* diff --git a/website/forms/php/filters/integrations/pipedrive.mdx b/website/forms/php/filters/integrations/pipedrive.mdx new file mode 100644 index 000000000..4fe336783 --- /dev/null +++ b/website/forms/php/filters/integrations/pipedrive.mdx @@ -0,0 +1,8 @@ +--- +id: pipedrive +title: Pipedrive +--- + +import { IntegrationFilters } from './../../../../src/docs/filters'; + + diff --git a/website/forms/php/filters/integrations/workable.mdx b/website/forms/php/filters/integrations/workable.mdx index 4e7e81fe2..136db22b2 100644 --- a/website/forms/php/filters/integrations/workable.mdx +++ b/website/forms/php/filters/integrations/workable.mdx @@ -3,6 +3,6 @@ id: workable title: Workable --- -import { IntegrationFilters } from './../../../../src/docs/integration-filters'; +import { IntegrationFilters } from './../../../../src/docs/filters'; diff --git a/website/forms/php/filters/scripts/dependency-admin.md b/website/forms/php/filters/scripts/dependency-admin.md new file mode 100644 index 000000000..4212b8727 --- /dev/null +++ b/website/forms/php/filters/scripts/dependency-admin.md @@ -0,0 +1,22 @@ +--- +id: dependency-admin +title: Dependency admin +--- + +Allows changing the order in which the admin area scripts are loaded. Useful when creating a Forms add-on plugin, and your script needs to be loaded before the Forms scripts (e.g. for adding custom event listeners). + +```php +\add_filter('es_forms_scripts_dependency_admin', 'getScriptsDependency'); + +/** + * Fire add-on scripts before the Forms scripts. + * + * @return array + */ +public function getScriptsDependency(): array +{ + return [ + '', + ]; +} +``` diff --git a/website/forms/php/filters/scripts/dependency-blocks-editor.md b/website/forms/php/filters/scripts/dependency-blocks-editor.md new file mode 100644 index 000000000..bcdc4e219 --- /dev/null +++ b/website/forms/php/filters/scripts/dependency-blocks-editor.md @@ -0,0 +1,22 @@ +--- +id: dependency-blocks-editor +title: Dependency blocks editor +--- + +Allows changing the order in which the Block Editor scripts are loaded. Useful when creating a Forms add-on plugin, and your script needs to be loaded before the Forms scripts (e.g. for adding custom event listeners). + +```php +\add_filter('es_forms_scripts_dependency_blocks_editor', 'getScriptsDependency'); + +/** + * Load add-on scripts before Forms scripts. + * + * @return array + */ +public function getScriptsDependency(): array +{ + return [ + '', + ]; +} +``` diff --git a/website/forms/php/filters/scripts/dependency-blocks-frontend.md b/website/forms/php/filters/scripts/dependency-blocks-frontend.md new file mode 100644 index 000000000..6d6bdb33b --- /dev/null +++ b/website/forms/php/filters/scripts/dependency-blocks-frontend.md @@ -0,0 +1,22 @@ +--- +id: dependency-blocks-frontend +title: Dependency blocks frontend +--- + +Allows changing the order in which the block frontend scripts are loaded. Useful when creating a Forms add-on plugin, and your script needs to be loaded before the Forms scripts (e.g. for adding custom event listeners). + +```php +\add_filter('es_forms_scripts_dependency_blocks_frontend', 'getScriptsDependency'); + +/** + * Load add-on scripts before the Forms scripts. + * + * @return array + */ +public function getScriptsDependency(): array +{ + return [ + '', + ]; +} +``` diff --git a/website/forms/php/filters/scripts/dependency-theme.md b/website/forms/php/filters/scripts/dependency-theme.md new file mode 100644 index 000000000..9d2d0b676 --- /dev/null +++ b/website/forms/php/filters/scripts/dependency-theme.md @@ -0,0 +1,22 @@ +--- +id: dependency-theme +title: Dependency theme +--- + +Allows changing the order in which the theme area scripts are loaded. Useful when creating a Forms add-on plugin, and your script needs to be loaded before the Forms scripts (e.g. for adding custom event listeners). + +```php +\add_filter('es_forms_scripts_dependency_theme', 'getScriptsDependency'); + +/** + * Load add-on scripts before Forms scripts. + * + * @return array + */ +public function getScriptsDependency(): array +{ + return [ + '', + ]; +} +``` diff --git a/website/forms/php/filters/scripts/routes-private.md b/website/forms/php/filters/scripts/routes-private.md new file mode 100644 index 000000000..33e94ae68 --- /dev/null +++ b/website/forms/php/filters/scripts/routes-private.md @@ -0,0 +1,22 @@ +--- +id: routes-private +title: Routes private +--- + +Allows adding custom routes to the private routes list, available from the Forms global window object. + +```php +\add_filter('es_forms_scripts_routes_private', 'getPrivateRoutes'); + +/** + * Adds custom routes to the private routes list, available from the Forms global window object. + * + * @return array + */ +public function getPrivateRoutes(): array +{ + return [ + '' => '', + ]; +} +``` diff --git a/website/forms/php/filters/scripts/routes-public.md b/website/forms/php/filters/scripts/routes-public.md new file mode 100644 index 000000000..d52de523c --- /dev/null +++ b/website/forms/php/filters/scripts/routes-public.md @@ -0,0 +1,22 @@ +--- +id: routes-public +title: Routes public +--- + +Allows adding custom routes to the public routes list, available from the Forms global window object. + +```php +\add_filter('es_forms_scripts_routes_public', 'getPublicRoutes'); + +/** + * Adds custom routes to the public routes list, available from the Forms global window object. + * + * @return array + */ +public function getPublicRoutes(): array +{ + return [ + '' => '', + ]; +} +``` diff --git a/website/forms/php/filters/validation/fail-mimetype-validation-when-file-not-on-fs.md b/website/forms/php/filters/validation/fail-mimetype-validation-when-file-not-on-fs.md deleted file mode 100644 index 8b5deb59e..000000000 --- a/website/forms/php/filters/validation/fail-mimetype-validation-when-file-not-on-fs.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: fail-mimetype-validation-when-file-not-on-fs -title: Fail mimetype validation ---- - -By default, MIME types are validated by the filesystem. However, if the file is not present on the filesystem for any reason, this will fall back to the POST-provided MIME types. - -Using this filter, you can force Forms to fail every file upload where it can't validate the MIME type from the filesystem. - -```php -add_filter('es_forms_validation_force_mimetype_from_fs', function(): bool { - return true; -}) - - diff --git a/website/forms/php/filters/validation/force-mimetype-from-fs.md b/website/forms/php/filters/validation/force-mimetype-from-fs.md new file mode 100644 index 000000000..337c1d11f --- /dev/null +++ b/website/forms/php/filters/validation/force-mimetype-from-fs.md @@ -0,0 +1,22 @@ +--- +id: force-mimetype-from-fs +title: Force mimetype from FS +--- + +Forces MIME type validation based on the filesystem values. This is the default behavior. In case the file does not exist, the behavior falls back to validating using the MIME type from the POST object. + +If `true` is returned from this filter, the Forms file upload will fail if the MIME type cannot be matched from the filesystem. + +```php +add_filter('es_forms_validation_force_mimetype_from_fs', 'forceMimetypeFs'); + +/** + * Force MIME type validation based on the filesystem values. + * + * @return bool + */ +public function forceMimetypeFs(): bool +{ + return true; +} +```` diff --git a/website/forms/php/global-variables/integrations/pipedrive.md b/website/forms/php/global-variables/integrations/pipedrive.md index 313f21e47..decbd3bfe 100644 --- a/website/forms/php/global-variables/integrations/pipedrive.md +++ b/website/forms/php/global-variables/integrations/pipedrive.md @@ -3,4 +3,10 @@ id: pipedrive title: Pipedrive --- -*Coming soon...* +### ES_API_KEY_PIPEDRIVE + +This variable will set the Pipedrive integration API key. + +```php +define('ES_API_KEY_PIPEDRIVE', ''); +``` diff --git a/website/package-lock.json b/website/package-lock.json index 0f39bb785..536d000ba 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -8,8 +8,8 @@ "name": "@eightshift/docs", "version": "8.0.0", "dependencies": { - "@docusaurus/core": "^3.0.1", - "@docusaurus/preset-classic": "^3.0.1", + "@docusaurus/core": "^3.1.0", + "@docusaurus/preset-classic": "^3.1.0", "@infinum/docusaurus-theme": "^0.4.0", "@mdx-js/react": "^3.0.0", "clsx": "^1.2.1", @@ -60,74 +60,74 @@ } }, "node_modules/@algolia/cache-browser-local-storage": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.20.0.tgz", - "integrity": "sha512-uujahcBt4DxduBTvYdwO3sBfHuJvJokiC3BP1+O70fglmE1ShkH8lpXqZBac1rrU3FnNYSUs4pL9lBdTKeRPOQ==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.22.1.tgz", + "integrity": "sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==", "dependencies": { - "@algolia/cache-common": "4.20.0" + "@algolia/cache-common": "4.22.1" } }, "node_modules/@algolia/cache-common": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.20.0.tgz", - "integrity": "sha512-vCfxauaZutL3NImzB2G9LjLt36vKAckc6DhMp05An14kVo8F1Yofb6SIl6U3SaEz8pG2QOB9ptwM5c+zGevwIQ==" + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.22.1.tgz", + "integrity": "sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==" }, "node_modules/@algolia/cache-in-memory": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.20.0.tgz", - "integrity": "sha512-Wm9ak/IaacAZXS4mB3+qF/KCoVSBV6aLgIGFEtQtJwjv64g4ePMapORGmCyulCFwfePaRAtcaTbMcJF+voc/bg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.22.1.tgz", + "integrity": "sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==", "dependencies": { - "@algolia/cache-common": "4.20.0" + "@algolia/cache-common": "4.22.1" } }, "node_modules/@algolia/client-account": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.20.0.tgz", - "integrity": "sha512-GGToLQvrwo7am4zVkZTnKa72pheQeez/16sURDWm7Seyz+HUxKi3BM6fthVVPUEBhtJ0reyVtuK9ArmnaKl10Q==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.22.1.tgz", + "integrity": "sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==", "dependencies": { - "@algolia/client-common": "4.20.0", - "@algolia/client-search": "4.20.0", - "@algolia/transporter": "4.20.0" + "@algolia/client-common": "4.22.1", + "@algolia/client-search": "4.22.1", + "@algolia/transporter": "4.22.1" } }, "node_modules/@algolia/client-analytics": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.20.0.tgz", - "integrity": "sha512-EIr+PdFMOallRdBTHHdKI3CstslgLORQG7844Mq84ib5oVFRVASuuPmG4bXBgiDbcsMLUeOC6zRVJhv1KWI0ug==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.22.1.tgz", + "integrity": "sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==", "dependencies": { - "@algolia/client-common": "4.20.0", - "@algolia/client-search": "4.20.0", - "@algolia/requester-common": "4.20.0", - "@algolia/transporter": "4.20.0" + "@algolia/client-common": "4.22.1", + "@algolia/client-search": "4.22.1", + "@algolia/requester-common": "4.22.1", + "@algolia/transporter": "4.22.1" } }, "node_modules/@algolia/client-common": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.20.0.tgz", - "integrity": "sha512-P3WgMdEss915p+knMMSd/fwiHRHKvDu4DYRrCRaBrsfFw7EQHon+EbRSm4QisS9NYdxbS04kcvNoavVGthyfqQ==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.22.1.tgz", + "integrity": "sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==", "dependencies": { - "@algolia/requester-common": "4.20.0", - "@algolia/transporter": "4.20.0" + "@algolia/requester-common": "4.22.1", + "@algolia/transporter": "4.22.1" } }, "node_modules/@algolia/client-personalization": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.20.0.tgz", - "integrity": "sha512-N9+zx0tWOQsLc3K4PVRDV8GUeOLAY0i445En79Pr3zWB+m67V+n/8w4Kw1C5LlbHDDJcyhMMIlqezh6BEk7xAQ==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.22.1.tgz", + "integrity": "sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==", "dependencies": { - "@algolia/client-common": "4.20.0", - "@algolia/requester-common": "4.20.0", - "@algolia/transporter": "4.20.0" + "@algolia/client-common": "4.22.1", + "@algolia/requester-common": "4.22.1", + "@algolia/transporter": "4.22.1" } }, "node_modules/@algolia/client-search": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.20.0.tgz", - "integrity": "sha512-zgwqnMvhWLdpzKTpd3sGmMlr4c+iS7eyyLGiaO51zDZWGMkpgoNVmltkzdBwxOVXz0RsFMznIxB9zuarUv4TZg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.22.1.tgz", + "integrity": "sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==", "dependencies": { - "@algolia/client-common": "4.20.0", - "@algolia/requester-common": "4.20.0", - "@algolia/transporter": "4.20.0" + "@algolia/client-common": "4.22.1", + "@algolia/requester-common": "4.22.1", + "@algolia/transporter": "4.22.1" } }, "node_modules/@algolia/events": { @@ -136,47 +136,47 @@ "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==" }, "node_modules/@algolia/logger-common": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.20.0.tgz", - "integrity": "sha512-xouigCMB5WJYEwvoWW5XDv7Z9f0A8VoXJc3VKwlHJw/je+3p2RcDXfksLI4G4lIVncFUYMZx30tP/rsdlvvzHQ==" + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.22.1.tgz", + "integrity": "sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==" }, "node_modules/@algolia/logger-console": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.20.0.tgz", - "integrity": "sha512-THlIGG1g/FS63z0StQqDhT6bprUczBI8wnLT3JWvfAQDZX5P6fCg7dG+pIrUBpDIHGszgkqYEqECaKKsdNKOUA==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.22.1.tgz", + "integrity": "sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==", "dependencies": { - "@algolia/logger-common": "4.20.0" + "@algolia/logger-common": "4.22.1" } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.20.0.tgz", - "integrity": "sha512-HbzoSjcjuUmYOkcHECkVTwAelmvTlgs48N6Owt4FnTOQdwn0b8pdht9eMgishvk8+F8bal354nhx/xOoTfwiAw==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.22.1.tgz", + "integrity": "sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==", "dependencies": { - "@algolia/requester-common": "4.20.0" + "@algolia/requester-common": "4.22.1" } }, "node_modules/@algolia/requester-common": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.20.0.tgz", - "integrity": "sha512-9h6ye6RY/BkfmeJp7Z8gyyeMrmmWsMOCRBXQDs4mZKKsyVlfIVICpcSibbeYcuUdurLhIlrOUkH3rQEgZzonng==" + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.22.1.tgz", + "integrity": "sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==" }, "node_modules/@algolia/requester-node-http": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.20.0.tgz", - "integrity": "sha512-ocJ66L60ABSSTRFnCHIEZpNHv6qTxsBwJEPfYaSBsLQodm0F9ptvalFkHMpvj5DfE22oZrcrLbOYM2bdPJRHng==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.22.1.tgz", + "integrity": "sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==", "dependencies": { - "@algolia/requester-common": "4.20.0" + "@algolia/requester-common": "4.22.1" } }, "node_modules/@algolia/transporter": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.20.0.tgz", - "integrity": "sha512-Lsii1pGWOAISbzeyuf+r/GPhvHMPHSPrTDWNcIzOE1SG1inlJHICaVe2ikuoRjcpgxZNU54Jl+if15SUCsaTUg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.22.1.tgz", + "integrity": "sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==", "dependencies": { - "@algolia/cache-common": "4.20.0", - "@algolia/logger-common": "4.20.0", - "@algolia/requester-common": "4.20.0" + "@algolia/cache-common": "4.22.1", + "@algolia/logger-common": "4.22.1", + "@algolia/requester-common": "4.22.1" } }, "node_modules/@alloc/quick-lru": { @@ -2153,9 +2153,9 @@ } }, "node_modules/@docusaurus/core": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.0.1.tgz", - "integrity": "sha512-CXrLpOnW+dJdSv8M5FAJ3JBwXtL6mhUWxFA8aS0ozK6jBG/wgxERk5uvH28fCeFxOGbAT9v1e9dOMo1X2IEVhQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.1.0.tgz", + "integrity": "sha512-GWudMGYA9v26ssbAWJNfgeDZk+lrudUTclLPRsmxiknEBk7UMp7Rglonhqbsf3IKHOyHkMU4Fr5jFyg5SBx9jQ==", "dependencies": { "@babel/core": "^7.23.3", "@babel/generator": "^7.23.3", @@ -2167,13 +2167,13 @@ "@babel/runtime": "^7.22.6", "@babel/runtime-corejs3": "^7.22.6", "@babel/traverse": "^7.22.8", - "@docusaurus/cssnano-preset": "3.0.1", - "@docusaurus/logger": "3.0.1", - "@docusaurus/mdx-loader": "3.0.1", + "@docusaurus/cssnano-preset": "3.1.0", + "@docusaurus/logger": "3.1.0", + "@docusaurus/mdx-loader": "3.1.0", "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-common": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", + "@docusaurus/utils": "3.1.0", + "@docusaurus/utils-common": "3.1.0", + "@docusaurus/utils-validation": "3.1.0", "@slorber/static-site-generator-webpack-plugin": "^4.0.7", "@svgr/webpack": "^6.5.1", "autoprefixer": "^10.4.14", @@ -2239,9 +2239,9 @@ } }, "node_modules/@docusaurus/cssnano-preset": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.0.1.tgz", - "integrity": "sha512-wjuXzkHMW+ig4BD6Ya1Yevx9UJadO4smNZCEljqBoQfIQrQskTswBs7lZ8InHP7mCt273a/y/rm36EZhqJhknQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.1.0.tgz", + "integrity": "sha512-ned7qsgCqSv/e7KyugFNroAfiszuxLwnvMW7gmT2Ywxb/Nyt61yIw7KHyAZCMKglOalrqnYA4gMhLUCK/mVePA==", "dependencies": { "cssnano-preset-advanced": "^5.3.10", "postcss": "^8.4.26", @@ -2253,9 +2253,9 @@ } }, "node_modules/@docusaurus/logger": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.0.1.tgz", - "integrity": "sha512-I5L6Nk8OJzkVA91O2uftmo71LBSxe1vmOn9AMR6JRCzYeEBrqneWMH02AqMvjJ2NpMiviO+t0CyPjyYV7nxCWQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.1.0.tgz", + "integrity": "sha512-p740M+HCst1VnKKzL60Hru9xfG4EUYJDarjlEC4hHeBy9+afPmY3BNPoSHx9/8zxuYfUlv/psf7I9NvRVdmdvg==", "dependencies": { "chalk": "^4.1.2", "tslib": "^2.6.0" @@ -2265,15 +2265,15 @@ } }, "node_modules/@docusaurus/mdx-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.0.1.tgz", - "integrity": "sha512-ldnTmvnvlrONUq45oKESrpy+lXtbnTcTsFkOTIDswe5xx5iWJjt6eSa0f99ZaWlnm24mlojcIGoUWNCS53qVlQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.1.0.tgz", + "integrity": "sha512-D7onDz/3mgBonexWoQXPw3V2E5Bc4+jYRf9gGUUK+KoQwU8xMDaDkUUfsr7t6UBa/xox9p5+/3zwLuXOYMzGSg==", "dependencies": { "@babel/parser": "^7.22.7", "@babel/traverse": "^7.22.8", - "@docusaurus/logger": "3.0.1", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", + "@docusaurus/logger": "3.1.0", + "@docusaurus/utils": "3.1.0", + "@docusaurus/utils-validation": "3.1.0", "@mdx-js/mdx": "^3.0.0", "@slorber/remark-comment": "^1.0.0", "escape-html": "^1.0.3", @@ -2305,12 +2305,12 @@ } }, "node_modules/@docusaurus/module-type-aliases": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.0.1.tgz", - "integrity": "sha512-DEHpeqUDsLynl3AhQQiO7AbC7/z/lBra34jTcdYuvp9eGm01pfH1wTVq8YqWZq6Jyx0BgcVl/VJqtE9StRd9Ag==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.1.0.tgz", + "integrity": "sha512-XUl7Z4PWlKg4l6KF05JQ3iDHQxnPxbQUqTNKvviHyuHdlalOFv6qeDAm7IbzyQPJD5VA6y4dpRbTWSqP9ClwPg==", "dependencies": { "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/types": "3.0.1", + "@docusaurus/types": "3.1.0", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", @@ -2324,17 +2324,17 @@ } }, "node_modules/@docusaurus/plugin-content-blog": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.0.1.tgz", - "integrity": "sha512-cLOvtvAyaMQFLI8vm4j26svg3ktxMPSXpuUJ7EERKoGbfpJSsgtowNHcRsaBVmfuCsRSk1HZ/yHBsUkTmHFEsg==", - "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/logger": "3.0.1", - "@docusaurus/mdx-loader": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-common": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.1.0.tgz", + "integrity": "sha512-iMa6WBaaEdYuxckvJtLcq/HQdlA4oEbCXf/OFfsYJCCULcDX7GDZpKxLF3X1fLsax3sSm5bmsU+CA0WD+R1g3A==", + "dependencies": { + "@docusaurus/core": "3.1.0", + "@docusaurus/logger": "3.1.0", + "@docusaurus/mdx-loader": "3.1.0", + "@docusaurus/types": "3.1.0", + "@docusaurus/utils": "3.1.0", + "@docusaurus/utils-common": "3.1.0", + "@docusaurus/utils-validation": "3.1.0", "cheerio": "^1.0.0-rc.12", "feed": "^4.2.2", "fs-extra": "^11.1.1", @@ -2355,17 +2355,17 @@ } }, "node_modules/@docusaurus/plugin-content-docs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.0.1.tgz", - "integrity": "sha512-dRfAOA5Ivo+sdzzJGXEu33yAtvGg8dlZkvt/NEJ7nwi1F2j4LEdsxtfX2GKeETB2fP6XoGNSQnFXqa2NYGrHFg==", - "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/logger": "3.0.1", - "@docusaurus/mdx-loader": "3.0.1", - "@docusaurus/module-type-aliases": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.1.0.tgz", + "integrity": "sha512-el5GxhT8BLrsWD0qGa8Rq+Ttb/Ni6V3DGT2oAPio0qcs/mUAxeyXEAmihkvmLCnAgp6xD27Ce7dISZ5c6BXeqA==", + "dependencies": { + "@docusaurus/core": "3.1.0", + "@docusaurus/logger": "3.1.0", + "@docusaurus/mdx-loader": "3.1.0", + "@docusaurus/module-type-aliases": "3.1.0", + "@docusaurus/types": "3.1.0", + "@docusaurus/utils": "3.1.0", + "@docusaurus/utils-validation": "3.1.0", "@types/react-router-config": "^5.0.7", "combine-promises": "^1.1.0", "fs-extra": "^11.1.1", @@ -2384,15 +2384,15 @@ } }, "node_modules/@docusaurus/plugin-content-pages": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.0.1.tgz", - "integrity": "sha512-oP7PoYizKAXyEttcvVzfX3OoBIXEmXTMzCdfmC4oSwjG4SPcJsRge3mmI6O8jcZBgUPjIzXD21bVGWEE1iu8gg==", - "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/mdx-loader": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.1.0.tgz", + "integrity": "sha512-9gntYQFpk+93+Xl7gYczJu8I9uWoyRLnRwS0+NUFcs9iZtHKsdqKWPRrONC9elfN3wJ9ORwTbcVzsTiB8jvYlg==", + "dependencies": { + "@docusaurus/core": "3.1.0", + "@docusaurus/mdx-loader": "3.1.0", + "@docusaurus/types": "3.1.0", + "@docusaurus/utils": "3.1.0", + "@docusaurus/utils-validation": "3.1.0", "fs-extra": "^11.1.1", "tslib": "^2.6.0", "webpack": "^5.88.1" @@ -2406,13 +2406,13 @@ } }, "node_modules/@docusaurus/plugin-debug": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.0.1.tgz", - "integrity": "sha512-09dxZMdATky4qdsZGzhzlUvvC+ilQ2hKbYF+wez+cM2mGo4qHbv8+qKXqxq0CQZyimwlAOWQLoSozIXU0g0i7g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.1.0.tgz", + "integrity": "sha512-AbvJwCVRbmQ8w9d8QXbF4Iq/ui0bjPZNYFIhtducGFnm2YQRN1mraK8mCEQb0Aq0T8SqRRvSfC/far4n/s531w==", "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils": "3.0.1", + "@docusaurus/core": "3.1.0", + "@docusaurus/types": "3.1.0", + "@docusaurus/utils": "3.1.0", "fs-extra": "^11.1.1", "react-json-view-lite": "^1.2.0", "tslib": "^2.6.0" @@ -2426,13 +2426,13 @@ } }, "node_modules/@docusaurus/plugin-google-analytics": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.0.1.tgz", - "integrity": "sha512-jwseSz1E+g9rXQwDdr0ZdYNjn8leZBnKPjjQhMBEiwDoenL3JYFcNW0+p0sWoVF/f2z5t7HkKA+cYObrUh18gg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.1.0.tgz", + "integrity": "sha512-zvUOMzu9Uhz0ciqnSbtnp/5i1zEYlzarQrOXG90P3Is3efQI43p2YLW/rzSGdLb5MfQo2HvKT6Q5+tioMO045Q==", "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", + "@docusaurus/core": "3.1.0", + "@docusaurus/types": "3.1.0", + "@docusaurus/utils-validation": "3.1.0", "tslib": "^2.6.0" }, "engines": { @@ -2444,13 +2444,13 @@ } }, "node_modules/@docusaurus/plugin-google-gtag": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.0.1.tgz", - "integrity": "sha512-UFTDvXniAWrajsulKUJ1DB6qplui1BlKLQZjX4F7qS/qfJ+qkKqSkhJ/F4VuGQ2JYeZstYb+KaUzUzvaPK1aRQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.1.0.tgz", + "integrity": "sha512-0txshvaY8qIBdkk2UATdVcfiCLGq3KAUfuRQD2cRNgO39iIf4/ihQxH9NXcRTwKs4Q5d9yYHoix3xT6pFuEYOg==", "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", + "@docusaurus/core": "3.1.0", + "@docusaurus/types": "3.1.0", + "@docusaurus/utils-validation": "3.1.0", "@types/gtag.js": "^0.0.12", "tslib": "^2.6.0" }, @@ -2463,13 +2463,13 @@ } }, "node_modules/@docusaurus/plugin-google-tag-manager": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.0.1.tgz", - "integrity": "sha512-IPFvuz83aFuheZcWpTlAdiiX1RqWIHM+OH8wS66JgwAKOiQMR3+nLywGjkLV4bp52x7nCnwhNk1rE85Cpy/CIw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.1.0.tgz", + "integrity": "sha512-zOWPEi8kMyyPtwG0vhyXrdbLs8fIZmY5vlbi9lUU+v8VsroO5iHmfR2V3SMsrsfOanw5oV/ciWqbxezY00qEZg==", "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", + "@docusaurus/core": "3.1.0", + "@docusaurus/types": "3.1.0", + "@docusaurus/utils-validation": "3.1.0", "tslib": "^2.6.0" }, "engines": { @@ -2481,16 +2481,16 @@ } }, "node_modules/@docusaurus/plugin-sitemap": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.0.1.tgz", - "integrity": "sha512-xARiWnjtVvoEniZudlCq5T9ifnhCu/GAZ5nA7XgyLfPcNpHQa241HZdsTlLtVcecEVVdllevBKOp7qknBBaMGw==", - "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/logger": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-common": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.1.0.tgz", + "integrity": "sha512-TkR5vGBpUooEB9SoW42thahqqwKzfHrQQhkB+JrEGERsl4bKODSuJNle4aA4h6LSkg4IyfXOW8XOI0NIPWb9Cg==", + "dependencies": { + "@docusaurus/core": "3.1.0", + "@docusaurus/logger": "3.1.0", + "@docusaurus/types": "3.1.0", + "@docusaurus/utils": "3.1.0", + "@docusaurus/utils-common": "3.1.0", + "@docusaurus/utils-validation": "3.1.0", "fs-extra": "^11.1.1", "sitemap": "^7.1.1", "tslib": "^2.6.0" @@ -2504,23 +2504,23 @@ } }, "node_modules/@docusaurus/preset-classic": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.0.1.tgz", - "integrity": "sha512-il9m9xZKKjoXn6h0cRcdnt6wce0Pv1y5t4xk2Wx7zBGhKG1idu4IFHtikHlD0QPuZ9fizpXspXcTzjL5FXc1Gw==", - "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/plugin-content-blog": "3.0.1", - "@docusaurus/plugin-content-docs": "3.0.1", - "@docusaurus/plugin-content-pages": "3.0.1", - "@docusaurus/plugin-debug": "3.0.1", - "@docusaurus/plugin-google-analytics": "3.0.1", - "@docusaurus/plugin-google-gtag": "3.0.1", - "@docusaurus/plugin-google-tag-manager": "3.0.1", - "@docusaurus/plugin-sitemap": "3.0.1", - "@docusaurus/theme-classic": "3.0.1", - "@docusaurus/theme-common": "3.0.1", - "@docusaurus/theme-search-algolia": "3.0.1", - "@docusaurus/types": "3.0.1" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.1.0.tgz", + "integrity": "sha512-xGLQRFmmT9IinAGUDVRYZ54Ys28USNbA3OTXQXnSJLPr1rCY7CYnHI4XoOnKWrNnDiAI4ruMzunXWyaElUYCKQ==", + "dependencies": { + "@docusaurus/core": "3.1.0", + "@docusaurus/plugin-content-blog": "3.1.0", + "@docusaurus/plugin-content-docs": "3.1.0", + "@docusaurus/plugin-content-pages": "3.1.0", + "@docusaurus/plugin-debug": "3.1.0", + "@docusaurus/plugin-google-analytics": "3.1.0", + "@docusaurus/plugin-google-gtag": "3.1.0", + "@docusaurus/plugin-google-tag-manager": "3.1.0", + "@docusaurus/plugin-sitemap": "3.1.0", + "@docusaurus/theme-classic": "3.1.0", + "@docusaurus/theme-common": "3.1.0", + "@docusaurus/theme-search-algolia": "3.1.0", + "@docusaurus/types": "3.1.0" }, "engines": { "node": ">=18.0" @@ -2543,22 +2543,22 @@ } }, "node_modules/@docusaurus/theme-classic": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.0.1.tgz", - "integrity": "sha512-XD1FRXaJiDlmYaiHHdm27PNhhPboUah9rqIH0lMpBt5kYtsGjJzhqa27KuZvHLzOP2OEpqd2+GZ5b6YPq7Q05Q==", - "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/mdx-loader": "3.0.1", - "@docusaurus/module-type-aliases": "3.0.1", - "@docusaurus/plugin-content-blog": "3.0.1", - "@docusaurus/plugin-content-docs": "3.0.1", - "@docusaurus/plugin-content-pages": "3.0.1", - "@docusaurus/theme-common": "3.0.1", - "@docusaurus/theme-translations": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-common": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.1.0.tgz", + "integrity": "sha512-/+jMl2Z9O8QQxves5AtHdt91gWsEZFgOV3La/6eyKEd7QLqQUtM5fxEJ40rq9NKYjqCd1HzZ9egIMeJoWwillw==", + "dependencies": { + "@docusaurus/core": "3.1.0", + "@docusaurus/mdx-loader": "3.1.0", + "@docusaurus/module-type-aliases": "3.1.0", + "@docusaurus/plugin-content-blog": "3.1.0", + "@docusaurus/plugin-content-docs": "3.1.0", + "@docusaurus/plugin-content-pages": "3.1.0", + "@docusaurus/theme-common": "3.1.0", + "@docusaurus/theme-translations": "3.1.0", + "@docusaurus/types": "3.1.0", + "@docusaurus/utils": "3.1.0", + "@docusaurus/utils-common": "3.1.0", + "@docusaurus/utils-validation": "3.1.0", "@mdx-js/react": "^3.0.0", "clsx": "^2.0.0", "copy-text-to-clipboard": "^3.2.0", @@ -2582,25 +2582,25 @@ } }, "node_modules/@docusaurus/theme-classic/node_modules/clsx": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", - "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", + "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", "engines": { "node": ">=6" } }, "node_modules/@docusaurus/theme-common": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.0.1.tgz", - "integrity": "sha512-cr9TOWXuIOL0PUfuXv6L5lPlTgaphKP+22NdVBOYah5jSq5XAAulJTjfe+IfLsEG4L7lJttLbhW7LXDFSAI7Ag==", - "dependencies": { - "@docusaurus/mdx-loader": "3.0.1", - "@docusaurus/module-type-aliases": "3.0.1", - "@docusaurus/plugin-content-blog": "3.0.1", - "@docusaurus/plugin-content-docs": "3.0.1", - "@docusaurus/plugin-content-pages": "3.0.1", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-common": "3.0.1", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.1.0.tgz", + "integrity": "sha512-YGwEFALLIbF5ocW/Fy6Ae7tFWUOugEN3iwxTx8UkLAcLqYUboDSadesYtVBmRCEB4FVA2qoP7YaW3lu3apUPPw==", + "dependencies": { + "@docusaurus/mdx-loader": "3.1.0", + "@docusaurus/module-type-aliases": "3.1.0", + "@docusaurus/plugin-content-blog": "3.1.0", + "@docusaurus/plugin-content-docs": "3.1.0", + "@docusaurus/plugin-content-pages": "3.1.0", + "@docusaurus/utils": "3.1.0", + "@docusaurus/utils-common": "3.1.0", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", @@ -2619,26 +2619,26 @@ } }, "node_modules/@docusaurus/theme-common/node_modules/clsx": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", - "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", + "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", "engines": { "node": ">=6" } }, "node_modules/@docusaurus/theme-search-algolia": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.0.1.tgz", - "integrity": "sha512-DDiPc0/xmKSEdwFkXNf1/vH1SzJPzuJBar8kMcBbDAZk/SAmo/4lf6GU2drou4Ae60lN2waix+jYWTWcJRahSA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.1.0.tgz", + "integrity": "sha512-8cJH0ZhPsEDjq3jR3I+wHmWzVY2bXMQJ59v2QxUmsTZxbWA4u+IzccJMIJx4ooFl9J6iYynwYsFuHxyx/KUmfQ==", "dependencies": { "@docsearch/react": "^3.5.2", - "@docusaurus/core": "3.0.1", - "@docusaurus/logger": "3.0.1", - "@docusaurus/plugin-content-docs": "3.0.1", - "@docusaurus/theme-common": "3.0.1", - "@docusaurus/theme-translations": "3.0.1", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", + "@docusaurus/core": "3.1.0", + "@docusaurus/logger": "3.1.0", + "@docusaurus/plugin-content-docs": "3.1.0", + "@docusaurus/theme-common": "3.1.0", + "@docusaurus/theme-translations": "3.1.0", + "@docusaurus/utils": "3.1.0", + "@docusaurus/utils-validation": "3.1.0", "algoliasearch": "^4.18.0", "algoliasearch-helper": "^3.13.3", "clsx": "^2.0.0", @@ -2657,17 +2657,17 @@ } }, "node_modules/@docusaurus/theme-search-algolia/node_modules/clsx": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", - "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", + "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", "engines": { "node": ">=6" } }, "node_modules/@docusaurus/theme-translations": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.0.1.tgz", - "integrity": "sha512-6UrbpzCTN6NIJnAtZ6Ne9492vmPVX+7Fsz4kmp+yor3KQwA1+MCzQP7ItDNkP38UmVLnvB/cYk/IvehCUqS3dg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.1.0.tgz", + "integrity": "sha512-DApE4AbDI+WBajihxB54L4scWQhVGNZAochlC9fkbciPuFAgdRBD3NREb0rgfbKexDC/rioppu/WJA0u8tS+yA==", "dependencies": { "fs-extra": "^11.1.1", "tslib": "^2.6.0" @@ -2677,10 +2677,11 @@ } }, "node_modules/@docusaurus/types": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.0.1.tgz", - "integrity": "sha512-plyX2iU1tcUsF46uQ01pAd4JhexR7n0iiQ5MSnBFX6M6NSJgDYdru/i1/YNPKOnQHBoXGLHv0dNT6OAlDWNjrg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.1.0.tgz", + "integrity": "sha512-VaczOZf7+re8aFBIWnex1XENomwHdsSTkrdX43zyor7G/FY4OIsP6X28Xc3o0jiY0YdNuvIDyA5TNwOtpgkCVw==", "dependencies": { + "@mdx-js/mdx": "^3.0.0", "@types/history": "^4.7.11", "@types/react": "*", "commander": "^5.1.0", @@ -2696,11 +2697,11 @@ } }, "node_modules/@docusaurus/utils": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.0.1.tgz", - "integrity": "sha512-TwZ33Am0q4IIbvjhUOs+zpjtD/mXNmLmEgeTGuRq01QzulLHuPhaBTTAC/DHu6kFx3wDgmgpAlaRuCHfTcXv8g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.1.0.tgz", + "integrity": "sha512-LgZfp0D+UBqAh7PZ//MUNSFBMavmAPku6Si9x8x3V+S318IGCNJ6hUr2O29UO0oLybEWUjD5Jnj9IUN6XyZeeg==", "dependencies": { - "@docusaurus/logger": "3.0.1", + "@docusaurus/logger": "3.1.0", "@svgr/webpack": "^6.5.1", "escape-string-regexp": "^4.0.0", "file-loader": "^6.2.0", @@ -2731,9 +2732,9 @@ } }, "node_modules/@docusaurus/utils-common": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.0.1.tgz", - "integrity": "sha512-W0AxD6w6T8g6bNro8nBRWf7PeZ/nn7geEWM335qHU2DDDjHuV4UZjgUGP1AQsdcSikPrlIqTJJbKzer1lRSlIg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.1.0.tgz", + "integrity": "sha512-SfvnRLHoZ9bwTw67knkSs7IcUR0GY2SaGkpdB/J9pChrDiGhwzKNUhcieoPyPYrOWGRPk3rVNYtoy+Bc7psPAw==", "dependencies": { "tslib": "^2.6.0" }, @@ -2750,12 +2751,12 @@ } }, "node_modules/@docusaurus/utils-validation": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.0.1.tgz", - "integrity": "sha512-ujTnqSfyGQ7/4iZdB4RRuHKY/Nwm58IIb+41s5tCXOv/MBU2wGAjOHq3U+AEyJ8aKQcHbxvTKJaRchNHYUVUQg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.1.0.tgz", + "integrity": "sha512-dFxhs1NLxPOSzmcTk/eeKxLY5R+U4cua22g9MsAMiRWcwFKStZ2W3/GDY0GmnJGqNS8QAQepJrxQoyxXkJNDeg==", "dependencies": { - "@docusaurus/logger": "3.0.1", - "@docusaurus/utils": "3.0.1", + "@docusaurus/logger": "3.1.0", + "@docusaurus/utils": "3.1.0", "joi": "^17.9.2", "js-yaml": "^4.1.0", "tslib": "^2.6.0" @@ -3945,30 +3946,30 @@ } }, "node_modules/algoliasearch": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.20.0.tgz", - "integrity": "sha512-y+UHEjnOItoNy0bYO+WWmLWBlPwDjKHW6mNHrPi0NkuhpQOOEbrkwQH/wgKFDLh7qlKjzoKeiRtlpewDPDG23g==", - "dependencies": { - "@algolia/cache-browser-local-storage": "4.20.0", - "@algolia/cache-common": "4.20.0", - "@algolia/cache-in-memory": "4.20.0", - "@algolia/client-account": "4.20.0", - "@algolia/client-analytics": "4.20.0", - "@algolia/client-common": "4.20.0", - "@algolia/client-personalization": "4.20.0", - "@algolia/client-search": "4.20.0", - "@algolia/logger-common": "4.20.0", - "@algolia/logger-console": "4.20.0", - "@algolia/requester-browser-xhr": "4.20.0", - "@algolia/requester-common": "4.20.0", - "@algolia/requester-node-http": "4.20.0", - "@algolia/transporter": "4.20.0" + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.22.1.tgz", + "integrity": "sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==", + "dependencies": { + "@algolia/cache-browser-local-storage": "4.22.1", + "@algolia/cache-common": "4.22.1", + "@algolia/cache-in-memory": "4.22.1", + "@algolia/client-account": "4.22.1", + "@algolia/client-analytics": "4.22.1", + "@algolia/client-common": "4.22.1", + "@algolia/client-personalization": "4.22.1", + "@algolia/client-search": "4.22.1", + "@algolia/logger-common": "4.22.1", + "@algolia/logger-console": "4.22.1", + "@algolia/requester-browser-xhr": "4.22.1", + "@algolia/requester-common": "4.22.1", + "@algolia/requester-node-http": "4.22.1", + "@algolia/transporter": "4.22.1" } }, "node_modules/algoliasearch-helper": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.15.0.tgz", - "integrity": "sha512-DGUnK3TGtDQsaUE4ayF/LjSN0DGsuYThB8WBgnnDY0Wq04K6lNVruO3LfqJOgSfDiezp+Iyt8Tj4YKHi+/ivSA==", + "version": "3.16.1", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.16.1.tgz", + "integrity": "sha512-qxAHVjjmT7USVvrM8q6gZGaJlCK1fl4APfdAA7o8O6iXEc68G0xMNrzRkxoB/HmhhvyHnoteS/iMTiHiTcQQcg==", "dependencies": { "@algolia/events": "^4.0.1" }, @@ -4093,9 +4094,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.16", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", - "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "version": "10.4.17", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz", + "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==", "funding": [ { "type": "opencollective", @@ -4111,9 +4112,9 @@ } ], "dependencies": { - "browserslist": "^4.21.10", - "caniuse-lite": "^1.0.30001538", - "fraction.js": "^4.3.6", + "browserslist": "^4.22.2", + "caniuse-lite": "^1.0.30001578", + "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -4333,9 +4334,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", "funding": [ { "type": "opencollective", @@ -4351,9 +4352,9 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, "bin": { @@ -4474,9 +4475,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001561", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001561.tgz", - "integrity": "sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==", + "version": "1.0.30001579", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001579.tgz", + "integrity": "sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==", "funding": [ { "type": "opencollective", @@ -5735,9 +5736,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.576", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.576.tgz", - "integrity": "sha512-yXsZyXJfAqzWk1WKryr0Wl0MN2D47xodPvEEwlVePBnhU5E7raevLQR+E6b9JAD3GfL/7MbAL9ZtWQQPcLx7wA==" + "version": "1.4.639", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.639.tgz", + "integrity": "sha512-CkKf3ZUVZchr+zDpAlNLEEy2NJJ9T64ULWaDgy3THXXlPVPkLu3VOs9Bac44nebVtdwl2geSj6AxTtGDOxoXhg==" }, "node_modules/emoji-regex": { "version": "9.2.2", @@ -7435,9 +7436,9 @@ } }, "node_modules/image-size": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz", - "integrity": "sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz", + "integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==", "dependencies": { "queue": "6.0.2" }, @@ -7445,7 +7446,7 @@ "image-size": "bin/image-size.js" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.x" } }, "node_modules/immer": { @@ -7886,13 +7887,13 @@ } }, "node_modules/joi": { - "version": "17.11.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.11.0.tgz", - "integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==", + "version": "17.12.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.12.0.tgz", + "integrity": "sha512-HSLsmSmXz+PV9PYoi3p7cgIbj06WnEBNT28n+bbBNcPZXZFqCzzvGqpTBPujx/Z0nh1+KNQPDrNgdmQ8dq0qYw==", "dependencies": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.3", + "@hapi/hoek": "^9.3.0", + "@hapi/topo": "^5.1.0", + "@sideway/address": "^4.1.4", "@sideway/formula": "^3.0.1", "@sideway/pinpoint": "^2.0.0" } @@ -8504,9 +8505,9 @@ } }, "node_modules/mdast-util-to-hast": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.0.2.tgz", - "integrity": "sha512-U5I+500EOOw9e3ZrclN3Is3fRpw8c19SMyNZlZ2IS+7vLsNzb2Om11VpIVOR+/0137GhZsFEF6YiKD5+0Hr2Og==", + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.1.0.tgz", + "integrity": "sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==", "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", @@ -8515,7 +8516,8 @@ "micromark-util-sanitize-uri": "^2.0.0", "trim-lines": "^3.0.0", "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0" + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", @@ -10475,9 +10477,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" }, "node_modules/normalize-path": { "version": "3.0.0", @@ -12463,9 +12465,9 @@ } }, "node_modules/remark-rehype": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.0.0.tgz", - "integrity": "sha512-vx8x2MDMcxuE4lBmQ46zYUDfcFMmvg80WYX+UNLeG6ixjdCCLcw1lrgAukwBTuOFsS78eoAedHGn9sNM0w7TPw==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.0.tgz", + "integrity": "sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==", "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", @@ -12785,9 +12787,9 @@ } }, "node_modules/search-insights": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.11.0.tgz", - "integrity": "sha512-Uin2J8Bpm3xaZi9Y8QibSys6uJOFZ+REMrf42v20AA3FUDUrshKkMEP6liJbMAHCm71wO6ls4mwAf7a3gFVxLw==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.13.0.tgz", + "integrity": "sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==", "peer": true }, "node_modules/section-matter": { @@ -14369,9 +14371,9 @@ "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" }, "node_modules/utility-types": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz", - "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz", + "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", "engines": { "node": ">= 4" } diff --git a/website/package.json b/website/package.json index 1e37e9b99..52cda6b8e 100644 --- a/website/package.json +++ b/website/package.json @@ -32,8 +32,8 @@ "clear": "docusaurus clear" }, "dependencies": { - "@docusaurus/core": "^3.0.1", - "@docusaurus/preset-classic": "^3.0.1", + "@docusaurus/core": "^3.1.0", + "@docusaurus/preset-classic": "^3.1.0", "@infinum/docusaurus-theme": "^0.4.0", "@mdx-js/react": "^3.0.0", "clsx": "^1.2.1", diff --git a/website/sidebars-forms.js b/website/sidebars-forms.js index 475e2f09c..bac2c766d 100644 --- a/website/sidebars-forms.js +++ b/website/sidebars-forms.js @@ -29,6 +29,7 @@ module.exports = { 'features/cloudflare', 'features/country-list', 'features/wpml', + 'features/entries', ], ], }, @@ -119,6 +120,9 @@ module.exports = { 'php/filters/block/form/phone-sync', 'php/filters/block/form/global-msg-headings', 'php/filters/block/form/additional-content', + 'php/filters/block/form/pre-response-addon-data', + 'php/filters/block/form/pre-response-success-redirect-data', + 'php/filters/block/form/additional-hidden-fields', ], }, { @@ -219,30 +223,42 @@ module.exports = { 'php/filters/block/step/component-next', ], }, + { + 'type': 'category', + 'label': 'Rating', + 'items': [ + 'php/filters/block/rating/additional-content', + ], + }, ], }, { 'type': 'category', 'label': 'Blocks', 'items': [ + 'php/filters/blocks/allowed-blocks', 'php/filters/blocks/additional-blocks', 'php/filters/blocks/media-breakpoints', ], }, { 'type': 'category', - 'label': 'Enrichment', + 'label': 'General', 'items': [ - 'php/filters/enrichment/manual-map', + 'php/filters/general/http-request-timeout', + 'php/filters/general/locale', ], }, { 'type': 'category', - 'label': 'General', + 'label': 'Scripts', 'items': [ - 'php/filters/general/http-request-timeout', - 'php/filters/general/set-locale', - 'php/filters/general/scripts-dependency', + 'php/filters/scripts/dependency-admin', + 'php/filters/scripts/dependency-theme', + 'php/filters/scripts/dependency-blocks-editor', + 'php/filters/scripts/dependency-blocks-frontend', + 'php/filters/scripts/routes-public', + 'php/filters/scripts/routes-private', ], }, { @@ -254,13 +270,6 @@ module.exports = { 'php/filters/geolocation/countries', ], }, - { - 'type': 'category', - 'label': 'Validation', - 'items': [ - 'php/filters/validation/fail-mimetype-validation-when-file-not-on-fs', - ], - }, { 'type': 'category', 'label': 'Integrations', @@ -277,6 +286,35 @@ module.exports = { 'php/filters/integrations/mailerlite', 'php/filters/integrations/moments', 'php/filters/integrations/workable', + 'php/filters/integrations/pipedrive', + ], + }, + { + 'type': 'category', + 'label': 'Entries', + 'items': [ + 'php/filters/entries/pre-post-params', + ], + }, + { + 'type': 'category', + 'label': 'Enrichment', + 'items': [ + 'php/filters/enrichment/manual-map', + ], + }, + { + 'type': 'category', + 'label': 'Validation', + 'items': [ + 'php/filters/validation/force-mimetype-from-fs', + ], + }, + { + 'type': 'category', + 'label': 'Admin', + 'items': [ + 'php/filters/admin/settings-data', ], }, ], @@ -318,5 +356,27 @@ module.exports = { 'Tutorials': [ 'tutorials/playlist', ], + 'Addon plugins': [ + { + 'type': 'category', + 'label': 'Premium', + 'items': [ + { + 'type': 'category', + 'label': 'Computed fields', + 'items': [ + 'addons/premium/computed-fields/intro', + ], + }, + ], + }, + { + 'type': 'category', + 'label': 'Create an addon', + 'items': [ + 'addons/create/intro', + ], + }, + ], } }; diff --git a/website/src/docs/filters.jsx b/website/src/docs/filters.jsx new file mode 100644 index 000000000..8857beff9 --- /dev/null +++ b/website/src/docs/filters.jsx @@ -0,0 +1,216 @@ +import React from 'react'; +import CodeBlock from '@theme/CodeBlock'; +import { reformatCode } from '../../utils/shared.jsx'; + +export function IntegrationFilters({ + filter, + onlyUse = [ + 'dataFilter', + 'orderFilter', + 'prePostIdFilter', + 'prePostParamsFilter', + ], +}) { + return ( + <> + {onlyUse.includes('dataFilter') && + + } + + {onlyUse.includes('orderFilter') && + + } + + {onlyUse.includes('prePostIdFilter') && + + } + + {onlyUse.includes('prePostParamsFilter') && + + } + + ); +} + +export function AdditionalContentFilter({ filter }) { + return ( + <> +

Allows adding custom content before the field element's closing tag. Useful for adding markup, styles, etc.

+ + + {reformatCode(` + add_filter('es_forms_block_${filter}_additional_content', function(): string { + return ''; + }) + `)} + + + ); +} + +function DataFilter ({ filter }) { + return ( + <> +

Data filter

+

Allows modifying form field data before it's shown in the Block Editor or output on the frontend.

+

Useful if, for example, you want to ensure that all fields fit into a 2-column layout.

+

Overrides any Block Editor changes!

+ + + {reformatCode(` + add_filter('es_forms_integrations_${filter}_data', 'getIntegrationFilterData', 10, 2); + + /** + * Manipulate form fields data before it is sent to the Block Editor. + * + * @param array $data Form fields data. + * @param string $formId Form ID. + * + * @return array + */ + function getIntegrationFilterData(array $data, string $formId): array + { + foreach ($data as $index => $field) { + $component = $field['component'] ?? ''; + + if (!$component) { + continue; + } + + $name = $field["{$component}Name"] ?? ''; + + if (!$name) { + continue; + } + + switch ($name) { + case 'firstname': + case 'lastname': + $data[$index]["{$component}FieldWidthMobile"] = 12; + $data[$index]["{$component}FieldWidthLarge"] = 6; + $data[$index]["{$component}DisabledOptions"] = \array_merge( + $data[$index]["{$component}DisabledOptions"], + [ + "{$component}FieldWidthMobile", + "{$component}FieldWidthLarge", + ] + ); + break; + } + } + + return $data; + } + `)} + + + ); +} + +function OrderFilter ({ filter }) { + return ( + <> +

Order filter

+

Forces a form field order, regardless of how it's set in the Block editor. Fields not modified through the filter will use order in which they're set in the Block editor.

+

Not all fields need to have an order defined. For example, you may want to make sure firstname, lastname and email are displayed first, but other fields follow their Block editor order.

+ + + {reformatCode(` + add_filter('es_forms_integrations_${filter}_order', 'getIntegrationOrder'); + + /** + * Forces form field order for the provided fields. For other fields, Block editor order is used. + * + * @return array + */ + function getIntegrationOrder(): array + { + return [ + 'firstname', + 'lastname', + 'email', + ]; + } + `)} + + + ); +} + +function PrePostIdFilter ({ filter }) { + return ( + <> +

Pre-post ID filter

+

Allows updating item IDs sent to external integrations to which the form data is sent.

+ + + {reformatCode(` + add_filter('es_forms_integrations_${filter}_pre_post_id', 'getIntegrationPrePostId', 10, 3); + + /** + * Modifies integration item ID. + * + * @param string $itemId Integration item ID. + * @param array $params Params to be sent to the integration. + * @param string $formId Form ID. + * + * @return array + */ + function getIntegrationPrePostId(string $itemId, array $params, string $formId): array + { + return $itemId; + } + `)} + + + ); +} + +function PrePostParamsFilter ({ filter }) { + let text = ''; + + switch (filter) { + case 'mailer': + text = 'mailer system'; + break; + default: + text = 'external integration'; + break; + } + return ( + <> +

Pre-post parameters filter

+

Allows modifying form field data before it's sent to {text}. Useful if you want to make values derived from the sent data, or add new fields.

+ + + {reformatCode(` + add_filter('es_forms_integrations_${filter}_pre_post_params', 'getIntegrationPrePostParams', 10, 2); + + /** + * Modifies form field data before it's sent to ${text}. + * + * @param array $params Array of params. + * @param string $formId Form ID. + * + * @return array + */ + function getIntegrationPrePostParams(array $params, string $formId): array + { + $formSubmissionPageLt = $params['form_submission_page_lt']['value'] ?? ''; + + if ($formSubmissionPageLt) { + $params['ib-submission-source'] = [ + 'name' => 'ib-submission-source', + 'value' => $formSubmissionPageLt, + 'type' => 'text', + 'internalType' => '', + ]; + } + + return $params; + } + `)} + + + ); +} diff --git a/website/src/docs/integration-filters.jsx b/website/src/docs/integration-filters.jsx deleted file mode 100644 index 3e472e8a4..000000000 --- a/website/src/docs/integration-filters.jsx +++ /dev/null @@ -1,109 +0,0 @@ -import React from 'react'; -import CodeBlock from '@theme/CodeBlock'; -import { reformatCode } from '../../utils/shared.jsx'; - -export function IntegrationFilters(props) { - const { - filter, - onlyUse = [ - 'dataFilter', - 'prePostParamsFilter', - 'order', - ], - } = props; - - return ( - <> - {onlyUse.includes('dataFilter') && - <> -

Data

-

This filter is used if you want to change form fields data before output. This way you can change components map before it is parsed inside Block Editor.

-

For example if you want to set all fields to have 2 columns layout this will be the filter to use.

- - - {reformatCode(` - add_filter('es_forms_integrations_${filter}_data', function(array $data, string $formId): array { - foreach ($data as $index => $field) { - $component = $field['component'] ?? ''; - - if (!$component) { - continue; - } - - $name = $field["{$component}Name"] ?? ''; - - if (!$name) { - continue; - } - - switch ($name) { - case 'firstname': - case 'lastname': - $data[$index]["{$component}FieldWidthMobile"] = 12; - $data[$index]["{$component}FieldWidthLarge"] = 6; - $data[$index]["{$component}DisabledOptions"] = \array_merge( - $data[$index]["{$component}DisabledOptions"], - [ - "{$component}FieldWidthMobile", - "{$component}FieldWidthLarge", - ] - ); - break; - } - } - - return $data; - }, 10, 2); - `)} - - - } - - {onlyUse.includes('prePostParamsFilter') && - <> -

Pre post params

-

Change form fields data before it is sent to the external integration. This way you can manipulate data and provide additional mapping to the data sent to the integration.

- - - {reformatCode(` - add_filter('es_forms_integrations_${filter}_pre_post_params', function(array $params): array { - $formSubmissionPageLt = $params['form_submission_page_lt']['value'] ?? ''; - - if ($formSubmissionPageLt) { - $params['ib-submission-source'] = [ - 'name' => 'ib-submission-source', - 'value' => $formSubmissionPageLt, - 'type' => 'text', - 'internalType' => '', - ]; - } - - return $params; - }); - `)} - - - } - - {onlyUse.includes('order') && - <> -

Order fields

-

Forces a specific form fields order, regardless of one set in the editor. Fields that are not defined here will follow the natural in-editor order.

-

Not all fields need to have an order defined. For example, if you want to make sure firstname, lastname and email are displayed first, this filter can help.

- - - {reformatCode(` - add_filter('es_forms_integrations_${filter}_order', function(): array { - return [ - 'firstname', - 'lastname', - 'email', - ]; - }); - `)} - - - } - - ); -}