diff --git a/.deployignore b/.deployignore
deleted file mode 100644
index b4e35089..00000000
--- a/.deployignore
+++ /dev/null
@@ -1,36 +0,0 @@
-# Exclusions when publishing to the develop-built branch
-# Notably, must include .github and .distignore so the next step has access to them
-
-# Directories
-.git
-assets/js/admin-settings
-assets/js/components
-assets/js/config
-assets/js/pluginsidebar
-assets/js/services
-assets/js/util
-node_modules
-tests
-vendor
-
-# Files
-.deployignore
-.editorconfig
-.eslintignore
-.eslintrc.json
-.gitignore
-.nvmrc
-.phpunit-watcher.yml
-.phpcs.xml
-.phpcs-cache.json
-.phpunit.result.cache
-babel.config.json
-composer.json
-composer.lock
-DOCKER_ENV
-package.json
-package-lock.json
-phpunit.xml.dist
-phpstan.neon
-README.md
-webpack.config.js
diff --git a/.editorconfig b/.editorconfig
deleted file mode 100644
index 4963d419..00000000
--- a/.editorconfig
+++ /dev/null
@@ -1,21 +0,0 @@
-root = true
-
-# For all files:
-# - UTF-8
-# - Unix newlines
-# - Insert new line at the end
-# - trim whitespace at end of lines
-# - Use 2 spaces for indentation
-[*]
-charset = utf-8
-end_of_line = lf
-insert_final_newline = true
-trim_trailing_whitespace = true
-indent_style = space
-indent_size = 2
-
-# For PHP files only:
-# - Use tabs (following WordPress conventions) for indentation
-# - Show tab width as 2 spaces (inherit from indent_size)
-[*.php]
-indent_style = tab
diff --git a/.eslintignore b/.eslintignore
deleted file mode 100644
index 872f242f..00000000
--- a/.eslintignore
+++ /dev/null
@@ -1,15 +0,0 @@
-assets/js/bulk-export.js
-assets/js/cover-image.js
-assets/js/export-table.js
-assets/js/json.js
-assets/js/meta-boxes.js
-assets/js/notices.js
-assets/js/preview.js
-assets/js/sections.js
-assets/js/select2.full.min.js
-assets/js/settings.js
-assets/js/single-push.js
-assets/js/theme-edit.js
-assets/js/themes.js
-build
-vendor
diff --git a/.eslintrc.json b/.eslintrc.json
deleted file mode 100644
index 2c691872..00000000
--- a/.eslintrc.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "env": {
- "browser": true,
- "es2021": true,
- "jest": true,
- "node": true
- },
- "extends": [
- "airbnb",
- "airbnb/hooks"
- ],
- "parser": "@babel/eslint-parser",
- "parserOptions": {
- "ecmaFeatures": {
- "globalReturn": true,
- "impliedStrict": true,
- "jsx": true
- },
- "sourceType": "module"
- },
- "rules": {
- "no-restricted-syntax": [
- "error",
- {
- "message": "Ternaries must be used instead of && in JSX expressions to avoid the potential for accidental output. Use, for example, {condition ? : null}.",
- "selector": ":matches(JSXElement, JSXFragment) > JSXExpressionContainer > LogicalExpression[operator='&&']"
- },
- {
- "message": "Ternaries must be used instead of || in JSX expressions to avoid the potential for accidental output. Use, for example, {thing1 ? thing1 : thing2}.",
- "selector": ":matches(JSXElement, JSXFragment) > JSXExpressionContainer > LogicalExpression[operator='||']"
- }
- ]
- }
-}
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 6fbcb6cd..00000000
--- a/.gitignore
+++ /dev/null
@@ -1,14 +0,0 @@
-.DS_Store
-.phpcs-cache.json
-.phpunit.result.cache
-*.zip
-tags
-composer.lock
-vendor
-node_modules
-npm-debug.log
-build
-
-## IDE
-.idea
-.vscode
diff --git a/.nvmrc b/.nvmrc
deleted file mode 100644
index 209e3ef4..00000000
--- a/.nvmrc
+++ /dev/null
@@ -1 +0,0 @@
-20
diff --git a/.phpcs.xml b/.phpcs.xml
deleted file mode 100644
index d08ba247..00000000
--- a/.phpcs.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
- PHP_CodeSniffer standard for Publish to Apple News.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- build/
- node_modules/
- vendor/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- tests/
-
-
diff --git a/.phpunit-watcher.yml b/.phpunit-watcher.yml
deleted file mode 100644
index ee414c08..00000000
--- a/.phpunit-watcher.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-watch:
- directories:
- - tests
- - admin
- - includes
- fileMask: '*.php'
diff --git a/README.md b/README.md
deleted file mode 100644
index 0aeec17b..00000000
--- a/README.md
+++ /dev/null
@@ -1,83 +0,0 @@
-# Publish to Apple News
-
-[![read me standard badge](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)
-
-The Publish to Apple News plugin enables your WordPress content to be published to your Apple News channel.
-
-- Convert your WordPress content into Apple News format automatically.
-- Create a custom design for your Apple News content with no programming knowledge required.
-- Automatically or manually publish posts from WordPress to Apple News.
-- Control individual posts with options to publish, update, or delete.
-- Publish individual posts or in bulk.
-- Handles image galleries and popular embeds like YouTube and Vimeo that are supported by Apple News.
-
-Please visit our [wiki](https://github.com/alleyinteractive/apple-news/wiki) for detailed information on the follow items:
-
-- [Background](#background)
-- [Releases](#Releases)
- - [Install](#install)
- - [Use](#use)
- - [Source](#from-source)
- - [Changelog](#changelog)
-- [Development Process](#development-process)
- - [Contributing](#contributing)
-- [Project Structure](#project-structure)
-- [Third-Party Dependencies](#third-party-dependencies)
-- [Related Efforts](#related-efforts)
-- [Maintainers](#maintainers)
-- [License](#license)
-
-## Background
-
-To enable content from your WordPress site to be published to your Apple News channel, you must obtain and enter Apple News API credentials from Apple.
-
-Please see the [Apple Developer](https://developer.apple.com/) and [Apple News Publisher documentation](https://developer.apple.com/news-publisher/) and terms on Apple's website for complete information.
-
-## Releases
-
-### Install
-See the wiki for [installation instructions](https://github.com/alleyinteractive/apple-news/wiki/Installation).
-
-### Use
-See the wiki for [usage instructions](https://github.com/alleyinteractive/apple-news/wiki/Usage) as well as [configuration guidance](https://github.com/alleyinteractive/apple-news/wiki/Configuration).
-
-### Source
-
-### Changelog
-See the release archive for the [changelog](https://github.com/alleyinteractive/apple-news/releases).
-
-## Development Process
-
-### Contributing
-The wiki has [details about contributing](https://github.com/alleyinteractive/apple-news/wiki/Contributing).
-
-## Project Structure
-
-## Third-Party Dependencies
-
-## Related Efforts
-- [Connect to Apple Music](https://github.com/alleyinteractive/apple-music)
-
-## Maintainers
-- [Alley](https://github.com/alleyinteractive)
-
-![Alley logo](https://avatars.githubusercontent.com/u/1733454?s=200&v=4)
-
-## Releasing the Plugin
-
-The plugin uses a [built release workflow](./.github/workflows/built-release.yml)
-to compile and tag releases. Whenever a new version is detected in the root
-`composer.json` file or in the plugin's headers, the workflow will automatically
-build the plugin and tag it with a new version. The built tag will contain all
-the required front-end assets the plugin may require. This works well for
-publishing to WordPress.org or for submodule-ing.
-
-When you are ready to release a new version of the plugin, you can run
-`npm run release` to start the process of setting up a new release.
-
-### Contributors
-Thanks to all of the [contributors](CONTRIBUTORS.md) to this project.
-
-## License
-This project is licensed under the
-[GNU Public License (GPL) version 3](LICENSE) or later.
diff --git a/assets/js/admin-settings/frontend.jsx b/assets/js/admin-settings/frontend.jsx
deleted file mode 100644
index 6ffdaa4b..00000000
--- a/assets/js/admin-settings/frontend.jsx
+++ /dev/null
@@ -1,14 +0,0 @@
-import React, { StrictMode } from 'react';
-import ReactDOM from 'react-dom';
-
-// Components.
-import AdminSettings from './index';
-
-const container = document.getElementById('apple-news-options__page');
-const root = ReactDOM.createRoot(container);
-
-root.render(
-
-
- ,
-);
diff --git a/assets/js/admin-settings/index.jsx b/assets/js/admin-settings/index.jsx
deleted file mode 100644
index ada1ca8f..00000000
--- a/assets/js/admin-settings/index.jsx
+++ /dev/null
@@ -1,146 +0,0 @@
-/* global AppleNewsAutomationConfig */
-import {
- Button,
-} from '@wordpress/components';
-import { __ } from '@wordpress/i18n';
-import React from 'react';
-
-// Components.
-import Rule from './rule';
-
-// Hooks.
-import useSiteOptions from '../services/hooks/use-site-options';
-
-// Util.
-import deleteAtIndex from '../util/delete-at-index';
-import updateValueAtIndex from '../util/update-value-at-index';
-
-function AdminSettings() {
- const [{
- loading, setSettings, saving, settings,
- }, saveSettings] = useSiteOptions();
- const busy = loading || saving;
- const { apple_news_automation: ruleList } = settings;
- const { fields } = AppleNewsAutomationConfig;
-
- /**
- * Helper function for pushing to in-memory settings inside useSiteOptions.
- * @param {array} updatedRules - The new array of rules.
- */
- const updateSettings = (updatedRules) => {
- setSettings({ ...settings, apple_news_automation: updatedRules });
- };
-
- /**
- * Adds a new empty rule to the end of the list.
- */
- const addRule = () => {
- updateSettings([
- ...(ruleList ?? []),
- {
- field: '',
- taxonomy: '',
- term_id: 0,
- value: '',
- },
- ]);
- };
-
- /**
- * Drag and drop logic/re-indexing for Rules.
- * @param {number} from - The origin index.
- * @param {number} to - The destination index.
- */
- const reorderRule = (from, to) => {
- if (from !== to) {
- const updatedRules = [...(ruleList ?? [])];
- [updatedRules[from], updatedRules[to]] = [updatedRules[to], updatedRules[from]];
- updateSettings(updatedRules);
- }
- };
-
- /**
- * Updates a configuration parameter for a rule given the rule index, a field
- * key, and a field value.
- * @param {number} index - The index of the rule being updated.
- * @param {string} key - The field key within the rule.
- * @param {string|number} value - A number for term_id, string otherwise.
- */
- const updateRule = (index, key, value) => {
- let updatedRules = updateValueAtIndex(ruleList, key, value, index);
- // Need to reset value state in case field changes the resulting value's type.
- if (key === 'field') {
- updatedRules = updateValueAtIndex(updatedRules, 'value', fields[value]?.type === 'boolean' ? 'false' : '', index);
- }
- updateSettings(updatedRules);
- };
-
- return (
-
-
{__('Apple News Automation', 'apple-news')}
-
{__('Configure automation rules below to automatically apply certain settings based on the taxonomy terms applied to each post.', 'apple-news')}
\n );\n}\n\nTermSelector.propTypes = {\n onChange: PropTypes.func.isRequired,\n taxonomy: PropTypes.string.isRequired,\n termId: PropTypes.number.isRequired,\n};\n","import apiFetch from '@wordpress/api-fetch';\nimport { useEffect, useState } from 'react';\n\n// Hooks.\nimport useTaxonomies from '../use-taxonomies';\n\n/**\n * A React hook for working with taxonomy terms. Allows fetching and setting\n * taxonomy terms for various taxonomies by ID. Caches results for future use.\n * @returns {object} An object with a get and set method.\n */\nexport default function useTermCache() {\n const [termCache, setTermCache] = useState({});\n const taxonomies = useTaxonomies();\n\n /**\n * Sets data for a term by taxonomy slug and term ID.\n * @param {object} termObject - The term object to set for the taxonomy and term ID.\n */\n const set = (termObject) => {\n if (termObject.taxonomy\n && termObject.id\n && (undefined === termCache[termObject.taxonomy]?.[termObject.id]\n || termCache[termObject.taxonomy][termObject.id].loading === true)\n ) {\n setTermCache({\n ...termCache,\n [termObject.taxonomy]: {\n ...(termCache[termObject.taxonomy] ?? {}),\n [termObject.id]: termObject,\n },\n });\n }\n };\n\n /**\n * Fetches a term from the REST API given the taxonomy slug and the term ID.\n * @param {string} taxonomy - The taxonomy slug.\n * @param {string} rawTermId - The term ID.\n */\n const fetchTerm = async (taxonomy, rawTermId) => {\n const termId = Number(rawTermId);\n if (Number.isNaN(termId) || termId <= 0) {\n return;\n }\n // If necessary, immediately add a placeholder to state while we are waiting for the load.\n if (termCache[taxonomy]?.[termId] === undefined) {\n set({ taxonomy, id: termId, loading: true });\n }\n\n // If taxonomies haven't loaded yet, bail out and fetch them later via useEffect.\n if (!taxonomies[taxonomy]) {\n return;\n }\n\n // Fetch the actual term object from the API.\n const termObject = await apiFetch({ path: `/${taxonomies[taxonomy].rest_namespace}/${taxonomies[taxonomy].rest_base}/${termId}` });\n if (termObject.name) {\n set(termObject);\n }\n };\n\n /**\n * Gets a term by taxonomy slug and term ID.\n * @param {string} taxonomy - The taxonomy slug to look up.\n * @param {number} termId - The term ID to look up.\n * @returns {object} The term object as it was returned by the REST API.\n */\n const get = (taxonomy, termId) => {\n if (termCache[taxonomy]?.[termId] === undefined) {\n fetchTerm(taxonomy, termId);\n }\n\n return termCache[taxonomy]?.[termId] ?? {};\n };\n\n // Handle cases where terms were requested before taxonomy config was loaded.\n useEffect(() => {\n if (Object.keys(taxonomies).length > 0) {\n Object.keys(termCache).forEach((taxonomy) => {\n Object.keys(termCache[taxonomy]).forEach((termId) => {\n if (termCache[taxonomy]?.[termId]?.loading === true) {\n fetchTerm(taxonomy, termId);\n }\n });\n });\n }\n }, [taxonomies]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return { get, set };\n}\n","/* global AppleNewsAutomationConfig */\nimport {\n Button,\n SelectControl,\n TextControl,\n ToggleControl,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\n// Components.\nimport TermSelector from '../components/term-selector';\n\nfunction Rule({\n busy,\n field,\n onDelete,\n onDragEnd,\n onUpdate,\n taxonomy,\n termId,\n value,\n}) {\n const {\n fields,\n sections,\n taxonomies,\n themes,\n } = AppleNewsAutomationConfig;\n let fieldType = '';\n if (field === 'contentGenerationType') {\n fieldType = 'contentGenerationType';\n } else if (['isHidden', 'isPaid', 'isPreview', 'isSponsored'].includes(field)) {\n fieldType = 'boolean-select';\n } else if (field === 'links.sections') {\n fieldType = 'sections';\n } else if (field === 'theme') {\n fieldType = 'themes';\n } else if (fields[field]?.type === 'boolean') {\n fieldType = 'boolean';\n } else if (fields[field]?.type === 'string') {\n fieldType = 'string';\n }\n\n return (\n
\n );\n}\n\nRule.propTypes = {\n busy: PropTypes.bool.isRequired,\n field: PropTypes.string.isRequired,\n onDelete: PropTypes.func.isRequired,\n onDragEnd: PropTypes.func.isRequired,\n onUpdate: PropTypes.func.isRequired,\n taxonomy: PropTypes.string.isRequired,\n termId: PropTypes.number.isRequired,\n value: PropTypes.string.isRequired,\n};\n\nexport default Rule;\n","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"data\"];","/**\n * Given an array of objects, a key, and a value, returns a copy of the array\n * with the value for the key set at the given index.\n * @param {Array} values - An array of objects.\n * @param {string} key - The object key to update.\n * @param {*} value - The value to set for the key.\n * @param {number} index - The index to set the value on.\n * @returns {Array} A copy of the array with the value set for the key at the given index.\n */\nconst updateValueAtIndex = (values, key, value, index) => {\n const valuesCopy = values.map((item) => ({ ...item }));\n valuesCopy[index][key] = value;\n return valuesCopy;\n};\n\nexport default updateValueAtIndex;\n","/* global AppleNewsAutomationConfig */\nimport {\n Button,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport React from 'react';\n\n// Components.\nimport Rule from './rule';\n\n// Hooks.\nimport useSiteOptions from '../services/hooks/use-site-options';\n\n// Util.\nimport deleteAtIndex from '../util/delete-at-index';\nimport updateValueAtIndex from '../util/update-value-at-index';\n\nfunction AdminSettings() {\n const [{\n loading, setSettings, saving, settings,\n }, saveSettings] = useSiteOptions();\n const busy = loading || saving;\n const { apple_news_automation: ruleList } = settings;\n const { fields } = AppleNewsAutomationConfig;\n\n /**\n * Helper function for pushing to in-memory settings inside useSiteOptions.\n * @param {array} updatedRules - The new array of rules.\n */\n const updateSettings = (updatedRules) => {\n setSettings({ ...settings, apple_news_automation: updatedRules });\n };\n\n /**\n * Adds a new empty rule to the end of the list.\n */\n const addRule = () => {\n updateSettings([\n ...(ruleList ?? []),\n {\n field: '',\n taxonomy: '',\n term_id: 0,\n value: '',\n },\n ]);\n };\n\n /**\n * Drag and drop logic/re-indexing for Rules.\n * @param {number} from - The origin index.\n * @param {number} to - The destination index.\n */\n const reorderRule = (from, to) => {\n if (from !== to) {\n const updatedRules = [...(ruleList ?? [])];\n [updatedRules[from], updatedRules[to]] = [updatedRules[to], updatedRules[from]];\n updateSettings(updatedRules);\n }\n };\n\n /**\n * Updates a configuration parameter for a rule given the rule index, a field\n * key, and a field value.\n * @param {number} index - The index of the rule being updated.\n * @param {string} key - The field key within the rule.\n * @param {string|number} value - A number for term_id, string otherwise.\n */\n const updateRule = (index, key, value) => {\n let updatedRules = updateValueAtIndex(ruleList, key, value, index);\n // Need to reset value state in case field changes the resulting value's type.\n if (key === 'field') {\n updatedRules = updateValueAtIndex(updatedRules, 'value', fields[value]?.type === 'boolean' ? 'false' : '', index);\n }\n updateSettings(updatedRules);\n };\n\n return (\n
\n
{__('Apple News Automation', 'apple-news')}
\n
{__('Configure automation rules below to automatically apply certain settings based on the taxonomy terms applied to each post.', 'apple-news')}
\n );\n}\n\nexport default AdminSettings;\n","import { useEffect, useState } from 'react';\nimport apiFetch from '@wordpress/api-fetch';\nimport { useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\nconst useSiteOptions = () => {\n const [loading, setLoading] = useState(true);\n const [notices, setNotices] = useState([]);\n const [saving, setSaving] = useState(false);\n const [settings, setSettings] = useState({});\n\n // Setup for Gutenberg's notices system.\n const {\n createErrorNotice,\n createSuccessNotice,\n removeNotice,\n } = useDispatch('core/notices');\n const noticeOptions = {\n type: 'snackbar',\n isDismissable: true,\n };\n\n /**\n * Helper for creating an error notice and adding it to the stack.\n * @param {string} message - The message to display to the user.\n */\n const error = async (message) => {\n const { notice: { id } = {} } = await createErrorNotice(message, noticeOptions);\n setNotices([...notices, id]);\n };\n\n /**\n * Helper for creating a success notice and adding it to the stack.\n * @param {string} message - The message to display to the user.\n */\n const success = async (message) => {\n const { notice: { id } = {} } = await createSuccessNotice(message, noticeOptions);\n setNotices([...notices, id]);\n };\n\n // Load settings on initial mount.\n useEffect(() => {\n (async () => {\n try {\n const response = await apiFetch({\n path: '/wp/v2/settings',\n });\n setSettings(response || {});\n } catch ({ message }) {\n await error(message);\n } finally {\n setLoading(false);\n }\n })();\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n /**\n * Set settings.\n *\n * @param {object} newSettings settings object.\n */\n const saveSettings = async () => {\n setSaving(true);\n notices.forEach((id) => removeNotice(id));\n setNotices([]);\n\n // Enforce some defaults prior to save.\n // Request will 500 when site_logo === null.\n const finalSettings = { ...settings };\n finalSettings.site_logo = finalSettings.site_logo ?? 0;\n\n try {\n const response = await apiFetch({\n path: '/wp/v2/settings',\n method: 'POST',\n data: finalSettings,\n });\n setSettings(response || {});\n await success(__('Settings Saved', 'bassmaster-plugin'));\n } catch ({ message }) {\n await error(message);\n } finally {\n setSaving(false);\n }\n };\n\n return [\n {\n loading,\n setSettings,\n saving,\n settings,\n },\n saveSettings,\n ];\n};\n\nexport default useSiteOptions;\n","/**\n * Given an array of values, returns a copy of the array with the value at the\n * given index removed.\n * @param {Array} values - The array of values to modify.\n * @param {number} index - The index to remove.\n * @returns {Array} A copy of the values array with the value at the specified index removed.\n */\nconst deleteAtIndex = (values, index) => values.filter((value, idx) => index !== idx);\n\nexport default deleteAtIndex;\n","import React, { StrictMode } from 'react';\nimport ReactDOM from 'react-dom';\n\n// Components.\nimport AdminSettings from './index';\n\nconst container = document.getElementById('apple-news-options__page');\nconst root = ReactDOM.createRoot(container);\n\nroot.render(\n \n \n ,\n);\n"],"names":["t","self","e","n","r","hasOwnProperty","s","arguments","length","o","push","Array","isArray","i","apply","toString","Object","prototype","includes","a","call","join","exports","default","d","c","id","version","sources","names","mappings","sourcesContent","sourceRoot","this","map","concat","l","u","btoa","unescape","encodeURIComponent","JSON","stringify","entries","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","seal","create","construct","Reflect","C","forEach","pop","p","f","String","toLowerCase","h","m","match","g","replace","y","indexOf","v","trim","A","RegExp","test","b","_","TypeError","x","w","S","get","value","console","warn","k","E","R","T","I","N","P","O","L","j","D","U","M","B","F","z","q","$","H","W","G","__proto__","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","window","removed","document","nodeType","isSupported","currentScript","DocumentFragment","HTMLTemplateElement","Node","Element","NodeFilter","NamedNodeMap","MozNamedAttrMap","HTMLFormElement","DOMParser","trustedTypes","V","K","Q","J","createElement","content","ownerDocument","X","Z","implementation","ee","createNodeIterator","te","createDocumentFragment","ne","getElementsByTagName","re","importNode","se","oe","createHTMLDocument","ie","ae","le","ce","ue","de","pe","fe","he","me","ge","ye","ve","tagNameCheck","writable","configurable","enumerable","attributeNameCheck","allowCustomizedBuiltInElements","Ae","be","_e","Ce","xe","we","Se","ke","Ee","Re","Te","Ie","Ne","Pe","Oe","Le","je","De","Ue","Me","Be","Fe","ze","qe","$e","He","We","Ge","Ye","Ve","Ke","Qe","Je","Xe","Ze","et","tt","Function","nt","PARSER_MEDIA_TYPE","ALLOWED_TAGS","ALLOWED_ATTR","ALLOWED_NAMESPACES","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","FORBID_CONTENTS","FORBID_TAGS","FORBID_ATTR","USE_PROFILES","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","WHOLE_DOCUMENT","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","FORCE_BODY","SANITIZE_DOM","SANITIZE_NAMED_PROPS","KEEP_CONTENT","IN_PLACE","ALLOWED_URI_REGEXP","NAMESPACE","CUSTOM_ELEMENT_HANDLING","html","svg","svgFilters","mathMl","ADD_TAGS","ADD_ATTR","table","tbody","TRUSTED_TYPES_POLICY","createHTML","createScriptURL","createPolicy","hasAttribute","getAttribute","rt","st","ot","it","at","lt","element","parentNode","removeChild","remove","ct","attribute","getAttributeNode","from","removeAttribute","setAttribute","ut","parseFromString","documentElement","createDocument","innerHTML","body","insertBefore","createTextNode","childNodes","dt","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","pt","ft","ht","nodeName","textContent","attributes","namespaceURI","hasChildNodes","tagName","allowedTags","firstElementChild","gt","Boolean","cloneNode","mt","yt","attrName","attrValue","keepAttr","allowedAttributes","name","forceKeepAttr","getAttributeType","setAttributeNS","vt","nextNode","sanitize","appendChild","firstChild","shadowroot","shadowrootmode","outerHTML","doctype","setConfig","clearConfig","isValidAttribute","addHook","removeHook","removeHooks","removeAllHooks","postMessage","IS_PAPA_WORKER","parse","dynamicTyping","dynamicTypingFunction","transform","worker","WORKERS_SUPPORTED","URL","webkitURL","BLOB_URL","createObjectURL","Blob","type","Worker","onmessage","userStep","step","userChunk","chunk","userComplete","complete","userError","error","input","config","workerId","NODE_STREAM_INPUT","charCodeAt","slice","download","readable","read","on","File","stream","unparse","delimiter","BAD_DELIMITERS","filter","quotes","skipEmptyLines","newline","quoteChar","header","columns","Error","escapeChar","escapeFormulae","keys","data","fields","meta","constructor","Date","charAt","RECORD_SEP","fromCharCode","UNIT_SEP","BYTE_ORDER_MARK","LocalChunkSize","RemoteChunkSize","DefaultDelimiter","Parser","ParserHandle","NetworkStreamer","FileStreamer","StringStreamer","ReadableStreamStreamer","jQuery","fn","each","prop","toUpperCase","attr","FileReader","files","file","inputElem","instanceConfig","extend","before","action","reason","splice","_handle","_finished","_completed","_halted","_input","_baseIndex","_partialLine","_rowCount","_start","_nextChunk","isFirstChunk","_completeResults","errors","chunkSize","parseInt","streamer","_config","parseChunk","beforeFirstChunk","paused","aborted","cursor","substring","preview","results","WORKER_ID","finished","_sendError","_readChunk","_chunkLoaded","XMLHttpRequest","withCredentials","onload","onerror","_chunkError","open","downloadRequestBody","downloadRequestHeaders","setRequestHeader","send","message","status","readyState","responseText","getResponseHeader","lastIndexOf","statusText","webkitSlice","mozSlice","FileReaderSync","Math","min","size","readAsText","encoding","target","result","pause","resume","_streamData","_streamEnd","_streamError","_checkIsFinished","shift","_streamCleanUp","removeListener","pow","abort","transformHeader","parseFloat","code","row","split","comments","abs","successful","bestDelimiter","delimitersToGuess","getCharIndex","setTimeout","fastMode","Y","index","substr","linebreak","truncated","terminate","resetWarningCache","isRequired","array","bigint","bool","func","number","object","string","symbol","any","arrayOf","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","Symbol","for","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","key","ref","__self","__source","defaultProps","$$typeof","props","_owner","current","Fragment","jsx","jsxs","bind","identifier","base","css","media","sourceMap","supports","layer","references","updater","byIndex","domAPI","update","querySelector","HTMLIFrameElement","contentDocument","head","setAttributes","insert","options","nc","insertStyleElement","styleTagTransform","styleSheet","cssText","cp","Mt","assign","SuppressedError","exec","root","parent","children","line","column","return","siblings","some","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","process","env","REACT_APP_SC_ATTR","SC_ATTR","SC_DISABLE_SPEEDY","REACT_APP_SC_DISABLE_SPEEDY","Set","childContextTypes","contextType","contextTypes","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","caller","callee","arity","compare","render","defineProperty","getOwnPropertyNames","getOwnPropertySymbols","groupSizes","Uint32Array","tag","indexOfGroup","insertRules","set","insertRule","clearGroup","deleteRule","getGroup","getRule","Map","has","registerName","getTag","querySelectorAll","nextSibling","sheet","styleSheets","ownerNode","cssRules","nodes","rules","isServer","useCSSOMInjection","gs","server","registerId","reconstructWithOptions","allocateGSInstance","hasNameForId","add","clearNames","clear","clearRules","clearTag","replaceAll","plugins","startsWith","endsWith","prefix","namespace","hash","reduce","createContext","shouldForwardProp","stylis","Consumer","At","useContext","bt","useState","stylisPlugins","useMemo","disableCSSOMInjection","enableVendorPrefixes","useEffect","Provider","_t","inject","getName","Ct","xt","wt","St","isCss","kt","styledComponentId","isReactComponent","Et","Rt","Tt","staticRulesId","isStatic","componentId","baseHash","baseStyle","generateAndInjectStyles","It","Nt","Pt","attrs","parentComponentId","componentStyle","foldedComponentIds","className","theme","as","forwardedAs","forwardRef","_foldedDefaultProps","Ot","Lt","jt","Dt","withConfig","Ut","createStyles","removeStyles","renderStyles","_emitSheetCSS","instance","getStyleTags","sealed","getStyleElement","dangerouslySetInnerHTML","__html","nonce","collectStyles","interleaveWithNodeStream","div","src","controls","onReset","onUpdate","onUpdateURL","valueURL","MediaPicker","allowedTypes","icon","label","onChange","BaseControl","CheckboxControl","checked","PureComponent","handleSubmit","preventDefault","super","handleChange","state","success","attributeName","callback","parseCSVFile","then","setState","__","catch","onSubmit","style","color","htmlFor","alt","title","imageSize","displayControlsInToolbar","AudioPicker","CSVUploader","Checkboxes","ImagePicker","PostPicker","PostSelector","SafeHtml","Selector","TermSelector","VideoPicker","useSelect","getMedia","Spinner","getMediaUrl","href","BlockControls","group","MediaReplaceFlow","mediaId","mediaURL","onSelect","onSelectURL","ToolbarButton","isDestructive","text","onClick","Button","variant","MediaPlaceholder","disableMediaButtons","BlockIcon","locals","wp","htmlEntities","postType","attachmentID","useMedia","media_details","sizes","thumbnail","source_url","alt_text","maxWidth","height","loading","decodeEntities","sprintf","baseUrl","searchRender","selected","setSelected","suppressPostIds","searchValue","page","useCallback","addQueryArgs","_embed","exclude","search","path","headers","json","TextControl","placeholder","subtype","_embedded","featured_media","closeModal","modalTitle","Modal","isDismissible","onRequestClose","closeButtonLabel","disabled","getPostType","params","previewRender","replaceText","resetText","searchEndpoint","selectText","usePostById","rendered","ButtonGroup","margin","Notice","emptyLabel","maxPages","multiple","subTypes","threshold","randomUUID","crypto","Uint8Array","getRandomValues","random","rng","isOpen","labelledbyId","selectedItems","role","isTertiary","useRef","useDebounce","contains","addEventListener","removeEventListener","findIndex","isSecondary","isSmall","autoComplete","onFocus","labelledById","useCurrentPostId","useHasInnerBlocks","useInnerBlocks","useInnerBlocksAttributes","useInnerBlocksCount","useInnerBlocksIndex","useParentBlock","useParentBlockAttributes","usePost","usePostMeta","usePostMetaValue","usePosts","useTerms","getCurrentPostId","clearTimeout","clientId","store","getBlocks","getBlockAttributes","getBlockRootClientId","getBlock","include","getCurrentPostType","useEntityProp","getEntityRecord","getEntityRecords","Promise","full","url","React","apiFetch","blockEditor","components","coreData","i18n","__esModule","toStringTag","module","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","shim","propName","componentName","location","propFullName","secret","err","getShim","ReactPropTypes","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","definition","obj","useTaxonomies","taxonomies","setTaxonomies","async","response","fetchTaxonomies","_ref","taxonomy","termId","rest","termCache","setTermCache","termObject","fetchTerm","rawTermId","Number","isNaN","rest_namespace","rest_base","useTermCache","searchResults","setSearchResults","searchTerm","setSearchTerm","debouncedSearchTerm","newSearchResults","fetchTermData","_extends","SelectControl","next","nextTermId","_ref2","Rule","busy","field","onDelete","onDragEnd","sections","themes","AppleNewsAutomationConfig","fieldType","draggable","tax","fieldSlug","sect","ToggleControl","updateValueAtIndex","values","valuesCopy","item","setSettings","saving","settings","saveSettings","useSiteOptions","setLoading","notices","setNotices","setSaving","createErrorNotice","createSuccessNotice","removeNotice","useDispatch","noticeOptions","isDismissable","notice","finalSettings","site_logo","method","apple_news_automation","ruleList","updateSettings","updatedRules","rel","scope","deleteAtIndex","idx","targetRow","elementFromPoint","clientX","clientY","closest","reorderRule","to","parentElement","updateRule","term_id","addRule","marginTop","isPrimary","container","getElementById","ReactDOM","StrictMode","AdminSettings"],"sourceRoot":""}
\ No newline at end of file
diff --git a/build/pluginSidebar.asset.php b/build/pluginSidebar.asset.php
new file mode 100644
index 00000000..a18f9cb6
--- /dev/null
+++ b/build/pluginSidebar.asset.php
@@ -0,0 +1 @@
+ array('react', 'wp-api-fetch', 'wp-components', 'wp-data', 'wp-edit-post', 'wp-i18n', 'wp-plugins'), 'version' => '645db1bbe3bf6d798ea9');
diff --git a/build/pluginSidebar.js b/build/pluginSidebar.js
new file mode 100644
index 00000000..b3e1e515
--- /dev/null
+++ b/build/pluginSidebar.js
@@ -0,0 +1,44 @@
+/*! For license information please see pluginSidebar.js.LICENSE.txt */
+!function(){var e={265:function(e){var t;self,t=()=>(()=>{var e={6484:(e,t)=>{var n;!function(){"use strict";var r={}.hasOwnProperty;function o(){for(var e=[],t=0;t{"use strict";n.d(t,{c:()=>a});var r=n(2876),o=n.n(r),s=n(1849),i=n.n(s)()(o());i.push([e.id,".alley-scripts-post-picker__post-list{display:flex;flex-wrap:wrap;float:left;height:calc(70vh - 200px);justify-content:flex-start;overflow-y:auto;padding:8px;width:100%}.alley-scripts-post-picker__post{border:1px solid #eee;height:auto;justify-content:center;margin:0 8px 8px 0;transition:background-color .2s ease-in-out;width:calc((100% - 40px)/3)}@media(min-width: 780px){.alley-scripts-post-picker__post{width:calc((100% - 40px)/5)}}.alley-scripts-post-picker__post:hover{background-color:#f5f5f5}.alley-scripts-post-picker__post.is-selected{background-color:#f5f5f5}.alley-scripts-post-picker__load-more{clear:both;float:left;text-align:center;width:100%}","",{version:3,sources:["webpack://./src/components/post-picker/post-list.scss"],names:[],mappings:"AAAA,sCACE,YAAA,CACA,cAAA,CACA,UAAA,CACA,yBAAA,CACA,0BAAA,CACA,eAAA,CACA,WAAA,CACA,UAAA,CAGF,iCACE,qBAAA,CACA,WAAA,CACA,sBAAA,CACA,kBAAA,CACA,2CAAA,CACA,2BAAA,CAGA,yBATF,iCAUI,2BAAA,CAAA,CAGF,uCACE,wBAAA,CAGF,6CACE,wBAAA,CAIJ,sCACE,UAAA,CACA,UAAA,CACA,iBAAA,CACA,UAAA",sourcesContent:[".alley-scripts-post-picker__post-list {\n display: flex;\n flex-wrap: wrap;\n float: left;\n height: calc(70vh - 200px);\n justify-content: flex-start;\n overflow-y: auto;\n padding: 8px;\n width: 100%;\n}\n\n.alley-scripts-post-picker__post {\n border: 1px solid #eee;\n height: auto;\n justify-content: center;\n margin: 0 8px 8px 0;\n transition: background-color 0.2s ease-in-out;\n width: calc((100% - 40px) / 3);\n\n\n @media (min-width: 780px) {\n width: calc((100% - 40px) / 5);\n }\n\n &:hover {\n background-color: #f5f5f5;\n }\n\n &.is-selected {\n background-color: #f5f5f5;\n }\n}\n\n.alley-scripts-post-picker__load-more {\n clear: both;\n float: left;\n text-align: center;\n width: 100%;\n}\n"],sourceRoot:""}]);const a=i},9680:(e,t,n)=>{"use strict";n.d(t,{c:()=>a});var r=n(2876),o=n.n(r),s=n(1849),i=n.n(s)()(o());i.push([e.id,".alley-scripts-post-picker__modal .components-modal__content{width:90vw}.alley-scripts-post-picker__buttons{clear:both;display:block;text-align:right;width:100%}.alley-scripts-post-picker__buttons button{margin:5px}","",{version:3,sources:["webpack://./src/components/post-picker/search-modal.scss"],names:[],mappings:"AACE,6DACE,UAAA,CAIJ,oCACE,UAAA,CACA,aAAA,CACA,gBAAA,CACA,UAAA,CAEA,2CACE,UAAA",sourcesContent:[".alley-scripts-post-picker__modal {\n .components-modal__content {\n width: 90vw;\n }\n}\n\n.alley-scripts-post-picker__buttons {\n clear: both;\n display: block;\n text-align: right;\n width: 100%;\n\n button {\n margin: 5px;\n }\n}\n"],sourceRoot:""}]);const a=i},3800:(e,t,n)=>{"use strict";n.d(t,{c:()=>a});var r=n(2876),o=n.n(r),s=n(1849),i=n.n(s)()(o());i.push([e.id,".post-picker-notice{margin:0 0 .5rem 0}","",{version:3,sources:["webpack://./src/components/post-picker/style.scss"],names:[],mappings:"AAAA,oBACE,kBAAA",sourcesContent:[".post-picker-notice {\n margin: 0 0 0.5rem 0;\n}\n"],sourceRoot:""}]);const a=i},5500:(e,t,n)=>{"use strict";n.d(t,{c:()=>a});var r=n(2876),o=n.n(r),s=n(1849),i=n.n(s)()(o());i.push([e.id,'.edit-post-sidebar .autocomplete__component,.editor-styles-wrapper .autocomplete__component{margin-bottom:20px}.edit-post-sidebar .autocomplete-base-control,.editor-styles-wrapper .autocomplete-base-control{position:relative}.edit-post-sidebar .autocomplete-text-control__input,.editor-styles-wrapper .autocomplete-text-control__input{margin:0}.edit-post-sidebar .autocomplete__selection-list,.editor-styles-wrapper .autocomplete__selection-list{list-style-type:none;margin:0 0 6px;padding:0}.edit-post-sidebar .autocomplete__selection-list--item,.editor-styles-wrapper .autocomplete__selection-list--item{display:inline-block;list-style:none}.edit-post-sidebar .autocomplete__selection-list--item--button,.editor-styles-wrapper .autocomplete__selection-list--item--button{margin-bottom:4px;margin-right:3px}.edit-post-sidebar .autocomplete__selection-list--item--button::after,.editor-styles-wrapper .autocomplete__selection-list--item--button::after{content:"×";font-size:16px;line-height:20px;margin-left:5px}.edit-post-sidebar .autocomplete__dropdown,.editor-styles-wrapper .autocomplete__dropdown{background-color:#fff;border-color:rgba(0,0,0,0) #e2e4e7 #e2e4e7;border-radius:0 0 4px 4px;border-style:solid;border-width:0 1px 1px;left:0;max-height:0;overflow-y:hidden;position:absolute;top:calc(100% + 1px);visibility:hidden;width:100%;z-index:10}.edit-post-sidebar .autocomplete__dropdown--is-open,.editor-styles-wrapper .autocomplete__dropdown--is-open{box-shadow:0 3px 30px rgba(25,30,35,.1);max-height:225px;overflow-y:scroll;visibility:visible}.edit-post-sidebar .autocomplete__dropdown--notice,.editor-styles-wrapper .autocomplete__dropdown--notice{padding:15px}.edit-post-sidebar .autocomplete__dropdown--results,.editor-styles-wrapper .autocomplete__dropdown--results{list-style:none;margin:0;padding:0}.edit-post-sidebar .autocomplete__list--item,.editor-styles-wrapper .autocomplete__list--item{list-style:none}.edit-post-sidebar .autocomplete__list--item>button,.editor-styles-wrapper .autocomplete__list--item>button{background:rgba(0,0,0,0);border-color:#e2e4e7;border-style:solid;border-width:0 0 1px;height:100%;line-height:1.25;text-align:left;white-space:inherit;width:100%}.edit-post-sidebar .autocomplete__list--item:last-child>button,.editor-styles-wrapper .autocomplete__list--item:last-child>button{border-bottom:0}',"",{version:3,sources:["webpack://./src/components/selector/styles.scss"],names:[],mappings:"AAAA,4FAgBI,kBACE,CAAA,gGAMF,iBACE,CAAA,8GAMF,QACE,CAAA,sGAMF,oBACE,CAAA,cACA,CAAA,SACA,CAAA,kHAEA,oBACE,CAAA,eACA,CAAA,kIAEA,iBACE,CAAA,gBACA,CAAA,gJAEA,WACE,CAAA,cACA,CAAA,gBACA,CAAA,eACA,CAAA,0FASR,qBACE,CAAA,0CACA,CAAA,yBACA,CAAA,kBACA,CAAA,sBACA,CAAA,MACA,CAAA,YACA,CAAA,iBACA,CAAA,iBACA,CAAA,oBACA,CAAA,iBACA,CAAA,UACA,CAAA,UACA,CAAA,4GAGA,uCACE,CAAA,gBACA,CAAA,iBACA,CAAA,kBACA,CAAA,0GAIF,YACE,CAAA,4GAIF,eACE,CAAA,QACA,CAAA,SACA,CAAA,8FAOJ,eACE,CAAA,4GAEA,wBACE,CAAA,oBACA,CAAA,kBACA,CAAA,oBACA,CAAA,WACA,CAAA,gBACA,CAAA,eACA,CAAA,mBACA,CAAA,UACA,CAAA,kIAGF,eACE",sourcesContent:["//--------------------------------------------------------------\n// AutoComplete Styles\n//--------------------------------------------------------------\n\n/* stylelint-disable max-nesting-depth */\n\n//-----------------------------------------\n// Accommodate editor well, or the sidebar.\n//-----------------------------------------\n.edit-post-sidebar,\n.editor-styles-wrapper {\n .autocomplete {\n\n //-----------------------------------------\n // Parent form wrapper.\n //-----------------------------------------\n &__component {\n margin-bottom: 20px;\n }\n\n //-----------------------------------------\n // Wrapper\n //-----------------------------------------\n &-base-control {\n position: relative;\n }\n\n //-----------------------------------------\n // Input\n //-----------------------------------------\n &-text-control__input {\n margin: 0;\n }\n\n //-----------------------------------------\n // Selected buttons.\n //-----------------------------------------\n &__selection-list {\n list-style-type: none;\n margin: 0 0 6px;\n padding: 0;\n\n &--item {\n display: inline-block;\n list-style: none;\n\n &--button {\n margin-bottom: 4px;\n margin-right: 3px;\n\n &::after {\n content: '×';\n font-size: 16px;\n line-height: 20px;\n margin-left: 5px;\n }\n }\n }\n }\n\n //-----------------------------------------\n // Results\n //-----------------------------------------\n &__dropdown {\n background-color: #fff;\n border-color: transparent #e2e4e7 #e2e4e7;\n border-radius: 0 0 4px 4px;\n border-style: solid;\n border-width: 0 1px 1px;\n left: 0;\n max-height: 0;\n overflow-y: hidden;\n position: absolute;\n top: calc(100% + 1px); // Offset focus border.\n visibility: hidden;\n width: 100%;\n z-index: 10;\n\n // Container is open.\n &--is-open {\n box-shadow: 0 3px 30px rgba(25, 30, 35, 0.1);\n max-height: 225px;\n overflow-y: scroll;\n visibility: visible;\n }\n\n // Notice handler.\n &--notice {\n padding: 15px;\n }\n\n // Results container.\n &--results {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n }\n\n //-----------------------------------------\n // List/Results\n //-----------------------------------------\n &__list--item {\n list-style: none;\n\n > button {\n background: transparent;\n border-color: #e2e4e7;\n border-style: solid;\n border-width: 0 0 1px;\n height: 100%;\n line-height: 1.25;\n text-align: left;\n white-space: inherit;\n width: 100%;\n }\n\n &:last-child > button {\n border-bottom: 0;\n }\n }\n }\n}\n"],sourceRoot:""}]);const a=i},1849:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,r,o,s){"string"==typeof e&&(e=[[null,e,void 0]]);var i={};if(r)for(var a=0;a0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=s),n&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=n):u[2]=n),o&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=o):u[4]="".concat(o)),t.push(u))}},t}},2876:e=>{"use strict";e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),o="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),s="/*# ".concat(o," */");return[t].concat([s]).join("\n")}return[t].join("\n")}},6595:function(e){e.exports=function(){"use strict";const{entries:e,setPrototypeOf:t,isFrozen:n,getPrototypeOf:r,getOwnPropertyDescriptor:o}=Object;let{freeze:s,seal:i,create:a}=Object,{apply:l,construct:c}="undefined"!=typeof Reflect&&Reflect;s||(s=function(e){return e}),i||(i=function(e){return e}),l||(l=function(e,t,n){return e.apply(t,n)}),c||(c=function(e,t){return new e(...t)});const u=C(Array.prototype.forEach),p=C(Array.prototype.pop),d=C(Array.prototype.push),f=C(String.prototype.toLowerCase),h=C(String.prototype.toString),m=C(String.prototype.match),g=C(String.prototype.replace),y=C(String.prototype.indexOf),_=C(String.prototype.trim),v=C(RegExp.prototype.test),b=(A=TypeError,function(){for(var e=arguments.length,t=new Array(e),n=0;n1?n-1:0),o=1;o2&&void 0!==arguments[2]?arguments[2]:f;t&&t(e,null);let s=r.length;for(;s--;){let t=r[s];if("string"==typeof t){const e=o(t);e!==t&&(n(r)||(r[s]=e),t=e)}e[t]=!0}return e}function S(t){const n=a(null);for(const[r,s]of e(t))void 0!==o(t,r)&&(n[r]=s);return n}function E(e,t){for(;null!==e;){const n=o(e,t);if(n){if(n.get)return C(n.get);if("function"==typeof n.value)return C(n.value)}e=r(e)}return function(e){return console.warn("fallback value for",e),null}}const x=s(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),T=s(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),R=s(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),k=s(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),I=s(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),N=s(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),P=s(["#text"]),O=s(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","xmlns","slot"]),L=s(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),D=s(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),M=s(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),U=i(/\{\{[\w\W]*|[\w\W]*\}\}/gm),j=i(/<%[\w\W]*|[\w\W]*%>/gm),B=i(/\${[\w\W]*}/gm),F=i(/^data-[\-\w.\u00B7-\uFFFF]/),q=i(/^aria-[\-\w]+$/),z=i(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),H=i(/^(?:\w+script|data):/i),W=i(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),G=i(/^html$/i);var $=Object.freeze({__proto__:null,MUSTACHE_EXPR:U,ERB_EXPR:j,TMPLIT_EXPR:B,DATA_ATTR:F,ARIA_ATTR:q,IS_ALLOWED_URI:z,IS_SCRIPT_OR_DATA:H,ATTR_WHITESPACE:W,DOCTYPE_NAME:G});return function t(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"undefined"==typeof window?null:window;const r=e=>t(e);if(r.version="3.0.6",r.removed=[],!n||!n.document||9!==n.document.nodeType)return r.isSupported=!1,r;let{document:o}=n;const i=o,l=i.currentScript,{DocumentFragment:c,HTMLTemplateElement:A,Node:C,Element:U,NodeFilter:j,NamedNodeMap:B=n.NamedNodeMap||n.MozNamedAttrMap,HTMLFormElement:F,DOMParser:q,trustedTypes:H}=n,W=U.prototype,V=E(W,"cloneNode"),Y=E(W,"nextSibling"),K=E(W,"childNodes"),X=E(W,"parentNode");if("function"==typeof A){const e=o.createElement("template");e.content&&e.content.ownerDocument&&(o=e.content.ownerDocument)}let Q,J="";const{implementation:Z,createNodeIterator:ee,createDocumentFragment:te,getElementsByTagName:ne}=o,{importNode:re}=i;let oe={};r.isSupported="function"==typeof e&&"function"==typeof X&&Z&&void 0!==Z.createHTMLDocument;const{MUSTACHE_EXPR:se,ERB_EXPR:ie,TMPLIT_EXPR:ae,DATA_ATTR:le,ARIA_ATTR:ce,IS_SCRIPT_OR_DATA:ue,ATTR_WHITESPACE:pe}=$;let{IS_ALLOWED_URI:de}=$,fe=null;const he=w({},[...x,...T,...R,...I,...P]);let me=null;const ge=w({},[...O,...L,...D,...M]);let ye=Object.seal(a(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),_e=null,ve=null,be=!0,Ae=!0,Ce=!1,we=!0,Se=!1,Ee=!1,xe=!1,Te=!1,Re=!1,ke=!1,Ie=!1,Ne=!0,Pe=!1,Oe=!0,Le=!1,De={},Me=null;const Ue=w({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let je=null;const Be=w({},["audio","video","img","source","image","track"]);let Fe=null;const qe=w({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),ze="http://www.w3.org/1998/Math/MathML",He="http://www.w3.org/2000/svg",We="http://www.w3.org/1999/xhtml";let Ge=We,$e=!1,Ve=null;const Ye=w({},[ze,He,We],h);let Ke=null;const Xe=["application/xhtml+xml","text/html"];let Qe=null,Je=null;const Ze=o.createElement("form"),et=function(e){return e instanceof RegExp||e instanceof Function},tt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!Je||Je!==e){if(e&&"object"==typeof e||(e={}),e=S(e),Ke=Ke=-1===Xe.indexOf(e.PARSER_MEDIA_TYPE)?"text/html":e.PARSER_MEDIA_TYPE,Qe="application/xhtml+xml"===Ke?h:f,fe="ALLOWED_TAGS"in e?w({},e.ALLOWED_TAGS,Qe):he,me="ALLOWED_ATTR"in e?w({},e.ALLOWED_ATTR,Qe):ge,Ve="ALLOWED_NAMESPACES"in e?w({},e.ALLOWED_NAMESPACES,h):Ye,Fe="ADD_URI_SAFE_ATTR"in e?w(S(qe),e.ADD_URI_SAFE_ATTR,Qe):qe,je="ADD_DATA_URI_TAGS"in e?w(S(Be),e.ADD_DATA_URI_TAGS,Qe):Be,Me="FORBID_CONTENTS"in e?w({},e.FORBID_CONTENTS,Qe):Ue,_e="FORBID_TAGS"in e?w({},e.FORBID_TAGS,Qe):{},ve="FORBID_ATTR"in e?w({},e.FORBID_ATTR,Qe):{},De="USE_PROFILES"in e&&e.USE_PROFILES,be=!1!==e.ALLOW_ARIA_ATTR,Ae=!1!==e.ALLOW_DATA_ATTR,Ce=e.ALLOW_UNKNOWN_PROTOCOLS||!1,we=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,Se=e.SAFE_FOR_TEMPLATES||!1,Ee=e.WHOLE_DOCUMENT||!1,Re=e.RETURN_DOM||!1,ke=e.RETURN_DOM_FRAGMENT||!1,Ie=e.RETURN_TRUSTED_TYPE||!1,Te=e.FORCE_BODY||!1,Ne=!1!==e.SANITIZE_DOM,Pe=e.SANITIZE_NAMED_PROPS||!1,Oe=!1!==e.KEEP_CONTENT,Le=e.IN_PLACE||!1,de=e.ALLOWED_URI_REGEXP||z,Ge=e.NAMESPACE||We,ye=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&et(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(ye.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&et(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(ye.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(ye.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Se&&(Ae=!1),ke&&(Re=!0),De&&(fe=w({},[...P]),me=[],!0===De.html&&(w(fe,x),w(me,O)),!0===De.svg&&(w(fe,T),w(me,L),w(me,M)),!0===De.svgFilters&&(w(fe,R),w(me,L),w(me,M)),!0===De.mathMl&&(w(fe,I),w(me,D),w(me,M))),e.ADD_TAGS&&(fe===he&&(fe=S(fe)),w(fe,e.ADD_TAGS,Qe)),e.ADD_ATTR&&(me===ge&&(me=S(me)),w(me,e.ADD_ATTR,Qe)),e.ADD_URI_SAFE_ATTR&&w(Fe,e.ADD_URI_SAFE_ATTR,Qe),e.FORBID_CONTENTS&&(Me===Ue&&(Me=S(Me)),w(Me,e.FORBID_CONTENTS,Qe)),Oe&&(fe["#text"]=!0),Ee&&w(fe,["html","head","body"]),fe.table&&(w(fe,["tbody"]),delete _e.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw b('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw b('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');Q=e.TRUSTED_TYPES_POLICY,J=Q.createHTML("")}else void 0===Q&&(Q=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let n=null;const r="data-tt-policy-suffix";t&&t.hasAttribute(r)&&(n=t.getAttribute(r));const o="dompurify"+(n?"#"+n:"");try{return e.createPolicy(o,{createHTML:e=>e,createScriptURL:e=>e})}catch(e){return console.warn("TrustedTypes policy "+o+" could not be created."),null}}(H,l)),null!==Q&&"string"==typeof J&&(J=Q.createHTML(""));s&&s(e),Je=e}},nt=w({},["mi","mo","mn","ms","mtext"]),rt=w({},["foreignobject","desc","title","annotation-xml"]),ot=w({},["title","style","font","a","script"]),st=w({},T);w(st,R),w(st,k);const it=w({},I);w(it,N);const at=function(e){d(r.removed,{element:e});try{e.parentNode.removeChild(e)}catch(t){e.remove()}},lt=function(e,t){try{d(r.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){d(r.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e&&!me[e])if(Re||ke)try{at(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},ct=function(e){let t=null,n=null;if(Te)e=""+e;else{const t=m(e,/^[\r\n\t ]+/);n=t&&t[0]}"application/xhtml+xml"===Ke&&Ge===We&&(e=''+e+"");const r=Q?Q.createHTML(e):e;if(Ge===We)try{t=(new q).parseFromString(r,Ke)}catch(e){}if(!t||!t.documentElement){t=Z.createDocument(Ge,"template",null);try{t.documentElement.innerHTML=$e?J:r}catch(e){}}const s=t.body||t.documentElement;return e&&n&&s.insertBefore(o.createTextNode(n),s.childNodes[0]||null),Ge===We?ne.call(t,Ee?"html":"body")[0]:Ee?t.documentElement:s},ut=function(e){return ee.call(e.ownerDocument||e,e,j.SHOW_ELEMENT|j.SHOW_COMMENT|j.SHOW_TEXT,null)},pt=function(e){return"function"==typeof C&&e instanceof C},dt=function(e,t,n){oe[e]&&u(oe[e],(e=>{e.call(r,t,n,Je)}))},ft=function(e){let t=null;if(dt("beforeSanitizeElements",e,null),(n=e)instanceof F&&("string"!=typeof n.nodeName||"string"!=typeof n.textContent||"function"!=typeof n.removeChild||!(n.attributes instanceof B)||"function"!=typeof n.removeAttribute||"function"!=typeof n.setAttribute||"string"!=typeof n.namespaceURI||"function"!=typeof n.insertBefore||"function"!=typeof n.hasChildNodes))return at(e),!0;var n;const o=Qe(e.nodeName);if(dt("uponSanitizeElement",e,{tagName:o,allowedTags:fe}),e.hasChildNodes()&&!pt(e.firstElementChild)&&v(/<[/\w]/g,e.innerHTML)&&v(/<[/\w]/g,e.textContent))return at(e),!0;if(!fe[o]||_e[o]){if(!_e[o]&&mt(o)){if(ye.tagNameCheck instanceof RegExp&&v(ye.tagNameCheck,o))return!1;if(ye.tagNameCheck instanceof Function&&ye.tagNameCheck(o))return!1}if(Oe&&!Me[o]){const t=X(e)||e.parentNode,n=K(e)||e.childNodes;if(n&&t)for(let r=n.length-1;r>=0;--r)t.insertBefore(V(n[r],!0),Y(e))}return at(e),!0}return e instanceof U&&!function(e){let t=X(e);t&&t.tagName||(t={namespaceURI:Ge,tagName:"template"});const n=f(e.tagName),r=f(t.tagName);return!!Ve[e.namespaceURI]&&(e.namespaceURI===He?t.namespaceURI===We?"svg"===n:t.namespaceURI===ze?"svg"===n&&("annotation-xml"===r||nt[r]):Boolean(st[n]):e.namespaceURI===ze?t.namespaceURI===We?"math"===n:t.namespaceURI===He?"math"===n&&rt[r]:Boolean(it[n]):e.namespaceURI===We?!(t.namespaceURI===He&&!rt[r])&&!(t.namespaceURI===ze&&!nt[r])&&!it[n]&&(ot[n]||!st[n]):!("application/xhtml+xml"!==Ke||!Ve[e.namespaceURI]))}(e)?(at(e),!0):"noscript"!==o&&"noembed"!==o&&"noframes"!==o||!v(/<\/no(script|embed|frames)/i,e.innerHTML)?(Se&&3===e.nodeType&&(t=e.textContent,u([se,ie,ae],(e=>{t=g(t,e," ")})),e.textContent!==t&&(d(r.removed,{element:e.cloneNode()}),e.textContent=t)),dt("afterSanitizeElements",e,null),!1):(at(e),!0)},ht=function(e,t,n){if(Ne&&("id"===t||"name"===t)&&(n in o||n in Ze))return!1;if(Ae&&!ve[t]&&v(le,t));else if(be&&v(ce,t));else if(!me[t]||ve[t]){if(!(mt(e)&&(ye.tagNameCheck instanceof RegExp&&v(ye.tagNameCheck,e)||ye.tagNameCheck instanceof Function&&ye.tagNameCheck(e))&&(ye.attributeNameCheck instanceof RegExp&&v(ye.attributeNameCheck,t)||ye.attributeNameCheck instanceof Function&&ye.attributeNameCheck(t))||"is"===t&&ye.allowCustomizedBuiltInElements&&(ye.tagNameCheck instanceof RegExp&&v(ye.tagNameCheck,n)||ye.tagNameCheck instanceof Function&&ye.tagNameCheck(n))))return!1}else if(Fe[t]);else if(v(de,g(n,pe,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==y(n,"data:")||!je[e])if(Ce&&!v(ue,g(n,pe,"")));else if(n)return!1;return!0},mt=function(e){return e.indexOf("-")>0},gt=function(e){dt("beforeSanitizeAttributes",e,null);const{attributes:t}=e;if(!t)return;const n={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:me};let o=t.length;for(;o--;){const s=t[o],{name:i,namespaceURI:a,value:l}=s,c=Qe(i);let d="value"===i?l:_(l);if(n.attrName=c,n.attrValue=d,n.keepAttr=!0,n.forceKeepAttr=void 0,dt("uponSanitizeAttribute",e,n),d=n.attrValue,n.forceKeepAttr)continue;if(lt(i,e),!n.keepAttr)continue;if(!we&&v(/\/>/i,d)){lt(i,e);continue}Se&&u([se,ie,ae],(e=>{d=g(d,e," ")}));const f=Qe(e.nodeName);if(ht(f,c,d)){if(!Pe||"id"!==c&&"name"!==c||(lt(i,e),d="user-content-"+d),Q&&"object"==typeof H&&"function"==typeof H.getAttributeType)if(a);else switch(H.getAttributeType(f,c)){case"TrustedHTML":d=Q.createHTML(d);break;case"TrustedScriptURL":d=Q.createScriptURL(d)}try{a?e.setAttributeNS(a,i,d):e.setAttribute(i,d),p(r.removed)}catch(e){}}}dt("afterSanitizeAttributes",e,null)},yt=function e(t){let n=null;const r=ut(t);for(dt("beforeSanitizeShadowDOM",t,null);n=r.nextNode();)dt("uponSanitizeShadowNode",n,null),ft(n)||(n.content instanceof c&&e(n.content),gt(n));dt("afterSanitizeShadowDOM",t,null)};return r.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null,o=null,s=null,a=null;if($e=!e,$e&&(e="\x3c!--\x3e"),"string"!=typeof e&&!pt(e)){if("function"!=typeof e.toString)throw b("toString is not a function");if("string"!=typeof(e=e.toString()))throw b("dirty is not a string, aborting")}if(!r.isSupported)return e;if(xe||tt(t),r.removed=[],"string"==typeof e&&(Le=!1),Le){if(e.nodeName){const t=Qe(e.nodeName);if(!fe[t]||_e[t])throw b("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof C)n=ct("\x3c!----\x3e"),o=n.ownerDocument.importNode(e,!0),1===o.nodeType&&"BODY"===o.nodeName||"HTML"===o.nodeName?n=o:n.appendChild(o);else{if(!Re&&!Se&&!Ee&&-1===e.indexOf("<"))return Q&&Ie?Q.createHTML(e):e;if(n=ct(e),!n)return Re?null:Ie?J:""}n&&Te&&at(n.firstChild);const l=ut(Le?e:n);for(;s=l.nextNode();)ft(s)||(s.content instanceof c&&yt(s.content),gt(s));if(Le)return e;if(Re){if(ke)for(a=te.call(n.ownerDocument);n.firstChild;)a.appendChild(n.firstChild);else a=n;return(me.shadowroot||me.shadowrootmode)&&(a=re.call(i,a,!0)),a}let p=Ee?n.outerHTML:n.innerHTML;return Ee&&fe["!doctype"]&&n.ownerDocument&&n.ownerDocument.doctype&&n.ownerDocument.doctype.name&&v(G,n.ownerDocument.doctype.name)&&(p="\n"+p),Se&&u([se,ie,ae],(e=>{p=g(p,e," ")})),Q&&Ie?Q.createHTML(p):p},r.setConfig=function(){tt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),xe=!0},r.clearConfig=function(){Je=null,xe=!1},r.isValidAttribute=function(e,t,n){Je||tt({});const r=Qe(e),o=Qe(t);return ht(r,o,n)},r.addHook=function(e,t){"function"==typeof t&&(oe[e]=oe[e]||[],d(oe[e],t))},r.removeHook=function(e){if(oe[e])return p(oe[e])},r.removeHooks=function(e){oe[e]&&(oe[e]=[])},r.removeAllHooks=function(){oe={}},r}()}()},2232:function(e,t){var n,r;n=function e(){"use strict";var t="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==t?t:{},n=!t.document&&!!t.postMessage,r=t.IS_PAPA_WORKER||!1,o={},s=0,i={parse:function(n,r){var a=(r=r||{}).dynamicTyping||!1;if(A(a)&&(r.dynamicTypingFunction=a,a={}),r.dynamicTyping=a,r.transform=!!A(r.transform)&&r.transform,r.worker&&i.WORKERS_SUPPORTED){var l=function(){if(!i.WORKERS_SUPPORTED)return!1;var n,r,a=(n=t.URL||t.webkitURL||null,r=e.toString(),i.BLOB_URL||(i.BLOB_URL=n.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",r,")();"],{type:"text/javascript"})))),l=new t.Worker(a);return l.onmessage=g,l.id=s++,o[l.id]=l}();return l.userStep=r.step,l.userChunk=r.chunk,l.userComplete=r.complete,l.userError=r.error,r.step=A(r.step),r.chunk=A(r.chunk),r.complete=A(r.complete),r.error=A(r.error),delete r.worker,void l.postMessage({input:n,config:r,workerId:l.id})}var f=null;return i.NODE_STREAM_INPUT,"string"==typeof n?(n=function(e){return 65279===e.charCodeAt(0)?e.slice(1):e}(n),f=r.download?new c(r):new p(r)):!0===n.readable&&A(n.read)&&A(n.on)?f=new d(r):(t.File&&n instanceof File||n instanceof Object)&&(f=new u(r)),f.stream(n)},unparse:function(e,t){var n=!1,r=!0,o=",",s="\r\n",a='"',l=a+a,c=!1,u=null,p=!1;!function(){if("object"==typeof t){if("string"!=typeof t.delimiter||i.BAD_DELIMITERS.filter((function(e){return-1!==t.delimiter.indexOf(e)})).length||(o=t.delimiter),("boolean"==typeof t.quotes||"function"==typeof t.quotes||Array.isArray(t.quotes))&&(n=t.quotes),"boolean"!=typeof t.skipEmptyLines&&"string"!=typeof t.skipEmptyLines||(c=t.skipEmptyLines),"string"==typeof t.newline&&(s=t.newline),"string"==typeof t.quoteChar&&(a=t.quoteChar),"boolean"==typeof t.header&&(r=t.header),Array.isArray(t.columns)){if(0===t.columns.length)throw new Error("Option columns is empty");u=t.columns}void 0!==t.escapeChar&&(l=t.escapeChar+a),("boolean"==typeof t.escapeFormulae||t.escapeFormulae instanceof RegExp)&&(p=t.escapeFormulae instanceof RegExp?t.escapeFormulae:/^[=+\-@\t\r].*$/)}}();var d=new RegExp(h(a),"g");if("string"==typeof e&&(e=JSON.parse(e)),Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return f(null,e,c);if("object"==typeof e[0])return f(u||Object.keys(e[0]),e,c)}else if("object"==typeof e)return"string"==typeof e.data&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||(e.fields=e.meta&&e.meta.fields||u),e.fields||(e.fields=Array.isArray(e.data[0])?e.fields:"object"==typeof e.data[0]?Object.keys(e.data[0]):[]),Array.isArray(e.data[0])||"object"==typeof e.data[0]||(e.data=[e.data])),f(e.fields||[],e.data||[],c);throw new Error("Unable to serialize unrecognized input");function f(e,t,n){var i="";"string"==typeof e&&(e=JSON.parse(e)),"string"==typeof t&&(t=JSON.parse(t));var a=Array.isArray(e)&&0=this._config.preview;if(r)t.postMessage({results:a,workerId:i.WORKER_ID,finished:c});else if(A(this._config.chunk)&&!n){if(this._config.chunk(a,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);a=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(a.data),this._completeResults.errors=this._completeResults.errors.concat(a.errors),this._completeResults.meta=a.meta),this._completed||!c||!A(this._config.complete)||a&&a.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),c||a&&a.meta.paused||this._nextChunk(),a}this._halted=!0},this._sendError=function(e){A(this._config.error)?this._config.error(e):r&&this._config.error&&t.postMessage({workerId:i.WORKER_ID,error:e,finished:!1})}}function c(e){var t;(e=e||{}).chunkSize||(e.chunkSize=i.RemoteChunkSize),l.call(this,e),this._nextChunk=n?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(t=new XMLHttpRequest,this._config.withCredentials&&(t.withCredentials=this._config.withCredentials),n||(t.onload=b(this._chunkLoaded,this),t.onerror=b(this._chunkError,this)),t.open(this._config.downloadRequestBody?"POST":"GET",this._input,!n),this._config.downloadRequestHeaders){var e=this._config.downloadRequestHeaders;for(var r in e)t.setRequestHeader(r,e[r])}if(this._config.chunkSize){var o=this._start+this._config.chunkSize-1;t.setRequestHeader("Range","bytes="+this._start+"-"+o)}try{t.send(this._config.downloadRequestBody)}catch(e){this._chunkError(e.message)}n&&0===t.status&&this._chunkError()}},this._chunkLoaded=function(){4===t.readyState&&(t.status<200||400<=t.status?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:t.responseText.length,this._finished=!this._config.chunkSize||this._start>=function(e){var t=e.getResponseHeader("Content-Range");return null===t?-1:parseInt(t.substring(t.lastIndexOf("/")+1))}(t),this.parseChunk(t.responseText)))},this._chunkError=function(e){var n=t.statusText||e;this._sendError(new Error(n))}}function u(e){var t,n;(e=e||{}).chunkSize||(e.chunkSize=i.LocalChunkSize),l.call(this,e);var r="undefined"!=typeof FileReader;this.stream=function(e){this._input=e,n=e.slice||e.webkitSlice||e.mozSlice,r?((t=new FileReader).onload=b(this._chunkLoaded,this),t.onerror=b(this._chunkError,this)):t=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(t.error)}}function p(e){var t;l.call(this,e=e||{}),this.stream=function(e){return t=e,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var e,n=this._config.chunkSize;return n?(e=t.substring(0,n),t=t.substring(n)):(e=t,t=""),this._finished=!t,this.parseChunk(e)}}}function d(e){l.call(this,e=e||{});var t=[],n=!0,r=!1;this.pause=function(){l.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){l.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(e){this._input=e,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){r&&1===t.length&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):n=!0},this._streamData=b((function(e){try{t.push("string"==typeof e?e:e.toString(this._config.encoding)),n&&(n=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(e){this._streamError(e)}}),this),this._streamError=b((function(e){this._streamCleanUp(),this._sendError(e)}),this),this._streamEnd=b((function(){this._streamCleanUp(),r=!0,this._streamData("")}),this),this._streamCleanUp=b((function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)}),this)}function f(e){var t,n,r,o=Math.pow(2,53),s=-o,a=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,l=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,c=this,u=0,p=0,d=!1,f=!1,g=[],y={data:[],errors:[],meta:{}};if(A(e.step)){var _=e.step;e.step=function(t){if(y=t,w())C();else{if(C(),0===y.data.length)return;u+=t.data.length,e.preview&&u>e.preview?n.abort():(y.data=y.data[0],_(y,c))}}}function b(t){return"greedy"===e.skipEmptyLines?""===t.join("").trim():1===t.length&&0===t[0].length}function C(){return y&&r&&(E("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+i.DefaultDelimiter+"'"),r=!1),e.skipEmptyLines&&(y.data=y.data.filter((function(e){return!b(e)}))),w()&&function(){if(y)if(Array.isArray(y.data[0])){for(var t=0;w()&&t=g.length?"__parsed_extra":g[r]),e.transform&&(i=e.transform(i,s)),i=S(s,i),"__parsed_extra"===s?(o[s]=o[s]||[],o[s].push(i)):o[s]=i}return e.header&&(r>g.length?E("FieldMismatch","TooManyFields","Too many fields: expected "+g.length+" fields but parsed "+r,p+n):r=r.length/2?"\r\n":"\r"}(o,l)),r=!1,e.delimiter)A(e.delimiter)&&(e.delimiter=e.delimiter(o),y.meta.delimiter=e.delimiter);else{var c=function(t,n,r,o,s){var a,l,c,u;s=s||[",","\t","|",";",i.RECORD_SEP,i.UNIT_SEP];for(var p=0;p=a)return $(!0)}else for(B=u,u++;;){if(-1===(B=i.indexOf(t,B+1)))return f||C.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:b.length,index:u}),W();if(B===m-1)return W(i.substring(u,B).replace(j,t));if(t!==c||i[B+1]!==c){if(t===c||0===B||i[B-1]!==c){-1!==M&&M=a)return $(!0);break}C.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:b.length,index:u}),B++}}else B++}return W();function z(e){b.push(e),S=u}function H(e){var t=0;if(-1!==e){var n=i.substring(B+1,e);n&&""===n.trim()&&(t=n.length)}return t}function W(e){return f||(void 0===e&&(e=i.substring(u)),w.push(e),u=m,z(w),v&&V()),$()}function G(e){u=e,z(w),w=[],U=i.indexOf(r,u)}function $(e){return{data:b,errors:C,meta:{delimiter:n,linebreak:r,aborted:p,truncated:!!e,cursor:S+(d||0)}}}function V(){s($()),b=[],C=[]}},this.abort=function(){p=!0},this.getCharIndex=function(){return u}}function g(e){var t=e.data,n=o[t.workerId],r=!1;if(t.error)n.userError(t.error,t.file);else if(t.results&&t.results.data){var s={abort:function(){r=!0,y(t.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:_,resume:_};if(A(n.userStep)){for(var i=0;i{"use strict";var r=n(7200);function o(){}function s(){}s.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,s,i){if(i!==r){var a=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw a.name="Invariant Violation",a}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:s,resetWarningCache:o};return n.PropTypes=n,n}},900:(e,t,n)=>{e.exports=n(7336)()},7200:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4108:(e,t,n)=>{"use strict";var r=n(1280),o=Symbol.for("react.element"),s=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,a=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var r,s={},c=null,u=null;for(r in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)i.call(t,r)&&!l.hasOwnProperty(r)&&(s[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===s[r]&&(s[r]=t[r]);return{$$typeof:o,type:e,key:c,ref:u,props:s,_owner:a.current}}t.Fragment=s,t.jsx=c,t.jsxs=c},7e3:(e,t,n)=>{"use strict";e.exports=n(4108)},3736:e=>{e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var s=Object.keys(e),i=Object.keys(t);if(s.length!==i.length)return!1;for(var a=Object.prototype.hasOwnProperty.bind(t),l=0;l{"use strict";var t=[];function n(e){for(var n=-1,r=0;r{"use strict";var t={};e.exports=function(e,n){var r=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},2940:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},9516:(e,t,n)=>{"use strict";e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},7020:e=>{"use strict";e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var o=void 0!==n.layer;o&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,o&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var s=n.sourceMap;s&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(s))))," */")),t.styleTagTransform(r,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},9296:e=>{"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},3376:(e,t,n)=>{"use strict";n.d(t,{cp:()=>Ut});var r=function(){return r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n2||W(D)>3?"":" "}function V(e,t){for(;--t&&F()&&!(D<48||D>102||D>57&&D<65||D>70&&D<97););return H(e,z()+(t<6&&32==q()&&32==F()))}function Y(e){for(;F();)switch(D){case e:return L;case 34:case 39:34!==e&&39!==e&&Y(D);break;case 40:41===e&&Y(e);break;case 92:F()}return L}function K(e,t){for(;F()&&e+D!==57&&(e+D!==84||47!==q()););return"/*"+H(t,L-1)+"*"+v(47===e?e:F())}function X(e){for(;!W(q());)F();return H(e,L)}function Q(e,t){for(var n="",r=0;r6)switch(E(e,t+1)){case 109:if(45!==E(e,t+4))break;case 102:return w(e,/(.+:)(.+)-([^]+)/,"$1"+p+"$2-$3$1"+u+(108==E(e,t+3)?"$3":"$2-$3"))+e;case 115:return~S(e,"stretch")?Z(w(e,"stretch","fill-available"),t,n)+e:e}break;case 5152:case 5920:return w(e,/(.+?):(\d+)(\s*\/\s*(span)?\s*(\d+))?(.*)/,(function(t,n,r,o,s,i,a){return c+n+":"+r+a+(o?c+n+"-span:"+(s?i:+i-+r)+a:"")+e}));case 4949:if(121===E(e,t+6))return w(e,":",":"+p)+e;break;case 6444:switch(E(e,45===E(e,14)?18:11)){case 120:return w(e,/(.+:)([^;\s!]+)(;|(\s+)?!.+)?/,"$1"+p+(45===E(e,14)?"inline-":"")+"box$3$1"+p+"$2$3$1"+c+"$2box$3")+e;case 100:return w(e,":",":"+c)+e}break;case 5719:case 2647:case 2135:case 3927:case 2391:return w(e,"scroll-","scroll-snap-")+e}return e}function ee(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case h:return void(e.return=Z(e.value,e.length,n));case g:return Q([j(e,{value:w(e.value,"@","@"+p)})],r);case f:if(e.length)return function(e,t){return e.map(t).join("")}(n=e.props,(function(t){switch(C(t,r=/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":B(j(e,{props:[w(t,/:(read-\w+)/,":"+u+"$1")]})),B(j(e,{props:[t]})),b(e,{props:I(n,r)});break;case"::placeholder":B(j(e,{props:[w(t,/:(plac\w+)/,":"+p+"input-$1")]})),B(j(e,{props:[w(t,/:(plac\w+)/,":"+u+"$1")]})),B(j(e,{props:[w(t,/:(plac\w+)/,c+"input-$1")]})),B(j(e,{props:[t]})),b(e,{props:I(n,r)})}return""}))}}function te(e){return function(e){return M="",e}(ne("",null,null,null,[""],e=function(e){return N=P=1,O=T(M=e),L=0,[]}(e),0,[0],e))}function ne(e,t,n,r,o,s,i,a,l){for(var c=0,u=0,p=i,d=0,f=0,h=0,m=1,g=1,y=1,_=0,b="",A=o,C=s,x=r,R=b;g;)switch(h=_,_=F()){case 40:if(108!=h&&58==E(R,p-1)){-1!=S(R+=w(G(_),"&","&\f"),"&\f")&&(y=-1);break}case 34:case 39:case 91:R+=G(_);break;case 9:case 10:case 13:case 32:R+=$(h);break;case 92:R+=V(z()-1,7);continue;case 47:switch(q()){case 42:case 47:k(oe(K(F(),z()),t,n,l),l);break;default:R+="/"}break;case 123*m:a[c++]=T(R)*y;case 125*m:case 59:case 0:switch(_){case 0:case 125:g=0;case 59+u:-1==y&&(R=w(R,/\f/g,"")),f>0&&T(R)-p&&k(f>32?se(R+";",r,n,p-1,l):se(w(R," ","")+";",r,n,p-2,l),l);break;case 59:R+=";";default:if(k(x=re(R,t,n,c,u,o,a,b,A=[],C=[],p,s),s),123===_)if(0===u)ne(R,t,x,x,A,s,p,a,C);else switch(99===d&&110===E(R,3)?100:d){case 100:case 108:case 109:case 115:ne(e,x,x,r&&k(re(e,x,x,0,0,o,a,b,o,A=[],p,C),C),o,C,p,a,r?A:C);break;default:ne(R,x,x,x,[""],C,0,a,C)}}c=u=f=0,m=y=1,b=R="",p=i;break;case 58:p=1+T(R),f=h;default:if(m<1)if(123==_)--m;else if(125==_&&0==m++&&125==(D=L>0?E(M,--L):0,P--,10===D&&(P=1,N--),D))continue;switch(R+=v(_),_*m){case 38:y=u>0?1:(R+="\f",-1);break;case 44:a[c++]=(T(R)-1)*y,y=1;break;case 64:45===q()&&(R+=G(F())),d=q(),u=p=T(b=R+=X(z())),_++;break;case 45:45===h&&2==T(R)&&(m=0)}}return s}function re(e,t,n,r,o,s,i,a,l,c,u,p){for(var d=o-1,h=0===o?s:[""],m=R(h),g=0,y=0,v=0;g0?h[b]+" "+C:w(C,/&\f/g,h[b])))&&(l[v++]=S);return U(e,t,n,0===o?f:a,l,c,u,p)}function oe(e,t,n,r){return U(e,t,n,d,v(D),x(e,2,-2),0,r)}function se(e,t,n,r,o){return U(e,t,n,h,x(e,0,r),x(e,r+1,-1),r,o)}const ie={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};var ae="undefined"!=typeof process&&void 0!==process.env&&(process.env.REACT_APP_SC_ATTR||process.env.SC_ATTR)||"data-styled",le="undefined"!=typeof window&&"HTMLElement"in window,ce=Boolean("boolean"==typeof SC_DISABLE_SPEEDY?SC_DISABLE_SPEEDY:"undefined"!=typeof process&&void 0!==process.env&&void 0!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&""!==process.env.REACT_APP_SC_DISABLE_SPEEDY?"false"!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&process.env.REACT_APP_SC_DISABLE_SPEEDY:"undefined"!=typeof process&&void 0!==process.env&&void 0!==process.env.SC_DISABLE_SPEEDY&&""!==process.env.SC_DISABLE_SPEEDY&&"false"!==process.env.SC_DISABLE_SPEEDY&&process.env.SC_DISABLE_SPEEDY),ue=(new Set,Object.freeze([])),pe=Object.freeze({}),de=new Set(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","track","u","ul","use","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"]),fe=/[!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~-]+/g,he=/(^-|-$)/g;function me(e){return e.replace(fe,"-").replace(he,"")}var ge=/(a)(d)/gi,ye=function(e){return String.fromCharCode(e+(e>25?39:97))};function _e(e){var t,n="";for(t=Math.abs(e);t>52;t=t/52|0)n=ye(t%52)+n;return(ye(t%52)+n).replace(ge,"$1-$2")}var ve,be=function(e,t){for(var n=t.length;n;)e=33*e^t.charCodeAt(--n);return e},Ae=function(e){return be(5381,e)};function Ce(e){return"string"==typeof e&&!0}var we="function"==typeof Symbol&&Symbol.for,Se=we?Symbol.for("react.memo"):60115,Ee=we?Symbol.for("react.forward_ref"):60112,xe={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},Te={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},Re={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},ke=((ve={})[Ee]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},ve[Se]=Re,ve);function Ie(e){return("type"in(t=e)&&t.type.$$typeof)===Se?Re:"$$typeof"in e?ke[e.$$typeof]:xe;var t}var Ne=Object.defineProperty,Pe=Object.getOwnPropertyNames,Oe=Object.getOwnPropertySymbols,Le=Object.getOwnPropertyDescriptor,De=Object.getPrototypeOf,Me=Object.prototype;function Ue(e,t,n){if("string"!=typeof t){if(Me){var r=De(t);r&&r!==Me&&Ue(e,r,n)}var o=Pe(t);Oe&&(o=o.concat(Oe(t)));for(var s=Ie(e),i=Ie(t),a=0;a0?" Args: ".concat(t.join(", ")):""))}var $e=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}return e.prototype.indexOfGroup=function(e){for(var t=0,n=0;n=this.groupSizes.length){for(var n=this.groupSizes,r=n.length,o=r;e>=o;)if((o<<=1)<0)throw Ge(16,"".concat(e));this.groupSizes=new Uint32Array(o),this.groupSizes.set(n),this.length=o;for(var s=r;s=this.length||0===this.groupSizes[e])return t;for(var n=this.groupSizes[e],r=this.indexOfGroup(e),o=r+n,s=r;s=0){var n=document.createTextNode(t);return this.element.insertBefore(n,this.nodes[e]||null),this.length++,!0}return!1},e.prototype.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},e.prototype.getRule=function(e){return e0&&(l+="".concat(e,","))})),r+="".concat(i).concat(a,'{content:"').concat(l,'"}').concat("/*!sc*/\n")},s=0;s0?".".concat(t):e},u=l.slice();u.push((function(e){e.type===f&&e.value.includes("&")&&(e.props[0]=e.props[0].replace(ut,n).replace(r,c))})),i.prefix&&u.push(ee),u.push(J);var p=function(e,o,s,a){void 0===o&&(o=""),void 0===s&&(s=""),void 0===a&&(a="&"),t=a,n=o,r=new RegExp("\\".concat(n,"\\b"),"g");var l=e.replace(pt,""),c=te(s||o?"".concat(s," ").concat(o," { ").concat(l," }"):l);i.namespace&&(c=dt(c,i.namespace));var p,d,f,h=[];return Q(c,(p=u.concat((f=function(e){return h.push(e)},function(e){e.root||(e=e.return)&&f(e)})),d=R(p),function(e,t,n,r){for(var o="",s=0;s="A"&&e<="Z"};function Ct(e){for(var t="",n=0;n>>0);if(!t.hasNameForId(this.componentId,s)){var i=n(o,".".concat(s),void 0,this.componentId);t.insertRules(this.componentId,s,i)}r=Fe(r,s),this.staticRulesId=s}else{for(var a=be(this.baseHash,n.hash),l="",c=0;c>>0);t.hasNameForId(this.componentId,d)||t.insertRules(this.componentId,d,n(l,".".concat(d),void 0,this.componentId)),r=Fe(r,d)}}return r},e}(),kt=i().createContext(void 0);kt.Consumer;var It={};function Nt(e,t,n){var o=Be(e),a=e,l=!Ce(e),c=t.attrs,u=void 0===c?ue:c,p=t.componentId,d=void 0===p?function(e,t){var n="string"!=typeof e?"sc":me(e);It[n]=(It[n]||0)+1;var r="".concat(n,"-").concat(function(e){return _e(Ae(e)>>>0)}("6.1.1"+n+It[n]));return t?"".concat(t,"-").concat(r):r}(t.displayName,t.parentComponentId):p,f=t.displayName,h=void 0===f?function(e){return Ce(e)?"styled.".concat(e):"Styled(".concat(function(e){return e.displayName||e.name||"Component"}(e),")")}(e):f,m=t.displayName&&t.componentId?"".concat(me(t.displayName),"-").concat(t.componentId):t.componentId||d,g=o&&a.attrs?a.attrs.concat(u).filter(Boolean):u,y=t.shouldForwardProp;if(o&&a.shouldForwardProp){var _=a.shouldForwardProp;if(t.shouldForwardProp){var v=t.shouldForwardProp;y=function(e,t){return _(e,t)&&v(e,t)}}else y=_}var b=new Rt(n,m,o?a.componentStyle:void 0);function A(e,t){return function(e,t,n){var o=e.attrs,a=e.componentStyle,l=e.defaultProps,c=e.foldedComponentIds,u=e.styledComponentId,p=e.target,d=i().useContext(kt),f=_t(),h=e.shouldForwardProp||f.shouldForwardProp,m=function(e,t,n){for(var o,s=r(r({},t),{className:void 0,theme:n}),i=0;i2&&ct.registerId(this.componentId+e),this.removeStyles(e,n),this.createStyles(e,t,n,r)}}(),function(){function e(){var e=this;this._emitSheetCSS=function(){var t=e.instance.toString(),n=nt(),r=qe([n&&'nonce="'.concat(n,'"'),"".concat(ae,'="true"'),"".concat("data-styled-version",'="').concat("6.1.1",'"')].filter(Boolean)," ");return"")},this.getStyleTags=function(){if(e.sealed)throw Ge(2);return e._emitSheetCSS()},this.getStyleElement=function(){var t;if(e.sealed)throw Ge(2);var n=((t={})[ae]="",t["data-styled-version"]="6.1.1",t.dangerouslySetInnerHTML={__html:e.instance.toString()},t),o=nt();return o&&(n.nonce=o),[i().createElement("style",r({},n,{key:"sc-0-0"}))]},this.seal=function(){e.sealed=!0},this.instance=new ct({isServer:!0}),this.sealed=!1}e.prototype.collectStyles=function(e){if(this.sealed)throw Ge(2);return i().createElement(vt,{sheet:this.instance},e)},e.prototype.interleaveWithNodeStream=function(e){throw Ge(3)}}(),"__sc-".concat(ae,"__")},4928:(e,t,n)=>{"use strict";n.d(t,{default:()=>p});var r=n(7e3),o=n(900),s=n.n(o),i=n(3376),a=n(7720);const l=i.cp.div`
+ height: auto;
+ width: 100%;
+`,c=({src:e})=>(0,r.jsx)(l,{children:(0,r.jsx)("audio",{className:"edit-audio-preview",controls:!0,src:e})});c.propTypes={src:s().string.isRequired};const u=({className:e,onReset:t,onUpdate:n,onUpdateURL:o,value:s,valueURL:i})=>(0,r.jsx)(a.MediaPicker,{allowedTypes:["audio"],className:e,icon:"format-audio",onReset:t,onUpdate:n,onUpdateURL:o,preview:c,value:s,valueURL:i});u.defaultProps={className:"",onUpdateURL:null,valueURL:""},u.propTypes={className:s().string,onReset:s().func.isRequired,onUpdate:s().func.isRequired,onUpdateURL:s().func,value:s().number.isRequired,valueURL:s().string};const p=u},2312:(e,t,n)=>{"use strict";n.d(t,{default:()=>l});var r=n(7e3),o=n(900),s=n.n(o),i=n(7287);const a=({label:e,value:t,options:n,onChange:o})=>(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.BaseControl,{label:e}),n.map((e=>(0,r.jsx)(i.CheckboxControl,{label:e.label,checked:t.includes(e.value),onChange:n=>{o(n?[...t,e.value]:[...t.filter((t=>t!==e.value))])}})))]});a.propTypes={label:s().string.isRequired,value:s().arrayOf(s().string).isRequired,options:s().arrayOf(s().shape({label:s().string.isRequired,value:s().string.isRequired})).isRequired,onChange:s().func.isRequired};const l=a},8312:(e,t,n)=>{"use strict";n.d(t,{default:()=>u});var r=n(7e3),o=n(1280),s=n.n(o),i=n(3396),a=n(900),l=n.n(a),c=n(5328);class u extends s().PureComponent{static handleSubmit(e){e.preventDefault()}constructor(e){super(e),this.handleChange=this.handleChange.bind(this),this.state={error:"",success:""}}handleChange(e){const{attributeName:t,callback:n,setAttributes:r}=this.props;e.target.files&&e.target.files[0]&&(0,c.parseCSVFile)(e.target.files[0]).then((e=>n?n(e):e)).then((e=>{Array.isArray(e)&&e.length>0?(this.setState({error:"",success:(0,i.__)("Successfully read CSV data.","alley-scripts")}),r({[t]:JSON.stringify(e)})):this.setState({error:(0,i.__)("Could not map CSV data. Please check the source file to ensure that it has the correct structure.","alley-scripts"),success:""})})).catch((e=>{this.setState({error:e,success:""})}))}render(){const{error:e="",success:t=""}=this.state;return(0,r.jsxs)("div",{className:"alley-scripts-block-csv-uploader",children:[(0,r.jsx)("h2",{children:(0,i.__)("Upload CSV","alley-scripts")}),(0,r.jsxs)("form",{onSubmit:this.handleSubmit,children:[""!==e?(0,r.jsxs)("div",{style:{color:"#c00"},children:[(0,r.jsx)("strong",{children:(0,i.__)("Error:","alley-scripts")})," ",e]}):null,""!==t?(0,r.jsxs)("div",{style:{color:"#0c0"},children:[(0,r.jsx)("strong",{children:(0,i.__)("Success:","alley-scripts")})," ",t]}):null,(0,r.jsx)("div",{children:(0,r.jsxs)("label",{htmlFor:"alley-scripts-block-csv-uploader-file",children:[(0,r.jsx)("p",{children:(0,i.__)("Select a file to load data.","alley-scripts")}),(0,r.jsx)("input",{id:"alley-scripts-block-csv-uploader-file",onChange:this.handleChange,type:"file"})]})})]})]})}}u.defaultProps={callback:null},u.propTypes={attributeName:l().string.isRequired,callback:l().func,setAttributes:l().func.isRequired}},8348:(e,t,n)=>{"use strict";n.d(t,{default:()=>d});var r=n(7e3),o=n(3396),s=n(900),i=n.n(s),a=n(3376),l=n(7720);const c=a.cp.div`
+ box-sizing: border-box;
+ flex-shrink: 0;
+ height: auto;
+ max-height: 1450px;
+ max-width: 1450px;
+ min-height: 20px;
+ min-width: 20px;
+ position: relative;
+ width: auto;
+`,u=({src:e})=>(0,r.jsx)(c,{children:(0,r.jsx)("img",{alt:(0,o.__)("Edit image","alley-scripts"),className:"edit-image-preview",src:e,title:(0,o.__)("Edit image","alley-scripts")})});u.propTypes={src:i().string.isRequired};const p=({className:e,imageSize:t,displayControlsInToolbar:n,onReset:o,onUpdate:s,onUpdateURL:i,value:a,valueURL:c})=>(0,r.jsx)(l.MediaPicker,{allowedTypes:["image"],className:e,icon:"format-image",imageSize:t,displayControlsInToolbar:n,onReset:o,onUpdate:s,onUpdateURL:i,preview:u,value:a,valueURL:c});p.defaultProps={className:"",imageSize:"thumbnail",displayControlsInToolbar:!1,onUpdateURL:null,valueURL:""},p.propTypes={className:i().string,imageSize:i().string,displayControlsInToolbar:i().bool,onReset:i().func.isRequired,onUpdate:i().func.isRequired,onUpdateURL:i().func,value:i().number.isRequired,valueURL:i().string};const d=p},7720:(e,t,n)=>{"use strict";n.d(t,{AudioPicker:()=>r.default,CSVUploader:()=>s.default,Checkboxes:()=>o.default,ImagePicker:()=>i.default,MediaPicker:()=>a.default,PostPicker:()=>c.default,PostSelector:()=>u.default,SafeHtml:()=>l.default,Selector:()=>p.default,TermSelector:()=>d.default,VideoPicker:()=>f.default});var r=n(4928),o=n(2312),s=n(8312),i=n(8348),a=n(5680),l=n(9160),c=n(4808),u=n(8800),p=n(9064),d=n(668),f=n(5316)},5680:(e,t,n)=>{"use strict";n.d(t,{default:()=>m});var r=n(7e3),o=n(900),s=n.n(o),i=n(3376),a=n(9528),l=n(7287),c=n(7752),u=n(3396),p=n(5328);const d=i.cp.div`
+ display: block;
+ position: relative;
+`,f=i.cp.div`
+ background: white;
+ border: 1px solid black;
+ padding: 1em;
+`,h=({allowedTypes:e,className:t,icon:n,imageSize:o,displayControlsInToolbar:s,onReset:i,onUpdate:h,onUpdateURL:m,preview:g,value:y,valueURL:_})=>{const{media:v}=(0,c.useSelect)((e=>({media:y?e("core").getMedia(y):void 0})),[y]);if(0!==y&&null===v)return(0,r.jsx)(l.Spinner,{});const b=v?(0,p.getMediaUrl)(v,o):_;return b?(0,r.jsxs)(d,{className:t,children:[g?(0,r.jsx)(g,{src:b}):(0,r.jsxs)(f,{className:"alley-scripts-media-picker__preview",children:[(0,r.jsx)("p",{children:(0,u.__)("Selected file:","alley-scripts")}),(0,r.jsx)("p",{children:(0,r.jsx)("a",{href:b,children:b})})]}),s?(0,r.jsx)(a.BlockControls,{group:"other",children:(0,r.jsx)(a.MediaReplaceFlow,{name:(0,u.__)("Edit Media","alley-scripts"),mediaId:y,mediaURL:b,allowedTypes:e,onSelect:h,onSelectURL:m,children:(0,r.jsx)(l.ToolbarButton,{isDestructive:!0,text:(0,u.__)("Remove","alley-scripts"),onClick:i})})}):(0,r.jsx)(l.Button,{variant:"primary",onClick:i,children:(0,u.__)("Reset","alley-scripts")})]}):(0,r.jsx)(d,{className:t,children:(0,r.jsx)(a.MediaPlaceholder,{allowedTypes:e,disableMediaButtons:!!_,icon:(0,r.jsx)(a.BlockIcon,{icon:n}),onSelect:h,onSelectURL:m,value:{id:y,src:b}})})};h.defaultProps={allowedTypes:[],className:"",icon:"format-aside",imageSize:"thumbnail",displayControlsInToolbar:!1,onUpdateURL:null,preview:null,valueURL:""},h.propTypes={allowedTypes:s().arrayOf(s().string),className:s().string,icon:s().string,imageSize:s().string,displayControlsInToolbar:s().bool,onReset:s().func.isRequired,onUpdate:s().func.isRequired,onUpdateURL:s().func,preview:s().element,value:s().number.isRequired,valueURL:s().string};const m=h},4808:(e,t,n)=>{"use strict";n.d(t,{default:()=>F});var r=n(7e3),o=n(8496),s=n(3376),i=n(7287),a=n(3396),l=n(7204),c=n(2e3),u=n(2108),p=n.n(u),d=n(7020),f=n.n(d),h=n(7240),m=n.n(h),g=n(9516),y=n.n(g),_=n(2940),v=n.n(_),b=n(9296),A=n.n(b),C=n(9680),w={};w.styleTagTransform=A(),w.setAttributes=y(),w.insert=m().bind(null,"head"),w.domAPI=f(),w.insertStyleElement=v(),p()(C.c,w),C.c&&C.c.locals&&C.c.locals;var S=n(4632),E=n.n(S),x=n(6484),T=n.n(x),R=n(7424),k={};k.styleTagTransform=A(),k.setAttributes=y(),k.insert=m().bind(null,"head"),k.domAPI=f(),k.insertStyleElement=v(),p()(R.c,k),R.c&&R.c.locals&&R.c.locals;const I=window.wp.htmlEntities;var N=n(9160);const P=s.cp.div`
+ align-items: center;
+ gap: 4px;
+ overflow-wrap: anywhere;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ padding: 0.5rem 0.75rem;
+`,O=({title:e,postType:t,attachmentID:n})=>{const o=(0,c.useMedia)(n),s=o?.media_details?.sizes?.thumbnail?.source_url,i=o?.alt_text??"";return(0,r.jsxs)(P,{children:[s?(0,r.jsx)("img",{style:{maxWidth:"100%",height:"auto"},loading:"lazy",src:s,alt:i}):null,(0,r.jsx)(N.default,{html:(0,I.decodeEntities)(e),className:"post-picker-result-title",tag:"strong"}),(0,a.sprintf)(" (%s)",t)]})},L=({baseUrl:e,searchRender:t,selected:n,setSelected:s,suppressPostIds:c=[]})=>{const[u,p]=(0,o.useState)(!1),[d,f]=(0,o.useState)([]),[h,m]=(0,o.useState)(!1),[g,y]=(0,o.useState)(0),[_,v]=(0,o.useState)({searchValue:"",page:1}),b=(0,o.useCallback)((async(t,n=!1)=>{if(t.searchValue&&t.searchValue.length<=2)return;const r=function(){let n=(0,l.addQueryArgs)(e,{page:t.page,_embed:1,exclude:c.join(",")});return t.searchValue&&t.searchValue.length>2&&(n=(0,l.addQueryArgs)(n,{search:t.searchValue})),n}();p(!0);const o=await E()({path:r,parse:!1});y(parseInt(o.headers.get("X-WP-TotalPages"),10));const s=await o.json();let i=s;t.page>1&&(i=[...d,...s]),n||(f(i),p(!1))}),[d,e,c]);return(0,o.useEffect)((()=>{let e=!1;return h||(m(!0),b(_,e)),()=>{e=!0}}),[b,h,_]),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.TextControl,{value:_.searchValue,placeholder:(0,a.__)("Search...","alley-scripts"),label:(0,a.__)("Search","alley-scripts"),onChange:e=>{const t={..._,searchValue:e,page:1};v(t),b(t)}}),(0,r.jsxs)("div",{className:"alley-scripts-post-picker__post-list",children:[d?d.map((e=>(0,r.jsx)(i.Button,{className:T()({"alley-scripts-post-picker__post":!0,"is-selected":e.id===n}),onClick:()=>s(e.id),children:t?t(e):(0,r.jsx)(O,{title:e.title,postType:e.subtype,attachmentID:e?._embedded?.self[0]?.featured_media})},e.id))):null,u?(0,r.jsx)(i.Spinner,{}):null,g>0&&_.page{const e={..._,page:_.page+1};v(e),b(e)},children:(0,a.__)("Load More","alley-scripts")})}):null]})]})},D=({baseUrl:e,closeModal:t,modalTitle:n,onUpdate:s,searchRender:l,suppressPostIds:c=[]})=>{const[u,p]=(0,o.useState)();return(0,r.jsxs)(i.Modal,{className:"alley-scripts-post-picker__modal",isDismissible:!0,title:n,onRequestClose:t,closeButtonLabel:"Close",children:[(0,r.jsx)(L,{baseUrl:e,selected:u??0,setSelected:p,searchRender:l,suppressPostIds:c}),(0,r.jsxs)("div",{className:"alley-scripts-post-picker__buttons",children:[(0,r.jsx)(i.Button,{variant:"secondary",onClick:t,children:(0,a.__)("Cancel","alley-scripts")}),(0,r.jsx)(i.Button,{variant:"primary",onClick:()=>{u&&(s(u),t())},disabled:!u,children:(0,a.__)("Select","alley-scripts")})]})]})};var M=n(3800),U={};U.styleTagTransform=A(),U.setAttributes=y(),U.insert=m().bind(null,"head"),U.domAPI=f(),U.insertStyleElement=v(),p()(M.c,U),M.c&&M.c.locals&&M.c.locals;const j=s.cp.div`
+ display: block;
+ position: relative;
+`,B=s.cp.div`
+ border: 1px solid #eee;
+ display: flex;
+ flex-direction: column;
+ margin: 5px 0;
+ padding: 0.5rem 0.75rem;
+ text-align: center;
+`,F=({allowedTypes:e,className:t,getPostType:n,modalTitle:s=(0,a.__)("Select Post","alley-scripts"),onReset:u,onUpdate:p,params:d={},previewRender:f,replaceText:h=(0,a.__)("Replace","alley-scripts"),resetText:m=(0,a.__)("Reset","alley-scripts"),searchEndpoint:g="/wp/v2/search",searchRender:y,selectText:_=(0,a.__)("Select","alley-scripts"),suppressPostIds:v=[],title:b="",value:A=0})=>{const[C,w]=(0,o.useState)(!1),S=(0,l.addQueryArgs)(g,{type:"post",subtype:e??"any",...d}),E=(0,c.usePostById)(A,n),{featured_media:x,title:{rendered:T=""}={},type:R=""}=E||{},k=()=>{w(!0)},I=()=>(0,r.jsxs)(i.ButtonGroup,{children:[(0,r.jsx)(i.Button,{variant:"secondary",onClick:u,style:{margin:"0 4px"},children:m}),(0,r.jsx)(i.Button,{variant:"secondary",onClick:k,style:{margin:"0 4px"},children:h})]});return 0!==A&&null===E?(0,r.jsx)(i.Spinner,{}):(0,r.jsxs)(j,{className:t,children:[b?(0,r.jsx)("h4",{children:b}):null,0!==A&&void 0===E?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.Notice,{status:"error",isDismissible:!1,className:"post-picker-notice",children:(0,r.jsx)("p",{children:(0,a.sprintf)((0,a.__)("Post %d is no longer available; it has been unpublished or deleted","alley-scripts"),A)})}),I()]}):null,0!==A&&void 0!==E?(0,r.jsxs)(r.Fragment,{children:[void 0!==f?f(E):(0,r.jsx)(B,{children:(0,r.jsx)(O,{title:T,postType:R,attachmentID:x})}),I()]}):null,0===A?(0,r.jsx)(i.Button,{onClick:k,variant:"secondary",children:_}):null,C?(0,r.jsx)(D,{closeModal:()=>{w(!1)},baseUrl:S,modalTitle:s,onUpdate:p,searchRender:y,suppressPostIds:v}):null]})}},8800:(e,t,n)=>{"use strict";n.d(t,{default:()=>c});var r=n(7e3),o=n(900),s=n.n(o),i=n(3396),a=n(7720);const l=({className:e,emptyLabel:t,label:n,maxPages:o,multiple:s,onSelect:i,placeholder:l,subTypes:c,selected:u,threshold:p})=>(0,r.jsx)(a.Selector,{type:"post",className:e,emptyLabel:t,label:n,maxPages:o,multiple:s,onSelect:i,placeholder:l,subTypes:c,selected:u,threshold:p});l.defaultProps={className:"",emptyLabel:(0,i.__)("No posts found","alley-scripts"),label:(0,i.__)("Search for posts","alley-scripts"),maxPages:5,multiple:!1,placeholder:(0,i.__)("Search for posts","alley-scripts"),subTypes:[],selected:[],threshold:3},l.propTypes={className:s().string,emptyLabel:s().string,label:s().string,maxPages:s().number,multiple:s().bool,onSelect:s().func.isRequired,placeholder:s().string,subTypes:s().arrayOf(s().string),selected:s().arrayOf([s().shape({id:s().number,title:s().string})]),threshold:s().number};const c=l},9160:(e,t,n)=>{"use strict";n.d(t,{default:()=>c});var r=n(7e3),o=n(6595),s=n.n(o),i=n(900),a=n.n(i);const l=({className:e,html:t,tag:n})=>(0,r.jsx)(n,{className:e,dangerouslySetInnerHTML:{__html:s().sanitize(t)}});l.defaultProps={className:""},l.propTypes={className:a().string,html:a().string.isRequired,tag:a().string.isRequired};const c=l},9064:(e,t,n)=>{"use strict";n.d(t,{default:()=>j});var r=n(7e3),o=n(900),s=n.n(o),i=n(8496),a=n(4632),l=n.n(a),c=n(6484),u=n.n(c),p=n(7287),d=n(3396),f=n(7204);const h={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let m;const g=new Uint8Array(16);function y(){if(!m&&(m="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!m))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return m(g)}const _=[];for(let e=0;e<256;++e)_.push((e+256).toString(16).slice(1));const v=function(e,t,n){if(h.randomUUID&&!t&&!e)return h.randomUUID();const r=(e=e||{}).random||(e.rng||y)();if(r[6]=15&r[6]|64,r[8]=63&r[8]|128,t){n=n||0;for(let e=0;e<16;++e)t[n+e]=r[e];return t}return function(e,t=0){return _[e[t+0]]+_[e[t+1]]+_[e[t+2]]+_[e[t+3]]+"-"+_[e[t+4]]+_[e[t+5]]+"-"+_[e[t+6]]+_[e[t+7]]+"-"+_[e[t+8]]+_[e[t+9]]+"-"+_[e[t+10]]+_[e[t+11]]+_[e[t+12]]+_[e[t+13]]+_[e[t+14]]+_[e[t+15]]}(r)};var b=n(2e3);const A=({emptyLabel:e,error:t,id:n,isOpen:o,labelledbyId:s,loading:i,onSelect:a,options:l,selectedItems:c,threshold:f,value:h})=>{if(!i&&(""===h||f>h.length))return null;let m="",g="";return i?(m="loading",g=(0,d.__)("Loading...","alley-scripts")):t?(m="error",g=t):i||0!==l.length||(m="no-posts",g=e),i||!i&&(h&&0===l.length||t)?(0,r.jsx)("div",{"aria-busy":!0,className:u()("autocomplete__dropdown",{"autocomplete__dropdown--is-open":o}),children:(0,r.jsx)("div",{className:u()("autocomplete__dropdown--notice",`autocomplete__${m}`),children:g})}):(0,r.jsx)("div",{className:u()("autocomplete__dropdown",{"autocomplete__dropdown--is-open":o}),children:(0,r.jsx)("ul",{role:"listbox","aria-labelledby":s,id:n,className:u()("autocomplete__dropdown--results","autocomplete__list"),children:l.map((e=>(0,r.jsx)("li",{className:"autocomplete__list--item",children:(0,r.jsx)(p.Button,{onClick:()=>a(e),type:"button",disabled:c.some((t=>t.id===e.id)),isTertiary:!0,children:e.title})},e.id)))})})};A.propTypes={emptyLabel:s().string.isRequired,error:s().string.isRequired,id:s().string.isRequired,isOpen:s().bool.isRequired,labelledbyId:s().string.isRequired,loading:s().bool.isRequired,options:s().arrayOf(s().shape({label:s().string,value:s().string})).isRequired,onSelect:s().func.isRequired,selectedItems:s().shape([]).isRequired,threshold:s().number.isRequired,value:s().string.isRequired};const C=A;var w=n(2108),S=n.n(w),E=n(7020),x=n.n(E),T=n(7240),R=n.n(T),k=n(9516),I=n.n(k),N=n(2940),P=n.n(N),O=n(9296),L=n.n(O),D=n(5500),M={};M.styleTagTransform=L(),M.setAttributes=I(),M.insert=R().bind(null,"head"),M.domAPI=x(),M.insertStyleElement=P(),S()(D.c,M),D.c&&D.c.locals&&D.c.locals;const U=({type:e,className:t,emptyLabel:n,label:o,maxPages:s,multiple:a,onSelect:c,placeholder:d,subTypes:h,selected:m,threshold:g})=>{const y=v(),[_,A]=(0,i.useState)(""),[w,S]=(0,i.useState)([]),[E,x]=(0,i.useState)(!1),[T,R]=(0,i.useState)(!1),[k,I]=(0,i.useState)(""),[N,P]=(0,i.useState)([]),O=(0,i.useRef)(),L=(0,b.useDebounce)(k,750),D=(0,i.useCallback)((async(t=1)=>{if(L.length0?h.join(","):"any",type:e});await l()({path:r,parse:!1}).then((e=>{const t=parseInt(e.headers.get("X-WP-TotalPages"),10);return n=t>s?s:t,e.json()})).then((e=>{S((t=>[...t,...e])),R(!1),(n&&n>t||t>=1&&a&&N.length>0)&&D(t+1)})).catch((e=>A(e.message)))}),[L,e,s,a,h,N.length,g]);(0,i.useEffect)((()=>{P(m)}),[m]),(0,i.useEffect)((()=>{L&&g<=L.length?D():S([])}),[L,D,g]);const M=e=>{x(O.current.contains(e.target))},U=e=>{"Escape"===e.key&&x(!1)};(0,i.useEffect)((()=>(document.addEventListener("keydown",U),()=>document.removeEventListener("keydown",U)))),(0,i.useEffect)((()=>(O&&document.addEventListener("mousedown",M),()=>document.removeEventListener("mousedown",M))));const j=e=>{let t=[];if(N.some((t=>t.id===e.id))){const n=N.findIndex((t=>t.id===e.id));t=[...N.slice(0,n),...N.slice(n+1,N.length)]}else a?t=[...N,e]:(t=[e],x(!1));P(t),c(t)};return(0,r.jsx)("form",{className:"autocomplete__component",onSubmit:e=>e.preventDefault(),children:(0,r.jsxs)("div",{className:u()("components-base-control","autocomplete-base-control",t),ref:O,children:[(0,r.jsxs)("div",{"aria-expanded":E,"aria-haspopup":"listbox","aria-owns":`listbox-${y}`,className:u()("components-base-control__field","autocomplete-base-control__field"),role:"combobox",children:[(0,r.jsx)("label",{className:u()("components-base-control__label","autocomplete-base-control__label"),htmlFor:`autocomplete-${y}`,children:(0,r.jsx)("div",{children:o})}),N.length>0?(0,r.jsx)("ul",{role:"listbox","aria-labelledby":`autocomplete-${y}`,id:`selected-items-${y}`,className:u()("autocomplete__selection--results","autocomplete__selection-list"),children:N.map((e=>(0,r.jsx)("li",{className:"autocomplete__selection-list--item",children:(0,r.jsx)(p.Button,{className:"autocomplete__selection-list--item--button",isSecondary:!0,isSmall:!0,onClick:()=>j(e),type:"button",children:e.title})},e.title)))}):null,(0,r.jsx)("input",{"aria-autocomplete":"list",autoComplete:"off",className:u()("components-text-control__input","autocomplete-text-control__input",{"autocomplete-text-control__input--working":E}),id:`autocomplete-${y}`,onChange:e=>I(e.target.value),onFocus:()=>x(!0),placeholder:d,type:"text",value:k})]}),(0,r.jsx)(C,{emptyLabel:n,error:_,labelledById:`autocomplete-${y}`,id:`listbox-${y}`,isOpen:E,loading:T&&L,onSelect:j,options:w,selectedItems:N,threshold:g,value:L})]})})};U.defaultProps={type:"post",className:"",emptyLabel:(0,d.__)("No items found","alley-scripts"),label:(0,d.__)("Search for items","alley-scripts"),maxPages:5,multiple:!1,placeholder:(0,d.__)("Search for items","alley-scripts"),subTypes:[],selected:[],threshold:3},U.propTypes={type:s().string,className:s().string,emptyLabel:s().string,label:s().string,maxPages:s().number,multiple:s().bool,onSelect:s().func.isRequired,placeholder:s().string,subTypes:s().arrayOf(s().string),selected:s().arrayOf([s().shape({id:s().number,title:s().string})]),threshold:s().number};const j=U},668:(e,t,n)=>{"use strict";n.d(t,{default:()=>c});var r=n(7e3),o=n(900),s=n.n(o),i=n(3396),a=n(7720);const l=({className:e,emptyLabel:t,label:n,maxPages:o,multiple:s,onSelect:i,placeholder:l,subTypes:c,selected:u,threshold:p})=>(0,r.jsx)(a.Selector,{type:"term",className:e,emptyLabel:t,label:n,maxPages:o,multiple:s,onSelect:i,placeholder:l,subTypes:c,selected:u,threshold:p});l.defaultProps={className:"",emptyLabel:(0,i.__)("No terms found","alley-scripts"),label:(0,i.__)("Search for terms","alley-scripts"),maxPages:5,multiple:!1,placeholder:(0,i.__)("Search for terms","alley-scripts"),subTypes:[],selected:[],threshold:3},l.propTypes={className:s().string,emptyLabel:s().string,label:s().string,maxPages:s().number,multiple:s().bool,onSelect:s().func.isRequired,placeholder:s().string,subTypes:s().arrayOf(s().string),selected:s().arrayOf([s().shape({id:s().number,title:s().string})]),threshold:s().number};const c=l},5316:(e,t,n)=>{"use strict";n.d(t,{default:()=>p});var r=n(7e3),o=n(900),s=n.n(o),i=n(3376),a=n(7720);const l=i.cp.div`
+ height: auto;
+ width: 100%;
+`,c=({src:e})=>(0,r.jsx)(l,{children:(0,r.jsx)("video",{className:"edit-video-preview",controls:!0,src:e})});c.propTypes={src:s().string.isRequired};const u=({className:e,onReset:t,onUpdate:n,onUpdateURL:o,value:s,valueURL:i})=>(0,r.jsx)(a.MediaPicker,{allowedTypes:["video"],className:e,icon:"format-video",onReset:t,onUpdate:n,onUpdateURL:o,preview:c,value:s,valueURL:i});u.defaultProps={className:"",onUpdateURL:null,valueURL:""},u.propTypes={className:s().string,onReset:s().func.isRequired,onUpdate:s().func.isRequired,onUpdateURL:s().func,value:s().number.isRequired,valueURL:s().string};const p=u},2e3:(e,t,n)=>{"use strict";n.d(t,{useCurrentPostId:()=>f.default,useDebounce:()=>r.default,useHasInnerBlocks:()=>o.default,useInnerBlocks:()=>i.default,useInnerBlocksAttributes:()=>a.default,useInnerBlocksCount:()=>l.default,useInnerBlocksIndex:()=>s.default,useMedia:()=>c.default,useParentBlock:()=>u.default,useParentBlockAttributes:()=>p.default,usePost:()=>d.default,usePostById:()=>h.default,usePostMeta:()=>m.default,usePostMetaValue:()=>g.default,usePosts:()=>y.default,useTerms:()=>_.default});var r=n(7112),o=n(6980),s=n(6644),i=n(864),a=n(8512),l=n(1344),c=n(592),u=n(224),p=n(8004),d=n(1744),f=n(9695),h=n(9480),m=n(6504),g=n(3772),y=n(4704),_=n(1848)},9695:(e,t,n)=>{"use strict";n.d(t,{default:()=>o});var r=n(7752);const o=()=>(0,r.useSelect)((e=>{const t=e("core/editor");return t?t.getCurrentPostId():null}),[])},7112:(e,t,n)=>{"use strict";n.d(t,{default:()=>o});var r=n(8496);const o=(e,t)=>{const[n,o]=(0,r.useState)(e);return(0,r.useEffect)((()=>{const n=setTimeout((()=>{o(e)}),t);return()=>{clearTimeout(n)}}),[e,t]),n}},6980:(e,t,n)=>{"use strict";n.d(t,{default:()=>o});var r=n(2e3);const o=e=>(0,r.useInnerBlocksCount)(e)>0},6644:(e,t,n)=>{"use strict";n.d(t,{default:()=>o});var r=n(2e3);const o=e=>{const t=(0,r.useParentBlock)(e),n=(0,r.useInnerBlocks)(t);return n?n.findIndex((t=>t.clientId===e)):-1}},8512:(e,t,n)=>{"use strict";n.d(t,{default:()=>o});var r=n(2e3);const o=e=>(0,r.useInnerBlocks)(e).map((e=>e.attributes))},1344:(e,t,n)=>{"use strict";n.d(t,{default:()=>o});var r=n(2e3);const o=e=>(0,r.useInnerBlocks)(e).length},864:(e,t,n)=>{"use strict";n.d(t,{default:()=>s});var r=n(9528),o=n(7752);const s=e=>(0,o.useSelect)((t=>t(r.store).getBlocks(e)),[e])},592:(e,t,n)=>{"use strict";n.d(t,{default:()=>o});var r=n(7752);const o=e=>(0,r.useSelect)((t=>t("core").getMedia(e)),[e])},8004:(e,t,n)=>{"use strict";n.d(t,{default:()=>s});var r=n(9528),o=n(7752);const s=e=>(0,o.useSelect)((t=>{const{getBlockAttributes:n,getBlockRootClientId:o}=t(r.store),s=o(e);return s?n(s):null}),[e])},224:(e,t,n)=>{"use strict";n.d(t,{default:()=>s});var r=n(9528),o=n(7752);const s=e=>(0,o.useSelect)((t=>{const{getBlock:n,getBlockRootClientId:o}=t(r.store),s=o(e);return s?n(s):null}),[e])},9480:(e,t,n)=>{"use strict";n.d(t,{default:()=>l});var r=n(8496),o=n(4632),s=n.n(o),i=n(7204),a=n(1744);const l=(e,t=null)=>{const[n,o]=(0,r.useState)({}),[l,c]=(0,r.useState)(!0);(0,r.useEffect)((()=>{c(!0),e&&!n[e]?(async()=>{if(t){const n=await t(e);n?o((t=>({...t,[e]:n}))):console.error(`Custom function to get post with ID ${e} failed.`)}else{const t=(0,i.addQueryArgs)("/wp/v2/search",{include:e}),n=await s()({path:t});n.length>0&&o((t=>({...t,[e]:n[0]?.subtype})))}c(!1)})():e&&n[e]&&c(!1)}),[e]);const u=(0,a.default)(e,n[e]??"");return l||!u&&n[e]?null:u}},3772:(e,t,n)=>{"use strict";n.d(t,{default:()=>o});var r=n(2e3);const o=(e,t=null,n=null)=>{const[o,s]=(0,r.usePostMeta)(t,n);return[o[e],t=>s({...o,[e]:t})]}},6504:(e,t,n)=>{"use strict";n.d(t,{default:()=>s});var r=n(3048),o=n(7752);const s=(e=null,t=null)=>{const n=(0,o.useSelect)((t=>e||t("core/editor").getCurrentPostType()),[]),[s,i]=(0,r.useEntityProp)("postType",n,"meta",t),a="function"==typeof i?i:()=>console.error(`Error attempting to set post meta for post type ${n}. Does it have support for custom-fields?`);return["object"==typeof s?s:{},e=>a({...e})]}},1744:(e,t,n)=>{"use strict";n.d(t,{default:()=>o});var r=n(7752);const o=(e,t="post")=>(0,r.useSelect)((n=>n("core").getEntityRecord("postType",t,e)),[e,t])},4704:(e,t,n)=>{"use strict";n.d(t,{default:()=>o});var r=n(7752);const o=(e,t="post")=>(0,r.useSelect)((n=>{const{getEntityRecords:r}=n("core");return r("postType",t,{include:e})}),[e,t])},1848:(e,t,n)=>{"use strict";n.d(t,{default:()=>s});var r=n(3048),o=n(7752);const s=(e=null,t=null,n="categories")=>{const s=(0,o.useSelect)((t=>e||t("core/editor").getCurrentPostType()),[]),[i,a]=(0,r.useEntityProp)("postType",s,n,t);return[i,e=>a(e)]}},5328:(e,t,n)=>{"use strict";n.d(t,{getMediaUrl:()=>i.c,parseCSVFile:()=>s});var r=n(2232),o=n.n(r);const s=e=>new Promise(((t,n)=>{o().parse(e,{complete:e=>t(e.data),dynamicTyping:!0,error:e=>n(e),header:!0,skipEmptyLines:!0})}));var i=n(6199)},6199:(e,t,n)=>{"use strict";n.d(t,{c:()=>r});const r=(e,t="full")=>{const{media_details:{sizes:{[t]:{source_url:n=""}={},full:{source_url:r=""}={}}={}}={},sizes:{[t]:{url:o=""}={},full:{url:s=""}={}}={},source_url:i="",url:a=""}=e;return o||n||s||r||a||i||""}},1280:e=>{"use strict";e.exports=window.React},4632:e=>{"use strict";e.exports=window.wp.apiFetch},9528:e=>{"use strict";e.exports=window.wp.blockEditor},7287:e=>{"use strict";e.exports=window.wp.components},3048:e=>{"use strict";e.exports=window.wp.coreData},7752:e=>{"use strict";e.exports=window.wp.data},8496:e=>{"use strict";e.exports=window.wp.element},3396:e=>{"use strict";e.exports=window.wp.i18n},7204:e=>{"use strict";e.exports=window.wp.url}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var s=t[r]={id:r,exports:{}};return e[r].call(s.exports,s,s.exports,n),s.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nc=void 0;var r={};return(()=>{"use strict";n.r(r),n.d(r,{AudioPicker:()=>e.AudioPicker,CSVUploader:()=>e.CSVUploader,Checkboxes:()=>e.Checkboxes,ImagePicker:()=>e.ImagePicker,MediaPicker:()=>e.MediaPicker,PostPicker:()=>e.PostPicker,PostSelector:()=>e.PostSelector,SafeHtml:()=>e.SafeHtml,Selector:()=>e.Selector,TermSelector:()=>e.TermSelector,VideoPicker:()=>e.VideoPicker,getMediaUrl:()=>o.getMediaUrl,parseCSVFile:()=>o.parseCSVFile,useCurrentPostId:()=>t.useCurrentPostId,useDebounce:()=>t.useDebounce,useHasInnerBlocks:()=>t.useHasInnerBlocks,useInnerBlocks:()=>t.useInnerBlocks,useInnerBlocksAttributes:()=>t.useInnerBlocksAttributes,useInnerBlocksCount:()=>t.useInnerBlocksCount,useInnerBlocksIndex:()=>t.useInnerBlocksIndex,useMedia:()=>t.useMedia,useParentBlock:()=>t.useParentBlock,useParentBlockAttributes:()=>t.useParentBlockAttributes,usePost:()=>t.usePost,usePostById:()=>t.usePostById,usePostMeta:()=>t.usePostMeta,usePostMetaValue:()=>t.usePostMetaValue,usePosts:()=>t.usePosts,useTerms:()=>t.useTerms});var e=n(7720),t=n(2e3),o=n(5328)})(),r})(),e.exports=t()},838:function(e){e.exports=function(){"use strict";const{entries:e,setPrototypeOf:t,isFrozen:n,getPrototypeOf:r,getOwnPropertyDescriptor:o}=Object;let{freeze:s,seal:i,create:a}=Object,{apply:l,construct:c}="undefined"!=typeof Reflect&&Reflect;s||(s=function(e){return e}),i||(i=function(e){return e}),l||(l=function(e,t,n){return e.apply(t,n)}),c||(c=function(e,t){return new e(...t)});const u=w(Array.prototype.forEach),p=w(Array.prototype.pop),d=w(Array.prototype.push),f=w(String.prototype.toLowerCase),h=w(String.prototype.toString),m=w(String.prototype.match),g=w(String.prototype.replace),y=w(String.prototype.indexOf),_=w(String.prototype.trim),v=w(Object.prototype.hasOwnProperty),b=w(RegExp.prototype.test),A=(C=TypeError,function(){for(var e=arguments.length,t=new Array(e),n=0;n1?n-1:0),o=1;o2&&void 0!==arguments[2]?arguments[2]:f;t&&t(e,null);let s=r.length;for(;s--;){let t=r[s];if("string"==typeof t){const e=o(t);e!==t&&(n(r)||(r[s]=e),t=e)}e[t]=!0}return e}function E(e){for(let t=0;t/gm),q=i(/\${[\w\W]*}/gm),z=i(/^data-[\-\w.\u00B7-\uFFFF]/),H=i(/^aria-[\-\w]+$/),W=i(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),G=i(/^(?:\w+script|data):/i),$=i(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),V=i(/^html$/i),Y=i(/^[a-z][.\w]*(-[.\w]+)+$/i);var K=Object.freeze({__proto__:null,MUSTACHE_EXPR:B,ERB_EXPR:F,TMPLIT_EXPR:q,DATA_ATTR:z,ARIA_ATTR:H,IS_ALLOWED_URI:W,IS_SCRIPT_OR_DATA:G,ATTR_WHITESPACE:$,DOCTYPE_NAME:V,CUSTOM_ELEMENT:Y});const X=function(){return"undefined"==typeof window?null:window};return function t(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:X();const r=e=>t(e);if(r.version="3.1.2",r.removed=[],!n||!n.document||9!==n.document.nodeType)return r.isSupported=!1,r;let{document:o}=n;const i=o,l=i.currentScript,{DocumentFragment:c,HTMLTemplateElement:C,Node:w,Element:E,NodeFilter:B,NamedNodeMap:F=n.NamedNodeMap||n.MozNamedAttrMap,HTMLFormElement:q,DOMParser:z,trustedTypes:H}=n,G=E.prototype,$=T(G,"cloneNode"),Y=T(G,"nextSibling"),Q=T(G,"childNodes"),J=T(G,"parentNode");if("function"==typeof C){const e=o.createElement("template");e.content&&e.content.ownerDocument&&(o=e.content.ownerDocument)}let Z,ee="";const{implementation:te,createNodeIterator:ne,createDocumentFragment:re,getElementsByTagName:oe}=o,{importNode:se}=i;let ie={};r.isSupported="function"==typeof e&&"function"==typeof J&&te&&void 0!==te.createHTMLDocument;const{MUSTACHE_EXPR:ae,ERB_EXPR:le,TMPLIT_EXPR:ce,DATA_ATTR:ue,ARIA_ATTR:pe,IS_SCRIPT_OR_DATA:de,ATTR_WHITESPACE:fe,CUSTOM_ELEMENT:he}=K;let{IS_ALLOWED_URI:me}=K,ge=null;const ye=S({},[...R,...k,...I,...P,...L]);let _e=null;const ve=S({},[...D,...M,...U,...j]);let be=Object.seal(a(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ae=null,Ce=null,we=!0,Se=!0,Ee=!1,xe=!0,Te=!1,Re=!0,ke=!1,Ie=!1,Ne=!1,Pe=!1,Oe=!1,Le=!1,De=!0,Me=!1,Ue=!0,je=!1,Be={},Fe=null;const qe=S({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let ze=null;const He=S({},["audio","video","img","source","image","track"]);let We=null;const Ge=S({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),$e="http://www.w3.org/1998/Math/MathML",Ve="http://www.w3.org/2000/svg",Ye="http://www.w3.org/1999/xhtml";let Ke=Ye,Xe=!1,Qe=null;const Je=S({},[$e,Ve,Ye],h);let Ze=null;const et=["application/xhtml+xml","text/html"];let tt=null,nt=null;const rt=o.createElement("form"),ot=function(e){return e instanceof RegExp||e instanceof Function},st=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!nt||nt!==e){if(e&&"object"==typeof e||(e={}),e=x(e),Ze=-1===et.indexOf(e.PARSER_MEDIA_TYPE)?"text/html":e.PARSER_MEDIA_TYPE,tt="application/xhtml+xml"===Ze?h:f,ge=v(e,"ALLOWED_TAGS")?S({},e.ALLOWED_TAGS,tt):ye,_e=v(e,"ALLOWED_ATTR")?S({},e.ALLOWED_ATTR,tt):ve,Qe=v(e,"ALLOWED_NAMESPACES")?S({},e.ALLOWED_NAMESPACES,h):Je,We=v(e,"ADD_URI_SAFE_ATTR")?S(x(Ge),e.ADD_URI_SAFE_ATTR,tt):Ge,ze=v(e,"ADD_DATA_URI_TAGS")?S(x(He),e.ADD_DATA_URI_TAGS,tt):He,Fe=v(e,"FORBID_CONTENTS")?S({},e.FORBID_CONTENTS,tt):qe,Ae=v(e,"FORBID_TAGS")?S({},e.FORBID_TAGS,tt):{},Ce=v(e,"FORBID_ATTR")?S({},e.FORBID_ATTR,tt):{},Be=!!v(e,"USE_PROFILES")&&e.USE_PROFILES,we=!1!==e.ALLOW_ARIA_ATTR,Se=!1!==e.ALLOW_DATA_ATTR,Ee=e.ALLOW_UNKNOWN_PROTOCOLS||!1,xe=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,Te=e.SAFE_FOR_TEMPLATES||!1,Re=!1!==e.SAFE_FOR_XML,ke=e.WHOLE_DOCUMENT||!1,Pe=e.RETURN_DOM||!1,Oe=e.RETURN_DOM_FRAGMENT||!1,Le=e.RETURN_TRUSTED_TYPE||!1,Ne=e.FORCE_BODY||!1,De=!1!==e.SANITIZE_DOM,Me=e.SANITIZE_NAMED_PROPS||!1,Ue=!1!==e.KEEP_CONTENT,je=e.IN_PLACE||!1,me=e.ALLOWED_URI_REGEXP||W,Ke=e.NAMESPACE||Ye,be=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&ot(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(be.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&ot(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(be.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(be.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Te&&(Se=!1),Oe&&(Pe=!0),Be&&(ge=S({},L),_e=[],!0===Be.html&&(S(ge,R),S(_e,D)),!0===Be.svg&&(S(ge,k),S(_e,M),S(_e,j)),!0===Be.svgFilters&&(S(ge,I),S(_e,M),S(_e,j)),!0===Be.mathMl&&(S(ge,P),S(_e,U),S(_e,j))),e.ADD_TAGS&&(ge===ye&&(ge=x(ge)),S(ge,e.ADD_TAGS,tt)),e.ADD_ATTR&&(_e===ve&&(_e=x(_e)),S(_e,e.ADD_ATTR,tt)),e.ADD_URI_SAFE_ATTR&&S(We,e.ADD_URI_SAFE_ATTR,tt),e.FORBID_CONTENTS&&(Fe===qe&&(Fe=x(Fe)),S(Fe,e.FORBID_CONTENTS,tt)),Ue&&(ge["#text"]=!0),ke&&S(ge,["html","head","body"]),ge.table&&(S(ge,["tbody"]),delete Ae.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw A('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw A('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');Z=e.TRUSTED_TYPES_POLICY,ee=Z.createHTML("")}else void 0===Z&&(Z=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let n=null;const r="data-tt-policy-suffix";t&&t.hasAttribute(r)&&(n=t.getAttribute(r));const o="dompurify"+(n?"#"+n:"");try{return e.createPolicy(o,{createHTML(e){return e},createScriptURL(e){return e}})}catch(e){return console.warn("TrustedTypes policy "+o+" could not be created."),null}}(H,l)),null!==Z&&"string"==typeof ee&&(ee=Z.createHTML(""));s&&s(e),nt=e}},it=S({},["mi","mo","mn","ms","mtext"]),at=S({},["foreignobject","annotation-xml"]),lt=S({},["title","style","font","a","script"]),ct=S({},[...k,...I,...N]),ut=S({},[...P,...O]),pt=function(e){d(r.removed,{element:e});try{e.parentNode.removeChild(e)}catch(t){e.remove()}},dt=function(e,t){try{d(r.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){d(r.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e&&!_e[e])if(Pe||Oe)try{pt(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},ft=function(e){let t=null,n=null;if(Ne)e=""+e;else{const t=m(e,/^[\r\n\t ]+/);n=t&&t[0]}"application/xhtml+xml"===Ze&&Ke===Ye&&(e=''+e+"");const r=Z?Z.createHTML(e):e;if(Ke===Ye)try{t=(new z).parseFromString(r,Ze)}catch(e){}if(!t||!t.documentElement){t=te.createDocument(Ke,"template",null);try{t.documentElement.innerHTML=Xe?ee:r}catch(e){}}const s=t.body||t.documentElement;return e&&n&&s.insertBefore(o.createTextNode(n),s.childNodes[0]||null),Ke===Ye?oe.call(t,ke?"html":"body")[0]:ke?t.documentElement:s},ht=function(e){return ne.call(e.ownerDocument||e,e,B.SHOW_ELEMENT|B.SHOW_COMMENT|B.SHOW_TEXT|B.SHOW_PROCESSING_INSTRUCTION|B.SHOW_CDATA_SECTION,null)},mt=function(e){return"function"==typeof w&&e instanceof w},gt=function(e,t,n){ie[e]&&u(ie[e],(e=>{e.call(r,t,n,nt)}))},yt=function(e){let t=null;if(gt("beforeSanitizeElements",e,null),(n=e)instanceof q&&(void 0!==n.__depth&&"number"!=typeof n.__depth||void 0!==n.__removalCount&&"number"!=typeof n.__removalCount||"string"!=typeof n.nodeName||"string"!=typeof n.textContent||"function"!=typeof n.removeChild||!(n.attributes instanceof F)||"function"!=typeof n.removeAttribute||"function"!=typeof n.setAttribute||"string"!=typeof n.namespaceURI||"function"!=typeof n.insertBefore||"function"!=typeof n.hasChildNodes))return pt(e),!0;var n;const o=tt(e.nodeName);if(gt("uponSanitizeElement",e,{tagName:o,allowedTags:ge}),e.hasChildNodes()&&!mt(e.firstElementChild)&&b(/<[/\w]/g,e.innerHTML)&&b(/<[/\w]/g,e.textContent))return pt(e),!0;if(7===e.nodeType)return pt(e),!0;if(Re&&8===e.nodeType&&b(/<[/\w]/g,e.data))return pt(e),!0;if(!ge[o]||Ae[o]){if(!Ae[o]&&vt(o)){if(be.tagNameCheck instanceof RegExp&&b(be.tagNameCheck,o))return!1;if(be.tagNameCheck instanceof Function&&be.tagNameCheck(o))return!1}if(Ue&&!Fe[o]){const t=J(e)||e.parentNode,n=Q(e)||e.childNodes;if(n&&t)for(let r=n.length-1;r>=0;--r){const o=$(n[r],!0);o.__removalCount=(e.__removalCount||0)+1,t.insertBefore(o,Y(e))}}return pt(e),!0}return e instanceof E&&!function(e){let t=J(e);t&&t.tagName||(t={namespaceURI:Ke,tagName:"template"});const n=f(e.tagName),r=f(t.tagName);return!!Qe[e.namespaceURI]&&(e.namespaceURI===Ve?t.namespaceURI===Ye?"svg"===n:t.namespaceURI===$e?"svg"===n&&("annotation-xml"===r||it[r]):Boolean(ct[n]):e.namespaceURI===$e?t.namespaceURI===Ye?"math"===n:t.namespaceURI===Ve?"math"===n&&at[r]:Boolean(ut[n]):e.namespaceURI===Ye?!(t.namespaceURI===Ve&&!at[r])&&!(t.namespaceURI===$e&&!it[r])&&!ut[n]&&(lt[n]||!ct[n]):!("application/xhtml+xml"!==Ze||!Qe[e.namespaceURI]))}(e)?(pt(e),!0):"noscript"!==o&&"noembed"!==o&&"noframes"!==o||!b(/<\/no(script|embed|frames)/i,e.innerHTML)?(Te&&3===e.nodeType&&(t=e.textContent,u([ae,le,ce],(e=>{t=g(t,e," ")})),e.textContent!==t&&(d(r.removed,{element:e.cloneNode()}),e.textContent=t)),gt("afterSanitizeElements",e,null),!1):(pt(e),!0)},_t=function(e,t,n){if(De&&("id"===t||"name"===t)&&(n in o||n in rt))return!1;if(Se&&!Ce[t]&&b(ue,t));else if(we&&b(pe,t));else if(!_e[t]||Ce[t]){if(!(vt(e)&&(be.tagNameCheck instanceof RegExp&&b(be.tagNameCheck,e)||be.tagNameCheck instanceof Function&&be.tagNameCheck(e))&&(be.attributeNameCheck instanceof RegExp&&b(be.attributeNameCheck,t)||be.attributeNameCheck instanceof Function&&be.attributeNameCheck(t))||"is"===t&&be.allowCustomizedBuiltInElements&&(be.tagNameCheck instanceof RegExp&&b(be.tagNameCheck,n)||be.tagNameCheck instanceof Function&&be.tagNameCheck(n))))return!1}else if(We[t]);else if(b(me,g(n,fe,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==y(n,"data:")||!ze[e])if(Ee&&!b(de,g(n,fe,"")));else if(n)return!1;return!0},vt=function(e){return"annotation-xml"!==e&&m(e,he)},bt=function(e){gt("beforeSanitizeAttributes",e,null);const{attributes:t}=e;if(!t)return;const n={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:_e};let o=t.length;for(;o--;){const s=t[o],{name:i,namespaceURI:a,value:l}=s,c=tt(i);let d="value"===i?l:_(l);if(n.attrName=c,n.attrValue=d,n.keepAttr=!0,n.forceKeepAttr=void 0,gt("uponSanitizeAttribute",e,n),d=n.attrValue,n.forceKeepAttr)continue;if(dt(i,e),!n.keepAttr)continue;if(!xe&&b(/\/>/i,d)){dt(i,e);continue}Te&&u([ae,le,ce],(e=>{d=g(d,e," ")}));const f=tt(e.nodeName);if(_t(f,c,d)){if(!Me||"id"!==c&&"name"!==c||(dt(i,e),d="user-content-"+d),Z&&"object"==typeof H&&"function"==typeof H.getAttributeType)if(a);else switch(H.getAttributeType(f,c)){case"TrustedHTML":d=Z.createHTML(d);break;case"TrustedScriptURL":d=Z.createScriptURL(d)}try{a?e.setAttributeNS(a,i,d):e.setAttribute(i,d),p(r.removed)}catch(e){}}}gt("afterSanitizeAttributes",e,null)},At=function e(t){let n=null;const r=ht(t);for(gt("beforeSanitizeShadowDOM",t,null);n=r.nextNode();){if(gt("uponSanitizeShadowNode",n,null),yt(n))continue;const t=J(n);1===n.nodeType&&(t&&t.__depth?n.__depth=(n.__removalCount||0)+t.__depth+1:n.__depth=1),n.__depth>=255&&pt(n),n.content instanceof c&&(n.content.__depth=n.__depth,e(n.content)),bt(n)}gt("afterSanitizeShadowDOM",t,null)};return r.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null,o=null,s=null,a=null;if(Xe=!e,Xe&&(e="\x3c!--\x3e"),"string"!=typeof e&&!mt(e)){if("function"!=typeof e.toString)throw A("toString is not a function");if("string"!=typeof(e=e.toString()))throw A("dirty is not a string, aborting")}if(!r.isSupported)return e;if(Ie||st(t),r.removed=[],"string"==typeof e&&(je=!1),je){if(e.nodeName){const t=tt(e.nodeName);if(!ge[t]||Ae[t])throw A("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof w)n=ft("\x3c!----\x3e"),o=n.ownerDocument.importNode(e,!0),1===o.nodeType&&"BODY"===o.nodeName||"HTML"===o.nodeName?n=o:n.appendChild(o);else{if(!Pe&&!Te&&!ke&&-1===e.indexOf("<"))return Z&&Le?Z.createHTML(e):e;if(n=ft(e),!n)return Pe?null:Le?ee:""}n&&Ne&&pt(n.firstChild);const l=ht(je?e:n);for(;s=l.nextNode();){if(yt(s))continue;const e=J(s);1===s.nodeType&&(e&&e.__depth?s.__depth=(s.__removalCount||0)+e.__depth+1:s.__depth=1),s.__depth>=255&&pt(s),s.content instanceof c&&(s.content.__depth=s.__depth,At(s.content)),bt(s)}if(je)return e;if(Pe){if(Oe)for(a=re.call(n.ownerDocument);n.firstChild;)a.appendChild(n.firstChild);else a=n;return(_e.shadowroot||_e.shadowrootmode)&&(a=se.call(i,a,!0)),a}let p=ke?n.outerHTML:n.innerHTML;return ke&&ge["!doctype"]&&n.ownerDocument&&n.ownerDocument.doctype&&n.ownerDocument.doctype.name&&b(V,n.ownerDocument.doctype.name)&&(p="\n"+p),Te&&u([ae,le,ce],(e=>{p=g(p,e," ")})),Z&&Le?Z.createHTML(p):p},r.setConfig=function(){st(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Ie=!0},r.clearConfig=function(){nt=null,Ie=!1},r.isValidAttribute=function(e,t,n){nt||st({});const r=tt(e),o=tt(t);return _t(r,o,n)},r.addHook=function(e,t){"function"==typeof t&&(ie[e]=ie[e]||[],d(ie[e],t))},r.removeHook=function(e){if(ie[e])return p(ie[e])},r.removeHooks=function(e){ie[e]&&(ie[e]=[])},r.removeAllHooks=function(){ie={}},r}()}()},694:function(e,t,n){"use strict";var r=n(925);function o(){}function s(){}s.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,s,i){if(i!==r){var a=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw a.name="Invariant Violation",a}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:s,resetWarningCache:o};return n.PropTypes=n,n}},556:function(e,t,n){e.exports=n(694)()},925:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var s=t[r]={exports:{}};return e[r].call(s.exports,s,s.exports,n),s.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){"use strict";var e=window.wp.plugins,t=window.React,r=n.n(t),o=function(){return r().createElement("svg",{enableBackground:"new 0 0 26.77438 26.77438",height:"26.77438px",version:"1.1",viewBox:"0 0 26.77438 26.77438",width:"26.77438px",x:"0px",xmlns:"http://www.w3.org/2000/svg",y:"0px"},r().createElement("g",null,r().createElement("g",null,r().createElement("g",null,r().createElement("path",{d:"M4.71813,13.5345v4.77055l0.00002,0.65257 c0,0.0568-0.00002,0.11365,0.00035,0.17044c0.00025,0.04783,0.00081,0.0957,0.00209,0.14355 c0.00283,0.10423,0.00899,0.20939,0.02751,0.31251c0.01879,0.10458,0.04945,0.20193,0.0978,0.29693 c0.04756,0.0934,0.10962,0.17891,0.1837,0.253c0.07406,0.07407,0.15948,0.13619,0.25284,0.18372 c0.09503,0.0484,0.19239,0.07911,0.29701,0.09791c0.10299,0.01855,0.20809,0.02465,0.31225,0.02748 c0.04783,0.0013,0.09566,0.00183,0.14351,0.00215c0.05676,0.00033,0.11354,0.00031,0.17035,0.00031l0.65231,0.00002h4.77141 c0.13713,0,0.1819-0.18436,0.05989-0.24694c-2.91487-1.49526-5.22884-3.80922-6.72409-6.72407 c-0.02514-0.04903-0.06995-0.07114-0.11456-0.07114C4.78411,13.40348,4.71813,13.45246,4.71813,13.5345 M6.20869,4.71816 c-0.05692,0-0.11382,0.00002-0.17074,0.00035C5.99004,4.71878,5.9421,4.71937,5.89418,4.72066 C5.78975,4.72349,5.68438,4.72962,5.58112,4.74818C5.47637,4.76705,5.37885,4.79772,5.28367,4.84613 C5.1901,4.89378,5.10448,4.95595,5.03024,5.03016C4.95604,5.10438,4.8938,5.18993,4.84622,5.28341 c-0.0485,0.09524-0.07925,0.19277-0.09809,0.29751C4.72958,5.68414,4.72344,5.78941,4.72059,5.89376 C4.71932,5.94165,4.71875,5.98955,4.7185,6.03746c-0.00035,0.048-0.00037,0.09602-0.00037,0.14401v0.02665v1.96427 c0,0.40087,0.07796,0.6084,0.37512,0.90561l10.99255,10.9925c0.30093,0.30094,0.50562,0.37513,0.90561,0.37513h1.96366 c0.05688,0,0.11384,0,0.17074-0.00036c0.04794-0.00028,0.09584-0.00084,0.14378-0.00216 c0.10446-0.00281,0.20978-0.00894,0.31304-0.02751c0.10479-0.01884,0.20229-0.04954,0.29747-0.09796 c0.09358-0.04766,0.17919-0.10981,0.25338-0.18402c0.07428-0.07423,0.13647-0.15976,0.18408-0.25323 c0.04852-0.09524,0.07924-0.19277,0.09809-0.29752c0.01855-0.10318,0.0247-0.20845,0.0275-0.31283 c0.0013-0.04788,0.00187-0.09577,0.00214-0.14376c0.00031-0.04819,0.00034-0.09648,0.00034-0.14476v-1.99007 c0-0.40094-0.07794-0.60844-0.37513-0.90564L9.07799,5.09329C8.77706,4.79237,8.57234,4.71818,8.17237,4.71816H6.20869 M13.53452,4.71816c-0.13717,0-0.18194,0.18436-0.05994,0.24694c2.9149,1.49524,5.22883,3.8092,6.72409,6.72407 c0.06261,0.12206,0.24697,0.07725,0.24697-0.05992V6.85873l-0.00005-0.65257c0-0.05679,0.00005-0.11363-0.00028-0.17043 c-0.00027-0.04786-0.00084-0.0957-0.00216-0.14353c-0.0028-0.10428-0.00891-0.20943-0.02746-0.31252 c-0.0188-0.1046-0.04947-0.20194-0.09784-0.29695c-0.0475-0.09343-0.10962-0.17888-0.18367-0.25297 c-0.0741-0.0741-0.15947-0.1362-0.25285-0.18375c-0.09504-0.04841-0.19239-0.0791-0.297-0.09789 c-0.10299-0.01854-0.2081-0.02468-0.31226-0.02751c-0.04781-0.00125-0.09565-0.00183-0.14348-0.00211 c-0.0568-0.00035-0.1136-0.00032-0.17037-0.00032l-0.65233-0.00002H13.53452"})))))},s=n(265),i=window.wp.apiFetch,a=n.n(i),l=window.wp.data,c=window.wp.editPost,u=window.wp.i18n,p=n(838),d=n.n(p),f=window.wp.components,h=n(556),m=n.n(h);function g(e){let{coverImageCaption:t,coverImageId:n,onChangeCoverImageCaption:o,onChangeCoverImageId:i}=e;return r().createElement(f.PanelBody,{initialOpen:!1,title:(0,u.__)("Cover Image","apple-news")},r().createElement(f.BaseControl,null,r().createElement(s.ImagePicker,{onReset:()=>i(0),onUpdate:e=>{let{id:t}=e;return i(t)},value:n})),r().createElement(f.TextareaControl,{help:(0,u.__)("This is optional and can be left blank.","apple-news"),label:(0,u.__)("Caption","apple-news"),onChange:o,placeholder:(0,u.__)("Add an image caption here.","apple-news"),value:t}))}g.propTypes={coverImageCaption:m().string.isRequired,coverImageId:m().number.isRequired,onChangeCoverImageCaption:m().func.isRequired,onChangeCoverImageId:m().func.isRequired};var y=g;function _(e){let{maturityRating:t,onChangeMaturityRating:n}=e;return r().createElement(f.PanelBody,{initialOpen:!1,title:(0,u.__)("Maturity Rating","apple-news")},r().createElement(f.SelectControl,{help:(0,u.__)("Select the optional maturity rating for this post.","apple-news"),label:(0,u.__)("Select Maturity Rating","apple-news"),onChange:n,options:[{label:"",value:""},{label:(0,u.__)("Kids","apple-news"),value:"KIDS"},{label:(0,u.__)("Mature","apple-news"),value:"MATURE"},{label:(0,u.__)("General","apple-news"),value:"GENERAL"}],value:t}))}_.propTypes={maturityRating:m().string.isRequired,onChangeMaturityRating:m().func.isRequired};var v=_;const b={key:m().string.isRequired,type:m().oneOf(["array","boolean","number","string"]),value:m().oneOfType([m().arrayOf(m().string),m().bool,m().number,m().string])},A={id:m().string.isRequired,name:m().string.isRequired};var C=(e,t,n,r)=>{const o=e.map((e=>({...e})));return o[r][t]=n,o};function w(e){let{isHidden:t,isPaid:n,isPreview:o,isSponsored:s,metadata:i,onChangeIsHidden:a,onChangeIsPaid:l,onChangeIsPreview:c,onChangeIsSponsored:p,onChangeMetadata:d,onChangeSuppressVideoURL:h,onChangeUseImageComponent:m,suppressVideoURL:g,useImageComponent:y}=e;return r().createElement(f.PanelBody,{initialOpen:!1,title:(0,u.__)("Metadata","apple-news")},r().createElement(f.SelectControl,{help:(0,u.__)("Set this setting to true to indicate that viewing the article requires a paid subscription, false to indicate that it does not, or leave it empty to use the channel default value. Note that Apple must approve your channel for paid content before using this feature.","apple-news"),label:(0,u.__)("Paid Article","apple-news"),onChange:l,options:[{label:(0,u.__)("Channel Default","apple-news"),value:""},{label:(0,u.__)("True","apple-news"),value:"true"},{label:(0,u.__)("False","apple-news"),value:"false"}],value:"1"===n?"true":n}),r().createElement(f.SelectControl,{help:(0,u.__)("Set this setting to true to publish the article as a draft.","apple-news"),label:(0,u.__)("Preview Article","apple-news"),onChange:c,options:[{label:(0,u.__)("Channel Default","apple-news"),value:""},{label:(0,u.__)("True","apple-news"),value:"true"},{label:(0,u.__)("False","apple-news"),value:"false"}],value:"1"===o?"true":o}),r().createElement(f.SelectControl,{help:(0,u.__)("Set this setting to true to publish the article as a hidden article. Hidden articles are visible to users who have a link to the article, but do not appear in feeds.","apple-news"),label:(0,u.__)("Hidden Article","apple-news"),onChange:a,options:[{label:(0,u.__)("Channel Default","apple-news"),value:""},{label:(0,u.__)("True","apple-news"),value:"true"},{label:(0,u.__)("False","apple-news"),value:"false"}],value:"1"===t?"true":t}),r().createElement(f.SelectControl,{help:(0,u.__)("Set this setting to true to indicate this article is sponsored content.","apple-news"),label:(0,u.__)("Sponsored Article","apple-news"),onChange:p,options:[{label:(0,u.__)("Channel Default","apple-news"),value:""},{label:(0,u.__)("True","apple-news"),value:"true"},{label:(0,u.__)("False","apple-news"),value:"false"}],value:"1"===s?"true":s}),r().createElement(f.CheckboxControl,{checked:g,help:(0,u.__)("Check this to prevent video thumbnails for this article.","apple-news"),label:(0,u.__)("Do not set videoURL metadata for this article","apple-news"),onChange:h}),r().createElement(f.CheckboxControl,{checked:y,help:(0,u.__)("Check this to use an Image instead of a Photo component for images in this article.","apple-news"),label:(0,u.__)("Use Image component for images.","apple-news"),onChange:m}),r().createElement("h3",null,(0,u.__)("Custom Metadata","apple-news")),i.map(((e,t)=>{let{key:n,type:o,value:s}=e;return r().createElement("div",{key:t},r().createElement(f.TextControl,{label:(0,u.__)("Key","apple-news"),onChange:e=>d(C(i,"key",e,t)),value:n}),r().createElement(f.SelectControl,{label:(0,u.__)("Type","apple-news"),onChange:e=>d(C(i,"type",e,t)),options:[{label:(0,u.__)("string","apple-news"),value:"string"},{label:(0,u.__)("boolean","apple-news"),value:"boolean"},{label:(0,u.__)("number","apple-news"),value:"number"},{label:(0,u.__)("array","apple-news"),value:"array"}],value:o}),"boolean"===o?r().createElement(f.SelectControl,{label:(0,u.__)("Value","apple-news"),onChange:e=>d(C(i,"value","true"===e,t)),options:[{label:(0,u.__)("","apple-news"),value:""},{label:(0,u.__)("true","apple-news"),value:"true"},{label:(0,u.__)("false","apple-news"),value:"false"}],value:s}):r().createElement(f.TextControl,{label:(0,u.__)("Value","apple-news"),onChange:e=>d(C(i,"value","number"===o?parseFloat(e):e,t)),type:"number"===o?"number":"text",value:s}),r().createElement(f.Button,{isDestructive:!0,onClick:()=>d(((e,t)=>e.filter(((e,n)=>t!==n)))(i,t)),style:{marginBottom:"1em"}},(0,u.__)("Remove","apple-news")))})),r().createElement(f.Button,{isPrimary:!0,onClick:()=>d([...i,{key:"",type:"string",value:""}])},(0,u.__)("Add Metadata","apple-news")))}w.propTypes={isHidden:m().bool.isRequired,isPaid:m().bool.isRequired,isPreview:m().bool.isRequired,isSponsored:m().bool.isRequired,metadata:m().arrayOf(m().shape(b)).isRequired,onChangeIsHidden:m().func.isRequired,onChangeIsPaid:m().func.isRequired,onChangeIsPreview:m().func.isRequired,onChangeIsSponsored:m().func.isRequired,onChangeMetadata:m().func.isRequired,onChangeSuppressVideoURL:m().func.isRequired,onChangeUseImageComponent:m().func.isRequired,suppressVideoURL:m().bool.isRequired,useImageComponent:m().bool.isRequired};var S=w;function E(e){let{apiAutosync:t,apiAutosyncDelete:n,apiAutosyncUpdate:o,deletePost:s,loading:i,postIsDirty:a,postStatus:l,publishPost:c,publishState:p,updatePost:d,userCanPublish:h}=e;return"publish"===l&&h?i?r().createElement(f.Spinner,null):r().createElement(r().Fragment,null,a?r().createElement("div",{className:"components-notice is-warning"},r().createElement("strong",null,(0,u.__)("Please click the Update button above to ensure that all changes are saved before publishing to Apple News.","apple-news"))):null,"N/A"===p||o?null:r().createElement(f.Button,{isPrimary:!0,onClick:d,style:{margin:"1em"}},(0,u.__)("Update","apple-news")),"N/A"===p||n?null:r().createElement(f.Button,{isSecondary:!0,onClick:s,style:{margin:"1em"}},(0,u.__)("Delete","apple-news")),"N/A"!==p||t?null:r().createElement(f.Button,{isPrimary:!0,onClick:c,style:{margin:"1em"}},(0,u.__)("Publish","apple-news"))):null}E.propTypes={apiAutosync:m().bool.isRequired,apiAutosyncDelete:m().bool.isRequired,apiAutosyncUpdate:m().bool.isRequired,deletePost:m().func.isRequired,loading:m().bool.isRequired,postIsDirty:m().bool.isRequired,postStatus:m().string.isRequired,publishPost:m().func.isRequired,publishState:m().string.isRequired,updatePost:m().func.isRequired,userCanPublish:m().bool.isRequired};var x=E;function T(e){let{apiId:t,dateCreated:n,dateModified:o,revision:s,shareUrl:i,publishState:a}=e;return a&&"N/A"!==a?r().createElement(f.PanelBody,{initialOpen:!1,title:(0,u.__)("Publish Information","apple-news")},r().createElement("h3",null,(0,u.__)("API Id","apple-news")),r().createElement("p",null,t),r().createElement("h3",null,(0,u.__)("Created On","apple-news")),r().createElement("p",null,n),r().createElement("h3",null,(0,u.__)("Last Updated On","apple-news")),r().createElement("p",null,o),r().createElement("h3",null,(0,u.__)("Share URL","apple-news")),r().createElement("p",null,i),r().createElement("h3",null,(0,u.__)("Revision","apple-news")),r().createElement("p",null,s),r().createElement("h3",null,(0,u.__)("Publish State","apple-news")),r().createElement("p",null,a)):null}T.propTypes={apiId:m().string.isRequired,dateCreated:m().string.isRequired,dateModified:m().string.isRequired,revision:m().string.isRequired,shareUrl:m().string.isRequired,publishState:m().string.isRequired};var R=T;function k(e){let{onChangePullquotePosition:t,onChangePullquoteText:n,pullquotePosition:o,pullquoteText:s}=e;return r().createElement(f.PanelBody,{initialOpen:!1,title:(0,u.__)("Pull Quote","apple-news")},r().createElement(f.TextareaControl,{help:(0,u.__)("A pull quote is a key phrase, quotation, or excerpt that has been pulled from an article and used as a graphic element, serving to entice readers into the article or to highlight a key topic. This is optional and can be left blank.","apple-news"),label:(0,u.__)("Pull Quote Text","apple-news"),onChange:n,value:s}),r().createElement(f.SelectControl,{help:(0,u.__)("The position in the article where the pull quote will appear.","apple-news"),label:(0,u.__)("Pull Quote Position","apple-news"),onChange:t,options:[{label:(0,u.__)("top","apple-news"),value:"top"},{label:(0,u.__)("middle","apple-news"),value:"middle"},{label:(0,u.__)("bottom","apple-news"),value:"bottom"}],value:o||"middle"}))}k.propTypes={onChangePullquotePosition:m().func.isRequired,onChangePullquoteText:m().func.isRequired,pullquotePosition:m().string.isRequired,pullquoteText:m().string.isRequired};var I=k;function N(e){let{autoAssignCategories:t,automaticAssignment:n,onChangeAutoAssignCategories:o,onChangeSelectedSections:s,sections:i,selectedSections:a}=e;return r().createElement(f.PanelBody,{initialOpen:!1,title:(0,u.__)("Sections","apple-news")},Array.isArray(i)&&0!==i.length?r().createElement(r().Fragment,null,n?r().createElement(f.CheckboxControl,{checked:t,label:(0,u.__)("Assign sections by category","apple-news"),onChange:o}):null,n&&!t?r().createElement("hr",null):null,n&&t?null:r().createElement(f.BaseControl,{help:(0,u.__)("Select the sections in which to publish this article. If none are selected, it will be published to the default section.","apple-news")},i.map((e=>{let{id:t,name:n}=e;return r().createElement(f.CheckboxControl,{checked:a.includes(t),key:t,label:n,onChange:()=>s(t)})})))):r().createElement(f.Spinner,null))}N.propTypes={autoAssignCategories:m().bool.isRequired,automaticAssignment:m().bool.isRequired,onChangeAutoAssignCategories:m().func.isRequired,onChangeSelectedSections:m().func.isRequired,sections:m().arrayOf(m().shape(A)).isRequired,selectedSections:m().arrayOf(m().string).isRequired};var P=N;function O(e){let{onChangeSlug:t,slug:n}=e;return r().createElement(f.PanelBody,{initialOpen:!1,title:(0,u.__)("Slug","apple-news")},r().createElement(f.TextControl,{help:(0,u.__)("A word or phrase that will appear near the title, if the Slug component is enabled in theme settings. This is optional and can be left blank.","apple-news"),label:(0,u.__)("Slug Text","apple-news"),onChange:t,value:n}))}O.propTypes={onChangeSlug:m().func.isRequired,slug:m().string.isRequired};var L=O,D=e=>{const t=(e=>{try{return JSON.parse(e)}catch(e){return null}})(e);return Array.isArray(t)?t:[]};(0,e.registerPlugin)("publish-to-apple-news",{icon:r().createElement(o,null),render:function(){const[e,n]=(0,t.useState)({autoAssignCategories:!1,loading:!1,publishState:"N/A",sections:[],settings:{apiAutosync:!1,apiAutosyncDelete:!1,apiAutosyncUpdate:!1,automaticAssignment:!1},userCanPublish:!1}),{autoAssignCategories:o,loading:i,publishState:p,sections:f,settings:{apiAutosync:h,apiAutosyncDelete:m,apiAutosyncUpdate:g,automaticAssignment:_},userCanPublish:b}=e,A=(0,l.useDispatch)("core/notices"),{notices:C,postId:w,postIsDirty:E,postStatus:T}=(0,l.useSelect)((e=>{const t=e("core/editor");return{notices:t.getEditedPostAttribute("apple_news_notices"),postId:t.getCurrentPostId(),postIsDirty:t.isEditedPostDirty(),postStatus:t.getEditedPostAttribute("status")}})),[{apple_news_api_created_at:k,apple_news_api_id:N,apple_news_api_modified_at:O,apple_news_api_revision:M,apple_news_api_share_url:U}]=(0,s.usePostMeta)(),[j,B]=(0,s.usePostMetaValue)("apple_news_coverimage"),[F,q]=(0,s.usePostMetaValue)("apple_news_coverimage_caption"),[z,H]=(0,s.usePostMetaValue)("apple_news_is_hidden"),[W,G]=(0,s.usePostMetaValue)("apple_news_is_paid"),[$,V]=(0,s.usePostMetaValue)("apple_news_is_preview"),[Y,K]=(0,s.usePostMetaValue)("apple_news_is_sponsored"),[X,Q]=(0,s.usePostMetaValue)("apple_news_maturity_rating"),[J,Z]=(0,s.usePostMetaValue)("apple_news_metadata"),[ee,te]=(0,s.usePostMetaValue)("apple_news_pullquote"),[ne,re]=(0,s.usePostMetaValue)("apple_news_pullquote_position"),[oe,se]=(0,s.usePostMetaValue)("apple_news_sections"),[ie,ae]=(0,s.usePostMetaValue)("apple_news_slug"),[le,ce]=(0,s.usePostMetaValue)("apple_news_suppress_video_url"),[ue,pe]=(0,s.usePostMetaValue)("apple_news_use_image_component"),de=D(J),fe=e=>se(e),he=(0,t.useCallback)((function(e){return"success"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"success")?A.createInfoNotice(d().sanitize(e),{type:"snackbar"}):A.createErrorNotice(e,{__unstableHTML:!0})}),[A]),me=async t=>{n({...e,loading:!0});try{const{notifications:r=[],publishState:o=""}=await a()({data:{id:w},method:"POST",path:`/apple-news/v1/${t}`});r.forEach((e=>he(e.message,e.type))),n({...e,loading:!1,publishState:o})}catch(t){he(t.message,"error"),n({...e,loading:!1})}};return(0,t.useEffect)((()=>{(async()=>{const t=[await a()({path:`/apple-news/v1/get-published-state/${w}`}),await a()({path:"/apple-news/v1/sections"}),await a()({path:"/apple-news/v1/get-settings"}),await a()({path:`/apple-news/v1/user-can-publish/${w}`})];try{const r=await Promise.all(t);n({...e,autoAssignCategories:(!oe||0===oe.length)&&!0===r[2].automaticAssignment,...r[0],sections:r[1],settings:r[2],...r[3]})}catch(e){he(e.message,"error")}})()}),[]),(0,t.useEffect)((()=>{Array.isArray(C)&&C.length?C.forEach((e=>he(e.message,e.type))):console.log("Notices dispatched, but none to display.")}),[he,C]),r().createElement(r().Fragment,null,r().createElement(c.PluginSidebarMoreMenuItem,{target:"publish-to-apple-news"},(0,u.__)("Apple News Options","apple-news")),r().createElement(c.PluginSidebar,{name:"publish-to-apple-news",title:(0,u.__)("Publish to Apple News Options","apple-news")},r().createElement(P,{autoAssignCategories:o,automaticAssignment:_,onChangeAutoAssignCategories:t=>{n({...e,autoAssignCategories:t}),fe([])},onChangeSelectedSections:e=>fe(oe.includes(e)?oe.filter((t=>t!==e)):[...oe,e]),sections:f,selectedSections:oe}),r().createElement(S,{isHidden:z,isPaid:W,isPreview:$,isSponsored:Y,metadata:de,onChangeIsHidden:H,onChangeIsPaid:G,onChangeIsPreview:V,onChangeIsSponsored:K,onChangeMetadata:e=>Z(JSON.stringify(e)),onChangeSuppressVideoURL:ce,onChangeUseImageComponent:pe,suppressVideoURL:le,useImageComponent:ue}),r().createElement(v,{maturityRating:X,onChangeMaturityRating:Q}),r().createElement(L,{onChangeSlug:ae,slug:ie}),r().createElement(I,{onChangePullquotePosition:re,onChangePullquoteText:te,pullquotePosition:ne,pullquoteText:ee}),r().createElement(y,{coverImageCaption:F,coverImageId:j,onChangeCoverImageCaption:q,onChangeCoverImageId:B}),"N/A"!==p?r().createElement(R,{apiId:N,dateCreated:k,dateModified:O,publishState:p,revision:M,shareUrl:U}):null,r().createElement(x,{apiAutosync:h,apiAutosyncDelete:m,apiAutosyncUpdate:g,deletePost:()=>me("delete"),loading:i,postIsDirty:E,postStatus:T,publishPost:()=>me("publish"),publishState:p,updatePost:()=>me("update"),userCanPublish:b})))}})}()}();
+//# sourceMappingURL=pluginSidebar.js.map
\ No newline at end of file
diff --git a/build/pluginSidebar.js.LICENSE.txt b/build/pluginSidebar.js.LICENSE.txt
new file mode 100644
index 00000000..5214269d
--- /dev/null
+++ b/build/pluginSidebar.js.LICENSE.txt
@@ -0,0 +1 @@
+/*! @license DOMPurify 3.1.2 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.2/LICENSE */
diff --git a/build/pluginSidebar.js.map b/build/pluginSidebar.js.map
new file mode 100644
index 00000000..0a88075c
--- /dev/null
+++ b/build/pluginSidebar.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"pluginSidebar.js","mappings":"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","sources":["webpack://publish-to-apple-news/./node_modules/@alleyinteractive/block-editor-tools/build/index.bundle.min.js","webpack://publish-to-apple-news/./node_modules/dompurify/dist/purify.js","webpack://publish-to-apple-news/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://publish-to-apple-news/./node_modules/prop-types/index.js","webpack://publish-to-apple-news/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://publish-to-apple-news/webpack/bootstrap","webpack://publish-to-apple-news/webpack/runtime/compat get default export","webpack://publish-to-apple-news/webpack/runtime/define property getters","webpack://publish-to-apple-news/webpack/runtime/hasOwnProperty shorthand","webpack://publish-to-apple-news/external window [\"wp\",\"plugins\"]","webpack://publish-to-apple-news/external window \"React\"","webpack://publish-to-apple-news/./assets/js/components/icon/index.jsx","webpack://publish-to-apple-news/external window [\"wp\",\"apiFetch\"]","webpack://publish-to-apple-news/external window [\"wp\",\"data\"]","webpack://publish-to-apple-news/external window [\"wp\",\"editPost\"]","webpack://publish-to-apple-news/external window [\"wp\",\"i18n\"]","webpack://publish-to-apple-news/external window [\"wp\",\"components\"]","webpack://publish-to-apple-news/./assets/js/pluginsidebar/panels/cover-image.jsx","webpack://publish-to-apple-news/./assets/js/pluginsidebar/panels/maturity-rating.jsx","webpack://publish-to-apple-news/./assets/js/config/prop-types.js","webpack://publish-to-apple-news/./assets/js/util/delete-at-index.js","webpack://publish-to-apple-news/./assets/js/util/update-value-at-index.js","webpack://publish-to-apple-news/./assets/js/pluginsidebar/panels/metadata.jsx","webpack://publish-to-apple-news/./assets/js/pluginsidebar/panels/publish-controls.jsx","webpack://publish-to-apple-news/./assets/js/pluginsidebar/panels/publish-info.jsx","webpack://publish-to-apple-news/./assets/js/pluginsidebar/panels/pull-quote.jsx","webpack://publish-to-apple-news/./assets/js/pluginsidebar/panels/sections.jsx","webpack://publish-to-apple-news/./assets/js/pluginsidebar/panels/slug.jsx","webpack://publish-to-apple-news/./assets/js/util/safe-json-parse-array.js","webpack://publish-to-apple-news/./assets/js/util/safe-json-parse.js","webpack://publish-to-apple-news/./assets/js/pluginsidebar/index.jsx","webpack://publish-to-apple-news/./assets/js/pluginsidebar/sidebar.jsx"],"sourcesContent":["/*! For license information please see index.bundle.min.js.LICENSE.txt */\n!function(e,t){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)(\"object\"==typeof exports?exports:e)[r]=n[r]}}(self,(()=>(()=>{var e={6484:(e,t)=>{var n;!function(){\"use strict\";var r={}.hasOwnProperty;function s(){for(var e=[],t=0;t{\"use strict\";n.d(t,{c:()=>a});var r=n(2876),s=n.n(r),o=n(1849),i=n.n(o)()(s());i.push([e.id,\".alley-scripts-post-picker__post-list{display:flex;flex-wrap:wrap;float:left;height:calc(70vh - 200px);justify-content:flex-start;overflow-y:auto;padding:8px;width:100%}.alley-scripts-post-picker__post{border:1px solid #eee;height:auto;justify-content:center;margin:0 8px 8px 0;transition:background-color .2s ease-in-out;width:calc((100% - 40px)/3)}@media(min-width: 780px){.alley-scripts-post-picker__post{width:calc((100% - 40px)/5)}}.alley-scripts-post-picker__post:hover{background-color:#f5f5f5}.alley-scripts-post-picker__post.is-selected{background-color:#f5f5f5}.alley-scripts-post-picker__load-more{clear:both;float:left;text-align:center;width:100%}\",\"\",{version:3,sources:[\"webpack://./src/components/post-picker/post-list.scss\"],names:[],mappings:\"AAAA,sCACE,YAAA,CACA,cAAA,CACA,UAAA,CACA,yBAAA,CACA,0BAAA,CACA,eAAA,CACA,WAAA,CACA,UAAA,CAGF,iCACE,qBAAA,CACA,WAAA,CACA,sBAAA,CACA,kBAAA,CACA,2CAAA,CACA,2BAAA,CAGA,yBATF,iCAUI,2BAAA,CAAA,CAGF,uCACE,wBAAA,CAGF,6CACE,wBAAA,CAIJ,sCACE,UAAA,CACA,UAAA,CACA,iBAAA,CACA,UAAA\",sourcesContent:[\".alley-scripts-post-picker__post-list {\\n display: flex;\\n flex-wrap: wrap;\\n float: left;\\n height: calc(70vh - 200px);\\n justify-content: flex-start;\\n overflow-y: auto;\\n padding: 8px;\\n width: 100%;\\n}\\n\\n.alley-scripts-post-picker__post {\\n border: 1px solid #eee;\\n height: auto;\\n justify-content: center;\\n margin: 0 8px 8px 0;\\n transition: background-color 0.2s ease-in-out;\\n width: calc((100% - 40px) / 3);\\n\\n\\n @media (min-width: 780px) {\\n width: calc((100% - 40px) / 5);\\n }\\n\\n &:hover {\\n background-color: #f5f5f5;\\n }\\n\\n &.is-selected {\\n background-color: #f5f5f5;\\n }\\n}\\n\\n.alley-scripts-post-picker__load-more {\\n clear: both;\\n float: left;\\n text-align: center;\\n width: 100%;\\n}\\n\"],sourceRoot:\"\"}]);const a=i},9680:(e,t,n)=>{\"use strict\";n.d(t,{c:()=>a});var r=n(2876),s=n.n(r),o=n(1849),i=n.n(o)()(s());i.push([e.id,\".alley-scripts-post-picker__modal .components-modal__content{width:90vw}.alley-scripts-post-picker__buttons{clear:both;display:block;text-align:right;width:100%}.alley-scripts-post-picker__buttons button{margin:5px}\",\"\",{version:3,sources:[\"webpack://./src/components/post-picker/search-modal.scss\"],names:[],mappings:\"AACE,6DACE,UAAA,CAIJ,oCACE,UAAA,CACA,aAAA,CACA,gBAAA,CACA,UAAA,CAEA,2CACE,UAAA\",sourcesContent:[\".alley-scripts-post-picker__modal {\\n .components-modal__content {\\n width: 90vw;\\n }\\n}\\n\\n.alley-scripts-post-picker__buttons {\\n clear: both;\\n display: block;\\n text-align: right;\\n width: 100%;\\n\\n button {\\n margin: 5px;\\n }\\n}\\n\"],sourceRoot:\"\"}]);const a=i},3800:(e,t,n)=>{\"use strict\";n.d(t,{c:()=>a});var r=n(2876),s=n.n(r),o=n(1849),i=n.n(o)()(s());i.push([e.id,\".post-picker-notice{margin:0 0 .5rem 0}\",\"\",{version:3,sources:[\"webpack://./src/components/post-picker/style.scss\"],names:[],mappings:\"AAAA,oBACE,kBAAA\",sourcesContent:[\".post-picker-notice {\\n margin: 0 0 0.5rem 0;\\n}\\n\"],sourceRoot:\"\"}]);const a=i},5500:(e,t,n)=>{\"use strict\";n.d(t,{c:()=>a});var r=n(2876),s=n.n(r),o=n(1849),i=n.n(o)()(s());i.push([e.id,'.edit-post-sidebar .autocomplete__component,.editor-styles-wrapper .autocomplete__component{margin-bottom:20px}.edit-post-sidebar .autocomplete-base-control,.editor-styles-wrapper .autocomplete-base-control{position:relative}.edit-post-sidebar .autocomplete-text-control__input,.editor-styles-wrapper .autocomplete-text-control__input{margin:0}.edit-post-sidebar .autocomplete__selection-list,.editor-styles-wrapper .autocomplete__selection-list{list-style-type:none;margin:0 0 6px;padding:0}.edit-post-sidebar .autocomplete__selection-list--item,.editor-styles-wrapper .autocomplete__selection-list--item{display:inline-block;list-style:none}.edit-post-sidebar .autocomplete__selection-list--item--button,.editor-styles-wrapper .autocomplete__selection-list--item--button{margin-bottom:4px;margin-right:3px}.edit-post-sidebar .autocomplete__selection-list--item--button::after,.editor-styles-wrapper .autocomplete__selection-list--item--button::after{content:\"×\";font-size:16px;line-height:20px;margin-left:5px}.edit-post-sidebar .autocomplete__dropdown,.editor-styles-wrapper .autocomplete__dropdown{background-color:#fff;border-color:rgba(0,0,0,0) #e2e4e7 #e2e4e7;border-radius:0 0 4px 4px;border-style:solid;border-width:0 1px 1px;left:0;max-height:0;overflow-y:hidden;position:absolute;top:calc(100% + 1px);visibility:hidden;width:100%;z-index:10}.edit-post-sidebar .autocomplete__dropdown--is-open,.editor-styles-wrapper .autocomplete__dropdown--is-open{box-shadow:0 3px 30px rgba(25,30,35,.1);max-height:225px;overflow-y:scroll;visibility:visible}.edit-post-sidebar .autocomplete__dropdown--notice,.editor-styles-wrapper .autocomplete__dropdown--notice{padding:15px}.edit-post-sidebar .autocomplete__dropdown--results,.editor-styles-wrapper .autocomplete__dropdown--results{list-style:none;margin:0;padding:0}.edit-post-sidebar .autocomplete__list--item,.editor-styles-wrapper .autocomplete__list--item{list-style:none}.edit-post-sidebar .autocomplete__list--item>button,.editor-styles-wrapper .autocomplete__list--item>button{background:rgba(0,0,0,0);border-color:#e2e4e7;border-style:solid;border-width:0 0 1px;height:100%;line-height:1.25;text-align:left;white-space:inherit;width:100%}.edit-post-sidebar .autocomplete__list--item:last-child>button,.editor-styles-wrapper .autocomplete__list--item:last-child>button{border-bottom:0}',\"\",{version:3,sources:[\"webpack://./src/components/selector/styles.scss\"],names:[],mappings:\"AAAA,4FAgBI,kBACE,CAAA,gGAMF,iBACE,CAAA,8GAMF,QACE,CAAA,sGAMF,oBACE,CAAA,cACA,CAAA,SACA,CAAA,kHAEA,oBACE,CAAA,eACA,CAAA,kIAEA,iBACE,CAAA,gBACA,CAAA,gJAEA,WACE,CAAA,cACA,CAAA,gBACA,CAAA,eACA,CAAA,0FASR,qBACE,CAAA,0CACA,CAAA,yBACA,CAAA,kBACA,CAAA,sBACA,CAAA,MACA,CAAA,YACA,CAAA,iBACA,CAAA,iBACA,CAAA,oBACA,CAAA,iBACA,CAAA,UACA,CAAA,UACA,CAAA,4GAGA,uCACE,CAAA,gBACA,CAAA,iBACA,CAAA,kBACA,CAAA,0GAIF,YACE,CAAA,4GAIF,eACE,CAAA,QACA,CAAA,SACA,CAAA,8FAOJ,eACE,CAAA,4GAEA,wBACE,CAAA,oBACA,CAAA,kBACA,CAAA,oBACA,CAAA,WACA,CAAA,gBACA,CAAA,eACA,CAAA,mBACA,CAAA,UACA,CAAA,kIAGF,eACE\",sourcesContent:[\"//--------------------------------------------------------------\\n// AutoComplete Styles\\n//--------------------------------------------------------------\\n\\n/* stylelint-disable max-nesting-depth */\\n\\n//-----------------------------------------\\n// Accommodate editor well, or the sidebar.\\n//-----------------------------------------\\n.edit-post-sidebar,\\n.editor-styles-wrapper {\\n .autocomplete {\\n\\n //-----------------------------------------\\n // Parent form wrapper.\\n //-----------------------------------------\\n &__component {\\n margin-bottom: 20px;\\n }\\n\\n //-----------------------------------------\\n // Wrapper\\n //-----------------------------------------\\n &-base-control {\\n position: relative;\\n }\\n\\n //-----------------------------------------\\n // Input\\n //-----------------------------------------\\n &-text-control__input {\\n margin: 0;\\n }\\n\\n //-----------------------------------------\\n // Selected buttons.\\n //-----------------------------------------\\n &__selection-list {\\n list-style-type: none;\\n margin: 0 0 6px;\\n padding: 0;\\n\\n &--item {\\n display: inline-block;\\n list-style: none;\\n\\n &--button {\\n margin-bottom: 4px;\\n margin-right: 3px;\\n\\n &::after {\\n content: '×';\\n font-size: 16px;\\n line-height: 20px;\\n margin-left: 5px;\\n }\\n }\\n }\\n }\\n\\n //-----------------------------------------\\n // Results\\n //-----------------------------------------\\n &__dropdown {\\n background-color: #fff;\\n border-color: transparent #e2e4e7 #e2e4e7;\\n border-radius: 0 0 4px 4px;\\n border-style: solid;\\n border-width: 0 1px 1px;\\n left: 0;\\n max-height: 0;\\n overflow-y: hidden;\\n position: absolute;\\n top: calc(100% + 1px); // Offset focus border.\\n visibility: hidden;\\n width: 100%;\\n z-index: 10;\\n\\n // Container is open.\\n &--is-open {\\n box-shadow: 0 3px 30px rgba(25, 30, 35, 0.1);\\n max-height: 225px;\\n overflow-y: scroll;\\n visibility: visible;\\n }\\n\\n // Notice handler.\\n &--notice {\\n padding: 15px;\\n }\\n\\n // Results container.\\n &--results {\\n list-style: none;\\n margin: 0;\\n padding: 0;\\n }\\n }\\n\\n //-----------------------------------------\\n // List/Results\\n //-----------------------------------------\\n &__list--item {\\n list-style: none;\\n\\n > button {\\n background: transparent;\\n border-color: #e2e4e7;\\n border-style: solid;\\n border-width: 0 0 1px;\\n height: 100%;\\n line-height: 1.25;\\n text-align: left;\\n white-space: inherit;\\n width: 100%;\\n }\\n\\n &:last-child > button {\\n border-bottom: 0;\\n }\\n }\\n }\\n}\\n\"],sourceRoot:\"\"}]);const a=i},1849:e=>{\"use strict\";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=\"\",r=void 0!==t[5];return t[4]&&(n+=\"@supports (\".concat(t[4],\") {\")),t[2]&&(n+=\"@media \".concat(t[2],\" {\")),r&&(n+=\"@layer\".concat(t[5].length>0?\" \".concat(t[5]):\"\",\" {\")),n+=e(t),r&&(n+=\"}\"),t[2]&&(n+=\"}\"),t[4]&&(n+=\"}\"),n})).join(\"\")},t.i=function(e,n,r,s,o){\"string\"==typeof e&&(e=[[null,e,void 0]]);var i={};if(r)for(var a=0;a0?\" \".concat(u[5]):\"\",\" {\").concat(u[1],\"}\")),u[5]=o),n&&(u[2]?(u[1]=\"@media \".concat(u[2],\" {\").concat(u[1],\"}\"),u[2]=n):u[2]=n),s&&(u[4]?(u[1]=\"@supports (\".concat(u[4],\") {\").concat(u[1],\"}\"),u[4]=s):u[4]=\"\".concat(s)),t.push(u))}},t}},2876:e=>{\"use strict\";e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if(\"function\"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),s=\"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(r),o=\"/*# \".concat(s,\" */\");return[t].concat([o]).join(\"\\n\")}return[t].join(\"\\n\")}},6595:function(e){e.exports=function(){\"use strict\";const{entries:e,setPrototypeOf:t,isFrozen:n,getPrototypeOf:r,getOwnPropertyDescriptor:s}=Object;let{freeze:o,seal:i,create:a}=Object,{apply:l,construct:c}=\"undefined\"!=typeof Reflect&&Reflect;o||(o=function(e){return e}),i||(i=function(e){return e}),l||(l=function(e,t,n){return e.apply(t,n)}),c||(c=function(e,t){return new e(...t)});const u=C(Array.prototype.forEach),d=C(Array.prototype.pop),p=C(Array.prototype.push),f=C(String.prototype.toLowerCase),h=C(String.prototype.toString),m=C(String.prototype.match),g=C(String.prototype.replace),y=C(String.prototype.indexOf),v=C(String.prototype.trim),A=C(RegExp.prototype.test),b=(_=TypeError,function(){for(var e=arguments.length,t=new Array(e),n=0;n1?n-1:0),s=1;s2&&void 0!==arguments[2]?arguments[2]:f;t&&t(e,null);let o=r.length;for(;o--;){let t=r[o];if(\"string\"==typeof t){const e=s(t);e!==t&&(n(r)||(r[o]=e),t=e)}e[t]=!0}return e}function w(t){const n=a(null);for(const[r,o]of e(t))void 0!==s(t,r)&&(n[r]=o);return n}function S(e,t){for(;null!==e;){const n=s(e,t);if(n){if(n.get)return C(n.get);if(\"function\"==typeof n.value)return C(n.value)}e=r(e)}return function(e){return console.warn(\"fallback value for\",e),null}}const k=o([\"a\",\"abbr\",\"acronym\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"bdi\",\"bdo\",\"big\",\"blink\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"center\",\"cite\",\"code\",\"col\",\"colgroup\",\"content\",\"data\",\"datalist\",\"dd\",\"decorator\",\"del\",\"details\",\"dfn\",\"dialog\",\"dir\",\"div\",\"dl\",\"dt\",\"element\",\"em\",\"fieldset\",\"figcaption\",\"figure\",\"font\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"img\",\"input\",\"ins\",\"kbd\",\"label\",\"legend\",\"li\",\"main\",\"map\",\"mark\",\"marquee\",\"menu\",\"menuitem\",\"meter\",\"nav\",\"nobr\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"picture\",\"pre\",\"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"section\",\"select\",\"shadow\",\"small\",\"source\",\"spacer\",\"span\",\"strike\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"template\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"tr\",\"track\",\"tt\",\"u\",\"ul\",\"var\",\"video\",\"wbr\"]),E=o([\"svg\",\"a\",\"altglyph\",\"altglyphdef\",\"altglyphitem\",\"animatecolor\",\"animatemotion\",\"animatetransform\",\"circle\",\"clippath\",\"defs\",\"desc\",\"ellipse\",\"filter\",\"font\",\"g\",\"glyph\",\"glyphref\",\"hkern\",\"image\",\"line\",\"lineargradient\",\"marker\",\"mask\",\"metadata\",\"mpath\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialgradient\",\"rect\",\"stop\",\"style\",\"switch\",\"symbol\",\"text\",\"textpath\",\"title\",\"tref\",\"tspan\",\"view\",\"vkern\"]),R=o([\"feBlend\",\"feColorMatrix\",\"feComponentTransfer\",\"feComposite\",\"feConvolveMatrix\",\"feDiffuseLighting\",\"feDisplacementMap\",\"feDistantLight\",\"feDropShadow\",\"feFlood\",\"feFuncA\",\"feFuncB\",\"feFuncG\",\"feFuncR\",\"feGaussianBlur\",\"feImage\",\"feMerge\",\"feMergeNode\",\"feMorphology\",\"feOffset\",\"fePointLight\",\"feSpecularLighting\",\"feSpotLight\",\"feTile\",\"feTurbulence\"]),T=o([\"animate\",\"color-profile\",\"cursor\",\"discard\",\"font-face\",\"font-face-format\",\"font-face-name\",\"font-face-src\",\"font-face-uri\",\"foreignobject\",\"hatch\",\"hatchpath\",\"mesh\",\"meshgradient\",\"meshpatch\",\"meshrow\",\"missing-glyph\",\"script\",\"set\",\"solidcolor\",\"unknown\",\"use\"]),I=o([\"math\",\"menclose\",\"merror\",\"mfenced\",\"mfrac\",\"mglyph\",\"mi\",\"mlabeledtr\",\"mmultiscripts\",\"mn\",\"mo\",\"mover\",\"mpadded\",\"mphantom\",\"mroot\",\"mrow\",\"ms\",\"mspace\",\"msqrt\",\"mstyle\",\"msub\",\"msup\",\"msubsup\",\"mtable\",\"mtd\",\"mtext\",\"mtr\",\"munder\",\"munderover\",\"mprescripts\"]),N=o([\"maction\",\"maligngroup\",\"malignmark\",\"mlongdiv\",\"mscarries\",\"mscarry\",\"msgroup\",\"mstack\",\"msline\",\"msrow\",\"semantics\",\"annotation\",\"annotation-xml\",\"mprescripts\",\"none\"]),P=o([\"#text\"]),O=o([\"accept\",\"action\",\"align\",\"alt\",\"autocapitalize\",\"autocomplete\",\"autopictureinpicture\",\"autoplay\",\"background\",\"bgcolor\",\"border\",\"capture\",\"cellpadding\",\"cellspacing\",\"checked\",\"cite\",\"class\",\"clear\",\"color\",\"cols\",\"colspan\",\"controls\",\"controlslist\",\"coords\",\"crossorigin\",\"datetime\",\"decoding\",\"default\",\"dir\",\"disabled\",\"disablepictureinpicture\",\"disableremoteplayback\",\"download\",\"draggable\",\"enctype\",\"enterkeyhint\",\"face\",\"for\",\"headers\",\"height\",\"hidden\",\"high\",\"href\",\"hreflang\",\"id\",\"inputmode\",\"integrity\",\"ismap\",\"kind\",\"label\",\"lang\",\"list\",\"loading\",\"loop\",\"low\",\"max\",\"maxlength\",\"media\",\"method\",\"min\",\"minlength\",\"multiple\",\"muted\",\"name\",\"nonce\",\"noshade\",\"novalidate\",\"nowrap\",\"open\",\"optimum\",\"pattern\",\"placeholder\",\"playsinline\",\"poster\",\"preload\",\"pubdate\",\"radiogroup\",\"readonly\",\"rel\",\"required\",\"rev\",\"reversed\",\"role\",\"rows\",\"rowspan\",\"spellcheck\",\"scope\",\"selected\",\"shape\",\"size\",\"sizes\",\"span\",\"srclang\",\"start\",\"src\",\"srcset\",\"step\",\"style\",\"summary\",\"tabindex\",\"title\",\"translate\",\"type\",\"usemap\",\"valign\",\"value\",\"width\",\"xmlns\",\"slot\"]),L=o([\"accent-height\",\"accumulate\",\"additive\",\"alignment-baseline\",\"ascent\",\"attributename\",\"attributetype\",\"azimuth\",\"basefrequency\",\"baseline-shift\",\"begin\",\"bias\",\"by\",\"class\",\"clip\",\"clippathunits\",\"clip-path\",\"clip-rule\",\"color\",\"color-interpolation\",\"color-interpolation-filters\",\"color-profile\",\"color-rendering\",\"cx\",\"cy\",\"d\",\"dx\",\"dy\",\"diffuseconstant\",\"direction\",\"display\",\"divisor\",\"dur\",\"edgemode\",\"elevation\",\"end\",\"fill\",\"fill-opacity\",\"fill-rule\",\"filter\",\"filterunits\",\"flood-color\",\"flood-opacity\",\"font-family\",\"font-size\",\"font-size-adjust\",\"font-stretch\",\"font-style\",\"font-variant\",\"font-weight\",\"fx\",\"fy\",\"g1\",\"g2\",\"glyph-name\",\"glyphref\",\"gradientunits\",\"gradienttransform\",\"height\",\"href\",\"id\",\"image-rendering\",\"in\",\"in2\",\"k\",\"k1\",\"k2\",\"k3\",\"k4\",\"kerning\",\"keypoints\",\"keysplines\",\"keytimes\",\"lang\",\"lengthadjust\",\"letter-spacing\",\"kernelmatrix\",\"kernelunitlength\",\"lighting-color\",\"local\",\"marker-end\",\"marker-mid\",\"marker-start\",\"markerheight\",\"markerunits\",\"markerwidth\",\"maskcontentunits\",\"maskunits\",\"max\",\"mask\",\"media\",\"method\",\"mode\",\"min\",\"name\",\"numoctaves\",\"offset\",\"operator\",\"opacity\",\"order\",\"orient\",\"orientation\",\"origin\",\"overflow\",\"paint-order\",\"path\",\"pathlength\",\"patterncontentunits\",\"patterntransform\",\"patternunits\",\"points\",\"preservealpha\",\"preserveaspectratio\",\"primitiveunits\",\"r\",\"rx\",\"ry\",\"radius\",\"refx\",\"refy\",\"repeatcount\",\"repeatdur\",\"restart\",\"result\",\"rotate\",\"scale\",\"seed\",\"shape-rendering\",\"specularconstant\",\"specularexponent\",\"spreadmethod\",\"startoffset\",\"stddeviation\",\"stitchtiles\",\"stop-color\",\"stop-opacity\",\"stroke-dasharray\",\"stroke-dashoffset\",\"stroke-linecap\",\"stroke-linejoin\",\"stroke-miterlimit\",\"stroke-opacity\",\"stroke\",\"stroke-width\",\"style\",\"surfacescale\",\"systemlanguage\",\"tabindex\",\"targetx\",\"targety\",\"transform\",\"transform-origin\",\"text-anchor\",\"text-decoration\",\"text-rendering\",\"textlength\",\"type\",\"u1\",\"u2\",\"unicode\",\"values\",\"viewbox\",\"visibility\",\"version\",\"vert-adv-y\",\"vert-origin-x\",\"vert-origin-y\",\"width\",\"word-spacing\",\"wrap\",\"writing-mode\",\"xchannelselector\",\"ychannelselector\",\"x\",\"x1\",\"x2\",\"xmlns\",\"y\",\"y1\",\"y2\",\"z\",\"zoomandpan\"]),j=o([\"accent\",\"accentunder\",\"align\",\"bevelled\",\"close\",\"columnsalign\",\"columnlines\",\"columnspan\",\"denomalign\",\"depth\",\"dir\",\"display\",\"displaystyle\",\"encoding\",\"fence\",\"frame\",\"height\",\"href\",\"id\",\"largeop\",\"length\",\"linethickness\",\"lspace\",\"lquote\",\"mathbackground\",\"mathcolor\",\"mathsize\",\"mathvariant\",\"maxsize\",\"minsize\",\"movablelimits\",\"notation\",\"numalign\",\"open\",\"rowalign\",\"rowlines\",\"rowspacing\",\"rowspan\",\"rspace\",\"rquote\",\"scriptlevel\",\"scriptminsize\",\"scriptsizemultiplier\",\"selection\",\"separator\",\"separators\",\"stretchy\",\"subscriptshift\",\"supscriptshift\",\"symmetric\",\"voffset\",\"width\",\"xmlns\"]),D=o([\"xlink:href\",\"xml:id\",\"xlink:title\",\"xml:space\",\"xmlns:xlink\"]),U=i(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm),M=i(/<%[\\w\\W]*|[\\w\\W]*%>/gm),B=i(/\\${[\\w\\W]*}/gm),F=i(/^data-[\\-\\w.\\u00B7-\\uFFFF]/),z=i(/^aria-[\\-\\w]+$/),q=i(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i),$=i(/^(?:\\w+script|data):/i),H=i(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g),W=i(/^html$/i);var G=Object.freeze({__proto__:null,MUSTACHE_EXPR:U,ERB_EXPR:M,TMPLIT_EXPR:B,DATA_ATTR:F,ARIA_ATTR:z,IS_ALLOWED_URI:q,IS_SCRIPT_OR_DATA:$,ATTR_WHITESPACE:H,DOCTYPE_NAME:W});const Y=function(){return\"undefined\"==typeof window?null:window};return function t(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Y();const r=e=>t(e);if(r.version=\"3.0.6\",r.removed=[],!n||!n.document||9!==n.document.nodeType)return r.isSupported=!1,r;let{document:s}=n;const i=s,l=i.currentScript,{DocumentFragment:c,HTMLTemplateElement:_,Node:C,Element:U,NodeFilter:M,NamedNodeMap:B=n.NamedNodeMap||n.MozNamedAttrMap,HTMLFormElement:F,DOMParser:z,trustedTypes:$}=n,H=U.prototype,V=S(H,\"cloneNode\"),K=S(H,\"nextSibling\"),Q=S(H,\"childNodes\"),J=S(H,\"parentNode\");if(\"function\"==typeof _){const e=s.createElement(\"template\");e.content&&e.content.ownerDocument&&(s=e.content.ownerDocument)}let X,Z=\"\";const{implementation:ee,createNodeIterator:te,createDocumentFragment:ne,getElementsByTagName:re}=s,{importNode:se}=i;let oe={};r.isSupported=\"function\"==typeof e&&\"function\"==typeof J&&ee&&void 0!==ee.createHTMLDocument;const{MUSTACHE_EXPR:ie,ERB_EXPR:ae,TMPLIT_EXPR:le,DATA_ATTR:ce,ARIA_ATTR:ue,IS_SCRIPT_OR_DATA:de,ATTR_WHITESPACE:pe}=G;let{IS_ALLOWED_URI:fe}=G,he=null;const me=x({},[...k,...E,...R,...I,...P]);let ge=null;const ye=x({},[...O,...L,...j,...D]);let ve=Object.seal(a(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ae=null,be=null,_e=!0,Ce=!0,xe=!1,we=!0,Se=!1,ke=!1,Ee=!1,Re=!1,Te=!1,Ie=!1,Ne=!1,Pe=!0,Oe=!1,Le=!0,je=!1,De={},Ue=null;const Me=x({},[\"annotation-xml\",\"audio\",\"colgroup\",\"desc\",\"foreignobject\",\"head\",\"iframe\",\"math\",\"mi\",\"mn\",\"mo\",\"ms\",\"mtext\",\"noembed\",\"noframes\",\"noscript\",\"plaintext\",\"script\",\"style\",\"svg\",\"template\",\"thead\",\"title\",\"video\",\"xmp\"]);let Be=null;const Fe=x({},[\"audio\",\"video\",\"img\",\"source\",\"image\",\"track\"]);let ze=null;const qe=x({},[\"alt\",\"class\",\"for\",\"id\",\"label\",\"name\",\"pattern\",\"placeholder\",\"role\",\"summary\",\"title\",\"value\",\"style\",\"xmlns\"]),$e=\"http://www.w3.org/1998/Math/MathML\",He=\"http://www.w3.org/2000/svg\",We=\"http://www.w3.org/1999/xhtml\";let Ge=We,Ye=!1,Ve=null;const Ke=x({},[$e,He,We],h);let Qe=null;const Je=[\"application/xhtml+xml\",\"text/html\"];let Xe=null,Ze=null;const et=s.createElement(\"form\"),tt=function(e){return e instanceof RegExp||e instanceof Function},nt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!Ze||Ze!==e){if(e&&\"object\"==typeof e||(e={}),e=w(e),Qe=Qe=-1===Je.indexOf(e.PARSER_MEDIA_TYPE)?\"text/html\":e.PARSER_MEDIA_TYPE,Xe=\"application/xhtml+xml\"===Qe?h:f,he=\"ALLOWED_TAGS\"in e?x({},e.ALLOWED_TAGS,Xe):me,ge=\"ALLOWED_ATTR\"in e?x({},e.ALLOWED_ATTR,Xe):ye,Ve=\"ALLOWED_NAMESPACES\"in e?x({},e.ALLOWED_NAMESPACES,h):Ke,ze=\"ADD_URI_SAFE_ATTR\"in e?x(w(qe),e.ADD_URI_SAFE_ATTR,Xe):qe,Be=\"ADD_DATA_URI_TAGS\"in e?x(w(Fe),e.ADD_DATA_URI_TAGS,Xe):Fe,Ue=\"FORBID_CONTENTS\"in e?x({},e.FORBID_CONTENTS,Xe):Me,Ae=\"FORBID_TAGS\"in e?x({},e.FORBID_TAGS,Xe):{},be=\"FORBID_ATTR\"in e?x({},e.FORBID_ATTR,Xe):{},De=\"USE_PROFILES\"in e&&e.USE_PROFILES,_e=!1!==e.ALLOW_ARIA_ATTR,Ce=!1!==e.ALLOW_DATA_ATTR,xe=e.ALLOW_UNKNOWN_PROTOCOLS||!1,we=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,Se=e.SAFE_FOR_TEMPLATES||!1,ke=e.WHOLE_DOCUMENT||!1,Te=e.RETURN_DOM||!1,Ie=e.RETURN_DOM_FRAGMENT||!1,Ne=e.RETURN_TRUSTED_TYPE||!1,Re=e.FORCE_BODY||!1,Pe=!1!==e.SANITIZE_DOM,Oe=e.SANITIZE_NAMED_PROPS||!1,Le=!1!==e.KEEP_CONTENT,je=e.IN_PLACE||!1,fe=e.ALLOWED_URI_REGEXP||q,Ge=e.NAMESPACE||We,ve=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&tt(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(ve.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&tt(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(ve.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&\"boolean\"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(ve.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Se&&(Ce=!1),Ie&&(Te=!0),De&&(he=x({},[...P]),ge=[],!0===De.html&&(x(he,k),x(ge,O)),!0===De.svg&&(x(he,E),x(ge,L),x(ge,D)),!0===De.svgFilters&&(x(he,R),x(ge,L),x(ge,D)),!0===De.mathMl&&(x(he,I),x(ge,j),x(ge,D))),e.ADD_TAGS&&(he===me&&(he=w(he)),x(he,e.ADD_TAGS,Xe)),e.ADD_ATTR&&(ge===ye&&(ge=w(ge)),x(ge,e.ADD_ATTR,Xe)),e.ADD_URI_SAFE_ATTR&&x(ze,e.ADD_URI_SAFE_ATTR,Xe),e.FORBID_CONTENTS&&(Ue===Me&&(Ue=w(Ue)),x(Ue,e.FORBID_CONTENTS,Xe)),Le&&(he[\"#text\"]=!0),ke&&x(he,[\"html\",\"head\",\"body\"]),he.table&&(x(he,[\"tbody\"]),delete Ae.tbody),e.TRUSTED_TYPES_POLICY){if(\"function\"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw b('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');if(\"function\"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw b('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');X=e.TRUSTED_TYPES_POLICY,Z=X.createHTML(\"\")}else void 0===X&&(X=function(e,t){if(\"object\"!=typeof e||\"function\"!=typeof e.createPolicy)return null;let n=null;const r=\"data-tt-policy-suffix\";t&&t.hasAttribute(r)&&(n=t.getAttribute(r));const s=\"dompurify\"+(n?\"#\"+n:\"\");try{return e.createPolicy(s,{createHTML:e=>e,createScriptURL:e=>e})}catch(e){return console.warn(\"TrustedTypes policy \"+s+\" could not be created.\"),null}}($,l)),null!==X&&\"string\"==typeof Z&&(Z=X.createHTML(\"\"));o&&o(e),Ze=e}},rt=x({},[\"mi\",\"mo\",\"mn\",\"ms\",\"mtext\"]),st=x({},[\"foreignobject\",\"desc\",\"title\",\"annotation-xml\"]),ot=x({},[\"title\",\"style\",\"font\",\"a\",\"script\"]),it=x({},E);x(it,R),x(it,T);const at=x({},I);x(at,N);const lt=function(e){p(r.removed,{element:e});try{e.parentNode.removeChild(e)}catch(t){e.remove()}},ct=function(e,t){try{p(r.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){p(r.removed,{attribute:null,from:t})}if(t.removeAttribute(e),\"is\"===e&&!ge[e])if(Te||Ie)try{lt(t)}catch(e){}else try{t.setAttribute(e,\"\")}catch(e){}},ut=function(e){let t=null,n=null;if(Re)e=\"\"+e;else{const t=m(e,/^[\\r\\n\\t ]+/);n=t&&t[0]}\"application/xhtml+xml\"===Qe&&Ge===We&&(e=''+e+\"\");const r=X?X.createHTML(e):e;if(Ge===We)try{t=(new z).parseFromString(r,Qe)}catch(e){}if(!t||!t.documentElement){t=ee.createDocument(Ge,\"template\",null);try{t.documentElement.innerHTML=Ye?Z:r}catch(e){}}const o=t.body||t.documentElement;return e&&n&&o.insertBefore(s.createTextNode(n),o.childNodes[0]||null),Ge===We?re.call(t,ke?\"html\":\"body\")[0]:ke?t.documentElement:o},dt=function(e){return te.call(e.ownerDocument||e,e,M.SHOW_ELEMENT|M.SHOW_COMMENT|M.SHOW_TEXT,null)},pt=function(e){return\"function\"==typeof C&&e instanceof C},ft=function(e,t,n){oe[e]&&u(oe[e],(e=>{e.call(r,t,n,Ze)}))},ht=function(e){let t=null;if(ft(\"beforeSanitizeElements\",e,null),(n=e)instanceof F&&(\"string\"!=typeof n.nodeName||\"string\"!=typeof n.textContent||\"function\"!=typeof n.removeChild||!(n.attributes instanceof B)||\"function\"!=typeof n.removeAttribute||\"function\"!=typeof n.setAttribute||\"string\"!=typeof n.namespaceURI||\"function\"!=typeof n.insertBefore||\"function\"!=typeof n.hasChildNodes))return lt(e),!0;var n;const s=Xe(e.nodeName);if(ft(\"uponSanitizeElement\",e,{tagName:s,allowedTags:he}),e.hasChildNodes()&&!pt(e.firstElementChild)&&A(/<[/\\w]/g,e.innerHTML)&&A(/<[/\\w]/g,e.textContent))return lt(e),!0;if(!he[s]||Ae[s]){if(!Ae[s]&>(s)){if(ve.tagNameCheck instanceof RegExp&&A(ve.tagNameCheck,s))return!1;if(ve.tagNameCheck instanceof Function&&ve.tagNameCheck(s))return!1}if(Le&&!Ue[s]){const t=J(e)||e.parentNode,n=Q(e)||e.childNodes;if(n&&t)for(let r=n.length-1;r>=0;--r)t.insertBefore(V(n[r],!0),K(e))}return lt(e),!0}return e instanceof U&&!function(e){let t=J(e);t&&t.tagName||(t={namespaceURI:Ge,tagName:\"template\"});const n=f(e.tagName),r=f(t.tagName);return!!Ve[e.namespaceURI]&&(e.namespaceURI===He?t.namespaceURI===We?\"svg\"===n:t.namespaceURI===$e?\"svg\"===n&&(\"annotation-xml\"===r||rt[r]):Boolean(it[n]):e.namespaceURI===$e?t.namespaceURI===We?\"math\"===n:t.namespaceURI===He?\"math\"===n&&st[r]:Boolean(at[n]):e.namespaceURI===We?!(t.namespaceURI===He&&!st[r])&&!(t.namespaceURI===$e&&!rt[r])&&!at[n]&&(ot[n]||!it[n]):!(\"application/xhtml+xml\"!==Qe||!Ve[e.namespaceURI]))}(e)?(lt(e),!0):\"noscript\"!==s&&\"noembed\"!==s&&\"noframes\"!==s||!A(/<\\/no(script|embed|frames)/i,e.innerHTML)?(Se&&3===e.nodeType&&(t=e.textContent,u([ie,ae,le],(e=>{t=g(t,e,\" \")})),e.textContent!==t&&(p(r.removed,{element:e.cloneNode()}),e.textContent=t)),ft(\"afterSanitizeElements\",e,null),!1):(lt(e),!0)},mt=function(e,t,n){if(Pe&&(\"id\"===t||\"name\"===t)&&(n in s||n in et))return!1;if(Ce&&!be[t]&&A(ce,t));else if(_e&&A(ue,t));else if(!ge[t]||be[t]){if(!(gt(e)&&(ve.tagNameCheck instanceof RegExp&&A(ve.tagNameCheck,e)||ve.tagNameCheck instanceof Function&&ve.tagNameCheck(e))&&(ve.attributeNameCheck instanceof RegExp&&A(ve.attributeNameCheck,t)||ve.attributeNameCheck instanceof Function&&ve.attributeNameCheck(t))||\"is\"===t&&ve.allowCustomizedBuiltInElements&&(ve.tagNameCheck instanceof RegExp&&A(ve.tagNameCheck,n)||ve.tagNameCheck instanceof Function&&ve.tagNameCheck(n))))return!1}else if(ze[t]);else if(A(fe,g(n,pe,\"\")));else if(\"src\"!==t&&\"xlink:href\"!==t&&\"href\"!==t||\"script\"===e||0!==y(n,\"data:\")||!Be[e])if(xe&&!A(de,g(n,pe,\"\")));else if(n)return!1;return!0},gt=function(e){return e.indexOf(\"-\")>0},yt=function(e){ft(\"beforeSanitizeAttributes\",e,null);const{attributes:t}=e;if(!t)return;const n={attrName:\"\",attrValue:\"\",keepAttr:!0,allowedAttributes:ge};let s=t.length;for(;s--;){const o=t[s],{name:i,namespaceURI:a,value:l}=o,c=Xe(i);let p=\"value\"===i?l:v(l);if(n.attrName=c,n.attrValue=p,n.keepAttr=!0,n.forceKeepAttr=void 0,ft(\"uponSanitizeAttribute\",e,n),p=n.attrValue,n.forceKeepAttr)continue;if(ct(i,e),!n.keepAttr)continue;if(!we&&A(/\\/>/i,p)){ct(i,e);continue}Se&&u([ie,ae,le],(e=>{p=g(p,e,\" \")}));const f=Xe(e.nodeName);if(mt(f,c,p)){if(!Oe||\"id\"!==c&&\"name\"!==c||(ct(i,e),p=\"user-content-\"+p),X&&\"object\"==typeof $&&\"function\"==typeof $.getAttributeType)if(a);else switch($.getAttributeType(f,c)){case\"TrustedHTML\":p=X.createHTML(p);break;case\"TrustedScriptURL\":p=X.createScriptURL(p)}try{a?e.setAttributeNS(a,i,p):e.setAttribute(i,p),d(r.removed)}catch(e){}}}ft(\"afterSanitizeAttributes\",e,null)},vt=function e(t){let n=null;const r=dt(t);for(ft(\"beforeSanitizeShadowDOM\",t,null);n=r.nextNode();)ft(\"uponSanitizeShadowNode\",n,null),ht(n)||(n.content instanceof c&&e(n.content),yt(n));ft(\"afterSanitizeShadowDOM\",t,null)};return r.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null,s=null,o=null,a=null;if(Ye=!e,Ye&&(e=\"\\x3c!--\\x3e\"),\"string\"!=typeof e&&!pt(e)){if(\"function\"!=typeof e.toString)throw b(\"toString is not a function\");if(\"string\"!=typeof(e=e.toString()))throw b(\"dirty is not a string, aborting\")}if(!r.isSupported)return e;if(Ee||nt(t),r.removed=[],\"string\"==typeof e&&(je=!1),je){if(e.nodeName){const t=Xe(e.nodeName);if(!he[t]||Ae[t])throw b(\"root node is forbidden and cannot be sanitized in-place\")}}else if(e instanceof C)n=ut(\"\\x3c!----\\x3e\"),s=n.ownerDocument.importNode(e,!0),1===s.nodeType&&\"BODY\"===s.nodeName||\"HTML\"===s.nodeName?n=s:n.appendChild(s);else{if(!Te&&!Se&&!ke&&-1===e.indexOf(\"<\"))return X&&Ne?X.createHTML(e):e;if(n=ut(e),!n)return Te?null:Ne?Z:\"\"}n&&Re&<(n.firstChild);const l=dt(je?e:n);for(;o=l.nextNode();)ht(o)||(o.content instanceof c&&vt(o.content),yt(o));if(je)return e;if(Te){if(Ie)for(a=ne.call(n.ownerDocument);n.firstChild;)a.appendChild(n.firstChild);else a=n;return(ge.shadowroot||ge.shadowrootmode)&&(a=se.call(i,a,!0)),a}let d=ke?n.outerHTML:n.innerHTML;return ke&&he[\"!doctype\"]&&n.ownerDocument&&n.ownerDocument.doctype&&n.ownerDocument.doctype.name&&A(W,n.ownerDocument.doctype.name)&&(d=\"\\n\"+d),Se&&u([ie,ae,le],(e=>{d=g(d,e,\" \")})),X&&Ne?X.createHTML(d):d},r.setConfig=function(){nt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Ee=!0},r.clearConfig=function(){Ze=null,Ee=!1},r.isValidAttribute=function(e,t,n){Ze||nt({});const r=Xe(e),s=Xe(t);return mt(r,s,n)},r.addHook=function(e,t){\"function\"==typeof t&&(oe[e]=oe[e]||[],p(oe[e],t))},r.removeHook=function(e){if(oe[e])return d(oe[e])},r.removeHooks=function(e){oe[e]&&(oe[e]=[])},r.removeAllHooks=function(){oe={}},r}()}()},2232:function(e,t){var n,r;n=function e(){\"use strict\";var t=\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:void 0!==t?t:{},n=!t.document&&!!t.postMessage,r=t.IS_PAPA_WORKER||!1,s={},o=0,i={parse:function(n,r){var a=(r=r||{}).dynamicTyping||!1;if(_(a)&&(r.dynamicTypingFunction=a,a={}),r.dynamicTyping=a,r.transform=!!_(r.transform)&&r.transform,r.worker&&i.WORKERS_SUPPORTED){var l=function(){if(!i.WORKERS_SUPPORTED)return!1;var n,r,a=(n=t.URL||t.webkitURL||null,r=e.toString(),i.BLOB_URL||(i.BLOB_URL=n.createObjectURL(new Blob([\"var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; \",\"(\",r,\")();\"],{type:\"text/javascript\"})))),l=new t.Worker(a);return l.onmessage=g,l.id=o++,s[l.id]=l}();return l.userStep=r.step,l.userChunk=r.chunk,l.userComplete=r.complete,l.userError=r.error,r.step=_(r.step),r.chunk=_(r.chunk),r.complete=_(r.complete),r.error=_(r.error),delete r.worker,void l.postMessage({input:n,config:r,workerId:l.id})}var f=null;return i.NODE_STREAM_INPUT,\"string\"==typeof n?(n=function(e){return 65279===e.charCodeAt(0)?e.slice(1):e}(n),f=r.download?new c(r):new d(r)):!0===n.readable&&_(n.read)&&_(n.on)?f=new p(r):(t.File&&n instanceof File||n instanceof Object)&&(f=new u(r)),f.stream(n)},unparse:function(e,t){var n=!1,r=!0,s=\",\",o=\"\\r\\n\",a='\"',l=a+a,c=!1,u=null,d=!1;!function(){if(\"object\"==typeof t){if(\"string\"!=typeof t.delimiter||i.BAD_DELIMITERS.filter((function(e){return-1!==t.delimiter.indexOf(e)})).length||(s=t.delimiter),(\"boolean\"==typeof t.quotes||\"function\"==typeof t.quotes||Array.isArray(t.quotes))&&(n=t.quotes),\"boolean\"!=typeof t.skipEmptyLines&&\"string\"!=typeof t.skipEmptyLines||(c=t.skipEmptyLines),\"string\"==typeof t.newline&&(o=t.newline),\"string\"==typeof t.quoteChar&&(a=t.quoteChar),\"boolean\"==typeof t.header&&(r=t.header),Array.isArray(t.columns)){if(0===t.columns.length)throw new Error(\"Option columns is empty\");u=t.columns}void 0!==t.escapeChar&&(l=t.escapeChar+a),(\"boolean\"==typeof t.escapeFormulae||t.escapeFormulae instanceof RegExp)&&(d=t.escapeFormulae instanceof RegExp?t.escapeFormulae:/^[=+\\-@\\t\\r].*$/)}}();var p=new RegExp(h(a),\"g\");if(\"string\"==typeof e&&(e=JSON.parse(e)),Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return f(null,e,c);if(\"object\"==typeof e[0])return f(u||Object.keys(e[0]),e,c)}else if(\"object\"==typeof e)return\"string\"==typeof e.data&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||(e.fields=e.meta&&e.meta.fields||u),e.fields||(e.fields=Array.isArray(e.data[0])?e.fields:\"object\"==typeof e.data[0]?Object.keys(e.data[0]):[]),Array.isArray(e.data[0])||\"object\"==typeof e.data[0]||(e.data=[e.data])),f(e.fields||[],e.data||[],c);throw new Error(\"Unable to serialize unrecognized input\");function f(e,t,n){var i=\"\";\"string\"==typeof e&&(e=JSON.parse(e)),\"string\"==typeof t&&(t=JSON.parse(t));var a=Array.isArray(e)&&0=this._config.preview;if(r)t.postMessage({results:a,workerId:i.WORKER_ID,finished:c});else if(_(this._config.chunk)&&!n){if(this._config.chunk(a,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);a=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(a.data),this._completeResults.errors=this._completeResults.errors.concat(a.errors),this._completeResults.meta=a.meta),this._completed||!c||!_(this._config.complete)||a&&a.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),c||a&&a.meta.paused||this._nextChunk(),a}this._halted=!0},this._sendError=function(e){_(this._config.error)?this._config.error(e):r&&this._config.error&&t.postMessage({workerId:i.WORKER_ID,error:e,finished:!1})}}function c(e){var t;(e=e||{}).chunkSize||(e.chunkSize=i.RemoteChunkSize),l.call(this,e),this._nextChunk=n?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(t=new XMLHttpRequest,this._config.withCredentials&&(t.withCredentials=this._config.withCredentials),n||(t.onload=b(this._chunkLoaded,this),t.onerror=b(this._chunkError,this)),t.open(this._config.downloadRequestBody?\"POST\":\"GET\",this._input,!n),this._config.downloadRequestHeaders){var e=this._config.downloadRequestHeaders;for(var r in e)t.setRequestHeader(r,e[r])}if(this._config.chunkSize){var s=this._start+this._config.chunkSize-1;t.setRequestHeader(\"Range\",\"bytes=\"+this._start+\"-\"+s)}try{t.send(this._config.downloadRequestBody)}catch(e){this._chunkError(e.message)}n&&0===t.status&&this._chunkError()}},this._chunkLoaded=function(){4===t.readyState&&(t.status<200||400<=t.status?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:t.responseText.length,this._finished=!this._config.chunkSize||this._start>=function(e){var t=e.getResponseHeader(\"Content-Range\");return null===t?-1:parseInt(t.substring(t.lastIndexOf(\"/\")+1))}(t),this.parseChunk(t.responseText)))},this._chunkError=function(e){var n=t.statusText||e;this._sendError(new Error(n))}}function u(e){var t,n;(e=e||{}).chunkSize||(e.chunkSize=i.LocalChunkSize),l.call(this,e);var r=\"undefined\"!=typeof FileReader;this.stream=function(e){this._input=e,n=e.slice||e.webkitSlice||e.mozSlice,r?((t=new FileReader).onload=b(this._chunkLoaded,this),t.onerror=b(this._chunkError,this)):t=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(t.error)}}function d(e){var t;l.call(this,e=e||{}),this.stream=function(e){return t=e,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var e,n=this._config.chunkSize;return n?(e=t.substring(0,n),t=t.substring(n)):(e=t,t=\"\"),this._finished=!t,this.parseChunk(e)}}}function p(e){l.call(this,e=e||{});var t=[],n=!0,r=!1;this.pause=function(){l.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){l.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(e){this._input=e,this._input.on(\"data\",this._streamData),this._input.on(\"end\",this._streamEnd),this._input.on(\"error\",this._streamError)},this._checkIsFinished=function(){r&&1===t.length&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):n=!0},this._streamData=b((function(e){try{t.push(\"string\"==typeof e?e:e.toString(this._config.encoding)),n&&(n=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(e){this._streamError(e)}}),this),this._streamError=b((function(e){this._streamCleanUp(),this._sendError(e)}),this),this._streamEnd=b((function(){this._streamCleanUp(),r=!0,this._streamData(\"\")}),this),this._streamCleanUp=b((function(){this._input.removeListener(\"data\",this._streamData),this._input.removeListener(\"end\",this._streamEnd),this._input.removeListener(\"error\",this._streamError)}),this)}function f(e){var t,n,r,s=Math.pow(2,53),o=-s,a=/^\\s*-?(\\d+\\.?|\\.\\d+|\\d+\\.\\d+)([eE][-+]?\\d+)?\\s*$/,l=/^((\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z)))$/,c=this,u=0,d=0,p=!1,f=!1,g=[],y={data:[],errors:[],meta:{}};if(_(e.step)){var v=e.step;e.step=function(t){if(y=t,x())C();else{if(C(),0===y.data.length)return;u+=t.data.length,e.preview&&u>e.preview?n.abort():(y.data=y.data[0],v(y,c))}}}function b(t){return\"greedy\"===e.skipEmptyLines?\"\"===t.join(\"\").trim():1===t.length&&0===t[0].length}function C(){return y&&r&&(S(\"Delimiter\",\"UndetectableDelimiter\",\"Unable to auto-detect delimiting character; defaulted to '\"+i.DefaultDelimiter+\"'\"),r=!1),e.skipEmptyLines&&(y.data=y.data.filter((function(e){return!b(e)}))),x()&&function(){if(y)if(Array.isArray(y.data[0])){for(var t=0;x()&&t=g.length?\"__parsed_extra\":g[r]),e.transform&&(i=e.transform(i,o)),i=w(o,i),\"__parsed_extra\"===o?(s[o]=s[o]||[],s[o].push(i)):s[o]=i}return e.header&&(r>g.length?S(\"FieldMismatch\",\"TooManyFields\",\"Too many fields: expected \"+g.length+\" fields but parsed \"+r,d+n):r=r.length/2?\"\\r\\n\":\"\\r\"}(s,l)),r=!1,e.delimiter)_(e.delimiter)&&(e.delimiter=e.delimiter(s),y.meta.delimiter=e.delimiter);else{var c=function(t,n,r,s,o){var a,l,c,u;o=o||[\",\",\"\\t\",\"|\",\";\",i.RECORD_SEP,i.UNIT_SEP];for(var d=0;d=a)return G(!0)}else for(B=u,u++;;){if(-1===(B=i.indexOf(t,B+1)))return f||C.push({type:\"Quotes\",code:\"MissingQuotes\",message:\"Quoted field unterminated\",row:b.length,index:u}),H();if(B===m-1)return H(i.substring(u,B).replace(M,t));if(t!==c||i[B+1]!==c){if(t===c||0===B||i[B-1]!==c){-1!==D&&D=a)return G(!0);break}C.push({type:\"Quotes\",code:\"InvalidQuotes\",message:\"Trailing quote on quoted field is malformed\",row:b.length,index:u}),B++}}else B++}return H();function q(e){b.push(e),w=u}function $(e){var t=0;if(-1!==e){var n=i.substring(B+1,e);n&&\"\"===n.trim()&&(t=n.length)}return t}function H(e){return f||(void 0===e&&(e=i.substring(u)),x.push(e),u=m,q(x),A&&Y()),G()}function W(e){u=e,q(x),x=[],U=i.indexOf(r,u)}function G(e){return{data:b,errors:C,meta:{delimiter:n,linebreak:r,aborted:d,truncated:!!e,cursor:w+(p||0)}}}function Y(){o(G()),b=[],C=[]}},this.abort=function(){d=!0},this.getCharIndex=function(){return u}}function g(e){var t=e.data,n=s[t.workerId],r=!1;if(t.error)n.userError(t.error,t.file);else if(t.results&&t.results.data){var o={abort:function(){r=!0,y(t.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:v,resume:v};if(_(n.userStep)){for(var i=0;i{\"use strict\";var r=n(7200);function s(){}function o(){}o.resetWarningCache=s,e.exports=function(){function e(e,t,n,s,o,i){if(i!==r){var a=new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\");throw a.name=\"Invariant Violation\",a}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:s};return n.PropTypes=n,n}},900:(e,t,n)=>{e.exports=n(7336)()},7200:e=>{\"use strict\";e.exports=\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\"},4108:(e,t,n)=>{\"use strict\";var r=n(1280),s=Symbol.for(\"react.element\"),o=Symbol.for(\"react.fragment\"),i=Object.prototype.hasOwnProperty,a=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var r,o={},c=null,u=null;for(r in void 0!==n&&(c=\"\"+n),void 0!==t.key&&(c=\"\"+t.key),void 0!==t.ref&&(u=t.ref),t)i.call(t,r)&&!l.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===o[r]&&(o[r]=t[r]);return{$$typeof:s,type:e,key:c,ref:u,props:o,_owner:a.current}}t.Fragment=o,t.jsx=c,t.jsxs=c},7e3:(e,t,n)=>{\"use strict\";e.exports=n(4108)},3736:e=>{e.exports=function(e,t,n,r){var s=n?n.call(r,e,t):void 0;if(void 0!==s)return!!s;if(e===t)return!0;if(\"object\"!=typeof e||!e||\"object\"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var a=Object.prototype.hasOwnProperty.bind(t),l=0;l{\"use strict\";var t=[];function n(e){for(var n=-1,r=0;r{\"use strict\";var t={};e.exports=function(e,n){var r=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!r)throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");r.appendChild(n)}},2940:e=>{\"use strict\";e.exports=function(e){var t=document.createElement(\"style\");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},9516:(e,t,n)=>{\"use strict\";e.exports=function(e){var t=n.nc;t&&e.setAttribute(\"nonce\",t)}},7020:e=>{\"use strict\";e.exports=function(e){if(\"undefined\"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var r=\"\";n.supports&&(r+=\"@supports (\".concat(n.supports,\") {\")),n.media&&(r+=\"@media \".concat(n.media,\" {\"));var s=void 0!==n.layer;s&&(r+=\"@layer\".concat(n.layer.length>0?\" \".concat(n.layer):\"\",\" {\")),r+=n.css,s&&(r+=\"}\"),n.media&&(r+=\"}\"),n.supports&&(r+=\"}\");var o=n.sourceMap;o&&\"undefined\"!=typeof btoa&&(r+=\"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o)))),\" */\")),t.styleTagTransform(r,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},9296:e=>{\"use strict\";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},3376:(e,t,n)=>{\"use strict\";n.d(t,{cp:()=>Mt});var r=function(){return r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0?S(D,--L):0,P--,10===j&&(P=1,N--),j}function z(){return j=L2||W(j)>3?\"\":\" \"}function V(e,t){for(;--t&&z()&&!(j<48||j>102||j>57&&j<65||j>70&&j<97););return H(e,$()+(t<6&&32==q()&&32==z()))}function K(e){for(;z();)switch(j){case e:return L;case 34:case 39:34!==e&&39!==e&&K(j);break;case 40:41===e&&K(e);break;case 92:z()}return L}function Q(e,t){for(;z()&&e+j!==57&&(e+j!==84||47!==q()););return\"/*\"+H(t,L-1)+\"*\"+A(47===e?e:z())}function J(e){for(;!W(q());)z();return H(e,L)}function X(e,t){for(var n=\"\",r=0;r6)switch(S(e,t+1)){case 109:if(45!==S(e,t+4))break;case 102:return x(e,/(.+:)(.+)-([^]+)/,\"$1\"+d+\"$2-$3$1\"+u+(108==S(e,t+3)?\"$3\":\"$2-$3\"))+e;case 115:return~w(e,\"stretch\")?ee(x(e,\"stretch\",\"fill-available\"),t,n)+e:e}break;case 5152:case 5920:return x(e,/(.+?):(\\d+)(\\s*\\/\\s*(span)?\\s*(\\d+))?(.*)/,(function(t,n,r,s,o,i,a){return c+n+\":\"+r+a+(s?c+n+\"-span:\"+(o?i:+i-+r)+a:\"\")+e}));case 4949:if(121===S(e,t+6))return x(e,\":\",\":\"+d)+e;break;case 6444:switch(S(e,45===S(e,14)?18:11)){case 120:return x(e,/(.+:)([^;\\s!]+)(;|(\\s+)?!.+)?/,\"$1\"+d+(45===S(e,14)?\"inline-\":\"\")+\"box$3$1\"+d+\"$2$3$1\"+c+\"$2box$3\")+e;case 100:return x(e,\":\",\":\"+c)+e}break;case 5719:case 2647:case 2135:case 3927:case 2391:return x(e,\"scroll-\",\"scroll-snap-\")+e}return e}function te(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case h:return void(e.return=ee(e.value,e.length,n));case g:return X([M(e,{value:x(e.value,\"@\",\"@\"+d)})],r);case f:if(e.length)return function(e,t){return e.map(t).join(\"\")}(n=e.props,(function(t){switch(C(t,r=/(::plac\\w+|:read-\\w+)/)){case\":read-only\":case\":read-write\":B(M(e,{props:[x(t,/:(read-\\w+)/,\":\"+u+\"$1\")]})),B(M(e,{props:[t]})),b(e,{props:I(n,r)});break;case\"::placeholder\":B(M(e,{props:[x(t,/:(plac\\w+)/,\":\"+d+\"input-$1\")]})),B(M(e,{props:[x(t,/:(plac\\w+)/,\":\"+u+\"$1\")]})),B(M(e,{props:[x(t,/:(plac\\w+)/,c+\"input-$1\")]})),B(M(e,{props:[t]})),b(e,{props:I(n,r)})}return\"\"}))}}function ne(e){return function(e){return D=\"\",e}(re(\"\",null,null,null,[\"\"],e=function(e){return N=P=1,O=E(D=e),L=0,[]}(e),0,[0],e))}function re(e,t,n,r,s,o,i,a,l){for(var c=0,u=0,d=i,p=0,f=0,h=0,m=1,g=1,y=1,v=0,b=\"\",_=s,C=o,k=r,R=b;g;)switch(h=v,v=z()){case 40:if(108!=h&&58==S(R,d-1)){-1!=w(R+=x(G(v),\"&\",\"&\\f\"),\"&\\f\")&&(y=-1);break}case 34:case 39:case 91:R+=G(v);break;case 9:case 10:case 13:case 32:R+=Y(h);break;case 92:R+=V($()-1,7);continue;case 47:switch(q()){case 42:case 47:T(oe(Q(z(),$()),t,n,l),l);break;default:R+=\"/\"}break;case 123*m:a[c++]=E(R)*y;case 125*m:case 59:case 0:switch(v){case 0:case 125:g=0;case 59+u:-1==y&&(R=x(R,/\\f/g,\"\")),f>0&&E(R)-d&&T(f>32?ie(R+\";\",r,n,d-1,l):ie(x(R,\" \",\"\")+\";\",r,n,d-2,l),l);break;case 59:R+=\";\";default:if(T(k=se(R,t,n,c,u,s,a,b,_=[],C=[],d,o),o),123===v)if(0===u)re(R,t,k,k,_,o,d,a,C);else switch(99===p&&110===S(R,3)?100:p){case 100:case 108:case 109:case 115:re(e,k,k,r&&T(se(e,k,k,0,0,s,a,b,s,_=[],d,C),C),s,C,d,a,r?_:C);break;default:re(R,k,k,k,[\"\"],C,0,a,C)}}c=u=f=0,m=y=1,b=R=\"\",d=i;break;case 58:d=1+E(R),f=h;default:if(m<1)if(123==v)--m;else if(125==v&&0==m++&&125==F())continue;switch(R+=A(v),v*m){case 38:y=u>0?1:(R+=\"\\f\",-1);break;case 44:a[c++]=(E(R)-1)*y,y=1;break;case 64:45===q()&&(R+=G(z())),p=q(),u=d=E(b=R+=J($())),v++;break;case 45:45===h&&2==E(R)&&(m=0)}}return o}function se(e,t,n,r,s,o,i,a,l,c,u,d){for(var p=s-1,h=0===s?o:[\"\"],m=R(h),g=0,y=0,A=0;g0?h[b]+\" \"+C:x(C,/&\\f/g,h[b])))&&(l[A++]=w);return U(e,t,n,0===s?f:a,l,c,u,d)}function oe(e,t,n,r){return U(e,t,n,p,A(j),k(e,2,-2),0,r)}function ie(e,t,n,r,s){return U(e,t,n,h,k(e,0,r),k(e,r+1,-1),r,s)}const ae={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};var le=\"undefined\"!=typeof process&&void 0!==process.env&&(process.env.REACT_APP_SC_ATTR||process.env.SC_ATTR)||\"data-styled\",ce=\"undefined\"!=typeof window&&\"HTMLElement\"in window,ue=Boolean(\"boolean\"==typeof SC_DISABLE_SPEEDY?SC_DISABLE_SPEEDY:\"undefined\"!=typeof process&&void 0!==process.env&&void 0!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&\"\"!==process.env.REACT_APP_SC_DISABLE_SPEEDY?\"false\"!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&process.env.REACT_APP_SC_DISABLE_SPEEDY:\"undefined\"!=typeof process&&void 0!==process.env&&void 0!==process.env.SC_DISABLE_SPEEDY&&\"\"!==process.env.SC_DISABLE_SPEEDY&&\"false\"!==process.env.SC_DISABLE_SPEEDY&&process.env.SC_DISABLE_SPEEDY),de=(new Set,Object.freeze([])),pe=Object.freeze({});var fe=new Set([\"a\",\"abbr\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"bdi\",\"bdo\",\"big\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"main\",\"map\",\"mark\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"nav\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"picture\",\"pre\",\"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\",\"small\",\"source\",\"span\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"tr\",\"track\",\"u\",\"ul\",\"use\",\"var\",\"video\",\"wbr\",\"circle\",\"clipPath\",\"defs\",\"ellipse\",\"foreignObject\",\"g\",\"image\",\"line\",\"linearGradient\",\"marker\",\"mask\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialGradient\",\"rect\",\"stop\",\"svg\",\"text\",\"tspan\"]),he=/[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~-]+/g,me=/(^-|-$)/g;function ge(e){return e.replace(he,\"-\").replace(me,\"\")}var ye=/(a)(d)/gi,ve=function(e){return String.fromCharCode(e+(e>25?39:97))};function Ae(e){var t,n=\"\";for(t=Math.abs(e);t>52;t=t/52|0)n=ve(t%52)+n;return(ve(t%52)+n).replace(ye,\"$1-$2\")}var be,_e=function(e,t){for(var n=t.length;n;)e=33*e^t.charCodeAt(--n);return e},Ce=function(e){return _e(5381,e)};function xe(e){return\"string\"==typeof e&&!0}var we=\"function\"==typeof Symbol&&Symbol.for,Se=we?Symbol.for(\"react.memo\"):60115,ke=we?Symbol.for(\"react.forward_ref\"):60112,Ee={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},Re={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},Te={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},Ie=((be={})[ke]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},be[Se]=Te,be);function Ne(e){return(\"type\"in(t=e)&&t.type.$$typeof)===Se?Te:\"$$typeof\"in e?Ie[e.$$typeof]:Ee;var t}var Pe=Object.defineProperty,Oe=Object.getOwnPropertyNames,Le=Object.getOwnPropertySymbols,je=Object.getOwnPropertyDescriptor,De=Object.getPrototypeOf,Ue=Object.prototype;function Me(e,t,n){if(\"string\"!=typeof t){if(Ue){var r=De(t);r&&r!==Ue&&Me(e,r,n)}var s=Oe(t);Le&&(s=s.concat(Le(t)));for(var o=Ne(e),i=Ne(t),a=0;a0?\" Args: \".concat(t.join(\", \")):\"\"))}var Ye=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}return e.prototype.indexOfGroup=function(e){for(var t=0,n=0;n=this.groupSizes.length){for(var n=this.groupSizes,r=n.length,s=r;e>=s;)if((s<<=1)<0)throw Ge(16,\"\".concat(e));this.groupSizes=new Uint32Array(s),this.groupSizes.set(n),this.length=s;for(var o=r;o=this.length||0===this.groupSizes[e])return t;for(var n=this.groupSizes[e],r=this.indexOfGroup(e),s=r+n,o=r;o=0){var n=document.createTextNode(t);return this.element.insertBefore(n,this.nodes[e]||null),this.length++,!0}return!1},e.prototype.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},e.prototype.getRule=function(e){return e0&&(l+=\"\".concat(e,\",\"))})),r+=\"\".concat(i).concat(a,'{content:\"').concat(l,'\"}').concat(\"/*!sc*/\\n\")},o=0;o0?\".\".concat(t):e},u=l.slice();u.push((function(e){e.type===f&&e.value.includes(\"&\")&&(e.props[0]=e.props[0].replace(dt,n).replace(r,c))})),i.prefix&&u.push(te),u.push(Z);var d=function(e,s,o,a){void 0===s&&(s=\"\"),void 0===o&&(o=\"\"),void 0===a&&(a=\"&\"),t=a,n=s,r=new RegExp(\"\\\\\".concat(n,\"\\\\b\"),\"g\");var l=e.replace(pt,\"\"),c=ne(o||s?\"\".concat(o,\" \").concat(s,\" { \").concat(l,\" }\"):l);i.namespace&&(c=ft(c,i.namespace));var d,p,f,h=[];return X(c,(d=u.concat((f=function(e){return h.push(e)},function(e){e.root||(e=e.return)&&f(e)})),p=R(d),function(e,t,n,r){for(var s=\"\",o=0;o
=\"A\"&&e<=\"Z\"};function xt(e){for(var t=\"\",n=0;n>>0);if(!t.hasNameForId(this.componentId,o)){var i=n(s,\".\".concat(o),void 0,this.componentId);t.insertRules(this.componentId,o,i)}r=ze(r,o),this.staticRulesId=o}else{for(var a=_e(this.baseHash,n.hash),l=\"\",c=0;c>>0);t.hasNameForId(this.componentId,p)||t.insertRules(this.componentId,p,n(l,\".\".concat(p),void 0,this.componentId)),r=ze(r,p)}}return r},e}(),It=i().createContext(void 0);It.Consumer;var Nt={};function Pt(e,t,n){var s=Fe(e),a=e,l=!xe(e),c=t.attrs,u=void 0===c?de:c,d=t.componentId,p=void 0===d?function(e,t){var n=\"string\"!=typeof e?\"sc\":ge(e);Nt[n]=(Nt[n]||0)+1;var r=\"\".concat(n,\"-\").concat(function(e){return Ae(Ce(e)>>>0)}(\"6.1.1\"+n+Nt[n]));return t?\"\".concat(t,\"-\").concat(r):r}(t.displayName,t.parentComponentId):d,f=t.displayName,h=void 0===f?function(e){return xe(e)?\"styled.\".concat(e):\"Styled(\".concat(function(e){return e.displayName||e.name||\"Component\"}(e),\")\")}(e):f,m=t.displayName&&t.componentId?\"\".concat(ge(t.displayName),\"-\").concat(t.componentId):t.componentId||p,g=s&&a.attrs?a.attrs.concat(u).filter(Boolean):u,y=t.shouldForwardProp;if(s&&a.shouldForwardProp){var v=a.shouldForwardProp;if(t.shouldForwardProp){var A=t.shouldForwardProp;y=function(e,t){return v(e,t)&&A(e,t)}}else y=v}var b=new Tt(n,m,s?a.componentStyle:void 0);function _(e,t){return function(e,t,n){var s=e.attrs,a=e.componentStyle,l=e.defaultProps,c=e.foldedComponentIds,u=e.styledComponentId,d=e.target,p=i().useContext(It),f=At(),h=e.shouldForwardProp||f.shouldForwardProp,m=function(e,t,n){for(var s,o=r(r({},t),{className:void 0,theme:n}),i=0;i2&&ut.registerId(this.componentId+e),this.removeStyles(e,n),this.createStyles(e,t,n,r)}}(),function(){function e(){var e=this;this._emitSheetCSS=function(){var t=e.instance.toString(),n=rt(),r=qe([n&&'nonce=\"'.concat(n,'\"'),\"\".concat(le,'=\"true\"'),\"\".concat(\"data-styled-version\",'=\"').concat(\"6.1.1\",'\"')].filter(Boolean),\" \");return\"\")},this.getStyleTags=function(){if(e.sealed)throw Ge(2);return e._emitSheetCSS()},this.getStyleElement=function(){var t;if(e.sealed)throw Ge(2);var n=((t={})[le]=\"\",t[\"data-styled-version\"]=\"6.1.1\",t.dangerouslySetInnerHTML={__html:e.instance.toString()},t),s=rt();return s&&(n.nonce=s),[i().createElement(\"style\",r({},n,{key:\"sc-0-0\"}))]},this.seal=function(){e.sealed=!0},this.instance=new ut({isServer:!0}),this.sealed=!1}e.prototype.collectStyles=function(e){if(this.sealed)throw Ge(2);return i().createElement(bt,{sheet:this.instance},e)},e.prototype.interleaveWithNodeStream=function(e){throw Ge(3)}}(),\"__sc-\".concat(le,\"__\")},4928:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>d});var r=n(7e3),s=n(900),o=n.n(s),i=n(3376),a=n(7720);const l=i.cp.div`\n height: auto;\n width: 100%;\n`,c=({src:e})=>(0,r.jsx)(l,{children:(0,r.jsx)(\"audio\",{className:\"edit-audio-preview\",controls:!0,src:e})});c.propTypes={src:o().string.isRequired};const u=({className:e,onReset:t,onUpdate:n,onUpdateURL:s,value:o,valueURL:i})=>(0,r.jsx)(a.MediaPicker,{allowedTypes:[\"audio\"],className:e,icon:\"format-audio\",onReset:t,onUpdate:n,onUpdateURL:s,preview:c,value:o,valueURL:i});u.defaultProps={className:\"\",onUpdateURL:null,valueURL:\"\"},u.propTypes={className:o().string,onReset:o().func.isRequired,onUpdate:o().func.isRequired,onUpdateURL:o().func,value:o().number.isRequired,valueURL:o().string};const d=u},2312:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>l});var r=n(7e3),s=n(900),o=n.n(s),i=n(7287);const a=({label:e,value:t,options:n,onChange:s})=>(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.BaseControl,{label:e}),n.map((e=>(0,r.jsx)(i.CheckboxControl,{label:e.label,checked:t.includes(e.value),onChange:n=>{s(n?[...t,e.value]:[...t.filter((t=>t!==e.value))])}})))]});a.propTypes={label:o().string.isRequired,value:o().arrayOf(o().string).isRequired,options:o().arrayOf(o().shape({label:o().string.isRequired,value:o().string.isRequired})).isRequired,onChange:o().func.isRequired};const l=a},8312:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>u});var r=n(7e3),s=n(1280),o=n.n(s),i=n(3396),a=n(900),l=n.n(a),c=n(5328);class u extends o().PureComponent{static handleSubmit(e){e.preventDefault()}constructor(e){super(e),this.handleChange=this.handleChange.bind(this),this.state={error:\"\",success:\"\"}}handleChange(e){const{attributeName:t,callback:n,setAttributes:r}=this.props;e.target.files&&e.target.files[0]&&(0,c.parseCSVFile)(e.target.files[0]).then((e=>n?n(e):e)).then((e=>{Array.isArray(e)&&e.length>0?(this.setState({error:\"\",success:(0,i.__)(\"Successfully read CSV data.\",\"alley-scripts\")}),r({[t]:JSON.stringify(e)})):this.setState({error:(0,i.__)(\"Could not map CSV data. Please check the source file to ensure that it has the correct structure.\",\"alley-scripts\"),success:\"\"})})).catch((e=>{this.setState({error:e,success:\"\"})}))}render(){const{error:e=\"\",success:t=\"\"}=this.state;return(0,r.jsxs)(\"div\",{className:\"alley-scripts-block-csv-uploader\",children:[(0,r.jsx)(\"h2\",{children:(0,i.__)(\"Upload CSV\",\"alley-scripts\")}),(0,r.jsxs)(\"form\",{onSubmit:this.handleSubmit,children:[\"\"!==e?(0,r.jsxs)(\"div\",{style:{color:\"#c00\"},children:[(0,r.jsx)(\"strong\",{children:(0,i.__)(\"Error:\",\"alley-scripts\")}),\" \",e]}):null,\"\"!==t?(0,r.jsxs)(\"div\",{style:{color:\"#0c0\"},children:[(0,r.jsx)(\"strong\",{children:(0,i.__)(\"Success:\",\"alley-scripts\")}),\" \",t]}):null,(0,r.jsx)(\"div\",{children:(0,r.jsxs)(\"label\",{htmlFor:\"alley-scripts-block-csv-uploader-file\",children:[(0,r.jsx)(\"p\",{children:(0,i.__)(\"Select a file to load data.\",\"alley-scripts\")}),(0,r.jsx)(\"input\",{id:\"alley-scripts-block-csv-uploader-file\",onChange:this.handleChange,type:\"file\"})]})})]})]})}}u.defaultProps={callback:null},u.propTypes={attributeName:l().string.isRequired,callback:l().func,setAttributes:l().func.isRequired}},8348:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>p});var r=n(7e3),s=n(3396),o=n(900),i=n.n(o),a=n(3376),l=n(7720);const c=a.cp.div`\n box-sizing: border-box;\n flex-shrink: 0;\n height: auto;\n max-height: 1450px;\n max-width: 1450px;\n min-height: 20px;\n min-width: 20px;\n position: relative;\n width: auto;\n`,u=({src:e})=>(0,r.jsx)(c,{children:(0,r.jsx)(\"img\",{alt:(0,s.__)(\"Edit image\",\"alley-scripts\"),className:\"edit-image-preview\",src:e,title:(0,s.__)(\"Edit image\",\"alley-scripts\")})});u.propTypes={src:i().string.isRequired};const d=({className:e,imageSize:t,displayControlsInToolbar:n,onReset:s,onUpdate:o,onUpdateURL:i,value:a,valueURL:c})=>(0,r.jsx)(l.MediaPicker,{allowedTypes:[\"image\"],className:e,icon:\"format-image\",imageSize:t,displayControlsInToolbar:n,onReset:s,onUpdate:o,onUpdateURL:i,preview:u,value:a,valueURL:c});d.defaultProps={className:\"\",imageSize:\"thumbnail\",displayControlsInToolbar:!1,onUpdateURL:null,valueURL:\"\"},d.propTypes={className:i().string,imageSize:i().string,displayControlsInToolbar:i().bool,onReset:i().func.isRequired,onUpdate:i().func.isRequired,onUpdateURL:i().func,value:i().number.isRequired,valueURL:i().string};const p=d},7720:(e,t,n)=>{\"use strict\";n.d(t,{AudioPicker:()=>r.default,CSVUploader:()=>o.default,Checkboxes:()=>s.default,ImagePicker:()=>i.default,MediaPicker:()=>a.default,PostPicker:()=>c.default,PostSelector:()=>u.default,SafeHtml:()=>l.default,Selector:()=>d.default,TermSelector:()=>p.default,VideoPicker:()=>f.default});var r=n(4928),s=n(2312),o=n(8312),i=n(8348),a=n(5680),l=n(9160),c=n(4808),u=n(8800),d=n(9064),p=n(668),f=n(5316)},5680:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>m});var r=n(7e3),s=n(900),o=n.n(s),i=n(3376),a=n(9528),l=n(7287),c=n(7752),u=n(3396),d=n(5328);const p=i.cp.div`\n display: block;\n position: relative;\n`,f=i.cp.div`\n background: white;\n border: 1px solid black;\n padding: 1em;\n`,h=({allowedTypes:e,className:t,icon:n,imageSize:s,displayControlsInToolbar:o,onReset:i,onUpdate:h,onUpdateURL:m,preview:g,value:y,valueURL:v})=>{const{media:A}=(0,c.useSelect)((e=>({media:y?e(\"core\").getMedia(y):void 0})),[y]);if(0!==y&&null===A)return(0,r.jsx)(l.Spinner,{});const b=A?(0,d.getMediaUrl)(A,s):v;return b?(0,r.jsxs)(p,{className:t,children:[g?(0,r.jsx)(g,{src:b}):(0,r.jsxs)(f,{className:\"alley-scripts-media-picker__preview\",children:[(0,r.jsx)(\"p\",{children:(0,u.__)(\"Selected file:\",\"alley-scripts\")}),(0,r.jsx)(\"p\",{children:(0,r.jsx)(\"a\",{href:b,children:b})})]}),o?(0,r.jsx)(a.BlockControls,{group:\"other\",children:(0,r.jsx)(a.MediaReplaceFlow,{name:(0,u.__)(\"Edit Media\",\"alley-scripts\"),mediaId:y,mediaURL:b,allowedTypes:e,onSelect:h,onSelectURL:m,children:(0,r.jsx)(l.ToolbarButton,{isDestructive:!0,text:(0,u.__)(\"Remove\",\"alley-scripts\"),onClick:i})})}):(0,r.jsx)(l.Button,{variant:\"primary\",onClick:i,children:(0,u.__)(\"Reset\",\"alley-scripts\")})]}):(0,r.jsx)(p,{className:t,children:(0,r.jsx)(a.MediaPlaceholder,{allowedTypes:e,disableMediaButtons:!!v,icon:(0,r.jsx)(a.BlockIcon,{icon:n}),onSelect:h,onSelectURL:m,value:{id:y,src:b}})})};h.defaultProps={allowedTypes:[],className:\"\",icon:\"format-aside\",imageSize:\"thumbnail\",displayControlsInToolbar:!1,onUpdateURL:null,preview:null,valueURL:\"\"},h.propTypes={allowedTypes:o().arrayOf(o().string),className:o().string,icon:o().string,imageSize:o().string,displayControlsInToolbar:o().bool,onReset:o().func.isRequired,onUpdate:o().func.isRequired,onUpdateURL:o().func,preview:o().element,value:o().number.isRequired,valueURL:o().string};const m=h},4808:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>F});var r=n(7e3),s=n(8496),o=n(3376),i=n(7287),a=n(3396),l=n(7204),c=n(2e3),u=n(2108),d=n.n(u),p=n(7020),f=n.n(p),h=n(7240),m=n.n(h),g=n(9516),y=n.n(g),v=n(2940),A=n.n(v),b=n(9296),_=n.n(b),C=n(9680),x={};x.styleTagTransform=_(),x.setAttributes=y(),x.insert=m().bind(null,\"head\"),x.domAPI=f(),x.insertStyleElement=A(),d()(C.c,x),C.c&&C.c.locals&&C.c.locals;var w=n(4632),S=n.n(w),k=n(6484),E=n.n(k),R=n(7424),T={};T.styleTagTransform=_(),T.setAttributes=y(),T.insert=m().bind(null,\"head\"),T.domAPI=f(),T.insertStyleElement=A(),d()(R.c,T),R.c&&R.c.locals&&R.c.locals;const I=window.wp.htmlEntities;var N=n(9160);const P=o.cp.div`\n align-items: center;\n gap: 4px;\n overflow-wrap: anywhere;\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding: 0.5rem 0.75rem;\n`,O=({title:e,postType:t,attachmentID:n})=>{const s=(0,c.useMedia)(n),o=s?.media_details?.sizes?.thumbnail?.source_url,i=s?.alt_text??\"\";return(0,r.jsxs)(P,{children:[o?(0,r.jsx)(\"img\",{style:{maxWidth:\"100%\",height:\"auto\"},loading:\"lazy\",src:o,alt:i}):null,(0,r.jsx)(N.default,{html:(0,I.decodeEntities)(e),className:\"post-picker-result-title\",tag:\"strong\"}),(0,a.sprintf)(\" (%s)\",t)]})},L=({baseUrl:e,searchRender:t,selected:n,setSelected:o,suppressPostIds:c=[]})=>{const[u,d]=(0,s.useState)(!1),[p,f]=(0,s.useState)([]),[h,m]=(0,s.useState)(!1),[g,y]=(0,s.useState)(0),[v,A]=(0,s.useState)({searchValue:\"\",page:1}),b=(0,s.useCallback)((async(t,n=!1)=>{if(t.searchValue&&t.searchValue.length<=2)return;const r=function(){let n=(0,l.addQueryArgs)(e,{page:t.page,_embed:1,exclude:c.join(\",\")});return t.searchValue&&t.searchValue.length>2&&(n=(0,l.addQueryArgs)(n,{search:t.searchValue})),n}();d(!0);const s=await S()({path:r,parse:!1});y(parseInt(s.headers.get(\"X-WP-TotalPages\"),10));const o=await s.json();let i=o;t.page>1&&(i=[...p,...o]),n||(f(i),d(!1))}),[p,e,c]);return(0,s.useEffect)((()=>{let e=!1;return h||(m(!0),b(v,e)),()=>{e=!0}}),[b,h,v]),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.TextControl,{value:v.searchValue,placeholder:(0,a.__)(\"Search...\",\"alley-scripts\"),label:(0,a.__)(\"Search\",\"alley-scripts\"),onChange:e=>{const t={...v,searchValue:e,page:1};A(t),b(t)}}),(0,r.jsxs)(\"div\",{className:\"alley-scripts-post-picker__post-list\",children:[p?p.map((e=>(0,r.jsx)(i.Button,{className:E()({\"alley-scripts-post-picker__post\":!0,\"is-selected\":e.id===n}),onClick:()=>o(e.id),children:t?t(e):(0,r.jsx)(O,{title:e.title,postType:e.subtype,attachmentID:e?._embedded?.self[0]?.featured_media})},e.id))):null,u?(0,r.jsx)(i.Spinner,{}):null,g>0&&v.page{const e={...v,page:v.page+1};A(e),b(e)},children:(0,a.__)(\"Load More\",\"alley-scripts\")})}):null]})]})},j=({baseUrl:e,closeModal:t,modalTitle:n,onUpdate:o,searchRender:l,suppressPostIds:c=[]})=>{const[u,d]=(0,s.useState)();return(0,r.jsxs)(i.Modal,{className:\"alley-scripts-post-picker__modal\",isDismissible:!0,title:n,onRequestClose:t,closeButtonLabel:\"Close\",children:[(0,r.jsx)(L,{baseUrl:e,selected:u??0,setSelected:d,searchRender:l,suppressPostIds:c}),(0,r.jsxs)(\"div\",{className:\"alley-scripts-post-picker__buttons\",children:[(0,r.jsx)(i.Button,{variant:\"secondary\",onClick:t,children:(0,a.__)(\"Cancel\",\"alley-scripts\")}),(0,r.jsx)(i.Button,{variant:\"primary\",onClick:()=>{u&&(o(u),t())},disabled:!u,children:(0,a.__)(\"Select\",\"alley-scripts\")})]})]})};var D=n(3800),U={};U.styleTagTransform=_(),U.setAttributes=y(),U.insert=m().bind(null,\"head\"),U.domAPI=f(),U.insertStyleElement=A(),d()(D.c,U),D.c&&D.c.locals&&D.c.locals;const M=o.cp.div`\n display: block;\n position: relative;\n`,B=o.cp.div`\n border: 1px solid #eee;\n display: flex;\n flex-direction: column;\n margin: 5px 0;\n padding: 0.5rem 0.75rem;\n text-align: center;\n`,F=({allowedTypes:e,className:t,getPostType:n,modalTitle:o=(0,a.__)(\"Select Post\",\"alley-scripts\"),onReset:u,onUpdate:d,params:p={},previewRender:f,replaceText:h=(0,a.__)(\"Replace\",\"alley-scripts\"),resetText:m=(0,a.__)(\"Reset\",\"alley-scripts\"),searchEndpoint:g=\"/wp/v2/search\",searchRender:y,selectText:v=(0,a.__)(\"Select\",\"alley-scripts\"),suppressPostIds:A=[],title:b=\"\",value:_=0})=>{const[C,x]=(0,s.useState)(!1),w=(0,l.addQueryArgs)(g,{type:\"post\",subtype:e??\"any\",...p}),S=(0,c.usePostById)(_,n),{featured_media:k,title:{rendered:E=\"\"}={},type:R=\"\"}=S||{},T=()=>{x(!0)},I=()=>(0,r.jsxs)(i.ButtonGroup,{children:[(0,r.jsx)(i.Button,{variant:\"secondary\",onClick:u,style:{margin:\"0 4px\"},children:m}),(0,r.jsx)(i.Button,{variant:\"secondary\",onClick:T,style:{margin:\"0 4px\"},children:h})]});return 0!==_&&null===S?(0,r.jsx)(i.Spinner,{}):(0,r.jsxs)(M,{className:t,children:[b?(0,r.jsx)(\"h4\",{children:b}):null,0!==_&&void 0===S?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.Notice,{status:\"error\",isDismissible:!1,className:\"post-picker-notice\",children:(0,r.jsx)(\"p\",{children:(0,a.sprintf)((0,a.__)(\"Post %d is no longer available; it has been unpublished or deleted\",\"alley-scripts\"),_)})}),I()]}):null,0!==_&&void 0!==S?(0,r.jsxs)(r.Fragment,{children:[void 0!==f?f(S):(0,r.jsx)(B,{children:(0,r.jsx)(O,{title:E,postType:R,attachmentID:k})}),I()]}):null,0===_?(0,r.jsx)(i.Button,{onClick:T,variant:\"secondary\",children:v}):null,C?(0,r.jsx)(j,{closeModal:()=>{x(!1)},baseUrl:w,modalTitle:o,onUpdate:d,searchRender:y,suppressPostIds:A}):null]})}},8800:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>c});var r=n(7e3),s=n(900),o=n.n(s),i=n(3396),a=n(7720);const l=({className:e,emptyLabel:t,label:n,maxPages:s,multiple:o,onSelect:i,placeholder:l,subTypes:c,selected:u,threshold:d})=>(0,r.jsx)(a.Selector,{type:\"post\",className:e,emptyLabel:t,label:n,maxPages:s,multiple:o,onSelect:i,placeholder:l,subTypes:c,selected:u,threshold:d});l.defaultProps={className:\"\",emptyLabel:(0,i.__)(\"No posts found\",\"alley-scripts\"),label:(0,i.__)(\"Search for posts\",\"alley-scripts\"),maxPages:5,multiple:!1,placeholder:(0,i.__)(\"Search for posts\",\"alley-scripts\"),subTypes:[],selected:[],threshold:3},l.propTypes={className:o().string,emptyLabel:o().string,label:o().string,maxPages:o().number,multiple:o().bool,onSelect:o().func.isRequired,placeholder:o().string,subTypes:o().arrayOf(o().string),selected:o().arrayOf([o().shape({id:o().number,title:o().string})]),threshold:o().number};const c=l},9160:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>c});var r=n(7e3),s=n(6595),o=n.n(s),i=n(900),a=n.n(i);const l=({className:e,html:t,tag:n})=>(0,r.jsx)(n,{className:e,dangerouslySetInnerHTML:{__html:o().sanitize(t)}});l.defaultProps={className:\"\"},l.propTypes={className:a().string,html:a().string.isRequired,tag:a().string.isRequired};const c=l},9064:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>M});var r=n(7e3),s=n(900),o=n.n(s),i=n(8496),a=n(4632),l=n.n(a),c=n(6484),u=n.n(c),d=n(7287),p=n(3396),f=n(7204);const h={randomUUID:\"undefined\"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let m;const g=new Uint8Array(16);function y(){if(!m&&(m=\"undefined\"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!m))throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");return m(g)}const v=[];for(let e=0;e<256;++e)v.push((e+256).toString(16).slice(1));const A=function(e,t,n){if(h.randomUUID&&!t&&!e)return h.randomUUID();const r=(e=e||{}).random||(e.rng||y)();if(r[6]=15&r[6]|64,r[8]=63&r[8]|128,t){n=n||0;for(let e=0;e<16;++e)t[n+e]=r[e];return t}return function(e,t=0){return v[e[t+0]]+v[e[t+1]]+v[e[t+2]]+v[e[t+3]]+\"-\"+v[e[t+4]]+v[e[t+5]]+\"-\"+v[e[t+6]]+v[e[t+7]]+\"-\"+v[e[t+8]]+v[e[t+9]]+\"-\"+v[e[t+10]]+v[e[t+11]]+v[e[t+12]]+v[e[t+13]]+v[e[t+14]]+v[e[t+15]]}(r)};var b=n(2e3);const _=({emptyLabel:e,error:t,id:n,isOpen:s,labelledbyId:o,loading:i,onSelect:a,options:l,selectedItems:c,threshold:f,value:h})=>{if(!i&&(\"\"===h||f>h.length))return null;let m=\"\",g=\"\";return i?(m=\"loading\",g=(0,p.__)(\"Loading...\",\"alley-scripts\")):t?(m=\"error\",g=t):i||0!==l.length||(m=\"no-posts\",g=e),i||!i&&(h&&0===l.length||t)?(0,r.jsx)(\"div\",{\"aria-busy\":!0,className:u()(\"autocomplete__dropdown\",{\"autocomplete__dropdown--is-open\":s}),children:(0,r.jsx)(\"div\",{className:u()(\"autocomplete__dropdown--notice\",`autocomplete__${m}`),children:g})}):(0,r.jsx)(\"div\",{className:u()(\"autocomplete__dropdown\",{\"autocomplete__dropdown--is-open\":s}),children:(0,r.jsx)(\"ul\",{role:\"listbox\",\"aria-labelledby\":o,id:n,className:u()(\"autocomplete__dropdown--results\",\"autocomplete__list\"),children:l.map((e=>(0,r.jsx)(\"li\",{className:\"autocomplete__list--item\",children:(0,r.jsx)(d.Button,{onClick:()=>a(e),type:\"button\",disabled:c.some((t=>t.id===e.id)),isTertiary:!0,children:e.title})},e.id)))})})};_.propTypes={emptyLabel:o().string.isRequired,error:o().string.isRequired,id:o().string.isRequired,isOpen:o().bool.isRequired,labelledbyId:o().string.isRequired,loading:o().bool.isRequired,options:o().arrayOf(o().shape({label:o().string,value:o().string})).isRequired,onSelect:o().func.isRequired,selectedItems:o().shape([]).isRequired,threshold:o().number.isRequired,value:o().string.isRequired};const C=_;var x=n(2108),w=n.n(x),S=n(7020),k=n.n(S),E=n(7240),R=n.n(E),T=n(9516),I=n.n(T),N=n(2940),P=n.n(N),O=n(9296),L=n.n(O),j=n(5500),D={};D.styleTagTransform=L(),D.setAttributes=I(),D.insert=R().bind(null,\"head\"),D.domAPI=k(),D.insertStyleElement=P(),w()(j.c,D),j.c&&j.c.locals&&j.c.locals;const U=({type:e,className:t,emptyLabel:n,label:s,maxPages:o,multiple:a,onSelect:c,placeholder:p,subTypes:h,selected:m,threshold:g})=>{const y=A(),[v,_]=(0,i.useState)(\"\"),[x,w]=(0,i.useState)([]),[S,k]=(0,i.useState)(!1),[E,R]=(0,i.useState)(!1),[T,I]=(0,i.useState)(\"\"),[N,P]=(0,i.useState)([]),O=(0,i.useRef)(),L=(0,b.useDebounce)(T,750),j=(0,i.useCallback)((async(t=1)=>{if(L.length0?h.join(\",\"):\"any\",type:e});await l()({path:r,parse:!1}).then((e=>{const t=parseInt(e.headers.get(\"X-WP-TotalPages\"),10);return n=t>o?o:t,e.json()})).then((e=>{w((t=>[...t,...e])),R(!1),(n&&n>t||t>=1&&a&&N.length>0)&&j(t+1)})).catch((e=>_(e.message)))}),[L,e,o,a,h,N.length,g]);(0,i.useEffect)((()=>{P(m)}),[m]),(0,i.useEffect)((()=>{L&&g<=L.length?j():w([])}),[L,j,g]);const D=e=>{k(O.current.contains(e.target))},U=e=>{\"Escape\"===e.key&&k(!1)};(0,i.useEffect)((()=>(document.addEventListener(\"keydown\",U),()=>document.removeEventListener(\"keydown\",U)))),(0,i.useEffect)((()=>(O&&document.addEventListener(\"mousedown\",D),()=>document.removeEventListener(\"mousedown\",D))));const M=e=>{let t=[];if(N.some((t=>t.id===e.id))){const n=N.findIndex((t=>t.id===e.id));t=[...N.slice(0,n),...N.slice(n+1,N.length)]}else a?t=[...N,e]:(t=[e],k(!1));P(t),c(t)};return(0,r.jsx)(\"form\",{className:\"autocomplete__component\",onSubmit:e=>e.preventDefault(),children:(0,r.jsxs)(\"div\",{className:u()(\"components-base-control\",\"autocomplete-base-control\",t),ref:O,children:[(0,r.jsxs)(\"div\",{\"aria-expanded\":S,\"aria-haspopup\":\"listbox\",\"aria-owns\":`listbox-${y}`,className:u()(\"components-base-control__field\",\"autocomplete-base-control__field\"),role:\"combobox\",children:[(0,r.jsx)(\"label\",{className:u()(\"components-base-control__label\",\"autocomplete-base-control__label\"),htmlFor:`autocomplete-${y}`,children:(0,r.jsx)(\"div\",{children:s})}),N.length>0?(0,r.jsx)(\"ul\",{role:\"listbox\",\"aria-labelledby\":`autocomplete-${y}`,id:`selected-items-${y}`,className:u()(\"autocomplete__selection--results\",\"autocomplete__selection-list\"),children:N.map((e=>(0,r.jsx)(\"li\",{className:\"autocomplete__selection-list--item\",children:(0,r.jsx)(d.Button,{className:\"autocomplete__selection-list--item--button\",isSecondary:!0,isSmall:!0,onClick:()=>M(e),type:\"button\",children:e.title})},e.title)))}):null,(0,r.jsx)(\"input\",{\"aria-autocomplete\":\"list\",autoComplete:\"off\",className:u()(\"components-text-control__input\",\"autocomplete-text-control__input\",{\"autocomplete-text-control__input--working\":S}),id:`autocomplete-${y}`,onChange:e=>I(e.target.value),onFocus:()=>k(!0),placeholder:p,type:\"text\",value:T})]}),(0,r.jsx)(C,{emptyLabel:n,error:v,labelledById:`autocomplete-${y}`,id:`listbox-${y}`,isOpen:S,loading:E&&L,onSelect:M,options:x,selectedItems:N,threshold:g,value:L})]})})};U.defaultProps={type:\"post\",className:\"\",emptyLabel:(0,p.__)(\"No items found\",\"alley-scripts\"),label:(0,p.__)(\"Search for items\",\"alley-scripts\"),maxPages:5,multiple:!1,placeholder:(0,p.__)(\"Search for items\",\"alley-scripts\"),subTypes:[],selected:[],threshold:3},U.propTypes={type:o().string,className:o().string,emptyLabel:o().string,label:o().string,maxPages:o().number,multiple:o().bool,onSelect:o().func.isRequired,placeholder:o().string,subTypes:o().arrayOf(o().string),selected:o().arrayOf([o().shape({id:o().number,title:o().string})]),threshold:o().number};const M=U},668:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>c});var r=n(7e3),s=n(900),o=n.n(s),i=n(3396),a=n(7720);const l=({className:e,emptyLabel:t,label:n,maxPages:s,multiple:o,onSelect:i,placeholder:l,subTypes:c,selected:u,threshold:d})=>(0,r.jsx)(a.Selector,{type:\"term\",className:e,emptyLabel:t,label:n,maxPages:s,multiple:o,onSelect:i,placeholder:l,subTypes:c,selected:u,threshold:d});l.defaultProps={className:\"\",emptyLabel:(0,i.__)(\"No terms found\",\"alley-scripts\"),label:(0,i.__)(\"Search for terms\",\"alley-scripts\"),maxPages:5,multiple:!1,placeholder:(0,i.__)(\"Search for terms\",\"alley-scripts\"),subTypes:[],selected:[],threshold:3},l.propTypes={className:o().string,emptyLabel:o().string,label:o().string,maxPages:o().number,multiple:o().bool,onSelect:o().func.isRequired,placeholder:o().string,subTypes:o().arrayOf(o().string),selected:o().arrayOf([o().shape({id:o().number,title:o().string})]),threshold:o().number};const c=l},5316:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>d});var r=n(7e3),s=n(900),o=n.n(s),i=n(3376),a=n(7720);const l=i.cp.div`\n height: auto;\n width: 100%;\n`,c=({src:e})=>(0,r.jsx)(l,{children:(0,r.jsx)(\"video\",{className:\"edit-video-preview\",controls:!0,src:e})});c.propTypes={src:o().string.isRequired};const u=({className:e,onReset:t,onUpdate:n,onUpdateURL:s,value:o,valueURL:i})=>(0,r.jsx)(a.MediaPicker,{allowedTypes:[\"video\"],className:e,icon:\"format-video\",onReset:t,onUpdate:n,onUpdateURL:s,preview:c,value:o,valueURL:i});u.defaultProps={className:\"\",onUpdateURL:null,valueURL:\"\"},u.propTypes={className:o().string,onReset:o().func.isRequired,onUpdate:o().func.isRequired,onUpdateURL:o().func,value:o().number.isRequired,valueURL:o().string};const d=u},2e3:(e,t,n)=>{\"use strict\";n.d(t,{useCurrentPostId:()=>f.default,useDebounce:()=>r.default,useHasInnerBlocks:()=>s.default,useInnerBlocks:()=>i.default,useInnerBlocksAttributes:()=>a.default,useInnerBlocksCount:()=>l.default,useInnerBlocksIndex:()=>o.default,useMedia:()=>c.default,useParentBlock:()=>u.default,useParentBlockAttributes:()=>d.default,usePost:()=>p.default,usePostById:()=>h.default,usePostMeta:()=>m.default,usePostMetaValue:()=>g.default,usePosts:()=>y.default,useTerms:()=>v.default});var r=n(7112),s=n(6980),o=n(6644),i=n(864),a=n(8512),l=n(1344),c=n(592),u=n(224),d=n(8004),p=n(1744),f=n(9695),h=n(9480),m=n(6504),g=n(3772),y=n(4704),v=n(1848)},9695:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>s});var r=n(7752);const s=()=>(0,r.useSelect)((e=>{const t=e(\"core/editor\");return t?t.getCurrentPostId():null}),[])},7112:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>s});var r=n(8496);const s=(e,t)=>{const[n,s]=(0,r.useState)(e);return(0,r.useEffect)((()=>{const n=setTimeout((()=>{s(e)}),t);return()=>{clearTimeout(n)}}),[e,t]),n}},6980:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>s});var r=n(2e3);const s=e=>(0,r.useInnerBlocksCount)(e)>0},6644:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>s});var r=n(2e3);const s=e=>{const t=(0,r.useParentBlock)(e),n=(0,r.useInnerBlocks)(t);return n?n.findIndex((t=>t.clientId===e)):-1}},8512:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>s});var r=n(2e3);const s=e=>(0,r.useInnerBlocks)(e).map((e=>e.attributes))},1344:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>s});var r=n(2e3);const s=e=>(0,r.useInnerBlocks)(e).length},864:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>o});var r=n(9528),s=n(7752);const o=e=>(0,s.useSelect)((t=>t(r.store).getBlocks(e)),[e])},592:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>s});var r=n(7752);const s=e=>(0,r.useSelect)((t=>t(\"core\").getMedia(e)),[e])},8004:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>o});var r=n(9528),s=n(7752);const o=e=>(0,s.useSelect)((t=>{const{getBlockAttributes:n,getBlockRootClientId:s}=t(r.store),o=s(e);return o?n(o):null}),[e])},224:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>o});var r=n(9528),s=n(7752);const o=e=>(0,s.useSelect)((t=>{const{getBlock:n,getBlockRootClientId:s}=t(r.store),o=s(e);return o?n(o):null}),[e])},9480:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>l});var r=n(8496),s=n(4632),o=n.n(s),i=n(7204),a=n(1744);const l=(e,t=null)=>{const[n,s]=(0,r.useState)({}),[l,c]=(0,r.useState)(!0);(0,r.useEffect)((()=>{c(!0),e&&!n[e]?(async()=>{if(t){const n=await t(e);n?s((t=>({...t,[e]:n}))):console.error(`Custom function to get post with ID ${e} failed.`)}else{const t=(0,i.addQueryArgs)(\"/wp/v2/search\",{include:e}),n=await o()({path:t});n.length>0&&s((t=>({...t,[e]:n[0]?.subtype})))}c(!1)})():e&&n[e]&&c(!1)}),[e]);const u=(0,a.default)(e,n[e]??\"\");return l||!u&&n[e]?null:u}},3772:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>s});var r=n(2e3);const s=(e,t=null,n=null)=>{const[s,o]=(0,r.usePostMeta)(t,n);return[s[e],t=>o({...s,[e]:t})]}},6504:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>o});var r=n(3048),s=n(7752);const o=(e=null,t=null)=>{const n=(0,s.useSelect)((t=>e||t(\"core/editor\").getCurrentPostType()),[]),[o,i]=(0,r.useEntityProp)(\"postType\",n,\"meta\",t),a=\"function\"==typeof i?i:()=>console.error(`Error attempting to set post meta for post type ${n}. Does it have support for custom-fields?`);return[\"object\"==typeof o?o:{},e=>a({...e})]}},1744:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>s});var r=n(7752);const s=(e,t=\"post\")=>(0,r.useSelect)((n=>n(\"core\").getEntityRecord(\"postType\",t,e)),[e,t])},4704:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>s});var r=n(7752);const s=(e,t=\"post\")=>(0,r.useSelect)((n=>{const{getEntityRecords:r}=n(\"core\");return r(\"postType\",t,{include:e})}),[e,t])},1848:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>o});var r=n(3048),s=n(7752);const o=(e=null,t=null,n=\"categories\")=>{const o=(0,s.useSelect)((t=>e||t(\"core/editor\").getCurrentPostType()),[]),[i,a]=(0,r.useEntityProp)(\"postType\",o,n,t);return[i,e=>a(e)]}},5328:(e,t,n)=>{\"use strict\";n.d(t,{getMediaUrl:()=>i.c,parseCSVFile:()=>o});var r=n(2232),s=n.n(r);const o=e=>new Promise(((t,n)=>{s().parse(e,{complete:e=>t(e.data),dynamicTyping:!0,error:e=>n(e),header:!0,skipEmptyLines:!0})}));var i=n(6199)},6199:(e,t,n)=>{\"use strict\";n.d(t,{c:()=>r});const r=(e,t=\"full\")=>{const{media_details:{sizes:{[t]:{source_url:n=\"\"}={},full:{source_url:r=\"\"}={}}={}}={},sizes:{[t]:{url:s=\"\"}={},full:{url:o=\"\"}={}}={},source_url:i=\"\",url:a=\"\"}=e;return s||n||o||r||a||i||\"\"}},1280:e=>{\"use strict\";e.exports=window.React},4632:e=>{\"use strict\";e.exports=window.wp.apiFetch},9528:e=>{\"use strict\";e.exports=window.wp.blockEditor},7287:e=>{\"use strict\";e.exports=window.wp.components},3048:e=>{\"use strict\";e.exports=window.wp.coreData},7752:e=>{\"use strict\";e.exports=window.wp.data},8496:e=>{\"use strict\";e.exports=window.wp.element},3396:e=>{\"use strict\";e.exports=window.wp.i18n},7204:e=>{\"use strict\";e.exports=window.wp.url}},t={};function n(r){var s=t[r];if(void 0!==s)return s.exports;var o=t[r]={id:r,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.nc=void 0;var r={};return(()=>{\"use strict\";n.r(r),n.d(r,{AudioPicker:()=>e.AudioPicker,CSVUploader:()=>e.CSVUploader,Checkboxes:()=>e.Checkboxes,ImagePicker:()=>e.ImagePicker,MediaPicker:()=>e.MediaPicker,PostPicker:()=>e.PostPicker,PostSelector:()=>e.PostSelector,SafeHtml:()=>e.SafeHtml,Selector:()=>e.Selector,TermSelector:()=>e.TermSelector,VideoPicker:()=>e.VideoPicker,getMediaUrl:()=>s.getMediaUrl,parseCSVFile:()=>s.parseCSVFile,useCurrentPostId:()=>t.useCurrentPostId,useDebounce:()=>t.useDebounce,useHasInnerBlocks:()=>t.useHasInnerBlocks,useInnerBlocks:()=>t.useInnerBlocks,useInnerBlocksAttributes:()=>t.useInnerBlocksAttributes,useInnerBlocksCount:()=>t.useInnerBlocksCount,useInnerBlocksIndex:()=>t.useInnerBlocksIndex,useMedia:()=>t.useMedia,useParentBlock:()=>t.useParentBlock,useParentBlockAttributes:()=>t.useParentBlockAttributes,usePost:()=>t.usePost,usePostById:()=>t.usePostById,usePostMeta:()=>t.usePostMeta,usePostMetaValue:()=>t.usePostMetaValue,usePosts:()=>t.usePosts,useTerms:()=>t.useTerms});var e=n(7720),t=n(2e3),s=n(5328)})(),r})()));\n//# sourceMappingURL=index.bundle.min.js.map","/*! @license DOMPurify 3.1.2 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.2/LICENSE */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.DOMPurify = factory());\n})(this, (function () { 'use strict';\n\n const {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor\n } = Object;\n let {\n freeze,\n seal,\n create\n } = Object; // eslint-disable-line import/no-mutable-exports\n let {\n apply,\n construct\n } = typeof Reflect !== 'undefined' && Reflect;\n if (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n }\n if (!seal) {\n seal = function seal(x) {\n return x;\n };\n }\n if (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n }\n if (!construct) {\n construct = function construct(Func, args) {\n return new Func(...args);\n };\n }\n const arrayForEach = unapply(Array.prototype.forEach);\n const arrayPop = unapply(Array.prototype.pop);\n const arrayPush = unapply(Array.prototype.push);\n const stringToLowerCase = unapply(String.prototype.toLowerCase);\n const stringToString = unapply(String.prototype.toString);\n const stringMatch = unapply(String.prototype.match);\n const stringReplace = unapply(String.prototype.replace);\n const stringIndexOf = unapply(String.prototype.indexOf);\n const stringTrim = unapply(String.prototype.trim);\n const objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\n const regExpTest = unapply(RegExp.prototype.test);\n const typeErrorCreate = unconstruct(TypeError);\n\n /**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param {Function} func - The function to be wrapped and called.\n * @returns {Function} A new function that calls the given function with a specified thisArg and arguments.\n */\n function unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return apply(func, thisArg, args);\n };\n }\n\n /**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param {Function} func - The constructor function to be wrapped and called.\n * @returns {Function} A new function that constructs an instance of the given constructor function with the provided arguments.\n */\n function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return construct(func, args);\n };\n }\n\n /**\n * Add properties to a lookup table\n *\n * @param {Object} set - The set to which elements will be added.\n * @param {Array} array - The array containing elements to be added to the set.\n * @param {Function} transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns {Object} The modified set with added elements.\n */\n function addToSet(set, array) {\n let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n }\n\n /**\n * Clean up an array to harden against CSPP\n *\n * @param {Array} array - The array to be cleaned.\n * @returns {Array} The cleaned version of the array\n */\n function cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n return array;\n }\n\n /**\n * Shallow clone an object\n *\n * @param {Object} object - The object to be cloned.\n * @returns {Object} A new object that copies the original.\n */\n function clone(object) {\n const newObject = create(null);\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n if (isPropertyExist) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (value && typeof value === 'object' && value.constructor === Object) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n return newObject;\n }\n\n /**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param {Object} object - The object to look up the getter function in its prototype chain.\n * @param {String} prop - The property name for which to find the getter function.\n * @returns {Function} The getter function found in the prototype chain or a fallback function.\n */\n function lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue() {\n return null;\n }\n return fallbackValue;\n }\n\n const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n // SVG\n const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n const svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\n // List of SVG elements that are disallowed by default.\n // We still need to know them so that we can do namespace\n // checks properly in case one wants to add them to\n // allow-list.\n const svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n const mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n\n // Similarly to SVG, we want to know all MathML elements,\n // even those that we disallow by default.\n const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n const text = freeze(['#text']);\n\n const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);\n const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n // eslint-disable-next-line unicorn/better-regex\n const MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n const ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\n const TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\n const DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n const IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n );\n\n const IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n const ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n );\n\n const DOCTYPE_NAME = seal(/^html$/i);\n const CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\n var EXPRESSIONS = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MUSTACHE_EXPR: MUSTACHE_EXPR,\n ERB_EXPR: ERB_EXPR,\n TMPLIT_EXPR: TMPLIT_EXPR,\n DATA_ATTR: DATA_ATTR,\n ARIA_ATTR: ARIA_ATTR,\n IS_ALLOWED_URI: IS_ALLOWED_URI,\n IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE: ATTR_WHITESPACE,\n DOCTYPE_NAME: DOCTYPE_NAME,\n CUSTOM_ELEMENT: CUSTOM_ELEMENT\n });\n\n const getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n\n /**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {HTMLScriptElement} purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return {TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\n const _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n function createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = '3.1.2';\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n let {\n document\n } = window;\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes\n } = window;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n let trustedTypesPolicy;\n let emptyHTML = '';\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName\n } = document;\n const {\n importNode\n } = originalDocument;\n let hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT\n } = EXPRESSIONS;\n let {\n IS_ALLOWED_URI: IS_ALLOWED_URI$1\n } = EXPRESSIONS;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n\n /*\n * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n\n /* Decide if document with ... should be returned */\n let WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n\n /* Specify the maximum element nesting depth to prevent mXSS */\n const MAX_NESTING_DEPTH = 255;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n const formElement = document.createElement('form');\n const isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function _parseConfig() {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES),\n // eslint-disable-line indent\n cfg.ADD_URI_SAFE_ATTR,\n // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS),\n // eslint-disable-line indent\n cfg.ADD_DATA_URI_TAGS,\n // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, text);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n }\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n }\n\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n }\n\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n const MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n const HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'annotation-xml']);\n\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n\n /**\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function _checkValidNamespace(element) {\n let parent = getParentNode(element);\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via
' : $content;
- }
-
- /**
- * Tests the behavior of the component errors setting (none, warn, fail).
- */
- public function test_component_errors() {
-
- // Set up a post with an invalid element (div).
- $this->become_admin();
- $user_id = wp_get_current_user()->ID;
- $post_id_1 = self::factory()->post->create(
- [
- 'post_author' => $user_id,
- 'post_content' => '
Test Content
',
- ]
- );
-
- // Test the default behavior, which is no warning or error.
- $this->get_request_for_post( $post_id_1 );
- $notices = get_user_meta( $user_id, 'apple_news_notice', true );
- $this->assertEquals( 2, count( $notices ) );
- $this->assertEquals( 'error', $notices[0]['type'] );
- $this->assertEquals( 'There has been an error with the Apple News API: There has been an error with your request: ', $notices[0]['message'] );
- $this->assertEquals( 'success', $notices[1]['type'] );
- $this->assertEquals( 'abcd1234-ef56-ab78-cd90-efabcdef123456', get_post_meta( $post_id_1, 'apple_news_api_id', true ) );
-
- // Test the behavior of component warnings.
- $this->settings->component_alerts = 'warn';
- $post_id_2 = self::factory()->post->create(
- [
- 'post_author' => $user_id,
- 'post_content' => '
Test Content
',
- ]
- );
- $this->get_request_for_post( $post_id_2 );
- $notices = get_user_meta( $user_id, 'apple_news_notice', true );
- $this->assertEquals( 4, count( $notices ) );
- $this->assertEquals( 'error', $notices[2]['type'] );
- $this->assertEquals( 'The following components are unsupported by Apple News and were removed: div', $notices[2]['message'] );
- $this->assertEquals( 'success', $notices[3]['type'] );
- $this->assertEquals( 'abcd1234-ef56-ab78-cd90-efabcdef123456', get_post_meta( $post_id_1, 'apple_news_api_id', true ) );
-
- // Test the behavior of component errors.
- $this->settings->component_alerts = 'fail';
- $post_id_3 = self::factory()->post->create(
- [
- 'post_author' => $user_id,
- 'post_content' => '
Test Content
',
- ]
- );
- $exception = false;
- try {
- $this->get_request_for_post( $post_id_3 );
- } catch ( Action_Exception $e ) {
- $exception = $e;
- }
- $this->assertEquals( 'The following components are unsupported by Apple News and prevented publishing: div', $exception->getMessage() );
- $this->assertEquals( null, get_post_meta( $post_id_3, 'apple_news_api_id', true ) );
-
- // Clean up after ourselves.
- $this->settings->component_alerts = 'none';
- }
-
- /**
- * Ensures that postmeta will be properly set after creating an article via
- * the API.
- */
- public function test_create() {
- $post_id = self::factory()->post->create();
- $this->get_request_for_post( $post_id );
-
- // Values in the assertions here are added in the get_request_for_post function call above.
- $this->assertEquals( 'abcd1234-ef56-ab78-cd90-efabcdef123456', get_post_meta( $post_id, 'apple_news_api_id', true ) );
- $this->assertEquals( '2020-01-02T03:04:05Z', get_post_meta( $post_id, 'apple_news_api_created_at', true ) );
- $this->assertEquals( '2020-01-02T03:04:05Z', get_post_meta( $post_id, 'apple_news_api_modified_at', true ) );
- $this->assertEquals( 'https://apple.news/ABCDEFGHIJKLMNOPQRSTUVW', get_post_meta( $post_id, 'apple_news_api_share_url', true ) );
- $this->assertEquals( null, get_post_meta( $post_id, 'apple_news_api_deleted', true ) );
- }
-
- /**
- * Ensure the section is added to the metadata sent with the request.
- */
- public function test_create_with_sections() {
- $post_id = self::factory()->post->create();
- add_post_meta( $post_id, 'apple_news_sections', [ 'https://news-api.apple.com/sections/123' ] );
- $request = $this->get_request_for_post( $post_id );
- $metadata = $this->get_metadata_from_request( $request );
- $this->assertEquals( [ 'https://news-api.apple.com/sections/123' ], $metadata['data']['links']['sections'] );
- }
-
- /**
- * Ensures that custom metadata is properly set.
- */
- public function test_custom_metadata() {
- $post_id = self::factory()->post->create();
- $metadata = [
- [
- 'key' => 'isBoolean',
- 'type' => 'boolean',
- 'value' => true,
- ],
- [
- 'key' => 'isNumber',
- 'type' => 'number',
- 'value' => 3,
- ],
- [
- 'key' => 'isString',
- 'type' => 'string',
- 'value' => 'Test String Value',
- ],
- [
- 'key' => 'isArray',
- 'type' => 'array',
- 'value' => '["a", "b", "c"]',
- ],
- ];
- add_post_meta( $post_id, 'apple_news_metadata', $metadata );
- $request = $this->get_request_for_post( $post_id );
- $metadata = $this->get_metadata_from_request( $request );
-
- // Ensure metadata was properly compiled into the request.
- $this->assertEquals( true, $metadata['data']['isBoolean'] );
- $this->assertEquals( 3, $metadata['data']['isNumber'] );
- $this->assertEquals( 'Test String Value', $metadata['data']['isString'] );
- $this->assertEquals( [ 'a', 'b', 'c' ], $metadata['data']['isArray'] );
- }
-
- /**
- * Ensures that the apple_news_is_exporting function works properly during a
- * push request.
- */
- public function test_exporting_flag() {
- $post_id = self::factory()->post->create();
- add_filter( 'the_content', [ $this, 'filter_the_content' ] );
- $request = $this->get_request_for_post( $post_id );
- remove_filter( 'the_content', [ $this, 'filter_the_content' ] );
- $this->assertTrue( false !== strpos( $request['body'], '
EXPORTING<\/p>' ) );
- }
-
- /**
- * Ensures that maturity rating is properly set in the request.
- */
- public function test_maturity_rating() {
- $post_id = self::factory()->post->create();
- add_post_meta( $post_id, 'apple_news_maturity_rating', 'MATURE' );
- $request = $this->get_request_for_post( $post_id );
- $metadata = $this->get_metadata_from_request( $request );
- $this->assertEquals( 'MATURE', $metadata['data']['maturityRating'] );
- }
-
- /**
- * Ensures that named metadata is properly set.
- *
- * @dataProvider data_metadata
- *
- * @param string $meta_key The meta key to set (e.g., apple_news_is_hidden).
- * @param string|null $meta_value The meta value to set, or null if the meta key should not be set at all.
- * @param string $property The metadata property to check.
- * @param string|null $expected The expected value for the property, or null if it is expected to not be set.
- */
- public function test_metadata( $meta_key, $meta_value, $property, $expected ) {
- $post_id = self::factory()->post->create();
- if ( ! is_null( $meta_value ) ) {
- add_post_meta( $post_id, $meta_key, $meta_value );
- }
- $request = $this->get_request_for_post( $post_id );
- $metadata = $this->get_metadata_from_request( $request );
- if ( ! is_null( $expected ) ) {
- $this->assertEquals( $expected, $metadata['data'][ $property ], sprintf( 'Expected property %s to be %s given meta key %s and meta value %s', $property, $expected, $meta_key, $meta_value ) );
- } else {
- $this->assertArrayNotHasKey( $property, $metadata['data'] ?? [], sprintf( 'Expected property %s to not exist, but it does', $property ) );
- }
- }
-
- /**
- * Tests skipping publish of a post by filters or by taxonomy term.
- */
- public function test_skip() {
- $post_id = self::factory()->post->create();
-
- // Test the apple_news_skip_push filter.
- add_filter( 'apple_news_skip_push', '__return_true' );
- $exception = false;
- try {
- $this->get_request_for_post( $post_id );
- } catch ( Action_Exception $e ) {
- $exception = $e;
- }
- $this->assertEquals( sprintf( 'Skipped push of article %d due to the apple_news_skip_push filter.', $post_id ), $exception->getMessage() );
- remove_filter( 'apple_news_skip_push', '__return_true' );
-
- // Test the new filter for skipping by term ID.
- $term_id = self::factory()->term->create( [ 'taxonomy' => 'category' ] );
- wp_set_object_terms( $post_id, $term_id, 'category' );
- $skip_filter = function () use ( $term_id ) {
- return [ $term_id ];
- };
- add_filter( 'apple_news_skip_push_term_ids', $skip_filter );
- $exception = false;
- try {
- $this->get_request_for_post( $post_id );
- } catch ( Action_Exception $e ) {
- $exception = $e;
- }
- $this->assertEquals( sprintf( 'Skipped push of article %d due to the presence of a skip push taxonomy term.', $post_id ), $exception->getMessage() );
- remove_filter( 'apple_news_skip_push_term_ids', $skip_filter );
-
- // Test skip by setting the option for skipping by term ID.
- $this->settings->api_autosync_skip = wp_json_encode( [ $term_id ] );
- $exception = false;
- try {
- $this->get_request_for_post( $post_id );
- } catch ( Action_Exception $e ) {
- $exception = $e;
- }
- $this->assertEquals( sprintf( 'Skipped push of article %d due to the presence of a skip push taxonomy term.', $post_id ), $exception->getMessage() );
- $this->settings->api_autosync_skip = '';
- }
-
- /**
- * Tests the update workflow to ensure that posts are only updated when
- * changes have been made.
- */
- public function test_update() {
- // Create a post and fake sending it to the API.
- $post = self::factory()->post->create_and_get();
- $this->get_request_for_post( $post->ID );
-
- // Ensure that the fake response from the API was saved to postmeta.
- $this->assertEquals( 'abcd1234-ef56-ab78-cd90-efabcdef123456', get_post_meta( $post->ID, 'apple_news_api_id', true ) );
- $this->assertEquals( '2020-01-02T03:04:05Z', get_post_meta( $post->ID, 'apple_news_api_created_at', true ) );
- $this->assertEquals( '2020-01-02T03:04:05Z', get_post_meta( $post->ID, 'apple_news_api_modified_at', true ) );
- $this->assertEquals( 'https://apple.news/ABCDEFGHIJKLMNOPQRSTUVW', get_post_meta( $post->ID, 'apple_news_api_share_url', true ) );
- $this->assertEquals( null, get_post_meta( $post->ID, 'apple_news_api_deleted', true ) );
-
- // Try to sync the post again, and verify that it bails out before attempting the sync.
- try {
- $this->get_request_for_post( $post->ID );
- } catch ( Action_Exception $e ) {
- $regexp = '/There has been an error with the Apple News API|Skipped push of article ' . preg_quote( $post->ID, '/' ) . ' to Apple News because it is already in sync\./';
- $this->assertMatchesRegularExpression( $regexp, $e->getMessage() );
- }
-
- // Update the post by changing the title and ensure that the update is sent to Apple.
- $post->post_title = 'Test New Title';
- wp_update_post( $post );
- $request = $this->get_request_for_update( $post->ID );
- $body = $this->get_body_from_request( $request );
- $this->assertEquals( 'Test New Title', $body['title'] );
- }
-
- /**
- * Test that the action is able to handle a deleted article.
- */
- public function test_update_with_deleted_article(): void {
- $article_id = self::factory()->post->create();
- $api_id = 'efabcdef123456';
-
- add_post_meta( $article_id, 'apple_news_api_id', $api_id );
-
- // Fake the API response for the GET request.
- $this->add_http_response(
- verb: 'GET',
- url: 'https://news-api.apple.com/articles/' . $api_id,
- body: wp_json_encode(
- [
- 'errors' => [
- [
- 'code' => 'NOT_FOUND',
- 'keyPath' => [ 'articleId' ],
- 'value' => $api_id,
- ],
- ],
- ]
- ),
- response: [
- 'code' => 404,
- 'message' => 'Not Found',
- ]
- );
-
- $action = new Apple_Actions\Index\Push( $this->settings, $article_id );
-
- try {
- $action->perform();
- } catch ( Action_Exception $e ) {
- $this->assertSame( 'Publish to Apple News: This article was previously deleted in iCloud News Publisher. Due to your automatic publishing settings, it has been recreated on Apple News.', $e->getMessage() );
- }
-
- $this->assertEmpty( get_post_meta( $article_id, 'apple_news_api_id', true ) );
- }
-}
diff --git a/tests/admin/test-class-admin-apple-index-page.php b/tests/admin/test-class-admin-apple-index-page.php
deleted file mode 100644
index d2d9b794..00000000
--- a/tests/admin/test-class-admin-apple-index-page.php
+++ /dev/null
@@ -1,49 +0,0 @@
-factory->post->create();
-
- // Add metadata to simulate a stuck post.
- update_post_meta( $post_id, 'apple_news_api_pending', time() );
- update_post_meta( $post_id, 'apple_news_api_async_in_progress', time() );
- update_post_meta( $post_id, 'apple_news_api_bundle', time() );
- update_post_meta( $post_id, 'apple_news_api_json', time() );
- update_post_meta( $post_id, 'apple_news_api_errors', time() );
-
- // Create simulated GET data.
- $_GET['post_id'] = $post_id; // phpcs:ignore WordPress.VIP.SuperGlobalInputUsage.AccessDetected
- $_GET['page'] = 'apple_news_index'; // phpcs:ignore WordPress.VIP.SuperGlobalInputUsage.AccessDetected
- $_GET['action'] = 'apple_news_reset'; // phpcs:ignore WordPress.VIP.SuperGlobalInputUsage.AccessDetected
-
- // Simulate the action.
- $index_page = new Admin_Apple_Index_Page( $this->settings );
- $index_page->page_router();
-
- // Ensure values were deleted.
- $this->assertEmpty( get_post_meta( $post_id, 'apple_news_api_pending', true ) );
- $this->assertEmpty( get_post_meta( $post_id, 'apple_news_api_async_in_progress', true ) );
- $this->assertEmpty( get_post_meta( $post_id, 'apple_news_api_bundle', true ) );
- $this->assertEmpty( get_post_meta( $post_id, 'apple_news_api_json', true ) );
- $this->assertEmpty( get_post_meta( $post_id, 'apple_news_api_errors', true ) );
- }
-}
diff --git a/tests/admin/test-class-admin-apple-meta-boxes.php b/tests/admin/test-class-admin-apple-meta-boxes.php
deleted file mode 100644
index f8b561dc..00000000
--- a/tests/admin/test-class-admin-apple-meta-boxes.php
+++ /dev/null
@@ -1,108 +0,0 @@
-settings->__set( 'api_autosync', 'no' );
- $this->settings->__set( 'show_metabox', 'yes' );
-
- // Create post.
- $post_id = $this->factory->post->create();
-
- // Create post data.
- /* phpcs:disable WordPress.Security.NonceVerification.Missing, WordPress.Security.ValidatedSanitizedInput.InputNotValidated, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized */
- $_POST['post_ID'] = $post_id;
- $_POST['apple_news_sections'] = [ 'https://news-api.apple.com/sections/1234567890' ];
- $_POST['apple_news_is_hidden'] = '';
- $_POST['apple_news_is_paid'] = '';
- $_POST['apple_news_is_preview'] = '';
- $_POST['apple_news_is_sponsored'] = '';
- $_POST['apple_news_maturity_rating'] = 'MATURE';
- $_POST['apple_news_pullquote'] = 'test pullquote';
- $_POST['apple_news_pullquote_position'] = 'middle';
- $_POST['apple_news_nonce'] = wp_create_nonce( 'apple_news_publish' );
- $_POST['apple_news_publish_action'] = 'apple_news_publish';
- $_REQUEST['post_ID'] = $_POST['post_ID'];
- $_REQUEST['apple_news_nonce'] = $_POST['apple_news_nonce'];
- /* phpcs:enable */
-
- // Create the meta box class and simulate a save.
- $meta_box = new Admin_Apple_Meta_Boxes( $this->settings );
- if ( 'yes' === $this->settings->__get( 'show_metabox' ) ) {
- $meta_box->do_publish( $post_id, get_post( $post_id ) );
- }
-
- // Check the meta values.
- $this->assertEquals( [ 'https://news-api.apple.com/sections/1234567890' ], get_post_meta( $post_id, 'apple_news_sections', true ) );
- $this->assertEquals( '', get_post_meta( $post_id, 'apple_news_is_hidden', true ) );
- $this->assertEquals( '', get_post_meta( $post_id, 'apple_news_is_paid', true ) );
- $this->assertEquals( '', get_post_meta( $post_id, 'apple_news_is_preview', true ) );
- $this->assertEquals( '', get_post_meta( $post_id, 'apple_news_is_sponsored', true ) );
- $this->assertEquals( 'MATURE', get_post_meta( $post_id, 'apple_news_maturity_rating', true ) );
- $this->assertEquals( 'test pullquote', get_post_meta( $post_id, 'apple_news_pullquote', true ) );
- $this->assertEquals( 'middle', get_post_meta( $post_id, 'apple_news_pullquote_position', true ) );
- }
-
- /**
- * Tests the behavior of saving a post with auto-sync enabled.
- */
- public function test_save_with_auto_sync() {
- // Set API settings to not auto sync and to enable the meta box.
- $this->settings->__set( 'api_autosync', 'yes' );
- $this->settings->__set( 'show_metabox', 'yes' );
-
- // Create post.
- $post_id = $this->factory->post->create();
-
- // Create post data.
- /* phpcs:disable WordPress.Security.NonceVerification.Missing, WordPress.Security.ValidatedSanitizedInput.InputNotValidated, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized */
- $_POST['post_ID'] = $post_id;
- $_POST['apple_news_sections'] = [ 'https://news-api.apple.com/sections/1234567890' ];
- $_POST['apple_news_is_hidden'] = '';
- $_POST['apple_news_is_paid'] = '';
- $_POST['apple_news_is_preview'] = '';
- $_POST['apple_news_is_sponsored'] = '';
- $_POST['apple_news_maturity_rating'] = 'MATURE';
- $_POST['apple_news_pullquote'] = 'test pullquote';
- $_POST['apple_news_pullquote_position'] = 'middle';
- $_POST['apple_news_nonce'] = wp_create_nonce( 'apple_news_publish' );
- $_POST['apple_news_publish_action'] = 'apple_news_publish';
- $_REQUEST['post_ID'] = $_POST['post_ID'];
- $_REQUEST['apple_news_nonce'] = $_POST['apple_news_nonce'];
- /* phpcs:enable */
-
- // Create the meta box class and simulate a save.
- $meta_box = new Admin_Apple_Meta_Boxes( $this->settings );
- if ( 'yes' === $this->settings->__get( 'show_metabox' ) ) {
- $meta_box->do_publish( $post_id, get_post( $post_id ) );
- }
-
- // Check the meta values.
- $this->assertEquals( [ 'https://news-api.apple.com/sections/1234567890' ], get_post_meta( $post_id, 'apple_news_sections', true ) );
- $this->assertEquals( '', get_post_meta( $post_id, 'apple_news_is_hidden', true ) );
- $this->assertEquals( '', get_post_meta( $post_id, 'apple_news_is_paid', true ) );
- $this->assertEquals( '', get_post_meta( $post_id, 'apple_news_is_preview', true ) );
- $this->assertEquals( '', get_post_meta( $post_id, 'apple_news_is_sponsored', true ) );
- $this->assertEquals( 'MATURE', get_post_meta( $post_id, 'apple_news_maturity_rating', true ) );
- $this->assertEquals( 'test pullquote', get_post_meta( $post_id, 'apple_news_pullquote', true ) );
- $this->assertEquals( 'middle', get_post_meta( $post_id, 'apple_news_pullquote_position', true ) );
- }
-}
diff --git a/tests/admin/test-class-admin-apple-notice.php b/tests/admin/test-class-admin-apple-notice.php
deleted file mode 100644
index 568ef382..00000000
--- a/tests/admin/test-class-admin-apple-notice.php
+++ /dev/null
@@ -1,134 +0,0 @@
-become_admin();
- }
-
- /**
- * Tests the behavior of outputting info messages.
- */
- public function test_info() {
- Admin_Apple_Notice::info( 'This is an info message' );
-
- ob_start();
- Admin_Apple_Notice::show();
- $notice = ob_get_contents();
- ob_end_clean();
-
- $expected = preg_replace( '/\s+/', '', '
' );
- $notice = preg_replace( '/data-nonce="[^"]+"/', 'data-nonce="some-nonce"', $notice );
- $notice = preg_replace( '/\s+/', '', $notice );
-
- $this->assertEquals( $expected, $notice );
- }
-}
diff --git a/tests/admin/test-class-admin-apple-themes.php b/tests/admin/test-class-admin-apple-themes.php
deleted file mode 100644
index eb01bdf9..00000000
--- a/tests/admin/test-class-admin-apple-themes.php
+++ /dev/null
@@ -1,594 +0,0 @@
-save_settings( $this->settings->all() );
-
- // Force creation of a default theme if it does not exist.
- $theme = new Theme();
- $theme->set_name( __( 'Default', 'apple-news' ) );
- if ( ! $theme->load() ) {
- $theme->save();
- }
- }
-
- /**
- * A helper function to create a new named theme.
- *
- * @param string $name The name for the theme.
- * @param array $settings The settings for the theme.
- */
- public function create_new_theme( $name, $settings = [] ) {
-
- // Set up the request.
- $nonce = wp_create_nonce( 'apple_news_save_edit_theme' );
- /* phpcs:disable WordPress.Security.NonceVerification.Missing, WordPress.Security.ValidatedSanitizedInput.InputNotValidated, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized */
- $_POST['apple_news_theme_name'] = $name;
- $_POST['action'] = 'apple_news_save_edit_theme';
- $_POST['page'] = 'apple-news-themes';
- $_POST['redirect'] = false;
- $_REQUEST['_wp_http_referer'] = '/wp-admin/admin.php?page=apple-news-theme-edit';
- $_REQUEST['_wpnonce'] = $nonce;
- $_REQUEST['action'] = $_POST['action'];
- /* phpcs:enable */
-
- // Merge any provided settings with default settings.
- $default_theme = new Theme();
- $defaults = $default_theme->all_settings();
- $settings = wp_parse_args( $settings, $defaults );
-
- // Add all of these to the $_POST object.
- foreach ( $settings as $key => $value ) {
- $_POST[ $key ] = $value;
- }
-
- // Invoke the save operation in the themes class.
- $this->themes->action_router();
- }
-
- /**
- * A fixture containing operations to be run before each test.
- */
- public function setUp(): void {
- parent::setUp();
-
- // Store an instance of the Admin_Apple_Themes class for use in testing.
- $this->themes = new \Admin_Apple_Themes();
-
- // Remove the Default theme, if it exists.
- $default_theme = new Theme();
- $default_theme->set_name( __( 'Default', 'apple-news' ) );
- if ( $default_theme->load() ) {
- $default_theme->delete();
- }
-
- // Remove the Test Theme, if it exists.
- $test_theme = new Theme();
- $test_theme->set_name( 'Test Theme' );
- if ( $test_theme->load() ) {
- $test_theme->delete();
- }
- }
-
- /**
- * Ensures that the default theme is created properly.
- */
- public function test_create_default_theme() {
-
- // Create the default theme.
- $this->create_default_theme();
-
- // Ensure the default theme was created.
- $vanilla_theme = new Theme();
- $default_theme = new Theme();
- $default_theme->set_name( __( 'Default', 'apple-news' ) );
- $this->assertEquals(
- __( 'Default', 'apple-news' ),
- Theme::get_active_theme_name()
- );
- $this->assertTrue( $default_theme->load() );
- $this->assertEquals(
- $vanilla_theme->all_settings(),
- $default_theme->all_settings()
- );
- $this->assertTrue(
- in_array(
- __( 'Default', 'apple-news' ),
- Theme::get_registry(),
- true
- )
- );
- }
-
- /**
- * Ensures themes are able to be created properly.
- */
- public function test_create_theme() {
-
- // Set the POST data required to create a new theme.
- $name = 'Test Theme';
- $this->create_new_theme( $name, [ 'body_color' => '#ff0000' ] );
-
- // Check that the data was saved properly.
- $default_theme = new Theme();
- $expected_settings = $default_theme->all_settings();
- $expected_settings['body_color'] = '#ff0000';
- $test_theme = new Theme();
- $test_theme->set_name( 'Test Theme' );
- $test_theme->load();
- $this->assertEquals( $expected_settings, $test_theme->all_settings() );
- }
-
- /**
- * Ensure that a theme can be deleted.
- */
- public function test_delete_theme() {
-
- // Create the default theme.
- $this->create_default_theme();
-
- // Name and create a new theme.
- $name = 'Test Theme';
- $this->create_new_theme( $name );
-
- // Ensure both themes exist.
- $this->assertTrue(
- in_array(
- __( 'Default', 'apple-news' ),
- Theme::get_registry(),
- true
- )
- );
- $this->assertTrue(
- in_array(
- $name,
- Theme::get_registry(),
- true
- )
- );
- $default_theme = new Theme();
- $default_theme->set_name( __( 'Default', 'apple-news' ) );
- $this->assertTrue( $default_theme->load() );
- $test_theme = new Theme();
- $test_theme->set_name( 'Test Theme' );
- $this->assertTrue( $test_theme->load() );
-
- // Delete the test theme.
- $nonce = wp_create_nonce( 'apple_news_themes' );
- /* phpcs:disable WordPress.Security.NonceVerification.Missing, WordPress.Security.ValidatedSanitizedInput.InputNotValidated, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized */
- $_POST['apple_news_theme_name'] = $name;
- $_POST['action'] = 'apple_news_delete_theme';
- $_POST['apple_news_theme'] = $name;
- $_POST['page'] = 'apple-news-themes';
- $_REQUEST['_wp_http_referer'] = '/wp-admin/admin.php?page=apple-news-themes';
- $_REQUEST['_wpnonce'] = $nonce;
- $_REQUEST['action'] = $_POST['action'];
- /* phpcs:enable */
- $this->themes->action_router();
-
- // Ensure that the test theme does not exist after deletion.
- $this->assertFalse(
- in_array(
- $name,
- Theme::get_registry(),
- true
- )
- );
- $this->assertFalse( $test_theme->load() );
- }
-
- /**
- * Tests a theme import.
- */
- public function test_import_theme() {
-
- // Setup.
- $import_settings = [
- 'layout_margin' => 100,
- 'layout_gutter' => 20,
- 'theme_name' => 'Test Import Theme',
- ];
-
- // Test.
- $this->assertTrue( $this->themes->import_theme( $import_settings ) );
- $theme = new Theme();
- $theme->set_name( 'Test Import Theme' );
- $this->assertTrue( $theme->load() );
- $theme_settings = $theme->all_settings();
- $this->assertEquals( 100, $theme_settings['layout_margin'] );
- $this->assertEquals( 20, $theme_settings['layout_gutter'] );
-
- // Cleanup.
- $theme->delete();
- }
-
- /**
- * Tests a theme import with an invalid JSON spec.
- */
- public function test_import_theme_invalid_json() {
-
- // Setup.
- $invalid_json = [
- 'role' => 'audio',
- 'URL' => '#invalid#',
- ];
- $import_settings = [
- 'layout_margin' => 100,
- 'layout_gutter' => 20,
- 'json_templates' => [
- 'audio' => [
- 'json' => $invalid_json,
- ],
- ],
- 'theme_name' => 'Test Import Theme',
- ];
-
- // Test.
- $this->assertIsString( $this->themes->import_theme( $import_settings ) );
- $theme = new Theme();
- $theme->set_name( 'Test Import Theme' );
- $this->assertFalse( $theme->load() );
- }
-
- /**
- * Ensures that JSON customizations from versions prior to 1.3.0 are migrated to
- * the theme(s).
- */
- public function test_json_migrate_to_theme() {
-
- // Create the default theme and the Test Theme.
- $this->create_default_theme();
- $this->create_new_theme( 'Test Theme' );
-
- // Define the default-body JSON override we will be testing against.
- $default_body = [
- 'textAlignment' => 'left',
- 'fontName' => '#body_font#',
- 'fontSize' => '#body_size#',
- 'tracking' => '#body_tracking#',
- 'lineHeight' => '#body_line_height#',
- 'textColor' => '#body_color#',
- 'linkStyle' => [
- 'textColor' => '#body_link_color#',
- ],
- 'paragraphSpacingBefore' => 24,
- 'paragraphSpacingAfter' => 24,
- ];
-
- // Add legacy format JSON overrides.
- update_option(
- 'apple_news_json_body',
- [ 'apple_news_json_default-body' => $default_body ],
- false
- );
-
- // Run the function to trigger the settings migration.
- $apple_news = new Apple_News();
- $apple_news->migrate_custom_json_to_themes();
-
- // Ensure that the default-body override was applied to the themes.
- $default_theme = new Theme();
- $default_theme->set_name( __( 'Default', 'apple-news' ) );
- $this->assertTrue( $default_theme->load() );
- $test_theme = new Theme();
- $test_theme->set_name( 'Test Theme' );
- $this->assertTrue( $test_theme->load() );
- $default_settings = $default_theme->all_settings();
- $test_theme_settings = $test_theme->all_settings();
- $this->assertEquals(
- $default_body,
- $default_settings['json_templates']['body']['default-body']
- );
- $this->assertEquals(
- $default_body,
- $test_theme_settings['json_templates']['body']['default-body']
- );
- }
-
- /**
- * Ensures that a custom spec is saved properly.
- */
- public function test_json_save_custom_spec() {
-
- // Setup.
- $this->create_default_theme();
- $json = <<action_router();
-
- // Test.
- $theme = new Theme();
- $theme->set_name( Theme::get_active_theme_name() );
- $this->assertTrue( $theme->load() );
- $theme_settings = $theme->all_settings();
- $stored_json = wp_json_encode(
- $theme_settings['json_templates']['body']['json'],
- JSON_PRETTY_PRINT
- );
- $this->assertEquals( $stored_json, $json );
- }
-
- /**
- * Ensure that invalid tokens are not saved in a custom spec.
- */
- public function test_json_save_invalid_tokens() {
-
- // Setup.
- $this->create_default_theme();
- $invalid_json = <<action_router();
-
- // Test.
- $theme = new Theme();
- $theme->set_name( Theme::get_active_theme_name() );
- $this->assertTrue( $theme->load() );
- $theme_settings = $theme->all_settings();
- $this->assertTrue( empty( $theme_settings['json_templates'] ) );
- }
-
- /**
- * Ensure that valid tokens are saved in the custom JSON spec.
- */
- public function test_json_save_valid_tokens() {
-
- // Setup.
- $this->create_default_theme();
- $json = <<action_router();
-
- // Test.
- $theme = new Theme();
- $theme->set_name( Theme::get_active_theme_name() );
- $this->assertTrue( $theme->load() );
- $theme_settings = $theme->all_settings();
- $stored_json = stripslashes(
- wp_json_encode(
- $theme_settings['json_templates']['audio']['json'],
- JSON_PRETTY_PRINT
- )
- );
- $this->assertEquals( $stored_json, $json );
- }
-
- /**
- * Ensure that the custom spec is used on render.
- */
- public function test_json_use_custom_spec() {
-
- // Setup.
- $this->create_default_theme();
- $json = <<action_router();
-
- // Test.
- $post_id = self::factory()->post->create();
- $json = $this->get_json_for_post( $post_id );
- $this->assertEquals(
- 20,
- $json['componentLayouts']['body-layout']['margin']['bottom']
- );
- $this->assertEquals(
- 50,
- $json['componentLayouts']['body-layout']['margin']['top']
- );
- }
-
- /**
- * Ensure that postmeta in a custom spec is used on render.
- */
- public function test_json_use_custom_spec_postmeta() {
-
- // Setup.
- $this->create_default_theme();
- $json = <<action_router();
-
- // Test.
- $post_id = self::factory()->post->create();
- add_post_meta( $post_id, 'apple_news_column_span', 2, true );
- $json = $this->get_json_for_post( $post_id );
- $this->assertEquals(
- 2,
- $json['componentLayouts']['body-layout']['columnSpan']
- );
- }
-
- /**
- * Ensure that a new theme can be set as the active theme.
- */
- public function test_set_theme() {
-
- // Create the default theme.
- $this->create_default_theme();
-
- // Create a test theme with altered settings.
- $this->create_new_theme( 'Test Theme', [ 'layout_margin' => 50 ] );
-
- // Simulate the form submission to set the theme.
- /* phpcs:disable WordPress.Security.NonceVerification.Missing, WordPress.Security.ValidatedSanitizedInput.InputNotValidated, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized */
- $nonce = wp_create_nonce( 'apple_news_themes' );
- $_POST['action'] = 'apple_news_set_theme';
- $_POST['apple_news_active_theme'] = 'Test Theme';
- $_POST['page'] = 'apple-news-themes';
- $_REQUEST['_wp_http_referer'] = '/wp-admin/admin.php?page=apple-news-themes';
- $_REQUEST['_wpnonce'] = $nonce;
- $_REQUEST['action'] = $_POST['action'];
- /* phpcs:enable */
- $this->themes->action_router();
-
- // Check that the theme got set.
- $this->assertEquals(
- 'Test Theme',
- Theme::get_active_theme_name()
- );
- $theme = new Theme();
- $theme->set_name( 'Test Theme' );
- $this->assertTrue( $theme->load() );
- $theme_settings = $theme->all_settings();
- $this->assertEquals( 50, $theme_settings['layout_margin'] );
- }
-
- /**
- * Ensures that the 2.4.0 upgrade updates author_format theme values correctly.
- */
- public function test_upgrade_2_4_0() {
- $registry = \Apple_Exporter\Theme::get_registry();
-
- // Reset author and byline formats to old convention so we can test upgrade logic.
- foreach ( $registry as $theme_name ) {
- $theme_object = Admin_Apple_Themes::get_theme_by_name( $theme_name );
- $theme_object->set_value( 'author_format', 'by #author#' );
- $theme_object->set_value( 'byline_format', 'by #author# | #M j, Y | g:i A#' );
- $theme_object->save();
- }
-
- $apple_news = new Apple_News();
- $apple_news->upgrade_to_2_4_0();
-
- // Confirm that upgrade logic updated the author and byline formats to the new convention.
- foreach ( $registry as $theme_name ) {
- $theme_object = Admin_Apple_Themes::get_theme_by_name( $theme_name );
- $this->assertEquals( 'By #author#', $theme_object->get_value( 'author_format' ) );
- $this->assertEquals( 'By #author# | #M j, Y | g:i A#', $theme_object->get_value( 'byline_format' ) );
- }
- }
-}
diff --git a/tests/admin/test-class-automation.php b/tests/admin/test-class-automation.php
deleted file mode 100644
index 84eb0497..00000000
--- a/tests/admin/test-class-automation.php
+++ /dev/null
@@ -1,419 +0,0 @@
-post->create();
- $this->set_theme_settings( [ 'meta_component_order' => [ 'slug' ] ] );
-
- // Create an automation routine for the slug component.
- $result_1 = wp_insert_term( 'Test Slug Category 1', 'category' );
- $result_2 = wp_insert_term( 'Test Slug Category 2', 'category' );
- $term_id_1 = $result_1['term_id'];
- $term_id_2 = $result_2['term_id'];
- update_option(
- 'apple_news_automation',
- [
- [
- 'field' => 'slug.#text#',
- 'taxonomy' => 'category',
- 'term_id' => $term_id_1,
- 'value' => 'Lower Priority',
- ],
- [
- 'field' => 'slug.#text#',
- 'taxonomy' => 'category',
- 'term_id' => $term_id_2,
- 'value' => 'Top Priority',
- ],
- ]
- );
-
- // Set the taxonomy term to trigger the automation routine and ensure the slug value is set.
- wp_set_post_terms( $post_id, [ $term_id_1, $term_id_2 ], 'category' );
- $json = $this->get_json_for_post( $post_id );
- $this->assertEquals( 'heading', $json['components'][0]['role'] );
- $this->assertEquals( 'Top Priority', $json['components'][0]['text'] );
-
- // Invert the priorities and ensure it worked properly.
- update_option(
- 'apple_news_automation',
- [
- [
- 'field' => 'slug.#text#',
- 'taxonomy' => 'category',
- 'term_id' => $term_id_2,
- 'value' => 'Top Priority',
- ],
- [
- 'field' => 'slug.#text#',
- 'taxonomy' => 'category',
- 'term_id' => $term_id_1,
- 'value' => 'Lower Priority',
- ],
- ]
- );
- $json = $this->get_json_for_post( $post_id );
- $this->assertEquals( 'Lower Priority', $json['components'][0]['text'] );
- }
-
- /**
- * Tests automation of the slug value.
- */
- public function test_component_slug_automation() {
- $post_id = self::factory()->post->create();
- $this->set_theme_settings( [ 'meta_component_order' => [ 'slug' ] ] );
-
- // Create an automation routine for the slug component.
- $result = wp_insert_term( 'Test Slug Category', 'category' );
- $term_id = $result['term_id'];
- update_option(
- 'apple_news_automation',
- [
- [
- 'field' => 'slug.#text#',
- 'taxonomy' => 'category',
- 'term_id' => $term_id,
- 'value' => 'Test Slug Value',
- ],
- ]
- );
-
- // Set the taxonomy term to trigger the automation routine and ensure the slug value is set.
- wp_set_post_terms( $post_id, [ $term_id ], 'category' );
- $json = $this->get_json_for_post( $post_id );
- $this->assertEquals( 'heading', $json['components'][0]['role'] );
- $this->assertEquals( 'Test Slug Value', $json['components'][0]['text'] );
- }
-
- /**
- * Tests the functionality of using Automation to set the value of the contentGenerationType metadata.
- */
- public function test_content_generation_type() {
- $post_id = self::factory()->post->create();
-
- // Create an automation routine for the slug component.
- $result = wp_insert_term( 'AI Generated', 'category' );
- $term_id = $result['term_id'];
- update_option(
- 'apple_news_automation',
- [
- [
- 'field' => 'contentGenerationType',
- 'taxonomy' => 'category',
- 'term_id' => $term_id,
- 'value' => 'AI',
- ],
- ]
- );
-
- // Set the taxonomy term to trigger the automation routine and ensure the contentGenerationType is properly set.
- wp_set_post_terms( $post_id, [ $term_id ], 'category' );
- $json = $this->get_json_for_post( $post_id );
- $this->assertEquals( 'AI', $json['metadata']['contentGenerationType'] );
- }
-
- /**
- * Ensures that named metadata is properly set via an automation process.
- *
- * @dataProvider data_metadata_automation
- *
- * @param string $flag The flag that should be set by automation.
- */
- public function test_metadata_automation( $flag ) {
- $post_id = self::factory()->post->create();
-
- // Create an automation routine for this flag.
- $result = wp_insert_term( 'Test Flag ' . $flag, 'category' );
- $term_id = $result['term_id'];
- update_option(
- 'apple_news_automation',
- [
- [
- 'field' => $flag,
- 'taxonomy' => 'category',
- 'term_id' => $term_id,
- 'value' => 'true',
- ],
- ]
- );
-
- // Set the taxonomy term to trigger the automation routine and ensure the flag is set.
- wp_set_post_terms( $post_id, [ $term_id ], 'category' );
- $request = $this->get_request_for_post( $post_id );
- $metadata = $this->get_metadata_from_request( $request );
- $this->assertEquals( true, $metadata['data'][ $flag ] );
- }
-
- /**
- * Tests the ability to prepend arbitrary text to the metadata title of an article before it is published.
- */
- public function test_metadata_title_automation() {
- $post_id = self::factory()->post->create( [ 'post_title' => 'Lorem Ipsum Dolor Sit Amet' ] );
-
- // Create an automation routine for the metadata title component.
- $result = wp_insert_term( 'Opinion', 'category' );
- $term_id = $result['term_id'];
- update_option(
- 'apple_news_automation',
- [
- [
- 'field' => 'title.prepend',
- 'taxonomy' => 'category',
- 'term_id' => $term_id,
- 'value' => 'Opinion:',
- ],
- ]
- );
-
- // Set the taxonomy term to trigger the automation routine and ensure the title value is set properly.
- wp_set_post_terms( $post_id, [ $term_id ], 'category' );
- $json = $this->get_json_for_post( $post_id );
- $this->assertEquals( 'Opinion: Lorem Ipsum Dolor Sit Amet', $json['title'] );
-
- // Ensure that the title modification only applies to the metadata title and not the visible title in the component tree.
- $this->assertEquals( 'title', $json['components'][0]['role'] );
- $this->assertEquals( 'Lorem Ipsum Dolor Sit Amet', $json['components'][0]['text'] );
- }
-
- /**
- * Tests ability to automate setting a section.
- */
- public function test_sections_automation() {
- $post_id = self::factory()->post->create();
-
- // Create an automation routine for section mapping.
- $result = wp_insert_term( 'Test Section Category', 'category' );
- $term_id = $result['term_id'];
- update_option(
- 'apple_news_automation',
- [
- [
- 'field' => 'links.sections',
- 'taxonomy' => 'category',
- 'term_id' => $term_id,
- 'value' => 'abcdef01-2345-6789-abcd-ef012356789b',
- ],
- ]
- );
-
- // Set the taxonomy term to trigger the automation routine and ensure the flag is set.
- wp_set_post_terms( $post_id, [ $term_id ], 'category' );
- $request = $this->get_request_for_post( $post_id );
- $metadata = $this->get_metadata_from_request( $request );
- $this->assertEquals(
- [ 'https://news-api.apple.com/channels/abcdef01-2345-6789-abcd-ef012356789b' ],
- $metadata['data']['links']['sections']
- );
- }
-
- /**
- * Tests settings migration from the old Sections paradigm to Automation.
- */
- public function test_settings_migration() {
- // Set up the legacy options.
- update_option(
- 'apple_news_section_priority_mappings',
- [
- 'abcdef01-2345-6789-abcd-ef0123567890' => 1,
- 'bcdef012-3456-789a-bcde-f01235678901' => 2,
- 'cdef0123-4567-89ab-cdef-012356789012' => 3,
- ]
- );
- update_option(
- 'apple_news_section_taxonomy_mappings',
- [
- 'abcdef01-2345-6789-abcd-ef0123567890' => [ 1 ],
- 'bcdef012-3456-789a-bcde-f01235678901' => [ 2 ],
- 'cdef0123-4567-89ab-cdef-012356789012' => [ 3, 4 ],
- ]
- );
- update_option(
- 'apple_news_section_theme_mappings',
- [
- 'abcdef01-2345-6789-abcd-ef0123567890' => 'Primary Theme',
- 'bcdef012-3456-789a-bcde-f01235678901' => 'News Theme',
- 'cdef0123-4567-89ab-cdef-012356789012' => 'Entertainment Theme',
- ]
- );
-
- // Trigger the migration to automation settings and confirm the result.
- $apple_news = new Apple_News();
- $apple_news->upgrade_to_2_4_0();
- $this->assertEquals(
- [
- [
- 'field' => 'links.sections',
- 'taxonomy' => 'category',
- 'term_id' => 3,
- 'value' => 'cdef0123-4567-89ab-cdef-012356789012',
- ],
- [
- 'field' => 'theme',
- 'taxonomy' => 'category',
- 'term_id' => 3,
- 'value' => 'Entertainment Theme',
- ],
- [
- 'field' => 'links.sections',
- 'taxonomy' => 'category',
- 'term_id' => 4,
- 'value' => 'cdef0123-4567-89ab-cdef-012356789012',
- ],
- [
- 'field' => 'theme',
- 'taxonomy' => 'category',
- 'term_id' => 4,
- 'value' => 'Entertainment Theme',
- ],
- [
- 'field' => 'links.sections',
- 'taxonomy' => 'category',
- 'term_id' => 2,
- 'value' => 'bcdef012-3456-789a-bcde-f01235678901',
- ],
- [
- 'field' => 'theme',
- 'taxonomy' => 'category',
- 'term_id' => 2,
- 'value' => 'News Theme',
- ],
- [
- 'field' => 'links.sections',
- 'taxonomy' => 'category',
- 'term_id' => 1,
- 'value' => 'abcdef01-2345-6789-abcd-ef0123567890',
- ],
- [
- 'field' => 'theme',
- 'taxonomy' => 'category',
- 'term_id' => 1,
- 'value' => 'Primary Theme',
- ],
- ],
- Automation::get_automation_rules()
- );
- $this->assertFalse( get_option( 'apple_news_section_priority_mappings' ) );
- $this->assertFalse( get_option( 'apple_news_section_taxonomy_mappings' ) );
- $this->assertFalse( get_option( 'apple_news_section_theme_mappings' ) );
- }
-
- /**
- * Tests automation rules based on a different taxonomy (post_tag instead of category).
- */
- public function test_taxonomy_change() {
- $post_id = self::factory()->post->create();
- $this->set_theme_settings( [ 'meta_component_order' => [ 'slug' ] ] );
-
- // Create an automation routine for the slug component.
- $result = wp_insert_term( 'Test Slug Tag', 'post_tag' );
- $term_id = $result['term_id'];
- update_option(
- 'apple_news_automation',
- [
- [
- 'field' => 'slug.#text#',
- 'taxonomy' => 'post_tag',
- 'term_id' => $term_id,
- 'value' => 'Test Slug Tag Value',
- ],
- ]
- );
-
- // Set the taxonomy term to trigger the automation routine and ensure the slug value is set.
- wp_set_post_terms( $post_id, [ $term_id ], 'post_tag' );
- $json = $this->get_json_for_post( $post_id );
- $this->assertEquals( 'heading', $json['components'][0]['role'] );
- $this->assertEquals( 'Test Slug Tag Value', $json['components'][0]['text'] );
- }
-
- /**
- * Tests automation of theme selection by taxonomy.
- */
- public function test_theme_automation() {
- // Load some themes so we have more than one to choose from.
- $this->load_example_theme( 'colorful' );
- $this->load_example_theme( 'default' );
-
- $post_id = self::factory()->post->create();
-
- // Create an automation routine for selecting the theme based on category.
- $result = wp_insert_term( 'Entertainment', 'category' );
- $term_id = $result['term_id'];
- update_option(
- 'apple_news_automation',
- [
- [
- 'field' => 'theme',
- 'taxonomy' => 'category',
- 'term_id' => $term_id,
- 'value' => 'Colorful',
- ],
- ]
- );
-
- // Set the taxonomy term to trigger the automation routine and ensure the correct theme is chosen.
- wp_set_post_terms( $post_id, [ $term_id ], 'category' );
- $json = $this->get_json_for_post( $post_id );
- $this->assertEquals( '#000000', $json['componentTextStyles']['default-title']['textColor'] );
- }
-
- /**
- * Tests the ability to prepend arbitrary text to the visible title of an article before it is published.
- */
- public function test_title_automation() {
- $post_id = self::factory()->post->create( [ 'post_title' => 'Lorem Ipsum Dolor Sit Amet' ] );
-
- // Create an automation routine for the title component.
- $result = wp_insert_term( 'Commentary', 'category' );
- $term_id = $result['term_id'];
- update_option(
- 'apple_news_automation',
- [
- [
- 'field' => 'headline.prepend',
- 'taxonomy' => 'category',
- 'term_id' => $term_id,
- 'value' => 'Commentary:',
- ],
- ]
- );
-
- // Set the taxonomy term to trigger the automation routine and ensure the title value is set properly.
- wp_set_post_terms( $post_id, [ $term_id ], 'category' );
- $json = $this->get_json_for_post( $post_id );
- $this->assertEquals( 'title', $json['components'][0]['role'] );
- $this->assertEquals( 'Commentary: Lorem Ipsum Dolor Sit Amet', $json['components'][0]['text'] );
-
- // Ensure that the title modification only applies to the component title and not the metadata title.
- $this->assertEquals( 'Lorem Ipsum Dolor Sit Amet', $json['title'] );
- }
-}
diff --git a/tests/apple-exporter/builders/test-class-component-layouts.php b/tests/apple-exporter/builders/test-class-component-layouts.php
deleted file mode 100644
index afa745eb..00000000
--- a/tests/apple-exporter/builders/test-class-component-layouts.php
+++ /dev/null
@@ -1,57 +0,0 @@
-content, $this->settings );
- $layouts->register_layout( 'l1', 'val1' );
- $layouts->register_layout( 'l2', 'val2' );
- $result = $layouts->to_array();
-
- $this->assertEquals( 2, count( $result ) );
- $this->assertEquals( 'val1', $result['l1'] );
- $this->assertEquals( 'val2', $result['l2'] );
- }
-
- /**
- * Tests the behavior of anchor layout left.
- */
- public function test_left_layout_gets_added() {
- $layouts = new Component_Layouts( $this->content, $this->settings );
-
- $this->assertFalse( array_key_exists( 'anchor-layout-left', $layouts->to_array() ) );
-
- $component = $this->prophet->prophesize( '\Apple_Exporter\Components\Component' );
- $component->get_anchor_position()
- ->willReturn( Component::ANCHOR_LEFT )
- ->shouldBeCalled();
- $component->is_anchor_target()
- ->willReturn( false )
- ->shouldBeCalled();
- $component->set_json( 'layout', 'anchor-layout-left' )->shouldBeCalled();
-
- $layouts->set_anchor_layout_for( $component->reveal() );
-
- $this->assertTrue( array_key_exists( 'anchor-layout-left', $layouts->to_array() ) );
- }
-}
diff --git a/tests/apple-exporter/builders/test-class-component-styles.php b/tests/apple-exporter/builders/test-class-component-styles.php
deleted file mode 100644
index df0efa4f..00000000
--- a/tests/apple-exporter/builders/test-class-component-styles.php
+++ /dev/null
@@ -1,31 +0,0 @@
-content, $this->settings );
- $styles->register_style( 'some-name', [ 'my-key' => 'my value' ] );
- $result = $styles->to_array();
-
- $this->assertEquals( 1, count( $result ) );
- $this->assertEquals( [ 'my-key' => 'my value' ], $result['some-name'] );
- }
-}
diff --git a/tests/apple-exporter/builders/test-class-component-text-styles.php b/tests/apple-exporter/builders/test-class-component-text-styles.php
deleted file mode 100644
index fbb66da9..00000000
--- a/tests/apple-exporter/builders/test-class-component-text-styles.php
+++ /dev/null
@@ -1,32 +0,0 @@
-content, $this->settings );
- $styles->register_style( 'some-name', 'my value' );
- $result = $styles->to_array();
-
- $this->assertEquals( 1, count( $result ) );
- $this->assertEquals( 'my value', $result['some-name'] );
- }
-}
diff --git a/tests/apple-exporter/builders/test-class-components.php b/tests/apple-exporter/builders/test-class-components.php
deleted file mode 100644
index e63f11bf..00000000
--- a/tests/apple-exporter/builders/test-class-components.php
+++ /dev/null
@@ -1,349 +0,0 @@
-set_theme_settings( [ 'cover_caption' => true ] );
-
- // Create a new post and set an image with a caption as the featured image.
- $post_id = self::factory()->post->create();
- $image = $this->get_new_attachment( $post_id, 'Test Caption', 'Test alt text' );
- set_post_thumbnail( $post_id, $image );
-
- // Ensure that the caption carries through to the export.
- $json = $this->get_json_for_post( $post_id );
- $this->assertEquals( 'caption', $json['components'][0]['components'][1]['role'] );
- $this->assertEquals( 'Test Caption', $json['components'][0]['components'][1]['text'] );
-
- // Create a new post with an image with a caption in the content.
- $image_2 = $this->get_new_attachment( 0, 'Test Caption 2', 'Test alt text 2' );
- $post_id_2 = self::factory()->post->create( [ 'post_content' => $this->get_image_with_caption( $image_2 ) ] );
-
- // Ensure that the caption carries through to the export.
- $json_2 = $this->get_json_for_post( $post_id_2 );
- $this->assertEquals( 'caption', $json_2['components'][0]['components'][1]['role'] );
- $this->assertEquals( 'Test Caption 2', $json_2['components'][0]['components'][1]['text'] );
- }
-
- /**
- * Tests the image deduping functionality of the Components class.
- *
- * Ensures that a featured image with the same source URL (minus any crops)
- * as the first image in the post does not result in the same image
- * appearing twice in a row. This is accomplished by ignoring the featured
- * image and instead extracting the first image from the post to use as the
- * cover image.
- */
- public function test_featured_image_deduping() {
- $this->set_theme_settings(
- [
- 'cover_caption' => true,
- 'meta_component_order' => [ 'cover', 'slug', 'title', 'byline' ],
- ]
- );
-
- // Get two images.
- $image_1 = $this->get_new_attachment();
- $image_2 = $this->get_new_attachment();
-
- /*
- * Scenario 1:
- * - No featured image is set.
- * - No images in the content.
- * Expected: No cover image is set.
- */
- $post_1 = self::factory()->post->create();
- $json_1 = $this->get_json_for_post( $post_1 );
- $this->assertNotEquals( 'headerPhotoLayout', $json_1['components'][0]['layout'] );
-
- /*
- * Scenario 2:
- * - A featured image is set.
- * - No images in the content.
- * Expected: The featured image is set as the cover image.
- */
- $post_2 = self::factory()->post->create();
- set_post_thumbnail( $post_2, $image_1 );
- $json_2 = $this->get_json_for_post( $post_2 );
- $this->assertEquals( 'header', $json_2['components'][0]['role'] );
- $this->assertEquals( 'headerPhotoLayout', $json_2['components'][0]['layout'] );
- $this->assertEquals( 'photo', $json_2['components'][0]['components'][0]['role'] );
- $this->assertEquals( 'headerPhotoLayout', $json_2['components'][0]['components'][0]['layout'] );
- $this->assertEquals( wp_get_attachment_image_url( $image_1, 'full' ), $json_2['components'][0]['components'][0]['URL'] );
-
- /*
- * Scenario 3:
- * - A featured image is set.
- * - Image in the content, but not the same one as the featured image.
- * Expected: The featured image is set as the cover image and the body image is still in the body.
- */
- $post_3 = self::factory()->post->create( [ 'post_content' => wp_get_attachment_image( $image_2, 'full' ) ] );
- set_post_thumbnail( $post_3, $image_1 );
- $json_3 = $this->get_json_for_post( $post_3 );
- $this->assertEquals( 'header', $json_3['components'][0]['role'] );
- $this->assertEquals( 'headerPhotoLayout', $json_3['components'][0]['layout'] );
- $this->assertEquals( 'photo', $json_3['components'][0]['components'][0]['role'] );
- $this->assertEquals( 'headerPhotoLayout', $json_3['components'][0]['components'][0]['layout'] );
- $this->assertEquals( wp_get_attachment_image_url( $image_1, 'full' ), $json_3['components'][0]['components'][0]['URL'] );
- $this->assertEquals( 'photo', $json_3['components'][1]['components'][2]['role'] );
- $this->assertEquals( wp_get_attachment_image_url( $image_2, 'full' ), $json_3['components'][1]['components'][2]['URL'] );
-
- /*
- * Scenario 4:
- * - A featured image is set.
- * - Images in the content, including the same one as the featured image, but the featured image is not first.
- * Expected: The featured image is set as the cover image and the body image is still in the body.
- */
- $post_4 = self::factory()->post->create( [ 'post_content' => wp_get_attachment_image( $image_2, 'full' ) . wp_get_attachment_image( $image_1, 'full' ) ] );
- set_post_thumbnail( $post_4, $image_1 );
- $json_4 = $this->get_json_for_post( $post_4 );
- $this->assertEquals( 'header', $json_4['components'][0]['role'] );
- $this->assertEquals( 'headerPhotoLayout', $json_4['components'][0]['layout'] );
- $this->assertEquals( 'photo', $json_4['components'][0]['components'][0]['role'] );
- $this->assertEquals( 'headerPhotoLayout', $json_4['components'][0]['components'][0]['layout'] );
- $this->assertEquals( wp_get_attachment_image_url( $image_1, 'full' ), $json_4['components'][0]['components'][0]['URL'] );
- $this->assertEquals( 'photo', $json_4['components'][1]['components'][2]['role'] );
- $this->assertEquals( wp_get_attachment_image_url( $image_2, 'full' ), $json_4['components'][1]['components'][2]['URL'] );
- $this->assertEquals( 'photo', $json_4['components'][1]['components'][3]['role'] );
- $this->assertEquals( wp_get_attachment_image_url( $image_1, 'full' ), $json_4['components'][1]['components'][3]['URL'] );
-
- /*
- * Scenario 5:
- * - A featured image is set.
- * - Images in the content, including the same one as the featured image, and the featured image is first.
- * Expected: The first image from the content is set as the cover image and the first image from the content has been removed. The featured image is ignored.
- */
- $post_5 = self::factory()->post->create( [ 'post_content' => wp_get_attachment_image( $image_1, 'full' ) . wp_get_attachment_image( $image_2, 'full' ) ] );
- set_post_thumbnail( $post_5, $image_1 );
- $json_5 = $this->get_json_for_post( $post_5 );
- $this->assertEquals( 'header', $json_5['components'][0]['role'] );
- $this->assertEquals( 'headerPhotoLayout', $json_5['components'][0]['layout'] );
- $this->assertEquals( 'photo', $json_5['components'][0]['components'][0]['role'] );
- $this->assertEquals( 'headerPhotoLayout', $json_5['components'][0]['components'][0]['layout'] );
- $this->assertEquals( wp_get_attachment_image_url( $image_1, 'full' ), $json_5['components'][0]['components'][0]['URL'] );
- $this->assertEquals( 'photo', $json_5['components'][1]['components'][2]['role'] );
- $this->assertEquals( wp_get_attachment_image_url( $image_2, 'full' ), $json_5['components'][1]['components'][2]['URL'] );
- $this->assertEquals( 3, count( $json_5['components'][1]['components'] ) );
-
- /*
- * Scenario 6:
- * - No featured image is set.
- * - Images in the content.
- * Expected: The first image from the content is set as the cover image and the first image from the content has been removed.
- */
- $post_6 = self::factory()->post->create( [ 'post_content' => wp_get_attachment_image( $image_1, 'full' ) . wp_get_attachment_image( $image_2, 'full' ) ] );
- $json_6 = $this->get_json_for_post( $post_6 );
- $this->assertEquals( 'header', $json_6['components'][0]['role'] );
- $this->assertEquals( 'headerPhotoLayout', $json_6['components'][0]['layout'] );
- $this->assertEquals( 'photo', $json_6['components'][0]['components'][0]['role'] );
- $this->assertEquals( 'headerPhotoLayout', $json_6['components'][0]['components'][0]['layout'] );
- $this->assertEquals( wp_get_attachment_image_url( $image_1, 'full' ), $json_6['components'][0]['components'][0]['URL'] );
- $this->assertEquals( 'photo', $json_6['components'][1]['components'][2]['role'] );
- $this->assertEquals( wp_get_attachment_image_url( $image_2, 'full' ), $json_6['components'][1]['components'][2]['URL'] );
- $this->assertEquals( 3, count( $json_6['components'][1]['components'] ) );
-
- /*
- * Scenario 7:
- * - No featured image is set.
- * - Images in the content.
- * - Cover image set via postmeta.
- * Expected: The cover image is used from postmeta and the first image from the content is removed.
- */
- $post_7 = self::factory()->post->create( [ 'post_content' => wp_get_attachment_image( $image_1, 'full' ) . wp_get_attachment_image( $image_2, 'full' ) ] );
- add_post_meta( $post_7, 'apple_news_coverimage', $image_1 );
- $json_7 = $this->get_json_for_post( $post_7 );
- $this->assertEquals( 'header', $json_7['components'][0]['role'] );
- $this->assertEquals( 'headerPhotoLayout', $json_7['components'][0]['layout'] );
- $this->assertEquals( 'photo', $json_7['components'][0]['components'][0]['role'] );
- $this->assertEquals( 'headerPhotoLayout', $json_7['components'][0]['components'][0]['layout'] );
- $this->assertEquals( wp_get_attachment_image_url( $image_1, 'full' ), $json_7['components'][0]['components'][0]['URL'] );
- $this->assertEquals( 'photo', $json_7['components'][1]['components'][2]['role'] );
- $this->assertEquals( wp_get_attachment_image_url( $image_2, 'full' ), $json_7['components'][1]['components'][2]['URL'] );
- $this->assertEquals( 3, count( $json_7['components'][1]['components'] ) );
- }
-
- /**
- * Tests the functionality of the get_image_full_size_url function.
- *
- * @dataProvider data_image_full_size_url
- *
- * @param string $original The original URL to test.
- * @param string $expected The expected result.
- *
- * @throws ReflectionException If the reflection fails.
- */
- public function test_get_image_full_size_url( $original, $expected ) {
- $class = new ReflectionClass( 'Apple_Exporter\Builders\Components' );
- $method = $class->getMethod( 'get_image_full_size_url' );
- $method->setAccessible( true );
- $builder = new Components( $this->content, $this->content_settings );
- $this->assertEquals( $expected, $method->invokeArgs( $builder, [ $original ] ) );
- }
-
- /**
- * Tests the functionality of the maybe_bundle_source function.
- */
- public function test_image_bundling() {
- // Ensure remote images are turned off for this test.
- $use_remote_images = $this->settings->use_remote_images;
- $this->settings->use_remote_images = 'no';
-
- // Make a post with multiple images with the same filename.
- $post_content = <<
-
-
-
-
-
-
-
-
-
-
-HTML;
- $post_id = self::factory()->post->create( [ 'post_content' => $post_content ] );
- $image = $this->get_new_attachment( $post_id );
- set_post_thumbnail( $post_id, $image );
- $json = $this->get_json_for_post( $post_id );
-
- // Reset the use remote images setting.
- $this->settings->use_remote_images = $use_remote_images;
-
- // Ensure the images are saved with different bundle filenames.
- $this->assertEquals( 'bundle://filename.jpg', $json['components'][1]['components'][3]['URL'] );
- $this->assertEquals( 'bundle://filename-1.jpg', $json['components'][1]['components'][4]['URL'] );
- $this->assertEquals( 'bundle://filename-2.jpg', $json['components'][1]['components'][5]['URL'] );
- }
-
- /**
- * Ensures that the specified component order is respected.
- *
- * @dataProvider data_meta_component_ordering
- *
- * @param array $order The meta component order setting to use.
- * @param array $expected The expected component order after compilation.
- * @param array $components The expected container components, in order.
- */
- public function test_meta_component_ordering( $order, $expected, $components ) {
- $this->set_theme_settings(
- [
- 'meta_component_order' => $order,
- ]
- );
-
- // Make a post with a featured image and get the JSON for it.
- $post_id = self::factory()->post->create();
- $image = $this->get_new_attachment( $post_id );
- set_post_thumbnail( $post_id, $image );
- $json = $this->get_json_for_post( $post_id );
-
- // Test.
- $expected_total = count( $expected );
- for ( $i = 0; $i < $expected_total; $i++ ) {
- $this->assertEquals( $expected[ $i ], $json['components'][ $i ]['role'] );
- if ( 'container' === $json['components'][ $i ]['role'] ) {
- $components_total = count( $components );
- for ( $j = 0; $j < $components_total; $j++ ) {
- $this->assertEquals(
- $components[ $j ],
- $json['components'][ $i ]['components'][ $j ]['role']
- );
- }
- }
- }
- }
-}
diff --git a/tests/apple-exporter/builders/test-class-layout.php b/tests/apple-exporter/builders/test-class-layout.php
deleted file mode 100644
index 110e8c76..00000000
--- a/tests/apple-exporter/builders/test-class-layout.php
+++ /dev/null
@@ -1,73 +0,0 @@
-set_value( 'layout_margin', 123 );
- $theme->set_value( 'layout_gutter', 222 );
- $theme->set_value( 'layout_width', 768 );
- $this->assertTrue( $theme->save() );
-
- $post_id = self::factory()->post->create( [ 'post_content' => '' ] );
- $json = $this->get_json_for_post( $post_id );
-
- $this->assertEquals( $theme->get_layout_columns(), $json['layout']['columns'] );
- $this->assertEquals( 768, $json['layout']['width'] );
- $this->assertEquals( 123, $json['layout']['margin'] );
- $this->assertEquals( 222, $json['layout']['gutter'] );
- }
-
- /**
- * Test column override functionality.
- */
- public function test_column_override() {
- $theme = Theme::get_used();
- $post_id = self::factory()->post->create( [ 'post_content' => '' ] );
- $json = $this->get_json_for_post( $post_id );
-
- // Check default, override-less behavior.
- $this->assertEquals( $theme->get_layout_columns(), $json['layout']['columns'] );
- $this->assertEquals( 7, $json['layout']['columns'] );
-
- // Confirm override applies after 'layout_columns_override' is flipped to 'yes'.
- $theme->set_value( 'layout_columns_override', 'yes' );
- $theme->set_value( 'layout_columns', 6 );
- $this->assertTrue( $theme->save() );
- $json = $this->get_json_for_post( $post_id );
-
- $this->assertEquals( 6, $theme->get_layout_columns() );
- $this->assertEquals( 6, $json['layout']['columns'] );
-
- // Reset override and confirm that dynamic computed value is restored.
- $theme->set_value( 'layout_columns_override', 'no' );
- // Also set body_orientation to 'center' to ensure the computed value for layout_columns changes accordingly.
- $theme->set_value( 'body_orientation', 'center' );
- $this->assertTrue( $theme->save() );
- $json = $this->get_json_for_post( $post_id );
-
- // Confirm override applies after 'layout_columns' theme value change.
- $this->assertEquals( $theme->get_layout_columns(), $json['layout']['columns'] );
- $this->assertEquals( 9, $json['layout']['columns'] );
- }
-}
diff --git a/tests/apple-exporter/builders/test-class-metadata.php b/tests/apple-exporter/builders/test-class-metadata.php
deleted file mode 100644
index 275c99d6..00000000
--- a/tests/apple-exporter/builders/test-class-metadata.php
+++ /dev/null
@@ -1,165 +0,0 @@
-enable_coauthors_support();
- global $apple_news_coauthors;
- $apple_news_coauthors = [ 'Test Author 1', 'Test Author 2' ];
- $author = self::factory()->user->create( [ 'display_name' => 'Test Author' ] );
- $post_id = self::factory()->post->create( [ 'post_author' => $author ] );
- $result = $this->get_json_for_post( $post_id );
- $metadata = $result['metadata'];
-
- // Assertions.
- $this->assertEquals(
- [ 'Test Author 1', 'Test Author 2' ],
- $metadata['authors']
- );
-
- // Cleanup.
- $apple_news_coauthors = [];
- $this->disable_coauthors_support();
- }
-
- /**
- * Ensures that metadata is properly set.
- */
- public function test_metadata() {
- // Setup.
- $author = self::factory()->user->create( [ 'display_name' => 'Test Author' ] );
- $post_id = self::factory()->post->create(
- [
- 'post_author' => $author,
- 'post_content' => '
Hello, World!
',
- 'post_date' => '2016-04-01 00:00:00',
- 'post_excerpt' => 'Sample excerpt.',
- 'post_title' => 'My Title',
- ]
- );
- $image = $this->get_new_attachment( $post_id );
- set_post_thumbnail( $post_id, $image );
- $result = $this->get_json_for_post( $post_id );
- $metadata = $result['metadata'];
-
- // Assertions.
- $this->assertEquals(
- [ 'Test Author' ],
- $metadata['authors']
- );
- $this->assertEquals(
- '2016-04-01T00:00:00+00:00',
- $metadata['dateCreated']
- );
- $this->assertEquals(
- '2016-04-01T00:00:00+00:00',
- $metadata['dateModified']
- );
- $this->assertEquals(
- '2016-04-01T00:00:00+00:00',
- $metadata['datePublished']
- );
- $this->assertEquals(
- 'Sample excerpt.',
- $metadata['excerpt']
- );
- $this->assertEquals(
- wp_get_attachment_url( $image ),
- $metadata['thumbnailURL']
- );
- }
-
- /**
- * Ensures video metadata is properly added.
- *
- * @param string $poster The URL to the poster image for the video.
- * @param string $video The URL to the video.
- *
- * @dataProvider data_video
- */
- public function test_video( $poster, $video ) {
- // Setup.
- $post_id = self::factory()->post->create(
- [
- 'post_content' => '',
- ]
- );
- $result = $this->get_json_for_post( $post_id );
- $metadata = $result['metadata'];
-
- // Assertions.
- $this->assertEquals( $poster, $metadata['thumbnailURL'] );
- $this->assertEquals( $video, $metadata['videoURL'] );
- }
-
- /**
- * Ensures videoURL is suppressed when corresponding meta is set.
- *
- * @param string $poster The URL to the poster image for the video.
- * @param string $video The URL to the video.
- *
- * @dataProvider data_video
- */
- public function test_suppress_video_url( $poster, $video ) {
- // Setup.
- $post_id = self::factory()->post->create(
- [
- 'post_content' => '',
- ]
- );
- $image = $this->get_new_attachment( $post_id );
- set_post_thumbnail( $post_id, $image );
- $result = $this->get_json_for_post( $post_id );
- $metadata = $result['metadata'];
-
- // Pre meta suppresion assertions.
- $this->assertEquals( $poster, $metadata['thumbnailURL'] );
- $this->assertArrayHasKey( 'videoURL', $metadata );
-
- // Toggle suppression meta value.
- update_post_meta( $post_id, 'apple_news_suppress_video_url', true );
- $result = $this->get_json_for_post( $post_id );
- $metadata = $result['metadata'];
-
- // Post meta suppresion assertions.
- $this->assertEquals(
- wp_get_attachment_url( $image ),
- $metadata['thumbnailURL']
- );
- $this->assertArrayNotHasKey( 'videoURL', $metadata );
- }
-}
diff --git a/tests/apple-exporter/components/class-component-testcase.php b/tests/apple-exporter/components/class-component-testcase.php
deleted file mode 100644
index a1a4747d..00000000
--- a/tests/apple-exporter/components/class-component-testcase.php
+++ /dev/null
@@ -1,43 +0,0 @@
-loadHTML( '' . $html );
- libxml_clear_errors();
-
- // Find the first-level nodes of the body tag.
- return $dom->getElementsByTagName( 'body' )->item( 0 )->childNodes->item( 0 );
- }
-
- /**
- * A function to ensure that tokens are replaced in a JSON string.
- *
- * @param string $json The JSON to check for unreplaced tokens.
- */
- protected function ensure_tokens_replaced( $json ) {
- preg_match( '/"#[^"#]+#"/', $json, $matches );
- $this->assertEmpty( $matches );
- }
-}
diff --git a/tests/apple-exporter/components/test-class-aside.php b/tests/apple-exporter/components/test-class-aside.php
deleted file mode 100644
index f95ab17e..00000000
--- a/tests/apple-exporter/components/test-class-aside.php
+++ /dev/null
@@ -1,149 +0,0 @@
- 'test-aside-class',
- ]
- )
- );
- }
-
- /**
- * Confirms the functionality of the Aside component.
- */
- public function test_transform_aside(): void {
- $post_content = <<
-
Lorem ipsum dolor sit amet.
-
-
-
-
This is an aside.
-
-
-
-
Consectetur adipiscing elit.
-
-HTML;
- $post_id = self::factory()->post->create( [ 'post_content' => $post_content ] );
- $json = $this->get_json_for_post( $post_id );
- $this->assertEquals( 'body', $json['components'][3]['role'], 'Expected the paragraph before the aside to have a role of body.' );
- $this->assertEquals( '
Lorem ipsum dolor sit amet.
', $json['components'][3]['text'], 'Expected the paragraph before the aside to have the correct text.' );
- $this->assertEquals( 'aside', $json['components'][4]['role'], 'Expected the aside component to have a role of aside.' );
- $this->assertEquals( 'aside-layout-right', $json['components'][4]['layout'], 'Expected the aside component to be aligned to the right.' );
- $this->assertEquals(
- [
- [
- 'role' => 'body',
- 'text' => '
This is an aside.
',
- 'format' => 'html',
- 'textStyle' => 'aside-subcomponent-default-body',
- 'layout' => 'aside-subcomponent-body-layout',
- ],
- ],
- $json['components'][4]['components'],
- 'Expected the aside component list to include the correct text in a body component.'
- );
- $this->assertEquals( 'center', $json['components'][4]['anchor']['targetAnchorPosition'], 'Expected the aside component to have the proper anchor position.' );
- $this->assertEquals( 0, $json['components'][4]['anchor']['rangeStart'], 'Expected the aside component to have the proper range start value.' );
- $this->assertEquals( 1, $json['components'][4]['anchor']['rangeLength'], 'Expected the aside component to have the proper range length value.' );
- $this->assertNotEmpty( $json['components'][4]['anchor']['targetComponentIdentifier'], 'Expected the aside component to have a non-empty target component identifier.' );
- $this->assertEquals( $json['components'][5]['identifier'], $json['components'][4]['anchor']['targetComponentIdentifier'], 'Expected the aside component to be anchored to the following paragraph.' );
- $this->assertEquals( 'body', $json['components'][5]['role'], 'Expected the paragraph after the aside to have a role of body.' );
- $this->assertEquals( '
Consectetur adipiscing elit.
', $json['components'][5]['text'], 'Expected the paragraph after the aside to have the correct text.' );
- }
-
- /**
- * Tests the behavior of customizing layouts and styles for subcomponents within an aside.
- */
- public function test_subcomponents(): void {
- // Set up a custom layout and text style for an h2 within the aside component.
- $this->set_theme_settings(
- [
- 'json_templates' => [
- 'aside' => [
- 'subcomponents' => [
- 'heading' => [
- 'default-heading-2' => [
- 'fontName' => 'Copperplate',
- 'fontSize' => 16,
- 'lineHeight' => 20,
- 'textColor' => '#abc123',
- 'textAlignment' => 'left',
- 'tracking' => 0.1,
- ],
- 'heading-layout-2' => [
- 'columnStart' => 1,
- 'columnSpan' => 3,
- 'margin' => [
- 'bottom' => 5,
- 'top' => 5,
- ],
- ],
- ],
- ],
- ],
- ],
- ]
- );
-
- // Create a post with an aside containing an h2.
- $post_content = <<
-
Lorem ipsum dolor sit amet.
-
-
-
-
-
Test Heading in Aside
-
-
-
-
-
Consectetur adipiscing elit.
-
-HTML;
- $post_id = self::factory()->post->create( [ 'post_content' => $post_content ] );
- $json = $this->get_json_for_post( $post_id );
-
- // Ensure the h2 within the aside has the custom layout and text style.
- $this->assertEquals( 'aside', $json['components'][4]['role'], 'Expected the aside component to have a role of aside.' );
- $this->assertEquals( 'heading2', $json['components'][4]['components'][0]['role'], 'Expected the subcomponent to have a role of heading2.' );
- $this->assertEquals( 'Test Heading in Aside', $json['components'][4]['components'][0]['text'], 'Expected the subcomponent to have the correct text.' );
- $this->assertEquals( 'aside-subcomponent-default-heading-2', $json['components'][4]['components'][0]['textStyle'], 'Expected the subcomponent to have the correct text style.' );
- $this->assertEquals( 'aside-subcomponent-heading-layout-2', $json['components'][4]['components'][0]['layout'], 'Expected the subcomponent to have the correct layout.' );
- $this->assertEquals( 'Copperplate', $json['componentTextStyles']['aside-subcomponent-default-heading-2']['fontName'], 'Expected the text style to have the correct font name.' );
- $this->assertEquals( 16, $json['componentTextStyles']['aside-subcomponent-default-heading-2']['fontSize'], 'Expected the text style to have the correct font size.' );
- $this->assertEquals( 20, $json['componentTextStyles']['aside-subcomponent-default-heading-2']['lineHeight'], 'Expected the text style to have the correct line height.' );
- $this->assertEquals( '#abc123', $json['componentTextStyles']['aside-subcomponent-default-heading-2']['textColor'], 'Expected the text style to have the correct text color.' );
- $this->assertEquals( 'left', $json['componentTextStyles']['aside-subcomponent-default-heading-2']['textAlignment'], 'Expected the text style to have the correct text alignment.' );
- $this->assertEquals( 0.1, $json['componentTextStyles']['aside-subcomponent-default-heading-2']['tracking'], 'Expected the text style to have the correct tracking.' );
- $this->assertEquals( 1, $json['componentLayouts']['aside-subcomponent-heading-layout-2']['columnStart'], 'Expected the subcomponent layout to have the correct column start.' );
- $this->assertEquals( 3, $json['componentLayouts']['aside-subcomponent-heading-layout-2']['columnSpan'], 'Expected the subcomponent layout to have the correct column span.' );
- $this->assertEquals( 5, $json['componentLayouts']['aside-subcomponent-heading-layout-2']['margin']['bottom'], 'Expected the subcomponent layout to have the correct bottom margin.' );
- $this->assertEquals( 5, $json['componentLayouts']['aside-subcomponent-heading-layout-2']['margin']['top'], 'Expected the subcomponent layout to have the correct top margin.' );
- }
-}
diff --git a/tests/apple-exporter/components/test-class-audio.php b/tests/apple-exporter/components/test-class-audio.php
deleted file mode 100644
index 13b7a07e..00000000
--- a/tests/apple-exporter/components/test-class-audio.php
+++ /dev/null
@@ -1,93 +0,0 @@
-
-HTML
- ,
- ],
- // No dropcap -- dropcap minimum character requirement not met.
- [
- 'default-body',
- 100,
- 'no',
- <<I hope to keep this briefing brief. But briefly, before I begin this brief briefing...
-HTML
- ,
- ],
- // Dropcap applied -- minimum character opt out.
- [
- 'dropcapBodyStyle',
- 500,
- 'yes',
- <<I am not optimistic about the optics of us opting out, opined the opulent Optometrist.
-HTML
- ,
- ],
- // Dropcap applied -- minimum character requirement met, no opt out, no punctuation first character.
- [
- 'dropcapBodyStyle',
- 50,
- 'no',
- <<Lorem ipsum dolor sit amet, consectetur adipiscing elit.
-HTML
- ,
- ],
- ];
- }
-
- /**
- * A data provider that supplies empty HTML signatures to ensure that they
- * are not erroneously transformed into empty body elements.
- *
- * @return array An array of arrays representing function arguments.
- */
- public function data_empty_html() {
- return [
- // Test classic editor, multiple line breaks.
- [
- <<
-
A
-
-
-
-
-
-
-
-
B
-
-HTML
- ,
- ],
-
- // Test Gutenberg editor, paragraph tag containing a single space.
- [
- <<
-
A
-
-
-
-
-
-
-
-
B
-
-HTML
- ,
- ],
-
- // Test Gutenberg editor, paragraph tag containing a non-breaking space.
- [
- <<
-
A
-
-
-
-
-
-
-
-
B
-
-HTML
- ,
- ],
-
- // Test Gutenberg editor, extra paragraph at the end.
- [
- <<
-
A
-
-
-
-
B
-
-
-
-
-
-HTML
- ,
- ],
-
- // Test Gutenberg editor, extra paragraph at the end containing a space.
- [
- <<
-
A
-
-
-
-
B
-
-
-
-
-
-HTML
- ,
- ],
-
- // Test Gutenberg editor, extra paragraph at the end containing a non-breaking space.
- [
- <<
-
A
-
-
-
-
B
-
-
-
-
-
-HTML
- ,
- ],
-
- // Test Gutenberg editor, extra paragraph at the end containing a non-breaking space surrounded by a link tag.
- [
- <<
-
A
-
-
-
-
B
-
-
-
-
-
-HTML
- ,
- ],
- ];
- }
-
- /**
- * A data provider for the test_link_types function.
- *
- * @see https://developer.apple.com/documentation/apple_news/supportedurls
- *
- * @return array An array of arrays representing function arguments.
- */
- public function data_link_types() {
- return [
- // Standard link, non-https.
- [ 'http://www.example.org', true ],
-
- // Standard link, https.
- [ 'https://www.example.org', true ],
-
- // Root-relative URL. Should be permitted, but auto-converted to a fully qualified URL.
- [ '/test', true ],
-
- // Anchor link (hash-based URL) should be permitted.
- [ '#test', true ],
-
- // Apple News article URL.
- [ 'https://apple.news/A5vHgPPmQSvuIxPjeXLTdGQ', true ],
-
- // Apple News article URL with a hash reference.
- [ 'https://apple.news/A5vHgPPmQSvuIxPjeXLTdGQ#TextComponent-1', true ],
-
- // A Stocks app URL.
- [ 'stocks://?symbol=AAPL', true ],
-
- // An Apple Music URL, non-https.
- [ 'music://abc123', true ],
-
- // An Apple Music URL, https.
- [ 'musics://abc123', true ],
-
- // A mailto link.
- [ 'mailto:example@example.org', true ],
-
- // A hosted calendar.
- [ 'webcal://abc123', true ],
-
- // An unsupported protocol.
- [ 'badprotocol://abc123', false ],
- ];
- }
-
- /**
- * Returns an array of arrays representing function arguments to the
- * test_code_formatting, test_filter, and test_filter_html function.
- */
- public function data_generic() {
- return [
- [ [ 'cover', 'slug', 'title', 'byline' ], 2 ],
- [ [ 'cover', 'slug', 'title', 'author', 'date' ], 3 ],
- ];
- }
-
- /**
- * A filter function to modify the text style in the generated JSON.
- *
- * @param array $json The JSON array to modify.
- *
- * @return array The modified JSON.
- */
- public function filter_apple_news_body_json( $json ) {
- $json['textStyle'] = 'fancy-body';
-
- return $json;
- }
-
- /**
- * A filter function to modify the HTML enabled flag for this component.
- *
- * @param bool $enabled Whether HTML support is enabled for this component.
- *
- * @return bool Whether HTML support is enabled for this component.
- */
- public function filter_apple_news_body_html_enabled( $enabled ) {
- return ! $enabled;
- }
-
- /**
- * Tests code formatting.
- */
- public function test_code_formatting() {
- $this->set_theme_settings( [ 'meta_component_order' => [ 'title', 'author' ] ] );
- $content = <<
-
', $json['components'][4]['text'] );
- }
-
- /**
- * Test's dropcap configuration and conditionals.
- *
- * @dataProvider data_dropcap_determination
- *
- * @param string $body_style The style of the first paragraph. `dropcapBodyStyle` if dropcap styling is applied or `default-body` if not.
- * @param int $dropcap_minimum The minimum number of characters in the first paragraph before dropcap stylings are applied.
- * @param string $dropcap_minimum_opt_out Choice to opt out of minimum character rule, 'yes' or 'no'.
- * @param html $content The html content of the post.
- */
- public function test_dropcap_determination( $body_style, $dropcap_minimum, $dropcap_minimum_opt_out, $content ) {
- $this->set_theme_settings(
- [
- 'dropcap_minimum' => $dropcap_minimum,
- 'dropcap_minimum_opt_out' => $dropcap_minimum_opt_out,
- ]
- );
- $post_id = self::factory()->post->create( [ 'post_content' => $content ] );
- $json = $this->get_json_for_post( $post_id );
- $this->assertEquals( $body_style, $json['components'][3]['textStyle'] );
- }
-
- /**
- * Tests handling for empty HTML content.
- *
- * @dataProvider data_empty_html
- *
- * @param string $post_content The post content for the post.
- */
- public function test_empty_html_content( $post_content ) {
- $this->set_theme_settings( [ 'meta_component_order' => [ 'title', 'author' ] ] );
- $post_id = self::factory()->post->create( [ 'post_content' => $post_content ] );
- $json = $this->get_json_for_post( $post_id );
-
- // There should only be two body components, one containing A, one containing B.
- $this->assertEquals( 4, count( $json['components'] ) );
- $this->assertEquals( '
', $json['components'][3]['text'] );
- }
-
- /**
- * Test the `apple_news_body_json` filter.
- *
- * @dataProvider data_generic
- *
- * @param string[] $meta_order The order of meta components to use.
- * @param int $index The index of the component in the JSON to target.
- */
- public function test_filter( $meta_order, $index ) {
- $this->set_theme_settings( [ 'meta_component_order' => $meta_order ] );
- add_filter( 'apple_news_body_json', [ $this, 'filter_apple_news_body_json' ] );
-
- // Create a test post and get JSON for it.
- $post_id = self::factory()->post->create();
- $json = $this->get_json_for_post( $post_id );
- $this->assertEquals( 'body', $json['components'][ $index ]['role'] );
- $this->assertEquals( 'fancy-body', $json['components'][ $index ]['textStyle'] );
-
- // Teardown.
- remove_filter( 'apple_news_body_json', [ $this, 'filter_apple_news_body_json' ] );
- }
-
- /**
- * Test the `apple_news_body_html_enabled` filter.
- *
- * @dataProvider data_generic
- *
- * @param string[] $meta_order The order of meta components to use.
- * @param int $index The index of the component in the JSON to target.
- */
- public function test_filter_html( $meta_order, $index ) {
- $this->set_theme_settings( [ 'meta_component_order' => $meta_order ] );
- // Test before filter.
- $post_id = self::factory()->post->create( [ 'post_content' => 'Test content.' ] );
- $json = $this->get_json_for_post( $post_id );
- $this->assertEquals( 'body', $json['components'][ $index ]['role'] );
- $this->assertEquals( 'html', $json['components'][ $index ]['format'] );
- $this->assertEquals( '
Test content.
', $json['components'][ $index ]['text'] );
-
-
- // Add filter and test to ensure HTML mode is not used.
- add_filter( 'apple_news_body_html_enabled', [ $this, 'filter_apple_news_body_html_enabled' ] );
- $json = $this->get_json_for_post( $post_id );
- $this->assertEquals( 'body', $json['components'][ $index ]['role'] );
- $this->assertEquals( 'markdown', $json['components'][ $index ]['format'] );
- $this->assertEquals( 'Test content.', $json['components'][ $index ]['text'] );
- remove_filter( 'apple_news_body_html_enabled', [ $this, 'filter_apple_news_body_html_enabled' ] );
- }
-
- /**
- * Ensures that the body-layout-last class is properly applied.
- */
- public function test_layouts() {
- // Create a post with empty body content to force the body-layout-last bug to appear.
- $post_id = self::factory()->post->create( [ 'post_content' => '' ] );
- $json = $this->get_json_for_post( $post_id );
- $this->assertNotEquals( 'body-layout-last', $json['components'][ count( $json['components'] ) - 1 ]['layout'] );
- }
-
- /**
- * Given an expected result and an actual link, verifies that the link URL is
- * correctly processed. Used to ensure that valid link types (not just http/s,
- * but also mailto, webcal, stocks, etc.) are supported, and that unsupported
- * types are stripped out.
- *
- * @dataProvider data_link_types
- *
- * @param string $link The link, which will be added as the href parameter in an anchor tag in the test post that the test creates.
- * @param bool $should_work Whether the link is expected to work in Apple News Format or not.
- */
- public function test_link_types( $link, $should_work ) {
- $this->set_theme_settings( [ 'meta_component_order' => [ 'title', 'author' ] ] );
- $content = <<
-
-HTML;
-
- /**
- * A data provider for the testTransform function.
- *
- * @see self::test_transform()
- *
- * @return array Parameters to use when calling testTransform.
- */
- public function data_transform() {
- return [
- [ 'http://www.instagram.com/p/LtaiGnryiu/' ],
- [ 'https://www.instagram.com/p/LtaiGnryiu/' ],
- [ 'http://instagram.com/p/LtaiGnryiu/' ],
- [ 'https://instagram.com/p/LtaiGnryiu/' ],
- [ 'http://instagr.am/p/LtaiGnryiu/' ],
- [ 'https://instagr.am/p/LtaiGnryiu/' ],
- ];
- }
-
- /**
- * A filter function to modify the text style in the generated JSON.
- *
- * @param array $json The JSON array to modify.
- *
- * @return array The modified JSON.
- */
- public function filter_apple_news_instagram_json( $json ) {
- $json['URL'] = 'https://instagram.com/p/test/';
-
- return $json;
- }
-
- /**
- * Test the `apple_news_instagram_json` filter.
- */
- public function test_filter_json() {
-
- // Setup.
- $component = new Instagram(
- sprintf( $this->embed, 'https://instagram.com/p/LtaiGnryiu/' ),
- $this->workspace,
- $this->settings,
- $this->styles,
- $this->layouts
- );
- add_filter(
- 'apple_news_instagram_json',
- [ $this, 'filter_apple_news_instagram_json' ]
- );
-
- // Test.
- $result = $component->to_array();
- $this->assertEquals( 'https://instagram.com/p/test/', $result['URL'] );
-
- // Teardown.
- remove_filter(
- 'apple_news_instagram_json',
- [ $this, 'filter_apple_news_instagram_json' ]
- );
- }
-
- /**
- * Ensures an embed without a URL is not incorrectly transformed.
- */
- public function test_invalid_markup() {
-
- // Setup.
- $component = new Instagram(
- sprintf( $this->embed, 'invalid-content-no-url' ),
- $this->workspace,
- $this->settings,
- $this->styles,
- $this->layouts
- );
-
- // Test.
- $this->assertEquals(
- null,
- $component->to_array()
- );
- }
-
- /**
- * Ensures that given test parameters properly transform into components.
- *
- * @dataProvider data_transform
- *
- * @param string $url The URL to use.
- */
- public function test_transform( $url ) {
-
- // Setup.
- $components = [];
- $components[] = new Instagram(
- $url,
- $this->workspace,
- $this->settings,
- $this->styles,
- $this->layouts
- );
- $components[] = new Instagram(
- sprintf( $this->embed, $url ),
- $this->workspace,
- $this->settings,
- $this->styles,
- $this->layouts
- );
-
- // Test.
- foreach ( $components as $component ) {
- $this->assertEquals(
- [
- 'role' => 'instagram',
- 'URL' => $url,
- ],
- $component->to_array()
- );
- }
- }
-}
diff --git a/tests/apple-exporter/components/test-class-intro.php b/tests/apple-exporter/components/test-class-intro.php
deleted file mode 100644
index 353e3a39..00000000
--- a/tests/apple-exporter/components/test-class-intro.php
+++ /dev/null
@@ -1,132 +0,0 @@
-set_theme_settings( [ 'meta_component_order' => $meta_order ] );
- $post_id = self::factory()->post->create(
- [
- 'post_content' => 'Test content!',
- 'post_excerpt' => 'Test excerpt!',
- ]
- );
- $json = $this->get_json_for_post( $post_id );
- $this->assertEquals( 'title', $json['components'][0]['role'] );
-
- $this->assertEquals( $meta_order[1], $json['components'][1]['role'] );
- $this->assertEquals( 'body', $json['components'][2]['role'] );
- $this->assertEquals( '
Test content!
', $json['components'][2]['text'] );
- }
-
- /**
- * Test the `apple_news_intro_json` filter.
- */
- public function test_filter() {
- $this->set_theme_settings( [ 'meta_component_order' => [ 'intro' ] ] );
- add_filter( 'apple_news_intro_json', [ $this, 'filter_apple_news_intro_json' ] );
-
- // Create a test post and get JSON for it.
- $post_id = self::factory()->post->create( [ 'post_excerpt' => 'Test excerpt.' ] );
- $json = $this->get_json_for_post( $post_id );
- $this->assertEquals( 'intro', $json['components'][0]['role'] );
- $this->assertEquals( 'fancy-layout', $json['components'][0]['layout'] );
-
- // Teardown.
- remove_filter( 'apple_news_intro_json', [ $this, 'filter_apple_news_intro_json' ] );
- }
-
- /**
- * Tests the render method for the component.
- */
- public function test_render() {
- $this->set_theme_settings( [ 'meta_component_order' => [ 'intro' ] ] );
-
- // Create a test post and get JSON for it.
- $post_id = self::factory()->post->create( [ 'post_excerpt' => 'Test excerpt.' ] );
- $json = $this->get_json_for_post( $post_id );
- $this->assertEquals( 'intro', $json['components'][0]['role'] );
- $this->assertEquals( 'Test excerpt.', $json['components'][0]['text'] );
- }
-
- /**
- * Ensures that the Intro component is skipped if there is no intro specified.
- */
- public function test_skip() {
- $this->set_theme_settings( [ 'meta_component_order' => [ 'intro' ] ] );
-
- // Create an example post without a customized excerpt and verify that it is not included.
- $post_id_1 = self::factory()->post->create(
- [
- 'post_content' => '
Lorem ipsum dolor sit amet.
',
- 'post_excerpt' => '',
- ]
- );
- $json = $this->get_json_for_post( $post_id_1 );
- $this->assertEquals( 'body', $json['components'][0]['role'] );
-
- // Create an example post with a customized excerpt and verify that it is included.
- $post_id_2 = self::factory()->post->create(
- [
- 'post_content' => '
Lorem ipsum dolor sit amet.
',
- 'post_excerpt' => 'Test excerpt.',
- ]
- );
- $json = $this->get_json_for_post( $post_id_2 );
- $this->assertEquals( 'intro', $json['components'][0]['role'] );
- $this->assertEquals( 'Test excerpt.', $json['components'][0]['text'] );
-
- // Create an example post with an excerpt that is derivative of the main content.
- // Verify that it is skipped because it duplicates body content.
- $post_id_3 = self::factory()->post->create(
- [
- 'post_content' => '
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis arcu risus, vestibulum non nulla a, mollis posuere lectus. Quisque lectus ex, viverra nec massa et, elementum sodales dui. Nam nec congue libero. Nunc eu lectus quis quam eleifend gravida. Nulla condimentum, nisl ornare rhoncus ultrices, ex ipsum luctus dolor, vitae iaculis metus magna vitae neque. Maecenas in risus id est hendrerit mattis. Curabitur pulvinar ante a ligula tincidunt, id porta ante ornare. Donec neque metus, hendrerit nec lectus in, consectetur porta dolor. Curabitur egestas orci eu tortor congue, eu varius ipsum finibus. In in faucibus mi. Donec odio leo, blandit non varius nec, cursus ac eros. Aenean sagittis mauris eget interdum elementum. Etiam hendrerit lectus at lacus pretium pretium. Vivamus eu egestas dolor. Nam a ultricies lectus.
',
- 'post_excerpt' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis arcu risus, vestibulum non nulla a, mollis posuere lectus.',
- ]
- );
- $json = $this->get_json_for_post( $post_id_3 );
- $this->assertEquals( 'body', $json['components'][0]['role'] );
- }
-}
diff --git a/tests/apple-exporter/components/test-class-link-button.php b/tests/apple-exporter/components/test-class-link-button.php
deleted file mode 100644
index c5bd4e0b..00000000
--- a/tests/apple-exporter/components/test-class-link-button.php
+++ /dev/null
@@ -1,82 +0,0 @@
-
-
-
-HTML;
- return self::factory()->post->create( [ 'post_content' => $content ] );
- }
-
- /**
- * Creates a post containing a pullquote and returns the post ID.
- *
- * @return int The post ID of the post containing the pullquote.
- */
- private function get_pullquote() {
- $content = <<
-
Test pullquote.
-
-HTML;
- return self::factory()->post->create( [ 'post_content' => $content ] );
- }
-
- /**
- * A data provider for the test_transform_pullquote function.
- *
- * @return array An array of arrays representing function arguments.
- */
- public function data_transform_pullquote() {
- return [
- [ 'my text', '
my text
', 'no' ],
- [ 'my text', '
“my text”
', 'yes' ],
- [ '"my text"', '
“my text”
', 'yes' ],
- [ '“my text”', '
“my text”
', 'yes' ],
- ];
- }
-
- /**
- * A data provider for the test_transform_pullquote_for_theme function.
- *
- * @return array An array of arrays representing function arguments.
- */
- public function data_transform_pullquote_for_theme() {
- return [
- [ 'classic', [ 'cover', 'slug', 'title', 'byline' ] ],
- [ 'dark', [ 'cover', 'slug', 'title', 'byline' ] ],
- [ 'modern', [ 'slug', 'title', 'byline', 'cover' ] ],
- [ 'pastel', [ 'slug', 'cover', 'title', 'byline' ] ],
- ];
- }
-
- /**
- * A filter function to modify the hanging punctuation text.
- *
- * @param string $modified_text The modified text to be filtered.
- * @param string $text The original text for the quote.
- *
- * @return string The modified text.
- */
- public function filter_apple_news_apply_hanging_punctuation( $modified_text, $text ) {
- return '«' . $text . '»';
- }
-
- /**
- * A filter function to modify the text style in the generated JSON.
- *
- * @param array $json The JSON array to modify.
- *
- * @return array The modified JSON.
- */
- public function filter_apple_news_quote_json( $json ) {
- $json['textStyle'] = 'fancy-quote';
-
- return $json;
- }
-
- /**
- * Returns an array of arrays representing function arguments to the
- * test_filter, test_filter_hanging_punctuation, test_html_in_headings functions.
- */
- public function data_test_filter() {
- return [
- [ [ 'title', 'byline' ] ],
- [ [ 'title', 'author' ] ],
- ];
- }
-
- /**
- * Test the `apple_news_apply_hanging_punctuation` filter.
- *
- * @dataProvider data_test_filter
- *
- * @param string[] $meta_order The order of meta components to use.
- */
- public function test_filter_hanging_punctuation( $meta_order ) {
- $this->set_theme_settings(
- [
- 'meta_component_order' => $meta_order,
- 'pullquote_hanging_punctuation' => 'yes',
- ]
- );
- add_filter( 'apple_news_apply_hanging_punctuation', [ $this, 'filter_apple_news_apply_hanging_punctuation' ], 10, 2 );
- $json = $this->get_json_for_post( $this->get_pullquote() );
- $this->assertEquals( '
',
- $this->workspace,
- $this->settings,
- $this->styles,
- $this->layouts
- );
-
- add_filter(
- 'apple_news_tweet_json',
- function ( $json ) {
- $json['URL'] = 'https://twitter.com/alleydev/status/123';
- return $json;
- }
- );
-
- $result = $component->to_array();
- $this->assertEquals( 'https://twitter.com/alleydev/status/123', $result['URL'] );
- }
-}
diff --git a/tests/apple-exporter/components/test-class-video.php b/tests/apple-exporter/components/test-class-video.php
deleted file mode 100644
index af41f8ec..00000000
--- a/tests/apple-exporter/components/test-class-video.php
+++ /dev/null
@@ -1,138 +0,0 @@
-
-
- https://www.example.org/wp-content/uploads/2017/02/example-video.mp4
-
-HTML;
-
- /**
- * A filter function to modify the video URL in the generated JSON.
- *
- * @param array $json The JSON array to modify.
- *
- * @return array The modified JSON.
- */
- public function filter_apple_news_video_json( $json ) {
- $json['URL'] = 'https://www.example.org/filter-me';
-
- return $json;
- }
-
- /**
- * Test the `apple_news_quote_json` filter.
- */
- public function test_filter() {
-
- // Setup.
- $component = $this->get_component();
- add_filter(
- 'apple_news_video_json',
- [ $this, 'filter_apple_news_video_json' ]
- );
-
- // Test.
- $result = $component->to_array();
- $this->assertEquals(
- 'https://www.example.org/filter-me',
- $result['URL']
- );
-
- // Teardown.
- remove_filter(
- 'apple_news_video_json',
- [ $this, 'filter_apple_news_video_json' ]
- );
- }
-
- /**
- * Tests the ability for the Video component to get and save caption information
- */
- public function test_caption() {
- $component = $this->get_component( 'caption' );
-
- // Test.
- $this->assertEquals(
- [
- 'role' => 'container',
- 'components' => [
- [
- 'role' => 'video',
- 'URL' => 'https://www.example.org/test.mp4',
- ],
- [
- 'role' => 'caption',
- 'text' => 'caption',
- 'format' => 'html',
- ],
- ],
- ],
- $component->to_array()
- );
- }
-
- /**
- * Tests the transformation process from a video element to a Video component.
- */
- public function test_generated_json() {
-
- // Setup.
- $this->settings->set( 'use_remote_images', 'yes' );
- $component = $this->get_component();
-
- // Test.
- $result = $component->to_array();
- $this->assertEquals(
- 'https://www.example.org/wp-content/uploads/2017/02/ExamplePoster.jpg',
- $result['stillURL']
- );
- $this->assertEquals(
- 'video',
- $result['role']
- );
- $this->assertEquals(
- 'https://www.example.org/wp-content/uploads/2017/02/example-video.mp4?_=1',
- $result['URL']
- );
- }
-
- /**
- * A function to get a basic component for testing using defined content.
- *
- * @param string $content HTML for the component.
- *
- * @return Video A Video object containing the specified content.
- */
- private function get_component( $content = '' ) {
- return new Video(
- ! empty( $content ) ? $content : $this->video_content,
- $this->workspace,
- $this->settings,
- $this->styles,
- $this->layouts
- );
- }
-}
diff --git a/tests/apple-exporter/test-class-exporter-content.php b/tests/apple-exporter/test-class-exporter-content.php
deleted file mode 100644
index 2aadd0ea..00000000
--- a/tests/apple-exporter/test-class-exporter-content.php
+++ /dev/null
@@ -1,114 +0,0 @@
-Example content' );
- $this->assertEquals( '3', $content->id() );
- $this->assertEquals( 'Title', $content->title() );
- $this->assertEquals( '
Example content
', $content->content() );
- $this->assertEquals( null, $content->intro() );
- $this->assertEquals( null, $content->cover() );
- }
-
- /**
- * Tests the behavior of the exporter with a title, body content, an excerpt, and a URL.
- */
- public function test_complete_content() {
- $content = new Exporter_Content( 3, 'Title', '
',
- str_replace( "\n", '', $parsed_html )
- );
-
- // Reset the home URL.
- update_option( 'home', 'https://www.example.org' );
- }
-}
diff --git a/tests/apple-exporter/test-class-theme.php b/tests/apple-exporter/test-class-theme.php
deleted file mode 100644
index 5eb97070..00000000
--- a/tests/apple-exporter/test-class-theme.php
+++ /dev/null
@@ -1,128 +0,0 @@
- [
- 'body' => [
- 'default-body' => [
- 'hyphenation' => false,
- ],
- ],
- ],
- ];
-
- // Create a theme and load the custom settings.
- $theme = new Theme();
- $theme->load( $theme_settings );
-
- // Ensure the custom JSON templates exist within the theme.
- $this->assertSame(
- $theme_settings['json_templates'],
- $theme->get_value( 'json_templates' )
- );
-
- // Remove the custom JSON templates and update the theme.
- unset( $theme_settings['json_templates'] );
- $theme->load( $theme_settings );
-
- // Ensure the custom JSON was removed from the theme.
- $this->assertSame(
- [],
- $theme->get_value( 'json_templates' )
- );
- }
-
- /**
- * Tests the 'apple_news_fonts_list' filter.
- */
- public function test_font_filter() {
-
- // Test before filter.
- $this->assertFalse(
- in_array(
- 'ExampleFont',
- Theme::get_fonts(),
- true
- )
- );
-
- // Add the filter.
- add_filter(
- 'apple_news_fonts_list',
- [ $this, 'filter_apple_news_fonts_list' ]
- );
-
- // Test.
- $this->assertTrue(
- in_array(
- 'ExampleFont',
- Theme::get_fonts(),
- true
- )
- );
-
- // Teardown.
- remove_filter(
- 'apple_news_fonts_list',
- [ $this, 'filter_apple_news_fonts_list' ]
- );
- }
-
- /**
- * Tests the functionality of the get_registry function.
- *
- * @see Apple_Exporter\Theme::get_registry()
- */
- public function test_get_registry() {
-
- // Setup.
- update_option(
- Theme::INDEX_KEY,
- [ 'Theme 3', 'Theme 2', 'Theme 1' ],
- false
- );
- update_option( Theme::ACTIVE_KEY, 'Theme 2', false );
-
- // Ensure the get_registry function returns in sorted order with active 1st.
- $this->assertSame(
- [ 'Theme 2', 'Theme 1', 'Theme 3' ],
- Theme::get_registry()
- );
- }
-}
diff --git a/tests/apple-push-api/test-class-credentials.php b/tests/apple-push-api/test-class-credentials.php
deleted file mode 100644
index 484ddf88..00000000
--- a/tests/apple-push-api/test-class-credentials.php
+++ /dev/null
@@ -1,27 +0,0 @@
-assertEquals( 'foo', $credentials->key() );
- $this->assertEquals( 'bar', $credentials->secret() );
- }
-}
diff --git a/tests/apple-push-api/test-class-mime-builder.php b/tests/apple-push-api/test-class-mime-builder.php
deleted file mode 100644
index 6cf537f1..00000000
--- a/tests/apple-push-api/test-class-mime-builder.php
+++ /dev/null
@@ -1,64 +0,0 @@
-boundary() . $eol .
- 'Content-Type: application/json' . $eol .
- "Content-Disposition: form-data; name=$name; filename=$filename; size=$size" . $eol .
- $eol . $json . $eol;
-
- $this->assertEquals(
- $expected,
- $builder->add_json_string( $name, $filename, $json )
- );
- }
-
- /**
- * Tests the behavior of adding invalid JSON to the MIME builder.
- */
- public function test_invalid_json() {
- $builder = new MIME_Builder();
- $name = 'some-name';
- $filename = 'article.json';
- $json = '';
-
- $this->expectException( \Apple_Push_API\Request\Request_Exception::class );
- $this->expectExceptionMessage( 'The attachment article.json could not be included in the request because it was empty.' );
-
- $builder->add_json_string( $name, $filename, $json );
- }
-}
diff --git a/tests/bootstrap.php b/tests/bootstrap.php
deleted file mode 100644
index 0ddf5f7e..00000000
--- a/tests/bootstrap.php
+++ /dev/null
@@ -1,115 +0,0 @@
-maybe_rsync_plugin()
- ->loaded(
- function () {
- // Disable VIP cache manager when testing against VIP Go integration.
- if ( method_exists( 'WPCOM_VIP_Cache_Manager', 'instance' ) ) {
- remove_action( 'init', [ WPCOM_VIP_Cache_Manager::instance(), 'init' ] );
- }
-
- // Set the permalink structure and domain options.
- update_option( 'home', 'https://www.example.org' );
- update_option( 'permalink_structure', '/%postname%' );
- update_option( 'siteurl', 'https://www.example.org' );
-
- // Apple News reads in the channel/key/secret values on load.
- update_option(
- 'apple_news_settings',
- [
- 'api_channel' => 'foo',
- 'api_key' => 'bar',
- 'api_secret' => 'baz',
- ]
- );
-
- // Force WP to treat URLs as HTTPS during testing so the home and siteurl option protocols are honored.
- $_SERVER['HTTPS'] = 1;
-
- // Load mocks for integration tests.
- apple_news_require_file( __DIR__ . '/mocks/class-bc-setup.php' );
- if ( ! function_exists( 'coauthors' ) ) {
- apple_news_require_file( __DIR__ . '/mocks/function-coauthors.php' );
- }
-
- // Activate mocked Brightcove functionality.
- $bc_setup = new BC_Setup();
- $bc_setup->action_init();
-
-
- // Disable CAP by default - make it opt-in in tests.
- add_filter( 'apple_news_use_coauthors', '__return_false' );
-
- // Filter the list of allowed protocols to allow Apple News-specific ones.
- add_filter(
- 'kses_allowed_protocols',
- function ( $protocols ) {
- return array_merge(
- (array) $protocols,
- [
- 'music',
- 'musics',
- 'stocks',
- ]
- );
- }
- );
-
- // Pre-populate the channel transient to prevent Apple News from making a request to the API for channel data.
- $channel_api_response = <<install();
-
-apple_news_require_file( __DIR__ . '/class-apple-news-testcase.php' );
-apple_news_require_file( __DIR__ . '/apple-exporter/components/class-component-testcase.php' );
diff --git a/tests/class-apple-news-testcase.php b/tests/class-apple-news-testcase.php
deleted file mode 100644
index ea6bd0bd..00000000
--- a/tests/class-apple-news-testcase.php
+++ /dev/null
@@ -1,614 +0,0 @@
-post_args[] = $args;
- return $args;
- }
-
- /**
- * Preempts external HTTP requests in a unit test context.
- *
- * @param false|array|WP_Error $preempt A preemptive return value of an HTTP request. Default false.
- * @param array $parsed_args HTTP request arguments.
- * @param string $url The request URL.
- *
- * @return array|WP_Error An array containing 'headers', 'body', 'response', 'cookies', and 'filename' elements on success, or WP_Error on failure.
- */
- public function filter_pre_http_request( $preempt, $parsed_args, $url ) {
- $verb = ! empty( $parsed_args['method'] ) ? $parsed_args['method'] : 'GET';
- if ( ! empty( $this->http_responses[ $verb ][ $url ] ) ) {
- return array_shift( $this->http_responses[ $verb ][ $url ] );
- }
-
- return new WP_Error( __( 'Invalid API request.', 'apple-news' ) );
- }
-
- /**
- * A fixture containing operations to be run before each test.
- */
- public function setUp(): void {
- parent::setUp();
-
- // Capture arguments sent to the Apple News API in POST requests.
- add_filter( 'apple_news_post_args', [ $this, 'filter_apple_news_post_args' ] );
-
- // Prevent external HTTP calls from being made in a test context.
- add_filter( 'pre_http_request', [ $this, 'filter_pre_http_request' ], 10, 3 );
-
- // Ensure HTML5 image captions are supported.
- add_theme_support( 'html5', [ 'caption' ] );
-
- // Create some example content and save it for future use.
- $this->content = new Apple_Exporter\Exporter_Content(
- 1,
- 'My Title',
- '
Hello, World!
'
- );
-
- // Create a new instance of the Settings object and save it for future use.
- $this->settings = new Apple_Exporter\Settings();
- $this->settings->api_channel = 'foo';
- $this->settings->api_key = 'bar';
- $this->settings->api_secret = 'baz';
-
- // Create a new instance of the Exporter_Content_Settings object and save it for future use.
- $this->content_settings = new Apple_Exporter\Exporter_Content_Settings();
-
- // Create a new instance of Prophet for future use and create a prophecized workspace.
- $this->prophet = new Prophecy\Prophet();
- $this->prophecized_workspace = $this->prophet->prophesize( '\Apple_Exporter\Workspace' );
-
- // Load the Default theme from config and save it for future use.
- $this->load_example_theme( 'default' );
-
- // Create styles for future use.
- $this->styles = new Apple_Exporter\Builders\Component_Text_Styles(
- $this->content,
- $this->content_settings
- );
-
- // Create layouts for future use.
- $this->layouts = new Apple_Exporter\Builders\Component_Layouts(
- $this->content,
- $this->content_settings
- );
-
- // Create component styles for future use.
- $this->component_styles = new Apple_Exporter\Builders\Component_Styles(
- $this->content,
- $this->content_settings
- );
-
- // Create a workspace for future use. Default it to use post ID 1, but this can be overridden at the test level.
- $this->set_workspace_post_id( 1 );
-
- // Pre-cache a transient for sections using sample data to bypass API call.
- set_transient(
- 'apple_news_sections',
- [
- (object) [
- 'createdAt' => '2017-01-01T00:00:00Z',
- 'id' => 'abcdef01-2345-6789-abcd-ef012356789a',
- 'isDefault' => true,
- 'links' => (object) [
- 'channel' => 'https://news-api.apple.com/channels/abcdef01-2345-6789-abcd-ef0123567890',
- 'self' => 'https://news-api.apple.com/channels/abcdef01-2345-6789-abcd-ef012356789a',
- ],
- 'modifiedAt' => '2017-01-01T00:00:00Z',
- 'name' => 'Main',
- 'shareUrl' => 'https://apple.news/AbCdEfGhIj-KlMnOpQrStUv',
- 'type' => 'section',
- ],
- (object) [
- 'createdAt' => '2017-01-01T00:00:00Z',
- 'id' => 'abcdef01-2345-6789-abcd-ef012356789b',
- 'isDefault' => false,
- 'links' => (object) [
- 'channel' => 'https://news-api.apple.com/channels/abcdef01-2345-6789-abcd-ef0123567890',
- 'self' => 'https://news-api.apple.com/channels/abcdef01-2345-6789-abcd-ef012356789b',
- ],
- 'modifiedAt' => '2017-01-01T00:00:00Z',
- 'name' => 'Secondary Section',
- 'shareUrl' => 'https://apple.news/AbCdEfGhIj-KlMnOpQrStUw',
- 'type' => 'section',
- ],
- ]
- );
- }
-
- /**
- * A fixture containing operations to be run after each test.
- */
- public function tearDown(): void {
- parent::tearDown();
- $this->prophet->checkPredictions();
- foreach ( $this->files_created as $file_created ) {
- if ( file_exists( $file_created ) ) {
- unlink( $file_created ); // phpcs:ignore WordPressVIPMinimum.Functions.RestrictedFunctions.file_ops_unlink
- }
- }
- }
-
- /**
- * Given an endpoint URL and a response object, adds the response object to
- * the queue for that URL. Used to fake HTTP responses from the Apple News
- * API.
- *
- * @param string $verb The HTTP verb to respond to.
- * @param string $url The API endpoint to fake the response for.
- * @param string $body The faked response body.
- * @param array $headers Optional. Faked response headers. Defaults to empty array.
- * @param array $response Optional. Faked response array. Defaults to empty array.
- * @param array $cookies Optional. Faked response cookies. Defaults to empty array.
- * @param string $filename Optional. Faked uploaded filename. Defaults to null.
- */
- protected function add_http_response(
- $verb,
- $url,
- $body = '',
- $headers = [],
- $response = [
- 'code' => 200,
- 'message' => 'OK',
- ],
- $cookies = [],
- $filename = null
- ) {
- // Handle null for DELETE.
- $this->http_responses[ $verb ][ $url ][] = 'DELETE' !== $verb
- ? [
- 'body' => $body,
- 'cookies' => $cookies,
- 'filename' => $filename,
- 'headers' => class_exists( \WpOrg\Requests\Utility\CaseInsensitiveDictionary::class )
- ? new \WpOrg\Requests\Utility\CaseInsensitiveDictionary( $headers )
- : new Requests_Utility_CaseInsensitiveDictionary( $headers ),
- 'response' => $response,
- ] : null;
- }
-
- /**
- * Creates a new admin (or super admin, on multisite) and sets the current
- * user ID to the new user. Useful when testing functionality that requires
- * an administrator's credentials, such as adding unfiltered HTML to a post.
- */
- protected function become_admin(): void {
- $user = $this->create_user_with_role( 'administrator' );
-
- if ( function_exists( 'grant_super_admin' ) ) {
- grant_super_admin( $user->ID );
- }
-
- wp_set_current_user( $user->ID );
- }
-
- /**
- * A helper function for removing Co-Authors Plus support in a test context.
- */
- protected function disable_coauthors_support() {
- remove_filter( 'apple_news_use_coauthors', '__return_true', 99 );
- }
-
- /**
- * A helper function for adding Co-Authors Plus support in a test context.
- */
- protected function enable_coauthors_support() {
- add_filter( 'apple_news_use_coauthors', '__return_true', 99 );
- }
-
- /**
- * Creates a fake article response from the API given optional overrides for
- * data properties.
- *
- * @param array $data Optional. Overrides for data properties.
- *
- * @return array The fake API response.
- */
- protected function fake_article_response( $data = [] ) {
- // Build the basic response.
- $response = [
- 'data' => wp_parse_args(
- $data,
- [
- 'createdAt' => '2020-01-02T03:04:05Z',
- 'modifiedAt' => '2020-01-02T03:04:05Z',
- 'id' => 'abcd1234-ef56-ab78-cd90-efabcdef123456',
- 'type' => 'article',
- 'shareUrl' => 'https://apple.news/ABCDEFGHIJKLMNOPQRSTUVW',
- 'links' => [
- 'channel' => 'https://news-api.apple.com/channels/' . $this->settings->api_channel,
- 'self' => 'https://news-api.apple.com/articles/abcd1234-ef56-ab78-cd90-efabcdef123456',
- 'sections' => [
- 'https://news-api.apple.com/sections/abcd1234-ef56-ab78-cd90-efabcdef1234',
- ],
- ],
- 'document' => [],
- 'revision' => 'AAAAAAAAAAAAAAAAAAAAAAAA',
- 'state' => 'PROCESSING',
- 'accessoryText' => null,
- 'title' => 'Test Article',
- 'maturityRating' => null,
- 'warnings' => [],
- 'targetTerritoryCountryCodes' => [ 'US' ],
- 'isCandidateToBeFeatured' => false,
- 'isSponsored' => false,
- 'isPreview' => false,
- 'isDevelopingStory' => false,
- 'isHidden' => false,
- ]
- ),
- 'meta' => [
- 'throttling' => [
- 'isThrottled' => false,
- 'queueSize' => 0,
- 'estimatedDelayInSeconds' => 0,
- 'quotaAvailable' => 200,
- ],
- ],
- ];
-
- // Apply targeted overrides to links, since wp_parse_args only works on one level.
- if ( isset( $data['links'] ) ) {
- $response['data']['links'] = wp_parse_args( $data['links'], $response['data']['links'] );
- }
-
- return $response;
- }
-
- /**
- * Given a request body from a POST request for an article to the Apple News
- * API, parses and extracts the article body portion of the request and
- * returns it as a JSON-decoded associative array.
- *
- * @param array $request The request to analyze.
- *
- * @return array An associative array representing the article body.
- */
- protected function get_body_from_request( $request ) {
- preg_match( '/Content-Disposition: form-data; name=my_article; filename=article.json; size=[0-9]+\s+(\{[^\r\n]+)/', $request['body'], $matches );
- return ! empty( $matches[1] ) ? json_decode( $matches[1], true ) : [];
- }
-
- /**
- * Given an image ID, returns the HTML5 markup for an image with a caption.
- *
- * Extracts the caption from the database entry for the image (stored in post_excerpt).
- *
- * @param int $image_id The image ID to use when generating the .
- *
- * @return string HTML for the image and the caption.
- */
- protected function get_image_with_caption( $image_id ) {
- return img_caption_shortcode(
- [
- 'caption' => wp_get_attachment_caption( $image_id ),
- 'width' => 640,
- ],
- wp_get_attachment_image( $image_id, 'full' )
- );
- }
-
- /**
- * A helper function that generates JSON for a given post ID.
- *
- * @param int $post_id The post ID for which to perform the export.
- *
- * @return array The JSON for the post, converted to an associative array.
- */
- protected function get_json_for_post( $post_id ) {
- $export = new Apple_Actions\Index\Export(
- $this->settings,
- $post_id,
- Admin_Apple_Sections::get_sections_for_post( $post_id )
- );
-
- return json_decode( $export->perform(), true );
- }
-
- /**
- * Given a request body from a POST request for an article to the Apple News
- * API, parses and extracts the metadata portion of the request and returns it
- * as a JSON-decoded associative array.
- *
- * @param array $request The request to analyze.
- *
- * @return array An associative array representing the article metadata.
- */
- protected function get_metadata_from_request( $request ) {
- preg_match( '/Content-Disposition: form-data; name=metadata\s+(\{[^\r\n]+)/', $request['body'], $matches );
- return ! empty( $matches[1] ) ? json_decode( $matches[1], true ) : [];
- }
-
- /**
- * Creates an attachment using a real image and returns the image ID.
- *
- * @param int $parent Optional. The parent post ID. Defaults to no parent.
- * @param string $caption Optional. The caption to set on the image.
- * @param string $alt Optional. The alt text to set on the image.
- *
- * @return int The post ID of the attachment image that was created.
- */
- protected function get_new_attachment( $parent = 0, $caption = '', $alt = '' ) {
- $image_id = self::factory()->attachment->with_image( __DIR__ . '/data/test-image.jpg', $parent )->create();
-
- if ( ! empty( $caption ) ) {
- $image = get_post( $image_id );
- $image->post_excerpt = $caption;
- wp_update_post( $image );
- }
-
- if ( ! empty( $alt ) ) {
- update_post_meta( $image_id, '_wp_attachment_image_alt', $alt );
- }
-
- // Keep track of all files that this function created so we can delete them later.
- $upload_dir = wp_get_upload_dir();
- $metadata = wp_get_attachment_metadata( $image_id );
- $this->files_created[] = sprintf( '%s/%s', $upload_dir['basedir'], $metadata['file'] );
- foreach ( $metadata['sizes'] as $size ) {
- $this->files_created[] = sprintf( '%s/%s', $upload_dir['path'], $size['file'] );
- }
-
- return $image_id;
- }
-
- /**
- * A helper function that performs a sample push operation for a given post ID
- * and returns the request data that would be sent to Apple.
- *
- * @param int $post_id The post ID for which to perform the push.
- * @param array $data Optional. Overrides for default faked values in the data.
- *
- * @return array The request data for the post.
- * @throws Action_Exception If the Push action fails.
- */
- protected function get_request_for_post( $post_id, $data = [] ) {
- // Fake the API response.
- $this->add_http_response(
- 'POST',
- 'https://news-api.apple.com/channels/' . $this->settings->api_channel . '/articles',
- wp_json_encode(
- $this->fake_article_response(
- wp_parse_args(
- $data,
- [
- 'document' => $this->get_json_for_post( $post_id ),
- 'title' => get_the_title( $post_id ),
- ]
- )
- )
- ),
- [],
- [
- 'code' => 201,
- 'message' => 'Created',
- ]
- );
-
- // Perform the push.
- $action = new Apple_Actions\Index\Push( $this->settings, $post_id );
- $action->perform();
-
- // Return the request arguments sent with the push.
- return ! empty( $this->post_args ) ? array_pop( $this->post_args ) : [];
- }
-
- /**
- * A helper function that performs a sample update operation for a given post
- * ID and returns the request data that would be sent to Apple.
- *
- * @param int $post_id The post ID for which to perform the update.
- * @param array $data Optional. Overrides for default faked values in the data.
- *
- * @return array The request data for the post.
- * @throws Action_Exception If the Push action fails.
- */
- protected function get_request_for_update( $post_id, $data = [] ) {
- $article_id = isset( $data['id'] ) ? $data['id'] : 'abcd1234-ef56-ab78-cd90-efabcdef123456';
-
- // Fake the API response for the GET request that is performed for article data before the update.
- $this->add_http_response(
- 'GET',
- 'https://news-api.apple.com/articles/' . $article_id,
- wp_json_encode(
- $this->fake_article_response(
- wp_parse_args(
- $data,
- [
- 'document' => $this->get_json_for_post( $post_id ),
- 'title' => get_the_title( $post_id ),
- ]
- )
- )
- )
- );
-
- // Fake the API response.
- $this->add_http_response(
- 'POST',
- 'https://news-api.apple.com/articles/' . $article_id,
- wp_json_encode(
- $this->fake_article_response(
- wp_parse_args(
- $data,
- [
- 'document' => $this->get_json_for_post( $post_id ),
- 'title' => get_the_title( $post_id ),
- ]
- )
- )
- )
- );
-
- // Perform the push.
- $action = new Apple_Actions\Index\Push( $this->settings, $post_id );
- $action->perform();
-
- // Return the request arguments sent with the push.
- return ! empty( $this->post_args ) ? array_pop( $this->post_args ) : [];
- }
-
- /**
- * Loads an example theme given a slug.
- *
- * @param string $slug The slug of the example theme to load.
- */
- protected function load_example_theme( $slug ) {
- // Load the theme data from the JSON configuration file.
- $options = json_decode( file_get_contents( dirname( __DIR__ ) . '/assets/themes/' . $slug . '.json' ), true );
- if ( empty( $options ) ) {
- return;
- }
-
- // Negotiate screenshot URL.
- $options['screenshot_url'] = plugins_url(
- '/assets/screenshots/' . $slug . '.png',
- __DIR__
- );
-
- // Create a new instance of the Theme class and set the theme name.
- $this->theme = new Apple_Exporter\Theme();
- $this->theme->set_name( $options['theme_name'] );
-
- // Save the theme.
- $this->theme->load( $options );
- $this->theme->save();
-
- // Make this theme the active theme.
- $this->theme->set_active();
- $this->theme->use_this();
- }
-
- /**
- * Given an array of theme settings, applies them to the currently active theme.
- *
- * @param array $settings The settings to apply to the theme.
- */
- protected function set_theme_settings( $settings ) {
- $settings = wp_parse_args( $settings, $this->theme->all_settings() );
- $this->theme->load( $settings );
- $this->theme->save();
- }
-
- /**
- * Sets the workspace post ID to the ID provided.
- *
- * @param int $post_id The post ID to set for the workspace.
- */
- protected function set_workspace_post_id( $post_id ) {
- $this->workspace = new Apple_Exporter\Workspace( $post_id );
- }
-}
diff --git a/tests/data/test-image-2.jpg b/tests/data/test-image-2.jpg
deleted file mode 100644
index 47f3197b..00000000
Binary files a/tests/data/test-image-2.jpg and /dev/null differ
diff --git a/tests/data/test-image.jpg b/tests/data/test-image.jpg
deleted file mode 100644
index 47f3197b..00000000
Binary files a/tests/data/test-image.jpg and /dev/null differ
diff --git a/tests/mocks/class-bc-accounts.php b/tests/mocks/class-bc-accounts.php
deleted file mode 100644
index c2bc28e3..00000000
--- a/tests/mocks/class-bc-accounts.php
+++ /dev/null
@@ -1,47 +0,0 @@
- $account_id,
- 'account_name' => 'Test Account Name',
- 'client_id' => 'abcd1234-ef56-ab78-cd90-efabcd123456',
- 'client_secret' => 'AbCdEfGhIjKlMnOpQrStUvWxYz12345678-AbCdEfGhIjKlMnOpQrStUvWxYz0_AbCdE-AbCdEfG_AbCdE_AbC',
- 'hash' => 'abcdef0123456789',
- 'set_default' => 'default',
- ];
- }
-}
diff --git a/tests/mocks/class-bc-cms-api.php b/tests/mocks/class-bc-cms-api.php
deleted file mode 100644
index e8f4f4d6..00000000
--- a/tests/mocks/class-bc-cms-api.php
+++ /dev/null
@@ -1,49 +0,0 @@
- [
- 'src' => 'https://cf-images.us-east-1.prod.boltdns.net/v1/jit/1234567890/abcd1234-ef56-ab78-cd90-efabcd123456/main/1280x720/1s234ms/match/image.jpg',
- 'sources' => [
- [
- 'src' => 'https://cf-images.us-east-1.prod.boltdns.net/v1/jit/1234567890/abcd1234-ef56-ab78-cd90-efabcd123456/main/1280x720/1s234ms/match/image.jpg',
- 'height' => 720,
- 'width' => 1280,
- ],
- ],
- ],
- 'thumbnail' => [
- 'src' => 'https://cf-images.us-east-1.prod.boltdns.net/v1/jit/1234567890/abcd1234-ef56-ab78-cd90-efabcd123456/main/1690x90/1s234ms/match/image.jpg',
- 'sources' => [
- [
- 'src' => 'https://cf-images.us-east-1.prod.boltdns.net/v1/jit/1234567890/abcd1234-ef56-ab78-cd90-efabcd123456/main/160x90/1s234ms/match/image.jpg',
- 'height' => 90,
- 'width' => 160,
- ],
- ],
- ],
- ];
- }
-}
diff --git a/tests/mocks/class-bc-setup.php b/tests/mocks/class-bc-setup.php
deleted file mode 100644
index 58c5c2b5..00000000
--- a/tests/mocks/class-bc-setup.php
+++ /dev/null
@@ -1,29 +0,0 @@
- '',
- 'href' => get_author_posts_url( $author->ID, $author->user_nicename ),
- 'rel' => 'author',
- 'title' => sprintf( __( 'Posts by %s', 'co-authors-plus' ), $author->display_name ),
- 'class' => 'author url fn',
- 'text' => $author->display_name,
- 'after_html' => '',
- ];
-
- $single_link = sprintf(
- '%3$s',
- esc_url( $args['href'] ),
- esc_attr( $args['rel'] ),
- esc_html( $args['text'] )
- );
-
- $output[] = $args['before_html'] . $single_link . $args['after_html'];
-
- }
-
- // Get last element and prepend 'and'.
- $last_element = array_pop( $output );
- array_push( $output, 'and ' . $last_element );
-
- // If we have more than two items comma-separate array items and then conver to string.
- $output = implode( 2 > count( $output ) ? ', ' : ' ', $output );
-
- // Fork for echo.
- if ( ! $echo ) {
- return $output;
- }
-
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
-}
-
-/**
- * A mock for the coauthors_posts_links_single function from Co-Authors Plus.
- *
- * @param object $author The author object to use in output.
- * @return string
- */
-function coauthors_posts_links_single( $author ) {
- // Return if the fields we are trying to use are not sent.
- if ( ! isset( $author->ID, $author->user_nicename, $author->display_name ) ) {
- _doing_it_wrong(
- 'coauthors_posts_links_single',
- 'Invalid author object used',
- '3.2'
- );
- return;
- }
- $args = [
- 'before_html' => '',
- 'href' => get_author_posts_url( $author->ID, $author->user_nicename ),
- 'rel' => 'author',
- 'title' => sprintf( __( 'Posts by %s', 'co-authors-plus' ), apply_filters( 'the_author', $author->display_name ) ),
- 'class' => 'author url fn',
- 'text' => apply_filters( 'the_author', $author->display_name ),
- 'after_html' => '',
- ];
- $args = apply_filters( 'coauthors_posts_link', $args, $author );
- $single_link = sprintf(
- '%5$s',
- esc_url( $args['href'] ),
- esc_attr( $args['title'] ),
- esc_attr( $args['class'] ),
- esc_attr( $args['rel'] ),
- esc_html( $args['text'] )
- );
- return $args['before_html'] . $single_link . $args['after_html'];
-}
diff --git a/tests/rest/test-class-rest-admin.php b/tests/rest/test-class-rest-admin.php
deleted file mode 100644
index 1e0ca0e8..00000000
--- a/tests/rest/test-class-rest-admin.php
+++ /dev/null
@@ -1,59 +0,0 @@
-actingAs( $this->create_user_with_role( 'editor' ) );
- $this->assertAuthenticated();
-
- // Create a test post and give it sample data for the API postmeta.
- $post_id = self::factory()->post->create();
- add_post_meta( $post_id, 'apple_news_api_created_at', 'abc123' );
- add_post_meta( $post_id, 'apple_news_api_id', 'def456666' );
- add_post_meta( $post_id, 'apple_news_api_modified_at', 'ghi789' );
- add_post_meta( $post_id, 'apple_news_api_revision', 'jkl123' );
- add_post_meta( $post_id, 'apple_news_api_share_url', 'mno456' );
-
- // Update the post via REST request and attempt to reset the API postmeta.
- $endpoint = '/wp/v2/posts/' . $post_id;
- $payload = [
- 'content' => '\n
Testing.
\n',
- 'id' => $post_id,
- 'meta' => [
- 'apple_news_api_created_at' => '',
- 'apple_news_api_id' => '',
- 'apple_news_api_modified_at' => '',
- 'apple_news_api_revision' => '',
- 'apple_news_api_share_url' => '',
- ],
- ];
- $request = new WP_REST_Request( 'POST', $endpoint );
- $request->set_body_params( $payload );
- rest_do_request( $request );
-
- // Ensure that the API postmeta was _not_ reset by the REST request.
- $this->assertEquals( 'abc123', get_post_meta( $post_id, 'apple_news_api_created_at', true ) );
- $this->assertEquals( 'def456666', get_post_meta( $post_id, 'apple_news_api_id', true ) );
- $this->assertEquals( 'ghi789', get_post_meta( $post_id, 'apple_news_api_modified_at', true ) );
- $this->assertEquals( 'jkl123', get_post_meta( $post_id, 'apple_news_api_revision', true ) );
- $this->assertEquals( 'mno456', get_post_meta( $post_id, 'apple_news_api_share_url', true ) );
- }
-}
diff --git a/tests/rest/test-class-rest-post-published-state.php b/tests/rest/test-class-rest-post-published-state.php
deleted file mode 100644
index 944fbdaf..00000000
--- a/tests/rest/test-class-rest-post-published-state.php
+++ /dev/null
@@ -1,103 +0,0 @@
-assertFalse( Apple_News::is_initialized() );
-
- $post_id = self::factory()->post->create();
-
- $this->get( rest_url( '/apple-news/v1/get-published-state/' . $post_id ) )
- ->assertStatus( 400 )
- ->assertJsonPath( 'message', 'You must enter your API information on the settings page before using Publish to Apple News.' );
- }
-
- /**
- * Test the REST endpoint for getting the published state of a post when not authenticated.
- */
- public function test_get_post_published_state_unauthenticated(): void {
- $api_id = 'def456';
-
- // Create a test post and give it sample data for the API postmeta.
- $post_id = self::factory()->post->create();
- add_post_meta( $post_id, 'apple_news_api_created_at', 'abc123' );
- add_post_meta( $post_id, 'apple_news_api_id', $api_id );
- add_post_meta( $post_id, 'apple_news_api_modified_at', 'ghi789' );
- add_post_meta( $post_id, 'apple_news_api_revision', 'jkl123' );
- add_post_meta( $post_id, 'apple_news_api_share_url', 'mno456' );
-
- $this->get( rest_url( '/apple-news/v1/get-published-state/' . $post_id ) )
- ->assertOk()
- ->assertJsonPathMissing( 'publishState' );
-
- // Ensure that the API postmeta was _not_ reset by the REST request.
- $this->assertEquals( 'abc123', get_post_meta( $post_id, 'apple_news_api_created_at', true ) );
- $this->assertEquals( $api_id, get_post_meta( $post_id, 'apple_news_api_id', true ) );
- $this->assertEquals( 'ghi789', get_post_meta( $post_id, 'apple_news_api_modified_at', true ) );
- $this->assertEquals( 'jkl123', get_post_meta( $post_id, 'apple_news_api_revision', true ) );
- $this->assertEquals( 'mno456', get_post_meta( $post_id, 'apple_news_api_share_url', true ) );
- }
-
- /**
- * Test the REST endpoint for getting the published state of a post when authenticated.
- */
- public function test_get_post_published_state_of_an_invalid_id_when_authenticated(): void {
- $api_id = 'def456';
-
- // Create a test post and give it sample data for the API postmeta.
- $post_id = self::factory()->post->create();
- add_post_meta( $post_id, 'apple_news_api_created_at', 'abc123' );
- add_post_meta( $post_id, 'apple_news_api_id', $api_id );
- add_post_meta( $post_id, 'apple_news_api_modified_at', 'ghi789' );
- add_post_meta( $post_id, 'apple_news_api_revision', 'jkl123' );
- add_post_meta( $post_id, 'apple_news_api_share_url', 'mno456' );
-
- $this->actingAs( $this->create_user_with_role( 'editor' ) );
- $this->assertAuthenticated();
-
- // Fake the API response for the GET request.
- $this->add_http_response(
- verb: 'GET',
- url: 'https://news-api.apple.com/articles/' . $api_id,
- body: wp_json_encode(
- [
- 'errors' => [
- [
- 'code' => 'NOT_FOUND',
- 'keyPath' => [ 'articleId' ],
- 'value' => $api_id,
- ],
- ],
- ]
- ),
- response: [
- 'code' => 404,
- 'message' => 'Not Found',
- ]
- );
-
- $this->get( rest_url( '/apple-news/v1/get-published-state/' . $post_id ) )
- ->assertOk()
- ->assertJsonPath( 'publishState', 'NOT_FOUND (keyPath articleId)' );
-
- $this->assertEquals( 'abc123', get_post_meta( $post_id, 'apple_news_api_created_at', true ) );
- $this->assertEquals( $api_id, get_post_meta( $post_id, 'apple_news_api_id', true ) );
- $this->assertEquals( 'ghi789', get_post_meta( $post_id, 'apple_news_api_modified_at', true ) );
- $this->assertEquals( 'jkl123', get_post_meta( $post_id, 'apple_news_api_revision', true ) );
- $this->assertEquals( 'mno456', get_post_meta( $post_id, 'apple_news_api_share_url', true ) );
- }
-}
diff --git a/tests/test-class-apple-news.php b/tests/test-class-apple-news.php
deleted file mode 100644
index 36c29b6a..00000000
--- a/tests/test-class-apple-news.php
+++ /dev/null
@@ -1,364 +0,0 @@
-assertEquals( 'test-get-filename.jpg', $filename );
- }
-
- /**
- * Tests the functionality of Apple_News::is_default_theme.
- */
- public function test_is_default_theme() {
- // Absent any customizations, the check for the default theme should return true.
- $this->assertTrue( Apple_News::is_default_theme() );
-
- // Load the default theme and change its name but not its settings.
- $theme = new Theme();
- $theme->set_name( 'Default' );
- $theme->load();
- $theme->rename( 'Not Default' );
-
- // The check for the default theme should now return false, since the name was changed.
- $this->assertFalse( Apple_News::is_default_theme() );
-
- // If we change the name back to Default, the check should go back to being true.
- $theme->rename( 'Default' );
- $this->assertTrue( Apple_News::is_default_theme() );
-
- // If we leave the name as Default but change one of the theme options, the check should return false.
- $theme->set_value( 'body_size', 72 );
- $theme->save();
- $this->assertFalse( Apple_News::is_default_theme() );
-
- // If we also rename the theme, the check should return false.
- $theme->rename( 'Not Default' );
- $this->assertFalse( Apple_News::is_default_theme() );
- }
-
- /**
- * Ensures that the migrate_api_settings function migrates settings.
- *
- * @see Apple_News::migrate_api_settings()
- */
- public function test_migrate_api_settings() {
-
- // Setup.
- $legacy_settings = $this->settings->all();
- $legacy_settings['api_autosync_update'] = 'no';
- unset( $legacy_settings['api_autosync_delete'] );
- $apple_news = new Apple_News();
- update_option( $apple_news::$option_name, $legacy_settings );
- $apple_news->migrate_api_settings();
-
- // Ensure the defaults did not overwrite the migrated legacy data.
- $expected_settings = $legacy_settings;
- $expected_settings['api_autosync_delete'] = 'no';
- $migrated_settings = get_option( $apple_news::$option_name );
- $this->assertEquals( $expected_settings, $migrated_settings );
- }
-
- /**
- * Ensures that the migrate_blockquote_settings function migrates settings.
- *
- * @see Apple_News::migrate_blockquote_settings()
- */
- public function test_migrate_blockquote_settings() {
-
- // Setup.
- $legacy_settings = $this->settings->all();
- $legacy_settings['body_background_color'] = '#aaaaaa';
- $legacy_settings['pullquote_border_color'] = '#abcdef';
- $legacy_settings['pullquote_border_style'] = 'dashed';
- $legacy_settings['pullquote_border_width'] = 10;
- $legacy_settings['body_color'] = '#012345';
- $legacy_settings['body_font'] = 'TestFont';
- $legacy_settings['body_line_height'] = 30;
- $legacy_settings['body_size'] = 20;
- $legacy_settings['body_tracking'] = 10;
- unset( $legacy_settings['blockquote_background_color'] );
- unset( $legacy_settings['blockquote_border_color'] );
- unset( $legacy_settings['blockquote_border_style'] );
- unset( $legacy_settings['blockquote_border_width'] );
- unset( $legacy_settings['blockquote_color'] );
- unset( $legacy_settings['blockquote_font'] );
- unset( $legacy_settings['blockquote_line_height'] );
- unset( $legacy_settings['blockquote_size'] );
- unset( $legacy_settings['blockquote_tracking'] );
- $apple_news = new Apple_News();
- update_option( $apple_news::$option_name, $legacy_settings );
- $apple_news->migrate_blockquote_settings();
-
- // Ensure the defaults did not overwrite the migrated legacy data.
- $expected_settings = $legacy_settings;
- $expected_settings['blockquote_background_color'] = '#999999';
- $expected_settings['blockquote_border_color'] = '#abcdef';
- $expected_settings['blockquote_border_style'] = 'dashed';
- $expected_settings['blockquote_border_width'] = 10;
- $expected_settings['blockquote_color'] = '#012345';
- $expected_settings['blockquote_font'] = 'TestFont';
- $expected_settings['blockquote_line_height'] = 30;
- $expected_settings['blockquote_size'] = 20;
- $expected_settings['blockquote_tracking'] = 10;
- $migrated_settings = get_option( $apple_news::$option_name );
- $this->assertEquals( $expected_settings, $migrated_settings );
- }
-
- /**
- * Ensures that the migrate_caption_settings function migrates settings.
- *
- * @see Apple_News::migrate_caption_settings()
- */
- public function test_migrate_caption_settings() {
-
- // Setup.
- $legacy_settings = $this->settings->all();
- $legacy_settings['body_color'] = '#abcdef';
- $legacy_settings['body_font'] = 'TestFont';
- $legacy_settings['body_line_height'] = 40;
- $legacy_settings['body_size'] = 30;
- $legacy_settings['body_tracking'] = 10;
- unset( $legacy_settings['caption_color'] );
- unset( $legacy_settings['caption_font'] );
- unset( $legacy_settings['caption_line_height'] );
- unset( $legacy_settings['caption_size'] );
- unset( $legacy_settings['caption_tracking'] );
- $apple_news = new Apple_News();
- update_option( $apple_news::$option_name, $legacy_settings );
- $apple_news->migrate_caption_settings();
-
- // Ensure the defaults did not overwrite the migrated legacy data.
- $expected_settings = $legacy_settings;
- $expected_settings['caption_color'] = '#abcdef';
- $expected_settings['caption_font'] = 'TestFont';
- $expected_settings['caption_line_height'] = 40;
- $expected_settings['caption_size'] = 28;
- $expected_settings['caption_tracking'] = 10;
- $migrated_settings = get_option( $apple_news::$option_name );
- $this->assertEquals( $expected_settings, $migrated_settings );
- }
-
- /**
- * Ensures that the migrate_header_settings function migrates settings.
- *
- * @see Apple_News::migrate_header_settings()
- */
- public function test_migrate_header_settings() {
-
- // Setup.
- $legacy_settings = $this->settings->all();
- $legacy_settings['header_color'] = '#abcdef';
- $legacy_settings['header_font'] = 'TestFont';
- $legacy_settings['header_line_height'] = 100;
- unset( $legacy_settings['header1_color'] );
- unset( $legacy_settings['header2_color'] );
- unset( $legacy_settings['header3_color'] );
- unset( $legacy_settings['header4_color'] );
- unset( $legacy_settings['header5_color'] );
- unset( $legacy_settings['header6_color'] );
- unset( $legacy_settings['header1_font'] );
- unset( $legacy_settings['header2_font'] );
- unset( $legacy_settings['header3_font'] );
- unset( $legacy_settings['header4_font'] );
- unset( $legacy_settings['header5_font'] );
- unset( $legacy_settings['header6_font'] );
- unset( $legacy_settings['header1_line_height'] );
- unset( $legacy_settings['header2_line_height'] );
- unset( $legacy_settings['header3_line_height'] );
- unset( $legacy_settings['header4_line_height'] );
- unset( $legacy_settings['header5_line_height'] );
- unset( $legacy_settings['header6_line_height'] );
- $apple_news = new Apple_News();
- update_option( $apple_news::$option_name, $legacy_settings );
- $apple_news->migrate_header_settings( $legacy_settings );
-
- // Ensure the defaults did not overwrite the migrated legacy data.
- $expected_settings = $legacy_settings;
- $expected_settings['header1_color'] = '#abcdef';
- $expected_settings['header2_color'] = '#abcdef';
- $expected_settings['header3_color'] = '#abcdef';
- $expected_settings['header4_color'] = '#abcdef';
- $expected_settings['header5_color'] = '#abcdef';
- $expected_settings['header6_color'] = '#abcdef';
- $expected_settings['header1_font'] = 'TestFont';
- $expected_settings['header2_font'] = 'TestFont';
- $expected_settings['header3_font'] = 'TestFont';
- $expected_settings['header4_font'] = 'TestFont';
- $expected_settings['header5_font'] = 'TestFont';
- $expected_settings['header6_font'] = 'TestFont';
- $expected_settings['header1_line_height'] = 100;
- $expected_settings['header2_line_height'] = 100;
- $expected_settings['header3_line_height'] = 100;
- $expected_settings['header4_line_height'] = 100;
- $expected_settings['header5_line_height'] = 100;
- $expected_settings['header6_line_height'] = 100;
- unset( $expected_settings['header_color'] );
- unset( $expected_settings['header_font'] );
- unset( $expected_settings['header_line_height'] );
- $migrated_settings = get_option( $apple_news::$option_name );
- $this->assertEquals( $expected_settings, $migrated_settings );
- }
-
- /**
- * Ensures that the migrate_settings function properly migrates legacy settings.
- *
- * @see Apple_News::migrate_settings()
- */
- public function test_migrate_settings() {
-
- // Setup.
- $apple_news = new Apple_News();
- delete_option( $apple_news::$option_name );
- update_option( 'use_remote_images', 'no' );
- $default_settings = $this->settings->all();
- $apple_news->migrate_settings();
-
- // Reset API info.
- $default_settings['api_channel'] = '';
- $default_settings['api_key'] = '';
- $default_settings['api_secret'] = '';
-
- // Ensure the defaults did not overwrite the migrated legacy data.
- $migrated_settings = get_option( $apple_news::$option_name );
- $this->assertNotEquals( $default_settings, $migrated_settings );
-
- // Ensure the migrated settings match what we expect.
- $default_settings['use_remote_images'] = 'no';
- $this->assertEquals( $default_settings, $migrated_settings );
- }
-
- /**
- * Ensures that the get_support_info returns the correct values.
- *
- * @see Apple_News::get_support_info()
- */
- public function test_support_info() {
-
- // Test HTML.
- $this->assertEquals(
- '
If you need assistance, please reach out for support on WordPress.org or GitHub.',
- Apple_News::get_support_info()
- );
-
- // Test HTML with no padding.
- $this->assertEquals(
- 'If you need assistance, please reach out for support on WordPress.org or GitHub.',
- Apple_News::get_support_info( 'html', false )
- );
-
- // Test text.
- $this->assertEquals(
- "\n\n" . 'If you need assistance, please reach out for support on WordPress.org or GitHub.',
- Apple_News::get_support_info( 'text' )
- );
-
- // Test text with no padding.
- $this->assertEquals(
- 'If you need assistance, please reach out for support on WordPress.org or GitHub.',
- Apple_News::get_support_info( 'text', false )
- );
- }
-
- /**
- * Tests an upgrade from a version prior to 2.5.0 to version 2.5.0.
- */
- public function test_upgrade_to_2_5_0(): void {
- /*
- * Set legacy theme settings.
- *
- * We have to do this in the database directly because it will fail validation with the updated theme code.
- */
- $custom_heading_layout = [
- 'columnStart' => '#body_offset#',
- 'columnSpan' => '#body_column_span#',
- 'margin' => [
- 'bottom' => 25,
- 'top' => 25,
- ],
- ];
- $this->load_example_theme( 'default' );
- $theme_data = get_option( Theme::theme_key( 'Default' ) );
- $theme_data['json_templates'] = [
- 'heading' => [
- 'heading-layout' => $custom_heading_layout,
- ],
- ];
- unset( $theme_data['cite_color'] );
- unset( $theme_data['cite_color_dark'] );
- unset( $theme_data['cite_font'] );
- unset( $theme_data['cite_line_height'] );
- unset( $theme_data['cite_size'] );
- unset( $theme_data['cite_tracking'] );
- $theme_data['caption_color'] = '#abc123';
- $theme_data['caption_color_dark'] = '#def456';
- $theme_data['caption_font'] = 'AvenirNext-Bold';
- $theme_data['caption_line_height'] = 123;
- $theme_data['caption_size'] = 234;
- $theme_data['caption_tracking'] = 345;
- $theme_data['blockquote_background_color'] = '#abcde1';
- $theme_data['blockquote_background_color_dark'] = '#abcde2';
- $theme_data['blockquote_border_color'] = '#abcde3';
- $theme_data['blockquote_border_color_dark'] = '#abcde4';
- $theme_data['blockquote_border_style'] = 'dashed';
- $theme_data['blockquote_border_width'] = 5;
- update_option( Theme::theme_key( 'Default' ), $theme_data );
-
- // Run the upgrade.
- $apple_news = new Apple_News();
- $apple_news->upgrade_to_2_5_0();
- $theme = Theme::get_used();
- $theme->load();
- $json = $theme->get_value( 'json_templates' );
- $this->assertTrue( empty( $json['heading']['heading-layout'] ), 'Expected the generic heading layout to be removed by the upgrade.' );
- $this->assertEquals( $custom_heading_layout, $json['heading']['heading-layout-1'], 'Expected the custom heading layout to be migrated to heading level 1 during the upgrade.' );
- $this->assertEquals( $custom_heading_layout, $json['heading']['heading-layout-2'], 'Expected the custom heading layout to be migrated to heading level 2 during the upgrade.' );
- $this->assertEquals( $custom_heading_layout, $json['heading']['heading-layout-3'], 'Expected the custom heading layout to be migrated to heading level 3 during the upgrade.' );
- $this->assertEquals( $custom_heading_layout, $json['heading']['heading-layout-4'], 'Expected the custom heading layout to be migrated to heading level 4 during the upgrade.' );
- $this->assertEquals( $custom_heading_layout, $json['heading']['heading-layout-5'], 'Expected the custom heading layout to be migrated to heading level 5 during the upgrade.' );
- $this->assertEquals( $custom_heading_layout, $json['heading']['heading-layout-6'], 'Expected the custom heading layout to be migrated to heading level 6 during the upgrade.' );
- $this->assertEquals( '#abc123', $theme->get_value( 'cite_color' ), 'Expected the custom caption color to be applied to the cite color as part of the upgrade.' );
- $this->assertEquals( '#def456', $theme->get_value( 'cite_color_dark' ), 'Expected the custom caption dark color to be applied to the cite dark color as part of the upgrade.' );
- $this->assertEquals( 'AvenirNext-Bold', $theme->get_value( 'cite_font' ), 'Expected the custom caption font to be applied to the cite font as part of the upgrade.' );
- $this->assertEquals( 123, $theme->get_value( 'cite_line_height' ), 'Expected the custom caption line height to be applied to the cite line height as part of the upgrade.' );
- $this->assertEquals( 234, $theme->get_value( 'cite_size' ), 'Expected the custom caption size to be applied to the cite size as part of the upgrade.' );
- $this->assertEquals( 345, $theme->get_value( 'cite_tracking' ), 'Expected the custom caption tracking to be applied to the cite tracking as part of the upgrade.' );
- $this->assertEquals( '#abcde1', $theme->get_value( 'aside_background_color' ), 'Expected the custom blockquote background color to be applied to the aside background color as part of the upgrade.' );
- $this->assertEquals( '#abcde2', $theme->get_value( 'aside_background_color_dark' ), 'Expected the custom blockquote background color (dark) to be applied to the aside background color (dark) as part of the upgrade.' );
- $this->assertEquals( '#abcde3', $theme->get_value( 'aside_border_color' ), 'Expected the custom blockquote border to be applied to the aside border as part of the upgrade.' );
- $this->assertEquals( '#abcde4', $theme->get_value( 'aside_border_color_dark' ), 'Expected the custom blockquote border (dark) to be applied to the aside border (dark) as part of the upgrade.' );
- $this->assertEquals( 'dashed', $theme->get_value( 'aside_border_style' ), 'Expected the custom blockquote border style to be applied to the aside border style as part of the upgrade.' );
- $this->assertEquals( 5, $theme->get_value( 'aside_border_width' ), 'Expected the custom blockquote border width to be applied to the aside border width as part of the upgrade.' );
- }
-
- /**
- * Ensures that the version in Apple_News matches the reported plugin version.
- *
- * @see Apple_News::$version
- */
- public function test_version() {
- $plugin_data = apple_news_get_plugin_data();
- $this->assertEquals( Apple_News::$version, $plugin_data['Version'] );
- }
-}
diff --git a/webpack.config.js b/webpack.config.js
deleted file mode 100644
index 5f074713..00000000
--- a/webpack.config.js
+++ /dev/null
@@ -1,49 +0,0 @@
-const path = require('path');
-const DependencyExtractionWebpackPlugin = require('@wordpress/dependency-extraction-webpack-plugin');
-
-module.exports = (env, { mode }) => ({
- /*
- * See https://webpack.js.org/configuration/devtool/ for an explanation of how
- * to configure this directive. We are using the recommended options for
- * production and development mode that produce high quality source maps.
- */
- devtool: mode === 'production'
- ? 'source-map'
- : 'eval-source-map',
-
- // We only have one entry point - the pluginsidebar.
- entry: {
- pluginSidebar: './assets/js/pluginsidebar/index.jsx',
- adminSettings: './assets/js/admin-settings/frontend.jsx',
- },
-
- // Configure loaders based on extension.
- module: {
- rules: [
- {
- exclude: /node_modules/,
- test: /.jsx?$/,
- use: [
- 'babel-loader',
- ],
- },
- ],
- },
-
- // Configure the output filename.
- output: {
- filename: '[name].js',
- path: path.join(__dirname, 'build'),
- },
-
- // Configure plugins.
- plugins: [
- // This maps references to @wordpress/{package-name} to the wp object.
- new DependencyExtractionWebpackPlugin({ useDefaults: true }),
- ],
-
- // Tell webpack that we are using both .js and .jsx extensions.
- resolve: {
- extensions: ['.js', '.jsx'],
- },
-});