wysiwyg.js
1 lines
| 1 | (()=>{"use strict";const{InputData:t}=JetFormBuilderAbstract,{getParsedName:e}=JetFormBuilderFunctions;function i(t){var e;const i=t.closest(".jet-form-builder-repeater");if(!i)return;const n=i.querySelector(".jet-form-builder-repeater__initial");if(!n)return;const o=null!==(e=n.content)&&void 0!==e?e:n;for(const t of o.querySelectorAll('link[rel="stylesheet"]')){if(t.id&&document.getElementById(t.id))continue;const e=t.getAttribute("href");e&&[...document.querySelectorAll('link[rel="stylesheet"]')].some(t=>t.getAttribute("href")===e)||document.head.appendChild(t.cloneNode(!0))}}function n(t){const e=t.id,i=window.tinymce.get(e),n=i?.getElement?.();i&&n!==t&&i.remove();const o=document.getElementById(e);o&&o!==t&&(o.id=[e,"stale",Date.now(),Math.random().toString(36).slice(2)].join("_"))}function o(){t.call(this),this.isSupported=function(t){return t.classList.contains("wysiwyg-field")},this.setNode=function(o){t.prototype.setNode.call(this,o),this.inputType="wysiwyg",this.getSubmit().submitter.promise(t=>{window.tinyMCE.triggerSave(),t()}),this.textArea=o.querySelector(".wp-editor-area");const r=JSON.parse(o.dataset.editor);this.rawName=r.textarea_name,this.name=e(this.rawName);const s=()=>window.tinymce.get(this.textArea.id);n(this.textArea),i(o),window.wp.editor.initialize(this.textArea.id,r),this.editor=s(),this.getEditor=s,document.addEventListener("jet-form-builder/conditional-block/block-toggle-hidden-dom",t=>{if(!t.detail.block.contains(o))return;const e=t.detail.block;return e.contains(o)?e.__initialized?void(t.detail.result&&(n(this.textArea),i(o),window.wp.editor.initialize(this.textArea.id,r),this.editor=s(),this.getEditor=s)):(n(this.textArea),i(o),window.wp.editor.initialize(this.textArea.id,r),this.editor=s(),this.getEditor=s,void(e.__initialized=!0)):void 0})},this.addListeners=function(){this.reporting.makeInvalid=()=>{},this.reporting.makeValid=()=>{};const t=()=>{this.value.current=this.editor.getContent()};this.getEditor()?.on?.("input",t)?.on?.("change",t)},this.setValue=function(){this.getEditor()?.on?.("init",()=>{this.transferStylesToIframe(),this.callable.lock.current=!1,this.silenceSet(this.editor.getContent())})},this.initNotifyValue=()=>{},this.focusRaw=function(){this.getEditor()?.getBody()?.focus({preventScroll:!0})},this.hasAutoScroll=function(){return!1},this.transferStylesToIframe=function(){const t=this.getWrapperNode(),e=this.editor.iframeElement.contentDocument.body,i=t.style.cssText.split(";").filter(Boolean);for(const t of i){const[i,n]=t.split(":");switch(i.trim()){case"--jfb-wysiwyg-container-bg":e.style.backgroundColor=n;break;case"--jfb-wysiwyg-container-text":e.style.color=n}}}}o.prototype=Object.create(t.prototype);const r=o,{BaseSignal:s}=JetFormBuilderAbstract;function l(){s.call(this),this.lock.current=!0,this.isSupported=function(t,e){return t.classList.contains("wysiwyg-field")},this.runSignal=function(){var t;this.input.value.current!==this.input.editor.getContent()&&this.input.editor.setContent(null!==(t=this.input.value.current)&&void 0!==t?t:"")}}l.prototype=Object.create(s.prototype);const c=l,{addFilter:a}=JetPlugins.hooks;a("jet.fb.inputs","jet-form-builder/wysiwyg-field",function(t){return[r,...t]}),a("jet.fb.signals","jet-form-builder/wysiwyg-field",function(t){return[c,...t]})})(); |