1.2.2 - 8th October 2024
- Excluded assets from loading via Spectra for SureForms CPTs.
1.2.1 - 27th September 2024
- Improvement: Hid the chat textbox interface when the user is not authorized.
- Improvement: Removed the GPT model parameter for real-time model updates from the middleware.
1.2.0 - 26th July 2024
- Improvement: Switched from the GPT 3.5 Turbo modal to the 4o Mini modal.
1.1.10 - 15th July 2024
- Fix: Resolved an issue with the AI Assistant admin-bar trigger loading order in WordPress 6.6.
v1.1.9 - 2nd July 2024
- Improvement: The library's text-domain support has been removed & translation is now managed from the project level.
v1.1.8 - 27th June 2024
- Improved security.
v1.1.7 - 24th June 2024
- Feature: Added tooltips for icons in the Chat sidebar for improved user experience.
- Improvement: Added disconnection status to the settings option to avoid deletion after disconnecting.
- Fix: Resolved the empty text glitch that would occur when editing the first message in the chat.
- Fix: Resolved PHP warnings in the widget editor for PluginSidebar and PluginSidebarMoreMenuItem.
v1.1.6 - 15th May 2024
- Improvement: Added dropdown menu for common Zip AI Assistant actions in the toolbar.
- Improvement: Upgraded the `get_credit_server_response` helper function to support data.
v1.1.5 - 25th April 2024
- Fix: Copy and Regenerate buttons are now visible by default instead of being displayed on hover.
v1.1.4 - 23rd April 2024
- Replaced "AI Assistant" text with a Sparkles icon for clearer visual representation.
v1.1.3 - 14th March 2024
- Removed the highlight color for Richtexts.
- Replaced ZipWP logo with the AI Sparkle icon for all AI-Assistant-related buttons.
- Improved the AI Assistant sidebar UI on the front end.
v1.1.2 - 27th February 2024
- Improvement: Added ZipWP API server helper functions to get the current plan.
v1.1.1 - 16th February 2024
- Improvement: Added middleware parameter handling for the affiliate ID.
- Improvement: Locally loaded Google Fonts for the AI Assistant sidebar.
- Fix: Restricted front-end assets for non-admin users.
v1.1.0 - 17th January 2024
- Feature: Made the AI Assistant sidebar accessible outside the editor.
- Improvement: Added the 'Force Enabled' function to ensure that modules are enabled.
v1.0.9 - 11th January 2024
- Improvement: Added middleware parameter handling for the plugin slug.
v1.0.8 - 18th December 2023
- Fix: Added compatibility with PHP version 7.0 and above.
v1.0.7 - 2nd December 2023
- Improvement: Updated the middleware request and the Zip AI settings that are saved.
- Fix: Implemented proper multi-setting updation.
v1.0.6 - 30th November 2023
- Improvement: Added a filter to disable the entire library from loading.
v1.0.5 - 30th November 2023
- Improvement: Added a new module structure and removed the admin page from Tools.
v1.0.4 - 30th November 2023
- Updating `distignore` for composer update compatibility.
v1.0.3 - 11th November 2023
- Improvement: Added an option to disable Zip Ai Assistant from the sidebar.
v1.0.2 - 9th November 2023
- Improvement: Better one-click command.
v1.0.1 - 9th November 2023
- Initial Commit
/*! For license information please see editor-v1-adapters.js.LICENSE.txt */
!function(){"use strict";var e={react:function(e){e.exports=window.React}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};!function(){n.r(r),n.d(r,{__privateBlockDataCommand:function(){return a},__privateDispatchReadyEvent:function(){return y},__privateFlushListeners:function(){return E},__privateGetCurrentEditMode:function(){return $},__privateIsRouteActive:function(){return j},__privateListenTo:function(){return h},__privateOpenRoute:function(){return o},__privateRegisterRoute:function(){return i},__privateRunCommand:function(){return t},__privateSetReady:function(){return w},__privateUseIsPreviewMode:function(){return O},__privateUseIsRouteActive:function(){return R},__privateUseListenTo:function(){return P},__privateUseRouteStatus:function(){return C},commandEndEvent:function(){return s},commandStartEvent:function(){return c},editModeChangeEvent:function(){return v},routeCloseEvent:function(){return f},routeOpenEvent:function(){return d},v1ReadyEvent:function(){return l},windowEvent:function(){return m}});var e=n("react");function t(e,t){const n=window;if(!n.$e?.run)return Promise.reject("`$e.run()` is not available");const r=n.$e.run(e,t);return r instanceof Promise?r:(i=r)&&"object"==typeof i&&Object.hasOwn(i,"promise")&&Object.hasOwn(i,"then")&&Object.hasOwn(i,"fail")?(o=r,new Promise(((e,t)=>{o.then(e,t)}))):Promise.resolve(r);var o,i}function o(e){const t=window;if(!t.$e?.route)return Promise.reject("`$e.route()` is not available");try{return Promise.resolve(t.$e.route(e))}catch(e){return Promise.reject(e)}}function i(e){const t=window;if(!t.$e?.routes?.register)return Promise.reject("`$e.routes.register()` is not available");const n=e.split("/");if(n.length<2)return Promise.reject(`\`${e}\` is an invalid route`);const r=n.pop(),o=n.join("/");try{return Promise.resolve(t.$e.routes.register(o,r,(()=>null)))}catch(e){return Promise.reject(e)}}var u=0;function a({command:e,condition:t}){const n=window,r=n.$e?.modules?.hookData?.Dependency;if(!r)return Promise.reject("`$e.modules.hookData.Dependency` is not available");const o=++u,i=new class extends r{getCommand(){return e}getId(){return`${e}--block--${o}`}apply(e){return!t(e)}};try{return Promise.resolve(i.register())}catch(e){return Promise.reject(e)}}var c=e=>({type:"command",name:e,state:"before"}),s=e=>({type:"command",name:e,state:"after"}),d=e=>({type:"route",name:e,state:"open"}),f=e=>({type:"route",name:e,state:"close"}),m=e=>({type:"window-event",name:e}),l=()=>m("elementor/initialized"),v=()=>m("elementor/edit-mode/change"),p=!1;function w(e){p=e}function y(){return function(){const e=window.__elementorEditorV1LoadingPromise;return e||Promise.reject("Elementor Editor V1 is not loaded")}().then((()=>{w(!0),window.dispatchEvent(new CustomEvent("elementor/initialized"))}))}var _=new Map,g=new AbortController;function h(e,t){Array.isArray(e)||(e=[e]);const n=e.map((e=>{const{type:n,name:r}=e;switch(n){case"command":return function(e,t,n){return b(`elementor/commands/run/${t}`,(t=>{"command"===t.type&&t.command===e&&n(t)}))}(r,e.state,t);case"route":return function(e,t,n){return b(`elementor/routes/${t}`,(t=>{"route"===t.type&&t.route.startsWith(e)&&n(t)}))}(r,e.state,t);case"window-event":return b(r,t)}}));return()=>{n.forEach((e=>e()))}}function E(){g.abort(),_.clear(),w(!1),g=new AbortController}function b(e,t){return!_.has(e)&&(_.set(e,[]),function(e){window.addEventListener(e,function(e){return t=>{if(!p)return;const n=function(e){return e instanceof CustomEvent&&e.detail?.command?{type:"command",command:e.detail.command,args:e.detail.args,originalEvent:e}:e instanceof CustomEvent&&e.detail?.route?{type:"route",route:e.detail.route,originalEvent:e}:{type:"window-event",event:e.type,originalEvent:e}}(t);_.get(e)?.forEach((e=>{e(n)}))}}(e),{signal:g.signal})}(e)),_.get(e)?.push(t),()=>{const n=_.get(e);if(!n?.length)return;const r=n.filter((e=>e!==t));_.set(e,r)}}function P(t,n,r=[]){const[o,i]=(0,e.useState)((()=>n()));return(0,e.useEffect)((()=>{const e=()=>i(n());return e(),h(t,e)}),r),o}function j(e){const t=window;return!!t.$e?.routes?.isPartOf(e)}function $(){const e=window;return e.elementor?.channels?.dataEditMode?.request?.("activeMode")}function O(){return P(v(),(()=>"preview"===$()))}function R(e){return P([d(e),f(e)],(()=>j(e)),[e])}function C(e,{blockOnKitRoutes:t=!0,blockOnPreviewMode:n=!0}={}){const r=R(e),o=R("panel/global"),i=O();return{isActive:r&&!(n&&i),isBlocked:n&&i||t&&o}}}(),(window.elementorV2=window.elementorV2||{}).editorV1Adapters=r}();{"version":"1.0","provider_name":"Phoenix288 News Pusat Media Informasi & Berita Seputar Olahraga","provider_url":"https:\/\/phoenix288.news","author_name":"pOrt-Ph03nIx288","author_url":"https:\/\/phoenix288.news\/author\/port-ph03nix288\/","title":"Alisson Absen, Kelleher Siap Tampil Membuktikan Kualitasnya - Phoenix288 News Pusat Media Informasi & Berita Seputar Olahraga","type":"rich","width":600,"height":338,"html":"Alisson Absen, Kelleher Siap Tampil Membuktikan Kualitasnya<\/a><\/blockquote>