@charset "UTF-8";.ai1wm-accordion{display:block;margin:1em 0}.ai1wm-accordion h4{color:rgba(0,116,162,.8);cursor:pointer;margin:0}.ai1wm-accordion h4 small{color:#444;display:inline;float:none;font-weight:400;width:auto}.ai1wm-accordion h4 small:after{content:"‎"}.ai1wm-accordion .ai1wm-icon-arrow-right{display:inline-block;transition:transform .1s ease-out}.ai1wm-accordion ul{height:0;list-style:none;margin:0;padding:0;transition:height .2s cubic-bezier(.19,1,.22,1);visibility:hidden}.ai1wm-accordion ul li small{display:inline;float:none;width:auto}.ai1wm-accordion.ai1wm-open h4 .ai1wm-icon-arrow-right{transform:rotate(-90deg)}.ai1wm-accordion.ai1wm-open ul{height:auto;margin:.6em 2em 0 0;visibility:visible}@keyframes ai1wm-rotate{0%{transform:rotate(0)}25%{transform:rotate(90deg)}50%{transform:rotate(180deg)}75%{transform:rotate(270deg)}to{transform:rotate(1turn)}}@keyframes ai1wm-emphasize{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes ai1wm-fadein{0%{transform:scale(0)}50%{transform:scale(1.5)}to{transform:scale(1)}}.ai1wm-button-group{background-color:transparent;border:2px solid #27ae60;border-radius:5px;color:#27ae60;cursor:pointer;display:inline-block;font-weight:600;text-align:right;text-transform:uppercase;transition:background-color .2s ease-out}.ai1wm-button-group.ai1wm-button-export{box-sizing:content-box}.ai1wm-button-group.ai1wm-button-export.ai1wm-open>.ai1wm-dropdown-menu{border-top:1px solid #27ae60;height:448px}.ai1wm-button-group.ai1wm-button-import{box-sizing:content-box}.ai1wm-button-group.ai1wm-button-import.ai1wm-open>.ai1wm-dropdown-menu{border-top:1px solid #27ae60;height:476px}.ai1wm-button-group .ai1wm-button-main{box-sizing:content-box;padding:6px 25px 6px 50px;position:relative}.ai1wm-button-group .ai1wm-dropdown-menu{border-top:none;height:0;overflow:hidden;transition:height .2s cubic-bezier(.19,1,.22,1)}.ai1wm-dropdown-menu{list-style:none}.ai1wm-dropdown-menu,.ai1wm-dropdown-menu li{margin:0!important;padding:0}.ai1wm-dropdown-menu li a,.ai1wm-dropdown-menu li a:visited{box-sizing:content-box;color:#27ae60;display:block;padding:5px 26px;text-align:right;text-decoration:none}.ai1wm-dropdown-menu li a:hover,.ai1wm-dropdown-menu li a:visited:hover{color:#111;text-decoration:none}.ai1mw-lines{height:10px;position:absolute;left:20px;top:9px;width:12px}.ai1wm-line{background:#27ae60;height:2px;margin:auto;position:absolute;transition:all .2s ease-in-out;width:100%}.ai1wm-line-first{right:0;top:0}div.ai1wm-open .ai1wm-line-first,div.ai1wm-open .ai1wm-line-third{top:50%}.ai1wm-line-second{right:0;top:50%}.ai1wm-line-third{right:0;top:100%}.ai1wm-button-gray{background-color:transparent;border:2px solid #95a5a6;border-radius:5px;color:#95a5a6;cursor:pointer;display:inline-block;font-weight:600;outline:none;padding:5px 26px 5px 25px;text-decoration:none;text-transform:uppercase;transition:background-color .2s ease-out}.ai1wm-button-gray:hover{background-color:#95a5a6;color:#fff}.ai1wm-button-green{background-color:transparent;border:2px solid #27ae60;border-radius:5px;color:#27ae60;cursor:pointer;display:inline-block;font-weight:600;outline:none;padding:5px 26px 5px 25px;text-decoration:none;text-transform:uppercase;transition:background-color .2s ease-out}.ai1wm-button-green:hover{background-color:#27ae60;color:#fff}.ai1wm-button-green-small{background-color:transparent;border:2px solid #6eb649;border-radius:5px;color:#6eb649;cursor:pointer;display:inline-block;font-weight:600;outline:none;padding:5px 26px 5px 25px;text-decoration:none;text-transform:uppercase;transition:background-color .2s ease-out}.ai1wm-button-green-small:hover{background-color:#6eb649;color:#fff}.ai1wm-button-blue{background-color:transparent;border:2px solid #00aff0;border-radius:5px;color:#00aff0;cursor:pointer;display:inline-block;font-weight:600;outline:none;padding:5px 26px 5px 25px;text-decoration:none;text-transform:uppercase;transition:background-color .2s ease-out}.ai1wm-button-blue:hover{background-color:#00aff0;color:#fff}.ai1wm-button-red{background-color:transparent;border:2px solid #e74c3c;border-radius:5px;color:#e74c3c;cursor:pointer;display:inline-block;font-weight:600;outline:none;padding:5px 26px 5px 25px;text-decoration:none;text-transform:uppercase;transition:background-color .2s ease-out}.ai1wm-button-red:hover{background-color:#e74c3c;color:#fff}.ai1wm-button-blue[disabled=disabled],.ai1wm-button-green-small[disabled=disabled],.ai1wm-button-green[disabled=disabled],.ai1wm-button-red[disabled=disabled]{cursor:default;opacity:.6}.ai1wm-button-blue[disabled=disabled]:hover{color:#00aff0}.ai1wm-button-red[disabled=disabled]:hover{color:#e74c3c}.ai1wm-button-green[disabled=disabled]:hover{color:#27ae60}.ai1wm-button-blue[disabled=disabled]:hover,.ai1wm-button-green-small[disabled=disabled]:hover,.ai1wm-button-green[disabled=disabled]:hover,.ai1wm-button-red[disabled=disabled]:hover{background:none}.ai1wm-message-close-button{font-size:10px;position:absolute;left:10px;text-decoration:none;top:6px}input[type=radio].ai1wm-flat-radio-button{display:none}input[type=radio].ai1wm-flat-radio-button+a i,input[type=radio].ai1wm-flat-radio-button+label i{background:transparent;border:2px solid #ccc;border-radius:50%;box-sizing:content-box;content:" ";cursor:pointer;float:right;height:25px;position:relative;vertical-align:middle;width:25px}input[type=radio].ai1wm-flat-radio-button:checked+a i,input[type=radio].ai1wm-flat-radio-button:checked+label i{background-color:#d9d9d9;border-color:#6f6f6f}.ai1wm-clear{*zoom:1;clear:both}.ai1wm-clear:after,.ai1wm-clear:before{content:" ";display:table}.ai1wm-clear:after{clear:both}.ai1wm-container .ai1wm-row label{position:relative;top:-1px}.ai1wm-container .ai1wm-row label:after{content:"‎"}.ai1wm-share-button-container{text-align:center}.ai1wm-share-button-container .ai1wm-share-button{font-size:30px;margin:10px;text-decoration:none}.ai1wm-feedback-cancel:active,.ai1wm-feedback-cancel:link,.ai1wm-feedback-cancel:visited{color:#e74c3c;float:right;line-height:34px;outline:0;text-decoration:none}.ai1wm-form-submit{float:left}.ai1wm-no-underline{text-decoration:none}.ai1wm-top-positive-four{position:relative;top:4px}.ai1wm-top-positive-two{position:relative;top:2px}.ai1wm-feedback-form{display:none}.ai1wm-feedback-types{list-style:none;margin:0;padding:0}.ai1wm-feedback-types li{margin:14px 0;padding:0}.ai1wm-feedback-types>li>label>span{display:inline-block;padding:5px 8px 6px 0}.ai1wm-feedback-types>li>a{text-deciration:none;color:#333;height:29px;outline:none}.ai1wm-feedback-types>li>a>span{display:inline-block;padding:5px 8px 6px 0}.ai1wm-loader{animation:ai1wm-rotate 1.5s linear infinite;background:url(../img/logo-128x128.png);background-position:50%;background-repeat:no-repeat;display:inline-block;height:128px;position:relative;width:128px}.ai1wm-hide{display:none}.ai1wm-label{background-color:transparent;border:1px solid #5cb85c;border-radius:5px;color:#5cb85c;cursor:pointer;font-size:.8em;font-weight:600;outline:none;padding:.2em .6em;text-transform:uppercase;transition:background-color .2s ease-out}.ai1wm-label:hover{background-color:#5cb85c;color:#fff}.ai1wm-dialog-message{line-height:1.5em;text-align:right}.ai1wm-import-info{display:inline-block;font-size:12px;font-weight:700;margin-top:16px}.ai1wm-import-info a{text-decoration:none}.ai1wm-import-title{display:inline-block;font-size:12px;font-weight:700}.ai1wm-button-download,.ai1wm-direct-download{top:.5em!important}.ai1wm-button-download span,.ai1wm-direct-download span{display:block;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai1wm-mt-20{margin-top:20px}.ai1wm-left-aligned{text-align:right}[class*=" ai1wm-icon-"],[class^=ai1wm-icon-]{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:servmask;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none}.ai1wm-icon-file-zip:before{content:"\e60f"}.ai1wm-icon-folder:before{content:"\e60e"}.ai1wm-icon-file:before{content:"\e60b"}.ai1wm-icon-file-content:before{content:"\e60c"}.ai1wm-icon-cloud-upload:before{content:"\e600"}.ai1wm-icon-history:before{content:"\e603"}.ai1wm-icon-notification:before{content:"\e619"}.ai1wm-icon-arrow-down:before{content:"\e604"}.ai1wm-icon-close:before{content:"\e61a"}.ai1wm-icon-wordpress2:before{content:"\e620"}.ai1wm-icon-arrow-right:before{content:"\e605"}.ai1wm-icon-plus2:before{content:"\e607"}.ai1wm-icon-edit-pencil:before{content:"\e900"}.ai1wm-icon-export:before{content:"\e601"}.ai1wm-icon-publish:before{content:"\e602"}.ai1wm-icon-paperplane:before{content:"\e608"}.ai1wm-icon-help:before{content:"\e609"}.ai1wm-icon-chevron-right:before{content:"\e60d"}.ai1wm-icon-chevron-right2:before{content:"\e901"}.ai1wm-icon-chevron-left2:before{content:"\e902"}.ai1wm-icon-dropbox:before{content:"\e606"}.ai1wm-icon-gear:before{content:"\e60a"}.ai1wm-icon-database:before{content:"\e964"}.ai1wm-icon-upload2:before{content:"\e9c6"}.ai1wm-icon-checkmark:before{content:"\ea10"}.ai1wm-icon-checkmark2:before{content:"\ea11"}.ai1wm-icon-enter:before{content:"\ea13"}.ai1wm-icon-exit:before{content:"\ea14"}.ai1wm-icon-amazon:before{content:"\ea87"}.ai1wm-icon-onedrive:before{content:"\eaaf"}.ai1wm-icon-folder-secondary:before{content:"\e92f"}.ai1wm-icon-folder-secondary-open:before{content:"\e930"}.ai1wm-icon-dots-horizontal-triple:before{content:"\e903"}.ai1wm-icon-bullhorn:before{content:"\e91a"}.ai1wm-icon-eye:before{content:"\e9ce"}.ai1wm-icon-eye-blocked:before{content:"\e9d1"}.ai1wm-icon-power-cord:before{content:"\e9b7"}.ai1wm-icon-image:before{content:"\e90d"}.ai1wm-icon-file-video:before{content:"\e92a"}.ai1wm-icon-stack:before{content:"\e92e"}.ai1wm-icon-table:before{content:"\e906"}.ai1wm-icon-calendar:before{content:"\e953"}.ai1wm-icon-play:before{content:"\ea1c"}@media (min-width:855px){.ai1wm-row{margin-left:399px}.ai1wm-row:after,.ai1wm-row:before{content:" ";display:table}.ai1wm-row:after{clear:both}.ai1wm-left{float:right;width:100%}.ai1wm-right{float:left;margin-left:-399px;width:377px}.ai1wm-right .ai1wm-sidebar{width:100%}.ai1wm-right .ai1wm-segment{background-clip:padding-box;background-color:#f9f9f9;border:1px solid #d6d6d6;border-radius:3px;box-shadow:inset 0 1px 0 0 #fff;color:#333;padding:20px;text-decoration:none;text-shadow:0 1px 0 #fff;width:333px}.ai1wm-right .ai1wm-segment h2{font-size:14px;font-weight:700;margin:22px 0 0;padding:0;text-align:center;text-transform:uppercase}.ai1wm-right .ai1wm-feedback-email{border-radius:5px;font-size:.8rem;font-weight:400;height:2.3rem;line-height:2.3rem;margin-bottom:4px;padding:0 10px;width:100%}.ai1wm-right .ai1wm-feedback-message{border-radius:3px;font-size:.8rem;padding:6px 10px;resize:none;width:100%}.ai1wm-right .ai1wm-feedback-terms-segment{font-size:.7rem;line-height:1rem;margin:4px 0 8px}.ai1wm-right .ai1wm-feedback-terms-segment>.ai1wm-feedback-terms{border-radius:3px}}.ai1wm-holder{background:#f9f9f9;border:1px solid #d6d6d6;border-radius:3px;box-shadow:inset 0 1px 0 0 #fff;padding:20px;position:relative}.ai1wm-holder h1{float:right;font-size:22px;font-weight:300;margin:0;padding:0;text-transform:uppercase}.ai1wm-holder h1 i{position:relative;top:2px}@media (max-width:854px){.ai1wm-container{margin-right:10px!important}.ai1wm-right,.ai1wm-row{margin-left:0!important}.ai1wm-right{float:right!important;margin-top:18px;width:100%!important}.ai1wm-right .ai1wm-sidebar{background:#f9f9f9;border:1px solid #d6d6d6;border-radius:3px;box-shadow:inset 0 1px 0 0 #fff;padding:20px;width:auto!important}.ai1wm-right .ai1wm-feedback-email{border-radius:5px;font-size:.8rem;font-weight:400;height:2.3rem;line-height:2.3rem;margin-bottom:4px;padding:0 10px;width:100%}.ai1wm-right .ai1wm-feedback-message{border-radius:3px;font-size:.8rem;padding:6px 10px;resize:none;width:100%}.ai1wm-right .ai1wm-feedback-terms-segment{border-radius:3px;font-size:.7rem;line-height:1rem;margin:4px 0 8px}.ai1wm-right .ai1wm-feedback-terms-segment>.ai1wm-feedback-terms{border-radius:3px}}.ai1wm-container{margin:20px 2px 0 20px}.ai1wm-container:after,.ai1wm-container:before{content:" ";display:table}.ai1wm-container:after{clear:both}.ai1wm-replace-row{background-clip:padding-box;background-color:#f9f9f9;border-radius:3px;box-shadow:0 1px 0 0 outset #fff;color:#333;font-size:11px;font-weight:700;margin-bottom:10px;text-decoration:none;text-shadow:0 1px 0 #fff;width:100%}.ai1wm-field{margin-bottom:4px}.ai1wm-field input[type=text],.ai1wm-field textarea{font-weight:400;width:100%}.ai1wm-field-set{margin-top:18px}.ai1wm-message{background-color:#efefef;border:1px solid;border-radius:4px;-moz-box-sizing:border-box;color:rgba(0,0,0,.6);height:auto;margin:10px 0;min-height:18px;padding:6px 10px;position:relative;transition:opacity .1s ease 0s,color .1s ease 0s,background .1s ease 0s,box-shadow .1s ease 0s}.ai1wm-message.ai1wm-success-message{background-color:#f2f8f0;color:#119000;font-size:12px}.ai1wm-message.ai1wm-info-message{background-color:#d9edf7;color:#31708f;font-size:11px}.ai1wm-message.ai1wm-error-message{background-color:#f1d7d7;color:#a95252;font-size:12px}.ai1wm-message.ai1wm-red-message{background-color:transparent;border:2px solid #d95c5c;color:#d95c5c}.ai1wm-message.ai1wm-red-message h3{color:#d95c5c;margin:.4em 0}.ai1wm-message p{font-size:12px;margin:4px 0}.ai1wm-message-warning{background-color:#f9f9f9;border:1px solid #d6d6d6;border-right:4px solid #ffba00;border-radius:3px;box-shadow:inset 0 1px 0 0 #fff;display:block;font-size:14px;line-height:18px;margin:0 0 22px;padding:12px 20px}.ai1wm-overlay{background-color:rgba(0,0,0,.7);display:none;height:100%;right:0;position:fixed;top:0;width:100%;z-index:100001}.ai1wm-modal-container{background:#f6f6f6;border:1px solid #fff;border-radius:6px;box-shadow:0 2px 6px #292929;box-sizing:border-box;display:none;height:auto;right:50%;padding:16px;position:fixed;text-align:center;top:50%;transform:translate(240px,-94px);width:480px;z-index:100002}.ai1wm-modal-container.ai1wm-modal-container-v2{border:0;border-radius:0;display:block;max-height:400px;overflow-y:auto;padding:0;text-align:right;transform:translate(50%,-50%)}.ai1wm-modal-container.ai1wm-modal-container-v2.ai1wm-modal-loading{border-radius:1em;overflow:hidden;width:auto}.ai1wm-modal-container.ai1wm-modal-container-v2 h1{text-transform:none}.ai1wm-modal-container section{display:block;min-height:102px}.ai1wm-modal-container section h1{margin:0;padding:0}.ai1wm-modal-container section h1 .ai1wm-title-green{color:#27ae60;font-size:.7em}.ai1wm-modal-container section h1 .ai1wm-title-red{color:#e74c3c;font-size:20px}.ai1wm-modal-container section h1 .ai1wm-title-grey{color:grey;font-size:20px}.ai1wm-modal-container section h1 .ai1wm-loader{background:url(../img/logo-32x32.png);height:32px;width:32px}.ai1wm-modal-container section h1 .ai1wm-icon-notification{color:#e74c3c;font-size:1.2em}.ai1wm-modal-container section p{margin:0;padding:12px 0}.ai1wm-modal-container section p .ai1wm-modal-sites p{padding:4px 10px;text-align:right}.ai1wm-modal-container section p .ai1wm-modal-sites input,.ai1wm-modal-container section p .ai1wm-modal-sites select{border-radius:3px;height:30px;line-height:30px;max-width:100%;padding:0 6px;width:100%}.ai1wm-modal-container section p .ai1wm-modal-subtitle-green{color:#27ae60}.ai1wm-modal-container section p .ai1wm-modal-subtitle-red{color:#e74c3c}.ai1wm-modal-container section p .ai1wm-modal-subdescription{display:block;text-align:right}.ai1wm-modal-container section p a.ai1wm-button-green{display:inline-block;position:relative;top:26px}.ai1wm-modal-container section p a.ai1wm-emphasize{animation:ai1wm-emphasize 1s infinite}.ai1wm-modal-container section p em{color:#34495e;display:block;font-style:normal}.ai1wm-modal-container section p.ai1wm-import-modal-content{text-align:right}.ai1wm-modal-container section p.ai1wm-import-modal-content-done{padding:1.62em .5em;text-align:right}.ai1wm-modal-container .ai1wm-import-modal-actions{border-top:1px solid #ccc;padding-top:1em;text-align:left}.ai1wm-modal-container .ai1wm-import-modal-actions .ai1wm-button-gray{margin-left:1em}.ai1wm-modal-container .ai1wm-import-modal-notice{border-top:1px solid #ccc}.ai1wm-modal-container .ai1wm-import-modal-notice p{font-weight:700;margin:0;padding-top:16px;text-align:center}#ai1wm-export-form{margin-top:1.95rem}.ai1wm-query-arrow{float:left;position:relative;top:4px}.ai1wm-query.ai1wm-open{background:#ebebeb!important}.ai1wm-query.ai1wm-open p small{border-bottom:1px dashed #000}.ai1wm-query.ai1wm-open div{height:5rem!important;margin-top:8px;visibility:visible!important}.ai1wm-query.ai1wm-open .ai1wm-query-arrow{transform:rotate(-90deg)}.ai1wm-query{background:transparent;border:1px solid #d8d8d8;border-radius:5px;box-sizing:border-box;list-style:none;margin:0 0 10px;padding:10px;width:100%}.ai1wm-query div{height:0;transition:height .2s cubic-bezier(.19,1,.22,1);visibility:hidden}.ai1wm-query div input{background-color:#fff;border:1px solid #ddd;border-radius:5px;box-shadow:inset 0 1px 2px rgba(0,0,0,.07);color:#333;font-size:.8rem;font-weight:400;height:2.3rem;line-height:2.3rem;margin-bottom:4px;padding:0 10px;transition:border-color .05s ease-in-out;width:100%}.ai1wm-query div input:focus{border-color:#5b9dd9;box-shadow:0 0 2px rgba(30,140,190,.8)}.ai1wm-query p{cursor:pointer;margin:0}.ai1wm-query p small{display:inline;float:none;width:auto}.ai1wm-query-arrow{transition:transform .1s ease-out}#ai1wm-queries{padding:0}.ai1wm-encrypt-backups-container-disabled{color:#aaa}.ai1wm-encrypt-backups-container-disabled a{text-decoration:none}.ai1wm-encrypt-backups-container-disabled a span{color:#00aff0;margin-right:8px}.ai1wm-encrypt-backups-container .ai1wm-encrypt-backups-passwords-toggle{display:none}.ai1wm-encrypt-backups-container .ai1wm-encrypt-backups-passwords-toggle .ai1wm-encrypt-backups-passwords-container{align-items:flex-start;display:flex;flex-direction:row;flex-wrap:wrap;gap:12px;margin:8px 0;width:100%}.ai1wm-encrypt-backups-container .ai1wm-encrypt-backups-passwords-toggle .ai1wm-encrypt-backups-passwords-container .ai1wm-input-password-container{align-items:center;display:flex;flex-direction:column;position:relative;width:216px}.ai1wm-encrypt-backups-container .ai1wm-encrypt-backups-passwords-toggle .ai1wm-encrypt-backups-passwords-container .ai1wm-input-password-container input{height:32px;line-height:normal;padding:8px 12px;width:100%}.ai1wm-encrypt-backups-container .ai1wm-encrypt-backups-passwords-toggle .ai1wm-encrypt-backups-passwords-container .ai1wm-input-password-container .ai1wm-error-message{display:none}.ai1wm-encrypt-backups-container .ai1wm-encrypt-backups-passwords-toggle .ai1wm-encrypt-backups-passwords-container .ai1wm-input-password-container .ai1wm-toggle-password-visibility{box-shadow:none;color:#3c434a;font-size:16px;outline:none;position:absolute;left:10px;text-decoration:none;top:8px}.ai1wm-encrypt-backups-container .ai1wm-encrypt-backups-passwords-toggle .ai1wm-encrypt-backups-passwords-container .ai1wm-input-password-container.ai1wm-has-error input{border-color:#e74c3c}.ai1wm-encrypt-backups-container .ai1wm-encrypt-backups-passwords-toggle .ai1wm-encrypt-backups-passwords-container .ai1wm-input-password-container.ai1wm-has-error .ai1wm-error-message{color:#e74c3c;display:block;font-weight:400} import JetEngineRepeater from "../components/repeater-control.js"; // Destructure the Button and ToggleControl components from the wp.components package. const { Button, Modal, TextControl, TextareaControl, SelectControl, Flex, FlexBlock, FlexItem } = wp.components; // Destructure the render function, Component base class, and Fragment component from the wp.element package. const { render, Component, Fragment } = wp.element; const { MediaUpload } = wp.blockEditor; const { __ } = wp.i18n; /** * Define the SettingsApp class, extending the React Component class to create a custom React component. */ class SettingsApp extends Component { /** * Constructor method to initialize the component's state. * @param {Object} props Properties passed to the component. */ constructor( props ) { super( props ); // Initialize the component's state. 'is_saving' flag indicates whether settings are currently being saved. // 'settings' object is populated with settings passed through props. this.state = { isSaving: false, isSettingsOpen: false, componentTitle: '', updateProp: false, settings: { ...this.props.settings } }; const cssVarsList = document.getElementById( 'jet_component_css_vars' ); cssVarsList.innerHTML = this.getCSSVarsList(); } /** * Updates the component's state with new settings. * @param {Object} updatedSettings The updated settings object. */ updateSettingsState( updatedSettings ) { this.setState( ( prevState ) => { return { ...prevState, ...{ settings: { ...prevState.settings, ...updatedSettings, } } } } ); } updateItem( item, prop, value ) { const newSetings = this.state.settings[ this.state.updateProp ].map( ( control, i ) => { if ( item._id === control._id ) { return { ...control, ...{ [ prop ]: value } } } return control; } ); this.updateSettingsState( { [ this.state.updateProp ]: newSetings, } ); } /** * Handles the saving of settings by making an AJAX request to the backend. */ saveSettings() { this.setState( { isSaving: true } ); window.wp.ajax.send( this.props.hook, { type: 'POST', data: { nonce: this.props.nonce, post_id: this.props.postID, settings: this.state.settings, }, success: ( response ) => { this.setState( { isSaving: false } ); const cssVarsList = document.getElementById( 'jet_component_css_vars' ); cssVarsList.innerHTML = this.getCSSVarsList(); }, error: ( response, errorCode, errorText ) => { alert( response ); this.setState( { isSaving: false } ); } } ); } getCSSVarsList() { const styleOptions = this.state.settings.styles; let result = ''; if ( styleOptions.length ) { result += ''; } return result; } getDefaultItem() { const uid = Math.floor( Math.random() * 89999 ) + 10000; const defaultItem = { '_id': uid, 'control_label': '', 'control_name': '', 'control_default': '', }; if ( 'controls' === this.state.updateProp ) { defaultItem.control_options = ''; defaultItem.control_type = 'text'; defaultItem.control_default_image = { id: null, url: null, thumb: null, }; } return defaultItem; } isControlVisible( prop, item ) { switch ( prop ) { case 'control_options': return ( 'select' === item.control_type ) ? true : false; case 'control_default': return ( 'media' !== item.control_type ) ? true : false; case 'control_default_image': return ( 'media' === item.control_type ) ? true : false; } return true; } saveButton() { return } /** * Renders the settings application interface. */ render() { return (
{ this.state.isSettingsOpen && ( { this.setState( { isSettingsOpen: false } ) } } > { this.updateSettingsState( { [ this.state.updateProp ]: newData } ); } } > { ( item ) =>
{ this.updateItem( item, 'control_label', newValue ) } } /> { this.updateItem( item, 'control_name', newValue ) } } /> { ( 'controls' == this.state.updateProp ) && { this.updateItem( item, 'control_type', newValue ) } } /> } { ( undefined !== item.control_options ) && this.isControlVisible( 'control_options', item ) && { this.updateItem( item, 'control_options', newValue ) } } /> } { this.isControlVisible( 'control_default', item ) && { this.updateItem( item, 'control_default', newValue ) } } /> } { ( undefined !== item.control_default_image ) && this.isControlVisible( 'control_default_image', item ) &&
Default Image
{ let imgURL; let imgThumb; imgURL = media.sizes.full.url; if ( media.sizes.thumbnail ) { imgThumb = media.sizes.thumbnail.url; } else { imgThumb = media.sizes.full.url; } this.updateItem( item, 'control_default_image', { id: media.id, url: imgURL, thumb: imgThumb } ); } } type="image" value={ item.control_default_image.id } render={ ( { open } ) => ( )} /> { item.control_default_image.id &&
}
{ item?.control_default_image?.thumb && }
}
}
) }
); } } // Export the SettingsApp component for use in other parts of the application. export default SettingsApp;