diff --git a/README.md b/README.md index f24203ebdae39a3efdf9c71b433e2346a224de77..1453c0b7f47d9bdc0b4a9f1c64bc9bc9332e8409 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,6 @@ -# GrapesJS Bootstrap v4 Blocks Plugin +# GrapesJS Bootstrap v5 Blocks Plugin -[](https://www.npmjs.com/package/grapesjs-blocks-bootstrap4) - -<!--<span><a href="https://david-dm.org/z1lk/grapesjs-plugin-boilerplate#info=devDependencies" title="View the status of this project's development dependencies on DavidDM"><img src="https://img.shields.io/david/dev/artf/grapesjs-plugin-boilerplate.svg" alt="Dev Dependency Status" /></a></span>--> - -<!--<a rel="nofollow" href="https://app.codesponsor.io/link/nb9nPYf2XqCE1PbgcQj6gf4D/artf/grapesjs-plugin-boilerplate"> - <img alt="Sponsor" width="888" height="68" src="https://app.codesponsor.io/embed/nb9nPYf2XqCE1PbgcQj6gf4D/artf/grapesjs-plugin-boilerplate.svg"/> -</a>--> +this is a fork from [github.com/kaoz70/grapesjs-blocks-bootstrap4](https://github.com/kaoz70/grapesjs-blocks-bootstrap4) ## Summary @@ -56,14 +50,14 @@ ```js { blocks: { - ... - } + + }, blockCategories: { - ... - } + + }, labels: { - ... - } + + }, formPredefinedActions: null, optionsStringSeparator: '::' } @@ -139,23 +133,17 @@ etc. ## Download -<!--* CDN - * `https://unpkg.com/grapesjs-blocks-bootstrap4` --> * NPM - * `npm i grapesjs-blocks-bootstrap4` + * `npm i @minerva/grapesjs-blocks-bootstrap5` * GIT - * `git clone https://github.com/kaoz70/grapesjs-blocks-bootstrap4.git` - - - - + * `git clone https://gitlab.schukai.com/oss/minerva/grapesjs-blocks-bootstrap.git` ## Usage ```html <link href="https://unpkg.com/grapesjs/dist/css/grapes.min.css" rel="stylesheet"/> <script src="https://unpkg.com/grapesjs"></script> -<script src="path/to/grapesjs-blocks-bootstrap4.min.js"></script> +<script src="path/to/grapesjs-blocks-bootstrap5.min.js"></script> <div id="gjs"></div> @@ -163,9 +151,9 @@ etc. var editor = grapesjs.init({ container : '#gjs', ... - plugins: ['grapesjs-blocks-bootstrap4'], + plugins: ['grapesjs-blocks-bootstrap5'], pluginsOpts: { - 'grapesjs-blocks-bootstrap4': { + 'grapesjs-blocks-bootstrap5': { blocks: { // ... }, @@ -180,29 +168,23 @@ etc. }, canvas: { styles: [ - 'https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css' + 'https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css' ], scripts: [ - 'https://code.jquery.com/jquery-3.3.1.slim.min.js', - 'https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js', - 'https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js' + 'https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js' ], } }); </script> ``` - - - - ## Development Clone the repository ```sh -$ git clone https://github.com/kaoz70/grapesjs-blocks-bootstrap4.git -$ cd grapesjs-blocks-bootstrap4 +$ git clone https://gitlab.schukai.com/oss/minerva/grapesjs-blocks-bootstrap.git +$ cd grapesjs-blocks-bootstrap ``` Install dependencies diff --git a/dist/@minerva/grapesjs-blocks-bootstrap5.min.js b/dist/@minerva/grapesjs-blocks-bootstrap5.min.js new file mode 100644 index 0000000000000000000000000000000000000000..70f0b35f23688af51355193986fbbca289855a2a --- /dev/null +++ b/dist/@minerva/grapesjs-blocks-bootstrap5.min.js @@ -0,0 +1,2 @@ +/*! For license information please see grapesjs-blocks-bootstrap5.min.js.LICENSE.txt */ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("grapesjs")):"function"==typeof define&&define.amd?define(["grapesjs"],t):"object"==typeof exports?exports["@minerva/grapesjs-blocks-bootstrap5"]=t(require("grapesjs")):e["@minerva/grapesjs-blocks-bootstrap5"]=t(e.grapesjs)}(self,(e=>(()=>{"use strict";var t={362:t=>{t.exports=e}},a={};function n(e){var o=a[e];if(void 0!==o)return o.exports;var r=a[e]={exports:{}};return t[e](r,r.exports,n),r.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};return(()=>{n.r(o),n.d(o,{default:()=>Rt});var e=n(362),t=n.n(e);const a=function(e){e.Commands},r=function(e){var t=e.TraitManager;t.addType("class_select",{events:{change:"onChange"},createInput:function(e){e.trait;for(var t=this.model.get("options")||[],a=document.createElement("select"),n=this.target.view.el,o=function(e){var o=document.createElement("option"),r=t[e].value;""===r&&(r="GJS_NO_CLASS"),o.text=t[e].name,o.value=r;var l=Array.from(n.classList),i=r.split(" ");l.filter((function(e){return i.includes(e)})).length===i.length&&o.setAttribute("selected","selected"),a.append(o)},r=0;r<t.length;r++)o(r);return a},onUpdate:function(e){for(var t=e.elInput,a=e.component.getClasses(),n=this.model.get("options")||[],o=0;o<n.length;o++){var r=n[o].value;if(r&&a.includes(r))return void(t.value=r)}t.value="GJS_NO_CLASS"},onEvent:function(e){e.elInput;for(var t=e.component,a=(e.event,this.model.get("options").map((function(e){return e.value}))),n=0;n<a.length;n++)if(a[n].length>0)for(var o=a[n].split(" "),r=0;r<o.length;r++)o[r].length>0&&t.removeClass(o[r]);var l=this.model.get("value");if(delete t.attributes.attributes[""],l.length>0&&"GJS_NO_CLASS"!==l)for(var i=l.split(" "),s=0;s<i.length;s++)t.addClass(i[s]);t.em.trigger("component:toggled")}});var a=t.getType("text");t.addType("content",{events:{keyup:"onChange"},onValueChange:function(){var e=this.model;e.target.set("content",e.get("value"))},getInputEl:function(){return this.inputEl||(this.inputEl=a.prototype.getInputEl.bind(this)(),this.inputEl.value=this.target.get("content")),this.inputEl}}),t.addType("content",{events:{keyup:"onChange"},onValueChange:function(){var e=this.model;e.target.set("content",e.get("value"))},getInputEl:function(){return this.inputEl||(this.inputEl=a.prototype.getInputEl.bind(this)(),this.inputEl.value=this.target.get("content")),this.inputEl}})};var l=function(e,t){e.add("list",{label:t,category:"Basic",attributes:{class:"fa fa-list"},content:{type:"list"}})};const i=function(e){var t=e.getType("default"),a=t.model,n=t.view;e.addType("list",{model:a.extend({defaults:Object.assign({},a.prototype.defaults,{"custom-name":"List",tagName:"ul",resizable:1,traits:[{type:"select",options:[{value:"ul",name:"No"},{value:"ol",name:"Yes"}],label:"Ordered?",name:"tagName",changeProp:1}].concat(a.prototype.defaults.traits)})},{isComponent:function(e){if(e&&["UL","OL"].includes(e.tagName))return{type:"list"}}}),view:n})};var s=function(e,t){e.add("collapse",{label:"\n ".concat('<svg aria-hidden="true" width="24" height="50" focusable="false" data-prefix="fas" data-icon="compress" class="svg-inline--fa fa-compress fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"></path></svg>\n',"\n <div>").concat(t,"</div>\n "),category:"Components",content:{type:"collapse"}})};const c=function(e){var t=e.DomComponents,a=t.getType("default"),n=a.model,o=a.view;t.addType("collapse",{model:n.extend({defaults:Object.assign({},n.prototype.defaults,{"custom-name":"Dropdown",classes:["collapse"],droppable:!0,traits:[{type:"class_select",options:[{value:"",name:"Closed"},{value:"show",name:"Open"}],label:"Initial state"}].concat(n.prototype.defaults.traits)})},{isComponent:function(e){if(e&&e.classList&&e.classList.contains("dropdown"))return{type:"dropdown"}}}),view:o.extend({})})};function d(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function u(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?d(Object(a),!0).forEach((function(t){p(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):d(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function p(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var m=function(e,t){e.add("dropdown",{label:"\n ".concat('<svg aria-hidden="true" width="24" height="50" focusable="false" data-prefix="far" data-icon="caret-square-down" class="svg-inline--fa fa-caret-square-down fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M125.1 208h197.8c10.7 0 16.1 13 8.5 20.5l-98.9 98.3c-4.7 4.7-12.2 4.7-16.9 0l-98.9-98.3c-7.7-7.5-2.3-20.5 8.4-20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"></path></svg>\n',"\n <div>").concat(t,"</div>\n "),category:"Components",content:{type:"dropdown"}})};const f=function(e){var t=e.DomComponents,a=t.getType("default"),n=a.model,o=a.view;function r(e){var t=e._events["change:attributes"];return!!t&&0!==t.filter((function(e){return"setupToggle"===e.callback.name})).length}t.addType("dropdown",{model:n.extend({defaults:u(u({},n.prototype.defaults),{},{"custom-name":"Dropdown",classes:["dropdown"],droppable:"a, button, .dropdown-menu",traits:[{type:"select",label:"Initial state",name:"initial_state",options:[{value:"",name:"Closed"},{value:"show",name:"Open"}]}].concat(n.prototype.defaults.traits)}),init2:function(){this.append({type:"button",content:"Click to toggle",classes:["btn","dropdown-toggle"]})[0],this.append({type:"dropdown_menu"})[0];this.setupToggle(null,null,{force:!0});var e=this.components();e.bind("add",this.setupToggle.bind(this)),e.bind("remove",this.setupToggle.bind(this));var t=this.get("classes");t.bind("add",this.setupToggle.bind(this)),t.bind("change",this.setupToggle.bind(this)),t.bind("remove",this.setupToggle.bind(this))},setupToggle:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=this.components().filter((function(e){return e.getAttributes().class.split(" ").includes("dropdown-toggle")}))[0],o=this.components().filter((function(e){return e.getAttributes().class.split(" ").includes("dropdown-menu")}))[0];if((!0===a.force||!0!==a.ignore)&&n&&o){r(n)||this.listenTo(n,"change:attributes",this.setupToggle),r(o)||this.listenTo(o,"change:attributes",this.setupToggle);var l=n.getAttributes();l.role="button";var i=o.getAttributes();l.hasOwnProperty("data-toggle")||(l["data-toggle"]="dropdown"),l.hasOwnProperty("aria-haspopup")||(l["aria-haspopup"]=!0),n.set("attributes",l,{ignore:!0}),l.hasOwnProperty("id")?i["aria-labelledby"]=l.id:delete i["aria-labelledby"],o.set("attributes",i,{ignore:!0})}},updated:function(e,t){if(t.hasOwnProperty("initial_state")){var a=this.components().filter((function(e){return e.getAttributes().class.split(" ").includes("dropdown-menu")}))[0],n=a.getAttributes();n.class.split(" ").includes("show")?(n["aria-expanded"]=!1,a.removeClass("show")):(n["aria-expanded"]=!0,a.addClass("show"))}}},{isComponent:function(e){if(e&&e.classList&&e.classList.contains("dropdown"))return{type:"dropdown"}}}),view:o}),t.addType("dropdown_menu",{model:n.extend({defaults:Object.assign({},n.prototype.defaults,{"custom-name":"Dropdown Menu",classes:["dropdown-menu"],draggable:".dropdown",droppable:!0}),init2:function(){var e={type:"link",classes:["dropdown-item"],content:"Dropdown item"};this.append({type:"header",tagName:"h6",classes:["dropdown-header"],content:"Dropdown header"}),this.append(e),this.append({type:"default",classes:["dropdown-divider"]}),this.append(e)}},{isComponent:function(e){if(e&&e.classList&&e.classList.contains("dropdown-menu"))return{type:"dropdown_menu"}}}),view:o})};var b="tabs-",g="".concat(b,"container"),v="".concat(b,"navigation"),h="".concat(b,"panes"),y="".concat(b,"tab"),w="".concat(b,"tab-pane");const O={navigationName:v,tabPanesName:h,tabName:y,tabPaneName:w,navigationSelector:'[data-gjs-type="'.concat(v,'"]'),tabPanesSelector:'[data-gjs-type="'.concat(h,'"]'),tabSelector:'[data-gjs-type="'.concat(y,'"]'),tabPaneSelector:'[data-gjs-type="'.concat(w,'"]'),containerId:"data-".concat(g),navigationId:"data-".concat(v),tabPanesId:"data-".concat(h),tabId:"data-".concat(y),tabPaneId:"data-".concat(w)};var j=function(e,t){var a=e.className;if((a=a&&a.toString())&&a.split(" ").indexOf(t)>=0)return 1},x=function(e){return e.toLowerCase().split(" ").map((function(e){return e.charAt(0).toUpperCase()+e.slice(1)})).join(" ")};const C='<svg aria-hidden="true" width="24" height="50" focusable="false" data-prefix="fas" data-icon="window-maximize" class="svg-inline--fa fa-window-maximize fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z"></path></svg>\n';function k(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function T(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?k(Object(a),!0).forEach((function(t){P(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):k(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function P(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var _=function(e,t){e.add("tabs",{label:"\n ".concat('<svg aria-hidden="true" width="24" height="50" focusable="false" data-prefix="fas" data-icon="ellipsis-h" class="svg-inline--fa fa-ellipsis-h fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"></path></svg>\n',"\n <div>").concat(t.labels.tabs,"</div>\n "),category:"Components",content:'\n <ul class="nav nav-tabs" role="tablist">\n <li class="nav-item">\n <a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-selected="true">Tab 1</a>\n </li>\n <li class="nav-item">\n <a class="nav-link" id="profile-tab" data-toggle="tab" href="#profile" role="tab" aria-controls="profile" aria-selected="false">Tab 2</a>\n </li>\n <li class="nav-item">\n <a class="nav-link" id="contact-tab" data-toggle="tab" href="#contact" role="tab" aria-controls="contact" aria-selected="false">Tab 3</a>\n </li>\n </ul>\n <div class="tab-content">\n <div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab"></div>\n <div class="tab-pane fade" id="profile" role="tabpanel" aria-labelledby="profile-tab"></div>\n <div class="tab-pane fade" id="contact" role="tabpanel" aria-labelledby="contact-tab"></div>\n </div>\n '}),e.add("tabs-tab",{label:"\n ".concat('<svg aria-hidden="true" width="24" height="50" focusable="false" data-prefix="fas" data-icon="circle" class="svg-inline--fa fa-circle fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z"></path></svg>\n',"\n <div>").concat(t.labels.tab,"</div>\n "),category:"Components",content:{type:"tabs-tab"}}),e.add("tabs-tab-pane",{label:"\n ".concat(C,"\n <div>").concat(t.labels.tabPane,"</div>\n "),category:"Components",content:{type:"tabs-tab-pane"}})};const L=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=e.getType("default"),n=a.model,o=a.view,r=O.navigationName,l=O.tabSelector,i=t.classNavigation,s=r;e.addType(s,{model:n.extend({defaults:T(T({},n.prototype.defaults),{},{name:"Tabs Navigation",copyable:0,draggable:!0,droppable:l,traits:[{type:"class_select",options:[{value:"nav-tabs",name:"Tabs"},{value:"nav-pills",name:"Pills"}],label:"Type"},{type:"class_select",options:[{value:"",name:"Left"},{value:"nav-fill",name:"Fill"},{value:"nav-justified",name:"Justify"}],label:"Layout"}]}),init:function(){this.get("classes").pluck("name").indexOf(i)<0&&this.addClass(i)}},{isComponent:function(e){if(j(e,i))return{type:s}}}),view:o.extend({init:function(){var e=["type","layout"].map((function(e){return"change:".concat(e)})).join(" ");this.listenTo(this.model,e,this.render);var t=this.model.components();t.length||t.add('\n <ul class="nav nav-tabs" role="tablist">\n <li class="nav-item">\n <a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-selected="true">Tab 1</a>\n </li>\n <li class="nav-item">\n <a class="nav-link" id="profile-tab" data-toggle="tab" href="#profile" role="tab" aria-controls="profile" aria-selected="false">Tab 2</a>\n </li>\n <li class="nav-item">\n <a class="nav-link" id="contact-tab" data-toggle="tab" href="#contact" role="tab" aria-controls="contact" aria-selected="false">Tab 3</a>\n </li>\n </ul>\n ')}})})};function S(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function D(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?S(Object(a),!0).forEach((function(t){N(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):S(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function N(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const M=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=e.getType("default"),n=a.model,o=a.view,r=O.tabPanesName,l=O.tabPaneSelector,i=t.classTabPanes,s=r;e.addType(s,{model:n.extend({defaults:D(D({},n.prototype.defaults),{},{name:"Tabs Panes",copyable:0,draggable:!0,droppable:l}),init:function(){this.get("classes").pluck("name").indexOf(i)<0&&this.addClass(i)}},{isComponent:function(e){if(j(e,i))return{type:s}}}),view:o.extend({init:function(){var e=this.model.components();e.length||e.add('\n <div class="tab-content" id="myTabContent">\n <div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab">Tab pane 1</div>\n <div class="tab-pane fade" id="profile" role="tabpanel" aria-labelledby="profile-tab">Tab pane 2</div>\n <div class="tab-pane fade" id="contact" role="tabpanel" aria-labelledby="contact-tab">Tab pane 3</div>\n </div>\n ')}})})};function A(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function E(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?A(Object(a),!0).forEach((function(t){I(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):A(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function I(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const B=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=e.getType("default"),n=a.model,o=a.view,r=O.tabName,l=O.navigationSelector,i=t.classTab,s=r;e.addType(s,{model:n.extend({defaults:E(E({},n.prototype.defaults),{},{name:"Tab",tagName:"li",copyable:!0,draggable:l}),init:function(){this.get("classes").pluck("name").indexOf(i)<0&&this.addClass(i)}},{isComponent:function(e){if(j(e,i))return{type:s}}}),view:o.extend({init:function(){var e=this.model.components();e.length||e.add('\n <a class="nav-link active" id="tab-1" data-toggle="tab" href="#tab-pane-1" role="tab" aria-controls="tab" aria-selected="true">Tab</a>\n ')}})})};function z(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function H(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?z(Object(a),!0).forEach((function(t){F(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):z(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function F(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const V=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=e.getType("default"),n=a.model,o=a.view,r=O.tabPaneName,l=O.tabPanesSelector,i=t.classTabPane,s=r;e.addType(s,{model:n.extend({defaults:H(H({},n.prototype.defaults),{},{name:"Tab Pane",copyable:!0,draggable:l,traits:["id",{type:"class_select",options:[{value:"fade",name:"Fade"},{value:"",name:"None"}],label:"Animation"},{type:"class_select",options:[{value:"",name:"Inactive"},{value:"active",name:"Active"}],label:"Is Active"}]}),init:function(){this.get("classes").pluck("name").indexOf(i)<0&&this.addClass(i)}},{isComponent:function(e){if(j(e,i))return{type:s}}}),view:o})};function q(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function R(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?q(Object(a),!0).forEach((function(t){Z(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):q(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function Z(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var U=function(e,t){e.add("form",{label:"\n ".concat('<svg class="gjs-block-svg" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">\n <path class="gjs-block-svg-path" d="M22,5.5 C22,5.2 21.5,5 20.75,5 L3.25,5 C2.5,5 2,5.2 2,5.5 L2,8.5 C2,8.8 2.5,9 3.25,9 L20.75,9 C21.5,9 22,8.8 22,8.5 L22,5.5 Z M21,8 L3,8 L3,6 L21,6 L21,8 Z" fill-rule="nonzero"></path>\n <path class="gjs-block-svg-path" d="M22,10.5 C22,10.2 21.5,10 20.75,10 L3.25,10 C2.5,10 2,10.2 2,10.5 L2,13.5 C2,13.8 2.5,14 3.25,14 L20.75,14 C21.5,14 22,13.8 22,13.5 L22,10.5 Z M21,13 L3,13 L3,11 L21,11 L21,13 Z" fill-rule="nonzero"></path>\n <rect class="gjs-block-svg-path" x="2" y="15" width="10" height="3" rx="0.5"></rect>\n</svg>\n',"\n <div>").concat(t,"</div>"),category:"Forms",content:'\n <form>\n <div class="form-group">\n <label>Name</label>\n <input name="name" placeholder="Type here your name" class="form-control"/>\n </div>\n <div class="form-group">\n <label>Email</label>\n <input name="email" type="email" placeholder="Type here your email" class="form-control"/>\n </div>\n <div class="form-check">\n <input name="sex" type="checkbox" class="form-check-input" value="M">\n <label class="form-check-label">M</label>\n </div>\n <div class="form-check">\n <input name="sex" type="checkbox" class="form-check-input" value="F">\n <label class="form-check-label">F</label>\n </div>\n <div class="form-group">\n <label>Message</label>\n <textarea name="message" class="form-control"></textarea>\n </div>\n <div class="form-group">\n <button type="submit" class="btn btn-primary">Send</button>\n </div>\n </form>\n '})};const $=function(e,t){var a,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=e.getType("default"),r=o.model,l=o.view;n.formPredefinedActions&&n.formPredefinedActions.length?(a={type:"select",label:n.labels.trait_action,name:"action",options:[]},n.formPredefinedActions.forEach((function(e){a.options.push({value:e.value,name:e.name})}))):a={label:n.labels.trait_action,name:"action"},e.addType("form",{model:r.extend({defaults:R(R({},r.prototype.defaults),{},{droppable:":not(form)",draggable:":not(form)",traits:[{type:"select",label:n.labels.trait_enctype,name:"enctype",options:[{value:"application/x-www-form-urlencoded",name:"application/x-www-form-urlencoded (default)"},{value:"multipart/form-data",name:"multipart/form-data"},{value:"text/plain",name:"text/plain"}]},{type:"select",label:n.labels.trait_method,name:"method",options:[{value:"post",name:"POST"},{value:"get",name:"GET"}]},a]}),init:function(){this.listenTo(this,"change:formState",this.updateFormState)},updateFormState:function(){switch(this.get("formState")){case"success":this.showState("success");break;case"error":this.showState("error");break;default:this.showState("normal")}},showState:function(e){var t,a,n=e||"normal";"success"===n?(t="none",a="block"):"error"===n?(t="block",a="none"):(t="none",a="none");var o=this.getStateModel("success"),r=this.getStateModel("error"),l=o.getStyle(),i=r.getStyle();l.display=a,i.display=t,o.setStyle(l),r.setStyle(i)},getStateModel:function(e){for(var t,a=e||"success",n=this.get("components"),o=0;o<n.length;o++){var r=n.models[o];if(r.get("form-state-type")===a){t=r;break}}if(!t){var l=formMsgSuccess;"error"===a&&(l=formMsgError),t=n.add({"form-state-type":a,type:"text",removable:!1,copyable:!1,draggable:!1,attributes:{"data-form-state":a},content:l})}return t}},{isComponent:function(e){if("FORM"===e.tagName)return{type:"form"}}}),view:l.extend({events:{submit:function(e){e.preventDefault()}}})})};function G(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function W(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?G(Object(a),!0).forEach((function(t){X(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):G(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function X(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var J=function(e,t){e.add("input",{label:"\n ".concat('<svg class="gjs-block-svg" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">\n <path class="gjs-block-svg-path" d="M22,9 C22,8.4 21.5,8 20.75,8 L3.25,8 C2.5,8 2,8.4 2,9 L2,15 C2,15.6 2.5,16 3.25,16 L20.75,16 C21.5,16 22,15.6 22,15 L22,9 Z M21,15 L3,15 L3,9 L21,9 L21,15 Z"></path>\n <polygon class="gjs-block-svg-path" points="4 10 5 10 5 14 4 14"></polygon>\n</svg>\n',"\n <div>").concat(t,"</div>"),category:"Forms",content:'<input name="input1" class="form-control"/>'})};const Y=function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=e.getType("default"),o=n.model,r=n.view;e.addType("input",{model:o.extend({defaults:W(W({},o.prototype.defaults),{},{"custom-name":a.labels.input,tagName:"input",draggable:"form .form-group",droppable:!1,traits:[t.value,t.name,t.placeholder,{label:a.labels.trait_type,type:"select",name:"type",options:[{value:"text",name:a.labels.type_text},{value:"email",name:a.labels.type_email},{value:"password",name:a.labels.type_password},{value:"number",name:a.labels.type_number},{value:"date",name:a.labels.type_date},{value:"hidden",name:a.labels.type_hidden}]},t.required]})},{isComponent:function(e){if("INPUT"===e.tagName)return{type:"input"}}}),view:r})};function K(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function Q(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?K(Object(a),!0).forEach((function(t){ee(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):K(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function ee(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var te=function(e,t,a){e.add("form_group_input",{label:"\n ".concat('<svg class="gjs-block-svg" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">\n <path class="gjs-block-svg-path" d="M22,9 C22,8.4 21.5,8 20.75,8 L3.25,8 C2.5,8 2,8.4 2,9 L2,15 C2,15.6 2.5,16 3.25,16 L20.75,16 C21.5,16 22,15.6 22,15 L22,9 Z M21,15 L3,15 L3,9 L21,9 L21,15 Z"></path>\n <polygon class="gjs-block-svg-path" points="4 10 5 10 5 14 4 14"></polygon>\n</svg>\n',"\n <div>").concat(t,"</div>"),category:"Forms",content:'\n <div class="form-group">\n <label>Name</label>\n <input name="name" placeholder="Type here your name" class="form-control"/>\n </div>\n '}),e.add("input_group",{label:"\n ".concat('<svg class="gjs-block-svg" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">\n <path class="gjs-block-svg-path" d="M22,9 C22,8.4 21.5,8 20.75,8 L3.25,8 C2.5,8 2,8.4 2,9 L2,15 C2,15.6 2.5,16 3.25,16 L20.75,16 C21.5,16 22,15.6 22,15 L22,9 Z M21,15 L3,15 L3,9 L21,9 L21,15 Z"></path>\n <polygon class="gjs-block-svg-path" points="4 10 5 10 5 14 4 14"></polygon>\n</svg>\n',"\n <div>").concat(t,"</div>"),category:"Forms",content:'\n <div class="input-group">\n <div class="input-group-prepend">\n <span class="input-group-text">$</span>\n </div>\n <input name="input1" type="text" class="form-control" aria-label="Amount (to the nearest dollar)">\n <div class="input-group-append">\n <span class="input-group-text">.00</span>\n </div>\n </div>\n '})};const ae=function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=e.getType("default"),o=n.model,r=n.view;e.addType("input_group",{model:o.extend({defaults:Q(Q({},o.prototype.defaults),{},{"custom-name":a.labels.input_group,tagName:"div",traits:[]})},{isComponent:function(e){if(e&&e.classList&&e.classList.contains("form_group_input"))return{type:"form_group_input"}}}),view:r})};function ne(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function oe(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?ne(Object(a),!0).forEach((function(t){re(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):ne(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function re(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var le=function(e,t){e.add("textarea",{label:"\n ".concat('<svg class="gjs-block-svg" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">\n <path class="gjs-block-svg-path" d="M22,7.5 C22,6.6 21.5,6 20.75,6 L3.25,6 C2.5,6 2,6.6 2,7.5 L2,16.5 C2,17.4 2.5,18 3.25,18 L20.75,18 C21.5,18 22,17.4 22,16.5 L22,7.5 Z M21,17 L3,17 L3,7 L21,7 L21,17 Z"></path>\n <polygon class="gjs-block-svg-path" points="4 8 5 8 5 12 4 12"></polygon>\n <polygon class="gjs-block-svg-path" points="19 7 20 7 20 17 19 17"></polygon>\n <polygon class="gjs-block-svg-path" points="20 8 21 8 21 9 20 9"></polygon>\n <polygon class="gjs-block-svg-path" points="20 15 21 15 21 16 20 16"></polygon>\n</svg>\n',"\n <div>").concat(t,"</div>"),category:"Forms",content:'<textarea name="textarea1" class="form-control"></textarea>'})};const ie=function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=e.getType("default"),o=n.view,r=e.getType("input"),l=r.model;e.addType("textarea",{model:l.extend({defaults:oe(oe({},l.prototype.defaults),{},{"custom-name":a.labels.textarea,tagName:"textarea",traits:[t.name,t.placeholder,t.required]})},{isComponent:function(e){if("TEXTAREA"===e.tagName)return{type:"textarea"}}}),view:o})};function se(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function ce(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?se(Object(a),!0).forEach((function(t){de(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):se(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function de(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var ue=function(e,t){e.add("select",{label:"\n ".concat('<svg class="gjs-block-svg" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">\n <path class="gjs-block-svg-path" d="M22,9 C22,8.4 21.5,8 20.75,8 L3.25,8 C2.5,8 2,8.4 2,9 L2,15 C2,15.6 2.5,16 3.25,16 L20.75,16 C21.5,16 22,15.6 22,15 L22,9 Z M21,15 L3,15 L3,9 L21,9 L21,15 Z" fill-rule="nonzero"></path>\n <polygon class="gjs-block-svg-path" transform="translate(18.500000, 12.000000) scale(1, -1) translate(-18.500000, -12.000000) " points="18.5 11 20 13 17 13"></polygon>\n <rect class="gjs-block-svg-path" x="4" y="11.5" width="11" height="1"></rect>\n</svg>\n',"\n <div>").concat(t,"</div>"),category:"Forms",content:'<select class="form-control" name="select1">\n '.concat(t?'<option value="">'.concat(t,"</option>"):"",'\n <option value="1">').concat(t," 1</option>\n </select>")})};const pe=function(e,t,a){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=t.getType("default"),r=o.model,l=t.getType("input"),i=l.model,s=function(){return o.view.extend({events:{mousedown:"handleClick"},handleClick:function(e){e.preventDefault()}})};t.addType("select",{model:r.extend({defaults:ce(ce({},i.prototype.defaults),{},{"custom-name":n.labels.select,tagName:"select",traits:[a.name,{label:n.labels.trait_options,type:"select-options"},a.required]})},{isComponent:function(e){if("SELECT"===e.tagName)return{type:"select"}}}),view:s()});var c=e.TraitManager;c.addType("select-options",{events:{keyup:"onChange"},onValueChange:function(){for(var e=this.model.get("value").trim().split("\n"),t=[],a=0;a<e.length;a++){var o=e[a].split(n.optionsStringSeparator),r={tagName:"option",attributes:{}};o[1]?(r.content=o[1],r.attributes.value=o[0]):(r.content=o[0],r.attributes.value=o[0]),t.push(r)}this.target.get("components").reset(t),this.target.view.render()},getInputEl:function(){if(!this.$input){for(var e="",t=this.target.get("components"),a=0;a<t.length;a++){var o=t.models[a],r=o.get("attributes").value||"";e+="".concat(r).concat(n.optionsStringSeparator).concat(o.get("content"),"\n")}this.$input=document.createElement("textarea"),this.$input.value=e}return this.$input}})};function me(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function fe(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?me(Object(a),!0).forEach((function(t){be(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):me(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function be(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var ge=function(e,t){e.add("checkbox",{label:"\n ".concat('<svg aria-hidden="true" width="24" height="50" focusable="false" data-prefix="fas" data-icon="check-square" class="svg-inline--fa fa-check-square fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z"></path></svg>\n',"\n <div>").concat(t,"</div>\n "),category:"Forms",content:'\n <div class="form-check">\n <input class="form-check-input" type="checkbox" value="" id="defaultCheck1">\n <label class="form-check-label" for="defaultCheck1">\n Default checkbox\n </label>\n </div>\n '})};const ve=function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=e.getType("default"),o=n.model,r=n.view,l=e.getType("input"),i=l.model;e.addType("checkbox",{model:o.extend({defaults:fe(fe({},i.prototype.defaults),{},{"custom-name":a.labels.checkbox_name,copyable:!1,droppable:!1,attributes:{type:"checkbox"},traits:[t.id,t.name,t.value,t.required,t.checked]}),init:function(){this.listenTo(this,"change:checked",this.handleChecked)},handleChecked:function(){var e=this.get("checked"),t=this.get("attributes"),a=this.view;e?t.checked=!0:delete t.checked,a&&(a.el.checked=e),this.set("attributes",fe({},t))}},{isComponent:function(e){if("INPUT"===e.tagName&&"checkbox"===e.type)return{type:"checkbox"}}}),view:r.extend({events:{click:"handleClick"},handleClick:function(e){e.preventDefault()}})})};function he(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function ye(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?he(Object(a),!0).forEach((function(t){we(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):he(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function we(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var Oe=function(e,t){e.add("radio",{label:"\n ".concat('<svg aria-hidden="true" width="24" height="50" focusable="false" data-prefix="far" data-icon="dot-circle" class="svg-inline--fa fa-dot-circle fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z"></path></svg>\n',"\n <div>").concat(t,"</div>\n "),category:"Forms",content:'\n <div class="form-check">\n <input class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios1" value="option1" checked>\n <label class="form-check-label" for="exampleRadios1">\n Default radio\n </label>\n </div>\n '})};const je=function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=e.getType("checkbox");e.addType("radio",{model:n.model.extend({defaults:ye(ye({},n.model.prototype.defaults),{},{"custom-name":a.labels.radio,attributes:{type:"radio"}})},{isComponent:function(e){if("INPUT"===e.tagName&&"radio"===e.type)return{type:"radio"}}}),view:n.view})},xe=["primary","secondary","success","info","warning","danger","light","dark"],Ce={lg:"Large",sm:"Small"},ke='<svg class="gjs-block-svg" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">\n <path class="gjs-block-svg-path" d="M22,9 C22,8.4 21.5,8 20.75,8 L3.25,8 C2.5,8 2,8.4 2,9 L2,15 C2,15.6 2.5,16 3.25,16 L20.75,16 C21.5,16 22,15.6 22,15 L22,9 Z M21,15 L3,15 L3,9 L21,9 L21,15 Z" fill-rule="nonzero"></path>\n <rect class="gjs-block-svg-path" x="4" y="11.5" width="16" height="1"></rect>\n</svg>\n';function Te(e){return function(e){if(Array.isArray(e))return Pe(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Pe(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return Pe(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Pe(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}function _e(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function Le(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?_e(Object(a),!0).forEach((function(t){Se(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):_e(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function Se(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var De=function(e,t){e.add("button",{label:"".concat(ke,"<div>").concat(t,"</div>"),category:"Forms",content:'<button class="btn btn-primary">Send</button>'})};const Ne=function(e){var t=e.getType("default"),a=t.model,n=t.view;e.addType("button",{model:a.extend({defaults:Le(Le({},a.prototype.defaults),{},{"custom-name":"Button",droppable:!1,attributes:{role:"button"},classes:["btn"],traits:[{type:"content",label:"Text"},{label:"Type",type:"select",name:"type",options:[{value:"submit",name:"Submit"},{value:"reset",name:"Reset"},{value:"button",name:"Button"}]},{type:"class_select",options:[{value:"",name:"None"}].concat(Te(xe.map((function(e){return{value:"btn-".concat(e),name:x(e)}}))),Te(xe.map((function(e){return{value:"btn-outline-".concat(e),name:x(e)+" (Outline)"}})))),label:"Context"},{type:"class_select",options:[{value:"",name:"Default"}].concat(Te(Object.keys(Ce).map((function(e){return{value:"btn-".concat(e),name:Ce[e]}})))),label:"Size"},{type:"class_select",options:[{value:"",name:"Inline"},{value:"btn-block",name:"Block"}],label:"Width"}].concat(a.prototype.defaults.traits)}),afterChange:function(e){"button"===this.attributes.type&&0===this.attributes.classes.filter((function(e){return"btn"===e.id})).length&&this.changeType("link")}},{isComponent:function(e){if(e&&e.classList&&e.classList.contains("btn"))return{type:"button"}}}),view:n.extend({events:{click:"handleClick"},init:function(){this.listenTo(this.model,"change:content",this.updateContent)},updateContent:function(){this.el.innerHTML=this.model.get("content")},handleClick:function(e){e.preventDefault()}})})};function Me(e){return function(e){if(Array.isArray(e))return Ae(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Ae(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return Ae(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ae(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}var Ee=function(e,t){e.add("button_group",{label:"\n ".concat(ke,"\n <div>").concat(t,"</div>\n "),category:"Forms",content:{type:"button_group"}})};const Ie=function(e){var t=e.getType("default"),a=t.model,n=t.view;e.addType("button_group",{model:a.extend({defaults:Object.assign({},a.prototype.defaults,{"custom-name":"Button Group",tagName:"div",classes:["btn-group"],droppable:".btn",attributes:{role:"group"},traits:[{type:"class_select",options:[{value:"",name:"Default"}].concat(Me(Object.keys(Ce).map((function(e){return{value:"btn-group-"+e,name:Ce[e]}})))),label:"Size"},{type:"class_select",options:[{value:"",name:"Horizontal"},{value:"btn-group-vertical",name:"Vertical"}],label:"Size"},{type:"Text",label:"ARIA Label",name:"aria-label",placeholder:"A group of buttons"}].concat(a.prototype.defaults.traits)})},{isComponent:function(e){if(e&&e.classList&&e.classList.contains("btn-group"))return{type:"button_group"}}}),view:n})};var Be=function(e,t){e.add("button_toolbar",{label:"\n ".concat(ke,"\n <div>").concat(t,"</div>\n "),category:"Forms",content:{type:"button_toolbar"}})};const ze=function(e){var t=e.getType("default"),a=t.model,n=t.view;e.addType("button_toolbar",{model:a.extend({defaults:Object.assign({},a.prototype.defaults,{"custom-name":"Button Toolbar",tagName:"div",classes:["btn-toolbar"],droppable:".btn-group",attributes:{role:"toolbar"},traits:[{type:"Text",label:"ARIA Label",name:"aria-label",placeholder:"A toolbar of button groups"}].concat(a.prototype.defaults.traits)})},{isComponent:function(e){if(e&&e.classList&&e.classList.contains("btn-toolbar"))return{type:"button_toolbar"}}}),view:n})};function He(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function Fe(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?He(Object(a),!0).forEach((function(t){Ve(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):He(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function Ve(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var qe=function(e,t){e.add("label",{label:"\n ".concat('<svg class="gjs-block-svg" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">\n <path class="gjs-block-svg-path" d="M22,11.875 C22,11.35 21.5,11 20.75,11 L3.25,11 C2.5,11 2,11.35 2,11.875 L2,17.125 C2,17.65 2.5,18 3.25,18 L20.75,18 C21.5,18 22,17.65 22,17.125 L22,11.875 Z M21,17 L3,17 L3,12 L21,12 L21,17 Z" fill-rule="nonzero"></path>\n <rect class="gjs-block-svg-path" x="2" y="5" width="14" height="5" rx="0.5"></rect>\n <polygon class="gjs-block-svg-path" fill-rule="nonzero" points="4 13 5 13 5 16 4 16"></polygon>\n</svg>\n',"\n <div>").concat(t,"</div>"),category:"Forms",content:"<label>Label</label>"})};const Re=function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=e.getType("text"),o=n.model,r=n.view;e.addType("label",{model:o.extend({defaults:Fe(Fe({},o.prototype.defaults),{},{"custom-name":a.labels.label,tagName:"label",traits:[t.for]})},{isComponent:function(e){if("LABEL"==e.tagName)return{type:"label"}}}),view:r})};var Ze=function(e,t){e.add("link",{label:"\n ".concat('<svg aria-hidden="true" width="24" height="50" focusable="false" data-prefix="fas" data-icon="link" class="svg-inline--fa fa-link fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"></path></svg>\n',"\n <div>").concat(t,"</div>\n "),category:"Basic",content:{type:"link",content:"Link text"}})};const Ue=function(e){var t=e.DomComponents,a=t.getType("text").model,n=t.getType("link").view;t.addType("link",{model:a.extend({defaults:Object.assign({},a.prototype.defaults,{"custom-name":"Link",tagName:"a",droppable:!0,editable:!0,traits:[{type:"text",label:"Href",name:"href",placeholder:"https://www.grapesjs.com"},{type:"select",options:[{value:"",name:"This window"},{value:"_blank",name:"New window"}],label:"Target",name:"target"},{type:"select",options:[{value:"",name:"None"},{value:"button",name:"Self"},{value:"collapse",name:"Collapse"},{value:"dropdown",name:"Dropdown"}],label:"Toggles",name:"data-toggle",changeProp:1}].concat(a.prototype.defaults.traits)}),init2:function(){this.listenTo(this,"change:data-toggle",this.setupToggle),this.listenTo(this,"change:attributes",this.setupToggle)},setupToggle:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!0!==a.ignore||!0===a.force){console.log("setup toggle");var n=this.getAttributes(),o=n.href;if(delete n["data-toggle"],delete n["aria-expanded"],delete n["aria-controls"],delete n["aria-haspopup"],o&&o.length>0&&o.match(/^#/)){console.log("link has href");var r=this.em.get("Editor").DomComponents.getWrapper().find(o);if(r.length>0){console.log("referenced el found");var l=r[0],i=l.getAttributes(),s=i.class;if(s){console.log("el has classes");var c=s.split(" "),d=["collapse","dropdown-menu"],u=c.filter((function(e){return d.includes(e)}));if(u.length){if(console.log("link data-toggle matches el class"),"collapse"===u[0])n["data-toggle"]="collapse";n["aria-expanded"]=c.includes("show"),"collapse"===u[0]&&(n["aria-controls"]=o.substring(1))}}}}this.set("attributes",n,{ignore:!0})}},classesChanged:function(e){console.log("classes changed"),"link"===this.attributes.type&&this.attributes.classes.filter((function(e){return"btn"===e.id})).length>0&&this.changeType("button")}},{isComponent:function(e){if(e&&e.tagName&&"A"===e.tagName)return{type:"link"}}}),view:n})};function $e(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function Ge(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?$e(Object(a),!0).forEach((function(t){We(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):$e(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function We(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var Xe=function(e,t){e.add("file-input",{label:"\n ".concat('<svg class="gjs-block-svg" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">\n <path class="gjs-block-svg-path" d="M22,9 C22,8.4 21.5,8 20.75,8 L3.25,8 C2.5,8 2,8.4 2,9 L2,15 C2,15.6 2.5,16 3.25,16 L20.75,16 C21.5,16 22,15.6 22,15 L22,9 Z M21,15 L3,15 L3,9 L21,9 L21,15 Z"></path>\n <polygon class="gjs-block-svg-path" points="4 10 5 10 5 14 4 14"></polygon>\n</svg>\n',"\n <div>").concat(t,"</div>\n "),category:"Forms",content:'<input type="file" name="file" class="form-control-file" id="exampleFormControlFile1">'})};const Je=function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=e.getType("default"),o=n.model,r=n.view,l="file-input";e.addType(l,{model:o.extend({defaults:Ge(Ge({},o.prototype.defaults),{},{"custom-name":a.labels.input,tagName:"input",draggable:"form .form-group",droppable:!1,traits:[t.name,t.required,{type:"checkbox",label:a.labels.trait_multiple,name:"multiple"}]})},{isComponent:function(e){if("INPUT"===e.tagName&&j(e,"form-control-file"))return{type:l}}}),view:r})};var Ye=function(e,t){e.add("bs-image",{label:"\n ".concat('<svg aria-hidden="true" width="24" height="50" focusable="false" data-prefix="fas" data-icon="image" class="svg-inline--fa fa-image fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z"></path></svg>\n',"\n <div>").concat(t,"</div>\n "),category:"Media",content:{type:"bs-image"}})};const Ke=function(e){var t=e.getType("image"),a=t.model,n=t.view,o="bs-image";e.addType(o,{model:a.extend({defaults:Object.assign({},a.prototype.defaults,{"custom-name":"Image",tagName:"img",resizable:1,attributes:{src:"https://dummyimage.com/800x500/999/222"},classes:["img-fluid"],traits:[{type:"text",label:"Source (URL)",name:"src"},{type:"text",label:"Alternate text",name:"alt"}].concat(a.prototype.defaults.traits)})},{isComponent:function(e){if(e&&"IMG"===e.tagName)return{type:o}}}),view:n})};var Qe=function(e,t){e.add("bs-video",{label:"\n ".concat('<svg aria-hidden="true" width="24" height="50" focusable="false" data-prefix="fab" data-icon="youtube" class="svg-inline--fa fa-youtube fa-w-18" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"></path></svg>\n',"\n <div>").concat(t,"</div>\n "),category:"Media",content:{type:"bs-video"}})};const et=function(e){var t=e.getType("video"),a=t.model,n=t.view,o="bs-embed-responsive";e.addType(o,{model:a.extend({defaults:Object.assign({},a.prototype.defaults,{"custom-name":"Video",resizable:!1,droppable:!1,draggable:!1,copyable:!1,provider:"so",classes:["embed-responsive-item"]})},{isComponent:function(e){if(e&&"embed-responsive-item"===e.className){var t={provider:"so",type:o},a=/youtube\.com\/embed/.test(e.src),n=/youtube-nocookie\.com\/embed/.test(e.src),r=/player\.vimeo\.com\/video/.test(e.src),l=a||n||r;return("VIDEO"==e.tagName||"IFRAME"==e.tagName&&l)&&(e.src&&(t.src=e.src),l&&(a?t.provider="yt":n?t.provider="ytnc":r&&(t.provider="vi"))),t}}}),view:n})},tt=function(e){var t=e.getType("default"),a=t.model,n=t.view,o="bs-video";e.addType(o,{model:a.extend({defaults:Object.assign({},a.prototype.defaults,{"custom-name":"Embed",tagName:"div",resizable:!1,droppable:!1,classes:["embed-responsive","embed-responsive-16by9"],traits:[{type:"class_select",options:[{value:"embed-responsive-21by9",name:"21:9"},{value:"embed-responsive-16by9",name:"16:9"},{value:"embed-responsive-4by3",name:"4:3"},{value:"embed-responsive-1by1",name:"1:1"}],label:"Aspect Ratio"}].concat(a.prototype.defaults.traits)})},{isComponent:function(e){if(e&&"embed-responsive"===e.className)return{type:o}}}),view:n.extend({init:function(){var e=["Aspect Ratio"].map((function(e){return"change:".concat(e)})).join(" ");this.listenTo(this.model,e,this.render);var t=this.model.components();t.length||t.add('<iframe class="embed-responsive-item" src="'.concat("https://download.blender.org/peach/bigbuckbunny_movies/BigBuckBunny_320x180.mp4",'"></iframe>'))}})})};var at=function(e,t){e.add("paragraph",{label:"\n ".concat('<svg aria-hidden="true" width="24" height="50" focusable="false" data-prefix="fas" data-icon="paragraph" class="svg-inline--fa fa-paragraph fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M448 48v32a16 16 0 0 1-16 16h-48v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V96h-32v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V352h-32a160 160 0 0 1 0-320h240a16 16 0 0 1 16 16z"></path></svg>\n',"\n <div>").concat(t,"</div>\n "),category:"Typography",content:{type:"paragraph",content:"Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Duis mollis, est non commodo luctus."}})};const nt=function(e){var t=e.getType("text"),a=t.model,n=t.view;e.addType("paragraph",{model:a.extend({defaults:Object.assign({},a.prototype.defaults,{"custom-name":"Paragraph",tagName:"p",traits:[{type:"class_select",options:[{value:"",name:"No"},{value:"lead",name:"Yes"}],label:"Lead?"}].concat(a.prototype.defaults.traits)})},{isComponent:function(e){if(e&&e.tagName&&"P"===e.tagName)return{type:"paragraph"}}}),view:n})};var ot=function(e,t){e.add("header",{label:"\n ".concat('<svg aria-hidden="true" width="24" height="50" focusable="false" data-prefix="fas" data-icon="heading" class="svg-inline--fa fa-heading fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M448 96v320h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H320a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V288H160v128h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V96H32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-32v128h192V96h-32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16z"></path></svg>\n',"\n <div>").concat(t,"</div>\n "),category:"Typography",content:{type:"header",content:"Bootstrap heading"}})};const rt=function(e){var t=e.getType("text"),a=t.model,n=t.view;e.addType("header",{model:a.extend({defaults:Object.assign({},a.prototype.defaults,{"custom-name":"Header",tagName:"h1",traits:[{type:"select",options:[{value:"h1",name:"One (largest)"},{value:"h2",name:"Two"},{value:"h3",name:"Three"},{value:"h4",name:"Four"},{value:"h5",name:"Five"},{value:"h6",name:"Six (smallest)"}],label:"Size",name:"tagName",changeProp:1},{type:"class_select",options:[{value:"",name:"None"},{value:"display-1",name:"One (largest)"},{value:"display-2",name:"Two "},{value:"display-3",name:"Three "},{value:"display-4",name:"Four (smallest)"}],label:"Display Heading"}].concat(a.prototype.defaults.traits)})},{isComponent:function(e){if(e&&["H1","H2","H3","H4","H5","H6"].includes(e.tagName))return{type:"header"}}}),view:n})},lt='<svg aria-hidden="true" width="24" height="50" focusable="false" data-prefix="fas" data-icon="credit-card" class="svg-inline--fa fa-credit-card fa-w-18" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z"></path></svg>\n';var it=function(e,t){e.add("card",{label:"\n ".concat(lt,"\n <div>").concat(t.labels.card,"</div>\n "),category:"Components",content:{type:"card"}}),e.add("card_container",{label:"\n ".concat(lt,"\n <div>").concat(t.labels.card_container,"</div>\n "),category:"Components",content:{type:"card_container"}})};const st=function(e,t){var a=t.DomComponents.getType("default"),n=a.model,o=a.view,r=e.getType("image"),l=r.model,i=r.view;e.addType("card",{model:n.extend({defaults:Object.assign({},n.prototype.defaults,{"custom-name":"Card",classes:["card"],traits:[{type:"checkbox",label:"Image Top",name:"card-img-top",changeProp:1},{type:"checkbox",label:"Header",name:"card-header",changeProp:1},{type:"checkbox",label:"Image",name:"card-img",changeProp:1},{type:"checkbox",label:"Image Overlay",name:"card-img-overlay",changeProp:1},{type:"checkbox",label:"Body",name:"card-body",changeProp:1},{type:"checkbox",label:"Footer",name:"card-footer",changeProp:1},{type:"checkbox",label:"Image Bottom",name:"card-img-bottom",changeProp:1}].concat(n.prototype.defaults.traits)}),init2:function(){this.listenTo(this,"change:card-img-top",this.cardImageTop),this.listenTo(this,"change:card-header",this.cardHeader),this.listenTo(this,"change:card-img",this.cardImage),this.listenTo(this,"change:card-img-overlay",this.cardImageOverlay),this.listenTo(this,"change:card-body",this.cardBody),this.listenTo(this,"change:card-footer",this.cardFooter),this.listenTo(this,"change:card-img-bottom",this.cardImageBottom),this.components().comparator="card-order",this.set("card-img-top",!0),this.set("card-body",!0)},cardImageTop:function(){this.createCardComponent("card-img-top")},cardHeader:function(){this.createCardComponent("card-header")},cardImage:function(){this.createCardComponent("card-img")},cardImageOverlay:function(){this.createCardComponent("card-img-overlay")},cardBody:function(){this.createCardComponent("card-body")},cardFooter:function(){this.createCardComponent("card-footer")},cardImageBottom:function(){this.createCardComponent("card-img-bottom")},createCardComponent:function(e){var t=this.get(e),a=e.replace(/-/g,"_").replace(/img/g,"image"),n=this.components(),o=n.filter((function(e){return e.attributes.type===a}))[0];if(t&&!o){var r=n.add({type:a}).components();"card-header"===e&&r.add({type:"header",tagName:"h4",style:{"margin-bottom":"0px"},content:"Card Header"}),"card-img-overlay"===e&&(r.add({type:"header",tagName:"h4",classes:["card-title"],content:"Card title"}),r.add({type:"text",tagName:"p",classes:["card-text"],content:"Some quick example text to build on the card title and make up the bulk of the card's content."})),"card-body"===e&&(r.add({type:"header",tagName:"h4",classes:["card-title"],content:"Card title"}),r.add({type:"header",tagName:"h6",classes:["card-subtitle","text-muted","mb-2"],content:"Card subtitle"}),r.add({type:"text",tagName:"p",classes:["card-text"],content:"Some quick example text to build on the card title and make up the bulk of the card's content."}),r.add({type:"link",classes:["card-link"],href:"#",content:"Card link"}),r.add({type:"link",classes:["card-link"],href:"#",content:"Another link"})),this.order()}else t||o.destroy()},order:function(){}},{isComponent:function(e){if(e&&e.classList&&e.classList.contains("card"))return{type:"card"}}}),view:o}),e.addType("card_image_top",{model:l.extend({defaults:Object.assign({},l.prototype.defaults,{"custom-name":"Card Image Top",classes:["card-img-top"],"card-order":1})},{isComponent:function(e){if(e&&e.classList&&e.classList.contains("card-img-top"))return{type:"card_image_top"}}}),view:i}),e.addType("card_header",{model:n.extend({defaults:Object.assign({},n.prototype.defaults,{"custom-name":"Card Header",classes:["card-header"],"card-order":2})},{isComponent:function(e){if(e&&e.classList&&e.classList.contains("card-header"))return{type:"card_header"}}}),view:o}),e.addType("card_image",{model:l.extend({defaults:Object.assign({},l.prototype.defaults,{"custom-name":"Card Image",classes:["card-img"],"card-order":3})},{isComponent:function(e){if(e&&e.classList&&e.classList.contains("card-img"))return{type:"card_image"}}}),view:i}),e.addType("card_image_overlay",{model:n.extend({defaults:Object.assign({},n.prototype.defaults,{"custom-name":"Card Image Overlay",classes:["card-img-overlay"],"card-order":4})},{isComponent:function(e){if(e&&e.classList&&e.classList.contains("card-img-overlay"))return{type:"card_image_overlay"}}}),view:o}),e.addType("card_body",{model:n.extend({defaults:Object.assign({},n.prototype.defaults,{"custom-name":"Card Body",classes:["card-body"],"card-order":5})},{isComponent:function(e){if(e&&e.classList&&e.classList.contains("card-body"))return{type:"card_body"}}}),view:o}),e.addType("card_footer",{model:n.extend({defaults:Object.assign({},n.prototype.defaults,{"custom-name":"Card Footer",classes:["card-footer"],"card-order":6})},{isComponent:function(e){if(e&&e.classList&&e.classList.contains("card-footer"))return{type:"card_footer"}}}),view:o}),e.addType("card_image_bottom",{model:l.extend({defaults:Object.assign({},l.prototype.defaults,{"custom-name":"Card Image Bottom",classes:["card-img-bottom"],"card-order":7})},{isComponent:function(e){if(e&&e.classList&&e.classList.contains("card-img-bottom"))return{type:"card_image_bottom"}}}),view:i}),e.addType("card_container",{model:n.extend({defaults:Object.assign({},n.prototype.defaults,{"custom-name":"Card Container",classes:["card-group"],droppable:".card",traits:[{type:"class_select",options:[{value:"card-group",name:"Group"},{value:"card-deck",name:"Deck"},{value:"card-columns",name:"Columns"}],label:"Layout"}].concat(n.prototype.defaults.traits)})},{isComponent:function(e){var t=Array.from(e.classList||[]),a=["card-group","card-deck","card-columns"],n=t.filter((function(e){return a.includes(e)}));if(e&&e.classList&&n.length)return{type:"card_container"}}}),view:o})};function ct(e){return function(e){if(Array.isArray(e))return dt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return dt(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return dt(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function dt(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}var ut=function(e,t){e.add("badge",{label:"\n ".concat('<svg aria-hidden="true" width="24" height="50" focusable="false" data-prefix="fas" data-icon="certificate" class="svg-inline--fa fa-certificate fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z"></path></svg>\n',"\n <div>").concat(t,"</div>\n "),category:"Components",content:{type:"badge",content:"New!"}})};const pt=function(e){var t=e.getType("text"),a=t.model,n=t.view;e.addType("badge",{model:a.extend({defaults:Object.assign({},a.prototype.defaults,{"custom-name":"Badge",tagName:"span",classes:["badge"],traits:[{type:"class_select",options:[{value:"",name:"None"}].concat(ct(xe.map((function(e){return{value:"badge-"+e,name:x(e)}})))),label:"Context"},{type:"class_select",options:[{value:"",name:"Default"},{value:"badge-pill",name:"Pill"}],label:"Shape"}].concat(a.prototype.defaults.traits)})},{isComponent:function(e){if(e&&e.classList&&e.classList.contains("badge"))return{type:"badge"}}}),view:n})};function mt(e){return function(e){if(Array.isArray(e))return ft(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return ft(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return ft(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ft(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}var bt=function(e,t){e.add("alert",{label:"\n ".concat('<svg aria-hidden="true" width="24" height="50" focusable="false" data-prefix="fas" data-icon="exclamation-triangle" class="svg-inline--fa fa-exclamation-triangle fa-w-18" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"></path></svg>\n',"\n <div>").concat(t,"</div>\n "),category:"Components",content:{type:"alert",content:"This is an alert—check it out!"}})};const gt=function(e){var t=e.getType("text"),a=t.model,n=t.view;e.addType("alert",{model:a.extend({defaults:Object.assign({},a.prototype.defaults,{"custom-name":"Alert",tagName:"div",classes:["alert"],traits:[{type:"class_select",options:[{value:"",name:"None"}].concat(mt(xe.map((function(e){return{value:"alert-"+e,name:x(e)}})))),label:"Context"}].concat(a.prototype.defaults.traits)})},{isComponent:function(e){if(e&&e.classList&&e.classList.contains("alert"))return{type:"alert"}}}),view:n})},vt='<svg aria-hidden="true" width="24" height="50" focusable="false" data-prefix="fas" data-icon="columns" class="svg-inline--fa fa-columns fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z"></path></svg>\n';var ht=function(e,t){e.add("media_object").set({label:"\n ".concat(vt,"\n <div>").concat(t,"</div>\n "),category:"Layout",content:'<div class="media">\n <img class="mr-3" src="">\n <div class="media-body">\n <h5>Media heading</h5>\n <div>Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.</div>\n </div>\n </div>'})};const yt=function(e){var t=e.getType("default"),a=t.model,n=t.view;e.addType("media_object",{model:a.extend({defaults:Object.assign({},a.prototype.defaults,{"custom-name":"Media Object",tagName:"div",classes:["media"]})},{isComponent:function(e){if(e&&e.classList&&e.classList.contains("media"))return{type:"media"}}}),view:n}),e.addType("media_body",{model:a.extend({defaults:Object.assign({},a.prototype.defaults,{"custom-name":"Media Body",tagName:"div",classes:["media-body"]})},{isComponent:function(e){if(e&&e.classList&&e.classList.contains("media-body"))return{type:"media_body"}}}),view:n})};var wt=function(e,t){e.add("column_break").set({label:"\n ".concat('<svg aria-hidden="true" width="24" height="50" focusable="false" data-prefix="fas" data-icon="equals" class="svg-inline--fa fa-equals fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"></path></svg>\n',"\n <div>").concat(t,"</div>\n "),category:"Layout",content:{type:"column_break"}})};const Ot=function(e){var t=e.getType("default"),a=t.model,n=t.view;e.addType("column_break",{model:a.extend({defaults:Object.assign({},a.prototype.defaults,{"custom-name":"Column Break",tagName:"div",classes:["w-100"]})},{isComponent:function(e){if(e&&e.classList&&e.classList.contains("w-100"))return{type:"column_break"}}}),view:n})};function jt(e){return function(e){if(Array.isArray(e))return kt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Ct(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function xt(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==a)return;var n,o,r=[],l=!0,i=!1;try{for(a=a.call(e);!(l=(n=a.next()).done)&&(r.push(n.value),!t||r.length!==t);l=!0);}catch(e){i=!0,o=e}finally{try{l||null==a.return||a.return()}finally{if(i)throw o}}return r}(e,t)||Ct(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ct(e,t){if(e){if("string"==typeof e)return kt(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?kt(e,t):void 0}}function kt(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}var Tt=function(e,t){e.add("column").set({label:"\n ".concat(vt,"\n <div>").concat(t,"</div>\n "),category:"Layout",content:{type:"column",classes:["col"]}})};const Pt=function(e,t){var a=e.getType("default"),n=a.model,o=a.view,r=[1,2,3,4,5,6,7,8,9,10,11,12];e.addType("column",{model:n.extend({defaults:Object.assign({},n.prototype.defaults,{"custom-name":"Column",draggable:".row",droppable:!0,resizable:{updateTarget:function(e,a,n){var o=t.getSelected();if(o){var r=e.getRootNode().body.offsetWidth,l="";r>=1200?l="xl":r>=992?l="lg":r>=768?l="md":r>=576&&(l="sm");var i=.5*(e.parentElement.offsetWidth/12),s=a.w>e.offsetWidth+i,c=a.w<e.offsetWidth-i;if(s||c){new RegExp("^col-"+l+"-\\d{1,2}$");l||new RegExp("^col-\\d{1,2}$");var d,u=!1,p={},m=0,f=null,b=function(e,t){var a="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!a){if(Array.isArray(e)||(a=Ct(e))||t&&e&&"number"==typeof e.length){a&&(e=a);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,l=!0,i=!1;return{s:function(){a=a.call(e)},n:function(){var e=a.next();return l=e.done,e},e:function(e){i=!0,r=e},f:function(){try{l||null==a.return||a.return()}finally{if(i)throw r}}}}(e.classList);try{for(b.s();!(d=b.n()).done;){var g=d.value;if(0===g.indexOf("col-")){var v=xt(g.split("-"),3),h=(v[0],v[1]),y=v[2];y||(y=h,h=""),p[h]=y,h===l&&(f=g,m=y,u=!0)}}}catch(e){b.e(e)}finally{b.f()}if(!u)for(var w=0,O=["","xs","sm","md","lg","xl"];w<O.length;w++){var j=O[w];if(p[j]&&(m=p[j],u=!0),j===l)break}var x=Number(m);s?x++:x--,x>12&&(x=12),x<1&&(x=1);var C="col-"+l+"-"+x;l||(C="col-"+x),o.addClass(C),f&&f!==C&&o.removeClass(f),o.getTrait((l||"xs")+"_width").view.postUpdate()}}},tl:0,tc:0,tr:0,cl:0,cr:1,bl:0,bc:0,br:0},traits:[{id:"xs_width",type:"class_select",options:[{value:"col",name:"Equal"},{value:"col-auto",name:"Variable"}].concat(jt(r.map((function(e){return{value:"col-"+e,name:e+"/12"}})))),label:"XS Width"},{id:"sm_width",type:"class_select",options:[{value:"",name:"None"},{value:"col-sm",name:"Equal"},{value:"col-sm-auto",name:"Variable"}].concat(jt(r.map((function(e){return{value:"col-sm-"+e,name:e+"/12"}})))),label:"SM Width"},{id:"md_width",type:"class_select",options:[{value:"",name:"None"},{value:"col-md",name:"Equal"},{value:"col-md-auto",name:"Variable"}].concat(jt(r.map((function(e){return{value:"col-md-"+e,name:e+"/12"}})))),label:"MD Width"},{id:"lg_width",type:"class_select",options:[{value:"",name:"None"},{value:"col-lg",name:"Equal"},{value:"col-lg-auto",name:"Variable"}].concat(jt(r.map((function(e){return{value:"col-lg-"+e,name:e+"/12"}})))),label:"LG Width"},{id:"xl_width",type:"class_select",options:[{value:"",name:"None"},{value:"col-xl",name:"Equal"},{value:"col-xl-auto",name:"Variable"}].concat(jt(r.map((function(e){return{value:"col-xl-"+e,name:e+"/12"}})))),label:"XL Width"},{type:"class_select",options:[{value:"",name:"None"}].concat(jt(r.map((function(e){return{value:"offset-"+e,name:e+"/12"}})))),label:"XS Offset"},{type:"class_select",options:[{value:"",name:"None"}].concat(jt(r.map((function(e){return{value:"offset-sm-"+e,name:e+"/12"}})))),label:"SM Offset"},{type:"class_select",options:[{value:"",name:"None"}].concat(jt(r.map((function(e){return{value:"offset-md-"+e,name:e+"/12"}})))),label:"MD Offset"},{type:"class_select",options:[{value:"",name:"None"}].concat(jt(r.map((function(e){return{value:"offset-lg-"+e,name:e+"/12"}})))),label:"LG Offset"},{type:"class_select",options:[{value:"",name:"None"}].concat(jt(r.map((function(e){return{value:"offset-xl-"+e,name:e+"/12"}})))),label:"XL Offset"}].concat(n.prototype.defaults.traits)})},{isComponent:function(e){var t=!1;if(e&&e.classList&&e.classList.forEach((function(e){("col"==e||e.match(/^col-/))&&(t=!0)})),t)return{type:"column"}}}),view:o})};var _t=function(e,t){e.add("row").set({label:"\n ".concat(C,"\n <div>").concat(t,"</div>\n "),category:"Layout",content:{type:"row",classes:["row"]}})};const Lt=function(e){var t=e.getType("default"),a=t.model,n=t.view;e.addType("row",{model:a.extend({defaults:Object.assign({},a.prototype.defaults,{"custom-name":"Row",tagName:"div",draggable:".container, .container-fluid",droppable:!0,traits:[{type:"class_select",options:[{value:"",name:"Yes"},{value:"no-gutters",name:"No"}],label:"Gutters?"}].concat(a.prototype.defaults.traits)})},{isComponent:function(e){if(e&&e.classList&&e.classList.contains("row"))return{type:"row"}}}),view:n})};var St=function(e,t){e.add("container").set({label:"\n ".concat(C,"\n <div>").concat(t,"</div>\n "),category:"Layout",content:{type:"container",classes:["container"]}})};const Dt=function(e){var t=e.getType("default"),a=t.model,n=t.view;e.addType("container",{model:a.extend({defaults:Object.assign({},a.prototype.defaults,{"custom-name":"Container",tagName:"div",droppable:!0,traits:[{type:"class_select",options:[{value:"container",name:"Fixed"},{value:"container-fluid",name:"Fluid"}],label:"Width"}].concat(a.prototype.defaults.traits)})},{isComponent:function(e){if(e&&e.classList&&(e.classList.contains("container")||e.classList.contains("container-fluid")))return{type:"container"}}}),view:n})};var Nt=function(e,t){e.add("text",{label:"\n ".concat('<svg aria-hidden="true" width="24" height="50" focusable="false" data-prefix="fas" data-icon="font" class="svg-inline--fa fa-font fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M432 416h-23.41L277.88 53.69A32 32 0 0 0 247.58 32h-47.16a32 32 0 0 0-30.3 21.69L39.41 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-19.58l23.3-64h152.56l23.3 64H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM176.85 272L224 142.51 271.15 272z"></path></svg>\n',"\n <div>").concat(t,"</div>\n "),category:"Typography",content:{type:"text",content:"Insert your text here"}})};const Mt=function(e){var t=e.getType("default").model,a=e.getType("text").view;e.addType("text",{model:t.extend({defaults:Object.assign({},t.prototype.defaults,{"custom-name":"Text",tagName:"div",droppable:!0,editable:!0})},{}),view:a})};function At(e){return function(e){if(Array.isArray(e))return Et(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Et(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return Et(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Et(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}const It=function(e){var t=xe.concat(["white"]),a=e.getType("default"),n=a.model,o=a.view;e.addType("default",{model:n.extend({defaults:Object.assign({},n.prototype.defaults,{tagName:"div",traits:[{type:"class_select",options:[{value:"",name:"Default"}].concat(At(t.map((function(e){return{value:"text-"+e,name:x(e)}})))),label:"Text color"},{type:"class_select",options:[{value:"",name:"Default"}].concat(At(t.map((function(e){return{value:"bg-"+e,name:x(e)}})))),label:"Background color"},{type:"class_select",options:[{value:"",name:"Default"},{value:"border",name:"Full"},{value:"border-top-0",name:"No top"},{value:"border-right-0",name:"No right"},{value:"border-bottom-0",name:"No bottom"},{value:"border-left-0",name:"No left"},{value:"border-0",name:"None"}],label:"Border width"},{type:"class_select",options:[{value:"",name:"Default"}].concat(At(t.map((function(e){return{value:"border border-"+e,name:x(e)}})))),label:"Border color"},{type:"class_select",options:[{value:"",name:"Default"},{value:"rounded",name:"Rounded"},{value:"rounded-top",name:"Rounded top"},{value:"rounded-right",name:"Rounded right"},{value:"rounded-bottom",name:"Rounded bottom"},{value:"rounded-left",name:"Rounded left"},{value:"rounded-circle",name:"Circle"},{value:"rounded-0",name:"Square"}],label:"Border radius"},{type:"text",label:"ID",name:"id",placeholder:"my_element"},{type:"text",label:"Title",name:"title",placeholder:"My Element"}]}),init:function(){var e=this.get("classes");e.bind("add",this.classesChanged.bind(this)),e.bind("change",this.classesChanged.bind(this)),e.bind("remove",this.classesChanged.bind(this)),this.init2()},init2:function(){},classesChanged:function(){},changeType:function(e){var t=this.collection,a=t.indexOf(this),n={type:e,style:this.getStyle(),attributes:this.getAttributes(),content:this.view.el.innerHTML};t.remove(this),t.add(n,{at:a}),this.destroy()}}),view:o})},Bt=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=t,n=e.DomComponents,o=a.blocks,r=e.BlockManager,d=a.blockCategories,u={id:{name:"id",label:a.labels.trait_id},for:{name:"for",label:a.labels.trait_for},name:{name:"name",label:a.labels.trait_name},placeholder:{name:"placeholder",label:a.labels.trait_placeholder},value:{name:"value",label:a.labels.trait_value},required:{type:"checkbox",name:"required",label:a.labels.trait_required},checked:{label:a.labels.trait_checked,type:"checkbox",name:"checked",changeProp:1}};d.media&&(o.image&&(Ye(r,a.labels.image),Ke(n)),o.video&&(tt(n),Qe(r,a.labels.video),et(n))),d.basic&&(o.default&&It(n),o.text&&(Nt(r,a.labels.text),Mt(n)),o.link&&(Ze(r,a.labels.link),Ue(e)),o.list&&(l(r,a.labels.list),i(n))),d.layout&&(o.container&&(St(r,a.labels.container),Dt(n)),o.row&&(_t(r,a.labels.row),Lt(n)),o.column&&(Tt(r,a.labels.column),Pt(n,e),wt(r,a.labels.column_break),Ot(n)),o.media_object&&(ht(r,a.labels.media_object),yt(n))),d.components&&(o.alert&&(bt(r,a.labels.alert),gt(n)),o.tabs&&(_(r,a),L(n,t),B(n,t),M(n,t),V(n,t)),o.badge&&(ut(r,a.labels.badge),pt(n)),o.card&&(it(r,a),st(n,e)),o.collapse&&(s(r,a.labels.collapse),c(e)),o.dropdown&&(m(r,a.labels.dropdown),f(e))),d.typography&&(o.header&&(ot(r,a.labels.header),rt(n)),o.paragraph&&(at(r,a.labels.paragraph),nt(n))),d.forms&&(o.form&&(U(r,a.labels.form),$(n,u,t)),o.input&&(J(r,a.labels.input),Y(n,u,t),Xe(r,a.labels.file_input),Je(n,u,t)),o.form_group_input&&(te(r,a.labels.form_group_input),ae(n,u,t)),o.textarea&&(le(r,a.labels.textarea),ie(n,u,t)),o.select&&(ue(r,a.labels.select),pe(e,n,u,t)),o.checkbox&&(ge(r,a.labels.checkbox),ve(n,u,t)),o.radio&&(Oe(r,a.labels.radio),je(n,u,t)),o.label&&(qe(r,a.labels.label),Re(n,u,t)),o.button&&(De(r,a.labels.button),Ne(n)),o.button_group&&(Ee(r,a.labels.button_group),Ie(n)),o.button_toolbar&&(Be(r,a.labels.button_toolbar),ze(n)))},zt=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=t,n=e.DeviceManager;if(a.gridDevices&&(n.add("Extra Small","575px"),n.add("Small","767px"),n.add("Medium","991px"),n.add("Large","1199px"),n.add("Extra Large"),a.gridDevicesPanel)){var o=e.Panels,r=e.Commands,l=o.addPanel({id:"devices-buttons"}),i=l.get("buttons");i.add([{id:"deviceXl",command:"set-device-xl",className:"fa fa-desktop",text:"XL",attributes:{title:"Extra Large"},active:1},{id:"deviceLg",command:"set-device-lg",className:"fa fa-desktop",attributes:{title:"Large"}},{id:"deviceMd",command:"set-device-md",className:"fa fa-tablet",attributes:{title:"Medium"}},{id:"deviceSm",command:"set-device-sm",className:"fa fa-mobile",attributes:{title:"Small"}},{id:"deviceXs",command:"set-device-xs",className:"fa fa-mobile",attributes:{title:"Extra Small"}}]),r.add("set-device-xs",{run:function(e){e.setDevice("Extra Small")}}),r.add("set-device-sm",{run:function(e){e.setDevice("Small")}}),r.add("set-device-md",{run:function(e){e.setDevice("Medium")}}),r.add("set-device-lg",{run:function(e){e.setDevice("Large")}}),r.add("set-device-xl",{run:function(e){e.setDevice("Extra Large")}})}};function Ht(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function Ft(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Ht(Object(a),!0).forEach((function(t){Vt(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Ht(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function Vt(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var qt=function(e){e.Config.canvasCss+='\n /* Layout */\n\n .gjs-dashed .container, .gjs-dashed .container-fluid,\n .gjs-dashed .row,\n .gjs-dashed .col, .gjs-dashed [class^="col-"] {\n min-height: 1.5rem !important;\n }\n .gjs-dashed .w-100 {\n min-height: .25rem !important;\n background-color: rgba(0,0,0,0.1);\n }\n .gjs-dashed img {\n min-width: 25px;\n min-height: 25px;\n background-color: rgba(0,0,0,0.5);\n }\n\n /* Components */\n\n .gjs-dashed .btn-group,\n .gjs-dashed .btn-toolbar {\n padding-right: 1.5rem !important;\n min-height: 1.5rem !important;\n }\n .gjs-dashed .card,\n .gjs-dashed .card-group, .gjs-dashed .card-deck, .gjs-dashed .card-columns {\n min-height: 1.5rem !important;\n }\n .gjs-dashed .collapse {\n display: block !important;\n min-height: 1.5rem !important;\n }\n .gjs-dashed .dropdown {\n display: block !important;\n min-height: 1.5rem !important;\n }\n .gjs-dashed .dropdown-menu {\n min-height: 1.5rem !important;\n display: block !important;\n }\n '};const Rt=t().plugins.add("grapesjs-blocks-bootstrap4",(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};window.editor=e;var n=t.blocks||{},o=t.labels||{},l=t.blockCategories||{};delete t.blocks,delete t.labels,delete t.blockCategories;var i={default:!0,text:!0,link:!0,image:!0,container:!0,row:!0,column:!0,column_break:!0,media_object:!0,alert:!0,tabs:!0,badge:!0,button:!0,button_group:!0,button_toolbar:!0,card:!0,card_container:!0,collapse:!0,dropdown:!0,video:!0,header:!0,paragraph:!0,list:!0,form:!0,input:!0,form_group_input:!0,input_group:!0,textarea:!0,select:!0,label:!0,checkbox:!0,radio:!0},s={container:"Container",row:"Row",column:"Column",column_break:"Column Break",media_object:"Media Object",alert:"Alert",tabs:"Tabs",tab:"Tab",tabPane:"Tab Pane",badge:"Badge",button:"Button",button_group:"Button Group",button_toolbar:"Button Toolbar",card:"Card",card_container:"Card Container",collapse:"Collapse",dropdown:"Dropdown",dropdown_menu:"Dropdown Menu",dropdown_item:"Dropdown Item",image:"Image",video:"Video",text:"Text",header:"Header",paragraph:"Paragraph",link:"Link",list:"Simple List",form:"Form",input:"Input",file_input:"File",form_group_input:"Form Group",input_group:"Input group",textarea:"Textarea",select:"Select",select_option:"- Select option -",option:"Option",label:"Label",checkbox:"Checkbox",radio:"Radio",trait_method:"Method",trait_enctype:"Encoding Type",trait_multiple:"Multiple",trait_action:"Action",trait_state:"State",trait_id:"ID",trait_for:"For",trait_name:"Name",trait_placeholder:"Placeholder",trait_value:"Value",trait_required:"Required",trait_type:"Type",trait_options:"Options",trait_checked:"Checked",type_text:"Text",type_email:"Email",type_password:"Password",type_number:"Number",type_date:"Date",type_hidden:"Hidden",type_submit:"Submit",type_reset:"Reset",type_button:"Button"},c={layout:!0,media:!0,components:!0,typography:!0,basic:!0,forms:!0},d=Ft(Ft({},{blocks:Object.assign(i,n),labels:Object.assign(s,o),blockCategories:Object.assign(c,l),optionsStringSeparator:"::",gridDevices:!0,gridDevicesPanel:!1,classNavigation:"nav",classTabPanes:"tab-content",classTabPane:"tab-pane",classTab:"nav-item"}),t);a(e,d),r(e,d),Bt(e,d),zt(e,d),qt(e)}))})(),o})())); \ No newline at end of file diff --git a/dist/@minerva/grapesjs-blocks-bootstrap5.min.js.LICENSE.txt b/dist/@minerva/grapesjs-blocks-bootstrap5.min.js.LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..62d5b204e7fb457b8f3328ed0e8b12d922c25f0f --- /dev/null +++ b/dist/@minerva/grapesjs-blocks-bootstrap5.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! @minerva/grapesjs-blocks-bootstrap5 - 0.1.6 */ diff --git a/index.html b/index.html index 3e8118201fdfd69f7788fd0f40e7b521f6916476..82b25b52e409d19bb257bf50afbd068cebc7eab8 100644 --- a/index.html +++ b/index.html @@ -2,10 +2,10 @@ <html> <head> <meta charset="utf-8"> - <title>GrapesJS Bootstrap v4 Blocks Plugin</title> + <title>GrapesJS Bootstrap v5 Blocks Plugin</title> <link href="https://unpkg.com/grapesjs/dist/css/grapes.min.css" rel="stylesheet"> <script src="https://unpkg.com/grapesjs"></script> - <script src="dist/grapesjs-blocks-bootstrap4.min.js"></script> + <script src="dist/@minerva/grapesjs-blocks-bootstrap5.min.js"></script> <style> body, html { @@ -16,86 +16,8 @@ </head> <body> -<div id="gjs" style="height:0px; overflow:hidden"> - <style> - body { - background-color: #f4ebf3; - } - header { - margin-top: 4rem; - } - h1, h2, h3, h4, h5, h6, - .h1, .h2, .h3, .h4, .h5, .h6 { - color: #9f5497; - } - .jumbotron { - background-color: #d0bace; - } - </style> - <!--<div style="margin:100px 100px 25px; padding:25px; font:caption"> - This is a demo content from index.html. For the development, you shouldn't edit this file, instead you can - copy and rename it to _index.html, on next server start the new file will be served, and it will be ignored by git. - </div>--> - <div class="container"> - <div class="row"> - <div class="col-md-8 offset-md-2"> - <header class="header clearfix"> - <h1>GrapesJS Bootstrap v4 Blocks Plugin</h1> - </header> - <main role="main"> - <div class="jumbotron"> - <h1 class="display-4">Hello!</h1> - <p class="lead">This is demo content from <code>index.html</code>. For development, you shouldn't edit this file. Instead, you can copy and rename it to <code>_index.html</code>. The next time the server starts, the new file will be served, and it will be ignored by git.</p> - </div> - </main> - </div> - </div> - <div class="row"> - <div class="col-12 col-sm-6 col-md-4 col-lg-2 col-xl-1"><div>Col</div></div> - <div class="col-12 col-sm-6 col-md-4 col-lg-2 col-xl-1"><div>Col</div></div> - <div class="col-12 col-sm-6 col-md-4 col-lg-2 col-xl-1"><div>Col</div></div> - <div class="col-12 col-sm-6 col-md-4 col-lg-2 col-xl-1"><div>Col</div></div> - <div class="col-12 col-sm-6 col-md-4 col-lg-2 col-xl-1"><div>Col</div></div> - <div class="col-12 col-sm-6 col-md-4 col-lg-2 col-xl-1"><div>Col</div></div> - <div class="col-12 col-sm-6 col-md-4 col-lg-2 col-xl-1"><div>Col</div></div> - <div class="col-12 col-sm-6 col-md-4 col-lg-2 col-xl-1"><div>Col</div></div> - <div class="col-12 col-sm-6 col-md-4 col-lg-2 col-xl-1"><div>Col</div></div> - <div class="col-12 col-sm-6 col-md-4 col-lg-2 col-xl-1"><div>Col</div></div> - <div class="col-12 col-sm-6 col-md-4 col-lg-2 col-xl-1"><div>Col</div></div> - <div class="col-12 col-sm-6 col-md-4 col-lg-2 col-xl-1"><div>Col</div></div> - </div> - - <div class="row"> - <div class="col"> - <ul class="nav nav-tabs" role="tablist"> - <li class="nav-item"> - <a class="nav-link active" data-toggle="tab" href="#home" role="tab">Home</a> - </li> - <li class="nav-item"> - <a class="nav-link" data-toggle="tab" href="#profile" role="tab">Profile</a> - </li> - <li class="nav-item"> - <a class="nav-link" data-toggle="tab" href="#messages" role="tab">Messages</a> - </li> - <li class="nav-item"> - <a class="nav-link" data-toggle="tab" href="#settings" role="tab">Settings</a> - </li> - </ul> - - <!-- Tab panes --> - <div class="tab-content"> - <div class="tab-pane active" id="home" role="tabpanel">Home</div> - <div class="tab-pane" id="profile" role="tabpanel">Profile</div> - <div class="tab-pane" id="messages" role="tabpanel">Messages</div> - <div class="tab-pane" id="settings" role="tabpanel">Settings</div> - </div> - </div> - </div> - <div class="embed-responsive embed-responsive-16by9"> - <iframe allowfullscreen="allowfullscreen" src="https://www.youtube.com/embed/aqz-KE-bpKQ?" class="embed-responsive-item"></iframe> - </div> - </div> - +<div id="gjs"> + </div> @@ -108,9 +30,9 @@ container: '#gjs', fromElement: true, showDevices: false, - plugins: ['grapesjs-blocks-bootstrap4'], + plugins: ['@minerva/grapesjs-blocks-bootstrap5'], pluginsOpts: { - 'grapesjs-blocks-bootstrap4': { + '@minerva/grapesjs-blocks-bootstrap5': { blocks: {}, blockCategories: {}, labels: {}, @@ -123,12 +45,10 @@ }, canvas: { styles: [ - 'https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css' + 'https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css' ], scripts: [ - 'https://code.jquery.com/jquery-3.5.1.slim.min.js', - 'https://unpkg.com/@popperjs/core@2', - 'https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js' + 'https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js' ], } }); diff --git a/package-lock.json b/package-lock.json index ff93765090569af89f092561426e44adad5c46c1..7ac61d2eeceabcf4f54305bf89407e7562f93640 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@minerva/grapesjs-blocks-bootstrap", - "version": "0.1.0", + "version": "0.1.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@minerva/grapesjs-blocks-bootstrap", - "version": "0.1.0", + "version": "0.1.6", "license": "BSD-3-Clause", "dependencies": { "npm": "^7.0.14" diff --git a/package.json b/package.json index e0dc767b38ad4dbd05ec38a214c6600a4d53f429..e2766601f308ea97ce6deedf4b61693b42b54dbe 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { - "name": "@minerva/grapesjs-blocks-bootstrap", - "version": "0.1.0", + "name": "@minerva/grapesjs-blocks-bootstrap5", + "version": "0.1.6", "description": "GrapesJS Bootstrap v5 Blocks Plugin", "main": "dist/grapesjs-blocks-bootstrap5.min.js", "scripts": { diff --git a/src/components.js b/src/components.js index 271e2d31983628ca9ebec617ec55589c0fc4782a..3306d979f0d694853fd567699b53e00e7c6936d6 100644 --- a/src/components.js +++ b/src/components.js @@ -1,3 +1,4 @@ +import List, {ListBlock} from './components/List.js'; import Collapse, {CollapseBlock} from './components/Collapse'; import Dropdown, {DropDownBlock} from './components/Dropdown'; import TabsNavigation, {TabsBlock} from "./components/tabs/TabsNavigation"; @@ -36,6 +37,7 @@ import Default from "./components/Default"; export default (editor, config = {}) => { const c = config; + const domc = editor.DomComponents; const blocks = c.blocks; const bm = editor.BlockManager; @@ -107,13 +109,13 @@ export default (editor, config = {}) => { } // Basic - /*if (blocks.list) { + if (blocks.list) { ListBlock(bm, c.labels.list) List(domc); - }*/ + } - /*if (blocks.description_list) { - }*/ + // if (blocks.description_list) { + // } } diff --git a/src/components/Container.js b/src/components/Container.js index 4eafbae1da4b96d25d554339e64b3870b8ba80de..b5d5f88f5ebf42c39c3bf3a800c086f9f02e1a7a 100644 --- a/src/components/Container.js +++ b/src/components/Container.js @@ -38,7 +38,7 @@ export default (domc) => { }) }, { isComponent(el) { - if(el && el.classList && (el.classList.contains('container') || el.classList.contains('container-fluid'))) { + if (el && el.classList && (el.classList.contains('container') || el.classList.contains('container-fluid'))) { return {type: 'container'}; } } diff --git a/src/components/List.js b/src/components/List.js index 1ee627f1ca79b63df83b81bb666edacc501083f8..d5b5c719edad28c30a185a378e819d967a49e9e5 100644 --- a/src/components/List.js +++ b/src/components/List.js @@ -2,7 +2,7 @@ export const ListBlock = (bm, label) => { bm.add('list', { label: label, category: 'Basic', - attributes: {class:'fa fa-list'}, + attributes: {class: 'fa fa-list'}, content: { type: 'list' } @@ -34,8 +34,8 @@ export default (domc) => { ].concat(defaultModel.prototype.defaults.traits) }) }, { - isComponent: function(el) { - if(el && ['UL','OL'].includes(el.tagName)) { + isComponent: function (el) { + if (el && ['UL', 'OL'].includes(el.tagName)) { return {type: 'list'}; } }