Skip to content

Instantly share code, notes, and snippets.

@arashohadi
Created November 21, 2017 10:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save arashohadi/f0cfa6464ad12d0b8c6bc6d4ea526dd7 to your computer and use it in GitHub Desktop.
Save arashohadi/f0cfa6464ad12d0b8c6bc6d4ea526dd7 to your computer and use it in GitHub Desktop.
Tailor sidebar.min.js
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){var $=window.jQuery,$win=$(window),app=window.app,cssModule,callbacks={sidebar:[],element:[]};function checkQuery(query){if(!query||!_.contains(_.keys(cssModule.stylesheets),query)){query="all"}return query}var onSidebarChange=function(setting){var settingId=setting.get("id");if(_.isEmpty(callbacks["sidebar"][settingId])){return}_.each(callbacks["sidebar"][settingId],function(callback){callback.apply(window,[setting.get("value"),setting.previous("value")])});$win.trigger("resize")};var onElementChange=function(setting,view){var elementId=view.model.get("id");var settingId=setting.get("id");if(!callbacks["element"].hasOwnProperty(settingId)||0==callbacks["element"][settingId].length){return}if(1==callbacks["element"][settingId].length){cssModule.deleteRules(elementId,settingId)}var ruleSets={};var rules;_.each(callbacks["element"][settingId],function(callback){if("function"==typeof callback){rules=callback.apply(view,[setting.get("value"),setting.previous("value"),view.model]);if(false===rules){view.model.trigger("change:atts",view.model,view.model.get("atts"))}else if(_.isArray(rules)&&rules.length>0){for(var rule in rules){if(rules.hasOwnProperty(rule)){if(!rules[rule].hasOwnProperty("selectors")||!rules[rule].hasOwnProperty("declarations")){continue}var query=checkQuery(rules[rule].media);ruleSets[query]=ruleSets[query]||{};ruleSets[query][elementId]=ruleSets[query][elementId]||[];if(_.keys(rules[rule].declarations).length>0){ruleSets[query][elementId].push({selectors:rules[rule].selectors,declarations:rules[rule].declarations,setting:rules[rule].setting||settingId})}}}cssModule.addRules(ruleSets)}}})};app.listenTo(app.channel,"sidebar:setting:change",onSidebarChange);app.listenTo(app.channel,"element:setting:change",onElementChange);app.channel.on("module:css:stylesheets:ready",function(module){cssModule=module});function registerCallback(type,id,callback){if("function"===typeof callback){callbacks[type][id]=callbacks[type][id]||[];callbacks[type][id].push(callback)}}module.exports={onChange:function(id,callback){var parts=id.split(":");if(parts.length>=2&&_.contains(["sidebar","element"],parts[0])){registerCallback(parts[0],parts[1],callback)}}}},{}],2:[function(require,module,exports){var DraggableBehaviors=Marionette.Behavior.extend({events:{dragstart:"onDragStart",dragend:"onDragEnd",drag:"onDrag"},onDragStart:function(e){app.channel.trigger("canvas:dragstart",e.originalEvent,this.view)},onDrag:function(e){app.channel.trigger("canvas:drag",e.originalEvent,this.view)},onDragEnd:function(e){app.channel.trigger("canvas:dragend",e.originalEvent,this.view)}});module.exports=DraggableBehaviors},{}],3:[function(require,module,exports){var $=jQuery,Ajax;Ajax={url:window.ajaxurl,post:function(action,data){return ajax.send({data:_.isObject(action)?action:_.extend(data||{},{action:action})})},send:function(action,options){if(_.isObject(action)){options=action}else{options=options||{};options.data=_.extend(options.data||{},{action:action,tailor:1})}options=_.defaults(options||{},{type:"POST",url:ajax.url,context:this});return $.Deferred(function(deferred){if(options.success){deferred.done(options.success)}var onError=options.error?options.error:ajax.onError;deferred.fail(onError);delete options.success;delete options.error;$.ajax(options).done(function(response){if(response==="1"||response===1){response={success:true}}if(_.isObject(response)&&!_.isUndefined(response.success)){deferred[response.success?"resolveWith":"rejectWith"](this,[response.data])}else{deferred.rejectWith(this,[response])}}).fail(function(){deferred.rejectWith(this,arguments)})}).promise()},onError:function(response){if(!Tailor.Notify){console.error(response);return}if(response&&response.hasOwnProperty("message")){Tailor.Notify(response.message)}else if("0"==response){Tailor.Notify(window._l10n.expired)}else if("-1"==response){Tailor.Notify(window._l10n.invalid)}else{Tailor.Notify(window._l10n.error)}}};window.ajax=Ajax;module.exports=Ajax},{}],4:[function(require,module,exports){var Notification;require("./polyfills/transitions");Notification=function(options){this.options=_.extend({},this.defaults,options);this.el=document.createElement("div");this.el.className="notification notification--"+this.options.type;this.container=document.getElementById("tailor-notification-container")||document.body;this.initialize()};Notification.prototype={defaults:{message:"",type:"",ttl:3e3,onShow:function(){},onHide:function(){}},initialize:function(){this.el.innerHTML=this.options.message;this.container.insertBefore(this.el,this.container.firstChild)},show:function(){var notification=this;notification.el.classList.add("is-visible");if("function"==typeof notification.options.onShow){notification.options.onShow.call(notification)}notification.session=setTimeout(function(){notification.hide()},notification.options.ttl)},hide:function(){var obj=this;var onTransitionEnd=function(e){if(Modernizr.cssanimations){if(e.target!==obj.el){return false}obj.el.removeEventListener(window.transitionEndName,onTransitionEnd)}obj.container.removeChild(obj.el);if("function"==typeof obj.options.onShow){obj.options.onShow.call(obj)}};clearTimeout(obj.session);if(Modernizr.csstransitions){obj.el.addEventListener(window.transitionEndName,onTransitionEnd);obj.el.classList.remove("is-visible")}else{onTransitionEnd()}}};var notify=function(msg,type){var notification=new Notification({message:msg,type:type||"error"});notification.show()};module.exports=notify},{"./polyfills/transitions":7}],5:[function(require,module,exports){(function(){if("undefined"===typeof window.Element||"classList"in document.documentElement){return}var prototype=Array.prototype,push=prototype.push,splice=prototype.splice,join=prototype.join;function DOMTokenList(el){this.el=el;var classes=el.className.replace(/^\s+|\s+$/g,"").split(/\s+/);for(var i=0;i<classes.length;i++){push.call(this,classes[i])}}DOMTokenList.prototype={add:function(token){if(this.contains(token)){return}push.call(this,token);this.el.className=this.toString()},contains:function(token){return this.el.className.indexOf(token)!=-1},item:function(index){return this[index]||null},remove:function(token){if(!this.contains(token)){return}for(var i=0;i<this.length;i++){if(this[i]==token){break}}splice.call(this,i,1);this.el.className=this.toString()},toString:function(){return join.call(this," ")},toggle:function(token){if(!this.contains(token)){this.add(token)}else{this.remove(token)}return this.contains(token)}};window.DOMTokenList=DOMTokenList;function defineElementGetter(obj,prop,getter){if(Object.defineProperty){Object.defineProperty(obj,prop,{get:getter})}else{obj.__defineGetter__(prop,getter)}}defineElementGetter(Element.prototype,"classList",function(){return new DOMTokenList(this)})})()},{}],6:[function(require,module,exports){(function(window){"use strict";var lastTime=0,vendors=["ms","moz","webkit","o"];for(var x=0;x<vendors.length&&!window.requestAnimationFrame;++x){window.requestAnimationFrame=window[vendors[x]+"RequestAnimationFrame"];window.cancelAnimationFrame=window[vendors[x]+"CancelAnimationFrame"]||window[vendors[x]+"CancelRequestAnimationFrame"]}if(!window.requestAnimationFrame){window.requestAnimationFrame=function(callback,el){var currTime=(new Date).getTime();var timeToCall=Math.max(0,16-(currTime-lastTime));var id=window.setTimeout(function(){callback(currTime+timeToCall)},timeToCall);lastTime=currTime+timeToCall;return id}}if(!window.cancelAnimationFrame){window.cancelAnimationFrame=function(id){clearTimeout(id)}}})(window)},{}],7:[function(require,module,exports){(function(window){"use strict";var el=document.createElement("fakeelement");function getAnimationEvent(){var t,animations={animation:"animationend",OAnimation:"oAnimationEnd",MozAnimation:"animationend",WebkitAnimation:"webkitAnimationEnd"};for(t in animations){if(animations.hasOwnProperty(t)&&"undefined"!==typeof el.style[t]){return animations[t]}}return false}function getTransitionEvent(){var t,transitions={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(t in transitions){if(transitions.hasOwnProperty(t)&&"undefined"!==typeof el.style[t]){return transitions[t]}}return false}window.animationEndName=getAnimationEvent();window.transitionEndName=getTransitionEvent()})(window)},{}],8:[function(require,module,exports){(function(window,$){"use strict";var $doc=$(document);var $win=$(window);require("./shared/utility/polyfills/classlist");require("./shared/utility/polyfills/raf");require("./shared/utility/polyfills/transitions");require("./shared/utility/ajax");Marionette.Behaviors.behaviorsLookup=function(){return{Resizable:require("./sidebar/components/behaviors/resizable"),Panel:require("./sidebar/components/behaviors/panel"),Draggable:require("./shared/components/behaviors/draggable")}};var App=require("./sidebar/app");window.app=new App;window.Tailor={Api:{Setting:require("./shared/components/api/setting")},Notify:require("./shared/utility/notify"),Models:{},Panels:{},Sections:{},Controls:{},Items:{},Helpers:{checkCondition:function(condition,actual,required){actual=actual||"";switch(condition){case"equals":return actual===required;case"not":if(_.isArray(required)){return-1===required.indexOf(actual)}return actual!==required;case"lessThan":return actual<parseInt(required,10);case"greaterThan":return actual>parseInt(required,10);case"contains":if(_.isString(actual)){actual=actual.split(",")}if(_.isArray(required)){var intersection=_.intersection(required,actual);return 0!==intersection.length}return-1!==_.indexOf(actual,required)}}}};wp.media.view.settings.post.id=window.post.id;app.addRegions({content:"#tailor-sidebar-content",dialog:{selector:"#tailor-dialog-container",regionClass:require("./sidebar/modules/dialog/dialog-region")},modal:{selector:"#tailor-modal-container",regionClass:require("./sidebar/modules/modal/modal-region")}});Tailor.Models.Container=require("./sidebar/entities/models/element-container");Tailor.Models.Wrapper=require("./sidebar/entities/models/element-wrapper");Tailor.Models.Section=require("./sidebar/entities/models/element-wrapper");Tailor.Models.Default=require("./sidebar/entities/models/element");Tailor.Panels.Default=require("./sidebar/components/panels/panel-default");Tailor.Panels.Empty=require("./sidebar/components/panels/panel-empty");Tailor.Sections.Default=require("./sidebar/components/sections/section-default");Tailor.Controls.ButtonGroup=require("./sidebar/components/controls/button-group");Tailor.Controls.Checkbox=require("./sidebar/components/controls/checkbox");Tailor.Controls.Code=require("./sidebar/components/controls/code");Tailor.Controls.Colorpicker=require("./sidebar/components/controls/colorpicker");Tailor.Controls.Editor=require("./sidebar/components/controls/editor");Tailor.Controls.Gallery=require("./sidebar/components/controls/gallery");Tailor.Controls.Icon=require("./sidebar/components/controls/icon");Tailor.Controls.Image=require("./sidebar/components/controls/image");Tailor.Controls.InputGroup=require("./sidebar/components/controls/input-group");Tailor.Controls.Link=require("./sidebar/components/controls/link");Tailor.Controls.List=require("./sidebar/components/controls/list");Tailor.Controls.Radio=require("./sidebar/components/controls/radio");Tailor.Controls.Range=require("./sidebar/components/controls/range");Tailor.Controls.Select=require("./sidebar/components/controls/select");Tailor.Controls.SelectMulti=require("./sidebar/components/controls/select-multi");Tailor.Controls.Style=require("./sidebar/components/controls/style");Tailor.Controls.Switch=require("./sidebar/components/controls/switch");Tailor.Controls.Text=require("./sidebar/components/controls/text");Tailor.Controls.Textarea=require("./sidebar/components/controls/textarea");Tailor.Controls.Video=require("./sidebar/components/controls/video");Tailor.Controls.WidgetForm=require("./sidebar/components/controls/widget-form");Tailor.Controls.Default=require("./sidebar/components/controls/text");Tailor.Controls.Abstract=require("./sidebar/components/controls/abstract-control");function getName(string){string=string||"";return string.replace(/_|-|tailor_/gi," ").replace(/(?: |\b)(\w)/g,function(key){return key.toUpperCase().replace(/\s+/g,"")})}Tailor.lookup=function(tag,type,object){if(!Tailor.hasOwnProperty(object)){console.error("Object type "+object+" does not exist");return}var name=getName(tag);if(Tailor[object].hasOwnProperty(name)){return Tailor[object][name]}if(type){name=getName(type);if(Tailor[object].hasOwnProperty(name)){return Tailor[object][name]}}return Tailor[object].Default};app.module("module:library",require("./sidebar/modules/library/library"));app.module("module:templates",require("./sidebar/modules/templates/templates"));app.module("module:settings",require("./sidebar/modules/settings/settings"));app.module("module:history",require("./sidebar/modules/history/history"));app.module("module:sections",require("./sidebar/modules/sections/sections"));app.module("module:panels",require("./sidebar/modules/panels/panels"));app.module("module:modal",require("./sidebar/modules/modal/modal"));app.module("module:dialog",require("./sidebar/modules/dialog/dialog"));app.module("module:notification",require("./sidebar/modules/notifications/notifications"));app.module("module:devicePreview",require("./sidebar/modules/device-preview/device-preview"));require("./sidebar/preview");app.on("before:start",function(options){$doc.on("heartbeat-send",function(e,data){data["tailor_post_id"]=window.post.id});wp.heartbeat.interval(60);wp.heartbeat.connectNow();$win.on("beforeunload.tailor",function(e){if(app.hasUnsavedChanges()){return window._l10n.confirmPage}}).on("unload.tailor",function(e){window.ajax.send("tailor_unlock_post",{data:{post_id:options.postId,nonce:options.nonces.unlockPost}})})});$(function(){app.start({postId:window.post.id,nonces:window._nonces,l10n:window._l10n||[],library:window._library||[],templates:window._templates||[],panels:window._panels||[],sections:window._sections||[],settings:window._settings||[],controls:window._controls||[]})})})(window,Backbone.$)},{"./shared/components/api/setting":1,"./shared/components/behaviors/draggable":2,"./shared/utility/ajax":3,"./shared/utility/notify":4,"./shared/utility/polyfills/classlist":5,"./shared/utility/polyfills/raf":6,"./shared/utility/polyfills/transitions":7,"./sidebar/app":9,"./sidebar/components/behaviors/panel":10,"./sidebar/components/behaviors/resizable":11,"./sidebar/components/controls/abstract-control":12,"./sidebar/components/controls/button-group":13,"./sidebar/components/controls/checkbox":14,"./sidebar/components/controls/code":15,"./sidebar/components/controls/colorpicker":16,"./sidebar/components/controls/editor":17,"./sidebar/components/controls/gallery":18,"./sidebar/components/controls/icon":19,"./sidebar/components/controls/image":20,"./sidebar/components/controls/input-group":21,"./sidebar/components/controls/link":22,"./sidebar/components/controls/list":25,"./sidebar/components/controls/radio":26,"./sidebar/components/controls/range":27,"./sidebar/components/controls/select":29,"./sidebar/components/controls/select-multi":28,"./sidebar/components/controls/style":30,"./sidebar/components/controls/switch":31,"./sidebar/components/controls/text":32,"./sidebar/components/controls/textarea":33,"./sidebar/components/controls/video":34,"./sidebar/components/controls/widget-form":35,"./sidebar/components/panels/panel-default":36,"./sidebar/components/panels/panel-empty":37,"./sidebar/components/sections/section-default":38,"./sidebar/entities/models/element":51,"./sidebar/entities/models/element-container":49,"./sidebar/entities/models/element-wrapper":50,"./sidebar/modules/device-preview/device-preview":56,"./sidebar/modules/dialog/dialog":58,"./sidebar/modules/dialog/dialog-region":57,"./sidebar/modules/history/history":60,"./sidebar/modules/library/library":62,"./sidebar/modules/modal/modal":65,"./sidebar/modules/modal/modal-region":64,"./sidebar/modules/notifications/notifications":73,"./sidebar/modules/panels/panels":74,"./sidebar/modules/sections/sections":79,"./sidebar/modules/settings/settings":81,"./sidebar/modules/templates/templates":84,"./sidebar/preview":85}],9:[function(require,module,exports){var $=Backbone.$,$doc=$(document),SidebarApplication;SidebarApplication=Marionette.Application.extend({_initialized:false,el:document.querySelector("#tailor"),onBeforeStart:function(){this._collapsed=false;this._unsavedChanges=false;this.saveButton=document.querySelector("#tailor-save");this.allowableEvents=["canvas:initialize","element:add","element:move","element:resize","navigation:reorder","element:copy","element:delete","elements:restore","template:add","history:undo","history:redo","modal:open","modal:destroy"];this.addEventListeners()},onStart:function(){this._initialized=true},hasUnsavedChanges:function(){return this._unsavedChanges},addEventListeners:function(){var sidebar=this;var events=["element:add","element:move","element:resize","navigation:reorder","element:copy","element:delete","modal:apply","template:add","sidebar:setting:change"];sidebar.listenTo(sidebar.channel,events.join(" "),function(){sidebar.saveButton.disabled=false;sidebar.saveButton.innerHTML=window._l10n.publish;sidebar._unsavedChanges=true});$("#tailor-collapse").on("click",function(){sidebar._collapsed=!sidebar._collapsed;sidebar.el.classList.toggle("is-collapsed",sidebar._collapsed);sidebar.saveButton.setAttribute("aria-expanded",!sidebar._collapsed);sidebar.triggerMethod("collapse:sidebar")});$(sidebar.saveButton).on("click",function(){sidebar.el.classList.add("is-saving");sidebar.saveButton.setAttribute("disabled",true);var models=sidebar.channel.request("canvas:elements");var settings=sidebar.channel.request("sidebar:settings");window.ajax.send("tailor_save",{data:{post_id:window.post.id,models:JSON.stringify(models.toJSON()),settings:JSON.stringify(settings.toJSON()),nonce:window._nonces.save},success:function(){sidebar.saveButton.disabled=true;sidebar.saveButton.innerHTML=window._l10n.saved;sidebar._unsavedChanges=false;sidebar.channel.trigger("sidebar:save")},error:function(response){sidebar.saveButton.disabled=false;if(response&&response.hasOwnProperty("message")){Tailor.Notify(response.message)}else if("0"==response){Tailor.Notify(window._l10n.expired)}else if("-1"==response){Tailor.Notify(window._l10n.invalid)}else{Tailor.Notify(window._l10n.error)}},complete:function(){sidebar.el.classList.remove("is-saving")}})});sidebar.listenTo(sidebar.channel,"canvas:handshake",sidebar.registerRemoteChannel);$doc.on("keydown",function(e){if(_.contains(["INPUT","SELECT","TEXTAREA"],e.target.tagName)){return}if(e.ctrlKey){if(89==e.keyCode){sidebar.channel.trigger("history:redo")}else if(90==e.keyCode){sidebar.channel.trigger("history:undo")}}else if(e.metaKey&&90==e.keyCode){if(e.shiftKey){sidebar.channel.trigger("history:redo")}else{sidebar.channel.trigger("history:undo")}}})},registerRemoteChannel:function(){var sidebarApp=this;var iFrame=this.el.querySelector("#tailor-sidebar-preview");if(window.location.origin===iFrame.contentWindow.location.origin){var remoteChannel=iFrame.contentWindow.app.channel;app.channel.reply("canvas:elements",function(){return remoteChannel.request("canvas:elements")});app.channel.reply("canvas:templates",function(){return remoteChannel.request("canvas:templates")});app.channel.reply("canvas:css",function(){return remoteChannel.request("canvas:css")});app.channel.reply("canvas:element:selected",function(){return remoteChannel.request("canvas:element:selected")});app.listenTo(remoteChannel,"all",sidebarApp.forwardRemoteEvent);app.el.classList.add("is-initialized");app.el.querySelector(".tailor-preview__viewport").classList.add("is-loaded");app.channel.trigger("sidebar:initialize",app)}},forwardRemoteEvent:function(eventName){if(_.contains(this.allowableEvents,eventName)){this.channel.trigger.apply(this.channel,arguments)}},maybeCollapse:function(e){if(13===e.keyCode){this.onCollapse()}},maybeSave:function(e){if(13===e.keyCode){this.onSave()}}});module.exports=SidebarApplication},{}],10:[function(require,module,exports){var PanelBehavior=Marionette.Behavior.extend({ui:{backButton:".back-button",helpButton:".help-button",helpDescription:".help-description",searchBar:".search"},events:{"click @ui.helpButton":"toggleHelp","change @ui.searchBar":"doSearch","input @ui.searchBar":"doSearch","keyup @ui.searchBar":"doSearch","search @ui.searchBar":"doSearch"},triggers:{"click @ui.backButton":"back"},toggleHelp:function(){this.ui.helpButton.toggleClass("is-open");this.ui.helpDescription.slideToggle(150)},doSearch:function(e){this.view.collection.doSearch(e.target.value)}});module.exports=PanelBehavior},{}],11:[function(require,module,exports){var ResizableBehavior=Marionette.Behavior.extend({ui:{handle:".modal__title"},events:{mousemove:"onMouseMove",mousedown:"onMouseDown","dblclick @ui.handle":"toggleFullScreen"},initialize:function(){this._isResizing=false;this._isResizing=false;this.$ghostPane=jQuery('<div class="ghost-pane"></div>').appendTo("body");this.addEventListeners()},addEventListeners:function(){var behavior=this;window.addEventListener("resize",function(){behavior.checkPosition()},false)},detectEdges:function(e){var rect=this.el.getBoundingClientRect();var x=e.clientX-rect.left;var y=e.clientY-rect.top;var threshold=8;var edges=[];if(y<threshold){edges.push("top")}if(y>=rect.height-threshold){edges.push("bottom")}if(x<threshold){edges.push("left")}if(x>=rect.width-threshold){edges.push("right")}return edges},onMouseMove:function(e){if(this._isResizing||this._isDragging){return}this.$el.removeClass("top top-left top-right left right bottom bottom-left bottom-right is-draggable");var edges=this.detectEdges(e);if(edges.length&&!this.container.classList.contains("is-full-screen")&&!document.body.classList.contains("mce-fullscreen")){this.$el.addClass(edges.join("-"))}else if(e.target.classList.contains("modal__title")){this.el.classList.add("is-draggable")}},onMouseDown:function(e){if(this._isResizing||this._isDragging){return}var edges=this.detectEdges(e);if(edges.length&&!this.$container.hasClass("is-full-screen")&&!document.body.classList.contains("mce-fullscreen")){this.resize(e,edges)}else if(e.target===this.ui.handle.get(0)){this.drag(e)}},resize:function(e,edges){var that=this;var edge=edges.join("-");var direction=_.contains(edges,"top")||_.contains(edges,"left")?-1:1;this._isResizing=true;document.body.classList.add("is-dragging");document.addEventListener("mousemove",onResize,false);document.addEventListener("mouseup",onResizeEnd,false);var lastX=e.pageX;var lastY=e.pageY;var lastWidth=parseInt(that.container.style.width,10);var lastHeight=parseInt(that.container.style.height,10);function onResize(e){var xDifference=direction*(e.pageX-lastX);var yDifference=direction*(e.pageY-lastY);switch(edge){case"top":lastHeight=lastHeight+yDifference;if(lastHeight>400){that.container.style.height=lastHeight+"px";that.container.style.top=parseInt(that.container.style.top,10)-yDifference+"px"}break;case"bottom":lastHeight=lastHeight+yDifference;if(lastHeight>400){that.container.style.height=lastHeight+"px"}break;case"left":lastWidth=lastWidth+xDifference;if(lastWidth>300){that.container.style.width=lastWidth+"px";that.container.style.left=parseInt(that.container.style.left,10)-xDifference+"px"}break;case"right":lastWidth=lastWidth+xDifference;if(lastWidth>300){that.container.style.width=lastWidth+"px"}break;case"top-left":lastHeight=lastHeight+yDifference;lastWidth=lastWidth+xDifference;if(lastWidth>300){that.container.style.width=lastWidth+"px";that.container.style.left=parseInt(that.container.style.left,10)-xDifference+"px"}if(lastHeight>400){that.container.style.height=lastHeight+"px";that.container.style.top=parseInt(that.container.style.top,10)-yDifference+"px"}break;case"top-right":lastHeight=lastHeight+yDifference;lastWidth=lastWidth-xDifference;if(lastWidth>300){that.container.style.width=lastWidth+"px"}if(lastHeight>400){that.container.style.height=lastHeight+"px";that.container.style.top=parseInt(that.container.style.top,10)-yDifference+"px"}break;case"bottom-left":lastHeight=lastHeight-yDifference;lastWidth=lastWidth+xDifference;if(lastWidth>300){that.container.style.width=lastWidth+"px";that.container.style.left=parseInt(that.container.style.left,10)-xDifference+"px"}if(lastHeight>400){that.container.style.height=lastHeight+"px"}break;case"bottom-right":lastHeight=lastHeight+yDifference;lastWidth=lastWidth+xDifference;if(lastWidth>300){that.container.style.width=lastWidth+"px"}if(lastHeight>400){that.container.style.height=lastHeight+"px"}break}that.triggerResize(lastWidth,lastHeight);lastY=e.pageY;lastX=e.pageX}function onResizeEnd(e){that._isResizing=false;document.body.classList.remove("is-dragging");document.removeEventListener("mousemove",onResize,false);document.removeEventListener("mouseup",onResizeEnd,false);that.checkPosition(150)}},drag:function(e){var that=this;var lastX;var lastY;this._isDragging=true;document.addEventListener("mousemove",onDrag,false);document.addEventListener("mouseup",onDragEnd,false);function onDrag(e){document.body.classList.add("is-dragging");that.container.style.top=parseInt(that.container.style.top,10)+(e.pageY-lastY)+"px";that.container.style.left=parseInt(that.container.style.left,10)+(e.pageX-lastX)+"px";if(e.pageX<5){that.$ghostPane.css({display:"block"}).addClass("left")}else if(e.pageX>window.innerWidth-5){that.$ghostPane.css({display:"block"}).addClass("right")}else if(e.pageY<5){that.$ghostPane.css({display:"block"}).addClass("top")}else{that.resetGhostPane();if(that.container.classList.contains("is-full-screen")){that.$container.removeClass("is-full-screen is-full-screen-left is-full-screen-right");that.container.style.top=e.pageY-20+"px";that.container.style.left=e.pageX-parseInt(that.container.style.width,10)/2+"px";that.triggerResize(parseInt(that.container.style.width,10),parseInt(that.container.style.height,10))}}lastX=e.pageX;lastY=e.pageY}function onDragEnd(e){that._isDragging=false;document.body.classList.remove("is-dragging");document.removeEventListener("mousemove",onDrag,false);document.removeEventListener("mouseup",onDragEnd,false);that.maybeToggleFullScreen(e)}},maybeToggleFullScreen:function(e){var position;if(e.pageY<5){position="top"}else if(e.pageX<5){position="left"}else if(e.pageX>window.innerWidth-5){position="right"}if(position){this.enterFullScreen(position)}else{this.checkPosition(150)}},toggleFullScreen:function(){if(!this.container.classList.contains("is-full-screen")){this.enterFullScreen("top")}else{this.exitFullScreen()}},enterFullScreen:function(position){this.$container.removeClass("is-full-screen is-full-screen-left is-full-screen-right");this.container.classList.add("is-full-screen");this.container.classList.add("is-full-screen-"+position);var rect=this.container.getBoundingClientRect();this.triggerResize(rect.width,rect.height)},exitFullScreen:function(){this.$container.removeClass("is-full-screen is-full-screen-left is-full-screen-right");this.triggerResize(parseInt(this.container.style.width,10),parseInt(this.container.style.height,10));this.checkPosition(150);this.resetGhostPane()},triggerResize:function(width,height){this.view.trigger("modal:resize",width,height)},resetGhostPane:function(){this.$ghostPane.css({display:"none"});this.$ghostPane[0].className="ghost-pane"},onShow:function(){this.container=this.el.parentNode;this.$container=this.$el.parent();this.checkPosition()},checkPosition:function(duration){duration=duration||0;var width=parseInt(this.container.style.width,10);var height=parseInt(this.container.style.height,10);var top=parseInt(this.container.style.top,10);var left=parseInt(this.container.style.left,10);var css={};if(top<window.scrollY){css.top=window.scrollY}else if(top+height>window.scrollY+window.innerHeight){css.top=Math.max(window.scrollY+window.innerHeight-height,window.scrollY)}if(left<0){css.left=window.scrollX}else if(left+width>window.scrollX+window.innerWidth){css.left=Math.max(window.scrollX+window.innerWidth-width,window.scrollX)}if(duration){this.$container.animate(css,duration)}else{this.$container.css(css)}},onDestroy:function(){this.$ghostPane.remove()}});module.exports=ResizableBehavior},{}],12:[function(require,module,exports){var $=window.jQuery,AbstractControl;AbstractControl=Marionette.ItemView.extend({tagName:"li",media:"desktop",ui:{input:"input",mediaButton:".js-setting-group .button",defaultButton:".js-default",controlGroups:".control__body > *"},events:{"blur @ui.input":"onFieldChange","click @ui.mediaButton":"onMediaButtonChange","click @ui.defaultButton":"onDefaultButtonChange"},className:function(){return"control control--"+this.model.get("type")},getTemplate:function(){return"#tmpl-tailor-control-"+this.model.get("type")},serializeData:function(){var data=Backbone.Marionette.ItemView.prototype.serializeData.apply(this,arguments);data.values=this.getValues();data.hideDefault=this.checkDefault(data.values);data=this.addSerializedData(data);return data},addSerializedData:function(data){return data},checkDefault:function(values){var hide=true;_.each(this.getDefaults(),function(value,media){if(!_.isNull(value)&&values.hasOwnProperty(media)&&!_.isNull(values[media])&&value!==values[media]){hide=false}});return hide},initialize:function(){this.addEventListeners();this.checkDependencies()},addEventListeners:function(){_.each(this.getSettings(),function(setting){this.listenTo(setting,"change",this.onSettingChange)},this);this.listenTo(this.getSetting().collection,"change",this.checkDependencies)},checkDependencies:function(setting){setting=setting||this.getSetting();var dependencies=this.model.get("dependencies");var settingCollection=setting.collection;var visible=true;for(var id in dependencies){if(dependencies.hasOwnProperty(id)){var target=settingCollection.get(id);if(!target){continue}var condition=dependencies[id].condition;var actual=target.get("value");var required=dependencies[id].value;if(!Tailor.Helpers.checkCondition(condition,actual,required)){visible=false;break}}}this.$el.toggle(visible)},onRender:function(){this.updateControlGroups()},onMediaButtonChange:function(e){this.media=e.currentTarget.getAttribute("data-media");app.channel.trigger("sidebar:device",this.media);this.updateControlGroups()},onDefaultButtonChange:function(){this.restoreDefaults();this.render()},onFieldChange:function(){this.setValue(this.ui.input.filter('[name^="'+this.media+'"]').val())},onSettingChange:function(){this.updateDefaultButton()},updateControlGroups:function(){var media=this.media;this.ui.controlGroups.each(function(){$(this).toggleClass("is-hidden",media!=this.id)});this.ui.mediaButton.each(function(){$(this).toggleClass("active",media==this.getAttribute("data-media"))})},updateDefaultButton:function(){this.ui.defaultButton.toggleClass("is-hidden",this.checkDefault(this.getValues()))},getSettings:function(){return this.model.settings},getSetting:function(media){media=media||this.media;var settings=this.getSettings();for(var i in settings){if(settings.hasOwnProperty(i)){if(settings[i].media==media){return settings[i]}}}return false},getDefaults:function(){var defaults={};_.each(this.getSettings(),function(setting){defaults[setting.media]=setting.get("default")});return defaults},getValues:function(){var values={};_.each(this.getSettings(),function(setting){values[setting.media]=setting.get("value")||""});return values},getDefault:function(){return this.getSetting().get("default")},getValue:function(){return this.getSetting().get("value")},setValue:function(value){this.getSetting().set("value",value)},restoreDefaults:function(){_.each(this.getSettings(),function(setting){setting.set("value",setting.get("default"))})}});module.exports=AbstractControl},{}],13:[function(require,module,exports){var AbstractControl=require("./abstract-control"),ButtonGroupControl;ButtonGroupControl=AbstractControl.extend({ui:{input:".control__body .button",mediaButton:".js-setting-group .button",defaultButton:".js-default",controlGroups:".control__body > *"},events:{"click @ui.input":"onFieldChange","click @ui.mediaButton":"onMediaButtonChange","click @ui.defaultButton":"onDefaultButtonChange"},templateHelpers:{active:function(media,key){return key===this.values[media]?"active":""}},onFieldChange:function(e){this.ui.input.filter('[name^="'+this.media+'"]').removeClass("active");var button=e.currentTarget;button.classList.add("active");this.setValue(button.value)}});module.exports=ButtonGroupControl},{"./abstract-control":12}],14:[function(require,module,exports){var AbstractControl=require("./abstract-control"),CheckboxControl;CheckboxControl=AbstractControl.extend({events:{"change @ui.input":"onFieldChange","click @ui.mediaButton":"onMediaButtonChange","click @ui.defaultButton":"onDefaultButtonChange"},templateHelpers:{checked:function(media,key){var values=this.values[media].split(",");return-1!==values.indexOf(key)?"checked":""}},onFieldChange:function(e){var values=[];_.each(this.ui.input.filter('[name^="'+this.media+'"]:checked'),function(field){if(field.checked){values.push(field.value||0)}});this.setValue(values.join(","))}});module.exports=CheckboxControl},{"./abstract-control":12}],15:[function(require,module,exports){var $=window.jQuery,AbstractControl=require("./abstract-control"),CodeControl;CodeControl=AbstractControl.extend({ui:{input:"textarea",mediaButton:".js-setting-group .button",defaultButton:".js-default",controlGroups:".control__body > *"},events:{"click @ui.mediaButton":"onMediaButtonChange","click @ui.defaultButton":"onDefaultButtonChange"},addSerializedData:function(data){data.cid=this.cid;return data},onRender:function(){var control=this;var mode=control.model.get("mode");this.editors={};_.each(this.getValues(),function(value,media){var $field=control.ui.input.filter('[name^="'+media+"-"+control.cid+'"]');control.editors[media]=CodeMirror.fromTextArea($field.get(0),{mode:mode,lineNumbers:true,matchBrackets:true,continueComments:"Enter",viewportMargin:Infinity,extraKeys:{F11:function(cm){cm.setOption("fullScreen",!cm.getOption("fullScreen"))},Esc:function(cm){if(cm.getOption("fullScreen")){cm.setOption("fullScreen",false)}}}});control.editors[media].on("change",function(editor){control.setValue(editor.getValue())},this);setTimeout(function(){control.editors[media].refresh()},10)});this.updateControlGroups()},restoreDefaults:function(){_.each(this.getSettings(),function(setting,media){var value=setting.get("default")||"";setting.set("value",value)})},updateControlGroups:function(){var control=this;var media=this.media;this.ui.controlGroups.each(function(){$(this).toggleClass("is-hidden",media!=this.id)});this.ui.mediaButton.each(function(){$(this).toggleClass("active",media==this.getAttribute("data-media"))});control.editors[media].refresh()},onDestroy:function(){var control=this;_.each(this.getValues(),function(value,media){control.editors[media].off();control.editors[media].toTextArea()})}});module.exports=CodeControl},{"./abstract-control":12}],16:[function(require,module,exports){var $=window.jQuery,AbstractControl=require("./abstract-control"),ColorPickerControl;(function($){var image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAAHnlligAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNpi+P///4EDBxiAGMgCCCAGFB5AADGCRBgYDh48CCRZIJS9vT2QBAggFBkmBiSAogxFBiCAoHogAKIKAlBUYTELAiAmEtABEECk20G6BOmuIl0CIMBQ/IEMkO0myiSSraaaBhZcbkUOs0HuBwDplz5uFJ3Z4gAAAABJRU5ErkJggg==",_after='<div class="wp-picker-holder" />',_wrap='<div class="wp-picker-container" />',_button='<input type="button" class="button button-small" />',_deprecated=wpColorPickerL10n.current!==undefined;_deprecated=false;if(_deprecated){var _before='<a tabindex="0" class="wp-color-result" />'}else{var _before='<button type="button" class="button wp-color-result" aria-expanded="false"><span class="wp-color-result-text"></span></button>',_wrappingLabel="<label></label>",_wrappingLabelText='<span class="screen-reader-text"></span>'}Color.fn.toString=function(){if(this._alpha<1)return this.toCSS("rgba",this._alpha).replace(/\s+/g,"");var hex=parseInt(this._color,10).toString(16);if(this.error)return"";if(hex.length<6)hex=("00000"+hex).substr(-6);return"#"+hex};$.widget("wp.wpColorPicker",$.wp.wpColorPicker,{_create:function(){if(!$.support.iris){return}var self=this,el=self.element;$.extend(self.options,el.data());if(self.options.type==="hue"){return self._createHueOnly()}self.close=$.proxy(self.close,self);self.initialValue=el.val();el.addClass("wp-color-picker");if(_deprecated){el.hide().wrap(_wrap);self.wrap=el.parent();self.toggler=$(_before).insertBefore(el).css({backgroundColor:self.initialValue}).attr("title",wpColorPickerL10n.pick).attr("data-current",wpColorPickerL10n.current);self.pickerContainer=$(_after).insertAfter(el);self.button=$(_button).addClass("hidden")}else{if(!el.parent("label").length){el.wrap(_wrappingLabel);self.wrappingLabelText=$(_wrappingLabelText).insertBefore(el).text(wpColorPickerL10n.defaultLabel)}self.wrappingLabel=el.parent();self.wrappingLabel.wrap(_wrap);self.wrap=self.wrappingLabel.parent();self.toggler=$(_before).insertBefore(self.wrappingLabel).css({backgroundColor:self.initialValue});self.toggler.find(".wp-color-result-text").text(wpColorPickerL10n.pick);self.pickerContainer=$(_after).insertAfter(self.wrappingLabel);self.button=$(_button)}if(self.options.defaultColor){self.button.addClass("wp-picker-default").val(wpColorPickerL10n.defaultString);if(!_deprecated){self.button.attr("aria-label",wpColorPickerL10n.defaultAriaLabel)}}else{self.button.addClass("wp-picker-clear").val(wpColorPickerL10n.clear);if(!_deprecated){self.button.attr("aria-label",wpColorPickerL10n.clearAriaLabel)}}if(_deprecated){el.wrap('<span class="wp-picker-input-wrap" />').after(self.button)}else{self.wrappingLabel.wrap('<span class="wp-picker-input-wrap hidden" />').after(self.button);self.inputWrapper=el.closest(".wp-picker-input-wrap")}el.iris({target:self.pickerContainer,hide:self.options.hide,width:self.options.width,mode:self.options.mode,palettes:self.options.palettes,change:function(event,ui){if(self.options.alpha){self.toggler.css({"background-image":"url("+image+")"});if(_deprecated){self.toggler.html('<span class="color-alpha" />')}else{self.toggler.css({position:"relative"});if(self.toggler.find("span.color-alpha").length==0){self.toggler.append('<span class="color-alpha" />')}}self.toggler.find("span.color-alpha").css({width:"30px",height:"24px",position:"absolute",top:0,left:0,"border-top-left-radius":"2px","border-bottom-left-radius":"2px",background:ui.color.toString()})}else{self.toggler.css({backgroundColor:ui.color.toString()})}if($.isFunction(self.options.change)){self.options.change.call(this,event,ui)}}});el.val(self.initialValue);self._addListeners();if(!self.options.hide){self.toggler.click()}},_addListeners:function(){var self=this;self.wrap.on("click.wpcolorpicker",function(event){event.stopPropagation()});self.toggler.click(function(){if(self.toggler.hasClass("wp-picker-open")){self.close()}else{self.open()}});self.element.on("change",function(event){if($(this).val()===""||self.element.hasClass("iris-error")){if(self.options.alpha){if(_deprecated){self.toggler.removeAttr("style")}self.toggler.find("span.color-alpha").css("backgroundColor","")}else{self.toggler.css("backgroundColor","")}if($.isFunction(self.options.clear))self.options.clear.call(this,event)}});self.button.on("click",function(event){if($(this).hasClass("wp-picker-clear")){self.element.val("");if(self.options.alpha){if(_deprecated){self.toggler.removeAttr("style")}self.toggler.find("span.color-alpha").css("backgroundColor","")}else{self.toggler.css("backgroundColor","")}if($.isFunction(self.options.clear))self.options.clear.call(this,event)}else if($(this).hasClass("wp-picker-default")){self.element.val(self.options.defaultColor).change()}})}});$.widget("a8c.iris",$.a8c.iris,{_create:function(){this._super();this.options.alpha=this.element.data("rgba")||false;if(!this.element.is(":input"))this.options.alpha=false;if(typeof this.options.alpha!=="undefined"&&this.options.alpha){var self=this,el=self.element,_html='<div class="iris-strip iris-slider iris-alpha-slider"><div class="iris-slider-offset iris-slider-offset-alpha"></div></div>',aContainer=$(_html).appendTo(self.picker.find(".iris-picker-inner")),aSlider=aContainer.find(".iris-slider-offset-alpha"),controls={aContainer:aContainer,aSlider:aSlider};if(typeof el.data("custom-width")!=="undefined"){self.options.customWidth=parseInt(el.data("custom-width"))||0}else{self.options.customWidth=100}self.options.defaultWidth=el.width();if(self._color._alpha<1||self._color.toString().indexOf("rgb")!=-1)el.width(parseInt(self.options.defaultWidth+self.options.customWidth));$.each(controls,function(k,v){self.controls[k]=v});self.controls.square.css({"margin-right":"0"});var emptyWidth=self.picker.width()-self.controls.square.width()-20,stripsMargin=emptyWidth/6,stripsWidth=emptyWidth/2-stripsMargin;$.each(["aContainer","strip"],function(k,v){self.controls[v].width(stripsWidth).css({"margin-left":stripsMargin+"px"})});self._initControls();self._change()}},_initControls:function(){this._super();if(this.options.alpha){var self=this,controls=self.controls;controls.aSlider.slider({orientation:"vertical",min:0,max:100,step:1,value:parseInt(self._color._alpha*100),slide:function(event,ui){self._color._alpha=parseFloat(ui.value/100);self._change.apply(self,arguments)}})}},_change:function(){this._super();var self=this,el=self.element;if(this.options.alpha){var controls=self.controls,alpha=parseInt(self._color._alpha*100),color=self._color.toRgb(),gradient=["rgb("+color.r+","+color.g+","+color.b+") 0%","rgba("+color.r+","+color.g+","+color.b+", 0) 100%"],defaultWidth=self.options.defaultWidth,customWidth=self.options.customWidth,target=self.picker.closest(".wp-picker-container").find(".wp-color-result");controls.aContainer.css({background:"linear-gradient(to bottom, "+gradient.join(", ")+"), url("+image+")"});if(target.hasClass("wp-picker-open")){controls.aSlider.slider("value",alpha);if(self._color._alpha<1){controls.strip.attr("style",controls.strip.attr("style").replace(/rgba\(([0-9]+,)(\s+)?([0-9]+,)(\s+)?([0-9]+)(,(\s+)?[0-9\.]+)\)/g,"rgb($1$3$5)"));el.width(parseInt(defaultWidth+customWidth))}else{el.width(defaultWidth)}}}var reset=el.data("reset-alpha")||false;if(reset){self.picker.find(".iris-palette-container").on("click.palette",".iris-palette",function(){self._color._alpha=1;self.active="external";self._change()})}},_addInputListeners:function(input){var self=this,debounceTimeout=100,callback=function(event){var color=new Color(input.val()),val=input.val();input.removeClass("iris-error");if(color.error){if(val!=="")input.addClass("iris-error")}else{if(color.toString()!==self._color.toString()){if(!(event.type==="keyup"&&val.match(/^[0-9a-fA-F]{3}$/)))self._setOption("color",color.toString())}}};input.on("change",callback).on("keyup",self._debounce(callback,debounceTimeout));if(self.options.hide){input.on("focus",function(){self.show()})}}})})(jQuery);ColorPickerControl=AbstractControl.extend({addSerializedData:function(data){data.rgba=this.model.get("rgba");return data},onRender:function(){this.initWidgets();this.updateControlGroups()},onDefaultButtonChange:function(){this.restoreDefaults();this.destroyWidgets();this.render()},initWidgets:function(){var control=this;var defaults=this.getDefaults();var palettes=this.model.get("palettes");this.ui.input.each(function(){var $el=$(this);$el.wpColorPicker({palettes:palettes,defaultColor:defaults[this.name],change:function(){var color=control.ui.input.wpColorPicker("color");if("undefined"==typeof control.getValue()&&""==color){return}control.setValue($el.wpColorPicker("color"))},clear:function(){control.setValue("")}})})},destroyWidgets:function(){this.ui.input.each(function(){$(this).wpColorPicker("close")})},onBeforeDestroy:function(){this.destroyWidgets()}});module.exports=ColorPickerControl},{"./abstract-control":12}],17:[function(require,module,exports){var AbstractControl=require("./abstract-control"),EditorControl;EditorControl=AbstractControl.extend({ui:{input:"textarea",mediaButton:".js-setting-group .button",defaultButton:".js-default",controlGroups:".control__body > *"},events:{"blur @ui.input":"onFieldChange","click @ui.mediaButton":"onMediaButtonChange","click @ui.defaultButton":"restoreDefaults"},getTemplate:function(){var html=document.getElementById("tmpl-tailor-control-editor").innerHTML;return _.template(html.replace(new RegExp("tailor-editor","gi"),"<%= media %>-<%= cid %>").replace(new RegExp("tailor-value","gi"),"<%= values[ media ] %>"))},addSerializedData:function(data){data.cid=this.cid;return data},addEventListeners:function(){this.listenTo(this.getSetting().collection,"change",this.checkDependencies)},maybeRefreshEditor:function(el){if(el.contains(this.el)){_.each(this.getValues(),function(value,media){tinyMCE.execCommand("mceRemoveEditor",false,media+"-"+this.cid);tinyMCE.execCommand("mceAddEditor",false,media+"-"+this.cid)},this)}},onAttach:function(){var control=this;_.each(this.getValues(),function(value,media){var id=media+"-"+control.cid;var quickTagSettings=_.extend({},tinyMCEPreInit.qtInit["tailor-editor"],{id:id});quicktags(quickTagSettings);QTags._buttonsInit();tinyMCEPreInit.mceInit[id]=_.extend({},tinyMCEPreInit.mceInit["tailor-editor"],{id:id,resize:"vertical",height:350,setup:function(ed){ed.on("change",function(){ed.save();control.setValue(ed.getContent())})}});switchEditors.go(id,"tmce");tinymce.execCommand("mceAddEditor",true,id)},this)},restoreDefaults:function(){_.each(this.getSettings(),function(setting){var value=setting.get("default")||"";setting.set("value",value);var editor=tinyMCE.get(setting.media+"-"+this.cid);editor.setContent(value)},this)},onDestroy:function(){_.each(this.getValues(),function(value,media){tinyMCE.execCommand("mceRemoveEditor",true,media+"-"+this.cid)},this)}});module.exports=EditorControl},{"./abstract-control":12}],18:[function(require,module,exports){var AbstractControl=require("./abstract-control"),GalleryControl;GalleryControl=AbstractControl.extend({ui:{select:".button--select",change:".button--change",remove:".button--remove",thumbnails:".thumbnails",mediaButton:".js-setting-group .button",defaultButton:".js-default",controlGroups:".control__body > *"},events:{"click @ui.select":"selectImages","click @ui.change":"selectImages","click @ui.remove":"removeImages","click @ui.thumbnails":"selectImages","click @ui.mediaButton":"onMediaButtonChange","click @ui.defaultButton":"onDefaultButtonChange"},addSerializedData:function(data){data.ids={};_.each(data.values,function(value,media){data.ids[media]=this.getIds(value)},this);return data},selectImages:function(){_.each(this.getValues(),function(value,media){if(media==this.media){var control=this;var ids=control.getIds(value);var selection=this.getSelection(ids);var frame=wp.media({frame:"post",state:ids.length?"gallery-edit":"gallery-library",editing:true,multiple:true,selection:selection});var library;frame.on("open",function(){var mediaFrame=frame.views.get(".media-frame-menu")[0];mediaFrame.$el.children().slice(0,2).hide();library=JSON.stringify(selection.toJSON())}).on("update",function(collection){var value=collection.pluck("id").join(",");control.setValue(value);if(!_.isEqual(library,JSON.stringify(collection.toJSON()))){var setting=control.getSetting(media);setting.trigger("change",setting,value)}}).on("close",function(){frame.dispose()});frame.open()}},this)},getIds:function(value){if(_.isEmpty(value)){return false}return value.split(",")},removeImages:function(){this.setValue("")},onSettingChange:function(){this.render()},onRender:function(){var control=this;_.each(this.getValues(),function(value,media){var selection=this.getSelection(control.getIds(value));selection.more().done(function(){selection.props.set({query:false});selection.unmirror();selection.props.unset("orderby");control.updateThumbnails(selection,media)})},this);this.updateControlGroups()},updateThumbnails:function(selection,media){var html="";var urls=selection.map(function(attachment){var sizes=attachment.get("sizes");var url;if(sizes.hasOwnProperty("medium")){url=sizes.medium.url}else if(sizes.hasOwnProperty("thumbnail")){url=sizes.thumbnail.url}else if(sizes.hasOwnProperty("full")){url=sizes.full.url}else{url=""}return url});if(urls.length){_.each(urls,function(url){html+='<li class="thumbnail"><img src="'+url+'"/></li>'})}this.ui.controlGroups.filter('[id^="'+media+'"]').find(".thumbnails").removeClass("is-loading").html(html)},getSelection:function(ids){var attachments=wp.media.query({orderby:"post__in",order:"ASC",type:"image",post__in:ids});return new wp.media.model.Selection(attachments.models,{props:attachments.props.toJSON(),multiple:true})}});module.exports=GalleryControl},{"./abstract-control":12}],19:[function(require,module,exports){var $=Backbone.$,AbstractControl=require("./abstract-control"),IconControl;IconControl=AbstractControl.extend({ui:{select:".button--select",change:".button--change",remove:".button--remove",icon:"i",mediaButton:".js-setting-group .button",defaultButton:".js-default",controlGroups:".control__body > *"},events:{"click @ui.select":"openDialog","click @ui.change":"openDialog","click @ui.remove":"removeIcon","click @ui.icon":"openDialog","click @ui.mediaButton":"onMediaButtonChange","click @ui.defaultButton":"onDefaultButtonChange"},openDialog:function(){var control=this;var options={title:"Select Icon",button:window._l10n.select,content:function(){var kits=window._kits||{};var value=control.getValue();if(_.keys(kits).length){return _.template(document.getElementById("tmpl-tailor-control-icon-select").innerHTML)({kits:kits,value:value})}return document.getElementById("tmpl-tailor-control-icon-empty").innerHTML},onOpen:function(){var $el=this.$el;var $li=$el.find("li");var $kits=$el.find(".icon-kit");this.$el.find(".search--icon").on("input",function(e){var term=this.value.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&");term=term.replace(/ /g,")(?=.*");var match=new RegExp("^(?=.*"+term+").+","i");$li.each(function(){this.classList.toggle("is-hidden",!match.test(this.getAttribute("title")))})});this.$el.find(".select--icon").on("change",function(e){var kit=this.value;$kits.removeClass("is-hidden").filter(function(){return this.id!=kit}).addClass("is-hidden")})},onValidate:function(){return $("input[name=icon]:checked").val()},onSave:function(){control.setValue($("input[name=icon]:checked").val())},onClose:function(){this.$el.find(".search--icon").off("input")}};app.channel.trigger("dialog:open",options)},onSettingChange:function(){this.render()},removeIcon:function(){this.setValue("")}});module.exports=IconControl},{"./abstract-control":12}],20:[function(require,module,exports){var AbstractControl=require("./abstract-control"),ImageControl;ImageControl=AbstractControl.extend({ui:{select:".button--select",change:".button--change",remove:".button--remove",mediaButton:".js-setting-group .button",defaultButton:".js-default",controlGroups:".control__body > *",thumbnail:".thumbnail"},events:{"click @ui.select":"openFrame","click @ui.change":"openFrame","click @ui.remove":"removeImage","click @ui.thumbnail":"openFrame","click @ui.mediaButton":"onMediaButtonChange","click @ui.defaultButton":"onDefaultButtonChange"},initialize:function(options){this.frame=wp.media({states:[new wp.media.controller.Library({title:"Select Image",library:wp.media.query({type:["image"]}),multiple:false,date:false})]});this.addEventListeners();this.checkDependencies()},addEventListeners:function(){_.each(this.getSettings(),function(setting){this.listenTo(setting,"change",this.onSettingChange)},this);this.listenTo(this.getSetting().collection,"change",this.checkDependencies);this.frame.on("select",this.selectImage.bind(this))},openFrame:function(){this.frame.open()},selectImage:function(){var selection=this.frame.state().get("selection");var attachment=selection.first();var sizes=attachment.get("sizes");this.setValue(attachment.get("id"))},updateThumbnail:function(sizes,media){var url;if(sizes.hasOwnProperty("medium")){url=sizes.medium.url}else if(sizes.hasOwnProperty("thumbnail")){url=sizes.thumbnail.url}else if(sizes.hasOwnProperty("full")){url=sizes.full.url}else{return}this.ui.controlGroups.filter('[id^="'+media+'"]').find(".thumbnails").removeClass("is-loading").html('<li class="thumbnail"><img src="'+url+'"/></li>')},removeImage:function(){this.setValue("")},onSettingChange:function(){this.render()},onRender:function(){_.each(this.getValues(),function(value,media){if(value){var attachment=wp.media.attachment(value);var sizes=attachment.get("sizes");if(sizes){this.updateThumbnail(sizes,media)}else{var control=this;attachment.fetch({success:function(){sizes=attachment.get("sizes");control.updateThumbnail(sizes,media)}})}}},this);this.updateControlGroups()},onDestroy:function(){this.frame.off().dispose()}});module.exports=ImageControl},{"./abstract-control":12}],21:[function(require,module,exports){var AbstractControl=require("./abstract-control"),InputGroup;InputGroup=AbstractControl.extend({addSerializedData:function(data){data.choices=this.model.get("choices");data.values={};_.each(this.getValues(),function(value,media){data.values[media]={};var values=[];if(_.isString(value)){if(-1!=value.indexOf(",")){values=value.split(",")}else{values=value.split("-")}}var i=0;for(var choice in data.choices){if(data.choices.hasOwnProperty(choice)){data.values[media][choice]=values[i];i++}}});return data},onFieldChange:function(e){var fields=this.ui.input.filter('[name^="'+this.media+'"]').serializeArray();var values=_.map(fields,function(field){return field.value});this.setValue(values.join(","))}});module.exports=InputGroup},{"./abstract-control":12}],22:[function(require,module,exports){var $=Backbone.$,AbstractControl=require("./abstract-control"),LinkControl;LinkControl=AbstractControl.extend({ui:{input:"input",select:".button--select",mediaButton:".js-setting-group .button",defaultButton:".js-default",controlGroups:".control__body > *"},events:{"blur @ui.input":"onFieldChange","click @ui.select":"openDialog","click @ui.mediaButton":"onMediaButtonChange","click @ui.defaultButton":"onDefaultButtonChange"},addSerializedData:function(data){data.placeholder=this.model.get("placeholder");return data},search:function(term){var control=this;var $searchResults=this.$el.find(".search-results");if($searchResults.length){control.$el.addClass("is-searching");var options={data:{s:term,nonce:window._nonces.query},success:function(response){$searchResults.html(response)},complete:function(){control.$el.removeClass("is-searching")}};window.ajax.send("tailor_get_links",options)}},openDialog:function(){var control=this;var options={title:"Select content",button:window._l10n.select,content:function(){return'<div class="dialog__container">'+'<input class="search--content" type="search" role="search" placeholder="Search">'+'<span class="spinner"></span>'+'<div class="search-results"></div>'+"</div>"},onOpen:function(){var dialog=this;var previousTerm="";var minimumCharacters=3;var timeout;this.$el.find(".search--content").on("input",function(e){clearTimeout(timeout);var term=this.value;if(term.length>=minimumCharacters&&previousTerm!=$.trim(term)){timeout=setTimeout($.proxy(control.search,dialog,term),500)}})},onValidate:function(){return $("input[name=url]:checked").val()},onSave:function(){var url=$("input[name=url]:checked").val();control.setValue(url)},onClose:function(){this.$el.find(".search--content").off("input")}};app.channel.trigger("dialog:open",options)},onSettingChange:function(){this.render()}});module.exports=LinkControl},{"./abstract-control":12}],23:[function(require,module,exports){var EmptyListView=Marionette.ItemView.extend({template:"#tmpl-tailor-control-list-empty"});module.exports=EmptyListView},{}],24:[function(require,module,exports){var ListItemControl=Marionette.CompositeView.extend({tagName:"li",className:"list-item",ui:{title:".list-item__title",content:".list-item__content",delete:".js-delete-list-item",close:".js-close-list-item"},triggers:{"click @ui.title":"toggle","click @ui.close":"toggle","click @ui.delete":"delete"},events:{keypress:"onKeyPress"},getChildView:function(child){return Tailor.lookup(child.get("type"),false,"Controls")},childViewContainer:"#controls",template:"#tmpl-tailor-control-list-item",initialize:function(options){this.settings=options.settings;this._open=false;this.model.startTracking();this.addEventListeners()},addEventListeners:function(){this.listenTo(this.settings,"change",this.onChangeSettings);this.listenTo(app.channel,"modal:apply",this.onApplyModal);this.listenTo(app.channel,"modal:close",this.onCloseModal)},updateTitle:function(from,to){this.ui.title.find(":contains("+from+")").html(to)},onKeyPress:function(e){if(13===e.which){this.triggerMethod("toggle")}},onToggle:function(){if(this._open){this.slideUp()}else{this.slideDown()}},slideUp:function(){var control=this;control._open=false;control.ui.content.slideUp(150,function(){control.el.classList.remove("is-open")})},slideDown:function(){var control=this;control._open=true;control.ui.content.slideDown(150,function(){control.el.classList.add("is-open")})},onDelete:function(){var control=this;control.$el.slideUp(250,function(){control.triggerMethod("remove")})},onChangeSettings:function(setting){var atts=_.clone(this.model.get("atts"));var settingId=setting.get("id");var settingValue=setting.get("value");if("title"==settingId){this.updateTitle(atts.title,settingValue)}atts[settingId]=settingValue;this.model.set("atts",atts)},onApplyModal:function(){this.model.stopTracking()},onCloseModal:function(){this.model.resetAttributes()}});module.exports=ListItemControl},{}],25:[function(require,module,exports){var ListControl=Marionette.CompositeView.extend({childView:require("./list-item"),childViewContainer:"#list-items",emptyView:require("./list-empty"),className:function(){return"control control--"+this.model.get("type")},ui:{button:".js-add"},events:{"click @ui.button":"addItem"},collectionEvents:{add:"updateContent",remove:"updateContent",change:"updateContent"},childEvents:{remove:"deleteItem",toggle:"onToggleItem"},template:"#tmpl-tailor-control-list",serializeData:function(){var data=Backbone.Marionette.ItemView.prototype.serializeData.apply(this,arguments);data.childLabel=this.child.get("label").toLowerCase();return data},childViewOptions:function(model,index){var controlCollection=app.channel.request("sidebar:controls",model);var settingCollection=app.channel.request("sidebar:settings",model);var options={model:model,collection:controlCollection,settings:settingCollection};return options},initialize:function(options){this.element=options.element;this._added=[];this._deleted=[];var listItemDefinition=app.channel.request("sidebar:library",this.element.get("tag"));this.child=app.channel.request("sidebar:library",listItemDefinition.get("child"));this.addEventListeners()},addEventListeners:function(){this.listenTo(app.channel,"modal:apply",this.onApplyModal);this.listenTo(app.channel,"modal:close",this.onCloseModal)},filter:function(child,index,collection){return child.get("parent")==this.element.get("id")},onRender:function(){var listControl=this;this.sortable=Sortable.create(this.$childViewContainer.get(0),{draggable:".list-item",handle:".list-item__title",animation:250,onEnd:function(e){app.channel.trigger("list:change:order",listControl.el);listControl.updateOrder()}})},isEmpty:function(){return this.collection.getChildren(this.element).length==0},onToggleItem:function(child){this.children.each(function(childView){if(childView!==child){childView.slideUp()}},this)},onAddChild:function(child){this.children.each(function(childView){if(childView!==child){childView.slideUp()}},this)},addItem:function(){var numberChildren=this.collection.getChildren(this.element).length;var item=_.first(this.collection.create([{tag:this.child.get("tag"),parent:this.element.get("id"),order:numberChildren,atts:{title:this.child.get("label")}}],{}));this._added.push(item)},deleteItem:function(view){for(var i=0;i<this._added.length;i++){if(this._added[i]==view.model){this._added.splice(i,1)}}this.collection.remove(view.model);this._deleted.push(view.model)},onApplyModal:function(){this._deleted=[];this._added=[]},onCloseModal:function(){this.collection.add(this._deleted);this.collection.remove(this._added)},updateOrder:function(){this.children.each(function(view){view.model.set("order",view.$el.index())},this);this.collection.sort({silent:true});this.updateContent()},updateContent:function(){var shortcode=this.generateShortcode();this.model.settings[0].set("value",shortcode)},generateShortcode:function(){var obj=this;var content="";var parentId=this.element.get("id");var children=this.collection.filter(function(model){return model.get("parent")===parentId&&!obj._deleted.hasOwnProperty(model.cid)});_.each(children,function(child){content+=child.toShortcode()});return content},onBeforeDestroy:function(){this.sortable.destroy();this.collection.sort()}});module.exports=ListControl},{"./list-empty":23,"./list-item":24}],26:[function(require,module,exports){var AbstractControl=require("./abstract-control"),RadioControl;RadioControl=AbstractControl.extend({events:{"change @ui.input":"onFieldChange","click @ui.mediaButton":"onMediaButtonChange","click @ui.defaultButton":"onDefaultButtonChange"},templateHelpers:{checked:function(media,key){return this.values[media]===key?"checked":""}},onFieldChange:function(){this.setValue(this.ui.input.filter('[name^="'+this.media+'"]:checked').val())}});module.exports=RadioControl},{"./abstract-control":12}],27:[function(require,module,exports){var AbstractControl=require("./abstract-control"),RangeControl;RangeControl=AbstractControl.extend({ui:{range:"input[type=range]",input:"input[type=text]",mediaButton:".js-setting-group .button",defaultButton:".js-default",controlGroups:".control__body > *"},events:{"input @ui.range":"onFieldChange","blur @ui.input":"onFieldChange","click @ui.mediaButton":"onMediaButtonChange","click @ui.defaultButton":"onDefaultButtonChange"},templateHelpers:{inputAttrs:function(){var atts="";_.each(this.attrs,function(value,attr){atts+=attr+'="'+value+'"'});return atts}},addSerializedData:function(data){data.attrs=this.model.get("input_attrs");return data},onFieldChange:function(e){var value=e.target.value;this.ui.input.filter('[name^="'+this.media+'"]').val(value);this.ui.range.filter('[name^="'+this.media+'"]').val(value);this.setValue(value)}});module.exports=RangeControl},{"./abstract-control":12}],28:[function(require,module,exports){var AbstractControl=require("./abstract-control"),SelectMultiControl;SelectMultiControl=AbstractControl.extend({ui:{input:"select",mediaButton:".js-setting-group .button",defaultButton:".js-default",controlGroups:".control__body > *"},events:{"change @ui.input":"onFieldChange","click @ui.mediaButton":"onMediaButtonChange","click @ui.defaultButton":"onDefaultButtonChange"},templateHelpers:{selected:function(media,key){var values=this.values[media].split(",");return-1!==values.indexOf(key)?"selected":""}},onRender:function(){_.each(this.getValues(),function(value,media){var $field=this.ui.input.filter('[name^="'+media+'"]');$field.select2()},this);this.updateControlGroups()},onFieldChange:function(){var $field=this.ui.input.filter('[name^="'+this.media+'"]');var field=$field.get(0);var values=[];for(var i=0;i<field.length;i++){if(field[i].selected){values.push(field[i].value)}}this.setValue(values.join(","))},onDestroy:function(){_.each(this.getValues(),function(value,media){var $field=this.ui.input.filter('[name^="'+media+'"]');$field.select2("destroy")},this)}});module.exports=SelectMultiControl},{"./abstract-control":12}],29:[function(require,module,exports){var AbstractControl=require("./abstract-control"),SelectControl;SelectControl=AbstractControl.extend({ui:{input:"select",mediaButton:".js-setting-group .button",defaultButton:".js-default",controlGroups:".control__body > *"},events:{"change @ui.input":"onFieldChange","click @ui.mediaButton":"onMediaButtonChange","click @ui.defaultButton":"onDefaultButtonChange"},templateHelpers:{selected:function(media,key){return key===this.values[media]?"selected":""}}});module.exports=SelectControl},{"./abstract-control":12}],30:[function(require,module,exports){var $=window.jQuery,AbstractControl=require("./abstract-control"),StyleControl;StyleControl=AbstractControl.extend({linked:true,ui:{input:"input",mediaButton:".js-setting-group .button",defaultButton:".js-default",linkButton:".js-link",controlGroups:".control__body > *"},events:{"input @ui.input":"updateLinkedFields","blur @ui.input":"onFieldChange","click @ui.mediaButton":"onMediaButtonChange","click @ui.defaultButton":"onDefaultButtonChange","click @ui.linkButton":"onLinkButtonChange"},addSerializedData:function(data){data.choices=this.model.get("choices");data.values={};_.each(this.getValues(),function(value,media){data.values[media]={};var values=[];if(_.isString(value)){if(-1!=value.indexOf(",")){values=value.split(",")}else{values=value.split("-")}}var i=0;for(var choice in data.choices){if(data.choices.hasOwnProperty(choice)){data.values[media][choice]=values[i];i++}}});return data},onRender:function(){this.updateControlGroups();this.updateLinkButton()},onLinkButtonChange:function(){this.linked=!this.linked;this.updateLinkButton()},onFieldChange:function(e){var fields=this.ui.input.filter('[name^="'+this.media+'"]').serializeArray();var values=_.map(fields,function(field){return field.value});this.setValue(values.join(","))},updateLinkButton:function(){this.ui.linkButton.toggleClass("is-active",this.linked)},updateLinkedFields:function(e){if(this.linked){this.ui.input.filter('[name^="'+this.media+'"]').filter(function(i,el){return el!=e.currentTarget}).val(e.currentTarget.value)}}});module.exports=StyleControl},{"./abstract-control":12}],31:[function(require,module,exports){var AbstractControl=require("./abstract-control"),SwitchControl;SwitchControl=AbstractControl.extend({events:{"change @ui.input":"onFieldChange","click @ui.mediaButton":"onMediaButtonChange","click @ui.defaultButton":"onDefaultButtonChange"},templateHelpers:{checked:function(media){return 1==parseInt(this.values[media],10)?"checked":""}},onFieldChange:function(){var $field=this.ui.input.filter('[name^="'+this.media+'"]');this.setValue($field.get(0).checked?"1":"0")}});module.exports=SwitchControl},{"./abstract-control":12}],32:[function(require,module,exports){var AbstractControl=require("./abstract-control"),TextControl;TextControl=AbstractControl.extend({templateHelpers:{inputAttrs:function(){var atts="";_.each(this.attrs,function(value,attr){atts+=attr+'="'+value+'"'});return atts}},addSerializedData:function(data){data.attrs=this.model.get("input_attrs");return data}});module.exports=TextControl},{"./abstract-control":12}],33:[function(require,module,exports){var AbstractControl=require("./abstract-control"),TextareaControl;TextareaControl=AbstractControl.extend({ui:{input:"textarea",mediaButton:".js-setting-group .button",defaultButton:".js-default",controlGroups:".control__body > *"}});module.exports=TextareaControl},{"./abstract-control":12}],34:[function(require,module,exports){var $=Backbone.$,AbstractControl=require("./abstract-control"),VideoControl;VideoControl=AbstractControl.extend({ui:{select:".button--select",enterUrl:".button--enter",change:".button--change",remove:".button--remove",mediaButton:".js-setting-group .button",defaultButton:".js-default",controlGroups:".control__body > *"},events:{"click @ui.select":"openFrame","click @ui.enterUrl":"openDialog","click @ui.change":"openFrame","click @ui.remove":"removeVideo","click @ui.mediaButton":"onMediaButtonChange","click @ui.defaultButton":"onDefaultButtonChange"},initialize:function(options){this.frame=wp.media({states:[new wp.media.controller.Library({title:"Select Video",library:wp.media.query({type:["video"]}),multiple:false,date:false})]});this.addEventListeners();this.checkDependencies()},addEventListeners:function(){_.each(this.getSettings(),function(setting){this.listenTo(setting,"change",this.onSettingChange)},this);this.listenTo(this.getSetting().collection,"change",this.checkDependencies);this.frame.on("select",this.selectVideo.bind(this))},openFrame:function(){this.frame.open()},selectVideo:function(){var selection=this.frame.state().get("selection");var attachment=selection.first();this.setValue(attachment.get("id"))},openDialog:function(){var control=this;var options={title:"Enter URL",button:window._l10n.select,content:function(){return'<div class="dialog__container">'+'<input class="search--content" type="search" role="search">'+"</div>"},onValidate:function(){var url=$(".search--content").val();return url&&/^(ftp|http|https):\/\/[^ "]+$/.test(url)},onSave:function(){control.setValue($(".search--content").val())},onClose:function(){this.$el.find(".search--content").off("input")}};app.channel.trigger("dialog:open",options)},onSettingChange:function(){this.render()},removeVideo:function(){this.setValue("")},onRender:function(){var control=this;_.each(this.getValues(),function(value,media){if(value){var attachment=wp.media.attachment(value);if(!attachment.get("url")){attachment.fetch({success:function(){control.updatePreview(attachment,media)}})}else{control.updatePreview(attachment,media)}}},this);this.updateControlGroups()},updatePreview:function(attachment,media){var url=attachment.get("url");var mime=attachment.get("mime");this.ui.controlGroups.filter('[id^="'+media+'"]').find(".video-preview").removeClass("is-loading").html('<video controls><source src="'+url+'" type="'+mime+'"></video>')},onDestroy:function(){this.frame.dispose()}});module.exports=VideoControl},{"./abstract-control":12}],35:[function(require,module,exports){var $=window.jQuery,AbstractControl=require("./abstract-control"),WidgetFormControl;WidgetFormControl=AbstractControl.extend({ui:{},events:{"blur *":"onFieldChange","change *":"onFieldChange"},getTemplateId:function(){return"tmpl-tailor-widget-form-"+this.model.get("widget_id_base")},getTemplate:function(){var el=document.getElementById(this.getTemplateId());var template="";if(el){template=_.template(el.innerHTML)}return template},onRender:function(){var idBase=this.model.get("widget_id_base");var $el=this.$el;this.$el.find("label").addClass("control__title").each(function(){var $label=$(this);$label.html(this.innerHTML.replace(":",""))});_.each(this.getValues(),function(value,media){if(!_.isEmpty(value)){var values=JSON.parse(value);_.each(values,function(value,name){var $field=$el.find('[name="widget-'+idBase+"[__i__]["+name+']"]');if($field.length){if("checkbox"==$field[0].type||"radio"==$field[0].type){$field.attr("checked","true")}else{$field.val(value)}}})}},this)},onFieldChange:function(e){var fields=this.$el.find("input, select, radio, textarea").serializeArray();var values={};$.each(fields,function(){var matches=this.name.match(/\[(.*?)\]/g);if(matches&&2==matches.length){var name=matches[1].substring(1,matches[1].length-1);if("undefined"!=typeof values[name]){if(!values[name].push){values[name]=[values[name]]}values[name].push(this.value||"")}else{values[name]=this.value||""}}});this.setValue(JSON.stringify(values));e.preventDefault();e.stopImmediatePropagation()},onSettingChange:function(){}});module.exports=WidgetFormControl},{"./abstract-control":12}],36:[function(require,module,exports){var DefaultPanel=Marionette.CompositeView.extend({ui:{backButton:".back-button"},triggers:{"click @ui.backButton":"back:home"},behaviors:{Panel:{}},emptyView:Tailor.Panels.Empty,emptyViewOptions:function(){return{type:this.model.get("type")}},childViewContainer:"#items",getChildView:function(){return Tailor.lookup(this.model.get("type"),false,"Items")},filter:function(child,index,collection){switch(this.model.get("type")){case"library":return!_.contains(["tailor_row"],child.get("tag"))&&"child"!=child.get("type");break;case"default":return child.get("panel")===this.model.get("id");break;default:return true;break}},getTemplate:function(){var type=this.model.get("type")||"default";return"#tmpl-tailor-panel-"+type},serializeData:function(){var data=Marionette.ItemView.prototype.serializeData.apply(this,arguments);data.items=this.collection;return data},onShow:function(){this.ui.backButton.get(0).focus()}});module.exports=DefaultPanel},{}],37:[function(require,module,exports){var EmptyPanelView=Marionette.ItemView.extend({className:"empty",initialize:function(options){this.type=options.type},getTemplate:function(){var type=this.type||"default";return"#tmpl-tailor-panel-"+type+"-empty"}});module.exports=EmptyPanelView},{}],38:[function(require,module,exports){var DefaultSection=Marionette.CompositeView.extend({ui:{backButton:".back-button"},triggers:{"click @ui.backButton":"back:panel"},behaviors:{Panel:{}},emptyView:require("./section-empty"),childViewContainer:"#controls",initialize:function(options){this.panel=options.panel},getChildView:function(child){return Tailor.lookup(child.get("type"),false,"Controls")},filter:function(child,index,collection){if("default"===this.model.get("type")){return child.get("section")===this.model.get("id")}return true},getTemplate:function(){return"#tmpl-tailor-section-"+this.model.get("type")},serializeData:function(){var data=Marionette.ItemView.prototype.serializeData.apply(this,arguments);data.panel=this.panel.get("title");return data},onShow:function(){this.ui.backButton.get(0).focus()}});module.exports=DefaultSection},{"./section-empty":39}],39:[function(require,module,exports){var EmptySectionView=Marionette.ItemView.extend({className:"empty",getTemplate:function(){var type=this.model.get("type")||"default";return"#tmpl-tailor-section-"+type+"-empty"}});module.exports=EmptySectionView},{}],40:[function(require,module,exports){var ControlCollection=Backbone.Collection.extend({model:require("../models/control"),initialize:function(models,options){if(options&&options.settings){this.settings=options.settings}this.addEventListeners()},addEventListeners:function(){this.listenTo(this,"reset",this.onReset)},onReset:function(){var mediaQueries=[];for(var mediaQueryId in _media_queries){if(_media_queries.hasOwnProperty(mediaQueryId)&&""!=_media_queries[mediaQueryId].max){mediaQueries.push(mediaQueryId)}}this.each(function(model){var settingId=model.get("setting");model.settings=this.settings.filter(function(setting){var id=setting.get("id");if(id==settingId){setting.media="desktop";return true}else{var index=_.indexOf(mediaQueries,id.replace(settingId+"_",""));if(-1!==index){setting.media=mediaQueries[index];return true}}return false})},this)}});module.exports=ControlCollection},{"../models/control":48}],41:[function(require,module,exports){var SearchableCollection=require("./searchable"),LibraryCollection;LibraryCollection=SearchableCollection.extend({model:function(attrs,options){var Model=Tailor.lookup(attrs.tag,attrs.type,"Models");return new Model(attrs,options)},comparator:"label",getHaystack:function(model){return[model.get("label"),model.get("type"),model.get("description"),model.get("badge"),model.get("tag")].join(" ")}});module.exports=LibraryCollection},{"./searchable":43}],42:[function(require,module,exports){var PanelCollection=Backbone.Collection.extend({model:require("../models/panel")});module.exports=PanelCollection},{"../models/panel":52}],43:[function(require,module,exports){var $=Backbone.$,SearchableCollection;SearchableCollection=Backbone.Collection.extend({doSearch:function(value){if(this.terms===value){return}this.terms=value;if(this.terms.length>0){this.search(this.terms)}if(this.terms===""){this.each(function(item){item.set("match",true)})}},search:function(term){var match,haystack;term=term.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&");term=term.replace(/ /g,")(?=.*");match=new RegExp("^(?=.*"+term+").+","i");this.each(function(item){haystack=this.getHaystack(item);item.set("match",match.test(haystack))},this)}});module.exports=SearchableCollection},{}],44:[function(require,module,exports){var SectionCollection=Backbone.Collection.extend({model:require("../models/section")});module.exports=SectionCollection},{"../models/section":53}],45:[function(require,module,exports){var SettingCollection=Backbone.Collection.extend({model:require("../models/setting"),initialize:function(models,options){if(options&&options.element){this.element=options.element}this.addEventListeners()},addEventListeners:function(){this.listenTo(this,"reset",this.load)},load:function(){var atts=this.element.get("atts");this.each(function(model){model.set("value",atts[model.get("id")])},this)}});module.exports=SettingCollection},{"../models/setting":54}],46:[function(require,module,exports){var SnapshotCollection=Backbone.Collection.extend({maxSize:50,active:null,comparator:function(model){return-model.get("timestamp")},initialize:function(){this.addEventListeners()},addEventListeners:function(){this.listenTo(this,"add",this.checkLength);this.listenToOnce(app.channel,"canvas:initialize",function(){this.save(window._l10n.initialized)})},save:function(label){if(this.active){var activePosition=this.indexOf(this.active);if(activePosition>0){this.remove(this.slice(0,activePosition))}}var models=app.channel.request("canvas:elements");var templates=app.channel.request("canvas:templates");var css=app.channel.request("canvas:css");console.log(models,templates,css);var entry=this.add({label:label||"",elements:models?models.toJSON():[],templates:templates,css:css,time:this.getTime(),timestamp:_.now()});this.setActive(entry)},getTime:function(){var date=new Date;var hours=date.getHours();var separator=":";var suffix;if(hours>12){hours-=12;suffix=" PM"}else{suffix=" AM"}return hours+separator+("0"+date.getMinutes()).slice(-2)+separator+("0"+date.getSeconds()).slice(-2)+suffix},restore:function(timestamp){var entry=this.findWhere({timestamp:timestamp});if(!entry||entry===this.getActive()){return}this.setActive(entry);var elements=entry.get("elements");var templates=entry.get("templates");var css=entry.get("css");app.channel.trigger("elements:reset",elements,templates,css)},undo:function(){if(!this.length){return}var entry=this.at(this.indexOf(this.getActive())+1);if(entry){this.restore(entry.get("timestamp"))}},redo:function(){if(!this.length){return}if(0===this.indexOf(this.getActive())){return}var entry=this.at(this.indexOf(this.getActive())-1);if(entry){this.restore(entry.get("timestamp"))}},checkLength:function(){if(this.length>this.maxSize){this.pop()}},setActive:function(model){this.active=model;this.trigger("change:active",model)},getActive:function(){return this.active}});module.exports=SnapshotCollection},{}],47:[function(require,module,exports){var SearchableCollection=require("./searchable"),TemplateCollection;TemplateCollection=SearchableCollection.extend({model:require("../models/template"),comparator:"name",getHaystack:function(model){return[model.get("id"),model.get("label")].join(" ")}});module.exports=TemplateCollection},{"../models/template":55,"./searchable":43}],48:[function(require,module,exports){var ControlModel=Backbone.Model.extend({defaults:{id:"",label:"",description:"",type:"",choices:{},priority:0,setting:"",section:""}});module.exports=ControlModel},{}],49:[function(require,module,exports){var ContainerModel=Backbone.Model.extend({defaults:function(){return{label:"",description:"",tag:"",icon:"",sections:[],controls:[],type:"default",child:"",collection:"library"}},initialize:function(){this.addEventListeners()},addEventListeners:function(){this.listenTo(this,"element:add:top",this.insertBefore);this.listenTo(this,"element:add:bottom",this.insertAfter);this.listenTo(this,"element:add:left",this.columnBefore);this.listenTo(this,"element:add:right",this.columnAfter)},insertBefore:function(view){this.insertAtIndex(view.model,view.model.get("order"))},insertAfter:function(view){this.insertAtIndex(view.model,view.model.get("order")+1)},insertAtIndex:function(model,index){var tag="tailor_content";var children=model.collection.create([{tag:tag,atts:{}},{tag:tag,atts:{}}],{silent:true});model.collection.createContainer(this,model.get("parent"),index,children)},columnBefore:function(view){var parentId=view.model.get("parent");var tag="tailor_content";var children;if("tailor_column"==view.model.get("tag")){var column=view.model.collection.createColumn(parentId,view.model.get("order")-1);children=view.model.collection.create([{tag:tag,atts:{}},{tag:tag,atts:{}}],{silent:true});view.model.collection.createContainer(this,column.get("id"),0,children)}else{var columns=view.model.collection.createRow(parentId,view.model.get("order"));view.model.collection.insertChild(view.model,_.last(columns));children=view.model.collection.create([{tag:tag,atts:{}},{tag:tag,atts:{}}],{silent:true});view.model.collection.createContainer(this,_.first(columns).get("id"),0,children)}},columnAfter:function(view){var parentId=view.model.get("parent");var tag="tailor_content";var children;if("tailor_column"==view.model.get("tag")){var column=view.model.collection.createColumn(parentId,view.model.get("order"));children=view.model.collection.create([{tag:tag,atts:{}},{tag:tag,atts:{}}],{silent:true});view.model.collection.createContainer(this,column.get("id"),0,children)}else{var columns=view.model.collection.createRow(parentId,view.model.get("order"));view.model.collection.insertChild(view.model,_.first(columns));children=view.model.collection.create([{tag:tag,atts:{}},{tag:tag,atts:{}}],{silent:true});view.model.collection.createContainer(this,_.last(columns).get("id"),0,children)}}});module.exports=ContainerModel},{}],50:[function(require,module,exports){var WrapperModel=Backbone.Model.extend({defaults:function(){return{label:"",description:"",tag:"",icon:"",sections:[],controls:[],type:"default",child:"",collection:"library"}},initialize:function(){this.addEventListeners()},addEventListeners:function(){this.listenTo(this,"element:add:top",this.insertBefore);this.listenTo(this,"element:add:bottom",this.insertAfter);this.listenTo(this,"element:add:left",this.columnBefore);this.listenTo(this,"element:add:right",this.columnAfter);this.listenTo(this,"element:add:center",this.createChild)},insertBefore:function(view){this.insertAtIndex(view.model,view.model.get("order")-1)},insertAfter:function(view){this.insertAtIndex(view.model,view.model.get("order"))},insertAtIndex:function(model,index){model.collection.createWrapper(this.get("tag"),model.get("parent"),index)},columnBefore:function(view){var parentId=view.model.get("parent");var index=view.model.get("order")-1;var tag="tailor_content";if("tailor_column"==view.model.get("tag")){var column=view.model.collection.createColumn(parentId,index);view.model.collection.createWrapper(this.get("tag"),column.get("id"),0)}else{var columns=view.model.collection.createRow(parentId,index);view.model.collection.insertChild(view.model,_.last(columns));view.model.collection.createWrapper(this.get("tag"),_.first(columns).get("id"),0)}},columnAfter:function(view){var parentId=view.model.get("parent");var index=view.model.get("order");var tag="tailor_content";if("tailor_column"==view.model.get("tag")){var column=view.model.collection.createColumn(parentId,index);view.model.collection.createWrapper(this.get("tag"),column.get("id"),0)}else{var columns=view.model.collection.createRow(parentId,index);view.model.collection.insertChild(view.model,_.first(columns));view.model.collection.createWrapper(this.get("tag"),_.last(columns).get("id"),0)}},createChild:function(view){var parentId=view.model.get("id");var childTag=view.model.get("child");var numberChildren=view.model.collection.where({parent:parentId,tag:childTag}).length;var wrapper=view.model.collection.createWrapper(childTag,parentId,numberChildren,false);view.model.collection.createWrapper(this.get("tag"),wrapper.get("id"),0)}});module.exports=WrapperModel},{}],51:[function(require,module,exports){var ElementModel=Backbone.Model.extend({defaults:function(){return{label:"",description:"",tag:"",icon:"",sections:[],controls:[],type:"default",child:"",collection:"library"}},initialize:function(){this.addEventListeners()},addEventListeners:function(){this.listenTo(this,"element:add:top",this.insertBefore);this.listenTo(this,"element:add:bottom",this.insertAfter);this.listenTo(this,"element:add:left",this.columnBefore);this.listenTo(this,"element:add:right",this.columnAfter);this.listenTo(this,"element:add:center",this.createChild)},insertBefore:function(view){this.insertAtIndex(view.model,view.model.get("order")-1)},insertAfter:function(view){this.insertAtIndex(view.model,view.model.get("order"))},insertAtIndex:function(model,index){model.collection.create([{tag:this.get("tag"),label:this.get("label"),parent:model.get("parent"),type:this.get("type"),order:index}],{})},columnBefore:function(view){var parentId=view.model.get("parent");if("tailor_column"==view.model.get("tag")){var column=view.model.collection.createColumn(parentId,view.model.get("order")-1);view.model.collection.create([{tag:this.get("tag"),label:this.get("label"),parent:column.get("id"),type:this.get("type"),order:0}],{at:0})}else{var columns=view.model.collection.createRow(parentId,view.model.get("order"));view.model.collection.create([{tag:this.get("tag"),label:this.get("label"),parent:_.first(columns).get("id"),type:this.get("type"),order:0}],{at:0});view.model.collection.insertChild(view.model,_.last(columns))}},columnAfter:function(view){var parentId=view.model.get("parent");if("tailor_column"==view.model.get("tag")){var column=view.model.collection.createColumn(parentId,view.model.get("order"));view.model.collection.create([{tag:this.get("tag"),label:this.get("label"),parent:column.get("id"),type:this.get("type"),order:0}],{at:0})}else{var columns=view.model.collection.createRow(parentId,view.model.get("order"));view.model.collection.create([{tag:this.get("tag"),label:this.get("label"),parent:_.last(columns).get("id"),type:this.get("type"),order:0}],{at:0});view.model.collection.insertChild(view.model,_.first(columns))}},createChild:function(view){var parentId=view.model.get("id");var childTag=view.model.get("child");var numberChildren=view.model.collection.where({parent:parentId,tag:childTag}).length;var wrapper=view.model.collection.createWrapper(childTag,parentId,numberChildren,false);var child=view.model.collection.create([{tag:this.get("tag"),label:this.get("label"),parent:wrapper.get("id"),type:this.get("type"),order:0}],{at:0})}});module.exports=ElementModel},{}],52:[function(require,module,exports){var PanelModel=Backbone.Model.extend({defaults:{id:"",title:"",description:"",collection:"",priority:0}});module.exports=PanelModel},{}],53:[function(require,module,exports){var SectionModel=Backbone.Model.extend({defaults:{id:"",title:"",description:"",priority:0,panel:""}});module.exports=SectionModel},{}],54:[function(require,module,exports){var SettingModel=Backbone.Model.extend({defaults:{id:"",type:""}});module.exports=SettingModel},{}],55:[function(require,module,exports){var TemplateModel=Backbone.Model.extend({defaults:function(){return{id:this.cid,label:"",collection:"template"}},initialize:function(){this.addEventListeners()},addEventListeners:function(){this.listenTo(this,"element:add:top",this.insertBefore);this.listenTo(this,"element:add:bottom",this.insertAfter);this.listenTo(this,"element:add:left",this.columnBefore);this.listenTo(this,"element:add:right",this.columnAfter);this.listenTo(this,"element:add:center",this.createChild)},createChild:function(view){var parentId=view.model.get("id");var childTag=view.model.get("child");var numberChildren=view.model.collection.where({parent:parentId,tag:childTag}).length;var wrapper=view.model.collection.createWrapper(childTag,parentId,numberChildren,false);app.channel.trigger("template:load",this,wrapper.get("id"),0)},columnBefore:function(view){var parentId=view.model.get("parent");if("tailor_column"==view.model.get("tag")){var column=view.model.collection.createColumn(parentId,view.model.get("order")-1);app.channel.trigger("template:load",this,column.get("id"),0)}else{var columns=view.model.collection.createRow(parentId,view.model.get("order"));app.channel.trigger("template:load",this,_.first(columns).get("id"),0);view.model.collection.insertChild(view.model,_.last(columns))}},columnAfter:function(view){var parentId=view.model.get("parent");if("tailor_column"==view.model.get("tag")){var column=view.model.collection.createColumn(parentId,view.model.get("order"));app.channel.trigger("template:load",this,column.get("id"),0)}else{var columns=view.model.collection.createRow(parentId,view.model.get("order"));app.channel.trigger("template:load",this,_.last(columns).get("id"),0);view.model.collection.insertChild(view.model,_.first(columns))}},insertBefore:function(view){app.channel.trigger("template:load",this,view.model.get("parent"),view.model.get("order")-1)},insertAfter:function(view){app.channel.trigger("template:load",this,view.model.get("parent"),view.model.get("order"))}});module.exports=TemplateModel},{}],56:[function(require,module,exports){var $=window.jQuery,DevicePreviewModule;DevicePreviewModule=Marionette.Module.extend({device:"desktop",onBeforeStart:function(){var module=this;var api={getDevice:function(){return module.device}};app.channel.reply("sidebar:device",api.getDevice)},onStart:function(){var module=this;this.$buttons=$(".tailor-sidebar .devices button");this.preview=document.querySelector(".tailor-preview");this.viewport=this.preview.querySelector(".tailor-preview__viewport");this.mediaQueries=window._media_queries;this.setDevice(this.$buttons.get(0).getAttribute("data-device"));this.addEventListeners();app.channel.trigger("module:devicePreview:ready",this)},addEventListeners:function(){this.$buttons.on("click",this.onClick.bind(this));app.channel.on("sidebar:device",this.setDevice.bind(this))},onClick:function(e){this.setDevice(e.target.getAttribute("data-device"))},setDevice:function(device){this.device=device;var $button=this.$buttons.filter("[data-device='"+this.device+"']");this.$buttons.removeClass("is-active").attr("aria-pressed",false);$button.addClass("is-active").attr("aria-pressed",true);if(this.mediaQueries.hasOwnProperty(this.device)&&this.mediaQueries[this.device].max){this.viewport.style.maxWidth=this.mediaQueries[this.device].max}else{this.viewport.style.maxWidth=""}}});module.exports=DevicePreviewModule},{}],57:[function(require,module,exports){var DialogRegion=Backbone.Marionette.Region.extend({initialize:function(){this.$overlay=jQuery('<div id="overlay"></div>')},onShow:function(view,region,options){this.el.classList.add("is-visible");this.$overlay.on("click",jQuery.proxy(this.empty,this)).appendTo("body")},onEmpty:function(view,region,options){this.el.classList.remove("is-visible");this.$overlay.off().detach()}});module.exports=DialogRegion},{}],58:[function(require,module,exports){var DialogView=require("./show/dialog"),DialogModule;DialogModule=Marionette.Module.extend({onStart:function(){var api={showDialog:function(options){app.dialog.show(new DialogView(options))}};this.listenTo(app.channel,"dialog:open",api.showDialog);app.channel.trigger("module:dialog:ready",this)}});module.exports=DialogModule},{"./show/dialog":59}],59:[function(require,module,exports){var $=window.jQuery,DialogView;DialogView=Backbone.Marionette.ItemView.extend({className:"dialog",defaults:{title:"",content:"",button:""},ui:{close:".js-close",content:".dialog__content",save:".js-save"},events:{input:"onChange",change:"onChange"},triggers:{"click @ui.close":"close","click @ui.save":"save"},template:"#tmpl-tailor-dialog",serializeData:function(){return{title:this.title,content:this.content,button:this.button}},initialize:function(options){this.title=options.title||this.defaults.title;this.content=options.content||this.defaults.content;this.button=options.button||this.defaults.button;this.callbacks={validate:options.onValidate,open:options.onOpen,save:options.onSave,close:options.onClose}},onBeforeRender:function(){if("function"==typeof this.content){this.content=this.content.call(this)}},onDomRefresh:function(){if("function"===typeof this.callbacks.open){this.callbacks.open.call(this)}this.validate()},onChange:function(){this.validate()},validate:function(){if("function"===typeof this.callbacks.validate){this.ui.save.prop("disabled",!this.callbacks.validate.call(this))}},onSave:function(){if("function"===typeof this.callbacks.save){this.callbacks.save.call(this)}this.onClose()},onClose:function(){if("function"===typeof this.callbacks.close){this.callbacks.close.call(this)}this.triggerMethod("destroy")}});module.exports=DialogView},{}],60:[function(require,module,exports){var SnapshotsCollection=require("../../entities/collections/snapshots"),SnapshotMenuItem=require("./show/snapshot-menu-item"),HistoryModule;Tailor.Items.History=SnapshotMenuItem;HistoryModule=Marionette.Module.extend({onStart:function(options){var module=this;module.collection=new SnapshotsCollection;var api={getSnapshot:function(id){if(id){return module.collection.findWhere({id:id})}return module.collection}};app.channel.reply("sidebar:history",api.getSnapshot);this.l10n=options.l10n;this.addEventListeners();app.channel.trigger("module:history:ready",this)},addEventListeners:function(){this.listenTo(app.channel,"element:add",this.onAddElement);this.listenTo(app.channel,"element:copy",this.onCopyElement);this.listenTo(app.channel,"element:move",this.onMoveElement);this.listenTo(app.channel,"modal:apply",this.onEditElement);this.listenTo(app.channel,"element:delete",this.onDeleteElement);this.listenTo(app.channel,"element:resize",this.onResizeElement);this.listenTo(app.channel,"navigation:reorder",this.onReorderElement);this.listenTo(app.channel,"template:add",this.onAddTemplate);this.listenTo(app.channel,"history:restore",this.restoreSnapshot);this.listenTo(app.channel,"history:undo",this.undoStep);this.listenTo(app.channel,"history:redo",this.redoStep)},onAddElement:function(model){if("library"==model.get("collection")){this.saveSnapshot(this.l10n.added+" "+model.get("label"))}},onEditElement:function(modal,model){this.saveSnapshot(this.l10n.edited+" "+model.get("label"))},onCopyElement:function(model){this.saveSnapshot(this.l10n.copied+" "+model.get("label"))},onMoveElement:function(model){this.saveSnapshot(this.l10n.moved+" "+model.get("label"))},onDeleteElement:function(model){this.saveSnapshot(this.l10n.deleted+" "+model.get("label"))},onResizeElement:function(model){this.saveSnapshot(this.l10n.resized+" "+model.get("label"))},onReorderElement:function(model){this.saveSnapshot(this.l10n.reordered+" "+model.get("label"))},onAddTemplate:function(model){this.saveSnapshot(this.l10n.added+" "+this.l10n.template+" - "+model.get("label"))},saveSnapshot:function(label){this.collection.save(label)},restoreSnapshot:function(timestamp){this.collection.restore(timestamp)},undoStep:function(){this.collection.undo()},redoStep:function(){this.collection.redo()}});module.exports=HistoryModule},{"../../entities/collections/snapshots":46,"./show/snapshot-menu-item":61}],61:[function(require,module,exports){var $=Backbone.$,HistoryItem;HistoryItem=Marionette.ItemView.extend({events:{click:"restore",keypress:"onKeyPress"},template:"#tmpl-tailor-panel-history-item",initialize:function(){this.addEventListeners()},addEventListeners:function(){this.listenTo(this.model.collection,"change:active",this.toggleClass)},onRender:function(){this.toggleClass()},attachElContent:function(html){var $el=$(html);this.$el.replaceWith($el);this.setElement($el);this.el.setAttribute("tabindex",0);return this},onKeyPress:function(e){if(13===e.which){this.restore()}},restore:function(){var timestamp=this.model.get("timestamp");app.channel.trigger("before:history:restore",timestamp);app.channel.trigger("history:restore",timestamp)},toggleClass:function(model){model=model||this.model.collection.getActive();this.$el.toggleClass("is-active",model===this.model)}});module.exports=HistoryItem},{}],62:[function(require,module,exports){var LibraryCollection=require("../../entities/collections/library"),LibraryMenuItem=require("./show/library-menu-item"),LibraryModule;Tailor.Items.Library=LibraryMenuItem;LibraryModule=Marionette.Module.extend({onBeforeStart:function(options){var collection=new LibraryCollection(options.library);var api={getLibraryItem:function(tag){if(tag){return collection.findWhere({tag:tag})}return collection}};app.channel.reply("sidebar:library",api.getLibraryItem)},onStart:function(){app.channel.trigger("module:library:ready",this)}});module.exports=LibraryModule},{"../../entities/collections/library":41,"./show/library-menu-item":63}],63:[function(require,module,exports){var $=Backbone.$,ElementMenuItem;ElementMenuItem=Marionette.ItemView.extend({events:{click:"onClick",keypress:"onKeyPress"},modelEvents:{"change:match":"onSearch"},behaviors:{Draggable:{}},onClick:function(){var el=this.el;if(el.classList.contains("is-inactive")){return}var onAnimationEnd=function(e){el.removeEventListener(window.animationEndName,onAnimationEnd);el.classList.remove("shake")};if(Modernizr.cssanimations){el.addEventListener(window.animationEndName,onAnimationEnd);el.classList.add("shake")}Tailor.Notify(window._l10n.dragElement,"warning")},getTemplate:function(){return"#tmpl-tailor-panel-library-item"},attachElContent:function(html){var $el=$(html);this.$el.replaceWith($el);this.setElement($el);return this},onSearch:function(model){this.el.style.display=!model.get("match")?"none":"block"}});module.exports=ElementMenuItem},{}],64:[function(require,module,exports){var ModalRegion=Backbone.Marionette.Region.extend({onShow:function(view,region,options){this.el.classList.add("is-visible");var rect=this.el.getBoundingClientRect();var width=this.el.style.width?this.el.style.width:rect.width;this.el.style.width=width+"px";if(!this.el.style.height){this.el.style.height=window.innerHeight-40+"px"}if(!this.el.style.top){this.el.style.top="20px"}if(!this.el.style.left){if(document.documentElement.dir&&"rtl"==document.documentElement.dir){this.el.style.left=20+"px"}else{this.el.style.left=window.innerWidth-(rect.width+20)+"px"}}this.updateClassName(width);this.listenTo(view,"modal:resize",this.onResize)},onResize:function(width,height){this.updateClassName(width)},updateClassName:function(width){this.$el.toggleClass("is-x-small",width<480).toggleClass("is-small",481<width&&width<767).toggleClass("is-medium",768<width&&width<979).toggleClass("is-large",980<width&&width<1199).toggleClass("is-x-large",width>=1200)},onEmpty:function(view,region,options){this.el.classList.remove("is-visible");this.stopListening(view,"modal:resize",this.onResize)}});module.exports=ModalRegion},{}],65:[function(require,module,exports){var ModalView=require("./show/modal"),ModalModule;ModalModule=Marionette.Module.extend({onStart:function(){var api={openModal:function(model){if(app.modal.hasView()){if(model===app.modal.currentView.model){return}app.modal.currentView.triggerMethod("close")}app.modal.show(new ModalView({model:model}))},closeModal:function(){app.modal.empty()}};this.listenTo(app.channel,"modal:open",api.openModal);this.listenTo(app.channel,"elements:reset",api.closeModal);app.channel.trigger("module:modal:ready",this)}});module.exports=ModalModule},{"./show/modal":68}],66:[function(require,module,exports){var EmptyModalView=Marionette.ItemView.extend({className:"empty",template:"#tmpl-tailor-modal-empty"});module.exports=EmptyModalView},{}],67:[function(require,module,exports){var EmptySectionView=Marionette.ItemView.extend({className:"empty",template:"#tmpl-tailor-section-default-empty"});module.exports=EmptySectionView},{}],68:[function(require,module,exports){var SectionCollectionView=require("./sections"),NavigationView=require("./tabs"),ModalView;ModalView=Marionette.LayoutView.extend({className:"modal",ui:{close:".js-close",apply:".js-apply"},behaviors:{Resizable:{ui:{handle:".modal__title"}}},triggers:{"click @ui.close":"close","click @ui.apply":"apply"},modelEvents:{destroy:"destroy"},template:"#tmpl-tailor-modal",regions:{tabs:"#tailor-modal-tabs",sections:"#tailor-modal-sections"},initialize:function(){this.isModified=false;this.settings=app.channel.request("sidebar:settings",this.model);this.addEventListeners();app.channel.trigger("modal:initialize",this,this.model)},addEventListeners:function(){this.listenTo(this.settings,"change",this.onChange)},onRender:function(){var model=this.model;var sections=app.channel.request("sidebar:sections",model);var controls=app.channel.request("sidebar:controls",model);this.showChildView("sections",new SectionCollectionView({element:model,collection:sections,controls:controls}));if(sections.length>1){this.showChildView("tabs",new NavigationView({collection:sections}));this.el.classList.add("has-sections")}model.collection.trigger("edit",model,true)},onShow:function(){this.ui.close.focus()},onChange:function(setting){this.isModified=true;this.ui.apply.attr("disabled",false);var model=this.model;if(!model.isTracking()){model.startTracking()}var update=setting.get("refresh");var jsRefresh=update.hasOwnProperty("method")&&"js"==update["method"];if(jsRefresh&&update.hasOwnProperty("dependencies")){for(var settingId in update["dependencies"]){if(update["dependencies"].hasOwnProperty(settingId)&&_.has(update["dependencies"][settingId],"condition")&&_.has(update["dependencies"][settingId],"value")){var targetSetting=setting.collection.get(settingId);if(targetSetting&&!Tailor.Helpers.checkCondition(update["dependencies"][settingId]["condition"],targetSetting.get("value"),update["dependencies"][settingId]["value"])){jsRefresh=false;break}}}}model.set("atts",this.atts(),{silent:jsRefresh});if(jsRefresh){model.trigger("change:setting",setting,model)}app.channel.trigger("canvas:reset")},onApply:function(){this.model.stopTracking();this.model.set("atts",this.atts());app.channel.trigger("modal:apply",this,this.model);this.triggerMethod("destroy")},onClose:function(){if(this.isModified){var applyChanges=confirm(window._l10n.confirmElement);if(true===applyChanges){this.triggerMethod("apply")}else{this.model.resetAttributes()}}app.channel.trigger("modal:close",this);this.triggerMethod("destroy")},onDestroy:function(){this.model.collection.trigger("edit",this.model,false);app.channel.trigger("modal:destroy",this,this.model)},atts:function(){var atts={};this.settings.each(function(setting){var value=setting.get("value");if(null!==value){atts[setting.get("id")]=value}},this);return atts}});module.exports=ModalView},{"./sections":70,"./tabs":72}],69:[function(require,module,exports){var ControlCollectionView=Marionette.CollectionView.extend({tagName:"ul",className:"controls controls--modal",emptyView:require("./empty-section"),getChildView:function(child){return Tailor.lookup(child.get("type"),false,"Controls")},childViewOptions:function(model,index){var options={model:model};if("list"===model.get("type")){options.element=this.element;options.collection=this.element.collection}return options},filter:function(child,index,collection){return child.get("section")===this.model.get("id")},initialize:function(options){this.model=options.model;this.element=options.element;this.addEventListeners()},addEventListeners:function(){this.listenTo(this.model.collection,"select",this.onSelect)},onSelect:function(model){this.$el.toggle(model===this.model)}});module.exports=ControlCollectionView},{"./empty-section":67}],70:[function(require,module,exports){var SectionCollectionView=Marionette.CollectionView.extend({childView:require("./section"),emptyView:require("./empty-modal"),childViewOptions:function(model,index){return{model:model,element:this.element,collection:this.controls}},initialize:function(options){this.element=options.element;this.controls=options.controls}});module.exports=SectionCollectionView},{"./empty-modal":66,"./section":69}],71:[function(require,module,exports){var NavigationItemView=Marionette.ItemView.extend({tagName:"li",className:"tab",attributes:{tabindex:0},events:{click:"select",keypress:"onKeyPress"},template:"#tmpl-tailor-modal-item",select:function(){this.triggerMethod("select")},onSelect:function(){this.model.trigger("select",this.model);this.el.focus()},onKeyPress:function(e){if(13===e.which){this.select()}}});module.exports=NavigationItemView},{}],72:[function(require,module,exports){var NavigationItemView=require("./tab"),NavigationView;NavigationView=Marionette.CollectionView.extend({tagName:"ul",className:"tabs",childView:NavigationItemView,childEvents:{select:"onSelect"},onRender:function(){if(this.collection.length>0){this.children.first().triggerMethod("select")}},onSelect:function(view){this.children.each(function(child){child.$el.toggleClass("is-active",view===child)})}});module.exports=NavigationView},{"./tab":71}],73:[function(require,module,exports){var Notify=window.Tailor.Notify,NotificationsModule;NotificationsModule=Marionette.Module.extend({onStart:function(){this.addEventListeners();app.channel.trigger("module:notifications:ready",this)},addEventListeners:function(){var l10n=window._l10n;this.listenTo(app.channel,"sidebar:save",function(){Notify(l10n.savedPage,"success")});this.listenTo(app.channel,"elements:restore",function(){Notify(l10n.restoreElements,"success")});this.listenTo(app.channel,"element:delete",function(){Notify(l10n.deletedElement,"success")});this.listenTo(app.channel,"template:save",function(){Notify(l10n.savedTemplate,"success")});this.listenTo(app.channel,"template:import",function(){Notify(l10n.importedTemplate,"success")});this.listenTo(app.channel,"template:add",function(){Notify(l10n.addedTemplate,"success")});this.listenTo(app.channel,"template:delete",function(){Notify(l10n.deletedTemplate,"success")})}});module.exports=NotificationsModule},{}],74:[function(require,module,exports){var PanelCollection=require("../../entities/collections/panels"),PanelLayoutView=require("./show/layout"),PanelMenuItem=require("./show/panel-menu-item"),PanelsModule;Tailor.Items.Panels=PanelMenuItem;PanelsModule=Marionette.Module.extend({onBeforeStart:function(options){var module=this;module.collection=new PanelCollection(options.panels);var api={getPanels:function(id){if(id){return module.collection.findWhere({id:id})}return module.collection}};app.channel.reply("sidebar:panels",api.getPanels)},onStart:function(){app.content.show(new PanelLayoutView({panels:app.channel.request("sidebar:panels"),sections:app.channel.request("sidebar:sections"),controls:app.channel.request("sidebar:controls"),settings:app.channel.request("sidebar:settings")}));app.channel.trigger("module:panels:ready",this)}});module.exports=PanelsModule},{"../../entities/collections/panels":42,"./show/layout":75,"./show/panel-menu-item":76}],75:[function(require,module,exports){var PanelsView=require("./panels"),PanelLayoutView;PanelLayoutView=Marionette.LayoutView.extend({ui:{pageTitle:".back-button"},className:"tailor-sidebar__layout",regions:{panels:"#tailor-sidebar-home",panel:"#tailor-sidebar-panel",section:"#tailor-sidebar-section"},childEvents:{"show:panel":"showPanel","show:section":"showSection","back:home":"displayHome","back:panel":"displayPanel"},template:function(){return document.getElementById("tmpl-tailor-sidebar-layout").innerHTML},initialize:function(options){this.panels=options.panels;this.sections=options.sections;this.controls=options.controls;this.settings=options.settings},onRender:function(){this.showChildView("panels",new PanelsView({collection:this.panels}))},showPanel:function(view){this.displayPanel();var collection=app.channel.request("sidebar:"+view.model.get("type"));var PanelView=Tailor.lookup(view.model.get("type"),false,"Panels");this.showChildView("panel",new PanelView({model:view.model,collection:collection}))},showSection:function(view){this.el.classList.add("section-visible");this.el.classList.remove("panel-visible");var SectionView=Tailor.lookup(view.model.get("type"),false,"Sections");this.showChildView("section",new SectionView({model:view.model,collection:this.controls,panel:this.panels.findWhere({id:view.model.get("panel")})}))},displayHome:function(view){this.el.classList.remove("panel-visible");this.el.classList.remove("section-visible");if(view){view.model.trigger("focus")}},displayPanel:function(view){this.el.classList.remove("section-visible");this.el.classList.add("panel-visible");if(view){view.model.trigger("focus")}}});module.exports=PanelLayoutView},{"./panels":78}],76:[function(require,module,exports){var $=Backbone.$,PanelItem;PanelItem=Marionette.ItemView.extend({events:{click:"onClick",keypress:"onKeyPress"},modelEvents:{focus:"onFocus"},template:"#tmpl-tailor-panel-default-item",attachElContent:function(html){var $el=$(html);this.$el.replaceWith($el);this.setElement($el);this.el.setAttribute("tabindex",0);return this},onClick:function(){this.triggerMethod("show:panel")},onKeyPress:function(e){if(13===e.which){this.triggerMethod("show:panel")}},onFocus:function(){this.el.focus()}});module.exports=PanelItem},{}],77:[function(require,module,exports){var EmptyPanelView=Marionette.ItemView.extend({className:"empty",template:"#tmpl-tailor-home-empty"});module.exports=EmptyPanelView},{}],78:[function(require,module,exports){var PanelsView=Marionette.CompositeView.extend({getChildView:function(){return Tailor.lookup("panels",false,"Items")},childViewContainer:"#items",emptyView:require("./panels-empty"),behaviors:{Panel:{}},template:"#tmpl-tailor-home"});module.exports=PanelsView},{"./panels-empty":77}],79:[function(require,module,exports){var SectionCollection=require("../../entities/collections/sections"),DefaultMenuItem=require("./show/default-menu-item"),SectionsModule;Tailor.Items.Default=DefaultMenuItem;SectionsModule=Marionette.Module.extend({onBeforeStart:function(options){var module=this;module.collection={sidebar:new SectionCollection(options.sections)};var api={getSections:function(model){if(!model){return module.collection["sidebar"]}var cid=model.cid;if(!module.collection.hasOwnProperty(cid)){var itemDefinition=app.channel.request("sidebar:library",model.get("tag"));var sections=itemDefinition.get("sections")||[];module.collection[cid]=new SectionCollection(sections)}return module.collection[cid]}};app.channel.reply("sidebar:sections sidebar:default",api.getSections)},onStart:function(){app.channel.trigger("module:sections:ready",this)}});module.exports=SectionsModule},{"../../entities/collections/sections":44,"./show/default-menu-item":80}],80:[function(require,module,exports){var $=Backbone.$,DefaultItem;DefaultItem=Marionette.ItemView.extend({events:{click:"onClick",keypress:"onKeyPress"},modelEvents:{focus:"onFocus"},template:"#tmpl-tailor-panel-default-item",attachElContent:function(html){var $el=$(html);this.$el.replaceWith($el);this.setElement($el);this.el.setAttribute("tabindex",0);return this},onClick:function(){this.triggerMethod("show:section")},onKeyPress:function(e){if(13===e.which){this.triggerMethod("show:section")}},onFocus:function(){this.el.focus()}});module.exports=DefaultItem},{}],81:[function(require,module,exports){var SettingCollection=require("../../entities/collections/settings"),ControlCollection=require("../../entities/collections/controls"),SettingsModule;SettingsModule=Marionette.Module.extend({onBeforeStart:function(options){var module=this;module.settings={sidebar:new SettingCollection(options.settings)};module.controls={sidebar:new ControlCollection(options.controls,{silent:false,settings:module.settings["sidebar"]})};var api={getControls:function(model){if(!model){return module.controls["sidebar"]}var cid=model.cid;if(!module.controls.hasOwnProperty(cid)){var itemDefinition=app.channel.request("sidebar:library",model.get("tag"));var controls=itemDefinition.get("controls")||[];var settings=api.getSettings(model);module.controls[cid]=new ControlCollection(controls,{silent:false,settings:settings})}return module.controls[cid]},getSettings:function(model){if(!model){return module.settings["sidebar"]}var cid=model.cid;if(!module.settings.hasOwnProperty(cid)){var itemDefinition=app.channel.request("sidebar:library",model.get("tag"));var settings=itemDefinition.get("settings")||[];module.settings[cid]=new SettingCollection(settings,{element:model})}module.settings[cid].load();return module.settings[cid]}};app.channel.reply("sidebar:controls",api.getControls);app.channel.reply("sidebar:settings",api.getSettings);this.listenTo(module.settings["sidebar"],"change",this.onChangeSetting)},onStart:function(){app.channel.trigger("module:settings:ready",this)},onChangeSetting:function(setting){app.channel.trigger("sidebar:setting:change",setting)}});module.exports=SettingsModule},{"../../entities/collections/controls":40,"../../entities/collections/settings":45}],82:[function(require,module,exports){var $=Backbone.$,l10n=window._l10n,TemplateMenuItem;TemplateMenuItem=Marionette.ItemView.extend({ui:{delete:".js-delete-template",download:".js-download-template",preview:".js-preview-template"},events:{click:"onClick"},modelEvents:{"change:match":"onSearch"},behaviors:{Draggable:{}},onClick:function(e){switch(e.target){case this.ui.download.get(0):this.download();break;case this.ui.delete.get(0):this.delete();break;case this.ui.preview.get(0):this.preview();break;default:var el=this.el;var onAnimationEnd=function(e){el.removeEventListener(window.animationEndName,onAnimationEnd);el.classList.remove("shake")};if(Modernizr.cssanimations){el.addEventListener(window.animationEndName,onAnimationEnd);el.classList.add("shake")}Tailor.Notify(l10n.dragTemplate,"warning")}},getTemplate:function(){return"#tmpl-tailor-panel-templates-item"},attachElContent:function(html){var $el=$(html);this.$el.replaceWith($el);this.setElement($el);this.el.setAttribute("tabindex",0);return this},download:function(){var item=this;var id=item.model.get("id");window.ajax.send("tailor_load_template",{data:{template_id:id,nonce:window._nonces.loadTemplate},success:function(response){var model=item.model;var models=response.models;var label=model.get("label");id=label.replace(" ","-").toLowerCase();var json={id:id,label:label,tag:model.get("tag"),type:model.get("type"),models:models};json="data:text/json;charset=utf-8,"+encodeURIComponent(JSON.stringify(json));var a=document.getElementById("download-template");a.setAttribute("href",json);a.setAttribute("download","tailor-template-"+id+"-"+Date.now()+".json");a.click();app.channel.trigger("template:download")}})},delete:function(){var that=this;window.ajax.send("tailor_delete_template",{data:{id:that.model.get("id"),nonce:window._nonces.deleteTemplate},success:function(){that.$el.slideUp(function(){that.model.trigger("destroy",that.model)});app.channel.trigger("template:delete")}})},preview:function(){window._urls.view+=(window._urls.view.split("?")[1]?"&":"?")+"template_preview=1&template_id="+this.model.get("id");window.open(window._urls.view,"_blank");app.channel.trigger("template:preview")},onSearch:function(model){this.el.style.display=!model.get("match")?"none":"block"}});module.exports=TemplateMenuItem},{}],83:[function(require,module,exports){var l10n=window._l10n,TemplatesPanel;TemplatesPanel=Marionette.CompositeView.extend({ui:{backButton:".back-button",save:".js-save-template",import:".js-import-template",searchForm:".search-form"},events:{"click @ui.save":"save","click @ui.import":"import"},triggers:{"click @ui.backButton":"back:home"},behaviors:{Panel:{}},emptyView:Tailor.Panels.Empty,emptyViewOptions:function(){return{type:this.model.get("type")}},template:"#tmpl-tailor-panel-templates",childViewContainer:"#items",getChildView:function(){return Tailor.lookup(this.model.get("type"),false,"Items")},serializeData:function(){var data=Marionette.ItemView.prototype.serializeData.apply(this,arguments);data.items=this.collection;return data},onShow:function(){this.ui.backButton.get(0).focus();if(0===this.collection.length){this.ui.searchForm.hide()}},onAddChild:function(){this.ui.searchForm.show()},onRemoveChild:function(){if(0===this.collection.length){this.ui.searchForm.hide()}},import:function(e){var panel=this;var options={title:l10n.importTemplate,content:document.querySelector("#tmpl-tailor-dialog-import-template").innerHTML,button:l10n.import,onOpen:function(){this.el.querySelector("#import-template").focus()},onValidate:function(){var input=this.el.querySelector("#import-template");var re=/(?:\.([^.]+))?$/;return input.value&&"json"===re.exec(input.value)[1]},onSave:function(){var input=this.el.querySelector("#import-template");var file=input.files[0];if(!file||file.name.match(/.+\.json/)){var reader=new FileReader;reader.onload=function(e){var defaults={label:"",tag:"",models:[],nonce:window._nonces.saveTemplate};var data=_.extend(defaults,JSON.parse(reader.result));data.models=JSON.stringify(data.models);panel.createTemplate(data,"import")};try{reader.readAsText(file)}catch(e){}}},onClose:function(){panel.ui.import.focus()}};app.channel.trigger("dialog:open",options)},save:function(){var selected=app.channel.request("canvas:element:selected");var elements=app.channel.request("canvas:elements");var models=[];var tag;if(selected&&"function"==typeof selected.get){var getChildren=function(id){_.each(elements.where({parent:id}),function(model){models.push(model.toJSON());getChildren(model.get("id"))})};if("child"==selected.get("type")){selected=selected.collection.get(selected.get("parent"))}getChildren(selected.get("id"));selected=selected.toJSON();selected.parent="";models.push(selected);tag=selected.tag}else{models=elements.models;tag="tailor_section"}var panel=this;app.channel.trigger("dialog:open",{title:l10n.saveTemplate,content:document.querySelector("#tmpl-tailor-dialog-save-template").innerHTML,button:l10n.save,onOpen:function(){this.el.querySelector("#save-template").focus()},onValidate:function(){var input=this.el.querySelector("#save-template");return input.value.trim()},onSave:function(){var input=this.el.querySelector("#save-template");var data={label:input.value,tag:tag,models:JSON.stringify(models),nonce:window._nonces.saveTemplate};panel.createTemplate(data,"save")},onClose:function(){panel.ui.save.focus()}})},createTemplate:function(data,action){action=action||"save";var panel=this;var collection=panel.collection;panel.ui.save.prop("disabled",true);panel.ui.import.prop("disabled",true);window.ajax.send("tailor_save_template",{data:data,success:function(response){collection.add({id:response.id,label:response.label,tag:response.tag,type:response.type});app.channel.trigger("template:"+action)},complete:function(){panel.ui.save.prop("disabled",false);panel.ui.import.prop("disabled",false)}})}});module.exports=TemplatesPanel},{}],84:[function(require,module,exports){var TemplateCollection=require("../../entities/collections/templates"),TemplatesPanel=require("./show/templates-panel"),TemplateItem=require("./show/template-menu-item"),TemplatesModule;Tailor.Panels.Templates=TemplatesPanel;Tailor.Items.Templates=TemplateItem;TemplatesModule=Marionette.Module.extend({onBeforeStart:function(options){var module=this;this.collection=new TemplateCollection(options.templates);var api={getTemplates:function(){return module.collection}};app.channel.reply("sidebar:templates",api.getTemplates)},onStart:function(){app.channel.trigger("module:templates:ready",this)}});module.exports=TemplatesModule},{"../../entities/collections/templates":47,"./show/template-menu-item":82,"./show/templates-panel":83}],85:[function(require,module,exports){var $=jQuery;var title=document.querySelector(".tailor__home .title");Tailor.Api.Setting.onChange("sidebar:_post_title",function(to,from){if(title.hasChildNodes()){var children=title.childNodes;for(var i=1;i<children.length;i++){if(3==children[i].nodeType&&-1!==children[i].nodeValue.indexOf(from)){children[i].nodeValue=to}}}document.title=window._l10n.tailoring+to})},{}]},{},[8]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment