/*! For license information please see editor-styles-repository.js.LICENSE.txt */ !function(){"use strict";var e={"./packages/packages/core/editor-styles-repository/src/errors.ts":function(e,t,r){r.r(t),r.d(t,{ActiveDocumentMustExistError:function(){return i},InvalidElementsStyleProviderMetaError:function(){return o}});var s=r("@elementor/utils");const o=(0,s.createError)({code:"invalid_elements_style_provider_meta",message:"Invalid elements style provider meta."}),i=(0,s.createError)({code:"active_document_must_exist",message:"Active document must exist."})},"./packages/packages/core/editor-styles-repository/src/hooks/use-get-styles-repository-create-action.ts":function(e,t,r){r.r(t),r.d(t,{useGetStylesRepositoryCreateAction:function(){return useGetStylesRepositoryCreateAction}});var s=r("react"),o=r("./packages/packages/core/editor-styles-repository/src/styles-repository.ts"),i=r("./packages/packages/core/editor-styles-repository/src/hooks/use-user-styles-capability.ts");function useGetStylesRepositoryCreateAction(){const{userCan:e}=(0,i.useUserStylesCapability)();return(0,s.useMemo)(()=>{const t=o.stylesRepository.getProviders().map(t=>t.actions.create&&e(t.getKey()).create?[t,t.actions.create]:null).filter(Boolean);if(1===t.length)return t[0];if(0===t.length)return null;throw new Error("Multiple providers with create action found in styles repository.")},[])}},"./packages/packages/core/editor-styles-repository/src/hooks/use-providers.ts":function(e,t,r){r.r(t),r.d(t,{useProviders:function(){return useProviders}});var s=r("react"),o=r("./packages/packages/core/editor-styles-repository/src/styles-repository.ts");function useProviders(){const[,e]=(0,s.useReducer)(e=>!e,!1);return(0,s.useEffect)(()=>o.stylesRepository.subscribe(e),[]),o.stylesRepository.getProviders()}},"./packages/packages/core/editor-styles-repository/src/hooks/use-user-styles-capability.ts":function(e,t,r){r.r(t),r.d(t,{useUserStylesCapability:function(){return useUserStylesCapability}});var s=r("@elementor/editor-current-user"),o=r("./packages/packages/core/editor-styles-repository/src/styles-repository.ts");const i={create:!0,delete:!0,update:!0,updateProps:!0},useUserStylesCapability=()=>{const{capabilities:e}=(0,s.useCurrentUserCapabilities)();return{userCan:t=>{const r=o.stylesRepository.getProviderByKey(t);return r?.capabilities?Object.entries(r.capabilities).reduce((t,[r,s])=>({...t,[r]:e?.includes(s)??!0}),i):i}}}},"./packages/packages/core/editor-styles-repository/src/init.ts":function(e,t,r){r.r(t),r.d(t,{init:function(){return init}});var s=r("./packages/packages/core/editor-styles-repository/src/providers/document-elements-styles-provider.ts"),o=r("./packages/packages/core/editor-styles-repository/src/providers/element-base-styles-provider.ts"),i=r("./packages/packages/core/editor-styles-repository/src/styles-repository.ts");function init(){i.stylesRepository.register(s.documentElementsStylesProvider),i.stylesRepository.register(o.elementBaseStylesProvider)}},"./packages/packages/core/editor-styles-repository/src/providers/document-elements-styles-provider.ts":function(e,t,r){r.r(t),r.d(t,{ELEMENTS_STYLES_PROVIDER_KEY_PREFIX:function(){return n},ELEMENTS_STYLES_RESERVED_LABEL:function(){return c},documentElementsStylesProvider:function(){return p}});var s=r("@elementor/editor-elements"),o=r("@elementor/editor-v1-adapters"),i=r("./packages/packages/core/editor-styles-repository/src/errors.ts"),a=r("./packages/packages/core/editor-styles-repository/src/utils/create-styles-provider.ts");const n="document-elements-",c="local",l=/^local-\d+-(preview|frontend)-[a-zA-Z_-]+-css$/,p=(0,a.createStylesProvider)({key:()=>{const e=(0,s.getCurrentDocumentId)();if(!e)throw new i.ActiveDocumentMustExistError;return`${n}${e}`},priority:50,isPregeneratedLink:({id:e})=>l.test(e),subscribe:e=>(0,o.__privateListenTo)(s.styleRerenderEvents,()=>e()),actions:{all:(e={})=>{let t=(0,s.getElements)();return isValidElementsMeta(e)&&(t=t.filter(t=>t.id===e.elementId)),t.flatMap(e=>Object.values(e.model.get("styles")??{}))},get:(e,t={})=>{if(!isValidElementsMeta(t))throw new i.InvalidElementsStyleProviderMetaError({context:{meta:t}});return((0,s.getElementStyles)(t.elementId)??{})[e]??null},updateProps:(e,t={})=>{if(!isValidElementsMeta(t))throw new i.InvalidElementsStyleProviderMetaError({context:{meta:t}});(0,s.updateElementStyle)({elementId:t.elementId,styleId:e.id,meta:e.meta,props:e.props})},updateCustomCss:(e,t={})=>{if(!isValidElementsMeta(t))throw new i.InvalidElementsStyleProviderMetaError({context:{meta:t}});(0,s.updateElementStyle)({elementId:t.elementId,styleId:e.id,meta:e.meta,custom_css:e.custom_css.raw?e.custom_css:null,props:{}})}}});function isValidElementsMeta(e){return"elementId"in e&&"string"==typeof e.elementId&&!!e.elementId}},"./packages/packages/core/editor-styles-repository/src/providers/element-base-styles-provider.ts":function(e,t,r){r.r(t),r.d(t,{ELEMENTS_BASE_STYLES_PROVIDER_KEY:function(){return i},elementBaseStylesProvider:function(){return a}});var s=r("@elementor/editor-elements"),o=r("./packages/packages/core/editor-styles-repository/src/utils/create-styles-provider.ts");const i="element-base-styles",a=(0,o.createStylesProvider)({key:i,actions:{all(){const e=(0,s.getWidgetsCache)();return Object.values(e??{}).flatMap(e=>Object.values(e.base_styles??{}))},get(e){return this.all().find(t=>t.id===e)??null}}})},"./packages/packages/core/editor-styles-repository/src/styles-repository.ts":function(e,t,r){r.r(t),r.d(t,{stylesRepository:function(){return s}});const s=(0,r("./packages/packages/core/editor-styles-repository/src/utils/create-styles-repository.ts").createStylesRepository)()},"./packages/packages/core/editor-styles-repository/src/types.ts":function(e,t,r){r.r(t)},"./packages/packages/core/editor-styles-repository/src/utils/create-styles-provider.ts":function(e,t,r){r.r(t),r.d(t,{createStylesProvider:function(){return createStylesProvider}});const s=1e4,o=10;function createStylesProvider({key:e,priority:t=o,limit:r=s,subscribe:i=()=>()=>{},labels:a,actions:n,capabilities:c,isPregeneratedLink:l}){return{getKey:"string"==typeof e?()=>e:e,priority:t,limit:r,capabilities:c,subscribe:i,labels:{singular:a?.singular??null,plural:a?.plural??null},actions:{all:n.all,get:n.get,resolveCssName:n.resolveCssName??(e=>e),create:n.create,delete:n.delete,update:n.update,updateProps:n.updateProps,updateCustomCss:n.updateCustomCss,tracking:n.tracking},isPregeneratedLink:l}}},"./packages/packages/core/editor-styles-repository/src/utils/create-styles-repository.ts":function(e,t,r){r.r(t),r.d(t,{createStylesRepository:function(){return createStylesRepository}});const createStylesRepository=()=>{const e=[],getProviders=()=>e.slice(0).sort((e,t)=>e.priority>t.priority?-1:1);return{all:(e={})=>getProviders().flatMap(t=>t.actions.all(e)),register:t=>{e.push(t)},subscribe:t=>{const r=e.map(e=>e.subscribe(t));return()=>{r.forEach(e=>e())}},getProviders:getProviders,getProviderByKey:t=>e.find(e=>e.getKey()===t)}}},"./packages/packages/core/editor-styles-repository/src/utils/is-elements-styles-provider.ts":function(e,t,r){r.r(t),r.d(t,{isElementsStylesProvider:function(){return isElementsStylesProvider}});var s=r("./packages/packages/core/editor-styles-repository/src/providers/document-elements-styles-provider.ts");function isElementsStylesProvider(e){return new RegExp(`^${s.ELEMENTS_STYLES_PROVIDER_KEY_PREFIX}\\d+$`).test(e)}},"./packages/packages/core/editor-styles-repository/src/utils/validate-style-label.ts":function(e,t,r){r.r(t),r.d(t,{validateStyleLabel:function(){return validateStyleLabel}});var s=r("@elementor/schema"),o=r("@wordpress/i18n"),i=r("./packages/packages/core/editor-styles-repository/src/providers/document-elements-styles-provider.ts"),a=r("./packages/packages/core/editor-styles-repository/src/styles-repository.ts");const n=["container"],c=s.z.string().max(50,(0,o.__)("Class name is too long. Please keep it under 50 characters.","elementor")).regex(/^(|[^0-9].*)$/,(0,o.__)("Class names must start with a letter.","elementor")).regex(/^\S*$/,(0,o.__)("Class names can’t contain spaces.","elementor")).regex(/^(|[a-zA-Z0-9_-]+)$/,(0,o.__)("Class names can only use letters, numbers, dashes (-), and underscores (_).","elementor")).regex(/^(?!--).*/,(0,o.__)("Double hyphens are reserved for custom properties.","elementor")).regex(/^(?!-[0-9])/,(0,o.__)("Class names can’t start with a hyphen followed by a number.","elementor")).refine(e=>!n.includes(e),{message:(0,o.__)("This name is reserved and can’t be used. Try something more specific.","elementor")});function validateStyleLabel(e,t){const r=new Set([i.ELEMENTS_STYLES_RESERVED_LABEL,...a.stylesRepository.all().map(e=>e.label.toLowerCase())]),s=["create","rename"].includes(t),n=c.refine(e=>!(s&&e.length<2),{message:(0,o.__)("Class name is too short. Use at least 2 characters.","elementor")}).refine(e=>!(s&&r.has(e)),{message:(0,o.__)("This class name already exists. Please choose a unique name.","elementor")}).safeParse(e.toLowerCase());return n.success?{isValid:!0,errorMessage:null}:{isValid:!1,errorMessage:n.error.format()._errors[0]}}},"@elementor/editor-current-user":function(e){e.exports=window.elementorV2.editorCurrentUser},"@elementor/editor-elements":function(e){e.exports=window.elementorV2.editorElements},"@elementor/editor-v1-adapters":function(e){e.exports=window.elementorV2.editorV1Adapters},"@elementor/schema":function(e){e.exports=window.elementorV2.schema},"@elementor/utils":function(e){e.exports=window.elementorV2.utils},"@wordpress/i18n":function(e){e.exports=window.wp.i18n},react:function(e){e.exports=window.React}},t={};function __webpack_require__(r){var s=t[r];if(void 0!==s)return s.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,__webpack_require__),o.exports}__webpack_require__.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=function(e,t){for(var r in t)__webpack_require__.o(t,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},__webpack_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};!function(){__webpack_require__.r(r),__webpack_require__.d(r,{ELEMENTS_BASE_STYLES_PROVIDER_KEY:function(){return c.ELEMENTS_BASE_STYLES_PROVIDER_KEY},ELEMENTS_STYLES_PROVIDER_KEY_PREFIX:function(){return l.ELEMENTS_STYLES_PROVIDER_KEY_PREFIX},ELEMENTS_STYLES_RESERVED_LABEL:function(){return l.ELEMENTS_STYLES_RESERVED_LABEL},createStylesProvider:function(){return a.createStylesProvider},init:function(){return p.init},isElementsStylesProvider:function(){return n.isElementsStylesProvider},stylesRepository:function(){return e.stylesRepository},useGetStylesRepositoryCreateAction:function(){return s.useGetStylesRepositoryCreateAction},useProviders:function(){return t.useProviders},useUserStylesCapability:function(){return o.useUserStylesCapability},validateStyleLabel:function(){return i.validateStyleLabel}});__webpack_require__("./packages/packages/core/editor-styles-repository/src/types.ts");var e=__webpack_require__("./packages/packages/core/editor-styles-repository/src/styles-repository.ts"),t=__webpack_require__("./packages/packages/core/editor-styles-repository/src/hooks/use-providers.ts"),s=__webpack_require__("./packages/packages/core/editor-styles-repository/src/hooks/use-get-styles-repository-create-action.ts"),o=__webpack_require__("./packages/packages/core/editor-styles-repository/src/hooks/use-user-styles-capability.ts"),i=__webpack_require__("./packages/packages/core/editor-styles-repository/src/utils/validate-style-label.ts"),a=__webpack_require__("./packages/packages/core/editor-styles-repository/src/utils/create-styles-provider.ts"),n=__webpack_require__("./packages/packages/core/editor-styles-repository/src/utils/is-elements-styles-provider.ts"),c=__webpack_require__("./packages/packages/core/editor-styles-repository/src/providers/element-base-styles-provider.ts"),l=__webpack_require__("./packages/packages/core/editor-styles-repository/src/providers/document-elements-styles-provider.ts"),p=__webpack_require__("./packages/packages/core/editor-styles-repository/src/init.ts")}(),(window.elementorV2=window.elementorV2||{}).editorStylesRepository=r}(),window.elementorV2.editorStylesRepository?.init?.(); //# sourceMappingURL=editor-styles-repository.js.map

“Stories, historias, iсторії, iστορίες

Mon, Jan 1

Free Workshop

This immersive event celebrates the universal human experience through the lenses of history and ancestry, featuring a diverse array of photographers whose works capture the essence of different cultures and historical moments.

RSVP

Close up photo of white flowers on a grey background
/* global redux, redux_ajax_script,redux_change, reduxColorSchemeAfterUpdateHTML */ // noinspection JSUnresolvedReference ( function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.color_scheme = redux.field_objects.color_scheme || {}; redux.field_objects.color_scheme.nonce = ''; redux.field_objects.color_scheme.fieldID = ''; redux.field_objects.color_scheme.optName = ''; redux.field_objects.color_scheme.el = ''; redux.field_objects.color_scheme.showTooltips = ''; redux.field_objects.color_scheme.default_params = {}; redux.field_objects.color_scheme.hexToRGBA = function ( hex, alpha ) { let result; let r; let b; let g; if ( null === hex ) { result = ''; } else { hex = hex.replace( '#', '' ); r = parseInt( hex.substring( 0, 2 ), 16 ); g = parseInt( hex.substring( 2, 4 ), 16 ); b = parseInt( hex.substring( 4, 6 ), 16 ); result = 'rgba(' + r + ',' + g + ',' + b + ',' + alpha + ')'; } return result; }; redux.field_objects.color_scheme.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-color_scheme:visible' ); } $( selector ).each( function () { const el = $( this ); let parent = el; redux.field_objects.color_scheme.el = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } redux.field_objects.color_scheme.modInit( el ); redux.field_objects.color_scheme.setAccordions( el ); redux.field_objects.color_scheme.import( el ); redux.field_objects.color_scheme.delete( el ); redux.field_objects.color_scheme.save( el ); redux.field_objects.color_scheme.qtip( el ); } ); }; redux.field_objects.color_scheme.qtip = function ( el ) { let tooltips; let shadow; let rounded; let color; let style; let myPos; let atPos; let classes; let destroy = false; if ( false === redux.field_objects.color_scheme.showTooltips ) { destroy = true; } tooltips = el.find( '.redux-color-scheme-container' ).data( 'tooltips' ); if ( '' === tooltips ) { return; } tooltips = decodeURIComponent( tooltips ); tooltips = JSON.parse( tooltips ); shadow = ''; if ( true === tooltips.style.shadow ) { shadow = 'qtip-shadow'; } rounded = ''; if ( true === tooltips.style.rounded ) { rounded = 'qtip-rounded'; } color = ''; if ( '' !== tooltips.style.color ) { color = 'qtip-' + tooltips.style.color; } style = ''; if ( '' !== tooltips.style.style ) { style = 'qtip-' + tooltips.style.style; } classes = shadow + ',' + color + ',' + rounded + ',' + style; classes = classes.replace( /,/g, ' ' ); myPos = tooltips.position.my; atPos = tooltips.position.at; myPos = $.redux.verifyPos( myPos.toLowerCase(), true ); atPos = $.redux.verifyPos( atPos.toLowerCase(), false ); $( 'li.redux-cs-qtip' ).each( function () { const content = $( this ).attr( 'qtip-content' ); const title = $( this ).attr( 'qtip-title' ); if ( '' === content && '' === title ) { return; } if ( true === destroy ) { $( this ).qtip( 'destroy', true ); } else { $( this ).qtip( { content: { text: content, title: title }, show: { effect: function () { if ( 'slide' === tooltips.effect.show_effect ) { $( this ).slideDown( tooltips.effect.show_duration ); } else if ( 'fade' === tooltips.effect.show_effect ) { $( this ).fadeIn( tooltips.effect.show_duration ); } else { $( this ).show(); } }, event: tooltips.effect.show_event }, hide: { effect: function () { if ( 'slide' === tooltips.effect.hide_effect ) { $( this ).slideUp( tooltips.effect.hide_duration ); } else if ( 'fade' === tooltips.effect.hide_effect ) { $( this ).fadeOut( tooltips.effect.hide_duration ); } else { $( this ).hide(); } }, event: tooltips.effect.hide_event }, style: { classes: classes }, position: { my: myPos, at: atPos } } ); } } ); }; redux.field_objects.color_scheme.setAccordions = function ( el ) { let accordionSection; let isOpen; const ulContainer = el.find( 'ul.redux-scheme-layout' ); const openIcon = ulContainer.data( 'open-icon' ); const closeIcon = ulContainer.data( 'close-icon' ); const isAccordion = Boolean( el.find( '.redux-color-scheme-container' ).data( 'accordion' ) ); if ( true === isAccordion ) { accordionSection = el.find( '.redux-color-scheme-accordion-section' ); accordionSection.each( function () { isOpen = Boolean( $( this ).data( 'state' ) ); if ( false === isOpen ) { $( this ).hide(); } else { $( this ).prev( '.redux-color-scheme-accordion' ).find( '.el' ).removeClass( openIcon ).addClass( closeIcon ); redux.field_objects.color_scheme.initColorPicker( $( this ) ); } } ); el.find( '.redux-color-scheme-accordion' ).on( 'click', function ( e ) { let nextAccordion; e.preventDefault(); nextAccordion = $( this ).next( '.redux-color-scheme-accordion-section' ); if ( nextAccordion.is( ':visible' ) ) { $( this ).find( '.el' ).removeClass( closeIcon ).addClass( openIcon ); nextAccordion.slideUp(); } else { $( this ).find( '.el' ).removeClass( openIcon ).addClass( closeIcon ); redux.field_objects.color_scheme.initColorPicker( nextAccordion ); nextAccordion.slideDown(); } } ); } else { redux.field_objects.color_scheme.initColorPicker( el ); } }; redux.field_objects.color_scheme.modInit = function ( el ) { let select2_handle; let select2_params; redux.field_objects.color_scheme.nonce = el.find( '.redux-color-scheme-container' ).data( 'nonce' ); redux.field_objects.color_scheme.fieldID = el.find( '.redux-color-scheme-container' ).data( 'id' ); redux.field_objects.color_scheme.optName = el.find( '.redux-color-scheme-container' ).data( 'opt-name' ); redux.field_objects.color_scheme.showTooltips = el.find( '.redux-color-scheme-container' ).data( 'show-tooltips' ); redux.field_objects.color_scheme.default_params = { triggerChange: true, allowClear: false }; select2_handle = el.find( '.redux-container-color_scheme' ).find( '.select2_params' ); if ( select2_handle.length > 0 ) { select2_params = select2_handle.val(); select2_params = JSON.parse( select2_params ); redux.field_objects.color_scheme.default_params = $.extend( {}, redux.field_objects.color_scheme.default_params, select2_params ); } // Init select2 for scheme select. el.find( '.redux-scheme-select' ).select2( redux.field_objects.color_scheme.default_params ); // Init select2 for select boxes. el.find( 'select.redux-color-scheme-opt-select' ).select2( redux.field_objects.color_scheme.default_params ); // Auto select text in input box. el.find( 'input.redux-scheme-input-' + redux.field_objects.color_scheme.fieldID ).on( 'click', function ( e ) { this.focus(); this.select(); e.preventDefault(); } ); // Set scheme input box to selected value. el.find( 'input.redux-scheme-input-' + redux.field_objects.color_scheme.fieldID ).val( el.find( '#redux-scheme-select-' + redux.field_objects.color_scheme.fieldID ).val() ); // Select change. el.find( '#redux-scheme-select-' + redux.field_objects.color_scheme.fieldID ).on( 'change', function () { redux.field_objects.color_scheme.selectChange( el ); } ); el.find( '#redux-' + redux.field_objects.color_scheme.fieldID + '-tooltip-checkbox' ).on( 'change', function () { const checked = $( this ).is( ':checked' ); $( this ).val( checked ); redux.field_objects.color_scheme.showTooltips = checked; redux.field_objects.color_scheme.qtip( el ); } ); }; redux.field_objects.color_scheme.import = function ( el ) { const fieldID = redux.field_objects.color_scheme.fieldID; el.find( '.redux-import-scheme-button' ).on( 'click', function () { $( '#redux-color-scheme-upload-file' ).trigger( 'click' ); } ); document.getElementById( 'redux-color-scheme-upload-file' ).addEventListener( 'change', function () { const file_to_read = document.getElementById( 'redux-color-scheme-upload-file' ).files[0]; if ( 'application/json' === file_to_read.type ) { const fileread = new FileReader(); fileread.readAsText( file_to_read ); fileread.onload = function () { const content = fileread.result; let data; data = { action: 'redux_color_schemes', nonce: redux.field_objects.color_scheme.nonce, opt_name: redux.field_objects.color_scheme.optName, type: 'import', content: content }; // Post ajax. $.post( redux_ajax_script.ajaxurl, data, function ( response ) { response = JSON.parse( response ); console.log( response ); el.find( '#redux-' + fieldID + '-scheme-message-notice h2' ).html( response.data ); // Show message. $.blockUI( { message: el.find( '#redux-' + fieldID + '-scheme-message-notice' ), theme: false, css: { width: '500px', padding: '5px' } } ); // Click OK. $( '#redux-' + fieldID + '-scheme-ok' ).on( 'click', function () { // Unload modal. $.unblockUI(); // Reload window on success. if ( true === response.result ) { window.onbeforeunload = ''; location.reload(); } // Bail out! return false; } ); } ); }; fileread.onerror = function () { console.log( fileread.error ); }; } } ); }; redux.field_objects.color_scheme.delete = function ( el ) { const field_id = redux.field_objects.color_scheme.fieldID; el.find( '#redux-' + field_id + '-delete-scheme-button' ).on( 'click', function ( event ) { let select_name; // Prevent default action. event.preventDefault(); // Retrieve selected scheme name. select_name = el.find( '#redux-scheme-select-' + field_id ).val(); // Check for 'default', as we don't want to delete it. if ( 'default' === select_name.toLowerCase() ) { // Set on screen message. el.find( '#redux-' + field_id + '-scheme-message-notice h2' ).html( 'Cannot delete the Default scheme, as it is reserved.' ); // Show message. $.blockUI( { message: el.find( '#redux-' + field_id + '-scheme-message-notice' ), theme: false, css: { width: '500px', padding: '5px' } } ); // Clicked OK. $( '#redux-' + field_id + '-scheme-ok' ).on( 'click', function () { $.unblockUI(); return false; } ); return false; } // Load delete question modal. $.blockUI( { message: el.find( '#redux-' + field_id + '-delete-scheme-question' ), theme: false, css: { width: '500px', padding: '5px' } } ); // Clicked yes. $( '#redux-' + field_id + '-delete-scheme-yes' ).on( 'click', function () { let data; let wait_msg; // If selected scheme name is valid... if ( select_name ) { // Set ajax parameters. data = { action: 'redux_color_schemes', nonce: redux.field_objects.color_scheme.nonce, opt_name: redux.field_objects.color_scheme.optName, type: 'delete', scheme_id: select_name, field_id: field_id }; // Load Please wait message. wait_msg = el.find( '#redux-' + field_id + '-scheme-wait-message h1' ).html(); $.blockUI( { message: '

' + wait_msg + 'deleting scheme.

', theme: false, css: { width: '500px', padding: '5px' } } ); // Post ajax. $.post( redux_ajax_script.ajaxurl, data, function ( response ) { // Successful delete. if ( 'success' === response ) { // Remove deleted scheme from selector. el.find( '#redux-scheme-select-' + field_id + ' option[value=\'' + select_name + '\']' ).remove(); // Clear selector (default). el.find( '.redux-scheme-select' ).select2(); el.find( '.redux-scheme-select' ).val( 'Default' ).trigger( 'change' ); // Clear input box. el.find( 'input.redux-scheme-input-' + field_id ).val( '' ); // Update modal message text. el.find( '#redux-' + field_id + '-scheme-message-notice h2' ).html( 'The ' + select_name + ' scheme has been removed.

The color table has been reset to default values.' ); // Display the notice. $.blockUI( { message: el.find( '#redux-' + field_id + '-scheme-message-notice' ), theme: false, css: { width: '500px', padding: '5px' } } ); // Click OK, unload msg, bail out. $( '#redux-' + field_id + '-scheme-ok' ).on( 'click', function () { $.unblockUI(); // Update the HTML preview. redux.field_objects.color_scheme.updateSchemeHTML( 0, el ); return false; } ); } else { // Update modal message with fail response. el.find( '#redux-' + field_id + '-scheme-message-notice h2' ).html( 'Delete failed: ' + response ); // Display the notice. $.blockUI( { message: el.find( '#redux-' + field_id + '-scheme-message-notice' ), theme: false, css: { width: '500px', padding: '5px' } } ); // Click OK, unload msg, bail out. $( '#redux-' + field_id + '-scheme-ok' ).on( 'click', function () { $.unblockUI(); return false; } ); } } ); } } ); // Clicked no. $( '#redux-' + field_id + '-delete-scheme-no' ).on( 'click', function () { $.unblockUI(); return false; } ); } ); }; redux.field_objects.color_scheme.save = function ( el ) { const field_id = redux.field_objects.color_scheme.fieldID; el.find( '#redux-' + field_id + '-save-scheme-button' ).on( 'click', function ( event ) { let input_text; let scheme_name; let data; let wait_msg; let arrData = []; event.preventDefault(); // Prevent blank input. input_text = el.find( 'input.redux-scheme-input-' + field_id ).val(); // Trim. input_text = input_text.replace( /^\s+|\s+$/gm, '' ); // Allow only alphanumeric, space, dash, and underscore. input_text = input_text.replace( /[^a-z0-9\s\-]/gi, '' ); // Do nothing if input_text is empty. if ( '' === input_text ) { return false; } // Check for default scheme. if ( 'default' === input_text.toLowerCase() ) { // Update notice message. el.find( '#redux-' + field_id + '-scheme-message-notice h2' ).html( 'The name Default cannot be used as it is reserved.' ); // Display msg. $.blockUI( { message: el.find( '#redux-' + field_id + '-scheme-message-notice' ), theme: false, css: { width: '500px', padding: '5px' } } ); // Clicked OK. Close message and exit. $( '#redux-' + field_id + '-scheme-ok' ).on( 'click', function () { $.unblockUI(); return false; } ); // Bail out. return false; } // Enum through them all and collect data. el.find( '.redux-scheme-layout-container' ).each( function () { const obj = $( this ).children( '.redux-color-scheme' ); const title = obj.data( 'title' ); const id = obj.data( 'id' ); const color = obj.data( 'hex-color' ); const alpha = obj.data( 'alpha' ); const rgba = obj.data( 'rgba' ); const group = obj.data( 'group' ); // Push data into the array. arrData.push( { id: id, title: title, color: color, alpha: alpha, rgba: rgba, group: group } ); } ); arrData = JSON.stringify( arrData ); arrData = encodeURIComponent( arrData ); // Get scheme name from text box. scheme_name = el.find( '.redux-scheme-input-' + field_id ).val(); // If one exists, proceed. if ( scheme_name ) { // Set ajax parameters. data = { action: 'redux_color_schemes', nonce: redux.field_objects.color_scheme.nonce, opt_name: redux.field_objects.color_scheme.optName, type: 'save', scheme_name: scheme_name, scheme_data: arrData, field_id: field_id }; // Get default wait message. wait_msg = el.find( '#redux-' + field_id + '-scheme-wait-message h1' ).html(); // Load wait message. $.blockUI( { message: '

' + wait_msg + 'saving scheme.

', theme: false, css: { width: '500px', padding: '5px' } } ); el.find( '.redux-scheme-select' ).select2( 'destroy' ); // Post ajax. $.post( redux_ajax_script.ajaxurl, data, function ( response ) { // New selector change hook. el.find( '#redux-scheme-select-' + field_id ).on( 'change', function () { redux.field_objects.color_scheme.selectChange( el ); } ); if ( 'fail' === response ) { el.find( '#redux-' + field_id + '-scheme-message-notice h2' ).html( 'The scheme ' + scheme_name + ' already exists and cannot be added again.' ); } else { // Replace selector with updated values. el.find( '#redux-scheme-select-' + field_id ).replaceWith( response ); // Update notice message. el.find( '#redux-' + field_id + '-scheme-message-notice h2' ).html( 'The scheme ' + scheme_name + ' has been added to your scheme list.' ); } // Display notice message. $.blockUI( { message: el.find( '#redux-' + field_id + '-scheme-message-notice' ), theme: false, css: { width: '500px', padding: '5px' } } ); // Clicked OK. Unload and exit. $( '#redux-' + field_id + '-scheme-ok' ).on( 'click', function () { $.unblockUI(); return false; } ); el.find( '#redux-scheme-select-' + redux.field_objects.color_scheme.fieldID ).on( 'change', function () { redux.field_objects.color_scheme.selectChange( el ); } ); el.find( '.redux-scheme-select' ).select2( redux.field_objects.color_scheme.default_params ); el.find( 'select.redux-color-scheme-opt-select' ).select2( redux.field_objects.color_scheme.default_params ); } ); } } ); }; redux.field_objects.color_scheme.selectChange = function ( el ) { let selected; const field_id = redux.field_objects.color_scheme.fieldID; // Fade out the colour pickers. el.find( 'ul.redux-scheme-layout' ).fadeOut(); // Get selected value. selected = el.find( '#redux-scheme-select-' + field_id ).val(); // Remove default blank value, if any. el.find( '#redux-scheme-select-' + field_id + ' option[value=\'\']' ).remove(); // Get scheme name from input box. el.find( 'input.redux-scheme-input-' + field_id ).val( selected ); // Update colour pickers. redux.field_objects.color_scheme.updateSchemeHTML( selected, el ); }; redux.field_objects.color_scheme.updateSchemeHTML = function ( selected, el ) { let field_class; let data; const field_id = redux.field_objects.color_scheme.fieldID; // Get default wait msg. const wait_msg = el.find( '#redux-' + field_id + '-scheme-wait-message h1' ).html(); // Display appended msg. $.blockUI( { message: '

' + wait_msg + 'updating scheme.

', theme: false, css: { width: '500px', padding: '5px' } } ); // Get field class. Needed for custom classes from field array. field_class = el.find( '.redux-color-scheme' ).attr( 'class' ); // Set ajax parameters. data = { action: 'redux_color_schemes', nonce: redux.field_objects.color_scheme.nonce, opt_name: redux.field_objects.color_scheme.optName, type: 'update', scheme_id: selected, field_id: field_id, field_class: field_class }; // Post ajax. $.post( redux_ajax_script.ajaxurl, data, function ( response ) { // Replace colour picker layout. el.find( 'ul.redux-scheme-layout' ).replaceWith( response ); // Re-init colour pickers. redux.field_objects.color_scheme.setAccordions( el ); // Fade colour pickers back in. el.find( 'ul.redux-scheme-layout' ).fadeIn(); // Remove waiting msg. $.unblockUI(); // Set flags for compiler. redux_change( el.find( '.redux-color-scheme-container' ) ); el.find( 'select.redux-color-scheme-opt-select' ).select2( redux.field_objects.color_scheme.default_params ); if ( 'function' === typeof reduxColorSchemeAfterUpdateHTML ) { reduxColorSchemeAfterUpdateHTML( $( this ), el ); } } ); }; // Initialize colour picker. redux.field_objects.color_scheme.initColorPicker = function ( el ) { // Get field ID. const field_id = redux.field_objects.color_scheme.fieldID; // Get the color scheme container. let colorpickerInput = el.find( '.redux-color-scheme' ); // Get alpha value and sanitize it. let currentAlpha = colorpickerInput.data( 'current-alpha' ); // Get colour value and sanitize it. let currentColor = colorpickerInput.data( 'current-color' ); let outputTransparent = colorpickerInput.data( 'output-transparent' ); // Color picker arguments. const container = redux.field_objects.color_scheme.el.find( '.redux-color-scheme-container' ); // Get, decode and parse palette. let palette = container.data( 'palette' ); let pickerGap = container.data( 'picker-gap' ); let pickerFontSize = container.data( 'picker-font-size' ); // Get and sanitize show input argument. let showInput = container.data( 'show-input' ); // Get and sanitize show initial argument. let showInitial = container.data( 'show-initial' ); // Get and sanitize show alpha argument. let showAlpha = container.data( 'show-alpha' ); // Get and sanitize allow empty argument. let allowEmpty = container.data( 'allow-empty' ); // Get and sanitize show palette argument. let showPalette = container.data( 'show-palette' ); // Get and sanitize show palette only argument. let showPaletteOnly = container.data( 'show-palette-only' ); // Get and sanitize show selection palette argument. let showSelectionPalette = container.data( 'show-selection-palette' ); // Get max palette size. let maxPaletteSize = Number( container.data( 'max-palette-size' ) ); // Get and sanitize clickout fires change argument. let clickoutFiresChange = container.data( 'clickout-fires-change' ); // Get choose button text. let chooseText = String( container.data( 'choose-text' ) ); // Get cancel button text. let cancelText = String( container.data( 'cancel-text' ) ); // Get and sanitize show buttons argument. let showButtons = container.data( 'show-buttons' ); // Get container class. let containerClass = String( container.data( 'container-class' ) ); // Get replacer class. let replacerClass = String( container.data( 'replacer-class' ) ); // Picker gap css. el.find( 'li.redux-scheme-layout' ).css( 'width', pickerGap ); // Picker font size. el.find( '.redux-layout-label' ).attr( 'style', 'font-size: ' + pickerFontSize + '!important' ); currentAlpha = Number( ( null === currentAlpha || undefined === currentAlpha ) ? 1 : currentAlpha ); currentColor = ( '' === currentColor || 'transparent' === currentColor ) ? '' : currentColor; outputTransparent = Boolean( ( '' === outputTransparent ) ? false : outputTransparent ); palette = decodeURIComponent( palette ); palette = JSON.parse( palette ); // Default palette. if ( null === palette ) { palette = [ ['#000000', '#434343', '#666666', '#999999', '#b7b7b7', '#cccccc', '#d9d9d9', '#efefef', '#f3f3f3', '#ffffff'], ['#980000', '#ff0000', '#ff9900', '#ffff00', '#00ff00', '#00ffff', '#4a86e8', '#0000ff', '#9900ff', '#ff00ff'], ['#e6b8af', '#f4cccc', '#fce5cd', '#fff2cc', '#d9ead3', '#d9ead3', '#c9daf8', '#cfe2f3', '#d9d2e9', '#ead1dc'], ['#dd7e6b', '#ea9999', '#f9cb9c', '#ffe599', '#b6d7a8', '#a2c4c9', '#a4c2f4', '#9fc5e8', '#b4a7d6', '#d5a6bd'], ['#cc4125', '#e06666', '#f6b26b', '#ffd966', '#93c47d', '#76a5af', '#6d9eeb', '#6fa8dc', '#8e7cc3', '#c27ba0'], ['#a61c00', '#cc0000', '#e69138', '#f1c232', '#6aa84f', '#45818e', '#3c78d8', '#3d85c6', '#674ea7', '#a64d79'], ['#85200c', '#990000', '#b45f06', '#bf9000', '#38761d', '#134f5c', '#1155cc', '#0b5394', '#351c75', '#741b47'], ['#5b0f00', '#660000', '#783f04', '#7f6000', '#274e13', '#0c343d', '#1c4587', '#073763', '#20124d', '#4c1130'] ]; } pickerGap = String( ( '' === pickerGap ) ? '60px' : pickerGap ); pickerFontSize = String( ( '' === pickerFontSize ) ? '11px' : pickerFontSize ); showInput = Boolean( ( '' === showInput ) ? false : showInput ); showInitial = Boolean( ( '' === showInitial ) ? false : showInitial ); showAlpha = Boolean( ( '' === showAlpha ) ? false : showAlpha ); allowEmpty = Boolean( ( '' === allowEmpty ) ? false : allowEmpty ); showPalette = Boolean( ( '' === showPalette ) ? false : showPalette ); showPaletteOnly = Boolean( ( '' === showPaletteOnly ) ? false : showPaletteOnly ); showSelectionPalette = Boolean( ( '' === showSelectionPalette ) ? false : showSelectionPalette ); clickoutFiresChange = Boolean( ( '' === clickoutFiresChange ) ? false : clickoutFiresChange ); showButtons = Boolean( ( '' === showButtons ) ? false : showButtons ); // Color picker options. colorpickerInput.spectrum( { color: currentColor, showAlpha: showAlpha, showInput: showInput, allowEmpty: allowEmpty, className: 'redux-full-spectrum', showInitial: showInitial, showPalette: showPalette, showSelectionPalette: showSelectionPalette, maxPaletteSize: maxPaletteSize, showPaletteOnly: showPaletteOnly, clickoutFiresChange: clickoutFiresChange, chooseText: chooseText, cancelText: cancelText, showButtons: showButtons, containerClassName: containerClass, replacerClassName: replacerClass, preferredFormat: 'hex6', localStorageKey: 'redux.spectrum.' + field_id, palette: palette, // On change. change: function ( color ) { let colorVal; let alphaVal; let rgbaVal; let blockID; let dataBlock; let rawData; if ( null === color ) { if ( true === outputTransparent ) { colorVal = 'transparent'; } else { colorVal = null; } alphaVal = null; } else { colorVal = color.toHexString(); alphaVal = color.getAlpha(); } if ( 'transparent' !== colorVal ) { rgbaVal = redux.field_objects.color_scheme.hexToRGBA( colorVal, alphaVal ); } else { rgbaVal = 'transparent'; } blockID = $( this ).data( 'block-id' ); dataBlock = el.find( 'input#' + blockID + '-data' ); rawData = dataBlock.val(); rawData = decodeURIComponent( rawData ); rawData = JSON.parse( rawData ); rawData.color = colorVal; rawData.alpha = alphaVal; rawData.rgba = rgbaVal; rawData = JSON.stringify( rawData ); rawData = encodeURIComponent( rawData ); dataBlock.val( rawData ); redux_change( redux.field_objects.color_scheme.el.find( '.redux-color-scheme-container' ) ); } } ); }; } )( jQuery ); https://bajipk.com/post-sitemap.xml 2026-08-26T14:21:57+00:00 https://bajipk.com/page-sitemap.xml 2026-02-14T13:06:29+00:00 https://bajipk.com/category-sitemap.xml 2026-08-26T14:21:57+00:00 https://bajipk.com/author-sitemap.xml 2026-01-26T20:55:16+00:00