"use strict";
/*
 * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
 * This devtool is neither made for production nor for readable output files.
 * It uses "eval()" calls to create a separate source file in the browser devtools.
 * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
 * or disable the default devtool with "devtool: false".
 * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
 */
(self["webpackChunkwoocommerce_rtm_custom_emails"] = self["webpackChunkwoocommerce_rtm_custom_emails"] || []).push([["defaultVendors-1011~1013-451e6f145d6b418c63ac13b371fba32b-createSchemaUtils.js"],{

/***/ 18782:
/*!***********************************************************!*\
  !*** ./node_modules/@rjsf/utils/lib/createSchemaUtils.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ createSchemaUtils)\n/* harmony export */ });\n/* harmony import */ var _deepEquals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./deepEquals */ 75864);\n/* harmony import */ var _schema__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./schema */ 42141);\n\n\n/** The `SchemaUtils` class provides a wrapper around the publicly exported APIs in the `utils/schema` directory such\n * that one does not have to explicitly pass the `validator`, `rootSchema`, or `experimental_defaultFormStateBehavior` to each method.\n * Since these generally do not change across a `Form`, this allows for providing a simplified set of APIs to the\n * `@rjsf/core` components and the various themes as well. This class implements the `SchemaUtilsType` interface.\n */\nclass SchemaUtils {\n    /** Constructs the `SchemaUtils` instance with the given `validator` and `rootSchema` stored as instance variables\n     *\n     * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n     * @param rootSchema - The root schema that will be forwarded to all the APIs\n     * @param experimental_defaultFormStateBehavior - Configuration flags to allow users to override default form state behavior\n     */\n    constructor(validator, rootSchema, experimental_defaultFormStateBehavior) {\n        this.rootSchema = rootSchema;\n        this.validator = validator;\n        this.experimental_defaultFormStateBehavior = experimental_defaultFormStateBehavior;\n    }\n    /** Returns the `ValidatorType` in the `SchemaUtilsType`\n     *\n     * @returns - The `ValidatorType`\n     */\n    getValidator() {\n        return this.validator;\n    }\n    /** Determines whether either the `validator` and `rootSchema` differ from the ones associated with this instance of\n     * the `SchemaUtilsType`. If either `validator` or `rootSchema` are falsy, then return false to prevent the creation\n     * of a new `SchemaUtilsType` with incomplete properties.\n     *\n     * @param validator - An implementation of the `ValidatorType` interface that will be compared against the current one\n     * @param rootSchema - The root schema that will be compared against the current one\n     * @param [experimental_defaultFormStateBehavior] Optional configuration object, if provided, allows users to override default form state behavior\n     * @returns - True if the `SchemaUtilsType` differs from the given `validator` or `rootSchema`\n     */\n    doesSchemaUtilsDiffer(validator, rootSchema, experimental_defaultFormStateBehavior = {}) {\n        if (!validator || !rootSchema) {\n            return false;\n        }\n        return (this.validator !== validator ||\n            !(0,_deepEquals__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this.rootSchema, rootSchema) ||\n            !(0,_deepEquals__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this.experimental_defaultFormStateBehavior, experimental_defaultFormStateBehavior));\n    }\n    /** Returns the superset of `formData` that includes the given set updated to include any missing fields that have\n     * computed to have defaults provided in the `schema`.\n     *\n     * @param schema - The schema for which the default state is desired\n     * @param [formData] - The current formData, if any, onto which to provide any missing defaults\n     * @param [includeUndefinedValues=false] - Optional flag, if true, cause undefined values to be added as defaults.\n     *          If \"excludeObjectChildren\", pass `includeUndefinedValues` as false when computing defaults for any nested\n     *          object properties.\n     * @returns - The resulting `formData` with all the defaults provided\n     */\n    getDefaultFormState(schema, formData, includeUndefinedValues = false) {\n        return (0,_schema__WEBPACK_IMPORTED_MODULE_1__.getDefaultFormState)(this.validator, schema, formData, this.rootSchema, includeUndefinedValues, this.experimental_defaultFormStateBehavior);\n    }\n    /** Determines whether the combination of `schema` and `uiSchema` properties indicates that the label for the `schema`\n     * should be displayed in a UI.\n     *\n     * @param schema - The schema for which the display label flag is desired\n     * @param [uiSchema] - The UI schema from which to derive potentially displayable information\n     * @param [globalOptions={}] - The optional Global UI Schema from which to get any fallback `xxx` options\n     * @returns - True if the label should be displayed or false if it should not\n     */\n    getDisplayLabel(schema, uiSchema, globalOptions) {\n        return (0,_schema__WEBPACK_IMPORTED_MODULE_1__.getDisplayLabel)(this.validator, schema, uiSchema, this.rootSchema, globalOptions);\n    }\n    /** Determines which of the given `options` provided most closely matches the `formData`.\n     * Returns the index of the option that is valid and is the closest match, or 0 if there is no match.\n     *\n     * The closest match is determined using the number of matching properties, and more heavily favors options with\n     * matching readOnly, default, or const values.\n     *\n     * @param formData - The form data associated with the schema\n     * @param options - The list of options that can be selected from\n     * @param [selectedOption] - The index of the currently selected option, defaulted to -1 if not specified\n     * @param [discriminatorField] - The optional name of the field within the options object whose value is used to\n     *          determine which option is selected\n     * @returns - The index of the option that is the closest match to the `formData` or the `selectedOption` if no match\n     */\n    getClosestMatchingOption(formData, options, selectedOption, discriminatorField) {\n        return (0,_schema__WEBPACK_IMPORTED_MODULE_1__.getClosestMatchingOption)(this.validator, this.rootSchema, formData, options, selectedOption, discriminatorField);\n    }\n    /** Given the `formData` and list of `options`, attempts to find the index of the first option that matches the data.\n     * Always returns the first option if there is nothing that matches.\n     *\n     * @param formData - The current formData, if any, used to figure out a match\n     * @param options - The list of options to find a matching options from\n     * @param [discriminatorField] - The optional name of the field within the options object whose value is used to\n     *          determine which option is selected\n     * @returns - The firstindex of the matched option or 0 if none is available\n     */\n    getFirstMatchingOption(formData, options, discriminatorField) {\n        return (0,_schema__WEBPACK_IMPORTED_MODULE_1__.getFirstMatchingOption)(this.validator, formData, options, this.rootSchema, discriminatorField);\n    }\n    /** Given the `formData` and list of `options`, attempts to find the index of the option that best matches the data.\n     * Deprecated, use `getFirstMatchingOption()` instead.\n     *\n     * @param formData - The current formData, if any, onto which to provide any missing defaults\n     * @param options - The list of options to find a matching options from\n     * @param [discriminatorField] - The optional name of the field within the options object whose value is used to\n     *          determine which option is selected\n     * @returns - The index of the matched option or 0 if none is available\n     * @deprecated\n     */\n    getMatchingOption(formData, options, discriminatorField) {\n        return (0,_schema__WEBPACK_IMPORTED_MODULE_1__.getMatchingOption)(this.validator, formData, options, this.rootSchema, discriminatorField);\n    }\n    /** Checks to see if the `schema` and `uiSchema` combination represents an array of files\n     *\n     * @param schema - The schema for which check for array of files flag is desired\n     * @param [uiSchema] - The UI schema from which to check the widget\n     * @returns - True if schema/uiSchema contains an array of files, otherwise false\n     */\n    isFilesArray(schema, uiSchema) {\n        return (0,_schema__WEBPACK_IMPORTED_MODULE_1__.isFilesArray)(this.validator, schema, uiSchema, this.rootSchema);\n    }\n    /** Checks to see if the `schema` combination represents a multi-select\n     *\n     * @param schema - The schema for which check for a multi-select flag is desired\n     * @returns - True if schema contains a multi-select, otherwise false\n     */\n    isMultiSelect(schema) {\n        return (0,_schema__WEBPACK_IMPORTED_MODULE_1__.isMultiSelect)(this.validator, schema, this.rootSchema);\n    }\n    /** Checks to see if the `schema` combination represents a select\n     *\n     * @param schema - The schema for which check for a select flag is desired\n     * @returns - True if schema contains a select, otherwise false\n     */\n    isSelect(schema) {\n        return (0,_schema__WEBPACK_IMPORTED_MODULE_1__.isSelect)(this.validator, schema, this.rootSchema);\n    }\n    /** Merges the errors in `additionalErrorSchema` into the existing `validationData` by combining the hierarchies in\n     * the two `ErrorSchema`s and then appending the error list from the `additionalErrorSchema` obtained by calling\n     * `getValidator().toErrorList()` onto the `errors` in the `validationData`. If no `additionalErrorSchema` is passed,\n     * then `validationData` is returned.\n     *\n     * @param validationData - The current `ValidationData` into which to merge the additional errors\n     * @param [additionalErrorSchema] - The additional set of errors\n     * @returns - The `validationData` with the additional errors from `additionalErrorSchema` merged into it, if provided.\n     * @deprecated - Use the `validationDataMerge()` function exported from `@rjsf/utils` instead. This function will be\n     *        removed in the next major release.\n     */\n    mergeValidationData(validationData, additionalErrorSchema) {\n        return (0,_schema__WEBPACK_IMPORTED_MODULE_1__.mergeValidationData)(this.validator, validationData, additionalErrorSchema);\n    }\n    /** Retrieves an expanded schema that has had all of its conditions, additional properties, references and\n     * dependencies resolved and merged into the `schema` given a `rawFormData` that is used to do the potentially\n     * recursive resolution.\n     *\n     * @param schema - The schema for which retrieving a schema is desired\n     * @param [rawFormData] - The current formData, if any, to assist retrieving a schema\n     * @returns - The schema having its conditions, additional properties, references and dependencies resolved\n     */\n    retrieveSchema(schema, rawFormData) {\n        return (0,_schema__WEBPACK_IMPORTED_MODULE_1__.retrieveSchema)(this.validator, schema, this.rootSchema, rawFormData);\n    }\n    /** Sanitize the `data` associated with the `oldSchema` so it is considered appropriate for the `newSchema`. If the\n     * new schema does not contain any properties, then `undefined` is returned to clear all the form data. Due to the\n     * nature of schemas, this sanitization happens recursively for nested objects of data. Also, any properties in the\n     * old schemas that are non-existent in the new schema are set to `undefined`.\n     *\n     * @param [newSchema] - The new schema for which the data is being sanitized\n     * @param [oldSchema] - The old schema from which the data originated\n     * @param [data={}] - The form data associated with the schema, defaulting to an empty object when undefined\n     * @returns - The new form data, with all the fields uniquely associated with the old schema set\n     *      to `undefined`. Will return `undefined` if the new schema is not an object containing properties.\n     */\n    sanitizeDataForNewSchema(newSchema, oldSchema, data) {\n        return (0,_schema__WEBPACK_IMPORTED_MODULE_1__.sanitizeDataForNewSchema)(this.validator, this.rootSchema, newSchema, oldSchema, data);\n    }\n    /** Generates an `IdSchema` object for the `schema`, recursively\n     *\n     * @param schema - The schema for which the display label flag is desired\n     * @param [id] - The base id for the schema\n     * @param [formData] - The current formData, if any, onto which to provide any missing defaults\n     * @param [idPrefix='root'] - The prefix to use for the id\n     * @param [idSeparator='_'] - The separator to use for the path segments in the id\n     * @returns - The `IdSchema` object for the `schema`\n     */\n    toIdSchema(schema, id, formData, idPrefix = 'root', idSeparator = '_') {\n        return (0,_schema__WEBPACK_IMPORTED_MODULE_1__.toIdSchema)(this.validator, schema, id, this.rootSchema, formData, idPrefix, idSeparator);\n    }\n    /** Generates an `PathSchema` object for the `schema`, recursively\n     *\n     * @param schema - The schema for which the display label flag is desired\n     * @param [name] - The base name for the schema\n     * @param [formData] - The current formData, if any, onto which to provide any missing defaults\n     * @returns - The `PathSchema` object for the `schema`\n     */\n    toPathSchema(schema, name, formData) {\n        return (0,_schema__WEBPACK_IMPORTED_MODULE_1__.toPathSchema)(this.validator, schema, name, this.rootSchema, formData);\n    }\n}\n/** Creates a `SchemaUtilsType` interface that is based around the given `validator` and `rootSchema` parameters. The\n * resulting interface implementation will forward the `validator` and `rootSchema` to all the wrapped APIs.\n *\n * @param validator - an implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param [experimental_defaultFormStateBehavior] Optional configuration object, if provided, allows users to override default form state behavior\n * @returns - An implementation of a `SchemaUtilsType` interface\n */\nfunction createSchemaUtils(validator, rootSchema, experimental_defaultFormStateBehavior = {}) {\n    return new SchemaUtils(validator, rootSchema, experimental_defaultFormStateBehavior);\n}\n//# sourceMappingURL=createSchemaUtils.js.map\n\n//# sourceURL=webpack://woocommerce-rtm-custom-emails/./node_modules/@rjsf/utils/lib/createSchemaUtils.js?");

/***/ })

}]);