9 lines
5.1 KiB
JavaScript
9 lines
5.1 KiB
JavaScript
/*!
|
|
App Connect Bootbox (bs5)
|
|
Version: 2.0.0
|
|
(c) 2024 Wappler.io
|
|
@build 2024-04-15 17:48:46
|
|
*/
|
|
dmx.bootbox=dmx.bootbox||{},dmx.bootbox.convertOptions=function(e,o="alert"){const t={backdrop:"static",body:e.message,center:1==e.centerVertical,fade:!1!==e.animate,keyboard:!1!==e.onEscape,scrollable:!0===e.scrollable,showHeaderClose:!1!==e.closeButton,size:e.size,swapButtonOrder:!0===e.swapButtonOrder,title:e.title};if(!0===e.backdrop||"true"===e.backdrop?t.backdrop=!0:!1!==e.backdrop&&"false"!==e.backdrop||(t.backdrop=!1),e.buttons)switch(o){case"alert":e.buttons.ok&&(t.closeButton=dmx.bootbox.convertButtonOptions(e.buttons.ok));break;case"confirm":case"prompt":e.buttons.confirm&&(t.okButton=dmx.bootbox.convertButtonOptions(e.buttons.confirm)),e.buttons.cancel&&(t.closeButton=dmx.bootbox.convertButtonOptions(e.buttons.cancel))}if("prompt"===o){switch(e.inputType){case"select":t.input=`\n <select class="form-select" ${e.multiple?"multiple":""} ${e.required?"required":""}>\n ${e.inputOptions.map((o=>`\n <option value="${o.value||""}" ${e.value==o.value?"selected":""}>\n ${o.text||o.value}\n </option>\n `)).join("")}\n </select>\n `;break;case"checkbox":case"radio":t.input=e.inputOptions.map(((o,t)=>`\n <div class="form-check">\n <input\n id="modbox-input-${t}"\n type="${e.inputType}"\n name="modbox-input-name"\n value="${o.value||""}"\n ${e.value==o.value?"checked":""}\n >\n <label class="form-check-label" for="modbox-input-${t}">\n ${o.text||o.value}\n </label>\n </div>\n `)).join("");break;case"textarea":t.input=`\n <textarea\n class="form-control"\n ${e.rows?`rows="${e.rows}"`:""}\n ${e.placeholder?`placeholder="${e.placeholder}"`:""}\n ${e.autocomplete?`autocomplete="${e.autocomplete}"`:""}\n ${e.minlength?`minlength="${e.minlength}"`:""}\n ${e.maxlength?`maxlength="${e.maxlength}"`:""}\n ${e.required?"required":""}\n >\n ${e.value||""}\n </textarea>\n `;break;default:t.input=`\n <input\n type="${e.inputType}"\n class="${"range"==e.inputType?"form-range":"form-control"}"\n value="${e.value||""}"\n ${e.placeholder?`placeholder="${e.placeholder}"`:""}\n ${e.autocomplete?`autocomplete="${e.autocomplete}"`:""}\n ${e.minlength?`minlength="${e.minlength}"`:""}\n ${e.maxlength?`maxlength="${e.maxlength}"`:""}\n ${e.min?`min="${e.min}"`:""}\n ${e.max?`max="${e.max}"`:""}\n ${e.step?`step="${e.step}"`:""}\n ${e.pattern?`pattern="${e.pattern}"`:""}\n ${e.required?"required":""}\n >\n `}t.body=`\n ${e.message?`<p>${e.message}</p>`:""}\n ${t.input}\n `.trim()}return t},dmx.bootbox.convertButtonOptions=function(e){const o={};return e.label&&(o.label=e.label),e.className&&(o.style=e.className.slice(4)),o},dmx.Actions({"bootbox.alert":function(e){return modbox.alert(dmx.bootbox.convertOptions(this.parse(e)))},"bootbox.info":function(e){return modbox.info(dmx.bootbox.convertOptions(this.parse(e)))},"bootbox.success":function(e){return modbox.success(dmx.bootbox.convertOptions(this.parse(e)))},"bootbox.warning":function(e){return modbox.warning(dmx.bootbox.convertOptions(this.parse(e)))},"bootbox.danger":function(e){return modbox.danger(dmx.bootbox.convertOptions(this.parse(e)))},"bootbox.confirm":function(e){const o={then:(e=Object.assign({},e)).then,else:e.else};return delete e.then,delete e.else,modbox.confirm(dmx.bootbox.convertOptions(this.parse(e),"confirm")).then((()=>!o.then||this._exec(o.then).then((()=>!0)))).catch((e=>(e&&console.error(e),!!o.else&&this._exec(o.else).then((()=>!1)))))},"bootbox.prompt":function(e){const o=dmx.extend(!0,{okButton:{label:"OK",style:"primary"},closeButton:{label:"Close",style:"secondary"}},dmx.bootbox.convertOptions(this.parse(e),"prompt"),{destroyOnClose:!0,defaultButton:!1,button:[]});return new Promise((e=>{const t=new modbox(o),n=t.modalEl.querySelector("input,select,textarea");"radio"==n.type&&(n.checked=!0),o.okButton.close=!1,o.okButton.callback=()=>{if(!n||n.reportValidity()){if("SELECT"==n.nodeName&&n.multiple)e(Array.from(n.selectedOptions).map((e=>e.value)));else if("checkbox"==n.type){const o=t.modalEl.querySelectorAll("input:checked");e(Array.from(o).map((e=>e.value)))}else if("radio"==n.type){const o=t.modalEl.querySelector("input:checked");e(o.value)}else e(n.value);t.hide()}};const r=t.addButton(o.okButton);t.addButton(o.closeButton);n&&"INPUT"==n.nodeName&&n.addEventListener("keyup",(e=>{"Enter"==e.key&&r.click()})),t.addEvent("hide",(()=>e(null))),t.show()}))}}),dmx.Component("bootbox",{methods:{alert:e=>modbox.alert(dmx.bootbox.convertOptions(e)),info:e=>modbox.info(dmx.bootbox.convertOptions(e)),success:e=>modbox.success(dmx.bootbox.convertOptions(e)),warning:e=>modbox.warning(dmx.bootbox.convertOptions(e)),danger:e=>modbox.danger(dmx.bootbox.convertOptions(e))}});
|
|
//# sourceMappingURL=dmxBootbox5.js.map
|