From 8d9d43609b70427c4ae86990b19ffab1429b7e51 Mon Sep 17 00:00:00 2001 From: Anderson Martins Date: Thu, 22 Aug 2024 14:24:56 -0300 Subject: [PATCH] Release 3.4.4 --- .github/ISSUE_TEMPLATE/release-free-plugin.md | 3 +- .github/ISSUE_TEMPLATE/release-pro-plugin.md | 3 +- CHANGELOG.md | 20 + assets/css/edit.css | 13 + assets/js/block-editor.js | 2 +- assets/js/block-editor.js.map | 2 +- assets/js/bulk-edit.js | 2 +- assets/js/bulk-edit.js.map | 2 +- assets/js/classic-editor.js | 2 +- assets/js/classic-editor.js.map | 2 +- assets/js/quick-edit.js | 2 +- assets/js/quick-edit.js.map | 2 +- assets/js/settings-general.js | 2 + assets/js/settings-general.js.map | 1 + assets/js/settings-post-types.js | 2 +- assets/js/settings-post-types.js.map | 2 +- assets/jsx/block-editor.jsx | 7 +- assets/jsx/bulk-edit.jsx | 6 +- assets/jsx/classic-editor.jsx | 7 +- assets/jsx/components/DateOffsetPreview.jsx | 99 +++ assets/jsx/components/FutureActionPanel.jsx | 47 +- .../FutureActionPanelBlockEditor.jsx | 1 + .../components/FutureActionPanelBulkEdit.jsx | 1 + .../FutureActionPanelClassicEditor.jsx | 1 + .../components/FutureActionPanelQuickEdit.jsx | 1 + .../jsx/components/PostTypeSettingsPanel.jsx | 102 +-- .../components/PostTypesSettingsPanels.jsx | 35 +- assets/jsx/components/SettingsFieldset.jsx | 2 +- .../jsx/components/css/dateOffsetPreview.css | 31 + assets/jsx/components/index.jsx | 1 + assets/jsx/quick-edit.jsx | 6 +- assets/jsx/settings-general.jsx | 76 +++ assets/jsx/settings-post-types.jsx | 4 +- composer.json | 4 + composer.lock | 8 +- dev-workspace/docker/Dockerfile | 10 + languages/post-expirator-es_ES.mo | Bin 25307 -> 25377 bytes languages/post-expirator-es_ES.po | 594 ++++++++--------- languages/post-expirator-fr_FR.mo | Bin 26311 -> 26373 bytes languages/post-expirator-fr_FR.po | 596 +++++++++--------- languages/post-expirator-it_IT.mo | Bin 24917 -> 24989 bytes languages/post-expirator-it_IT.po | 596 +++++++++--------- languages/post-expirator-nl_NL.mo | Bin 16188 -> 16194 bytes languages/post-expirator-nl_NL.po | 12 +- languages/post-expirator-pt_BR.mo | Bin 22130 -> 22136 bytes languages/post-expirator-pt_BR.po | 12 +- languages/post-expirator.pot | 278 ++++---- legacy/classes/Display.class.php | 3 + lib/vendor/composer/installed.php | 4 +- package.json | 5 +- phpstan.neon | 2 + post-expirator.php | 4 +- readme.txt | 49 +- .../Controllers/BlockEditorController.php | 1 + .../Controllers/BulkEditController.php | 1 + .../Controllers/ClassicEditorController.php | 7 +- .../Controllers/PostListController.php | 5 + .../Controllers/QuickEditController.php | 42 +- .../ScheduledActionsController.php | 34 + src/Modules/Expirator/HooksAbstract.php | 2 + .../Expirator/Models/ActionModelInterface.php | 2 + .../Expirator/Models/ExpirablePostModel.php | 10 +- .../Settings/Controllers/Controller.php | 39 ++ src/Modules/Settings/SettingsFacade.php | 5 + src/Views/menu-general.php | 24 + webpack.config.js | 206 +++--- yarn.lock | 90 ++- 67 files changed, 1801 insertions(+), 1333 deletions(-) create mode 100644 assets/js/settings-general.js create mode 100644 assets/js/settings-general.js.map create mode 100644 assets/jsx/components/DateOffsetPreview.jsx create mode 100644 assets/jsx/components/css/dateOffsetPreview.css create mode 100644 assets/jsx/settings-general.jsx diff --git a/.github/ISSUE_TEMPLATE/release-free-plugin.md b/.github/ISSUE_TEMPLATE/release-free-plugin.md index 49bee843a..e1f52d462 100644 --- a/.github/ISSUE_TEMPLATE/release-free-plugin.md +++ b/.github/ISSUE_TEMPLATE/release-free-plugin.md @@ -18,8 +18,7 @@ To release the Free plugin, ensure you complete all the tasks below. - [ ] Review updated packages and mention any production library updates in the changelog. - [ ] Inspect GitHub’s Dependabot warnings or Pull Requests. Resolve any false positives, then fix and commit the remaining issues. - [ ] If needed, build JS files for production using `composer build:js` and commit changes. -- [ ] Run `composer build:dir` to prepare the plugin for quality checks. -- [ ] Run a WP VIP scan with `composer check:phpcs` to ensure no warnings or errors greater than 5 exist. +- [ ] Run a code quality check with `composer check` and fix the highlighted issues. - [ ] Update the language files with `composer gen:lang` and note this in the changelog. - [ ] For minor and patch releases, maintain backward compatibility (e.g., renamed or moved classes, namespaces, functions). Include deprecation comments and note this in the changelog. Major releases may remove deprecated code; always note this in the changelog. - [ ] Update the changelog in `/CHANGELOG.md` with a user-friendly description and correct release date. diff --git a/.github/ISSUE_TEMPLATE/release-pro-plugin.md b/.github/ISSUE_TEMPLATE/release-pro-plugin.md index dd8c13dad..8aa6e335b 100644 --- a/.github/ISSUE_TEMPLATE/release-pro-plugin.md +++ b/.github/ISSUE_TEMPLATE/release-pro-plugin.md @@ -21,8 +21,7 @@ To release the Pro plugin, ensure you complete all the tasks below. - [ ] Check if the free plugin uses Composer's autoload and copy the autoload definition from the free plugin to the pro plugin refactoring the relative paths, on `/lib/composer.json`. Execute `composer dumpautoload` to update the autoload files. Commit the changes. - [ ] Inspect GitHub’s Dependabot warnings or Pull Requests. Resolve any false positives, then fix and commit the remaining issues. - [ ] If needed, build JS files for production using `composer build:js` and commit changes. -- [ ] Run `composer build:dir` to prepare the plugin for quality checks. -- [ ] Run a WP VIP scan with `composer check:phpcs` to ensure no warnings or errors greater than 5 exist. +- [ ] Run a code quality check with `composer check` and fix the highlighted issues. - [ ] Update the language files with `composer gen:lang` and note this in the changelog. - [ ] For minor and patch releases, maintain backward compatibility (e.g., renamed or moved classes, namespaces, functions). Include deprecation comments and note this in the changelog. Major releases may remove deprecated code; always note this in the changelog. - [ ] Update the changelog in `/CHANGELOG.md` with a user-friendly description and correct release date. diff --git a/CHANGELOG.md b/CHANGELOG.md index d8915176f..ca6cb0d86 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,26 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). +## [3.4.4] - 21 Aug, 2024 + +### Fixed + +- Improve notice message when scheduled action runs after pressing "run" (PR #896). +- Fixed support for the Event Espresso plugin (PR #900). +- Fixed React warning about createRoot being deprecated. +- Fixed empty fieldset displayed when the bos is disabled for the post type (Issue #792). +- Update language files. + +### Changed + +- Add tabs for post types in the post types settings page (PR #895). + +### Added + +- Added computed date preview to the general settings page (PR #897). +- Added option to hide the calendar by default in the future action panel (PR #899). +- Added new filter `publishpressfuture_posts_future_action_column_output` to the Future Action column. + ## [3.4.3] - 06 Aug, 2024 ### Changed diff --git a/assets/css/edit.css b/assets/css/edit.css index d510e52c1..e39326c36 100644 --- a/assets/css/edit.css +++ b/assets/css/edit.css @@ -153,3 +153,16 @@ body.branch-6-6.edit-php .components-checkbox-control__input-container { padding-top: 9px; line-height: 2.2em; } + +/* Fix style on Event Espresso plugin */ +body.espresso-admin #publishpress-future-classic-editor .components-checkbox-control__input-container svg, +body.espresso-admin #publishpress-future-classic-editor .components-input-control__suffix +{ + visibility: hidden; +} + +body.espresso-admin #publishpress-future-classic-editor .components-input-control__container .components-input-control__input { + border: 0; + min-width: 30px; + padding: 0 4px; +} diff --git a/assets/js/block-editor.js b/assets/js/block-editor.js index 4a11164e0..9649651f0 100644 --- a/assets/js/block-editor.js +++ b/assets/js/block-editor.js @@ -1,2 +1,2 @@ -(()=>{"use strict";var e={442:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ButtonsPanel=function(e){return React.createElement("div",null,e.children)}},311:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CheckboxControl=void 0;var a=n(386),r=n(214);t.CheckboxControl=function(e){var t,n=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,a.useState)(e.checked||!1),2),o=n[0],i=n[1];return t=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description),React.createElement(a.Fragment,null,React.createElement(r.CheckboxControl,{label:e.label,name:e.name,id:e.name,className:e.className,checked:o||!1,onChange:function(t){i(t),e.onChange&&e.onChange(t)}}),t)}},620:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DateTimePicker=void 0;var a=n(39),r=n(214);t.DateTimePicker=function(e){var t=e.currentDate,n=e.onChange,o=e.is12Hour,i=e.startOfWeek;return"number"==typeof t&&(t=(0,a.normalizeUnixTimeToMilliseconds)(t)),React.createElement(r.DateTimePicker,{currentDate:t,onChange:n,__nextRemoveHelpButton:!0,is12Hour:o,startOfWeek:i})}},418:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanel=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},o=n(409),i=n(873),l=n(986),u=n(214),c=n(61),s=n(625),m=wp.components,d=m.PanelRow,f=m.CheckboxControl,p=m.SelectControl,y=m.FormTokenField,g=m.Spinner,b=m.BaseControl,v=wp.element,E=v.Fragment,S=v.useEffect,h=v.useState,_=wp.htmlEntities.decodeEntities,T=wp.url.addQueryArgs,x=wp.data,N=x.useSelect,R=x.useDispatch,A=wp.apiFetch;t.FutureActionPanel=function(e){var t=N((function(t){return t(e.storeName).getAction()}),[]),n=N((function(t){return t(e.storeName).getDate()}),[]),m=N((function(t){return t(e.storeName).getEnabled()}),[]),v=N((function(t){return t(e.storeName).getTerms()}),[]),x=N((function(t){return t(e.storeName).getTaxonomy()}),[]),C=N((function(t){return t(e.storeName).getTaxonomyName()}),[]),P=N((function(t){return t(e.storeName).getTermsListByName()}),[]),w=N((function(t){return t(e.storeName).getTermsListById()}),[]),O=N((function(t){return t(e.storeName).getIsFetchingTerms()}),[]),D=N((function(t){return t(e.storeName).getCalendarIsVisible()}),[]),F=N((function(t){return t(e.storeName).getHasValidData()}),[]),k=N((function(t){return t(e.storeName).getNewStatus()}),[]),I=h(""),j=r(I,2),B=j[0],M=j[1],L=R(e.storeName),V=L.setAction,H=L.setDate,W=L.setEnabled,U=L.setTerms,Q=L.setTaxonomy,Y=L.setTermsListByName,q=L.setTermsListById,X=L.setTaxonomyName,z=L.setIsFetchingTerms,G=L.setCalendarIsVisible,J=L.setHasValidData,K=L.setNewStatus,Z=function(e){P[e]={id:e,count:0,description:"",link:"",name:e,slug:e,taxonomy:x},w[e]=e,Y(P),q(w),U([].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0&&w&&(ae=(0,o.compact)(function(e){return"object"!==(void 0===e?"undefined":a(e))||null===e?{}:e.map((function(e){return w[e]}))}(v)),"string"==typeof ae&&(ae=[]));var re=[];"object"===(void 0===P?"undefined":a(P))&&null!==P&&(re=Object.keys(P));var oe,ie=D?"future-action-panel":"future-action-panel hidden-calendar",le=D?"future-action-panel-content":"future-action-panel-content hidden-calendar",ue=D?"future-action-date-panel":"future-action-date-panel hidden-calendar";oe="inherited"===e.timeFormat?!e.is12Hour:"24h"===e.timeFormat;var ce=e.actionsSelectOptions;e.taxonomy||(ce=e.actionsSelectOptions.filter((function(e){return-1===["category","category-add","category-remove","category-remove-all"].indexOf(e.value)})));var se=function(e,t,n){var a=e.split("{"),o=[];o.push(a.shift());var i=!0,l=!1,u=void 0;try{for(var c,s=a[Symbol.iterator]();!(i=(c=s.next()).done);i=!0){var m=c.value.split("}"),d=r(m,2),f=d[0],p=d[1];o.push(React.createElement("a",{href:t,target:"_blank",key:t},f)),o.push(p)}}catch(e){l=!0,u=e}finally{try{!i&&s.return&&s.return()}finally{if(l)throw u}}return o}(e.strings.timezoneSettingsHelp,"/wp-admin/options-general.php#timezone_string"),me=String(t).includes("category")&&"category-remove-all"!==t,de=C;switch(t){case"category":de=e.strings.newTerms.replace("%s",C);break;case"category-remove":de=e.strings.removeTerms.replace("%s",C);break;case"category-add":de=e.strings.addTerms.replace("%s",C)}return S((function(){if(!m)return J(!0),void M("");J(function(){var a=!0;if(!m)return M(""),!0;t||(M(e.strings.errorActionRequired),a=!1),n||(M(e.strings.errorDateRequired),a=!1),n&&new Date(n){Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelAfterActionField=void 0;var a=Object.assign||function(e){for(var t=1;t{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelBlockEditor=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(57);t.FutureActionPanelBlockEditor=function(e){var t=wp.editPost.PluginDocumentSettingPanel,n=wp.data,o=n.useDispatch,i=n.select,l=o("core/editor").editPost,u=i("core/editor").getEditedPostAttribute("publishpress_future_action"),c=o("core/editor"),s=c.lockPostSaving,m=c.unlockPostSaving;return React.createElement(t,{name:"publishpress-future-action-panel",title:e.strings.panelTitle,initialOpen:e.postTypeDefaultConfig.autoEnable,className:"post-expirator-panel"},React.createElement("div",{id:"publishpress-future-block-editor"},React.createElement(r.FutureActionPanel,{context:"block-editor",postType:e.postType,isCleanNewPost:e.isCleanNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:u.enabled,calendarIsVisible:!0,action:u.action,newStatus:u.newStatus,date:u.date,terms:u.terms,taxonomy:u.taxonomy,taxonomyName:e.taxonomyName,onChangeData:function(t,n){var r=i(e.storeName),o={enabled:r.getEnabled()};o.enabled&&(o.action=r.getAction(),o.newStatus=r.getNewStatus(),o.date=r.getDate(),o.terms=r.getTerms(),o.taxonomy=r.getTaxonomy(),o.extraData=r.getExtraData()),function(e){var t={publishpress_future_action:{}},n=!0,r=!1,o=void 0;try{for(var i,u=Object.entries(e)[Symbol.iterator]();!(n=(i=u.next()).done);n=!0){var c=i.value,s=a(c,2),m=s[0],d=s[1];t.publishpress_future_action[m]=d}}catch(e){r=!0,o=e}finally{try{!n&&u.return&&u.return()}finally{if(r)throw o}}l(t)}(o)},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){m("future-action")},onDataIsInvalid:function(){s("future-action")}})))}},94:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelBulkEdit=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(57),o=n(409);t.FutureActionPanelBulkEdit=function(e){var t=wp.data,n=t.useSelect,i=t.useDispatch,l=t.select,u=wp.element.useEffect,c=n((function(t){return t(e.storeName).getDate()}),[]),s=n((function(t){return t(e.storeName).getEnabled()}),[]),m=n((function(t){return t(e.storeName).getAction()}),[]),d=n((function(t){return t(e.storeName).getNewStatus()}),[]),f=n((function(t){return t(e.storeName).getTerms()}),[]),p=n((function(t){return t(e.storeName).getTaxonomy()}),[]),y=n((function(t){return t(e.storeName).getChangeAction()}),[]),g=n((function(t){return t(e.storeName).getHasValidData()}),[]),b=i(e.storeName).setChangeAction,v=f;"object"===(void 0===f?"undefined":a(f))&&(v=f.join(","));var E=[{value:"no-change",label:e.strings.noChange},{value:"change-add",label:e.strings.changeAdd},{value:"add-only",label:e.strings.addOnly},{value:"change-only",label:e.strings.changeOnly},{value:"remove-only",label:e.strings.removeOnly}];return u((function(){g||"no-change"===y?jQuery("#bulk_edit").prop("disabled",!1):jQuery("#bulk_edit").prop("disabled",!0)}),[g,y]),React.createElement("div",{className:"post-expirator-panel"},React.createElement(r.SelectControl,{label:e.strings.futureActionUpdate,name:"future_action_bulk_change_action",value:y,options:E,onChange:function(e){b(e)}}),["change-add","add-only","change-only"].includes(y)&&React.createElement(r.FutureActionPanel,{context:"bulk-edit",autoEnableAndHideCheckbox:!0,postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:!0,calendarIsVisible:!1,action:m,newStatus:d,date:c,terms:f,taxonomy:p,taxonomyName:e.taxonomyName,onChangeData:function(t,n){(0,o.getElementByName)("future_action_bulk_enabled").value=l(e.storeName).getEnabled()?1:0,(0,o.getElementByName)("future_action_bulk_action").value=l(e.storeName).getAction(),(0,o.getElementByName)("future_action_bulk_new_status").value=l(e.storeName).getNewStatus(),(0,o.getElementByName)("future_action_bulk_date").value=l(e.storeName).getDate(),(0,o.getElementByName)("future_action_bulk_terms").value=l(e.storeName).getTerms().join(","),(0,o.getElementByName)("future_action_bulk_taxonomy").value=l(e.storeName).getTaxonomy()},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings}),React.createElement("input",{type:"hidden",name:"future_action_bulk_enabled",value:s?1:0}),React.createElement("input",{type:"hidden",name:"future_action_bulk_action",value:m}),React.createElement("input",{type:"hidden",name:"future_action_bulk_new_status",value:d}),React.createElement("input",{type:"hidden",name:"future_action_bulk_date",value:c}),React.createElement("input",{type:"hidden",name:"future_action_bulk_terms",value:v}),React.createElement("input",{type:"hidden",name:"future_action_bulk_taxonomy",value:p}),React.createElement("input",{type:"hidden",name:"future_action_bulk_view",value:"bulk-edit"}),React.createElement("input",{type:"hidden",name:"_future_action_nonce",value:e.nonce}))}},571:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelClassicEditor=void 0;var a=n(57),r=n(562);n(386),t.FutureActionPanelClassicEditor=function(e){(new Date).getTimezoneOffset();var t=function(e){return document.getElementsByName(e)[0]},n=function(e){var n=t(e);return n?n.value:""},o={enabled:"1"===n("future_action_enabled"),action:n("future_action_action"),newStatus:n("future_action_new_status"),date:n("future_action_date"),terms:function(e){var n=t("future_action_terms");if(!n)return[];var a=n.value.split(",");return 1===a.length&&""===a[0]&&(a=[]),a.map((function(e){return parseInt(e)}))}(),taxonomy:n("future_action_taxonomy")};return React.createElement("div",{className:"post-expirator-panel"},React.createElement(a.FutureActionPanel,{context:"classic-editor",postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:o.enabled,calendarIsVisible:!0,action:o.action,newStatus:o.newStatus,date:o.date,terms:o.terms,taxonomy:o.taxonomy,taxonomyName:e.taxonomyName,onChangeData:function(n,a){var o=(0,r.select)(e.storeName);t("future_action_enabled").value=o.getEnabled()?1:0,t("future_action_action").value=o.getAction(),t("future_action_new_status").value=o.getNewStatus(),t("future_action_date").value=o.getDate(),t("future_action_terms").value=o.getTerms().join(","),t("future_action_taxonomy").value=o.getTaxonomy()},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){jQuery("#publish").prop("disabled",!1)},onDataIsInvalid:function(){jQuery("#publish").prop("disabled",!0)}}))}},437:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelQuickEdit=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(57),o=n(562);n(386),t.FutureActionPanelQuickEdit=function(e){var t=(0,o.useSelect)((function(t){return t(e.storeName).getDate()}),[]),n=(0,o.useSelect)((function(t){return t(e.storeName).getEnabled()}),[]),i=(0,o.useSelect)((function(t){return t(e.storeName).getAction()}),[]),l=(0,o.useSelect)((function(t){return t(e.storeName).getTerms()}),[]),u=(0,o.useSelect)((function(t){return t(e.storeName).getTaxonomy()}),[]),c=((0,o.useSelect)((function(t){return t(e.storeName).getHasValidData()}),[]),(0,o.useSelect)((function(t){return t(e.storeName).getNewStatus()}),[])),s=l;return"object"===(void 0===l?"undefined":a(l))&&(s=l.join(",")),React.createElement("div",{className:"post-expirator-panel"},React.createElement(r.FutureActionPanel,{context:"quick-edit",postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:n,calendarIsVisible:!1,action:i,newStatus:c,date:t,terms:l,taxonomy:u,taxonomyName:e.taxonomyName,onChangeData:function(e,t){},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){jQuery(".button-primary.save").prop("disabled",!1)},onDataIsInvalid:function(){jQuery(".button-primary.save").prop("disabled",!0)}}),React.createElement("input",{type:"hidden",name:"future_action_enabled",value:n?1:0}),React.createElement("input",{type:"hidden",name:"future_action_action",value:i||""}),React.createElement("input",{type:"hidden",name:"future_action_new_status",value:c||""}),React.createElement("input",{type:"hidden",name:"future_action_date",value:t||""}),React.createElement("input",{type:"hidden",name:"future_action_terms",value:s||""}),React.createElement("input",{type:"hidden",name:"future_action_taxonomy",value:u||""}),React.createElement("input",{type:"hidden",name:"future_action_view",value:"quick-edit"}),React.createElement("input",{type:"hidden",name:"_future_action_nonce",value:e.nonce}))}},625:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelTop=void 0;var a=Object.assign||function(e){for(var t=1;t{Object.defineProperty(t,"__esModule",{value:!0}),t.NonceControl=void 0;var a=n(386);t.NonceControl=function(e){return e.name||(e.name="_wpnonce"),e.referrer||(e.referrer=!0),React.createElement(a.Fragment,null,React.createElement("input",{type:"hidden",name:e.name,id:e.name,value:e.nonce}),e.referrer&&React.createElement("input",{type:"hidden",name:"_wp_http_referer",value:e.referrer}))}},239:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PostTypeSettingsPanel=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(57),o=n(386),i=n(11),l=n(566),u=n(244),c=wp.components,s=c.PanelRow;c.BaseControl,t.PostTypeSettingsPanel=function(e){var t=e.expireTypeList[e.postType],n=(0,o.useState)(e.settings.taxonomy),c=a(n,2),m=c[0],d=c[1],f=(0,o.useState)([]),p=a(f,2),y=p[0],g=p[1],b=(0,o.useState)(!1),v=a(b,2),E=v[0],S=v[1],h=(0,o.useState)([]),_=a(h,2),T=_[0],x=_[1],N=(0,o.useState)(e.settings.howToExpire),R=a(N,2),A=R[0],C=R[1],P=(0,o.useState)(e.settings.active),w=a(P,2),O=w[0],D=w[1],F=(0,o.useState)(e.settings.defaultExpireOffset),k=a(F,2),I=k[0],j=k[1],B=(0,o.useState)(e.settings.emailNotification),M=a(B,2),L=M[0],V=M[1],H=(0,o.useState)(e.settings.autoEnabled),W=a(H,2),U=W[0],Q=W[1],Y=(0,o.useState)(!1),q=a(Y,2),X=q[0],z=q[1],G=(0,o.useState)(""),J=a(G,2),K=J[0],Z=J[1],$=(0,o.useState)(""),ee=a($,2),te=ee[0],ne=ee[1],ae=(0,o.useState)(t),re=a(ae,2),oe=re[0],ie=re[1],le=(0,o.useState)(e.settings.newStatus),ue=a(le,2),ce=ue[0],se=ue[1],me=(0,o.useState)(!1),de=a(me,2),fe=de[0],pe=de[1],ye=(0,o.useState)(""),ge=a(ye,2),be=ge[0],ve=ge[1],Ee=(0,o.useState)(),Se=a(Ee,2),he=Se[0],_e=Se[1],Te=(0,o.useRef)(new AbortController),xe=["category","category-add","category-remove","category-remove-all"];(0,o.useEffect)((function(){var t;0===e.taxonomiesList.length&&(t=oe.filter((function(e){return-1===xe.indexOf(e.value)})),ie(t))}),[]),(0,o.useEffect)((function(){m&&e.taxonomiesList&&(S(!0),(0,u.apiFetch)({path:(0,i.addQueryArgs)("publishpress-future/v1/terms/"+m)}).then((function(t){var n=[],a=null,r=void 0;t.terms.forEach((function(t){r={value:t.id,label:t.name},n.push(r),m===e.settings.taxonomy&&e.settings.terms.includes(t.id)&&(null===a&&(a=[]),a.push(r.label))})),g(n),x(a),S(!1)})),e.taxonomiesList.forEach((function(e){e.value===m&&ne(e.label)})))}),[m]),(0,o.useEffect)((function(){z(function(){if(!O)return Z(""),!0;var t=I||e.settings.globalDefaultExpireOffset;if(t){var n=Te.current;n&&n.abort(),Te.current=new AbortController;var a=Te.current.signal;pe(!0),(0,u.apiFetch)({path:(0,i.addQueryArgs)("publishpress-future/v1/settings/validate-expire-offset"),method:"POST",data:{offset:t},signal:a}).then((function(e){pe(!1),z(e.isValid),Z(e.message),e.isValid?(ve(e.preview),_e(e.currentTime)):ve("")})).catch((function(e){"AbortError"!==e.name&&(pe(!1),z(!1),Z(e.message),ve(""))}))}return Z(""),!0}())}),[O,I]),(0,o.useEffect)((function(){if(te){var e=[];t.forEach((function(t){var n=t.label;-1!==xe.indexOf(t.value)&&(n=n.replace("%s",te.toLowerCase())),e.push({value:t.value,label:n})})),ie(e)}}),[te]),(0,o.useEffect)((function(){X&&e.onDataIsValid&&e.onDataIsValid(e.postType),!X&&e.onDataIsInvalid&&e.onDataIsInvalid(e.postType)}),[X]),(0,o.useEffect)((function(){fe&&e.onValidationStarted&&e.onValidationStarted(e.postType),!fe&&e.onValidationFinished&&e.onValidationFinished(e.postType)}),[fe]);var Ne=y.map((function(e){return e.label})),Re=[React.createElement(r.SettingRow,{label:e.text.fieldActive,key:"expirationdate_activemeta-"+e.postType},React.createElement(r.CheckboxControl,{name:"expirationdate_activemeta-"+e.postType,checked:O||!1,label:e.text.fieldActiveLabel,onChange:function(e){D(e)}}))];return O&&(Re.push(React.createElement(r.SettingRow,{label:e.text.fieldAutoEnable,key:"expirationdate_autoenable-"+e.postType},React.createElement(r.CheckboxControl,{name:"expirationdate_autoenable-"+e.postType,checked:U||!1,label:e.text.fieldAutoEnableLabel,onChange:function(e){Q(e)}}))),Re.push(React.createElement(r.SettingRow,{label:e.text.fieldTaxonomy,key:"expirationdate_taxonomy-"+e.postType},React.createElement(r.SelectControl,{name:"expirationdate_taxonomy-"+e.postType,options:e.taxonomiesList,selected:m,noItemFoundMessage:e.text.noItemsfound,description:e.text.fieldTaxonomyDescription,data:e.postType,onChange:function(e){d(e)}}))),Re.push(React.createElement(r.SettingRow,{label:e.text.fieldHowToExpire,key:"expirationdate_expiretype-"+e.postType},React.createElement(r.SelectControl,{name:"expirationdate_expiretype-"+e.postType,className:"pe-howtoexpire",options:oe,description:e.text.fieldHowToExpireDescription,selected:A,onChange:function(e){C(e)}}),"change-status"===A&&React.createElement(r.SelectControl,{name:"expirationdate_newstatus-"+e.postType,options:e.statusesList,selected:ce,onChange:se}),e.taxonomiesList.length>0&&["category","category-add","category-remove"].indexOf(A)>-1&&React.createElement(r.TokensControl,{label:e.text.fieldTerm,name:"expirationdate_terms-"+e.postType,options:Ne,value:T,isLoading:E,onChange:function(e){x(e)},description:e.text.fieldTermDescription,maxSuggestions:1e3,expandOnFocus:!0,autoSelectFirstMatch:!0}))),Re.push(React.createElement(r.SettingRow,{label:e.text.fieldDefaultDateTimeOffset,key:"expired-custom-date-"+e.postType},React.createElement(r.TextControl,{name:"expired-custom-date-"+e.postType,value:I,loading:fe,placeholder:e.settings.globalDefaultExpireOffset,description:e.text.fieldDefaultDateTimeOffsetDescription,unescapedDescription:!0,onChange:function(e){j(e)}}),be&&React.createElement(o.Fragment,null,React.createElement("h4",null,e.text.datePreview),React.createElement("div",null,React.createElement("div",null,React.createElement("span",null,e.text.datePreviewCurrent,": "),React.createElement("span",null,React.createElement("code",null,he))),React.createElement("div",null,React.createElement("span",null,e.text.datePreviewComputed,": "),React.createElement("span",null,React.createElement("code",null,be))))))),Re.push(React.createElement(r.SettingRow,{label:e.text.fieldWhoToNotify,key:"expirationdate_emailnotification-"+e.postType},React.createElement(r.TextControl,{name:"expirationdate_emailnotification-"+e.postType,className:"large-text",value:L,description:e.text.fieldWhoToNotifyDescription,onChange:function(e){V(e)}})))),Re=(0,l.applyFilters)("expirationdate_settings_posttype",Re,e,O,o.useState),React.createElement(r.SettingsFieldset,{legend:e.legend},React.createElement(r.SettingsTable,{bodyChildren:Re}),!X&&React.createElement(s,null,React.createElement("div",{className:"publishpress-future-notice publishpress-future-notice-error"},React.createElement("strong",null,e.text.error,":")," ",K)))}},138:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PostTypesSettingsPanels=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(57);t.PostTypesSettingsPanels=function(e){var t=[],n=!0,o=!1,i=void 0;try{for(var l,u=Object.entries(e.settings)[Symbol.iterator]();!(n=(l=u.next()).done);n=!0){var c=l.value,s=a(c,2),m=s[0],d=s[1];t.push(React.createElement(r.PostTypeSettingsPanel,{legend:d.label,text:e.text,postType:m,settings:d,expireTypeList:e.expireTypeList,taxonomiesList:e.taxonomiesList[m],statusesList:e.statusesList[m],key:m+"-panel",onDataIsValid:e.onDataIsValid,onDataIsInvalid:e.onDataIsInvalid,onValidationStarted:e.onValidationStarted,onValidationFinished:e.onValidationFinished}))}}catch(e){o=!0,i=e}finally{try{!n&&u.return&&u.return()}finally{if(o)throw i}}return t}},858:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SelectControl=void 0;var a=n(386),r=n(214);t.SelectControl=function(e){return React.createElement(a.Fragment,null,0===e.options.length&&React.createElement("div",null,e.noItemFoundMessage),e.options.length>0&&React.createElement(r.SelectControl,{label:e.label,name:e.name,id:e.name,className:e.className,value:e.selected,onChange:function(t){e.onChange(t)},"data-data":e.data,options:e.options}),e.children,React.createElement("p",{className:"description"},e.description))}},5:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingRow=void 0,n(386),t.SettingRow=function(e){return React.createElement("tr",{valign:"top"},React.createElement("th",{scope:"row"},React.createElement("label",{htmlFor:""},e.label)),React.createElement("td",null,e.children))}},786:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsFieldset=function(e){return React.createElement("fieldset",null,React.createElement("legend",null,e.legend),e.children)}},892:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsForm=function(e){return React.createElement("form",{method:"post"},e.children)}},681:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsSection=void 0;var a=n(386);t.SettingsSection=function(e){return React.createElement(a.Fragment,null,React.createElement("h2",null,e.title),React.createElement("p",null,e.description),e.children)}},772:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsTable=function(e){return React.createElement("table",{className:"form-table"},React.createElement("tbody",null,e.bodyChildren))}},242:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Spinner=function(e){return React.createElement("span",{className:"publishpress-future-spinner"},React.createElement("div",null),React.createElement("div",null),React.createElement("div",null),React.createElement("div",null))}},438:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SubmitButton=function(e){return React.createElement("input",{type:"submit",name:e.name,value:e.text,disabled:e.disabled,className:"button-primary"})}},301:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TextControl=void 0;var a=n(386),r=n(214),o=n(57);t.TextControl=function(e){var t;t=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description);var n=e.className?e.className:"";return e.loading&&(n+=" publishpress-future-loading publishpress-future-loading-input"),React.createElement(a.Fragment,null,React.createElement("div",{className:n},React.createElement(r.TextControl,{type:"text",label:e.label,name:e.name,id:e.name,className:e.className,value:e.value,placeholder:e.placeholder,onChange:function(t){e.onChange&&e.onChange(t)}}),e.loading&&React.createElement(o.Spinner,null),t))}},190:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ToggleArrowButton=void 0;var a=n(214);t.ToggleArrowButton=function(e){var t=e.iconExpanded?e.iconExpanded:"arrow-up-alt2",n=e.iconCollapsed?e.iconCollapsed:"arrow-down-alt2",r=e.isExpanded?t:n,o=e.isExpanded?e.titleExpanded:e.titleCollapsed;return React.createElement(a.Button,{isSmall:!0,title:o,icon:r,onClick:function(){e.onClick&&e.onClick()},className:e.className})}},873:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ToggleCalendarDatePicker=void 0;var a=n(190),r=n(620),o=n(386);t.ToggleCalendarDatePicker=function(e){var t=e.isExpanded,n=e.strings,i=e.onToggleCalendar,l=e.currentDate,u=e.onChangeDate,c=e.is12Hour,s=e.startOfWeek;return(0,o.useEffect)((function(){var e=document.querySelector(".future-action-calendar-toggle");if(e){var t=e.nextElementSibling;if(t){var n=t.querySelector(".components-datetime__time");if(n){var a=n.nextSibling;a&&t.insertBefore(e,a)}}}})),React.createElement(o.Fragment,null,React.createElement(a.ToggleArrowButton,{className:"future-action-calendar-toggle",isExpanded:t,iconExpanded:"arrow-up-alt2",iconCollapsed:"calendar",titleExpanded:n.hideCalendar,titleCollapsed:n.showCalendar,onClick:i}),React.createElement(r.DateTimePicker,{currentDate:l,onChange:u,__nextRemoveHelpButton:!0,is12Hour:c,startOfWeek:s}))}},948:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TokensControl=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(386),o=n(214);t.TokensControl=function(e){var t=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,r.useState)(""),2),n=t[0],i=t[1];(0,r.useEffect)((function(){e.value&&i(e.value.join(","))}),[e.value]);var l=void 0;e.description&&(l=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description));var u=e.value?e.value:[];return React.createElement(r.Fragment,null,React.createElement(o.FormTokenField,{label:e.label,value:u,suggestions:e.options,onChange:function(t){e.onChange&&e.onChange(t),"object"===(void 0===t?"undefined":a(t))?i(t.join(",")):i("")},maxSuggestions:e.maxSuggestions,className:"publishpres-future-token-field",__experimentalExpandOnFocus:e.expandOnFocus,__experimentalAutoSelectFirstMatch:e.autoSelectFirstMatch}),React.createElement("input",{type:"hidden",name:e.name,value:n}),l)}},225:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TrueFalseControl=function(e){var t=wp.element.Fragment,n=function(t){e.onChange&&e.onChange(t.target.value===e.trueValue&&jQuery(t.target).is(":checked"))};return React.createElement(t,null,React.createElement("input",{type:"radio",name:e.name,id:e.name+"-true",value:e.trueValue,defaultChecked:e.selected,onChange:n}),React.createElement("label",{htmlFor:e.name+"-true"},e.trueLabel),"  ",React.createElement("input",{type:"radio",name:e.name,defaultChecked:!e.selected,id:e.name+"-false",value:e.falseValue,onChange:n}),React.createElement("label",{htmlFor:e.name+"-false"},e.falseLabel),React.createElement("p",{className:"description"},e.description))}},57:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var a=n(442);Object.defineProperty(t,"ButtonsPanel",{enumerable:!0,get:function(){return a.ButtonsPanel}});var r=n(418);Object.defineProperty(t,"FutureActionPanel",{enumerable:!0,get:function(){return r.FutureActionPanel}});var o=n(864);Object.defineProperty(t,"FutureActionPanelBlockEditor",{enumerable:!0,get:function(){return o.FutureActionPanelBlockEditor}});var i=n(571);Object.defineProperty(t,"FutureActionPanelClassicEditor",{enumerable:!0,get:function(){return i.FutureActionPanelClassicEditor}});var l=n(437);Object.defineProperty(t,"FutureActionPanelQuickEdit",{enumerable:!0,get:function(){return l.FutureActionPanelQuickEdit}});var u=n(94);Object.defineProperty(t,"FutureActionPanelBulkEdit",{enumerable:!0,get:function(){return u.FutureActionPanelBulkEdit}});var c=n(239);Object.defineProperty(t,"PostTypeSettingsPanel",{enumerable:!0,get:function(){return c.PostTypeSettingsPanel}});var s=n(138);Object.defineProperty(t,"PostTypesSettingsPanels",{enumerable:!0,get:function(){return s.PostTypesSettingsPanels}});var m=n(5);Object.defineProperty(t,"SettingRow",{enumerable:!0,get:function(){return m.SettingRow}});var d=n(786);Object.defineProperty(t,"SettingsFieldset",{enumerable:!0,get:function(){return d.SettingsFieldset}});var f=n(892);Object.defineProperty(t,"SettingsForm",{enumerable:!0,get:function(){return f.SettingsForm}});var p=n(681);Object.defineProperty(t,"SettingsSection",{enumerable:!0,get:function(){return p.SettingsSection}});var y=n(772);Object.defineProperty(t,"SettingsTable",{enumerable:!0,get:function(){return y.SettingsTable}});var g=n(438);Object.defineProperty(t,"SubmitButton",{enumerable:!0,get:function(){return g.SubmitButton}});var b=n(311);Object.defineProperty(t,"CheckboxControl",{enumerable:!0,get:function(){return b.CheckboxControl}});var v=n(858);Object.defineProperty(t,"SelectControl",{enumerable:!0,get:function(){return v.SelectControl}});var E=n(301);Object.defineProperty(t,"TextControl",{enumerable:!0,get:function(){return E.TextControl}});var S=n(948);Object.defineProperty(t,"TokensControl",{enumerable:!0,get:function(){return S.TokensControl}});var h=n(13);Object.defineProperty(t,"NonceControl",{enumerable:!0,get:function(){return h.NonceControl}});var _=n(225);Object.defineProperty(t,"TrueFalseControl",{enumerable:!0,get:function(){return _.TrueFalseControl}});var T=n(242);Object.defineProperty(t,"Spinner",{enumerable:!0,get:function(){return T.Spinner}})},480:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createStore=void 0;var a=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:t,u=arguments[1];switch(u.type){case"SET_ACTION":return a({},l,{action:u.action});case"SET_NEW_STATUS":return a({},l,{newStatus:u.newStatus});case"SET_DATE":return"number"!=typeof u.date&&(0,o.isNumber)(u.date)&&(u.date=parseInt(u.date)),"string"==typeof u.date&&(u.date=new Date(u.date).getTime()),u.date=(0,r.normalizeUnixTimeToSeconds)(u.date),u.date=(0,r.formatUnixTimeToTimestamp)(u.date),a({},l,{date:u.date});case"SET_ENABLED":return a({},l,{enabled:u.enabled});case"SET_TERMS":return a({},l,{terms:u.terms});case"SET_TAXONOMY":return a({},l,{taxonomy:u.taxonomy});case"SET_TERMS_LIST_BY_NAME":return a({},l,{termsListByName:u.termsListByName});case"SET_TERMS_LIST_BY_ID":return a({},l,{termsListById:u.termsListById});case"SET_TAXONOMY_NAME":return a({},l,{taxonomyName:u.taxonomyName});case"SET_CHANGE_ACTION":return a({},l,{changeAction:u.changeAction});case"SET_CALENDAR_IS_VISIBLE":return a({},l,{calendarIsVisible:u.calendarIsVisible});case"SET_HAS_VALID_DATA":return a({},l,{hasValidData:u.hasValidData});case"SET_EXTRA_DATA":return a({},l,{extraData:a({},u.extraData)});case"SET_EXTRA_DATA_BY_NAME":var c=a({},l.extraData,(e={},n=u.name,i=u.value,n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i,e));return a({},l,{extraData:a({},c)})}return l},actions:{setAction:function(e){return{type:"SET_ACTION",action:e}},setNewStatus:function(e){return{type:"SET_NEW_STATUS",newStatus:e}},setDate:function(e){return{type:"SET_DATE",date:e}},setEnabled:function(e){return{type:"SET_ENABLED",enabled:e}},setTerms:function(e){return{type:"SET_TERMS",terms:e}},setTaxonomy:function(e){return{type:"SET_TAXONOMY",taxonomy:e}},setTermsListByName:function(e){return{type:"SET_TERMS_LIST_BY_NAME",termsListByName:e}},setTermsListById:function(e){return{type:"SET_TERMS_LIST_BY_ID",termsListById:e}},setTaxonomyName:function(e){return{type:"SET_TAXONOMY_NAME",taxonomyName:e}},setIsFetchingTerms:function(e){return{type:"SET_IS_FETCHING_TERMS",isFetchingTerms:e}},setChangeAction:function(e){return{type:"SET_CHANGE_ACTION",changeAction:e}},setCalendarIsVisible:function(e){return{type:"SET_CALENDAR_IS_VISIBLE",calendarIsVisible:e}},setHasValidData:function(e){return{type:"SET_HAS_VALID_DATA",hasValidData:e}},setExtraData:function(e){return{type:"SET_EXTRA_DATA",extraData:e}},setExtraDataByName:function(e,t){return{type:"SET_EXTRA_DATA_BY_NAME",name:e,value:t}}},selectors:{getAction:function(e){return e.action},getNewStatus:function(e){return e.newStatus},getDate:function(e){return e.date},getEnabled:function(e){return e.enabled},getTerms:function(e){return e.terms},getTaxonomy:function(e){return e.taxonomy},getTermsListByName:function(e){return e.termsListByName},getTermsListById:function(e){return e.termsListById},getTaxonomyName:function(e){return e.taxonomyName},getIsFetchingTerms:function(e){return e.isFetchingTerms},getChangeAction:function(e){return e.changeAction},getCalendarIsVisible:function(e){return e.calendarIsVisible},getHasValidData:function(e){return e.hasValidData},getExtraData:function(e){return e.extraData},getExtraDataByName:function(e,t){return e.extraData[t]||null}}});return(0,i.register)(n),n}},39:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n=t.getCurrentTimeInSeconds=function(){return o((new Date).getTime())},a=(t.getCurrentTimeAsTimestamp=function(){return a(n())},t.formatUnixTimeToTimestamp=function(e){var t=new Date(o(e));return t.getFullYear()+"-"+("0"+(t.getMonth()+1)).slice(-2)+"-"+("0"+t.getDate()).slice(-2)+" "+("0"+t.getHours()).slice(-2)+":"+("0"+t.getMinutes()).slice(-2)+":"+("0"+t.getSeconds()).slice(-2)}),r=(t.formatTimestampToUnixTime=function(e){var t=new Date(e);return o(t.getTime())},t.timeIsInSeconds=function(e){return parseInt(e).toString().length<=10}),o=t.normalizeUnixTimeToSeconds=function(e){return e=parseInt(e),r()?e:e/1e3};t.normalizeUnixTimeToMilliseconds=function(e){return e=parseInt(e),r()?1e3*e:e}},409:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=(t.compact=function(e){return e?(Array.isArray(e)||"object"!==(void 0===e?"undefined":n(e))||(e=Object.values(e)),e.filter((function(e){return null!=e&&""!==e}))):[]},t.debugLogFactory=function(e){return function(t){for(var n=arguments.length,a=Array(n>1?n-1:0),r=1;r{e.exports=publishpressFutureBlockEditorConfig},244:e=>{e.exports=wp},214:e=>{e.exports=wp.components},562:e=>{e.exports=wp.data},386:e=>{e.exports=wp.element},566:e=>{e.exports=wp.hooks},986:e=>{e.exports=wp.plugins},11:e=>{e.exports=wp.url}},t={};function n(a){var r=t[a];if(void 0!==r)return r.exports;var o=t[a]={exports:{}};return e[a](o,o.exports,n),o.exports}var a=n(480),r=n(57),o=n(562),i=n(986),l=n(788),u="publishpress-future/future-action";(0,a.createStore)({name:u,defaultState:{autoEnable:l.postTypeDefaultConfig.autoEnable,action:l.postTypeDefaultConfig.expireType,newStatus:l.postTypeDefaultConfig.newStatus,date:l.defaultDate,taxonomy:l.postTypeDefaultConfig.taxonomy,terms:l.postTypeDefaultConfig.terms}}),(0,i.registerPlugin)("publishpress-future-action",{render:function(){return React.createElement(r.FutureActionPanelBlockEditor,{postType:(0,o.select)("core/editor").getCurrentPostType(),isCleanNewPost:(0,o.select)("core/editor").isCleanNewPost(),actionsSelectOptions:l.actionsSelectOptions,statusesSelectOptions:l.statusesSelectOptions,is12Hour:l.is12Hour,timeFormat:l.timeFormat,startOfWeek:l.startOfWeek,storeName:u,strings:l.strings,taxonomyName:l.taxonomyName,postTypeDefaultConfig:l.postTypeDefaultConfig})}})})(); +(()=>{"use strict";var e={442:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ButtonsPanel=function(e){return React.createElement("div",null,e.children)}},311:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CheckboxControl=void 0;var a=n(386),r=n(214);t.CheckboxControl=function(e){var t,n=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,a.useState)(e.checked||!1),2),o=n[0],i=n[1];return t=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description),React.createElement(a.Fragment,null,React.createElement(r.CheckboxControl,{label:e.label,name:e.name,id:e.name,className:e.className,checked:o||!1,onChange:function(t){i(t),e.onChange&&e.onChange(t)}}),t)}},470:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DateOffsetPreview=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(386),o=n(11),i=n(244);n(922);var l=t.DateOffsetPreview=function(e){var t=e.offset,n=e.label,l=e.labelDatePreview,s=e.labelOffsetPreview,u=e.setValidationErrorCallback,c=e.setHasPendingValidationCallback,d=e.setHasValidDataCallback,m=e.compactView,p=void 0!==m&&m,f=(0,r.useState)(""),y=a(f,2),g=y[0],v=y[1],b=(0,r.useState)(),h=a(b,2),E=h[0],S=h[1],_=(0,r.useRef)(new AbortController);(0,r.useEffect)((function(){!function(){if(t){var e=_.current;e&&e.abort(),_.current=new AbortController;var n=_.current.signal;c(!0),(0,i.apiFetch)({path:(0,o.addQueryArgs)("publishpress-future/v1/settings/validate-expire-offset"),method:"POST",data:{offset:t},signal:n}).then((function(e){c(!1),d(e.isValid),u(e.message),e.isValid?(v(e.preview),S(e.currentTime)):v("")})).catch((function(e){"AbortError"!==e.name&&(c(!1),d(!1),u(e.message),v(""))}))}}()}),[t]);var x=p?" compact":"";return React.createElement(r.Fragment,null,t&&React.createElement("div",{className:"publishpress-future-date-preview"+x},React.createElement("h4",null,n),React.createElement("div",{className:"publishpress-future-date-preview-body"},React.createElement("div",null,React.createElement("span",{className:"publishpress-future-date-preview-label"},l,": "),React.createElement("span",{className:"publishpress-future-date-preview-value"},E)),React.createElement("div",null,React.createElement("span",{className:"publishpress-future-date-preview-label"},s,": "),React.createElement("span",{className:"publishpress-future-date-preview-value"},g)))))};t.default=l},620:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DateTimePicker=void 0;var a=n(39),r=n(214);t.DateTimePicker=function(e){var t=e.currentDate,n=e.onChange,o=e.is12Hour,i=e.startOfWeek;return"number"==typeof t&&(t=(0,a.normalizeUnixTimeToMilliseconds)(t)),React.createElement(r.DateTimePicker,{currentDate:t,onChange:n,__nextRemoveHelpButton:!0,is12Hour:o,startOfWeek:i})}},418:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanel=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},o=n(409),i=n(873),l=n(986),s=n(214),u=n(61),c=n(625),d=wp.components,m=d.PanelRow,p=d.CheckboxControl,f=d.SelectControl,y=d.FormTokenField,g=d.Spinner,v=d.BaseControl,b=wp.element,h=b.Fragment,E=b.useEffect,S=b.useState,_=wp.htmlEntities.decodeEntities,x=wp.url.addQueryArgs,T=wp.data,A=T.useSelect,N=T.useDispatch,C=wp.apiFetch;t.FutureActionPanel=function(e){var t=A((function(t){return{action:t(e.storeName).getAction(),date:t(e.storeName).getDate(),enabled:t(e.storeName).getEnabled(),terms:t(e.storeName).getTerms(),taxonomy:t(e.storeName).getTaxonomy(),taxonomyName:t(e.storeName).getTaxonomyName(),termsListByName:t(e.storeName).getTermsListByName(),termsListById:t(e.storeName).getTermsListById(),isFetchingTerms:t(e.storeName).getIsFetchingTerms(),calendarIsVisible:t(e.storeName).getCalendarIsVisible(),hasValidData:t(e.storeName).getHasValidData(),newStatus:t(e.storeName).getNewStatus()}})),n=t.action,d=t.date,b=t.enabled,T=t.terms,w=t.taxonomy,R=t.taxonomyName,P=t.termsListByName,O=t.termsListById,D=t.isFetchingTerms,I=t.calendarIsVisible,k=t.hasValidData,F=t.newStatus,B=S(""),j=r(B,2),M=j[0],V=j[1],L=N(e.storeName),H=L.setAction,U=L.setDate,W=L.setEnabled,Q=L.setTerms,Y=L.setTaxonomy,q=L.setTermsListByName,z=L.setTermsListById,X=L.setTaxonomyName,G=L.setIsFetchingTerms,J=L.setCalendarIsVisible,Z=L.setHasValidData,K=L.setNewStatus,$=function(e){P[e]={id:e,count:0,description:"",link:"",name:e,slug:e,taxonomy:w},O[e]=e,q(P),z(O),Q([].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0&&O&&(re=(0,o.compact)(function(e){return"object"!==(void 0===e?"undefined":a(e))||null===e?{}:e.map((function(e){return O[e]}))}(T)),"string"==typeof re&&(re=[]));var oe=[];"object"===(void 0===P?"undefined":a(P))&&null!==P&&(oe=Object.keys(P));var ie,le=I?"future-action-panel":"future-action-panel hidden-calendar",se=I?"future-action-panel-content":"future-action-panel-content hidden-calendar",ue=I?"future-action-date-panel":"future-action-date-panel hidden-calendar";ie="inherited"===e.timeFormat?!e.is12Hour:"24h"===e.timeFormat;var ce=e.actionsSelectOptions;e.taxonomy||(ce=e.actionsSelectOptions.filter((function(e){return-1===["category","category-add","category-remove","category-remove-all"].indexOf(e.value)})));var de=function(e,t,n){var a=e.split("{"),o=[];o.push(a.shift());var i=!0,l=!1,s=void 0;try{for(var u,c=a[Symbol.iterator]();!(i=(u=c.next()).done);i=!0){var d=u.value.split("}"),m=r(d,2),p=m[0],f=m[1];o.push(React.createElement("a",{href:t,target:"_blank",key:t},p)),o.push(f)}}catch(e){l=!0,s=e}finally{try{!i&&c.return&&c.return()}finally{if(l)throw s}}return o}(e.strings.timezoneSettingsHelp,"/wp-admin/options-general.php#timezone_string"),me=String(n).includes("category")&&"category-remove-all"!==n,pe=R;switch(n){case"category":pe=e.strings.newTerms.replace("%s",R);break;case"category-remove":pe=e.strings.removeTerms.replace("%s",R);break;case"category-add":pe=e.strings.addTerms.replace("%s",R)}return E((function(){if(!b)return Z(!0),void V("");Z(function(){var t=!0;if(!b)return V(""),!0;n||(V(e.strings.errorActionRequired),t=!1),d||(V(e.strings.errorDateRequired),t=!1),d&&new Date(d){Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelAfterActionField=void 0;var a=Object.assign||function(e){for(var t=1;t{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelBlockEditor=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(57);t.FutureActionPanelBlockEditor=function(e){var t=wp.editPost.PluginDocumentSettingPanel,n=wp.data,o=n.useDispatch,i=n.select,l=o("core/editor").editPost,s=i("core/editor").getEditedPostAttribute("publishpress_future_action"),u=o("core/editor"),c=u.lockPostSaving,d=u.unlockPostSaving;return React.createElement(t,{name:"publishpress-future-action-panel",title:e.strings.panelTitle,initialOpen:e.postTypeDefaultConfig.autoEnable,className:"post-expirator-panel"},React.createElement("div",{id:"publishpress-future-block-editor"},React.createElement(r.FutureActionPanel,{context:"block-editor",postType:e.postType,isCleanNewPost:e.isCleanNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:s.enabled,calendarIsVisible:!0,action:s.action,newStatus:s.newStatus,date:s.date,terms:s.terms,taxonomy:s.taxonomy,taxonomyName:e.taxonomyName,onChangeData:function(t,n){var r=i(e.storeName),o={enabled:r.getEnabled()};o.enabled&&(o.action=r.getAction(),o.newStatus=r.getNewStatus(),o.date=r.getDate(),o.terms=r.getTerms(),o.taxonomy=r.getTaxonomy(),o.extraData=r.getExtraData()),function(e){var t={publishpress_future_action:{}},n=!0,r=!1,o=void 0;try{for(var i,s=Object.entries(e)[Symbol.iterator]();!(n=(i=s.next()).done);n=!0){var u=i.value,c=a(u,2),d=c[0],m=c[1];t.publishpress_future_action[d]=m}}catch(e){r=!0,o=e}finally{try{!n&&s.return&&s.return()}finally{if(r)throw o}}l(t)}(o)},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){d("future-action")},hideCalendarByDefault:e.hideCalendarByDefault,onDataIsInvalid:function(){c("future-action")}})))}},94:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelBulkEdit=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(57),o=n(409);t.FutureActionPanelBulkEdit=function(e){var t=wp.data,n=t.useSelect,i=t.useDispatch,l=t.select,s=wp.element.useEffect,u=n((function(t){return t(e.storeName).getDate()}),[]),c=n((function(t){return t(e.storeName).getEnabled()}),[]),d=n((function(t){return t(e.storeName).getAction()}),[]),m=n((function(t){return t(e.storeName).getNewStatus()}),[]),p=n((function(t){return t(e.storeName).getTerms()}),[]),f=n((function(t){return t(e.storeName).getTaxonomy()}),[]),y=n((function(t){return t(e.storeName).getChangeAction()}),[]),g=n((function(t){return t(e.storeName).getHasValidData()}),[]),v=i(e.storeName).setChangeAction,b=p;"object"===(void 0===p?"undefined":a(p))&&(b=p.join(","));var h=[{value:"no-change",label:e.strings.noChange},{value:"change-add",label:e.strings.changeAdd},{value:"add-only",label:e.strings.addOnly},{value:"change-only",label:e.strings.changeOnly},{value:"remove-only",label:e.strings.removeOnly}];return s((function(){g||"no-change"===y?jQuery("#bulk_edit").prop("disabled",!1):jQuery("#bulk_edit").prop("disabled",!0)}),[g,y]),React.createElement("div",{className:"post-expirator-panel"},React.createElement(r.SelectControl,{label:e.strings.futureActionUpdate,name:"future_action_bulk_change_action",value:y,options:h,onChange:function(e){v(e)}}),["change-add","add-only","change-only"].includes(y)&&React.createElement(r.FutureActionPanel,{context:"bulk-edit",autoEnableAndHideCheckbox:!0,postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:!0,calendarIsVisible:!1,action:d,newStatus:m,date:u,terms:p,taxonomy:f,taxonomyName:e.taxonomyName,onChangeData:function(t,n){(0,o.getElementByName)("future_action_bulk_enabled").value=l(e.storeName).getEnabled()?1:0,(0,o.getElementByName)("future_action_bulk_action").value=l(e.storeName).getAction(),(0,o.getElementByName)("future_action_bulk_new_status").value=l(e.storeName).getNewStatus(),(0,o.getElementByName)("future_action_bulk_date").value=l(e.storeName).getDate(),(0,o.getElementByName)("future_action_bulk_terms").value=l(e.storeName).getTerms().join(","),(0,o.getElementByName)("future_action_bulk_taxonomy").value=l(e.storeName).getTaxonomy()},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,hideCalendarByDefault:e.hideCalendarByDefault,strings:e.strings}),React.createElement("input",{type:"hidden",name:"future_action_bulk_enabled",value:c?1:0}),React.createElement("input",{type:"hidden",name:"future_action_bulk_action",value:d}),React.createElement("input",{type:"hidden",name:"future_action_bulk_new_status",value:m}),React.createElement("input",{type:"hidden",name:"future_action_bulk_date",value:u}),React.createElement("input",{type:"hidden",name:"future_action_bulk_terms",value:b}),React.createElement("input",{type:"hidden",name:"future_action_bulk_taxonomy",value:f}),React.createElement("input",{type:"hidden",name:"future_action_bulk_view",value:"bulk-edit"}),React.createElement("input",{type:"hidden",name:"_future_action_nonce",value:e.nonce}))}},571:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelClassicEditor=void 0;var a=n(57),r=n(562);n(386),t.FutureActionPanelClassicEditor=function(e){(new Date).getTimezoneOffset();var t=function(e){return document.getElementsByName(e)[0]},n=function(e){var n=t(e);return n?n.value:""},o={enabled:"1"===n("future_action_enabled"),action:n("future_action_action"),newStatus:n("future_action_new_status"),date:n("future_action_date"),terms:function(e){var n=t("future_action_terms");if(!n)return[];var a=n.value.split(",");return 1===a.length&&""===a[0]&&(a=[]),a.map((function(e){return parseInt(e)}))}(),taxonomy:n("future_action_taxonomy")};return React.createElement("div",{className:"post-expirator-panel"},React.createElement(a.FutureActionPanel,{context:"classic-editor",postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:o.enabled,calendarIsVisible:!0,action:o.action,newStatus:o.newStatus,date:o.date,terms:o.terms,taxonomy:o.taxonomy,taxonomyName:e.taxonomyName,onChangeData:function(n,a){var o=(0,r.select)(e.storeName);t("future_action_enabled").value=o.getEnabled()?1:0,t("future_action_action").value=o.getAction(),t("future_action_new_status").value=o.getNewStatus(),t("future_action_date").value=o.getDate(),t("future_action_terms").value=o.getTerms().join(","),t("future_action_taxonomy").value=o.getTaxonomy()},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){jQuery("#publish").prop("disabled",!1)},hideCalendarByDefault:e.hideCalendarByDefault,onDataIsInvalid:function(){jQuery("#publish").prop("disabled",!0)}}))}},437:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelQuickEdit=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(57),o=n(562);n(386),t.FutureActionPanelQuickEdit=function(e){var t=(0,o.useSelect)((function(t){return t(e.storeName).getDate()}),[]),n=(0,o.useSelect)((function(t){return t(e.storeName).getEnabled()}),[]),i=(0,o.useSelect)((function(t){return t(e.storeName).getAction()}),[]),l=(0,o.useSelect)((function(t){return t(e.storeName).getTerms()}),[]),s=(0,o.useSelect)((function(t){return t(e.storeName).getTaxonomy()}),[]),u=((0,o.useSelect)((function(t){return t(e.storeName).getHasValidData()}),[]),(0,o.useSelect)((function(t){return t(e.storeName).getNewStatus()}),[])),c=l;return"object"===(void 0===l?"undefined":a(l))&&(c=l.join(",")),React.createElement("div",{className:"post-expirator-panel"},React.createElement(r.FutureActionPanel,{context:"quick-edit",postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:n,calendarIsVisible:!1,action:i,newStatus:u,date:t,terms:l,taxonomy:s,taxonomyName:e.taxonomyName,onChangeData:function(e,t){},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){jQuery(".button-primary.save").prop("disabled",!1)},hideCalendarByDefault:e.hideCalendarByDefault,onDataIsInvalid:function(){jQuery(".button-primary.save").prop("disabled",!0)}}),React.createElement("input",{type:"hidden",name:"future_action_enabled",value:n?1:0}),React.createElement("input",{type:"hidden",name:"future_action_action",value:i||""}),React.createElement("input",{type:"hidden",name:"future_action_new_status",value:u||""}),React.createElement("input",{type:"hidden",name:"future_action_date",value:t||""}),React.createElement("input",{type:"hidden",name:"future_action_terms",value:c||""}),React.createElement("input",{type:"hidden",name:"future_action_taxonomy",value:s||""}),React.createElement("input",{type:"hidden",name:"future_action_view",value:"quick-edit"}),React.createElement("input",{type:"hidden",name:"_future_action_nonce",value:e.nonce}))}},625:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelTop=void 0;var a=Object.assign||function(e){for(var t=1;t{Object.defineProperty(t,"__esModule",{value:!0}),t.NonceControl=void 0;var a=n(386);t.NonceControl=function(e){return e.name||(e.name="_wpnonce"),e.referrer||(e.referrer=!0),React.createElement(a.Fragment,null,React.createElement("input",{type:"hidden",name:e.name,id:e.name,value:e.nonce}),e.referrer&&React.createElement("input",{type:"hidden",name:"_wp_http_referer",value:e.referrer}))}},239:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PostTypeSettingsPanel=void 0;var a,r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},o=n(57),i=n(386),l=n(11),s=n(566),u=n(244),c=(a=n(470))&&a.__esModule?a:{default:a},d=wp.components.PanelRow;t.PostTypeSettingsPanel=function(e){var t=e.expireTypeList[e.postType],n=(0,i.useState)(e.settings.taxonomy),a=r(n,2),m=a[0],p=a[1],f=(0,i.useState)([]),y=r(f,2),g=y[0],v=y[1],b=(0,i.useState)(!1),h=r(b,2),E=h[0],S=h[1],_=(0,i.useState)([]),x=r(_,2),T=x[0],A=x[1],N=(0,i.useState)(e.settings.howToExpire),C=r(N,2),w=C[0],R=C[1],P=(0,i.useState)(e.settings.active),O=r(P,2),D=O[0],I=O[1],k=(0,i.useState)(e.settings.defaultExpireOffset),F=r(k,2),B=F[0],j=F[1],M=(0,i.useState)(e.settings.emailNotification),V=r(M,2),L=V[0],H=V[1],U=(0,i.useState)(e.settings.autoEnabled),W=r(U,2),Q=W[0],Y=W[1],q=(0,i.useState)(!0),z=r(q,2),X=z[0],G=z[1],J=(0,i.useState)(""),Z=r(J,2),K=Z[0],$=Z[1],ee=(0,i.useState)(""),te=r(ee,2),ne=te[0],ae=te[1],re=(0,i.useState)(t),oe=r(re,2),ie=oe[0],le=oe[1],se=(0,i.useState)(e.settings.newStatus),ue=r(se,2),ce=ue[0],de=ue[1],me=(0,i.useState)(!1),pe=r(me,2),fe=pe[0],ye=pe[1],ge=B||e.settings.globalDefaultExpireOffset,ve=["category","category-add","category-remove","category-remove-all"];(0,i.useEffect)((function(){var t;0===e.taxonomiesList.length&&(t=ie.filter((function(e){return-1===ve.indexOf(e.value)})),le(t))}),[]),(0,i.useEffect)((function(){m&&e.taxonomiesList&&(S(!0),(0,u.apiFetch)({path:(0,l.addQueryArgs)("publishpress-future/v1/terms/"+m)}).then((function(t){var n=[],a=null,r=void 0;t.terms.forEach((function(t){r={value:t.id,label:t.name},n.push(r),m===e.settings.taxonomy&&e.settings.terms.includes(t.id)&&(null===a&&(a=[]),a.push(r.label))})),v(n),A(a),S(!1)})),e.taxonomiesList.forEach((function(e){e.value===m&&ae(e.label)})))}),[m]),(0,i.useEffect)((function(){if(ne){var e=[];t.forEach((function(t){var n=t.label;-1!==ve.indexOf(t.value)&&(n=n.replace("%s",ne.toLowerCase())),e.push({value:t.value,label:n})})),le(e)}}),[ne]),(0,i.useEffect)((function(){X&&e.onDataIsValid&&e.onDataIsValid(e.postType),!X&&e.onDataIsInvalid&&e.onDataIsInvalid(e.postType)}),[X]),(0,i.useEffect)((function(){fe&&e.onValidationStarted&&e.onValidationStarted(e.postType),!fe&&e.onValidationFinished&&e.onValidationFinished(e.postType)}),[fe]);var be=g.map((function(e){return e.label})),he=[React.createElement(o.SettingRow,{label:e.text.fieldActive,key:"expirationdate_activemeta-"+e.postType},React.createElement(o.CheckboxControl,{name:"expirationdate_activemeta-"+e.postType,checked:D||!1,label:e.text.fieldActiveLabel,onChange:function(e){I(e)}}))];D&&(he.push(React.createElement(o.SettingRow,{label:e.text.fieldAutoEnable,key:"expirationdate_autoenable-"+e.postType},React.createElement(o.CheckboxControl,{name:"expirationdate_autoenable-"+e.postType,checked:Q||!1,label:e.text.fieldAutoEnableLabel,onChange:function(e){Y(e)}}))),he.push(React.createElement(o.SettingRow,{label:e.text.fieldTaxonomy,key:"expirationdate_taxonomy-"+e.postType},React.createElement(o.SelectControl,{name:"expirationdate_taxonomy-"+e.postType,options:e.taxonomiesList,selected:m,noItemFoundMessage:e.text.noItemsfound,description:e.text.fieldTaxonomyDescription,data:e.postType,onChange:function(e){p(e)}}))),he.push(React.createElement(o.SettingRow,{label:e.text.fieldHowToExpire,key:"expirationdate_expiretype-"+e.postType},React.createElement(o.SelectControl,{name:"expirationdate_expiretype-"+e.postType,className:"pe-howtoexpire",options:ie,description:e.text.fieldHowToExpireDescription,selected:w,onChange:function(e){R(e)}}),"change-status"===w&&React.createElement(o.SelectControl,{name:"expirationdate_newstatus-"+e.postType,options:e.statusesList,selected:ce,onChange:de}),e.taxonomiesList.length>0&&["category","category-add","category-remove"].indexOf(w)>-1&&React.createElement(o.TokensControl,{label:e.text.fieldTerm,name:"expirationdate_terms-"+e.postType,options:be,value:T,isLoading:E,onChange:function(e){A(e)},description:e.text.fieldTermDescription,maxSuggestions:1e3,expandOnFocus:!0,autoSelectFirstMatch:!0}))),he.push(React.createElement(o.SettingRow,{label:e.text.fieldDefaultDateTimeOffset,key:"expired-custom-date-"+e.postType},React.createElement(o.TextControl,{name:"expired-custom-date-"+e.postType,value:B,loading:fe,placeholder:e.settings.globalDefaultExpireOffset,description:e.text.fieldDefaultDateTimeOffsetDescription,unescapedDescription:!0,onChange:function(e){j(e)}}),React.createElement(c.default,{offset:ge,label:e.text.datePreview,labelDatePreview:e.text.datePreviewCurrent,labelOffsetPreview:e.text.datePreviewComputed,setValidationErrorCallback:$,setHasPendingValidationCallback:ye,setHasValidDataCallback:G}))),he.push(React.createElement(o.SettingRow,{label:e.text.fieldWhoToNotify,key:"expirationdate_emailnotification-"+e.postType},React.createElement(o.TextControl,{name:"expirationdate_emailnotification-"+e.postType,className:"large-text",value:L,description:e.text.fieldWhoToNotifyDescription,onChange:function(e){H(e)}})))),he=(0,s.applyFilters)("expirationdate_settings_posttype",he,e,D,i.useState);var Ee=e.isVisible?"pe-settings-fieldset":"pe-settings-fieldset hidden";return React.createElement("div",{className:Ee},React.createElement(o.SettingsTable,{bodyChildren:he}),!X&&React.createElement(d,null,React.createElement("div",{className:"publishpress-future-notice publishpress-future-notice-error"},React.createElement("strong",null,e.text.error,":")," ",K)))}},138:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PostTypesSettingsPanels=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(57),o=n(386);t.PostTypesSettingsPanels=function(e){var t=(0,o.useState)(Object.keys(e.settings)[0]),n=a(t,2),i=n[0],l=n[1],s=[],u=!0,c=!1,d=void 0;try{for(var m,p=Object.entries(e.settings)[Symbol.iterator]();!(u=(m=p.next()).done);u=!0){var f=m.value,y=a(f,2),g=y[0],v=y[1];s.push(React.createElement(r.PostTypeSettingsPanel,{legend:v.label,text:e.text,postType:g,settings:v,expireTypeList:e.expireTypeList,taxonomiesList:e.taxonomiesList[g],statusesList:e.statusesList[g],key:g+"-panel",onDataIsValid:e.onDataIsValid,onDataIsInvalid:e.onDataIsInvalid,onValidationStarted:e.onValidationStarted,onValidationFinished:e.onValidationFinished,isVisible:i===g}))}}catch(e){c=!0,d=e}finally{try{!u&&p.return&&p.return()}finally{if(c)throw d}}var b=function(e){e.preventDefault(),l(e.target.hash.replace("#","").replace("-panel",""))},h=[],E=!1,S=!0,_=!1,x=void 0;try{for(var T,A=Object.entries(e.settings)[Symbol.iterator]();!(S=(T=A.next()).done);S=!0){var N=T.value,C=a(N,2),w=C[0],R=C[1];E=i===w,h.push(React.createElement("a",{href:"#"+w+"-panel",className:"nav-tab "+(E?"nav-tab-active":""),key:w+"-tab",onClick:b},R.label))}}catch(e){_=!0,x=e}finally{try{!S&&A.return&&A.return()}finally{if(_)throw x}}return React.createElement("div",null,React.createElement("nav",{className:"nav-tab-wrapper"},h),s)}},858:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SelectControl=void 0;var a=n(386),r=n(214);t.SelectControl=function(e){return React.createElement(a.Fragment,null,0===e.options.length&&React.createElement("div",null,e.noItemFoundMessage),e.options.length>0&&React.createElement(r.SelectControl,{label:e.label,name:e.name,id:e.name,className:e.className,value:e.selected,onChange:function(t){e.onChange(t)},"data-data":e.data,options:e.options}),e.children,React.createElement("p",{className:"description"},e.description))}},5:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingRow=void 0,n(386),t.SettingRow=function(e){return React.createElement("tr",{valign:"top"},React.createElement("th",{scope:"row"},React.createElement("label",{htmlFor:""},e.label)),React.createElement("td",null,e.children))}},786:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsFieldset=function(e){return React.createElement("fieldset",{className:e.className},React.createElement("legend",null,e.legend),e.children)}},892:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsForm=function(e){return React.createElement("form",{method:"post"},e.children)}},681:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsSection=void 0;var a=n(386);t.SettingsSection=function(e){return React.createElement(a.Fragment,null,React.createElement("h2",null,e.title),React.createElement("p",null,e.description),e.children)}},772:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsTable=function(e){return React.createElement("table",{className:"form-table"},React.createElement("tbody",null,e.bodyChildren))}},242:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Spinner=function(e){return React.createElement("span",{className:"publishpress-future-spinner"},React.createElement("div",null),React.createElement("div",null),React.createElement("div",null),React.createElement("div",null))}},438:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SubmitButton=function(e){return React.createElement("input",{type:"submit",name:e.name,value:e.text,disabled:e.disabled,className:"button-primary"})}},301:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TextControl=void 0;var a=n(386),r=n(214),o=n(57);t.TextControl=function(e){var t;t=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description);var n=e.className?e.className:"";return e.loading&&(n+=" publishpress-future-loading publishpress-future-loading-input"),React.createElement(a.Fragment,null,React.createElement("div",{className:n},React.createElement(r.TextControl,{type:"text",label:e.label,name:e.name,id:e.name,className:e.className,value:e.value,placeholder:e.placeholder,onChange:function(t){e.onChange&&e.onChange(t)}}),e.loading&&React.createElement(o.Spinner,null),t))}},190:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ToggleArrowButton=void 0;var a=n(214);t.ToggleArrowButton=function(e){var t=e.iconExpanded?e.iconExpanded:"arrow-up-alt2",n=e.iconCollapsed?e.iconCollapsed:"arrow-down-alt2",r=e.isExpanded?t:n,o=e.isExpanded?e.titleExpanded:e.titleCollapsed;return React.createElement(a.Button,{isSmall:!0,title:o,icon:r,onClick:function(){e.onClick&&e.onClick()},className:e.className})}},873:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ToggleCalendarDatePicker=void 0;var a=n(190),r=n(620),o=n(386);t.ToggleCalendarDatePicker=function(e){var t=e.isExpanded,n=e.strings,i=e.onToggleCalendar,l=e.currentDate,s=e.onChangeDate,u=e.is12Hour,c=e.startOfWeek;return(0,o.useEffect)((function(){var e=document.querySelector(".future-action-calendar-toggle");if(e){var t=e.nextElementSibling;if(t){var n=t.querySelector(".components-datetime__time");if(n){var a=n.nextSibling;a&&t.insertBefore(e,a)}}}})),React.createElement(o.Fragment,null,React.createElement(a.ToggleArrowButton,{className:"future-action-calendar-toggle",isExpanded:t,iconExpanded:"arrow-up-alt2",iconCollapsed:"calendar",titleExpanded:n.hideCalendar,titleCollapsed:n.showCalendar,onClick:i}),React.createElement(r.DateTimePicker,{currentDate:l,onChange:s,__nextRemoveHelpButton:!0,is12Hour:u,startOfWeek:c}))}},948:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TokensControl=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(386),o=n(214);t.TokensControl=function(e){var t=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,r.useState)(""),2),n=t[0],i=t[1];(0,r.useEffect)((function(){e.value&&i(e.value.join(","))}),[e.value]);var l=void 0;e.description&&(l=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description));var s=e.value?e.value:[];return React.createElement(r.Fragment,null,React.createElement(o.FormTokenField,{label:e.label,value:s,suggestions:e.options,onChange:function(t){e.onChange&&e.onChange(t),"object"===(void 0===t?"undefined":a(t))?i(t.join(",")):i("")},maxSuggestions:e.maxSuggestions,className:"publishpres-future-token-field",__experimentalExpandOnFocus:e.expandOnFocus,__experimentalAutoSelectFirstMatch:e.autoSelectFirstMatch}),React.createElement("input",{type:"hidden",name:e.name,value:n}),l)}},225:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TrueFalseControl=function(e){var t=wp.element.Fragment,n=function(t){e.onChange&&e.onChange(t.target.value===e.trueValue&&jQuery(t.target).is(":checked"))};return React.createElement(t,null,React.createElement("input",{type:"radio",name:e.name,id:e.name+"-true",value:e.trueValue,defaultChecked:e.selected,onChange:n}),React.createElement("label",{htmlFor:e.name+"-true"},e.trueLabel),"  ",React.createElement("input",{type:"radio",name:e.name,defaultChecked:!e.selected,id:e.name+"-false",value:e.falseValue,onChange:n}),React.createElement("label",{htmlFor:e.name+"-false"},e.falseLabel),React.createElement("p",{className:"description"},e.description))}},57:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var a=n(442);Object.defineProperty(t,"ButtonsPanel",{enumerable:!0,get:function(){return a.ButtonsPanel}});var r=n(418);Object.defineProperty(t,"FutureActionPanel",{enumerable:!0,get:function(){return r.FutureActionPanel}});var o=n(864);Object.defineProperty(t,"FutureActionPanelBlockEditor",{enumerable:!0,get:function(){return o.FutureActionPanelBlockEditor}});var i=n(571);Object.defineProperty(t,"FutureActionPanelClassicEditor",{enumerable:!0,get:function(){return i.FutureActionPanelClassicEditor}});var l=n(437);Object.defineProperty(t,"FutureActionPanelQuickEdit",{enumerable:!0,get:function(){return l.FutureActionPanelQuickEdit}});var s=n(94);Object.defineProperty(t,"FutureActionPanelBulkEdit",{enumerable:!0,get:function(){return s.FutureActionPanelBulkEdit}});var u=n(239);Object.defineProperty(t,"PostTypeSettingsPanel",{enumerable:!0,get:function(){return u.PostTypeSettingsPanel}});var c=n(138);Object.defineProperty(t,"PostTypesSettingsPanels",{enumerable:!0,get:function(){return c.PostTypesSettingsPanels}});var d=n(5);Object.defineProperty(t,"SettingRow",{enumerable:!0,get:function(){return d.SettingRow}});var m=n(786);Object.defineProperty(t,"SettingsFieldset",{enumerable:!0,get:function(){return m.SettingsFieldset}});var p=n(892);Object.defineProperty(t,"SettingsForm",{enumerable:!0,get:function(){return p.SettingsForm}});var f=n(681);Object.defineProperty(t,"SettingsSection",{enumerable:!0,get:function(){return f.SettingsSection}});var y=n(772);Object.defineProperty(t,"SettingsTable",{enumerable:!0,get:function(){return y.SettingsTable}});var g=n(438);Object.defineProperty(t,"SubmitButton",{enumerable:!0,get:function(){return g.SubmitButton}});var v=n(311);Object.defineProperty(t,"CheckboxControl",{enumerable:!0,get:function(){return v.CheckboxControl}});var b=n(858);Object.defineProperty(t,"SelectControl",{enumerable:!0,get:function(){return b.SelectControl}});var h=n(301);Object.defineProperty(t,"TextControl",{enumerable:!0,get:function(){return h.TextControl}});var E=n(948);Object.defineProperty(t,"TokensControl",{enumerable:!0,get:function(){return E.TokensControl}});var S=n(13);Object.defineProperty(t,"NonceControl",{enumerable:!0,get:function(){return S.NonceControl}});var _=n(225);Object.defineProperty(t,"TrueFalseControl",{enumerable:!0,get:function(){return _.TrueFalseControl}});var x=n(242);Object.defineProperty(t,"Spinner",{enumerable:!0,get:function(){return x.Spinner}});var T=n(470);Object.defineProperty(t,"DateOffsetPreview",{enumerable:!0,get:function(){return T.DateOffsetPreview}})},480:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createStore=void 0;var a=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:t,s=arguments[1];switch(s.type){case"SET_ACTION":return a({},l,{action:s.action});case"SET_NEW_STATUS":return a({},l,{newStatus:s.newStatus});case"SET_DATE":return"number"!=typeof s.date&&(0,o.isNumber)(s.date)&&(s.date=parseInt(s.date)),"string"==typeof s.date&&(s.date=new Date(s.date).getTime()),s.date=(0,r.normalizeUnixTimeToSeconds)(s.date),s.date=(0,r.formatUnixTimeToTimestamp)(s.date),a({},l,{date:s.date});case"SET_ENABLED":return a({},l,{enabled:s.enabled});case"SET_TERMS":return a({},l,{terms:s.terms});case"SET_TAXONOMY":return a({},l,{taxonomy:s.taxonomy});case"SET_TERMS_LIST_BY_NAME":return a({},l,{termsListByName:s.termsListByName});case"SET_TERMS_LIST_BY_ID":return a({},l,{termsListById:s.termsListById});case"SET_TAXONOMY_NAME":return a({},l,{taxonomyName:s.taxonomyName});case"SET_CHANGE_ACTION":return a({},l,{changeAction:s.changeAction});case"SET_CALENDAR_IS_VISIBLE":return a({},l,{calendarIsVisible:s.calendarIsVisible});case"SET_HAS_VALID_DATA":return a({},l,{hasValidData:s.hasValidData});case"SET_EXTRA_DATA":return a({},l,{extraData:a({},s.extraData)});case"SET_EXTRA_DATA_BY_NAME":var u=a({},l.extraData,(e={},n=s.name,i=s.value,n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i,e));return a({},l,{extraData:a({},u)})}return l},actions:{setAction:function(e){return{type:"SET_ACTION",action:e}},setNewStatus:function(e){return{type:"SET_NEW_STATUS",newStatus:e}},setDate:function(e){return{type:"SET_DATE",date:e}},setEnabled:function(e){return{type:"SET_ENABLED",enabled:e}},setTerms:function(e){return{type:"SET_TERMS",terms:e}},setTaxonomy:function(e){return{type:"SET_TAXONOMY",taxonomy:e}},setTermsListByName:function(e){return{type:"SET_TERMS_LIST_BY_NAME",termsListByName:e}},setTermsListById:function(e){return{type:"SET_TERMS_LIST_BY_ID",termsListById:e}},setTaxonomyName:function(e){return{type:"SET_TAXONOMY_NAME",taxonomyName:e}},setIsFetchingTerms:function(e){return{type:"SET_IS_FETCHING_TERMS",isFetchingTerms:e}},setChangeAction:function(e){return{type:"SET_CHANGE_ACTION",changeAction:e}},setCalendarIsVisible:function(e){return{type:"SET_CALENDAR_IS_VISIBLE",calendarIsVisible:e}},setHasValidData:function(e){return{type:"SET_HAS_VALID_DATA",hasValidData:e}},setExtraData:function(e){return{type:"SET_EXTRA_DATA",extraData:e}},setExtraDataByName:function(e,t){return{type:"SET_EXTRA_DATA_BY_NAME",name:e,value:t}}},selectors:{getAction:function(e){return e.action},getNewStatus:function(e){return e.newStatus},getDate:function(e){return e.date},getEnabled:function(e){return e.enabled},getTerms:function(e){return e.terms},getTaxonomy:function(e){return e.taxonomy},getTermsListByName:function(e){return e.termsListByName},getTermsListById:function(e){return e.termsListById},getTaxonomyName:function(e){return e.taxonomyName},getIsFetchingTerms:function(e){return e.isFetchingTerms},getChangeAction:function(e){return e.changeAction},getCalendarIsVisible:function(e){return e.calendarIsVisible},getHasValidData:function(e){return e.hasValidData},getExtraData:function(e){return e.extraData},getExtraDataByName:function(e,t){return e.extraData[t]||null}}});return(0,i.register)(n),n}},39:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n=t.getCurrentTimeInSeconds=function(){return o((new Date).getTime())},a=(t.getCurrentTimeAsTimestamp=function(){return a(n())},t.formatUnixTimeToTimestamp=function(e){var t=new Date(o(e));return t.getFullYear()+"-"+("0"+(t.getMonth()+1)).slice(-2)+"-"+("0"+t.getDate()).slice(-2)+" "+("0"+t.getHours()).slice(-2)+":"+("0"+t.getMinutes()).slice(-2)+":"+("0"+t.getSeconds()).slice(-2)}),r=(t.formatTimestampToUnixTime=function(e){var t=new Date(e);return o(t.getTime())},t.timeIsInSeconds=function(e){return parseInt(e).toString().length<=10}),o=t.normalizeUnixTimeToSeconds=function(e){return e=parseInt(e),r()?e:e/1e3};t.normalizeUnixTimeToMilliseconds=function(e){return e=parseInt(e),r()?1e3*e:e}},409:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=(t.compact=function(e){return e?(Array.isArray(e)||"object"!==(void 0===e?"undefined":n(e))||(e=Object.values(e)),e.filter((function(e){return null!=e&&""!==e}))):[]},t.debugLogFactory=function(e){return function(t){for(var n=arguments.length,a=Array(n>1?n-1:0),r=1;r{n.d(t,{A:()=>l});var a=n(354),r=n.n(a),o=n(314),i=n.n(o)()(r());i.push([e.id,".publishpress-future-date-preview .publishpress-future-date-preview-value {\n font-family: monospace;\n background-color: #e7e7e7;\n padding: 2px 4px;\n}\n\n.publishpress-future-date-preview.compact .publishpress-future-date-preview-label {\n display: block;\n}\n\n.publishpress-future-date-preview.compact {\n margin-bottom: 8px;\n}\n\n.publishpress-future-date-preview.compact h4 {\n font-size: 11px;\n font-weight: 500;\n line-height: 1.4;\n text-transform: uppercase;\n display: inline-block;\n margin-bottom: calc(8px);\n padding: 0px;\n flex-shrink: 0;\n margin-right: 12px;\n max-width: 75%;\n margin-top: 0;\n}\n\n.publishpress-future-notice.publishpress-future-notice-error {\n color: #dc3232;\n}\n","",{version:3,sources:["webpack://./assets/jsx/components/css/dateOffsetPreview.css"],names:[],mappings:"AAAA;IACI,sBAAsB;IACtB,yBAAyB;IACzB,gBAAgB;AACpB;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,kBAAkB;AACtB;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,yBAAyB;IACzB,qBAAqB;IACrB,wBAAwB;IACxB,YAAY;IACZ,cAAc;IACd,kBAAkB;IAClB,cAAc;IACd,aAAa;AACjB;;AAEA;IACI,cAAc;AAClB",sourcesContent:[".publishpress-future-date-preview .publishpress-future-date-preview-value {\n font-family: monospace;\n background-color: #e7e7e7;\n padding: 2px 4px;\n}\n\n.publishpress-future-date-preview.compact .publishpress-future-date-preview-label {\n display: block;\n}\n\n.publishpress-future-date-preview.compact {\n margin-bottom: 8px;\n}\n\n.publishpress-future-date-preview.compact h4 {\n font-size: 11px;\n font-weight: 500;\n line-height: 1.4;\n text-transform: uppercase;\n display: inline-block;\n margin-bottom: calc(8px);\n padding: 0px;\n flex-shrink: 0;\n margin-right: 12px;\n max-width: 75%;\n margin-top: 0;\n}\n\n.publishpress-future-notice.publishpress-future-notice-error {\n color: #dc3232;\n}\n"],sourceRoot:""}]);const l=i},314:e=>{e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",a=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),a&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),a&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,a,r,o){"string"==typeof e&&(e=[[null,e,void 0]]);var i={};if(a)for(var l=0;l0?" ".concat(c[5]):""," {").concat(c[1],"}")),c[5]=o),n&&(c[2]?(c[1]="@media ".concat(c[2]," {").concat(c[1],"}"),c[2]=n):c[2]=n),r&&(c[4]?(c[1]="@supports (".concat(c[4],") {").concat(c[1],"}"),c[4]=r):c[4]="".concat(r)),t.push(c))}},t}},354:e=>{e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var a=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(a),o="/*# ".concat(r," */");return[t].concat([o]).join("\n")}return[t].join("\n")}},922:(e,t,n)=>{n.r(t),n.d(t,{default:()=>v});var a=n(72),r=n.n(a),o=n(825),i=n.n(o),l=n(659),s=n.n(l),u=n(56),c=n.n(u),d=n(540),m=n.n(d),p=n(113),f=n.n(p),y=n(461),g={};g.styleTagTransform=f(),g.setAttributes=c(),g.insert=s().bind(null,"head"),g.domAPI=i(),g.insertStyleElement=m(),r()(y.A,g);const v=y.A&&y.A.locals?y.A.locals:void 0},72:e=>{var t=[];function n(e){for(var n=-1,a=0;a{var t={};e.exports=function(e,n){var a=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(!a)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");a.appendChild(n)}},540:e=>{e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},56:(e,t,n)=>{e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},825:e=>{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 a="";n.supports&&(a+="@supports (".concat(n.supports,") {")),n.media&&(a+="@media ".concat(n.media," {"));var r=void 0!==n.layer;r&&(a+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),a+=n.css,r&&(a+="}"),n.media&&(a+="}"),n.supports&&(a+="}");var o=n.sourceMap;o&&"undefined"!=typeof btoa&&(a+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),t.styleTagTransform(a,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},113:e=>{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))}}},788:e=>{e.exports=publishpressFutureBlockEditorConfig},244:e=>{e.exports=wp},214:e=>{e.exports=wp.components},562:e=>{e.exports=wp.data},386:e=>{e.exports=wp.element},566:e=>{e.exports=wp.hooks},986:e=>{e.exports=wp.plugins},11:e=>{e.exports=wp.url}},t={};function n(a){var r=t[a];if(void 0!==r)return r.exports;var o=t[a]={id:a,exports:{}};return e[a](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 a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},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 a=n(480),r=n(57),o=n(562),i=n(986),l=n(788),s="publishpress-future/future-action";(0,a.createStore)({name:s,defaultState:{autoEnable:l.postTypeDefaultConfig.autoEnable,action:l.postTypeDefaultConfig.expireType,newStatus:l.postTypeDefaultConfig.newStatus,date:l.defaultDate,taxonomy:l.postTypeDefaultConfig.taxonomy,terms:l.postTypeDefaultConfig.terms}}),(0,i.registerPlugin)("publishpress-future-action",{render:function(){return React.createElement(r.FutureActionPanelBlockEditor,{postType:(0,o.select)("core/editor").getCurrentPostType(),isCleanNewPost:(0,o.select)("core/editor").isCleanNewPost(),actionsSelectOptions:l.actionsSelectOptions,statusesSelectOptions:l.statusesSelectOptions,is12Hour:l.is12Hour,timeFormat:l.timeFormat,startOfWeek:l.startOfWeek,storeName:s,strings:l.strings,taxonomyName:l.taxonomyName,postTypeDefaultConfig:l.postTypeDefaultConfig,hideCalendarByDefault:l.hideCalendarByDefault})}})})(); //# sourceMappingURL=block-editor.js.map \ No newline at end of file diff --git a/assets/js/block-editor.js.map b/assets/js/block-editor.js.map index f05e93b13..2d7f52b5c 100644 --- a/assets/js/block-editor.js.map +++ b/assets/js/block-editor.js.map @@ -1 +1 @@ -{"version":3,"file":"block-editor.js","mappings":"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","sources":["webpack://post-expirator/./assets/jsx/components/ButtonsPanel.jsx","webpack://post-expirator/./assets/jsx/components/CheckboxControl.jsx","webpack://post-expirator/./assets/jsx/components/DateTimePicker.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanel.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelAfterActionField.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelBlockEditor.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelBulkEdit.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelClassicEditor.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelQuickEdit.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelTop.jsx","webpack://post-expirator/./assets/jsx/components/NonceControl.jsx","webpack://post-expirator/./assets/jsx/components/PostTypeSettingsPanel.jsx","webpack://post-expirator/./assets/jsx/components/PostTypesSettingsPanels.jsx","webpack://post-expirator/./assets/jsx/components/SelectControl.jsx","webpack://post-expirator/./assets/jsx/components/SettingRow.jsx","webpack://post-expirator/./assets/jsx/components/SettingsFieldset.jsx","webpack://post-expirator/./assets/jsx/components/SettingsForm.jsx","webpack://post-expirator/./assets/jsx/components/SettingsSection.jsx","webpack://post-expirator/./assets/jsx/components/SettingsTable.jsx","webpack://post-expirator/./assets/jsx/components/Spinner.jsx","webpack://post-expirator/./assets/jsx/components/SubmitButton.jsx","webpack://post-expirator/./assets/jsx/components/TextControl.jsx","webpack://post-expirator/./assets/jsx/components/ToggleArrowButton.jsx","webpack://post-expirator/./assets/jsx/components/ToggleCalendarDatePicker.jsx","webpack://post-expirator/./assets/jsx/components/TokensControl.jsx","webpack://post-expirator/./assets/jsx/components/TrueFalseControl.jsx","webpack://post-expirator/./assets/jsx/components/index.jsx","webpack://post-expirator/./assets/jsx/data.jsx","webpack://post-expirator/./assets/jsx/time.jsx","webpack://post-expirator/./assets/jsx/utils.jsx","webpack://post-expirator/external var \"publishpressFutureBlockEditorConfig\"","webpack://post-expirator/external var \"wp\"","webpack://post-expirator/external var \"wp.components\"","webpack://post-expirator/external var \"wp.data\"","webpack://post-expirator/external var \"wp.element\"","webpack://post-expirator/external var \"wp.hooks\"","webpack://post-expirator/external var \"wp.plugins\"","webpack://post-expirator/external var \"wp.url\"","webpack://post-expirator/webpack/bootstrap","webpack://post-expirator/./assets/jsx/block-editor.jsx"],"sourcesContent":["/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const ButtonsPanel = function (props) {\n return (\n
\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment, useState } from \"@wordpress/element\";\nimport { CheckboxControl as WPCheckboxControl } from \"@wordpress/components\";\n\nexport const CheckboxControl = function (props) {\n const [checked, setChecked] = useState(props.checked || false);\n\n let description;\n\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n\n const onChange = function (value) {\n setChecked(value);\n\n if (props.onChange) {\n props.onChange(value);\n }\n };\n\n return (\n \n \n\n {description}\n \n )\n}\n","import { normalizeUnixTimeToMilliseconds } from \"../time\";\nimport { DateTimePicker as WPDateTimePicker } from \"@wordpress/components\";\n\n\nexport const DateTimePicker = ({currentDate, onChange, is12Hour, startOfWeek}) => {\n if (typeof currentDate === 'number') {\n currentDate = normalizeUnixTimeToMilliseconds(currentDate);\n }\n\n return (\n \n )\n}\n","import { compact } from '../utils';\nimport { ToggleCalendarDatePicker } from './ToggleCalendarDatePicker';\nimport { PluginArea } from '@wordpress/plugins';\nimport { Fill, Slot, SlotFillProvider } from '@wordpress/components';\nimport { FutureActionPanelAfterActionField } from './FutureActionPanelAfterActionField';\nimport { FutureActionPanelTop } from './FutureActionPanelTop';\n\nconst { PanelRow, CheckboxControl, SelectControl, FormTokenField, Spinner, BaseControl } = wp.components;\nconst { Fragment, useEffect, useState } = wp.element;\nconst { decodeEntities } = wp.htmlEntities;\nconst { addQueryArgs } = wp.url;\nconst {\n useSelect,\n useDispatch\n} = wp.data;\nconst { apiFetch } = wp;\n\nexport const FutureActionPanel = (props) => {\n const action = useSelect((select) => select(props.storeName).getAction(), []);\n const date = useSelect((select) => select(props.storeName).getDate(), []);\n const enabled = useSelect((select) => select(props.storeName).getEnabled(), []);\n const terms = useSelect((select) => select(props.storeName).getTerms(), []);\n const taxonomy = useSelect((select) => select(props.storeName).getTaxonomy(), []);\n const taxonomyName = useSelect((select) => select(props.storeName).getTaxonomyName(), []);\n const termsListByName = useSelect((select) => select(props.storeName).getTermsListByName(), []);\n const termsListById = useSelect((select) => select(props.storeName).getTermsListById(), []);\n const isFetchingTerms = useSelect((select) => select(props.storeName).getIsFetchingTerms(), []);\n const calendarIsVisible = useSelect((select) => select(props.storeName).getCalendarIsVisible(), []);\n const hasValidData = useSelect((select) => select(props.storeName).getHasValidData(), []);\n const newStatus = useSelect((select) => select(props.storeName).getNewStatus(), []);\n\n const [validationError, setValidationError] = useState('');\n\n const {\n setAction,\n setDate,\n setEnabled,\n setTerms,\n setTaxonomy,\n setTermsListByName,\n setTermsListById,\n setTaxonomyName,\n setIsFetchingTerms,\n setCalendarIsVisible,\n setHasValidData,\n setNewStatus\n } = useDispatch(props.storeName);\n\n const mapTermsListById = (terms) => {\n if (typeof terms !== 'object' || terms === null) {\n return {};\n }\n\n return terms.map((term) => {\n return termsListById[term];\n });\n }\n\n const insertTerm = (term) => {\n termsListByName[term] = { id: term, count: 0, description: \"\", link: \"\", name: term, slug: term, taxonomy: taxonomy };\n termsListById[term] = term;\n setTermsListByName(termsListByName);\n setTermsListById(termsListById);\n setTerms([...terms, term]);\n\n }\n\n const mapTermsListByName = (terms) => {\n if (typeof terms !== 'object' || terms === null) {\n return {};\n }\n\n return terms.map((term) => {\n if (termsListByName[term]) {\n return termsListByName[term].id;\n }\n\n insertTerm(term);\n\n return term;\n });\n }\n\n const callOnChangeData = (attribute, value) => {\n if (typeof props.onChangeData === 'function') {\n props.onChangeData(attribute, value);\n }\n }\n\n const handleEnabledChange = (isChecked) => {\n setEnabled(isChecked);\n\n if (isChecked) {\n setAction(props.action);\n setDate(props.date);\n setNewStatus(props.newStatus);\n setTerms(props.terms);\n setTaxonomy(props.taxonomy);\n\n fetchTerms();\n }\n\n callOnChangeData('enabled', isChecked);\n }\n\n const handleActionChange = (value) => {\n setAction(value);\n\n callOnChangeData('action', value);\n }\n\n const handleNewStatusChange = (value) => {\n setNewStatus(value);\n\n callOnChangeData('newStatus', value);\n }\n\n const handleDateChange = (value) => {\n setDate(value);\n\n callOnChangeData('date', value);\n }\n\n const handleTermsChange = (value) => {\n value = mapTermsListByName(value);\n\n setTerms(value);\n\n callOnChangeData('terms', value);\n }\n\n const fetchTerms = () => {\n let termsListByName = {};\n let termsListById = {};\n\n if (!taxonomy) {\n return;\n }\n\n setIsFetchingTerms(true);\n\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/terms/${taxonomy}`),\n }).then((result) => {\n result.terms.forEach(term => {\n termsListByName[decodeEntities(term.name)] = term;\n termsListById[term.id] = decodeEntities(term.name);\n });\n\n setTermsListByName(termsListByName);\n setTermsListById(termsListById);\n setTaxonomyName(decodeEntities(result.taxonomyName));\n setIsFetchingTerms(false);\n });\n }\n\n const storeCalendarIsVisibleOnStorage = (value) => {\n localStorage.setItem('FUTURE_ACTION_CALENDAR_IS_VISIBLE_' + props.context, value ? '1' : '0');\n }\n\n const getCalendarIsVisibleFromStorage = () => {\n return localStorage.getItem('FUTURE_ACTION_CALENDAR_IS_VISIBLE_' + props.context);\n }\n\n useEffect(() => {\n if (props.autoEnableAndHideCheckbox) {\n setEnabled(true);\n } else {\n setEnabled(props.enabled);\n }\n\n setAction(props.action);\n setNewStatus(props.newStatus);\n setDate(props.date);\n setTerms(props.terms);\n setTaxonomy(props.taxonomy);\n\n if (getCalendarIsVisibleFromStorage() === null) {\n setCalendarIsVisible(props.calendarIsVisible);\n } else {\n setCalendarIsVisible(getCalendarIsVisibleFromStorage() === '1');\n }\n\n // We need to get the value directly from the props because the value from the store is not updated yet\n if (props.enabled) {\n if (props.isCleanNewPost) {\n // Force populate the default values\n handleEnabledChange(true);\n }\n\n fetchTerms();\n }\n }, []);\n\n useEffect(() => {\n storeCalendarIsVisibleOnStorage(calendarIsVisible);\n }, [calendarIsVisible]);\n\n useEffect(() => {\n if (hasValidData && props.onDataIsValid) {\n props.onDataIsValid();\n }\n\n if (!hasValidData && props.onDataIsInvalid) {\n props.onDataIsInvalid();\n }\n }, [hasValidData]);\n\n let selectedTerms = [];\n if (terms && terms.length > 0 && termsListById) {\n selectedTerms = compact(mapTermsListById(terms));\n\n if (typeof selectedTerms === 'string') {\n selectedTerms = [];\n }\n }\n\n let termsListByNameKeys = [];\n if (typeof termsListByName === 'object' && termsListByName !== null) {\n termsListByNameKeys = Object.keys(termsListByName);\n }\n\n const panelClass = calendarIsVisible ? 'future-action-panel' : 'future-action-panel hidden-calendar';\n const contentPanelClass = calendarIsVisible ? 'future-action-panel-content' : 'future-action-panel-content hidden-calendar';\n const datePanelClass = calendarIsVisible ? 'future-action-date-panel' : 'future-action-date-panel hidden-calendar';\n\n let is24hour;\n if (props.timeFormat === 'inherited') {\n is24hour = !props.is12Hour;\n } else {\n is24hour = props.timeFormat === '24h';\n }\n\n const replaceCurlyBracketsWithLink = (string, href, target) => {\n const parts = string.split('{');\n const result = [];\n\n result.push(parts.shift());\n\n for (const part of parts) {\n const [before, after] = part.split('}');\n\n result.push(\n {before}\n );\n\n result.push(after);\n }\n\n return result;\n };\n\n // Remove items from actions list if related to taxonomies and there is no taxonmoy for the post type\n let actionsSelectOptions = props.actionsSelectOptions;\n if (!props.taxonomy) {\n actionsSelectOptions = props.actionsSelectOptions.filter((item) => {\n return ['category', 'category-add', 'category-remove', 'category-remove-all'].indexOf(item.value) === -1;\n });\n }\n\n const HelpText = replaceCurlyBracketsWithLink(props.strings.timezoneSettingsHelp, '/wp-admin/options-general.php#timezone_string', '_blank');\n const displayTaxonomyField = String(action).includes('category') && action !== 'category-remove-all';\n\n let termsFieldLabel = taxonomyName;\n switch (action) {\n case 'category':\n termsFieldLabel = props.strings.newTerms.replace('%s', taxonomyName);\n break;\n case 'category-remove':\n termsFieldLabel = props.strings.removeTerms.replace('%s', taxonomyName);\n break;\n case 'category-add':\n termsFieldLabel = props.strings.addTerms.replace('%s', taxonomyName);\n break;\n }\n\n const validateData = () => {\n let valid = true;\n\n if (!enabled) {\n setValidationError('');\n return true;\n }\n\n if (!action) {\n setValidationError(props.strings.errorActionRequired);\n valid = false;\n }\n\n if (!date) {\n setValidationError(props.strings.errorDateRequired);\n valid = false;\n }\n\n // Check if the date is in the past\n if (date && new Date(date) < new Date()) {\n setValidationError(props.strings.errorDateInPast);\n valid = false;\n }\n\n const isTermRequired = ['category', 'category-add', 'category-remove'].includes(action);\n const noTermIsSelected = terms.length === 0 || (terms.length === 1 && (terms[0] === '' || terms[0] === '0'));\n\n if (isTermRequired && noTermIsSelected) {\n setValidationError(props.strings.errorTermsRequired);\n valid = false;\n }\n\n if (valid) {\n setValidationError('');\n }\n\n return valid;\n }\n\n useEffect(() => {\n if (!enabled) {\n setHasValidData(true);\n setValidationError('');\n\n return;\n }\n\n setHasValidData(validateData());\n }, [action, date, enabled, terms, taxonomy]);\n\n // This adds a 'cancel' class to the input when the user clicks on the\n // field to prevent the form from being submitted. This is a workaround\n // for the issue on the quick-edit form where the form is submitted when\n // the user presses the 'Enter' key trying to add a term to the field.\n const forceIgnoreAutoSubmitOnEnter = (e) => {\n jQuery(e.target).addClass('cancel');\n }\n\n return (\n \n
\n {props.autoEnableAndHideCheckbox && (\n \n )}\n\n \n\n {!props.autoEnableAndHideCheckbox && (\n \n \n \n )}\n\n {enabled && (\n \n \n \n \n\n \n\n {action === 'change-status' &&\n \n \n \n }\n\n {\n displayTaxonomyField && (\n isFetchingTerms && (\n \n \n {`${props.strings.loading} (${taxonomyName})`}\n \n \n \n )\n || (!taxonomy && (\n \n \n
\n {props.strings.noTaxonomyFound}\n
\n
\n
\n )\n || (\n termsListByNameKeys.length === 0 && (\n \n \n
\n {props.strings.noTermsFound}\n
\n
\n
\n )\n || (\n \n \n \n \n \n )\n )\n )\n )\n }\n\n \n setCalendarIsVisible(!calendarIsVisible)}\n is12Hour={!is24hour}\n startOfWeek={props.startOfWeek}\n isExpanded={calendarIsVisible}\n strings={props.strings}\n />\n \n\n \n
\n
\n\n {HelpText}\n
\n
\n\n {!hasValidData && (\n \n \n
{validationError}
\n
\n
\n )}\n
\n )}\n
\n \n
\n );\n};\n","import { Slot, Fill } from '@wordpress/components';\n\nexport const FutureActionPanelAfterActionField = ({ children }) => (\n \n {children}\n \n);\n\nconst FutureActionPanelAfterActionFieldSlot = (props) => (\n \n);\n\nFutureActionPanelAfterActionField.Slot = FutureActionPanelAfterActionFieldSlot;\n\nexport default FutureActionPanelAfterActionField;\n","import { FutureActionPanel } from './';\n\nexport const FutureActionPanelBlockEditor = (props) => {\n const { PluginDocumentSettingPanel } = wp.editPost;\n const { useDispatch, select } = wp.data;\n\n const { editPost } = useDispatch('core/editor');\n\n const editPostAttribute = (newAttribute) => {\n const attribute = {\n publishpress_future_action: {}\n };\n\n // For each property on newAttribute, set the value on attribute\n for (const [name, value] of Object.entries(newAttribute)) {\n attribute.publishpress_future_action[name] = value;\n }\n\n editPost(attribute);\n }\n\n const onChangeData = (attribute, value) => {\n const store = select(props.storeName);\n\n const newAttribute = {\n 'enabled': store.getEnabled()\n }\n\n if (newAttribute.enabled) {\n newAttribute['action'] = store.getAction();\n newAttribute['newStatus'] = store.getNewStatus();\n newAttribute['date'] = store.getDate();\n newAttribute['terms'] = store.getTerms();\n newAttribute['taxonomy'] = store.getTaxonomy();\n newAttribute['extraData'] = store.getExtraData();\n }\n\n editPostAttribute(newAttribute);\n }\n\n const data = select('core/editor').getEditedPostAttribute('publishpress_future_action');\n\n const { lockPostSaving, unlockPostSaving } = useDispatch('core/editor');\n\n const onDataIsValid = () => {\n unlockPostSaving('future-action');\n }\n\n const onDataIsInvalid = () => {\n lockPostSaving('future-action');\n }\n\n return (\n \n
\n \n
\n \n );\n};\n","import { FutureActionPanel, SelectControl } from '.';\nimport { getElementByName } from '../utils';\n\nexport const FutureActionPanelBulkEdit = (props) => {\n const { useSelect, useDispatch, select } = wp.data;\n const { useEffect } = wp.element;\n\n const onChangeData = (attribute, value) => {\n getElementByName('future_action_bulk_enabled').value = select(props.storeName).getEnabled() ? 1 : 0;\n getElementByName('future_action_bulk_action').value = select(props.storeName).getAction();\n getElementByName('future_action_bulk_new_status').value = select(props.storeName).getNewStatus();\n getElementByName('future_action_bulk_date').value = select(props.storeName).getDate();\n getElementByName('future_action_bulk_terms').value = select(props.storeName).getTerms().join(',');\n getElementByName('future_action_bulk_taxonomy').value = select(props.storeName).getTaxonomy();\n }\n\n const date = useSelect((select) => select(props.storeName).getDate(), []);\n const enabled = useSelect((select) => select(props.storeName).getEnabled(), []);\n const action = useSelect((select) => select(props.storeName).getAction(), []);\n const newStatus = useSelect((select) => select(props.storeName).getNewStatus(), []);\n const terms = useSelect((select) => select(props.storeName).getTerms(), []);\n const taxonomy = useSelect((select) => select(props.storeName).getTaxonomy(), []);\n const changeAction = useSelect((select) => select(props.storeName).getChangeAction(), []);\n const hasValidData = useSelect((select) => select(props.storeName).getHasValidData(), []);\n\n const {\n setChangeAction\n } = useDispatch(props.storeName);\n\n let termsString = terms;\n if (typeof terms === 'object') {\n termsString = terms.join(',');\n }\n\n const handleStrategyChange = (value) => {\n setChangeAction(value);\n };\n\n const options = [\n { value: 'no-change', label: props.strings.noChange },\n { value: 'change-add', label: props.strings.changeAdd },\n { value: 'add-only', label: props.strings.addOnly },\n { value: 'change-only', label: props.strings.changeOnly },\n { value: 'remove-only', label: props.strings.removeOnly },\n ];\n\n const optionsToDisplayPanel = ['change-add', 'add-only', 'change-only'];\n\n useEffect(() => {\n // We are not using onDataIsValid and onDataIsInvalid because we need to enable/disable the button\n // also based on the changeAction value.\n if (hasValidData || changeAction === 'no-change') {\n jQuery('#bulk_edit').prop('disabled', false);\n } else {\n jQuery('#bulk_edit').prop('disabled', true);\n }\n }, [hasValidData, changeAction]);\n\n return (\n
\n \n\n {optionsToDisplayPanel.includes(changeAction) && (\n \n )}\n\n {/* Bulk edit JS code will save only fields with name inside the edit row */}\n \n \n \n \n \n \n \n \n
\n );\n};\n","import { FutureActionPanel } from \"./\";\nimport { select, useSelect } from \"@wordpress/data\";\nimport { useEffect } from \"@wordpress/element\";\n\nexport const FutureActionPanelClassicEditor = (props) => {\n const browserTimezoneOffset = new Date().getTimezoneOffset();\n\n const getElementByName = (name) => {\n return document.getElementsByName(name)[0];\n }\n\n const onChangeData = (attribute, value) => {\n const store = select(props.storeName);\n\n getElementByName('future_action_enabled').value = store.getEnabled() ? 1 : 0;\n getElementByName('future_action_action').value = store.getAction();\n getElementByName('future_action_new_status').value = store.getNewStatus();\n getElementByName('future_action_date').value = store.getDate();\n getElementByName('future_action_terms').value = store.getTerms().join(',');\n getElementByName('future_action_taxonomy').value = store.getTaxonomy();\n }\n\n const getTermsFromElementByName = (name) => {\n const element = getElementByName(name);\n if (!element) {\n return [];\n }\n\n let terms = element.value.split(',');\n\n if (terms.length === 1 && terms[0] === '') {\n terms = [];\n }\n\n return terms.map(term => parseInt(term));\n }\n\n const getElementValueByName = (name) => {\n const element = getElementByName(name);\n if (!element) {\n return '';\n }\n\n return element.value;\n }\n\n const data = {\n enabled: getElementValueByName('future_action_enabled') === '1',\n action: getElementValueByName('future_action_action'),\n newStatus: getElementValueByName('future_action_new_status'),\n date: getElementValueByName('future_action_date'),\n terms: getTermsFromElementByName('future_action_terms'),\n taxonomy: getElementValueByName('future_action_taxonomy'),\n };\n\n const onDataIsValid = () => {\n jQuery('#publish').prop('disabled', false);\n }\n\n const onDataIsInvalid = () => {\n jQuery('#publish').prop('disabled', true);\n }\n\n return (\n
\n \n
\n );\n};\n","import { FutureActionPanel } from './';\nimport { useSelect, select } from '@wordpress/data';\nimport { useEffect } from '@wordpress/element';\n\nexport const FutureActionPanelQuickEdit = (props) => {\n const onChangeData = (attribute, value) => {};\n\n const date = useSelect((select) => select(props.storeName).getDate(), []);\n const enabled = useSelect((select) => select(props.storeName).getEnabled(), []);\n const action = useSelect((select) => select(props.storeName).getAction(), []);\n const terms = useSelect((select) => select(props.storeName).getTerms(), []);\n const taxonomy = useSelect((select) => select(props.storeName).getTaxonomy(), []);\n const hasValidData = useSelect((select) => select(props.storeName).getHasValidData(), []);\n const newStatus = useSelect((select) => select(props.storeName).getNewStatus(), []);\n\n let termsString = terms;\n if (typeof terms === 'object') {\n termsString = terms.join(',');\n }\n\n const onDataIsValid = () => {\n jQuery('.button-primary.save').prop('disabled', false);\n }\n\n const onDataIsInvalid = () => {\n jQuery('.button-primary.save').prop('disabled', true);\n }\n\n return (\n
\n \n\n {/* Quick edit JS code will save only fields with name inside the edit row */}\n \n \n \n \n \n \n \n \n
\n );\n};\n","import { Slot, Fill } from '@wordpress/components';\n\nexport const FutureActionPanelTop = ({ children }) => (\n \n {children}\n \n);\n\nconst FutureActionPanelTopSlot = (props) => (\n \n);\n\nFutureActionPanelTop.Slot = FutureActionPanelTopSlot;\n\nexport default FutureActionPanelTop;\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const NonceControl = function (props) {\n if (! props.name) {\n props.name = '_wpnonce';\n }\n\n if (! props.referrer) {\n props.referrer = true;\n }\n\n return (\n \n \n\n {props.referrer &&\n \n }\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nimport {\n SettingRow,\n SettingsFieldset,\n SettingsTable,\n SelectControl,\n TextControl,\n TokensControl,\n CheckboxControl\n} from './';\nimport { useEffect, useState, Fragment, useRef } from '@wordpress/element';\nimport { addQueryArgs } from '@wordpress/url';\nimport { applyFilters } from '@wordpress/hooks';\nimport { apiFetch } from '&wp';\n\nconst { PanelRow, BaseControl } = wp.components;\n\nexport const PostTypeSettingsPanel = function (props) {\n const originalExpireTypeList = props.expireTypeList[props.postType];\n\n const [postTypeTaxonomy, setPostTypeTaxonomy] = useState(props.settings.taxonomy);\n const [termOptions, setTermOptions] = useState([]);\n const [termsSelectIsLoading, setTermsSelectIsLoading] = useState(false);\n const [selectedTerms, setSelectedTerms] = useState([]);\n const [settingHowToExpire, setSettingHowToExpire] = useState(props.settings.howToExpire);\n const [isActive, setIsActive] = useState(props.settings.active);\n const [expireOffset, setExpireOffset] = useState(props.settings.defaultExpireOffset);\n const [emailNotification, setEmailNotification] = useState(props.settings.emailNotification);\n const [isAutoEnabled, setIsAutoEnabled] = useState(props.settings.autoEnabled);\n const [hasValidData, setHasValidData] = useState(false);\n const [validationError, setValidationError] = useState('');\n const [taxonomyLabel, setTaxonomyLabel] = useState('');\n const [howToExpireList, setHowToExpireList] = useState(originalExpireTypeList);\n const [newStatus, setNewStatus] = useState(props.settings.newStatus);\n const [hasPendingValidation, setHasPendingValidation] = useState(false);\n const [offsetPreview, setOffsetPreview] = useState('');\n const [currentTime, setCurrentTime] = useState();\n const apiRequestControllerRef = useRef(new AbortController());\n\n const taxonomyRelatedActions = [\n 'category',\n 'category-add',\n 'category-remove',\n 'category-remove-all'\n ];\n\n const onChangeTaxonomy = function (value) {\n setPostTypeTaxonomy(value);\n };\n\n const onChangeTerms = (value) => {\n setSelectedTerms(value);\n };\n\n const onChangeHowToExpire = (value) => {\n setSettingHowToExpire(value);\n }\n\n const onChangeActive = (value) => {\n setIsActive(value);\n }\n\n const onChangeExpireOffset = (value) => {\n setExpireOffset(value);\n }\n\n const onChangeEmailNotification = (value) => {\n setEmailNotification(value);\n }\n\n const onChangeAutoEnabled = (value) => {\n setIsAutoEnabled(value);\n }\n\n const validateData = () => {\n if (! isActive) {\n setValidationError('');\n return true;\n }\n\n const offset = expireOffset ? expireOffset : props.settings.globalDefaultExpireOffset;\n\n if (offset) {\n const controller = apiRequestControllerRef.current;\n\n if (controller) {\n controller.abort();\n }\n\n apiRequestControllerRef.current = new AbortController();\n const { signal } = apiRequestControllerRef.current;\n\n setHasPendingValidation(true);\n\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/settings/validate-expire-offset`),\n method: 'POST',\n data: {\n offset\n },\n signal,\n }).then((result) => {\n setHasPendingValidation(false);\n\n setHasValidData(result.isValid);\n setValidationError(result.message);\n\n if (result.isValid) {\n setOffsetPreview(result.preview);\n setCurrentTime(result.currentTime);\n } else {\n setOffsetPreview('');\n }\n }).catch((error) => {\n if (error.name === 'AbortError') {\n return;\n }\n\n setHasPendingValidation(false);\n setHasValidData(false);\n setValidationError(error.message);\n setOffsetPreview('');\n });\n }\n\n setValidationError('');\n return true;\n }\n\n useEffect(() => {\n // Remove items from expireTypeList if related to taxonomies and there is no taxonmoy for the post type\n if (props.taxonomiesList.length === 0) {\n let newExpireTypeList = [];\n\n newExpireTypeList = howToExpireList.filter((item) => {\n return taxonomyRelatedActions.indexOf(item.value) === -1;\n });\n\n setHowToExpireList(newExpireTypeList);\n }\n }, []);\n\n useEffect(() => {\n if (!postTypeTaxonomy || !props.taxonomiesList) {\n return;\n }\n\n setTermsSelectIsLoading(true);\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/terms/${postTypeTaxonomy}`),\n }).then((result) => {\n let options = [];\n\n let settingsTermsOptions = null;\n let option;\n\n result.terms.forEach(term => {\n option = { value: term.id, label: term.name };\n options.push(option);\n\n if (postTypeTaxonomy === props.settings.taxonomy && props.settings.terms.includes(term.id)) {\n if (settingsTermsOptions === null) {\n settingsTermsOptions = [];\n }\n\n settingsTermsOptions.push(option.label);\n }\n });\n\n setTermOptions(options);\n setSelectedTerms(settingsTermsOptions);\n setTermsSelectIsLoading(false);\n });\n\n props.taxonomiesList.forEach((taxonomy) => {\n if (taxonomy.value === postTypeTaxonomy) {\n setTaxonomyLabel(taxonomy.label);\n }\n });\n }, [postTypeTaxonomy]);\n\n useEffect(() => {\n setHasValidData(validateData());\n }, [isActive, expireOffset]);\n\n useEffect(() => {\n if (!taxonomyLabel) {\n return;\n }\n\n // Update the list of actions replacing the taxonomy name.\n let newExpireTypeList = [];\n\n originalExpireTypeList.forEach((expireType) => {\n let label = expireType.label;\n\n if (taxonomyRelatedActions.indexOf(expireType.value) !== -1) {\n label = label.replace('%s', taxonomyLabel.toLowerCase());\n }\n\n newExpireTypeList.push({\n value: expireType.value,\n label: label\n });\n });\n\n setHowToExpireList(newExpireTypeList);\n }, [taxonomyLabel]);\n\n useEffect(() => {\n if (hasValidData && props.onDataIsValid) {\n props.onDataIsValid(props.postType);\n }\n\n if (!hasValidData && props.onDataIsInvalid) {\n props.onDataIsInvalid(props.postType);\n }\n }, [hasValidData]);\n\n useEffect(() => {\n if (hasPendingValidation && props.onValidationStarted) {\n props.onValidationStarted(props.postType);\n }\n\n if (!hasPendingValidation && props.onValidationFinished) {\n props.onValidationFinished(props.postType);\n }\n }, [hasPendingValidation]);\n\n const termOptionsLabels = termOptions.map((term) => term.label);\n\n let settingsRows = [\n \n \n \n ];\n\n if (isActive) {\n settingsRows.push(\n \n \n \n );\n\n settingsRows.push(\n \n \n \n \n );\n\n settingsRows.push(\n \n \n\n {settingHowToExpire === 'change-status' &&\n \n }\n\n {(props.taxonomiesList.length > 0 && (['category', 'category-add', 'category-remove'].indexOf(settingHowToExpire) > -1)) &&\n \n }\n \n );\n\n settingsRows.push(\n \n \n\n {offsetPreview && (\n \n

{props.text.datePreview}

\n
\n
\n {props.text.datePreviewCurrent}: \n {currentTime}\n
\n
\n {props.text.datePreviewComputed}: \n {offsetPreview}\n
\n
\n
\n )}\n
\n );\n\n settingsRows.push(\n \n \n \n );\n }\n\n settingsRows = applyFilters('expirationdate_settings_posttype', settingsRows, props, isActive, useState);\n\n return (\n \n \n\n {! hasValidData && (\n \n
\n {props.text.error}: {validationError}\n
\n
\n )}\n
\n );\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nimport { PostTypeSettingsPanel } from \"./\";\n\nexport const PostTypesSettingsPanels = function (props) {\n let panels = [];\n\n for (const [postType, postTypeSettings] of Object.entries(props.settings)) {\n panels.push(\n \n );\n }\n\n return (panels);\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\nimport { SelectControl as WPSelectControl } from \"@wordpress/components\";\n\nexport const SelectControl = function (props) {\n const onChange = (value) => {\n props.onChange(value);\n };\n\n return (\n \n {props.options.length === 0 && (\n
{props.noItemFoundMessage}
\n )}\n\n {props.options.length > 0 && (\n \n )}\n\n {props.children}\n\n

{props.description}

\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const SettingRow = function (props) {\n return (\n \n \n \n \n \n {props.children}\n \n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsFieldset = function (props) {\n return (\n
\n {props.legend}\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsForm = function (props) {\n return (\n
\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const SettingsSection = function (props) {\n return (\n \n

{props.title}

\n

{props.description}

\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsTable = function (props) {\n return (\n \n \n {props.bodyChildren}\n \n
\n )\n}\n","/*\n * Copyright (c) 2024. PublishPress, All rights reserved.\n */\nexport const Spinner = function (props) {\n return (\n
\n );\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SubmitButton = function (props) {\n return (\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\nimport { TextControl as WPTextControl } from \"@wordpress/components\";\nimport { Spinner } from \"./\";\n\nexport const TextControl = function (props) {\n let description;\n\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n\n const onChange = function (value) {\n if (props.onChange) {\n props.onChange(value);\n }\n };\n\n let className = props.className ? props.className : '';\n\n if (props.loading) {\n className += ' publishpress-future-loading publishpress-future-loading-input';\n }\n\n return (\n \n
\n \n\n {props.loading && }\n\n {description}\n
\n
\n )\n}\n","import { Button } from '@wordpress/components';\n\nexport const ToggleArrowButton = function (props) {\n const onClick = function () {\n if (props.onClick) {\n props.onClick();\n }\n };\n\n const iconExpanded = props.iconExpanded ? props.iconExpanded : 'arrow-up-alt2';\n const iconCollapsed = props.iconCollapsed ? props.iconCollapsed : 'arrow-down-alt2';\n\n const icon = props.isExpanded ? iconExpanded : iconCollapsed;\n\n const title = props.isExpanded ? props.titleExpanded : props.titleCollapsed;\n\n return (\n \n )\n}\n","import { ToggleArrowButton } from \"./ToggleArrowButton\";\nimport { DateTimePicker } from \"./DateTimePicker\";\nimport { Fragment, useEffect } from \"@wordpress/element\";\n\nexport const ToggleCalendarDatePicker = (\n {\n isExpanded,\n strings,\n onToggleCalendar,\n currentDate,\n onChangeDate,\n is12Hour,\n startOfWeek\n }\n) => {\n useEffect(() => {\n // Move the element of the toggle button to between the time and date elements.\n const toggleButtonElement = document.querySelector('.future-action-calendar-toggle');\n\n if (! toggleButtonElement) {\n return;\n }\n\n const dateTimeElement = toggleButtonElement.nextElementSibling;\n\n if (! dateTimeElement) {\n return;\n }\n\n const timeElement = dateTimeElement.querySelector('.components-datetime__time');\n\n if (! timeElement) {\n return;\n }\n\n const dateElement = timeElement.nextSibling;\n\n if (! dateElement) {\n return;\n }\n\n dateTimeElement.insertBefore(toggleButtonElement, dateElement)\n });\n\n return (\n \n \n\n \n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment, useState, useEffect } from \"@wordpress/element\";\nimport { FormTokenField } from \"@wordpress/components\";\n\nexport const TokensControl = (props) => {\n const [stringValue, setStringValue] = useState('');\n\n useEffect(() => {\n if (props.value) {\n setStringValue(props.value.join(','));\n }\n }, [props.value]);\n\n let description;\n\n if (props.description) {\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n }\n\n const onChange = (value) => {\n if (props.onChange) {\n props.onChange(value);\n }\n\n if (typeof value === 'object') {\n setStringValue(value.join(','));\n } else {\n setStringValue('');\n }\n }\n\n const value = props.value ? props.value : [];\n \n return (\n \n \n \n\n {description}\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const TrueFalseControl = function (props) {\n const { Fragment } = wp.element;\n\n const onChange = (e) => {\n if (props.onChange) {\n props.onChange(\n e.target.value === props.trueValue && jQuery(e.target).is(':checked')\n );\n // Check only the true radio... using the field name? or directly the ID\n }\n };\n\n return (\n \n \n\n \n   \n \n {props.falseLabel}\n\n

{props.description}

\n
\n )\n}\n","export { ButtonsPanel } from \"./ButtonsPanel\";\nexport { FutureActionPanel } from \"./FutureActionPanel\";\nexport { FutureActionPanelBlockEditor } from \"./FutureActionPanelBlockEditor\";\nexport { FutureActionPanelClassicEditor } from \"./FutureActionPanelClassicEditor\";\nexport { FutureActionPanelQuickEdit } from \"./FutureActionPanelQuickEdit\";\nexport { FutureActionPanelBulkEdit } from \"./FutureActionPanelBulkEdit\";\nexport { PostTypeSettingsPanel } from \"./PostTypeSettingsPanel\";\nexport { PostTypesSettingsPanels } from \"./PostTypesSettingsPanels\";\nexport { SettingRow } from \"./SettingRow\";\nexport { SettingsFieldset } from \"./SettingsFieldset\";\nexport { SettingsForm } from \"./SettingsForm\";\nexport { SettingsSection } from \"./SettingsSection\";\nexport { SettingsTable } from \"./SettingsTable\";\nexport { SubmitButton } from \"./SubmitButton\";\nexport { CheckboxControl } from \"./CheckboxControl\";\nexport { SelectControl } from \"./SelectControl\";\nexport { TextControl } from \"./TextControl\";\nexport { TokensControl } from \"./TokensControl\";\nexport { NonceControl } from \"./NonceControl\";\nexport { TrueFalseControl } from \"./TrueFalseControl\";\nexport { Spinner } from \"./Spinner\";\n","import { formatUnixTimeToTimestamp, getCurrentTimeAsTimestamp, normalizeUnixTimeToSeconds } from './time';\nimport { isNumber } from './utils';\nimport { register, createReduxStore } from '@wordpress/data';\n\nexport const createStore = (props) => {\n if (props.defaultState.terms && typeof props.defaultState.terms === 'string') {\n props.defaultState.terms = props.defaultState.terms.split(',').map(term => parseInt(term));\n }\n\n let defaultState = {\n action: props.defaultState.action,\n date: props.defaultState.date ? props.defaultState.date : getCurrentTimeAsTimestamp(),\n enabled: props.defaultState.autoEnable,\n terms: props.defaultState.terms ? props.defaultState.terms : [],\n taxonomy: props.defaultState.taxonomy ? props.defaultState.taxonomy : null,\n newStatus: props.defaultState.newStatus ? props.defaultState.newStatus : 'draft',\n termsListByName: null,\n termsListById: null,\n taxonomyName: null,\n isFetchingTerms: false,\n changeAction: 'no-change',\n calendarIsVisible: true,\n hasValidData: true,\n extraData: props.defaultState.extraData ? props.defaultState.extraData : {},\n }\n\n const store = createReduxStore(props.name, {\n reducer(state = defaultState, action) {\n switch (action.type) {\n case 'SET_ACTION':\n return {\n ...state,\n action: action.action,\n };\n case 'SET_NEW_STATUS':\n return {\n ...state,\n newStatus: action.newStatus,\n };\n case 'SET_DATE':\n // Make sure the date is a number, if it is a string with only numbers\n if (typeof action.date !== 'number' && isNumber(action.date)) {\n action.date = parseInt(action.date);\n }\n\n // If string, convert to unix time\n if (typeof action.date === 'string') {\n action.date = new Date(action.date).getTime();\n }\n\n // Make sure the time is always in seconds\n action.date = normalizeUnixTimeToSeconds(action.date);\n\n // Convert to formated string format, considering it is in the site's timezone\n action.date = formatUnixTimeToTimestamp(action.date);\n\n return {\n ...state,\n date: action.date,\n }\n case 'SET_ENABLED':\n return {\n ...state,\n enabled: action.enabled,\n }\n case 'SET_TERMS':\n return {\n ...state,\n terms: action.terms,\n }\n case 'SET_TAXONOMY':\n return {\n ...state,\n taxonomy: action.taxonomy,\n }\n case 'SET_TERMS_LIST_BY_NAME':\n return {\n ...state,\n termsListByName: action.termsListByName,\n }\n case 'SET_TERMS_LIST_BY_ID':\n return {\n ...state,\n termsListById: action.termsListById,\n }\n case 'SET_TAXONOMY_NAME':\n return {\n ...state,\n taxonomyName: action.taxonomyName,\n }\n case 'SET_CHANGE_ACTION':\n return {\n ...state,\n changeAction: action.changeAction,\n }\n case 'SET_CALENDAR_IS_VISIBLE':\n return {\n ...state,\n calendarIsVisible: action.calendarIsVisible,\n }\n case 'SET_HAS_VALID_DATA':\n return {\n ...state,\n hasValidData: action.hasValidData,\n }\n\n case 'SET_EXTRA_DATA':\n return {\n ...state,\n extraData: {\n ...action.extraData,\n }\n }\n\n case 'SET_EXTRA_DATA_BY_NAME':\n const extraData = {\n ...state.extraData,\n [action.name]: action.value\n };\n\n return {\n ...state,\n extraData: {...extraData}\n }\n }\n\n return state;\n },\n actions: {\n setAction(action) {\n return {\n type: 'SET_ACTION',\n action: action\n };\n },\n setNewStatus(newStatus) {\n return {\n type: 'SET_NEW_STATUS',\n newStatus: newStatus\n };\n },\n setDate(date) {\n return {\n type: 'SET_DATE',\n date: date\n };\n },\n setEnabled(enabled) {\n return {\n type: 'SET_ENABLED',\n enabled: enabled\n };\n },\n setTerms(terms) {\n return {\n type: 'SET_TERMS',\n terms: terms\n };\n },\n setTaxonomy(taxonomy) {\n return {\n type: 'SET_TAXONOMY',\n taxonomy: taxonomy\n };\n },\n setTermsListByName(termsListByName) {\n return {\n type: 'SET_TERMS_LIST_BY_NAME',\n termsListByName: termsListByName\n };\n },\n setTermsListById(termsListById) {\n return {\n type: 'SET_TERMS_LIST_BY_ID',\n termsListById: termsListById\n };\n },\n setTaxonomyName(taxonomyName) {\n return {\n type: 'SET_TAXONOMY_NAME',\n taxonomyName: taxonomyName\n };\n },\n setIsFetchingTerms(isFetchingTerms) {\n return {\n type: 'SET_IS_FETCHING_TERMS',\n isFetchingTerms: isFetchingTerms\n }\n },\n setChangeAction(changeAction) {\n return {\n type: 'SET_CHANGE_ACTION',\n changeAction: changeAction\n }\n },\n setCalendarIsVisible(calendarIsVisible) {\n return {\n type: 'SET_CALENDAR_IS_VISIBLE',\n calendarIsVisible: calendarIsVisible\n }\n },\n setHasValidData(hasValidData) {\n return {\n type: 'SET_HAS_VALID_DATA',\n hasValidData: hasValidData\n }\n },\n setExtraData(extraData) {\n return {\n type: 'SET_EXTRA_DATA',\n extraData: extraData\n }\n },\n setExtraDataByName(name, value) {\n return {\n type: 'SET_EXTRA_DATA_BY_NAME',\n name: name,\n value: value\n }\n }\n },\n selectors: {\n getAction(state) {\n return state.action;\n },\n getNewStatus(state) {\n return state.newStatus;\n },\n getDate(state) {\n return state.date;\n },\n getEnabled(state) {\n return state.enabled;\n },\n getTerms(state) {\n return state.terms;\n },\n getTaxonomy(state) {\n return state.taxonomy;\n },\n getTermsListByName(state) {\n return state.termsListByName;\n },\n getTermsListById(state) {\n return state.termsListById;\n },\n getTaxonomyName(state) {\n return state.taxonomyName;\n },\n getIsFetchingTerms(state) {\n return state.isFetchingTerms;\n },\n getChangeAction(state) {\n return state.changeAction;\n },\n getCalendarIsVisible(state) {\n return state.calendarIsVisible;\n },\n getHasValidData(state) {\n return state.hasValidData;\n },\n getExtraData(state) {\n return state.extraData;\n },\n getExtraDataByName(state, name) {\n return state.extraData[name] || null;\n }\n }\n });\n\n register(store);\n\n return store;\n}\n","export const getCurrentTimeInSeconds = () => {\n return normalizeUnixTimeToSeconds(new Date().getTime());\n}\n\nexport const getCurrentTimeAsTimestamp = () => {\n return formatUnixTimeToTimestamp(getCurrentTimeInSeconds());\n}\n\nexport const formatUnixTimeToTimestamp = (unixTimestamp) => {\n const date = new Date(\n normalizeUnixTimeToSeconds(unixTimestamp)\n );\n\n const year = date.getFullYear();\n const month = (\"0\" + (date.getMonth() + 1)).slice(-2); // Months are zero-based\n const day = (\"0\" + date.getDate()).slice(-2);\n const hours = (\"0\" + date.getHours()).slice(-2);\n const minutes = (\"0\" + date.getMinutes()).slice(-2);\n const seconds = (\"0\" + date.getSeconds()).slice(-2);\n\n return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;\n}\n\nexport const formatTimestampToUnixTime = (time) => {\n const date = new Date(time);\n\n return normalizeUnixTimeToSeconds(date.getTime());\n}\n\nexport const timeIsInSeconds = (time) => {\n return parseInt(time).toString().length <= 10;\n}\n\nexport const normalizeUnixTimeToSeconds = (time) => {\n time = parseInt(time);\n\n return timeIsInSeconds() ? time : time / 1000;\n}\n\nexport const normalizeUnixTimeToMilliseconds = (time) => {\n time = parseInt(time);\n\n return timeIsInSeconds() ? time * 1000 : time;\n}\n","export const compact = (array) => {\n if (!array) {\n return [];\n }\n\n if (! Array.isArray(array) && typeof array === 'object') {\n array = Object.values(array);\n }\n\n return array.filter((item) => {\n return item !== null && item !== undefined && item !== '';\n });\n}\n\nexport const debugLogFactory = (config) => {\n return (description, ...message) => {\n if (console && config.isDebugEnabled) {\n console.debug('[Future]', description, ...message);\n }\n }\n}\n\nexport const isGutenbergEnabled = () => {\n return document.body.classList.contains('block-editor-page');\n}\n\nexport const getElementByName = (name) => {\n return document.getElementsByName(name)[0];\n}\n\nexport const getFieldByName = (name, postId) => {\n return document.querySelector(`#the-list tr#post-${postId} .column-expirationdate input#future_action_${name}-${postId}`);\n}\n\nexport const getFieldValueByName = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field) {\n return null;\n }\n\n return field.value;\n};\n\nexport const getFieldValueByNameAsArrayOfInt = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field || !field.value) {\n return [];\n }\n\n if (typeof field.value === 'number') {\n field.value = field.value.toString();\n }\n\n return field.value.split(',').map(term => parseInt(term));\n};\n\nexport const getFieldValueByNameAsBool = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field) {\n return false;\n }\n\n return field.value === '1' || field.value === 'true';\n}\n\nexport const getActionSettingsFromColumnData = (postId) => {\n const columnData = document.querySelector(`#post-expire-column-${postId}`);\n\n if (!columnData) {\n return {};\n }\n\n return {\n enabled: columnData.dataset.actionEnabled === '1',\n action: columnData.dataset.actionType,\n date: columnData.dataset.actionDate,\n dateUnix: columnData.dataset.actionDateUnix,\n taxonomy: columnData.dataset.actionTaxonomy,\n terms: columnData.dataset.actionTerms,\n newStatus: columnData.dataset.actionNewStatus,\n };\n}\n\n/**\n * This function is used to determine if a value is a number, including strings.\n *\n * @param {*} value\n * @returns\n */\nexport const isNumber = (value) => {\n return !isNaN(value);\n}\n","module.exports = publishpressFutureBlockEditorConfig;","module.exports = wp;","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.element;","module.exports = wp.hooks;","module.exports = wp.plugins;","module.exports = wp.url;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","import { createStore } from './data';\nimport { FutureActionPanelBlockEditor } from './components';\nimport { select } from '@wordpress/data';\nimport { registerPlugin } from '@wordpress/plugins';\nimport {\n actionsSelectOptions,\n is12Hour,\n timeFormat,\n startOfWeek,\n strings,\n taxonomyName,\n postTypeDefaultConfig,\n defaultDate,\n statusesSelectOptions\n} from \"&config.block-editor\";\n\nconst storeName = 'publishpress-future/future-action';\n\ncreateStore({\n name: storeName,\n defaultState: {\n autoEnable: postTypeDefaultConfig.autoEnable,\n action: postTypeDefaultConfig.expireType,\n newStatus: postTypeDefaultConfig.newStatus,\n date: defaultDate,\n taxonomy: postTypeDefaultConfig.taxonomy,\n terms: postTypeDefaultConfig.terms,\n }\n});\n\nconst BlockEditorFutureActionPlugin = () => {\n return (\n \n );\n}\n\nregisterPlugin('publishpress-future-action', {\n render: BlockEditorFutureActionPlugin\n});\n"],"names":["ButtonsPanel","props","children","CheckboxControl","description","useState","checked","setChecked","unescapedDescription","className","dangerouslySetInnerHTML","__html","Fragment","label","name","id","onChange","value","DateTimePicker","currentDate","is12Hour","startOfWeek","normalizeUnixTimeToMilliseconds","__nextRemoveHelpButton","wp","components","PanelRow","SelectControl","FormTokenField","Spinner","BaseControl","element","useEffect","decodeEntities","htmlEntities","addQueryArgs","url","data","useSelect","useDispatch","apiFetch","FutureActionPanel","action","select","storeName","getAction","date","getDate","enabled","getEnabled","terms","getTerms","taxonomy","getTaxonomy","taxonomyName","getTaxonomyName","termsListByName","getTermsListByName","termsListById","getTermsListById","isFetchingTerms","getIsFetchingTerms","calendarIsVisible","getCalendarIsVisible","hasValidData","getHasValidData","newStatus","getNewStatus","validationError","setValidationError","setAction","setDate","setEnabled","setTerms","setTaxonomy","setTermsListByName","setTermsListById","setTaxonomyName","setIsFetchingTerms","setCalendarIsVisible","setHasValidData","setNewStatus","insertTerm","term","count","link","slug","callOnChangeData","attribute","onChangeData","handleEnabledChange","isChecked","fetchTerms","path","then","result","forEach","getCalendarIsVisibleFromStorage","localStorage","getItem","context","autoEnableAndHideCheckbox","isCleanNewPost","setItem","onDataIsValid","onDataIsInvalid","selectedTerms","length","compact","map","mapTermsListById","termsListByNameKeys","Object","keys","is24hour","panelClass","contentPanelClass","datePanelClass","timeFormat","actionsSelectOptions","filter","item","indexOf","HelpText","string","href","target","parts","split","push","shift","before","after","key","replaceCurlyBracketsWithLink","strings","timezoneSettingsHelp","displayTaxonomyField","String","includes","termsFieldLabel","newTerms","replace","removeTerms","addTerms","valid","errorActionRequired","errorDateRequired","Date","errorDateInPast","isTermRequired","noTermIsSelected","errorTermsRequired","validateData","SlotFillProvider","type","FutureActionPanelTop","Slot","fillProps","enablePostExpiration","options","FutureActionPanelAfterActionField","statusesSelectOptions","loading","noTaxonomyFound","noTermsFound","suggestions","mapTermsListByName","placeholder","addTermsPlaceholder","maxSuggestions","onFocus","e","jQuery","addClass","__experimentalExpandOnFocus","__experimentalAutoSelectFirstMatch","ToggleCalendarDatePicker","onChangeDate","onToggleCalendar","isExpanded","PluginArea","scope","Fill","FutureActionPanelBlockEditor","PluginDocumentSettingPanel","editPost","getEditedPostAttribute","lockPostSaving","unlockPostSaving","title","panelTitle","initialOpen","postTypeDefaultConfig","autoEnable","postType","store","newAttribute","getExtraData","publishpress_future_action","entries","editPostAttribute","FutureActionPanelBulkEdit","changeAction","getChangeAction","setChangeAction","termsString","join","noChange","changeAdd","addOnly","changeOnly","removeOnly","prop","futureActionUpdate","isNewPost","getElementByName","nonce","FutureActionPanelClassicEditor","getTimezoneOffset","document","getElementsByName","getElementValueByName","parseInt","getTermsFromElementByName","FutureActionPanelQuickEdit","NonceControl","referrer","PostTypeSettingsPanel","originalExpireTypeList","expireTypeList","settings","postTypeTaxonomy","setPostTypeTaxonomy","termOptions","setTermOptions","termsSelectIsLoading","setTermsSelectIsLoading","setSelectedTerms","howToExpire","settingHowToExpire","setSettingHowToExpire","active","isActive","setIsActive","defaultExpireOffset","expireOffset","setExpireOffset","emailNotification","setEmailNotification","autoEnabled","isAutoEnabled","setIsAutoEnabled","taxonomyLabel","setTaxonomyLabel","howToExpireList","setHowToExpireList","hasPendingValidation","setHasPendingValidation","offsetPreview","setOffsetPreview","currentTime","setCurrentTime","apiRequestControllerRef","useRef","AbortController","taxonomyRelatedActions","newExpireTypeList","taxonomiesList","settingsTermsOptions","option","offset","globalDefaultExpireOffset","controller","current","abort","signal","method","isValid","message","preview","catch","error","expireType","toLowerCase","onValidationStarted","onValidationFinished","termOptionsLabels","settingsRows","SettingRow","text","fieldActive","fieldActiveLabel","fieldAutoEnable","fieldAutoEnableLabel","fieldTaxonomy","selected","noItemFoundMessage","noItemsfound","fieldTaxonomyDescription","fieldHowToExpire","fieldHowToExpireDescription","statusesList","TokensControl","fieldTerm","isLoading","fieldTermDescription","expandOnFocus","autoSelectFirstMatch","fieldDefaultDateTimeOffset","TextControl","fieldDefaultDateTimeOffsetDescription","datePreview","datePreviewCurrent","datePreviewComputed","fieldWhoToNotify","fieldWhoToNotifyDescription","applyFilters","SettingsFieldset","legend","SettingsTable","bodyChildren","PostTypesSettingsPanels","panels","postTypeSettings","valign","htmlFor","SettingsForm","SettingsSection","SubmitButton","disabled","ToggleArrowButton","iconExpanded","iconCollapsed","icon","titleExpanded","titleCollapsed","Button","isSmall","onClick","toggleButtonElement","querySelector","dateTimeElement","nextElementSibling","timeElement","dateElement","nextSibling","insertBefore","hideCalendar","showCalendar","stringValue","setStringValue","TrueFalseControl","trueValue","is","defaultChecked","trueLabel","falseValue","falseLabel","createStore","defaultState","getCurrentTimeAsTimestamp","extraData","createReduxStore","reducer","state","isNumber","getTime","normalizeUnixTimeToSeconds","formatUnixTimeToTimestamp","actions","setExtraData","setExtraDataByName","selectors","getExtraDataByName","register","getCurrentTimeInSeconds","unixTimestamp","getFullYear","getMonth","slice","getHours","getMinutes","getSeconds","timeIsInSeconds","formatTimestampToUnixTime","time","toString","getFieldByName","array","Array","isArray","values","debugLogFactory","config","console","isDebugEnabled","debug","isGutenbergEnabled","body","classList","contains","postId","getFieldValueByName","field","getFieldValueByNameAsArrayOfInt","getFieldValueByNameAsBool","getActionSettingsFromColumnData","columnData","dataset","actionEnabled","actionType","actionDate","dateUnix","actionDateUnix","actionTaxonomy","actionTerms","actionNewStatus","isNaN","module","exports","publishpressFutureBlockEditorConfig","hooks","plugins","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","defaultDate","registerPlugin","render","getCurrentPostType"],"sourceRoot":""} +{"version":3,"file":"block-editor.js","mappings":"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","sources":["webpack://post-expirator/./assets/jsx/components/ButtonsPanel.jsx","webpack://post-expirator/./assets/jsx/components/CheckboxControl.jsx","webpack://post-expirator/./assets/jsx/components/DateOffsetPreview.jsx","webpack://post-expirator/./assets/jsx/components/DateTimePicker.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanel.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelAfterActionField.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelBlockEditor.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelBulkEdit.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelClassicEditor.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelQuickEdit.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelTop.jsx","webpack://post-expirator/./assets/jsx/components/NonceControl.jsx","webpack://post-expirator/./assets/jsx/components/PostTypeSettingsPanel.jsx","webpack://post-expirator/./assets/jsx/components/PostTypesSettingsPanels.jsx","webpack://post-expirator/./assets/jsx/components/SelectControl.jsx","webpack://post-expirator/./assets/jsx/components/SettingRow.jsx","webpack://post-expirator/./assets/jsx/components/SettingsFieldset.jsx","webpack://post-expirator/./assets/jsx/components/SettingsForm.jsx","webpack://post-expirator/./assets/jsx/components/SettingsSection.jsx","webpack://post-expirator/./assets/jsx/components/SettingsTable.jsx","webpack://post-expirator/./assets/jsx/components/Spinner.jsx","webpack://post-expirator/./assets/jsx/components/SubmitButton.jsx","webpack://post-expirator/./assets/jsx/components/TextControl.jsx","webpack://post-expirator/./assets/jsx/components/ToggleArrowButton.jsx","webpack://post-expirator/./assets/jsx/components/ToggleCalendarDatePicker.jsx","webpack://post-expirator/./assets/jsx/components/TokensControl.jsx","webpack://post-expirator/./assets/jsx/components/TrueFalseControl.jsx","webpack://post-expirator/./assets/jsx/components/index.jsx","webpack://post-expirator/./assets/jsx/data.jsx","webpack://post-expirator/./assets/jsx/time.jsx","webpack://post-expirator/./assets/jsx/utils.jsx","webpack://post-expirator/./assets/jsx/components/css/dateOffsetPreview.css","webpack://post-expirator/./node_modules/css-loader/dist/runtime/api.js","webpack://post-expirator/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://post-expirator/./assets/jsx/components/css/dateOffsetPreview.css?541a","webpack://post-expirator/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://post-expirator/external var \"publishpressFutureBlockEditorConfig\"","webpack://post-expirator/external var \"wp\"","webpack://post-expirator/external var \"wp.components\"","webpack://post-expirator/external var \"wp.data\"","webpack://post-expirator/external var \"wp.element\"","webpack://post-expirator/external var \"wp.hooks\"","webpack://post-expirator/external var \"wp.plugins\"","webpack://post-expirator/external var \"wp.url\"","webpack://post-expirator/webpack/bootstrap","webpack://post-expirator/webpack/runtime/compat get default export","webpack://post-expirator/webpack/runtime/define property getters","webpack://post-expirator/webpack/runtime/hasOwnProperty shorthand","webpack://post-expirator/webpack/runtime/make namespace object","webpack://post-expirator/webpack/runtime/nonce","webpack://post-expirator/./assets/jsx/block-editor.jsx"],"sourcesContent":["/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const ButtonsPanel = function (props) {\n return (\n
\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment, useState } from \"@wordpress/element\";\nimport { CheckboxControl as WPCheckboxControl } from \"@wordpress/components\";\n\nexport const CheckboxControl = function (props) {\n const [checked, setChecked] = useState(props.checked || false);\n\n let description;\n\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n\n const onChange = function (value) {\n setChecked(value);\n\n if (props.onChange) {\n props.onChange(value);\n }\n };\n\n return (\n \n \n\n {description}\n \n )\n}\n","import {\n useState,\n useEffect,\n useRef,\n Fragment\n} from '@wordpress/element';\nimport { addQueryArgs } from '@wordpress/url';\nimport { apiFetch } from '&wp';\n\nrequire('./css/dateOffsetPreview.css');\n\nexport const DateOffsetPreview = ({\n offset,\n label,\n labelDatePreview,\n labelOffsetPreview,\n setValidationErrorCallback,\n setHasPendingValidationCallback,\n setHasValidDataCallback,\n compactView = false\n}) => {\n const [offsetPreview, setOffsetPreview] = useState('');\n const [currentTime, setCurrentTime] = useState();\n\n const apiRequestControllerRef = useRef(new AbortController());\n\n const validateDateOffset = () => {\n if (offset) {\n const controller = apiRequestControllerRef.current;\n\n if (controller) {\n controller.abort();\n }\n\n apiRequestControllerRef.current = new AbortController();\n const { signal } = apiRequestControllerRef.current;\n\n setHasPendingValidationCallback(true);\n\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/settings/validate-expire-offset`),\n method: 'POST',\n data: {\n offset\n },\n signal,\n }).then((result) => {\n setHasPendingValidationCallback(false);\n\n setHasValidDataCallback(result.isValid);\n setValidationErrorCallback(result.message);\n\n if (result.isValid) {\n setOffsetPreview(result.preview);\n setCurrentTime(result.currentTime);\n } else {\n setOffsetPreview('');\n }\n }).catch((error) => {\n if (error.name === 'AbortError') {\n return;\n }\n\n setHasPendingValidationCallback(false);\n setHasValidDataCallback(false);\n setValidationErrorCallback(error.message);\n setOffsetPreview('');\n });\n }\n }\n\n useEffect(() => {\n validateDateOffset();\n }, [offset]);\n\n const compactClass = compactView ? ' compact' : '';\n\n return (\n \n { offset && (\n
\n

{ label }

\n
\n
\n { labelDatePreview }: \n {currentTime}\n
\n
\n { labelOffsetPreview }: \n {offsetPreview}\n
\n
\n
\n )}\n
\n )\n}\n\nexport default DateOffsetPreview;\n","import { normalizeUnixTimeToMilliseconds } from \"../time\";\nimport { DateTimePicker as WPDateTimePicker } from \"@wordpress/components\";\n\n\nexport const DateTimePicker = ({currentDate, onChange, is12Hour, startOfWeek}) => {\n if (typeof currentDate === 'number') {\n currentDate = normalizeUnixTimeToMilliseconds(currentDate);\n }\n\n return (\n \n )\n}\n","import { compact } from '../utils';\nimport { ToggleCalendarDatePicker } from './ToggleCalendarDatePicker';\nimport { PluginArea } from '@wordpress/plugins';\nimport { Fill, Slot, SlotFillProvider } from '@wordpress/components';\nimport { FutureActionPanelAfterActionField } from './FutureActionPanelAfterActionField';\nimport { FutureActionPanelTop } from './FutureActionPanelTop';\n\nconst { PanelRow, CheckboxControl, SelectControl, FormTokenField, Spinner, BaseControl } = wp.components;\nconst { Fragment, useEffect, useState } = wp.element;\nconst { decodeEntities } = wp.htmlEntities;\nconst { addQueryArgs } = wp.url;\nconst {\n useSelect,\n useDispatch\n} = wp.data;\nconst { apiFetch } = wp;\n\nexport const FutureActionPanel = (props) => {\n const {\n action,\n date,\n enabled,\n terms,\n taxonomy,\n taxonomyName,\n termsListByName,\n termsListById,\n isFetchingTerms,\n calendarIsVisible,\n hasValidData,\n newStatus,\n } = useSelect((select) => {\n return {\n action: select(props.storeName).getAction(),\n date: select(props.storeName).getDate(),\n enabled: select(props.storeName).getEnabled(),\n terms: select(props.storeName).getTerms(),\n taxonomy: select(props.storeName).getTaxonomy(),\n taxonomyName: select(props.storeName).getTaxonomyName(),\n termsListByName: select(props.storeName).getTermsListByName(),\n termsListById: select(props.storeName).getTermsListById(),\n isFetchingTerms: select(props.storeName).getIsFetchingTerms(),\n calendarIsVisible: select(props.storeName).getCalendarIsVisible(),\n hasValidData: select(props.storeName).getHasValidData(),\n newStatus: select(props.storeName).getNewStatus(),\n };\n });\n\n const [validationError, setValidationError] = useState('');\n\n const {\n setAction,\n setDate,\n setEnabled,\n setTerms,\n setTaxonomy,\n setTermsListByName,\n setTermsListById,\n setTaxonomyName,\n setIsFetchingTerms,\n setCalendarIsVisible,\n setHasValidData,\n setNewStatus\n } = useDispatch(props.storeName);\n\n const mapTermsListById = (terms) => {\n if (typeof terms !== 'object' || terms === null) {\n return {};\n }\n\n return terms.map((term) => {\n return termsListById[term];\n });\n }\n\n const insertTerm = (term) => {\n termsListByName[term] = { id: term, count: 0, description: \"\", link: \"\", name: term, slug: term, taxonomy: taxonomy };\n termsListById[term] = term;\n setTermsListByName(termsListByName);\n setTermsListById(termsListById);\n setTerms([...terms, term]);\n\n }\n\n const mapTermsListByName = (terms) => {\n if (typeof terms !== 'object' || terms === null) {\n return {};\n }\n\n return terms.map((term) => {\n if (termsListByName[term]) {\n return termsListByName[term].id;\n }\n\n insertTerm(term);\n\n return term;\n });\n }\n\n const callOnChangeData = (attribute, value) => {\n if (typeof props.onChangeData === 'function') {\n props.onChangeData(attribute, value);\n }\n }\n\n const handleEnabledChange = (isChecked) => {\n setEnabled(isChecked);\n\n if (isChecked) {\n setAction(props.action);\n setDate(props.date);\n setNewStatus(props.newStatus);\n setTerms(props.terms);\n setTaxonomy(props.taxonomy);\n\n fetchTerms();\n }\n\n callOnChangeData('enabled', isChecked);\n }\n\n const handleActionChange = (value) => {\n setAction(value);\n\n callOnChangeData('action', value);\n }\n\n const handleNewStatusChange = (value) => {\n setNewStatus(value);\n\n callOnChangeData('newStatus', value);\n }\n\n const handleDateChange = (value) => {\n setDate(value);\n\n callOnChangeData('date', value);\n }\n\n const handleTermsChange = (value) => {\n value = mapTermsListByName(value);\n\n setTerms(value);\n\n callOnChangeData('terms', value);\n }\n\n const fetchTerms = () => {\n let termsListByName = {};\n let termsListById = {};\n\n if (!taxonomy) {\n return;\n }\n\n setIsFetchingTerms(true);\n\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/terms/${taxonomy}`),\n }).then((result) => {\n result.terms.forEach(term => {\n termsListByName[decodeEntities(term.name)] = term;\n termsListById[term.id] = decodeEntities(term.name);\n });\n\n setTermsListByName(termsListByName);\n setTermsListById(termsListById);\n setTaxonomyName(decodeEntities(result.taxonomyName));\n setIsFetchingTerms(false);\n });\n }\n\n const storeCalendarIsVisibleOnStorage = (value) => {\n localStorage.setItem('FUTURE_ACTION_CALENDAR_IS_VISIBLE_' + props.context, value ? '1' : '0');\n }\n\n const getCalendarIsVisibleFromStorage = () => {\n return localStorage.getItem('FUTURE_ACTION_CALENDAR_IS_VISIBLE_' + props.context);\n }\n\n useEffect(() => {\n if (props.autoEnableAndHideCheckbox) {\n setEnabled(true);\n } else {\n setEnabled(props.enabled);\n }\n\n setAction(props.action);\n setNewStatus(props.newStatus);\n setDate(props.date);\n setTerms(props.terms);\n setTaxonomy(props.taxonomy);\n\n if (getCalendarIsVisibleFromStorage() === null) {\n setCalendarIsVisible(props.calendarIsVisible);\n } else {\n setCalendarIsVisible(getCalendarIsVisibleFromStorage() === '1' && ! props.hideCalendarByDefault);\n }\n\n // We need to get the value directly from the props because the value from the store is not updated yet\n if (props.enabled) {\n if (props.isCleanNewPost) {\n // Force populate the default values\n handleEnabledChange(true);\n }\n\n fetchTerms();\n }\n }, []);\n\n useEffect(() => {\n storeCalendarIsVisibleOnStorage(calendarIsVisible);\n }, [calendarIsVisible]);\n\n useEffect(() => {\n if (hasValidData && props.onDataIsValid) {\n props.onDataIsValid();\n }\n\n if (!hasValidData && props.onDataIsInvalid) {\n props.onDataIsInvalid();\n }\n }, [hasValidData]);\n\n let selectedTerms = [];\n if (terms && terms.length > 0 && termsListById) {\n selectedTerms = compact(mapTermsListById(terms));\n\n if (typeof selectedTerms === 'string') {\n selectedTerms = [];\n }\n }\n\n let termsListByNameKeys = [];\n if (typeof termsListByName === 'object' && termsListByName !== null) {\n termsListByNameKeys = Object.keys(termsListByName);\n }\n\n const panelClass = calendarIsVisible ? 'future-action-panel' : 'future-action-panel hidden-calendar';\n const contentPanelClass = calendarIsVisible ? 'future-action-panel-content' : 'future-action-panel-content hidden-calendar';\n const datePanelClass = calendarIsVisible ? 'future-action-date-panel' : 'future-action-date-panel hidden-calendar';\n\n let is24hour;\n if (props.timeFormat === 'inherited') {\n is24hour = !props.is12Hour;\n } else {\n is24hour = props.timeFormat === '24h';\n }\n\n const replaceCurlyBracketsWithLink = (string, href, target) => {\n const parts = string.split('{');\n const result = [];\n\n result.push(parts.shift());\n\n for (const part of parts) {\n const [before, after] = part.split('}');\n\n result.push(\n {before}\n );\n\n result.push(after);\n }\n\n return result;\n };\n\n // Remove items from actions list if related to taxonomies and there is no taxonmoy for the post type\n let actionsSelectOptions = props.actionsSelectOptions;\n if (!props.taxonomy) {\n actionsSelectOptions = props.actionsSelectOptions.filter((item) => {\n return ['category', 'category-add', 'category-remove', 'category-remove-all'].indexOf(item.value) === -1;\n });\n }\n\n const HelpText = replaceCurlyBracketsWithLink(props.strings.timezoneSettingsHelp, '/wp-admin/options-general.php#timezone_string', '_blank');\n const displayTaxonomyField = String(action).includes('category') && action !== 'category-remove-all';\n\n let termsFieldLabel = taxonomyName;\n switch (action) {\n case 'category':\n termsFieldLabel = props.strings.newTerms.replace('%s', taxonomyName);\n break;\n case 'category-remove':\n termsFieldLabel = props.strings.removeTerms.replace('%s', taxonomyName);\n break;\n case 'category-add':\n termsFieldLabel = props.strings.addTerms.replace('%s', taxonomyName);\n break;\n }\n\n const validateData = () => {\n let valid = true;\n\n if (!enabled) {\n setValidationError('');\n return true;\n }\n\n if (!action) {\n setValidationError(props.strings.errorActionRequired);\n valid = false;\n }\n\n if (!date) {\n setValidationError(props.strings.errorDateRequired);\n valid = false;\n }\n\n // Check if the date is in the past\n if (date && new Date(date) < new Date()) {\n setValidationError(props.strings.errorDateInPast);\n valid = false;\n }\n\n const isTermRequired = ['category', 'category-add', 'category-remove'].includes(action);\n const noTermIsSelected = terms.length === 0 || (terms.length === 1 && (terms[0] === '' || terms[0] === '0'));\n\n if (isTermRequired && noTermIsSelected) {\n setValidationError(props.strings.errorTermsRequired);\n valid = false;\n }\n\n if (valid) {\n setValidationError('');\n }\n\n return valid;\n }\n\n useEffect(() => {\n if (!enabled) {\n setHasValidData(true);\n setValidationError('');\n\n return;\n }\n\n setHasValidData(validateData());\n }, [action, date, enabled, terms, taxonomy]);\n\n // This adds a 'cancel' class to the input when the user clicks on the\n // field to prevent the form from being submitted. This is a workaround\n // for the issue on the quick-edit form where the form is submitted when\n // the user presses the 'Enter' key trying to add a term to the field.\n const forceIgnoreAutoSubmitOnEnter = (e) => {\n jQuery(e.target).addClass('cancel');\n }\n\n return (\n \n
\n {props.autoEnableAndHideCheckbox && (\n \n )}\n\n \n\n {!props.autoEnableAndHideCheckbox && (\n \n \n \n )}\n\n {enabled && (\n \n \n \n \n\n \n\n {action === 'change-status' &&\n \n \n \n }\n\n {\n displayTaxonomyField && (\n isFetchingTerms && (\n \n \n {`${props.strings.loading} (${taxonomyName})`}\n \n \n \n )\n || (!taxonomy && (\n \n \n
\n {props.strings.noTaxonomyFound}\n
\n
\n
\n )\n || (\n termsListByNameKeys.length === 0 && (\n \n \n
\n {props.strings.noTermsFound}\n
\n
\n
\n )\n || (\n \n \n \n \n \n )\n )\n )\n )\n }\n\n \n setCalendarIsVisible(!calendarIsVisible)}\n is12Hour={!is24hour}\n startOfWeek={props.startOfWeek}\n isExpanded={calendarIsVisible}\n strings={props.strings}\n />\n \n\n \n
\n
\n\n {HelpText}\n
\n
\n\n {!hasValidData && (\n \n \n
{validationError}
\n
\n
\n )}\n
\n )}\n
\n \n
\n );\n};\n","import { Slot, Fill } from '@wordpress/components';\n\nexport const FutureActionPanelAfterActionField = ({ children }) => (\n \n {children}\n \n);\n\nconst FutureActionPanelAfterActionFieldSlot = (props) => (\n \n);\n\nFutureActionPanelAfterActionField.Slot = FutureActionPanelAfterActionFieldSlot;\n\nexport default FutureActionPanelAfterActionField;\n","import { FutureActionPanel } from './';\n\nexport const FutureActionPanelBlockEditor = (props) => {\n const { PluginDocumentSettingPanel } = wp.editPost;\n const { useDispatch, select } = wp.data;\n\n const { editPost } = useDispatch('core/editor');\n\n const editPostAttribute = (newAttribute) => {\n const attribute = {\n publishpress_future_action: {}\n };\n\n // For each property on newAttribute, set the value on attribute\n for (const [name, value] of Object.entries(newAttribute)) {\n attribute.publishpress_future_action[name] = value;\n }\n\n editPost(attribute);\n }\n\n const onChangeData = (attribute, value) => {\n const store = select(props.storeName);\n\n const newAttribute = {\n 'enabled': store.getEnabled()\n }\n\n if (newAttribute.enabled) {\n newAttribute['action'] = store.getAction();\n newAttribute['newStatus'] = store.getNewStatus();\n newAttribute['date'] = store.getDate();\n newAttribute['terms'] = store.getTerms();\n newAttribute['taxonomy'] = store.getTaxonomy();\n newAttribute['extraData'] = store.getExtraData();\n }\n\n editPostAttribute(newAttribute);\n }\n\n const data = select('core/editor').getEditedPostAttribute('publishpress_future_action');\n\n const { lockPostSaving, unlockPostSaving } = useDispatch('core/editor');\n\n const onDataIsValid = () => {\n unlockPostSaving('future-action');\n }\n\n const onDataIsInvalid = () => {\n lockPostSaving('future-action');\n }\n\n return (\n \n
\n \n
\n \n );\n};\n","import { FutureActionPanel, SelectControl } from '.';\nimport { getElementByName } from '../utils';\n\nexport const FutureActionPanelBulkEdit = (props) => {\n const { useSelect, useDispatch, select } = wp.data;\n const { useEffect } = wp.element;\n\n const onChangeData = (attribute, value) => {\n getElementByName('future_action_bulk_enabled').value = select(props.storeName).getEnabled() ? 1 : 0;\n getElementByName('future_action_bulk_action').value = select(props.storeName).getAction();\n getElementByName('future_action_bulk_new_status').value = select(props.storeName).getNewStatus();\n getElementByName('future_action_bulk_date').value = select(props.storeName).getDate();\n getElementByName('future_action_bulk_terms').value = select(props.storeName).getTerms().join(',');\n getElementByName('future_action_bulk_taxonomy').value = select(props.storeName).getTaxonomy();\n }\n\n const date = useSelect((select) => select(props.storeName).getDate(), []);\n const enabled = useSelect((select) => select(props.storeName).getEnabled(), []);\n const action = useSelect((select) => select(props.storeName).getAction(), []);\n const newStatus = useSelect((select) => select(props.storeName).getNewStatus(), []);\n const terms = useSelect((select) => select(props.storeName).getTerms(), []);\n const taxonomy = useSelect((select) => select(props.storeName).getTaxonomy(), []);\n const changeAction = useSelect((select) => select(props.storeName).getChangeAction(), []);\n const hasValidData = useSelect((select) => select(props.storeName).getHasValidData(), []);\n\n const {\n setChangeAction\n } = useDispatch(props.storeName);\n\n let termsString = terms;\n if (typeof terms === 'object') {\n termsString = terms.join(',');\n }\n\n const handleStrategyChange = (value) => {\n setChangeAction(value);\n };\n\n const options = [\n { value: 'no-change', label: props.strings.noChange },\n { value: 'change-add', label: props.strings.changeAdd },\n { value: 'add-only', label: props.strings.addOnly },\n { value: 'change-only', label: props.strings.changeOnly },\n { value: 'remove-only', label: props.strings.removeOnly },\n ];\n\n const optionsToDisplayPanel = ['change-add', 'add-only', 'change-only'];\n\n useEffect(() => {\n // We are not using onDataIsValid and onDataIsInvalid because we need to enable/disable the button\n // also based on the changeAction value.\n if (hasValidData || changeAction === 'no-change') {\n jQuery('#bulk_edit').prop('disabled', false);\n } else {\n jQuery('#bulk_edit').prop('disabled', true);\n }\n }, [hasValidData, changeAction]);\n\n return (\n
\n \n\n {optionsToDisplayPanel.includes(changeAction) && (\n \n )}\n\n {/* Bulk edit JS code will save only fields with name inside the edit row */}\n \n \n \n \n \n \n \n \n
\n );\n};\n","import { FutureActionPanel } from \"./\";\nimport { select, useSelect } from \"@wordpress/data\";\nimport { useEffect } from \"@wordpress/element\";\n\nexport const FutureActionPanelClassicEditor = (props) => {\n const browserTimezoneOffset = new Date().getTimezoneOffset();\n\n const getElementByName = (name) => {\n return document.getElementsByName(name)[0];\n }\n\n const onChangeData = (attribute, value) => {\n const store = select(props.storeName);\n\n getElementByName('future_action_enabled').value = store.getEnabled() ? 1 : 0;\n getElementByName('future_action_action').value = store.getAction();\n getElementByName('future_action_new_status').value = store.getNewStatus();\n getElementByName('future_action_date').value = store.getDate();\n getElementByName('future_action_terms').value = store.getTerms().join(',');\n getElementByName('future_action_taxonomy').value = store.getTaxonomy();\n }\n\n const getTermsFromElementByName = (name) => {\n const element = getElementByName(name);\n if (!element) {\n return [];\n }\n\n let terms = element.value.split(',');\n\n if (terms.length === 1 && terms[0] === '') {\n terms = [];\n }\n\n return terms.map(term => parseInt(term));\n }\n\n const getElementValueByName = (name) => {\n const element = getElementByName(name);\n if (!element) {\n return '';\n }\n\n return element.value;\n }\n\n const data = {\n enabled: getElementValueByName('future_action_enabled') === '1',\n action: getElementValueByName('future_action_action'),\n newStatus: getElementValueByName('future_action_new_status'),\n date: getElementValueByName('future_action_date'),\n terms: getTermsFromElementByName('future_action_terms'),\n taxonomy: getElementValueByName('future_action_taxonomy'),\n };\n\n const onDataIsValid = () => {\n jQuery('#publish').prop('disabled', false);\n }\n\n const onDataIsInvalid = () => {\n jQuery('#publish').prop('disabled', true);\n }\n\n return (\n
\n \n
\n );\n};\n","import { FutureActionPanel } from './';\nimport { useSelect, select } from '@wordpress/data';\nimport { useEffect } from '@wordpress/element';\n\nexport const FutureActionPanelQuickEdit = (props) => {\n const onChangeData = (attribute, value) => {};\n\n const date = useSelect((select) => select(props.storeName).getDate(), []);\n const enabled = useSelect((select) => select(props.storeName).getEnabled(), []);\n const action = useSelect((select) => select(props.storeName).getAction(), []);\n const terms = useSelect((select) => select(props.storeName).getTerms(), []);\n const taxonomy = useSelect((select) => select(props.storeName).getTaxonomy(), []);\n const hasValidData = useSelect((select) => select(props.storeName).getHasValidData(), []);\n const newStatus = useSelect((select) => select(props.storeName).getNewStatus(), []);\n\n let termsString = terms;\n if (typeof terms === 'object') {\n termsString = terms.join(',');\n }\n\n const onDataIsValid = () => {\n jQuery('.button-primary.save').prop('disabled', false);\n }\n\n const onDataIsInvalid = () => {\n jQuery('.button-primary.save').prop('disabled', true);\n }\n\n return (\n
\n \n\n {/* Quick edit JS code will save only fields with name inside the edit row */}\n \n \n \n \n \n \n \n \n
\n );\n};\n","import { Slot, Fill } from '@wordpress/components';\n\nexport const FutureActionPanelTop = ({ children }) => (\n \n {children}\n \n);\n\nconst FutureActionPanelTopSlot = (props) => (\n \n);\n\nFutureActionPanelTop.Slot = FutureActionPanelTopSlot;\n\nexport default FutureActionPanelTop;\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const NonceControl = function (props) {\n if (! props.name) {\n props.name = '_wpnonce';\n }\n\n if (! props.referrer) {\n props.referrer = true;\n }\n\n return (\n \n \n\n {props.referrer &&\n \n }\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nimport {\n SettingRow,\n SettingsTable,\n SelectControl,\n TextControl,\n TokensControl,\n CheckboxControl\n} from './';\nimport { useEffect, useState } from '@wordpress/element';\nimport { addQueryArgs } from '@wordpress/url';\nimport { applyFilters } from '@wordpress/hooks';\nimport { apiFetch } from '&wp';\nimport DateOffsetPreview from './DateOffsetPreview';\n\nconst { PanelRow } = wp.components;\n\nexport const PostTypeSettingsPanel = function (props) {\n const originalExpireTypeList = props.expireTypeList[props.postType];\n\n const [postTypeTaxonomy, setPostTypeTaxonomy] = useState(props.settings.taxonomy);\n const [termOptions, setTermOptions] = useState([]);\n const [termsSelectIsLoading, setTermsSelectIsLoading] = useState(false);\n const [selectedTerms, setSelectedTerms] = useState([]);\n const [settingHowToExpire, setSettingHowToExpire] = useState(props.settings.howToExpire);\n const [isActive, setIsActive] = useState(props.settings.active);\n const [expireOffset, setExpireOffset] = useState(props.settings.defaultExpireOffset);\n const [emailNotification, setEmailNotification] = useState(props.settings.emailNotification);\n const [isAutoEnabled, setIsAutoEnabled] = useState(props.settings.autoEnabled);\n const [hasValidData, setHasValidData] = useState(true);\n const [validationError, setValidationError] = useState('');\n const [taxonomyLabel, setTaxonomyLabel] = useState('');\n const [howToExpireList, setHowToExpireList] = useState(originalExpireTypeList);\n const [newStatus, setNewStatus] = useState(props.settings.newStatus);\n const [hasPendingValidation, setHasPendingValidation] = useState(false);\n\n const offset = expireOffset ? expireOffset : props.settings.globalDefaultExpireOffset;\n\n const taxonomyRelatedActions = [\n 'category',\n 'category-add',\n 'category-remove',\n 'category-remove-all'\n ];\n\n const onChangeTaxonomy = function (value) {\n setPostTypeTaxonomy(value);\n };\n\n const onChangeTerms = (value) => {\n setSelectedTerms(value);\n };\n\n const onChangeHowToExpire = (value) => {\n setSettingHowToExpire(value);\n }\n\n const onChangeActive = (value) => {\n setIsActive(value);\n }\n\n const onChangeExpireOffset = (value) => {\n setExpireOffset(value);\n }\n\n const onChangeEmailNotification = (value) => {\n setEmailNotification(value);\n }\n\n const onChangeAutoEnabled = (value) => {\n setIsAutoEnabled(value);\n }\n\n useEffect(() => {\n // Remove items from expireTypeList if related to taxonomies and there is no taxonmoy for the post type\n if (props.taxonomiesList.length === 0) {\n let newExpireTypeList = [];\n\n newExpireTypeList = howToExpireList.filter((item) => {\n return taxonomyRelatedActions.indexOf(item.value) === -1;\n });\n\n setHowToExpireList(newExpireTypeList);\n }\n }, []);\n\n useEffect(() => {\n if (!postTypeTaxonomy || !props.taxonomiesList) {\n return;\n }\n\n setTermsSelectIsLoading(true);\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/terms/${postTypeTaxonomy}`),\n }).then((result) => {\n let options = [];\n\n let settingsTermsOptions = null;\n let option;\n\n result.terms.forEach(term => {\n option = { value: term.id, label: term.name };\n options.push(option);\n\n if (postTypeTaxonomy === props.settings.taxonomy && props.settings.terms.includes(term.id)) {\n if (settingsTermsOptions === null) {\n settingsTermsOptions = [];\n }\n\n settingsTermsOptions.push(option.label);\n }\n });\n\n setTermOptions(options);\n setSelectedTerms(settingsTermsOptions);\n setTermsSelectIsLoading(false);\n });\n\n props.taxonomiesList.forEach((taxonomy) => {\n if (taxonomy.value === postTypeTaxonomy) {\n setTaxonomyLabel(taxonomy.label);\n }\n });\n }, [postTypeTaxonomy]);\n\n useEffect(() => {\n if (!taxonomyLabel) {\n return;\n }\n\n // Update the list of actions replacing the taxonomy name.\n let newExpireTypeList = [];\n\n originalExpireTypeList.forEach((expireType) => {\n let label = expireType.label;\n\n if (taxonomyRelatedActions.indexOf(expireType.value) !== -1) {\n label = label.replace('%s', taxonomyLabel.toLowerCase());\n }\n\n newExpireTypeList.push({\n value: expireType.value,\n label: label\n });\n });\n\n setHowToExpireList(newExpireTypeList);\n }, [taxonomyLabel]);\n\n useEffect(() => {\n if (hasValidData && props.onDataIsValid) {\n props.onDataIsValid(props.postType);\n }\n\n if (!hasValidData && props.onDataIsInvalid) {\n props.onDataIsInvalid(props.postType);\n }\n }, [hasValidData]);\n\n useEffect(() => {\n if (hasPendingValidation && props.onValidationStarted) {\n props.onValidationStarted(props.postType);\n }\n\n if (!hasPendingValidation && props.onValidationFinished) {\n props.onValidationFinished(props.postType);\n }\n }, [hasPendingValidation]);\n\n const termOptionsLabels = termOptions.map((term) => term.label);\n\n let settingsRows = [\n \n \n \n ];\n\n if (isActive) {\n settingsRows.push(\n \n \n \n );\n\n settingsRows.push(\n \n \n \n \n );\n\n settingsRows.push(\n \n \n\n {settingHowToExpire === 'change-status' &&\n \n }\n\n {(props.taxonomiesList.length > 0 && (['category', 'category-add', 'category-remove'].indexOf(settingHowToExpire) > -1)) &&\n \n }\n \n );\n\n settingsRows.push(\n \n \n\n \n \n );\n\n settingsRows.push(\n \n \n \n );\n }\n\n settingsRows = applyFilters('expirationdate_settings_posttype', settingsRows, props, isActive, useState);\n\n const fieldSetClassNames = props.isVisible ? 'pe-settings-fieldset' : 'pe-settings-fieldset hidden';\n\n return (\n
\n \n\n {! hasValidData && (\n \n
\n {props.text.error}: {validationError}\n
\n
\n )}\n
\n );\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nimport { PostTypeSettingsPanel } from \"./\";\nimport { useState } from \"@wordpress/element\";\n\nexport const PostTypesSettingsPanels = function (props) {\n const [currentTab, setCurrentTab] = useState(Object.keys(props.settings)[0]);\n\n let panels = [];\n\n for (const [postType, postTypeSettings] of Object.entries(props.settings)) {\n panels.push(\n \n );\n }\n\n const onSelectTab = (event) => {\n event.preventDefault();\n setCurrentTab(event.target.hash.replace('#', '').replace('-panel', ''));\n }\n\n let tabs = [];\n let selected = false;\n\n for (const [postType, postTypeSettings] of Object.entries(props.settings)) {\n selected = currentTab === postType;\n tabs.push(\n \n {postTypeSettings.label}\n \n );\n }\n\n return (\n
\n \n {panels}\n
\n );\n}\n\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\nimport { SelectControl as WPSelectControl } from \"@wordpress/components\";\n\nexport const SelectControl = function (props) {\n const onChange = (value) => {\n props.onChange(value);\n };\n\n return (\n \n {props.options.length === 0 && (\n
{props.noItemFoundMessage}
\n )}\n\n {props.options.length > 0 && (\n \n )}\n\n {props.children}\n\n

{props.description}

\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const SettingRow = function (props) {\n return (\n \n \n \n \n \n {props.children}\n \n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsFieldset = function (props) {\n return (\n
\n {props.legend}\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsForm = function (props) {\n return (\n
\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const SettingsSection = function (props) {\n return (\n \n

{props.title}

\n

{props.description}

\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsTable = function (props) {\n return (\n \n \n {props.bodyChildren}\n \n
\n )\n}\n","/*\n * Copyright (c) 2024. PublishPress, All rights reserved.\n */\nexport const Spinner = function (props) {\n return (\n
\n );\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SubmitButton = function (props) {\n return (\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\nimport { TextControl as WPTextControl } from \"@wordpress/components\";\nimport { Spinner } from \"./\";\n\nexport const TextControl = function (props) {\n let description;\n\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n\n const onChange = function (value) {\n if (props.onChange) {\n props.onChange(value);\n }\n };\n\n let className = props.className ? props.className : '';\n\n if (props.loading) {\n className += ' publishpress-future-loading publishpress-future-loading-input';\n }\n\n return (\n \n
\n \n\n {props.loading && }\n\n {description}\n
\n
\n )\n}\n","import { Button } from '@wordpress/components';\n\nexport const ToggleArrowButton = function (props) {\n const onClick = function () {\n if (props.onClick) {\n props.onClick();\n }\n };\n\n const iconExpanded = props.iconExpanded ? props.iconExpanded : 'arrow-up-alt2';\n const iconCollapsed = props.iconCollapsed ? props.iconCollapsed : 'arrow-down-alt2';\n\n const icon = props.isExpanded ? iconExpanded : iconCollapsed;\n\n const title = props.isExpanded ? props.titleExpanded : props.titleCollapsed;\n\n return (\n \n )\n}\n","import { ToggleArrowButton } from \"./ToggleArrowButton\";\nimport { DateTimePicker } from \"./DateTimePicker\";\nimport { Fragment, useEffect } from \"@wordpress/element\";\n\nexport const ToggleCalendarDatePicker = (\n {\n isExpanded,\n strings,\n onToggleCalendar,\n currentDate,\n onChangeDate,\n is12Hour,\n startOfWeek\n }\n) => {\n useEffect(() => {\n // Move the element of the toggle button to between the time and date elements.\n const toggleButtonElement = document.querySelector('.future-action-calendar-toggle');\n\n if (! toggleButtonElement) {\n return;\n }\n\n const dateTimeElement = toggleButtonElement.nextElementSibling;\n\n if (! dateTimeElement) {\n return;\n }\n\n const timeElement = dateTimeElement.querySelector('.components-datetime__time');\n\n if (! timeElement) {\n return;\n }\n\n const dateElement = timeElement.nextSibling;\n\n if (! dateElement) {\n return;\n }\n\n dateTimeElement.insertBefore(toggleButtonElement, dateElement)\n });\n\n return (\n \n \n\n \n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment, useState, useEffect } from \"@wordpress/element\";\nimport { FormTokenField } from \"@wordpress/components\";\n\nexport const TokensControl = (props) => {\n const [stringValue, setStringValue] = useState('');\n\n useEffect(() => {\n if (props.value) {\n setStringValue(props.value.join(','));\n }\n }, [props.value]);\n\n let description;\n\n if (props.description) {\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n }\n\n const onChange = (value) => {\n if (props.onChange) {\n props.onChange(value);\n }\n\n if (typeof value === 'object') {\n setStringValue(value.join(','));\n } else {\n setStringValue('');\n }\n }\n\n const value = props.value ? props.value : [];\n \n return (\n \n \n \n\n {description}\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const TrueFalseControl = function (props) {\n const { Fragment } = wp.element;\n\n const onChange = (e) => {\n if (props.onChange) {\n props.onChange(\n e.target.value === props.trueValue && jQuery(e.target).is(':checked')\n );\n // Check only the true radio... using the field name? or directly the ID\n }\n };\n\n return (\n \n \n\n \n   \n \n {props.falseLabel}\n\n

{props.description}

\n
\n )\n}\n","export { ButtonsPanel } from \"./ButtonsPanel\";\nexport { FutureActionPanel } from \"./FutureActionPanel\";\nexport { FutureActionPanelBlockEditor } from \"./FutureActionPanelBlockEditor\";\nexport { FutureActionPanelClassicEditor } from \"./FutureActionPanelClassicEditor\";\nexport { FutureActionPanelQuickEdit } from \"./FutureActionPanelQuickEdit\";\nexport { FutureActionPanelBulkEdit } from \"./FutureActionPanelBulkEdit\";\nexport { PostTypeSettingsPanel } from \"./PostTypeSettingsPanel\";\nexport { PostTypesSettingsPanels } from \"./PostTypesSettingsPanels\";\nexport { SettingRow } from \"./SettingRow\";\nexport { SettingsFieldset } from \"./SettingsFieldset\";\nexport { SettingsForm } from \"./SettingsForm\";\nexport { SettingsSection } from \"./SettingsSection\";\nexport { SettingsTable } from \"./SettingsTable\";\nexport { SubmitButton } from \"./SubmitButton\";\nexport { CheckboxControl } from \"./CheckboxControl\";\nexport { SelectControl } from \"./SelectControl\";\nexport { TextControl } from \"./TextControl\";\nexport { TokensControl } from \"./TokensControl\";\nexport { NonceControl } from \"./NonceControl\";\nexport { TrueFalseControl } from \"./TrueFalseControl\";\nexport { Spinner } from \"./Spinner\";\nexport { DateOffsetPreview } from \"./DateOffsetPreview\";\n","import { formatUnixTimeToTimestamp, getCurrentTimeAsTimestamp, normalizeUnixTimeToSeconds } from './time';\nimport { isNumber } from './utils';\nimport { register, createReduxStore } from '@wordpress/data';\n\nexport const createStore = (props) => {\n if (props.defaultState.terms && typeof props.defaultState.terms === 'string') {\n props.defaultState.terms = props.defaultState.terms.split(',').map(term => parseInt(term));\n }\n\n let defaultState = {\n action: props.defaultState.action,\n date: props.defaultState.date ? props.defaultState.date : getCurrentTimeAsTimestamp(),\n enabled: props.defaultState.autoEnable,\n terms: props.defaultState.terms ? props.defaultState.terms : [],\n taxonomy: props.defaultState.taxonomy ? props.defaultState.taxonomy : null,\n newStatus: props.defaultState.newStatus ? props.defaultState.newStatus : 'draft',\n termsListByName: null,\n termsListById: null,\n taxonomyName: null,\n isFetchingTerms: false,\n changeAction: 'no-change',\n calendarIsVisible: true,\n hasValidData: true,\n extraData: props.defaultState.extraData ? props.defaultState.extraData : {},\n }\n\n const store = createReduxStore(props.name, {\n reducer(state = defaultState, action) {\n switch (action.type) {\n case 'SET_ACTION':\n return {\n ...state,\n action: action.action,\n };\n case 'SET_NEW_STATUS':\n return {\n ...state,\n newStatus: action.newStatus,\n };\n case 'SET_DATE':\n // Make sure the date is a number, if it is a string with only numbers\n if (typeof action.date !== 'number' && isNumber(action.date)) {\n action.date = parseInt(action.date);\n }\n\n // If string, convert to unix time\n if (typeof action.date === 'string') {\n action.date = new Date(action.date).getTime();\n }\n\n // Make sure the time is always in seconds\n action.date = normalizeUnixTimeToSeconds(action.date);\n\n // Convert to formated string format, considering it is in the site's timezone\n action.date = formatUnixTimeToTimestamp(action.date);\n\n return {\n ...state,\n date: action.date,\n }\n case 'SET_ENABLED':\n return {\n ...state,\n enabled: action.enabled,\n }\n case 'SET_TERMS':\n return {\n ...state,\n terms: action.terms,\n }\n case 'SET_TAXONOMY':\n return {\n ...state,\n taxonomy: action.taxonomy,\n }\n case 'SET_TERMS_LIST_BY_NAME':\n return {\n ...state,\n termsListByName: action.termsListByName,\n }\n case 'SET_TERMS_LIST_BY_ID':\n return {\n ...state,\n termsListById: action.termsListById,\n }\n case 'SET_TAXONOMY_NAME':\n return {\n ...state,\n taxonomyName: action.taxonomyName,\n }\n case 'SET_CHANGE_ACTION':\n return {\n ...state,\n changeAction: action.changeAction,\n }\n case 'SET_CALENDAR_IS_VISIBLE':\n return {\n ...state,\n calendarIsVisible: action.calendarIsVisible,\n }\n case 'SET_HAS_VALID_DATA':\n return {\n ...state,\n hasValidData: action.hasValidData,\n }\n\n case 'SET_EXTRA_DATA':\n return {\n ...state,\n extraData: {\n ...action.extraData,\n }\n }\n\n case 'SET_EXTRA_DATA_BY_NAME':\n const extraData = {\n ...state.extraData,\n [action.name]: action.value\n };\n\n return {\n ...state,\n extraData: {...extraData}\n }\n }\n\n return state;\n },\n actions: {\n setAction(action) {\n return {\n type: 'SET_ACTION',\n action: action\n };\n },\n setNewStatus(newStatus) {\n return {\n type: 'SET_NEW_STATUS',\n newStatus: newStatus\n };\n },\n setDate(date) {\n return {\n type: 'SET_DATE',\n date: date\n };\n },\n setEnabled(enabled) {\n return {\n type: 'SET_ENABLED',\n enabled: enabled\n };\n },\n setTerms(terms) {\n return {\n type: 'SET_TERMS',\n terms: terms\n };\n },\n setTaxonomy(taxonomy) {\n return {\n type: 'SET_TAXONOMY',\n taxonomy: taxonomy\n };\n },\n setTermsListByName(termsListByName) {\n return {\n type: 'SET_TERMS_LIST_BY_NAME',\n termsListByName: termsListByName\n };\n },\n setTermsListById(termsListById) {\n return {\n type: 'SET_TERMS_LIST_BY_ID',\n termsListById: termsListById\n };\n },\n setTaxonomyName(taxonomyName) {\n return {\n type: 'SET_TAXONOMY_NAME',\n taxonomyName: taxonomyName\n };\n },\n setIsFetchingTerms(isFetchingTerms) {\n return {\n type: 'SET_IS_FETCHING_TERMS',\n isFetchingTerms: isFetchingTerms\n }\n },\n setChangeAction(changeAction) {\n return {\n type: 'SET_CHANGE_ACTION',\n changeAction: changeAction\n }\n },\n setCalendarIsVisible(calendarIsVisible) {\n return {\n type: 'SET_CALENDAR_IS_VISIBLE',\n calendarIsVisible: calendarIsVisible\n }\n },\n setHasValidData(hasValidData) {\n return {\n type: 'SET_HAS_VALID_DATA',\n hasValidData: hasValidData\n }\n },\n setExtraData(extraData) {\n return {\n type: 'SET_EXTRA_DATA',\n extraData: extraData\n }\n },\n setExtraDataByName(name, value) {\n return {\n type: 'SET_EXTRA_DATA_BY_NAME',\n name: name,\n value: value\n }\n }\n },\n selectors: {\n getAction(state) {\n return state.action;\n },\n getNewStatus(state) {\n return state.newStatus;\n },\n getDate(state) {\n return state.date;\n },\n getEnabled(state) {\n return state.enabled;\n },\n getTerms(state) {\n return state.terms;\n },\n getTaxonomy(state) {\n return state.taxonomy;\n },\n getTermsListByName(state) {\n return state.termsListByName;\n },\n getTermsListById(state) {\n return state.termsListById;\n },\n getTaxonomyName(state) {\n return state.taxonomyName;\n },\n getIsFetchingTerms(state) {\n return state.isFetchingTerms;\n },\n getChangeAction(state) {\n return state.changeAction;\n },\n getCalendarIsVisible(state) {\n return state.calendarIsVisible;\n },\n getHasValidData(state) {\n return state.hasValidData;\n },\n getExtraData(state) {\n return state.extraData;\n },\n getExtraDataByName(state, name) {\n return state.extraData[name] || null;\n }\n }\n });\n\n register(store);\n\n return store;\n}\n","export const getCurrentTimeInSeconds = () => {\n return normalizeUnixTimeToSeconds(new Date().getTime());\n}\n\nexport const getCurrentTimeAsTimestamp = () => {\n return formatUnixTimeToTimestamp(getCurrentTimeInSeconds());\n}\n\nexport const formatUnixTimeToTimestamp = (unixTimestamp) => {\n const date = new Date(\n normalizeUnixTimeToSeconds(unixTimestamp)\n );\n\n const year = date.getFullYear();\n const month = (\"0\" + (date.getMonth() + 1)).slice(-2); // Months are zero-based\n const day = (\"0\" + date.getDate()).slice(-2);\n const hours = (\"0\" + date.getHours()).slice(-2);\n const minutes = (\"0\" + date.getMinutes()).slice(-2);\n const seconds = (\"0\" + date.getSeconds()).slice(-2);\n\n return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;\n}\n\nexport const formatTimestampToUnixTime = (time) => {\n const date = new Date(time);\n\n return normalizeUnixTimeToSeconds(date.getTime());\n}\n\nexport const timeIsInSeconds = (time) => {\n return parseInt(time).toString().length <= 10;\n}\n\nexport const normalizeUnixTimeToSeconds = (time) => {\n time = parseInt(time);\n\n return timeIsInSeconds() ? time : time / 1000;\n}\n\nexport const normalizeUnixTimeToMilliseconds = (time) => {\n time = parseInt(time);\n\n return timeIsInSeconds() ? time * 1000 : time;\n}\n","export const compact = (array) => {\n if (!array) {\n return [];\n }\n\n if (! Array.isArray(array) && typeof array === 'object') {\n array = Object.values(array);\n }\n\n return array.filter((item) => {\n return item !== null && item !== undefined && item !== '';\n });\n}\n\nexport const debugLogFactory = (config) => {\n return (description, ...message) => {\n if (console && config.isDebugEnabled) {\n console.debug('[Future]', description, ...message);\n }\n }\n}\n\nexport const isGutenbergEnabled = () => {\n return document.body.classList.contains('block-editor-page');\n}\n\nexport const getElementByName = (name) => {\n return document.getElementsByName(name)[0];\n}\n\nexport const getFieldByName = (name, postId) => {\n return document.querySelector(`#the-list tr#post-${postId} .column-expirationdate input#future_action_${name}-${postId}`);\n}\n\nexport const getFieldValueByName = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field) {\n return null;\n }\n\n return field.value;\n};\n\nexport const getFieldValueByNameAsArrayOfInt = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field || !field.value) {\n return [];\n }\n\n if (typeof field.value === 'number') {\n field.value = field.value.toString();\n }\n\n return field.value.split(',').map(term => parseInt(term));\n};\n\nexport const getFieldValueByNameAsBool = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field) {\n return false;\n }\n\n return field.value === '1' || field.value === 'true';\n}\n\nexport const getActionSettingsFromColumnData = (postId) => {\n const columnData = document.querySelector(`#post-expire-column-${postId}`);\n\n if (!columnData) {\n return {};\n }\n\n return {\n enabled: columnData.dataset.actionEnabled === '1',\n action: columnData.dataset.actionType,\n date: columnData.dataset.actionDate,\n dateUnix: columnData.dataset.actionDateUnix,\n taxonomy: columnData.dataset.actionTaxonomy,\n terms: columnData.dataset.actionTerms,\n newStatus: columnData.dataset.actionNewStatus,\n };\n}\n\n/**\n * This function is used to determine if a value is a number, including strings.\n *\n * @param {*} value\n * @returns\n */\nexport const isNumber = (value) => {\n return !isNaN(value);\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.publishpress-future-date-preview .publishpress-future-date-preview-value {\n font-family: monospace;\n background-color: #e7e7e7;\n padding: 2px 4px;\n}\n\n.publishpress-future-date-preview.compact .publishpress-future-date-preview-label {\n display: block;\n}\n\n.publishpress-future-date-preview.compact {\n margin-bottom: 8px;\n}\n\n.publishpress-future-date-preview.compact h4 {\n font-size: 11px;\n font-weight: 500;\n line-height: 1.4;\n text-transform: uppercase;\n display: inline-block;\n margin-bottom: calc(8px);\n padding: 0px;\n flex-shrink: 0;\n margin-right: 12px;\n max-width: 75%;\n margin-top: 0;\n}\n\n.publishpress-future-notice.publishpress-future-notice-error {\n color: #dc3232;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./assets/jsx/components/css/dateOffsetPreview.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,sBAAsB;IACtB,yBAAyB;IACzB,gBAAgB;AACpB;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,kBAAkB;AACtB;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,yBAAyB;IACzB,qBAAqB;IACrB,wBAAwB;IACxB,YAAY;IACZ,cAAc;IACd,kBAAkB;IAClB,cAAc;IACd,aAAa;AACjB;;AAEA;IACI,cAAc;AAClB\",\"sourcesContent\":[\".publishpress-future-date-preview .publishpress-future-date-preview-value {\\n font-family: monospace;\\n background-color: #e7e7e7;\\n padding: 2px 4px;\\n}\\n\\n.publishpress-future-date-preview.compact .publishpress-future-date-preview-label {\\n display: block;\\n}\\n\\n.publishpress-future-date-preview.compact {\\n margin-bottom: 8px;\\n}\\n\\n.publishpress-future-date-preview.compact h4 {\\n font-size: 11px;\\n font-weight: 500;\\n line-height: 1.4;\\n text-transform: uppercase;\\n display: inline-block;\\n margin-bottom: calc(8px);\\n padding: 0px;\\n flex-shrink: 0;\\n margin-right: 12px;\\n max-width: 75%;\\n margin-top: 0;\\n}\\n\\n.publishpress-future-notice.publishpress-future-notice-error {\\n color: #dc3232;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/postcss-loader/dist/cjs.js!./dateOffsetPreview.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/postcss-loader/dist/cjs.js!./dateOffsetPreview.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;","module.exports = publishpressFutureBlockEditorConfig;","module.exports = wp;","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.element;","module.exports = wp.hooks;","module.exports = wp.plugins;","module.exports = wp.url;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nc = undefined;","import { createStore } from './data';\nimport { FutureActionPanelBlockEditor } from './components';\nimport { select } from '@wordpress/data';\nimport { registerPlugin } from '@wordpress/plugins';\nimport {\n actionsSelectOptions,\n is12Hour,\n timeFormat,\n startOfWeek,\n strings,\n taxonomyName,\n postTypeDefaultConfig,\n defaultDate,\n statusesSelectOptions,\n hideCalendarByDefault\n} from \"&config.block-editor\";\n\nconst storeName = 'publishpress-future/future-action';\n\ncreateStore({\n name: storeName,\n defaultState: {\n autoEnable: postTypeDefaultConfig.autoEnable,\n action: postTypeDefaultConfig.expireType,\n newStatus: postTypeDefaultConfig.newStatus,\n date: defaultDate,\n taxonomy: postTypeDefaultConfig.taxonomy,\n terms: postTypeDefaultConfig.terms,\n }\n});\n\nconst BlockEditorFutureActionPlugin = () => {\n return (\n \n );\n}\n\nregisterPlugin('publishpress-future-action', {\n render: BlockEditorFutureActionPlugin\n});\n"],"names":["ButtonsPanel","props","children","CheckboxControl","description","useState","checked","setChecked","unescapedDescription","className","dangerouslySetInnerHTML","__html","Fragment","label","name","id","onChange","value","require","DateOffsetPreview","offset","labelDatePreview","labelOffsetPreview","setValidationErrorCallback","setHasPendingValidationCallback","setHasValidDataCallback","compactView","offsetPreview","setOffsetPreview","currentTime","setCurrentTime","apiRequestControllerRef","useRef","AbortController","useEffect","controller","current","abort","signal","apiFetch","path","addQueryArgs","method","data","then","result","isValid","message","preview","catch","error","validateDateOffset","compactClass","DateTimePicker","currentDate","is12Hour","startOfWeek","normalizeUnixTimeToMilliseconds","__nextRemoveHelpButton","wp","components","PanelRow","SelectControl","FormTokenField","Spinner","BaseControl","element","decodeEntities","htmlEntities","url","useSelect","useDispatch","FutureActionPanel","select","action","storeName","getAction","date","getDate","enabled","getEnabled","terms","getTerms","taxonomy","getTaxonomy","taxonomyName","getTaxonomyName","termsListByName","getTermsListByName","termsListById","getTermsListById","isFetchingTerms","getIsFetchingTerms","calendarIsVisible","getCalendarIsVisible","hasValidData","getHasValidData","newStatus","getNewStatus","validationError","setValidationError","setAction","setDate","setEnabled","setTerms","setTaxonomy","setTermsListByName","setTermsListById","setTaxonomyName","setIsFetchingTerms","setCalendarIsVisible","setHasValidData","setNewStatus","insertTerm","term","count","link","slug","callOnChangeData","attribute","onChangeData","handleEnabledChange","isChecked","fetchTerms","forEach","getCalendarIsVisibleFromStorage","localStorage","getItem","context","autoEnableAndHideCheckbox","hideCalendarByDefault","isCleanNewPost","setItem","onDataIsValid","onDataIsInvalid","selectedTerms","length","compact","map","mapTermsListById","termsListByNameKeys","Object","keys","is24hour","panelClass","contentPanelClass","datePanelClass","timeFormat","actionsSelectOptions","filter","item","indexOf","HelpText","string","href","target","parts","split","push","shift","before","after","key","replaceCurlyBracketsWithLink","strings","timezoneSettingsHelp","displayTaxonomyField","String","includes","termsFieldLabel","newTerms","replace","removeTerms","addTerms","valid","errorActionRequired","errorDateRequired","Date","errorDateInPast","isTermRequired","noTermIsSelected","errorTermsRequired","validateData","SlotFillProvider","type","FutureActionPanelTop","Slot","fillProps","enablePostExpiration","options","FutureActionPanelAfterActionField","statusesSelectOptions","loading","noTaxonomyFound","noTermsFound","suggestions","mapTermsListByName","placeholder","addTermsPlaceholder","maxSuggestions","onFocus","e","jQuery","addClass","__experimentalExpandOnFocus","__experimentalAutoSelectFirstMatch","ToggleCalendarDatePicker","onChangeDate","onToggleCalendar","isExpanded","PluginArea","scope","Fill","FutureActionPanelBlockEditor","PluginDocumentSettingPanel","editPost","getEditedPostAttribute","lockPostSaving","unlockPostSaving","title","panelTitle","initialOpen","postTypeDefaultConfig","autoEnable","postType","store","newAttribute","getExtraData","publishpress_future_action","entries","editPostAttribute","FutureActionPanelBulkEdit","changeAction","getChangeAction","setChangeAction","termsString","join","noChange","changeAdd","addOnly","changeOnly","removeOnly","prop","futureActionUpdate","isNewPost","getElementByName","nonce","FutureActionPanelClassicEditor","getTimezoneOffset","document","getElementsByName","getElementValueByName","parseInt","getTermsFromElementByName","FutureActionPanelQuickEdit","NonceControl","referrer","PostTypeSettingsPanel","originalExpireTypeList","expireTypeList","settings","postTypeTaxonomy","setPostTypeTaxonomy","termOptions","setTermOptions","termsSelectIsLoading","setTermsSelectIsLoading","setSelectedTerms","howToExpire","settingHowToExpire","setSettingHowToExpire","active","isActive","setIsActive","defaultExpireOffset","expireOffset","setExpireOffset","emailNotification","setEmailNotification","autoEnabled","isAutoEnabled","setIsAutoEnabled","taxonomyLabel","setTaxonomyLabel","howToExpireList","setHowToExpireList","hasPendingValidation","setHasPendingValidation","globalDefaultExpireOffset","taxonomyRelatedActions","newExpireTypeList","taxonomiesList","settingsTermsOptions","option","expireType","toLowerCase","onValidationStarted","onValidationFinished","termOptionsLabels","settingsRows","SettingRow","text","fieldActive","fieldActiveLabel","fieldAutoEnable","fieldAutoEnableLabel","fieldTaxonomy","selected","noItemFoundMessage","noItemsfound","fieldTaxonomyDescription","fieldHowToExpire","fieldHowToExpireDescription","statusesList","TokensControl","fieldTerm","isLoading","fieldTermDescription","expandOnFocus","autoSelectFirstMatch","fieldDefaultDateTimeOffset","TextControl","fieldDefaultDateTimeOffsetDescription","datePreview","datePreviewCurrent","datePreviewComputed","fieldWhoToNotify","fieldWhoToNotifyDescription","applyFilters","fieldSetClassNames","isVisible","SettingsTable","bodyChildren","PostTypesSettingsPanels","currentTab","setCurrentTab","panels","postTypeSettings","legend","onSelectTab","event","preventDefault","hash","tabs","onClick","valign","htmlFor","SettingsFieldset","SettingsForm","SettingsSection","SubmitButton","disabled","ToggleArrowButton","iconExpanded","iconCollapsed","icon","titleExpanded","titleCollapsed","Button","isSmall","toggleButtonElement","querySelector","dateTimeElement","nextElementSibling","timeElement","dateElement","nextSibling","insertBefore","hideCalendar","showCalendar","stringValue","setStringValue","TrueFalseControl","trueValue","is","defaultChecked","trueLabel","falseValue","falseLabel","createStore","defaultState","getCurrentTimeAsTimestamp","extraData","createReduxStore","reducer","state","isNumber","getTime","normalizeUnixTimeToSeconds","formatUnixTimeToTimestamp","actions","setExtraData","setExtraDataByName","selectors","getExtraDataByName","register","getCurrentTimeInSeconds","unixTimestamp","getFullYear","getMonth","slice","getHours","getMinutes","getSeconds","timeIsInSeconds","formatTimestampToUnixTime","time","toString","getFieldByName","array","Array","isArray","values","debugLogFactory","config","console","isDebugEnabled","debug","isGutenbergEnabled","body","classList","contains","postId","getFieldValueByName","field","getFieldValueByNameAsArrayOfInt","getFieldValueByNameAsBool","getActionSettingsFromColumnData","columnData","dataset","actionEnabled","actionType","actionDate","dateUnix","actionDateUnix","actionTaxonomy","actionTerms","actionNewStatus","isNaN","___CSS_LOADER_EXPORT___","module","exports","cssWithMappingToString","list","this","content","needLayer","concat","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","sourceMapping","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","stylesInDOM","getIndexByIdentifier","identifier","modulesToDom","idCountMap","identifiers","base","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","styleTarget","window","HTMLIFrameElement","contentDocument","head","getTarget","Error","appendChild","createElement","attributes","styleElement","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode","publishpressFutureBlockEditorConfig","hooks","plugins","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","prototype","hasOwnProperty","call","r","Symbol","toStringTag","nc","defaultDate","registerPlugin","render","getCurrentPostType"],"sourceRoot":""} \ No newline at end of file diff --git a/assets/js/bulk-edit.js b/assets/js/bulk-edit.js index bf6deb72d..0556df2a3 100644 --- a/assets/js/bulk-edit.js +++ b/assets/js/bulk-edit.js @@ -1,2 +1,2 @@ -(()=>{"use strict";var e={442:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ButtonsPanel=function(e){return React.createElement("div",null,e.children)}},311:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CheckboxControl=void 0;var a=n(386),r=n(214);t.CheckboxControl=function(e){var t,n=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,a.useState)(e.checked||!1),2),o=n[0],i=n[1];return t=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description),React.createElement(a.Fragment,null,React.createElement(r.CheckboxControl,{label:e.label,name:e.name,id:e.name,className:e.className,checked:o||!1,onChange:function(t){i(t),e.onChange&&e.onChange(t)}}),t)}},620:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DateTimePicker=void 0;var a=n(39),r=n(214);t.DateTimePicker=function(e){var t=e.currentDate,n=e.onChange,o=e.is12Hour,i=e.startOfWeek;return"number"==typeof t&&(t=(0,a.normalizeUnixTimeToMilliseconds)(t)),React.createElement(r.DateTimePicker,{currentDate:t,onChange:n,__nextRemoveHelpButton:!0,is12Hour:o,startOfWeek:i})}},418:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanel=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},o=n(409),i=n(873),l=n(986),u=n(214),c=n(61),s=n(625),m=wp.components,d=m.PanelRow,p=m.CheckboxControl,f=m.SelectControl,y=m.FormTokenField,g=m.Spinner,v=m.BaseControl,b=wp.element,E=b.Fragment,S=b.useEffect,h=b.useState,_=wp.htmlEntities.decodeEntities,T=wp.url.addQueryArgs,x=wp.data,N=x.useSelect,R=x.useDispatch,A=wp.apiFetch;t.FutureActionPanel=function(e){var t=N((function(t){return t(e.storeName).getAction()}),[]),n=N((function(t){return t(e.storeName).getDate()}),[]),m=N((function(t){return t(e.storeName).getEnabled()}),[]),b=N((function(t){return t(e.storeName).getTerms()}),[]),x=N((function(t){return t(e.storeName).getTaxonomy()}),[]),C=N((function(t){return t(e.storeName).getTaxonomyName()}),[]),P=N((function(t){return t(e.storeName).getTermsListByName()}),[]),w=N((function(t){return t(e.storeName).getTermsListById()}),[]),O=N((function(t){return t(e.storeName).getIsFetchingTerms()}),[]),D=N((function(t){return t(e.storeName).getCalendarIsVisible()}),[]),F=N((function(t){return t(e.storeName).getHasValidData()}),[]),k=N((function(t){return t(e.storeName).getNewStatus()}),[]),I=h(""),j=r(I,2),B=j[0],M=j[1],L=R(e.storeName),V=L.setAction,H=L.setDate,W=L.setEnabled,U=L.setTerms,Q=L.setTaxonomy,Y=L.setTermsListByName,q=L.setTermsListById,X=L.setTaxonomyName,z=L.setIsFetchingTerms,G=L.setCalendarIsVisible,J=L.setHasValidData,K=L.setNewStatus,Z=function(e){P[e]={id:e,count:0,description:"",link:"",name:e,slug:e,taxonomy:x},w[e]=e,Y(P),q(w),U([].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0&&w&&(ae=(0,o.compact)(function(e){return"object"!==(void 0===e?"undefined":a(e))||null===e?{}:e.map((function(e){return w[e]}))}(b)),"string"==typeof ae&&(ae=[]));var re=[];"object"===(void 0===P?"undefined":a(P))&&null!==P&&(re=Object.keys(P));var oe,ie=D?"future-action-panel":"future-action-panel hidden-calendar",le=D?"future-action-panel-content":"future-action-panel-content hidden-calendar",ue=D?"future-action-date-panel":"future-action-date-panel hidden-calendar";oe="inherited"===e.timeFormat?!e.is12Hour:"24h"===e.timeFormat;var ce=e.actionsSelectOptions;e.taxonomy||(ce=e.actionsSelectOptions.filter((function(e){return-1===["category","category-add","category-remove","category-remove-all"].indexOf(e.value)})));var se=function(e,t,n){var a=e.split("{"),o=[];o.push(a.shift());var i=!0,l=!1,u=void 0;try{for(var c,s=a[Symbol.iterator]();!(i=(c=s.next()).done);i=!0){var m=c.value.split("}"),d=r(m,2),p=d[0],f=d[1];o.push(React.createElement("a",{href:t,target:"_blank",key:t},p)),o.push(f)}}catch(e){l=!0,u=e}finally{try{!i&&s.return&&s.return()}finally{if(l)throw u}}return o}(e.strings.timezoneSettingsHelp,"/wp-admin/options-general.php#timezone_string"),me=String(t).includes("category")&&"category-remove-all"!==t,de=C;switch(t){case"category":de=e.strings.newTerms.replace("%s",C);break;case"category-remove":de=e.strings.removeTerms.replace("%s",C);break;case"category-add":de=e.strings.addTerms.replace("%s",C)}return S((function(){if(!m)return J(!0),void M("");J(function(){var a=!0;if(!m)return M(""),!0;t||(M(e.strings.errorActionRequired),a=!1),n||(M(e.strings.errorDateRequired),a=!1),n&&new Date(n){Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelAfterActionField=void 0;var a=Object.assign||function(e){for(var t=1;t{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelBlockEditor=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(57);t.FutureActionPanelBlockEditor=function(e){var t=wp.editPost.PluginDocumentSettingPanel,n=wp.data,o=n.useDispatch,i=n.select,l=o("core/editor").editPost,u=i("core/editor").getEditedPostAttribute("publishpress_future_action"),c=o("core/editor"),s=c.lockPostSaving,m=c.unlockPostSaving;return React.createElement(t,{name:"publishpress-future-action-panel",title:e.strings.panelTitle,initialOpen:e.postTypeDefaultConfig.autoEnable,className:"post-expirator-panel"},React.createElement("div",{id:"publishpress-future-block-editor"},React.createElement(r.FutureActionPanel,{context:"block-editor",postType:e.postType,isCleanNewPost:e.isCleanNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:u.enabled,calendarIsVisible:!0,action:u.action,newStatus:u.newStatus,date:u.date,terms:u.terms,taxonomy:u.taxonomy,taxonomyName:e.taxonomyName,onChangeData:function(t,n){var r=i(e.storeName),o={enabled:r.getEnabled()};o.enabled&&(o.action=r.getAction(),o.newStatus=r.getNewStatus(),o.date=r.getDate(),o.terms=r.getTerms(),o.taxonomy=r.getTaxonomy(),o.extraData=r.getExtraData()),function(e){var t={publishpress_future_action:{}},n=!0,r=!1,o=void 0;try{for(var i,u=Object.entries(e)[Symbol.iterator]();!(n=(i=u.next()).done);n=!0){var c=i.value,s=a(c,2),m=s[0],d=s[1];t.publishpress_future_action[m]=d}}catch(e){r=!0,o=e}finally{try{!n&&u.return&&u.return()}finally{if(r)throw o}}l(t)}(o)},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){m("future-action")},onDataIsInvalid:function(){s("future-action")}})))}},94:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelBulkEdit=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(57),o=n(409);t.FutureActionPanelBulkEdit=function(e){var t=wp.data,n=t.useSelect,i=t.useDispatch,l=t.select,u=wp.element.useEffect,c=n((function(t){return t(e.storeName).getDate()}),[]),s=n((function(t){return t(e.storeName).getEnabled()}),[]),m=n((function(t){return t(e.storeName).getAction()}),[]),d=n((function(t){return t(e.storeName).getNewStatus()}),[]),p=n((function(t){return t(e.storeName).getTerms()}),[]),f=n((function(t){return t(e.storeName).getTaxonomy()}),[]),y=n((function(t){return t(e.storeName).getChangeAction()}),[]),g=n((function(t){return t(e.storeName).getHasValidData()}),[]),v=i(e.storeName).setChangeAction,b=p;"object"===(void 0===p?"undefined":a(p))&&(b=p.join(","));var E=[{value:"no-change",label:e.strings.noChange},{value:"change-add",label:e.strings.changeAdd},{value:"add-only",label:e.strings.addOnly},{value:"change-only",label:e.strings.changeOnly},{value:"remove-only",label:e.strings.removeOnly}];return u((function(){g||"no-change"===y?jQuery("#bulk_edit").prop("disabled",!1):jQuery("#bulk_edit").prop("disabled",!0)}),[g,y]),React.createElement("div",{className:"post-expirator-panel"},React.createElement(r.SelectControl,{label:e.strings.futureActionUpdate,name:"future_action_bulk_change_action",value:y,options:E,onChange:function(e){v(e)}}),["change-add","add-only","change-only"].includes(y)&&React.createElement(r.FutureActionPanel,{context:"bulk-edit",autoEnableAndHideCheckbox:!0,postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:!0,calendarIsVisible:!1,action:m,newStatus:d,date:c,terms:p,taxonomy:f,taxonomyName:e.taxonomyName,onChangeData:function(t,n){(0,o.getElementByName)("future_action_bulk_enabled").value=l(e.storeName).getEnabled()?1:0,(0,o.getElementByName)("future_action_bulk_action").value=l(e.storeName).getAction(),(0,o.getElementByName)("future_action_bulk_new_status").value=l(e.storeName).getNewStatus(),(0,o.getElementByName)("future_action_bulk_date").value=l(e.storeName).getDate(),(0,o.getElementByName)("future_action_bulk_terms").value=l(e.storeName).getTerms().join(","),(0,o.getElementByName)("future_action_bulk_taxonomy").value=l(e.storeName).getTaxonomy()},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings}),React.createElement("input",{type:"hidden",name:"future_action_bulk_enabled",value:s?1:0}),React.createElement("input",{type:"hidden",name:"future_action_bulk_action",value:m}),React.createElement("input",{type:"hidden",name:"future_action_bulk_new_status",value:d}),React.createElement("input",{type:"hidden",name:"future_action_bulk_date",value:c}),React.createElement("input",{type:"hidden",name:"future_action_bulk_terms",value:b}),React.createElement("input",{type:"hidden",name:"future_action_bulk_taxonomy",value:f}),React.createElement("input",{type:"hidden",name:"future_action_bulk_view",value:"bulk-edit"}),React.createElement("input",{type:"hidden",name:"_future_action_nonce",value:e.nonce}))}},571:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelClassicEditor=void 0;var a=n(57),r=n(562);n(386),t.FutureActionPanelClassicEditor=function(e){(new Date).getTimezoneOffset();var t=function(e){return document.getElementsByName(e)[0]},n=function(e){var n=t(e);return n?n.value:""},o={enabled:"1"===n("future_action_enabled"),action:n("future_action_action"),newStatus:n("future_action_new_status"),date:n("future_action_date"),terms:function(e){var n=t("future_action_terms");if(!n)return[];var a=n.value.split(",");return 1===a.length&&""===a[0]&&(a=[]),a.map((function(e){return parseInt(e)}))}(),taxonomy:n("future_action_taxonomy")};return React.createElement("div",{className:"post-expirator-panel"},React.createElement(a.FutureActionPanel,{context:"classic-editor",postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:o.enabled,calendarIsVisible:!0,action:o.action,newStatus:o.newStatus,date:o.date,terms:o.terms,taxonomy:o.taxonomy,taxonomyName:e.taxonomyName,onChangeData:function(n,a){var o=(0,r.select)(e.storeName);t("future_action_enabled").value=o.getEnabled()?1:0,t("future_action_action").value=o.getAction(),t("future_action_new_status").value=o.getNewStatus(),t("future_action_date").value=o.getDate(),t("future_action_terms").value=o.getTerms().join(","),t("future_action_taxonomy").value=o.getTaxonomy()},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){jQuery("#publish").prop("disabled",!1)},onDataIsInvalid:function(){jQuery("#publish").prop("disabled",!0)}}))}},437:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelQuickEdit=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(57),o=n(562);n(386),t.FutureActionPanelQuickEdit=function(e){var t=(0,o.useSelect)((function(t){return t(e.storeName).getDate()}),[]),n=(0,o.useSelect)((function(t){return t(e.storeName).getEnabled()}),[]),i=(0,o.useSelect)((function(t){return t(e.storeName).getAction()}),[]),l=(0,o.useSelect)((function(t){return t(e.storeName).getTerms()}),[]),u=(0,o.useSelect)((function(t){return t(e.storeName).getTaxonomy()}),[]),c=((0,o.useSelect)((function(t){return t(e.storeName).getHasValidData()}),[]),(0,o.useSelect)((function(t){return t(e.storeName).getNewStatus()}),[])),s=l;return"object"===(void 0===l?"undefined":a(l))&&(s=l.join(",")),React.createElement("div",{className:"post-expirator-panel"},React.createElement(r.FutureActionPanel,{context:"quick-edit",postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:n,calendarIsVisible:!1,action:i,newStatus:c,date:t,terms:l,taxonomy:u,taxonomyName:e.taxonomyName,onChangeData:function(e,t){},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){jQuery(".button-primary.save").prop("disabled",!1)},onDataIsInvalid:function(){jQuery(".button-primary.save").prop("disabled",!0)}}),React.createElement("input",{type:"hidden",name:"future_action_enabled",value:n?1:0}),React.createElement("input",{type:"hidden",name:"future_action_action",value:i||""}),React.createElement("input",{type:"hidden",name:"future_action_new_status",value:c||""}),React.createElement("input",{type:"hidden",name:"future_action_date",value:t||""}),React.createElement("input",{type:"hidden",name:"future_action_terms",value:s||""}),React.createElement("input",{type:"hidden",name:"future_action_taxonomy",value:u||""}),React.createElement("input",{type:"hidden",name:"future_action_view",value:"quick-edit"}),React.createElement("input",{type:"hidden",name:"_future_action_nonce",value:e.nonce}))}},625:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelTop=void 0;var a=Object.assign||function(e){for(var t=1;t{Object.defineProperty(t,"__esModule",{value:!0}),t.NonceControl=void 0;var a=n(386);t.NonceControl=function(e){return e.name||(e.name="_wpnonce"),e.referrer||(e.referrer=!0),React.createElement(a.Fragment,null,React.createElement("input",{type:"hidden",name:e.name,id:e.name,value:e.nonce}),e.referrer&&React.createElement("input",{type:"hidden",name:"_wp_http_referer",value:e.referrer}))}},239:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PostTypeSettingsPanel=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(57),o=n(386),i=n(11),l=n(566),u=n(244),c=wp.components,s=c.PanelRow;c.BaseControl,t.PostTypeSettingsPanel=function(e){var t=e.expireTypeList[e.postType],n=(0,o.useState)(e.settings.taxonomy),c=a(n,2),m=c[0],d=c[1],p=(0,o.useState)([]),f=a(p,2),y=f[0],g=f[1],v=(0,o.useState)(!1),b=a(v,2),E=b[0],S=b[1],h=(0,o.useState)([]),_=a(h,2),T=_[0],x=_[1],N=(0,o.useState)(e.settings.howToExpire),R=a(N,2),A=R[0],C=R[1],P=(0,o.useState)(e.settings.active),w=a(P,2),O=w[0],D=w[1],F=(0,o.useState)(e.settings.defaultExpireOffset),k=a(F,2),I=k[0],j=k[1],B=(0,o.useState)(e.settings.emailNotification),M=a(B,2),L=M[0],V=M[1],H=(0,o.useState)(e.settings.autoEnabled),W=a(H,2),U=W[0],Q=W[1],Y=(0,o.useState)(!1),q=a(Y,2),X=q[0],z=q[1],G=(0,o.useState)(""),J=a(G,2),K=J[0],Z=J[1],$=(0,o.useState)(""),ee=a($,2),te=ee[0],ne=ee[1],ae=(0,o.useState)(t),re=a(ae,2),oe=re[0],ie=re[1],le=(0,o.useState)(e.settings.newStatus),ue=a(le,2),ce=ue[0],se=ue[1],me=(0,o.useState)(!1),de=a(me,2),pe=de[0],fe=de[1],ye=(0,o.useState)(""),ge=a(ye,2),ve=ge[0],be=ge[1],Ee=(0,o.useState)(),Se=a(Ee,2),he=Se[0],_e=Se[1],Te=(0,o.useRef)(new AbortController),xe=["category","category-add","category-remove","category-remove-all"];(0,o.useEffect)((function(){var t;0===e.taxonomiesList.length&&(t=oe.filter((function(e){return-1===xe.indexOf(e.value)})),ie(t))}),[]),(0,o.useEffect)((function(){m&&e.taxonomiesList&&(S(!0),(0,u.apiFetch)({path:(0,i.addQueryArgs)("publishpress-future/v1/terms/"+m)}).then((function(t){var n=[],a=null,r=void 0;t.terms.forEach((function(t){r={value:t.id,label:t.name},n.push(r),m===e.settings.taxonomy&&e.settings.terms.includes(t.id)&&(null===a&&(a=[]),a.push(r.label))})),g(n),x(a),S(!1)})),e.taxonomiesList.forEach((function(e){e.value===m&&ne(e.label)})))}),[m]),(0,o.useEffect)((function(){z(function(){if(!O)return Z(""),!0;var t=I||e.settings.globalDefaultExpireOffset;if(t){var n=Te.current;n&&n.abort(),Te.current=new AbortController;var a=Te.current.signal;fe(!0),(0,u.apiFetch)({path:(0,i.addQueryArgs)("publishpress-future/v1/settings/validate-expire-offset"),method:"POST",data:{offset:t},signal:a}).then((function(e){fe(!1),z(e.isValid),Z(e.message),e.isValid?(be(e.preview),_e(e.currentTime)):be("")})).catch((function(e){"AbortError"!==e.name&&(fe(!1),z(!1),Z(e.message),be(""))}))}return Z(""),!0}())}),[O,I]),(0,o.useEffect)((function(){if(te){var e=[];t.forEach((function(t){var n=t.label;-1!==xe.indexOf(t.value)&&(n=n.replace("%s",te.toLowerCase())),e.push({value:t.value,label:n})})),ie(e)}}),[te]),(0,o.useEffect)((function(){X&&e.onDataIsValid&&e.onDataIsValid(e.postType),!X&&e.onDataIsInvalid&&e.onDataIsInvalid(e.postType)}),[X]),(0,o.useEffect)((function(){pe&&e.onValidationStarted&&e.onValidationStarted(e.postType),!pe&&e.onValidationFinished&&e.onValidationFinished(e.postType)}),[pe]);var Ne=y.map((function(e){return e.label})),Re=[React.createElement(r.SettingRow,{label:e.text.fieldActive,key:"expirationdate_activemeta-"+e.postType},React.createElement(r.CheckboxControl,{name:"expirationdate_activemeta-"+e.postType,checked:O||!1,label:e.text.fieldActiveLabel,onChange:function(e){D(e)}}))];return O&&(Re.push(React.createElement(r.SettingRow,{label:e.text.fieldAutoEnable,key:"expirationdate_autoenable-"+e.postType},React.createElement(r.CheckboxControl,{name:"expirationdate_autoenable-"+e.postType,checked:U||!1,label:e.text.fieldAutoEnableLabel,onChange:function(e){Q(e)}}))),Re.push(React.createElement(r.SettingRow,{label:e.text.fieldTaxonomy,key:"expirationdate_taxonomy-"+e.postType},React.createElement(r.SelectControl,{name:"expirationdate_taxonomy-"+e.postType,options:e.taxonomiesList,selected:m,noItemFoundMessage:e.text.noItemsfound,description:e.text.fieldTaxonomyDescription,data:e.postType,onChange:function(e){d(e)}}))),Re.push(React.createElement(r.SettingRow,{label:e.text.fieldHowToExpire,key:"expirationdate_expiretype-"+e.postType},React.createElement(r.SelectControl,{name:"expirationdate_expiretype-"+e.postType,className:"pe-howtoexpire",options:oe,description:e.text.fieldHowToExpireDescription,selected:A,onChange:function(e){C(e)}}),"change-status"===A&&React.createElement(r.SelectControl,{name:"expirationdate_newstatus-"+e.postType,options:e.statusesList,selected:ce,onChange:se}),e.taxonomiesList.length>0&&["category","category-add","category-remove"].indexOf(A)>-1&&React.createElement(r.TokensControl,{label:e.text.fieldTerm,name:"expirationdate_terms-"+e.postType,options:Ne,value:T,isLoading:E,onChange:function(e){x(e)},description:e.text.fieldTermDescription,maxSuggestions:1e3,expandOnFocus:!0,autoSelectFirstMatch:!0}))),Re.push(React.createElement(r.SettingRow,{label:e.text.fieldDefaultDateTimeOffset,key:"expired-custom-date-"+e.postType},React.createElement(r.TextControl,{name:"expired-custom-date-"+e.postType,value:I,loading:pe,placeholder:e.settings.globalDefaultExpireOffset,description:e.text.fieldDefaultDateTimeOffsetDescription,unescapedDescription:!0,onChange:function(e){j(e)}}),ve&&React.createElement(o.Fragment,null,React.createElement("h4",null,e.text.datePreview),React.createElement("div",null,React.createElement("div",null,React.createElement("span",null,e.text.datePreviewCurrent,": "),React.createElement("span",null,React.createElement("code",null,he))),React.createElement("div",null,React.createElement("span",null,e.text.datePreviewComputed,": "),React.createElement("span",null,React.createElement("code",null,ve))))))),Re.push(React.createElement(r.SettingRow,{label:e.text.fieldWhoToNotify,key:"expirationdate_emailnotification-"+e.postType},React.createElement(r.TextControl,{name:"expirationdate_emailnotification-"+e.postType,className:"large-text",value:L,description:e.text.fieldWhoToNotifyDescription,onChange:function(e){V(e)}})))),Re=(0,l.applyFilters)("expirationdate_settings_posttype",Re,e,O,o.useState),React.createElement(r.SettingsFieldset,{legend:e.legend},React.createElement(r.SettingsTable,{bodyChildren:Re}),!X&&React.createElement(s,null,React.createElement("div",{className:"publishpress-future-notice publishpress-future-notice-error"},React.createElement("strong",null,e.text.error,":")," ",K)))}},138:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PostTypesSettingsPanels=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(57);t.PostTypesSettingsPanels=function(e){var t=[],n=!0,o=!1,i=void 0;try{for(var l,u=Object.entries(e.settings)[Symbol.iterator]();!(n=(l=u.next()).done);n=!0){var c=l.value,s=a(c,2),m=s[0],d=s[1];t.push(React.createElement(r.PostTypeSettingsPanel,{legend:d.label,text:e.text,postType:m,settings:d,expireTypeList:e.expireTypeList,taxonomiesList:e.taxonomiesList[m],statusesList:e.statusesList[m],key:m+"-panel",onDataIsValid:e.onDataIsValid,onDataIsInvalid:e.onDataIsInvalid,onValidationStarted:e.onValidationStarted,onValidationFinished:e.onValidationFinished}))}}catch(e){o=!0,i=e}finally{try{!n&&u.return&&u.return()}finally{if(o)throw i}}return t}},858:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SelectControl=void 0;var a=n(386),r=n(214);t.SelectControl=function(e){return React.createElement(a.Fragment,null,0===e.options.length&&React.createElement("div",null,e.noItemFoundMessage),e.options.length>0&&React.createElement(r.SelectControl,{label:e.label,name:e.name,id:e.name,className:e.className,value:e.selected,onChange:function(t){e.onChange(t)},"data-data":e.data,options:e.options}),e.children,React.createElement("p",{className:"description"},e.description))}},5:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingRow=void 0,n(386),t.SettingRow=function(e){return React.createElement("tr",{valign:"top"},React.createElement("th",{scope:"row"},React.createElement("label",{htmlFor:""},e.label)),React.createElement("td",null,e.children))}},786:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsFieldset=function(e){return React.createElement("fieldset",null,React.createElement("legend",null,e.legend),e.children)}},892:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsForm=function(e){return React.createElement("form",{method:"post"},e.children)}},681:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsSection=void 0;var a=n(386);t.SettingsSection=function(e){return React.createElement(a.Fragment,null,React.createElement("h2",null,e.title),React.createElement("p",null,e.description),e.children)}},772:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsTable=function(e){return React.createElement("table",{className:"form-table"},React.createElement("tbody",null,e.bodyChildren))}},242:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Spinner=function(e){return React.createElement("span",{className:"publishpress-future-spinner"},React.createElement("div",null),React.createElement("div",null),React.createElement("div",null),React.createElement("div",null))}},438:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SubmitButton=function(e){return React.createElement("input",{type:"submit",name:e.name,value:e.text,disabled:e.disabled,className:"button-primary"})}},301:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TextControl=void 0;var a=n(386),r=n(214),o=n(57);t.TextControl=function(e){var t;t=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description);var n=e.className?e.className:"";return e.loading&&(n+=" publishpress-future-loading publishpress-future-loading-input"),React.createElement(a.Fragment,null,React.createElement("div",{className:n},React.createElement(r.TextControl,{type:"text",label:e.label,name:e.name,id:e.name,className:e.className,value:e.value,placeholder:e.placeholder,onChange:function(t){e.onChange&&e.onChange(t)}}),e.loading&&React.createElement(o.Spinner,null),t))}},190:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ToggleArrowButton=void 0;var a=n(214);t.ToggleArrowButton=function(e){var t=e.iconExpanded?e.iconExpanded:"arrow-up-alt2",n=e.iconCollapsed?e.iconCollapsed:"arrow-down-alt2",r=e.isExpanded?t:n,o=e.isExpanded?e.titleExpanded:e.titleCollapsed;return React.createElement(a.Button,{isSmall:!0,title:o,icon:r,onClick:function(){e.onClick&&e.onClick()},className:e.className})}},873:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ToggleCalendarDatePicker=void 0;var a=n(190),r=n(620),o=n(386);t.ToggleCalendarDatePicker=function(e){var t=e.isExpanded,n=e.strings,i=e.onToggleCalendar,l=e.currentDate,u=e.onChangeDate,c=e.is12Hour,s=e.startOfWeek;return(0,o.useEffect)((function(){var e=document.querySelector(".future-action-calendar-toggle");if(e){var t=e.nextElementSibling;if(t){var n=t.querySelector(".components-datetime__time");if(n){var a=n.nextSibling;a&&t.insertBefore(e,a)}}}})),React.createElement(o.Fragment,null,React.createElement(a.ToggleArrowButton,{className:"future-action-calendar-toggle",isExpanded:t,iconExpanded:"arrow-up-alt2",iconCollapsed:"calendar",titleExpanded:n.hideCalendar,titleCollapsed:n.showCalendar,onClick:i}),React.createElement(r.DateTimePicker,{currentDate:l,onChange:u,__nextRemoveHelpButton:!0,is12Hour:c,startOfWeek:s}))}},948:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TokensControl=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(386),o=n(214);t.TokensControl=function(e){var t=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,r.useState)(""),2),n=t[0],i=t[1];(0,r.useEffect)((function(){e.value&&i(e.value.join(","))}),[e.value]);var l=void 0;e.description&&(l=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description));var u=e.value?e.value:[];return React.createElement(r.Fragment,null,React.createElement(o.FormTokenField,{label:e.label,value:u,suggestions:e.options,onChange:function(t){e.onChange&&e.onChange(t),"object"===(void 0===t?"undefined":a(t))?i(t.join(",")):i("")},maxSuggestions:e.maxSuggestions,className:"publishpres-future-token-field",__experimentalExpandOnFocus:e.expandOnFocus,__experimentalAutoSelectFirstMatch:e.autoSelectFirstMatch}),React.createElement("input",{type:"hidden",name:e.name,value:n}),l)}},225:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TrueFalseControl=function(e){var t=wp.element.Fragment,n=function(t){e.onChange&&e.onChange(t.target.value===e.trueValue&&jQuery(t.target).is(":checked"))};return React.createElement(t,null,React.createElement("input",{type:"radio",name:e.name,id:e.name+"-true",value:e.trueValue,defaultChecked:e.selected,onChange:n}),React.createElement("label",{htmlFor:e.name+"-true"},e.trueLabel),"  ",React.createElement("input",{type:"radio",name:e.name,defaultChecked:!e.selected,id:e.name+"-false",value:e.falseValue,onChange:n}),React.createElement("label",{htmlFor:e.name+"-false"},e.falseLabel),React.createElement("p",{className:"description"},e.description))}},57:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var a=n(442);Object.defineProperty(t,"ButtonsPanel",{enumerable:!0,get:function(){return a.ButtonsPanel}});var r=n(418);Object.defineProperty(t,"FutureActionPanel",{enumerable:!0,get:function(){return r.FutureActionPanel}});var o=n(864);Object.defineProperty(t,"FutureActionPanelBlockEditor",{enumerable:!0,get:function(){return o.FutureActionPanelBlockEditor}});var i=n(571);Object.defineProperty(t,"FutureActionPanelClassicEditor",{enumerable:!0,get:function(){return i.FutureActionPanelClassicEditor}});var l=n(437);Object.defineProperty(t,"FutureActionPanelQuickEdit",{enumerable:!0,get:function(){return l.FutureActionPanelQuickEdit}});var u=n(94);Object.defineProperty(t,"FutureActionPanelBulkEdit",{enumerable:!0,get:function(){return u.FutureActionPanelBulkEdit}});var c=n(239);Object.defineProperty(t,"PostTypeSettingsPanel",{enumerable:!0,get:function(){return c.PostTypeSettingsPanel}});var s=n(138);Object.defineProperty(t,"PostTypesSettingsPanels",{enumerable:!0,get:function(){return s.PostTypesSettingsPanels}});var m=n(5);Object.defineProperty(t,"SettingRow",{enumerable:!0,get:function(){return m.SettingRow}});var d=n(786);Object.defineProperty(t,"SettingsFieldset",{enumerable:!0,get:function(){return d.SettingsFieldset}});var p=n(892);Object.defineProperty(t,"SettingsForm",{enumerable:!0,get:function(){return p.SettingsForm}});var f=n(681);Object.defineProperty(t,"SettingsSection",{enumerable:!0,get:function(){return f.SettingsSection}});var y=n(772);Object.defineProperty(t,"SettingsTable",{enumerable:!0,get:function(){return y.SettingsTable}});var g=n(438);Object.defineProperty(t,"SubmitButton",{enumerable:!0,get:function(){return g.SubmitButton}});var v=n(311);Object.defineProperty(t,"CheckboxControl",{enumerable:!0,get:function(){return v.CheckboxControl}});var b=n(858);Object.defineProperty(t,"SelectControl",{enumerable:!0,get:function(){return b.SelectControl}});var E=n(301);Object.defineProperty(t,"TextControl",{enumerable:!0,get:function(){return E.TextControl}});var S=n(948);Object.defineProperty(t,"TokensControl",{enumerable:!0,get:function(){return S.TokensControl}});var h=n(13);Object.defineProperty(t,"NonceControl",{enumerable:!0,get:function(){return h.NonceControl}});var _=n(225);Object.defineProperty(t,"TrueFalseControl",{enumerable:!0,get:function(){return _.TrueFalseControl}});var T=n(242);Object.defineProperty(t,"Spinner",{enumerable:!0,get:function(){return T.Spinner}})},480:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createStore=void 0;var a=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:t,u=arguments[1];switch(u.type){case"SET_ACTION":return a({},l,{action:u.action});case"SET_NEW_STATUS":return a({},l,{newStatus:u.newStatus});case"SET_DATE":return"number"!=typeof u.date&&(0,o.isNumber)(u.date)&&(u.date=parseInt(u.date)),"string"==typeof u.date&&(u.date=new Date(u.date).getTime()),u.date=(0,r.normalizeUnixTimeToSeconds)(u.date),u.date=(0,r.formatUnixTimeToTimestamp)(u.date),a({},l,{date:u.date});case"SET_ENABLED":return a({},l,{enabled:u.enabled});case"SET_TERMS":return a({},l,{terms:u.terms});case"SET_TAXONOMY":return a({},l,{taxonomy:u.taxonomy});case"SET_TERMS_LIST_BY_NAME":return a({},l,{termsListByName:u.termsListByName});case"SET_TERMS_LIST_BY_ID":return a({},l,{termsListById:u.termsListById});case"SET_TAXONOMY_NAME":return a({},l,{taxonomyName:u.taxonomyName});case"SET_CHANGE_ACTION":return a({},l,{changeAction:u.changeAction});case"SET_CALENDAR_IS_VISIBLE":return a({},l,{calendarIsVisible:u.calendarIsVisible});case"SET_HAS_VALID_DATA":return a({},l,{hasValidData:u.hasValidData});case"SET_EXTRA_DATA":return a({},l,{extraData:a({},u.extraData)});case"SET_EXTRA_DATA_BY_NAME":var c=a({},l.extraData,(e={},n=u.name,i=u.value,n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i,e));return a({},l,{extraData:a({},c)})}return l},actions:{setAction:function(e){return{type:"SET_ACTION",action:e}},setNewStatus:function(e){return{type:"SET_NEW_STATUS",newStatus:e}},setDate:function(e){return{type:"SET_DATE",date:e}},setEnabled:function(e){return{type:"SET_ENABLED",enabled:e}},setTerms:function(e){return{type:"SET_TERMS",terms:e}},setTaxonomy:function(e){return{type:"SET_TAXONOMY",taxonomy:e}},setTermsListByName:function(e){return{type:"SET_TERMS_LIST_BY_NAME",termsListByName:e}},setTermsListById:function(e){return{type:"SET_TERMS_LIST_BY_ID",termsListById:e}},setTaxonomyName:function(e){return{type:"SET_TAXONOMY_NAME",taxonomyName:e}},setIsFetchingTerms:function(e){return{type:"SET_IS_FETCHING_TERMS",isFetchingTerms:e}},setChangeAction:function(e){return{type:"SET_CHANGE_ACTION",changeAction:e}},setCalendarIsVisible:function(e){return{type:"SET_CALENDAR_IS_VISIBLE",calendarIsVisible:e}},setHasValidData:function(e){return{type:"SET_HAS_VALID_DATA",hasValidData:e}},setExtraData:function(e){return{type:"SET_EXTRA_DATA",extraData:e}},setExtraDataByName:function(e,t){return{type:"SET_EXTRA_DATA_BY_NAME",name:e,value:t}}},selectors:{getAction:function(e){return e.action},getNewStatus:function(e){return e.newStatus},getDate:function(e){return e.date},getEnabled:function(e){return e.enabled},getTerms:function(e){return e.terms},getTaxonomy:function(e){return e.taxonomy},getTermsListByName:function(e){return e.termsListByName},getTermsListById:function(e){return e.termsListById},getTaxonomyName:function(e){return e.taxonomyName},getIsFetchingTerms:function(e){return e.isFetchingTerms},getChangeAction:function(e){return e.changeAction},getCalendarIsVisible:function(e){return e.calendarIsVisible},getHasValidData:function(e){return e.hasValidData},getExtraData:function(e){return e.extraData},getExtraDataByName:function(e,t){return e.extraData[t]||null}}});return(0,i.register)(n),n}},39:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n=t.getCurrentTimeInSeconds=function(){return o((new Date).getTime())},a=(t.getCurrentTimeAsTimestamp=function(){return a(n())},t.formatUnixTimeToTimestamp=function(e){var t=new Date(o(e));return t.getFullYear()+"-"+("0"+(t.getMonth()+1)).slice(-2)+"-"+("0"+t.getDate()).slice(-2)+" "+("0"+t.getHours()).slice(-2)+":"+("0"+t.getMinutes()).slice(-2)+":"+("0"+t.getSeconds()).slice(-2)}),r=(t.formatTimestampToUnixTime=function(e){var t=new Date(e);return o(t.getTime())},t.timeIsInSeconds=function(e){return parseInt(e).toString().length<=10}),o=t.normalizeUnixTimeToSeconds=function(e){return e=parseInt(e),r()?e:e/1e3};t.normalizeUnixTimeToMilliseconds=function(e){return e=parseInt(e),r()?1e3*e:e}},409:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=(t.compact=function(e){return e?(Array.isArray(e)||"object"!==(void 0===e?"undefined":n(e))||(e=Object.values(e)),e.filter((function(e){return null!=e&&""!==e}))):[]},t.debugLogFactory=function(e){return function(t){for(var n=arguments.length,a=Array(n>1?n-1:0),r=1;r{e.exports=publishpressFutureBulkEditConfig},643:e=>{e.exports=window},244:e=>{e.exports=wp},214:e=>{e.exports=wp.components},562:e=>{e.exports=wp.data},386:e=>{e.exports=wp.element},566:e=>{e.exports=wp.hooks},986:e=>{e.exports=wp.plugins},11:e=>{e.exports=wp.url}},t={};function n(a){var r=t[a];if(void 0!==r)return r.exports;var o=t[a]={exports:{}};return e[a](o,o.exports,n),o.exports}var a=n(57),r=n(480),o=n(386),i=n(562),l=n(643),u=n(384),c="publishpress-future/future-action-bulk-edit",s=l.inlineEditPost.setBulk,m=l.inlineEditPost.revert;l.inlineEditPost.setBulk=function(e){s.apply(this,arguments),(0,i.select)(c)?((0,i.dispatch)(c).setAction(u.postTypeDefaultConfig.expireType),(0,i.dispatch)(c).setDate(u.postTypeDefaultConfig.defaultDate),(0,i.dispatch)(c).setTaxonomy(u.postTypeDefaultConfig.taxonomy),(0,i.dispatch)(c).setTerms(u.postTypeDefaultConfig.terms),(0,i.dispatch)(c).setChangeAction("no-change")):(0,r.createStore)({name:c,defaultState:{action:u.postTypeDefaultConfig.expireType,newStatus:u.postTypeDefaultConfig.newStatus,date:u.defaultDate,taxonomy:u.postTypeDefaultConfig.taxonomy,terms:u.postTypeDefaultConfig.terms,changeAction:"no-change"}});var t=document.getElementById("publishpress-future-bulk-edit"),n=(0,o.createRoot)(t),d=document.querySelector("#bulk_edit");d&&(d.onclick=function(){setTimeout((function(){n.unmount()}),1e3)});var p=React.createElement(a.FutureActionPanelBulkEdit,{storeName:c,postType:u.postType,isNewPost:u.isNewPost,actionsSelectOptions:u.actionsSelectOptions,statusesSelectOptions:u.statusesSelectOptions,is12Hour:u.is12Hour,timeFormat:u.timeFormat,startOfWeek:u.startOfWeek,strings:u.strings,taxonomyName:u.taxonomyName,nonce:u.nonce});n.render(p),l.inlineEditPost.revert=function(){n.unmount(),m.apply(this,arguments)}}})(); +(()=>{"use strict";var e={5442:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ButtonsPanel=function(e){return React.createElement("div",null,e.children)}},4311:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CheckboxControl=void 0;var a=n(1386),r=n(2214);t.CheckboxControl=function(e){var t,n=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,a.useState)(e.checked||!1),2),o=n[0],i=n[1];return t=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description),React.createElement(a.Fragment,null,React.createElement(r.CheckboxControl,{label:e.label,name:e.name,id:e.name,className:e.className,checked:o||!1,onChange:function(t){i(t),e.onChange&&e.onChange(t)}}),t)}},5470:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DateOffsetPreview=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(1386),o=n(4011),i=n(3244);n(9922);var l=t.DateOffsetPreview=function(e){var t=e.offset,n=e.label,l=e.labelDatePreview,s=e.labelOffsetPreview,u=e.setValidationErrorCallback,c=e.setHasPendingValidationCallback,d=e.setHasValidDataCallback,m=e.compactView,p=void 0!==m&&m,f=(0,r.useState)(""),y=a(f,2),g=y[0],v=y[1],b=(0,r.useState)(),h=a(b,2),E=h[0],S=h[1],_=(0,r.useRef)(new AbortController);(0,r.useEffect)((function(){!function(){if(t){var e=_.current;e&&e.abort(),_.current=new AbortController;var n=_.current.signal;c(!0),(0,i.apiFetch)({path:(0,o.addQueryArgs)("publishpress-future/v1/settings/validate-expire-offset"),method:"POST",data:{offset:t},signal:n}).then((function(e){c(!1),d(e.isValid),u(e.message),e.isValid?(v(e.preview),S(e.currentTime)):v("")})).catch((function(e){"AbortError"!==e.name&&(c(!1),d(!1),u(e.message),v(""))}))}}()}),[t]);var x=p?" compact":"";return React.createElement(r.Fragment,null,t&&React.createElement("div",{className:"publishpress-future-date-preview"+x},React.createElement("h4",null,n),React.createElement("div",{className:"publishpress-future-date-preview-body"},React.createElement("div",null,React.createElement("span",{className:"publishpress-future-date-preview-label"},l,": "),React.createElement("span",{className:"publishpress-future-date-preview-value"},E)),React.createElement("div",null,React.createElement("span",{className:"publishpress-future-date-preview-label"},s,": "),React.createElement("span",{className:"publishpress-future-date-preview-value"},g)))))};t.default=l},4620:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DateTimePicker=void 0;var a=n(7039),r=n(2214);t.DateTimePicker=function(e){var t=e.currentDate,n=e.onChange,o=e.is12Hour,i=e.startOfWeek;return"number"==typeof t&&(t=(0,a.normalizeUnixTimeToMilliseconds)(t)),React.createElement(r.DateTimePicker,{currentDate:t,onChange:n,__nextRemoveHelpButton:!0,is12Hour:o,startOfWeek:i})}},8418:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanel=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},o=n(8409),i=n(4873),l=n(9986),s=n(2214),u=n(1442),c=n(6625),d=wp.components,m=d.PanelRow,p=d.CheckboxControl,f=d.SelectControl,y=d.FormTokenField,g=d.Spinner,v=d.BaseControl,b=wp.element,h=b.Fragment,E=b.useEffect,S=b.useState,_=wp.htmlEntities.decodeEntities,x=wp.url.addQueryArgs,T=wp.data,A=T.useSelect,N=T.useDispatch,C=wp.apiFetch;t.FutureActionPanel=function(e){var t=A((function(t){return{action:t(e.storeName).getAction(),date:t(e.storeName).getDate(),enabled:t(e.storeName).getEnabled(),terms:t(e.storeName).getTerms(),taxonomy:t(e.storeName).getTaxonomy(),taxonomyName:t(e.storeName).getTaxonomyName(),termsListByName:t(e.storeName).getTermsListByName(),termsListById:t(e.storeName).getTermsListById(),isFetchingTerms:t(e.storeName).getIsFetchingTerms(),calendarIsVisible:t(e.storeName).getCalendarIsVisible(),hasValidData:t(e.storeName).getHasValidData(),newStatus:t(e.storeName).getNewStatus()}})),n=t.action,d=t.date,b=t.enabled,T=t.terms,R=t.taxonomy,w=t.taxonomyName,P=t.termsListByName,O=t.termsListById,D=t.isFetchingTerms,I=t.calendarIsVisible,k=t.hasValidData,F=t.newStatus,B=S(""),j=r(B,2),M=j[0],V=j[1],L=N(e.storeName),H=L.setAction,U=L.setDate,W=L.setEnabled,Q=L.setTerms,q=L.setTaxonomy,Y=L.setTermsListByName,z=L.setTermsListById,X=L.setTaxonomyName,G=L.setIsFetchingTerms,J=L.setCalendarIsVisible,Z=L.setHasValidData,K=L.setNewStatus,$=function(e){P[e]={id:e,count:0,description:"",link:"",name:e,slug:e,taxonomy:R},O[e]=e,Y(P),z(O),Q([].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0&&O&&(re=(0,o.compact)(function(e){return"object"!==(void 0===e?"undefined":a(e))||null===e?{}:e.map((function(e){return O[e]}))}(T)),"string"==typeof re&&(re=[]));var oe=[];"object"===(void 0===P?"undefined":a(P))&&null!==P&&(oe=Object.keys(P));var ie,le=I?"future-action-panel":"future-action-panel hidden-calendar",se=I?"future-action-panel-content":"future-action-panel-content hidden-calendar",ue=I?"future-action-date-panel":"future-action-date-panel hidden-calendar";ie="inherited"===e.timeFormat?!e.is12Hour:"24h"===e.timeFormat;var ce=e.actionsSelectOptions;e.taxonomy||(ce=e.actionsSelectOptions.filter((function(e){return-1===["category","category-add","category-remove","category-remove-all"].indexOf(e.value)})));var de=function(e,t,n){var a=e.split("{"),o=[];o.push(a.shift());var i=!0,l=!1,s=void 0;try{for(var u,c=a[Symbol.iterator]();!(i=(u=c.next()).done);i=!0){var d=u.value.split("}"),m=r(d,2),p=m[0],f=m[1];o.push(React.createElement("a",{href:t,target:"_blank",key:t},p)),o.push(f)}}catch(e){l=!0,s=e}finally{try{!i&&c.return&&c.return()}finally{if(l)throw s}}return o}(e.strings.timezoneSettingsHelp,"/wp-admin/options-general.php#timezone_string"),me=String(n).includes("category")&&"category-remove-all"!==n,pe=w;switch(n){case"category":pe=e.strings.newTerms.replace("%s",w);break;case"category-remove":pe=e.strings.removeTerms.replace("%s",w);break;case"category-add":pe=e.strings.addTerms.replace("%s",w)}return E((function(){if(!b)return Z(!0),void V("");Z(function(){var t=!0;if(!b)return V(""),!0;n||(V(e.strings.errorActionRequired),t=!1),d||(V(e.strings.errorDateRequired),t=!1),d&&new Date(d){Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelAfterActionField=void 0;var a=Object.assign||function(e){for(var t=1;t{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelBlockEditor=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(2057);t.FutureActionPanelBlockEditor=function(e){var t=wp.editPost.PluginDocumentSettingPanel,n=wp.data,o=n.useDispatch,i=n.select,l=o("core/editor").editPost,s=i("core/editor").getEditedPostAttribute("publishpress_future_action"),u=o("core/editor"),c=u.lockPostSaving,d=u.unlockPostSaving;return React.createElement(t,{name:"publishpress-future-action-panel",title:e.strings.panelTitle,initialOpen:e.postTypeDefaultConfig.autoEnable,className:"post-expirator-panel"},React.createElement("div",{id:"publishpress-future-block-editor"},React.createElement(r.FutureActionPanel,{context:"block-editor",postType:e.postType,isCleanNewPost:e.isCleanNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:s.enabled,calendarIsVisible:!0,action:s.action,newStatus:s.newStatus,date:s.date,terms:s.terms,taxonomy:s.taxonomy,taxonomyName:e.taxonomyName,onChangeData:function(t,n){var r=i(e.storeName),o={enabled:r.getEnabled()};o.enabled&&(o.action=r.getAction(),o.newStatus=r.getNewStatus(),o.date=r.getDate(),o.terms=r.getTerms(),o.taxonomy=r.getTaxonomy(),o.extraData=r.getExtraData()),function(e){var t={publishpress_future_action:{}},n=!0,r=!1,o=void 0;try{for(var i,s=Object.entries(e)[Symbol.iterator]();!(n=(i=s.next()).done);n=!0){var u=i.value,c=a(u,2),d=c[0],m=c[1];t.publishpress_future_action[d]=m}}catch(e){r=!0,o=e}finally{try{!n&&s.return&&s.return()}finally{if(r)throw o}}l(t)}(o)},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){d("future-action")},hideCalendarByDefault:e.hideCalendarByDefault,onDataIsInvalid:function(){c("future-action")}})))}},2094:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelBulkEdit=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(2057),o=n(8409);t.FutureActionPanelBulkEdit=function(e){var t=wp.data,n=t.useSelect,i=t.useDispatch,l=t.select,s=wp.element.useEffect,u=n((function(t){return t(e.storeName).getDate()}),[]),c=n((function(t){return t(e.storeName).getEnabled()}),[]),d=n((function(t){return t(e.storeName).getAction()}),[]),m=n((function(t){return t(e.storeName).getNewStatus()}),[]),p=n((function(t){return t(e.storeName).getTerms()}),[]),f=n((function(t){return t(e.storeName).getTaxonomy()}),[]),y=n((function(t){return t(e.storeName).getChangeAction()}),[]),g=n((function(t){return t(e.storeName).getHasValidData()}),[]),v=i(e.storeName).setChangeAction,b=p;"object"===(void 0===p?"undefined":a(p))&&(b=p.join(","));var h=[{value:"no-change",label:e.strings.noChange},{value:"change-add",label:e.strings.changeAdd},{value:"add-only",label:e.strings.addOnly},{value:"change-only",label:e.strings.changeOnly},{value:"remove-only",label:e.strings.removeOnly}];return s((function(){g||"no-change"===y?jQuery("#bulk_edit").prop("disabled",!1):jQuery("#bulk_edit").prop("disabled",!0)}),[g,y]),React.createElement("div",{className:"post-expirator-panel"},React.createElement(r.SelectControl,{label:e.strings.futureActionUpdate,name:"future_action_bulk_change_action",value:y,options:h,onChange:function(e){v(e)}}),["change-add","add-only","change-only"].includes(y)&&React.createElement(r.FutureActionPanel,{context:"bulk-edit",autoEnableAndHideCheckbox:!0,postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:!0,calendarIsVisible:!1,action:d,newStatus:m,date:u,terms:p,taxonomy:f,taxonomyName:e.taxonomyName,onChangeData:function(t,n){(0,o.getElementByName)("future_action_bulk_enabled").value=l(e.storeName).getEnabled()?1:0,(0,o.getElementByName)("future_action_bulk_action").value=l(e.storeName).getAction(),(0,o.getElementByName)("future_action_bulk_new_status").value=l(e.storeName).getNewStatus(),(0,o.getElementByName)("future_action_bulk_date").value=l(e.storeName).getDate(),(0,o.getElementByName)("future_action_bulk_terms").value=l(e.storeName).getTerms().join(","),(0,o.getElementByName)("future_action_bulk_taxonomy").value=l(e.storeName).getTaxonomy()},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,hideCalendarByDefault:e.hideCalendarByDefault,strings:e.strings}),React.createElement("input",{type:"hidden",name:"future_action_bulk_enabled",value:c?1:0}),React.createElement("input",{type:"hidden",name:"future_action_bulk_action",value:d}),React.createElement("input",{type:"hidden",name:"future_action_bulk_new_status",value:m}),React.createElement("input",{type:"hidden",name:"future_action_bulk_date",value:u}),React.createElement("input",{type:"hidden",name:"future_action_bulk_terms",value:b}),React.createElement("input",{type:"hidden",name:"future_action_bulk_taxonomy",value:f}),React.createElement("input",{type:"hidden",name:"future_action_bulk_view",value:"bulk-edit"}),React.createElement("input",{type:"hidden",name:"_future_action_nonce",value:e.nonce}))}},3571:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelClassicEditor=void 0;var a=n(2057),r=n(7562);n(1386),t.FutureActionPanelClassicEditor=function(e){(new Date).getTimezoneOffset();var t=function(e){return document.getElementsByName(e)[0]},n=function(e){var n=t(e);return n?n.value:""},o={enabled:"1"===n("future_action_enabled"),action:n("future_action_action"),newStatus:n("future_action_new_status"),date:n("future_action_date"),terms:function(e){var n=t("future_action_terms");if(!n)return[];var a=n.value.split(",");return 1===a.length&&""===a[0]&&(a=[]),a.map((function(e){return parseInt(e)}))}(),taxonomy:n("future_action_taxonomy")};return React.createElement("div",{className:"post-expirator-panel"},React.createElement(a.FutureActionPanel,{context:"classic-editor",postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:o.enabled,calendarIsVisible:!0,action:o.action,newStatus:o.newStatus,date:o.date,terms:o.terms,taxonomy:o.taxonomy,taxonomyName:e.taxonomyName,onChangeData:function(n,a){var o=(0,r.select)(e.storeName);t("future_action_enabled").value=o.getEnabled()?1:0,t("future_action_action").value=o.getAction(),t("future_action_new_status").value=o.getNewStatus(),t("future_action_date").value=o.getDate(),t("future_action_terms").value=o.getTerms().join(","),t("future_action_taxonomy").value=o.getTaxonomy()},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){jQuery("#publish").prop("disabled",!1)},hideCalendarByDefault:e.hideCalendarByDefault,onDataIsInvalid:function(){jQuery("#publish").prop("disabled",!0)}}))}},5437:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelQuickEdit=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(2057),o=n(7562);n(1386),t.FutureActionPanelQuickEdit=function(e){var t=(0,o.useSelect)((function(t){return t(e.storeName).getDate()}),[]),n=(0,o.useSelect)((function(t){return t(e.storeName).getEnabled()}),[]),i=(0,o.useSelect)((function(t){return t(e.storeName).getAction()}),[]),l=(0,o.useSelect)((function(t){return t(e.storeName).getTerms()}),[]),s=(0,o.useSelect)((function(t){return t(e.storeName).getTaxonomy()}),[]),u=((0,o.useSelect)((function(t){return t(e.storeName).getHasValidData()}),[]),(0,o.useSelect)((function(t){return t(e.storeName).getNewStatus()}),[])),c=l;return"object"===(void 0===l?"undefined":a(l))&&(c=l.join(",")),React.createElement("div",{className:"post-expirator-panel"},React.createElement(r.FutureActionPanel,{context:"quick-edit",postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:n,calendarIsVisible:!1,action:i,newStatus:u,date:t,terms:l,taxonomy:s,taxonomyName:e.taxonomyName,onChangeData:function(e,t){},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){jQuery(".button-primary.save").prop("disabled",!1)},hideCalendarByDefault:e.hideCalendarByDefault,onDataIsInvalid:function(){jQuery(".button-primary.save").prop("disabled",!0)}}),React.createElement("input",{type:"hidden",name:"future_action_enabled",value:n?1:0}),React.createElement("input",{type:"hidden",name:"future_action_action",value:i||""}),React.createElement("input",{type:"hidden",name:"future_action_new_status",value:u||""}),React.createElement("input",{type:"hidden",name:"future_action_date",value:t||""}),React.createElement("input",{type:"hidden",name:"future_action_terms",value:c||""}),React.createElement("input",{type:"hidden",name:"future_action_taxonomy",value:s||""}),React.createElement("input",{type:"hidden",name:"future_action_view",value:"quick-edit"}),React.createElement("input",{type:"hidden",name:"_future_action_nonce",value:e.nonce}))}},6625:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelTop=void 0;var a=Object.assign||function(e){for(var t=1;t{Object.defineProperty(t,"__esModule",{value:!0}),t.NonceControl=void 0;var a=n(1386);t.NonceControl=function(e){return e.name||(e.name="_wpnonce"),e.referrer||(e.referrer=!0),React.createElement(a.Fragment,null,React.createElement("input",{type:"hidden",name:e.name,id:e.name,value:e.nonce}),e.referrer&&React.createElement("input",{type:"hidden",name:"_wp_http_referer",value:e.referrer}))}},1620:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PostTypeSettingsPanel=void 0;var a,r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},o=n(2057),i=n(1386),l=n(4011),s=n(8566),u=n(3244),c=(a=n(5470))&&a.__esModule?a:{default:a},d=wp.components.PanelRow;t.PostTypeSettingsPanel=function(e){var t=e.expireTypeList[e.postType],n=(0,i.useState)(e.settings.taxonomy),a=r(n,2),m=a[0],p=a[1],f=(0,i.useState)([]),y=r(f,2),g=y[0],v=y[1],b=(0,i.useState)(!1),h=r(b,2),E=h[0],S=h[1],_=(0,i.useState)([]),x=r(_,2),T=x[0],A=x[1],N=(0,i.useState)(e.settings.howToExpire),C=r(N,2),R=C[0],w=C[1],P=(0,i.useState)(e.settings.active),O=r(P,2),D=O[0],I=O[1],k=(0,i.useState)(e.settings.defaultExpireOffset),F=r(k,2),B=F[0],j=F[1],M=(0,i.useState)(e.settings.emailNotification),V=r(M,2),L=V[0],H=V[1],U=(0,i.useState)(e.settings.autoEnabled),W=r(U,2),Q=W[0],q=W[1],Y=(0,i.useState)(!0),z=r(Y,2),X=z[0],G=z[1],J=(0,i.useState)(""),Z=r(J,2),K=Z[0],$=Z[1],ee=(0,i.useState)(""),te=r(ee,2),ne=te[0],ae=te[1],re=(0,i.useState)(t),oe=r(re,2),ie=oe[0],le=oe[1],se=(0,i.useState)(e.settings.newStatus),ue=r(se,2),ce=ue[0],de=ue[1],me=(0,i.useState)(!1),pe=r(me,2),fe=pe[0],ye=pe[1],ge=B||e.settings.globalDefaultExpireOffset,ve=["category","category-add","category-remove","category-remove-all"];(0,i.useEffect)((function(){var t;0===e.taxonomiesList.length&&(t=ie.filter((function(e){return-1===ve.indexOf(e.value)})),le(t))}),[]),(0,i.useEffect)((function(){m&&e.taxonomiesList&&(S(!0),(0,u.apiFetch)({path:(0,l.addQueryArgs)("publishpress-future/v1/terms/"+m)}).then((function(t){var n=[],a=null,r=void 0;t.terms.forEach((function(t){r={value:t.id,label:t.name},n.push(r),m===e.settings.taxonomy&&e.settings.terms.includes(t.id)&&(null===a&&(a=[]),a.push(r.label))})),v(n),A(a),S(!1)})),e.taxonomiesList.forEach((function(e){e.value===m&&ae(e.label)})))}),[m]),(0,i.useEffect)((function(){if(ne){var e=[];t.forEach((function(t){var n=t.label;-1!==ve.indexOf(t.value)&&(n=n.replace("%s",ne.toLowerCase())),e.push({value:t.value,label:n})})),le(e)}}),[ne]),(0,i.useEffect)((function(){X&&e.onDataIsValid&&e.onDataIsValid(e.postType),!X&&e.onDataIsInvalid&&e.onDataIsInvalid(e.postType)}),[X]),(0,i.useEffect)((function(){fe&&e.onValidationStarted&&e.onValidationStarted(e.postType),!fe&&e.onValidationFinished&&e.onValidationFinished(e.postType)}),[fe]);var be=g.map((function(e){return e.label})),he=[React.createElement(o.SettingRow,{label:e.text.fieldActive,key:"expirationdate_activemeta-"+e.postType},React.createElement(o.CheckboxControl,{name:"expirationdate_activemeta-"+e.postType,checked:D||!1,label:e.text.fieldActiveLabel,onChange:function(e){I(e)}}))];D&&(he.push(React.createElement(o.SettingRow,{label:e.text.fieldAutoEnable,key:"expirationdate_autoenable-"+e.postType},React.createElement(o.CheckboxControl,{name:"expirationdate_autoenable-"+e.postType,checked:Q||!1,label:e.text.fieldAutoEnableLabel,onChange:function(e){q(e)}}))),he.push(React.createElement(o.SettingRow,{label:e.text.fieldTaxonomy,key:"expirationdate_taxonomy-"+e.postType},React.createElement(o.SelectControl,{name:"expirationdate_taxonomy-"+e.postType,options:e.taxonomiesList,selected:m,noItemFoundMessage:e.text.noItemsfound,description:e.text.fieldTaxonomyDescription,data:e.postType,onChange:function(e){p(e)}}))),he.push(React.createElement(o.SettingRow,{label:e.text.fieldHowToExpire,key:"expirationdate_expiretype-"+e.postType},React.createElement(o.SelectControl,{name:"expirationdate_expiretype-"+e.postType,className:"pe-howtoexpire",options:ie,description:e.text.fieldHowToExpireDescription,selected:R,onChange:function(e){w(e)}}),"change-status"===R&&React.createElement(o.SelectControl,{name:"expirationdate_newstatus-"+e.postType,options:e.statusesList,selected:ce,onChange:de}),e.taxonomiesList.length>0&&["category","category-add","category-remove"].indexOf(R)>-1&&React.createElement(o.TokensControl,{label:e.text.fieldTerm,name:"expirationdate_terms-"+e.postType,options:be,value:T,isLoading:E,onChange:function(e){A(e)},description:e.text.fieldTermDescription,maxSuggestions:1e3,expandOnFocus:!0,autoSelectFirstMatch:!0}))),he.push(React.createElement(o.SettingRow,{label:e.text.fieldDefaultDateTimeOffset,key:"expired-custom-date-"+e.postType},React.createElement(o.TextControl,{name:"expired-custom-date-"+e.postType,value:B,loading:fe,placeholder:e.settings.globalDefaultExpireOffset,description:e.text.fieldDefaultDateTimeOffsetDescription,unescapedDescription:!0,onChange:function(e){j(e)}}),React.createElement(c.default,{offset:ge,label:e.text.datePreview,labelDatePreview:e.text.datePreviewCurrent,labelOffsetPreview:e.text.datePreviewComputed,setValidationErrorCallback:$,setHasPendingValidationCallback:ye,setHasValidDataCallback:G}))),he.push(React.createElement(o.SettingRow,{label:e.text.fieldWhoToNotify,key:"expirationdate_emailnotification-"+e.postType},React.createElement(o.TextControl,{name:"expirationdate_emailnotification-"+e.postType,className:"large-text",value:L,description:e.text.fieldWhoToNotifyDescription,onChange:function(e){H(e)}})))),he=(0,s.applyFilters)("expirationdate_settings_posttype",he,e,D,i.useState);var Ee=e.isVisible?"pe-settings-fieldset":"pe-settings-fieldset hidden";return React.createElement("div",{className:Ee},React.createElement(o.SettingsTable,{bodyChildren:he}),!X&&React.createElement(d,null,React.createElement("div",{className:"publishpress-future-notice publishpress-future-notice-error"},React.createElement("strong",null,e.text.error,":")," ",K)))}},8138:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PostTypesSettingsPanels=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(2057),o=n(1386);t.PostTypesSettingsPanels=function(e){var t=(0,o.useState)(Object.keys(e.settings)[0]),n=a(t,2),i=n[0],l=n[1],s=[],u=!0,c=!1,d=void 0;try{for(var m,p=Object.entries(e.settings)[Symbol.iterator]();!(u=(m=p.next()).done);u=!0){var f=m.value,y=a(f,2),g=y[0],v=y[1];s.push(React.createElement(r.PostTypeSettingsPanel,{legend:v.label,text:e.text,postType:g,settings:v,expireTypeList:e.expireTypeList,taxonomiesList:e.taxonomiesList[g],statusesList:e.statusesList[g],key:g+"-panel",onDataIsValid:e.onDataIsValid,onDataIsInvalid:e.onDataIsInvalid,onValidationStarted:e.onValidationStarted,onValidationFinished:e.onValidationFinished,isVisible:i===g}))}}catch(e){c=!0,d=e}finally{try{!u&&p.return&&p.return()}finally{if(c)throw d}}var b=function(e){e.preventDefault(),l(e.target.hash.replace("#","").replace("-panel",""))},h=[],E=!1,S=!0,_=!1,x=void 0;try{for(var T,A=Object.entries(e.settings)[Symbol.iterator]();!(S=(T=A.next()).done);S=!0){var N=T.value,C=a(N,2),R=C[0],w=C[1];E=i===R,h.push(React.createElement("a",{href:"#"+R+"-panel",className:"nav-tab "+(E?"nav-tab-active":""),key:R+"-tab",onClick:b},w.label))}}catch(e){_=!0,x=e}finally{try{!S&&A.return&&A.return()}finally{if(_)throw x}}return React.createElement("div",null,React.createElement("nav",{className:"nav-tab-wrapper"},h),s)}},2858:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SelectControl=void 0;var a=n(1386),r=n(2214);t.SelectControl=function(e){return React.createElement(a.Fragment,null,0===e.options.length&&React.createElement("div",null,e.noItemFoundMessage),e.options.length>0&&React.createElement(r.SelectControl,{label:e.label,name:e.name,id:e.name,className:e.className,value:e.selected,onChange:function(t){e.onChange(t)},"data-data":e.data,options:e.options}),e.children,React.createElement("p",{className:"description"},e.description))}},9005:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingRow=void 0,n(1386),t.SettingRow=function(e){return React.createElement("tr",{valign:"top"},React.createElement("th",{scope:"row"},React.createElement("label",{htmlFor:""},e.label)),React.createElement("td",null,e.children))}},5786:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsFieldset=function(e){return React.createElement("fieldset",{className:e.className},React.createElement("legend",null,e.legend),e.children)}},9892:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsForm=function(e){return React.createElement("form",{method:"post"},e.children)}},5681:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsSection=void 0;var a=n(1386);t.SettingsSection=function(e){return React.createElement(a.Fragment,null,React.createElement("h2",null,e.title),React.createElement("p",null,e.description),e.children)}},6772:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsTable=function(e){return React.createElement("table",{className:"form-table"},React.createElement("tbody",null,e.bodyChildren))}},242:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Spinner=function(e){return React.createElement("span",{className:"publishpress-future-spinner"},React.createElement("div",null),React.createElement("div",null),React.createElement("div",null),React.createElement("div",null))}},4438:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SubmitButton=function(e){return React.createElement("input",{type:"submit",name:e.name,value:e.text,disabled:e.disabled,className:"button-primary"})}},6301:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TextControl=void 0;var a=n(1386),r=n(2214),o=n(2057);t.TextControl=function(e){var t;t=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description);var n=e.className?e.className:"";return e.loading&&(n+=" publishpress-future-loading publishpress-future-loading-input"),React.createElement(a.Fragment,null,React.createElement("div",{className:n},React.createElement(r.TextControl,{type:"text",label:e.label,name:e.name,id:e.name,className:e.className,value:e.value,placeholder:e.placeholder,onChange:function(t){e.onChange&&e.onChange(t)}}),e.loading&&React.createElement(o.Spinner,null),t))}},3190:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ToggleArrowButton=void 0;var a=n(2214);t.ToggleArrowButton=function(e){var t=e.iconExpanded?e.iconExpanded:"arrow-up-alt2",n=e.iconCollapsed?e.iconCollapsed:"arrow-down-alt2",r=e.isExpanded?t:n,o=e.isExpanded?e.titleExpanded:e.titleCollapsed;return React.createElement(a.Button,{isSmall:!0,title:o,icon:r,onClick:function(){e.onClick&&e.onClick()},className:e.className})}},4873:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ToggleCalendarDatePicker=void 0;var a=n(3190),r=n(4620),o=n(1386);t.ToggleCalendarDatePicker=function(e){var t=e.isExpanded,n=e.strings,i=e.onToggleCalendar,l=e.currentDate,s=e.onChangeDate,u=e.is12Hour,c=e.startOfWeek;return(0,o.useEffect)((function(){var e=document.querySelector(".future-action-calendar-toggle");if(e){var t=e.nextElementSibling;if(t){var n=t.querySelector(".components-datetime__time");if(n){var a=n.nextSibling;a&&t.insertBefore(e,a)}}}})),React.createElement(o.Fragment,null,React.createElement(a.ToggleArrowButton,{className:"future-action-calendar-toggle",isExpanded:t,iconExpanded:"arrow-up-alt2",iconCollapsed:"calendar",titleExpanded:n.hideCalendar,titleCollapsed:n.showCalendar,onClick:i}),React.createElement(r.DateTimePicker,{currentDate:l,onChange:s,__nextRemoveHelpButton:!0,is12Hour:u,startOfWeek:c}))}},3948:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TokensControl=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(1386),o=n(2214);t.TokensControl=function(e){var t=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,r.useState)(""),2),n=t[0],i=t[1];(0,r.useEffect)((function(){e.value&&i(e.value.join(","))}),[e.value]);var l=void 0;e.description&&(l=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description));var s=e.value?e.value:[];return React.createElement(r.Fragment,null,React.createElement(o.FormTokenField,{label:e.label,value:s,suggestions:e.options,onChange:function(t){e.onChange&&e.onChange(t),"object"===(void 0===t?"undefined":a(t))?i(t.join(",")):i("")},maxSuggestions:e.maxSuggestions,className:"publishpres-future-token-field",__experimentalExpandOnFocus:e.expandOnFocus,__experimentalAutoSelectFirstMatch:e.autoSelectFirstMatch}),React.createElement("input",{type:"hidden",name:e.name,value:n}),l)}},8225:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TrueFalseControl=function(e){var t=wp.element.Fragment,n=function(t){e.onChange&&e.onChange(t.target.value===e.trueValue&&jQuery(t.target).is(":checked"))};return React.createElement(t,null,React.createElement("input",{type:"radio",name:e.name,id:e.name+"-true",value:e.trueValue,defaultChecked:e.selected,onChange:n}),React.createElement("label",{htmlFor:e.name+"-true"},e.trueLabel),"  ",React.createElement("input",{type:"radio",name:e.name,defaultChecked:!e.selected,id:e.name+"-false",value:e.falseValue,onChange:n}),React.createElement("label",{htmlFor:e.name+"-false"},e.falseLabel),React.createElement("p",{className:"description"},e.description))}},2057:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var a=n(5442);Object.defineProperty(t,"ButtonsPanel",{enumerable:!0,get:function(){return a.ButtonsPanel}});var r=n(8418);Object.defineProperty(t,"FutureActionPanel",{enumerable:!0,get:function(){return r.FutureActionPanel}});var o=n(2864);Object.defineProperty(t,"FutureActionPanelBlockEditor",{enumerable:!0,get:function(){return o.FutureActionPanelBlockEditor}});var i=n(3571);Object.defineProperty(t,"FutureActionPanelClassicEditor",{enumerable:!0,get:function(){return i.FutureActionPanelClassicEditor}});var l=n(5437);Object.defineProperty(t,"FutureActionPanelQuickEdit",{enumerable:!0,get:function(){return l.FutureActionPanelQuickEdit}});var s=n(2094);Object.defineProperty(t,"FutureActionPanelBulkEdit",{enumerable:!0,get:function(){return s.FutureActionPanelBulkEdit}});var u=n(1620);Object.defineProperty(t,"PostTypeSettingsPanel",{enumerable:!0,get:function(){return u.PostTypeSettingsPanel}});var c=n(8138);Object.defineProperty(t,"PostTypesSettingsPanels",{enumerable:!0,get:function(){return c.PostTypesSettingsPanels}});var d=n(9005);Object.defineProperty(t,"SettingRow",{enumerable:!0,get:function(){return d.SettingRow}});var m=n(5786);Object.defineProperty(t,"SettingsFieldset",{enumerable:!0,get:function(){return m.SettingsFieldset}});var p=n(9892);Object.defineProperty(t,"SettingsForm",{enumerable:!0,get:function(){return p.SettingsForm}});var f=n(5681);Object.defineProperty(t,"SettingsSection",{enumerable:!0,get:function(){return f.SettingsSection}});var y=n(6772);Object.defineProperty(t,"SettingsTable",{enumerable:!0,get:function(){return y.SettingsTable}});var g=n(4438);Object.defineProperty(t,"SubmitButton",{enumerable:!0,get:function(){return g.SubmitButton}});var v=n(4311);Object.defineProperty(t,"CheckboxControl",{enumerable:!0,get:function(){return v.CheckboxControl}});var b=n(2858);Object.defineProperty(t,"SelectControl",{enumerable:!0,get:function(){return b.SelectControl}});var h=n(6301);Object.defineProperty(t,"TextControl",{enumerable:!0,get:function(){return h.TextControl}});var E=n(3948);Object.defineProperty(t,"TokensControl",{enumerable:!0,get:function(){return E.TokensControl}});var S=n(1013);Object.defineProperty(t,"NonceControl",{enumerable:!0,get:function(){return S.NonceControl}});var _=n(8225);Object.defineProperty(t,"TrueFalseControl",{enumerable:!0,get:function(){return _.TrueFalseControl}});var x=n(242);Object.defineProperty(t,"Spinner",{enumerable:!0,get:function(){return x.Spinner}});var T=n(5470);Object.defineProperty(t,"DateOffsetPreview",{enumerable:!0,get:function(){return T.DateOffsetPreview}})},4480:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createStore=void 0;var a=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:t,s=arguments[1];switch(s.type){case"SET_ACTION":return a({},l,{action:s.action});case"SET_NEW_STATUS":return a({},l,{newStatus:s.newStatus});case"SET_DATE":return"number"!=typeof s.date&&(0,o.isNumber)(s.date)&&(s.date=parseInt(s.date)),"string"==typeof s.date&&(s.date=new Date(s.date).getTime()),s.date=(0,r.normalizeUnixTimeToSeconds)(s.date),s.date=(0,r.formatUnixTimeToTimestamp)(s.date),a({},l,{date:s.date});case"SET_ENABLED":return a({},l,{enabled:s.enabled});case"SET_TERMS":return a({},l,{terms:s.terms});case"SET_TAXONOMY":return a({},l,{taxonomy:s.taxonomy});case"SET_TERMS_LIST_BY_NAME":return a({},l,{termsListByName:s.termsListByName});case"SET_TERMS_LIST_BY_ID":return a({},l,{termsListById:s.termsListById});case"SET_TAXONOMY_NAME":return a({},l,{taxonomyName:s.taxonomyName});case"SET_CHANGE_ACTION":return a({},l,{changeAction:s.changeAction});case"SET_CALENDAR_IS_VISIBLE":return a({},l,{calendarIsVisible:s.calendarIsVisible});case"SET_HAS_VALID_DATA":return a({},l,{hasValidData:s.hasValidData});case"SET_EXTRA_DATA":return a({},l,{extraData:a({},s.extraData)});case"SET_EXTRA_DATA_BY_NAME":var u=a({},l.extraData,(e={},n=s.name,i=s.value,n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i,e));return a({},l,{extraData:a({},u)})}return l},actions:{setAction:function(e){return{type:"SET_ACTION",action:e}},setNewStatus:function(e){return{type:"SET_NEW_STATUS",newStatus:e}},setDate:function(e){return{type:"SET_DATE",date:e}},setEnabled:function(e){return{type:"SET_ENABLED",enabled:e}},setTerms:function(e){return{type:"SET_TERMS",terms:e}},setTaxonomy:function(e){return{type:"SET_TAXONOMY",taxonomy:e}},setTermsListByName:function(e){return{type:"SET_TERMS_LIST_BY_NAME",termsListByName:e}},setTermsListById:function(e){return{type:"SET_TERMS_LIST_BY_ID",termsListById:e}},setTaxonomyName:function(e){return{type:"SET_TAXONOMY_NAME",taxonomyName:e}},setIsFetchingTerms:function(e){return{type:"SET_IS_FETCHING_TERMS",isFetchingTerms:e}},setChangeAction:function(e){return{type:"SET_CHANGE_ACTION",changeAction:e}},setCalendarIsVisible:function(e){return{type:"SET_CALENDAR_IS_VISIBLE",calendarIsVisible:e}},setHasValidData:function(e){return{type:"SET_HAS_VALID_DATA",hasValidData:e}},setExtraData:function(e){return{type:"SET_EXTRA_DATA",extraData:e}},setExtraDataByName:function(e,t){return{type:"SET_EXTRA_DATA_BY_NAME",name:e,value:t}}},selectors:{getAction:function(e){return e.action},getNewStatus:function(e){return e.newStatus},getDate:function(e){return e.date},getEnabled:function(e){return e.enabled},getTerms:function(e){return e.terms},getTaxonomy:function(e){return e.taxonomy},getTermsListByName:function(e){return e.termsListByName},getTermsListById:function(e){return e.termsListById},getTaxonomyName:function(e){return e.taxonomyName},getIsFetchingTerms:function(e){return e.isFetchingTerms},getChangeAction:function(e){return e.changeAction},getCalendarIsVisible:function(e){return e.calendarIsVisible},getHasValidData:function(e){return e.hasValidData},getExtraData:function(e){return e.extraData},getExtraDataByName:function(e,t){return e.extraData[t]||null}}});return(0,i.register)(n),n}},7039:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n=t.getCurrentTimeInSeconds=function(){return o((new Date).getTime())},a=(t.getCurrentTimeAsTimestamp=function(){return a(n())},t.formatUnixTimeToTimestamp=function(e){var t=new Date(o(e));return t.getFullYear()+"-"+("0"+(t.getMonth()+1)).slice(-2)+"-"+("0"+t.getDate()).slice(-2)+" "+("0"+t.getHours()).slice(-2)+":"+("0"+t.getMinutes()).slice(-2)+":"+("0"+t.getSeconds()).slice(-2)}),r=(t.formatTimestampToUnixTime=function(e){var t=new Date(e);return o(t.getTime())},t.timeIsInSeconds=function(e){return parseInt(e).toString().length<=10}),o=t.normalizeUnixTimeToSeconds=function(e){return e=parseInt(e),r()?e:e/1e3};t.normalizeUnixTimeToMilliseconds=function(e){return e=parseInt(e),r()?1e3*e:e}},8409:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=(t.compact=function(e){return e?(Array.isArray(e)||"object"!==(void 0===e?"undefined":n(e))||(e=Object.values(e)),e.filter((function(e){return null!=e&&""!==e}))):[]},t.debugLogFactory=function(e){return function(t){for(var n=arguments.length,a=Array(n>1?n-1:0),r=1;r{n.d(t,{A:()=>l});var a=n(1354),r=n.n(a),o=n(6314),i=n.n(o)()(r());i.push([e.id,".publishpress-future-date-preview .publishpress-future-date-preview-value {\n font-family: monospace;\n background-color: #e7e7e7;\n padding: 2px 4px;\n}\n\n.publishpress-future-date-preview.compact .publishpress-future-date-preview-label {\n display: block;\n}\n\n.publishpress-future-date-preview.compact {\n margin-bottom: 8px;\n}\n\n.publishpress-future-date-preview.compact h4 {\n font-size: 11px;\n font-weight: 500;\n line-height: 1.4;\n text-transform: uppercase;\n display: inline-block;\n margin-bottom: calc(8px);\n padding: 0px;\n flex-shrink: 0;\n margin-right: 12px;\n max-width: 75%;\n margin-top: 0;\n}\n\n.publishpress-future-notice.publishpress-future-notice-error {\n color: #dc3232;\n}\n","",{version:3,sources:["webpack://./assets/jsx/components/css/dateOffsetPreview.css"],names:[],mappings:"AAAA;IACI,sBAAsB;IACtB,yBAAyB;IACzB,gBAAgB;AACpB;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,kBAAkB;AACtB;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,yBAAyB;IACzB,qBAAqB;IACrB,wBAAwB;IACxB,YAAY;IACZ,cAAc;IACd,kBAAkB;IAClB,cAAc;IACd,aAAa;AACjB;;AAEA;IACI,cAAc;AAClB",sourcesContent:[".publishpress-future-date-preview .publishpress-future-date-preview-value {\n font-family: monospace;\n background-color: #e7e7e7;\n padding: 2px 4px;\n}\n\n.publishpress-future-date-preview.compact .publishpress-future-date-preview-label {\n display: block;\n}\n\n.publishpress-future-date-preview.compact {\n margin-bottom: 8px;\n}\n\n.publishpress-future-date-preview.compact h4 {\n font-size: 11px;\n font-weight: 500;\n line-height: 1.4;\n text-transform: uppercase;\n display: inline-block;\n margin-bottom: calc(8px);\n padding: 0px;\n flex-shrink: 0;\n margin-right: 12px;\n max-width: 75%;\n margin-top: 0;\n}\n\n.publishpress-future-notice.publishpress-future-notice-error {\n color: #dc3232;\n}\n"],sourceRoot:""}]);const l=i},6314:e=>{e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",a=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),a&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),a&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,a,r,o){"string"==typeof e&&(e=[[null,e,void 0]]);var i={};if(a)for(var l=0;l0?" ".concat(c[5]):""," {").concat(c[1],"}")),c[5]=o),n&&(c[2]?(c[1]="@media ".concat(c[2]," {").concat(c[1],"}"),c[2]=n):c[2]=n),r&&(c[4]?(c[1]="@supports (".concat(c[4],") {").concat(c[1],"}"),c[4]=r):c[4]="".concat(r)),t.push(c))}},t}},1354:e=>{e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var a=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(a),o="/*# ".concat(r," */");return[t].concat([o]).join("\n")}return[t].join("\n")}},5338:(e,t,n)=>{var a=n(5206);t.createRoot=a.createRoot,t.hydrateRoot=a.hydrateRoot},9922:(e,t,n)=>{n.r(t),n.d(t,{default:()=>v});var a=n(5072),r=n.n(a),o=n(7825),i=n.n(o),l=n(7659),s=n.n(l),u=n(5056),c=n.n(u),d=n(540),m=n.n(d),p=n(1113),f=n.n(p),y=n(1461),g={};g.styleTagTransform=f(),g.setAttributes=c(),g.insert=s().bind(null,"head"),g.domAPI=i(),g.insertStyleElement=m(),r()(y.A,g);const v=y.A&&y.A.locals?y.A.locals:void 0},5072:e=>{var t=[];function n(e){for(var n=-1,a=0;a{var t={};e.exports=function(e,n){var a=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(!a)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");a.appendChild(n)}},540:e=>{e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},5056:(e,t,n)=>{e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},7825:e=>{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 a="";n.supports&&(a+="@supports (".concat(n.supports,") {")),n.media&&(a+="@media ".concat(n.media," {"));var r=void 0!==n.layer;r&&(a+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),a+=n.css,r&&(a+="}"),n.media&&(a+="}"),n.supports&&(a+="}");var o=n.sourceMap;o&&"undefined"!=typeof btoa&&(a+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),t.styleTagTransform(a,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},1113:e=>{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))}}},5206:e=>{e.exports=ReactDOM},9384:e=>{e.exports=publishpressFutureBulkEditConfig},8643:e=>{e.exports=window},3244:e=>{e.exports=wp},2214:e=>{e.exports=wp.components},7562:e=>{e.exports=wp.data},1386:e=>{e.exports=wp.element},8566:e=>{e.exports=wp.hooks},9986:e=>{e.exports=wp.plugins},4011:e=>{e.exports=wp.url}},t={};function n(a){var r=t[a];if(void 0!==r)return r.exports;var o=t[a]={id:a,exports:{}};return e[a](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 a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},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 a=n(2057),r=n(4480),o=n(5338),i=n(7562),l=n(8643),s=n(9384),u="publishpress-future/future-action-bulk-edit",c=l.inlineEditPost.setBulk,d=l.inlineEditPost.revert;l.inlineEditPost.setBulk=function(e){c.apply(this,arguments),(0,i.select)(u)?((0,i.dispatch)(u).setAction(s.postTypeDefaultConfig.expireType),(0,i.dispatch)(u).setDate(s.postTypeDefaultConfig.defaultDate),(0,i.dispatch)(u).setTaxonomy(s.postTypeDefaultConfig.taxonomy),(0,i.dispatch)(u).setTerms(s.postTypeDefaultConfig.terms),(0,i.dispatch)(u).setChangeAction("no-change")):(0,r.createStore)({name:u,defaultState:{action:s.postTypeDefaultConfig.expireType,newStatus:s.postTypeDefaultConfig.newStatus,date:s.defaultDate,taxonomy:s.postTypeDefaultConfig.taxonomy,terms:s.postTypeDefaultConfig.terms,changeAction:"no-change"}});var t=document.getElementById("publishpress-future-bulk-edit"),n=(0,o.createRoot)(t),m=document.querySelector("#bulk_edit");m&&(m.onclick=function(){setTimeout((function(){n.unmount()}),1e3)});var p=React.createElement(a.FutureActionPanelBulkEdit,{storeName:u,postType:s.postType,isNewPost:s.isNewPost,actionsSelectOptions:s.actionsSelectOptions,statusesSelectOptions:s.statusesSelectOptions,is12Hour:s.is12Hour,timeFormat:s.timeFormat,startOfWeek:s.startOfWeek,strings:s.strings,taxonomyName:s.taxonomyName,nonce:s.nonce,hideCalendarByDefault:s.hideCalendarByDefault});n.render(p),l.inlineEditPost.revert=function(){n.unmount(),d.apply(this,arguments)}}})(); //# sourceMappingURL=bulk-edit.js.map \ No newline at end of file diff --git a/assets/js/bulk-edit.js.map b/assets/js/bulk-edit.js.map index 04e506cdb..b069e0cb4 100644 --- a/assets/js/bulk-edit.js.map +++ b/assets/js/bulk-edit.js.map @@ -1 +1 @@ -{"version":3,"file":"bulk-edit.js","mappings":"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","sources":["webpack://post-expirator/./assets/jsx/components/ButtonsPanel.jsx","webpack://post-expirator/./assets/jsx/components/CheckboxControl.jsx","webpack://post-expirator/./assets/jsx/components/DateTimePicker.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanel.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelAfterActionField.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelBlockEditor.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelBulkEdit.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelClassicEditor.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelQuickEdit.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelTop.jsx","webpack://post-expirator/./assets/jsx/components/NonceControl.jsx","webpack://post-expirator/./assets/jsx/components/PostTypeSettingsPanel.jsx","webpack://post-expirator/./assets/jsx/components/PostTypesSettingsPanels.jsx","webpack://post-expirator/./assets/jsx/components/SelectControl.jsx","webpack://post-expirator/./assets/jsx/components/SettingRow.jsx","webpack://post-expirator/./assets/jsx/components/SettingsFieldset.jsx","webpack://post-expirator/./assets/jsx/components/SettingsForm.jsx","webpack://post-expirator/./assets/jsx/components/SettingsSection.jsx","webpack://post-expirator/./assets/jsx/components/SettingsTable.jsx","webpack://post-expirator/./assets/jsx/components/Spinner.jsx","webpack://post-expirator/./assets/jsx/components/SubmitButton.jsx","webpack://post-expirator/./assets/jsx/components/TextControl.jsx","webpack://post-expirator/./assets/jsx/components/ToggleArrowButton.jsx","webpack://post-expirator/./assets/jsx/components/ToggleCalendarDatePicker.jsx","webpack://post-expirator/./assets/jsx/components/TokensControl.jsx","webpack://post-expirator/./assets/jsx/components/TrueFalseControl.jsx","webpack://post-expirator/./assets/jsx/components/index.jsx","webpack://post-expirator/./assets/jsx/data.jsx","webpack://post-expirator/./assets/jsx/time.jsx","webpack://post-expirator/./assets/jsx/utils.jsx","webpack://post-expirator/external var \"publishpressFutureBulkEditConfig\"","webpack://post-expirator/external var \"window\"","webpack://post-expirator/external var \"wp\"","webpack://post-expirator/external var \"wp.components\"","webpack://post-expirator/external var \"wp.data\"","webpack://post-expirator/external var \"wp.element\"","webpack://post-expirator/external var \"wp.hooks\"","webpack://post-expirator/external var \"wp.plugins\"","webpack://post-expirator/external var \"wp.url\"","webpack://post-expirator/webpack/bootstrap","webpack://post-expirator/./assets/jsx/bulk-edit.jsx"],"sourcesContent":["/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const ButtonsPanel = function (props) {\n return (\n
\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment, useState } from \"@wordpress/element\";\nimport { CheckboxControl as WPCheckboxControl } from \"@wordpress/components\";\n\nexport const CheckboxControl = function (props) {\n const [checked, setChecked] = useState(props.checked || false);\n\n let description;\n\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n\n const onChange = function (value) {\n setChecked(value);\n\n if (props.onChange) {\n props.onChange(value);\n }\n };\n\n return (\n \n \n\n {description}\n \n )\n}\n","import { normalizeUnixTimeToMilliseconds } from \"../time\";\nimport { DateTimePicker as WPDateTimePicker } from \"@wordpress/components\";\n\n\nexport const DateTimePicker = ({currentDate, onChange, is12Hour, startOfWeek}) => {\n if (typeof currentDate === 'number') {\n currentDate = normalizeUnixTimeToMilliseconds(currentDate);\n }\n\n return (\n \n )\n}\n","import { compact } from '../utils';\nimport { ToggleCalendarDatePicker } from './ToggleCalendarDatePicker';\nimport { PluginArea } from '@wordpress/plugins';\nimport { Fill, Slot, SlotFillProvider } from '@wordpress/components';\nimport { FutureActionPanelAfterActionField } from './FutureActionPanelAfterActionField';\nimport { FutureActionPanelTop } from './FutureActionPanelTop';\n\nconst { PanelRow, CheckboxControl, SelectControl, FormTokenField, Spinner, BaseControl } = wp.components;\nconst { Fragment, useEffect, useState } = wp.element;\nconst { decodeEntities } = wp.htmlEntities;\nconst { addQueryArgs } = wp.url;\nconst {\n useSelect,\n useDispatch\n} = wp.data;\nconst { apiFetch } = wp;\n\nexport const FutureActionPanel = (props) => {\n const action = useSelect((select) => select(props.storeName).getAction(), []);\n const date = useSelect((select) => select(props.storeName).getDate(), []);\n const enabled = useSelect((select) => select(props.storeName).getEnabled(), []);\n const terms = useSelect((select) => select(props.storeName).getTerms(), []);\n const taxonomy = useSelect((select) => select(props.storeName).getTaxonomy(), []);\n const taxonomyName = useSelect((select) => select(props.storeName).getTaxonomyName(), []);\n const termsListByName = useSelect((select) => select(props.storeName).getTermsListByName(), []);\n const termsListById = useSelect((select) => select(props.storeName).getTermsListById(), []);\n const isFetchingTerms = useSelect((select) => select(props.storeName).getIsFetchingTerms(), []);\n const calendarIsVisible = useSelect((select) => select(props.storeName).getCalendarIsVisible(), []);\n const hasValidData = useSelect((select) => select(props.storeName).getHasValidData(), []);\n const newStatus = useSelect((select) => select(props.storeName).getNewStatus(), []);\n\n const [validationError, setValidationError] = useState('');\n\n const {\n setAction,\n setDate,\n setEnabled,\n setTerms,\n setTaxonomy,\n setTermsListByName,\n setTermsListById,\n setTaxonomyName,\n setIsFetchingTerms,\n setCalendarIsVisible,\n setHasValidData,\n setNewStatus\n } = useDispatch(props.storeName);\n\n const mapTermsListById = (terms) => {\n if (typeof terms !== 'object' || terms === null) {\n return {};\n }\n\n return terms.map((term) => {\n return termsListById[term];\n });\n }\n\n const insertTerm = (term) => {\n termsListByName[term] = { id: term, count: 0, description: \"\", link: \"\", name: term, slug: term, taxonomy: taxonomy };\n termsListById[term] = term;\n setTermsListByName(termsListByName);\n setTermsListById(termsListById);\n setTerms([...terms, term]);\n\n }\n\n const mapTermsListByName = (terms) => {\n if (typeof terms !== 'object' || terms === null) {\n return {};\n }\n\n return terms.map((term) => {\n if (termsListByName[term]) {\n return termsListByName[term].id;\n }\n\n insertTerm(term);\n\n return term;\n });\n }\n\n const callOnChangeData = (attribute, value) => {\n if (typeof props.onChangeData === 'function') {\n props.onChangeData(attribute, value);\n }\n }\n\n const handleEnabledChange = (isChecked) => {\n setEnabled(isChecked);\n\n if (isChecked) {\n setAction(props.action);\n setDate(props.date);\n setNewStatus(props.newStatus);\n setTerms(props.terms);\n setTaxonomy(props.taxonomy);\n\n fetchTerms();\n }\n\n callOnChangeData('enabled', isChecked);\n }\n\n const handleActionChange = (value) => {\n setAction(value);\n\n callOnChangeData('action', value);\n }\n\n const handleNewStatusChange = (value) => {\n setNewStatus(value);\n\n callOnChangeData('newStatus', value);\n }\n\n const handleDateChange = (value) => {\n setDate(value);\n\n callOnChangeData('date', value);\n }\n\n const handleTermsChange = (value) => {\n value = mapTermsListByName(value);\n\n setTerms(value);\n\n callOnChangeData('terms', value);\n }\n\n const fetchTerms = () => {\n let termsListByName = {};\n let termsListById = {};\n\n if (!taxonomy) {\n return;\n }\n\n setIsFetchingTerms(true);\n\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/terms/${taxonomy}`),\n }).then((result) => {\n result.terms.forEach(term => {\n termsListByName[decodeEntities(term.name)] = term;\n termsListById[term.id] = decodeEntities(term.name);\n });\n\n setTermsListByName(termsListByName);\n setTermsListById(termsListById);\n setTaxonomyName(decodeEntities(result.taxonomyName));\n setIsFetchingTerms(false);\n });\n }\n\n const storeCalendarIsVisibleOnStorage = (value) => {\n localStorage.setItem('FUTURE_ACTION_CALENDAR_IS_VISIBLE_' + props.context, value ? '1' : '0');\n }\n\n const getCalendarIsVisibleFromStorage = () => {\n return localStorage.getItem('FUTURE_ACTION_CALENDAR_IS_VISIBLE_' + props.context);\n }\n\n useEffect(() => {\n if (props.autoEnableAndHideCheckbox) {\n setEnabled(true);\n } else {\n setEnabled(props.enabled);\n }\n\n setAction(props.action);\n setNewStatus(props.newStatus);\n setDate(props.date);\n setTerms(props.terms);\n setTaxonomy(props.taxonomy);\n\n if (getCalendarIsVisibleFromStorage() === null) {\n setCalendarIsVisible(props.calendarIsVisible);\n } else {\n setCalendarIsVisible(getCalendarIsVisibleFromStorage() === '1');\n }\n\n // We need to get the value directly from the props because the value from the store is not updated yet\n if (props.enabled) {\n if (props.isCleanNewPost) {\n // Force populate the default values\n handleEnabledChange(true);\n }\n\n fetchTerms();\n }\n }, []);\n\n useEffect(() => {\n storeCalendarIsVisibleOnStorage(calendarIsVisible);\n }, [calendarIsVisible]);\n\n useEffect(() => {\n if (hasValidData && props.onDataIsValid) {\n props.onDataIsValid();\n }\n\n if (!hasValidData && props.onDataIsInvalid) {\n props.onDataIsInvalid();\n }\n }, [hasValidData]);\n\n let selectedTerms = [];\n if (terms && terms.length > 0 && termsListById) {\n selectedTerms = compact(mapTermsListById(terms));\n\n if (typeof selectedTerms === 'string') {\n selectedTerms = [];\n }\n }\n\n let termsListByNameKeys = [];\n if (typeof termsListByName === 'object' && termsListByName !== null) {\n termsListByNameKeys = Object.keys(termsListByName);\n }\n\n const panelClass = calendarIsVisible ? 'future-action-panel' : 'future-action-panel hidden-calendar';\n const contentPanelClass = calendarIsVisible ? 'future-action-panel-content' : 'future-action-panel-content hidden-calendar';\n const datePanelClass = calendarIsVisible ? 'future-action-date-panel' : 'future-action-date-panel hidden-calendar';\n\n let is24hour;\n if (props.timeFormat === 'inherited') {\n is24hour = !props.is12Hour;\n } else {\n is24hour = props.timeFormat === '24h';\n }\n\n const replaceCurlyBracketsWithLink = (string, href, target) => {\n const parts = string.split('{');\n const result = [];\n\n result.push(parts.shift());\n\n for (const part of parts) {\n const [before, after] = part.split('}');\n\n result.push(\n {before}\n );\n\n result.push(after);\n }\n\n return result;\n };\n\n // Remove items from actions list if related to taxonomies and there is no taxonmoy for the post type\n let actionsSelectOptions = props.actionsSelectOptions;\n if (!props.taxonomy) {\n actionsSelectOptions = props.actionsSelectOptions.filter((item) => {\n return ['category', 'category-add', 'category-remove', 'category-remove-all'].indexOf(item.value) === -1;\n });\n }\n\n const HelpText = replaceCurlyBracketsWithLink(props.strings.timezoneSettingsHelp, '/wp-admin/options-general.php#timezone_string', '_blank');\n const displayTaxonomyField = String(action).includes('category') && action !== 'category-remove-all';\n\n let termsFieldLabel = taxonomyName;\n switch (action) {\n case 'category':\n termsFieldLabel = props.strings.newTerms.replace('%s', taxonomyName);\n break;\n case 'category-remove':\n termsFieldLabel = props.strings.removeTerms.replace('%s', taxonomyName);\n break;\n case 'category-add':\n termsFieldLabel = props.strings.addTerms.replace('%s', taxonomyName);\n break;\n }\n\n const validateData = () => {\n let valid = true;\n\n if (!enabled) {\n setValidationError('');\n return true;\n }\n\n if (!action) {\n setValidationError(props.strings.errorActionRequired);\n valid = false;\n }\n\n if (!date) {\n setValidationError(props.strings.errorDateRequired);\n valid = false;\n }\n\n // Check if the date is in the past\n if (date && new Date(date) < new Date()) {\n setValidationError(props.strings.errorDateInPast);\n valid = false;\n }\n\n const isTermRequired = ['category', 'category-add', 'category-remove'].includes(action);\n const noTermIsSelected = terms.length === 0 || (terms.length === 1 && (terms[0] === '' || terms[0] === '0'));\n\n if (isTermRequired && noTermIsSelected) {\n setValidationError(props.strings.errorTermsRequired);\n valid = false;\n }\n\n if (valid) {\n setValidationError('');\n }\n\n return valid;\n }\n\n useEffect(() => {\n if (!enabled) {\n setHasValidData(true);\n setValidationError('');\n\n return;\n }\n\n setHasValidData(validateData());\n }, [action, date, enabled, terms, taxonomy]);\n\n // This adds a 'cancel' class to the input when the user clicks on the\n // field to prevent the form from being submitted. This is a workaround\n // for the issue on the quick-edit form where the form is submitted when\n // the user presses the 'Enter' key trying to add a term to the field.\n const forceIgnoreAutoSubmitOnEnter = (e) => {\n jQuery(e.target).addClass('cancel');\n }\n\n return (\n \n
\n {props.autoEnableAndHideCheckbox && (\n \n )}\n\n \n\n {!props.autoEnableAndHideCheckbox && (\n \n \n \n )}\n\n {enabled && (\n \n \n \n \n\n \n\n {action === 'change-status' &&\n \n \n \n }\n\n {\n displayTaxonomyField && (\n isFetchingTerms && (\n \n \n {`${props.strings.loading} (${taxonomyName})`}\n \n \n \n )\n || (!taxonomy && (\n \n \n
\n {props.strings.noTaxonomyFound}\n
\n
\n
\n )\n || (\n termsListByNameKeys.length === 0 && (\n \n \n
\n {props.strings.noTermsFound}\n
\n
\n
\n )\n || (\n \n \n \n \n \n )\n )\n )\n )\n }\n\n \n setCalendarIsVisible(!calendarIsVisible)}\n is12Hour={!is24hour}\n startOfWeek={props.startOfWeek}\n isExpanded={calendarIsVisible}\n strings={props.strings}\n />\n \n\n \n
\n
\n\n {HelpText}\n
\n
\n\n {!hasValidData && (\n \n \n
{validationError}
\n
\n
\n )}\n
\n )}\n
\n \n
\n );\n};\n","import { Slot, Fill } from '@wordpress/components';\n\nexport const FutureActionPanelAfterActionField = ({ children }) => (\n \n {children}\n \n);\n\nconst FutureActionPanelAfterActionFieldSlot = (props) => (\n \n);\n\nFutureActionPanelAfterActionField.Slot = FutureActionPanelAfterActionFieldSlot;\n\nexport default FutureActionPanelAfterActionField;\n","import { FutureActionPanel } from './';\n\nexport const FutureActionPanelBlockEditor = (props) => {\n const { PluginDocumentSettingPanel } = wp.editPost;\n const { useDispatch, select } = wp.data;\n\n const { editPost } = useDispatch('core/editor');\n\n const editPostAttribute = (newAttribute) => {\n const attribute = {\n publishpress_future_action: {}\n };\n\n // For each property on newAttribute, set the value on attribute\n for (const [name, value] of Object.entries(newAttribute)) {\n attribute.publishpress_future_action[name] = value;\n }\n\n editPost(attribute);\n }\n\n const onChangeData = (attribute, value) => {\n const store = select(props.storeName);\n\n const newAttribute = {\n 'enabled': store.getEnabled()\n }\n\n if (newAttribute.enabled) {\n newAttribute['action'] = store.getAction();\n newAttribute['newStatus'] = store.getNewStatus();\n newAttribute['date'] = store.getDate();\n newAttribute['terms'] = store.getTerms();\n newAttribute['taxonomy'] = store.getTaxonomy();\n newAttribute['extraData'] = store.getExtraData();\n }\n\n editPostAttribute(newAttribute);\n }\n\n const data = select('core/editor').getEditedPostAttribute('publishpress_future_action');\n\n const { lockPostSaving, unlockPostSaving } = useDispatch('core/editor');\n\n const onDataIsValid = () => {\n unlockPostSaving('future-action');\n }\n\n const onDataIsInvalid = () => {\n lockPostSaving('future-action');\n }\n\n return (\n \n
\n \n
\n \n );\n};\n","import { FutureActionPanel, SelectControl } from '.';\nimport { getElementByName } from '../utils';\n\nexport const FutureActionPanelBulkEdit = (props) => {\n const { useSelect, useDispatch, select } = wp.data;\n const { useEffect } = wp.element;\n\n const onChangeData = (attribute, value) => {\n getElementByName('future_action_bulk_enabled').value = select(props.storeName).getEnabled() ? 1 : 0;\n getElementByName('future_action_bulk_action').value = select(props.storeName).getAction();\n getElementByName('future_action_bulk_new_status').value = select(props.storeName).getNewStatus();\n getElementByName('future_action_bulk_date').value = select(props.storeName).getDate();\n getElementByName('future_action_bulk_terms').value = select(props.storeName).getTerms().join(',');\n getElementByName('future_action_bulk_taxonomy').value = select(props.storeName).getTaxonomy();\n }\n\n const date = useSelect((select) => select(props.storeName).getDate(), []);\n const enabled = useSelect((select) => select(props.storeName).getEnabled(), []);\n const action = useSelect((select) => select(props.storeName).getAction(), []);\n const newStatus = useSelect((select) => select(props.storeName).getNewStatus(), []);\n const terms = useSelect((select) => select(props.storeName).getTerms(), []);\n const taxonomy = useSelect((select) => select(props.storeName).getTaxonomy(), []);\n const changeAction = useSelect((select) => select(props.storeName).getChangeAction(), []);\n const hasValidData = useSelect((select) => select(props.storeName).getHasValidData(), []);\n\n const {\n setChangeAction\n } = useDispatch(props.storeName);\n\n let termsString = terms;\n if (typeof terms === 'object') {\n termsString = terms.join(',');\n }\n\n const handleStrategyChange = (value) => {\n setChangeAction(value);\n };\n\n const options = [\n { value: 'no-change', label: props.strings.noChange },\n { value: 'change-add', label: props.strings.changeAdd },\n { value: 'add-only', label: props.strings.addOnly },\n { value: 'change-only', label: props.strings.changeOnly },\n { value: 'remove-only', label: props.strings.removeOnly },\n ];\n\n const optionsToDisplayPanel = ['change-add', 'add-only', 'change-only'];\n\n useEffect(() => {\n // We are not using onDataIsValid and onDataIsInvalid because we need to enable/disable the button\n // also based on the changeAction value.\n if (hasValidData || changeAction === 'no-change') {\n jQuery('#bulk_edit').prop('disabled', false);\n } else {\n jQuery('#bulk_edit').prop('disabled', true);\n }\n }, [hasValidData, changeAction]);\n\n return (\n
\n \n\n {optionsToDisplayPanel.includes(changeAction) && (\n \n )}\n\n {/* Bulk edit JS code will save only fields with name inside the edit row */}\n \n \n \n \n \n \n \n \n
\n );\n};\n","import { FutureActionPanel } from \"./\";\nimport { select, useSelect } from \"@wordpress/data\";\nimport { useEffect } from \"@wordpress/element\";\n\nexport const FutureActionPanelClassicEditor = (props) => {\n const browserTimezoneOffset = new Date().getTimezoneOffset();\n\n const getElementByName = (name) => {\n return document.getElementsByName(name)[0];\n }\n\n const onChangeData = (attribute, value) => {\n const store = select(props.storeName);\n\n getElementByName('future_action_enabled').value = store.getEnabled() ? 1 : 0;\n getElementByName('future_action_action').value = store.getAction();\n getElementByName('future_action_new_status').value = store.getNewStatus();\n getElementByName('future_action_date').value = store.getDate();\n getElementByName('future_action_terms').value = store.getTerms().join(',');\n getElementByName('future_action_taxonomy').value = store.getTaxonomy();\n }\n\n const getTermsFromElementByName = (name) => {\n const element = getElementByName(name);\n if (!element) {\n return [];\n }\n\n let terms = element.value.split(',');\n\n if (terms.length === 1 && terms[0] === '') {\n terms = [];\n }\n\n return terms.map(term => parseInt(term));\n }\n\n const getElementValueByName = (name) => {\n const element = getElementByName(name);\n if (!element) {\n return '';\n }\n\n return element.value;\n }\n\n const data = {\n enabled: getElementValueByName('future_action_enabled') === '1',\n action: getElementValueByName('future_action_action'),\n newStatus: getElementValueByName('future_action_new_status'),\n date: getElementValueByName('future_action_date'),\n terms: getTermsFromElementByName('future_action_terms'),\n taxonomy: getElementValueByName('future_action_taxonomy'),\n };\n\n const onDataIsValid = () => {\n jQuery('#publish').prop('disabled', false);\n }\n\n const onDataIsInvalid = () => {\n jQuery('#publish').prop('disabled', true);\n }\n\n return (\n
\n \n
\n );\n};\n","import { FutureActionPanel } from './';\nimport { useSelect, select } from '@wordpress/data';\nimport { useEffect } from '@wordpress/element';\n\nexport const FutureActionPanelQuickEdit = (props) => {\n const onChangeData = (attribute, value) => {};\n\n const date = useSelect((select) => select(props.storeName).getDate(), []);\n const enabled = useSelect((select) => select(props.storeName).getEnabled(), []);\n const action = useSelect((select) => select(props.storeName).getAction(), []);\n const terms = useSelect((select) => select(props.storeName).getTerms(), []);\n const taxonomy = useSelect((select) => select(props.storeName).getTaxonomy(), []);\n const hasValidData = useSelect((select) => select(props.storeName).getHasValidData(), []);\n const newStatus = useSelect((select) => select(props.storeName).getNewStatus(), []);\n\n let termsString = terms;\n if (typeof terms === 'object') {\n termsString = terms.join(',');\n }\n\n const onDataIsValid = () => {\n jQuery('.button-primary.save').prop('disabled', false);\n }\n\n const onDataIsInvalid = () => {\n jQuery('.button-primary.save').prop('disabled', true);\n }\n\n return (\n
\n \n\n {/* Quick edit JS code will save only fields with name inside the edit row */}\n \n \n \n \n \n \n \n \n
\n );\n};\n","import { Slot, Fill } from '@wordpress/components';\n\nexport const FutureActionPanelTop = ({ children }) => (\n \n {children}\n \n);\n\nconst FutureActionPanelTopSlot = (props) => (\n \n);\n\nFutureActionPanelTop.Slot = FutureActionPanelTopSlot;\n\nexport default FutureActionPanelTop;\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const NonceControl = function (props) {\n if (! props.name) {\n props.name = '_wpnonce';\n }\n\n if (! props.referrer) {\n props.referrer = true;\n }\n\n return (\n \n \n\n {props.referrer &&\n \n }\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nimport {\n SettingRow,\n SettingsFieldset,\n SettingsTable,\n SelectControl,\n TextControl,\n TokensControl,\n CheckboxControl\n} from './';\nimport { useEffect, useState, Fragment, useRef } from '@wordpress/element';\nimport { addQueryArgs } from '@wordpress/url';\nimport { applyFilters } from '@wordpress/hooks';\nimport { apiFetch } from '&wp';\n\nconst { PanelRow, BaseControl } = wp.components;\n\nexport const PostTypeSettingsPanel = function (props) {\n const originalExpireTypeList = props.expireTypeList[props.postType];\n\n const [postTypeTaxonomy, setPostTypeTaxonomy] = useState(props.settings.taxonomy);\n const [termOptions, setTermOptions] = useState([]);\n const [termsSelectIsLoading, setTermsSelectIsLoading] = useState(false);\n const [selectedTerms, setSelectedTerms] = useState([]);\n const [settingHowToExpire, setSettingHowToExpire] = useState(props.settings.howToExpire);\n const [isActive, setIsActive] = useState(props.settings.active);\n const [expireOffset, setExpireOffset] = useState(props.settings.defaultExpireOffset);\n const [emailNotification, setEmailNotification] = useState(props.settings.emailNotification);\n const [isAutoEnabled, setIsAutoEnabled] = useState(props.settings.autoEnabled);\n const [hasValidData, setHasValidData] = useState(false);\n const [validationError, setValidationError] = useState('');\n const [taxonomyLabel, setTaxonomyLabel] = useState('');\n const [howToExpireList, setHowToExpireList] = useState(originalExpireTypeList);\n const [newStatus, setNewStatus] = useState(props.settings.newStatus);\n const [hasPendingValidation, setHasPendingValidation] = useState(false);\n const [offsetPreview, setOffsetPreview] = useState('');\n const [currentTime, setCurrentTime] = useState();\n const apiRequestControllerRef = useRef(new AbortController());\n\n const taxonomyRelatedActions = [\n 'category',\n 'category-add',\n 'category-remove',\n 'category-remove-all'\n ];\n\n const onChangeTaxonomy = function (value) {\n setPostTypeTaxonomy(value);\n };\n\n const onChangeTerms = (value) => {\n setSelectedTerms(value);\n };\n\n const onChangeHowToExpire = (value) => {\n setSettingHowToExpire(value);\n }\n\n const onChangeActive = (value) => {\n setIsActive(value);\n }\n\n const onChangeExpireOffset = (value) => {\n setExpireOffset(value);\n }\n\n const onChangeEmailNotification = (value) => {\n setEmailNotification(value);\n }\n\n const onChangeAutoEnabled = (value) => {\n setIsAutoEnabled(value);\n }\n\n const validateData = () => {\n if (! isActive) {\n setValidationError('');\n return true;\n }\n\n const offset = expireOffset ? expireOffset : props.settings.globalDefaultExpireOffset;\n\n if (offset) {\n const controller = apiRequestControllerRef.current;\n\n if (controller) {\n controller.abort();\n }\n\n apiRequestControllerRef.current = new AbortController();\n const { signal } = apiRequestControllerRef.current;\n\n setHasPendingValidation(true);\n\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/settings/validate-expire-offset`),\n method: 'POST',\n data: {\n offset\n },\n signal,\n }).then((result) => {\n setHasPendingValidation(false);\n\n setHasValidData(result.isValid);\n setValidationError(result.message);\n\n if (result.isValid) {\n setOffsetPreview(result.preview);\n setCurrentTime(result.currentTime);\n } else {\n setOffsetPreview('');\n }\n }).catch((error) => {\n if (error.name === 'AbortError') {\n return;\n }\n\n setHasPendingValidation(false);\n setHasValidData(false);\n setValidationError(error.message);\n setOffsetPreview('');\n });\n }\n\n setValidationError('');\n return true;\n }\n\n useEffect(() => {\n // Remove items from expireTypeList if related to taxonomies and there is no taxonmoy for the post type\n if (props.taxonomiesList.length === 0) {\n let newExpireTypeList = [];\n\n newExpireTypeList = howToExpireList.filter((item) => {\n return taxonomyRelatedActions.indexOf(item.value) === -1;\n });\n\n setHowToExpireList(newExpireTypeList);\n }\n }, []);\n\n useEffect(() => {\n if (!postTypeTaxonomy || !props.taxonomiesList) {\n return;\n }\n\n setTermsSelectIsLoading(true);\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/terms/${postTypeTaxonomy}`),\n }).then((result) => {\n let options = [];\n\n let settingsTermsOptions = null;\n let option;\n\n result.terms.forEach(term => {\n option = { value: term.id, label: term.name };\n options.push(option);\n\n if (postTypeTaxonomy === props.settings.taxonomy && props.settings.terms.includes(term.id)) {\n if (settingsTermsOptions === null) {\n settingsTermsOptions = [];\n }\n\n settingsTermsOptions.push(option.label);\n }\n });\n\n setTermOptions(options);\n setSelectedTerms(settingsTermsOptions);\n setTermsSelectIsLoading(false);\n });\n\n props.taxonomiesList.forEach((taxonomy) => {\n if (taxonomy.value === postTypeTaxonomy) {\n setTaxonomyLabel(taxonomy.label);\n }\n });\n }, [postTypeTaxonomy]);\n\n useEffect(() => {\n setHasValidData(validateData());\n }, [isActive, expireOffset]);\n\n useEffect(() => {\n if (!taxonomyLabel) {\n return;\n }\n\n // Update the list of actions replacing the taxonomy name.\n let newExpireTypeList = [];\n\n originalExpireTypeList.forEach((expireType) => {\n let label = expireType.label;\n\n if (taxonomyRelatedActions.indexOf(expireType.value) !== -1) {\n label = label.replace('%s', taxonomyLabel.toLowerCase());\n }\n\n newExpireTypeList.push({\n value: expireType.value,\n label: label\n });\n });\n\n setHowToExpireList(newExpireTypeList);\n }, [taxonomyLabel]);\n\n useEffect(() => {\n if (hasValidData && props.onDataIsValid) {\n props.onDataIsValid(props.postType);\n }\n\n if (!hasValidData && props.onDataIsInvalid) {\n props.onDataIsInvalid(props.postType);\n }\n }, [hasValidData]);\n\n useEffect(() => {\n if (hasPendingValidation && props.onValidationStarted) {\n props.onValidationStarted(props.postType);\n }\n\n if (!hasPendingValidation && props.onValidationFinished) {\n props.onValidationFinished(props.postType);\n }\n }, [hasPendingValidation]);\n\n const termOptionsLabels = termOptions.map((term) => term.label);\n\n let settingsRows = [\n \n \n \n ];\n\n if (isActive) {\n settingsRows.push(\n \n \n \n );\n\n settingsRows.push(\n \n \n \n \n );\n\n settingsRows.push(\n \n \n\n {settingHowToExpire === 'change-status' &&\n \n }\n\n {(props.taxonomiesList.length > 0 && (['category', 'category-add', 'category-remove'].indexOf(settingHowToExpire) > -1)) &&\n \n }\n \n );\n\n settingsRows.push(\n \n \n\n {offsetPreview && (\n \n

{props.text.datePreview}

\n
\n
\n {props.text.datePreviewCurrent}: \n {currentTime}\n
\n
\n {props.text.datePreviewComputed}: \n {offsetPreview}\n
\n
\n
\n )}\n
\n );\n\n settingsRows.push(\n \n \n \n );\n }\n\n settingsRows = applyFilters('expirationdate_settings_posttype', settingsRows, props, isActive, useState);\n\n return (\n \n \n\n {! hasValidData && (\n \n
\n {props.text.error}: {validationError}\n
\n
\n )}\n
\n );\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nimport { PostTypeSettingsPanel } from \"./\";\n\nexport const PostTypesSettingsPanels = function (props) {\n let panels = [];\n\n for (const [postType, postTypeSettings] of Object.entries(props.settings)) {\n panels.push(\n \n );\n }\n\n return (panels);\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\nimport { SelectControl as WPSelectControl } from \"@wordpress/components\";\n\nexport const SelectControl = function (props) {\n const onChange = (value) => {\n props.onChange(value);\n };\n\n return (\n \n {props.options.length === 0 && (\n
{props.noItemFoundMessage}
\n )}\n\n {props.options.length > 0 && (\n \n )}\n\n {props.children}\n\n

{props.description}

\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const SettingRow = function (props) {\n return (\n \n \n \n \n \n {props.children}\n \n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsFieldset = function (props) {\n return (\n
\n {props.legend}\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsForm = function (props) {\n return (\n
\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const SettingsSection = function (props) {\n return (\n \n

{props.title}

\n

{props.description}

\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsTable = function (props) {\n return (\n \n \n {props.bodyChildren}\n \n
\n )\n}\n","/*\n * Copyright (c) 2024. PublishPress, All rights reserved.\n */\nexport const Spinner = function (props) {\n return (\n
\n );\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SubmitButton = function (props) {\n return (\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\nimport { TextControl as WPTextControl } from \"@wordpress/components\";\nimport { Spinner } from \"./\";\n\nexport const TextControl = function (props) {\n let description;\n\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n\n const onChange = function (value) {\n if (props.onChange) {\n props.onChange(value);\n }\n };\n\n let className = props.className ? props.className : '';\n\n if (props.loading) {\n className += ' publishpress-future-loading publishpress-future-loading-input';\n }\n\n return (\n \n
\n \n\n {props.loading && }\n\n {description}\n
\n
\n )\n}\n","import { Button } from '@wordpress/components';\n\nexport const ToggleArrowButton = function (props) {\n const onClick = function () {\n if (props.onClick) {\n props.onClick();\n }\n };\n\n const iconExpanded = props.iconExpanded ? props.iconExpanded : 'arrow-up-alt2';\n const iconCollapsed = props.iconCollapsed ? props.iconCollapsed : 'arrow-down-alt2';\n\n const icon = props.isExpanded ? iconExpanded : iconCollapsed;\n\n const title = props.isExpanded ? props.titleExpanded : props.titleCollapsed;\n\n return (\n \n )\n}\n","import { ToggleArrowButton } from \"./ToggleArrowButton\";\nimport { DateTimePicker } from \"./DateTimePicker\";\nimport { Fragment, useEffect } from \"@wordpress/element\";\n\nexport const ToggleCalendarDatePicker = (\n {\n isExpanded,\n strings,\n onToggleCalendar,\n currentDate,\n onChangeDate,\n is12Hour,\n startOfWeek\n }\n) => {\n useEffect(() => {\n // Move the element of the toggle button to between the time and date elements.\n const toggleButtonElement = document.querySelector('.future-action-calendar-toggle');\n\n if (! toggleButtonElement) {\n return;\n }\n\n const dateTimeElement = toggleButtonElement.nextElementSibling;\n\n if (! dateTimeElement) {\n return;\n }\n\n const timeElement = dateTimeElement.querySelector('.components-datetime__time');\n\n if (! timeElement) {\n return;\n }\n\n const dateElement = timeElement.nextSibling;\n\n if (! dateElement) {\n return;\n }\n\n dateTimeElement.insertBefore(toggleButtonElement, dateElement)\n });\n\n return (\n \n \n\n \n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment, useState, useEffect } from \"@wordpress/element\";\nimport { FormTokenField } from \"@wordpress/components\";\n\nexport const TokensControl = (props) => {\n const [stringValue, setStringValue] = useState('');\n\n useEffect(() => {\n if (props.value) {\n setStringValue(props.value.join(','));\n }\n }, [props.value]);\n\n let description;\n\n if (props.description) {\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n }\n\n const onChange = (value) => {\n if (props.onChange) {\n props.onChange(value);\n }\n\n if (typeof value === 'object') {\n setStringValue(value.join(','));\n } else {\n setStringValue('');\n }\n }\n\n const value = props.value ? props.value : [];\n \n return (\n \n \n \n\n {description}\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const TrueFalseControl = function (props) {\n const { Fragment } = wp.element;\n\n const onChange = (e) => {\n if (props.onChange) {\n props.onChange(\n e.target.value === props.trueValue && jQuery(e.target).is(':checked')\n );\n // Check only the true radio... using the field name? or directly the ID\n }\n };\n\n return (\n \n \n\n \n   \n \n {props.falseLabel}\n\n

{props.description}

\n
\n )\n}\n","export { ButtonsPanel } from \"./ButtonsPanel\";\nexport { FutureActionPanel } from \"./FutureActionPanel\";\nexport { FutureActionPanelBlockEditor } from \"./FutureActionPanelBlockEditor\";\nexport { FutureActionPanelClassicEditor } from \"./FutureActionPanelClassicEditor\";\nexport { FutureActionPanelQuickEdit } from \"./FutureActionPanelQuickEdit\";\nexport { FutureActionPanelBulkEdit } from \"./FutureActionPanelBulkEdit\";\nexport { PostTypeSettingsPanel } from \"./PostTypeSettingsPanel\";\nexport { PostTypesSettingsPanels } from \"./PostTypesSettingsPanels\";\nexport { SettingRow } from \"./SettingRow\";\nexport { SettingsFieldset } from \"./SettingsFieldset\";\nexport { SettingsForm } from \"./SettingsForm\";\nexport { SettingsSection } from \"./SettingsSection\";\nexport { SettingsTable } from \"./SettingsTable\";\nexport { SubmitButton } from \"./SubmitButton\";\nexport { CheckboxControl } from \"./CheckboxControl\";\nexport { SelectControl } from \"./SelectControl\";\nexport { TextControl } from \"./TextControl\";\nexport { TokensControl } from \"./TokensControl\";\nexport { NonceControl } from \"./NonceControl\";\nexport { TrueFalseControl } from \"./TrueFalseControl\";\nexport { Spinner } from \"./Spinner\";\n","import { formatUnixTimeToTimestamp, getCurrentTimeAsTimestamp, normalizeUnixTimeToSeconds } from './time';\nimport { isNumber } from './utils';\nimport { register, createReduxStore } from '@wordpress/data';\n\nexport const createStore = (props) => {\n if (props.defaultState.terms && typeof props.defaultState.terms === 'string') {\n props.defaultState.terms = props.defaultState.terms.split(',').map(term => parseInt(term));\n }\n\n let defaultState = {\n action: props.defaultState.action,\n date: props.defaultState.date ? props.defaultState.date : getCurrentTimeAsTimestamp(),\n enabled: props.defaultState.autoEnable,\n terms: props.defaultState.terms ? props.defaultState.terms : [],\n taxonomy: props.defaultState.taxonomy ? props.defaultState.taxonomy : null,\n newStatus: props.defaultState.newStatus ? props.defaultState.newStatus : 'draft',\n termsListByName: null,\n termsListById: null,\n taxonomyName: null,\n isFetchingTerms: false,\n changeAction: 'no-change',\n calendarIsVisible: true,\n hasValidData: true,\n extraData: props.defaultState.extraData ? props.defaultState.extraData : {},\n }\n\n const store = createReduxStore(props.name, {\n reducer(state = defaultState, action) {\n switch (action.type) {\n case 'SET_ACTION':\n return {\n ...state,\n action: action.action,\n };\n case 'SET_NEW_STATUS':\n return {\n ...state,\n newStatus: action.newStatus,\n };\n case 'SET_DATE':\n // Make sure the date is a number, if it is a string with only numbers\n if (typeof action.date !== 'number' && isNumber(action.date)) {\n action.date = parseInt(action.date);\n }\n\n // If string, convert to unix time\n if (typeof action.date === 'string') {\n action.date = new Date(action.date).getTime();\n }\n\n // Make sure the time is always in seconds\n action.date = normalizeUnixTimeToSeconds(action.date);\n\n // Convert to formated string format, considering it is in the site's timezone\n action.date = formatUnixTimeToTimestamp(action.date);\n\n return {\n ...state,\n date: action.date,\n }\n case 'SET_ENABLED':\n return {\n ...state,\n enabled: action.enabled,\n }\n case 'SET_TERMS':\n return {\n ...state,\n terms: action.terms,\n }\n case 'SET_TAXONOMY':\n return {\n ...state,\n taxonomy: action.taxonomy,\n }\n case 'SET_TERMS_LIST_BY_NAME':\n return {\n ...state,\n termsListByName: action.termsListByName,\n }\n case 'SET_TERMS_LIST_BY_ID':\n return {\n ...state,\n termsListById: action.termsListById,\n }\n case 'SET_TAXONOMY_NAME':\n return {\n ...state,\n taxonomyName: action.taxonomyName,\n }\n case 'SET_CHANGE_ACTION':\n return {\n ...state,\n changeAction: action.changeAction,\n }\n case 'SET_CALENDAR_IS_VISIBLE':\n return {\n ...state,\n calendarIsVisible: action.calendarIsVisible,\n }\n case 'SET_HAS_VALID_DATA':\n return {\n ...state,\n hasValidData: action.hasValidData,\n }\n\n case 'SET_EXTRA_DATA':\n return {\n ...state,\n extraData: {\n ...action.extraData,\n }\n }\n\n case 'SET_EXTRA_DATA_BY_NAME':\n const extraData = {\n ...state.extraData,\n [action.name]: action.value\n };\n\n return {\n ...state,\n extraData: {...extraData}\n }\n }\n\n return state;\n },\n actions: {\n setAction(action) {\n return {\n type: 'SET_ACTION',\n action: action\n };\n },\n setNewStatus(newStatus) {\n return {\n type: 'SET_NEW_STATUS',\n newStatus: newStatus\n };\n },\n setDate(date) {\n return {\n type: 'SET_DATE',\n date: date\n };\n },\n setEnabled(enabled) {\n return {\n type: 'SET_ENABLED',\n enabled: enabled\n };\n },\n setTerms(terms) {\n return {\n type: 'SET_TERMS',\n terms: terms\n };\n },\n setTaxonomy(taxonomy) {\n return {\n type: 'SET_TAXONOMY',\n taxonomy: taxonomy\n };\n },\n setTermsListByName(termsListByName) {\n return {\n type: 'SET_TERMS_LIST_BY_NAME',\n termsListByName: termsListByName\n };\n },\n setTermsListById(termsListById) {\n return {\n type: 'SET_TERMS_LIST_BY_ID',\n termsListById: termsListById\n };\n },\n setTaxonomyName(taxonomyName) {\n return {\n type: 'SET_TAXONOMY_NAME',\n taxonomyName: taxonomyName\n };\n },\n setIsFetchingTerms(isFetchingTerms) {\n return {\n type: 'SET_IS_FETCHING_TERMS',\n isFetchingTerms: isFetchingTerms\n }\n },\n setChangeAction(changeAction) {\n return {\n type: 'SET_CHANGE_ACTION',\n changeAction: changeAction\n }\n },\n setCalendarIsVisible(calendarIsVisible) {\n return {\n type: 'SET_CALENDAR_IS_VISIBLE',\n calendarIsVisible: calendarIsVisible\n }\n },\n setHasValidData(hasValidData) {\n return {\n type: 'SET_HAS_VALID_DATA',\n hasValidData: hasValidData\n }\n },\n setExtraData(extraData) {\n return {\n type: 'SET_EXTRA_DATA',\n extraData: extraData\n }\n },\n setExtraDataByName(name, value) {\n return {\n type: 'SET_EXTRA_DATA_BY_NAME',\n name: name,\n value: value\n }\n }\n },\n selectors: {\n getAction(state) {\n return state.action;\n },\n getNewStatus(state) {\n return state.newStatus;\n },\n getDate(state) {\n return state.date;\n },\n getEnabled(state) {\n return state.enabled;\n },\n getTerms(state) {\n return state.terms;\n },\n getTaxonomy(state) {\n return state.taxonomy;\n },\n getTermsListByName(state) {\n return state.termsListByName;\n },\n getTermsListById(state) {\n return state.termsListById;\n },\n getTaxonomyName(state) {\n return state.taxonomyName;\n },\n getIsFetchingTerms(state) {\n return state.isFetchingTerms;\n },\n getChangeAction(state) {\n return state.changeAction;\n },\n getCalendarIsVisible(state) {\n return state.calendarIsVisible;\n },\n getHasValidData(state) {\n return state.hasValidData;\n },\n getExtraData(state) {\n return state.extraData;\n },\n getExtraDataByName(state, name) {\n return state.extraData[name] || null;\n }\n }\n });\n\n register(store);\n\n return store;\n}\n","export const getCurrentTimeInSeconds = () => {\n return normalizeUnixTimeToSeconds(new Date().getTime());\n}\n\nexport const getCurrentTimeAsTimestamp = () => {\n return formatUnixTimeToTimestamp(getCurrentTimeInSeconds());\n}\n\nexport const formatUnixTimeToTimestamp = (unixTimestamp) => {\n const date = new Date(\n normalizeUnixTimeToSeconds(unixTimestamp)\n );\n\n const year = date.getFullYear();\n const month = (\"0\" + (date.getMonth() + 1)).slice(-2); // Months are zero-based\n const day = (\"0\" + date.getDate()).slice(-2);\n const hours = (\"0\" + date.getHours()).slice(-2);\n const minutes = (\"0\" + date.getMinutes()).slice(-2);\n const seconds = (\"0\" + date.getSeconds()).slice(-2);\n\n return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;\n}\n\nexport const formatTimestampToUnixTime = (time) => {\n const date = new Date(time);\n\n return normalizeUnixTimeToSeconds(date.getTime());\n}\n\nexport const timeIsInSeconds = (time) => {\n return parseInt(time).toString().length <= 10;\n}\n\nexport const normalizeUnixTimeToSeconds = (time) => {\n time = parseInt(time);\n\n return timeIsInSeconds() ? time : time / 1000;\n}\n\nexport const normalizeUnixTimeToMilliseconds = (time) => {\n time = parseInt(time);\n\n return timeIsInSeconds() ? time * 1000 : time;\n}\n","export const compact = (array) => {\n if (!array) {\n return [];\n }\n\n if (! Array.isArray(array) && typeof array === 'object') {\n array = Object.values(array);\n }\n\n return array.filter((item) => {\n return item !== null && item !== undefined && item !== '';\n });\n}\n\nexport const debugLogFactory = (config) => {\n return (description, ...message) => {\n if (console && config.isDebugEnabled) {\n console.debug('[Future]', description, ...message);\n }\n }\n}\n\nexport const isGutenbergEnabled = () => {\n return document.body.classList.contains('block-editor-page');\n}\n\nexport const getElementByName = (name) => {\n return document.getElementsByName(name)[0];\n}\n\nexport const getFieldByName = (name, postId) => {\n return document.querySelector(`#the-list tr#post-${postId} .column-expirationdate input#future_action_${name}-${postId}`);\n}\n\nexport const getFieldValueByName = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field) {\n return null;\n }\n\n return field.value;\n};\n\nexport const getFieldValueByNameAsArrayOfInt = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field || !field.value) {\n return [];\n }\n\n if (typeof field.value === 'number') {\n field.value = field.value.toString();\n }\n\n return field.value.split(',').map(term => parseInt(term));\n};\n\nexport const getFieldValueByNameAsBool = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field) {\n return false;\n }\n\n return field.value === '1' || field.value === 'true';\n}\n\nexport const getActionSettingsFromColumnData = (postId) => {\n const columnData = document.querySelector(`#post-expire-column-${postId}`);\n\n if (!columnData) {\n return {};\n }\n\n return {\n enabled: columnData.dataset.actionEnabled === '1',\n action: columnData.dataset.actionType,\n date: columnData.dataset.actionDate,\n dateUnix: columnData.dataset.actionDateUnix,\n taxonomy: columnData.dataset.actionTaxonomy,\n terms: columnData.dataset.actionTerms,\n newStatus: columnData.dataset.actionNewStatus,\n };\n}\n\n/**\n * This function is used to determine if a value is a number, including strings.\n *\n * @param {*} value\n * @returns\n */\nexport const isNumber = (value) => {\n return !isNaN(value);\n}\n","module.exports = publishpressFutureBulkEditConfig;","module.exports = window;","module.exports = wp;","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.element;","module.exports = wp.hooks;","module.exports = wp.plugins;","module.exports = wp.url;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","import { FutureActionPanelBulkEdit } from './components';\nimport { createStore } from './data';\nimport { createRoot } from '@wordpress/element';\nimport { select, dispatch } from '@wordpress/data';\nimport { inlineEditPost } from \"&window\";\nimport {\n postTypeDefaultConfig,\n defaultDate,\n postType,\n isNewPost,\n actionsSelectOptions,\n is12Hour,\n timeFormat,\n startOfWeek,\n strings,\n taxonomyName,\n nonce,\n statusesSelectOptions\n} from \"&config.bulk-edit\";\n\nconst storeName = 'publishpress-future/future-action-bulk-edit';\nconst delayToUnmountAfterSaving = 1000;\n\n// We create a copy of the WP inline set bulk function\nconst wpInlineSetBulk = inlineEditPost.setBulk;\nconst wpInlineEditRevert = inlineEditPost.revert;\n\nconst getPostId = (id) => {\n // If id is a string or a number, return it directly\n if (typeof id === 'string' || typeof id === 'number') {\n return id;\n }\n\n // Otherwise, assume it's an HTML element and extract the post ID\n const trElement = id.closest('tr');\n const trId = trElement.id;\n const postId = trId.split('-')[1];\n\n return postId;\n}\n\n/**\n * We override the function with our own code so we can detect when\n * the inline edit row is displayed to recreate the React component.\n */\ninlineEditPost.setBulk = function (id) {\n // Call the original WP edit function.\n wpInlineSetBulk.apply(this, arguments);\n\n if (select(storeName)) {\n dispatch(storeName).setAction(postTypeDefaultConfig.expireType);\n dispatch(storeName).setDate(postTypeDefaultConfig.defaultDate);\n dispatch(storeName).setTaxonomy(postTypeDefaultConfig.taxonomy);\n dispatch(storeName).setTerms(postTypeDefaultConfig.terms);\n dispatch(storeName).setChangeAction('no-change');\n } else {\n createStore({\n name: storeName,\n defaultState: {\n action: postTypeDefaultConfig.expireType,\n newStatus: postTypeDefaultConfig.newStatus,\n date: defaultDate,\n taxonomy: postTypeDefaultConfig.taxonomy,\n terms: postTypeDefaultConfig.terms,\n changeAction: 'no-change',\n }\n });\n }\n\n const container = document.getElementById(\"publishpress-future-bulk-edit\");\n const root = createRoot(container);\n\n const saveButton = document.querySelector('#bulk_edit');\n if (saveButton) {\n saveButton.onclick = function() {\n setTimeout(() => {\n root.unmount();\n }, delayToUnmountAfterSaving);\n };\n }\n\n const component = (\n \n );\n\n root.render(component);\n\n inlineEditPost.revert = function () {\n root.unmount();\n\n // Call the original WP revert function.\n wpInlineEditRevert.apply(this, arguments);\n };\n};\n"],"names":["ButtonsPanel","props","children","CheckboxControl","description","useState","checked","setChecked","unescapedDescription","className","dangerouslySetInnerHTML","__html","Fragment","label","name","id","onChange","value","DateTimePicker","currentDate","is12Hour","startOfWeek","normalizeUnixTimeToMilliseconds","__nextRemoveHelpButton","wp","components","PanelRow","SelectControl","FormTokenField","Spinner","BaseControl","element","useEffect","decodeEntities","htmlEntities","addQueryArgs","url","data","useSelect","useDispatch","apiFetch","FutureActionPanel","action","select","storeName","getAction","date","getDate","enabled","getEnabled","terms","getTerms","taxonomy","getTaxonomy","taxonomyName","getTaxonomyName","termsListByName","getTermsListByName","termsListById","getTermsListById","isFetchingTerms","getIsFetchingTerms","calendarIsVisible","getCalendarIsVisible","hasValidData","getHasValidData","newStatus","getNewStatus","validationError","setValidationError","setAction","setDate","setEnabled","setTerms","setTaxonomy","setTermsListByName","setTermsListById","setTaxonomyName","setIsFetchingTerms","setCalendarIsVisible","setHasValidData","setNewStatus","insertTerm","term","count","link","slug","callOnChangeData","attribute","onChangeData","handleEnabledChange","isChecked","fetchTerms","path","then","result","forEach","getCalendarIsVisibleFromStorage","localStorage","getItem","context","autoEnableAndHideCheckbox","isCleanNewPost","setItem","onDataIsValid","onDataIsInvalid","selectedTerms","length","compact","map","mapTermsListById","termsListByNameKeys","Object","keys","is24hour","panelClass","contentPanelClass","datePanelClass","timeFormat","actionsSelectOptions","filter","item","indexOf","HelpText","string","href","target","parts","split","push","shift","before","after","key","replaceCurlyBracketsWithLink","strings","timezoneSettingsHelp","displayTaxonomyField","String","includes","termsFieldLabel","newTerms","replace","removeTerms","addTerms","valid","errorActionRequired","errorDateRequired","Date","errorDateInPast","isTermRequired","noTermIsSelected","errorTermsRequired","validateData","SlotFillProvider","type","FutureActionPanelTop","Slot","fillProps","enablePostExpiration","options","FutureActionPanelAfterActionField","statusesSelectOptions","loading","noTaxonomyFound","noTermsFound","suggestions","mapTermsListByName","placeholder","addTermsPlaceholder","maxSuggestions","onFocus","e","jQuery","addClass","__experimentalExpandOnFocus","__experimentalAutoSelectFirstMatch","ToggleCalendarDatePicker","onChangeDate","onToggleCalendar","isExpanded","PluginArea","scope","Fill","FutureActionPanelBlockEditor","PluginDocumentSettingPanel","editPost","getEditedPostAttribute","lockPostSaving","unlockPostSaving","title","panelTitle","initialOpen","postTypeDefaultConfig","autoEnable","postType","store","newAttribute","getExtraData","publishpress_future_action","entries","editPostAttribute","FutureActionPanelBulkEdit","changeAction","getChangeAction","setChangeAction","termsString","join","noChange","changeAdd","addOnly","changeOnly","removeOnly","prop","futureActionUpdate","isNewPost","getElementByName","nonce","FutureActionPanelClassicEditor","getTimezoneOffset","document","getElementsByName","getElementValueByName","parseInt","getTermsFromElementByName","FutureActionPanelQuickEdit","NonceControl","referrer","PostTypeSettingsPanel","originalExpireTypeList","expireTypeList","settings","postTypeTaxonomy","setPostTypeTaxonomy","termOptions","setTermOptions","termsSelectIsLoading","setTermsSelectIsLoading","setSelectedTerms","howToExpire","settingHowToExpire","setSettingHowToExpire","active","isActive","setIsActive","defaultExpireOffset","expireOffset","setExpireOffset","emailNotification","setEmailNotification","autoEnabled","isAutoEnabled","setIsAutoEnabled","taxonomyLabel","setTaxonomyLabel","howToExpireList","setHowToExpireList","hasPendingValidation","setHasPendingValidation","offsetPreview","setOffsetPreview","currentTime","setCurrentTime","apiRequestControllerRef","useRef","AbortController","taxonomyRelatedActions","newExpireTypeList","taxonomiesList","settingsTermsOptions","option","offset","globalDefaultExpireOffset","controller","current","abort","signal","method","isValid","message","preview","catch","error","expireType","toLowerCase","onValidationStarted","onValidationFinished","termOptionsLabels","settingsRows","SettingRow","text","fieldActive","fieldActiveLabel","fieldAutoEnable","fieldAutoEnableLabel","fieldTaxonomy","selected","noItemFoundMessage","noItemsfound","fieldTaxonomyDescription","fieldHowToExpire","fieldHowToExpireDescription","statusesList","TokensControl","fieldTerm","isLoading","fieldTermDescription","expandOnFocus","autoSelectFirstMatch","fieldDefaultDateTimeOffset","TextControl","fieldDefaultDateTimeOffsetDescription","datePreview","datePreviewCurrent","datePreviewComputed","fieldWhoToNotify","fieldWhoToNotifyDescription","applyFilters","SettingsFieldset","legend","SettingsTable","bodyChildren","PostTypesSettingsPanels","panels","postTypeSettings","valign","htmlFor","SettingsForm","SettingsSection","SubmitButton","disabled","ToggleArrowButton","iconExpanded","iconCollapsed","icon","titleExpanded","titleCollapsed","Button","isSmall","onClick","toggleButtonElement","querySelector","dateTimeElement","nextElementSibling","timeElement","dateElement","nextSibling","insertBefore","hideCalendar","showCalendar","stringValue","setStringValue","TrueFalseControl","trueValue","is","defaultChecked","trueLabel","falseValue","falseLabel","createStore","defaultState","getCurrentTimeAsTimestamp","extraData","createReduxStore","reducer","state","isNumber","getTime","normalizeUnixTimeToSeconds","formatUnixTimeToTimestamp","actions","setExtraData","setExtraDataByName","selectors","getExtraDataByName","register","getCurrentTimeInSeconds","unixTimestamp","getFullYear","getMonth","slice","getHours","getMinutes","getSeconds","timeIsInSeconds","formatTimestampToUnixTime","time","toString","getFieldByName","array","Array","isArray","values","debugLogFactory","config","console","isDebugEnabled","debug","isGutenbergEnabled","body","classList","contains","postId","getFieldValueByName","field","getFieldValueByNameAsArrayOfInt","getFieldValueByNameAsBool","getActionSettingsFromColumnData","columnData","dataset","actionEnabled","actionType","actionDate","dateUnix","actionDateUnix","actionTaxonomy","actionTerms","actionNewStatus","isNaN","module","exports","publishpressFutureBulkEditConfig","window","hooks","plugins","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","wpInlineSetBulk","inlineEditPost","setBulk","wpInlineEditRevert","revert","apply","this","arguments","dispatch","defaultDate","container","getElementById","root","createRoot","saveButton","onclick","setTimeout","unmount","component","render"],"sourceRoot":""} +{"version":3,"file":"bulk-edit.js","mappings":"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","sources":["webpack://post-expirator/./assets/jsx/components/ButtonsPanel.jsx","webpack://post-expirator/./assets/jsx/components/CheckboxControl.jsx","webpack://post-expirator/./assets/jsx/components/DateOffsetPreview.jsx","webpack://post-expirator/./assets/jsx/components/DateTimePicker.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanel.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelAfterActionField.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelBlockEditor.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelBulkEdit.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelClassicEditor.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelQuickEdit.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelTop.jsx","webpack://post-expirator/./assets/jsx/components/NonceControl.jsx","webpack://post-expirator/./assets/jsx/components/PostTypeSettingsPanel.jsx","webpack://post-expirator/./assets/jsx/components/PostTypesSettingsPanels.jsx","webpack://post-expirator/./assets/jsx/components/SelectControl.jsx","webpack://post-expirator/./assets/jsx/components/SettingRow.jsx","webpack://post-expirator/./assets/jsx/components/SettingsFieldset.jsx","webpack://post-expirator/./assets/jsx/components/SettingsForm.jsx","webpack://post-expirator/./assets/jsx/components/SettingsSection.jsx","webpack://post-expirator/./assets/jsx/components/SettingsTable.jsx","webpack://post-expirator/./assets/jsx/components/Spinner.jsx","webpack://post-expirator/./assets/jsx/components/SubmitButton.jsx","webpack://post-expirator/./assets/jsx/components/TextControl.jsx","webpack://post-expirator/./assets/jsx/components/ToggleArrowButton.jsx","webpack://post-expirator/./assets/jsx/components/ToggleCalendarDatePicker.jsx","webpack://post-expirator/./assets/jsx/components/TokensControl.jsx","webpack://post-expirator/./assets/jsx/components/TrueFalseControl.jsx","webpack://post-expirator/./assets/jsx/components/index.jsx","webpack://post-expirator/./assets/jsx/data.jsx","webpack://post-expirator/./assets/jsx/time.jsx","webpack://post-expirator/./assets/jsx/utils.jsx","webpack://post-expirator/./assets/jsx/components/css/dateOffsetPreview.css","webpack://post-expirator/./node_modules/css-loader/dist/runtime/api.js","webpack://post-expirator/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://post-expirator/./node_modules/react-dom/client.js","webpack://post-expirator/./assets/jsx/components/css/dateOffsetPreview.css?541a","webpack://post-expirator/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://post-expirator/external var \"ReactDOM\"","webpack://post-expirator/external var \"publishpressFutureBulkEditConfig\"","webpack://post-expirator/external var \"window\"","webpack://post-expirator/external var \"wp\"","webpack://post-expirator/external var \"wp.components\"","webpack://post-expirator/external var \"wp.data\"","webpack://post-expirator/external var \"wp.element\"","webpack://post-expirator/external var \"wp.hooks\"","webpack://post-expirator/external var \"wp.plugins\"","webpack://post-expirator/external var \"wp.url\"","webpack://post-expirator/webpack/bootstrap","webpack://post-expirator/webpack/runtime/compat get default export","webpack://post-expirator/webpack/runtime/define property getters","webpack://post-expirator/webpack/runtime/hasOwnProperty shorthand","webpack://post-expirator/webpack/runtime/make namespace object","webpack://post-expirator/webpack/runtime/nonce","webpack://post-expirator/./assets/jsx/bulk-edit.jsx"],"sourcesContent":["/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const ButtonsPanel = function (props) {\n return (\n
\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment, useState } from \"@wordpress/element\";\nimport { CheckboxControl as WPCheckboxControl } from \"@wordpress/components\";\n\nexport const CheckboxControl = function (props) {\n const [checked, setChecked] = useState(props.checked || false);\n\n let description;\n\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n\n const onChange = function (value) {\n setChecked(value);\n\n if (props.onChange) {\n props.onChange(value);\n }\n };\n\n return (\n \n \n\n {description}\n \n )\n}\n","import {\n useState,\n useEffect,\n useRef,\n Fragment\n} from '@wordpress/element';\nimport { addQueryArgs } from '@wordpress/url';\nimport { apiFetch } from '&wp';\n\nrequire('./css/dateOffsetPreview.css');\n\nexport const DateOffsetPreview = ({\n offset,\n label,\n labelDatePreview,\n labelOffsetPreview,\n setValidationErrorCallback,\n setHasPendingValidationCallback,\n setHasValidDataCallback,\n compactView = false\n}) => {\n const [offsetPreview, setOffsetPreview] = useState('');\n const [currentTime, setCurrentTime] = useState();\n\n const apiRequestControllerRef = useRef(new AbortController());\n\n const validateDateOffset = () => {\n if (offset) {\n const controller = apiRequestControllerRef.current;\n\n if (controller) {\n controller.abort();\n }\n\n apiRequestControllerRef.current = new AbortController();\n const { signal } = apiRequestControllerRef.current;\n\n setHasPendingValidationCallback(true);\n\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/settings/validate-expire-offset`),\n method: 'POST',\n data: {\n offset\n },\n signal,\n }).then((result) => {\n setHasPendingValidationCallback(false);\n\n setHasValidDataCallback(result.isValid);\n setValidationErrorCallback(result.message);\n\n if (result.isValid) {\n setOffsetPreview(result.preview);\n setCurrentTime(result.currentTime);\n } else {\n setOffsetPreview('');\n }\n }).catch((error) => {\n if (error.name === 'AbortError') {\n return;\n }\n\n setHasPendingValidationCallback(false);\n setHasValidDataCallback(false);\n setValidationErrorCallback(error.message);\n setOffsetPreview('');\n });\n }\n }\n\n useEffect(() => {\n validateDateOffset();\n }, [offset]);\n\n const compactClass = compactView ? ' compact' : '';\n\n return (\n \n { offset && (\n
\n

{ label }

\n
\n
\n { labelDatePreview }: \n {currentTime}\n
\n
\n { labelOffsetPreview }: \n {offsetPreview}\n
\n
\n
\n )}\n
\n )\n}\n\nexport default DateOffsetPreview;\n","import { normalizeUnixTimeToMilliseconds } from \"../time\";\nimport { DateTimePicker as WPDateTimePicker } from \"@wordpress/components\";\n\n\nexport const DateTimePicker = ({currentDate, onChange, is12Hour, startOfWeek}) => {\n if (typeof currentDate === 'number') {\n currentDate = normalizeUnixTimeToMilliseconds(currentDate);\n }\n\n return (\n \n )\n}\n","import { compact } from '../utils';\nimport { ToggleCalendarDatePicker } from './ToggleCalendarDatePicker';\nimport { PluginArea } from '@wordpress/plugins';\nimport { Fill, Slot, SlotFillProvider } from '@wordpress/components';\nimport { FutureActionPanelAfterActionField } from './FutureActionPanelAfterActionField';\nimport { FutureActionPanelTop } from './FutureActionPanelTop';\n\nconst { PanelRow, CheckboxControl, SelectControl, FormTokenField, Spinner, BaseControl } = wp.components;\nconst { Fragment, useEffect, useState } = wp.element;\nconst { decodeEntities } = wp.htmlEntities;\nconst { addQueryArgs } = wp.url;\nconst {\n useSelect,\n useDispatch\n} = wp.data;\nconst { apiFetch } = wp;\n\nexport const FutureActionPanel = (props) => {\n const {\n action,\n date,\n enabled,\n terms,\n taxonomy,\n taxonomyName,\n termsListByName,\n termsListById,\n isFetchingTerms,\n calendarIsVisible,\n hasValidData,\n newStatus,\n } = useSelect((select) => {\n return {\n action: select(props.storeName).getAction(),\n date: select(props.storeName).getDate(),\n enabled: select(props.storeName).getEnabled(),\n terms: select(props.storeName).getTerms(),\n taxonomy: select(props.storeName).getTaxonomy(),\n taxonomyName: select(props.storeName).getTaxonomyName(),\n termsListByName: select(props.storeName).getTermsListByName(),\n termsListById: select(props.storeName).getTermsListById(),\n isFetchingTerms: select(props.storeName).getIsFetchingTerms(),\n calendarIsVisible: select(props.storeName).getCalendarIsVisible(),\n hasValidData: select(props.storeName).getHasValidData(),\n newStatus: select(props.storeName).getNewStatus(),\n };\n });\n\n const [validationError, setValidationError] = useState('');\n\n const {\n setAction,\n setDate,\n setEnabled,\n setTerms,\n setTaxonomy,\n setTermsListByName,\n setTermsListById,\n setTaxonomyName,\n setIsFetchingTerms,\n setCalendarIsVisible,\n setHasValidData,\n setNewStatus\n } = useDispatch(props.storeName);\n\n const mapTermsListById = (terms) => {\n if (typeof terms !== 'object' || terms === null) {\n return {};\n }\n\n return terms.map((term) => {\n return termsListById[term];\n });\n }\n\n const insertTerm = (term) => {\n termsListByName[term] = { id: term, count: 0, description: \"\", link: \"\", name: term, slug: term, taxonomy: taxonomy };\n termsListById[term] = term;\n setTermsListByName(termsListByName);\n setTermsListById(termsListById);\n setTerms([...terms, term]);\n\n }\n\n const mapTermsListByName = (terms) => {\n if (typeof terms !== 'object' || terms === null) {\n return {};\n }\n\n return terms.map((term) => {\n if (termsListByName[term]) {\n return termsListByName[term].id;\n }\n\n insertTerm(term);\n\n return term;\n });\n }\n\n const callOnChangeData = (attribute, value) => {\n if (typeof props.onChangeData === 'function') {\n props.onChangeData(attribute, value);\n }\n }\n\n const handleEnabledChange = (isChecked) => {\n setEnabled(isChecked);\n\n if (isChecked) {\n setAction(props.action);\n setDate(props.date);\n setNewStatus(props.newStatus);\n setTerms(props.terms);\n setTaxonomy(props.taxonomy);\n\n fetchTerms();\n }\n\n callOnChangeData('enabled', isChecked);\n }\n\n const handleActionChange = (value) => {\n setAction(value);\n\n callOnChangeData('action', value);\n }\n\n const handleNewStatusChange = (value) => {\n setNewStatus(value);\n\n callOnChangeData('newStatus', value);\n }\n\n const handleDateChange = (value) => {\n setDate(value);\n\n callOnChangeData('date', value);\n }\n\n const handleTermsChange = (value) => {\n value = mapTermsListByName(value);\n\n setTerms(value);\n\n callOnChangeData('terms', value);\n }\n\n const fetchTerms = () => {\n let termsListByName = {};\n let termsListById = {};\n\n if (!taxonomy) {\n return;\n }\n\n setIsFetchingTerms(true);\n\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/terms/${taxonomy}`),\n }).then((result) => {\n result.terms.forEach(term => {\n termsListByName[decodeEntities(term.name)] = term;\n termsListById[term.id] = decodeEntities(term.name);\n });\n\n setTermsListByName(termsListByName);\n setTermsListById(termsListById);\n setTaxonomyName(decodeEntities(result.taxonomyName));\n setIsFetchingTerms(false);\n });\n }\n\n const storeCalendarIsVisibleOnStorage = (value) => {\n localStorage.setItem('FUTURE_ACTION_CALENDAR_IS_VISIBLE_' + props.context, value ? '1' : '0');\n }\n\n const getCalendarIsVisibleFromStorage = () => {\n return localStorage.getItem('FUTURE_ACTION_CALENDAR_IS_VISIBLE_' + props.context);\n }\n\n useEffect(() => {\n if (props.autoEnableAndHideCheckbox) {\n setEnabled(true);\n } else {\n setEnabled(props.enabled);\n }\n\n setAction(props.action);\n setNewStatus(props.newStatus);\n setDate(props.date);\n setTerms(props.terms);\n setTaxonomy(props.taxonomy);\n\n if (getCalendarIsVisibleFromStorage() === null) {\n setCalendarIsVisible(props.calendarIsVisible);\n } else {\n setCalendarIsVisible(getCalendarIsVisibleFromStorage() === '1' && ! props.hideCalendarByDefault);\n }\n\n // We need to get the value directly from the props because the value from the store is not updated yet\n if (props.enabled) {\n if (props.isCleanNewPost) {\n // Force populate the default values\n handleEnabledChange(true);\n }\n\n fetchTerms();\n }\n }, []);\n\n useEffect(() => {\n storeCalendarIsVisibleOnStorage(calendarIsVisible);\n }, [calendarIsVisible]);\n\n useEffect(() => {\n if (hasValidData && props.onDataIsValid) {\n props.onDataIsValid();\n }\n\n if (!hasValidData && props.onDataIsInvalid) {\n props.onDataIsInvalid();\n }\n }, [hasValidData]);\n\n let selectedTerms = [];\n if (terms && terms.length > 0 && termsListById) {\n selectedTerms = compact(mapTermsListById(terms));\n\n if (typeof selectedTerms === 'string') {\n selectedTerms = [];\n }\n }\n\n let termsListByNameKeys = [];\n if (typeof termsListByName === 'object' && termsListByName !== null) {\n termsListByNameKeys = Object.keys(termsListByName);\n }\n\n const panelClass = calendarIsVisible ? 'future-action-panel' : 'future-action-panel hidden-calendar';\n const contentPanelClass = calendarIsVisible ? 'future-action-panel-content' : 'future-action-panel-content hidden-calendar';\n const datePanelClass = calendarIsVisible ? 'future-action-date-panel' : 'future-action-date-panel hidden-calendar';\n\n let is24hour;\n if (props.timeFormat === 'inherited') {\n is24hour = !props.is12Hour;\n } else {\n is24hour = props.timeFormat === '24h';\n }\n\n const replaceCurlyBracketsWithLink = (string, href, target) => {\n const parts = string.split('{');\n const result = [];\n\n result.push(parts.shift());\n\n for (const part of parts) {\n const [before, after] = part.split('}');\n\n result.push(\n {before}\n );\n\n result.push(after);\n }\n\n return result;\n };\n\n // Remove items from actions list if related to taxonomies and there is no taxonmoy for the post type\n let actionsSelectOptions = props.actionsSelectOptions;\n if (!props.taxonomy) {\n actionsSelectOptions = props.actionsSelectOptions.filter((item) => {\n return ['category', 'category-add', 'category-remove', 'category-remove-all'].indexOf(item.value) === -1;\n });\n }\n\n const HelpText = replaceCurlyBracketsWithLink(props.strings.timezoneSettingsHelp, '/wp-admin/options-general.php#timezone_string', '_blank');\n const displayTaxonomyField = String(action).includes('category') && action !== 'category-remove-all';\n\n let termsFieldLabel = taxonomyName;\n switch (action) {\n case 'category':\n termsFieldLabel = props.strings.newTerms.replace('%s', taxonomyName);\n break;\n case 'category-remove':\n termsFieldLabel = props.strings.removeTerms.replace('%s', taxonomyName);\n break;\n case 'category-add':\n termsFieldLabel = props.strings.addTerms.replace('%s', taxonomyName);\n break;\n }\n\n const validateData = () => {\n let valid = true;\n\n if (!enabled) {\n setValidationError('');\n return true;\n }\n\n if (!action) {\n setValidationError(props.strings.errorActionRequired);\n valid = false;\n }\n\n if (!date) {\n setValidationError(props.strings.errorDateRequired);\n valid = false;\n }\n\n // Check if the date is in the past\n if (date && new Date(date) < new Date()) {\n setValidationError(props.strings.errorDateInPast);\n valid = false;\n }\n\n const isTermRequired = ['category', 'category-add', 'category-remove'].includes(action);\n const noTermIsSelected = terms.length === 0 || (terms.length === 1 && (terms[0] === '' || terms[0] === '0'));\n\n if (isTermRequired && noTermIsSelected) {\n setValidationError(props.strings.errorTermsRequired);\n valid = false;\n }\n\n if (valid) {\n setValidationError('');\n }\n\n return valid;\n }\n\n useEffect(() => {\n if (!enabled) {\n setHasValidData(true);\n setValidationError('');\n\n return;\n }\n\n setHasValidData(validateData());\n }, [action, date, enabled, terms, taxonomy]);\n\n // This adds a 'cancel' class to the input when the user clicks on the\n // field to prevent the form from being submitted. This is a workaround\n // for the issue on the quick-edit form where the form is submitted when\n // the user presses the 'Enter' key trying to add a term to the field.\n const forceIgnoreAutoSubmitOnEnter = (e) => {\n jQuery(e.target).addClass('cancel');\n }\n\n return (\n \n
\n {props.autoEnableAndHideCheckbox && (\n \n )}\n\n \n\n {!props.autoEnableAndHideCheckbox && (\n \n \n \n )}\n\n {enabled && (\n \n \n \n \n\n \n\n {action === 'change-status' &&\n \n \n \n }\n\n {\n displayTaxonomyField && (\n isFetchingTerms && (\n \n \n {`${props.strings.loading} (${taxonomyName})`}\n \n \n \n )\n || (!taxonomy && (\n \n \n
\n {props.strings.noTaxonomyFound}\n
\n
\n
\n )\n || (\n termsListByNameKeys.length === 0 && (\n \n \n
\n {props.strings.noTermsFound}\n
\n
\n
\n )\n || (\n \n \n \n \n \n )\n )\n )\n )\n }\n\n \n setCalendarIsVisible(!calendarIsVisible)}\n is12Hour={!is24hour}\n startOfWeek={props.startOfWeek}\n isExpanded={calendarIsVisible}\n strings={props.strings}\n />\n \n\n \n
\n
\n\n {HelpText}\n
\n
\n\n {!hasValidData && (\n \n \n
{validationError}
\n
\n
\n )}\n
\n )}\n
\n \n
\n );\n};\n","import { Slot, Fill } from '@wordpress/components';\n\nexport const FutureActionPanelAfterActionField = ({ children }) => (\n \n {children}\n \n);\n\nconst FutureActionPanelAfterActionFieldSlot = (props) => (\n \n);\n\nFutureActionPanelAfterActionField.Slot = FutureActionPanelAfterActionFieldSlot;\n\nexport default FutureActionPanelAfterActionField;\n","import { FutureActionPanel } from './';\n\nexport const FutureActionPanelBlockEditor = (props) => {\n const { PluginDocumentSettingPanel } = wp.editPost;\n const { useDispatch, select } = wp.data;\n\n const { editPost } = useDispatch('core/editor');\n\n const editPostAttribute = (newAttribute) => {\n const attribute = {\n publishpress_future_action: {}\n };\n\n // For each property on newAttribute, set the value on attribute\n for (const [name, value] of Object.entries(newAttribute)) {\n attribute.publishpress_future_action[name] = value;\n }\n\n editPost(attribute);\n }\n\n const onChangeData = (attribute, value) => {\n const store = select(props.storeName);\n\n const newAttribute = {\n 'enabled': store.getEnabled()\n }\n\n if (newAttribute.enabled) {\n newAttribute['action'] = store.getAction();\n newAttribute['newStatus'] = store.getNewStatus();\n newAttribute['date'] = store.getDate();\n newAttribute['terms'] = store.getTerms();\n newAttribute['taxonomy'] = store.getTaxonomy();\n newAttribute['extraData'] = store.getExtraData();\n }\n\n editPostAttribute(newAttribute);\n }\n\n const data = select('core/editor').getEditedPostAttribute('publishpress_future_action');\n\n const { lockPostSaving, unlockPostSaving } = useDispatch('core/editor');\n\n const onDataIsValid = () => {\n unlockPostSaving('future-action');\n }\n\n const onDataIsInvalid = () => {\n lockPostSaving('future-action');\n }\n\n return (\n \n
\n \n
\n \n );\n};\n","import { FutureActionPanel, SelectControl } from '.';\nimport { getElementByName } from '../utils';\n\nexport const FutureActionPanelBulkEdit = (props) => {\n const { useSelect, useDispatch, select } = wp.data;\n const { useEffect } = wp.element;\n\n const onChangeData = (attribute, value) => {\n getElementByName('future_action_bulk_enabled').value = select(props.storeName).getEnabled() ? 1 : 0;\n getElementByName('future_action_bulk_action').value = select(props.storeName).getAction();\n getElementByName('future_action_bulk_new_status').value = select(props.storeName).getNewStatus();\n getElementByName('future_action_bulk_date').value = select(props.storeName).getDate();\n getElementByName('future_action_bulk_terms').value = select(props.storeName).getTerms().join(',');\n getElementByName('future_action_bulk_taxonomy').value = select(props.storeName).getTaxonomy();\n }\n\n const date = useSelect((select) => select(props.storeName).getDate(), []);\n const enabled = useSelect((select) => select(props.storeName).getEnabled(), []);\n const action = useSelect((select) => select(props.storeName).getAction(), []);\n const newStatus = useSelect((select) => select(props.storeName).getNewStatus(), []);\n const terms = useSelect((select) => select(props.storeName).getTerms(), []);\n const taxonomy = useSelect((select) => select(props.storeName).getTaxonomy(), []);\n const changeAction = useSelect((select) => select(props.storeName).getChangeAction(), []);\n const hasValidData = useSelect((select) => select(props.storeName).getHasValidData(), []);\n\n const {\n setChangeAction\n } = useDispatch(props.storeName);\n\n let termsString = terms;\n if (typeof terms === 'object') {\n termsString = terms.join(',');\n }\n\n const handleStrategyChange = (value) => {\n setChangeAction(value);\n };\n\n const options = [\n { value: 'no-change', label: props.strings.noChange },\n { value: 'change-add', label: props.strings.changeAdd },\n { value: 'add-only', label: props.strings.addOnly },\n { value: 'change-only', label: props.strings.changeOnly },\n { value: 'remove-only', label: props.strings.removeOnly },\n ];\n\n const optionsToDisplayPanel = ['change-add', 'add-only', 'change-only'];\n\n useEffect(() => {\n // We are not using onDataIsValid and onDataIsInvalid because we need to enable/disable the button\n // also based on the changeAction value.\n if (hasValidData || changeAction === 'no-change') {\n jQuery('#bulk_edit').prop('disabled', false);\n } else {\n jQuery('#bulk_edit').prop('disabled', true);\n }\n }, [hasValidData, changeAction]);\n\n return (\n
\n \n\n {optionsToDisplayPanel.includes(changeAction) && (\n \n )}\n\n {/* Bulk edit JS code will save only fields with name inside the edit row */}\n \n \n \n \n \n \n \n \n
\n );\n};\n","import { FutureActionPanel } from \"./\";\nimport { select, useSelect } from \"@wordpress/data\";\nimport { useEffect } from \"@wordpress/element\";\n\nexport const FutureActionPanelClassicEditor = (props) => {\n const browserTimezoneOffset = new Date().getTimezoneOffset();\n\n const getElementByName = (name) => {\n return document.getElementsByName(name)[0];\n }\n\n const onChangeData = (attribute, value) => {\n const store = select(props.storeName);\n\n getElementByName('future_action_enabled').value = store.getEnabled() ? 1 : 0;\n getElementByName('future_action_action').value = store.getAction();\n getElementByName('future_action_new_status').value = store.getNewStatus();\n getElementByName('future_action_date').value = store.getDate();\n getElementByName('future_action_terms').value = store.getTerms().join(',');\n getElementByName('future_action_taxonomy').value = store.getTaxonomy();\n }\n\n const getTermsFromElementByName = (name) => {\n const element = getElementByName(name);\n if (!element) {\n return [];\n }\n\n let terms = element.value.split(',');\n\n if (terms.length === 1 && terms[0] === '') {\n terms = [];\n }\n\n return terms.map(term => parseInt(term));\n }\n\n const getElementValueByName = (name) => {\n const element = getElementByName(name);\n if (!element) {\n return '';\n }\n\n return element.value;\n }\n\n const data = {\n enabled: getElementValueByName('future_action_enabled') === '1',\n action: getElementValueByName('future_action_action'),\n newStatus: getElementValueByName('future_action_new_status'),\n date: getElementValueByName('future_action_date'),\n terms: getTermsFromElementByName('future_action_terms'),\n taxonomy: getElementValueByName('future_action_taxonomy'),\n };\n\n const onDataIsValid = () => {\n jQuery('#publish').prop('disabled', false);\n }\n\n const onDataIsInvalid = () => {\n jQuery('#publish').prop('disabled', true);\n }\n\n return (\n
\n \n
\n );\n};\n","import { FutureActionPanel } from './';\nimport { useSelect, select } from '@wordpress/data';\nimport { useEffect } from '@wordpress/element';\n\nexport const FutureActionPanelQuickEdit = (props) => {\n const onChangeData = (attribute, value) => {};\n\n const date = useSelect((select) => select(props.storeName).getDate(), []);\n const enabled = useSelect((select) => select(props.storeName).getEnabled(), []);\n const action = useSelect((select) => select(props.storeName).getAction(), []);\n const terms = useSelect((select) => select(props.storeName).getTerms(), []);\n const taxonomy = useSelect((select) => select(props.storeName).getTaxonomy(), []);\n const hasValidData = useSelect((select) => select(props.storeName).getHasValidData(), []);\n const newStatus = useSelect((select) => select(props.storeName).getNewStatus(), []);\n\n let termsString = terms;\n if (typeof terms === 'object') {\n termsString = terms.join(',');\n }\n\n const onDataIsValid = () => {\n jQuery('.button-primary.save').prop('disabled', false);\n }\n\n const onDataIsInvalid = () => {\n jQuery('.button-primary.save').prop('disabled', true);\n }\n\n return (\n
\n \n\n {/* Quick edit JS code will save only fields with name inside the edit row */}\n \n \n \n \n \n \n \n \n
\n );\n};\n","import { Slot, Fill } from '@wordpress/components';\n\nexport const FutureActionPanelTop = ({ children }) => (\n \n {children}\n \n);\n\nconst FutureActionPanelTopSlot = (props) => (\n \n);\n\nFutureActionPanelTop.Slot = FutureActionPanelTopSlot;\n\nexport default FutureActionPanelTop;\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const NonceControl = function (props) {\n if (! props.name) {\n props.name = '_wpnonce';\n }\n\n if (! props.referrer) {\n props.referrer = true;\n }\n\n return (\n \n \n\n {props.referrer &&\n \n }\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nimport {\n SettingRow,\n SettingsTable,\n SelectControl,\n TextControl,\n TokensControl,\n CheckboxControl\n} from './';\nimport { useEffect, useState } from '@wordpress/element';\nimport { addQueryArgs } from '@wordpress/url';\nimport { applyFilters } from '@wordpress/hooks';\nimport { apiFetch } from '&wp';\nimport DateOffsetPreview from './DateOffsetPreview';\n\nconst { PanelRow } = wp.components;\n\nexport const PostTypeSettingsPanel = function (props) {\n const originalExpireTypeList = props.expireTypeList[props.postType];\n\n const [postTypeTaxonomy, setPostTypeTaxonomy] = useState(props.settings.taxonomy);\n const [termOptions, setTermOptions] = useState([]);\n const [termsSelectIsLoading, setTermsSelectIsLoading] = useState(false);\n const [selectedTerms, setSelectedTerms] = useState([]);\n const [settingHowToExpire, setSettingHowToExpire] = useState(props.settings.howToExpire);\n const [isActive, setIsActive] = useState(props.settings.active);\n const [expireOffset, setExpireOffset] = useState(props.settings.defaultExpireOffset);\n const [emailNotification, setEmailNotification] = useState(props.settings.emailNotification);\n const [isAutoEnabled, setIsAutoEnabled] = useState(props.settings.autoEnabled);\n const [hasValidData, setHasValidData] = useState(true);\n const [validationError, setValidationError] = useState('');\n const [taxonomyLabel, setTaxonomyLabel] = useState('');\n const [howToExpireList, setHowToExpireList] = useState(originalExpireTypeList);\n const [newStatus, setNewStatus] = useState(props.settings.newStatus);\n const [hasPendingValidation, setHasPendingValidation] = useState(false);\n\n const offset = expireOffset ? expireOffset : props.settings.globalDefaultExpireOffset;\n\n const taxonomyRelatedActions = [\n 'category',\n 'category-add',\n 'category-remove',\n 'category-remove-all'\n ];\n\n const onChangeTaxonomy = function (value) {\n setPostTypeTaxonomy(value);\n };\n\n const onChangeTerms = (value) => {\n setSelectedTerms(value);\n };\n\n const onChangeHowToExpire = (value) => {\n setSettingHowToExpire(value);\n }\n\n const onChangeActive = (value) => {\n setIsActive(value);\n }\n\n const onChangeExpireOffset = (value) => {\n setExpireOffset(value);\n }\n\n const onChangeEmailNotification = (value) => {\n setEmailNotification(value);\n }\n\n const onChangeAutoEnabled = (value) => {\n setIsAutoEnabled(value);\n }\n\n useEffect(() => {\n // Remove items from expireTypeList if related to taxonomies and there is no taxonmoy for the post type\n if (props.taxonomiesList.length === 0) {\n let newExpireTypeList = [];\n\n newExpireTypeList = howToExpireList.filter((item) => {\n return taxonomyRelatedActions.indexOf(item.value) === -1;\n });\n\n setHowToExpireList(newExpireTypeList);\n }\n }, []);\n\n useEffect(() => {\n if (!postTypeTaxonomy || !props.taxonomiesList) {\n return;\n }\n\n setTermsSelectIsLoading(true);\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/terms/${postTypeTaxonomy}`),\n }).then((result) => {\n let options = [];\n\n let settingsTermsOptions = null;\n let option;\n\n result.terms.forEach(term => {\n option = { value: term.id, label: term.name };\n options.push(option);\n\n if (postTypeTaxonomy === props.settings.taxonomy && props.settings.terms.includes(term.id)) {\n if (settingsTermsOptions === null) {\n settingsTermsOptions = [];\n }\n\n settingsTermsOptions.push(option.label);\n }\n });\n\n setTermOptions(options);\n setSelectedTerms(settingsTermsOptions);\n setTermsSelectIsLoading(false);\n });\n\n props.taxonomiesList.forEach((taxonomy) => {\n if (taxonomy.value === postTypeTaxonomy) {\n setTaxonomyLabel(taxonomy.label);\n }\n });\n }, [postTypeTaxonomy]);\n\n useEffect(() => {\n if (!taxonomyLabel) {\n return;\n }\n\n // Update the list of actions replacing the taxonomy name.\n let newExpireTypeList = [];\n\n originalExpireTypeList.forEach((expireType) => {\n let label = expireType.label;\n\n if (taxonomyRelatedActions.indexOf(expireType.value) !== -1) {\n label = label.replace('%s', taxonomyLabel.toLowerCase());\n }\n\n newExpireTypeList.push({\n value: expireType.value,\n label: label\n });\n });\n\n setHowToExpireList(newExpireTypeList);\n }, [taxonomyLabel]);\n\n useEffect(() => {\n if (hasValidData && props.onDataIsValid) {\n props.onDataIsValid(props.postType);\n }\n\n if (!hasValidData && props.onDataIsInvalid) {\n props.onDataIsInvalid(props.postType);\n }\n }, [hasValidData]);\n\n useEffect(() => {\n if (hasPendingValidation && props.onValidationStarted) {\n props.onValidationStarted(props.postType);\n }\n\n if (!hasPendingValidation && props.onValidationFinished) {\n props.onValidationFinished(props.postType);\n }\n }, [hasPendingValidation]);\n\n const termOptionsLabels = termOptions.map((term) => term.label);\n\n let settingsRows = [\n \n \n \n ];\n\n if (isActive) {\n settingsRows.push(\n \n \n \n );\n\n settingsRows.push(\n \n \n \n \n );\n\n settingsRows.push(\n \n \n\n {settingHowToExpire === 'change-status' &&\n \n }\n\n {(props.taxonomiesList.length > 0 && (['category', 'category-add', 'category-remove'].indexOf(settingHowToExpire) > -1)) &&\n \n }\n \n );\n\n settingsRows.push(\n \n \n\n \n \n );\n\n settingsRows.push(\n \n \n \n );\n }\n\n settingsRows = applyFilters('expirationdate_settings_posttype', settingsRows, props, isActive, useState);\n\n const fieldSetClassNames = props.isVisible ? 'pe-settings-fieldset' : 'pe-settings-fieldset hidden';\n\n return (\n
\n \n\n {! hasValidData && (\n \n
\n {props.text.error}: {validationError}\n
\n
\n )}\n
\n );\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nimport { PostTypeSettingsPanel } from \"./\";\nimport { useState } from \"@wordpress/element\";\n\nexport const PostTypesSettingsPanels = function (props) {\n const [currentTab, setCurrentTab] = useState(Object.keys(props.settings)[0]);\n\n let panels = [];\n\n for (const [postType, postTypeSettings] of Object.entries(props.settings)) {\n panels.push(\n \n );\n }\n\n const onSelectTab = (event) => {\n event.preventDefault();\n setCurrentTab(event.target.hash.replace('#', '').replace('-panel', ''));\n }\n\n let tabs = [];\n let selected = false;\n\n for (const [postType, postTypeSettings] of Object.entries(props.settings)) {\n selected = currentTab === postType;\n tabs.push(\n \n {postTypeSettings.label}\n \n );\n }\n\n return (\n
\n \n {panels}\n
\n );\n}\n\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\nimport { SelectControl as WPSelectControl } from \"@wordpress/components\";\n\nexport const SelectControl = function (props) {\n const onChange = (value) => {\n props.onChange(value);\n };\n\n return (\n \n {props.options.length === 0 && (\n
{props.noItemFoundMessage}
\n )}\n\n {props.options.length > 0 && (\n \n )}\n\n {props.children}\n\n

{props.description}

\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const SettingRow = function (props) {\n return (\n \n \n \n \n \n {props.children}\n \n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsFieldset = function (props) {\n return (\n
\n {props.legend}\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsForm = function (props) {\n return (\n
\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const SettingsSection = function (props) {\n return (\n \n

{props.title}

\n

{props.description}

\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsTable = function (props) {\n return (\n \n \n {props.bodyChildren}\n \n
\n )\n}\n","/*\n * Copyright (c) 2024. PublishPress, All rights reserved.\n */\nexport const Spinner = function (props) {\n return (\n
\n );\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SubmitButton = function (props) {\n return (\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\nimport { TextControl as WPTextControl } from \"@wordpress/components\";\nimport { Spinner } from \"./\";\n\nexport const TextControl = function (props) {\n let description;\n\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n\n const onChange = function (value) {\n if (props.onChange) {\n props.onChange(value);\n }\n };\n\n let className = props.className ? props.className : '';\n\n if (props.loading) {\n className += ' publishpress-future-loading publishpress-future-loading-input';\n }\n\n return (\n \n
\n \n\n {props.loading && }\n\n {description}\n
\n
\n )\n}\n","import { Button } from '@wordpress/components';\n\nexport const ToggleArrowButton = function (props) {\n const onClick = function () {\n if (props.onClick) {\n props.onClick();\n }\n };\n\n const iconExpanded = props.iconExpanded ? props.iconExpanded : 'arrow-up-alt2';\n const iconCollapsed = props.iconCollapsed ? props.iconCollapsed : 'arrow-down-alt2';\n\n const icon = props.isExpanded ? iconExpanded : iconCollapsed;\n\n const title = props.isExpanded ? props.titleExpanded : props.titleCollapsed;\n\n return (\n \n )\n}\n","import { ToggleArrowButton } from \"./ToggleArrowButton\";\nimport { DateTimePicker } from \"./DateTimePicker\";\nimport { Fragment, useEffect } from \"@wordpress/element\";\n\nexport const ToggleCalendarDatePicker = (\n {\n isExpanded,\n strings,\n onToggleCalendar,\n currentDate,\n onChangeDate,\n is12Hour,\n startOfWeek\n }\n) => {\n useEffect(() => {\n // Move the element of the toggle button to between the time and date elements.\n const toggleButtonElement = document.querySelector('.future-action-calendar-toggle');\n\n if (! toggleButtonElement) {\n return;\n }\n\n const dateTimeElement = toggleButtonElement.nextElementSibling;\n\n if (! dateTimeElement) {\n return;\n }\n\n const timeElement = dateTimeElement.querySelector('.components-datetime__time');\n\n if (! timeElement) {\n return;\n }\n\n const dateElement = timeElement.nextSibling;\n\n if (! dateElement) {\n return;\n }\n\n dateTimeElement.insertBefore(toggleButtonElement, dateElement)\n });\n\n return (\n \n \n\n \n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment, useState, useEffect } from \"@wordpress/element\";\nimport { FormTokenField } from \"@wordpress/components\";\n\nexport const TokensControl = (props) => {\n const [stringValue, setStringValue] = useState('');\n\n useEffect(() => {\n if (props.value) {\n setStringValue(props.value.join(','));\n }\n }, [props.value]);\n\n let description;\n\n if (props.description) {\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n }\n\n const onChange = (value) => {\n if (props.onChange) {\n props.onChange(value);\n }\n\n if (typeof value === 'object') {\n setStringValue(value.join(','));\n } else {\n setStringValue('');\n }\n }\n\n const value = props.value ? props.value : [];\n \n return (\n \n \n \n\n {description}\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const TrueFalseControl = function (props) {\n const { Fragment } = wp.element;\n\n const onChange = (e) => {\n if (props.onChange) {\n props.onChange(\n e.target.value === props.trueValue && jQuery(e.target).is(':checked')\n );\n // Check only the true radio... using the field name? or directly the ID\n }\n };\n\n return (\n \n \n\n \n   \n \n {props.falseLabel}\n\n

{props.description}

\n
\n )\n}\n","export { ButtonsPanel } from \"./ButtonsPanel\";\nexport { FutureActionPanel } from \"./FutureActionPanel\";\nexport { FutureActionPanelBlockEditor } from \"./FutureActionPanelBlockEditor\";\nexport { FutureActionPanelClassicEditor } from \"./FutureActionPanelClassicEditor\";\nexport { FutureActionPanelQuickEdit } from \"./FutureActionPanelQuickEdit\";\nexport { FutureActionPanelBulkEdit } from \"./FutureActionPanelBulkEdit\";\nexport { PostTypeSettingsPanel } from \"./PostTypeSettingsPanel\";\nexport { PostTypesSettingsPanels } from \"./PostTypesSettingsPanels\";\nexport { SettingRow } from \"./SettingRow\";\nexport { SettingsFieldset } from \"./SettingsFieldset\";\nexport { SettingsForm } from \"./SettingsForm\";\nexport { SettingsSection } from \"./SettingsSection\";\nexport { SettingsTable } from \"./SettingsTable\";\nexport { SubmitButton } from \"./SubmitButton\";\nexport { CheckboxControl } from \"./CheckboxControl\";\nexport { SelectControl } from \"./SelectControl\";\nexport { TextControl } from \"./TextControl\";\nexport { TokensControl } from \"./TokensControl\";\nexport { NonceControl } from \"./NonceControl\";\nexport { TrueFalseControl } from \"./TrueFalseControl\";\nexport { Spinner } from \"./Spinner\";\nexport { DateOffsetPreview } from \"./DateOffsetPreview\";\n","import { formatUnixTimeToTimestamp, getCurrentTimeAsTimestamp, normalizeUnixTimeToSeconds } from './time';\nimport { isNumber } from './utils';\nimport { register, createReduxStore } from '@wordpress/data';\n\nexport const createStore = (props) => {\n if (props.defaultState.terms && typeof props.defaultState.terms === 'string') {\n props.defaultState.terms = props.defaultState.terms.split(',').map(term => parseInt(term));\n }\n\n let defaultState = {\n action: props.defaultState.action,\n date: props.defaultState.date ? props.defaultState.date : getCurrentTimeAsTimestamp(),\n enabled: props.defaultState.autoEnable,\n terms: props.defaultState.terms ? props.defaultState.terms : [],\n taxonomy: props.defaultState.taxonomy ? props.defaultState.taxonomy : null,\n newStatus: props.defaultState.newStatus ? props.defaultState.newStatus : 'draft',\n termsListByName: null,\n termsListById: null,\n taxonomyName: null,\n isFetchingTerms: false,\n changeAction: 'no-change',\n calendarIsVisible: true,\n hasValidData: true,\n extraData: props.defaultState.extraData ? props.defaultState.extraData : {},\n }\n\n const store = createReduxStore(props.name, {\n reducer(state = defaultState, action) {\n switch (action.type) {\n case 'SET_ACTION':\n return {\n ...state,\n action: action.action,\n };\n case 'SET_NEW_STATUS':\n return {\n ...state,\n newStatus: action.newStatus,\n };\n case 'SET_DATE':\n // Make sure the date is a number, if it is a string with only numbers\n if (typeof action.date !== 'number' && isNumber(action.date)) {\n action.date = parseInt(action.date);\n }\n\n // If string, convert to unix time\n if (typeof action.date === 'string') {\n action.date = new Date(action.date).getTime();\n }\n\n // Make sure the time is always in seconds\n action.date = normalizeUnixTimeToSeconds(action.date);\n\n // Convert to formated string format, considering it is in the site's timezone\n action.date = formatUnixTimeToTimestamp(action.date);\n\n return {\n ...state,\n date: action.date,\n }\n case 'SET_ENABLED':\n return {\n ...state,\n enabled: action.enabled,\n }\n case 'SET_TERMS':\n return {\n ...state,\n terms: action.terms,\n }\n case 'SET_TAXONOMY':\n return {\n ...state,\n taxonomy: action.taxonomy,\n }\n case 'SET_TERMS_LIST_BY_NAME':\n return {\n ...state,\n termsListByName: action.termsListByName,\n }\n case 'SET_TERMS_LIST_BY_ID':\n return {\n ...state,\n termsListById: action.termsListById,\n }\n case 'SET_TAXONOMY_NAME':\n return {\n ...state,\n taxonomyName: action.taxonomyName,\n }\n case 'SET_CHANGE_ACTION':\n return {\n ...state,\n changeAction: action.changeAction,\n }\n case 'SET_CALENDAR_IS_VISIBLE':\n return {\n ...state,\n calendarIsVisible: action.calendarIsVisible,\n }\n case 'SET_HAS_VALID_DATA':\n return {\n ...state,\n hasValidData: action.hasValidData,\n }\n\n case 'SET_EXTRA_DATA':\n return {\n ...state,\n extraData: {\n ...action.extraData,\n }\n }\n\n case 'SET_EXTRA_DATA_BY_NAME':\n const extraData = {\n ...state.extraData,\n [action.name]: action.value\n };\n\n return {\n ...state,\n extraData: {...extraData}\n }\n }\n\n return state;\n },\n actions: {\n setAction(action) {\n return {\n type: 'SET_ACTION',\n action: action\n };\n },\n setNewStatus(newStatus) {\n return {\n type: 'SET_NEW_STATUS',\n newStatus: newStatus\n };\n },\n setDate(date) {\n return {\n type: 'SET_DATE',\n date: date\n };\n },\n setEnabled(enabled) {\n return {\n type: 'SET_ENABLED',\n enabled: enabled\n };\n },\n setTerms(terms) {\n return {\n type: 'SET_TERMS',\n terms: terms\n };\n },\n setTaxonomy(taxonomy) {\n return {\n type: 'SET_TAXONOMY',\n taxonomy: taxonomy\n };\n },\n setTermsListByName(termsListByName) {\n return {\n type: 'SET_TERMS_LIST_BY_NAME',\n termsListByName: termsListByName\n };\n },\n setTermsListById(termsListById) {\n return {\n type: 'SET_TERMS_LIST_BY_ID',\n termsListById: termsListById\n };\n },\n setTaxonomyName(taxonomyName) {\n return {\n type: 'SET_TAXONOMY_NAME',\n taxonomyName: taxonomyName\n };\n },\n setIsFetchingTerms(isFetchingTerms) {\n return {\n type: 'SET_IS_FETCHING_TERMS',\n isFetchingTerms: isFetchingTerms\n }\n },\n setChangeAction(changeAction) {\n return {\n type: 'SET_CHANGE_ACTION',\n changeAction: changeAction\n }\n },\n setCalendarIsVisible(calendarIsVisible) {\n return {\n type: 'SET_CALENDAR_IS_VISIBLE',\n calendarIsVisible: calendarIsVisible\n }\n },\n setHasValidData(hasValidData) {\n return {\n type: 'SET_HAS_VALID_DATA',\n hasValidData: hasValidData\n }\n },\n setExtraData(extraData) {\n return {\n type: 'SET_EXTRA_DATA',\n extraData: extraData\n }\n },\n setExtraDataByName(name, value) {\n return {\n type: 'SET_EXTRA_DATA_BY_NAME',\n name: name,\n value: value\n }\n }\n },\n selectors: {\n getAction(state) {\n return state.action;\n },\n getNewStatus(state) {\n return state.newStatus;\n },\n getDate(state) {\n return state.date;\n },\n getEnabled(state) {\n return state.enabled;\n },\n getTerms(state) {\n return state.terms;\n },\n getTaxonomy(state) {\n return state.taxonomy;\n },\n getTermsListByName(state) {\n return state.termsListByName;\n },\n getTermsListById(state) {\n return state.termsListById;\n },\n getTaxonomyName(state) {\n return state.taxonomyName;\n },\n getIsFetchingTerms(state) {\n return state.isFetchingTerms;\n },\n getChangeAction(state) {\n return state.changeAction;\n },\n getCalendarIsVisible(state) {\n return state.calendarIsVisible;\n },\n getHasValidData(state) {\n return state.hasValidData;\n },\n getExtraData(state) {\n return state.extraData;\n },\n getExtraDataByName(state, name) {\n return state.extraData[name] || null;\n }\n }\n });\n\n register(store);\n\n return store;\n}\n","export const getCurrentTimeInSeconds = () => {\n return normalizeUnixTimeToSeconds(new Date().getTime());\n}\n\nexport const getCurrentTimeAsTimestamp = () => {\n return formatUnixTimeToTimestamp(getCurrentTimeInSeconds());\n}\n\nexport const formatUnixTimeToTimestamp = (unixTimestamp) => {\n const date = new Date(\n normalizeUnixTimeToSeconds(unixTimestamp)\n );\n\n const year = date.getFullYear();\n const month = (\"0\" + (date.getMonth() + 1)).slice(-2); // Months are zero-based\n const day = (\"0\" + date.getDate()).slice(-2);\n const hours = (\"0\" + date.getHours()).slice(-2);\n const minutes = (\"0\" + date.getMinutes()).slice(-2);\n const seconds = (\"0\" + date.getSeconds()).slice(-2);\n\n return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;\n}\n\nexport const formatTimestampToUnixTime = (time) => {\n const date = new Date(time);\n\n return normalizeUnixTimeToSeconds(date.getTime());\n}\n\nexport const timeIsInSeconds = (time) => {\n return parseInt(time).toString().length <= 10;\n}\n\nexport const normalizeUnixTimeToSeconds = (time) => {\n time = parseInt(time);\n\n return timeIsInSeconds() ? time : time / 1000;\n}\n\nexport const normalizeUnixTimeToMilliseconds = (time) => {\n time = parseInt(time);\n\n return timeIsInSeconds() ? time * 1000 : time;\n}\n","export const compact = (array) => {\n if (!array) {\n return [];\n }\n\n if (! Array.isArray(array) && typeof array === 'object') {\n array = Object.values(array);\n }\n\n return array.filter((item) => {\n return item !== null && item !== undefined && item !== '';\n });\n}\n\nexport const debugLogFactory = (config) => {\n return (description, ...message) => {\n if (console && config.isDebugEnabled) {\n console.debug('[Future]', description, ...message);\n }\n }\n}\n\nexport const isGutenbergEnabled = () => {\n return document.body.classList.contains('block-editor-page');\n}\n\nexport const getElementByName = (name) => {\n return document.getElementsByName(name)[0];\n}\n\nexport const getFieldByName = (name, postId) => {\n return document.querySelector(`#the-list tr#post-${postId} .column-expirationdate input#future_action_${name}-${postId}`);\n}\n\nexport const getFieldValueByName = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field) {\n return null;\n }\n\n return field.value;\n};\n\nexport const getFieldValueByNameAsArrayOfInt = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field || !field.value) {\n return [];\n }\n\n if (typeof field.value === 'number') {\n field.value = field.value.toString();\n }\n\n return field.value.split(',').map(term => parseInt(term));\n};\n\nexport const getFieldValueByNameAsBool = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field) {\n return false;\n }\n\n return field.value === '1' || field.value === 'true';\n}\n\nexport const getActionSettingsFromColumnData = (postId) => {\n const columnData = document.querySelector(`#post-expire-column-${postId}`);\n\n if (!columnData) {\n return {};\n }\n\n return {\n enabled: columnData.dataset.actionEnabled === '1',\n action: columnData.dataset.actionType,\n date: columnData.dataset.actionDate,\n dateUnix: columnData.dataset.actionDateUnix,\n taxonomy: columnData.dataset.actionTaxonomy,\n terms: columnData.dataset.actionTerms,\n newStatus: columnData.dataset.actionNewStatus,\n };\n}\n\n/**\n * This function is used to determine if a value is a number, including strings.\n *\n * @param {*} value\n * @returns\n */\nexport const isNumber = (value) => {\n return !isNaN(value);\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.publishpress-future-date-preview .publishpress-future-date-preview-value {\n font-family: monospace;\n background-color: #e7e7e7;\n padding: 2px 4px;\n}\n\n.publishpress-future-date-preview.compact .publishpress-future-date-preview-label {\n display: block;\n}\n\n.publishpress-future-date-preview.compact {\n margin-bottom: 8px;\n}\n\n.publishpress-future-date-preview.compact h4 {\n font-size: 11px;\n font-weight: 500;\n line-height: 1.4;\n text-transform: uppercase;\n display: inline-block;\n margin-bottom: calc(8px);\n padding: 0px;\n flex-shrink: 0;\n margin-right: 12px;\n max-width: 75%;\n margin-top: 0;\n}\n\n.publishpress-future-notice.publishpress-future-notice-error {\n color: #dc3232;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./assets/jsx/components/css/dateOffsetPreview.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,sBAAsB;IACtB,yBAAyB;IACzB,gBAAgB;AACpB;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,kBAAkB;AACtB;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,yBAAyB;IACzB,qBAAqB;IACrB,wBAAwB;IACxB,YAAY;IACZ,cAAc;IACd,kBAAkB;IAClB,cAAc;IACd,aAAa;AACjB;;AAEA;IACI,cAAc;AAClB\",\"sourcesContent\":[\".publishpress-future-date-preview .publishpress-future-date-preview-value {\\n font-family: monospace;\\n background-color: #e7e7e7;\\n padding: 2px 4px;\\n}\\n\\n.publishpress-future-date-preview.compact .publishpress-future-date-preview-label {\\n display: block;\\n}\\n\\n.publishpress-future-date-preview.compact {\\n margin-bottom: 8px;\\n}\\n\\n.publishpress-future-date-preview.compact h4 {\\n font-size: 11px;\\n font-weight: 500;\\n line-height: 1.4;\\n text-transform: uppercase;\\n display: inline-block;\\n margin-bottom: calc(8px);\\n padding: 0px;\\n flex-shrink: 0;\\n margin-right: 12px;\\n max-width: 75%;\\n margin-top: 0;\\n}\\n\\n.publishpress-future-notice.publishpress-future-notice-error {\\n color: #dc3232;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/postcss-loader/dist/cjs.js!./dateOffsetPreview.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/postcss-loader/dist/cjs.js!./dateOffsetPreview.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;","module.exports = ReactDOM;","module.exports = publishpressFutureBulkEditConfig;","module.exports = window;","module.exports = wp;","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.element;","module.exports = wp.hooks;","module.exports = wp.plugins;","module.exports = wp.url;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nc = undefined;","import { FutureActionPanelBulkEdit } from './components';\nimport { createStore } from './data';\nimport { createRoot } from 'react-dom/client';\nimport { select, dispatch } from '@wordpress/data';\nimport { inlineEditPost } from \"&window\";\nimport {\n postTypeDefaultConfig,\n defaultDate,\n postType,\n isNewPost,\n actionsSelectOptions,\n is12Hour,\n timeFormat,\n startOfWeek,\n strings,\n taxonomyName,\n nonce,\n statusesSelectOptions,\n hideCalendarByDefault\n} from \"&config.bulk-edit\";\n\nconst storeName = 'publishpress-future/future-action-bulk-edit';\nconst delayToUnmountAfterSaving = 1000;\n\n// We create a copy of the WP inline set bulk function\nconst wpInlineSetBulk = inlineEditPost.setBulk;\nconst wpInlineEditRevert = inlineEditPost.revert;\n\nconst getPostId = (id) => {\n // If id is a string or a number, return it directly\n if (typeof id === 'string' || typeof id === 'number') {\n return id;\n }\n\n // Otherwise, assume it's an HTML element and extract the post ID\n const trElement = id.closest('tr');\n const trId = trElement.id;\n const postId = trId.split('-')[1];\n\n return postId;\n}\n\n/**\n * We override the function with our own code so we can detect when\n * the inline edit row is displayed to recreate the React component.\n */\ninlineEditPost.setBulk = function (id) {\n // Call the original WP edit function.\n wpInlineSetBulk.apply(this, arguments);\n\n if (select(storeName)) {\n dispatch(storeName).setAction(postTypeDefaultConfig.expireType);\n dispatch(storeName).setDate(postTypeDefaultConfig.defaultDate);\n dispatch(storeName).setTaxonomy(postTypeDefaultConfig.taxonomy);\n dispatch(storeName).setTerms(postTypeDefaultConfig.terms);\n dispatch(storeName).setChangeAction('no-change');\n } else {\n createStore({\n name: storeName,\n defaultState: {\n action: postTypeDefaultConfig.expireType,\n newStatus: postTypeDefaultConfig.newStatus,\n date: defaultDate,\n taxonomy: postTypeDefaultConfig.taxonomy,\n terms: postTypeDefaultConfig.terms,\n changeAction: 'no-change',\n }\n });\n }\n\n const container = document.getElementById(\"publishpress-future-bulk-edit\");\n const root = createRoot(container);\n\n const saveButton = document.querySelector('#bulk_edit');\n if (saveButton) {\n saveButton.onclick = function() {\n setTimeout(() => {\n root.unmount();\n }, delayToUnmountAfterSaving);\n };\n }\n\n const component = (\n \n );\n\n root.render(component);\n\n inlineEditPost.revert = function () {\n root.unmount();\n\n // Call the original WP revert function.\n wpInlineEditRevert.apply(this, arguments);\n };\n};\n"],"names":["ButtonsPanel","props","children","CheckboxControl","description","useState","checked","setChecked","unescapedDescription","className","dangerouslySetInnerHTML","__html","Fragment","label","name","id","onChange","value","require","DateOffsetPreview","offset","labelDatePreview","labelOffsetPreview","setValidationErrorCallback","setHasPendingValidationCallback","setHasValidDataCallback","compactView","offsetPreview","setOffsetPreview","currentTime","setCurrentTime","apiRequestControllerRef","useRef","AbortController","useEffect","controller","current","abort","signal","apiFetch","path","addQueryArgs","method","data","then","result","isValid","message","preview","catch","error","validateDateOffset","compactClass","DateTimePicker","currentDate","is12Hour","startOfWeek","normalizeUnixTimeToMilliseconds","__nextRemoveHelpButton","wp","components","PanelRow","SelectControl","FormTokenField","Spinner","BaseControl","element","decodeEntities","htmlEntities","url","useSelect","useDispatch","FutureActionPanel","select","action","storeName","getAction","date","getDate","enabled","getEnabled","terms","getTerms","taxonomy","getTaxonomy","taxonomyName","getTaxonomyName","termsListByName","getTermsListByName","termsListById","getTermsListById","isFetchingTerms","getIsFetchingTerms","calendarIsVisible","getCalendarIsVisible","hasValidData","getHasValidData","newStatus","getNewStatus","validationError","setValidationError","setAction","setDate","setEnabled","setTerms","setTaxonomy","setTermsListByName","setTermsListById","setTaxonomyName","setIsFetchingTerms","setCalendarIsVisible","setHasValidData","setNewStatus","insertTerm","term","count","link","slug","callOnChangeData","attribute","onChangeData","handleEnabledChange","isChecked","fetchTerms","forEach","getCalendarIsVisibleFromStorage","localStorage","getItem","context","autoEnableAndHideCheckbox","hideCalendarByDefault","isCleanNewPost","setItem","onDataIsValid","onDataIsInvalid","selectedTerms","length","compact","map","mapTermsListById","termsListByNameKeys","Object","keys","is24hour","panelClass","contentPanelClass","datePanelClass","timeFormat","actionsSelectOptions","filter","item","indexOf","HelpText","string","href","target","parts","split","push","shift","before","after","key","replaceCurlyBracketsWithLink","strings","timezoneSettingsHelp","displayTaxonomyField","String","includes","termsFieldLabel","newTerms","replace","removeTerms","addTerms","valid","errorActionRequired","errorDateRequired","Date","errorDateInPast","isTermRequired","noTermIsSelected","errorTermsRequired","validateData","SlotFillProvider","type","FutureActionPanelTop","Slot","fillProps","enablePostExpiration","options","FutureActionPanelAfterActionField","statusesSelectOptions","loading","noTaxonomyFound","noTermsFound","suggestions","mapTermsListByName","placeholder","addTermsPlaceholder","maxSuggestions","onFocus","e","jQuery","addClass","__experimentalExpandOnFocus","__experimentalAutoSelectFirstMatch","ToggleCalendarDatePicker","onChangeDate","onToggleCalendar","isExpanded","PluginArea","scope","Fill","FutureActionPanelBlockEditor","PluginDocumentSettingPanel","editPost","getEditedPostAttribute","lockPostSaving","unlockPostSaving","title","panelTitle","initialOpen","postTypeDefaultConfig","autoEnable","postType","store","newAttribute","getExtraData","publishpress_future_action","entries","editPostAttribute","FutureActionPanelBulkEdit","changeAction","getChangeAction","setChangeAction","termsString","join","noChange","changeAdd","addOnly","changeOnly","removeOnly","prop","futureActionUpdate","isNewPost","getElementByName","nonce","FutureActionPanelClassicEditor","getTimezoneOffset","document","getElementsByName","getElementValueByName","parseInt","getTermsFromElementByName","FutureActionPanelQuickEdit","NonceControl","referrer","PostTypeSettingsPanel","originalExpireTypeList","expireTypeList","settings","postTypeTaxonomy","setPostTypeTaxonomy","termOptions","setTermOptions","termsSelectIsLoading","setTermsSelectIsLoading","setSelectedTerms","howToExpire","settingHowToExpire","setSettingHowToExpire","active","isActive","setIsActive","defaultExpireOffset","expireOffset","setExpireOffset","emailNotification","setEmailNotification","autoEnabled","isAutoEnabled","setIsAutoEnabled","taxonomyLabel","setTaxonomyLabel","howToExpireList","setHowToExpireList","hasPendingValidation","setHasPendingValidation","globalDefaultExpireOffset","taxonomyRelatedActions","newExpireTypeList","taxonomiesList","settingsTermsOptions","option","expireType","toLowerCase","onValidationStarted","onValidationFinished","termOptionsLabels","settingsRows","SettingRow","text","fieldActive","fieldActiveLabel","fieldAutoEnable","fieldAutoEnableLabel","fieldTaxonomy","selected","noItemFoundMessage","noItemsfound","fieldTaxonomyDescription","fieldHowToExpire","fieldHowToExpireDescription","statusesList","TokensControl","fieldTerm","isLoading","fieldTermDescription","expandOnFocus","autoSelectFirstMatch","fieldDefaultDateTimeOffset","TextControl","fieldDefaultDateTimeOffsetDescription","datePreview","datePreviewCurrent","datePreviewComputed","fieldWhoToNotify","fieldWhoToNotifyDescription","applyFilters","fieldSetClassNames","isVisible","SettingsTable","bodyChildren","PostTypesSettingsPanels","currentTab","setCurrentTab","panels","postTypeSettings","legend","onSelectTab","event","preventDefault","hash","tabs","onClick","valign","htmlFor","SettingsFieldset","SettingsForm","SettingsSection","SubmitButton","disabled","ToggleArrowButton","iconExpanded","iconCollapsed","icon","titleExpanded","titleCollapsed","Button","isSmall","toggleButtonElement","querySelector","dateTimeElement","nextElementSibling","timeElement","dateElement","nextSibling","insertBefore","hideCalendar","showCalendar","stringValue","setStringValue","TrueFalseControl","trueValue","is","defaultChecked","trueLabel","falseValue","falseLabel","createStore","defaultState","getCurrentTimeAsTimestamp","extraData","createReduxStore","reducer","state","isNumber","getTime","normalizeUnixTimeToSeconds","formatUnixTimeToTimestamp","actions","setExtraData","setExtraDataByName","selectors","getExtraDataByName","register","getCurrentTimeInSeconds","unixTimestamp","getFullYear","getMonth","slice","getHours","getMinutes","getSeconds","timeIsInSeconds","formatTimestampToUnixTime","time","toString","getFieldByName","array","Array","isArray","values","debugLogFactory","config","console","isDebugEnabled","debug","isGutenbergEnabled","body","classList","contains","postId","getFieldValueByName","field","getFieldValueByNameAsArrayOfInt","getFieldValueByNameAsBool","getActionSettingsFromColumnData","columnData","dataset","actionEnabled","actionType","actionDate","dateUnix","actionDateUnix","actionTaxonomy","actionTerms","actionNewStatus","isNaN","___CSS_LOADER_EXPORT___","module","exports","cssWithMappingToString","list","this","content","needLayer","concat","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","sourceMapping","m","createRoot","hydrateRoot","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","stylesInDOM","getIndexByIdentifier","identifier","modulesToDom","idCountMap","identifiers","base","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","styleTarget","window","HTMLIFrameElement","contentDocument","head","getTarget","Error","appendChild","createElement","attributes","styleElement","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode","ReactDOM","publishpressFutureBulkEditConfig","hooks","plugins","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","prototype","hasOwnProperty","call","r","Symbol","toStringTag","nc","wpInlineSetBulk","inlineEditPost","setBulk","wpInlineEditRevert","revert","arguments","dispatch","defaultDate","container","getElementById","root","saveButton","onclick","setTimeout","unmount","component","render"],"sourceRoot":""} \ No newline at end of file diff --git a/assets/js/classic-editor.js b/assets/js/classic-editor.js index e280c78bb..ba2681913 100644 --- a/assets/js/classic-editor.js +++ b/assets/js/classic-editor.js @@ -1,2 +1,2 @@ -(()=>{"use strict";var e={442:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ButtonsPanel=function(e){return React.createElement("div",null,e.children)}},311:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CheckboxControl=void 0;var a=n(386),r=n(214);t.CheckboxControl=function(e){var t,n=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,a.useState)(e.checked||!1),2),o=n[0],i=n[1];return t=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description),React.createElement(a.Fragment,null,React.createElement(r.CheckboxControl,{label:e.label,name:e.name,id:e.name,className:e.className,checked:o||!1,onChange:function(t){i(t),e.onChange&&e.onChange(t)}}),t)}},620:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DateTimePicker=void 0;var a=n(39),r=n(214);t.DateTimePicker=function(e){var t=e.currentDate,n=e.onChange,o=e.is12Hour,i=e.startOfWeek;return"number"==typeof t&&(t=(0,a.normalizeUnixTimeToMilliseconds)(t)),React.createElement(r.DateTimePicker,{currentDate:t,onChange:n,__nextRemoveHelpButton:!0,is12Hour:o,startOfWeek:i})}},418:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanel=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},o=n(409),i=n(873),l=n(986),u=n(214),c=n(61),s=n(625),m=wp.components,d=m.PanelRow,p=m.CheckboxControl,f=m.SelectControl,y=m.FormTokenField,g=m.Spinner,b=m.BaseControl,v=wp.element,E=v.Fragment,S=v.useEffect,h=v.useState,_=wp.htmlEntities.decodeEntities,T=wp.url.addQueryArgs,x=wp.data,N=x.useSelect,R=x.useDispatch,A=wp.apiFetch;t.FutureActionPanel=function(e){var t=N((function(t){return t(e.storeName).getAction()}),[]),n=N((function(t){return t(e.storeName).getDate()}),[]),m=N((function(t){return t(e.storeName).getEnabled()}),[]),v=N((function(t){return t(e.storeName).getTerms()}),[]),x=N((function(t){return t(e.storeName).getTaxonomy()}),[]),C=N((function(t){return t(e.storeName).getTaxonomyName()}),[]),P=N((function(t){return t(e.storeName).getTermsListByName()}),[]),w=N((function(t){return t(e.storeName).getTermsListById()}),[]),O=N((function(t){return t(e.storeName).getIsFetchingTerms()}),[]),D=N((function(t){return t(e.storeName).getCalendarIsVisible()}),[]),F=N((function(t){return t(e.storeName).getHasValidData()}),[]),I=N((function(t){return t(e.storeName).getNewStatus()}),[]),k=h(""),j=r(k,2),B=j[0],M=j[1],L=R(e.storeName),V=L.setAction,H=L.setDate,W=L.setEnabled,U=L.setTerms,Q=L.setTaxonomy,Y=L.setTermsListByName,q=L.setTermsListById,X=L.setTaxonomyName,z=L.setIsFetchingTerms,G=L.setCalendarIsVisible,J=L.setHasValidData,K=L.setNewStatus,Z=function(e){P[e]={id:e,count:0,description:"",link:"",name:e,slug:e,taxonomy:x},w[e]=e,Y(P),q(w),U([].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0&&w&&(ae=(0,o.compact)(function(e){return"object"!==(void 0===e?"undefined":a(e))||null===e?{}:e.map((function(e){return w[e]}))}(v)),"string"==typeof ae&&(ae=[]));var re=[];"object"===(void 0===P?"undefined":a(P))&&null!==P&&(re=Object.keys(P));var oe,ie=D?"future-action-panel":"future-action-panel hidden-calendar",le=D?"future-action-panel-content":"future-action-panel-content hidden-calendar",ue=D?"future-action-date-panel":"future-action-date-panel hidden-calendar";oe="inherited"===e.timeFormat?!e.is12Hour:"24h"===e.timeFormat;var ce=e.actionsSelectOptions;e.taxonomy||(ce=e.actionsSelectOptions.filter((function(e){return-1===["category","category-add","category-remove","category-remove-all"].indexOf(e.value)})));var se=function(e,t,n){var a=e.split("{"),o=[];o.push(a.shift());var i=!0,l=!1,u=void 0;try{for(var c,s=a[Symbol.iterator]();!(i=(c=s.next()).done);i=!0){var m=c.value.split("}"),d=r(m,2),p=d[0],f=d[1];o.push(React.createElement("a",{href:t,target:"_blank",key:t},p)),o.push(f)}}catch(e){l=!0,u=e}finally{try{!i&&s.return&&s.return()}finally{if(l)throw u}}return o}(e.strings.timezoneSettingsHelp,"/wp-admin/options-general.php#timezone_string"),me=String(t).includes("category")&&"category-remove-all"!==t,de=C;switch(t){case"category":de=e.strings.newTerms.replace("%s",C);break;case"category-remove":de=e.strings.removeTerms.replace("%s",C);break;case"category-add":de=e.strings.addTerms.replace("%s",C)}return S((function(){if(!m)return J(!0),void M("");J(function(){var a=!0;if(!m)return M(""),!0;t||(M(e.strings.errorActionRequired),a=!1),n||(M(e.strings.errorDateRequired),a=!1),n&&new Date(n){Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelAfterActionField=void 0;var a=Object.assign||function(e){for(var t=1;t{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelBlockEditor=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(57);t.FutureActionPanelBlockEditor=function(e){var t=wp.editPost.PluginDocumentSettingPanel,n=wp.data,o=n.useDispatch,i=n.select,l=o("core/editor").editPost,u=i("core/editor").getEditedPostAttribute("publishpress_future_action"),c=o("core/editor"),s=c.lockPostSaving,m=c.unlockPostSaving;return React.createElement(t,{name:"publishpress-future-action-panel",title:e.strings.panelTitle,initialOpen:e.postTypeDefaultConfig.autoEnable,className:"post-expirator-panel"},React.createElement("div",{id:"publishpress-future-block-editor"},React.createElement(r.FutureActionPanel,{context:"block-editor",postType:e.postType,isCleanNewPost:e.isCleanNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:u.enabled,calendarIsVisible:!0,action:u.action,newStatus:u.newStatus,date:u.date,terms:u.terms,taxonomy:u.taxonomy,taxonomyName:e.taxonomyName,onChangeData:function(t,n){var r=i(e.storeName),o={enabled:r.getEnabled()};o.enabled&&(o.action=r.getAction(),o.newStatus=r.getNewStatus(),o.date=r.getDate(),o.terms=r.getTerms(),o.taxonomy=r.getTaxonomy(),o.extraData=r.getExtraData()),function(e){var t={publishpress_future_action:{}},n=!0,r=!1,o=void 0;try{for(var i,u=Object.entries(e)[Symbol.iterator]();!(n=(i=u.next()).done);n=!0){var c=i.value,s=a(c,2),m=s[0],d=s[1];t.publishpress_future_action[m]=d}}catch(e){r=!0,o=e}finally{try{!n&&u.return&&u.return()}finally{if(r)throw o}}l(t)}(o)},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){m("future-action")},onDataIsInvalid:function(){s("future-action")}})))}},94:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelBulkEdit=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(57),o=n(409);t.FutureActionPanelBulkEdit=function(e){var t=wp.data,n=t.useSelect,i=t.useDispatch,l=t.select,u=wp.element.useEffect,c=n((function(t){return t(e.storeName).getDate()}),[]),s=n((function(t){return t(e.storeName).getEnabled()}),[]),m=n((function(t){return t(e.storeName).getAction()}),[]),d=n((function(t){return t(e.storeName).getNewStatus()}),[]),p=n((function(t){return t(e.storeName).getTerms()}),[]),f=n((function(t){return t(e.storeName).getTaxonomy()}),[]),y=n((function(t){return t(e.storeName).getChangeAction()}),[]),g=n((function(t){return t(e.storeName).getHasValidData()}),[]),b=i(e.storeName).setChangeAction,v=p;"object"===(void 0===p?"undefined":a(p))&&(v=p.join(","));var E=[{value:"no-change",label:e.strings.noChange},{value:"change-add",label:e.strings.changeAdd},{value:"add-only",label:e.strings.addOnly},{value:"change-only",label:e.strings.changeOnly},{value:"remove-only",label:e.strings.removeOnly}];return u((function(){g||"no-change"===y?jQuery("#bulk_edit").prop("disabled",!1):jQuery("#bulk_edit").prop("disabled",!0)}),[g,y]),React.createElement("div",{className:"post-expirator-panel"},React.createElement(r.SelectControl,{label:e.strings.futureActionUpdate,name:"future_action_bulk_change_action",value:y,options:E,onChange:function(e){b(e)}}),["change-add","add-only","change-only"].includes(y)&&React.createElement(r.FutureActionPanel,{context:"bulk-edit",autoEnableAndHideCheckbox:!0,postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:!0,calendarIsVisible:!1,action:m,newStatus:d,date:c,terms:p,taxonomy:f,taxonomyName:e.taxonomyName,onChangeData:function(t,n){(0,o.getElementByName)("future_action_bulk_enabled").value=l(e.storeName).getEnabled()?1:0,(0,o.getElementByName)("future_action_bulk_action").value=l(e.storeName).getAction(),(0,o.getElementByName)("future_action_bulk_new_status").value=l(e.storeName).getNewStatus(),(0,o.getElementByName)("future_action_bulk_date").value=l(e.storeName).getDate(),(0,o.getElementByName)("future_action_bulk_terms").value=l(e.storeName).getTerms().join(","),(0,o.getElementByName)("future_action_bulk_taxonomy").value=l(e.storeName).getTaxonomy()},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings}),React.createElement("input",{type:"hidden",name:"future_action_bulk_enabled",value:s?1:0}),React.createElement("input",{type:"hidden",name:"future_action_bulk_action",value:m}),React.createElement("input",{type:"hidden",name:"future_action_bulk_new_status",value:d}),React.createElement("input",{type:"hidden",name:"future_action_bulk_date",value:c}),React.createElement("input",{type:"hidden",name:"future_action_bulk_terms",value:v}),React.createElement("input",{type:"hidden",name:"future_action_bulk_taxonomy",value:f}),React.createElement("input",{type:"hidden",name:"future_action_bulk_view",value:"bulk-edit"}),React.createElement("input",{type:"hidden",name:"_future_action_nonce",value:e.nonce}))}},571:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelClassicEditor=void 0;var a=n(57),r=n(562);n(386),t.FutureActionPanelClassicEditor=function(e){(new Date).getTimezoneOffset();var t=function(e){return document.getElementsByName(e)[0]},n=function(e){var n=t(e);return n?n.value:""},o={enabled:"1"===n("future_action_enabled"),action:n("future_action_action"),newStatus:n("future_action_new_status"),date:n("future_action_date"),terms:function(e){var n=t("future_action_terms");if(!n)return[];var a=n.value.split(",");return 1===a.length&&""===a[0]&&(a=[]),a.map((function(e){return parseInt(e)}))}(),taxonomy:n("future_action_taxonomy")};return React.createElement("div",{className:"post-expirator-panel"},React.createElement(a.FutureActionPanel,{context:"classic-editor",postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:o.enabled,calendarIsVisible:!0,action:o.action,newStatus:o.newStatus,date:o.date,terms:o.terms,taxonomy:o.taxonomy,taxonomyName:e.taxonomyName,onChangeData:function(n,a){var o=(0,r.select)(e.storeName);t("future_action_enabled").value=o.getEnabled()?1:0,t("future_action_action").value=o.getAction(),t("future_action_new_status").value=o.getNewStatus(),t("future_action_date").value=o.getDate(),t("future_action_terms").value=o.getTerms().join(","),t("future_action_taxonomy").value=o.getTaxonomy()},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){jQuery("#publish").prop("disabled",!1)},onDataIsInvalid:function(){jQuery("#publish").prop("disabled",!0)}}))}},437:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelQuickEdit=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(57),o=n(562);n(386),t.FutureActionPanelQuickEdit=function(e){var t=(0,o.useSelect)((function(t){return t(e.storeName).getDate()}),[]),n=(0,o.useSelect)((function(t){return t(e.storeName).getEnabled()}),[]),i=(0,o.useSelect)((function(t){return t(e.storeName).getAction()}),[]),l=(0,o.useSelect)((function(t){return t(e.storeName).getTerms()}),[]),u=(0,o.useSelect)((function(t){return t(e.storeName).getTaxonomy()}),[]),c=((0,o.useSelect)((function(t){return t(e.storeName).getHasValidData()}),[]),(0,o.useSelect)((function(t){return t(e.storeName).getNewStatus()}),[])),s=l;return"object"===(void 0===l?"undefined":a(l))&&(s=l.join(",")),React.createElement("div",{className:"post-expirator-panel"},React.createElement(r.FutureActionPanel,{context:"quick-edit",postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:n,calendarIsVisible:!1,action:i,newStatus:c,date:t,terms:l,taxonomy:u,taxonomyName:e.taxonomyName,onChangeData:function(e,t){},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){jQuery(".button-primary.save").prop("disabled",!1)},onDataIsInvalid:function(){jQuery(".button-primary.save").prop("disabled",!0)}}),React.createElement("input",{type:"hidden",name:"future_action_enabled",value:n?1:0}),React.createElement("input",{type:"hidden",name:"future_action_action",value:i||""}),React.createElement("input",{type:"hidden",name:"future_action_new_status",value:c||""}),React.createElement("input",{type:"hidden",name:"future_action_date",value:t||""}),React.createElement("input",{type:"hidden",name:"future_action_terms",value:s||""}),React.createElement("input",{type:"hidden",name:"future_action_taxonomy",value:u||""}),React.createElement("input",{type:"hidden",name:"future_action_view",value:"quick-edit"}),React.createElement("input",{type:"hidden",name:"_future_action_nonce",value:e.nonce}))}},625:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelTop=void 0;var a=Object.assign||function(e){for(var t=1;t{Object.defineProperty(t,"__esModule",{value:!0}),t.NonceControl=void 0;var a=n(386);t.NonceControl=function(e){return e.name||(e.name="_wpnonce"),e.referrer||(e.referrer=!0),React.createElement(a.Fragment,null,React.createElement("input",{type:"hidden",name:e.name,id:e.name,value:e.nonce}),e.referrer&&React.createElement("input",{type:"hidden",name:"_wp_http_referer",value:e.referrer}))}},239:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PostTypeSettingsPanel=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(57),o=n(386),i=n(11),l=n(566),u=n(244),c=wp.components,s=c.PanelRow;c.BaseControl,t.PostTypeSettingsPanel=function(e){var t=e.expireTypeList[e.postType],n=(0,o.useState)(e.settings.taxonomy),c=a(n,2),m=c[0],d=c[1],p=(0,o.useState)([]),f=a(p,2),y=f[0],g=f[1],b=(0,o.useState)(!1),v=a(b,2),E=v[0],S=v[1],h=(0,o.useState)([]),_=a(h,2),T=_[0],x=_[1],N=(0,o.useState)(e.settings.howToExpire),R=a(N,2),A=R[0],C=R[1],P=(0,o.useState)(e.settings.active),w=a(P,2),O=w[0],D=w[1],F=(0,o.useState)(e.settings.defaultExpireOffset),I=a(F,2),k=I[0],j=I[1],B=(0,o.useState)(e.settings.emailNotification),M=a(B,2),L=M[0],V=M[1],H=(0,o.useState)(e.settings.autoEnabled),W=a(H,2),U=W[0],Q=W[1],Y=(0,o.useState)(!1),q=a(Y,2),X=q[0],z=q[1],G=(0,o.useState)(""),J=a(G,2),K=J[0],Z=J[1],$=(0,o.useState)(""),ee=a($,2),te=ee[0],ne=ee[1],ae=(0,o.useState)(t),re=a(ae,2),oe=re[0],ie=re[1],le=(0,o.useState)(e.settings.newStatus),ue=a(le,2),ce=ue[0],se=ue[1],me=(0,o.useState)(!1),de=a(me,2),pe=de[0],fe=de[1],ye=(0,o.useState)(""),ge=a(ye,2),be=ge[0],ve=ge[1],Ee=(0,o.useState)(),Se=a(Ee,2),he=Se[0],_e=Se[1],Te=(0,o.useRef)(new AbortController),xe=["category","category-add","category-remove","category-remove-all"];(0,o.useEffect)((function(){var t;0===e.taxonomiesList.length&&(t=oe.filter((function(e){return-1===xe.indexOf(e.value)})),ie(t))}),[]),(0,o.useEffect)((function(){m&&e.taxonomiesList&&(S(!0),(0,u.apiFetch)({path:(0,i.addQueryArgs)("publishpress-future/v1/terms/"+m)}).then((function(t){var n=[],a=null,r=void 0;t.terms.forEach((function(t){r={value:t.id,label:t.name},n.push(r),m===e.settings.taxonomy&&e.settings.terms.includes(t.id)&&(null===a&&(a=[]),a.push(r.label))})),g(n),x(a),S(!1)})),e.taxonomiesList.forEach((function(e){e.value===m&&ne(e.label)})))}),[m]),(0,o.useEffect)((function(){z(function(){if(!O)return Z(""),!0;var t=k||e.settings.globalDefaultExpireOffset;if(t){var n=Te.current;n&&n.abort(),Te.current=new AbortController;var a=Te.current.signal;fe(!0),(0,u.apiFetch)({path:(0,i.addQueryArgs)("publishpress-future/v1/settings/validate-expire-offset"),method:"POST",data:{offset:t},signal:a}).then((function(e){fe(!1),z(e.isValid),Z(e.message),e.isValid?(ve(e.preview),_e(e.currentTime)):ve("")})).catch((function(e){"AbortError"!==e.name&&(fe(!1),z(!1),Z(e.message),ve(""))}))}return Z(""),!0}())}),[O,k]),(0,o.useEffect)((function(){if(te){var e=[];t.forEach((function(t){var n=t.label;-1!==xe.indexOf(t.value)&&(n=n.replace("%s",te.toLowerCase())),e.push({value:t.value,label:n})})),ie(e)}}),[te]),(0,o.useEffect)((function(){X&&e.onDataIsValid&&e.onDataIsValid(e.postType),!X&&e.onDataIsInvalid&&e.onDataIsInvalid(e.postType)}),[X]),(0,o.useEffect)((function(){pe&&e.onValidationStarted&&e.onValidationStarted(e.postType),!pe&&e.onValidationFinished&&e.onValidationFinished(e.postType)}),[pe]);var Ne=y.map((function(e){return e.label})),Re=[React.createElement(r.SettingRow,{label:e.text.fieldActive,key:"expirationdate_activemeta-"+e.postType},React.createElement(r.CheckboxControl,{name:"expirationdate_activemeta-"+e.postType,checked:O||!1,label:e.text.fieldActiveLabel,onChange:function(e){D(e)}}))];return O&&(Re.push(React.createElement(r.SettingRow,{label:e.text.fieldAutoEnable,key:"expirationdate_autoenable-"+e.postType},React.createElement(r.CheckboxControl,{name:"expirationdate_autoenable-"+e.postType,checked:U||!1,label:e.text.fieldAutoEnableLabel,onChange:function(e){Q(e)}}))),Re.push(React.createElement(r.SettingRow,{label:e.text.fieldTaxonomy,key:"expirationdate_taxonomy-"+e.postType},React.createElement(r.SelectControl,{name:"expirationdate_taxonomy-"+e.postType,options:e.taxonomiesList,selected:m,noItemFoundMessage:e.text.noItemsfound,description:e.text.fieldTaxonomyDescription,data:e.postType,onChange:function(e){d(e)}}))),Re.push(React.createElement(r.SettingRow,{label:e.text.fieldHowToExpire,key:"expirationdate_expiretype-"+e.postType},React.createElement(r.SelectControl,{name:"expirationdate_expiretype-"+e.postType,className:"pe-howtoexpire",options:oe,description:e.text.fieldHowToExpireDescription,selected:A,onChange:function(e){C(e)}}),"change-status"===A&&React.createElement(r.SelectControl,{name:"expirationdate_newstatus-"+e.postType,options:e.statusesList,selected:ce,onChange:se}),e.taxonomiesList.length>0&&["category","category-add","category-remove"].indexOf(A)>-1&&React.createElement(r.TokensControl,{label:e.text.fieldTerm,name:"expirationdate_terms-"+e.postType,options:Ne,value:T,isLoading:E,onChange:function(e){x(e)},description:e.text.fieldTermDescription,maxSuggestions:1e3,expandOnFocus:!0,autoSelectFirstMatch:!0}))),Re.push(React.createElement(r.SettingRow,{label:e.text.fieldDefaultDateTimeOffset,key:"expired-custom-date-"+e.postType},React.createElement(r.TextControl,{name:"expired-custom-date-"+e.postType,value:k,loading:pe,placeholder:e.settings.globalDefaultExpireOffset,description:e.text.fieldDefaultDateTimeOffsetDescription,unescapedDescription:!0,onChange:function(e){j(e)}}),be&&React.createElement(o.Fragment,null,React.createElement("h4",null,e.text.datePreview),React.createElement("div",null,React.createElement("div",null,React.createElement("span",null,e.text.datePreviewCurrent,": "),React.createElement("span",null,React.createElement("code",null,he))),React.createElement("div",null,React.createElement("span",null,e.text.datePreviewComputed,": "),React.createElement("span",null,React.createElement("code",null,be))))))),Re.push(React.createElement(r.SettingRow,{label:e.text.fieldWhoToNotify,key:"expirationdate_emailnotification-"+e.postType},React.createElement(r.TextControl,{name:"expirationdate_emailnotification-"+e.postType,className:"large-text",value:L,description:e.text.fieldWhoToNotifyDescription,onChange:function(e){V(e)}})))),Re=(0,l.applyFilters)("expirationdate_settings_posttype",Re,e,O,o.useState),React.createElement(r.SettingsFieldset,{legend:e.legend},React.createElement(r.SettingsTable,{bodyChildren:Re}),!X&&React.createElement(s,null,React.createElement("div",{className:"publishpress-future-notice publishpress-future-notice-error"},React.createElement("strong",null,e.text.error,":")," ",K)))}},138:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PostTypesSettingsPanels=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(57);t.PostTypesSettingsPanels=function(e){var t=[],n=!0,o=!1,i=void 0;try{for(var l,u=Object.entries(e.settings)[Symbol.iterator]();!(n=(l=u.next()).done);n=!0){var c=l.value,s=a(c,2),m=s[0],d=s[1];t.push(React.createElement(r.PostTypeSettingsPanel,{legend:d.label,text:e.text,postType:m,settings:d,expireTypeList:e.expireTypeList,taxonomiesList:e.taxonomiesList[m],statusesList:e.statusesList[m],key:m+"-panel",onDataIsValid:e.onDataIsValid,onDataIsInvalid:e.onDataIsInvalid,onValidationStarted:e.onValidationStarted,onValidationFinished:e.onValidationFinished}))}}catch(e){o=!0,i=e}finally{try{!n&&u.return&&u.return()}finally{if(o)throw i}}return t}},858:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SelectControl=void 0;var a=n(386),r=n(214);t.SelectControl=function(e){return React.createElement(a.Fragment,null,0===e.options.length&&React.createElement("div",null,e.noItemFoundMessage),e.options.length>0&&React.createElement(r.SelectControl,{label:e.label,name:e.name,id:e.name,className:e.className,value:e.selected,onChange:function(t){e.onChange(t)},"data-data":e.data,options:e.options}),e.children,React.createElement("p",{className:"description"},e.description))}},5:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingRow=void 0,n(386),t.SettingRow=function(e){return React.createElement("tr",{valign:"top"},React.createElement("th",{scope:"row"},React.createElement("label",{htmlFor:""},e.label)),React.createElement("td",null,e.children))}},786:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsFieldset=function(e){return React.createElement("fieldset",null,React.createElement("legend",null,e.legend),e.children)}},892:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsForm=function(e){return React.createElement("form",{method:"post"},e.children)}},681:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsSection=void 0;var a=n(386);t.SettingsSection=function(e){return React.createElement(a.Fragment,null,React.createElement("h2",null,e.title),React.createElement("p",null,e.description),e.children)}},772:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsTable=function(e){return React.createElement("table",{className:"form-table"},React.createElement("tbody",null,e.bodyChildren))}},242:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Spinner=function(e){return React.createElement("span",{className:"publishpress-future-spinner"},React.createElement("div",null),React.createElement("div",null),React.createElement("div",null),React.createElement("div",null))}},438:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SubmitButton=function(e){return React.createElement("input",{type:"submit",name:e.name,value:e.text,disabled:e.disabled,className:"button-primary"})}},301:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TextControl=void 0;var a=n(386),r=n(214),o=n(57);t.TextControl=function(e){var t;t=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description);var n=e.className?e.className:"";return e.loading&&(n+=" publishpress-future-loading publishpress-future-loading-input"),React.createElement(a.Fragment,null,React.createElement("div",{className:n},React.createElement(r.TextControl,{type:"text",label:e.label,name:e.name,id:e.name,className:e.className,value:e.value,placeholder:e.placeholder,onChange:function(t){e.onChange&&e.onChange(t)}}),e.loading&&React.createElement(o.Spinner,null),t))}},190:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ToggleArrowButton=void 0;var a=n(214);t.ToggleArrowButton=function(e){var t=e.iconExpanded?e.iconExpanded:"arrow-up-alt2",n=e.iconCollapsed?e.iconCollapsed:"arrow-down-alt2",r=e.isExpanded?t:n,o=e.isExpanded?e.titleExpanded:e.titleCollapsed;return React.createElement(a.Button,{isSmall:!0,title:o,icon:r,onClick:function(){e.onClick&&e.onClick()},className:e.className})}},873:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ToggleCalendarDatePicker=void 0;var a=n(190),r=n(620),o=n(386);t.ToggleCalendarDatePicker=function(e){var t=e.isExpanded,n=e.strings,i=e.onToggleCalendar,l=e.currentDate,u=e.onChangeDate,c=e.is12Hour,s=e.startOfWeek;return(0,o.useEffect)((function(){var e=document.querySelector(".future-action-calendar-toggle");if(e){var t=e.nextElementSibling;if(t){var n=t.querySelector(".components-datetime__time");if(n){var a=n.nextSibling;a&&t.insertBefore(e,a)}}}})),React.createElement(o.Fragment,null,React.createElement(a.ToggleArrowButton,{className:"future-action-calendar-toggle",isExpanded:t,iconExpanded:"arrow-up-alt2",iconCollapsed:"calendar",titleExpanded:n.hideCalendar,titleCollapsed:n.showCalendar,onClick:i}),React.createElement(r.DateTimePicker,{currentDate:l,onChange:u,__nextRemoveHelpButton:!0,is12Hour:c,startOfWeek:s}))}},948:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TokensControl=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(386),o=n(214);t.TokensControl=function(e){var t=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,r.useState)(""),2),n=t[0],i=t[1];(0,r.useEffect)((function(){e.value&&i(e.value.join(","))}),[e.value]);var l=void 0;e.description&&(l=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description));var u=e.value?e.value:[];return React.createElement(r.Fragment,null,React.createElement(o.FormTokenField,{label:e.label,value:u,suggestions:e.options,onChange:function(t){e.onChange&&e.onChange(t),"object"===(void 0===t?"undefined":a(t))?i(t.join(",")):i("")},maxSuggestions:e.maxSuggestions,className:"publishpres-future-token-field",__experimentalExpandOnFocus:e.expandOnFocus,__experimentalAutoSelectFirstMatch:e.autoSelectFirstMatch}),React.createElement("input",{type:"hidden",name:e.name,value:n}),l)}},225:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TrueFalseControl=function(e){var t=wp.element.Fragment,n=function(t){e.onChange&&e.onChange(t.target.value===e.trueValue&&jQuery(t.target).is(":checked"))};return React.createElement(t,null,React.createElement("input",{type:"radio",name:e.name,id:e.name+"-true",value:e.trueValue,defaultChecked:e.selected,onChange:n}),React.createElement("label",{htmlFor:e.name+"-true"},e.trueLabel),"  ",React.createElement("input",{type:"radio",name:e.name,defaultChecked:!e.selected,id:e.name+"-false",value:e.falseValue,onChange:n}),React.createElement("label",{htmlFor:e.name+"-false"},e.falseLabel),React.createElement("p",{className:"description"},e.description))}},57:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var a=n(442);Object.defineProperty(t,"ButtonsPanel",{enumerable:!0,get:function(){return a.ButtonsPanel}});var r=n(418);Object.defineProperty(t,"FutureActionPanel",{enumerable:!0,get:function(){return r.FutureActionPanel}});var o=n(864);Object.defineProperty(t,"FutureActionPanelBlockEditor",{enumerable:!0,get:function(){return o.FutureActionPanelBlockEditor}});var i=n(571);Object.defineProperty(t,"FutureActionPanelClassicEditor",{enumerable:!0,get:function(){return i.FutureActionPanelClassicEditor}});var l=n(437);Object.defineProperty(t,"FutureActionPanelQuickEdit",{enumerable:!0,get:function(){return l.FutureActionPanelQuickEdit}});var u=n(94);Object.defineProperty(t,"FutureActionPanelBulkEdit",{enumerable:!0,get:function(){return u.FutureActionPanelBulkEdit}});var c=n(239);Object.defineProperty(t,"PostTypeSettingsPanel",{enumerable:!0,get:function(){return c.PostTypeSettingsPanel}});var s=n(138);Object.defineProperty(t,"PostTypesSettingsPanels",{enumerable:!0,get:function(){return s.PostTypesSettingsPanels}});var m=n(5);Object.defineProperty(t,"SettingRow",{enumerable:!0,get:function(){return m.SettingRow}});var d=n(786);Object.defineProperty(t,"SettingsFieldset",{enumerable:!0,get:function(){return d.SettingsFieldset}});var p=n(892);Object.defineProperty(t,"SettingsForm",{enumerable:!0,get:function(){return p.SettingsForm}});var f=n(681);Object.defineProperty(t,"SettingsSection",{enumerable:!0,get:function(){return f.SettingsSection}});var y=n(772);Object.defineProperty(t,"SettingsTable",{enumerable:!0,get:function(){return y.SettingsTable}});var g=n(438);Object.defineProperty(t,"SubmitButton",{enumerable:!0,get:function(){return g.SubmitButton}});var b=n(311);Object.defineProperty(t,"CheckboxControl",{enumerable:!0,get:function(){return b.CheckboxControl}});var v=n(858);Object.defineProperty(t,"SelectControl",{enumerable:!0,get:function(){return v.SelectControl}});var E=n(301);Object.defineProperty(t,"TextControl",{enumerable:!0,get:function(){return E.TextControl}});var S=n(948);Object.defineProperty(t,"TokensControl",{enumerable:!0,get:function(){return S.TokensControl}});var h=n(13);Object.defineProperty(t,"NonceControl",{enumerable:!0,get:function(){return h.NonceControl}});var _=n(225);Object.defineProperty(t,"TrueFalseControl",{enumerable:!0,get:function(){return _.TrueFalseControl}});var T=n(242);Object.defineProperty(t,"Spinner",{enumerable:!0,get:function(){return T.Spinner}})},480:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createStore=void 0;var a=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:t,u=arguments[1];switch(u.type){case"SET_ACTION":return a({},l,{action:u.action});case"SET_NEW_STATUS":return a({},l,{newStatus:u.newStatus});case"SET_DATE":return"number"!=typeof u.date&&(0,o.isNumber)(u.date)&&(u.date=parseInt(u.date)),"string"==typeof u.date&&(u.date=new Date(u.date).getTime()),u.date=(0,r.normalizeUnixTimeToSeconds)(u.date),u.date=(0,r.formatUnixTimeToTimestamp)(u.date),a({},l,{date:u.date});case"SET_ENABLED":return a({},l,{enabled:u.enabled});case"SET_TERMS":return a({},l,{terms:u.terms});case"SET_TAXONOMY":return a({},l,{taxonomy:u.taxonomy});case"SET_TERMS_LIST_BY_NAME":return a({},l,{termsListByName:u.termsListByName});case"SET_TERMS_LIST_BY_ID":return a({},l,{termsListById:u.termsListById});case"SET_TAXONOMY_NAME":return a({},l,{taxonomyName:u.taxonomyName});case"SET_CHANGE_ACTION":return a({},l,{changeAction:u.changeAction});case"SET_CALENDAR_IS_VISIBLE":return a({},l,{calendarIsVisible:u.calendarIsVisible});case"SET_HAS_VALID_DATA":return a({},l,{hasValidData:u.hasValidData});case"SET_EXTRA_DATA":return a({},l,{extraData:a({},u.extraData)});case"SET_EXTRA_DATA_BY_NAME":var c=a({},l.extraData,(e={},n=u.name,i=u.value,n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i,e));return a({},l,{extraData:a({},c)})}return l},actions:{setAction:function(e){return{type:"SET_ACTION",action:e}},setNewStatus:function(e){return{type:"SET_NEW_STATUS",newStatus:e}},setDate:function(e){return{type:"SET_DATE",date:e}},setEnabled:function(e){return{type:"SET_ENABLED",enabled:e}},setTerms:function(e){return{type:"SET_TERMS",terms:e}},setTaxonomy:function(e){return{type:"SET_TAXONOMY",taxonomy:e}},setTermsListByName:function(e){return{type:"SET_TERMS_LIST_BY_NAME",termsListByName:e}},setTermsListById:function(e){return{type:"SET_TERMS_LIST_BY_ID",termsListById:e}},setTaxonomyName:function(e){return{type:"SET_TAXONOMY_NAME",taxonomyName:e}},setIsFetchingTerms:function(e){return{type:"SET_IS_FETCHING_TERMS",isFetchingTerms:e}},setChangeAction:function(e){return{type:"SET_CHANGE_ACTION",changeAction:e}},setCalendarIsVisible:function(e){return{type:"SET_CALENDAR_IS_VISIBLE",calendarIsVisible:e}},setHasValidData:function(e){return{type:"SET_HAS_VALID_DATA",hasValidData:e}},setExtraData:function(e){return{type:"SET_EXTRA_DATA",extraData:e}},setExtraDataByName:function(e,t){return{type:"SET_EXTRA_DATA_BY_NAME",name:e,value:t}}},selectors:{getAction:function(e){return e.action},getNewStatus:function(e){return e.newStatus},getDate:function(e){return e.date},getEnabled:function(e){return e.enabled},getTerms:function(e){return e.terms},getTaxonomy:function(e){return e.taxonomy},getTermsListByName:function(e){return e.termsListByName},getTermsListById:function(e){return e.termsListById},getTaxonomyName:function(e){return e.taxonomyName},getIsFetchingTerms:function(e){return e.isFetchingTerms},getChangeAction:function(e){return e.changeAction},getCalendarIsVisible:function(e){return e.calendarIsVisible},getHasValidData:function(e){return e.hasValidData},getExtraData:function(e){return e.extraData},getExtraDataByName:function(e,t){return e.extraData[t]||null}}});return(0,i.register)(n),n}},39:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n=t.getCurrentTimeInSeconds=function(){return o((new Date).getTime())},a=(t.getCurrentTimeAsTimestamp=function(){return a(n())},t.formatUnixTimeToTimestamp=function(e){var t=new Date(o(e));return t.getFullYear()+"-"+("0"+(t.getMonth()+1)).slice(-2)+"-"+("0"+t.getDate()).slice(-2)+" "+("0"+t.getHours()).slice(-2)+":"+("0"+t.getMinutes()).slice(-2)+":"+("0"+t.getSeconds()).slice(-2)}),r=(t.formatTimestampToUnixTime=function(e){var t=new Date(e);return o(t.getTime())},t.timeIsInSeconds=function(e){return parseInt(e).toString().length<=10}),o=t.normalizeUnixTimeToSeconds=function(e){return e=parseInt(e),r()?e:e/1e3};t.normalizeUnixTimeToMilliseconds=function(e){return e=parseInt(e),r()?1e3*e:e}},409:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=(t.compact=function(e){return e?(Array.isArray(e)||"object"!==(void 0===e?"undefined":n(e))||(e=Object.values(e)),e.filter((function(e){return null!=e&&""!==e}))):[]},t.debugLogFactory=function(e){return function(t){for(var n=arguments.length,a=Array(n>1?n-1:0),r=1;r{e.exports=ReactDOM},477:e=>{e.exports=publishpressFutureClassicEditorConfig},244:e=>{e.exports=wp},214:e=>{e.exports=wp.components},562:e=>{e.exports=wp.data},386:e=>{e.exports=wp.element},566:e=>{e.exports=wp.hooks},986:e=>{e.exports=wp.plugins},11:e=>{e.exports=wp.url}},t={};function n(a){var r=t[a];if(void 0!==r)return r.exports;var o=t[a]={exports:{}};return e[a](o,o.exports,n),o.exports}var a=n(57),r=n(480),o=n(409),i=n(386),l=n(562),u=n(477);if(n(206),!(0,o.isGutenbergEnabled)()){var c="publishpress-future/future-action";(0,l.select)(c)||(0,r.createStore)({name:c,defaultState:{autoEnable:u.postTypeDefaultConfig.autoEnable,action:u.postTypeDefaultConfig.expireType,newStatus:u.postTypeDefaultConfig.newStatus,date:u.defaultDate,taxonomy:u.postTypeDefaultConfig.taxonomy,terms:u.postTypeDefaultConfig.terms}});var s=document.getElementById("publishpress-future-classic-editor"),m=React.createElement(a.FutureActionPanelClassicEditor,{storeName:c,postType:u.postType,isNewPost:u.isNewPost,actionsSelectOptions:u.actionsSelectOptions,statusesSelectOptions:u.statusesSelectOptions,is12Hour:u.is12Hour,timeFormat:u.timeFormat,startOfWeek:u.startOfWeek,strings:u.strings,taxonomyName:u.taxonomyName});(0,i.createRoot)(s).render(m)}})(); +(()=>{"use strict";var e={5442:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ButtonsPanel=function(e){return React.createElement("div",null,e.children)}},4311:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CheckboxControl=void 0;var a=n(1386),r=n(2214);t.CheckboxControl=function(e){var t,n=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,a.useState)(e.checked||!1),2),o=n[0],i=n[1];return t=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description),React.createElement(a.Fragment,null,React.createElement(r.CheckboxControl,{label:e.label,name:e.name,id:e.name,className:e.className,checked:o||!1,onChange:function(t){i(t),e.onChange&&e.onChange(t)}}),t)}},5470:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DateOffsetPreview=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(1386),o=n(4011),i=n(3244);n(9922);var l=t.DateOffsetPreview=function(e){var t=e.offset,n=e.label,l=e.labelDatePreview,s=e.labelOffsetPreview,u=e.setValidationErrorCallback,c=e.setHasPendingValidationCallback,d=e.setHasValidDataCallback,m=e.compactView,p=void 0!==m&&m,f=(0,r.useState)(""),y=a(f,2),g=y[0],v=y[1],b=(0,r.useState)(),h=a(b,2),E=h[0],S=h[1],_=(0,r.useRef)(new AbortController);(0,r.useEffect)((function(){!function(){if(t){var e=_.current;e&&e.abort(),_.current=new AbortController;var n=_.current.signal;c(!0),(0,i.apiFetch)({path:(0,o.addQueryArgs)("publishpress-future/v1/settings/validate-expire-offset"),method:"POST",data:{offset:t},signal:n}).then((function(e){c(!1),d(e.isValid),u(e.message),e.isValid?(v(e.preview),S(e.currentTime)):v("")})).catch((function(e){"AbortError"!==e.name&&(c(!1),d(!1),u(e.message),v(""))}))}}()}),[t]);var x=p?" compact":"";return React.createElement(r.Fragment,null,t&&React.createElement("div",{className:"publishpress-future-date-preview"+x},React.createElement("h4",null,n),React.createElement("div",{className:"publishpress-future-date-preview-body"},React.createElement("div",null,React.createElement("span",{className:"publishpress-future-date-preview-label"},l,": "),React.createElement("span",{className:"publishpress-future-date-preview-value"},E)),React.createElement("div",null,React.createElement("span",{className:"publishpress-future-date-preview-label"},s,": "),React.createElement("span",{className:"publishpress-future-date-preview-value"},g)))))};t.default=l},4620:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DateTimePicker=void 0;var a=n(7039),r=n(2214);t.DateTimePicker=function(e){var t=e.currentDate,n=e.onChange,o=e.is12Hour,i=e.startOfWeek;return"number"==typeof t&&(t=(0,a.normalizeUnixTimeToMilliseconds)(t)),React.createElement(r.DateTimePicker,{currentDate:t,onChange:n,__nextRemoveHelpButton:!0,is12Hour:o,startOfWeek:i})}},8418:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanel=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},o=n(8409),i=n(4873),l=n(9986),s=n(2214),u=n(1442),c=n(6625),d=wp.components,m=d.PanelRow,p=d.CheckboxControl,f=d.SelectControl,y=d.FormTokenField,g=d.Spinner,v=d.BaseControl,b=wp.element,h=b.Fragment,E=b.useEffect,S=b.useState,_=wp.htmlEntities.decodeEntities,x=wp.url.addQueryArgs,T=wp.data,A=T.useSelect,N=T.useDispatch,C=wp.apiFetch;t.FutureActionPanel=function(e){var t=A((function(t){return{action:t(e.storeName).getAction(),date:t(e.storeName).getDate(),enabled:t(e.storeName).getEnabled(),terms:t(e.storeName).getTerms(),taxonomy:t(e.storeName).getTaxonomy(),taxonomyName:t(e.storeName).getTaxonomyName(),termsListByName:t(e.storeName).getTermsListByName(),termsListById:t(e.storeName).getTermsListById(),isFetchingTerms:t(e.storeName).getIsFetchingTerms(),calendarIsVisible:t(e.storeName).getCalendarIsVisible(),hasValidData:t(e.storeName).getHasValidData(),newStatus:t(e.storeName).getNewStatus()}})),n=t.action,d=t.date,b=t.enabled,T=t.terms,R=t.taxonomy,w=t.taxonomyName,P=t.termsListByName,O=t.termsListById,D=t.isFetchingTerms,I=t.calendarIsVisible,k=t.hasValidData,F=t.newStatus,B=S(""),j=r(B,2),M=j[0],V=j[1],L=N(e.storeName),H=L.setAction,U=L.setDate,W=L.setEnabled,Q=L.setTerms,Y=L.setTaxonomy,q=L.setTermsListByName,z=L.setTermsListById,X=L.setTaxonomyName,G=L.setIsFetchingTerms,J=L.setCalendarIsVisible,Z=L.setHasValidData,K=L.setNewStatus,$=function(e){P[e]={id:e,count:0,description:"",link:"",name:e,slug:e,taxonomy:R},O[e]=e,q(P),z(O),Q([].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0&&O&&(re=(0,o.compact)(function(e){return"object"!==(void 0===e?"undefined":a(e))||null===e?{}:e.map((function(e){return O[e]}))}(T)),"string"==typeof re&&(re=[]));var oe=[];"object"===(void 0===P?"undefined":a(P))&&null!==P&&(oe=Object.keys(P));var ie,le=I?"future-action-panel":"future-action-panel hidden-calendar",se=I?"future-action-panel-content":"future-action-panel-content hidden-calendar",ue=I?"future-action-date-panel":"future-action-date-panel hidden-calendar";ie="inherited"===e.timeFormat?!e.is12Hour:"24h"===e.timeFormat;var ce=e.actionsSelectOptions;e.taxonomy||(ce=e.actionsSelectOptions.filter((function(e){return-1===["category","category-add","category-remove","category-remove-all"].indexOf(e.value)})));var de=function(e,t,n){var a=e.split("{"),o=[];o.push(a.shift());var i=!0,l=!1,s=void 0;try{for(var u,c=a[Symbol.iterator]();!(i=(u=c.next()).done);i=!0){var d=u.value.split("}"),m=r(d,2),p=m[0],f=m[1];o.push(React.createElement("a",{href:t,target:"_blank",key:t},p)),o.push(f)}}catch(e){l=!0,s=e}finally{try{!i&&c.return&&c.return()}finally{if(l)throw s}}return o}(e.strings.timezoneSettingsHelp,"/wp-admin/options-general.php#timezone_string"),me=String(n).includes("category")&&"category-remove-all"!==n,pe=w;switch(n){case"category":pe=e.strings.newTerms.replace("%s",w);break;case"category-remove":pe=e.strings.removeTerms.replace("%s",w);break;case"category-add":pe=e.strings.addTerms.replace("%s",w)}return E((function(){if(!b)return Z(!0),void V("");Z(function(){var t=!0;if(!b)return V(""),!0;n||(V(e.strings.errorActionRequired),t=!1),d||(V(e.strings.errorDateRequired),t=!1),d&&new Date(d){Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelAfterActionField=void 0;var a=Object.assign||function(e){for(var t=1;t{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelBlockEditor=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(2057);t.FutureActionPanelBlockEditor=function(e){var t=wp.editPost.PluginDocumentSettingPanel,n=wp.data,o=n.useDispatch,i=n.select,l=o("core/editor").editPost,s=i("core/editor").getEditedPostAttribute("publishpress_future_action"),u=o("core/editor"),c=u.lockPostSaving,d=u.unlockPostSaving;return React.createElement(t,{name:"publishpress-future-action-panel",title:e.strings.panelTitle,initialOpen:e.postTypeDefaultConfig.autoEnable,className:"post-expirator-panel"},React.createElement("div",{id:"publishpress-future-block-editor"},React.createElement(r.FutureActionPanel,{context:"block-editor",postType:e.postType,isCleanNewPost:e.isCleanNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:s.enabled,calendarIsVisible:!0,action:s.action,newStatus:s.newStatus,date:s.date,terms:s.terms,taxonomy:s.taxonomy,taxonomyName:e.taxonomyName,onChangeData:function(t,n){var r=i(e.storeName),o={enabled:r.getEnabled()};o.enabled&&(o.action=r.getAction(),o.newStatus=r.getNewStatus(),o.date=r.getDate(),o.terms=r.getTerms(),o.taxonomy=r.getTaxonomy(),o.extraData=r.getExtraData()),function(e){var t={publishpress_future_action:{}},n=!0,r=!1,o=void 0;try{for(var i,s=Object.entries(e)[Symbol.iterator]();!(n=(i=s.next()).done);n=!0){var u=i.value,c=a(u,2),d=c[0],m=c[1];t.publishpress_future_action[d]=m}}catch(e){r=!0,o=e}finally{try{!n&&s.return&&s.return()}finally{if(r)throw o}}l(t)}(o)},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){d("future-action")},hideCalendarByDefault:e.hideCalendarByDefault,onDataIsInvalid:function(){c("future-action")}})))}},2094:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelBulkEdit=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(2057),o=n(8409);t.FutureActionPanelBulkEdit=function(e){var t=wp.data,n=t.useSelect,i=t.useDispatch,l=t.select,s=wp.element.useEffect,u=n((function(t){return t(e.storeName).getDate()}),[]),c=n((function(t){return t(e.storeName).getEnabled()}),[]),d=n((function(t){return t(e.storeName).getAction()}),[]),m=n((function(t){return t(e.storeName).getNewStatus()}),[]),p=n((function(t){return t(e.storeName).getTerms()}),[]),f=n((function(t){return t(e.storeName).getTaxonomy()}),[]),y=n((function(t){return t(e.storeName).getChangeAction()}),[]),g=n((function(t){return t(e.storeName).getHasValidData()}),[]),v=i(e.storeName).setChangeAction,b=p;"object"===(void 0===p?"undefined":a(p))&&(b=p.join(","));var h=[{value:"no-change",label:e.strings.noChange},{value:"change-add",label:e.strings.changeAdd},{value:"add-only",label:e.strings.addOnly},{value:"change-only",label:e.strings.changeOnly},{value:"remove-only",label:e.strings.removeOnly}];return s((function(){g||"no-change"===y?jQuery("#bulk_edit").prop("disabled",!1):jQuery("#bulk_edit").prop("disabled",!0)}),[g,y]),React.createElement("div",{className:"post-expirator-panel"},React.createElement(r.SelectControl,{label:e.strings.futureActionUpdate,name:"future_action_bulk_change_action",value:y,options:h,onChange:function(e){v(e)}}),["change-add","add-only","change-only"].includes(y)&&React.createElement(r.FutureActionPanel,{context:"bulk-edit",autoEnableAndHideCheckbox:!0,postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:!0,calendarIsVisible:!1,action:d,newStatus:m,date:u,terms:p,taxonomy:f,taxonomyName:e.taxonomyName,onChangeData:function(t,n){(0,o.getElementByName)("future_action_bulk_enabled").value=l(e.storeName).getEnabled()?1:0,(0,o.getElementByName)("future_action_bulk_action").value=l(e.storeName).getAction(),(0,o.getElementByName)("future_action_bulk_new_status").value=l(e.storeName).getNewStatus(),(0,o.getElementByName)("future_action_bulk_date").value=l(e.storeName).getDate(),(0,o.getElementByName)("future_action_bulk_terms").value=l(e.storeName).getTerms().join(","),(0,o.getElementByName)("future_action_bulk_taxonomy").value=l(e.storeName).getTaxonomy()},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,hideCalendarByDefault:e.hideCalendarByDefault,strings:e.strings}),React.createElement("input",{type:"hidden",name:"future_action_bulk_enabled",value:c?1:0}),React.createElement("input",{type:"hidden",name:"future_action_bulk_action",value:d}),React.createElement("input",{type:"hidden",name:"future_action_bulk_new_status",value:m}),React.createElement("input",{type:"hidden",name:"future_action_bulk_date",value:u}),React.createElement("input",{type:"hidden",name:"future_action_bulk_terms",value:b}),React.createElement("input",{type:"hidden",name:"future_action_bulk_taxonomy",value:f}),React.createElement("input",{type:"hidden",name:"future_action_bulk_view",value:"bulk-edit"}),React.createElement("input",{type:"hidden",name:"_future_action_nonce",value:e.nonce}))}},3571:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelClassicEditor=void 0;var a=n(2057),r=n(7562);n(1386),t.FutureActionPanelClassicEditor=function(e){(new Date).getTimezoneOffset();var t=function(e){return document.getElementsByName(e)[0]},n=function(e){var n=t(e);return n?n.value:""},o={enabled:"1"===n("future_action_enabled"),action:n("future_action_action"),newStatus:n("future_action_new_status"),date:n("future_action_date"),terms:function(e){var n=t("future_action_terms");if(!n)return[];var a=n.value.split(",");return 1===a.length&&""===a[0]&&(a=[]),a.map((function(e){return parseInt(e)}))}(),taxonomy:n("future_action_taxonomy")};return React.createElement("div",{className:"post-expirator-panel"},React.createElement(a.FutureActionPanel,{context:"classic-editor",postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:o.enabled,calendarIsVisible:!0,action:o.action,newStatus:o.newStatus,date:o.date,terms:o.terms,taxonomy:o.taxonomy,taxonomyName:e.taxonomyName,onChangeData:function(n,a){var o=(0,r.select)(e.storeName);t("future_action_enabled").value=o.getEnabled()?1:0,t("future_action_action").value=o.getAction(),t("future_action_new_status").value=o.getNewStatus(),t("future_action_date").value=o.getDate(),t("future_action_terms").value=o.getTerms().join(","),t("future_action_taxonomy").value=o.getTaxonomy()},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){jQuery("#publish").prop("disabled",!1)},hideCalendarByDefault:e.hideCalendarByDefault,onDataIsInvalid:function(){jQuery("#publish").prop("disabled",!0)}}))}},5437:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelQuickEdit=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(2057),o=n(7562);n(1386),t.FutureActionPanelQuickEdit=function(e){var t=(0,o.useSelect)((function(t){return t(e.storeName).getDate()}),[]),n=(0,o.useSelect)((function(t){return t(e.storeName).getEnabled()}),[]),i=(0,o.useSelect)((function(t){return t(e.storeName).getAction()}),[]),l=(0,o.useSelect)((function(t){return t(e.storeName).getTerms()}),[]),s=(0,o.useSelect)((function(t){return t(e.storeName).getTaxonomy()}),[]),u=((0,o.useSelect)((function(t){return t(e.storeName).getHasValidData()}),[]),(0,o.useSelect)((function(t){return t(e.storeName).getNewStatus()}),[])),c=l;return"object"===(void 0===l?"undefined":a(l))&&(c=l.join(",")),React.createElement("div",{className:"post-expirator-panel"},React.createElement(r.FutureActionPanel,{context:"quick-edit",postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:n,calendarIsVisible:!1,action:i,newStatus:u,date:t,terms:l,taxonomy:s,taxonomyName:e.taxonomyName,onChangeData:function(e,t){},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){jQuery(".button-primary.save").prop("disabled",!1)},hideCalendarByDefault:e.hideCalendarByDefault,onDataIsInvalid:function(){jQuery(".button-primary.save").prop("disabled",!0)}}),React.createElement("input",{type:"hidden",name:"future_action_enabled",value:n?1:0}),React.createElement("input",{type:"hidden",name:"future_action_action",value:i||""}),React.createElement("input",{type:"hidden",name:"future_action_new_status",value:u||""}),React.createElement("input",{type:"hidden",name:"future_action_date",value:t||""}),React.createElement("input",{type:"hidden",name:"future_action_terms",value:c||""}),React.createElement("input",{type:"hidden",name:"future_action_taxonomy",value:s||""}),React.createElement("input",{type:"hidden",name:"future_action_view",value:"quick-edit"}),React.createElement("input",{type:"hidden",name:"_future_action_nonce",value:e.nonce}))}},6625:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelTop=void 0;var a=Object.assign||function(e){for(var t=1;t{Object.defineProperty(t,"__esModule",{value:!0}),t.NonceControl=void 0;var a=n(1386);t.NonceControl=function(e){return e.name||(e.name="_wpnonce"),e.referrer||(e.referrer=!0),React.createElement(a.Fragment,null,React.createElement("input",{type:"hidden",name:e.name,id:e.name,value:e.nonce}),e.referrer&&React.createElement("input",{type:"hidden",name:"_wp_http_referer",value:e.referrer}))}},1620:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PostTypeSettingsPanel=void 0;var a,r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},o=n(2057),i=n(1386),l=n(4011),s=n(8566),u=n(3244),c=(a=n(5470))&&a.__esModule?a:{default:a},d=wp.components.PanelRow;t.PostTypeSettingsPanel=function(e){var t=e.expireTypeList[e.postType],n=(0,i.useState)(e.settings.taxonomy),a=r(n,2),m=a[0],p=a[1],f=(0,i.useState)([]),y=r(f,2),g=y[0],v=y[1],b=(0,i.useState)(!1),h=r(b,2),E=h[0],S=h[1],_=(0,i.useState)([]),x=r(_,2),T=x[0],A=x[1],N=(0,i.useState)(e.settings.howToExpire),C=r(N,2),R=C[0],w=C[1],P=(0,i.useState)(e.settings.active),O=r(P,2),D=O[0],I=O[1],k=(0,i.useState)(e.settings.defaultExpireOffset),F=r(k,2),B=F[0],j=F[1],M=(0,i.useState)(e.settings.emailNotification),V=r(M,2),L=V[0],H=V[1],U=(0,i.useState)(e.settings.autoEnabled),W=r(U,2),Q=W[0],Y=W[1],q=(0,i.useState)(!0),z=r(q,2),X=z[0],G=z[1],J=(0,i.useState)(""),Z=r(J,2),K=Z[0],$=Z[1],ee=(0,i.useState)(""),te=r(ee,2),ne=te[0],ae=te[1],re=(0,i.useState)(t),oe=r(re,2),ie=oe[0],le=oe[1],se=(0,i.useState)(e.settings.newStatus),ue=r(se,2),ce=ue[0],de=ue[1],me=(0,i.useState)(!1),pe=r(me,2),fe=pe[0],ye=pe[1],ge=B||e.settings.globalDefaultExpireOffset,ve=["category","category-add","category-remove","category-remove-all"];(0,i.useEffect)((function(){var t;0===e.taxonomiesList.length&&(t=ie.filter((function(e){return-1===ve.indexOf(e.value)})),le(t))}),[]),(0,i.useEffect)((function(){m&&e.taxonomiesList&&(S(!0),(0,u.apiFetch)({path:(0,l.addQueryArgs)("publishpress-future/v1/terms/"+m)}).then((function(t){var n=[],a=null,r=void 0;t.terms.forEach((function(t){r={value:t.id,label:t.name},n.push(r),m===e.settings.taxonomy&&e.settings.terms.includes(t.id)&&(null===a&&(a=[]),a.push(r.label))})),v(n),A(a),S(!1)})),e.taxonomiesList.forEach((function(e){e.value===m&&ae(e.label)})))}),[m]),(0,i.useEffect)((function(){if(ne){var e=[];t.forEach((function(t){var n=t.label;-1!==ve.indexOf(t.value)&&(n=n.replace("%s",ne.toLowerCase())),e.push({value:t.value,label:n})})),le(e)}}),[ne]),(0,i.useEffect)((function(){X&&e.onDataIsValid&&e.onDataIsValid(e.postType),!X&&e.onDataIsInvalid&&e.onDataIsInvalid(e.postType)}),[X]),(0,i.useEffect)((function(){fe&&e.onValidationStarted&&e.onValidationStarted(e.postType),!fe&&e.onValidationFinished&&e.onValidationFinished(e.postType)}),[fe]);var be=g.map((function(e){return e.label})),he=[React.createElement(o.SettingRow,{label:e.text.fieldActive,key:"expirationdate_activemeta-"+e.postType},React.createElement(o.CheckboxControl,{name:"expirationdate_activemeta-"+e.postType,checked:D||!1,label:e.text.fieldActiveLabel,onChange:function(e){I(e)}}))];D&&(he.push(React.createElement(o.SettingRow,{label:e.text.fieldAutoEnable,key:"expirationdate_autoenable-"+e.postType},React.createElement(o.CheckboxControl,{name:"expirationdate_autoenable-"+e.postType,checked:Q||!1,label:e.text.fieldAutoEnableLabel,onChange:function(e){Y(e)}}))),he.push(React.createElement(o.SettingRow,{label:e.text.fieldTaxonomy,key:"expirationdate_taxonomy-"+e.postType},React.createElement(o.SelectControl,{name:"expirationdate_taxonomy-"+e.postType,options:e.taxonomiesList,selected:m,noItemFoundMessage:e.text.noItemsfound,description:e.text.fieldTaxonomyDescription,data:e.postType,onChange:function(e){p(e)}}))),he.push(React.createElement(o.SettingRow,{label:e.text.fieldHowToExpire,key:"expirationdate_expiretype-"+e.postType},React.createElement(o.SelectControl,{name:"expirationdate_expiretype-"+e.postType,className:"pe-howtoexpire",options:ie,description:e.text.fieldHowToExpireDescription,selected:R,onChange:function(e){w(e)}}),"change-status"===R&&React.createElement(o.SelectControl,{name:"expirationdate_newstatus-"+e.postType,options:e.statusesList,selected:ce,onChange:de}),e.taxonomiesList.length>0&&["category","category-add","category-remove"].indexOf(R)>-1&&React.createElement(o.TokensControl,{label:e.text.fieldTerm,name:"expirationdate_terms-"+e.postType,options:be,value:T,isLoading:E,onChange:function(e){A(e)},description:e.text.fieldTermDescription,maxSuggestions:1e3,expandOnFocus:!0,autoSelectFirstMatch:!0}))),he.push(React.createElement(o.SettingRow,{label:e.text.fieldDefaultDateTimeOffset,key:"expired-custom-date-"+e.postType},React.createElement(o.TextControl,{name:"expired-custom-date-"+e.postType,value:B,loading:fe,placeholder:e.settings.globalDefaultExpireOffset,description:e.text.fieldDefaultDateTimeOffsetDescription,unescapedDescription:!0,onChange:function(e){j(e)}}),React.createElement(c.default,{offset:ge,label:e.text.datePreview,labelDatePreview:e.text.datePreviewCurrent,labelOffsetPreview:e.text.datePreviewComputed,setValidationErrorCallback:$,setHasPendingValidationCallback:ye,setHasValidDataCallback:G}))),he.push(React.createElement(o.SettingRow,{label:e.text.fieldWhoToNotify,key:"expirationdate_emailnotification-"+e.postType},React.createElement(o.TextControl,{name:"expirationdate_emailnotification-"+e.postType,className:"large-text",value:L,description:e.text.fieldWhoToNotifyDescription,onChange:function(e){H(e)}})))),he=(0,s.applyFilters)("expirationdate_settings_posttype",he,e,D,i.useState);var Ee=e.isVisible?"pe-settings-fieldset":"pe-settings-fieldset hidden";return React.createElement("div",{className:Ee},React.createElement(o.SettingsTable,{bodyChildren:he}),!X&&React.createElement(d,null,React.createElement("div",{className:"publishpress-future-notice publishpress-future-notice-error"},React.createElement("strong",null,e.text.error,":")," ",K)))}},8138:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PostTypesSettingsPanels=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(2057),o=n(1386);t.PostTypesSettingsPanels=function(e){var t=(0,o.useState)(Object.keys(e.settings)[0]),n=a(t,2),i=n[0],l=n[1],s=[],u=!0,c=!1,d=void 0;try{for(var m,p=Object.entries(e.settings)[Symbol.iterator]();!(u=(m=p.next()).done);u=!0){var f=m.value,y=a(f,2),g=y[0],v=y[1];s.push(React.createElement(r.PostTypeSettingsPanel,{legend:v.label,text:e.text,postType:g,settings:v,expireTypeList:e.expireTypeList,taxonomiesList:e.taxonomiesList[g],statusesList:e.statusesList[g],key:g+"-panel",onDataIsValid:e.onDataIsValid,onDataIsInvalid:e.onDataIsInvalid,onValidationStarted:e.onValidationStarted,onValidationFinished:e.onValidationFinished,isVisible:i===g}))}}catch(e){c=!0,d=e}finally{try{!u&&p.return&&p.return()}finally{if(c)throw d}}var b=function(e){e.preventDefault(),l(e.target.hash.replace("#","").replace("-panel",""))},h=[],E=!1,S=!0,_=!1,x=void 0;try{for(var T,A=Object.entries(e.settings)[Symbol.iterator]();!(S=(T=A.next()).done);S=!0){var N=T.value,C=a(N,2),R=C[0],w=C[1];E=i===R,h.push(React.createElement("a",{href:"#"+R+"-panel",className:"nav-tab "+(E?"nav-tab-active":""),key:R+"-tab",onClick:b},w.label))}}catch(e){_=!0,x=e}finally{try{!S&&A.return&&A.return()}finally{if(_)throw x}}return React.createElement("div",null,React.createElement("nav",{className:"nav-tab-wrapper"},h),s)}},2858:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SelectControl=void 0;var a=n(1386),r=n(2214);t.SelectControl=function(e){return React.createElement(a.Fragment,null,0===e.options.length&&React.createElement("div",null,e.noItemFoundMessage),e.options.length>0&&React.createElement(r.SelectControl,{label:e.label,name:e.name,id:e.name,className:e.className,value:e.selected,onChange:function(t){e.onChange(t)},"data-data":e.data,options:e.options}),e.children,React.createElement("p",{className:"description"},e.description))}},9005:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingRow=void 0,n(1386),t.SettingRow=function(e){return React.createElement("tr",{valign:"top"},React.createElement("th",{scope:"row"},React.createElement("label",{htmlFor:""},e.label)),React.createElement("td",null,e.children))}},5786:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsFieldset=function(e){return React.createElement("fieldset",{className:e.className},React.createElement("legend",null,e.legend),e.children)}},9892:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsForm=function(e){return React.createElement("form",{method:"post"},e.children)}},5681:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsSection=void 0;var a=n(1386);t.SettingsSection=function(e){return React.createElement(a.Fragment,null,React.createElement("h2",null,e.title),React.createElement("p",null,e.description),e.children)}},6772:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsTable=function(e){return React.createElement("table",{className:"form-table"},React.createElement("tbody",null,e.bodyChildren))}},242:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Spinner=function(e){return React.createElement("span",{className:"publishpress-future-spinner"},React.createElement("div",null),React.createElement("div",null),React.createElement("div",null),React.createElement("div",null))}},4438:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SubmitButton=function(e){return React.createElement("input",{type:"submit",name:e.name,value:e.text,disabled:e.disabled,className:"button-primary"})}},6301:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TextControl=void 0;var a=n(1386),r=n(2214),o=n(2057);t.TextControl=function(e){var t;t=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description);var n=e.className?e.className:"";return e.loading&&(n+=" publishpress-future-loading publishpress-future-loading-input"),React.createElement(a.Fragment,null,React.createElement("div",{className:n},React.createElement(r.TextControl,{type:"text",label:e.label,name:e.name,id:e.name,className:e.className,value:e.value,placeholder:e.placeholder,onChange:function(t){e.onChange&&e.onChange(t)}}),e.loading&&React.createElement(o.Spinner,null),t))}},3190:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ToggleArrowButton=void 0;var a=n(2214);t.ToggleArrowButton=function(e){var t=e.iconExpanded?e.iconExpanded:"arrow-up-alt2",n=e.iconCollapsed?e.iconCollapsed:"arrow-down-alt2",r=e.isExpanded?t:n,o=e.isExpanded?e.titleExpanded:e.titleCollapsed;return React.createElement(a.Button,{isSmall:!0,title:o,icon:r,onClick:function(){e.onClick&&e.onClick()},className:e.className})}},4873:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ToggleCalendarDatePicker=void 0;var a=n(3190),r=n(4620),o=n(1386);t.ToggleCalendarDatePicker=function(e){var t=e.isExpanded,n=e.strings,i=e.onToggleCalendar,l=e.currentDate,s=e.onChangeDate,u=e.is12Hour,c=e.startOfWeek;return(0,o.useEffect)((function(){var e=document.querySelector(".future-action-calendar-toggle");if(e){var t=e.nextElementSibling;if(t){var n=t.querySelector(".components-datetime__time");if(n){var a=n.nextSibling;a&&t.insertBefore(e,a)}}}})),React.createElement(o.Fragment,null,React.createElement(a.ToggleArrowButton,{className:"future-action-calendar-toggle",isExpanded:t,iconExpanded:"arrow-up-alt2",iconCollapsed:"calendar",titleExpanded:n.hideCalendar,titleCollapsed:n.showCalendar,onClick:i}),React.createElement(r.DateTimePicker,{currentDate:l,onChange:s,__nextRemoveHelpButton:!0,is12Hour:u,startOfWeek:c}))}},3948:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TokensControl=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(1386),o=n(2214);t.TokensControl=function(e){var t=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,r.useState)(""),2),n=t[0],i=t[1];(0,r.useEffect)((function(){e.value&&i(e.value.join(","))}),[e.value]);var l=void 0;e.description&&(l=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description));var s=e.value?e.value:[];return React.createElement(r.Fragment,null,React.createElement(o.FormTokenField,{label:e.label,value:s,suggestions:e.options,onChange:function(t){e.onChange&&e.onChange(t),"object"===(void 0===t?"undefined":a(t))?i(t.join(",")):i("")},maxSuggestions:e.maxSuggestions,className:"publishpres-future-token-field",__experimentalExpandOnFocus:e.expandOnFocus,__experimentalAutoSelectFirstMatch:e.autoSelectFirstMatch}),React.createElement("input",{type:"hidden",name:e.name,value:n}),l)}},8225:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TrueFalseControl=function(e){var t=wp.element.Fragment,n=function(t){e.onChange&&e.onChange(t.target.value===e.trueValue&&jQuery(t.target).is(":checked"))};return React.createElement(t,null,React.createElement("input",{type:"radio",name:e.name,id:e.name+"-true",value:e.trueValue,defaultChecked:e.selected,onChange:n}),React.createElement("label",{htmlFor:e.name+"-true"},e.trueLabel),"  ",React.createElement("input",{type:"radio",name:e.name,defaultChecked:!e.selected,id:e.name+"-false",value:e.falseValue,onChange:n}),React.createElement("label",{htmlFor:e.name+"-false"},e.falseLabel),React.createElement("p",{className:"description"},e.description))}},2057:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var a=n(5442);Object.defineProperty(t,"ButtonsPanel",{enumerable:!0,get:function(){return a.ButtonsPanel}});var r=n(8418);Object.defineProperty(t,"FutureActionPanel",{enumerable:!0,get:function(){return r.FutureActionPanel}});var o=n(2864);Object.defineProperty(t,"FutureActionPanelBlockEditor",{enumerable:!0,get:function(){return o.FutureActionPanelBlockEditor}});var i=n(3571);Object.defineProperty(t,"FutureActionPanelClassicEditor",{enumerable:!0,get:function(){return i.FutureActionPanelClassicEditor}});var l=n(5437);Object.defineProperty(t,"FutureActionPanelQuickEdit",{enumerable:!0,get:function(){return l.FutureActionPanelQuickEdit}});var s=n(2094);Object.defineProperty(t,"FutureActionPanelBulkEdit",{enumerable:!0,get:function(){return s.FutureActionPanelBulkEdit}});var u=n(1620);Object.defineProperty(t,"PostTypeSettingsPanel",{enumerable:!0,get:function(){return u.PostTypeSettingsPanel}});var c=n(8138);Object.defineProperty(t,"PostTypesSettingsPanels",{enumerable:!0,get:function(){return c.PostTypesSettingsPanels}});var d=n(9005);Object.defineProperty(t,"SettingRow",{enumerable:!0,get:function(){return d.SettingRow}});var m=n(5786);Object.defineProperty(t,"SettingsFieldset",{enumerable:!0,get:function(){return m.SettingsFieldset}});var p=n(9892);Object.defineProperty(t,"SettingsForm",{enumerable:!0,get:function(){return p.SettingsForm}});var f=n(5681);Object.defineProperty(t,"SettingsSection",{enumerable:!0,get:function(){return f.SettingsSection}});var y=n(6772);Object.defineProperty(t,"SettingsTable",{enumerable:!0,get:function(){return y.SettingsTable}});var g=n(4438);Object.defineProperty(t,"SubmitButton",{enumerable:!0,get:function(){return g.SubmitButton}});var v=n(4311);Object.defineProperty(t,"CheckboxControl",{enumerable:!0,get:function(){return v.CheckboxControl}});var b=n(2858);Object.defineProperty(t,"SelectControl",{enumerable:!0,get:function(){return b.SelectControl}});var h=n(6301);Object.defineProperty(t,"TextControl",{enumerable:!0,get:function(){return h.TextControl}});var E=n(3948);Object.defineProperty(t,"TokensControl",{enumerable:!0,get:function(){return E.TokensControl}});var S=n(1013);Object.defineProperty(t,"NonceControl",{enumerable:!0,get:function(){return S.NonceControl}});var _=n(8225);Object.defineProperty(t,"TrueFalseControl",{enumerable:!0,get:function(){return _.TrueFalseControl}});var x=n(242);Object.defineProperty(t,"Spinner",{enumerable:!0,get:function(){return x.Spinner}});var T=n(5470);Object.defineProperty(t,"DateOffsetPreview",{enumerable:!0,get:function(){return T.DateOffsetPreview}})},4480:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createStore=void 0;var a=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:t,s=arguments[1];switch(s.type){case"SET_ACTION":return a({},l,{action:s.action});case"SET_NEW_STATUS":return a({},l,{newStatus:s.newStatus});case"SET_DATE":return"number"!=typeof s.date&&(0,o.isNumber)(s.date)&&(s.date=parseInt(s.date)),"string"==typeof s.date&&(s.date=new Date(s.date).getTime()),s.date=(0,r.normalizeUnixTimeToSeconds)(s.date),s.date=(0,r.formatUnixTimeToTimestamp)(s.date),a({},l,{date:s.date});case"SET_ENABLED":return a({},l,{enabled:s.enabled});case"SET_TERMS":return a({},l,{terms:s.terms});case"SET_TAXONOMY":return a({},l,{taxonomy:s.taxonomy});case"SET_TERMS_LIST_BY_NAME":return a({},l,{termsListByName:s.termsListByName});case"SET_TERMS_LIST_BY_ID":return a({},l,{termsListById:s.termsListById});case"SET_TAXONOMY_NAME":return a({},l,{taxonomyName:s.taxonomyName});case"SET_CHANGE_ACTION":return a({},l,{changeAction:s.changeAction});case"SET_CALENDAR_IS_VISIBLE":return a({},l,{calendarIsVisible:s.calendarIsVisible});case"SET_HAS_VALID_DATA":return a({},l,{hasValidData:s.hasValidData});case"SET_EXTRA_DATA":return a({},l,{extraData:a({},s.extraData)});case"SET_EXTRA_DATA_BY_NAME":var u=a({},l.extraData,(e={},n=s.name,i=s.value,n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i,e));return a({},l,{extraData:a({},u)})}return l},actions:{setAction:function(e){return{type:"SET_ACTION",action:e}},setNewStatus:function(e){return{type:"SET_NEW_STATUS",newStatus:e}},setDate:function(e){return{type:"SET_DATE",date:e}},setEnabled:function(e){return{type:"SET_ENABLED",enabled:e}},setTerms:function(e){return{type:"SET_TERMS",terms:e}},setTaxonomy:function(e){return{type:"SET_TAXONOMY",taxonomy:e}},setTermsListByName:function(e){return{type:"SET_TERMS_LIST_BY_NAME",termsListByName:e}},setTermsListById:function(e){return{type:"SET_TERMS_LIST_BY_ID",termsListById:e}},setTaxonomyName:function(e){return{type:"SET_TAXONOMY_NAME",taxonomyName:e}},setIsFetchingTerms:function(e){return{type:"SET_IS_FETCHING_TERMS",isFetchingTerms:e}},setChangeAction:function(e){return{type:"SET_CHANGE_ACTION",changeAction:e}},setCalendarIsVisible:function(e){return{type:"SET_CALENDAR_IS_VISIBLE",calendarIsVisible:e}},setHasValidData:function(e){return{type:"SET_HAS_VALID_DATA",hasValidData:e}},setExtraData:function(e){return{type:"SET_EXTRA_DATA",extraData:e}},setExtraDataByName:function(e,t){return{type:"SET_EXTRA_DATA_BY_NAME",name:e,value:t}}},selectors:{getAction:function(e){return e.action},getNewStatus:function(e){return e.newStatus},getDate:function(e){return e.date},getEnabled:function(e){return e.enabled},getTerms:function(e){return e.terms},getTaxonomy:function(e){return e.taxonomy},getTermsListByName:function(e){return e.termsListByName},getTermsListById:function(e){return e.termsListById},getTaxonomyName:function(e){return e.taxonomyName},getIsFetchingTerms:function(e){return e.isFetchingTerms},getChangeAction:function(e){return e.changeAction},getCalendarIsVisible:function(e){return e.calendarIsVisible},getHasValidData:function(e){return e.hasValidData},getExtraData:function(e){return e.extraData},getExtraDataByName:function(e,t){return e.extraData[t]||null}}});return(0,i.register)(n),n}},7039:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n=t.getCurrentTimeInSeconds=function(){return o((new Date).getTime())},a=(t.getCurrentTimeAsTimestamp=function(){return a(n())},t.formatUnixTimeToTimestamp=function(e){var t=new Date(o(e));return t.getFullYear()+"-"+("0"+(t.getMonth()+1)).slice(-2)+"-"+("0"+t.getDate()).slice(-2)+" "+("0"+t.getHours()).slice(-2)+":"+("0"+t.getMinutes()).slice(-2)+":"+("0"+t.getSeconds()).slice(-2)}),r=(t.formatTimestampToUnixTime=function(e){var t=new Date(e);return o(t.getTime())},t.timeIsInSeconds=function(e){return parseInt(e).toString().length<=10}),o=t.normalizeUnixTimeToSeconds=function(e){return e=parseInt(e),r()?e:e/1e3};t.normalizeUnixTimeToMilliseconds=function(e){return e=parseInt(e),r()?1e3*e:e}},8409:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=(t.compact=function(e){return e?(Array.isArray(e)||"object"!==(void 0===e?"undefined":n(e))||(e=Object.values(e)),e.filter((function(e){return null!=e&&""!==e}))):[]},t.debugLogFactory=function(e){return function(t){for(var n=arguments.length,a=Array(n>1?n-1:0),r=1;r{n.d(t,{A:()=>l});var a=n(1354),r=n.n(a),o=n(6314),i=n.n(o)()(r());i.push([e.id,".publishpress-future-date-preview .publishpress-future-date-preview-value {\n font-family: monospace;\n background-color: #e7e7e7;\n padding: 2px 4px;\n}\n\n.publishpress-future-date-preview.compact .publishpress-future-date-preview-label {\n display: block;\n}\n\n.publishpress-future-date-preview.compact {\n margin-bottom: 8px;\n}\n\n.publishpress-future-date-preview.compact h4 {\n font-size: 11px;\n font-weight: 500;\n line-height: 1.4;\n text-transform: uppercase;\n display: inline-block;\n margin-bottom: calc(8px);\n padding: 0px;\n flex-shrink: 0;\n margin-right: 12px;\n max-width: 75%;\n margin-top: 0;\n}\n\n.publishpress-future-notice.publishpress-future-notice-error {\n color: #dc3232;\n}\n","",{version:3,sources:["webpack://./assets/jsx/components/css/dateOffsetPreview.css"],names:[],mappings:"AAAA;IACI,sBAAsB;IACtB,yBAAyB;IACzB,gBAAgB;AACpB;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,kBAAkB;AACtB;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,yBAAyB;IACzB,qBAAqB;IACrB,wBAAwB;IACxB,YAAY;IACZ,cAAc;IACd,kBAAkB;IAClB,cAAc;IACd,aAAa;AACjB;;AAEA;IACI,cAAc;AAClB",sourcesContent:[".publishpress-future-date-preview .publishpress-future-date-preview-value {\n font-family: monospace;\n background-color: #e7e7e7;\n padding: 2px 4px;\n}\n\n.publishpress-future-date-preview.compact .publishpress-future-date-preview-label {\n display: block;\n}\n\n.publishpress-future-date-preview.compact {\n margin-bottom: 8px;\n}\n\n.publishpress-future-date-preview.compact h4 {\n font-size: 11px;\n font-weight: 500;\n line-height: 1.4;\n text-transform: uppercase;\n display: inline-block;\n margin-bottom: calc(8px);\n padding: 0px;\n flex-shrink: 0;\n margin-right: 12px;\n max-width: 75%;\n margin-top: 0;\n}\n\n.publishpress-future-notice.publishpress-future-notice-error {\n color: #dc3232;\n}\n"],sourceRoot:""}]);const l=i},6314:e=>{e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",a=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),a&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),a&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,a,r,o){"string"==typeof e&&(e=[[null,e,void 0]]);var i={};if(a)for(var l=0;l0?" ".concat(c[5]):""," {").concat(c[1],"}")),c[5]=o),n&&(c[2]?(c[1]="@media ".concat(c[2]," {").concat(c[1],"}"),c[2]=n):c[2]=n),r&&(c[4]?(c[1]="@supports (".concat(c[4],") {").concat(c[1],"}"),c[4]=r):c[4]="".concat(r)),t.push(c))}},t}},1354:e=>{e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var a=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(a),o="/*# ".concat(r," */");return[t].concat([o]).join("\n")}return[t].join("\n")}},5338:(e,t,n)=>{var a=n(5206);t.createRoot=a.createRoot,t.hydrateRoot=a.hydrateRoot},9922:(e,t,n)=>{n.r(t),n.d(t,{default:()=>v});var a=n(5072),r=n.n(a),o=n(7825),i=n.n(o),l=n(7659),s=n.n(l),u=n(5056),c=n.n(u),d=n(540),m=n.n(d),p=n(1113),f=n.n(p),y=n(1461),g={};g.styleTagTransform=f(),g.setAttributes=c(),g.insert=s().bind(null,"head"),g.domAPI=i(),g.insertStyleElement=m(),r()(y.A,g);const v=y.A&&y.A.locals?y.A.locals:void 0},5072:e=>{var t=[];function n(e){for(var n=-1,a=0;a{var t={};e.exports=function(e,n){var a=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(!a)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");a.appendChild(n)}},540:e=>{e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},5056:(e,t,n)=>{e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},7825:e=>{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 a="";n.supports&&(a+="@supports (".concat(n.supports,") {")),n.media&&(a+="@media ".concat(n.media," {"));var r=void 0!==n.layer;r&&(a+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),a+=n.css,r&&(a+="}"),n.media&&(a+="}"),n.supports&&(a+="}");var o=n.sourceMap;o&&"undefined"!=typeof btoa&&(a+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),t.styleTagTransform(a,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},1113:e=>{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))}}},5206:e=>{e.exports=ReactDOM},6477:e=>{e.exports=publishpressFutureClassicEditorConfig},3244:e=>{e.exports=wp},2214:e=>{e.exports=wp.components},7562:e=>{e.exports=wp.data},1386:e=>{e.exports=wp.element},8566:e=>{e.exports=wp.hooks},9986:e=>{e.exports=wp.plugins},4011:e=>{e.exports=wp.url}},t={};function n(a){var r=t[a];if(void 0!==r)return r.exports;var o=t[a]={id:a,exports:{}};return e[a](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 a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},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 a=n(2057),r=n(4480),o=n(8409),i=n(7562),l=n(5338),s=n(6477);if(!(0,o.isGutenbergEnabled)()){var u="publishpress-future/future-action";(0,i.select)(u)||(0,r.createStore)({name:u,defaultState:{autoEnable:s.postTypeDefaultConfig.autoEnable,action:s.postTypeDefaultConfig.expireType,newStatus:s.postTypeDefaultConfig.newStatus,date:s.defaultDate,taxonomy:s.postTypeDefaultConfig.taxonomy,terms:s.postTypeDefaultConfig.terms}});var c=document.getElementById("publishpress-future-classic-editor"),d=React.createElement(a.FutureActionPanelClassicEditor,{storeName:u,postType:s.postType,isNewPost:s.isNewPost,actionsSelectOptions:s.actionsSelectOptions,statusesSelectOptions:s.statusesSelectOptions,is12Hour:s.is12Hour,timeFormat:s.timeFormat,startOfWeek:s.startOfWeek,strings:s.strings,taxonomyName:s.taxonomyName,hideCalendarByDefault:s.hideCalendarByDefault});(0,l.createRoot)(c).render(d)}})(); //# sourceMappingURL=classic-editor.js.map \ No newline at end of file diff --git a/assets/js/classic-editor.js.map b/assets/js/classic-editor.js.map index 2e2f23d1e..970759053 100644 --- a/assets/js/classic-editor.js.map +++ b/assets/js/classic-editor.js.map @@ -1 +1 @@ -{"version":3,"file":"classic-editor.js","mappings":"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","sources":["webpack://post-expirator/./assets/jsx/components/ButtonsPanel.jsx","webpack://post-expirator/./assets/jsx/components/CheckboxControl.jsx","webpack://post-expirator/./assets/jsx/components/DateTimePicker.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanel.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelAfterActionField.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelBlockEditor.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelBulkEdit.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelClassicEditor.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelQuickEdit.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelTop.jsx","webpack://post-expirator/./assets/jsx/components/NonceControl.jsx","webpack://post-expirator/./assets/jsx/components/PostTypeSettingsPanel.jsx","webpack://post-expirator/./assets/jsx/components/PostTypesSettingsPanels.jsx","webpack://post-expirator/./assets/jsx/components/SelectControl.jsx","webpack://post-expirator/./assets/jsx/components/SettingRow.jsx","webpack://post-expirator/./assets/jsx/components/SettingsFieldset.jsx","webpack://post-expirator/./assets/jsx/components/SettingsForm.jsx","webpack://post-expirator/./assets/jsx/components/SettingsSection.jsx","webpack://post-expirator/./assets/jsx/components/SettingsTable.jsx","webpack://post-expirator/./assets/jsx/components/Spinner.jsx","webpack://post-expirator/./assets/jsx/components/SubmitButton.jsx","webpack://post-expirator/./assets/jsx/components/TextControl.jsx","webpack://post-expirator/./assets/jsx/components/ToggleArrowButton.jsx","webpack://post-expirator/./assets/jsx/components/ToggleCalendarDatePicker.jsx","webpack://post-expirator/./assets/jsx/components/TokensControl.jsx","webpack://post-expirator/./assets/jsx/components/TrueFalseControl.jsx","webpack://post-expirator/./assets/jsx/components/index.jsx","webpack://post-expirator/./assets/jsx/data.jsx","webpack://post-expirator/./assets/jsx/time.jsx","webpack://post-expirator/./assets/jsx/utils.jsx","webpack://post-expirator/external var \"ReactDOM\"","webpack://post-expirator/external var \"publishpressFutureClassicEditorConfig\"","webpack://post-expirator/external var \"wp\"","webpack://post-expirator/external var \"wp.components\"","webpack://post-expirator/external var \"wp.data\"","webpack://post-expirator/external var \"wp.element\"","webpack://post-expirator/external var \"wp.hooks\"","webpack://post-expirator/external var \"wp.plugins\"","webpack://post-expirator/external var \"wp.url\"","webpack://post-expirator/webpack/bootstrap","webpack://post-expirator/./assets/jsx/classic-editor.jsx"],"sourcesContent":["/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const ButtonsPanel = function (props) {\n return (\n
\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment, useState } from \"@wordpress/element\";\nimport { CheckboxControl as WPCheckboxControl } from \"@wordpress/components\";\n\nexport const CheckboxControl = function (props) {\n const [checked, setChecked] = useState(props.checked || false);\n\n let description;\n\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n\n const onChange = function (value) {\n setChecked(value);\n\n if (props.onChange) {\n props.onChange(value);\n }\n };\n\n return (\n \n \n\n {description}\n \n )\n}\n","import { normalizeUnixTimeToMilliseconds } from \"../time\";\nimport { DateTimePicker as WPDateTimePicker } from \"@wordpress/components\";\n\n\nexport const DateTimePicker = ({currentDate, onChange, is12Hour, startOfWeek}) => {\n if (typeof currentDate === 'number') {\n currentDate = normalizeUnixTimeToMilliseconds(currentDate);\n }\n\n return (\n \n )\n}\n","import { compact } from '../utils';\nimport { ToggleCalendarDatePicker } from './ToggleCalendarDatePicker';\nimport { PluginArea } from '@wordpress/plugins';\nimport { Fill, Slot, SlotFillProvider } from '@wordpress/components';\nimport { FutureActionPanelAfterActionField } from './FutureActionPanelAfterActionField';\nimport { FutureActionPanelTop } from './FutureActionPanelTop';\n\nconst { PanelRow, CheckboxControl, SelectControl, FormTokenField, Spinner, BaseControl } = wp.components;\nconst { Fragment, useEffect, useState } = wp.element;\nconst { decodeEntities } = wp.htmlEntities;\nconst { addQueryArgs } = wp.url;\nconst {\n useSelect,\n useDispatch\n} = wp.data;\nconst { apiFetch } = wp;\n\nexport const FutureActionPanel = (props) => {\n const action = useSelect((select) => select(props.storeName).getAction(), []);\n const date = useSelect((select) => select(props.storeName).getDate(), []);\n const enabled = useSelect((select) => select(props.storeName).getEnabled(), []);\n const terms = useSelect((select) => select(props.storeName).getTerms(), []);\n const taxonomy = useSelect((select) => select(props.storeName).getTaxonomy(), []);\n const taxonomyName = useSelect((select) => select(props.storeName).getTaxonomyName(), []);\n const termsListByName = useSelect((select) => select(props.storeName).getTermsListByName(), []);\n const termsListById = useSelect((select) => select(props.storeName).getTermsListById(), []);\n const isFetchingTerms = useSelect((select) => select(props.storeName).getIsFetchingTerms(), []);\n const calendarIsVisible = useSelect((select) => select(props.storeName).getCalendarIsVisible(), []);\n const hasValidData = useSelect((select) => select(props.storeName).getHasValidData(), []);\n const newStatus = useSelect((select) => select(props.storeName).getNewStatus(), []);\n\n const [validationError, setValidationError] = useState('');\n\n const {\n setAction,\n setDate,\n setEnabled,\n setTerms,\n setTaxonomy,\n setTermsListByName,\n setTermsListById,\n setTaxonomyName,\n setIsFetchingTerms,\n setCalendarIsVisible,\n setHasValidData,\n setNewStatus\n } = useDispatch(props.storeName);\n\n const mapTermsListById = (terms) => {\n if (typeof terms !== 'object' || terms === null) {\n return {};\n }\n\n return terms.map((term) => {\n return termsListById[term];\n });\n }\n\n const insertTerm = (term) => {\n termsListByName[term] = { id: term, count: 0, description: \"\", link: \"\", name: term, slug: term, taxonomy: taxonomy };\n termsListById[term] = term;\n setTermsListByName(termsListByName);\n setTermsListById(termsListById);\n setTerms([...terms, term]);\n\n }\n\n const mapTermsListByName = (terms) => {\n if (typeof terms !== 'object' || terms === null) {\n return {};\n }\n\n return terms.map((term) => {\n if (termsListByName[term]) {\n return termsListByName[term].id;\n }\n\n insertTerm(term);\n\n return term;\n });\n }\n\n const callOnChangeData = (attribute, value) => {\n if (typeof props.onChangeData === 'function') {\n props.onChangeData(attribute, value);\n }\n }\n\n const handleEnabledChange = (isChecked) => {\n setEnabled(isChecked);\n\n if (isChecked) {\n setAction(props.action);\n setDate(props.date);\n setNewStatus(props.newStatus);\n setTerms(props.terms);\n setTaxonomy(props.taxonomy);\n\n fetchTerms();\n }\n\n callOnChangeData('enabled', isChecked);\n }\n\n const handleActionChange = (value) => {\n setAction(value);\n\n callOnChangeData('action', value);\n }\n\n const handleNewStatusChange = (value) => {\n setNewStatus(value);\n\n callOnChangeData('newStatus', value);\n }\n\n const handleDateChange = (value) => {\n setDate(value);\n\n callOnChangeData('date', value);\n }\n\n const handleTermsChange = (value) => {\n value = mapTermsListByName(value);\n\n setTerms(value);\n\n callOnChangeData('terms', value);\n }\n\n const fetchTerms = () => {\n let termsListByName = {};\n let termsListById = {};\n\n if (!taxonomy) {\n return;\n }\n\n setIsFetchingTerms(true);\n\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/terms/${taxonomy}`),\n }).then((result) => {\n result.terms.forEach(term => {\n termsListByName[decodeEntities(term.name)] = term;\n termsListById[term.id] = decodeEntities(term.name);\n });\n\n setTermsListByName(termsListByName);\n setTermsListById(termsListById);\n setTaxonomyName(decodeEntities(result.taxonomyName));\n setIsFetchingTerms(false);\n });\n }\n\n const storeCalendarIsVisibleOnStorage = (value) => {\n localStorage.setItem('FUTURE_ACTION_CALENDAR_IS_VISIBLE_' + props.context, value ? '1' : '0');\n }\n\n const getCalendarIsVisibleFromStorage = () => {\n return localStorage.getItem('FUTURE_ACTION_CALENDAR_IS_VISIBLE_' + props.context);\n }\n\n useEffect(() => {\n if (props.autoEnableAndHideCheckbox) {\n setEnabled(true);\n } else {\n setEnabled(props.enabled);\n }\n\n setAction(props.action);\n setNewStatus(props.newStatus);\n setDate(props.date);\n setTerms(props.terms);\n setTaxonomy(props.taxonomy);\n\n if (getCalendarIsVisibleFromStorage() === null) {\n setCalendarIsVisible(props.calendarIsVisible);\n } else {\n setCalendarIsVisible(getCalendarIsVisibleFromStorage() === '1');\n }\n\n // We need to get the value directly from the props because the value from the store is not updated yet\n if (props.enabled) {\n if (props.isCleanNewPost) {\n // Force populate the default values\n handleEnabledChange(true);\n }\n\n fetchTerms();\n }\n }, []);\n\n useEffect(() => {\n storeCalendarIsVisibleOnStorage(calendarIsVisible);\n }, [calendarIsVisible]);\n\n useEffect(() => {\n if (hasValidData && props.onDataIsValid) {\n props.onDataIsValid();\n }\n\n if (!hasValidData && props.onDataIsInvalid) {\n props.onDataIsInvalid();\n }\n }, [hasValidData]);\n\n let selectedTerms = [];\n if (terms && terms.length > 0 && termsListById) {\n selectedTerms = compact(mapTermsListById(terms));\n\n if (typeof selectedTerms === 'string') {\n selectedTerms = [];\n }\n }\n\n let termsListByNameKeys = [];\n if (typeof termsListByName === 'object' && termsListByName !== null) {\n termsListByNameKeys = Object.keys(termsListByName);\n }\n\n const panelClass = calendarIsVisible ? 'future-action-panel' : 'future-action-panel hidden-calendar';\n const contentPanelClass = calendarIsVisible ? 'future-action-panel-content' : 'future-action-panel-content hidden-calendar';\n const datePanelClass = calendarIsVisible ? 'future-action-date-panel' : 'future-action-date-panel hidden-calendar';\n\n let is24hour;\n if (props.timeFormat === 'inherited') {\n is24hour = !props.is12Hour;\n } else {\n is24hour = props.timeFormat === '24h';\n }\n\n const replaceCurlyBracketsWithLink = (string, href, target) => {\n const parts = string.split('{');\n const result = [];\n\n result.push(parts.shift());\n\n for (const part of parts) {\n const [before, after] = part.split('}');\n\n result.push(\n {before}\n );\n\n result.push(after);\n }\n\n return result;\n };\n\n // Remove items from actions list if related to taxonomies and there is no taxonmoy for the post type\n let actionsSelectOptions = props.actionsSelectOptions;\n if (!props.taxonomy) {\n actionsSelectOptions = props.actionsSelectOptions.filter((item) => {\n return ['category', 'category-add', 'category-remove', 'category-remove-all'].indexOf(item.value) === -1;\n });\n }\n\n const HelpText = replaceCurlyBracketsWithLink(props.strings.timezoneSettingsHelp, '/wp-admin/options-general.php#timezone_string', '_blank');\n const displayTaxonomyField = String(action).includes('category') && action !== 'category-remove-all';\n\n let termsFieldLabel = taxonomyName;\n switch (action) {\n case 'category':\n termsFieldLabel = props.strings.newTerms.replace('%s', taxonomyName);\n break;\n case 'category-remove':\n termsFieldLabel = props.strings.removeTerms.replace('%s', taxonomyName);\n break;\n case 'category-add':\n termsFieldLabel = props.strings.addTerms.replace('%s', taxonomyName);\n break;\n }\n\n const validateData = () => {\n let valid = true;\n\n if (!enabled) {\n setValidationError('');\n return true;\n }\n\n if (!action) {\n setValidationError(props.strings.errorActionRequired);\n valid = false;\n }\n\n if (!date) {\n setValidationError(props.strings.errorDateRequired);\n valid = false;\n }\n\n // Check if the date is in the past\n if (date && new Date(date) < new Date()) {\n setValidationError(props.strings.errorDateInPast);\n valid = false;\n }\n\n const isTermRequired = ['category', 'category-add', 'category-remove'].includes(action);\n const noTermIsSelected = terms.length === 0 || (terms.length === 1 && (terms[0] === '' || terms[0] === '0'));\n\n if (isTermRequired && noTermIsSelected) {\n setValidationError(props.strings.errorTermsRequired);\n valid = false;\n }\n\n if (valid) {\n setValidationError('');\n }\n\n return valid;\n }\n\n useEffect(() => {\n if (!enabled) {\n setHasValidData(true);\n setValidationError('');\n\n return;\n }\n\n setHasValidData(validateData());\n }, [action, date, enabled, terms, taxonomy]);\n\n // This adds a 'cancel' class to the input when the user clicks on the\n // field to prevent the form from being submitted. This is a workaround\n // for the issue on the quick-edit form where the form is submitted when\n // the user presses the 'Enter' key trying to add a term to the field.\n const forceIgnoreAutoSubmitOnEnter = (e) => {\n jQuery(e.target).addClass('cancel');\n }\n\n return (\n \n
\n {props.autoEnableAndHideCheckbox && (\n \n )}\n\n \n\n {!props.autoEnableAndHideCheckbox && (\n \n \n \n )}\n\n {enabled && (\n \n \n \n \n\n \n\n {action === 'change-status' &&\n \n \n \n }\n\n {\n displayTaxonomyField && (\n isFetchingTerms && (\n \n \n {`${props.strings.loading} (${taxonomyName})`}\n \n \n \n )\n || (!taxonomy && (\n \n \n
\n {props.strings.noTaxonomyFound}\n
\n
\n
\n )\n || (\n termsListByNameKeys.length === 0 && (\n \n \n
\n {props.strings.noTermsFound}\n
\n
\n
\n )\n || (\n \n \n \n \n \n )\n )\n )\n )\n }\n\n \n setCalendarIsVisible(!calendarIsVisible)}\n is12Hour={!is24hour}\n startOfWeek={props.startOfWeek}\n isExpanded={calendarIsVisible}\n strings={props.strings}\n />\n \n\n \n
\n
\n\n {HelpText}\n
\n
\n\n {!hasValidData && (\n \n \n
{validationError}
\n
\n
\n )}\n
\n )}\n
\n \n
\n );\n};\n","import { Slot, Fill } from '@wordpress/components';\n\nexport const FutureActionPanelAfterActionField = ({ children }) => (\n \n {children}\n \n);\n\nconst FutureActionPanelAfterActionFieldSlot = (props) => (\n \n);\n\nFutureActionPanelAfterActionField.Slot = FutureActionPanelAfterActionFieldSlot;\n\nexport default FutureActionPanelAfterActionField;\n","import { FutureActionPanel } from './';\n\nexport const FutureActionPanelBlockEditor = (props) => {\n const { PluginDocumentSettingPanel } = wp.editPost;\n const { useDispatch, select } = wp.data;\n\n const { editPost } = useDispatch('core/editor');\n\n const editPostAttribute = (newAttribute) => {\n const attribute = {\n publishpress_future_action: {}\n };\n\n // For each property on newAttribute, set the value on attribute\n for (const [name, value] of Object.entries(newAttribute)) {\n attribute.publishpress_future_action[name] = value;\n }\n\n editPost(attribute);\n }\n\n const onChangeData = (attribute, value) => {\n const store = select(props.storeName);\n\n const newAttribute = {\n 'enabled': store.getEnabled()\n }\n\n if (newAttribute.enabled) {\n newAttribute['action'] = store.getAction();\n newAttribute['newStatus'] = store.getNewStatus();\n newAttribute['date'] = store.getDate();\n newAttribute['terms'] = store.getTerms();\n newAttribute['taxonomy'] = store.getTaxonomy();\n newAttribute['extraData'] = store.getExtraData();\n }\n\n editPostAttribute(newAttribute);\n }\n\n const data = select('core/editor').getEditedPostAttribute('publishpress_future_action');\n\n const { lockPostSaving, unlockPostSaving } = useDispatch('core/editor');\n\n const onDataIsValid = () => {\n unlockPostSaving('future-action');\n }\n\n const onDataIsInvalid = () => {\n lockPostSaving('future-action');\n }\n\n return (\n \n
\n \n
\n \n );\n};\n","import { FutureActionPanel, SelectControl } from '.';\nimport { getElementByName } from '../utils';\n\nexport const FutureActionPanelBulkEdit = (props) => {\n const { useSelect, useDispatch, select } = wp.data;\n const { useEffect } = wp.element;\n\n const onChangeData = (attribute, value) => {\n getElementByName('future_action_bulk_enabled').value = select(props.storeName).getEnabled() ? 1 : 0;\n getElementByName('future_action_bulk_action').value = select(props.storeName).getAction();\n getElementByName('future_action_bulk_new_status').value = select(props.storeName).getNewStatus();\n getElementByName('future_action_bulk_date').value = select(props.storeName).getDate();\n getElementByName('future_action_bulk_terms').value = select(props.storeName).getTerms().join(',');\n getElementByName('future_action_bulk_taxonomy').value = select(props.storeName).getTaxonomy();\n }\n\n const date = useSelect((select) => select(props.storeName).getDate(), []);\n const enabled = useSelect((select) => select(props.storeName).getEnabled(), []);\n const action = useSelect((select) => select(props.storeName).getAction(), []);\n const newStatus = useSelect((select) => select(props.storeName).getNewStatus(), []);\n const terms = useSelect((select) => select(props.storeName).getTerms(), []);\n const taxonomy = useSelect((select) => select(props.storeName).getTaxonomy(), []);\n const changeAction = useSelect((select) => select(props.storeName).getChangeAction(), []);\n const hasValidData = useSelect((select) => select(props.storeName).getHasValidData(), []);\n\n const {\n setChangeAction\n } = useDispatch(props.storeName);\n\n let termsString = terms;\n if (typeof terms === 'object') {\n termsString = terms.join(',');\n }\n\n const handleStrategyChange = (value) => {\n setChangeAction(value);\n };\n\n const options = [\n { value: 'no-change', label: props.strings.noChange },\n { value: 'change-add', label: props.strings.changeAdd },\n { value: 'add-only', label: props.strings.addOnly },\n { value: 'change-only', label: props.strings.changeOnly },\n { value: 'remove-only', label: props.strings.removeOnly },\n ];\n\n const optionsToDisplayPanel = ['change-add', 'add-only', 'change-only'];\n\n useEffect(() => {\n // We are not using onDataIsValid and onDataIsInvalid because we need to enable/disable the button\n // also based on the changeAction value.\n if (hasValidData || changeAction === 'no-change') {\n jQuery('#bulk_edit').prop('disabled', false);\n } else {\n jQuery('#bulk_edit').prop('disabled', true);\n }\n }, [hasValidData, changeAction]);\n\n return (\n
\n \n\n {optionsToDisplayPanel.includes(changeAction) && (\n \n )}\n\n {/* Bulk edit JS code will save only fields with name inside the edit row */}\n \n \n \n \n \n \n \n \n
\n );\n};\n","import { FutureActionPanel } from \"./\";\nimport { select, useSelect } from \"@wordpress/data\";\nimport { useEffect } from \"@wordpress/element\";\n\nexport const FutureActionPanelClassicEditor = (props) => {\n const browserTimezoneOffset = new Date().getTimezoneOffset();\n\n const getElementByName = (name) => {\n return document.getElementsByName(name)[0];\n }\n\n const onChangeData = (attribute, value) => {\n const store = select(props.storeName);\n\n getElementByName('future_action_enabled').value = store.getEnabled() ? 1 : 0;\n getElementByName('future_action_action').value = store.getAction();\n getElementByName('future_action_new_status').value = store.getNewStatus();\n getElementByName('future_action_date').value = store.getDate();\n getElementByName('future_action_terms').value = store.getTerms().join(',');\n getElementByName('future_action_taxonomy').value = store.getTaxonomy();\n }\n\n const getTermsFromElementByName = (name) => {\n const element = getElementByName(name);\n if (!element) {\n return [];\n }\n\n let terms = element.value.split(',');\n\n if (terms.length === 1 && terms[0] === '') {\n terms = [];\n }\n\n return terms.map(term => parseInt(term));\n }\n\n const getElementValueByName = (name) => {\n const element = getElementByName(name);\n if (!element) {\n return '';\n }\n\n return element.value;\n }\n\n const data = {\n enabled: getElementValueByName('future_action_enabled') === '1',\n action: getElementValueByName('future_action_action'),\n newStatus: getElementValueByName('future_action_new_status'),\n date: getElementValueByName('future_action_date'),\n terms: getTermsFromElementByName('future_action_terms'),\n taxonomy: getElementValueByName('future_action_taxonomy'),\n };\n\n const onDataIsValid = () => {\n jQuery('#publish').prop('disabled', false);\n }\n\n const onDataIsInvalid = () => {\n jQuery('#publish').prop('disabled', true);\n }\n\n return (\n
\n \n
\n );\n};\n","import { FutureActionPanel } from './';\nimport { useSelect, select } from '@wordpress/data';\nimport { useEffect } from '@wordpress/element';\n\nexport const FutureActionPanelQuickEdit = (props) => {\n const onChangeData = (attribute, value) => {};\n\n const date = useSelect((select) => select(props.storeName).getDate(), []);\n const enabled = useSelect((select) => select(props.storeName).getEnabled(), []);\n const action = useSelect((select) => select(props.storeName).getAction(), []);\n const terms = useSelect((select) => select(props.storeName).getTerms(), []);\n const taxonomy = useSelect((select) => select(props.storeName).getTaxonomy(), []);\n const hasValidData = useSelect((select) => select(props.storeName).getHasValidData(), []);\n const newStatus = useSelect((select) => select(props.storeName).getNewStatus(), []);\n\n let termsString = terms;\n if (typeof terms === 'object') {\n termsString = terms.join(',');\n }\n\n const onDataIsValid = () => {\n jQuery('.button-primary.save').prop('disabled', false);\n }\n\n const onDataIsInvalid = () => {\n jQuery('.button-primary.save').prop('disabled', true);\n }\n\n return (\n
\n \n\n {/* Quick edit JS code will save only fields with name inside the edit row */}\n \n \n \n \n \n \n \n \n
\n );\n};\n","import { Slot, Fill } from '@wordpress/components';\n\nexport const FutureActionPanelTop = ({ children }) => (\n \n {children}\n \n);\n\nconst FutureActionPanelTopSlot = (props) => (\n \n);\n\nFutureActionPanelTop.Slot = FutureActionPanelTopSlot;\n\nexport default FutureActionPanelTop;\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const NonceControl = function (props) {\n if (! props.name) {\n props.name = '_wpnonce';\n }\n\n if (! props.referrer) {\n props.referrer = true;\n }\n\n return (\n \n \n\n {props.referrer &&\n \n }\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nimport {\n SettingRow,\n SettingsFieldset,\n SettingsTable,\n SelectControl,\n TextControl,\n TokensControl,\n CheckboxControl\n} from './';\nimport { useEffect, useState, Fragment, useRef } from '@wordpress/element';\nimport { addQueryArgs } from '@wordpress/url';\nimport { applyFilters } from '@wordpress/hooks';\nimport { apiFetch } from '&wp';\n\nconst { PanelRow, BaseControl } = wp.components;\n\nexport const PostTypeSettingsPanel = function (props) {\n const originalExpireTypeList = props.expireTypeList[props.postType];\n\n const [postTypeTaxonomy, setPostTypeTaxonomy] = useState(props.settings.taxonomy);\n const [termOptions, setTermOptions] = useState([]);\n const [termsSelectIsLoading, setTermsSelectIsLoading] = useState(false);\n const [selectedTerms, setSelectedTerms] = useState([]);\n const [settingHowToExpire, setSettingHowToExpire] = useState(props.settings.howToExpire);\n const [isActive, setIsActive] = useState(props.settings.active);\n const [expireOffset, setExpireOffset] = useState(props.settings.defaultExpireOffset);\n const [emailNotification, setEmailNotification] = useState(props.settings.emailNotification);\n const [isAutoEnabled, setIsAutoEnabled] = useState(props.settings.autoEnabled);\n const [hasValidData, setHasValidData] = useState(false);\n const [validationError, setValidationError] = useState('');\n const [taxonomyLabel, setTaxonomyLabel] = useState('');\n const [howToExpireList, setHowToExpireList] = useState(originalExpireTypeList);\n const [newStatus, setNewStatus] = useState(props.settings.newStatus);\n const [hasPendingValidation, setHasPendingValidation] = useState(false);\n const [offsetPreview, setOffsetPreview] = useState('');\n const [currentTime, setCurrentTime] = useState();\n const apiRequestControllerRef = useRef(new AbortController());\n\n const taxonomyRelatedActions = [\n 'category',\n 'category-add',\n 'category-remove',\n 'category-remove-all'\n ];\n\n const onChangeTaxonomy = function (value) {\n setPostTypeTaxonomy(value);\n };\n\n const onChangeTerms = (value) => {\n setSelectedTerms(value);\n };\n\n const onChangeHowToExpire = (value) => {\n setSettingHowToExpire(value);\n }\n\n const onChangeActive = (value) => {\n setIsActive(value);\n }\n\n const onChangeExpireOffset = (value) => {\n setExpireOffset(value);\n }\n\n const onChangeEmailNotification = (value) => {\n setEmailNotification(value);\n }\n\n const onChangeAutoEnabled = (value) => {\n setIsAutoEnabled(value);\n }\n\n const validateData = () => {\n if (! isActive) {\n setValidationError('');\n return true;\n }\n\n const offset = expireOffset ? expireOffset : props.settings.globalDefaultExpireOffset;\n\n if (offset) {\n const controller = apiRequestControllerRef.current;\n\n if (controller) {\n controller.abort();\n }\n\n apiRequestControllerRef.current = new AbortController();\n const { signal } = apiRequestControllerRef.current;\n\n setHasPendingValidation(true);\n\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/settings/validate-expire-offset`),\n method: 'POST',\n data: {\n offset\n },\n signal,\n }).then((result) => {\n setHasPendingValidation(false);\n\n setHasValidData(result.isValid);\n setValidationError(result.message);\n\n if (result.isValid) {\n setOffsetPreview(result.preview);\n setCurrentTime(result.currentTime);\n } else {\n setOffsetPreview('');\n }\n }).catch((error) => {\n if (error.name === 'AbortError') {\n return;\n }\n\n setHasPendingValidation(false);\n setHasValidData(false);\n setValidationError(error.message);\n setOffsetPreview('');\n });\n }\n\n setValidationError('');\n return true;\n }\n\n useEffect(() => {\n // Remove items from expireTypeList if related to taxonomies and there is no taxonmoy for the post type\n if (props.taxonomiesList.length === 0) {\n let newExpireTypeList = [];\n\n newExpireTypeList = howToExpireList.filter((item) => {\n return taxonomyRelatedActions.indexOf(item.value) === -1;\n });\n\n setHowToExpireList(newExpireTypeList);\n }\n }, []);\n\n useEffect(() => {\n if (!postTypeTaxonomy || !props.taxonomiesList) {\n return;\n }\n\n setTermsSelectIsLoading(true);\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/terms/${postTypeTaxonomy}`),\n }).then((result) => {\n let options = [];\n\n let settingsTermsOptions = null;\n let option;\n\n result.terms.forEach(term => {\n option = { value: term.id, label: term.name };\n options.push(option);\n\n if (postTypeTaxonomy === props.settings.taxonomy && props.settings.terms.includes(term.id)) {\n if (settingsTermsOptions === null) {\n settingsTermsOptions = [];\n }\n\n settingsTermsOptions.push(option.label);\n }\n });\n\n setTermOptions(options);\n setSelectedTerms(settingsTermsOptions);\n setTermsSelectIsLoading(false);\n });\n\n props.taxonomiesList.forEach((taxonomy) => {\n if (taxonomy.value === postTypeTaxonomy) {\n setTaxonomyLabel(taxonomy.label);\n }\n });\n }, [postTypeTaxonomy]);\n\n useEffect(() => {\n setHasValidData(validateData());\n }, [isActive, expireOffset]);\n\n useEffect(() => {\n if (!taxonomyLabel) {\n return;\n }\n\n // Update the list of actions replacing the taxonomy name.\n let newExpireTypeList = [];\n\n originalExpireTypeList.forEach((expireType) => {\n let label = expireType.label;\n\n if (taxonomyRelatedActions.indexOf(expireType.value) !== -1) {\n label = label.replace('%s', taxonomyLabel.toLowerCase());\n }\n\n newExpireTypeList.push({\n value: expireType.value,\n label: label\n });\n });\n\n setHowToExpireList(newExpireTypeList);\n }, [taxonomyLabel]);\n\n useEffect(() => {\n if (hasValidData && props.onDataIsValid) {\n props.onDataIsValid(props.postType);\n }\n\n if (!hasValidData && props.onDataIsInvalid) {\n props.onDataIsInvalid(props.postType);\n }\n }, [hasValidData]);\n\n useEffect(() => {\n if (hasPendingValidation && props.onValidationStarted) {\n props.onValidationStarted(props.postType);\n }\n\n if (!hasPendingValidation && props.onValidationFinished) {\n props.onValidationFinished(props.postType);\n }\n }, [hasPendingValidation]);\n\n const termOptionsLabels = termOptions.map((term) => term.label);\n\n let settingsRows = [\n \n \n \n ];\n\n if (isActive) {\n settingsRows.push(\n \n \n \n );\n\n settingsRows.push(\n \n \n \n \n );\n\n settingsRows.push(\n \n \n\n {settingHowToExpire === 'change-status' &&\n \n }\n\n {(props.taxonomiesList.length > 0 && (['category', 'category-add', 'category-remove'].indexOf(settingHowToExpire) > -1)) &&\n \n }\n \n );\n\n settingsRows.push(\n \n \n\n {offsetPreview && (\n \n

{props.text.datePreview}

\n
\n
\n {props.text.datePreviewCurrent}: \n {currentTime}\n
\n
\n {props.text.datePreviewComputed}: \n {offsetPreview}\n
\n
\n
\n )}\n
\n );\n\n settingsRows.push(\n \n \n \n );\n }\n\n settingsRows = applyFilters('expirationdate_settings_posttype', settingsRows, props, isActive, useState);\n\n return (\n \n \n\n {! hasValidData && (\n \n
\n {props.text.error}: {validationError}\n
\n
\n )}\n
\n );\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nimport { PostTypeSettingsPanel } from \"./\";\n\nexport const PostTypesSettingsPanels = function (props) {\n let panels = [];\n\n for (const [postType, postTypeSettings] of Object.entries(props.settings)) {\n panels.push(\n \n );\n }\n\n return (panels);\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\nimport { SelectControl as WPSelectControl } from \"@wordpress/components\";\n\nexport const SelectControl = function (props) {\n const onChange = (value) => {\n props.onChange(value);\n };\n\n return (\n \n {props.options.length === 0 && (\n
{props.noItemFoundMessage}
\n )}\n\n {props.options.length > 0 && (\n \n )}\n\n {props.children}\n\n

{props.description}

\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const SettingRow = function (props) {\n return (\n \n \n \n \n \n {props.children}\n \n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsFieldset = function (props) {\n return (\n
\n {props.legend}\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsForm = function (props) {\n return (\n
\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const SettingsSection = function (props) {\n return (\n \n

{props.title}

\n

{props.description}

\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsTable = function (props) {\n return (\n \n \n {props.bodyChildren}\n \n
\n )\n}\n","/*\n * Copyright (c) 2024. PublishPress, All rights reserved.\n */\nexport const Spinner = function (props) {\n return (\n
\n );\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SubmitButton = function (props) {\n return (\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\nimport { TextControl as WPTextControl } from \"@wordpress/components\";\nimport { Spinner } from \"./\";\n\nexport const TextControl = function (props) {\n let description;\n\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n\n const onChange = function (value) {\n if (props.onChange) {\n props.onChange(value);\n }\n };\n\n let className = props.className ? props.className : '';\n\n if (props.loading) {\n className += ' publishpress-future-loading publishpress-future-loading-input';\n }\n\n return (\n \n
\n \n\n {props.loading && }\n\n {description}\n
\n
\n )\n}\n","import { Button } from '@wordpress/components';\n\nexport const ToggleArrowButton = function (props) {\n const onClick = function () {\n if (props.onClick) {\n props.onClick();\n }\n };\n\n const iconExpanded = props.iconExpanded ? props.iconExpanded : 'arrow-up-alt2';\n const iconCollapsed = props.iconCollapsed ? props.iconCollapsed : 'arrow-down-alt2';\n\n const icon = props.isExpanded ? iconExpanded : iconCollapsed;\n\n const title = props.isExpanded ? props.titleExpanded : props.titleCollapsed;\n\n return (\n \n )\n}\n","import { ToggleArrowButton } from \"./ToggleArrowButton\";\nimport { DateTimePicker } from \"./DateTimePicker\";\nimport { Fragment, useEffect } from \"@wordpress/element\";\n\nexport const ToggleCalendarDatePicker = (\n {\n isExpanded,\n strings,\n onToggleCalendar,\n currentDate,\n onChangeDate,\n is12Hour,\n startOfWeek\n }\n) => {\n useEffect(() => {\n // Move the element of the toggle button to between the time and date elements.\n const toggleButtonElement = document.querySelector('.future-action-calendar-toggle');\n\n if (! toggleButtonElement) {\n return;\n }\n\n const dateTimeElement = toggleButtonElement.nextElementSibling;\n\n if (! dateTimeElement) {\n return;\n }\n\n const timeElement = dateTimeElement.querySelector('.components-datetime__time');\n\n if (! timeElement) {\n return;\n }\n\n const dateElement = timeElement.nextSibling;\n\n if (! dateElement) {\n return;\n }\n\n dateTimeElement.insertBefore(toggleButtonElement, dateElement)\n });\n\n return (\n \n \n\n \n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment, useState, useEffect } from \"@wordpress/element\";\nimport { FormTokenField } from \"@wordpress/components\";\n\nexport const TokensControl = (props) => {\n const [stringValue, setStringValue] = useState('');\n\n useEffect(() => {\n if (props.value) {\n setStringValue(props.value.join(','));\n }\n }, [props.value]);\n\n let description;\n\n if (props.description) {\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n }\n\n const onChange = (value) => {\n if (props.onChange) {\n props.onChange(value);\n }\n\n if (typeof value === 'object') {\n setStringValue(value.join(','));\n } else {\n setStringValue('');\n }\n }\n\n const value = props.value ? props.value : [];\n \n return (\n \n \n \n\n {description}\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const TrueFalseControl = function (props) {\n const { Fragment } = wp.element;\n\n const onChange = (e) => {\n if (props.onChange) {\n props.onChange(\n e.target.value === props.trueValue && jQuery(e.target).is(':checked')\n );\n // Check only the true radio... using the field name? or directly the ID\n }\n };\n\n return (\n \n \n\n \n   \n \n {props.falseLabel}\n\n

{props.description}

\n
\n )\n}\n","export { ButtonsPanel } from \"./ButtonsPanel\";\nexport { FutureActionPanel } from \"./FutureActionPanel\";\nexport { FutureActionPanelBlockEditor } from \"./FutureActionPanelBlockEditor\";\nexport { FutureActionPanelClassicEditor } from \"./FutureActionPanelClassicEditor\";\nexport { FutureActionPanelQuickEdit } from \"./FutureActionPanelQuickEdit\";\nexport { FutureActionPanelBulkEdit } from \"./FutureActionPanelBulkEdit\";\nexport { PostTypeSettingsPanel } from \"./PostTypeSettingsPanel\";\nexport { PostTypesSettingsPanels } from \"./PostTypesSettingsPanels\";\nexport { SettingRow } from \"./SettingRow\";\nexport { SettingsFieldset } from \"./SettingsFieldset\";\nexport { SettingsForm } from \"./SettingsForm\";\nexport { SettingsSection } from \"./SettingsSection\";\nexport { SettingsTable } from \"./SettingsTable\";\nexport { SubmitButton } from \"./SubmitButton\";\nexport { CheckboxControl } from \"./CheckboxControl\";\nexport { SelectControl } from \"./SelectControl\";\nexport { TextControl } from \"./TextControl\";\nexport { TokensControl } from \"./TokensControl\";\nexport { NonceControl } from \"./NonceControl\";\nexport { TrueFalseControl } from \"./TrueFalseControl\";\nexport { Spinner } from \"./Spinner\";\n","import { formatUnixTimeToTimestamp, getCurrentTimeAsTimestamp, normalizeUnixTimeToSeconds } from './time';\nimport { isNumber } from './utils';\nimport { register, createReduxStore } from '@wordpress/data';\n\nexport const createStore = (props) => {\n if (props.defaultState.terms && typeof props.defaultState.terms === 'string') {\n props.defaultState.terms = props.defaultState.terms.split(',').map(term => parseInt(term));\n }\n\n let defaultState = {\n action: props.defaultState.action,\n date: props.defaultState.date ? props.defaultState.date : getCurrentTimeAsTimestamp(),\n enabled: props.defaultState.autoEnable,\n terms: props.defaultState.terms ? props.defaultState.terms : [],\n taxonomy: props.defaultState.taxonomy ? props.defaultState.taxonomy : null,\n newStatus: props.defaultState.newStatus ? props.defaultState.newStatus : 'draft',\n termsListByName: null,\n termsListById: null,\n taxonomyName: null,\n isFetchingTerms: false,\n changeAction: 'no-change',\n calendarIsVisible: true,\n hasValidData: true,\n extraData: props.defaultState.extraData ? props.defaultState.extraData : {},\n }\n\n const store = createReduxStore(props.name, {\n reducer(state = defaultState, action) {\n switch (action.type) {\n case 'SET_ACTION':\n return {\n ...state,\n action: action.action,\n };\n case 'SET_NEW_STATUS':\n return {\n ...state,\n newStatus: action.newStatus,\n };\n case 'SET_DATE':\n // Make sure the date is a number, if it is a string with only numbers\n if (typeof action.date !== 'number' && isNumber(action.date)) {\n action.date = parseInt(action.date);\n }\n\n // If string, convert to unix time\n if (typeof action.date === 'string') {\n action.date = new Date(action.date).getTime();\n }\n\n // Make sure the time is always in seconds\n action.date = normalizeUnixTimeToSeconds(action.date);\n\n // Convert to formated string format, considering it is in the site's timezone\n action.date = formatUnixTimeToTimestamp(action.date);\n\n return {\n ...state,\n date: action.date,\n }\n case 'SET_ENABLED':\n return {\n ...state,\n enabled: action.enabled,\n }\n case 'SET_TERMS':\n return {\n ...state,\n terms: action.terms,\n }\n case 'SET_TAXONOMY':\n return {\n ...state,\n taxonomy: action.taxonomy,\n }\n case 'SET_TERMS_LIST_BY_NAME':\n return {\n ...state,\n termsListByName: action.termsListByName,\n }\n case 'SET_TERMS_LIST_BY_ID':\n return {\n ...state,\n termsListById: action.termsListById,\n }\n case 'SET_TAXONOMY_NAME':\n return {\n ...state,\n taxonomyName: action.taxonomyName,\n }\n case 'SET_CHANGE_ACTION':\n return {\n ...state,\n changeAction: action.changeAction,\n }\n case 'SET_CALENDAR_IS_VISIBLE':\n return {\n ...state,\n calendarIsVisible: action.calendarIsVisible,\n }\n case 'SET_HAS_VALID_DATA':\n return {\n ...state,\n hasValidData: action.hasValidData,\n }\n\n case 'SET_EXTRA_DATA':\n return {\n ...state,\n extraData: {\n ...action.extraData,\n }\n }\n\n case 'SET_EXTRA_DATA_BY_NAME':\n const extraData = {\n ...state.extraData,\n [action.name]: action.value\n };\n\n return {\n ...state,\n extraData: {...extraData}\n }\n }\n\n return state;\n },\n actions: {\n setAction(action) {\n return {\n type: 'SET_ACTION',\n action: action\n };\n },\n setNewStatus(newStatus) {\n return {\n type: 'SET_NEW_STATUS',\n newStatus: newStatus\n };\n },\n setDate(date) {\n return {\n type: 'SET_DATE',\n date: date\n };\n },\n setEnabled(enabled) {\n return {\n type: 'SET_ENABLED',\n enabled: enabled\n };\n },\n setTerms(terms) {\n return {\n type: 'SET_TERMS',\n terms: terms\n };\n },\n setTaxonomy(taxonomy) {\n return {\n type: 'SET_TAXONOMY',\n taxonomy: taxonomy\n };\n },\n setTermsListByName(termsListByName) {\n return {\n type: 'SET_TERMS_LIST_BY_NAME',\n termsListByName: termsListByName\n };\n },\n setTermsListById(termsListById) {\n return {\n type: 'SET_TERMS_LIST_BY_ID',\n termsListById: termsListById\n };\n },\n setTaxonomyName(taxonomyName) {\n return {\n type: 'SET_TAXONOMY_NAME',\n taxonomyName: taxonomyName\n };\n },\n setIsFetchingTerms(isFetchingTerms) {\n return {\n type: 'SET_IS_FETCHING_TERMS',\n isFetchingTerms: isFetchingTerms\n }\n },\n setChangeAction(changeAction) {\n return {\n type: 'SET_CHANGE_ACTION',\n changeAction: changeAction\n }\n },\n setCalendarIsVisible(calendarIsVisible) {\n return {\n type: 'SET_CALENDAR_IS_VISIBLE',\n calendarIsVisible: calendarIsVisible\n }\n },\n setHasValidData(hasValidData) {\n return {\n type: 'SET_HAS_VALID_DATA',\n hasValidData: hasValidData\n }\n },\n setExtraData(extraData) {\n return {\n type: 'SET_EXTRA_DATA',\n extraData: extraData\n }\n },\n setExtraDataByName(name, value) {\n return {\n type: 'SET_EXTRA_DATA_BY_NAME',\n name: name,\n value: value\n }\n }\n },\n selectors: {\n getAction(state) {\n return state.action;\n },\n getNewStatus(state) {\n return state.newStatus;\n },\n getDate(state) {\n return state.date;\n },\n getEnabled(state) {\n return state.enabled;\n },\n getTerms(state) {\n return state.terms;\n },\n getTaxonomy(state) {\n return state.taxonomy;\n },\n getTermsListByName(state) {\n return state.termsListByName;\n },\n getTermsListById(state) {\n return state.termsListById;\n },\n getTaxonomyName(state) {\n return state.taxonomyName;\n },\n getIsFetchingTerms(state) {\n return state.isFetchingTerms;\n },\n getChangeAction(state) {\n return state.changeAction;\n },\n getCalendarIsVisible(state) {\n return state.calendarIsVisible;\n },\n getHasValidData(state) {\n return state.hasValidData;\n },\n getExtraData(state) {\n return state.extraData;\n },\n getExtraDataByName(state, name) {\n return state.extraData[name] || null;\n }\n }\n });\n\n register(store);\n\n return store;\n}\n","export const getCurrentTimeInSeconds = () => {\n return normalizeUnixTimeToSeconds(new Date().getTime());\n}\n\nexport const getCurrentTimeAsTimestamp = () => {\n return formatUnixTimeToTimestamp(getCurrentTimeInSeconds());\n}\n\nexport const formatUnixTimeToTimestamp = (unixTimestamp) => {\n const date = new Date(\n normalizeUnixTimeToSeconds(unixTimestamp)\n );\n\n const year = date.getFullYear();\n const month = (\"0\" + (date.getMonth() + 1)).slice(-2); // Months are zero-based\n const day = (\"0\" + date.getDate()).slice(-2);\n const hours = (\"0\" + date.getHours()).slice(-2);\n const minutes = (\"0\" + date.getMinutes()).slice(-2);\n const seconds = (\"0\" + date.getSeconds()).slice(-2);\n\n return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;\n}\n\nexport const formatTimestampToUnixTime = (time) => {\n const date = new Date(time);\n\n return normalizeUnixTimeToSeconds(date.getTime());\n}\n\nexport const timeIsInSeconds = (time) => {\n return parseInt(time).toString().length <= 10;\n}\n\nexport const normalizeUnixTimeToSeconds = (time) => {\n time = parseInt(time);\n\n return timeIsInSeconds() ? time : time / 1000;\n}\n\nexport const normalizeUnixTimeToMilliseconds = (time) => {\n time = parseInt(time);\n\n return timeIsInSeconds() ? time * 1000 : time;\n}\n","export const compact = (array) => {\n if (!array) {\n return [];\n }\n\n if (! Array.isArray(array) && typeof array === 'object') {\n array = Object.values(array);\n }\n\n return array.filter((item) => {\n return item !== null && item !== undefined && item !== '';\n });\n}\n\nexport const debugLogFactory = (config) => {\n return (description, ...message) => {\n if (console && config.isDebugEnabled) {\n console.debug('[Future]', description, ...message);\n }\n }\n}\n\nexport const isGutenbergEnabled = () => {\n return document.body.classList.contains('block-editor-page');\n}\n\nexport const getElementByName = (name) => {\n return document.getElementsByName(name)[0];\n}\n\nexport const getFieldByName = (name, postId) => {\n return document.querySelector(`#the-list tr#post-${postId} .column-expirationdate input#future_action_${name}-${postId}`);\n}\n\nexport const getFieldValueByName = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field) {\n return null;\n }\n\n return field.value;\n};\n\nexport const getFieldValueByNameAsArrayOfInt = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field || !field.value) {\n return [];\n }\n\n if (typeof field.value === 'number') {\n field.value = field.value.toString();\n }\n\n return field.value.split(',').map(term => parseInt(term));\n};\n\nexport const getFieldValueByNameAsBool = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field) {\n return false;\n }\n\n return field.value === '1' || field.value === 'true';\n}\n\nexport const getActionSettingsFromColumnData = (postId) => {\n const columnData = document.querySelector(`#post-expire-column-${postId}`);\n\n if (!columnData) {\n return {};\n }\n\n return {\n enabled: columnData.dataset.actionEnabled === '1',\n action: columnData.dataset.actionType,\n date: columnData.dataset.actionDate,\n dateUnix: columnData.dataset.actionDateUnix,\n taxonomy: columnData.dataset.actionTaxonomy,\n terms: columnData.dataset.actionTerms,\n newStatus: columnData.dataset.actionNewStatus,\n };\n}\n\n/**\n * This function is used to determine if a value is a number, including strings.\n *\n * @param {*} value\n * @returns\n */\nexport const isNumber = (value) => {\n return !isNaN(value);\n}\n","module.exports = ReactDOM;","module.exports = publishpressFutureClassicEditorConfig;","module.exports = wp;","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.element;","module.exports = wp.hooks;","module.exports = wp.plugins;","module.exports = wp.url;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","import { FutureActionPanelClassicEditor } from './components';\nimport { createStore } from './data';\nimport { isGutenbergEnabled } from './utils';\nimport { createRoot } from '@wordpress/element';\nimport { select } from '@wordpress/data';\nimport {\n postType,\n isNewPost,\n actionsSelectOptions,\n is12Hour,\n timeFormat,\n startOfWeek,\n strings,\n taxonomyName,\n postTypeDefaultConfig,\n defaultDate,\n statusesSelectOptions\n} from \"&config.classic-editor\";\nimport { render } from \"react-dom\";\n\nif (! isGutenbergEnabled()) {\n const storeName = 'publishpress-future/future-action';\n\n if (!select(storeName)) {\n createStore({\n name: storeName,\n defaultState: {\n autoEnable: postTypeDefaultConfig.autoEnable,\n action: postTypeDefaultConfig.expireType,\n newStatus: postTypeDefaultConfig.newStatus,\n date: defaultDate,\n taxonomy: postTypeDefaultConfig.taxonomy,\n terms: postTypeDefaultConfig.terms,\n }\n });\n }\n\n const container = document.getElementById(\"publishpress-future-classic-editor\");\n const component = (\n \n );\n\n createRoot(container).render(component);\n}\n"],"names":["ButtonsPanel","props","children","CheckboxControl","description","useState","checked","setChecked","unescapedDescription","className","dangerouslySetInnerHTML","__html","Fragment","label","name","id","onChange","value","DateTimePicker","currentDate","is12Hour","startOfWeek","normalizeUnixTimeToMilliseconds","__nextRemoveHelpButton","wp","components","PanelRow","SelectControl","FormTokenField","Spinner","BaseControl","element","useEffect","decodeEntities","htmlEntities","addQueryArgs","url","data","useSelect","useDispatch","apiFetch","FutureActionPanel","action","select","storeName","getAction","date","getDate","enabled","getEnabled","terms","getTerms","taxonomy","getTaxonomy","taxonomyName","getTaxonomyName","termsListByName","getTermsListByName","termsListById","getTermsListById","isFetchingTerms","getIsFetchingTerms","calendarIsVisible","getCalendarIsVisible","hasValidData","getHasValidData","newStatus","getNewStatus","validationError","setValidationError","setAction","setDate","setEnabled","setTerms","setTaxonomy","setTermsListByName","setTermsListById","setTaxonomyName","setIsFetchingTerms","setCalendarIsVisible","setHasValidData","setNewStatus","insertTerm","term","count","link","slug","callOnChangeData","attribute","onChangeData","handleEnabledChange","isChecked","fetchTerms","path","then","result","forEach","getCalendarIsVisibleFromStorage","localStorage","getItem","context","autoEnableAndHideCheckbox","isCleanNewPost","setItem","onDataIsValid","onDataIsInvalid","selectedTerms","length","compact","map","mapTermsListById","termsListByNameKeys","Object","keys","is24hour","panelClass","contentPanelClass","datePanelClass","timeFormat","actionsSelectOptions","filter","item","indexOf","HelpText","string","href","target","parts","split","push","shift","before","after","key","replaceCurlyBracketsWithLink","strings","timezoneSettingsHelp","displayTaxonomyField","String","includes","termsFieldLabel","newTerms","replace","removeTerms","addTerms","valid","errorActionRequired","errorDateRequired","Date","errorDateInPast","isTermRequired","noTermIsSelected","errorTermsRequired","validateData","SlotFillProvider","type","FutureActionPanelTop","Slot","fillProps","enablePostExpiration","options","FutureActionPanelAfterActionField","statusesSelectOptions","loading","noTaxonomyFound","noTermsFound","suggestions","mapTermsListByName","placeholder","addTermsPlaceholder","maxSuggestions","onFocus","e","jQuery","addClass","__experimentalExpandOnFocus","__experimentalAutoSelectFirstMatch","ToggleCalendarDatePicker","onChangeDate","onToggleCalendar","isExpanded","PluginArea","scope","Fill","FutureActionPanelBlockEditor","PluginDocumentSettingPanel","editPost","getEditedPostAttribute","lockPostSaving","unlockPostSaving","title","panelTitle","initialOpen","postTypeDefaultConfig","autoEnable","postType","store","newAttribute","getExtraData","publishpress_future_action","entries","editPostAttribute","FutureActionPanelBulkEdit","changeAction","getChangeAction","setChangeAction","termsString","join","noChange","changeAdd","addOnly","changeOnly","removeOnly","prop","futureActionUpdate","isNewPost","getElementByName","nonce","FutureActionPanelClassicEditor","getTimezoneOffset","document","getElementsByName","getElementValueByName","parseInt","getTermsFromElementByName","FutureActionPanelQuickEdit","NonceControl","referrer","PostTypeSettingsPanel","originalExpireTypeList","expireTypeList","settings","postTypeTaxonomy","setPostTypeTaxonomy","termOptions","setTermOptions","termsSelectIsLoading","setTermsSelectIsLoading","setSelectedTerms","howToExpire","settingHowToExpire","setSettingHowToExpire","active","isActive","setIsActive","defaultExpireOffset","expireOffset","setExpireOffset","emailNotification","setEmailNotification","autoEnabled","isAutoEnabled","setIsAutoEnabled","taxonomyLabel","setTaxonomyLabel","howToExpireList","setHowToExpireList","hasPendingValidation","setHasPendingValidation","offsetPreview","setOffsetPreview","currentTime","setCurrentTime","apiRequestControllerRef","useRef","AbortController","taxonomyRelatedActions","newExpireTypeList","taxonomiesList","settingsTermsOptions","option","offset","globalDefaultExpireOffset","controller","current","abort","signal","method","isValid","message","preview","catch","error","expireType","toLowerCase","onValidationStarted","onValidationFinished","termOptionsLabels","settingsRows","SettingRow","text","fieldActive","fieldActiveLabel","fieldAutoEnable","fieldAutoEnableLabel","fieldTaxonomy","selected","noItemFoundMessage","noItemsfound","fieldTaxonomyDescription","fieldHowToExpire","fieldHowToExpireDescription","statusesList","TokensControl","fieldTerm","isLoading","fieldTermDescription","expandOnFocus","autoSelectFirstMatch","fieldDefaultDateTimeOffset","TextControl","fieldDefaultDateTimeOffsetDescription","datePreview","datePreviewCurrent","datePreviewComputed","fieldWhoToNotify","fieldWhoToNotifyDescription","applyFilters","SettingsFieldset","legend","SettingsTable","bodyChildren","PostTypesSettingsPanels","panels","postTypeSettings","valign","htmlFor","SettingsForm","SettingsSection","SubmitButton","disabled","ToggleArrowButton","iconExpanded","iconCollapsed","icon","titleExpanded","titleCollapsed","Button","isSmall","onClick","toggleButtonElement","querySelector","dateTimeElement","nextElementSibling","timeElement","dateElement","nextSibling","insertBefore","hideCalendar","showCalendar","stringValue","setStringValue","TrueFalseControl","trueValue","is","defaultChecked","trueLabel","falseValue","falseLabel","createStore","defaultState","getCurrentTimeAsTimestamp","extraData","createReduxStore","reducer","state","isNumber","getTime","normalizeUnixTimeToSeconds","formatUnixTimeToTimestamp","actions","setExtraData","setExtraDataByName","selectors","getExtraDataByName","register","getCurrentTimeInSeconds","unixTimestamp","getFullYear","getMonth","slice","getHours","getMinutes","getSeconds","timeIsInSeconds","formatTimestampToUnixTime","time","toString","getFieldByName","array","Array","isArray","values","debugLogFactory","config","console","isDebugEnabled","debug","isGutenbergEnabled","body","classList","contains","postId","getFieldValueByName","field","getFieldValueByNameAsArrayOfInt","getFieldValueByNameAsBool","getActionSettingsFromColumnData","columnData","dataset","actionEnabled","actionType","actionDate","dateUnix","actionDateUnix","actionTaxonomy","actionTerms","actionNewStatus","isNaN","module","exports","ReactDOM","publishpressFutureClassicEditorConfig","hooks","plugins","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","defaultDate","container","getElementById","component","createRoot","render"],"sourceRoot":""} +{"version":3,"file":"classic-editor.js","mappings":"wFAI4BA,EAAAA,aAAA,SAAUC,GAClC,OACI,+BACKA,EAAMC,SAGlB,C,+FCPD,UACA,UAE+BC,EAAAA,gBAAA,SAAUF,GAAO,IAGxCG,EAHwC,E,2YAAA,EACd,IAAAC,UAASJ,EAAMK,UAAW,GADZ,GACrCA,EADqC,KAC5BC,EAD4B,KAoB5C,OAbIH,EAFAH,EAAMO,qBAEQ,yBAAGC,UAAU,cAAcC,wBAAyB,CAAEC,OAAQV,EAAMG,eAEpE,yBAAGK,UAAU,eAAeR,EAAMG,aAYhD,oBAAC,EAAAQ,SAAD,KACI,oBAAC,kBAAD,CACIC,MAAOZ,EAAMY,MACbC,KAAMb,EAAMa,KACZC,GAAId,EAAMa,KACVL,UAAWR,EAAMQ,UACjBH,QAASA,IAAW,EACpBU,SAhBK,SAAUC,GACvBV,EAAWU,GAEPhB,EAAMe,UACNf,EAAMe,SAASC,EAEtB,IAaQb,EAGZ,C,+eCxCD,UAMA,UACA,UAEAc,EAAQ,MAED,IAAMC,EAAoBA,EAAAA,kBAAA,SAAC,GAS5B,IARFC,EAQE,EARFA,OACAP,EAOE,EAPFA,MACAQ,EAME,EANFA,iBACAC,EAKE,EALFA,mBACAC,EAIE,EAJFA,2BACAC,EAGE,EAHFA,gCACAC,EAEE,EAFFA,wBAEE,IADFC,YAAAA,OACE,YACwC,IAAArB,UAAS,IADjD,SACKsB,EADL,KACoBC,EADpB,QAEoC,IAAAvB,YAFpC,SAEKwB,EAFL,KAEkBC,EAFlB,KAIIC,GAA0B,IAAAC,QAAO,IAAIC,kBA+C3C,IAAAC,YAAU,YA7CiB,WACvB,GAAId,EAAQ,CACR,IAAMe,EAAaJ,EAAwBK,QAEvCD,GACAA,EAAWE,QAGfN,EAAwBK,QAAU,IAAIH,gBAP9B,IAQAK,EAAWP,EAAwBK,QAAnCE,OAERd,GAAgC,IAEhC,IAAAe,UAAS,CACLC,MAAM,IAAAC,cAAA,0DACNC,OAAQ,OACRC,KAAM,CACFvB,OAAAA,GAEJkB,OAAAA,IACDM,MAAK,SAACC,GACLrB,GAAgC,GAEhCC,EAAwBoB,EAAOC,SAC/BvB,EAA2BsB,EAAOE,SAE9BF,EAAOC,SACPlB,EAAiBiB,EAAOG,SACxBlB,EAAee,EAAOhB,cAEtBD,EAAiB,GAExB,IAAEqB,OAAM,SAACC,GACa,eAAfA,EAAMpC,OAIVU,GAAgC,GAChCC,GAAwB,GACxBF,EAA2B2B,EAAMH,SACjCnB,EAAiB,IACpB,GACJ,CACJ,CAGGuB,EACH,GAAE,CAAC/B,IAEJ,IAAMgC,EAAe1B,EAAc,WAAa,GAEhD,OACI,oBAAC,EAAAd,SAAD,KACMQ,GACE,2BAAKX,UAAW,mCAAqC2C,GACjD,8BAAMvC,GACN,2BAAKJ,UAAU,yCACX,+BACI,4BAAMA,UAAU,0CAA2CY,EAA3D,MACA,4BAAMZ,UAAU,0CAA0CoB,IAE9D,+BACI,4BAAMpB,UAAU,0CAA2Ca,EAA3D,MACA,4BAAMb,UAAU,0CAA0CkB,MAOrF,E,UAEcR,C,0FClGf,cACA,UAG8BkC,EAAAA,eAAA,SAAC,GAAmD,IAAlDC,EAAkD,EAAlDA,YAAatC,EAAqC,EAArCA,SAAUuC,EAA2B,EAA3BA,SAAUC,EAAiB,EAAjBA,YAK7D,MAJ2B,iBAAhBF,IACPA,GAAc,IAAAG,iCAAgCH,IAI9C,oBAAC,iBAAD,CACIA,YAAaA,EACbtC,SAAUA,EACV0C,wBAAwB,EACxBH,SAAUA,EACVC,YAAaA,GAGxB,C,2rBClBD,UACA,UACA,UACA,UACA,UACA,U,EAE2FG,GAAGC,WAAtFC,EAAAA,EAAAA,SAAU1D,EAAAA,EAAAA,gBAAiB2D,EAAAA,EAAAA,cAAeC,EAAAA,EAAAA,eAAgBC,EAAAA,EAAAA,QAASC,EAAAA,EAAAA,Y,EACjCN,GAAGO,QAArCtD,EAAAA,EAAAA,SAAUsB,EAAAA,EAAAA,UAAW7B,EAAAA,EAAAA,SACrB8D,EAAmBR,GAAGS,aAAtBD,eACA1B,EAAiBkB,GAAGU,IAApB5B,a,EAIJkB,GAAGhB,KAFH2B,EAAAA,EAAAA,UACAC,EAAAA,EAAAA,YAEIhC,EAAaoB,GAAbpB,SAEyBiC,EAAAA,kBAAA,SAACvE,GAAU,MAcpCqE,GAAU,SAACG,GACX,MAAO,CACHC,OAAQD,EAAOxE,EAAM0E,WAAWC,YAChCC,KAAMJ,EAAOxE,EAAM0E,WAAWG,UAC9BC,QAASN,EAAOxE,EAAM0E,WAAWK,aACjCC,MAAOR,EAAOxE,EAAM0E,WAAWO,WAC/BC,SAAUV,EAAOxE,EAAM0E,WAAWS,cAClCC,aAAcZ,EAAOxE,EAAM0E,WAAWW,kBACtCC,gBAAiBd,EAAOxE,EAAM0E,WAAWa,qBACzCC,cAAehB,EAAOxE,EAAM0E,WAAWe,mBACvCC,gBAAiBlB,EAAOxE,EAAM0E,WAAWiB,qBACzCC,kBAAmBpB,EAAOxE,EAAM0E,WAAWmB,uBAC3CC,aAActB,EAAOxE,EAAM0E,WAAWqB,kBACtCC,UAAWxB,EAAOxE,EAAM0E,WAAWuB,eAE1C,IA3BGxB,EAFoC,EAEpCA,OACAG,EAHoC,EAGpCA,KACAE,EAJoC,EAIpCA,QACAE,EALoC,EAKpCA,MACAE,EANoC,EAMpCA,SACAE,EAPoC,EAOpCA,aACAE,EARoC,EAQpCA,gBACAE,EAToC,EASpCA,cACAE,EAVoC,EAUpCA,gBACAE,EAXoC,EAWpCA,kBACAE,EAZoC,EAYpCA,aACAE,EAboC,EAapCA,UAboC,EA+BM5F,EAAS,IA/Bf,SA+BjC8F,EA/BiC,KA+BhBC,EA/BgB,OA8CpC7B,EAAYtE,EAAM0E,WAZlB0B,EAlCoC,EAkCpCA,UACAC,EAnCoC,EAmCpCA,QACAC,EApCoC,EAoCpCA,WACAC,EArCoC,EAqCpCA,SACAC,EAtCoC,EAsCpCA,YACAC,EAvCoC,EAuCpCA,mBACAC,EAxCoC,EAwCpCA,iBACAC,EAzCoC,EAyCpCA,gBACAC,EA1CoC,EA0CpCA,mBACAC,EA3CoC,EA2CpCA,qBACAC,EA5CoC,EA4CpCA,gBACAC,EA7CoC,EA6CpCA,aAaEC,EAAa,SAACC,GAChB3B,EAAgB2B,GAAQ,CAAEnG,GAAImG,EAAMC,MAAO,EAAG/G,YAAa,GAAIgH,KAAM,GAAItG,KAAMoG,EAAMG,KAAMH,EAAM/B,SAAUA,GAC3GM,EAAcyB,GAAQA,EACtBR,EAAmBnB,GACnBoB,EAAiBlB,GACjBe,EAAAA,GAAAA,O,sHAAAA,CAAavB,GAAb,CAAoBiC,IAEvB,EAkBKI,GAAmB,SAACC,EAAWtG,GACC,mBAAvBhB,EAAMuH,cACbvH,EAAMuH,aAAaD,EAAWtG,EAErC,EAEKwG,GAAsB,SAACC,GACzBnB,EAAWmB,GAEPA,IACArB,EAAUpG,EAAMyE,QAChB4B,EAAQrG,EAAM4E,MACdmC,EAAa/G,EAAMgG,WACnBO,EAASvG,EAAMgF,OACfwB,EAAYxG,EAAMkF,UAElBwC,MAGJL,GAAiB,UAAWI,EAC/B,EA4BKC,GAAa,WACf,IAAIpC,EAAkB,CAAC,EACnBE,EAAgB,CAAC,EAEhBN,IAIL0B,GAAmB,GAEnBtE,EAAS,CACLC,KAAMC,EAAa,gCAAgC0C,KACpDvC,MAAK,SAACC,GACLA,EAAOoC,MAAM2C,SAAQ,SAAAV,GACjB3B,EAAgBpB,EAAe+C,EAAKpG,OAASoG,EAC7CzB,EAAcyB,EAAKnG,IAAMoD,EAAe+C,EAAKpG,KAChD,IAED4F,EAAmBnB,GACnBoB,EAAiBlB,GACjBmB,EAAgBzC,EAAetB,EAAOwC,eACtCwB,GAAmB,EACtB,IACJ,EAMKgB,GAAkC,WACpC,OAAOC,aAAaC,QAAQ,qCAAuC9H,EAAM+H,QAC5E,EAED9F,GAAU,WACFjC,EAAMgI,0BACN1B,GAAW,GAEXA,EAAWtG,EAAM8E,SAGrBsB,EAAUpG,EAAMyE,QAChBsC,EAAa/G,EAAMgG,WACnBK,EAAQrG,EAAM4E,MACd2B,EAASvG,EAAMgF,OACfwB,EAAYxG,EAAMkF,UAEwB,OAAtC0C,KACAf,EAAqB7G,EAAM4F,mBAE3BiB,EAA2D,MAAtCe,OAA+C5H,EAAMiI,uBAI1EjI,EAAM8E,UACF9E,EAAMkI,gBAENV,IAAoB,GAGxBE,KAEP,GAAE,IAEHzF,GAAU,WAtC8B,IAACjB,IAuCL4E,EAtChCiC,aAAaM,QAAQ,qCAAuCnI,EAAM+H,QAAS/G,EAAQ,IAAM,IAuC5F,GAAE,CAAC4E,IAEJ3D,GAAU,WACF6D,GAAgB9F,EAAMoI,eACtBpI,EAAMoI,iBAGLtC,GAAgB9F,EAAMqI,iBACvBrI,EAAMqI,iBAEb,GAAE,CAACvC,IAEJ,IAAIwC,GAAgB,GAChBtD,GAASA,EAAMuD,OAAS,GAAK/C,IAC7B8C,IAAgB,IAAAE,SAlKK,SAACxD,GACtB,MAAqB,iBAAjB,IAAOA,EAAP,cAAOA,KAAgC,OAAVA,EACtB,CAAC,EAGLA,EAAMyD,KAAI,SAACxB,GACd,OAAOzB,EAAcyB,EACxB,GACJ,CA0J2ByB,CAAiB1D,IAEZ,iBAAlBsD,KACPA,GAAgB,KAIxB,IAAIK,GAAsB,GACK,iBAA3B,IAAOrD,EAAP,cAAOA,KAAoD,OAApBA,IACvCqD,GAAsBC,OAAOC,KAAKvD,IAGtC,IAIIwD,GAJEC,GAAanD,EAAoB,sBAAwB,sCACzDoD,GAAoBpD,EAAoB,8BAAgC,8CACxEqD,GAAiBrD,EAAoB,2BAA6B,2CAIpEkD,GADqB,cAArB9I,EAAMkJ,YACMlJ,EAAMsD,SAEc,QAArBtD,EAAMkJ,WAGrB,IAoBIC,GAAuBnJ,EAAMmJ,qBAC5BnJ,EAAMkF,WACPiE,GAAuBnJ,EAAMmJ,qBAAqBC,QAAO,SAACC,GACtD,OAAuG,IAAhG,CAAC,WAAY,eAAgB,kBAAmB,uBAAuBC,QAAQD,EAAKrI,MAC9F,KAGL,IAAMuI,GA3B+B,SAACC,EAAQC,EAAMC,GAChD,IAAMC,EAAQH,EAAOI,MAAM,KACrBhH,EAAS,GAEfA,EAAOiH,KAAKF,EAAMG,SAJyC,2BAM3D,YAAmBH,EAAnB,+CAA0B,eACOC,MAAM,KADb,SACfG,EADe,KACPC,EADO,KAGtBpH,EAAOiH,KACH,yBAAGJ,KAAMA,EAAMC,OAiBwG,SAjBxFO,IAAKR,GAAOM,IAG/CnH,EAAOiH,KAAKG,EACf,CAd0D,8EAgB3D,OAAOpH,CACV,CAUgBsH,CAA6BlK,EAAMmK,QAAQC,qBAAsB,iDAC5EC,GAAuBC,OAAO7F,GAAQ8F,SAAS,aAA0B,wBAAX9F,EAEhE+F,GAAkBpF,EACtB,OAAQX,GACJ,IAAK,WACD+F,GAAkBxK,EAAMmK,QAAQM,SAASC,QAAQ,KAAMtF,GACvD,MACJ,IAAK,kBACDoF,GAAkBxK,EAAMmK,QAAQQ,YAAYD,QAAQ,KAAMtF,GAC1D,MACJ,IAAK,eACDoF,GAAkBxK,EAAMmK,QAAQS,SAASF,QAAQ,KAAMtF,GA8D/D,OAnBAnD,GAAU,WACN,IAAK6C,EAID,OAHAgC,GAAgB,QAChBX,EAAmB,IAKvBW,EA/CiB,WACjB,IAAI+D,GAAQ,EAEZ,IAAK/F,EAED,OADAqB,EAAmB,KACZ,EAGN1B,IACD0B,EAAmBnG,EAAMmK,QAAQW,qBACjCD,GAAQ,GAGPjG,IACDuB,EAAmBnG,EAAMmK,QAAQY,mBACjCF,GAAQ,GAIRjG,GAAQ,IAAIoG,KAAKpG,GAAQ,IAAIoG,OAC7B7E,EAAmBnG,EAAMmK,QAAQc,iBACjCJ,GAAQ,GAGZ,IAAMK,EAAiB,CAAC,WAAY,eAAgB,mBAAmBX,SAAS9F,GAC1E0G,EAAoC,IAAjBnG,EAAMuD,QAAkC,IAAjBvD,EAAMuD,SAA8B,KAAbvD,EAAM,IAA0B,MAAbA,EAAM,IAWhG,OATIkG,GAAkBC,IAClBhF,EAAmBnG,EAAMmK,QAAQiB,oBACjCP,GAAQ,GAGRA,GACA1E,EAAmB,IAGhB0E,CACV,CAUmBQ,GACnB,GAAE,CAAC5G,EAAQG,EAAME,EAASE,EAAOE,IAW9B,oBAAC,EAAAoG,iBAAD,KACI,2BAAK9K,UAAWuI,IACX/I,EAAMgI,2BACH,6BAAOuD,KAAK,SAAS1K,KAAM,wBAAyBG,MAAO,IAG/D,oBAAC,EAAAwK,qBAAqBC,KAAtB,CAA2BC,UAAW,CAAEhH,UAAW1E,EAAM0E,cAEvD1E,EAAMgI,2BACJ,oBAACpE,EAAD,KACI,oBAAC1D,EAAD,CACIU,MAAOZ,EAAMmK,QAAQwB,qBACrBtL,QAASyE,IAAW,EACpB/D,SAAUyG,GACVhH,UAAU,mCAKrBsE,GACG,oBAACnE,EAAD,KACI,oBAACiD,EAAD,CAAUpD,UAAWwI,GAAoB,6BACrC,oBAACnF,EAAD,CACIjD,MAAOZ,EAAMmK,QAAQ1F,OACrBzD,MAAOyD,EACPmH,QAASzC,GACTpI,SAhQD,SAACC,GACxBoF,EAAUpF,GAEVqG,GAAiB,SAAUrG,EAC9B,EA6P2BR,UAAU,iCAIlB,oBAAC,EAAAqL,kCAAkCJ,KAAnC,CAAwCC,UAAW,CAAEhH,UAAW1E,EAAM0E,aAE1D,kBAAXD,GACG,oBAACb,EAAD,CAAUpD,UAAU,cAChB,oBAACqD,EAAD,CACIjD,MAAOZ,EAAMmK,QAAQnE,UACrB4F,QAAS5L,EAAM8L,sBACf9K,MAAOgF,EACPjF,SAvQF,SAACC,GAC3B+F,EAAa/F,GAEbqG,GAAiB,YAAarG,EACjC,EAoQ+BR,UAAU,qCAMlB6J,KACI3E,GACI,oBAAC9B,EAAD,KACI,oBAACI,EAAD,CAAapD,MAAOwE,GACZpF,EAAMmK,QAAQ4B,QADtB,KACkC3G,EADlC,IAEI,oBAACrB,EAAD,UAIPmB,GACD,oBAACtB,EAAD,KACI,oBAACI,EAAD,CAAapD,MAAOwE,EAAc5E,UAAU,yBACxC,+BACI,yBAAGA,UAAU,gCADjB,IACqDR,EAAMmK,QAAQ6B,oBAMxC,IAA/BrD,GAAoBJ,QAChB,oBAAC3E,EAAD,KACI,oBAACI,EAAD,CAAapD,MAAOwE,EAAc5E,UAAU,yBACxC,+BACI,yBAAGA,UAAU,gCADjB,IACqDR,EAAMmK,QAAQ8B,iBAM3E,oBAACrI,EAAD,CAAUpD,UAAU,4BAChB,oBAACwD,EAAD,KACI,oBAACF,EAAD,CACIlD,MAAO4J,GACPxJ,MAAOsH,GACP4D,YAAavD,GACb5H,SArS1B,SAACC,GACvBA,EAzDuB,SAACgE,GACxB,MAAqB,iBAAjB,IAAOA,EAAP,cAAOA,KAAgC,OAAVA,EACtB,CAAC,EAGLA,EAAMyD,KAAI,SAACxB,GACd,OAAI3B,EAAgB2B,GACT3B,EAAgB2B,GAAMnG,IAGjCkG,EAAWC,GAEJA,EACV,GACJ,CA2CWkF,CAAmBnL,GAE3BuF,EAASvF,GAETqG,GAAiB,QAASrG,EAC7B,EAgSmDoL,YAAapM,EAAMmK,QAAQkC,oBAC3B7L,UAAU,sBACV8L,eAAgB,IAChBC,QA1Ff,SAACC,GAClCC,OAAOD,EAAE9C,QAAQgD,SAAS,SAC7B,EAyFmDC,6BAA6B,EAC7BC,oCAAoC,OAUpE,oBAAChJ,EAAD,CAAUpD,UAAWyI,IACjB,oBAAC,EAAA4D,yBAAD,CACIxJ,YAAauB,EACbkI,aA9TH,SAAC9L,GACtBqF,EAAQrF,GAERqG,GAAiB,OAAQrG,EAC5B,EA2T2B+L,iBAAkB,kBAAMlG,GAAsBjB,EAA5B,EAClBtC,UAAWwF,GACXvF,YAAavD,EAAMuD,YACnByJ,WAAYpH,EACZuE,QAASnK,EAAMmK,WAIvB,oBAACvG,EAAD,KACI,2BAAKpD,UAAU,2BACX,+BAEA,4BAAMA,UAAU,6BAHpB,IAGwD+I,MAI1DzD,GACE,oBAAClC,EAAD,KACI,oBAACI,EAAD,CAAaxD,UAAU,uBACnB,+BAAM0F,OAO9B,oBAAC,EAAA+G,WAAD,CAAYC,MAAM,wBAG7B,C,qRCleD,UAEarB,EAAoCA,EAAAA,kCAAA,SAAC,GAAD,IAAG5L,EAAH,EAAGA,SAAH,OAC7C,oBAAC,EAAAkN,KAAD,CAAMtM,KAAK,qCACNZ,EAFwC,EAUjD4L,EAAkCJ,KAJY,SAACzL,GAAD,OAC1C,oBAAC,EAAAyL,KAAD,GAAM5K,KAAK,qCAAwCb,GADT,E,UAM/B6L,C,0fCdf,UAE4CuB,EAAAA,6BAAA,SAACpN,GAAU,IAC3CqN,EAA+B3J,GAAG4J,SAAlCD,2BAD2C,EAEnB3J,GAAGhB,KAA3B4B,EAF2C,EAE3CA,YAAaE,EAF8B,EAE9BA,OAEb8I,EAAahJ,EAAY,eAAzBgJ,SAkCF5K,EAAO8B,EAAO,eAAe+I,uBAAuB,8BAtCP,EAwCNjJ,EAAY,eAAjDkJ,EAxC2C,EAwC3CA,eAAgBC,EAxC2B,EAwC3BA,iBAUxB,OACI,oBAACJ,EAAD,CACIxM,KAAM,mCACN6M,MAAO1N,EAAMmK,QAAQwD,WACrBC,YAAa5N,EAAM6N,sBAAsBC,WACzCtN,UAAW,wBACX,2BAAKM,GAAG,oCACJ,oBAAC,EAAAyD,kBAAD,CACIwD,QAAS,eACTgG,SAAU/N,EAAM+N,SAChB7F,eAAgBlI,EAAMkI,eACtBiB,qBAAsBnJ,EAAMmJ,qBAC5B2C,sBAAuB9L,EAAM8L,sBAC7BhH,QAASpC,EAAKoC,QACdc,mBAAmB,EACnBnB,OAAQ/B,EAAK+B,OACbuB,UAAWtD,EAAKsD,UAChBpB,KAAMlC,EAAKkC,KACXI,MAAOtC,EAAKsC,MACZE,SAAUxC,EAAKwC,SACfE,aAAcpF,EAAMoF,aACpBmC,aApDK,SAACD,EAAWtG,GAC7B,IAAMgN,EAAQxJ,EAAOxE,EAAM0E,WAErBuJ,EAAe,CACjB,QAAWD,EAAMjJ,cAGjBkJ,EAAanJ,UACbmJ,EAAA,OAAyBD,EAAMrJ,YAC/BsJ,EAAA,UAA4BD,EAAM/H,eAClCgI,EAAA,KAAuBD,EAAMnJ,UAC7BoJ,EAAA,MAAwBD,EAAM/I,WAC9BgJ,EAAA,SAA2BD,EAAM7I,cACjC8I,EAAA,UAA4BD,EAAME,gBA1BhB,SAACD,GACvB,IAAM3G,EAAY,CACd6G,2BAA4B,CAAC,GAFO,uBAMxC,YAA4BvF,OAAOwF,QAAQH,GAA3C,+CAA0D,wBAA9CpN,EAA8C,KAAxCG,EAAwC,KACtDsG,EAAU6G,2BAA2BtN,GAAQG,CAChD,CARuC,8EAUxCsM,EAAShG,EACZ,CAkBG+G,CAAkBJ,EACrB,EAoCe3K,SAAUtD,EAAMsD,SAChB4F,WAAYlJ,EAAMkJ,WAClB3F,YAAavD,EAAMuD,YACnBmB,UAAW1E,EAAM0E,UACjByF,QAASnK,EAAMmK,QACf/B,cAnCM,WAClBqF,EAAiB,gBACpB,EAkCexF,sBAAuBjI,EAAMiI,sBAC7BI,gBAjCQ,WACpBmF,EAAe,gBAClB,KAmCJ,C,qTCrFD,UACA,UAEyCc,EAAAA,0BAAA,SAACtO,GAAU,MACL0D,GAAGhB,KAAtC2B,EADwC,EACxCA,UAAWC,EAD6B,EAC7BA,YAAaE,EADgB,EAChBA,OACxBvC,EAAcyB,GAAGO,QAAjBhC,UAWF2C,EAAOP,GAAU,SAACG,GAAD,OAAYA,EAAOxE,EAAM0E,WAAWG,SAApC,GAA+C,IAChEC,EAAUT,GAAU,SAACG,GAAD,OAAYA,EAAOxE,EAAM0E,WAAWK,YAApC,GAAkD,IACtEN,EAASJ,GAAU,SAACG,GAAD,OAAYA,EAAOxE,EAAM0E,WAAWC,WAApC,GAAiD,IACpEqB,EAAY3B,GAAU,SAACG,GAAD,OAAYA,EAAOxE,EAAM0E,WAAWuB,cAApC,GAAoD,IAC1EjB,EAAQX,GAAU,SAACG,GAAD,OAAYA,EAAOxE,EAAM0E,WAAWO,UAApC,GAAgD,IAClEC,EAAWb,GAAU,SAACG,GAAD,OAAYA,EAAOxE,EAAM0E,WAAWS,aAApC,GAAmD,IACxEoJ,EAAelK,GAAU,SAACG,GAAD,OAAYA,EAAOxE,EAAM0E,WAAW8J,iBAApC,GAAuD,IAChF1I,EAAezB,GAAU,SAACG,GAAD,OAAYA,EAAOxE,EAAM0E,WAAWqB,iBAApC,GAAuD,IAGlF0I,EACAnK,EAAYtE,EAAM0E,WADlB+J,gBAGAC,EAAc1J,EACG,iBAAjB,IAAOA,EAAP,cAAOA,MACP0J,EAAc1J,EAAM2J,KAAK,MAG7B,IAIM/C,EAAU,CACZ,CAAE5K,MAAO,YAAaJ,MAAOZ,EAAMmK,QAAQyE,UAC3C,CAAE5N,MAAO,aAAcJ,MAAOZ,EAAMmK,QAAQ0E,WAC5C,CAAE7N,MAAO,WAAYJ,MAAOZ,EAAMmK,QAAQ2E,SAC1C,CAAE9N,MAAO,cAAeJ,MAAOZ,EAAMmK,QAAQ4E,YAC7C,CAAE/N,MAAO,cAAeJ,MAAOZ,EAAMmK,QAAQ6E,aAejD,OAVA/M,GAAU,WAGF6D,GAAiC,cAAjByI,EAChB9B,OAAO,cAAcwC,KAAK,YAAY,GAEtCxC,OAAO,cAAcwC,KAAK,YAAY,EAE7C,GAAE,CAACnJ,EAAcyI,IAGd,2BAAK/N,UAAW,wBACZ,oBAAC,EAAAqD,cAAD,CACIjD,MAAOZ,EAAMmK,QAAQ+E,mBACrBrO,KAAM,mCACNG,MAAOuN,EACP3C,QAASA,EACT7K,SA/BiB,SAACC,GAC1ByN,EAAgBzN,EACnB,IAU6B,CAAC,aAAc,WAAY,eAsB1BuJ,SAASgE,IAC5B,oBAAC,EAAAhK,kBAAD,CACIwD,QAAS,YACTC,2BAA2B,EAC3B+F,SAAU/N,EAAM+N,SAChB7F,eAAgBlI,EAAMmP,UACtBhG,qBAAsBnJ,EAAMmJ,qBAC5B2C,sBAAuB9L,EAAM8L,sBAC7BhH,SAAS,EACTc,mBAAmB,EACnBnB,OAAQA,EACRuB,UAAWA,EACXpB,KAAMA,EACNI,MAAOA,EACPE,SAAUA,EACVE,aAAcpF,EAAMoF,aACpBmC,aA7EK,SAACD,EAAWtG,IAC7B,IAAAoO,kBAAiB,8BAA8BpO,MAAQwD,EAAOxE,EAAM0E,WAAWK,aAAe,EAAI,GAClG,IAAAqK,kBAAiB,6BAA6BpO,MAAQwD,EAAOxE,EAAM0E,WAAWC,aAC9E,IAAAyK,kBAAiB,iCAAiCpO,MAAQwD,EAAOxE,EAAM0E,WAAWuB,gBAClF,IAAAmJ,kBAAiB,2BAA2BpO,MAAQwD,EAAOxE,EAAM0E,WAAWG,WAC5E,IAAAuK,kBAAiB,4BAA4BpO,MAAQwD,EAAOxE,EAAM0E,WAAWO,WAAW0J,KAAK,MAC7F,IAAAS,kBAAiB,+BAA+BpO,MAAQwD,EAAOxE,EAAM0E,WAAWS,aACnF,EAuEe7B,SAAUtD,EAAMsD,SAChB4F,WAAYlJ,EAAMkJ,WAClB3F,YAAavD,EAAMuD,YACnBmB,UAAW1E,EAAM0E,UACjBuD,sBAAuBjI,EAAMiI,sBAC7BkC,QAASnK,EAAMmK,UAIvB,6BAAOoB,KAAK,SAAS1K,KAAM,6BAA8BG,MAAO8D,EAAU,EAAI,IAC9E,6BAAOyG,KAAK,SAAS1K,KAAM,4BAA6BG,MAAOyD,IAC/D,6BAAO8G,KAAK,SAAS1K,KAAM,gCAAiCG,MAAOgF,IACnE,6BAAOuF,KAAK,SAAS1K,KAAM,0BAA2BG,MAAO4D,IAC7D,6BAAO2G,KAAK,SAAS1K,KAAM,2BAA4BG,MAAO0N,IAC9D,6BAAOnD,KAAK,SAAS1K,KAAM,8BAA+BG,MAAOkE,IACjE,6BAAOqG,KAAK,SAAS1K,KAAM,0BAA2BG,MAAM,cAC5D,6BAAOuK,KAAK,SAAS1K,KAAM,uBAAwBG,MAAOhB,EAAMqP,QAG3E,C,0GCxGD,cACA,UACA,QAE8CC,EAAAA,+BAAA,SAACtP,IACb,IAAIgL,MAAOuE,oBAAzC,IAEMH,EAAmB,SAACvO,GACtB,OAAO2O,SAASC,kBAAkB5O,GAAM,EAC3C,EA4BK6O,EAAwB,SAAC7O,GAC3B,IAAMoD,EAAUmL,EAAiBvO,GACjC,OAAKoD,EAIEA,EAAQjD,MAHJ,EAId,EAEK0B,EAAO,CACToC,QAA4D,MAAnD4K,EAAsB,yBAC/BjL,OAAQiL,EAAsB,wBAC9B1J,UAAW0J,EAAsB,4BACjC9K,KAAM8K,EAAsB,sBAC5B1K,MA7B8B,SAACnE,GAC/B,IAAMoD,EAAUmL,EA4BiB,uBA3BjC,IAAKnL,EACD,MAAO,GAGX,IAAIe,EAAQf,EAAQjD,MAAM4I,MAAM,KAMhC,OAJqB,IAAjB5E,EAAMuD,QAA6B,KAAbvD,EAAM,KAC5BA,EAAQ,IAGLA,EAAMyD,KAAI,SAAAxB,GAAA,OAAQ0I,SAAS1I,EAAjB,GACpB,CAgBU2I,GACP1K,SAAUwK,EAAsB,2BAWpC,OACI,2BAAKlP,UAAW,wBACZ,oBAAC,EAAA+D,kBAAD,CACIwD,QAAS,iBACTgG,SAAU/N,EAAM+N,SAChB7F,eAAgBlI,EAAMmP,UACtBhG,qBAAsBnJ,EAAMmJ,qBAC5B2C,sBAAuB9L,EAAM8L,sBAC7BhH,QAASpC,EAAKoC,QACdc,mBAAmB,EACnBnB,OAAQ/B,EAAK+B,OACbuB,UAAWtD,EAAKsD,UAChBpB,KAAMlC,EAAKkC,KACXI,MAAOtC,EAAKsC,MACZE,SAAUxC,EAAKwC,SACfE,aAAcpF,EAAMoF,aACpBmC,aApES,SAACD,EAAWtG,GAC7B,IAAMgN,GAAQ,IAAAxJ,QAAOxE,EAAM0E,WAE3B0K,EAAiB,yBAAyBpO,MAAQgN,EAAMjJ,aAAe,EAAI,EAC3EqK,EAAiB,wBAAwBpO,MAAQgN,EAAMrJ,YACvDyK,EAAiB,4BAA4BpO,MAAQgN,EAAM/H,eAC3DmJ,EAAiB,sBAAsBpO,MAAQgN,EAAMnJ,UACrDuK,EAAiB,uBAAuBpO,MAAQgN,EAAM/I,WAAW0J,KAAK,KACtES,EAAiB,0BAA0BpO,MAAQgN,EAAM7I,aAC5D,EA4DW7B,SAAUtD,EAAMsD,SAChB4F,WAAYlJ,EAAMkJ,WAClB3F,YAAavD,EAAMuD,YACnBmB,UAAW1E,EAAM0E,UACjByF,QAASnK,EAAMmK,QACf/B,cA9BU,WAClBqE,OAAO,YAAYwC,KAAK,YAAY,EACvC,EA6BWhH,sBAAuBjI,EAAMiI,sBAC7BI,gBA5BY,WACpBoE,OAAO,YAAYwC,KAAK,YAAY,EACvC,IA6BJ,C,sTC1FD,UACA,UACA,QAE0CY,EAAAA,2BAAA,SAAC7P,GACvC,IAEM4E,GAAO,IAAAP,YAAU,SAACG,GAAD,OAAYA,EAAOxE,EAAM0E,WAAWG,SAApC,GAA+C,IAChEC,GAAU,IAAAT,YAAU,SAACG,GAAD,OAAYA,EAAOxE,EAAM0E,WAAWK,YAApC,GAAkD,IACtEN,GAAS,IAAAJ,YAAU,SAACG,GAAD,OAAYA,EAAOxE,EAAM0E,WAAWC,WAApC,GAAiD,IACpEK,GAAQ,IAAAX,YAAU,SAACG,GAAD,OAAYA,EAAOxE,EAAM0E,WAAWO,UAApC,GAAgD,IAClEC,GAAW,IAAAb,YAAU,SAACG,GAAD,OAAYA,EAAOxE,EAAM0E,WAAWS,aAApC,GAAmD,IAExEa,IADe,IAAA3B,YAAU,SAACG,GAAD,OAAYA,EAAOxE,EAAM0E,WAAWqB,iBAApC,GAAuD,KACpE,IAAA1B,YAAU,SAACG,GAAD,OAAYA,EAAOxE,EAAM0E,WAAWuB,cAApC,GAAoD,KAE5EyI,EAAc1J,EAalB,MAZqB,iBAAjB,IAAOA,EAAP,cAAOA,MACP0J,EAAc1J,EAAM2J,KAAK,MAYzB,2BAAKnO,UAAW,wBACZ,oBAAC,EAAA+D,kBAAD,CACIwD,QAAS,aACTgG,SAAU/N,EAAM+N,SAChB7F,eAAgBlI,EAAMmP,UACtBhG,qBAAsBnJ,EAAMmJ,qBAC5B2C,sBAAuB9L,EAAM8L,sBAC7BhH,QAASA,EACTc,mBAAmB,EACnBnB,OAAQA,EACRuB,UAAWA,EACXpB,KAAMA,EACNI,MAAOA,EACPE,SAAUA,EACVE,aAAcpF,EAAMoF,aACpBmC,aAvCS,SAACD,EAAWtG,GAAY,EAwCjCsC,SAAUtD,EAAMsD,SAChB4F,WAAYlJ,EAAMkJ,WAClB3F,YAAavD,EAAMuD,YACnBmB,UAAW1E,EAAM0E,UACjByF,QAASnK,EAAMmK,QACf/B,cA9BU,WAClBqE,OAAO,wBAAwBwC,KAAK,YAAY,EACnD,EA6BWhH,sBAAuBjI,EAAMiI,sBAC7BI,gBA5BY,WACpBoE,OAAO,wBAAwBwC,KAAK,YAAY,EACnD,IA6BO,6BAAO1D,KAAK,SAAS1K,KAAM,wBAAyBG,MAAO8D,EAAU,EAAI,IACzE,6BAAOyG,KAAK,SAAS1K,KAAM,uBAAwBG,MAAOyD,GAAkB,KAC5E,6BAAO8G,KAAK,SAAS1K,KAAM,2BAA4BG,MAAOgF,GAAwB,KACtF,6BAAOuF,KAAK,SAAS1K,KAAM,qBAAsBG,MAAO4D,GAAc,KACtE,6BAAO2G,KAAK,SAAS1K,KAAM,sBAAuBG,MAAO0N,GAA4B,KACrF,6BAAOnD,KAAK,SAAS1K,KAAM,yBAA0BG,MAAOkE,GAAsB,KAClF,6BAAOqG,KAAK,SAAS1K,KAAM,qBAAsBG,MAAM,eACvD,6BAAOuK,KAAK,SAAS1K,KAAM,uBAAwBG,MAAOhB,EAAMqP,QAG3E,C,wQCjED,UAEa7D,EAAuBA,EAAAA,qBAAA,SAAC,GAAD,IAAGvL,EAAH,EAAGA,SAAH,OAChC,oBAAC,EAAAkN,KAAD,CAAMtM,KAAK,wBACNZ,EAF2B,EAUpCuL,EAAqBC,KAJY,SAACzL,GAAD,OAC7B,oBAAC,EAAAyL,KAAD,GAAM5K,KAAK,wBAA2Bb,GADT,E,UAMlBwL,C,wFCXf,cAE4BsE,EAAAA,aAAA,SAAU9P,GASlC,OARMA,EAAMa,OACRb,EAAMa,KAAO,YAGXb,EAAM+P,WACR/P,EAAM+P,UAAW,GAIjB,oBAAC,EAAApP,SAAD,KACI,6BAAO4K,KAAK,SAAS1K,KAAMb,EAAMa,KAAMC,GAAId,EAAMa,KAAMG,MAAOhB,EAAMqP,QAEnErP,EAAM+P,UACH,6BAAOxE,KAAK,SAAS1K,KAAK,mBAAmBG,MAAOhB,EAAM+P,WAIzE,C,qfCnBD,UAQA,UACA,UACA,UACA,U,KACA,U,2BAEQnM,EAAaF,GAAGC,WAAhBC,SAE6BoM,EAAAA,sBAAA,SAAUhQ,GAC3C,IAAMiQ,EAAyBjQ,EAAMkQ,eAAelQ,EAAM+N,UADR,GAGF,IAAA3N,UAASJ,EAAMmQ,SAASjL,UAHtB,SAG3CkL,EAH2C,KAGzBC,EAHyB,QAIZ,IAAAjQ,UAAS,IAJG,SAI3CkQ,EAJ2C,KAI9BC,EAJ8B,QAKM,IAAAnQ,WAAS,GALf,SAK3CoQ,EAL2C,KAKrBC,EALqB,QAMR,IAAArQ,UAAS,IAND,SAM3CkI,EAN2C,KAM5BoI,EAN4B,QAOE,IAAAtQ,UAASJ,EAAMmQ,SAASQ,aAP1B,SAO3CC,EAP2C,KAOvBC,EAPuB,QAQlB,IAAAzQ,UAASJ,EAAMmQ,SAASW,QARN,SAQ3CC,EAR2C,KAQjCC,EARiC,QASV,IAAA5Q,UAASJ,EAAMmQ,SAASc,qBATd,SAS3CC,EAT2C,KAS7BC,EAT6B,QAUA,IAAA/Q,UAASJ,EAAMmQ,SAASiB,mBAVxB,SAU3CA,EAV2C,KAUxBC,EAVwB,QAWR,IAAAjR,UAASJ,EAAMmQ,SAASmB,aAXhB,SAW3CC,EAX2C,KAW5BC,EAX4B,QAYV,IAAApR,WAAS,GAZC,SAY3C0F,EAZ2C,KAY7BgB,EAZ6B,QAaJ,IAAA1G,UAAS,IAbL,SAa3C8F,EAb2C,KAa1BC,EAb0B,SAcR,IAAA/F,UAAS,IAdD,WAc3CqR,GAd2C,MAc5BC,GAd4B,UAeJ,IAAAtR,UAAS6P,GAfL,WAe3C0B,GAf2C,MAe1BC,GAf0B,UAgBhB,IAAAxR,UAASJ,EAAMmQ,SAASnK,WAhBR,WAgB3CA,GAhB2C,MAgBhCe,GAhBgC,UAiBM,IAAA3G,WAAS,GAjBf,WAiB3CyR,GAjB2C,MAiBrBC,GAjBqB,MAmB5C3Q,GAAS+P,GAA8BlR,EAAMmQ,SAAS4B,0BAEtDC,GAAyB,CAC3B,WACA,eACA,kBACA,wBA+BJ,IAAA/P,YAAU,WAGF,IAAIgQ,EAD4B,IAAhCjS,EAAMkS,eAAe3J,SAGrB0J,EAAoBN,GAAgBvI,QAAO,SAACC,GACxC,OAAuD,IAAhD2I,GAAuB1I,QAAQD,EAAKrI,MAC9C,IAED4Q,GAAmBK,GAE1B,GAAE,KAEH,IAAAhQ,YAAU,WACDmO,GAAqBpQ,EAAMkS,iBAIhCzB,GAAwB,IACxB,IAAAnO,UAAS,CACLC,MAAM,IAAAC,cAAA,gCAA6C4N,KACpDzN,MAAK,SAACC,GACL,IAAIgJ,EAAU,GAEVuG,EAAuB,KACvBC,OAAAA,EAEJxP,EAAOoC,MAAM2C,SAAQ,SAAAV,GACjBmL,EAAS,CAAEpR,MAAOiG,EAAKnG,GAAIF,MAAOqG,EAAKpG,MACvC+K,EAAQ/B,KAAKuI,GAEThC,IAAqBpQ,EAAMmQ,SAASjL,UAAYlF,EAAMmQ,SAASnL,MAAMuF,SAAStD,EAAKnG,MACtD,OAAzBqR,IACAA,EAAuB,IAG3BA,EAAqBtI,KAAKuI,EAAOxR,OAExC,IAED2P,EAAe3E,GACf8E,EAAiByB,GACjB1B,GAAwB,EAC3B,IAEDzQ,EAAMkS,eAAevK,SAAQ,SAACzC,GACtBA,EAASlE,QAAUoP,GACnBsB,GAAiBxM,EAAStE,MAEjC,IACJ,GAAE,CAACwP,KAEJ,IAAAnO,YAAU,WACN,GAAKwP,GAAL,CAKA,IAAIQ,EAAoB,GAExBhC,EAAuBtI,SAAQ,SAAC0K,GAC5B,IAAIzR,EAAQyR,EAAWzR,OAEmC,IAAtDoR,GAAuB1I,QAAQ+I,EAAWrR,SAC1CJ,EAAQA,EAAM8J,QAAQ,KAAM+G,GAAca,gBAG9CL,EAAkBpI,KAAK,CACnB7I,MAAOqR,EAAWrR,MAClBJ,MAAOA,GAEd,IAEDgR,GAAmBK,EAlBlB,CAmBJ,GAAE,CAACR,MAEJ,IAAAxP,YAAU,WACF6D,GAAgB9F,EAAMoI,eACtBpI,EAAMoI,cAAcpI,EAAM+N,WAGzBjI,GAAgB9F,EAAMqI,iBACvBrI,EAAMqI,gBAAgBrI,EAAM+N,SAEnC,GAAE,CAACjI,KAEJ,IAAA7D,YAAU,WACF4P,IAAwB7R,EAAMuS,qBAC9BvS,EAAMuS,oBAAoBvS,EAAM+N,WAG/B8D,IAAwB7R,EAAMwS,sBAC/BxS,EAAMwS,qBAAqBxS,EAAM+N,SAExC,GAAE,CAAC8D,KAEJ,IAAMY,GAAoBnC,EAAY7H,KAAI,SAACxB,GAAD,OAAUA,EAAKrG,KAAf,IAEtC8R,GAAe,CACf,oBAAC,EAAAC,WAAD,CAAY/R,MAAOZ,EAAM4S,KAAKC,YAAa5I,IAAK,6BAA+BjK,EAAM+N,UACjF,oBAAC,EAAA7N,gBAAD,CACIW,KAAM,6BAA+Bb,EAAM+N,SAC3C1N,QAAS0Q,IAAY,EACrBnQ,MAAOZ,EAAM4S,KAAKE,iBAClB/R,SAxHW,SAACC,GACpBgQ,EAAYhQ,EACf,MA2HG+P,IACA2B,GAAa7I,KACT,oBAAC,EAAA8I,WAAD,CAAY/R,MAAOZ,EAAM4S,KAAKG,gBAAiB9I,IAAK,6BAA+BjK,EAAM+N,UACrF,oBAAC,EAAA7N,gBAAD,CACIW,KAAM,6BAA+Bb,EAAM+N,SAC3C1N,QAASkR,IAAiB,EAC1B3Q,MAAOZ,EAAM4S,KAAKI,qBAClBjS,SAxHY,SAACC,GACzBwQ,EAAiBxQ,EACpB,MA2HG0R,GAAa7I,KACT,oBAAC,EAAA8I,WAAD,CAAY/R,MAAOZ,EAAM4S,KAAKK,cAAehJ,IAAK,2BAA6BjK,EAAM+N,UACjF,oBAAC,EAAAlK,cAAD,CACIhD,KAAM,2BAA6Bb,EAAM+N,SACzCnC,QAAS5L,EAAMkS,eACfgB,SAAU9C,EACV+C,mBAAoBnT,EAAM4S,KAAKQ,aAC/BjT,YAAaH,EAAM4S,KAAKS,yBACxB3Q,KAAM1C,EAAM+N,SACZhN,SA9JS,SAAUC,GAC/BqP,EAAoBrP,EACvB,MAkKG0R,GAAa7I,KACT,oBAAC,EAAA8I,WAAD,CAAY/R,MAAOZ,EAAM4S,KAAKU,iBAAkBrJ,IAAK,6BAA+BjK,EAAM+N,UACtF,oBAAC,EAAAlK,cAAD,CACIhD,KAAM,6BAA+Bb,EAAM+N,SAC3CvN,UAAW,iBACXoL,QAAS+F,GACTxR,YAAaH,EAAM4S,KAAKW,4BACxBL,SAAUtC,EACV7P,SApKY,SAACC,GACzB6P,EAAsB7P,EACzB,IAqKmC,kBAAvB4P,GACG,oBAAC,EAAA/M,cAAD,CACIhD,KAAM,4BAA8Bb,EAAM+N,SAC1CnC,QAAS5L,EAAMwT,aACfN,SAAUlN,GACVjF,SAAUgG,KAIhB/G,EAAMkS,eAAe3J,OAAS,GAAM,CAAC,WAAY,eAAgB,mBAAmBe,QAAQsH,IAAuB,GACjH,oBAAC,EAAA6C,cAAD,CACI7S,MAAOZ,EAAM4S,KAAKc,UAClB7S,KAAM,wBAA0Bb,EAAM+N,SACtCnC,QAAS6G,GACTzR,MAAOsH,EACPqL,UAAWnD,EACXzP,SA3LE,SAACC,GACnB0P,EAAiB1P,EACpB,EA0LmBb,YAAaH,EAAM4S,KAAKgB,qBACxBtH,eAAgB,IAChBuH,eAAe,EACfC,sBAAsB,MAMtCpB,GAAa7I,KACT,oBAAC,EAAA8I,WAAD,CAAY/R,MAAOZ,EAAM4S,KAAKmB,2BAA4B9J,IAAK,uBAAyBjK,EAAM+N,UAC1F,oBAAC,EAAAiG,YAAD,CACInT,KAAM,uBAAyBb,EAAM+N,SACrC/M,MAAOkQ,EACPnF,QAAS8F,GACTzF,YAAapM,EAAMmQ,SAAS4B,0BAC5B5R,YAAaH,EAAM4S,KAAKqB,sCACxB1T,sBAAsB,EACtBQ,SAlMa,SAACC,GAC1BmQ,EAAgBnQ,EACnB,IAmMW,oBAAC,UAAD,CACIG,OAAQA,GACRP,MAAOZ,EAAM4S,KAAKsB,YAClB9S,iBAAkBpB,EAAM4S,KAAKuB,mBAC7B9S,mBAAoBrB,EAAM4S,KAAKwB,oBAC/B9S,2BAA4B6E,EAC5B5E,gCAAiCuQ,GACjCtQ,wBAAyBsF,MAKrC4L,GAAa7I,KACT,oBAAC,EAAA8I,WAAD,CAAY/R,MAAOZ,EAAM4S,KAAKyB,iBAAkBpK,IAAK,oCAAsCjK,EAAM+N,UAC7F,oBAAC,EAAAiG,YAAD,CACInT,KAAM,oCAAsCb,EAAM+N,SAClDvN,UAAU,aACVQ,MAAOoQ,EACPjR,YAAaH,EAAM4S,KAAK0B,4BACxBvT,SApNkB,SAACC,GAC/BqQ,EAAqBrQ,EACxB,OAwND0R,IAAe,IAAA6B,cAAa,mCAAoC7B,GAAc1S,EAAO+Q,EAAU3Q,EAAAA,UAE/F,IAAMoU,GAAqBxU,EAAMyU,UAAY,uBAAyB,8BAEtE,OACI,2BAAKjU,UAAWgU,IACZ,oBAAC,EAAAE,cAAD,CAAeC,aAAcjC,MAE1B5M,GACC,oBAAClC,EAAD,KACI,2BAAKpD,UAAU,+DACX,kCAASR,EAAM4S,KAAK3P,MAApB,KADJ,IAC0CiD,IAM7D,C,qfC3SD,UACA,UAEuC0O,EAAAA,wBAAA,SAAU5U,GAAO,OAChB,IAAAI,UAASwI,OAAOC,KAAK7I,EAAMmQ,UAAU,IADrB,SAC7C0E,EAD6C,KACjCC,EADiC,KAGhDC,EAAS,GAHuC,uBAKpD,YAA2CnM,OAAOwF,QAAQpO,EAAMmQ,UAAhE,+CAA2E,wBAA/DpC,EAA+D,KAArDiH,EAAqD,KACvED,EAAOlL,KACH,oBAAC,EAAAmG,sBAAD,CACIiF,OAAQD,EAAiBpU,MACzBgS,KAAM5S,EAAM4S,KACZ7E,SAAUA,EACVoC,SAAU6E,EACV9E,eAAgBlQ,EAAMkQ,eACtBgC,eAAgBlS,EAAMkS,eAAenE,GACrCyF,aAAcxT,EAAMwT,aAAazF,GACjC9D,IAAQ8D,EAAR,SACA3F,cAAepI,EAAMoI,cACrBC,gBAAiBrI,EAAMqI,gBACvBkK,oBAAqBvS,EAAMuS,oBAC3BC,qBAAsBxS,EAAMwS,qBAC5BiC,UAAWI,IAAe9G,IAGrC,CAvBmD,8EAyBpD,IAAMmH,EAAc,SAACC,GACjBA,EAAMC,iBACNN,EAAcK,EAAMzL,OAAO2L,KAAK3K,QAAQ,IAAK,IAAIA,QAAQ,SAAU,IACtE,EAEG4K,EAAO,GACPpC,GAAW,EA/BqC,uBAiCpD,YAA2CtK,OAAOwF,QAAQpO,EAAMmQ,UAAhE,+CAA2E,wBAA/DpC,EAA+D,KAArDiH,EAAqD,KACvE9B,EAAW2B,IAAe9G,EAC1BuH,EAAKzL,KACD,yBAAGJ,KAAA,IAAUsE,EAAV,SACCvN,UAAW,YAAc0S,EAAW,iBAAiB,IACrDjJ,IAAQ8D,EAAR,OACAwH,QAASL,GAERF,EAAiBpU,OAG7B,CA5CmD,8EA8CpD,OACI,+BACI,2BAAKJ,UAAU,mBACV8U,GAEJP,EAGZ,C,yFC1DD,cACA,UAE6BlR,EAAAA,cAAA,SAAU7D,GAKnC,OACI,oBAAC,EAAAW,SAAD,KAC8B,IAAzBX,EAAM4L,QAAQrD,QACX,+BAAMvI,EAAMmT,oBAGfnT,EAAM4L,QAAQrD,OAAS,GACpB,oBAAC,gBAAD,CACI3H,MAAOZ,EAAMY,MACbC,KAAMb,EAAMa,KACZC,GAAId,EAAMa,KACVL,UAAWR,EAAMQ,UACjBQ,MAAOhB,EAAMkT,SACbnS,SAjBC,SAACC,GACdhB,EAAMe,SAASC,EAClB,EAgBe,YAAWhB,EAAM0C,KACjBkJ,QAAS5L,EAAM4L,UAItB5L,EAAMC,SAEP,yBAAGO,UAAU,eAAeR,EAAMG,aAG7C,C,sFChCD,QAE0BwS,EAAAA,WAAA,SAAU3S,GAChC,OACI,0BAAIwV,OAAO,OACP,0BAAItI,MAAM,OACN,6BAAOuI,QAAQ,IAAIzV,EAAMY,QAE7B,8BACKZ,EAAMC,UAItB,C,gECZ+ByV,EAAAA,iBAAA,SAAU1V,GACtC,OACI,gCAAUQ,UAAWR,EAAMQ,WACnB,kCAASR,EAAMiV,QACdjV,EAAMC,SAGtB,C,gECP2B0V,EAAAA,aAAA,SAAU3V,GAClC,OACI,4BAAMyC,OAAO,QACRzC,EAAMC,SAGlB,C,2FCPD,cAE+B2V,EAAAA,gBAAA,SAAU5V,GACrC,OACI,oBAAC,EAAAW,SAAD,KACI,8BAAKX,EAAM0N,OACX,6BAAI1N,EAAMG,aACTH,EAAMC,SAGlB,C,gECT4ByU,EAAAA,cAAA,SAAU1U,GACnC,OACI,6BAAOQ,UAAU,cACb,iCACKR,EAAM2U,cAItB,C,+DCTsB5Q,EAAAA,QAAA,SAAU/D,GAC7B,OACI,4BAAMQ,UAAU,+BAA8B,gCAAW,gCAAW,gCAAW,gCAEtF,C,gECH2BqV,EAAAA,aAAA,SAAU7V,GAClC,OACI,6BACIuL,KAAK,SACL1K,KAAMb,EAAMa,KACZG,MAAOhB,EAAM4S,KACbkD,SAAU9V,EAAM8V,SAChBtV,UAAU,kBAGrB,C,uFCXD,cACA,UACA,UAE2BwT,EAAAA,YAAA,SAAUhU,GACjC,IAAIG,EAIAA,EAFAH,EAAMO,qBAEQ,yBAAGC,UAAU,cAAcC,wBAAyB,CAAEC,OAAQV,EAAMG,eAEpE,yBAAGK,UAAU,eAAeR,EAAMG,aAGpD,IAMIK,EAAYR,EAAMQ,UAAYR,EAAMQ,UAAY,GAMpD,OAJIR,EAAM+L,UACNvL,GAAa,kEAIb,oBAAC,EAAAG,SAAD,KACI,2BAAKH,UAAWA,GACZ,oBAAC,cAAD,CACI+K,KAAK,OACL3K,MAAOZ,EAAMY,MACbC,KAAMb,EAAMa,KACZC,GAAId,EAAMa,KACVL,UAAWR,EAAMQ,UACjBQ,MAAOhB,EAAMgB,MACboL,YAAapM,EAAMoM,YACnBrL,SAvBC,SAAUC,GACnBhB,EAAMe,UACNf,EAAMe,SAASC,EAEtB,IAsBYhB,EAAM+L,SAAW,oBAAC,EAAAhI,QAAD,MAEjB5D,GAIhB,C,6FCjDD,cAEiC4V,EAAAA,kBAAA,SAAU/V,GACvC,IAMMgW,EAAehW,EAAMgW,aAAehW,EAAMgW,aAAe,gBACzDC,EAAgBjW,EAAMiW,cAAgBjW,EAAMiW,cAAgB,kBAE5DC,EAAOlW,EAAMgN,WAAagJ,EAAeC,EAEzCvI,EAAQ1N,EAAMgN,WAAahN,EAAMmW,cAAgBnW,EAAMoW,eAE7D,OACI,oBAAC,EAAAC,OAAD,CACIC,SAAA,EACA5I,MAAOA,EACPwI,KAAMA,EACNX,QAlBQ,WACRvV,EAAMuV,SACNvV,EAAMuV,SAEb,EAeO/U,UAAWR,EAAMQ,WAG5B,C,oGCzBD,cACA,UACA,UAEwCqM,EAAAA,yBAAA,SAAC,GAUpC,IARGG,EAQH,EARGA,WACA7C,EAOH,EAPGA,QACA4C,EAMH,EANGA,iBACA1J,EAKH,EALGA,YACAyJ,EAIH,EAJGA,aACAxJ,EAGH,EAHGA,SACAC,EAEH,EAFGA,YAgCJ,OA7BA,IAAAtB,YAAU,WAEN,IAAMsU,EAAsB/G,SAASgH,cAAc,kCAEnD,GAAMD,EAAN,CAIA,IAAME,EAAkBF,EAAoBG,mBAE5C,GAAMD,EAAN,CAIA,IAAME,EAAcF,EAAgBD,cAAc,8BAElD,GAAMG,EAAN,CAIA,IAAMC,EAAcD,EAAYE,YAE1BD,GAINH,EAAgBK,aAAaP,EAAqBK,EARjD,CANA,CANA,CAqBJ,IAGG,oBAAC,EAAAjW,SAAD,KACI,oBAAC,EAAAoV,kBAAD,CACIvV,UAAU,gCACVwM,WAAYA,EACZgJ,aAAa,gBACbC,cAAc,WACdE,cAAehM,EAAQ4M,aACvBX,eAAgBjM,EAAQ6M,aACxBzB,QAASxI,IAEb,oBAAC,EAAA3J,eAAD,CACIC,YAAaA,EACbtC,SAAU+L,EACVrJ,wBAAwB,EACxBH,SAAUA,EACVC,YAAaA,IAI5B,C,ySC7DD,UACA,UAE6BkQ,EAAAA,cAAA,SAACzT,GAAU,M,2YAAA,EACE,IAAAI,UAAS,IADX,GAC7B6W,EAD6B,KAChBC,EADgB,MAGpC,IAAAjV,YAAU,WACFjC,EAAMgB,OACNkW,EAAelX,EAAMgB,MAAM2N,KAAK,KAEvC,GAAE,CAAC3O,EAAMgB,QAEV,IAAIb,OAAAA,EAEAH,EAAMG,cAGFA,EAFAH,EAAMO,qBAEQ,yBAAGC,UAAU,cAAcC,wBAAyB,CAACC,OAAQV,EAAMG,eAEnE,yBAAGK,UAAU,eAAeR,EAAMG,cAIxD,IAYMa,EAAQhB,EAAMgB,MAAQhB,EAAMgB,MAAQ,GAE1C,OACI,oBAAC,EAAAL,SAAD,KACI,oBAAC,EAAAmD,eAAD,CACIlD,MAAOZ,EAAMY,MACbI,MAAOA,EACPkL,YAAalM,EAAM4L,QACnB7K,SApBK,SAACC,GACVhB,EAAMe,UACNf,EAAMe,SAASC,GAGE,iBAAjB,IAAOA,EAAP,cAAOA,IACPkW,EAAelW,EAAM2N,KAAK,MAE1BuI,EAAe,GAEtB,EAWW5K,eAAgBtM,EAAMsM,eACtB9L,UAAU,iCACVmM,4BAA6B3M,EAAM6T,cACnCjH,mCAAoC5M,EAAM8T,uBAE9C,6BAAOvI,KAAK,SAAS1K,KAAMb,EAAMa,KAAMG,MAAOiW,IAE7C9W,EAGZ,C,gECrD+BgX,EAAAA,iBAAA,SAAUnX,GAAO,IACrCW,EAAa+C,GAAGO,QAAhBtD,SAEFI,EAAW,SAACyL,GACVxM,EAAMe,UACNf,EAAMe,SACFyL,EAAE9C,OAAO1I,QAAUhB,EAAMoX,WAAa3K,OAAOD,EAAE9C,QAAQ2N,GAAG,YAIrE,EAED,OACI,oBAAC1W,EAAD,KACI,6BACI4K,KAAK,QACL1K,KAAMb,EAAMa,KACZC,GAAId,EAAMa,KAAO,QACjBG,MAAOhB,EAAMoX,UACbE,eAAgBtX,EAAMkT,SACtBnS,SAAUA,IAGd,6BAAO0U,QAASzV,EAAMa,KAAO,SAAUb,EAAMuX,WAVjD,KAYI,6BACIhM,KAAK,QACL1K,KAAMb,EAAMa,KACZyW,gBAAiBtX,EAAMkT,SACvBpS,GAAId,EAAMa,KAAO,SACjBG,MAAOhB,EAAMwX,WACbzW,SAAUA,IAEd,6BACI0U,QAASzV,EAAMa,KAAO,UAAWb,EAAMyX,YAE3C,yBAAGjX,UAAU,eAAeR,EAAMG,aAG7C,C,8JC3CQJ,Y,qGACAwE,iB,gHACA6I,4B,kHACAkC,8B,8GACAO,0B,6GACAvB,yB,yGACA0B,qB,2GACA4E,uB,8FACAjC,U,oGACA+C,gB,gGACAC,Y,mGACAC,e,iGACAlB,a,gGACAmB,Y,mGACA3V,e,iGACA2D,a,+FACAmQ,W,iGACAP,a,gGACA3D,Y,oGACAqH,gB,0FACApT,O,qGACA7C,iB,kQCrBT,UACA,UACA,UAE2BwW,EAAAA,YAAA,SAAC1X,GACpBA,EAAM2X,aAAa3S,OAA6C,iBAA7BhF,EAAM2X,aAAa3S,QACtDhF,EAAM2X,aAAa3S,MAAQhF,EAAM2X,aAAa3S,MAAM4E,MAAM,KAAKnB,KAAI,SAAAxB,GAAA,OAAQ0I,SAAS1I,EAAjB,KAGvE,IAAI0Q,EAAe,CACflT,OAAQzE,EAAM2X,aAAalT,OAC3BG,KAAM5E,EAAM2X,aAAa/S,KAAO5E,EAAM2X,aAAa/S,MAAO,IAAAgT,6BAC1D9S,QAAS9E,EAAM2X,aAAa7J,WAC5B9I,MAAOhF,EAAM2X,aAAa3S,MAAQhF,EAAM2X,aAAa3S,MAAQ,GAC7DE,SAAUlF,EAAM2X,aAAazS,SAAWlF,EAAM2X,aAAazS,SAAW,KACtEc,UAAWhG,EAAM2X,aAAa3R,UAAYhG,EAAM2X,aAAa3R,UAAY,QACzEV,gBAAiB,KACjBE,cAAe,KACfJ,aAAc,KACdM,iBAAiB,EACjB6I,aAAc,YACd3I,mBAAmB,EACnBE,cAAc,EACd+R,UAAW7X,EAAM2X,aAAaE,UAAY7X,EAAM2X,aAAaE,UAAY,CAAC,GAGxE7J,GAAQ,IAAA8J,kBAAiB9X,EAAMa,KAAM,CACvCkX,QADuC,WACD,I,MAA9BC,EAA8B,uDAAtBL,EAAclT,EAAQ,aAClC,OAAQA,EAAO8G,MACX,IAAK,aACD,YACOyM,EADP,CAEIvT,OAAQA,EAAOA,SAEvB,IAAK,iBACD,YACOuT,EADP,CAEIhS,UAAWvB,EAAOuB,YAE1B,IAAK,WAiBD,MAf2B,iBAAhBvB,EAAOG,OAAqB,IAAAqT,UAASxT,EAAOG,QACnDH,EAAOG,KAAO+K,SAASlL,EAAOG,OAIP,iBAAhBH,EAAOG,OACdH,EAAOG,KAAO,IAAIoG,KAAKvG,EAAOG,MAAMsT,WAIxCzT,EAAOG,MAAO,IAAAuT,4BAA2B1T,EAAOG,MAGhDH,EAAOG,MAAO,IAAAwT,2BAA0B3T,EAAOG,MAE/C,KACOoT,EADP,CAEIpT,KAAMH,EAAOG,OAErB,IAAK,cACD,YACOoT,EADP,CAEIlT,QAASL,EAAOK,UAExB,IAAK,YACD,YACOkT,EADP,CAEIhT,MAAOP,EAAOO,QAEtB,IAAK,eACD,YACOgT,EADP,CAEI9S,SAAUT,EAAOS,WAEzB,IAAK,yBACD,YACO8S,EADP,CAEI1S,gBAAiBb,EAAOa,kBAEhC,IAAK,uBACD,YACO0S,EADP,CAEIxS,cAAef,EAAOe,gBAE9B,IAAK,oBACD,YACOwS,EADP,CAEI5S,aAAcX,EAAOW,eAE7B,IAAK,oBACD,YACO4S,EADP,CAEIzJ,aAAc9J,EAAO8J,eAE7B,IAAK,0BACD,YACOyJ,EADP,CAEIpS,kBAAmBnB,EAAOmB,oBAElC,IAAK,qBACD,YACOoS,EADP,CAEIlS,aAAcrB,EAAOqB,eAG7B,IAAK,iBACD,YACOkS,EADP,CAEIH,UAAAA,EAAAA,CAAAA,EACOpT,EAAOoT,aAItB,IAAK,yBACD,IAAMA,EAAY,EAAZA,CAAAA,EACCG,EAAMH,W,EADP,G,EAEDpT,EAAO5D,K,EAAO4D,EAAOzD,M,iGAG1B,YACOgX,EADP,CAEIH,UAAAA,EAAAA,CAAAA,EAAeA,KAI3B,OAAOG,CACV,EACDK,QAAS,CACLjS,UADK,SACK3B,GACN,MAAO,CACH8G,KAAM,aACN9G,OAAQA,EAEf,EACDsC,aAPK,SAOQf,GACT,MAAO,CACHuF,KAAM,iBACNvF,UAAWA,EAElB,EACDK,QAbK,SAaGzB,GACJ,MAAO,CACH2G,KAAM,WACN3G,KAAMA,EAEb,EACD0B,WAnBK,SAmBMxB,GACP,MAAO,CACHyG,KAAM,cACNzG,QAASA,EAEhB,EACDyB,SAzBK,SAyBIvB,GACL,MAAO,CACHuG,KAAM,YACNvG,MAAOA,EAEd,EACDwB,YA/BK,SA+BOtB,GACR,MAAO,CACHqG,KAAM,eACNrG,SAAUA,EAEjB,EACDuB,mBArCK,SAqCcnB,GACf,MAAO,CACHiG,KAAM,yBACNjG,gBAAiBA,EAExB,EACDoB,iBA3CK,SA2CYlB,GACb,MAAO,CACH+F,KAAM,uBACN/F,cAAeA,EAEtB,EACDmB,gBAjDK,SAiDWvB,GACZ,MAAO,CACHmG,KAAM,oBACNnG,aAAcA,EAErB,EACDwB,mBAvDK,SAuDclB,GACf,MAAO,CACH6F,KAAM,wBACN7F,gBAAiBA,EAExB,EACD+I,gBA7DK,SA6DWF,GACZ,MAAO,CACHhD,KAAM,oBACNgD,aAAcA,EAErB,EACD1H,qBAnEK,SAmEgBjB,GACjB,MAAO,CACH2F,KAAM,0BACN3F,kBAAmBA,EAE1B,EACDkB,gBAzEK,SAyEWhB,GACZ,MAAO,CACHyF,KAAM,qBACNzF,aAAcA,EAErB,EACDwS,aA/EK,SA+EQT,GACT,MAAO,CACHtM,KAAM,iBACNsM,UAAWA,EAElB,EACDU,mBArFK,SAqFc1X,EAAMG,GACrB,MAAO,CACHuK,KAAM,yBACN1K,KAAMA,EACNG,MAAOA,EAEd,GAELwX,UAAW,CACP7T,UADO,SACGqT,GACN,OAAOA,EAAMvT,MAChB,EACDwB,aAJO,SAIM+R,GACT,OAAOA,EAAMhS,SAChB,EACDnB,QAPO,SAOCmT,GACJ,OAAOA,EAAMpT,IAChB,EACDG,WAVO,SAUIiT,GACP,OAAOA,EAAMlT,OAChB,EACDG,SAbO,SAaE+S,GACL,OAAOA,EAAMhT,KAChB,EACDG,YAhBO,SAgBK6S,GACR,OAAOA,EAAM9S,QAChB,EACDK,mBAnBO,SAmBYyS,GACf,OAAOA,EAAM1S,eAChB,EACDG,iBAtBO,SAsBUuS,GACb,OAAOA,EAAMxS,aAChB,EACDH,gBAzBO,SAyBS2S,GACZ,OAAOA,EAAM5S,YAChB,EACDO,mBA5BO,SA4BYqS,GACf,OAAOA,EAAMtS,eAChB,EACD8I,gBA/BO,SA+BSwJ,GACZ,OAAOA,EAAMzJ,YAChB,EACD1I,qBAlCO,SAkCcmS,GACjB,OAAOA,EAAMpS,iBAChB,EACDG,gBArCO,SAqCSiS,GACZ,OAAOA,EAAMlS,YAChB,EACDoI,aAxCO,SAwCM8J,GACT,OAAOA,EAAMH,SAChB,EACDY,mBA3CO,SA2CYT,EAAOnX,GACtB,OAAOmX,EAAMH,UAAUhX,IAAS,IACnC,KAMT,OAFA,IAAA6X,UAAS1K,GAEFA,CACV,C,gECjRM,IAAM2K,EAA0BA,EAAAA,wBAAA,WACnC,OAAOR,GAA2B,IAAInN,MAAOkN,UAChD,EAMYE,GAJ4BR,EAAAA,0BAAA,WACrC,OAAOQ,EAA0BO,IACpC,EAEwCP,EAAAA,0BAAA,SAACQ,GACtC,IAAMhU,EAAO,IAAIoG,KACbmN,EAA2BS,IAU/B,OAPahU,EAAKiU,cAOlB,KANe,KAAOjU,EAAKkU,WAAa,IAAIC,OAAO,GAMnD,KALa,IAAMnU,EAAKC,WAAWkU,OAAO,GAK1C,KAJe,IAAMnU,EAAKoU,YAAYD,OAAO,GAI7C,KAHiB,IAAMnU,EAAKqU,cAAcF,OAAO,GAGjD,KAFiB,IAAMnU,EAAKsU,cAAcH,OAAO,EAGpD,GAQYI,GAN4BC,EAAAA,0BAAA,SAACC,GACtC,IAAMzU,EAAO,IAAIoG,KAAKqO,GAEtB,OAAOlB,EAA2BvT,EAAKsT,UAC1C,EAE8BiB,EAAAA,gBAAA,SAACE,GAC5B,OAAO1J,SAAS0J,GAAMC,WAAW/Q,QAAU,EAC9C,GAEY4P,EAA6BA,EAAAA,2BAAA,SAACkB,GAGvC,OAFAA,EAAO1J,SAAS0J,GAETF,IAAoBE,EAAOA,EAAO,GAC5C,EAE8C7V,EAAAA,gCAAA,SAAC6V,GAG5C,OAFAA,EAAO1J,SAAS0J,GAETF,IAA2B,IAAPE,EAAcA,CAC5C,C,gRCbYE,GA9BU/Q,EAAAA,QAAA,SAACgR,GACpB,OAAKA,GAICC,MAAMC,QAAQF,IAA2B,iBAAjB,IAAOA,EAAP,cAAOA,MACjCA,EAAQ5Q,OAAO+Q,OAAOH,IAGnBA,EAAMpQ,QAAO,SAACC,GACjB,OAAOA,SAAgD,KAATA,CACjD,KATU,EAUd,EAE8BuQ,EAAAA,gBAAA,SAACC,GAC5B,OAAO,SAAC1Z,GAA4B,2BAAZ2C,EAAY,6BAAZA,EAAY,kBACM,MAAlCgX,SAAWD,EAAOE,iBAClB,EAAAD,SAAQE,MAAR,SAAc,WAAY7Z,GAA1B,OAA0C2C,GAEjD,CACJ,EAEiCmX,EAAAA,mBAAA,WAC9B,OAAOzK,SAAS0K,KAAKC,UAAUC,SAAS,oBAC3C,EAE+BhL,EAAAA,iBAAA,SAACvO,GAC7B,OAAO2O,SAASC,kBAAkB5O,GAAM,EAC3C,EAE6B0Y,EAAAA,eAAA,SAAC1Y,EAAMwZ,GACjC,OAAO7K,SAASgH,cAAT,qBAA4C6D,EAA5C,+CAAiGxZ,EAAjG,IAAyGwZ,EACnH,GAEkCC,EAAAA,oBAAA,SAACzZ,EAAMwZ,GACtC,IAAME,EAAQhB,EAAe1Y,EAAMwZ,GAEnC,OAAKE,EAIEA,EAAMvZ,MAHF,IAId,EAE8CwZ,EAAAA,gCAAA,SAAC3Z,EAAMwZ,GAClD,IAAME,EAAQhB,EAAe1Y,EAAMwZ,GAEnC,OAAKE,GAAUA,EAAMvZ,OAIM,iBAAhBuZ,EAAMvZ,QACbuZ,EAAMvZ,MAAQuZ,EAAMvZ,MAAMsY,YAGvBiB,EAAMvZ,MAAM4I,MAAM,KAAKnB,KAAI,SAAAxB,GAAA,OAAQ0I,SAAS1I,EAAjB,KAPvB,EAQd,EAEwCwT,EAAAA,0BAAA,SAAC5Z,EAAMwZ,GAC5C,IAAME,EAAQhB,EAAe1Y,EAAMwZ,GAEnC,QAAKE,IAIkB,MAAhBA,EAAMvZ,OAAiC,SAAhBuZ,EAAMvZ,MACvC,EAE8C0Z,EAAAA,gCAAA,SAACL,GAC5C,IAAMM,EAAanL,SAASgH,cAAT,uBAA8C6D,GAEjE,OAAKM,EAIE,CACH7V,QAA8C,MAArC6V,EAAWC,QAAQC,cAC5BpW,OAAQkW,EAAWC,QAAQE,WAC3BlW,KAAM+V,EAAWC,QAAQG,WACzBC,SAAUL,EAAWC,QAAQK,eAC7B/V,SAAUyV,EAAWC,QAAQM,eAC7BlW,MAAO2V,EAAWC,QAAQO,YAC1BnV,UAAW2U,EAAWC,QAAQQ,iBAVvB,CAAC,CAYf,EAQuBnD,EAAAA,SAAA,SAACjX,GACrB,OAAQqa,MAAMra,EACjB,C,mEC3FGsa,E,MAA0B,GAA4B,KAE1DA,EAAwBzR,KAAK,CAAC0R,EAAOza,GAAI,yvBA+BtC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,+DAA+D,MAAQ,GAAG,SAAW,mQAAmQ,eAAiB,CAAC,0vBAA0vB,WAAa,MAE/oC,S,WChCAya,EAAOC,QAAU,SAAUC,GACzB,IAAIC,EAAO,GA4EX,OAzEAA,EAAKpC,SAAW,WACd,OAAOqC,KAAKlT,KAAI,SAAUY,GACxB,IAAIuS,EAAU,GACVC,OAA+B,IAAZxS,EAAK,GAoB5B,OAnBIA,EAAK,KACPuS,GAAW,cAAcE,OAAOzS,EAAK,GAAI,QAEvCA,EAAK,KACPuS,GAAW,UAAUE,OAAOzS,EAAK,GAAI,OAEnCwS,IACFD,GAAW,SAASE,OAAOzS,EAAK,GAAGd,OAAS,EAAI,IAAIuT,OAAOzS,EAAK,IAAM,GAAI,OAE5EuS,GAAWH,EAAuBpS,GAC9BwS,IACFD,GAAW,KAETvS,EAAK,KACPuS,GAAW,KAETvS,EAAK,KACPuS,GAAW,KAENA,CACT,IAAGjN,KAAK,GACV,EAGA+M,EAAKK,EAAI,SAAWC,EAASC,EAAOC,EAAQC,EAAUC,GAC7B,iBAAZJ,IACTA,EAAU,CAAC,CAAC,KAAMA,OAASK,KAE7B,IAAIC,EAAyB,CAAC,EAC9B,GAAIJ,EACF,IAAK,IAAIK,EAAI,EAAGA,EAAIZ,KAAKpT,OAAQgU,IAAK,CACpC,IAAIzb,EAAK6a,KAAKY,GAAG,GACP,MAANzb,IACFwb,EAAuBxb,IAAM,EAEjC,CAEF,IAAK,IAAI0b,EAAK,EAAGA,EAAKR,EAAQzT,OAAQiU,IAAM,CAC1C,IAAInT,EAAO,GAAGyS,OAAOE,EAAQQ,IACzBN,GAAUI,EAAuBjT,EAAK,WAGrB,IAAV+S,SACc,IAAZ/S,EAAK,KAGdA,EAAK,GAAK,SAASyS,OAAOzS,EAAK,GAAGd,OAAS,EAAI,IAAIuT,OAAOzS,EAAK,IAAM,GAAI,MAAMyS,OAAOzS,EAAK,GAAI,MAF/FA,EAAK,GAAK+S,GAMVH,IACG5S,EAAK,IAGRA,EAAK,GAAK,UAAUyS,OAAOzS,EAAK,GAAI,MAAMyS,OAAOzS,EAAK,GAAI,KAC1DA,EAAK,GAAK4S,GAHV5S,EAAK,GAAK4S,GAMVE,IACG9S,EAAK,IAGRA,EAAK,GAAK,cAAcyS,OAAOzS,EAAK,GAAI,OAAOyS,OAAOzS,EAAK,GAAI,KAC/DA,EAAK,GAAK8S,GAHV9S,EAAK,GAAK,GAAGyS,OAAOK,IAMxBT,EAAK7R,KAAKR,GACZ,CACF,EACOqS,CACT,C,WClFAH,EAAOC,QAAU,SAAUnS,GACzB,IAAIuS,EAAUvS,EAAK,GACfoT,EAAapT,EAAK,GACtB,IAAKoT,EACH,OAAOb,EAET,GAAoB,mBAATc,KAAqB,CAC9B,IAAIC,EAASD,KAAKE,SAASC,mBAAmBC,KAAKC,UAAUN,MACzD/Z,EAAO,+DAA+DoZ,OAAOa,GAC7EK,EAAgB,OAAOlB,OAAOpZ,EAAM,OACxC,MAAO,CAACkZ,GAASE,OAAO,CAACkB,IAAgBrO,KAAK,KAChD,CACA,MAAO,CAACiN,GAASjN,KAAK,KACxB,C,iBCbA,IAAIsO,EAAI,EAAQ,MAEdzB,EAAQ0B,WAAaD,EAAEC,WACvB1B,EAAQ2B,YAAcF,EAAEE,W,8KCMtBvR,EAAU,CAAC,EAEfA,EAAQwR,kBAAoB,IAC5BxR,EAAQyR,cAAgB,IACxBzR,EAAQ0R,OAAS,SAAc,KAAM,QACrC1R,EAAQ2R,OAAS,IACjB3R,EAAQ4R,mBAAqB,IAEhB,IAAI,IAAS5R,GAKnB,QAAe,KAAW,IAAQ6R,OAAS,IAAQA,YAASpB,C,WCtBnE,IAAIqB,EAAc,GAClB,SAASC,EAAqBC,GAE5B,IADA,IAAIhb,GAAU,EACLmZ,EAAI,EAAGA,EAAI2B,EAAYnV,OAAQwT,IACtC,GAAI2B,EAAY3B,GAAG6B,aAAeA,EAAY,CAC5Chb,EAASmZ,EACT,KACF,CAEF,OAAOnZ,CACT,CACA,SAASib,EAAanC,EAAM9P,GAG1B,IAFA,IAAIkS,EAAa,CAAC,EACdC,EAAc,GACThC,EAAI,EAAGA,EAAIL,EAAKnT,OAAQwT,IAAK,CACpC,IAAI1S,EAAOqS,EAAKK,GACZjb,EAAK8K,EAAQoS,KAAO3U,EAAK,GAAKuC,EAAQoS,KAAO3U,EAAK,GAClDnC,EAAQ4W,EAAWhd,IAAO,EAC1B8c,EAAa,GAAG9B,OAAOhb,EAAI,KAAKgb,OAAO5U,GAC3C4W,EAAWhd,GAAMoG,EAAQ,EACzB,IAAI+W,EAAoBN,EAAqBC,GACzCM,EAAM,CACRC,IAAK9U,EAAK,GACV4S,MAAO5S,EAAK,GACZ+U,UAAW/U,EAAK,GAChB8S,SAAU9S,EAAK,GACf+S,MAAO/S,EAAK,IAEd,IAA2B,IAAvB4U,EACFP,EAAYO,GAAmBI,aAC/BX,EAAYO,GAAmBK,QAAQJ,OAClC,CACL,IAAII,EAAUC,EAAgBL,EAAKtS,GACnCA,EAAQ4S,QAAUzC,EAClB2B,EAAYe,OAAO1C,EAAG,EAAG,CACvB6B,WAAYA,EACZU,QAASA,EACTD,WAAY,GAEhB,CACAN,EAAYlU,KAAK+T,EACnB,CACA,OAAOG,CACT,CACA,SAASQ,EAAgBL,EAAKtS,GAC5B,IAAI8S,EAAM9S,EAAQ2R,OAAO3R,GAYzB,OAXA8S,EAAIC,OAAOT,GACG,SAAiBU,GAC7B,GAAIA,EAAQ,CACV,GAAIA,EAAOT,MAAQD,EAAIC,KAAOS,EAAO3C,QAAUiC,EAAIjC,OAAS2C,EAAOR,YAAcF,EAAIE,WAAaQ,EAAOzC,WAAa+B,EAAI/B,UAAYyC,EAAOxC,QAAU8B,EAAI9B,MACzJ,OAEFsC,EAAIC,OAAOT,EAAMU,EACnB,MACEF,EAAIG,QAER,CAEF,CACAtD,EAAOC,QAAU,SAAUE,EAAM9P,GAG/B,IAAIkT,EAAkBjB,EADtBnC,EAAOA,GAAQ,GADf9P,EAAUA,GAAW,CAAC,GAGtB,OAAO,SAAgBmT,GACrBA,EAAUA,GAAW,GACrB,IAAK,IAAIhD,EAAI,EAAGA,EAAI+C,EAAgBvW,OAAQwT,IAAK,CAC/C,IACIiD,EAAQrB,EADKmB,EAAgB/C,IAEjC2B,EAAYsB,GAAOX,YACrB,CAEA,IADA,IAAIY,EAAqBpB,EAAakB,EAASnT,GACtCsT,EAAK,EAAGA,EAAKJ,EAAgBvW,OAAQ2W,IAAM,CAClD,IACIC,EAASxB,EADKmB,EAAgBI,IAEK,IAAnCxB,EAAYyB,GAAQd,aACtBX,EAAYyB,GAAQb,UACpBZ,EAAYe,OAAOU,EAAQ,GAE/B,CACAL,EAAkBG,CACpB,CACF,C,WCjFA,IAAIG,EAAO,CAAC,EA+BZ7D,EAAOC,QAPP,SAA0B8B,EAAQ+B,GAChC,IAAI3V,EAtBN,SAAmBA,GACjB,QAA4B,IAAjB0V,EAAK1V,GAAyB,CACvC,IAAI4V,EAAc9P,SAASgH,cAAc9M,GAGzC,GAAI6V,OAAOC,mBAAqBF,aAAuBC,OAAOC,kBAC5D,IAGEF,EAAcA,EAAYG,gBAAgBC,IAC5C,CAAE,MAAOlT,GAEP8S,EAAc,IAChB,CAEFF,EAAK1V,GAAU4V,CACjB,CACA,OAAOF,EAAK1V,EACd,CAIeiW,CAAUrC,GACvB,IAAK5T,EACH,MAAM,IAAIkW,MAAM,2GAElBlW,EAAOmW,YAAYR,EACrB,C,UCvBA9D,EAAOC,QANP,SAA4B5P,GAC1B,IAAI3H,EAAUuL,SAASsQ,cAAc,SAGrC,OAFAlU,EAAQyR,cAAcpZ,EAAS2H,EAAQmU,YACvCnU,EAAQ0R,OAAOrZ,EAAS2H,EAAQA,SACzB3H,CACT,C,iBCCAsX,EAAOC,QANP,SAAwCwE,GACtC,IAAI3Q,EAAmD,KACnDA,GACF2Q,EAAaC,aAAa,QAAS5Q,EAEvC,C,WCoDAkM,EAAOC,QAjBP,SAAgB5P,GACd,GAAwB,oBAAb4D,SACT,MAAO,CACLmP,OAAQ,WAAmB,EAC3BE,OAAQ,WAAmB,GAG/B,IAAImB,EAAepU,EAAQ4R,mBAAmB5R,GAC9C,MAAO,CACL+S,OAAQ,SAAgBT,IAjD5B,SAAe8B,EAAcpU,EAASsS,GACpC,IAAIC,EAAM,GACND,EAAI/B,WACNgC,GAAO,cAAcrC,OAAOoC,EAAI/B,SAAU,QAExC+B,EAAIjC,QACNkC,GAAO,UAAUrC,OAAOoC,EAAIjC,MAAO,OAErC,IAAIJ,OAAiC,IAAdqC,EAAI9B,MACvBP,IACFsC,GAAO,SAASrC,OAAOoC,EAAI9B,MAAM7T,OAAS,EAAI,IAAIuT,OAAOoC,EAAI9B,OAAS,GAAI,OAE5E+B,GAAOD,EAAIC,IACPtC,IACFsC,GAAO,KAELD,EAAIjC,QACNkC,GAAO,KAELD,EAAI/B,WACNgC,GAAO,KAET,IAAIC,EAAYF,EAAIE,UAChBA,GAA6B,oBAAT1B,OACtByB,GAAO,uDAAuDrC,OAAOY,KAAKE,SAASC,mBAAmBC,KAAKC,UAAUqB,MAAe,QAKtIxS,EAAQwR,kBAAkBe,EAAK6B,EAAcpU,EAAQA,QACvD,CAoBMsU,CAAMF,EAAcpU,EAASsS,EAC/B,EACAW,OAAQ,YArBZ,SAA4BmB,GAE1B,GAAgC,OAA5BA,EAAaG,WACf,OAAO,EAETH,EAAaG,WAAWC,YAAYJ,EACtC,CAgBMK,CAAmBL,EACrB,EAEJ,C,WC9CAzE,EAAOC,QAVP,SAA2B2C,EAAK6B,GAC9B,GAAIA,EAAaM,WACfN,EAAaM,WAAWC,QAAUpC,MAC7B,CACL,KAAO6B,EAAaQ,YAClBR,EAAaI,YAAYJ,EAAaQ,YAExCR,EAAaH,YAAYrQ,SAASiR,eAAetC,GACnD,CACF,C,WCZA5C,EAAOC,QAAUkF,Q,WCAjBnF,EAAOC,QAAUmF,qC,WCAjBpF,EAAOC,QAAU9X,E,WCAjB6X,EAAOC,QAAU9X,GAAGC,U,WCApB4X,EAAOC,QAAU9X,GAAGhB,I,WCApB6Y,EAAOC,QAAU9X,GAAGO,O,WCApBsX,EAAOC,QAAU9X,GAAGkd,K,WCApBrF,EAAOC,QAAU9X,GAAGmd,O,WCApBtF,EAAOC,QAAU9X,GAAGU,G,GCChB0c,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqB3E,IAAjB4E,EACH,OAAOA,EAAazF,QAGrB,IAAID,EAASuF,EAAyBE,GAAY,CACjDlgB,GAAIkgB,EAEJxF,QAAS,CAAC,GAOX,OAHA0F,EAAoBF,GAAUzF,EAAQA,EAAOC,QAASuF,GAG/CxF,EAAOC,OACf,CCrBAuF,EAAoBI,EAAK5F,IACxB,IAAI6F,EAAS7F,GAAUA,EAAO8F,WAC7B,IAAO9F,EAAiB,QACxB,IAAM,EAEP,OADAwF,EAAoBO,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,ECLdL,EAAoBO,EAAI,CAAC9F,EAASgG,KACjC,IAAI,IAAIvX,KAAOuX,EACXT,EAAoBU,EAAED,EAAYvX,KAAS8W,EAAoBU,EAAEjG,EAASvR,IAC5ErB,OAAO8Y,eAAelG,EAASvR,EAAK,CAAE0X,YAAY,EAAMC,IAAKJ,EAAWvX,IAE1E,ECND8W,EAAoBU,EAAI,CAACvD,EAAKjP,IAAUrG,OAAOiZ,UAAUC,eAAeC,KAAK7D,EAAKjP,GCClF8R,EAAoBiB,EAAKxG,IACH,oBAAXyG,QAA0BA,OAAOC,aAC1CtZ,OAAO8Y,eAAelG,EAASyG,OAAOC,YAAa,CAAElhB,MAAO,WAE7D4H,OAAO8Y,eAAelG,EAAS,aAAc,CAAExa,OAAO,GAAO,ECL9D+f,EAAoBoB,QAAK9F,ECAzB,cACA,UACA,UACA,UACA,UACA,UAeA,KAAM,IAAApC,sBAAsB,CACxB,IAAMvV,EAAY,qCAEb,IAAAF,QAAOE,KACR,IAAAgT,aAAY,CACR7W,KAAM6D,EACNiT,aAAc,CACV7J,WAAYD,EAAAA,sBAAsBC,WAClCrJ,OAAQoJ,EAAAA,sBAAsBwE,WAC9BrM,UAAW6H,EAAAA,sBAAsB7H,UACjCpB,KAAMwd,EAAAA,YACNld,SAAU2I,EAAAA,sBAAsB3I,SAChCF,MAAO6I,EAAAA,sBAAsB7I,SAKzC,IAAMqd,EAAY7S,SAAS8S,eAAe,sCACpCC,EACF,oBAAC,EAAAjT,+BAAD,CACI5K,UAAWA,EACXqJ,SAAUA,EAAAA,SACVoB,UAAWA,EAAAA,UACXhG,qBAAsBA,EAAAA,qBACtB2C,sBAAuBA,EAAAA,sBACvBxI,SAAUA,EAAAA,SACV4F,WAAYA,EAAAA,WACZ3F,YAAaA,EAAAA,YACb4G,QAASA,EAAAA,QACT/E,aAAcA,EAAAA,aACd6C,sBAAuBA,EAAAA,yBAI/B,IAAAiV,YAAWmF,GAAWG,OAAOD,EAChC,C","sources":["webpack://post-expirator/./assets/jsx/components/ButtonsPanel.jsx","webpack://post-expirator/./assets/jsx/components/CheckboxControl.jsx","webpack://post-expirator/./assets/jsx/components/DateOffsetPreview.jsx","webpack://post-expirator/./assets/jsx/components/DateTimePicker.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanel.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelAfterActionField.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelBlockEditor.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelBulkEdit.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelClassicEditor.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelQuickEdit.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelTop.jsx","webpack://post-expirator/./assets/jsx/components/NonceControl.jsx","webpack://post-expirator/./assets/jsx/components/PostTypeSettingsPanel.jsx","webpack://post-expirator/./assets/jsx/components/PostTypesSettingsPanels.jsx","webpack://post-expirator/./assets/jsx/components/SelectControl.jsx","webpack://post-expirator/./assets/jsx/components/SettingRow.jsx","webpack://post-expirator/./assets/jsx/components/SettingsFieldset.jsx","webpack://post-expirator/./assets/jsx/components/SettingsForm.jsx","webpack://post-expirator/./assets/jsx/components/SettingsSection.jsx","webpack://post-expirator/./assets/jsx/components/SettingsTable.jsx","webpack://post-expirator/./assets/jsx/components/Spinner.jsx","webpack://post-expirator/./assets/jsx/components/SubmitButton.jsx","webpack://post-expirator/./assets/jsx/components/TextControl.jsx","webpack://post-expirator/./assets/jsx/components/ToggleArrowButton.jsx","webpack://post-expirator/./assets/jsx/components/ToggleCalendarDatePicker.jsx","webpack://post-expirator/./assets/jsx/components/TokensControl.jsx","webpack://post-expirator/./assets/jsx/components/TrueFalseControl.jsx","webpack://post-expirator/./assets/jsx/components/index.jsx","webpack://post-expirator/./assets/jsx/data.jsx","webpack://post-expirator/./assets/jsx/time.jsx","webpack://post-expirator/./assets/jsx/utils.jsx","webpack://post-expirator/./assets/jsx/components/css/dateOffsetPreview.css","webpack://post-expirator/./node_modules/css-loader/dist/runtime/api.js","webpack://post-expirator/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://post-expirator/./node_modules/react-dom/client.js","webpack://post-expirator/./assets/jsx/components/css/dateOffsetPreview.css?541a","webpack://post-expirator/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://post-expirator/external var \"ReactDOM\"","webpack://post-expirator/external var \"publishpressFutureClassicEditorConfig\"","webpack://post-expirator/external var \"wp\"","webpack://post-expirator/external var \"wp.components\"","webpack://post-expirator/external var \"wp.data\"","webpack://post-expirator/external var \"wp.element\"","webpack://post-expirator/external var \"wp.hooks\"","webpack://post-expirator/external var \"wp.plugins\"","webpack://post-expirator/external var \"wp.url\"","webpack://post-expirator/webpack/bootstrap","webpack://post-expirator/webpack/runtime/compat get default export","webpack://post-expirator/webpack/runtime/define property getters","webpack://post-expirator/webpack/runtime/hasOwnProperty shorthand","webpack://post-expirator/webpack/runtime/make namespace object","webpack://post-expirator/webpack/runtime/nonce","webpack://post-expirator/./assets/jsx/classic-editor.jsx"],"sourcesContent":["/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const ButtonsPanel = function (props) {\n return (\n
\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment, useState } from \"@wordpress/element\";\nimport { CheckboxControl as WPCheckboxControl } from \"@wordpress/components\";\n\nexport const CheckboxControl = function (props) {\n const [checked, setChecked] = useState(props.checked || false);\n\n let description;\n\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n\n const onChange = function (value) {\n setChecked(value);\n\n if (props.onChange) {\n props.onChange(value);\n }\n };\n\n return (\n \n \n\n {description}\n \n )\n}\n","import {\n useState,\n useEffect,\n useRef,\n Fragment\n} from '@wordpress/element';\nimport { addQueryArgs } from '@wordpress/url';\nimport { apiFetch } from '&wp';\n\nrequire('./css/dateOffsetPreview.css');\n\nexport const DateOffsetPreview = ({\n offset,\n label,\n labelDatePreview,\n labelOffsetPreview,\n setValidationErrorCallback,\n setHasPendingValidationCallback,\n setHasValidDataCallback,\n compactView = false\n}) => {\n const [offsetPreview, setOffsetPreview] = useState('');\n const [currentTime, setCurrentTime] = useState();\n\n const apiRequestControllerRef = useRef(new AbortController());\n\n const validateDateOffset = () => {\n if (offset) {\n const controller = apiRequestControllerRef.current;\n\n if (controller) {\n controller.abort();\n }\n\n apiRequestControllerRef.current = new AbortController();\n const { signal } = apiRequestControllerRef.current;\n\n setHasPendingValidationCallback(true);\n\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/settings/validate-expire-offset`),\n method: 'POST',\n data: {\n offset\n },\n signal,\n }).then((result) => {\n setHasPendingValidationCallback(false);\n\n setHasValidDataCallback(result.isValid);\n setValidationErrorCallback(result.message);\n\n if (result.isValid) {\n setOffsetPreview(result.preview);\n setCurrentTime(result.currentTime);\n } else {\n setOffsetPreview('');\n }\n }).catch((error) => {\n if (error.name === 'AbortError') {\n return;\n }\n\n setHasPendingValidationCallback(false);\n setHasValidDataCallback(false);\n setValidationErrorCallback(error.message);\n setOffsetPreview('');\n });\n }\n }\n\n useEffect(() => {\n validateDateOffset();\n }, [offset]);\n\n const compactClass = compactView ? ' compact' : '';\n\n return (\n \n { offset && (\n
\n

{ label }

\n
\n
\n { labelDatePreview }: \n {currentTime}\n
\n
\n { labelOffsetPreview }: \n {offsetPreview}\n
\n
\n
\n )}\n
\n )\n}\n\nexport default DateOffsetPreview;\n","import { normalizeUnixTimeToMilliseconds } from \"../time\";\nimport { DateTimePicker as WPDateTimePicker } from \"@wordpress/components\";\n\n\nexport const DateTimePicker = ({currentDate, onChange, is12Hour, startOfWeek}) => {\n if (typeof currentDate === 'number') {\n currentDate = normalizeUnixTimeToMilliseconds(currentDate);\n }\n\n return (\n \n )\n}\n","import { compact } from '../utils';\nimport { ToggleCalendarDatePicker } from './ToggleCalendarDatePicker';\nimport { PluginArea } from '@wordpress/plugins';\nimport { Fill, Slot, SlotFillProvider } from '@wordpress/components';\nimport { FutureActionPanelAfterActionField } from './FutureActionPanelAfterActionField';\nimport { FutureActionPanelTop } from './FutureActionPanelTop';\n\nconst { PanelRow, CheckboxControl, SelectControl, FormTokenField, Spinner, BaseControl } = wp.components;\nconst { Fragment, useEffect, useState } = wp.element;\nconst { decodeEntities } = wp.htmlEntities;\nconst { addQueryArgs } = wp.url;\nconst {\n useSelect,\n useDispatch\n} = wp.data;\nconst { apiFetch } = wp;\n\nexport const FutureActionPanel = (props) => {\n const {\n action,\n date,\n enabled,\n terms,\n taxonomy,\n taxonomyName,\n termsListByName,\n termsListById,\n isFetchingTerms,\n calendarIsVisible,\n hasValidData,\n newStatus,\n } = useSelect((select) => {\n return {\n action: select(props.storeName).getAction(),\n date: select(props.storeName).getDate(),\n enabled: select(props.storeName).getEnabled(),\n terms: select(props.storeName).getTerms(),\n taxonomy: select(props.storeName).getTaxonomy(),\n taxonomyName: select(props.storeName).getTaxonomyName(),\n termsListByName: select(props.storeName).getTermsListByName(),\n termsListById: select(props.storeName).getTermsListById(),\n isFetchingTerms: select(props.storeName).getIsFetchingTerms(),\n calendarIsVisible: select(props.storeName).getCalendarIsVisible(),\n hasValidData: select(props.storeName).getHasValidData(),\n newStatus: select(props.storeName).getNewStatus(),\n };\n });\n\n const [validationError, setValidationError] = useState('');\n\n const {\n setAction,\n setDate,\n setEnabled,\n setTerms,\n setTaxonomy,\n setTermsListByName,\n setTermsListById,\n setTaxonomyName,\n setIsFetchingTerms,\n setCalendarIsVisible,\n setHasValidData,\n setNewStatus\n } = useDispatch(props.storeName);\n\n const mapTermsListById = (terms) => {\n if (typeof terms !== 'object' || terms === null) {\n return {};\n }\n\n return terms.map((term) => {\n return termsListById[term];\n });\n }\n\n const insertTerm = (term) => {\n termsListByName[term] = { id: term, count: 0, description: \"\", link: \"\", name: term, slug: term, taxonomy: taxonomy };\n termsListById[term] = term;\n setTermsListByName(termsListByName);\n setTermsListById(termsListById);\n setTerms([...terms, term]);\n\n }\n\n const mapTermsListByName = (terms) => {\n if (typeof terms !== 'object' || terms === null) {\n return {};\n }\n\n return terms.map((term) => {\n if (termsListByName[term]) {\n return termsListByName[term].id;\n }\n\n insertTerm(term);\n\n return term;\n });\n }\n\n const callOnChangeData = (attribute, value) => {\n if (typeof props.onChangeData === 'function') {\n props.onChangeData(attribute, value);\n }\n }\n\n const handleEnabledChange = (isChecked) => {\n setEnabled(isChecked);\n\n if (isChecked) {\n setAction(props.action);\n setDate(props.date);\n setNewStatus(props.newStatus);\n setTerms(props.terms);\n setTaxonomy(props.taxonomy);\n\n fetchTerms();\n }\n\n callOnChangeData('enabled', isChecked);\n }\n\n const handleActionChange = (value) => {\n setAction(value);\n\n callOnChangeData('action', value);\n }\n\n const handleNewStatusChange = (value) => {\n setNewStatus(value);\n\n callOnChangeData('newStatus', value);\n }\n\n const handleDateChange = (value) => {\n setDate(value);\n\n callOnChangeData('date', value);\n }\n\n const handleTermsChange = (value) => {\n value = mapTermsListByName(value);\n\n setTerms(value);\n\n callOnChangeData('terms', value);\n }\n\n const fetchTerms = () => {\n let termsListByName = {};\n let termsListById = {};\n\n if (!taxonomy) {\n return;\n }\n\n setIsFetchingTerms(true);\n\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/terms/${taxonomy}`),\n }).then((result) => {\n result.terms.forEach(term => {\n termsListByName[decodeEntities(term.name)] = term;\n termsListById[term.id] = decodeEntities(term.name);\n });\n\n setTermsListByName(termsListByName);\n setTermsListById(termsListById);\n setTaxonomyName(decodeEntities(result.taxonomyName));\n setIsFetchingTerms(false);\n });\n }\n\n const storeCalendarIsVisibleOnStorage = (value) => {\n localStorage.setItem('FUTURE_ACTION_CALENDAR_IS_VISIBLE_' + props.context, value ? '1' : '0');\n }\n\n const getCalendarIsVisibleFromStorage = () => {\n return localStorage.getItem('FUTURE_ACTION_CALENDAR_IS_VISIBLE_' + props.context);\n }\n\n useEffect(() => {\n if (props.autoEnableAndHideCheckbox) {\n setEnabled(true);\n } else {\n setEnabled(props.enabled);\n }\n\n setAction(props.action);\n setNewStatus(props.newStatus);\n setDate(props.date);\n setTerms(props.terms);\n setTaxonomy(props.taxonomy);\n\n if (getCalendarIsVisibleFromStorage() === null) {\n setCalendarIsVisible(props.calendarIsVisible);\n } else {\n setCalendarIsVisible(getCalendarIsVisibleFromStorage() === '1' && ! props.hideCalendarByDefault);\n }\n\n // We need to get the value directly from the props because the value from the store is not updated yet\n if (props.enabled) {\n if (props.isCleanNewPost) {\n // Force populate the default values\n handleEnabledChange(true);\n }\n\n fetchTerms();\n }\n }, []);\n\n useEffect(() => {\n storeCalendarIsVisibleOnStorage(calendarIsVisible);\n }, [calendarIsVisible]);\n\n useEffect(() => {\n if (hasValidData && props.onDataIsValid) {\n props.onDataIsValid();\n }\n\n if (!hasValidData && props.onDataIsInvalid) {\n props.onDataIsInvalid();\n }\n }, [hasValidData]);\n\n let selectedTerms = [];\n if (terms && terms.length > 0 && termsListById) {\n selectedTerms = compact(mapTermsListById(terms));\n\n if (typeof selectedTerms === 'string') {\n selectedTerms = [];\n }\n }\n\n let termsListByNameKeys = [];\n if (typeof termsListByName === 'object' && termsListByName !== null) {\n termsListByNameKeys = Object.keys(termsListByName);\n }\n\n const panelClass = calendarIsVisible ? 'future-action-panel' : 'future-action-panel hidden-calendar';\n const contentPanelClass = calendarIsVisible ? 'future-action-panel-content' : 'future-action-panel-content hidden-calendar';\n const datePanelClass = calendarIsVisible ? 'future-action-date-panel' : 'future-action-date-panel hidden-calendar';\n\n let is24hour;\n if (props.timeFormat === 'inherited') {\n is24hour = !props.is12Hour;\n } else {\n is24hour = props.timeFormat === '24h';\n }\n\n const replaceCurlyBracketsWithLink = (string, href, target) => {\n const parts = string.split('{');\n const result = [];\n\n result.push(parts.shift());\n\n for (const part of parts) {\n const [before, after] = part.split('}');\n\n result.push(\n {before}\n );\n\n result.push(after);\n }\n\n return result;\n };\n\n // Remove items from actions list if related to taxonomies and there is no taxonmoy for the post type\n let actionsSelectOptions = props.actionsSelectOptions;\n if (!props.taxonomy) {\n actionsSelectOptions = props.actionsSelectOptions.filter((item) => {\n return ['category', 'category-add', 'category-remove', 'category-remove-all'].indexOf(item.value) === -1;\n });\n }\n\n const HelpText = replaceCurlyBracketsWithLink(props.strings.timezoneSettingsHelp, '/wp-admin/options-general.php#timezone_string', '_blank');\n const displayTaxonomyField = String(action).includes('category') && action !== 'category-remove-all';\n\n let termsFieldLabel = taxonomyName;\n switch (action) {\n case 'category':\n termsFieldLabel = props.strings.newTerms.replace('%s', taxonomyName);\n break;\n case 'category-remove':\n termsFieldLabel = props.strings.removeTerms.replace('%s', taxonomyName);\n break;\n case 'category-add':\n termsFieldLabel = props.strings.addTerms.replace('%s', taxonomyName);\n break;\n }\n\n const validateData = () => {\n let valid = true;\n\n if (!enabled) {\n setValidationError('');\n return true;\n }\n\n if (!action) {\n setValidationError(props.strings.errorActionRequired);\n valid = false;\n }\n\n if (!date) {\n setValidationError(props.strings.errorDateRequired);\n valid = false;\n }\n\n // Check if the date is in the past\n if (date && new Date(date) < new Date()) {\n setValidationError(props.strings.errorDateInPast);\n valid = false;\n }\n\n const isTermRequired = ['category', 'category-add', 'category-remove'].includes(action);\n const noTermIsSelected = terms.length === 0 || (terms.length === 1 && (terms[0] === '' || terms[0] === '0'));\n\n if (isTermRequired && noTermIsSelected) {\n setValidationError(props.strings.errorTermsRequired);\n valid = false;\n }\n\n if (valid) {\n setValidationError('');\n }\n\n return valid;\n }\n\n useEffect(() => {\n if (!enabled) {\n setHasValidData(true);\n setValidationError('');\n\n return;\n }\n\n setHasValidData(validateData());\n }, [action, date, enabled, terms, taxonomy]);\n\n // This adds a 'cancel' class to the input when the user clicks on the\n // field to prevent the form from being submitted. This is a workaround\n // for the issue on the quick-edit form where the form is submitted when\n // the user presses the 'Enter' key trying to add a term to the field.\n const forceIgnoreAutoSubmitOnEnter = (e) => {\n jQuery(e.target).addClass('cancel');\n }\n\n return (\n \n
\n {props.autoEnableAndHideCheckbox && (\n \n )}\n\n \n\n {!props.autoEnableAndHideCheckbox && (\n \n \n \n )}\n\n {enabled && (\n \n \n \n \n\n \n\n {action === 'change-status' &&\n \n \n \n }\n\n {\n displayTaxonomyField && (\n isFetchingTerms && (\n \n \n {`${props.strings.loading} (${taxonomyName})`}\n \n \n \n )\n || (!taxonomy && (\n \n \n
\n {props.strings.noTaxonomyFound}\n
\n
\n
\n )\n || (\n termsListByNameKeys.length === 0 && (\n \n \n
\n {props.strings.noTermsFound}\n
\n
\n
\n )\n || (\n \n \n \n \n \n )\n )\n )\n )\n }\n\n \n setCalendarIsVisible(!calendarIsVisible)}\n is12Hour={!is24hour}\n startOfWeek={props.startOfWeek}\n isExpanded={calendarIsVisible}\n strings={props.strings}\n />\n \n\n \n
\n
\n\n {HelpText}\n
\n
\n\n {!hasValidData && (\n \n \n
{validationError}
\n
\n
\n )}\n
\n )}\n
\n \n
\n );\n};\n","import { Slot, Fill } from '@wordpress/components';\n\nexport const FutureActionPanelAfterActionField = ({ children }) => (\n \n {children}\n \n);\n\nconst FutureActionPanelAfterActionFieldSlot = (props) => (\n \n);\n\nFutureActionPanelAfterActionField.Slot = FutureActionPanelAfterActionFieldSlot;\n\nexport default FutureActionPanelAfterActionField;\n","import { FutureActionPanel } from './';\n\nexport const FutureActionPanelBlockEditor = (props) => {\n const { PluginDocumentSettingPanel } = wp.editPost;\n const { useDispatch, select } = wp.data;\n\n const { editPost } = useDispatch('core/editor');\n\n const editPostAttribute = (newAttribute) => {\n const attribute = {\n publishpress_future_action: {}\n };\n\n // For each property on newAttribute, set the value on attribute\n for (const [name, value] of Object.entries(newAttribute)) {\n attribute.publishpress_future_action[name] = value;\n }\n\n editPost(attribute);\n }\n\n const onChangeData = (attribute, value) => {\n const store = select(props.storeName);\n\n const newAttribute = {\n 'enabled': store.getEnabled()\n }\n\n if (newAttribute.enabled) {\n newAttribute['action'] = store.getAction();\n newAttribute['newStatus'] = store.getNewStatus();\n newAttribute['date'] = store.getDate();\n newAttribute['terms'] = store.getTerms();\n newAttribute['taxonomy'] = store.getTaxonomy();\n newAttribute['extraData'] = store.getExtraData();\n }\n\n editPostAttribute(newAttribute);\n }\n\n const data = select('core/editor').getEditedPostAttribute('publishpress_future_action');\n\n const { lockPostSaving, unlockPostSaving } = useDispatch('core/editor');\n\n const onDataIsValid = () => {\n unlockPostSaving('future-action');\n }\n\n const onDataIsInvalid = () => {\n lockPostSaving('future-action');\n }\n\n return (\n \n
\n \n
\n \n );\n};\n","import { FutureActionPanel, SelectControl } from '.';\nimport { getElementByName } from '../utils';\n\nexport const FutureActionPanelBulkEdit = (props) => {\n const { useSelect, useDispatch, select } = wp.data;\n const { useEffect } = wp.element;\n\n const onChangeData = (attribute, value) => {\n getElementByName('future_action_bulk_enabled').value = select(props.storeName).getEnabled() ? 1 : 0;\n getElementByName('future_action_bulk_action').value = select(props.storeName).getAction();\n getElementByName('future_action_bulk_new_status').value = select(props.storeName).getNewStatus();\n getElementByName('future_action_bulk_date').value = select(props.storeName).getDate();\n getElementByName('future_action_bulk_terms').value = select(props.storeName).getTerms().join(',');\n getElementByName('future_action_bulk_taxonomy').value = select(props.storeName).getTaxonomy();\n }\n\n const date = useSelect((select) => select(props.storeName).getDate(), []);\n const enabled = useSelect((select) => select(props.storeName).getEnabled(), []);\n const action = useSelect((select) => select(props.storeName).getAction(), []);\n const newStatus = useSelect((select) => select(props.storeName).getNewStatus(), []);\n const terms = useSelect((select) => select(props.storeName).getTerms(), []);\n const taxonomy = useSelect((select) => select(props.storeName).getTaxonomy(), []);\n const changeAction = useSelect((select) => select(props.storeName).getChangeAction(), []);\n const hasValidData = useSelect((select) => select(props.storeName).getHasValidData(), []);\n\n const {\n setChangeAction\n } = useDispatch(props.storeName);\n\n let termsString = terms;\n if (typeof terms === 'object') {\n termsString = terms.join(',');\n }\n\n const handleStrategyChange = (value) => {\n setChangeAction(value);\n };\n\n const options = [\n { value: 'no-change', label: props.strings.noChange },\n { value: 'change-add', label: props.strings.changeAdd },\n { value: 'add-only', label: props.strings.addOnly },\n { value: 'change-only', label: props.strings.changeOnly },\n { value: 'remove-only', label: props.strings.removeOnly },\n ];\n\n const optionsToDisplayPanel = ['change-add', 'add-only', 'change-only'];\n\n useEffect(() => {\n // We are not using onDataIsValid and onDataIsInvalid because we need to enable/disable the button\n // also based on the changeAction value.\n if (hasValidData || changeAction === 'no-change') {\n jQuery('#bulk_edit').prop('disabled', false);\n } else {\n jQuery('#bulk_edit').prop('disabled', true);\n }\n }, [hasValidData, changeAction]);\n\n return (\n
\n \n\n {optionsToDisplayPanel.includes(changeAction) && (\n \n )}\n\n {/* Bulk edit JS code will save only fields with name inside the edit row */}\n \n \n \n \n \n \n \n \n
\n );\n};\n","import { FutureActionPanel } from \"./\";\nimport { select, useSelect } from \"@wordpress/data\";\nimport { useEffect } from \"@wordpress/element\";\n\nexport const FutureActionPanelClassicEditor = (props) => {\n const browserTimezoneOffset = new Date().getTimezoneOffset();\n\n const getElementByName = (name) => {\n return document.getElementsByName(name)[0];\n }\n\n const onChangeData = (attribute, value) => {\n const store = select(props.storeName);\n\n getElementByName('future_action_enabled').value = store.getEnabled() ? 1 : 0;\n getElementByName('future_action_action').value = store.getAction();\n getElementByName('future_action_new_status').value = store.getNewStatus();\n getElementByName('future_action_date').value = store.getDate();\n getElementByName('future_action_terms').value = store.getTerms().join(',');\n getElementByName('future_action_taxonomy').value = store.getTaxonomy();\n }\n\n const getTermsFromElementByName = (name) => {\n const element = getElementByName(name);\n if (!element) {\n return [];\n }\n\n let terms = element.value.split(',');\n\n if (terms.length === 1 && terms[0] === '') {\n terms = [];\n }\n\n return terms.map(term => parseInt(term));\n }\n\n const getElementValueByName = (name) => {\n const element = getElementByName(name);\n if (!element) {\n return '';\n }\n\n return element.value;\n }\n\n const data = {\n enabled: getElementValueByName('future_action_enabled') === '1',\n action: getElementValueByName('future_action_action'),\n newStatus: getElementValueByName('future_action_new_status'),\n date: getElementValueByName('future_action_date'),\n terms: getTermsFromElementByName('future_action_terms'),\n taxonomy: getElementValueByName('future_action_taxonomy'),\n };\n\n const onDataIsValid = () => {\n jQuery('#publish').prop('disabled', false);\n }\n\n const onDataIsInvalid = () => {\n jQuery('#publish').prop('disabled', true);\n }\n\n return (\n
\n \n
\n );\n};\n","import { FutureActionPanel } from './';\nimport { useSelect, select } from '@wordpress/data';\nimport { useEffect } from '@wordpress/element';\n\nexport const FutureActionPanelQuickEdit = (props) => {\n const onChangeData = (attribute, value) => {};\n\n const date = useSelect((select) => select(props.storeName).getDate(), []);\n const enabled = useSelect((select) => select(props.storeName).getEnabled(), []);\n const action = useSelect((select) => select(props.storeName).getAction(), []);\n const terms = useSelect((select) => select(props.storeName).getTerms(), []);\n const taxonomy = useSelect((select) => select(props.storeName).getTaxonomy(), []);\n const hasValidData = useSelect((select) => select(props.storeName).getHasValidData(), []);\n const newStatus = useSelect((select) => select(props.storeName).getNewStatus(), []);\n\n let termsString = terms;\n if (typeof terms === 'object') {\n termsString = terms.join(',');\n }\n\n const onDataIsValid = () => {\n jQuery('.button-primary.save').prop('disabled', false);\n }\n\n const onDataIsInvalid = () => {\n jQuery('.button-primary.save').prop('disabled', true);\n }\n\n return (\n
\n \n\n {/* Quick edit JS code will save only fields with name inside the edit row */}\n \n \n \n \n \n \n \n \n
\n );\n};\n","import { Slot, Fill } from '@wordpress/components';\n\nexport const FutureActionPanelTop = ({ children }) => (\n \n {children}\n \n);\n\nconst FutureActionPanelTopSlot = (props) => (\n \n);\n\nFutureActionPanelTop.Slot = FutureActionPanelTopSlot;\n\nexport default FutureActionPanelTop;\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const NonceControl = function (props) {\n if (! props.name) {\n props.name = '_wpnonce';\n }\n\n if (! props.referrer) {\n props.referrer = true;\n }\n\n return (\n \n \n\n {props.referrer &&\n \n }\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nimport {\n SettingRow,\n SettingsTable,\n SelectControl,\n TextControl,\n TokensControl,\n CheckboxControl\n} from './';\nimport { useEffect, useState } from '@wordpress/element';\nimport { addQueryArgs } from '@wordpress/url';\nimport { applyFilters } from '@wordpress/hooks';\nimport { apiFetch } from '&wp';\nimport DateOffsetPreview from './DateOffsetPreview';\n\nconst { PanelRow } = wp.components;\n\nexport const PostTypeSettingsPanel = function (props) {\n const originalExpireTypeList = props.expireTypeList[props.postType];\n\n const [postTypeTaxonomy, setPostTypeTaxonomy] = useState(props.settings.taxonomy);\n const [termOptions, setTermOptions] = useState([]);\n const [termsSelectIsLoading, setTermsSelectIsLoading] = useState(false);\n const [selectedTerms, setSelectedTerms] = useState([]);\n const [settingHowToExpire, setSettingHowToExpire] = useState(props.settings.howToExpire);\n const [isActive, setIsActive] = useState(props.settings.active);\n const [expireOffset, setExpireOffset] = useState(props.settings.defaultExpireOffset);\n const [emailNotification, setEmailNotification] = useState(props.settings.emailNotification);\n const [isAutoEnabled, setIsAutoEnabled] = useState(props.settings.autoEnabled);\n const [hasValidData, setHasValidData] = useState(true);\n const [validationError, setValidationError] = useState('');\n const [taxonomyLabel, setTaxonomyLabel] = useState('');\n const [howToExpireList, setHowToExpireList] = useState(originalExpireTypeList);\n const [newStatus, setNewStatus] = useState(props.settings.newStatus);\n const [hasPendingValidation, setHasPendingValidation] = useState(false);\n\n const offset = expireOffset ? expireOffset : props.settings.globalDefaultExpireOffset;\n\n const taxonomyRelatedActions = [\n 'category',\n 'category-add',\n 'category-remove',\n 'category-remove-all'\n ];\n\n const onChangeTaxonomy = function (value) {\n setPostTypeTaxonomy(value);\n };\n\n const onChangeTerms = (value) => {\n setSelectedTerms(value);\n };\n\n const onChangeHowToExpire = (value) => {\n setSettingHowToExpire(value);\n }\n\n const onChangeActive = (value) => {\n setIsActive(value);\n }\n\n const onChangeExpireOffset = (value) => {\n setExpireOffset(value);\n }\n\n const onChangeEmailNotification = (value) => {\n setEmailNotification(value);\n }\n\n const onChangeAutoEnabled = (value) => {\n setIsAutoEnabled(value);\n }\n\n useEffect(() => {\n // Remove items from expireTypeList if related to taxonomies and there is no taxonmoy for the post type\n if (props.taxonomiesList.length === 0) {\n let newExpireTypeList = [];\n\n newExpireTypeList = howToExpireList.filter((item) => {\n return taxonomyRelatedActions.indexOf(item.value) === -1;\n });\n\n setHowToExpireList(newExpireTypeList);\n }\n }, []);\n\n useEffect(() => {\n if (!postTypeTaxonomy || !props.taxonomiesList) {\n return;\n }\n\n setTermsSelectIsLoading(true);\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/terms/${postTypeTaxonomy}`),\n }).then((result) => {\n let options = [];\n\n let settingsTermsOptions = null;\n let option;\n\n result.terms.forEach(term => {\n option = { value: term.id, label: term.name };\n options.push(option);\n\n if (postTypeTaxonomy === props.settings.taxonomy && props.settings.terms.includes(term.id)) {\n if (settingsTermsOptions === null) {\n settingsTermsOptions = [];\n }\n\n settingsTermsOptions.push(option.label);\n }\n });\n\n setTermOptions(options);\n setSelectedTerms(settingsTermsOptions);\n setTermsSelectIsLoading(false);\n });\n\n props.taxonomiesList.forEach((taxonomy) => {\n if (taxonomy.value === postTypeTaxonomy) {\n setTaxonomyLabel(taxonomy.label);\n }\n });\n }, [postTypeTaxonomy]);\n\n useEffect(() => {\n if (!taxonomyLabel) {\n return;\n }\n\n // Update the list of actions replacing the taxonomy name.\n let newExpireTypeList = [];\n\n originalExpireTypeList.forEach((expireType) => {\n let label = expireType.label;\n\n if (taxonomyRelatedActions.indexOf(expireType.value) !== -1) {\n label = label.replace('%s', taxonomyLabel.toLowerCase());\n }\n\n newExpireTypeList.push({\n value: expireType.value,\n label: label\n });\n });\n\n setHowToExpireList(newExpireTypeList);\n }, [taxonomyLabel]);\n\n useEffect(() => {\n if (hasValidData && props.onDataIsValid) {\n props.onDataIsValid(props.postType);\n }\n\n if (!hasValidData && props.onDataIsInvalid) {\n props.onDataIsInvalid(props.postType);\n }\n }, [hasValidData]);\n\n useEffect(() => {\n if (hasPendingValidation && props.onValidationStarted) {\n props.onValidationStarted(props.postType);\n }\n\n if (!hasPendingValidation && props.onValidationFinished) {\n props.onValidationFinished(props.postType);\n }\n }, [hasPendingValidation]);\n\n const termOptionsLabels = termOptions.map((term) => term.label);\n\n let settingsRows = [\n \n \n \n ];\n\n if (isActive) {\n settingsRows.push(\n \n \n \n );\n\n settingsRows.push(\n \n \n \n \n );\n\n settingsRows.push(\n \n \n\n {settingHowToExpire === 'change-status' &&\n \n }\n\n {(props.taxonomiesList.length > 0 && (['category', 'category-add', 'category-remove'].indexOf(settingHowToExpire) > -1)) &&\n \n }\n \n );\n\n settingsRows.push(\n \n \n\n \n \n );\n\n settingsRows.push(\n \n \n \n );\n }\n\n settingsRows = applyFilters('expirationdate_settings_posttype', settingsRows, props, isActive, useState);\n\n const fieldSetClassNames = props.isVisible ? 'pe-settings-fieldset' : 'pe-settings-fieldset hidden';\n\n return (\n
\n \n\n {! hasValidData && (\n \n
\n {props.text.error}: {validationError}\n
\n
\n )}\n
\n );\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nimport { PostTypeSettingsPanel } from \"./\";\nimport { useState } from \"@wordpress/element\";\n\nexport const PostTypesSettingsPanels = function (props) {\n const [currentTab, setCurrentTab] = useState(Object.keys(props.settings)[0]);\n\n let panels = [];\n\n for (const [postType, postTypeSettings] of Object.entries(props.settings)) {\n panels.push(\n \n );\n }\n\n const onSelectTab = (event) => {\n event.preventDefault();\n setCurrentTab(event.target.hash.replace('#', '').replace('-panel', ''));\n }\n\n let tabs = [];\n let selected = false;\n\n for (const [postType, postTypeSettings] of Object.entries(props.settings)) {\n selected = currentTab === postType;\n tabs.push(\n \n {postTypeSettings.label}\n \n );\n }\n\n return (\n
\n \n {panels}\n
\n );\n}\n\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\nimport { SelectControl as WPSelectControl } from \"@wordpress/components\";\n\nexport const SelectControl = function (props) {\n const onChange = (value) => {\n props.onChange(value);\n };\n\n return (\n \n {props.options.length === 0 && (\n
{props.noItemFoundMessage}
\n )}\n\n {props.options.length > 0 && (\n \n )}\n\n {props.children}\n\n

{props.description}

\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const SettingRow = function (props) {\n return (\n \n \n \n \n \n {props.children}\n \n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsFieldset = function (props) {\n return (\n
\n {props.legend}\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsForm = function (props) {\n return (\n
\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const SettingsSection = function (props) {\n return (\n \n

{props.title}

\n

{props.description}

\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsTable = function (props) {\n return (\n \n \n {props.bodyChildren}\n \n
\n )\n}\n","/*\n * Copyright (c) 2024. PublishPress, All rights reserved.\n */\nexport const Spinner = function (props) {\n return (\n
\n );\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SubmitButton = function (props) {\n return (\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\nimport { TextControl as WPTextControl } from \"@wordpress/components\";\nimport { Spinner } from \"./\";\n\nexport const TextControl = function (props) {\n let description;\n\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n\n const onChange = function (value) {\n if (props.onChange) {\n props.onChange(value);\n }\n };\n\n let className = props.className ? props.className : '';\n\n if (props.loading) {\n className += ' publishpress-future-loading publishpress-future-loading-input';\n }\n\n return (\n \n
\n \n\n {props.loading && }\n\n {description}\n
\n
\n )\n}\n","import { Button } from '@wordpress/components';\n\nexport const ToggleArrowButton = function (props) {\n const onClick = function () {\n if (props.onClick) {\n props.onClick();\n }\n };\n\n const iconExpanded = props.iconExpanded ? props.iconExpanded : 'arrow-up-alt2';\n const iconCollapsed = props.iconCollapsed ? props.iconCollapsed : 'arrow-down-alt2';\n\n const icon = props.isExpanded ? iconExpanded : iconCollapsed;\n\n const title = props.isExpanded ? props.titleExpanded : props.titleCollapsed;\n\n return (\n \n )\n}\n","import { ToggleArrowButton } from \"./ToggleArrowButton\";\nimport { DateTimePicker } from \"./DateTimePicker\";\nimport { Fragment, useEffect } from \"@wordpress/element\";\n\nexport const ToggleCalendarDatePicker = (\n {\n isExpanded,\n strings,\n onToggleCalendar,\n currentDate,\n onChangeDate,\n is12Hour,\n startOfWeek\n }\n) => {\n useEffect(() => {\n // Move the element of the toggle button to between the time and date elements.\n const toggleButtonElement = document.querySelector('.future-action-calendar-toggle');\n\n if (! toggleButtonElement) {\n return;\n }\n\n const dateTimeElement = toggleButtonElement.nextElementSibling;\n\n if (! dateTimeElement) {\n return;\n }\n\n const timeElement = dateTimeElement.querySelector('.components-datetime__time');\n\n if (! timeElement) {\n return;\n }\n\n const dateElement = timeElement.nextSibling;\n\n if (! dateElement) {\n return;\n }\n\n dateTimeElement.insertBefore(toggleButtonElement, dateElement)\n });\n\n return (\n \n \n\n \n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment, useState, useEffect } from \"@wordpress/element\";\nimport { FormTokenField } from \"@wordpress/components\";\n\nexport const TokensControl = (props) => {\n const [stringValue, setStringValue] = useState('');\n\n useEffect(() => {\n if (props.value) {\n setStringValue(props.value.join(','));\n }\n }, [props.value]);\n\n let description;\n\n if (props.description) {\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n }\n\n const onChange = (value) => {\n if (props.onChange) {\n props.onChange(value);\n }\n\n if (typeof value === 'object') {\n setStringValue(value.join(','));\n } else {\n setStringValue('');\n }\n }\n\n const value = props.value ? props.value : [];\n \n return (\n \n \n \n\n {description}\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const TrueFalseControl = function (props) {\n const { Fragment } = wp.element;\n\n const onChange = (e) => {\n if (props.onChange) {\n props.onChange(\n e.target.value === props.trueValue && jQuery(e.target).is(':checked')\n );\n // Check only the true radio... using the field name? or directly the ID\n }\n };\n\n return (\n \n \n\n \n   \n \n {props.falseLabel}\n\n

{props.description}

\n
\n )\n}\n","export { ButtonsPanel } from \"./ButtonsPanel\";\nexport { FutureActionPanel } from \"./FutureActionPanel\";\nexport { FutureActionPanelBlockEditor } from \"./FutureActionPanelBlockEditor\";\nexport { FutureActionPanelClassicEditor } from \"./FutureActionPanelClassicEditor\";\nexport { FutureActionPanelQuickEdit } from \"./FutureActionPanelQuickEdit\";\nexport { FutureActionPanelBulkEdit } from \"./FutureActionPanelBulkEdit\";\nexport { PostTypeSettingsPanel } from \"./PostTypeSettingsPanel\";\nexport { PostTypesSettingsPanels } from \"./PostTypesSettingsPanels\";\nexport { SettingRow } from \"./SettingRow\";\nexport { SettingsFieldset } from \"./SettingsFieldset\";\nexport { SettingsForm } from \"./SettingsForm\";\nexport { SettingsSection } from \"./SettingsSection\";\nexport { SettingsTable } from \"./SettingsTable\";\nexport { SubmitButton } from \"./SubmitButton\";\nexport { CheckboxControl } from \"./CheckboxControl\";\nexport { SelectControl } from \"./SelectControl\";\nexport { TextControl } from \"./TextControl\";\nexport { TokensControl } from \"./TokensControl\";\nexport { NonceControl } from \"./NonceControl\";\nexport { TrueFalseControl } from \"./TrueFalseControl\";\nexport { Spinner } from \"./Spinner\";\nexport { DateOffsetPreview } from \"./DateOffsetPreview\";\n","import { formatUnixTimeToTimestamp, getCurrentTimeAsTimestamp, normalizeUnixTimeToSeconds } from './time';\nimport { isNumber } from './utils';\nimport { register, createReduxStore } from '@wordpress/data';\n\nexport const createStore = (props) => {\n if (props.defaultState.terms && typeof props.defaultState.terms === 'string') {\n props.defaultState.terms = props.defaultState.terms.split(',').map(term => parseInt(term));\n }\n\n let defaultState = {\n action: props.defaultState.action,\n date: props.defaultState.date ? props.defaultState.date : getCurrentTimeAsTimestamp(),\n enabled: props.defaultState.autoEnable,\n terms: props.defaultState.terms ? props.defaultState.terms : [],\n taxonomy: props.defaultState.taxonomy ? props.defaultState.taxonomy : null,\n newStatus: props.defaultState.newStatus ? props.defaultState.newStatus : 'draft',\n termsListByName: null,\n termsListById: null,\n taxonomyName: null,\n isFetchingTerms: false,\n changeAction: 'no-change',\n calendarIsVisible: true,\n hasValidData: true,\n extraData: props.defaultState.extraData ? props.defaultState.extraData : {},\n }\n\n const store = createReduxStore(props.name, {\n reducer(state = defaultState, action) {\n switch (action.type) {\n case 'SET_ACTION':\n return {\n ...state,\n action: action.action,\n };\n case 'SET_NEW_STATUS':\n return {\n ...state,\n newStatus: action.newStatus,\n };\n case 'SET_DATE':\n // Make sure the date is a number, if it is a string with only numbers\n if (typeof action.date !== 'number' && isNumber(action.date)) {\n action.date = parseInt(action.date);\n }\n\n // If string, convert to unix time\n if (typeof action.date === 'string') {\n action.date = new Date(action.date).getTime();\n }\n\n // Make sure the time is always in seconds\n action.date = normalizeUnixTimeToSeconds(action.date);\n\n // Convert to formated string format, considering it is in the site's timezone\n action.date = formatUnixTimeToTimestamp(action.date);\n\n return {\n ...state,\n date: action.date,\n }\n case 'SET_ENABLED':\n return {\n ...state,\n enabled: action.enabled,\n }\n case 'SET_TERMS':\n return {\n ...state,\n terms: action.terms,\n }\n case 'SET_TAXONOMY':\n return {\n ...state,\n taxonomy: action.taxonomy,\n }\n case 'SET_TERMS_LIST_BY_NAME':\n return {\n ...state,\n termsListByName: action.termsListByName,\n }\n case 'SET_TERMS_LIST_BY_ID':\n return {\n ...state,\n termsListById: action.termsListById,\n }\n case 'SET_TAXONOMY_NAME':\n return {\n ...state,\n taxonomyName: action.taxonomyName,\n }\n case 'SET_CHANGE_ACTION':\n return {\n ...state,\n changeAction: action.changeAction,\n }\n case 'SET_CALENDAR_IS_VISIBLE':\n return {\n ...state,\n calendarIsVisible: action.calendarIsVisible,\n }\n case 'SET_HAS_VALID_DATA':\n return {\n ...state,\n hasValidData: action.hasValidData,\n }\n\n case 'SET_EXTRA_DATA':\n return {\n ...state,\n extraData: {\n ...action.extraData,\n }\n }\n\n case 'SET_EXTRA_DATA_BY_NAME':\n const extraData = {\n ...state.extraData,\n [action.name]: action.value\n };\n\n return {\n ...state,\n extraData: {...extraData}\n }\n }\n\n return state;\n },\n actions: {\n setAction(action) {\n return {\n type: 'SET_ACTION',\n action: action\n };\n },\n setNewStatus(newStatus) {\n return {\n type: 'SET_NEW_STATUS',\n newStatus: newStatus\n };\n },\n setDate(date) {\n return {\n type: 'SET_DATE',\n date: date\n };\n },\n setEnabled(enabled) {\n return {\n type: 'SET_ENABLED',\n enabled: enabled\n };\n },\n setTerms(terms) {\n return {\n type: 'SET_TERMS',\n terms: terms\n };\n },\n setTaxonomy(taxonomy) {\n return {\n type: 'SET_TAXONOMY',\n taxonomy: taxonomy\n };\n },\n setTermsListByName(termsListByName) {\n return {\n type: 'SET_TERMS_LIST_BY_NAME',\n termsListByName: termsListByName\n };\n },\n setTermsListById(termsListById) {\n return {\n type: 'SET_TERMS_LIST_BY_ID',\n termsListById: termsListById\n };\n },\n setTaxonomyName(taxonomyName) {\n return {\n type: 'SET_TAXONOMY_NAME',\n taxonomyName: taxonomyName\n };\n },\n setIsFetchingTerms(isFetchingTerms) {\n return {\n type: 'SET_IS_FETCHING_TERMS',\n isFetchingTerms: isFetchingTerms\n }\n },\n setChangeAction(changeAction) {\n return {\n type: 'SET_CHANGE_ACTION',\n changeAction: changeAction\n }\n },\n setCalendarIsVisible(calendarIsVisible) {\n return {\n type: 'SET_CALENDAR_IS_VISIBLE',\n calendarIsVisible: calendarIsVisible\n }\n },\n setHasValidData(hasValidData) {\n return {\n type: 'SET_HAS_VALID_DATA',\n hasValidData: hasValidData\n }\n },\n setExtraData(extraData) {\n return {\n type: 'SET_EXTRA_DATA',\n extraData: extraData\n }\n },\n setExtraDataByName(name, value) {\n return {\n type: 'SET_EXTRA_DATA_BY_NAME',\n name: name,\n value: value\n }\n }\n },\n selectors: {\n getAction(state) {\n return state.action;\n },\n getNewStatus(state) {\n return state.newStatus;\n },\n getDate(state) {\n return state.date;\n },\n getEnabled(state) {\n return state.enabled;\n },\n getTerms(state) {\n return state.terms;\n },\n getTaxonomy(state) {\n return state.taxonomy;\n },\n getTermsListByName(state) {\n return state.termsListByName;\n },\n getTermsListById(state) {\n return state.termsListById;\n },\n getTaxonomyName(state) {\n return state.taxonomyName;\n },\n getIsFetchingTerms(state) {\n return state.isFetchingTerms;\n },\n getChangeAction(state) {\n return state.changeAction;\n },\n getCalendarIsVisible(state) {\n return state.calendarIsVisible;\n },\n getHasValidData(state) {\n return state.hasValidData;\n },\n getExtraData(state) {\n return state.extraData;\n },\n getExtraDataByName(state, name) {\n return state.extraData[name] || null;\n }\n }\n });\n\n register(store);\n\n return store;\n}\n","export const getCurrentTimeInSeconds = () => {\n return normalizeUnixTimeToSeconds(new Date().getTime());\n}\n\nexport const getCurrentTimeAsTimestamp = () => {\n return formatUnixTimeToTimestamp(getCurrentTimeInSeconds());\n}\n\nexport const formatUnixTimeToTimestamp = (unixTimestamp) => {\n const date = new Date(\n normalizeUnixTimeToSeconds(unixTimestamp)\n );\n\n const year = date.getFullYear();\n const month = (\"0\" + (date.getMonth() + 1)).slice(-2); // Months are zero-based\n const day = (\"0\" + date.getDate()).slice(-2);\n const hours = (\"0\" + date.getHours()).slice(-2);\n const minutes = (\"0\" + date.getMinutes()).slice(-2);\n const seconds = (\"0\" + date.getSeconds()).slice(-2);\n\n return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;\n}\n\nexport const formatTimestampToUnixTime = (time) => {\n const date = new Date(time);\n\n return normalizeUnixTimeToSeconds(date.getTime());\n}\n\nexport const timeIsInSeconds = (time) => {\n return parseInt(time).toString().length <= 10;\n}\n\nexport const normalizeUnixTimeToSeconds = (time) => {\n time = parseInt(time);\n\n return timeIsInSeconds() ? time : time / 1000;\n}\n\nexport const normalizeUnixTimeToMilliseconds = (time) => {\n time = parseInt(time);\n\n return timeIsInSeconds() ? time * 1000 : time;\n}\n","export const compact = (array) => {\n if (!array) {\n return [];\n }\n\n if (! Array.isArray(array) && typeof array === 'object') {\n array = Object.values(array);\n }\n\n return array.filter((item) => {\n return item !== null && item !== undefined && item !== '';\n });\n}\n\nexport const debugLogFactory = (config) => {\n return (description, ...message) => {\n if (console && config.isDebugEnabled) {\n console.debug('[Future]', description, ...message);\n }\n }\n}\n\nexport const isGutenbergEnabled = () => {\n return document.body.classList.contains('block-editor-page');\n}\n\nexport const getElementByName = (name) => {\n return document.getElementsByName(name)[0];\n}\n\nexport const getFieldByName = (name, postId) => {\n return document.querySelector(`#the-list tr#post-${postId} .column-expirationdate input#future_action_${name}-${postId}`);\n}\n\nexport const getFieldValueByName = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field) {\n return null;\n }\n\n return field.value;\n};\n\nexport const getFieldValueByNameAsArrayOfInt = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field || !field.value) {\n return [];\n }\n\n if (typeof field.value === 'number') {\n field.value = field.value.toString();\n }\n\n return field.value.split(',').map(term => parseInt(term));\n};\n\nexport const getFieldValueByNameAsBool = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field) {\n return false;\n }\n\n return field.value === '1' || field.value === 'true';\n}\n\nexport const getActionSettingsFromColumnData = (postId) => {\n const columnData = document.querySelector(`#post-expire-column-${postId}`);\n\n if (!columnData) {\n return {};\n }\n\n return {\n enabled: columnData.dataset.actionEnabled === '1',\n action: columnData.dataset.actionType,\n date: columnData.dataset.actionDate,\n dateUnix: columnData.dataset.actionDateUnix,\n taxonomy: columnData.dataset.actionTaxonomy,\n terms: columnData.dataset.actionTerms,\n newStatus: columnData.dataset.actionNewStatus,\n };\n}\n\n/**\n * This function is used to determine if a value is a number, including strings.\n *\n * @param {*} value\n * @returns\n */\nexport const isNumber = (value) => {\n return !isNaN(value);\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.publishpress-future-date-preview .publishpress-future-date-preview-value {\n font-family: monospace;\n background-color: #e7e7e7;\n padding: 2px 4px;\n}\n\n.publishpress-future-date-preview.compact .publishpress-future-date-preview-label {\n display: block;\n}\n\n.publishpress-future-date-preview.compact {\n margin-bottom: 8px;\n}\n\n.publishpress-future-date-preview.compact h4 {\n font-size: 11px;\n font-weight: 500;\n line-height: 1.4;\n text-transform: uppercase;\n display: inline-block;\n margin-bottom: calc(8px);\n padding: 0px;\n flex-shrink: 0;\n margin-right: 12px;\n max-width: 75%;\n margin-top: 0;\n}\n\n.publishpress-future-notice.publishpress-future-notice-error {\n color: #dc3232;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./assets/jsx/components/css/dateOffsetPreview.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,sBAAsB;IACtB,yBAAyB;IACzB,gBAAgB;AACpB;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,kBAAkB;AACtB;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,yBAAyB;IACzB,qBAAqB;IACrB,wBAAwB;IACxB,YAAY;IACZ,cAAc;IACd,kBAAkB;IAClB,cAAc;IACd,aAAa;AACjB;;AAEA;IACI,cAAc;AAClB\",\"sourcesContent\":[\".publishpress-future-date-preview .publishpress-future-date-preview-value {\\n font-family: monospace;\\n background-color: #e7e7e7;\\n padding: 2px 4px;\\n}\\n\\n.publishpress-future-date-preview.compact .publishpress-future-date-preview-label {\\n display: block;\\n}\\n\\n.publishpress-future-date-preview.compact {\\n margin-bottom: 8px;\\n}\\n\\n.publishpress-future-date-preview.compact h4 {\\n font-size: 11px;\\n font-weight: 500;\\n line-height: 1.4;\\n text-transform: uppercase;\\n display: inline-block;\\n margin-bottom: calc(8px);\\n padding: 0px;\\n flex-shrink: 0;\\n margin-right: 12px;\\n max-width: 75%;\\n margin-top: 0;\\n}\\n\\n.publishpress-future-notice.publishpress-future-notice-error {\\n color: #dc3232;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/postcss-loader/dist/cjs.js!./dateOffsetPreview.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/postcss-loader/dist/cjs.js!./dateOffsetPreview.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;","module.exports = ReactDOM;","module.exports = publishpressFutureClassicEditorConfig;","module.exports = wp;","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.element;","module.exports = wp.hooks;","module.exports = wp.plugins;","module.exports = wp.url;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nc = undefined;","import { FutureActionPanelClassicEditor } from './components';\nimport { createStore } from './data';\nimport { isGutenbergEnabled } from './utils';\nimport { select } from '@wordpress/data';\nimport { createRoot } from 'react-dom/client';\nimport {\n postType,\n isNewPost,\n actionsSelectOptions,\n is12Hour,\n timeFormat,\n startOfWeek,\n strings,\n taxonomyName,\n postTypeDefaultConfig,\n defaultDate,\n statusesSelectOptions,\n hideCalendarByDefault\n} from \"&config.classic-editor\";\n\nif (! isGutenbergEnabled()) {\n const storeName = 'publishpress-future/future-action';\n\n if (!select(storeName)) {\n createStore({\n name: storeName,\n defaultState: {\n autoEnable: postTypeDefaultConfig.autoEnable,\n action: postTypeDefaultConfig.expireType,\n newStatus: postTypeDefaultConfig.newStatus,\n date: defaultDate,\n taxonomy: postTypeDefaultConfig.taxonomy,\n terms: postTypeDefaultConfig.terms,\n }\n });\n }\n\n const container = document.getElementById(\"publishpress-future-classic-editor\");\n const component = (\n \n );\n\n createRoot(container).render(component);\n}\n"],"names":["ButtonsPanel","props","children","CheckboxControl","description","useState","checked","setChecked","unescapedDescription","className","dangerouslySetInnerHTML","__html","Fragment","label","name","id","onChange","value","require","DateOffsetPreview","offset","labelDatePreview","labelOffsetPreview","setValidationErrorCallback","setHasPendingValidationCallback","setHasValidDataCallback","compactView","offsetPreview","setOffsetPreview","currentTime","setCurrentTime","apiRequestControllerRef","useRef","AbortController","useEffect","controller","current","abort","signal","apiFetch","path","addQueryArgs","method","data","then","result","isValid","message","preview","catch","error","validateDateOffset","compactClass","DateTimePicker","currentDate","is12Hour","startOfWeek","normalizeUnixTimeToMilliseconds","__nextRemoveHelpButton","wp","components","PanelRow","SelectControl","FormTokenField","Spinner","BaseControl","element","decodeEntities","htmlEntities","url","useSelect","useDispatch","FutureActionPanel","select","action","storeName","getAction","date","getDate","enabled","getEnabled","terms","getTerms","taxonomy","getTaxonomy","taxonomyName","getTaxonomyName","termsListByName","getTermsListByName","termsListById","getTermsListById","isFetchingTerms","getIsFetchingTerms","calendarIsVisible","getCalendarIsVisible","hasValidData","getHasValidData","newStatus","getNewStatus","validationError","setValidationError","setAction","setDate","setEnabled","setTerms","setTaxonomy","setTermsListByName","setTermsListById","setTaxonomyName","setIsFetchingTerms","setCalendarIsVisible","setHasValidData","setNewStatus","insertTerm","term","count","link","slug","callOnChangeData","attribute","onChangeData","handleEnabledChange","isChecked","fetchTerms","forEach","getCalendarIsVisibleFromStorage","localStorage","getItem","context","autoEnableAndHideCheckbox","hideCalendarByDefault","isCleanNewPost","setItem","onDataIsValid","onDataIsInvalid","selectedTerms","length","compact","map","mapTermsListById","termsListByNameKeys","Object","keys","is24hour","panelClass","contentPanelClass","datePanelClass","timeFormat","actionsSelectOptions","filter","item","indexOf","HelpText","string","href","target","parts","split","push","shift","before","after","key","replaceCurlyBracketsWithLink","strings","timezoneSettingsHelp","displayTaxonomyField","String","includes","termsFieldLabel","newTerms","replace","removeTerms","addTerms","valid","errorActionRequired","errorDateRequired","Date","errorDateInPast","isTermRequired","noTermIsSelected","errorTermsRequired","validateData","SlotFillProvider","type","FutureActionPanelTop","Slot","fillProps","enablePostExpiration","options","FutureActionPanelAfterActionField","statusesSelectOptions","loading","noTaxonomyFound","noTermsFound","suggestions","mapTermsListByName","placeholder","addTermsPlaceholder","maxSuggestions","onFocus","e","jQuery","addClass","__experimentalExpandOnFocus","__experimentalAutoSelectFirstMatch","ToggleCalendarDatePicker","onChangeDate","onToggleCalendar","isExpanded","PluginArea","scope","Fill","FutureActionPanelBlockEditor","PluginDocumentSettingPanel","editPost","getEditedPostAttribute","lockPostSaving","unlockPostSaving","title","panelTitle","initialOpen","postTypeDefaultConfig","autoEnable","postType","store","newAttribute","getExtraData","publishpress_future_action","entries","editPostAttribute","FutureActionPanelBulkEdit","changeAction","getChangeAction","setChangeAction","termsString","join","noChange","changeAdd","addOnly","changeOnly","removeOnly","prop","futureActionUpdate","isNewPost","getElementByName","nonce","FutureActionPanelClassicEditor","getTimezoneOffset","document","getElementsByName","getElementValueByName","parseInt","getTermsFromElementByName","FutureActionPanelQuickEdit","NonceControl","referrer","PostTypeSettingsPanel","originalExpireTypeList","expireTypeList","settings","postTypeTaxonomy","setPostTypeTaxonomy","termOptions","setTermOptions","termsSelectIsLoading","setTermsSelectIsLoading","setSelectedTerms","howToExpire","settingHowToExpire","setSettingHowToExpire","active","isActive","setIsActive","defaultExpireOffset","expireOffset","setExpireOffset","emailNotification","setEmailNotification","autoEnabled","isAutoEnabled","setIsAutoEnabled","taxonomyLabel","setTaxonomyLabel","howToExpireList","setHowToExpireList","hasPendingValidation","setHasPendingValidation","globalDefaultExpireOffset","taxonomyRelatedActions","newExpireTypeList","taxonomiesList","settingsTermsOptions","option","expireType","toLowerCase","onValidationStarted","onValidationFinished","termOptionsLabels","settingsRows","SettingRow","text","fieldActive","fieldActiveLabel","fieldAutoEnable","fieldAutoEnableLabel","fieldTaxonomy","selected","noItemFoundMessage","noItemsfound","fieldTaxonomyDescription","fieldHowToExpire","fieldHowToExpireDescription","statusesList","TokensControl","fieldTerm","isLoading","fieldTermDescription","expandOnFocus","autoSelectFirstMatch","fieldDefaultDateTimeOffset","TextControl","fieldDefaultDateTimeOffsetDescription","datePreview","datePreviewCurrent","datePreviewComputed","fieldWhoToNotify","fieldWhoToNotifyDescription","applyFilters","fieldSetClassNames","isVisible","SettingsTable","bodyChildren","PostTypesSettingsPanels","currentTab","setCurrentTab","panels","postTypeSettings","legend","onSelectTab","event","preventDefault","hash","tabs","onClick","valign","htmlFor","SettingsFieldset","SettingsForm","SettingsSection","SubmitButton","disabled","ToggleArrowButton","iconExpanded","iconCollapsed","icon","titleExpanded","titleCollapsed","Button","isSmall","toggleButtonElement","querySelector","dateTimeElement","nextElementSibling","timeElement","dateElement","nextSibling","insertBefore","hideCalendar","showCalendar","stringValue","setStringValue","TrueFalseControl","trueValue","is","defaultChecked","trueLabel","falseValue","falseLabel","createStore","defaultState","getCurrentTimeAsTimestamp","extraData","createReduxStore","reducer","state","isNumber","getTime","normalizeUnixTimeToSeconds","formatUnixTimeToTimestamp","actions","setExtraData","setExtraDataByName","selectors","getExtraDataByName","register","getCurrentTimeInSeconds","unixTimestamp","getFullYear","getMonth","slice","getHours","getMinutes","getSeconds","timeIsInSeconds","formatTimestampToUnixTime","time","toString","getFieldByName","array","Array","isArray","values","debugLogFactory","config","console","isDebugEnabled","debug","isGutenbergEnabled","body","classList","contains","postId","getFieldValueByName","field","getFieldValueByNameAsArrayOfInt","getFieldValueByNameAsBool","getActionSettingsFromColumnData","columnData","dataset","actionEnabled","actionType","actionDate","dateUnix","actionDateUnix","actionTaxonomy","actionTerms","actionNewStatus","isNaN","___CSS_LOADER_EXPORT___","module","exports","cssWithMappingToString","list","this","content","needLayer","concat","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","sourceMapping","m","createRoot","hydrateRoot","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","stylesInDOM","getIndexByIdentifier","identifier","modulesToDom","idCountMap","identifiers","base","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","styleTarget","window","HTMLIFrameElement","contentDocument","head","getTarget","Error","appendChild","createElement","attributes","styleElement","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode","ReactDOM","publishpressFutureClassicEditorConfig","hooks","plugins","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","prototype","hasOwnProperty","call","r","Symbol","toStringTag","nc","defaultDate","container","getElementById","component","render"],"sourceRoot":""} \ No newline at end of file diff --git a/assets/js/quick-edit.js b/assets/js/quick-edit.js index 6ca0c4b88..ee8f5839e 100644 --- a/assets/js/quick-edit.js +++ b/assets/js/quick-edit.js @@ -1,2 +1,2 @@ -(()=>{"use strict";var e={442:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ButtonsPanel=function(e){return React.createElement("div",null,e.children)}},311:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CheckboxControl=void 0;var a=n(5),r=n(214);t.CheckboxControl=function(e){var t,n=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,a.useState)(e.checked||!1),2),o=n[0],i=n[1];return t=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description),React.createElement(a.Fragment,null,React.createElement(r.CheckboxControl,{label:e.label,name:e.name,id:e.name,className:e.className,checked:o||!1,onChange:function(t){i(t),e.onChange&&e.onChange(t)}}),t)}},620:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DateTimePicker=void 0;var a=n(39),r=n(214);t.DateTimePicker=function(e){var t=e.currentDate,n=e.onChange,o=e.is12Hour,i=e.startOfWeek;return"number"==typeof t&&(t=(0,a.normalizeUnixTimeToMilliseconds)(t)),React.createElement(r.DateTimePicker,{currentDate:t,onChange:n,__nextRemoveHelpButton:!0,is12Hour:o,startOfWeek:i})}},418:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanel=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},o=n(409),i=n(873),l=n(986),u=n(214),c=n(61),s=n(625),m=wp.components,d=m.PanelRow,p=m.CheckboxControl,f=m.SelectControl,y=m.FormTokenField,g=m.Spinner,v=m.BaseControl,b=wp.element,E=b.Fragment,S=b.useEffect,h=b.useState,_=wp.htmlEntities.decodeEntities,T=wp.url.addQueryArgs,x=wp.data,N=x.useSelect,R=x.useDispatch,A=wp.apiFetch;t.FutureActionPanel=function(e){var t=N((function(t){return t(e.storeName).getAction()}),[]),n=N((function(t){return t(e.storeName).getDate()}),[]),m=N((function(t){return t(e.storeName).getEnabled()}),[]),b=N((function(t){return t(e.storeName).getTerms()}),[]),x=N((function(t){return t(e.storeName).getTaxonomy()}),[]),C=N((function(t){return t(e.storeName).getTaxonomyName()}),[]),P=N((function(t){return t(e.storeName).getTermsListByName()}),[]),w=N((function(t){return t(e.storeName).getTermsListById()}),[]),O=N((function(t){return t(e.storeName).getIsFetchingTerms()}),[]),D=N((function(t){return t(e.storeName).getCalendarIsVisible()}),[]),F=N((function(t){return t(e.storeName).getHasValidData()}),[]),k=N((function(t){return t(e.storeName).getNewStatus()}),[]),I=h(""),j=r(I,2),B=j[0],M=j[1],L=R(e.storeName),V=L.setAction,H=L.setDate,W=L.setEnabled,Q=L.setTerms,U=L.setTaxonomy,q=L.setTermsListByName,Y=L.setTermsListById,X=L.setTaxonomyName,z=L.setIsFetchingTerms,G=L.setCalendarIsVisible,J=L.setHasValidData,K=L.setNewStatus,Z=function(e){P[e]={id:e,count:0,description:"",link:"",name:e,slug:e,taxonomy:x},w[e]=e,q(P),Y(w),Q([].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0&&w&&(ae=(0,o.compact)(function(e){return"object"!==(void 0===e?"undefined":a(e))||null===e?{}:e.map((function(e){return w[e]}))}(b)),"string"==typeof ae&&(ae=[]));var re=[];"object"===(void 0===P?"undefined":a(P))&&null!==P&&(re=Object.keys(P));var oe,ie=D?"future-action-panel":"future-action-panel hidden-calendar",le=D?"future-action-panel-content":"future-action-panel-content hidden-calendar",ue=D?"future-action-date-panel":"future-action-date-panel hidden-calendar";oe="inherited"===e.timeFormat?!e.is12Hour:"24h"===e.timeFormat;var ce=e.actionsSelectOptions;e.taxonomy||(ce=e.actionsSelectOptions.filter((function(e){return-1===["category","category-add","category-remove","category-remove-all"].indexOf(e.value)})));var se=function(e,t,n){var a=e.split("{"),o=[];o.push(a.shift());var i=!0,l=!1,u=void 0;try{for(var c,s=a[Symbol.iterator]();!(i=(c=s.next()).done);i=!0){var m=c.value.split("}"),d=r(m,2),p=d[0],f=d[1];o.push(React.createElement("a",{href:t,target:"_blank",key:t},p)),o.push(f)}}catch(e){l=!0,u=e}finally{try{!i&&s.return&&s.return()}finally{if(l)throw u}}return o}(e.strings.timezoneSettingsHelp,"/wp-admin/options-general.php#timezone_string"),me=String(t).includes("category")&&"category-remove-all"!==t,de=C;switch(t){case"category":de=e.strings.newTerms.replace("%s",C);break;case"category-remove":de=e.strings.removeTerms.replace("%s",C);break;case"category-add":de=e.strings.addTerms.replace("%s",C)}return S((function(){if(!m)return J(!0),void M("");J(function(){var a=!0;if(!m)return M(""),!0;t||(M(e.strings.errorActionRequired),a=!1),n||(M(e.strings.errorDateRequired),a=!1),n&&new Date(n){Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelAfterActionField=void 0;var a=Object.assign||function(e){for(var t=1;t{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelBlockEditor=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(57);t.FutureActionPanelBlockEditor=function(e){var t=wp.editPost.PluginDocumentSettingPanel,n=wp.data,o=n.useDispatch,i=n.select,l=o("core/editor").editPost,u=i("core/editor").getEditedPostAttribute("publishpress_future_action"),c=o("core/editor"),s=c.lockPostSaving,m=c.unlockPostSaving;return React.createElement(t,{name:"publishpress-future-action-panel",title:e.strings.panelTitle,initialOpen:e.postTypeDefaultConfig.autoEnable,className:"post-expirator-panel"},React.createElement("div",{id:"publishpress-future-block-editor"},React.createElement(r.FutureActionPanel,{context:"block-editor",postType:e.postType,isCleanNewPost:e.isCleanNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:u.enabled,calendarIsVisible:!0,action:u.action,newStatus:u.newStatus,date:u.date,terms:u.terms,taxonomy:u.taxonomy,taxonomyName:e.taxonomyName,onChangeData:function(t,n){var r=i(e.storeName),o={enabled:r.getEnabled()};o.enabled&&(o.action=r.getAction(),o.newStatus=r.getNewStatus(),o.date=r.getDate(),o.terms=r.getTerms(),o.taxonomy=r.getTaxonomy(),o.extraData=r.getExtraData()),function(e){var t={publishpress_future_action:{}},n=!0,r=!1,o=void 0;try{for(var i,u=Object.entries(e)[Symbol.iterator]();!(n=(i=u.next()).done);n=!0){var c=i.value,s=a(c,2),m=s[0],d=s[1];t.publishpress_future_action[m]=d}}catch(e){r=!0,o=e}finally{try{!n&&u.return&&u.return()}finally{if(r)throw o}}l(t)}(o)},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){m("future-action")},onDataIsInvalid:function(){s("future-action")}})))}},94:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelBulkEdit=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(57),o=n(409);t.FutureActionPanelBulkEdit=function(e){var t=wp.data,n=t.useSelect,i=t.useDispatch,l=t.select,u=wp.element.useEffect,c=n((function(t){return t(e.storeName).getDate()}),[]),s=n((function(t){return t(e.storeName).getEnabled()}),[]),m=n((function(t){return t(e.storeName).getAction()}),[]),d=n((function(t){return t(e.storeName).getNewStatus()}),[]),p=n((function(t){return t(e.storeName).getTerms()}),[]),f=n((function(t){return t(e.storeName).getTaxonomy()}),[]),y=n((function(t){return t(e.storeName).getChangeAction()}),[]),g=n((function(t){return t(e.storeName).getHasValidData()}),[]),v=i(e.storeName).setChangeAction,b=p;"object"===(void 0===p?"undefined":a(p))&&(b=p.join(","));var E=[{value:"no-change",label:e.strings.noChange},{value:"change-add",label:e.strings.changeAdd},{value:"add-only",label:e.strings.addOnly},{value:"change-only",label:e.strings.changeOnly},{value:"remove-only",label:e.strings.removeOnly}];return u((function(){g||"no-change"===y?jQuery("#bulk_edit").prop("disabled",!1):jQuery("#bulk_edit").prop("disabled",!0)}),[g,y]),React.createElement("div",{className:"post-expirator-panel"},React.createElement(r.SelectControl,{label:e.strings.futureActionUpdate,name:"future_action_bulk_change_action",value:y,options:E,onChange:function(e){v(e)}}),["change-add","add-only","change-only"].includes(y)&&React.createElement(r.FutureActionPanel,{context:"bulk-edit",autoEnableAndHideCheckbox:!0,postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:!0,calendarIsVisible:!1,action:m,newStatus:d,date:c,terms:p,taxonomy:f,taxonomyName:e.taxonomyName,onChangeData:function(t,n){(0,o.getElementByName)("future_action_bulk_enabled").value=l(e.storeName).getEnabled()?1:0,(0,o.getElementByName)("future_action_bulk_action").value=l(e.storeName).getAction(),(0,o.getElementByName)("future_action_bulk_new_status").value=l(e.storeName).getNewStatus(),(0,o.getElementByName)("future_action_bulk_date").value=l(e.storeName).getDate(),(0,o.getElementByName)("future_action_bulk_terms").value=l(e.storeName).getTerms().join(","),(0,o.getElementByName)("future_action_bulk_taxonomy").value=l(e.storeName).getTaxonomy()},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings}),React.createElement("input",{type:"hidden",name:"future_action_bulk_enabled",value:s?1:0}),React.createElement("input",{type:"hidden",name:"future_action_bulk_action",value:m}),React.createElement("input",{type:"hidden",name:"future_action_bulk_new_status",value:d}),React.createElement("input",{type:"hidden",name:"future_action_bulk_date",value:c}),React.createElement("input",{type:"hidden",name:"future_action_bulk_terms",value:b}),React.createElement("input",{type:"hidden",name:"future_action_bulk_taxonomy",value:f}),React.createElement("input",{type:"hidden",name:"future_action_bulk_view",value:"bulk-edit"}),React.createElement("input",{type:"hidden",name:"_future_action_nonce",value:e.nonce}))}},571:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelClassicEditor=void 0;var a=n(57),r=n(562);n(5),t.FutureActionPanelClassicEditor=function(e){(new Date).getTimezoneOffset();var t=function(e){return document.getElementsByName(e)[0]},n=function(e){var n=t(e);return n?n.value:""},o={enabled:"1"===n("future_action_enabled"),action:n("future_action_action"),newStatus:n("future_action_new_status"),date:n("future_action_date"),terms:function(e){var n=t("future_action_terms");if(!n)return[];var a=n.value.split(",");return 1===a.length&&""===a[0]&&(a=[]),a.map((function(e){return parseInt(e)}))}(),taxonomy:n("future_action_taxonomy")};return React.createElement("div",{className:"post-expirator-panel"},React.createElement(a.FutureActionPanel,{context:"classic-editor",postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:o.enabled,calendarIsVisible:!0,action:o.action,newStatus:o.newStatus,date:o.date,terms:o.terms,taxonomy:o.taxonomy,taxonomyName:e.taxonomyName,onChangeData:function(n,a){var o=(0,r.select)(e.storeName);t("future_action_enabled").value=o.getEnabled()?1:0,t("future_action_action").value=o.getAction(),t("future_action_new_status").value=o.getNewStatus(),t("future_action_date").value=o.getDate(),t("future_action_terms").value=o.getTerms().join(","),t("future_action_taxonomy").value=o.getTaxonomy()},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){jQuery("#publish").prop("disabled",!1)},onDataIsInvalid:function(){jQuery("#publish").prop("disabled",!0)}}))}},437:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelQuickEdit=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(57),o=n(562);n(5),t.FutureActionPanelQuickEdit=function(e){var t=(0,o.useSelect)((function(t){return t(e.storeName).getDate()}),[]),n=(0,o.useSelect)((function(t){return t(e.storeName).getEnabled()}),[]),i=(0,o.useSelect)((function(t){return t(e.storeName).getAction()}),[]),l=(0,o.useSelect)((function(t){return t(e.storeName).getTerms()}),[]),u=(0,o.useSelect)((function(t){return t(e.storeName).getTaxonomy()}),[]),c=((0,o.useSelect)((function(t){return t(e.storeName).getHasValidData()}),[]),(0,o.useSelect)((function(t){return t(e.storeName).getNewStatus()}),[])),s=l;return"object"===(void 0===l?"undefined":a(l))&&(s=l.join(",")),React.createElement("div",{className:"post-expirator-panel"},React.createElement(r.FutureActionPanel,{context:"quick-edit",postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:n,calendarIsVisible:!1,action:i,newStatus:c,date:t,terms:l,taxonomy:u,taxonomyName:e.taxonomyName,onChangeData:function(e,t){},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){jQuery(".button-primary.save").prop("disabled",!1)},onDataIsInvalid:function(){jQuery(".button-primary.save").prop("disabled",!0)}}),React.createElement("input",{type:"hidden",name:"future_action_enabled",value:n?1:0}),React.createElement("input",{type:"hidden",name:"future_action_action",value:i||""}),React.createElement("input",{type:"hidden",name:"future_action_new_status",value:c||""}),React.createElement("input",{type:"hidden",name:"future_action_date",value:t||""}),React.createElement("input",{type:"hidden",name:"future_action_terms",value:s||""}),React.createElement("input",{type:"hidden",name:"future_action_taxonomy",value:u||""}),React.createElement("input",{type:"hidden",name:"future_action_view",value:"quick-edit"}),React.createElement("input",{type:"hidden",name:"_future_action_nonce",value:e.nonce}))}},625:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelTop=void 0;var a=Object.assign||function(e){for(var t=1;t{Object.defineProperty(t,"__esModule",{value:!0}),t.NonceControl=void 0;var a=n(5);t.NonceControl=function(e){return e.name||(e.name="_wpnonce"),e.referrer||(e.referrer=!0),React.createElement(a.Fragment,null,React.createElement("input",{type:"hidden",name:e.name,id:e.name,value:e.nonce}),e.referrer&&React.createElement("input",{type:"hidden",name:"_wp_http_referer",value:e.referrer}))}},239:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PostTypeSettingsPanel=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(57),o=n(5),i=n(11),l=n(566),u=n(244),c=wp.components,s=c.PanelRow;c.BaseControl,t.PostTypeSettingsPanel=function(e){var t=e.expireTypeList[e.postType],n=(0,o.useState)(e.settings.taxonomy),c=a(n,2),m=c[0],d=c[1],p=(0,o.useState)([]),f=a(p,2),y=f[0],g=f[1],v=(0,o.useState)(!1),b=a(v,2),E=b[0],S=b[1],h=(0,o.useState)([]),_=a(h,2),T=_[0],x=_[1],N=(0,o.useState)(e.settings.howToExpire),R=a(N,2),A=R[0],C=R[1],P=(0,o.useState)(e.settings.active),w=a(P,2),O=w[0],D=w[1],F=(0,o.useState)(e.settings.defaultExpireOffset),k=a(F,2),I=k[0],j=k[1],B=(0,o.useState)(e.settings.emailNotification),M=a(B,2),L=M[0],V=M[1],H=(0,o.useState)(e.settings.autoEnabled),W=a(H,2),Q=W[0],U=W[1],q=(0,o.useState)(!1),Y=a(q,2),X=Y[0],z=Y[1],G=(0,o.useState)(""),J=a(G,2),K=J[0],Z=J[1],$=(0,o.useState)(""),ee=a($,2),te=ee[0],ne=ee[1],ae=(0,o.useState)(t),re=a(ae,2),oe=re[0],ie=re[1],le=(0,o.useState)(e.settings.newStatus),ue=a(le,2),ce=ue[0],se=ue[1],me=(0,o.useState)(!1),de=a(me,2),pe=de[0],fe=de[1],ye=(0,o.useState)(""),ge=a(ye,2),ve=ge[0],be=ge[1],Ee=(0,o.useState)(),Se=a(Ee,2),he=Se[0],_e=Se[1],Te=(0,o.useRef)(new AbortController),xe=["category","category-add","category-remove","category-remove-all"];(0,o.useEffect)((function(){var t;0===e.taxonomiesList.length&&(t=oe.filter((function(e){return-1===xe.indexOf(e.value)})),ie(t))}),[]),(0,o.useEffect)((function(){m&&e.taxonomiesList&&(S(!0),(0,u.apiFetch)({path:(0,i.addQueryArgs)("publishpress-future/v1/terms/"+m)}).then((function(t){var n=[],a=null,r=void 0;t.terms.forEach((function(t){r={value:t.id,label:t.name},n.push(r),m===e.settings.taxonomy&&e.settings.terms.includes(t.id)&&(null===a&&(a=[]),a.push(r.label))})),g(n),x(a),S(!1)})),e.taxonomiesList.forEach((function(e){e.value===m&&ne(e.label)})))}),[m]),(0,o.useEffect)((function(){z(function(){if(!O)return Z(""),!0;var t=I||e.settings.globalDefaultExpireOffset;if(t){var n=Te.current;n&&n.abort(),Te.current=new AbortController;var a=Te.current.signal;fe(!0),(0,u.apiFetch)({path:(0,i.addQueryArgs)("publishpress-future/v1/settings/validate-expire-offset"),method:"POST",data:{offset:t},signal:a}).then((function(e){fe(!1),z(e.isValid),Z(e.message),e.isValid?(be(e.preview),_e(e.currentTime)):be("")})).catch((function(e){"AbortError"!==e.name&&(fe(!1),z(!1),Z(e.message),be(""))}))}return Z(""),!0}())}),[O,I]),(0,o.useEffect)((function(){if(te){var e=[];t.forEach((function(t){var n=t.label;-1!==xe.indexOf(t.value)&&(n=n.replace("%s",te.toLowerCase())),e.push({value:t.value,label:n})})),ie(e)}}),[te]),(0,o.useEffect)((function(){X&&e.onDataIsValid&&e.onDataIsValid(e.postType),!X&&e.onDataIsInvalid&&e.onDataIsInvalid(e.postType)}),[X]),(0,o.useEffect)((function(){pe&&e.onValidationStarted&&e.onValidationStarted(e.postType),!pe&&e.onValidationFinished&&e.onValidationFinished(e.postType)}),[pe]);var Ne=y.map((function(e){return e.label})),Re=[React.createElement(r.SettingRow,{label:e.text.fieldActive,key:"expirationdate_activemeta-"+e.postType},React.createElement(r.CheckboxControl,{name:"expirationdate_activemeta-"+e.postType,checked:O||!1,label:e.text.fieldActiveLabel,onChange:function(e){D(e)}}))];return O&&(Re.push(React.createElement(r.SettingRow,{label:e.text.fieldAutoEnable,key:"expirationdate_autoenable-"+e.postType},React.createElement(r.CheckboxControl,{name:"expirationdate_autoenable-"+e.postType,checked:Q||!1,label:e.text.fieldAutoEnableLabel,onChange:function(e){U(e)}}))),Re.push(React.createElement(r.SettingRow,{label:e.text.fieldTaxonomy,key:"expirationdate_taxonomy-"+e.postType},React.createElement(r.SelectControl,{name:"expirationdate_taxonomy-"+e.postType,options:e.taxonomiesList,selected:m,noItemFoundMessage:e.text.noItemsfound,description:e.text.fieldTaxonomyDescription,data:e.postType,onChange:function(e){d(e)}}))),Re.push(React.createElement(r.SettingRow,{label:e.text.fieldHowToExpire,key:"expirationdate_expiretype-"+e.postType},React.createElement(r.SelectControl,{name:"expirationdate_expiretype-"+e.postType,className:"pe-howtoexpire",options:oe,description:e.text.fieldHowToExpireDescription,selected:A,onChange:function(e){C(e)}}),"change-status"===A&&React.createElement(r.SelectControl,{name:"expirationdate_newstatus-"+e.postType,options:e.statusesList,selected:ce,onChange:se}),e.taxonomiesList.length>0&&["category","category-add","category-remove"].indexOf(A)>-1&&React.createElement(r.TokensControl,{label:e.text.fieldTerm,name:"expirationdate_terms-"+e.postType,options:Ne,value:T,isLoading:E,onChange:function(e){x(e)},description:e.text.fieldTermDescription,maxSuggestions:1e3,expandOnFocus:!0,autoSelectFirstMatch:!0}))),Re.push(React.createElement(r.SettingRow,{label:e.text.fieldDefaultDateTimeOffset,key:"expired-custom-date-"+e.postType},React.createElement(r.TextControl,{name:"expired-custom-date-"+e.postType,value:I,loading:pe,placeholder:e.settings.globalDefaultExpireOffset,description:e.text.fieldDefaultDateTimeOffsetDescription,unescapedDescription:!0,onChange:function(e){j(e)}}),ve&&React.createElement(o.Fragment,null,React.createElement("h4",null,e.text.datePreview),React.createElement("div",null,React.createElement("div",null,React.createElement("span",null,e.text.datePreviewCurrent,": "),React.createElement("span",null,React.createElement("code",null,he))),React.createElement("div",null,React.createElement("span",null,e.text.datePreviewComputed,": "),React.createElement("span",null,React.createElement("code",null,ve))))))),Re.push(React.createElement(r.SettingRow,{label:e.text.fieldWhoToNotify,key:"expirationdate_emailnotification-"+e.postType},React.createElement(r.TextControl,{name:"expirationdate_emailnotification-"+e.postType,className:"large-text",value:L,description:e.text.fieldWhoToNotifyDescription,onChange:function(e){V(e)}})))),Re=(0,l.applyFilters)("expirationdate_settings_posttype",Re,e,O,o.useState),React.createElement(r.SettingsFieldset,{legend:e.legend},React.createElement(r.SettingsTable,{bodyChildren:Re}),!X&&React.createElement(s,null,React.createElement("div",{className:"publishpress-future-notice publishpress-future-notice-error"},React.createElement("strong",null,e.text.error,":")," ",K)))}},138:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PostTypesSettingsPanels=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(57);t.PostTypesSettingsPanels=function(e){var t=[],n=!0,o=!1,i=void 0;try{for(var l,u=Object.entries(e.settings)[Symbol.iterator]();!(n=(l=u.next()).done);n=!0){var c=l.value,s=a(c,2),m=s[0],d=s[1];t.push(React.createElement(r.PostTypeSettingsPanel,{legend:d.label,text:e.text,postType:m,settings:d,expireTypeList:e.expireTypeList,taxonomiesList:e.taxonomiesList[m],statusesList:e.statusesList[m],key:m+"-panel",onDataIsValid:e.onDataIsValid,onDataIsInvalid:e.onDataIsInvalid,onValidationStarted:e.onValidationStarted,onValidationFinished:e.onValidationFinished}))}}catch(e){o=!0,i=e}finally{try{!n&&u.return&&u.return()}finally{if(o)throw i}}return t}},858:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SelectControl=void 0;var a=n(5),r=n(214);t.SelectControl=function(e){return React.createElement(a.Fragment,null,0===e.options.length&&React.createElement("div",null,e.noItemFoundMessage),e.options.length>0&&React.createElement(r.SelectControl,{label:e.label,name:e.name,id:e.name,className:e.className,value:e.selected,onChange:function(t){e.onChange(t)},"data-data":e.data,options:e.options}),e.children,React.createElement("p",{className:"description"},e.description))}},767:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingRow=void 0,n(5),t.SettingRow=function(e){return React.createElement("tr",{valign:"top"},React.createElement("th",{scope:"row"},React.createElement("label",{htmlFor:""},e.label)),React.createElement("td",null,e.children))}},786:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsFieldset=function(e){return React.createElement("fieldset",null,React.createElement("legend",null,e.legend),e.children)}},892:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsForm=function(e){return React.createElement("form",{method:"post"},e.children)}},681:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsSection=void 0;var a=n(5);t.SettingsSection=function(e){return React.createElement(a.Fragment,null,React.createElement("h2",null,e.title),React.createElement("p",null,e.description),e.children)}},772:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsTable=function(e){return React.createElement("table",{className:"form-table"},React.createElement("tbody",null,e.bodyChildren))}},242:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Spinner=function(e){return React.createElement("span",{className:"publishpress-future-spinner"},React.createElement("div",null),React.createElement("div",null),React.createElement("div",null),React.createElement("div",null))}},438:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SubmitButton=function(e){return React.createElement("input",{type:"submit",name:e.name,value:e.text,disabled:e.disabled,className:"button-primary"})}},301:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TextControl=void 0;var a=n(5),r=n(214),o=n(57);t.TextControl=function(e){var t;t=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description);var n=e.className?e.className:"";return e.loading&&(n+=" publishpress-future-loading publishpress-future-loading-input"),React.createElement(a.Fragment,null,React.createElement("div",{className:n},React.createElement(r.TextControl,{type:"text",label:e.label,name:e.name,id:e.name,className:e.className,value:e.value,placeholder:e.placeholder,onChange:function(t){e.onChange&&e.onChange(t)}}),e.loading&&React.createElement(o.Spinner,null),t))}},190:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ToggleArrowButton=void 0;var a=n(214);t.ToggleArrowButton=function(e){var t=e.iconExpanded?e.iconExpanded:"arrow-up-alt2",n=e.iconCollapsed?e.iconCollapsed:"arrow-down-alt2",r=e.isExpanded?t:n,o=e.isExpanded?e.titleExpanded:e.titleCollapsed;return React.createElement(a.Button,{isSmall:!0,title:o,icon:r,onClick:function(){e.onClick&&e.onClick()},className:e.className})}},873:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ToggleCalendarDatePicker=void 0;var a=n(190),r=n(620),o=n(5);t.ToggleCalendarDatePicker=function(e){var t=e.isExpanded,n=e.strings,i=e.onToggleCalendar,l=e.currentDate,u=e.onChangeDate,c=e.is12Hour,s=e.startOfWeek;return(0,o.useEffect)((function(){var e=document.querySelector(".future-action-calendar-toggle");if(e){var t=e.nextElementSibling;if(t){var n=t.querySelector(".components-datetime__time");if(n){var a=n.nextSibling;a&&t.insertBefore(e,a)}}}})),React.createElement(o.Fragment,null,React.createElement(a.ToggleArrowButton,{className:"future-action-calendar-toggle",isExpanded:t,iconExpanded:"arrow-up-alt2",iconCollapsed:"calendar",titleExpanded:n.hideCalendar,titleCollapsed:n.showCalendar,onClick:i}),React.createElement(r.DateTimePicker,{currentDate:l,onChange:u,__nextRemoveHelpButton:!0,is12Hour:c,startOfWeek:s}))}},948:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TokensControl=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(5),o=n(214);t.TokensControl=function(e){var t=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,r.useState)(""),2),n=t[0],i=t[1];(0,r.useEffect)((function(){e.value&&i(e.value.join(","))}),[e.value]);var l=void 0;e.description&&(l=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description));var u=e.value?e.value:[];return React.createElement(r.Fragment,null,React.createElement(o.FormTokenField,{label:e.label,value:u,suggestions:e.options,onChange:function(t){e.onChange&&e.onChange(t),"object"===(void 0===t?"undefined":a(t))?i(t.join(",")):i("")},maxSuggestions:e.maxSuggestions,className:"publishpres-future-token-field",__experimentalExpandOnFocus:e.expandOnFocus,__experimentalAutoSelectFirstMatch:e.autoSelectFirstMatch}),React.createElement("input",{type:"hidden",name:e.name,value:n}),l)}},225:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TrueFalseControl=function(e){var t=wp.element.Fragment,n=function(t){e.onChange&&e.onChange(t.target.value===e.trueValue&&jQuery(t.target).is(":checked"))};return React.createElement(t,null,React.createElement("input",{type:"radio",name:e.name,id:e.name+"-true",value:e.trueValue,defaultChecked:e.selected,onChange:n}),React.createElement("label",{htmlFor:e.name+"-true"},e.trueLabel),"  ",React.createElement("input",{type:"radio",name:e.name,defaultChecked:!e.selected,id:e.name+"-false",value:e.falseValue,onChange:n}),React.createElement("label",{htmlFor:e.name+"-false"},e.falseLabel),React.createElement("p",{className:"description"},e.description))}},57:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var a=n(442);Object.defineProperty(t,"ButtonsPanel",{enumerable:!0,get:function(){return a.ButtonsPanel}});var r=n(418);Object.defineProperty(t,"FutureActionPanel",{enumerable:!0,get:function(){return r.FutureActionPanel}});var o=n(864);Object.defineProperty(t,"FutureActionPanelBlockEditor",{enumerable:!0,get:function(){return o.FutureActionPanelBlockEditor}});var i=n(571);Object.defineProperty(t,"FutureActionPanelClassicEditor",{enumerable:!0,get:function(){return i.FutureActionPanelClassicEditor}});var l=n(437);Object.defineProperty(t,"FutureActionPanelQuickEdit",{enumerable:!0,get:function(){return l.FutureActionPanelQuickEdit}});var u=n(94);Object.defineProperty(t,"FutureActionPanelBulkEdit",{enumerable:!0,get:function(){return u.FutureActionPanelBulkEdit}});var c=n(239);Object.defineProperty(t,"PostTypeSettingsPanel",{enumerable:!0,get:function(){return c.PostTypeSettingsPanel}});var s=n(138);Object.defineProperty(t,"PostTypesSettingsPanels",{enumerable:!0,get:function(){return s.PostTypesSettingsPanels}});var m=n(767);Object.defineProperty(t,"SettingRow",{enumerable:!0,get:function(){return m.SettingRow}});var d=n(786);Object.defineProperty(t,"SettingsFieldset",{enumerable:!0,get:function(){return d.SettingsFieldset}});var p=n(892);Object.defineProperty(t,"SettingsForm",{enumerable:!0,get:function(){return p.SettingsForm}});var f=n(681);Object.defineProperty(t,"SettingsSection",{enumerable:!0,get:function(){return f.SettingsSection}});var y=n(772);Object.defineProperty(t,"SettingsTable",{enumerable:!0,get:function(){return y.SettingsTable}});var g=n(438);Object.defineProperty(t,"SubmitButton",{enumerable:!0,get:function(){return g.SubmitButton}});var v=n(311);Object.defineProperty(t,"CheckboxControl",{enumerable:!0,get:function(){return v.CheckboxControl}});var b=n(858);Object.defineProperty(t,"SelectControl",{enumerable:!0,get:function(){return b.SelectControl}});var E=n(301);Object.defineProperty(t,"TextControl",{enumerable:!0,get:function(){return E.TextControl}});var S=n(948);Object.defineProperty(t,"TokensControl",{enumerable:!0,get:function(){return S.TokensControl}});var h=n(13);Object.defineProperty(t,"NonceControl",{enumerable:!0,get:function(){return h.NonceControl}});var _=n(225);Object.defineProperty(t,"TrueFalseControl",{enumerable:!0,get:function(){return _.TrueFalseControl}});var T=n(242);Object.defineProperty(t,"Spinner",{enumerable:!0,get:function(){return T.Spinner}})},480:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createStore=void 0;var a=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:t,u=arguments[1];switch(u.type){case"SET_ACTION":return a({},l,{action:u.action});case"SET_NEW_STATUS":return a({},l,{newStatus:u.newStatus});case"SET_DATE":return"number"!=typeof u.date&&(0,o.isNumber)(u.date)&&(u.date=parseInt(u.date)),"string"==typeof u.date&&(u.date=new Date(u.date).getTime()),u.date=(0,r.normalizeUnixTimeToSeconds)(u.date),u.date=(0,r.formatUnixTimeToTimestamp)(u.date),a({},l,{date:u.date});case"SET_ENABLED":return a({},l,{enabled:u.enabled});case"SET_TERMS":return a({},l,{terms:u.terms});case"SET_TAXONOMY":return a({},l,{taxonomy:u.taxonomy});case"SET_TERMS_LIST_BY_NAME":return a({},l,{termsListByName:u.termsListByName});case"SET_TERMS_LIST_BY_ID":return a({},l,{termsListById:u.termsListById});case"SET_TAXONOMY_NAME":return a({},l,{taxonomyName:u.taxonomyName});case"SET_CHANGE_ACTION":return a({},l,{changeAction:u.changeAction});case"SET_CALENDAR_IS_VISIBLE":return a({},l,{calendarIsVisible:u.calendarIsVisible});case"SET_HAS_VALID_DATA":return a({},l,{hasValidData:u.hasValidData});case"SET_EXTRA_DATA":return a({},l,{extraData:a({},u.extraData)});case"SET_EXTRA_DATA_BY_NAME":var c=a({},l.extraData,(e={},n=u.name,i=u.value,n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i,e));return a({},l,{extraData:a({},c)})}return l},actions:{setAction:function(e){return{type:"SET_ACTION",action:e}},setNewStatus:function(e){return{type:"SET_NEW_STATUS",newStatus:e}},setDate:function(e){return{type:"SET_DATE",date:e}},setEnabled:function(e){return{type:"SET_ENABLED",enabled:e}},setTerms:function(e){return{type:"SET_TERMS",terms:e}},setTaxonomy:function(e){return{type:"SET_TAXONOMY",taxonomy:e}},setTermsListByName:function(e){return{type:"SET_TERMS_LIST_BY_NAME",termsListByName:e}},setTermsListById:function(e){return{type:"SET_TERMS_LIST_BY_ID",termsListById:e}},setTaxonomyName:function(e){return{type:"SET_TAXONOMY_NAME",taxonomyName:e}},setIsFetchingTerms:function(e){return{type:"SET_IS_FETCHING_TERMS",isFetchingTerms:e}},setChangeAction:function(e){return{type:"SET_CHANGE_ACTION",changeAction:e}},setCalendarIsVisible:function(e){return{type:"SET_CALENDAR_IS_VISIBLE",calendarIsVisible:e}},setHasValidData:function(e){return{type:"SET_HAS_VALID_DATA",hasValidData:e}},setExtraData:function(e){return{type:"SET_EXTRA_DATA",extraData:e}},setExtraDataByName:function(e,t){return{type:"SET_EXTRA_DATA_BY_NAME",name:e,value:t}}},selectors:{getAction:function(e){return e.action},getNewStatus:function(e){return e.newStatus},getDate:function(e){return e.date},getEnabled:function(e){return e.enabled},getTerms:function(e){return e.terms},getTaxonomy:function(e){return e.taxonomy},getTermsListByName:function(e){return e.termsListByName},getTermsListById:function(e){return e.termsListById},getTaxonomyName:function(e){return e.taxonomyName},getIsFetchingTerms:function(e){return e.isFetchingTerms},getChangeAction:function(e){return e.changeAction},getCalendarIsVisible:function(e){return e.calendarIsVisible},getHasValidData:function(e){return e.hasValidData},getExtraData:function(e){return e.extraData},getExtraDataByName:function(e,t){return e.extraData[t]||null}}});return(0,i.register)(n),n}},39:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n=t.getCurrentTimeInSeconds=function(){return o((new Date).getTime())},a=(t.getCurrentTimeAsTimestamp=function(){return a(n())},t.formatUnixTimeToTimestamp=function(e){var t=new Date(o(e));return t.getFullYear()+"-"+("0"+(t.getMonth()+1)).slice(-2)+"-"+("0"+t.getDate()).slice(-2)+" "+("0"+t.getHours()).slice(-2)+":"+("0"+t.getMinutes()).slice(-2)+":"+("0"+t.getSeconds()).slice(-2)}),r=(t.formatTimestampToUnixTime=function(e){var t=new Date(e);return o(t.getTime())},t.timeIsInSeconds=function(e){return parseInt(e).toString().length<=10}),o=t.normalizeUnixTimeToSeconds=function(e){return e=parseInt(e),r()?e:e/1e3};t.normalizeUnixTimeToMilliseconds=function(e){return e=parseInt(e),r()?1e3*e:e}},409:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=(t.compact=function(e){return e?(Array.isArray(e)||"object"!==(void 0===e?"undefined":n(e))||(e=Object.values(e)),e.filter((function(e){return null!=e&&""!==e}))):[]},t.debugLogFactory=function(e){return function(t){for(var n=arguments.length,a=Array(n>1?n-1:0),r=1;r{e.exports=publishpressFutureQuickEditConfig},643:e=>{e.exports=window},244:e=>{e.exports=wp},214:e=>{e.exports=wp.components},562:e=>{e.exports=wp.data},5:e=>{e.exports=wp.element},566:e=>{e.exports=wp.hooks},986:e=>{e.exports=wp.plugins},11:e=>{e.exports=wp.url}},t={};function n(a){var r=t[a];if(void 0!==r)return r.exports;var o=t[a]={exports:{}};return e[a](o,o.exports,n),o.exports}var a=n(57),r=n(480),o=n(409),i=n(5),l=n(562),u=n(643),c=n(47),s="publishpress-future/future-action-quick-edit",m=u.inlineEditPost.edit,d=u.inlineEditPost.revert;u.inlineEditPost.edit=function(e,t){m.apply(this,arguments);var n=function(e){return"string"==typeof e||"number"==typeof e?e:e.closest("tr").id.split("-")[1]}(e),p=(0,o.getActionSettingsFromColumnData)(n);if(p){var f=p.enabled,y=p.action,g=p.date,v=p.taxonomy,b=p.newStatus,E=p.terms;"string"==typeof E&&(E=E.split(",")),(0,l.select)(s)?((0,l.dispatch)(s).setEnabled(f),(0,l.dispatch)(s).setAction(y),(0,l.dispatch)(s).setDate(g),(0,l.dispatch)(s).setTaxonomy(v),(0,l.dispatch)(s).setTerms(E),(0,l.dispatch)(s).setNewStatus(b)):(0,r.createStore)({name:s,defaultState:{autoEnable:f,action:y,date:g,taxonomy:v,terms:E,newStatus:b}});var S=document.getElementById("publishpress-future-quick-edit");if(S){var h=(0,i.createRoot)(S),_=document.querySelector(".inline-edit-save .save");_&&(_.onclick=function(){setTimeout((function(){h.unmount()}),1e3)});var T=React.createElement(a.FutureActionPanelQuickEdit,{storeName:s,postType:c.postType,isNewPost:c.isNewPost,actionsSelectOptions:c.actionsSelectOptions,statusesSelectOptions:c.statusesSelectOptions,is12Hour:c.is12Hour,timeFormat:c.timeFormat,startOfWeek:c.startOfWeek,strings:c.strings,taxonomyName:c.taxonomyName,nonce:c.nonce});h.render(T),u.inlineEditPost.revert=function(){h.unmount(),d.apply(this,arguments)}}}}})(); +(()=>{"use strict";var e={5442:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ButtonsPanel=function(e){return React.createElement("div",null,e.children)}},4311:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CheckboxControl=void 0;var a=n(1386),r=n(2214);t.CheckboxControl=function(e){var t,n=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,a.useState)(e.checked||!1),2),o=n[0],i=n[1];return t=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description),React.createElement(a.Fragment,null,React.createElement(r.CheckboxControl,{label:e.label,name:e.name,id:e.name,className:e.className,checked:o||!1,onChange:function(t){i(t),e.onChange&&e.onChange(t)}}),t)}},5470:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DateOffsetPreview=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(1386),o=n(4011),i=n(3244);n(9922);var l=t.DateOffsetPreview=function(e){var t=e.offset,n=e.label,l=e.labelDatePreview,s=e.labelOffsetPreview,u=e.setValidationErrorCallback,c=e.setHasPendingValidationCallback,d=e.setHasValidDataCallback,m=e.compactView,p=void 0!==m&&m,f=(0,r.useState)(""),y=a(f,2),g=y[0],v=y[1],b=(0,r.useState)(),h=a(b,2),E=h[0],S=h[1],_=(0,r.useRef)(new AbortController);(0,r.useEffect)((function(){!function(){if(t){var e=_.current;e&&e.abort(),_.current=new AbortController;var n=_.current.signal;c(!0),(0,i.apiFetch)({path:(0,o.addQueryArgs)("publishpress-future/v1/settings/validate-expire-offset"),method:"POST",data:{offset:t},signal:n}).then((function(e){c(!1),d(e.isValid),u(e.message),e.isValid?(v(e.preview),S(e.currentTime)):v("")})).catch((function(e){"AbortError"!==e.name&&(c(!1),d(!1),u(e.message),v(""))}))}}()}),[t]);var x=p?" compact":"";return React.createElement(r.Fragment,null,t&&React.createElement("div",{className:"publishpress-future-date-preview"+x},React.createElement("h4",null,n),React.createElement("div",{className:"publishpress-future-date-preview-body"},React.createElement("div",null,React.createElement("span",{className:"publishpress-future-date-preview-label"},l,": "),React.createElement("span",{className:"publishpress-future-date-preview-value"},E)),React.createElement("div",null,React.createElement("span",{className:"publishpress-future-date-preview-label"},s,": "),React.createElement("span",{className:"publishpress-future-date-preview-value"},g)))))};t.default=l},4620:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DateTimePicker=void 0;var a=n(7039),r=n(2214);t.DateTimePicker=function(e){var t=e.currentDate,n=e.onChange,o=e.is12Hour,i=e.startOfWeek;return"number"==typeof t&&(t=(0,a.normalizeUnixTimeToMilliseconds)(t)),React.createElement(r.DateTimePicker,{currentDate:t,onChange:n,__nextRemoveHelpButton:!0,is12Hour:o,startOfWeek:i})}},8418:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanel=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},o=n(8409),i=n(4873),l=n(9986),s=n(2214),u=n(1442),c=n(6625),d=wp.components,m=d.PanelRow,p=d.CheckboxControl,f=d.SelectControl,y=d.FormTokenField,g=d.Spinner,v=d.BaseControl,b=wp.element,h=b.Fragment,E=b.useEffect,S=b.useState,_=wp.htmlEntities.decodeEntities,x=wp.url.addQueryArgs,T=wp.data,A=T.useSelect,N=T.useDispatch,C=wp.apiFetch;t.FutureActionPanel=function(e){var t=A((function(t){return{action:t(e.storeName).getAction(),date:t(e.storeName).getDate(),enabled:t(e.storeName).getEnabled(),terms:t(e.storeName).getTerms(),taxonomy:t(e.storeName).getTaxonomy(),taxonomyName:t(e.storeName).getTaxonomyName(),termsListByName:t(e.storeName).getTermsListByName(),termsListById:t(e.storeName).getTermsListById(),isFetchingTerms:t(e.storeName).getIsFetchingTerms(),calendarIsVisible:t(e.storeName).getCalendarIsVisible(),hasValidData:t(e.storeName).getHasValidData(),newStatus:t(e.storeName).getNewStatus()}})),n=t.action,d=t.date,b=t.enabled,T=t.terms,w=t.taxonomy,R=t.taxonomyName,P=t.termsListByName,O=t.termsListById,D=t.isFetchingTerms,I=t.calendarIsVisible,k=t.hasValidData,F=t.newStatus,B=S(""),j=r(B,2),M=j[0],V=j[1],L=N(e.storeName),H=L.setAction,U=L.setDate,W=L.setEnabled,Q=L.setTerms,q=L.setTaxonomy,Y=L.setTermsListByName,z=L.setTermsListById,X=L.setTaxonomyName,G=L.setIsFetchingTerms,J=L.setCalendarIsVisible,Z=L.setHasValidData,K=L.setNewStatus,$=function(e){P[e]={id:e,count:0,description:"",link:"",name:e,slug:e,taxonomy:w},O[e]=e,Y(P),z(O),Q([].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0&&O&&(re=(0,o.compact)(function(e){return"object"!==(void 0===e?"undefined":a(e))||null===e?{}:e.map((function(e){return O[e]}))}(T)),"string"==typeof re&&(re=[]));var oe=[];"object"===(void 0===P?"undefined":a(P))&&null!==P&&(oe=Object.keys(P));var ie,le=I?"future-action-panel":"future-action-panel hidden-calendar",se=I?"future-action-panel-content":"future-action-panel-content hidden-calendar",ue=I?"future-action-date-panel":"future-action-date-panel hidden-calendar";ie="inherited"===e.timeFormat?!e.is12Hour:"24h"===e.timeFormat;var ce=e.actionsSelectOptions;e.taxonomy||(ce=e.actionsSelectOptions.filter((function(e){return-1===["category","category-add","category-remove","category-remove-all"].indexOf(e.value)})));var de=function(e,t,n){var a=e.split("{"),o=[];o.push(a.shift());var i=!0,l=!1,s=void 0;try{for(var u,c=a[Symbol.iterator]();!(i=(u=c.next()).done);i=!0){var d=u.value.split("}"),m=r(d,2),p=m[0],f=m[1];o.push(React.createElement("a",{href:t,target:"_blank",key:t},p)),o.push(f)}}catch(e){l=!0,s=e}finally{try{!i&&c.return&&c.return()}finally{if(l)throw s}}return o}(e.strings.timezoneSettingsHelp,"/wp-admin/options-general.php#timezone_string"),me=String(n).includes("category")&&"category-remove-all"!==n,pe=R;switch(n){case"category":pe=e.strings.newTerms.replace("%s",R);break;case"category-remove":pe=e.strings.removeTerms.replace("%s",R);break;case"category-add":pe=e.strings.addTerms.replace("%s",R)}return E((function(){if(!b)return Z(!0),void V("");Z(function(){var t=!0;if(!b)return V(""),!0;n||(V(e.strings.errorActionRequired),t=!1),d||(V(e.strings.errorDateRequired),t=!1),d&&new Date(d){Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelAfterActionField=void 0;var a=Object.assign||function(e){for(var t=1;t{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelBlockEditor=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(2057);t.FutureActionPanelBlockEditor=function(e){var t=wp.editPost.PluginDocumentSettingPanel,n=wp.data,o=n.useDispatch,i=n.select,l=o("core/editor").editPost,s=i("core/editor").getEditedPostAttribute("publishpress_future_action"),u=o("core/editor"),c=u.lockPostSaving,d=u.unlockPostSaving;return React.createElement(t,{name:"publishpress-future-action-panel",title:e.strings.panelTitle,initialOpen:e.postTypeDefaultConfig.autoEnable,className:"post-expirator-panel"},React.createElement("div",{id:"publishpress-future-block-editor"},React.createElement(r.FutureActionPanel,{context:"block-editor",postType:e.postType,isCleanNewPost:e.isCleanNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:s.enabled,calendarIsVisible:!0,action:s.action,newStatus:s.newStatus,date:s.date,terms:s.terms,taxonomy:s.taxonomy,taxonomyName:e.taxonomyName,onChangeData:function(t,n){var r=i(e.storeName),o={enabled:r.getEnabled()};o.enabled&&(o.action=r.getAction(),o.newStatus=r.getNewStatus(),o.date=r.getDate(),o.terms=r.getTerms(),o.taxonomy=r.getTaxonomy(),o.extraData=r.getExtraData()),function(e){var t={publishpress_future_action:{}},n=!0,r=!1,o=void 0;try{for(var i,s=Object.entries(e)[Symbol.iterator]();!(n=(i=s.next()).done);n=!0){var u=i.value,c=a(u,2),d=c[0],m=c[1];t.publishpress_future_action[d]=m}}catch(e){r=!0,o=e}finally{try{!n&&s.return&&s.return()}finally{if(r)throw o}}l(t)}(o)},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){d("future-action")},hideCalendarByDefault:e.hideCalendarByDefault,onDataIsInvalid:function(){c("future-action")}})))}},2094:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelBulkEdit=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(2057),o=n(8409);t.FutureActionPanelBulkEdit=function(e){var t=wp.data,n=t.useSelect,i=t.useDispatch,l=t.select,s=wp.element.useEffect,u=n((function(t){return t(e.storeName).getDate()}),[]),c=n((function(t){return t(e.storeName).getEnabled()}),[]),d=n((function(t){return t(e.storeName).getAction()}),[]),m=n((function(t){return t(e.storeName).getNewStatus()}),[]),p=n((function(t){return t(e.storeName).getTerms()}),[]),f=n((function(t){return t(e.storeName).getTaxonomy()}),[]),y=n((function(t){return t(e.storeName).getChangeAction()}),[]),g=n((function(t){return t(e.storeName).getHasValidData()}),[]),v=i(e.storeName).setChangeAction,b=p;"object"===(void 0===p?"undefined":a(p))&&(b=p.join(","));var h=[{value:"no-change",label:e.strings.noChange},{value:"change-add",label:e.strings.changeAdd},{value:"add-only",label:e.strings.addOnly},{value:"change-only",label:e.strings.changeOnly},{value:"remove-only",label:e.strings.removeOnly}];return s((function(){g||"no-change"===y?jQuery("#bulk_edit").prop("disabled",!1):jQuery("#bulk_edit").prop("disabled",!0)}),[g,y]),React.createElement("div",{className:"post-expirator-panel"},React.createElement(r.SelectControl,{label:e.strings.futureActionUpdate,name:"future_action_bulk_change_action",value:y,options:h,onChange:function(e){v(e)}}),["change-add","add-only","change-only"].includes(y)&&React.createElement(r.FutureActionPanel,{context:"bulk-edit",autoEnableAndHideCheckbox:!0,postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:!0,calendarIsVisible:!1,action:d,newStatus:m,date:u,terms:p,taxonomy:f,taxonomyName:e.taxonomyName,onChangeData:function(t,n){(0,o.getElementByName)("future_action_bulk_enabled").value=l(e.storeName).getEnabled()?1:0,(0,o.getElementByName)("future_action_bulk_action").value=l(e.storeName).getAction(),(0,o.getElementByName)("future_action_bulk_new_status").value=l(e.storeName).getNewStatus(),(0,o.getElementByName)("future_action_bulk_date").value=l(e.storeName).getDate(),(0,o.getElementByName)("future_action_bulk_terms").value=l(e.storeName).getTerms().join(","),(0,o.getElementByName)("future_action_bulk_taxonomy").value=l(e.storeName).getTaxonomy()},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,hideCalendarByDefault:e.hideCalendarByDefault,strings:e.strings}),React.createElement("input",{type:"hidden",name:"future_action_bulk_enabled",value:c?1:0}),React.createElement("input",{type:"hidden",name:"future_action_bulk_action",value:d}),React.createElement("input",{type:"hidden",name:"future_action_bulk_new_status",value:m}),React.createElement("input",{type:"hidden",name:"future_action_bulk_date",value:u}),React.createElement("input",{type:"hidden",name:"future_action_bulk_terms",value:b}),React.createElement("input",{type:"hidden",name:"future_action_bulk_taxonomy",value:f}),React.createElement("input",{type:"hidden",name:"future_action_bulk_view",value:"bulk-edit"}),React.createElement("input",{type:"hidden",name:"_future_action_nonce",value:e.nonce}))}},3571:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelClassicEditor=void 0;var a=n(2057),r=n(7562);n(1386),t.FutureActionPanelClassicEditor=function(e){(new Date).getTimezoneOffset();var t=function(e){return document.getElementsByName(e)[0]},n=function(e){var n=t(e);return n?n.value:""},o={enabled:"1"===n("future_action_enabled"),action:n("future_action_action"),newStatus:n("future_action_new_status"),date:n("future_action_date"),terms:function(e){var n=t("future_action_terms");if(!n)return[];var a=n.value.split(",");return 1===a.length&&""===a[0]&&(a=[]),a.map((function(e){return parseInt(e)}))}(),taxonomy:n("future_action_taxonomy")};return React.createElement("div",{className:"post-expirator-panel"},React.createElement(a.FutureActionPanel,{context:"classic-editor",postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:o.enabled,calendarIsVisible:!0,action:o.action,newStatus:o.newStatus,date:o.date,terms:o.terms,taxonomy:o.taxonomy,taxonomyName:e.taxonomyName,onChangeData:function(n,a){var o=(0,r.select)(e.storeName);t("future_action_enabled").value=o.getEnabled()?1:0,t("future_action_action").value=o.getAction(),t("future_action_new_status").value=o.getNewStatus(),t("future_action_date").value=o.getDate(),t("future_action_terms").value=o.getTerms().join(","),t("future_action_taxonomy").value=o.getTaxonomy()},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){jQuery("#publish").prop("disabled",!1)},hideCalendarByDefault:e.hideCalendarByDefault,onDataIsInvalid:function(){jQuery("#publish").prop("disabled",!0)}}))}},5437:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelQuickEdit=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(2057),o=n(7562);n(1386),t.FutureActionPanelQuickEdit=function(e){var t=(0,o.useSelect)((function(t){return t(e.storeName).getDate()}),[]),n=(0,o.useSelect)((function(t){return t(e.storeName).getEnabled()}),[]),i=(0,o.useSelect)((function(t){return t(e.storeName).getAction()}),[]),l=(0,o.useSelect)((function(t){return t(e.storeName).getTerms()}),[]),s=(0,o.useSelect)((function(t){return t(e.storeName).getTaxonomy()}),[]),u=((0,o.useSelect)((function(t){return t(e.storeName).getHasValidData()}),[]),(0,o.useSelect)((function(t){return t(e.storeName).getNewStatus()}),[])),c=l;return"object"===(void 0===l?"undefined":a(l))&&(c=l.join(",")),React.createElement("div",{className:"post-expirator-panel"},React.createElement(r.FutureActionPanel,{context:"quick-edit",postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:n,calendarIsVisible:!1,action:i,newStatus:u,date:t,terms:l,taxonomy:s,taxonomyName:e.taxonomyName,onChangeData:function(e,t){},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){jQuery(".button-primary.save").prop("disabled",!1)},hideCalendarByDefault:e.hideCalendarByDefault,onDataIsInvalid:function(){jQuery(".button-primary.save").prop("disabled",!0)}}),React.createElement("input",{type:"hidden",name:"future_action_enabled",value:n?1:0}),React.createElement("input",{type:"hidden",name:"future_action_action",value:i||""}),React.createElement("input",{type:"hidden",name:"future_action_new_status",value:u||""}),React.createElement("input",{type:"hidden",name:"future_action_date",value:t||""}),React.createElement("input",{type:"hidden",name:"future_action_terms",value:c||""}),React.createElement("input",{type:"hidden",name:"future_action_taxonomy",value:s||""}),React.createElement("input",{type:"hidden",name:"future_action_view",value:"quick-edit"}),React.createElement("input",{type:"hidden",name:"_future_action_nonce",value:e.nonce}))}},6625:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelTop=void 0;var a=Object.assign||function(e){for(var t=1;t{Object.defineProperty(t,"__esModule",{value:!0}),t.NonceControl=void 0;var a=n(1386);t.NonceControl=function(e){return e.name||(e.name="_wpnonce"),e.referrer||(e.referrer=!0),React.createElement(a.Fragment,null,React.createElement("input",{type:"hidden",name:e.name,id:e.name,value:e.nonce}),e.referrer&&React.createElement("input",{type:"hidden",name:"_wp_http_referer",value:e.referrer}))}},1620:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PostTypeSettingsPanel=void 0;var a,r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},o=n(2057),i=n(1386),l=n(4011),s=n(8566),u=n(3244),c=(a=n(5470))&&a.__esModule?a:{default:a},d=wp.components.PanelRow;t.PostTypeSettingsPanel=function(e){var t=e.expireTypeList[e.postType],n=(0,i.useState)(e.settings.taxonomy),a=r(n,2),m=a[0],p=a[1],f=(0,i.useState)([]),y=r(f,2),g=y[0],v=y[1],b=(0,i.useState)(!1),h=r(b,2),E=h[0],S=h[1],_=(0,i.useState)([]),x=r(_,2),T=x[0],A=x[1],N=(0,i.useState)(e.settings.howToExpire),C=r(N,2),w=C[0],R=C[1],P=(0,i.useState)(e.settings.active),O=r(P,2),D=O[0],I=O[1],k=(0,i.useState)(e.settings.defaultExpireOffset),F=r(k,2),B=F[0],j=F[1],M=(0,i.useState)(e.settings.emailNotification),V=r(M,2),L=V[0],H=V[1],U=(0,i.useState)(e.settings.autoEnabled),W=r(U,2),Q=W[0],q=W[1],Y=(0,i.useState)(!0),z=r(Y,2),X=z[0],G=z[1],J=(0,i.useState)(""),Z=r(J,2),K=Z[0],$=Z[1],ee=(0,i.useState)(""),te=r(ee,2),ne=te[0],ae=te[1],re=(0,i.useState)(t),oe=r(re,2),ie=oe[0],le=oe[1],se=(0,i.useState)(e.settings.newStatus),ue=r(se,2),ce=ue[0],de=ue[1],me=(0,i.useState)(!1),pe=r(me,2),fe=pe[0],ye=pe[1],ge=B||e.settings.globalDefaultExpireOffset,ve=["category","category-add","category-remove","category-remove-all"];(0,i.useEffect)((function(){var t;0===e.taxonomiesList.length&&(t=ie.filter((function(e){return-1===ve.indexOf(e.value)})),le(t))}),[]),(0,i.useEffect)((function(){m&&e.taxonomiesList&&(S(!0),(0,u.apiFetch)({path:(0,l.addQueryArgs)("publishpress-future/v1/terms/"+m)}).then((function(t){var n=[],a=null,r=void 0;t.terms.forEach((function(t){r={value:t.id,label:t.name},n.push(r),m===e.settings.taxonomy&&e.settings.terms.includes(t.id)&&(null===a&&(a=[]),a.push(r.label))})),v(n),A(a),S(!1)})),e.taxonomiesList.forEach((function(e){e.value===m&&ae(e.label)})))}),[m]),(0,i.useEffect)((function(){if(ne){var e=[];t.forEach((function(t){var n=t.label;-1!==ve.indexOf(t.value)&&(n=n.replace("%s",ne.toLowerCase())),e.push({value:t.value,label:n})})),le(e)}}),[ne]),(0,i.useEffect)((function(){X&&e.onDataIsValid&&e.onDataIsValid(e.postType),!X&&e.onDataIsInvalid&&e.onDataIsInvalid(e.postType)}),[X]),(0,i.useEffect)((function(){fe&&e.onValidationStarted&&e.onValidationStarted(e.postType),!fe&&e.onValidationFinished&&e.onValidationFinished(e.postType)}),[fe]);var be=g.map((function(e){return e.label})),he=[React.createElement(o.SettingRow,{label:e.text.fieldActive,key:"expirationdate_activemeta-"+e.postType},React.createElement(o.CheckboxControl,{name:"expirationdate_activemeta-"+e.postType,checked:D||!1,label:e.text.fieldActiveLabel,onChange:function(e){I(e)}}))];D&&(he.push(React.createElement(o.SettingRow,{label:e.text.fieldAutoEnable,key:"expirationdate_autoenable-"+e.postType},React.createElement(o.CheckboxControl,{name:"expirationdate_autoenable-"+e.postType,checked:Q||!1,label:e.text.fieldAutoEnableLabel,onChange:function(e){q(e)}}))),he.push(React.createElement(o.SettingRow,{label:e.text.fieldTaxonomy,key:"expirationdate_taxonomy-"+e.postType},React.createElement(o.SelectControl,{name:"expirationdate_taxonomy-"+e.postType,options:e.taxonomiesList,selected:m,noItemFoundMessage:e.text.noItemsfound,description:e.text.fieldTaxonomyDescription,data:e.postType,onChange:function(e){p(e)}}))),he.push(React.createElement(o.SettingRow,{label:e.text.fieldHowToExpire,key:"expirationdate_expiretype-"+e.postType},React.createElement(o.SelectControl,{name:"expirationdate_expiretype-"+e.postType,className:"pe-howtoexpire",options:ie,description:e.text.fieldHowToExpireDescription,selected:w,onChange:function(e){R(e)}}),"change-status"===w&&React.createElement(o.SelectControl,{name:"expirationdate_newstatus-"+e.postType,options:e.statusesList,selected:ce,onChange:de}),e.taxonomiesList.length>0&&["category","category-add","category-remove"].indexOf(w)>-1&&React.createElement(o.TokensControl,{label:e.text.fieldTerm,name:"expirationdate_terms-"+e.postType,options:be,value:T,isLoading:E,onChange:function(e){A(e)},description:e.text.fieldTermDescription,maxSuggestions:1e3,expandOnFocus:!0,autoSelectFirstMatch:!0}))),he.push(React.createElement(o.SettingRow,{label:e.text.fieldDefaultDateTimeOffset,key:"expired-custom-date-"+e.postType},React.createElement(o.TextControl,{name:"expired-custom-date-"+e.postType,value:B,loading:fe,placeholder:e.settings.globalDefaultExpireOffset,description:e.text.fieldDefaultDateTimeOffsetDescription,unescapedDescription:!0,onChange:function(e){j(e)}}),React.createElement(c.default,{offset:ge,label:e.text.datePreview,labelDatePreview:e.text.datePreviewCurrent,labelOffsetPreview:e.text.datePreviewComputed,setValidationErrorCallback:$,setHasPendingValidationCallback:ye,setHasValidDataCallback:G}))),he.push(React.createElement(o.SettingRow,{label:e.text.fieldWhoToNotify,key:"expirationdate_emailnotification-"+e.postType},React.createElement(o.TextControl,{name:"expirationdate_emailnotification-"+e.postType,className:"large-text",value:L,description:e.text.fieldWhoToNotifyDescription,onChange:function(e){H(e)}})))),he=(0,s.applyFilters)("expirationdate_settings_posttype",he,e,D,i.useState);var Ee=e.isVisible?"pe-settings-fieldset":"pe-settings-fieldset hidden";return React.createElement("div",{className:Ee},React.createElement(o.SettingsTable,{bodyChildren:he}),!X&&React.createElement(d,null,React.createElement("div",{className:"publishpress-future-notice publishpress-future-notice-error"},React.createElement("strong",null,e.text.error,":")," ",K)))}},8138:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PostTypesSettingsPanels=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(2057),o=n(1386);t.PostTypesSettingsPanels=function(e){var t=(0,o.useState)(Object.keys(e.settings)[0]),n=a(t,2),i=n[0],l=n[1],s=[],u=!0,c=!1,d=void 0;try{for(var m,p=Object.entries(e.settings)[Symbol.iterator]();!(u=(m=p.next()).done);u=!0){var f=m.value,y=a(f,2),g=y[0],v=y[1];s.push(React.createElement(r.PostTypeSettingsPanel,{legend:v.label,text:e.text,postType:g,settings:v,expireTypeList:e.expireTypeList,taxonomiesList:e.taxonomiesList[g],statusesList:e.statusesList[g],key:g+"-panel",onDataIsValid:e.onDataIsValid,onDataIsInvalid:e.onDataIsInvalid,onValidationStarted:e.onValidationStarted,onValidationFinished:e.onValidationFinished,isVisible:i===g}))}}catch(e){c=!0,d=e}finally{try{!u&&p.return&&p.return()}finally{if(c)throw d}}var b=function(e){e.preventDefault(),l(e.target.hash.replace("#","").replace("-panel",""))},h=[],E=!1,S=!0,_=!1,x=void 0;try{for(var T,A=Object.entries(e.settings)[Symbol.iterator]();!(S=(T=A.next()).done);S=!0){var N=T.value,C=a(N,2),w=C[0],R=C[1];E=i===w,h.push(React.createElement("a",{href:"#"+w+"-panel",className:"nav-tab "+(E?"nav-tab-active":""),key:w+"-tab",onClick:b},R.label))}}catch(e){_=!0,x=e}finally{try{!S&&A.return&&A.return()}finally{if(_)throw x}}return React.createElement("div",null,React.createElement("nav",{className:"nav-tab-wrapper"},h),s)}},2858:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SelectControl=void 0;var a=n(1386),r=n(2214);t.SelectControl=function(e){return React.createElement(a.Fragment,null,0===e.options.length&&React.createElement("div",null,e.noItemFoundMessage),e.options.length>0&&React.createElement(r.SelectControl,{label:e.label,name:e.name,id:e.name,className:e.className,value:e.selected,onChange:function(t){e.onChange(t)},"data-data":e.data,options:e.options}),e.children,React.createElement("p",{className:"description"},e.description))}},9005:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingRow=void 0,n(1386),t.SettingRow=function(e){return React.createElement("tr",{valign:"top"},React.createElement("th",{scope:"row"},React.createElement("label",{htmlFor:""},e.label)),React.createElement("td",null,e.children))}},5786:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsFieldset=function(e){return React.createElement("fieldset",{className:e.className},React.createElement("legend",null,e.legend),e.children)}},9892:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsForm=function(e){return React.createElement("form",{method:"post"},e.children)}},5681:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsSection=void 0;var a=n(1386);t.SettingsSection=function(e){return React.createElement(a.Fragment,null,React.createElement("h2",null,e.title),React.createElement("p",null,e.description),e.children)}},6772:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsTable=function(e){return React.createElement("table",{className:"form-table"},React.createElement("tbody",null,e.bodyChildren))}},242:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Spinner=function(e){return React.createElement("span",{className:"publishpress-future-spinner"},React.createElement("div",null),React.createElement("div",null),React.createElement("div",null),React.createElement("div",null))}},4438:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SubmitButton=function(e){return React.createElement("input",{type:"submit",name:e.name,value:e.text,disabled:e.disabled,className:"button-primary"})}},6301:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TextControl=void 0;var a=n(1386),r=n(2214),o=n(2057);t.TextControl=function(e){var t;t=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description);var n=e.className?e.className:"";return e.loading&&(n+=" publishpress-future-loading publishpress-future-loading-input"),React.createElement(a.Fragment,null,React.createElement("div",{className:n},React.createElement(r.TextControl,{type:"text",label:e.label,name:e.name,id:e.name,className:e.className,value:e.value,placeholder:e.placeholder,onChange:function(t){e.onChange&&e.onChange(t)}}),e.loading&&React.createElement(o.Spinner,null),t))}},3190:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ToggleArrowButton=void 0;var a=n(2214);t.ToggleArrowButton=function(e){var t=e.iconExpanded?e.iconExpanded:"arrow-up-alt2",n=e.iconCollapsed?e.iconCollapsed:"arrow-down-alt2",r=e.isExpanded?t:n,o=e.isExpanded?e.titleExpanded:e.titleCollapsed;return React.createElement(a.Button,{isSmall:!0,title:o,icon:r,onClick:function(){e.onClick&&e.onClick()},className:e.className})}},4873:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ToggleCalendarDatePicker=void 0;var a=n(3190),r=n(4620),o=n(1386);t.ToggleCalendarDatePicker=function(e){var t=e.isExpanded,n=e.strings,i=e.onToggleCalendar,l=e.currentDate,s=e.onChangeDate,u=e.is12Hour,c=e.startOfWeek;return(0,o.useEffect)((function(){var e=document.querySelector(".future-action-calendar-toggle");if(e){var t=e.nextElementSibling;if(t){var n=t.querySelector(".components-datetime__time");if(n){var a=n.nextSibling;a&&t.insertBefore(e,a)}}}})),React.createElement(o.Fragment,null,React.createElement(a.ToggleArrowButton,{className:"future-action-calendar-toggle",isExpanded:t,iconExpanded:"arrow-up-alt2",iconCollapsed:"calendar",titleExpanded:n.hideCalendar,titleCollapsed:n.showCalendar,onClick:i}),React.createElement(r.DateTimePicker,{currentDate:l,onChange:s,__nextRemoveHelpButton:!0,is12Hour:u,startOfWeek:c}))}},3948:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TokensControl=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(1386),o=n(2214);t.TokensControl=function(e){var t=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,r.useState)(""),2),n=t[0],i=t[1];(0,r.useEffect)((function(){e.value&&i(e.value.join(","))}),[e.value]);var l=void 0;e.description&&(l=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description));var s=e.value?e.value:[];return React.createElement(r.Fragment,null,React.createElement(o.FormTokenField,{label:e.label,value:s,suggestions:e.options,onChange:function(t){e.onChange&&e.onChange(t),"object"===(void 0===t?"undefined":a(t))?i(t.join(",")):i("")},maxSuggestions:e.maxSuggestions,className:"publishpres-future-token-field",__experimentalExpandOnFocus:e.expandOnFocus,__experimentalAutoSelectFirstMatch:e.autoSelectFirstMatch}),React.createElement("input",{type:"hidden",name:e.name,value:n}),l)}},8225:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TrueFalseControl=function(e){var t=wp.element.Fragment,n=function(t){e.onChange&&e.onChange(t.target.value===e.trueValue&&jQuery(t.target).is(":checked"))};return React.createElement(t,null,React.createElement("input",{type:"radio",name:e.name,id:e.name+"-true",value:e.trueValue,defaultChecked:e.selected,onChange:n}),React.createElement("label",{htmlFor:e.name+"-true"},e.trueLabel),"  ",React.createElement("input",{type:"radio",name:e.name,defaultChecked:!e.selected,id:e.name+"-false",value:e.falseValue,onChange:n}),React.createElement("label",{htmlFor:e.name+"-false"},e.falseLabel),React.createElement("p",{className:"description"},e.description))}},2057:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var a=n(5442);Object.defineProperty(t,"ButtonsPanel",{enumerable:!0,get:function(){return a.ButtonsPanel}});var r=n(8418);Object.defineProperty(t,"FutureActionPanel",{enumerable:!0,get:function(){return r.FutureActionPanel}});var o=n(2864);Object.defineProperty(t,"FutureActionPanelBlockEditor",{enumerable:!0,get:function(){return o.FutureActionPanelBlockEditor}});var i=n(3571);Object.defineProperty(t,"FutureActionPanelClassicEditor",{enumerable:!0,get:function(){return i.FutureActionPanelClassicEditor}});var l=n(5437);Object.defineProperty(t,"FutureActionPanelQuickEdit",{enumerable:!0,get:function(){return l.FutureActionPanelQuickEdit}});var s=n(2094);Object.defineProperty(t,"FutureActionPanelBulkEdit",{enumerable:!0,get:function(){return s.FutureActionPanelBulkEdit}});var u=n(1620);Object.defineProperty(t,"PostTypeSettingsPanel",{enumerable:!0,get:function(){return u.PostTypeSettingsPanel}});var c=n(8138);Object.defineProperty(t,"PostTypesSettingsPanels",{enumerable:!0,get:function(){return c.PostTypesSettingsPanels}});var d=n(9005);Object.defineProperty(t,"SettingRow",{enumerable:!0,get:function(){return d.SettingRow}});var m=n(5786);Object.defineProperty(t,"SettingsFieldset",{enumerable:!0,get:function(){return m.SettingsFieldset}});var p=n(9892);Object.defineProperty(t,"SettingsForm",{enumerable:!0,get:function(){return p.SettingsForm}});var f=n(5681);Object.defineProperty(t,"SettingsSection",{enumerable:!0,get:function(){return f.SettingsSection}});var y=n(6772);Object.defineProperty(t,"SettingsTable",{enumerable:!0,get:function(){return y.SettingsTable}});var g=n(4438);Object.defineProperty(t,"SubmitButton",{enumerable:!0,get:function(){return g.SubmitButton}});var v=n(4311);Object.defineProperty(t,"CheckboxControl",{enumerable:!0,get:function(){return v.CheckboxControl}});var b=n(2858);Object.defineProperty(t,"SelectControl",{enumerable:!0,get:function(){return b.SelectControl}});var h=n(6301);Object.defineProperty(t,"TextControl",{enumerable:!0,get:function(){return h.TextControl}});var E=n(3948);Object.defineProperty(t,"TokensControl",{enumerable:!0,get:function(){return E.TokensControl}});var S=n(1013);Object.defineProperty(t,"NonceControl",{enumerable:!0,get:function(){return S.NonceControl}});var _=n(8225);Object.defineProperty(t,"TrueFalseControl",{enumerable:!0,get:function(){return _.TrueFalseControl}});var x=n(242);Object.defineProperty(t,"Spinner",{enumerable:!0,get:function(){return x.Spinner}});var T=n(5470);Object.defineProperty(t,"DateOffsetPreview",{enumerable:!0,get:function(){return T.DateOffsetPreview}})},4480:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createStore=void 0;var a=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:t,s=arguments[1];switch(s.type){case"SET_ACTION":return a({},l,{action:s.action});case"SET_NEW_STATUS":return a({},l,{newStatus:s.newStatus});case"SET_DATE":return"number"!=typeof s.date&&(0,o.isNumber)(s.date)&&(s.date=parseInt(s.date)),"string"==typeof s.date&&(s.date=new Date(s.date).getTime()),s.date=(0,r.normalizeUnixTimeToSeconds)(s.date),s.date=(0,r.formatUnixTimeToTimestamp)(s.date),a({},l,{date:s.date});case"SET_ENABLED":return a({},l,{enabled:s.enabled});case"SET_TERMS":return a({},l,{terms:s.terms});case"SET_TAXONOMY":return a({},l,{taxonomy:s.taxonomy});case"SET_TERMS_LIST_BY_NAME":return a({},l,{termsListByName:s.termsListByName});case"SET_TERMS_LIST_BY_ID":return a({},l,{termsListById:s.termsListById});case"SET_TAXONOMY_NAME":return a({},l,{taxonomyName:s.taxonomyName});case"SET_CHANGE_ACTION":return a({},l,{changeAction:s.changeAction});case"SET_CALENDAR_IS_VISIBLE":return a({},l,{calendarIsVisible:s.calendarIsVisible});case"SET_HAS_VALID_DATA":return a({},l,{hasValidData:s.hasValidData});case"SET_EXTRA_DATA":return a({},l,{extraData:a({},s.extraData)});case"SET_EXTRA_DATA_BY_NAME":var u=a({},l.extraData,(e={},n=s.name,i=s.value,n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i,e));return a({},l,{extraData:a({},u)})}return l},actions:{setAction:function(e){return{type:"SET_ACTION",action:e}},setNewStatus:function(e){return{type:"SET_NEW_STATUS",newStatus:e}},setDate:function(e){return{type:"SET_DATE",date:e}},setEnabled:function(e){return{type:"SET_ENABLED",enabled:e}},setTerms:function(e){return{type:"SET_TERMS",terms:e}},setTaxonomy:function(e){return{type:"SET_TAXONOMY",taxonomy:e}},setTermsListByName:function(e){return{type:"SET_TERMS_LIST_BY_NAME",termsListByName:e}},setTermsListById:function(e){return{type:"SET_TERMS_LIST_BY_ID",termsListById:e}},setTaxonomyName:function(e){return{type:"SET_TAXONOMY_NAME",taxonomyName:e}},setIsFetchingTerms:function(e){return{type:"SET_IS_FETCHING_TERMS",isFetchingTerms:e}},setChangeAction:function(e){return{type:"SET_CHANGE_ACTION",changeAction:e}},setCalendarIsVisible:function(e){return{type:"SET_CALENDAR_IS_VISIBLE",calendarIsVisible:e}},setHasValidData:function(e){return{type:"SET_HAS_VALID_DATA",hasValidData:e}},setExtraData:function(e){return{type:"SET_EXTRA_DATA",extraData:e}},setExtraDataByName:function(e,t){return{type:"SET_EXTRA_DATA_BY_NAME",name:e,value:t}}},selectors:{getAction:function(e){return e.action},getNewStatus:function(e){return e.newStatus},getDate:function(e){return e.date},getEnabled:function(e){return e.enabled},getTerms:function(e){return e.terms},getTaxonomy:function(e){return e.taxonomy},getTermsListByName:function(e){return e.termsListByName},getTermsListById:function(e){return e.termsListById},getTaxonomyName:function(e){return e.taxonomyName},getIsFetchingTerms:function(e){return e.isFetchingTerms},getChangeAction:function(e){return e.changeAction},getCalendarIsVisible:function(e){return e.calendarIsVisible},getHasValidData:function(e){return e.hasValidData},getExtraData:function(e){return e.extraData},getExtraDataByName:function(e,t){return e.extraData[t]||null}}});return(0,i.register)(n),n}},7039:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n=t.getCurrentTimeInSeconds=function(){return o((new Date).getTime())},a=(t.getCurrentTimeAsTimestamp=function(){return a(n())},t.formatUnixTimeToTimestamp=function(e){var t=new Date(o(e));return t.getFullYear()+"-"+("0"+(t.getMonth()+1)).slice(-2)+"-"+("0"+t.getDate()).slice(-2)+" "+("0"+t.getHours()).slice(-2)+":"+("0"+t.getMinutes()).slice(-2)+":"+("0"+t.getSeconds()).slice(-2)}),r=(t.formatTimestampToUnixTime=function(e){var t=new Date(e);return o(t.getTime())},t.timeIsInSeconds=function(e){return parseInt(e).toString().length<=10}),o=t.normalizeUnixTimeToSeconds=function(e){return e=parseInt(e),r()?e:e/1e3};t.normalizeUnixTimeToMilliseconds=function(e){return e=parseInt(e),r()?1e3*e:e}},8409:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=(t.compact=function(e){return e?(Array.isArray(e)||"object"!==(void 0===e?"undefined":n(e))||(e=Object.values(e)),e.filter((function(e){return null!=e&&""!==e}))):[]},t.debugLogFactory=function(e){return function(t){for(var n=arguments.length,a=Array(n>1?n-1:0),r=1;r{n.d(t,{A:()=>l});var a=n(1354),r=n.n(a),o=n(6314),i=n.n(o)()(r());i.push([e.id,".publishpress-future-date-preview .publishpress-future-date-preview-value {\n font-family: monospace;\n background-color: #e7e7e7;\n padding: 2px 4px;\n}\n\n.publishpress-future-date-preview.compact .publishpress-future-date-preview-label {\n display: block;\n}\n\n.publishpress-future-date-preview.compact {\n margin-bottom: 8px;\n}\n\n.publishpress-future-date-preview.compact h4 {\n font-size: 11px;\n font-weight: 500;\n line-height: 1.4;\n text-transform: uppercase;\n display: inline-block;\n margin-bottom: calc(8px);\n padding: 0px;\n flex-shrink: 0;\n margin-right: 12px;\n max-width: 75%;\n margin-top: 0;\n}\n\n.publishpress-future-notice.publishpress-future-notice-error {\n color: #dc3232;\n}\n","",{version:3,sources:["webpack://./assets/jsx/components/css/dateOffsetPreview.css"],names:[],mappings:"AAAA;IACI,sBAAsB;IACtB,yBAAyB;IACzB,gBAAgB;AACpB;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,kBAAkB;AACtB;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,yBAAyB;IACzB,qBAAqB;IACrB,wBAAwB;IACxB,YAAY;IACZ,cAAc;IACd,kBAAkB;IAClB,cAAc;IACd,aAAa;AACjB;;AAEA;IACI,cAAc;AAClB",sourcesContent:[".publishpress-future-date-preview .publishpress-future-date-preview-value {\n font-family: monospace;\n background-color: #e7e7e7;\n padding: 2px 4px;\n}\n\n.publishpress-future-date-preview.compact .publishpress-future-date-preview-label {\n display: block;\n}\n\n.publishpress-future-date-preview.compact {\n margin-bottom: 8px;\n}\n\n.publishpress-future-date-preview.compact h4 {\n font-size: 11px;\n font-weight: 500;\n line-height: 1.4;\n text-transform: uppercase;\n display: inline-block;\n margin-bottom: calc(8px);\n padding: 0px;\n flex-shrink: 0;\n margin-right: 12px;\n max-width: 75%;\n margin-top: 0;\n}\n\n.publishpress-future-notice.publishpress-future-notice-error {\n color: #dc3232;\n}\n"],sourceRoot:""}]);const l=i},6314:e=>{e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",a=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),a&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),a&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,a,r,o){"string"==typeof e&&(e=[[null,e,void 0]]);var i={};if(a)for(var l=0;l0?" ".concat(c[5]):""," {").concat(c[1],"}")),c[5]=o),n&&(c[2]?(c[1]="@media ".concat(c[2]," {").concat(c[1],"}"),c[2]=n):c[2]=n),r&&(c[4]?(c[1]="@supports (".concat(c[4],") {").concat(c[1],"}"),c[4]=r):c[4]="".concat(r)),t.push(c))}},t}},1354:e=>{e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var a=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(a),o="/*# ".concat(r," */");return[t].concat([o]).join("\n")}return[t].join("\n")}},5338:(e,t,n)=>{var a=n(5206);t.createRoot=a.createRoot,t.hydrateRoot=a.hydrateRoot},9922:(e,t,n)=>{n.r(t),n.d(t,{default:()=>v});var a=n(5072),r=n.n(a),o=n(7825),i=n.n(o),l=n(7659),s=n.n(l),u=n(5056),c=n.n(u),d=n(540),m=n.n(d),p=n(1113),f=n.n(p),y=n(1461),g={};g.styleTagTransform=f(),g.setAttributes=c(),g.insert=s().bind(null,"head"),g.domAPI=i(),g.insertStyleElement=m(),r()(y.A,g);const v=y.A&&y.A.locals?y.A.locals:void 0},5072:e=>{var t=[];function n(e){for(var n=-1,a=0;a{var t={};e.exports=function(e,n){var a=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(!a)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");a.appendChild(n)}},540:e=>{e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},5056:(e,t,n)=>{e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},7825:e=>{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 a="";n.supports&&(a+="@supports (".concat(n.supports,") {")),n.media&&(a+="@media ".concat(n.media," {"));var r=void 0!==n.layer;r&&(a+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),a+=n.css,r&&(a+="}"),n.media&&(a+="}"),n.supports&&(a+="}");var o=n.sourceMap;o&&"undefined"!=typeof btoa&&(a+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),t.styleTagTransform(a,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},1113:e=>{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))}}},5206:e=>{e.exports=ReactDOM},3047:e=>{e.exports=publishpressFutureQuickEditConfig},8643:e=>{e.exports=window},3244:e=>{e.exports=wp},2214:e=>{e.exports=wp.components},7562:e=>{e.exports=wp.data},1386:e=>{e.exports=wp.element},8566:e=>{e.exports=wp.hooks},9986:e=>{e.exports=wp.plugins},4011:e=>{e.exports=wp.url}},t={};function n(a){var r=t[a];if(void 0!==r)return r.exports;var o=t[a]={id:a,exports:{}};return e[a](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 a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},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 a=n(2057),r=n(4480),o=n(8409),i=n(5338),l=n(7562),s=n(8643),u=n(3047),c="publishpress-future/future-action-quick-edit",d=s.inlineEditPost.edit,m=s.inlineEditPost.revert;s.inlineEditPost.edit=function(e,t){d.apply(this,arguments);var n=function(e){return"string"==typeof e||"number"==typeof e?e:e.closest("tr").id.split("-")[1]}(e),p=(0,o.getActionSettingsFromColumnData)(n);if(p){var f=p.enabled,y=p.action,g=p.date,v=p.taxonomy,b=p.newStatus,h=p.terms;"string"==typeof h&&(h=h.split(",")),(0,l.select)(c)?((0,l.dispatch)(c).setEnabled(f),(0,l.dispatch)(c).setAction(y),(0,l.dispatch)(c).setDate(g),(0,l.dispatch)(c).setTaxonomy(v),(0,l.dispatch)(c).setTerms(h),(0,l.dispatch)(c).setNewStatus(b)):(0,r.createStore)({name:c,defaultState:{autoEnable:f,action:y,date:g,taxonomy:v,terms:h,newStatus:b}});var E=document.getElementById("publishpress-future-quick-edit");if(E){var S=(0,i.createRoot)(E),_=document.querySelector(".inline-edit-save .save");_&&(_.onclick=function(){setTimeout((function(){S.unmount()}),1e3)});var x=React.createElement(a.FutureActionPanelQuickEdit,{storeName:c,postType:u.postType,isNewPost:u.isNewPost,actionsSelectOptions:u.actionsSelectOptions,statusesSelectOptions:u.statusesSelectOptions,is12Hour:u.is12Hour,timeFormat:u.timeFormat,startOfWeek:u.startOfWeek,strings:u.strings,taxonomyName:u.taxonomyName,nonce:u.nonce,hideCalendarByDefault:u.hideCalendarByDefault});S.render(x),s.inlineEditPost.revert=function(){S.unmount(),m.apply(this,arguments)}}}}})(); //# sourceMappingURL=quick-edit.js.map \ No newline at end of file diff --git a/assets/js/quick-edit.js.map b/assets/js/quick-edit.js.map index a74498af8..cf796b5e1 100644 --- a/assets/js/quick-edit.js.map +++ b/assets/js/quick-edit.js.map @@ -1 +1 @@ -{"version":3,"file":"quick-edit.js","mappings":"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","sources":["webpack://post-expirator/./assets/jsx/components/ButtonsPanel.jsx","webpack://post-expirator/./assets/jsx/components/CheckboxControl.jsx","webpack://post-expirator/./assets/jsx/components/DateTimePicker.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanel.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelAfterActionField.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelBlockEditor.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelBulkEdit.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelClassicEditor.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelQuickEdit.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelTop.jsx","webpack://post-expirator/./assets/jsx/components/NonceControl.jsx","webpack://post-expirator/./assets/jsx/components/PostTypeSettingsPanel.jsx","webpack://post-expirator/./assets/jsx/components/PostTypesSettingsPanels.jsx","webpack://post-expirator/./assets/jsx/components/SelectControl.jsx","webpack://post-expirator/./assets/jsx/components/SettingRow.jsx","webpack://post-expirator/./assets/jsx/components/SettingsFieldset.jsx","webpack://post-expirator/./assets/jsx/components/SettingsForm.jsx","webpack://post-expirator/./assets/jsx/components/SettingsSection.jsx","webpack://post-expirator/./assets/jsx/components/SettingsTable.jsx","webpack://post-expirator/./assets/jsx/components/Spinner.jsx","webpack://post-expirator/./assets/jsx/components/SubmitButton.jsx","webpack://post-expirator/./assets/jsx/components/TextControl.jsx","webpack://post-expirator/./assets/jsx/components/ToggleArrowButton.jsx","webpack://post-expirator/./assets/jsx/components/ToggleCalendarDatePicker.jsx","webpack://post-expirator/./assets/jsx/components/TokensControl.jsx","webpack://post-expirator/./assets/jsx/components/TrueFalseControl.jsx","webpack://post-expirator/./assets/jsx/components/index.jsx","webpack://post-expirator/./assets/jsx/data.jsx","webpack://post-expirator/./assets/jsx/time.jsx","webpack://post-expirator/./assets/jsx/utils.jsx","webpack://post-expirator/external var \"publishpressFutureQuickEditConfig\"","webpack://post-expirator/external var \"window\"","webpack://post-expirator/external var \"wp\"","webpack://post-expirator/external var \"wp.components\"","webpack://post-expirator/external var \"wp.data\"","webpack://post-expirator/external var \"wp.element\"","webpack://post-expirator/external var \"wp.hooks\"","webpack://post-expirator/external var \"wp.plugins\"","webpack://post-expirator/external var \"wp.url\"","webpack://post-expirator/webpack/bootstrap","webpack://post-expirator/./assets/jsx/quick-edit.jsx"],"sourcesContent":["/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const ButtonsPanel = function (props) {\n return (\n
\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment, useState } from \"@wordpress/element\";\nimport { CheckboxControl as WPCheckboxControl } from \"@wordpress/components\";\n\nexport const CheckboxControl = function (props) {\n const [checked, setChecked] = useState(props.checked || false);\n\n let description;\n\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n\n const onChange = function (value) {\n setChecked(value);\n\n if (props.onChange) {\n props.onChange(value);\n }\n };\n\n return (\n \n \n\n {description}\n \n )\n}\n","import { normalizeUnixTimeToMilliseconds } from \"../time\";\nimport { DateTimePicker as WPDateTimePicker } from \"@wordpress/components\";\n\n\nexport const DateTimePicker = ({currentDate, onChange, is12Hour, startOfWeek}) => {\n if (typeof currentDate === 'number') {\n currentDate = normalizeUnixTimeToMilliseconds(currentDate);\n }\n\n return (\n \n )\n}\n","import { compact } from '../utils';\nimport { ToggleCalendarDatePicker } from './ToggleCalendarDatePicker';\nimport { PluginArea } from '@wordpress/plugins';\nimport { Fill, Slot, SlotFillProvider } from '@wordpress/components';\nimport { FutureActionPanelAfterActionField } from './FutureActionPanelAfterActionField';\nimport { FutureActionPanelTop } from './FutureActionPanelTop';\n\nconst { PanelRow, CheckboxControl, SelectControl, FormTokenField, Spinner, BaseControl } = wp.components;\nconst { Fragment, useEffect, useState } = wp.element;\nconst { decodeEntities } = wp.htmlEntities;\nconst { addQueryArgs } = wp.url;\nconst {\n useSelect,\n useDispatch\n} = wp.data;\nconst { apiFetch } = wp;\n\nexport const FutureActionPanel = (props) => {\n const action = useSelect((select) => select(props.storeName).getAction(), []);\n const date = useSelect((select) => select(props.storeName).getDate(), []);\n const enabled = useSelect((select) => select(props.storeName).getEnabled(), []);\n const terms = useSelect((select) => select(props.storeName).getTerms(), []);\n const taxonomy = useSelect((select) => select(props.storeName).getTaxonomy(), []);\n const taxonomyName = useSelect((select) => select(props.storeName).getTaxonomyName(), []);\n const termsListByName = useSelect((select) => select(props.storeName).getTermsListByName(), []);\n const termsListById = useSelect((select) => select(props.storeName).getTermsListById(), []);\n const isFetchingTerms = useSelect((select) => select(props.storeName).getIsFetchingTerms(), []);\n const calendarIsVisible = useSelect((select) => select(props.storeName).getCalendarIsVisible(), []);\n const hasValidData = useSelect((select) => select(props.storeName).getHasValidData(), []);\n const newStatus = useSelect((select) => select(props.storeName).getNewStatus(), []);\n\n const [validationError, setValidationError] = useState('');\n\n const {\n setAction,\n setDate,\n setEnabled,\n setTerms,\n setTaxonomy,\n setTermsListByName,\n setTermsListById,\n setTaxonomyName,\n setIsFetchingTerms,\n setCalendarIsVisible,\n setHasValidData,\n setNewStatus\n } = useDispatch(props.storeName);\n\n const mapTermsListById = (terms) => {\n if (typeof terms !== 'object' || terms === null) {\n return {};\n }\n\n return terms.map((term) => {\n return termsListById[term];\n });\n }\n\n const insertTerm = (term) => {\n termsListByName[term] = { id: term, count: 0, description: \"\", link: \"\", name: term, slug: term, taxonomy: taxonomy };\n termsListById[term] = term;\n setTermsListByName(termsListByName);\n setTermsListById(termsListById);\n setTerms([...terms, term]);\n\n }\n\n const mapTermsListByName = (terms) => {\n if (typeof terms !== 'object' || terms === null) {\n return {};\n }\n\n return terms.map((term) => {\n if (termsListByName[term]) {\n return termsListByName[term].id;\n }\n\n insertTerm(term);\n\n return term;\n });\n }\n\n const callOnChangeData = (attribute, value) => {\n if (typeof props.onChangeData === 'function') {\n props.onChangeData(attribute, value);\n }\n }\n\n const handleEnabledChange = (isChecked) => {\n setEnabled(isChecked);\n\n if (isChecked) {\n setAction(props.action);\n setDate(props.date);\n setNewStatus(props.newStatus);\n setTerms(props.terms);\n setTaxonomy(props.taxonomy);\n\n fetchTerms();\n }\n\n callOnChangeData('enabled', isChecked);\n }\n\n const handleActionChange = (value) => {\n setAction(value);\n\n callOnChangeData('action', value);\n }\n\n const handleNewStatusChange = (value) => {\n setNewStatus(value);\n\n callOnChangeData('newStatus', value);\n }\n\n const handleDateChange = (value) => {\n setDate(value);\n\n callOnChangeData('date', value);\n }\n\n const handleTermsChange = (value) => {\n value = mapTermsListByName(value);\n\n setTerms(value);\n\n callOnChangeData('terms', value);\n }\n\n const fetchTerms = () => {\n let termsListByName = {};\n let termsListById = {};\n\n if (!taxonomy) {\n return;\n }\n\n setIsFetchingTerms(true);\n\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/terms/${taxonomy}`),\n }).then((result) => {\n result.terms.forEach(term => {\n termsListByName[decodeEntities(term.name)] = term;\n termsListById[term.id] = decodeEntities(term.name);\n });\n\n setTermsListByName(termsListByName);\n setTermsListById(termsListById);\n setTaxonomyName(decodeEntities(result.taxonomyName));\n setIsFetchingTerms(false);\n });\n }\n\n const storeCalendarIsVisibleOnStorage = (value) => {\n localStorage.setItem('FUTURE_ACTION_CALENDAR_IS_VISIBLE_' + props.context, value ? '1' : '0');\n }\n\n const getCalendarIsVisibleFromStorage = () => {\n return localStorage.getItem('FUTURE_ACTION_CALENDAR_IS_VISIBLE_' + props.context);\n }\n\n useEffect(() => {\n if (props.autoEnableAndHideCheckbox) {\n setEnabled(true);\n } else {\n setEnabled(props.enabled);\n }\n\n setAction(props.action);\n setNewStatus(props.newStatus);\n setDate(props.date);\n setTerms(props.terms);\n setTaxonomy(props.taxonomy);\n\n if (getCalendarIsVisibleFromStorage() === null) {\n setCalendarIsVisible(props.calendarIsVisible);\n } else {\n setCalendarIsVisible(getCalendarIsVisibleFromStorage() === '1');\n }\n\n // We need to get the value directly from the props because the value from the store is not updated yet\n if (props.enabled) {\n if (props.isCleanNewPost) {\n // Force populate the default values\n handleEnabledChange(true);\n }\n\n fetchTerms();\n }\n }, []);\n\n useEffect(() => {\n storeCalendarIsVisibleOnStorage(calendarIsVisible);\n }, [calendarIsVisible]);\n\n useEffect(() => {\n if (hasValidData && props.onDataIsValid) {\n props.onDataIsValid();\n }\n\n if (!hasValidData && props.onDataIsInvalid) {\n props.onDataIsInvalid();\n }\n }, [hasValidData]);\n\n let selectedTerms = [];\n if (terms && terms.length > 0 && termsListById) {\n selectedTerms = compact(mapTermsListById(terms));\n\n if (typeof selectedTerms === 'string') {\n selectedTerms = [];\n }\n }\n\n let termsListByNameKeys = [];\n if (typeof termsListByName === 'object' && termsListByName !== null) {\n termsListByNameKeys = Object.keys(termsListByName);\n }\n\n const panelClass = calendarIsVisible ? 'future-action-panel' : 'future-action-panel hidden-calendar';\n const contentPanelClass = calendarIsVisible ? 'future-action-panel-content' : 'future-action-panel-content hidden-calendar';\n const datePanelClass = calendarIsVisible ? 'future-action-date-panel' : 'future-action-date-panel hidden-calendar';\n\n let is24hour;\n if (props.timeFormat === 'inherited') {\n is24hour = !props.is12Hour;\n } else {\n is24hour = props.timeFormat === '24h';\n }\n\n const replaceCurlyBracketsWithLink = (string, href, target) => {\n const parts = string.split('{');\n const result = [];\n\n result.push(parts.shift());\n\n for (const part of parts) {\n const [before, after] = part.split('}');\n\n result.push(\n {before}\n );\n\n result.push(after);\n }\n\n return result;\n };\n\n // Remove items from actions list if related to taxonomies and there is no taxonmoy for the post type\n let actionsSelectOptions = props.actionsSelectOptions;\n if (!props.taxonomy) {\n actionsSelectOptions = props.actionsSelectOptions.filter((item) => {\n return ['category', 'category-add', 'category-remove', 'category-remove-all'].indexOf(item.value) === -1;\n });\n }\n\n const HelpText = replaceCurlyBracketsWithLink(props.strings.timezoneSettingsHelp, '/wp-admin/options-general.php#timezone_string', '_blank');\n const displayTaxonomyField = String(action).includes('category') && action !== 'category-remove-all';\n\n let termsFieldLabel = taxonomyName;\n switch (action) {\n case 'category':\n termsFieldLabel = props.strings.newTerms.replace('%s', taxonomyName);\n break;\n case 'category-remove':\n termsFieldLabel = props.strings.removeTerms.replace('%s', taxonomyName);\n break;\n case 'category-add':\n termsFieldLabel = props.strings.addTerms.replace('%s', taxonomyName);\n break;\n }\n\n const validateData = () => {\n let valid = true;\n\n if (!enabled) {\n setValidationError('');\n return true;\n }\n\n if (!action) {\n setValidationError(props.strings.errorActionRequired);\n valid = false;\n }\n\n if (!date) {\n setValidationError(props.strings.errorDateRequired);\n valid = false;\n }\n\n // Check if the date is in the past\n if (date && new Date(date) < new Date()) {\n setValidationError(props.strings.errorDateInPast);\n valid = false;\n }\n\n const isTermRequired = ['category', 'category-add', 'category-remove'].includes(action);\n const noTermIsSelected = terms.length === 0 || (terms.length === 1 && (terms[0] === '' || terms[0] === '0'));\n\n if (isTermRequired && noTermIsSelected) {\n setValidationError(props.strings.errorTermsRequired);\n valid = false;\n }\n\n if (valid) {\n setValidationError('');\n }\n\n return valid;\n }\n\n useEffect(() => {\n if (!enabled) {\n setHasValidData(true);\n setValidationError('');\n\n return;\n }\n\n setHasValidData(validateData());\n }, [action, date, enabled, terms, taxonomy]);\n\n // This adds a 'cancel' class to the input when the user clicks on the\n // field to prevent the form from being submitted. This is a workaround\n // for the issue on the quick-edit form where the form is submitted when\n // the user presses the 'Enter' key trying to add a term to the field.\n const forceIgnoreAutoSubmitOnEnter = (e) => {\n jQuery(e.target).addClass('cancel');\n }\n\n return (\n \n
\n {props.autoEnableAndHideCheckbox && (\n \n )}\n\n \n\n {!props.autoEnableAndHideCheckbox && (\n \n \n \n )}\n\n {enabled && (\n \n \n \n \n\n \n\n {action === 'change-status' &&\n \n \n \n }\n\n {\n displayTaxonomyField && (\n isFetchingTerms && (\n \n \n {`${props.strings.loading} (${taxonomyName})`}\n \n \n \n )\n || (!taxonomy && (\n \n \n
\n {props.strings.noTaxonomyFound}\n
\n
\n
\n )\n || (\n termsListByNameKeys.length === 0 && (\n \n \n
\n {props.strings.noTermsFound}\n
\n
\n
\n )\n || (\n \n \n \n \n \n )\n )\n )\n )\n }\n\n \n setCalendarIsVisible(!calendarIsVisible)}\n is12Hour={!is24hour}\n startOfWeek={props.startOfWeek}\n isExpanded={calendarIsVisible}\n strings={props.strings}\n />\n \n\n \n
\n
\n\n {HelpText}\n
\n
\n\n {!hasValidData && (\n \n \n
{validationError}
\n
\n
\n )}\n
\n )}\n
\n \n
\n );\n};\n","import { Slot, Fill } from '@wordpress/components';\n\nexport const FutureActionPanelAfterActionField = ({ children }) => (\n \n {children}\n \n);\n\nconst FutureActionPanelAfterActionFieldSlot = (props) => (\n \n);\n\nFutureActionPanelAfterActionField.Slot = FutureActionPanelAfterActionFieldSlot;\n\nexport default FutureActionPanelAfterActionField;\n","import { FutureActionPanel } from './';\n\nexport const FutureActionPanelBlockEditor = (props) => {\n const { PluginDocumentSettingPanel } = wp.editPost;\n const { useDispatch, select } = wp.data;\n\n const { editPost } = useDispatch('core/editor');\n\n const editPostAttribute = (newAttribute) => {\n const attribute = {\n publishpress_future_action: {}\n };\n\n // For each property on newAttribute, set the value on attribute\n for (const [name, value] of Object.entries(newAttribute)) {\n attribute.publishpress_future_action[name] = value;\n }\n\n editPost(attribute);\n }\n\n const onChangeData = (attribute, value) => {\n const store = select(props.storeName);\n\n const newAttribute = {\n 'enabled': store.getEnabled()\n }\n\n if (newAttribute.enabled) {\n newAttribute['action'] = store.getAction();\n newAttribute['newStatus'] = store.getNewStatus();\n newAttribute['date'] = store.getDate();\n newAttribute['terms'] = store.getTerms();\n newAttribute['taxonomy'] = store.getTaxonomy();\n newAttribute['extraData'] = store.getExtraData();\n }\n\n editPostAttribute(newAttribute);\n }\n\n const data = select('core/editor').getEditedPostAttribute('publishpress_future_action');\n\n const { lockPostSaving, unlockPostSaving } = useDispatch('core/editor');\n\n const onDataIsValid = () => {\n unlockPostSaving('future-action');\n }\n\n const onDataIsInvalid = () => {\n lockPostSaving('future-action');\n }\n\n return (\n \n
\n \n
\n \n );\n};\n","import { FutureActionPanel, SelectControl } from '.';\nimport { getElementByName } from '../utils';\n\nexport const FutureActionPanelBulkEdit = (props) => {\n const { useSelect, useDispatch, select } = wp.data;\n const { useEffect } = wp.element;\n\n const onChangeData = (attribute, value) => {\n getElementByName('future_action_bulk_enabled').value = select(props.storeName).getEnabled() ? 1 : 0;\n getElementByName('future_action_bulk_action').value = select(props.storeName).getAction();\n getElementByName('future_action_bulk_new_status').value = select(props.storeName).getNewStatus();\n getElementByName('future_action_bulk_date').value = select(props.storeName).getDate();\n getElementByName('future_action_bulk_terms').value = select(props.storeName).getTerms().join(',');\n getElementByName('future_action_bulk_taxonomy').value = select(props.storeName).getTaxonomy();\n }\n\n const date = useSelect((select) => select(props.storeName).getDate(), []);\n const enabled = useSelect((select) => select(props.storeName).getEnabled(), []);\n const action = useSelect((select) => select(props.storeName).getAction(), []);\n const newStatus = useSelect((select) => select(props.storeName).getNewStatus(), []);\n const terms = useSelect((select) => select(props.storeName).getTerms(), []);\n const taxonomy = useSelect((select) => select(props.storeName).getTaxonomy(), []);\n const changeAction = useSelect((select) => select(props.storeName).getChangeAction(), []);\n const hasValidData = useSelect((select) => select(props.storeName).getHasValidData(), []);\n\n const {\n setChangeAction\n } = useDispatch(props.storeName);\n\n let termsString = terms;\n if (typeof terms === 'object') {\n termsString = terms.join(',');\n }\n\n const handleStrategyChange = (value) => {\n setChangeAction(value);\n };\n\n const options = [\n { value: 'no-change', label: props.strings.noChange },\n { value: 'change-add', label: props.strings.changeAdd },\n { value: 'add-only', label: props.strings.addOnly },\n { value: 'change-only', label: props.strings.changeOnly },\n { value: 'remove-only', label: props.strings.removeOnly },\n ];\n\n const optionsToDisplayPanel = ['change-add', 'add-only', 'change-only'];\n\n useEffect(() => {\n // We are not using onDataIsValid and onDataIsInvalid because we need to enable/disable the button\n // also based on the changeAction value.\n if (hasValidData || changeAction === 'no-change') {\n jQuery('#bulk_edit').prop('disabled', false);\n } else {\n jQuery('#bulk_edit').prop('disabled', true);\n }\n }, [hasValidData, changeAction]);\n\n return (\n
\n \n\n {optionsToDisplayPanel.includes(changeAction) && (\n \n )}\n\n {/* Bulk edit JS code will save only fields with name inside the edit row */}\n \n \n \n \n \n \n \n \n
\n );\n};\n","import { FutureActionPanel } from \"./\";\nimport { select, useSelect } from \"@wordpress/data\";\nimport { useEffect } from \"@wordpress/element\";\n\nexport const FutureActionPanelClassicEditor = (props) => {\n const browserTimezoneOffset = new Date().getTimezoneOffset();\n\n const getElementByName = (name) => {\n return document.getElementsByName(name)[0];\n }\n\n const onChangeData = (attribute, value) => {\n const store = select(props.storeName);\n\n getElementByName('future_action_enabled').value = store.getEnabled() ? 1 : 0;\n getElementByName('future_action_action').value = store.getAction();\n getElementByName('future_action_new_status').value = store.getNewStatus();\n getElementByName('future_action_date').value = store.getDate();\n getElementByName('future_action_terms').value = store.getTerms().join(',');\n getElementByName('future_action_taxonomy').value = store.getTaxonomy();\n }\n\n const getTermsFromElementByName = (name) => {\n const element = getElementByName(name);\n if (!element) {\n return [];\n }\n\n let terms = element.value.split(',');\n\n if (terms.length === 1 && terms[0] === '') {\n terms = [];\n }\n\n return terms.map(term => parseInt(term));\n }\n\n const getElementValueByName = (name) => {\n const element = getElementByName(name);\n if (!element) {\n return '';\n }\n\n return element.value;\n }\n\n const data = {\n enabled: getElementValueByName('future_action_enabled') === '1',\n action: getElementValueByName('future_action_action'),\n newStatus: getElementValueByName('future_action_new_status'),\n date: getElementValueByName('future_action_date'),\n terms: getTermsFromElementByName('future_action_terms'),\n taxonomy: getElementValueByName('future_action_taxonomy'),\n };\n\n const onDataIsValid = () => {\n jQuery('#publish').prop('disabled', false);\n }\n\n const onDataIsInvalid = () => {\n jQuery('#publish').prop('disabled', true);\n }\n\n return (\n
\n \n
\n );\n};\n","import { FutureActionPanel } from './';\nimport { useSelect, select } from '@wordpress/data';\nimport { useEffect } from '@wordpress/element';\n\nexport const FutureActionPanelQuickEdit = (props) => {\n const onChangeData = (attribute, value) => {};\n\n const date = useSelect((select) => select(props.storeName).getDate(), []);\n const enabled = useSelect((select) => select(props.storeName).getEnabled(), []);\n const action = useSelect((select) => select(props.storeName).getAction(), []);\n const terms = useSelect((select) => select(props.storeName).getTerms(), []);\n const taxonomy = useSelect((select) => select(props.storeName).getTaxonomy(), []);\n const hasValidData = useSelect((select) => select(props.storeName).getHasValidData(), []);\n const newStatus = useSelect((select) => select(props.storeName).getNewStatus(), []);\n\n let termsString = terms;\n if (typeof terms === 'object') {\n termsString = terms.join(',');\n }\n\n const onDataIsValid = () => {\n jQuery('.button-primary.save').prop('disabled', false);\n }\n\n const onDataIsInvalid = () => {\n jQuery('.button-primary.save').prop('disabled', true);\n }\n\n return (\n
\n \n\n {/* Quick edit JS code will save only fields with name inside the edit row */}\n \n \n \n \n \n \n \n \n
\n );\n};\n","import { Slot, Fill } from '@wordpress/components';\n\nexport const FutureActionPanelTop = ({ children }) => (\n \n {children}\n \n);\n\nconst FutureActionPanelTopSlot = (props) => (\n \n);\n\nFutureActionPanelTop.Slot = FutureActionPanelTopSlot;\n\nexport default FutureActionPanelTop;\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const NonceControl = function (props) {\n if (! props.name) {\n props.name = '_wpnonce';\n }\n\n if (! props.referrer) {\n props.referrer = true;\n }\n\n return (\n \n \n\n {props.referrer &&\n \n }\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nimport {\n SettingRow,\n SettingsFieldset,\n SettingsTable,\n SelectControl,\n TextControl,\n TokensControl,\n CheckboxControl\n} from './';\nimport { useEffect, useState, Fragment, useRef } from '@wordpress/element';\nimport { addQueryArgs } from '@wordpress/url';\nimport { applyFilters } from '@wordpress/hooks';\nimport { apiFetch } from '&wp';\n\nconst { PanelRow, BaseControl } = wp.components;\n\nexport const PostTypeSettingsPanel = function (props) {\n const originalExpireTypeList = props.expireTypeList[props.postType];\n\n const [postTypeTaxonomy, setPostTypeTaxonomy] = useState(props.settings.taxonomy);\n const [termOptions, setTermOptions] = useState([]);\n const [termsSelectIsLoading, setTermsSelectIsLoading] = useState(false);\n const [selectedTerms, setSelectedTerms] = useState([]);\n const [settingHowToExpire, setSettingHowToExpire] = useState(props.settings.howToExpire);\n const [isActive, setIsActive] = useState(props.settings.active);\n const [expireOffset, setExpireOffset] = useState(props.settings.defaultExpireOffset);\n const [emailNotification, setEmailNotification] = useState(props.settings.emailNotification);\n const [isAutoEnabled, setIsAutoEnabled] = useState(props.settings.autoEnabled);\n const [hasValidData, setHasValidData] = useState(false);\n const [validationError, setValidationError] = useState('');\n const [taxonomyLabel, setTaxonomyLabel] = useState('');\n const [howToExpireList, setHowToExpireList] = useState(originalExpireTypeList);\n const [newStatus, setNewStatus] = useState(props.settings.newStatus);\n const [hasPendingValidation, setHasPendingValidation] = useState(false);\n const [offsetPreview, setOffsetPreview] = useState('');\n const [currentTime, setCurrentTime] = useState();\n const apiRequestControllerRef = useRef(new AbortController());\n\n const taxonomyRelatedActions = [\n 'category',\n 'category-add',\n 'category-remove',\n 'category-remove-all'\n ];\n\n const onChangeTaxonomy = function (value) {\n setPostTypeTaxonomy(value);\n };\n\n const onChangeTerms = (value) => {\n setSelectedTerms(value);\n };\n\n const onChangeHowToExpire = (value) => {\n setSettingHowToExpire(value);\n }\n\n const onChangeActive = (value) => {\n setIsActive(value);\n }\n\n const onChangeExpireOffset = (value) => {\n setExpireOffset(value);\n }\n\n const onChangeEmailNotification = (value) => {\n setEmailNotification(value);\n }\n\n const onChangeAutoEnabled = (value) => {\n setIsAutoEnabled(value);\n }\n\n const validateData = () => {\n if (! isActive) {\n setValidationError('');\n return true;\n }\n\n const offset = expireOffset ? expireOffset : props.settings.globalDefaultExpireOffset;\n\n if (offset) {\n const controller = apiRequestControllerRef.current;\n\n if (controller) {\n controller.abort();\n }\n\n apiRequestControllerRef.current = new AbortController();\n const { signal } = apiRequestControllerRef.current;\n\n setHasPendingValidation(true);\n\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/settings/validate-expire-offset`),\n method: 'POST',\n data: {\n offset\n },\n signal,\n }).then((result) => {\n setHasPendingValidation(false);\n\n setHasValidData(result.isValid);\n setValidationError(result.message);\n\n if (result.isValid) {\n setOffsetPreview(result.preview);\n setCurrentTime(result.currentTime);\n } else {\n setOffsetPreview('');\n }\n }).catch((error) => {\n if (error.name === 'AbortError') {\n return;\n }\n\n setHasPendingValidation(false);\n setHasValidData(false);\n setValidationError(error.message);\n setOffsetPreview('');\n });\n }\n\n setValidationError('');\n return true;\n }\n\n useEffect(() => {\n // Remove items from expireTypeList if related to taxonomies and there is no taxonmoy for the post type\n if (props.taxonomiesList.length === 0) {\n let newExpireTypeList = [];\n\n newExpireTypeList = howToExpireList.filter((item) => {\n return taxonomyRelatedActions.indexOf(item.value) === -1;\n });\n\n setHowToExpireList(newExpireTypeList);\n }\n }, []);\n\n useEffect(() => {\n if (!postTypeTaxonomy || !props.taxonomiesList) {\n return;\n }\n\n setTermsSelectIsLoading(true);\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/terms/${postTypeTaxonomy}`),\n }).then((result) => {\n let options = [];\n\n let settingsTermsOptions = null;\n let option;\n\n result.terms.forEach(term => {\n option = { value: term.id, label: term.name };\n options.push(option);\n\n if (postTypeTaxonomy === props.settings.taxonomy && props.settings.terms.includes(term.id)) {\n if (settingsTermsOptions === null) {\n settingsTermsOptions = [];\n }\n\n settingsTermsOptions.push(option.label);\n }\n });\n\n setTermOptions(options);\n setSelectedTerms(settingsTermsOptions);\n setTermsSelectIsLoading(false);\n });\n\n props.taxonomiesList.forEach((taxonomy) => {\n if (taxonomy.value === postTypeTaxonomy) {\n setTaxonomyLabel(taxonomy.label);\n }\n });\n }, [postTypeTaxonomy]);\n\n useEffect(() => {\n setHasValidData(validateData());\n }, [isActive, expireOffset]);\n\n useEffect(() => {\n if (!taxonomyLabel) {\n return;\n }\n\n // Update the list of actions replacing the taxonomy name.\n let newExpireTypeList = [];\n\n originalExpireTypeList.forEach((expireType) => {\n let label = expireType.label;\n\n if (taxonomyRelatedActions.indexOf(expireType.value) !== -1) {\n label = label.replace('%s', taxonomyLabel.toLowerCase());\n }\n\n newExpireTypeList.push({\n value: expireType.value,\n label: label\n });\n });\n\n setHowToExpireList(newExpireTypeList);\n }, [taxonomyLabel]);\n\n useEffect(() => {\n if (hasValidData && props.onDataIsValid) {\n props.onDataIsValid(props.postType);\n }\n\n if (!hasValidData && props.onDataIsInvalid) {\n props.onDataIsInvalid(props.postType);\n }\n }, [hasValidData]);\n\n useEffect(() => {\n if (hasPendingValidation && props.onValidationStarted) {\n props.onValidationStarted(props.postType);\n }\n\n if (!hasPendingValidation && props.onValidationFinished) {\n props.onValidationFinished(props.postType);\n }\n }, [hasPendingValidation]);\n\n const termOptionsLabels = termOptions.map((term) => term.label);\n\n let settingsRows = [\n \n \n \n ];\n\n if (isActive) {\n settingsRows.push(\n \n \n \n );\n\n settingsRows.push(\n \n \n \n \n );\n\n settingsRows.push(\n \n \n\n {settingHowToExpire === 'change-status' &&\n \n }\n\n {(props.taxonomiesList.length > 0 && (['category', 'category-add', 'category-remove'].indexOf(settingHowToExpire) > -1)) &&\n \n }\n \n );\n\n settingsRows.push(\n \n \n\n {offsetPreview && (\n \n

{props.text.datePreview}

\n
\n
\n {props.text.datePreviewCurrent}: \n {currentTime}\n
\n
\n {props.text.datePreviewComputed}: \n {offsetPreview}\n
\n
\n
\n )}\n
\n );\n\n settingsRows.push(\n \n \n \n );\n }\n\n settingsRows = applyFilters('expirationdate_settings_posttype', settingsRows, props, isActive, useState);\n\n return (\n \n \n\n {! hasValidData && (\n \n
\n {props.text.error}: {validationError}\n
\n
\n )}\n
\n );\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nimport { PostTypeSettingsPanel } from \"./\";\n\nexport const PostTypesSettingsPanels = function (props) {\n let panels = [];\n\n for (const [postType, postTypeSettings] of Object.entries(props.settings)) {\n panels.push(\n \n );\n }\n\n return (panels);\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\nimport { SelectControl as WPSelectControl } from \"@wordpress/components\";\n\nexport const SelectControl = function (props) {\n const onChange = (value) => {\n props.onChange(value);\n };\n\n return (\n \n {props.options.length === 0 && (\n
{props.noItemFoundMessage}
\n )}\n\n {props.options.length > 0 && (\n \n )}\n\n {props.children}\n\n

{props.description}

\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const SettingRow = function (props) {\n return (\n \n \n \n \n \n {props.children}\n \n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsFieldset = function (props) {\n return (\n
\n {props.legend}\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsForm = function (props) {\n return (\n
\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const SettingsSection = function (props) {\n return (\n \n

{props.title}

\n

{props.description}

\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsTable = function (props) {\n return (\n \n \n {props.bodyChildren}\n \n
\n )\n}\n","/*\n * Copyright (c) 2024. PublishPress, All rights reserved.\n */\nexport const Spinner = function (props) {\n return (\n
\n );\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SubmitButton = function (props) {\n return (\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\nimport { TextControl as WPTextControl } from \"@wordpress/components\";\nimport { Spinner } from \"./\";\n\nexport const TextControl = function (props) {\n let description;\n\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n\n const onChange = function (value) {\n if (props.onChange) {\n props.onChange(value);\n }\n };\n\n let className = props.className ? props.className : '';\n\n if (props.loading) {\n className += ' publishpress-future-loading publishpress-future-loading-input';\n }\n\n return (\n \n
\n \n\n {props.loading && }\n\n {description}\n
\n
\n )\n}\n","import { Button } from '@wordpress/components';\n\nexport const ToggleArrowButton = function (props) {\n const onClick = function () {\n if (props.onClick) {\n props.onClick();\n }\n };\n\n const iconExpanded = props.iconExpanded ? props.iconExpanded : 'arrow-up-alt2';\n const iconCollapsed = props.iconCollapsed ? props.iconCollapsed : 'arrow-down-alt2';\n\n const icon = props.isExpanded ? iconExpanded : iconCollapsed;\n\n const title = props.isExpanded ? props.titleExpanded : props.titleCollapsed;\n\n return (\n \n )\n}\n","import { ToggleArrowButton } from \"./ToggleArrowButton\";\nimport { DateTimePicker } from \"./DateTimePicker\";\nimport { Fragment, useEffect } from \"@wordpress/element\";\n\nexport const ToggleCalendarDatePicker = (\n {\n isExpanded,\n strings,\n onToggleCalendar,\n currentDate,\n onChangeDate,\n is12Hour,\n startOfWeek\n }\n) => {\n useEffect(() => {\n // Move the element of the toggle button to between the time and date elements.\n const toggleButtonElement = document.querySelector('.future-action-calendar-toggle');\n\n if (! toggleButtonElement) {\n return;\n }\n\n const dateTimeElement = toggleButtonElement.nextElementSibling;\n\n if (! dateTimeElement) {\n return;\n }\n\n const timeElement = dateTimeElement.querySelector('.components-datetime__time');\n\n if (! timeElement) {\n return;\n }\n\n const dateElement = timeElement.nextSibling;\n\n if (! dateElement) {\n return;\n }\n\n dateTimeElement.insertBefore(toggleButtonElement, dateElement)\n });\n\n return (\n \n \n\n \n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment, useState, useEffect } from \"@wordpress/element\";\nimport { FormTokenField } from \"@wordpress/components\";\n\nexport const TokensControl = (props) => {\n const [stringValue, setStringValue] = useState('');\n\n useEffect(() => {\n if (props.value) {\n setStringValue(props.value.join(','));\n }\n }, [props.value]);\n\n let description;\n\n if (props.description) {\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n }\n\n const onChange = (value) => {\n if (props.onChange) {\n props.onChange(value);\n }\n\n if (typeof value === 'object') {\n setStringValue(value.join(','));\n } else {\n setStringValue('');\n }\n }\n\n const value = props.value ? props.value : [];\n \n return (\n \n \n \n\n {description}\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const TrueFalseControl = function (props) {\n const { Fragment } = wp.element;\n\n const onChange = (e) => {\n if (props.onChange) {\n props.onChange(\n e.target.value === props.trueValue && jQuery(e.target).is(':checked')\n );\n // Check only the true radio... using the field name? or directly the ID\n }\n };\n\n return (\n \n \n\n \n   \n \n {props.falseLabel}\n\n

{props.description}

\n
\n )\n}\n","export { ButtonsPanel } from \"./ButtonsPanel\";\nexport { FutureActionPanel } from \"./FutureActionPanel\";\nexport { FutureActionPanelBlockEditor } from \"./FutureActionPanelBlockEditor\";\nexport { FutureActionPanelClassicEditor } from \"./FutureActionPanelClassicEditor\";\nexport { FutureActionPanelQuickEdit } from \"./FutureActionPanelQuickEdit\";\nexport { FutureActionPanelBulkEdit } from \"./FutureActionPanelBulkEdit\";\nexport { PostTypeSettingsPanel } from \"./PostTypeSettingsPanel\";\nexport { PostTypesSettingsPanels } from \"./PostTypesSettingsPanels\";\nexport { SettingRow } from \"./SettingRow\";\nexport { SettingsFieldset } from \"./SettingsFieldset\";\nexport { SettingsForm } from \"./SettingsForm\";\nexport { SettingsSection } from \"./SettingsSection\";\nexport { SettingsTable } from \"./SettingsTable\";\nexport { SubmitButton } from \"./SubmitButton\";\nexport { CheckboxControl } from \"./CheckboxControl\";\nexport { SelectControl } from \"./SelectControl\";\nexport { TextControl } from \"./TextControl\";\nexport { TokensControl } from \"./TokensControl\";\nexport { NonceControl } from \"./NonceControl\";\nexport { TrueFalseControl } from \"./TrueFalseControl\";\nexport { Spinner } from \"./Spinner\";\n","import { formatUnixTimeToTimestamp, getCurrentTimeAsTimestamp, normalizeUnixTimeToSeconds } from './time';\nimport { isNumber } from './utils';\nimport { register, createReduxStore } from '@wordpress/data';\n\nexport const createStore = (props) => {\n if (props.defaultState.terms && typeof props.defaultState.terms === 'string') {\n props.defaultState.terms = props.defaultState.terms.split(',').map(term => parseInt(term));\n }\n\n let defaultState = {\n action: props.defaultState.action,\n date: props.defaultState.date ? props.defaultState.date : getCurrentTimeAsTimestamp(),\n enabled: props.defaultState.autoEnable,\n terms: props.defaultState.terms ? props.defaultState.terms : [],\n taxonomy: props.defaultState.taxonomy ? props.defaultState.taxonomy : null,\n newStatus: props.defaultState.newStatus ? props.defaultState.newStatus : 'draft',\n termsListByName: null,\n termsListById: null,\n taxonomyName: null,\n isFetchingTerms: false,\n changeAction: 'no-change',\n calendarIsVisible: true,\n hasValidData: true,\n extraData: props.defaultState.extraData ? props.defaultState.extraData : {},\n }\n\n const store = createReduxStore(props.name, {\n reducer(state = defaultState, action) {\n switch (action.type) {\n case 'SET_ACTION':\n return {\n ...state,\n action: action.action,\n };\n case 'SET_NEW_STATUS':\n return {\n ...state,\n newStatus: action.newStatus,\n };\n case 'SET_DATE':\n // Make sure the date is a number, if it is a string with only numbers\n if (typeof action.date !== 'number' && isNumber(action.date)) {\n action.date = parseInt(action.date);\n }\n\n // If string, convert to unix time\n if (typeof action.date === 'string') {\n action.date = new Date(action.date).getTime();\n }\n\n // Make sure the time is always in seconds\n action.date = normalizeUnixTimeToSeconds(action.date);\n\n // Convert to formated string format, considering it is in the site's timezone\n action.date = formatUnixTimeToTimestamp(action.date);\n\n return {\n ...state,\n date: action.date,\n }\n case 'SET_ENABLED':\n return {\n ...state,\n enabled: action.enabled,\n }\n case 'SET_TERMS':\n return {\n ...state,\n terms: action.terms,\n }\n case 'SET_TAXONOMY':\n return {\n ...state,\n taxonomy: action.taxonomy,\n }\n case 'SET_TERMS_LIST_BY_NAME':\n return {\n ...state,\n termsListByName: action.termsListByName,\n }\n case 'SET_TERMS_LIST_BY_ID':\n return {\n ...state,\n termsListById: action.termsListById,\n }\n case 'SET_TAXONOMY_NAME':\n return {\n ...state,\n taxonomyName: action.taxonomyName,\n }\n case 'SET_CHANGE_ACTION':\n return {\n ...state,\n changeAction: action.changeAction,\n }\n case 'SET_CALENDAR_IS_VISIBLE':\n return {\n ...state,\n calendarIsVisible: action.calendarIsVisible,\n }\n case 'SET_HAS_VALID_DATA':\n return {\n ...state,\n hasValidData: action.hasValidData,\n }\n\n case 'SET_EXTRA_DATA':\n return {\n ...state,\n extraData: {\n ...action.extraData,\n }\n }\n\n case 'SET_EXTRA_DATA_BY_NAME':\n const extraData = {\n ...state.extraData,\n [action.name]: action.value\n };\n\n return {\n ...state,\n extraData: {...extraData}\n }\n }\n\n return state;\n },\n actions: {\n setAction(action) {\n return {\n type: 'SET_ACTION',\n action: action\n };\n },\n setNewStatus(newStatus) {\n return {\n type: 'SET_NEW_STATUS',\n newStatus: newStatus\n };\n },\n setDate(date) {\n return {\n type: 'SET_DATE',\n date: date\n };\n },\n setEnabled(enabled) {\n return {\n type: 'SET_ENABLED',\n enabled: enabled\n };\n },\n setTerms(terms) {\n return {\n type: 'SET_TERMS',\n terms: terms\n };\n },\n setTaxonomy(taxonomy) {\n return {\n type: 'SET_TAXONOMY',\n taxonomy: taxonomy\n };\n },\n setTermsListByName(termsListByName) {\n return {\n type: 'SET_TERMS_LIST_BY_NAME',\n termsListByName: termsListByName\n };\n },\n setTermsListById(termsListById) {\n return {\n type: 'SET_TERMS_LIST_BY_ID',\n termsListById: termsListById\n };\n },\n setTaxonomyName(taxonomyName) {\n return {\n type: 'SET_TAXONOMY_NAME',\n taxonomyName: taxonomyName\n };\n },\n setIsFetchingTerms(isFetchingTerms) {\n return {\n type: 'SET_IS_FETCHING_TERMS',\n isFetchingTerms: isFetchingTerms\n }\n },\n setChangeAction(changeAction) {\n return {\n type: 'SET_CHANGE_ACTION',\n changeAction: changeAction\n }\n },\n setCalendarIsVisible(calendarIsVisible) {\n return {\n type: 'SET_CALENDAR_IS_VISIBLE',\n calendarIsVisible: calendarIsVisible\n }\n },\n setHasValidData(hasValidData) {\n return {\n type: 'SET_HAS_VALID_DATA',\n hasValidData: hasValidData\n }\n },\n setExtraData(extraData) {\n return {\n type: 'SET_EXTRA_DATA',\n extraData: extraData\n }\n },\n setExtraDataByName(name, value) {\n return {\n type: 'SET_EXTRA_DATA_BY_NAME',\n name: name,\n value: value\n }\n }\n },\n selectors: {\n getAction(state) {\n return state.action;\n },\n getNewStatus(state) {\n return state.newStatus;\n },\n getDate(state) {\n return state.date;\n },\n getEnabled(state) {\n return state.enabled;\n },\n getTerms(state) {\n return state.terms;\n },\n getTaxonomy(state) {\n return state.taxonomy;\n },\n getTermsListByName(state) {\n return state.termsListByName;\n },\n getTermsListById(state) {\n return state.termsListById;\n },\n getTaxonomyName(state) {\n return state.taxonomyName;\n },\n getIsFetchingTerms(state) {\n return state.isFetchingTerms;\n },\n getChangeAction(state) {\n return state.changeAction;\n },\n getCalendarIsVisible(state) {\n return state.calendarIsVisible;\n },\n getHasValidData(state) {\n return state.hasValidData;\n },\n getExtraData(state) {\n return state.extraData;\n },\n getExtraDataByName(state, name) {\n return state.extraData[name] || null;\n }\n }\n });\n\n register(store);\n\n return store;\n}\n","export const getCurrentTimeInSeconds = () => {\n return normalizeUnixTimeToSeconds(new Date().getTime());\n}\n\nexport const getCurrentTimeAsTimestamp = () => {\n return formatUnixTimeToTimestamp(getCurrentTimeInSeconds());\n}\n\nexport const formatUnixTimeToTimestamp = (unixTimestamp) => {\n const date = new Date(\n normalizeUnixTimeToSeconds(unixTimestamp)\n );\n\n const year = date.getFullYear();\n const month = (\"0\" + (date.getMonth() + 1)).slice(-2); // Months are zero-based\n const day = (\"0\" + date.getDate()).slice(-2);\n const hours = (\"0\" + date.getHours()).slice(-2);\n const minutes = (\"0\" + date.getMinutes()).slice(-2);\n const seconds = (\"0\" + date.getSeconds()).slice(-2);\n\n return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;\n}\n\nexport const formatTimestampToUnixTime = (time) => {\n const date = new Date(time);\n\n return normalizeUnixTimeToSeconds(date.getTime());\n}\n\nexport const timeIsInSeconds = (time) => {\n return parseInt(time).toString().length <= 10;\n}\n\nexport const normalizeUnixTimeToSeconds = (time) => {\n time = parseInt(time);\n\n return timeIsInSeconds() ? time : time / 1000;\n}\n\nexport const normalizeUnixTimeToMilliseconds = (time) => {\n time = parseInt(time);\n\n return timeIsInSeconds() ? time * 1000 : time;\n}\n","export const compact = (array) => {\n if (!array) {\n return [];\n }\n\n if (! Array.isArray(array) && typeof array === 'object') {\n array = Object.values(array);\n }\n\n return array.filter((item) => {\n return item !== null && item !== undefined && item !== '';\n });\n}\n\nexport const debugLogFactory = (config) => {\n return (description, ...message) => {\n if (console && config.isDebugEnabled) {\n console.debug('[Future]', description, ...message);\n }\n }\n}\n\nexport const isGutenbergEnabled = () => {\n return document.body.classList.contains('block-editor-page');\n}\n\nexport const getElementByName = (name) => {\n return document.getElementsByName(name)[0];\n}\n\nexport const getFieldByName = (name, postId) => {\n return document.querySelector(`#the-list tr#post-${postId} .column-expirationdate input#future_action_${name}-${postId}`);\n}\n\nexport const getFieldValueByName = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field) {\n return null;\n }\n\n return field.value;\n};\n\nexport const getFieldValueByNameAsArrayOfInt = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field || !field.value) {\n return [];\n }\n\n if (typeof field.value === 'number') {\n field.value = field.value.toString();\n }\n\n return field.value.split(',').map(term => parseInt(term));\n};\n\nexport const getFieldValueByNameAsBool = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field) {\n return false;\n }\n\n return field.value === '1' || field.value === 'true';\n}\n\nexport const getActionSettingsFromColumnData = (postId) => {\n const columnData = document.querySelector(`#post-expire-column-${postId}`);\n\n if (!columnData) {\n return {};\n }\n\n return {\n enabled: columnData.dataset.actionEnabled === '1',\n action: columnData.dataset.actionType,\n date: columnData.dataset.actionDate,\n dateUnix: columnData.dataset.actionDateUnix,\n taxonomy: columnData.dataset.actionTaxonomy,\n terms: columnData.dataset.actionTerms,\n newStatus: columnData.dataset.actionNewStatus,\n };\n}\n\n/**\n * This function is used to determine if a value is a number, including strings.\n *\n * @param {*} value\n * @returns\n */\nexport const isNumber = (value) => {\n return !isNaN(value);\n}\n","module.exports = publishpressFutureQuickEditConfig;","module.exports = window;","module.exports = wp;","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.element;","module.exports = wp.hooks;","module.exports = wp.plugins;","module.exports = wp.url;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","import { FutureActionPanelQuickEdit } from './components';\nimport { createStore } from './data';\nimport { getActionSettingsFromColumnData } from './utils';\nimport { createRoot } from '@wordpress/element';\nimport { select, dispatch } from '@wordpress/data';\nimport { inlineEditPost } from \"&window\";\nimport {\n postType,\n isNewPost,\n actionsSelectOptions,\n is12Hour,\n timeFormat,\n startOfWeek,\n strings,\n taxonomyName,\n nonce,\n statusesSelectOptions\n} from \"&config.quick-edit\";\n\nconst storeName = 'publishpress-future/future-action-quick-edit';\nconst delayToUnmountAfterSaving = 1000;\n\n// We create a copy of the WP inline edit post function\nconst wpInlineEdit = inlineEditPost.edit;\nconst wpInlineEditRevert = inlineEditPost.revert;\n\nconst getPostIdFromButton = (id) => {\n // If id is a string or a number, return it directly\n if (typeof id === 'string' || typeof id === 'number') {\n return id;\n }\n\n // Otherwise, assume it's an HTML element and extract the post ID\n const trElement = id.closest('tr');\n const trId = trElement.id;\n const postId = trId.split('-')[1];\n\n return postId;\n}\n\n/**\n * We override the function with our own code so we can detect when\n * the inline edit row is displayed to recreate the React component.\n */\ninlineEditPost.edit = function (button, id) {\n // Call the original WP edit function.\n wpInlineEdit.apply(this, arguments);\n\n const postId = getPostIdFromButton(button);\n const data = getActionSettingsFromColumnData(postId);\n\n if (!data) {\n return;\n }\n\n const enabled = data.enabled;\n const action = data.action;\n const date = data.date;\n const taxonomy = data.taxonomy;\n const newStatus = data.newStatus;\n\n let terms = data.terms;\n\n if (typeof terms === 'string'){\n terms = terms.split(',');\n }\n\n // if store exists, update the state. Otherwise, create it.\n if (select(storeName)) {\n dispatch(storeName).setEnabled(enabled);\n dispatch(storeName).setAction(action);\n dispatch(storeName).setDate(date);\n dispatch(storeName).setTaxonomy(taxonomy);\n dispatch(storeName).setTerms(terms);\n dispatch(storeName).setNewStatus(newStatus);\n } else {\n createStore({\n name: storeName,\n defaultState: {\n autoEnable: enabled,\n action: action,\n date: date,\n taxonomy: taxonomy,\n terms: terms,\n newStatus: newStatus,\n }\n });\n }\n\n const container = document.getElementById(\"publishpress-future-quick-edit\");\n if (!container) {\n return;\n }\n const root = createRoot(container);\n\n const saveButton = document.querySelector('.inline-edit-save .save');\n if (saveButton) {\n saveButton.onclick = function() {\n setTimeout(() => {\n root.unmount();\n }, delayToUnmountAfterSaving);\n };\n }\n\n const component = (\n \n );\n\n root.render(component);\n\n inlineEditPost.revert = function () {\n root.unmount();\n\n // Call the original WP revert function.\n wpInlineEditRevert.apply(this, arguments);\n };\n};\n"],"names":["ButtonsPanel","props","children","CheckboxControl","description","useState","checked","setChecked","unescapedDescription","className","dangerouslySetInnerHTML","__html","Fragment","label","name","id","onChange","value","DateTimePicker","currentDate","is12Hour","startOfWeek","normalizeUnixTimeToMilliseconds","__nextRemoveHelpButton","wp","components","PanelRow","SelectControl","FormTokenField","Spinner","BaseControl","element","useEffect","decodeEntities","htmlEntities","addQueryArgs","url","data","useSelect","useDispatch","apiFetch","FutureActionPanel","action","select","storeName","getAction","date","getDate","enabled","getEnabled","terms","getTerms","taxonomy","getTaxonomy","taxonomyName","getTaxonomyName","termsListByName","getTermsListByName","termsListById","getTermsListById","isFetchingTerms","getIsFetchingTerms","calendarIsVisible","getCalendarIsVisible","hasValidData","getHasValidData","newStatus","getNewStatus","validationError","setValidationError","setAction","setDate","setEnabled","setTerms","setTaxonomy","setTermsListByName","setTermsListById","setTaxonomyName","setIsFetchingTerms","setCalendarIsVisible","setHasValidData","setNewStatus","insertTerm","term","count","link","slug","callOnChangeData","attribute","onChangeData","handleEnabledChange","isChecked","fetchTerms","path","then","result","forEach","getCalendarIsVisibleFromStorage","localStorage","getItem","context","autoEnableAndHideCheckbox","isCleanNewPost","setItem","onDataIsValid","onDataIsInvalid","selectedTerms","length","compact","map","mapTermsListById","termsListByNameKeys","Object","keys","is24hour","panelClass","contentPanelClass","datePanelClass","timeFormat","actionsSelectOptions","filter","item","indexOf","HelpText","string","href","target","parts","split","push","shift","before","after","key","replaceCurlyBracketsWithLink","strings","timezoneSettingsHelp","displayTaxonomyField","String","includes","termsFieldLabel","newTerms","replace","removeTerms","addTerms","valid","errorActionRequired","errorDateRequired","Date","errorDateInPast","isTermRequired","noTermIsSelected","errorTermsRequired","validateData","SlotFillProvider","type","FutureActionPanelTop","Slot","fillProps","enablePostExpiration","options","FutureActionPanelAfterActionField","statusesSelectOptions","loading","noTaxonomyFound","noTermsFound","suggestions","mapTermsListByName","placeholder","addTermsPlaceholder","maxSuggestions","onFocus","e","jQuery","addClass","__experimentalExpandOnFocus","__experimentalAutoSelectFirstMatch","ToggleCalendarDatePicker","onChangeDate","onToggleCalendar","isExpanded","PluginArea","scope","Fill","FutureActionPanelBlockEditor","PluginDocumentSettingPanel","editPost","getEditedPostAttribute","lockPostSaving","unlockPostSaving","title","panelTitle","initialOpen","postTypeDefaultConfig","autoEnable","postType","store","newAttribute","getExtraData","publishpress_future_action","entries","editPostAttribute","FutureActionPanelBulkEdit","changeAction","getChangeAction","setChangeAction","termsString","join","noChange","changeAdd","addOnly","changeOnly","removeOnly","prop","futureActionUpdate","isNewPost","getElementByName","nonce","FutureActionPanelClassicEditor","getTimezoneOffset","document","getElementsByName","getElementValueByName","parseInt","getTermsFromElementByName","FutureActionPanelQuickEdit","NonceControl","referrer","PostTypeSettingsPanel","originalExpireTypeList","expireTypeList","settings","postTypeTaxonomy","setPostTypeTaxonomy","termOptions","setTermOptions","termsSelectIsLoading","setTermsSelectIsLoading","setSelectedTerms","howToExpire","settingHowToExpire","setSettingHowToExpire","active","isActive","setIsActive","defaultExpireOffset","expireOffset","setExpireOffset","emailNotification","setEmailNotification","autoEnabled","isAutoEnabled","setIsAutoEnabled","taxonomyLabel","setTaxonomyLabel","howToExpireList","setHowToExpireList","hasPendingValidation","setHasPendingValidation","offsetPreview","setOffsetPreview","currentTime","setCurrentTime","apiRequestControllerRef","useRef","AbortController","taxonomyRelatedActions","newExpireTypeList","taxonomiesList","settingsTermsOptions","option","offset","globalDefaultExpireOffset","controller","current","abort","signal","method","isValid","message","preview","catch","error","expireType","toLowerCase","onValidationStarted","onValidationFinished","termOptionsLabels","settingsRows","SettingRow","text","fieldActive","fieldActiveLabel","fieldAutoEnable","fieldAutoEnableLabel","fieldTaxonomy","selected","noItemFoundMessage","noItemsfound","fieldTaxonomyDescription","fieldHowToExpire","fieldHowToExpireDescription","statusesList","TokensControl","fieldTerm","isLoading","fieldTermDescription","expandOnFocus","autoSelectFirstMatch","fieldDefaultDateTimeOffset","TextControl","fieldDefaultDateTimeOffsetDescription","datePreview","datePreviewCurrent","datePreviewComputed","fieldWhoToNotify","fieldWhoToNotifyDescription","applyFilters","SettingsFieldset","legend","SettingsTable","bodyChildren","PostTypesSettingsPanels","panels","postTypeSettings","valign","htmlFor","SettingsForm","SettingsSection","SubmitButton","disabled","ToggleArrowButton","iconExpanded","iconCollapsed","icon","titleExpanded","titleCollapsed","Button","isSmall","onClick","toggleButtonElement","querySelector","dateTimeElement","nextElementSibling","timeElement","dateElement","nextSibling","insertBefore","hideCalendar","showCalendar","stringValue","setStringValue","TrueFalseControl","trueValue","is","defaultChecked","trueLabel","falseValue","falseLabel","createStore","defaultState","getCurrentTimeAsTimestamp","extraData","createReduxStore","reducer","state","isNumber","getTime","normalizeUnixTimeToSeconds","formatUnixTimeToTimestamp","actions","setExtraData","setExtraDataByName","selectors","getExtraDataByName","register","getCurrentTimeInSeconds","unixTimestamp","getFullYear","getMonth","slice","getHours","getMinutes","getSeconds","timeIsInSeconds","formatTimestampToUnixTime","time","toString","getFieldByName","array","Array","isArray","values","debugLogFactory","config","console","isDebugEnabled","debug","isGutenbergEnabled","body","classList","contains","postId","getFieldValueByName","field","getFieldValueByNameAsArrayOfInt","getFieldValueByNameAsBool","getActionSettingsFromColumnData","columnData","dataset","actionEnabled","actionType","actionDate","dateUnix","actionDateUnix","actionTaxonomy","actionTerms","actionNewStatus","isNaN","module","exports","publishpressFutureQuickEditConfig","window","hooks","plugins","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","wpInlineEdit","inlineEditPost","edit","wpInlineEditRevert","revert","button","apply","this","arguments","closest","getPostIdFromButton","dispatch","container","getElementById","root","createRoot","saveButton","onclick","setTimeout","unmount","component","render"],"sourceRoot":""} +{"version":3,"file":"quick-edit.js","mappings":"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","sources":["webpack://post-expirator/./assets/jsx/components/ButtonsPanel.jsx","webpack://post-expirator/./assets/jsx/components/CheckboxControl.jsx","webpack://post-expirator/./assets/jsx/components/DateOffsetPreview.jsx","webpack://post-expirator/./assets/jsx/components/DateTimePicker.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanel.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelAfterActionField.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelBlockEditor.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelBulkEdit.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelClassicEditor.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelQuickEdit.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelTop.jsx","webpack://post-expirator/./assets/jsx/components/NonceControl.jsx","webpack://post-expirator/./assets/jsx/components/PostTypeSettingsPanel.jsx","webpack://post-expirator/./assets/jsx/components/PostTypesSettingsPanels.jsx","webpack://post-expirator/./assets/jsx/components/SelectControl.jsx","webpack://post-expirator/./assets/jsx/components/SettingRow.jsx","webpack://post-expirator/./assets/jsx/components/SettingsFieldset.jsx","webpack://post-expirator/./assets/jsx/components/SettingsForm.jsx","webpack://post-expirator/./assets/jsx/components/SettingsSection.jsx","webpack://post-expirator/./assets/jsx/components/SettingsTable.jsx","webpack://post-expirator/./assets/jsx/components/Spinner.jsx","webpack://post-expirator/./assets/jsx/components/SubmitButton.jsx","webpack://post-expirator/./assets/jsx/components/TextControl.jsx","webpack://post-expirator/./assets/jsx/components/ToggleArrowButton.jsx","webpack://post-expirator/./assets/jsx/components/ToggleCalendarDatePicker.jsx","webpack://post-expirator/./assets/jsx/components/TokensControl.jsx","webpack://post-expirator/./assets/jsx/components/TrueFalseControl.jsx","webpack://post-expirator/./assets/jsx/components/index.jsx","webpack://post-expirator/./assets/jsx/data.jsx","webpack://post-expirator/./assets/jsx/time.jsx","webpack://post-expirator/./assets/jsx/utils.jsx","webpack://post-expirator/./assets/jsx/components/css/dateOffsetPreview.css","webpack://post-expirator/./node_modules/css-loader/dist/runtime/api.js","webpack://post-expirator/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://post-expirator/./node_modules/react-dom/client.js","webpack://post-expirator/./assets/jsx/components/css/dateOffsetPreview.css?541a","webpack://post-expirator/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://post-expirator/external var \"ReactDOM\"","webpack://post-expirator/external var \"publishpressFutureQuickEditConfig\"","webpack://post-expirator/external var \"window\"","webpack://post-expirator/external var \"wp\"","webpack://post-expirator/external var \"wp.components\"","webpack://post-expirator/external var \"wp.data\"","webpack://post-expirator/external var \"wp.element\"","webpack://post-expirator/external var \"wp.hooks\"","webpack://post-expirator/external var \"wp.plugins\"","webpack://post-expirator/external var \"wp.url\"","webpack://post-expirator/webpack/bootstrap","webpack://post-expirator/webpack/runtime/compat get default export","webpack://post-expirator/webpack/runtime/define property getters","webpack://post-expirator/webpack/runtime/hasOwnProperty shorthand","webpack://post-expirator/webpack/runtime/make namespace object","webpack://post-expirator/webpack/runtime/nonce","webpack://post-expirator/./assets/jsx/quick-edit.jsx"],"sourcesContent":["/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const ButtonsPanel = function (props) {\n return (\n
\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment, useState } from \"@wordpress/element\";\nimport { CheckboxControl as WPCheckboxControl } from \"@wordpress/components\";\n\nexport const CheckboxControl = function (props) {\n const [checked, setChecked] = useState(props.checked || false);\n\n let description;\n\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n\n const onChange = function (value) {\n setChecked(value);\n\n if (props.onChange) {\n props.onChange(value);\n }\n };\n\n return (\n \n \n\n {description}\n \n )\n}\n","import {\n useState,\n useEffect,\n useRef,\n Fragment\n} from '@wordpress/element';\nimport { addQueryArgs } from '@wordpress/url';\nimport { apiFetch } from '&wp';\n\nrequire('./css/dateOffsetPreview.css');\n\nexport const DateOffsetPreview = ({\n offset,\n label,\n labelDatePreview,\n labelOffsetPreview,\n setValidationErrorCallback,\n setHasPendingValidationCallback,\n setHasValidDataCallback,\n compactView = false\n}) => {\n const [offsetPreview, setOffsetPreview] = useState('');\n const [currentTime, setCurrentTime] = useState();\n\n const apiRequestControllerRef = useRef(new AbortController());\n\n const validateDateOffset = () => {\n if (offset) {\n const controller = apiRequestControllerRef.current;\n\n if (controller) {\n controller.abort();\n }\n\n apiRequestControllerRef.current = new AbortController();\n const { signal } = apiRequestControllerRef.current;\n\n setHasPendingValidationCallback(true);\n\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/settings/validate-expire-offset`),\n method: 'POST',\n data: {\n offset\n },\n signal,\n }).then((result) => {\n setHasPendingValidationCallback(false);\n\n setHasValidDataCallback(result.isValid);\n setValidationErrorCallback(result.message);\n\n if (result.isValid) {\n setOffsetPreview(result.preview);\n setCurrentTime(result.currentTime);\n } else {\n setOffsetPreview('');\n }\n }).catch((error) => {\n if (error.name === 'AbortError') {\n return;\n }\n\n setHasPendingValidationCallback(false);\n setHasValidDataCallback(false);\n setValidationErrorCallback(error.message);\n setOffsetPreview('');\n });\n }\n }\n\n useEffect(() => {\n validateDateOffset();\n }, [offset]);\n\n const compactClass = compactView ? ' compact' : '';\n\n return (\n \n { offset && (\n
\n

{ label }

\n
\n
\n { labelDatePreview }: \n {currentTime}\n
\n
\n { labelOffsetPreview }: \n {offsetPreview}\n
\n
\n
\n )}\n
\n )\n}\n\nexport default DateOffsetPreview;\n","import { normalizeUnixTimeToMilliseconds } from \"../time\";\nimport { DateTimePicker as WPDateTimePicker } from \"@wordpress/components\";\n\n\nexport const DateTimePicker = ({currentDate, onChange, is12Hour, startOfWeek}) => {\n if (typeof currentDate === 'number') {\n currentDate = normalizeUnixTimeToMilliseconds(currentDate);\n }\n\n return (\n \n )\n}\n","import { compact } from '../utils';\nimport { ToggleCalendarDatePicker } from './ToggleCalendarDatePicker';\nimport { PluginArea } from '@wordpress/plugins';\nimport { Fill, Slot, SlotFillProvider } from '@wordpress/components';\nimport { FutureActionPanelAfterActionField } from './FutureActionPanelAfterActionField';\nimport { FutureActionPanelTop } from './FutureActionPanelTop';\n\nconst { PanelRow, CheckboxControl, SelectControl, FormTokenField, Spinner, BaseControl } = wp.components;\nconst { Fragment, useEffect, useState } = wp.element;\nconst { decodeEntities } = wp.htmlEntities;\nconst { addQueryArgs } = wp.url;\nconst {\n useSelect,\n useDispatch\n} = wp.data;\nconst { apiFetch } = wp;\n\nexport const FutureActionPanel = (props) => {\n const {\n action,\n date,\n enabled,\n terms,\n taxonomy,\n taxonomyName,\n termsListByName,\n termsListById,\n isFetchingTerms,\n calendarIsVisible,\n hasValidData,\n newStatus,\n } = useSelect((select) => {\n return {\n action: select(props.storeName).getAction(),\n date: select(props.storeName).getDate(),\n enabled: select(props.storeName).getEnabled(),\n terms: select(props.storeName).getTerms(),\n taxonomy: select(props.storeName).getTaxonomy(),\n taxonomyName: select(props.storeName).getTaxonomyName(),\n termsListByName: select(props.storeName).getTermsListByName(),\n termsListById: select(props.storeName).getTermsListById(),\n isFetchingTerms: select(props.storeName).getIsFetchingTerms(),\n calendarIsVisible: select(props.storeName).getCalendarIsVisible(),\n hasValidData: select(props.storeName).getHasValidData(),\n newStatus: select(props.storeName).getNewStatus(),\n };\n });\n\n const [validationError, setValidationError] = useState('');\n\n const {\n setAction,\n setDate,\n setEnabled,\n setTerms,\n setTaxonomy,\n setTermsListByName,\n setTermsListById,\n setTaxonomyName,\n setIsFetchingTerms,\n setCalendarIsVisible,\n setHasValidData,\n setNewStatus\n } = useDispatch(props.storeName);\n\n const mapTermsListById = (terms) => {\n if (typeof terms !== 'object' || terms === null) {\n return {};\n }\n\n return terms.map((term) => {\n return termsListById[term];\n });\n }\n\n const insertTerm = (term) => {\n termsListByName[term] = { id: term, count: 0, description: \"\", link: \"\", name: term, slug: term, taxonomy: taxonomy };\n termsListById[term] = term;\n setTermsListByName(termsListByName);\n setTermsListById(termsListById);\n setTerms([...terms, term]);\n\n }\n\n const mapTermsListByName = (terms) => {\n if (typeof terms !== 'object' || terms === null) {\n return {};\n }\n\n return terms.map((term) => {\n if (termsListByName[term]) {\n return termsListByName[term].id;\n }\n\n insertTerm(term);\n\n return term;\n });\n }\n\n const callOnChangeData = (attribute, value) => {\n if (typeof props.onChangeData === 'function') {\n props.onChangeData(attribute, value);\n }\n }\n\n const handleEnabledChange = (isChecked) => {\n setEnabled(isChecked);\n\n if (isChecked) {\n setAction(props.action);\n setDate(props.date);\n setNewStatus(props.newStatus);\n setTerms(props.terms);\n setTaxonomy(props.taxonomy);\n\n fetchTerms();\n }\n\n callOnChangeData('enabled', isChecked);\n }\n\n const handleActionChange = (value) => {\n setAction(value);\n\n callOnChangeData('action', value);\n }\n\n const handleNewStatusChange = (value) => {\n setNewStatus(value);\n\n callOnChangeData('newStatus', value);\n }\n\n const handleDateChange = (value) => {\n setDate(value);\n\n callOnChangeData('date', value);\n }\n\n const handleTermsChange = (value) => {\n value = mapTermsListByName(value);\n\n setTerms(value);\n\n callOnChangeData('terms', value);\n }\n\n const fetchTerms = () => {\n let termsListByName = {};\n let termsListById = {};\n\n if (!taxonomy) {\n return;\n }\n\n setIsFetchingTerms(true);\n\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/terms/${taxonomy}`),\n }).then((result) => {\n result.terms.forEach(term => {\n termsListByName[decodeEntities(term.name)] = term;\n termsListById[term.id] = decodeEntities(term.name);\n });\n\n setTermsListByName(termsListByName);\n setTermsListById(termsListById);\n setTaxonomyName(decodeEntities(result.taxonomyName));\n setIsFetchingTerms(false);\n });\n }\n\n const storeCalendarIsVisibleOnStorage = (value) => {\n localStorage.setItem('FUTURE_ACTION_CALENDAR_IS_VISIBLE_' + props.context, value ? '1' : '0');\n }\n\n const getCalendarIsVisibleFromStorage = () => {\n return localStorage.getItem('FUTURE_ACTION_CALENDAR_IS_VISIBLE_' + props.context);\n }\n\n useEffect(() => {\n if (props.autoEnableAndHideCheckbox) {\n setEnabled(true);\n } else {\n setEnabled(props.enabled);\n }\n\n setAction(props.action);\n setNewStatus(props.newStatus);\n setDate(props.date);\n setTerms(props.terms);\n setTaxonomy(props.taxonomy);\n\n if (getCalendarIsVisibleFromStorage() === null) {\n setCalendarIsVisible(props.calendarIsVisible);\n } else {\n setCalendarIsVisible(getCalendarIsVisibleFromStorage() === '1' && ! props.hideCalendarByDefault);\n }\n\n // We need to get the value directly from the props because the value from the store is not updated yet\n if (props.enabled) {\n if (props.isCleanNewPost) {\n // Force populate the default values\n handleEnabledChange(true);\n }\n\n fetchTerms();\n }\n }, []);\n\n useEffect(() => {\n storeCalendarIsVisibleOnStorage(calendarIsVisible);\n }, [calendarIsVisible]);\n\n useEffect(() => {\n if (hasValidData && props.onDataIsValid) {\n props.onDataIsValid();\n }\n\n if (!hasValidData && props.onDataIsInvalid) {\n props.onDataIsInvalid();\n }\n }, [hasValidData]);\n\n let selectedTerms = [];\n if (terms && terms.length > 0 && termsListById) {\n selectedTerms = compact(mapTermsListById(terms));\n\n if (typeof selectedTerms === 'string') {\n selectedTerms = [];\n }\n }\n\n let termsListByNameKeys = [];\n if (typeof termsListByName === 'object' && termsListByName !== null) {\n termsListByNameKeys = Object.keys(termsListByName);\n }\n\n const panelClass = calendarIsVisible ? 'future-action-panel' : 'future-action-panel hidden-calendar';\n const contentPanelClass = calendarIsVisible ? 'future-action-panel-content' : 'future-action-panel-content hidden-calendar';\n const datePanelClass = calendarIsVisible ? 'future-action-date-panel' : 'future-action-date-panel hidden-calendar';\n\n let is24hour;\n if (props.timeFormat === 'inherited') {\n is24hour = !props.is12Hour;\n } else {\n is24hour = props.timeFormat === '24h';\n }\n\n const replaceCurlyBracketsWithLink = (string, href, target) => {\n const parts = string.split('{');\n const result = [];\n\n result.push(parts.shift());\n\n for (const part of parts) {\n const [before, after] = part.split('}');\n\n result.push(\n {before}\n );\n\n result.push(after);\n }\n\n return result;\n };\n\n // Remove items from actions list if related to taxonomies and there is no taxonmoy for the post type\n let actionsSelectOptions = props.actionsSelectOptions;\n if (!props.taxonomy) {\n actionsSelectOptions = props.actionsSelectOptions.filter((item) => {\n return ['category', 'category-add', 'category-remove', 'category-remove-all'].indexOf(item.value) === -1;\n });\n }\n\n const HelpText = replaceCurlyBracketsWithLink(props.strings.timezoneSettingsHelp, '/wp-admin/options-general.php#timezone_string', '_blank');\n const displayTaxonomyField = String(action).includes('category') && action !== 'category-remove-all';\n\n let termsFieldLabel = taxonomyName;\n switch (action) {\n case 'category':\n termsFieldLabel = props.strings.newTerms.replace('%s', taxonomyName);\n break;\n case 'category-remove':\n termsFieldLabel = props.strings.removeTerms.replace('%s', taxonomyName);\n break;\n case 'category-add':\n termsFieldLabel = props.strings.addTerms.replace('%s', taxonomyName);\n break;\n }\n\n const validateData = () => {\n let valid = true;\n\n if (!enabled) {\n setValidationError('');\n return true;\n }\n\n if (!action) {\n setValidationError(props.strings.errorActionRequired);\n valid = false;\n }\n\n if (!date) {\n setValidationError(props.strings.errorDateRequired);\n valid = false;\n }\n\n // Check if the date is in the past\n if (date && new Date(date) < new Date()) {\n setValidationError(props.strings.errorDateInPast);\n valid = false;\n }\n\n const isTermRequired = ['category', 'category-add', 'category-remove'].includes(action);\n const noTermIsSelected = terms.length === 0 || (terms.length === 1 && (terms[0] === '' || terms[0] === '0'));\n\n if (isTermRequired && noTermIsSelected) {\n setValidationError(props.strings.errorTermsRequired);\n valid = false;\n }\n\n if (valid) {\n setValidationError('');\n }\n\n return valid;\n }\n\n useEffect(() => {\n if (!enabled) {\n setHasValidData(true);\n setValidationError('');\n\n return;\n }\n\n setHasValidData(validateData());\n }, [action, date, enabled, terms, taxonomy]);\n\n // This adds a 'cancel' class to the input when the user clicks on the\n // field to prevent the form from being submitted. This is a workaround\n // for the issue on the quick-edit form where the form is submitted when\n // the user presses the 'Enter' key trying to add a term to the field.\n const forceIgnoreAutoSubmitOnEnter = (e) => {\n jQuery(e.target).addClass('cancel');\n }\n\n return (\n \n
\n {props.autoEnableAndHideCheckbox && (\n \n )}\n\n \n\n {!props.autoEnableAndHideCheckbox && (\n \n \n \n )}\n\n {enabled && (\n \n \n \n \n\n \n\n {action === 'change-status' &&\n \n \n \n }\n\n {\n displayTaxonomyField && (\n isFetchingTerms && (\n \n \n {`${props.strings.loading} (${taxonomyName})`}\n \n \n \n )\n || (!taxonomy && (\n \n \n
\n {props.strings.noTaxonomyFound}\n
\n
\n
\n )\n || (\n termsListByNameKeys.length === 0 && (\n \n \n
\n {props.strings.noTermsFound}\n
\n
\n
\n )\n || (\n \n \n \n \n \n )\n )\n )\n )\n }\n\n \n setCalendarIsVisible(!calendarIsVisible)}\n is12Hour={!is24hour}\n startOfWeek={props.startOfWeek}\n isExpanded={calendarIsVisible}\n strings={props.strings}\n />\n \n\n \n
\n
\n\n {HelpText}\n
\n
\n\n {!hasValidData && (\n \n \n
{validationError}
\n
\n
\n )}\n
\n )}\n
\n \n
\n );\n};\n","import { Slot, Fill } from '@wordpress/components';\n\nexport const FutureActionPanelAfterActionField = ({ children }) => (\n \n {children}\n \n);\n\nconst FutureActionPanelAfterActionFieldSlot = (props) => (\n \n);\n\nFutureActionPanelAfterActionField.Slot = FutureActionPanelAfterActionFieldSlot;\n\nexport default FutureActionPanelAfterActionField;\n","import { FutureActionPanel } from './';\n\nexport const FutureActionPanelBlockEditor = (props) => {\n const { PluginDocumentSettingPanel } = wp.editPost;\n const { useDispatch, select } = wp.data;\n\n const { editPost } = useDispatch('core/editor');\n\n const editPostAttribute = (newAttribute) => {\n const attribute = {\n publishpress_future_action: {}\n };\n\n // For each property on newAttribute, set the value on attribute\n for (const [name, value] of Object.entries(newAttribute)) {\n attribute.publishpress_future_action[name] = value;\n }\n\n editPost(attribute);\n }\n\n const onChangeData = (attribute, value) => {\n const store = select(props.storeName);\n\n const newAttribute = {\n 'enabled': store.getEnabled()\n }\n\n if (newAttribute.enabled) {\n newAttribute['action'] = store.getAction();\n newAttribute['newStatus'] = store.getNewStatus();\n newAttribute['date'] = store.getDate();\n newAttribute['terms'] = store.getTerms();\n newAttribute['taxonomy'] = store.getTaxonomy();\n newAttribute['extraData'] = store.getExtraData();\n }\n\n editPostAttribute(newAttribute);\n }\n\n const data = select('core/editor').getEditedPostAttribute('publishpress_future_action');\n\n const { lockPostSaving, unlockPostSaving } = useDispatch('core/editor');\n\n const onDataIsValid = () => {\n unlockPostSaving('future-action');\n }\n\n const onDataIsInvalid = () => {\n lockPostSaving('future-action');\n }\n\n return (\n \n
\n \n
\n \n );\n};\n","import { FutureActionPanel, SelectControl } from '.';\nimport { getElementByName } from '../utils';\n\nexport const FutureActionPanelBulkEdit = (props) => {\n const { useSelect, useDispatch, select } = wp.data;\n const { useEffect } = wp.element;\n\n const onChangeData = (attribute, value) => {\n getElementByName('future_action_bulk_enabled').value = select(props.storeName).getEnabled() ? 1 : 0;\n getElementByName('future_action_bulk_action').value = select(props.storeName).getAction();\n getElementByName('future_action_bulk_new_status').value = select(props.storeName).getNewStatus();\n getElementByName('future_action_bulk_date').value = select(props.storeName).getDate();\n getElementByName('future_action_bulk_terms').value = select(props.storeName).getTerms().join(',');\n getElementByName('future_action_bulk_taxonomy').value = select(props.storeName).getTaxonomy();\n }\n\n const date = useSelect((select) => select(props.storeName).getDate(), []);\n const enabled = useSelect((select) => select(props.storeName).getEnabled(), []);\n const action = useSelect((select) => select(props.storeName).getAction(), []);\n const newStatus = useSelect((select) => select(props.storeName).getNewStatus(), []);\n const terms = useSelect((select) => select(props.storeName).getTerms(), []);\n const taxonomy = useSelect((select) => select(props.storeName).getTaxonomy(), []);\n const changeAction = useSelect((select) => select(props.storeName).getChangeAction(), []);\n const hasValidData = useSelect((select) => select(props.storeName).getHasValidData(), []);\n\n const {\n setChangeAction\n } = useDispatch(props.storeName);\n\n let termsString = terms;\n if (typeof terms === 'object') {\n termsString = terms.join(',');\n }\n\n const handleStrategyChange = (value) => {\n setChangeAction(value);\n };\n\n const options = [\n { value: 'no-change', label: props.strings.noChange },\n { value: 'change-add', label: props.strings.changeAdd },\n { value: 'add-only', label: props.strings.addOnly },\n { value: 'change-only', label: props.strings.changeOnly },\n { value: 'remove-only', label: props.strings.removeOnly },\n ];\n\n const optionsToDisplayPanel = ['change-add', 'add-only', 'change-only'];\n\n useEffect(() => {\n // We are not using onDataIsValid and onDataIsInvalid because we need to enable/disable the button\n // also based on the changeAction value.\n if (hasValidData || changeAction === 'no-change') {\n jQuery('#bulk_edit').prop('disabled', false);\n } else {\n jQuery('#bulk_edit').prop('disabled', true);\n }\n }, [hasValidData, changeAction]);\n\n return (\n
\n \n\n {optionsToDisplayPanel.includes(changeAction) && (\n \n )}\n\n {/* Bulk edit JS code will save only fields with name inside the edit row */}\n \n \n \n \n \n \n \n \n
\n );\n};\n","import { FutureActionPanel } from \"./\";\nimport { select, useSelect } from \"@wordpress/data\";\nimport { useEffect } from \"@wordpress/element\";\n\nexport const FutureActionPanelClassicEditor = (props) => {\n const browserTimezoneOffset = new Date().getTimezoneOffset();\n\n const getElementByName = (name) => {\n return document.getElementsByName(name)[0];\n }\n\n const onChangeData = (attribute, value) => {\n const store = select(props.storeName);\n\n getElementByName('future_action_enabled').value = store.getEnabled() ? 1 : 0;\n getElementByName('future_action_action').value = store.getAction();\n getElementByName('future_action_new_status').value = store.getNewStatus();\n getElementByName('future_action_date').value = store.getDate();\n getElementByName('future_action_terms').value = store.getTerms().join(',');\n getElementByName('future_action_taxonomy').value = store.getTaxonomy();\n }\n\n const getTermsFromElementByName = (name) => {\n const element = getElementByName(name);\n if (!element) {\n return [];\n }\n\n let terms = element.value.split(',');\n\n if (terms.length === 1 && terms[0] === '') {\n terms = [];\n }\n\n return terms.map(term => parseInt(term));\n }\n\n const getElementValueByName = (name) => {\n const element = getElementByName(name);\n if (!element) {\n return '';\n }\n\n return element.value;\n }\n\n const data = {\n enabled: getElementValueByName('future_action_enabled') === '1',\n action: getElementValueByName('future_action_action'),\n newStatus: getElementValueByName('future_action_new_status'),\n date: getElementValueByName('future_action_date'),\n terms: getTermsFromElementByName('future_action_terms'),\n taxonomy: getElementValueByName('future_action_taxonomy'),\n };\n\n const onDataIsValid = () => {\n jQuery('#publish').prop('disabled', false);\n }\n\n const onDataIsInvalid = () => {\n jQuery('#publish').prop('disabled', true);\n }\n\n return (\n
\n \n
\n );\n};\n","import { FutureActionPanel } from './';\nimport { useSelect, select } from '@wordpress/data';\nimport { useEffect } from '@wordpress/element';\n\nexport const FutureActionPanelQuickEdit = (props) => {\n const onChangeData = (attribute, value) => {};\n\n const date = useSelect((select) => select(props.storeName).getDate(), []);\n const enabled = useSelect((select) => select(props.storeName).getEnabled(), []);\n const action = useSelect((select) => select(props.storeName).getAction(), []);\n const terms = useSelect((select) => select(props.storeName).getTerms(), []);\n const taxonomy = useSelect((select) => select(props.storeName).getTaxonomy(), []);\n const hasValidData = useSelect((select) => select(props.storeName).getHasValidData(), []);\n const newStatus = useSelect((select) => select(props.storeName).getNewStatus(), []);\n\n let termsString = terms;\n if (typeof terms === 'object') {\n termsString = terms.join(',');\n }\n\n const onDataIsValid = () => {\n jQuery('.button-primary.save').prop('disabled', false);\n }\n\n const onDataIsInvalid = () => {\n jQuery('.button-primary.save').prop('disabled', true);\n }\n\n return (\n
\n \n\n {/* Quick edit JS code will save only fields with name inside the edit row */}\n \n \n \n \n \n \n \n \n
\n );\n};\n","import { Slot, Fill } from '@wordpress/components';\n\nexport const FutureActionPanelTop = ({ children }) => (\n \n {children}\n \n);\n\nconst FutureActionPanelTopSlot = (props) => (\n \n);\n\nFutureActionPanelTop.Slot = FutureActionPanelTopSlot;\n\nexport default FutureActionPanelTop;\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const NonceControl = function (props) {\n if (! props.name) {\n props.name = '_wpnonce';\n }\n\n if (! props.referrer) {\n props.referrer = true;\n }\n\n return (\n \n \n\n {props.referrer &&\n \n }\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nimport {\n SettingRow,\n SettingsTable,\n SelectControl,\n TextControl,\n TokensControl,\n CheckboxControl\n} from './';\nimport { useEffect, useState } from '@wordpress/element';\nimport { addQueryArgs } from '@wordpress/url';\nimport { applyFilters } from '@wordpress/hooks';\nimport { apiFetch } from '&wp';\nimport DateOffsetPreview from './DateOffsetPreview';\n\nconst { PanelRow } = wp.components;\n\nexport const PostTypeSettingsPanel = function (props) {\n const originalExpireTypeList = props.expireTypeList[props.postType];\n\n const [postTypeTaxonomy, setPostTypeTaxonomy] = useState(props.settings.taxonomy);\n const [termOptions, setTermOptions] = useState([]);\n const [termsSelectIsLoading, setTermsSelectIsLoading] = useState(false);\n const [selectedTerms, setSelectedTerms] = useState([]);\n const [settingHowToExpire, setSettingHowToExpire] = useState(props.settings.howToExpire);\n const [isActive, setIsActive] = useState(props.settings.active);\n const [expireOffset, setExpireOffset] = useState(props.settings.defaultExpireOffset);\n const [emailNotification, setEmailNotification] = useState(props.settings.emailNotification);\n const [isAutoEnabled, setIsAutoEnabled] = useState(props.settings.autoEnabled);\n const [hasValidData, setHasValidData] = useState(true);\n const [validationError, setValidationError] = useState('');\n const [taxonomyLabel, setTaxonomyLabel] = useState('');\n const [howToExpireList, setHowToExpireList] = useState(originalExpireTypeList);\n const [newStatus, setNewStatus] = useState(props.settings.newStatus);\n const [hasPendingValidation, setHasPendingValidation] = useState(false);\n\n const offset = expireOffset ? expireOffset : props.settings.globalDefaultExpireOffset;\n\n const taxonomyRelatedActions = [\n 'category',\n 'category-add',\n 'category-remove',\n 'category-remove-all'\n ];\n\n const onChangeTaxonomy = function (value) {\n setPostTypeTaxonomy(value);\n };\n\n const onChangeTerms = (value) => {\n setSelectedTerms(value);\n };\n\n const onChangeHowToExpire = (value) => {\n setSettingHowToExpire(value);\n }\n\n const onChangeActive = (value) => {\n setIsActive(value);\n }\n\n const onChangeExpireOffset = (value) => {\n setExpireOffset(value);\n }\n\n const onChangeEmailNotification = (value) => {\n setEmailNotification(value);\n }\n\n const onChangeAutoEnabled = (value) => {\n setIsAutoEnabled(value);\n }\n\n useEffect(() => {\n // Remove items from expireTypeList if related to taxonomies and there is no taxonmoy for the post type\n if (props.taxonomiesList.length === 0) {\n let newExpireTypeList = [];\n\n newExpireTypeList = howToExpireList.filter((item) => {\n return taxonomyRelatedActions.indexOf(item.value) === -1;\n });\n\n setHowToExpireList(newExpireTypeList);\n }\n }, []);\n\n useEffect(() => {\n if (!postTypeTaxonomy || !props.taxonomiesList) {\n return;\n }\n\n setTermsSelectIsLoading(true);\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/terms/${postTypeTaxonomy}`),\n }).then((result) => {\n let options = [];\n\n let settingsTermsOptions = null;\n let option;\n\n result.terms.forEach(term => {\n option = { value: term.id, label: term.name };\n options.push(option);\n\n if (postTypeTaxonomy === props.settings.taxonomy && props.settings.terms.includes(term.id)) {\n if (settingsTermsOptions === null) {\n settingsTermsOptions = [];\n }\n\n settingsTermsOptions.push(option.label);\n }\n });\n\n setTermOptions(options);\n setSelectedTerms(settingsTermsOptions);\n setTermsSelectIsLoading(false);\n });\n\n props.taxonomiesList.forEach((taxonomy) => {\n if (taxonomy.value === postTypeTaxonomy) {\n setTaxonomyLabel(taxonomy.label);\n }\n });\n }, [postTypeTaxonomy]);\n\n useEffect(() => {\n if (!taxonomyLabel) {\n return;\n }\n\n // Update the list of actions replacing the taxonomy name.\n let newExpireTypeList = [];\n\n originalExpireTypeList.forEach((expireType) => {\n let label = expireType.label;\n\n if (taxonomyRelatedActions.indexOf(expireType.value) !== -1) {\n label = label.replace('%s', taxonomyLabel.toLowerCase());\n }\n\n newExpireTypeList.push({\n value: expireType.value,\n label: label\n });\n });\n\n setHowToExpireList(newExpireTypeList);\n }, [taxonomyLabel]);\n\n useEffect(() => {\n if (hasValidData && props.onDataIsValid) {\n props.onDataIsValid(props.postType);\n }\n\n if (!hasValidData && props.onDataIsInvalid) {\n props.onDataIsInvalid(props.postType);\n }\n }, [hasValidData]);\n\n useEffect(() => {\n if (hasPendingValidation && props.onValidationStarted) {\n props.onValidationStarted(props.postType);\n }\n\n if (!hasPendingValidation && props.onValidationFinished) {\n props.onValidationFinished(props.postType);\n }\n }, [hasPendingValidation]);\n\n const termOptionsLabels = termOptions.map((term) => term.label);\n\n let settingsRows = [\n \n \n \n ];\n\n if (isActive) {\n settingsRows.push(\n \n \n \n );\n\n settingsRows.push(\n \n \n \n \n );\n\n settingsRows.push(\n \n \n\n {settingHowToExpire === 'change-status' &&\n \n }\n\n {(props.taxonomiesList.length > 0 && (['category', 'category-add', 'category-remove'].indexOf(settingHowToExpire) > -1)) &&\n \n }\n \n );\n\n settingsRows.push(\n \n \n\n \n \n );\n\n settingsRows.push(\n \n \n \n );\n }\n\n settingsRows = applyFilters('expirationdate_settings_posttype', settingsRows, props, isActive, useState);\n\n const fieldSetClassNames = props.isVisible ? 'pe-settings-fieldset' : 'pe-settings-fieldset hidden';\n\n return (\n
\n \n\n {! hasValidData && (\n \n
\n {props.text.error}: {validationError}\n
\n
\n )}\n
\n );\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nimport { PostTypeSettingsPanel } from \"./\";\nimport { useState } from \"@wordpress/element\";\n\nexport const PostTypesSettingsPanels = function (props) {\n const [currentTab, setCurrentTab] = useState(Object.keys(props.settings)[0]);\n\n let panels = [];\n\n for (const [postType, postTypeSettings] of Object.entries(props.settings)) {\n panels.push(\n \n );\n }\n\n const onSelectTab = (event) => {\n event.preventDefault();\n setCurrentTab(event.target.hash.replace('#', '').replace('-panel', ''));\n }\n\n let tabs = [];\n let selected = false;\n\n for (const [postType, postTypeSettings] of Object.entries(props.settings)) {\n selected = currentTab === postType;\n tabs.push(\n \n {postTypeSettings.label}\n \n );\n }\n\n return (\n
\n \n {panels}\n
\n );\n}\n\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\nimport { SelectControl as WPSelectControl } from \"@wordpress/components\";\n\nexport const SelectControl = function (props) {\n const onChange = (value) => {\n props.onChange(value);\n };\n\n return (\n \n {props.options.length === 0 && (\n
{props.noItemFoundMessage}
\n )}\n\n {props.options.length > 0 && (\n \n )}\n\n {props.children}\n\n

{props.description}

\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const SettingRow = function (props) {\n return (\n \n \n \n \n \n {props.children}\n \n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsFieldset = function (props) {\n return (\n
\n {props.legend}\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsForm = function (props) {\n return (\n
\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const SettingsSection = function (props) {\n return (\n \n

{props.title}

\n

{props.description}

\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsTable = function (props) {\n return (\n \n \n {props.bodyChildren}\n \n
\n )\n}\n","/*\n * Copyright (c) 2024. PublishPress, All rights reserved.\n */\nexport const Spinner = function (props) {\n return (\n
\n );\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SubmitButton = function (props) {\n return (\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\nimport { TextControl as WPTextControl } from \"@wordpress/components\";\nimport { Spinner } from \"./\";\n\nexport const TextControl = function (props) {\n let description;\n\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n\n const onChange = function (value) {\n if (props.onChange) {\n props.onChange(value);\n }\n };\n\n let className = props.className ? props.className : '';\n\n if (props.loading) {\n className += ' publishpress-future-loading publishpress-future-loading-input';\n }\n\n return (\n \n
\n \n\n {props.loading && }\n\n {description}\n
\n
\n )\n}\n","import { Button } from '@wordpress/components';\n\nexport const ToggleArrowButton = function (props) {\n const onClick = function () {\n if (props.onClick) {\n props.onClick();\n }\n };\n\n const iconExpanded = props.iconExpanded ? props.iconExpanded : 'arrow-up-alt2';\n const iconCollapsed = props.iconCollapsed ? props.iconCollapsed : 'arrow-down-alt2';\n\n const icon = props.isExpanded ? iconExpanded : iconCollapsed;\n\n const title = props.isExpanded ? props.titleExpanded : props.titleCollapsed;\n\n return (\n \n )\n}\n","import { ToggleArrowButton } from \"./ToggleArrowButton\";\nimport { DateTimePicker } from \"./DateTimePicker\";\nimport { Fragment, useEffect } from \"@wordpress/element\";\n\nexport const ToggleCalendarDatePicker = (\n {\n isExpanded,\n strings,\n onToggleCalendar,\n currentDate,\n onChangeDate,\n is12Hour,\n startOfWeek\n }\n) => {\n useEffect(() => {\n // Move the element of the toggle button to between the time and date elements.\n const toggleButtonElement = document.querySelector('.future-action-calendar-toggle');\n\n if (! toggleButtonElement) {\n return;\n }\n\n const dateTimeElement = toggleButtonElement.nextElementSibling;\n\n if (! dateTimeElement) {\n return;\n }\n\n const timeElement = dateTimeElement.querySelector('.components-datetime__time');\n\n if (! timeElement) {\n return;\n }\n\n const dateElement = timeElement.nextSibling;\n\n if (! dateElement) {\n return;\n }\n\n dateTimeElement.insertBefore(toggleButtonElement, dateElement)\n });\n\n return (\n \n \n\n \n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment, useState, useEffect } from \"@wordpress/element\";\nimport { FormTokenField } from \"@wordpress/components\";\n\nexport const TokensControl = (props) => {\n const [stringValue, setStringValue] = useState('');\n\n useEffect(() => {\n if (props.value) {\n setStringValue(props.value.join(','));\n }\n }, [props.value]);\n\n let description;\n\n if (props.description) {\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n }\n\n const onChange = (value) => {\n if (props.onChange) {\n props.onChange(value);\n }\n\n if (typeof value === 'object') {\n setStringValue(value.join(','));\n } else {\n setStringValue('');\n }\n }\n\n const value = props.value ? props.value : [];\n \n return (\n \n \n \n\n {description}\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const TrueFalseControl = function (props) {\n const { Fragment } = wp.element;\n\n const onChange = (e) => {\n if (props.onChange) {\n props.onChange(\n e.target.value === props.trueValue && jQuery(e.target).is(':checked')\n );\n // Check only the true radio... using the field name? or directly the ID\n }\n };\n\n return (\n \n \n\n \n   \n \n {props.falseLabel}\n\n

{props.description}

\n
\n )\n}\n","export { ButtonsPanel } from \"./ButtonsPanel\";\nexport { FutureActionPanel } from \"./FutureActionPanel\";\nexport { FutureActionPanelBlockEditor } from \"./FutureActionPanelBlockEditor\";\nexport { FutureActionPanelClassicEditor } from \"./FutureActionPanelClassicEditor\";\nexport { FutureActionPanelQuickEdit } from \"./FutureActionPanelQuickEdit\";\nexport { FutureActionPanelBulkEdit } from \"./FutureActionPanelBulkEdit\";\nexport { PostTypeSettingsPanel } from \"./PostTypeSettingsPanel\";\nexport { PostTypesSettingsPanels } from \"./PostTypesSettingsPanels\";\nexport { SettingRow } from \"./SettingRow\";\nexport { SettingsFieldset } from \"./SettingsFieldset\";\nexport { SettingsForm } from \"./SettingsForm\";\nexport { SettingsSection } from \"./SettingsSection\";\nexport { SettingsTable } from \"./SettingsTable\";\nexport { SubmitButton } from \"./SubmitButton\";\nexport { CheckboxControl } from \"./CheckboxControl\";\nexport { SelectControl } from \"./SelectControl\";\nexport { TextControl } from \"./TextControl\";\nexport { TokensControl } from \"./TokensControl\";\nexport { NonceControl } from \"./NonceControl\";\nexport { TrueFalseControl } from \"./TrueFalseControl\";\nexport { Spinner } from \"./Spinner\";\nexport { DateOffsetPreview } from \"./DateOffsetPreview\";\n","import { formatUnixTimeToTimestamp, getCurrentTimeAsTimestamp, normalizeUnixTimeToSeconds } from './time';\nimport { isNumber } from './utils';\nimport { register, createReduxStore } from '@wordpress/data';\n\nexport const createStore = (props) => {\n if (props.defaultState.terms && typeof props.defaultState.terms === 'string') {\n props.defaultState.terms = props.defaultState.terms.split(',').map(term => parseInt(term));\n }\n\n let defaultState = {\n action: props.defaultState.action,\n date: props.defaultState.date ? props.defaultState.date : getCurrentTimeAsTimestamp(),\n enabled: props.defaultState.autoEnable,\n terms: props.defaultState.terms ? props.defaultState.terms : [],\n taxonomy: props.defaultState.taxonomy ? props.defaultState.taxonomy : null,\n newStatus: props.defaultState.newStatus ? props.defaultState.newStatus : 'draft',\n termsListByName: null,\n termsListById: null,\n taxonomyName: null,\n isFetchingTerms: false,\n changeAction: 'no-change',\n calendarIsVisible: true,\n hasValidData: true,\n extraData: props.defaultState.extraData ? props.defaultState.extraData : {},\n }\n\n const store = createReduxStore(props.name, {\n reducer(state = defaultState, action) {\n switch (action.type) {\n case 'SET_ACTION':\n return {\n ...state,\n action: action.action,\n };\n case 'SET_NEW_STATUS':\n return {\n ...state,\n newStatus: action.newStatus,\n };\n case 'SET_DATE':\n // Make sure the date is a number, if it is a string with only numbers\n if (typeof action.date !== 'number' && isNumber(action.date)) {\n action.date = parseInt(action.date);\n }\n\n // If string, convert to unix time\n if (typeof action.date === 'string') {\n action.date = new Date(action.date).getTime();\n }\n\n // Make sure the time is always in seconds\n action.date = normalizeUnixTimeToSeconds(action.date);\n\n // Convert to formated string format, considering it is in the site's timezone\n action.date = formatUnixTimeToTimestamp(action.date);\n\n return {\n ...state,\n date: action.date,\n }\n case 'SET_ENABLED':\n return {\n ...state,\n enabled: action.enabled,\n }\n case 'SET_TERMS':\n return {\n ...state,\n terms: action.terms,\n }\n case 'SET_TAXONOMY':\n return {\n ...state,\n taxonomy: action.taxonomy,\n }\n case 'SET_TERMS_LIST_BY_NAME':\n return {\n ...state,\n termsListByName: action.termsListByName,\n }\n case 'SET_TERMS_LIST_BY_ID':\n return {\n ...state,\n termsListById: action.termsListById,\n }\n case 'SET_TAXONOMY_NAME':\n return {\n ...state,\n taxonomyName: action.taxonomyName,\n }\n case 'SET_CHANGE_ACTION':\n return {\n ...state,\n changeAction: action.changeAction,\n }\n case 'SET_CALENDAR_IS_VISIBLE':\n return {\n ...state,\n calendarIsVisible: action.calendarIsVisible,\n }\n case 'SET_HAS_VALID_DATA':\n return {\n ...state,\n hasValidData: action.hasValidData,\n }\n\n case 'SET_EXTRA_DATA':\n return {\n ...state,\n extraData: {\n ...action.extraData,\n }\n }\n\n case 'SET_EXTRA_DATA_BY_NAME':\n const extraData = {\n ...state.extraData,\n [action.name]: action.value\n };\n\n return {\n ...state,\n extraData: {...extraData}\n }\n }\n\n return state;\n },\n actions: {\n setAction(action) {\n return {\n type: 'SET_ACTION',\n action: action\n };\n },\n setNewStatus(newStatus) {\n return {\n type: 'SET_NEW_STATUS',\n newStatus: newStatus\n };\n },\n setDate(date) {\n return {\n type: 'SET_DATE',\n date: date\n };\n },\n setEnabled(enabled) {\n return {\n type: 'SET_ENABLED',\n enabled: enabled\n };\n },\n setTerms(terms) {\n return {\n type: 'SET_TERMS',\n terms: terms\n };\n },\n setTaxonomy(taxonomy) {\n return {\n type: 'SET_TAXONOMY',\n taxonomy: taxonomy\n };\n },\n setTermsListByName(termsListByName) {\n return {\n type: 'SET_TERMS_LIST_BY_NAME',\n termsListByName: termsListByName\n };\n },\n setTermsListById(termsListById) {\n return {\n type: 'SET_TERMS_LIST_BY_ID',\n termsListById: termsListById\n };\n },\n setTaxonomyName(taxonomyName) {\n return {\n type: 'SET_TAXONOMY_NAME',\n taxonomyName: taxonomyName\n };\n },\n setIsFetchingTerms(isFetchingTerms) {\n return {\n type: 'SET_IS_FETCHING_TERMS',\n isFetchingTerms: isFetchingTerms\n }\n },\n setChangeAction(changeAction) {\n return {\n type: 'SET_CHANGE_ACTION',\n changeAction: changeAction\n }\n },\n setCalendarIsVisible(calendarIsVisible) {\n return {\n type: 'SET_CALENDAR_IS_VISIBLE',\n calendarIsVisible: calendarIsVisible\n }\n },\n setHasValidData(hasValidData) {\n return {\n type: 'SET_HAS_VALID_DATA',\n hasValidData: hasValidData\n }\n },\n setExtraData(extraData) {\n return {\n type: 'SET_EXTRA_DATA',\n extraData: extraData\n }\n },\n setExtraDataByName(name, value) {\n return {\n type: 'SET_EXTRA_DATA_BY_NAME',\n name: name,\n value: value\n }\n }\n },\n selectors: {\n getAction(state) {\n return state.action;\n },\n getNewStatus(state) {\n return state.newStatus;\n },\n getDate(state) {\n return state.date;\n },\n getEnabled(state) {\n return state.enabled;\n },\n getTerms(state) {\n return state.terms;\n },\n getTaxonomy(state) {\n return state.taxonomy;\n },\n getTermsListByName(state) {\n return state.termsListByName;\n },\n getTermsListById(state) {\n return state.termsListById;\n },\n getTaxonomyName(state) {\n return state.taxonomyName;\n },\n getIsFetchingTerms(state) {\n return state.isFetchingTerms;\n },\n getChangeAction(state) {\n return state.changeAction;\n },\n getCalendarIsVisible(state) {\n return state.calendarIsVisible;\n },\n getHasValidData(state) {\n return state.hasValidData;\n },\n getExtraData(state) {\n return state.extraData;\n },\n getExtraDataByName(state, name) {\n return state.extraData[name] || null;\n }\n }\n });\n\n register(store);\n\n return store;\n}\n","export const getCurrentTimeInSeconds = () => {\n return normalizeUnixTimeToSeconds(new Date().getTime());\n}\n\nexport const getCurrentTimeAsTimestamp = () => {\n return formatUnixTimeToTimestamp(getCurrentTimeInSeconds());\n}\n\nexport const formatUnixTimeToTimestamp = (unixTimestamp) => {\n const date = new Date(\n normalizeUnixTimeToSeconds(unixTimestamp)\n );\n\n const year = date.getFullYear();\n const month = (\"0\" + (date.getMonth() + 1)).slice(-2); // Months are zero-based\n const day = (\"0\" + date.getDate()).slice(-2);\n const hours = (\"0\" + date.getHours()).slice(-2);\n const minutes = (\"0\" + date.getMinutes()).slice(-2);\n const seconds = (\"0\" + date.getSeconds()).slice(-2);\n\n return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;\n}\n\nexport const formatTimestampToUnixTime = (time) => {\n const date = new Date(time);\n\n return normalizeUnixTimeToSeconds(date.getTime());\n}\n\nexport const timeIsInSeconds = (time) => {\n return parseInt(time).toString().length <= 10;\n}\n\nexport const normalizeUnixTimeToSeconds = (time) => {\n time = parseInt(time);\n\n return timeIsInSeconds() ? time : time / 1000;\n}\n\nexport const normalizeUnixTimeToMilliseconds = (time) => {\n time = parseInt(time);\n\n return timeIsInSeconds() ? time * 1000 : time;\n}\n","export const compact = (array) => {\n if (!array) {\n return [];\n }\n\n if (! Array.isArray(array) && typeof array === 'object') {\n array = Object.values(array);\n }\n\n return array.filter((item) => {\n return item !== null && item !== undefined && item !== '';\n });\n}\n\nexport const debugLogFactory = (config) => {\n return (description, ...message) => {\n if (console && config.isDebugEnabled) {\n console.debug('[Future]', description, ...message);\n }\n }\n}\n\nexport const isGutenbergEnabled = () => {\n return document.body.classList.contains('block-editor-page');\n}\n\nexport const getElementByName = (name) => {\n return document.getElementsByName(name)[0];\n}\n\nexport const getFieldByName = (name, postId) => {\n return document.querySelector(`#the-list tr#post-${postId} .column-expirationdate input#future_action_${name}-${postId}`);\n}\n\nexport const getFieldValueByName = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field) {\n return null;\n }\n\n return field.value;\n};\n\nexport const getFieldValueByNameAsArrayOfInt = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field || !field.value) {\n return [];\n }\n\n if (typeof field.value === 'number') {\n field.value = field.value.toString();\n }\n\n return field.value.split(',').map(term => parseInt(term));\n};\n\nexport const getFieldValueByNameAsBool = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field) {\n return false;\n }\n\n return field.value === '1' || field.value === 'true';\n}\n\nexport const getActionSettingsFromColumnData = (postId) => {\n const columnData = document.querySelector(`#post-expire-column-${postId}`);\n\n if (!columnData) {\n return {};\n }\n\n return {\n enabled: columnData.dataset.actionEnabled === '1',\n action: columnData.dataset.actionType,\n date: columnData.dataset.actionDate,\n dateUnix: columnData.dataset.actionDateUnix,\n taxonomy: columnData.dataset.actionTaxonomy,\n terms: columnData.dataset.actionTerms,\n newStatus: columnData.dataset.actionNewStatus,\n };\n}\n\n/**\n * This function is used to determine if a value is a number, including strings.\n *\n * @param {*} value\n * @returns\n */\nexport const isNumber = (value) => {\n return !isNaN(value);\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.publishpress-future-date-preview .publishpress-future-date-preview-value {\n font-family: monospace;\n background-color: #e7e7e7;\n padding: 2px 4px;\n}\n\n.publishpress-future-date-preview.compact .publishpress-future-date-preview-label {\n display: block;\n}\n\n.publishpress-future-date-preview.compact {\n margin-bottom: 8px;\n}\n\n.publishpress-future-date-preview.compact h4 {\n font-size: 11px;\n font-weight: 500;\n line-height: 1.4;\n text-transform: uppercase;\n display: inline-block;\n margin-bottom: calc(8px);\n padding: 0px;\n flex-shrink: 0;\n margin-right: 12px;\n max-width: 75%;\n margin-top: 0;\n}\n\n.publishpress-future-notice.publishpress-future-notice-error {\n color: #dc3232;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./assets/jsx/components/css/dateOffsetPreview.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,sBAAsB;IACtB,yBAAyB;IACzB,gBAAgB;AACpB;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,kBAAkB;AACtB;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,yBAAyB;IACzB,qBAAqB;IACrB,wBAAwB;IACxB,YAAY;IACZ,cAAc;IACd,kBAAkB;IAClB,cAAc;IACd,aAAa;AACjB;;AAEA;IACI,cAAc;AAClB\",\"sourcesContent\":[\".publishpress-future-date-preview .publishpress-future-date-preview-value {\\n font-family: monospace;\\n background-color: #e7e7e7;\\n padding: 2px 4px;\\n}\\n\\n.publishpress-future-date-preview.compact .publishpress-future-date-preview-label {\\n display: block;\\n}\\n\\n.publishpress-future-date-preview.compact {\\n margin-bottom: 8px;\\n}\\n\\n.publishpress-future-date-preview.compact h4 {\\n font-size: 11px;\\n font-weight: 500;\\n line-height: 1.4;\\n text-transform: uppercase;\\n display: inline-block;\\n margin-bottom: calc(8px);\\n padding: 0px;\\n flex-shrink: 0;\\n margin-right: 12px;\\n max-width: 75%;\\n margin-top: 0;\\n}\\n\\n.publishpress-future-notice.publishpress-future-notice-error {\\n color: #dc3232;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/postcss-loader/dist/cjs.js!./dateOffsetPreview.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/postcss-loader/dist/cjs.js!./dateOffsetPreview.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;","module.exports = ReactDOM;","module.exports = publishpressFutureQuickEditConfig;","module.exports = window;","module.exports = wp;","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.element;","module.exports = wp.hooks;","module.exports = wp.plugins;","module.exports = wp.url;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nc = undefined;","import { FutureActionPanelQuickEdit } from './components';\nimport { createStore } from './data';\nimport { getActionSettingsFromColumnData } from './utils';\nimport { createRoot } from 'react-dom/client';\nimport { select, dispatch } from '@wordpress/data';\nimport { inlineEditPost } from \"&window\";\nimport {\n postType,\n isNewPost,\n actionsSelectOptions,\n is12Hour,\n timeFormat,\n startOfWeek,\n strings,\n taxonomyName,\n nonce,\n statusesSelectOptions,\n hideCalendarByDefault\n} from \"&config.quick-edit\";\n\nconst storeName = 'publishpress-future/future-action-quick-edit';\nconst delayToUnmountAfterSaving = 1000;\n\n// We create a copy of the WP inline edit post function\nconst wpInlineEdit = inlineEditPost.edit;\nconst wpInlineEditRevert = inlineEditPost.revert;\n\nconst getPostIdFromButton = (id) => {\n // If id is a string or a number, return it directly\n if (typeof id === 'string' || typeof id === 'number') {\n return id;\n }\n\n // Otherwise, assume it's an HTML element and extract the post ID\n const trElement = id.closest('tr');\n const trId = trElement.id;\n const postId = trId.split('-')[1];\n\n return postId;\n}\n\n/**\n * We override the function with our own code so we can detect when\n * the inline edit row is displayed to recreate the React component.\n */\ninlineEditPost.edit = function (button, id) {\n // Call the original WP edit function.\n wpInlineEdit.apply(this, arguments);\n\n const postId = getPostIdFromButton(button);\n const data = getActionSettingsFromColumnData(postId);\n\n if (!data) {\n return;\n }\n\n const enabled = data.enabled;\n const action = data.action;\n const date = data.date;\n const taxonomy = data.taxonomy;\n const newStatus = data.newStatus;\n\n let terms = data.terms;\n\n if (typeof terms === 'string'){\n terms = terms.split(',');\n }\n\n // if store exists, update the state. Otherwise, create it.\n if (select(storeName)) {\n dispatch(storeName).setEnabled(enabled);\n dispatch(storeName).setAction(action);\n dispatch(storeName).setDate(date);\n dispatch(storeName).setTaxonomy(taxonomy);\n dispatch(storeName).setTerms(terms);\n dispatch(storeName).setNewStatus(newStatus);\n } else {\n createStore({\n name: storeName,\n defaultState: {\n autoEnable: enabled,\n action: action,\n date: date,\n taxonomy: taxonomy,\n terms: terms,\n newStatus: newStatus,\n }\n });\n }\n\n const container = document.getElementById(\"publishpress-future-quick-edit\");\n if (!container) {\n return;\n }\n const root = createRoot(container);\n\n const saveButton = document.querySelector('.inline-edit-save .save');\n if (saveButton) {\n saveButton.onclick = function() {\n setTimeout(() => {\n root.unmount();\n }, delayToUnmountAfterSaving);\n };\n }\n\n const component = (\n \n );\n\n root.render(component);\n\n inlineEditPost.revert = function () {\n root.unmount();\n\n // Call the original WP revert function.\n wpInlineEditRevert.apply(this, arguments);\n };\n};\n"],"names":["ButtonsPanel","props","children","CheckboxControl","description","useState","checked","setChecked","unescapedDescription","className","dangerouslySetInnerHTML","__html","Fragment","label","name","id","onChange","value","require","DateOffsetPreview","offset","labelDatePreview","labelOffsetPreview","setValidationErrorCallback","setHasPendingValidationCallback","setHasValidDataCallback","compactView","offsetPreview","setOffsetPreview","currentTime","setCurrentTime","apiRequestControllerRef","useRef","AbortController","useEffect","controller","current","abort","signal","apiFetch","path","addQueryArgs","method","data","then","result","isValid","message","preview","catch","error","validateDateOffset","compactClass","DateTimePicker","currentDate","is12Hour","startOfWeek","normalizeUnixTimeToMilliseconds","__nextRemoveHelpButton","wp","components","PanelRow","SelectControl","FormTokenField","Spinner","BaseControl","element","decodeEntities","htmlEntities","url","useSelect","useDispatch","FutureActionPanel","select","action","storeName","getAction","date","getDate","enabled","getEnabled","terms","getTerms","taxonomy","getTaxonomy","taxonomyName","getTaxonomyName","termsListByName","getTermsListByName","termsListById","getTermsListById","isFetchingTerms","getIsFetchingTerms","calendarIsVisible","getCalendarIsVisible","hasValidData","getHasValidData","newStatus","getNewStatus","validationError","setValidationError","setAction","setDate","setEnabled","setTerms","setTaxonomy","setTermsListByName","setTermsListById","setTaxonomyName","setIsFetchingTerms","setCalendarIsVisible","setHasValidData","setNewStatus","insertTerm","term","count","link","slug","callOnChangeData","attribute","onChangeData","handleEnabledChange","isChecked","fetchTerms","forEach","getCalendarIsVisibleFromStorage","localStorage","getItem","context","autoEnableAndHideCheckbox","hideCalendarByDefault","isCleanNewPost","setItem","onDataIsValid","onDataIsInvalid","selectedTerms","length","compact","map","mapTermsListById","termsListByNameKeys","Object","keys","is24hour","panelClass","contentPanelClass","datePanelClass","timeFormat","actionsSelectOptions","filter","item","indexOf","HelpText","string","href","target","parts","split","push","shift","before","after","key","replaceCurlyBracketsWithLink","strings","timezoneSettingsHelp","displayTaxonomyField","String","includes","termsFieldLabel","newTerms","replace","removeTerms","addTerms","valid","errorActionRequired","errorDateRequired","Date","errorDateInPast","isTermRequired","noTermIsSelected","errorTermsRequired","validateData","SlotFillProvider","type","FutureActionPanelTop","Slot","fillProps","enablePostExpiration","options","FutureActionPanelAfterActionField","statusesSelectOptions","loading","noTaxonomyFound","noTermsFound","suggestions","mapTermsListByName","placeholder","addTermsPlaceholder","maxSuggestions","onFocus","e","jQuery","addClass","__experimentalExpandOnFocus","__experimentalAutoSelectFirstMatch","ToggleCalendarDatePicker","onChangeDate","onToggleCalendar","isExpanded","PluginArea","scope","Fill","FutureActionPanelBlockEditor","PluginDocumentSettingPanel","editPost","getEditedPostAttribute","lockPostSaving","unlockPostSaving","title","panelTitle","initialOpen","postTypeDefaultConfig","autoEnable","postType","store","newAttribute","getExtraData","publishpress_future_action","entries","editPostAttribute","FutureActionPanelBulkEdit","changeAction","getChangeAction","setChangeAction","termsString","join","noChange","changeAdd","addOnly","changeOnly","removeOnly","prop","futureActionUpdate","isNewPost","getElementByName","nonce","FutureActionPanelClassicEditor","getTimezoneOffset","document","getElementsByName","getElementValueByName","parseInt","getTermsFromElementByName","FutureActionPanelQuickEdit","NonceControl","referrer","PostTypeSettingsPanel","originalExpireTypeList","expireTypeList","settings","postTypeTaxonomy","setPostTypeTaxonomy","termOptions","setTermOptions","termsSelectIsLoading","setTermsSelectIsLoading","setSelectedTerms","howToExpire","settingHowToExpire","setSettingHowToExpire","active","isActive","setIsActive","defaultExpireOffset","expireOffset","setExpireOffset","emailNotification","setEmailNotification","autoEnabled","isAutoEnabled","setIsAutoEnabled","taxonomyLabel","setTaxonomyLabel","howToExpireList","setHowToExpireList","hasPendingValidation","setHasPendingValidation","globalDefaultExpireOffset","taxonomyRelatedActions","newExpireTypeList","taxonomiesList","settingsTermsOptions","option","expireType","toLowerCase","onValidationStarted","onValidationFinished","termOptionsLabels","settingsRows","SettingRow","text","fieldActive","fieldActiveLabel","fieldAutoEnable","fieldAutoEnableLabel","fieldTaxonomy","selected","noItemFoundMessage","noItemsfound","fieldTaxonomyDescription","fieldHowToExpire","fieldHowToExpireDescription","statusesList","TokensControl","fieldTerm","isLoading","fieldTermDescription","expandOnFocus","autoSelectFirstMatch","fieldDefaultDateTimeOffset","TextControl","fieldDefaultDateTimeOffsetDescription","datePreview","datePreviewCurrent","datePreviewComputed","fieldWhoToNotify","fieldWhoToNotifyDescription","applyFilters","fieldSetClassNames","isVisible","SettingsTable","bodyChildren","PostTypesSettingsPanels","currentTab","setCurrentTab","panels","postTypeSettings","legend","onSelectTab","event","preventDefault","hash","tabs","onClick","valign","htmlFor","SettingsFieldset","SettingsForm","SettingsSection","SubmitButton","disabled","ToggleArrowButton","iconExpanded","iconCollapsed","icon","titleExpanded","titleCollapsed","Button","isSmall","toggleButtonElement","querySelector","dateTimeElement","nextElementSibling","timeElement","dateElement","nextSibling","insertBefore","hideCalendar","showCalendar","stringValue","setStringValue","TrueFalseControl","trueValue","is","defaultChecked","trueLabel","falseValue","falseLabel","createStore","defaultState","getCurrentTimeAsTimestamp","extraData","createReduxStore","reducer","state","isNumber","getTime","normalizeUnixTimeToSeconds","formatUnixTimeToTimestamp","actions","setExtraData","setExtraDataByName","selectors","getExtraDataByName","register","getCurrentTimeInSeconds","unixTimestamp","getFullYear","getMonth","slice","getHours","getMinutes","getSeconds","timeIsInSeconds","formatTimestampToUnixTime","time","toString","getFieldByName","array","Array","isArray","values","debugLogFactory","config","console","isDebugEnabled","debug","isGutenbergEnabled","body","classList","contains","postId","getFieldValueByName","field","getFieldValueByNameAsArrayOfInt","getFieldValueByNameAsBool","getActionSettingsFromColumnData","columnData","dataset","actionEnabled","actionType","actionDate","dateUnix","actionDateUnix","actionTaxonomy","actionTerms","actionNewStatus","isNaN","___CSS_LOADER_EXPORT___","module","exports","cssWithMappingToString","list","this","content","needLayer","concat","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","sourceMapping","m","createRoot","hydrateRoot","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","stylesInDOM","getIndexByIdentifier","identifier","modulesToDom","idCountMap","identifiers","base","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","styleTarget","window","HTMLIFrameElement","contentDocument","head","getTarget","Error","appendChild","createElement","attributes","styleElement","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode","ReactDOM","publishpressFutureQuickEditConfig","hooks","plugins","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","prototype","hasOwnProperty","call","r","Symbol","toStringTag","nc","wpInlineEdit","inlineEditPost","edit","wpInlineEditRevert","revert","button","arguments","closest","getPostIdFromButton","dispatch","container","getElementById","root","saveButton","onclick","setTimeout","unmount","component","render"],"sourceRoot":""} \ No newline at end of file diff --git a/assets/js/settings-general.js b/assets/js/settings-general.js new file mode 100644 index 000000000..27c914ac9 --- /dev/null +++ b/assets/js/settings-general.js @@ -0,0 +1,2 @@ +(()=>{"use strict";var e={5442:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ButtonsPanel=function(e){return React.createElement("div",null,e.children)}},4311:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CheckboxControl=void 0;var a=n(1386),r=n(2214);t.CheckboxControl=function(e){var t,n=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,a.useState)(e.checked||!1),2),o=n[0],i=n[1];return t=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description),React.createElement(a.Fragment,null,React.createElement(r.CheckboxControl,{label:e.label,name:e.name,id:e.name,className:e.className,checked:o||!1,onChange:function(t){i(t),e.onChange&&e.onChange(t)}}),t)}},5470:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DateOffsetPreview=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(1386),o=n(4011),i=n(3244);n(9922);var l=t.DateOffsetPreview=function(e){var t=e.offset,n=e.label,l=e.labelDatePreview,c=e.labelOffsetPreview,s=e.setValidationErrorCallback,u=e.setHasPendingValidationCallback,d=e.setHasValidDataCallback,m=e.compactView,p=void 0!==m&&m,f=(0,r.useState)(""),y=a(f,2),v=y[0],b=y[1],g=(0,r.useState)(),h=a(g,2),E=h[0],x=h[1],S=(0,r.useRef)(new AbortController);(0,r.useEffect)((function(){!function(){if(t){var e=S.current;e&&e.abort(),S.current=new AbortController;var n=S.current.signal;u(!0),(0,i.apiFetch)({path:(0,o.addQueryArgs)("publishpress-future/v1/settings/validate-expire-offset"),method:"POST",data:{offset:t},signal:n}).then((function(e){u(!1),d(e.isValid),s(e.message),e.isValid?(b(e.preview),x(e.currentTime)):b("")})).catch((function(e){"AbortError"!==e.name&&(u(!1),d(!1),s(e.message),b(""))}))}}()}),[t]);var _=p?" compact":"";return React.createElement(r.Fragment,null,t&&React.createElement("div",{className:"publishpress-future-date-preview"+_},React.createElement("h4",null,n),React.createElement("div",{className:"publishpress-future-date-preview-body"},React.createElement("div",null,React.createElement("span",{className:"publishpress-future-date-preview-label"},l,": "),React.createElement("span",{className:"publishpress-future-date-preview-value"},E)),React.createElement("div",null,React.createElement("span",{className:"publishpress-future-date-preview-label"},c,": "),React.createElement("span",{className:"publishpress-future-date-preview-value"},v)))))};t.default=l},4620:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DateTimePicker=void 0;var a=n(7039),r=n(2214);t.DateTimePicker=function(e){var t=e.currentDate,n=e.onChange,o=e.is12Hour,i=e.startOfWeek;return"number"==typeof t&&(t=(0,a.normalizeUnixTimeToMilliseconds)(t)),React.createElement(r.DateTimePicker,{currentDate:t,onChange:n,__nextRemoveHelpButton:!0,is12Hour:o,startOfWeek:i})}},8418:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanel=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},o=n(8409),i=n(4873),l=n(9986),c=n(2214),s=n(1442),u=n(6625),d=wp.components,m=d.PanelRow,p=d.CheckboxControl,f=d.SelectControl,y=d.FormTokenField,v=d.Spinner,b=d.BaseControl,g=wp.element,h=g.Fragment,E=g.useEffect,x=g.useState,S=wp.htmlEntities.decodeEntities,_=wp.url.addQueryArgs,A=wp.data,C=A.useSelect,w=A.useDispatch,R=wp.apiFetch;t.FutureActionPanel=function(e){var t=C((function(t){return{action:t(e.storeName).getAction(),date:t(e.storeName).getDate(),enabled:t(e.storeName).getEnabled(),terms:t(e.storeName).getTerms(),taxonomy:t(e.storeName).getTaxonomy(),taxonomyName:t(e.storeName).getTaxonomyName(),termsListByName:t(e.storeName).getTermsListByName(),termsListById:t(e.storeName).getTermsListById(),isFetchingTerms:t(e.storeName).getIsFetchingTerms(),calendarIsVisible:t(e.storeName).getCalendarIsVisible(),hasValidData:t(e.storeName).getHasValidData(),newStatus:t(e.storeName).getNewStatus()}})),n=t.action,d=t.date,g=t.enabled,A=t.terms,N=t.taxonomy,T=t.taxonomyName,P=t.termsListByName,O=t.termsListById,k=t.isFetchingTerms,F=t.calendarIsVisible,D=t.hasValidData,I=t.newStatus,j=x(""),B=r(j,2),M=B[0],V=B[1],L=w(e.storeName),H=L.setAction,Q=L.setDate,U=L.setEnabled,W=L.setTerms,q=L.setTaxonomy,z=L.setTermsListByName,Y=L.setTermsListById,G=L.setTaxonomyName,J=L.setIsFetchingTerms,Z=L.setCalendarIsVisible,K=L.setHasValidData,X=L.setNewStatus,$=function(e){P[e]={id:e,count:0,description:"",link:"",name:e,slug:e,taxonomy:N},O[e]=e,z(P),Y(O),W([].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0&&O&&(re=(0,o.compact)(function(e){return"object"!==(void 0===e?"undefined":a(e))||null===e?{}:e.map((function(e){return O[e]}))}(A)),"string"==typeof re&&(re=[]));var oe=[];"object"===(void 0===P?"undefined":a(P))&&null!==P&&(oe=Object.keys(P));var ie,le=F?"future-action-panel":"future-action-panel hidden-calendar",ce=F?"future-action-panel-content":"future-action-panel-content hidden-calendar",se=F?"future-action-date-panel":"future-action-date-panel hidden-calendar";ie="inherited"===e.timeFormat?!e.is12Hour:"24h"===e.timeFormat;var ue=e.actionsSelectOptions;e.taxonomy||(ue=e.actionsSelectOptions.filter((function(e){return-1===["category","category-add","category-remove","category-remove-all"].indexOf(e.value)})));var de=function(e,t,n){var a=e.split("{"),o=[];o.push(a.shift());var i=!0,l=!1,c=void 0;try{for(var s,u=a[Symbol.iterator]();!(i=(s=u.next()).done);i=!0){var d=s.value.split("}"),m=r(d,2),p=m[0],f=m[1];o.push(React.createElement("a",{href:t,target:"_blank",key:t},p)),o.push(f)}}catch(e){l=!0,c=e}finally{try{!i&&u.return&&u.return()}finally{if(l)throw c}}return o}(e.strings.timezoneSettingsHelp,"/wp-admin/options-general.php#timezone_string"),me=String(n).includes("category")&&"category-remove-all"!==n,pe=T;switch(n){case"category":pe=e.strings.newTerms.replace("%s",T);break;case"category-remove":pe=e.strings.removeTerms.replace("%s",T);break;case"category-add":pe=e.strings.addTerms.replace("%s",T)}return E((function(){if(!g)return K(!0),void V("");K(function(){var t=!0;if(!g)return V(""),!0;n||(V(e.strings.errorActionRequired),t=!1),d||(V(e.strings.errorDateRequired),t=!1),d&&new Date(d){Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelAfterActionField=void 0;var a=Object.assign||function(e){for(var t=1;t{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelBlockEditor=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(2057);t.FutureActionPanelBlockEditor=function(e){var t=wp.editPost.PluginDocumentSettingPanel,n=wp.data,o=n.useDispatch,i=n.select,l=o("core/editor").editPost,c=i("core/editor").getEditedPostAttribute("publishpress_future_action"),s=o("core/editor"),u=s.lockPostSaving,d=s.unlockPostSaving;return React.createElement(t,{name:"publishpress-future-action-panel",title:e.strings.panelTitle,initialOpen:e.postTypeDefaultConfig.autoEnable,className:"post-expirator-panel"},React.createElement("div",{id:"publishpress-future-block-editor"},React.createElement(r.FutureActionPanel,{context:"block-editor",postType:e.postType,isCleanNewPost:e.isCleanNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:c.enabled,calendarIsVisible:!0,action:c.action,newStatus:c.newStatus,date:c.date,terms:c.terms,taxonomy:c.taxonomy,taxonomyName:e.taxonomyName,onChangeData:function(t,n){var r=i(e.storeName),o={enabled:r.getEnabled()};o.enabled&&(o.action=r.getAction(),o.newStatus=r.getNewStatus(),o.date=r.getDate(),o.terms=r.getTerms(),o.taxonomy=r.getTaxonomy(),o.extraData=r.getExtraData()),function(e){var t={publishpress_future_action:{}},n=!0,r=!1,o=void 0;try{for(var i,c=Object.entries(e)[Symbol.iterator]();!(n=(i=c.next()).done);n=!0){var s=i.value,u=a(s,2),d=u[0],m=u[1];t.publishpress_future_action[d]=m}}catch(e){r=!0,o=e}finally{try{!n&&c.return&&c.return()}finally{if(r)throw o}}l(t)}(o)},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){d("future-action")},hideCalendarByDefault:e.hideCalendarByDefault,onDataIsInvalid:function(){u("future-action")}})))}},2094:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelBulkEdit=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(2057),o=n(8409);t.FutureActionPanelBulkEdit=function(e){var t=wp.data,n=t.useSelect,i=t.useDispatch,l=t.select,c=wp.element.useEffect,s=n((function(t){return t(e.storeName).getDate()}),[]),u=n((function(t){return t(e.storeName).getEnabled()}),[]),d=n((function(t){return t(e.storeName).getAction()}),[]),m=n((function(t){return t(e.storeName).getNewStatus()}),[]),p=n((function(t){return t(e.storeName).getTerms()}),[]),f=n((function(t){return t(e.storeName).getTaxonomy()}),[]),y=n((function(t){return t(e.storeName).getChangeAction()}),[]),v=n((function(t){return t(e.storeName).getHasValidData()}),[]),b=i(e.storeName).setChangeAction,g=p;"object"===(void 0===p?"undefined":a(p))&&(g=p.join(","));var h=[{value:"no-change",label:e.strings.noChange},{value:"change-add",label:e.strings.changeAdd},{value:"add-only",label:e.strings.addOnly},{value:"change-only",label:e.strings.changeOnly},{value:"remove-only",label:e.strings.removeOnly}];return c((function(){v||"no-change"===y?jQuery("#bulk_edit").prop("disabled",!1):jQuery("#bulk_edit").prop("disabled",!0)}),[v,y]),React.createElement("div",{className:"post-expirator-panel"},React.createElement(r.SelectControl,{label:e.strings.futureActionUpdate,name:"future_action_bulk_change_action",value:y,options:h,onChange:function(e){b(e)}}),["change-add","add-only","change-only"].includes(y)&&React.createElement(r.FutureActionPanel,{context:"bulk-edit",autoEnableAndHideCheckbox:!0,postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:!0,calendarIsVisible:!1,action:d,newStatus:m,date:s,terms:p,taxonomy:f,taxonomyName:e.taxonomyName,onChangeData:function(t,n){(0,o.getElementByName)("future_action_bulk_enabled").value=l(e.storeName).getEnabled()?1:0,(0,o.getElementByName)("future_action_bulk_action").value=l(e.storeName).getAction(),(0,o.getElementByName)("future_action_bulk_new_status").value=l(e.storeName).getNewStatus(),(0,o.getElementByName)("future_action_bulk_date").value=l(e.storeName).getDate(),(0,o.getElementByName)("future_action_bulk_terms").value=l(e.storeName).getTerms().join(","),(0,o.getElementByName)("future_action_bulk_taxonomy").value=l(e.storeName).getTaxonomy()},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,hideCalendarByDefault:e.hideCalendarByDefault,strings:e.strings}),React.createElement("input",{type:"hidden",name:"future_action_bulk_enabled",value:u?1:0}),React.createElement("input",{type:"hidden",name:"future_action_bulk_action",value:d}),React.createElement("input",{type:"hidden",name:"future_action_bulk_new_status",value:m}),React.createElement("input",{type:"hidden",name:"future_action_bulk_date",value:s}),React.createElement("input",{type:"hidden",name:"future_action_bulk_terms",value:g}),React.createElement("input",{type:"hidden",name:"future_action_bulk_taxonomy",value:f}),React.createElement("input",{type:"hidden",name:"future_action_bulk_view",value:"bulk-edit"}),React.createElement("input",{type:"hidden",name:"_future_action_nonce",value:e.nonce}))}},3571:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelClassicEditor=void 0;var a=n(2057),r=n(7562);n(1386),t.FutureActionPanelClassicEditor=function(e){(new Date).getTimezoneOffset();var t=function(e){return document.getElementsByName(e)[0]},n=function(e){var n=t(e);return n?n.value:""},o={enabled:"1"===n("future_action_enabled"),action:n("future_action_action"),newStatus:n("future_action_new_status"),date:n("future_action_date"),terms:function(e){var n=t("future_action_terms");if(!n)return[];var a=n.value.split(",");return 1===a.length&&""===a[0]&&(a=[]),a.map((function(e){return parseInt(e)}))}(),taxonomy:n("future_action_taxonomy")};return React.createElement("div",{className:"post-expirator-panel"},React.createElement(a.FutureActionPanel,{context:"classic-editor",postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:o.enabled,calendarIsVisible:!0,action:o.action,newStatus:o.newStatus,date:o.date,terms:o.terms,taxonomy:o.taxonomy,taxonomyName:e.taxonomyName,onChangeData:function(n,a){var o=(0,r.select)(e.storeName);t("future_action_enabled").value=o.getEnabled()?1:0,t("future_action_action").value=o.getAction(),t("future_action_new_status").value=o.getNewStatus(),t("future_action_date").value=o.getDate(),t("future_action_terms").value=o.getTerms().join(","),t("future_action_taxonomy").value=o.getTaxonomy()},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){jQuery("#publish").prop("disabled",!1)},hideCalendarByDefault:e.hideCalendarByDefault,onDataIsInvalid:function(){jQuery("#publish").prop("disabled",!0)}}))}},5437:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelQuickEdit=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(2057),o=n(7562);n(1386),t.FutureActionPanelQuickEdit=function(e){var t=(0,o.useSelect)((function(t){return t(e.storeName).getDate()}),[]),n=(0,o.useSelect)((function(t){return t(e.storeName).getEnabled()}),[]),i=(0,o.useSelect)((function(t){return t(e.storeName).getAction()}),[]),l=(0,o.useSelect)((function(t){return t(e.storeName).getTerms()}),[]),c=(0,o.useSelect)((function(t){return t(e.storeName).getTaxonomy()}),[]),s=((0,o.useSelect)((function(t){return t(e.storeName).getHasValidData()}),[]),(0,o.useSelect)((function(t){return t(e.storeName).getNewStatus()}),[])),u=l;return"object"===(void 0===l?"undefined":a(l))&&(u=l.join(",")),React.createElement("div",{className:"post-expirator-panel"},React.createElement(r.FutureActionPanel,{context:"quick-edit",postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:n,calendarIsVisible:!1,action:i,newStatus:s,date:t,terms:l,taxonomy:c,taxonomyName:e.taxonomyName,onChangeData:function(e,t){},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){jQuery(".button-primary.save").prop("disabled",!1)},hideCalendarByDefault:e.hideCalendarByDefault,onDataIsInvalid:function(){jQuery(".button-primary.save").prop("disabled",!0)}}),React.createElement("input",{type:"hidden",name:"future_action_enabled",value:n?1:0}),React.createElement("input",{type:"hidden",name:"future_action_action",value:i||""}),React.createElement("input",{type:"hidden",name:"future_action_new_status",value:s||""}),React.createElement("input",{type:"hidden",name:"future_action_date",value:t||""}),React.createElement("input",{type:"hidden",name:"future_action_terms",value:u||""}),React.createElement("input",{type:"hidden",name:"future_action_taxonomy",value:c||""}),React.createElement("input",{type:"hidden",name:"future_action_view",value:"quick-edit"}),React.createElement("input",{type:"hidden",name:"_future_action_nonce",value:e.nonce}))}},6625:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelTop=void 0;var a=Object.assign||function(e){for(var t=1;t{Object.defineProperty(t,"__esModule",{value:!0}),t.NonceControl=void 0;var a=n(1386);t.NonceControl=function(e){return e.name||(e.name="_wpnonce"),e.referrer||(e.referrer=!0),React.createElement(a.Fragment,null,React.createElement("input",{type:"hidden",name:e.name,id:e.name,value:e.nonce}),e.referrer&&React.createElement("input",{type:"hidden",name:"_wp_http_referer",value:e.referrer}))}},1620:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PostTypeSettingsPanel=void 0;var a,r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},o=n(2057),i=n(1386),l=n(4011),c=n(8566),s=n(3244),u=(a=n(5470))&&a.__esModule?a:{default:a},d=wp.components.PanelRow;t.PostTypeSettingsPanel=function(e){var t=e.expireTypeList[e.postType],n=(0,i.useState)(e.settings.taxonomy),a=r(n,2),m=a[0],p=a[1],f=(0,i.useState)([]),y=r(f,2),v=y[0],b=y[1],g=(0,i.useState)(!1),h=r(g,2),E=h[0],x=h[1],S=(0,i.useState)([]),_=r(S,2),A=_[0],C=_[1],w=(0,i.useState)(e.settings.howToExpire),R=r(w,2),N=R[0],T=R[1],P=(0,i.useState)(e.settings.active),O=r(P,2),k=O[0],F=O[1],D=(0,i.useState)(e.settings.defaultExpireOffset),I=r(D,2),j=I[0],B=I[1],M=(0,i.useState)(e.settings.emailNotification),V=r(M,2),L=V[0],H=V[1],Q=(0,i.useState)(e.settings.autoEnabled),U=r(Q,2),W=U[0],q=U[1],z=(0,i.useState)(!0),Y=r(z,2),G=Y[0],J=Y[1],Z=(0,i.useState)(""),K=r(Z,2),X=K[0],$=K[1],ee=(0,i.useState)(""),te=r(ee,2),ne=te[0],ae=te[1],re=(0,i.useState)(t),oe=r(re,2),ie=oe[0],le=oe[1],ce=(0,i.useState)(e.settings.newStatus),se=r(ce,2),ue=se[0],de=se[1],me=(0,i.useState)(!1),pe=r(me,2),fe=pe[0],ye=pe[1],ve=j||e.settings.globalDefaultExpireOffset,be=["category","category-add","category-remove","category-remove-all"];(0,i.useEffect)((function(){var t;0===e.taxonomiesList.length&&(t=ie.filter((function(e){return-1===be.indexOf(e.value)})),le(t))}),[]),(0,i.useEffect)((function(){m&&e.taxonomiesList&&(x(!0),(0,s.apiFetch)({path:(0,l.addQueryArgs)("publishpress-future/v1/terms/"+m)}).then((function(t){var n=[],a=null,r=void 0;t.terms.forEach((function(t){r={value:t.id,label:t.name},n.push(r),m===e.settings.taxonomy&&e.settings.terms.includes(t.id)&&(null===a&&(a=[]),a.push(r.label))})),b(n),C(a),x(!1)})),e.taxonomiesList.forEach((function(e){e.value===m&&ae(e.label)})))}),[m]),(0,i.useEffect)((function(){if(ne){var e=[];t.forEach((function(t){var n=t.label;-1!==be.indexOf(t.value)&&(n=n.replace("%s",ne.toLowerCase())),e.push({value:t.value,label:n})})),le(e)}}),[ne]),(0,i.useEffect)((function(){G&&e.onDataIsValid&&e.onDataIsValid(e.postType),!G&&e.onDataIsInvalid&&e.onDataIsInvalid(e.postType)}),[G]),(0,i.useEffect)((function(){fe&&e.onValidationStarted&&e.onValidationStarted(e.postType),!fe&&e.onValidationFinished&&e.onValidationFinished(e.postType)}),[fe]);var ge=v.map((function(e){return e.label})),he=[React.createElement(o.SettingRow,{label:e.text.fieldActive,key:"expirationdate_activemeta-"+e.postType},React.createElement(o.CheckboxControl,{name:"expirationdate_activemeta-"+e.postType,checked:k||!1,label:e.text.fieldActiveLabel,onChange:function(e){F(e)}}))];k&&(he.push(React.createElement(o.SettingRow,{label:e.text.fieldAutoEnable,key:"expirationdate_autoenable-"+e.postType},React.createElement(o.CheckboxControl,{name:"expirationdate_autoenable-"+e.postType,checked:W||!1,label:e.text.fieldAutoEnableLabel,onChange:function(e){q(e)}}))),he.push(React.createElement(o.SettingRow,{label:e.text.fieldTaxonomy,key:"expirationdate_taxonomy-"+e.postType},React.createElement(o.SelectControl,{name:"expirationdate_taxonomy-"+e.postType,options:e.taxonomiesList,selected:m,noItemFoundMessage:e.text.noItemsfound,description:e.text.fieldTaxonomyDescription,data:e.postType,onChange:function(e){p(e)}}))),he.push(React.createElement(o.SettingRow,{label:e.text.fieldHowToExpire,key:"expirationdate_expiretype-"+e.postType},React.createElement(o.SelectControl,{name:"expirationdate_expiretype-"+e.postType,className:"pe-howtoexpire",options:ie,description:e.text.fieldHowToExpireDescription,selected:N,onChange:function(e){T(e)}}),"change-status"===N&&React.createElement(o.SelectControl,{name:"expirationdate_newstatus-"+e.postType,options:e.statusesList,selected:ue,onChange:de}),e.taxonomiesList.length>0&&["category","category-add","category-remove"].indexOf(N)>-1&&React.createElement(o.TokensControl,{label:e.text.fieldTerm,name:"expirationdate_terms-"+e.postType,options:ge,value:A,isLoading:E,onChange:function(e){C(e)},description:e.text.fieldTermDescription,maxSuggestions:1e3,expandOnFocus:!0,autoSelectFirstMatch:!0}))),he.push(React.createElement(o.SettingRow,{label:e.text.fieldDefaultDateTimeOffset,key:"expired-custom-date-"+e.postType},React.createElement(o.TextControl,{name:"expired-custom-date-"+e.postType,value:j,loading:fe,placeholder:e.settings.globalDefaultExpireOffset,description:e.text.fieldDefaultDateTimeOffsetDescription,unescapedDescription:!0,onChange:function(e){B(e)}}),React.createElement(u.default,{offset:ve,label:e.text.datePreview,labelDatePreview:e.text.datePreviewCurrent,labelOffsetPreview:e.text.datePreviewComputed,setValidationErrorCallback:$,setHasPendingValidationCallback:ye,setHasValidDataCallback:J}))),he.push(React.createElement(o.SettingRow,{label:e.text.fieldWhoToNotify,key:"expirationdate_emailnotification-"+e.postType},React.createElement(o.TextControl,{name:"expirationdate_emailnotification-"+e.postType,className:"large-text",value:L,description:e.text.fieldWhoToNotifyDescription,onChange:function(e){H(e)}})))),he=(0,c.applyFilters)("expirationdate_settings_posttype",he,e,k,i.useState);var Ee=e.isVisible?"pe-settings-fieldset":"pe-settings-fieldset hidden";return React.createElement("div",{className:Ee},React.createElement(o.SettingsTable,{bodyChildren:he}),!G&&React.createElement(d,null,React.createElement("div",{className:"publishpress-future-notice publishpress-future-notice-error"},React.createElement("strong",null,e.text.error,":")," ",X)))}},8138:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PostTypesSettingsPanels=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(2057),o=n(1386);t.PostTypesSettingsPanels=function(e){var t=(0,o.useState)(Object.keys(e.settings)[0]),n=a(t,2),i=n[0],l=n[1],c=[],s=!0,u=!1,d=void 0;try{for(var m,p=Object.entries(e.settings)[Symbol.iterator]();!(s=(m=p.next()).done);s=!0){var f=m.value,y=a(f,2),v=y[0],b=y[1];c.push(React.createElement(r.PostTypeSettingsPanel,{legend:b.label,text:e.text,postType:v,settings:b,expireTypeList:e.expireTypeList,taxonomiesList:e.taxonomiesList[v],statusesList:e.statusesList[v],key:v+"-panel",onDataIsValid:e.onDataIsValid,onDataIsInvalid:e.onDataIsInvalid,onValidationStarted:e.onValidationStarted,onValidationFinished:e.onValidationFinished,isVisible:i===v}))}}catch(e){u=!0,d=e}finally{try{!s&&p.return&&p.return()}finally{if(u)throw d}}var g=function(e){e.preventDefault(),l(e.target.hash.replace("#","").replace("-panel",""))},h=[],E=!1,x=!0,S=!1,_=void 0;try{for(var A,C=Object.entries(e.settings)[Symbol.iterator]();!(x=(A=C.next()).done);x=!0){var w=A.value,R=a(w,2),N=R[0],T=R[1];E=i===N,h.push(React.createElement("a",{href:"#"+N+"-panel",className:"nav-tab "+(E?"nav-tab-active":""),key:N+"-tab",onClick:g},T.label))}}catch(e){S=!0,_=e}finally{try{!x&&C.return&&C.return()}finally{if(S)throw _}}return React.createElement("div",null,React.createElement("nav",{className:"nav-tab-wrapper"},h),c)}},2858:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SelectControl=void 0;var a=n(1386),r=n(2214);t.SelectControl=function(e){return React.createElement(a.Fragment,null,0===e.options.length&&React.createElement("div",null,e.noItemFoundMessage),e.options.length>0&&React.createElement(r.SelectControl,{label:e.label,name:e.name,id:e.name,className:e.className,value:e.selected,onChange:function(t){e.onChange(t)},"data-data":e.data,options:e.options}),e.children,React.createElement("p",{className:"description"},e.description))}},9005:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingRow=void 0,n(1386),t.SettingRow=function(e){return React.createElement("tr",{valign:"top"},React.createElement("th",{scope:"row"},React.createElement("label",{htmlFor:""},e.label)),React.createElement("td",null,e.children))}},5786:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsFieldset=function(e){return React.createElement("fieldset",{className:e.className},React.createElement("legend",null,e.legend),e.children)}},9892:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsForm=function(e){return React.createElement("form",{method:"post"},e.children)}},5681:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsSection=void 0;var a=n(1386);t.SettingsSection=function(e){return React.createElement(a.Fragment,null,React.createElement("h2",null,e.title),React.createElement("p",null,e.description),e.children)}},6772:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsTable=function(e){return React.createElement("table",{className:"form-table"},React.createElement("tbody",null,e.bodyChildren))}},242:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Spinner=function(e){return React.createElement("span",{className:"publishpress-future-spinner"},React.createElement("div",null),React.createElement("div",null),React.createElement("div",null),React.createElement("div",null))}},4438:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SubmitButton=function(e){return React.createElement("input",{type:"submit",name:e.name,value:e.text,disabled:e.disabled,className:"button-primary"})}},6301:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TextControl=void 0;var a=n(1386),r=n(2214),o=n(2057);t.TextControl=function(e){var t;t=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description);var n=e.className?e.className:"";return e.loading&&(n+=" publishpress-future-loading publishpress-future-loading-input"),React.createElement(a.Fragment,null,React.createElement("div",{className:n},React.createElement(r.TextControl,{type:"text",label:e.label,name:e.name,id:e.name,className:e.className,value:e.value,placeholder:e.placeholder,onChange:function(t){e.onChange&&e.onChange(t)}}),e.loading&&React.createElement(o.Spinner,null),t))}},3190:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ToggleArrowButton=void 0;var a=n(2214);t.ToggleArrowButton=function(e){var t=e.iconExpanded?e.iconExpanded:"arrow-up-alt2",n=e.iconCollapsed?e.iconCollapsed:"arrow-down-alt2",r=e.isExpanded?t:n,o=e.isExpanded?e.titleExpanded:e.titleCollapsed;return React.createElement(a.Button,{isSmall:!0,title:o,icon:r,onClick:function(){e.onClick&&e.onClick()},className:e.className})}},4873:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ToggleCalendarDatePicker=void 0;var a=n(3190),r=n(4620),o=n(1386);t.ToggleCalendarDatePicker=function(e){var t=e.isExpanded,n=e.strings,i=e.onToggleCalendar,l=e.currentDate,c=e.onChangeDate,s=e.is12Hour,u=e.startOfWeek;return(0,o.useEffect)((function(){var e=document.querySelector(".future-action-calendar-toggle");if(e){var t=e.nextElementSibling;if(t){var n=t.querySelector(".components-datetime__time");if(n){var a=n.nextSibling;a&&t.insertBefore(e,a)}}}})),React.createElement(o.Fragment,null,React.createElement(a.ToggleArrowButton,{className:"future-action-calendar-toggle",isExpanded:t,iconExpanded:"arrow-up-alt2",iconCollapsed:"calendar",titleExpanded:n.hideCalendar,titleCollapsed:n.showCalendar,onClick:i}),React.createElement(r.DateTimePicker,{currentDate:l,onChange:c,__nextRemoveHelpButton:!0,is12Hour:s,startOfWeek:u}))}},3948:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TokensControl=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(1386),o=n(2214);t.TokensControl=function(e){var t=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,r.useState)(""),2),n=t[0],i=t[1];(0,r.useEffect)((function(){e.value&&i(e.value.join(","))}),[e.value]);var l=void 0;e.description&&(l=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description));var c=e.value?e.value:[];return React.createElement(r.Fragment,null,React.createElement(o.FormTokenField,{label:e.label,value:c,suggestions:e.options,onChange:function(t){e.onChange&&e.onChange(t),"object"===(void 0===t?"undefined":a(t))?i(t.join(",")):i("")},maxSuggestions:e.maxSuggestions,className:"publishpres-future-token-field",__experimentalExpandOnFocus:e.expandOnFocus,__experimentalAutoSelectFirstMatch:e.autoSelectFirstMatch}),React.createElement("input",{type:"hidden",name:e.name,value:n}),l)}},8225:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TrueFalseControl=function(e){var t=wp.element.Fragment,n=function(t){e.onChange&&e.onChange(t.target.value===e.trueValue&&jQuery(t.target).is(":checked"))};return React.createElement(t,null,React.createElement("input",{type:"radio",name:e.name,id:e.name+"-true",value:e.trueValue,defaultChecked:e.selected,onChange:n}),React.createElement("label",{htmlFor:e.name+"-true"},e.trueLabel),"  ",React.createElement("input",{type:"radio",name:e.name,defaultChecked:!e.selected,id:e.name+"-false",value:e.falseValue,onChange:n}),React.createElement("label",{htmlFor:e.name+"-false"},e.falseLabel),React.createElement("p",{className:"description"},e.description))}},2057:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var a=n(5442);Object.defineProperty(t,"ButtonsPanel",{enumerable:!0,get:function(){return a.ButtonsPanel}});var r=n(8418);Object.defineProperty(t,"FutureActionPanel",{enumerable:!0,get:function(){return r.FutureActionPanel}});var o=n(2864);Object.defineProperty(t,"FutureActionPanelBlockEditor",{enumerable:!0,get:function(){return o.FutureActionPanelBlockEditor}});var i=n(3571);Object.defineProperty(t,"FutureActionPanelClassicEditor",{enumerable:!0,get:function(){return i.FutureActionPanelClassicEditor}});var l=n(5437);Object.defineProperty(t,"FutureActionPanelQuickEdit",{enumerable:!0,get:function(){return l.FutureActionPanelQuickEdit}});var c=n(2094);Object.defineProperty(t,"FutureActionPanelBulkEdit",{enumerable:!0,get:function(){return c.FutureActionPanelBulkEdit}});var s=n(1620);Object.defineProperty(t,"PostTypeSettingsPanel",{enumerable:!0,get:function(){return s.PostTypeSettingsPanel}});var u=n(8138);Object.defineProperty(t,"PostTypesSettingsPanels",{enumerable:!0,get:function(){return u.PostTypesSettingsPanels}});var d=n(9005);Object.defineProperty(t,"SettingRow",{enumerable:!0,get:function(){return d.SettingRow}});var m=n(5786);Object.defineProperty(t,"SettingsFieldset",{enumerable:!0,get:function(){return m.SettingsFieldset}});var p=n(9892);Object.defineProperty(t,"SettingsForm",{enumerable:!0,get:function(){return p.SettingsForm}});var f=n(5681);Object.defineProperty(t,"SettingsSection",{enumerable:!0,get:function(){return f.SettingsSection}});var y=n(6772);Object.defineProperty(t,"SettingsTable",{enumerable:!0,get:function(){return y.SettingsTable}});var v=n(4438);Object.defineProperty(t,"SubmitButton",{enumerable:!0,get:function(){return v.SubmitButton}});var b=n(4311);Object.defineProperty(t,"CheckboxControl",{enumerable:!0,get:function(){return b.CheckboxControl}});var g=n(2858);Object.defineProperty(t,"SelectControl",{enumerable:!0,get:function(){return g.SelectControl}});var h=n(6301);Object.defineProperty(t,"TextControl",{enumerable:!0,get:function(){return h.TextControl}});var E=n(3948);Object.defineProperty(t,"TokensControl",{enumerable:!0,get:function(){return E.TokensControl}});var x=n(1013);Object.defineProperty(t,"NonceControl",{enumerable:!0,get:function(){return x.NonceControl}});var S=n(8225);Object.defineProperty(t,"TrueFalseControl",{enumerable:!0,get:function(){return S.TrueFalseControl}});var _=n(242);Object.defineProperty(t,"Spinner",{enumerable:!0,get:function(){return _.Spinner}});var A=n(5470);Object.defineProperty(t,"DateOffsetPreview",{enumerable:!0,get:function(){return A.DateOffsetPreview}})},7039:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n=t.getCurrentTimeInSeconds=function(){return o((new Date).getTime())},a=(t.getCurrentTimeAsTimestamp=function(){return a(n())},t.formatUnixTimeToTimestamp=function(e){var t=new Date(o(e));return t.getFullYear()+"-"+("0"+(t.getMonth()+1)).slice(-2)+"-"+("0"+t.getDate()).slice(-2)+" "+("0"+t.getHours()).slice(-2)+":"+("0"+t.getMinutes()).slice(-2)+":"+("0"+t.getSeconds()).slice(-2)}),r=(t.formatTimestampToUnixTime=function(e){var t=new Date(e);return o(t.getTime())},t.timeIsInSeconds=function(e){return parseInt(e).toString().length<=10}),o=t.normalizeUnixTimeToSeconds=function(e){return e=parseInt(e),r()?e:e/1e3};t.normalizeUnixTimeToMilliseconds=function(e){return e=parseInt(e),r()?1e3*e:e}},8409:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=(t.compact=function(e){return e?(Array.isArray(e)||"object"!==(void 0===e?"undefined":n(e))||(e=Object.values(e)),e.filter((function(e){return null!=e&&""!==e}))):[]},t.debugLogFactory=function(e){return function(t){for(var n=arguments.length,a=Array(n>1?n-1:0),r=1;r{n.d(t,{A:()=>l});var a=n(1354),r=n.n(a),o=n(6314),i=n.n(o)()(r());i.push([e.id,".publishpress-future-date-preview .publishpress-future-date-preview-value {\n font-family: monospace;\n background-color: #e7e7e7;\n padding: 2px 4px;\n}\n\n.publishpress-future-date-preview.compact .publishpress-future-date-preview-label {\n display: block;\n}\n\n.publishpress-future-date-preview.compact {\n margin-bottom: 8px;\n}\n\n.publishpress-future-date-preview.compact h4 {\n font-size: 11px;\n font-weight: 500;\n line-height: 1.4;\n text-transform: uppercase;\n display: inline-block;\n margin-bottom: calc(8px);\n padding: 0px;\n flex-shrink: 0;\n margin-right: 12px;\n max-width: 75%;\n margin-top: 0;\n}\n\n.publishpress-future-notice.publishpress-future-notice-error {\n color: #dc3232;\n}\n","",{version:3,sources:["webpack://./assets/jsx/components/css/dateOffsetPreview.css"],names:[],mappings:"AAAA;IACI,sBAAsB;IACtB,yBAAyB;IACzB,gBAAgB;AACpB;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,kBAAkB;AACtB;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,yBAAyB;IACzB,qBAAqB;IACrB,wBAAwB;IACxB,YAAY;IACZ,cAAc;IACd,kBAAkB;IAClB,cAAc;IACd,aAAa;AACjB;;AAEA;IACI,cAAc;AAClB",sourcesContent:[".publishpress-future-date-preview .publishpress-future-date-preview-value {\n font-family: monospace;\n background-color: #e7e7e7;\n padding: 2px 4px;\n}\n\n.publishpress-future-date-preview.compact .publishpress-future-date-preview-label {\n display: block;\n}\n\n.publishpress-future-date-preview.compact {\n margin-bottom: 8px;\n}\n\n.publishpress-future-date-preview.compact h4 {\n font-size: 11px;\n font-weight: 500;\n line-height: 1.4;\n text-transform: uppercase;\n display: inline-block;\n margin-bottom: calc(8px);\n padding: 0px;\n flex-shrink: 0;\n margin-right: 12px;\n max-width: 75%;\n margin-top: 0;\n}\n\n.publishpress-future-notice.publishpress-future-notice-error {\n color: #dc3232;\n}\n"],sourceRoot:""}]);const l=i},6314:e=>{e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",a=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),a&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),a&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,a,r,o){"string"==typeof e&&(e=[[null,e,void 0]]);var i={};if(a)for(var l=0;l0?" ".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),r&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=r):u[4]="".concat(r)),t.push(u))}},t}},1354:e=>{e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var a=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(a),o="/*# ".concat(r," */");return[t].concat([o]).join("\n")}return[t].join("\n")}},5338:(e,t,n)=>{var a=n(5206);t.createRoot=a.createRoot,t.hydrateRoot=a.hydrateRoot},9922:(e,t,n)=>{n.r(t),n.d(t,{default:()=>b});var a=n(5072),r=n.n(a),o=n(7825),i=n.n(o),l=n(7659),c=n.n(l),s=n(5056),u=n.n(s),d=n(540),m=n.n(d),p=n(1113),f=n.n(p),y=n(1461),v={};v.styleTagTransform=f(),v.setAttributes=u(),v.insert=c().bind(null,"head"),v.domAPI=i(),v.insertStyleElement=m(),r()(y.A,v);const b=y.A&&y.A.locals?y.A.locals:void 0},5072:e=>{var t=[];function n(e){for(var n=-1,a=0;a{var t={};e.exports=function(e,n){var a=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(!a)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");a.appendChild(n)}},540:e=>{e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},5056:(e,t,n)=>{e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},7825:e=>{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 a="";n.supports&&(a+="@supports (".concat(n.supports,") {")),n.media&&(a+="@media ".concat(n.media," {"));var r=void 0!==n.layer;r&&(a+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),a+=n.css,r&&(a+="}"),n.media&&(a+="}"),n.supports&&(a+="}");var o=n.sourceMap;o&&"undefined"!=typeof btoa&&(a+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),t.styleTagTransform(a,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},1113:e=>{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))}}},5206:e=>{e.exports=ReactDOM},6319:e=>{e.exports=publishpressFutureSettingsGeneralConfig},3244:e=>{e.exports=wp},2214:e=>{e.exports=wp.components},7562:e=>{e.exports=wp.data},1386:e=>{e.exports=wp.element},8566:e=>{e.exports=wp.hooks},9986:e=>{e.exports=wp.plugins},4011:e=>{e.exports=wp.url}},t={};function n(a){var r=t[a];if(void 0!==r)return r.exports;var o=t[a]={id:a,exports:{}};return e[a](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 a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},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 a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(2057),o=n(1386),i=n(5338),l=n(6319),c=document.getElementById("expiration-date-preview"),s=React.createElement((function(e){var t=(0,o.useState)(!0),n=a(t,2),i=n[0],c=n[1],s=(0,o.useState)(""),u=a(s,2),d=u[0],m=u[1],p=(0,o.useState)(!1),f=a(p,2),y=(f[0],f[1]),v=(0,o.useState)(""),b=a(v,2),g=b[0],h=b[1];return(0,o.useEffect)((function(){jQuery("#expired-custom-expiration-date").on("keyup",(function(){h(jQuery(this).val())})),h(jQuery("#expired-custom-expiration-date").val())}),[]),React.createElement(o.StrictMode,null,React.createElement(r.DateOffsetPreview,{offset:g,label:l.text.datePreview,labelDatePreview:l.text.datePreviewCurrent,labelOffsetPreview:l.text.datePreviewComputed,setValidationErrorCallback:function(e){e?(c(!1),m(e)):(c(!0),m(""))},setHasPendingValidationCallback:function(e){y(e)},setHasValidDataCallback:function(e){y(!1),c(e)}}),!i&&d&&React.createElement("div",{className:"publishpress-future-notice publishpress-future-notice-error"},React.createElement("p",null,l.text.error,": ",d)))}),null);(0,i.createRoot)(c).render(s)})(); +//# sourceMappingURL=settings-general.js.map \ No newline at end of file diff --git a/assets/js/settings-general.js.map b/assets/js/settings-general.js.map new file mode 100644 index 000000000..190a11cc7 --- /dev/null +++ b/assets/js/settings-general.js.map @@ -0,0 +1 @@ +{"version":3,"file":"settings-general.js","mappings":"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","sources":["webpack://post-expirator/./assets/jsx/components/ButtonsPanel.jsx","webpack://post-expirator/./assets/jsx/components/CheckboxControl.jsx","webpack://post-expirator/./assets/jsx/components/DateOffsetPreview.jsx","webpack://post-expirator/./assets/jsx/components/DateTimePicker.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanel.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelAfterActionField.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelBlockEditor.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelBulkEdit.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelClassicEditor.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelQuickEdit.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelTop.jsx","webpack://post-expirator/./assets/jsx/components/NonceControl.jsx","webpack://post-expirator/./assets/jsx/components/PostTypeSettingsPanel.jsx","webpack://post-expirator/./assets/jsx/components/PostTypesSettingsPanels.jsx","webpack://post-expirator/./assets/jsx/components/SelectControl.jsx","webpack://post-expirator/./assets/jsx/components/SettingRow.jsx","webpack://post-expirator/./assets/jsx/components/SettingsFieldset.jsx","webpack://post-expirator/./assets/jsx/components/SettingsForm.jsx","webpack://post-expirator/./assets/jsx/components/SettingsSection.jsx","webpack://post-expirator/./assets/jsx/components/SettingsTable.jsx","webpack://post-expirator/./assets/jsx/components/Spinner.jsx","webpack://post-expirator/./assets/jsx/components/SubmitButton.jsx","webpack://post-expirator/./assets/jsx/components/TextControl.jsx","webpack://post-expirator/./assets/jsx/components/ToggleArrowButton.jsx","webpack://post-expirator/./assets/jsx/components/ToggleCalendarDatePicker.jsx","webpack://post-expirator/./assets/jsx/components/TokensControl.jsx","webpack://post-expirator/./assets/jsx/components/TrueFalseControl.jsx","webpack://post-expirator/./assets/jsx/components/index.jsx","webpack://post-expirator/./assets/jsx/time.jsx","webpack://post-expirator/./assets/jsx/utils.jsx","webpack://post-expirator/./assets/jsx/components/css/dateOffsetPreview.css","webpack://post-expirator/./node_modules/css-loader/dist/runtime/api.js","webpack://post-expirator/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://post-expirator/./node_modules/react-dom/client.js","webpack://post-expirator/./assets/jsx/components/css/dateOffsetPreview.css?541a","webpack://post-expirator/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://post-expirator/external var \"ReactDOM\"","webpack://post-expirator/external var \"publishpressFutureSettingsGeneralConfig\"","webpack://post-expirator/external var \"wp\"","webpack://post-expirator/external var \"wp.components\"","webpack://post-expirator/external var \"wp.data\"","webpack://post-expirator/external var \"wp.element\"","webpack://post-expirator/external var \"wp.hooks\"","webpack://post-expirator/external var \"wp.plugins\"","webpack://post-expirator/external var \"wp.url\"","webpack://post-expirator/webpack/bootstrap","webpack://post-expirator/webpack/runtime/compat get default export","webpack://post-expirator/webpack/runtime/define property getters","webpack://post-expirator/webpack/runtime/hasOwnProperty shorthand","webpack://post-expirator/webpack/runtime/make namespace object","webpack://post-expirator/webpack/runtime/nonce","webpack://post-expirator/./assets/jsx/settings-general.jsx"],"sourcesContent":["/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const ButtonsPanel = function (props) {\n return (\n
\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment, useState } from \"@wordpress/element\";\nimport { CheckboxControl as WPCheckboxControl } from \"@wordpress/components\";\n\nexport const CheckboxControl = function (props) {\n const [checked, setChecked] = useState(props.checked || false);\n\n let description;\n\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n\n const onChange = function (value) {\n setChecked(value);\n\n if (props.onChange) {\n props.onChange(value);\n }\n };\n\n return (\n \n \n\n {description}\n \n )\n}\n","import {\n useState,\n useEffect,\n useRef,\n Fragment\n} from '@wordpress/element';\nimport { addQueryArgs } from '@wordpress/url';\nimport { apiFetch } from '&wp';\n\nrequire('./css/dateOffsetPreview.css');\n\nexport const DateOffsetPreview = ({\n offset,\n label,\n labelDatePreview,\n labelOffsetPreview,\n setValidationErrorCallback,\n setHasPendingValidationCallback,\n setHasValidDataCallback,\n compactView = false\n}) => {\n const [offsetPreview, setOffsetPreview] = useState('');\n const [currentTime, setCurrentTime] = useState();\n\n const apiRequestControllerRef = useRef(new AbortController());\n\n const validateDateOffset = () => {\n if (offset) {\n const controller = apiRequestControllerRef.current;\n\n if (controller) {\n controller.abort();\n }\n\n apiRequestControllerRef.current = new AbortController();\n const { signal } = apiRequestControllerRef.current;\n\n setHasPendingValidationCallback(true);\n\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/settings/validate-expire-offset`),\n method: 'POST',\n data: {\n offset\n },\n signal,\n }).then((result) => {\n setHasPendingValidationCallback(false);\n\n setHasValidDataCallback(result.isValid);\n setValidationErrorCallback(result.message);\n\n if (result.isValid) {\n setOffsetPreview(result.preview);\n setCurrentTime(result.currentTime);\n } else {\n setOffsetPreview('');\n }\n }).catch((error) => {\n if (error.name === 'AbortError') {\n return;\n }\n\n setHasPendingValidationCallback(false);\n setHasValidDataCallback(false);\n setValidationErrorCallback(error.message);\n setOffsetPreview('');\n });\n }\n }\n\n useEffect(() => {\n validateDateOffset();\n }, [offset]);\n\n const compactClass = compactView ? ' compact' : '';\n\n return (\n \n { offset && (\n
\n

{ label }

\n
\n
\n { labelDatePreview }: \n {currentTime}\n
\n
\n { labelOffsetPreview }: \n {offsetPreview}\n
\n
\n
\n )}\n
\n )\n}\n\nexport default DateOffsetPreview;\n","import { normalizeUnixTimeToMilliseconds } from \"../time\";\nimport { DateTimePicker as WPDateTimePicker } from \"@wordpress/components\";\n\n\nexport const DateTimePicker = ({currentDate, onChange, is12Hour, startOfWeek}) => {\n if (typeof currentDate === 'number') {\n currentDate = normalizeUnixTimeToMilliseconds(currentDate);\n }\n\n return (\n \n )\n}\n","import { compact } from '../utils';\nimport { ToggleCalendarDatePicker } from './ToggleCalendarDatePicker';\nimport { PluginArea } from '@wordpress/plugins';\nimport { Fill, Slot, SlotFillProvider } from '@wordpress/components';\nimport { FutureActionPanelAfterActionField } from './FutureActionPanelAfterActionField';\nimport { FutureActionPanelTop } from './FutureActionPanelTop';\n\nconst { PanelRow, CheckboxControl, SelectControl, FormTokenField, Spinner, BaseControl } = wp.components;\nconst { Fragment, useEffect, useState } = wp.element;\nconst { decodeEntities } = wp.htmlEntities;\nconst { addQueryArgs } = wp.url;\nconst {\n useSelect,\n useDispatch\n} = wp.data;\nconst { apiFetch } = wp;\n\nexport const FutureActionPanel = (props) => {\n const {\n action,\n date,\n enabled,\n terms,\n taxonomy,\n taxonomyName,\n termsListByName,\n termsListById,\n isFetchingTerms,\n calendarIsVisible,\n hasValidData,\n newStatus,\n } = useSelect((select) => {\n return {\n action: select(props.storeName).getAction(),\n date: select(props.storeName).getDate(),\n enabled: select(props.storeName).getEnabled(),\n terms: select(props.storeName).getTerms(),\n taxonomy: select(props.storeName).getTaxonomy(),\n taxonomyName: select(props.storeName).getTaxonomyName(),\n termsListByName: select(props.storeName).getTermsListByName(),\n termsListById: select(props.storeName).getTermsListById(),\n isFetchingTerms: select(props.storeName).getIsFetchingTerms(),\n calendarIsVisible: select(props.storeName).getCalendarIsVisible(),\n hasValidData: select(props.storeName).getHasValidData(),\n newStatus: select(props.storeName).getNewStatus(),\n };\n });\n\n const [validationError, setValidationError] = useState('');\n\n const {\n setAction,\n setDate,\n setEnabled,\n setTerms,\n setTaxonomy,\n setTermsListByName,\n setTermsListById,\n setTaxonomyName,\n setIsFetchingTerms,\n setCalendarIsVisible,\n setHasValidData,\n setNewStatus\n } = useDispatch(props.storeName);\n\n const mapTermsListById = (terms) => {\n if (typeof terms !== 'object' || terms === null) {\n return {};\n }\n\n return terms.map((term) => {\n return termsListById[term];\n });\n }\n\n const insertTerm = (term) => {\n termsListByName[term] = { id: term, count: 0, description: \"\", link: \"\", name: term, slug: term, taxonomy: taxonomy };\n termsListById[term] = term;\n setTermsListByName(termsListByName);\n setTermsListById(termsListById);\n setTerms([...terms, term]);\n\n }\n\n const mapTermsListByName = (terms) => {\n if (typeof terms !== 'object' || terms === null) {\n return {};\n }\n\n return terms.map((term) => {\n if (termsListByName[term]) {\n return termsListByName[term].id;\n }\n\n insertTerm(term);\n\n return term;\n });\n }\n\n const callOnChangeData = (attribute, value) => {\n if (typeof props.onChangeData === 'function') {\n props.onChangeData(attribute, value);\n }\n }\n\n const handleEnabledChange = (isChecked) => {\n setEnabled(isChecked);\n\n if (isChecked) {\n setAction(props.action);\n setDate(props.date);\n setNewStatus(props.newStatus);\n setTerms(props.terms);\n setTaxonomy(props.taxonomy);\n\n fetchTerms();\n }\n\n callOnChangeData('enabled', isChecked);\n }\n\n const handleActionChange = (value) => {\n setAction(value);\n\n callOnChangeData('action', value);\n }\n\n const handleNewStatusChange = (value) => {\n setNewStatus(value);\n\n callOnChangeData('newStatus', value);\n }\n\n const handleDateChange = (value) => {\n setDate(value);\n\n callOnChangeData('date', value);\n }\n\n const handleTermsChange = (value) => {\n value = mapTermsListByName(value);\n\n setTerms(value);\n\n callOnChangeData('terms', value);\n }\n\n const fetchTerms = () => {\n let termsListByName = {};\n let termsListById = {};\n\n if (!taxonomy) {\n return;\n }\n\n setIsFetchingTerms(true);\n\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/terms/${taxonomy}`),\n }).then((result) => {\n result.terms.forEach(term => {\n termsListByName[decodeEntities(term.name)] = term;\n termsListById[term.id] = decodeEntities(term.name);\n });\n\n setTermsListByName(termsListByName);\n setTermsListById(termsListById);\n setTaxonomyName(decodeEntities(result.taxonomyName));\n setIsFetchingTerms(false);\n });\n }\n\n const storeCalendarIsVisibleOnStorage = (value) => {\n localStorage.setItem('FUTURE_ACTION_CALENDAR_IS_VISIBLE_' + props.context, value ? '1' : '0');\n }\n\n const getCalendarIsVisibleFromStorage = () => {\n return localStorage.getItem('FUTURE_ACTION_CALENDAR_IS_VISIBLE_' + props.context);\n }\n\n useEffect(() => {\n if (props.autoEnableAndHideCheckbox) {\n setEnabled(true);\n } else {\n setEnabled(props.enabled);\n }\n\n setAction(props.action);\n setNewStatus(props.newStatus);\n setDate(props.date);\n setTerms(props.terms);\n setTaxonomy(props.taxonomy);\n\n if (getCalendarIsVisibleFromStorage() === null) {\n setCalendarIsVisible(props.calendarIsVisible);\n } else {\n setCalendarIsVisible(getCalendarIsVisibleFromStorage() === '1' && ! props.hideCalendarByDefault);\n }\n\n // We need to get the value directly from the props because the value from the store is not updated yet\n if (props.enabled) {\n if (props.isCleanNewPost) {\n // Force populate the default values\n handleEnabledChange(true);\n }\n\n fetchTerms();\n }\n }, []);\n\n useEffect(() => {\n storeCalendarIsVisibleOnStorage(calendarIsVisible);\n }, [calendarIsVisible]);\n\n useEffect(() => {\n if (hasValidData && props.onDataIsValid) {\n props.onDataIsValid();\n }\n\n if (!hasValidData && props.onDataIsInvalid) {\n props.onDataIsInvalid();\n }\n }, [hasValidData]);\n\n let selectedTerms = [];\n if (terms && terms.length > 0 && termsListById) {\n selectedTerms = compact(mapTermsListById(terms));\n\n if (typeof selectedTerms === 'string') {\n selectedTerms = [];\n }\n }\n\n let termsListByNameKeys = [];\n if (typeof termsListByName === 'object' && termsListByName !== null) {\n termsListByNameKeys = Object.keys(termsListByName);\n }\n\n const panelClass = calendarIsVisible ? 'future-action-panel' : 'future-action-panel hidden-calendar';\n const contentPanelClass = calendarIsVisible ? 'future-action-panel-content' : 'future-action-panel-content hidden-calendar';\n const datePanelClass = calendarIsVisible ? 'future-action-date-panel' : 'future-action-date-panel hidden-calendar';\n\n let is24hour;\n if (props.timeFormat === 'inherited') {\n is24hour = !props.is12Hour;\n } else {\n is24hour = props.timeFormat === '24h';\n }\n\n const replaceCurlyBracketsWithLink = (string, href, target) => {\n const parts = string.split('{');\n const result = [];\n\n result.push(parts.shift());\n\n for (const part of parts) {\n const [before, after] = part.split('}');\n\n result.push(\n {before}\n );\n\n result.push(after);\n }\n\n return result;\n };\n\n // Remove items from actions list if related to taxonomies and there is no taxonmoy for the post type\n let actionsSelectOptions = props.actionsSelectOptions;\n if (!props.taxonomy) {\n actionsSelectOptions = props.actionsSelectOptions.filter((item) => {\n return ['category', 'category-add', 'category-remove', 'category-remove-all'].indexOf(item.value) === -1;\n });\n }\n\n const HelpText = replaceCurlyBracketsWithLink(props.strings.timezoneSettingsHelp, '/wp-admin/options-general.php#timezone_string', '_blank');\n const displayTaxonomyField = String(action).includes('category') && action !== 'category-remove-all';\n\n let termsFieldLabel = taxonomyName;\n switch (action) {\n case 'category':\n termsFieldLabel = props.strings.newTerms.replace('%s', taxonomyName);\n break;\n case 'category-remove':\n termsFieldLabel = props.strings.removeTerms.replace('%s', taxonomyName);\n break;\n case 'category-add':\n termsFieldLabel = props.strings.addTerms.replace('%s', taxonomyName);\n break;\n }\n\n const validateData = () => {\n let valid = true;\n\n if (!enabled) {\n setValidationError('');\n return true;\n }\n\n if (!action) {\n setValidationError(props.strings.errorActionRequired);\n valid = false;\n }\n\n if (!date) {\n setValidationError(props.strings.errorDateRequired);\n valid = false;\n }\n\n // Check if the date is in the past\n if (date && new Date(date) < new Date()) {\n setValidationError(props.strings.errorDateInPast);\n valid = false;\n }\n\n const isTermRequired = ['category', 'category-add', 'category-remove'].includes(action);\n const noTermIsSelected = terms.length === 0 || (terms.length === 1 && (terms[0] === '' || terms[0] === '0'));\n\n if (isTermRequired && noTermIsSelected) {\n setValidationError(props.strings.errorTermsRequired);\n valid = false;\n }\n\n if (valid) {\n setValidationError('');\n }\n\n return valid;\n }\n\n useEffect(() => {\n if (!enabled) {\n setHasValidData(true);\n setValidationError('');\n\n return;\n }\n\n setHasValidData(validateData());\n }, [action, date, enabled, terms, taxonomy]);\n\n // This adds a 'cancel' class to the input when the user clicks on the\n // field to prevent the form from being submitted. This is a workaround\n // for the issue on the quick-edit form where the form is submitted when\n // the user presses the 'Enter' key trying to add a term to the field.\n const forceIgnoreAutoSubmitOnEnter = (e) => {\n jQuery(e.target).addClass('cancel');\n }\n\n return (\n \n
\n {props.autoEnableAndHideCheckbox && (\n \n )}\n\n \n\n {!props.autoEnableAndHideCheckbox && (\n \n \n \n )}\n\n {enabled && (\n \n \n \n \n\n \n\n {action === 'change-status' &&\n \n \n \n }\n\n {\n displayTaxonomyField && (\n isFetchingTerms && (\n \n \n {`${props.strings.loading} (${taxonomyName})`}\n \n \n \n )\n || (!taxonomy && (\n \n \n
\n {props.strings.noTaxonomyFound}\n
\n
\n
\n )\n || (\n termsListByNameKeys.length === 0 && (\n \n \n
\n {props.strings.noTermsFound}\n
\n
\n
\n )\n || (\n \n \n \n \n \n )\n )\n )\n )\n }\n\n \n setCalendarIsVisible(!calendarIsVisible)}\n is12Hour={!is24hour}\n startOfWeek={props.startOfWeek}\n isExpanded={calendarIsVisible}\n strings={props.strings}\n />\n \n\n \n
\n
\n\n {HelpText}\n
\n
\n\n {!hasValidData && (\n \n \n
{validationError}
\n
\n
\n )}\n
\n )}\n
\n \n
\n );\n};\n","import { Slot, Fill } from '@wordpress/components';\n\nexport const FutureActionPanelAfterActionField = ({ children }) => (\n \n {children}\n \n);\n\nconst FutureActionPanelAfterActionFieldSlot = (props) => (\n \n);\n\nFutureActionPanelAfterActionField.Slot = FutureActionPanelAfterActionFieldSlot;\n\nexport default FutureActionPanelAfterActionField;\n","import { FutureActionPanel } from './';\n\nexport const FutureActionPanelBlockEditor = (props) => {\n const { PluginDocumentSettingPanel } = wp.editPost;\n const { useDispatch, select } = wp.data;\n\n const { editPost } = useDispatch('core/editor');\n\n const editPostAttribute = (newAttribute) => {\n const attribute = {\n publishpress_future_action: {}\n };\n\n // For each property on newAttribute, set the value on attribute\n for (const [name, value] of Object.entries(newAttribute)) {\n attribute.publishpress_future_action[name] = value;\n }\n\n editPost(attribute);\n }\n\n const onChangeData = (attribute, value) => {\n const store = select(props.storeName);\n\n const newAttribute = {\n 'enabled': store.getEnabled()\n }\n\n if (newAttribute.enabled) {\n newAttribute['action'] = store.getAction();\n newAttribute['newStatus'] = store.getNewStatus();\n newAttribute['date'] = store.getDate();\n newAttribute['terms'] = store.getTerms();\n newAttribute['taxonomy'] = store.getTaxonomy();\n newAttribute['extraData'] = store.getExtraData();\n }\n\n editPostAttribute(newAttribute);\n }\n\n const data = select('core/editor').getEditedPostAttribute('publishpress_future_action');\n\n const { lockPostSaving, unlockPostSaving } = useDispatch('core/editor');\n\n const onDataIsValid = () => {\n unlockPostSaving('future-action');\n }\n\n const onDataIsInvalid = () => {\n lockPostSaving('future-action');\n }\n\n return (\n \n
\n \n
\n \n );\n};\n","import { FutureActionPanel, SelectControl } from '.';\nimport { getElementByName } from '../utils';\n\nexport const FutureActionPanelBulkEdit = (props) => {\n const { useSelect, useDispatch, select } = wp.data;\n const { useEffect } = wp.element;\n\n const onChangeData = (attribute, value) => {\n getElementByName('future_action_bulk_enabled').value = select(props.storeName).getEnabled() ? 1 : 0;\n getElementByName('future_action_bulk_action').value = select(props.storeName).getAction();\n getElementByName('future_action_bulk_new_status').value = select(props.storeName).getNewStatus();\n getElementByName('future_action_bulk_date').value = select(props.storeName).getDate();\n getElementByName('future_action_bulk_terms').value = select(props.storeName).getTerms().join(',');\n getElementByName('future_action_bulk_taxonomy').value = select(props.storeName).getTaxonomy();\n }\n\n const date = useSelect((select) => select(props.storeName).getDate(), []);\n const enabled = useSelect((select) => select(props.storeName).getEnabled(), []);\n const action = useSelect((select) => select(props.storeName).getAction(), []);\n const newStatus = useSelect((select) => select(props.storeName).getNewStatus(), []);\n const terms = useSelect((select) => select(props.storeName).getTerms(), []);\n const taxonomy = useSelect((select) => select(props.storeName).getTaxonomy(), []);\n const changeAction = useSelect((select) => select(props.storeName).getChangeAction(), []);\n const hasValidData = useSelect((select) => select(props.storeName).getHasValidData(), []);\n\n const {\n setChangeAction\n } = useDispatch(props.storeName);\n\n let termsString = terms;\n if (typeof terms === 'object') {\n termsString = terms.join(',');\n }\n\n const handleStrategyChange = (value) => {\n setChangeAction(value);\n };\n\n const options = [\n { value: 'no-change', label: props.strings.noChange },\n { value: 'change-add', label: props.strings.changeAdd },\n { value: 'add-only', label: props.strings.addOnly },\n { value: 'change-only', label: props.strings.changeOnly },\n { value: 'remove-only', label: props.strings.removeOnly },\n ];\n\n const optionsToDisplayPanel = ['change-add', 'add-only', 'change-only'];\n\n useEffect(() => {\n // We are not using onDataIsValid and onDataIsInvalid because we need to enable/disable the button\n // also based on the changeAction value.\n if (hasValidData || changeAction === 'no-change') {\n jQuery('#bulk_edit').prop('disabled', false);\n } else {\n jQuery('#bulk_edit').prop('disabled', true);\n }\n }, [hasValidData, changeAction]);\n\n return (\n
\n \n\n {optionsToDisplayPanel.includes(changeAction) && (\n \n )}\n\n {/* Bulk edit JS code will save only fields with name inside the edit row */}\n \n \n \n \n \n \n \n \n
\n );\n};\n","import { FutureActionPanel } from \"./\";\nimport { select, useSelect } from \"@wordpress/data\";\nimport { useEffect } from \"@wordpress/element\";\n\nexport const FutureActionPanelClassicEditor = (props) => {\n const browserTimezoneOffset = new Date().getTimezoneOffset();\n\n const getElementByName = (name) => {\n return document.getElementsByName(name)[0];\n }\n\n const onChangeData = (attribute, value) => {\n const store = select(props.storeName);\n\n getElementByName('future_action_enabled').value = store.getEnabled() ? 1 : 0;\n getElementByName('future_action_action').value = store.getAction();\n getElementByName('future_action_new_status').value = store.getNewStatus();\n getElementByName('future_action_date').value = store.getDate();\n getElementByName('future_action_terms').value = store.getTerms().join(',');\n getElementByName('future_action_taxonomy').value = store.getTaxonomy();\n }\n\n const getTermsFromElementByName = (name) => {\n const element = getElementByName(name);\n if (!element) {\n return [];\n }\n\n let terms = element.value.split(',');\n\n if (terms.length === 1 && terms[0] === '') {\n terms = [];\n }\n\n return terms.map(term => parseInt(term));\n }\n\n const getElementValueByName = (name) => {\n const element = getElementByName(name);\n if (!element) {\n return '';\n }\n\n return element.value;\n }\n\n const data = {\n enabled: getElementValueByName('future_action_enabled') === '1',\n action: getElementValueByName('future_action_action'),\n newStatus: getElementValueByName('future_action_new_status'),\n date: getElementValueByName('future_action_date'),\n terms: getTermsFromElementByName('future_action_terms'),\n taxonomy: getElementValueByName('future_action_taxonomy'),\n };\n\n const onDataIsValid = () => {\n jQuery('#publish').prop('disabled', false);\n }\n\n const onDataIsInvalid = () => {\n jQuery('#publish').prop('disabled', true);\n }\n\n return (\n
\n \n
\n );\n};\n","import { FutureActionPanel } from './';\nimport { useSelect, select } from '@wordpress/data';\nimport { useEffect } from '@wordpress/element';\n\nexport const FutureActionPanelQuickEdit = (props) => {\n const onChangeData = (attribute, value) => {};\n\n const date = useSelect((select) => select(props.storeName).getDate(), []);\n const enabled = useSelect((select) => select(props.storeName).getEnabled(), []);\n const action = useSelect((select) => select(props.storeName).getAction(), []);\n const terms = useSelect((select) => select(props.storeName).getTerms(), []);\n const taxonomy = useSelect((select) => select(props.storeName).getTaxonomy(), []);\n const hasValidData = useSelect((select) => select(props.storeName).getHasValidData(), []);\n const newStatus = useSelect((select) => select(props.storeName).getNewStatus(), []);\n\n let termsString = terms;\n if (typeof terms === 'object') {\n termsString = terms.join(',');\n }\n\n const onDataIsValid = () => {\n jQuery('.button-primary.save').prop('disabled', false);\n }\n\n const onDataIsInvalid = () => {\n jQuery('.button-primary.save').prop('disabled', true);\n }\n\n return (\n
\n \n\n {/* Quick edit JS code will save only fields with name inside the edit row */}\n \n \n \n \n \n \n \n \n
\n );\n};\n","import { Slot, Fill } from '@wordpress/components';\n\nexport const FutureActionPanelTop = ({ children }) => (\n \n {children}\n \n);\n\nconst FutureActionPanelTopSlot = (props) => (\n \n);\n\nFutureActionPanelTop.Slot = FutureActionPanelTopSlot;\n\nexport default FutureActionPanelTop;\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const NonceControl = function (props) {\n if (! props.name) {\n props.name = '_wpnonce';\n }\n\n if (! props.referrer) {\n props.referrer = true;\n }\n\n return (\n \n \n\n {props.referrer &&\n \n }\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nimport {\n SettingRow,\n SettingsTable,\n SelectControl,\n TextControl,\n TokensControl,\n CheckboxControl\n} from './';\nimport { useEffect, useState } from '@wordpress/element';\nimport { addQueryArgs } from '@wordpress/url';\nimport { applyFilters } from '@wordpress/hooks';\nimport { apiFetch } from '&wp';\nimport DateOffsetPreview from './DateOffsetPreview';\n\nconst { PanelRow } = wp.components;\n\nexport const PostTypeSettingsPanel = function (props) {\n const originalExpireTypeList = props.expireTypeList[props.postType];\n\n const [postTypeTaxonomy, setPostTypeTaxonomy] = useState(props.settings.taxonomy);\n const [termOptions, setTermOptions] = useState([]);\n const [termsSelectIsLoading, setTermsSelectIsLoading] = useState(false);\n const [selectedTerms, setSelectedTerms] = useState([]);\n const [settingHowToExpire, setSettingHowToExpire] = useState(props.settings.howToExpire);\n const [isActive, setIsActive] = useState(props.settings.active);\n const [expireOffset, setExpireOffset] = useState(props.settings.defaultExpireOffset);\n const [emailNotification, setEmailNotification] = useState(props.settings.emailNotification);\n const [isAutoEnabled, setIsAutoEnabled] = useState(props.settings.autoEnabled);\n const [hasValidData, setHasValidData] = useState(true);\n const [validationError, setValidationError] = useState('');\n const [taxonomyLabel, setTaxonomyLabel] = useState('');\n const [howToExpireList, setHowToExpireList] = useState(originalExpireTypeList);\n const [newStatus, setNewStatus] = useState(props.settings.newStatus);\n const [hasPendingValidation, setHasPendingValidation] = useState(false);\n\n const offset = expireOffset ? expireOffset : props.settings.globalDefaultExpireOffset;\n\n const taxonomyRelatedActions = [\n 'category',\n 'category-add',\n 'category-remove',\n 'category-remove-all'\n ];\n\n const onChangeTaxonomy = function (value) {\n setPostTypeTaxonomy(value);\n };\n\n const onChangeTerms = (value) => {\n setSelectedTerms(value);\n };\n\n const onChangeHowToExpire = (value) => {\n setSettingHowToExpire(value);\n }\n\n const onChangeActive = (value) => {\n setIsActive(value);\n }\n\n const onChangeExpireOffset = (value) => {\n setExpireOffset(value);\n }\n\n const onChangeEmailNotification = (value) => {\n setEmailNotification(value);\n }\n\n const onChangeAutoEnabled = (value) => {\n setIsAutoEnabled(value);\n }\n\n useEffect(() => {\n // Remove items from expireTypeList if related to taxonomies and there is no taxonmoy for the post type\n if (props.taxonomiesList.length === 0) {\n let newExpireTypeList = [];\n\n newExpireTypeList = howToExpireList.filter((item) => {\n return taxonomyRelatedActions.indexOf(item.value) === -1;\n });\n\n setHowToExpireList(newExpireTypeList);\n }\n }, []);\n\n useEffect(() => {\n if (!postTypeTaxonomy || !props.taxonomiesList) {\n return;\n }\n\n setTermsSelectIsLoading(true);\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/terms/${postTypeTaxonomy}`),\n }).then((result) => {\n let options = [];\n\n let settingsTermsOptions = null;\n let option;\n\n result.terms.forEach(term => {\n option = { value: term.id, label: term.name };\n options.push(option);\n\n if (postTypeTaxonomy === props.settings.taxonomy && props.settings.terms.includes(term.id)) {\n if (settingsTermsOptions === null) {\n settingsTermsOptions = [];\n }\n\n settingsTermsOptions.push(option.label);\n }\n });\n\n setTermOptions(options);\n setSelectedTerms(settingsTermsOptions);\n setTermsSelectIsLoading(false);\n });\n\n props.taxonomiesList.forEach((taxonomy) => {\n if (taxonomy.value === postTypeTaxonomy) {\n setTaxonomyLabel(taxonomy.label);\n }\n });\n }, [postTypeTaxonomy]);\n\n useEffect(() => {\n if (!taxonomyLabel) {\n return;\n }\n\n // Update the list of actions replacing the taxonomy name.\n let newExpireTypeList = [];\n\n originalExpireTypeList.forEach((expireType) => {\n let label = expireType.label;\n\n if (taxonomyRelatedActions.indexOf(expireType.value) !== -1) {\n label = label.replace('%s', taxonomyLabel.toLowerCase());\n }\n\n newExpireTypeList.push({\n value: expireType.value,\n label: label\n });\n });\n\n setHowToExpireList(newExpireTypeList);\n }, [taxonomyLabel]);\n\n useEffect(() => {\n if (hasValidData && props.onDataIsValid) {\n props.onDataIsValid(props.postType);\n }\n\n if (!hasValidData && props.onDataIsInvalid) {\n props.onDataIsInvalid(props.postType);\n }\n }, [hasValidData]);\n\n useEffect(() => {\n if (hasPendingValidation && props.onValidationStarted) {\n props.onValidationStarted(props.postType);\n }\n\n if (!hasPendingValidation && props.onValidationFinished) {\n props.onValidationFinished(props.postType);\n }\n }, [hasPendingValidation]);\n\n const termOptionsLabels = termOptions.map((term) => term.label);\n\n let settingsRows = [\n \n \n \n ];\n\n if (isActive) {\n settingsRows.push(\n \n \n \n );\n\n settingsRows.push(\n \n \n \n \n );\n\n settingsRows.push(\n \n \n\n {settingHowToExpire === 'change-status' &&\n \n }\n\n {(props.taxonomiesList.length > 0 && (['category', 'category-add', 'category-remove'].indexOf(settingHowToExpire) > -1)) &&\n \n }\n \n );\n\n settingsRows.push(\n \n \n\n \n \n );\n\n settingsRows.push(\n \n \n \n );\n }\n\n settingsRows = applyFilters('expirationdate_settings_posttype', settingsRows, props, isActive, useState);\n\n const fieldSetClassNames = props.isVisible ? 'pe-settings-fieldset' : 'pe-settings-fieldset hidden';\n\n return (\n
\n \n\n {! hasValidData && (\n \n
\n {props.text.error}: {validationError}\n
\n
\n )}\n
\n );\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nimport { PostTypeSettingsPanel } from \"./\";\nimport { useState } from \"@wordpress/element\";\n\nexport const PostTypesSettingsPanels = function (props) {\n const [currentTab, setCurrentTab] = useState(Object.keys(props.settings)[0]);\n\n let panels = [];\n\n for (const [postType, postTypeSettings] of Object.entries(props.settings)) {\n panels.push(\n \n );\n }\n\n const onSelectTab = (event) => {\n event.preventDefault();\n setCurrentTab(event.target.hash.replace('#', '').replace('-panel', ''));\n }\n\n let tabs = [];\n let selected = false;\n\n for (const [postType, postTypeSettings] of Object.entries(props.settings)) {\n selected = currentTab === postType;\n tabs.push(\n \n {postTypeSettings.label}\n \n );\n }\n\n return (\n
\n \n {panels}\n
\n );\n}\n\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\nimport { SelectControl as WPSelectControl } from \"@wordpress/components\";\n\nexport const SelectControl = function (props) {\n const onChange = (value) => {\n props.onChange(value);\n };\n\n return (\n \n {props.options.length === 0 && (\n
{props.noItemFoundMessage}
\n )}\n\n {props.options.length > 0 && (\n \n )}\n\n {props.children}\n\n

{props.description}

\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const SettingRow = function (props) {\n return (\n \n \n \n \n \n {props.children}\n \n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsFieldset = function (props) {\n return (\n
\n {props.legend}\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsForm = function (props) {\n return (\n
\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const SettingsSection = function (props) {\n return (\n \n

{props.title}

\n

{props.description}

\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsTable = function (props) {\n return (\n \n \n {props.bodyChildren}\n \n
\n )\n}\n","/*\n * Copyright (c) 2024. PublishPress, All rights reserved.\n */\nexport const Spinner = function (props) {\n return (\n
\n );\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SubmitButton = function (props) {\n return (\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\nimport { TextControl as WPTextControl } from \"@wordpress/components\";\nimport { Spinner } from \"./\";\n\nexport const TextControl = function (props) {\n let description;\n\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n\n const onChange = function (value) {\n if (props.onChange) {\n props.onChange(value);\n }\n };\n\n let className = props.className ? props.className : '';\n\n if (props.loading) {\n className += ' publishpress-future-loading publishpress-future-loading-input';\n }\n\n return (\n \n
\n \n\n {props.loading && }\n\n {description}\n
\n
\n )\n}\n","import { Button } from '@wordpress/components';\n\nexport const ToggleArrowButton = function (props) {\n const onClick = function () {\n if (props.onClick) {\n props.onClick();\n }\n };\n\n const iconExpanded = props.iconExpanded ? props.iconExpanded : 'arrow-up-alt2';\n const iconCollapsed = props.iconCollapsed ? props.iconCollapsed : 'arrow-down-alt2';\n\n const icon = props.isExpanded ? iconExpanded : iconCollapsed;\n\n const title = props.isExpanded ? props.titleExpanded : props.titleCollapsed;\n\n return (\n \n )\n}\n","import { ToggleArrowButton } from \"./ToggleArrowButton\";\nimport { DateTimePicker } from \"./DateTimePicker\";\nimport { Fragment, useEffect } from \"@wordpress/element\";\n\nexport const ToggleCalendarDatePicker = (\n {\n isExpanded,\n strings,\n onToggleCalendar,\n currentDate,\n onChangeDate,\n is12Hour,\n startOfWeek\n }\n) => {\n useEffect(() => {\n // Move the element of the toggle button to between the time and date elements.\n const toggleButtonElement = document.querySelector('.future-action-calendar-toggle');\n\n if (! toggleButtonElement) {\n return;\n }\n\n const dateTimeElement = toggleButtonElement.nextElementSibling;\n\n if (! dateTimeElement) {\n return;\n }\n\n const timeElement = dateTimeElement.querySelector('.components-datetime__time');\n\n if (! timeElement) {\n return;\n }\n\n const dateElement = timeElement.nextSibling;\n\n if (! dateElement) {\n return;\n }\n\n dateTimeElement.insertBefore(toggleButtonElement, dateElement)\n });\n\n return (\n \n \n\n \n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment, useState, useEffect } from \"@wordpress/element\";\nimport { FormTokenField } from \"@wordpress/components\";\n\nexport const TokensControl = (props) => {\n const [stringValue, setStringValue] = useState('');\n\n useEffect(() => {\n if (props.value) {\n setStringValue(props.value.join(','));\n }\n }, [props.value]);\n\n let description;\n\n if (props.description) {\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n }\n\n const onChange = (value) => {\n if (props.onChange) {\n props.onChange(value);\n }\n\n if (typeof value === 'object') {\n setStringValue(value.join(','));\n } else {\n setStringValue('');\n }\n }\n\n const value = props.value ? props.value : [];\n \n return (\n \n \n \n\n {description}\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const TrueFalseControl = function (props) {\n const { Fragment } = wp.element;\n\n const onChange = (e) => {\n if (props.onChange) {\n props.onChange(\n e.target.value === props.trueValue && jQuery(e.target).is(':checked')\n );\n // Check only the true radio... using the field name? or directly the ID\n }\n };\n\n return (\n \n \n\n \n   \n \n {props.falseLabel}\n\n

{props.description}

\n
\n )\n}\n","export { ButtonsPanel } from \"./ButtonsPanel\";\nexport { FutureActionPanel } from \"./FutureActionPanel\";\nexport { FutureActionPanelBlockEditor } from \"./FutureActionPanelBlockEditor\";\nexport { FutureActionPanelClassicEditor } from \"./FutureActionPanelClassicEditor\";\nexport { FutureActionPanelQuickEdit } from \"./FutureActionPanelQuickEdit\";\nexport { FutureActionPanelBulkEdit } from \"./FutureActionPanelBulkEdit\";\nexport { PostTypeSettingsPanel } from \"./PostTypeSettingsPanel\";\nexport { PostTypesSettingsPanels } from \"./PostTypesSettingsPanels\";\nexport { SettingRow } from \"./SettingRow\";\nexport { SettingsFieldset } from \"./SettingsFieldset\";\nexport { SettingsForm } from \"./SettingsForm\";\nexport { SettingsSection } from \"./SettingsSection\";\nexport { SettingsTable } from \"./SettingsTable\";\nexport { SubmitButton } from \"./SubmitButton\";\nexport { CheckboxControl } from \"./CheckboxControl\";\nexport { SelectControl } from \"./SelectControl\";\nexport { TextControl } from \"./TextControl\";\nexport { TokensControl } from \"./TokensControl\";\nexport { NonceControl } from \"./NonceControl\";\nexport { TrueFalseControl } from \"./TrueFalseControl\";\nexport { Spinner } from \"./Spinner\";\nexport { DateOffsetPreview } from \"./DateOffsetPreview\";\n","export const getCurrentTimeInSeconds = () => {\n return normalizeUnixTimeToSeconds(new Date().getTime());\n}\n\nexport const getCurrentTimeAsTimestamp = () => {\n return formatUnixTimeToTimestamp(getCurrentTimeInSeconds());\n}\n\nexport const formatUnixTimeToTimestamp = (unixTimestamp) => {\n const date = new Date(\n normalizeUnixTimeToSeconds(unixTimestamp)\n );\n\n const year = date.getFullYear();\n const month = (\"0\" + (date.getMonth() + 1)).slice(-2); // Months are zero-based\n const day = (\"0\" + date.getDate()).slice(-2);\n const hours = (\"0\" + date.getHours()).slice(-2);\n const minutes = (\"0\" + date.getMinutes()).slice(-2);\n const seconds = (\"0\" + date.getSeconds()).slice(-2);\n\n return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;\n}\n\nexport const formatTimestampToUnixTime = (time) => {\n const date = new Date(time);\n\n return normalizeUnixTimeToSeconds(date.getTime());\n}\n\nexport const timeIsInSeconds = (time) => {\n return parseInt(time).toString().length <= 10;\n}\n\nexport const normalizeUnixTimeToSeconds = (time) => {\n time = parseInt(time);\n\n return timeIsInSeconds() ? time : time / 1000;\n}\n\nexport const normalizeUnixTimeToMilliseconds = (time) => {\n time = parseInt(time);\n\n return timeIsInSeconds() ? time * 1000 : time;\n}\n","export const compact = (array) => {\n if (!array) {\n return [];\n }\n\n if (! Array.isArray(array) && typeof array === 'object') {\n array = Object.values(array);\n }\n\n return array.filter((item) => {\n return item !== null && item !== undefined && item !== '';\n });\n}\n\nexport const debugLogFactory = (config) => {\n return (description, ...message) => {\n if (console && config.isDebugEnabled) {\n console.debug('[Future]', description, ...message);\n }\n }\n}\n\nexport const isGutenbergEnabled = () => {\n return document.body.classList.contains('block-editor-page');\n}\n\nexport const getElementByName = (name) => {\n return document.getElementsByName(name)[0];\n}\n\nexport const getFieldByName = (name, postId) => {\n return document.querySelector(`#the-list tr#post-${postId} .column-expirationdate input#future_action_${name}-${postId}`);\n}\n\nexport const getFieldValueByName = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field) {\n return null;\n }\n\n return field.value;\n};\n\nexport const getFieldValueByNameAsArrayOfInt = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field || !field.value) {\n return [];\n }\n\n if (typeof field.value === 'number') {\n field.value = field.value.toString();\n }\n\n return field.value.split(',').map(term => parseInt(term));\n};\n\nexport const getFieldValueByNameAsBool = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field) {\n return false;\n }\n\n return field.value === '1' || field.value === 'true';\n}\n\nexport const getActionSettingsFromColumnData = (postId) => {\n const columnData = document.querySelector(`#post-expire-column-${postId}`);\n\n if (!columnData) {\n return {};\n }\n\n return {\n enabled: columnData.dataset.actionEnabled === '1',\n action: columnData.dataset.actionType,\n date: columnData.dataset.actionDate,\n dateUnix: columnData.dataset.actionDateUnix,\n taxonomy: columnData.dataset.actionTaxonomy,\n terms: columnData.dataset.actionTerms,\n newStatus: columnData.dataset.actionNewStatus,\n };\n}\n\n/**\n * This function is used to determine if a value is a number, including strings.\n *\n * @param {*} value\n * @returns\n */\nexport const isNumber = (value) => {\n return !isNaN(value);\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.publishpress-future-date-preview .publishpress-future-date-preview-value {\n font-family: monospace;\n background-color: #e7e7e7;\n padding: 2px 4px;\n}\n\n.publishpress-future-date-preview.compact .publishpress-future-date-preview-label {\n display: block;\n}\n\n.publishpress-future-date-preview.compact {\n margin-bottom: 8px;\n}\n\n.publishpress-future-date-preview.compact h4 {\n font-size: 11px;\n font-weight: 500;\n line-height: 1.4;\n text-transform: uppercase;\n display: inline-block;\n margin-bottom: calc(8px);\n padding: 0px;\n flex-shrink: 0;\n margin-right: 12px;\n max-width: 75%;\n margin-top: 0;\n}\n\n.publishpress-future-notice.publishpress-future-notice-error {\n color: #dc3232;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./assets/jsx/components/css/dateOffsetPreview.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,sBAAsB;IACtB,yBAAyB;IACzB,gBAAgB;AACpB;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,kBAAkB;AACtB;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,yBAAyB;IACzB,qBAAqB;IACrB,wBAAwB;IACxB,YAAY;IACZ,cAAc;IACd,kBAAkB;IAClB,cAAc;IACd,aAAa;AACjB;;AAEA;IACI,cAAc;AAClB\",\"sourcesContent\":[\".publishpress-future-date-preview .publishpress-future-date-preview-value {\\n font-family: monospace;\\n background-color: #e7e7e7;\\n padding: 2px 4px;\\n}\\n\\n.publishpress-future-date-preview.compact .publishpress-future-date-preview-label {\\n display: block;\\n}\\n\\n.publishpress-future-date-preview.compact {\\n margin-bottom: 8px;\\n}\\n\\n.publishpress-future-date-preview.compact h4 {\\n font-size: 11px;\\n font-weight: 500;\\n line-height: 1.4;\\n text-transform: uppercase;\\n display: inline-block;\\n margin-bottom: calc(8px);\\n padding: 0px;\\n flex-shrink: 0;\\n margin-right: 12px;\\n max-width: 75%;\\n margin-top: 0;\\n}\\n\\n.publishpress-future-notice.publishpress-future-notice-error {\\n color: #dc3232;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/postcss-loader/dist/cjs.js!./dateOffsetPreview.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/postcss-loader/dist/cjs.js!./dateOffsetPreview.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;","module.exports = ReactDOM;","module.exports = publishpressFutureSettingsGeneralConfig;","module.exports = wp;","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.element;","module.exports = wp.hooks;","module.exports = wp.plugins;","module.exports = wp.url;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nc = undefined;","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nimport { DateOffsetPreview } from \"./components\";\n\nimport {\n StrictMode,\n useState,\n useEffect\n} from \"@wordpress/element\";\n\nimport { createRoot } from 'react-dom/client';\n\nimport {\n text,\n} from \"&config.settings-general\";\n\nconst SettingsFormPanel = (props) => {\n const [isValidForm, setIsValidForm] = useState(true);\n const [validationError, setValidationError] = useState('');\n const [hasPendingValidation, setHasPendingValidation] = useState(false);\n const [offset, setOffset] = useState('');\n\n const onHasValidationError = (errorMessage) => {\n if (errorMessage) {\n setIsValidForm(false);\n setValidationError(errorMessage);\n } else {\n setIsValidForm(true);\n setValidationError('');\n }\n }\n\n const onValidationStarted = (inProgress) => {\n setHasPendingValidation(inProgress);\n }\n\n const onValidationFinished = (isValid) => {\n setHasPendingValidation(false);\n setIsValidForm(isValid);\n }\n\n useEffect(() => {\n jQuery('#expired-custom-expiration-date').on('keyup', function () {\n setOffset(jQuery(this).val());\n });\n\n setOffset(jQuery('#expired-custom-expiration-date').val());\n }, []);\n\n return (\n \n \n\n {! isValidForm && validationError && (\n
\n

{text.error}: {validationError}

\n
\n )}\n
\n )\n};\n\nconst container = document.getElementById(\"expiration-date-preview\");\nconst component = ();\n\ncreateRoot(container).render(component);\n"],"names":["ButtonsPanel","props","children","CheckboxControl","description","useState","checked","setChecked","unescapedDescription","className","dangerouslySetInnerHTML","__html","Fragment","label","name","id","onChange","value","require","DateOffsetPreview","offset","labelDatePreview","labelOffsetPreview","setValidationErrorCallback","setHasPendingValidationCallback","setHasValidDataCallback","compactView","offsetPreview","setOffsetPreview","currentTime","setCurrentTime","apiRequestControllerRef","useRef","AbortController","useEffect","controller","current","abort","signal","apiFetch","path","addQueryArgs","method","data","then","result","isValid","message","preview","catch","error","validateDateOffset","compactClass","DateTimePicker","currentDate","is12Hour","startOfWeek","normalizeUnixTimeToMilliseconds","__nextRemoveHelpButton","wp","components","PanelRow","SelectControl","FormTokenField","Spinner","BaseControl","element","decodeEntities","htmlEntities","url","useSelect","useDispatch","FutureActionPanel","select","action","storeName","getAction","date","getDate","enabled","getEnabled","terms","getTerms","taxonomy","getTaxonomy","taxonomyName","getTaxonomyName","termsListByName","getTermsListByName","termsListById","getTermsListById","isFetchingTerms","getIsFetchingTerms","calendarIsVisible","getCalendarIsVisible","hasValidData","getHasValidData","newStatus","getNewStatus","validationError","setValidationError","setAction","setDate","setEnabled","setTerms","setTaxonomy","setTermsListByName","setTermsListById","setTaxonomyName","setIsFetchingTerms","setCalendarIsVisible","setHasValidData","setNewStatus","insertTerm","term","count","link","slug","callOnChangeData","attribute","onChangeData","handleEnabledChange","isChecked","fetchTerms","forEach","getCalendarIsVisibleFromStorage","localStorage","getItem","context","autoEnableAndHideCheckbox","hideCalendarByDefault","isCleanNewPost","setItem","onDataIsValid","onDataIsInvalid","selectedTerms","length","compact","map","mapTermsListById","termsListByNameKeys","Object","keys","is24hour","panelClass","contentPanelClass","datePanelClass","timeFormat","actionsSelectOptions","filter","item","indexOf","HelpText","string","href","target","parts","split","push","shift","before","after","key","replaceCurlyBracketsWithLink","strings","timezoneSettingsHelp","displayTaxonomyField","String","includes","termsFieldLabel","newTerms","replace","removeTerms","addTerms","valid","errorActionRequired","errorDateRequired","Date","errorDateInPast","isTermRequired","noTermIsSelected","errorTermsRequired","validateData","SlotFillProvider","type","FutureActionPanelTop","Slot","fillProps","enablePostExpiration","options","FutureActionPanelAfterActionField","statusesSelectOptions","loading","noTaxonomyFound","noTermsFound","suggestions","mapTermsListByName","placeholder","addTermsPlaceholder","maxSuggestions","onFocus","e","jQuery","addClass","__experimentalExpandOnFocus","__experimentalAutoSelectFirstMatch","ToggleCalendarDatePicker","onChangeDate","onToggleCalendar","isExpanded","PluginArea","scope","Fill","FutureActionPanelBlockEditor","PluginDocumentSettingPanel","editPost","getEditedPostAttribute","lockPostSaving","unlockPostSaving","title","panelTitle","initialOpen","postTypeDefaultConfig","autoEnable","postType","store","newAttribute","getExtraData","publishpress_future_action","entries","editPostAttribute","FutureActionPanelBulkEdit","changeAction","getChangeAction","setChangeAction","termsString","join","noChange","changeAdd","addOnly","changeOnly","removeOnly","prop","futureActionUpdate","isNewPost","getElementByName","nonce","FutureActionPanelClassicEditor","getTimezoneOffset","document","getElementsByName","getElementValueByName","parseInt","getTermsFromElementByName","FutureActionPanelQuickEdit","NonceControl","referrer","PostTypeSettingsPanel","originalExpireTypeList","expireTypeList","settings","postTypeTaxonomy","setPostTypeTaxonomy","termOptions","setTermOptions","termsSelectIsLoading","setTermsSelectIsLoading","setSelectedTerms","howToExpire","settingHowToExpire","setSettingHowToExpire","active","isActive","setIsActive","defaultExpireOffset","expireOffset","setExpireOffset","emailNotification","setEmailNotification","autoEnabled","isAutoEnabled","setIsAutoEnabled","taxonomyLabel","setTaxonomyLabel","howToExpireList","setHowToExpireList","hasPendingValidation","setHasPendingValidation","globalDefaultExpireOffset","taxonomyRelatedActions","newExpireTypeList","taxonomiesList","settingsTermsOptions","option","expireType","toLowerCase","onValidationStarted","onValidationFinished","termOptionsLabels","settingsRows","SettingRow","text","fieldActive","fieldActiveLabel","fieldAutoEnable","fieldAutoEnableLabel","fieldTaxonomy","selected","noItemFoundMessage","noItemsfound","fieldTaxonomyDescription","fieldHowToExpire","fieldHowToExpireDescription","statusesList","TokensControl","fieldTerm","isLoading","fieldTermDescription","expandOnFocus","autoSelectFirstMatch","fieldDefaultDateTimeOffset","TextControl","fieldDefaultDateTimeOffsetDescription","datePreview","datePreviewCurrent","datePreviewComputed","fieldWhoToNotify","fieldWhoToNotifyDescription","applyFilters","fieldSetClassNames","isVisible","SettingsTable","bodyChildren","PostTypesSettingsPanels","currentTab","setCurrentTab","panels","postTypeSettings","legend","onSelectTab","event","preventDefault","hash","tabs","onClick","valign","htmlFor","SettingsFieldset","SettingsForm","SettingsSection","SubmitButton","disabled","ToggleArrowButton","iconExpanded","iconCollapsed","icon","titleExpanded","titleCollapsed","Button","isSmall","toggleButtonElement","querySelector","dateTimeElement","nextElementSibling","timeElement","dateElement","nextSibling","insertBefore","hideCalendar","showCalendar","stringValue","setStringValue","TrueFalseControl","trueValue","is","defaultChecked","trueLabel","falseValue","falseLabel","getCurrentTimeInSeconds","normalizeUnixTimeToSeconds","getTime","formatUnixTimeToTimestamp","getCurrentTimeAsTimestamp","unixTimestamp","getFullYear","getMonth","slice","getHours","getMinutes","getSeconds","timeIsInSeconds","formatTimestampToUnixTime","time","toString","getFieldByName","array","Array","isArray","values","debugLogFactory","config","console","isDebugEnabled","debug","isGutenbergEnabled","body","classList","contains","postId","getFieldValueByName","field","getFieldValueByNameAsArrayOfInt","getFieldValueByNameAsBool","getActionSettingsFromColumnData","columnData","dataset","actionEnabled","actionType","actionDate","dateUnix","actionDateUnix","actionTaxonomy","actionTerms","actionNewStatus","isNumber","isNaN","___CSS_LOADER_EXPORT___","module","exports","cssWithMappingToString","list","this","content","needLayer","concat","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","sourceMapping","m","createRoot","hydrateRoot","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","stylesInDOM","getIndexByIdentifier","identifier","modulesToDom","idCountMap","identifiers","base","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","styleTarget","window","HTMLIFrameElement","contentDocument","head","getTarget","Error","appendChild","createElement","attributes","styleElement","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode","ReactDOM","publishpressFutureSettingsGeneralConfig","hooks","plugins","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","prototype","hasOwnProperty","call","r","Symbol","toStringTag","nc","container","getElementById","component","isValidForm","setIsValidForm","setOffset","on","val","StrictMode","errorMessage","inProgress","render"],"sourceRoot":""} \ No newline at end of file diff --git a/assets/js/settings-post-types.js b/assets/js/settings-post-types.js index c1a8cf837..2f62bb76e 100644 --- a/assets/js/settings-post-types.js +++ b/assets/js/settings-post-types.js @@ -1,2 +1,2 @@ -(()=>{"use strict";var e={442:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ButtonsPanel=function(e){return React.createElement("div",null,e.children)}},311:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CheckboxControl=void 0;var a=n(386),r=n(214);t.CheckboxControl=function(e){var t,n=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,a.useState)(e.checked||!1),2),o=n[0],i=n[1];return t=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description),React.createElement(a.Fragment,null,React.createElement(r.CheckboxControl,{label:e.label,name:e.name,id:e.name,className:e.className,checked:o||!1,onChange:function(t){i(t),e.onChange&&e.onChange(t)}}),t)}},620:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DateTimePicker=void 0;var a=n(39),r=n(214);t.DateTimePicker=function(e){var t=e.currentDate,n=e.onChange,o=e.is12Hour,i=e.startOfWeek;return"number"==typeof t&&(t=(0,a.normalizeUnixTimeToMilliseconds)(t)),React.createElement(r.DateTimePicker,{currentDate:t,onChange:n,__nextRemoveHelpButton:!0,is12Hour:o,startOfWeek:i})}},418:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanel=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},o=n(409),i=n(873),l=n(986),c=n(214),u=n(61),s=n(625),d=wp.components,m=d.PanelRow,p=d.CheckboxControl,f=d.SelectControl,y=d.FormTokenField,g=d.Spinner,v=d.BaseControl,b=wp.element,h=b.Fragment,E=b.useEffect,S=b.useState,x=wp.htmlEntities.decodeEntities,_=wp.url.addQueryArgs,R=wp.data,T=R.useSelect,N=R.useDispatch,P=wp.apiFetch;t.FutureActionPanel=function(e){var t=T((function(t){return t(e.storeName).getAction()}),[]),n=T((function(t){return t(e.storeName).getDate()}),[]),d=T((function(t){return t(e.storeName).getEnabled()}),[]),b=T((function(t){return t(e.storeName).getTerms()}),[]),R=T((function(t){return t(e.storeName).getTaxonomy()}),[]),C=T((function(t){return t(e.storeName).getTaxonomyName()}),[]),w=T((function(t){return t(e.storeName).getTermsListByName()}),[]),O=T((function(t){return t(e.storeName).getTermsListById()}),[]),F=T((function(t){return t(e.storeName).getIsFetchingTerms()}),[]),A=T((function(t){return t(e.storeName).getCalendarIsVisible()}),[]),k=T((function(t){return t(e.storeName).getHasValidData()}),[]),D=T((function(t){return t(e.storeName).getNewStatus()}),[]),j=S(""),I=r(j,2),B=I[0],M=I[1],V=N(e.storeName),L=V.setAction,H=V.setDate,W=V.setEnabled,Q=V.setTerms,U=V.setTaxonomy,q=V.setTermsListByName,z=V.setTermsListById,G=V.setTaxonomyName,Y=V.setIsFetchingTerms,J=V.setCalendarIsVisible,K=V.setHasValidData,X=V.setNewStatus,Z=function(e){w[e]={id:e,count:0,description:"",link:"",name:e,slug:e,taxonomy:R},O[e]=e,q(w),z(O),Q([].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0&&O&&(ae=(0,o.compact)(function(e){return"object"!==(void 0===e?"undefined":a(e))||null===e?{}:e.map((function(e){return O[e]}))}(b)),"string"==typeof ae&&(ae=[]));var re=[];"object"===(void 0===w?"undefined":a(w))&&null!==w&&(re=Object.keys(w));var oe,ie=A?"future-action-panel":"future-action-panel hidden-calendar",le=A?"future-action-panel-content":"future-action-panel-content hidden-calendar",ce=A?"future-action-date-panel":"future-action-date-panel hidden-calendar";oe="inherited"===e.timeFormat?!e.is12Hour:"24h"===e.timeFormat;var ue=e.actionsSelectOptions;e.taxonomy||(ue=e.actionsSelectOptions.filter((function(e){return-1===["category","category-add","category-remove","category-remove-all"].indexOf(e.value)})));var se=function(e,t,n){var a=e.split("{"),o=[];o.push(a.shift());var i=!0,l=!1,c=void 0;try{for(var u,s=a[Symbol.iterator]();!(i=(u=s.next()).done);i=!0){var d=u.value.split("}"),m=r(d,2),p=m[0],f=m[1];o.push(React.createElement("a",{href:t,target:"_blank",key:t},p)),o.push(f)}}catch(e){l=!0,c=e}finally{try{!i&&s.return&&s.return()}finally{if(l)throw c}}return o}(e.strings.timezoneSettingsHelp,"/wp-admin/options-general.php#timezone_string"),de=String(t).includes("category")&&"category-remove-all"!==t,me=C;switch(t){case"category":me=e.strings.newTerms.replace("%s",C);break;case"category-remove":me=e.strings.removeTerms.replace("%s",C);break;case"category-add":me=e.strings.addTerms.replace("%s",C)}return E((function(){if(!d)return K(!0),void M("");K(function(){var a=!0;if(!d)return M(""),!0;t||(M(e.strings.errorActionRequired),a=!1),n||(M(e.strings.errorDateRequired),a=!1),n&&new Date(n){Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelAfterActionField=void 0;var a=Object.assign||function(e){for(var t=1;t{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelBlockEditor=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(57);t.FutureActionPanelBlockEditor=function(e){var t=wp.editPost.PluginDocumentSettingPanel,n=wp.data,o=n.useDispatch,i=n.select,l=o("core/editor").editPost,c=i("core/editor").getEditedPostAttribute("publishpress_future_action"),u=o("core/editor"),s=u.lockPostSaving,d=u.unlockPostSaving;return React.createElement(t,{name:"publishpress-future-action-panel",title:e.strings.panelTitle,initialOpen:e.postTypeDefaultConfig.autoEnable,className:"post-expirator-panel"},React.createElement("div",{id:"publishpress-future-block-editor"},React.createElement(r.FutureActionPanel,{context:"block-editor",postType:e.postType,isCleanNewPost:e.isCleanNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:c.enabled,calendarIsVisible:!0,action:c.action,newStatus:c.newStatus,date:c.date,terms:c.terms,taxonomy:c.taxonomy,taxonomyName:e.taxonomyName,onChangeData:function(t,n){var r=i(e.storeName),o={enabled:r.getEnabled()};o.enabled&&(o.action=r.getAction(),o.newStatus=r.getNewStatus(),o.date=r.getDate(),o.terms=r.getTerms(),o.taxonomy=r.getTaxonomy(),o.extraData=r.getExtraData()),function(e){var t={publishpress_future_action:{}},n=!0,r=!1,o=void 0;try{for(var i,c=Object.entries(e)[Symbol.iterator]();!(n=(i=c.next()).done);n=!0){var u=i.value,s=a(u,2),d=s[0],m=s[1];t.publishpress_future_action[d]=m}}catch(e){r=!0,o=e}finally{try{!n&&c.return&&c.return()}finally{if(r)throw o}}l(t)}(o)},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){d("future-action")},onDataIsInvalid:function(){s("future-action")}})))}},94:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelBulkEdit=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(57),o=n(409);t.FutureActionPanelBulkEdit=function(e){var t=wp.data,n=t.useSelect,i=t.useDispatch,l=t.select,c=wp.element.useEffect,u=n((function(t){return t(e.storeName).getDate()}),[]),s=n((function(t){return t(e.storeName).getEnabled()}),[]),d=n((function(t){return t(e.storeName).getAction()}),[]),m=n((function(t){return t(e.storeName).getNewStatus()}),[]),p=n((function(t){return t(e.storeName).getTerms()}),[]),f=n((function(t){return t(e.storeName).getTaxonomy()}),[]),y=n((function(t){return t(e.storeName).getChangeAction()}),[]),g=n((function(t){return t(e.storeName).getHasValidData()}),[]),v=i(e.storeName).setChangeAction,b=p;"object"===(void 0===p?"undefined":a(p))&&(b=p.join(","));var h=[{value:"no-change",label:e.strings.noChange},{value:"change-add",label:e.strings.changeAdd},{value:"add-only",label:e.strings.addOnly},{value:"change-only",label:e.strings.changeOnly},{value:"remove-only",label:e.strings.removeOnly}];return c((function(){g||"no-change"===y?jQuery("#bulk_edit").prop("disabled",!1):jQuery("#bulk_edit").prop("disabled",!0)}),[g,y]),React.createElement("div",{className:"post-expirator-panel"},React.createElement(r.SelectControl,{label:e.strings.futureActionUpdate,name:"future_action_bulk_change_action",value:y,options:h,onChange:function(e){v(e)}}),["change-add","add-only","change-only"].includes(y)&&React.createElement(r.FutureActionPanel,{context:"bulk-edit",autoEnableAndHideCheckbox:!0,postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:!0,calendarIsVisible:!1,action:d,newStatus:m,date:u,terms:p,taxonomy:f,taxonomyName:e.taxonomyName,onChangeData:function(t,n){(0,o.getElementByName)("future_action_bulk_enabled").value=l(e.storeName).getEnabled()?1:0,(0,o.getElementByName)("future_action_bulk_action").value=l(e.storeName).getAction(),(0,o.getElementByName)("future_action_bulk_new_status").value=l(e.storeName).getNewStatus(),(0,o.getElementByName)("future_action_bulk_date").value=l(e.storeName).getDate(),(0,o.getElementByName)("future_action_bulk_terms").value=l(e.storeName).getTerms().join(","),(0,o.getElementByName)("future_action_bulk_taxonomy").value=l(e.storeName).getTaxonomy()},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings}),React.createElement("input",{type:"hidden",name:"future_action_bulk_enabled",value:s?1:0}),React.createElement("input",{type:"hidden",name:"future_action_bulk_action",value:d}),React.createElement("input",{type:"hidden",name:"future_action_bulk_new_status",value:m}),React.createElement("input",{type:"hidden",name:"future_action_bulk_date",value:u}),React.createElement("input",{type:"hidden",name:"future_action_bulk_terms",value:b}),React.createElement("input",{type:"hidden",name:"future_action_bulk_taxonomy",value:f}),React.createElement("input",{type:"hidden",name:"future_action_bulk_view",value:"bulk-edit"}),React.createElement("input",{type:"hidden",name:"_future_action_nonce",value:e.nonce}))}},571:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelClassicEditor=void 0;var a=n(57),r=n(562);n(386),t.FutureActionPanelClassicEditor=function(e){(new Date).getTimezoneOffset();var t=function(e){return document.getElementsByName(e)[0]},n=function(e){var n=t(e);return n?n.value:""},o={enabled:"1"===n("future_action_enabled"),action:n("future_action_action"),newStatus:n("future_action_new_status"),date:n("future_action_date"),terms:function(e){var n=t("future_action_terms");if(!n)return[];var a=n.value.split(",");return 1===a.length&&""===a[0]&&(a=[]),a.map((function(e){return parseInt(e)}))}(),taxonomy:n("future_action_taxonomy")};return React.createElement("div",{className:"post-expirator-panel"},React.createElement(a.FutureActionPanel,{context:"classic-editor",postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:o.enabled,calendarIsVisible:!0,action:o.action,newStatus:o.newStatus,date:o.date,terms:o.terms,taxonomy:o.taxonomy,taxonomyName:e.taxonomyName,onChangeData:function(n,a){var o=(0,r.select)(e.storeName);t("future_action_enabled").value=o.getEnabled()?1:0,t("future_action_action").value=o.getAction(),t("future_action_new_status").value=o.getNewStatus(),t("future_action_date").value=o.getDate(),t("future_action_terms").value=o.getTerms().join(","),t("future_action_taxonomy").value=o.getTaxonomy()},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){jQuery("#publish").prop("disabled",!1)},onDataIsInvalid:function(){jQuery("#publish").prop("disabled",!0)}}))}},437:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelQuickEdit=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(57),o=n(562);n(386),t.FutureActionPanelQuickEdit=function(e){var t=(0,o.useSelect)((function(t){return t(e.storeName).getDate()}),[]),n=(0,o.useSelect)((function(t){return t(e.storeName).getEnabled()}),[]),i=(0,o.useSelect)((function(t){return t(e.storeName).getAction()}),[]),l=(0,o.useSelect)((function(t){return t(e.storeName).getTerms()}),[]),c=(0,o.useSelect)((function(t){return t(e.storeName).getTaxonomy()}),[]),u=((0,o.useSelect)((function(t){return t(e.storeName).getHasValidData()}),[]),(0,o.useSelect)((function(t){return t(e.storeName).getNewStatus()}),[])),s=l;return"object"===(void 0===l?"undefined":a(l))&&(s=l.join(",")),React.createElement("div",{className:"post-expirator-panel"},React.createElement(r.FutureActionPanel,{context:"quick-edit",postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:n,calendarIsVisible:!1,action:i,newStatus:u,date:t,terms:l,taxonomy:c,taxonomyName:e.taxonomyName,onChangeData:function(e,t){},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){jQuery(".button-primary.save").prop("disabled",!1)},onDataIsInvalid:function(){jQuery(".button-primary.save").prop("disabled",!0)}}),React.createElement("input",{type:"hidden",name:"future_action_enabled",value:n?1:0}),React.createElement("input",{type:"hidden",name:"future_action_action",value:i||""}),React.createElement("input",{type:"hidden",name:"future_action_new_status",value:u||""}),React.createElement("input",{type:"hidden",name:"future_action_date",value:t||""}),React.createElement("input",{type:"hidden",name:"future_action_terms",value:s||""}),React.createElement("input",{type:"hidden",name:"future_action_taxonomy",value:c||""}),React.createElement("input",{type:"hidden",name:"future_action_view",value:"quick-edit"}),React.createElement("input",{type:"hidden",name:"_future_action_nonce",value:e.nonce}))}},625:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelTop=void 0;var a=Object.assign||function(e){for(var t=1;t{Object.defineProperty(t,"__esModule",{value:!0}),t.NonceControl=void 0;var a=n(386);t.NonceControl=function(e){return e.name||(e.name="_wpnonce"),e.referrer||(e.referrer=!0),React.createElement(a.Fragment,null,React.createElement("input",{type:"hidden",name:e.name,id:e.name,value:e.nonce}),e.referrer&&React.createElement("input",{type:"hidden",name:"_wp_http_referer",value:e.referrer}))}},239:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PostTypeSettingsPanel=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(57),o=n(386),i=n(11),l=n(566),c=n(244),u=wp.components,s=u.PanelRow;u.BaseControl,t.PostTypeSettingsPanel=function(e){var t=e.expireTypeList[e.postType],n=(0,o.useState)(e.settings.taxonomy),u=a(n,2),d=u[0],m=u[1],p=(0,o.useState)([]),f=a(p,2),y=f[0],g=f[1],v=(0,o.useState)(!1),b=a(v,2),h=b[0],E=b[1],S=(0,o.useState)([]),x=a(S,2),_=x[0],R=x[1],T=(0,o.useState)(e.settings.howToExpire),N=a(T,2),P=N[0],C=N[1],w=(0,o.useState)(e.settings.active),O=a(w,2),F=O[0],A=O[1],k=(0,o.useState)(e.settings.defaultExpireOffset),D=a(k,2),j=D[0],I=D[1],B=(0,o.useState)(e.settings.emailNotification),M=a(B,2),V=M[0],L=M[1],H=(0,o.useState)(e.settings.autoEnabled),W=a(H,2),Q=W[0],U=W[1],q=(0,o.useState)(!1),z=a(q,2),G=z[0],Y=z[1],J=(0,o.useState)(""),K=a(J,2),X=K[0],Z=K[1],$=(0,o.useState)(""),ee=a($,2),te=ee[0],ne=ee[1],ae=(0,o.useState)(t),re=a(ae,2),oe=re[0],ie=re[1],le=(0,o.useState)(e.settings.newStatus),ce=a(le,2),ue=ce[0],se=ce[1],de=(0,o.useState)(!1),me=a(de,2),pe=me[0],fe=me[1],ye=(0,o.useState)(""),ge=a(ye,2),ve=ge[0],be=ge[1],he=(0,o.useState)(),Ee=a(he,2),Se=Ee[0],xe=Ee[1],_e=(0,o.useRef)(new AbortController),Re=["category","category-add","category-remove","category-remove-all"];(0,o.useEffect)((function(){var t;0===e.taxonomiesList.length&&(t=oe.filter((function(e){return-1===Re.indexOf(e.value)})),ie(t))}),[]),(0,o.useEffect)((function(){d&&e.taxonomiesList&&(E(!0),(0,c.apiFetch)({path:(0,i.addQueryArgs)("publishpress-future/v1/terms/"+d)}).then((function(t){var n=[],a=null,r=void 0;t.terms.forEach((function(t){r={value:t.id,label:t.name},n.push(r),d===e.settings.taxonomy&&e.settings.terms.includes(t.id)&&(null===a&&(a=[]),a.push(r.label))})),g(n),R(a),E(!1)})),e.taxonomiesList.forEach((function(e){e.value===d&&ne(e.label)})))}),[d]),(0,o.useEffect)((function(){Y(function(){if(!F)return Z(""),!0;var t=j||e.settings.globalDefaultExpireOffset;if(t){var n=_e.current;n&&n.abort(),_e.current=new AbortController;var a=_e.current.signal;fe(!0),(0,c.apiFetch)({path:(0,i.addQueryArgs)("publishpress-future/v1/settings/validate-expire-offset"),method:"POST",data:{offset:t},signal:a}).then((function(e){fe(!1),Y(e.isValid),Z(e.message),e.isValid?(be(e.preview),xe(e.currentTime)):be("")})).catch((function(e){"AbortError"!==e.name&&(fe(!1),Y(!1),Z(e.message),be(""))}))}return Z(""),!0}())}),[F,j]),(0,o.useEffect)((function(){if(te){var e=[];t.forEach((function(t){var n=t.label;-1!==Re.indexOf(t.value)&&(n=n.replace("%s",te.toLowerCase())),e.push({value:t.value,label:n})})),ie(e)}}),[te]),(0,o.useEffect)((function(){G&&e.onDataIsValid&&e.onDataIsValid(e.postType),!G&&e.onDataIsInvalid&&e.onDataIsInvalid(e.postType)}),[G]),(0,o.useEffect)((function(){pe&&e.onValidationStarted&&e.onValidationStarted(e.postType),!pe&&e.onValidationFinished&&e.onValidationFinished(e.postType)}),[pe]);var Te=y.map((function(e){return e.label})),Ne=[React.createElement(r.SettingRow,{label:e.text.fieldActive,key:"expirationdate_activemeta-"+e.postType},React.createElement(r.CheckboxControl,{name:"expirationdate_activemeta-"+e.postType,checked:F||!1,label:e.text.fieldActiveLabel,onChange:function(e){A(e)}}))];return F&&(Ne.push(React.createElement(r.SettingRow,{label:e.text.fieldAutoEnable,key:"expirationdate_autoenable-"+e.postType},React.createElement(r.CheckboxControl,{name:"expirationdate_autoenable-"+e.postType,checked:Q||!1,label:e.text.fieldAutoEnableLabel,onChange:function(e){U(e)}}))),Ne.push(React.createElement(r.SettingRow,{label:e.text.fieldTaxonomy,key:"expirationdate_taxonomy-"+e.postType},React.createElement(r.SelectControl,{name:"expirationdate_taxonomy-"+e.postType,options:e.taxonomiesList,selected:d,noItemFoundMessage:e.text.noItemsfound,description:e.text.fieldTaxonomyDescription,data:e.postType,onChange:function(e){m(e)}}))),Ne.push(React.createElement(r.SettingRow,{label:e.text.fieldHowToExpire,key:"expirationdate_expiretype-"+e.postType},React.createElement(r.SelectControl,{name:"expirationdate_expiretype-"+e.postType,className:"pe-howtoexpire",options:oe,description:e.text.fieldHowToExpireDescription,selected:P,onChange:function(e){C(e)}}),"change-status"===P&&React.createElement(r.SelectControl,{name:"expirationdate_newstatus-"+e.postType,options:e.statusesList,selected:ue,onChange:se}),e.taxonomiesList.length>0&&["category","category-add","category-remove"].indexOf(P)>-1&&React.createElement(r.TokensControl,{label:e.text.fieldTerm,name:"expirationdate_terms-"+e.postType,options:Te,value:_,isLoading:h,onChange:function(e){R(e)},description:e.text.fieldTermDescription,maxSuggestions:1e3,expandOnFocus:!0,autoSelectFirstMatch:!0}))),Ne.push(React.createElement(r.SettingRow,{label:e.text.fieldDefaultDateTimeOffset,key:"expired-custom-date-"+e.postType},React.createElement(r.TextControl,{name:"expired-custom-date-"+e.postType,value:j,loading:pe,placeholder:e.settings.globalDefaultExpireOffset,description:e.text.fieldDefaultDateTimeOffsetDescription,unescapedDescription:!0,onChange:function(e){I(e)}}),ve&&React.createElement(o.Fragment,null,React.createElement("h4",null,e.text.datePreview),React.createElement("div",null,React.createElement("div",null,React.createElement("span",null,e.text.datePreviewCurrent,": "),React.createElement("span",null,React.createElement("code",null,Se))),React.createElement("div",null,React.createElement("span",null,e.text.datePreviewComputed,": "),React.createElement("span",null,React.createElement("code",null,ve))))))),Ne.push(React.createElement(r.SettingRow,{label:e.text.fieldWhoToNotify,key:"expirationdate_emailnotification-"+e.postType},React.createElement(r.TextControl,{name:"expirationdate_emailnotification-"+e.postType,className:"large-text",value:V,description:e.text.fieldWhoToNotifyDescription,onChange:function(e){L(e)}})))),Ne=(0,l.applyFilters)("expirationdate_settings_posttype",Ne,e,F,o.useState),React.createElement(r.SettingsFieldset,{legend:e.legend},React.createElement(r.SettingsTable,{bodyChildren:Ne}),!G&&React.createElement(s,null,React.createElement("div",{className:"publishpress-future-notice publishpress-future-notice-error"},React.createElement("strong",null,e.text.error,":")," ",X)))}},138:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PostTypesSettingsPanels=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(57);t.PostTypesSettingsPanels=function(e){var t=[],n=!0,o=!1,i=void 0;try{for(var l,c=Object.entries(e.settings)[Symbol.iterator]();!(n=(l=c.next()).done);n=!0){var u=l.value,s=a(u,2),d=s[0],m=s[1];t.push(React.createElement(r.PostTypeSettingsPanel,{legend:m.label,text:e.text,postType:d,settings:m,expireTypeList:e.expireTypeList,taxonomiesList:e.taxonomiesList[d],statusesList:e.statusesList[d],key:d+"-panel",onDataIsValid:e.onDataIsValid,onDataIsInvalid:e.onDataIsInvalid,onValidationStarted:e.onValidationStarted,onValidationFinished:e.onValidationFinished}))}}catch(e){o=!0,i=e}finally{try{!n&&c.return&&c.return()}finally{if(o)throw i}}return t}},858:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SelectControl=void 0;var a=n(386),r=n(214);t.SelectControl=function(e){return React.createElement(a.Fragment,null,0===e.options.length&&React.createElement("div",null,e.noItemFoundMessage),e.options.length>0&&React.createElement(r.SelectControl,{label:e.label,name:e.name,id:e.name,className:e.className,value:e.selected,onChange:function(t){e.onChange(t)},"data-data":e.data,options:e.options}),e.children,React.createElement("p",{className:"description"},e.description))}},5:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingRow=void 0,n(386),t.SettingRow=function(e){return React.createElement("tr",{valign:"top"},React.createElement("th",{scope:"row"},React.createElement("label",{htmlFor:""},e.label)),React.createElement("td",null,e.children))}},786:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsFieldset=function(e){return React.createElement("fieldset",null,React.createElement("legend",null,e.legend),e.children)}},892:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsForm=function(e){return React.createElement("form",{method:"post"},e.children)}},681:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsSection=void 0;var a=n(386);t.SettingsSection=function(e){return React.createElement(a.Fragment,null,React.createElement("h2",null,e.title),React.createElement("p",null,e.description),e.children)}},772:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsTable=function(e){return React.createElement("table",{className:"form-table"},React.createElement("tbody",null,e.bodyChildren))}},242:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Spinner=function(e){return React.createElement("span",{className:"publishpress-future-spinner"},React.createElement("div",null),React.createElement("div",null),React.createElement("div",null),React.createElement("div",null))}},438:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SubmitButton=function(e){return React.createElement("input",{type:"submit",name:e.name,value:e.text,disabled:e.disabled,className:"button-primary"})}},301:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TextControl=void 0;var a=n(386),r=n(214),o=n(57);t.TextControl=function(e){var t;t=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description);var n=e.className?e.className:"";return e.loading&&(n+=" publishpress-future-loading publishpress-future-loading-input"),React.createElement(a.Fragment,null,React.createElement("div",{className:n},React.createElement(r.TextControl,{type:"text",label:e.label,name:e.name,id:e.name,className:e.className,value:e.value,placeholder:e.placeholder,onChange:function(t){e.onChange&&e.onChange(t)}}),e.loading&&React.createElement(o.Spinner,null),t))}},190:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ToggleArrowButton=void 0;var a=n(214);t.ToggleArrowButton=function(e){var t=e.iconExpanded?e.iconExpanded:"arrow-up-alt2",n=e.iconCollapsed?e.iconCollapsed:"arrow-down-alt2",r=e.isExpanded?t:n,o=e.isExpanded?e.titleExpanded:e.titleCollapsed;return React.createElement(a.Button,{isSmall:!0,title:o,icon:r,onClick:function(){e.onClick&&e.onClick()},className:e.className})}},873:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ToggleCalendarDatePicker=void 0;var a=n(190),r=n(620),o=n(386);t.ToggleCalendarDatePicker=function(e){var t=e.isExpanded,n=e.strings,i=e.onToggleCalendar,l=e.currentDate,c=e.onChangeDate,u=e.is12Hour,s=e.startOfWeek;return(0,o.useEffect)((function(){var e=document.querySelector(".future-action-calendar-toggle");if(e){var t=e.nextElementSibling;if(t){var n=t.querySelector(".components-datetime__time");if(n){var a=n.nextSibling;a&&t.insertBefore(e,a)}}}})),React.createElement(o.Fragment,null,React.createElement(a.ToggleArrowButton,{className:"future-action-calendar-toggle",isExpanded:t,iconExpanded:"arrow-up-alt2",iconCollapsed:"calendar",titleExpanded:n.hideCalendar,titleCollapsed:n.showCalendar,onClick:i}),React.createElement(r.DateTimePicker,{currentDate:l,onChange:c,__nextRemoveHelpButton:!0,is12Hour:u,startOfWeek:s}))}},948:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TokensControl=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(386),o=n(214);t.TokensControl=function(e){var t=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,r.useState)(""),2),n=t[0],i=t[1];(0,r.useEffect)((function(){e.value&&i(e.value.join(","))}),[e.value]);var l=void 0;e.description&&(l=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description));var c=e.value?e.value:[];return React.createElement(r.Fragment,null,React.createElement(o.FormTokenField,{label:e.label,value:c,suggestions:e.options,onChange:function(t){e.onChange&&e.onChange(t),"object"===(void 0===t?"undefined":a(t))?i(t.join(",")):i("")},maxSuggestions:e.maxSuggestions,className:"publishpres-future-token-field",__experimentalExpandOnFocus:e.expandOnFocus,__experimentalAutoSelectFirstMatch:e.autoSelectFirstMatch}),React.createElement("input",{type:"hidden",name:e.name,value:n}),l)}},225:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TrueFalseControl=function(e){var t=wp.element.Fragment,n=function(t){e.onChange&&e.onChange(t.target.value===e.trueValue&&jQuery(t.target).is(":checked"))};return React.createElement(t,null,React.createElement("input",{type:"radio",name:e.name,id:e.name+"-true",value:e.trueValue,defaultChecked:e.selected,onChange:n}),React.createElement("label",{htmlFor:e.name+"-true"},e.trueLabel),"  ",React.createElement("input",{type:"radio",name:e.name,defaultChecked:!e.selected,id:e.name+"-false",value:e.falseValue,onChange:n}),React.createElement("label",{htmlFor:e.name+"-false"},e.falseLabel),React.createElement("p",{className:"description"},e.description))}},57:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var a=n(442);Object.defineProperty(t,"ButtonsPanel",{enumerable:!0,get:function(){return a.ButtonsPanel}});var r=n(418);Object.defineProperty(t,"FutureActionPanel",{enumerable:!0,get:function(){return r.FutureActionPanel}});var o=n(864);Object.defineProperty(t,"FutureActionPanelBlockEditor",{enumerable:!0,get:function(){return o.FutureActionPanelBlockEditor}});var i=n(571);Object.defineProperty(t,"FutureActionPanelClassicEditor",{enumerable:!0,get:function(){return i.FutureActionPanelClassicEditor}});var l=n(437);Object.defineProperty(t,"FutureActionPanelQuickEdit",{enumerable:!0,get:function(){return l.FutureActionPanelQuickEdit}});var c=n(94);Object.defineProperty(t,"FutureActionPanelBulkEdit",{enumerable:!0,get:function(){return c.FutureActionPanelBulkEdit}});var u=n(239);Object.defineProperty(t,"PostTypeSettingsPanel",{enumerable:!0,get:function(){return u.PostTypeSettingsPanel}});var s=n(138);Object.defineProperty(t,"PostTypesSettingsPanels",{enumerable:!0,get:function(){return s.PostTypesSettingsPanels}});var d=n(5);Object.defineProperty(t,"SettingRow",{enumerable:!0,get:function(){return d.SettingRow}});var m=n(786);Object.defineProperty(t,"SettingsFieldset",{enumerable:!0,get:function(){return m.SettingsFieldset}});var p=n(892);Object.defineProperty(t,"SettingsForm",{enumerable:!0,get:function(){return p.SettingsForm}});var f=n(681);Object.defineProperty(t,"SettingsSection",{enumerable:!0,get:function(){return f.SettingsSection}});var y=n(772);Object.defineProperty(t,"SettingsTable",{enumerable:!0,get:function(){return y.SettingsTable}});var g=n(438);Object.defineProperty(t,"SubmitButton",{enumerable:!0,get:function(){return g.SubmitButton}});var v=n(311);Object.defineProperty(t,"CheckboxControl",{enumerable:!0,get:function(){return v.CheckboxControl}});var b=n(858);Object.defineProperty(t,"SelectControl",{enumerable:!0,get:function(){return b.SelectControl}});var h=n(301);Object.defineProperty(t,"TextControl",{enumerable:!0,get:function(){return h.TextControl}});var E=n(948);Object.defineProperty(t,"TokensControl",{enumerable:!0,get:function(){return E.TokensControl}});var S=n(13);Object.defineProperty(t,"NonceControl",{enumerable:!0,get:function(){return S.NonceControl}});var x=n(225);Object.defineProperty(t,"TrueFalseControl",{enumerable:!0,get:function(){return x.TrueFalseControl}});var _=n(242);Object.defineProperty(t,"Spinner",{enumerable:!0,get:function(){return _.Spinner}})},39:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n=t.getCurrentTimeInSeconds=function(){return o((new Date).getTime())},a=(t.getCurrentTimeAsTimestamp=function(){return a(n())},t.formatUnixTimeToTimestamp=function(e){var t=new Date(o(e));return t.getFullYear()+"-"+("0"+(t.getMonth()+1)).slice(-2)+"-"+("0"+t.getDate()).slice(-2)+" "+("0"+t.getHours()).slice(-2)+":"+("0"+t.getMinutes()).slice(-2)+":"+("0"+t.getSeconds()).slice(-2)}),r=(t.formatTimestampToUnixTime=function(e){var t=new Date(e);return o(t.getTime())},t.timeIsInSeconds=function(e){return parseInt(e).toString().length<=10}),o=t.normalizeUnixTimeToSeconds=function(e){return e=parseInt(e),r()?e:e/1e3};t.normalizeUnixTimeToMilliseconds=function(e){return e=parseInt(e),r()?1e3*e:e}},409:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=(t.compact=function(e){return e?(Array.isArray(e)||"object"!==(void 0===e?"undefined":n(e))||(e=Object.values(e)),e.filter((function(e){return null!=e&&""!==e}))):[]},t.debugLogFactory=function(e){return function(t){for(var n=arguments.length,a=Array(n>1?n-1:0),r=1;r{e.exports=ReactDOM},361:e=>{e.exports=publishpressFutureSettingsConfig},244:e=>{e.exports=wp},214:e=>{e.exports=wp.components},562:e=>{e.exports=wp.data},386:e=>{e.exports=wp.element},566:e=>{e.exports=wp.hooks},986:e=>{e.exports=wp.plugins},11:e=>{e.exports=wp.url}},t={};function n(a){var r=t[a];if(void 0!==r)return r.exports;var o=t[a]={exports:{}};return e[a](o,o.exports,n),o.exports}var a=Object.assign||function(e){for(var t=1;t{"use strict";var e={5442:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ButtonsPanel=function(e){return React.createElement("div",null,e.children)}},4311:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CheckboxControl=void 0;var a=n(1386),r=n(2214);t.CheckboxControl=function(e){var t,n=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,a.useState)(e.checked||!1),2),o=n[0],i=n[1];return t=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description),React.createElement(a.Fragment,null,React.createElement(r.CheckboxControl,{label:e.label,name:e.name,id:e.name,className:e.className,checked:o||!1,onChange:function(t){i(t),e.onChange&&e.onChange(t)}}),t)}},5470:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DateOffsetPreview=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(1386),o=n(4011),i=n(3244);n(9922);var l=t.DateOffsetPreview=function(e){var t=e.offset,n=e.label,l=e.labelDatePreview,c=e.labelOffsetPreview,s=e.setValidationErrorCallback,u=e.setHasPendingValidationCallback,d=e.setHasValidDataCallback,m=e.compactView,p=void 0!==m&&m,f=(0,r.useState)(""),y=a(f,2),v=y[0],g=y[1],b=(0,r.useState)(),h=a(b,2),E=h[0],x=h[1],S=(0,r.useRef)(new AbortController);(0,r.useEffect)((function(){!function(){if(t){var e=S.current;e&&e.abort(),S.current=new AbortController;var n=S.current.signal;u(!0),(0,i.apiFetch)({path:(0,o.addQueryArgs)("publishpress-future/v1/settings/validate-expire-offset"),method:"POST",data:{offset:t},signal:n}).then((function(e){u(!1),d(e.isValid),s(e.message),e.isValid?(g(e.preview),x(e.currentTime)):g("")})).catch((function(e){"AbortError"!==e.name&&(u(!1),d(!1),s(e.message),g(""))}))}}()}),[t]);var _=p?" compact":"";return React.createElement(r.Fragment,null,t&&React.createElement("div",{className:"publishpress-future-date-preview"+_},React.createElement("h4",null,n),React.createElement("div",{className:"publishpress-future-date-preview-body"},React.createElement("div",null,React.createElement("span",{className:"publishpress-future-date-preview-label"},l,": "),React.createElement("span",{className:"publishpress-future-date-preview-value"},E)),React.createElement("div",null,React.createElement("span",{className:"publishpress-future-date-preview-label"},c,": "),React.createElement("span",{className:"publishpress-future-date-preview-value"},v)))))};t.default=l},4620:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DateTimePicker=void 0;var a=n(7039),r=n(2214);t.DateTimePicker=function(e){var t=e.currentDate,n=e.onChange,o=e.is12Hour,i=e.startOfWeek;return"number"==typeof t&&(t=(0,a.normalizeUnixTimeToMilliseconds)(t)),React.createElement(r.DateTimePicker,{currentDate:t,onChange:n,__nextRemoveHelpButton:!0,is12Hour:o,startOfWeek:i})}},8418:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanel=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},o=n(8409),i=n(4873),l=n(9986),c=n(2214),s=n(1442),u=n(6625),d=wp.components,m=d.PanelRow,p=d.CheckboxControl,f=d.SelectControl,y=d.FormTokenField,v=d.Spinner,g=d.BaseControl,b=wp.element,h=b.Fragment,E=b.useEffect,x=b.useState,S=wp.htmlEntities.decodeEntities,_=wp.url.addQueryArgs,A=wp.data,R=A.useSelect,C=A.useDispatch,w=wp.apiFetch;t.FutureActionPanel=function(e){var t=R((function(t){return{action:t(e.storeName).getAction(),date:t(e.storeName).getDate(),enabled:t(e.storeName).getEnabled(),terms:t(e.storeName).getTerms(),taxonomy:t(e.storeName).getTaxonomy(),taxonomyName:t(e.storeName).getTaxonomyName(),termsListByName:t(e.storeName).getTermsListByName(),termsListById:t(e.storeName).getTermsListById(),isFetchingTerms:t(e.storeName).getIsFetchingTerms(),calendarIsVisible:t(e.storeName).getCalendarIsVisible(),hasValidData:t(e.storeName).getHasValidData(),newStatus:t(e.storeName).getNewStatus()}})),n=t.action,d=t.date,b=t.enabled,A=t.terms,T=t.taxonomy,N=t.taxonomyName,P=t.termsListByName,O=t.termsListById,k=t.isFetchingTerms,F=t.calendarIsVisible,D=t.hasValidData,I=t.newStatus,j=x(""),B=r(j,2),M=B[0],V=B[1],L=C(e.storeName),H=L.setAction,U=L.setDate,W=L.setEnabled,Q=L.setTerms,q=L.setTaxonomy,z=L.setTermsListByName,Y=L.setTermsListById,J=L.setTaxonomyName,G=L.setIsFetchingTerms,Z=L.setCalendarIsVisible,K=L.setHasValidData,X=L.setNewStatus,$=function(e){P[e]={id:e,count:0,description:"",link:"",name:e,slug:e,taxonomy:T},O[e]=e,z(P),Y(O),Q([].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0&&O&&(re=(0,o.compact)(function(e){return"object"!==(void 0===e?"undefined":a(e))||null===e?{}:e.map((function(e){return O[e]}))}(A)),"string"==typeof re&&(re=[]));var oe=[];"object"===(void 0===P?"undefined":a(P))&&null!==P&&(oe=Object.keys(P));var ie,le=F?"future-action-panel":"future-action-panel hidden-calendar",ce=F?"future-action-panel-content":"future-action-panel-content hidden-calendar",se=F?"future-action-date-panel":"future-action-date-panel hidden-calendar";ie="inherited"===e.timeFormat?!e.is12Hour:"24h"===e.timeFormat;var ue=e.actionsSelectOptions;e.taxonomy||(ue=e.actionsSelectOptions.filter((function(e){return-1===["category","category-add","category-remove","category-remove-all"].indexOf(e.value)})));var de=function(e,t,n){var a=e.split("{"),o=[];o.push(a.shift());var i=!0,l=!1,c=void 0;try{for(var s,u=a[Symbol.iterator]();!(i=(s=u.next()).done);i=!0){var d=s.value.split("}"),m=r(d,2),p=m[0],f=m[1];o.push(React.createElement("a",{href:t,target:"_blank",key:t},p)),o.push(f)}}catch(e){l=!0,c=e}finally{try{!i&&u.return&&u.return()}finally{if(l)throw c}}return o}(e.strings.timezoneSettingsHelp,"/wp-admin/options-general.php#timezone_string"),me=String(n).includes("category")&&"category-remove-all"!==n,pe=N;switch(n){case"category":pe=e.strings.newTerms.replace("%s",N);break;case"category-remove":pe=e.strings.removeTerms.replace("%s",N);break;case"category-add":pe=e.strings.addTerms.replace("%s",N)}return E((function(){if(!b)return K(!0),void V("");K(function(){var t=!0;if(!b)return V(""),!0;n||(V(e.strings.errorActionRequired),t=!1),d||(V(e.strings.errorDateRequired),t=!1),d&&new Date(d){Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelAfterActionField=void 0;var a=Object.assign||function(e){for(var t=1;t{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelBlockEditor=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(2057);t.FutureActionPanelBlockEditor=function(e){var t=wp.editPost.PluginDocumentSettingPanel,n=wp.data,o=n.useDispatch,i=n.select,l=o("core/editor").editPost,c=i("core/editor").getEditedPostAttribute("publishpress_future_action"),s=o("core/editor"),u=s.lockPostSaving,d=s.unlockPostSaving;return React.createElement(t,{name:"publishpress-future-action-panel",title:e.strings.panelTitle,initialOpen:e.postTypeDefaultConfig.autoEnable,className:"post-expirator-panel"},React.createElement("div",{id:"publishpress-future-block-editor"},React.createElement(r.FutureActionPanel,{context:"block-editor",postType:e.postType,isCleanNewPost:e.isCleanNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:c.enabled,calendarIsVisible:!0,action:c.action,newStatus:c.newStatus,date:c.date,terms:c.terms,taxonomy:c.taxonomy,taxonomyName:e.taxonomyName,onChangeData:function(t,n){var r=i(e.storeName),o={enabled:r.getEnabled()};o.enabled&&(o.action=r.getAction(),o.newStatus=r.getNewStatus(),o.date=r.getDate(),o.terms=r.getTerms(),o.taxonomy=r.getTaxonomy(),o.extraData=r.getExtraData()),function(e){var t={publishpress_future_action:{}},n=!0,r=!1,o=void 0;try{for(var i,c=Object.entries(e)[Symbol.iterator]();!(n=(i=c.next()).done);n=!0){var s=i.value,u=a(s,2),d=u[0],m=u[1];t.publishpress_future_action[d]=m}}catch(e){r=!0,o=e}finally{try{!n&&c.return&&c.return()}finally{if(r)throw o}}l(t)}(o)},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){d("future-action")},hideCalendarByDefault:e.hideCalendarByDefault,onDataIsInvalid:function(){u("future-action")}})))}},2094:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelBulkEdit=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(2057),o=n(8409);t.FutureActionPanelBulkEdit=function(e){var t=wp.data,n=t.useSelect,i=t.useDispatch,l=t.select,c=wp.element.useEffect,s=n((function(t){return t(e.storeName).getDate()}),[]),u=n((function(t){return t(e.storeName).getEnabled()}),[]),d=n((function(t){return t(e.storeName).getAction()}),[]),m=n((function(t){return t(e.storeName).getNewStatus()}),[]),p=n((function(t){return t(e.storeName).getTerms()}),[]),f=n((function(t){return t(e.storeName).getTaxonomy()}),[]),y=n((function(t){return t(e.storeName).getChangeAction()}),[]),v=n((function(t){return t(e.storeName).getHasValidData()}),[]),g=i(e.storeName).setChangeAction,b=p;"object"===(void 0===p?"undefined":a(p))&&(b=p.join(","));var h=[{value:"no-change",label:e.strings.noChange},{value:"change-add",label:e.strings.changeAdd},{value:"add-only",label:e.strings.addOnly},{value:"change-only",label:e.strings.changeOnly},{value:"remove-only",label:e.strings.removeOnly}];return c((function(){v||"no-change"===y?jQuery("#bulk_edit").prop("disabled",!1):jQuery("#bulk_edit").prop("disabled",!0)}),[v,y]),React.createElement("div",{className:"post-expirator-panel"},React.createElement(r.SelectControl,{label:e.strings.futureActionUpdate,name:"future_action_bulk_change_action",value:y,options:h,onChange:function(e){g(e)}}),["change-add","add-only","change-only"].includes(y)&&React.createElement(r.FutureActionPanel,{context:"bulk-edit",autoEnableAndHideCheckbox:!0,postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:!0,calendarIsVisible:!1,action:d,newStatus:m,date:s,terms:p,taxonomy:f,taxonomyName:e.taxonomyName,onChangeData:function(t,n){(0,o.getElementByName)("future_action_bulk_enabled").value=l(e.storeName).getEnabled()?1:0,(0,o.getElementByName)("future_action_bulk_action").value=l(e.storeName).getAction(),(0,o.getElementByName)("future_action_bulk_new_status").value=l(e.storeName).getNewStatus(),(0,o.getElementByName)("future_action_bulk_date").value=l(e.storeName).getDate(),(0,o.getElementByName)("future_action_bulk_terms").value=l(e.storeName).getTerms().join(","),(0,o.getElementByName)("future_action_bulk_taxonomy").value=l(e.storeName).getTaxonomy()},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,hideCalendarByDefault:e.hideCalendarByDefault,strings:e.strings}),React.createElement("input",{type:"hidden",name:"future_action_bulk_enabled",value:u?1:0}),React.createElement("input",{type:"hidden",name:"future_action_bulk_action",value:d}),React.createElement("input",{type:"hidden",name:"future_action_bulk_new_status",value:m}),React.createElement("input",{type:"hidden",name:"future_action_bulk_date",value:s}),React.createElement("input",{type:"hidden",name:"future_action_bulk_terms",value:b}),React.createElement("input",{type:"hidden",name:"future_action_bulk_taxonomy",value:f}),React.createElement("input",{type:"hidden",name:"future_action_bulk_view",value:"bulk-edit"}),React.createElement("input",{type:"hidden",name:"_future_action_nonce",value:e.nonce}))}},3571:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelClassicEditor=void 0;var a=n(2057),r=n(7562);n(1386),t.FutureActionPanelClassicEditor=function(e){(new Date).getTimezoneOffset();var t=function(e){return document.getElementsByName(e)[0]},n=function(e){var n=t(e);return n?n.value:""},o={enabled:"1"===n("future_action_enabled"),action:n("future_action_action"),newStatus:n("future_action_new_status"),date:n("future_action_date"),terms:function(e){var n=t("future_action_terms");if(!n)return[];var a=n.value.split(",");return 1===a.length&&""===a[0]&&(a=[]),a.map((function(e){return parseInt(e)}))}(),taxonomy:n("future_action_taxonomy")};return React.createElement("div",{className:"post-expirator-panel"},React.createElement(a.FutureActionPanel,{context:"classic-editor",postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:o.enabled,calendarIsVisible:!0,action:o.action,newStatus:o.newStatus,date:o.date,terms:o.terms,taxonomy:o.taxonomy,taxonomyName:e.taxonomyName,onChangeData:function(n,a){var o=(0,r.select)(e.storeName);t("future_action_enabled").value=o.getEnabled()?1:0,t("future_action_action").value=o.getAction(),t("future_action_new_status").value=o.getNewStatus(),t("future_action_date").value=o.getDate(),t("future_action_terms").value=o.getTerms().join(","),t("future_action_taxonomy").value=o.getTaxonomy()},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){jQuery("#publish").prop("disabled",!1)},hideCalendarByDefault:e.hideCalendarByDefault,onDataIsInvalid:function(){jQuery("#publish").prop("disabled",!0)}}))}},5437:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelQuickEdit=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(2057),o=n(7562);n(1386),t.FutureActionPanelQuickEdit=function(e){var t=(0,o.useSelect)((function(t){return t(e.storeName).getDate()}),[]),n=(0,o.useSelect)((function(t){return t(e.storeName).getEnabled()}),[]),i=(0,o.useSelect)((function(t){return t(e.storeName).getAction()}),[]),l=(0,o.useSelect)((function(t){return t(e.storeName).getTerms()}),[]),c=(0,o.useSelect)((function(t){return t(e.storeName).getTaxonomy()}),[]),s=((0,o.useSelect)((function(t){return t(e.storeName).getHasValidData()}),[]),(0,o.useSelect)((function(t){return t(e.storeName).getNewStatus()}),[])),u=l;return"object"===(void 0===l?"undefined":a(l))&&(u=l.join(",")),React.createElement("div",{className:"post-expirator-panel"},React.createElement(r.FutureActionPanel,{context:"quick-edit",postType:e.postType,isCleanNewPost:e.isNewPost,actionsSelectOptions:e.actionsSelectOptions,statusesSelectOptions:e.statusesSelectOptions,enabled:n,calendarIsVisible:!1,action:i,newStatus:s,date:t,terms:l,taxonomy:c,taxonomyName:e.taxonomyName,onChangeData:function(e,t){},is12Hour:e.is12Hour,timeFormat:e.timeFormat,startOfWeek:e.startOfWeek,storeName:e.storeName,strings:e.strings,onDataIsValid:function(){jQuery(".button-primary.save").prop("disabled",!1)},hideCalendarByDefault:e.hideCalendarByDefault,onDataIsInvalid:function(){jQuery(".button-primary.save").prop("disabled",!0)}}),React.createElement("input",{type:"hidden",name:"future_action_enabled",value:n?1:0}),React.createElement("input",{type:"hidden",name:"future_action_action",value:i||""}),React.createElement("input",{type:"hidden",name:"future_action_new_status",value:s||""}),React.createElement("input",{type:"hidden",name:"future_action_date",value:t||""}),React.createElement("input",{type:"hidden",name:"future_action_terms",value:u||""}),React.createElement("input",{type:"hidden",name:"future_action_taxonomy",value:c||""}),React.createElement("input",{type:"hidden",name:"future_action_view",value:"quick-edit"}),React.createElement("input",{type:"hidden",name:"_future_action_nonce",value:e.nonce}))}},6625:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FutureActionPanelTop=void 0;var a=Object.assign||function(e){for(var t=1;t{Object.defineProperty(t,"__esModule",{value:!0}),t.NonceControl=void 0;var a=n(1386);t.NonceControl=function(e){return e.name||(e.name="_wpnonce"),e.referrer||(e.referrer=!0),React.createElement(a.Fragment,null,React.createElement("input",{type:"hidden",name:e.name,id:e.name,value:e.nonce}),e.referrer&&React.createElement("input",{type:"hidden",name:"_wp_http_referer",value:e.referrer}))}},1620:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PostTypeSettingsPanel=void 0;var a,r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},o=n(2057),i=n(1386),l=n(4011),c=n(8566),s=n(3244),u=(a=n(5470))&&a.__esModule?a:{default:a},d=wp.components.PanelRow;t.PostTypeSettingsPanel=function(e){var t=e.expireTypeList[e.postType],n=(0,i.useState)(e.settings.taxonomy),a=r(n,2),m=a[0],p=a[1],f=(0,i.useState)([]),y=r(f,2),v=y[0],g=y[1],b=(0,i.useState)(!1),h=r(b,2),E=h[0],x=h[1],S=(0,i.useState)([]),_=r(S,2),A=_[0],R=_[1],C=(0,i.useState)(e.settings.howToExpire),w=r(C,2),T=w[0],N=w[1],P=(0,i.useState)(e.settings.active),O=r(P,2),k=O[0],F=O[1],D=(0,i.useState)(e.settings.defaultExpireOffset),I=r(D,2),j=I[0],B=I[1],M=(0,i.useState)(e.settings.emailNotification),V=r(M,2),L=V[0],H=V[1],U=(0,i.useState)(e.settings.autoEnabled),W=r(U,2),Q=W[0],q=W[1],z=(0,i.useState)(!0),Y=r(z,2),J=Y[0],G=Y[1],Z=(0,i.useState)(""),K=r(Z,2),X=K[0],$=K[1],ee=(0,i.useState)(""),te=r(ee,2),ne=te[0],ae=te[1],re=(0,i.useState)(t),oe=r(re,2),ie=oe[0],le=oe[1],ce=(0,i.useState)(e.settings.newStatus),se=r(ce,2),ue=se[0],de=se[1],me=(0,i.useState)(!1),pe=r(me,2),fe=pe[0],ye=pe[1],ve=j||e.settings.globalDefaultExpireOffset,ge=["category","category-add","category-remove","category-remove-all"];(0,i.useEffect)((function(){var t;0===e.taxonomiesList.length&&(t=ie.filter((function(e){return-1===ge.indexOf(e.value)})),le(t))}),[]),(0,i.useEffect)((function(){m&&e.taxonomiesList&&(x(!0),(0,s.apiFetch)({path:(0,l.addQueryArgs)("publishpress-future/v1/terms/"+m)}).then((function(t){var n=[],a=null,r=void 0;t.terms.forEach((function(t){r={value:t.id,label:t.name},n.push(r),m===e.settings.taxonomy&&e.settings.terms.includes(t.id)&&(null===a&&(a=[]),a.push(r.label))})),g(n),R(a),x(!1)})),e.taxonomiesList.forEach((function(e){e.value===m&&ae(e.label)})))}),[m]),(0,i.useEffect)((function(){if(ne){var e=[];t.forEach((function(t){var n=t.label;-1!==ge.indexOf(t.value)&&(n=n.replace("%s",ne.toLowerCase())),e.push({value:t.value,label:n})})),le(e)}}),[ne]),(0,i.useEffect)((function(){J&&e.onDataIsValid&&e.onDataIsValid(e.postType),!J&&e.onDataIsInvalid&&e.onDataIsInvalid(e.postType)}),[J]),(0,i.useEffect)((function(){fe&&e.onValidationStarted&&e.onValidationStarted(e.postType),!fe&&e.onValidationFinished&&e.onValidationFinished(e.postType)}),[fe]);var be=v.map((function(e){return e.label})),he=[React.createElement(o.SettingRow,{label:e.text.fieldActive,key:"expirationdate_activemeta-"+e.postType},React.createElement(o.CheckboxControl,{name:"expirationdate_activemeta-"+e.postType,checked:k||!1,label:e.text.fieldActiveLabel,onChange:function(e){F(e)}}))];k&&(he.push(React.createElement(o.SettingRow,{label:e.text.fieldAutoEnable,key:"expirationdate_autoenable-"+e.postType},React.createElement(o.CheckboxControl,{name:"expirationdate_autoenable-"+e.postType,checked:Q||!1,label:e.text.fieldAutoEnableLabel,onChange:function(e){q(e)}}))),he.push(React.createElement(o.SettingRow,{label:e.text.fieldTaxonomy,key:"expirationdate_taxonomy-"+e.postType},React.createElement(o.SelectControl,{name:"expirationdate_taxonomy-"+e.postType,options:e.taxonomiesList,selected:m,noItemFoundMessage:e.text.noItemsfound,description:e.text.fieldTaxonomyDescription,data:e.postType,onChange:function(e){p(e)}}))),he.push(React.createElement(o.SettingRow,{label:e.text.fieldHowToExpire,key:"expirationdate_expiretype-"+e.postType},React.createElement(o.SelectControl,{name:"expirationdate_expiretype-"+e.postType,className:"pe-howtoexpire",options:ie,description:e.text.fieldHowToExpireDescription,selected:T,onChange:function(e){N(e)}}),"change-status"===T&&React.createElement(o.SelectControl,{name:"expirationdate_newstatus-"+e.postType,options:e.statusesList,selected:ue,onChange:de}),e.taxonomiesList.length>0&&["category","category-add","category-remove"].indexOf(T)>-1&&React.createElement(o.TokensControl,{label:e.text.fieldTerm,name:"expirationdate_terms-"+e.postType,options:be,value:A,isLoading:E,onChange:function(e){R(e)},description:e.text.fieldTermDescription,maxSuggestions:1e3,expandOnFocus:!0,autoSelectFirstMatch:!0}))),he.push(React.createElement(o.SettingRow,{label:e.text.fieldDefaultDateTimeOffset,key:"expired-custom-date-"+e.postType},React.createElement(o.TextControl,{name:"expired-custom-date-"+e.postType,value:j,loading:fe,placeholder:e.settings.globalDefaultExpireOffset,description:e.text.fieldDefaultDateTimeOffsetDescription,unescapedDescription:!0,onChange:function(e){B(e)}}),React.createElement(u.default,{offset:ve,label:e.text.datePreview,labelDatePreview:e.text.datePreviewCurrent,labelOffsetPreview:e.text.datePreviewComputed,setValidationErrorCallback:$,setHasPendingValidationCallback:ye,setHasValidDataCallback:G}))),he.push(React.createElement(o.SettingRow,{label:e.text.fieldWhoToNotify,key:"expirationdate_emailnotification-"+e.postType},React.createElement(o.TextControl,{name:"expirationdate_emailnotification-"+e.postType,className:"large-text",value:L,description:e.text.fieldWhoToNotifyDescription,onChange:function(e){H(e)}})))),he=(0,c.applyFilters)("expirationdate_settings_posttype",he,e,k,i.useState);var Ee=e.isVisible?"pe-settings-fieldset":"pe-settings-fieldset hidden";return React.createElement("div",{className:Ee},React.createElement(o.SettingsTable,{bodyChildren:he}),!J&&React.createElement(d,null,React.createElement("div",{className:"publishpress-future-notice publishpress-future-notice-error"},React.createElement("strong",null,e.text.error,":")," ",X)))}},8138:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PostTypesSettingsPanels=void 0;var a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(2057),o=n(1386);t.PostTypesSettingsPanels=function(e){var t=(0,o.useState)(Object.keys(e.settings)[0]),n=a(t,2),i=n[0],l=n[1],c=[],s=!0,u=!1,d=void 0;try{for(var m,p=Object.entries(e.settings)[Symbol.iterator]();!(s=(m=p.next()).done);s=!0){var f=m.value,y=a(f,2),v=y[0],g=y[1];c.push(React.createElement(r.PostTypeSettingsPanel,{legend:g.label,text:e.text,postType:v,settings:g,expireTypeList:e.expireTypeList,taxonomiesList:e.taxonomiesList[v],statusesList:e.statusesList[v],key:v+"-panel",onDataIsValid:e.onDataIsValid,onDataIsInvalid:e.onDataIsInvalid,onValidationStarted:e.onValidationStarted,onValidationFinished:e.onValidationFinished,isVisible:i===v}))}}catch(e){u=!0,d=e}finally{try{!s&&p.return&&p.return()}finally{if(u)throw d}}var b=function(e){e.preventDefault(),l(e.target.hash.replace("#","").replace("-panel",""))},h=[],E=!1,x=!0,S=!1,_=void 0;try{for(var A,R=Object.entries(e.settings)[Symbol.iterator]();!(x=(A=R.next()).done);x=!0){var C=A.value,w=a(C,2),T=w[0],N=w[1];E=i===T,h.push(React.createElement("a",{href:"#"+T+"-panel",className:"nav-tab "+(E?"nav-tab-active":""),key:T+"-tab",onClick:b},N.label))}}catch(e){S=!0,_=e}finally{try{!x&&R.return&&R.return()}finally{if(S)throw _}}return React.createElement("div",null,React.createElement("nav",{className:"nav-tab-wrapper"},h),c)}},2858:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SelectControl=void 0;var a=n(1386),r=n(2214);t.SelectControl=function(e){return React.createElement(a.Fragment,null,0===e.options.length&&React.createElement("div",null,e.noItemFoundMessage),e.options.length>0&&React.createElement(r.SelectControl,{label:e.label,name:e.name,id:e.name,className:e.className,value:e.selected,onChange:function(t){e.onChange(t)},"data-data":e.data,options:e.options}),e.children,React.createElement("p",{className:"description"},e.description))}},9005:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingRow=void 0,n(1386),t.SettingRow=function(e){return React.createElement("tr",{valign:"top"},React.createElement("th",{scope:"row"},React.createElement("label",{htmlFor:""},e.label)),React.createElement("td",null,e.children))}},5786:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsFieldset=function(e){return React.createElement("fieldset",{className:e.className},React.createElement("legend",null,e.legend),e.children)}},9892:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsForm=function(e){return React.createElement("form",{method:"post"},e.children)}},5681:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsSection=void 0;var a=n(1386);t.SettingsSection=function(e){return React.createElement(a.Fragment,null,React.createElement("h2",null,e.title),React.createElement("p",null,e.description),e.children)}},6772:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsTable=function(e){return React.createElement("table",{className:"form-table"},React.createElement("tbody",null,e.bodyChildren))}},242:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Spinner=function(e){return React.createElement("span",{className:"publishpress-future-spinner"},React.createElement("div",null),React.createElement("div",null),React.createElement("div",null),React.createElement("div",null))}},4438:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SubmitButton=function(e){return React.createElement("input",{type:"submit",name:e.name,value:e.text,disabled:e.disabled,className:"button-primary"})}},6301:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TextControl=void 0;var a=n(1386),r=n(2214),o=n(2057);t.TextControl=function(e){var t;t=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description);var n=e.className?e.className:"";return e.loading&&(n+=" publishpress-future-loading publishpress-future-loading-input"),React.createElement(a.Fragment,null,React.createElement("div",{className:n},React.createElement(r.TextControl,{type:"text",label:e.label,name:e.name,id:e.name,className:e.className,value:e.value,placeholder:e.placeholder,onChange:function(t){e.onChange&&e.onChange(t)}}),e.loading&&React.createElement(o.Spinner,null),t))}},3190:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ToggleArrowButton=void 0;var a=n(2214);t.ToggleArrowButton=function(e){var t=e.iconExpanded?e.iconExpanded:"arrow-up-alt2",n=e.iconCollapsed?e.iconCollapsed:"arrow-down-alt2",r=e.isExpanded?t:n,o=e.isExpanded?e.titleExpanded:e.titleCollapsed;return React.createElement(a.Button,{isSmall:!0,title:o,icon:r,onClick:function(){e.onClick&&e.onClick()},className:e.className})}},4873:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ToggleCalendarDatePicker=void 0;var a=n(3190),r=n(4620),o=n(1386);t.ToggleCalendarDatePicker=function(e){var t=e.isExpanded,n=e.strings,i=e.onToggleCalendar,l=e.currentDate,c=e.onChangeDate,s=e.is12Hour,u=e.startOfWeek;return(0,o.useEffect)((function(){var e=document.querySelector(".future-action-calendar-toggle");if(e){var t=e.nextElementSibling;if(t){var n=t.querySelector(".components-datetime__time");if(n){var a=n.nextSibling;a&&t.insertBefore(e,a)}}}})),React.createElement(o.Fragment,null,React.createElement(a.ToggleArrowButton,{className:"future-action-calendar-toggle",isExpanded:t,iconExpanded:"arrow-up-alt2",iconCollapsed:"calendar",titleExpanded:n.hideCalendar,titleCollapsed:n.showCalendar,onClick:i}),React.createElement(r.DateTimePicker,{currentDate:l,onChange:c,__nextRemoveHelpButton:!0,is12Hour:s,startOfWeek:u}))}},3948:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TokensControl=void 0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(1386),o=n(2214);t.TokensControl=function(e){var t=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,r.useState)(""),2),n=t[0],i=t[1];(0,r.useEffect)((function(){e.value&&i(e.value.join(","))}),[e.value]);var l=void 0;e.description&&(l=e.unescapedDescription?React.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e.description}}):React.createElement("p",{className:"description"},e.description));var c=e.value?e.value:[];return React.createElement(r.Fragment,null,React.createElement(o.FormTokenField,{label:e.label,value:c,suggestions:e.options,onChange:function(t){e.onChange&&e.onChange(t),"object"===(void 0===t?"undefined":a(t))?i(t.join(",")):i("")},maxSuggestions:e.maxSuggestions,className:"publishpres-future-token-field",__experimentalExpandOnFocus:e.expandOnFocus,__experimentalAutoSelectFirstMatch:e.autoSelectFirstMatch}),React.createElement("input",{type:"hidden",name:e.name,value:n}),l)}},8225:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TrueFalseControl=function(e){var t=wp.element.Fragment,n=function(t){e.onChange&&e.onChange(t.target.value===e.trueValue&&jQuery(t.target).is(":checked"))};return React.createElement(t,null,React.createElement("input",{type:"radio",name:e.name,id:e.name+"-true",value:e.trueValue,defaultChecked:e.selected,onChange:n}),React.createElement("label",{htmlFor:e.name+"-true"},e.trueLabel),"  ",React.createElement("input",{type:"radio",name:e.name,defaultChecked:!e.selected,id:e.name+"-false",value:e.falseValue,onChange:n}),React.createElement("label",{htmlFor:e.name+"-false"},e.falseLabel),React.createElement("p",{className:"description"},e.description))}},2057:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var a=n(5442);Object.defineProperty(t,"ButtonsPanel",{enumerable:!0,get:function(){return a.ButtonsPanel}});var r=n(8418);Object.defineProperty(t,"FutureActionPanel",{enumerable:!0,get:function(){return r.FutureActionPanel}});var o=n(2864);Object.defineProperty(t,"FutureActionPanelBlockEditor",{enumerable:!0,get:function(){return o.FutureActionPanelBlockEditor}});var i=n(3571);Object.defineProperty(t,"FutureActionPanelClassicEditor",{enumerable:!0,get:function(){return i.FutureActionPanelClassicEditor}});var l=n(5437);Object.defineProperty(t,"FutureActionPanelQuickEdit",{enumerable:!0,get:function(){return l.FutureActionPanelQuickEdit}});var c=n(2094);Object.defineProperty(t,"FutureActionPanelBulkEdit",{enumerable:!0,get:function(){return c.FutureActionPanelBulkEdit}});var s=n(1620);Object.defineProperty(t,"PostTypeSettingsPanel",{enumerable:!0,get:function(){return s.PostTypeSettingsPanel}});var u=n(8138);Object.defineProperty(t,"PostTypesSettingsPanels",{enumerable:!0,get:function(){return u.PostTypesSettingsPanels}});var d=n(9005);Object.defineProperty(t,"SettingRow",{enumerable:!0,get:function(){return d.SettingRow}});var m=n(5786);Object.defineProperty(t,"SettingsFieldset",{enumerable:!0,get:function(){return m.SettingsFieldset}});var p=n(9892);Object.defineProperty(t,"SettingsForm",{enumerable:!0,get:function(){return p.SettingsForm}});var f=n(5681);Object.defineProperty(t,"SettingsSection",{enumerable:!0,get:function(){return f.SettingsSection}});var y=n(6772);Object.defineProperty(t,"SettingsTable",{enumerable:!0,get:function(){return y.SettingsTable}});var v=n(4438);Object.defineProperty(t,"SubmitButton",{enumerable:!0,get:function(){return v.SubmitButton}});var g=n(4311);Object.defineProperty(t,"CheckboxControl",{enumerable:!0,get:function(){return g.CheckboxControl}});var b=n(2858);Object.defineProperty(t,"SelectControl",{enumerable:!0,get:function(){return b.SelectControl}});var h=n(6301);Object.defineProperty(t,"TextControl",{enumerable:!0,get:function(){return h.TextControl}});var E=n(3948);Object.defineProperty(t,"TokensControl",{enumerable:!0,get:function(){return E.TokensControl}});var x=n(1013);Object.defineProperty(t,"NonceControl",{enumerable:!0,get:function(){return x.NonceControl}});var S=n(8225);Object.defineProperty(t,"TrueFalseControl",{enumerable:!0,get:function(){return S.TrueFalseControl}});var _=n(242);Object.defineProperty(t,"Spinner",{enumerable:!0,get:function(){return _.Spinner}});var A=n(5470);Object.defineProperty(t,"DateOffsetPreview",{enumerable:!0,get:function(){return A.DateOffsetPreview}})},7039:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n=t.getCurrentTimeInSeconds=function(){return o((new Date).getTime())},a=(t.getCurrentTimeAsTimestamp=function(){return a(n())},t.formatUnixTimeToTimestamp=function(e){var t=new Date(o(e));return t.getFullYear()+"-"+("0"+(t.getMonth()+1)).slice(-2)+"-"+("0"+t.getDate()).slice(-2)+" "+("0"+t.getHours()).slice(-2)+":"+("0"+t.getMinutes()).slice(-2)+":"+("0"+t.getSeconds()).slice(-2)}),r=(t.formatTimestampToUnixTime=function(e){var t=new Date(e);return o(t.getTime())},t.timeIsInSeconds=function(e){return parseInt(e).toString().length<=10}),o=t.normalizeUnixTimeToSeconds=function(e){return e=parseInt(e),r()?e:e/1e3};t.normalizeUnixTimeToMilliseconds=function(e){return e=parseInt(e),r()?1e3*e:e}},8409:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=(t.compact=function(e){return e?(Array.isArray(e)||"object"!==(void 0===e?"undefined":n(e))||(e=Object.values(e)),e.filter((function(e){return null!=e&&""!==e}))):[]},t.debugLogFactory=function(e){return function(t){for(var n=arguments.length,a=Array(n>1?n-1:0),r=1;r{n.d(t,{A:()=>l});var a=n(1354),r=n.n(a),o=n(6314),i=n.n(o)()(r());i.push([e.id,".publishpress-future-date-preview .publishpress-future-date-preview-value {\n font-family: monospace;\n background-color: #e7e7e7;\n padding: 2px 4px;\n}\n\n.publishpress-future-date-preview.compact .publishpress-future-date-preview-label {\n display: block;\n}\n\n.publishpress-future-date-preview.compact {\n margin-bottom: 8px;\n}\n\n.publishpress-future-date-preview.compact h4 {\n font-size: 11px;\n font-weight: 500;\n line-height: 1.4;\n text-transform: uppercase;\n display: inline-block;\n margin-bottom: calc(8px);\n padding: 0px;\n flex-shrink: 0;\n margin-right: 12px;\n max-width: 75%;\n margin-top: 0;\n}\n\n.publishpress-future-notice.publishpress-future-notice-error {\n color: #dc3232;\n}\n","",{version:3,sources:["webpack://./assets/jsx/components/css/dateOffsetPreview.css"],names:[],mappings:"AAAA;IACI,sBAAsB;IACtB,yBAAyB;IACzB,gBAAgB;AACpB;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,kBAAkB;AACtB;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,yBAAyB;IACzB,qBAAqB;IACrB,wBAAwB;IACxB,YAAY;IACZ,cAAc;IACd,kBAAkB;IAClB,cAAc;IACd,aAAa;AACjB;;AAEA;IACI,cAAc;AAClB",sourcesContent:[".publishpress-future-date-preview .publishpress-future-date-preview-value {\n font-family: monospace;\n background-color: #e7e7e7;\n padding: 2px 4px;\n}\n\n.publishpress-future-date-preview.compact .publishpress-future-date-preview-label {\n display: block;\n}\n\n.publishpress-future-date-preview.compact {\n margin-bottom: 8px;\n}\n\n.publishpress-future-date-preview.compact h4 {\n font-size: 11px;\n font-weight: 500;\n line-height: 1.4;\n text-transform: uppercase;\n display: inline-block;\n margin-bottom: calc(8px);\n padding: 0px;\n flex-shrink: 0;\n margin-right: 12px;\n max-width: 75%;\n margin-top: 0;\n}\n\n.publishpress-future-notice.publishpress-future-notice-error {\n color: #dc3232;\n}\n"],sourceRoot:""}]);const l=i},6314:e=>{e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",a=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),a&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),a&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,a,r,o){"string"==typeof e&&(e=[[null,e,void 0]]);var i={};if(a)for(var l=0;l0?" ".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),r&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=r):u[4]="".concat(r)),t.push(u))}},t}},1354:e=>{e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var a=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(a),o="/*# ".concat(r," */");return[t].concat([o]).join("\n")}return[t].join("\n")}},5338:(e,t,n)=>{var a=n(5206);t.createRoot=a.createRoot,t.hydrateRoot=a.hydrateRoot},9922:(e,t,n)=>{n.r(t),n.d(t,{default:()=>g});var a=n(5072),r=n.n(a),o=n(7825),i=n.n(o),l=n(7659),c=n.n(l),s=n(5056),u=n.n(s),d=n(540),m=n.n(d),p=n(1113),f=n.n(p),y=n(1461),v={};v.styleTagTransform=f(),v.setAttributes=u(),v.insert=c().bind(null,"head"),v.domAPI=i(),v.insertStyleElement=m(),r()(y.A,v);const g=y.A&&y.A.locals?y.A.locals:void 0},5072:e=>{var t=[];function n(e){for(var n=-1,a=0;a{var t={};e.exports=function(e,n){var a=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(!a)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");a.appendChild(n)}},540:e=>{e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},5056:(e,t,n)=>{e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},7825:e=>{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 a="";n.supports&&(a+="@supports (".concat(n.supports,") {")),n.media&&(a+="@media ".concat(n.media," {"));var r=void 0!==n.layer;r&&(a+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),a+=n.css,r&&(a+="}"),n.media&&(a+="}"),n.supports&&(a+="}");var o=n.sourceMap;o&&"undefined"!=typeof btoa&&(a+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),t.styleTagTransform(a,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},1113:e=>{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))}}},5206:e=>{e.exports=ReactDOM},6361:e=>{e.exports=publishpressFutureSettingsConfig},3244:e=>{e.exports=wp},2214:e=>{e.exports=wp.components},7562:e=>{e.exports=wp.data},1386:e=>{e.exports=wp.element},8566:e=>{e.exports=wp.hooks},9986:e=>{e.exports=wp.plugins},4011:e=>{e.exports=wp.url}},t={};function n(a){var r=t[a];if(void 0!==r)return r.exports;var o=t[a]={id:a,exports:{}};return e[a](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 a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},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 a=Object.assign||function(e){for(var t=1;t\n {props.children}\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment, useState } from \"@wordpress/element\";\nimport { CheckboxControl as WPCheckboxControl } from \"@wordpress/components\";\n\nexport const CheckboxControl = function (props) {\n const [checked, setChecked] = useState(props.checked || false);\n\n let description;\n\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n\n const onChange = function (value) {\n setChecked(value);\n\n if (props.onChange) {\n props.onChange(value);\n }\n };\n\n return (\n \n \n\n {description}\n \n )\n}\n","import { normalizeUnixTimeToMilliseconds } from \"../time\";\nimport { DateTimePicker as WPDateTimePicker } from \"@wordpress/components\";\n\n\nexport const DateTimePicker = ({currentDate, onChange, is12Hour, startOfWeek}) => {\n if (typeof currentDate === 'number') {\n currentDate = normalizeUnixTimeToMilliseconds(currentDate);\n }\n\n return (\n \n )\n}\n","import { compact } from '../utils';\nimport { ToggleCalendarDatePicker } from './ToggleCalendarDatePicker';\nimport { PluginArea } from '@wordpress/plugins';\nimport { Fill, Slot, SlotFillProvider } from '@wordpress/components';\nimport { FutureActionPanelAfterActionField } from './FutureActionPanelAfterActionField';\nimport { FutureActionPanelTop } from './FutureActionPanelTop';\n\nconst { PanelRow, CheckboxControl, SelectControl, FormTokenField, Spinner, BaseControl } = wp.components;\nconst { Fragment, useEffect, useState } = wp.element;\nconst { decodeEntities } = wp.htmlEntities;\nconst { addQueryArgs } = wp.url;\nconst {\n useSelect,\n useDispatch\n} = wp.data;\nconst { apiFetch } = wp;\n\nexport const FutureActionPanel = (props) => {\n const action = useSelect((select) => select(props.storeName).getAction(), []);\n const date = useSelect((select) => select(props.storeName).getDate(), []);\n const enabled = useSelect((select) => select(props.storeName).getEnabled(), []);\n const terms = useSelect((select) => select(props.storeName).getTerms(), []);\n const taxonomy = useSelect((select) => select(props.storeName).getTaxonomy(), []);\n const taxonomyName = useSelect((select) => select(props.storeName).getTaxonomyName(), []);\n const termsListByName = useSelect((select) => select(props.storeName).getTermsListByName(), []);\n const termsListById = useSelect((select) => select(props.storeName).getTermsListById(), []);\n const isFetchingTerms = useSelect((select) => select(props.storeName).getIsFetchingTerms(), []);\n const calendarIsVisible = useSelect((select) => select(props.storeName).getCalendarIsVisible(), []);\n const hasValidData = useSelect((select) => select(props.storeName).getHasValidData(), []);\n const newStatus = useSelect((select) => select(props.storeName).getNewStatus(), []);\n\n const [validationError, setValidationError] = useState('');\n\n const {\n setAction,\n setDate,\n setEnabled,\n setTerms,\n setTaxonomy,\n setTermsListByName,\n setTermsListById,\n setTaxonomyName,\n setIsFetchingTerms,\n setCalendarIsVisible,\n setHasValidData,\n setNewStatus\n } = useDispatch(props.storeName);\n\n const mapTermsListById = (terms) => {\n if (typeof terms !== 'object' || terms === null) {\n return {};\n }\n\n return terms.map((term) => {\n return termsListById[term];\n });\n }\n\n const insertTerm = (term) => {\n termsListByName[term] = { id: term, count: 0, description: \"\", link: \"\", name: term, slug: term, taxonomy: taxonomy };\n termsListById[term] = term;\n setTermsListByName(termsListByName);\n setTermsListById(termsListById);\n setTerms([...terms, term]);\n\n }\n\n const mapTermsListByName = (terms) => {\n if (typeof terms !== 'object' || terms === null) {\n return {};\n }\n\n return terms.map((term) => {\n if (termsListByName[term]) {\n return termsListByName[term].id;\n }\n\n insertTerm(term);\n\n return term;\n });\n }\n\n const callOnChangeData = (attribute, value) => {\n if (typeof props.onChangeData === 'function') {\n props.onChangeData(attribute, value);\n }\n }\n\n const handleEnabledChange = (isChecked) => {\n setEnabled(isChecked);\n\n if (isChecked) {\n setAction(props.action);\n setDate(props.date);\n setNewStatus(props.newStatus);\n setTerms(props.terms);\n setTaxonomy(props.taxonomy);\n\n fetchTerms();\n }\n\n callOnChangeData('enabled', isChecked);\n }\n\n const handleActionChange = (value) => {\n setAction(value);\n\n callOnChangeData('action', value);\n }\n\n const handleNewStatusChange = (value) => {\n setNewStatus(value);\n\n callOnChangeData('newStatus', value);\n }\n\n const handleDateChange = (value) => {\n setDate(value);\n\n callOnChangeData('date', value);\n }\n\n const handleTermsChange = (value) => {\n value = mapTermsListByName(value);\n\n setTerms(value);\n\n callOnChangeData('terms', value);\n }\n\n const fetchTerms = () => {\n let termsListByName = {};\n let termsListById = {};\n\n if (!taxonomy) {\n return;\n }\n\n setIsFetchingTerms(true);\n\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/terms/${taxonomy}`),\n }).then((result) => {\n result.terms.forEach(term => {\n termsListByName[decodeEntities(term.name)] = term;\n termsListById[term.id] = decodeEntities(term.name);\n });\n\n setTermsListByName(termsListByName);\n setTermsListById(termsListById);\n setTaxonomyName(decodeEntities(result.taxonomyName));\n setIsFetchingTerms(false);\n });\n }\n\n const storeCalendarIsVisibleOnStorage = (value) => {\n localStorage.setItem('FUTURE_ACTION_CALENDAR_IS_VISIBLE_' + props.context, value ? '1' : '0');\n }\n\n const getCalendarIsVisibleFromStorage = () => {\n return localStorage.getItem('FUTURE_ACTION_CALENDAR_IS_VISIBLE_' + props.context);\n }\n\n useEffect(() => {\n if (props.autoEnableAndHideCheckbox) {\n setEnabled(true);\n } else {\n setEnabled(props.enabled);\n }\n\n setAction(props.action);\n setNewStatus(props.newStatus);\n setDate(props.date);\n setTerms(props.terms);\n setTaxonomy(props.taxonomy);\n\n if (getCalendarIsVisibleFromStorage() === null) {\n setCalendarIsVisible(props.calendarIsVisible);\n } else {\n setCalendarIsVisible(getCalendarIsVisibleFromStorage() === '1');\n }\n\n // We need to get the value directly from the props because the value from the store is not updated yet\n if (props.enabled) {\n if (props.isCleanNewPost) {\n // Force populate the default values\n handleEnabledChange(true);\n }\n\n fetchTerms();\n }\n }, []);\n\n useEffect(() => {\n storeCalendarIsVisibleOnStorage(calendarIsVisible);\n }, [calendarIsVisible]);\n\n useEffect(() => {\n if (hasValidData && props.onDataIsValid) {\n props.onDataIsValid();\n }\n\n if (!hasValidData && props.onDataIsInvalid) {\n props.onDataIsInvalid();\n }\n }, [hasValidData]);\n\n let selectedTerms = [];\n if (terms && terms.length > 0 && termsListById) {\n selectedTerms = compact(mapTermsListById(terms));\n\n if (typeof selectedTerms === 'string') {\n selectedTerms = [];\n }\n }\n\n let termsListByNameKeys = [];\n if (typeof termsListByName === 'object' && termsListByName !== null) {\n termsListByNameKeys = Object.keys(termsListByName);\n }\n\n const panelClass = calendarIsVisible ? 'future-action-panel' : 'future-action-panel hidden-calendar';\n const contentPanelClass = calendarIsVisible ? 'future-action-panel-content' : 'future-action-panel-content hidden-calendar';\n const datePanelClass = calendarIsVisible ? 'future-action-date-panel' : 'future-action-date-panel hidden-calendar';\n\n let is24hour;\n if (props.timeFormat === 'inherited') {\n is24hour = !props.is12Hour;\n } else {\n is24hour = props.timeFormat === '24h';\n }\n\n const replaceCurlyBracketsWithLink = (string, href, target) => {\n const parts = string.split('{');\n const result = [];\n\n result.push(parts.shift());\n\n for (const part of parts) {\n const [before, after] = part.split('}');\n\n result.push(\n {before}\n );\n\n result.push(after);\n }\n\n return result;\n };\n\n // Remove items from actions list if related to taxonomies and there is no taxonmoy for the post type\n let actionsSelectOptions = props.actionsSelectOptions;\n if (!props.taxonomy) {\n actionsSelectOptions = props.actionsSelectOptions.filter((item) => {\n return ['category', 'category-add', 'category-remove', 'category-remove-all'].indexOf(item.value) === -1;\n });\n }\n\n const HelpText = replaceCurlyBracketsWithLink(props.strings.timezoneSettingsHelp, '/wp-admin/options-general.php#timezone_string', '_blank');\n const displayTaxonomyField = String(action).includes('category') && action !== 'category-remove-all';\n\n let termsFieldLabel = taxonomyName;\n switch (action) {\n case 'category':\n termsFieldLabel = props.strings.newTerms.replace('%s', taxonomyName);\n break;\n case 'category-remove':\n termsFieldLabel = props.strings.removeTerms.replace('%s', taxonomyName);\n break;\n case 'category-add':\n termsFieldLabel = props.strings.addTerms.replace('%s', taxonomyName);\n break;\n }\n\n const validateData = () => {\n let valid = true;\n\n if (!enabled) {\n setValidationError('');\n return true;\n }\n\n if (!action) {\n setValidationError(props.strings.errorActionRequired);\n valid = false;\n }\n\n if (!date) {\n setValidationError(props.strings.errorDateRequired);\n valid = false;\n }\n\n // Check if the date is in the past\n if (date && new Date(date) < new Date()) {\n setValidationError(props.strings.errorDateInPast);\n valid = false;\n }\n\n const isTermRequired = ['category', 'category-add', 'category-remove'].includes(action);\n const noTermIsSelected = terms.length === 0 || (terms.length === 1 && (terms[0] === '' || terms[0] === '0'));\n\n if (isTermRequired && noTermIsSelected) {\n setValidationError(props.strings.errorTermsRequired);\n valid = false;\n }\n\n if (valid) {\n setValidationError('');\n }\n\n return valid;\n }\n\n useEffect(() => {\n if (!enabled) {\n setHasValidData(true);\n setValidationError('');\n\n return;\n }\n\n setHasValidData(validateData());\n }, [action, date, enabled, terms, taxonomy]);\n\n // This adds a 'cancel' class to the input when the user clicks on the\n // field to prevent the form from being submitted. This is a workaround\n // for the issue on the quick-edit form where the form is submitted when\n // the user presses the 'Enter' key trying to add a term to the field.\n const forceIgnoreAutoSubmitOnEnter = (e) => {\n jQuery(e.target).addClass('cancel');\n }\n\n return (\n \n
\n {props.autoEnableAndHideCheckbox && (\n \n )}\n\n \n\n {!props.autoEnableAndHideCheckbox && (\n \n \n \n )}\n\n {enabled && (\n \n \n \n \n\n \n\n {action === 'change-status' &&\n \n \n \n }\n\n {\n displayTaxonomyField && (\n isFetchingTerms && (\n \n \n {`${props.strings.loading} (${taxonomyName})`}\n \n \n \n )\n || (!taxonomy && (\n \n \n
\n {props.strings.noTaxonomyFound}\n
\n
\n
\n )\n || (\n termsListByNameKeys.length === 0 && (\n \n \n
\n {props.strings.noTermsFound}\n
\n
\n
\n )\n || (\n \n \n \n \n \n )\n )\n )\n )\n }\n\n \n setCalendarIsVisible(!calendarIsVisible)}\n is12Hour={!is24hour}\n startOfWeek={props.startOfWeek}\n isExpanded={calendarIsVisible}\n strings={props.strings}\n />\n \n\n \n
\n
\n\n {HelpText}\n
\n
\n\n {!hasValidData && (\n \n \n
{validationError}
\n
\n
\n )}\n
\n )}\n
\n \n
\n );\n};\n","import { Slot, Fill } from '@wordpress/components';\n\nexport const FutureActionPanelAfterActionField = ({ children }) => (\n \n {children}\n \n);\n\nconst FutureActionPanelAfterActionFieldSlot = (props) => (\n \n);\n\nFutureActionPanelAfterActionField.Slot = FutureActionPanelAfterActionFieldSlot;\n\nexport default FutureActionPanelAfterActionField;\n","import { FutureActionPanel } from './';\n\nexport const FutureActionPanelBlockEditor = (props) => {\n const { PluginDocumentSettingPanel } = wp.editPost;\n const { useDispatch, select } = wp.data;\n\n const { editPost } = useDispatch('core/editor');\n\n const editPostAttribute = (newAttribute) => {\n const attribute = {\n publishpress_future_action: {}\n };\n\n // For each property on newAttribute, set the value on attribute\n for (const [name, value] of Object.entries(newAttribute)) {\n attribute.publishpress_future_action[name] = value;\n }\n\n editPost(attribute);\n }\n\n const onChangeData = (attribute, value) => {\n const store = select(props.storeName);\n\n const newAttribute = {\n 'enabled': store.getEnabled()\n }\n\n if (newAttribute.enabled) {\n newAttribute['action'] = store.getAction();\n newAttribute['newStatus'] = store.getNewStatus();\n newAttribute['date'] = store.getDate();\n newAttribute['terms'] = store.getTerms();\n newAttribute['taxonomy'] = store.getTaxonomy();\n newAttribute['extraData'] = store.getExtraData();\n }\n\n editPostAttribute(newAttribute);\n }\n\n const data = select('core/editor').getEditedPostAttribute('publishpress_future_action');\n\n const { lockPostSaving, unlockPostSaving } = useDispatch('core/editor');\n\n const onDataIsValid = () => {\n unlockPostSaving('future-action');\n }\n\n const onDataIsInvalid = () => {\n lockPostSaving('future-action');\n }\n\n return (\n \n
\n \n
\n \n );\n};\n","import { FutureActionPanel, SelectControl } from '.';\nimport { getElementByName } from '../utils';\n\nexport const FutureActionPanelBulkEdit = (props) => {\n const { useSelect, useDispatch, select } = wp.data;\n const { useEffect } = wp.element;\n\n const onChangeData = (attribute, value) => {\n getElementByName('future_action_bulk_enabled').value = select(props.storeName).getEnabled() ? 1 : 0;\n getElementByName('future_action_bulk_action').value = select(props.storeName).getAction();\n getElementByName('future_action_bulk_new_status').value = select(props.storeName).getNewStatus();\n getElementByName('future_action_bulk_date').value = select(props.storeName).getDate();\n getElementByName('future_action_bulk_terms').value = select(props.storeName).getTerms().join(',');\n getElementByName('future_action_bulk_taxonomy').value = select(props.storeName).getTaxonomy();\n }\n\n const date = useSelect((select) => select(props.storeName).getDate(), []);\n const enabled = useSelect((select) => select(props.storeName).getEnabled(), []);\n const action = useSelect((select) => select(props.storeName).getAction(), []);\n const newStatus = useSelect((select) => select(props.storeName).getNewStatus(), []);\n const terms = useSelect((select) => select(props.storeName).getTerms(), []);\n const taxonomy = useSelect((select) => select(props.storeName).getTaxonomy(), []);\n const changeAction = useSelect((select) => select(props.storeName).getChangeAction(), []);\n const hasValidData = useSelect((select) => select(props.storeName).getHasValidData(), []);\n\n const {\n setChangeAction\n } = useDispatch(props.storeName);\n\n let termsString = terms;\n if (typeof terms === 'object') {\n termsString = terms.join(',');\n }\n\n const handleStrategyChange = (value) => {\n setChangeAction(value);\n };\n\n const options = [\n { value: 'no-change', label: props.strings.noChange },\n { value: 'change-add', label: props.strings.changeAdd },\n { value: 'add-only', label: props.strings.addOnly },\n { value: 'change-only', label: props.strings.changeOnly },\n { value: 'remove-only', label: props.strings.removeOnly },\n ];\n\n const optionsToDisplayPanel = ['change-add', 'add-only', 'change-only'];\n\n useEffect(() => {\n // We are not using onDataIsValid and onDataIsInvalid because we need to enable/disable the button\n // also based on the changeAction value.\n if (hasValidData || changeAction === 'no-change') {\n jQuery('#bulk_edit').prop('disabled', false);\n } else {\n jQuery('#bulk_edit').prop('disabled', true);\n }\n }, [hasValidData, changeAction]);\n\n return (\n
\n \n\n {optionsToDisplayPanel.includes(changeAction) && (\n \n )}\n\n {/* Bulk edit JS code will save only fields with name inside the edit row */}\n \n \n \n \n \n \n \n \n
\n );\n};\n","import { FutureActionPanel } from \"./\";\nimport { select, useSelect } from \"@wordpress/data\";\nimport { useEffect } from \"@wordpress/element\";\n\nexport const FutureActionPanelClassicEditor = (props) => {\n const browserTimezoneOffset = new Date().getTimezoneOffset();\n\n const getElementByName = (name) => {\n return document.getElementsByName(name)[0];\n }\n\n const onChangeData = (attribute, value) => {\n const store = select(props.storeName);\n\n getElementByName('future_action_enabled').value = store.getEnabled() ? 1 : 0;\n getElementByName('future_action_action').value = store.getAction();\n getElementByName('future_action_new_status').value = store.getNewStatus();\n getElementByName('future_action_date').value = store.getDate();\n getElementByName('future_action_terms').value = store.getTerms().join(',');\n getElementByName('future_action_taxonomy').value = store.getTaxonomy();\n }\n\n const getTermsFromElementByName = (name) => {\n const element = getElementByName(name);\n if (!element) {\n return [];\n }\n\n let terms = element.value.split(',');\n\n if (terms.length === 1 && terms[0] === '') {\n terms = [];\n }\n\n return terms.map(term => parseInt(term));\n }\n\n const getElementValueByName = (name) => {\n const element = getElementByName(name);\n if (!element) {\n return '';\n }\n\n return element.value;\n }\n\n const data = {\n enabled: getElementValueByName('future_action_enabled') === '1',\n action: getElementValueByName('future_action_action'),\n newStatus: getElementValueByName('future_action_new_status'),\n date: getElementValueByName('future_action_date'),\n terms: getTermsFromElementByName('future_action_terms'),\n taxonomy: getElementValueByName('future_action_taxonomy'),\n };\n\n const onDataIsValid = () => {\n jQuery('#publish').prop('disabled', false);\n }\n\n const onDataIsInvalid = () => {\n jQuery('#publish').prop('disabled', true);\n }\n\n return (\n
\n \n
\n );\n};\n","import { FutureActionPanel } from './';\nimport { useSelect, select } from '@wordpress/data';\nimport { useEffect } from '@wordpress/element';\n\nexport const FutureActionPanelQuickEdit = (props) => {\n const onChangeData = (attribute, value) => {};\n\n const date = useSelect((select) => select(props.storeName).getDate(), []);\n const enabled = useSelect((select) => select(props.storeName).getEnabled(), []);\n const action = useSelect((select) => select(props.storeName).getAction(), []);\n const terms = useSelect((select) => select(props.storeName).getTerms(), []);\n const taxonomy = useSelect((select) => select(props.storeName).getTaxonomy(), []);\n const hasValidData = useSelect((select) => select(props.storeName).getHasValidData(), []);\n const newStatus = useSelect((select) => select(props.storeName).getNewStatus(), []);\n\n let termsString = terms;\n if (typeof terms === 'object') {\n termsString = terms.join(',');\n }\n\n const onDataIsValid = () => {\n jQuery('.button-primary.save').prop('disabled', false);\n }\n\n const onDataIsInvalid = () => {\n jQuery('.button-primary.save').prop('disabled', true);\n }\n\n return (\n
\n \n\n {/* Quick edit JS code will save only fields with name inside the edit row */}\n \n \n \n \n \n \n \n \n
\n );\n};\n","import { Slot, Fill } from '@wordpress/components';\n\nexport const FutureActionPanelTop = ({ children }) => (\n \n {children}\n \n);\n\nconst FutureActionPanelTopSlot = (props) => (\n \n);\n\nFutureActionPanelTop.Slot = FutureActionPanelTopSlot;\n\nexport default FutureActionPanelTop;\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const NonceControl = function (props) {\n if (! props.name) {\n props.name = '_wpnonce';\n }\n\n if (! props.referrer) {\n props.referrer = true;\n }\n\n return (\n \n \n\n {props.referrer &&\n \n }\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nimport {\n SettingRow,\n SettingsFieldset,\n SettingsTable,\n SelectControl,\n TextControl,\n TokensControl,\n CheckboxControl\n} from './';\nimport { useEffect, useState, Fragment, useRef } from '@wordpress/element';\nimport { addQueryArgs } from '@wordpress/url';\nimport { applyFilters } from '@wordpress/hooks';\nimport { apiFetch } from '&wp';\n\nconst { PanelRow, BaseControl } = wp.components;\n\nexport const PostTypeSettingsPanel = function (props) {\n const originalExpireTypeList = props.expireTypeList[props.postType];\n\n const [postTypeTaxonomy, setPostTypeTaxonomy] = useState(props.settings.taxonomy);\n const [termOptions, setTermOptions] = useState([]);\n const [termsSelectIsLoading, setTermsSelectIsLoading] = useState(false);\n const [selectedTerms, setSelectedTerms] = useState([]);\n const [settingHowToExpire, setSettingHowToExpire] = useState(props.settings.howToExpire);\n const [isActive, setIsActive] = useState(props.settings.active);\n const [expireOffset, setExpireOffset] = useState(props.settings.defaultExpireOffset);\n const [emailNotification, setEmailNotification] = useState(props.settings.emailNotification);\n const [isAutoEnabled, setIsAutoEnabled] = useState(props.settings.autoEnabled);\n const [hasValidData, setHasValidData] = useState(false);\n const [validationError, setValidationError] = useState('');\n const [taxonomyLabel, setTaxonomyLabel] = useState('');\n const [howToExpireList, setHowToExpireList] = useState(originalExpireTypeList);\n const [newStatus, setNewStatus] = useState(props.settings.newStatus);\n const [hasPendingValidation, setHasPendingValidation] = useState(false);\n const [offsetPreview, setOffsetPreview] = useState('');\n const [currentTime, setCurrentTime] = useState();\n const apiRequestControllerRef = useRef(new AbortController());\n\n const taxonomyRelatedActions = [\n 'category',\n 'category-add',\n 'category-remove',\n 'category-remove-all'\n ];\n\n const onChangeTaxonomy = function (value) {\n setPostTypeTaxonomy(value);\n };\n\n const onChangeTerms = (value) => {\n setSelectedTerms(value);\n };\n\n const onChangeHowToExpire = (value) => {\n setSettingHowToExpire(value);\n }\n\n const onChangeActive = (value) => {\n setIsActive(value);\n }\n\n const onChangeExpireOffset = (value) => {\n setExpireOffset(value);\n }\n\n const onChangeEmailNotification = (value) => {\n setEmailNotification(value);\n }\n\n const onChangeAutoEnabled = (value) => {\n setIsAutoEnabled(value);\n }\n\n const validateData = () => {\n if (! isActive) {\n setValidationError('');\n return true;\n }\n\n const offset = expireOffset ? expireOffset : props.settings.globalDefaultExpireOffset;\n\n if (offset) {\n const controller = apiRequestControllerRef.current;\n\n if (controller) {\n controller.abort();\n }\n\n apiRequestControllerRef.current = new AbortController();\n const { signal } = apiRequestControllerRef.current;\n\n setHasPendingValidation(true);\n\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/settings/validate-expire-offset`),\n method: 'POST',\n data: {\n offset\n },\n signal,\n }).then((result) => {\n setHasPendingValidation(false);\n\n setHasValidData(result.isValid);\n setValidationError(result.message);\n\n if (result.isValid) {\n setOffsetPreview(result.preview);\n setCurrentTime(result.currentTime);\n } else {\n setOffsetPreview('');\n }\n }).catch((error) => {\n if (error.name === 'AbortError') {\n return;\n }\n\n setHasPendingValidation(false);\n setHasValidData(false);\n setValidationError(error.message);\n setOffsetPreview('');\n });\n }\n\n setValidationError('');\n return true;\n }\n\n useEffect(() => {\n // Remove items from expireTypeList if related to taxonomies and there is no taxonmoy for the post type\n if (props.taxonomiesList.length === 0) {\n let newExpireTypeList = [];\n\n newExpireTypeList = howToExpireList.filter((item) => {\n return taxonomyRelatedActions.indexOf(item.value) === -1;\n });\n\n setHowToExpireList(newExpireTypeList);\n }\n }, []);\n\n useEffect(() => {\n if (!postTypeTaxonomy || !props.taxonomiesList) {\n return;\n }\n\n setTermsSelectIsLoading(true);\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/terms/${postTypeTaxonomy}`),\n }).then((result) => {\n let options = [];\n\n let settingsTermsOptions = null;\n let option;\n\n result.terms.forEach(term => {\n option = { value: term.id, label: term.name };\n options.push(option);\n\n if (postTypeTaxonomy === props.settings.taxonomy && props.settings.terms.includes(term.id)) {\n if (settingsTermsOptions === null) {\n settingsTermsOptions = [];\n }\n\n settingsTermsOptions.push(option.label);\n }\n });\n\n setTermOptions(options);\n setSelectedTerms(settingsTermsOptions);\n setTermsSelectIsLoading(false);\n });\n\n props.taxonomiesList.forEach((taxonomy) => {\n if (taxonomy.value === postTypeTaxonomy) {\n setTaxonomyLabel(taxonomy.label);\n }\n });\n }, [postTypeTaxonomy]);\n\n useEffect(() => {\n setHasValidData(validateData());\n }, [isActive, expireOffset]);\n\n useEffect(() => {\n if (!taxonomyLabel) {\n return;\n }\n\n // Update the list of actions replacing the taxonomy name.\n let newExpireTypeList = [];\n\n originalExpireTypeList.forEach((expireType) => {\n let label = expireType.label;\n\n if (taxonomyRelatedActions.indexOf(expireType.value) !== -1) {\n label = label.replace('%s', taxonomyLabel.toLowerCase());\n }\n\n newExpireTypeList.push({\n value: expireType.value,\n label: label\n });\n });\n\n setHowToExpireList(newExpireTypeList);\n }, [taxonomyLabel]);\n\n useEffect(() => {\n if (hasValidData && props.onDataIsValid) {\n props.onDataIsValid(props.postType);\n }\n\n if (!hasValidData && props.onDataIsInvalid) {\n props.onDataIsInvalid(props.postType);\n }\n }, [hasValidData]);\n\n useEffect(() => {\n if (hasPendingValidation && props.onValidationStarted) {\n props.onValidationStarted(props.postType);\n }\n\n if (!hasPendingValidation && props.onValidationFinished) {\n props.onValidationFinished(props.postType);\n }\n }, [hasPendingValidation]);\n\n const termOptionsLabels = termOptions.map((term) => term.label);\n\n let settingsRows = [\n \n \n \n ];\n\n if (isActive) {\n settingsRows.push(\n \n \n \n );\n\n settingsRows.push(\n \n \n \n \n );\n\n settingsRows.push(\n \n \n\n {settingHowToExpire === 'change-status' &&\n \n }\n\n {(props.taxonomiesList.length > 0 && (['category', 'category-add', 'category-remove'].indexOf(settingHowToExpire) > -1)) &&\n \n }\n \n );\n\n settingsRows.push(\n \n \n\n {offsetPreview && (\n \n

{props.text.datePreview}

\n
\n
\n {props.text.datePreviewCurrent}: \n {currentTime}\n
\n
\n {props.text.datePreviewComputed}: \n {offsetPreview}\n
\n
\n
\n )}\n
\n );\n\n settingsRows.push(\n \n \n \n );\n }\n\n settingsRows = applyFilters('expirationdate_settings_posttype', settingsRows, props, isActive, useState);\n\n return (\n \n \n\n {! hasValidData && (\n \n
\n {props.text.error}: {validationError}\n
\n
\n )}\n
\n );\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nimport { PostTypeSettingsPanel } from \"./\";\n\nexport const PostTypesSettingsPanels = function (props) {\n let panels = [];\n\n for (const [postType, postTypeSettings] of Object.entries(props.settings)) {\n panels.push(\n \n );\n }\n\n return (panels);\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\nimport { SelectControl as WPSelectControl } from \"@wordpress/components\";\n\nexport const SelectControl = function (props) {\n const onChange = (value) => {\n props.onChange(value);\n };\n\n return (\n \n {props.options.length === 0 && (\n
{props.noItemFoundMessage}
\n )}\n\n {props.options.length > 0 && (\n \n )}\n\n {props.children}\n\n

{props.description}

\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const SettingRow = function (props) {\n return (\n \n \n \n \n \n {props.children}\n \n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsFieldset = function (props) {\n return (\n
\n {props.legend}\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsForm = function (props) {\n return (\n
\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const SettingsSection = function (props) {\n return (\n \n

{props.title}

\n

{props.description}

\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsTable = function (props) {\n return (\n \n \n {props.bodyChildren}\n \n
\n )\n}\n","/*\n * Copyright (c) 2024. PublishPress, All rights reserved.\n */\nexport const Spinner = function (props) {\n return (\n
\n );\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SubmitButton = function (props) {\n return (\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\nimport { TextControl as WPTextControl } from \"@wordpress/components\";\nimport { Spinner } from \"./\";\n\nexport const TextControl = function (props) {\n let description;\n\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n\n const onChange = function (value) {\n if (props.onChange) {\n props.onChange(value);\n }\n };\n\n let className = props.className ? props.className : '';\n\n if (props.loading) {\n className += ' publishpress-future-loading publishpress-future-loading-input';\n }\n\n return (\n \n
\n \n\n {props.loading && }\n\n {description}\n
\n
\n )\n}\n","import { Button } from '@wordpress/components';\n\nexport const ToggleArrowButton = function (props) {\n const onClick = function () {\n if (props.onClick) {\n props.onClick();\n }\n };\n\n const iconExpanded = props.iconExpanded ? props.iconExpanded : 'arrow-up-alt2';\n const iconCollapsed = props.iconCollapsed ? props.iconCollapsed : 'arrow-down-alt2';\n\n const icon = props.isExpanded ? iconExpanded : iconCollapsed;\n\n const title = props.isExpanded ? props.titleExpanded : props.titleCollapsed;\n\n return (\n \n )\n}\n","import { ToggleArrowButton } from \"./ToggleArrowButton\";\nimport { DateTimePicker } from \"./DateTimePicker\";\nimport { Fragment, useEffect } from \"@wordpress/element\";\n\nexport const ToggleCalendarDatePicker = (\n {\n isExpanded,\n strings,\n onToggleCalendar,\n currentDate,\n onChangeDate,\n is12Hour,\n startOfWeek\n }\n) => {\n useEffect(() => {\n // Move the element of the toggle button to between the time and date elements.\n const toggleButtonElement = document.querySelector('.future-action-calendar-toggle');\n\n if (! toggleButtonElement) {\n return;\n }\n\n const dateTimeElement = toggleButtonElement.nextElementSibling;\n\n if (! dateTimeElement) {\n return;\n }\n\n const timeElement = dateTimeElement.querySelector('.components-datetime__time');\n\n if (! timeElement) {\n return;\n }\n\n const dateElement = timeElement.nextSibling;\n\n if (! dateElement) {\n return;\n }\n\n dateTimeElement.insertBefore(toggleButtonElement, dateElement)\n });\n\n return (\n \n \n\n \n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment, useState, useEffect } from \"@wordpress/element\";\nimport { FormTokenField } from \"@wordpress/components\";\n\nexport const TokensControl = (props) => {\n const [stringValue, setStringValue] = useState('');\n\n useEffect(() => {\n if (props.value) {\n setStringValue(props.value.join(','));\n }\n }, [props.value]);\n\n let description;\n\n if (props.description) {\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n }\n\n const onChange = (value) => {\n if (props.onChange) {\n props.onChange(value);\n }\n\n if (typeof value === 'object') {\n setStringValue(value.join(','));\n } else {\n setStringValue('');\n }\n }\n\n const value = props.value ? props.value : [];\n \n return (\n \n \n \n\n {description}\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const TrueFalseControl = function (props) {\n const { Fragment } = wp.element;\n\n const onChange = (e) => {\n if (props.onChange) {\n props.onChange(\n e.target.value === props.trueValue && jQuery(e.target).is(':checked')\n );\n // Check only the true radio... using the field name? or directly the ID\n }\n };\n\n return (\n \n \n\n \n   \n \n {props.falseLabel}\n\n

{props.description}

\n
\n )\n}\n","export { ButtonsPanel } from \"./ButtonsPanel\";\nexport { FutureActionPanel } from \"./FutureActionPanel\";\nexport { FutureActionPanelBlockEditor } from \"./FutureActionPanelBlockEditor\";\nexport { FutureActionPanelClassicEditor } from \"./FutureActionPanelClassicEditor\";\nexport { FutureActionPanelQuickEdit } from \"./FutureActionPanelQuickEdit\";\nexport { FutureActionPanelBulkEdit } from \"./FutureActionPanelBulkEdit\";\nexport { PostTypeSettingsPanel } from \"./PostTypeSettingsPanel\";\nexport { PostTypesSettingsPanels } from \"./PostTypesSettingsPanels\";\nexport { SettingRow } from \"./SettingRow\";\nexport { SettingsFieldset } from \"./SettingsFieldset\";\nexport { SettingsForm } from \"./SettingsForm\";\nexport { SettingsSection } from \"./SettingsSection\";\nexport { SettingsTable } from \"./SettingsTable\";\nexport { SubmitButton } from \"./SubmitButton\";\nexport { CheckboxControl } from \"./CheckboxControl\";\nexport { SelectControl } from \"./SelectControl\";\nexport { TextControl } from \"./TextControl\";\nexport { TokensControl } from \"./TokensControl\";\nexport { NonceControl } from \"./NonceControl\";\nexport { TrueFalseControl } from \"./TrueFalseControl\";\nexport { Spinner } from \"./Spinner\";\n","export const getCurrentTimeInSeconds = () => {\n return normalizeUnixTimeToSeconds(new Date().getTime());\n}\n\nexport const getCurrentTimeAsTimestamp = () => {\n return formatUnixTimeToTimestamp(getCurrentTimeInSeconds());\n}\n\nexport const formatUnixTimeToTimestamp = (unixTimestamp) => {\n const date = new Date(\n normalizeUnixTimeToSeconds(unixTimestamp)\n );\n\n const year = date.getFullYear();\n const month = (\"0\" + (date.getMonth() + 1)).slice(-2); // Months are zero-based\n const day = (\"0\" + date.getDate()).slice(-2);\n const hours = (\"0\" + date.getHours()).slice(-2);\n const minutes = (\"0\" + date.getMinutes()).slice(-2);\n const seconds = (\"0\" + date.getSeconds()).slice(-2);\n\n return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;\n}\n\nexport const formatTimestampToUnixTime = (time) => {\n const date = new Date(time);\n\n return normalizeUnixTimeToSeconds(date.getTime());\n}\n\nexport const timeIsInSeconds = (time) => {\n return parseInt(time).toString().length <= 10;\n}\n\nexport const normalizeUnixTimeToSeconds = (time) => {\n time = parseInt(time);\n\n return timeIsInSeconds() ? time : time / 1000;\n}\n\nexport const normalizeUnixTimeToMilliseconds = (time) => {\n time = parseInt(time);\n\n return timeIsInSeconds() ? time * 1000 : time;\n}\n","export const compact = (array) => {\n if (!array) {\n return [];\n }\n\n if (! Array.isArray(array) && typeof array === 'object') {\n array = Object.values(array);\n }\n\n return array.filter((item) => {\n return item !== null && item !== undefined && item !== '';\n });\n}\n\nexport const debugLogFactory = (config) => {\n return (description, ...message) => {\n if (console && config.isDebugEnabled) {\n console.debug('[Future]', description, ...message);\n }\n }\n}\n\nexport const isGutenbergEnabled = () => {\n return document.body.classList.contains('block-editor-page');\n}\n\nexport const getElementByName = (name) => {\n return document.getElementsByName(name)[0];\n}\n\nexport const getFieldByName = (name, postId) => {\n return document.querySelector(`#the-list tr#post-${postId} .column-expirationdate input#future_action_${name}-${postId}`);\n}\n\nexport const getFieldValueByName = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field) {\n return null;\n }\n\n return field.value;\n};\n\nexport const getFieldValueByNameAsArrayOfInt = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field || !field.value) {\n return [];\n }\n\n if (typeof field.value === 'number') {\n field.value = field.value.toString();\n }\n\n return field.value.split(',').map(term => parseInt(term));\n};\n\nexport const getFieldValueByNameAsBool = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field) {\n return false;\n }\n\n return field.value === '1' || field.value === 'true';\n}\n\nexport const getActionSettingsFromColumnData = (postId) => {\n const columnData = document.querySelector(`#post-expire-column-${postId}`);\n\n if (!columnData) {\n return {};\n }\n\n return {\n enabled: columnData.dataset.actionEnabled === '1',\n action: columnData.dataset.actionType,\n date: columnData.dataset.actionDate,\n dateUnix: columnData.dataset.actionDateUnix,\n taxonomy: columnData.dataset.actionTaxonomy,\n terms: columnData.dataset.actionTerms,\n newStatus: columnData.dataset.actionNewStatus,\n };\n}\n\n/**\n * This function is used to determine if a value is a number, including strings.\n *\n * @param {*} value\n * @returns\n */\nexport const isNumber = (value) => {\n return !isNaN(value);\n}\n","module.exports = ReactDOM;","module.exports = publishpressFutureSettingsConfig;","module.exports = wp;","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.element;","module.exports = wp.hooks;","module.exports = wp.plugins;","module.exports = wp.url;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nimport {\n SettingsForm,\n SettingsSection,\n PostTypesSettingsPanels,\n SubmitButton,\n ButtonsPanel,\n NonceControl\n} from \"./components\";\n\nimport { StrictMode, createRoot, useState, useEffect } from \"@wordpress/element\";\n\nimport {\n nonce,\n referrer,\n settings,\n expireTypeList,\n taxonomiesList,\n text,\n statusesList\n} from \"&config.settings-post-types\";\nimport { render } from \"react-dom\";\n\nconst SettingsFormPanel = (props) => {\n const [formValidationStatusPerPostType, setFormValidationStatusPerPostType] = useState({});\n const [pendingValidationPerPostType, setPendingValidationPerPostType] = useState({});\n const [allValid, setAllValid] = useState(true);\n const [hasNoPendingValidation, setHasNoPendingValidation] = useState(true);\n\n useEffect(() => {\n let allFormsAreValid = true;\n\n for (const [postType, isValidForPostType] of Object.entries(formValidationStatusPerPostType)) {\n if (!isValidForPostType) {\n allFormsAreValid = false;\n break;\n }\n }\n\n setAllValid(allFormsAreValid);\n }, [formValidationStatusPerPostType]);\n\n useEffect(() => {\n let hasNoPendingValidation = true;\n\n for (const [postType, hasPending] of Object.entries(pendingValidationPerPostType)) {\n if (hasPending) {\n hasNoPendingValidation = false;\n break;\n }\n }\n\n setHasNoPendingValidation(hasNoPendingValidation);\n }, [pendingValidationPerPostType]);\n\n const onDataIsValid = (postType) => {\n formValidationStatusPerPostType[postType] = true;\n setFormValidationStatusPerPostType({...formValidationStatusPerPostType});\n }\n\n const onDataIsInvalid = (postType) => {\n formValidationStatusPerPostType[postType] = false;\n setFormValidationStatusPerPostType({...formValidationStatusPerPostType});\n }\n\n const onValidationStarted = (postType) => {\n pendingValidationPerPostType[postType] = true;\n setPendingValidationPerPostType({...pendingValidationPerPostType});\n }\n\n const onValidationFinished = (postType) => {\n pendingValidationPerPostType[postType] = false;\n setPendingValidationPerPostType({...pendingValidationPerPostType});\n }\n\n const saveButtonText = hasNoPendingValidation ? text.saveChanges : text.saveChangesPendingValidation;\n\n return (\n \n \n \n \n \n \n\n \n \n \n \n \n )\n};\n\nconst container = document.getElementById(\"publishpress-future-settings-post-types\");\nconst component = ();\n\ncreateRoot(container).render(component);\n"],"names":["ButtonsPanel","props","children","CheckboxControl","description","useState","checked","setChecked","unescapedDescription","className","dangerouslySetInnerHTML","__html","Fragment","label","name","id","onChange","value","DateTimePicker","currentDate","is12Hour","startOfWeek","normalizeUnixTimeToMilliseconds","__nextRemoveHelpButton","wp","components","PanelRow","SelectControl","FormTokenField","Spinner","BaseControl","element","useEffect","decodeEntities","htmlEntities","addQueryArgs","url","data","useSelect","useDispatch","apiFetch","FutureActionPanel","action","select","storeName","getAction","date","getDate","enabled","getEnabled","terms","getTerms","taxonomy","getTaxonomy","taxonomyName","getTaxonomyName","termsListByName","getTermsListByName","termsListById","getTermsListById","isFetchingTerms","getIsFetchingTerms","calendarIsVisible","getCalendarIsVisible","hasValidData","getHasValidData","newStatus","getNewStatus","validationError","setValidationError","setAction","setDate","setEnabled","setTerms","setTaxonomy","setTermsListByName","setTermsListById","setTaxonomyName","setIsFetchingTerms","setCalendarIsVisible","setHasValidData","setNewStatus","insertTerm","term","count","link","slug","callOnChangeData","attribute","onChangeData","handleEnabledChange","isChecked","fetchTerms","path","then","result","forEach","getCalendarIsVisibleFromStorage","localStorage","getItem","context","autoEnableAndHideCheckbox","isCleanNewPost","setItem","onDataIsValid","onDataIsInvalid","selectedTerms","length","compact","map","mapTermsListById","termsListByNameKeys","Object","keys","is24hour","panelClass","contentPanelClass","datePanelClass","timeFormat","actionsSelectOptions","filter","item","indexOf","HelpText","string","href","target","parts","split","push","shift","before","after","key","replaceCurlyBracketsWithLink","strings","timezoneSettingsHelp","displayTaxonomyField","String","includes","termsFieldLabel","newTerms","replace","removeTerms","addTerms","valid","errorActionRequired","errorDateRequired","Date","errorDateInPast","isTermRequired","noTermIsSelected","errorTermsRequired","validateData","SlotFillProvider","type","FutureActionPanelTop","Slot","fillProps","enablePostExpiration","options","FutureActionPanelAfterActionField","statusesSelectOptions","loading","noTaxonomyFound","noTermsFound","suggestions","mapTermsListByName","placeholder","addTermsPlaceholder","maxSuggestions","onFocus","e","jQuery","addClass","__experimentalExpandOnFocus","__experimentalAutoSelectFirstMatch","ToggleCalendarDatePicker","onChangeDate","onToggleCalendar","isExpanded","PluginArea","scope","Fill","FutureActionPanelBlockEditor","PluginDocumentSettingPanel","editPost","getEditedPostAttribute","lockPostSaving","unlockPostSaving","title","panelTitle","initialOpen","postTypeDefaultConfig","autoEnable","postType","store","newAttribute","getExtraData","publishpress_future_action","entries","editPostAttribute","FutureActionPanelBulkEdit","changeAction","getChangeAction","setChangeAction","termsString","join","noChange","changeAdd","addOnly","changeOnly","removeOnly","prop","futureActionUpdate","isNewPost","getElementByName","nonce","FutureActionPanelClassicEditor","getTimezoneOffset","document","getElementsByName","getElementValueByName","parseInt","getTermsFromElementByName","FutureActionPanelQuickEdit","NonceControl","referrer","PostTypeSettingsPanel","originalExpireTypeList","expireTypeList","settings","postTypeTaxonomy","setPostTypeTaxonomy","termOptions","setTermOptions","termsSelectIsLoading","setTermsSelectIsLoading","setSelectedTerms","howToExpire","settingHowToExpire","setSettingHowToExpire","active","isActive","setIsActive","defaultExpireOffset","expireOffset","setExpireOffset","emailNotification","setEmailNotification","autoEnabled","isAutoEnabled","setIsAutoEnabled","taxonomyLabel","setTaxonomyLabel","howToExpireList","setHowToExpireList","hasPendingValidation","setHasPendingValidation","offsetPreview","setOffsetPreview","currentTime","setCurrentTime","apiRequestControllerRef","useRef","AbortController","taxonomyRelatedActions","newExpireTypeList","taxonomiesList","settingsTermsOptions","option","offset","globalDefaultExpireOffset","controller","current","abort","signal","method","isValid","message","preview","catch","error","expireType","toLowerCase","onValidationStarted","onValidationFinished","termOptionsLabels","settingsRows","SettingRow","text","fieldActive","fieldActiveLabel","fieldAutoEnable","fieldAutoEnableLabel","fieldTaxonomy","selected","noItemFoundMessage","noItemsfound","fieldTaxonomyDescription","fieldHowToExpire","fieldHowToExpireDescription","statusesList","TokensControl","fieldTerm","isLoading","fieldTermDescription","expandOnFocus","autoSelectFirstMatch","fieldDefaultDateTimeOffset","TextControl","fieldDefaultDateTimeOffsetDescription","datePreview","datePreviewCurrent","datePreviewComputed","fieldWhoToNotify","fieldWhoToNotifyDescription","applyFilters","SettingsFieldset","legend","SettingsTable","bodyChildren","PostTypesSettingsPanels","panels","postTypeSettings","valign","htmlFor","SettingsForm","SettingsSection","SubmitButton","disabled","ToggleArrowButton","iconExpanded","iconCollapsed","icon","titleExpanded","titleCollapsed","Button","isSmall","onClick","toggleButtonElement","querySelector","dateTimeElement","nextElementSibling","timeElement","dateElement","nextSibling","insertBefore","hideCalendar","showCalendar","stringValue","setStringValue","TrueFalseControl","trueValue","is","defaultChecked","trueLabel","falseValue","falseLabel","getCurrentTimeInSeconds","normalizeUnixTimeToSeconds","getTime","formatUnixTimeToTimestamp","getCurrentTimeAsTimestamp","unixTimestamp","getFullYear","getMonth","slice","getHours","getMinutes","getSeconds","timeIsInSeconds","formatTimestampToUnixTime","time","toString","getFieldByName","array","Array","isArray","values","debugLogFactory","config","console","isDebugEnabled","debug","isGutenbergEnabled","body","classList","contains","postId","getFieldValueByName","field","getFieldValueByNameAsArrayOfInt","getFieldValueByNameAsBool","getActionSettingsFromColumnData","columnData","dataset","actionEnabled","actionType","actionDate","dateUnix","actionDateUnix","actionTaxonomy","actionTerms","actionNewStatus","isNumber","isNaN","module","exports","ReactDOM","publishpressFutureSettingsConfig","hooks","plugins","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","container","getElementById","component","formValidationStatusPerPostType","setFormValidationStatusPerPostType","pendingValidationPerPostType","setPendingValidationPerPostType","allValid","setAllValid","hasNoPendingValidation","setHasNoPendingValidation","allFormsAreValid","saveButtonText","saveChanges","saveChangesPendingValidation","StrictMode","settingsSectionTitle","settingsSectionDescription","createRoot","render"],"sourceRoot":""} +{"version":3,"file":"settings-post-types.js","mappings":"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","sources":["webpack://post-expirator/./assets/jsx/components/ButtonsPanel.jsx","webpack://post-expirator/./assets/jsx/components/CheckboxControl.jsx","webpack://post-expirator/./assets/jsx/components/DateOffsetPreview.jsx","webpack://post-expirator/./assets/jsx/components/DateTimePicker.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanel.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelAfterActionField.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelBlockEditor.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelBulkEdit.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelClassicEditor.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelQuickEdit.jsx","webpack://post-expirator/./assets/jsx/components/FutureActionPanelTop.jsx","webpack://post-expirator/./assets/jsx/components/NonceControl.jsx","webpack://post-expirator/./assets/jsx/components/PostTypeSettingsPanel.jsx","webpack://post-expirator/./assets/jsx/components/PostTypesSettingsPanels.jsx","webpack://post-expirator/./assets/jsx/components/SelectControl.jsx","webpack://post-expirator/./assets/jsx/components/SettingRow.jsx","webpack://post-expirator/./assets/jsx/components/SettingsFieldset.jsx","webpack://post-expirator/./assets/jsx/components/SettingsForm.jsx","webpack://post-expirator/./assets/jsx/components/SettingsSection.jsx","webpack://post-expirator/./assets/jsx/components/SettingsTable.jsx","webpack://post-expirator/./assets/jsx/components/Spinner.jsx","webpack://post-expirator/./assets/jsx/components/SubmitButton.jsx","webpack://post-expirator/./assets/jsx/components/TextControl.jsx","webpack://post-expirator/./assets/jsx/components/ToggleArrowButton.jsx","webpack://post-expirator/./assets/jsx/components/ToggleCalendarDatePicker.jsx","webpack://post-expirator/./assets/jsx/components/TokensControl.jsx","webpack://post-expirator/./assets/jsx/components/TrueFalseControl.jsx","webpack://post-expirator/./assets/jsx/components/index.jsx","webpack://post-expirator/./assets/jsx/time.jsx","webpack://post-expirator/./assets/jsx/utils.jsx","webpack://post-expirator/./assets/jsx/components/css/dateOffsetPreview.css","webpack://post-expirator/./node_modules/css-loader/dist/runtime/api.js","webpack://post-expirator/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://post-expirator/./node_modules/react-dom/client.js","webpack://post-expirator/./assets/jsx/components/css/dateOffsetPreview.css?541a","webpack://post-expirator/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://post-expirator/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://post-expirator/external var \"ReactDOM\"","webpack://post-expirator/external var \"publishpressFutureSettingsConfig\"","webpack://post-expirator/external var \"wp\"","webpack://post-expirator/external var \"wp.components\"","webpack://post-expirator/external var \"wp.data\"","webpack://post-expirator/external var \"wp.element\"","webpack://post-expirator/external var \"wp.hooks\"","webpack://post-expirator/external var \"wp.plugins\"","webpack://post-expirator/external var \"wp.url\"","webpack://post-expirator/webpack/bootstrap","webpack://post-expirator/webpack/runtime/compat get default export","webpack://post-expirator/webpack/runtime/define property getters","webpack://post-expirator/webpack/runtime/hasOwnProperty shorthand","webpack://post-expirator/webpack/runtime/make namespace object","webpack://post-expirator/webpack/runtime/nonce","webpack://post-expirator/./assets/jsx/settings-post-types.jsx"],"sourcesContent":["/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const ButtonsPanel = function (props) {\n return (\n
\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment, useState } from \"@wordpress/element\";\nimport { CheckboxControl as WPCheckboxControl } from \"@wordpress/components\";\n\nexport const CheckboxControl = function (props) {\n const [checked, setChecked] = useState(props.checked || false);\n\n let description;\n\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n\n const onChange = function (value) {\n setChecked(value);\n\n if (props.onChange) {\n props.onChange(value);\n }\n };\n\n return (\n \n \n\n {description}\n \n )\n}\n","import {\n useState,\n useEffect,\n useRef,\n Fragment\n} from '@wordpress/element';\nimport { addQueryArgs } from '@wordpress/url';\nimport { apiFetch } from '&wp';\n\nrequire('./css/dateOffsetPreview.css');\n\nexport const DateOffsetPreview = ({\n offset,\n label,\n labelDatePreview,\n labelOffsetPreview,\n setValidationErrorCallback,\n setHasPendingValidationCallback,\n setHasValidDataCallback,\n compactView = false\n}) => {\n const [offsetPreview, setOffsetPreview] = useState('');\n const [currentTime, setCurrentTime] = useState();\n\n const apiRequestControllerRef = useRef(new AbortController());\n\n const validateDateOffset = () => {\n if (offset) {\n const controller = apiRequestControllerRef.current;\n\n if (controller) {\n controller.abort();\n }\n\n apiRequestControllerRef.current = new AbortController();\n const { signal } = apiRequestControllerRef.current;\n\n setHasPendingValidationCallback(true);\n\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/settings/validate-expire-offset`),\n method: 'POST',\n data: {\n offset\n },\n signal,\n }).then((result) => {\n setHasPendingValidationCallback(false);\n\n setHasValidDataCallback(result.isValid);\n setValidationErrorCallback(result.message);\n\n if (result.isValid) {\n setOffsetPreview(result.preview);\n setCurrentTime(result.currentTime);\n } else {\n setOffsetPreview('');\n }\n }).catch((error) => {\n if (error.name === 'AbortError') {\n return;\n }\n\n setHasPendingValidationCallback(false);\n setHasValidDataCallback(false);\n setValidationErrorCallback(error.message);\n setOffsetPreview('');\n });\n }\n }\n\n useEffect(() => {\n validateDateOffset();\n }, [offset]);\n\n const compactClass = compactView ? ' compact' : '';\n\n return (\n \n { offset && (\n
\n

{ label }

\n
\n
\n { labelDatePreview }: \n {currentTime}\n
\n
\n { labelOffsetPreview }: \n {offsetPreview}\n
\n
\n
\n )}\n
\n )\n}\n\nexport default DateOffsetPreview;\n","import { normalizeUnixTimeToMilliseconds } from \"../time\";\nimport { DateTimePicker as WPDateTimePicker } from \"@wordpress/components\";\n\n\nexport const DateTimePicker = ({currentDate, onChange, is12Hour, startOfWeek}) => {\n if (typeof currentDate === 'number') {\n currentDate = normalizeUnixTimeToMilliseconds(currentDate);\n }\n\n return (\n \n )\n}\n","import { compact } from '../utils';\nimport { ToggleCalendarDatePicker } from './ToggleCalendarDatePicker';\nimport { PluginArea } from '@wordpress/plugins';\nimport { Fill, Slot, SlotFillProvider } from '@wordpress/components';\nimport { FutureActionPanelAfterActionField } from './FutureActionPanelAfterActionField';\nimport { FutureActionPanelTop } from './FutureActionPanelTop';\n\nconst { PanelRow, CheckboxControl, SelectControl, FormTokenField, Spinner, BaseControl } = wp.components;\nconst { Fragment, useEffect, useState } = wp.element;\nconst { decodeEntities } = wp.htmlEntities;\nconst { addQueryArgs } = wp.url;\nconst {\n useSelect,\n useDispatch\n} = wp.data;\nconst { apiFetch } = wp;\n\nexport const FutureActionPanel = (props) => {\n const {\n action,\n date,\n enabled,\n terms,\n taxonomy,\n taxonomyName,\n termsListByName,\n termsListById,\n isFetchingTerms,\n calendarIsVisible,\n hasValidData,\n newStatus,\n } = useSelect((select) => {\n return {\n action: select(props.storeName).getAction(),\n date: select(props.storeName).getDate(),\n enabled: select(props.storeName).getEnabled(),\n terms: select(props.storeName).getTerms(),\n taxonomy: select(props.storeName).getTaxonomy(),\n taxonomyName: select(props.storeName).getTaxonomyName(),\n termsListByName: select(props.storeName).getTermsListByName(),\n termsListById: select(props.storeName).getTermsListById(),\n isFetchingTerms: select(props.storeName).getIsFetchingTerms(),\n calendarIsVisible: select(props.storeName).getCalendarIsVisible(),\n hasValidData: select(props.storeName).getHasValidData(),\n newStatus: select(props.storeName).getNewStatus(),\n };\n });\n\n const [validationError, setValidationError] = useState('');\n\n const {\n setAction,\n setDate,\n setEnabled,\n setTerms,\n setTaxonomy,\n setTermsListByName,\n setTermsListById,\n setTaxonomyName,\n setIsFetchingTerms,\n setCalendarIsVisible,\n setHasValidData,\n setNewStatus\n } = useDispatch(props.storeName);\n\n const mapTermsListById = (terms) => {\n if (typeof terms !== 'object' || terms === null) {\n return {};\n }\n\n return terms.map((term) => {\n return termsListById[term];\n });\n }\n\n const insertTerm = (term) => {\n termsListByName[term] = { id: term, count: 0, description: \"\", link: \"\", name: term, slug: term, taxonomy: taxonomy };\n termsListById[term] = term;\n setTermsListByName(termsListByName);\n setTermsListById(termsListById);\n setTerms([...terms, term]);\n\n }\n\n const mapTermsListByName = (terms) => {\n if (typeof terms !== 'object' || terms === null) {\n return {};\n }\n\n return terms.map((term) => {\n if (termsListByName[term]) {\n return termsListByName[term].id;\n }\n\n insertTerm(term);\n\n return term;\n });\n }\n\n const callOnChangeData = (attribute, value) => {\n if (typeof props.onChangeData === 'function') {\n props.onChangeData(attribute, value);\n }\n }\n\n const handleEnabledChange = (isChecked) => {\n setEnabled(isChecked);\n\n if (isChecked) {\n setAction(props.action);\n setDate(props.date);\n setNewStatus(props.newStatus);\n setTerms(props.terms);\n setTaxonomy(props.taxonomy);\n\n fetchTerms();\n }\n\n callOnChangeData('enabled', isChecked);\n }\n\n const handleActionChange = (value) => {\n setAction(value);\n\n callOnChangeData('action', value);\n }\n\n const handleNewStatusChange = (value) => {\n setNewStatus(value);\n\n callOnChangeData('newStatus', value);\n }\n\n const handleDateChange = (value) => {\n setDate(value);\n\n callOnChangeData('date', value);\n }\n\n const handleTermsChange = (value) => {\n value = mapTermsListByName(value);\n\n setTerms(value);\n\n callOnChangeData('terms', value);\n }\n\n const fetchTerms = () => {\n let termsListByName = {};\n let termsListById = {};\n\n if (!taxonomy) {\n return;\n }\n\n setIsFetchingTerms(true);\n\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/terms/${taxonomy}`),\n }).then((result) => {\n result.terms.forEach(term => {\n termsListByName[decodeEntities(term.name)] = term;\n termsListById[term.id] = decodeEntities(term.name);\n });\n\n setTermsListByName(termsListByName);\n setTermsListById(termsListById);\n setTaxonomyName(decodeEntities(result.taxonomyName));\n setIsFetchingTerms(false);\n });\n }\n\n const storeCalendarIsVisibleOnStorage = (value) => {\n localStorage.setItem('FUTURE_ACTION_CALENDAR_IS_VISIBLE_' + props.context, value ? '1' : '0');\n }\n\n const getCalendarIsVisibleFromStorage = () => {\n return localStorage.getItem('FUTURE_ACTION_CALENDAR_IS_VISIBLE_' + props.context);\n }\n\n useEffect(() => {\n if (props.autoEnableAndHideCheckbox) {\n setEnabled(true);\n } else {\n setEnabled(props.enabled);\n }\n\n setAction(props.action);\n setNewStatus(props.newStatus);\n setDate(props.date);\n setTerms(props.terms);\n setTaxonomy(props.taxonomy);\n\n if (getCalendarIsVisibleFromStorage() === null) {\n setCalendarIsVisible(props.calendarIsVisible);\n } else {\n setCalendarIsVisible(getCalendarIsVisibleFromStorage() === '1' && ! props.hideCalendarByDefault);\n }\n\n // We need to get the value directly from the props because the value from the store is not updated yet\n if (props.enabled) {\n if (props.isCleanNewPost) {\n // Force populate the default values\n handleEnabledChange(true);\n }\n\n fetchTerms();\n }\n }, []);\n\n useEffect(() => {\n storeCalendarIsVisibleOnStorage(calendarIsVisible);\n }, [calendarIsVisible]);\n\n useEffect(() => {\n if (hasValidData && props.onDataIsValid) {\n props.onDataIsValid();\n }\n\n if (!hasValidData && props.onDataIsInvalid) {\n props.onDataIsInvalid();\n }\n }, [hasValidData]);\n\n let selectedTerms = [];\n if (terms && terms.length > 0 && termsListById) {\n selectedTerms = compact(mapTermsListById(terms));\n\n if (typeof selectedTerms === 'string') {\n selectedTerms = [];\n }\n }\n\n let termsListByNameKeys = [];\n if (typeof termsListByName === 'object' && termsListByName !== null) {\n termsListByNameKeys = Object.keys(termsListByName);\n }\n\n const panelClass = calendarIsVisible ? 'future-action-panel' : 'future-action-panel hidden-calendar';\n const contentPanelClass = calendarIsVisible ? 'future-action-panel-content' : 'future-action-panel-content hidden-calendar';\n const datePanelClass = calendarIsVisible ? 'future-action-date-panel' : 'future-action-date-panel hidden-calendar';\n\n let is24hour;\n if (props.timeFormat === 'inherited') {\n is24hour = !props.is12Hour;\n } else {\n is24hour = props.timeFormat === '24h';\n }\n\n const replaceCurlyBracketsWithLink = (string, href, target) => {\n const parts = string.split('{');\n const result = [];\n\n result.push(parts.shift());\n\n for (const part of parts) {\n const [before, after] = part.split('}');\n\n result.push(\n {before}\n );\n\n result.push(after);\n }\n\n return result;\n };\n\n // Remove items from actions list if related to taxonomies and there is no taxonmoy for the post type\n let actionsSelectOptions = props.actionsSelectOptions;\n if (!props.taxonomy) {\n actionsSelectOptions = props.actionsSelectOptions.filter((item) => {\n return ['category', 'category-add', 'category-remove', 'category-remove-all'].indexOf(item.value) === -1;\n });\n }\n\n const HelpText = replaceCurlyBracketsWithLink(props.strings.timezoneSettingsHelp, '/wp-admin/options-general.php#timezone_string', '_blank');\n const displayTaxonomyField = String(action).includes('category') && action !== 'category-remove-all';\n\n let termsFieldLabel = taxonomyName;\n switch (action) {\n case 'category':\n termsFieldLabel = props.strings.newTerms.replace('%s', taxonomyName);\n break;\n case 'category-remove':\n termsFieldLabel = props.strings.removeTerms.replace('%s', taxonomyName);\n break;\n case 'category-add':\n termsFieldLabel = props.strings.addTerms.replace('%s', taxonomyName);\n break;\n }\n\n const validateData = () => {\n let valid = true;\n\n if (!enabled) {\n setValidationError('');\n return true;\n }\n\n if (!action) {\n setValidationError(props.strings.errorActionRequired);\n valid = false;\n }\n\n if (!date) {\n setValidationError(props.strings.errorDateRequired);\n valid = false;\n }\n\n // Check if the date is in the past\n if (date && new Date(date) < new Date()) {\n setValidationError(props.strings.errorDateInPast);\n valid = false;\n }\n\n const isTermRequired = ['category', 'category-add', 'category-remove'].includes(action);\n const noTermIsSelected = terms.length === 0 || (terms.length === 1 && (terms[0] === '' || terms[0] === '0'));\n\n if (isTermRequired && noTermIsSelected) {\n setValidationError(props.strings.errorTermsRequired);\n valid = false;\n }\n\n if (valid) {\n setValidationError('');\n }\n\n return valid;\n }\n\n useEffect(() => {\n if (!enabled) {\n setHasValidData(true);\n setValidationError('');\n\n return;\n }\n\n setHasValidData(validateData());\n }, [action, date, enabled, terms, taxonomy]);\n\n // This adds a 'cancel' class to the input when the user clicks on the\n // field to prevent the form from being submitted. This is a workaround\n // for the issue on the quick-edit form where the form is submitted when\n // the user presses the 'Enter' key trying to add a term to the field.\n const forceIgnoreAutoSubmitOnEnter = (e) => {\n jQuery(e.target).addClass('cancel');\n }\n\n return (\n \n
\n {props.autoEnableAndHideCheckbox && (\n \n )}\n\n \n\n {!props.autoEnableAndHideCheckbox && (\n \n \n \n )}\n\n {enabled && (\n \n \n \n \n\n \n\n {action === 'change-status' &&\n \n \n \n }\n\n {\n displayTaxonomyField && (\n isFetchingTerms && (\n \n \n {`${props.strings.loading} (${taxonomyName})`}\n \n \n \n )\n || (!taxonomy && (\n \n \n
\n {props.strings.noTaxonomyFound}\n
\n
\n
\n )\n || (\n termsListByNameKeys.length === 0 && (\n \n \n
\n {props.strings.noTermsFound}\n
\n
\n
\n )\n || (\n \n \n \n \n \n )\n )\n )\n )\n }\n\n \n setCalendarIsVisible(!calendarIsVisible)}\n is12Hour={!is24hour}\n startOfWeek={props.startOfWeek}\n isExpanded={calendarIsVisible}\n strings={props.strings}\n />\n \n\n \n
\n
\n\n {HelpText}\n
\n
\n\n {!hasValidData && (\n \n \n
{validationError}
\n
\n
\n )}\n
\n )}\n
\n \n
\n );\n};\n","import { Slot, Fill } from '@wordpress/components';\n\nexport const FutureActionPanelAfterActionField = ({ children }) => (\n \n {children}\n \n);\n\nconst FutureActionPanelAfterActionFieldSlot = (props) => (\n \n);\n\nFutureActionPanelAfterActionField.Slot = FutureActionPanelAfterActionFieldSlot;\n\nexport default FutureActionPanelAfterActionField;\n","import { FutureActionPanel } from './';\n\nexport const FutureActionPanelBlockEditor = (props) => {\n const { PluginDocumentSettingPanel } = wp.editPost;\n const { useDispatch, select } = wp.data;\n\n const { editPost } = useDispatch('core/editor');\n\n const editPostAttribute = (newAttribute) => {\n const attribute = {\n publishpress_future_action: {}\n };\n\n // For each property on newAttribute, set the value on attribute\n for (const [name, value] of Object.entries(newAttribute)) {\n attribute.publishpress_future_action[name] = value;\n }\n\n editPost(attribute);\n }\n\n const onChangeData = (attribute, value) => {\n const store = select(props.storeName);\n\n const newAttribute = {\n 'enabled': store.getEnabled()\n }\n\n if (newAttribute.enabled) {\n newAttribute['action'] = store.getAction();\n newAttribute['newStatus'] = store.getNewStatus();\n newAttribute['date'] = store.getDate();\n newAttribute['terms'] = store.getTerms();\n newAttribute['taxonomy'] = store.getTaxonomy();\n newAttribute['extraData'] = store.getExtraData();\n }\n\n editPostAttribute(newAttribute);\n }\n\n const data = select('core/editor').getEditedPostAttribute('publishpress_future_action');\n\n const { lockPostSaving, unlockPostSaving } = useDispatch('core/editor');\n\n const onDataIsValid = () => {\n unlockPostSaving('future-action');\n }\n\n const onDataIsInvalid = () => {\n lockPostSaving('future-action');\n }\n\n return (\n \n
\n \n
\n \n );\n};\n","import { FutureActionPanel, SelectControl } from '.';\nimport { getElementByName } from '../utils';\n\nexport const FutureActionPanelBulkEdit = (props) => {\n const { useSelect, useDispatch, select } = wp.data;\n const { useEffect } = wp.element;\n\n const onChangeData = (attribute, value) => {\n getElementByName('future_action_bulk_enabled').value = select(props.storeName).getEnabled() ? 1 : 0;\n getElementByName('future_action_bulk_action').value = select(props.storeName).getAction();\n getElementByName('future_action_bulk_new_status').value = select(props.storeName).getNewStatus();\n getElementByName('future_action_bulk_date').value = select(props.storeName).getDate();\n getElementByName('future_action_bulk_terms').value = select(props.storeName).getTerms().join(',');\n getElementByName('future_action_bulk_taxonomy').value = select(props.storeName).getTaxonomy();\n }\n\n const date = useSelect((select) => select(props.storeName).getDate(), []);\n const enabled = useSelect((select) => select(props.storeName).getEnabled(), []);\n const action = useSelect((select) => select(props.storeName).getAction(), []);\n const newStatus = useSelect((select) => select(props.storeName).getNewStatus(), []);\n const terms = useSelect((select) => select(props.storeName).getTerms(), []);\n const taxonomy = useSelect((select) => select(props.storeName).getTaxonomy(), []);\n const changeAction = useSelect((select) => select(props.storeName).getChangeAction(), []);\n const hasValidData = useSelect((select) => select(props.storeName).getHasValidData(), []);\n\n const {\n setChangeAction\n } = useDispatch(props.storeName);\n\n let termsString = terms;\n if (typeof terms === 'object') {\n termsString = terms.join(',');\n }\n\n const handleStrategyChange = (value) => {\n setChangeAction(value);\n };\n\n const options = [\n { value: 'no-change', label: props.strings.noChange },\n { value: 'change-add', label: props.strings.changeAdd },\n { value: 'add-only', label: props.strings.addOnly },\n { value: 'change-only', label: props.strings.changeOnly },\n { value: 'remove-only', label: props.strings.removeOnly },\n ];\n\n const optionsToDisplayPanel = ['change-add', 'add-only', 'change-only'];\n\n useEffect(() => {\n // We are not using onDataIsValid and onDataIsInvalid because we need to enable/disable the button\n // also based on the changeAction value.\n if (hasValidData || changeAction === 'no-change') {\n jQuery('#bulk_edit').prop('disabled', false);\n } else {\n jQuery('#bulk_edit').prop('disabled', true);\n }\n }, [hasValidData, changeAction]);\n\n return (\n
\n \n\n {optionsToDisplayPanel.includes(changeAction) && (\n \n )}\n\n {/* Bulk edit JS code will save only fields with name inside the edit row */}\n \n \n \n \n \n \n \n \n
\n );\n};\n","import { FutureActionPanel } from \"./\";\nimport { select, useSelect } from \"@wordpress/data\";\nimport { useEffect } from \"@wordpress/element\";\n\nexport const FutureActionPanelClassicEditor = (props) => {\n const browserTimezoneOffset = new Date().getTimezoneOffset();\n\n const getElementByName = (name) => {\n return document.getElementsByName(name)[0];\n }\n\n const onChangeData = (attribute, value) => {\n const store = select(props.storeName);\n\n getElementByName('future_action_enabled').value = store.getEnabled() ? 1 : 0;\n getElementByName('future_action_action').value = store.getAction();\n getElementByName('future_action_new_status').value = store.getNewStatus();\n getElementByName('future_action_date').value = store.getDate();\n getElementByName('future_action_terms').value = store.getTerms().join(',');\n getElementByName('future_action_taxonomy').value = store.getTaxonomy();\n }\n\n const getTermsFromElementByName = (name) => {\n const element = getElementByName(name);\n if (!element) {\n return [];\n }\n\n let terms = element.value.split(',');\n\n if (terms.length === 1 && terms[0] === '') {\n terms = [];\n }\n\n return terms.map(term => parseInt(term));\n }\n\n const getElementValueByName = (name) => {\n const element = getElementByName(name);\n if (!element) {\n return '';\n }\n\n return element.value;\n }\n\n const data = {\n enabled: getElementValueByName('future_action_enabled') === '1',\n action: getElementValueByName('future_action_action'),\n newStatus: getElementValueByName('future_action_new_status'),\n date: getElementValueByName('future_action_date'),\n terms: getTermsFromElementByName('future_action_terms'),\n taxonomy: getElementValueByName('future_action_taxonomy'),\n };\n\n const onDataIsValid = () => {\n jQuery('#publish').prop('disabled', false);\n }\n\n const onDataIsInvalid = () => {\n jQuery('#publish').prop('disabled', true);\n }\n\n return (\n
\n \n
\n );\n};\n","import { FutureActionPanel } from './';\nimport { useSelect, select } from '@wordpress/data';\nimport { useEffect } from '@wordpress/element';\n\nexport const FutureActionPanelQuickEdit = (props) => {\n const onChangeData = (attribute, value) => {};\n\n const date = useSelect((select) => select(props.storeName).getDate(), []);\n const enabled = useSelect((select) => select(props.storeName).getEnabled(), []);\n const action = useSelect((select) => select(props.storeName).getAction(), []);\n const terms = useSelect((select) => select(props.storeName).getTerms(), []);\n const taxonomy = useSelect((select) => select(props.storeName).getTaxonomy(), []);\n const hasValidData = useSelect((select) => select(props.storeName).getHasValidData(), []);\n const newStatus = useSelect((select) => select(props.storeName).getNewStatus(), []);\n\n let termsString = terms;\n if (typeof terms === 'object') {\n termsString = terms.join(',');\n }\n\n const onDataIsValid = () => {\n jQuery('.button-primary.save').prop('disabled', false);\n }\n\n const onDataIsInvalid = () => {\n jQuery('.button-primary.save').prop('disabled', true);\n }\n\n return (\n
\n \n\n {/* Quick edit JS code will save only fields with name inside the edit row */}\n \n \n \n \n \n \n \n \n
\n );\n};\n","import { Slot, Fill } from '@wordpress/components';\n\nexport const FutureActionPanelTop = ({ children }) => (\n \n {children}\n \n);\n\nconst FutureActionPanelTopSlot = (props) => (\n \n);\n\nFutureActionPanelTop.Slot = FutureActionPanelTopSlot;\n\nexport default FutureActionPanelTop;\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const NonceControl = function (props) {\n if (! props.name) {\n props.name = '_wpnonce';\n }\n\n if (! props.referrer) {\n props.referrer = true;\n }\n\n return (\n \n \n\n {props.referrer &&\n \n }\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nimport {\n SettingRow,\n SettingsTable,\n SelectControl,\n TextControl,\n TokensControl,\n CheckboxControl\n} from './';\nimport { useEffect, useState } from '@wordpress/element';\nimport { addQueryArgs } from '@wordpress/url';\nimport { applyFilters } from '@wordpress/hooks';\nimport { apiFetch } from '&wp';\nimport DateOffsetPreview from './DateOffsetPreview';\n\nconst { PanelRow } = wp.components;\n\nexport const PostTypeSettingsPanel = function (props) {\n const originalExpireTypeList = props.expireTypeList[props.postType];\n\n const [postTypeTaxonomy, setPostTypeTaxonomy] = useState(props.settings.taxonomy);\n const [termOptions, setTermOptions] = useState([]);\n const [termsSelectIsLoading, setTermsSelectIsLoading] = useState(false);\n const [selectedTerms, setSelectedTerms] = useState([]);\n const [settingHowToExpire, setSettingHowToExpire] = useState(props.settings.howToExpire);\n const [isActive, setIsActive] = useState(props.settings.active);\n const [expireOffset, setExpireOffset] = useState(props.settings.defaultExpireOffset);\n const [emailNotification, setEmailNotification] = useState(props.settings.emailNotification);\n const [isAutoEnabled, setIsAutoEnabled] = useState(props.settings.autoEnabled);\n const [hasValidData, setHasValidData] = useState(true);\n const [validationError, setValidationError] = useState('');\n const [taxonomyLabel, setTaxonomyLabel] = useState('');\n const [howToExpireList, setHowToExpireList] = useState(originalExpireTypeList);\n const [newStatus, setNewStatus] = useState(props.settings.newStatus);\n const [hasPendingValidation, setHasPendingValidation] = useState(false);\n\n const offset = expireOffset ? expireOffset : props.settings.globalDefaultExpireOffset;\n\n const taxonomyRelatedActions = [\n 'category',\n 'category-add',\n 'category-remove',\n 'category-remove-all'\n ];\n\n const onChangeTaxonomy = function (value) {\n setPostTypeTaxonomy(value);\n };\n\n const onChangeTerms = (value) => {\n setSelectedTerms(value);\n };\n\n const onChangeHowToExpire = (value) => {\n setSettingHowToExpire(value);\n }\n\n const onChangeActive = (value) => {\n setIsActive(value);\n }\n\n const onChangeExpireOffset = (value) => {\n setExpireOffset(value);\n }\n\n const onChangeEmailNotification = (value) => {\n setEmailNotification(value);\n }\n\n const onChangeAutoEnabled = (value) => {\n setIsAutoEnabled(value);\n }\n\n useEffect(() => {\n // Remove items from expireTypeList if related to taxonomies and there is no taxonmoy for the post type\n if (props.taxonomiesList.length === 0) {\n let newExpireTypeList = [];\n\n newExpireTypeList = howToExpireList.filter((item) => {\n return taxonomyRelatedActions.indexOf(item.value) === -1;\n });\n\n setHowToExpireList(newExpireTypeList);\n }\n }, []);\n\n useEffect(() => {\n if (!postTypeTaxonomy || !props.taxonomiesList) {\n return;\n }\n\n setTermsSelectIsLoading(true);\n apiFetch({\n path: addQueryArgs(`publishpress-future/v1/terms/${postTypeTaxonomy}`),\n }).then((result) => {\n let options = [];\n\n let settingsTermsOptions = null;\n let option;\n\n result.terms.forEach(term => {\n option = { value: term.id, label: term.name };\n options.push(option);\n\n if (postTypeTaxonomy === props.settings.taxonomy && props.settings.terms.includes(term.id)) {\n if (settingsTermsOptions === null) {\n settingsTermsOptions = [];\n }\n\n settingsTermsOptions.push(option.label);\n }\n });\n\n setTermOptions(options);\n setSelectedTerms(settingsTermsOptions);\n setTermsSelectIsLoading(false);\n });\n\n props.taxonomiesList.forEach((taxonomy) => {\n if (taxonomy.value === postTypeTaxonomy) {\n setTaxonomyLabel(taxonomy.label);\n }\n });\n }, [postTypeTaxonomy]);\n\n useEffect(() => {\n if (!taxonomyLabel) {\n return;\n }\n\n // Update the list of actions replacing the taxonomy name.\n let newExpireTypeList = [];\n\n originalExpireTypeList.forEach((expireType) => {\n let label = expireType.label;\n\n if (taxonomyRelatedActions.indexOf(expireType.value) !== -1) {\n label = label.replace('%s', taxonomyLabel.toLowerCase());\n }\n\n newExpireTypeList.push({\n value: expireType.value,\n label: label\n });\n });\n\n setHowToExpireList(newExpireTypeList);\n }, [taxonomyLabel]);\n\n useEffect(() => {\n if (hasValidData && props.onDataIsValid) {\n props.onDataIsValid(props.postType);\n }\n\n if (!hasValidData && props.onDataIsInvalid) {\n props.onDataIsInvalid(props.postType);\n }\n }, [hasValidData]);\n\n useEffect(() => {\n if (hasPendingValidation && props.onValidationStarted) {\n props.onValidationStarted(props.postType);\n }\n\n if (!hasPendingValidation && props.onValidationFinished) {\n props.onValidationFinished(props.postType);\n }\n }, [hasPendingValidation]);\n\n const termOptionsLabels = termOptions.map((term) => term.label);\n\n let settingsRows = [\n \n \n \n ];\n\n if (isActive) {\n settingsRows.push(\n \n \n \n );\n\n settingsRows.push(\n \n \n \n \n );\n\n settingsRows.push(\n \n \n\n {settingHowToExpire === 'change-status' &&\n \n }\n\n {(props.taxonomiesList.length > 0 && (['category', 'category-add', 'category-remove'].indexOf(settingHowToExpire) > -1)) &&\n \n }\n \n );\n\n settingsRows.push(\n \n \n\n \n \n );\n\n settingsRows.push(\n \n \n \n );\n }\n\n settingsRows = applyFilters('expirationdate_settings_posttype', settingsRows, props, isActive, useState);\n\n const fieldSetClassNames = props.isVisible ? 'pe-settings-fieldset' : 'pe-settings-fieldset hidden';\n\n return (\n
\n \n\n {! hasValidData && (\n \n
\n {props.text.error}: {validationError}\n
\n
\n )}\n
\n );\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nimport { PostTypeSettingsPanel } from \"./\";\nimport { useState } from \"@wordpress/element\";\n\nexport const PostTypesSettingsPanels = function (props) {\n const [currentTab, setCurrentTab] = useState(Object.keys(props.settings)[0]);\n\n let panels = [];\n\n for (const [postType, postTypeSettings] of Object.entries(props.settings)) {\n panels.push(\n \n );\n }\n\n const onSelectTab = (event) => {\n event.preventDefault();\n setCurrentTab(event.target.hash.replace('#', '').replace('-panel', ''));\n }\n\n let tabs = [];\n let selected = false;\n\n for (const [postType, postTypeSettings] of Object.entries(props.settings)) {\n selected = currentTab === postType;\n tabs.push(\n \n {postTypeSettings.label}\n \n );\n }\n\n return (\n
\n \n {panels}\n
\n );\n}\n\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\nimport { SelectControl as WPSelectControl } from \"@wordpress/components\";\n\nexport const SelectControl = function (props) {\n const onChange = (value) => {\n props.onChange(value);\n };\n\n return (\n \n {props.options.length === 0 && (\n
{props.noItemFoundMessage}
\n )}\n\n {props.options.length > 0 && (\n \n )}\n\n {props.children}\n\n

{props.description}

\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const SettingRow = function (props) {\n return (\n \n \n \n \n \n {props.children}\n \n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsFieldset = function (props) {\n return (\n
\n {props.legend}\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsForm = function (props) {\n return (\n
\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\n\nexport const SettingsSection = function (props) {\n return (\n \n

{props.title}

\n

{props.description}

\n {props.children}\n
\n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SettingsTable = function (props) {\n return (\n \n \n {props.bodyChildren}\n \n
\n )\n}\n","/*\n * Copyright (c) 2024. PublishPress, All rights reserved.\n */\nexport const Spinner = function (props) {\n return (\n
\n );\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const SubmitButton = function (props) {\n return (\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment } from \"@wordpress/element\";\nimport { TextControl as WPTextControl } from \"@wordpress/components\";\nimport { Spinner } from \"./\";\n\nexport const TextControl = function (props) {\n let description;\n\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n\n const onChange = function (value) {\n if (props.onChange) {\n props.onChange(value);\n }\n };\n\n let className = props.className ? props.className : '';\n\n if (props.loading) {\n className += ' publishpress-future-loading publishpress-future-loading-input';\n }\n\n return (\n \n
\n \n\n {props.loading && }\n\n {description}\n
\n
\n )\n}\n","import { Button } from '@wordpress/components';\n\nexport const ToggleArrowButton = function (props) {\n const onClick = function () {\n if (props.onClick) {\n props.onClick();\n }\n };\n\n const iconExpanded = props.iconExpanded ? props.iconExpanded : 'arrow-up-alt2';\n const iconCollapsed = props.iconCollapsed ? props.iconCollapsed : 'arrow-down-alt2';\n\n const icon = props.isExpanded ? iconExpanded : iconCollapsed;\n\n const title = props.isExpanded ? props.titleExpanded : props.titleCollapsed;\n\n return (\n \n )\n}\n","import { ToggleArrowButton } from \"./ToggleArrowButton\";\nimport { DateTimePicker } from \"./DateTimePicker\";\nimport { Fragment, useEffect } from \"@wordpress/element\";\n\nexport const ToggleCalendarDatePicker = (\n {\n isExpanded,\n strings,\n onToggleCalendar,\n currentDate,\n onChangeDate,\n is12Hour,\n startOfWeek\n }\n) => {\n useEffect(() => {\n // Move the element of the toggle button to between the time and date elements.\n const toggleButtonElement = document.querySelector('.future-action-calendar-toggle');\n\n if (! toggleButtonElement) {\n return;\n }\n\n const dateTimeElement = toggleButtonElement.nextElementSibling;\n\n if (! dateTimeElement) {\n return;\n }\n\n const timeElement = dateTimeElement.querySelector('.components-datetime__time');\n\n if (! timeElement) {\n return;\n }\n\n const dateElement = timeElement.nextSibling;\n\n if (! dateElement) {\n return;\n }\n\n dateTimeElement.insertBefore(toggleButtonElement, dateElement)\n });\n\n return (\n \n \n\n \n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\nimport { Fragment, useState, useEffect } from \"@wordpress/element\";\nimport { FormTokenField } from \"@wordpress/components\";\n\nexport const TokensControl = (props) => {\n const [stringValue, setStringValue] = useState('');\n\n useEffect(() => {\n if (props.value) {\n setStringValue(props.value.join(','));\n }\n }, [props.value]);\n\n let description;\n\n if (props.description) {\n if (props.unescapedDescription) {\n // If using this option, the HTML has to be escaped before injected into the JS interface.\n description =

;\n } else {\n description =

{props.description}

;\n }\n }\n\n const onChange = (value) => {\n if (props.onChange) {\n props.onChange(value);\n }\n\n if (typeof value === 'object') {\n setStringValue(value.join(','));\n } else {\n setStringValue('');\n }\n }\n\n const value = props.value ? props.value : [];\n \n return (\n \n \n \n\n {description}\n \n )\n}\n","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nexport const TrueFalseControl = function (props) {\n const { Fragment } = wp.element;\n\n const onChange = (e) => {\n if (props.onChange) {\n props.onChange(\n e.target.value === props.trueValue && jQuery(e.target).is(':checked')\n );\n // Check only the true radio... using the field name? or directly the ID\n }\n };\n\n return (\n \n \n\n \n   \n \n {props.falseLabel}\n\n

{props.description}

\n
\n )\n}\n","export { ButtonsPanel } from \"./ButtonsPanel\";\nexport { FutureActionPanel } from \"./FutureActionPanel\";\nexport { FutureActionPanelBlockEditor } from \"./FutureActionPanelBlockEditor\";\nexport { FutureActionPanelClassicEditor } from \"./FutureActionPanelClassicEditor\";\nexport { FutureActionPanelQuickEdit } from \"./FutureActionPanelQuickEdit\";\nexport { FutureActionPanelBulkEdit } from \"./FutureActionPanelBulkEdit\";\nexport { PostTypeSettingsPanel } from \"./PostTypeSettingsPanel\";\nexport { PostTypesSettingsPanels } from \"./PostTypesSettingsPanels\";\nexport { SettingRow } from \"./SettingRow\";\nexport { SettingsFieldset } from \"./SettingsFieldset\";\nexport { SettingsForm } from \"./SettingsForm\";\nexport { SettingsSection } from \"./SettingsSection\";\nexport { SettingsTable } from \"./SettingsTable\";\nexport { SubmitButton } from \"./SubmitButton\";\nexport { CheckboxControl } from \"./CheckboxControl\";\nexport { SelectControl } from \"./SelectControl\";\nexport { TextControl } from \"./TextControl\";\nexport { TokensControl } from \"./TokensControl\";\nexport { NonceControl } from \"./NonceControl\";\nexport { TrueFalseControl } from \"./TrueFalseControl\";\nexport { Spinner } from \"./Spinner\";\nexport { DateOffsetPreview } from \"./DateOffsetPreview\";\n","export const getCurrentTimeInSeconds = () => {\n return normalizeUnixTimeToSeconds(new Date().getTime());\n}\n\nexport const getCurrentTimeAsTimestamp = () => {\n return formatUnixTimeToTimestamp(getCurrentTimeInSeconds());\n}\n\nexport const formatUnixTimeToTimestamp = (unixTimestamp) => {\n const date = new Date(\n normalizeUnixTimeToSeconds(unixTimestamp)\n );\n\n const year = date.getFullYear();\n const month = (\"0\" + (date.getMonth() + 1)).slice(-2); // Months are zero-based\n const day = (\"0\" + date.getDate()).slice(-2);\n const hours = (\"0\" + date.getHours()).slice(-2);\n const minutes = (\"0\" + date.getMinutes()).slice(-2);\n const seconds = (\"0\" + date.getSeconds()).slice(-2);\n\n return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;\n}\n\nexport const formatTimestampToUnixTime = (time) => {\n const date = new Date(time);\n\n return normalizeUnixTimeToSeconds(date.getTime());\n}\n\nexport const timeIsInSeconds = (time) => {\n return parseInt(time).toString().length <= 10;\n}\n\nexport const normalizeUnixTimeToSeconds = (time) => {\n time = parseInt(time);\n\n return timeIsInSeconds() ? time : time / 1000;\n}\n\nexport const normalizeUnixTimeToMilliseconds = (time) => {\n time = parseInt(time);\n\n return timeIsInSeconds() ? time * 1000 : time;\n}\n","export const compact = (array) => {\n if (!array) {\n return [];\n }\n\n if (! Array.isArray(array) && typeof array === 'object') {\n array = Object.values(array);\n }\n\n return array.filter((item) => {\n return item !== null && item !== undefined && item !== '';\n });\n}\n\nexport const debugLogFactory = (config) => {\n return (description, ...message) => {\n if (console && config.isDebugEnabled) {\n console.debug('[Future]', description, ...message);\n }\n }\n}\n\nexport const isGutenbergEnabled = () => {\n return document.body.classList.contains('block-editor-page');\n}\n\nexport const getElementByName = (name) => {\n return document.getElementsByName(name)[0];\n}\n\nexport const getFieldByName = (name, postId) => {\n return document.querySelector(`#the-list tr#post-${postId} .column-expirationdate input#future_action_${name}-${postId}`);\n}\n\nexport const getFieldValueByName = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field) {\n return null;\n }\n\n return field.value;\n};\n\nexport const getFieldValueByNameAsArrayOfInt = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field || !field.value) {\n return [];\n }\n\n if (typeof field.value === 'number') {\n field.value = field.value.toString();\n }\n\n return field.value.split(',').map(term => parseInt(term));\n};\n\nexport const getFieldValueByNameAsBool = (name, postId) => {\n const field = getFieldByName(name, postId);\n\n if (!field) {\n return false;\n }\n\n return field.value === '1' || field.value === 'true';\n}\n\nexport const getActionSettingsFromColumnData = (postId) => {\n const columnData = document.querySelector(`#post-expire-column-${postId}`);\n\n if (!columnData) {\n return {};\n }\n\n return {\n enabled: columnData.dataset.actionEnabled === '1',\n action: columnData.dataset.actionType,\n date: columnData.dataset.actionDate,\n dateUnix: columnData.dataset.actionDateUnix,\n taxonomy: columnData.dataset.actionTaxonomy,\n terms: columnData.dataset.actionTerms,\n newStatus: columnData.dataset.actionNewStatus,\n };\n}\n\n/**\n * This function is used to determine if a value is a number, including strings.\n *\n * @param {*} value\n * @returns\n */\nexport const isNumber = (value) => {\n return !isNaN(value);\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.publishpress-future-date-preview .publishpress-future-date-preview-value {\n font-family: monospace;\n background-color: #e7e7e7;\n padding: 2px 4px;\n}\n\n.publishpress-future-date-preview.compact .publishpress-future-date-preview-label {\n display: block;\n}\n\n.publishpress-future-date-preview.compact {\n margin-bottom: 8px;\n}\n\n.publishpress-future-date-preview.compact h4 {\n font-size: 11px;\n font-weight: 500;\n line-height: 1.4;\n text-transform: uppercase;\n display: inline-block;\n margin-bottom: calc(8px);\n padding: 0px;\n flex-shrink: 0;\n margin-right: 12px;\n max-width: 75%;\n margin-top: 0;\n}\n\n.publishpress-future-notice.publishpress-future-notice-error {\n color: #dc3232;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./assets/jsx/components/css/dateOffsetPreview.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,sBAAsB;IACtB,yBAAyB;IACzB,gBAAgB;AACpB;;AAEA;IACI,cAAc;AAClB;;AAEA;IACI,kBAAkB;AACtB;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,yBAAyB;IACzB,qBAAqB;IACrB,wBAAwB;IACxB,YAAY;IACZ,cAAc;IACd,kBAAkB;IAClB,cAAc;IACd,aAAa;AACjB;;AAEA;IACI,cAAc;AAClB\",\"sourcesContent\":[\".publishpress-future-date-preview .publishpress-future-date-preview-value {\\n font-family: monospace;\\n background-color: #e7e7e7;\\n padding: 2px 4px;\\n}\\n\\n.publishpress-future-date-preview.compact .publishpress-future-date-preview-label {\\n display: block;\\n}\\n\\n.publishpress-future-date-preview.compact {\\n margin-bottom: 8px;\\n}\\n\\n.publishpress-future-date-preview.compact h4 {\\n font-size: 11px;\\n font-weight: 500;\\n line-height: 1.4;\\n text-transform: uppercase;\\n display: inline-block;\\n margin-bottom: calc(8px);\\n padding: 0px;\\n flex-shrink: 0;\\n margin-right: 12px;\\n max-width: 75%;\\n margin-top: 0;\\n}\\n\\n.publishpress-future-notice.publishpress-future-notice-error {\\n color: #dc3232;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/postcss-loader/dist/cjs.js!./dateOffsetPreview.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/postcss-loader/dist/cjs.js!./dateOffsetPreview.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;","module.exports = ReactDOM;","module.exports = publishpressFutureSettingsConfig;","module.exports = wp;","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.element;","module.exports = wp.hooks;","module.exports = wp.plugins;","module.exports = wp.url;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nc = undefined;","/*\n * Copyright (c) 2023. PublishPress, All rights reserved.\n */\n\nimport {\n SettingsForm,\n SettingsSection,\n PostTypesSettingsPanels,\n SubmitButton,\n ButtonsPanel,\n NonceControl\n} from \"./components\";\n\nimport { StrictMode, useState, useEffect } from \"@wordpress/element\";\n\nimport { createRoot } from 'react-dom/client';\n\nimport {\n nonce,\n referrer,\n settings,\n expireTypeList,\n taxonomiesList,\n text,\n statusesList\n} from \"&config.settings-post-types\";\nimport { render } from \"react-dom\";\n\nconst SettingsFormPanel = (props) => {\n const [formValidationStatusPerPostType, setFormValidationStatusPerPostType] = useState({});\n const [pendingValidationPerPostType, setPendingValidationPerPostType] = useState({});\n const [allValid, setAllValid] = useState(true);\n const [hasNoPendingValidation, setHasNoPendingValidation] = useState(true);\n\n useEffect(() => {\n let allFormsAreValid = true;\n\n for (const [postType, isValidForPostType] of Object.entries(formValidationStatusPerPostType)) {\n if (!isValidForPostType) {\n allFormsAreValid = false;\n break;\n }\n }\n\n setAllValid(allFormsAreValid);\n }, [formValidationStatusPerPostType]);\n\n useEffect(() => {\n let hasNoPendingValidation = true;\n\n for (const [postType, hasPending] of Object.entries(pendingValidationPerPostType)) {\n if (hasPending) {\n hasNoPendingValidation = false;\n break;\n }\n }\n\n setHasNoPendingValidation(hasNoPendingValidation);\n }, [pendingValidationPerPostType]);\n\n const onDataIsValid = (postType) => {\n formValidationStatusPerPostType[postType] = true;\n setFormValidationStatusPerPostType({...formValidationStatusPerPostType});\n }\n\n const onDataIsInvalid = (postType) => {\n formValidationStatusPerPostType[postType] = false;\n setFormValidationStatusPerPostType({...formValidationStatusPerPostType});\n }\n\n const onValidationStarted = (postType) => {\n pendingValidationPerPostType[postType] = true;\n setPendingValidationPerPostType({...pendingValidationPerPostType});\n }\n\n const onValidationFinished = (postType) => {\n pendingValidationPerPostType[postType] = false;\n setPendingValidationPerPostType({...pendingValidationPerPostType});\n }\n\n const saveButtonText = hasNoPendingValidation ? text.saveChanges : text.saveChangesPendingValidation;\n\n return (\n \n \n \n \n \n \n\n \n \n \n \n \n )\n};\n\nconst container = document.getElementById(\"publishpress-future-settings-post-types\");\nconst component = ();\n\ncreateRoot(container).render(component);\n"],"names":["ButtonsPanel","props","children","CheckboxControl","description","useState","checked","setChecked","unescapedDescription","className","dangerouslySetInnerHTML","__html","Fragment","label","name","id","onChange","value","require","DateOffsetPreview","offset","labelDatePreview","labelOffsetPreview","setValidationErrorCallback","setHasPendingValidationCallback","setHasValidDataCallback","compactView","offsetPreview","setOffsetPreview","currentTime","setCurrentTime","apiRequestControllerRef","useRef","AbortController","useEffect","controller","current","abort","signal","apiFetch","path","addQueryArgs","method","data","then","result","isValid","message","preview","catch","error","validateDateOffset","compactClass","DateTimePicker","currentDate","is12Hour","startOfWeek","normalizeUnixTimeToMilliseconds","__nextRemoveHelpButton","wp","components","PanelRow","SelectControl","FormTokenField","Spinner","BaseControl","element","decodeEntities","htmlEntities","url","useSelect","useDispatch","FutureActionPanel","select","action","storeName","getAction","date","getDate","enabled","getEnabled","terms","getTerms","taxonomy","getTaxonomy","taxonomyName","getTaxonomyName","termsListByName","getTermsListByName","termsListById","getTermsListById","isFetchingTerms","getIsFetchingTerms","calendarIsVisible","getCalendarIsVisible","hasValidData","getHasValidData","newStatus","getNewStatus","validationError","setValidationError","setAction","setDate","setEnabled","setTerms","setTaxonomy","setTermsListByName","setTermsListById","setTaxonomyName","setIsFetchingTerms","setCalendarIsVisible","setHasValidData","setNewStatus","insertTerm","term","count","link","slug","callOnChangeData","attribute","onChangeData","handleEnabledChange","isChecked","fetchTerms","forEach","getCalendarIsVisibleFromStorage","localStorage","getItem","context","autoEnableAndHideCheckbox","hideCalendarByDefault","isCleanNewPost","setItem","onDataIsValid","onDataIsInvalid","selectedTerms","length","compact","map","mapTermsListById","termsListByNameKeys","Object","keys","is24hour","panelClass","contentPanelClass","datePanelClass","timeFormat","actionsSelectOptions","filter","item","indexOf","HelpText","string","href","target","parts","split","push","shift","before","after","key","replaceCurlyBracketsWithLink","strings","timezoneSettingsHelp","displayTaxonomyField","String","includes","termsFieldLabel","newTerms","replace","removeTerms","addTerms","valid","errorActionRequired","errorDateRequired","Date","errorDateInPast","isTermRequired","noTermIsSelected","errorTermsRequired","validateData","SlotFillProvider","type","FutureActionPanelTop","Slot","fillProps","enablePostExpiration","options","FutureActionPanelAfterActionField","statusesSelectOptions","loading","noTaxonomyFound","noTermsFound","suggestions","mapTermsListByName","placeholder","addTermsPlaceholder","maxSuggestions","onFocus","e","jQuery","addClass","__experimentalExpandOnFocus","__experimentalAutoSelectFirstMatch","ToggleCalendarDatePicker","onChangeDate","onToggleCalendar","isExpanded","PluginArea","scope","Fill","FutureActionPanelBlockEditor","PluginDocumentSettingPanel","editPost","getEditedPostAttribute","lockPostSaving","unlockPostSaving","title","panelTitle","initialOpen","postTypeDefaultConfig","autoEnable","postType","store","newAttribute","getExtraData","publishpress_future_action","entries","editPostAttribute","FutureActionPanelBulkEdit","changeAction","getChangeAction","setChangeAction","termsString","join","noChange","changeAdd","addOnly","changeOnly","removeOnly","prop","futureActionUpdate","isNewPost","getElementByName","nonce","FutureActionPanelClassicEditor","getTimezoneOffset","document","getElementsByName","getElementValueByName","parseInt","getTermsFromElementByName","FutureActionPanelQuickEdit","NonceControl","referrer","PostTypeSettingsPanel","originalExpireTypeList","expireTypeList","settings","postTypeTaxonomy","setPostTypeTaxonomy","termOptions","setTermOptions","termsSelectIsLoading","setTermsSelectIsLoading","setSelectedTerms","howToExpire","settingHowToExpire","setSettingHowToExpire","active","isActive","setIsActive","defaultExpireOffset","expireOffset","setExpireOffset","emailNotification","setEmailNotification","autoEnabled","isAutoEnabled","setIsAutoEnabled","taxonomyLabel","setTaxonomyLabel","howToExpireList","setHowToExpireList","hasPendingValidation","setHasPendingValidation","globalDefaultExpireOffset","taxonomyRelatedActions","newExpireTypeList","taxonomiesList","settingsTermsOptions","option","expireType","toLowerCase","onValidationStarted","onValidationFinished","termOptionsLabels","settingsRows","SettingRow","text","fieldActive","fieldActiveLabel","fieldAutoEnable","fieldAutoEnableLabel","fieldTaxonomy","selected","noItemFoundMessage","noItemsfound","fieldTaxonomyDescription","fieldHowToExpire","fieldHowToExpireDescription","statusesList","TokensControl","fieldTerm","isLoading","fieldTermDescription","expandOnFocus","autoSelectFirstMatch","fieldDefaultDateTimeOffset","TextControl","fieldDefaultDateTimeOffsetDescription","datePreview","datePreviewCurrent","datePreviewComputed","fieldWhoToNotify","fieldWhoToNotifyDescription","applyFilters","fieldSetClassNames","isVisible","SettingsTable","bodyChildren","PostTypesSettingsPanels","currentTab","setCurrentTab","panels","postTypeSettings","legend","onSelectTab","event","preventDefault","hash","tabs","onClick","valign","htmlFor","SettingsFieldset","SettingsForm","SettingsSection","SubmitButton","disabled","ToggleArrowButton","iconExpanded","iconCollapsed","icon","titleExpanded","titleCollapsed","Button","isSmall","toggleButtonElement","querySelector","dateTimeElement","nextElementSibling","timeElement","dateElement","nextSibling","insertBefore","hideCalendar","showCalendar","stringValue","setStringValue","TrueFalseControl","trueValue","is","defaultChecked","trueLabel","falseValue","falseLabel","getCurrentTimeInSeconds","normalizeUnixTimeToSeconds","getTime","formatUnixTimeToTimestamp","getCurrentTimeAsTimestamp","unixTimestamp","getFullYear","getMonth","slice","getHours","getMinutes","getSeconds","timeIsInSeconds","formatTimestampToUnixTime","time","toString","getFieldByName","array","Array","isArray","values","debugLogFactory","config","console","isDebugEnabled","debug","isGutenbergEnabled","body","classList","contains","postId","getFieldValueByName","field","getFieldValueByNameAsArrayOfInt","getFieldValueByNameAsBool","getActionSettingsFromColumnData","columnData","dataset","actionEnabled","actionType","actionDate","dateUnix","actionDateUnix","actionTaxonomy","actionTerms","actionNewStatus","isNumber","isNaN","___CSS_LOADER_EXPORT___","module","exports","cssWithMappingToString","list","this","content","needLayer","concat","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","sourceMapping","m","createRoot","hydrateRoot","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","stylesInDOM","getIndexByIdentifier","identifier","modulesToDom","idCountMap","identifiers","base","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","styleTarget","window","HTMLIFrameElement","contentDocument","head","getTarget","Error","appendChild","createElement","attributes","styleElement","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode","ReactDOM","publishpressFutureSettingsConfig","hooks","plugins","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","prototype","hasOwnProperty","call","r","Symbol","toStringTag","nc","container","getElementById","component","formValidationStatusPerPostType","setFormValidationStatusPerPostType","pendingValidationPerPostType","setPendingValidationPerPostType","allValid","setAllValid","hasNoPendingValidation","setHasNoPendingValidation","allFormsAreValid","saveButtonText","saveChanges","saveChangesPendingValidation","StrictMode","settingsSectionTitle","settingsSectionDescription","render"],"sourceRoot":""} \ No newline at end of file diff --git a/assets/jsx/block-editor.jsx b/assets/jsx/block-editor.jsx index 5c412066e..5140e19db 100644 --- a/assets/jsx/block-editor.jsx +++ b/assets/jsx/block-editor.jsx @@ -11,7 +11,8 @@ import { taxonomyName, postTypeDefaultConfig, defaultDate, - statusesSelectOptions + statusesSelectOptions, + hideCalendarByDefault } from "&config.block-editor"; const storeName = 'publishpress-future/future-action'; @@ -41,7 +42,9 @@ const BlockEditorFutureActionPlugin = () => { storeName={storeName} strings={strings} taxonomyName={taxonomyName} - postTypeDefaultConfig={postTypeDefaultConfig} /> + postTypeDefaultConfig={postTypeDefaultConfig} + hideCalendarByDefault={hideCalendarByDefault} + /> ); } diff --git a/assets/jsx/bulk-edit.jsx b/assets/jsx/bulk-edit.jsx index 9de4a8df9..0f14dd1f1 100644 --- a/assets/jsx/bulk-edit.jsx +++ b/assets/jsx/bulk-edit.jsx @@ -1,6 +1,6 @@ import { FutureActionPanelBulkEdit } from './components'; import { createStore } from './data'; -import { createRoot } from '@wordpress/element'; +import { createRoot } from 'react-dom/client'; import { select, dispatch } from '@wordpress/data'; import { inlineEditPost } from "&window"; import { @@ -15,7 +15,8 @@ import { strings, taxonomyName, nonce, - statusesSelectOptions + statusesSelectOptions, + hideCalendarByDefault } from "&config.bulk-edit"; const storeName = 'publishpress-future/future-action-bulk-edit'; @@ -92,6 +93,7 @@ inlineEditPost.setBulk = function (id) { strings={strings} taxonomyName={taxonomyName} nonce={nonce} + hideCalendarByDefault={hideCalendarByDefault} /> ); diff --git a/assets/jsx/classic-editor.jsx b/assets/jsx/classic-editor.jsx index d0d6b9b53..677754ed7 100644 --- a/assets/jsx/classic-editor.jsx +++ b/assets/jsx/classic-editor.jsx @@ -1,8 +1,8 @@ import { FutureActionPanelClassicEditor } from './components'; import { createStore } from './data'; import { isGutenbergEnabled } from './utils'; -import { createRoot } from '@wordpress/element'; import { select } from '@wordpress/data'; +import { createRoot } from 'react-dom/client'; import { postType, isNewPost, @@ -14,9 +14,9 @@ import { taxonomyName, postTypeDefaultConfig, defaultDate, - statusesSelectOptions + statusesSelectOptions, + hideCalendarByDefault } from "&config.classic-editor"; -import { render } from "react-dom"; if (! isGutenbergEnabled()) { const storeName = 'publishpress-future/future-action'; @@ -48,6 +48,7 @@ if (! isGutenbergEnabled()) { startOfWeek={startOfWeek} strings={strings} taxonomyName={taxonomyName} + hideCalendarByDefault={hideCalendarByDefault} /> ); diff --git a/assets/jsx/components/DateOffsetPreview.jsx b/assets/jsx/components/DateOffsetPreview.jsx new file mode 100644 index 000000000..a39135c2f --- /dev/null +++ b/assets/jsx/components/DateOffsetPreview.jsx @@ -0,0 +1,99 @@ +import { + useState, + useEffect, + useRef, + Fragment +} from '@wordpress/element'; +import { addQueryArgs } from '@wordpress/url'; +import { apiFetch } from '&wp'; + +require('./css/dateOffsetPreview.css'); + +export const DateOffsetPreview = ({ + offset, + label, + labelDatePreview, + labelOffsetPreview, + setValidationErrorCallback, + setHasPendingValidationCallback, + setHasValidDataCallback, + compactView = false +}) => { + const [offsetPreview, setOffsetPreview] = useState(''); + const [currentTime, setCurrentTime] = useState(); + + const apiRequestControllerRef = useRef(new AbortController()); + + const validateDateOffset = () => { + if (offset) { + const controller = apiRequestControllerRef.current; + + if (controller) { + controller.abort(); + } + + apiRequestControllerRef.current = new AbortController(); + const { signal } = apiRequestControllerRef.current; + + setHasPendingValidationCallback(true); + + apiFetch({ + path: addQueryArgs(`publishpress-future/v1/settings/validate-expire-offset`), + method: 'POST', + data: { + offset + }, + signal, + }).then((result) => { + setHasPendingValidationCallback(false); + + setHasValidDataCallback(result.isValid); + setValidationErrorCallback(result.message); + + if (result.isValid) { + setOffsetPreview(result.preview); + setCurrentTime(result.currentTime); + } else { + setOffsetPreview(''); + } + }).catch((error) => { + if (error.name === 'AbortError') { + return; + } + + setHasPendingValidationCallback(false); + setHasValidDataCallback(false); + setValidationErrorCallback(error.message); + setOffsetPreview(''); + }); + } + } + + useEffect(() => { + validateDateOffset(); + }, [offset]); + + const compactClass = compactView ? ' compact' : ''; + + return ( + + { offset && ( +
+

{ label }

+
+
+ { labelDatePreview }: + {currentTime} +
+
+ { labelOffsetPreview }: + {offsetPreview} +
+
+
+ )} +
+ ) +} + +export default DateOffsetPreview; diff --git a/assets/jsx/components/FutureActionPanel.jsx b/assets/jsx/components/FutureActionPanel.jsx index 3e73df017..72b9800b3 100644 --- a/assets/jsx/components/FutureActionPanel.jsx +++ b/assets/jsx/components/FutureActionPanel.jsx @@ -16,18 +16,35 @@ const { const { apiFetch } = wp; export const FutureActionPanel = (props) => { - const action = useSelect((select) => select(props.storeName).getAction(), []); - const date = useSelect((select) => select(props.storeName).getDate(), []); - const enabled = useSelect((select) => select(props.storeName).getEnabled(), []); - const terms = useSelect((select) => select(props.storeName).getTerms(), []); - const taxonomy = useSelect((select) => select(props.storeName).getTaxonomy(), []); - const taxonomyName = useSelect((select) => select(props.storeName).getTaxonomyName(), []); - const termsListByName = useSelect((select) => select(props.storeName).getTermsListByName(), []); - const termsListById = useSelect((select) => select(props.storeName).getTermsListById(), []); - const isFetchingTerms = useSelect((select) => select(props.storeName).getIsFetchingTerms(), []); - const calendarIsVisible = useSelect((select) => select(props.storeName).getCalendarIsVisible(), []); - const hasValidData = useSelect((select) => select(props.storeName).getHasValidData(), []); - const newStatus = useSelect((select) => select(props.storeName).getNewStatus(), []); + const { + action, + date, + enabled, + terms, + taxonomy, + taxonomyName, + termsListByName, + termsListById, + isFetchingTerms, + calendarIsVisible, + hasValidData, + newStatus, + } = useSelect((select) => { + return { + action: select(props.storeName).getAction(), + date: select(props.storeName).getDate(), + enabled: select(props.storeName).getEnabled(), + terms: select(props.storeName).getTerms(), + taxonomy: select(props.storeName).getTaxonomy(), + taxonomyName: select(props.storeName).getTaxonomyName(), + termsListByName: select(props.storeName).getTermsListByName(), + termsListById: select(props.storeName).getTermsListById(), + isFetchingTerms: select(props.storeName).getIsFetchingTerms(), + calendarIsVisible: select(props.storeName).getCalendarIsVisible(), + hasValidData: select(props.storeName).getHasValidData(), + newStatus: select(props.storeName).getNewStatus(), + }; + }); const [validationError, setValidationError] = useState(''); @@ -178,7 +195,7 @@ export const FutureActionPanel = (props) => { if (getCalendarIsVisibleFromStorage() === null) { setCalendarIsVisible(props.calendarIsVisible); } else { - setCalendarIsVisible(getCalendarIsVisibleFromStorage() === '1'); + setCalendarIsVisible(getCalendarIsVisibleFromStorage() === '1' && ! props.hideCalendarByDefault); } // We need to get the value directly from the props because the value from the store is not updated yet @@ -347,6 +364,7 @@ export const FutureActionPanel = (props) => { label={props.strings.enablePostExpiration} checked={enabled || false} onChange={handleEnabledChange} + className="future-action-enable-checkbox" /> )} @@ -359,6 +377,7 @@ export const FutureActionPanel = (props) => { value={action} options={actionsSelectOptions} onChange={handleActionChange} + className="future-action-select-action" /> @@ -371,6 +390,7 @@ export const FutureActionPanel = (props) => { options={props.statusesSelectOptions} value={newStatus} onChange={handleNewStatusChange} + className="future-action-select-new-status" /> } @@ -413,6 +433,7 @@ export const FutureActionPanel = (props) => { suggestions={termsListByNameKeys} onChange={handleTermsChange} placeholder={props.strings.addTermsPlaceholder} + className="future-action-terms" maxSuggestions={1000} onFocus={forceIgnoreAutoSubmitOnEnter} __experimentalExpandOnFocus={true} diff --git a/assets/jsx/components/FutureActionPanelBlockEditor.jsx b/assets/jsx/components/FutureActionPanelBlockEditor.jsx index e113760c8..3c5a0e950 100644 --- a/assets/jsx/components/FutureActionPanelBlockEditor.jsx +++ b/assets/jsx/components/FutureActionPanelBlockEditor.jsx @@ -78,6 +78,7 @@ export const FutureActionPanelBlockEditor = (props) => { storeName={props.storeName} strings={props.strings} onDataIsValid={onDataIsValid} + hideCalendarByDefault={props.hideCalendarByDefault} onDataIsInvalid={onDataIsInvalid} /> diff --git a/assets/jsx/components/FutureActionPanelBulkEdit.jsx b/assets/jsx/components/FutureActionPanelBulkEdit.jsx index 2446bc46d..8cfc50293 100644 --- a/assets/jsx/components/FutureActionPanelBulkEdit.jsx +++ b/assets/jsx/components/FutureActionPanelBulkEdit.jsx @@ -87,6 +87,7 @@ export const FutureActionPanelBulkEdit = (props) => { timeFormat={props.timeFormat} startOfWeek={props.startOfWeek} storeName={props.storeName} + hideCalendarByDefault={props.hideCalendarByDefault} strings={props.strings} /> )} diff --git a/assets/jsx/components/FutureActionPanelClassicEditor.jsx b/assets/jsx/components/FutureActionPanelClassicEditor.jsx index 082348a1f..e2f1d8cc6 100644 --- a/assets/jsx/components/FutureActionPanelClassicEditor.jsx +++ b/assets/jsx/components/FutureActionPanelClassicEditor.jsx @@ -84,6 +84,7 @@ export const FutureActionPanelClassicEditor = (props) => { storeName={props.storeName} strings={props.strings} onDataIsValid={onDataIsValid} + hideCalendarByDefault={props.hideCalendarByDefault} onDataIsInvalid={onDataIsInvalid} /> ); diff --git a/assets/jsx/components/FutureActionPanelQuickEdit.jsx b/assets/jsx/components/FutureActionPanelQuickEdit.jsx index 13edf60cd..4b7d0f0eb 100644 --- a/assets/jsx/components/FutureActionPanelQuickEdit.jsx +++ b/assets/jsx/components/FutureActionPanelQuickEdit.jsx @@ -49,6 +49,7 @@ export const FutureActionPanelQuickEdit = (props) => { storeName={props.storeName} strings={props.strings} onDataIsValid={onDataIsValid} + hideCalendarByDefault={props.hideCalendarByDefault} onDataIsInvalid={onDataIsInvalid} /> {/* Quick edit JS code will save only fields with name inside the edit row */} diff --git a/assets/jsx/components/PostTypeSettingsPanel.jsx b/assets/jsx/components/PostTypeSettingsPanel.jsx index 3d3f58ca1..01fd55d01 100644 --- a/assets/jsx/components/PostTypeSettingsPanel.jsx +++ b/assets/jsx/components/PostTypeSettingsPanel.jsx @@ -4,19 +4,19 @@ import { SettingRow, - SettingsFieldset, SettingsTable, SelectControl, TextControl, TokensControl, CheckboxControl } from './'; -import { useEffect, useState, Fragment, useRef } from '@wordpress/element'; +import { useEffect, useState } from '@wordpress/element'; import { addQueryArgs } from '@wordpress/url'; import { applyFilters } from '@wordpress/hooks'; import { apiFetch } from '&wp'; +import DateOffsetPreview from './DateOffsetPreview'; -const { PanelRow, BaseControl } = wp.components; +const { PanelRow } = wp.components; export const PostTypeSettingsPanel = function (props) { const originalExpireTypeList = props.expireTypeList[props.postType]; @@ -30,15 +30,14 @@ export const PostTypeSettingsPanel = function (props) { const [expireOffset, setExpireOffset] = useState(props.settings.defaultExpireOffset); const [emailNotification, setEmailNotification] = useState(props.settings.emailNotification); const [isAutoEnabled, setIsAutoEnabled] = useState(props.settings.autoEnabled); - const [hasValidData, setHasValidData] = useState(false); + const [hasValidData, setHasValidData] = useState(true); const [validationError, setValidationError] = useState(''); const [taxonomyLabel, setTaxonomyLabel] = useState(''); const [howToExpireList, setHowToExpireList] = useState(originalExpireTypeList); const [newStatus, setNewStatus] = useState(props.settings.newStatus); const [hasPendingValidation, setHasPendingValidation] = useState(false); - const [offsetPreview, setOffsetPreview] = useState(''); - const [currentTime, setCurrentTime] = useState(); - const apiRequestControllerRef = useRef(new AbortController()); + + const offset = expireOffset ? expireOffset : props.settings.globalDefaultExpireOffset; const taxonomyRelatedActions = [ 'category', @@ -75,61 +74,6 @@ export const PostTypeSettingsPanel = function (props) { setIsAutoEnabled(value); } - const validateData = () => { - if (! isActive) { - setValidationError(''); - return true; - } - - const offset = expireOffset ? expireOffset : props.settings.globalDefaultExpireOffset; - - if (offset) { - const controller = apiRequestControllerRef.current; - - if (controller) { - controller.abort(); - } - - apiRequestControllerRef.current = new AbortController(); - const { signal } = apiRequestControllerRef.current; - - setHasPendingValidation(true); - - apiFetch({ - path: addQueryArgs(`publishpress-future/v1/settings/validate-expire-offset`), - method: 'POST', - data: { - offset - }, - signal, - }).then((result) => { - setHasPendingValidation(false); - - setHasValidData(result.isValid); - setValidationError(result.message); - - if (result.isValid) { - setOffsetPreview(result.preview); - setCurrentTime(result.currentTime); - } else { - setOffsetPreview(''); - } - }).catch((error) => { - if (error.name === 'AbortError') { - return; - } - - setHasPendingValidation(false); - setHasValidData(false); - setValidationError(error.message); - setOffsetPreview(''); - }); - } - - setValidationError(''); - return true; - } - useEffect(() => { // Remove items from expireTypeList if related to taxonomies and there is no taxonmoy for the post type if (props.taxonomiesList.length === 0) { @@ -182,10 +126,6 @@ export const PostTypeSettingsPanel = function (props) { }); }, [postTypeTaxonomy]); - useEffect(() => { - setHasValidData(validateData()); - }, [isActive, expireOffset]); - useEffect(() => { if (!taxonomyLabel) { return; @@ -319,21 +259,15 @@ export const PostTypeSettingsPanel = function (props) { onChange={onChangeExpireOffset} /> - {offsetPreview && ( - -

{props.text.datePreview}

-
-
- {props.text.datePreviewCurrent}: - {currentTime} -
-
- {props.text.datePreviewComputed}: - {offsetPreview} -
-
-
- )} + ); @@ -352,8 +286,10 @@ export const PostTypeSettingsPanel = function (props) { settingsRows = applyFilters('expirationdate_settings_posttype', settingsRows, props, isActive, useState); + const fieldSetClassNames = props.isVisible ? 'pe-settings-fieldset' : 'pe-settings-fieldset hidden'; + return ( - +
{! hasValidData && ( @@ -363,6 +299,6 @@ export const PostTypeSettingsPanel = function (props) {
)} -
+ ); } diff --git a/assets/jsx/components/PostTypesSettingsPanels.jsx b/assets/jsx/components/PostTypesSettingsPanels.jsx index b24b76a6d..8b3fa1018 100644 --- a/assets/jsx/components/PostTypesSettingsPanels.jsx +++ b/assets/jsx/components/PostTypesSettingsPanels.jsx @@ -3,8 +3,11 @@ */ import { PostTypeSettingsPanel } from "./"; +import { useState } from "@wordpress/element"; export const PostTypesSettingsPanels = function (props) { + const [currentTab, setCurrentTab] = useState(Object.keys(props.settings)[0]); + let panels = []; for (const [postType, postTypeSettings] of Object.entries(props.settings)) { @@ -22,9 +25,39 @@ export const PostTypesSettingsPanels = function (props) { onDataIsInvalid={props.onDataIsInvalid} onValidationStarted={props.onValidationStarted} onValidationFinished={props.onValidationFinished} + isVisible={currentTab === postType} /> ); } - return (panels); + const onSelectTab = (event) => { + event.preventDefault(); + setCurrentTab(event.target.hash.replace('#', '').replace('-panel', '')); + } + + let tabs = []; + let selected = false; + + for (const [postType, postTypeSettings] of Object.entries(props.settings)) { + selected = currentTab === postType; + tabs.push( + + {postTypeSettings.label} + + ); + } + + return ( +
+ + {panels} +
+ ); } + diff --git a/assets/jsx/components/SettingsFieldset.jsx b/assets/jsx/components/SettingsFieldset.jsx index 516f68352..4833f6977 100644 --- a/assets/jsx/components/SettingsFieldset.jsx +++ b/assets/jsx/components/SettingsFieldset.jsx @@ -4,7 +4,7 @@ export const SettingsFieldset = function (props) { return ( -
+
{props.legend} {props.children}
diff --git a/assets/jsx/components/css/dateOffsetPreview.css b/assets/jsx/components/css/dateOffsetPreview.css new file mode 100644 index 000000000..b7a2f95db --- /dev/null +++ b/assets/jsx/components/css/dateOffsetPreview.css @@ -0,0 +1,31 @@ +.publishpress-future-date-preview .publishpress-future-date-preview-value { + font-family: monospace; + background-color: #e7e7e7; + padding: 2px 4px; +} + +.publishpress-future-date-preview.compact .publishpress-future-date-preview-label { + display: block; +} + +.publishpress-future-date-preview.compact { + margin-bottom: 8px; +} + +.publishpress-future-date-preview.compact h4 { + font-size: 11px; + font-weight: 500; + line-height: 1.4; + text-transform: uppercase; + display: inline-block; + margin-bottom: calc(8px); + padding: 0px; + flex-shrink: 0; + margin-right: 12px; + max-width: 75%; + margin-top: 0; +} + +.publishpress-future-notice.publishpress-future-notice-error { + color: #dc3232; +} diff --git a/assets/jsx/components/index.jsx b/assets/jsx/components/index.jsx index 7f59af328..d7da254c2 100644 --- a/assets/jsx/components/index.jsx +++ b/assets/jsx/components/index.jsx @@ -19,3 +19,4 @@ export { TokensControl } from "./TokensControl"; export { NonceControl } from "./NonceControl"; export { TrueFalseControl } from "./TrueFalseControl"; export { Spinner } from "./Spinner"; +export { DateOffsetPreview } from "./DateOffsetPreview"; diff --git a/assets/jsx/quick-edit.jsx b/assets/jsx/quick-edit.jsx index ccc2e10b0..16f437ec9 100644 --- a/assets/jsx/quick-edit.jsx +++ b/assets/jsx/quick-edit.jsx @@ -1,7 +1,7 @@ import { FutureActionPanelQuickEdit } from './components'; import { createStore } from './data'; import { getActionSettingsFromColumnData } from './utils'; -import { createRoot } from '@wordpress/element'; +import { createRoot } from 'react-dom/client'; import { select, dispatch } from '@wordpress/data'; import { inlineEditPost } from "&window"; import { @@ -14,7 +14,8 @@ import { strings, taxonomyName, nonce, - statusesSelectOptions + statusesSelectOptions, + hideCalendarByDefault } from "&config.quick-edit"; const storeName = 'publishpress-future/future-action-quick-edit'; @@ -115,6 +116,7 @@ inlineEditPost.edit = function (button, id) { strings={strings} taxonomyName={taxonomyName} nonce={nonce} + hideCalendarByDefault={hideCalendarByDefault} /> ); diff --git a/assets/jsx/settings-general.jsx b/assets/jsx/settings-general.jsx new file mode 100644 index 000000000..19e1846bd --- /dev/null +++ b/assets/jsx/settings-general.jsx @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2023. PublishPress, All rights reserved. + */ + +import { DateOffsetPreview } from "./components"; + +import { + StrictMode, + useState, + useEffect +} from "@wordpress/element"; + +import { createRoot } from 'react-dom/client'; + +import { + text, +} from "&config.settings-general"; + +const SettingsFormPanel = (props) => { + const [isValidForm, setIsValidForm] = useState(true); + const [validationError, setValidationError] = useState(''); + const [hasPendingValidation, setHasPendingValidation] = useState(false); + const [offset, setOffset] = useState(''); + + const onHasValidationError = (errorMessage) => { + if (errorMessage) { + setIsValidForm(false); + setValidationError(errorMessage); + } else { + setIsValidForm(true); + setValidationError(''); + } + } + + const onValidationStarted = (inProgress) => { + setHasPendingValidation(inProgress); + } + + const onValidationFinished = (isValid) => { + setHasPendingValidation(false); + setIsValidForm(isValid); + } + + useEffect(() => { + jQuery('#expired-custom-expiration-date').on('keyup', function () { + setOffset(jQuery(this).val()); + }); + + setOffset(jQuery('#expired-custom-expiration-date').val()); + }, []); + + return ( + + + + {! isValidForm && validationError && ( +
+

{text.error}: {validationError}

+
+ )} +
+ ) +}; + +const container = document.getElementById("expiration-date-preview"); +const component = (); + +createRoot(container).render(component); diff --git a/assets/jsx/settings-post-types.jsx b/assets/jsx/settings-post-types.jsx index 4c2e81128..57b110ac9 100644 --- a/assets/jsx/settings-post-types.jsx +++ b/assets/jsx/settings-post-types.jsx @@ -11,7 +11,9 @@ import { NonceControl } from "./components"; -import { StrictMode, createRoot, useState, useEffect } from "@wordpress/element"; +import { StrictMode, useState, useEffect } from "@wordpress/element"; + +import { createRoot } from 'react-dom/client'; import { nonce, diff --git a/composer.json b/composer.json index 72f854928..ede5a96ee 100644 --- a/composer.json +++ b/composer.json @@ -123,6 +123,10 @@ "php-cs-fixer fix .", "@fix:cs" ], + "prepare": [ + "@gen:lang", + "@build:js" + ], "dbox:up": "pdropbox upload && pdropbox share", "dbox:list": "pdropbox list", "dbox:remove": "pdropbox remove", diff --git a/composer.lock b/composer.lock index 7ae8d04df..7b7f34934 100644 --- a/composer.lock +++ b/composer.lock @@ -5944,12 +5944,12 @@ "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "ea37cb5b5eafaeb4f293819e4eb09822f3b60bdf" + "reference": "d40c7c43014c3c24135fdccb5600b69ca7e46c23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/ea37cb5b5eafaeb4f293819e4eb09822f3b60bdf", - "reference": "ea37cb5b5eafaeb4f293819e4eb09822f3b60bdf", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/d40c7c43014c3c24135fdccb5600b69ca7e46c23", + "reference": "d40c7c43014c3c24135fdccb5600b69ca7e46c23", "shasum": "" }, "require": { @@ -5996,7 +5996,7 @@ "type": "github" } ], - "time": "2024-08-05T20:48:53+00:00" + "time": "2024-08-06T14:21:15+00:00" }, { "name": "sebastian/cli-parser", diff --git a/dev-workspace/docker/Dockerfile b/dev-workspace/docker/Dockerfile index 257712d4b..f898341eb 100644 --- a/dev-workspace/docker/Dockerfile +++ b/dev-workspace/docker/Dockerfile @@ -1,4 +1,14 @@ +ARG NODE_VERSION=18 + +FROM node:$NODE_VERSION-alpine AS node + FROM publishpress/dev-workspace-terminal:generic-4.2.0 ENV PLUGIN_NAME="PublishPress Future" ENV PLUGIN_TYPE="FREE" + +COPY --from=node /usr/lib /usr/lib +COPY --from=node /usr/local/share /usr/local/share +COPY --from=node /usr/local/lib /usr/local/lib +COPY --from=node /usr/local/include /usr/local/include +COPY --from=node /usr/local/bin /usr/local/bin diff --git a/languages/post-expirator-es_ES.mo b/languages/post-expirator-es_ES.mo index 5c86c06ee00a126c708b41ba7f646bd53b4e008d..87c5943402a6fae18c7d0440775ca7f73aa92e8c 100644 GIT binary patch delta 4487 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 JGJ8q0=YOvqDeeFO delta 4415 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 ZK=5p@*WK!A(upZ delta 4419 zcmZ|Sc~F(t8OQO1f*_zMAcBBi;})V)79mO~VhYABQ9u@}UbvB~U|B2|s#xfou{A^{ zOBJ(V?ZlxbHq|sSx2bI$>RzI$u_Sit7~|APjH$K;iFR7kwBH}^JJY|)+~IT1;eF3} z&U2pk1-8B)&~rAxx*Qq!yx}V-z?cNg3sKLQno<9AIL%u6LAVihT`MNxE{wyIScI1` zAJaw~GZHr;AJfLSN!W?gup1{DW0_BBaE}R&G$tBjk&l__^m9=G6k|A+V-(h)?t8*< zJ1X`rRG|AE526A*gu}2G!|(z|u)gV|v66u=Q4=g<_J?o<>W1f0k?%$Ya1_VmS=9A6 zo&FtEK+)`CC{95Io`hO39TnJIr=O37tZxcvXraBh2=}8VzKfywAEzHW#+VWGqmZ@C zL`=sF)b-V<1shP;wO}x|V_k zA;~gnPCp;V(l142svdRr9T3S@`#^S!8@zK$9AHcr7Cs7#C|3I#j?bzd4Pz`R)UuM`(CptEzMc3zKU-L#`7 zei>Cn`>+v@VGd?8s2w-q3GBpjT+JjWu^W}aE%C-Iz^73CUew0^Y|+q}{RNeQzoL$y zACdaq5Rp${5!Fw2lfk}2h6cuEyqPMkL$t;`dPtU%^sLoJn@D3Cr+Z zOu>oC#>~S)EWn+(1h3&DOedN!`~fPEb{vkcpc{LurTPs18t`|%!w-=u4$&`?IZU(Zj2s=>`{|)sxevNF>#6M`e1mo$qVkCB=c6IvQneHnX&GuqZggQ4syMfy7Wy%c!B?;u52K1WV~#QNF&8yY8!E-mpdQ=z zP_OVCsH2`rXFThhWEx7{qo@>@qXMYJ!J|Pf(1K&J4OMI}qXN5$kKusRf0zo^ku5~s zSB%P31;(Nexzs$3mLln)p$wcu725^W_-Cl1yM+oQk^-S#jSCg%GSv0Os0Auf#k&!; zfjtcgZPCwv=3}z1!=Y?!2P&W!7T8b48>pjs8>s=y9HkM$zy}zNAK_%Yib`1s ztIfefn1TJM38pQwYb6cC>E}EBLevp>QAcB81@3gl@8I|7M=aJqFcyC@(a;&aIXJ){ z45*?DUSg*z9yL)CYT_JJpk>&G6_|wAQP)L2YQJcvq5AW&5?7+m{3zz)7Z}6(CiOA< z)wlq|>90iv;KPrx4WB{pQagYF45L3{87~oxLmf>nCSr-xZ$v#!?KlH}ivPefI2?}` zkR46%2O4^O22f`nT4+ynpJOiS4Bbf3W+Q5XQ>Z}CVFX@v`UA+>n&2Y)cS;;8z!KCv zHAuaitwrR2HjN$zS|}E?+?e&)T5KJ;_Pqp-p8nw_CF$f@hSR!_(QB+ zWxta9QAe7?Bh-Yy!&;o>w*PqT!gch|qiQGHDmUi4G*04X%&f3~`yIq&`o}R8`%x+T z3ac>3W2bx{D%FROteev~2NNE*Q(b}+>DMFmX}04nyo_VfdVh`mj=qK}o*|T~&eDZZ zn1WL<4^{o^Q9Jt)s=EJ$)TfE?+K-tVx6(g?D$@M5_7N4J7A!?&xE^_mLe0-;=$FKP zfAgqqVPVyqTzQ^G&*L7S_pOBF$f@NUHmq%GY-;e9d)72o*Vp;VJq_!8uF86^&sA67 z=<;r=_BAH^E0RA6@Ry|A3moy_%+!qKshL@`W@V+$?r>*J7|uwhD=j4})&FFMJ7QQv zL-jguLx(3X+J7bQ-MAF5i{)y(o+j7-S*z}oCprh0@wzs6e98XL-RFn+KlQkR{tJ^j B97+HH diff --git a/languages/post-expirator-fr_FR.po b/languages/post-expirator-fr_FR.po index 68d2e911a..6836c7f34 100644 --- a/languages/post-expirator-fr_FR.po +++ b/languages/post-expirator-fr_FR.po @@ -5,8 +5,8 @@ msgstr "" "Project-Id-Version: Plugins - PublishPress Future: Automatically Unpublish " "WordPress Posts - Stable (latest release)\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/project\n" -"POT-Creation-Date: 2024-07-15T16:44:18+00:00\n" -"PO-Revision-Date: 2024-07-16 20:14+0200\n" +"POT-Creation-Date: 2024-08-05T20:36:02+00:00\n" +"PO-Revision-Date: 2024-08-06 20:54+0200\n" "Last-Translator: \n" "Language-Team: \n" "Language: fr\n" @@ -18,12 +18,12 @@ msgstr "" #. Plugin Name of the plugin #: post-expirator.php -#: src/Modules/Expirator/Controllers/BlockEditorController.php:128 -#: src/Modules/Expirator/Controllers/BulkEditController.php:164 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:143 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:346 -#: src/Modules/Expirator/Controllers/QuickEditController.php:246 -#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:84 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:129 +#: src/Modules/Expirator/Controllers/BulkEditController.php:165 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:144 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:362 +#: src/Modules/Expirator/Controllers/QuickEditController.php:270 +#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:85 msgid "PublishPress Future" msgstr "PublishPress Future" @@ -51,28 +51,28 @@ msgstr "PublishPress" msgid "http://publishpress.com" msgstr "http://publishpress.com" -#: legacy/classes/Display.class.php:94 +#: legacy/classes/Display.class.php:106 msgid "You do not have permission to configure PublishPress Future." msgstr "" "Vous n’avez pas les droits nécessaires pour configurer PublishPress Future." -#: legacy/classes/Display.class.php:108 +#: legacy/classes/Display.class.php:120 msgid "Debug is disabled" msgstr "Débogage désactivé" -#: legacy/classes/Display.class.php:188 +#: legacy/classes/Display.class.php:204 msgid "Debugging Disabled" msgstr "Débogage désactivé" -#: legacy/classes/Display.class.php:193 +#: legacy/classes/Display.class.php:209 msgid "Debugging Enabled" msgstr "Débogage activé" -#: legacy/classes/Display.class.php:201 +#: legacy/classes/Display.class.php:217 msgid "Debugging Table Emptied" msgstr "Table de débogage vidée" -#: legacy/classes/Display.class.php:207 +#: legacy/classes/Display.class.php:223 msgid "" "The legacy future actions migration has been enqueued and will run " "asynchronously." @@ -80,7 +80,7 @@ msgstr "" "La migration des actions Future héritées a été mise en file d’attente et " "s’exécutera de manière asynchrone." -#: legacy/classes/Display.class.php:216 +#: legacy/classes/Display.class.php:232 msgid "" "The legacy actions arguments restoration has been enqueued and will run " "asynchronously." @@ -88,48 +88,48 @@ msgstr "" "La restauration des arguments des actions héritées a été mise en file " "d’attente et s’exécutera de manière asynchrone." -#: legacy/classes/Display.class.php:226 +#: legacy/classes/Display.class.php:243 msgid "The database schema was fixed." msgstr "Le schéma de la base de données a été corrigé." -#: legacy/classes/Display.class.php:231 +#: legacy/classes/Display.class.php:248 msgid "" "The database schema could not be fixed. Please, contact the support team." msgstr "" "Le schéma de la base de données n’a pas pu être corrigé. Veuillez contacter " "l’équipe de support." -#: legacy/classes/Display.class.php:322 legacy/classes/Display.class.php:380 +#: legacy/classes/Display.class.php:339 legacy/classes/Display.class.php:397 msgid "Saved Options!" msgstr "Options enregistrées !" #. translators: %1$s is the plugin name, %2$s is the star rating markup -#: legacy/classes/Display.class.php:466 +#: legacy/classes/Display.class.php:483 msgid "If you like %1$s, please leave us a %2$s rating. Thank you!" msgstr "" "Si vous appréciez %1$s, veuillez nous laisser une note de %2$s. Merci !" -#: legacy/classes/Display.class.php:481 +#: legacy/classes/Display.class.php:498 msgid "About PublishPress Future" msgstr "À propos de PublishPress Future" -#: legacy/classes/Display.class.php:483 +#: legacy/classes/Display.class.php:500 msgid "About" msgstr "À propos" -#: legacy/classes/Display.class.php:489 +#: legacy/classes/Display.class.php:506 msgid "Future Documentation" msgstr "Documentation de Future" -#: legacy/classes/Display.class.php:491 +#: legacy/classes/Display.class.php:508 msgid "Documentation" msgstr "Documentation" -#: legacy/classes/Display.class.php:497 +#: legacy/classes/Display.class.php:514 msgid "Contact the PublishPress team" msgstr "Contacter l’équipe PublishPress" -#: legacy/classes/Display.class.php:499 +#: legacy/classes/Display.class.php:516 msgid "Contact" msgstr "Contact" @@ -137,154 +137,164 @@ msgstr "Contact" msgid "No taxonomies found" msgstr "Aucune taxonomie trouvée" -#: services.php:71 src/Modules/Settings/SettingsFacade.php:92 +#: services.php:74 src/Modules/Settings/SettingsFacade.php:93 msgid "l F jS, Y" msgstr "I j F Y" -#: services.php:75 src/Modules/Settings/SettingsFacade.php:93 +#: services.php:78 src/Modules/Settings/SettingsFacade.php:94 msgid "g:ia" msgstr "g\\hia" -#: services.php:76 src/Modules/Settings/SettingsFacade.php:94 +#: services.php:79 src/Modules/Settings/SettingsFacade.php:95 msgid "Post expires at EXPIRATIONTIME on ACTIONDATE" msgstr "" "La publication expire à la date d’expiration (EXPIRATIONTIME) de la date " "d’action (ACTIONDATE)." -#: src/Modules/Expirator/Controllers/BlockEditorController.php:127 -#: src/Modules/Expirator/Controllers/BulkEditController.php:163 -#: src/Modules/Expirator/Controllers/QuickEditController.php:245 +#: src/Framework/Logger/DBTableSchemas/DebugLogSchema.php:76 +#: src/Modules/Expirator/DBTableSchemas/ActionArgsSchema.php:84 +msgid "The table %s does not exist." +msgstr "La table %s n’existe pas." + +#: src/Framework/Logger/DBTableSchemas/DebugLogSchema.php:89 +#: src/Modules/Expirator/DBTableSchemas/ActionArgsSchema.php:107 +msgid "The table indexes are invalid: " +msgstr "Les index de table sont invalides : " + +#: src/Modules/Expirator/Controllers/BlockEditorController.php:128 +#: src/Modules/Expirator/Controllers/BulkEditController.php:164 +#: src/Modules/Expirator/Controllers/QuickEditController.php:269 msgid "Categories" msgstr "Catégories" -#: src/Modules/Expirator/Controllers/BlockEditorController.php:129 -#: src/Modules/Expirator/Controllers/BulkEditController.php:165 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:347 -#: src/Modules/Expirator/Controllers/QuickEditController.php:247 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:130 +#: src/Modules/Expirator/Controllers/BulkEditController.php:166 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:363 +#: src/Modules/Expirator/Controllers/QuickEditController.php:271 msgid "Enable Future Action" msgstr "Activer l’action Future" -#: src/Modules/Expirator/Controllers/BlockEditorController.php:130 -#: src/Modules/Expirator/Controllers/BulkEditController.php:166 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:348 -#: src/Modules/Expirator/Controllers/QuickEditController.php:248 -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:45 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:131 +#: src/Modules/Expirator/Controllers/BulkEditController.php:167 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:364 +#: src/Modules/Expirator/Controllers/QuickEditController.php:272 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:46 msgid "Action" msgstr "Action" -#: src/Modules/Expirator/Controllers/BlockEditorController.php:131 -#: src/Modules/Expirator/Controllers/BulkEditController.php:169 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:351 -#: src/Modules/Expirator/Controllers/QuickEditController.php:251 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:132 +#: src/Modules/Expirator/Controllers/BulkEditController.php:170 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:367 +#: src/Modules/Expirator/Controllers/QuickEditController.php:275 msgid "Loading" msgstr "Chargement" -#: src/Modules/Expirator/Controllers/BlockEditorController.php:132 -#: src/Modules/Expirator/Controllers/BulkEditController.php:167 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:349 -#: src/Modules/Expirator/Controllers/QuickEditController.php:249 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:133 +#: src/Modules/Expirator/Controllers/BulkEditController.php:168 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:365 +#: src/Modules/Expirator/Controllers/QuickEditController.php:273 msgid "Show Calendar" msgstr "Afficher le calendrier" -#: src/Modules/Expirator/Controllers/BlockEditorController.php:133 -#: src/Modules/Expirator/Controllers/BulkEditController.php:168 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:350 -#: src/Modules/Expirator/Controllers/QuickEditController.php:250 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:134 +#: src/Modules/Expirator/Controllers/BulkEditController.php:169 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:366 +#: src/Modules/Expirator/Controllers/QuickEditController.php:274 msgid "Hide Calendar" msgstr "Masquer le calendrier" #. translators: the text between {} is the link to the settings page. #. translators: the text between {{}} is the link to the settings page. -#: src/Modules/Expirator/Controllers/BlockEditorController.php:135 -#: src/Modules/Expirator/Controllers/BulkEditController.php:171 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:353 -#: src/Modules/Expirator/Controllers/QuickEditController.php:253 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:136 +#: src/Modules/Expirator/Controllers/BulkEditController.php:172 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:369 +#: src/Modules/Expirator/Controllers/QuickEditController.php:277 msgid "Timezone is controlled by the {WordPress Settings}." msgstr "Le fuseau horaire est contrôlé par les {Reglages de WordPress}." #. translators: %s is the name of the taxonomy in plural form. -#: src/Modules/Expirator/Controllers/BlockEditorController.php:139 -#: src/Modules/Expirator/Controllers/BulkEditController.php:175 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:357 -#: src/Modules/Expirator/Controllers/QuickEditController.php:257 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:140 +#: src/Modules/Expirator/Controllers/BulkEditController.php:176 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:376 +#: src/Modules/Expirator/Controllers/QuickEditController.php:281 msgid "No %s found." msgstr "Aucune %s trouvée" -#: src/Modules/Expirator/Controllers/BlockEditorController.php:142 -#: src/Modules/Expirator/Controllers/BulkEditController.php:179 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:360 -#: src/Modules/Expirator/Controllers/QuickEditController.php:260 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:143 +#: src/Modules/Expirator/Controllers/BulkEditController.php:180 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:379 +#: src/Modules/Expirator/Controllers/QuickEditController.php:284 msgid "You must assign a taxonomy to this post type to use this feature." msgstr "" "Vous devez assigner une taxonomie à ce type de publication pour utiliser " "cette fonctionnalité." #. translators: %s is the name of the taxonomy in plural form. -#: src/Modules/Expirator/Controllers/BlockEditorController.php:144 -#: src/Modules/Expirator/Controllers/BulkEditController.php:186 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:362 -#: src/Modules/Expirator/Controllers/QuickEditController.php:262 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:145 +#: src/Modules/Expirator/Controllers/BulkEditController.php:187 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:384 +#: src/Modules/Expirator/Controllers/QuickEditController.php:286 msgid "New %s" msgstr "Nouveau %s" #. translators: %s is the name of the taxonomy in plural form. -#: src/Modules/Expirator/Controllers/BlockEditorController.php:146 -#: src/Modules/Expirator/Controllers/BulkEditController.php:188 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:364 -#: src/Modules/Expirator/Controllers/QuickEditController.php:264 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:147 +#: src/Modules/Expirator/Controllers/BulkEditController.php:189 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:386 +#: src/Modules/Expirator/Controllers/QuickEditController.php:288 msgid "%s to remove" msgstr "%s à retirer" #. translators: %s is the name of the taxonomy in plural form. -#: src/Modules/Expirator/Controllers/BlockEditorController.php:148 -#: src/Modules/Expirator/Controllers/BulkEditController.php:190 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:366 -#: src/Modules/Expirator/Controllers/QuickEditController.php:266 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:149 +#: src/Modules/Expirator/Controllers/BulkEditController.php:191 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:388 +#: src/Modules/Expirator/Controllers/QuickEditController.php:290 msgid "%s to add" msgstr "%s à ajouter" #. translators: %s is the name of the taxonomy in singular form. -#: src/Modules/Expirator/Controllers/BlockEditorController.php:150 -#: src/Modules/Expirator/Controllers/BulkEditController.php:192 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:368 -#: src/Modules/Expirator/Controllers/QuickEditController.php:268 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:151 +#: src/Modules/Expirator/Controllers/BulkEditController.php:193 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:391 +#: src/Modules/Expirator/Controllers/QuickEditController.php:292 msgid "Search for %s" msgstr "Recherche pour %s" -#: src/Modules/Expirator/Controllers/BlockEditorController.php:151 -#: src/Modules/Expirator/Controllers/BulkEditController.php:193 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:369 -#: src/Modules/Expirator/Controllers/QuickEditController.php:269 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:152 +#: src/Modules/Expirator/Controllers/BulkEditController.php:194 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:394 +#: src/Modules/Expirator/Controllers/QuickEditController.php:293 msgid "Select an action" msgstr "Sélectionner une action" -#: src/Modules/Expirator/Controllers/BlockEditorController.php:152 -#: src/Modules/Expirator/Controllers/BulkEditController.php:194 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:370 -#: src/Modules/Expirator/Controllers/QuickEditController.php:270 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:153 +#: src/Modules/Expirator/Controllers/BulkEditController.php:195 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:395 +#: src/Modules/Expirator/Controllers/QuickEditController.php:294 msgid "Select a date" msgstr "Sélectionner la date" -#: src/Modules/Expirator/Controllers/BlockEditorController.php:153 -#: src/Modules/Expirator/Controllers/BulkEditController.php:195 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:371 -#: src/Modules/Expirator/Controllers/QuickEditController.php:271 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:154 +#: src/Modules/Expirator/Controllers/BulkEditController.php:196 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:396 +#: src/Modules/Expirator/Controllers/QuickEditController.php:295 msgid "Date cannot be in the past" msgstr "La date ne peut pas être dans le passé" #. translators: %s is the name of the taxonomy in singular form. -#: src/Modules/Expirator/Controllers/BlockEditorController.php:156 -#: src/Modules/Expirator/Controllers/BulkEditController.php:198 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:374 -#: src/Modules/Expirator/Controllers/QuickEditController.php:274 -#: src/Modules/Settings/Controllers/Controller.php:245 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:157 +#: src/Modules/Expirator/Controllers/BulkEditController.php:199 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:399 +#: src/Modules/Expirator/Controllers/QuickEditController.php:298 +#: src/Modules/Settings/Controllers/Controller.php:246 msgid "Please select one or more %s" msgstr "Veuillez sélectionner un ou plusieurs %s" -#: src/Modules/Expirator/Controllers/BlockEditorController.php:159 -#: src/Modules/Expirator/Controllers/BulkEditController.php:201 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:377 -#: src/Modules/Expirator/Controllers/QuickEditController.php:277 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:160 +#: src/Modules/Expirator/Controllers/BulkEditController.php:202 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:402 +#: src/Modules/Expirator/Controllers/QuickEditController.php:301 msgid "New status" msgstr "Nouvel état" @@ -306,76 +316,76 @@ msgstr "" "Mettre à jour les actions de Future à partir des métadonnées de la " "publication" -#: src/Modules/Expirator/Controllers/BulkEditController.php:178 +#: src/Modules/Expirator/Controllers/BulkEditController.php:179 msgid "Future Action Update" msgstr "Mise à jour des actions Future" -#: src/Modules/Expirator/Controllers/BulkEditController.php:180 +#: src/Modules/Expirator/Controllers/BulkEditController.php:181 msgid "— No Change —" msgstr "— Aucune modification —" -#: src/Modules/Expirator/Controllers/BulkEditController.php:181 +#: src/Modules/Expirator/Controllers/BulkEditController.php:182 msgid "Add or update action for posts" msgstr "Ajouter ou mettre à jour l’action pour les publications" -#: src/Modules/Expirator/Controllers/BulkEditController.php:182 +#: src/Modules/Expirator/Controllers/BulkEditController.php:183 msgid "Add action if none exists for posts" msgstr "Ajouter une action si aucune n’existe pour les publications" -#: src/Modules/Expirator/Controllers/BulkEditController.php:183 +#: src/Modules/Expirator/Controllers/BulkEditController.php:184 msgid "Update the existing actions for posts" msgstr "Mise à jour des actions existantes pour les publications" -#: src/Modules/Expirator/Controllers/BulkEditController.php:184 +#: src/Modules/Expirator/Controllers/BulkEditController.php:185 msgid "Remove action from posts" msgstr "Retirer l’action de las publications" -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:345 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:361 msgid "Category" msgstr "Catégoria" -#: src/Modules/Expirator/Controllers/PluginsListController.php:45 +#: src/Modules/Expirator/Controllers/PluginsListController.php:46 msgid "Settings" msgstr "Réglages" -#: src/Modules/Expirator/Controllers/PostListController.php:66 +#: src/Modules/Expirator/Controllers/PostListController.php:75 msgid "Future Action" msgstr "Action Future" -#: src/Modules/Expirator/Controllers/RestAPIController.php:207 -#: src/Modules/Expirator/Controllers/RestAPIController.php:214 +#: src/Modules/Expirator/Controllers/RestAPIController.php:208 +#: src/Modules/Expirator/Controllers/RestAPIController.php:215 msgid "Invalid date time offset." msgstr "Décalage de la date et de l’heure invalide." -#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:85 +#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:86 msgid "Future" msgstr "Future" -#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:94 #: src/Modules/Expirator/Controllers/ScheduledActionsController.php:95 +#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:96 #: src/Views/tabs.php:59 msgid "Action Settings" msgstr "Réglages des actions" -#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:103 #: src/Modules/Expirator/Controllers/ScheduledActionsController.php:104 -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:42 +#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:105 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:43 msgid "Scheduled Actions" msgstr "Actions planifiées" -#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:173 +#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:174 msgid "Log format" msgstr "Format du journal" -#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:180 +#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:181 msgid "List" msgstr "Liste" -#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:189 +#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:190 msgid "Popup" msgstr "Fenêtre surgissante" -#: src/Modules/Expirator/Controllers/ShortcodeController.php:77 +#: src/Modules/Expirator/Controllers/ShortcodeController.php:79 msgid "" "The shortcode [futureaction] must be used inside the loop or with the " "post_id attribute." @@ -383,6 +393,11 @@ msgstr "" "Le code court [futureaction] doit être utilisé à l’intérieur de la boucle ou " "avec l’attribut post_id." +#: src/Modules/Expirator/DBTableSchemas/ActionArgsSchema.php:96 +msgid "The column args length was not updated to 1000." +msgstr "" +"La longueur de la colonne des arguments n’a pas été mise à jour à 1000." + #: src/Modules/Expirator/ExpirationActions/ChangePostStatus.php:54 #: src/Modules/Expirator/ExpirationActions/PostStatusToDraft.php:52 #: src/Modules/Expirator/ExpirationActions/PostStatusToPrivate.php:52 @@ -417,12 +432,12 @@ msgid "Delete" msgstr "Supprimer" #. translators: %s is the post type singular label -#: src/Modules/Expirator/ExpirationActions/PostCategoryAdd.php:64 +#: src/Modules/Expirator/ExpirationActions/PostCategoryAdd.php:65 msgid "No terms were added to the %s." msgstr "Aucun terme n’a été ajouté à la %s." #. translators: %1$s is the taxonomy label, %2$s is the post type singular label, %3$s is the list of terms added, %4$s is the list of terms on the post -#: src/Modules/Expirator/ExpirationActions/PostCategoryAdd.php:75 +#: src/Modules/Expirator/ExpirationActions/PostCategoryAdd.php:77 msgid "" "The following terms (%1$s) were added to the %2$s: \"%3$s\". The full list " "of terms on the post is: %4$s." @@ -431,7 +446,7 @@ msgstr "" "complète des termes de la publication est la suivante : %4$s." #. translators: %s is the taxonomy name (plural) -#: src/Modules/Expirator/ExpirationActions/PostCategoryAdd.php:118 +#: src/Modules/Expirator/ExpirationActions/PostCategoryAdd.php:120 msgid "Add extra %s" msgstr "Ajouter des %s supplémentaires" @@ -515,35 +530,35 @@ msgstr "%s a été retirée de la liste des épinglées." msgid "Unstick" msgstr "Ne plus épingler" -#: src/Modules/Expirator/Models/ExpirablePostModel.php:463 +#: src/Modules/Expirator/Models/ExpirablePostModel.php:464 msgid "Email is disabled" msgstr "L’e-mail est désactivé" -#: src/Modules/Expirator/Models/ExpirablePostModel.php:467 +#: src/Modules/Expirator/Models/ExpirablePostModel.php:468 msgid "Email sent" msgstr "L’e-mail a été envoyé" -#: src/Modules/Expirator/Models/ExpirablePostModel.php:467 +#: src/Modules/Expirator/Models/ExpirablePostModel.php:468 msgid "Email not sent" msgstr "L’e-mail n’a pas été envoyé" #. translators: %1$s: post title placeholder, %2$s: notification text, %3$s: action date placeholder, %4$s: post link placeholder -#: src/Modules/Expirator/Models/ExpirablePostModel.php:617 +#: src/Modules/Expirator/Models/ExpirablePostModel.php:618 msgid "%1$s. %2$s on %3$s. The post link is %4$s" msgstr "%1$s. %2$s le %3$s. Le lien de la publication est %s" #. translators: %s is the post title -#: src/Modules/Expirator/Models/ExpirablePostModel.php:635 +#: src/Modules/Expirator/Models/ExpirablePostModel.php:636 msgid "Future Action Complete \"%s\"" msgstr "Action Future terminée « %s »" #. translators: 1: is the blog name, 2: the email subject -#: src/Modules/Expirator/Models/ExpirablePostModel.php:639 +#: src/Modules/Expirator/Models/ExpirablePostModel.php:640 msgid "[%1$s] %2$s" msgstr "[%1$s] %2$s" #. translators: %s is the date/time offset and %s is the post type. -#: src/Modules/Expirator/Models/PostTypeDefaultDataModel.php:135 +#: src/Modules/Expirator/Models/PostTypeDefaultDataModel.php:137 msgid "" "Invalid date/time offset \"%s\" for post type \"%s\". Please ensure you use " "only English terms for the date/time offset, such as \"3 months\" or \"1 " @@ -554,87 +569,87 @@ msgstr "" "anglais pour le décalage de date/heure, tels que « 3 months » (3 mois) ou " "« 1 week » (1 semaine)." -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:48 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:49 msgid "Status" msgstr "État" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:49 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:50 msgid "Arguments" msgstr "Arguments" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:50 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:51 msgid "Logs" msgstr "Journaux" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:51 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:52 msgid "Scheduled Date" msgstr "Date planifiée" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:52 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:53 msgid "Recurrence" msgstr "Récurrence" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:60 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:61 msgid "Run" msgstr "Exécuter" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:61 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:62 msgid "Process the action now" msgstr "Traiter l’action maintenant" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:64 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:65 msgid "Cancel" msgstr "Anuler" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:65 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:66 msgid "" "Cancel the action. This will prevent the action from running in the future" msgstr "Annuler l’action. Cela empêchera l’exécution de l’action à l’avenir" #. translators: %s: amount of time -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:78 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:79 msgid "%s year" msgid_plural "%s years" msgstr[0] "%s année" msgstr[1] "%s années" #. translators: %s: amount of time -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:83 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:84 msgid "%s month" msgid_plural "%s months" msgstr[0] "%s mois" msgstr[1] "%s mois" #. translators: %s: amount of time -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:88 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:89 msgid "%s week" msgid_plural "%s weeks" msgstr[0] "%s semaine" msgstr[1] "%s semaines" #. translators: %s: amount of time -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:93 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:94 msgid "%s day" msgid_plural "%s days" msgstr[0] "%s jour" msgstr[1] "%s jours" #. translators: %s: amount of time -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:98 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:99 msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s heure" msgstr[1] "%s heures" #. translators: %s: amount of time -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:103 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:104 msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s minute" msgstr[1] "%s minutes" #. translators: %s: amount of time -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:108 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:109 msgid "%s second" msgid_plural "%s seconds" msgstr[0] "%s seconde" @@ -649,7 +664,7 @@ msgid "Uninitialized" msgstr "Non initialisé" #: src/Modules/Expirator/Tables/ScheduledActionsTable.php:273 -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:339 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:340 msgid "Scheduled" msgstr "Planifié" @@ -673,87 +688,87 @@ msgstr "En cours d’exécution" msgid "All" msgstr "Tout" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:314 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:315 msgid "Search hook, args and claim ID" msgstr "Rechercher le crochet, les arguments et l’ID de la demande" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:343 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:344 msgid "Completed" msgstr "Terminé" #. translators: %1$s: post type label, %2$d: post ID, %3$s: post link tag start, %4$s: post title, %5$s: post link tag end -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:448 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:449 msgid "%1$s: [%2$d] %3$s%4$s%5$s" msgstr "%s : [%2$d] %3$s%4$s%5$s" #. translators: %s is the new status -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:483 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:484 msgid "New Status: %s" msgstr "Nouvel état : %s" #. translators: %s is the list of terms -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:491 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:492 msgid "Terms: %s" msgstr "Termes : %s" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:594 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:595 msgid "View log" msgstr "Voir le journal" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:605 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:606 msgid "Action: " msgstr "Action : " -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:611 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:612 msgid "Status: " msgstr "État : " -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:617 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:618 msgid "Arguments: " msgstr "Arguments : " -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:623 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:624 msgid "Scheduled date: " msgstr "Date planifiée : " -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:637 -#: src/Views/menu-diagnostics.php:190 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:638 +#: src/Views/menu-diagnostics.php:192 msgid "Date" msgstr "Date" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:638 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:639 #: src/Views/menu-debug-log.php:37 msgid "Message" msgstr "Message" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:672 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:673 msgid "Async" msgstr "Asynchrone" #. translators: %s is the date interval in human readable format in the past -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:689 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:690 msgid " (%s ago)" msgstr " (il y a %s)" #. translators: %s is the date interval in human readable format in the present or future -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:695 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:696 msgid " (%s)" msgstr " (%s)" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:719 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:720 msgid "Now!" msgstr "Maintenant !" #. translators: %s: time interval -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:768 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:770 msgid "Every %s" msgstr "Tous les %s" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:774 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:776 msgid "Non-repeating" msgstr "Pas de répétition" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:783 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:786 msgid "No Scheduled Actions." msgstr "Aucune action planifiée." @@ -769,12 +784,12 @@ msgstr "" #: src/Modules/ProFeaturesAds/views/actions-workflows-page.html.php:18 #: src/Modules/VersionNotices/Module.php:125 -#: src/Views/ad-banner-right-sidebar.php:35 +#: src/Views/ad-banner-right-sidebar.php:37 msgid "Upgrade to Pro" msgstr "Passez à la version Pro" #. translators: %1$s is the link to the PHP strtotime function documentation, %2$s and %3$s are the opening and closing code tags. Please, do not translate the date format text, since PHP will not be able to calculate using non-english terms. -#: src/Modules/Settings/Controllers/Controller.php:198 +#: src/Modules/Settings/Controllers/Controller.php:199 msgid "" "Set the offset to use for the default action date and time. For information " "on formatting, see %1$s\n" @@ -788,11 +803,11 @@ msgstr "" "%2$s + 1 semaine 2 jours 4 heures 2 secondes%3$s ou %2$sprochain jeudi%3$s. " "Pour ces valeurs, veuillez utiliser uniquement des termes en anglais." -#: src/Modules/Settings/Controllers/Controller.php:209 +#: src/Modules/Settings/Controllers/Controller.php:210 msgid "Default Values" msgstr "Valeurs par défaut" -#: src/Modules/Settings/Controllers/Controller.php:210 +#: src/Modules/Settings/Controllers/Controller.php:211 msgid "" "Use the values below to set the default actions/values to be used for each " "for the corresponding post types. These values can all be overwritten when " @@ -803,40 +818,40 @@ msgstr "" "peuvent toutes être remplacées lors de la création/modification de la " "publication/page." -#: src/Modules/Settings/Controllers/Controller.php:214 +#: src/Modules/Settings/Controllers/Controller.php:215 msgid "Active" msgstr "Actif" -#: src/Modules/Settings/Controllers/Controller.php:215 +#: src/Modules/Settings/Controllers/Controller.php:216 msgid "Activate the PublishPress Future actions for this post type" msgstr "Activer les actions de PublishPress Future pour ce type de publication" -#: src/Modules/Settings/Controllers/Controller.php:216 +#: src/Modules/Settings/Controllers/Controller.php:217 msgid "Default Action" msgstr "Action par défaut" -#: src/Modules/Settings/Controllers/Controller.php:217 +#: src/Modules/Settings/Controllers/Controller.php:218 msgid "Select the default action for the post type." msgstr "Sélectionner l’action par défaut pour le type de publication." -#: src/Modules/Settings/Controllers/Controller.php:221 -#: src/Views/taxonomy-field.php:11 +#: src/Modules/Settings/Controllers/Controller.php:222 +#: src/Views/taxonomy-field.php:14 msgid "Select the taxonomy to be used for actions." msgstr "Sélectionner la taxonomie à utiliser pour les actions." -#: src/Modules/Settings/Controllers/Controller.php:225 +#: src/Modules/Settings/Controllers/Controller.php:226 msgid "Auto-enable" msgstr "Activer automatiquement" -#: src/Modules/Settings/Controllers/Controller.php:226 +#: src/Modules/Settings/Controllers/Controller.php:227 msgid "Enabled for all new posts" msgstr "Activé pour tous les nouvelles publications" -#: src/Modules/Settings/Controllers/Controller.php:227 +#: src/Modules/Settings/Controllers/Controller.php:228 msgid "Taxonomy" msgstr "Taxonomie" -#: src/Modules/Settings/Controllers/Controller.php:228 +#: src/Modules/Settings/Controllers/Controller.php:229 msgid "" "No taxonomies found for this post type. Taxonomy actions will not be " "available." @@ -844,12 +859,12 @@ msgstr "" "Aucune taxonomie n’a été trouvée pour ce type de publication. Les actions de " "taxonomie ne seront pas disponibles." -#: src/Modules/Settings/Controllers/Controller.php:229 -#: src/Views/menu-general.php:159 +#: src/Modules/Settings/Controllers/Controller.php:230 +#: src/Views/menu-general.php:158 msgid "Who to Notify" msgstr "Personne à notifier" -#: src/Modules/Settings/Controllers/Controller.php:230 +#: src/Modules/Settings/Controllers/Controller.php:231 msgid "" "Enter a comma separated list of emails that you would like to be notified " "when the action runs." @@ -857,45 +872,45 @@ msgstr "" "Saisir une liste d’e-mails séparés par des virgules que vous souhaitez voir " "notifiés lorsque l’action est exécutée." -#: src/Modules/Settings/Controllers/Controller.php:234 -#: src/Views/menu-general.php:67 +#: src/Modules/Settings/Controllers/Controller.php:235 +#: src/Views/menu-general.php:66 msgid "Default Date/Time Offset" msgstr "Décalage date/heure par défaut" -#: src/Modules/Settings/Controllers/Controller.php:237 -#: src/Views/menu-general.php:83 +#: src/Modules/Settings/Controllers/Controller.php:238 +#: src/Views/menu-general.php:82 msgid "PHP strtotime function" msgstr "Fonction strtotime de PHP" -#: src/Modules/Settings/Controllers/Controller.php:241 +#: src/Modules/Settings/Controllers/Controller.php:242 msgid "Default terms:" msgstr "Termes par défaut :" -#: src/Modules/Settings/Controllers/Controller.php:242 +#: src/Modules/Settings/Controllers/Controller.php:243 msgid "Save changes" msgstr "Enregistrer les modifications" -#: src/Modules/Settings/Controllers/Controller.php:243 +#: src/Modules/Settings/Controllers/Controller.php:244 msgid "Wait for the validation..." msgstr "Attendre la validation…" -#: src/Modules/Settings/Controllers/Controller.php:246 +#: src/Modules/Settings/Controllers/Controller.php:247 msgid "Date Preview" msgstr "Aperçu de la date" -#: src/Modules/Settings/Controllers/Controller.php:247 +#: src/Modules/Settings/Controllers/Controller.php:248 msgid "Current Date" msgstr "Date actuelle" -#: src/Modules/Settings/Controllers/Controller.php:248 +#: src/Modules/Settings/Controllers/Controller.php:249 msgid "Computed Date" msgstr "Date calculée" -#: src/Modules/Settings/Controllers/Controller.php:249 +#: src/Modules/Settings/Controllers/Controller.php:250 msgid "Error" msgstr "Erreur" -#: src/Modules/Settings/Controllers/Controller.php:349 +#: src/Modules/Settings/Controllers/Controller.php:352 msgid "Form Validation Failure: Sorry, your nonce did not verify." msgstr "" "Échec de la validation du formulaire : Désolé, votre nonce n’a pas été " @@ -910,66 +925,66 @@ msgstr "" "Vous utilisez PublishPress Future Free. La version Pro offre plus de " "fonctionnalités et de support. %1$sPasser à la version Pro%2$s" -#: src/Views/ad-banner-right-sidebar.php:10 +#: src/Views/ad-banner-right-sidebar.php:12 msgid "Upgrade to PublishPress Future Pro" msgstr "Passez à PublishPress Future Pro" -#: src/Views/ad-banner-right-sidebar.php:16 +#: src/Views/ad-banner-right-sidebar.php:18 msgid "Enhance the power of PublishPress Future with the Pro version:" msgstr "Augmentez la puissance de PublishPress Future avec la version Pro :" -#: src/Views/ad-banner-right-sidebar.php:23 +#: src/Views/ad-banner-right-sidebar.php:25 msgid "Design custom workflows with multiple actions" msgstr "Créer des flux de travail personnalisés avec des actions multiples" -#: src/Views/ad-banner-right-sidebar.php:25 +#: src/Views/ad-banner-right-sidebar.php:27 msgid "Schedule actions based on the post's publishing date" msgstr "" "Planifier les actions en fonction de la date de publication de la publication" -#: src/Views/ad-banner-right-sidebar.php:27 +#: src/Views/ad-banner-right-sidebar.php:29 msgid "Move posts to custom statuses" msgstr "Déplacer les publications vers des états personnalisés" -#: src/Views/ad-banner-right-sidebar.php:29 +#: src/Views/ad-banner-right-sidebar.php:31 msgid "Use other plugins to control Future Actions" msgstr "" "Utiliser les autres extensions pour contrôler les actions de « Future »" -#: src/Views/ad-banner-right-sidebar.php:31 +#: src/Views/ad-banner-right-sidebar.php:33 msgid "Enjoy fast and professional support" msgstr "Bénéficier du support rapide et professionnel" -#: src/Views/ad-banner-right-sidebar.php:43 +#: src/Views/ad-banner-right-sidebar.php:45 msgid "Need PublishPress Future Support?" msgstr "Vous avez besoin du support de PublishPress Future ?" -#: src/Views/ad-banner-right-sidebar.php:49 +#: src/Views/ad-banner-right-sidebar.php:51 msgid "If you need help or have a new feature request, let us know." msgstr "" "Si vous avez besoin d’aide ou si vous avez une nouvelle demande de " "fonctionnalité, faites-le nous savoir." -#: src/Views/ad-banner-right-sidebar.php:55 +#: src/Views/ad-banner-right-sidebar.php:57 msgid "Request Support" msgstr "Demande de support" -#: src/Views/ad-banner-right-sidebar.php:66 +#: src/Views/ad-banner-right-sidebar.php:68 msgid "Detailed documentation is also available on the plugin website." msgstr "" "Une documentation détaillée est également disponible sur le site de " "l’extension." -#: src/Views/ad-banner-right-sidebar.php:73 +#: src/Views/ad-banner-right-sidebar.php:75 msgid "View Knowledge Base" msgstr "Voir la base de connaissances" #. translators: %1$s opens a span tag, %2$s is the action name, %3$s ends a span tag, %4$s is the a span tag, %5$s is the a span tag, %6$s is the a span tag -#: src/Views/expire-column.php:55 +#: src/Views/expire-column.php:57 msgid "%1$s%2$s%3$s on %5$s%4$s%6$s" msgstr "%1$s%2$s%3$s sur %5$s%4$s%6$s" -#: src/Views/expire-column.php:92 +#: src/Views/expire-column.php:95 msgid "" "Action was not scheduled due to a configuration issue. Please attempt to " "schedule it again." @@ -977,15 +992,15 @@ msgstr "" "L’action n’a pas pu être planifiée en raison d’un problème de configuration. " "Veuillez essayer de la replanifier." -#: src/Views/expire-column.php:97 +#: src/Views/expire-column.php:103 msgid "No future action" msgstr "Aucune action future" -#: src/Views/menu-advanced.php:25 +#: src/Views/menu-advanced.php:27 msgid "Advanced Options" msgstr "Options avancées" -#: src/Views/menu-advanced.php:27 +#: src/Views/menu-advanced.php:29 msgid "" "Please do not update anything here unless you know what it entails. For " "advanced users only." @@ -993,67 +1008,67 @@ msgstr "" "Veuillez ne rien mettre à jour ici si vous ne savez pas ce que cela " "implique. Pour les utilisateurs/utilisatrices avancés uniquement." -#: src/Views/menu-advanced.php:38 +#: src/Views/menu-advanced.php:40 msgid "Future Action Column Style" msgstr "Style de colonne de l’action Future" -#: src/Views/menu-advanced.php:49 +#: src/Views/menu-advanced.php:51 msgid "Detailed" msgstr "Détaillé" -#: src/Views/menu-advanced.php:51 +#: src/Views/menu-advanced.php:53 msgid "Displays all information in the Future Action column." msgstr "Affiche toutes les informations de la colonne « Action de Future »." -#: src/Views/menu-advanced.php:63 +#: src/Views/menu-advanced.php:65 msgid "Simplified" msgstr "Simplifié" -#: src/Views/menu-advanced.php:65 +#: src/Views/menu-advanced.php:67 msgid "Displays only the icon and date/time." msgstr "Affiche uniquement l’icône et la date/heure." -#: src/Views/menu-advanced.php:74 +#: src/Views/menu-advanced.php:76 msgid "Time format in the date picker" msgstr "Format de l’heure dans le sélecteur de date" -#: src/Views/menu-advanced.php:85 +#: src/Views/menu-advanced.php:87 msgid "Inherit from Site Settings" msgstr "Hérite de réglages du site" -#: src/Views/menu-advanced.php:93 +#: src/Views/menu-advanced.php:95 msgid "24 hours" msgstr "24 heurs" -#: src/Views/menu-advanced.php:101 +#: src/Views/menu-advanced.php:103 msgid "AM/PM" msgstr "AM/PM" -#: src/Views/menu-advanced.php:108 +#: src/Views/menu-advanced.php:110 msgid "Choose Which User Roles Can Use PublishPress Future" msgstr "Choisissez les rôles pouvant utiliser PublishPress Future" -#: src/Views/menu-advanced.php:139 +#: src/Views/menu-advanced.php:146 msgid "Preserve Data After Deactivating the Plugin" msgstr "Conserver les données après la désactivation de l’extension" -#: src/Views/menu-advanced.php:149 +#: src/Views/menu-advanced.php:156 msgid "Preserve data" msgstr "Conserver les données" -#: src/Views/menu-advanced.php:159 +#: src/Views/menu-advanced.php:166 msgid "Delete data" msgstr "Supprimer les données" -#: src/Views/menu-advanced.php:164 +#: src/Views/menu-advanced.php:171 msgid "" "Toggle between preserving or deleting data after the plugin is deactivated." msgstr "" "Permutez entre la conservation ou la suppression des données après la " "désactivation de l’extension." -#: src/Views/menu-advanced.php:175 src/Views/menu-display.php:184 -#: src/Views/menu-general.php:177 +#: src/Views/menu-advanced.php:182 src/Views/menu-display.php:185 +#: src/Views/menu-general.php:176 msgid "Save Changes" msgstr "Enregistrer les modifications" @@ -1072,84 +1087,75 @@ msgstr "La table de débogage est actuellement vide." msgid "Timestamp" msgstr "Horodatage" -#: src/Views/menu-diagnostics.php:26 +#: src/Views/menu-diagnostics.php:39 msgid "Advanced Diagnostics and Tools" msgstr "Diagnostics et outils avancés" -#: src/Views/menu-diagnostics.php:30 +#: src/Views/menu-diagnostics.php:43 msgid "WP-Cron Status Check" msgstr "Vérification de l’état de WP-Cron" -#: src/Views/menu-diagnostics.php:34 src/Views/menu-diagnostics.php:47 +#: src/Views/menu-diagnostics.php:47 src/Views/menu-diagnostics.php:60 msgid "Passed" msgstr "Succès" -#: src/Views/menu-diagnostics.php:37 +#: src/Views/menu-diagnostics.php:50 msgid "WP Cron Disabled" msgstr "WP Cron désactivé" -#: src/Views/menu-diagnostics.php:43 +#: src/Views/menu-diagnostics.php:56 msgid "Database Schema Check" msgstr "Vérification du schéma de la base de données" -#: src/Views/menu-diagnostics.php:51 +#: src/Views/menu-diagnostics.php:64 msgid "Error found on the database schema:" msgid_plural "Errors found on the database schema:" msgstr[0] "Erreur détectée dans le schéma de la base de données :" msgstr[1] "Erreurs détectées dans le schéma de la base de données :" -#: src/Views/menu-diagnostics.php:66 -msgid "The table _ppfuture_actions_args does not exist." -msgstr "Le tableau _ppfuture_actions_args n’existe pas." - -#: src/Views/menu-diagnostics.php:72 -msgid "The column args length was not updated to 1000." -msgstr "" -"La longueur de la colonne des arguments n’a pas été mise à jour à 1000." - -#: src/Views/menu-diagnostics.php:84 -msgid "Fix Database" -msgstr "Corriger la base de données" +#: src/Views/menu-diagnostics.php:86 +msgid "Try to Fix Database" +msgstr "Essayer de corriger la base de données" -#: src/Views/menu-diagnostics.php:93 +#: src/Views/menu-diagnostics.php:95 msgid "Debug Logging" msgstr "Journalisation de débogage" -#: src/Views/menu-diagnostics.php:97 src/Views/menu-display.php:94 -#: src/Views/menu-general.php:110 src/Views/menu-general.php:138 +#: src/Views/menu-diagnostics.php:99 src/Views/menu-display.php:95 +#: src/Views/menu-general.php:109 src/Views/menu-general.php:137 msgid "Enabled" msgstr "Activé" -#: src/Views/menu-diagnostics.php:100 +#: src/Views/menu-diagnostics.php:102 msgid "Disable Debugging" msgstr "Désactiver le débogage" -#: src/Views/menu-diagnostics.php:106 +#: src/Views/menu-diagnostics.php:108 msgid "Purge Debug Log" msgstr "Purge le log de débogage" -#: src/Views/menu-diagnostics.php:114 +#: src/Views/menu-diagnostics.php:116 msgid "View Debug Logs" msgstr "Voir les logs de déboguage" -#: src/Views/menu-diagnostics.php:117 src/Views/menu-display.php:100 -#: src/Views/menu-general.php:118 src/Views/menu-general.php:147 +#: src/Views/menu-diagnostics.php:119 src/Views/menu-display.php:101 +#: src/Views/menu-general.php:117 src/Views/menu-general.php:146 msgid "Disabled" msgstr "Désactivé" -#: src/Views/menu-diagnostics.php:120 +#: src/Views/menu-diagnostics.php:122 msgid "Enable Debugging" msgstr "Activer le débogage" -#: src/Views/menu-diagnostics.php:133 +#: src/Views/menu-diagnostics.php:135 msgid "Migrate Legacy Future Actions" msgstr "Migrer les actions Future héritées" -#: src/Views/menu-diagnostics.php:137 +#: src/Views/menu-diagnostics.php:139 msgid "Run Migration" msgstr "Exécuter la migration" -#: src/Views/menu-diagnostics.php:140 +#: src/Views/menu-diagnostics.php:142 msgid "" "Migrate legacy future actions from WP Cron to the new Action Scheduler. This " "will run in the background and may take a while." @@ -1158,15 +1164,15 @@ msgstr "" "d’actions. Cette opération s’effectuera en arrière-plan et peut prendre un " "certain temps." -#: src/Views/menu-diagnostics.php:150 +#: src/Views/menu-diagnostics.php:152 msgid "Restore Legacy Action Arguments" msgstr "Restaurer les arguments d’action hérités" -#: src/Views/menu-diagnostics.php:154 +#: src/Views/menu-diagnostics.php:156 msgid "Run Data Restoration" msgstr "Exécuter la restauration des données" -#: src/Views/menu-diagnostics.php:157 +#: src/Views/menu-diagnostics.php:159 msgid "" "Restore legacy action arguments as Post Meta. This is useful if you have " "issues with 3rd party plugins that read that data. This will run in the " @@ -1177,11 +1183,11 @@ msgstr "" "lisent ces données. Ceci est effectué en arrière-plan et peut prendre un " "certain temps." -#: src/Views/menu-diagnostics.php:170 +#: src/Views/menu-diagnostics.php:172 msgid "Legacy Cron Schedule" msgstr "Calendrier Cron hérité" -#: src/Views/menu-diagnostics.php:178 +#: src/Views/menu-diagnostics.php:180 msgid "" "The below table will show all currently scheduled cron events for the plugin " "with the next run time." @@ -1189,30 +1195,30 @@ msgstr "" "Le tableau ci-dessous affiche tous les évènements cron actuellement " "planifiés pour l’extension avec la prochaine date d’exécution." -#: src/Views/menu-diagnostics.php:193 +#: src/Views/menu-diagnostics.php:195 msgid "Event" msgstr "Évènement" -#: src/Views/menu-diagnostics.php:196 +#: src/Views/menu-diagnostics.php:198 msgid "Posts and expiration settings" msgstr "Réglages des publications et de l’expiration" -#: src/Views/menu-diagnostics.php:252 +#: src/Views/menu-diagnostics.php:254 msgid "This is a legacy feature and will be removed in a future version." msgstr "" "Il s’agit d’une fonctionnalité héritée du passé qui sera supprimée dans une " "prochaine version." -#: src/Views/menu-display.php:36 +#: src/Views/menu-display.php:38 msgid "Default Formats" msgstr "Formats par défaut" -#: src/Views/menu-display.php:40 +#: src/Views/menu-display.php:42 msgid "Date Format" msgstr "Format de date" #. translators: %s is a link to the PHP date function documentation -#: src/Views/menu-display.php:48 +#: src/Views/menu-display.php:50 msgid "" "The default format to use when displaying the action date within a post " "using the shortcode or within the footer. For information on valid " @@ -1222,16 +1228,16 @@ msgstr "" "publication à l’aide du code court ou dans le pied de page. Pour plus " "d’informations sur les options de formatage valides, voir : %s." -#: src/Views/menu-display.php:52 src/Views/menu-display.php:70 +#: src/Views/menu-display.php:54 src/Views/menu-display.php:72 msgid "PHP Date Function" msgstr "Fonction date de PHP" -#: src/Views/menu-display.php:58 +#: src/Views/menu-display.php:60 msgid "Time Format" msgstr "Format d’heure" #. translators: %s is a link to the PHP date function documentation -#: src/Views/menu-display.php:66 +#: src/Views/menu-display.php:68 msgid "" "The default format to use when displaying the action time within a post " "using the shortcode or within the footer. For information on valid " @@ -1241,11 +1247,11 @@ msgstr "" "publication à l’aide du code court ou dans le pied de page. Pour plus " "d’informations sur les options de formatage valides, voir : %s." -#: src/Views/menu-display.php:79 +#: src/Views/menu-display.php:80 msgid "Post Footer Display" msgstr "Affichage dans le pied de page" -#: src/Views/menu-display.php:81 +#: src/Views/menu-display.php:82 msgid "" "Enabling this below will display the action date automatically at the end of " "any post which is set to run an action." @@ -1254,11 +1260,11 @@ msgstr "" "automatiquement à la fin de toutes les publications qui sont configurées " "pour exécuter une action." -#: src/Views/menu-display.php:88 +#: src/Views/menu-display.php:89 msgid "Show in Post Footer?" msgstr "Afficher dans le pied de page de la publication ?" -#: src/Views/menu-display.php:103 +#: src/Views/menu-display.php:104 msgid "" "This will enable or disable displaying the future action date in the post " "footer." @@ -1266,11 +1272,11 @@ msgstr "" "Cette option permet d’activer ou de désactiver l’affichage de la date de " "l’action Future dans le pied de page de la publication." -#: src/Views/menu-display.php:111 +#: src/Views/menu-display.php:112 msgid "Footer Contents" msgstr "Contenus du pied de page" -#: src/Views/menu-display.php:116 +#: src/Views/menu-display.php:117 msgid "" "Enter the text you would like to appear at the bottom of every post which " "has an action scheduled. The following placeholders will be replaced with " @@ -1281,30 +1287,30 @@ msgstr "" "suivants seront remplacés par la date de l’action future dans le format " "suivant :" -#: src/Views/menu-display.php:134 +#: src/Views/menu-display.php:135 msgid "Footer Style" msgstr "Style du pied de page" -#: src/Views/menu-display.php:139 +#: src/Views/menu-display.php:140 msgid "The inline css which will be used to style the footer text." msgstr "" "Les CSS en ligne qui seront utilisées pour styler le texte de pied de page." -#: src/Views/menu-display.php:142 +#: src/Views/menu-display.php:143 msgid "Example: " msgstr "Exemple : " -#: src/Views/menu-display.php:153 +#: src/Views/menu-display.php:154 msgid "Shortcode" msgstr "Code court" #. translators: %s is the shortcode code wrapped in code tags -#: src/Views/menu-display.php:156 +#: src/Views/menu-display.php:157 msgid "Valid %s attributes:" msgstr "Attributs %s valides :" #. translators: %1$s and %2$s are code tags that wrap the shortcode attribute names -#: src/Views/menu-display.php:161 +#: src/Views/menu-display.php:162 msgid "" "%1$stype%2$s - valid options are %1$sfull%2$s (default), %1$sdate%2$s, " "%1$stime%2$s" @@ -1314,18 +1320,18 @@ msgstr "" #. translators: %s is a code tag that wraps the shortcode attribute dateformat #. translators: %s is a code tag that wraps the shortcode attribute timeformat -#: src/Views/menu-display.php:171 src/Views/menu-display.php:177 +#: src/Views/menu-display.php:172 src/Views/menu-display.php:178 msgid "%s - format set here will override the value set on the settings page" msgstr "" "%s - le format défini ici remplacera la valeur définie sur la page des " "réglages." -#: src/Views/menu-general.php:63 +#: src/Views/menu-general.php:62 msgid "Defaults" msgstr "Défaut" #. translators: %1$s is the link to the PHP strtotime function documentation, %2$s and %3$s are the opening and closing code tags. Please, do not translate the date format text, since PHP will not be able to calculate using non-english terms. -#: src/Views/menu-general.php:75 +#: src/Views/menu-general.php:74 msgid "" "Set the offset to use for the default action date and time. For information " "on formatting, see %1$s\n" @@ -1340,39 +1346,39 @@ msgstr "" "jeudi%3$s. Pour ces valeurs, veuillez utiliser uniquement des termes en " "anglais." -#: src/Views/menu-general.php:93 +#: src/Views/menu-general.php:92 msgid "Email Notification" msgstr "Notification par e-mail" -#: src/Views/menu-general.php:95 +#: src/Views/menu-general.php:94 msgid "Whenever an action runs, an email can be sent to alert users." msgstr "" "Chaque fois qu’une action est exécutée, un e-mail peut être envoyé pour " "alerter les utilisateurs/utilisatrices." -#: src/Views/menu-general.php:102 +#: src/Views/menu-general.php:101 msgid "Enable Email Notification?" msgstr "Activer la notification par e-mail ?" -#: src/Views/menu-general.php:121 +#: src/Views/menu-general.php:120 msgid "" "This will enable or disable the send of email notification on future action." msgstr "" "Ceci vous permet d’activer ou de désactiver l’envoi d’une notification par e-" "mail pour les actions Future." -#: src/Views/menu-general.php:129 +#: src/Views/menu-general.php:128 msgid "Include Blog Administrators?" msgstr "Inclure les Admins ?" -#: src/Views/menu-general.php:150 +#: src/Views/menu-general.php:149 msgid "" "This will include all users with the role of \"Administrator\" in the email." msgstr "" "Tous les utilisateurs et utilisatrices ayant le rôle d’administrateur ou " "administratrice seront inclus dans l’e-mail." -#: src/Views/menu-general.php:166 +#: src/Views/menu-general.php:165 msgid "" "Enter a comma separate list of emails that you would like to be notified " "when the action runs. This will be applied to ALL post types. You can set " diff --git a/languages/post-expirator-it_IT.mo b/languages/post-expirator-it_IT.mo index f7a2e6ca5f0967de25d355d4f44610eb98532910..6d771b1987e5b8f0fc9620d869daf271533c02a6 100644 GIT binary patch delta 4472 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 diff --git a/languages/post-expirator-it_IT.po b/languages/post-expirator-it_IT.po index 071be04d1..89ad594c3 100644 --- a/languages/post-expirator-it_IT.po +++ b/languages/post-expirator-it_IT.po @@ -5,8 +5,8 @@ msgstr "" "Project-Id-Version: Plugins - PublishPress Future: Automatically Unpublish " "WordPress Posts - Stable (latest release)\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/project\n" -"POT-Creation-Date: 2024-07-15T16:44:18+00:00\n" -"PO-Revision-Date: 2024-07-16 20:10+0200\n" +"POT-Creation-Date: 2024-08-05T20:36:02+00:00\n" +"PO-Revision-Date: 2024-08-06 20:25+0200\n" "Last-Translator: \n" "Language-Team: \n" "Language: it\n" @@ -18,12 +18,12 @@ msgstr "" #. Plugin Name of the plugin #: post-expirator.php -#: src/Modules/Expirator/Controllers/BlockEditorController.php:128 -#: src/Modules/Expirator/Controllers/BulkEditController.php:164 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:143 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:346 -#: src/Modules/Expirator/Controllers/QuickEditController.php:246 -#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:84 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:129 +#: src/Modules/Expirator/Controllers/BulkEditController.php:165 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:144 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:362 +#: src/Modules/Expirator/Controllers/QuickEditController.php:270 +#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:85 msgid "PublishPress Future" msgstr "PublishPress Future" @@ -51,27 +51,27 @@ msgstr "PublishPress" msgid "http://publishpress.com" msgstr "http://publishpress.com" -#: legacy/classes/Display.class.php:94 +#: legacy/classes/Display.class.php:106 msgid "You do not have permission to configure PublishPress Future." msgstr "Non hai i permessi per configurare PublishPress Future." -#: legacy/classes/Display.class.php:108 +#: legacy/classes/Display.class.php:120 msgid "Debug is disabled" msgstr "Il debug è disabilitato" -#: legacy/classes/Display.class.php:188 +#: legacy/classes/Display.class.php:204 msgid "Debugging Disabled" msgstr "Debug disabilitato" -#: legacy/classes/Display.class.php:193 +#: legacy/classes/Display.class.php:209 msgid "Debugging Enabled" msgstr "Debug abilitato" -#: legacy/classes/Display.class.php:201 +#: legacy/classes/Display.class.php:217 msgid "Debugging Table Emptied" msgstr "Tabella di debug svuotata" -#: legacy/classes/Display.class.php:207 +#: legacy/classes/Display.class.php:223 msgid "" "The legacy future actions migration has been enqueued and will run " "asynchronously." @@ -79,7 +79,7 @@ msgstr "" "La migrazione delle azioni Future legacy è stata messa in coda e verrà " "eseguita in modo asincrono." -#: legacy/classes/Display.class.php:216 +#: legacy/classes/Display.class.php:232 msgid "" "The legacy actions arguments restoration has been enqueued and will run " "asynchronously." @@ -87,47 +87,47 @@ msgstr "" "Il ripristino degli argomenti delle azioni legacy è stato messo in coda e " "verrà eseguito in modo asincrono." -#: legacy/classes/Display.class.php:226 +#: legacy/classes/Display.class.php:243 msgid "The database schema was fixed." msgstr "Lo schema del database è stato corretto." -#: legacy/classes/Display.class.php:231 +#: legacy/classes/Display.class.php:248 msgid "" "The database schema could not be fixed. Please, contact the support team." msgstr "" "Non è stato possibile correggere lo schema del database. Contattare il team " "di assistenza." -#: legacy/classes/Display.class.php:322 legacy/classes/Display.class.php:380 +#: legacy/classes/Display.class.php:339 legacy/classes/Display.class.php:397 msgid "Saved Options!" msgstr "Opzioni salvate!" #. translators: %1$s is the plugin name, %2$s is the star rating markup -#: legacy/classes/Display.class.php:466 +#: legacy/classes/Display.class.php:483 msgid "If you like %1$s, please leave us a %2$s rating. Thank you!" msgstr "Se ti piace %1$s, lasciaci una valutazione di %2$s. Grazie!" -#: legacy/classes/Display.class.php:481 +#: legacy/classes/Display.class.php:498 msgid "About PublishPress Future" msgstr "Informazioni su PublishPress Future" -#: legacy/classes/Display.class.php:483 +#: legacy/classes/Display.class.php:500 msgid "About" msgstr "Chi siamo" -#: legacy/classes/Display.class.php:489 +#: legacy/classes/Display.class.php:506 msgid "Future Documentation" msgstr "Documentazione di Future" -#: legacy/classes/Display.class.php:491 +#: legacy/classes/Display.class.php:508 msgid "Documentation" msgstr "Documentazione" -#: legacy/classes/Display.class.php:497 +#: legacy/classes/Display.class.php:514 msgid "Contact the PublishPress team" msgstr "Contatta il team di PublishPress" -#: legacy/classes/Display.class.php:499 +#: legacy/classes/Display.class.php:516 msgid "Contact" msgstr "Contatto" @@ -135,152 +135,162 @@ msgstr "Contatto" msgid "No taxonomies found" msgstr "Nessuna tassonomia trovata" -#: services.php:71 src/Modules/Settings/SettingsFacade.php:92 +#: services.php:74 src/Modules/Settings/SettingsFacade.php:93 msgid "l F jS, Y" msgstr "l j F Y" -#: services.php:75 src/Modules/Settings/SettingsFacade.php:93 +#: services.php:78 src/Modules/Settings/SettingsFacade.php:94 msgid "g:ia" msgstr "G:i" -#: services.php:76 src/Modules/Settings/SettingsFacade.php:94 +#: services.php:79 src/Modules/Settings/SettingsFacade.php:95 msgid "Post expires at EXPIRATIONTIME on ACTIONDATE" msgstr "L'articolo scade alle EXPIRATIONTIME del ACTIONDATE" -#: src/Modules/Expirator/Controllers/BlockEditorController.php:127 -#: src/Modules/Expirator/Controllers/BulkEditController.php:163 -#: src/Modules/Expirator/Controllers/QuickEditController.php:245 +#: src/Framework/Logger/DBTableSchemas/DebugLogSchema.php:76 +#: src/Modules/Expirator/DBTableSchemas/ActionArgsSchema.php:84 +msgid "The table %s does not exist." +msgstr "La tabella %s non esiste." + +#: src/Framework/Logger/DBTableSchemas/DebugLogSchema.php:89 +#: src/Modules/Expirator/DBTableSchemas/ActionArgsSchema.php:107 +msgid "The table indexes are invalid: " +msgstr "Gli indici della tabella non sono validi: " + +#: src/Modules/Expirator/Controllers/BlockEditorController.php:128 +#: src/Modules/Expirator/Controllers/BulkEditController.php:164 +#: src/Modules/Expirator/Controllers/QuickEditController.php:269 msgid "Categories" msgstr "Categorie" -#: src/Modules/Expirator/Controllers/BlockEditorController.php:129 -#: src/Modules/Expirator/Controllers/BulkEditController.php:165 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:347 -#: src/Modules/Expirator/Controllers/QuickEditController.php:247 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:130 +#: src/Modules/Expirator/Controllers/BulkEditController.php:166 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:363 +#: src/Modules/Expirator/Controllers/QuickEditController.php:271 msgid "Enable Future Action" msgstr "Abilita scadenza articolo" -#: src/Modules/Expirator/Controllers/BlockEditorController.php:130 -#: src/Modules/Expirator/Controllers/BulkEditController.php:166 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:348 -#: src/Modules/Expirator/Controllers/QuickEditController.php:248 -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:45 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:131 +#: src/Modules/Expirator/Controllers/BulkEditController.php:167 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:364 +#: src/Modules/Expirator/Controllers/QuickEditController.php:272 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:46 msgid "Action" msgstr "Come applicare la scadenza" -#: src/Modules/Expirator/Controllers/BlockEditorController.php:131 -#: src/Modules/Expirator/Controllers/BulkEditController.php:169 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:351 -#: src/Modules/Expirator/Controllers/QuickEditController.php:251 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:132 +#: src/Modules/Expirator/Controllers/BulkEditController.php:170 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:367 +#: src/Modules/Expirator/Controllers/QuickEditController.php:275 msgid "Loading" msgstr "Caricamento in corso" -#: src/Modules/Expirator/Controllers/BlockEditorController.php:132 -#: src/Modules/Expirator/Controllers/BulkEditController.php:167 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:349 -#: src/Modules/Expirator/Controllers/QuickEditController.php:249 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:133 +#: src/Modules/Expirator/Controllers/BulkEditController.php:168 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:365 +#: src/Modules/Expirator/Controllers/QuickEditController.php:273 msgid "Show Calendar" msgstr "Mostra il calendario" -#: src/Modules/Expirator/Controllers/BlockEditorController.php:133 -#: src/Modules/Expirator/Controllers/BulkEditController.php:168 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:350 -#: src/Modules/Expirator/Controllers/QuickEditController.php:250 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:134 +#: src/Modules/Expirator/Controllers/BulkEditController.php:169 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:366 +#: src/Modules/Expirator/Controllers/QuickEditController.php:274 msgid "Hide Calendar" msgstr "Nascondi il calendario" #. translators: the text between {} is the link to the settings page. #. translators: the text between {{}} is the link to the settings page. -#: src/Modules/Expirator/Controllers/BlockEditorController.php:135 -#: src/Modules/Expirator/Controllers/BulkEditController.php:171 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:353 -#: src/Modules/Expirator/Controllers/QuickEditController.php:253 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:136 +#: src/Modules/Expirator/Controllers/BulkEditController.php:172 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:369 +#: src/Modules/Expirator/Controllers/QuickEditController.php:277 msgid "Timezone is controlled by the {WordPress Settings}." msgstr "Il fuso orario è controllato dalle {Impostazioni di WordPress}." #. translators: %s is the name of the taxonomy in plural form. -#: src/Modules/Expirator/Controllers/BlockEditorController.php:139 -#: src/Modules/Expirator/Controllers/BulkEditController.php:175 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:357 -#: src/Modules/Expirator/Controllers/QuickEditController.php:257 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:140 +#: src/Modules/Expirator/Controllers/BulkEditController.php:176 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:376 +#: src/Modules/Expirator/Controllers/QuickEditController.php:281 msgid "No %s found." msgstr "Nessun %s trovato." -#: src/Modules/Expirator/Controllers/BlockEditorController.php:142 -#: src/Modules/Expirator/Controllers/BulkEditController.php:179 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:360 -#: src/Modules/Expirator/Controllers/QuickEditController.php:260 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:143 +#: src/Modules/Expirator/Controllers/BulkEditController.php:180 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:379 +#: src/Modules/Expirator/Controllers/QuickEditController.php:284 msgid "You must assign a taxonomy to this post type to use this feature." msgstr "" "Devi assegnare una tassonomia a questo tipo di contenuto per usare questa " "caratteristica." #. translators: %s is the name of the taxonomy in plural form. -#: src/Modules/Expirator/Controllers/BlockEditorController.php:144 -#: src/Modules/Expirator/Controllers/BulkEditController.php:186 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:362 -#: src/Modules/Expirator/Controllers/QuickEditController.php:262 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:145 +#: src/Modules/Expirator/Controllers/BulkEditController.php:187 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:384 +#: src/Modules/Expirator/Controllers/QuickEditController.php:286 msgid "New %s" msgstr "Nuovo %s" #. translators: %s is the name of the taxonomy in plural form. -#: src/Modules/Expirator/Controllers/BlockEditorController.php:146 -#: src/Modules/Expirator/Controllers/BulkEditController.php:188 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:364 -#: src/Modules/Expirator/Controllers/QuickEditController.php:264 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:147 +#: src/Modules/Expirator/Controllers/BulkEditController.php:189 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:386 +#: src/Modules/Expirator/Controllers/QuickEditController.php:288 msgid "%s to remove" msgstr "%s da rimuovere" #. translators: %s is the name of the taxonomy in plural form. -#: src/Modules/Expirator/Controllers/BlockEditorController.php:148 -#: src/Modules/Expirator/Controllers/BulkEditController.php:190 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:366 -#: src/Modules/Expirator/Controllers/QuickEditController.php:266 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:149 +#: src/Modules/Expirator/Controllers/BulkEditController.php:191 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:388 +#: src/Modules/Expirator/Controllers/QuickEditController.php:290 msgid "%s to add" msgstr "%s da aggiungere" #. translators: %s is the name of the taxonomy in singular form. -#: src/Modules/Expirator/Controllers/BlockEditorController.php:150 -#: src/Modules/Expirator/Controllers/BulkEditController.php:192 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:368 -#: src/Modules/Expirator/Controllers/QuickEditController.php:268 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:151 +#: src/Modules/Expirator/Controllers/BulkEditController.php:193 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:391 +#: src/Modules/Expirator/Controllers/QuickEditController.php:292 msgid "Search for %s" msgstr "Ricerca per %s" -#: src/Modules/Expirator/Controllers/BlockEditorController.php:151 -#: src/Modules/Expirator/Controllers/BulkEditController.php:193 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:369 -#: src/Modules/Expirator/Controllers/QuickEditController.php:269 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:152 +#: src/Modules/Expirator/Controllers/BulkEditController.php:194 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:394 +#: src/Modules/Expirator/Controllers/QuickEditController.php:293 msgid "Select an action" msgstr "Seleziona un'azione" -#: src/Modules/Expirator/Controllers/BlockEditorController.php:152 -#: src/Modules/Expirator/Controllers/BulkEditController.php:194 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:370 -#: src/Modules/Expirator/Controllers/QuickEditController.php:270 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:153 +#: src/Modules/Expirator/Controllers/BulkEditController.php:195 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:395 +#: src/Modules/Expirator/Controllers/QuickEditController.php:294 msgid "Select a date" msgstr "Seleziona una data" -#: src/Modules/Expirator/Controllers/BlockEditorController.php:153 -#: src/Modules/Expirator/Controllers/BulkEditController.php:195 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:371 -#: src/Modules/Expirator/Controllers/QuickEditController.php:271 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:154 +#: src/Modules/Expirator/Controllers/BulkEditController.php:196 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:396 +#: src/Modules/Expirator/Controllers/QuickEditController.php:295 msgid "Date cannot be in the past" msgstr "La data non può essere già passata" #. translators: %s is the name of the taxonomy in singular form. -#: src/Modules/Expirator/Controllers/BlockEditorController.php:156 -#: src/Modules/Expirator/Controllers/BulkEditController.php:198 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:374 -#: src/Modules/Expirator/Controllers/QuickEditController.php:274 -#: src/Modules/Settings/Controllers/Controller.php:245 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:157 +#: src/Modules/Expirator/Controllers/BulkEditController.php:199 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:399 +#: src/Modules/Expirator/Controllers/QuickEditController.php:298 +#: src/Modules/Settings/Controllers/Controller.php:246 msgid "Please select one or more %s" msgstr "Seleziona uno o più %s" -#: src/Modules/Expirator/Controllers/BlockEditorController.php:159 -#: src/Modules/Expirator/Controllers/BulkEditController.php:201 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:377 -#: src/Modules/Expirator/Controllers/QuickEditController.php:277 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:160 +#: src/Modules/Expirator/Controllers/BulkEditController.php:202 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:402 +#: src/Modules/Expirator/Controllers/QuickEditController.php:301 msgid "New status" msgstr "Nuovo stato" @@ -297,76 +307,76 @@ msgstr "Azioni di Future sincronizzate correttamente con metadati articoli." msgid "Update Future Actions from Post Metadata" msgstr "Aggiorna le azioni di Future dai metadati degli articoli" -#: src/Modules/Expirator/Controllers/BulkEditController.php:178 +#: src/Modules/Expirator/Controllers/BulkEditController.php:179 msgid "Future Action Update" msgstr "Aggiornamento azioni Future" -#: src/Modules/Expirator/Controllers/BulkEditController.php:180 +#: src/Modules/Expirator/Controllers/BulkEditController.php:181 msgid "— No Change —" msgstr "— Non cambiare —" -#: src/Modules/Expirator/Controllers/BulkEditController.php:181 +#: src/Modules/Expirator/Controllers/BulkEditController.php:182 msgid "Add or update action for posts" msgstr "Aggiungi o aggiorna azione per gli articoli" -#: src/Modules/Expirator/Controllers/BulkEditController.php:182 +#: src/Modules/Expirator/Controllers/BulkEditController.php:183 msgid "Add action if none exists for posts" msgstr "Aggiungi un'azione se non ne esistono per gli articoli" -#: src/Modules/Expirator/Controllers/BulkEditController.php:183 +#: src/Modules/Expirator/Controllers/BulkEditController.php:184 msgid "Update the existing actions for posts" msgstr "Aggiorna le azioni esistenti per gli articoli" -#: src/Modules/Expirator/Controllers/BulkEditController.php:184 +#: src/Modules/Expirator/Controllers/BulkEditController.php:185 msgid "Remove action from posts" msgstr "Rimuovi l'azione dagli articoli" -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:345 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:361 msgid "Category" msgstr "Categoria" -#: src/Modules/Expirator/Controllers/PluginsListController.php:45 +#: src/Modules/Expirator/Controllers/PluginsListController.php:46 msgid "Settings" msgstr "Impostazioni" -#: src/Modules/Expirator/Controllers/PostListController.php:66 +#: src/Modules/Expirator/Controllers/PostListController.php:75 msgid "Future Action" msgstr "Azione Future" -#: src/Modules/Expirator/Controllers/RestAPIController.php:207 -#: src/Modules/Expirator/Controllers/RestAPIController.php:214 +#: src/Modules/Expirator/Controllers/RestAPIController.php:208 +#: src/Modules/Expirator/Controllers/RestAPIController.php:215 msgid "Invalid date time offset." msgstr "Offset della data non valido." -#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:85 +#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:86 msgid "Future" msgstr "Future" -#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:94 #: src/Modules/Expirator/Controllers/ScheduledActionsController.php:95 +#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:96 #: src/Views/tabs.php:59 msgid "Action Settings" msgstr "Impostazioni delle azioni" -#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:103 #: src/Modules/Expirator/Controllers/ScheduledActionsController.php:104 -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:42 +#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:105 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:43 msgid "Scheduled Actions" msgstr "Azioni programmate" -#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:173 +#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:174 msgid "Log format" msgstr "Formato del registro" -#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:180 +#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:181 msgid "List" msgstr "Elenco" -#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:189 +#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:190 msgid "Popup" msgstr "Popup" -#: src/Modules/Expirator/Controllers/ShortcodeController.php:77 +#: src/Modules/Expirator/Controllers/ShortcodeController.php:79 msgid "" "The shortcode [futureaction] must be used inside the loop or with the " "post_id attribute." @@ -374,6 +384,11 @@ msgstr "" "Lo shortcode [futureaction] deve essere utilizzato dentro il loop o con " "l'attributo post_id." +#: src/Modules/Expirator/DBTableSchemas/ActionArgsSchema.php:96 +msgid "The column args length was not updated to 1000." +msgstr "" +"La lunghezza degli argomenti della colonna non sono stati aggiornati a 1000." + #: src/Modules/Expirator/ExpirationActions/ChangePostStatus.php:54 #: src/Modules/Expirator/ExpirationActions/PostStatusToDraft.php:52 #: src/Modules/Expirator/ExpirationActions/PostStatusToPrivate.php:52 @@ -408,12 +423,12 @@ msgid "Delete" msgstr "Elimina" #. translators: %s is the post type singular label -#: src/Modules/Expirator/ExpirationActions/PostCategoryAdd.php:64 +#: src/Modules/Expirator/ExpirationActions/PostCategoryAdd.php:65 msgid "No terms were added to the %s." msgstr "Nessun termine è stato aggiunto a %s." #. translators: %1$s is the taxonomy label, %2$s is the post type singular label, %3$s is the list of terms added, %4$s is the list of terms on the post -#: src/Modules/Expirator/ExpirationActions/PostCategoryAdd.php:75 +#: src/Modules/Expirator/ExpirationActions/PostCategoryAdd.php:77 msgid "" "The following terms (%1$s) were added to the %2$s: \"%3$s\". The full list " "of terms on the post is: %4$s." @@ -422,7 +437,7 @@ msgstr "" "completa dei termini nell'articolo è: %4$s." #. translators: %s is the taxonomy name (plural) -#: src/Modules/Expirator/ExpirationActions/PostCategoryAdd.php:118 +#: src/Modules/Expirator/ExpirationActions/PostCategoryAdd.php:120 msgid "Add extra %s" msgstr "Aggiungi %s extra" @@ -506,35 +521,35 @@ msgstr "%s è stato rimosso dalla lista in evidenza." msgid "Unstick" msgstr "Rimuovi in evidenza" -#: src/Modules/Expirator/Models/ExpirablePostModel.php:463 +#: src/Modules/Expirator/Models/ExpirablePostModel.php:464 msgid "Email is disabled" msgstr "L'email è disabilitata" -#: src/Modules/Expirator/Models/ExpirablePostModel.php:467 +#: src/Modules/Expirator/Models/ExpirablePostModel.php:468 msgid "Email sent" msgstr "Email inviata" -#: src/Modules/Expirator/Models/ExpirablePostModel.php:467 +#: src/Modules/Expirator/Models/ExpirablePostModel.php:468 msgid "Email not sent" msgstr "Email non inviata" #. translators: %1$s: post title placeholder, %2$s: notification text, %3$s: action date placeholder, %4$s: post link placeholder -#: src/Modules/Expirator/Models/ExpirablePostModel.php:617 +#: src/Modules/Expirator/Models/ExpirablePostModel.php:618 msgid "%1$s. %2$s on %3$s. The post link is %4$s" msgstr "%1$s. %2$s il %3$s. Il link dell'articolo è %4$s" #. translators: %s is the post title -#: src/Modules/Expirator/Models/ExpirablePostModel.php:635 +#: src/Modules/Expirator/Models/ExpirablePostModel.php:636 msgid "Future Action Complete \"%s\"" msgstr "Scadenza articolo completata \"%s\"" #. translators: 1: is the blog name, 2: the email subject -#: src/Modules/Expirator/Models/ExpirablePostModel.php:639 +#: src/Modules/Expirator/Models/ExpirablePostModel.php:640 msgid "[%1$s] %2$s" msgstr "[%1$s] %2$s" #. translators: %s is the date/time offset and %s is the post type. -#: src/Modules/Expirator/Models/PostTypeDefaultDataModel.php:135 +#: src/Modules/Expirator/Models/PostTypeDefaultDataModel.php:137 msgid "" "Invalid date/time offset \"%s\" for post type \"%s\". Please ensure you use " "only English terms for the date/time offset, such as \"3 months\" or \"1 " @@ -544,87 +559,87 @@ msgstr "" "Assicurati di utilizzare solo termini inglesi per lo scostamento di data/" "ora, come \"3 months\" (3 mesi) o \"1 week\" (1 settimana)." -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:48 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:49 msgid "Status" msgstr "Stato" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:49 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:50 msgid "Arguments" msgstr "Argomenti" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:50 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:51 msgid "Logs" msgstr "Registri" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:51 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:52 msgid "Scheduled Date" msgstr "Data programmata" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:52 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:53 msgid "Recurrence" msgstr "Ricorrenza" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:60 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:61 msgid "Run" msgstr "Esegui" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:61 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:62 msgid "Process the action now" msgstr "Elabora ora l'azione" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:64 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:65 msgid "Cancel" msgstr "Annulla" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:65 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:66 msgid "" "Cancel the action. This will prevent the action from running in the future" msgstr "Annulla l'azione adesso per evitare che venga avviata in seguito" #. translators: %s: amount of time -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:78 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:79 msgid "%s year" msgid_plural "%s years" msgstr[0] "%s anno" msgstr[1] "%s anni" #. translators: %s: amount of time -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:83 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:84 msgid "%s month" msgid_plural "%s months" msgstr[0] "%s mese" msgstr[1] "%s mesi" #. translators: %s: amount of time -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:88 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:89 msgid "%s week" msgid_plural "%s weeks" msgstr[0] "%s settimana" msgstr[1] "%s settimane" #. translators: %s: amount of time -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:93 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:94 msgid "%s day" msgid_plural "%s days" msgstr[0] "%s giorno" msgstr[1] "%s giorni" #. translators: %s: amount of time -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:98 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:99 msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s ora" msgstr[1] "%s ore" #. translators: %s: amount of time -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:103 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:104 msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s minuto" msgstr[1] "%s minuti" #. translators: %s: amount of time -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:108 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:109 msgid "%s second" msgid_plural "%s seconds" msgstr[0] "%s secondo" @@ -639,7 +654,7 @@ msgid "Uninitialized" msgstr "Non inizializzato" #: src/Modules/Expirator/Tables/ScheduledActionsTable.php:273 -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:339 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:340 msgid "Scheduled" msgstr "Programmato" @@ -663,87 +678,87 @@ msgstr "In esecuzione" msgid "All" msgstr "Tutto" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:314 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:315 msgid "Search hook, args and claim ID" msgstr "Cerca hook, argomenti e ID richiesta" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:343 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:344 msgid "Completed" msgstr "Completato" #. translators: %1$s: post type label, %2$d: post ID, %3$s: post link tag start, %4$s: post title, %5$s: post link tag end -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:448 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:449 msgid "%1$s: [%2$d] %3$s%4$s%5$s" msgstr "%1$s: [%2$d] %3$s%4$s%5$s" #. translators: %s is the new status -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:483 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:484 msgid "New Status: %s" msgstr "Nuovo stato: %s" #. translators: %s is the list of terms -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:491 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:492 msgid "Terms: %s" msgstr "Termini: %s" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:594 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:595 msgid "View log" msgstr "Visualizza registro" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:605 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:606 msgid "Action: " msgstr "Aazione: " -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:611 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:612 msgid "Status: " msgstr "Stato: " -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:617 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:618 msgid "Arguments: " msgstr "Argomenti: " -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:623 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:624 msgid "Scheduled date: " msgstr "Data programmata: " -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:637 -#: src/Views/menu-diagnostics.php:190 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:638 +#: src/Views/menu-diagnostics.php:192 msgid "Date" msgstr "Data" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:638 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:639 #: src/Views/menu-debug-log.php:37 msgid "Message" msgstr "Messaggio" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:672 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:673 msgid "Async" msgstr "Asincrono" #. translators: %s is the date interval in human readable format in the past -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:689 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:690 msgid " (%s ago)" msgstr " (%s fa)" #. translators: %s is the date interval in human readable format in the present or future -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:695 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:696 msgid " (%s)" msgstr " (%s)" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:719 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:720 msgid "Now!" msgstr "Adesso!" #. translators: %s: time interval -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:768 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:770 msgid "Every %s" msgstr "Ogni %s" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:774 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:776 msgid "Non-repeating" msgstr "Non ripetibile" -#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:783 +#: src/Modules/Expirator/Tables/ScheduledActionsTable.php:786 msgid "No Scheduled Actions." msgstr "Nessuna azione programmata." @@ -759,12 +774,12 @@ msgstr "" #: src/Modules/ProFeaturesAds/views/actions-workflows-page.html.php:18 #: src/Modules/VersionNotices/Module.php:125 -#: src/Views/ad-banner-right-sidebar.php:35 +#: src/Views/ad-banner-right-sidebar.php:37 msgid "Upgrade to Pro" msgstr "Aggiorna a Pro" #. translators: %1$s is the link to the PHP strtotime function documentation, %2$s and %3$s are the opening and closing code tags. Please, do not translate the date format text, since PHP will not be able to calculate using non-english terms. -#: src/Modules/Settings/Controllers/Controller.php:198 +#: src/Modules/Settings/Controllers/Controller.php:199 msgid "" "Set the offset to use for the default action date and time. For information " "on formatting, see %1$s\n" @@ -778,11 +793,11 @@ msgstr "" "week 2 days 4 hours 2 seconds%3$s o %2$snext Thursday%3$s. Comunque " "ricordati che puoi inserire solo valori in inglese." -#: src/Modules/Settings/Controllers/Controller.php:209 +#: src/Modules/Settings/Controllers/Controller.php:210 msgid "Default Values" msgstr "Valori predefiniti" -#: src/Modules/Settings/Controllers/Controller.php:210 +#: src/Modules/Settings/Controllers/Controller.php:211 msgid "" "Use the values below to set the default actions/values to be used for each " "for the corresponding post types. These values can all be overwritten when " @@ -793,40 +808,40 @@ msgstr "" "possono essere tutti sovrascritti in fase di creazione/modifica di ciascun " "articolo/pagina." -#: src/Modules/Settings/Controllers/Controller.php:214 +#: src/Modules/Settings/Controllers/Controller.php:215 msgid "Active" msgstr "Attivo" -#: src/Modules/Settings/Controllers/Controller.php:215 +#: src/Modules/Settings/Controllers/Controller.php:216 msgid "Activate the PublishPress Future actions for this post type" msgstr "Abilita le azioni PublishPress Future per questo tipo di contenuto" -#: src/Modules/Settings/Controllers/Controller.php:216 +#: src/Modules/Settings/Controllers/Controller.php:217 msgid "Default Action" msgstr "Azione predefinita" -#: src/Modules/Settings/Controllers/Controller.php:217 +#: src/Modules/Settings/Controllers/Controller.php:218 msgid "Select the default action for the post type." msgstr "Seleziona l'azione di scadenza predefinita per il tipo di contenuto." -#: src/Modules/Settings/Controllers/Controller.php:221 -#: src/Views/taxonomy-field.php:11 +#: src/Modules/Settings/Controllers/Controller.php:222 +#: src/Views/taxonomy-field.php:14 msgid "Select the taxonomy to be used for actions." msgstr "Seleziona la tassonomia da utilizzare per le azioni." -#: src/Modules/Settings/Controllers/Controller.php:225 +#: src/Modules/Settings/Controllers/Controller.php:226 msgid "Auto-enable" msgstr "Abilitazione automatica" -#: src/Modules/Settings/Controllers/Controller.php:226 +#: src/Modules/Settings/Controllers/Controller.php:227 msgid "Enabled for all new posts" msgstr "Abilitato per tutti i nuovi articoli" -#: src/Modules/Settings/Controllers/Controller.php:227 +#: src/Modules/Settings/Controllers/Controller.php:228 msgid "Taxonomy" msgstr "Tassonomia" -#: src/Modules/Settings/Controllers/Controller.php:228 +#: src/Modules/Settings/Controllers/Controller.php:229 msgid "" "No taxonomies found for this post type. Taxonomy actions will not be " "available." @@ -834,12 +849,12 @@ msgstr "" "Non sono state trovate tassonomie per questo tipo di contenuto. Le azioni " "della tassonomia non saranno disponibili." -#: src/Modules/Settings/Controllers/Controller.php:229 -#: src/Views/menu-general.php:159 +#: src/Modules/Settings/Controllers/Controller.php:230 +#: src/Views/menu-general.php:158 msgid "Who to Notify" msgstr "Chi avvisare" -#: src/Modules/Settings/Controllers/Controller.php:230 +#: src/Modules/Settings/Controllers/Controller.php:231 msgid "" "Enter a comma separated list of emails that you would like to be notified " "when the action runs." @@ -847,45 +862,45 @@ msgstr "" "Inserisci un elenco di email separate da virgola a cui vuoi inviare una " "notifica quando l'azione è in esecuzione." -#: src/Modules/Settings/Controllers/Controller.php:234 -#: src/Views/menu-general.php:67 +#: src/Modules/Settings/Controllers/Controller.php:235 +#: src/Views/menu-general.php:66 msgid "Default Date/Time Offset" msgstr "Offset data/ora predefinito" -#: src/Modules/Settings/Controllers/Controller.php:237 -#: src/Views/menu-general.php:83 +#: src/Modules/Settings/Controllers/Controller.php:238 +#: src/Views/menu-general.php:82 msgid "PHP strtotime function" msgstr "Funzione PHP strtotime" -#: src/Modules/Settings/Controllers/Controller.php:241 +#: src/Modules/Settings/Controllers/Controller.php:242 msgid "Default terms:" msgstr "Termini predefiniti:" -#: src/Modules/Settings/Controllers/Controller.php:242 +#: src/Modules/Settings/Controllers/Controller.php:243 msgid "Save changes" msgstr "Salva modifiche" -#: src/Modules/Settings/Controllers/Controller.php:243 +#: src/Modules/Settings/Controllers/Controller.php:244 msgid "Wait for the validation..." msgstr "Aspetta, validazione in corso…" -#: src/Modules/Settings/Controllers/Controller.php:246 +#: src/Modules/Settings/Controllers/Controller.php:247 msgid "Date Preview" msgstr "Anteprima della data" -#: src/Modules/Settings/Controllers/Controller.php:247 +#: src/Modules/Settings/Controllers/Controller.php:248 msgid "Current Date" msgstr "Data attuale" -#: src/Modules/Settings/Controllers/Controller.php:248 +#: src/Modules/Settings/Controllers/Controller.php:249 msgid "Computed Date" msgstr "Data calcolata" -#: src/Modules/Settings/Controllers/Controller.php:249 +#: src/Modules/Settings/Controllers/Controller.php:250 msgid "Error" msgstr "Errore" -#: src/Modules/Settings/Controllers/Controller.php:349 +#: src/Modules/Settings/Controllers/Controller.php:352 msgid "Form Validation Failure: Sorry, your nonce did not verify." msgstr "Errore di convalida del modulo: il nonce non è stato verificato." @@ -898,65 +913,65 @@ msgstr "" "Stai utilizzando PublishPress Future Free. La versione Pro ha più " "caratteristiche e supporto. %1$sAggiorna a Pro%2$s" -#: src/Views/ad-banner-right-sidebar.php:10 +#: src/Views/ad-banner-right-sidebar.php:12 msgid "Upgrade to PublishPress Future Pro" msgstr "Aggiorna a PublishPress Future Pro" -#: src/Views/ad-banner-right-sidebar.php:16 +#: src/Views/ad-banner-right-sidebar.php:18 msgid "Enhance the power of PublishPress Future with the Pro version:" msgstr "Aumenta le potenzialità di PublishPress Future con la versione Pro:" -#: src/Views/ad-banner-right-sidebar.php:23 +#: src/Views/ad-banner-right-sidebar.php:25 msgid "Design custom workflows with multiple actions" msgstr "Disegna flussi di lavoro personalizzati con azioni multiple" -#: src/Views/ad-banner-right-sidebar.php:25 +#: src/Views/ad-banner-right-sidebar.php:27 msgid "Schedule actions based on the post's publishing date" msgstr "" "Programma la data dell'azione basata sulla data di pubblicazione " "dell'articolo" -#: src/Views/ad-banner-right-sidebar.php:27 +#: src/Views/ad-banner-right-sidebar.php:29 msgid "Move posts to custom statuses" msgstr "Sposta gli articoli negli stati personalizzati" -#: src/Views/ad-banner-right-sidebar.php:29 +#: src/Views/ad-banner-right-sidebar.php:31 msgid "Use other plugins to control Future Actions" msgstr "Utilizza gli altri plugin per controllare le azioni di \"Future\"" -#: src/Views/ad-banner-right-sidebar.php:31 +#: src/Views/ad-banner-right-sidebar.php:33 msgid "Enjoy fast and professional support" msgstr "Godi di un supporto rapido e professionale" -#: src/Views/ad-banner-right-sidebar.php:43 +#: src/Views/ad-banner-right-sidebar.php:45 msgid "Need PublishPress Future Support?" msgstr "Hai bisogno del supporto di PublishPress Future?" -#: src/Views/ad-banner-right-sidebar.php:49 +#: src/Views/ad-banner-right-sidebar.php:51 msgid "If you need help or have a new feature request, let us know." msgstr "" "Se hai bisogno di aiuto o hai delle richieste di funzionalità, faccelo " "sapere." -#: src/Views/ad-banner-right-sidebar.php:55 +#: src/Views/ad-banner-right-sidebar.php:57 msgid "Request Support" msgstr "Rchiesta di supporto" -#: src/Views/ad-banner-right-sidebar.php:66 +#: src/Views/ad-banner-right-sidebar.php:68 msgid "Detailed documentation is also available on the plugin website." msgstr "" "Una documentazione dettagliata è anche disponibile sul sito web del plugin." -#: src/Views/ad-banner-right-sidebar.php:73 +#: src/Views/ad-banner-right-sidebar.php:75 msgid "View Knowledge Base" msgstr "Vedi la documentazione" #. translators: %1$s opens a span tag, %2$s is the action name, %3$s ends a span tag, %4$s is the a span tag, %5$s is the a span tag, %6$s is the a span tag -#: src/Views/expire-column.php:55 +#: src/Views/expire-column.php:57 msgid "%1$s%2$s%3$s on %5$s%4$s%6$s" msgstr "%1$s%2$s%3$s il %5$s%4$s%6$s" -#: src/Views/expire-column.php:92 +#: src/Views/expire-column.php:95 msgid "" "Action was not scheduled due to a configuration issue. Please attempt to " "schedule it again." @@ -964,15 +979,15 @@ msgstr "" "L'azione non può essere programmata a causa di un problema di " "configurazione. Prova a riprogrammarla nuovamente." -#: src/Views/expire-column.php:97 +#: src/Views/expire-column.php:103 msgid "No future action" msgstr "Nessuna azione Future" -#: src/Views/menu-advanced.php:25 +#: src/Views/menu-advanced.php:27 msgid "Advanced Options" msgstr "Opzioni avanzate" -#: src/Views/menu-advanced.php:27 +#: src/Views/menu-advanced.php:29 msgid "" "Please do not update anything here unless you know what it entails. For " "advanced users only." @@ -980,67 +995,67 @@ msgstr "" "Si raccomanda di non aggiornare nulla qui se non se ne conoscono le " "conseguenze. Solo per utenti avanzati." -#: src/Views/menu-advanced.php:38 +#: src/Views/menu-advanced.php:40 msgid "Future Action Column Style" msgstr "Stile colonna delle azioni Future" -#: src/Views/menu-advanced.php:49 +#: src/Views/menu-advanced.php:51 msgid "Detailed" msgstr "Dettagliate" -#: src/Views/menu-advanced.php:51 +#: src/Views/menu-advanced.php:53 msgid "Displays all information in the Future Action column." msgstr "Visualizza tutte le informazioni nella colonna \"Azioni di Future\"." -#: src/Views/menu-advanced.php:63 +#: src/Views/menu-advanced.php:65 msgid "Simplified" msgstr "Semplificate" -#: src/Views/menu-advanced.php:65 +#: src/Views/menu-advanced.php:67 msgid "Displays only the icon and date/time." msgstr "Visualizza solo l'icona, la data e l'ora." -#: src/Views/menu-advanced.php:74 +#: src/Views/menu-advanced.php:76 msgid "Time format in the date picker" msgstr "Formato dell'ora nel selezionatore di data" -#: src/Views/menu-advanced.php:85 +#: src/Views/menu-advanced.php:87 msgid "Inherit from Site Settings" msgstr "Eredita dalle impostazioni del sito" -#: src/Views/menu-advanced.php:93 +#: src/Views/menu-advanced.php:95 msgid "24 hours" msgstr "24 ore" -#: src/Views/menu-advanced.php:101 +#: src/Views/menu-advanced.php:103 msgid "AM/PM" msgstr "AM/PM" -#: src/Views/menu-advanced.php:108 +#: src/Views/menu-advanced.php:110 msgid "Choose Which User Roles Can Use PublishPress Future" msgstr "Scegli quali ruoli utente possono utilizzare PublishPress Future" -#: src/Views/menu-advanced.php:139 +#: src/Views/menu-advanced.php:146 msgid "Preserve Data After Deactivating the Plugin" msgstr "Conserva i dati dopo la disattivazione del plugin" -#: src/Views/menu-advanced.php:149 +#: src/Views/menu-advanced.php:156 msgid "Preserve data" msgstr "Conserva i dati" -#: src/Views/menu-advanced.php:159 +#: src/Views/menu-advanced.php:166 msgid "Delete data" msgstr "Elimina i dati" -#: src/Views/menu-advanced.php:164 +#: src/Views/menu-advanced.php:171 msgid "" "Toggle between preserving or deleting data after the plugin is deactivated." msgstr "" "Attiva/disattiva la conservazione o l'eliminazione dei dati dopo la " "disattivazione del plugin." -#: src/Views/menu-advanced.php:175 src/Views/menu-display.php:184 -#: src/Views/menu-general.php:177 +#: src/Views/menu-advanced.php:182 src/Views/menu-display.php:185 +#: src/Views/menu-general.php:176 msgid "Save Changes" msgstr "Salva modifiche" @@ -1060,84 +1075,75 @@ msgstr "La tabella di debug è attualmente vuota." msgid "Timestamp" msgstr "Data e ora" -#: src/Views/menu-diagnostics.php:26 +#: src/Views/menu-diagnostics.php:39 msgid "Advanced Diagnostics and Tools" msgstr "Diagnostica e strumenti avanzati" -#: src/Views/menu-diagnostics.php:30 +#: src/Views/menu-diagnostics.php:43 msgid "WP-Cron Status Check" msgstr "Controllo stato di WP-Cron" -#: src/Views/menu-diagnostics.php:34 src/Views/menu-diagnostics.php:47 +#: src/Views/menu-diagnostics.php:47 src/Views/menu-diagnostics.php:60 msgid "Passed" msgstr "Approvato" -#: src/Views/menu-diagnostics.php:37 +#: src/Views/menu-diagnostics.php:50 msgid "WP Cron Disabled" msgstr "WP Cron disabilitato" -#: src/Views/menu-diagnostics.php:43 +#: src/Views/menu-diagnostics.php:56 msgid "Database Schema Check" msgstr "Controllo schema database" -#: src/Views/menu-diagnostics.php:51 +#: src/Views/menu-diagnostics.php:64 msgid "Error found on the database schema:" msgid_plural "Errors found on the database schema:" msgstr[0] "Trovato un errore nello schema del database:" msgstr[1] "Trovati degli errori nello schema del database:" -#: src/Views/menu-diagnostics.php:66 -msgid "The table _ppfuture_actions_args does not exist." -msgstr "La tabella _ppfuture_actions_args non esiste." - -#: src/Views/menu-diagnostics.php:72 -msgid "The column args length was not updated to 1000." -msgstr "" -"La lunghezza degli argomenti della colonna non sono stati aggiornati a 1000." - -#: src/Views/menu-diagnostics.php:84 -msgid "Fix Database" -msgstr "Correggi database" +#: src/Views/menu-diagnostics.php:86 +msgid "Try to Fix Database" +msgstr "Cerca di correggere il database" -#: src/Views/menu-diagnostics.php:93 +#: src/Views/menu-diagnostics.php:95 msgid "Debug Logging" msgstr "Registrazione di debug" -#: src/Views/menu-diagnostics.php:97 src/Views/menu-display.php:94 -#: src/Views/menu-general.php:110 src/Views/menu-general.php:138 +#: src/Views/menu-diagnostics.php:99 src/Views/menu-display.php:95 +#: src/Views/menu-general.php:109 src/Views/menu-general.php:137 msgid "Enabled" msgstr "Abilitato" -#: src/Views/menu-diagnostics.php:100 +#: src/Views/menu-diagnostics.php:102 msgid "Disable Debugging" msgstr "Disattiva il debugging" -#: src/Views/menu-diagnostics.php:106 +#: src/Views/menu-diagnostics.php:108 msgid "Purge Debug Log" msgstr "Svuota il registro di debug" -#: src/Views/menu-diagnostics.php:114 +#: src/Views/menu-diagnostics.php:116 msgid "View Debug Logs" msgstr "Visualizza i log di debug" -#: src/Views/menu-diagnostics.php:117 src/Views/menu-display.php:100 -#: src/Views/menu-general.php:118 src/Views/menu-general.php:147 +#: src/Views/menu-diagnostics.php:119 src/Views/menu-display.php:101 +#: src/Views/menu-general.php:117 src/Views/menu-general.php:146 msgid "Disabled" msgstr "Disabilitato" -#: src/Views/menu-diagnostics.php:120 +#: src/Views/menu-diagnostics.php:122 msgid "Enable Debugging" msgstr "Attiva il debugging" -#: src/Views/menu-diagnostics.php:133 +#: src/Views/menu-diagnostics.php:135 msgid "Migrate Legacy Future Actions" msgstr "Migrare le azioni Future legacy" -#: src/Views/menu-diagnostics.php:137 +#: src/Views/menu-diagnostics.php:139 msgid "Run Migration" msgstr "Esegui migrazione" -#: src/Views/menu-diagnostics.php:140 +#: src/Views/menu-diagnostics.php:142 msgid "" "Migrate legacy future actions from WP Cron to the new Action Scheduler. This " "will run in the background and may take a while." @@ -1146,15 +1152,15 @@ msgstr "" "Questa operazione verrà eseguita in background e potrebbe richiedere un po' " "di tempo." -#: src/Views/menu-diagnostics.php:150 +#: src/Views/menu-diagnostics.php:152 msgid "Restore Legacy Action Arguments" msgstr "Ripristina gli argomenti delle azioni precedenti" -#: src/Views/menu-diagnostics.php:154 +#: src/Views/menu-diagnostics.php:156 msgid "Run Data Restoration" msgstr "Avvia il ripristino del database" -#: src/Views/menu-diagnostics.php:157 +#: src/Views/menu-diagnostics.php:159 msgid "" "Restore legacy action arguments as Post Meta. This is useful if you have " "issues with 3rd party plugins that read that data. This will run in the " @@ -1164,11 +1170,11 @@ msgstr "" "se si hanno problemi con i plugin di terze parti che leggono questi dati. " "L'esecuzione averrà in background e potrebbe richiedere un po' di tempo." -#: src/Views/menu-diagnostics.php:170 +#: src/Views/menu-diagnostics.php:172 msgid "Legacy Cron Schedule" msgstr "Programma di Cron Legacy" -#: src/Views/menu-diagnostics.php:178 +#: src/Views/menu-diagnostics.php:180 msgid "" "The below table will show all currently scheduled cron events for the plugin " "with the next run time." @@ -1176,29 +1182,29 @@ msgstr "" "La tabella seguente mostra tutti gli eventi cron attualmente programmati per " "il plugin con il prossimo orario di esecuzione." -#: src/Views/menu-diagnostics.php:193 +#: src/Views/menu-diagnostics.php:195 msgid "Event" msgstr "Evento" -#: src/Views/menu-diagnostics.php:196 +#: src/Views/menu-diagnostics.php:198 msgid "Posts and expiration settings" msgstr "Impostazioni degli articoli e della scadenza" -#: src/Views/menu-diagnostics.php:252 +#: src/Views/menu-diagnostics.php:254 msgid "This is a legacy feature and will be removed in a future version." msgstr "" "Questa è una funzionalità legacy che sarà rimossa in una prossima versione." -#: src/Views/menu-display.php:36 +#: src/Views/menu-display.php:38 msgid "Default Formats" msgstr "Formati predefiniti" -#: src/Views/menu-display.php:40 +#: src/Views/menu-display.php:42 msgid "Date Format" msgstr "Formato data" #. translators: %s is a link to the PHP date function documentation -#: src/Views/menu-display.php:48 +#: src/Views/menu-display.php:50 msgid "" "The default format to use when displaying the action date within a post " "using the shortcode or within the footer. For information on valid " @@ -1208,16 +1214,16 @@ msgstr "" "scadenza all'interno di un articolo utilizzando lo shortcode o nel footer. " "Per informazioni sulle opzioni di formattazione valide, vedere: %s." -#: src/Views/menu-display.php:52 src/Views/menu-display.php:70 +#: src/Views/menu-display.php:54 src/Views/menu-display.php:72 msgid "PHP Date Function" msgstr "Funzione data PHP" -#: src/Views/menu-display.php:58 +#: src/Views/menu-display.php:60 msgid "Time Format" msgstr "Formato ora" #. translators: %s is a link to the PHP date function documentation -#: src/Views/menu-display.php:66 +#: src/Views/menu-display.php:68 msgid "" "The default format to use when displaying the action time within a post " "using the shortcode or within the footer. For information on valid " @@ -1227,11 +1233,11 @@ msgstr "" "all'interno di un articolo utilizzando lo shortcode o nel footer. Per " "informazioni sulle opzioni di formattazione valide, vedere: %s." -#: src/Views/menu-display.php:79 +#: src/Views/menu-display.php:80 msgid "Post Footer Display" msgstr "Visualizzazione nel footer" -#: src/Views/menu-display.php:81 +#: src/Views/menu-display.php:82 msgid "" "Enabling this below will display the action date automatically at the end of " "any post which is set to run an action." @@ -1239,11 +1245,11 @@ msgstr "" "Abilitando l'opzione seguente verrà mostrata automaticamente la data di " "scadenza alla fine di ogni articolo che è impostato per scadere." -#: src/Views/menu-display.php:88 +#: src/Views/menu-display.php:89 msgid "Show in Post Footer?" msgstr "Mostrare nel footer dell'articolo?" -#: src/Views/menu-display.php:103 +#: src/Views/menu-display.php:104 msgid "" "This will enable or disable displaying the future action date in the post " "footer." @@ -1251,11 +1257,11 @@ msgstr "" "Questo abiliterà o disabiliterà la visualizzazione della data di scadenza " "dell'articolo nel footer dello stesso." -#: src/Views/menu-display.php:111 +#: src/Views/menu-display.php:112 msgid "Footer Contents" msgstr "Contenuto del footer" -#: src/Views/menu-display.php:116 +#: src/Views/menu-display.php:117 msgid "" "Enter the text you would like to appear at the bottom of every post which " "has an action scheduled. The following placeholders will be replaced with " @@ -1265,31 +1271,31 @@ msgstr "" "impostato con una scadenza. I seguenti segnaposto verranno sostituiti con la " "data di scadenza nel modo indicato:" -#: src/Views/menu-display.php:134 +#: src/Views/menu-display.php:135 msgid "Footer Style" msgstr "Stile del footer" -#: src/Views/menu-display.php:139 +#: src/Views/menu-display.php:140 msgid "The inline css which will be used to style the footer text." msgstr "" "Il css inline che verrà utilizzato per definire lo stile del testo del " "footer." -#: src/Views/menu-display.php:142 +#: src/Views/menu-display.php:143 msgid "Example: " msgstr "Esempio: " -#: src/Views/menu-display.php:153 +#: src/Views/menu-display.php:154 msgid "Shortcode" msgstr "Shortcode" #. translators: %s is the shortcode code wrapped in code tags -#: src/Views/menu-display.php:156 +#: src/Views/menu-display.php:157 msgid "Valid %s attributes:" msgstr "Attributi %s validi:" #. translators: %1$s and %2$s are code tags that wrap the shortcode attribute names -#: src/Views/menu-display.php:161 +#: src/Views/menu-display.php:162 msgid "" "%1$stype%2$s - valid options are %1$sfull%2$s (default), %1$sdate%2$s, " "%1$stime%2$s" @@ -1299,18 +1305,18 @@ msgstr "" #. translators: %s is a code tag that wraps the shortcode attribute dateformat #. translators: %s is a code tag that wraps the shortcode attribute timeformat -#: src/Views/menu-display.php:171 src/Views/menu-display.php:177 +#: src/Views/menu-display.php:172 src/Views/menu-display.php:178 msgid "%s - format set here will override the value set on the settings page" msgstr "" "%s - il formato impostato qui sovrascrive il valore configurato nella pagina " "delle impostazioni" -#: src/Views/menu-general.php:63 +#: src/Views/menu-general.php:62 msgid "Defaults" msgstr "Valori predefiniti" #. translators: %1$s is the link to the PHP strtotime function documentation, %2$s and %3$s are the opening and closing code tags. Please, do not translate the date format text, since PHP will not be able to calculate using non-english terms. -#: src/Views/menu-general.php:75 +#: src/Views/menu-general.php:74 msgid "" "Set the offset to use for the default action date and time. For information " "on formatting, see %1$s\n" @@ -1324,39 +1330,39 @@ msgstr "" "month%3$s o %2$s+1 week 2 days 4 hours 2 seconds%3$s o %2$snext " "Thursday%3$s. Comunque ricordati che puoi inserire solo valori in inglese." -#: src/Views/menu-general.php:93 +#: src/Views/menu-general.php:92 msgid "Email Notification" msgstr "Email di notifica scadenza" -#: src/Views/menu-general.php:95 +#: src/Views/menu-general.php:94 msgid "Whenever an action runs, an email can be sent to alert users." msgstr "" "Ogni volta che un articolo scade, un'email può essere spedita per avvisare " "gli utenti della scadenza." -#: src/Views/menu-general.php:102 +#: src/Views/menu-general.php:101 msgid "Enable Email Notification?" msgstr "Abilita notifica email?" -#: src/Views/menu-general.php:121 +#: src/Views/menu-general.php:120 msgid "" "This will enable or disable the send of email notification on future action." msgstr "" "Questo abiliterà o disabiliterà l'invio della notifica via email alla " "scadenza dell'articolo." -#: src/Views/menu-general.php:129 +#: src/Views/menu-general.php:128 msgid "Include Blog Administrators?" msgstr "Includere gli amministratori del blog?" -#: src/Views/menu-general.php:150 +#: src/Views/menu-general.php:149 msgid "" "This will include all users with the role of \"Administrator\" in the email." msgstr "" "Ciò includerà tutti gli utenti con il ruolo di \"Amministratore\" nell'email " "di scadenza dell'articolo." -#: src/Views/menu-general.php:166 +#: src/Views/menu-general.php:165 msgid "" "Enter a comma separate list of emails that you would like to be notified " "when the action runs. This will be applied to ALL post types. You can set " diff --git a/languages/post-expirator-nl_NL.mo b/languages/post-expirator-nl_NL.mo index 2d35aa34c0b2f44c8978960f26475ffb678faa90..9ea356d93fad63bae30e810c58757f805e27d2a8 100644 GIT binary patch delta 2278 zcmYM#e@s&;8jZ$iV$o;Rv45M)(JYT5Z{ke~Mavm^s>7Qy5$J{&-Hcot@Y7Je>PH-{<>$ z&*606Xy1D;rZ}_BEF)l+gN1k#mSZkfVj-@kO9>E~KiOg+hQ30ICH2e*#a1v{9A-l-LcDxn4 zP|x?H0zT^b25OymP=S3g+cDch;}iqMSTe_rtO5P>*P$}80lBQ3+dO<8LwF1q;3r5d z_ABP&72JT?L_yQGRaXx!vpr5J3Gfh)UTqEX6wHvZy!Si%R7y zo&%_i9Y-xRg6nYt*WyZ|tH&4cA#^^cQJTV}bJ-DA7r3c>;ubdpQBLDZ2AVkZt`BNoheYaoisOc(0Np2H;dXGdvhM=c>Y)!R|2??vrk zFRBIxP|pqFDm;TavKdrS`Y9j<8o(xO#I1N36<{i>>bV?LM)I(N^({g}k+Y>|8R_o9mN0ZheKR0bbMWvU&u^BqXpS^pyP zulM{I18mw(qxwIgGBSfoy)W$c^HGt9P;W&9@5dU<#FtPT+KXE7IQsA;DzJ}GnLLZi z&_tO0E0SpjwDVlHr88cDda%lK9cqGZjAJjV1}GCb7Q7QTIW*E~96=S`AW|=u^!h(|UPh%<@76t#hN_YKP#HOh3V0BefitL`e}@@3 zj#}quZ~P+m(03+jET^$~sXM_T)NArSDxfiM`~u!V|4&?orQFnCk2<24Q40@X3%-py z>(txb9S4y;SQu4PEy(3qf_p9lCol_>czt2d3#f&DM-^KU9Zg(?dal{C9d)KXco)8k z3H%bbVja6|#vyFPDIC}PUtggHQLS(Tm_k2&-%9uO%0Vr>0<~}xYA2hKP1=4`s>hJa zzTl?cUqk)QU+LCN369d=kDp;{6#?q~FQO85;y#R{kMJ9C7wQXm3On&CHeq|U*~54e zb@r(|By(^V22szwhC2HR%*BhS@5M9@<2=4rj;jAF8cN+SsFcol{Txa>n|>GrScyBZ z0X5-=s1MFLT#a928wP6me}QpSU_YXY_Yx|DlStAny^fkxgw-R{{`qM|ORb^%>1|!1 xSUeGWrX!a4w|~7ovOF+aSkBNA_nB=SiO{nhJA31?Xh-b7;r~ZQf@Q_|{{SNZ|1SUl delta 2272 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 QY}gW9RZ-R2ox4BfKXwvw6aWAK diff --git a/languages/post-expirator-pt_BR.po b/languages/post-expirator-pt_BR.po index 8634a9c11..c91c61882 100644 --- a/languages/post-expirator-pt_BR.po +++ b/languages/post-expirator-pt_BR.po @@ -387,16 +387,16 @@ msgid "Unstick" msgstr "Desafixar" #: src/Modules/Expirator/Models/ExpirablePostModel.php:418 -msgid "Email is disabled" -msgstr "O e-mail está desativado" +msgid "Email is disabled." +msgstr "O e-mail está desativado." #: src/Modules/Expirator/Models/ExpirablePostModel.php:422 -msgid "Email sent" -msgstr "Email enviado" +msgid "Email sent." +msgstr "Email enviado." #: src/Modules/Expirator/Models/ExpirablePostModel.php:422 -msgid "Email not sent" -msgstr "E-mail não enviado" +msgid "Email not sent." +msgstr "E-mail não enviado." #: src/Modules/Expirator/Models/ExpirablePostModel.php:564 msgid "%s. %s on %s. The post link is %s" diff --git a/languages/post-expirator.pot b/languages/post-expirator.pot index 241a62cd0..fdf050186 100644 --- a/languages/post-expirator.pot +++ b/languages/post-expirator.pot @@ -2,26 +2,26 @@ # This file is distributed under the same license as the PublishPress Future plugin. msgid "" msgstr "" -"Project-Id-Version: PublishPress Future 3.4.2\n" +"Project-Id-Version: PublishPress Future 3.4.4\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/project\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"POT-Creation-Date: 2024-08-05T20:36:02+00:00\n" +"POT-Creation-Date: 2024-08-21T02:08:19+00:00\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "X-Generator: WP-CLI 2.10.0\n" "X-Domain: post-expirator\n" #. Plugin Name of the plugin #: post-expirator.php -#: src/Modules/Expirator/Controllers/BlockEditorController.php:129 -#: src/Modules/Expirator/Controllers/BulkEditController.php:165 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:130 +#: src/Modules/Expirator/Controllers/BulkEditController.php:166 #: src/Modules/Expirator/Controllers/ClassicEditorController.php:144 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:362 -#: src/Modules/Expirator/Controllers/QuickEditController.php:270 -#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:85 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:367 +#: src/Modules/Expirator/Controllers/QuickEditController.php:280 +#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:93 msgid "PublishPress Future" msgstr "" @@ -81,37 +81,37 @@ msgstr "" msgid "The database schema could not be fixed. Please, contact the support team." msgstr "" -#: legacy/classes/Display.class.php:339 -#: legacy/classes/Display.class.php:397 +#: legacy/classes/Display.class.php:342 +#: legacy/classes/Display.class.php:400 msgid "Saved Options!" msgstr "" #. translators: %1$s is the plugin name, %2$s is the star rating markup -#: legacy/classes/Display.class.php:483 +#: legacy/classes/Display.class.php:486 msgid "If you like %1$s, please leave us a %2$s rating. Thank you!" msgstr "" -#: legacy/classes/Display.class.php:498 +#: legacy/classes/Display.class.php:501 msgid "About PublishPress Future" msgstr "" -#: legacy/classes/Display.class.php:500 +#: legacy/classes/Display.class.php:503 msgid "About" msgstr "" -#: legacy/classes/Display.class.php:506 +#: legacy/classes/Display.class.php:509 msgid "Future Documentation" msgstr "" -#: legacy/classes/Display.class.php:508 +#: legacy/classes/Display.class.php:511 msgid "Documentation" msgstr "" -#: legacy/classes/Display.class.php:514 +#: legacy/classes/Display.class.php:517 msgid "Contact the PublishPress team" msgstr "" -#: legacy/classes/Display.class.php:516 +#: legacy/classes/Display.class.php:519 msgid "Contact" msgstr "" @@ -144,138 +144,138 @@ msgstr "" msgid "The table indexes are invalid: " msgstr "" -#: src/Modules/Expirator/Controllers/BlockEditorController.php:128 -#: src/Modules/Expirator/Controllers/BulkEditController.php:164 -#: src/Modules/Expirator/Controllers/QuickEditController.php:269 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:129 +#: src/Modules/Expirator/Controllers/BulkEditController.php:165 +#: src/Modules/Expirator/Controllers/QuickEditController.php:279 msgid "Categories" msgstr "" -#: src/Modules/Expirator/Controllers/BlockEditorController.php:130 -#: src/Modules/Expirator/Controllers/BulkEditController.php:166 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:363 -#: src/Modules/Expirator/Controllers/QuickEditController.php:271 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:131 +#: src/Modules/Expirator/Controllers/BulkEditController.php:167 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:368 +#: src/Modules/Expirator/Controllers/QuickEditController.php:281 msgid "Enable Future Action" msgstr "" -#: src/Modules/Expirator/Controllers/BlockEditorController.php:131 -#: src/Modules/Expirator/Controllers/BulkEditController.php:167 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:364 -#: src/Modules/Expirator/Controllers/QuickEditController.php:272 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:132 +#: src/Modules/Expirator/Controllers/BulkEditController.php:168 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:369 +#: src/Modules/Expirator/Controllers/QuickEditController.php:282 #: src/Modules/Expirator/Tables/ScheduledActionsTable.php:46 msgid "Action" msgstr "" -#: src/Modules/Expirator/Controllers/BlockEditorController.php:132 -#: src/Modules/Expirator/Controllers/BulkEditController.php:170 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:367 -#: src/Modules/Expirator/Controllers/QuickEditController.php:275 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:133 +#: src/Modules/Expirator/Controllers/BulkEditController.php:171 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:372 +#: src/Modules/Expirator/Controllers/QuickEditController.php:285 msgid "Loading" msgstr "" -#: src/Modules/Expirator/Controllers/BlockEditorController.php:133 -#: src/Modules/Expirator/Controllers/BulkEditController.php:168 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:365 -#: src/Modules/Expirator/Controllers/QuickEditController.php:273 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:134 +#: src/Modules/Expirator/Controllers/BulkEditController.php:169 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:370 +#: src/Modules/Expirator/Controllers/QuickEditController.php:283 msgid "Show Calendar" msgstr "" -#: src/Modules/Expirator/Controllers/BlockEditorController.php:134 -#: src/Modules/Expirator/Controllers/BulkEditController.php:169 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:366 -#: src/Modules/Expirator/Controllers/QuickEditController.php:274 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:135 +#: src/Modules/Expirator/Controllers/BulkEditController.php:170 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:371 +#: src/Modules/Expirator/Controllers/QuickEditController.php:284 msgid "Hide Calendar" msgstr "" #. translators: the text between {} is the link to the settings page. #. translators: the text between {{}} is the link to the settings page. -#: src/Modules/Expirator/Controllers/BlockEditorController.php:136 -#: src/Modules/Expirator/Controllers/BulkEditController.php:172 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:369 -#: src/Modules/Expirator/Controllers/QuickEditController.php:277 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:137 +#: src/Modules/Expirator/Controllers/BulkEditController.php:173 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:374 +#: src/Modules/Expirator/Controllers/QuickEditController.php:287 msgid "Timezone is controlled by the {WordPress Settings}." msgstr "" #. translators: %s is the name of the taxonomy in plural form. -#: src/Modules/Expirator/Controllers/BlockEditorController.php:140 -#: src/Modules/Expirator/Controllers/BulkEditController.php:176 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:376 -#: src/Modules/Expirator/Controllers/QuickEditController.php:281 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:141 +#: src/Modules/Expirator/Controllers/BulkEditController.php:177 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:381 +#: src/Modules/Expirator/Controllers/QuickEditController.php:291 msgid "No %s found." msgstr "" -#: src/Modules/Expirator/Controllers/BlockEditorController.php:143 -#: src/Modules/Expirator/Controllers/BulkEditController.php:180 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:379 -#: src/Modules/Expirator/Controllers/QuickEditController.php:284 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:144 +#: src/Modules/Expirator/Controllers/BulkEditController.php:181 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:384 +#: src/Modules/Expirator/Controllers/QuickEditController.php:294 msgid "You must assign a taxonomy to this post type to use this feature." msgstr "" #. translators: %s is the name of the taxonomy in plural form. -#: src/Modules/Expirator/Controllers/BlockEditorController.php:145 -#: src/Modules/Expirator/Controllers/BulkEditController.php:187 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:384 -#: src/Modules/Expirator/Controllers/QuickEditController.php:286 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:146 +#: src/Modules/Expirator/Controllers/BulkEditController.php:188 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:389 +#: src/Modules/Expirator/Controllers/QuickEditController.php:296 msgid "New %s" msgstr "" #. translators: %s is the name of the taxonomy in plural form. -#: src/Modules/Expirator/Controllers/BlockEditorController.php:147 -#: src/Modules/Expirator/Controllers/BulkEditController.php:189 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:386 -#: src/Modules/Expirator/Controllers/QuickEditController.php:288 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:148 +#: src/Modules/Expirator/Controllers/BulkEditController.php:190 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:391 +#: src/Modules/Expirator/Controllers/QuickEditController.php:298 msgid "%s to remove" msgstr "" #. translators: %s is the name of the taxonomy in plural form. -#: src/Modules/Expirator/Controllers/BlockEditorController.php:149 -#: src/Modules/Expirator/Controllers/BulkEditController.php:191 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:388 -#: src/Modules/Expirator/Controllers/QuickEditController.php:290 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:150 +#: src/Modules/Expirator/Controllers/BulkEditController.php:192 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:393 +#: src/Modules/Expirator/Controllers/QuickEditController.php:300 msgid "%s to add" msgstr "" #. translators: %s is the name of the taxonomy in singular form. -#: src/Modules/Expirator/Controllers/BlockEditorController.php:151 -#: src/Modules/Expirator/Controllers/BulkEditController.php:193 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:391 -#: src/Modules/Expirator/Controllers/QuickEditController.php:292 -msgid "Search for %s" -msgstr "" - #: src/Modules/Expirator/Controllers/BlockEditorController.php:152 #: src/Modules/Expirator/Controllers/BulkEditController.php:194 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:394 -#: src/Modules/Expirator/Controllers/QuickEditController.php:293 -msgid "Select an action" +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:396 +#: src/Modules/Expirator/Controllers/QuickEditController.php:302 +msgid "Search for %s" msgstr "" #: src/Modules/Expirator/Controllers/BlockEditorController.php:153 #: src/Modules/Expirator/Controllers/BulkEditController.php:195 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:395 -#: src/Modules/Expirator/Controllers/QuickEditController.php:294 -msgid "Select a date" +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:399 +#: src/Modules/Expirator/Controllers/QuickEditController.php:303 +msgid "Select an action" msgstr "" #: src/Modules/Expirator/Controllers/BlockEditorController.php:154 #: src/Modules/Expirator/Controllers/BulkEditController.php:196 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:396 -#: src/Modules/Expirator/Controllers/QuickEditController.php:295 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:400 +#: src/Modules/Expirator/Controllers/QuickEditController.php:304 +msgid "Select a date" +msgstr "" + +#: src/Modules/Expirator/Controllers/BlockEditorController.php:155 +#: src/Modules/Expirator/Controllers/BulkEditController.php:197 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:401 +#: src/Modules/Expirator/Controllers/QuickEditController.php:305 msgid "Date cannot be in the past" msgstr "" #. translators: %s is the name of the taxonomy in singular form. -#: src/Modules/Expirator/Controllers/BlockEditorController.php:157 -#: src/Modules/Expirator/Controllers/BulkEditController.php:199 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:399 -#: src/Modules/Expirator/Controllers/QuickEditController.php:298 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:158 +#: src/Modules/Expirator/Controllers/BulkEditController.php:200 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:404 +#: src/Modules/Expirator/Controllers/QuickEditController.php:308 #: src/Modules/Settings/Controllers/Controller.php:246 msgid "Please select one or more %s" msgstr "" -#: src/Modules/Expirator/Controllers/BlockEditorController.php:160 -#: src/Modules/Expirator/Controllers/BulkEditController.php:202 -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:402 -#: src/Modules/Expirator/Controllers/QuickEditController.php:301 +#: src/Modules/Expirator/Controllers/BlockEditorController.php:161 +#: src/Modules/Expirator/Controllers/BulkEditController.php:203 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:407 +#: src/Modules/Expirator/Controllers/QuickEditController.php:311 msgid "New status" msgstr "" @@ -291,31 +291,31 @@ msgstr "" msgid "Update Future Actions from Post Metadata" msgstr "" -#: src/Modules/Expirator/Controllers/BulkEditController.php:179 +#: src/Modules/Expirator/Controllers/BulkEditController.php:180 msgid "Future Action Update" msgstr "" -#: src/Modules/Expirator/Controllers/BulkEditController.php:181 +#: src/Modules/Expirator/Controllers/BulkEditController.php:182 msgid "— No Change —" msgstr "" -#: src/Modules/Expirator/Controllers/BulkEditController.php:182 +#: src/Modules/Expirator/Controllers/BulkEditController.php:183 msgid "Add or update action for posts" msgstr "" -#: src/Modules/Expirator/Controllers/BulkEditController.php:183 +#: src/Modules/Expirator/Controllers/BulkEditController.php:184 msgid "Add action if none exists for posts" msgstr "" -#: src/Modules/Expirator/Controllers/BulkEditController.php:184 +#: src/Modules/Expirator/Controllers/BulkEditController.php:185 msgid "Update the existing actions for posts" msgstr "" -#: src/Modules/Expirator/Controllers/BulkEditController.php:185 +#: src/Modules/Expirator/Controllers/BulkEditController.php:186 msgid "Remove action from posts" msgstr "" -#: src/Modules/Expirator/Controllers/ClassicEditorController.php:361 +#: src/Modules/Expirator/Controllers/ClassicEditorController.php:366 msgid "Category" msgstr "" @@ -332,34 +332,38 @@ msgstr "" msgid "Invalid date time offset." msgstr "" -#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:86 +#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:94 msgid "Future" msgstr "" -#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:95 -#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:96 +#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:103 +#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:104 #: src/Views/tabs.php:59 msgid "Action Settings" msgstr "" -#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:104 -#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:105 +#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:112 +#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:113 #: src/Modules/Expirator/Tables/ScheduledActionsTable.php:43 msgid "Scheduled Actions" msgstr "" -#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:174 +#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:182 msgid "Log format" msgstr "" -#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:181 +#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:189 msgid "List" msgstr "" -#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:190 +#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:198 msgid "Popup" msgstr "" +#: src/Modules/Expirator/Controllers/ScheduledActionsController.php:266 +msgid "Successfully executed action: %s" +msgstr "" + #: src/Modules/Expirator/Controllers/ShortcodeController.php:79 msgid "The shortcode [futureaction] must be used inside the loop or with the post_id attribute." msgstr "" @@ -489,29 +493,29 @@ msgid "Unstick" msgstr "" #: src/Modules/Expirator/Models/ExpirablePostModel.php:464 -msgid "Email is disabled" +msgid "Email is disabled." msgstr "" #: src/Modules/Expirator/Models/ExpirablePostModel.php:468 -msgid "Email sent" +msgid "Email sent." msgstr "" #: src/Modules/Expirator/Models/ExpirablePostModel.php:468 -msgid "Email not sent" +msgid "Email not sent." msgstr "" #. translators: %1$s: post title placeholder, %2$s: notification text, %3$s: action date placeholder, %4$s: post link placeholder -#: src/Modules/Expirator/Models/ExpirablePostModel.php:618 +#: src/Modules/Expirator/Models/ExpirablePostModel.php:619 msgid "%1$s. %2$s on %3$s. The post link is %4$s" msgstr "" #. translators: %s is the post title -#: src/Modules/Expirator/Models/ExpirablePostModel.php:636 +#: src/Modules/Expirator/Models/ExpirablePostModel.php:637 msgid "Future Action Complete \"%s\"" msgstr "" #. translators: 1: is the blog name, 2: the email subject -#: src/Modules/Expirator/Models/ExpirablePostModel.php:640 +#: src/Modules/Expirator/Models/ExpirablePostModel.php:641 msgid "[%1$s] %2$s" msgstr "" @@ -785,7 +789,7 @@ msgid "No taxonomies found for this post type. Taxonomy actions will not be avai msgstr "" #: src/Modules/Settings/Controllers/Controller.php:230 -#: src/Views/menu-general.php:158 +#: src/Views/menu-general.php:182 msgid "Who to Notify" msgstr "" @@ -794,12 +798,12 @@ msgid "Enter a comma separated list of emails that you would like to be notified msgstr "" #: src/Modules/Settings/Controllers/Controller.php:235 -#: src/Views/menu-general.php:66 +#: src/Views/menu-general.php:68 msgid "Default Date/Time Offset" msgstr "" #: src/Modules/Settings/Controllers/Controller.php:238 -#: src/Views/menu-general.php:82 +#: src/Views/menu-general.php:84 msgid "PHP strtotime function" msgstr "" @@ -816,22 +820,26 @@ msgid "Wait for the validation..." msgstr "" #: src/Modules/Settings/Controllers/Controller.php:247 +#: src/Modules/Settings/Controllers/Controller.php:294 msgid "Date Preview" msgstr "" #: src/Modules/Settings/Controllers/Controller.php:248 +#: src/Modules/Settings/Controllers/Controller.php:295 msgid "Current Date" msgstr "" #: src/Modules/Settings/Controllers/Controller.php:249 +#: src/Modules/Settings/Controllers/Controller.php:296 msgid "Computed Date" msgstr "" #: src/Modules/Settings/Controllers/Controller.php:250 +#: src/Modules/Settings/Controllers/Controller.php:297 msgid "Error" msgstr "" -#: src/Modules/Settings/Controllers/Controller.php:352 +#: src/Modules/Settings/Controllers/Controller.php:391 msgid "Form Validation Failure: Sorry, your nonce did not verify." msgstr "" @@ -967,7 +975,7 @@ msgstr "" #: src/Views/menu-advanced.php:182 #: src/Views/menu-display.php:185 -#: src/Views/menu-general.php:176 +#: src/Views/menu-general.php:200 msgid "Save Changes" msgstr "" @@ -1020,8 +1028,8 @@ msgstr "" #: src/Views/menu-diagnostics.php:99 #: src/Views/menu-display.php:95 -#: src/Views/menu-general.php:109 -#: src/Views/menu-general.php:137 +#: src/Views/menu-general.php:133 +#: src/Views/menu-general.php:161 msgid "Enabled" msgstr "" @@ -1039,8 +1047,8 @@ msgstr "" #: src/Views/menu-diagnostics.php:119 #: src/Views/menu-display.php:101 -#: src/Views/menu-general.php:117 -#: src/Views/menu-general.php:146 +#: src/Views/menu-general.php:141 +#: src/Views/menu-general.php:170 msgid "Disabled" msgstr "" @@ -1176,42 +1184,62 @@ msgstr "" msgid "%s - format set here will override the value set on the settings page" msgstr "" -#: src/Views/menu-general.php:62 +#: src/Views/menu-general.php:64 msgid "Defaults" msgstr "" #. translators: %1$s is the link to the PHP strtotime function documentation, %2$s and %3$s are the opening and closing code tags. Please, do not translate the date format text, since PHP will not be able to calculate using non-english terms. -#: src/Views/menu-general.php:74 +#: src/Views/menu-general.php:76 msgid "" "Set the offset to use for the default action date and time. For information on formatting, see %1$s\n" " . For example, you could enter %2$s+1 month%3$s or %2$s+1 week 2 days 4 hours 2 seconds%3$s or %2$snext Thursday%3$s. Please, use only terms in English." msgstr "" -#: src/Views/menu-general.php:92 +#: src/Views/menu-general.php:95 +msgid "Calendar Visibility" +msgstr "" + +#: src/Views/menu-general.php:101 +msgid "Remember last state" +msgstr "" + +#: src/Views/menu-general.php:103 +msgid "Shows or hides the calendar based on the last user interaction." +msgstr "" + +#: src/Views/menu-general.php:108 +msgid "Always hidden" +msgstr "" + +#: src/Views/menu-general.php:110 +msgid "The calendar is always hidden by default." +msgstr "" + +#: src/Views/menu-general.php:116 msgid "Email Notification" msgstr "" -#: src/Views/menu-general.php:94 +#: src/Views/menu-general.php:118 msgid "Whenever an action runs, an email can be sent to alert users." msgstr "" -#: src/Views/menu-general.php:101 +#: src/Views/menu-general.php:125 msgid "Enable Email Notification?" msgstr "" -#: src/Views/menu-general.php:120 +#: src/Views/menu-general.php:144 msgid "This will enable or disable the send of email notification on future action." msgstr "" -#: src/Views/menu-general.php:128 +#: src/Views/menu-general.php:152 msgid "Include Blog Administrators?" msgstr "" -#: src/Views/menu-general.php:149 +#: src/Views/menu-general.php:173 msgid "This will include all users with the role of \"Administrator\" in the email." msgstr "" -#: src/Views/menu-general.php:165 +#: src/Views/menu-general.php:189 msgid "Enter a comma separate list of emails that you would like to be notified when the action runs. This will be applied to ALL post types. You can set post type specific emails on the Defaults tab." msgstr "" diff --git a/legacy/classes/Display.class.php b/legacy/classes/Display.class.php index 407f2ffdd..20c08bdd9 100644 --- a/legacy/classes/Display.class.php +++ b/legacy/classes/Display.class.php @@ -312,6 +312,9 @@ private function menu_general() $customExpirationDate = preg_replace('/["\'`]/', '', $customExpirationDate); update_option('expirationdateDefaultDateCustom', trim($customExpirationDate)); + + $hideCalendarByDefault = isset($_POST['expired-hide-calendar-by-default']) && $_POST['expired-hide-calendar-by-default'] == '1' ? 1 : 0; + update_option('expirationdateHideCalendarByDefault', $hideCalendarByDefault); // phpcs:enable if (! isset($_POST['allow-user-roles']) || ! is_array($_POST['allow-user-roles'])) { diff --git a/lib/vendor/composer/installed.php b/lib/vendor/composer/installed.php index ef695f2ed..2383f1afb 100644 --- a/lib/vendor/composer/installed.php +++ b/lib/vendor/composer/installed.php @@ -3,7 +3,7 @@ 'name' => '__root__', 'pretty_version' => 'dev-develop', 'version' => 'dev-develop', - 'reference' => '11a497ed2a54de6f5e48ff9ad32e91acee999d45', + 'reference' => 'd457523da18351e29f2d36ef4d7bf1d3a68269ea', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -13,7 +13,7 @@ '__root__' => array( 'pretty_version' => 'dev-develop', 'version' => 'dev-develop', - 'reference' => '11a497ed2a54de6f5e48ff9ad32e91acee999d45', + 'reference' => 'd457523da18351e29f2d36ef4d7bf1d3a68269ea', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), diff --git a/package.json b/package.json index 52203c216..b89233943 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,8 @@ "@wordpress/api-fetch": "^6.22.0", "@wordpress/hooks": "^3.27.0", "@wordpress/url": "^3.28.0", - "react-select": "^5.7.0" + "react-select": "^5.7.0", + "postcss-loader": "^7" }, "devDependencies": { "@wordpress/scripts": "^25.2.0", @@ -34,6 +35,8 @@ "babel-preset-react": "^6.24.1", "babel-preset-stage-0": "^6.24.1", "@babel/traverse": "^7.24.7", + "css-loader": "^7.1.2", + "style-loader": "^4.0.0", "braces": "^3.0.3", "child_process": "^1.0.2", "inquirer": "^9.1.5", diff --git a/phpstan.neon b/phpstan.neon index d2827999c..98a0a86d5 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -19,3 +19,5 @@ parameters: - dev-workspace - cache - .cache +rules: + - Spatie\Ray\PHPStan\RemainingRayCallRule diff --git a/post-expirator.php b/post-expirator.php index dfd416bf7..ca42f6c9a 100644 --- a/post-expirator.php +++ b/post-expirator.php @@ -5,7 +5,7 @@ * Plugin URI: http://wordpress.org/extend/plugins/post-expirator/ * Description: PublishPress Future allows you to schedule automatic changes to posts, pages and other content types. * Author: PublishPress - * Version: 3.4.3 + * Version: 3.4.4 * Author URI: http://publishpress.com * Text Domain: post-expirator * Domain Path: /languages @@ -50,7 +50,7 @@ } if (! defined('PUBLISHPRESS_FUTURE_VERSION')) { - define('PUBLISHPRESS_FUTURE_VERSION', '3.4.3'); + define('PUBLISHPRESS_FUTURE_VERSION', '3.4.4'); } if (! defined('PUBLISHPRESS_FUTURE_LIB_VENDOR_PATH')) { diff --git a/readme.txt b/readme.txt index d922fb41e..38db1827e 100644 --- a/readme.txt +++ b/readme.txt @@ -7,7 +7,7 @@ Requires at least: 6.1 Requires PHP: 7.2.5 Tested up to: 6.6 License: GPLv2 or later -Stable tag: 3.4.3 +Stable tag: 3.4.4 PublishPress Future can make scheduled changes to your content. You can unpublish posts, move posts to a new status, update the categories, and more. @@ -173,6 +173,26 @@ Yes, the PublishPress Future plugin allows you to schedule automatic changes to The full changelog can be found on [GitHub](https://github.com/publishpress/PublishPress-Future/blob/main/CHANGELOG.md). +## [3.4.4] - 21 Aug, 2024 + +### Fixed + +- Improve notice message when scheduled action runs after pressing "run" (PR #896). +- Fixed support for the Event Espresso plugin (PR #900). +- Fixed React warning about createRoot being deprecated. +- Fixed empty fieldset displayed when the bos is disabled for the post type (Issue #792). +- Update language files. + +### Changed + +- Add tabs for post types in the post types settings page (PR #895). + +### Added + +- Added computed date preview to the general settings page (PR #897). +- Added option to hide the calendar by default in the future action panel (PR #899). +- Added new filter `publishpressfuture_posts_future_action_column_output` to the Future Action column. + ## [3.4.3] - 06 Aug, 2024 ### Changed @@ -276,30 +296,3 @@ The full changelog can be found on [GitHub](https://github.com/publishpress/Publ - Redirects to the settings page after activating the plugin, #764 - Fix access to the View Debug settings tab when debug is disabled - Fix the position of the "Upgrade to Pro" and "Settings" menu items in the admin bar - -## [3.3.1] - 19 Mar, 2024 - -### Added - -- Add validation for the date and time offset in the settings page, #683 -- Add form validation to the settings panel -- Add form validation to the metabox panel -- Add a date preview to the date/time offset setting field - -### Changed - -- The actions to move posts to another status where grouped in a single action, with a dropdown to select the status, #668 -- The actions "draft", "private" and "trash" are deprecated in favor of "change-status", #668 -- The metadata hash key has now a prefix "_" marking it as a private key, #695 -- Improved the name of some actions -- Change the label of the field to select terms when "Replace all terms" is selected, #664 - -### Fixed - -- Make it impossible to choose dates in the past, #443 -- Enter key submits quick-edit panel when selecting a taxonomy term, #586 -- The name of the taxonomy in the actions field is now updated in the settings panel when the taxonomy is changed, #676 -- Possible to add an action using an empty category setting, #587 -- Fix language files for ES, IT, FR, #685 -- Fix inconsistent text in the filter for "Pending" actions, #673 -- Improve the message when no actions are found: "No Future Actions", #666 diff --git a/src/Modules/Expirator/Controllers/BlockEditorController.php b/src/Modules/Expirator/Controllers/BlockEditorController.php index 6fc483b53..a4bb8288e 100644 --- a/src/Modules/Expirator/Controllers/BlockEditorController.php +++ b/src/Modules/Expirator/Controllers/BlockEditorController.php @@ -124,6 +124,7 @@ public function enqueueBlockEditorAssets() 'isDebugEnabled' => $container->get(ServicesAbstract::DEBUG)->isEnabled(), 'taxonomyName' => $taxonomyPluralName, 'taxonomyTerms' => $taxonomyTerms, + 'hideCalendarByDefault' => $settingsFacade->getHideCalendarByDefault(), 'strings' => [ 'category' => __('Categories', 'post-expirator'), 'panelTitle' => __('PublishPress Future', 'post-expirator'), diff --git a/src/Modules/Expirator/Controllers/BulkEditController.php b/src/Modules/Expirator/Controllers/BulkEditController.php index 9f93b5b33..2c33b6f16 100644 --- a/src/Modules/Expirator/Controllers/BulkEditController.php +++ b/src/Modules/Expirator/Controllers/BulkEditController.php @@ -160,6 +160,7 @@ public function enqueueScripts() 'postType' => $currentScreen->post_type, 'isNewPost' => false, 'nonce' => $nonce, + 'hideCalendarByDefault' => $settingsFacade->getHideCalendarByDefault(), 'strings' => [ 'category' => __('Categories', 'post-expirator'), 'panelTitle' => __('PublishPress Future', 'post-expirator'), diff --git a/src/Modules/Expirator/Controllers/ClassicEditorController.php b/src/Modules/Expirator/Controllers/ClassicEditorController.php index fb05ff520..897803253 100644 --- a/src/Modules/Expirator/Controllers/ClassicEditorController.php +++ b/src/Modules/Expirator/Controllers/ClassicEditorController.php @@ -263,7 +263,11 @@ public function enqueueScripts() { $currentScreen = get_current_screen(); - if ($currentScreen->base !== 'post') { + if ( + $currentScreen->base !== 'post' + // Add support to the Event Espresso plugin + && $currentScreen->id !== 'espresso_events' + ) { return; } @@ -357,6 +361,7 @@ public function enqueueScripts() 'taxonomyTerms' => $taxonomyTerms, 'postType' => $currentScreen->post_type, 'isNewPost' => $isNewPostPage, + 'hideCalendarByDefault' => $settingsFacade->getHideCalendarByDefault(), 'strings' => [ 'category' => __('Category', 'post-expirator'), 'panelTitle' => __('PublishPress Future', 'post-expirator'), diff --git a/src/Modules/Expirator/Controllers/PostListController.php b/src/Modules/Expirator/Controllers/PostListController.php index e06097384..897857bd5 100644 --- a/src/Modules/Expirator/Controllers/PostListController.php +++ b/src/Modules/Expirator/Controllers/PostListController.php @@ -102,11 +102,16 @@ private function renderColumn() $container = Container::getInstance(); $settings = $container->get(ServicesAbstract::SETTINGS); + ob_start(); PostExpirator_Display::getInstance()->render_template('expire-column', [ 'id' => $post->ID, 'postType' => $post->post_type, 'columnStyle' => $settings->getColumnStyle(), ]); + $output = ob_get_clean(); + + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo $this->hooks->applyFilters(ExpiratorHooks::FILTER_POSTS_FUTURE_ACTION_COLUMN_OUTPUT, $output); } public function manageSortableColumns() diff --git a/src/Modules/Expirator/Controllers/QuickEditController.php b/src/Modules/Expirator/Controllers/QuickEditController.php index ee3deef2c..7f84b3537 100644 --- a/src/Modules/Expirator/Controllers/QuickEditController.php +++ b/src/Modules/Expirator/Controllers/QuickEditController.php @@ -73,6 +73,10 @@ public function registerQuickEditCustomBox($columnName, $postType) return; } + if (! $this->isEnabledForPostType($postType)) { + return; + } + $container = Container::getInstance(); $settingsFacade = $container->get(ServicesAbstract::SETTINGS); @@ -175,27 +179,37 @@ public function processQuickEditUpdate($postId) $this->hooks->doAction(ExpiratorHooks::ACTION_UNSCHEDULE_POST_EXPIRATION, $postId); } - public function enqueueScripts() + private function isEnabledForPostType($postType) { - $currentScreen = get_current_screen(); - - if ($currentScreen->base !== 'edit') { - return; - } - $container = Container::getInstance(); $settingsFacade = $container->get(ServicesAbstract::SETTINGS); $actionsModel = $container->get(ServicesAbstract::EXPIRATION_ACTIONS_MODEL); - $postType = $currentScreen->post_type; $postTypeDefaultConfig = $settingsFacade->getPostTypeDefaults($postType); if (! in_array((string)$postTypeDefaultConfig['activeMetaBox'], ['active', '1', true])) { - return; + return false; } $hideMetabox = (bool)$this->hooks->applyFilters(HooksAbstract::FILTER_HIDE_METABOX, false, $postType); if ($hideMetabox) { + return false; + } + + return true; + } + + public function enqueueScripts() + { + $currentScreen = get_current_screen(); + + if ($currentScreen->base !== 'edit') { + return; + } + + $postType = $currentScreen->post_type; + + if (! $this->isEnabledForPostType($postType)) { return; } @@ -214,20 +228,15 @@ public function enqueueScripts() wp_enqueue_style('wp-components'); - $currentScreen = get_current_screen(); $container = Container::getInstance(); $settingsFacade = $container->get(ServicesAbstract::SETTINGS); $actionsModel = $container->get(ServicesAbstract::EXPIRATION_ACTIONS_MODEL); - $postType = $currentScreen->post_type; + $defaultDataModelFactory = $container->get(ServicesAbstract::POST_TYPE_DEFAULT_DATA_MODEL_FACTORY); + $debug = $container->get(ServicesAbstract::DEBUG); $postTypeDefaultConfig = $settingsFacade->getPostTypeDefaults($postType); - - - $defaultDataModelFactory = $container->get(ServicesAbstract::POST_TYPE_DEFAULT_DATA_MODEL_FACTORY); $defaultDataModel = $defaultDataModelFactory->create($postType); - $debug = $container->get(ServicesAbstract::DEBUG); - $taxonomyPluralName = ''; if (! empty($postTypeDefaultConfig['taxonomy'])) { $taxonomy = get_taxonomy($postTypeDefaultConfig['taxonomy']); @@ -265,6 +274,7 @@ public function enqueueScripts() 'postType' => $currentScreen->post_type, 'isNewPost' => false, 'nonce' => $nonce, + 'hideCalendarByDefault' => $settingsFacade->getHideCalendarByDefault(), 'strings' => [ 'category' => __('Categories', 'post-expirator'), 'panelTitle' => __('PublishPress Future', 'post-expirator'), diff --git a/src/Modules/Expirator/Controllers/ScheduledActionsController.php b/src/Modules/Expirator/Controllers/ScheduledActionsController.php index b83b51001..9d31cfa18 100644 --- a/src/Modules/Expirator/Controllers/ScheduledActionsController.php +++ b/src/Modules/Expirator/Controllers/ScheduledActionsController.php @@ -10,6 +10,7 @@ use PublishPress\Future\Core\HooksAbstract as CoreHooksAbstract; use PublishPress\Future\Framework\InitializableInterface; use PublishPress\Future\Modules\Expirator\HooksAbstract; +use PublishPress\Future\Modules\Expirator\Models\ExpirablePostModel; use PublishPress\Future\Modules\Expirator\Tables\ScheduledActionsTable as ScheduledActionsTable; defined('ABSPATH') or die('Direct access not allowed.'); @@ -77,6 +78,13 @@ public function initialize() CoreHooksAbstract::ACTION_ADMIN_ENQUEUE_SCRIPTS, [$this, 'enqueueScripts'] ); + + $this->hooks->addFilter( + HooksAbstract::FILTER_ACTION_SCHEDULER_ADMIN_NOTICE, + [$this, 'filterActionSchedulerAdminNotice'], + 10, + 3 + ); } public function onAdminMenu() @@ -237,4 +245,30 @@ public function enqueueScripts($screenId) ); } } + + public function filterActionSchedulerAdminNotice($html, $action, $notification) + { + if ($action->get_group() !== 'publishpress-future') { + return $html; + } + + if ($action->get_hook() === 'publishpressfuture_run_workflow') { + $args = $action->get_args(); + + if (isset($args['postId']) && isset($args['workflow']) && 'expire' === $args['workflow']) { + + $transientName = 'post-expirator-notice-' . (int) $args['postId']; + $noticeMessage = get_transient($transientName); + delete_transient($transientName); + + // translators: %s is the action description + $html = sprintf( + __('Successfully executed action: %s', 'post-expirator'), + $noticeMessage + ); + } + } + + return $html; + } } diff --git a/src/Modules/Expirator/HooksAbstract.php b/src/Modules/Expirator/HooksAbstract.php index a86158f2d..1f7fc78e6 100644 --- a/src/Modules/Expirator/HooksAbstract.php +++ b/src/Modules/Expirator/HooksAbstract.php @@ -65,6 +65,8 @@ abstract class HooksAbstract public const FILTER_EXPIRATION_NEW_STATUS = 'publishpressfuture_expiration_new_status'; public const FILTER_EXPIRATION_STATUSES = 'publishpressfuture_expiration_statuses'; public const FILTER_PREPARE_POST_EXPIRATION_OPTS = 'publishpressfuture_prepare_post_expiration_opts'; + public const FILTER_ACTION_SCHEDULER_ADMIN_NOTICE = 'action_scheduler_admin_notice_html'; + public const FILTER_POSTS_FUTURE_ACTION_COLUMN_OUTPUT = 'publishpressfuture_posts_future_action_column_output'; public static function getActionLegacyMultisiteDelete($blogId) diff --git a/src/Modules/Expirator/Models/ActionModelInterface.php b/src/Modules/Expirator/Models/ActionModelInterface.php index 15ac6835b..276e993eb 100644 --- a/src/Modules/Expirator/Models/ActionModelInterface.php +++ b/src/Modules/Expirator/Models/ActionModelInterface.php @@ -1,5 +1,7 @@ getNotificationText() . ' '; if (! $this->expirationEmailIsEnabled()) { - $expirationLog .= __('Email is disabled', 'post-expirator'); + $expirationLog .= __('Email is disabled.', 'post-expirator'); } else { $emailSent = $this->sendEmail($expirationAction); $expirationLog .= $emailSent - ? __('Email sent', 'post-expirator') : __('Email not sent', 'post-expirator'); + ? __('Email sent.', 'post-expirator') : __('Email not sent.', 'post-expirator'); } $this->logOnAction($expirationLog); + $this->registerNoticeMessage($postId, $expirationLog); $this->hooks->doAction(HooksAbstract::ACTION_POST_EXPIRED, $postId, $expirationLog); @@ -930,4 +931,9 @@ private function removeLegacyMetadataHash() { $this->deleteMeta(self::LEGACY_FLAG_METADATA_HASH); } + + private function registerNoticeMessage($postId, $message) + { + set_transient('post-expirator-notice-' . $postId, $message, MINUTE_IN_SECONDS); + } } diff --git a/src/Modules/Settings/Controllers/Controller.php b/src/Modules/Settings/Controllers/Controller.php index 374fb99d0..371da087a 100644 --- a/src/Modules/Settings/Controllers/Controller.php +++ b/src/Modules/Settings/Controllers/Controller.php @@ -260,6 +260,45 @@ public function onAdminEnqueueScript($screenId) ] ); } + + // phpcs:disable WordPress.Security.NonceVerification.Recommended + if ( + (isset($_GET['page']) && $_GET['page'] === 'publishpress-future') + && (isset($_GET['tab']) && $_GET['tab'] === 'general') + ) { + //phpcs:enable WordPress.Security.NonceVerification.Recommended + wp_enqueue_script( + 'publishpressfuture-settings-general-panel', + POSTEXPIRATOR_BASEURL . 'assets/js/settings-general.js', + [ + 'wp-i18n', + 'wp-components', + 'wp-url', + 'wp-data', + 'wp-element', + 'wp-hooks', + 'wp-api-fetch', + 'wp-html-entities' + ], + POSTEXPIRATOR_VERSION, + true + ); + + wp_enqueue_style('wp-components'); + + wp_localize_script( + 'publishpressfuture-settings-general-panel', + 'publishpressFutureSettingsGeneralConfig', + [ + 'text' => [ + 'datePreview' => __('Date Preview', 'post-expirator'), + 'datePreviewCurrent' => __('Current Date', 'post-expirator'), + 'datePreviewComputed' => __('Computed Date', 'post-expirator'), + 'error' => __('Error', 'post-expirator'), + ], + ] + ); + } } private function getCurrentTab() diff --git a/src/Modules/Settings/SettingsFacade.php b/src/Modules/Settings/SettingsFacade.php index d5dd6a60b..e0fb0422b 100644 --- a/src/Modules/Settings/SettingsFacade.php +++ b/src/Modules/Settings/SettingsFacade.php @@ -274,4 +274,9 @@ public function getTimeFormatForDatePicker() { return $this->options->getOption('expirationdateTimeFormatForDatePicker', 'inherited'); } + + public function getHideCalendarByDefault() + { + return (bool)$this->options->getOption('expirationdateHideCalendarByDefault', false); + } } diff --git a/src/Views/menu-general.php b/src/Views/menu-general.php index b80085481..8888937a8 100644 --- a/src/Views/menu-general.php +++ b/src/Views/menu-general.php @@ -50,6 +50,8 @@ $expiredemailnotificationadminsenabled = 'checked="checked"'; } +$calendarHiddenByDefault = (bool) get_option('expirationdateHideCalendarByDefault', false); + $user_roles = wp_roles()->get_names(); $plugin_facade = PostExpirator_Facade::getInstance(); ?> @@ -83,7 +85,29 @@ '', '' ); ?>

+ +
+ + + + + + +
+ /> +
+

+
+ />
+

diff --git a/webpack.config.js b/webpack.config.js index 8f0213ecb..b3aa72283 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,191 +1,131 @@ const glob = require("glob"); const path = require("path"); +const defaultExternals = { + "react": "React", + "react-dom": "ReactDOM", + "&wp": "wp", + "@wordpress/element": "wp.element", + "@wordpress/components": "wp.components", + "@wordpress/data": "wp.data", + "@wordpress/plugins": "wp.plugins", + "@wordpress/hooks": "wp.hooks", + "@wordpress/url": "wp.url", +}; + +const defaultRules = [ + { + test: /\.(jsx)$/, // Identifies which file or files should be transformed. + use: {loader: "babel-loader"}, // + exclude: [ + /(node_modules|bower_components)/, + ]// JavaScript files to be ignored. + }, + { + test: /\.css$/i, + use: ["style-loader", "css-loader", "postcss-loader"], + } +]; + +const defaultResolve = { + extensions: ['.js', '.jsx'] +}; + +const defaultModule = { + rules: [ + ...defaultRules, + ] +}; + +const defaultOutput = { + path: path.join(__dirname, "assets", "js"), +} + +const defaultExports = { + devtool: 'source-map', + resolve: {...defaultResolve}, + module: {...defaultModule}, +} + module.exports = [ { - entry: glob.sync( - "./assets/jsx/settings-post-types.jsx", - ), - devtool: 'source-map', + ...defaultExports, + entry: glob.sync("./assets/jsx/settings-post-types.jsx",), + output: {...defaultOutput, filename: "settings-post-types.js"}, + externals: { + ...defaultExternals, + "&config.settings-post-types": "publishpressFutureSettingsConfig" + } + }, + { + ...defaultExports, + entry: glob.sync("./assets/jsx/settings-general.jsx",), output: { - path: path.join(__dirname, "assets", "js"), - filename: "settings-post-types.js" - }, - resolve: { - extensions: ['.jsx', '.js'] - }, - module: { - rules: [ - { - test: /\.(jsx)$/, // Identifies which file or files should be transformed. - use: {loader: "babel-loader"}, // Babel loader to transpile modern JavaScript. - exclude: [ - /(node_modules|bower_components)/, - ]// JavaScript files to be ignored. - } - ] - }, - resolve: { - extensions: ['.js', '.jsx'] + ...defaultOutput, + filename: "settings-general.js" }, externals: { - "react": "React", - "react-dom": "ReactDOM", - "&wp": "wp", - "@wordpress/element": "wp.element", - "@wordpress/components": "wp.components", - "@wordpress/data": "wp.data", - "@wordpress/plugins": "wp.plugins", - "@wordpress/hooks": "wp.hooks", - "@wordpress/url": "wp.url", - "&config.settings-post-types": "publishpressFutureSettingsConfig" + ...defaultExternals, + "&config.settings-general": "publishpressFutureSettingsGeneralConfig" } }, { + ...defaultExports, entry: glob.sync( "./assets/jsx/block-editor.jsx", ), - devtool: 'source-map', output: { - path: path.join(__dirname, "assets", "js"), + ...defaultOutput, filename: "block-editor.js" }, - resolve: { - extensions: ['.jsx', '.js'] - }, - module: { - rules: [ - { - test: /\.(jsx)$/, // Identifies which file or files should be transformed. - use: {loader: "babel-loader"}, // Babel loader to transpile modern JavaScript. - exclude: [ - /(node_modules|bower_components)/, - ]// JavaScript files to be ignored. - } - ] - }, externals: { - "react": "React", - "react-dom": "ReactDOM", - "&wp": "wp", - "@wordpress/element": "wp.element", - "@wordpress/components": "wp.components", - "@wordpress/data": "wp.data", - "@wordpress/plugins": "wp.plugins", - "@wordpress/hooks": "wp.hooks", + ...defaultExternals, "&window": "window", - "@wordpress/url": "wp.url", "&config.block-editor": "publishpressFutureBlockEditorConfig" } }, { + ...defaultExports, entry: glob.sync( "./assets/jsx/classic-editor.jsx", ), - devtool: 'source-map', output: { - path: path.join(__dirname, "assets", "js"), + ...defaultOutput, filename: "classic-editor.js" }, - resolve: { - extensions: ['.jsx', '.js'] - }, - module: { - rules: [ - { - test: /\.(jsx)$/, // Identifies which file or files should be transformed. - use: {loader: "babel-loader"}, // Babel loader to transpile modern JavaScript. - exclude: [ - /(node_modules|bower_components)/, - ]// JavaScript files to be ignored. - } - ] - }, externals: { - "react": "React", - "react-dom": "ReactDOM", - "&wp": "wp", - "@wordpress/element": "wp.element", - "@wordpress/components": "wp.components", - "@wordpress/data": "wp.data", - "@wordpress/plugins": "wp.plugins", - "@wordpress/hooks": "wp.hooks", - "@wordpress/url": "wp.url", + ...defaultExternals, "&config.classic-editor": "publishpressFutureClassicEditorConfig" } }, { + ...defaultExports, entry: glob.sync( "./assets/jsx/quick-edit.jsx", ), - devtool: 'source-map', output: { - path: path.join(__dirname, "assets", "js"), + ...defaultOutput, filename: "quick-edit.js" }, - resolve: { - extensions: ['.jsx', '.js'] - }, - module: { - rules: [ - { - test: /\.(jsx)$/, // Identifies which file or files should be transformed. - use: {loader: "babel-loader"}, // Babel loader to transpile modern JavaScript. - exclude: [ - /(node_modules|bower_components)/, - ]// JavaScript files to be ignored. - } - ] - }, externals: { - "react": "React", - "react-dom": "ReactDOM", - "&wp": "wp", - "@wordpress/element": "wp.element", - "@wordpress/components": "wp.components", - "@wordpress/data": "wp.data", - "@wordpress/plugins": "wp.plugins", - "@wordpress/hooks": "wp.hooks", + ...defaultExternals, "&config.quick-edit": "publishpressFutureQuickEditConfig", "&window": "window", - "@wordpress/url": "wp.url" } }, { + ...defaultExports, entry: glob.sync( "./assets/jsx/bulk-edit.jsx", ), - devtool: 'source-map', output: { - path: path.join(__dirname, "assets", "js"), + ...defaultOutput, filename: "bulk-edit.js" }, - resolve: { - extensions: ['.jsx', '.js'] - }, - module: { - rules: [ - { - test: /\.(jsx)$/, // Identifies which file or files should be transformed. - use: {loader: "babel-loader"}, // Babel loader to transpile modern JavaScript. - exclude: [ - /(node_modules|bower_components)/, - ]// JavaScript files to be ignored. - } - ] - }, externals: { - "react": "React", - "react-dom": "ReactDOM", - "&wp": "wp", - "@wordpress/element": "wp.element", - "@wordpress/components": "wp.components", - "@wordpress/data": "wp.data", - '@wordpress/plugins': 'wp.plugins', - "@wordpress/hooks": "wp.hooks", + ...defaultExternals, "&config.bulk-edit": "publishpressFutureBulkEditConfig", "&window": "window", - "@wordpress/url": "wp.url" } } ]; diff --git a/yarn.lock b/yarn.lock index 496ddfb95..04b049211 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4975,6 +4975,16 @@ cosmiconfig@^7.0.0, cosmiconfig@^7.0.1, cosmiconfig@^7.1.0: path-type "^4.0.0" yaml "^1.10.0" +cosmiconfig@^8.3.5: + version "8.3.6" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== + dependencies: + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + path-type "^4.0.0" + cross-fetch@3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" @@ -5029,6 +5039,20 @@ css-loader@^6.2.0: postcss-value-parser "^4.2.0" semver "^7.3.8" +css-loader@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-7.1.2.tgz#64671541c6efe06b0e22e750503106bdd86880f8" + integrity sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA== + dependencies: + icss-utils "^5.1.0" + postcss "^8.4.33" + postcss-modules-extract-imports "^3.1.0" + postcss-modules-local-by-default "^4.0.5" + postcss-modules-scope "^3.2.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.2.0" + semver "^7.5.4" + css-select@^4.1.3: version "4.3.0" resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" @@ -7000,7 +7024,7 @@ immutable@^4.0.0: resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.0.tgz#eb1738f14ffb39fd068b1dbe1296117484dd34be" integrity sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg== -import-fresh@^3.0.0, import-fresh@^3.2.1: +import-fresh@^3.0.0, import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -8022,6 +8046,11 @@ jest@^27.4.5: import-local "^3.0.2" jest-cli "^27.5.1" +jiti@^1.20.0: + version "1.21.6" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.6.tgz#6c7f7398dd4b3142767f9a168af2f317a428d268" + integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w== + joi@^17.6.0: version "17.9.1" resolved "https://registry.yarnpkg.com/joi/-/joi-17.9.1.tgz#74899b9fa3646904afa984a11df648eca66c9018" @@ -8808,6 +8837,11 @@ nanoid@^3.3.6: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -9516,6 +9550,15 @@ postcss-loader@^6.2.1: klona "^2.0.5" semver "^7.3.5" +postcss-loader@^7: + version "7.3.4" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-7.3.4.tgz#aed9b79ce4ed7e9e89e56199d25ad1ec8f606209" + integrity sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A== + dependencies: + cosmiconfig "^8.3.5" + jiti "^1.20.0" + semver "^7.5.4" + postcss-media-query-parser@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" @@ -9576,6 +9619,11 @@ postcss-modules-extract-imports@^3.0.0: resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== +postcss-modules-extract-imports@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz#b4497cb85a9c0c4b5aabeb759bb25e8d89f15002" + integrity sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q== + postcss-modules-local-by-default@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" @@ -9585,6 +9633,15 @@ postcss-modules-local-by-default@^4.0.0: postcss-selector-parser "^6.0.2" postcss-value-parser "^4.1.0" +postcss-modules-local-by-default@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz#f1b9bd757a8edf4d8556e8d0f4f894260e3df78f" + integrity sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + postcss-modules-scope@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" @@ -9592,6 +9649,13 @@ postcss-modules-scope@^3.0.0: dependencies: postcss-selector-parser "^6.0.4" +postcss-modules-scope@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz#a43d28289a169ce2c15c00c4e64c0858e43457d5" + integrity sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ== + dependencies: + postcss-selector-parser "^6.0.4" + postcss-modules-values@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" @@ -9737,6 +9801,15 @@ postcss@^8.4.19, postcss@^8.4.5: picocolors "^1.0.0" source-map-js "^1.0.2" +postcss@^8.4.33: + version "8.4.41" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.41.tgz#d6104d3ba272d882fe18fc07d15dc2da62fa2681" + integrity sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.1" + source-map-js "^1.2.0" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -10454,6 +10527,11 @@ semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8: dependencies: lru-cache "^6.0.0" +semver@^7.5.4: + version "7.6.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== + send@0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" @@ -10691,6 +10769,11 @@ sockjs@^0.3.24: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== +source-map-js@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== + source-map-loader@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-3.0.2.tgz#af23192f9b344daa729f6772933194cc5fa54fee" @@ -11045,6 +11128,11 @@ strip-outer@^1.0.1: dependencies: escape-string-regexp "^1.0.2" +style-loader@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-4.0.0.tgz#0ea96e468f43c69600011e0589cb05c44f3b17a5" + integrity sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA== + style-search@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902"