From f74791da68b25d1037502a2ad06093da29e25830 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Mon, 15 Jan 2018 00:11:54 +0100 Subject: [PATCH] Bump v0.13.5 --- dist/grapes.js | 5546 +++++++++++++++++++++++--------------------- dist/grapes.min.js | 6 +- package-lock.json | 2 +- package.json | 7 +- webpack.config.js | 2 +- 5 files changed, 2956 insertions(+), 2607 deletions(-) diff --git a/dist/grapes.js b/dist/grapes.js index 0b303ebb5e..8cb6af7ba7 100644 --- a/dist/grapes.js +++ b/dist/grapes.js @@ -3566,7 +3566,7 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// Underscor Object.defineProperty(exports, "__esModule", { value: true }); -exports.getUnitFromValue = exports.normalizeFloat = exports.shallowDiff = exports.camelCase = exports.matches = exports.upFirst = exports.off = exports.on = undefined; +exports.getUnitFromValue = exports.normalizeFloat = exports.shallowDiff = exports.camelCase = exports.matches = exports.upFirst = exports.hasDnd = exports.off = exports.on = undefined; var _underscore = __webpack_require__(1); @@ -3673,8 +3673,13 @@ var normalizeFloat = function normalizeFloat(value) { return stepDecimals ? parseFloat(value.toFixed(stepDecimals)) : value; }; +var hasDnd = function hasDnd(em) { + return 'draggable' in document.createElement('i') && (em ? em.get('Config').nativeDnD : 1); +}; + exports.on = on; exports.off = off; +exports.hasDnd = hasDnd; exports.upFirst = upFirst; exports.matches = matches; exports.camelCase = camelCase; @@ -3885,7 +3890,7 @@ module.exports = Backbone.View.extend({ * @private * */ getClasses: function getClasses() { - var attr = this.model.get("attributes"), + var attr = this.model.get('attributes'), classes = attr['class'] || []; classes = (0, _underscore.isArray)(classes) ? classes : [classes]; @@ -4065,14 +4070,15 @@ var Backbone = __webpack_require__(0); var Components = __webpack_require__(49); var Selector = __webpack_require__(7); var Selectors = __webpack_require__(10); -var Traits = __webpack_require__(152); +var Traits = __webpack_require__(150); +var componentList = {}; +var componentIndex = 0; var escapeRegExp = function escapeRegExp(str) { return str.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&'); }; -module.exports = Backbone.Model.extend(_Styleable2.default).extend({ - +var Component = Backbone.Model.extend(_Styleable2.default).extend({ defaults: { // HTML tag of the component tagName: 'div', @@ -4176,16 +4182,16 @@ module.exports = Backbone.Model.extend(_Styleable2.default).extend({ propagate: '', /** - * Set an array of items to show up inside the toolbar (eg. move, clone, delete) - * when the component is selected - * toolbar: [{ - * attributes: {class: 'fa fa-arrows'}, - * command: 'tlb-move', - * },{ - * attributes: {class: 'fa fa-clone'}, - * command: 'tlb-clone', - * }] - */ + * Set an array of items to show up inside the toolbar (eg. move, clone, delete) + * when the component is selected + * toolbar: [{ + * attributes: {class: 'fa fa-arrows'}, + * command: 'tlb-move', + * },{ + * attributes: {class: 'fa fa-clone'}, + * command: 'tlb-clone', + * }] + */ toolbar: null }, @@ -4225,7 +4231,9 @@ module.exports = Backbone.Model.extend(_Styleable2.default).extend({ this.sm = em; this.em = em; this.config = opt.config || {}; + this.ccid = Component.createId(this); this.set('attributes', this.get('attributes') || {}); + this.on('destroy', this.handleRemove); this.listenTo(this, 'change:script', this.scriptUpdated); this.listenTo(this, 'change:traits', this.traitsUpdated); this.listenTo(this, 'change:tagName', this.tagUpdated); @@ -4242,6 +4250,17 @@ module.exports = Backbone.Model.extend(_Styleable2.default).extend({ }, + /** + * Triggered on model remove + * @param {Model} removed Removed model + * @private + */ + handleRemove: function handleRemove(removed) { + var em = this.em; + em && em.trigger('component:remove', removed); + }, + + /** * Check component's type * @param {string} type Component type @@ -4457,7 +4476,7 @@ module.exports = Backbone.Model.extend(_Styleable2.default).extend({ // is not visible var comps = new Components(null, this.opt); comps.parent = this; - comps.reset(this.get('components')); + !this.opt.avoidChildren && comps.reset(this.get('components')); this.set('components', comps); return this; }, @@ -4574,7 +4593,8 @@ module.exports = Backbone.Model.extend(_Styleable2.default).extend({ } if (model.get('draggable')) { tb.push({ - attributes: { class: 'fa fa-arrows' }, + attributes: { class: 'fa fa-arrows', draggable: true }, + //events: hasDnd(this.em) ? { dragstart: 'execCommand' } : '', command: 'tlb-move' }); } @@ -4763,11 +4783,10 @@ module.exports = Backbone.Model.extend(_Styleable2.default).extend({ var obj = Backbone.Model.prototype.toJSON.apply(this, args); var scriptStr = this.getScriptString(); + obj.attributes = this.getAttributes(); + delete obj.attributes.class; delete obj.toolbar; - - if (scriptStr) { - obj.script = scriptStr; - } + scriptStr && (obj.script = scriptStr); return obj; }, @@ -4779,7 +4798,17 @@ module.exports = Backbone.Model.extend(_Styleable2.default).extend({ */ getId: function getId() { var attrs = this.get('attributes') || {}; - return attrs.id || this.cid; + return attrs.id || this.ccid || this.cid; + }, + + + /** + * Get the DOM element of the model. This works only of the + * model is alredy rendered + * @return {HTMLElement} + */ + getEl: function getEl() { + return this.view && this.view.el; }, @@ -4825,7 +4854,6 @@ module.exports = Backbone.Model.extend(_Styleable2.default).extend({ em && em.trigger(event, this.model); } }, { - /** * Detect if the passed element is a valid component. * In case the element is valid an object abstracted @@ -4836,9 +4864,31 @@ module.exports = Backbone.Model.extend(_Styleable2.default).extend({ */ isComponent: function isComponent(el) { return { tagName: el.tagName ? el.tagName.toLowerCase() : '' }; + }, + + + /** + * Relying simply on the number of components becomes a problem when you + * store and load them back, you might hit collisions with new components + * @param {Model} model + * @return {string} + */ + createId: function createId(model) { + componentIndex++; + // Testing 1000000 components with `+ 2` returns 0 collisions + var ilen = componentIndex.toString().length + 2; + var uid = (Math.random() + 1.1).toString(36).slice(-ilen); + var nextId = 'i' + uid; + componentList[nextId] = model; + return nextId; + }, + getList: function getList() { + return componentList; } }); +module.exports = Component; + /***/ }), /* 5 */ /***/ (function(module, exports, __webpack_require__) { @@ -4871,7 +4921,7 @@ module.exports = Backbone.View.extend({ events: _defineProperty({ - 'change': 'inputValueChanged' + change: 'inputValueChanged' }, 'click [' + clearProp + ']', 'clear'), initialize: function initialize() { @@ -15013,7 +15063,6 @@ var TYPE_CLASS = 1; var TYPE_ID = 2; var Selector = Backbone.Model.extend({ - idAttribute: 'name', defaults: { @@ -15100,9 +15149,8 @@ var Backbone = __webpack_require__(0); var $ = Backbone.$; module.exports = Backbone.View.extend({ - events: { - 'change': 'onChange' + change: 'onChange' }, attributes: function attributes() { @@ -16278,7 +16326,7 @@ var Property = __webpack_require__(12); module.exports = __webpack_require__(0).Collection.extend(_TypeableCollection2.default).extend({ types: [{ id: 'stack', - model: __webpack_require__(121), + model: __webpack_require__(119), view: __webpack_require__(34), isType: function isType(value) { if (value && value.type == 'stack') { @@ -16332,8 +16380,8 @@ module.exports = __webpack_require__(0).Collection.extend(_TypeableCollection2.d } }, { id: 'slider', - model: __webpack_require__(127), - view: __webpack_require__(128), + model: __webpack_require__(125), + view: __webpack_require__(126), isType: function isType(value) { if (value && value.type == 'slider') { return value; @@ -16405,7 +16453,6 @@ module.exports = __webpack_require__(0).Collection.extend(_TypeableCollection2.d var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; module.exports = __webpack_require__(0).Model.extend({ - defaults: { name: '', property: '', @@ -16664,12 +16711,11 @@ var Backbone = __webpack_require__(0); var ComponentView = __webpack_require__(3); module.exports = ComponentView.extend({ - tagName: 'img', events: { - 'dblclick': 'openModal', - 'click': 'initResize' + dblclick: 'openModal', + click: 'initResize' }, initialize: function initialize(o) { @@ -16681,6 +16727,28 @@ module.exports = ComponentView.extend({ var config = this.config; config.modal && (this.modal = config.modal); config.am && (this.am = config.am); + this.fetchFile(); + }, + + + /** + * Fetch file if exists + */ + fetchFile: function fetchFile() { + var model = this.model; + var file = model.get('file'); + + if (file) { + var fu = this.em.get('AssetManager').FileUploader(); + fu.uploadFile({ + dataTransfer: { files: [file] } + }, function (res) { + var obj = res && res.data && res.data[0]; + var src = obj && obj.src; + src && model.set({ src: src }); + }); + model.set('file', ''); + } }, @@ -16689,7 +16757,7 @@ module.exports = ComponentView.extend({ * @private * */ updateSrc: function updateSrc() { - var src = this.model.get("src"); + var src = this.model.get('src'); var el = this.$el; el.attr('src', src); el[src ? 'removeClass' : 'addClass'](this.classEmpty); @@ -16900,7 +16968,6 @@ var Backbone = __webpack_require__(0); var $ = Backbone.$; module.exports = Input.extend({ - events: { 'change input': 'handleChange', 'change select': 'handleUnitChange', @@ -17187,7 +17254,6 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument var Component = __webpack_require__(4); module.exports = Component.extend({ - defaults: _extends({}, Component.prototype.defaults, { type: 'tbody', tagName: 'tbody', @@ -17252,7 +17318,6 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument var Component = __webpack_require__(4); module.exports = Component.extend({ - defaults: _extends({}, Component.prototype.defaults, { type: 'image', tagName: 'img', @@ -17262,7 +17327,10 @@ module.exports = Component.extend({ editable: 1, highlightable: 0, resizable: 1, - traits: ['alt'] + traits: ['alt'], + + // File to load asynchronously once the model is rendered + file: '' }), initialize: function initialize(o, opt) { @@ -17339,7 +17407,6 @@ module.exports = Component.extend({ }; } }, { - /** * Detect if the passed element is a valid component. * In case the element is valid an object abstracted @@ -17372,8 +17439,8 @@ var _underscore = __webpack_require__(1); var _mixins = __webpack_require__(2); -var ToolbarView = __webpack_require__(188); -var Toolbar = __webpack_require__(190); +var ToolbarView = __webpack_require__(187); +var Toolbar = __webpack_require__(189); var key = __webpack_require__(23); var $ = __webpack_require__(0).$; var showOffsets = void 0; @@ -17597,7 +17664,7 @@ module.exports = { var config = canvas.getConfig(); var customeLabel = config.customBadgeLabel; this.cacheEl = el; - var model = $el.data("model"); + var model = $el.data('model'); if (!model || !model.get('badgable')) return; var badge = this.getBadge(); var badgeLabel = model.getIcon() + model.getName(); @@ -17626,7 +17693,7 @@ module.exports = { var $el = $(el); var model = $el.data('model'); - if (!model || !model.get("hoverable") || model.get('status') == 'selected') { + if (!model || !model.get('hoverable') || model.get('status') == 'selected') { return; } @@ -17836,7 +17903,7 @@ module.exports = { }); var leftPos = pos.left + pos.elementWidth - pos.targetWidth; toolbarStyle.top = pos.top + unit; - toolbarStyle.left = leftPos + unit; + toolbarStyle.left = (leftPos < 0 ? 0 : leftPos) + unit; toolbarStyle.display = origDisp; }, @@ -18084,7 +18151,7 @@ module.exports = _.extend({}, SelectPosition, { var trgCollection = $trg.data('collection'); var droppable = trgModel ? trgModel.get('droppable') : 1; opt.at = index; - if (trgCollection && droppable) return trgCollection.add(component, opt);else console.warn("Invalid target position"); + if (trgCollection && droppable) return trgCollection.add(component, opt);else console.warn('Invalid target position'); }, @@ -18518,7 +18585,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _promisePolyfill = __webpack_require__(77); +var _promisePolyfill = __webpack_require__(75); var _promisePolyfill2 = _interopRequireDefault(_promisePolyfill); @@ -18565,13 +18632,11 @@ exports.default = typeof fetch == 'function' ? fetch.bind() : function (url, opt module.exports = function (config) { - var TEXT_NODE = 'span'; var c = config; var modelAttrStart = 'data-gjs-'; return { - compTypes: '', /** @@ -19654,12 +19719,12 @@ var Backbone = __webpack_require__(0); var Buttons = __webpack_require__(28); module.exports = Backbone.Model.extend({ - defaults: { id: '', content: '', visible: true, - buttons: [] + buttons: [], + attributes: {} }, initialize: function initialize(options) { @@ -19677,10 +19742,9 @@ module.exports = Backbone.Model.extend({ var Backbone = __webpack_require__(0); -var Button = __webpack_require__(111); +var Button = __webpack_require__(109); module.exports = Backbone.Collection.extend({ - model: Button, /** @@ -19789,6 +19853,9 @@ module.exports = Backbone.View.extend({ updateContent: function updateContent() { this.$el.html(this.model.get('content')); }, + attributes: function attributes() { + return this.model.get('attributes'); + }, initResize: function initResize() { var em = this.config.em; var editor = em ? em.get('Editor') : ''; @@ -19829,7 +19896,8 @@ module.exports = Backbone.View.extend({ posFetcher: function posFetcher(el) { var rect = el.getBoundingClientRect(); return { - left: 0, top: 0, + left: 0, + top: 0, width: rect.width, height: rect.height }; @@ -19866,7 +19934,7 @@ module.exports = Backbone.View.extend({ /* WEBPACK VAR INJECTION */(function(_) { var Backbone = __webpack_require__(0); -var ButtonView = __webpack_require__(113); +var ButtonView = __webpack_require__(111); module.exports = Backbone.View.extend({ initialize: function initialize(o) { @@ -19983,15 +20051,14 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument */ module.exports = function () { var c = {}, - defaults = __webpack_require__(118), - Sectors = __webpack_require__(119), + defaults = __webpack_require__(116), + Sectors = __webpack_require__(117), Properties = __webpack_require__(11), - SectorsView = __webpack_require__(130); + SectorsView = __webpack_require__(128); var properties = void 0; var sectors, SectView; return { - /** * Name of the module * @type {String} @@ -20479,7 +20546,6 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument var Property = __webpack_require__(12); module.exports = Property.extend({ - defaults: _extends({}, Property.prototype.defaults, { // 'background' is a good example where to make a difference // between detached and not @@ -20560,7 +20626,7 @@ module.exports = Property.extend({ var PropertyCompositeView = __webpack_require__(17); -var LayersView = __webpack_require__(125); +var LayersView = __webpack_require__(123); module.exports = PropertyCompositeView.extend({ templateInput: function templateInput() { @@ -20749,9 +20815,8 @@ module.exports = PropertyCompositeView.extend({ var $ = Backbone.$; module.exports = Backbone.View.extend({ - events: { - 'change': 'handleChange' + change: 'handleChange' }, template: function template() { @@ -20980,7 +21045,7 @@ module.exports = __webpack_require__(14).extend({ var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; -__webpack_require__(124); +__webpack_require__(122); var Input = __webpack_require__(35); var $ = Backbone.$; @@ -21035,7 +21100,7 @@ module.exports = Input.extend({ var colorEl = $('
'); var cpStyle = colorEl.get(0).style; var elToAppend = this.em && this.em.config ? this.em.config.el : ''; - var colorPickerConfig = this.em && this.em.getConfig && this.em.getConfig("colorPicker") || {}; + var colorPickerConfig = this.em && this.em.getConfig && this.em.getConfig('colorPicker') || {}; var getColor = function getColor(color) { var cl = color.getAlpha() == 1 ? color.toHexString() : color.toRgbString(); return cl.replace(/ /g, ''); @@ -21242,12 +21307,10 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument var Property = __webpack_require__(12); module.exports = Property.extend({ - defaults: _extends({}, Property.prototype.defaults, { // Array of options, eg. [{name: 'Label ', value: '100'}] options: [] }) - }); /***/ }), @@ -21263,7 +21326,6 @@ var Property = __webpack_require__(12); var InputNumber = __webpack_require__(18); module.exports = Property.extend({ - defaults: _extends({}, Property.prototype.defaults, { // Array of units, eg. ['px', '%'] units: [], @@ -21293,7 +21355,9 @@ module.exports = Property.extend({ parseValue: function parseValue(val) { var parsed = Property.prototype.parseValue.apply(this, arguments); - var _input$validateInputV = this.input.validateInputValue(parsed.value, { deepCheck: 1 }), + var _input$validateInputV = this.input.validateInputValue(parsed.value, { + deepCheck: 1 + }), value = _input$validateInputV.value, unit = _input$validateInputV.unit; @@ -21315,7 +21379,6 @@ module.exports = Property.extend({ module.exports = __webpack_require__(44).extend({ - events: { 'click [data-toggle=asset-remove]': 'onRemove', click: 'onClick', @@ -21465,7 +21528,6 @@ var _fetch2 = _interopRequireDefault(_fetch); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } module.exports = Backbone.View.extend({ - template: _.template('\n
\n
<%= title %>
\n multiple/>\n
\n
\n '), events: {}, @@ -21533,7 +21595,7 @@ module.exports = Backbone.View.extend({ * @param {string} text Response text * @private */ - onUploadResponse: function onUploadResponse(text) { + onUploadResponse: function onUploadResponse(text, clb) { var em = this.config.em; var config = this.config; var target = this.target; @@ -21545,6 +21607,7 @@ module.exports = Backbone.View.extend({ } this.onUploadEnd(text); + clb && clb(json); }, @@ -21554,7 +21617,7 @@ module.exports = Backbone.View.extend({ * @return {Promise} * @private * */ - uploadFile: function uploadFile(e) { + uploadFile: function uploadFile(e, clb) { var _this = this; var files = e.dataTransfer ? e.dataTransfer.files : e.target.files; @@ -21591,7 +21654,7 @@ module.exports = Backbone.View.extend({ return Promise.reject(text); }); }).then(function (text) { - return _this.onUploadResponse(text); + return _this.onUploadResponse(text, clb); }).catch(function (err) { return _this.onUploadError(err); }); @@ -21697,7 +21760,7 @@ module.exports = Backbone.View.extend({ return this; } }, { - embedAsBase64: function embedAsBase64(e) { + embedAsBase64: function embedAsBase64(e, clb) { var _this3 = this; // List files dropped @@ -21730,6 +21793,42 @@ module.exports = Backbone.View.extend({ type = file.type; } + /* + // Show local video files, http://jsfiddle.net/dsbonev/cCCZ2/embedded/result,js,html,css/ + var URL = window.URL || window.webkitURL + var file = this.files[0] + var type = file.type + var videoNode = document.createElement('video'); + var canPlay = videoNode.canPlayType(type) // can use also for 'audio' types + if (canPlay === '') canPlay = 'no' + var message = 'Can play type "' + type + '": ' + canPlay + var isError = canPlay === 'no' + displayMessage(message, isError) + if (isError) { + return + } + var fileURL = URL.createObjectURL(file) + videoNode.src = fileURL + */ + + /* + // Show local video files, http://jsfiddle.net/dsbonev/cCCZ2/embedded/result,js,html,css/ + var URL = window.URL || window.webkitURL + var file = this.files[0] + var type = file.type + var videoNode = document.createElement('video'); + var canPlay = videoNode.canPlayType(type) // can use also for 'audio' types + if (canPlay === '') canPlay = 'no' + var message = 'Can play type "' + type + '": ' + canPlay + var isError = canPlay === 'no' + displayMessage(message, isError) + if (isError) { + return + } + var fileURL = URL.createObjectURL(file) + videoNode.src = fileURL + */ + // If it's an image, try to find its size if (type === 'image') { var data = { @@ -21802,7 +21901,7 @@ module.exports = Backbone.View.extend({ Promise.all(promises).then(function (data) { response.data = data; - _this3.onUploadResponse(response); + _this3.onUploadResponse(response, clb); }, function (error) { _this3.onUploadError(error); }); @@ -21827,7 +21926,6 @@ var Backbone = __webpack_require__(0); var Selectors = __webpack_require__(10); module.exports = Backbone.Model.extend(_Styleable2.default).extend({ - defaults: { // Css selectors selectors: {}, @@ -21989,7 +22087,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de var parseStyle = (0, _ParserHtml2.default)().parseStyle; exports.default = { - parseStyle: parseStyle, /** @@ -22108,7 +22205,6 @@ exports.default = { var Backbone = __webpack_require__(0); module.exports = Backbone.View.extend({ - // Default view itemView: '', @@ -22179,7 +22275,6 @@ var Backbone = __webpack_require__(0); module.exports = Backbone.Collection.extend({ initialize: function initialize(models, opt) { - this.on('add', this.onAdd); this.config = opt && opt.config ? opt.config : null; @@ -22390,13 +22485,11 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument var Component = __webpack_require__(4); module.exports = Component.extend({ - defaults: _extends({}, Component.prototype.defaults, { type: 'text', droppable: false, editable: true }) - }); /***/ }), @@ -22411,9 +22504,8 @@ var _mixins = __webpack_require__(2); var ComponentView = __webpack_require__(3); module.exports = ComponentView.extend({ - events: { - 'dblclick': 'enableEditing' + dblclick: 'enableEditing' }, initialize: function initialize(o) { @@ -22547,7 +22639,6 @@ module.exports = ComponentView.extend({ var $ = Backbone.$; module.exports = { - /** * Start select position event * @param {HTMLElement} trg @@ -22601,8 +22692,8 @@ module.exports = { if (this.cDim) { this.posIsLastEl = this.cDim.length !== 0 && this.posMethod == 'after' && this.posIndex == this.cDim.length; this.posTargetEl = this.cDim.length === 0 ? $(this.outsideElem) : !this.posIsLastEl && this.cDim[this.posIndex] ? $(this.cDim[this.posIndex][5]).parent() : $(this.outsideElem); - this.posTargetModel = this.posTargetEl.data("model"); - this.posTargetCollection = this.posTargetEl.data("model-comp"); + this.posTargetModel = this.posTargetEl.data('model'); + this.posTargetCollection = this.posTargetEl.data('model-comp'); } }, @@ -22697,7 +22788,9 @@ module.exports = _.extend({}, CreateComponent, { this.beforeInsert(object); var index = this.sorter.lastPos.index; // By default, collections do not trigger add event, so silent is used - var model = this.create(this.sorter.target, object, index, null, { silent: false }); + var model = this.create(this.sorter.target, object, index, null, { + silent: false + }); if (this.opt.terminateAfterInsert && this.sender) this.sender.set('active', false);else this.enable(); @@ -22748,7 +22841,6 @@ var ComponentView = __webpack_require__(3); var ItemsView = void 0; module.exports = __webpack_require__(0).View.extend({ - events: { 'mousedown [data-toggle-move]': 'startSort', 'click [data-toggle-visible]': 'toggleVisibility', @@ -22885,7 +22977,7 @@ module.exports = __webpack_require__(0).View.extend({ this.getCaret().addClass(chvDown); opened[model.cid] = model; } else { - this.$el.removeClass("open"); + this.$el.removeClass('open'); this.getCaret().removeClass(chvDown); delete opened[model.cid]; } @@ -23210,14 +23302,12 @@ module.exports = Backbone.View.extend({ var Backbone = __webpack_require__(0); module.exports = Backbone.Model.extend({ - defaults: { id: '', label: '', open: true, attributes: {} } - }); /***/ }), @@ -23227,22 +23317,13 @@ module.exports = Backbone.Model.extend({ "use strict"; -module.exports = __webpack_require__(59); - -/***/ }), -/* 59 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - var _cashDom = __webpack_require__(9); var _cashDom2 = _interopRequireDefault(_cashDom); var _underscore = __webpack_require__(1); -var _polyfills = __webpack_require__(60); +var _polyfills = __webpack_require__(59); var _polyfills2 = _interopRequireDefault(_polyfills); @@ -23251,14 +23332,37 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de (0, _polyfills2.default)(); module.exports = function () { - var defaultConfig = __webpack_require__(61); - var Editor = __webpack_require__(62); - var PluginManager = __webpack_require__(220); + var Editor = __webpack_require__(60); + var PluginManager = __webpack_require__(219); var plugins = new PluginManager(); var editors = []; + var defaultConfig = { + // If true renders editor on init + autorender: 1, - return { + // Where init the editor + container: '', + + // HTML string or object of components + components: '', + + // CSS string or object of rules + style: '', + // If true, will fetch HTML and CSS from selected container + fromElement: 0, + + // Storage Manager + storageManager: {}, + + // Array of plugins to init + plugins: [], + + // Custom options for plugins + pluginsOpts: {} + }; + + return { $: _cashDom2.default, editors: editors, @@ -23266,7 +23370,7 @@ module.exports = function () { plugins: plugins, // Will be replaced on build - version: '0.12.60', + version: '0.13.5', /** * Initializes an editor based on passed options @@ -23323,7 +23427,7 @@ module.exports = function () { }(); /***/ }), -/* 60 */ +/* 59 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -23339,7 +23443,6 @@ Object.defineProperty(exports, "__esModule", { */ exports.default = function () { - /** * Check if IE/Edge * @return {Boolean} @@ -23368,42 +23471,7 @@ exports.default = function () { }; /***/ }), -/* 61 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -module.exports = { - // If true renders editor on init - autorender: 1, - - // Where init the editor - container: '', - - // HTML string or object of components - components: '', - - // CSS string or object of rules - style: '', - - // If true, will fetch HTML and CSS from selected container - fromElement: 0, - - // --- - - // Storage Manager - storageManager: {}, - - // Array of plugins to init - plugins: [], - - // Custom options for plugins - pluginsOpts: {} -}; - -/***/ }), -/* 62 */ +/* 60 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -23417,9 +23485,9 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de module.exports = function (config) { var c = config || {}, - defaults = __webpack_require__(63), - EditorModel = __webpack_require__(64), - EditorView = __webpack_require__(219); + defaults = __webpack_require__(61), + EditorModel = __webpack_require__(62), + EditorView = __webpack_require__(218); for (var name in defaults) { if (!(name in c)) c[name] = defaults[name]; @@ -23433,7 +23501,6 @@ module.exports = function (config) { }); return { - $: _cashDom2.default, /** @@ -23954,6 +24021,8 @@ module.exports = function (config) { * * ## Components * * `component:add` - Triggered when a new component is added to the editor, the model is passed as an argument to the callback + * * `component:remove` - Triggered when a component is removed, the model is passed as an argument to the callback + * * `component:clone` - Triggered when a new component is added by a clone command, the model is passed as an argument to the callback * * `component:update` - Triggered when a component is updated (moved, styled, etc.), the model is passed as an argument to the callback * * `component:update:{propertyName}` - Listen any property change, the model is passed as an argument to the callback * * `component:styleUpdate` - Triggered when the style of the component is updated, the model is passed as an argument to the callback @@ -23985,6 +24054,13 @@ module.exports = function (config) { * * `storage:store` - Triggered when something is stored to the storage, stored object passed as an argumnet * * `storage:end` - After the storage request is ended * * `storage:error` - On any error on storage request, passes the error as an argument + * ## Canvas + * * `canvas:dragenter` - When something is dragged inside the canvas, `DataTransfer` instance passed as an argument + * * `canvas:dragover` - When something is dragging on canvas, `DataTransfer` instance passed as an argument + * * `canvas:drop` - Something is dropped in canvas, `DataTransfer` instance and the dropped model are passed as arguments + * * `canvas:dragend` - When a drag operation is ended, `DataTransfer` instance passed as an argument + * * `canvas:dragdata` - On any dataTransfer parse, `DataTransfer` instance and the `result` are passed as arguments. + * By changing `result.content` you're able to customize what is dropped * ## Selectors * * `selector:add` - Triggers when a new selector/class is created * ## RTE @@ -24027,7 +24103,7 @@ module.exports = function (config) { */ /***/ }), -/* 63 */ +/* 61 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -24094,6 +24170,9 @@ module.exports = { // Return JS of components inside HTML from 'editor.getHtml()' jsInHtml: true, + // Enable native HTML5 drag and drop + nativeDnD: 1, + // Show the wrapper component in the final code, eg. in editor.getHtml() exportWrapper: 0, @@ -24170,7 +24249,6 @@ module.exports = { //Configurations for Style Manager styleManager: { - sectors: [{ name: 'General', open: false, @@ -24196,7 +24274,6 @@ module.exports = { open: false, buildProps: ['transition', 'perspective', 'transform'] }] - }, //Configurations for Block Manager @@ -24208,7 +24285,7 @@ module.exports = { }; /***/ }), -/* 64 */ +/* 62 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -24218,12 +24295,12 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument var _underscore = __webpack_require__(1); -var deps = [__webpack_require__(65), __webpack_require__(69), __webpack_require__(70), __webpack_require__(73), __webpack_require__(81), __webpack_require__(86), __webpack_require__(89), __webpack_require__(93), __webpack_require__(97), __webpack_require__(109), __webpack_require__(115), __webpack_require__(31), __webpack_require__(132), __webpack_require__(138), __webpack_require__(143), __webpack_require__(150), __webpack_require__(178), __webpack_require__(184), __webpack_require__(210)]; +var deps = [__webpack_require__(63), __webpack_require__(67), __webpack_require__(68), __webpack_require__(71), __webpack_require__(79), __webpack_require__(84), __webpack_require__(87), __webpack_require__(91), __webpack_require__(95), __webpack_require__(107), __webpack_require__(113), __webpack_require__(31), __webpack_require__(130), __webpack_require__(136), __webpack_require__(141), __webpack_require__(148), __webpack_require__(176), __webpack_require__(183), __webpack_require__(209)]; var Backbone = __webpack_require__(0); var timedInterval = void 0; -__webpack_require__(218)({ +__webpack_require__(217)({ Backbone: Backbone, $: Backbone.$ }); @@ -24231,7 +24308,6 @@ __webpack_require__(218)({ var $ = Backbone.$; module.exports = Backbone.Model.extend({ - defaults: { clipboard: null, designerMode: false, @@ -24452,7 +24528,7 @@ module.exports = Backbone.Model.extend({ model = $(el).data('model'); } - if (model && !model.get("selectable")) { + if (model && !model.get('selectable')) { return; } @@ -24524,7 +24600,8 @@ module.exports = Backbone.Model.extend({ var js = config.jsInHtml ? this.getJs() : ''; var wrp = this.get('DomComponents').getComponent(); var html = this.get('CodeManager').getCode(wrp, 'html', { - exportWrapper: exportWrapper, wrappesIsBody: wrappesIsBody + exportWrapper: exportWrapper, + wrappesIsBody: wrappesIsBody }); html += js ? '' : ''; return html; @@ -24548,7 +24625,8 @@ module.exports = Backbone.Model.extend({ var protCss = !avoidProt ? config.protectedCss : ''; return protCss + this.get('CodeManager').getCode(wrp, 'css', { - cssc: cssc, wrappesIsBody: wrappesIsBody + cssc: cssc, + wrappesIsBody: wrappesIsBody }); }, @@ -24749,17 +24827,16 @@ module.exports = Backbone.Model.extend({ }); /***/ }), -/* 65 */ +/* 63 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = function () { - - var Sorter = __webpack_require__(66); - var Resizer = __webpack_require__(67); - var Dragger = __webpack_require__(68); + var Sorter = __webpack_require__(64); + var Resizer = __webpack_require__(65); + var Dragger = __webpack_require__(66); return { /** @@ -24784,7 +24861,7 @@ module.exports = function () { }; /***/ }), -/* 66 */ +/* 64 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -25025,7 +25102,7 @@ module.exports = Backbone.View.extend({ el.className = pfx + 'placeholder'; el.style.display = 'none'; el.style['pointer-events'] = 'none'; - ins.className = pfx + "placeholder-int"; + ins.className = pfx + 'placeholder-int'; el.appendChild(ins); return el; }, @@ -25067,8 +25144,8 @@ module.exports = Backbone.View.extend({ srcModel && srcModel.set && srcModel.set('status', 'freezed'); } - (0, _mixins.on)(container, 'mousemove', this.onMove); - (0, _mixins.on)(docs, 'mouseup', this.endMove); + (0, _mixins.on)(container, 'mousemove dragover', this.onMove); + (0, _mixins.on)(docs, 'mouseup dragend', this.endMove); (0, _mixins.on)(docs, 'keydown', this.rollback); onStart && onStart(); @@ -25103,7 +25180,11 @@ module.exports = Backbone.View.extend({ if (dropContent && em) { if (!dropModel) { var comps = em.get('DomComponents').getComponents(); - var tempModel = comps.add(dropContent, { avoidUpdateStyle: 1, temporary: 1 }); + var tempModel = comps.add(dropContent, { + avoidChildren: 1, + avoidUpdateStyle: 1, + temporary: 1 + }); dropModel = comps.remove(tempModel, { temporary: 1 }); this.dropModel = dropModel instanceof Array ? dropModel[0] : dropModel; } @@ -25237,13 +25318,18 @@ module.exports = Backbone.View.extend({ if ($el.css('float') !== 'none') return; if (parent && $(parent).css('display') == 'flex') return; switch (style.position) { - case 'static':case 'relative':case '': + case 'static': + case 'relative': + case '': break; default: return; } switch (el.tagName) { - case 'TR':case 'TBODY':case 'THEAD':case 'TFOOT': + case 'TR': + case 'TBODY': + case 'THEAD': + case 'TFOOT': return true; } switch ($el.css('display')) { @@ -25603,17 +25689,17 @@ module.exports = Backbone.View.extend({ //If x lefter than center if (posX < xCenter) { xLimit = xCenter; - result.method = "before"; + result.method = 'before'; } else { leftLimit = xCenter; - result.method = "after"; + result.method = 'after'; } } else { // If y upper than center if (posY < yCenter) { - result.method = "before"; + result.method = 'before'; break; - } else result.method = "after"; // After last element + } else result.method = 'after'; // After last element } } return result; @@ -25687,8 +25773,8 @@ module.exports = Backbone.View.extend({ var created; var docs = this.getDocuments(); var container = this.getContainerEl(); - (0, _mixins.off)(container, 'mousemove', this.onMove); - (0, _mixins.off)(docs, 'mouseup', this.endMove); + (0, _mixins.off)(container, 'mousemove dragover', this.onMove); + (0, _mixins.off)(docs, 'mouseup dragend', this.endMove); (0, _mixins.off)(docs, 'keydown', this.rollback); //this.$document.off('mouseup', this.endMove); //this.$document.off('keydown', this.rollback); @@ -25814,7 +25900,7 @@ module.exports = Backbone.View.extend({ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0), __webpack_require__(1))) /***/ }), -/* 67 */ +/* 65 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -25896,7 +25982,6 @@ var getBoundingRect = function getBoundingRect(el, win) { }; var Resizer = function () { - /** * Init the Resizer with options * @param {Object} options @@ -26355,7 +26440,7 @@ module.exports = { }; /***/ }), -/* 68 */ +/* 66 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -26375,7 +26460,6 @@ var getBoundingRect = function getBoundingRect(el, win) { }; module.exports = { - // TODO move to opts setKey: function setKey(keys, command) { //key(keys, command); @@ -26702,7 +26786,7 @@ module.exports = { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 69 */ +/* 67 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -26751,7 +26835,6 @@ module.exports = function () { }; return { - keymaster: keymaster, name: 'Keymaps', @@ -26877,7 +26960,7 @@ module.exports = function () { }; /***/ }), -/* 70 */ +/* 68 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -26894,7 +26977,7 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument */ -var _backboneUndo = __webpack_require__(71); +var _backboneUndo = __webpack_require__(69); var _backboneUndo2 = _interopRequireDefault(_backboneUndo); @@ -26908,7 +26991,6 @@ module.exports = function () { var configDef = {}; return { - name: 'UndoManager', /** @@ -27141,7 +27223,7 @@ module.exports = function () { }; /***/ }), -/* 71 */ +/* 69 */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! @@ -27158,7 +27240,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ (function (factory) { if (true) { // AMD support - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1), __webpack_require__(72)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1), __webpack_require__(70)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); @@ -27983,7 +28065,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 72 */ +/* 70 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global) {var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// Backbone.js 1.2.1 @@ -29864,7 +29946,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16))) /***/ }), -/* 73 */ +/* 71 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -29879,15 +29961,14 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ */ module.exports = function () { var c = {}, - defaults = __webpack_require__(74), - LocalStorage = __webpack_require__(75), - RemoteStorage = __webpack_require__(76); + defaults = __webpack_require__(72), + LocalStorage = __webpack_require__(73), + RemoteStorage = __webpack_require__(74); var storages = {}; var defaultStorages = {}; return { - /** * Name of the module * @type {String} @@ -30113,7 +30194,7 @@ module.exports = function () { }; /***/ }), -/* 74 */ +/* 72 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -30177,11 +30258,10 @@ module.exports = { // true: application/json; charset=utf-8' // false: 'x-www-form-urlencoded' contentTypeJson: false - }; /***/ }), -/* 75 */ +/* 73 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -30190,14 +30270,13 @@ module.exports = { var Backbone = __webpack_require__(0); module.exports = Backbone.Model.extend({ - defaults: { checkLocal: true }, /** - * @private - */ + * @private + */ store: function store(data, clb) { this.checkStorageEnvironment(); @@ -30251,7 +30330,7 @@ module.exports = Backbone.Model.extend({ }); /***/ }), -/* 76 */ +/* 74 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -30266,7 +30345,6 @@ var _underscore = __webpack_require__(1); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } module.exports = __webpack_require__(0).Model.extend({ - fetch: _fetch2.default, defaults: { @@ -30415,7 +30493,7 @@ module.exports = __webpack_require__(0).Model.extend({ }); /***/ }), -/* 77 */ +/* 75 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(setImmediate) {(function (root) { @@ -30652,10 +30730,10 @@ module.exports = __webpack_require__(0).Model.extend({ })(this); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(78).setImmediate)) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(76).setImmediate)) /***/ }), -/* 78 */ +/* 76 */ /***/ (function(module, exports, __webpack_require__) { var apply = Function.prototype.apply; @@ -30708,13 +30786,13 @@ exports._unrefActive = exports.active = function(item) { }; // setimmediate attaches itself to the global object -__webpack_require__(79); +__webpack_require__(77); exports.setImmediate = setImmediate; exports.clearImmediate = clearImmediate; /***/ }), -/* 79 */ +/* 77 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) { @@ -30904,10 +30982,10 @@ exports.clearImmediate = clearImmediate; attachTo.clearImmediate = clearImmediate; }(typeof self === "undefined" ? typeof global === "undefined" ? this : global : self)); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16), __webpack_require__(80))) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16), __webpack_require__(78))) /***/ }), -/* 80 */ +/* 78 */ /***/ (function(module, exports) { // shim for using process in browser @@ -31097,7 +31175,7 @@ process.umask = function() { return 0; }; /***/ }), -/* 81 */ +/* 79 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -31114,13 +31192,12 @@ process.umask = function() { return 0; }; */ module.exports = function () { var c = {}, - defaults = __webpack_require__(82), - Devices = __webpack_require__(83), - DevicesView = __webpack_require__(85); + defaults = __webpack_require__(80), + Devices = __webpack_require__(81), + DevicesView = __webpack_require__(83); var devices, view; return { - /** * Name of the module * @type {String} @@ -31218,36 +31295,34 @@ module.exports = function () { }; /***/ }), -/* 82 */ +/* 80 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = { - devices: [], deviceLabel: 'Device' - }; /***/ }), -/* 83 */ +/* 81 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var Backbone = __webpack_require__(0); -var Device = __webpack_require__(84); +var Device = __webpack_require__(82); module.exports = Backbone.Collection.extend({ model: Device }); /***/ }), -/* 84 */ +/* 82 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -31256,7 +31331,6 @@ module.exports = Backbone.Collection.extend({ var Backbone = __webpack_require__(0); module.exports = Backbone.Model.extend({ - idAttribute: 'name', defaults: { @@ -31281,7 +31355,7 @@ module.exports = Backbone.Model.extend({ }); /***/ }), -/* 85 */ +/* 83 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -31290,11 +31364,10 @@ module.exports = Backbone.Model.extend({ var Backbone = __webpack_require__(0); module.exports = Backbone.View.extend({ - template: _.template('\n
<%= deviceLabel %>
\n
\n \n \n \n
\n
\n
\n
\n '), events: { - 'change': 'updateDevice' + change: 'updateDevice' }, initialize: function initialize(o) { @@ -31372,7 +31445,7 @@ module.exports = Backbone.View.extend({ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) /***/ }), -/* 86 */ +/* 84 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -31380,13 +31453,12 @@ module.exports = Backbone.View.extend({ module.exports = function () { var c = {}, - defaults = __webpack_require__(87), - parserCss = __webpack_require__(88), + defaults = __webpack_require__(85), + parserCss = __webpack_require__(86), parserHtml = __webpack_require__(25); var pHtml, pCss; return { - compTypes: '', /** @@ -31438,20 +31510,18 @@ module.exports = function () { }; /***/ }), -/* 87 */ +/* 85 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = { - textTags: ['br', 'b', 'i', 'u', 'a', 'ul', 'ol'] - }; /***/ }), -/* 88 */ +/* 86 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -31482,7 +31552,7 @@ module.exports = function (config) { var sel = sels[i].trim(); // Will accept only concatenated classes and last // class might be with state (eg. :hover), nothing else. - if (/^(\.{1}[\w\-]+)+(:{1,2}[\w\-()]+)?$/ig.test(sel)) { + if (/^(\.{1}[\w\-]+)+(:{1,2}[\w\-()]+)?$/gi.test(sel)) { var cls = sel.split('.').filter(Boolean); result.push(cls); } else { @@ -31608,7 +31678,7 @@ module.exports = function (config) { }; /***/ }), -/* 89 */ +/* 87 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -31669,14 +31739,13 @@ var _underscore = __webpack_require__(1); module.exports = function (config) { var c = config || {}, - defaults = __webpack_require__(90), + defaults = __webpack_require__(88), Selector = __webpack_require__(7), Selectors = __webpack_require__(10), - ClassTagsView = __webpack_require__(91); + ClassTagsView = __webpack_require__(89); var selectors, selectorTags; return { - Selector: Selector, Selectors: Selectors, @@ -31829,14 +31898,13 @@ module.exports = function (config) { }; /***/ }), -/* 90 */ +/* 88 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = { - // Style prefix stylePrefix: 'clm-', @@ -31856,14 +31924,14 @@ module.exports = { }; /***/ }), -/* 91 */ +/* 89 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(_) { var Backbone = __webpack_require__(0); -var ClassTagView = __webpack_require__(92); +var ClassTagView = __webpack_require__(90); module.exports = Backbone.View.extend({ template: _.template('\n
\n
<%= label %>
\n
\n \n
\n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
<%= selectedLabel %>
\n
\n
\n
'), @@ -32162,7 +32230,7 @@ module.exports = Backbone.View.extend({ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) /***/ }), -/* 92 */ +/* 90 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -32304,7 +32372,7 @@ module.exports = __webpack_require__(0).View.extend({ }); /***/ }), -/* 93 */ +/* 91 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -32328,18 +32396,17 @@ module.exports = __webpack_require__(0).View.extend({ */ module.exports = function () { var c = {}, - defaults = __webpack_require__(94), - ModalM = __webpack_require__(95), - ModalView = __webpack_require__(96); + defaults = __webpack_require__(92), + ModalM = __webpack_require__(93), + ModalView = __webpack_require__(94); var model, modal; return { - /** - * Name of the module - * @type {String} - * @private - */ + * Name of the module + * @type {String} + * @private + */ name: 'Modal', /** @@ -32476,14 +32543,13 @@ module.exports = function () { }; /***/ }), -/* 94 */ +/* 92 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = { - stylePrefix: 'mdl-', title: '', @@ -32491,11 +32557,10 @@ module.exports = { content: '', backdrop: true - -};; +}; /***/ }), -/* 95 */ +/* 93 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -32512,7 +32577,7 @@ module.exports = Backbone.Model.extend({ }); /***/ }), -/* 96 */ +/* 94 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -32650,7 +32715,7 @@ module.exports = __webpack_require__(0).View.extend({ }); /***/ }), -/* 97 */ +/* 95 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -32676,15 +32741,14 @@ module.exports = __webpack_require__(0).View.extend({ * @module CodeManager */ module.exports = function () { - var c = {}, - defaults = __webpack_require__(98), - gHtml = __webpack_require__(99), - gCss = __webpack_require__(100), - gJson = __webpack_require__(101), - gJs = __webpack_require__(102), - eCM = __webpack_require__(103), - editorView = __webpack_require__(108); + defaults = __webpack_require__(96), + gHtml = __webpack_require__(97), + gCss = __webpack_require__(98), + gJson = __webpack_require__(99), + gJs = __webpack_require__(100), + eCM = __webpack_require__(101), + editorView = __webpack_require__(106); var generators = {}, defGenerators = {}, @@ -32880,7 +32944,7 @@ module.exports = function () { }; /***/ }), -/* 98 */ +/* 96 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -32894,7 +32958,7 @@ module.exports = { }; /***/ }), -/* 99 */ +/* 97 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -32924,7 +32988,7 @@ module.exports = Backbone.Model.extend({ }); /***/ }), -/* 100 */ +/* 98 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -33057,7 +33121,7 @@ module.exports = __webpack_require__(0).Model.extend({ }); /***/ }), -/* 101 */ +/* 99 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -33066,7 +33130,6 @@ module.exports = __webpack_require__(0).Model.extend({ var Backbone = __webpack_require__(0); module.exports = Backbone.Model.extend({ - /** @inheritdoc */ build: function build(model) { var json = model.toJSON(); @@ -33102,7 +33165,7 @@ module.exports = Backbone.Model.extend({ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) /***/ }), -/* 102 */ +/* 100 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -33163,7 +33226,7 @@ module.exports = Backbone.Model.extend({ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) /***/ }), -/* 103 */ +/* 101 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -33173,12 +33236,11 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument var Backbone = __webpack_require__(0); var CodeMirror = __webpack_require__(6); -var htmlMode = __webpack_require__(104); +var htmlMode = __webpack_require__(102); var cssMode = __webpack_require__(26); -var formatting = __webpack_require__(107); +var formatting = __webpack_require__(105); module.exports = Backbone.Model.extend({ - defaults: { input: '', label: '', @@ -33213,7 +33275,7 @@ module.exports = Backbone.Model.extend({ }); /***/ }), -/* 104 */ +/* 102 */ /***/ (function(module, exports, __webpack_require__) { // CodeMirror, copyright (c) by Marijn Haverbeke and others @@ -33221,7 +33283,7 @@ module.exports = Backbone.Model.extend({ (function(mod) { if (true) // CommonJS - mod(__webpack_require__(6), __webpack_require__(105), __webpack_require__(106), __webpack_require__(26)); + mod(__webpack_require__(6), __webpack_require__(103), __webpack_require__(104), __webpack_require__(26)); else if (typeof define == "function" && define.amd) // AMD define(["../../lib/codemirror", "../xml/xml", "../javascript/javascript", "../css/css"], mod); else // Plain browser env @@ -33371,7 +33433,7 @@ module.exports = Backbone.Model.extend({ /***/ }), -/* 105 */ +/* 103 */ /***/ (function(module, exports, __webpack_require__) { // CodeMirror, copyright (c) by Marijn Haverbeke and others @@ -33771,7 +33833,7 @@ if (!CodeMirror.mimeModes.hasOwnProperty("text/html")) /***/ }), -/* 106 */ +/* 104 */ /***/ (function(module, exports, __webpack_require__) { // CodeMirror, copyright (c) by Marijn Haverbeke and others @@ -34632,7 +34694,7 @@ CodeMirror.defineMIME("application/typescript", { name: "javascript", typescript /***/ }), -/* 107 */ +/* 105 */ /***/ (function(module, exports, __webpack_require__) { (function(mod) { @@ -34759,7 +34821,7 @@ CodeMirror.defineMIME("application/typescript", { name: "javascript", typescript /***/ }), -/* 108 */ +/* 106 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -34768,7 +34830,6 @@ CodeMirror.defineMIME("application/typescript", { name: "javascript", typescript var Backbone = __webpack_require__(0); module.exports = Backbone.View.extend({ - template: _.template('\n
\n \t
<%= label %>
\n \t
\n
'), initialize: function initialize(o) { @@ -34787,7 +34848,7 @@ module.exports = Backbone.View.extend({ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) /***/ }), -/* 109 */ +/* 107 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -34842,15 +34903,14 @@ module.exports = Backbone.View.extend({ */ module.exports = function () { var c = {}, - defaults = __webpack_require__(110), + defaults = __webpack_require__(108), Panel = __webpack_require__(27), - Panels = __webpack_require__(112), + Panels = __webpack_require__(110), PanelView = __webpack_require__(29), - PanelsView = __webpack_require__(114); + PanelsView = __webpack_require__(112); var panels, PanelsViewObj; return { - /** * Name of the module * @type {String} @@ -34924,9 +34984,9 @@ module.exports = function () { * visible : true, * buttons : [...], * }); - * + * * const newPanel = panelManager.removePanel('myNewPanel'); - * + * */ removePanel: function removePanel(panel) { return panels.remove(panel); @@ -34986,7 +35046,7 @@ module.exports = function () { * Remove button from the panel * @param {string} panelId Panel's ID * @param {Object|Button|String} button Button object or instance of Button or button id - * @return {Button|null} Removed button. + * @return {Button|null} Removed button. * @example * const removedButton = panelManager.removeButton('myNewPanel',{ * id: 'myNewButton', @@ -34995,10 +35055,10 @@ module.exports = function () { * attributes: { title: 'Some title'}, * active: false, * }); - * + * * // It's also possible to use the button id * const removedButton = panelManager.removeButton('myNewPanel','myNewButton'); - * + * */ removeButton: function removeButton(panelId, button) { var pn = this.getPanel(panelId); @@ -35060,12 +35120,11 @@ module.exports = function () { Panel: Panel - }; }; /***/ }), -/* 110 */ +/* 108 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -35150,7 +35209,7 @@ module.exports = { }; /***/ }), -/* 111 */ +/* 109 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -35159,7 +35218,6 @@ module.exports = { var Backbone = __webpack_require__(0); module.exports = Backbone.Model.extend({ - defaults: { id: '', className: '', @@ -35184,7 +35242,7 @@ module.exports = Backbone.Model.extend({ }); /***/ }), -/* 112 */ +/* 110 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -35198,7 +35256,7 @@ module.exports = Backbone.Collection.extend({ }); /***/ }), -/* 113 */ +/* 111 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -35209,7 +35267,6 @@ var _underscore = __webpack_require__(1); var $ = Backbone.$; module.exports = Backbone.View.extend({ - tagName: 'span', initialize: function initialize(o) { @@ -35329,7 +35386,7 @@ module.exports = Backbone.View.extend({ * @return void * */ updateAttributes: function updateAttributes() { - this.$el.attr(this.model.get("attributes")); + this.$el.attr(this.model.get('attributes')); }, @@ -35484,7 +35541,6 @@ module.exports = Backbone.View.extend({ this.toogleActive(); }, toogleActive: function toogleActive() { - if (this.parentM) this.swapParent(); var active = this.model.get('active'); @@ -35536,7 +35592,7 @@ module.exports = Backbone.View.extend({ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0), __webpack_require__(1))) /***/ }), -/* 114 */ +/* 112 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -35615,13 +35671,13 @@ module.exports = Backbone.View.extend({ }); /***/ }), -/* 115 */ +/* 113 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var _RichTextEditor = __webpack_require__(116); +var _RichTextEditor = __webpack_require__(114); var _RichTextEditor2 = _interopRequireDefault(_RichTextEditor); @@ -35646,7 +35702,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de */ module.exports = function () { var config = {}; - var defaults = __webpack_require__(117); + var defaults = __webpack_require__(115); var toolbar = void 0, actions = void 0, lastEl = void 0, @@ -35661,7 +35717,6 @@ module.exports = function () { }; return { - customRte: null, /** @@ -35935,7 +35990,7 @@ module.exports = function () { }; /***/ }), -/* 116 */ +/* 114 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -36253,14 +36308,13 @@ var RichTextEditor = function () { exports.default = RichTextEditor; /***/ }), -/* 117 */ +/* 115 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = { - stylePrefix: 'rte-', // If true, moves the toolbar below the element when the top canvas @@ -36272,7 +36326,7 @@ module.exports = { }; /***/ }), -/* 118 */ +/* 116 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -36308,20 +36362,20 @@ module.exports = { }; /***/ }), -/* 119 */ +/* 117 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var Sector = __webpack_require__(120); +var Sector = __webpack_require__(118); module.exports = __webpack_require__(0).Collection.extend({ - model: Sector + model: Sector }); /***/ }), -/* 120 */ +/* 118 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -36331,10 +36385,9 @@ var _underscore = __webpack_require__(1); var Backbone = __webpack_require__(0); var Properties = __webpack_require__(11); -var PropertyFactory = __webpack_require__(129); +var PropertyFactory = __webpack_require__(127); module.exports = Backbone.Model.extend({ - defaults: { id: '', name: '', @@ -36422,7 +36475,7 @@ module.exports = Backbone.Model.extend({ }); /***/ }), -/* 121 */ +/* 119 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -36431,10 +36484,9 @@ module.exports = Backbone.Model.extend({ var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var Property = __webpack_require__(33); -var Layers = __webpack_require__(122); +var Layers = __webpack_require__(120); module.exports = Property.extend({ - defaults: _extends({}, Property.prototype.defaults, { // Array of layers (which contain properties) layers: [], @@ -36456,7 +36508,7 @@ module.exports = Property.extend({ }); /***/ }), -/* 122 */ +/* 120 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -36464,10 +36516,9 @@ module.exports = Property.extend({ var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; -var Layer = __webpack_require__(123); +var Layer = __webpack_require__(121); module.exports = Backbone.Collection.extend({ - model: Layer, initialize: function initialize() { @@ -36587,14 +36638,13 @@ module.exports = Backbone.Collection.extend({ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 123 */ +/* 121 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(Backbone) { module.exports = Backbone.Model.extend({ - defaults: { index: '', value: '', @@ -36643,7 +36693,7 @@ module.exports = Backbone.Model.extend({ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 124 */ +/* 122 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -36659,2233 +36709,2224 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol // License: MIT (function (factory) { - factory(Backbone.$); + factory(Backbone.$); })(function ($, undefined) { - "use strict"; + 'use strict'; + + var defaultOpts = { + // Callbacks + beforeShow: noop, + move: noop, + change: noop, + show: noop, + hide: noop, + + // Options + color: false, + flat: false, + showInput: false, + allowEmpty: false, + showButtons: true, + clickoutFiresChange: true, + showInitial: false, + showPalette: false, + showPaletteOnly: false, + hideAfterPaletteSelect: false, + togglePaletteOnly: false, + showSelectionPalette: true, + localStorageKey: false, + appendTo: 'body', + maxSelectionSize: 7, + cancelText: 'cancel', + chooseText: 'choose', + togglePaletteMoreText: 'more', + togglePaletteLessText: 'less', + clearText: 'Clear Color Selection', + noColorSelectedText: 'No Color Selected', + preferredFormat: false, + className: '', // Deprecated - use containerClassName and replacerClassName instead. + containerClassName: '', + replacerClassName: '', + showAlpha: false, + theme: 'sp-light', + palette: [['#ffffff', '#000000', '#ff0000', '#ff8000', '#ffff00', '#008000', '#0000ff', '#4b0082', '#9400d3']], + selectionPalette: [], + disabled: false, + offset: null + }, + spectrums = [], + IE = !!/msie/i.exec(window.navigator.userAgent), + rgbaSupport = function () { + function contains(str, substr) { + return !!~('' + str).indexOf(substr); + } + + var elem = document.createElement('div'); + var style = elem.style; + style.cssText = 'background-color:rgba(0,0,0,.5)'; + return contains(style.backgroundColor, 'rgba') || contains(style.backgroundColor, 'hsla'); + }(), + replaceInput = ["
", "
", "
", '
'].join(''), + markup = function () { + // IE does not support gradients with multiple stops, so we need to simulate + // that for the rainbow slider with 8 divs that each have a single gradient + var gradientFix = ''; + if (IE) { + for (var i = 1; i <= 6; i++) { + gradientFix += "
"; + } + } + + return ["
", "
", "
", "
", "", '
', '
', "
", "
", "
", "
", "
", "
", "
", "
", '
', '
', '
', "
", '
', "
", "
", gradientFix, '
', '
', "
", '
', "
", "", '
', "
", "
", "", "", '
', '
', '
'].join(''); + }(); - var defaultOpts = { + function paletteTemplate(p, color, className, opts) { + var html = []; + for (var i = 0; i < p.length; i++) { + var current = p[i]; + if (current) { + var tiny = tinycolor(current); + var c = tiny.toHsl().l < 0.5 ? 'sp-thumb-el sp-thumb-dark' : 'sp-thumb-el sp-thumb-light'; + c += tinycolor.equals(color, current) ? ' sp-thumb-active' : ''; + var formattedString = tiny.toString(opts.preferredFormat || 'rgb'); + var swatchStyle = rgbaSupport ? 'background-color:' + tiny.toRgbString() : 'filter:' + tiny.toFilter(); + html.push(''); + } else { + var cls = 'sp-clear-display'; + html.push($('
').append($('').attr('title', opts.noColorSelectedText)).html()); + } + } + return "
" + html.join('') + '
'; + } - // Callbacks - beforeShow: noop, - move: noop, - change: noop, - show: noop, - hide: noop, + function hideAll() { + for (var i = 0; i < spectrums.length; i++) { + if (spectrums[i]) { + spectrums[i].hide(); + } + } + } - // Options - color: false, - flat: false, - showInput: false, - allowEmpty: false, - showButtons: true, - clickoutFiresChange: true, - showInitial: false, - showPalette: false, - showPaletteOnly: false, - hideAfterPaletteSelect: false, - togglePaletteOnly: false, - showSelectionPalette: true, - localStorageKey: false, - appendTo: "body", - maxSelectionSize: 7, - cancelText: "cancel", - chooseText: "choose", - togglePaletteMoreText: "more", - togglePaletteLessText: "less", - clearText: "Clear Color Selection", - noColorSelectedText: "No Color Selected", - preferredFormat: false, - className: "", // Deprecated - use containerClassName and replacerClassName instead. - containerClassName: "", - replacerClassName: "", - showAlpha: false, - theme: "sp-light", - palette: [["#ffffff", "#000000", "#ff0000", "#ff8000", "#ffff00", "#008000", "#0000ff", "#4b0082", "#9400d3"]], - selectionPalette: [], - disabled: false, - offset: null - }, - spectrums = [], - IE = !!/msie/i.exec(window.navigator.userAgent), - rgbaSupport = function () { - function contains(str, substr) { - return !!~('' + str).indexOf(substr); + function instanceOptions(o, callbackContext) { + var opts = $.extend({}, defaultOpts, o); + opts.callbacks = { + move: bind(opts.move, callbackContext), + change: bind(opts.change, callbackContext), + show: bind(opts.show, callbackContext), + hide: bind(opts.hide, callbackContext), + beforeShow: bind(opts.beforeShow, callbackContext) + }; + return opts; + } + + function spectrum(element, o) { + var opts = instanceOptions(o, element), + flat = opts.flat, + showSelectionPalette = opts.showSelectionPalette, + localStorageKey = opts.localStorageKey, + theme = opts.theme, + callbacks = opts.callbacks, + resize = throttle(reflow, 10), + visible = false, + isDragging = false, + dragWidth = 0, + dragHeight = 0, + dragHelperHeight = 0, + slideHeight = 0, + slideWidth = 0, + alphaWidth = 0, + alphaSlideHelperWidth = 0, + slideHelperHeight = 0, + currentHue = 0, + currentSaturation = 0, + currentValue = 0, + currentAlpha = 1, + palette = [], + paletteArray = [], + paletteLookup = {}, + selectionPalette = opts.selectionPalette.slice(0), + maxSelectionSize = opts.maxSelectionSize, + draggingClass = 'sp-dragging', + shiftMovementDirection = null; + + var doc = element.ownerDocument, + body = doc.body, + boundElement = $(element), + disabled = false, + container = $(markup, doc).addClass(theme), + pickerContainer = container.find('.sp-picker-container'), + dragger = container.find('.sp-color'), + dragHelper = container.find('.sp-dragger'), + slider = container.find('.sp-hue'), + slideHelper = container.find('.sp-slider'), + alphaSliderInner = container.find('.sp-alpha-inner'), + alphaSlider = container.find('.sp-alpha'), + alphaSlideHelper = container.find('.sp-alpha-handle'), + textInput = container.find('.sp-input'), + paletteContainer = container.find('.sp-palette'), + initialColorContainer = container.find('.sp-initial'), + cancelButton = container.find('.sp-cancel'), + clearButton = container.find('.sp-clear'), + chooseButton = container.find('.sp-choose'), + toggleButton = container.find('.sp-palette-toggle'), + isInput = boundElement.is('input'), + isInputTypeColor = isInput && boundElement.attr('type') === 'color' && inputTypeColorSupport(), + shouldReplace = isInput && !flat, + replacer = shouldReplace ? $(replaceInput).addClass(theme).addClass(opts.className).addClass(opts.replacerClassName) : $([]), + offsetElement = shouldReplace ? replacer : boundElement, + previewElement = replacer.find('.sp-preview-inner'), + initialColor = opts.color || isInput && boundElement.val(), + colorOnShow = false, + currentPreferredFormat = opts.preferredFormat, + clickoutFiresChange = !opts.showButtons || opts.clickoutFiresChange, + isEmpty = !initialColor, + allowEmpty = opts.allowEmpty && !isInputTypeColor; + + function applyOptions() { + if (opts.showPaletteOnly) { + opts.showPalette = true; + } + + toggleButton.text(opts.showPaletteOnly ? opts.togglePaletteMoreText : opts.togglePaletteLessText); + + if (opts.palette) { + palette = opts.palette.slice(0); + paletteArray = $.isArray(palette[0]) ? palette : [palette]; + paletteLookup = {}; + for (var i = 0; i < paletteArray.length; i++) { + for (var j = 0; j < paletteArray[i].length; j++) { + var rgb = tinycolor(paletteArray[i][j]).toRgbString(); + paletteLookup[rgb] = true; + } } + } - var elem = document.createElement('div'); - var style = elem.style; - style.cssText = 'background-color:rgba(0,0,0,.5)'; - return contains(style.backgroundColor, 'rgba') || contains(style.backgroundColor, 'hsla'); - }(), - replaceInput = ["
", "
", "
", "
"].join(''), - markup = function () { - - // IE does not support gradients with multiple stops, so we need to simulate - // that for the rainbow slider with 8 divs that each have a single gradient - var gradientFix = ""; - if (IE) { - for (var i = 1; i <= 6; i++) { - gradientFix += "
"; - } - } + container.toggleClass('sp-flat', flat); + container.toggleClass('sp-input-disabled', !opts.showInput); + container.toggleClass('sp-alpha-enabled', opts.showAlpha); + container.toggleClass('sp-clear-enabled', allowEmpty); + container.toggleClass('sp-buttons-disabled', !opts.showButtons); + container.toggleClass('sp-palette-buttons-disabled', !opts.togglePaletteOnly); + container.toggleClass('sp-palette-disabled', !opts.showPalette); + container.toggleClass('sp-palette-only', opts.showPaletteOnly); + container.toggleClass('sp-initial-disabled', !opts.showInitial); + container.addClass(opts.className).addClass(opts.containerClassName); - return ["
", "
", "
", "
", "", "
", "
", "
", "
", "
", "
", "
", "
", "
", "
", "
", "
", "
", "
", "
", "
", "
", gradientFix, "
", "
", "
", "
", "
", "", "
", "
", "
", "", "", "
", "
", "
"].join(""); - }(); - - function paletteTemplate(p, color, className, opts) { - var html = []; - for (var i = 0; i < p.length; i++) { - var current = p[i]; - if (current) { - var tiny = tinycolor(current); - var c = tiny.toHsl().l < 0.5 ? "sp-thumb-el sp-thumb-dark" : "sp-thumb-el sp-thumb-light"; - c += tinycolor.equals(color, current) ? " sp-thumb-active" : ""; - var formattedString = tiny.toString(opts.preferredFormat || "rgb"); - var swatchStyle = rgbaSupport ? "background-color:" + tiny.toRgbString() : "filter:" + tiny.toFilter(); - html.push(''); - } else { - var cls = 'sp-clear-display'; - html.push($('
').append($('').attr('title', opts.noColorSelectedText)).html()); - } - } - return "
" + html.join('') + "
"; + reflow(); } - function hideAll() { - for (var i = 0; i < spectrums.length; i++) { - if (spectrums[i]) { - spectrums[i].hide(); - } - } - } + function initialize() { + if (IE) { + container.find('*:not(input)').attr('unselectable', 'on'); + } - function instanceOptions(o, callbackContext) { - var opts = $.extend({}, defaultOpts, o); - opts.callbacks = { - 'move': bind(opts.move, callbackContext), - 'change': bind(opts.change, callbackContext), - 'show': bind(opts.show, callbackContext), - 'hide': bind(opts.hide, callbackContext), - 'beforeShow': bind(opts.beforeShow, callbackContext) - }; - return opts; - } - - function spectrum(element, o) { - - var opts = instanceOptions(o, element), - flat = opts.flat, - showSelectionPalette = opts.showSelectionPalette, - localStorageKey = opts.localStorageKey, - theme = opts.theme, - callbacks = opts.callbacks, - resize = throttle(reflow, 10), - visible = false, - isDragging = false, - dragWidth = 0, - dragHeight = 0, - dragHelperHeight = 0, - slideHeight = 0, - slideWidth = 0, - alphaWidth = 0, - alphaSlideHelperWidth = 0, - slideHelperHeight = 0, - currentHue = 0, - currentSaturation = 0, - currentValue = 0, - currentAlpha = 1, - palette = [], - paletteArray = [], - paletteLookup = {}, - selectionPalette = opts.selectionPalette.slice(0), - maxSelectionSize = opts.maxSelectionSize, - draggingClass = "sp-dragging", - shiftMovementDirection = null; - - var doc = element.ownerDocument, - body = doc.body, - boundElement = $(element), - disabled = false, - container = $(markup, doc).addClass(theme), - pickerContainer = container.find(".sp-picker-container"), - dragger = container.find(".sp-color"), - dragHelper = container.find(".sp-dragger"), - slider = container.find(".sp-hue"), - slideHelper = container.find(".sp-slider"), - alphaSliderInner = container.find(".sp-alpha-inner"), - alphaSlider = container.find(".sp-alpha"), - alphaSlideHelper = container.find(".sp-alpha-handle"), - textInput = container.find(".sp-input"), - paletteContainer = container.find(".sp-palette"), - initialColorContainer = container.find(".sp-initial"), - cancelButton = container.find(".sp-cancel"), - clearButton = container.find(".sp-clear"), - chooseButton = container.find(".sp-choose"), - toggleButton = container.find(".sp-palette-toggle"), - isInput = boundElement.is("input"), - isInputTypeColor = isInput && boundElement.attr("type") === "color" && inputTypeColorSupport(), - shouldReplace = isInput && !flat, - replacer = shouldReplace ? $(replaceInput).addClass(theme).addClass(opts.className).addClass(opts.replacerClassName) : $([]), - offsetElement = shouldReplace ? replacer : boundElement, - previewElement = replacer.find(".sp-preview-inner"), - initialColor = opts.color || isInput && boundElement.val(), - colorOnShow = false, - currentPreferredFormat = opts.preferredFormat, - clickoutFiresChange = !opts.showButtons || opts.clickoutFiresChange, - isEmpty = !initialColor, - allowEmpty = opts.allowEmpty && !isInputTypeColor; - - function applyOptions() { - - if (opts.showPaletteOnly) { - opts.showPalette = true; - } + applyOptions(); - toggleButton.text(opts.showPaletteOnly ? opts.togglePaletteMoreText : opts.togglePaletteLessText); - - if (opts.palette) { - palette = opts.palette.slice(0); - paletteArray = $.isArray(palette[0]) ? palette : [palette]; - paletteLookup = {}; - for (var i = 0; i < paletteArray.length; i++) { - for (var j = 0; j < paletteArray[i].length; j++) { - var rgb = tinycolor(paletteArray[i][j]).toRgbString(); - paletteLookup[rgb] = true; - } - } - } + if (shouldReplace) { + boundElement.after(replacer).hide(); + } - container.toggleClass("sp-flat", flat); - container.toggleClass("sp-input-disabled", !opts.showInput); - container.toggleClass("sp-alpha-enabled", opts.showAlpha); - container.toggleClass("sp-clear-enabled", allowEmpty); - container.toggleClass("sp-buttons-disabled", !opts.showButtons); - container.toggleClass("sp-palette-buttons-disabled", !opts.togglePaletteOnly); - container.toggleClass("sp-palette-disabled", !opts.showPalette); - container.toggleClass("sp-palette-only", opts.showPaletteOnly); - container.toggleClass("sp-initial-disabled", !opts.showInitial); - container.addClass(opts.className).addClass(opts.containerClassName); - - reflow(); - } + if (!allowEmpty) { + clearButton.hide(); + } - function initialize() { + if (flat) { + boundElement.after(container).hide(); + } else { + var appendTo = opts.appendTo === 'parent' ? boundElement.parent() : $(opts.appendTo); + if (appendTo.length !== 1) { + appendTo = $('body'); + } - if (IE) { - container.find("*:not(input)").attr("unselectable", "on"); - } + appendTo.append(container); + } - applyOptions(); + updateSelectionPaletteFromStorage(); - if (shouldReplace) { - boundElement.after(replacer).hide(); - } + offsetElement.bind('click.spectrum touchstart.spectrum', function (e) { + if (!disabled) { + toggle(); + } - if (!allowEmpty) { - clearButton.hide(); - } + e.stopPropagation(); - if (flat) { - boundElement.after(container).hide(); - } else { + if (!$(e.target).is('input')) { + e.preventDefault(); + } + }); - var appendTo = opts.appendTo === "parent" ? boundElement.parent() : $(opts.appendTo); - if (appendTo.length !== 1) { - appendTo = $("body"); - } + if (boundElement.is(':disabled') || opts.disabled === true) { + disable(); + } - appendTo.append(container); - } + // Prevent clicks from bubbling up to document. This would cause it to be hidden. + container.click(stopPropagation); - updateSelectionPaletteFromStorage(); + // Handle user typed input + textInput.change(setFromTextInput); + textInput.bind('paste', function () { + setTimeout(setFromTextInput, 1); + }); + textInput.keydown(function (e) { + if (e.keyCode == 13) { + setFromTextInput(); + } + }); - offsetElement.bind("click.spectrum touchstart.spectrum", function (e) { + cancelButton.text(opts.cancelText); + cancelButton.bind('click.spectrum', function (e) { + e.stopPropagation(); + e.preventDefault(); + revert(); + hide(); + }); - if (!disabled) { - toggle(); - } + clearButton.attr('title', opts.clearText); + clearButton.bind('click.spectrum', function (e) { + e.stopPropagation(); + e.preventDefault(); + isEmpty = true; + move(); - e.stopPropagation(); + if (flat) { + //for the flat style, this is a change event + updateOriginalInput(true); + } + }); - if (!$(e.target).is("input")) { - e.preventDefault(); - } - }); + chooseButton.text(opts.chooseText); + chooseButton.bind('click.spectrum', function (e) { + e.stopPropagation(); + e.preventDefault(); - if (boundElement.is(":disabled") || opts.disabled === true) { - disable(); - } + if (IE && textInput.is(':focus')) { + textInput.trigger('change'); + } - // Prevent clicks from bubbling up to document. This would cause it to be hidden. - container.click(stopPropagation); + if (isValid()) { + updateOriginalInput(true); + hide(); + } + }); - // Handle user typed input - textInput.change(setFromTextInput); - textInput.bind("paste", function () { - setTimeout(setFromTextInput, 1); - }); - textInput.keydown(function (e) { - if (e.keyCode == 13) { - setFromTextInput(); - } - }); + toggleButton.text(opts.showPaletteOnly ? opts.togglePaletteMoreText : opts.togglePaletteLessText); + toggleButton.bind('click.spectrum', function (e) { + e.stopPropagation(); + e.preventDefault(); - cancelButton.text(opts.cancelText); - cancelButton.bind("click.spectrum", function (e) { - e.stopPropagation(); - e.preventDefault(); - revert(); - hide(); - }); + opts.showPaletteOnly = !opts.showPaletteOnly; - clearButton.attr("title", opts.clearText); - clearButton.bind("click.spectrum", function (e) { - e.stopPropagation(); - e.preventDefault(); - isEmpty = true; - move(); + // To make sure the Picker area is drawn on the right, next to the + // Palette area (and not below the palette), first move the Palette + // to the left to make space for the picker, plus 5px extra. + // The 'applyOptions' function puts the whole container back into place + // and takes care of the button-text and the sp-palette-only CSS class. + if (!opts.showPaletteOnly && !flat) { + container.css('left', '-=' + (pickerContainer.outerWidth(true) + 5)); + } + applyOptions(); + }); - if (flat) { - //for the flat style, this is a change event - updateOriginalInput(true); - } - }); + draggable(alphaSlider, function (dragX, dragY, e) { + currentAlpha = dragX / alphaWidth; + isEmpty = false; + if (e.shiftKey) { + currentAlpha = Math.round(currentAlpha * 10) / 10; + } - chooseButton.text(opts.chooseText); - chooseButton.bind("click.spectrum", function (e) { - e.stopPropagation(); - e.preventDefault(); + move(); + }, dragStart, dragStop); - if (IE && textInput.is(":focus")) { - textInput.trigger('change'); - } + draggable(slider, function (dragX, dragY) { + currentHue = parseFloat(dragY / slideHeight); + isEmpty = false; + if (!opts.showAlpha) { + currentAlpha = 1; + } + move(); + }, dragStart, dragStop); - if (isValid()) { - updateOriginalInput(true); - hide(); - } - }); + draggable(dragger, function (dragX, dragY, e) { + // shift+drag should snap the movement to either the x or y axis. + if (!e.shiftKey) { + shiftMovementDirection = null; + } else if (!shiftMovementDirection) { + var oldDragX = currentSaturation * dragWidth; + var oldDragY = dragHeight - currentValue * dragHeight; + var furtherFromX = Math.abs(dragX - oldDragX) > Math.abs(dragY - oldDragY); - toggleButton.text(opts.showPaletteOnly ? opts.togglePaletteMoreText : opts.togglePaletteLessText); - toggleButton.bind("click.spectrum", function (e) { - e.stopPropagation(); - e.preventDefault(); + shiftMovementDirection = furtherFromX ? 'x' : 'y'; + } - opts.showPaletteOnly = !opts.showPaletteOnly; + var setSaturation = !shiftMovementDirection || shiftMovementDirection === 'x'; + var setValue = !shiftMovementDirection || shiftMovementDirection === 'y'; - // To make sure the Picker area is drawn on the right, next to the - // Palette area (and not below the palette), first move the Palette - // to the left to make space for the picker, plus 5px extra. - // The 'applyOptions' function puts the whole container back into place - // and takes care of the button-text and the sp-palette-only CSS class. - if (!opts.showPaletteOnly && !flat) { - container.css('left', '-=' + (pickerContainer.outerWidth(true) + 5)); - } - applyOptions(); - }); + if (setSaturation) { + currentSaturation = parseFloat(dragX / dragWidth); + } + if (setValue) { + currentValue = parseFloat((dragHeight - dragY) / dragHeight); + } - draggable(alphaSlider, function (dragX, dragY, e) { - currentAlpha = dragX / alphaWidth; - isEmpty = false; - if (e.shiftKey) { - currentAlpha = Math.round(currentAlpha * 10) / 10; - } + isEmpty = false; + if (!opts.showAlpha) { + currentAlpha = 1; + } - move(); - }, dragStart, dragStop); + move(); + }, dragStart, dragStop); - draggable(slider, function (dragX, dragY) { - currentHue = parseFloat(dragY / slideHeight); - isEmpty = false; - if (!opts.showAlpha) { - currentAlpha = 1; - } - move(); - }, dragStart, dragStop); + if (!!initialColor) { + _set(initialColor); - draggable(dragger, function (dragX, dragY, e) { + // In case color was black - update the preview UI and set the format + // since the set function will not run (default color is black). + updateUI(); + currentPreferredFormat = opts.preferredFormat || tinycolor(initialColor).format; - // shift+drag should snap the movement to either the x or y axis. - if (!e.shiftKey) { - shiftMovementDirection = null; - } else if (!shiftMovementDirection) { - var oldDragX = currentSaturation * dragWidth; - var oldDragY = dragHeight - currentValue * dragHeight; - var furtherFromX = Math.abs(dragX - oldDragX) > Math.abs(dragY - oldDragY); + addColorToSelectionPalette(initialColor); + } else { + updateUI(); + } - shiftMovementDirection = furtherFromX ? "x" : "y"; - } + if (flat) { + show(); + } - var setSaturation = !shiftMovementDirection || shiftMovementDirection === "x"; - var setValue = !shiftMovementDirection || shiftMovementDirection === "y"; + function paletteElementClick(e) { + if (e.data && e.data.ignore) { + _set($(e.target).closest('.sp-thumb-el').data('color')); + move(); + } else { + _set($(e.target).closest('.sp-thumb-el').data('color')); + move(); + updateOriginalInput(true); + if (opts.hideAfterPaletteSelect) { + hide(); + } + } - if (setSaturation) { - currentSaturation = parseFloat(dragX / dragWidth); - } - if (setValue) { - currentValue = parseFloat((dragHeight - dragY) / dragHeight); - } + return false; + } - isEmpty = false; - if (!opts.showAlpha) { - currentAlpha = 1; - } + var paletteEvent = IE ? 'mousedown.spectrum' : 'click.spectrum touchstart.spectrum'; + paletteContainer.delegate('.sp-thumb-el', paletteEvent, paletteElementClick); + initialColorContainer.delegate('.sp-thumb-el:nth-child(1)', paletteEvent, { ignore: true }, paletteElementClick); + } - move(); - }, dragStart, dragStop); + function updateSelectionPaletteFromStorage() { + if (localStorageKey && window.localStorage) { + // Migrate old palettes over to new format. May want to remove this eventually. + try { + var oldPalette = window.localStorage[localStorageKey].split(',#'); + if (oldPalette.length > 1) { + delete window.localStorage[localStorageKey]; + $.each(oldPalette, function (i, c) { + addColorToSelectionPalette(c); + }); + } + } catch (e) {} - if (!!initialColor) { - _set(initialColor); + try { + selectionPalette = window.localStorage[localStorageKey].split(';'); + } catch (e) {} + } + } - // In case color was black - update the preview UI and set the format - // since the set function will not run (default color is black). - updateUI(); - currentPreferredFormat = opts.preferredFormat || tinycolor(initialColor).format; + function addColorToSelectionPalette(color) { + if (showSelectionPalette) { + var rgb = tinycolor(color).toRgbString(); + if (!paletteLookup[rgb] && $.inArray(rgb, selectionPalette) === -1) { + selectionPalette.push(rgb); + while (selectionPalette.length > maxSelectionSize) { + selectionPalette.shift(); + } + } - addColorToSelectionPalette(initialColor); - } else { - updateUI(); - } + if (localStorageKey && window.localStorage) { + try { + window.localStorage[localStorageKey] = selectionPalette.join(';'); + } catch (e) {} + } + } + } - if (flat) { - show(); - } + function getUniqueSelectionPalette() { + var unique = []; + if (opts.showPalette) { + for (var i = 0; i < selectionPalette.length; i++) { + var rgb = tinycolor(selectionPalette[i]).toRgbString(); - function paletteElementClick(e) { - if (e.data && e.data.ignore) { - _set($(e.target).closest(".sp-thumb-el").data("color")); - move(); - } else { - _set($(e.target).closest(".sp-thumb-el").data("color")); - move(); - updateOriginalInput(true); - if (opts.hideAfterPaletteSelect) { - hide(); - } - } + if (!paletteLookup[rgb]) { + unique.push(selectionPalette[i]); + } + } + } - return false; - } + return unique.reverse().slice(0, opts.maxSelectionSize); + } - var paletteEvent = IE ? "mousedown.spectrum" : "click.spectrum touchstart.spectrum"; - paletteContainer.delegate(".sp-thumb-el", paletteEvent, paletteElementClick); - initialColorContainer.delegate(".sp-thumb-el:nth-child(1)", paletteEvent, { ignore: true }, paletteElementClick); - } + function drawPalette() { + var currentColor = get(); - function updateSelectionPaletteFromStorage() { + var html = $.map(paletteArray, function (palette, i) { + return paletteTemplate(palette, currentColor, 'sp-palette-row sp-palette-row-' + i, opts); + }); - if (localStorageKey && window.localStorage) { + updateSelectionPaletteFromStorage(); - // Migrate old palettes over to new format. May want to remove this eventually. - try { - var oldPalette = window.localStorage[localStorageKey].split(",#"); - if (oldPalette.length > 1) { - delete window.localStorage[localStorageKey]; - $.each(oldPalette, function (i, c) { - addColorToSelectionPalette(c); - }); - } - } catch (e) {} + if (selectionPalette) { + html.push(paletteTemplate(getUniqueSelectionPalette(), currentColor, 'sp-palette-row sp-palette-row-selection', opts)); + } - try { - selectionPalette = window.localStorage[localStorageKey].split(";"); - } catch (e) {} - } - } + paletteContainer.html(html.join('')); + } - function addColorToSelectionPalette(color) { - if (showSelectionPalette) { - var rgb = tinycolor(color).toRgbString(); - if (!paletteLookup[rgb] && $.inArray(rgb, selectionPalette) === -1) { - selectionPalette.push(rgb); - while (selectionPalette.length > maxSelectionSize) { - selectionPalette.shift(); - } - } + function drawInitial() { + if (opts.showInitial) { + var initial = colorOnShow; + var current = get(); + initialColorContainer.html(paletteTemplate([initial, current], current, 'sp-palette-row-initial', opts)); + } + } - if (localStorageKey && window.localStorage) { - try { - window.localStorage[localStorageKey] = selectionPalette.join(";"); - } catch (e) {} - } - } - } + function dragStart() { + if (dragHeight <= 0 || dragWidth <= 0 || slideHeight <= 0) { + reflow(); + } + isDragging = true; + container.addClass(draggingClass); + shiftMovementDirection = null; + boundElement.trigger('dragstart.spectrum', [get()]); + } - function getUniqueSelectionPalette() { - var unique = []; - if (opts.showPalette) { - for (var i = 0; i < selectionPalette.length; i++) { - var rgb = tinycolor(selectionPalette[i]).toRgbString(); + function dragStop() { + isDragging = false; + container.removeClass(draggingClass); + boundElement.trigger('dragstop.spectrum', [get()]); + } - if (!paletteLookup[rgb]) { - unique.push(selectionPalette[i]); - } - } - } + function setFromTextInput() { + var value = textInput.val(); - return unique.reverse().slice(0, opts.maxSelectionSize); + if ((value === null || value === '') && allowEmpty) { + _set(null); + updateOriginalInput(true); + } else { + var tiny = tinycolor(value); + if (tiny.isValid()) { + _set(tiny); + updateOriginalInput(true); + } else { + textInput.addClass('sp-validation-error'); } + } + } - function drawPalette() { + function toggle() { + if (visible) { + hide(); + } else { + show(); + } + } - var currentColor = get(); + function show() { + var event = $.Event('beforeShow.spectrum'); - var html = $.map(paletteArray, function (palette, i) { - return paletteTemplate(palette, currentColor, "sp-palette-row sp-palette-row-" + i, opts); - }); + if (visible) { + reflow(); + return; + } - updateSelectionPaletteFromStorage(); + boundElement.trigger(event, [get()]); - if (selectionPalette) { - html.push(paletteTemplate(getUniqueSelectionPalette(), currentColor, "sp-palette-row sp-palette-row-selection", opts)); - } + if (callbacks.beforeShow(get()) === false || event.isDefaultPrevented()) { + return; + } - paletteContainer.html(html.join("")); - } + hideAll(); + visible = true; - function drawInitial() { - if (opts.showInitial) { - var initial = colorOnShow; - var current = get(); - initialColorContainer.html(paletteTemplate([initial, current], current, "sp-palette-row-initial", opts)); - } - } + var $doc = $(doc); + $doc.bind('keydown.spectrum', onkeydown); + $doc.bind('click.spectrum', clickout); + $(window).bind('resize.spectrum', resize); + replacer.addClass('sp-active'); + container.removeClass('sp-hidden'); - function dragStart() { - if (dragHeight <= 0 || dragWidth <= 0 || slideHeight <= 0) { - reflow(); - } - isDragging = true; - container.addClass(draggingClass); - shiftMovementDirection = null; - boundElement.trigger('dragstart.spectrum', [get()]); - } + reflow(); + updateUI(); - function dragStop() { - isDragging = false; - container.removeClass(draggingClass); - boundElement.trigger('dragstop.spectrum', [get()]); - } + colorOnShow = get(); - function setFromTextInput() { + drawInitial(); + callbacks.show(colorOnShow); + boundElement.trigger('show.spectrum', [colorOnShow]); + } - var value = textInput.val(); + function onkeydown(e) { + // Close on ESC + if (e.keyCode === 27) { + hide(); + } + } - if ((value === null || value === "") && allowEmpty) { - _set(null); - updateOriginalInput(true); - } else { - var tiny = tinycolor(value); - if (tiny.isValid()) { - _set(tiny); - updateOriginalInput(true); - } else { - textInput.addClass("sp-validation-error"); - } - } - } + function clickout(e) { + // Return on right click. + if (e.button == 2) { + return; + } - function toggle() { - if (visible) { - hide(); - } else { - show(); - } - } + // If a drag event was happening during the mouseup, don't hide + // on click. + if (isDragging) { + return; + } - function show() { - var event = $.Event('beforeShow.spectrum'); + if (clickoutFiresChange) { + updateOriginalInput(true); + } else { + revert(); + } + hide(); + } - if (visible) { - reflow(); - return; - } + function hide() { + // Return if hiding is unnecessary + if (!visible || flat) { + return; + } + visible = false; - boundElement.trigger(event, [get()]); + $(doc).unbind('keydown.spectrum', onkeydown); + $(doc).unbind('click.spectrum', clickout); + $(window).unbind('resize.spectrum', resize); - if (callbacks.beforeShow(get()) === false || event.isDefaultPrevented()) { - return; - } + replacer.removeClass('sp-active'); + container.addClass('sp-hidden'); - hideAll(); - visible = true; + callbacks.hide(get()); + boundElement.trigger('hide.spectrum', [get()]); + } - var $doc = $(doc); - $doc.bind("keydown.spectrum", onkeydown); - $doc.bind("click.spectrum", clickout); - $(window).bind("resize.spectrum", resize); - replacer.addClass("sp-active"); - container.removeClass("sp-hidden"); + function revert() { + _set(colorOnShow, true); + } - reflow(); - updateUI(); + function _set(color, ignoreFormatChange) { + if (tinycolor.equals(color, get())) { + // Update UI just in case a validation error needs + // to be cleared. + updateUI(); + return; + } - colorOnShow = get(); + var newColor, newHsv; + if (!color && allowEmpty) { + isEmpty = true; + } else { + isEmpty = false; + newColor = tinycolor(color); + newHsv = newColor.toHsv(); - drawInitial(); - callbacks.show(colorOnShow); - boundElement.trigger('show.spectrum', [colorOnShow]); - } + currentHue = newHsv.h % 360 / 360; + currentSaturation = newHsv.s; + currentValue = newHsv.v; + currentAlpha = newHsv.a; + } + updateUI(); - function onkeydown(e) { - // Close on ESC - if (e.keyCode === 27) { - hide(); - } - } + if (newColor && newColor.isValid() && !ignoreFormatChange) { + currentPreferredFormat = opts.preferredFormat || newColor.getFormat(); + } + } - function clickout(e) { - // Return on right click. - if (e.button == 2) { - return; - } + function get(opts) { + opts = opts || {}; - // If a drag event was happening during the mouseup, don't hide - // on click. - if (isDragging) { - return; - } - - if (clickoutFiresChange) { - updateOriginalInput(true); - } else { - revert(); - } - hide(); - } + if (allowEmpty && isEmpty) { + return null; + } - function hide() { - // Return if hiding is unnecessary - if (!visible || flat) { - return; - } - visible = false; + return tinycolor.fromRatio({ + h: currentHue, + s: currentSaturation, + v: currentValue, + a: Math.round(currentAlpha * 100) / 100 + }, { format: opts.format || currentPreferredFormat }); + } - $(doc).unbind("keydown.spectrum", onkeydown); - $(doc).unbind("click.spectrum", clickout); - $(window).unbind("resize.spectrum", resize); + function isValid() { + return !textInput.hasClass('sp-validation-error'); + } - replacer.removeClass("sp-active"); - container.addClass("sp-hidden"); + function move() { + updateUI(); - callbacks.hide(get()); - boundElement.trigger('hide.spectrum', [get()]); - } + callbacks.move(get()); + boundElement.trigger('move.spectrum', [get()]); + } - function revert() { - _set(colorOnShow, true); - } + function updateUI() { + textInput.removeClass('sp-validation-error'); - function _set(color, ignoreFormatChange) { - if (tinycolor.equals(color, get())) { - // Update UI just in case a validation error needs - // to be cleared. - updateUI(); - return; - } + updateHelperLocations(); - var newColor, newHsv; - if (!color && allowEmpty) { - isEmpty = true; - } else { - isEmpty = false; - newColor = tinycolor(color); - newHsv = newColor.toHsv(); - - currentHue = newHsv.h % 360 / 360; - currentSaturation = newHsv.s; - currentValue = newHsv.v; - currentAlpha = newHsv.a; - } - updateUI(); + // Update dragger background color (gradients take care of saturation and value). + var flatColor = tinycolor.fromRatio({ h: currentHue, s: 1, v: 1 }); + dragger.css('background-color', flatColor.toHexString()); - if (newColor && newColor.isValid() && !ignoreFormatChange) { - currentPreferredFormat = opts.preferredFormat || newColor.getFormat(); - } + // Get a format that alpha will be included in (hex and names ignore alpha) + var format = currentPreferredFormat; + if (currentAlpha < 1 && !(currentAlpha === 0 && format === 'name')) { + if (format === 'hex' || format === 'hex3' || format === 'hex6' || format === 'name') { + format = 'rgb'; } + } - function get(opts) { - opts = opts || {}; + var realColor = get({ format: format }), + displayColor = ''; - if (allowEmpty && isEmpty) { - return null; - } + //reset background info for preview element + previewElement.removeClass('sp-clear-display'); + previewElement.css('background-color', 'transparent'); - return tinycolor.fromRatio({ - h: currentHue, - s: currentSaturation, - v: currentValue, - a: Math.round(currentAlpha * 100) / 100 - }, { format: opts.format || currentPreferredFormat }); - } + if (!realColor && allowEmpty) { + // Update the replaced elements background with icon indicating no color selection + previewElement.addClass('sp-clear-display'); + } else { + var realHex = realColor.toHexString(), + realRgb = realColor.toRgbString(); - function isValid() { - return !textInput.hasClass("sp-validation-error"); + // Update the replaced elements background color (with actual selected color) + if (rgbaSupport || realColor.alpha === 1) { + previewElement.css('background-color', realRgb); + } else { + previewElement.css('background-color', 'transparent'); + previewElement.css('filter', realColor.toFilter()); } - function move() { - updateUI(); + if (opts.showAlpha) { + var rgb = realColor.toRgb(); + rgb.a = 0; + var realAlpha = tinycolor(rgb).toRgbString(); + var gradient = 'linear-gradient(left, ' + realAlpha + ', ' + realHex + ')'; - callbacks.move(get()); - boundElement.trigger('move.spectrum', [get()]); + if (IE) { + alphaSliderInner.css('filter', tinycolor(realAlpha).toFilter({ gradientType: 1 }, realHex)); + } else { + alphaSliderInner.css('background', '-webkit-' + gradient); + alphaSliderInner.css('background', '-moz-' + gradient); + alphaSliderInner.css('background', '-ms-' + gradient); + // Use current syntax gradient on unprefixed property. + alphaSliderInner.css('background', 'linear-gradient(to right, ' + realAlpha + ', ' + realHex + ')'); + } } - function updateUI() { + displayColor = realColor.toString(format); + } - textInput.removeClass("sp-validation-error"); + // Update the text entry input as it changes happen + if (opts.showInput) { + textInput.val(displayColor); + } - updateHelperLocations(); + if (opts.showPalette) { + drawPalette(); + } - // Update dragger background color (gradients take care of saturation and value). - var flatColor = tinycolor.fromRatio({ h: currentHue, s: 1, v: 1 }); - dragger.css("background-color", flatColor.toHexString()); + drawInitial(); + } - // Get a format that alpha will be included in (hex and names ignore alpha) - var format = currentPreferredFormat; - if (currentAlpha < 1 && !(currentAlpha === 0 && format === "name")) { - if (format === "hex" || format === "hex3" || format === "hex6" || format === "name") { - format = "rgb"; - } - } + function updateHelperLocations() { + var s = currentSaturation; + var v = currentValue; - var realColor = get({ format: format }), - displayColor = ''; - - //reset background info for preview element - previewElement.removeClass("sp-clear-display"); - previewElement.css('background-color', 'transparent'); - - if (!realColor && allowEmpty) { - // Update the replaced elements background with icon indicating no color selection - previewElement.addClass("sp-clear-display"); - } else { - var realHex = realColor.toHexString(), - realRgb = realColor.toRgbString(); - - // Update the replaced elements background color (with actual selected color) - if (rgbaSupport || realColor.alpha === 1) { - previewElement.css("background-color", realRgb); - } else { - previewElement.css("background-color", "transparent"); - previewElement.css("filter", realColor.toFilter()); - } + if (allowEmpty && isEmpty) { + //if selected color is empty, hide the helpers + alphaSlideHelper.hide(); + slideHelper.hide(); + dragHelper.hide(); + } else { + //make sure helpers are visible + alphaSlideHelper.show(); + slideHelper.show(); + dragHelper.show(); + + // Where to show the little circle in that displays your current selected color + var dragX = s * dragWidth; + var dragY = dragHeight - v * dragHeight; + dragX = Math.max(-dragHelperHeight, Math.min(dragWidth - dragHelperHeight, dragX - dragHelperHeight)); + dragY = Math.max(-dragHelperHeight, Math.min(dragHeight - dragHelperHeight, dragY - dragHelperHeight)); + dragHelper.css({ + top: dragY + 'px', + left: dragX + 'px' + }); - if (opts.showAlpha) { - var rgb = realColor.toRgb(); - rgb.a = 0; - var realAlpha = tinycolor(rgb).toRgbString(); - var gradient = "linear-gradient(left, " + realAlpha + ", " + realHex + ")"; - - if (IE) { - alphaSliderInner.css("filter", tinycolor(realAlpha).toFilter({ gradientType: 1 }, realHex)); - } else { - alphaSliderInner.css("background", "-webkit-" + gradient); - alphaSliderInner.css("background", "-moz-" + gradient); - alphaSliderInner.css("background", "-ms-" + gradient); - // Use current syntax gradient on unprefixed property. - alphaSliderInner.css("background", "linear-gradient(to right, " + realAlpha + ", " + realHex + ")"); - } - } + var alphaX = currentAlpha * alphaWidth; + alphaSlideHelper.css({ + left: alphaX - alphaSlideHelperWidth / 2 + 'px' + }); - displayColor = realColor.toString(format); - } + // Where to show the bar that displays your current selected hue + var slideY = currentHue * slideHeight; + slideHelper.css({ + top: slideY - slideHelperHeight + 'px' + }); + } + } - // Update the text entry input as it changes happen - if (opts.showInput) { - textInput.val(displayColor); - } + function updateOriginalInput(fireCallback) { + var color = get(), + displayColor = '', + hasChanged = !tinycolor.equals(color, colorOnShow); - if (opts.showPalette) { - drawPalette(); - } + if (color) { + displayColor = color.toString(currentPreferredFormat); + // Update the selection palette with the current color + addColorToSelectionPalette(color); + } - drawInitial(); - } + if (isInput) { + boundElement.val(displayColor); + } - function updateHelperLocations() { - var s = currentSaturation; - var v = currentValue; - - if (allowEmpty && isEmpty) { - //if selected color is empty, hide the helpers - alphaSlideHelper.hide(); - slideHelper.hide(); - dragHelper.hide(); - } else { - //make sure helpers are visible - alphaSlideHelper.show(); - slideHelper.show(); - dragHelper.show(); - - // Where to show the little circle in that displays your current selected color - var dragX = s * dragWidth; - var dragY = dragHeight - v * dragHeight; - dragX = Math.max(-dragHelperHeight, Math.min(dragWidth - dragHelperHeight, dragX - dragHelperHeight)); - dragY = Math.max(-dragHelperHeight, Math.min(dragHeight - dragHelperHeight, dragY - dragHelperHeight)); - dragHelper.css({ - "top": dragY + "px", - "left": dragX + "px" - }); - - var alphaX = currentAlpha * alphaWidth; - alphaSlideHelper.css({ - "left": alphaX - alphaSlideHelperWidth / 2 + "px" - }); - - // Where to show the bar that displays your current selected hue - var slideY = currentHue * slideHeight; - slideHelper.css({ - "top": slideY - slideHelperHeight + "px" - }); - } + if (fireCallback && hasChanged) { + callbacks.change(color); + boundElement.trigger('change', [color]); + } + } + + function reflow() { + if (!visible) { + return; // Calculations would be useless and wouldn't be reliable anyways + } + dragWidth = dragger.width(); + dragHeight = dragger.height(); + dragHelperHeight = dragHelper.height(); + slideWidth = slider.width(); + slideHeight = slider.height(); + slideHelperHeight = slideHelper.height(); + alphaWidth = alphaSlider.width(); + alphaSlideHelperWidth = alphaSlideHelper.width(); + + if (!flat) { + container.css('position', 'absolute'); + if (opts.offset) { + container.offset(opts.offset); + } else { + container.offset(getOffset(container, offsetElement)); } + } - function updateOriginalInput(fireCallback) { - var color = get(), - displayColor = '', - hasChanged = !tinycolor.equals(color, colorOnShow); + updateHelperLocations(); - if (color) { - displayColor = color.toString(currentPreferredFormat); - // Update the selection palette with the current color - addColorToSelectionPalette(color); - } + if (opts.showPalette) { + drawPalette(); + } - if (isInput) { - boundElement.val(displayColor); - } + boundElement.trigger('reflow.spectrum'); + } - if (fireCallback && hasChanged) { - callbacks.change(color); - boundElement.trigger('change', [color]); - } - } + function destroy() { + boundElement.show(); + offsetElement.unbind('click.spectrum touchstart.spectrum'); + container.remove(); + replacer.remove(); + spectrums[spect.id] = null; + } - function reflow() { - if (!visible) { - return; // Calculations would be useless and wouldn't be reliable anyways - } - dragWidth = dragger.width(); - dragHeight = dragger.height(); - dragHelperHeight = dragHelper.height(); - slideWidth = slider.width(); - slideHeight = slider.height(); - slideHelperHeight = slideHelper.height(); - alphaWidth = alphaSlider.width(); - alphaSlideHelperWidth = alphaSlideHelper.width(); - - if (!flat) { - container.css("position", "absolute"); - if (opts.offset) { - container.offset(opts.offset); - } else { - container.offset(getOffset(container, offsetElement)); - } - } + function option(optionName, optionValue) { + if (optionName === undefined) { + return $.extend({}, opts); + } + if (optionValue === undefined) { + return opts[optionName]; + } - updateHelperLocations(); + opts[optionName] = optionValue; - if (opts.showPalette) { - drawPalette(); - } + if (optionName === 'preferredFormat') { + currentPreferredFormat = opts.preferredFormat; + } + applyOptions(); + } - boundElement.trigger('reflow.spectrum'); - } + function enable() { + disabled = false; + boundElement.attr('disabled', false); + offsetElement.removeClass('sp-disabled'); + } - function destroy() { - boundElement.show(); - offsetElement.unbind("click.spectrum touchstart.spectrum"); - container.remove(); - replacer.remove(); - spectrums[spect.id] = null; - } + function disable() { + hide(); + disabled = true; + boundElement.attr('disabled', true); + offsetElement.addClass('sp-disabled'); + } - function option(optionName, optionValue) { - if (optionName === undefined) { - return $.extend({}, opts); - } - if (optionValue === undefined) { - return opts[optionName]; - } + function setOffset(coord) { + opts.offset = coord; + reflow(); + } - opts[optionName] = optionValue; + initialize(); - if (optionName === "preferredFormat") { - currentPreferredFormat = opts.preferredFormat; - } - applyOptions(); - } + var spect = { + show: show, + hide: hide, + toggle: toggle, + reflow: reflow, + option: option, + enable: enable, + disable: disable, + offset: setOffset, + set: function set(c) { + _set(c); + updateOriginalInput(); + }, + get: get, + destroy: destroy, + container: container + }; - function enable() { - disabled = false; - boundElement.attr("disabled", false); - offsetElement.removeClass("sp-disabled"); - } + spect.id = spectrums.push(spect) - 1; - function disable() { - hide(); - disabled = true; - boundElement.attr("disabled", true); - offsetElement.addClass("sp-disabled"); - } + return spect; + } - function setOffset(coord) { - opts.offset = coord; - reflow(); - } + /** + * checkOffset - get the offset below/above and left/right element depending on screen position + * Thanks https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.datepicker.js + */ + function getOffset(picker, input) { + var extraY = 0; + var dpWidth = picker.outerWidth(); + var dpHeight = picker.outerHeight(); + var inputHeight = input.outerHeight(); + var doc = picker[0].ownerDocument; + var docElem = doc.documentElement; + var cW = docElem.clientWidth; + var cH = docElem.clientHeight; + var scL = $(doc).scrollLeft(); + var scT = $(doc).scrollTop(); + var viewWidth = cW + scL; + var viewHeight = cH + scT; + var offset = input.offset(); - initialize(); - - var spect = { - show: show, - hide: hide, - toggle: toggle, - reflow: reflow, - option: option, - enable: enable, - disable: disable, - offset: setOffset, - set: function set(c) { - _set(c); - updateOriginalInput(); - }, - get: get, - destroy: destroy, - container: container - }; + offset.top += inputHeight; - spect.id = spectrums.push(spect) - 1; + offset.left -= Math.min(offset.left, offset.left + dpWidth > viewWidth && viewWidth > dpWidth ? Math.abs(offset.left + dpWidth - viewWidth) : 0); - return spect; - } + offset.top -= Math.min(offset.top, offset.top + dpHeight > viewHeight && viewHeight > dpHeight ? Math.abs(dpHeight + inputHeight - extraY) : extraY); - /** - * checkOffset - get the offset below/above and left/right element depending on screen position - * Thanks https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.datepicker.js - */ - function getOffset(picker, input) { - var extraY = 0; - var dpWidth = picker.outerWidth(); - var dpHeight = picker.outerHeight(); - var inputHeight = input.outerHeight(); - var doc = picker[0].ownerDocument; - var docElem = doc.documentElement; - var cW = docElem.clientWidth; - var cH = docElem.clientHeight; - var scL = $(doc).scrollLeft(); - var scT = $(doc).scrollTop(); - var viewWidth = cW + scL; - var viewHeight = cH + scT; - var offset = input.offset(); + return offset; + } - offset.top += inputHeight; + /** + * noop - do nothing + */ + function noop() {} - offset.left -= Math.min(offset.left, offset.left + dpWidth > viewWidth && viewWidth > dpWidth ? Math.abs(offset.left + dpWidth - viewWidth) : 0); + /** + * stopPropagation - makes the code only doing this a little easier to read in line + */ + function stopPropagation(e) { + e.stopPropagation(); + } - offset.top -= Math.min(offset.top, offset.top + dpHeight > viewHeight && viewHeight > dpHeight ? Math.abs(dpHeight + inputHeight - extraY) : extraY); + /** + * Create a function bound to a given object + * Thanks to underscore.js + */ + function bind(func, obj) { + var slice = Array.prototype.slice; + var args = slice.call(arguments, 2); + return function () { + return func.apply(obj, args.concat(slice.call(arguments))); + }; + } - return offset; - } + /** + * Lightweight drag helper. Handles containment within the element, so that + * when dragging, the x is within [0,element.width] and y is within [0,element.height] + */ + function draggable(element, onmove, onstart, onstop) { + onmove = onmove || function () {}; + onstart = onstart || function () {}; + onstop = onstop || function () {}; + var doc = document; + var dragging = false; + var offset = {}; + var maxHeight = 0; + var maxWidth = 0; + var hasTouch = 'ontouchstart' in window; - /** - * noop - do nothing - */ - function noop() {} + var duringDragEvents = {}; + duringDragEvents['selectstart'] = prevent; + duringDragEvents['dragstart'] = prevent; + duringDragEvents['touchmove mousemove'] = move; + duringDragEvents['touchend mouseup'] = stop; - /** - * stopPropagation - makes the code only doing this a little easier to read in line - */ - function stopPropagation(e) { + function prevent(e) { + if (e.stopPropagation) { e.stopPropagation(); + } + if (e.preventDefault) { + e.preventDefault(); + } + e.returnValue = false; } - /** - * Create a function bound to a given object - * Thanks to underscore.js - */ - function bind(func, obj) { - var slice = Array.prototype.slice; - var args = slice.call(arguments, 2); - return function () { - return func.apply(obj, args.concat(slice.call(arguments))); - }; - } - - /** - * Lightweight drag helper. Handles containment within the element, so that - * when dragging, the x is within [0,element.width] and y is within [0,element.height] - */ - function draggable(element, onmove, onstart, onstop) { - onmove = onmove || function () {}; - onstart = onstart || function () {}; - onstop = onstop || function () {}; - var doc = document; - var dragging = false; - var offset = {}; - var maxHeight = 0; - var maxWidth = 0; - var hasTouch = 'ontouchstart' in window; - - var duringDragEvents = {}; - duringDragEvents["selectstart"] = prevent; - duringDragEvents["dragstart"] = prevent; - duringDragEvents["touchmove mousemove"] = move; - duringDragEvents["touchend mouseup"] = stop; - - function prevent(e) { - if (e.stopPropagation) { - e.stopPropagation(); - } - if (e.preventDefault) { - e.preventDefault(); - } - e.returnValue = false; + function move(e) { + if (dragging) { + // Mouseup happened outside of window + if (IE && doc.documentMode < 9 && !e.button) { + return stop(); } - function move(e) { - if (dragging) { - // Mouseup happened outside of window - if (IE && doc.documentMode < 9 && !e.button) { - return stop(); - } - - var t0 = e.originalEvent && e.originalEvent.touches && e.originalEvent.touches[0]; - var pageX = t0 && t0.pageX || e.pageX; - var pageY = t0 && t0.pageY || e.pageY; - - var dragX = Math.max(0, Math.min(pageX - offset.left, maxWidth)); - var dragY = Math.max(0, Math.min(pageY - offset.top, maxHeight)); + var t0 = e.originalEvent && e.originalEvent.touches && e.originalEvent.touches[0]; + var pageX = t0 && t0.pageX || e.pageX; + var pageY = t0 && t0.pageY || e.pageY; - if (hasTouch) { - // Stop scrolling in iOS - prevent(e); - } + var dragX = Math.max(0, Math.min(pageX - offset.left, maxWidth)); + var dragY = Math.max(0, Math.min(pageY - offset.top, maxHeight)); - onmove.apply(element, [dragX, dragY, e]); - } + if (hasTouch) { + // Stop scrolling in iOS + prevent(e); } - function start(e) { - var rightclick = e.which ? e.which == 3 : e.button == 2; + onmove.apply(element, [dragX, dragY, e]); + } + } - if (!rightclick && !dragging) { - if (onstart.apply(element, arguments) !== false) { - dragging = true; - maxHeight = $(element).height(); - maxWidth = $(element).width(); - offset = $(element).offset(); + function start(e) { + var rightclick = e.which ? e.which == 3 : e.button == 2; - $(doc).bind(duringDragEvents); - $(doc.body).addClass("sp-dragging"); + if (!rightclick && !dragging) { + if (onstart.apply(element, arguments) !== false) { + dragging = true; + maxHeight = $(element).height(); + maxWidth = $(element).width(); + offset = $(element).offset(); - move(e); + $(doc).bind(duringDragEvents); + $(doc.body).addClass('sp-dragging'); - prevent(e); - } - } - } - - function stop() { - if (dragging) { - $(doc).unbind(duringDragEvents); - $(doc.body).removeClass("sp-dragging"); + move(e); - // Wait a tick before notifying observers to allow the click event - // to fire in Chrome. - setTimeout(function () { - onstop.apply(element, arguments); - }, 0); - } - dragging = false; + prevent(e); } - - $(element).bind("touchstart mousedown", start); + } } - function throttle(func, wait, debounce) { - var timeout; - return function () { - var context = this, - args = arguments; - var throttler = function throttler() { - timeout = null; - func.apply(context, args); - }; - if (debounce) clearTimeout(timeout); - if (debounce || !timeout) timeout = setTimeout(throttler, wait); - }; - } + function stop() { + if (dragging) { + $(doc).unbind(duringDragEvents); + $(doc.body).removeClass('sp-dragging'); - function inputTypeColorSupport() { - return $.fn.spectrum.inputTypeColorSupport(); + // Wait a tick before notifying observers to allow the click event + // to fire in Chrome. + setTimeout(function () { + onstop.apply(element, arguments); + }, 0); + } + dragging = false; } - /** - * Define a jQuery plugin - */ - var dataID = "spectrum.id"; - $.fn.spectrum = function (opts, extra) { - - if (typeof opts == "string") { - - var returnValue = this; - var args = Array.prototype.slice.call(arguments, 1); - - this.each(function () { - var spect = spectrums[$(this).data(dataID)]; - if (spect) { - var method = spect[opts]; - if (!method) { - throw new Error("Spectrum: no such method: '" + opts + "'"); - } - - if (opts == "get") { - returnValue = spect.get(); - } else if (opts == "container") { - returnValue = spect.container; - } else if (opts == "option") { - returnValue = spect.option.apply(spect, args); - } else if (opts == "destroy") { - spect.destroy(); - $(this).removeData(dataID); - } else { - method.apply(spect, args); - } - } - }); - - return returnValue; - } + $(element).bind('touchstart mousedown', start); + } - // Initializing a new instance of spectrum - return this.spectrum("destroy").each(function () { - var options = $.extend({}, opts, $(this).data()); - var spect = spectrum(this, options); - $(this).data(dataID, spect.id); - }); + function throttle(func, wait, debounce) { + var timeout; + return function () { + var context = this, + args = arguments; + var throttler = function throttler() { + timeout = null; + func.apply(context, args); + }; + if (debounce) clearTimeout(timeout); + if (debounce || !timeout) timeout = setTimeout(throttler, wait); }; + } - $.fn.spectrum.load = true; - $.fn.spectrum.loadOpts = {}; - $.fn.spectrum.draggable = draggable; - $.fn.spectrum.defaults = defaultOpts; - $.fn.spectrum.inputTypeColorSupport = function inputTypeColorSupport() { - if (typeof inputTypeColorSupport._cachedResult === "undefined") { - var colorInput = $("")[0]; // if color element is supported, value will default to not null - inputTypeColorSupport._cachedResult = colorInput.type === "color" && colorInput.value !== ""; - } - return inputTypeColorSupport._cachedResult; - }; + function inputTypeColorSupport() { + return $.fn.spectrum.inputTypeColorSupport(); + } - $.spectrum = {}; - $.spectrum.localization = {}; - $.spectrum.palettes = {}; + /** + * Define a jQuery plugin + */ + var dataID = 'spectrum.id'; + $.fn.spectrum = function (opts, extra) { + if (typeof opts == 'string') { + var returnValue = this; + var args = Array.prototype.slice.call(arguments, 1); - $.fn.spectrum.processNativeColorInputs = function () { - var colorInputs = $("input[type=color]"); - if (colorInputs.length && !inputTypeColorSupport()) { - colorInputs.spectrum({ - preferredFormat: "hex6" - }); - } - }; + this.each(function () { + var spect = spectrums[$(this).data(dataID)]; + if (spect) { + var method = spect[opts]; + if (!method) { + throw new Error("Spectrum: no such method: '" + opts + "'"); + } - // TinyColor v1.1.2 - // https://github.com/bgrins/TinyColor - // Brian Grinstead, MIT License + if (opts == 'get') { + returnValue = spect.get(); + } else if (opts == 'container') { + returnValue = spect.container; + } else if (opts == 'option') { + returnValue = spect.option.apply(spect, args); + } else if (opts == 'destroy') { + spect.destroy(); + $(this).removeData(dataID); + } else { + method.apply(spect, args); + } + } + }); - //(function() { + return returnValue; + } - var trimLeft = /^[\s,#]+/, - trimRight = /\s+$/, - tinyCounter = 0, - math = Math, - mathRound = math.round, - mathMin = math.min, - mathMax = math.max, - mathRandom = math.random; + // Initializing a new instance of spectrum + return this.spectrum('destroy').each(function () { + var options = $.extend({}, opts, $(this).data()); + var spect = spectrum(this, options); + $(this).data(dataID, spect.id); + }); + }; - var tinycolor = function tinycolor(color, opts) { + $.fn.spectrum.load = true; + $.fn.spectrum.loadOpts = {}; + $.fn.spectrum.draggable = draggable; + $.fn.spectrum.defaults = defaultOpts; + $.fn.spectrum.inputTypeColorSupport = function inputTypeColorSupport() { + if (typeof inputTypeColorSupport._cachedResult === 'undefined') { + var colorInput = $("")[0]; // if color element is supported, value will default to not null + inputTypeColorSupport._cachedResult = colorInput.type === 'color' && colorInput.value !== ''; + } + return inputTypeColorSupport._cachedResult; + }; - color = color ? color : ''; - opts = opts || {}; + $.spectrum = {}; + $.spectrum.localization = {}; + $.spectrum.palettes = {}; - // If input is already a tinycolor, return itself - if (color instanceof tinycolor) { - return color; - } - // If we are called as a function, call using new instead - if (!(this instanceof tinycolor)) { - return new tinycolor(color, opts); - } + $.fn.spectrum.processNativeColorInputs = function () { + var colorInputs = $('input[type=color]'); + if (colorInputs.length && !inputTypeColorSupport()) { + colorInputs.spectrum({ + preferredFormat: 'hex6' + }); + } + }; - var rgb = inputToRGB(color); - this._originalInput = color, this._r = rgb.r, this._g = rgb.g, this._b = rgb.b, this._a = rgb.a, this._roundA = mathRound(100 * this._a) / 100, this._format = opts.format || rgb.format; - this._gradientType = opts.gradientType; + // TinyColor v1.1.2 + // https://github.com/bgrins/TinyColor + // Brian Grinstead, MIT License - // Don't let the range of [0,255] come back in [0,1]. - // Potentially lose a little bit of precision here, but will fix issues where - // .5 gets interpreted as half of the total, instead of half of 1 - // If it was supposed to be 128, this was already taken care of by `inputToRgb` - if (this._r < 1) { - this._r = mathRound(this._r); - } - if (this._g < 1) { - this._g = mathRound(this._g); - } - if (this._b < 1) { - this._b = mathRound(this._b); - } + //(function() { - this._ok = rgb.ok; - this._tc_id = tinyCounter++; - }; + var trimLeft = /^[\s,#]+/, + trimRight = /\s+$/, + tinyCounter = 0, + math = Math, + mathRound = math.round, + mathMin = math.min, + mathMax = math.max, + mathRandom = math.random; - tinycolor.prototype = { - isDark: function isDark() { - return this.getBrightness() < 128; - }, - isLight: function isLight() { - return !this.isDark(); - }, - isValid: function isValid() { - return this._ok; - }, - getOriginalInput: function getOriginalInput() { - return this._originalInput; - }, - getFormat: function getFormat() { - return this._format; - }, - getAlpha: function getAlpha() { - return this._a; - }, - getBrightness: function getBrightness() { - var rgb = this.toRgb(); - return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000; - }, - setAlpha: function setAlpha(value) { - this._a = boundAlpha(value); - this._roundA = mathRound(100 * this._a) / 100; - return this; - }, - toHsv: function toHsv() { - var hsv = rgbToHsv(this._r, this._g, this._b); - return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a }; - }, - toHsvString: function toHsvString() { - var hsv = rgbToHsv(this._r, this._g, this._b); - var h = mathRound(hsv.h * 360), - s = mathRound(hsv.s * 100), - v = mathRound(hsv.v * 100); - return this._a == 1 ? "hsv(" + h + ", " + s + "%, " + v + "%)" : "hsva(" + h + ", " + s + "%, " + v + "%, " + this._roundA + ")"; - }, - toHsl: function toHsl() { - var hsl = rgbToHsl(this._r, this._g, this._b); - return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a }; - }, - toHslString: function toHslString() { - var hsl = rgbToHsl(this._r, this._g, this._b); - var h = mathRound(hsl.h * 360), - s = mathRound(hsl.s * 100), - l = mathRound(hsl.l * 100); - return this._a == 1 ? "hsl(" + h + ", " + s + "%, " + l + "%)" : "hsla(" + h + ", " + s + "%, " + l + "%, " + this._roundA + ")"; - }, - toHex: function toHex(allow3Char) { - return rgbToHex(this._r, this._g, this._b, allow3Char); - }, - toHexString: function toHexString(allow3Char) { - return '#' + this.toHex(allow3Char); - }, - toHex8: function toHex8() { - return rgbaToHex(this._r, this._g, this._b, this._a); - }, - toHex8String: function toHex8String() { - return '#' + this.toHex8(); - }, - toRgb: function toRgb() { - return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a }; - }, - toRgbString: function toRgbString() { - return this._a == 1 ? "rgb(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ")" : "rgba(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ", " + this._roundA + ")"; - }, - toPercentageRgb: function toPercentageRgb() { - return { r: mathRound(bound01(this._r, 255) * 100) + "%", g: mathRound(bound01(this._g, 255) * 100) + "%", b: mathRound(bound01(this._b, 255) * 100) + "%", a: this._a }; - }, - toPercentageRgbString: function toPercentageRgbString() { - return this._a == 1 ? "rgb(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%)" : "rgba(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%, " + this._roundA + ")"; - }, - toName: function toName() { - if (this._a === 0) { - return "transparent"; - } + var tinycolor = function tinycolor(color, opts) { + color = color ? color : ''; + opts = opts || {}; - if (this._a < 1) { - return false; - } + // If input is already a tinycolor, return itself + if (color instanceof tinycolor) { + return color; + } + // If we are called as a function, call using new instead + if (!(this instanceof tinycolor)) { + return new tinycolor(color, opts); + } - return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false; - }, - toFilter: function toFilter(secondColor) { - var hex8String = '#' + rgbaToHex(this._r, this._g, this._b, this._a); - var secondHex8String = hex8String; - var gradientType = this._gradientType ? "GradientType = 1, " : ""; - - if (secondColor) { - var s = tinycolor(secondColor); - secondHex8String = s.toHex8String(); - } + var rgb = inputToRGB(color); + this._originalInput = color, this._r = rgb.r, this._g = rgb.g, this._b = rgb.b, this._a = rgb.a, this._roundA = mathRound(100 * this._a) / 100, this._format = opts.format || rgb.format; + this._gradientType = opts.gradientType; - return "progid:DXImageTransform.Microsoft.gradient(" + gradientType + "startColorstr=" + hex8String + ",endColorstr=" + secondHex8String + ")"; - }, - toString: function toString(format) { - var formatSet = !!format; - format = format || this._format; - - var formattedString = false; - var hasAlpha = this._a < 1 && this._a >= 0; - var needsAlphaFormat = !formatSet && hasAlpha && (format === "hex" || format === "hex6" || format === "hex3" || format === "name"); - - if (needsAlphaFormat) { - // Special case for "transparent", all other non-alpha formats - // will return rgba when there is transparency. - if (format === "name" && this._a === 0) { - return this.toName(); - } - return this.toRgbString(); - } - if (format === "rgb") { - formattedString = this.toRgbString(); - } - if (format === "prgb") { - formattedString = this.toPercentageRgbString(); - } - if (format === "hex" || format === "hex6") { - formattedString = this.toHexString(); - } - if (format === "hex3") { - formattedString = this.toHexString(true); - } - if (format === "hex8") { - formattedString = this.toHex8String(); - } - if (format === "name") { - formattedString = this.toName(); - } - if (format === "hsl") { - formattedString = this.toHslString(); - } - if (format === "hsv") { - formattedString = this.toHsvString(); - } + // Don't let the range of [0,255] come back in [0,1]. + // Potentially lose a little bit of precision here, but will fix issues where + // .5 gets interpreted as half of the total, instead of half of 1 + // If it was supposed to be 128, this was already taken care of by `inputToRgb` + if (this._r < 1) { + this._r = mathRound(this._r); + } + if (this._g < 1) { + this._g = mathRound(this._g); + } + if (this._b < 1) { + this._b = mathRound(this._b); + } - return formattedString || this.toHexString(); - }, + this._ok = rgb.ok; + this._tc_id = tinyCounter++; + }; - _applyModification: function _applyModification(fn, args) { - var color = fn.apply(null, [this].concat([].slice.call(args))); - this._r = color._r; - this._g = color._g; - this._b = color._b; - this.setAlpha(color._a); - return this; - }, - lighten: function lighten() { - return this._applyModification(_lighten, arguments); - }, - brighten: function brighten() { - return this._applyModification(_brighten, arguments); - }, - darken: function darken() { - return this._applyModification(_darken, arguments); - }, - desaturate: function desaturate() { - return this._applyModification(_desaturate, arguments); - }, - saturate: function saturate() { - return this._applyModification(_saturate, arguments); - }, - greyscale: function greyscale() { - return this._applyModification(_greyscale, arguments); - }, - spin: function spin() { - return this._applyModification(_spin, arguments); - }, + tinycolor.prototype = { + isDark: function isDark() { + return this.getBrightness() < 128; + }, + isLight: function isLight() { + return !this.isDark(); + }, + isValid: function isValid() { + return this._ok; + }, + getOriginalInput: function getOriginalInput() { + return this._originalInput; + }, + getFormat: function getFormat() { + return this._format; + }, + getAlpha: function getAlpha() { + return this._a; + }, + getBrightness: function getBrightness() { + var rgb = this.toRgb(); + return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000; + }, + setAlpha: function setAlpha(value) { + this._a = boundAlpha(value); + this._roundA = mathRound(100 * this._a) / 100; + return this; + }, + toHsv: function toHsv() { + var hsv = rgbToHsv(this._r, this._g, this._b); + return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a }; + }, + toHsvString: function toHsvString() { + var hsv = rgbToHsv(this._r, this._g, this._b); + var h = mathRound(hsv.h * 360), + s = mathRound(hsv.s * 100), + v = mathRound(hsv.v * 100); + return this._a == 1 ? 'hsv(' + h + ', ' + s + '%, ' + v + '%)' : 'hsva(' + h + ', ' + s + '%, ' + v + '%, ' + this._roundA + ')'; + }, + toHsl: function toHsl() { + var hsl = rgbToHsl(this._r, this._g, this._b); + return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a }; + }, + toHslString: function toHslString() { + var hsl = rgbToHsl(this._r, this._g, this._b); + var h = mathRound(hsl.h * 360), + s = mathRound(hsl.s * 100), + l = mathRound(hsl.l * 100); + return this._a == 1 ? 'hsl(' + h + ', ' + s + '%, ' + l + '%)' : 'hsla(' + h + ', ' + s + '%, ' + l + '%, ' + this._roundA + ')'; + }, + toHex: function toHex(allow3Char) { + return rgbToHex(this._r, this._g, this._b, allow3Char); + }, + toHexString: function toHexString(allow3Char) { + return '#' + this.toHex(allow3Char); + }, + toHex8: function toHex8() { + return rgbaToHex(this._r, this._g, this._b, this._a); + }, + toHex8String: function toHex8String() { + return '#' + this.toHex8(); + }, + toRgb: function toRgb() { + return { + r: mathRound(this._r), + g: mathRound(this._g), + b: mathRound(this._b), + a: this._a + }; + }, + toRgbString: function toRgbString() { + return this._a == 1 ? 'rgb(' + mathRound(this._r) + ', ' + mathRound(this._g) + ', ' + mathRound(this._b) + ')' : 'rgba(' + mathRound(this._r) + ', ' + mathRound(this._g) + ', ' + mathRound(this._b) + ', ' + this._roundA + ')'; + }, + toPercentageRgb: function toPercentageRgb() { + return { + r: mathRound(bound01(this._r, 255) * 100) + '%', + g: mathRound(bound01(this._g, 255) * 100) + '%', + b: mathRound(bound01(this._b, 255) * 100) + '%', + a: this._a + }; + }, + toPercentageRgbString: function toPercentageRgbString() { + return this._a == 1 ? 'rgb(' + mathRound(bound01(this._r, 255) * 100) + '%, ' + mathRound(bound01(this._g, 255) * 100) + '%, ' + mathRound(bound01(this._b, 255) * 100) + '%)' : 'rgba(' + mathRound(bound01(this._r, 255) * 100) + '%, ' + mathRound(bound01(this._g, 255) * 100) + '%, ' + mathRound(bound01(this._b, 255) * 100) + '%, ' + this._roundA + ')'; + }, + toName: function toName() { + if (this._a === 0) { + return 'transparent'; + } - _applyCombination: function _applyCombination(fn, args) { - return fn.apply(null, [this].concat([].slice.call(args))); - }, - analogous: function analogous() { - return this._applyCombination(_analogous, arguments); - }, - complement: function complement() { - return this._applyCombination(_complement, arguments); - }, - monochromatic: function monochromatic() { - return this._applyCombination(_monochromatic, arguments); - }, - splitcomplement: function splitcomplement() { - return this._applyCombination(_splitcomplement, arguments); - }, - triad: function triad() { - return this._applyCombination(_triad, arguments); - }, - tetrad: function tetrad() { - return this._applyCombination(_tetrad, arguments); - } - }; + if (this._a < 1) { + return false; + } - // If input is an object, force 1 into "1.0" to handle ratios properly - // String input requires "1.0" as input, so 1 will be treated as 1 - tinycolor.fromRatio = function (color, opts) { - if ((typeof color === "undefined" ? "undefined" : _typeof(color)) == "object") { - var newColor = {}; - for (var i in color) { - if (color.hasOwnProperty(i)) { - if (i === "a") { - newColor[i] = color[i]; - } else { - newColor[i] = convertToPercentage(color[i]); - } - } - } - color = newColor; - } + return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false; + }, + toFilter: function toFilter(secondColor) { + var hex8String = '#' + rgbaToHex(this._r, this._g, this._b, this._a); + var secondHex8String = hex8String; + var gradientType = this._gradientType ? 'GradientType = 1, ' : ''; - return tinycolor(color, opts); - }; + if (secondColor) { + var s = tinycolor(secondColor); + secondHex8String = s.toHex8String(); + } - // Given a string or object, convert that input to RGB - // Possible string inputs: - // - // "red" - // "#f00" or "f00" - // "#ff0000" or "ff0000" - // "#ff000000" or "ff000000" - // "rgb 255 0 0" or "rgb (255, 0, 0)" - // "rgb 1.0 0 0" or "rgb (1, 0, 0)" - // "rgba (255, 0, 0, 1)" or "rgba 255, 0, 0, 1" - // "rgba (1.0, 0, 0, 1)" or "rgba 1.0, 0, 0, 1" - // "hsl(0, 100%, 50%)" or "hsl 0 100% 50%" - // "hsla(0, 100%, 50%, 1)" or "hsla 0 100% 50%, 1" - // "hsv(0, 100%, 100%)" or "hsv 0 100% 100%" - // - function inputToRGB(color) { + return 'progid:DXImageTransform.Microsoft.gradient(' + gradientType + 'startColorstr=' + hex8String + ',endColorstr=' + secondHex8String + ')'; + }, + toString: function toString(format) { + var formatSet = !!format; + format = format || this._format; - var rgb = { r: 0, g: 0, b: 0 }; - var a = 1; - var ok = false; - var format = false; + var formattedString = false; + var hasAlpha = this._a < 1 && this._a >= 0; + var needsAlphaFormat = !formatSet && hasAlpha && (format === 'hex' || format === 'hex6' || format === 'hex3' || format === 'name'); - if (typeof color == "string") { - color = stringInputToObject(color); + if (needsAlphaFormat) { + // Special case for "transparent", all other non-alpha formats + // will return rgba when there is transparency. + if (format === 'name' && this._a === 0) { + return this.toName(); } + return this.toRgbString(); + } + if (format === 'rgb') { + formattedString = this.toRgbString(); + } + if (format === 'prgb') { + formattedString = this.toPercentageRgbString(); + } + if (format === 'hex' || format === 'hex6') { + formattedString = this.toHexString(); + } + if (format === 'hex3') { + formattedString = this.toHexString(true); + } + if (format === 'hex8') { + formattedString = this.toHex8String(); + } + if (format === 'name') { + formattedString = this.toName(); + } + if (format === 'hsl') { + formattedString = this.toHslString(); + } + if (format === 'hsv') { + formattedString = this.toHsvString(); + } - if ((typeof color === "undefined" ? "undefined" : _typeof(color)) == "object") { - if (color.hasOwnProperty("r") && color.hasOwnProperty("g") && color.hasOwnProperty("b")) { - rgb = rgbToRgb(color.r, color.g, color.b); - ok = true; - format = String(color.r).substr(-1) === "%" ? "prgb" : "rgb"; - } else if (color.hasOwnProperty("h") && color.hasOwnProperty("s") && color.hasOwnProperty("v")) { - color.s = convertToPercentage(color.s); - color.v = convertToPercentage(color.v); - rgb = hsvToRgb(color.h, color.s, color.v); - ok = true; - format = "hsv"; - } else if (color.hasOwnProperty("h") && color.hasOwnProperty("s") && color.hasOwnProperty("l")) { - color.s = convertToPercentage(color.s); - color.l = convertToPercentage(color.l); - rgb = hslToRgb(color.h, color.s, color.l); - ok = true; - format = "hsl"; - } + return formattedString || this.toHexString(); + }, - if (color.hasOwnProperty("a")) { - a = color.a; - } - } + _applyModification: function _applyModification(fn, args) { + var color = fn.apply(null, [this].concat([].slice.call(args))); + this._r = color._r; + this._g = color._g; + this._b = color._b; + this.setAlpha(color._a); + return this; + }, + lighten: function lighten() { + return this._applyModification(_lighten, arguments); + }, + brighten: function brighten() { + return this._applyModification(_brighten, arguments); + }, + darken: function darken() { + return this._applyModification(_darken, arguments); + }, + desaturate: function desaturate() { + return this._applyModification(_desaturate, arguments); + }, + saturate: function saturate() { + return this._applyModification(_saturate, arguments); + }, + greyscale: function greyscale() { + return this._applyModification(_greyscale, arguments); + }, + spin: function spin() { + return this._applyModification(_spin, arguments); + }, - a = boundAlpha(a); + _applyCombination: function _applyCombination(fn, args) { + return fn.apply(null, [this].concat([].slice.call(args))); + }, + analogous: function analogous() { + return this._applyCombination(_analogous, arguments); + }, + complement: function complement() { + return this._applyCombination(_complement, arguments); + }, + monochromatic: function monochromatic() { + return this._applyCombination(_monochromatic, arguments); + }, + splitcomplement: function splitcomplement() { + return this._applyCombination(_splitcomplement, arguments); + }, + triad: function triad() { + return this._applyCombination(_triad, arguments); + }, + tetrad: function tetrad() { + return this._applyCombination(_tetrad, arguments); + } + }; - return { - ok: ok, - format: color.format || format, - r: mathMin(255, mathMax(rgb.r, 0)), - g: mathMin(255, mathMax(rgb.g, 0)), - b: mathMin(255, mathMax(rgb.b, 0)), - a: a - }; + // If input is an object, force 1 into "1.0" to handle ratios properly + // String input requires "1.0" as input, so 1 will be treated as 1 + tinycolor.fromRatio = function (color, opts) { + if ((typeof color === 'undefined' ? 'undefined' : _typeof(color)) == 'object') { + var newColor = {}; + for (var i in color) { + if (color.hasOwnProperty(i)) { + if (i === 'a') { + newColor[i] = color[i]; + } else { + newColor[i] = convertToPercentage(color[i]); + } + } + } + color = newColor; } - // Conversion Functions - // -------------------- + return tinycolor(color, opts); + }; - // `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from: - // + // Given a string or object, convert that input to RGB + // Possible string inputs: + // + // "red" + // "#f00" or "f00" + // "#ff0000" or "ff0000" + // "#ff000000" or "ff000000" + // "rgb 255 0 0" or "rgb (255, 0, 0)" + // "rgb 1.0 0 0" or "rgb (1, 0, 0)" + // "rgba (255, 0, 0, 1)" or "rgba 255, 0, 0, 1" + // "rgba (1.0, 0, 0, 1)" or "rgba 1.0, 0, 0, 1" + // "hsl(0, 100%, 50%)" or "hsl 0 100% 50%" + // "hsla(0, 100%, 50%, 1)" or "hsla 0 100% 50%, 1" + // "hsv(0, 100%, 100%)" or "hsv 0 100% 100%" + // + function inputToRGB(color) { + var rgb = { r: 0, g: 0, b: 0 }; + var a = 1; + var ok = false; + var format = false; - // `rgbToRgb` - // Handle bounds / percentage checking to conform to CSS color spec - // - // *Assumes:* r, g, b in [0, 255] or [0, 1] - // *Returns:* { r, g, b } in [0, 255] - function rgbToRgb(r, g, b) { - return { - r: bound01(r, 255) * 255, - g: bound01(g, 255) * 255, - b: bound01(b, 255) * 255 - }; + if (typeof color == 'string') { + color = stringInputToObject(color); } - // `rgbToHsl` - // Converts an RGB color value to HSL. - // *Assumes:* r, g, and b are contained in [0, 255] or [0, 1] - // *Returns:* { h, s, l } in [0,1] - function rgbToHsl(r, g, b) { + if ((typeof color === 'undefined' ? 'undefined' : _typeof(color)) == 'object') { + if (color.hasOwnProperty('r') && color.hasOwnProperty('g') && color.hasOwnProperty('b')) { + rgb = rgbToRgb(color.r, color.g, color.b); + ok = true; + format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb'; + } else if (color.hasOwnProperty('h') && color.hasOwnProperty('s') && color.hasOwnProperty('v')) { + color.s = convertToPercentage(color.s); + color.v = convertToPercentage(color.v); + rgb = hsvToRgb(color.h, color.s, color.v); + ok = true; + format = 'hsv'; + } else if (color.hasOwnProperty('h') && color.hasOwnProperty('s') && color.hasOwnProperty('l')) { + color.s = convertToPercentage(color.s); + color.l = convertToPercentage(color.l); + rgb = hslToRgb(color.h, color.s, color.l); + ok = true; + format = 'hsl'; + } - r = bound01(r, 255); - g = bound01(g, 255); - b = bound01(b, 255); + if (color.hasOwnProperty('a')) { + a = color.a; + } + } - var max = mathMax(r, g, b), - min = mathMin(r, g, b); - var h, - s, - l = (max + min) / 2; + a = boundAlpha(a); - if (max == min) { - h = s = 0; // achromatic - } else { - var d = max - min; - s = l > 0.5 ? d / (2 - max - min) : d / (max + min); - switch (max) { - case r: - h = (g - b) / d + (g < b ? 6 : 0);break; - case g: - h = (b - r) / d + 2;break; - case b: - h = (r - g) / d + 4;break; - } + return { + ok: ok, + format: color.format || format, + r: mathMin(255, mathMax(rgb.r, 0)), + g: mathMin(255, mathMax(rgb.g, 0)), + b: mathMin(255, mathMax(rgb.b, 0)), + a: a + }; + } - h /= 6; - } + // Conversion Functions + // -------------------- - return { h: h, s: s, l: l }; - } + // `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from: + // - // `hslToRgb` - // Converts an HSL color value to RGB. - // *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100] - // *Returns:* { r, g, b } in the set [0, 255] - function hslToRgb(h, s, l) { - var r, g, b; + // `rgbToRgb` + // Handle bounds / percentage checking to conform to CSS color spec + // + // *Assumes:* r, g, b in [0, 255] or [0, 1] + // *Returns:* { r, g, b } in [0, 255] + function rgbToRgb(r, g, b) { + return { + r: bound01(r, 255) * 255, + g: bound01(g, 255) * 255, + b: bound01(b, 255) * 255 + }; + } - h = bound01(h, 360); - s = bound01(s, 100); - l = bound01(l, 100); + // `rgbToHsl` + // Converts an RGB color value to HSL. + // *Assumes:* r, g, and b are contained in [0, 255] or [0, 1] + // *Returns:* { h, s, l } in [0,1] + function rgbToHsl(r, g, b) { + r = bound01(r, 255); + g = bound01(g, 255); + b = bound01(b, 255); - function hue2rgb(p, q, t) { - if (t < 0) t += 1; - if (t > 1) t -= 1; - if (t < 1 / 6) return p + (q - p) * 6 * t; - if (t < 1 / 2) return q; - if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6; - return p; - } + var max = mathMax(r, g, b), + min = mathMin(r, g, b); + var h, + s, + l = (max + min) / 2; - if (s === 0) { - r = g = b = l; // achromatic - } else { - var q = l < 0.5 ? l * (1 + s) : l + s - l * s; - var p = 2 * l - q; - r = hue2rgb(p, q, h + 1 / 3); - g = hue2rgb(p, q, h); - b = hue2rgb(p, q, h - 1 / 3); - } + if (max == min) { + h = s = 0; // achromatic + } else { + var d = max - min; + s = l > 0.5 ? d / (2 - max - min) : d / (max + min); + switch (max) { + case r: + h = (g - b) / d + (g < b ? 6 : 0); + break; + case g: + h = (b - r) / d + 2; + break; + case b: + h = (r - g) / d + 4; + break; + } - return { r: r * 255, g: g * 255, b: b * 255 }; + h /= 6; } - // `rgbToHsv` - // Converts an RGB color value to HSV - // *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1] - // *Returns:* { h, s, v } in [0,1] - function rgbToHsv(r, g, b) { + return { h: h, s: s, l: l }; + } - r = bound01(r, 255); - g = bound01(g, 255); - b = bound01(b, 255); + // `hslToRgb` + // Converts an HSL color value to RGB. + // *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100] + // *Returns:* { r, g, b } in the set [0, 255] + function hslToRgb(h, s, l) { + var r, g, b; - var max = mathMax(r, g, b), - min = mathMin(r, g, b); - var h, - s, - v = max; + h = bound01(h, 360); + s = bound01(s, 100); + l = bound01(l, 100); - var d = max - min; - s = max === 0 ? 0 : d / max; + function hue2rgb(p, q, t) { + if (t < 0) t += 1; + if (t > 1) t -= 1; + if (t < 1 / 6) return p + (q - p) * 6 * t; + if (t < 1 / 2) return q; + if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6; + return p; + } - if (max == min) { - h = 0; // achromatic - } else { - switch (max) { - case r: - h = (g - b) / d + (g < b ? 6 : 0);break; - case g: - h = (b - r) / d + 2;break; - case b: - h = (r - g) / d + 4;break; - } - h /= 6; - } - return { h: h, s: s, v: v }; + if (s === 0) { + r = g = b = l; // achromatic + } else { + var q = l < 0.5 ? l * (1 + s) : l + s - l * s; + var p = 2 * l - q; + r = hue2rgb(p, q, h + 1 / 3); + g = hue2rgb(p, q, h); + b = hue2rgb(p, q, h - 1 / 3); } - // `hsvToRgb` - // Converts an HSV color value to RGB. - // *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100] - // *Returns:* { r, g, b } in the set [0, 255] - function hsvToRgb(h, s, v) { + return { r: r * 255, g: g * 255, b: b * 255 }; + } + + // `rgbToHsv` + // Converts an RGB color value to HSV + // *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1] + // *Returns:* { h, s, v } in [0,1] + function rgbToHsv(r, g, b) { + r = bound01(r, 255); + g = bound01(g, 255); + b = bound01(b, 255); - h = bound01(h, 360) * 6; - s = bound01(s, 100); - v = bound01(v, 100); + var max = mathMax(r, g, b), + min = mathMin(r, g, b); + var h, + s, + v = max; - var i = math.floor(h), - f = h - i, - p = v * (1 - s), - q = v * (1 - f * s), - t = v * (1 - (1 - f) * s), - mod = i % 6, - r = [v, q, p, p, t, v][mod], - g = [t, v, v, q, p, p][mod], - b = [p, p, t, v, v, q][mod]; + var d = max - min; + s = max === 0 ? 0 : d / max; - return { r: r * 255, g: g * 255, b: b * 255 }; + if (max == min) { + h = 0; // achromatic + } else { + switch (max) { + case r: + h = (g - b) / d + (g < b ? 6 : 0); + break; + case g: + h = (b - r) / d + 2; + break; + case b: + h = (r - g) / d + 4; + break; + } + h /= 6; } + return { h: h, s: s, v: v }; + } - // `rgbToHex` - // Converts an RGB color to hex - // Assumes r, g, and b are contained in the set [0, 255] - // Returns a 3 or 6 character hex - function rgbToHex(r, g, b, allow3Char) { + // `hsvToRgb` + // Converts an HSV color value to RGB. + // *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100] + // *Returns:* { r, g, b } in the set [0, 255] + function hsvToRgb(h, s, v) { + h = bound01(h, 360) * 6; + s = bound01(s, 100); + v = bound01(v, 100); - var hex = [pad2(mathRound(r).toString(16)), pad2(mathRound(g).toString(16)), pad2(mathRound(b).toString(16))]; + var i = math.floor(h), + f = h - i, + p = v * (1 - s), + q = v * (1 - f * s), + t = v * (1 - (1 - f) * s), + mod = i % 6, + r = [v, q, p, p, t, v][mod], + g = [t, v, v, q, p, p][mod], + b = [p, p, t, v, v, q][mod]; - // Return a 3 character hex if possible - if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) { - return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0); - } - - return hex.join(""); - } - // `rgbaToHex` - // Converts an RGBA color plus alpha transparency to hex - // Assumes r, g, b and a are contained in the set [0, 255] - // Returns an 8 character hex - function rgbaToHex(r, g, b, a) { + return { r: r * 255, g: g * 255, b: b * 255 }; + } - var hex = [pad2(convertDecimalToHex(a)), pad2(mathRound(r).toString(16)), pad2(mathRound(g).toString(16)), pad2(mathRound(b).toString(16))]; + // `rgbToHex` + // Converts an RGB color to hex + // Assumes r, g, and b are contained in the set [0, 255] + // Returns a 3 or 6 character hex + function rgbToHex(r, g, b, allow3Char) { + var hex = [pad2(mathRound(r).toString(16)), pad2(mathRound(g).toString(16)), pad2(mathRound(b).toString(16))]; - return hex.join(""); + // Return a 3 character hex if possible + if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) { + return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0); } - // `equals` - // Can be called with any tinycolor input - tinycolor.equals = function (color1, color2) { - if (!color1 || !color2) { - return false; - } - return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString(); - }; - tinycolor.random = function () { - return tinycolor.fromRatio({ - r: mathRandom(), - g: mathRandom(), - b: mathRandom() - }); - }; + return hex.join(''); + } + // `rgbaToHex` + // Converts an RGBA color plus alpha transparency to hex + // Assumes r, g, b and a are contained in the set [0, 255] + // Returns an 8 character hex + function rgbaToHex(r, g, b, a) { + var hex = [pad2(convertDecimalToHex(a)), pad2(mathRound(r).toString(16)), pad2(mathRound(g).toString(16)), pad2(mathRound(b).toString(16))]; - // Modification Functions - // ---------------------- - // Thanks to less.js for some of the basics here - // + return hex.join(''); + } - function _desaturate(color, amount) { - amount = amount === 0 ? 0 : amount || 10; - var hsl = tinycolor(color).toHsl(); - hsl.s -= amount / 100; - hsl.s = clamp01(hsl.s); - return tinycolor(hsl); + // `equals` + // Can be called with any tinycolor input + tinycolor.equals = function (color1, color2) { + if (!color1 || !color2) { + return false; } + return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString(); + }; + tinycolor.random = function () { + return tinycolor.fromRatio({ + r: mathRandom(), + g: mathRandom(), + b: mathRandom() + }); + }; - function _saturate(color, amount) { - amount = amount === 0 ? 0 : amount || 10; - var hsl = tinycolor(color).toHsl(); - hsl.s += amount / 100; - hsl.s = clamp01(hsl.s); - return tinycolor(hsl); - } + // Modification Functions + // ---------------------- + // Thanks to less.js for some of the basics here + // - function _greyscale(color) { - return tinycolor(color).desaturate(100); - } + function _desaturate(color, amount) { + amount = amount === 0 ? 0 : amount || 10; + var hsl = tinycolor(color).toHsl(); + hsl.s -= amount / 100; + hsl.s = clamp01(hsl.s); + return tinycolor(hsl); + } - function _lighten(color, amount) { - amount = amount === 0 ? 0 : amount || 10; - var hsl = tinycolor(color).toHsl(); - hsl.l += amount / 100; - hsl.l = clamp01(hsl.l); - return tinycolor(hsl); - } + function _saturate(color, amount) { + amount = amount === 0 ? 0 : amount || 10; + var hsl = tinycolor(color).toHsl(); + hsl.s += amount / 100; + hsl.s = clamp01(hsl.s); + return tinycolor(hsl); + } - function _brighten(color, amount) { - amount = amount === 0 ? 0 : amount || 10; - var rgb = tinycolor(color).toRgb(); - rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * -(amount / 100)))); - rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * -(amount / 100)))); - rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * -(amount / 100)))); - return tinycolor(rgb); - } + function _greyscale(color) { + return tinycolor(color).desaturate(100); + } - function _darken(color, amount) { - amount = amount === 0 ? 0 : amount || 10; - var hsl = tinycolor(color).toHsl(); - hsl.l -= amount / 100; - hsl.l = clamp01(hsl.l); - return tinycolor(hsl); - } + function _lighten(color, amount) { + amount = amount === 0 ? 0 : amount || 10; + var hsl = tinycolor(color).toHsl(); + hsl.l += amount / 100; + hsl.l = clamp01(hsl.l); + return tinycolor(hsl); + } - // Spin takes a positive or negative amount within [-360, 360] indicating the change of hue. - // Values outside of this range will be wrapped into this range. - function _spin(color, amount) { - var hsl = tinycolor(color).toHsl(); - var hue = (mathRound(hsl.h) + amount) % 360; - hsl.h = hue < 0 ? 360 + hue : hue; - return tinycolor(hsl); - } + function _brighten(color, amount) { + amount = amount === 0 ? 0 : amount || 10; + var rgb = tinycolor(color).toRgb(); + rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * -(amount / 100)))); + rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * -(amount / 100)))); + rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * -(amount / 100)))); + return tinycolor(rgb); + } - // Combination Functions - // --------------------- - // Thanks to jQuery xColor for some of the ideas behind these - // + function _darken(color, amount) { + amount = amount === 0 ? 0 : amount || 10; + var hsl = tinycolor(color).toHsl(); + hsl.l -= amount / 100; + hsl.l = clamp01(hsl.l); + return tinycolor(hsl); + } - function _complement(color) { - var hsl = tinycolor(color).toHsl(); - hsl.h = (hsl.h + 180) % 360; - return tinycolor(hsl); - } + // Spin takes a positive or negative amount within [-360, 360] indicating the change of hue. + // Values outside of this range will be wrapped into this range. + function _spin(color, amount) { + var hsl = tinycolor(color).toHsl(); + var hue = (mathRound(hsl.h) + amount) % 360; + hsl.h = hue < 0 ? 360 + hue : hue; + return tinycolor(hsl); + } - function _triad(color) { - var hsl = tinycolor(color).toHsl(); - var h = hsl.h; - return [tinycolor(color), tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }), tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })]; - } + // Combination Functions + // --------------------- + // Thanks to jQuery xColor for some of the ideas behind these + // - function _tetrad(color) { - var hsl = tinycolor(color).toHsl(); - var h = hsl.h; - return [tinycolor(color), tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }), tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }), tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })]; - } + function _complement(color) { + var hsl = tinycolor(color).toHsl(); + hsl.h = (hsl.h + 180) % 360; + return tinycolor(hsl); + } - function _splitcomplement(color) { - var hsl = tinycolor(color).toHsl(); - var h = hsl.h; - return [tinycolor(color), tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }), tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l })]; - } + function _triad(color) { + var hsl = tinycolor(color).toHsl(); + var h = hsl.h; + return [tinycolor(color), tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }), tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })]; + } - function _analogous(color, results, slices) { - results = results || 6; - slices = slices || 30; + function _tetrad(color) { + var hsl = tinycolor(color).toHsl(); + var h = hsl.h; + return [tinycolor(color), tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }), tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }), tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })]; + } - var hsl = tinycolor(color).toHsl(); - var part = 360 / slices; - var ret = [tinycolor(color)]; + function _splitcomplement(color) { + var hsl = tinycolor(color).toHsl(); + var h = hsl.h; + return [tinycolor(color), tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }), tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l })]; + } - for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results;) { - hsl.h = (hsl.h + part) % 360; - ret.push(tinycolor(hsl)); - } - return ret; - } + function _analogous(color, results, slices) { + results = results || 6; + slices = slices || 30; - function _monochromatic(color, results) { - results = results || 6; - var hsv = tinycolor(color).toHsv(); - var h = hsv.h, - s = hsv.s, - v = hsv.v; - var ret = []; - var modification = 1 / results; + var hsl = tinycolor(color).toHsl(); + var part = 360 / slices; + var ret = [tinycolor(color)]; - while (results--) { - ret.push(tinycolor({ h: h, s: s, v: v })); - v = (v + modification) % 1; - } + for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results;) { + hsl.h = (hsl.h + part) % 360; + ret.push(tinycolor(hsl)); + } + return ret; + } - return ret; + function _monochromatic(color, results) { + results = results || 6; + var hsv = tinycolor(color).toHsv(); + var h = hsv.h, + s = hsv.s, + v = hsv.v; + var ret = []; + var modification = 1 / results; + + while (results--) { + ret.push(tinycolor({ h: h, s: s, v: v })); + v = (v + modification) % 1; } - // Utility Functions - // --------------------- + return ret; + } - tinycolor.mix = function (color1, color2, amount) { - amount = amount === 0 ? 0 : amount || 50; + // Utility Functions + // --------------------- - var rgb1 = tinycolor(color1).toRgb(); - var rgb2 = tinycolor(color2).toRgb(); + tinycolor.mix = function (color1, color2, amount) { + amount = amount === 0 ? 0 : amount || 50; - var p = amount / 100; - var w = p * 2 - 1; - var a = rgb2.a - rgb1.a; + var rgb1 = tinycolor(color1).toRgb(); + var rgb2 = tinycolor(color2).toRgb(); - var w1; + var p = amount / 100; + var w = p * 2 - 1; + var a = rgb2.a - rgb1.a; - if (w * a == -1) { - w1 = w; - } else { - w1 = (w + a) / (1 + w * a); - } + var w1; - w1 = (w1 + 1) / 2; + if (w * a == -1) { + w1 = w; + } else { + w1 = (w + a) / (1 + w * a); + } - var w2 = 1 - w1; + w1 = (w1 + 1) / 2; - var rgba = { - r: rgb2.r * w1 + rgb1.r * w2, - g: rgb2.g * w1 + rgb1.g * w2, - b: rgb2.b * w1 + rgb1.b * w2, - a: rgb2.a * p + rgb1.a * (1 - p) - }; + var w2 = 1 - w1; - return tinycolor(rgba); + var rgba = { + r: rgb2.r * w1 + rgb1.r * w2, + g: rgb2.g * w1 + rgb1.g * w2, + b: rgb2.b * w1 + rgb1.b * w2, + a: rgb2.a * p + rgb1.a * (1 - p) }; - // Readability Functions - // --------------------- - // - - // `readability` - // Analyze the 2 colors and returns an object with the following properties: - // `brightness`: difference in brightness between the two colors - // `color`: difference in color/hue between the two colors - tinycolor.readability = function (color1, color2) { - var c1 = tinycolor(color1); - var c2 = tinycolor(color2); - var rgb1 = c1.toRgb(); - var rgb2 = c2.toRgb(); - var brightnessA = c1.getBrightness(); - var brightnessB = c2.getBrightness(); - var colorDiff = Math.max(rgb1.r, rgb2.r) - Math.min(rgb1.r, rgb2.r) + Math.max(rgb1.g, rgb2.g) - Math.min(rgb1.g, rgb2.g) + Math.max(rgb1.b, rgb2.b) - Math.min(rgb1.b, rgb2.b); + return tinycolor(rgba); + }; - return { - brightness: Math.abs(brightnessA - brightnessB), - color: colorDiff - }; - }; + // Readability Functions + // --------------------- + // - // `readable` - // http://www.w3.org/TR/AERT#color-contrast - // Ensure that foreground and background color combinations provide sufficient contrast. - // *Example* - // tinycolor.isReadable("#000", "#111") => false - tinycolor.isReadable = function (color1, color2) { - var readability = tinycolor.readability(color1, color2); - return readability.brightness > 125 && readability.color > 500; - }; + // `readability` + // Analyze the 2 colors and returns an object with the following properties: + // `brightness`: difference in brightness between the two colors + // `color`: difference in color/hue between the two colors + tinycolor.readability = function (color1, color2) { + var c1 = tinycolor(color1); + var c2 = tinycolor(color2); + var rgb1 = c1.toRgb(); + var rgb2 = c2.toRgb(); + var brightnessA = c1.getBrightness(); + var brightnessB = c2.getBrightness(); + var colorDiff = Math.max(rgb1.r, rgb2.r) - Math.min(rgb1.r, rgb2.r) + Math.max(rgb1.g, rgb2.g) - Math.min(rgb1.g, rgb2.g) + Math.max(rgb1.b, rgb2.b) - Math.min(rgb1.b, rgb2.b); - // `mostReadable` - // Given a base color and a list of possible foreground or background - // colors for that base, returns the most readable color. - // *Example* - // tinycolor.mostReadable("#123", ["#fff", "#000"]) => "#000" - tinycolor.mostReadable = function (baseColor, colorList) { - var bestColor = null; - var bestScore = 0; - var bestIsReadable = false; - for (var i = 0; i < colorList.length; i++) { - - // We normalize both around the "acceptable" breaking point, - // but rank brightness constrast higher than hue. - - var readability = tinycolor.readability(baseColor, colorList[i]); - var readable = readability.brightness > 125 && readability.color > 500; - var score = 3 * (readability.brightness / 125) + readability.color / 500; - - if (readable && !bestIsReadable || readable && bestIsReadable && score > bestScore || !readable && !bestIsReadable && score > bestScore) { - bestIsReadable = readable; - bestScore = score; - bestColor = tinycolor(colorList[i]); - } - } - return bestColor; + return { + brightness: Math.abs(brightnessA - brightnessB), + color: colorDiff }; + }; - // Big List of Colors - // ------------------ - // - var names = tinycolor.names = { - aliceblue: "f0f8ff", - antiquewhite: "faebd7", - aqua: "0ff", - aquamarine: "7fffd4", - azure: "f0ffff", - beige: "f5f5dc", - bisque: "ffe4c4", - black: "000", - blanchedalmond: "ffebcd", - blue: "00f", - blueviolet: "8a2be2", - brown: "a52a2a", - burlywood: "deb887", - burntsienna: "ea7e5d", - cadetblue: "5f9ea0", - chartreuse: "7fff00", - chocolate: "d2691e", - coral: "ff7f50", - cornflowerblue: "6495ed", - cornsilk: "fff8dc", - crimson: "dc143c", - cyan: "0ff", - darkblue: "00008b", - darkcyan: "008b8b", - darkgoldenrod: "b8860b", - darkgray: "a9a9a9", - darkgreen: "006400", - darkgrey: "a9a9a9", - darkkhaki: "bdb76b", - darkmagenta: "8b008b", - darkolivegreen: "556b2f", - darkorange: "ff8c00", - darkorchid: "9932cc", - darkred: "8b0000", - darksalmon: "e9967a", - darkseagreen: "8fbc8f", - darkslateblue: "483d8b", - darkslategray: "2f4f4f", - darkslategrey: "2f4f4f", - darkturquoise: "00ced1", - darkviolet: "9400d3", - deeppink: "ff1493", - deepskyblue: "00bfff", - dimgray: "696969", - dimgrey: "696969", - dodgerblue: "1e90ff", - firebrick: "b22222", - floralwhite: "fffaf0", - forestgreen: "228b22", - fuchsia: "f0f", - gainsboro: "dcdcdc", - ghostwhite: "f8f8ff", - gold: "ffd700", - goldenrod: "daa520", - gray: "808080", - green: "008000", - greenyellow: "adff2f", - grey: "808080", - honeydew: "f0fff0", - hotpink: "ff69b4", - indianred: "cd5c5c", - indigo: "4b0082", - ivory: "fffff0", - khaki: "f0e68c", - lavender: "e6e6fa", - lavenderblush: "fff0f5", - lawngreen: "7cfc00", - lemonchiffon: "fffacd", - lightblue: "add8e6", - lightcoral: "f08080", - lightcyan: "e0ffff", - lightgoldenrodyellow: "fafad2", - lightgray: "d3d3d3", - lightgreen: "90ee90", - lightgrey: "d3d3d3", - lightpink: "ffb6c1", - lightsalmon: "ffa07a", - lightseagreen: "20b2aa", - lightskyblue: "87cefa", - lightslategray: "789", - lightslategrey: "789", - lightsteelblue: "b0c4de", - lightyellow: "ffffe0", - lime: "0f0", - limegreen: "32cd32", - linen: "faf0e6", - magenta: "f0f", - maroon: "800000", - mediumaquamarine: "66cdaa", - mediumblue: "0000cd", - mediumorchid: "ba55d3", - mediumpurple: "9370db", - mediumseagreen: "3cb371", - mediumslateblue: "7b68ee", - mediumspringgreen: "00fa9a", - mediumturquoise: "48d1cc", - mediumvioletred: "c71585", - midnightblue: "191970", - mintcream: "f5fffa", - mistyrose: "ffe4e1", - moccasin: "ffe4b5", - navajowhite: "ffdead", - navy: "000080", - oldlace: "fdf5e6", - olive: "808000", - olivedrab: "6b8e23", - orange: "ffa500", - orangered: "ff4500", - orchid: "da70d6", - palegoldenrod: "eee8aa", - palegreen: "98fb98", - paleturquoise: "afeeee", - palevioletred: "db7093", - papayawhip: "ffefd5", - peachpuff: "ffdab9", - peru: "cd853f", - pink: "ffc0cb", - plum: "dda0dd", - powderblue: "b0e0e6", - purple: "800080", - rebeccapurple: "663399", - red: "f00", - rosybrown: "bc8f8f", - royalblue: "4169e1", - saddlebrown: "8b4513", - salmon: "fa8072", - sandybrown: "f4a460", - seagreen: "2e8b57", - seashell: "fff5ee", - sienna: "a0522d", - silver: "c0c0c0", - skyblue: "87ceeb", - slateblue: "6a5acd", - slategray: "708090", - slategrey: "708090", - snow: "fffafa", - springgreen: "00ff7f", - steelblue: "4682b4", - tan: "d2b48c", - teal: "008080", - thistle: "d8bfd8", - tomato: "ff6347", - turquoise: "40e0d0", - violet: "ee82ee", - wheat: "f5deb3", - white: "fff", - whitesmoke: "f5f5f5", - yellow: "ff0", - yellowgreen: "9acd32" - }; + // `readable` + // http://www.w3.org/TR/AERT#color-contrast + // Ensure that foreground and background color combinations provide sufficient contrast. + // *Example* + // tinycolor.isReadable("#000", "#111") => false + tinycolor.isReadable = function (color1, color2) { + var readability = tinycolor.readability(color1, color2); + return readability.brightness > 125 && readability.color > 500; + }; - // Make it easy to access colors via `hexNames[hex]` - var hexNames = tinycolor.hexNames = flip(names); + // `mostReadable` + // Given a base color and a list of possible foreground or background + // colors for that base, returns the most readable color. + // *Example* + // tinycolor.mostReadable("#123", ["#fff", "#000"]) => "#000" + tinycolor.mostReadable = function (baseColor, colorList) { + var bestColor = null; + var bestScore = 0; + var bestIsReadable = false; + for (var i = 0; i < colorList.length; i++) { + // We normalize both around the "acceptable" breaking point, + // but rank brightness constrast higher than hue. - // Utilities - // --------- + var readability = tinycolor.readability(baseColor, colorList[i]); + var readable = readability.brightness > 125 && readability.color > 500; + var score = 3 * (readability.brightness / 125) + readability.color / 500; - // `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }` - function flip(o) { - var flipped = {}; - for (var i in o) { - if (o.hasOwnProperty(i)) { - flipped[o[i]] = i; - } - } - return flipped; + if (readable && !bestIsReadable || readable && bestIsReadable && score > bestScore || !readable && !bestIsReadable && score > bestScore) { + bestIsReadable = readable; + bestScore = score; + bestColor = tinycolor(colorList[i]); + } } + return bestColor; + }; - // Return a valid alpha value [0,1] with all invalid values being set to 1 - function boundAlpha(a) { - a = parseFloat(a); - - if (isNaN(a) || a < 0 || a > 1) { - a = 1; - } + // Big List of Colors + // ------------------ + // + var names = tinycolor.names = { + aliceblue: 'f0f8ff', + antiquewhite: 'faebd7', + aqua: '0ff', + aquamarine: '7fffd4', + azure: 'f0ffff', + beige: 'f5f5dc', + bisque: 'ffe4c4', + black: '000', + blanchedalmond: 'ffebcd', + blue: '00f', + blueviolet: '8a2be2', + brown: 'a52a2a', + burlywood: 'deb887', + burntsienna: 'ea7e5d', + cadetblue: '5f9ea0', + chartreuse: '7fff00', + chocolate: 'd2691e', + coral: 'ff7f50', + cornflowerblue: '6495ed', + cornsilk: 'fff8dc', + crimson: 'dc143c', + cyan: '0ff', + darkblue: '00008b', + darkcyan: '008b8b', + darkgoldenrod: 'b8860b', + darkgray: 'a9a9a9', + darkgreen: '006400', + darkgrey: 'a9a9a9', + darkkhaki: 'bdb76b', + darkmagenta: '8b008b', + darkolivegreen: '556b2f', + darkorange: 'ff8c00', + darkorchid: '9932cc', + darkred: '8b0000', + darksalmon: 'e9967a', + darkseagreen: '8fbc8f', + darkslateblue: '483d8b', + darkslategray: '2f4f4f', + darkslategrey: '2f4f4f', + darkturquoise: '00ced1', + darkviolet: '9400d3', + deeppink: 'ff1493', + deepskyblue: '00bfff', + dimgray: '696969', + dimgrey: '696969', + dodgerblue: '1e90ff', + firebrick: 'b22222', + floralwhite: 'fffaf0', + forestgreen: '228b22', + fuchsia: 'f0f', + gainsboro: 'dcdcdc', + ghostwhite: 'f8f8ff', + gold: 'ffd700', + goldenrod: 'daa520', + gray: '808080', + green: '008000', + greenyellow: 'adff2f', + grey: '808080', + honeydew: 'f0fff0', + hotpink: 'ff69b4', + indianred: 'cd5c5c', + indigo: '4b0082', + ivory: 'fffff0', + khaki: 'f0e68c', + lavender: 'e6e6fa', + lavenderblush: 'fff0f5', + lawngreen: '7cfc00', + lemonchiffon: 'fffacd', + lightblue: 'add8e6', + lightcoral: 'f08080', + lightcyan: 'e0ffff', + lightgoldenrodyellow: 'fafad2', + lightgray: 'd3d3d3', + lightgreen: '90ee90', + lightgrey: 'd3d3d3', + lightpink: 'ffb6c1', + lightsalmon: 'ffa07a', + lightseagreen: '20b2aa', + lightskyblue: '87cefa', + lightslategray: '789', + lightslategrey: '789', + lightsteelblue: 'b0c4de', + lightyellow: 'ffffe0', + lime: '0f0', + limegreen: '32cd32', + linen: 'faf0e6', + magenta: 'f0f', + maroon: '800000', + mediumaquamarine: '66cdaa', + mediumblue: '0000cd', + mediumorchid: 'ba55d3', + mediumpurple: '9370db', + mediumseagreen: '3cb371', + mediumslateblue: '7b68ee', + mediumspringgreen: '00fa9a', + mediumturquoise: '48d1cc', + mediumvioletred: 'c71585', + midnightblue: '191970', + mintcream: 'f5fffa', + mistyrose: 'ffe4e1', + moccasin: 'ffe4b5', + navajowhite: 'ffdead', + navy: '000080', + oldlace: 'fdf5e6', + olive: '808000', + olivedrab: '6b8e23', + orange: 'ffa500', + orangered: 'ff4500', + orchid: 'da70d6', + palegoldenrod: 'eee8aa', + palegreen: '98fb98', + paleturquoise: 'afeeee', + palevioletred: 'db7093', + papayawhip: 'ffefd5', + peachpuff: 'ffdab9', + peru: 'cd853f', + pink: 'ffc0cb', + plum: 'dda0dd', + powderblue: 'b0e0e6', + purple: '800080', + rebeccapurple: '663399', + red: 'f00', + rosybrown: 'bc8f8f', + royalblue: '4169e1', + saddlebrown: '8b4513', + salmon: 'fa8072', + sandybrown: 'f4a460', + seagreen: '2e8b57', + seashell: 'fff5ee', + sienna: 'a0522d', + silver: 'c0c0c0', + skyblue: '87ceeb', + slateblue: '6a5acd', + slategray: '708090', + slategrey: '708090', + snow: 'fffafa', + springgreen: '00ff7f', + steelblue: '4682b4', + tan: 'd2b48c', + teal: '008080', + thistle: 'd8bfd8', + tomato: 'ff6347', + turquoise: '40e0d0', + violet: 'ee82ee', + wheat: 'f5deb3', + white: 'fff', + whitesmoke: 'f5f5f5', + yellow: 'ff0', + yellowgreen: '9acd32' + }; + + // Make it easy to access colors via `hexNames[hex]` + var hexNames = tinycolor.hexNames = flip(names); + + // Utilities + // --------- + + // `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }` + function flip(o) { + var flipped = {}; + for (var i in o) { + if (o.hasOwnProperty(i)) { + flipped[o[i]] = i; + } + } + return flipped; + } + + // Return a valid alpha value [0,1] with all invalid values being set to 1 + function boundAlpha(a) { + a = parseFloat(a); + + if (isNaN(a) || a < 0 || a > 1) { + a = 1; + } + + return a; + } + + // Take input from [0, n] and return it as [0, 1] + function bound01(n, max) { + if (isOnePointZero(n)) { + n = '100%'; + } + + var processPercent = isPercentage(n); + n = mathMin(max, mathMax(0, parseFloat(n))); - return a; + // Automatically convert percentage into number + if (processPercent) { + n = parseInt(n * max, 10) / 100; } - // Take input from [0, n] and return it as [0, 1] - function bound01(n, max) { - if (isOnePointZero(n)) { - n = "100%"; - } - - var processPercent = isPercentage(n); - n = mathMin(max, mathMax(0, parseFloat(n))); - - // Automatically convert percentage into number - if (processPercent) { - n = parseInt(n * max, 10) / 100; - } - - // Handle floating point rounding errors - if (math.abs(n - max) < 0.000001) { - return 1; - } - - // Convert into [0, 1] range if it isn't already - return n % max / parseFloat(max); + // Handle floating point rounding errors + if (math.abs(n - max) < 0.000001) { + return 1; } - // Force a number between 0 and 1 - function clamp01(val) { - return mathMin(1, mathMax(0, val)); - } + // Convert into [0, 1] range if it isn't already + return n % max / parseFloat(max); + } - // Parse a base-16 hex value into a base-10 integer - function parseIntFromHex(val) { - return parseInt(val, 16); - } + // Force a number between 0 and 1 + function clamp01(val) { + return mathMin(1, mathMax(0, val)); + } - // Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1 - // - function isOnePointZero(n) { - return typeof n == "string" && n.indexOf('.') != -1 && parseFloat(n) === 1; - } + // Parse a base-16 hex value into a base-10 integer + function parseIntFromHex(val) { + return parseInt(val, 16); + } - // Check to see if string passed in is a percentage - function isPercentage(n) { - return typeof n === "string" && n.indexOf('%') != -1; - } + // Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1 + // + function isOnePointZero(n) { + return typeof n == 'string' && n.indexOf('.') != -1 && parseFloat(n) === 1; + } - // Force a hex value to have 2 characters - function pad2(c) { - return c.length == 1 ? '0' + c : '' + c; - } + // Check to see if string passed in is a percentage + function isPercentage(n) { + return typeof n === 'string' && n.indexOf('%') != -1; + } - // Replace a decimal with it's percentage value - function convertToPercentage(n) { - if (n <= 1) { - n = n * 100 + "%"; - } + // Force a hex value to have 2 characters + function pad2(c) { + return c.length == 1 ? '0' + c : '' + c; + } - return n; + // Replace a decimal with it's percentage value + function convertToPercentage(n) { + if (n <= 1) { + n = n * 100 + '%'; } - // Converts a decimal to a hex value - function convertDecimalToHex(d) { - return Math.round(parseFloat(d) * 255).toString(16); - } - // Converts a hex value to a decimal - function convertHexToDecimal(h) { - return parseIntFromHex(h) / 255; - } + return n; + } - var matchers = function () { + // Converts a decimal to a hex value + function convertDecimalToHex(d) { + return Math.round(parseFloat(d) * 255).toString(16); + } + // Converts a hex value to a decimal + function convertHexToDecimal(h) { + return parseIntFromHex(h) / 255; + } - // - var CSS_INTEGER = "[-\\+]?\\d+%?"; + var matchers = function () { + // + var CSS_INTEGER = '[-\\+]?\\d+%?'; - // - var CSS_NUMBER = "[-\\+]?\\d*\\.\\d+%?"; + // + var CSS_NUMBER = '[-\\+]?\\d*\\.\\d+%?'; - // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome. - var CSS_UNIT = "(?:" + CSS_NUMBER + ")|(?:" + CSS_INTEGER + ")"; + // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome. + var CSS_UNIT = '(?:' + CSS_NUMBER + ')|(?:' + CSS_INTEGER + ')'; - // Actual matching. - // Parentheses and commas are optional, but not required. - // Whitespace can take the place of commas or opening paren - var PERMISSIVE_MATCH3 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?"; - var PERMISSIVE_MATCH4 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?"; + // Actual matching. + // Parentheses and commas are optional, but not required. + // Whitespace can take the place of commas or opening paren + var PERMISSIVE_MATCH3 = '[\\s|\\(]+(' + CSS_UNIT + ')[,|\\s]+(' + CSS_UNIT + ')[,|\\s]+(' + CSS_UNIT + ')\\s*\\)?'; + var PERMISSIVE_MATCH4 = '[\\s|\\(]+(' + CSS_UNIT + ')[,|\\s]+(' + CSS_UNIT + ')[,|\\s]+(' + CSS_UNIT + ')[,|\\s]+(' + CSS_UNIT + ')\\s*\\)?'; - return { - rgb: new RegExp("rgb" + PERMISSIVE_MATCH3), - rgba: new RegExp("rgba" + PERMISSIVE_MATCH4), - hsl: new RegExp("hsl" + PERMISSIVE_MATCH3), - hsla: new RegExp("hsla" + PERMISSIVE_MATCH4), - hsv: new RegExp("hsv" + PERMISSIVE_MATCH3), - hsva: new RegExp("hsva" + PERMISSIVE_MATCH4), - hex3: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, - hex6: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/, - hex8: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/ - }; - }(); - - // `stringInputToObject` - // Permissive string parsing. Take in a number of formats, and output an object - // based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}` - function stringInputToObject(color) { - - color = color.replace(trimLeft, '').replace(trimRight, '').toLowerCase(); - var named = false; - if (names[color]) { - color = names[color]; - named = true; - } else if (color == 'transparent') { - return { r: 0, g: 0, b: 0, a: 0, format: "name" }; - } + return { + rgb: new RegExp('rgb' + PERMISSIVE_MATCH3), + rgba: new RegExp('rgba' + PERMISSIVE_MATCH4), + hsl: new RegExp('hsl' + PERMISSIVE_MATCH3), + hsla: new RegExp('hsla' + PERMISSIVE_MATCH4), + hsv: new RegExp('hsv' + PERMISSIVE_MATCH3), + hsva: new RegExp('hsva' + PERMISSIVE_MATCH4), + hex3: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, + hex6: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/, + hex8: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/ + }; + }(); - // Try to match string input using regular expressions. - // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360] - // Just return an object and let the conversion functions handle that. - // This way the result will be the same whether the tinycolor is initialized with string or object. - var match; - if (match = matchers.rgb.exec(color)) { - return { r: match[1], g: match[2], b: match[3] }; - } - if (match = matchers.rgba.exec(color)) { - return { r: match[1], g: match[2], b: match[3], a: match[4] }; - } - if (match = matchers.hsl.exec(color)) { - return { h: match[1], s: match[2], l: match[3] }; - } - if (match = matchers.hsla.exec(color)) { - return { h: match[1], s: match[2], l: match[3], a: match[4] }; - } - if (match = matchers.hsv.exec(color)) { - return { h: match[1], s: match[2], v: match[3] }; - } - if (match = matchers.hsva.exec(color)) { - return { h: match[1], s: match[2], v: match[3], a: match[4] }; - } - if (match = matchers.hex8.exec(color)) { - return { - a: convertHexToDecimal(match[1]), - r: parseIntFromHex(match[2]), - g: parseIntFromHex(match[3]), - b: parseIntFromHex(match[4]), - format: named ? "name" : "hex8" - }; - } - if (match = matchers.hex6.exec(color)) { - return { - r: parseIntFromHex(match[1]), - g: parseIntFromHex(match[2]), - b: parseIntFromHex(match[3]), - format: named ? "name" : "hex" - }; - } - if (match = matchers.hex3.exec(color)) { - return { - r: parseIntFromHex(match[1] + '' + match[1]), - g: parseIntFromHex(match[2] + '' + match[2]), - b: parseIntFromHex(match[3] + '' + match[3]), - format: named ? "name" : "hex" - }; - } + // `stringInputToObject` + // Permissive string parsing. Take in a number of formats, and output an object + // based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}` + function stringInputToObject(color) { + color = color.replace(trimLeft, '').replace(trimRight, '').toLowerCase(); + var named = false; + if (names[color]) { + color = names[color]; + named = true; + } else if (color == 'transparent') { + return { r: 0, g: 0, b: 0, a: 0, format: 'name' }; + } - return false; + // Try to match string input using regular expressions. + // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360] + // Just return an object and let the conversion functions handle that. + // This way the result will be the same whether the tinycolor is initialized with string or object. + var match; + if (match = matchers.rgb.exec(color)) { + return { r: match[1], g: match[2], b: match[3] }; + } + if (match = matchers.rgba.exec(color)) { + return { r: match[1], g: match[2], b: match[3], a: match[4] }; + } + if (match = matchers.hsl.exec(color)) { + return { h: match[1], s: match[2], l: match[3] }; + } + if (match = matchers.hsla.exec(color)) { + return { h: match[1], s: match[2], l: match[3], a: match[4] }; + } + if (match = matchers.hsv.exec(color)) { + return { h: match[1], s: match[2], v: match[3] }; + } + if (match = matchers.hsva.exec(color)) { + return { h: match[1], s: match[2], v: match[3], a: match[4] }; + } + if (match = matchers.hex8.exec(color)) { + return { + a: convertHexToDecimal(match[1]), + r: parseIntFromHex(match[2]), + g: parseIntFromHex(match[3]), + b: parseIntFromHex(match[4]), + format: named ? 'name' : 'hex8' + }; + } + if (match = matchers.hex6.exec(color)) { + return { + r: parseIntFromHex(match[1]), + g: parseIntFromHex(match[2]), + b: parseIntFromHex(match[3]), + format: named ? 'name' : 'hex' + }; + } + if (match = matchers.hex3.exec(color)) { + return { + r: parseIntFromHex(match[1] + '' + match[1]), + g: parseIntFromHex(match[2] + '' + match[2]), + b: parseIntFromHex(match[3] + '' + match[3]), + format: named ? 'name' : 'hex' + }; } - window.tinycolor = tinycolor; - //})(); + return false; + } - $(function () { - if ($.fn.spectrum.load) { - $.fn.spectrum.processNativeColorInputs(); - } - }); + window.tinycolor = tinycolor; + //})(); + + $(function () { + if ($.fn.spectrum.load) { + $.fn.spectrum.processNativeColorInputs(); + } + }); }); /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 125 */ +/* 123 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var Backbone = __webpack_require__(0); -var LayerView = __webpack_require__(126); +var LayerView = __webpack_require__(124); module.exports = Backbone.View.extend({ initialize: function initialize(o) { @@ -39009,14 +39050,13 @@ module.exports = Backbone.View.extend({ }); /***/ }), -/* 126 */ +/* 124 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(Backbone) { module.exports = Backbone.View.extend({ - events: { click: 'active', 'click [data-close-layer]': 'remove', @@ -39169,7 +39209,7 @@ module.exports = Backbone.View.extend({ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 127 */ +/* 125 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -39180,15 +39220,13 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument var Property = __webpack_require__(42); module.exports = Property.extend({ - defaults: _extends({}, Property.prototype.defaults, { showInput: 1 }) - }); /***/ }), -/* 128 */ +/* 126 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -39197,7 +39235,6 @@ module.exports = Property.extend({ var Property = __webpack_require__(14); module.exports = Property.extend({ - events: { 'change [type=range]': 'inputValueChanged', 'input [type=range]': 'inputValueChangedSoft' @@ -39241,7 +39278,7 @@ module.exports = Property.extend({ }); /***/ }), -/* 129 */ +/* 127 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -39276,64 +39313,114 @@ module.exports = function () { // Fixed values switch (prop) { - case 'margin-top':case 'margin-right':case 'margin-bottom':case 'margin-left': - case 'padding-top':case 'padding-right':case 'padding-bottom':case 'padding-left': - case 'width':case 'max-width':case 'min-width': - case 'height':case 'max-height':case 'min-height': + case 'margin-top': + case 'margin-right': + case 'margin-bottom': + case 'margin-left': + case 'padding-top': + case 'padding-right': + case 'padding-bottom': + case 'padding-left': + case 'width': + case 'max-width': + case 'min-width': + case 'height': + case 'max-height': + case 'min-height': obj.fixedValues = ['initial', 'inherit', 'auto']; break; case 'font-size': obj.fixedValues = ['medium', 'xx-small', 'x-small', 'small', 'large', 'x-large', 'xx-large', 'smaller', 'larger', 'length', 'initial', 'inherit']; break; - case 'letter-spacing':case 'line-height': + case 'letter-spacing': + case 'line-height': obj.fixedValues = ['normal', 'initial', 'inherit']; break; } // Type switch (prop) { - case 'float':case 'position': + case 'float': + case 'position': case 'text-align': obj.type = 'radio'; break; - case 'display':case 'font-family': + case 'display': + case 'font-family': case 'font-weight': case 'border-style': case 'box-shadow-type': - case 'background-repeat':case 'background-position':case 'background-attachment':case 'background-size': - case 'transition-property':case 'transition-timing-function': + case 'background-repeat': + case 'background-position': + case 'background-attachment': + case 'background-size': + case 'transition-property': + case 'transition-timing-function': case 'cursor': case 'overflow': obj.type = 'select'; break; - case 'top':case 'right':case 'bottom':case 'left': - case 'margin-top':case 'margin-right':case 'margin-bottom':case 'margin-left': - case 'padding-top':case 'padding-right':case 'padding-bottom':case 'padding-left': - case 'min-height':case 'min-width':case 'max-height':case 'max-width': - case 'width':case 'height': - case 'font-size':case 'letter-spacing':case 'line-height': - case 'text-shadow-h':case 'text-shadow-v':case 'text-shadow-blur': + case 'top': + case 'right': + case 'bottom': + case 'left': + case 'margin-top': + case 'margin-right': + case 'margin-bottom': + case 'margin-left': + case 'padding-top': + case 'padding-right': + case 'padding-bottom': + case 'padding-left': + case 'min-height': + case 'min-width': + case 'max-height': + case 'max-width': + case 'width': + case 'height': + case 'font-size': + case 'letter-spacing': + case 'line-height': + case 'text-shadow-h': + case 'text-shadow-v': + case 'text-shadow-blur': case 'border-radius-c': - case 'border-top-left-radius':case 'border-top-right-radius':case 'border-bottom-left-radius':case 'border-bottom-right-radius': + case 'border-top-left-radius': + case 'border-top-right-radius': + case 'border-bottom-left-radius': + case 'border-bottom-right-radius': case 'border-width': - case 'box-shadow-h':case 'box-shadow-v':case 'box-shadow-blur':case 'box-shadow-spread': + case 'box-shadow-h': + case 'box-shadow-v': + case 'box-shadow-blur': + case 'box-shadow-spread': case 'transition-duration': case 'perspective': - case 'transform-rotate-x':case 'transform-rotate-y':case 'transform-rotate-z': - case 'transform-scale-x':case 'transform-scale-y':case 'transform-scale-z': + case 'transform-rotate-x': + case 'transform-rotate-y': + case 'transform-rotate-z': + case 'transform-scale-x': + case 'transform-scale-y': + case 'transform-scale-z': obj.type = 'integer'; break; - case 'margin':case 'padding': + case 'margin': + case 'padding': case 'border-radius': case 'border': case 'transform': obj.type = 'composite'; break; - case 'color':case 'text-shadow-color': - case 'background-color':case 'border-color':case 'box-shadow-color': + case 'color': + case 'text-shadow-color': + case 'background-color': + case 'border-color': + case 'box-shadow-color': obj.type = 'color'; break; - case 'text-shadow':case 'box-shadow':case 'background': + case 'text-shadow': + case 'box-shadow': + case 'background': case 'transition': obj.type = 'stack'; break; @@ -39344,8 +39431,10 @@ module.exports = function () { // Defaults switch (prop) { - case 'float':case 'background-color': - case 'background-image':case 'text-shadow': + case 'float': + case 'background-color': + case 'background-image': + case 'text-shadow': obj.defaults = 'none'; break; case 'display': @@ -39354,25 +39443,49 @@ module.exports = function () { case 'position': obj.defaults = 'static'; break; - case 'top':case 'right':case 'bottom':case 'left': - case 'margin-top':case 'margin-right':case 'margin-bottom':case 'margin-left': - case 'padding-top':case 'padding-right':case 'padding-bottom':case 'padding-left': - case 'text-shadow-h':case 'text-shadow-v':case 'text-shadow-blur': + case 'top': + case 'right': + case 'bottom': + case 'left': + case 'margin-top': + case 'margin-right': + case 'margin-bottom': + case 'margin-left': + case 'padding-top': + case 'padding-right': + case 'padding-bottom': + case 'padding-left': + case 'text-shadow-h': + case 'text-shadow-v': + case 'text-shadow-blur': case 'border-radius-c': - case 'border-top-left-radius':case 'border-top-right-radius':case 'border-bottom-left-radius':case 'border-bottom-right-radius': - case 'box-shadow-h':case 'box-shadow-v':case 'box-shadow-spread': + case 'border-top-left-radius': + case 'border-top-right-radius': + case 'border-bottom-left-radius': + case 'border-bottom-right-radius': + case 'box-shadow-h': + case 'box-shadow-v': + case 'box-shadow-spread': case 'perspective': - case 'transform-rotate-x':case 'transform-rotate-y':case 'transform-rotate-z': + case 'transform-rotate-x': + case 'transform-rotate-y': + case 'transform-rotate-z': obj.defaults = 0; break; - case 'transform-scale-x':case 'transform-scale-y':case 'transform-scale-z': + case 'transform-scale-x': + case 'transform-scale-y': + case 'transform-scale-z': obj.defaults = 1; break; case 'box-shadow-blur': obj.defaults = '5px'; break; - case 'min-height':case 'min-width':case 'max-height':case 'max-width': - case 'width':case 'height': + case 'min-height': + case 'min-width': + case 'max-height': + case 'max-width': + case 'width': + case 'height': case 'background-size': case 'cursor': obj.defaults = 'auto'; @@ -39380,17 +39493,21 @@ module.exports = function () { case 'font-family': obj.defaults = 'Arial, Helvetica, sans-serif'; break; - case 'font-size':case 'border-width': + case 'font-size': + case 'border-width': obj.defaults = 'medium'; break; case 'font-weight': obj.defaults = '400'; break; - case 'letter-spacing':case 'line-height': + case 'letter-spacing': + case 'line-height': obj.defaults = 'normal'; break; - case 'color':case 'text-shadow-color': - case 'border-color':case 'box-shadow-color': + case 'color': + case 'text-shadow-color': + case 'border-color': + case 'box-shadow-color': obj.defaults = 'black'; break; case 'text-align': @@ -39427,44 +39544,78 @@ module.exports = function () { // Units switch (prop) { - case 'top':case 'right':case 'bottom':case 'left': - case 'margin-top':case 'margin-right':case 'margin-bottom':case 'margin-left': - case 'padding-top':case 'padding-right':case 'padding-bottom':case 'padding-left': - case 'min-height':case 'min-width':case 'max-height':case 'max-width': - case 'width':case 'height': - case 'text-shadow-h':case 'text-shadow-v':case 'text-shadow-blur': + case 'top': + case 'right': + case 'bottom': + case 'left': + case 'margin-top': + case 'margin-right': + case 'margin-bottom': + case 'margin-left': + case 'padding-top': + case 'padding-right': + case 'padding-bottom': + case 'padding-left': + case 'min-height': + case 'min-width': + case 'max-height': + case 'max-width': + case 'width': + case 'height': + case 'text-shadow-h': + case 'text-shadow-v': + case 'text-shadow-blur': case 'border-radius-c': - case 'border-top-left-radius':case 'border-top-right-radius':case 'border-bottom-left-radius':case 'border-bottom-right-radius': - case 'box-shadow-h':case 'box-shadow-v': + case 'border-top-left-radius': + case 'border-top-right-radius': + case 'border-bottom-left-radius': + case 'border-bottom-right-radius': + case 'box-shadow-h': + case 'box-shadow-v': obj.units = ['px', '%']; break; - case 'font-size':case 'letter-spacing':case 'line-height': + case 'font-size': + case 'letter-spacing': + case 'line-height': obj.units = ['px', 'em', 'rem', '%']; break; case 'border-width': obj.units = ['px', 'em']; break; - case 'box-shadow-blur':case 'box-shadow-spread': + case 'box-shadow-blur': + case 'box-shadow-spread': case 'perspective': obj.units = ['px']; break; case 'transition-duration': obj.units = ['s']; break; - case 'transform-rotate-x':case 'transform-rotate-y':case 'transform-rotate-z': + case 'transform-rotate-x': + case 'transform-rotate-y': + case 'transform-rotate-z': obj.units = ['deg']; break; } // Min/Max switch (prop) { - case 'padding-top':case 'padding-right':case 'padding-bottom':case 'padding-left': - case 'min-height':case 'min-width':case 'max-height':case 'max-width': - case 'width':case 'height': + case 'padding-top': + case 'padding-right': + case 'padding-bottom': + case 'padding-left': + case 'min-height': + case 'min-width': + case 'max-height': + case 'max-width': + case 'width': + case 'height': case 'font-size': case 'text-shadow-blur': case 'border-radius-c': - case 'border-top-left-radius':case 'border-top-right-radius':case 'border-bottom-left-radius':case 'border-bottom-right-radius': + case 'border-top-left-radius': + case 'border-top-right-radius': + case 'border-bottom-left-radius': + case 'border-bottom-right-radius': case 'border-width': case 'box-shadow-blur': case 'transition-duration': @@ -39475,7 +39626,9 @@ module.exports = function () { // Preview switch (prop) { - case 'text-shadow':case 'box-shadow':case 'background': + case 'text-shadow': + case 'box-shadow': + case 'background': obj.preview = true; break; } @@ -39612,7 +39765,7 @@ module.exports = function () { }; /***/ }), -/* 130 */ +/* 128 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -39622,7 +39775,7 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument var _underscore = __webpack_require__(1); -var SectorView = __webpack_require__(131); +var SectorView = __webpack_require__(129); module.exports = Backbone.View.extend({ initialize: function initialize(o) { @@ -39806,7 +39959,7 @@ module.exports = Backbone.View.extend({ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 131 */ +/* 129 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -39816,7 +39969,6 @@ var Backbone = __webpack_require__(0); var PropertiesView = __webpack_require__(13); module.exports = Backbone.View.extend({ - template: _.template('\n
\n \n <%= label %>\n
'), events: { @@ -39863,7 +40015,7 @@ module.exports = Backbone.View.extend({ * Show the content of the sector * */ show: function show() { - this.$el.addClass(this.pfx + "open"); + this.$el.addClass(this.pfx + 'open'); this.getPropertiesEl().style.display = ''; this.$caret.removeClass(this.caretR).addClass(this.caretD); }, @@ -39873,7 +40025,7 @@ module.exports = Backbone.View.extend({ * Hide the content of the sector * */ hide: function hide() { - this.$el.removeClass(this.pfx + "open"); + this.$el.removeClass(this.pfx + 'open'); this.getPropertiesEl().style.display = 'none'; this.$caret.removeClass(this.caretD).addClass(this.caretR); }, @@ -39917,7 +40069,7 @@ module.exports = Backbone.View.extend({ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) /***/ }), -/* 132 */ +/* 130 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -39965,16 +40117,15 @@ module.exports = Backbone.View.extend({ module.exports = function () { var c = {}; - var defaults = __webpack_require__(133); - var Assets = __webpack_require__(134); - var AssetsView = __webpack_require__(137); + var defaults = __webpack_require__(131); + var Assets = __webpack_require__(132); + var AssetsView = __webpack_require__(135); var FileUpload = __webpack_require__(45); var assets = void 0, am = void 0, fu = void 0; return { - /** * Name of the module * @type {String} @@ -40068,7 +40219,6 @@ module.exports = function () { add: function add(asset) { var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - // Put the model at the beginning if (typeof opts.at == 'undefined') { opts.at = 0; @@ -40309,7 +40459,7 @@ module.exports = function () { }; /***/ }), -/* 133 */ +/* 131 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -40401,7 +40551,7 @@ module.exports = { }; /***/ }), -/* 134 */ +/* 132 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -40416,7 +40566,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de module.exports = __webpack_require__(0).Collection.extend(_TypeableCollection2.default).extend({ types: [{ id: 'image', - model: __webpack_require__(135), + model: __webpack_require__(133), view: __webpack_require__(43), isType: function isType(value) { if (typeof value == 'string') { @@ -40431,7 +40581,7 @@ module.exports = __webpack_require__(0).Collection.extend(_TypeableCollection2.d }); /***/ }), -/* 135 */ +/* 133 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -40439,28 +40589,25 @@ module.exports = __webpack_require__(0).Collection.extend(_TypeableCollection2.d var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; -var Asset = __webpack_require__(136); +var Asset = __webpack_require__(134); module.exports = Asset.extend({ - defaults: _extends({}, Asset.prototype.defaults, { type: 'image', unitDim: 'px', height: 0, width: 0 }) - }); /***/ }), -/* 136 */ +/* 134 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = __webpack_require__(0).Model.extend({ - idAttribute: 'src', defaults: { @@ -40489,7 +40636,7 @@ module.exports = __webpack_require__(0).Model.extend({ }); /***/ }), -/* 137 */ +/* 135 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -40500,7 +40647,6 @@ var AssetImageView = __webpack_require__(43); var FileUploader = __webpack_require__(45); module.exports = Backbone.View.extend({ - events: { submit: 'handleSubmit' }, @@ -40678,7 +40824,7 @@ module.exports = Backbone.View.extend({ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 138 */ +/* 136 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -40707,17 +40853,16 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument module.exports = function () { var em = void 0; var c = {}, - defaults = __webpack_require__(139), + defaults = __webpack_require__(137), CssRule = __webpack_require__(46), - CssRules = __webpack_require__(140), - CssRulesView = __webpack_require__(141); + CssRules = __webpack_require__(138), + CssRulesView = __webpack_require__(139); var Selectors = __webpack_require__(10); var Selector = __webpack_require__(7); var rules, rulesView; return { - Selectors: Selectors, /** @@ -41088,27 +41233,25 @@ module.exports = function () { }; /***/ }), -/* 139 */ +/* 137 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = { - // Style prefix stylePrefix: 'css-', // Custom CSS string to render on top - 'staticRules': '', + staticRules: '', // Default CSS style rules: [] - }; /***/ }), -/* 140 */ +/* 138 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -41148,14 +41291,14 @@ module.exports = Backbone.Collection.extend({ }); /***/ }), -/* 141 */ +/* 139 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var Backbone = __webpack_require__(0); -var CssRuleView = __webpack_require__(142); +var CssRuleView = __webpack_require__(140); module.exports = Backbone.View.extend({ initialize: function initialize(o) { @@ -41217,7 +41360,7 @@ module.exports = Backbone.View.extend({ }); /***/ }), -/* 142 */ +/* 140 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -41245,7 +41388,7 @@ module.exports = __webpack_require__(0).View.extend({ }); /***/ }), -/* 143 */ +/* 141 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -41255,19 +41398,18 @@ var _underscore = __webpack_require__(1); module.exports = function () { var c = {}; - var defaultOpts = __webpack_require__(144); - var TraitsView = __webpack_require__(145); + var defaultOpts = __webpack_require__(142); + var TraitsView = __webpack_require__(143); var TraitsViewer = void 0; return { - TraitsView: TraitsView, /** * Name of the module * @type {String} * @private - */ + */ name: 'TraitManager', /** @@ -41333,14 +41475,13 @@ module.exports = function () { }; /***/ }), -/* 144 */ +/* 142 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = { - stylePrefix: 'trt-', labelContainer: 'Component settings', @@ -41353,11 +41494,10 @@ module.exports = { // Default options for the target input optionsTarget: [{ value: '', name: 'This window' }, { value: '_blank', name: 'New window' }] - }; /***/ }), -/* 145 */ +/* 143 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -41365,21 +41505,20 @@ module.exports = { var DomainViews = __webpack_require__(48); var TraitView = __webpack_require__(8); -var TraitSelectView = __webpack_require__(146); -var TraitCheckboxView = __webpack_require__(147); -var TraitNumberView = __webpack_require__(148); -var TraitColorView = __webpack_require__(149); +var TraitSelectView = __webpack_require__(144); +var TraitCheckboxView = __webpack_require__(145); +var TraitNumberView = __webpack_require__(146); +var TraitColorView = __webpack_require__(147); module.exports = DomainViews.extend({ - itemView: TraitView, itemsView: { - 'text': TraitView, - 'number': TraitNumberView, - 'select': TraitSelectView, - 'checkbox': TraitCheckboxView, - 'color': TraitColorView + text: TraitView, + number: TraitNumberView, + select: TraitSelectView, + checkbox: TraitCheckboxView, + color: TraitColorView }, initialize: function initialize(o) { @@ -41407,7 +41546,7 @@ module.exports = DomainViews.extend({ }); /***/ }), -/* 146 */ +/* 144 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -41476,7 +41615,7 @@ module.exports = TraitView.extend({ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0), __webpack_require__(1))) /***/ }), -/* 147 */ +/* 145 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -41531,7 +41670,7 @@ module.exports = TraitView.extend({ }); /***/ }), -/* 148 */ +/* 146 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -41586,7 +41725,7 @@ module.exports = TraitView.extend({ }); /***/ }), -/* 149 */ +/* 147 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -41604,16 +41743,17 @@ module.exports = TraitView.extend({ getInputEl: function getInputEl() { if (!this.$input) { var value = this.getModelValue(); - var inputNumber = new InputColor({ + var inputColor = new InputColor({ target: this.config.em, contClass: this.ppfx + 'field-color', model: this.model, ppfx: this.ppfx }); - this.input = inputNumber.render(); + this.input = inputColor.render(); this.$input = this.input.colorEl; value = value || ''; this.model.set('value', value).trigger('change:value'); + this.input.setValue(value); } return this.$input.get(0); }, @@ -41632,7 +41772,7 @@ module.exports = TraitView.extend({ }); /***/ }), -/* 150 */ +/* 148 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -41677,7 +41817,7 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument module.exports = function () { var c = {}; var em = void 0; - var defaults = __webpack_require__(151); + var defaults = __webpack_require__(149); var Component = __webpack_require__(4); var ComponentView = __webpack_require__(3); var Components = __webpack_require__(49); @@ -41686,56 +41826,56 @@ module.exports = function () { var component, componentView; var componentTypes = [{ id: 'cell', + model: __webpack_require__(153), + view: __webpack_require__(154) + }, { + id: 'row', model: __webpack_require__(155), view: __webpack_require__(156) }, { - id: 'row', + id: 'table', model: __webpack_require__(157), view: __webpack_require__(158) }, { - id: 'table', + id: 'thead', model: __webpack_require__(159), view: __webpack_require__(160) - }, { - id: 'thead', - model: __webpack_require__(161), - view: __webpack_require__(162) }, { id: 'tbody', model: __webpack_require__(19), - view: __webpack_require__(163) + view: __webpack_require__(161) }, { id: 'tfoot', + model: __webpack_require__(162), + view: __webpack_require__(163) + }, { + id: 'map', model: __webpack_require__(164), view: __webpack_require__(165) }, { - id: 'map', + id: 'link', model: __webpack_require__(166), view: __webpack_require__(167) }, { - id: 'link', + id: 'video', model: __webpack_require__(168), view: __webpack_require__(169) - }, { - id: 'video', - model: __webpack_require__(170), - view: __webpack_require__(171) }, { id: 'image', model: __webpack_require__(20), view: __webpack_require__(15) }, { id: 'script', + model: __webpack_require__(170), + view: __webpack_require__(171) + }, { + id: 'svg', model: __webpack_require__(172), view: __webpack_require__(173) }, { - id: 'svg', + id: 'textnode', model: __webpack_require__(174), view: __webpack_require__(175) - }, { - id: 'textnode', - model: __webpack_require__(176), - view: __webpack_require__(177) }, { id: 'text', model: __webpack_require__(51), @@ -41747,6 +41887,7 @@ module.exports = function () { }]; return { + Component: Component, Components: Components, @@ -42165,7 +42306,7 @@ module.exports = function () { }; /***/ }), -/* 151 */ +/* 149 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -42207,7 +42348,7 @@ module.exports = { }; /***/ }), -/* 152 */ +/* 150 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -42216,11 +42357,10 @@ module.exports = { var _underscore = __webpack_require__(1); var Backbone = __webpack_require__(0); -var Trait = __webpack_require__(153); -var TraitFactory = __webpack_require__(154); +var Trait = __webpack_require__(151); +var TraitFactory = __webpack_require__(152); module.exports = Backbone.Collection.extend({ - model: Trait, initialize: function initialize(coll) { @@ -42257,7 +42397,7 @@ module.exports = Backbone.Collection.extend({ }); /***/ }), -/* 153 */ +/* 151 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -42268,7 +42408,6 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument var _underscore = __webpack_require__(1); module.exports = __webpack_require__(0).Model.extend({ - defaults: { type: 'text', // text, number, range, select label: '', @@ -42320,6 +42459,19 @@ module.exports = __webpack_require__(0).Model.extend({ target.set('attributes', attrs); } }, + setValueFromInput: function setValueFromInput(value) { + var final = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; + var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + + var toSet = { value: value }; + this.set(toSet, _extends({}, opts, { avoidStore: 1 })); + + // Have to trigger the change + if (final) { + this.set('value', '', opts); + this.set(toSet, opts); + } + }, /** @@ -42341,7 +42493,7 @@ module.exports = __webpack_require__(0).Model.extend({ }); /***/ }), -/* 154 */ +/* 152 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -42374,7 +42526,9 @@ module.exports = function () { // Define placeholder switch (prop) { - case 'title':case 'alt':case 'id': + case 'title': + case 'alt': + case 'id': obj.placeholder = config.labelPlhText; break; case 'href': @@ -42398,7 +42552,7 @@ module.exports = function () { }; /***/ }), -/* 155 */ +/* 153 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -42409,13 +42563,11 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument var Component = __webpack_require__(4); module.exports = Component.extend({ - defaults: _extends({}, Component.prototype.defaults, { type: 'cell', tagName: 'td', draggable: ['tr'] }) - }, { isComponent: function isComponent(el) { var result = ''; @@ -42433,7 +42585,7 @@ module.exports = Component.extend({ }); /***/ }), -/* 156 */ +/* 154 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -42445,7 +42597,7 @@ var ComponentView = __webpack_require__(3); module.exports = ComponentView.extend({}); /***/ }), -/* 157 */ +/* 155 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -42456,7 +42608,6 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument var Component = __webpack_require__(4); module.exports = Component.extend({ - defaults: _extends({}, Component.prototype.defaults, { type: 'row', tagName: 'tr', @@ -42488,7 +42639,7 @@ module.exports = Component.extend({ }); /***/ }), -/* 158 */ +/* 156 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -42500,7 +42651,7 @@ var ComponentView = __webpack_require__(3); module.exports = ComponentView.extend({}); /***/ }), -/* 159 */ +/* 157 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -42511,7 +42662,6 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument var Component = __webpack_require__(4); module.exports = Component.extend({ - defaults: _extends({}, Component.prototype.defaults, { type: 'table', tagName: 'table', @@ -42536,7 +42686,7 @@ module.exports = Component.extend({ }); /***/ }), -/* 160 */ +/* 158 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -42550,7 +42700,7 @@ module.exports = ComponentView.extend({ }); /***/ }), -/* 161 */ +/* 159 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -42561,12 +42711,10 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument var ComponentTableBody = __webpack_require__(19); module.exports = ComponentTableBody.extend({ - defaults: _extends({}, ComponentTableBody.prototype.defaults, { type: 'thead', tagName: 'thead' }) - }, { isComponent: function isComponent(el) { var result = ''; @@ -42580,7 +42728,7 @@ module.exports = ComponentTableBody.extend({ }); /***/ }), -/* 162 */ +/* 160 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -42592,7 +42740,7 @@ var ComponentView = __webpack_require__(3); module.exports = ComponentView.extend({}); /***/ }), -/* 163 */ +/* 161 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -42604,7 +42752,7 @@ var ComponentView = __webpack_require__(3); module.exports = ComponentView.extend({}); /***/ }), -/* 164 */ +/* 162 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -42615,12 +42763,10 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument var ComponentTableBody = __webpack_require__(19); module.exports = ComponentTableBody.extend({ - defaults: _extends({}, ComponentTableBody.prototype.defaults, { type: 'tfoot', tagName: 'tfoot' }) - }, { isComponent: function isComponent(el) { var result = ''; @@ -42634,7 +42780,7 @@ module.exports = ComponentTableBody.extend({ }); /***/ }), -/* 165 */ +/* 163 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -42646,7 +42792,7 @@ var ComponentView = __webpack_require__(3); module.exports = ComponentView.extend({}); /***/ }), -/* 166 */ +/* 164 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -42656,7 +42802,6 @@ var Component = __webpack_require__(20); var OComponent = __webpack_require__(4); module.exports = Component.extend({ - defaults: _.extend({}, Component.prototype.defaults, { type: 'map', void: 0, @@ -42730,7 +42875,6 @@ module.exports = Component.extend({ if (qr.t) this.set('mapType', qr.t); } }, { - /** * Detect if the passed element is a valid component. * In case the element is valid an object abstracted @@ -42750,7 +42894,7 @@ module.exports = Component.extend({ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) /***/ }), -/* 167 */ +/* 165 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -42760,7 +42904,6 @@ var Backbone = __webpack_require__(0); var ComponentView = __webpack_require__(15); module.exports = ComponentView.extend({ - tagName: 'div', events: {}, @@ -42780,7 +42923,7 @@ module.exports = ComponentView.extend({ }, getIframe: function getIframe() { if (!this.iframe) { - var ifrm = document.createElement("iframe"); + var ifrm = document.createElement('iframe'); ifrm.src = this.model.get('src'); ifrm.frameBorder = 0; ifrm.style.height = '100%'; @@ -42803,7 +42946,7 @@ module.exports = ComponentView.extend({ }); /***/ }), -/* 168 */ +/* 166 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -42814,7 +42957,6 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument var Component = __webpack_require__(51); module.exports = Component.extend({ - defaults: _extends({}, Component.prototype.defaults, { type: 'link', tagName: 'a', @@ -42867,7 +43009,7 @@ module.exports = Component.extend({ }); /***/ }), -/* 169 */ +/* 167 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -42893,7 +43035,7 @@ module.exports = ComponentView.extend({ }); /***/ }), -/* 170 */ +/* 168 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -42907,7 +43049,6 @@ var yt = 'yt'; var vi = 'vi'; module.exports = Component.extend({ - defaults: _extends({}, Component.prototype.defaults, { type: 'video', tagName: 'video', @@ -42962,7 +43103,8 @@ module.exports = Component.extend({ var uri = this.parseUri(this.get('src')); var qr = uri.query; switch (prov) { - case yt:case vi: + case yt: + case vi: var videoId = uri.pathname.split('/').pop(); this.set('videoId', videoId); if (qr.autoplay) this.set('autoplay', 1); @@ -43005,7 +43147,8 @@ module.exports = Component.extend({ var attr = Component.prototype.getAttrToHTML.apply(this, args); var prov = this.get('provider'); switch (prov) { - case yt:case vi: + case yt: + case vi: break; default: if (this.get('loop')) attr.loop = 'loop'; @@ -43183,7 +43326,6 @@ module.exports = Component.extend({ return url; } }, { - /** * Detect if the passed element is a valid component. * In case the element is valid an object abstracted @@ -43209,7 +43351,7 @@ module.exports = Component.extend({ }); /***/ }), -/* 171 */ +/* 169 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -43220,7 +43362,6 @@ var ComponentView = __webpack_require__(15); var OComponentView = __webpack_require__(3); module.exports = ComponentView.extend({ - tagName: 'div', events: {}, @@ -43272,7 +43413,8 @@ module.exports = ComponentView.extend({ var videoEl = this.videoEl; var md = this.model; switch (prov) { - case 'yt':case 'vi': + case 'yt': + case 'vi': this.model.trigger('change:videoId'); break; default: @@ -43337,7 +43479,7 @@ module.exports = ComponentView.extend({ }); /***/ }), -/* 172 */ +/* 170 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -43346,14 +43488,12 @@ module.exports = ComponentView.extend({ var Component = __webpack_require__(4); module.exports = Component.extend({ - defaults: _.extend({}, Component.prototype.defaults, { type: 'script', droppable: false, draggable: false, layerable: false }) - }, { isComponent: function isComponent(el) { if (el.tagName == 'SCRIPT') { @@ -43371,7 +43511,7 @@ module.exports = Component.extend({ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) /***/ }), -/* 173 */ +/* 171 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -43381,7 +43521,6 @@ var Backbone = __webpack_require__(0); var ComponentView = __webpack_require__(15); module.exports = ComponentView.extend({ - tagName: 'script', events: {}, @@ -43398,7 +43537,7 @@ module.exports = ComponentView.extend({ var onload = model.get('onload'); var svar = 'script' + scriptCount; var svarNext = 'script' + (scriptCount + 1); - content = "var " + svar + " = document.createElement('script');\n" + svar + ".onload = function(){\n" + (onload ? onload + "();\n" : '') + "typeof " + svarNext + "Start == 'function' && " + svarNext + "Start();\n" + "};\n" + svar + ".src = '" + src + "';\n" + "function " + svar + "Start() { document.body.appendChild(" + svar + "); };\n" + (!scriptCount ? svar + "Start();" : ''); + content = 'var ' + svar + " = document.createElement('script');\n" + svar + '.onload = function(){\n' + (onload ? onload + '();\n' : '') + 'typeof ' + svarNext + "Start == 'function' && " + svarNext + 'Start();\n' + '};\n' + svar + ".src = '" + src + "';\n" + 'function ' + svar + 'Start() { document.body.appendChild(' + svar + '); };\n' + (!scriptCount ? svar + 'Start();' : ''); if (em) { em.set('scriptCount', scriptCount + 1); } @@ -43412,7 +43551,7 @@ module.exports = ComponentView.extend({ }); /***/ }), -/* 174 */ +/* 172 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -43423,7 +43562,6 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument var Component = __webpack_require__(4); module.exports = Component.extend({ - defaults: _extends({}, Component.prototype.defaults, { highlightable: 0 }), @@ -43452,7 +43590,7 @@ module.exports = Component.extend({ }); /***/ }), -/* 175 */ +/* 173 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -43461,15 +43599,13 @@ module.exports = Component.extend({ var ComponentView = __webpack_require__(3); module.exports = ComponentView.extend({ - _createElement: function _createElement(tagName) { return document.createElementNS('http://www.w3.org/2000/svg', tagName); } - }); /***/ }), -/* 176 */ +/* 174 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -43478,7 +43614,6 @@ module.exports = ComponentView.extend({ var Component = __webpack_require__(4); module.exports = Component.extend({ - defaults: _.extend({}, Component.prototype.defaults, { droppable: false, editable: true @@ -43502,7 +43637,7 @@ module.exports = Component.extend({ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) /***/ }), -/* 177 */ +/* 175 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -43513,7 +43648,7 @@ var Backbone = __webpack_require__(0); module.exports = Backbone.View.extend({}); /***/ }), -/* 178 */ +/* 176 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -43521,16 +43656,21 @@ module.exports = Backbone.View.extend({}); var _mixins = __webpack_require__(2); +var _Droppable = __webpack_require__(177); + +var _Droppable2 = _interopRequireDefault(_Droppable); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + module.exports = function () { var c = {}, - defaults = __webpack_require__(179), - Canvas = __webpack_require__(180), - CanvasView = __webpack_require__(182); + defaults = __webpack_require__(178), + Canvas = __webpack_require__(179), + CanvasView = __webpack_require__(181); var canvas; var frameRect; return { - /** * Used inside RTE * @private @@ -43737,11 +43877,11 @@ module.exports = function () { /** - * Get the offset of the element - * @param {HTMLElement} el - * @return {Object} - * @private - */ + * Get the offset of the element + * @param {HTMLElement} el + * @return {Object} + * @private + */ offset: function offset(el) { return CanvasView.offset(el); }, @@ -43941,6 +44081,9 @@ module.exports = function () { getScrollListeners: function getScrollListeners() { return [this.getFrameEl().contentWindow, this.getElement()]; }, + postRender: function postRender() { + if ((0, _mixins.hasDnd)(c.em)) this.droppable = new _Droppable2.default(c.em); + }, /** @@ -43955,14 +44098,194 @@ module.exports = function () { }; /***/ }), -/* 179 */ +/* 177 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -module.exports = { +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /* + This class makes the canvas droppable + */ + +var _mixins = __webpack_require__(2); + +var _underscore = __webpack_require__(1); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var Droppable = function () { + function Droppable(em) { + _classCallCheck(this, Droppable); + + this.em = em; + var el = em.get('DomComponents').getWrapper().getEl(); + this.el = el; + this.counter = 0; + (0, _underscore.bindAll)(this, 'handleDragEnter', 'handleDragOver', 'handleDrop', 'handleDragLeave'); + (0, _mixins.on)(el, 'dragenter', this.handleDragEnter); + (0, _mixins.on)(el, 'dragover', this.handleDragOver); + (0, _mixins.on)(el, 'drop', this.handleDrop); + (0, _mixins.on)(el, 'dragleave', this.handleDragLeave); + return this; + } + + _createClass(Droppable, [{ + key: 'endDrop', + value: function endDrop(cancel, ev) { + var em = this.em; + this.counter = 0; + this.over = 0; + // force out like in BlockView + var sorter = this.sorter; + cancel && (sorter.moved = 0); + sorter.endMove(); + em.trigger('canvas:dragend', ev); + } + }, { + key: 'handleDragLeave', + value: function handleDragLeave(ev) { + this.updateCounter(-1, ev); + } + }, { + key: 'updateCounter', + value: function updateCounter(value, ev) { + this.counter += value; + this.counter === 0 && this.endDrop(1, ev); + } + }, { + key: 'handleDragEnter', + value: function handleDragEnter(ev) { + var em = this.em; + var dt = ev.dataTransfer; + this.updateCounter(1, ev); + if (this.over) return; + this.over = 1; + var utils = em.get('Utils'); + var canvas = em.get('Canvas'); + this.sorter = new utils.Sorter({ + em: em, + wmargin: 1, + nested: 1, + canvasRelative: 1, + direction: 'a', + container: canvas.getBody(), + placer: canvas.getPlacerEl(), + eventMoving: 'mousemove dragover', + containerSel: '*', + itemSel: '*', + pfx: 'gjs-', + onStart: function onStart() { + return em.stopDefault(); + }, + onEndMove: function onEndMove(model) { + em.runDefault(); + + if (model && model.get && model.get('activeOnRender')) { + model.trigger('active'); + model.set('activeOnRender', 0); + } + + model && em.trigger('canvas:drop', dt, model); + }, + document: canvas.getFrameEl().contentDocument + }); + // For security reason I can't read the drag data on dragenter, but + // as I need it for the Sorter context I will use `dragContent` or just + // any not empty element + var content = em.get('dragContent') || '
'; + this.sorter.setDropContent(content); + this.sorter.startSort(); + em.trigger('canvas:dragenter', dt, content); + } + + /** + * Always need to have this handler active for enabling the drop + * @param {Event} ev + */ + + }, { + key: 'handleDragOver', + value: function handleDragOver(ev) { + ev.preventDefault(); + this.em.trigger('canvas:dragover', ev); + } + }, { + key: 'handleDrop', + value: function handleDrop(ev) { + ev.preventDefault(); + var dt = ev.dataTransfer; + var content = this.getContentByData(dt).content; + ev.target.style.border = ''; + + if (content) { + this.sorter.setDropContent(content); + } else { + this.sorter.moved = 0; + } + + this.endDrop(0, ev); + } + }, { + key: 'getContentByData', + value: function getContentByData(dataTransfer) { + var em = this.em; + var types = dataTransfer.types; + var files = dataTransfer.files; + var content = dataTransfer.getData('text'); + + if (files.length) { + content = []; + for (var i = 0; i < files.length; i++) { + var file = files[i]; + var type = file.type.split('/')[0]; + + if (type == 'image') { + content.push({ + type: type, + file: file, + attributes: { alt: file.name } + }); + } + } + } else if (types.indexOf('text/html') >= 0) { + content = dataTransfer.getData('text/html').replace(/<\/?meta[^>]*>/g, ''); + } else if (types.indexOf('text/uri-list') >= 0) { + content = { + type: 'link', + attributes: { href: content }, + content: content + }; + } else if (types.indexOf('text/json') >= 0) { + var json = dataTransfer.getData('text/json'); + json && (content = JSON.parse(json)); + } + + var result = { content: content }; + em.trigger('canvas:dragdata', dataTransfer, result); + + return result; + } + }]); + + return Droppable; +}(); + +exports.default = Droppable; + +/***/ }), +/* 178 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +module.exports = { stylePrefix: 'cv-', // Coming soon @@ -43995,21 +44318,19 @@ module.exports = { * } */ customBadgeLabel: '' - }; /***/ }), -/* 180 */ +/* 179 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var Backbone = __webpack_require__(0); -var Frame = __webpack_require__(181); +var Frame = __webpack_require__(180); module.exports = Backbone.Model.extend({ - defaults: { frame: '', wrapper: '', @@ -44023,7 +44344,7 @@ module.exports = Backbone.Model.extend({ }); /***/ }), -/* 181 */ +/* 180 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -44032,24 +44353,22 @@ module.exports = Backbone.Model.extend({ var Backbone = __webpack_require__(0); module.exports = Backbone.Model.extend({ - defaults: { wrapper: '', width: '', height: '', attributes: {} } - }); /***/ }), -/* 182 */ +/* 181 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(Backbone, _) { -var FrameView = __webpack_require__(183); +var FrameView = __webpack_require__(182); var $ = Backbone.$; module.exports = Backbone.View.extend({ @@ -44147,7 +44466,7 @@ module.exports = Backbone.View.extend({ var colorWarn = '#ffca6f'; - var baseCss = '\n * {\n box-sizing: border-box;\n }\n html, body, #wrapper {\n min-height: 100%;\n }\n body {\n margin: 0;\n height: 100%;\n background-color: #fff\n }\n #wrapper {\n overflow: auto\n }\n '; + var baseCss = '\n * {\n box-sizing: border-box;\n }\n html, body, #wrapper {\n min-height: 100%;\n }\n body {\n margin: 0;\n height: 100%;\n background-color: #fff\n }\n #wrapper {\n overflow: auto;\n overflow-x: hidden;\n }\n '; // Remove `html { height: 100%;}` from the baseCss as it gives jumpings // effects (on ENTER) with RTE like CKEditor (maybe some bug there?!?) // With `body {height: auto;}` jumps in CKEditor are removed but in @@ -44359,7 +44678,7 @@ module.exports = Backbone.View.extend({ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0), __webpack_require__(1))) /***/ }), -/* 183 */ +/* 182 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -44370,11 +44689,9 @@ var _underscore = __webpack_require__(1); var motionsEv = 'transitionend oTransitionEnd transitionend webkitTransitionEnd'; module.exports = __webpack_require__(0).View.extend({ - tagName: 'iframe', attributes: { - src: 'about:blank', allowfullscreen: 'allowfullscreen' }, @@ -44395,11 +44712,18 @@ module.exports = __webpack_require__(0).View.extend({ var em = this.em; var device = em.getDeviceModel(); var style = this.el.style; - style.width = device ? device.get('width') : ''; - style.height = device ? device.get('height') : ''; + var currW = style.width || ''; + var currH = style.height || ''; + var newW = device ? device.get('width') : ''; + var newH = device ? device.get('height') : ''; + var noChanges = currW == newW && currH == newH; + style.width = newW; + style.height = newH; this.udpateOffset(); + // Prevent fixed highlighting box which appears when on + // component hover during the animation em.stopDefault({ preserveSelected: 1 }); - this.$el.on(motionsEv, this.udpateOffset); + noChanges ? this.udpateOffset() : this.$el.on(motionsEv, this.udpateOffset); }, udpateOffset: function udpateOffset() { var em = this.em; @@ -44421,7 +44745,7 @@ module.exports = __webpack_require__(0).View.extend({ }); /***/ }), -/* 184 */ +/* 183 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -44434,8 +44758,8 @@ module.exports = function () { var c = {}, commands = {}, defaultCommands = {}, - defaults = __webpack_require__(185), - AbsCommands = __webpack_require__(186); + defaults = __webpack_require__(184), + AbsCommands = __webpack_require__(185); // Need it here as it would be used below var add = function add(id, obj) { @@ -44449,7 +44773,6 @@ module.exports = function () { }; return { - /** * Name of the module * @type {String} @@ -44477,27 +44800,27 @@ module.exports = function () { if (obj.id) this.add(obj.id, obj); } - var ViewCode = __webpack_require__(187); + var ViewCode = __webpack_require__(186); defaultCommands['select-comp'] = __webpack_require__(21); defaultCommands['create-comp'] = __webpack_require__(22); - defaultCommands['delete-comp'] = __webpack_require__(192); - defaultCommands['image-comp'] = __webpack_require__(193); - defaultCommands['move-comp'] = __webpack_require__(194); - defaultCommands['text-comp'] = __webpack_require__(195); + defaultCommands['delete-comp'] = __webpack_require__(191); + defaultCommands['image-comp'] = __webpack_require__(192); + defaultCommands['move-comp'] = __webpack_require__(193); + defaultCommands['text-comp'] = __webpack_require__(194); defaultCommands['insert-custom'] = __webpack_require__(54); defaultCommands['export-template'] = ViewCode; - defaultCommands['sw-visibility'] = __webpack_require__(196); - defaultCommands['open-layers'] = __webpack_require__(197); - defaultCommands['open-sm'] = __webpack_require__(200); - defaultCommands['open-tm'] = __webpack_require__(201); - defaultCommands['open-blocks'] = __webpack_require__(202); - defaultCommands['open-assets'] = __webpack_require__(203); - defaultCommands['show-offset'] = __webpack_require__(204); - defaultCommands['select-parent'] = __webpack_require__(205); - defaultCommands.fullscreen = __webpack_require__(206); - defaultCommands.preview = __webpack_require__(207); - defaultCommands.resize = __webpack_require__(208); - defaultCommands.drag = __webpack_require__(209); + defaultCommands['sw-visibility'] = __webpack_require__(195); + defaultCommands['open-layers'] = __webpack_require__(196); + defaultCommands['open-sm'] = __webpack_require__(199); + defaultCommands['open-tm'] = __webpack_require__(200); + defaultCommands['open-blocks'] = __webpack_require__(201); + defaultCommands['open-assets'] = __webpack_require__(202); + defaultCommands['show-offset'] = __webpack_require__(203); + defaultCommands['select-parent'] = __webpack_require__(204); + defaultCommands.fullscreen = __webpack_require__(205); + defaultCommands.preview = __webpack_require__(206); + defaultCommands.resize = __webpack_require__(207); + defaultCommands.drag = __webpack_require__(208); defaultCommands['tlb-delete'] = { run: function run(ed) { @@ -44524,21 +44847,36 @@ module.exports = function () { var collection = sel.collection; var index = collection.indexOf(sel); - collection.add(sel.clone(), { at: index + 1 }); + var added = collection.add(sel.clone(), { at: index + 1 }); sel.emitUpdate(); + ed.trigger('component:clone', added); } }; defaultCommands['tlb-move'] = { run: function run(ed, sender, opts) { + var dragger = void 0; + var em = ed.getModel(); + var event = opts && opts.event; var sel = ed.getSelected(); - var dragger; + var toolbarStyle = ed.Canvas.getToolbarEl().style; + var nativeDrag = event.type == 'dragstart'; + + var hideTlb = function hideTlb() { + toolbarStyle.display = 'none'; + em.stopDefault(); + }; if (!sel || !sel.get('draggable')) { console.warn('The element is not draggable'); return; } + // Without setTimeout the ghost image disappears + nativeDrag ? setTimeout(function () { + return hideTlb; + }, 0) : hideTlb(); + var onStart = function onStart(e, opts) { console.log('start mouse pos ', opts.start); console.log('el rect ', opts.elRect); @@ -44549,7 +44887,7 @@ module.exports = function () { var onEnd = function onEnd(e, opts) { em.runDefault(); - em.set('selectedComponent', sel); + em.setSelected(sel); sel.emitUpdate(); dragger && dragger.blur(); }; @@ -44559,23 +44897,23 @@ module.exports = function () { console.log('Current ', opts.current); }; - var toolbarEl = ed.Canvas.getToolbarEl(); - toolbarEl.style.display = 'none'; - var em = ed.getModel(); - em.stopDefault(); - if (em.get('designerMode')) { // TODO move grabbing func in editor/canvas from the Sorter dragger = editor.runCommand('drag', { el: sel.view.el, options: { - event: opts && opts.event, + event: event, onStart: onStart, onDrag: onDrag, onEnd: onEnd } }); } else { + if (nativeDrag) { + event.dataTransfer.setDragImage(sel.view.el, 0, 0); + //sel.set('status', 'freezed'); + } + var cmdMove = ed.Commands.get('move-comp'); cmdMove.onEndMoveFromModel = onEnd; cmdMove.initSorterFromModel(sel); @@ -44729,14 +45067,13 @@ module.exports = function () { */ /***/ }), -/* 185 */ +/* 184 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = { - ESCAPE_KEY: 27, stylePrefix: 'com-', @@ -44760,7 +45097,7 @@ module.exports = { }; /***/ }), -/* 186 */ +/* 185 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -44769,7 +45106,6 @@ module.exports = { var $ = Backbone.$; module.exports = Backbone.View.extend({ - /** * Initialize method that can't be removed * @param {Object} o Options @@ -44887,7 +45223,7 @@ module.exports = Backbone.View.extend({ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 187 */ +/* 186 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -44949,7 +45285,7 @@ module.exports = { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 188 */ +/* 187 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -44957,10 +45293,9 @@ module.exports = { var Backbone = __webpack_require__(0); var DomainViews = __webpack_require__(48); -var ToolbarButtonView = __webpack_require__(189); +var ToolbarButtonView = __webpack_require__(188); module.exports = DomainViews.extend({ - itemView: ToolbarButtonView, initialize: function initialize(opts) { @@ -44970,7 +45305,7 @@ module.exports = DomainViews.extend({ }); /***/ }), -/* 189 */ +/* 188 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -44979,10 +45314,11 @@ module.exports = DomainViews.extend({ var Backbone = __webpack_require__(0); module.exports = Backbone.View.extend({ - events: { - 'mousedown': 'handleClick' + events: function events() { + return this.model.get('events') || { + mousedown: 'handleClick' + }; }, - attributes: function attributes() { return this.model.get('attributes'); }, @@ -44992,6 +45328,9 @@ module.exports = Backbone.View.extend({ handleClick: function handleClick(event) { event.preventDefault(); event.stopPropagation(); + this.execCommand(event); + }, + execCommand: function execCommand(event) { var opts = { event: event }; var command = this.model.get('command'); var editor = this.editor; @@ -45012,19 +45351,19 @@ module.exports = Backbone.View.extend({ }); /***/ }), -/* 190 */ +/* 189 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var Backbone = __webpack_require__(0); -var ToolbarButton = __webpack_require__(191); +var ToolbarButton = __webpack_require__(190); module.exports = Backbone.Collection.extend({ model: ToolbarButton }); /***/ }), -/* 191 */ +/* 190 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45033,16 +45372,14 @@ module.exports = Backbone.Collection.extend({ model: ToolbarButton }); var Backbone = __webpack_require__(0); module.exports = Backbone.Model.extend({ - - defaults: { - command: '', - attributes: {} - } - + defaults: { + command: '', + attributes: {} + } }); /***/ }), -/* 192 */ +/* 191 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45125,7 +45462,7 @@ module.exports = _.extend({}, SelectComponent, { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0), __webpack_require__(1))) /***/ }), -/* 193 */ +/* 192 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45135,7 +45472,6 @@ var Backbone = __webpack_require__(0); var InsertCustom = __webpack_require__(54); module.exports = _.extend({}, InsertCustom, { - /** * Trigger before insert * @param {Object} object @@ -45166,7 +45502,7 @@ module.exports = _.extend({}, InsertCustom, { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) /***/ }), -/* 194 */ +/* 193 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45333,7 +45669,7 @@ module.exports = _.extend({}, SelectPosition, SelectComponent, { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0), __webpack_require__(1))) /***/ }), -/* 195 */ +/* 194 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45343,7 +45679,6 @@ var Backbone = __webpack_require__(0); var CreateComponent = __webpack_require__(22); module.exports = _.extend({}, CreateComponent, { - /** * This event is triggered at the beginning of a draw operation * @param {Object} component Object component before creation @@ -45370,7 +45705,7 @@ module.exports = _.extend({}, CreateComponent, { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) /***/ }), -/* 196 */ +/* 195 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45381,18 +45716,18 @@ module.exports = { ed.Canvas.getBody().className = this.ppfx + 'dashed'; }, stop: function stop(ed) { - ed.Canvas.getBody().className = ""; + ed.Canvas.getBody().className = ''; } }; /***/ }), -/* 197 */ +/* 196 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(Backbone) { -var Layers = __webpack_require__(198); +var Layers = __webpack_require__(197); var $ = Backbone.$; module.exports = { @@ -45429,7 +45764,7 @@ module.exports = { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 198 */ +/* 197 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45438,7 +45773,7 @@ module.exports = { module.exports = function () { var itemsView = void 0; var config = {}; - var defaults = __webpack_require__(199); + var defaults = __webpack_require__(198); var ItemView = __webpack_require__(55); var ItemsView = __webpack_require__(56); @@ -45459,9 +45794,10 @@ module.exports = function () { level: level, config: config, opened: opened + }; - // Show wrapper if requested - };if (config.showWrapper && collection.parent) { + // Show wrapper if requested + if (config.showWrapper && collection.parent) { View = ItemView; options.model = collection.parent; } else { @@ -45509,7 +45845,7 @@ module.exports = function () { }; /***/ }), -/* 199 */ +/* 198 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45532,7 +45868,7 @@ module.exports = { }; /***/ }), -/* 200 */ +/* 199 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45611,7 +45947,7 @@ module.exports = { }; /***/ }), -/* 201 */ +/* 200 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45644,7 +45980,7 @@ module.exports = { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 202 */ +/* 201 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45674,7 +46010,7 @@ module.exports = { }; /***/ }), -/* 203 */ +/* 202 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45708,7 +46044,7 @@ module.exports = { }; /***/ }), -/* 204 */ +/* 203 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45863,7 +46199,7 @@ module.exports = { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 205 */ +/* 204 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45875,7 +46211,7 @@ module.exports = { var comp = sel && sel.parent(); // Recurse through the parent() chain until a selectable parent is found - while (comp && !comp.get("selectable")) { + while (comp && !comp.get('selectable')) { comp = comp.parent(); } @@ -45884,7 +46220,7 @@ module.exports = { }; /***/ }), -/* 206 */ +/* 205 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45933,7 +46269,7 @@ module.exports = { * it's enabled * @param {strinf} pfx Browser prefix * @param {Event} e - */ + */ fsChanged: function fsChanged(pfx, e) { var d = document; var ev = (pfx || '') + 'fullscreenchange'; @@ -45957,7 +46293,7 @@ module.exports = { }; /***/ }), -/* 207 */ +/* 206 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -46026,7 +46362,7 @@ module.exports = { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) /***/ }), -/* 208 */ +/* 207 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -46063,7 +46399,7 @@ module.exports = { }; /***/ }), -/* 209 */ +/* 208 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -46101,7 +46437,7 @@ module.exports = { }; /***/ }), -/* 210 */ +/* 209 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -46139,15 +46475,14 @@ module.exports = { */ module.exports = function () { var c = {}, - defaults = __webpack_require__(211), - Blocks = __webpack_require__(212), - BlockCategories = __webpack_require__(214), - BlocksView = __webpack_require__(215); + defaults = __webpack_require__(210), + Blocks = __webpack_require__(211), + BlockCategories = __webpack_require__(213), + BlocksView = __webpack_require__(214); var blocks, blocksVisible, blocksView; var categories = []; return { - /** * Name of the module * @type {String} @@ -46346,36 +46681,34 @@ module.exports = function () { }; /***/ }), -/* 211 */ +/* 210 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = { - blocks: [], appendTo: '' - }; /***/ }), -/* 212 */ +/* 211 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var Backbone = __webpack_require__(0); -var Block = __webpack_require__(213); +var Block = __webpack_require__(212); module.exports = Backbone.Collection.extend({ model: Block }); /***/ }), -/* 213 */ +/* 212 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -46385,7 +46718,6 @@ var Backbone = __webpack_require__(0); var Category = __webpack_require__(57); module.exports = Backbone.Model.extend({ - defaults: { label: '', content: '', @@ -46410,7 +46742,7 @@ module.exports = Backbone.Model.extend({ }); /***/ }), -/* 214 */ +/* 213 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -46423,17 +46755,18 @@ module.exports = Backbone.Collection.extend({ }); /***/ }), -/* 215 */ +/* 214 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(_) { -var Backbone = __webpack_require__(0); -var BlockView = __webpack_require__(216); -var CategoryView = __webpack_require__(217); +var _underscore = __webpack_require__(1); -module.exports = Backbone.View.extend({ +var BlockView = __webpack_require__(215); +var CategoryView = __webpack_require__(216); + +module.exports = __webpack_require__(0).View.extend({ initialize: function initialize(opts, config) { _.bindAll(this, 'getSorter', 'onDrag', 'onDrop'); this.config = config || {}; @@ -46547,11 +46880,13 @@ module.exports = Backbone.View.extend({ // Check for categories if (category && this.categories) { - if (typeof category == 'string') { + if ((0, _underscore.isString)(category)) { category = { id: category, label: category }; + } else if ((0, _underscore.isObject)(category) && !category.id) { + category.id = category.label; } var catModel = this.categories.add(category); @@ -46612,23 +46947,27 @@ module.exports = Backbone.View.extend({ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) /***/ }), -/* 216 */ +/* 215 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(Backbone) { +var _underscore = __webpack_require__(1); + var _mixins = __webpack_require__(2); module.exports = Backbone.View.extend({ - events: { - mousedown: 'startDrag' + mousedown: 'startDrag', + dragstart: 'handleDragStart', + dragend: 'handleDragEnd' }, initialize: function initialize(o) { var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + this.em = config.em; this.config = config; this.endDrag = this.endDrag.bind(this); this.ppfx = config.pStylePrefix || ''; @@ -46641,22 +46980,30 @@ module.exports = Backbone.View.extend({ * @private */ startDrag: function startDrag(e) { + var config = this.config; //Right or middel click - if (e.button !== 0) { - return; - } - - if (!this.config.getSorter) { - return; - } - - this.config.em.refreshCanvas(); - var sorter = this.config.getSorter(); + if (e.button !== 0 || !config.getSorter || this.el.draggable) return; + config.em.refreshCanvas(); + var sorter = config.getSorter(); sorter.setDragHelper(this.el, e); sorter.setDropContent(this.model.get('content')); sorter.startSort(this.el); (0, _mixins.on)(document, 'mouseup', this.endDrag); }, + handleDragStart: function handleDragStart(ev) { + var content = this.model.get('content'); + var isObj = (0, _underscore.isObject)(content); + var type = isObj ? 'text/json' : 'text'; + var data = isObj ? JSON.stringify(content) : content; + + // Note: data are not available on dragenter for security reason, + // but will use dragContent as I need it for the Sorter context + ev.dataTransfer.setData(type, data); + this.em.set('dragContent', content); + }, + handleDragEnd: function handleDragEnd() { + this.em.set('dragContent', ''); + }, /** @@ -46678,15 +47025,17 @@ module.exports = Backbone.View.extend({ var el = this.el; var pfx = this.ppfx; var className = pfx + 'block'; + var label = this.model.get('label'); el.className += ' ' + className + ' ' + pfx + 'one-bg ' + pfx + 'four-color-h'; - el.innerHTML = '
' + this.model.get('label') + '
'; + el.innerHTML = '
' + label + '
'; + (0, _mixins.hasDnd)(this.em) && el.setAttribute('draggable', true); return this; } }); /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 217 */ +/* 216 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -46695,7 +47044,6 @@ module.exports = Backbone.View.extend({ var Backbone = __webpack_require__(0); module.exports = Backbone.View.extend({ - template: _.template('\n
\n \n <%= label %>\n
\n
\n '), events: {}, @@ -46756,6 +47104,7 @@ module.exports = Backbone.View.extend({ label: this.model.get('label') }); this.el.className = this.className; + this.$el.css({ order: this.model.get('order') }); this.updateVisibility(); return this; } @@ -46763,7 +47112,7 @@ module.exports = Backbone.View.extend({ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) /***/ }), -/* 218 */ +/* 217 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -47010,7 +47359,6 @@ module.exports = function (_ref) { return node.parentNode && node.parentNode.removeChild(node); }); }, - // For spectrum compatibility fn.bind = function (ev, h) { return this.on(ev, h); @@ -47106,7 +47454,7 @@ module.exports = function (_ref) { }; /***/ }), -/* 219 */ +/* 218 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -47154,16 +47502,15 @@ module.exports = Backbone.View.extend({ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 220 */ +/* 219 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = function (config) { - var c = config || {}, - defaults = __webpack_require__(221); + defaults = __webpack_require__(220); // Set default options for (var name in defaults) { @@ -47173,7 +47520,6 @@ module.exports = function (config) { var plugins = {}; return { - /** * Add new plugin. Plugins could not be overwritten * @param {string} id Plugin ID @@ -47222,7 +47568,7 @@ module.exports = function (config) { }; /***/ }), -/* 221 */ +/* 220 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; diff --git a/dist/grapes.min.js b/dist/grapes.min.js index 6a0f19841f..b3375c07b5 100644 --- a/dist/grapes.min.js +++ b/dist/grapes.min.js @@ -1,5 +1,5 @@ -/*! grapesjs - 0.12.60 */ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.grapesjs=e():t.grapesjs=e()}(this,function(){return function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=58)}([function(t,e,n){(function(i){var r,o;!function(s){var a="object"==typeof self&&self.self===self&&self||"object"==typeof i&&i.global===i&&i;r=[n(1),n(9),e],void 0!==(o=function(t,e,n){a.Backbone=s(a,n,t,e)}.apply(e,r))&&(t.exports=o)}(function(t,e,n,i){var r=t.Backbone,o=Array.prototype.slice;e.VERSION="1.3.3",e.$=i,e.noConflict=function(){return t.Backbone=r,this},e.emulateHTTP=!1,e.emulateJSON=!1;var s=function(t,e,i){switch(t){case 1:return function(){return n[e](this[i])};case 2:return function(t){return n[e](this[i],t)};case 3:return function(t,r){return n[e](this[i],l(t,this),r)};case 4:return function(t,r,o){return n[e](this[i],l(t,this),r,o)};default:return function(){var t=o.call(arguments);return t.unshift(this[i]),n[e].apply(n,t)}}},a=function(t,e,i){n.each(e,function(e,r){n[r]&&(t.prototype[r]=s(e,r,i))})},l=function(t,e){return n.isFunction(t)?t:n.isObject(t)&&!e._isModel(t)?c(t):n.isString(t)?function(e){return e.get(t)}:t},c=function(t){var e=n.matches(t);return function(t){return e(t.attributes)}},u=e.Events={},h=/\s+/,d=function(t,e,i,r,o){var s,a=0;if(i&&"object"==typeof i){void 0!==r&&"context"in o&&void 0===o.context&&(o.context=r);for(s=n.keys(i);athis.length&&(r=this.length),r<0&&(r+=this.length+1);var o,s,a=[],l=[],c=[],u=[],h={},d=e.add,f=e.merge,p=e.remove,g=!1,v=this.comparator&&null==r&&!1!==e.sort,m=n.isString(this.comparator)?this.comparator:null;for(s=0;s7),this._useHashChange=this._wantsHashChange&&this._hasHashChange,this._wantsPushState=!!this.options.pushState,this._hasPushState=!(!this.history||!this.history.pushState),this._usePushState=this._wantsPushState&&this._hasPushState,this.fragment=this.getFragment(),this.root=("/"+this.root+"/").replace(_,"/"),this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot()){var e=this.root.slice(0,-1)||"/";return this.location.replace(e+"#"+this.getPath()),!0}this._hasPushState&&this.atRoot()&&this.navigate(this.getHash(),{replace:!0})}if(!this._hasHashChange&&this._wantsHashChange&&!this._usePushState){this.iframe=document.createElement("iframe"),this.iframe.src="javascript:0",this.iframe.style.display="none",this.iframe.tabIndex=-1;var i=document.body,r=i.insertBefore(this.iframe,i.firstChild).contentWindow;r.document.open(),r.document.close(),r.location.hash="#"+this.fragment}var o=window.addEventListener||function(t,e){return attachEvent("on"+t,e)};if(this._usePushState?o("popstate",this.checkUrl,!1):this._useHashChange&&!this.iframe?o("hashchange",this.checkUrl,!1):this._wantsHashChange&&(this._checkUrlInterval=setInterval(this.checkUrl,this.interval)),!this.options.silent)return this.loadUrl()},stop:function(){var t=window.removeEventListener||function(t,e){return detachEvent("on"+t,e)};this._usePushState?t("popstate",this.checkUrl,!1):this._useHashChange&&!this.iframe&&t("hashchange",this.checkUrl,!1),this.iframe&&(document.body.removeChild(this.iframe),this.iframe=null),this._checkUrlInterval&&clearInterval(this._checkUrlInterval),I.started=!1},route:function(t,e){this.handlers.unshift({route:t,callback:e})},checkUrl:function(t){var e=this.getFragment();if(e===this.fragment&&this.iframe&&(e=this.getHash(this.iframe.contentWindow)),e===this.fragment)return!1;this.iframe&&this.navigate(e),this.loadUrl()},loadUrl:function(t){return!!this.matchRoot()&&(t=this.fragment=this.getFragment(t),n.some(this.handlers,function(e){if(e.route.test(t))return e.callback(t),!0}))},navigate:function(t,e){if(!I.started)return!1;e&&!0!==e||(e={trigger:!!e}),t=this.getFragment(t||"");var n=this.root;""!==t&&"?"!==t.charAt(0)||(n=n.slice(0,-1)||"/");var i=n+t;if(t=this.decodeFragment(t.replace(F,"")),this.fragment!==t){if(this.fragment=t,this._usePushState)this.history[e.replace?"replaceState":"pushState"]({},document.title,i);else{if(!this._wantsHashChange)return this.location.assign(i);if(this._updateHash(this.location,t,e.replace),this.iframe&&t!==this.getHash(this.iframe.contentWindow)){var r=this.iframe.contentWindow;e.replace||(r.document.open(),r.document.close()),this._updateHash(r.location,t,e.replace)}}return e.trigger?this.loadUrl(t):void 0}},_updateHash:function(t,e,n){if(n){var i=t.href.replace(/(javascript:|#).*$/,"");t.replace(i+"#"+e)}else t.hash="#"+e}}),e.history=new I;var z=function(t,e){var i,r=this;return i=t&&n.has(t,"constructor")?t.constructor:function(){return r.apply(this,arguments)},n.extend(i,r,e),i.prototype=n.create(r.prototype,t),i.prototype.constructor=i,i.__super__=r.prototype,i};b.extend=x.extend=P.extend=S.extend=I.extend=z;var $=function(){throw new Error('A "url" property or function must be specified')},R=function(t,e){var n=e.error;e.error=function(i){n&&n.call(e.context,t,i,e),t.trigger("error",t,i,e)}};return e})}).call(e,n(16))},function(t,e,n){var i,r;(function(){function n(t){function e(e,n,i,r,o,s){for(;o>=0&&o0?0:a-1;return arguments.length<3&&(r=n[s?s[l]:l],l+=t),e(n,i,r,s,l,a)}}function o(t){return function(e,n,i){n=S(n,i);for(var r=A(e),o=t>0?0:r-1;o>=0&&o0?s=o>=0?o:Math.max(o+a,s):a=o>=0?Math.min(o+1,a):o+a+1;else if(n&&o&&a)return o=n(i,r),i[o]===r?o:-1;if(r!==r)return o=e(p.call(i,s,a),C.isNaN),o>=0?o+s:-1;for(o=t>0?s:a-1;o>=0&&o=0&&e<=P};C.each=C.forEach=function(t,e,n){e=k(e,n);var i,r;if(O(t))for(i=0,r=t.length;i=0},C.invoke=function(t,e){var n=p.call(arguments,2),i=C.isFunction(e);return C.map(t,function(t){var r=i?e:t[e];return null==r?r:r.apply(t,n)})},C.pluck=function(t,e){return C.map(t,C.property(e))},C.where=function(t,e){return C.filter(t,C.matcher(e))},C.findWhere=function(t,e){return C.find(t,C.matcher(e))},C.max=function(t,e,n){var i,r,o=-1/0,s=-1/0;if(null==e&&null!=t){t=O(t)?t:C.values(t);for(var a=0,l=t.length;ao&&(o=i)}else e=S(e,n),C.each(t,function(t,n,i){((r=e(t,n,i))>s||r===-1/0&&o===-1/0)&&(o=t,s=r)});return o},C.min=function(t,e,n){var i,r,o=1/0,s=1/0;if(null==e&&null!=t){t=O(t)?t:C.values(t);for(var a=0,l=t.length;ai||void 0===n)return 1;if(ne?(s&&(clearTimeout(s),s=null),a=c,o=t.apply(i,r),s||(i=r=null)):s||!1===n.trailing||(s=setTimeout(l,u)),o}},C.debounce=function(t,e,n){var i,r,o,s,a,l=function(){var c=C.now()-s;c=0?i=setTimeout(l,e-c):(i=null,n||(a=t.apply(o,r),i||(o=r=null)))};return function(){o=this,r=arguments,s=C.now();var c=n&&!i;return i||(i=setTimeout(l,e)),c&&(a=t.apply(o,r),o=r=null),a}},C.wrap=function(t,e){return C.partial(e,t)},C.negate=function(t){return function(){return!t.apply(this,arguments)}},C.compose=function(){var t=arguments,e=t.length-1;return function(){for(var n=e,i=t[e].apply(this,arguments);n--;)i=t[n].call(this,i);return i}},C.after=function(t,e){return function(){if(--t<1)return e.apply(this,arguments)}},C.before=function(t,e){var n;return function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=null),n}},C.once=C.partial(C.before,2);var D=!{toString:null}.propertyIsEnumerable("toString"),_=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];C.keys=function(t){if(!C.isObject(t))return[];if(y)return y(t);var e=[];for(var n in t)C.has(t,n)&&e.push(n);return D&&a(t,e),e},C.allKeys=function(t){if(!C.isObject(t))return[];var e=[];for(var n in t)e.push(n);return D&&a(t,e),e},C.values=function(t){for(var e=C.keys(t),n=e.length,i=Array(n),r=0;r":">",'"':""","'":"'","`":"`"},$=C.invert(z),R=function(t){var e=function(e){return t[e]},n="(?:"+C.keys(t).join("|")+")",i=RegExp(n),r=RegExp(n,"g");return function(t){return t=null==t?"":""+t,i.test(t)?t.replace(r,e):t}};C.escape=R(z),C.unescape=R($),C.result=function(t,e,n){var i=null==t?void 0:t[e];return void 0===i&&(i=n),C.isFunction(i)?i.call(t):i};var V=0;C.uniqueId=function(t){var e=++V+"";return t?t+e:e},C.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var H=/(.)^/,j={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},B=/\\|'|\r|\n|\u2028|\u2029/g,W=function(t){return"\\"+j[t]};C.template=function(t,e,n){!e&&n&&(e=n),e=C.defaults({},e,C.templateSettings);var i=RegExp([(e.escape||H).source,(e.interpolate||H).source,(e.evaluate||H).source].join("|")+"|$","g"),r=0,o="__p+='";t.replace(i,function(e,n,i,s,a){return o+=t.slice(r,a).replace(B,W),r=a+e.length,n?o+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":i?o+="'+\n((__t=("+i+"))==null?'':__t)+\n'":s&&(o+="';\n"+s+"\n__p+='"),e}),o+="';\n",e.variable||(o="with(obj||{}){\n"+o+"}\n"),o="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+o+"return __p;\n";try{var s=new Function(e.variable||"obj","_",o)}catch(t){throw t.source=o,t}var a=function(t){return s.call(this,t,C)};return a.source="function("+(e.variable||"obj")+"){\n"+o+"}",a},C.chain=function(t){var e=C(t);return e._chain=!0,e};var U=function(t,e){return t._chain?C(e).chain():e};C.mixin=function(t){C.each(C.functions(t),function(e){var n=C[e]=t[e];C.prototype[e]=function(){var t=[this._wrapped];return f.apply(t,arguments),U(this,n.apply(C,t))}})},C.mixin(C),C.each(["pop","push","reverse","shift","sort","splice","unshift"],function(t){var e=u[t];C.prototype[t]=function(){var n=this._wrapped;return e.apply(n,arguments),"shift"!==t&&"splice"!==t||0!==n.length||delete n[0],U(this,n)}}),C.each(["concat","join","slice"],function(t){var e=u[t];C.prototype[t]=function(){return U(this,e.apply(this._wrapped,arguments))}}),C.prototype.value=function(){return this._wrapped},C.prototype.valueOf=C.prototype.toJSON=C.prototype.value,C.prototype.toString=function(){return""+this._wrapped},i=[],void 0!==(r=function(){return C}.apply(e,i))&&(t.exports=r)}).call(this)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getUnitFromValue=e.normalizeFloat=e.shallowDiff=e.camelCase=e.matches=e.upFirst=e.off=e.on=void 0;var i=n(1),r=window.Element.prototype,o=r.matches||r.webkitMatchesSelector||r.mozMatchesSelector||r.msMatchesSelector,s=function(t,e){var n={},r=(0,i.keys)(e);for(var o in t)if(t.hasOwnProperty(o)){var s=t[o],a=e[o];r.indexOf(o)>=0?s!==a&&(n[o]=a):n[o]=null}for(var l in e)e.hasOwnProperty(l)&&(0,i.isUndefined)(t[l])&&(n[l]=e[l]);return n},a=function(t,e,n){e=e.split(/\s+/),t=t instanceof Array?t:[t];for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=0;if(isNaN(t))return n;if(t=parseFloat(t),Math.floor(t)!==t){var r=e.toString().split(".")[1];i=r?r.length:0}return i?parseFloat(t.toFixed(i)):t};e.on=a,e.off=l,e.upFirst=u,e.matches=o,e.camelCase=h,e.shallowDiff=s,e.normalizeFloat=d,e.getUnitFromValue=c},function(t,e,n){"use strict";(function(e){var i=n(1),r=n(50);t.exports=e.View.extend({className:function(){return this.getClasses()},tagName:function(){return this.model.get("tagName")},initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.model,n=t.config||{};this.opts=t,this.config=n,this.em=n.em||"",this.pfx=n.stylePrefix||"",this.ppfx=n.pStylePrefix||"",this.attr=e.get("attributes"),this.classe=this.attr.class||[];var i=this.$el,r=e.get("classes");this.listenTo(e,"destroy remove",this.remove),this.listenTo(e,"change:style",this.updateStyle),this.listenTo(e,"change:attributes",this.updateAttributes),this.listenTo(e,"change:highlightable",this.updateHighlight),this.listenTo(e,"change:status",this.updateStatus),this.listenTo(e,"change:state",this.updateState),this.listenTo(e,"change:script",this.render),this.listenTo(e,"change",this.handleChange),this.listenTo(r,"add remove change",this.updateClasses),i.data("model",e),i.data("collection",e.get("components")),e.view=this,r.length&&this.importClasses(),this.init()},remove:function(){e.View.prototype.remove.apply(this);var t=this.childrenView;t&&t.stopListening()},init:function(){},handleChange:function(){var t=this.model;t.emitUpdate();for(var e in t.changed)t.emitUpdate(e)},importClasses:function(){var t=this.config.em.get("SelectorManager");t&&this.model.get("classes").each(function(e){t.add(e.get("name"))})},updateState:function(t){var e="hc-state";this.model.get("state")?this.$el.addClass(e):this.$el.removeClass(e)},updateStatus:function(t){var e=this.el,n=this.model.get("status"),i=this.pfx,r=this.ppfx,o=i+"selected",s=o+"-parent",a=r+"freezed",l=e.getAttribute("class")||"",c="";switch(n){case"selected":c=l+" "+o;break;case"selected-parent":c=l+" "+s;break;case"freezed":c=l+" "+a;break;default:this.$el.removeClass(o+" "+s+" "+a)}(c=c.trim())&&e.setAttribute("class",c)},updateHighlight:function(){var t=this.model.get("highlightable");this.setAttribute("data-highlightable",t?1:"")},updateStyle:function(){var t=this.em,e=this.model;t&&t.get("avoidInlineStyle")?(this.el.id=e.getId(),e.setStyle(e.getStyle())):this.setAttribute("style",e.styleToString())},updateClasses:function(){var t=this.model.get("classes").pluck("name").join(" ");this.setAttribute("class",t),this.updateStatus()},setAttribute:function(t,e){var n=this.$el;e?n.attr(t,e):n.removeAttr(t)},getClasses:function(){var t=this.model.get("attributes"),e=t.class||[];return e=(0,i.isArray)(e)?e:[e],e.length?e.join(" "):null},updateAttributes:function(){var t=this.model,e={},n=t.get("attributes"),i=t.get("src");for(var r in n)e[r]=n[r];i&&(e.src=i),this.$el.attr(e),this.updateHighlight(),this.updateStyle()},updateContent:function(){this.getChildrenContainer().innerHTML=this.model.get("content")},prevDef:function(t){t.preventDefault()},updateScript:function(){if(this.model.get("script")){var t=this.em;if(t){t.get("Canvas").getCanvasView().updateScript(this)}}},getChildrenContainer:function(){var t=this.el;return"function"==typeof this.getChildrenSelector?t=this.el.querySelector(this.getChildrenSelector()):this.getTemplate,t},renderChildren:function(){var t=this.getChildrenContainer(),e=new r({collection:this.model.get("components"),config:this.config,componentTypes:this.opts.componentTypes});e.render(t),this.childrenView=e;for(var n=Array.prototype.slice.call(e.el.childNodes),i=0,o=n.length;i0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=n.sm||n.em||"",s=this.parent(),a=s&&s.attributes;if(a&&a.propagate){var l={},c=a.propagate;c.forEach(function(t){return l[t]=s.get(t)}),l.propagate=c,l=i({},l,e),this.set(l)}var u=this.get("propagate");u&&this.set("propagate",(0,r.isArray)(u)?u:[u]),n&&n.config&&n.config.voidElements.indexOf(this.get("tagName"))>=0&&this.set("void",!0),n.em=o,this.opt=n,this.sm=o,this.em=o,this.config=n.config||{},this.set("attributes",this.get("attributes")||{}),this.listenTo(this,"change:script",this.scriptUpdated),this.listenTo(this,"change:traits",this.traitsUpdated),this.listenTo(this,"change:tagName",this.tagUpdated),this.listenTo(this,"change:attributes",this.attrUpdated),this.initClasses(),this.loadTraits(),this.initComponents(),this.initToolbar(),this.set("status",""),this.listenTo(this.get("classes"),"add remove change",function(){return t.emitUpdate("classes")}),this.init()},is:function(t){return!(this.get("type")!=t)},find:function(t){var e=[];return this.view.$el.find(t).each(function(t,n,i){var r=i.eq(n),o=r.data("model");o&&e.push(o)}),e},tagUpdated:function(){var t=this.collection,e=t.indexOf(this);t.remove(this),t.add(this,{at:e})},attrUpdated:function(){var t=this,e=i({},this.previous("attributes")),n=i({},this.get("attributes")),s=(0,o.shallowDiff)(e,n);(0,r.keys)(s).forEach(function(e){return t.trigger("change:attributes:"+e)})},setAttributes:function(t){t=i({},t);var e=t.class;e&&this.setClass(e),delete t.class;var n=t.style;n&&this.setStyle(n),delete t.style,this.set("attributes",t)},getStyle:function(){var t=this.em;if(t&&t.getConfig("avoidInlineStyle")){var e=this.get("state"),n=t.get("CssComposer"),i=n.getIdRule(this.getId(),{state:e});if(this.rule=i,i)return i.getStyle()}return a.default.getStyle.call(this)},setStyle:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=this.em;if(s&&s.getConfig("avoidInlineStyle")){e=(0,r.isString)(e)?this.parseStyle(e):e;var l=this.get("state"),c=s.get("CssComposer"),u=this.getStyle();this.rule=c.setIdRule(this.getId(),e,i({},n,{state:l}));var h=(0,o.shallowDiff)(u,e);(0,r.keys)(h).forEach(function(e){return t.trigger("change:style:"+e)})}else e=a.default.setStyle.apply(this,arguments);return e},getAttributes:function(){var t=[],e=i({},this.get("attributes"));return this.get("classes").each(function(e){return t.push(e.get("name"))}),t.length&&(e.class=t.join(" ")),(0,r.isEmpty)(this.getStyle())||(0,r.has)(e,"id")||(e.id=this.getId()),e},addClass:function(t){var e=this.em.get("SelectorManager").addClass(t);return this.get("classes").add(e)},setClass:function(t){return this.get("classes").reset(),this.addClass(t)},removeClass:function(t){var e=[];t=(0,r.isArray)(t)?t:[t];var n=this.get("classes"),i=u.TYPE_CLASS;return t.forEach(function(t){t.split(" ").forEach(function(t){var r=n.where({name:t,type:i})[0];r&&e.push(n.remove(r))})}),e},initClasses:function(){var t=this.normalizeClasses(this.get("classes")||[]);return this.set("classes",new h(t)),this},initComponents:function(){var t=new c(null,this.opt);return t.parent=this,t.reset(this.get("components")),this.set("components",t),this},init:function(){},append:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.components().add(t,e);return(0,r.isArray)(n)?n:[n]},components:function(t){var e=this.get("components");if((0,r.isUndefined)(t))return e;e.reset(),t&&this.append(t)},parent:function(){var t=this.collection;return t&&t.parent},scriptUpdated:function(){this.set("scriptUpdated",1)},traitsUpdated:function(){var t=0,e=i({},this.get("attributes")),n=this.get("traits");if(!(n instanceof d))return void this.loadTraits();n.each(function(n){if(t=1,!n.get("changeProp")){var i=n.getInitValue();i&&(e[n.get("name")]=i)}}),t&&this.set("attributes",e)},initToolbar:function(){var t=this;if(!t.get("toolbar")){var e=[];t.collection&&e.push({attributes:{class:"fa fa-arrow-up"},command:"select-parent"}),t.get("draggable")&&e.push({attributes:{class:"fa fa-arrows"},command:"tlb-move"}),t.get("copyable")&&e.push({attributes:{class:"fa fa-clone"},command:"tlb-clone"}),t.get("removable")&&e.push({attributes:{class:"fa fa-trash-o"},command:"tlb-delete"}),t.set("toolbar",e)}},loadTraits:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=new d([],this.opt);return n.setTarget(this),t=t||this.get("traits"),t.length&&n.add(t),this.set("traits",n,e),this},normalizeClasses:function(t){var e=[];if(this.sm.get){var n=this.sm.get("SelectorManager");if(n)return t.forEach(function(t){var i="";i="string"==typeof t?t:t.name;var r=n.add(i);e.push(r)}),e}},clone:function(t){var e=this.em,n=this.getStyle(),o=i({},this.attributes);return o.attributes=i({},o.attributes),delete o.attributes.id,o.components=[],o.classes=[],o.traits=[],this.get("components").each(function(t,e){o.components[e]=t.clone(1)}),this.get("traits").each(function(t,e){o.traits[e]=t.clone()}),this.get("classes").each(function(t,e){o.classes[e]=t.get("name")}),o.status="",o.view="",t&&(this.opt.collection=null),e&&e.getConfig("avoidInlineStyle")&&!(0,r.isEmpty)(n)&&(o.style=n),new this.constructor(o,this.opt)},getName:function(){var t=this.get("name")||this.get("custom-name"),e=this.get("tagName");e="div"==e?"box":e;var n=this.get("type")||e;return n=n.charAt(0).toUpperCase()+n.slice(1),t||n},getIcon:function(){var t=this.get("icon");return t?t+" ":""},toHTML:function(t){var e=this,n=[],i=e.get("tagName"),o=e.get("void"),s=this.getAttrToHTML();for(var a in s){var l=s[a];(0,r.isUndefined)(l)||n.push(a+'="'+l+'"')}var c=n.length?" "+n.join(" "):"",u="<"+i+c+(o?"/":"")+">"+e.get("content");return e.get("components").each(function(t){return u+=t.toHTML()}),!o&&(u+=""),u},getAttrToHTML:function(){var t=this.getAttributes();return delete t.style,t},toJSON:function(){for(var t=arguments.length,e=Array(t),n=0;n\n '+this.templateLabel(t)+'\n
\n
\n '+this.templateInput(t)+"\n
\n "},templateLabel:function(t){var e=this.pfx;return'\n \n '+t.get("name")+'\n \n \n '},templateInput:function(t){return'\n
\n \n
\n '},events:function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}({change:"inputValueChanged"},"click [data-clear-style]","clear"),initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,i.bindAll)(this,"targetUpdated"),this.config=t.config||{};var e=this.config.em;this.em=e,this.pfx=this.config.stylePrefix||"",this.ppfx=this.config.pStylePrefix||"",this.target=t.target||{},this.propTarget=t.propTarget||{},this.onChange=t.onChange,this.onInputRender=t.onInputRender||{},this.customValue=t.customValue||{};var n=this.model;this.property=n.get("property"),this.input=null;var r=this.pfx;this.inputHolderId="#"+r+"input-holder",this.sector=n.collection&&n.collection.sector,n.view=this,n.get("value")||n.set("value",n.getDefaultValue()),e&&e.on("update:component:style:"+this.property,this.targetUpdated),this.listenTo(this.propTarget,"update",this.targetUpdated),this.listenTo(n,"destroy remove",this.remove),this.listenTo(n,"change:value",this.modelValueChanged),this.listenTo(n,"targetUpdated",this.targetUpdated),this.listenTo(n,"change:visible",this.updateVisibility),this.listenTo(n,"change:status",this.updateStatus);var o=this.init&&this.init.bind(this);o&&o()},updateStatus:function(){var t=this.model.get("status"),e=this.pfx,n=this.ppfx,i=this.config,r=n+"four-color",o=n+"color-warn",s=this.$el.children("."+e+"label"),a=this.getClearEl().style;switch(s.removeClass(r+" "+o),a.display="none",t){case"updated":s.addClass(r),i.clearProperties&&(a.display="inline");break;case"computed":s.addClass(o)}},clear:function(){this.getTargetModel().removeStyle(this.model.get("property")),this.targetUpdated()},getClearEl:function(){return this.el.querySelector("[data-clear-style]")},getTarget:function(){return this.getTargetModel()},getTargetModel:function(){return this.propTarget&&this.propTarget.model},getHelperModel:function(){return this.propTarget&&this.propTarget.helper},inputValueChanged:function(t){t&&t.stopPropagation(),this.model.setValue(this.getInputValue(),1,{fromInput:1}),this.elementUpdated()},elementUpdated:function(){this.setStatus("updated")},setStatus:function(t){this.model.set("status",t);var e=this.model.parent;e&&e.set("status",t)},targetUpdated:function(){if(this.checkVisibility()){var t=this.config,e=t.em,n=this.model,i="",r="",o=this.getTargetValue({ignoreDefault:1}),s=n.getDefaultValue(),a=this.getComputedValue();o?(i=o,t.highlightChanged&&(r="updated")):a&&t.showComputed&&a!=s?(i=a,t.highlightComputed&&(r="computed")):(i=s,r=""),n.setValue(i,0,{fromTarget:1}),this.setStatus(r),e&&(e.trigger("styleManager:change",this),e.trigger("styleManager:change:"+n.get("property"),this))}},checkVisibility:function(){var t=1;return this.config.hideNotStylable&&(this.isTargetStylable()&&this.isComponentStylable()?this.show():(this.hide(),t=0),this.sector&&this.sector.trigger("updateVisibility")),t},getTargetValue:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.model,i=this.getTargetModel(),r=this.customValue;if(!i)return t;if(t=i.getStyle()[n.get("property")],t||e.ignoreDefault||(t=n.getDefaultValue()),"function"==typeof r&&!e.ignoreCustomValue){var o=n.collection.indexOf(n),s=r(this,o);s&&(t=s)}return t},getComputedValue:function(){var t=this.propTarget,e=t.computed||{},n=t.computedDefault||{},i=this.config.avoidComputed||[],o=this.model.get("property"),s=i.indexOf(o)<0,a=e[o],l=n[(0,r.camelCase)(o)];return e&&s&&l!==a&&a},getInputValue:function(){var t=this.getInputEl();return t?t.value:""},modelValueChanged:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this.config.em,r=this.model,o=r.getFullValue(),s=this.getTarget(),a=this.onChange;n.fromInput||this.setValue(o),s&&this.isTargetStylable()&&this.isComponentStylable()&&(n.fromTarget||(a&&!n.fromParent?a(s,this,n):this.updateTargetStyle(o,null,n)),i&&(i.trigger("component:update",s),i.trigger("component:styleUpdate",s),i.trigger("component:styleUpdate:"+r.get("property"),s)))},updateTargetStyle:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=e||this.model.get("property"),r=this.getTarget(),o=r.getStyle();t?o[i]=t:delete o[i],r.setStyle(o,n);var s=this.getHelperModel();s&&s.setStyle(o,n)},isTargetStylable:function(t){this.model.get("id");var e=t||this.getTarget(),n=this.model,r=n.get("property"),o=n.get("toRequire"),s=e.get("unstylable"),a=e.get("stylable-require"),l=e.get("stylable");return(0,i.isArray)(l)&&(l=l.indexOf(r)>=0),(0,i.isArray)(s)&&(l=s.indexOf(r)<0),o&&(l=a&&a.indexOf(r)>=0||!t),l},isComponentStylable:function(){var t=this.em,e=t&&t.get("selectedComponent");return!e||this.isTargetStylable(e)},setRawValue:function(t){this.setValue(this.model.parseValue(t))},setValue:function(t){var e=this.model,n=t||e.getDefaultValue(),i=this.getInputEl();i&&(i.value=n)},getInputEl:function(){return this.input||(this.input=this.el.querySelector("input")),this.input},updateVisibility:function(){this.el.style.display=this.model.get("visible")?"block":"none"},show:function(){this.model.set("visible",1)},hide:function(){this.model.set("visible",0)},cleanValue:function(){this.setValue("")},render:function(){var t=this.pfx,e=this.model,n=this.el;n.innerHTML=this.template(e),n.className=t+"property "+t+e.get("type"),this.updateStatus();var i=this.onRender&&this.onRender.bind(this);i&&i(),this.setValue(e.get("value"),{targetUpdate:1})}})}).call(e,n(0))},function(t,e,n){!function(e,n){t.exports=n()}(0,function(){"use strict";function t(t){return new RegExp("(^|\\s)"+t+"(?:$|\\s)\\s*")}function e(t){for(var e=t.childNodes.length;e>0;--e)t.removeChild(t.firstChild);return t}function n(t,n){return e(t).appendChild(n)}function i(t,e,n,i){var r=document.createElement(t);if(n&&(r.className=n),i&&(r.style.cssText=i),"string"==typeof e)r.appendChild(document.createTextNode(e));else if(e)for(var o=0;o=e)return s+(e-o);s+=a-o,s+=n-s%n,o=a+1}}function d(t,e){for(var n=0;n=e)return i+Math.min(s,e-r);if(r+=o-i,r+=n-r%n,i=o+1,r>=e)return i}}function p(t){for(;qs.length<=t;)qs.push(g(qs)+" ");return qs[t]}function g(t){return t[t.length-1]}function v(t,e){for(var n=[],i=0;i"€"&&(t.toUpperCase()!=t.toLowerCase()||Ks.test(t))}function w(t,e){return e?!!(e.source.indexOf("\\w")>-1&&x(t))||e.test(t):x(t)}function C(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e])return!1;return!0}function k(t){return t.charCodeAt(0)>=768&&Gs.test(t)}function S(t,e,n){for(;(n<0?e>0:en?-1:1;;){if(e==n)return e;var r=(e+n)/2,o=i<0?Math.ceil(r):Math.floor(r);if(o==e)return t(o)?e:n;t(o)?n=o:e=o+i}}function E(t,e,n){var o=this;this.input=n,o.scrollbarFiller=i("div",null,"CodeMirror-scrollbar-filler"),o.scrollbarFiller.setAttribute("cm-not-content","true"),o.gutterFiller=i("div",null,"CodeMirror-gutter-filler"),o.gutterFiller.setAttribute("cm-not-content","true"),o.lineDiv=r("div",null,"CodeMirror-code"),o.selectionDiv=i("div",null,null,"position: relative; z-index: 1"),o.cursorDiv=i("div",null,"CodeMirror-cursors"),o.measure=i("div",null,"CodeMirror-measure"),o.lineMeasure=i("div",null,"CodeMirror-measure"),o.lineSpace=r("div",[o.measure,o.lineMeasure,o.selectionDiv,o.cursorDiv,o.lineDiv],null,"position: relative; outline: none");var s=r("div",[o.lineSpace],"CodeMirror-lines");o.mover=i("div",[s],null,"position: relative"),o.sizer=i("div",[o.mover],"CodeMirror-sizer"),o.sizerWidth=null,o.heightForcer=i("div",null,null,"position: absolute; height: "+Hs+"px; width: 1px;"),o.gutters=i("div",null,"CodeMirror-gutters"),o.lineGutter=null,o.scroller=i("div",[o.sizer,o.heightForcer,o.gutters],"CodeMirror-scroll"),o.scroller.setAttribute("tabIndex","-1"),o.wrapper=i("div",[o.scrollbarFiller,o.gutterFiller,o.scroller],"CodeMirror"),ms&&ys<8&&(o.gutters.style.zIndex=-1,o.scroller.style.paddingRight=0),bs||fs&&Ps||(o.scroller.draggable=!0),t&&(t.appendChild?t.appendChild(o.wrapper):t(o.wrapper)),o.viewFrom=o.viewTo=e.first,o.reportedViewFrom=o.reportedViewTo=e.first,o.view=[],o.renderedView=null,o.externalMeasured=null,o.viewOffset=0,o.lastWrapHeight=o.lastWrapWidth=0,o.updateLineNumbers=null,o.nativeBarWidth=o.barHeight=o.barWidth=0,o.scrollbarsClipped=!1,o.lineNumWidth=o.lineNumInnerWidth=o.lineNumChars=null,o.alignWidgets=!1,o.cachedCharWidth=o.cachedTextHeight=o.cachedPaddingH=null,o.maxLine=null,o.maxLineLength=0,o.maxLineChanged=!1,o.wheelDX=o.wheelDY=o.wheelStartX=o.wheelStartY=null,o.shift=!1,o.selForContextMenu=null,o.activeTouch=null,n.init(o)}function M(t,e){if((e-=t.first)<0||e>=t.size)throw new Error("There is no line "+(e+t.first)+" in the document.");for(var n=t;!n.lines;)for(var i=0;;++i){var r=n.children[i],o=r.chunkSize();if(e=t.first&&en?_(n,M(t,n).text.length):B(e,M(t,e.line).text.length)}function B(t,e){var n=t.ch;return null==n||n>e?_(t.line,e):n<0?_(t.line,0):t}function W(t,e){for(var n=[],i=0;i=e:o.to>e);(i||(i=[])).push(new K(s,o.from,l?null:o.to))}}return i}function Z(t,e,n){var i;if(t)for(var r=0;r=e:o.to>e);if(a||o.from==e&&"bookmark"==s.type&&(!n||o.marker.insertLeft)){var l=null==o.from||(s.inclusiveLeft?o.from<=e:o.from0&&a)for(var w=0;w0)){var u=[l,1],h=F(c.from,a.from),f=F(c.to,a.to);(h<0||!s.inclusiveLeft&&!h)&&u.push({from:c.from,to:a.from}),(f>0||!s.inclusiveRight&&!f)&&u.push({from:a.to,to:c.to}),r.splice.apply(r,u),l+=u.length-3}}return r}function nt(t){var e=t.markedSpans;if(e){for(var n=0;n=0&&h<=0||u<=0&&h>=0)&&(u<=0&&(l.marker.inclusiveRight&&r.inclusiveLeft?F(c.to,n)>=0:F(c.to,n)>0)||u>=0&&(l.marker.inclusiveRight&&r.inclusiveLeft?F(c.from,i)<=0:F(c.from,i)<0)))return!0}}}function ht(t){for(var e;e=lt(t);)t=e.find(-1,!0).line;return t}function dt(t){for(var e;e=ct(t);)t=e.find(1,!0).line;return t}function ft(t){for(var e,n;e=ct(t);)t=e.find(1,!0).line,(n||(n=[])).push(t);return n}function pt(t,e){var n=M(t,e),i=ht(n);return n==i?e:L(i)}function gt(t,e){if(e>t.lastLine())return e;var n,i=M(t,e);if(!vt(t,i))return e;for(;n=ct(i);)i=n.find(1,!0).line;return L(i)+1}function vt(t,e){var n=Xs&&e.markedSpans;if(n)for(var i=void 0,r=0;re.maxLineLength&&(e.maxLineLength=n,e.maxLine=t)})}function wt(t,e,n,i){if(!t)return i(e,n,"ltr",0);for(var r=!1,o=0;oe||e==n&&s.to==e)&&(i(Math.max(s.from,e),Math.min(s.to,n),1==s.level?"rtl":"ltr",o),r=!0)}r||i(e,n,"ltr")}function Ct(t,e,n){var i;Js=null;for(var r=0;re)return r;o.to==e&&(o.from!=o.to&&"before"==n?i=r:Js=r),o.from==e&&(o.from!=o.to&&"before"!=n?i=r:Js=r)}return null!=i?i:Js}function kt(t,e){var n=t.order;return null==n&&(n=t.order=Zs(t.text,e)),n}function St(t,e){return t._handlers&&t._handlers[e]||Qs}function Tt(t,e,n){if(t.removeEventListener)t.removeEventListener(e,n,!1);else if(t.detachEvent)t.detachEvent("on"+e,n);else{var i=t._handlers,r=i&&i[e];if(r){var o=d(r,n);o>-1&&(i[e]=r.slice(0,o).concat(r.slice(o+1)))}}}function Et(t,e){var n=St(t,e);if(n.length)for(var i=Array.prototype.slice.call(arguments,2),r=0;r0}function Ot(t){t.prototype.on=function(t,e){ta(this,t,e)},t.prototype.off=function(t,e){Tt(this,t,e)}}function Lt(t){t.preventDefault?t.preventDefault():t.returnValue=!1}function Nt(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0}function It(t){return null!=t.defaultPrevented?t.defaultPrevented:0==t.returnValue}function Dt(t){Lt(t),Nt(t)}function _t(t){return t.target||t.srcElement}function Ft(t){var e=t.which;return null==e&&(1&t.button?e=1:2&t.button?e=3:4&t.button&&(e=2)),As&&t.ctrlKey&&1==e&&(e=3),e}function zt(t){if(null==Rs){var e=i("span","​");n(t,i("span",[e,document.createTextNode("x")])),0!=t.firstChild.offsetHeight&&(Rs=e.offsetWidth<=1&&e.offsetHeight>2&&!(ms&&ys<8))}var r=Rs?i("span","​"):i("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return r.setAttribute("cm-text",""),r}function $t(t){if(null!=Vs)return Vs;var i=n(t,document.createTextNode("AخA")),r=Is(i,0,1).getBoundingClientRect(),o=Is(i,1,2).getBoundingClientRect();return e(t),!(!r||r.left==r.right)&&(Vs=o.right-r.right<3)}function Rt(t){if(null!=oa)return oa;var e=n(t,i("span","x")),r=e.getBoundingClientRect(),o=Is(e,0,1).getBoundingClientRect();return oa=Math.abs(r.left-o.left)>1}function Vt(t,e){arguments.length>2&&(e.dependencies=Array.prototype.slice.call(arguments,2)),sa[t]=e}function Ht(t,e){aa[t]=e}function jt(t){if("string"==typeof t&&aa.hasOwnProperty(t))t=aa[t];else if(t&&"string"==typeof t.name&&aa.hasOwnProperty(t.name)){var e=aa[t.name];"string"==typeof e&&(e={name:e}),t=b(e,t),t.name=e.name}else{if("string"==typeof t&&/^[\w\-]+\/[\w\-]+\+xml$/.test(t))return jt("application/xml");if("string"==typeof t&&/^[\w\-]+\/[\w\-]+\+json$/.test(t))return jt("application/json")}return"string"==typeof t?{name:t}:t||{name:"null"}}function Bt(t,e){e=jt(e);var n=sa[e.name];if(!n)return Bt(t,"text/plain");var i=n(t,e);if(la.hasOwnProperty(e.name)){var r=la[e.name];for(var o in r)r.hasOwnProperty(o)&&(i.hasOwnProperty(o)&&(i["_"+o]=i[o]),i[o]=r[o])}if(i.name=e.name,e.helperType&&(i.helperType=e.helperType),e.modeProps)for(var s in e.modeProps)i[s]=e.modeProps[s];return i}function Wt(t,e){u(e,la.hasOwnProperty(t)?la[t]:la[t]={})}function Ut(t,e){if(!0===e)return e;if(t.copyState)return t.copyState(e);var n={};for(var i in e){var r=e[i];r instanceof Array&&(r=r.concat([])),n[i]=r}return n}function qt(t,e){for(var n;t.innerMode&&(n=t.innerMode(e))&&n.mode!=t;)e=n.state,t=n.mode;return n||{mode:t,state:e}}function Kt(t,e,n){return!t.startState||t.startState(e,n)}function Gt(t,e,n,i){var r=[t.state.modeGen],o={};ne(t,e.text,t.doc.mode,n,function(t,e){return r.push(t,e)},o,i);for(var s=n.state,a=0;at&&r.splice(l,1,t,r[l+1],i),l+=2,c=Math.min(t,i)}if(e)if(a.opaque)r.splice(n,l-n,t,"overlay "+e),l=n+2;else for(;nt.options.maxHighlightLength&&Ut(t.doc.mode,i.state),o=Gt(t,e,i);r&&(i.state=r),e.stateAfter=i.save(!r),e.styles=o.styles,o.classes?e.styleClasses=o.classes:e.styleClasses&&(e.styleClasses=null),n===t.doc.highlightFrontier&&(t.doc.modeFrontier=Math.max(t.doc.modeFrontier,++t.doc.highlightFrontier))}return e.styles}function Xt(t,e,n){var i=t.doc,r=t.display;if(!i.mode.startState)return new ha(i,!0,e);var o=ie(t,e,n),s=o>i.first&&M(i,o-1).stateAfter,a=s?ha.fromSaved(i,s,o):new ha(i,Kt(i.mode),o);return i.iter(o,e,function(n){Jt(t,n.text,a);var i=a.line;n.stateAfter=i==e-1||i%5==0||i>=r.viewFrom&&ie.start)return o}throw new Error("Mode "+t.name+" failed to advance stream.")}function te(t,e,n,i){var r,o=t.doc,s=o.mode;e=j(o,e);var a,l=M(o,e.line),c=Xt(t,e.line,n),u=new ca(l.text,t.options.tabSize,c);for(i&&(a=[]);(i||u.post.options.maxHighlightLength?(a=!1,s&&Jt(t,e,i,h.pos),h.pos=e.length,l=null):l=ee(Qt(n,h,i.state,d),o),d){var f=d[0].name;f&&(l="m-"+(l?f+" "+l:f))}if(!a||u!=l){for(;cs;--a){if(a<=o.first)return o.first;var l=M(o,a-1),c=l.stateAfter;if(c&&(!n||a+(c instanceof ua?c.lookAhead:0)<=o.modeFrontier))return a;var u=h(l.text,null,t.options.tabSize);(null==r||i>u)&&(r=a-1,i=u)}return r}function re(t,e){if(t.modeFrontier=Math.min(t.modeFrontier,e),!(t.highlightFrontiern;i--){var r=M(t,i).stateAfter;if(r&&(!(r instanceof ua)||i+r.lookAhead1&&!/ /.test(t))return t;for(var n=e,i="",r=0;rc&&h.from<=c));d++);if(h.to>=u)return t(n,i,r,o,s,a,l);t(n,i.slice(0,h.to-c),r,o,null,a,l),o=null,i=i.slice(h.to-c),c=h.to}}}function fe(t,e,n,i){var r=!i&&n.widgetNode;r&&t.map.push(t.pos,t.pos+e,r),!i&&t.cm.display.input.needsContentAttribute&&(r||(r=t.content.appendChild(document.createElement("span"))),r.setAttribute("cm-marker",n.id)),r&&(t.cm.display.input.setUneditable(r),t.content.appendChild(r)),t.pos+=e,t.trailingSpace=!1}function pe(t,e,n){var i=t.markedSpans,r=t.text,o=0;if(i)for(var s,a,l,c,u,h,d,f=r.length,p=0,g=1,v="",m=0;;){if(m==p){l=c=u=h=a="",d=null,m=1/0;for(var y=[],b=void 0,x=0;xp||C.collapsed&&w.to==p&&w.from==p)?(null!=w.to&&w.to!=p&&m>w.to&&(m=w.to,c=""),C.className&&(l+=" "+C.className),C.css&&(a=(a?a+";":"")+C.css),C.startStyle&&w.from==p&&(u+=" "+C.startStyle),C.endStyle&&w.to==m&&(b||(b=[])).push(C.endStyle,w.to),C.title&&!h&&(h=C.title),C.collapsed&&(!d||st(d.marker,C)<0)&&(d=w)):w.from>p&&m>w.from&&(m=w.from)}if(b)for(var k=0;k=f)break;for(var T=Math.min(f,m);;){if(v){var E=p+v.length;if(!d){var M=E>T?v.slice(0,T-p):v;e.addToken(e,M,s?s+l:l,u,p+M.length==m?c:"",h,a)}if(E>=T){v=v.slice(T-p),p=T;break}p=E,u=""}v=r.slice(o,o=n[g++]),s=ae(n[g++],e.cm.options)}}else for(var P=1;P2&&o.push((l.bottom+c.top)/2-n.top)}}o.push(n.bottom-n.top)}}function Be(t,e,n){if(t.line==e)return{map:t.measure.map,cache:t.measure.cache};for(var i=0;in)return{map:t.measure.maps[r],cache:t.measure.caches[r],before:!0}}function We(t,e){e=ht(e);var i=L(e),r=t.display.externalMeasured=new ge(t.doc,e,i);r.lineN=i;var o=r.built=le(t,r);return r.text=o.pre,n(t.display.lineMeasure,o.pre),r}function Ue(t,e,n,i){return Ge(t,Ke(t,e),n,i)}function qe(t,e){if(e>=t.display.viewFrom&&e=n.lineN&&ee)&&(o=l-a,r=o-1,e>=l&&(s="right")),null!=r){if(i=t[c+2],a==l&&n==(i.insertLeft?"left":"right")&&(s=n),"left"==n&&0==r)for(;c&&t[c-2]==t[c-3]&&t[c-1].insertLeft;)i=t[2+(c-=3)],s="left";if("right"==n&&r==l-a)for(;c=0&&(n=t[r]).left==n.right;r--);return n}function Je(t,e,n,i){var r,o=Ye(e.map,n,i),s=o.node,a=o.start,l=o.end,c=o.collapse;if(3==s.nodeType){for(var u=0;u<4;u++){for(;a&&k(e.line.text.charAt(o.coverStart+a));)--a;for(;o.coverStart+l0&&(c=i="right");var h;r=t.options.lineWrapping&&(h=s.getClientRects()).length>1?h["right"==i?h.length-1:0]:s.getBoundingClientRect()}if(ms&&ys<9&&!a&&(!r||!r.left&&!r.right)){var d=s.parentNode.getClientRects()[0];r=d?{left:d.left,right:d.left+xn(t.display),top:d.top,bottom:d.bottom}:ba}for(var f=r.top-e.rect.top,p=r.bottom-e.rect.top,g=(f+p)/2,v=e.view.measure.heights,m=0;m=i.text.length?(c=i.text.length,u="before"):c<=0&&(c=0,u="after"),!l)return s("before"==u?c-1:c,"before"==u);var h=Ct(l,c,u),d=Js,f=a(c,h,"before"==u);return null!=d&&(f.other=a(c,d,"before"!=u)),f}function un(t,e){var n=0;e=j(t.doc,e),t.options.lineWrapping||(n=xn(t.display)*e.ch);var i=M(t.doc,e.line),r=yt(i)+Fe(t.display);return{left:n,right:n,top:r,bottom:r+i.height}}function hn(t,e,n,i,r){var o=_(t,e,n);return o.xRel=r,i&&(o.outside=!0),o}function dn(t,e,n){var i=t.doc;if((n+=t.display.viewOffset)<0)return hn(i.first,0,null,!0,-1);var r=N(i,n),o=i.first+i.size-1;if(r>o)return hn(i.first+i.size-1,M(i,o).text.length,null,!0,1);e<0&&(e=0);for(var s=M(i,r);;){var a=vn(t,s,r,e,n),l=ct(s),c=l&&l.find(0,!0);if(!l||!(a.ch>c.from.ch||a.ch==c.from.ch&&a.xRel>0))return a;r=L(s=c.to.line)}}function fn(t,e,n,i){i-=on(e);var r=e.text.length,o=T(function(e){return Ge(t,n,e-1).bottom<=i},r,0);return r=T(function(e){return Ge(t,n,e).top>i},o,r),{begin:o,end:r}}function pn(t,e,n,i){return n||(n=Ke(t,e)),fn(t,e,n,sn(t,e,Ge(t,n,i),"line").top)}function gn(t,e,n,i){return!(t.bottom<=n)&&(t.top>n||(i?t.left:t.right)>e)}function vn(t,e,n,i,r){r-=yt(e);var o=Ke(t,e),s=on(e),a=0,l=e.text.length,c=!0,u=kt(e,t.doc.direction);if(u){var h=(t.options.lineWrapping?yn:mn)(t,e,n,o,u,i,r);c=1!=h.level,a=c?h.from:h.to-1,l=c?h.to:h.from-1}var d,f,p=null,g=null,v=T(function(e){var n=Ge(t,o,e);return n.top+=s,n.bottom+=s,!!gn(n,i,r,!1)&&(n.top<=r&&n.left<=i&&(p=e,g=n),!0)},a,l),m=!1;if(g){var y=i-g.left=x.bottom}return v=S(e.text,v,1),hn(n,v,f,m,i-d)}function mn(t,e,n,i,r,o,s){var a=T(function(a){var l=r[a],c=1!=l.level;return gn(cn(t,_(n,c?l.to:l.from,c?"before":"after"),"line",e,i),o,s,!0)},0,r.length-1),l=r[a];if(a>0){var c=1!=l.level,u=cn(t,_(n,c?l.from:l.to,c?"after":"before"),"line",e,i);gn(u,o,s,!0)&&u.top>s&&(l=r[a-1])}return l}function yn(t,e,n,i,r,o,s){var a=fn(t,e,i,s),l=a.begin,c=a.end;/\s/.test(e.text.charAt(c-1))&&c--;for(var u=null,h=null,d=0;d=c||f.to<=l)){var p=1!=f.level,g=Ge(t,i,p?Math.min(c,f.to)-1:Math.max(l,f.from)).right,v=gv)&&(u=f,h=v)}}return u||(u=r[r.length-1]),u.fromc&&(u={from:u.from,to:c,level:u.level}),u}function bn(t){if(null!=t.cachedTextHeight)return t.cachedTextHeight;if(null==pa){pa=i("pre");for(var r=0;r<49;++r)pa.appendChild(document.createTextNode("x")),pa.appendChild(i("br"));pa.appendChild(document.createTextNode("x"))}n(t.measure,pa);var o=pa.offsetHeight/50;return o>3&&(t.cachedTextHeight=o),e(t.measure),o||1}function xn(t){if(null!=t.cachedCharWidth)return t.cachedCharWidth;var e=i("span","xxxxxxxxxx"),r=i("pre",[e]);n(t.measure,r);var o=e.getBoundingClientRect(),s=(o.right-o.left)/10;return s>2&&(t.cachedCharWidth=s),s||10}function wn(t){for(var e=t.display,n={},i={},r=e.gutters.clientLeft,o=e.gutters.firstChild,s=0;o;o=o.nextSibling,++s)n[t.options.gutters[s]]=o.offsetLeft+o.clientLeft+r,i[t.options.gutters[s]]=o.clientWidth;return{fixedPos:Cn(e),gutterTotalWidth:e.gutters.offsetWidth,gutterLeft:n,gutterWidth:i,wrapperWidth:e.wrapper.clientWidth}}function Cn(t){return t.scroller.getBoundingClientRect().left-t.sizer.getBoundingClientRect().left}function kn(t){var e=bn(t.display),n=t.options.lineWrapping,i=n&&Math.max(5,t.display.scroller.clientWidth/xn(t.display)-3);return function(r){if(vt(t.doc,r))return 0;var o=0;if(r.widgets)for(var s=0;s=t.display.viewTo)return null;if((e-=t.display.viewFrom)<0)return null;for(var n=t.display.view,i=0;i=t.display.viewTo||a.to().line0?e.blinker=setInterval(function(){return e.cursorDiv.style.visibility=(n=!n)?"":"hidden"},t.options.cursorBlinkRate):t.options.cursorBlinkRate<0&&(e.cursorDiv.style.visibility="hidden")}}function In(t){t.state.focused||(t.display.input.focus(),_n(t))}function Dn(t){t.state.delayingBlurEvent=!0,setTimeout(function(){t.state.delayingBlurEvent&&(t.state.delayingBlurEvent=!1,Fn(t))},100)}function _n(t,e){t.state.delayingBlurEvent&&(t.state.delayingBlurEvent=!1),"nocursor"!=t.options.readOnly&&(t.state.focused||(Et(t,"focus",t,e),t.state.focused=!0,a(t.display.wrapper,"CodeMirror-focused"),t.curOp||t.display.selForContextMenu==t.doc.sel||(t.display.input.reset(),bs&&setTimeout(function(){return t.display.input.reset(!0)},20)),t.display.input.receivedFocus()),Nn(t))}function Fn(t,e){t.state.delayingBlurEvent||(t.state.focused&&(Et(t,"blur",t,e),t.state.focused=!1,Fs(t.display.wrapper,"CodeMirror-focused")),clearInterval(t.display.blinker),setTimeout(function(){t.state.focused||(t.display.shift=!1)},150))}function zn(t){for(var e=t.display,n=e.lineDiv.offsetTop,i=0;i.005||l<-.005)&&(O(r.line,o),$n(r.line),r.rest))for(var c=0;c=s&&(o=N(e,yt(M(e,l))-t.wrapper.clientHeight),s=l)}return{from:o,to:Math.max(s,o+1)}}function Vn(t){var e=t.display,n=e.view;if(e.alignWidgets||e.gutters.firstChild&&t.options.fixedGutter){for(var i=Cn(e)-e.scroller.scrollLeft+t.doc.scrollLeft,r=e.gutters.offsetWidth,o=i+"px",s=0;s(window.innerHeight||document.documentElement.clientHeight)&&(o=!1),null!=o&&!Ts){var s=i("div","​",null,"position: absolute;\n top: "+(e.top-n.viewOffset-Fe(t.display))+"px;\n height: "+(e.bottom-e.top+Re(t)+n.barHeight)+"px;\n left: "+e.left+"px; width: "+Math.max(2,e.right-e.left)+"px;");t.display.lineSpace.appendChild(s),s.scrollIntoView(o),t.display.lineSpace.removeChild(s)}}}function Bn(t,e,n,i){null==i&&(i=0);var r;t.options.lineWrapping||e!=n||(e=e.ch?_(e.line,"before"==e.sticky?e.ch-1:e.ch,"after"):e,n="before"==e.sticky?_(e.line,e.ch+1,"before"):e);for(var o=0;o<5;o++){var s=!1,a=cn(t,e),l=n&&n!=e?cn(t,n):a;r={left:Math.min(a.left,l.left),top:Math.min(a.top,l.top)-i,right:Math.max(a.left,l.left),bottom:Math.max(a.bottom,l.bottom)+i};var c=Un(t,r),u=t.doc.scrollTop,h=t.doc.scrollLeft;if(null!=c.scrollTop&&(Zn(t,c.scrollTop),Math.abs(t.doc.scrollTop-u)>1&&(s=!0)),null!=c.scrollLeft&&(ti(t,c.scrollLeft),Math.abs(t.doc.scrollLeft-h)>1&&(s=!0)),!s)break}return r}function Wn(t,e){var n=Un(t,e);null!=n.scrollTop&&Zn(t,n.scrollTop),null!=n.scrollLeft&&ti(t,n.scrollLeft)}function Un(t,e){var n=t.display,i=bn(t.display);e.top<0&&(e.top=0);var r=t.curOp&&null!=t.curOp.scrollTop?t.curOp.scrollTop:n.scroller.scrollTop,o=He(t),s={};e.bottom-e.top>o&&(e.bottom=e.top+o);var a=t.doc.height+ze(n),l=e.topa-i;if(e.topr+o){var u=Math.min(e.top,(c?a:e.bottom)-o);u!=r&&(s.scrollTop=u)}var h=t.curOp&&null!=t.curOp.scrollLeft?t.curOp.scrollLeft:n.scroller.scrollLeft,d=Ve(t)-(t.options.fixedGutter?n.gutters.offsetWidth:0),f=e.right-e.left>d;return f&&(e.right=e.left+d),e.left<10?s.scrollLeft=0:e.leftd+h-3&&(s.scrollLeft=e.right+(f?0:10)-d),s}function qn(t,e){null!=e&&(Xn(t),t.curOp.scrollTop=(null==t.curOp.scrollTop?t.doc.scrollTop:t.curOp.scrollTop)+e)}function Kn(t){Xn(t);var e=t.getCursor();t.curOp.scrollToPos={from:e,to:e,margin:t.options.cursorScrollMargin}}function Gn(t,e,n){null==e&&null==n||Xn(t),null!=e&&(t.curOp.scrollLeft=e),null!=n&&(t.curOp.scrollTop=n)}function Yn(t,e){Xn(t),t.curOp.scrollToPos=e}function Xn(t){var e=t.curOp.scrollToPos;if(e){t.curOp.scrollToPos=null;Jn(t,un(t,e.from),un(t,e.to),e.margin)}}function Jn(t,e,n,i){var r=Un(t,{left:Math.min(e.left,n.left),top:Math.min(e.top,n.top)-i,right:Math.max(e.right,n.right),bottom:Math.max(e.bottom,n.bottom)+i});Gn(t,r.scrollLeft,r.scrollTop)}function Zn(t,e){Math.abs(t.doc.scrollTop-e)<2||(fs||Oi(t,{top:e}),Qn(t,e,!0),fs&&Oi(t),ki(t,100))}function Qn(t,e,n){e=Math.min(t.display.scroller.scrollHeight-t.display.scroller.clientHeight,e),(t.display.scroller.scrollTop!=e||n)&&(t.doc.scrollTop=e,t.display.scrollbars.setScrollTop(e),t.display.scroller.scrollTop!=e&&(t.display.scroller.scrollTop=e))}function ti(t,e,n,i){e=Math.min(e,t.display.scroller.scrollWidth-t.display.scroller.clientWidth),(n?e==t.doc.scrollLeft:Math.abs(t.doc.scrollLeft-e)<2)&&!i||(t.doc.scrollLeft=e,Vn(t),t.display.scroller.scrollLeft!=e&&(t.display.scroller.scrollLeft=e),t.display.scrollbars.setScrollLeft(e))}function ei(t){var e=t.display,n=e.gutters.offsetWidth,i=Math.round(t.doc.height+ze(t.display));return{clientHeight:e.scroller.clientHeight,viewHeight:e.wrapper.clientHeight,scrollWidth:e.scroller.scrollWidth,clientWidth:e.scroller.clientWidth,viewWidth:e.wrapper.clientWidth,barLeft:t.options.fixedGutter?n:0,docHeight:i,scrollHeight:i+Re(t)+e.barHeight,nativeBarWidth:e.nativeBarWidth,gutterWidth:n}}function ni(t,e){e||(e=ei(t));var n=t.display.barWidth,i=t.display.barHeight;ii(t,e);for(var r=0;r<4&&n!=t.display.barWidth||i!=t.display.barHeight;r++)n!=t.display.barWidth&&t.options.lineWrapping&&zn(t),ii(t,ei(t)),n=t.display.barWidth,i=t.display.barHeight}function ii(t,e){var n=t.display,i=n.scrollbars.update(e);n.sizer.style.paddingRight=(n.barWidth=i.right)+"px",n.sizer.style.paddingBottom=(n.barHeight=i.bottom)+"px",n.heightForcer.style.borderBottom=i.bottom+"px solid transparent",i.right&&i.bottom?(n.scrollbarFiller.style.display="block",n.scrollbarFiller.style.height=i.bottom+"px",n.scrollbarFiller.style.width=i.right+"px"):n.scrollbarFiller.style.display="",i.bottom&&t.options.coverGutterNextToScrollbar&&t.options.fixedGutter?(n.gutterFiller.style.display="block",n.gutterFiller.style.height=i.bottom+"px",n.gutterFiller.style.width=e.gutterWidth+"px"):n.gutterFiller.style.display=""}function ri(t){t.display.scrollbars&&(t.display.scrollbars.clear(),t.display.scrollbars.addClass&&Fs(t.display.wrapper,t.display.scrollbars.addClass)),t.display.scrollbars=new Ca[t.options.scrollbarStyle](function(e){t.display.wrapper.insertBefore(e,t.display.scrollbarFiller),ta(e,"mousedown",function(){t.state.focused&&setTimeout(function(){return t.display.input.focus()},0)}),e.setAttribute("cm-not-content","true")},function(e,n){"horizontal"==n?ti(t,e):Zn(t,e)},t),t.display.scrollbars.addClass&&a(t.display.wrapper,t.display.scrollbars.addClass)}function oi(t){t.curOp={cm:t,viewChanged:!1,startHeight:t.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++ka},me(t.curOp)}function si(t){be(t.curOp,function(t){for(var e=0;e=n.viewTo)||n.maxLineChanged&&e.options.lineWrapping,t.update=t.mustUpdate&&new Sa(e,t.mustUpdate&&{top:t.scrollTop,ensure:t.scrollToPos},t.forceUpdate)}function ci(t){t.updatedDisplay=t.mustUpdate&&Pi(t.cm,t.update)}function ui(t){var e=t.cm,n=e.display;t.updatedDisplay&&zn(e),t.barMeasure=ei(e),n.maxLineChanged&&!e.options.lineWrapping&&(t.adjustWidthTo=Ue(e,n.maxLine,n.maxLine.text.length).left+3,e.display.sizerWidth=t.adjustWidthTo,t.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+t.adjustWidthTo+Re(e)+e.display.barWidth),t.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+t.adjustWidthTo-Ve(e))),(t.updatedDisplay||t.selectionChanged)&&(t.preparedSelection=n.input.prepareSelection())}function hi(t){var e=t.cm;null!=t.adjustWidthTo&&(e.display.sizer.style.minWidth=t.adjustWidthTo+"px",t.maxScrollLefte)&&(r.updateLineNumbers=e),t.curOp.viewChanged=!0,e>=r.viewTo)Xs&&pt(t.doc,e)r.viewFrom?bi(t):(r.viewFrom+=i,r.viewTo+=i);else if(e<=r.viewFrom&&n>=r.viewTo)bi(t);else if(e<=r.viewFrom){var o=xi(t,n,n+i,1);o?(r.view=r.view.slice(o.index),r.viewFrom=o.lineN,r.viewTo+=i):bi(t)}else if(n>=r.viewTo){var s=xi(t,e,e,-1);s?(r.view=r.view.slice(0,s.index),r.viewTo=s.lineN):bi(t)}else{var a=xi(t,e,e,-1),l=xi(t,n,n+i,1);a&&l?(r.view=r.view.slice(0,a.index).concat(ve(t,a.lineN,l.lineN)).concat(r.view.slice(l.index)),r.viewTo+=i):bi(t)}var c=r.externalMeasured;c&&(n=r.lineN&&e=i.viewTo)){var o=i.view[En(t,e)];if(null!=o.node){var s=o.changes||(o.changes=[]);-1==d(s,n)&&s.push(n)}}}function bi(t){t.display.viewFrom=t.display.viewTo=t.doc.first,t.display.view=[],t.display.viewOffset=0}function xi(t,e,n,i){var r,o=En(t,e),s=t.display.view;if(!Xs||n==t.doc.first+t.doc.size)return{index:o,lineN:n};for(var a=t.display.viewFrom,l=0;l0){if(o==s.length-1)return null;r=a+s[o].size-e,o++}else r=a-e;e+=r,n+=r}for(;pt(t.doc,n)!=n;){if(o==(i<0?0:s.length-1))return null;n+=i*s[o-(i<0?1:0)].size,o+=i}return{index:o,lineN:n}}function wi(t,e,n){var i=t.display;0==i.view.length||e>=i.viewTo||n<=i.viewFrom?(i.view=ve(t,e,n),i.viewFrom=e):(i.viewFrom>e?i.view=ve(t,e,i.viewFrom).concat(i.view):i.viewFromn&&(i.view=i.view.slice(0,En(t,n)))),i.viewTo=n}function Ci(t){for(var e=t.display.view,n=0,i=0;i=t.display.viewTo)){var n=+new Date+t.options.workTime,i=Xt(t,e.highlightFrontier),r=[];e.iter(i.line,Math.min(e.first+e.size,t.display.viewTo+500),function(o){if(i.line>=t.display.viewFrom){var s=o.styles,a=o.text.length>t.options.maxHighlightLength?Ut(e.mode,i.state):null,l=Gt(t,o,i,!0);a&&(i.state=a),o.styles=l.styles;var c=o.styleClasses,u=l.classes;u?o.styleClasses=u:c&&(o.styleClasses=null);for(var h=!s||s.length!=o.styles.length||c!=u&&(!c||!u||c.bgClass!=u.bgClass||c.textClass!=u.textClass),d=0;!h&&dn)return ki(t,t.options.workDelay),!0}),e.highlightFrontier=i.line,e.modeFrontier=Math.max(e.modeFrontier,i.line),r.length&&fi(t,function(){for(var e=0;e=i.viewFrom&&n.visible.to<=i.viewTo&&(null==i.updateLineNumbers||i.updateLineNumbers>=i.viewTo)&&i.renderedView==i.view&&0==Ci(t))return!1;Hn(t)&&(bi(t),n.dims=wn(t));var o=r.first+r.size,s=Math.max(n.visible.from-t.options.viewportMargin,r.first),a=Math.min(o,n.visible.to+t.options.viewportMargin);i.viewFroma&&i.viewTo-a<20&&(a=Math.min(o,i.viewTo)),Xs&&(s=pt(t.doc,s),a=gt(t.doc,a));var l=s!=i.viewFrom||a!=i.viewTo||i.lastWrapHeight!=n.wrapperHeight||i.lastWrapWidth!=n.wrapperWidth;wi(t,s,a),i.viewOffset=yt(M(t.doc,i.viewFrom)),t.display.mover.style.top=i.viewOffset+"px";var c=Ci(t);if(!l&&0==c&&!n.force&&i.renderedView==i.view&&(null==i.updateLineNumbers||i.updateLineNumbers>=i.viewTo))return!1;var u=Ei(t);return c>4&&(i.lineDiv.style.display="none"),Li(t,i.updateLineNumbers,n.dims),c>4&&(i.lineDiv.style.display=""),i.renderedView=i.view,Mi(u),e(i.cursorDiv),e(i.selectionDiv),i.gutters.style.height=i.sizer.style.minHeight=0,l&&(i.lastWrapHeight=n.wrapperHeight,i.lastWrapWidth=n.wrapperWidth,ki(t,400)),i.updateLineNumbers=null,!0}function Ai(t,e){for(var n=e.viewport,i=!0;(i&&t.options.lineWrapping&&e.oldDisplayWidth!=Ve(t)||(n&&null!=n.top&&(n={top:Math.min(t.doc.height+ze(t.display)-He(t),n.top)}),e.visible=Rn(t.display,t.doc,n),!(e.visible.from>=t.display.viewFrom&&e.visible.to<=t.display.viewTo)))&&Pi(t,e);i=!1){zn(t);var r=ei(t);Mn(t),ni(t,r),Ii(t,r),e.force=!1}e.signal(t,"update",t),t.display.viewFrom==t.display.reportedViewFrom&&t.display.viewTo==t.display.reportedViewTo||(e.signal(t,"viewportChange",t,t.display.viewFrom,t.display.viewTo),t.display.reportedViewFrom=t.display.viewFrom,t.display.reportedViewTo=t.display.viewTo)}function Oi(t,e){var n=new Sa(t,e);if(Pi(t,n)){zn(t),Ai(t,n);var i=ei(t);Mn(t),ni(t,i),Ii(t,i),n.finish()}}function Li(t,n,i){function r(e){var n=e.nextSibling;return bs&&As&&t.display.currentWheelTarget==e?e.style.display="none":e.parentNode.removeChild(e),n}for(var o=t.display,s=t.options.lineNumbers,a=o.lineDiv,l=a.firstChild,c=o.view,u=o.viewFrom,h=0;h-1&&(p=!1),Ce(t,f,u,i)),p&&(e(f.lineNumber),f.lineNumber.appendChild(document.createTextNode(D(t.options,u)))),l=f.node.nextSibling}else{var g=Oe(t,f,u,i);a.insertBefore(g,l)}u+=f.size}for(;l;)l=r(l)}function Ni(t){var e=t.display.gutters.offsetWidth;t.display.sizer.style.marginLeft=e+"px"}function Ii(t,e){t.display.sizer.style.minHeight=e.docHeight+"px",t.display.heightForcer.style.top=e.docHeight+"px",t.display.gutters.style.height=e.docHeight+t.display.barHeight+Re(t)+"px"}function Di(t){var n=t.display.gutters,r=t.options.gutters;e(n);for(var o=0;o-1&&!t.lineNumbers&&(t.gutters=t.gutters.slice(0),t.gutters.splice(e,1))}function Fi(t){var e=t.wheelDeltaX,n=t.wheelDeltaY;return null==e&&t.detail&&t.axis==t.HORIZONTAL_AXIS&&(e=t.detail),null==n&&t.detail&&t.axis==t.VERTICAL_AXIS?n=t.detail:null==n&&(n=t.wheelDelta),{x:e,y:n}}function zi(t){var e=Fi(t);return e.x*=Ea,e.y*=Ea,e}function $i(t,e){var n=Fi(e),i=n.x,r=n.y,o=t.display,s=o.scroller,a=s.scrollWidth>s.clientWidth,l=s.scrollHeight>s.clientHeight;if(i&&a||r&&l){if(r&&As&&bs)t:for(var c=e.target,u=o.view;c!=s;c=c.parentNode)for(var h=0;h=0){var s=V(o.from(),r.from()),a=R(o.to(),r.to()),l=o.empty()?r.from()==r.head:o.from()==o.head;i<=e&&--e,t.splice(--i,2,new Pa(l?a:s,l?s:a))}}return new Ma(t,e)}function Vi(t,e){return new Ma([new Pa(t,e||t)],0)}function Hi(t){return t.text?_(t.from.line+t.text.length-1,g(t.text).length+(1==t.text.length?t.from.ch:0)):t.to}function ji(t,e){if(F(t,e.from)<0)return t;if(F(t,e.to)<=0)return Hi(e);var n=t.line+e.text.length-(e.to.line-e.from.line)-1,i=t.ch;return t.line==e.to.line&&(i+=Hi(e).ch-e.to.ch),_(n,i)}function Bi(t,e){for(var n=[],i=0;i1&&t.remove(a.line+1,p-1),t.insert(a.line+1,y)}xe(t,"change",t,e)}function Xi(t,e,n){function i(t,r,o){if(t.linked)for(var s=0;s1&&!t.done[t.done.length-2].ranges?(t.done.pop(),g(t.done)):void 0}function rr(t,e,n,i){var r=t.history;r.undone.length=0;var o,s,a=+new Date;if((r.lastOp==i||r.lastOrigin==e.origin&&e.origin&&("+"==e.origin.charAt(0)&&t.cm&&r.lastModTime>a-t.cm.options.historyEventDelay||"*"==e.origin.charAt(0)))&&(o=ir(r,r.lastOp==i)))s=g(o.changes),0==F(e.from,e.to)&&0==F(e.from,s.to)?s.to=Hi(e):o.changes.push(er(t,e));else{var l=g(r.done);for(l&&l.ranges||ar(t.sel,r.done),o={changes:[er(t,e)],generation:r.generation},r.done.push(o);r.done.length>r.undoDepth;)r.done.shift(),r.done[0].ranges||r.done.shift()}r.done.push(n),r.generation=++r.maxGeneration,r.lastModTime=r.lastSelTime=a,r.lastOp=r.lastSelOp=i,r.lastOrigin=r.lastSelOrigin=e.origin,s||Et(t,"historyAdded")}function or(t,e,n,i){var r=e.charAt(0);return"*"==r||"+"==r&&n.ranges.length==i.ranges.length&&n.somethingSelected()==i.somethingSelected()&&new Date-t.history.lastSelTime<=(t.cm?t.cm.options.historyEventDelay:500)}function sr(t,e,n,i){var r=t.history,o=i&&i.origin;n==r.lastSelOp||o&&r.lastSelOrigin==o&&(r.lastModTime==r.lastSelTime&&r.lastOrigin==o||or(t,o,g(r.done),e))?r.done[r.done.length-1]=e:ar(e,r.done),r.lastSelTime=+new Date,r.lastSelOrigin=o,r.lastSelOp=n,i&&!1!==i.clearRedo&&nr(r.undone)}function ar(t,e){var n=g(e);n&&n.ranges&&n.equals(t)||e.push(t)}function lr(t,e,n,i){var r=e["spans_"+t.id],o=0;t.iter(Math.max(t.first,n),Math.min(t.first+t.size,i),function(n){n.markedSpans&&((r||(r=e["spans_"+t.id]={}))[o]=n.markedSpans),++o})}function cr(t){if(!t)return null;for(var e,n=0;n-1&&(g(a)[h]=c[h],delete c[h])}}}return i}function fr(t,e,n,i){if(i){var r=t.anchor;if(n){var o=F(e,r)<0;o!=F(n,r)<0?(r=e,e=n):o!=F(e,n)<0&&(e=n)}return new Pa(r,e)}return new Pa(n||e,e)}function pr(t,e,n,i,r){null==r&&(r=t.cm&&(t.cm.display.shift||t.extend)),xr(t,new Ma([fr(t.sel.primary(),e,n,r)],0),i)}function gr(t,e,n){for(var i=[],r=t.cm&&(t.cm.display.shift||t.extend),o=0;o=e.ch:a.to>e.ch))){if(r&&(Et(l,"beforeCursorEnter"),l.explicitlyCleared)){if(o.markedSpans){--s;continue}break}if(!l.atomic)continue;if(n){var c=l.find(i<0?1:-1),u=void 0;if((i<0?l.inclusiveRight:l.inclusiveLeft)&&(c=Mr(t,c,-i,c&&c.line==e.line?o:null)),c&&c.line==e.line&&(u=F(c,n))&&(i<0?u<0:u>0))return Tr(t,c,e,i,r)}var h=l.find(i<0?-1:1);return(i<0?l.inclusiveLeft:l.inclusiveRight)&&(h=Mr(t,h,i,h.line==e.line?o:null)),h?Tr(t,h,e,i,r):null}}return e}function Er(t,e,n,i,r){var o=i||1,s=Tr(t,e,n,o,r)||!r&&Tr(t,e,n,o,!0)||Tr(t,e,n,-o,r)||!r&&Tr(t,e,n,-o,!0);return s||(t.cantEdit=!0,_(t.first,0))}function Mr(t,e,n,i){return n<0&&0==e.ch?e.line>t.first?j(t,_(e.line-1)):null:n>0&&e.ch==(i||M(t,e.line)).text.length?e.line=0;--r)Lr(t,{from:i[r].from,to:i[r].to,text:r?[""]:e.text,origin:e.origin});else Lr(t,e)}}function Lr(t,e){if(1!=e.text.length||""!=e.text[0]||0!=F(e.from,e.to)){var n=Bi(t,e);rr(t,e,n,t.cm?t.cm.curOp.id:NaN),Dr(t,e,n,Q(t,e));var i=[];Xi(t,function(t,n){n||-1!=d(i,t.history)||(Rr(t.history,e),i.push(t.history)),Dr(t,e,null,Q(t,e))})}}function Nr(t,e,n){if(!t.cm||!t.cm.state.suppressEdits||n){for(var i,r=t.history,o=t.sel,s="undo"==e?r.done:r.undone,a="undo"==e?r.undone:r.done,l=0;l=0;--h){var f=function(n){var r=i.changes[n];if(r.origin=e,u&&!Ar(t,r,!1))return s.length=0,{};c.push(er(t,r));var o=n?Bi(t,r):g(s);Dr(t,r,o,hr(t,r)),!n&&t.cm&&t.cm.scrollIntoView({from:r.from,to:Hi(r)});var a=[];Xi(t,function(t,e){e||-1!=d(a,t.history)||(Rr(t.history,r),a.push(t.history)),Dr(t,r,null,hr(t,r))})}(h);if(f)return f.v}}}}function Ir(t,e){if(0!=e&&(t.first+=e,t.sel=new Ma(v(t.sel.ranges,function(t){return new Pa(_(t.anchor.line+e,t.anchor.ch),_(t.head.line+e,t.head.ch))}),t.sel.primIndex),t.cm)){mi(t.cm,t.first,t.first-e,e);for(var n=t.cm.display,i=n.viewFrom;it.lastLine())){if(e.from.lineo&&(e={from:e.from,to:_(o,M(t,o).text.length),text:[e.text[0]],origin:e.origin}),e.removed=P(t,e.from,e.to),n||(n=Bi(t,e)),t.cm?_r(t.cm,e,i):Yi(t,e,i),wr(t,n,Bs)}}function _r(t,e,n){var i=t.doc,r=t.display,o=e.from,s=e.to,a=!1,l=o.line;t.options.lineWrapping||(l=L(ht(M(i,o.line))),i.iter(l,s.line+1,function(t){if(t==r.maxLine)return a=!0,!0})),i.sel.contains(e.from,e.to)>-1&&Pt(t),Yi(i,e,n,kn(t)),t.options.lineWrapping||(i.iter(l,o.line+e.text.length,function(t){var e=bt(t);e>r.maxLineLength&&(r.maxLine=t,r.maxLineLength=e,r.maxLineChanged=!0,a=!1)}),a&&(t.curOp.updateMaxLine=!0)),re(i,o.line),ki(t,400);var c=e.text.length-(s.line-o.line)-1;e.full?mi(t):o.line!=s.line||1!=e.text.length||Gi(t.doc,e)?mi(t,o.line,s.line+1,c):yi(t,o.line,"text");var u=At(t,"changes"),h=At(t,"change");if(h||u){var d={from:o,to:s,text:e.text,removed:e.removed,origin:e.origin};h&&xe(t,"change",t,d),u&&(t.curOp.changeObjs||(t.curOp.changeObjs=[])).push(d)}t.display.selForContextMenu=null}function Fr(t,e,n,i,r){if(i||(i=n),F(i,n)<0){var o;o=[i,n],n=o[0],i=o[1]}"string"==typeof e&&(e=t.splitLines(e)),Or(t,{from:n,to:i,text:e,origin:r})}function zr(t,e,n,i){n0||0==a&&!1!==s.clearWhenEmpty)return s;if(s.replacedWith&&(s.collapsed=!0,s.widgetNode=r("span",[s.replacedWith],"CodeMirror-widget"),i.handleMouseEvents||s.widgetNode.setAttribute("cm-ignore-events","true"),i.insertLeft&&(s.widgetNode.insertLeft=!0)),s.collapsed){if(ut(t,e.line,e,n,s)||e.line!=n.line&&ut(t,n.line,e,n,s))throw new Error("Inserting collapsed marker partially overlapping an existing one");q()}s.addToHistory&&rr(t,{from:e,to:n,origin:"markText"},t.sel,NaN);var l,c=e.line,h=t.cm;if(t.iter(c,n.line+1,function(t){h&&s.collapsed&&!h.options.lineWrapping&&ht(t)==h.display.maxLine&&(l=!0),s.collapsed&&c!=e.line&&O(t,0),X(t,new K(s,c==e.line?e.ch:null,c==n.line?n.ch:null)),++c}),s.collapsed&&t.iter(e.line,n.line+1,function(e){vt(t,e)&&O(e,0)}),s.clearOnEnter&&ta(s,"beforeCursorEnter",function(){return s.clear()}),s.readOnly&&(U(),(t.history.done.length||t.history.undone.length)&&t.clearHistory()),s.collapsed&&(s.id=++Oa,s.atomic=!0),h){if(l&&(h.curOp.updateMaxLine=!0),s.collapsed)mi(h,e.line,n.line+1);else if(s.className||s.title||s.startStyle||s.endStyle||s.css)for(var d=e.line;d<=n.line;d++)yi(h,d,"text");s.atomic&&kr(h.doc),xe(h,"markerAdded",h,s)}return s}function qr(t,e,n,i,r){i=u(i),i.shared=!1;var o=[Ur(t,e,n,i,r)],s=o[0],a=i.widgetNode;return Xi(t,function(t){a&&(i.widgetNode=a.cloneNode(!0)),o.push(Ur(t,j(t,e),j(t,n),i,r));for(var l=0;l-1)return e.state.draggingText(t),void setTimeout(function(){return e.display.input.focus()},20);try{var l=t.dataTransfer.getData("Text");if(l){var c;if(e.state.draggingText&&!e.state.draggingText.copy&&(c=e.listSelections()),wr(e.doc,Vi(n,n)),c)for(var u=0;u=0;e--)Fr(t.doc,"",i[e].from,i[e].to,"+delete");Kn(t)})}function fo(t,e,n){var i=S(t.text,e+n,n);return i<0||i>t.text.length?null:i}function po(t,e,n){var i=fo(t,e.ch,n);return null==i?null:new _(e.line,i,n<0?"after":"before")}function go(t,e,n,i,r){if(t){var o=kt(n,e.doc.direction);if(o){var s,a=r<0?g(o):o[0],l=r<0==(1==a.level),c=l?"after":"before";if(a.level>0||"rtl"==e.doc.direction){var u=Ke(e,n);s=r<0?n.text.length-1:0;var h=Ge(e,u,s).top;s=T(function(t){return Ge(e,u,t).top==h},r<0==(1==a.level)?a.from:a.to-1,s),"before"==c&&(s=fo(n,s,1))}else s=r<0?a.to:a.from;return new _(i,s,c)}}return new _(i,r<0?n.text.length:0,r<0?"before":"after")}function vo(t,e,n,i){var r=kt(e,t.doc.direction);if(!r)return po(e,n,i);n.ch>=e.text.length?(n.ch=e.text.length,n.sticky="before"):n.ch<=0&&(n.ch=0,n.sticky="after");var o=Ct(r,n.ch,n.sticky),s=r[o];if("ltr"==t.doc.direction&&s.level%2==0&&(i>0?s.to>n.ch:s.from=s.from&&d>=u.begin)){var f=h?"before":"after";return new _(n.line,d,f)}}var p=function(t,e,i){for(var o=function(t,e){return e?new _(n.line,l(t,1),"before"):new _(n.line,t,"after")};t>=0&&t0==(1!=s.level),c=a?i.begin:l(i.end,-1);if(s.from<=c&&c0?u.end:l(u.begin,-1);return null==v||i>0&&v==e.text.length||!(g=p(i>0?0:r.length-1,i,c(v)))?null:g}function mo(t,e){var n=M(t.doc,e),i=ht(n);return i!=n&&(e=L(i)),go(!0,t,i,e,1)}function yo(t,e){var n=M(t.doc,e),i=dt(n);return i!=n&&(e=L(i)),go(!0,t,n,e,-1)}function bo(t,e){var n=mo(t,e.line),i=M(t.doc,n.line),r=kt(i,t.doc.direction);if(!r||0==r[0].level){var o=Math.max(0,i.text.search(/\S/)),s=e.line==n.line&&e.ch<=o&&e.ch;return _(n.line,s?0:o,n.sticky)}return n}function xo(t,e,n){if("string"==typeof e&&!(e=ja[e]))return!1;t.display.input.ensurePolled();var i=t.display.shift,r=!1;try{t.isReadOnly()&&(t.state.suppressEdits=!0),n&&(t.display.shift=!1),r=e(t)!=js}finally{t.display.shift=i,t.state.suppressEdits=!1}return r}function wo(t,e,n){for(var i=0;i-1&&(F((r=a.ranges[r]).from(),e)<0||e.xRel>0)&&(F(r.to(),e)>0||e.xRel<0)?Do(t,i,e,o):Fo(t,i,e,o)}function Do(t,e,n,i){var r=t.display,o=!1,s=pi(t,function(e){bs&&(r.scroller.draggable=!1),t.state.draggingText=!1,Tt(document,"mouseup",s),Tt(document,"mousemove",a),Tt(r.scroller,"dragstart",l),Tt(r.scroller,"drop",s),o||(Lt(e),i.addNew||pr(t.doc,n,null,null,i.extend),bs||ms&&9==ys?setTimeout(function(){document.body.focus(),r.input.focus()},20):r.input.focus())}),a=function(t){o=o||Math.abs(e.clientX-t.clientX)+Math.abs(e.clientY-t.clientY)>=10},l=function(){return o=!0};bs&&(r.scroller.draggable=!0),t.state.draggingText=s,s.copy=!i.moveOnDrag,r.scroller.dragDrop&&r.scroller.dragDrop(),ta(document,"mouseup",s),ta(document,"mousemove",a),ta(r.scroller,"dragstart",l),ta(r.scroller,"drop",s),Dn(t),setTimeout(function(){return r.input.focus()},20)}function _o(t,e,n){if("char"==n)return new Pa(e,e);if("word"==n)return t.findWordAt(e);if("line"==n)return new Pa(_(e.line,0),j(t.doc,_(e.line+1,0)));var i=n(t,e);return new Pa(i.from,i.to)}function Fo(t,e,n,i){function r(e){if(0!=F(m,e))if(m=e,"rectangle"==i.unit){for(var r=[],o=t.options.tabSize,s=h(M(c,n.line).text,n.ch,o),a=h(M(c,e.line).text,e.ch,o),l=Math.min(s,a),g=Math.max(s,a),v=Math.min(n.line,e.line),y=Math.min(t.lastLine(),Math.max(n.line,e.line));v<=y;v++){var b=M(c,v).text,x=f(b,l,o);l==g?r.push(new Pa(_(v,x),_(v,x))):b.length>x&&r.push(new Pa(_(v,x),_(v,f(b,g,o))))}r.length||r.push(new Pa(n,n)),xr(c,Ri(p.ranges.slice(0,d).concat(r),d),{origin:"*mouse",scroll:!1}),t.scrollIntoView(e)}else{var w,C=u,k=_o(t,e,i.unit),S=C.anchor;F(k.anchor,S)>0?(w=k.head,S=V(C.from(),k.anchor)):(w=k.anchor,S=R(C.to(),k.head));var T=p.ranges.slice(0);T[d]=zo(t,new Pa(j(c,S),w)),xr(c,Ri(T,d),Ws)}}function o(e){var n=++b,a=Tn(t,e,!0,"rectangle"==i.unit);if(a)if(0!=F(a,m)){t.curOp.focus=s(),r(a);var u=Rn(l,c);(a.line>=u.to||a.liney.bottom?20:0;h&&setTimeout(pi(t,function(){b==n&&(l.scroller.scrollTop+=h,o(e))}),50)}}function a(e){t.state.selectingText=!1,b=1/0,Lt(e),l.input.focus(),Tt(document,"mousemove",x),Tt(document,"mouseup",w),c.history.lastSelOrigin=null}var l=t.display,c=t.doc;Lt(e);var u,d,p=c.sel,g=p.ranges;if(i.addNew&&!i.extend?(d=c.sel.contains(n),u=d>-1?g[d]:new Pa(n,n)):(u=c.sel.primary(),d=c.sel.primIndex),"rectangle"==i.unit)i.addNew||(u=new Pa(n,n)),n=Tn(t,e,!0,!0),d=-1;else{var v=_o(t,n,i.unit);u=i.extend?fr(u,v.anchor,v.head,i.extend):v}i.addNew?-1==d?(d=g.length,xr(c,Ri(g.concat([u]),d),{scroll:!1,origin:"*mouse"})):g.length>1&&g[d].empty()&&"char"==i.unit&&!i.extend?(xr(c,Ri(g.slice(0,d).concat(g.slice(d+1)),0),{scroll:!1,origin:"*mouse"}),p=c.sel):vr(c,d,u,Ws):(d=0,xr(c,new Ma([u],0),Ws),p=c.sel);var m=n,y=l.wrapper.getBoundingClientRect(),b=0,x=pi(t,function(t){Ft(t)?o(t):a(t)}),w=pi(t,a);t.state.selectingText=w,ta(document,"mousemove",x),ta(document,"mouseup",w)}function zo(t,e){var n=e.anchor,i=e.head,r=M(t.doc,n.line);if(0==F(n,i)&&n.sticky==i.sticky)return e;var o=kt(r);if(!o)return e;var s=Ct(o,n.ch,n.sticky),a=o[s];if(a.from!=n.ch&&a.to!=n.ch)return e;var l=s+(a.from==n.ch==(1!=a.level)?0:1);if(0==l||l==o.length)return e;var c;if(i.line!=n.line)c=(i.line-n.line)*("ltr"==t.doc.direction?1:-1)>0;else{var u=Ct(o,i.ch,i.sticky),h=u-s||(i.ch-n.ch)*(1==a.level?-1:1);c=u==l-1||u==l?h<0:h>0}var d=o[l+(c?-1:0)],f=c==(1==d.level),p=f?d.from:d.to,g=f?"after":"before";return n.ch==p&&n.sticky==g?e:new Pa(new _(n.line,p,g),i)}function $o(t,e,n,i){var r,o;if(e.touches)r=e.touches[0].clientX,o=e.touches[0].clientY;else try{r=e.clientX,o=e.clientY}catch(e){return!1}if(r>=Math.floor(t.display.gutters.getBoundingClientRect().right))return!1;i&&Lt(e);var s=t.display,a=s.lineDiv.getBoundingClientRect();if(o>a.bottom||!At(t,n))return It(e);o-=a.top-s.viewOffset;for(var l=0;l=r){return Et(t,n,t,N(t.doc,o),t.options.gutters[l],e),It(e)}}}function Ro(t,e){return $o(t,e,"gutterClick",!0)}function Vo(t,e){_e(t.display,e)||Ho(t,e)||Mt(t,e,"contextmenu")||t.display.input.onContextMenu(e)}function Ho(t,e){return!!At(t,"gutterContextMenu")&&$o(t,e,"gutterContextMenu",!1)}function jo(t){t.display.wrapper.className=t.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+t.options.theme.replace(/(^|\s)\s*/g," cm-s-"),en(t)}function Bo(t){Di(t),mi(t),Vn(t)}function Wo(t,e,n){if(!e!=!(n&&n!=Ga)){var i=t.display.dragFunctions,r=e?ta:Tt;r(t.display.scroller,"dragstart",i.start),r(t.display.scroller,"dragenter",i.enter),r(t.display.scroller,"dragover",i.over),r(t.display.scroller,"dragleave",i.leave),r(t.display.scroller,"drop",i.drop)}}function Uo(t){t.options.lineWrapping?(a(t.display.wrapper,"CodeMirror-wrap"),t.display.sizer.style.minWidth="",t.display.sizerWidth=null):(Fs(t.display.wrapper,"CodeMirror-wrap"),xt(t)),Sn(t),mi(t),en(t),setTimeout(function(){return ni(t)},100)}function qo(t,e){var n=this;if(!(this instanceof qo))return new qo(t,e);this.options=e=e?u(e):{},u(Ya,e,!1),_i(e);var i=e.value;"string"==typeof i&&(i=new Da(i,e.mode,null,e.lineSeparator,e.direction)),this.doc=i;var r=new qo.inputStyles[e.inputStyle](this),o=this.display=new E(t,i,r);o.wrapper.CodeMirror=this,Di(this),jo(this),e.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),ri(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new $s,keySeq:null,specialChars:null},e.autofocus&&!Ps&&o.input.focus(),ms&&ys<11&&setTimeout(function(){return n.display.input.reset(!0)},20),Ko(this),eo(),oi(this),this.curOp.forceUpdate=!0,Ji(this,i),e.autofocus&&!Ps||this.hasFocus()?setTimeout(c(_n,this),20):Fn(this);for(var s in Xa)Xa.hasOwnProperty(s)&&Xa[s](n,e[s],Ga);Hn(this),e.finishInit&&e.finishInit(this);for(var a=0;a400}var r=t.display;ta(r.scroller,"mousedown",pi(t,Oo)),ms&&ys<11?ta(r.scroller,"dblclick",pi(t,function(e){if(!Mt(t,e)){var n=Tn(t,e);if(n&&!Ro(t,e)&&!_e(t.display,e)){Lt(e);var i=t.findWordAt(n);pr(t.doc,i.anchor,i.head)}}})):ta(r.scroller,"dblclick",function(e){return Mt(t,e)||Lt(e)}),_s||ta(r.scroller,"contextmenu",function(e){return Vo(t,e)});var o,s={end:0};ta(r.scroller,"touchstart",function(e){if(!Mt(t,e)&&!n(e)&&!Ro(t,e)){r.input.ensurePolled(),clearTimeout(o);var i=+new Date;r.activeTouch={start:i,moved:!1,prev:i-s.end<=300?s:null},1==e.touches.length&&(r.activeTouch.left=e.touches[0].pageX,r.activeTouch.top=e.touches[0].pageY)}}),ta(r.scroller,"touchmove",function(){r.activeTouch&&(r.activeTouch.moved=!0)}),ta(r.scroller,"touchend",function(n){var o=r.activeTouch;if(o&&!_e(r,n)&&null!=o.left&&!o.moved&&new Date-o.start<300){var s,a=t.coordsChar(r.activeTouch,"page");s=!o.prev||i(o,o.prev)?new Pa(a,a):!o.prev.prev||i(o,o.prev.prev)?t.findWordAt(a):new Pa(_(a.line,0),j(t.doc,_(a.line+1,0))),t.setSelection(s.anchor,s.head),t.focus(),Lt(n)}e()}),ta(r.scroller,"touchcancel",e),ta(r.scroller,"scroll",function(){r.scroller.clientHeight&&(Zn(t,r.scroller.scrollTop),ti(t,r.scroller.scrollLeft,!0),Et(t,"scroll",t))}),ta(r.scroller,"mousewheel",function(e){return $i(t,e)}),ta(r.scroller,"DOMMouseScroll",function(e){return $i(t,e)}),ta(r.wrapper,"scroll",function(){return r.wrapper.scrollTop=r.wrapper.scrollLeft=0}),r.dragFunctions={enter:function(e){Mt(t,e)||Dt(e)},over:function(e){Mt(t,e)||(Zr(t,e),Dt(e))},start:function(e){return Jr(t,e)},drop:pi(t,Xr),leave:function(e){Mt(t,e)||Qr(t)}};var a=r.input.getField();ta(a,"keyup",function(e){return Mo.call(t,e)}),ta(a,"keydown",pi(t,To)),ta(a,"keypress",pi(t,Po)),ta(a,"focus",function(e){return _n(t,e)}),ta(a,"blur",function(e){return Fn(t,e)})}function Go(t,e,n,i){var r,o=t.doc;null==n&&(n="add"),"smart"==n&&(o.mode.indent?r=Xt(t,e).state:n="prev");var s=t.options.tabSize,a=M(o,e),l=h(a.text,null,s);a.stateAfter&&(a.stateAfter=null);var c,u=a.text.match(/^\s*/)[0];if(i||/\S/.test(a.text)){if("smart"==n&&((c=o.mode.indent(r,a.text.slice(u.length),a.text))==js||c>150)){if(!i)return;n="prev"}}else c=0,n="not";"prev"==n?c=e>o.first?h(M(o,e-1).text,null,s):0:"add"==n?c=l+t.options.indentUnit:"subtract"==n?c=l-t.options.indentUnit:"number"==typeof n&&(c=l+n),c=Math.max(0,c);var d="",f=0;if(t.options.indentWithTabs)for(var g=Math.floor(c/s);g;--g)f+=s,d+="\t";if(f1)if(Za&&Za.text.join("\n")==e){if(i.ranges.length%Za.text.length==0){l=[];for(var c=0;c=0;h--){var d=i.ranges[h],f=d.from(),p=d.to();d.empty()&&(n&&n>0?f=_(f.line,f.ch-n):t.state.overwrite&&!s?p=_(p.line,Math.min(M(o,p.line).text.length,p.ch+g(a).length)):Za&&Za.lineWise&&Za.text.join("\n")==e&&(f=p=_(f.line,0))),u=t.curOp.updateInput;var m={from:f,to:p,text:l?l[h%l.length]:a,origin:r||(s?"paste":t.state.cutIncoming?"cut":"+input")};Or(t.doc,m),xe(t,"inputRead",t,m)}e&&!s&&Zo(t,e),Kn(t),t.curOp.updateInput=u,t.curOp.typing=!0,t.state.pasteIncoming=t.state.cutIncoming=!1}function Jo(t,e){var n=t.clipboardData&&t.clipboardData.getData("Text");if(n)return t.preventDefault(),e.isReadOnly()||e.options.disableInput||fi(e,function(){return Xo(e,n,0,null,"paste")}),!0}function Zo(t,e){if(t.options.electricChars&&t.options.smartIndent)for(var n=t.doc.sel,i=n.ranges.length-1;i>=0;i--){var r=n.ranges[i];if(!(r.head.ch>100||i&&n.ranges[i-1].head.line==r.head.line)){var o=t.getModeAt(r.head),s=!1;if(o.electricChars){for(var a=0;a-1){s=Go(t,r.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(M(t.doc,r.head.line).text.slice(0,r.head.ch))&&(s=Go(t,r.head.line,"smart"));s&&xe(t,"electricInput",t,r.head.line)}}}function Qo(t){for(var e=[],n=[],i=0;i=t.first+t.size)&&(e=new _(i,e.ch,e.sticky),c=M(t,i))}function s(i){var s;if(null==(s=r?vo(t.cm,c,e,n):po(c,e,n))){if(i||!o())return!1;e=go(r,t.cm,c,e.line,n)}else e=s;return!0}var a=e,l=n,c=M(t,e.line);if("char"==i)s();else if("column"==i)s(!0);else if("word"==i||"group"==i)for(var u=null,h="group"==i,d=t.cm&&t.cm.getHelper(e,"wordChars"),f=!0;!(n<0)||s(!f);f=!1){var p=c.text.charAt(e.ch)||"\n",g=w(p,d)?"w":h&&"\n"==p?"n":!h||/\s/.test(p)?null:"p";if(!h||f||g||(g="s"),u&&u!=g){n<0&&(n=1,s(),e.sticky="after");break}if(g&&(u=g),n>0&&!s(!f))break}var v=Er(t,e,a,l,!0);return z(a,v)&&(v.hitSide=!0),v}function is(t,e,n,i){var r,o=t.doc,s=e.left;if("page"==i){var a=Math.min(t.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),l=Math.max(a-.5*bn(t.display),3);r=(n>0?e.bottom:e.top)+n*l}else"line"==i&&(r=n>0?e.bottom+3:e.top-3);for(var c;c=dn(t,s,r),c.outside;){if(n<0?r<=0:r>=o.height){c.hitSide=!0;break}r+=5*n}return c}function rs(t,e){var n=qe(t,e.line);if(!n||n.hidden)return null;var i=M(t.doc,e.line),r=Be(n,i,e.line),o=kt(i,t.doc.direction),s="left";if(o){s=Ct(o,e.ch)%2?"right":"left"}var a=Ye(r.map,e.ch,s);return a.offset="right"==a.collapse?a.end:a.start,a}function os(t){for(var e=t;e;e=e.parentNode)if(/CodeMirror-gutter-wrapper/.test(e.className))return!0;return!1}function ss(t,e){return e&&(t.bad=!0),t}function as(t,e,n,i,r){function o(t){return function(e){return e.id==t}}function s(){u&&(c+=h,u=!1)}function a(t){t&&(s(),c+=t)}function l(e){if(1==e.nodeType){var n=e.getAttribute("cm-text");if(null!=n)return void a(n||e.textContent.replace(/\u200b/g,""));var c,d=e.getAttribute("cm-marker");if(d){var f=t.findMarks(_(i,0),_(r+1,0),o(+d));return void(f.length&&(c=f[0].find(0))&&a(P(t.doc,c.from,c.to).join(h)))}if("false"==e.getAttribute("contenteditable"))return;var p=/^(pre|div|p)$/i.test(e.nodeName);p&&s();for(var g=0;g=15&&(Cs=!1,bs=!0);var Is,Ds=As&&(xs||Cs&&(null==Ns||Ns<12.11)),_s=fs||ms&&ys>=9,Fs=function(e,n){var i=e.className,r=t(n).exec(i);if(r){var o=i.slice(r.index+r[0].length);e.className=i.slice(0,r.index)+(o?r[1]+o:"")}};Is=document.createRange?function(t,e,n,i){var r=document.createRange();return r.setEnd(i||t,n),r.setStart(t,e),r}:function(t,e,n){var i=document.body.createTextRange();try{i.moveToElementText(t.parentNode)}catch(t){return i}return i.collapse(!0),i.moveEnd("character",n),i.moveStart("character",e),i};var zs=function(t){t.select()};Es?zs=function(t){t.selectionStart=0,t.selectionEnd=t.value.length}:ms&&(zs=function(t){try{t.select()}catch(t){}});var $s=function(){this.id=null};$s.prototype.set=function(t,e){clearTimeout(this.id),this.id=setTimeout(e,t)};var Rs,Vs,Hs=30,js={toString:function(){return"CodeMirror.Pass"}},Bs={scroll:!1},Ws={origin:"*mouse"},Us={origin:"+move"},qs=[""],Ks=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,Gs=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/,Ys=!1,Xs=!1,Js=null,Zs=function(){function t(t){return t<=247?n.charAt(t):1424<=t&&t<=1524?"R":1536<=t&&t<=1785?i.charAt(t-1536):1774<=t&&t<=2220?"r":8192<=t&&t<=8203?"w":8204==t?"b":"L"}function e(t,e,n){this.level=t,this.from=e,this.to=n}var n="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",i="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111",r=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,o=/[stwN]/,s=/[LRr]/,a=/[Lb1n]/,l=/[1n]/;return function(n,i){var c="ltr"==i?"L":"R";if(0==n.length||"ltr"==i&&!r.test(n))return!1;for(var u=n.length,h=[],d=0;d=this.string.length},ca.prototype.sol=function(){return this.pos==this.lineStart},ca.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},ca.prototype.next=function(){if(this.pose},ca.prototype.eatSpace=function(){for(var t=this,e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++t.pos;return this.pos>e},ca.prototype.skipToEnd=function(){this.pos=this.string.length},ca.prototype.skipTo=function(t){var e=this.string.indexOf(t,this.pos);if(e>-1)return this.pos=e,!0},ca.prototype.backUp=function(t){this.pos-=t},ca.prototype.column=function(){return this.lastColumnPos0?null:(i&&!1!==e&&(this.pos+=i[0].length),i)}var r=function(t){return n?t.toLowerCase():t};if(r(this.string.substr(this.pos,t.length))==r(t))return!1!==e&&(this.pos+=t.length),!0},ca.prototype.current=function(){return this.string.slice(this.start,this.pos)},ca.prototype.hideFirstChars=function(t,e){this.lineStart+=t;try{return e()}finally{this.lineStart-=t}},ca.prototype.lookAhead=function(t){var e=this.lineOracle;return e&&e.lookAhead(t)},ca.prototype.baseToken=function(){var t=this.lineOracle;return t&&t.baseToken(this.pos)};var ua=function(t,e){this.state=t,this.lookAhead=e},ha=function(t,e,n,i){this.state=e,this.doc=t,this.line=n,this.maxLookAhead=i||0,this.baseTokens=null,this.baseTokenPos=1};ha.prototype.lookAhead=function(t){var e=this.doc.getLine(this.line+t);return null!=e&&t>this.maxLookAhead&&(this.maxLookAhead=t),e},ha.prototype.baseToken=function(t){var e=this;if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=t;)e.baseTokenPos+=2;var n=this.baseTokens[this.baseTokenPos+1];return{type:n&&n.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-t}},ha.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},ha.fromSaved=function(t,e,n){return e instanceof ua?new ha(t,Ut(t.mode,e.state),n,e.lookAhead):new ha(t,Ut(t.mode,e),n)},ha.prototype.save=function(t){var e=!1!==t?Ut(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new ua(e,this.maxLookAhead):e};var da=function(t,e,n){this.start=t.start,this.end=t.pos,this.string=t.current(),this.type=e||null,this.state=n},fa=function(t,e,n){this.text=t,it(this,e),this.height=n?n(this):1};fa.prototype.lineNo=function(){return L(this)},Ot(fa);var pa,ga={},va={},ma=null,ya=null,ba={left:0,right:0,top:0,bottom:0},xa=function(t,e,n){this.cm=n;var r=this.vert=i("div",[i("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),o=this.horiz=i("div",[i("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");t(r),t(o),ta(r,"scroll",function(){r.clientHeight&&e(r.scrollTop,"vertical")}),ta(o,"scroll",function(){o.clientWidth&&e(o.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,ms&&ys<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};xa.prototype.update=function(t){var e=t.scrollWidth>t.clientWidth+1,n=t.scrollHeight>t.clientHeight+1,i=t.nativeBarWidth;if(n){this.vert.style.display="block",this.vert.style.bottom=e?i+"px":"0";var r=t.viewHeight-(e?i:0);this.vert.firstChild.style.height=Math.max(0,t.scrollHeight-t.clientHeight+r)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(e){this.horiz.style.display="block",this.horiz.style.right=n?i+"px":"0",this.horiz.style.left=t.barLeft+"px";var o=t.viewWidth-t.barLeft-(n?i:0);this.horiz.firstChild.style.width=Math.max(0,t.scrollWidth-t.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&t.clientHeight>0&&(0==i&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?i:0,bottom:e?i:0}},xa.prototype.setScrollLeft=function(t){this.horiz.scrollLeft!=t&&(this.horiz.scrollLeft=t),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},xa.prototype.setScrollTop=function(t){this.vert.scrollTop!=t&&(this.vert.scrollTop=t),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},xa.prototype.zeroWidthHack=function(){var t=As&&!Ss?"12px":"18px";this.horiz.style.height=this.vert.style.width=t,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new $s,this.disableVert=new $s},xa.prototype.enableZeroWidthBar=function(t,e,n){function i(){var r=t.getBoundingClientRect();("vert"==n?document.elementFromPoint(r.right-1,(r.top+r.bottom)/2):document.elementFromPoint((r.right+r.left)/2,r.bottom-1))!=t?t.style.pointerEvents="none":e.set(1e3,i)}t.style.pointerEvents="auto",e.set(1e3,i)},xa.prototype.clear=function(){var t=this.horiz.parentNode;t.removeChild(this.horiz),t.removeChild(this.vert)};var wa=function(){};wa.prototype.update=function(){return{bottom:0,right:0}},wa.prototype.setScrollLeft=function(){},wa.prototype.setScrollTop=function(){},wa.prototype.clear=function(){};var Ca={native:xa,null:wa},ka=0,Sa=function(t,e,n){var i=t.display;this.viewport=e,this.visible=Rn(i,t.doc,e),this.editorIsHidden=!i.wrapper.offsetWidth,this.wrapperHeight=i.wrapper.clientHeight,this.wrapperWidth=i.wrapper.clientWidth,this.oldDisplayWidth=Ve(t),this.force=n,this.dims=wn(t),this.events=[]};Sa.prototype.signal=function(t,e){At(t,e)&&this.events.push(arguments)},Sa.prototype.finish=function(){for(var t=this,e=0;e=0&&F(t,r.to())<=0)return i}return-1};var Pa=function(t,e){this.anchor=t,this.head=e};Pa.prototype.from=function(){return V(this.anchor,this.head)},Pa.prototype.to=function(){return R(this.anchor,this.head)},Pa.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch},Hr.prototype={chunkSize:function(){return this.lines.length},removeInner:function(t,e){for(var n=this,i=t,r=t+e;i1||!(this.children[0]instanceof Hr))){var l=[];this.collapse(l),this.children=[new Hr(l)],this.children[0].parent=this}},collapse:function(t){for(var e=this,n=0;n50){for(var a=o.lines.length%25+25,l=a;l10);t.parent.maybeSpill()}},iterN:function(t,e,n){for(var i=this,r=0;re.display.maxLineLength&&(e.display.maxLine=u,e.display.maxLineLength=h,e.display.maxLineChanged=!0)}null!=r&&e&&this.collapsed&&mi(e,r,o+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&kr(e.doc)),e&&xe(e,"markerCleared",e,this,r,o),n&&si(e),this.parent&&this.parent.clear()}},La.prototype.find=function(t,e){var n=this;null==t&&"bookmark"==this.type&&(t=1);for(var i,r,o=0;o=0;c--)Or(i,r[c]);l?br(this,l):this.cm&&Kn(this.cm)}),undo:vi(function(){Nr(this,"undo")}),redo:vi(function(){Nr(this,"redo")}),undoSelection:vi(function(){Nr(this,"undo",!0)}),redoSelection:vi(function(){Nr(this,"redo",!0)}),setExtending:function(t){this.extend=t},getExtending:function(){return this.extend},historySize:function(){for(var t=this.history,e=0,n=0,i=0;i=t.ch)&&e.push(r.marker.parent||r.marker)}return e},findMarks:function(t,e,n){t=j(this,t),e=j(this,e);var i=[],r=t.line;return this.iter(t.line,e.line+1,function(o){var s=o.markedSpans;if(s)for(var a=0;a=l.to||null==l.from&&r!=t.line||null!=l.from&&r==e.line&&l.from>=e.ch||n&&!n(l.marker)||i.push(l.marker.parent||l.marker)}++r}),i},getAllMarks:function(){var t=[];return this.iter(function(e){var n=e.markedSpans;if(n)for(var i=0;it)return e=t,!0;t-=o,++n}),j(this,_(n,e))},indexFromPos:function(t){t=j(this,t);var e=t.ch;if(t.linee&&(e=t.from),null!=t.to&&t.to0)r=new _(r.line,r.ch+1),t.replaceRange(o.charAt(r.ch-1)+o.charAt(r.ch-2),_(r.line,r.ch-2),r,"+transpose");else if(r.line>t.doc.first){var s=M(t.doc,r.line-1).text;s&&(r=new _(r.line,1),t.replaceRange(o.charAt(0)+t.doc.lineSeparator()+s.charAt(s.length-1),_(r.line-1,s.length-1),r,"+transpose"))}n.push(new Pa(r,r))}t.setSelections(n)})},newlineAndIndent:function(t){return fi(t,function(){for(var e=t.listSelections(),n=e.length-1;n>=0;n--)t.replaceRange(t.doc.lineSeparator(),e[n].anchor,e[n].head,"+input");e=t.listSelections();for(var i=0;it&&0==F(e,this.pos)&&n==this.button};var qa,Ka,Ga={toString:function(){return"CodeMirror.Init"}},Ya={},Xa={};qo.defaults=Ya,qo.optionHandlers=Xa;var Ja=[];qo.defineInitHook=function(t){return Ja.push(t)};var Za=null,Qa=function(t){this.cm=t,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new $s,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};Qa.prototype.init=function(t){function e(t){if(!Mt(r,t)){if(r.somethingSelected())Yo({lineWise:!1,text:r.getSelections()}),"cut"==t.type&&r.replaceSelection("",null,"cut");else{if(!r.options.lineWiseCopyCut)return;var e=Qo(r);Yo({lineWise:!0,text:e.text}),"cut"==t.type&&r.operation(function(){r.setSelections(e.ranges,0,Bs),r.replaceSelection("",null,"cut")})}if(t.clipboardData){t.clipboardData.clearData();var n=Za.text.join("\n");if(t.clipboardData.setData("Text",n),t.clipboardData.getData("Text")==n)return void t.preventDefault()}var s=es(),a=s.firstChild;r.display.lineSpace.insertBefore(s,r.display.lineSpace.firstChild),a.value=Za.text.join("\n");var l=document.activeElement;zs(a),setTimeout(function(){r.display.lineSpace.removeChild(s),l.focus(),l==o&&i.showPrimarySelection()},50)}}var n=this,i=this,r=i.cm,o=i.div=t.lineDiv;ts(o,r.options.spellcheck),ta(o,"paste",function(t){Mt(r,t)||Jo(t,r)||ys<=11&&setTimeout(pi(r,function(){return n.updateFromDOM()}),20)}),ta(o,"compositionstart",function(t){n.composing={data:t.data,done:!1}}),ta(o,"compositionupdate",function(t){n.composing||(n.composing={data:t.data,done:!1})}),ta(o,"compositionend",function(t){n.composing&&(t.data!=n.composing.data&&n.readFromDOMSoon(),n.composing.done=!0)}),ta(o,"touchstart",function(){return i.forceCompositionEnd()}),ta(o,"input",function(){n.composing||n.readFromDOMSoon()}),ta(o,"copy",e),ta(o,"cut",e)},Qa.prototype.prepareSelection=function(){var t=Pn(this.cm,!1);return t.focus=this.cm.state.focused,t},Qa.prototype.showSelection=function(t,e){t&&this.cm.display.view.length&&((t.focus||e)&&this.showPrimarySelection(),this.showMultipleSelections(t))},Qa.prototype.showPrimarySelection=function(){var t=window.getSelection(),e=this.cm,n=e.doc.sel.primary(),i=n.from(),r=n.to();if(e.display.viewTo==e.display.viewFrom||i.line>=e.display.viewTo||r.line=e.display.viewFrom&&rs(e,i)||{node:a[0].measure.map[2],offset:0},c=r.linet.firstLine()&&(i=_(i.line-1,M(t.doc,i.line-1).length)),r.ch==M(t.doc,r.line).text.length&&r.linee.viewTo-1)return!1;var o,s,a;i.line==e.viewFrom||0==(o=En(t,i.line))?(s=L(e.view[0].line),a=e.view[0].node):(s=L(e.view[o].line),a=e.view[o-1].node.nextSibling);var l,c,u=En(t,r.line);if(u==e.view.length-1?(l=e.viewTo-1,c=e.lineDiv.lastChild):(l=L(e.view[u+1].line)-1,c=e.view[u+1].node.previousSibling),!a)return!1;for(var h=t.doc.splitLines(as(t,a,c,s,l)),d=P(t.doc,_(s,0),_(l,M(t.doc,l).text.length));h.length>1&&d.length>1;)if(g(h)==g(d))h.pop(),d.pop(),l--;else{if(h[0]!=d[0])break;h.shift(),d.shift(),s++}for(var f=0,p=0,v=h[0],m=d[0],y=Math.min(v.length,m.length);fi.ch&&b.charCodeAt(b.length-p-1)==x.charCodeAt(x.length-p-1);)f--,p++;h[h.length-1]=b.slice(0,b.length-p).replace(/^\u200b+/,""),h[0]=h[0].slice(f).replace(/\u200b+$/,"");var C=_(s,f),k=_(l,d.length?g(d).length-p:0);return h.length>1||h[0]||F(C,k)?(Fr(t.doc,h,C,k,"+input"),!0):void 0},Qa.prototype.ensurePolled=function(){this.forceCompositionEnd()},Qa.prototype.reset=function(){this.forceCompositionEnd()},Qa.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Qa.prototype.readFromDOMSoon=function(){var t=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout(function(){if(t.readDOMTimeout=null,t.composing){if(!t.composing.done)return;t.composing=null}t.updateFromDOM()},80))},Qa.prototype.updateFromDOM=function(){var t=this;!this.cm.isReadOnly()&&this.pollContent()||fi(this.cm,function(){return mi(t.cm)})},Qa.prototype.setUneditable=function(t){t.contentEditable="false"},Qa.prototype.onKeyPress=function(t){0!=t.charCode&&(t.preventDefault(),this.cm.isReadOnly()||pi(this.cm,Xo)(this.cm,String.fromCharCode(null==t.charCode?t.keyCode:t.charCode),0))},Qa.prototype.readOnlyChanged=function(t){this.div.contentEditable=String("nocursor"!=t)},Qa.prototype.onContextMenu=function(){},Qa.prototype.resetPosition=function(){},Qa.prototype.needsContentAttribute=!0;var tl=function(t){this.cm=t,this.prevInput="",this.pollingFast=!1,this.polling=new $s,this.hasSelection=!1,this.composing=null};tl.prototype.init=function(t){function e(t){if(!Mt(r,t)){if(r.somethingSelected())Yo({lineWise:!1,text:r.getSelections()});else{if(!r.options.lineWiseCopyCut)return;var e=Qo(r);Yo({lineWise:!0,text:e.text}),"cut"==t.type?r.setSelections(e.ranges,null,Bs):(i.prevInput="",s.value=e.text.join("\n"),zs(s))}"cut"==t.type&&(r.state.cutIncoming=!0)}}var n=this,i=this,r=this.cm,o=this.wrapper=es(),s=this.textarea=o.firstChild;t.wrapper.insertBefore(o,t.wrapper.firstChild),Es&&(s.style.width="0px"),ta(s,"input",function(){ms&&ys>=9&&n.hasSelection&&(n.hasSelection=null),i.poll()}),ta(s,"paste",function(t){Mt(r,t)||Jo(t,r)||(r.state.pasteIncoming=!0,i.fastPoll())}),ta(s,"cut",e),ta(s,"copy",e),ta(t.scroller,"paste",function(e){_e(t,e)||Mt(r,e)||(r.state.pasteIncoming=!0,i.focus())}),ta(t.lineSpace,"selectstart",function(e){_e(t,e)||Lt(e)}),ta(s,"compositionstart",function(){var t=r.getCursor("from");i.composing&&i.composing.range.clear(),i.composing={start:t,range:r.markText(t,r.getCursor("to"),{className:"CodeMirror-composing"})}}),ta(s,"compositionend",function(){i.composing&&(i.poll(),i.composing.range.clear(),i.composing=null)})},tl.prototype.prepareSelection=function(){var t=this.cm,e=t.display,n=t.doc,i=Pn(t);if(t.options.moveInputWithCursor){var r=cn(t,n.sel.primary().head,"div"),o=e.wrapper.getBoundingClientRect(),s=e.lineDiv.getBoundingClientRect();i.teTop=Math.max(0,Math.min(e.wrapper.clientHeight-10,r.top+s.top-o.top)),i.teLeft=Math.max(0,Math.min(e.wrapper.clientWidth-10,r.left+s.left-o.left))}return i},tl.prototype.showSelection=function(t){var e=this.cm,i=e.display;n(i.cursorDiv,t.cursors),n(i.selectionDiv,t.selection),null!=t.teTop&&(this.wrapper.style.top=t.teTop+"px",this.wrapper.style.left=t.teLeft+"px")},tl.prototype.reset=function(t){if(!this.contextMenuPending&&!this.composing){var e=this.cm;if(e.somethingSelected()){this.prevInput="";var n=e.getSelection();this.textarea.value=n,e.state.focused&&zs(this.textarea),ms&&ys>=9&&(this.hasSelection=n)}else t||(this.prevInput=this.textarea.value="",ms&&ys>=9&&(this.hasSelection=null))}},tl.prototype.getField=function(){return this.textarea},tl.prototype.supportsTouch=function(){return!1},tl.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!Ps||s()!=this.textarea))try{this.textarea.focus()}catch(t){}},tl.prototype.blur=function(){this.textarea.blur()},tl.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},tl.prototype.receivedFocus=function(){this.slowPoll()},tl.prototype.slowPoll=function(){var t=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){t.poll(),t.cm.state.focused&&t.slowPoll()})},tl.prototype.fastPoll=function(){function t(){n.poll()||e?(n.pollingFast=!1,n.slowPoll()):(e=!0,n.polling.set(60,t))}var e=!1,n=this;n.pollingFast=!0,n.polling.set(20,t)},tl.prototype.poll=function(){var t=this,e=this.cm,n=this.textarea,i=this.prevInput;if(this.contextMenuPending||!e.state.focused||ia(n)&&!i&&!this.composing||e.isReadOnly()||e.options.disableInput||e.state.keySeq)return!1;var r=n.value;if(r==i&&!e.somethingSelected())return!1;if(ms&&ys>=9&&this.hasSelection===r||As&&/[\uf700-\uf7ff]/.test(r))return e.display.input.reset(),!1;if(e.doc.sel==e.display.selForContextMenu){var o=r.charCodeAt(0);if(8203!=o||i||(i="​"),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var s=0,a=Math.min(i.length,r.length);s1e3||r.indexOf("\n")>-1?n.value=t.prevInput="":t.prevInput=r,t.composing&&(t.composing.range.clear(),t.composing.range=e.markText(t.composing.start,e.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},tl.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},tl.prototype.onKeyPress=function(){ms&&ys>=9&&(this.hasSelection=null),this.fastPoll()},tl.prototype.onContextMenu=function(t){function e(){if(null!=s.selectionStart){var t=r.somethingSelected(),e="​"+(t?s.value:"");s.value="⇚",s.value=e,i.prevInput=t?"":"​",s.selectionStart=1,s.selectionEnd=e.length,o.selForContextMenu=r.doc.sel}}function n(){if(i.contextMenuPending=!1,i.wrapper.style.cssText=u,s.style.cssText=c,ms&&ys<9&&o.scrollbars.setScrollTop(o.scroller.scrollTop=l),null!=s.selectionStart){(!ms||ms&&ys<9)&&e();var t=0,n=function(){o.selForContextMenu==r.doc.sel&&0==s.selectionStart&&s.selectionEnd>0&&"​"==i.prevInput?pi(r,Pr)(r):t++<10?o.detectingSelectAll=setTimeout(n,500):(o.selForContextMenu=null,o.input.reset())};o.detectingSelectAll=setTimeout(n,200)}}var i=this,r=i.cm,o=r.display,s=i.textarea,a=Tn(r,t),l=o.scroller.scrollTop;if(a&&!Cs){r.options.resetSelectionOnContextMenu&&-1==r.doc.sel.contains(a)&&pi(r,xr)(r.doc,Vi(a),Bs);var c=s.style.cssText,u=i.wrapper.style.cssText;i.wrapper.style.cssText="position: absolute";var h=i.wrapper.getBoundingClientRect();s.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(t.clientY-h.top-5)+"px; left: "+(t.clientX-h.left-5)+"px;\n z-index: 1000; background: "+(ms?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";var d;if(bs&&(d=window.scrollY),o.input.focus(),bs&&window.scrollTo(null,d),o.input.reset(),r.somethingSelected()||(s.value=i.prevInput=" "),i.contextMenuPending=!0,o.selForContextMenu=r.doc.sel,clearTimeout(o.detectingSelectAll),ms&&ys>=9&&e(),_s){Dt(t);var f=function(){Tt(window,"mouseup",f),setTimeout(n,20)};ta(window,"mouseup",f)}else setTimeout(n,50)}},tl.prototype.readOnlyChanged=function(t){t||this.reset(),this.textarea.disabled="nocursor"==t},tl.prototype.setUneditable=function(){},tl.prototype.needsContentAttribute=!1,function(t){function e(e,i,r,o){t.defaults[e]=i,r&&(n[e]=o?function(t,e,n){n!=Ga&&r(t,e,n)}:r)}var n=t.optionHandlers;t.defineOption=e,t.Init=Ga,e("value","",function(t,e){return t.setValue(e)},!0),e("mode",null,function(t,e){t.doc.modeOption=e,qi(t)},!0),e("indentUnit",2,qi,!0),e("indentWithTabs",!1),e("smartIndent",!0),e("tabSize",4,function(t){Ki(t),en(t),mi(t)},!0),e("lineSeparator",null,function(t,e){if(t.doc.lineSep=e,e){var n=[],i=t.doc.first;t.doc.iter(function(t){for(var r=0;;){var o=t.text.indexOf(e,r);if(-1==o)break;r=o+e.length,n.push(_(i,o))}i++});for(var r=n.length-1;r>=0;r--)Fr(t.doc,e,n[r],_(n[r].line,n[r].ch+e.length))}}),e("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff]/g,function(t,e,n){t.state.specialChars=new RegExp(e.source+(e.test("\t")?"":"|\t"),"g"),n!=Ga&&t.refresh()}),e("specialCharPlaceholder",ce,function(t){return t.refresh()},!0),e("electricChars",!0),e("inputStyle",Ps?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),e("spellcheck",!1,function(t,e){return t.getInputField().spellcheck=e},!0),e("rtlMoveVisually",!Ls),e("wholeLineUpdateBefore",!0),e("theme","default",function(t){jo(t),Bo(t)},!0),e("keyMap","default",function(t,e,n){var i=uo(e),r=n!=Ga&&uo(n);r&&r.detach&&r.detach(t,i),i.attach&&i.attach(t,r||null)}),e("extraKeys",null),e("configureMouse",null),e("lineWrapping",!1,Uo,!0),e("gutters",[],function(t){_i(t.options),Bo(t)},!0),e("fixedGutter",!0,function(t,e){t.display.gutters.style.left=e?Cn(t.display)+"px":"0",t.refresh()},!0),e("coverGutterNextToScrollbar",!1,function(t){return ni(t)},!0),e("scrollbarStyle","native",function(t){ri(t),ni(t),t.display.scrollbars.setScrollTop(t.doc.scrollTop),t.display.scrollbars.setScrollLeft(t.doc.scrollLeft)},!0),e("lineNumbers",!1,function(t){_i(t.options),Bo(t)},!0),e("firstLineNumber",1,Bo,!0),e("lineNumberFormatter",function(t){return t},Bo,!0),e("showCursorWhenSelecting",!1,Mn,!0),e("resetSelectionOnContextMenu",!0),e("lineWiseCopyCut",!0),e("pasteLinesPerSelection",!0),e("readOnly",!1,function(t,e){"nocursor"==e&&(Fn(t),t.display.input.blur()),t.display.input.readOnlyChanged(e)}),e("disableInput",!1,function(t,e){e||t.display.input.reset()},!0),e("dragDrop",!0,Wo),e("allowDropFileTypes",null),e("cursorBlinkRate",530),e("cursorScrollMargin",0),e("cursorHeight",1,Mn,!0),e("singleCursorHeightPerLine",!0,Mn,!0),e("workTime",100),e("workDelay",100),e("flattenSpans",!0,Ki,!0),e("addModeClass",!1,Ki,!0),e("pollInterval",100),e("undoDepth",200,function(t,e){return t.doc.history.undoDepth=e}),e("historyEventDelay",1250),e("viewportMargin",10,function(t){return t.refresh()},!0),e("maxHighlightLength",1e4,Ki,!0),e("moveInputWithCursor",!0,function(t,e){e||t.display.input.resetPosition()}),e("tabindex",null,function(t,e){return t.display.input.getField().tabIndex=e||""}),e("autofocus",null),e("direction","ltr",function(t,e){return t.doc.setDirection(e)},!0)}(qo),function(t){var e=t.optionHandlers,n=t.helpers={};t.prototype={constructor:t,focus:function(){window.focus(),this.display.input.focus()},setOption:function(t,n){var i=this.options,r=i[t];i[t]==n&&"mode"!=t||(i[t]=n,e.hasOwnProperty(t)&&pi(this,e[t])(this,n,r),Et(this,"optionChange",this,t))},getOption:function(t){return this.options[t]},getDoc:function(){return this.doc},addKeyMap:function(t,e){this.state.keyMaps[e?"push":"unshift"](uo(t))},removeKeyMap:function(t){for(var e=this.state.keyMaps,n=0;ni&&(Go(e,o.head.line,t,!0),i=o.head.line,r==e.doc.sel.primIndex&&Kn(e));else{var s=o.from(),a=o.to(),l=Math.max(i,s.line);i=Math.min(e.lastLine(),a.line-(a.ch?0:1))+1;for(var c=l;c0&&vr(e.doc,r,new Pa(s,u[r].to()),Bs)}}}),getTokenAt:function(t,e){return te(this,t,e)},getLineTokens:function(t,e){return te(this,_(t),e,!0)},getTokenTypeAt:function(t){t=j(this.doc,t);var e,n=Yt(this,M(this.doc,t.line)),i=0,r=(n.length-1)/2,o=t.ch;if(0==o)e=n[2];else for(;;){var s=i+r>>1;if((s?n[2*s-1]:0)>=o)r=s;else{if(!(n[2*s+1]o&&(t=o,r=!0),i=M(this.doc,t)}else i=t;return sn(this,i,{top:0,left:0},e||"page",n||r).top+(r?this.doc.height-yt(i):0)},defaultTextHeight:function(){return bn(this.display)},defaultCharWidth:function(){return xn(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(t,e,n,i,r){var o=this.display;t=cn(this,j(this.doc,t));var s=t.bottom,a=t.left;if(e.style.position="absolute",e.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(e),o.sizer.appendChild(e),"over"==i)s=t.top;else if("above"==i||"near"==i){var l=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);("above"==i||t.bottom+e.offsetHeight>l)&&t.top>e.offsetHeight?s=t.top-e.offsetHeight:t.bottom+e.offsetHeight<=l&&(s=t.bottom),a+e.offsetWidth>c&&(a=c-e.offsetWidth)}e.style.top=s+"px",e.style.left=e.style.right="","right"==r?(a=o.sizer.clientWidth-e.offsetWidth,e.style.right="0px"):("left"==r?a=0:"middle"==r&&(a=(o.sizer.clientWidth-e.offsetWidth)/2),e.style.left=a+"px"),n&&Wn(this,{left:a,top:s,right:a+e.offsetWidth,bottom:s+e.offsetHeight})},triggerOnKeyDown:gi(To),triggerOnKeyPress:gi(Po),triggerOnKeyUp:Mo,triggerOnMouseDown:gi(Oo),execCommand:function(t){if(ja.hasOwnProperty(t))return ja[t].call(null,this)},triggerElectric:gi(function(t){Zo(this,t)}),findPosH:function(t,e,n,i){var r=this,o=1;e<0&&(o=-1,e=-e);for(var s=j(this.doc,t),a=0;a0&&a(n.charAt(i-1));)--i;for(;r.5)&&Sn(this),Et(this,"refresh",this)}),swapDoc:gi(function(t){var e=this.doc;return e.cm=null,Ji(this,t),en(this),this.display.input.reset(),Gn(this,t.scrollLeft,t.scrollTop),this.curOp.forceScroll=!0,xe(this,"swapDoc",this,e),e}),getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},Ot(t),t.registerHelper=function(e,i,r){n.hasOwnProperty(e)||(n[e]=t[e]={_global:[]}),n[e][i]=r},t.registerGlobalHelper=function(e,i,r,o){t.registerHelper(e,i,o),n[e]._global.push({pred:r,val:o})}}(qo);var el="iter insert remove copy getEditor constructor".split(" ");for(var nl in Da.prototype)Da.prototype.hasOwnProperty(nl)&&d(el,nl)<0&&(qo.prototype[nl]=function(t){return function(){return t.apply(this.doc,arguments)}}(Da.prototype[nl]));return Ot(Da),qo.inputStyles={textarea:tl,contenteditable:Qa},qo.defineMode=function(t){qo.defaults.mode||"null"==t||(qo.defaults.mode=t),Vt.apply(this,arguments)},qo.defineMIME=Ht,qo.defineMode("null",function(){return{token:function(t){return t.skipToEnd()}}}),qo.defineMIME("text/plain","null"),qo.defineExtension=function(t,e){qo.prototype[t]=e},qo.defineDocExtension=function(t,e){Da.prototype[t]=e},qo.fromTextArea=us,function(t){t.off=Tt,t.on=ta,t.wheelEventPixels=zi,t.Doc=Da,t.splitLines=na,t.countColumn=h,t.findColumn=f,t.isWordChar=x,t.Pass=js,t.signal=Et,t.Line=fa,t.changeEnd=Hi,t.scrollbarModel=Ca,t.Pos=_,t.cmpPos=F,t.modes=sa,t.mimeModes=aa,t.resolveMode=jt,t.getMode=Bt,t.modeExtensions=la,t.extendMode=Wt,t.copyState=Ut,t.startState=Kt,t.innerMode=qt,t.commands=ja,t.keyMap=Ha,t.keyName=co,t.isModifierKey=ao,t.lookupKey=so,t.normalizeKeyMap=oo,t.StringStream=ca,t.SharedTextMarker=Na,t.TextMarker=La,t.LineWidget=Aa,t.e_preventDefault=Lt,t.e_stopPropagation=Nt,t.e_stop=Dt,t.addClass=a,t.contains=o,t.rmClass=Fs,t.keyNames=za}(qo),qo.version="5.31.0",qo})},function(t,e,n){"use strict";var i=n(0),r=i.Model.extend({idAttribute:"name",defaults:{name:"",label:"",type:1,active:!0,private:!1,protected:!1},initialize:function(){var t=this.get("name"),e=this.get("label");t?e||this.set("label",t):this.set("name",e),this.set("name",r.escapeName(this.get("name")))},getFullName:function(){var t="";switch(this.get("type")){case 1:t=".";break;case 2:t="#"}return t+this.get("name")}},{TYPE_CLASS:1,TYPE_ID:2,escapeName:function(t){return(""+t).trim().replace(/([^a-z0-9\w-]+)/gi,"-")}});t.exports=r},function(t,e,n){"use strict";var i=(n(1),n(0)),r=i.$;t.exports=i.View.extend({events:{change:"onChange"},attributes:function(){return this.model.get("attributes")},initialize:function(t){var e=this.model,n=(e.get("name"),e.target);this.config=t.config||{},this.pfx=this.config.stylePrefix||"",this.ppfx=this.config.pStylePrefix||"",this.target=n,this.className=this.pfx+"trait",this.labelClass=this.ppfx+"label",this.fieldClass=this.ppfx+"field "+this.ppfx+"field-"+e.get("type"),this.inputhClass=this.ppfx+"input-holder",e.off("change:value",this.onValueChange),this.listenTo(e,"change:value",this.onValueChange),this.tmpl='
'},onChange:function(){this.model.set("value",this.getInputEl().value)},getValueForTarget:function(){return this.model.get("value")},setInputValue:function(t){this.getInputEl().value=t},onValueChange:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this.model;this.target,i.get("name");if(n.fromTarget)this.setInputValue(i.get("value"));else{var r=this.getValueForTarget();i.setTargetValue(r)}},renderLabel:function(){this.$el.html('
'+this.getLabel()+"
")},getLabel:function(){var t=this.model,e=t.get("label")||t.get("name");return e.charAt(0).toUpperCase()+e.slice(1).replace(/-/g," ")},getInputEl:function(){if(!this.$input){var t=this.model,e=this.target,n=t.get("name"),i=t.get("placeholder")||t.get("default")||"",o=t.get("type")||"text",s=e.get("attributes"),a=t.get("min"),l=t.get("max"),c=t.get("changeProp")?e.get(n):t.get("value")||s[n],u=r('');c&&u.prop("value",c),a&&u.prop("min",a),l&&u.prop("max",l),this.$input=u}return this.$input.get(0)},getModelValue:function(){var t,e=this.model,n=this.target,i=e.get("name");if(e.get("changeProp"))t=n.get(i);else{var r=n.get("attributes");t=e.get("value")||r[i]}return t},renderField:function(){if(!this.$input){this.$el.append(this.tmpl);var t=this.getInputEl(),e=this.el.querySelector("."+this.inputhClass);e.insertBefore(t,e.childNodes[0])}},render:function(){return this.renderLabel(),this.renderField(),this.el.className=this.className,this}})},function(t,e,n){"use strict";var i,r;!function(o,s){i=s,void 0!==(r="function"==typeof i?i.call(e,n,e,t):i)&&(t.exports=r)}(0,function(){function t(t,e){return e=e||M,z.test(t)?e.getElementsByClassName(t.slice(1)):R.test(t)?e.getElementsByTagName(t):e.querySelectorAll(t)}function e(t){if(!E){E=M.implementation.createHTMLDocument();var e=E.createElement("base");e.href=M.location.href,E.head.appendChild(e)}return E.body.innerHTML=t,E.body.childNodes}function n(t){"loading"!==M.readyState?t():M.addEventListener("DOMContentLoaded",t)}function i(i,r){if(!i)return this;if(i.cash&&i!==P)return i;var o,s=i,a=0;if(_(i))s=F.test(i)?M.getElementById(i.slice(1)):$.test(i)?e(i):t(i,r);else if(D(i))return n(i),this;if(!s)return this;if(s.nodeType||s===P)this[0]=s,this.length=1;else for(o=this.length=s.length;a=0&&s.splice(i,1)):(o(s,function(n){t.removeEventListener(e,n)}),s=[]))}function x(t,e){return"&"+encodeURIComponent(t)+"="+encodeURIComponent(e).replace(/%20/g,"+")}function w(t){var e=[];return o(t.options,function(t){t.selected&&e.push(t.value)}),e.length?e:null}function C(t){var e=t.selectedIndex;return e>=0?t.options[e].value:null}function k(t){var e=t.type;if(!e)return null;switch(e.toLowerCase()){case"select-one":return C(t);case"select-multiple":return w(t);case"radio":case"checkbox":return t.checked?t.value:null;default:return t.value?t.value:null}}function S(t,e,n){if(n){var i=t.childNodes[0];t.insertBefore(e,i)}else t.appendChild(e)}function T(t,e,n){var i=_(e);if(!i&&e.length)return void o(e,function(e){return T(t,e,n)});o(t,i?function(t){return t.insertAdjacentHTML(n?"afterbegin":"beforeend",e)}:function(t,i){return S(t,0===i?e:e.cloneNode(!0),n)})}var E,M=document,P=window,A=Array.prototype,O=A.slice,L=A.filter,N=A.push,I=function(){},D=function(t){return typeof t==typeof I&&t.call},_=function(t){return"string"==typeof t},F=/^#[\w-]*$/,z=/^\.[\w-]*$/,$=/<.+>/,R=/^\w+$/,V=r.fn=r.prototype=i.prototype={cash:!0,length:0,push:N,splice:A.splice,map:A.map,init:i};Object.defineProperty(V,"constructor",{value:r}),r.parseHTML=e,r.noop=I,r.isFunction=D,r.isString=_,r.extend=V.extend=function(t){t=t||{};var e=O.call(arguments),n=e.length,i=1;for(1===e.length&&(t=this,i=0);i1?this.each(function(n){return n.style[t]=e}):P.getComputedStyle(this[0])[t];for(var n in t)this.css(n,t[n]);return this}}),o(["Width","Height"],function(t){var e=t.toLowerCase();V[e]=function(){return this[0].getBoundingClientRect()[e]},V["inner"+t]=function(){return this[0]["client"+t]},V["outer"+t]=function(e){return this[0]["offset"+t]+(e?m(this,"margin"+("Width"===t?"Left":"Top"))+m(this,"margin"+("Width"===t?"Right":"Bottom")):0)}}),V.extend({off:function(t,e){return this.each(function(n){return b(n,t,e)})},on:function(t,e,i,r){var o;if(!_(t)){for(var a in t)this.on(a,e,t[a]);return this}return D(e)&&(i=e,e=null),"ready"===t?(n(i),this):(e&&(o=i,i=function(t){for(var n=t.target;!s(n,e);){if(n===this)return n=!1;n=n.parentNode}n&&o.call(n,t)}),this.each(function(e){var n=i;r&&(n=function(){i.apply(this,arguments),b(e,t,n)}),y(e,t,n)}))},one:function(t,e,n){return this.on(t,e,n,!0)},ready:n,trigger:function(t,e){var n=M.createEvent("HTMLEvents");return n.data=e,n.initEvent(t,!0,!1),this.each(function(t){return t.dispatchEvent(n)})}}),V.extend({serialize:function(){var t="";return o(this[0].elements||this,function(e){if(!e.disabled&&"FIELDSET"!==e.tagName){var n=e.name;switch(e.type.toLowerCase()){case"file":case"reset":case"submit":case"button":break;case"select-multiple":var i=k(e);null!==i&&o(i,function(e){t+=x(n,e)});break;default:var r=k(e);null!==r&&(t+=x(n,r))}}}),t.substr(1)},val:function(t){return void 0===t?k(this[0]):this.each(function(e){return e.value=t})}}),V.extend({after:function(t){return r(t).insertAfter(this),this},append:function(t){return T(this,t),this},appendTo:function(t){return T(r(t),this),this},before:function(t){return r(t).insertBefore(this),this},clone:function(){return r(this.map(function(t){return t.cloneNode(!0)}))},empty:function(){return this.html(""),this},html:function(t){if(void 0===t)return this[0].innerHTML;var e=t.nodeType?t[0].outerHTML:t;return this.each(function(t){return t.innerHTML=e})},insertAfter:function(t){var e=this;return r(t).each(function(t,n){var i=t.parentNode,r=t.nextSibling;e.each(function(t){i.insertBefore(0===n?t:t.cloneNode(!0),r)})}),this},insertBefore:function(t){var e=this;return r(t).each(function(t,n){var i=t.parentNode;e.each(function(e){i.insertBefore(0===n?e:e.cloneNode(!0),t)})}),this},prepend:function(t){return T(this,t,!0),this},prependTo:function(t){return T(r(t),this,!0),this},remove:function(){return this.each(function(t){return t.parentNode.removeChild(t)})},text:function(t){return void 0===t?this[0].textContent:this.each(function(e){return e.textContent=t})}});var U=M.documentElement;return V.extend({position:function(){var t=this[0];return{left:t.offsetLeft,top:t.offsetTop}},offset:function(){var t=this[0].getBoundingClientRect();return{top:t.top+P.pageYOffset-U.clientTop,left:t.left+P.pageXOffset-U.clientLeft}},offsetParent:function(){return r(this[0].offsetParent)}}),V.extend({children:function(t){var e=[];return this.each(function(t){N.apply(e,t.children)}),e=l(e),t?e.filter(function(e){return s(e,t)}):e},closest:function(t){return!t||this.length<1?r():this.is(t)?this.filter(t):this.parent().closest(t)},is:function(t){if(!t)return!1;var e=!1,n=a(t);return this.each(function(i){return!(e=n(i,t))}),e},find:function(e){if(!e||e.nodeType)return r(e&&this.has(e).length?e:null);var n=[];return this.each(function(i){N.apply(n,t(e,i))}),l(n)},has:function(e){var n=_(e)?function(n){return 0!==t(e,n).length}:function(t){return t.contains(e)};return this.filter(n)},next:function(){return r(this[0].nextElementSibling)},not:function(t){if(!t)return this;var e=a(t);return this.filter(function(n){return!e(n,t)})},parent:function(){var t=[];return this.each(function(e){e&&e.parentNode&&t.push(e.parentNode)}),l(t)},parents:function(t){var e,n=[];return this.each(function(i){for(e=i;e&&e.parentNode&&e!==M.body.parentNode;)e=e.parentNode,(!t||t&&s(e,t))&&n.push(e)}),l(n)},prev:function(){return r(this[0].previousElementSibling)},siblings:function(){var t=this.parent().children(),e=this[0];return t.filter(function(t){return t!==e})}}),r})},function(t,e,n){"use strict";var i=n(1),r=n(7);t.exports=n(0).Collection.extend({model:r,getStyleable:function(){return(0,i.filter)(this.models,function(t){return t.get("active")&&!t.get("private")})},getValid:function(){return(0,i.filter)(this.models,function(t){return!t.get("private")})},getFullString:function(t){var e=[];return(t||this).forEach(function(t){return e.push(t.getFullName())}),e.join("").trim()}})},function(t,e,n){"use strict";var i=Object.assign||function(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.parseValue(t);this.set(r,i({},n,{avoidStore:1})),e&&(this.set("value","",n),this.set(r,n))},setValueFromInput:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.setValue(t,e,i({},n,{fromInput:1}))},parseValue:function(t){var e={value:t};if(!this.get("functionName"))return e;var n=[],i=""+t,r=i.indexOf("(")+1,o=i.lastIndexOf(")");return n.push(r),o>=0&&n.push(o),e.value=String.prototype.substring.apply(i,n),e},getDefaultValue:function(){return this.get("defaults")},getFullValue:function(t){var e=this.get("functionName"),n=t||this.get("value");return e&&(n=e+"("+n+")"),n}})},function(t,e,n){"use strict";(function(e){n(5),n(14),n(36),n(37),n(38),n(40),n(17),n(34);t.exports=e.View.extend({initialize:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix||"",this.target=t.target||{},this.propTarget=t.propTarget||{},this.onChange=t.onChange,this.onInputRender=t.onInputRender||{},this.customValue=t.customValue||{};var e=this.collection;this.listenTo(e,"add",this.addTo),this.listenTo(e,"reset",this.render)},addTo:function(t){this.add(t)},add:function(t,e){var n=new t.typeView({model:t,name:t.get("name"),id:this.pfx+t.get("property"),target:this.target,propTarget:this.propTarget,onChange:this.onChange,onInputRender:this.onInputRender,config:this.config});"composite"!=t.get("type")&&(n.customValue=this.customValue),n.render();var i=n.el;e?e.appendChild(i):this.el.appendChild(i)},render:function(){var t=this,e=document.createDocumentFragment();return this.collection.each(function(n){return t.add(n,e)}),this.$el.append(e),this.$el.attr("class",this.pfx+"properties"),this}})}).call(e,n(0))},function(t,e,n){"use strict";(function(e){var i=(n(18),e.$);t.exports=n(5).extend({templateInput:function(){return""},init:function(){var t=this.model;this.listenTo(t,"change:unit",this.modelValueChanged),this.listenTo(t,"el:change",this.elementUpdated)},setValue:function(t){this.inputInst.setValue(t,{silent:1})},onRender:function(){var t=this.ppfx;if(!this.input){var e=this.model.input;e.ppfx=t,e.render();this.el.querySelector("."+t+"fields").appendChild(e.el),this.$input=e.inputEl,this.unit=e.unitEl,this.$unit=i(this.unit),this.input=this.$input.get(0),this.inputInst=e}}})}).call(e,n(0))},function(t,e,n){"use strict";var i=(n(0),n(3));t.exports=i.extend({tagName:"img",events:{dblclick:"openModal",click:"initResize"},initialize:function(t){var e=this.model;i.prototype.initialize.apply(this,arguments),this.listenTo(e,"change:src",this.updateSrc),this.listenTo(e,"dblclick active",this.openModal),this.classEmpty=this.ppfx+"plh-image";var n=this.config;n.modal&&(this.modal=n.modal),n.am&&(this.am=n.am)},updateSrc:function(){var t=this.model.get("src"),e=this.$el;e.attr("src",t),e[t?"removeClass":"addClass"](this.classEmpty)},openModal:function(t){var e=this.opts.config.em,n=e?e.get("Editor"):"";n&&this.model.get("editable")&&n.runCommand("open-assets",{target:this.model,onSelect:function(){n.Modal.close(),n.AssetManager.setTarget(null)}})},render:function(){this.updateAttributes(),this.updateClasses();var t=this.$el.attr("class")||"";return this.model.get("src")||this.$el.attr("class",(t+" "+this.classEmpty).trim()),this.$el.attr("onmousedown","return false"),this}})},function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){"use strict";(function(e){var i=n(5),r=e.$;t.exports=i.extend({templateInput:function(){var t=this.pfx;return'\n
\n \n
\n '},inputValueChanged:function(){if(!this.model.get("detached")){for(var t=arguments.length,e=Array(t),n=0;n'),this.input=this.$input.get(0)),this.props||(this.props=t.get("properties")),!this.$props)){this.props.each(function(e,n){e&&"composite"==e.get("type")&&(this.props.remove(e),console.warn("Nested composite types not yet allowed.")),e.parent=t},this);var i=n(13),o=new i(this.getPropsConfig());this.$props=o.render().$el,this.$el.find("#"+this.pfx+"input-holder").append(this.$props)}},getPropsConfig:function(t){var e=this,n=this.model,i={config:this.config,collection:this.props,target:this.target,propTarget:this.propTarget,onChange:function(t,e,i){n.set("value",n.getFullValue(),i)},customValue:function(t,n){return e.valueOnIndex(n,t)}};return n.get("detached")&&delete i.onChange,i},valueOnIndex:function(t,e){var n=void 0,i=this.getTargetValue({ignoreDefault:1});if(i){n=i.split(" ")[t]}else n=e&&e.getTargetValue({ignoreCustomValue:1,ignoreDefault:1});return e&&(n=e.model.parseValue(n).value),n}})}).call(e,n(0))},function(t,e,n){"use strict";(function(e){var i=n(1),r=n(2),o=n(35),s=n(0);s.$;t.exports=o.extend({events:{"change input":"handleChange","change select":"handleUnitChange","click [data-arrow-up]":"upArrowClick","click [data-arrow-down]":"downArrowClick","mousedown [data-arrows]":"downIncrement"},template:function(){var t=this.ppfx;return'\n \n \n
\n
\n
\n
\n '},inputClass:function(){var t=this.ppfx;return this.opts.contClass||t+"field "+t+"field-integer"},initialize:function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0];o.prototype.initialize.apply(this,arguments),(0,i.bindAll)(this,"moveIncrement","upIncrement"),this.doc=document,this.listenTo(this.model,"change:unit",this.handleModelChange)},setValue:function(t,e){var n=e||{},i=this.validateInputValue(t,{deepCheck:1}),r={value:i.value};(i.unit||i.force)&&(r.unit=i.unit),this.model.set(r,n),n.silent&&this.handleModelChange()},handleChange:function(t){t.stopPropagation(),this.setValue(this.getInputEl().value),this.elementUpdated()},handleUnitChange:function(t){t.stopPropagation();var e=this.getUnitEl().value;this.model.set("unit",e),this.elementUpdated()},elementUpdated:function(){this.model.trigger("el:change")},handleModelChange:function(){var t=this.model;this.getInputEl().value=t.get("value");var e=this.getUnitEl();e&&(e.value=t.get("unit")||"")},getUnitEl:function(){if(!this.unitEl){var t=this.model,e=t.get("units")||[];if(e.length){var n=[];e.forEach(function(e){var i=e==t.get("unit")?"selected":"";n.push("")});var i=document.createElement("div");i.innerHTML='",this.unitEl=i.firstChild}}return this.unitEl},upArrowClick:function(){var t=this.model,e=t.get("step"),n=parseInt(t.get("value"),10);n=this.normalizeValue(n+e);var i=this.validateInputValue(n);t.set("value",i.value),this.elementUpdated()},downArrowClick:function(){var t=this.model,e=t.get("step"),n=parseInt(t.get("value"),10),i=this.normalizeValue(n-e),r=this.validateInputValue(i);t.set("value",r.value),this.elementUpdated()},downIncrement:function(t){t.preventDefault(),this.moved=0;var e=this.model.get("value");e=this.normalizeValue(e),this.current={y:t.pageY,val:e},(0,r.on)(this.doc,"mousemove",this.moveIncrement),(0,r.on)(this.doc,"mouseup",this.upIncrement)},moveIncrement:function(t){this.moved=1;var e=this.model,n=e.get("step"),i=this.current,r=this.normalizeValue(i.val+(i.y-t.pageY)*n);return this.prValue=this.validateInputValue(r).value,e.set("value",this.prValue,{avoidStore:1}),!1},upIncrement:function(){var t=this.model,e=t.get("step");if((0,r.off)(this.doc,"mouseup",this.upIncrement),(0,r.off)(this.doc,"mousemove",this.moveIncrement),this.prValue&&this.moved){var n=this.prValue-e;t.set("value",n,{avoidStore:1}).set("value",n+e),this.elementUpdated()}},normalizeValue:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.model,i=n.get("step"),r=0;if(isNaN(t))return e;if(t=parseFloat(t),Math.floor(t)!==t){var o=i.toString().split(".")[1];r=o?o.length:0}return r?parseFloat(t.toFixed(r)):t},validateInputValue:function(t,n){var i=0,r=n||{},o=this.model,s=""!==t?t:o.get("defaults"),a=o.get("units")||[],l=o.get("unit")||a.length&&a[0]||"",c=o.get("max"),u=o.get("min");if(r.deepCheck){var h=o.get("fixedValues")||[];if(s){var d=new RegExp("^"+h.join("|"),"g");if(h.length&&d.test(s))s=s.match(d)[0],l="",i=1;else{var f=s+"";s+="",s=parseFloat(s.replace(",",".")),s=isNaN(s)?o.get("defaults"):s;var p=f.replace(s,"");e.indexOf(a,p)>=0&&(l=p)}}}return void 0!==c&&""!==c&&(s=s>c?c:s),void 0!==u&&""!==u&&(s=s1&&void 0!==arguments[1]?arguments[1]:{},r=i.el,o=i.config,a=i.resizer,l=o.keyHeight,c=o.keyWidth,d=o.currentUnit;p("add",0,i),e=n.get("StyleManager").getModelToStyle(h);var f=getComputedStyle(r),g=e.getStyle(),v=g[c]||f[c],m=g[l]||f[l];a.startDim.w=parseFloat(v),a.startDim.h=parseFloat(m),u=0,d&&(o.unitHeight=(0,s.getUnitFromValue)(m),o.unitWidth=(0,s.getUnitFromValue)(v))},onMove:function(){o.trigger("change:canvasOffset")},onEnd:function(t,e){p("remove",0,e),o.trigger("change:canvasOffset"),u=1},updateTarget:function(t,i){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var o=r.store,s=r.selectedHandler,a=r.config,l=a.keyHeight,c=a.keyWidth,u=["tc","bc"].indexOf(s)>=0,h=["cl","cr"].indexOf(s)>=0,d=e.getStyle();u||(d[c]=i.w+a.unitWidth),h||(d[l]=i.h+a.unitHeight),e.setStyle(d,{avoidStore:1});n&&n.trigger("update:component:style:"+l+" update:component:style:"+c),o&&e.trigger("change:style",e,d,{})}}},"object"==(void 0===d?"undefined":r(d))&&(f=i({},f,d)),o.runCommand("resize",{el:t,options:f}))},updateToolbar:function(t){var e=this.config.em,n=t==e?e.get("selectedComponent"):t,i=this.canvas.getToolbarEl(),r=i.style;if(!n)return void(r.opacity=0);var o=n.get("toolbar");this.ppfx;if(e.get("Config").showToolbar&&o&&o.length){if(r.opacity="",r.display="",!this.toolbar){i.innerHTML="",this.toolbar=new l(o);var s=new a({collection:this.toolbar,editor:this.editor});i.appendChild(s.render().el)}this.toolbar.reset(o);var c=n.view;c&&this.updateToolbarPos(c.el)}else r.display="none"},updateToolbarPos:function(t,e){var n=this.canvas.getToolbarEl(),i=n.style,r=i.display;i.display="block";var o=this.canvas.getTargetToElementDim(n,t,{elPos:e,event:"toolbarPosUpdate"}),s=o.left+o.elementWidth-o.targetWidth;i.top=o.top+"px",i.left=s+"px",i.display=r},getCanvasPosition:function(){return this.canvas.getCanvasView().getPosition()},clean:function(){this.selEl&&this.selEl.removeClass(this.hoverClass)},getBadge:function(){return this.canvas.getBadgeEl()},onFrameScroll:function(t){var e=this.cacheEl;if(e){var n=this.getElementPos(e);this.updateBadge(e,n);var i=this.em.get("selectedComponent");i&&this.updateToolbarPos(i.view.el)}},updateAttached:function(t){var e=this.em.getSelected();if(e){var n=e.view;this.updateToolbarPos(n.el),this.showFixedElementOffset(n.el)}},getElementPos:function(t,e){return this.canvas.getCanvasView().getElementPos(t)},hideBadge:function(){this.getBadge().style.display="none"},cleanPrevious:function(t){t&&t.set({status:"",state:""})},getContentWindow:function(){return this.frameEl.contentWindow},run:function(t){this.editor=t&&t.get("Editor"),this.enable(),this.onSelect()},stop:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this.em;this.stopSelectComponent(),!n.preserveSelected&&i.setSelected(null),this.clean(),this.hideBadge(),this.hideFixedElementOffset(),this.canvas.getToolbarEl().style.display="none",i.off("component:update",this.updateAttached,this),i.off("change:canvasOffset",this.updateAttached,this),i.off("change:selectedComponent",this.updateToolbar,this)}}},function(t,e,n){"use strict";(function(e,i){var r=n(53),o=e.$;t.exports=i.extend({},r,{init:function(t){i.bindAll(this,"startDraw","draw","endDraw","rollback"),this.config=t||{},this.hType=this.config.newFixedH?"height":"min-height",this.allowDraw=1},enable:function(){for(var t=arguments.length,e=Array(t),n=0;n0;for(o in C)(!C[o]&&n(i.mods,+o)>-1||C[o]&&-1==n(i.mods,+o))&&(a=!1);(0!=i.mods.length||C[16]||C[18]||C[17]||C[91])&&!a||!1===i.method(t,i)&&(t.preventDefault?t.preventDefault():t.returnValue=!1,t.stopPropagation&&t.stopPropagation(),t.cancelBubble&&(t.cancelBubble=!0))}}function s(t){var e,i=t.keyCode,r=n(M,i);if(r>=0&&M.splice(r,1),93!=i&&224!=i||(i=91),i in C){C[i]=!1;for(e in S)S[e]==i&&(l[e]=!1)}}function a(){for(x in C)C[x]=!1;for(x in S)l[x]=!1}function l(t,e,n){var i,r;i=v(t),void 0===n&&(n=e,e="all");for(var o=0;o1&&(r=m(t),t=[t[t.length-1]]),t=t[0],t=E(t),t in w||(w[t]=[]),w[t].push({shortcut:i[o],scope:e,method:n,key:i[o],mods:r})}function c(t,e){var n,r,o,s,a,l=[];for(n=v(t),s=0;s1&&(l=m(r),t=r[r.length-1]),t=E(t),void 0===e&&(e=p()),!w[t])return;for(o=0;o*\/]/.test(n)?i(null,"select-op"):"."==n&&t.match(/^-?[_a-z][_a-z0-9-]*/i)?i("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(n)?i(null,n):"u"==n&&t.match(/rl(-prefix)?\(/)||"d"==n&&t.match("omain(")||"r"==n&&t.match("egexp(")?(t.backUp(1),e.tokenize=s,i("property","word")):/[\w\\\-]/.test(n)?(t.eatWhile(/[\w\\\-]/),i("property","word")):i(null,null):/[\d.]/.test(t.peek())?(t.eatWhile(/[\w.%]/),i("number","unit")):t.match(/^-[\w\\\-]+/)?(t.eatWhile(/[\w\\\-]/),t.match(/^\s*:/,!1)?i("variable-2","variable-definition"):i("variable-2","variable")):t.match(/^\w+-/)?i("meta","meta"):void 0}function o(t){return function(e,n){for(var r,o=!1;null!=(r=e.next());){if(r==t&&!o){")"==t&&e.backUp(1);break}o=!o&&"\\"==r}return(r==t||!o&&")"!=t)&&(n.tokenize=null),i("string","string")}}function s(t,e){return t.next(),t.match(/\s*[\"\')]/,!1)?e.tokenize=null:e.tokenize=o(")"),i(null,"(")}function a(t,e,n){this.type=t,this.indent=e,this.prev=n}function l(t,e,n,i){return t.context=new a(n,e.indentation()+(!1===i?0:v),t.context),n}function c(t){return t.context.prev&&(t.context=t.context.prev),t.context.type}function u(t,e,n){return L[n.context.type](t,e,n)}function h(t,e,n,i){for(var r=i||1;r>0;r--)n.context=n.context.prev;return u(t,e,n)}function d(t){var e=t.current().toLowerCase();g=M.hasOwnProperty(e)?"atom":E.hasOwnProperty(e)?"keyword":"variable"}var f=n.inline;n.propertyKeywords||(n=t.resolveMode("text/css"));var p,g,v=e.indentUnit,m=n.tokenHooks,y=n.documentTypes||{},b=n.mediaTypes||{},x=n.mediaFeatures||{},w=n.mediaValueKeywords||{},C=n.propertyKeywords||{},k=n.nonStandardPropertyKeywords||{},S=n.fontProperties||{},T=n.counterDescriptors||{},E=n.colorKeywords||{},M=n.valueKeywords||{},P=n.allowNested,A=n.lineComment,O=!0===n.supportsAtComponent,L={};return L.top=function(t,e,n){if("{"==t)return l(n,e,"block");if("}"==t&&n.context.prev)return c(n);if(O&&/@component/.test(t))return l(n,e,"atComponentBlock");if(/^@(-moz-)?document$/.test(t))return l(n,e,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/.test(t))return l(n,e,"atBlock");if(/^@(font-face|counter-style)/.test(t))return n.stateArg=t,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/.test(t))return"keyframes";if(t&&"@"==t.charAt(0))return l(n,e,"at");if("hash"==t)g="builtin";else if("word"==t)g="tag";else{if("variable-definition"==t)return"maybeprop";if("interpolation"==t)return l(n,e,"interpolation");if(":"==t)return"pseudo";if(P&&"("==t)return l(n,e,"parens")}return n.context.type},L.block=function(t,e,n){if("word"==t){var i=e.current().toLowerCase();return C.hasOwnProperty(i)?(g="property","maybeprop"):k.hasOwnProperty(i)?(g="string-2","maybeprop"):P?(g=e.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(g+=" error","maybeprop")}return"meta"==t?"block":P||"hash"!=t&&"qualifier"!=t?L.top(t,e,n):(g="error","block")},L.maybeprop=function(t,e,n){return":"==t?l(n,e,"prop"):u(t,e,n)},L.prop=function(t,e,n){if(";"==t)return c(n);if("{"==t&&P)return l(n,e,"propBlock");if("}"==t||"{"==t)return h(t,e,n);if("("==t)return l(n,e,"parens");if("hash"!=t||/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(e.current())){if("word"==t)d(e);else if("interpolation"==t)return l(n,e,"interpolation")}else g+=" error";return"prop"},L.propBlock=function(t,e,n){return"}"==t?c(n):"word"==t?(g="property","maybeprop"):n.context.type},L.parens=function(t,e,n){return"{"==t||"}"==t?h(t,e,n):")"==t?c(n):"("==t?l(n,e,"parens"):"interpolation"==t?l(n,e,"interpolation"):("word"==t&&d(e),"parens")},L.pseudo=function(t,e,n){return"meta"==t?"pseudo":"word"==t?(g="variable-3",n.context.type):u(t,e,n)},L.documentTypes=function(t,e,n){return"word"==t&&y.hasOwnProperty(e.current())?(g="tag",n.context.type):L.atBlock(t,e,n)},L.atBlock=function(t,e,n){if("("==t)return l(n,e,"atBlock_parens");if("}"==t||";"==t)return h(t,e,n);if("{"==t)return c(n)&&l(n,e,P?"block":"top");if("interpolation"==t)return l(n,e,"interpolation");if("word"==t){var i=e.current().toLowerCase();g="only"==i||"not"==i||"and"==i||"or"==i?"keyword":b.hasOwnProperty(i)?"attribute":x.hasOwnProperty(i)?"property":w.hasOwnProperty(i)?"keyword":C.hasOwnProperty(i)?"property":k.hasOwnProperty(i)?"string-2":M.hasOwnProperty(i)?"atom":E.hasOwnProperty(i)?"keyword":"error"}return n.context.type},L.atComponentBlock=function(t,e,n){return"}"==t?h(t,e,n):"{"==t?c(n)&&l(n,e,P?"block":"top",!1):("word"==t&&(g="error"),n.context.type)},L.atBlock_parens=function(t,e,n){return")"==t?c(n):"{"==t||"}"==t?h(t,e,n,2):L.atBlock(t,e,n)},L.restricted_atBlock_before=function(t,e,n){return"{"==t?l(n,e,"restricted_atBlock"):"word"==t&&"@counter-style"==n.stateArg?(g="variable","restricted_atBlock_before"):u(t,e,n)},L.restricted_atBlock=function(t,e,n){return"}"==t?(n.stateArg=null,c(n)):"word"==t?(g="@font-face"==n.stateArg&&!S.hasOwnProperty(e.current().toLowerCase())||"@counter-style"==n.stateArg&&!T.hasOwnProperty(e.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},L.keyframes=function(t,e,n){return"word"==t?(g="variable","keyframes"):"{"==t?l(n,e,"top"):u(t,e,n)},L.at=function(t,e,n){return";"==t?c(n):"{"==t||"}"==t?h(t,e,n):("word"==t?g="tag":"hash"==t&&(g="builtin"),"at")},L.interpolation=function(t,e,n){return"}"==t?c(n):"{"==t||";"==t?h(t,e,n):("word"==t?g="variable":"variable"!=t&&"("!=t&&")"!=t&&(g="error"),"interpolation")},{startState:function(t){return{tokenize:null,state:f?"block":"top",stateArg:null,context:new a(f?"block":"top",t||0,null)}},token:function(t,e){if(!e.tokenize&&t.eatSpace())return null;var n=(e.tokenize||r)(t,e);return n&&"object"==typeof n&&(p=n[1],n=n[0]),g=n,"comment"!=p&&(e.state=L[e.state](p,t,e)),g},indent:function(t,e){var n=t.context,i=e&&e.charAt(0),r=n.indent;return"prop"!=n.type||"}"!=i&&")"!=i||(n=n.prev),n.prev&&("}"!=i||"block"!=n.type&&"top"!=n.type&&"interpolation"!=n.type&&"restricted_atBlock"!=n.type?(")"!=i||"parens"!=n.type&&"atBlock_parens"!=n.type)&&("{"!=i||"at"!=n.type&&"atBlock"!=n.type)||(r=Math.max(0,n.indent-v)):(n=n.prev,r=n.indent)),r},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:A,fold:"brace"}});var i=["domain","regexp","url","url-prefix"],r=e(i),o=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],s=e(o),a=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover"],l=e(a),c=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive"],u=e(c),h=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","justify-items","justify-self","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","place-content","place-items","place-self","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","user-select","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],d=e(h),f=["scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-3d-light-color","scrollbar-track-color","shape-inside","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","zoom"],p=e(f),g=["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"],v=e(g),m=["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"],y=e(m),b=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],x=e(b),w=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","devanagari","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","georgian","graytext","grid","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hard-light","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","luminosity","malayalam","match","matrix","matrix3d","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","multiply","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","opacity","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","somali","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","square-button","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unset","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"],C=e(w),k=i.concat(o).concat(a).concat(c).concat(h).concat(f).concat(b).concat(w);t.registerHelper("hintWords","css",k),t.defineMIME("text/css",{documentTypes:r,mediaTypes:s,mediaFeatures:l,mediaValueKeywords:u,propertyKeywords:d,nonStandardPropertyKeywords:p,fontProperties:v,counterDescriptors:y,colorKeywords:x,valueKeywords:C,tokenHooks:{"/":function(t,e){return!!t.eat("*")&&(e.tokenize=n,n(t,e))}},name:"css"}),t.defineMIME("text/x-scss",{mediaTypes:s,mediaFeatures:l,mediaValueKeywords:u,propertyKeywords:d,nonStandardPropertyKeywords:p,colorKeywords:x,valueKeywords:C,fontProperties:v,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(t,e){return t.eat("/")?(t.skipToEnd(),["comment","comment"]):t.eat("*")?(e.tokenize=n,n(t,e)):["operator","operator"]},":":function(t){return!!t.match(/\s*\{/,!1)&&[null,null]},$:function(t){return t.match(/^[\w-]+/),t.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"]},"#":function(t){return!!t.eat("{")&&[null,"interpolation"]}},name:"css",helperType:"scss"}),t.defineMIME("text/x-less",{mediaTypes:s,mediaFeatures:l,mediaValueKeywords:u,propertyKeywords:d,nonStandardPropertyKeywords:p,colorKeywords:x,valueKeywords:C,fontProperties:v,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(t,e){return t.eat("/")?(t.skipToEnd(),["comment","comment"]):t.eat("*")?(e.tokenize=n,n(t,e)):["operator","operator"]},"@":function(t){return t.eat("{")?[null,"interpolation"]:!t.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/,!1)&&(t.eatWhile(/[\w\\\-]/),t.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"])},"&":function(){return["atom","atom"]}},name:"css",helperType:"less"}),t.defineMIME("text/x-gss",{documentTypes:r,mediaTypes:s,mediaFeatures:l,propertyKeywords:d,nonStandardPropertyKeywords:p,fontProperties:v,counterDescriptors:y,colorKeywords:x,valueKeywords:C,supportsAtComponent:!0,tokenHooks:{"/":function(t,e){return!!t.eat("*")&&(e.tokenize=n,n(t,e))}},name:"css",helperType:"gss"})})},function(t,e,n){"use strict";var i=n(0),r=n(28);t.exports=i.Model.extend({defaults:{id:"",content:"",visible:!0,buttons:[]},initialize:function(t){this.btn=this.get("buttons")||[],this.buttons=new r(this.btn),this.set("buttons",this.buttons)}})},function(t,e,n){"use strict";var i=n(0),r=n(111);t.exports=i.Collection.extend({model:r,deactivateAllExceptOne:function(t,e){this.forEach(function(n,i){n!==t&&(n.set("active",!1),e&&n.get("buttons").length&&n.get("buttons").deactivateAllExceptOne(t,e))})},deactivateAll:function(t){var e=t||"";this.forEach(function(t,n){t.get("context")==e&&(t.set("active",!1),t.get("buttons").length&&t.get("buttons").deactivateAll(e))})},disableAllButtons:function(t){var e=t||"";this.forEach(function(t,n){t.get("context")==e&&(t.set("disable",!0),t.get("buttons").length&&t.get("buttons").disableAllButtons(e))})},disableAllButtonsExceptOne:function(t,e){this.forEach(function(n,i){n!==t&&(n.set("disable",!0),e&&n.get("buttons").length&&n.get("buttons").disableAllButtonsExceptOne(t,e))})}})},function(t,e,n){"use strict";var i=n(0),r=n(30);t.exports=i.View.extend({initialize:function(t){var e=t.config||{};this.config=e,this.pfx=e.stylePrefix||"",this.ppfx=e.pStylePrefix||"",this.buttons=this.model.get("buttons"),this.className=this.pfx+"panel",this.id=this.pfx+this.model.get("id"),this.listenTo(this.model,"change:appendContent",this.appendContent),this.listenTo(this.model,"change:content",this.updateContent)},appendContent:function(){this.$el.append(this.model.get("appendContent"))},updateContent:function(){this.$el.html(this.model.get("content"))},initResize:function(){var t=this.config.em,e=t?t.get("Editor"):"",n=this.model.get("resizable");if(e&&n){var i,r,o,s=!0===n?[1,1,1,1]:n,a=s.length,l=0;2==a?(i=s[0],o=s[0],r=s[1],l=s[1]):4==a&&(i=s[0],r=s[1],o=s[2],l=s[3]);var c=e.Utils.Resizer.init({tc:i,cr:r,bc:o,cl:l,tl:0,tr:0,bl:0,br:0,appendTo:this.el,prefix:e.getConfig().stylePrefix,posFetcher:function(t){var e=t.getBoundingClientRect();return{left:0,top:0,width:e.width,height:e.height}}});c.blur=function(){},c.focus(this.el)}},render:function(){var t=this.$el,e=this.ppfx;if(t.attr("class",this.className+" "+e+"one-bg"),this.id&&t.attr("id",this.id),this.buttons.length){var n=new r({collection:this.buttons,config:this.config});t.append(n.render().el)}return t.append(this.model.get("content")),this}})},function(t,e,n){"use strict";(function(e){var i=n(0),r=n(113);t.exports=i.View.extend({initialize:function(t){this.opt=t||{},this.config=this.opt.config||{},this.pfx=this.config.stylePrefix||"",this.parentM=this.opt.parentM||null,this.listenTo(this.collection,"add",this.addTo),this.listenTo(this.collection,"reset",this.render),this.className=this.pfx+"buttons"},addTo:function(t){this.addToCollection(t)},addToCollection:function(t,e){var n=e||null,i=r,o=new i({model:t,config:this.config,parentM:this.parentM}),s=o.render().el;return n?n.appendChild(s):this.$el.append(s),s},render:function(){var t=document.createDocumentFragment();return this.$el.empty(),this.collection.each(function(e){this.addToCollection(e,t)},this),this.$el.append(t),this.$el.attr("class",e.result(this,"className")),this}})}).call(e,n(1))},function(t,e,n){"use strict";var i=Object.assign||function(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},n=e.model,o=void 0===n?{}:n,s=e.view,a=void 0===s?{}:s,l=this.getType(t);if(l)return new l.view(i({model:new l.model(o),config:r},a))},render:function(){return e.render().el}}}},function(t,e,n){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0});var n=t.Model,i=t.View;e.default={types:[],initialize:function(t,e){var n=this;this.model=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=void 0,r=void 0,o=void 0;if(t&&t.type){var s=n.getBaseType();o=n.getType(t.type),i=o?o.model:s.model,r=o?o.view:s.view}else{var a=n.recognizeType(t);o=a.type,i=o.model,r=o.view,t=a.attributes}var l=new i(t,e);return l.typeView=r,l};var i=this.init&&this.init.bind(this);i&&i()},recognizeType:function(t){for(var e=this.getTypes(),n=0;n\n \n
\n
\n '},init:function(){var t=this.model;this.pfx;t.set("stackIndex",null),this.events["click [data-add-layer]"]="addLayer",this.listenTo(t,"change:stackIndex",this.indexChanged),this.listenTo(t,"updateValue",this.inputValueChanged),this.delegateEvents()},targetUpdated:function(){if(this.model.get("detached"))this.checkVisibility();else{for(var t=arguments.length,e=Array(t),n=0;n'},inputClass:function(){return this.ppfx+"field"},holderClass:function(){return this.ppfx+"input-holder"},initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.ppfx||"";this.opts=t,this.ppfx=e,this.em=t.target||{},this.listenTo(this.model,"change:value",this.handleModelChange)},elementUpdated:function(){this.model.trigger("el:change")},setValue:function(t){var e=this.model,n=t||e.get("defaults"),i=this.getInputEl();i&&(i.value=n)},handleModelChange:function(t,e,n){this.setValue(e,n)},handleChange:function(t){t.stopPropagation(),this.model.set("value",this.getInputEl().value),this.elementUpdated()},getInputEl:function(){if(!this.inputEl){var t=this.model.get("defaults");this.inputEl=n('')}return this.inputEl.get(0)},render:function(){var t=this.$el;return t.addClass(this.inputClass()),t.html(this.template()),t.find("."+this.holderClass()).append(this.getInputEl()),this}})}).call(e,n(0))},function(t,e,n){"use strict";t.exports=n(5).extend({templateInput:function(){var t=(this.pfx,this.ppfx);return'\n
\n
\n '},onRender:function(){var t=this.pfx,e=this.ppfx,n=e+"radio-item-label",i=this.model,r=i.get("property"),o=i.get("list")||i.get("options")||[];if(!this.input&&o&&o.length){var s="";o.forEach(function(i){var o=i.className?i.className+" "+t+"icon "+n:"",a=r+"-"+i.value,l=i.name||i.value,c=i.title?'title="'+i.title+'"':"";s+='\n
\n \n \n
\n "});var a=this.el.querySelector("."+e+"field");a.innerHTML='
'+s+"
",this.input=a.firstChild}},getInputValue:function(){var t=this.getCheckedEl();return t?t.value:""},getCheckedEl:function(){var t=this.getInputEl();return t?t.querySelector("input:checked"):""},setValue:function(t){var e=this.model,n=t||e.get("value")||e.getDefaultValue(),i=this.getInputEl(),r=i?i.querySelector('[value="'+n+'"]'):"";if(r)r.checked=!0;else{var o=this.getCheckedEl();o&&(o.checked=!1)}}})},function(t,e,n){"use strict";(function(e){e.$;t.exports=n(5).extend({templateInput:function(){var t=this.pfx,e=this.ppfx;return'\n
\n \n
\n
\n
\n
\n '},onRender:function(){var t=this.pfx,e=this.model,n=e.get("list")||e.get("options")||[];if(!this.input){var i="";n.forEach(function(t){var e=t.name||t.value,n=t.style?t.style.replace(/"/g,"""):"",r=n?'style="'+n+'"':"",o=t.value.replace(/"/g,""");i+='"});var r=this.el.querySelector("#"+t+"input-holder");r.innerHTML="",this.input=r.firstChild}}})}).call(e,n(0))},function(t,e,n){"use strict";var i=Object.assign||function(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{};e=i({},e,{silent:1}),this.inputInst.setValue(t,e)},onRender:function(){if(!this.input){var t=this.ppfx,e=new r({target:this.target,model:this.model,ppfx:t}),n=e.render();this.el.querySelector("."+t+"fields").appendChild(n.el),this.$input=n.inputEl,this.$color=n.colorEl,this.input=this.$input.get(0),this.inputInst=n}}})},function(t,e,n){"use strict";(function(e){var i=Object.assign||function(t){for(var e=1;e\n
\n
\n
\n
\n
\n '},inputClass:function(){var t=this.ppfx;return t+"field "+t+"field-color"},holderClass:function(){return this.ppfx+"input-holder"},setValue:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.model,i=t||n.get("defaults"),r=this.getInputEl(),o=this.getColorEl(),s="none"!=i?i:"";r.value=i,o.get(0).style.backgroundColor=s,e.fromTarget&&(o.spectrum("set",s),this.noneColor="none"==i)},getColorEl:function(){if(!this.colorEl){var t=this,e=this.ppfx,n=this.model,r=o('
'),s=r.get(0).style,a=this.em&&this.em.config?this.em.config.el:"",l=this.em&&this.em.getConfig&&this.em.getConfig("colorPicker")||{},c=function(t){return(1==t.getAlpha()?t.toHexString():t.toRgbString()).replace(/ /g,"")},u=0,h=void 0;this.$el.find("[data-colorp-c]").append(r),r.spectrum(i({containerClassName:e+"one-bg "+e+"two-color",appendTo:a||"body",maxSelectionSize:8,showPalette:!0,showAlpha:!0,chooseText:"Ok",cancelText:"⨯",palette:[]},l,{move:function(t){var e=c(t);s.backgroundColor=e,n.setValueFromInput(e,0)},change:function(e){u=1;var i=c(e);s.backgroundColor=i,n.setValueFromInput(i),t.noneColor=0},show:function(t){u=0,h=c(t)},hide:function(e){!u&&h&&(t.noneColor&&(h=""),s.backgroundColor=h,r.spectrum("set",h),n.setValueFromInput(h,0))}})),this.colorEl=r}return this.colorEl},render:function(){return r.prototype.render.call(this),this.getColorEl(),this}})}).call(e,n(0))},function(t,e,n){"use strict";(function(e){var i=n(5),r=e.$;t.exports=i.extend({templateInput:function(){var t=this.pfx;this.ppfx;return'\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n '},init:function(){var t=this.em;this.modal=t.get("Modal"),this.am=t.get("AssetManager"),this.events["click #"+this.pfx+"close"]="removeFile",this.events["click #"+this.pfx+"images"]="openAssetManager",this.delegateEvents()},onRender:function(){if(!this.$input){var t=this.model.getDefaultValue();this.$input=r('')}this.$preview||(this.$preview=this.$el.find("#"+this.pfx+"preview-file")),this.$previewBox||(this.$previewBox=this.$el.find("#"+this.pfx+"preview-box")),this.setValue(this.componentValue,0)},setValue:function(t,e){i.prototype.setValue.apply(this,arguments),this.setPreviewView(t&&t!=this.model.getDefaultValue()),this.setPreview(t)},setPreviewView:function(t){var e=this.$previewBox;e&&e[t?"addClass":"removeClass"](this.pfx+"show")},spreadUrl:function(t){this.model.set("value",t),this.setPreviewView(1)},setPreview:function(t){var e=this.$preview;t=t&&t.indexOf("url(")<0?"url("+t+")":t,e&&e.css("background-image",t)},cleanValue:function(){this.setPreviewView(0),this.model.set({value:""},{silent:!0})},removeFile:function(){this.model.set("value",this.model.getDefaultValue());for(var t=arguments.length,e=Array(t),n=0;n\n
\n '},getInfo:function(){var t=this.pfx,e=this.model,n=e.get("name"),i=e.get("width"),r=e.get("height"),o=e.get("unitDim"),s=i&&r?i+"x"+r+o:"";return n=n||e.getFilename(),'\n
'+n+'
\n
'+s+"
\n "},init:function(t){var e=this.pfx;this.className+=" "+e+"asset-image"},onClick:function(){var t=this.config.onClick,e=this.model;this.collection.trigger("deselectAll"),this.$el.addClass(this.pfx+"highlight"),"function"==typeof t?t(e):this.updateTarget(this.collection.target)},onDblClick:function(){var t=this.em,e=this.config.onDblClick,n=this.model;"function"==typeof e?e(n):(this.updateTarget(this.collection.target),t&&t.get("Modal").close());var i=this.collection.onSelect;"function"==typeof i&&i(this.model)},onRemove:function(t){t.stopImmediatePropagation(),this.model.collection.remove(this.model)}})},function(t,e,n){"use strict";(function(e,n){t.exports=e.View.extend({initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.options=t,this.collection=t.collection;var e=t.config||{};this.config=e,this.pfx=e.stylePrefix||"",this.ppfx=e.pStylePrefix||"",this.em=e.em,this.className=this.pfx+"asset",this.listenTo(this.model,"destroy remove",this.remove),this.model.view=this;var n=this.init&&this.init.bind(this);n&&n(t)},template:function(){var t=this.pfx;return'\n
\n '+this.getPreview()+'\n
\n
\n '+this.getInfo()+'\n
\n
\n ⨯\n
\n '},updateTarget:function(t){t&&t.set&&(t.set("attributes",n.clone(t.get("attributes"))),t.set("src",this.model.get("src")))},getPreview:function(){return""},getInfo:function(){return""},render:function(){var t=this.el;return t.innerHTML=this.template(this,this.model),t.className=this.className,this}})}).call(e,n(0),n(1))},function(t,e,n){"use strict";(function(e,i){var r=n(24),o=function(t){return t&&t.__esModule?t:{default:t}}(r);t.exports=e.View.extend({template:i.template('\n
\n
<%= title %>
\n multiple/>\n
\n
\n '),events:{},initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.options=t;var e=t.config||{};this.config=e,this.pfx=e.stylePrefix||"",this.ppfx=e.pStylePrefix||"",this.target=this.options.globalCollection||{},this.uploadId=this.pfx+"uploadFile",this.disabled=void 0!==e.disableUpload?e.disableUpload:!e.upload&&!e.embedAsBase64,this.events["change #"+this.uploadId]="uploadFile";var n=e.uploadFile;n?this.uploadFile=n.bind(this):e.embedAsBase64&&(this.uploadFile=this.constructor.embedAsBase64),this.delegateEvents()},onUploadStart:function(){var t=this.config.em;t&&t.trigger("asset:upload:start")},onUploadEnd:function(t){var e=this.config.em;e&&e.trigger("asset:upload:end",t)},onUploadError:function(t){var e=this.config.em;console.error(t),this.onUploadEnd(t),e&&e.trigger("asset:upload:error",t)},onUploadResponse:function(t){var e=this.config.em,n=this.config,i=this.target,r="string"==typeof t?JSON.parse(t):t;e&&e.trigger("asset:upload:response",r),n.autoAdd&&i&&i.add(r.data,{at:0}),this.onUploadEnd(t)},uploadFile:function(t){for(var e=this,n=t.dataTransfer?t.dataTransfer.files:t.target.files,i=new FormData,r=this.config,s=r.params,a=0;a'+i.dropzoneContent+""),h(),"draggable"in o&&[o,a].forEach(function(t){t.ondragover=d,t.ondragleave=f,t.ondrop=p})},render:function(){return this.$el.html(this.template({title:this.config.uploadText,uploadId:this.uploadId,disabled:this.disabled,pfx:this.pfx})),this.initDrop(),this.$el.attr("class",this.pfx+"file-uploader"),this}},{embedAsBase64:function(t){var e=this,n=t.dataTransfer?t.dataTransfer.files:t.target.files,i={data:[]};if(!FileReader)return void this.onUploadError(new Error("Unsupported platform, FileReader is not defined"));var r=[],o=/^(.+)\/(.+)$/,s=!0,a=!1,l=void 0;try{for(var c,u=n[Symbol.iterator]();!(s=(c=u.next()).done);s=!0){var h=c.value;!function(t){var e=new Promise(function(e,n){var i=new FileReader;i.addEventListener("load",function(r){var s=void 0,a=t.name,l=o.exec(t.type);if("image"===(s=l?l[1]:t.type)){var c={src:i.result,name:a,type:s,height:0,width:0},u=new Image;u.addEventListener("error",function(t){n(t)}),u.addEventListener("load",function(){c.height=u.height,c.width=u.width,e(c)}),u.src=c.src}else e(s?{src:i.result,name:a,type:s}:i.result)}),i.addEventListener("error",function(t){n(t)}),i.addEventListener("abort",function(t){n("Aborted")}),i.readAsDataURL(t)});r.push(e)}(h)}}catch(t){a=!0,l=t}finally{try{!s&&u.return&&u.return()}finally{if(a)throw l}}Promise.all(r).then(function(t){i.data=t,e.onUploadResponse(i)},function(t){e.onUploadError(t)})}})}).call(e,n(0),n(1))},function(t,e,n){"use strict";(function(e){var i=n(47),r=function(t){return t&&t.__esModule?t:{default:t}}(i),o=n(0),s=n(10);t.exports=o.Model.extend(r.default).extend({defaults:{selectors:{},selectorsAdd:"",style:{},mediaText:"",state:"",stylable:!0,important:0},initialize:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.config=t||{};var n=e.em,i=this.config.selectors||[];if(this.em=n,n){var r=n.get("SelectorManager"),o=[];i.forEach(function(t){o.push(r.add(t))}),i=o}this.set("selectors",new s(i))},selectorsToString:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=[],n=this.get("state"),i=this.get("selectorsAdd"),r=this.get("selectors").getFullString(),o=n?":"+n:"";return r&&e.push(""+r+o),i&&!t.skipAdd&&e.push(i),e.join(", ")},toCSS:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e="",n=this.get("mediaText"),i=this.styleToString(t),r=this.selectorsToString();return r&&i&&(e=r+"{"+i+"}"),n&&e&&(e="@media "+n+"{"+e+"}"),e},compare:function(t,n,i,r){var o=r||{},s=n||"",a=i||"",l=o.selectorsAdd||"";t instanceof Array||t.models||(t=[t]);var c=e.map(t.models||t,function(t){return t.get("name")}),u=e.map(this.get("selectors").models,function(t){return t.get("name")});if(c.length!==u.length)return!1;for(var h=0;h0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,r.isString)(e)&&(e=l(e));var s=this.getStyle(),a=i({},e);this.set("style",a,n);var c=(0,o.shallowDiff)(s,a);return(0,r.keys)(c).forEach(function(e){return t.trigger("change:style:"+e)}),a},addStyle:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};"string"==typeof t?t={prop:e}:n=e||{},t=this.extendStyle(t),this.setStyle(t,n)},removeStyle:function(t){var e=this.getStyle();delete e[t],this.setStyle(e)},styleToString:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=[],n=this.getStyle();for(var i in n){var o=t.important,s=(0,r.isArray)(o)?o.indexOf(i)>=0:o,a=n[i]+(s?" !important":"");e.push(i+":"+a+";")}return e.join("")}}},function(t,e,n){"use strict";var i=n(0);t.exports=i.View.extend({itemView:"",itemsView:"",itemType:"type",initialize:function(t,e){this.config=e||{}},addTo:function(t){this.add(t)},add:function(t,e){var n=e||null,i=this.itemView,r=t.get(this.itemType);this.itemsView&&this.itemsView[r]&&(i=this.itemsView[r]);var o=new i({model:t,config:this.config},this.config),s=o.render().el;n?n.appendChild(s):this.$el.append(s)},render:function(){var t=document.createDocumentFragment();return this.$el.empty(),this.collection.length&&this.collection.each(function(e){this.add(e,t)},this),this.$el.append(t),this}})},function(t,e,n){"use strict";var i=n(1),r=n(0);t.exports=r.Collection.extend({initialize:function(t,e){this.on("add",this.onAdd),this.config=e&&e.config?e.config:null,e&&(e.sm||e.em)&&(this.editor=e.sm||e.em),this.model=function(t,n){var i;!n.sm&&e&&e.sm&&(n.sm=e.sm),!n.em&&e&&e.em&&(n.em=e.em),e&&e.config&&(n.config=e.config),e&&e.componentTypes&&(n.componentTypes=e.componentTypes);for(var r=e.componentTypes,o=0;o1&&void 0!==arguments[1]?arguments[1]:{};if("string"==typeof t){var n=this.editor.get("Parser").parseHtml(t);t=n.html;var i=this.editor.get("CssComposer");if(n.css&&i){var o=e.avoidUpdateStyle;i.addCollection(n.css,{extend:1,avoidUpdateStyle:o})}}return r.Collection.prototype.add.apply(this,[t,e])},onAdd:function(t,e,n){var r=this.editor,o=t.get("style"),s=r&&r.getConfig("avoidInlineStyle");if(!(0,i.isEmpty)(o)&&!s&&r&&r.get&&r.get("Config").forceClass){var a=this.editor.get("CssComposer"),l=this.editor.get("SelectorManager").add(t.cid);t.set({style:{}}),t.get("classes").add(l);a.add(l).set("style",o)}}})},function(t,e,n){"use strict";(function(e){var i=n(1);t.exports=e.View.extend({initialize:function(t){this.opts=t||{},this.config=t.config||{};var e=this.collection;this.listenTo(e,"add",this.addTo),this.listenTo(e,"reset",this.resetChildren)},addTo:function(t){var e=this.config.em,n=this.collection.indexOf(t);this.addToCollection(t,null,n),e&&!t.opt.temporary&&(e.trigger("add:component",t),e.trigger("component:add",t))},addToCollection:function(t,e,r){this.compView||(this.compView=n(3));for(var o=e||null,s=this.compView,a=this.opts.componentTypes,l=t.get("type"),c=0;c':"")+'\n\n
\n
\n
\n \n '+t.getIcon()+'\n \n
\n
\n
\n
'+(r||"")+'
\n
\n \n
\n
\n '},initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.opt=t,this.level=t.level,this.config=t.config,this.em=t.config.em,this.ppfx=this.em.get("Config").stylePrefix,this.sorter=t.sorter||"",this.pfx=this.config.stylePrefix;var e=this.pfx,n=this.ppfx,i=this.model,r=i.get("components");i.set("open",!1),this.listenTo(r,"remove add change reset",this.checkChildren),this.listenTo(i,"destroy remove",this.remove),this.listenTo(i,"change:status",this.updateStatus),this.listenTo(i,"change:open",this.updateOpening),this.listenTo(i,"change:style:display",this.updateVisibility),this.className=e+"item no-select",this.editBtnCls=e+"nav-item-edit",this.inputNameCls=n+"nav-comp-name",this.caretCls=n+"nav-item-caret",this.titleCls=e+"title",this.$el.data("model",i),this.$el.data("collection",r)},getVisibilityEl:function(){return this.eyeEl||(this.eyeEl=this.$el.children("#"+this.pfx+"btn-eye")),this.eyeEl},updateVisibility:function(){var t=this.pfx,e=this.model,n=t+"hide",i="none"==e.getStyle().display,r=i?"addClass":"removeClass";this.$el[r](n),this.getVisibilityEl()[r]("fa-eye-slash")},toggleVisibility:function(t){t&&t.stopPropagation();var e=this.model,n=e.getStyle();"none"==n.display?delete n.display:n.display="none",e.setStyle(n)},handleEdit:function(t){t.stopPropagation();var e=this.getInputName();e.readOnly=!1,e.focus()},handleEditEnd:function(t){t.stopPropagation();var e=this.getInputName();e.readOnly=!0,this.model.set("custom-name",e.value)},getInputName:function(){return this.inputName||(this.inputName=this.el.querySelector("."+this.inputNameCls)),this.inputName},updateOpening:function(){var t=this.opt.opened||{},e=this.model;e.get("open")?(this.$el.addClass("open"),this.getCaret().addClass("fa-chevron-down"),t[e.cid]=e):(this.$el.removeClass("open"),this.getCaret().removeClass("fa-chevron-down"),delete t[e.cid])},toggleOpening:function(t){t.stopPropagation(),this.model.get("components").length&&this.model.set("open",!this.model.get("open"))},handleSelect:function(t){t.stopPropagation(),this.em&&this.em.setSelected(this.model,{fromLayers:1})},startSort:function(t){t.stopPropagation(),0===t.button&&this.sorter&&this.sorter.startSort(t.target)},freeze:function(){this.$el.addClass(this.pfx+"opac50"),this.model.set("open",0)},unfreeze:function(){this.$el.removeClass(this.pfx+"opac50")},updateStatus:function(t){r.prototype.updateStatus.apply(this,arguments)},isVisible:function(){var t=this.model.get("style"),e=t.display;if(!e||"none"!=e)return 1},checkChildren:function(){var t=this.model,e=this.countChildren(t),n=this.pfx,i=n+"no-chld",r=this.$el.children("."+n+"title-c").children("."+n+"title");this.$counter||(this.$counter=this.$el.children("#"+n+"counter")),e?(r.removeClass(i),this.$counter.html(e)):(r.addClass(i),this.$counter.empty(),t.set("open",0))},countChildren:function(t){var e=0;return t.get("components").each(function(t){var n=this.opt.isCountable,i=this.config.hideTextnode;n&&!n(t,i)||e++},this),e},getCaret:function(){if(!this.caret){var t=this.pfx;this.caret=this.$el.children("."+t+"title-c").find("#"+t+"caret")}return this.caret},render:function(){var t=this.model,e=this.pfx,r=this.isVisible(),s=this.$el,a=this.level+1;s.html(this.template(t)),(0,i.isUndefined)(o)&&(o=n(56));var l=new o({collection:t.get("components"),config:this.config,sorter:this.sorter,opened:this.opt.opened,parent:t,level:a}).render().$el;return s.find("."+e+"children").append(l),t.get("draggable")&&this.config.sortable||s.children("#"+e+"move").remove(),!r&&(this.className+=" "+e+"hide"),s.attr("class",this.className),this.updateOpening(),this.updateStatus(),this.updateVisibility(),this}})},function(t,e,n){"use strict";var i=n(0),r=n(55);t.exports=i.View.extend({initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.opt=t;var e=t.config||{};if(this.level=t.level,this.config=e,this.preview=t.preview,this.ppfx=e.pStylePrefix||"",this.pfx=e.stylePrefix||"",this.parent=t.parent,this.listenTo(this.collection,"add",this.addTo),this.listenTo(this.collection,"reset resetNavigator",this.render),this.className=this.pfx+"items",e.sortable&&!this.opt.sorter){var n=this.pfx,i=e.em.get("Utils");this.opt.sorter=new i.Sorter({container:e.sortContainer||this.el,containerSel:"."+n+"items",itemSel:"."+n+"item",ppfx:this.ppfx,ignoreViewChildren:1,avoidSelectOnEnd:1,pfx:n,nested:1})}this.sorter=this.opt.sorter||"",this.$el.data("collection",this.collection),this.parent&&this.$el.data("model",this.parent)},addTo:function(t){var e=this.collection.indexOf(t);this.addToCollection(t,null,e)},addToCollection:function(t,e,n){var i=this.level,o=e||null,s=r;if(this.isCountable(t,this.config.hideTextnode)){var a=new s({level:i,model:t,config:this.config,sorter:this.sorter,isCountable:this.isCountable,opened:this.opt.opened}),l=a.render().el;if(o)o.appendChild(l);else if(void 0!==n){var c="before";this.$el.children().length==n&&(n--,c="after"),n<0?this.$el.append(l):this.$el.children().eq(n)[c](l)}else this.$el.append(l);return l}},isCountable:function(t,e){var n=t.get("type"),i=t.get("tagName");return!(("textnode"==n||"br"==i)&&e||!t.get("layerable"))},render:function(){var t=this,e=document.createDocumentFragment();return this.el.innerHTML="",this.collection.each(function(n){return t.addToCollection(n,e)}),this.el.appendChild(e),this.$el.attr("class",this.className),this}})},function(t,e,n){"use strict";var i=n(0);t.exports=i.Model.extend({defaults:{id:"",label:"",open:!0,attributes:{}}})},function(t,e,n){"use strict";t.exports=n(59)},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(9),o=i(r),s=n(1);(0,i(n(60)).default)(),t.exports=function(){var t=n(61),e=n(62),i=n(220),r=new i,a=[];return{$:o.default,editors:a,plugins:r,version:"0.12.60",init:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=n.container;if(!i)throw new Error("'container' is required");(0,s.defaults)(n,t),n.el=i instanceof window.HTMLElement?i:document.querySelector(i);var o=new e(n).init();return n.plugins.forEach(function(t){var e=r.get(t);e?e(o,n.pluginsOpts[t]||{}):console.warn("Plugin "+t+" not found")}),o.getModel().loadOnStart(),n.autorender&&o.render(),a.push(o),o}}}()},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){if(function(){for(var t=void 0,e=window.navigator.userAgent,n=[["edge",/Edge\/([0-9\._]+)/],["ie",/MSIE\s(7\.0)/],["ie",/MSIE\s([0-9\.]+);.*Trident\/[4-7].0/],["ie",/Trident\/7\.0.*rv\:([0-9\.]+).*\).*Gecko$/]],i=0;i0&&void 0!==arguments[0]?arguments[0]:{};this.config=e,this.set("Config",e),this.set("modules",[]),e.el&&e.fromElement&&(this.config.components=e.el.innerHTML),o.forEach(function(e){return t.loadModule(e)}),this.on("change:selectedComponent",this.componentSelected,this),this.on("change:changesCount",this.updateChanges,this)},getConfig:function(t){var e=this.config;return(0,r.isUndefined)(t)?e:e[t]},loadOnStart:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=this.get("StorageManager");this.get("toLoad").forEach(function(t){t.onLoad()});var i=function(){t.get("modules").forEach(function(e){return e.postLoad&&e.postLoad(t)}),e&&e()};n&&n.getConfig().autoload?this.load(i):i()},updateChanges:function(){var t=this.get("StorageManager"),e=this.get("changesCount");this.config.noticeOnUnload&&e?window.onbeforeunload=function(t){return 1}:window.onbeforeunload=null,t.isAutosave()&&e>=t.getStepsBeforeSave()&&this.store()},loadModule:function(t){var e=this.config,n=new t,r=n.name.charAt(0).toLowerCase()+n.name.slice(1),o=e[r]||e[n.name]||{};o.pStylePrefix=e.pStylePrefix||"";var s=this.get("StorageManager");if(n.storageKey&&n.store&&n.load&&s){o.stm=s;var a=this.get("storables");a.push(n),this.set("storables",a)}return o.em=this,n.init(i({},o)),!n.private&&this.set(n.name,n),n.onLoad&&this.get("toLoad").push(n),this.get("modules").push(n),this},init:function(t){this.set("Editor",t)},getEditor:function(){return this.get("Editor")},handleUpdates:function(t,e){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};i.temporary||(a&&clearInterval(a),a=setTimeout(function(){i.avoidStore||n.set("changesCount",n.get("changesCount")+1,i)},0))},componentSelected:function(t,e,n){this.get("selectedComponent")?(this.trigger("select-comp",[t,e,n]),this.trigger("component:selected",arguments)):this.trigger("deselect-comp")},getSelected:function(){return this.get("selectedComponent")},setSelected:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t;t instanceof window.HTMLElement&&(n=l(t).data("model")),n&&!n.get("selectable")||this.set("selectedComponent",n,e)},setComponents:function(t){return this.get("DomComponents").setComponents(t)},getComponents:function(){var t=this.get("DomComponents"),e=this.get("CodeManager");if(t&&e){var n=t.getComponents();return e.getCode(n,"json")}},setStyle:function(t){for(var e=this.get("CssComposer").getAll(),n=0,i=e.length;n"+i+"<\/script>":""},getCss:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.config,n=e.wrappesIsBody,i=t.avoidProtected,r=this.get("CssComposer"),o=this.get("DomComponents").getComponent();return(i?"":e.protectedCss)+this.get("CodeManager").getCode(o,"css",{cssc:r,wrappesIsBody:n})},getJs:function(){var t=this.get("DomComponents").getWrapper();return this.get("CodeManager").getCode(t,"js").trim()},store:function(t){var e=this,n=this.get("StorageManager"),i={};if(n)return this.get("storables").forEach(function(t){var e=t.store(1);for(var n in e)i[n]=e[n]}),n.store(i,function(){t&&t(),e.set("changesCount",0),e.trigger("storage:store",i)}),i},load:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this.getCacheLoad(1,function(n){t.get("storables").forEach(function(t){return t.load(n)}),e&&e(n)})},getCacheLoad:function(t,e){var n=this,i=t?1:0;if(this.cacheLoad&&!i)return this.cacheLoad;var r=this.get("StorageManager"),o=[];if(!r)return{};this.get("storables").forEach(function(t){var e=t.storageKey;e="function"==typeof e?e():e,(e instanceof Array?e:[e]).forEach(function(t){o.push(t)})}),r.load(o,function(t){n.cacheLoad=t,e&&e(t),n.trigger("storage:load",t)})},getDeviceModel:function(){var t=this.get("device");return this.get("DeviceManager").get(t)},runDefault:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.get("Commands").get(this.config.defaultCommand);e&&!this.defaultRunning&&(e.stop(this,this,t),e.run(this,this,t),this.defaultRunning=1)},stopDefault:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.get("Commands").get(this.config.defaultCommand);e&&(e.stop(this,this,t),this.defaultRunning=0)},refreshCanvas:function(){this.set("canvasOffset",this.get("Canvas").getOffset())},clearSelection:function(t){(t||window).getSelection().removeAllRanges()},getCurrentMedia:function(){var t=this.config,e=this.getDeviceModel(),n=t.mediaCondition,i=t.devicePreviewMode,r=e&&e.get("widthMedia");return e&&r&&!i?"("+n+": "+r+")":""},data:function(t,e,n){if(t["_gjs-data"]||(t["_gjs-data"]={}),(0,r.isUndefined)(n))return t["_gjs-data"][e];t["_gjs-data"][e]=n}})},function(t,e,n){"use strict";t.exports=function(){var t=n(66),e=n(67),i=n(68);return{name:"Utils",init:function(){return this},Sorter:t,Resizer:e,Dragger:i}}},function(t,e,n){"use strict";(function(e,i){var r=n(1),o=n(2),s=e.$;t.exports=e.View.extend({initialize:function(t){this.opt=t||{},i.bindAll(this,"startSort","onMove","endMove","rollback","udpateOffset","moveDragHelper");var e=t||{};this.elT=0,this.elL=0,this.borderOffset=e.borderOffset||10;var n=e.container;this.el="string"==typeof n?document.querySelector(n):n,this.$el=s(this.el),this.containerSel=e.containerSel||"div",this.itemSel=e.itemSel||"div",this.draggable=e.draggable||!0,this.nested=e.nested||0,this.pfx=e.pfx||"",this.ppfx=e.ppfx||"",this.freezeClass=e.freezeClass||this.pfx+"freezed",this.onStart=e.onStart||"",this.onEndMove=e.onEndMove||"",this.direction=e.direction||"v",this.onMoveClb=e.onMove||"",this.relative=e.relative||0,this.ignoreViewChildren=e.ignoreViewChildren||0,this.ignoreModels=e.ignoreModels||0,this.plh=e.placer||"",this.wmargin=e.wmargin||0,this.offTop=e.offsetTop||0,this.offLeft=e.offsetLeft||0,this.document=e.document||document,this.$document=s(this.document),this.dropContent=null,this.em=e.em||"",this.dragHelper=null,this.canvasRelative=e.canvasRelative||0,this.selectOnEnd=!e.avoidSelectOnEnd,this.em&&this.em.on&&(this.em.on("change:canvasOffset",this.udpateOffset),this.udpateOffset())},getContainerEl:function(){if(!this.el){var t=this.opt.container;this.el="string"==typeof t?document.querySelector(t):t,this.$el=s(this.el)}return this.el},getDocuments:function(){var t=this.em,e=t&&t.get("Canvas").getBody().ownerDocument,n=[document];return e&&n.push(e),n},udpateOffset:function(){var t=this.em.get("canvasOffset");this.offTop=t.top,this.offLeft=t.left},setDropContent:function(t){this.dropContent=t},toggleSortCursor:function(t){var e=this.em;document.body,this.ppfx||this.pfx,e&&e.get("Canvas").getBody();t?e&&e.get("Canvas").startAutoscroll():e&&e.get("Canvas").stopAutoscroll()},setDragHelper:function(t,e){for(var n=e||"",i=t.cloneNode(1),r=t.getBoundingClientRect(),o=getComputedStyle(t),a="",l=0;ls+c-10||ra+l-10)return 1},getCurrentPos:function(){var t=this.eventMove;return{x:t.pageX||0,y:t.pageY||0}},getDim:function(t){var e,n,i,r;if(this.canvasRelative&&this.em){var o=this.em.get("Canvas").getElementPos(t),s=window.getComputedStyle(t),a=parseFloat(s.marginTop),l=parseFloat(s.marginBottom),c=parseFloat(s.marginRight),u=parseFloat(s.marginLeft);e=o.top-a,n=o.left-u,i=o.height+a+l,r=o.width+u+c}else{var h=this.offset(t);e=this.relative?t.offsetTop:h.top-(this.wmargin?-1:1)*this.elT,n=this.relative?t.offsetLeft:h.left-(this.wmargin?-1:1)*this.elL,i=t.offsetHeight,r=t.offsetWidth}return[e,n,i,r]},getChildrenDim:function(t){var e=[];if(!t)return e;var n=this.getTargetModel(t);n&&n.view&&!this.ignoreViewChildren&&(t=n.view.getChildrenContainer());for(var i=t.children,r=0,o=i.length;rs||s>a+c-r||l+r>o||o>l+u-r)&&(i=1),!!i},findPosition:function(t,e,n){for(var i={index:0,method:"before"},r=0,o=0,s=0,a=0,l=0,c=0,u=0,h=0,d=0,f=t.length;do||a&&c>=a||r&&s0&&void 0!==arguments[0]?arguments[0]:{};return i(this,t),this.setOptions(e),(0,o.bindAll)(this,"handleKeyDown","handleMouseDown","move","stop"),this}return r(t,[{key:"getConfig",value:function(){return this.opts}},{key:"setOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.opts=(0,o.defaults)(t,a),this.setup()}},{key:"setup",value:function(){var t=this.opts,e=t.prefix||"",n=t.appendTo||document.body,i=this.container;for(i||(i=document.createElement("div"),i.className=e+"resizer-c",n.appendChild(i),this.container=i);i.firstChild;)i.removeChild(i.firstChild);var r={};["tl","tc","tr","cl","cr","bl","bc","br"].forEach(function(e){return r[e]=t[e]?l(e,t):""});for(var o in r){var s=r[o];s&&i.appendChild(s)}this.handlers=r,this.mousePosFetcher=t.mousePosFetcher,this.updateTarget=t.updateTarget,this.posFetcher=t.posFetcher,this.onStart=t.onStart,this.onMove=t.onMove,this.onEnd=t.onEnd}},{key:"isHandler",value:function(t){var e=this.handlers;for(var n in e)if(e[n]===t)return!0;return!1}},{key:"getFocusedEl",value:function(){return this.el}},{key:"getDocumentEl",value:function(){return[this.el.ownerDocument,document]}},{key:"getElementPos",value:function(t){var e=this.posFetcher||"";return e?e(t):c(t)}},{key:"focus",value:function(t){if(!t||t!==this.el){this.el=t;var e=this.getElementPos(t),n=this.container,i=n.style;i.left=e.left+"px",i.top=e.top+"px",i.width=e.width+"px",i.height=e.height+"px",n.style.display="block",(0,s.on)(this.getDocumentEl(),"mousedown",this.handleMouseDown)}}},{key:"blur",value:function(){this.container.style.display="none",this.el&&((0,s.off)(this.getDocumentEl(),"mousedown",this.handleMouseDown),this.el=null)}},{key:"start",value:function(t){if(0===t.button){t.preventDefault(),t.stopPropagation();var e=this.el,n=this,i=this.opts||{},r="data-"+i.prefix+"handler",a=this.getElementPos(e);this.handlerAttr=t.target.getAttribute(r),this.clickedHandler=t.target,this.startDim={t:a.top,l:a.left,w:a.width,h:a.height},this.rectDim={t:a.top,l:a.left,w:a.width,h:a.height},this.startPos={x:t.clientX,y:t.clientY};var l=this.getDocumentEl();(0,s.on)(l,"mousemove",this.move),(0,s.on)(l,"keydown",this.handleKeyDown),(0,s.on)(l,"mouseup",this.stop),(0,o.isFunction)(this.onStart)&&this.onStart(t,{docs:l,config:i,el:e,resizer:n}),this.move(t)}}},{key:"move",value:function(t){var e=this.onMove,n=this.mousePosFetcher,i=n?n(t):{x:t.clientX,y:t.clientY};this.currentPos=i,this.delta={x:i.x-this.startPos.x,y:i.y-this.startPos.y},this.keys={shift:t.shiftKey,ctrl:t.ctrlKey,alt:t.altKey},this.rectDim=this.calc(this),this.updateRect(0),e&&e(t),0===t.which&&this.stop(t)}},{key:"stop",value:function(t){var e=this.opts,n=this.getDocumentEl();(0,s.off)(n,"mousemove",this.move),(0,s.off)(n,"keydown",this.handleKeyDown),(0,s.off)(n,"mouseup",this.stop),this.updateRect(1),(0,o.isFunction)(this.onEnd)&&this.onEnd(t,{docs:n,config:e})}},{key:"updateRect",value:function(t){var e=this.el,n=this,i=this.opts,r=this.rectDim,s=this.container.style,a=this.updateTarget,l=this.getSelectedHandler(),c=i.unitHeight,u=i.unitWidth;if((0,o.isFunction)(a))a(e,r,{store:t,selectedHandler:l,resizer:n,config:i});else{var h=e.style;h.width=r.w+u,h.height=r.h+c}var d=this.getElementPos(e);s.left=d.left+"px",s.top=d.top+"px",s.width=d.width+"px",s.height=d.height+"px"}},{key:"getSelectedHandler",value:function(){var t=this.handlers;if(this.selectedHandler)for(var e in t)if(t[e]===this.selectedHandler)return e}},{key:"handleKeyDown",value:function(t){27===t.keyCode&&(this.rectDim=this.startDim,this.stop(t))}},{key:"handleMouseDown",value:function(t){var e=t.target;this.isHandler(e)?(this.selectedHandler=e,this.start(t)):e!==this.el&&(this.selectedHandler="",this.blur())}},{key:"calc",value:function(t){var e=void 0,n=this.opts||{},i=n.step,r=this.startDim,o=n.minDim,a=n.maxDim,l=t.delta.x,c=t.delta.y,u=r.w,h=r.h,d={t:0,l:0,w:u,h:h};if(t){var f=t.handlerAttr;~f.indexOf("r")&&(e=(0,s.normalizeFloat)(u+l*i,i),e=Math.max(o,e),a&&(e=Math.min(a,e)),d.w=e),~f.indexOf("b")&&(e=(0,s.normalizeFloat)(h+c*i,i),e=Math.max(o,e),a&&(e=Math.min(a,e)),d.h=e),~f.indexOf("l")&&(e=(0,s.normalizeFloat)(u-l*i,i),e=Math.max(o,e),a&&(e=Math.min(a,e)),d.w=e),~f.indexOf("t")&&(e=(0,s.normalizeFloat)(h-c*i,i),e=Math.max(o,e),a&&(e=Math.min(a,e)),d.h=e);var p=n.ratioDefault?!t.keys.shift:t.keys.shift;if(f.indexOf("c")<0&&p){var g=r.w/r.h;d.w/d.h>g?d.h=Math.round(d.w/g):d.w=Math.round(d.h*g)}return~f.indexOf("l")&&(d.l=r.w-d.w),~f.indexOf("t")&&(d.t=r.h-d.h),d}}}]),t}();t.exports={init:function(t){return new u(t)}}},function(t,e,n){"use strict";(function(e){var n=e.$,i=function(t,e){var n=e||window,i=t.getBoundingClientRect();return{left:i.left+n.pageXOffset,top:i.top+n.pageYOffset,width:i.width,height:i.height}};t.exports={setKey:function(t,e){},getElementRect:function(t){var e=this.opts.posFetcher||"";return e?e(t,{avoidFrameOffset:1}):i(t)},init:function(t){return this.setOptions(t),this.handleMouseDown=this.handleMouseDown.bind(this),this.drag=this.drag.bind(this),this.move=this.move.bind(this),this.stop=this.stop.bind(this),this.setKey("up, right, down, left",this.handleKey),this},setOptions:function(t){this.opts=t||{}},focus:function(t){if(!t||t!==this.el){this.getDocumentEl(t),this.blur(),this.el=t,this.handlers=this.opts.dragHandlers||[t];var e=this.getElementRect(t);this.elRect=e,this.startTop=e.top,this.startLeft=e.left,this.getDocumentEl().on("mousedown",this.handleMouseDown)}},blur:function(){this.getDocumentEl().off("mousedown",this.handleMouseDown),this.el=null},start:function(t){this.startPos=this.getMousePos(t);var e=this.getDocumentEl();e.on("mousemove",this.drag),e.on("mouseup",this.stop);var n=this.opts.onStart;"function"==typeof n&&n(t,{docs:e,el:this.el,start:this.startPos,elRect:this.elRect}),this.drag(t)},stop:function(t){var e=this.getDocumentEl();e.off("mousemove",this.drag),e.off("mouseup",this.stop),this.lockedAxis=null;var n=this.opts.onEnd;"function"==typeof n&&n(t,{docs:e,delta:this.delta,end:{x:this.startLeft+this.delta.x,y:this.startTop+this.delta.y}})},handleMouseDown:function(t){var e=t.target;this.isHandler(e)&&this.start(t)},isHandler:function(t){var e=this.handlers;for(var n in e)if(e[n]===t)return!0;return!1},handleKey:function(t,e){switch(e.shortcut){case"up":this.move(0,-1);break;case"right":this.move(1,0);break;case"down":this.move(0,1);break;case"left":this.move(-1,0)}},getDocumentEl:function(t){var t=t||this.el;if(!this.$doc){var e=[document];t&&e.push(t.ownerDocument),this.$doc=n(e)}return this.$doc},getMousePos:function(t){var e=this.opts.mousePosFetcher;return e?e(t):{x:t.clientX,y:t.clientY}},drag:function(t){var e=this.lockedAxis,n=this.getMousePos(t),i={x:n.x-this.startPos.x,y:n.y-this.startPos.y};if(t.shiftKey){if(!e){var r=i.x,o=i.y,s=Math.abs(r),a=Math.abs(o);o>=s||o<=-s?e="x":(r>a||r<-a)&&(e="y")}}else e=null;"x"===e&&(i.x=this.startPos.x),"y"===e&&(i.y=this.startPos.y),this.lockedAxis=e,this.delta=i,this.move(i.x,i.y);var l=this.opts.onDrag;"function"==typeof l&&l(t,{delta:i,current:{x:this.startLeft+i.x,y:this.startTop+i.y},lockedAxis:e}),0===t.which&&this.stop(t)},move:function(t,e){this.moveX(t),this.moveY(e)},moveX:function(t){var e=this.el,n=(this.opts,this.startLeft+t),i=this.opts.setX;"function"==typeof i?i(n,{el:e,start:this.startLeft,delta:t}):e.style.left=n+"px"},moveY:function(t){var e=this.el,n=(this.opts,this.startTop+t),i=this.opts.setY;"function"==typeof i?i(n,{el:e,start:this.startTop,delta:t}):e.style.top=n+"px"}}}).call(e,n(0))},function(t,e,n){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r=Object.assign||function(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return e=r({},a,n),t=e.em,this.em=t,this},onLoad:function(){var t=e.defaults;for(var n in t){var i=t[n];this.add(n,i.keys,i.handler)}},add:function(t,e,r){var a=this.em,l=a.get("Commands"),c=a.getEditor(),u={id:t,keys:e,handler:r};return n[t]&&this.remove(t),n[t]=u,s(e,function(e,n){r=(0,o.isString)(r)?l.get(r):r,"object"==(void 0===r?"undefined":i(r))?r.run(c):r(c);var s=[t,n.shortcut,e];a.trigger.apply(a,["keymap:emit"].concat(s)),a.trigger.apply(a,["keymap:emit:"+t].concat(s))}),a.trigger("keymap:add",u),u},get:function(t){return n[t]},getAll:function(){return n},remove:function(t){var e=this.em,i=this.get(t);if(i)return delete n[t],s.unbind(i.keys),e&&e.trigger("keymap:remove",i),i}}}},function(t,e,n){"use strict";var i=Object.assign||function(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};n=i({},a,s),t=n.em,this.em=t,e=new o.default({track:!0,register:[]}),e.changeUndoType("change",{condition:!1});var l={on:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!r&&(r=t.previousAttributes()),!n.avoidStore){var i={object:t,before:r,after:t.toJSON()};return r=null,i}},undo:function(t,e,n,i){t.set(e)},redo:function(t,e,n,i){t.set(n)}};return["style","attributes","content","src"].forEach(function(t){return e.addUndoType("change:"+t,l)}),e.on("undo redo",function(){return t.trigger("change:selectedComponent change:canvasOffset")}),["undo","redo"].forEach(function(n){return e.on(n,function(){return t.trigger(n)})}),this},getConfig:function(){return n},add:function(t){return e.register(t),this},remove:function(t){return e.unregister(t),this},removeAll:function(){return e.unregisterAll(),this},start:function(){return e.startTracking(),this},stop:function(){return e.stopTracking(),this},undo:function(){return t.get("Canvas").isInputFocused()||e.undo(1),this},undoAll:function(){return e.undoAll(),this},redo:function(){return t.get("Canvas").isInputFocused()||e.redo(1),this},redoAll:function(){return e.redoAll(),this},hasUndo:function(){return e.isAvailable("undo")},hasRedo:function(){return e.isAvailable("redo")},getStack:function(){return e.stack},clear:function(){return e.clear(),this},getInstance:function(){return e}}}},function(t,e,n){var i,r,o;/*! +/*! grapesjs - 0.13.5 */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.grapesjs=e():t.grapesjs=e()}(this,function(){return function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=58)}([function(t,e,n){(function(i){var r,o;!function(s){var a="object"==typeof self&&self.self===self&&self||"object"==typeof i&&i.global===i&&i;r=[n(1),n(9),e],void 0!==(o=function(t,e,n){a.Backbone=s(a,n,t,e)}.apply(e,r))&&(t.exports=o)}(function(t,e,n,i){var r=t.Backbone,o=Array.prototype.slice;e.VERSION="1.3.3",e.$=i,e.noConflict=function(){return t.Backbone=r,this},e.emulateHTTP=!1,e.emulateJSON=!1;var s=function(t,e,i){switch(t){case 1:return function(){return n[e](this[i])};case 2:return function(t){return n[e](this[i],t)};case 3:return function(t,r){return n[e](this[i],l(t,this),r)};case 4:return function(t,r,o){return n[e](this[i],l(t,this),r,o)};default:return function(){var t=o.call(arguments);return t.unshift(this[i]),n[e].apply(n,t)}}},a=function(t,e,i){n.each(e,function(e,r){n[r]&&(t.prototype[r]=s(e,r,i))})},l=function(t,e){return n.isFunction(t)?t:n.isObject(t)&&!e._isModel(t)?c(t):n.isString(t)?function(e){return e.get(t)}:t},c=function(t){var e=n.matches(t);return function(t){return e(t.attributes)}},u=e.Events={},h=/\s+/,d=function(t,e,i,r,o){var s,a=0;if(i&&"object"==typeof i){void 0!==r&&"context"in o&&void 0===o.context&&(o.context=r);for(s=n.keys(i);athis.length&&(r=this.length),r<0&&(r+=this.length+1);var o,s,a=[],l=[],c=[],u=[],h={},d=e.add,f=e.merge,p=e.remove,g=!1,v=this.comparator&&null==r&&!1!==e.sort,m=n.isString(this.comparator)?this.comparator:null;for(s=0;s7),this._useHashChange=this._wantsHashChange&&this._hasHashChange,this._wantsPushState=!!this.options.pushState,this._hasPushState=!(!this.history||!this.history.pushState),this._usePushState=this._wantsPushState&&this._hasPushState,this.fragment=this.getFragment(),this.root=("/"+this.root+"/").replace(_,"/"),this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot()){var e=this.root.slice(0,-1)||"/";return this.location.replace(e+"#"+this.getPath()),!0}this._hasPushState&&this.atRoot()&&this.navigate(this.getHash(),{replace:!0})}if(!this._hasHashChange&&this._wantsHashChange&&!this._usePushState){this.iframe=document.createElement("iframe"),this.iframe.src="javascript:0",this.iframe.style.display="none",this.iframe.tabIndex=-1;var i=document.body,r=i.insertBefore(this.iframe,i.firstChild).contentWindow;r.document.open(),r.document.close(),r.location.hash="#"+this.fragment}var o=window.addEventListener||function(t,e){return attachEvent("on"+t,e)};if(this._usePushState?o("popstate",this.checkUrl,!1):this._useHashChange&&!this.iframe?o("hashchange",this.checkUrl,!1):this._wantsHashChange&&(this._checkUrlInterval=setInterval(this.checkUrl,this.interval)),!this.options.silent)return this.loadUrl()},stop:function(){var t=window.removeEventListener||function(t,e){return detachEvent("on"+t,e)};this._usePushState?t("popstate",this.checkUrl,!1):this._useHashChange&&!this.iframe&&t("hashchange",this.checkUrl,!1),this.iframe&&(document.body.removeChild(this.iframe),this.iframe=null),this._checkUrlInterval&&clearInterval(this._checkUrlInterval),D.started=!1},route:function(t,e){this.handlers.unshift({route:t,callback:e})},checkUrl:function(t){var e=this.getFragment();if(e===this.fragment&&this.iframe&&(e=this.getHash(this.iframe.contentWindow)),e===this.fragment)return!1;this.iframe&&this.navigate(e),this.loadUrl()},loadUrl:function(t){return!!this.matchRoot()&&(t=this.fragment=this.getFragment(t),n.some(this.handlers,function(e){if(e.route.test(t))return e.callback(t),!0}))},navigate:function(t,e){if(!D.started)return!1;e&&!0!==e||(e={trigger:!!e}),t=this.getFragment(t||"");var n=this.root;""!==t&&"?"!==t.charAt(0)||(n=n.slice(0,-1)||"/");var i=n+t;if(t=this.decodeFragment(t.replace(F,"")),this.fragment!==t){if(this.fragment=t,this._usePushState)this.history[e.replace?"replaceState":"pushState"]({},document.title,i);else{if(!this._wantsHashChange)return this.location.assign(i);if(this._updateHash(this.location,t,e.replace),this.iframe&&t!==this.getHash(this.iframe.contentWindow)){var r=this.iframe.contentWindow;e.replace||(r.document.open(),r.document.close()),this._updateHash(r.location,t,e.replace)}}return e.trigger?this.loadUrl(t):void 0}},_updateHash:function(t,e,n){if(n){var i=t.href.replace(/(javascript:|#).*$/,"");t.replace(i+"#"+e)}else t.hash="#"+e}}),e.history=new D;var z=function(t,e){var i,r=this;return i=t&&n.has(t,"constructor")?t.constructor:function(){return r.apply(this,arguments)},n.extend(i,r,e),i.prototype=n.create(r.prototype,t),i.prototype.constructor=i,i.__super__=r.prototype,i};b.extend=x.extend=P.extend=S.extend=D.extend=z;var $=function(){throw new Error('A "url" property or function must be specified')},R=function(t,e){var n=e.error;e.error=function(i){n&&n.call(e.context,t,i,e),t.trigger("error",t,i,e)}};return e})}).call(e,n(16))},function(t,e,n){var i,r;(function(){function n(t){function e(e,n,i,r,o,s){for(;o>=0&&o0?0:a-1;return arguments.length<3&&(r=n[s?s[l]:l],l+=t),e(n,i,r,s,l,a)}}function o(t){return function(e,n,i){n=S(n,i);for(var r=A(e),o=t>0?0:r-1;o>=0&&o0?s=o>=0?o:Math.max(o+a,s):a=o>=0?Math.min(o+1,a):o+a+1;else if(n&&o&&a)return o=n(i,r),i[o]===r?o:-1;if(r!==r)return o=e(p.call(i,s,a),C.isNaN),o>=0?o+s:-1;for(o=t>0?s:a-1;o>=0&&o=0&&e<=P};C.each=C.forEach=function(t,e,n){e=k(e,n);var i,r;if(O(t))for(i=0,r=t.length;i=0},C.invoke=function(t,e){var n=p.call(arguments,2),i=C.isFunction(e);return C.map(t,function(t){var r=i?e:t[e];return null==r?r:r.apply(t,n)})},C.pluck=function(t,e){return C.map(t,C.property(e))},C.where=function(t,e){return C.filter(t,C.matcher(e))},C.findWhere=function(t,e){return C.find(t,C.matcher(e))},C.max=function(t,e,n){var i,r,o=-1/0,s=-1/0;if(null==e&&null!=t){t=O(t)?t:C.values(t);for(var a=0,l=t.length;ao&&(o=i)}else e=S(e,n),C.each(t,function(t,n,i){((r=e(t,n,i))>s||r===-1/0&&o===-1/0)&&(o=t,s=r)});return o},C.min=function(t,e,n){var i,r,o=1/0,s=1/0;if(null==e&&null!=t){t=O(t)?t:C.values(t);for(var a=0,l=t.length;ai||void 0===n)return 1;if(ne?(s&&(clearTimeout(s),s=null),a=c,o=t.apply(i,r),s||(i=r=null)):s||!1===n.trailing||(s=setTimeout(l,u)),o}},C.debounce=function(t,e,n){var i,r,o,s,a,l=function(){var c=C.now()-s;c=0?i=setTimeout(l,e-c):(i=null,n||(a=t.apply(o,r),i||(o=r=null)))};return function(){o=this,r=arguments,s=C.now();var c=n&&!i;return i||(i=setTimeout(l,e)),c&&(a=t.apply(o,r),o=r=null),a}},C.wrap=function(t,e){return C.partial(e,t)},C.negate=function(t){return function(){return!t.apply(this,arguments)}},C.compose=function(){var t=arguments,e=t.length-1;return function(){for(var n=e,i=t[e].apply(this,arguments);n--;)i=t[n].call(this,i);return i}},C.after=function(t,e){return function(){if(--t<1)return e.apply(this,arguments)}},C.before=function(t,e){var n;return function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=null),n}},C.once=C.partial(C.before,2);var I=!{toString:null}.propertyIsEnumerable("toString"),_=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];C.keys=function(t){if(!C.isObject(t))return[];if(y)return y(t);var e=[];for(var n in t)C.has(t,n)&&e.push(n);return I&&a(t,e),e},C.allKeys=function(t){if(!C.isObject(t))return[];var e=[];for(var n in t)e.push(n);return I&&a(t,e),e},C.values=function(t){for(var e=C.keys(t),n=e.length,i=Array(n),r=0;r":">",'"':""","'":"'","`":"`"},$=C.invert(z),R=function(t){var e=function(e){return t[e]},n="(?:"+C.keys(t).join("|")+")",i=RegExp(n),r=RegExp(n,"g");return function(t){return t=null==t?"":""+t,i.test(t)?t.replace(r,e):t}};C.escape=R(z),C.unescape=R($),C.result=function(t,e,n){var i=null==t?void 0:t[e];return void 0===i&&(i=n),C.isFunction(i)?i.call(t):i};var V=0;C.uniqueId=function(t){var e=++V+"";return t?t+e:e},C.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var H=/(.)^/,j={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},B=/\\|'|\r|\n|\u2028|\u2029/g,W=function(t){return"\\"+j[t]};C.template=function(t,e,n){!e&&n&&(e=n),e=C.defaults({},e,C.templateSettings);var i=RegExp([(e.escape||H).source,(e.interpolate||H).source,(e.evaluate||H).source].join("|")+"|$","g"),r=0,o="__p+='";t.replace(i,function(e,n,i,s,a){return o+=t.slice(r,a).replace(B,W),r=a+e.length,n?o+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":i?o+="'+\n((__t=("+i+"))==null?'':__t)+\n'":s&&(o+="';\n"+s+"\n__p+='"),e}),o+="';\n",e.variable||(o="with(obj||{}){\n"+o+"}\n"),o="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+o+"return __p;\n";try{var s=new Function(e.variable||"obj","_",o)}catch(t){throw t.source=o,t}var a=function(t){return s.call(this,t,C)};return a.source="function("+(e.variable||"obj")+"){\n"+o+"}",a},C.chain=function(t){var e=C(t);return e._chain=!0,e};var U=function(t,e){return t._chain?C(e).chain():e};C.mixin=function(t){C.each(C.functions(t),function(e){var n=C[e]=t[e];C.prototype[e]=function(){var t=[this._wrapped];return f.apply(t,arguments),U(this,n.apply(C,t))}})},C.mixin(C),C.each(["pop","push","reverse","shift","sort","splice","unshift"],function(t){var e=u[t];C.prototype[t]=function(){var n=this._wrapped;return e.apply(n,arguments),"shift"!==t&&"splice"!==t||0!==n.length||delete n[0],U(this,n)}}),C.each(["concat","join","slice"],function(t){var e=u[t];C.prototype[t]=function(){return U(this,e.apply(this._wrapped,arguments))}}),C.prototype.value=function(){return this._wrapped},C.prototype.valueOf=C.prototype.toJSON=C.prototype.value,C.prototype.toString=function(){return""+this._wrapped},i=[],void 0!==(r=function(){return C}.apply(e,i))&&(t.exports=r)}).call(this)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getUnitFromValue=e.normalizeFloat=e.shallowDiff=e.camelCase=e.matches=e.upFirst=e.hasDnd=e.off=e.on=void 0;var i=n(1),r=window.Element.prototype,o=r.matches||r.webkitMatchesSelector||r.mozMatchesSelector||r.msMatchesSelector,s=function(t,e){var n={},r=(0,i.keys)(e);for(var o in t)if(t.hasOwnProperty(o)){var s=t[o],a=e[o];r.indexOf(o)>=0?s!==a&&(n[o]=a):n[o]=null}for(var l in e)e.hasOwnProperty(l)&&(0,i.isUndefined)(t[l])&&(n[l]=e[l]);return n},a=function(t,e,n){e=e.split(/\s+/),t=t instanceof Array?t:[t];for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=0;if(isNaN(t))return n;if(t=parseFloat(t),Math.floor(t)!==t){var r=e.toString().split(".")[1];i=r?r.length:0}return i?parseFloat(t.toFixed(i)):t},f=function(t){return"draggable"in document.createElement("i")&&(t?t.get("Config").nativeDnD:1)};e.on=a,e.off=l,e.hasDnd=f,e.upFirst=u,e.matches=o,e.camelCase=h,e.shallowDiff=s,e.normalizeFloat=d,e.getUnitFromValue=c},function(t,e,n){"use strict";(function(e){var i=n(1),r=n(50);t.exports=e.View.extend({className:function(){return this.getClasses()},tagName:function(){return this.model.get("tagName")},initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.model,n=t.config||{};this.opts=t,this.config=n,this.em=n.em||"",this.pfx=n.stylePrefix||"",this.ppfx=n.pStylePrefix||"",this.attr=e.get("attributes"),this.classe=this.attr.class||[];var i=this.$el,r=e.get("classes");this.listenTo(e,"destroy remove",this.remove),this.listenTo(e,"change:style",this.updateStyle),this.listenTo(e,"change:attributes",this.updateAttributes),this.listenTo(e,"change:highlightable",this.updateHighlight),this.listenTo(e,"change:status",this.updateStatus),this.listenTo(e,"change:state",this.updateState),this.listenTo(e,"change:script",this.render),this.listenTo(e,"change",this.handleChange),this.listenTo(r,"add remove change",this.updateClasses),i.data("model",e),i.data("collection",e.get("components")),e.view=this,r.length&&this.importClasses(),this.init()},remove:function(){e.View.prototype.remove.apply(this);var t=this.childrenView;t&&t.stopListening()},init:function(){},handleChange:function(){var t=this.model;t.emitUpdate();for(var e in t.changed)t.emitUpdate(e)},importClasses:function(){var t=this.config.em.get("SelectorManager");t&&this.model.get("classes").each(function(e){t.add(e.get("name"))})},updateState:function(t){var e="hc-state";this.model.get("state")?this.$el.addClass(e):this.$el.removeClass(e)},updateStatus:function(t){var e=this.el,n=this.model.get("status"),i=this.pfx,r=this.ppfx,o=i+"selected",s=o+"-parent",a=r+"freezed",l=e.getAttribute("class")||"",c="";switch(n){case"selected":c=l+" "+o;break;case"selected-parent":c=l+" "+s;break;case"freezed":c=l+" "+a;break;default:this.$el.removeClass(o+" "+s+" "+a)}(c=c.trim())&&e.setAttribute("class",c)},updateHighlight:function(){var t=this.model.get("highlightable");this.setAttribute("data-highlightable",t?1:"")},updateStyle:function(){var t=this.em,e=this.model;t&&t.get("avoidInlineStyle")?(this.el.id=e.getId(),e.setStyle(e.getStyle())):this.setAttribute("style",e.styleToString())},updateClasses:function(){var t=this.model.get("classes").pluck("name").join(" ");this.setAttribute("class",t),this.updateStatus()},setAttribute:function(t,e){var n=this.$el;e?n.attr(t,e):n.removeAttr(t)},getClasses:function(){var t=this.model.get("attributes"),e=t.class||[];return e=(0,i.isArray)(e)?e:[e],e.length?e.join(" "):null},updateAttributes:function(){var t=this.model,e={},n=t.get("attributes"),i=t.get("src");for(var r in n)e[r]=n[r];i&&(e.src=i),this.$el.attr(e),this.updateHighlight(),this.updateStyle()},updateContent:function(){this.getChildrenContainer().innerHTML=this.model.get("content")},prevDef:function(t){t.preventDefault()},updateScript:function(){if(this.model.get("script")){var t=this.em;if(t){t.get("Canvas").getCanvasView().updateScript(this)}}},getChildrenContainer:function(){var t=this.el;return"function"==typeof this.getChildrenSelector?t=this.el.querySelector(this.getChildrenSelector()):this.getTemplate,t},renderChildren:function(){var t=this.getChildrenContainer(),e=new r({collection:this.model.get("components"),config:this.config,componentTypes:this.opts.componentTypes});e.render(t),this.childrenView=e;for(var n=Array.prototype.slice.call(e.el.childNodes),i=0,o=n.length;i0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=n.sm||n.em||"",s=this.parent(),a=s&&s.attributes;if(a&&a.propagate){var l={},c=a.propagate;c.forEach(function(t){return l[t]=s.get(t)}),l.propagate=c,l=i({},l,e),this.set(l)}var u=this.get("propagate");u&&this.set("propagate",(0,r.isArray)(u)?u:[u]),n&&n.config&&n.config.voidElements.indexOf(this.get("tagName"))>=0&&this.set("void",!0),n.em=o,this.opt=n,this.sm=o,this.em=o,this.config=n.config||{},this.ccid=v.createId(this),this.set("attributes",this.get("attributes")||{}),this.on("destroy",this.handleRemove),this.listenTo(this,"change:script",this.scriptUpdated),this.listenTo(this,"change:traits",this.traitsUpdated),this.listenTo(this,"change:tagName",this.tagUpdated),this.listenTo(this,"change:attributes",this.attrUpdated),this.initClasses(),this.loadTraits(),this.initComponents(),this.initToolbar(),this.set("status",""),this.listenTo(this.get("classes"),"add remove change",function(){return t.emitUpdate("classes")}),this.init()},handleRemove:function(t){var e=this.em;e&&e.trigger("component:remove",t)},is:function(t){return!(this.get("type")!=t)},find:function(t){var e=[];return this.view.$el.find(t).each(function(t,n,i){var r=i.eq(n),o=r.data("model");o&&e.push(o)}),e},tagUpdated:function(){var t=this.collection,e=t.indexOf(this);t.remove(this),t.add(this,{at:e})},attrUpdated:function(){var t=this,e=i({},this.previous("attributes")),n=i({},this.get("attributes")),s=(0,o.shallowDiff)(e,n);(0,r.keys)(s).forEach(function(e){return t.trigger("change:attributes:"+e)})},setAttributes:function(t){t=i({},t);var e=t.class;e&&this.setClass(e),delete t.class;var n=t.style;n&&this.setStyle(n),delete t.style,this.set("attributes",t)},getStyle:function(){var t=this.em;if(t&&t.getConfig("avoidInlineStyle")){var e=this.get("state"),n=t.get("CssComposer"),i=n.getIdRule(this.getId(),{state:e});if(this.rule=i,i)return i.getStyle()}return a.default.getStyle.call(this)},setStyle:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=this.em;if(s&&s.getConfig("avoidInlineStyle")){e=(0,r.isString)(e)?this.parseStyle(e):e;var l=this.get("state"),c=s.get("CssComposer"),u=this.getStyle();this.rule=c.setIdRule(this.getId(),e,i({},n,{state:l}));var h=(0,o.shallowDiff)(u,e);(0,r.keys)(h).forEach(function(e){return t.trigger("change:style:"+e)})}else e=a.default.setStyle.apply(this,arguments);return e},getAttributes:function(){var t=[],e=i({},this.get("attributes"));return this.get("classes").each(function(e){return t.push(e.get("name"))}),t.length&&(e.class=t.join(" ")),(0,r.isEmpty)(this.getStyle())||(0,r.has)(e,"id")||(e.id=this.getId()),e},addClass:function(t){var e=this.em.get("SelectorManager").addClass(t);return this.get("classes").add(e)},setClass:function(t){return this.get("classes").reset(),this.addClass(t)},removeClass:function(t){var e=[];t=(0,r.isArray)(t)?t:[t];var n=this.get("classes"),i=u.TYPE_CLASS;return t.forEach(function(t){t.split(" ").forEach(function(t){var r=n.where({name:t,type:i})[0];r&&e.push(n.remove(r))})}),e},initClasses:function(){var t=this.normalizeClasses(this.get("classes")||[]);return this.set("classes",new h(t)),this},initComponents:function(){var t=new c(null,this.opt);return t.parent=this,!this.opt.avoidChildren&&t.reset(this.get("components")),this.set("components",t),this},init:function(){},append:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.components().add(t,e);return(0,r.isArray)(n)?n:[n]},components:function(t){var e=this.get("components");if((0,r.isUndefined)(t))return e;e.reset(),t&&this.append(t)},parent:function(){var t=this.collection;return t&&t.parent},scriptUpdated:function(){this.set("scriptUpdated",1)},traitsUpdated:function(){var t=0,e=i({},this.get("attributes")),n=this.get("traits");if(!(n instanceof d))return void this.loadTraits();n.each(function(n){if(t=1,!n.get("changeProp")){var i=n.getInitValue();i&&(e[n.get("name")]=i)}}),t&&this.set("attributes",e)},initToolbar:function(){var t=this;if(!t.get("toolbar")){var e=[];t.collection&&e.push({attributes:{class:"fa fa-arrow-up"},command:"select-parent"}),t.get("draggable")&&e.push({attributes:{class:"fa fa-arrows",draggable:!0},command:"tlb-move"}),t.get("copyable")&&e.push({attributes:{class:"fa fa-clone"},command:"tlb-clone"}),t.get("removable")&&e.push({attributes:{class:"fa fa-trash-o"},command:"tlb-delete"}),t.set("toolbar",e)}},loadTraits:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=new d([],this.opt);return n.setTarget(this),t=t||this.get("traits"),t.length&&n.add(t),this.set("traits",n,e),this},normalizeClasses:function(t){var e=[];if(this.sm.get){var n=this.sm.get("SelectorManager");if(n)return t.forEach(function(t){var i="";i="string"==typeof t?t:t.name;var r=n.add(i);e.push(r)}),e}},clone:function(t){var e=this.em,n=this.getStyle(),o=i({},this.attributes);return o.attributes=i({},o.attributes),delete o.attributes.id,o.components=[],o.classes=[],o.traits=[],this.get("components").each(function(t,e){o.components[e]=t.clone(1)}),this.get("traits").each(function(t,e){o.traits[e]=t.clone()}),this.get("classes").each(function(t,e){o.classes[e]=t.get("name")}),o.status="",o.view="",t&&(this.opt.collection=null),e&&e.getConfig("avoidInlineStyle")&&!(0,r.isEmpty)(n)&&(o.style=n),new this.constructor(o,this.opt)},getName:function(){var t=this.get("name")||this.get("custom-name"),e=this.get("tagName");e="div"==e?"box":e;var n=this.get("type")||e;return n=n.charAt(0).toUpperCase()+n.slice(1),t||n},getIcon:function(){var t=this.get("icon");return t?t+" ":""},toHTML:function(t){var e=this,n=[],i=e.get("tagName"),o=e.get("void"),s=this.getAttrToHTML();for(var a in s){var l=s[a];(0,r.isUndefined)(l)||n.push(a+'="'+l+'"')}var c=n.length?" "+n.join(" "):"",u="<"+i+c+(o?"/":"")+">"+e.get("content");return e.get("components").each(function(t){return u+=t.toHTML()}),!o&&(u+=""),u},getAttrToHTML:function(){var t=this.getAttributes();return delete t.style,t},toJSON:function(){for(var t=arguments.length,e=Array(t),n=0;n\n '+this.templateLabel(t)+'\n \n
\n '+this.templateInput(t)+"\n
\n "},templateLabel:function(t){var e=this.pfx;return'\n \n '+t.get("name")+'\n \n \n '},templateInput:function(t){return'\n
\n \n
\n '},events:function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}({change:"inputValueChanged"},"click [data-clear-style]","clear"),initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,i.bindAll)(this,"targetUpdated"),this.config=t.config||{};var e=this.config.em;this.em=e,this.pfx=this.config.stylePrefix||"",this.ppfx=this.config.pStylePrefix||"",this.target=t.target||{},this.propTarget=t.propTarget||{},this.onChange=t.onChange,this.onInputRender=t.onInputRender||{},this.customValue=t.customValue||{};var n=this.model;this.property=n.get("property"),this.input=null;var r=this.pfx;this.inputHolderId="#"+r+"input-holder",this.sector=n.collection&&n.collection.sector,n.view=this,n.get("value")||n.set("value",n.getDefaultValue()),e&&e.on("update:component:style:"+this.property,this.targetUpdated),this.listenTo(this.propTarget,"update",this.targetUpdated),this.listenTo(n,"destroy remove",this.remove),this.listenTo(n,"change:value",this.modelValueChanged),this.listenTo(n,"targetUpdated",this.targetUpdated),this.listenTo(n,"change:visible",this.updateVisibility),this.listenTo(n,"change:status",this.updateStatus);var o=this.init&&this.init.bind(this);o&&o()},updateStatus:function(){var t=this.model.get("status"),e=this.pfx,n=this.ppfx,i=this.config,r=n+"four-color",o=n+"color-warn",s=this.$el.children("."+e+"label"),a=this.getClearEl().style;switch(s.removeClass(r+" "+o),a.display="none",t){case"updated":s.addClass(r),i.clearProperties&&(a.display="inline");break;case"computed":s.addClass(o)}},clear:function(){this.getTargetModel().removeStyle(this.model.get("property")),this.targetUpdated()},getClearEl:function(){return this.el.querySelector("[data-clear-style]")},getTarget:function(){return this.getTargetModel()},getTargetModel:function(){return this.propTarget&&this.propTarget.model},getHelperModel:function(){return this.propTarget&&this.propTarget.helper},inputValueChanged:function(t){t&&t.stopPropagation(),this.model.setValue(this.getInputValue(),1,{fromInput:1}),this.elementUpdated()},elementUpdated:function(){this.setStatus("updated")},setStatus:function(t){this.model.set("status",t);var e=this.model.parent;e&&e.set("status",t)},targetUpdated:function(){if(this.checkVisibility()){var t=this.config,e=t.em,n=this.model,i="",r="",o=this.getTargetValue({ignoreDefault:1}),s=n.getDefaultValue(),a=this.getComputedValue();o?(i=o,t.highlightChanged&&(r="updated")):a&&t.showComputed&&a!=s?(i=a,t.highlightComputed&&(r="computed")):(i=s,r=""),n.setValue(i,0,{fromTarget:1}),this.setStatus(r),e&&(e.trigger("styleManager:change",this),e.trigger("styleManager:change:"+n.get("property"),this))}},checkVisibility:function(){var t=1;return this.config.hideNotStylable&&(this.isTargetStylable()&&this.isComponentStylable()?this.show():(this.hide(),t=0),this.sector&&this.sector.trigger("updateVisibility")),t},getTargetValue:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.model,i=this.getTargetModel(),r=this.customValue;if(!i)return t;if(t=i.getStyle()[n.get("property")],t||e.ignoreDefault||(t=n.getDefaultValue()),"function"==typeof r&&!e.ignoreCustomValue){var o=n.collection.indexOf(n),s=r(this,o);s&&(t=s)}return t},getComputedValue:function(){var t=this.propTarget,e=t.computed||{},n=t.computedDefault||{},i=this.config.avoidComputed||[],o=this.model.get("property"),s=i.indexOf(o)<0,a=e[o],l=n[(0,r.camelCase)(o)];return e&&s&&l!==a&&a},getInputValue:function(){var t=this.getInputEl();return t?t.value:""},modelValueChanged:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this.config.em,r=this.model,o=r.getFullValue(),s=this.getTarget(),a=this.onChange;n.fromInput||this.setValue(o),s&&this.isTargetStylable()&&this.isComponentStylable()&&(n.fromTarget||(a&&!n.fromParent?a(s,this,n):this.updateTargetStyle(o,null,n)),i&&(i.trigger("component:update",s),i.trigger("component:styleUpdate",s),i.trigger("component:styleUpdate:"+r.get("property"),s)))},updateTargetStyle:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=e||this.model.get("property"),r=this.getTarget(),o=r.getStyle();t?o[i]=t:delete o[i],r.setStyle(o,n);var s=this.getHelperModel();s&&s.setStyle(o,n)},isTargetStylable:function(t){this.model.get("id");var e=t||this.getTarget(),n=this.model,r=n.get("property"),o=n.get("toRequire"),s=e.get("unstylable"),a=e.get("stylable-require"),l=e.get("stylable");return(0,i.isArray)(l)&&(l=l.indexOf(r)>=0),(0,i.isArray)(s)&&(l=s.indexOf(r)<0),o&&(l=a&&a.indexOf(r)>=0||!t),l},isComponentStylable:function(){var t=this.em,e=t&&t.get("selectedComponent");return!e||this.isTargetStylable(e)},setRawValue:function(t){this.setValue(this.model.parseValue(t))},setValue:function(t){var e=this.model,n=t||e.getDefaultValue(),i=this.getInputEl();i&&(i.value=n)},getInputEl:function(){return this.input||(this.input=this.el.querySelector("input")),this.input},updateVisibility:function(){this.el.style.display=this.model.get("visible")?"block":"none"},show:function(){this.model.set("visible",1)},hide:function(){this.model.set("visible",0)},cleanValue:function(){this.setValue("")},render:function(){var t=this.pfx,e=this.model,n=this.el;n.innerHTML=this.template(e),n.className=t+"property "+t+e.get("type"),this.updateStatus();var i=this.onRender&&this.onRender.bind(this);i&&i(),this.setValue(e.get("value"),{targetUpdate:1})}})}).call(e,n(0))},function(t,e,n){!function(e,n){t.exports=n()}(0,function(){"use strict";function t(t){return new RegExp("(^|\\s)"+t+"(?:$|\\s)\\s*")}function e(t){for(var e=t.childNodes.length;e>0;--e)t.removeChild(t.firstChild);return t}function n(t,n){return e(t).appendChild(n)}function i(t,e,n,i){var r=document.createElement(t);if(n&&(r.className=n),i&&(r.style.cssText=i),"string"==typeof e)r.appendChild(document.createTextNode(e));else if(e)for(var o=0;o=e)return s+(e-o);s+=a-o,s+=n-s%n,o=a+1}}function d(t,e){for(var n=0;n=e)return i+Math.min(s,e-r);if(r+=o-i,r+=n-r%n,i=o+1,r>=e)return i}}function p(t){for(;qs.length<=t;)qs.push(g(qs)+" ");return qs[t]}function g(t){return t[t.length-1]}function v(t,e){for(var n=[],i=0;i"€"&&(t.toUpperCase()!=t.toLowerCase()||Ks.test(t))}function w(t,e){return e?!!(e.source.indexOf("\\w")>-1&&x(t))||e.test(t):x(t)}function C(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e])return!1;return!0}function k(t){return t.charCodeAt(0)>=768&&Gs.test(t)}function S(t,e,n){for(;(n<0?e>0:en?-1:1;;){if(e==n)return e;var r=(e+n)/2,o=i<0?Math.ceil(r):Math.floor(r);if(o==e)return t(o)?e:n;t(o)?n=o:e=o+i}}function E(t,e,n){var o=this;this.input=n,o.scrollbarFiller=i("div",null,"CodeMirror-scrollbar-filler"),o.scrollbarFiller.setAttribute("cm-not-content","true"),o.gutterFiller=i("div",null,"CodeMirror-gutter-filler"),o.gutterFiller.setAttribute("cm-not-content","true"),o.lineDiv=r("div",null,"CodeMirror-code"),o.selectionDiv=i("div",null,null,"position: relative; z-index: 1"),o.cursorDiv=i("div",null,"CodeMirror-cursors"),o.measure=i("div",null,"CodeMirror-measure"),o.lineMeasure=i("div",null,"CodeMirror-measure"),o.lineSpace=r("div",[o.measure,o.lineMeasure,o.selectionDiv,o.cursorDiv,o.lineDiv],null,"position: relative; outline: none");var s=r("div",[o.lineSpace],"CodeMirror-lines");o.mover=i("div",[s],null,"position: relative"),o.sizer=i("div",[o.mover],"CodeMirror-sizer"),o.sizerWidth=null,o.heightForcer=i("div",null,null,"position: absolute; height: "+Hs+"px; width: 1px;"),o.gutters=i("div",null,"CodeMirror-gutters"),o.lineGutter=null,o.scroller=i("div",[o.sizer,o.heightForcer,o.gutters],"CodeMirror-scroll"),o.scroller.setAttribute("tabIndex","-1"),o.wrapper=i("div",[o.scrollbarFiller,o.gutterFiller,o.scroller],"CodeMirror"),ms&&ys<8&&(o.gutters.style.zIndex=-1,o.scroller.style.paddingRight=0),bs||fs&&Ps||(o.scroller.draggable=!0),t&&(t.appendChild?t.appendChild(o.wrapper):t(o.wrapper)),o.viewFrom=o.viewTo=e.first,o.reportedViewFrom=o.reportedViewTo=e.first,o.view=[],o.renderedView=null,o.externalMeasured=null,o.viewOffset=0,o.lastWrapHeight=o.lastWrapWidth=0,o.updateLineNumbers=null,o.nativeBarWidth=o.barHeight=o.barWidth=0,o.scrollbarsClipped=!1,o.lineNumWidth=o.lineNumInnerWidth=o.lineNumChars=null,o.alignWidgets=!1,o.cachedCharWidth=o.cachedTextHeight=o.cachedPaddingH=null,o.maxLine=null,o.maxLineLength=0,o.maxLineChanged=!1,o.wheelDX=o.wheelDY=o.wheelStartX=o.wheelStartY=null,o.shift=!1,o.selForContextMenu=null,o.activeTouch=null,n.init(o)}function M(t,e){if((e-=t.first)<0||e>=t.size)throw new Error("There is no line "+(e+t.first)+" in the document.");for(var n=t;!n.lines;)for(var i=0;;++i){var r=n.children[i],o=r.chunkSize();if(e=t.first&&en?_(n,M(t,n).text.length):B(e,M(t,e.line).text.length)}function B(t,e){var n=t.ch;return null==n||n>e?_(t.line,e):n<0?_(t.line,0):t}function W(t,e){for(var n=[],i=0;i=e:o.to>e);(i||(i=[])).push(new K(s,o.from,l?null:o.to))}}return i}function Z(t,e,n){var i;if(t)for(var r=0;r=e:o.to>e);if(a||o.from==e&&"bookmark"==s.type&&(!n||o.marker.insertLeft)){var l=null==o.from||(s.inclusiveLeft?o.from<=e:o.from0&&a)for(var w=0;w0)){var u=[l,1],h=F(c.from,a.from),f=F(c.to,a.to);(h<0||!s.inclusiveLeft&&!h)&&u.push({from:c.from,to:a.from}),(f>0||!s.inclusiveRight&&!f)&&u.push({from:a.to,to:c.to}),r.splice.apply(r,u),l+=u.length-3}}return r}function nt(t){var e=t.markedSpans;if(e){for(var n=0;n=0&&h<=0||u<=0&&h>=0)&&(u<=0&&(l.marker.inclusiveRight&&r.inclusiveLeft?F(c.to,n)>=0:F(c.to,n)>0)||u>=0&&(l.marker.inclusiveRight&&r.inclusiveLeft?F(c.from,i)<=0:F(c.from,i)<0)))return!0}}}function ht(t){for(var e;e=lt(t);)t=e.find(-1,!0).line;return t}function dt(t){for(var e;e=ct(t);)t=e.find(1,!0).line;return t}function ft(t){for(var e,n;e=ct(t);)t=e.find(1,!0).line,(n||(n=[])).push(t);return n}function pt(t,e){var n=M(t,e),i=ht(n);return n==i?e:L(i)}function gt(t,e){if(e>t.lastLine())return e;var n,i=M(t,e);if(!vt(t,i))return e;for(;n=ct(i);)i=n.find(1,!0).line;return L(i)+1}function vt(t,e){var n=Xs&&e.markedSpans;if(n)for(var i=void 0,r=0;re.maxLineLength&&(e.maxLineLength=n,e.maxLine=t)})}function wt(t,e,n,i){if(!t)return i(e,n,"ltr",0);for(var r=!1,o=0;oe||e==n&&s.to==e)&&(i(Math.max(s.from,e),Math.min(s.to,n),1==s.level?"rtl":"ltr",o),r=!0)}r||i(e,n,"ltr")}function Ct(t,e,n){var i;Js=null;for(var r=0;re)return r;o.to==e&&(o.from!=o.to&&"before"==n?i=r:Js=r),o.from==e&&(o.from!=o.to&&"before"!=n?i=r:Js=r)}return null!=i?i:Js}function kt(t,e){var n=t.order;return null==n&&(n=t.order=Zs(t.text,e)),n}function St(t,e){return t._handlers&&t._handlers[e]||Qs}function Tt(t,e,n){if(t.removeEventListener)t.removeEventListener(e,n,!1);else if(t.detachEvent)t.detachEvent("on"+e,n);else{var i=t._handlers,r=i&&i[e];if(r){var o=d(r,n);o>-1&&(i[e]=r.slice(0,o).concat(r.slice(o+1)))}}}function Et(t,e){var n=St(t,e);if(n.length)for(var i=Array.prototype.slice.call(arguments,2),r=0;r0}function Ot(t){t.prototype.on=function(t,e){ta(this,t,e)},t.prototype.off=function(t,e){Tt(this,t,e)}}function Lt(t){t.preventDefault?t.preventDefault():t.returnValue=!1}function Nt(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0}function Dt(t){return null!=t.defaultPrevented?t.defaultPrevented:0==t.returnValue}function It(t){Lt(t),Nt(t)}function _t(t){return t.target||t.srcElement}function Ft(t){var e=t.which;return null==e&&(1&t.button?e=1:2&t.button?e=3:4&t.button&&(e=2)),As&&t.ctrlKey&&1==e&&(e=3),e}function zt(t){if(null==Rs){var e=i("span","​");n(t,i("span",[e,document.createTextNode("x")])),0!=t.firstChild.offsetHeight&&(Rs=e.offsetWidth<=1&&e.offsetHeight>2&&!(ms&&ys<8))}var r=Rs?i("span","​"):i("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return r.setAttribute("cm-text",""),r}function $t(t){if(null!=Vs)return Vs;var i=n(t,document.createTextNode("AخA")),r=Ds(i,0,1).getBoundingClientRect(),o=Ds(i,1,2).getBoundingClientRect();return e(t),!(!r||r.left==r.right)&&(Vs=o.right-r.right<3)}function Rt(t){if(null!=oa)return oa;var e=n(t,i("span","x")),r=e.getBoundingClientRect(),o=Ds(e,0,1).getBoundingClientRect();return oa=Math.abs(r.left-o.left)>1}function Vt(t,e){arguments.length>2&&(e.dependencies=Array.prototype.slice.call(arguments,2)),sa[t]=e}function Ht(t,e){aa[t]=e}function jt(t){if("string"==typeof t&&aa.hasOwnProperty(t))t=aa[t];else if(t&&"string"==typeof t.name&&aa.hasOwnProperty(t.name)){var e=aa[t.name];"string"==typeof e&&(e={name:e}),t=b(e,t),t.name=e.name}else{if("string"==typeof t&&/^[\w\-]+\/[\w\-]+\+xml$/.test(t))return jt("application/xml");if("string"==typeof t&&/^[\w\-]+\/[\w\-]+\+json$/.test(t))return jt("application/json")}return"string"==typeof t?{name:t}:t||{name:"null"}}function Bt(t,e){e=jt(e);var n=sa[e.name];if(!n)return Bt(t,"text/plain");var i=n(t,e);if(la.hasOwnProperty(e.name)){var r=la[e.name];for(var o in r)r.hasOwnProperty(o)&&(i.hasOwnProperty(o)&&(i["_"+o]=i[o]),i[o]=r[o])}if(i.name=e.name,e.helperType&&(i.helperType=e.helperType),e.modeProps)for(var s in e.modeProps)i[s]=e.modeProps[s];return i}function Wt(t,e){u(e,la.hasOwnProperty(t)?la[t]:la[t]={})}function Ut(t,e){if(!0===e)return e;if(t.copyState)return t.copyState(e);var n={};for(var i in e){var r=e[i];r instanceof Array&&(r=r.concat([])),n[i]=r}return n}function qt(t,e){for(var n;t.innerMode&&(n=t.innerMode(e))&&n.mode!=t;)e=n.state,t=n.mode;return n||{mode:t,state:e}}function Kt(t,e,n){return!t.startState||t.startState(e,n)}function Gt(t,e,n,i){var r=[t.state.modeGen],o={};ne(t,e.text,t.doc.mode,n,function(t,e){return r.push(t,e)},o,i);for(var s=n.state,a=0;at&&r.splice(l,1,t,r[l+1],i),l+=2,c=Math.min(t,i)}if(e)if(a.opaque)r.splice(n,l-n,t,"overlay "+e),l=n+2;else for(;nt.options.maxHighlightLength&&Ut(t.doc.mode,i.state),o=Gt(t,e,i);r&&(i.state=r),e.stateAfter=i.save(!r),e.styles=o.styles,o.classes?e.styleClasses=o.classes:e.styleClasses&&(e.styleClasses=null),n===t.doc.highlightFrontier&&(t.doc.modeFrontier=Math.max(t.doc.modeFrontier,++t.doc.highlightFrontier))}return e.styles}function Xt(t,e,n){var i=t.doc,r=t.display;if(!i.mode.startState)return new ha(i,!0,e);var o=ie(t,e,n),s=o>i.first&&M(i,o-1).stateAfter,a=s?ha.fromSaved(i,s,o):new ha(i,Kt(i.mode),o);return i.iter(o,e,function(n){Jt(t,n.text,a);var i=a.line;n.stateAfter=i==e-1||i%5==0||i>=r.viewFrom&&ie.start)return o}throw new Error("Mode "+t.name+" failed to advance stream.")}function te(t,e,n,i){var r,o=t.doc,s=o.mode;e=j(o,e);var a,l=M(o,e.line),c=Xt(t,e.line,n),u=new ca(l.text,t.options.tabSize,c);for(i&&(a=[]);(i||u.post.options.maxHighlightLength?(a=!1,s&&Jt(t,e,i,h.pos),h.pos=e.length,l=null):l=ee(Qt(n,h,i.state,d),o),d){var f=d[0].name;f&&(l="m-"+(l?f+" "+l:f))}if(!a||u!=l){for(;cs;--a){if(a<=o.first)return o.first;var l=M(o,a-1),c=l.stateAfter;if(c&&(!n||a+(c instanceof ua?c.lookAhead:0)<=o.modeFrontier))return a;var u=h(l.text,null,t.options.tabSize);(null==r||i>u)&&(r=a-1,i=u)}return r}function re(t,e){if(t.modeFrontier=Math.min(t.modeFrontier,e),!(t.highlightFrontiern;i--){var r=M(t,i).stateAfter;if(r&&(!(r instanceof ua)||i+r.lookAhead1&&!/ /.test(t))return t;for(var n=e,i="",r=0;rc&&h.from<=c));d++);if(h.to>=u)return t(n,i,r,o,s,a,l);t(n,i.slice(0,h.to-c),r,o,null,a,l),o=null,i=i.slice(h.to-c),c=h.to}}}function fe(t,e,n,i){var r=!i&&n.widgetNode;r&&t.map.push(t.pos,t.pos+e,r),!i&&t.cm.display.input.needsContentAttribute&&(r||(r=t.content.appendChild(document.createElement("span"))),r.setAttribute("cm-marker",n.id)),r&&(t.cm.display.input.setUneditable(r),t.content.appendChild(r)),t.pos+=e,t.trailingSpace=!1}function pe(t,e,n){var i=t.markedSpans,r=t.text,o=0;if(i)for(var s,a,l,c,u,h,d,f=r.length,p=0,g=1,v="",m=0;;){if(m==p){l=c=u=h=a="",d=null,m=1/0;for(var y=[],b=void 0,x=0;xp||C.collapsed&&w.to==p&&w.from==p)?(null!=w.to&&w.to!=p&&m>w.to&&(m=w.to,c=""),C.className&&(l+=" "+C.className),C.css&&(a=(a?a+";":"")+C.css),C.startStyle&&w.from==p&&(u+=" "+C.startStyle),C.endStyle&&w.to==m&&(b||(b=[])).push(C.endStyle,w.to),C.title&&!h&&(h=C.title),C.collapsed&&(!d||st(d.marker,C)<0)&&(d=w)):w.from>p&&m>w.from&&(m=w.from)}if(b)for(var k=0;k=f)break;for(var T=Math.min(f,m);;){if(v){var E=p+v.length;if(!d){var M=E>T?v.slice(0,T-p):v;e.addToken(e,M,s?s+l:l,u,p+M.length==m?c:"",h,a)}if(E>=T){v=v.slice(T-p),p=T;break}p=E,u=""}v=r.slice(o,o=n[g++]),s=ae(n[g++],e.cm.options)}}else for(var P=1;P2&&o.push((l.bottom+c.top)/2-n.top)}}o.push(n.bottom-n.top)}}function Be(t,e,n){if(t.line==e)return{map:t.measure.map,cache:t.measure.cache};for(var i=0;in)return{map:t.measure.maps[r],cache:t.measure.caches[r],before:!0}}function We(t,e){e=ht(e);var i=L(e),r=t.display.externalMeasured=new ge(t.doc,e,i);r.lineN=i;var o=r.built=le(t,r);return r.text=o.pre,n(t.display.lineMeasure,o.pre),r}function Ue(t,e,n,i){return Ge(t,Ke(t,e),n,i)}function qe(t,e){if(e>=t.display.viewFrom&&e=n.lineN&&ee)&&(o=l-a,r=o-1,e>=l&&(s="right")),null!=r){if(i=t[c+2],a==l&&n==(i.insertLeft?"left":"right")&&(s=n),"left"==n&&0==r)for(;c&&t[c-2]==t[c-3]&&t[c-1].insertLeft;)i=t[2+(c-=3)],s="left";if("right"==n&&r==l-a)for(;c=0&&(n=t[r]).left==n.right;r--);return n}function Je(t,e,n,i){var r,o=Ye(e.map,n,i),s=o.node,a=o.start,l=o.end,c=o.collapse;if(3==s.nodeType){for(var u=0;u<4;u++){for(;a&&k(e.line.text.charAt(o.coverStart+a));)--a;for(;o.coverStart+l0&&(c=i="right");var h;r=t.options.lineWrapping&&(h=s.getClientRects()).length>1?h["right"==i?h.length-1:0]:s.getBoundingClientRect()}if(ms&&ys<9&&!a&&(!r||!r.left&&!r.right)){var d=s.parentNode.getClientRects()[0];r=d?{left:d.left,right:d.left+xn(t.display),top:d.top,bottom:d.bottom}:ba}for(var f=r.top-e.rect.top,p=r.bottom-e.rect.top,g=(f+p)/2,v=e.view.measure.heights,m=0;m=i.text.length?(c=i.text.length,u="before"):c<=0&&(c=0,u="after"),!l)return s("before"==u?c-1:c,"before"==u);var h=Ct(l,c,u),d=Js,f=a(c,h,"before"==u);return null!=d&&(f.other=a(c,d,"before"!=u)),f}function un(t,e){var n=0;e=j(t.doc,e),t.options.lineWrapping||(n=xn(t.display)*e.ch);var i=M(t.doc,e.line),r=yt(i)+Fe(t.display);return{left:n,right:n,top:r,bottom:r+i.height}}function hn(t,e,n,i,r){var o=_(t,e,n);return o.xRel=r,i&&(o.outside=!0),o}function dn(t,e,n){var i=t.doc;if((n+=t.display.viewOffset)<0)return hn(i.first,0,null,!0,-1);var r=N(i,n),o=i.first+i.size-1;if(r>o)return hn(i.first+i.size-1,M(i,o).text.length,null,!0,1);e<0&&(e=0);for(var s=M(i,r);;){var a=vn(t,s,r,e,n),l=ct(s),c=l&&l.find(0,!0);if(!l||!(a.ch>c.from.ch||a.ch==c.from.ch&&a.xRel>0))return a;r=L(s=c.to.line)}}function fn(t,e,n,i){i-=on(e);var r=e.text.length,o=T(function(e){return Ge(t,n,e-1).bottom<=i},r,0);return r=T(function(e){return Ge(t,n,e).top>i},o,r),{begin:o,end:r}}function pn(t,e,n,i){return n||(n=Ke(t,e)),fn(t,e,n,sn(t,e,Ge(t,n,i),"line").top)}function gn(t,e,n,i){return!(t.bottom<=n)&&(t.top>n||(i?t.left:t.right)>e)}function vn(t,e,n,i,r){r-=yt(e);var o=Ke(t,e),s=on(e),a=0,l=e.text.length,c=!0,u=kt(e,t.doc.direction);if(u){var h=(t.options.lineWrapping?yn:mn)(t,e,n,o,u,i,r);c=1!=h.level,a=c?h.from:h.to-1,l=c?h.to:h.from-1}var d,f,p=null,g=null,v=T(function(e){var n=Ge(t,o,e);return n.top+=s,n.bottom+=s,!!gn(n,i,r,!1)&&(n.top<=r&&n.left<=i&&(p=e,g=n),!0)},a,l),m=!1;if(g){var y=i-g.left=x.bottom}return v=S(e.text,v,1),hn(n,v,f,m,i-d)}function mn(t,e,n,i,r,o,s){var a=T(function(a){var l=r[a],c=1!=l.level;return gn(cn(t,_(n,c?l.to:l.from,c?"before":"after"),"line",e,i),o,s,!0)},0,r.length-1),l=r[a];if(a>0){var c=1!=l.level,u=cn(t,_(n,c?l.from:l.to,c?"after":"before"),"line",e,i);gn(u,o,s,!0)&&u.top>s&&(l=r[a-1])}return l}function yn(t,e,n,i,r,o,s){var a=fn(t,e,i,s),l=a.begin,c=a.end;/\s/.test(e.text.charAt(c-1))&&c--;for(var u=null,h=null,d=0;d=c||f.to<=l)){var p=1!=f.level,g=Ge(t,i,p?Math.min(c,f.to)-1:Math.max(l,f.from)).right,v=gv)&&(u=f,h=v)}}return u||(u=r[r.length-1]),u.fromc&&(u={from:u.from,to:c,level:u.level}),u}function bn(t){if(null!=t.cachedTextHeight)return t.cachedTextHeight;if(null==pa){pa=i("pre");for(var r=0;r<49;++r)pa.appendChild(document.createTextNode("x")),pa.appendChild(i("br"));pa.appendChild(document.createTextNode("x"))}n(t.measure,pa);var o=pa.offsetHeight/50;return o>3&&(t.cachedTextHeight=o),e(t.measure),o||1}function xn(t){if(null!=t.cachedCharWidth)return t.cachedCharWidth;var e=i("span","xxxxxxxxxx"),r=i("pre",[e]);n(t.measure,r);var o=e.getBoundingClientRect(),s=(o.right-o.left)/10;return s>2&&(t.cachedCharWidth=s),s||10}function wn(t){for(var e=t.display,n={},i={},r=e.gutters.clientLeft,o=e.gutters.firstChild,s=0;o;o=o.nextSibling,++s)n[t.options.gutters[s]]=o.offsetLeft+o.clientLeft+r,i[t.options.gutters[s]]=o.clientWidth;return{fixedPos:Cn(e),gutterTotalWidth:e.gutters.offsetWidth,gutterLeft:n,gutterWidth:i,wrapperWidth:e.wrapper.clientWidth}}function Cn(t){return t.scroller.getBoundingClientRect().left-t.sizer.getBoundingClientRect().left}function kn(t){var e=bn(t.display),n=t.options.lineWrapping,i=n&&Math.max(5,t.display.scroller.clientWidth/xn(t.display)-3);return function(r){if(vt(t.doc,r))return 0;var o=0;if(r.widgets)for(var s=0;s=t.display.viewTo)return null;if((e-=t.display.viewFrom)<0)return null;for(var n=t.display.view,i=0;i=t.display.viewTo||a.to().line0?e.blinker=setInterval(function(){return e.cursorDiv.style.visibility=(n=!n)?"":"hidden"},t.options.cursorBlinkRate):t.options.cursorBlinkRate<0&&(e.cursorDiv.style.visibility="hidden")}}function Dn(t){t.state.focused||(t.display.input.focus(),_n(t))}function In(t){t.state.delayingBlurEvent=!0,setTimeout(function(){t.state.delayingBlurEvent&&(t.state.delayingBlurEvent=!1,Fn(t))},100)}function _n(t,e){t.state.delayingBlurEvent&&(t.state.delayingBlurEvent=!1),"nocursor"!=t.options.readOnly&&(t.state.focused||(Et(t,"focus",t,e),t.state.focused=!0,a(t.display.wrapper,"CodeMirror-focused"),t.curOp||t.display.selForContextMenu==t.doc.sel||(t.display.input.reset(),bs&&setTimeout(function(){return t.display.input.reset(!0)},20)),t.display.input.receivedFocus()),Nn(t))}function Fn(t,e){t.state.delayingBlurEvent||(t.state.focused&&(Et(t,"blur",t,e),t.state.focused=!1,Fs(t.display.wrapper,"CodeMirror-focused")),clearInterval(t.display.blinker),setTimeout(function(){t.state.focused||(t.display.shift=!1)},150))}function zn(t){for(var e=t.display,n=e.lineDiv.offsetTop,i=0;i.005||l<-.005)&&(O(r.line,o),$n(r.line),r.rest))for(var c=0;c=s&&(o=N(e,yt(M(e,l))-t.wrapper.clientHeight),s=l)}return{from:o,to:Math.max(s,o+1)}}function Vn(t){var e=t.display,n=e.view;if(e.alignWidgets||e.gutters.firstChild&&t.options.fixedGutter){for(var i=Cn(e)-e.scroller.scrollLeft+t.doc.scrollLeft,r=e.gutters.offsetWidth,o=i+"px",s=0;s(window.innerHeight||document.documentElement.clientHeight)&&(o=!1),null!=o&&!Ts){var s=i("div","​",null,"position: absolute;\n top: "+(e.top-n.viewOffset-Fe(t.display))+"px;\n height: "+(e.bottom-e.top+Re(t)+n.barHeight)+"px;\n left: "+e.left+"px; width: "+Math.max(2,e.right-e.left)+"px;");t.display.lineSpace.appendChild(s),s.scrollIntoView(o),t.display.lineSpace.removeChild(s)}}}function Bn(t,e,n,i){null==i&&(i=0);var r;t.options.lineWrapping||e!=n||(e=e.ch?_(e.line,"before"==e.sticky?e.ch-1:e.ch,"after"):e,n="before"==e.sticky?_(e.line,e.ch+1,"before"):e);for(var o=0;o<5;o++){var s=!1,a=cn(t,e),l=n&&n!=e?cn(t,n):a;r={left:Math.min(a.left,l.left),top:Math.min(a.top,l.top)-i,right:Math.max(a.left,l.left),bottom:Math.max(a.bottom,l.bottom)+i};var c=Un(t,r),u=t.doc.scrollTop,h=t.doc.scrollLeft;if(null!=c.scrollTop&&(Zn(t,c.scrollTop),Math.abs(t.doc.scrollTop-u)>1&&(s=!0)),null!=c.scrollLeft&&(ti(t,c.scrollLeft),Math.abs(t.doc.scrollLeft-h)>1&&(s=!0)),!s)break}return r}function Wn(t,e){var n=Un(t,e);null!=n.scrollTop&&Zn(t,n.scrollTop),null!=n.scrollLeft&&ti(t,n.scrollLeft)}function Un(t,e){var n=t.display,i=bn(t.display);e.top<0&&(e.top=0);var r=t.curOp&&null!=t.curOp.scrollTop?t.curOp.scrollTop:n.scroller.scrollTop,o=He(t),s={};e.bottom-e.top>o&&(e.bottom=e.top+o);var a=t.doc.height+ze(n),l=e.topa-i;if(e.topr+o){var u=Math.min(e.top,(c?a:e.bottom)-o);u!=r&&(s.scrollTop=u)}var h=t.curOp&&null!=t.curOp.scrollLeft?t.curOp.scrollLeft:n.scroller.scrollLeft,d=Ve(t)-(t.options.fixedGutter?n.gutters.offsetWidth:0),f=e.right-e.left>d;return f&&(e.right=e.left+d),e.left<10?s.scrollLeft=0:e.leftd+h-3&&(s.scrollLeft=e.right+(f?0:10)-d),s}function qn(t,e){null!=e&&(Xn(t),t.curOp.scrollTop=(null==t.curOp.scrollTop?t.doc.scrollTop:t.curOp.scrollTop)+e)}function Kn(t){Xn(t);var e=t.getCursor();t.curOp.scrollToPos={from:e,to:e,margin:t.options.cursorScrollMargin}}function Gn(t,e,n){null==e&&null==n||Xn(t),null!=e&&(t.curOp.scrollLeft=e),null!=n&&(t.curOp.scrollTop=n)}function Yn(t,e){Xn(t),t.curOp.scrollToPos=e}function Xn(t){var e=t.curOp.scrollToPos;if(e){t.curOp.scrollToPos=null;Jn(t,un(t,e.from),un(t,e.to),e.margin)}}function Jn(t,e,n,i){var r=Un(t,{left:Math.min(e.left,n.left),top:Math.min(e.top,n.top)-i,right:Math.max(e.right,n.right),bottom:Math.max(e.bottom,n.bottom)+i});Gn(t,r.scrollLeft,r.scrollTop)}function Zn(t,e){Math.abs(t.doc.scrollTop-e)<2||(fs||Oi(t,{top:e}),Qn(t,e,!0),fs&&Oi(t),ki(t,100))}function Qn(t,e,n){e=Math.min(t.display.scroller.scrollHeight-t.display.scroller.clientHeight,e),(t.display.scroller.scrollTop!=e||n)&&(t.doc.scrollTop=e,t.display.scrollbars.setScrollTop(e),t.display.scroller.scrollTop!=e&&(t.display.scroller.scrollTop=e))}function ti(t,e,n,i){e=Math.min(e,t.display.scroller.scrollWidth-t.display.scroller.clientWidth),(n?e==t.doc.scrollLeft:Math.abs(t.doc.scrollLeft-e)<2)&&!i||(t.doc.scrollLeft=e,Vn(t),t.display.scroller.scrollLeft!=e&&(t.display.scroller.scrollLeft=e),t.display.scrollbars.setScrollLeft(e))}function ei(t){var e=t.display,n=e.gutters.offsetWidth,i=Math.round(t.doc.height+ze(t.display));return{clientHeight:e.scroller.clientHeight,viewHeight:e.wrapper.clientHeight,scrollWidth:e.scroller.scrollWidth,clientWidth:e.scroller.clientWidth,viewWidth:e.wrapper.clientWidth,barLeft:t.options.fixedGutter?n:0,docHeight:i,scrollHeight:i+Re(t)+e.barHeight,nativeBarWidth:e.nativeBarWidth,gutterWidth:n}}function ni(t,e){e||(e=ei(t));var n=t.display.barWidth,i=t.display.barHeight;ii(t,e);for(var r=0;r<4&&n!=t.display.barWidth||i!=t.display.barHeight;r++)n!=t.display.barWidth&&t.options.lineWrapping&&zn(t),ii(t,ei(t)),n=t.display.barWidth,i=t.display.barHeight}function ii(t,e){var n=t.display,i=n.scrollbars.update(e);n.sizer.style.paddingRight=(n.barWidth=i.right)+"px",n.sizer.style.paddingBottom=(n.barHeight=i.bottom)+"px",n.heightForcer.style.borderBottom=i.bottom+"px solid transparent",i.right&&i.bottom?(n.scrollbarFiller.style.display="block",n.scrollbarFiller.style.height=i.bottom+"px",n.scrollbarFiller.style.width=i.right+"px"):n.scrollbarFiller.style.display="",i.bottom&&t.options.coverGutterNextToScrollbar&&t.options.fixedGutter?(n.gutterFiller.style.display="block",n.gutterFiller.style.height=i.bottom+"px",n.gutterFiller.style.width=e.gutterWidth+"px"):n.gutterFiller.style.display=""}function ri(t){t.display.scrollbars&&(t.display.scrollbars.clear(),t.display.scrollbars.addClass&&Fs(t.display.wrapper,t.display.scrollbars.addClass)),t.display.scrollbars=new Ca[t.options.scrollbarStyle](function(e){t.display.wrapper.insertBefore(e,t.display.scrollbarFiller),ta(e,"mousedown",function(){t.state.focused&&setTimeout(function(){return t.display.input.focus()},0)}),e.setAttribute("cm-not-content","true")},function(e,n){"horizontal"==n?ti(t,e):Zn(t,e)},t),t.display.scrollbars.addClass&&a(t.display.wrapper,t.display.scrollbars.addClass)}function oi(t){t.curOp={cm:t,viewChanged:!1,startHeight:t.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++ka},me(t.curOp)}function si(t){be(t.curOp,function(t){for(var e=0;e=n.viewTo)||n.maxLineChanged&&e.options.lineWrapping,t.update=t.mustUpdate&&new Sa(e,t.mustUpdate&&{top:t.scrollTop,ensure:t.scrollToPos},t.forceUpdate)}function ci(t){t.updatedDisplay=t.mustUpdate&&Pi(t.cm,t.update)}function ui(t){var e=t.cm,n=e.display;t.updatedDisplay&&zn(e),t.barMeasure=ei(e),n.maxLineChanged&&!e.options.lineWrapping&&(t.adjustWidthTo=Ue(e,n.maxLine,n.maxLine.text.length).left+3,e.display.sizerWidth=t.adjustWidthTo,t.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+t.adjustWidthTo+Re(e)+e.display.barWidth),t.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+t.adjustWidthTo-Ve(e))),(t.updatedDisplay||t.selectionChanged)&&(t.preparedSelection=n.input.prepareSelection())}function hi(t){var e=t.cm;null!=t.adjustWidthTo&&(e.display.sizer.style.minWidth=t.adjustWidthTo+"px",t.maxScrollLefte)&&(r.updateLineNumbers=e),t.curOp.viewChanged=!0,e>=r.viewTo)Xs&&pt(t.doc,e)r.viewFrom?bi(t):(r.viewFrom+=i,r.viewTo+=i);else if(e<=r.viewFrom&&n>=r.viewTo)bi(t);else if(e<=r.viewFrom){var o=xi(t,n,n+i,1);o?(r.view=r.view.slice(o.index),r.viewFrom=o.lineN,r.viewTo+=i):bi(t)}else if(n>=r.viewTo){var s=xi(t,e,e,-1);s?(r.view=r.view.slice(0,s.index),r.viewTo=s.lineN):bi(t)}else{var a=xi(t,e,e,-1),l=xi(t,n,n+i,1);a&&l?(r.view=r.view.slice(0,a.index).concat(ve(t,a.lineN,l.lineN)).concat(r.view.slice(l.index)),r.viewTo+=i):bi(t)}var c=r.externalMeasured;c&&(n=r.lineN&&e=i.viewTo)){var o=i.view[En(t,e)];if(null!=o.node){var s=o.changes||(o.changes=[]);-1==d(s,n)&&s.push(n)}}}function bi(t){t.display.viewFrom=t.display.viewTo=t.doc.first,t.display.view=[],t.display.viewOffset=0}function xi(t,e,n,i){var r,o=En(t,e),s=t.display.view;if(!Xs||n==t.doc.first+t.doc.size)return{index:o,lineN:n};for(var a=t.display.viewFrom,l=0;l0){if(o==s.length-1)return null;r=a+s[o].size-e,o++}else r=a-e;e+=r,n+=r}for(;pt(t.doc,n)!=n;){if(o==(i<0?0:s.length-1))return null;n+=i*s[o-(i<0?1:0)].size,o+=i}return{index:o,lineN:n}}function wi(t,e,n){var i=t.display;0==i.view.length||e>=i.viewTo||n<=i.viewFrom?(i.view=ve(t,e,n),i.viewFrom=e):(i.viewFrom>e?i.view=ve(t,e,i.viewFrom).concat(i.view):i.viewFromn&&(i.view=i.view.slice(0,En(t,n)))),i.viewTo=n}function Ci(t){for(var e=t.display.view,n=0,i=0;i=t.display.viewTo)){var n=+new Date+t.options.workTime,i=Xt(t,e.highlightFrontier),r=[];e.iter(i.line,Math.min(e.first+e.size,t.display.viewTo+500),function(o){if(i.line>=t.display.viewFrom){var s=o.styles,a=o.text.length>t.options.maxHighlightLength?Ut(e.mode,i.state):null,l=Gt(t,o,i,!0);a&&(i.state=a),o.styles=l.styles;var c=o.styleClasses,u=l.classes;u?o.styleClasses=u:c&&(o.styleClasses=null);for(var h=!s||s.length!=o.styles.length||c!=u&&(!c||!u||c.bgClass!=u.bgClass||c.textClass!=u.textClass),d=0;!h&&dn)return ki(t,t.options.workDelay),!0}),e.highlightFrontier=i.line,e.modeFrontier=Math.max(e.modeFrontier,i.line),r.length&&fi(t,function(){for(var e=0;e=i.viewFrom&&n.visible.to<=i.viewTo&&(null==i.updateLineNumbers||i.updateLineNumbers>=i.viewTo)&&i.renderedView==i.view&&0==Ci(t))return!1;Hn(t)&&(bi(t),n.dims=wn(t));var o=r.first+r.size,s=Math.max(n.visible.from-t.options.viewportMargin,r.first),a=Math.min(o,n.visible.to+t.options.viewportMargin);i.viewFroma&&i.viewTo-a<20&&(a=Math.min(o,i.viewTo)),Xs&&(s=pt(t.doc,s),a=gt(t.doc,a));var l=s!=i.viewFrom||a!=i.viewTo||i.lastWrapHeight!=n.wrapperHeight||i.lastWrapWidth!=n.wrapperWidth;wi(t,s,a),i.viewOffset=yt(M(t.doc,i.viewFrom)),t.display.mover.style.top=i.viewOffset+"px";var c=Ci(t);if(!l&&0==c&&!n.force&&i.renderedView==i.view&&(null==i.updateLineNumbers||i.updateLineNumbers>=i.viewTo))return!1;var u=Ei(t);return c>4&&(i.lineDiv.style.display="none"),Li(t,i.updateLineNumbers,n.dims),c>4&&(i.lineDiv.style.display=""),i.renderedView=i.view,Mi(u),e(i.cursorDiv),e(i.selectionDiv),i.gutters.style.height=i.sizer.style.minHeight=0,l&&(i.lastWrapHeight=n.wrapperHeight,i.lastWrapWidth=n.wrapperWidth,ki(t,400)),i.updateLineNumbers=null,!0}function Ai(t,e){for(var n=e.viewport,i=!0;(i&&t.options.lineWrapping&&e.oldDisplayWidth!=Ve(t)||(n&&null!=n.top&&(n={top:Math.min(t.doc.height+ze(t.display)-He(t),n.top)}),e.visible=Rn(t.display,t.doc,n),!(e.visible.from>=t.display.viewFrom&&e.visible.to<=t.display.viewTo)))&&Pi(t,e);i=!1){zn(t);var r=ei(t);Mn(t),ni(t,r),Di(t,r),e.force=!1}e.signal(t,"update",t),t.display.viewFrom==t.display.reportedViewFrom&&t.display.viewTo==t.display.reportedViewTo||(e.signal(t,"viewportChange",t,t.display.viewFrom,t.display.viewTo),t.display.reportedViewFrom=t.display.viewFrom,t.display.reportedViewTo=t.display.viewTo)}function Oi(t,e){var n=new Sa(t,e);if(Pi(t,n)){zn(t),Ai(t,n);var i=ei(t);Mn(t),ni(t,i),Di(t,i),n.finish()}}function Li(t,n,i){function r(e){var n=e.nextSibling;return bs&&As&&t.display.currentWheelTarget==e?e.style.display="none":e.parentNode.removeChild(e),n}for(var o=t.display,s=t.options.lineNumbers,a=o.lineDiv,l=a.firstChild,c=o.view,u=o.viewFrom,h=0;h-1&&(p=!1),Ce(t,f,u,i)),p&&(e(f.lineNumber),f.lineNumber.appendChild(document.createTextNode(I(t.options,u)))),l=f.node.nextSibling}else{var g=Oe(t,f,u,i);a.insertBefore(g,l)}u+=f.size}for(;l;)l=r(l)}function Ni(t){var e=t.display.gutters.offsetWidth;t.display.sizer.style.marginLeft=e+"px"}function Di(t,e){t.display.sizer.style.minHeight=e.docHeight+"px",t.display.heightForcer.style.top=e.docHeight+"px",t.display.gutters.style.height=e.docHeight+t.display.barHeight+Re(t)+"px"}function Ii(t){var n=t.display.gutters,r=t.options.gutters;e(n);for(var o=0;o-1&&!t.lineNumbers&&(t.gutters=t.gutters.slice(0),t.gutters.splice(e,1))}function Fi(t){var e=t.wheelDeltaX,n=t.wheelDeltaY;return null==e&&t.detail&&t.axis==t.HORIZONTAL_AXIS&&(e=t.detail),null==n&&t.detail&&t.axis==t.VERTICAL_AXIS?n=t.detail:null==n&&(n=t.wheelDelta),{x:e,y:n}}function zi(t){var e=Fi(t);return e.x*=Ea,e.y*=Ea,e}function $i(t,e){var n=Fi(e),i=n.x,r=n.y,o=t.display,s=o.scroller,a=s.scrollWidth>s.clientWidth,l=s.scrollHeight>s.clientHeight;if(i&&a||r&&l){if(r&&As&&bs)t:for(var c=e.target,u=o.view;c!=s;c=c.parentNode)for(var h=0;h=0){var s=V(o.from(),r.from()),a=R(o.to(),r.to()),l=o.empty()?r.from()==r.head:o.from()==o.head;i<=e&&--e,t.splice(--i,2,new Pa(l?a:s,l?s:a))}}return new Ma(t,e)}function Vi(t,e){return new Ma([new Pa(t,e||t)],0)}function Hi(t){return t.text?_(t.from.line+t.text.length-1,g(t.text).length+(1==t.text.length?t.from.ch:0)):t.to}function ji(t,e){if(F(t,e.from)<0)return t;if(F(t,e.to)<=0)return Hi(e);var n=t.line+e.text.length-(e.to.line-e.from.line)-1,i=t.ch;return t.line==e.to.line&&(i+=Hi(e).ch-e.to.ch),_(n,i)}function Bi(t,e){for(var n=[],i=0;i1&&t.remove(a.line+1,p-1),t.insert(a.line+1,y)}xe(t,"change",t,e)}function Xi(t,e,n){function i(t,r,o){if(t.linked)for(var s=0;s1&&!t.done[t.done.length-2].ranges?(t.done.pop(),g(t.done)):void 0}function rr(t,e,n,i){var r=t.history;r.undone.length=0;var o,s,a=+new Date;if((r.lastOp==i||r.lastOrigin==e.origin&&e.origin&&("+"==e.origin.charAt(0)&&t.cm&&r.lastModTime>a-t.cm.options.historyEventDelay||"*"==e.origin.charAt(0)))&&(o=ir(r,r.lastOp==i)))s=g(o.changes),0==F(e.from,e.to)&&0==F(e.from,s.to)?s.to=Hi(e):o.changes.push(er(t,e));else{var l=g(r.done);for(l&&l.ranges||ar(t.sel,r.done),o={changes:[er(t,e)],generation:r.generation},r.done.push(o);r.done.length>r.undoDepth;)r.done.shift(),r.done[0].ranges||r.done.shift()}r.done.push(n),r.generation=++r.maxGeneration,r.lastModTime=r.lastSelTime=a,r.lastOp=r.lastSelOp=i,r.lastOrigin=r.lastSelOrigin=e.origin,s||Et(t,"historyAdded")}function or(t,e,n,i){var r=e.charAt(0);return"*"==r||"+"==r&&n.ranges.length==i.ranges.length&&n.somethingSelected()==i.somethingSelected()&&new Date-t.history.lastSelTime<=(t.cm?t.cm.options.historyEventDelay:500)}function sr(t,e,n,i){var r=t.history,o=i&&i.origin;n==r.lastSelOp||o&&r.lastSelOrigin==o&&(r.lastModTime==r.lastSelTime&&r.lastOrigin==o||or(t,o,g(r.done),e))?r.done[r.done.length-1]=e:ar(e,r.done),r.lastSelTime=+new Date,r.lastSelOrigin=o,r.lastSelOp=n,i&&!1!==i.clearRedo&&nr(r.undone)}function ar(t,e){var n=g(e);n&&n.ranges&&n.equals(t)||e.push(t)}function lr(t,e,n,i){var r=e["spans_"+t.id],o=0;t.iter(Math.max(t.first,n),Math.min(t.first+t.size,i),function(n){n.markedSpans&&((r||(r=e["spans_"+t.id]={}))[o]=n.markedSpans),++o})}function cr(t){if(!t)return null;for(var e,n=0;n-1&&(g(a)[h]=c[h],delete c[h])}}}return i}function fr(t,e,n,i){if(i){var r=t.anchor;if(n){var o=F(e,r)<0;o!=F(n,r)<0?(r=e,e=n):o!=F(e,n)<0&&(e=n)}return new Pa(r,e)}return new Pa(n||e,e)}function pr(t,e,n,i,r){null==r&&(r=t.cm&&(t.cm.display.shift||t.extend)),xr(t,new Ma([fr(t.sel.primary(),e,n,r)],0),i)}function gr(t,e,n){for(var i=[],r=t.cm&&(t.cm.display.shift||t.extend),o=0;o=e.ch:a.to>e.ch))){if(r&&(Et(l,"beforeCursorEnter"),l.explicitlyCleared)){if(o.markedSpans){--s;continue}break}if(!l.atomic)continue;if(n){var c=l.find(i<0?1:-1),u=void 0;if((i<0?l.inclusiveRight:l.inclusiveLeft)&&(c=Mr(t,c,-i,c&&c.line==e.line?o:null)),c&&c.line==e.line&&(u=F(c,n))&&(i<0?u<0:u>0))return Tr(t,c,e,i,r)}var h=l.find(i<0?-1:1);return(i<0?l.inclusiveLeft:l.inclusiveRight)&&(h=Mr(t,h,i,h.line==e.line?o:null)),h?Tr(t,h,e,i,r):null}}return e}function Er(t,e,n,i,r){var o=i||1,s=Tr(t,e,n,o,r)||!r&&Tr(t,e,n,o,!0)||Tr(t,e,n,-o,r)||!r&&Tr(t,e,n,-o,!0);return s||(t.cantEdit=!0,_(t.first,0))}function Mr(t,e,n,i){return n<0&&0==e.ch?e.line>t.first?j(t,_(e.line-1)):null:n>0&&e.ch==(i||M(t,e.line)).text.length?e.line=0;--r)Lr(t,{from:i[r].from,to:i[r].to,text:r?[""]:e.text,origin:e.origin});else Lr(t,e)}}function Lr(t,e){if(1!=e.text.length||""!=e.text[0]||0!=F(e.from,e.to)){var n=Bi(t,e);rr(t,e,n,t.cm?t.cm.curOp.id:NaN),Ir(t,e,n,Q(t,e));var i=[];Xi(t,function(t,n){n||-1!=d(i,t.history)||(Rr(t.history,e),i.push(t.history)),Ir(t,e,null,Q(t,e))})}}function Nr(t,e,n){if(!t.cm||!t.cm.state.suppressEdits||n){for(var i,r=t.history,o=t.sel,s="undo"==e?r.done:r.undone,a="undo"==e?r.undone:r.done,l=0;l=0;--h){var f=function(n){var r=i.changes[n];if(r.origin=e,u&&!Ar(t,r,!1))return s.length=0,{};c.push(er(t,r));var o=n?Bi(t,r):g(s);Ir(t,r,o,hr(t,r)),!n&&t.cm&&t.cm.scrollIntoView({from:r.from,to:Hi(r)});var a=[];Xi(t,function(t,e){e||-1!=d(a,t.history)||(Rr(t.history,r),a.push(t.history)),Ir(t,r,null,hr(t,r))})}(h);if(f)return f.v}}}}function Dr(t,e){if(0!=e&&(t.first+=e,t.sel=new Ma(v(t.sel.ranges,function(t){return new Pa(_(t.anchor.line+e,t.anchor.ch),_(t.head.line+e,t.head.ch))}),t.sel.primIndex),t.cm)){mi(t.cm,t.first,t.first-e,e);for(var n=t.cm.display,i=n.viewFrom;it.lastLine())){if(e.from.lineo&&(e={from:e.from,to:_(o,M(t,o).text.length),text:[e.text[0]],origin:e.origin}),e.removed=P(t,e.from,e.to),n||(n=Bi(t,e)),t.cm?_r(t.cm,e,i):Yi(t,e,i),wr(t,n,Bs)}}function _r(t,e,n){var i=t.doc,r=t.display,o=e.from,s=e.to,a=!1,l=o.line;t.options.lineWrapping||(l=L(ht(M(i,o.line))),i.iter(l,s.line+1,function(t){if(t==r.maxLine)return a=!0,!0})),i.sel.contains(e.from,e.to)>-1&&Pt(t),Yi(i,e,n,kn(t)),t.options.lineWrapping||(i.iter(l,o.line+e.text.length,function(t){var e=bt(t);e>r.maxLineLength&&(r.maxLine=t,r.maxLineLength=e,r.maxLineChanged=!0,a=!1)}),a&&(t.curOp.updateMaxLine=!0)),re(i,o.line),ki(t,400);var c=e.text.length-(s.line-o.line)-1;e.full?mi(t):o.line!=s.line||1!=e.text.length||Gi(t.doc,e)?mi(t,o.line,s.line+1,c):yi(t,o.line,"text");var u=At(t,"changes"),h=At(t,"change");if(h||u){var d={from:o,to:s,text:e.text,removed:e.removed,origin:e.origin};h&&xe(t,"change",t,d),u&&(t.curOp.changeObjs||(t.curOp.changeObjs=[])).push(d)}t.display.selForContextMenu=null}function Fr(t,e,n,i,r){if(i||(i=n),F(i,n)<0){var o;o=[i,n],n=o[0],i=o[1]}"string"==typeof e&&(e=t.splitLines(e)),Or(t,{from:n,to:i,text:e,origin:r})}function zr(t,e,n,i){n0||0==a&&!1!==s.clearWhenEmpty)return s;if(s.replacedWith&&(s.collapsed=!0,s.widgetNode=r("span",[s.replacedWith],"CodeMirror-widget"),i.handleMouseEvents||s.widgetNode.setAttribute("cm-ignore-events","true"),i.insertLeft&&(s.widgetNode.insertLeft=!0)),s.collapsed){if(ut(t,e.line,e,n,s)||e.line!=n.line&&ut(t,n.line,e,n,s))throw new Error("Inserting collapsed marker partially overlapping an existing one");q()}s.addToHistory&&rr(t,{from:e,to:n,origin:"markText"},t.sel,NaN);var l,c=e.line,h=t.cm;if(t.iter(c,n.line+1,function(t){h&&s.collapsed&&!h.options.lineWrapping&&ht(t)==h.display.maxLine&&(l=!0),s.collapsed&&c!=e.line&&O(t,0),X(t,new K(s,c==e.line?e.ch:null,c==n.line?n.ch:null)),++c}),s.collapsed&&t.iter(e.line,n.line+1,function(e){vt(t,e)&&O(e,0)}),s.clearOnEnter&&ta(s,"beforeCursorEnter",function(){return s.clear()}),s.readOnly&&(U(),(t.history.done.length||t.history.undone.length)&&t.clearHistory()),s.collapsed&&(s.id=++Oa,s.atomic=!0),h){if(l&&(h.curOp.updateMaxLine=!0),s.collapsed)mi(h,e.line,n.line+1);else if(s.className||s.title||s.startStyle||s.endStyle||s.css)for(var d=e.line;d<=n.line;d++)yi(h,d,"text");s.atomic&&kr(h.doc),xe(h,"markerAdded",h,s)}return s}function qr(t,e,n,i,r){i=u(i),i.shared=!1;var o=[Ur(t,e,n,i,r)],s=o[0],a=i.widgetNode;return Xi(t,function(t){a&&(i.widgetNode=a.cloneNode(!0)),o.push(Ur(t,j(t,e),j(t,n),i,r));for(var l=0;l-1)return e.state.draggingText(t),void setTimeout(function(){return e.display.input.focus()},20);try{var l=t.dataTransfer.getData("Text");if(l){var c;if(e.state.draggingText&&!e.state.draggingText.copy&&(c=e.listSelections()),wr(e.doc,Vi(n,n)),c)for(var u=0;u=0;e--)Fr(t.doc,"",i[e].from,i[e].to,"+delete");Kn(t)})}function fo(t,e,n){var i=S(t.text,e+n,n);return i<0||i>t.text.length?null:i}function po(t,e,n){var i=fo(t,e.ch,n);return null==i?null:new _(e.line,i,n<0?"after":"before")}function go(t,e,n,i,r){if(t){var o=kt(n,e.doc.direction);if(o){var s,a=r<0?g(o):o[0],l=r<0==(1==a.level),c=l?"after":"before";if(a.level>0||"rtl"==e.doc.direction){var u=Ke(e,n);s=r<0?n.text.length-1:0;var h=Ge(e,u,s).top;s=T(function(t){return Ge(e,u,t).top==h},r<0==(1==a.level)?a.from:a.to-1,s),"before"==c&&(s=fo(n,s,1))}else s=r<0?a.to:a.from;return new _(i,s,c)}}return new _(i,r<0?n.text.length:0,r<0?"before":"after")}function vo(t,e,n,i){var r=kt(e,t.doc.direction);if(!r)return po(e,n,i);n.ch>=e.text.length?(n.ch=e.text.length,n.sticky="before"):n.ch<=0&&(n.ch=0,n.sticky="after");var o=Ct(r,n.ch,n.sticky),s=r[o];if("ltr"==t.doc.direction&&s.level%2==0&&(i>0?s.to>n.ch:s.from=s.from&&d>=u.begin)){var f=h?"before":"after";return new _(n.line,d,f)}}var p=function(t,e,i){for(var o=function(t,e){return e?new _(n.line,l(t,1),"before"):new _(n.line,t,"after")};t>=0&&t0==(1!=s.level),c=a?i.begin:l(i.end,-1);if(s.from<=c&&c0?u.end:l(u.begin,-1);return null==v||i>0&&v==e.text.length||!(g=p(i>0?0:r.length-1,i,c(v)))?null:g}function mo(t,e){var n=M(t.doc,e),i=ht(n);return i!=n&&(e=L(i)),go(!0,t,i,e,1)}function yo(t,e){var n=M(t.doc,e),i=dt(n);return i!=n&&(e=L(i)),go(!0,t,n,e,-1)}function bo(t,e){var n=mo(t,e.line),i=M(t.doc,n.line),r=kt(i,t.doc.direction);if(!r||0==r[0].level){var o=Math.max(0,i.text.search(/\S/)),s=e.line==n.line&&e.ch<=o&&e.ch;return _(n.line,s?0:o,n.sticky)}return n}function xo(t,e,n){if("string"==typeof e&&!(e=ja[e]))return!1;t.display.input.ensurePolled();var i=t.display.shift,r=!1;try{t.isReadOnly()&&(t.state.suppressEdits=!0),n&&(t.display.shift=!1),r=e(t)!=js}finally{t.display.shift=i,t.state.suppressEdits=!1}return r}function wo(t,e,n){for(var i=0;i-1&&(F((r=a.ranges[r]).from(),e)<0||e.xRel>0)&&(F(r.to(),e)>0||e.xRel<0)?Io(t,i,e,o):Fo(t,i,e,o)}function Io(t,e,n,i){var r=t.display,o=!1,s=pi(t,function(e){bs&&(r.scroller.draggable=!1),t.state.draggingText=!1,Tt(document,"mouseup",s),Tt(document,"mousemove",a),Tt(r.scroller,"dragstart",l),Tt(r.scroller,"drop",s),o||(Lt(e),i.addNew||pr(t.doc,n,null,null,i.extend),bs||ms&&9==ys?setTimeout(function(){document.body.focus(),r.input.focus()},20):r.input.focus())}),a=function(t){o=o||Math.abs(e.clientX-t.clientX)+Math.abs(e.clientY-t.clientY)>=10},l=function(){return o=!0};bs&&(r.scroller.draggable=!0),t.state.draggingText=s,s.copy=!i.moveOnDrag,r.scroller.dragDrop&&r.scroller.dragDrop(),ta(document,"mouseup",s),ta(document,"mousemove",a),ta(r.scroller,"dragstart",l),ta(r.scroller,"drop",s),In(t),setTimeout(function(){return r.input.focus()},20)}function _o(t,e,n){if("char"==n)return new Pa(e,e);if("word"==n)return t.findWordAt(e);if("line"==n)return new Pa(_(e.line,0),j(t.doc,_(e.line+1,0)));var i=n(t,e);return new Pa(i.from,i.to)}function Fo(t,e,n,i){function r(e){if(0!=F(m,e))if(m=e,"rectangle"==i.unit){for(var r=[],o=t.options.tabSize,s=h(M(c,n.line).text,n.ch,o),a=h(M(c,e.line).text,e.ch,o),l=Math.min(s,a),g=Math.max(s,a),v=Math.min(n.line,e.line),y=Math.min(t.lastLine(),Math.max(n.line,e.line));v<=y;v++){var b=M(c,v).text,x=f(b,l,o);l==g?r.push(new Pa(_(v,x),_(v,x))):b.length>x&&r.push(new Pa(_(v,x),_(v,f(b,g,o))))}r.length||r.push(new Pa(n,n)),xr(c,Ri(p.ranges.slice(0,d).concat(r),d),{origin:"*mouse",scroll:!1}),t.scrollIntoView(e)}else{var w,C=u,k=_o(t,e,i.unit),S=C.anchor;F(k.anchor,S)>0?(w=k.head,S=V(C.from(),k.anchor)):(w=k.anchor,S=R(C.to(),k.head));var T=p.ranges.slice(0);T[d]=zo(t,new Pa(j(c,S),w)),xr(c,Ri(T,d),Ws)}}function o(e){var n=++b,a=Tn(t,e,!0,"rectangle"==i.unit);if(a)if(0!=F(a,m)){t.curOp.focus=s(),r(a);var u=Rn(l,c);(a.line>=u.to||a.liney.bottom?20:0;h&&setTimeout(pi(t,function(){b==n&&(l.scroller.scrollTop+=h,o(e))}),50)}}function a(e){t.state.selectingText=!1,b=1/0,Lt(e),l.input.focus(),Tt(document,"mousemove",x),Tt(document,"mouseup",w),c.history.lastSelOrigin=null}var l=t.display,c=t.doc;Lt(e);var u,d,p=c.sel,g=p.ranges;if(i.addNew&&!i.extend?(d=c.sel.contains(n),u=d>-1?g[d]:new Pa(n,n)):(u=c.sel.primary(),d=c.sel.primIndex),"rectangle"==i.unit)i.addNew||(u=new Pa(n,n)),n=Tn(t,e,!0,!0),d=-1;else{var v=_o(t,n,i.unit);u=i.extend?fr(u,v.anchor,v.head,i.extend):v}i.addNew?-1==d?(d=g.length,xr(c,Ri(g.concat([u]),d),{scroll:!1,origin:"*mouse"})):g.length>1&&g[d].empty()&&"char"==i.unit&&!i.extend?(xr(c,Ri(g.slice(0,d).concat(g.slice(d+1)),0),{scroll:!1,origin:"*mouse"}),p=c.sel):vr(c,d,u,Ws):(d=0,xr(c,new Ma([u],0),Ws),p=c.sel);var m=n,y=l.wrapper.getBoundingClientRect(),b=0,x=pi(t,function(t){Ft(t)?o(t):a(t)}),w=pi(t,a);t.state.selectingText=w,ta(document,"mousemove",x),ta(document,"mouseup",w)}function zo(t,e){var n=e.anchor,i=e.head,r=M(t.doc,n.line);if(0==F(n,i)&&n.sticky==i.sticky)return e;var o=kt(r);if(!o)return e;var s=Ct(o,n.ch,n.sticky),a=o[s];if(a.from!=n.ch&&a.to!=n.ch)return e;var l=s+(a.from==n.ch==(1!=a.level)?0:1);if(0==l||l==o.length)return e;var c;if(i.line!=n.line)c=(i.line-n.line)*("ltr"==t.doc.direction?1:-1)>0;else{var u=Ct(o,i.ch,i.sticky),h=u-s||(i.ch-n.ch)*(1==a.level?-1:1);c=u==l-1||u==l?h<0:h>0}var d=o[l+(c?-1:0)],f=c==(1==d.level),p=f?d.from:d.to,g=f?"after":"before";return n.ch==p&&n.sticky==g?e:new Pa(new _(n.line,p,g),i)}function $o(t,e,n,i){var r,o;if(e.touches)r=e.touches[0].clientX,o=e.touches[0].clientY;else try{r=e.clientX,o=e.clientY}catch(e){return!1}if(r>=Math.floor(t.display.gutters.getBoundingClientRect().right))return!1;i&&Lt(e);var s=t.display,a=s.lineDiv.getBoundingClientRect();if(o>a.bottom||!At(t,n))return Dt(e);o-=a.top-s.viewOffset;for(var l=0;l=r){return Et(t,n,t,N(t.doc,o),t.options.gutters[l],e),Dt(e)}}}function Ro(t,e){return $o(t,e,"gutterClick",!0)}function Vo(t,e){_e(t.display,e)||Ho(t,e)||Mt(t,e,"contextmenu")||t.display.input.onContextMenu(e)}function Ho(t,e){return!!At(t,"gutterContextMenu")&&$o(t,e,"gutterContextMenu",!1)}function jo(t){t.display.wrapper.className=t.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+t.options.theme.replace(/(^|\s)\s*/g," cm-s-"),en(t)}function Bo(t){Ii(t),mi(t),Vn(t)}function Wo(t,e,n){if(!e!=!(n&&n!=Ga)){var i=t.display.dragFunctions,r=e?ta:Tt;r(t.display.scroller,"dragstart",i.start),r(t.display.scroller,"dragenter",i.enter),r(t.display.scroller,"dragover",i.over),r(t.display.scroller,"dragleave",i.leave),r(t.display.scroller,"drop",i.drop)}}function Uo(t){t.options.lineWrapping?(a(t.display.wrapper,"CodeMirror-wrap"),t.display.sizer.style.minWidth="",t.display.sizerWidth=null):(Fs(t.display.wrapper,"CodeMirror-wrap"),xt(t)),Sn(t),mi(t),en(t),setTimeout(function(){return ni(t)},100)}function qo(t,e){var n=this;if(!(this instanceof qo))return new qo(t,e);this.options=e=e?u(e):{},u(Ya,e,!1),_i(e);var i=e.value;"string"==typeof i&&(i=new Ia(i,e.mode,null,e.lineSeparator,e.direction)),this.doc=i;var r=new qo.inputStyles[e.inputStyle](this),o=this.display=new E(t,i,r);o.wrapper.CodeMirror=this,Ii(this),jo(this),e.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),ri(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new $s,keySeq:null,specialChars:null},e.autofocus&&!Ps&&o.input.focus(),ms&&ys<11&&setTimeout(function(){return n.display.input.reset(!0)},20),Ko(this),eo(),oi(this),this.curOp.forceUpdate=!0,Ji(this,i),e.autofocus&&!Ps||this.hasFocus()?setTimeout(c(_n,this),20):Fn(this);for(var s in Xa)Xa.hasOwnProperty(s)&&Xa[s](n,e[s],Ga);Hn(this),e.finishInit&&e.finishInit(this);for(var a=0;a400}var r=t.display;ta(r.scroller,"mousedown",pi(t,Oo)),ms&&ys<11?ta(r.scroller,"dblclick",pi(t,function(e){if(!Mt(t,e)){var n=Tn(t,e);if(n&&!Ro(t,e)&&!_e(t.display,e)){Lt(e);var i=t.findWordAt(n);pr(t.doc,i.anchor,i.head)}}})):ta(r.scroller,"dblclick",function(e){return Mt(t,e)||Lt(e)}),_s||ta(r.scroller,"contextmenu",function(e){return Vo(t,e)});var o,s={end:0};ta(r.scroller,"touchstart",function(e){if(!Mt(t,e)&&!n(e)&&!Ro(t,e)){r.input.ensurePolled(),clearTimeout(o);var i=+new Date;r.activeTouch={start:i,moved:!1,prev:i-s.end<=300?s:null},1==e.touches.length&&(r.activeTouch.left=e.touches[0].pageX,r.activeTouch.top=e.touches[0].pageY)}}),ta(r.scroller,"touchmove",function(){r.activeTouch&&(r.activeTouch.moved=!0)}),ta(r.scroller,"touchend",function(n){var o=r.activeTouch;if(o&&!_e(r,n)&&null!=o.left&&!o.moved&&new Date-o.start<300){var s,a=t.coordsChar(r.activeTouch,"page");s=!o.prev||i(o,o.prev)?new Pa(a,a):!o.prev.prev||i(o,o.prev.prev)?t.findWordAt(a):new Pa(_(a.line,0),j(t.doc,_(a.line+1,0))),t.setSelection(s.anchor,s.head),t.focus(),Lt(n)}e()}),ta(r.scroller,"touchcancel",e),ta(r.scroller,"scroll",function(){r.scroller.clientHeight&&(Zn(t,r.scroller.scrollTop),ti(t,r.scroller.scrollLeft,!0),Et(t,"scroll",t))}),ta(r.scroller,"mousewheel",function(e){return $i(t,e)}),ta(r.scroller,"DOMMouseScroll",function(e){return $i(t,e)}),ta(r.wrapper,"scroll",function(){return r.wrapper.scrollTop=r.wrapper.scrollLeft=0}),r.dragFunctions={enter:function(e){Mt(t,e)||It(e)},over:function(e){Mt(t,e)||(Zr(t,e),It(e))},start:function(e){return Jr(t,e)},drop:pi(t,Xr),leave:function(e){Mt(t,e)||Qr(t)}};var a=r.input.getField();ta(a,"keyup",function(e){return Mo.call(t,e)}),ta(a,"keydown",pi(t,To)),ta(a,"keypress",pi(t,Po)),ta(a,"focus",function(e){return _n(t,e)}),ta(a,"blur",function(e){return Fn(t,e)})}function Go(t,e,n,i){var r,o=t.doc;null==n&&(n="add"),"smart"==n&&(o.mode.indent?r=Xt(t,e).state:n="prev");var s=t.options.tabSize,a=M(o,e),l=h(a.text,null,s);a.stateAfter&&(a.stateAfter=null);var c,u=a.text.match(/^\s*/)[0];if(i||/\S/.test(a.text)){if("smart"==n&&((c=o.mode.indent(r,a.text.slice(u.length),a.text))==js||c>150)){if(!i)return;n="prev"}}else c=0,n="not";"prev"==n?c=e>o.first?h(M(o,e-1).text,null,s):0:"add"==n?c=l+t.options.indentUnit:"subtract"==n?c=l-t.options.indentUnit:"number"==typeof n&&(c=l+n),c=Math.max(0,c);var d="",f=0;if(t.options.indentWithTabs)for(var g=Math.floor(c/s);g;--g)f+=s,d+="\t";if(f1)if(Za&&Za.text.join("\n")==e){if(i.ranges.length%Za.text.length==0){l=[];for(var c=0;c=0;h--){var d=i.ranges[h],f=d.from(),p=d.to();d.empty()&&(n&&n>0?f=_(f.line,f.ch-n):t.state.overwrite&&!s?p=_(p.line,Math.min(M(o,p.line).text.length,p.ch+g(a).length)):Za&&Za.lineWise&&Za.text.join("\n")==e&&(f=p=_(f.line,0))),u=t.curOp.updateInput;var m={from:f,to:p,text:l?l[h%l.length]:a,origin:r||(s?"paste":t.state.cutIncoming?"cut":"+input")};Or(t.doc,m),xe(t,"inputRead",t,m)}e&&!s&&Zo(t,e),Kn(t),t.curOp.updateInput=u,t.curOp.typing=!0,t.state.pasteIncoming=t.state.cutIncoming=!1}function Jo(t,e){var n=t.clipboardData&&t.clipboardData.getData("Text");if(n)return t.preventDefault(),e.isReadOnly()||e.options.disableInput||fi(e,function(){return Xo(e,n,0,null,"paste")}),!0}function Zo(t,e){if(t.options.electricChars&&t.options.smartIndent)for(var n=t.doc.sel,i=n.ranges.length-1;i>=0;i--){var r=n.ranges[i];if(!(r.head.ch>100||i&&n.ranges[i-1].head.line==r.head.line)){var o=t.getModeAt(r.head),s=!1;if(o.electricChars){for(var a=0;a-1){s=Go(t,r.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(M(t.doc,r.head.line).text.slice(0,r.head.ch))&&(s=Go(t,r.head.line,"smart"));s&&xe(t,"electricInput",t,r.head.line)}}}function Qo(t){for(var e=[],n=[],i=0;i=t.first+t.size)&&(e=new _(i,e.ch,e.sticky),c=M(t,i))}function s(i){var s;if(null==(s=r?vo(t.cm,c,e,n):po(c,e,n))){if(i||!o())return!1;e=go(r,t.cm,c,e.line,n)}else e=s;return!0}var a=e,l=n,c=M(t,e.line);if("char"==i)s();else if("column"==i)s(!0);else if("word"==i||"group"==i)for(var u=null,h="group"==i,d=t.cm&&t.cm.getHelper(e,"wordChars"),f=!0;!(n<0)||s(!f);f=!1){var p=c.text.charAt(e.ch)||"\n",g=w(p,d)?"w":h&&"\n"==p?"n":!h||/\s/.test(p)?null:"p";if(!h||f||g||(g="s"),u&&u!=g){n<0&&(n=1,s(),e.sticky="after");break}if(g&&(u=g),n>0&&!s(!f))break}var v=Er(t,e,a,l,!0);return z(a,v)&&(v.hitSide=!0),v}function is(t,e,n,i){var r,o=t.doc,s=e.left;if("page"==i){var a=Math.min(t.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),l=Math.max(a-.5*bn(t.display),3);r=(n>0?e.bottom:e.top)+n*l}else"line"==i&&(r=n>0?e.bottom+3:e.top-3);for(var c;c=dn(t,s,r),c.outside;){if(n<0?r<=0:r>=o.height){c.hitSide=!0;break}r+=5*n}return c}function rs(t,e){var n=qe(t,e.line);if(!n||n.hidden)return null;var i=M(t.doc,e.line),r=Be(n,i,e.line),o=kt(i,t.doc.direction),s="left";if(o){s=Ct(o,e.ch)%2?"right":"left"}var a=Ye(r.map,e.ch,s);return a.offset="right"==a.collapse?a.end:a.start,a}function os(t){for(var e=t;e;e=e.parentNode)if(/CodeMirror-gutter-wrapper/.test(e.className))return!0;return!1}function ss(t,e){return e&&(t.bad=!0),t}function as(t,e,n,i,r){function o(t){return function(e){return e.id==t}}function s(){u&&(c+=h,u=!1)}function a(t){t&&(s(),c+=t)}function l(e){if(1==e.nodeType){var n=e.getAttribute("cm-text");if(null!=n)return void a(n||e.textContent.replace(/\u200b/g,""));var c,d=e.getAttribute("cm-marker");if(d){var f=t.findMarks(_(i,0),_(r+1,0),o(+d));return void(f.length&&(c=f[0].find(0))&&a(P(t.doc,c.from,c.to).join(h)))}if("false"==e.getAttribute("contenteditable"))return;var p=/^(pre|div|p)$/i.test(e.nodeName);p&&s();for(var g=0;g=15&&(Cs=!1,bs=!0);var Ds,Is=As&&(xs||Cs&&(null==Ns||Ns<12.11)),_s=fs||ms&&ys>=9,Fs=function(e,n){var i=e.className,r=t(n).exec(i);if(r){var o=i.slice(r.index+r[0].length);e.className=i.slice(0,r.index)+(o?r[1]+o:"")}};Ds=document.createRange?function(t,e,n,i){var r=document.createRange();return r.setEnd(i||t,n),r.setStart(t,e),r}:function(t,e,n){var i=document.body.createTextRange();try{i.moveToElementText(t.parentNode)}catch(t){return i}return i.collapse(!0),i.moveEnd("character",n),i.moveStart("character",e),i};var zs=function(t){t.select()};Es?zs=function(t){t.selectionStart=0,t.selectionEnd=t.value.length}:ms&&(zs=function(t){try{t.select()}catch(t){}});var $s=function(){this.id=null};$s.prototype.set=function(t,e){clearTimeout(this.id),this.id=setTimeout(e,t)};var Rs,Vs,Hs=30,js={toString:function(){return"CodeMirror.Pass"}},Bs={scroll:!1},Ws={origin:"*mouse"},Us={origin:"+move"},qs=[""],Ks=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,Gs=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/,Ys=!1,Xs=!1,Js=null,Zs=function(){function t(t){return t<=247?n.charAt(t):1424<=t&&t<=1524?"R":1536<=t&&t<=1785?i.charAt(t-1536):1774<=t&&t<=2220?"r":8192<=t&&t<=8203?"w":8204==t?"b":"L"}function e(t,e,n){this.level=t,this.from=e,this.to=n}var n="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",i="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111",r=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,o=/[stwN]/,s=/[LRr]/,a=/[Lb1n]/,l=/[1n]/;return function(n,i){var c="ltr"==i?"L":"R";if(0==n.length||"ltr"==i&&!r.test(n))return!1;for(var u=n.length,h=[],d=0;d=this.string.length},ca.prototype.sol=function(){return this.pos==this.lineStart},ca.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},ca.prototype.next=function(){if(this.pose},ca.prototype.eatSpace=function(){for(var t=this,e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++t.pos;return this.pos>e},ca.prototype.skipToEnd=function(){this.pos=this.string.length},ca.prototype.skipTo=function(t){var e=this.string.indexOf(t,this.pos);if(e>-1)return this.pos=e,!0},ca.prototype.backUp=function(t){this.pos-=t},ca.prototype.column=function(){return this.lastColumnPos0?null:(i&&!1!==e&&(this.pos+=i[0].length),i)}var r=function(t){return n?t.toLowerCase():t};if(r(this.string.substr(this.pos,t.length))==r(t))return!1!==e&&(this.pos+=t.length),!0},ca.prototype.current=function(){return this.string.slice(this.start,this.pos)},ca.prototype.hideFirstChars=function(t,e){this.lineStart+=t;try{return e()}finally{this.lineStart-=t}},ca.prototype.lookAhead=function(t){var e=this.lineOracle;return e&&e.lookAhead(t)},ca.prototype.baseToken=function(){var t=this.lineOracle;return t&&t.baseToken(this.pos)};var ua=function(t,e){this.state=t,this.lookAhead=e},ha=function(t,e,n,i){this.state=e,this.doc=t,this.line=n,this.maxLookAhead=i||0,this.baseTokens=null,this.baseTokenPos=1};ha.prototype.lookAhead=function(t){var e=this.doc.getLine(this.line+t);return null!=e&&t>this.maxLookAhead&&(this.maxLookAhead=t),e},ha.prototype.baseToken=function(t){var e=this;if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=t;)e.baseTokenPos+=2;var n=this.baseTokens[this.baseTokenPos+1];return{type:n&&n.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-t}},ha.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},ha.fromSaved=function(t,e,n){return e instanceof ua?new ha(t,Ut(t.mode,e.state),n,e.lookAhead):new ha(t,Ut(t.mode,e),n)},ha.prototype.save=function(t){var e=!1!==t?Ut(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new ua(e,this.maxLookAhead):e};var da=function(t,e,n){this.start=t.start,this.end=t.pos,this.string=t.current(),this.type=e||null,this.state=n},fa=function(t,e,n){this.text=t,it(this,e),this.height=n?n(this):1};fa.prototype.lineNo=function(){return L(this)},Ot(fa);var pa,ga={},va={},ma=null,ya=null,ba={left:0,right:0,top:0,bottom:0},xa=function(t,e,n){this.cm=n;var r=this.vert=i("div",[i("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),o=this.horiz=i("div",[i("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");t(r),t(o),ta(r,"scroll",function(){r.clientHeight&&e(r.scrollTop,"vertical")}),ta(o,"scroll",function(){o.clientWidth&&e(o.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,ms&&ys<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};xa.prototype.update=function(t){var e=t.scrollWidth>t.clientWidth+1,n=t.scrollHeight>t.clientHeight+1,i=t.nativeBarWidth;if(n){this.vert.style.display="block",this.vert.style.bottom=e?i+"px":"0";var r=t.viewHeight-(e?i:0);this.vert.firstChild.style.height=Math.max(0,t.scrollHeight-t.clientHeight+r)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(e){this.horiz.style.display="block",this.horiz.style.right=n?i+"px":"0",this.horiz.style.left=t.barLeft+"px";var o=t.viewWidth-t.barLeft-(n?i:0);this.horiz.firstChild.style.width=Math.max(0,t.scrollWidth-t.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&t.clientHeight>0&&(0==i&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?i:0,bottom:e?i:0}},xa.prototype.setScrollLeft=function(t){this.horiz.scrollLeft!=t&&(this.horiz.scrollLeft=t),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},xa.prototype.setScrollTop=function(t){this.vert.scrollTop!=t&&(this.vert.scrollTop=t),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},xa.prototype.zeroWidthHack=function(){var t=As&&!Ss?"12px":"18px";this.horiz.style.height=this.vert.style.width=t,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new $s,this.disableVert=new $s},xa.prototype.enableZeroWidthBar=function(t,e,n){function i(){var r=t.getBoundingClientRect();("vert"==n?document.elementFromPoint(r.right-1,(r.top+r.bottom)/2):document.elementFromPoint((r.right+r.left)/2,r.bottom-1))!=t?t.style.pointerEvents="none":e.set(1e3,i)}t.style.pointerEvents="auto",e.set(1e3,i)},xa.prototype.clear=function(){var t=this.horiz.parentNode;t.removeChild(this.horiz),t.removeChild(this.vert)};var wa=function(){};wa.prototype.update=function(){return{bottom:0,right:0}},wa.prototype.setScrollLeft=function(){},wa.prototype.setScrollTop=function(){},wa.prototype.clear=function(){};var Ca={native:xa,null:wa},ka=0,Sa=function(t,e,n){var i=t.display;this.viewport=e,this.visible=Rn(i,t.doc,e),this.editorIsHidden=!i.wrapper.offsetWidth,this.wrapperHeight=i.wrapper.clientHeight,this.wrapperWidth=i.wrapper.clientWidth,this.oldDisplayWidth=Ve(t),this.force=n,this.dims=wn(t),this.events=[]};Sa.prototype.signal=function(t,e){At(t,e)&&this.events.push(arguments)},Sa.prototype.finish=function(){for(var t=this,e=0;e=0&&F(t,r.to())<=0)return i}return-1};var Pa=function(t,e){this.anchor=t,this.head=e};Pa.prototype.from=function(){return V(this.anchor,this.head)},Pa.prototype.to=function(){return R(this.anchor,this.head)},Pa.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch},Hr.prototype={chunkSize:function(){return this.lines.length},removeInner:function(t,e){for(var n=this,i=t,r=t+e;i1||!(this.children[0]instanceof Hr))){var l=[];this.collapse(l),this.children=[new Hr(l)],this.children[0].parent=this}},collapse:function(t){for(var e=this,n=0;n50){for(var a=o.lines.length%25+25,l=a;l10);t.parent.maybeSpill()}},iterN:function(t,e,n){for(var i=this,r=0;re.display.maxLineLength&&(e.display.maxLine=u,e.display.maxLineLength=h,e.display.maxLineChanged=!0)}null!=r&&e&&this.collapsed&&mi(e,r,o+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&kr(e.doc)),e&&xe(e,"markerCleared",e,this,r,o),n&&si(e),this.parent&&this.parent.clear()}},La.prototype.find=function(t,e){var n=this;null==t&&"bookmark"==this.type&&(t=1);for(var i,r,o=0;o=0;c--)Or(i,r[c]);l?br(this,l):this.cm&&Kn(this.cm)}),undo:vi(function(){Nr(this,"undo")}),redo:vi(function(){Nr(this,"redo")}),undoSelection:vi(function(){Nr(this,"undo",!0)}),redoSelection:vi(function(){Nr(this,"redo",!0)}),setExtending:function(t){this.extend=t},getExtending:function(){return this.extend},historySize:function(){for(var t=this.history,e=0,n=0,i=0;i=t.ch)&&e.push(r.marker.parent||r.marker)}return e},findMarks:function(t,e,n){t=j(this,t),e=j(this,e);var i=[],r=t.line;return this.iter(t.line,e.line+1,function(o){var s=o.markedSpans;if(s)for(var a=0;a=l.to||null==l.from&&r!=t.line||null!=l.from&&r==e.line&&l.from>=e.ch||n&&!n(l.marker)||i.push(l.marker.parent||l.marker)}++r}),i},getAllMarks:function(){var t=[];return this.iter(function(e){var n=e.markedSpans;if(n)for(var i=0;it)return e=t,!0;t-=o,++n}),j(this,_(n,e))},indexFromPos:function(t){t=j(this,t);var e=t.ch;if(t.linee&&(e=t.from),null!=t.to&&t.to0)r=new _(r.line,r.ch+1),t.replaceRange(o.charAt(r.ch-1)+o.charAt(r.ch-2),_(r.line,r.ch-2),r,"+transpose");else if(r.line>t.doc.first){var s=M(t.doc,r.line-1).text;s&&(r=new _(r.line,1),t.replaceRange(o.charAt(0)+t.doc.lineSeparator()+s.charAt(s.length-1),_(r.line-1,s.length-1),r,"+transpose"))}n.push(new Pa(r,r))}t.setSelections(n)})},newlineAndIndent:function(t){return fi(t,function(){for(var e=t.listSelections(),n=e.length-1;n>=0;n--)t.replaceRange(t.doc.lineSeparator(),e[n].anchor,e[n].head,"+input");e=t.listSelections();for(var i=0;it&&0==F(e,this.pos)&&n==this.button};var qa,Ka,Ga={toString:function(){return"CodeMirror.Init"}},Ya={},Xa={};qo.defaults=Ya,qo.optionHandlers=Xa;var Ja=[];qo.defineInitHook=function(t){return Ja.push(t)};var Za=null,Qa=function(t){this.cm=t,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new $s,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};Qa.prototype.init=function(t){function e(t){if(!Mt(r,t)){if(r.somethingSelected())Yo({lineWise:!1,text:r.getSelections()}),"cut"==t.type&&r.replaceSelection("",null,"cut");else{if(!r.options.lineWiseCopyCut)return;var e=Qo(r);Yo({lineWise:!0,text:e.text}),"cut"==t.type&&r.operation(function(){r.setSelections(e.ranges,0,Bs),r.replaceSelection("",null,"cut")})}if(t.clipboardData){t.clipboardData.clearData();var n=Za.text.join("\n");if(t.clipboardData.setData("Text",n),t.clipboardData.getData("Text")==n)return void t.preventDefault()}var s=es(),a=s.firstChild;r.display.lineSpace.insertBefore(s,r.display.lineSpace.firstChild),a.value=Za.text.join("\n");var l=document.activeElement;zs(a),setTimeout(function(){r.display.lineSpace.removeChild(s),l.focus(),l==o&&i.showPrimarySelection()},50)}}var n=this,i=this,r=i.cm,o=i.div=t.lineDiv;ts(o,r.options.spellcheck),ta(o,"paste",function(t){Mt(r,t)||Jo(t,r)||ys<=11&&setTimeout(pi(r,function(){return n.updateFromDOM()}),20)}),ta(o,"compositionstart",function(t){n.composing={data:t.data,done:!1}}),ta(o,"compositionupdate",function(t){n.composing||(n.composing={data:t.data,done:!1})}),ta(o,"compositionend",function(t){n.composing&&(t.data!=n.composing.data&&n.readFromDOMSoon(),n.composing.done=!0)}),ta(o,"touchstart",function(){return i.forceCompositionEnd()}),ta(o,"input",function(){n.composing||n.readFromDOMSoon()}),ta(o,"copy",e),ta(o,"cut",e)},Qa.prototype.prepareSelection=function(){var t=Pn(this.cm,!1);return t.focus=this.cm.state.focused,t},Qa.prototype.showSelection=function(t,e){t&&this.cm.display.view.length&&((t.focus||e)&&this.showPrimarySelection(),this.showMultipleSelections(t))},Qa.prototype.showPrimarySelection=function(){var t=window.getSelection(),e=this.cm,n=e.doc.sel.primary(),i=n.from(),r=n.to();if(e.display.viewTo==e.display.viewFrom||i.line>=e.display.viewTo||r.line=e.display.viewFrom&&rs(e,i)||{node:a[0].measure.map[2],offset:0},c=r.linet.firstLine()&&(i=_(i.line-1,M(t.doc,i.line-1).length)),r.ch==M(t.doc,r.line).text.length&&r.linee.viewTo-1)return!1;var o,s,a;i.line==e.viewFrom||0==(o=En(t,i.line))?(s=L(e.view[0].line),a=e.view[0].node):(s=L(e.view[o].line),a=e.view[o-1].node.nextSibling);var l,c,u=En(t,r.line);if(u==e.view.length-1?(l=e.viewTo-1,c=e.lineDiv.lastChild):(l=L(e.view[u+1].line)-1,c=e.view[u+1].node.previousSibling),!a)return!1;for(var h=t.doc.splitLines(as(t,a,c,s,l)),d=P(t.doc,_(s,0),_(l,M(t.doc,l).text.length));h.length>1&&d.length>1;)if(g(h)==g(d))h.pop(),d.pop(),l--;else{if(h[0]!=d[0])break;h.shift(),d.shift(),s++}for(var f=0,p=0,v=h[0],m=d[0],y=Math.min(v.length,m.length);fi.ch&&b.charCodeAt(b.length-p-1)==x.charCodeAt(x.length-p-1);)f--,p++;h[h.length-1]=b.slice(0,b.length-p).replace(/^\u200b+/,""),h[0]=h[0].slice(f).replace(/\u200b+$/,"");var C=_(s,f),k=_(l,d.length?g(d).length-p:0);return h.length>1||h[0]||F(C,k)?(Fr(t.doc,h,C,k,"+input"),!0):void 0},Qa.prototype.ensurePolled=function(){this.forceCompositionEnd()},Qa.prototype.reset=function(){this.forceCompositionEnd()},Qa.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Qa.prototype.readFromDOMSoon=function(){var t=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout(function(){if(t.readDOMTimeout=null,t.composing){if(!t.composing.done)return;t.composing=null}t.updateFromDOM()},80))},Qa.prototype.updateFromDOM=function(){var t=this;!this.cm.isReadOnly()&&this.pollContent()||fi(this.cm,function(){return mi(t.cm)})},Qa.prototype.setUneditable=function(t){t.contentEditable="false"},Qa.prototype.onKeyPress=function(t){0!=t.charCode&&(t.preventDefault(),this.cm.isReadOnly()||pi(this.cm,Xo)(this.cm,String.fromCharCode(null==t.charCode?t.keyCode:t.charCode),0))},Qa.prototype.readOnlyChanged=function(t){this.div.contentEditable=String("nocursor"!=t)},Qa.prototype.onContextMenu=function(){},Qa.prototype.resetPosition=function(){},Qa.prototype.needsContentAttribute=!0;var tl=function(t){this.cm=t,this.prevInput="",this.pollingFast=!1,this.polling=new $s,this.hasSelection=!1,this.composing=null};tl.prototype.init=function(t){function e(t){if(!Mt(r,t)){if(r.somethingSelected())Yo({lineWise:!1,text:r.getSelections()});else{if(!r.options.lineWiseCopyCut)return;var e=Qo(r);Yo({lineWise:!0,text:e.text}),"cut"==t.type?r.setSelections(e.ranges,null,Bs):(i.prevInput="",s.value=e.text.join("\n"),zs(s))}"cut"==t.type&&(r.state.cutIncoming=!0)}}var n=this,i=this,r=this.cm,o=this.wrapper=es(),s=this.textarea=o.firstChild;t.wrapper.insertBefore(o,t.wrapper.firstChild),Es&&(s.style.width="0px"),ta(s,"input",function(){ms&&ys>=9&&n.hasSelection&&(n.hasSelection=null),i.poll()}),ta(s,"paste",function(t){Mt(r,t)||Jo(t,r)||(r.state.pasteIncoming=!0,i.fastPoll())}),ta(s,"cut",e),ta(s,"copy",e),ta(t.scroller,"paste",function(e){_e(t,e)||Mt(r,e)||(r.state.pasteIncoming=!0,i.focus())}),ta(t.lineSpace,"selectstart",function(e){_e(t,e)||Lt(e)}),ta(s,"compositionstart",function(){var t=r.getCursor("from");i.composing&&i.composing.range.clear(),i.composing={start:t,range:r.markText(t,r.getCursor("to"),{className:"CodeMirror-composing"})}}),ta(s,"compositionend",function(){i.composing&&(i.poll(),i.composing.range.clear(),i.composing=null)})},tl.prototype.prepareSelection=function(){var t=this.cm,e=t.display,n=t.doc,i=Pn(t);if(t.options.moveInputWithCursor){var r=cn(t,n.sel.primary().head,"div"),o=e.wrapper.getBoundingClientRect(),s=e.lineDiv.getBoundingClientRect();i.teTop=Math.max(0,Math.min(e.wrapper.clientHeight-10,r.top+s.top-o.top)),i.teLeft=Math.max(0,Math.min(e.wrapper.clientWidth-10,r.left+s.left-o.left))}return i},tl.prototype.showSelection=function(t){var e=this.cm,i=e.display;n(i.cursorDiv,t.cursors),n(i.selectionDiv,t.selection),null!=t.teTop&&(this.wrapper.style.top=t.teTop+"px",this.wrapper.style.left=t.teLeft+"px")},tl.prototype.reset=function(t){if(!this.contextMenuPending&&!this.composing){var e=this.cm;if(e.somethingSelected()){this.prevInput="";var n=e.getSelection();this.textarea.value=n,e.state.focused&&zs(this.textarea),ms&&ys>=9&&(this.hasSelection=n)}else t||(this.prevInput=this.textarea.value="",ms&&ys>=9&&(this.hasSelection=null))}},tl.prototype.getField=function(){return this.textarea},tl.prototype.supportsTouch=function(){return!1},tl.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!Ps||s()!=this.textarea))try{this.textarea.focus()}catch(t){}},tl.prototype.blur=function(){this.textarea.blur()},tl.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},tl.prototype.receivedFocus=function(){this.slowPoll()},tl.prototype.slowPoll=function(){var t=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){t.poll(),t.cm.state.focused&&t.slowPoll()})},tl.prototype.fastPoll=function(){function t(){n.poll()||e?(n.pollingFast=!1,n.slowPoll()):(e=!0,n.polling.set(60,t))}var e=!1,n=this;n.pollingFast=!0,n.polling.set(20,t)},tl.prototype.poll=function(){var t=this,e=this.cm,n=this.textarea,i=this.prevInput;if(this.contextMenuPending||!e.state.focused||ia(n)&&!i&&!this.composing||e.isReadOnly()||e.options.disableInput||e.state.keySeq)return!1;var r=n.value;if(r==i&&!e.somethingSelected())return!1;if(ms&&ys>=9&&this.hasSelection===r||As&&/[\uf700-\uf7ff]/.test(r))return e.display.input.reset(),!1;if(e.doc.sel==e.display.selForContextMenu){var o=r.charCodeAt(0);if(8203!=o||i||(i="​"),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var s=0,a=Math.min(i.length,r.length);s1e3||r.indexOf("\n")>-1?n.value=t.prevInput="":t.prevInput=r,t.composing&&(t.composing.range.clear(),t.composing.range=e.markText(t.composing.start,e.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},tl.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},tl.prototype.onKeyPress=function(){ms&&ys>=9&&(this.hasSelection=null),this.fastPoll()},tl.prototype.onContextMenu=function(t){function e(){if(null!=s.selectionStart){var t=r.somethingSelected(),e="​"+(t?s.value:"");s.value="⇚",s.value=e,i.prevInput=t?"":"​",s.selectionStart=1,s.selectionEnd=e.length,o.selForContextMenu=r.doc.sel}}function n(){if(i.contextMenuPending=!1,i.wrapper.style.cssText=u,s.style.cssText=c,ms&&ys<9&&o.scrollbars.setScrollTop(o.scroller.scrollTop=l),null!=s.selectionStart){(!ms||ms&&ys<9)&&e();var t=0,n=function(){o.selForContextMenu==r.doc.sel&&0==s.selectionStart&&s.selectionEnd>0&&"​"==i.prevInput?pi(r,Pr)(r):t++<10?o.detectingSelectAll=setTimeout(n,500):(o.selForContextMenu=null,o.input.reset())};o.detectingSelectAll=setTimeout(n,200)}}var i=this,r=i.cm,o=r.display,s=i.textarea,a=Tn(r,t),l=o.scroller.scrollTop;if(a&&!Cs){r.options.resetSelectionOnContextMenu&&-1==r.doc.sel.contains(a)&&pi(r,xr)(r.doc,Vi(a),Bs);var c=s.style.cssText,u=i.wrapper.style.cssText;i.wrapper.style.cssText="position: absolute";var h=i.wrapper.getBoundingClientRect();s.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(t.clientY-h.top-5)+"px; left: "+(t.clientX-h.left-5)+"px;\n z-index: 1000; background: "+(ms?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";var d;if(bs&&(d=window.scrollY),o.input.focus(),bs&&window.scrollTo(null,d),o.input.reset(),r.somethingSelected()||(s.value=i.prevInput=" "),i.contextMenuPending=!0,o.selForContextMenu=r.doc.sel,clearTimeout(o.detectingSelectAll),ms&&ys>=9&&e(),_s){It(t);var f=function(){Tt(window,"mouseup",f),setTimeout(n,20)};ta(window,"mouseup",f)}else setTimeout(n,50)}},tl.prototype.readOnlyChanged=function(t){t||this.reset(),this.textarea.disabled="nocursor"==t},tl.prototype.setUneditable=function(){},tl.prototype.needsContentAttribute=!1,function(t){function e(e,i,r,o){t.defaults[e]=i,r&&(n[e]=o?function(t,e,n){n!=Ga&&r(t,e,n)}:r)}var n=t.optionHandlers;t.defineOption=e,t.Init=Ga,e("value","",function(t,e){return t.setValue(e)},!0),e("mode",null,function(t,e){t.doc.modeOption=e,qi(t)},!0),e("indentUnit",2,qi,!0),e("indentWithTabs",!1),e("smartIndent",!0),e("tabSize",4,function(t){Ki(t),en(t),mi(t)},!0),e("lineSeparator",null,function(t,e){if(t.doc.lineSep=e,e){var n=[],i=t.doc.first;t.doc.iter(function(t){for(var r=0;;){var o=t.text.indexOf(e,r);if(-1==o)break;r=o+e.length,n.push(_(i,o))}i++});for(var r=n.length-1;r>=0;r--)Fr(t.doc,e,n[r],_(n[r].line,n[r].ch+e.length))}}),e("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff]/g,function(t,e,n){t.state.specialChars=new RegExp(e.source+(e.test("\t")?"":"|\t"),"g"),n!=Ga&&t.refresh()}),e("specialCharPlaceholder",ce,function(t){return t.refresh()},!0),e("electricChars",!0),e("inputStyle",Ps?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),e("spellcheck",!1,function(t,e){return t.getInputField().spellcheck=e},!0),e("rtlMoveVisually",!Ls),e("wholeLineUpdateBefore",!0),e("theme","default",function(t){jo(t),Bo(t)},!0),e("keyMap","default",function(t,e,n){var i=uo(e),r=n!=Ga&&uo(n);r&&r.detach&&r.detach(t,i),i.attach&&i.attach(t,r||null)}),e("extraKeys",null),e("configureMouse",null),e("lineWrapping",!1,Uo,!0),e("gutters",[],function(t){_i(t.options),Bo(t)},!0),e("fixedGutter",!0,function(t,e){t.display.gutters.style.left=e?Cn(t.display)+"px":"0",t.refresh()},!0),e("coverGutterNextToScrollbar",!1,function(t){return ni(t)},!0),e("scrollbarStyle","native",function(t){ri(t),ni(t),t.display.scrollbars.setScrollTop(t.doc.scrollTop),t.display.scrollbars.setScrollLeft(t.doc.scrollLeft)},!0),e("lineNumbers",!1,function(t){_i(t.options),Bo(t)},!0),e("firstLineNumber",1,Bo,!0),e("lineNumberFormatter",function(t){return t},Bo,!0),e("showCursorWhenSelecting",!1,Mn,!0),e("resetSelectionOnContextMenu",!0),e("lineWiseCopyCut",!0),e("pasteLinesPerSelection",!0),e("readOnly",!1,function(t,e){"nocursor"==e&&(Fn(t),t.display.input.blur()),t.display.input.readOnlyChanged(e)}),e("disableInput",!1,function(t,e){e||t.display.input.reset()},!0),e("dragDrop",!0,Wo),e("allowDropFileTypes",null),e("cursorBlinkRate",530),e("cursorScrollMargin",0),e("cursorHeight",1,Mn,!0),e("singleCursorHeightPerLine",!0,Mn,!0),e("workTime",100),e("workDelay",100),e("flattenSpans",!0,Ki,!0),e("addModeClass",!1,Ki,!0),e("pollInterval",100),e("undoDepth",200,function(t,e){return t.doc.history.undoDepth=e}),e("historyEventDelay",1250),e("viewportMargin",10,function(t){return t.refresh()},!0),e("maxHighlightLength",1e4,Ki,!0),e("moveInputWithCursor",!0,function(t,e){e||t.display.input.resetPosition()}),e("tabindex",null,function(t,e){return t.display.input.getField().tabIndex=e||""}),e("autofocus",null),e("direction","ltr",function(t,e){return t.doc.setDirection(e)},!0)}(qo),function(t){var e=t.optionHandlers,n=t.helpers={};t.prototype={constructor:t,focus:function(){window.focus(),this.display.input.focus()},setOption:function(t,n){var i=this.options,r=i[t];i[t]==n&&"mode"!=t||(i[t]=n,e.hasOwnProperty(t)&&pi(this,e[t])(this,n,r),Et(this,"optionChange",this,t))},getOption:function(t){return this.options[t]},getDoc:function(){return this.doc},addKeyMap:function(t,e){this.state.keyMaps[e?"push":"unshift"](uo(t))},removeKeyMap:function(t){for(var e=this.state.keyMaps,n=0;ni&&(Go(e,o.head.line,t,!0),i=o.head.line,r==e.doc.sel.primIndex&&Kn(e));else{var s=o.from(),a=o.to(),l=Math.max(i,s.line);i=Math.min(e.lastLine(),a.line-(a.ch?0:1))+1;for(var c=l;c0&&vr(e.doc,r,new Pa(s,u[r].to()),Bs)}}}),getTokenAt:function(t,e){return te(this,t,e)},getLineTokens:function(t,e){return te(this,_(t),e,!0)},getTokenTypeAt:function(t){t=j(this.doc,t);var e,n=Yt(this,M(this.doc,t.line)),i=0,r=(n.length-1)/2,o=t.ch;if(0==o)e=n[2];else for(;;){var s=i+r>>1;if((s?n[2*s-1]:0)>=o)r=s;else{if(!(n[2*s+1]o&&(t=o,r=!0),i=M(this.doc,t)}else i=t;return sn(this,i,{top:0,left:0},e||"page",n||r).top+(r?this.doc.height-yt(i):0)},defaultTextHeight:function(){return bn(this.display)},defaultCharWidth:function(){return xn(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(t,e,n,i,r){var o=this.display;t=cn(this,j(this.doc,t));var s=t.bottom,a=t.left;if(e.style.position="absolute",e.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(e),o.sizer.appendChild(e),"over"==i)s=t.top;else if("above"==i||"near"==i){var l=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);("above"==i||t.bottom+e.offsetHeight>l)&&t.top>e.offsetHeight?s=t.top-e.offsetHeight:t.bottom+e.offsetHeight<=l&&(s=t.bottom),a+e.offsetWidth>c&&(a=c-e.offsetWidth)}e.style.top=s+"px",e.style.left=e.style.right="","right"==r?(a=o.sizer.clientWidth-e.offsetWidth,e.style.right="0px"):("left"==r?a=0:"middle"==r&&(a=(o.sizer.clientWidth-e.offsetWidth)/2),e.style.left=a+"px"),n&&Wn(this,{left:a,top:s,right:a+e.offsetWidth,bottom:s+e.offsetHeight})},triggerOnKeyDown:gi(To),triggerOnKeyPress:gi(Po),triggerOnKeyUp:Mo,triggerOnMouseDown:gi(Oo),execCommand:function(t){if(ja.hasOwnProperty(t))return ja[t].call(null,this)},triggerElectric:gi(function(t){Zo(this,t)}),findPosH:function(t,e,n,i){var r=this,o=1;e<0&&(o=-1,e=-e);for(var s=j(this.doc,t),a=0;a0&&a(n.charAt(i-1));)--i;for(;r.5)&&Sn(this),Et(this,"refresh",this)}),swapDoc:gi(function(t){var e=this.doc;return e.cm=null,Ji(this,t),en(this),this.display.input.reset(),Gn(this,t.scrollLeft,t.scrollTop),this.curOp.forceScroll=!0,xe(this,"swapDoc",this,e),e}),getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},Ot(t),t.registerHelper=function(e,i,r){n.hasOwnProperty(e)||(n[e]=t[e]={_global:[]}),n[e][i]=r},t.registerGlobalHelper=function(e,i,r,o){t.registerHelper(e,i,o),n[e]._global.push({pred:r,val:o})}}(qo);var el="iter insert remove copy getEditor constructor".split(" ");for(var nl in Ia.prototype)Ia.prototype.hasOwnProperty(nl)&&d(el,nl)<0&&(qo.prototype[nl]=function(t){return function(){return t.apply(this.doc,arguments)}}(Ia.prototype[nl]));return Ot(Ia),qo.inputStyles={textarea:tl,contenteditable:Qa},qo.defineMode=function(t){qo.defaults.mode||"null"==t||(qo.defaults.mode=t),Vt.apply(this,arguments)},qo.defineMIME=Ht,qo.defineMode("null",function(){return{token:function(t){return t.skipToEnd()}}}),qo.defineMIME("text/plain","null"),qo.defineExtension=function(t,e){qo.prototype[t]=e},qo.defineDocExtension=function(t,e){Ia.prototype[t]=e},qo.fromTextArea=us,function(t){t.off=Tt,t.on=ta,t.wheelEventPixels=zi,t.Doc=Ia,t.splitLines=na,t.countColumn=h,t.findColumn=f,t.isWordChar=x,t.Pass=js,t.signal=Et,t.Line=fa,t.changeEnd=Hi,t.scrollbarModel=Ca,t.Pos=_,t.cmpPos=F,t.modes=sa,t.mimeModes=aa,t.resolveMode=jt,t.getMode=Bt,t.modeExtensions=la,t.extendMode=Wt,t.copyState=Ut,t.startState=Kt,t.innerMode=qt,t.commands=ja,t.keyMap=Ha,t.keyName=co,t.isModifierKey=ao,t.lookupKey=so,t.normalizeKeyMap=oo,t.StringStream=ca,t.SharedTextMarker=Na,t.TextMarker=La,t.LineWidget=Aa,t.e_preventDefault=Lt,t.e_stopPropagation=Nt,t.e_stop=It,t.addClass=a,t.contains=o,t.rmClass=Fs,t.keyNames=za}(qo),qo.version="5.31.0",qo})},function(t,e,n){"use strict";var i=n(0),r=i.Model.extend({idAttribute:"name",defaults:{name:"",label:"",type:1,active:!0,private:!1,protected:!1},initialize:function(){var t=this.get("name"),e=this.get("label");t?e||this.set("label",t):this.set("name",e),this.set("name",r.escapeName(this.get("name")))},getFullName:function(){var t="";switch(this.get("type")){case 1:t=".";break;case 2:t="#"}return t+this.get("name")}},{TYPE_CLASS:1,TYPE_ID:2,escapeName:function(t){return(""+t).trim().replace(/([^a-z0-9\w-]+)/gi,"-")}});t.exports=r},function(t,e,n){"use strict";var i=(n(1),n(0)),r=i.$;t.exports=i.View.extend({events:{change:"onChange"},attributes:function(){return this.model.get("attributes")},initialize:function(t){var e=this.model,n=(e.get("name"),e.target);this.config=t.config||{},this.pfx=this.config.stylePrefix||"",this.ppfx=this.config.pStylePrefix||"",this.target=n,this.className=this.pfx+"trait",this.labelClass=this.ppfx+"label",this.fieldClass=this.ppfx+"field "+this.ppfx+"field-"+e.get("type"),this.inputhClass=this.ppfx+"input-holder",e.off("change:value",this.onValueChange),this.listenTo(e,"change:value",this.onValueChange),this.tmpl='
'},onChange:function(){this.model.set("value",this.getInputEl().value)},getValueForTarget:function(){return this.model.get("value")},setInputValue:function(t){this.getInputEl().value=t},onValueChange:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this.model;this.target,i.get("name");if(n.fromTarget)this.setInputValue(i.get("value"));else{var r=this.getValueForTarget();i.setTargetValue(r)}},renderLabel:function(){this.$el.html('
'+this.getLabel()+"
")},getLabel:function(){var t=this.model,e=t.get("label")||t.get("name");return e.charAt(0).toUpperCase()+e.slice(1).replace(/-/g," ")},getInputEl:function(){if(!this.$input){var t=this.model,e=this.target,n=t.get("name"),i=t.get("placeholder")||t.get("default")||"",o=t.get("type")||"text",s=e.get("attributes"),a=t.get("min"),l=t.get("max"),c=t.get("changeProp")?e.get(n):t.get("value")||s[n],u=r('');c&&u.prop("value",c),a&&u.prop("min",a),l&&u.prop("max",l),this.$input=u}return this.$input.get(0)},getModelValue:function(){var t,e=this.model,n=this.target,i=e.get("name");if(e.get("changeProp"))t=n.get(i);else{var r=n.get("attributes");t=e.get("value")||r[i]}return t},renderField:function(){if(!this.$input){this.$el.append(this.tmpl);var t=this.getInputEl(),e=this.el.querySelector("."+this.inputhClass);e.insertBefore(t,e.childNodes[0])}},render:function(){return this.renderLabel(),this.renderField(),this.el.className=this.className,this}})},function(t,e,n){"use strict";var i,r;!function(o,s){i=s,void 0!==(r="function"==typeof i?i.call(e,n,e,t):i)&&(t.exports=r)}(0,function(){function t(t,e){return e=e||M,z.test(t)?e.getElementsByClassName(t.slice(1)):R.test(t)?e.getElementsByTagName(t):e.querySelectorAll(t)}function e(t){if(!E){E=M.implementation.createHTMLDocument();var e=E.createElement("base");e.href=M.location.href,E.head.appendChild(e)}return E.body.innerHTML=t,E.body.childNodes}function n(t){"loading"!==M.readyState?t():M.addEventListener("DOMContentLoaded",t)}function i(i,r){if(!i)return this;if(i.cash&&i!==P)return i;var o,s=i,a=0;if(_(i))s=F.test(i)?M.getElementById(i.slice(1)):$.test(i)?e(i):t(i,r);else if(I(i))return n(i),this;if(!s)return this;if(s.nodeType||s===P)this[0]=s,this.length=1;else for(o=this.length=s.length;a=0&&s.splice(i,1)):(o(s,function(n){t.removeEventListener(e,n)}),s=[]))}function x(t,e){return"&"+encodeURIComponent(t)+"="+encodeURIComponent(e).replace(/%20/g,"+")}function w(t){var e=[];return o(t.options,function(t){t.selected&&e.push(t.value)}),e.length?e:null}function C(t){var e=t.selectedIndex;return e>=0?t.options[e].value:null}function k(t){var e=t.type;if(!e)return null;switch(e.toLowerCase()){case"select-one":return C(t);case"select-multiple":return w(t);case"radio":case"checkbox":return t.checked?t.value:null;default:return t.value?t.value:null}}function S(t,e,n){if(n){var i=t.childNodes[0];t.insertBefore(e,i)}else t.appendChild(e)}function T(t,e,n){var i=_(e);if(!i&&e.length)return void o(e,function(e){return T(t,e,n)});o(t,i?function(t){return t.insertAdjacentHTML(n?"afterbegin":"beforeend",e)}:function(t,i){return S(t,0===i?e:e.cloneNode(!0),n)})}var E,M=document,P=window,A=Array.prototype,O=A.slice,L=A.filter,N=A.push,D=function(){},I=function(t){return typeof t==typeof D&&t.call},_=function(t){return"string"==typeof t},F=/^#[\w-]*$/,z=/^\.[\w-]*$/,$=/<.+>/,R=/^\w+$/,V=r.fn=r.prototype=i.prototype={cash:!0,length:0,push:N,splice:A.splice,map:A.map,init:i};Object.defineProperty(V,"constructor",{value:r}),r.parseHTML=e,r.noop=D,r.isFunction=I,r.isString=_,r.extend=V.extend=function(t){t=t||{};var e=O.call(arguments),n=e.length,i=1;for(1===e.length&&(t=this,i=0);i1?this.each(function(n){return n.style[t]=e}):P.getComputedStyle(this[0])[t];for(var n in t)this.css(n,t[n]);return this}}),o(["Width","Height"],function(t){var e=t.toLowerCase();V[e]=function(){return this[0].getBoundingClientRect()[e]},V["inner"+t]=function(){return this[0]["client"+t]},V["outer"+t]=function(e){return this[0]["offset"+t]+(e?m(this,"margin"+("Width"===t?"Left":"Top"))+m(this,"margin"+("Width"===t?"Right":"Bottom")):0)}}),V.extend({off:function(t,e){return this.each(function(n){return b(n,t,e)})},on:function(t,e,i,r){var o;if(!_(t)){for(var a in t)this.on(a,e,t[a]);return this}return I(e)&&(i=e,e=null),"ready"===t?(n(i),this):(e&&(o=i,i=function(t){for(var n=t.target;!s(n,e);){if(n===this)return n=!1;n=n.parentNode}n&&o.call(n,t)}),this.each(function(e){var n=i;r&&(n=function(){i.apply(this,arguments),b(e,t,n)}),y(e,t,n)}))},one:function(t,e,n){return this.on(t,e,n,!0)},ready:n,trigger:function(t,e){var n=M.createEvent("HTMLEvents");return n.data=e,n.initEvent(t,!0,!1),this.each(function(t){return t.dispatchEvent(n)})}}),V.extend({serialize:function(){var t="";return o(this[0].elements||this,function(e){if(!e.disabled&&"FIELDSET"!==e.tagName){var n=e.name;switch(e.type.toLowerCase()){case"file":case"reset":case"submit":case"button":break;case"select-multiple":var i=k(e);null!==i&&o(i,function(e){t+=x(n,e)});break;default:var r=k(e);null!==r&&(t+=x(n,r))}}}),t.substr(1)},val:function(t){return void 0===t?k(this[0]):this.each(function(e){return e.value=t})}}),V.extend({after:function(t){return r(t).insertAfter(this),this},append:function(t){return T(this,t),this},appendTo:function(t){return T(r(t),this),this},before:function(t){return r(t).insertBefore(this),this},clone:function(){return r(this.map(function(t){return t.cloneNode(!0)}))},empty:function(){return this.html(""),this},html:function(t){if(void 0===t)return this[0].innerHTML;var e=t.nodeType?t[0].outerHTML:t;return this.each(function(t){return t.innerHTML=e})},insertAfter:function(t){var e=this;return r(t).each(function(t,n){var i=t.parentNode,r=t.nextSibling;e.each(function(t){i.insertBefore(0===n?t:t.cloneNode(!0),r)})}),this},insertBefore:function(t){var e=this;return r(t).each(function(t,n){var i=t.parentNode;e.each(function(e){i.insertBefore(0===n?e:e.cloneNode(!0),t)})}),this},prepend:function(t){return T(this,t,!0),this},prependTo:function(t){return T(r(t),this,!0),this},remove:function(){return this.each(function(t){return t.parentNode.removeChild(t)})},text:function(t){return void 0===t?this[0].textContent:this.each(function(e){return e.textContent=t})}});var U=M.documentElement;return V.extend({position:function(){var t=this[0];return{left:t.offsetLeft,top:t.offsetTop}},offset:function(){var t=this[0].getBoundingClientRect();return{top:t.top+P.pageYOffset-U.clientTop,left:t.left+P.pageXOffset-U.clientLeft}},offsetParent:function(){return r(this[0].offsetParent)}}),V.extend({children:function(t){var e=[];return this.each(function(t){N.apply(e,t.children)}),e=l(e),t?e.filter(function(e){return s(e,t)}):e},closest:function(t){return!t||this.length<1?r():this.is(t)?this.filter(t):this.parent().closest(t)},is:function(t){if(!t)return!1;var e=!1,n=a(t);return this.each(function(i){return!(e=n(i,t))}),e},find:function(e){if(!e||e.nodeType)return r(e&&this.has(e).length?e:null);var n=[];return this.each(function(i){N.apply(n,t(e,i))}),l(n)},has:function(e){var n=_(e)?function(n){return 0!==t(e,n).length}:function(t){return t.contains(e)};return this.filter(n)},next:function(){return r(this[0].nextElementSibling)},not:function(t){if(!t)return this;var e=a(t);return this.filter(function(n){return!e(n,t)})},parent:function(){var t=[];return this.each(function(e){e&&e.parentNode&&t.push(e.parentNode)}),l(t)},parents:function(t){var e,n=[];return this.each(function(i){for(e=i;e&&e.parentNode&&e!==M.body.parentNode;)e=e.parentNode,(!t||t&&s(e,t))&&n.push(e)}),l(n)},prev:function(){return r(this[0].previousElementSibling)},siblings:function(){var t=this.parent().children(),e=this[0];return t.filter(function(t){return t!==e})}}),r})},function(t,e,n){"use strict";var i=n(1),r=n(7);t.exports=n(0).Collection.extend({model:r,getStyleable:function(){return(0,i.filter)(this.models,function(t){return t.get("active")&&!t.get("private")})},getValid:function(){return(0,i.filter)(this.models,function(t){return!t.get("private")})},getFullString:function(t){var e=[];return(t||this).forEach(function(t){return e.push(t.getFullName())}),e.join("").trim()}})},function(t,e,n){"use strict";var i=Object.assign||function(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.parseValue(t);this.set(r,i({},n,{avoidStore:1})),e&&(this.set("value","",n),this.set(r,n))},setValueFromInput:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.setValue(t,e,i({},n,{fromInput:1}))},parseValue:function(t){var e={value:t};if(!this.get("functionName"))return e;var n=[],i=""+t,r=i.indexOf("(")+1,o=i.lastIndexOf(")");return n.push(r),o>=0&&n.push(o),e.value=String.prototype.substring.apply(i,n),e},getDefaultValue:function(){return this.get("defaults")},getFullValue:function(t){var e=this.get("functionName"),n=t||this.get("value");return e&&(n=e+"("+n+")"),n}})},function(t,e,n){"use strict";(function(e){n(5),n(14),n(36),n(37),n(38),n(40),n(17),n(34);t.exports=e.View.extend({initialize:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix||"",this.target=t.target||{},this.propTarget=t.propTarget||{},this.onChange=t.onChange,this.onInputRender=t.onInputRender||{},this.customValue=t.customValue||{};var e=this.collection;this.listenTo(e,"add",this.addTo),this.listenTo(e,"reset",this.render)},addTo:function(t){this.add(t)},add:function(t,e){var n=new t.typeView({model:t,name:t.get("name"),id:this.pfx+t.get("property"),target:this.target,propTarget:this.propTarget,onChange:this.onChange,onInputRender:this.onInputRender,config:this.config});"composite"!=t.get("type")&&(n.customValue=this.customValue),n.render();var i=n.el;e?e.appendChild(i):this.el.appendChild(i)},render:function(){var t=this,e=document.createDocumentFragment();return this.collection.each(function(n){return t.add(n,e)}),this.$el.append(e),this.$el.attr("class",this.pfx+"properties"),this}})}).call(e,n(0))},function(t,e,n){"use strict";(function(e){var i=(n(18),e.$);t.exports=n(5).extend({templateInput:function(){return""},init:function(){var t=this.model;this.listenTo(t,"change:unit",this.modelValueChanged),this.listenTo(t,"el:change",this.elementUpdated)},setValue:function(t){this.inputInst.setValue(t,{silent:1})},onRender:function(){var t=this.ppfx;if(!this.input){var e=this.model.input;e.ppfx=t,e.render();this.el.querySelector("."+t+"fields").appendChild(e.el),this.$input=e.inputEl,this.unit=e.unitEl,this.$unit=i(this.unit),this.input=this.$input.get(0),this.inputInst=e}}})}).call(e,n(0))},function(t,e,n){"use strict";var i=(n(0),n(3));t.exports=i.extend({tagName:"img",events:{dblclick:"openModal",click:"initResize"},initialize:function(t){var e=this.model;i.prototype.initialize.apply(this,arguments),this.listenTo(e,"change:src",this.updateSrc),this.listenTo(e,"dblclick active",this.openModal),this.classEmpty=this.ppfx+"plh-image";var n=this.config;n.modal&&(this.modal=n.modal),n.am&&(this.am=n.am),this.fetchFile()},fetchFile:function(){var t=this.model,e=t.get("file");if(e){this.em.get("AssetManager").FileUploader().uploadFile({dataTransfer:{files:[e]}},function(e){var n=e&&e.data&&e.data[0],i=n&&n.src;i&&t.set({src:i})}),t.set("file","")}},updateSrc:function(){var t=this.model.get("src"),e=this.$el;e.attr("src",t),e[t?"removeClass":"addClass"](this.classEmpty)},openModal:function(t){var e=this.opts.config.em,n=e?e.get("Editor"):"";n&&this.model.get("editable")&&n.runCommand("open-assets",{target:this.model,onSelect:function(){n.Modal.close(),n.AssetManager.setTarget(null)}})},render:function(){this.updateAttributes(),this.updateClasses();var t=this.$el.attr("class")||"";return this.model.get("src")||this.$el.attr("class",(t+" "+this.classEmpty).trim()),this.$el.attr("onmousedown","return false"),this}})},function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){"use strict";(function(e){var i=n(5),r=e.$;t.exports=i.extend({templateInput:function(){var t=this.pfx;return'\n
\n \n
\n '},inputValueChanged:function(){if(!this.model.get("detached")){for(var t=arguments.length,e=Array(t),n=0;n'),this.input=this.$input.get(0)),this.props||(this.props=t.get("properties")),!this.$props)){this.props.each(function(e,n){e&&"composite"==e.get("type")&&(this.props.remove(e),console.warn("Nested composite types not yet allowed.")),e.parent=t},this);var i=n(13),o=new i(this.getPropsConfig());this.$props=o.render().$el,this.$el.find("#"+this.pfx+"input-holder").append(this.$props)}},getPropsConfig:function(t){var e=this,n=this.model,i={config:this.config,collection:this.props,target:this.target,propTarget:this.propTarget,onChange:function(t,e,i){n.set("value",n.getFullValue(),i)},customValue:function(t,n){return e.valueOnIndex(n,t)}};return n.get("detached")&&delete i.onChange,i},valueOnIndex:function(t,e){var n=void 0,i=this.getTargetValue({ignoreDefault:1});if(i){n=i.split(" ")[t]}else n=e&&e.getTargetValue({ignoreCustomValue:1,ignoreDefault:1});return e&&(n=e.model.parseValue(n).value),n}})}).call(e,n(0))},function(t,e,n){"use strict";(function(e){var i=n(1),r=n(2),o=n(35),s=n(0);s.$;t.exports=o.extend({events:{"change input":"handleChange","change select":"handleUnitChange","click [data-arrow-up]":"upArrowClick","click [data-arrow-down]":"downArrowClick","mousedown [data-arrows]":"downIncrement"},template:function(){var t=this.ppfx;return'\n \n \n
\n
\n
\n
\n '},inputClass:function(){var t=this.ppfx;return this.opts.contClass||t+"field "+t+"field-integer"},initialize:function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0];o.prototype.initialize.apply(this,arguments),(0,i.bindAll)(this,"moveIncrement","upIncrement"),this.doc=document,this.listenTo(this.model,"change:unit",this.handleModelChange)},setValue:function(t,e){var n=e||{},i=this.validateInputValue(t,{deepCheck:1}),r={value:i.value};(i.unit||i.force)&&(r.unit=i.unit),this.model.set(r,n),n.silent&&this.handleModelChange()},handleChange:function(t){t.stopPropagation(),this.setValue(this.getInputEl().value),this.elementUpdated()},handleUnitChange:function(t){t.stopPropagation();var e=this.getUnitEl().value;this.model.set("unit",e),this.elementUpdated()},elementUpdated:function(){this.model.trigger("el:change")},handleModelChange:function(){var t=this.model;this.getInputEl().value=t.get("value");var e=this.getUnitEl();e&&(e.value=t.get("unit")||"")},getUnitEl:function(){if(!this.unitEl){var t=this.model,e=t.get("units")||[];if(e.length){var n=[];e.forEach(function(e){var i=e==t.get("unit")?"selected":"";n.push("")});var i=document.createElement("div");i.innerHTML='",this.unitEl=i.firstChild}}return this.unitEl},upArrowClick:function(){var t=this.model,e=t.get("step"),n=parseInt(t.get("value"),10);n=this.normalizeValue(n+e);var i=this.validateInputValue(n);t.set("value",i.value),this.elementUpdated()},downArrowClick:function(){var t=this.model,e=t.get("step"),n=parseInt(t.get("value"),10),i=this.normalizeValue(n-e),r=this.validateInputValue(i);t.set("value",r.value),this.elementUpdated()},downIncrement:function(t){t.preventDefault(),this.moved=0;var e=this.model.get("value");e=this.normalizeValue(e),this.current={y:t.pageY,val:e},(0,r.on)(this.doc,"mousemove",this.moveIncrement),(0,r.on)(this.doc,"mouseup",this.upIncrement)},moveIncrement:function(t){this.moved=1;var e=this.model,n=e.get("step"),i=this.current,r=this.normalizeValue(i.val+(i.y-t.pageY)*n);return this.prValue=this.validateInputValue(r).value,e.set("value",this.prValue,{avoidStore:1}),!1},upIncrement:function(){var t=this.model,e=t.get("step");if((0,r.off)(this.doc,"mouseup",this.upIncrement),(0,r.off)(this.doc,"mousemove",this.moveIncrement),this.prValue&&this.moved){var n=this.prValue-e;t.set("value",n,{avoidStore:1}).set("value",n+e),this.elementUpdated()}},normalizeValue:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.model,i=n.get("step"),r=0;if(isNaN(t))return e;if(t=parseFloat(t),Math.floor(t)!==t){var o=i.toString().split(".")[1];r=o?o.length:0}return r?parseFloat(t.toFixed(r)):t},validateInputValue:function(t,n){var i=0,r=n||{},o=this.model,s=""!==t?t:o.get("defaults"),a=o.get("units")||[],l=o.get("unit")||a.length&&a[0]||"",c=o.get("max"),u=o.get("min");if(r.deepCheck){var h=o.get("fixedValues")||[];if(s){var d=new RegExp("^"+h.join("|"),"g");if(h.length&&d.test(s))s=s.match(d)[0],l="",i=1;else{var f=s+"";s+="",s=parseFloat(s.replace(",",".")),s=isNaN(s)?o.get("defaults"):s;var p=f.replace(s,"");e.indexOf(a,p)>=0&&(l=p)}}}return void 0!==c&&""!==c&&(s=s>c?c:s),void 0!==u&&""!==u&&(s=s1&&void 0!==arguments[1]?arguments[1]:{},r=i.el,o=i.config,a=i.resizer,l=o.keyHeight,c=o.keyWidth,d=o.currentUnit;p("add",0,i),e=n.get("StyleManager").getModelToStyle(h);var f=getComputedStyle(r),g=e.getStyle(),v=g[c]||f[c],m=g[l]||f[l];a.startDim.w=parseFloat(v),a.startDim.h=parseFloat(m),u=0,d&&(o.unitHeight=(0,s.getUnitFromValue)(m),o.unitWidth=(0,s.getUnitFromValue)(v))},onMove:function(){o.trigger("change:canvasOffset")},onEnd:function(t,e){p("remove",0,e),o.trigger("change:canvasOffset"),u=1},updateTarget:function(t,i){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var o=r.store,s=r.selectedHandler,a=r.config,l=a.keyHeight,c=a.keyWidth,u=["tc","bc"].indexOf(s)>=0,h=["cl","cr"].indexOf(s)>=0,d=e.getStyle();u||(d[c]=i.w+a.unitWidth),h||(d[l]=i.h+a.unitHeight),e.setStyle(d,{avoidStore:1});n&&n.trigger("update:component:style:"+l+" update:component:style:"+c),o&&e.trigger("change:style",e,d,{})}}},"object"==(void 0===d?"undefined":r(d))&&(f=i({},f,d)),o.runCommand("resize",{el:t,options:f}))},updateToolbar:function(t){var e=this.config.em,n=t==e?e.get("selectedComponent"):t,i=this.canvas.getToolbarEl(),r=i.style;if(!n)return void(r.opacity=0);var o=n.get("toolbar");this.ppfx;if(e.get("Config").showToolbar&&o&&o.length){if(r.opacity="",r.display="",!this.toolbar){i.innerHTML="",this.toolbar=new l(o);var s=new a({collection:this.toolbar,editor:this.editor});i.appendChild(s.render().el)}this.toolbar.reset(o);var c=n.view;c&&this.updateToolbarPos(c.el)}else r.display="none"},updateToolbarPos:function(t,e){var n=this.canvas.getToolbarEl(),i=n.style,r=i.display;i.display="block";var o=this.canvas.getTargetToElementDim(n,t,{elPos:e,event:"toolbarPosUpdate"}),s=o.left+o.elementWidth-o.targetWidth;i.top=o.top+"px",i.left=(s<0?0:s)+"px",i.display=r},getCanvasPosition:function(){return this.canvas.getCanvasView().getPosition()},clean:function(){this.selEl&&this.selEl.removeClass(this.hoverClass)},getBadge:function(){return this.canvas.getBadgeEl()},onFrameScroll:function(t){var e=this.cacheEl;if(e){var n=this.getElementPos(e);this.updateBadge(e,n);var i=this.em.get("selectedComponent");i&&this.updateToolbarPos(i.view.el)}},updateAttached:function(t){var e=this.em.getSelected();if(e){var n=e.view;this.updateToolbarPos(n.el),this.showFixedElementOffset(n.el)}},getElementPos:function(t,e){return this.canvas.getCanvasView().getElementPos(t)},hideBadge:function(){this.getBadge().style.display="none"},cleanPrevious:function(t){t&&t.set({status:"",state:""})},getContentWindow:function(){return this.frameEl.contentWindow},run:function(t){this.editor=t&&t.get("Editor"),this.enable(),this.onSelect()},stop:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this.em;this.stopSelectComponent(),!n.preserveSelected&&i.setSelected(null),this.clean(),this.hideBadge(),this.hideFixedElementOffset(),this.canvas.getToolbarEl().style.display="none",i.off("component:update",this.updateAttached,this),i.off("change:canvasOffset",this.updateAttached,this),i.off("change:selectedComponent",this.updateToolbar,this)}}},function(t,e,n){"use strict";(function(e,i){var r=n(53),o=e.$;t.exports=i.extend({},r,{init:function(t){i.bindAll(this,"startDraw","draw","endDraw","rollback"),this.config=t||{},this.hType=this.config.newFixedH?"height":"min-height",this.allowDraw=1},enable:function(){for(var t=arguments.length,e=Array(t),n=0;n0;for(o in C)(!C[o]&&n(i.mods,+o)>-1||C[o]&&-1==n(i.mods,+o))&&(a=!1);(0!=i.mods.length||C[16]||C[18]||C[17]||C[91])&&!a||!1===i.method(t,i)&&(t.preventDefault?t.preventDefault():t.returnValue=!1,t.stopPropagation&&t.stopPropagation(),t.cancelBubble&&(t.cancelBubble=!0))}}function s(t){var e,i=t.keyCode,r=n(M,i);if(r>=0&&M.splice(r,1),93!=i&&224!=i||(i=91),i in C){C[i]=!1;for(e in S)S[e]==i&&(l[e]=!1)}}function a(){for(x in C)C[x]=!1;for(x in S)l[x]=!1}function l(t,e,n){var i,r;i=v(t),void 0===n&&(n=e,e="all");for(var o=0;o1&&(r=m(t),t=[t[t.length-1]]),t=t[0],t=E(t),t in w||(w[t]=[]),w[t].push({shortcut:i[o],scope:e,method:n,key:i[o],mods:r})}function c(t,e){var n,r,o,s,a,l=[];for(n=v(t),s=0;s1&&(l=m(r),t=r[r.length-1]),t=E(t),void 0===e&&(e=p()),!w[t])return;for(o=0;o*\/]/.test(n)?i(null,"select-op"):"."==n&&t.match(/^-?[_a-z][_a-z0-9-]*/i)?i("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(n)?i(null,n):"u"==n&&t.match(/rl(-prefix)?\(/)||"d"==n&&t.match("omain(")||"r"==n&&t.match("egexp(")?(t.backUp(1),e.tokenize=s,i("property","word")):/[\w\\\-]/.test(n)?(t.eatWhile(/[\w\\\-]/),i("property","word")):i(null,null):/[\d.]/.test(t.peek())?(t.eatWhile(/[\w.%]/),i("number","unit")):t.match(/^-[\w\\\-]+/)?(t.eatWhile(/[\w\\\-]/),t.match(/^\s*:/,!1)?i("variable-2","variable-definition"):i("variable-2","variable")):t.match(/^\w+-/)?i("meta","meta"):void 0}function o(t){return function(e,n){for(var r,o=!1;null!=(r=e.next());){if(r==t&&!o){")"==t&&e.backUp(1);break}o=!o&&"\\"==r}return(r==t||!o&&")"!=t)&&(n.tokenize=null),i("string","string")}}function s(t,e){return t.next(),t.match(/\s*[\"\')]/,!1)?e.tokenize=null:e.tokenize=o(")"),i(null,"(")}function a(t,e,n){this.type=t,this.indent=e,this.prev=n}function l(t,e,n,i){return t.context=new a(n,e.indentation()+(!1===i?0:v),t.context),n}function c(t){return t.context.prev&&(t.context=t.context.prev),t.context.type}function u(t,e,n){return L[n.context.type](t,e,n)}function h(t,e,n,i){for(var r=i||1;r>0;r--)n.context=n.context.prev;return u(t,e,n)}function d(t){var e=t.current().toLowerCase();g=M.hasOwnProperty(e)?"atom":E.hasOwnProperty(e)?"keyword":"variable"}var f=n.inline;n.propertyKeywords||(n=t.resolveMode("text/css"));var p,g,v=e.indentUnit,m=n.tokenHooks,y=n.documentTypes||{},b=n.mediaTypes||{},x=n.mediaFeatures||{},w=n.mediaValueKeywords||{},C=n.propertyKeywords||{},k=n.nonStandardPropertyKeywords||{},S=n.fontProperties||{},T=n.counterDescriptors||{},E=n.colorKeywords||{},M=n.valueKeywords||{},P=n.allowNested,A=n.lineComment,O=!0===n.supportsAtComponent,L={};return L.top=function(t,e,n){if("{"==t)return l(n,e,"block");if("}"==t&&n.context.prev)return c(n);if(O&&/@component/.test(t))return l(n,e,"atComponentBlock");if(/^@(-moz-)?document$/.test(t))return l(n,e,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/.test(t))return l(n,e,"atBlock");if(/^@(font-face|counter-style)/.test(t))return n.stateArg=t,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/.test(t))return"keyframes";if(t&&"@"==t.charAt(0))return l(n,e,"at");if("hash"==t)g="builtin";else if("word"==t)g="tag";else{if("variable-definition"==t)return"maybeprop";if("interpolation"==t)return l(n,e,"interpolation");if(":"==t)return"pseudo";if(P&&"("==t)return l(n,e,"parens")}return n.context.type},L.block=function(t,e,n){if("word"==t){var i=e.current().toLowerCase();return C.hasOwnProperty(i)?(g="property","maybeprop"):k.hasOwnProperty(i)?(g="string-2","maybeprop"):P?(g=e.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(g+=" error","maybeprop")}return"meta"==t?"block":P||"hash"!=t&&"qualifier"!=t?L.top(t,e,n):(g="error","block")},L.maybeprop=function(t,e,n){return":"==t?l(n,e,"prop"):u(t,e,n)},L.prop=function(t,e,n){if(";"==t)return c(n);if("{"==t&&P)return l(n,e,"propBlock");if("}"==t||"{"==t)return h(t,e,n);if("("==t)return l(n,e,"parens");if("hash"!=t||/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(e.current())){if("word"==t)d(e);else if("interpolation"==t)return l(n,e,"interpolation")}else g+=" error";return"prop"},L.propBlock=function(t,e,n){return"}"==t?c(n):"word"==t?(g="property","maybeprop"):n.context.type},L.parens=function(t,e,n){return"{"==t||"}"==t?h(t,e,n):")"==t?c(n):"("==t?l(n,e,"parens"):"interpolation"==t?l(n,e,"interpolation"):("word"==t&&d(e),"parens")},L.pseudo=function(t,e,n){return"meta"==t?"pseudo":"word"==t?(g="variable-3",n.context.type):u(t,e,n)},L.documentTypes=function(t,e,n){return"word"==t&&y.hasOwnProperty(e.current())?(g="tag",n.context.type):L.atBlock(t,e,n)},L.atBlock=function(t,e,n){if("("==t)return l(n,e,"atBlock_parens");if("}"==t||";"==t)return h(t,e,n);if("{"==t)return c(n)&&l(n,e,P?"block":"top");if("interpolation"==t)return l(n,e,"interpolation");if("word"==t){var i=e.current().toLowerCase();g="only"==i||"not"==i||"and"==i||"or"==i?"keyword":b.hasOwnProperty(i)?"attribute":x.hasOwnProperty(i)?"property":w.hasOwnProperty(i)?"keyword":C.hasOwnProperty(i)?"property":k.hasOwnProperty(i)?"string-2":M.hasOwnProperty(i)?"atom":E.hasOwnProperty(i)?"keyword":"error"}return n.context.type},L.atComponentBlock=function(t,e,n){return"}"==t?h(t,e,n):"{"==t?c(n)&&l(n,e,P?"block":"top",!1):("word"==t&&(g="error"),n.context.type)},L.atBlock_parens=function(t,e,n){return")"==t?c(n):"{"==t||"}"==t?h(t,e,n,2):L.atBlock(t,e,n)},L.restricted_atBlock_before=function(t,e,n){return"{"==t?l(n,e,"restricted_atBlock"):"word"==t&&"@counter-style"==n.stateArg?(g="variable","restricted_atBlock_before"):u(t,e,n)},L.restricted_atBlock=function(t,e,n){return"}"==t?(n.stateArg=null,c(n)):"word"==t?(g="@font-face"==n.stateArg&&!S.hasOwnProperty(e.current().toLowerCase())||"@counter-style"==n.stateArg&&!T.hasOwnProperty(e.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},L.keyframes=function(t,e,n){return"word"==t?(g="variable","keyframes"):"{"==t?l(n,e,"top"):u(t,e,n)},L.at=function(t,e,n){return";"==t?c(n):"{"==t||"}"==t?h(t,e,n):("word"==t?g="tag":"hash"==t&&(g="builtin"),"at")},L.interpolation=function(t,e,n){return"}"==t?c(n):"{"==t||";"==t?h(t,e,n):("word"==t?g="variable":"variable"!=t&&"("!=t&&")"!=t&&(g="error"),"interpolation")},{startState:function(t){return{tokenize:null,state:f?"block":"top",stateArg:null,context:new a(f?"block":"top",t||0,null)}},token:function(t,e){if(!e.tokenize&&t.eatSpace())return null;var n=(e.tokenize||r)(t,e);return n&&"object"==typeof n&&(p=n[1],n=n[0]),g=n,"comment"!=p&&(e.state=L[e.state](p,t,e)),g},indent:function(t,e){var n=t.context,i=e&&e.charAt(0),r=n.indent;return"prop"!=n.type||"}"!=i&&")"!=i||(n=n.prev),n.prev&&("}"!=i||"block"!=n.type&&"top"!=n.type&&"interpolation"!=n.type&&"restricted_atBlock"!=n.type?(")"!=i||"parens"!=n.type&&"atBlock_parens"!=n.type)&&("{"!=i||"at"!=n.type&&"atBlock"!=n.type)||(r=Math.max(0,n.indent-v)):(n=n.prev,r=n.indent)),r},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:A,fold:"brace"}});var i=["domain","regexp","url","url-prefix"],r=e(i),o=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],s=e(o),a=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover"],l=e(a),c=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive"],u=e(c),h=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","justify-items","justify-self","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","place-content","place-items","place-self","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","user-select","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],d=e(h),f=["scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-3d-light-color","scrollbar-track-color","shape-inside","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","zoom"],p=e(f),g=["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"],v=e(g),m=["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"],y=e(m),b=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],x=e(b),w=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","devanagari","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","georgian","graytext","grid","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hard-light","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","luminosity","malayalam","match","matrix","matrix3d","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","multiply","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","opacity","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","somali","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","square-button","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unset","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"],C=e(w),k=i.concat(o).concat(a).concat(c).concat(h).concat(f).concat(b).concat(w);t.registerHelper("hintWords","css",k),t.defineMIME("text/css",{documentTypes:r,mediaTypes:s,mediaFeatures:l,mediaValueKeywords:u,propertyKeywords:d,nonStandardPropertyKeywords:p,fontProperties:v,counterDescriptors:y,colorKeywords:x,valueKeywords:C,tokenHooks:{"/":function(t,e){return!!t.eat("*")&&(e.tokenize=n,n(t,e))}},name:"css"}),t.defineMIME("text/x-scss",{mediaTypes:s,mediaFeatures:l,mediaValueKeywords:u,propertyKeywords:d,nonStandardPropertyKeywords:p,colorKeywords:x,valueKeywords:C,fontProperties:v,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(t,e){return t.eat("/")?(t.skipToEnd(),["comment","comment"]):t.eat("*")?(e.tokenize=n,n(t,e)):["operator","operator"]},":":function(t){return!!t.match(/\s*\{/,!1)&&[null,null]},$:function(t){return t.match(/^[\w-]+/),t.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"]},"#":function(t){return!!t.eat("{")&&[null,"interpolation"]}},name:"css",helperType:"scss"}),t.defineMIME("text/x-less",{mediaTypes:s,mediaFeatures:l,mediaValueKeywords:u,propertyKeywords:d,nonStandardPropertyKeywords:p,colorKeywords:x,valueKeywords:C,fontProperties:v,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(t,e){return t.eat("/")?(t.skipToEnd(),["comment","comment"]):t.eat("*")?(e.tokenize=n,n(t,e)):["operator","operator"]},"@":function(t){return t.eat("{")?[null,"interpolation"]:!t.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/,!1)&&(t.eatWhile(/[\w\\\-]/),t.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"])},"&":function(){return["atom","atom"]}},name:"css",helperType:"less"}),t.defineMIME("text/x-gss",{documentTypes:r,mediaTypes:s,mediaFeatures:l,propertyKeywords:d,nonStandardPropertyKeywords:p,fontProperties:v,counterDescriptors:y,colorKeywords:x,valueKeywords:C,supportsAtComponent:!0,tokenHooks:{"/":function(t,e){return!!t.eat("*")&&(e.tokenize=n,n(t,e))}},name:"css",helperType:"gss"})})},function(t,e,n){"use strict";var i=n(0),r=n(28);t.exports=i.Model.extend({defaults:{id:"",content:"",visible:!0,buttons:[],attributes:{}},initialize:function(t){this.btn=this.get("buttons")||[],this.buttons=new r(this.btn),this.set("buttons",this.buttons)}})},function(t,e,n){"use strict";var i=n(0),r=n(109);t.exports=i.Collection.extend({model:r,deactivateAllExceptOne:function(t,e){this.forEach(function(n,i){n!==t&&(n.set("active",!1),e&&n.get("buttons").length&&n.get("buttons").deactivateAllExceptOne(t,e))})},deactivateAll:function(t){var e=t||"";this.forEach(function(t,n){t.get("context")==e&&(t.set("active",!1),t.get("buttons").length&&t.get("buttons").deactivateAll(e))})},disableAllButtons:function(t){var e=t||"";this.forEach(function(t,n){t.get("context")==e&&(t.set("disable",!0),t.get("buttons").length&&t.get("buttons").disableAllButtons(e))})},disableAllButtonsExceptOne:function(t,e){this.forEach(function(n,i){n!==t&&(n.set("disable",!0),e&&n.get("buttons").length&&n.get("buttons").disableAllButtonsExceptOne(t,e))})}})},function(t,e,n){"use strict";var i=n(0),r=n(30);t.exports=i.View.extend({initialize:function(t){var e=t.config||{};this.config=e,this.pfx=e.stylePrefix||"",this.ppfx=e.pStylePrefix||"",this.buttons=this.model.get("buttons"),this.className=this.pfx+"panel",this.id=this.pfx+this.model.get("id"),this.listenTo(this.model,"change:appendContent",this.appendContent),this.listenTo(this.model,"change:content",this.updateContent)},appendContent:function(){this.$el.append(this.model.get("appendContent"))},updateContent:function(){this.$el.html(this.model.get("content"))},attributes:function(){return this.model.get("attributes")},initResize:function(){var t=this.config.em,e=t?t.get("Editor"):"",n=this.model.get("resizable");if(e&&n){var i,r,o,s=!0===n?[1,1,1,1]:n,a=s.length,l=0;2==a?(i=s[0],o=s[0],r=s[1],l=s[1]):4==a&&(i=s[0],r=s[1],o=s[2],l=s[3]);var c=e.Utils.Resizer.init({tc:i,cr:r,bc:o,cl:l,tl:0,tr:0,bl:0,br:0,appendTo:this.el,prefix:e.getConfig().stylePrefix,posFetcher:function(t){var e=t.getBoundingClientRect();return{left:0,top:0,width:e.width,height:e.height}}});c.blur=function(){},c.focus(this.el)}},render:function(){var t=this.$el,e=this.ppfx;if(t.attr("class",this.className+" "+e+"one-bg"),this.id&&t.attr("id",this.id),this.buttons.length){var n=new r({collection:this.buttons,config:this.config});t.append(n.render().el)}return t.append(this.model.get("content")),this}})},function(t,e,n){"use strict";(function(e){var i=n(0),r=n(111);t.exports=i.View.extend({initialize:function(t){this.opt=t||{},this.config=this.opt.config||{},this.pfx=this.config.stylePrefix||"",this.parentM=this.opt.parentM||null,this.listenTo(this.collection,"add",this.addTo),this.listenTo(this.collection,"reset",this.render),this.className=this.pfx+"buttons"},addTo:function(t){this.addToCollection(t)},addToCollection:function(t,e){var n=e||null,i=r,o=new i({model:t,config:this.config,parentM:this.parentM}),s=o.render().el;return n?n.appendChild(s):this.$el.append(s),s},render:function(){var t=document.createDocumentFragment();return this.$el.empty(),this.collection.each(function(e){this.addToCollection(e,t)},this),this.$el.append(t),this.$el.attr("class",e.result(this,"className")),this}})}).call(e,n(1))},function(t,e,n){"use strict";var i=Object.assign||function(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},n=e.model,o=void 0===n?{}:n,s=e.view,a=void 0===s?{}:s,l=this.getType(t);if(l)return new l.view(i({model:new l.model(o),config:r},a))},render:function(){return e.render().el}}}},function(t,e,n){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0});var n=t.Model,i=t.View;e.default={types:[],initialize:function(t,e){var n=this;this.model=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=void 0,r=void 0,o=void 0;if(t&&t.type){var s=n.getBaseType();o=n.getType(t.type),i=o?o.model:s.model,r=o?o.view:s.view}else{var a=n.recognizeType(t);o=a.type,i=o.model,r=o.view,t=a.attributes}var l=new i(t,e);return l.typeView=r,l};var i=this.init&&this.init.bind(this);i&&i()},recognizeType:function(t){for(var e=this.getTypes(),n=0;n\n \n
\n \n '},init:function(){var t=this.model;this.pfx;t.set("stackIndex",null),this.events["click [data-add-layer]"]="addLayer",this.listenTo(t,"change:stackIndex",this.indexChanged),this.listenTo(t,"updateValue",this.inputValueChanged),this.delegateEvents()},targetUpdated:function(){if(this.model.get("detached"))this.checkVisibility();else{for(var t=arguments.length,e=Array(t),n=0;n'},inputClass:function(){return this.ppfx+"field"},holderClass:function(){return this.ppfx+"input-holder"},initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.ppfx||"";this.opts=t,this.ppfx=e,this.em=t.target||{},this.listenTo(this.model,"change:value",this.handleModelChange)},elementUpdated:function(){this.model.trigger("el:change")},setValue:function(t){var e=this.model,n=t||e.get("defaults"),i=this.getInputEl();i&&(i.value=n)},handleModelChange:function(t,e,n){this.setValue(e,n)},handleChange:function(t){t.stopPropagation(),this.model.set("value",this.getInputEl().value),this.elementUpdated()},getInputEl:function(){if(!this.inputEl){var t=this.model.get("defaults");this.inputEl=n('')}return this.inputEl.get(0)},render:function(){var t=this.$el;return t.addClass(this.inputClass()),t.html(this.template()),t.find("."+this.holderClass()).append(this.getInputEl()),this}})}).call(e,n(0))},function(t,e,n){"use strict";t.exports=n(5).extend({templateInput:function(){var t=(this.pfx,this.ppfx);return'\n
\n
\n '},onRender:function(){var t=this.pfx,e=this.ppfx,n=e+"radio-item-label",i=this.model,r=i.get("property"),o=i.get("list")||i.get("options")||[];if(!this.input&&o&&o.length){var s="";o.forEach(function(i){var o=i.className?i.className+" "+t+"icon "+n:"",a=r+"-"+i.value,l=i.name||i.value,c=i.title?'title="'+i.title+'"':"";s+='\n
\n \n \n
\n "});var a=this.el.querySelector("."+e+"field");a.innerHTML='
'+s+"
",this.input=a.firstChild}},getInputValue:function(){var t=this.getCheckedEl();return t?t.value:""},getCheckedEl:function(){var t=this.getInputEl();return t?t.querySelector("input:checked"):""},setValue:function(t){var e=this.model,n=t||e.get("value")||e.getDefaultValue(),i=this.getInputEl(),r=i?i.querySelector('[value="'+n+'"]'):"";if(r)r.checked=!0;else{var o=this.getCheckedEl();o&&(o.checked=!1)}}})},function(t,e,n){"use strict";(function(e){e.$;t.exports=n(5).extend({templateInput:function(){var t=this.pfx,e=this.ppfx;return'\n
\n \n
\n
\n
\n
\n '},onRender:function(){var t=this.pfx,e=this.model,n=e.get("list")||e.get("options")||[];if(!this.input){var i="";n.forEach(function(t){var e=t.name||t.value,n=t.style?t.style.replace(/"/g,"""):"",r=n?'style="'+n+'"':"",o=t.value.replace(/"/g,""");i+='"});var r=this.el.querySelector("#"+t+"input-holder");r.innerHTML="",this.input=r.firstChild}}})}).call(e,n(0))},function(t,e,n){"use strict";var i=Object.assign||function(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{};e=i({},e,{silent:1}),this.inputInst.setValue(t,e)},onRender:function(){if(!this.input){var t=this.ppfx,e=new r({target:this.target,model:this.model,ppfx:t}),n=e.render();this.el.querySelector("."+t+"fields").appendChild(n.el),this.$input=n.inputEl,this.$color=n.colorEl,this.input=this.$input.get(0),this.inputInst=n}}})},function(t,e,n){"use strict";(function(e){var i=Object.assign||function(t){for(var e=1;e\n
\n
\n
\n
\n
\n '},inputClass:function(){var t=this.ppfx;return t+"field "+t+"field-color"},holderClass:function(){return this.ppfx+"input-holder"},setValue:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.model,i=t||n.get("defaults"),r=this.getInputEl(),o=this.getColorEl(),s="none"!=i?i:"";r.value=i,o.get(0).style.backgroundColor=s,e.fromTarget&&(o.spectrum("set",s),this.noneColor="none"==i)},getColorEl:function(){if(!this.colorEl){var t=this,e=this.ppfx,n=this.model,r=o('
'),s=r.get(0).style,a=this.em&&this.em.config?this.em.config.el:"",l=this.em&&this.em.getConfig&&this.em.getConfig("colorPicker")||{},c=function(t){return(1==t.getAlpha()?t.toHexString():t.toRgbString()).replace(/ /g,"")},u=0,h=void 0;this.$el.find("[data-colorp-c]").append(r),r.spectrum(i({containerClassName:e+"one-bg "+e+"two-color",appendTo:a||"body",maxSelectionSize:8,showPalette:!0,showAlpha:!0,chooseText:"Ok",cancelText:"⨯",palette:[]},l,{move:function(t){var e=c(t);s.backgroundColor=e,n.setValueFromInput(e,0)},change:function(e){u=1;var i=c(e);s.backgroundColor=i,n.setValueFromInput(i),t.noneColor=0},show:function(t){u=0,h=c(t)},hide:function(e){!u&&h&&(t.noneColor&&(h=""),s.backgroundColor=h,r.spectrum("set",h),n.setValueFromInput(h,0))}})),this.colorEl=r}return this.colorEl},render:function(){return r.prototype.render.call(this),this.getColorEl(),this}})}).call(e,n(0))},function(t,e,n){"use strict";(function(e){var i=n(5),r=e.$;t.exports=i.extend({templateInput:function(){var t=this.pfx;this.ppfx;return'\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n '},init:function(){var t=this.em;this.modal=t.get("Modal"),this.am=t.get("AssetManager"),this.events["click #"+this.pfx+"close"]="removeFile",this.events["click #"+this.pfx+"images"]="openAssetManager",this.delegateEvents()},onRender:function(){if(!this.$input){var t=this.model.getDefaultValue();this.$input=r('')}this.$preview||(this.$preview=this.$el.find("#"+this.pfx+"preview-file")),this.$previewBox||(this.$previewBox=this.$el.find("#"+this.pfx+"preview-box")),this.setValue(this.componentValue,0)},setValue:function(t,e){i.prototype.setValue.apply(this,arguments),this.setPreviewView(t&&t!=this.model.getDefaultValue()),this.setPreview(t)},setPreviewView:function(t){var e=this.$previewBox;e&&e[t?"addClass":"removeClass"](this.pfx+"show")},spreadUrl:function(t){this.model.set("value",t),this.setPreviewView(1)},setPreview:function(t){var e=this.$preview;t=t&&t.indexOf("url(")<0?"url("+t+")":t,e&&e.css("background-image",t)},cleanValue:function(){this.setPreviewView(0),this.model.set({value:""},{silent:!0})},removeFile:function(){this.model.set("value",this.model.getDefaultValue());for(var t=arguments.length,e=Array(t),n=0;n\n
\n '},getInfo:function(){var t=this.pfx,e=this.model,n=e.get("name"),i=e.get("width"),r=e.get("height"),o=e.get("unitDim"),s=i&&r?i+"x"+r+o:"";return n=n||e.getFilename(),'\n
'+n+'
\n
'+s+"
\n "},init:function(t){var e=this.pfx;this.className+=" "+e+"asset-image"},onClick:function(){var t=this.config.onClick,e=this.model;this.collection.trigger("deselectAll"),this.$el.addClass(this.pfx+"highlight"),"function"==typeof t?t(e):this.updateTarget(this.collection.target)},onDblClick:function(){var t=this.em,e=this.config.onDblClick,n=this.model;"function"==typeof e?e(n):(this.updateTarget(this.collection.target),t&&t.get("Modal").close());var i=this.collection.onSelect;"function"==typeof i&&i(this.model)},onRemove:function(t){t.stopImmediatePropagation(),this.model.collection.remove(this.model)}})},function(t,e,n){"use strict";(function(e,n){t.exports=e.View.extend({initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.options=t,this.collection=t.collection;var e=t.config||{};this.config=e,this.pfx=e.stylePrefix||"",this.ppfx=e.pStylePrefix||"",this.em=e.em,this.className=this.pfx+"asset",this.listenTo(this.model,"destroy remove",this.remove),this.model.view=this;var n=this.init&&this.init.bind(this);n&&n(t)},template:function(){var t=this.pfx;return'\n
\n '+this.getPreview()+'\n
\n
\n '+this.getInfo()+'\n
\n
\n ⨯\n
\n '},updateTarget:function(t){t&&t.set&&(t.set("attributes",n.clone(t.get("attributes"))),t.set("src",this.model.get("src")))},getPreview:function(){return""},getInfo:function(){return""},render:function(){var t=this.el;return t.innerHTML=this.template(this,this.model),t.className=this.className,this}})}).call(e,n(0),n(1))},function(t,e,n){"use strict";(function(e,i){var r=n(24),o=function(t){return t&&t.__esModule?t:{default:t}}(r);t.exports=e.View.extend({template:i.template('\n
\n
<%= title %>
\n multiple/>\n
\n
\n '),events:{},initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.options=t;var e=t.config||{};this.config=e,this.pfx=e.stylePrefix||"",this.ppfx=e.pStylePrefix||"",this.target=this.options.globalCollection||{},this.uploadId=this.pfx+"uploadFile",this.disabled=void 0!==e.disableUpload?e.disableUpload:!e.upload&&!e.embedAsBase64,this.events["change #"+this.uploadId]="uploadFile";var n=e.uploadFile;n?this.uploadFile=n.bind(this):e.embedAsBase64&&(this.uploadFile=this.constructor.embedAsBase64),this.delegateEvents()},onUploadStart:function(){var t=this.config.em;t&&t.trigger("asset:upload:start")},onUploadEnd:function(t){var e=this.config.em;e&&e.trigger("asset:upload:end",t)},onUploadError:function(t){var e=this.config.em;console.error(t),this.onUploadEnd(t),e&&e.trigger("asset:upload:error",t)},onUploadResponse:function(t,e){var n=this.config.em,i=this.config,r=this.target,o="string"==typeof t?JSON.parse(t):t;n&&n.trigger("asset:upload:response",o),i.autoAdd&&r&&r.add(o.data,{at:0}),this.onUploadEnd(t),e&&e(o)},uploadFile:function(t,e){for(var n=this,i=t.dataTransfer?t.dataTransfer.files:t.target.files,r=new FormData,s=this.config,a=s.params,l=0;l'+i.dropzoneContent+""),h(),"draggable"in o&&[o,a].forEach(function(t){t.ondragover=d,t.ondragleave=f,t.ondrop=p})},render:function(){return this.$el.html(this.template({title:this.config.uploadText,uploadId:this.uploadId,disabled:this.disabled,pfx:this.pfx})),this.initDrop(),this.$el.attr("class",this.pfx+"file-uploader"),this}},{embedAsBase64:function(t,e){var n=this,i=t.dataTransfer?t.dataTransfer.files:t.target.files,r={data:[]};if(!FileReader)return void this.onUploadError(new Error("Unsupported platform, FileReader is not defined"));var o=[],s=/^(.+)\/(.+)$/,a=!0,l=!1,c=void 0;try{for(var u,h=i[Symbol.iterator]();!(a=(u=h.next()).done);a=!0){var d=u.value;!function(t){var e=new Promise(function(e,n){var i=new FileReader;i.addEventListener("load",function(r){var o=void 0,a=t.name,l=s.exec(t.type);if("image"===(o=l?l[1]:t.type)){var c={src:i.result,name:a,type:o,height:0,width:0},u=new Image;u.addEventListener("error",function(t){n(t)}),u.addEventListener("load",function(){c.height=u.height,c.width=u.width,e(c)}),u.src=c.src}else e(o?{src:i.result,name:a,type:o}:i.result)}),i.addEventListener("error",function(t){n(t)}),i.addEventListener("abort",function(t){n("Aborted")}),i.readAsDataURL(t)});o.push(e)}(d)}}catch(t){l=!0,c=t}finally{try{!a&&h.return&&h.return()}finally{if(l)throw c}}Promise.all(o).then(function(t){r.data=t,n.onUploadResponse(r,e)},function(t){n.onUploadError(t)})}})}).call(e,n(0),n(1))},function(t,e,n){"use strict";(function(e){var i=n(47),r=function(t){return t&&t.__esModule?t:{default:t}}(i),o=n(0),s=n(10);t.exports=o.Model.extend(r.default).extend({defaults:{selectors:{},selectorsAdd:"",style:{},mediaText:"",state:"",stylable:!0,important:0},initialize:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.config=t||{};var n=e.em,i=this.config.selectors||[];if(this.em=n,n){var r=n.get("SelectorManager"),o=[];i.forEach(function(t){o.push(r.add(t))}),i=o}this.set("selectors",new s(i))},selectorsToString:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=[],n=this.get("state"),i=this.get("selectorsAdd"),r=this.get("selectors").getFullString(),o=n?":"+n:"";return r&&e.push(""+r+o),i&&!t.skipAdd&&e.push(i),e.join(", ")},toCSS:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e="",n=this.get("mediaText"),i=this.styleToString(t),r=this.selectorsToString();return r&&i&&(e=r+"{"+i+"}"),n&&e&&(e="@media "+n+"{"+e+"}"),e},compare:function(t,n,i,r){var o=r||{},s=n||"",a=i||"",l=o.selectorsAdd||"";t instanceof Array||t.models||(t=[t]);var c=e.map(t.models||t,function(t){return t.get("name")}),u=e.map(this.get("selectors").models,function(t){return t.get("name")});if(c.length!==u.length)return!1;for(var h=0;h0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,r.isString)(e)&&(e=l(e));var s=this.getStyle(),a=i({},e);this.set("style",a,n);var c=(0,o.shallowDiff)(s,a);return(0,r.keys)(c).forEach(function(e){return t.trigger("change:style:"+e)}),a},addStyle:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};"string"==typeof t?t={prop:e}:n=e||{},t=this.extendStyle(t),this.setStyle(t,n)},removeStyle:function(t){var e=this.getStyle();delete e[t],this.setStyle(e)},styleToString:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=[],n=this.getStyle();for(var i in n){var o=t.important,s=(0,r.isArray)(o)?o.indexOf(i)>=0:o,a=n[i]+(s?" !important":"");e.push(i+":"+a+";")}return e.join("")}}},function(t,e,n){"use strict";var i=n(0);t.exports=i.View.extend({itemView:"",itemsView:"",itemType:"type",initialize:function(t,e){this.config=e||{}},addTo:function(t){this.add(t)},add:function(t,e){var n=e||null,i=this.itemView,r=t.get(this.itemType);this.itemsView&&this.itemsView[r]&&(i=this.itemsView[r]);var o=new i({model:t,config:this.config},this.config),s=o.render().el;n?n.appendChild(s):this.$el.append(s)},render:function(){var t=document.createDocumentFragment();return this.$el.empty(),this.collection.length&&this.collection.each(function(e){this.add(e,t)},this),this.$el.append(t),this}})},function(t,e,n){"use strict";var i=n(1),r=n(0);t.exports=r.Collection.extend({initialize:function(t,e){this.on("add",this.onAdd),this.config=e&&e.config?e.config:null,e&&(e.sm||e.em)&&(this.editor=e.sm||e.em),this.model=function(t,n){var i;!n.sm&&e&&e.sm&&(n.sm=e.sm),!n.em&&e&&e.em&&(n.em=e.em),e&&e.config&&(n.config=e.config),e&&e.componentTypes&&(n.componentTypes=e.componentTypes);for(var r=e.componentTypes,o=0;o1&&void 0!==arguments[1]?arguments[1]:{};if("string"==typeof t){var n=this.editor.get("Parser").parseHtml(t);t=n.html;var i=this.editor.get("CssComposer");if(n.css&&i){var o=e.avoidUpdateStyle;i.addCollection(n.css,{extend:1,avoidUpdateStyle:o})}}return r.Collection.prototype.add.apply(this,[t,e])},onAdd:function(t,e,n){var r=this.editor,o=t.get("style"),s=r&&r.getConfig("avoidInlineStyle");if(!(0,i.isEmpty)(o)&&!s&&r&&r.get&&r.get("Config").forceClass){var a=this.editor.get("CssComposer"),l=this.editor.get("SelectorManager").add(t.cid);t.set({style:{}}),t.get("classes").add(l);a.add(l).set("style",o)}}})},function(t,e,n){"use strict";(function(e){var i=n(1);t.exports=e.View.extend({initialize:function(t){this.opts=t||{},this.config=t.config||{};var e=this.collection;this.listenTo(e,"add",this.addTo),this.listenTo(e,"reset",this.resetChildren)},addTo:function(t){var e=this.config.em,n=this.collection.indexOf(t);this.addToCollection(t,null,n),e&&!t.opt.temporary&&(e.trigger("add:component",t),e.trigger("component:add",t))},addToCollection:function(t,e,r){this.compView||(this.compView=n(3));for(var o=e||null,s=this.compView,a=this.opts.componentTypes,l=t.get("type"),c=0;c':"")+'\n\n
\n
\n
\n \n '+t.getIcon()+'\n \n
\n
\n
\n
'+(r||"")+'
\n
\n \n
\n
\n '},initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.opt=t,this.level=t.level,this.config=t.config,this.em=t.config.em,this.ppfx=this.em.get("Config").stylePrefix,this.sorter=t.sorter||"",this.pfx=this.config.stylePrefix;var e=this.pfx,n=this.ppfx,i=this.model,r=i.get("components");i.set("open",!1),this.listenTo(r,"remove add change reset",this.checkChildren),this.listenTo(i,"destroy remove",this.remove),this.listenTo(i,"change:status",this.updateStatus),this.listenTo(i,"change:open",this.updateOpening),this.listenTo(i,"change:style:display",this.updateVisibility),this.className=e+"item no-select",this.editBtnCls=e+"nav-item-edit",this.inputNameCls=n+"nav-comp-name",this.caretCls=n+"nav-item-caret",this.titleCls=e+"title",this.$el.data("model",i),this.$el.data("collection",r)},getVisibilityEl:function(){return this.eyeEl||(this.eyeEl=this.$el.children("#"+this.pfx+"btn-eye")),this.eyeEl},updateVisibility:function(){var t=this.pfx,e=this.model,n=t+"hide",i="none"==e.getStyle().display,r=i?"addClass":"removeClass";this.$el[r](n),this.getVisibilityEl()[r]("fa-eye-slash")},toggleVisibility:function(t){t&&t.stopPropagation();var e=this.model,n=e.getStyle();"none"==n.display?delete n.display:n.display="none",e.setStyle(n)},handleEdit:function(t){t.stopPropagation();var e=this.getInputName();e.readOnly=!1,e.focus()},handleEditEnd:function(t){t.stopPropagation();var e=this.getInputName();e.readOnly=!0,this.model.set("custom-name",e.value)},getInputName:function(){return this.inputName||(this.inputName=this.el.querySelector("."+this.inputNameCls)),this.inputName},updateOpening:function(){var t=this.opt.opened||{},e=this.model;e.get("open")?(this.$el.addClass("open"),this.getCaret().addClass("fa-chevron-down"),t[e.cid]=e):(this.$el.removeClass("open"),this.getCaret().removeClass("fa-chevron-down"),delete t[e.cid])},toggleOpening:function(t){t.stopPropagation(),this.model.get("components").length&&this.model.set("open",!this.model.get("open"))},handleSelect:function(t){t.stopPropagation(),this.em&&this.em.setSelected(this.model,{fromLayers:1})},startSort:function(t){t.stopPropagation(),0===t.button&&this.sorter&&this.sorter.startSort(t.target)},freeze:function(){this.$el.addClass(this.pfx+"opac50"),this.model.set("open",0)},unfreeze:function(){this.$el.removeClass(this.pfx+"opac50")},updateStatus:function(t){r.prototype.updateStatus.apply(this,arguments)},isVisible:function(){var t=this.model.get("style"),e=t.display;if(!e||"none"!=e)return 1},checkChildren:function(){var t=this.model,e=this.countChildren(t),n=this.pfx,i=n+"no-chld",r=this.$el.children("."+n+"title-c").children("."+n+"title");this.$counter||(this.$counter=this.$el.children("#"+n+"counter")),e?(r.removeClass(i),this.$counter.html(e)):(r.addClass(i),this.$counter.empty(),t.set("open",0))},countChildren:function(t){var e=0;return t.get("components").each(function(t){var n=this.opt.isCountable,i=this.config.hideTextnode;n&&!n(t,i)||e++},this),e},getCaret:function(){if(!this.caret){var t=this.pfx;this.caret=this.$el.children("."+t+"title-c").find("#"+t+"caret")}return this.caret},render:function(){var t=this.model,e=this.pfx,r=this.isVisible(),s=this.$el,a=this.level+1;s.html(this.template(t)),(0,i.isUndefined)(o)&&(o=n(56));var l=new o({collection:t.get("components"),config:this.config,sorter:this.sorter,opened:this.opt.opened,parent:t,level:a}).render().$el;return s.find("."+e+"children").append(l),t.get("draggable")&&this.config.sortable||s.children("#"+e+"move").remove(),!r&&(this.className+=" "+e+"hide"),s.attr("class",this.className),this.updateOpening(),this.updateStatus(),this.updateVisibility(),this}})},function(t,e,n){"use strict";var i=n(0),r=n(55);t.exports=i.View.extend({initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.opt=t;var e=t.config||{};if(this.level=t.level,this.config=e,this.preview=t.preview,this.ppfx=e.pStylePrefix||"",this.pfx=e.stylePrefix||"",this.parent=t.parent,this.listenTo(this.collection,"add",this.addTo),this.listenTo(this.collection,"reset resetNavigator",this.render),this.className=this.pfx+"items",e.sortable&&!this.opt.sorter){var n=this.pfx,i=e.em.get("Utils");this.opt.sorter=new i.Sorter({container:e.sortContainer||this.el,containerSel:"."+n+"items",itemSel:"."+n+"item",ppfx:this.ppfx,ignoreViewChildren:1,avoidSelectOnEnd:1,pfx:n,nested:1})}this.sorter=this.opt.sorter||"",this.$el.data("collection",this.collection),this.parent&&this.$el.data("model",this.parent)},addTo:function(t){var e=this.collection.indexOf(t);this.addToCollection(t,null,e)},addToCollection:function(t,e,n){var i=this.level,o=e||null,s=r;if(this.isCountable(t,this.config.hideTextnode)){var a=new s({level:i,model:t,config:this.config,sorter:this.sorter,isCountable:this.isCountable,opened:this.opt.opened}),l=a.render().el;if(o)o.appendChild(l);else if(void 0!==n){var c="before";this.$el.children().length==n&&(n--,c="after"),n<0?this.$el.append(l):this.$el.children().eq(n)[c](l)}else this.$el.append(l);return l}},isCountable:function(t,e){var n=t.get("type"),i=t.get("tagName");return!(("textnode"==n||"br"==i)&&e||!t.get("layerable"))},render:function(){var t=this,e=document.createDocumentFragment();return this.el.innerHTML="",this.collection.each(function(n){return t.addToCollection(n,e)}),this.el.appendChild(e),this.$el.attr("class",this.className),this}})},function(t,e,n){"use strict";var i=n(0);t.exports=i.Model.extend({defaults:{id:"",label:"",open:!0,attributes:{}}})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(9),o=i(r),s=n(1);(0,i(n(59)).default)(),t.exports=function(){var t=n(60),e=n(219),i=new e,r=[],a={autorender:1,container:"",components:"",style:"",fromElement:0,storageManager:{},plugins:[],pluginsOpts:{}};return{$:o.default,editors:r,plugins:i,version:"0.13.5",init:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.container;if(!n)throw new Error("'container' is required");(0,s.defaults)(e,a),e.el=n instanceof window.HTMLElement?n:document.querySelector(n);var o=new t(e).init();return e.plugins.forEach(function(t){var n=i.get(t);n?n(o,e.pluginsOpts[t]||{}):console.warn("Plugin "+t+" not found")}),o.getModel().loadOnStart(),e.autorender&&o.render(),r.push(o),o}}}()},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){if(function(){for(var t=void 0,e=window.navigator.userAgent,n=[["edge",/Edge\/([0-9\._]+)/],["ie",/MSIE\s(7\.0)/],["ie",/MSIE\s([0-9\.]+);.*Trident\/[4-7].0/],["ie",/Trident\/7\.0.*rv\:([0-9\.]+).*\).*Gecko$/]],i=0;i0&&void 0!==arguments[0]?arguments[0]:{};this.config=e,this.set("Config",e),this.set("modules",[]),e.el&&e.fromElement&&(this.config.components=e.el.innerHTML),o.forEach(function(e){return t.loadModule(e)}),this.on("change:selectedComponent",this.componentSelected,this),this.on("change:changesCount",this.updateChanges,this)},getConfig:function(t){var e=this.config;return(0,r.isUndefined)(t)?e:e[t]},loadOnStart:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=this.get("StorageManager");this.get("toLoad").forEach(function(t){t.onLoad()});var i=function(){t.get("modules").forEach(function(e){return e.postLoad&&e.postLoad(t)}),e&&e()};n&&n.getConfig().autoload?this.load(i):i()},updateChanges:function(){var t=this.get("StorageManager"),e=this.get("changesCount");this.config.noticeOnUnload&&e?window.onbeforeunload=function(t){return 1}:window.onbeforeunload=null,t.isAutosave()&&e>=t.getStepsBeforeSave()&&this.store()},loadModule:function(t){var e=this.config,n=new t,r=n.name.charAt(0).toLowerCase()+n.name.slice(1),o=e[r]||e[n.name]||{};o.pStylePrefix=e.pStylePrefix||"";var s=this.get("StorageManager");if(n.storageKey&&n.store&&n.load&&s){o.stm=s;var a=this.get("storables");a.push(n),this.set("storables",a)}return o.em=this,n.init(i({},o)),!n.private&&this.set(n.name,n),n.onLoad&&this.get("toLoad").push(n),this.get("modules").push(n),this},init:function(t){this.set("Editor",t)},getEditor:function(){return this.get("Editor")},handleUpdates:function(t,e){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};i.temporary||(a&&clearInterval(a),a=setTimeout(function(){i.avoidStore||n.set("changesCount",n.get("changesCount")+1,i)},0))},componentSelected:function(t,e,n){this.get("selectedComponent")?(this.trigger("select-comp",[t,e,n]),this.trigger("component:selected",arguments)):this.trigger("deselect-comp")},getSelected:function(){return this.get("selectedComponent")},setSelected:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t;t instanceof window.HTMLElement&&(n=l(t).data("model")),n&&!n.get("selectable")||this.set("selectedComponent",n,e)},setComponents:function(t){return this.get("DomComponents").setComponents(t)},getComponents:function(){var t=this.get("DomComponents"),e=this.get("CodeManager");if(t&&e){var n=t.getComponents();return e.getCode(n,"json")}},setStyle:function(t){for(var e=this.get("CssComposer").getAll(),n=0,i=e.length;n"+i+"<\/script>":""},getCss:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.config,n=e.wrappesIsBody,i=t.avoidProtected,r=this.get("CssComposer"),o=this.get("DomComponents").getComponent();return(i?"":e.protectedCss)+this.get("CodeManager").getCode(o,"css",{cssc:r,wrappesIsBody:n})},getJs:function(){var t=this.get("DomComponents").getWrapper();return this.get("CodeManager").getCode(t,"js").trim()},store:function(t){var e=this,n=this.get("StorageManager"),i={};if(n)return this.get("storables").forEach(function(t){var e=t.store(1);for(var n in e)i[n]=e[n]}),n.store(i,function(){t&&t(),e.set("changesCount",0),e.trigger("storage:store",i)}),i},load:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this.getCacheLoad(1,function(n){t.get("storables").forEach(function(t){return t.load(n)}),e&&e(n)})},getCacheLoad:function(t,e){var n=this,i=t?1:0;if(this.cacheLoad&&!i)return this.cacheLoad;var r=this.get("StorageManager"),o=[];if(!r)return{};this.get("storables").forEach(function(t){var e=t.storageKey;e="function"==typeof e?e():e,(e instanceof Array?e:[e]).forEach(function(t){o.push(t)})}),r.load(o,function(t){n.cacheLoad=t,e&&e(t),n.trigger("storage:load",t)})},getDeviceModel:function(){var t=this.get("device");return this.get("DeviceManager").get(t)},runDefault:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.get("Commands").get(this.config.defaultCommand);e&&!this.defaultRunning&&(e.stop(this,this,t),e.run(this,this,t),this.defaultRunning=1)},stopDefault:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.get("Commands").get(this.config.defaultCommand);e&&(e.stop(this,this,t),this.defaultRunning=0)},refreshCanvas:function(){this.set("canvasOffset",this.get("Canvas").getOffset())},clearSelection:function(t){(t||window).getSelection().removeAllRanges()},getCurrentMedia:function(){var t=this.config,e=this.getDeviceModel(),n=t.mediaCondition,i=t.devicePreviewMode,r=e&&e.get("widthMedia");return e&&r&&!i?"("+n+": "+r+")":""},data:function(t,e,n){if(t["_gjs-data"]||(t["_gjs-data"]={}),(0,r.isUndefined)(n))return t["_gjs-data"][e];t["_gjs-data"][e]=n}})},function(t,e,n){"use strict";t.exports=function(){var t=n(64),e=n(65),i=n(66);return{name:"Utils",init:function(){return this},Sorter:t,Resizer:e,Dragger:i}}},function(t,e,n){"use strict";(function(e,i){var r=n(1),o=n(2),s=e.$;t.exports=e.View.extend({initialize:function(t){this.opt=t||{},i.bindAll(this,"startSort","onMove","endMove","rollback","udpateOffset","moveDragHelper");var e=t||{};this.elT=0,this.elL=0,this.borderOffset=e.borderOffset||10;var n=e.container;this.el="string"==typeof n?document.querySelector(n):n,this.$el=s(this.el),this.containerSel=e.containerSel||"div",this.itemSel=e.itemSel||"div",this.draggable=e.draggable||!0,this.nested=e.nested||0,this.pfx=e.pfx||"",this.ppfx=e.ppfx||"",this.freezeClass=e.freezeClass||this.pfx+"freezed",this.onStart=e.onStart||"",this.onEndMove=e.onEndMove||"",this.direction=e.direction||"v",this.onMoveClb=e.onMove||"",this.relative=e.relative||0,this.ignoreViewChildren=e.ignoreViewChildren||0,this.ignoreModels=e.ignoreModels||0,this.plh=e.placer||"",this.wmargin=e.wmargin||0,this.offTop=e.offsetTop||0,this.offLeft=e.offsetLeft||0,this.document=e.document||document,this.$document=s(this.document),this.dropContent=null,this.em=e.em||"",this.dragHelper=null,this.canvasRelative=e.canvasRelative||0,this.selectOnEnd=!e.avoidSelectOnEnd,this.em&&this.em.on&&(this.em.on("change:canvasOffset",this.udpateOffset),this.udpateOffset())},getContainerEl:function(){if(!this.el){var t=this.opt.container;this.el="string"==typeof t?document.querySelector(t):t,this.$el=s(this.el)}return this.el},getDocuments:function(){var t=this.em,e=t&&t.get("Canvas").getBody().ownerDocument,n=[document];return e&&n.push(e),n},udpateOffset:function(){var t=this.em.get("canvasOffset");this.offTop=t.top,this.offLeft=t.left},setDropContent:function(t){this.dropContent=t},toggleSortCursor:function(t){var e=this.em;document.body,this.ppfx||this.pfx,e&&e.get("Canvas").getBody();t?e&&e.get("Canvas").startAutoscroll():e&&e.get("Canvas").stopAutoscroll()},setDragHelper:function(t,e){for(var n=e||"",i=t.cloneNode(1),r=t.getBoundingClientRect(),o=getComputedStyle(t),a="",l=0;ls+c-10||ra+l-10)return 1},getCurrentPos:function(){var t=this.eventMove;return{x:t.pageX||0,y:t.pageY||0}},getDim:function(t){var e,n,i,r;if(this.canvasRelative&&this.em){var o=this.em.get("Canvas").getElementPos(t),s=window.getComputedStyle(t),a=parseFloat(s.marginTop),l=parseFloat(s.marginBottom),c=parseFloat(s.marginRight),u=parseFloat(s.marginLeft);e=o.top-a,n=o.left-u,i=o.height+a+l,r=o.width+u+c}else{var h=this.offset(t);e=this.relative?t.offsetTop:h.top-(this.wmargin?-1:1)*this.elT,n=this.relative?t.offsetLeft:h.left-(this.wmargin?-1:1)*this.elL,i=t.offsetHeight,r=t.offsetWidth}return[e,n,i,r]},getChildrenDim:function(t){var e=[];if(!t)return e;var n=this.getTargetModel(t);n&&n.view&&!this.ignoreViewChildren&&(t=n.view.getChildrenContainer());for(var i=t.children,r=0,o=i.length;rs||s>a+c-r||l+r>o||o>l+u-r)&&(i=1),!!i},findPosition:function(t,e,n){for(var i={index:0,method:"before"},r=0,o=0,s=0,a=0,l=0,c=0,u=0,h=0,d=0,f=t.length;do||a&&c>=a||r&&s0&&void 0!==arguments[0]?arguments[0]:{};return i(this,t),this.setOptions(e),(0,o.bindAll)(this,"handleKeyDown","handleMouseDown","move","stop"),this}return r(t,[{key:"getConfig",value:function(){return this.opts}},{key:"setOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.opts=(0,o.defaults)(t,a),this.setup()}},{key:"setup",value:function(){var t=this.opts,e=t.prefix||"",n=t.appendTo||document.body,i=this.container;for(i||(i=document.createElement("div"),i.className=e+"resizer-c",n.appendChild(i),this.container=i);i.firstChild;)i.removeChild(i.firstChild);var r={};["tl","tc","tr","cl","cr","bl","bc","br"].forEach(function(e){return r[e]=t[e]?l(e,t):""});for(var o in r){var s=r[o];s&&i.appendChild(s)}this.handlers=r,this.mousePosFetcher=t.mousePosFetcher,this.updateTarget=t.updateTarget,this.posFetcher=t.posFetcher,this.onStart=t.onStart,this.onMove=t.onMove,this.onEnd=t.onEnd}},{key:"isHandler",value:function(t){var e=this.handlers;for(var n in e)if(e[n]===t)return!0;return!1}},{key:"getFocusedEl",value:function(){return this.el}},{key:"getDocumentEl",value:function(){return[this.el.ownerDocument,document]}},{key:"getElementPos",value:function(t){var e=this.posFetcher||"";return e?e(t):c(t)}},{key:"focus",value:function(t){if(!t||t!==this.el){this.el=t;var e=this.getElementPos(t),n=this.container,i=n.style;i.left=e.left+"px",i.top=e.top+"px",i.width=e.width+"px",i.height=e.height+"px",n.style.display="block",(0,s.on)(this.getDocumentEl(),"mousedown",this.handleMouseDown)}}},{key:"blur",value:function(){this.container.style.display="none",this.el&&((0,s.off)(this.getDocumentEl(),"mousedown",this.handleMouseDown),this.el=null)}},{key:"start",value:function(t){if(0===t.button){t.preventDefault(),t.stopPropagation();var e=this.el,n=this,i=this.opts||{},r="data-"+i.prefix+"handler",a=this.getElementPos(e);this.handlerAttr=t.target.getAttribute(r),this.clickedHandler=t.target,this.startDim={t:a.top,l:a.left,w:a.width,h:a.height},this.rectDim={t:a.top,l:a.left,w:a.width,h:a.height},this.startPos={x:t.clientX,y:t.clientY};var l=this.getDocumentEl();(0,s.on)(l,"mousemove",this.move),(0,s.on)(l,"keydown",this.handleKeyDown),(0,s.on)(l,"mouseup",this.stop),(0,o.isFunction)(this.onStart)&&this.onStart(t,{docs:l,config:i,el:e,resizer:n}),this.move(t)}}},{key:"move",value:function(t){var e=this.onMove,n=this.mousePosFetcher,i=n?n(t):{x:t.clientX,y:t.clientY};this.currentPos=i,this.delta={x:i.x-this.startPos.x,y:i.y-this.startPos.y},this.keys={shift:t.shiftKey,ctrl:t.ctrlKey,alt:t.altKey},this.rectDim=this.calc(this),this.updateRect(0),e&&e(t),0===t.which&&this.stop(t)}},{key:"stop",value:function(t){var e=this.opts,n=this.getDocumentEl();(0,s.off)(n,"mousemove",this.move),(0,s.off)(n,"keydown",this.handleKeyDown),(0,s.off)(n,"mouseup",this.stop),this.updateRect(1),(0,o.isFunction)(this.onEnd)&&this.onEnd(t,{docs:n,config:e})}},{key:"updateRect",value:function(t){var e=this.el,n=this,i=this.opts,r=this.rectDim,s=this.container.style,a=this.updateTarget,l=this.getSelectedHandler(),c=i.unitHeight,u=i.unitWidth;if((0,o.isFunction)(a))a(e,r,{store:t,selectedHandler:l,resizer:n,config:i});else{var h=e.style;h.width=r.w+u,h.height=r.h+c}var d=this.getElementPos(e);s.left=d.left+"px",s.top=d.top+"px",s.width=d.width+"px",s.height=d.height+"px"}},{key:"getSelectedHandler",value:function(){var t=this.handlers;if(this.selectedHandler)for(var e in t)if(t[e]===this.selectedHandler)return e}},{key:"handleKeyDown",value:function(t){27===t.keyCode&&(this.rectDim=this.startDim,this.stop(t))}},{key:"handleMouseDown",value:function(t){var e=t.target;this.isHandler(e)?(this.selectedHandler=e,this.start(t)):e!==this.el&&(this.selectedHandler="",this.blur())}},{key:"calc",value:function(t){var e=void 0,n=this.opts||{},i=n.step,r=this.startDim,o=n.minDim,a=n.maxDim,l=t.delta.x,c=t.delta.y,u=r.w,h=r.h,d={t:0,l:0,w:u,h:h};if(t){var f=t.handlerAttr;~f.indexOf("r")&&(e=(0,s.normalizeFloat)(u+l*i,i),e=Math.max(o,e),a&&(e=Math.min(a,e)),d.w=e),~f.indexOf("b")&&(e=(0,s.normalizeFloat)(h+c*i,i),e=Math.max(o,e),a&&(e=Math.min(a,e)),d.h=e),~f.indexOf("l")&&(e=(0,s.normalizeFloat)(u-l*i,i),e=Math.max(o,e),a&&(e=Math.min(a,e)),d.w=e),~f.indexOf("t")&&(e=(0,s.normalizeFloat)(h-c*i,i),e=Math.max(o,e),a&&(e=Math.min(a,e)),d.h=e);var p=n.ratioDefault?!t.keys.shift:t.keys.shift;if(f.indexOf("c")<0&&p){var g=r.w/r.h;d.w/d.h>g?d.h=Math.round(d.w/g):d.w=Math.round(d.h*g)}return~f.indexOf("l")&&(d.l=r.w-d.w),~f.indexOf("t")&&(d.t=r.h-d.h),d}}}]),t}();t.exports={init:function(t){return new u(t)}}},function(t,e,n){"use strict";(function(e){var n=e.$,i=function(t,e){var n=e||window,i=t.getBoundingClientRect();return{left:i.left+n.pageXOffset,top:i.top+n.pageYOffset,width:i.width,height:i.height}};t.exports={setKey:function(t,e){},getElementRect:function(t){var e=this.opts.posFetcher||"";return e?e(t,{avoidFrameOffset:1}):i(t)},init:function(t){return this.setOptions(t),this.handleMouseDown=this.handleMouseDown.bind(this),this.drag=this.drag.bind(this),this.move=this.move.bind(this),this.stop=this.stop.bind(this),this.setKey("up, right, down, left",this.handleKey),this},setOptions:function(t){this.opts=t||{}},focus:function(t){if(!t||t!==this.el){this.getDocumentEl(t),this.blur(),this.el=t,this.handlers=this.opts.dragHandlers||[t];var e=this.getElementRect(t);this.elRect=e,this.startTop=e.top,this.startLeft=e.left,this.getDocumentEl().on("mousedown",this.handleMouseDown)}},blur:function(){this.getDocumentEl().off("mousedown",this.handleMouseDown),this.el=null},start:function(t){this.startPos=this.getMousePos(t);var e=this.getDocumentEl();e.on("mousemove",this.drag),e.on("mouseup",this.stop);var n=this.opts.onStart;"function"==typeof n&&n(t,{docs:e,el:this.el,start:this.startPos,elRect:this.elRect}),this.drag(t)},stop:function(t){var e=this.getDocumentEl();e.off("mousemove",this.drag),e.off("mouseup",this.stop),this.lockedAxis=null;var n=this.opts.onEnd;"function"==typeof n&&n(t,{docs:e,delta:this.delta,end:{x:this.startLeft+this.delta.x,y:this.startTop+this.delta.y}})},handleMouseDown:function(t){var e=t.target;this.isHandler(e)&&this.start(t)},isHandler:function(t){var e=this.handlers;for(var n in e)if(e[n]===t)return!0;return!1},handleKey:function(t,e){switch(e.shortcut){case"up":this.move(0,-1);break;case"right":this.move(1,0);break;case"down":this.move(0,1);break;case"left":this.move(-1,0)}},getDocumentEl:function(t){var t=t||this.el;if(!this.$doc){var e=[document];t&&e.push(t.ownerDocument),this.$doc=n(e)}return this.$doc},getMousePos:function(t){var e=this.opts.mousePosFetcher;return e?e(t):{x:t.clientX,y:t.clientY}},drag:function(t){var e=this.lockedAxis,n=this.getMousePos(t),i={x:n.x-this.startPos.x,y:n.y-this.startPos.y};if(t.shiftKey){if(!e){var r=i.x,o=i.y,s=Math.abs(r),a=Math.abs(o);o>=s||o<=-s?e="x":(r>a||r<-a)&&(e="y")}}else e=null;"x"===e&&(i.x=this.startPos.x),"y"===e&&(i.y=this.startPos.y),this.lockedAxis=e,this.delta=i,this.move(i.x,i.y);var l=this.opts.onDrag;"function"==typeof l&&l(t,{delta:i,current:{x:this.startLeft+i.x,y:this.startTop+i.y},lockedAxis:e}),0===t.which&&this.stop(t)},move:function(t,e){this.moveX(t),this.moveY(e)},moveX:function(t){var e=this.el,n=(this.opts,this.startLeft+t),i=this.opts.setX;"function"==typeof i?i(n,{el:e,start:this.startLeft,delta:t}):e.style.left=n+"px"},moveY:function(t){var e=this.el,n=(this.opts,this.startTop+t),i=this.opts.setY;"function"==typeof i?i(n,{el:e,start:this.startTop,delta:t}):e.style.top=n+"px"}}}).call(e,n(0))},function(t,e,n){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r=Object.assign||function(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return e=r({},a,n),t=e.em,this.em=t,this},onLoad:function(){var t=e.defaults;for(var n in t){var i=t[n];this.add(n,i.keys,i.handler)}},add:function(t,e,r){var a=this.em,l=a.get("Commands"),c=a.getEditor(),u={id:t,keys:e,handler:r};return n[t]&&this.remove(t),n[t]=u,s(e,function(e,n){r=(0,o.isString)(r)?l.get(r):r,"object"==(void 0===r?"undefined":i(r))?r.run(c):r(c);var s=[t,n.shortcut,e];a.trigger.apply(a,["keymap:emit"].concat(s)),a.trigger.apply(a,["keymap:emit:"+t].concat(s))}),a.trigger("keymap:add",u),u},get:function(t){return n[t]},getAll:function(){return n},remove:function(t){var e=this.em,i=this.get(t);if(i)return delete n[t],s.unbind(i.keys),e&&e.trigger("keymap:remove",i),i}}}},function(t,e,n){"use strict";var i=Object.assign||function(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};n=i({},a,s),t=n.em,this.em=t,e=new o.default({track:!0,register:[]}),e.changeUndoType("change",{condition:!1});var l={on:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!r&&(r=t.previousAttributes()),!n.avoidStore){var i={object:t,before:r,after:t.toJSON()};return r=null,i}},undo:function(t,e,n,i){t.set(e)},redo:function(t,e,n,i){t.set(n)}};return["style","attributes","content","src"].forEach(function(t){return e.addUndoType("change:"+t,l)}),e.on("undo redo",function(){return t.trigger("change:selectedComponent change:canvasOffset")}),["undo","redo"].forEach(function(n){return e.on(n,function(){return t.trigger(n)})}),this},getConfig:function(){return n},add:function(t){return e.register(t),this},remove:function(t){return e.unregister(t),this},removeAll:function(){return e.unregisterAll(),this},start:function(){return e.startTracking(),this},stop:function(){return e.stopTracking(),this},undo:function(){return t.get("Canvas").isInputFocused()||e.undo(1),this},undoAll:function(){return e.undoAll(),this},redo:function(){return t.get("Canvas").isInputFocused()||e.redo(1),this},redoAll:function(){return e.redoAll(),this},hasUndo:function(){return e.isAvailable("undo")},hasRedo:function(){return e.isAvailable("redo")},getStack:function(){return e.stack},clear:function(){return e.clear(),this},getInstance:function(){return e}}}},function(t,e,n){var i,r,o;/*! * Backbone.Undo.js v0.2 * * Copyright (c)2013 Oliver Sartun @@ -8,4 +8,4 @@ * Documentation and full license available at * https://github.com/osartun/Backbone.Undo.js */ -!function(s){r=[n(1),n(72)],i=s,void 0!==(o="function"==typeof i?i.apply(e,r):i)&&(t.exports=o)}(function(t,e){function n(t,e,n){return n.length<=4?t.call(e,n[0],n[1],n[2],n[3]):t.apply(e,n)}function i(t,e){return f.call(t,e)}function r(e,n){return null!=e&&(t.isArray(n)||(n=i(arguments,1)),t.all(n,function(t){return t in e}))}function o(){this.registeredObjects=[],this.cidIndexes=[]}function s(e,n,i,r){for(var o,s=0,a=n.length;st.maximumStackLength&&(t.shift(),t.pointer--)}}}function h(){}function d(e,n,i,o){if("object"==typeof n)return t.each(n,function(t,n){2===e?d(e,t,i,o):d(e,n,t,i)});switch(e){case 0:r(i,"undo","redo","on")&&t.all(t.pick(i,"undo","redo","on"),t.isFunction)&&(o[n]=i);break;case 1:o[n]&&t.isObject(i)&&(o[n]=t.extend({},o[n],i));break;case 2:delete o[n]}return this}var f=Array.prototype.slice,p=function(){function e(){i++,n=!0,t.defer(function(){n=!1})}var n=!1,i=-1;return function(){return n||e(),i}}();o.prototype={isRegistered:function(e){return e&&e.cid?this.registeredObjects[e.cid]:t.contains(this.registeredObjects,e)},register:function(t){return!this.isRegistered(t)&&(t&&t.cid?(this.registeredObjects[t.cid]=t,this.cidIndexes.push(t.cid)):this.registeredObjects.push(t),!0)},unregister:function(e){if(this.isRegistered(e)){if(e&&e.cid)delete this.registeredObjects[e.cid],this.cidIndexes.splice(t.indexOf(this.cidIndexes,e.cid),1);else{var n=t.indexOf(this.registeredObjects,e);this.registeredObjects.splice(n,1)}return!0}return!1},get:function(){return t.map(this.cidIndexes,function(t){return this.registeredObjects[t]},this).concat(this.registeredObjects)}};var g={add:{undo:function(t,e,n,i){t.remove(n,i)},redo:function(t,e,n,i){i.index&&(i.at=i.index),t.add(n,i)},on:function(e,n,i){return{object:n,before:void 0,after:e,options:t.clone(i)}}},remove:{undo:function(t,e,n,i){"index"in i&&(i.at=i.index),t.add(e,i)},redo:function(t,e,n,i){t.remove(e,i)},on:function(e,n,i){return{object:n,before:e,after:void 0,options:t.clone(i)}}},change:{undo:function(e,n,i,r){t.isEmpty(n)?t.each(t.keys(i),e.unset,e):(e.set(n),r&&r.unsetData&&r.unsetData.before&&r.unsetData.before.length&&t.each(r.unsetData.before,e.unset,e))},redo:function(e,n,i,r){t.isEmpty(i)?t.each(t.keys(n),e.unset,e):(e.set(i),r&&r.unsetData&&r.unsetData.after&&r.unsetData.after.length&&t.each(r.unsetData.after,e.unset,e))},on:function(e,n){var i=e.changedAttributes(),r=t.keys(i),o=t.pick(e.previousAttributes(),r),s=t.keys(o),a=(n||(n={})).unsetData={after:[],before:[]};return r.length!=s.length&&(r.length>s.length?t.each(r,function(t){t in o||a.before.push(t)},this):t.each(s,function(t){t in i||a.after.push(t)})),{object:e,before:o,after:i,options:t.clone(n)}}},reset:{undo:function(t,e,n){t.reset(e)},redo:function(t,e,n){t.reset(n)},on:function(e,n){return{object:e,before:n.previousModels,after:t.clone(e.models)}}}};h.prototype=g;var v=e.Model.extend({defaults:{type:null,object:null,before:null,after:null,magicFusionIndex:null},undo:function(t){a("undo",this.attributes)},redo:function(t){a("redo",this.attributes)}}),m=e.Collection.extend({model:v,pointer:-1,track:!1,isCurrentlyUndoRedoing:!1,maximumStackLength:1/0,setMaxLength:function(t){this.maximumStackLength=t}}),y=e.Model.extend({defaults:{maximumStackLength:1/0,track:!1},initialize:function(e){this.stack=new m,this.objectRegistry=new o,this.undoTypes=new h,this.stack.setMaxLength(this.get("maximumStackLength")),this.on("change:maximumStackLength",function(t,e){this.stack.setMaxLength(e)},this),e&&e.track&&this.startTracking(),e&&e.register&&(t.isArray(e.register)||t.isArguments(e.register)?n(this.register,this,e.register):this.register(e.register))},startTracking:function(){this.set("track",!0),this.stack.track=!0},stopTracking:function(){this.set("track",!1),this.stack.track=!1},isTracking:function(){return this.get("track")},_addToStack:function(t){u(this.stack,t,i(arguments,1),this.undoTypes)},register:function(){s("on",arguments,this._addToStack,this)},unregister:function(){s("off",arguments,this._addToStack,this)},unregisterAll:function(){n(this.unregister,this,this.objectRegistry.get())},undo:function(t){l("undo",this,this.stack,t)},undoAll:function(){l("undo",this,this.stack,!1,!0)},redo:function(t){l("redo",this,this.stack,t)},redoAll:function(){l("redo",this,this.stack,!1,!0)},isAvailable:function(t){var e=this.stack,n=e.length;switch(t){case"undo":return n>0&&e.pointer>-1;case"redo":return n>0&&e.pointer1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=this.get("contentTypeJson"),s=this.get("headers")||{},a=this.get("params"),l=n.body||{},c=void 0,u=void 0;for(var h in a)l[h]=a[h];if((0,o.isUndefined)(s["X-Requested-With"])&&(s["X-Requested-With"]="XMLHttpRequest"),(0,o.isUndefined)(s["Content-Type"])&&r&&(s["Content-Type"]="application/json; charset=utf-8"),r)u=JSON.stringify(l);else{u=new FormData;for(var d in l)u.append(d,l[d])}c={method:n.method||"post",credentials:"include",headers:s},"post"===c.method&&(c.body=u),this.onStart(),this.fetch(t,c).then(function(t){return 1==(t.status/200|0)?t.text():t.text().then(function(t){return Promise.reject(t)})}).then(function(t){return e.onResponse(t,i)}).catch(function(t){return e.onError(t)})}})},function(t,e,n){(function(e){!function(n){function i(){}function r(t,e){return function(){t.apply(e,arguments)}}function o(t){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof t)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],h(t,this)}function s(t,e){for(;3===t._state;)t=t._value;if(0===t._state)return void t._deferreds.push(e);t._handled=!0,o._immediateFn(function(){var n=1===t._state?e.onFulfilled:e.onRejected;if(null===n)return void(1===t._state?a:l)(e.promise,t._value);var i;try{i=n(t._value)}catch(t){return void l(e.promise,t)}a(e.promise,i)})}function a(t,e){try{if(e===t)throw new TypeError("A promise cannot be resolved with itself.");if(e&&("object"==typeof e||"function"==typeof e)){var n=e.then;if(e instanceof o)return t._state=3,t._value=e,void c(t);if("function"==typeof n)return void h(r(n,e),t)}t._state=1,t._value=e,c(t)}catch(e){l(t,e)}}function l(t,e){t._state=2,t._value=e,c(t)}function c(t){2===t._state&&0===t._deferreds.length&&o._immediateFn(function(){t._handled||o._unhandledRejectionFn(t._value)});for(var e=0,n=t._deferreds.length;e=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},n(79),e.setImmediate=setImmediate,e.clearImmediate=clearImmediate},function(t,e,n){(function(t,e){!function(t,n){"use strict";function i(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n1)for(var n=1;n<%= deviceLabel %>\n
\n \n \n \n
\n
\n
\n
\n '),events:{change:"updateDevice"},initialize:function(t){this.config=t.config||{},this.em=this.config.em,this.ppfx=this.config.pStylePrefix||"",this.events["click ."+this.ppfx+"add-trasp"]=this.startAdd,this.listenTo(this.em,"change:device",this.updateSelect),this.delegateEvents()},startAdd:function(){},updateDevice:function(){var t=this.em;if(t){var e=this.devicesEl,n=e?e.val():"";t.set("device",n)}},updateSelect:function(){var t=this.em,e=this.devicesEl;if(t&&t.getDeviceModel&&e){var n=t.getDeviceModel(),i=n?n.get("name"):"";e.val(i)}},getOptions:function(){var t="";return this.collection.each(function(e){var n=e.get("name");t+='"}),t},render:function(){var t=this.ppfx;return this.$el.html(this.template({ppfx:t,deviceLabel:this.config.deviceLabel})),this.devicesEl=this.$el.find("."+t+"devices"),this.devicesEl.append(this.getOptions()),this.el.className=t+"devices-c",this}})}).call(e,n(1))},function(t,e,n){"use strict";t.exports=function(){var t,e,i={},r=n(87),o=n(88),s=n(25);return{compTypes:"",name:"Parser",init:function(n){i=n||{};for(var a in r)a in i||(i[a]=r[a]);return t=new s(i),e=new o(i),this},parseHtml:function(n){return t.compTypes=this.compTypes,t.parse(n,e)},parseCss:function(t){return e.parse(t)}}}},function(t,e,n){"use strict";t.exports={textTags:["br","b","i","u","a","ul","ol"]}},function(t,e,n){"use strict";t.exports=function(t){return{parseSelector:function(t){for(var e=[],n=[],i=t.split(","),r=0,o=i.length;r1&&void 0!==arguments[1]?arguments[1]:{};"object"==(void 0===t?"undefined":i(t))?n=t:n.name=t,n.label&&!n.name&&(n.name=l.escapeName(n.label));var r=n.name,o=r?this.get(r,n.type):e.where(n)[0];return o||e.add(n)},addClass:function(t){var n=[];return(0,r.isString)(t)&&(t=t.trim().split(" ")),t.forEach(function(t){return n.push(e.add({name:t}))}),n},get:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.TYPE_CLASS;return e.where({name:t,type:n})[0]},getAll:function(){return e},render:function(t){if(t){return new u({collection:new c(t),config:s}).render().el}return o.render().el}}}},function(t,e,n){"use strict";t.exports={stylePrefix:"clm-",selectors:[],label:"Classes",statesLabel:"- State -",selectedLabel:"Selected",states:[{name:"hover",label:"Hover"},{name:"active",label:"Click"},{name:"nth-of-type(2n)",label:"Even/Odd"}]}},function(t,e,n){"use strict";(function(e){var i=n(0),r=n(92);t.exports=i.View.extend({template:e.template('\n
\n
<%= label %>
\n
\n \n
\n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
<%= selectedLabel %>
\n
\n
\n
'),events:{},initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.config=t.config||{},this.pfx=this.config.stylePrefix||"",this.ppfx=this.config.pStylePrefix||"",this.className=this.pfx+"tags",this.addBtnId=this.pfx+"add-tag",this.newInputId=this.pfx+"new",this.stateInputId=this.pfx+"states",this.stateInputC=this.pfx+"input-c",this.states=this.config.states||[],this.events["click #"+this.addBtnId]="startNewTag",this.events["blur #"+this.newInputId]="endNewTag",this.events["keyup #"+this.newInputId]="onInputKeyUp",this.events["change #"+this.stateInputId]="stateChanged",this.target=this.config.em,this.em=this.target,this.listenTo(this.target,"change:selectedComponent",this.componentChanged),this.listenTo(this.target,"component:update:classes",this.updateSelector),this.listenTo(this.collection,"add",this.addNew),this.listenTo(this.collection,"reset",this.renderClasses),this.listenTo(this.collection,"remove",this.tagRemoved),this.delegateEvents()},tagRemoved:function(t){this.updateStateVis()},getStateOptions:function(){for(var t="",e=0;e'+this.states[e].label+"";return t},addNew:function(t){this.addToClasses(t)},startNewTag:function(t){this.$addBtn.get(0).style.display="none",this.$input.show().focus()},endNewTag:function(t){this.$addBtn.get(0).style.display="",this.$input.hide().val("")},onInputKeyUp:function(t){13===t.keyCode?this.addNewTag(this.$input.val()):27===t.keyCode&&this.endNewTag()},componentChanged:function(t){this.compTarget=this.target.get("selectedComponent");var e=this.compTarget,n=[];e&&(this.getStates().val(e.get("state")),n=e.get("classes").getValid()),this.collection.reset(n),this.updateStateVis()},updateStateVis:function(){var t=this.em,e=t&&t.getConfig("avoidInlineStyle");this.collection.length||e?this.getStatesC().css("display","block"):this.getStatesC().css("display","none"),this.updateSelector()},updateSelector:function(){var t=this.target.getSelected();if(this.compTarget=t,t&&t.get){var e=t.get("state"),n=this.collection,i=n.getFullString(n.getStyleable());i=i||"#"+t.getId(),i+=e?":"+e:"";var r=this.el.querySelector("#"+this.pfx+"sel");r&&(r.innerHTML=i)}},stateChanged:function(t){this.compTarget&&(this.compTarget.set("state",this.$states.val()),this.updateSelector())},addNewTag:function(t){var e=this.target,n=this.compTarget;if(t.trim()){if(e){var i=e.get("SelectorManager"),r=i.add({label:t});if(n){var o=n.get("classes");o.length;o.add(r);o.length;this.collection.add(r),this.updateStateVis()}}this.endNewTag()}},addToClasses:function(t,e){var n=e||null,i=new r({model:t,config:this.config,coll:this.collection}),o=i.render().el;return n?n.appendChild(o):this.getClasses().append(o),o},renderClasses:function(){var t=document.createDocumentFragment();return this.collection.each(function(e){this.addToClasses(e,t)},this),this.getClasses()&&this.getClasses().empty().append(t),this},getClasses:function(){return this.$classes||(this.$classes=this.$el.find("#"+this.pfx+"tags-c")),this.$classes},getStates:function(){return this.$states||(this.$states=this.$el.find("#"+this.stateInputId)),this.$states},getStatesC:function(){return this.$statesC||(this.$statesC=this.$el.find("#"+this.stateInputC)),this.$statesC},render:function(){var t=this.config;return this.$el.html(this.template({selectedLabel:t.selectedLabel,statesLabel:t.statesLabel,label:t.label,pfx:this.pfx,ppfx:this.ppfx})),this.$input=this.$el.find("input#"+this.newInputId),this.$addBtn=this.$el.find("#"+this.addBtnId),this.$classes=this.$el.find("#"+this.pfx+"tags-c"),this.$states=this.$el.find("#"+this.stateInputId),this.$statesC=this.$el.find("#"+this.stateInputC),this.$states.append(this.getStateOptions()),this.renderClasses(),this.$el.attr("class",this.className),this}})}).call(e,n(1))},function(t,e,n){"use strict";var i=n(7);t.exports=n(0).View.extend({template:function(){var t=this.pfx;this.ppfx;return'\n \n '+(this.model.get("label")||"")+'\n \n ⨯\n \n '},events:{"click [data-tag-remove]":"removeTag","click [data-tag-status]":"changeStatus","dblclick [data-tag-name]":"startEditTag","focusout [data-tag-name]":"endEditTag"},initialize:function(t){this.config=t.config||{},this.coll=t.coll||null,this.pfx=this.config.stylePrefix||"",this.ppfx=this.config.pStylePrefix||"",this.target=this.config.em,this.listenTo(this.model,"change:active",this.updateStatus)},getInputEl:function(){return this.inputEl||(this.inputEl=this.el.querySelector("[data-tag-name]")),this.inputEl},startEditTag:function(){var t=this.getInputEl();t.contentEditable=!0,t.focus()},endEditTag:function(){var t=this.model,e=this.getInputEl(),n=e.textContent,r=i.escapeName(n),o=this.target,s=o&&o.get("SelectorManager");e.contentEditable=!1,s&&(s.get(r)?e.innerText=t.get("label"):t.set({name:r,label:n}))},changeStatus:function(){this.model.set("active",!this.model.get("active"))},removeTag:function(t){var e=this,n=this.target,i=this.model,r=this.coll,o=(this.el,n&&n.get("selectedComponent"));o&&(o.get,o.get("classes").remove(i)),r&&r.remove(i),setTimeout(function(){return e.remove()},0)},updateStatus:function(){var t="fa-check-square-o";this.$chk||(this.$chk=this.$el.find("#"+this.pfx+"checkbox")),this.model.get("active")?(this.$chk.removeClass("fa-square-o").addClass(t),this.$el.removeClass("opac50")):(this.$chk.removeClass(t).addClass("fa-square-o"),this.$el.addClass("opac50"))},render:function(){var t=this.pfx,e=this.ppfx;return this.$el.html(this.template()),this.$el.attr("class",t+"tag "+e+"three-bg"),this.updateStatus(),this}})},function(t,e,n){"use strict";t.exports=function(){var t,e,i={},r=n(94),o=n(95),s=n(96);return{name:"Modal",init:function(n){i=n||{};for(var a in r)a in i||(i[a]=r[a]);var l=i.pStylePrefix;return l&&(i.stylePrefix=l+i.stylePrefix),t=new o(i),e=new s({model:t,config:i}),this},postRender:function(t){this.render().appendTo(t.el)},open:function(){return e.show(),this},close:function(){return e.hide(),this},isOpen:function(){return!!t.get("open")},setTitle:function(e){return t.set("title",e),this},getTitle:function(){return t.get("title")},setContent:function(e){return t.set("content"," "),t.set("content",e),this},getContent:function(){return t.get("content")},getContentEl:function(){return e.getContent().get(0)},getModel:function(){return t},render:function(){return e.render().$el}}}},function(t,e,n){"use strict";t.exports={stylePrefix:"mdl-",title:"",content:"",backdrop:!0}},function(t,e,n){"use strict";var i=n(0);t.exports=i.Model.extend({defaults:{title:"",content:"",open:!1}})},function(t,e,n){"use strict";t.exports=n(0).View.extend({template:function(t){var e=t.pfx,n=t.ppfx,i=t.content;return'
\n
\n
'+t.title+'
\n
\n
\n
\n
'+i+'
\n
\n
\n
\n
\n '},events:{},initialize:function(t){var e=this.model,n=t.config||{},i=n.stylePrefix||"",r=n.backdrop;this.config=n,this.pfx=i,this.ppfx=n.pStylePrefix||"",this.listenTo(e,"change:open",this.updateOpen),this.listenTo(e,"change:title",this.updateTitle),this.listenTo(e,"change:content",this.updateContent),this.events["click ."+i+"btn-close"]="hide",r&&(this.events["click ."+i+"backlayer"]="hide"),this.delegateEvents()},getCollector:function(){return this.$collector||(this.$collector=this.$el.find("."+this.pfx+"collector")),this.$collector},getContent:function(){var t=this.pfx;return this.$content||(this.$content=this.$el.find("."+t+"content #"+t+"c")),this.$content},getTitle:function(){return this.$title||(this.$title=this.$el.find("."+this.pfx+"title")),this.$title.get(0)},updateContent:function(){var t=this.getContent(),e=t.children(),n=this.getCollector(),i=this.model.get("content");e.length&&n.append(e),t.empty().append(i)},updateTitle:function(){var t=this.getTitle();t&&(t.innerHTML=this.model.get("title"))},updateOpen:function(){this.el.style.display=this.model.get("open")?"":"none"},hide:function(){this.model.set("open",0)},show:function(){this.model.set("open",1)},render:function(){var t=this.$el,e=this.pfx,n=(this.ppfx,this.model.toJSON());return n.pfx=this.pfx,n.ppfx=this.ppfx,t.html(this.template(n)),t.attr("class",e+"container"),this.updateOpen(),this}})},function(t,e,n){"use strict";t.exports=function(){var t={},e=n(98),i=n(99),r=n(100),o=n(101),s=n(102),a=n(103),l=n(108),c={},u={},h={},d={};return{getConfig:function(){return t},config:t,EditorView:l,name:"CodeManager",init:function(n){t=n||{};for(var l in e)l in t||(t[l]=e[l]);var c=t.pStylePrefix;return c&&(t.stylePrefix=c+t.stylePrefix),u.html=new i,u.css=new r,u.json=new o,u.js=new s,d.CodeMirror=new a,this.loadDefaultGenerators().loadDefaultViewers(),this},addGenerator:function(t,e){return c[t]=e,this},getGenerator:function(t){return c[t]||null},getGenerators:function(){return c},addViewer:function(t,e){return h[t]=e,this},getViewer:function(t){return h[t]||null},getViewers:function(){return h},updateViewer:function(t,e){t.setContent(e)},getCode:function(e,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};i.em=t.em;var r=this.getGenerator(n);return r?r.build(e,i):""},loadDefaultGenerators:function(){for(var t in u)this.addGenerator(t,u[t]);return this},loadDefaultViewers:function(){for(var t in d)this.addViewer(t,d[t]);return this}}}},function(t,e,n){"use strict";t.exports={stylePrefix:"cm-",inlineCss:!1}},function(t,e,n){"use strict";var i=n(0);t.exports=i.Model.extend({build:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.get("components");return e.exportWrapper?e.wrappesIsBody?""+this.buildModels(n)+"":t.toHTML():this.buildModels(n)},buildModels:function(t){var e="";return t.each(function(t){e+=t.toHTML()}),e}})},function(t,e,n){"use strict";t.exports=n(0).Model.extend({initialize:function(){this.compCls=[],this.ids=[]},buildFromModel:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i="",r=this.em,o=r&&r.getConfig("avoidInlineStyle"),s=t.styleToString(),a=t.get("classes"),l=n.wrappesIsBody,c=t.get("wrapper");if(this.ids.push("#"+t.getId()),a.each(function(t){return e.compCls.push(t.getFullName())}),(!o||c)&&s){var u="#"+t.getId();u=l&&c?"body":u,i=u+"{"+s+"}"}return t.components().each(function(t){return i+=e.buildFromModel(t,n)}),i},build:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=n.cssc;this.em=n.em||"",this.compCls=[],this.ids=[];var r=this.buildFromModel(t,n);if(i){var o=i.getAll(),s={};o.each(function(t){var n=t.get("mediaText");if(n){var i=s[n];return void(i?i.push(t):s[n]=[t])}r+=e.buildFromRule(t)});for(var a in s){var l="";s[a].forEach(function(t){return l+=e.buildFromRule(t)}),l&&(r+="@media "+a+"{"+l+"}")}}return r},buildFromRule:function(t){var e=this,n="",i=t.selectorsToString(),r=t.selectorsToString({skipAdd:1}),o=void 0;if(t.get("selectors").each(function(t){var n=t.getFullName();(e.compCls.indexOf(n)>=0||e.ids.indexOf(n)>=0)&&(o=1)}),r&&o||t.get("selectorsAdd")){var s=t.styleToString();s&&(n+=i+"{"+s+"}")}return n}})},function(t,e,n){"use strict";(function(e){var i=n(0);t.exports=i.Model.extend({build:function(t){var n=t.toJSON();return this.beforeEach(n),e.each(n,function(t,e){var r=n[e];if(r instanceof i.Model)n[e]=this.build(r);else if(r instanceof i.Collection){var o=r;n[e]=[],o.length&&o.each(function(t,i){n[e][i]=this.build(t)},this)}},this),n},beforeEach:function(t){delete t.status}})}).call(e,n(1))},function(t,e,n){"use strict";(function(e){var i=n(0);t.exports=i.Model.extend({mapModel:function(t){var n="",i=t.get("script"),r=t.get("type"),o=t.get("components"),s=t.getId();if(i){var a=t.get("attributes");a=e.extend({},a,{id:s}),t.set("attributes",a);var l=t.getScriptString();if(t.get("scriptUpdated"))this.mapJs[r+"-"+s]={ids:[s],code:l};else{var c=this.mapJs[r];c?c.ids.push(s):this.mapJs[r]={ids:[s],code:l}}}return o.each(function(t){n+=this.mapModel(t)},this),n},build:function(t){this.mapJs={},this.mapModel(t);var e="";for(var n in this.mapJs){var i=this.mapJs[n];e+="\n var items = document.querySelectorAll('"+("#"+i.ids.join(", #"))+"');\n for (var i = 0, len = items.length; i < len; i++) {\n (function(){"+i.code+"}.bind(items[i]))();\n }"}return e}})}).call(e,n(1))},function(t,e,n){"use strict";var i=Object.assign||function(t){for(var e=1;e-1?t.backUp(i.length-r):i.match(/<\/?$/)&&(t.backUp(i.length),t.match(e,!1)||t.match(i)),n}function n(t){var e=l[t];return e||(l[t]=new RegExp("\\s+"+t+"\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*"))}function i(t,e){var i=t.match(n(e));return i?/^\s*(.*?)\s*$/.exec(i[2])[1]:""}function r(t,e){return new RegExp((e?"^":"")+"","i")}function o(t,e){for(var n in t)for(var i=e[n]||(e[n]=[]),r=t[n],o=r.length-1;o>=0;o--)i.unshift(r[o])}function s(t,e){for(var n=0;n\s\/]/.test(i.current())&&(a=o.htmlState.tagName&&o.htmlState.tagName.toLowerCase())&&u.hasOwnProperty(a))o.inTag=a+" ";else if(o.inTag&&d&&/>$/.test(i.current())){var f=/^([\S]+) (.*)/.exec(o.inTag);o.inTag=null;var p=">"==i.current()&&s(u[f[1]],f[2]),g=t.getMode(n,p),v=r(f[1],!0),m=r(f[1],!1);o.token=function(t,n){return t.match(v,!1)?(n.token=l,n.localState=n.localMode=null,null):e(t,m,n.localMode.token(t,n.localState))},o.localMode=g,o.localState=t.startState(g,c.indent(o.htmlState,""))}else o.inTag&&(o.inTag+=i.current(),i.eol()&&(o.inTag+=" "));return h}var c=t.getMode(n,{name:"xml",htmlMode:!0,multilineTagIndentFactor:i.multilineTagIndentFactor,multilineTagIndentPastTag:i.multilineTagIndentPastTag}),u={},h=i&&i.tags,d=i&&i.scriptTypes;if(o(a,u),h&&o(h,u),d)for(var f=d.length-1;f>=0;f--)u.script.unshift(["type",d[f].matches,d[f].mode]);return{startState:function(){return{token:l,inTag:null,localMode:null,localState:null,htmlState:t.startState(c)}},copyState:function(e){var n;return e.localState&&(n=t.copyState(e.localMode,e.localState)),{token:e.token,inTag:e.inTag,localMode:e.localMode,localState:n,htmlState:t.copyState(c,e.htmlState)}},token:function(t,e){return e.token(t,e)},indent:function(e,n,i){return!e.localMode||/^\s*<\//.test(n)?c.indent(e.htmlState,n):e.localMode.indent?e.localMode.indent(e.localState,n,i):t.Pass},innerMode:function(t){return{state:t.localState||t.htmlState,mode:t.localMode||c}}}},"xml","javascript","css"),t.defineMIME("text/html","htmlmixed")})},function(t,e,n){!function(t){t(n(6))}(function(t){"use strict";var e={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},n={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,caseFold:!1};t.defineMode("xml",function(i,r){function o(t,e){function n(n){return e.tokenize=n,n(t,e)}var i=t.next();if("<"==i)return t.eat("!")?t.eat("[")?t.match("CDATA[")?n(l("atom","]]>")):null:t.match("--")?n(l("comment","--\x3e")):t.match("DOCTYPE",!0,!0)?(t.eatWhile(/[\w\._\-]/),n(c(1))):null:t.eat("?")?(t.eatWhile(/[\w\._\-]/),e.tokenize=l("meta","?>"),"meta"):(E=t.eat("/")?"closeTag":"openTag",e.tokenize=s,"tag bracket");if("&"==i){var r;return r=t.eat("#")?t.eat("x")?t.eatWhile(/[a-fA-F\d]/)&&t.eat(";"):t.eatWhile(/[\d]/)&&t.eat(";"):t.eatWhile(/[\w\.\-:]/)&&t.eat(";"),r?"atom":"error"}return t.eatWhile(/[^&<]/),null}function s(t,e){var n=t.next();if(">"==n||"/"==n&&t.eat(">"))return e.tokenize=o,E=">"==n?"endTag":"selfcloseTag","tag bracket";if("="==n)return E="equals",null;if("<"==n){e.tokenize=o,e.state=f,e.tagName=e.tagStart=null;var i=e.tokenize(t,e);return i?i+" tag error":"tag error"}return/[\'\"]/.test(n)?(e.tokenize=a(n),e.stringStartCol=t.column(),e.tokenize(t,e)):(t.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function a(t){var e=function(e,n){for(;!e.eol();)if(e.next()==t){n.tokenize=s;break}return"string"};return e.isInAttribute=!0,e}function l(t,e){return function(n,i){for(;!n.eol();){if(n.match(e)){i.tokenize=o;break}n.next()}return t}}function c(t){return function(e,n){for(var i;null!=(i=e.next());){if("<"==i)return n.tokenize=c(t+1),n.tokenize(e,n);if(">"==i){if(1==t){n.tokenize=o;break}return n.tokenize=c(t-1),n.tokenize(e,n)}}return"meta"}}function u(t,e,n){this.prev=t.context,this.tagName=e,this.indent=t.indented,this.startOfLine=n,(k.doNotIndent.hasOwnProperty(e)||t.context&&t.context.noIndent)&&(this.noIndent=!0)}function h(t){t.context&&(t.context=t.context.prev)}function d(t,e){for(var n;;){if(!t.context)return;if(n=t.context.tagName,!k.contextGrabbers.hasOwnProperty(n)||!k.contextGrabbers[n].hasOwnProperty(e))return;h(t)}}function f(t,e,n){return"openTag"==t?(n.tagStart=e.column(),p):"closeTag"==t?g:f}function p(t,e,n){return"word"==t?(n.tagName=e.current(),M="tag",y):(M="error",p)}function g(t,e,n){if("word"==t){var i=e.current();return n.context&&n.context.tagName!=i&&k.implicitlyClosed.hasOwnProperty(n.context.tagName)&&h(n),n.context&&n.context.tagName==i||!1===k.matchClosing?(M="tag",v):(M="tag error",m)}return M="error",m}function v(t,e,n){return"endTag"!=t?(M="error",v):(h(n),f)}function m(t,e,n){return M="error",v(t,e,n)}function y(t,e,n){if("word"==t)return M="attribute",b;if("endTag"==t||"selfcloseTag"==t){var i=n.tagName,r=n.tagStart;return n.tagName=n.tagStart=null,"selfcloseTag"==t||k.autoSelfClosers.hasOwnProperty(i)?d(n,i):(d(n,i),n.context=new u(n,i,r==n.indented)),f}return M="error",y}function b(t,e,n){return"equals"==t?x:(k.allowMissing||(M="error"),y(t,e,n))}function x(t,e,n){return"string"==t?w:"word"==t&&k.allowUnquoted?(M="string",y):(M="error",y(t,e,n))}function w(t,e,n){return"string"==t?w:y(t,e,n)}var C=i.indentUnit,k={},S=r.htmlMode?e:n;for(var T in S)k[T]=S[T];for(var T in r)k[T]=r[T];var E,M;return o.isInText=!0,{startState:function(t){var e={tokenize:o,state:f,indented:t||0,tagName:null,tagStart:null,context:null};return null!=t&&(e.baseIndent=t),e},token:function(t,e){if(!e.tagName&&t.sol()&&(e.indented=t.indentation()),t.eatSpace())return null;E=null;var n=e.tokenize(t,e);return(n||E)&&"comment"!=n&&(M=null,e.state=e.state(E||n,t,e),M&&(n="error"==M?n+" error":M)),n},indent:function(e,n,i){var r=e.context;if(e.tokenize.isInAttribute)return e.tagStart==e.indented?e.stringStartCol+1:e.indented+C;if(r&&r.noIndent)return t.Pass;if(e.tokenize!=s&&e.tokenize!=o)return i?i.match(/^(\s*)/)[0].length:0;if(e.tagName)return!1!==k.multilineTagIndentPastTag?e.tagStart+e.tagName.length+2:e.tagStart+C*(k.multilineTagIndentFactor||1);if(k.alignCDATA&&/$/,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",configuration:k.htmlMode?"html":"xml",helperType:k.htmlMode?"html":"xml",skipAttribute:function(t){t.state==x&&(t.state=y)}}}),t.defineMIME("text/xml","xml"),t.defineMIME("application/xml","xml"),t.mimeModes.hasOwnProperty("text/html")||t.defineMIME("text/html",{name:"xml",htmlMode:!0})})},function(t,e,n){!function(t){t(n(6))}(function(t){"use strict";t.defineMode("javascript",function(e,n){function i(t){for(var e,n=!1,i=!1;null!=(e=t.next());){if(!n){if("/"==e&&!i)return;"["==e?i=!0:i&&"]"==e&&(i=!1)}n=!n&&"\\"==e}}function r(t,e,n){return Tt=t,Et=n,e}function o(t,e){var n=t.next();if('"'==n||"'"==n)return e.tokenize=s(n),e.tokenize(t,e);if("."==n&&t.match(/^\d+(?:[eE][+\-]?\d+)?/))return r("number","number");if("."==n&&t.match(".."))return r("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(n))return r(n);if("="==n&&t.eat(">"))return r("=>","operator");if("0"==n&&t.eat(/x/i))return t.eatWhile(/[\da-f]/i),r("number","number");if("0"==n&&t.eat(/o/i))return t.eatWhile(/[0-7]/i),r("number","number");if("0"==n&&t.eat(/b/i))return t.eatWhile(/[01]/i),r("number","number");if(/\d/.test(n))return t.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/),r("number","number");if("/"==n)return t.eat("*")?(e.tokenize=a,a(t,e)):t.eat("/")?(t.skipToEnd(),r("comment","comment")):St(t,e,1)?(i(t),t.match(/^\b(([gimyu])(?![gimyu]*\2))+\b/),r("regexp","string-2")):(t.eat("="),r("operator","operator",t.current()));if("`"==n)return e.tokenize=l,l(t,e);if("#"==n)return t.skipToEnd(),r("error","error");if(Dt.test(n))return">"==n&&e.lexical&&">"==e.lexical.type||(t.eat("=")?"!"!=n&&"="!=n||t.eat("="):/[<>*+\-]/.test(n)&&(t.eat(n),">"==n&&t.eat(n))),r("operator","operator",t.current());if(Nt.test(n)){t.eatWhile(Nt);var o=t.current();if("."!=e.lastType){if(It.propertyIsEnumerable(o)){var c=It[o];return r(c.type,c.style,o)}if("async"==o&&t.match(/^\s*[\(\w]/,!1))return r("async","keyword",o)}return r("variable","variable",o)}}function s(t){return function(e,n){var i,s=!1;if(At&&"@"==e.peek()&&e.match(_t))return n.tokenize=o,r("jsonld-keyword","meta");for(;null!=(i=e.next())&&(i!=t||s);)s=!s&&"\\"==i;return s||(n.tokenize=o),r("string","string")}}function a(t,e){for(var n,i=!1;n=t.next();){if("/"==n&&i){e.tokenize=o;break}i="*"==n}return r("comment","comment")}function l(t,e){for(var n,i=!1;null!=(n=t.next());){if(!i&&("`"==n||"$"==n&&t.eat("{"))){e.tokenize=o;break}i=!i&&"\\"==n}return r("quasi","string-2",t.current())}function c(t,e){e.fatArrowAt&&(e.fatArrowAt=null);var n=t.string.indexOf("=>",t.start);if(!(n<0)){if(Lt){var i=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(t.string.slice(t.start,n));i&&(n=i.index)}for(var r=0,o=!1,s=n-1;s>=0;--s){var a=t.string.charAt(s),l=Ft.indexOf(a);if(l>=0&&l<3){if(!r){++s;break}if(0==--r){"("==a&&(o=!0);break}}else if(l>=3&&l<6)++r;else if(Nt.test(a))o=!0;else{if(/["'\/]/.test(a))return;if(o&&!r){++s;break}}}o&&!r&&(e.fatArrowAt=s)}}function u(t,e,n,i,r,o){this.indented=t,this.column=e,this.type=n,this.prev=r,this.info=o,null!=i&&(this.align=i)}function h(t,e){for(var n=t.localVars;n;n=n.next)if(n.name==e)return!0;for(var i=t.context;i;i=i.prev)for(var n=i.vars;n;n=n.next)if(n.name==e)return!0}function d(t,e,n,i,r){var o=t.cc;for($t.state=t,$t.stream=r,$t.marked=null,$t.cc=o,$t.style=e,t.lexical.hasOwnProperty("align")||(t.lexical.align=!0);;){if((o.length?o.pop():Ot?C:w)(n,i)){for(;o.length&&o[o.length-1].lex;)o.pop()();return $t.marked?$t.marked:"variable"==n&&h(t,i)?"variable-2":e}}}function f(){for(var t=arguments.length-1;t>=0;t--)$t.cc.push(arguments[t])}function p(){return f.apply(null,arguments),!0}function g(t){function e(e){for(var n=e;n;n=n.next)if(n.name==t)return!0;return!1}var i=$t.state;if($t.marked="def",i.context){if(e(i.localVars))return;i.localVars={name:t,next:i.localVars}}else{if(e(i.globalVars))return;n.globalVars&&(i.globalVars={name:t,next:i.globalVars})}}function v(){$t.state.context={prev:$t.state.context,vars:$t.state.localVars},$t.state.localVars=Rt}function m(){$t.state.localVars=$t.state.context.vars,$t.state.context=$t.state.context.prev}function y(t,e){var n=function(){var n=$t.state,i=n.indented;if("stat"==n.lexical.type)i=n.lexical.indented;else for(var r=n.lexical;r&&")"==r.type&&r.align;r=r.prev)i=r.indented;n.lexical=new u(i,$t.stream.column(),t,null,n.lexical,e)};return n.lex=!0,n}function b(){var t=$t.state;t.lexical.prev&&(")"==t.lexical.type&&(t.indented=t.lexical.indented),t.lexical=t.lexical.prev)}function x(t){function e(n){return n==t?p():";"==t?f():p(e)}return e}function w(t,e){return"var"==t?p(y("vardef",e.length),J,x(";"),b):"keyword a"==t?p(y("form"),S,w,b):"keyword b"==t?p(y("form"),w,b):"keyword d"==t?$t.stream.match(/^\s*$/,!1)?p():p(y("stat"),E,x(";"),b):"debugger"==t?p(x(";")):"{"==t?p(y("}"),B,b):";"==t?p():"if"==t?("else"==$t.state.lexical.info&&$t.state.cc[$t.state.cc.length-1]==b&&$t.state.cc.pop()(),p(y("form"),S,w,b,nt)):"function"==t?p(lt):"for"==t?p(y("form"),it,w,b):"variable"==t?Lt&&"type"==e?($t.marked="keyword",p(U,x("operator"),U,x(";"))):Lt&&"declare"==e?($t.marked="keyword",p(w)):p(y("stat"),F):"switch"==t?p(y("form"),S,x("{"),y("}","switch"),B,b,b):"case"==t?p(C,x(":")):"default"==t?p(x(":")):"catch"==t?p(y("form"),v,x("("),ct,x(")"),w,b,m):"class"==t?p(y("form"),ht,b):"export"==t?p(y("stat"),gt,b):"import"==t?p(y("stat"),mt,b):"module"==t?p(y("form"),Z,x("{"),y("}"),B,b,b):"async"==t?p(w):"@"==e?p(C,w):f(y("stat"),C,x(";"),b)}function C(t){return T(t,!1)}function k(t){return T(t,!0)}function S(t){return"("!=t?f():p(y(")"),C,x(")"),b)}function T(t,e){if($t.state.fatArrowAt==$t.stream.start){var n=e?N:L;if("("==t)return p(v,y(")"),H(ct,")"),b,x("=>"),n,m);if("variable"==t)return f(v,Z,x("=>"),n,m)}var i=e?P:M;return zt.hasOwnProperty(t)?p(i):"function"==t?p(lt,i):"class"==t?p(y("form"),ut,b):"keyword c"==t||"async"==t?p(e?k:C):"("==t?p(y(")"),E,x(")"),b,i):"operator"==t||"spread"==t?p(e?k:C):"["==t?p(y("]"),Ct,b,i):"{"==t?j($,"}",null,i):"quasi"==t?f(A,i):"new"==t?p(I(e)):p()}function E(t){return t.match(/[;\}\)\],]/)?f():f(C)}function M(t,e){return","==t?p(C):P(t,e,!1)}function P(t,e,n){var i=0==n?M:P,r=0==n?C:k;return"=>"==t?p(v,n?N:L,m):"operator"==t?/\+\+|--/.test(e)||Lt&&"!"==e?p(i):"?"==e?p(C,x(":"),r):p(r):"quasi"==t?f(A,i):";"!=t?"("==t?j(k,")","call",i):"."==t?p(z,i):"["==t?p(y("]"),E,x("]"),b,i):Lt&&"as"==e?($t.marked="keyword",p(U,i)):"regexp"==t?($t.state.lastType=$t.marked="operator",$t.stream.backUp($t.stream.pos-$t.stream.start-1),p(r)):void 0:void 0}function A(t,e){return"quasi"!=t?f():"${"!=e.slice(e.length-2)?p(A):p(C,O)}function O(t){if("}"==t)return $t.marked="string-2",$t.state.tokenize=l,p(A)}function L(t){return c($t.stream,$t.state),f("{"==t?w:C)}function N(t){return c($t.stream,$t.state),f("{"==t?w:k)}function I(t){return function(e){return"."==e?p(t?_:D):"variable"==e&&Lt?p(X,t?P:M):f(t?k:C)}}function D(t,e){if("target"==e)return $t.marked="keyword",p(M)}function _(t,e){if("target"==e)return $t.marked="keyword",p(P)}function F(t){return":"==t?p(b,w):f(M,x(";"),b)}function z(t){if("variable"==t)return $t.marked="property",p()}function $(t,e){if("async"==t)return $t.marked="property",p($);if("variable"==t||"keyword"==$t.style){if($t.marked="property","get"==e||"set"==e)return p(R);var n;return Lt&&$t.state.fatArrowAt==$t.stream.start&&(n=$t.stream.match(/^\s*:\s*/,!1))&&($t.state.fatArrowAt=$t.stream.pos+n[0].length),p(V)}return"number"==t||"string"==t?($t.marked=At?"property":$t.style+" property",p(V)):"jsonld-keyword"==t?p(V):"modifier"==t?p($):"["==t?p(C,x("]"),V):"spread"==t?p(k,V):"*"==e?($t.marked="keyword",p($)):":"==t?f(V):void 0}function R(t){return"variable"!=t?f(V):($t.marked="property",p(lt))}function V(t){return":"==t?p(k):"("==t?f(lt):void 0}function H(t,e,n){function i(r,o){if(n?n.indexOf(r)>-1:","==r){var s=$t.state.lexical;return"call"==s.info&&(s.pos=(s.pos||0)+1),p(function(n,i){return n==e||i==e?f():f(t)},i)}return r==e||o==e?p():p(x(e))}return function(n,r){return n==e||r==e?p():f(t,i)}}function j(t,e,n){for(var i=3;i"==t)return p(U)}function K(t,e){return"variable"==t||"keyword"==$t.style?($t.marked="property",p(K)):"?"==e?p(K):":"==t?p(U):"["==t?p(C,W,x("]"),K):void 0}function G(t){return"variable"==t?p(G):":"==t?p(U):void 0}function Y(t,e){return"<"==e?p(y(">"),H(U,">"),b,Y):"|"==e||"."==t?p(U):"["==t?p(x("]"),Y):"extends"==e?p(U):void 0}function X(t,e){if("<"==e)return p(y(">"),H(U,">"),b,Y)}function J(){return f(Z,W,tt,et)}function Z(t,e){return"modifier"==t?p(Z):"variable"==t?(g(e),p()):"spread"==t?p(Z):"["==t?j(Z,"]"):"{"==t?j(Q,"}"):void 0}function Q(t,e){return"variable"!=t||$t.stream.match(/^\s*:/,!1)?("variable"==t&&($t.marked="property"),"spread"==t?p(Z):"}"==t?f():p(x(":"),Z,tt)):(g(e),p(tt))}function tt(t,e){if("="==e)return p(k)}function et(t){if(","==t)return p(J)}function nt(t,e){if("keyword b"==t&&"else"==e)return p(y("form","else"),w,b)}function it(t){if("("==t)return p(y(")"),rt,x(")"),b)}function rt(t){return"var"==t?p(J,x(";"),st):";"==t?p(st):"variable"==t?p(ot):f(C,x(";"),st)}function ot(t,e){return"in"==e||"of"==e?($t.marked="keyword",p(C)):p(M,st)}function st(t,e){return";"==t?p(at):"in"==e||"of"==e?($t.marked="keyword",p(C)):f(C,x(";"),at)}function at(t){")"!=t&&p(C)}function lt(t,e){return"*"==e?($t.marked="keyword",p(lt)):"variable"==t?(g(e),p(lt)):"("==t?p(v,y(")"),H(ct,")"),b,W,w,m):Lt&&"<"==e?p(y(">"),H(U,">"),b,lt):void 0}function ct(t,e){return"@"==e&&p(C,ct),"spread"==t||"modifier"==t?p(ct):f(Z,W,tt)}function ut(t,e){return"variable"==t?ht(t,e):dt(t,e)}function ht(t,e){if("variable"==t)return g(e),p(dt)}function dt(t,e){return"<"==e?p(y(">"),H(U,">"),b,dt):"extends"==e||"implements"==e||Lt&&","==t?p(Lt?U:C,dt):"{"==t?p(y("}"),ft,b):void 0}function ft(t,e){return"modifier"==t||"async"==t||"variable"==t&&("static"==e||"get"==e||"set"==e)&&$t.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?($t.marked="keyword",p(ft)):"variable"==t||"keyword"==$t.style?($t.marked="property",p(Lt?pt:lt,ft)):"["==t?p(C,x("]"),Lt?pt:lt,ft):"*"==e?($t.marked="keyword",p(ft)):";"==t?p(ft):"}"==t?p():"@"==e?p(C,ft):void 0}function pt(t,e){return"?"==e?p(pt):":"==t?p(U,tt):"="==e?p(k):f(lt)}function gt(t,e){return"*"==e?($t.marked="keyword",p(wt,x(";"))):"default"==e?($t.marked="keyword",p(C,x(";"))):"{"==t?p(H(vt,"}"),wt,x(";")):f(w)}function vt(t,e){return"as"==e?($t.marked="keyword",p(x("variable"))):"variable"==t?f(k,vt):void 0}function mt(t){return"string"==t?p():f(yt,bt,wt)}function yt(t,e){return"{"==t?j(yt,"}"):("variable"==t&&g(e),"*"==e&&($t.marked="keyword"),p(xt))}function bt(t){if(","==t)return p(yt,bt)}function xt(t,e){if("as"==e)return $t.marked="keyword",p(yt)}function wt(t,e){if("from"==e)return $t.marked="keyword",p(C)}function Ct(t){return"]"==t?p():f(H(k,"]"))}function kt(t,e){return"operator"==t.lastType||","==t.lastType||Dt.test(e.charAt(0))||/[,.]/.test(e.charAt(0))}function St(t,e,n){return e.tokenize==o&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(e.lastType)||"quasi"==e.lastType&&/\{\s*$/.test(t.string.slice(0,t.pos-(n||0)))}var Tt,Et,Mt=e.indentUnit,Pt=n.statementIndent,At=n.jsonld,Ot=n.json||At,Lt=n.typescript,Nt=n.wordCharacters||/[\w$\xa1-\uffff]/,It=function(){function t(t){return{type:t,style:"keyword"}}var e=t("keyword a"),n=t("keyword b"),i=t("keyword c"),r=t("keyword d"),o=t("operator"),s={type:"atom",style:"atom"},a={if:t("if"),while:e,with:e,else:n,do:n,try:n,finally:n,return:r,break:r,continue:r,new:t("new"),delete:i,void:i,throw:i,debugger:t("debugger"),var:t("var"),const:t("var"),let:t("var"),function:t("function"),catch:t("catch"),for:t("for"),switch:t("switch"),case:t("case"),default:t("default"),in:o,typeof:o,instanceof:o,true:s,false:s,null:s,undefined:s,NaN:s,Infinity:s,this:t("this"),class:t("class"),super:t("atom"),yield:i,export:t("export"),import:t("import"),extends:i,await:i};if(Lt){var l={type:"variable",style:"type"},c={interface:t("class"),implements:i,namespace:i,module:t("module"),enum:t("module"),public:t("modifier"),private:t("modifier"),protected:t("modifier"),abstract:t("modifier"),readonly:t("modifier"),string:l,number:l,boolean:l,any:l};for(var u in c)a[u]=c[u]}return a}(),Dt=/[+\-*&%=<>!?|~^@]/,_t=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/,Ft="([{}])",zt={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,"jsonld-keyword":!0},$t={state:null,column:null,marked:null,cc:null},Rt={name:"this",next:{name:"arguments"}};return b.lex=!0,{startState:function(t){var e={tokenize:o,lastType:"sof",cc:[],lexical:new u((t||0)-Mt,0,"block",!1),localVars:n.localVars,context:n.localVars&&{vars:n.localVars},indented:t||0};return n.globalVars&&"object"==typeof n.globalVars&&(e.globalVars=n.globalVars),e},token:function(t,e){if(t.sol()&&(e.lexical.hasOwnProperty("align")||(e.lexical.align=!1),e.indented=t.indentation(),c(t,e)),e.tokenize!=a&&t.eatSpace())return null;var n=e.tokenize(t,e);return"comment"==Tt?n:(e.lastType="operator"!=Tt||"++"!=Et&&"--"!=Et?Tt:"incdec",d(e,n,Tt,Et,t))},indent:function(e,i){if(e.tokenize==a)return t.Pass;if(e.tokenize!=o)return 0;var r,s=i&&i.charAt(0),l=e.lexical;if(!/^\s*else\b/.test(i))for(var c=e.cc.length-1;c>=0;--c){var u=e.cc[c];if(u==b)l=l.prev;else if(u!=nt)break}for(;("stat"==l.type||"form"==l.type)&&("}"==s||(r=e.cc[e.cc.length-1])&&(r==M||r==P)&&!/^[,\.=+\-*:?[\(]/.test(i));)l=l.prev;Pt&&")"==l.type&&"stat"==l.prev.type&&(l=l.prev);var h=l.type,d=s==h;return"vardef"==h?l.indented+("operator"==e.lastType||","==e.lastType?l.info+1:0):"form"==h&&"{"==s?l.indented:"form"==h?l.indented+Mt:"stat"==h?l.indented+(kt(e,i)?Pt||Mt:0):"switch"!=l.info||d||0==n.doubleIndentSwitch?l.align?l.column+(d?0:1):l.indented+(d?0:Mt):l.indented+(/^(?:case|default)\b/.test(i)?Mt:2*Mt)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:Ot?null:"/*",blockCommentEnd:Ot?null:"*/",blockCommentContinue:Ot?null:" * ",lineComment:Ot?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:Ot?"json":"javascript",jsonldMode:At,jsonMode:Ot,expressionAllowed:St,skipExpression:function(t){var e=t.cc[t.cc.length-1];e!=C&&e!=k||t.cc.pop()}}}),t.registerHelper("wordChars","javascript",/[\w$]/),t.defineMIME("text/javascript","javascript"),t.defineMIME("text/ecmascript","javascript"),t.defineMIME("application/javascript","javascript"),t.defineMIME("application/x-javascript","javascript"),t.defineMIME("application/ecmascript","javascript"),t.defineMIME("application/json",{name:"javascript",json:!0}),t.defineMIME("application/x-json",{name:"javascript",json:!0}),t.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),t.defineMIME("text/typescript",{name:"javascript",typescript:!0}),t.defineMIME("application/typescript",{name:"javascript",typescript:!0})})},function(t,e,n){!function(t){t(n(6))}(function(t){t.extendMode("css",{commentStart:"/*",commentEnd:"*/",newlineAfterToken:function(t,e){return/^[;{}]$/.test(e)}}),t.extendMode("javascript",{commentStart:"/*",commentEnd:"*/",newlineAfterToken:function(t,e,n,i){return this.jsonMode?/^[\[,{]$/.test(e)||/^}/.test(n):(";"!=e||!i.lexical||")"!=i.lexical.type)&&(/^[;{}]$/.test(e)&&!/^;/.test(n))}});var e=/^(a|abbr|acronym|area|base|bdo|big|br|button|caption|cite|code|col|colgroup|dd|del|dfn|em|frame|hr|iframe|img|input|ins|kbd|label|legend|link|map|object|optgroup|option|param|q|samp|script|select|small|span|strong|sub|sup|textarea|tt|var)$/;t.extendMode("xml",{commentStart:"\x3c!--",commentEnd:"--\x3e",newlineAfterToken:function(t,n,i,r){var o=!1;return"html"==this.configuration&&(o=!!r.context&&e.test(r.context.tagName)),!o&&("tag"==t&&/>$/.test(n)&&r.context||/^-1&&a>-1&&a>s&&(t=t.substr(0,s)+t.substring(s+o.commentStart.length,a)+t.substr(a+o.commentEnd.length)),r.replaceRange(t,n,i)}})}),t.defineExtension("autoIndentRange",function(t,e){var n=this;this.operation(function(){for(var i=t.line;i<=e.line;i++)n.indentLine(i,"smart")})}),t.defineExtension("autoFormatRange",function(e,n){function i(){c+="\n",h=!0,++u}for(var r=this,o=r.getMode(),s=r.getRange(e,n).split("\n"),a=t.copyState(o,r.getTokenAt(e).state),l=r.getOption("tabSize"),c="",u=0,h=0===e.ch,d=0;d\n \t
<%= label %>
\n \t
\n '),initialize:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix},render:function(){var t=this.model.toJSON();return t.pfx=this.pfx,this.$el.html(this.template(t)),this.$el.attr("class",this.pfx+"editor-c"),this.$el.find("#"+this.pfx+"code").append(this.model.get("input")),this}})}).call(e,n(1))},function(t,e,n){"use strict";t.exports=function(){var t,e,i={},r=n(110),o=n(27),s=n(112),a=(n(29),n(114));return{name:"Panels",init:function(n){i=n||{};for(var o in r)o in i||(i[o]=r[o]);var l=i.pStylePrefix;return l&&(i.stylePrefix=l+i.stylePrefix),t=new s(i.defaults),e=new a({collection:t,config:i}),this},getPanels:function(){return t},getPanelsEl:function(){return e.el},addPanel:function(e){return t.add(e)},removePanel:function(e){return t.remove(e)},getPanel:function(e){var n=t.where({id:e});return n.length?n[0]:null},addButton:function(t,e){var n=this.getPanel(t);return n?n.get("buttons").add(e):null},removeButton:function(t,e){var n=this.getPanel(t);return n&&n.get("buttons").remove(e)},getButton:function(t,e){var n=this.getPanel(t);if(n){var i=n.get("buttons").where({id:e});return i.length?i[0]:null}return null},render:function(){return e.render().el},active:function(){this.getPanels().each(function(t){t.get("buttons").each(function(t){t.get("active")&&t.trigger("updateActive")})})},disableButtons:function(){this.getPanels().each(function(t){t.get("buttons").each(function(t){t.get("disable")&&t.trigger("change:disable")})})},Panel:o}}},function(t,e,n){"use strict";var i="sw-visibility",r="export-template",o="open-layers",s="open-blocks",a="fullscreen",l="preview";t.exports={stylePrefix:"pn-",defaults:[{id:"commands",buttons:[{}]},{id:"options",buttons:[{active:!0,id:i,className:"fa fa-square-o",command:i,context:i,attributes:{title:"View components"}},{id:l,className:"fa fa-eye",command:l,context:l,attributes:{title:"Preview"}},{id:a,className:"fa fa-arrows-alt",command:a,context:a,attributes:{title:"Fullscreen"}},{id:r,className:"fa fa-code",command:r,attributes:{title:"View code"}}]},{id:"views",buttons:[{id:"open-sm",className:"fa fa-paint-brush",command:"open-sm",active:!0,attributes:{title:"Open Style Manager"}},{id:"open-tm",className:"fa fa-cog",command:"open-tm",attributes:{title:"Settings"}},{id:o,className:"fa fa-bars",command:o,attributes:{title:"Open Layer Manager"}},{id:s,className:"fa fa-th-large",command:s,attributes:{title:"Open Blocks"}}]}],em:null,delayBtnsShow:300}},function(t,e,n){"use strict";var i=n(0);t.exports=i.Model.extend({defaults:{id:"",className:"",command:"",context:"",buttons:[],attributes:{},options:{},active:!1,dragDrop:!1,runDefaultCommand:!0,stopDefaultCommand:!1,disable:!1},initialize:function(t){if(this.get("buttons").length){var e=n(28);this.set("buttons",new e(this.get("buttons")))}}})},function(t,e,n){"use strict";var i=n(0),r=n(27);t.exports=i.Collection.extend({model:r})},function(t,e,n){"use strict";(function(e,i){var r=n(1),o=e.$;t.exports=e.View.extend({tagName:"span",initialize:function(t){i.bindAll(this,"startTimer","stopTimer","showButtons","hideButtons","closeOnKeyPress","onDrop","initSorter","stopDrag");var e=this.model.get("className");this.config=t.config||{},this.em=this.config.em||{};var n=this.config.stylePrefix||"",r=this.config.pStylePrefix||"";this.pfx=n,this.ppfx=this.config.pStylePrefix||"",this.id=n+this.model.get("id"),this.activeCls=n+"active "+r+"four-color",this.disableCls=n+"active",this.btnsVisCls=n+"visible",this.parentM=t.parentM||null,this.className=n+"btn"+(e?" "+e:""),this.listenTo(this.model,"change:active updateActive",this.updateActive),this.listenTo(this.model,"checkActive",this.checkActive),this.listenTo(this.model,"change:bntsVis",this.updateBtnsVis),this.listenTo(this.model,"change:attributes",this.updateAttributes),this.listenTo(this.model,"change:className",this.updateClassName),this.listenTo(this.model,"change:disable",this.updateDisable),this.model.get("buttons").length&&(this.$el.on("mousedown",this.startTimer),this.$el.append(o("
",{class:n+"arrow-rd"}))),this.em&&this.em.get&&(this.commands=this.em.get("Commands")),this.events={},this.model.get("dragDrop")?(this.events.mousedown="initDrag",this.em.on("loaded",this.initSorter)):this.events.click="clicked",this.delegateEvents()},initSorter:function(){if(this.em.Canvas){var t=this.em.Canvas;this.canvasEl=t.getBody(),this.sorter=new this.em.Utils.Sorter({container:this.canvasEl,placer:t.getPlacerEl(),containerSel:"*",itemSel:"*",pfx:this.ppfx,onMove:this.onDrag,onEndMove:this.onDrop,document:t.getFrameEl().contentDocument,direction:"a",wmargin:1,nested:1});var e=t.getOffset();this.sorter.offTop=e.top,this.sorter.offLeft=e.left}},initDrag:function(){this.model.collection.deactivateAll(this.model.get("context")),this.sorter.startSort(this.el),this.sorter.setDropContent(this.model.get("options").content),this.canvasEl.style.cursor="grabbing",o(document).on("mouseup",this.stopDrag)},stopDrag:function(){o(document).off("mouseup",this.stopDrag),this.sorter.endMove()},onDrag:function(t){},onDrop:function(t){this.canvasEl.style.cursor="default"},updateClassName:function(){var t=this.model.get("className");this.$el.attr("class",this.pfx+"btn"+(t?" "+t:""))},updateAttributes:function(){this.$el.attr(this.model.get("attributes"))},updateBtnsVis:function(){this.$buttons&&(this.model.get("bntsVis")?this.$buttons.addClass(this.btnsVisCls):this.$buttons.removeClass(this.btnsVisCls))},startTimer:function(){this.timeout=setTimeout(this.showButtons,this.config.delayBtnsShow),o(document).on("mouseup",this.stopTimer)},stopTimer:function(){o(document).off("mouseup",this.stopTimer),this.timeout&&clearTimeout(this.timeout)},showButtons:function(){clearTimeout(this.timeout),this.model.set("bntsVis",!0),o(document).on("mousedown",this.hideButtons),o(document).on("keypress",this.closeOnKeyPress)},hideButtons:function(t){t&&o(t.target).trigger("click"),this.model.set("bntsVis",!1),o(document).off("mousedown",this.hideButtons),o(document).off("keypress",this.closeOnKeyPress)},closeOnKeyPress:function(t){27==(t.which||t.keyCode)&&this.hideButtons()},updateActive:function(){var t=this.model,e=t.get("context"),n=this.parentM,i={},o=this.em&&this.em.get?this.em.get("Editor"):null,s=t.get("command");this.commands&&(0,r.isString)(s)?i=this.commands.get(s)||{}:(0,r.isFunction)(s)?i={run:s}:null!==s&&(0,r.isObject)(s)&&(i=s),t.get("active")?(t.collection.deactivateAll(e),t.set("active",!0,{silent:!0}).trigger("checkActive"),n&&n.set("active",!0,{silent:!0}).trigger("checkActive"),i.run&&(i.run(o,t,t.get("options")),o.trigger("run:"+s)),!i.stop&&t.set("active",!1)):(this.$el.removeClass(this.activeCls),t.collection.deactivateAll(e),n&&n.set("active",!1,{silent:!0}).trigger("checkActive"),i.stop&&(i.stop(o,t,t.get("options")),o.trigger("stop:"+s)))},updateDisable:function(){this.model.get("disable")?this.$el.addClass(this.disableCls):this.$el.removeClass(this.disableCls)},checkActive:function(){this.model.get("active")?this.$el.addClass(this.activeCls):this.$el.removeClass(this.activeCls)},clicked:function(t){this.model.get("bntsVis")||this.model.get("disable")||this.toogleActive()},toogleActive:function(){this.parentM&&this.swapParent();var t=this.model.get("active");this.model.set("active",!t);this.em.get("Commands").get("select-comp");t?this.model.get("runDefaultCommand")&&this.em.runDefault():this.model.get("stopDefaultCommand")&&this.em.stopDefault()},swapParent:function(){this.parentM.collection.deactivateAll(this.model.get("context")),this.parentM.set("attributes",this.model.get("attributes")),this.parentM.set("options",this.model.get("options")),this.parentM.set("command",this.model.get("command")),this.parentM.set("className",this.model.get("className")),this.parentM.set("active",!0,{silent:!0}).trigger("checkActive")},render:function(){if(this.updateAttributes(),this.$el.attr("class",this.className),this.model.get("buttons").length){var t=n(30),e=new t({collection:this.model.get("buttons"),config:this.config,parentM:this.model});this.$buttons=e.render().$el,this.$buttons.append(o("
",{class:this.pfx+"arrow-l"})),this.$el.append(this.$buttons)}return this}})}).call(e,n(0),n(1))},function(t,e,n){"use strict";var i=n(0),r=n(29);t.exports=i.View.extend({initialize:function(t){this.opt=t||{},this.config=this.opt.config||{},this.pfx=this.config.stylePrefix||"",this.listenTo(this.collection,"add",this.addTo),this.listenTo(this.collection,"reset",this.render),this.className=this.pfx+"panels"},addTo:function(t){this.addToCollection(t)},addToCollection:function(t,e){var n=e||null,i=new r({model:t,config:this.config}),o=i.render().el,s=t.get("appendTo");if(s){document.querySelector(s).appendChild(o)}else n?n.appendChild(o):this.$el.append(o);return i.initResize(),o},render:function(){var t=document.createDocumentFragment();return this.$el.empty(),this.collection.each(function(e){this.addToCollection(e,t)},this),this.$el.append(t),this.$el.attr("class",this.className),this}})},function(t,e,n){"use strict";var i=n(116),r=function(t){return t&&t.__esModule?t:{default:t}}(i),o=n(2);t.exports=function(){var t={},e=n(117),i=void 0,s=void 0,a=void 0,l=void 0,c=function(){var t=i.style;t.top="-100px",t.left="-100px",t.display="none"};return{customRte:null,name:"RichTextEditor",init:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t=n;for(var r in e)r in t||(t[r]=e[r]);var a=t.pStylePrefix;return a&&(t.stylePrefix=a+t.stylePrefix),this.pfx=t.stylePrefix,s=t.actions||[],i=document.createElement("div"),i.className=a+"rte-toolbar "+a+"one-bg",l=this.initRte(document.createElement("div")),(0,o.on)(i,"mousedown",function(t){return t.stopPropagation()}),this},postRender:function(t){var e=t.model.get("Canvas");i.style.pointerEvents="all",c(),e.getToolsEl().appendChild(i)},initRte:function(e){var n=this.pfx,o=i,s=this.actionbar,a=this.actions||t.actions,c={actionbar:n+"actionbar",button:n+"action",active:n+"active"},u=new r.default({el:e,classes:c,actions:a,actionbar:s,actionbarContainer:o});return l&&l.setEl(e),u.actionbar&&(this.actionbar=u.actionbar),u.actions&&(this.actions=u.actions),u},add:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.name=t,l.addAction(e,{sync:1})},get:function(t){var e=void 0;return l.getActions().forEach(function(n){n.name==t&&(e=n)}),e},getAll:function(){return l.getActions()},remove:function(t){var e=this.getAll(),n=this.get(t);if(n){var i=n.btn,r=e.indexOf(n);i.parentNode.removeChild(i),e.splice(r,1)}return n},getToolbarEl:function(){return i},udpatePosition:function(){var e=t.em.get("Canvas"),n=e.getTargetToElementDim(i,a,{event:"rteToolbarPosUpdate"});t.adjustToolbar&&n.top<=n.canvasTop&&(n.top=n.elementTop+n.elementHeight);var r=i.style;r.top=n.top+"px",r.left=n.left+"px"},enable:function(e,n){a=e.el;var r=t.em,o=e.getChildrenContainer(),s=this.customRte;if(i.style.display="",n=s?s.enable(o,n):this.initRte(o).enable(),r){setTimeout(this.udpatePosition.bind(this),0);var l="change:canvasOffset canvasScroll";r.off(l,this.udpatePosition,this),r.on(l,this.udpatePosition,this),r.trigger("rte:enable",e,n)}return n},disable:function(e,n){var i=t.em,r=this.customRte,o=e.getChildrenContainer();r?r.disable(o,n):n&&n.disable(),c(),i&&i.trigger("rte:disable",e,n)}}}},function(t,e,n){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var r=Object.assign||function(t){for(var e=1;eB",attributes:{title:"Bold"},result:function(t){return t.exec("bold")}},italic:{name:"italic",icon:"I",attributes:{title:"Italic"},result:function(t){return t.exec("italic")}},underline:{name:"underline",icon:"U",attributes:{title:"Underline"},result:function(t){return t.exec("underline")}},strikethrough:{name:"strikethrough",icon:"S",attributes:{title:"Strike-through"},result:function(t){return t.exec("strikeThrough")}},link:{icon:'',name:"link",attributes:{style:"font-size:1.4rem;padding:0 4px 2px;",title:"Link"},result:function(t){return t.insertHTML(''+t.selection()+"")}}},c=function(){function t(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};i(this,t);var o=n.el;if(o[a])return o[a];o[a]=this,this.setEl(o),this.updateActiveActions=this.updateActiveActions.bind(this);var s=n.actions||[];s.forEach(function(t,e){"string"==typeof t?t=l[t]:l[t.name]&&(t=r({},l[t.name],t)),s[e]=t});var c=s.length?s:Object.keys(l).map(function(t){return l[t]});n.classes=r({actionbar:"actionbar",button:"action",active:"active"},n.classes);var u=n.classes,h=n.actionbar;if(this.actionbar=h,this.settings=n,this.classes=u,this.actions=c,!h){var d=n.actionbarContainer;h=document.createElement("div"),h.className=u.actionbar,d.appendChild(h),this.actionbar=h,c.forEach(function(t){return e.addAction(t)})}return n.styleWithCSS&&this.exec("styleWithCSS"),this.syncActions(),this}return o(t,[{key:"setEl",value:function(t){this.el=t,this.doc=t.ownerDocument}},{key:"updateActiveActions",value:function(){var t=this;this.getActions().forEach(function(e){var n=e.btn,i=e.update,r=t.classes.active,o=e.name,s=t.doc;n.className=n.className.replace(r,"").trim(),s.queryCommandState(o)&&(n.className+=" "+r),i&&i(t,e)})}},{key:"enable",value:function(){return this.enabled?this:(this.actionbarEl().style.display="",this.el.contentEditable=!0,(0,s.on)(this.el,"mouseup keyup",this.updateActiveActions),this.syncActions(),this.updateActiveActions(),this.el.focus(),this.enabled=1,this)}},{key:"disable",value:function(){return this.actionbarEl().style.display="none",this.el.contentEditable=!1,(0,s.off)(this.el,"mouseup keyup",this.updateActiveActions),this.enabled=0,this}},{key:"syncActions",value:function(){var t=this;this.getActions().forEach(function(e){var n=e.event||"click";e.btn["on"+n]=function(n){e.result(t,e),t.updateActiveActions()}})}},{key:"addAction",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.sync,i=document.createElement("span"),r=t.icon,o=t.attributes||{};i.className=this.classes.button,t.btn=i;for(var s in o)i.setAttribute(s,o[s]);"string"==typeof r?i.innerHTML=r:i.appendChild(r),this.actionbarEl().appendChild(i),n&&(this.actions.push(t),this.syncActions())}},{key:"getActions",value:function(){return this.actions}},{key:"selection",value:function(){return this.doc.getSelection()}},{key:"exec",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.doc.execCommand(t,!1,e)}},{key:"actionbarEl",value:function(){return this.actionbar}},{key:"insertHTML",value:function(t){var e=void 0,n=this.doc,i=n.getSelection();if(i&&i.rangeCount){var r=n.createElement("div"),o=i.getRangeAt(0);o.deleteContents(),r.innerHTML=t,Array.prototype.slice.call(r.childNodes).forEach(function(t){o.insertNode(t),e=t}),i.removeAllRanges(),i.addRange(o),this.el.focus()}}}]),t}();e.default=c},function(t,e,n){"use strict";t.exports={stylePrefix:"rte-",adjustToolbar:1,actions:["bold","italic","underline","strikethrough","link"]}},function(t,e,n){"use strict";t.exports={stylePrefix:"sm-",sectors:[],textNoElement:"Select an element before using Style Manager",hideNotStylable:!0,highlightChanged:!0,highlightComputed:!0,showComputed:!0,clearProperties:0,avoidComputed:["width","height"]}},function(t,e,n){"use strict";var i=n(120);t.exports=n(0).Collection.extend({model:i})},function(t,e,n){"use strict";var i=n(1),r=n(0),o=n(11),s=n(129);t.exports=r.Model.extend({defaults:{id:"",name:"",open:!0,buildProps:"",extendBuilded:1,properties:[]},initialize:function(t){var e=t||{},n=[],i=this.buildProperties(e.buildProps);!this.get("id")&&this.set("id",this.get("name")),n=i?this.extendProperties(i):this.get("properties");var r=new o(n);r.sector=this,this.set("properties",r)},extendProperties:function(t,e,n){for(var r=t.length,o=e||this.get("properties"),s=this.get("extendBuilded"),a=[],l=0,c=o.length;l')}else{o.push(t("
").append(t('').attr("title",r.noColorSelectedText)).html())}}return"
"+o.join("")+"
"}function r(){for(var t=0;t1&&(delete window.localStorage[B],t.each(e,function(t,e){p(e)}))}catch(t){}try{vt=window.localStorage[B].split(";")}catch(t){}}}function p(e){if(j){var n=st(e).toRgbString();if(!gt[n]&&-1===t.inArray(n,vt))for(vt.push(n);vt.length>mt;)vt.shift();if(B&&window.localStorage)try{window.localStorage[B]=vt.join(";")}catch(t){}}}function g(){var t=[];if(V.showPalette)for(var e=0;eMath.abs(e-r);bt=o?"x":"y"}}else bt=null;var s=!bt||"x"===bt,a=!bt||"y"===bt;s&&(ut=parseFloat(t/tt)),a&&(ht=parseFloat((et-e)/et)),Yt=!1,V.showAlpha||(dt=1),O()},y,b),Ut?(M(Ut),L(),Kt=V.preferredFormat||st(Ut).format,p(Ut)):L(),H&&C();var i=G?"mousedown.spectrum":"click.spectrum touchstart.spectrum";It.delegate(".sp-thumb-el",i,e),Dt.delegate(".sp-thumb-el:nth-child(1)",i,{ignore:!0},e)}();var Jt={show:C,hide:T,toggle:w,reflow:D,option:F,enable:z,disable:$,offset:R,set:function(t){M(t),I()},get:P,destroy:_,container:kt};return Jt.id=K.push(Jt)-1,Jt}function a(e,n){var i=e.outerWidth(),r=e.outerHeight(),o=n.outerHeight(),s=e[0].ownerDocument,a=s.documentElement,l=a.clientWidth,c=a.clientHeight,u=t(s).scrollLeft(),h=t(s).scrollTop(),d=l+u,f=c+h,p=n.offset();return p.top+=o,p.left-=Math.min(p.left,p.left+i>d&&d>i?Math.abs(p.left+i-d):0),p.top-=Math.min(p.top,p.top+r>f&&f>r?Math.abs(r+o-0):0),p}function l(){}function c(t){t.stopPropagation()}function u(t,e){var n=Array.prototype.slice,i=n.call(arguments,2);return function(){return t.apply(e,i.concat(n.call(arguments)))}}function h(e,n,i,r){function o(t){t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault(),t.returnValue=!1}function s(t){if(u){if(G&&c.documentMode<9&&!t.button)return l();var i=t.originalEvent&&t.originalEvent.touches&&t.originalEvent.touches[0],r=i&&i.pageX||t.pageX,s=i&&i.pageY||t.pageY,a=Math.max(0,Math.min(r-h.left,f)),g=Math.max(0,Math.min(s-h.top,d));p&&o(t),n.apply(e,[a,g,t])}}function a(n){(n.which?3==n.which:2==n.button)||u||!1!==i.apply(e,arguments)&&(u=!0,d=t(e).height(),f=t(e).width(),h=t(e).offset(),t(c).bind(g),t(c.body).addClass("sp-dragging"),s(n),o(n))}function l(){u&&(t(c).unbind(g),t(c.body).removeClass("sp-dragging"),setTimeout(function(){r.apply(e,arguments)},0)),u=!1}n=n||function(){},i=i||function(){},r=r||function(){};var c=document,u=!1,h={},d=0,f=0,p="ontouchstart"in window,g={};g.selectstart=o,g.dragstart=o,g["touchmove mousemove"]=s,g["touchend mouseup"]=l,t(e).bind("touchstart mousedown",a)}function d(t,e,n){var i;return function(){var r=this,o=arguments,s=function(){i=null,t.apply(r,o)};n&&clearTimeout(i),!n&&i||(i=setTimeout(s,e))}}function f(){return t.fn.spectrum.inputTypeColorSupport()}function p(t){var n={r:0,g:0,b:0},i=1,r=!1,o=!1;return"string"==typeof t&&(t=U(t)),"object"==(void 0===t?"undefined":e(t))&&(t.hasOwnProperty("r")&&t.hasOwnProperty("g")&&t.hasOwnProperty("b")?(n=g(t.r,t.g,t.b),r=!0,o="%"===String(t.r).substr(-1)?"prgb":"rgb"):t.hasOwnProperty("h")&&t.hasOwnProperty("s")&&t.hasOwnProperty("v")?(t.s=j(t.s),t.v=j(t.v),n=b(t.h,t.s,t.v),r=!0,o="hsv"):t.hasOwnProperty("h")&&t.hasOwnProperty("s")&&t.hasOwnProperty("l")&&(t.s=j(t.s),t.l=j(t.l),n=m(t.h,t.s,t.l),r=!0,o="hsl"),t.hasOwnProperty("a")&&(i=t.a)),i=_(i),{ok:r,format:t.format||o,r:it(255,rt(n.r,0)),g:it(255,rt(n.g,0)),b:it(255,rt(n.b,0)),a:i}}function g(t,e,n){return{r:255*F(t,255),g:255*F(e,255),b:255*F(n,255)}}function v(t,e,n){t=F(t,255),e=F(e,255),n=F(n,255);var i,r,o=rt(t,e,n),s=it(t,e,n),a=(o+s)/2;if(o==s)i=r=0;else{var l=o-s;switch(r=a>.5?l/(2-o-s):l/(o+s),o){case t:i=(e-n)/l+(e1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t}var r,o,s;if(t=F(t,360),e=F(e,100),n=F(n,100),0===e)r=o=s=n;else{var a=n<.5?n*(1+e):n+e-n*e,l=2*n-a;r=i(l,a,t+1/3),o=i(l,a,t),s=i(l,a,t-1/3)}return{r:255*r,g:255*o,b:255*s}}function y(t,e,n){t=F(t,255),e=F(e,255),n=F(n,255);var i,r,o=rt(t,e,n),s=it(t,e,n),a=o,l=o-s;if(r=0===o?0:l/o,o==s)i=0;else{switch(o){case t:i=(e-n)/l+(e>1)+720)%360;--e;)i.h=(i.h+r)%360,o.push(st(i));return o}function D(t,e){e=e||6;for(var n=st(t).toHsv(),i=n.h,r=n.s,o=n.v,s=[],a=1/e;e--;)s.push(st({h:i,s:r,v:o})),o=(o+a)%1;return s}function _(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function F(t,e){R(t)&&(t="100%");var n=V(t);return t=it(e,rt(0,parseFloat(t))),n&&(t=parseInt(t*e,10)/100),et.abs(t-e)<1e-6?1:t%e/parseFloat(e)}function z(t){return it(1,rt(0,t))}function $(t){return parseInt(t,16)}function R(t){return"string"==typeof t&&-1!=t.indexOf(".")&&1===parseFloat(t)}function V(t){return"string"==typeof t&&-1!=t.indexOf("%")}function H(t){return 1==t.length?"0"+t:""+t}function j(t){return t<=1&&(t=100*t+"%"),t}function B(t){return Math.round(255*parseFloat(t)).toString(16)}function W(t){return $(t)/255}function U(t){t=t.replace(Z,"").replace(Q,"").toLowerCase();var e=!1;if(at[t])t=at[t],e=!0;else if("transparent"==t)return{r:0,g:0,b:0,a:0,format:"name"};var n;return(n=ct.rgb.exec(t))?{r:n[1],g:n[2],b:n[3]}:(n=ct.rgba.exec(t))?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=ct.hsl.exec(t))?{h:n[1],s:n[2],l:n[3]}:(n=ct.hsla.exec(t))?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=ct.hsv.exec(t))?{h:n[1],s:n[2],v:n[3]}:(n=ct.hsva.exec(t))?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=ct.hex8.exec(t))?{a:W(n[1]),r:$(n[2]),g:$(n[3]),b:$(n[4]),format:e?"name":"hex8"}:(n=ct.hex6.exec(t))?{r:$(n[1]),g:$(n[2]),b:$(n[3]),format:e?"name":"hex"}:!!(n=ct.hex3.exec(t))&&{r:$(n[1]+""+n[1]),g:$(n[2]+""+n[2]),b:$(n[3]+""+n[3]),format:e?"name":"hex"}}var q={beforeShow:l,move:l,change:l,show:l,hide:l,color:!1,flat:!1,showInput:!1,allowEmpty:!1,showButtons:!0,clickoutFiresChange:!0,showInitial:!1,showPalette:!1,showPaletteOnly:!1,hideAfterPaletteSelect:!1,togglePaletteOnly:!1,showSelectionPalette:!0,localStorageKey:!1,appendTo:"body",maxSelectionSize:7,cancelText:"cancel",chooseText:"choose",togglePaletteMoreText:"more",togglePaletteLessText:"less",clearText:"Clear Color Selection",noColorSelectedText:"No Color Selected",preferredFormat:!1,className:"",containerClassName:"",replacerClassName:"",showAlpha:!1,theme:"sp-light",palette:[["#ffffff","#000000","#ff0000","#ff8000","#ffff00","#008000","#0000ff","#4b0082","#9400d3"]],selectionPalette:[],disabled:!1,offset:null},K=[],G=!!/msie/i.exec(window.navigator.userAgent),Y=function(){function t(t,e){return!!~(""+t).indexOf(e)}var e=document.createElement("div"),n=e.style;return n.cssText="background-color:rgba(0,0,0,.5)",t(n.backgroundColor,"rgba")||t(n.backgroundColor,"hsla")}(),X=["
","
","
","
"].join(""),J=function(){var t="";if(G)for(var e=1;e<=6;e++)t+="
";return["
","
","
","
","","
","
","
","
","
","
","
","
","
","
","
","
","
","
","
","
","
",t,"
","
","
","
","
","","
","
","
","","","
","
","
"].join("")}();t.fn.spectrum=function(e,n){if("string"==typeof e){var i=this,r=Array.prototype.slice.call(arguments,1);return this.each(function(){var n=K[t(this).data("spectrum.id")];if(n){var o=n[e];if(!o)throw new Error("Spectrum: no such method: '"+e+"'");"get"==e?i=n.get():"container"==e?i=n.container:"option"==e?i=n.option.apply(n,r):"destroy"==e?(n.destroy(),t(this).removeData("spectrum.id")):o.apply(n,r)}}),i}return this.spectrum("destroy").each(function(){var n=t.extend({},e,t(this).data()),i=s(this,n);t(this).data("spectrum.id",i.id)})},t.fn.spectrum.load=!0,t.fn.spectrum.loadOpts={},t.fn.spectrum.draggable=h,t.fn.spectrum.defaults=q,t.fn.spectrum.inputTypeColorSupport=function e(){if(void 0===e._cachedResult){var n=t("")[0];e._cachedResult="color"===n.type&&""!==n.value}return e._cachedResult},t.spectrum={},t.spectrum.localization={},t.spectrum.palettes={},t.fn.spectrum.processNativeColorInputs=function(){var e=t("input[type=color]");e.length&&!f()&&e.spectrum({preferredFormat:"hex6"})};var Z=/^[\s,#]+/,Q=/\s+$/,tt=0,et=Math,nt=et.round,it=et.min,rt=et.max,ot=et.random,st=function t(e,n){if(e=e||"",n=n||{},e instanceof t)return e;if(!(this instanceof t))return new t(e,n);var i=p(e);this._originalInput=e,this._r=i.r,this._g=i.g,this._b=i.b,this._a=i.a,this._roundA=nt(100*this._a)/100,this._format=n.format||i.format,this._gradientType=n.gradientType,this._r<1&&(this._r=nt(this._r)),this._g<1&&(this._g=nt(this._g)),this._b<1&&(this._b=nt(this._b)),this._ok=i.ok,this._tc_id=tt++};st.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},setAlpha:function(t){return this._a=_(t),this._roundA=nt(100*this._a)/100,this},toHsv:function(){var t=y(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=y(this._r,this._g,this._b),e=nt(360*t.h),n=nt(100*t.s),i=nt(100*t.v);return 1==this._a?"hsv("+e+", "+n+"%, "+i+"%)":"hsva("+e+", "+n+"%, "+i+"%, "+this._roundA+")"},toHsl:function(){var t=v(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=v(this._r,this._g,this._b),e=nt(360*t.h),n=nt(100*t.s),i=nt(100*t.l);return 1==this._a?"hsl("+e+", "+n+"%, "+i+"%)":"hsla("+e+", "+n+"%, "+i+"%, "+this._roundA+")"},toHex:function(t){return x(this._r,this._g,this._b,t)},toHexString:function(t){return"#"+this.toHex(t)},toHex8:function(){return w(this._r,this._g,this._b,this._a)},toHex8String:function(){return"#"+this.toHex8()},toRgb:function(){return{r:nt(this._r),g:nt(this._g),b:nt(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+nt(this._r)+", "+nt(this._g)+", "+nt(this._b)+")":"rgba("+nt(this._r)+", "+nt(this._g)+", "+nt(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:nt(100*F(this._r,255))+"%",g:nt(100*F(this._g,255))+"%",b:nt(100*F(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+nt(100*F(this._r,255))+"%, "+nt(100*F(this._g,255))+"%, "+nt(100*F(this._b,255))+"%)":"rgba("+nt(100*F(this._r,255))+"%, "+nt(100*F(this._g,255))+"%, "+nt(100*F(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(lt[x(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var e="#"+w(this._r,this._g,this._b,this._a),n=e,i=this._gradientType?"GradientType = 1, ":"";if(t){n=st(t).toHex8String()}return"progid:DXImageTransform.Microsoft.gradient("+i+"startColorstr="+e+",endColorstr="+n+")"},toString:function(t){var e=!!t;t=t||this._format;var n=!1,i=this._a<1&&this._a>=0;return e||!i||"hex"!==t&&"hex6"!==t&&"hex3"!==t&&"name"!==t?("rgb"===t&&(n=this.toRgbString()),"prgb"===t&&(n=this.toPercentageRgbString()),"hex"!==t&&"hex6"!==t||(n=this.toHexString()),"hex3"===t&&(n=this.toHexString(!0)),"hex8"===t&&(n=this.toHex8String()),"name"===t&&(n=this.toName()),"hsl"===t&&(n=this.toHslString()),"hsv"===t&&(n=this.toHsvString()),n||this.toHexString()):"name"===t&&0===this._a?this.toName():this.toRgbString()},_applyModification:function(t,e){var n=t.apply(null,[this].concat([].slice.call(e)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(T,arguments)},brighten:function(){return this._applyModification(E,arguments)},darken:function(){return this._applyModification(M,arguments)},desaturate:function(){return this._applyModification(C,arguments)},saturate:function(){return this._applyModification(k,arguments)},greyscale:function(){return this._applyModification(S,arguments)},spin:function(){return this._applyModification(P,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(I,arguments)},complement:function(){return this._applyCombination(A,arguments)},monochromatic:function(){return this._applyCombination(D,arguments)},splitcomplement:function(){return this._applyCombination(N,arguments)},triad:function(){return this._applyCombination(O,arguments)},tetrad:function(){return this._applyCombination(L,arguments)}},st.fromRatio=function(t,n){if("object"==(void 0===t?"undefined":e(t))){var i={};for(var r in t)t.hasOwnProperty(r)&&(i[r]="a"===r?t[r]:j(t[r]));t=i}return st(t,n)},st.equals=function(t,e){return!(!t||!e)&&st(t).toRgbString()==st(e).toRgbString()},st.random=function(){return st.fromRatio({r:ot(),g:ot(),b:ot()})},st.mix=function(t,e,n){n=0===n?0:n||50;var i,r=st(t).toRgb(),o=st(e).toRgb(),s=n/100,a=2*s-1,l=o.a-r.a;i=a*l==-1?a:(a+l)/(1+a*l),i=(i+1)/2;var c=1-i,u={r:o.r*i+r.r*c,g:o.g*i+r.g*c,b:o.b*i+r.b*c,a:o.a*s+r.a*(1-s)};return st(u)},st.readability=function(t,e){var n=st(t),i=st(e),r=n.toRgb(),o=i.toRgb(),s=n.getBrightness(),a=i.getBrightness(),l=Math.max(r.r,o.r)-Math.min(r.r,o.r)+Math.max(r.g,o.g)-Math.min(r.g,o.g)+Math.max(r.b,o.b)-Math.min(r.b,o.b);return{brightness:Math.abs(s-a),color:l}},st.isReadable=function(t,e){var n=st.readability(t,e);return n.brightness>125&&n.color>500},st.mostReadable=function(t,e){for(var n=null,i=0,r=!1,o=0;o125&&s.color>500,l=s.brightness/125*3+s.color/500;(a&&!r||a&&r&&l>i||!a&&!r&&l>i)&&(r=a,i=l,n=st(e[o]))}return n};var at=st.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},lt=st.hexNames=function(t){var e={};for(var n in t)t.hasOwnProperty(n)&&(e[t[n]]=n);return e}(at),ct=function(){var t="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",e="[\\s|\\(]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")\\s*\\)?",n="[\\s|\\(]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")\\s*\\)?";return{rgb:new RegExp("rgb"+e),rgba:new RegExp("rgba"+n),hsl:new RegExp("hsl"+e),hsla:new RegExp("hsla"+n),hsv:new RegExp("hsv"+e),hsva:new RegExp("hsva"+n),hex3:/^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex8:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();window.tinycolor=st,t(function(){t.fn.spectrum.load&&t.fn.spectrum.processNativeColorInputs()})}(t.$)}()}).call(e,n(0))},function(t,e,n){"use strict";var i=n(0),r=n(126);t.exports=i.View.extend({initialize:function(t){this.config=t.config||{},this.stackModel=t.stackModel,this.preview=t.preview,this.pfx=this.config.stylePrefix||"",this.ppfx=this.config.pStylePrefix||"",this.propsConfig=t.propsConfig;var e=this.pfx,n=this.ppfx,i=this.collection;this.className=e+"layers "+n+"field",this.listenTo(i,"add",this.addTo),this.listenTo(i,"deselectAll",this.deselectAll),this.listenTo(i,"reset",this.render);var r=this.config.em||"",o=r?r.get("Utils"):"";this.sorter=o?new o.Sorter({container:this.el,ignoreViewChildren:1,containerSel:"."+e+"layers",itemSel:"."+e+"layer",pfx:this.config.pStylePrefix}):"",i.view=this,this.$el.data("model",i),this.$el.data("collection",i)},addTo:function(t){var e=this.collection.indexOf(t);this.addToCollection(t,null,e)},addToCollection:function(t,e,n){var i=e||null,o=this.stackModel,s=this.config,a=this.sorter,l=this.propsConfig;void 0!==this.preview&&t.set("preview",this.preview);var c=new r({model:t,config:s,sorter:a,stackModel:o,propsConfig:l}),u=c.render().el;if(i)i.appendChild(u);else if(void 0!==n){var h="before";this.$el.children().length==n&&(n--,h="after"),n<0?this.$el.append(u):this.$el.children().eq(n)[h](u)}else this.$el.append(u);return u},deselectAll:function(){this.$el.find("."+this.pfx+"layer").removeClass(this.pfx+"active")},render:function(){var t=document.createDocumentFragment();return this.$el.empty(),this.collection.each(function(e){this.addToCollection(e,t)},this),this.$el.append(t),this.$el.attr("class",this.className),this.sorter&&(this.sorter.plh=null),this}})},function(t,e,n){"use strict";(function(e){t.exports=e.View.extend({events:{click:"active","click [data-close-layer]":"remove","mousedown [data-move-layer]":"initSorter"},template:function(t){var e=this.pfx;return'\n
\n \n
\n
Layer '+t.get("index")+'
\n
\n \t
\n
\n
\n ⨯\n
\n
\n
\n '},initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.model;this.stackModel=t.stackModel||{},this.config=t.config||{},this.pfx=this.config.stylePrefix||"",this.sorter=t.sorter||null,this.propsConfig=t.propsConfig||{},this.customPreview=t.onPreview,this.listenTo(e,"destroy remove",this.remove),this.listenTo(e,"change:active",this.updateVisibility),this.listenTo(e.get("properties"),"change",this.updatePreview),e.get("preview")||this.$el.addClass(this.pfx+"no-preview"),e.view=this,e.set({droppable:0,draggable:1}),this.$el.data("model",e)},initSorter:function(t){this.sorter&&this.sorter.startSort(this.el)},remove:function(t){t&&t.stopPropagation&&t.stopPropagation();var n=this.model,i=n.collection,r=this.stackModel;e.View.prototype.remove.apply(this,arguments),i.contains(n)&&i.remove(n),r&&r.set&&(r.set({stackIndex:null},{silent:!0}),r.trigger("updateValue"))},onPreview:function(t){var e=t.split(" "),n=[];return this.model.get("properties").each(function(t,i){var r=e[i]||"";if(r&&"integer"==t.get("type")){var o=parseInt(r,10),s=r.replace(o,"");o=isNaN(o)?0:o,o=o>3?3:o,o=o<-3?-3:o,r=o+s}n.push(r)}),n.join(" ")},updatePreview:function(){var t=this.stackModel,e=this.customPreview,n=this.getPreviewEl(),i=this.model.getFullValue(),r=e?e(i):this.onPreview(i);r&&t&&n&&(n.style[t.get("property")]=r)},getPropertiesWrapper:function(){return this.propsWrapEl||(this.propsWrapEl=this.el.querySelector("[data-properties]")),this.propsWrapEl},getPreviewEl:function(){return this.previewEl||(this.previewEl=this.el.querySelector("[data-preview]")),this.previewEl},active:function(){var t=this.model,e=t.collection;e.active(e.indexOf(t))},updateVisibility:function(){var t=this.pfx,e=this.getPropertiesWrapper(),n=this.model.get("active");e.style.display=n?"":"none",this.$el[n?"addClass":"removeClass"](t+"active")},render:function(){var t=n(13),e=this.propsConfig,i=this.pfx+"layer",r=this.model,o=this.el,s=new t({collection:r.get("properties"),config:this.config,target:e.target,customValue:e.customValue,propTarget:e.propTarget,onChange:e.onChange}).render().el;return o.innerHTML=this.template(r),o.className=i,this.getPropertiesWrapper().appendChild(s),this.updateVisibility(),this.updatePreview(),this}})}).call(e,n(0))},function(t,e,n){"use strict";var i=Object.assign||function(t){for(var e=1;e\n \n
\n '},getSliderEl:function(){return this.slider||(this.slider=this.el.querySelector("input[type=range]")),this.slider},inputValueChanged:function(){var t=this.model,e=t.get("step");this.getInputEl().value=this.getSliderEl().value;var n=this.getInputValue()-e;t.set("value",n,{avoidStore:1}).set("value",n+e),this.elementUpdated()},inputValueChangedSoft:function(){this.getInputEl().value=this.getSliderEl().value,this.model.set("value",this.getInputValue(),{avoidStore:1}),this.elementUpdated()},setValue:function(t){this.getSliderEl().value=t,this.inputInst.setValue(t,{silent:1})},onRender:function(){i.prototype.onRender.apply(this,arguments),this.model.get("showInput")||(this.inputInst.el.style.display="none")}})},function(t,e,n){"use strict";n(0);t.exports=function(){return{build:function(t){var e=[];"string"==typeof t&&(t=[t]);for(var n=0,i=t.length;n0&&void 0!==arguments[0]?arguments[0]:{},n=t.get("SelectorManager"),r=n.add("hc-state"),o=i.get([r]);if(o){var s=i.getAll();s.remove(o),s.add(o)}else o=i.add([r]);o.set("important",1),o.setStyle(e),l.helper=o};if(r){var p=i.getIdRule(o,u);e=p||i.setIdRule(o,{},u)}if(a.length){var g=a.getStyleable(),v=i.get(g,c,d);return!v&&g.length&&(n.stop(),v=i.add(g,c,d),v.setStyle(e.getStyle()),e.setStyle({}),n.start()),v?(c&&f(v.getStyle()),l.model=v,void l.trigger("update")):(l.model=e,void l.trigger("update"))}if(c){var m=i.getIdRule(o,u);c&&f(m&&m.getStyle())}l.model=e,l.trigger("update")}},addToCollection:function(t,e){var n=e||null,i=new o({model:t,id:this.pfx+t.get("name").replace(" ","_").toLowerCase(),name:t.get("name"),properties:t.get("properties"),target:this.target,propTarget:this.propTarget,config:this.config}),r=i.render().el;return n?n.appendChild(r):this.$el.append(r),r},render:function(){var t=document.createDocumentFragment();return this.$el.empty(),this.collection.each(function(e){this.addToCollection(e,t)},this),this.$el.attr("id",this.pfx+"sectors"),this.$el.append(t),this}})}).call(e,n(0))},function(t,e,n){"use strict";(function(e){var i=n(0),r=n(13);t.exports=i.View.extend({template:e.template('\n
\n \n <%= label %>\n
'),events:{"click [data-sector-title]":"toggle"},initialize:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix||"",this.target=t.target||{},this.propTarget=t.propTarget||{},this.caretR="fa-caret-right",this.caretD="fa-caret-down";var e=this.model;this.listenTo(e,"change:open",this.updateOpen),this.listenTo(e,"updateVisibility",this.updateVisibility),this.listenTo(e,"destroy remove",this.remove)},updateVisibility:function(){var t;this.model.get("properties").each(function(e){e.get("visible")&&(t=1)}),this.el.style.display=t?"block":"none"},updateOpen:function(){this.model.get("open")?this.show():this.hide()},show:function(){this.$el.addClass(this.pfx+"open"),this.getPropertiesEl().style.display="",this.$caret.removeClass(this.caretR).addClass(this.caretD)},hide:function(){this.$el.removeClass(this.pfx+"open"),this.getPropertiesEl().style.display="none",this.$caret.removeClass(this.caretD).addClass(this.caretR)},getPropertiesEl:function(){return this.$el.find("."+this.pfx+"properties").get(0)},toggle:function(t){var e=this.model.get("open")?0:1;this.model.set("open",e)},render:function(){return this.$el.html(this.template({pfx:this.pfx,label:this.model.get("name")})),this.$caret=this.$el.find("#"+this.pfx+"caret"),this.renderProperties(),this.$el.attr("class",this.pfx+"sector no-select"),this.updateOpen(),this},renderProperties:function(){var t=this.model.get("properties");if(t){var e=new r({collection:t,target:this.target,propTarget:this.propTarget,config:this.config});this.$el.append(e.render().el)}}})}).call(e,n(1))},function(t,e,n){"use strict";t.exports=function(){var t={},e=n(133),i=n(134),r=n(137),o=n(45),s=void 0,a=void 0,l=void 0;return{name:"AssetManager",storageKey:"assets",getConfig:function(){return t},init:function(n){var c=this;t=n||{};for(var u in e)u in t||(t[u]=e[u]);var h=t.pStylePrefix,d=t.em;h&&(t.stylePrefix=h+t.stylePrefix),s=new i([]);var f={collection:new i([]),globalCollection:s,config:t};return l=new o(f),f.fu=l,a=new r(f),s.listenTo(s,"add",function(t){c.getAllVisible().add(t),d&&d.trigger("asset:add",t)}),s.listenTo(s,"remove",function(t){c.getAllVisible().remove(t),d&&d.trigger("asset:remove",t)}),this},add:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return void 0===e.at&&(e.at=0),s.add(t,e)},get:function(t){return s.where({src:t})[0]},getAll:function(){return s},getAllVisible:function(){return a.collection},remove:function(t){var e=this.get(t);return this.getAll().remove(e),this},store:function(e){var n={},i=JSON.stringify(this.getAll().toJSON());return n[this.storageKey]=i,!e&&t.stm&&t.stm.store(n),n},load:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.storageKey,n=t[e]||[];if("string"==typeof n)try{n=JSON.parse(t[e])}catch(t){}return n&&n.length&&this.getAll().reset(n),n},getContainer:function(){return a.el},getAssetsEl:function(){return a.el.querySelector("[data-el=assets]")},render:function(t){var e=t||this.getAll().models;return a.rendered||a.render(),a.collection.reset(e),this.getContainer()},addType:function(t,e){this.getAll().addType(t,e)},getType:function(t){return this.getAll().getType(t)},getTypes:function(){return this.getAll().getTypes()},AssetsView:function(){return a},FileUploader:function(){return l},onLoad:function(){this.getAll().reset(t.assets)},postRender:function(e){t.dropzone&&l.initDropzone(e)},setTarget:function(t){a.collection.target=t},onSelect:function(t){a.collection.onSelect=t},onClick:function(e){t.onClick=e},onDblClick:function(e){t.onDblClick=e}}}},function(t,e,n){"use strict";t.exports={assets:[],noAssets:"",stylePrefix:"am-",upload:0,uploadName:"files",headers:{},params:{},autoAdd:1,uploadText:"Drop files here or click to upload",addBtnText:"Add image",uploadFile:"",handleAdd:"",dropzone:0,openAssetsOnDrop:1,dropzoneContent:"",modalTitle:"Select Image",inputPlaceholder:"http://path/to/the/image.jpg"}},function(t,e,n){"use strict";var i=n(32),r=function(t){return t&&t.__esModule?t:{default:t}}(i);t.exports=n(0).Collection.extend(r.default).extend({types:[{id:"image",model:n(135),view:n(43),isType:function(t){return"string"==typeof t?{type:"image",src:t}:t}}]})},function(t,e,n){"use strict";var i=Object.assign||function(t){for(var e=1;e\n
\n
\n
\n \n
\n \n
\n
\n \n
\n
\n
\n
\n '},initialize:function(t){this.options=t,this.config=t.config,this.pfx=this.config.stylePrefix||"",this.ppfx=this.config.pStylePrefix||"";var e=this.collection;this.listenTo(e,"reset",this.renderAssets),this.listenTo(e,"add",this.addToAsset),this.listenTo(e,"remove",this.removedAsset),this.listenTo(e,"deselectAll",this.deselectAll)},handleSubmit:function(t){t.preventDefault();var e=this.getAddInput(),n=e.value.trim(),i=this.config.handleAdd;n&&(e.value="",this.getAssetsEl().scrollTop=0,i?i(n):this.options.globalCollection.add(n,{at:0}))},getAssetsEl:function(){return this.el.querySelector("."+this.pfx+"assets")},getAddInput:function(){return this.inputUrl&&this.inputUrl.value||(this.inputUrl=this.el.querySelector("."+this.pfx+"add-asset input")),this.inputUrl},removedAsset:function(t){this.collection.length||this.toggleNoAssets()},addToAsset:function(t){1==this.collection.length&&this.toggleNoAssets(1),this.addAsset(t)},addAsset:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=e,i=this.collection,r=this.config,o=new t.typeView({model:t,collection:i,config:r}).render().el;if(n)n.appendChild(o);else{var s=this.getAssetsEl();s&&s.insertBefore(o,s.firstChild)}return o},toggleNoAssets:function(t){var e=this.$el.find("."+this.pfx+"assets");if(t)e.empty();else{var n=this.config.noAssets;n&&e.append(n)}},deselectAll:function(){var t=this.pfx;this.$el.find("."+t+"highlight").removeClass(t+"highlight")},renderAssets:function(){var t=this,e=document.createDocumentFragment(),n=this.$el.find("."+this.pfx+"assets");n.empty(),this.toggleNoAssets(this.collection.length),this.collection.each(function(n){return t.addAsset(n,e)}),n.append(e)},render:function(){var t=this.options.fu.render().el;return this.$el.empty(),this.$el.append(t).append(this.template(this)),this.el.className=this.ppfx+"asset-manager",this.renderAssets(),this.rendered=1,this}})}).call(e,n(0))},function(t,e,n){"use strict";var i=Object.assign||function(t){for(var e=1;e=0&&(n.css=o.em.getCss()),i.indexOf("styles")>=0&&(n.styles=JSON.stringify(t)),e||o.stm.store(n),n}},add:function(e,n,i,r){var s=n||"",l=i||"",c=r||{},u=this.get(e,s,l,c);return u||(c.state=s,c.mediaText=l,c.selectors="",u=new a(c,o),u.get("selectors").add(e),t.add(u),u)},get:function(e,n,i,r){var o=null;return t.each(function(t){o||t.compare(e,n,i,r)&&(o=t)}),o},getAll:function(){return t},clear:function(){return this.getAll().reset(),this},addCollection:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=[],r=t instanceof Array?t:[t],s=0,a=r.length;s1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=n.state||"",o=n.mediaText||r.getCurrentMedia(),s=r.get("SelectorManager"),a=s.add({name:t,type:h.TYPE_ID}),l=this.add(a,i,o);return l.setStyle(e,n),l},getIdRule:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.state||"",i=e.mediaText||r.getCurrentMedia(),o=r.get("SelectorManager").get(t,h.TYPE_ID);return o&&this.get(o,n,i)},setClassRule:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=n.state||"",o=n.mediaText||r.getCurrentMedia(),s=r.get("SelectorManager"),a=s.add({name:t,type:h.TYPE_CLASS}),l=this.add(a,i,o);return l.setStyle(e,n),l},getClassRule:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.state||"",i=e.mediaText||r.getCurrentMedia(),o=r.get("SelectorManager").get(t,h.TYPE_CLASS);return o&&this.get(o,n,i)},render:function(){return e.render().el}}}},function(t,e,n){"use strict";t.exports={stylePrefix:"css-",staticRules:"",rules:[]}},function(t,e,n){"use strict";var i=n(0),r=n(46);t.exports=i.Collection.extend({initialize:function(t,e){e&&e.sm&&(this.editor=e.sm),this.model=function(t,n){return!n.sm&&e&&e.sm&&(n.sm=e.sm),new r(t,n)}},add:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"string"==typeof t&&(t=this.editor.get("Parser").parseCss(t)),e.em=this.editor,i.Collection.prototype.add.apply(this,[t,e])}})},function(t,e,n){"use strict";var i=n(0),r=n(142);t.exports=i.View.extend({initialize:function(t){var e=t.config||{};this.config=e,this.em=e.em,this.pfx=e.stylePrefix||"",this.className=this.pfx+"rules";var n=this.collection;this.listenTo(n,"add",this.addTo),this.listenTo(n,"reset",this.render)},addTo:function(t){this.addToCollection(t)},addToCollection:function(t,e){var n=e||null,i=r,o=new i({model:t,config:this.config}),s=o.render().el;return n?n.appendChild(s):this.$el.append(s),s},render:function(){var t=this,e=this.$el,n=document.createDocumentFragment();return e.empty(),this.collection.each(function(e){return t.addToCollection(e,n)}),e.append(n),e.attr("class",this.className),this}})},function(t,e,n){"use strict";t.exports=n(0).View.extend({tagName:"style",initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.config=t.config||{};var e=this.model;this.listenTo(e,"change:style change:state change:mediaText",this.render),this.listenTo(e,"destroy remove",this.remove),this.listenTo(e.get("selectors"),"change",this.render)},render:function(){var t=this.model,e=t.get("important");return this.el.innerHTML=this.model.toCSS({important:e}),this}})},function(t,e,n){"use strict";var i=n(1);t.exports=function(){var t={},e=n(144),r=n(145),o=void 0;return{TraitsView:r,name:"TraitManager",getConfig:function(){return t},init:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t=n,(0,i.defaults)(t,e);var s=t.pStylePrefix;return s&&(t.stylePrefix=""+s+t.stylePrefix),o=new r({collection:[],editor:t.em,config:t}),this},getTraitsViewer:function(){return o},addType:function(t,e){var n=o.itemView;o.itemsView[t]=n.extend(e)},getType:function(t){return o.itemsView[t]}}}},function(t,e,n){"use strict";t.exports={stylePrefix:"trt-",labelContainer:"Component settings",labelPlhText:"eg. Text here",labelPlhHref:"eg. https://google.com",optionsTarget:[{value:"",name:"This window"},{value:"_blank",name:"New window"}]}},function(t,e,n){"use strict";var i=n(48),r=n(8),o=n(146),s=n(147),a=n(148),l=n(149);t.exports=i.extend({itemView:r,itemsView:{text:r,number:a,select:o,checkbox:s,color:l},initialize:function(t){this.config=t.config||{},this.em=t.editor,this.pfx=this.config.stylePrefix||"",this.className=this.pfx+"traits",this.listenTo(this.em,"change:selectedComponent",this.updatedCollection),this.updatedCollection()},updatedCollection:function(){this.el.className=this.className;var t=this.em.get("selectedComponent");t&&(this.collection=t.get("traits"),this.render())}})},function(t,e,n){"use strict";(function(e,i){var r=n(8),o=e.$;t.exports=r.extend({initialize:function(t){r.prototype.initialize.apply(this,arguments);var e=this.ppfx;this.tmpl='
'},getInputEl:function(){if(!this.$input){var t=this.model,e=t.get("options")||[],n="",this.input=n,this.$input=o(this.input);var r=this.target,s=t.get("name"),a=t.get("value");if(t.get("changeProp"))a=a||r.get(s);else{a=r.get("attributes")[s]}a&&this.$input.val(a)}return this.$input.get(0)}})}).call(e,n(0),n(1))},function(t,e,n){"use strict";var i=n(8);t.exports=i.extend({initialize:function(t){i.prototype.initialize.apply(this,arguments);var e=this.ppfx+"chk-icon";this.tmpl='
'},onChange:function(){this.model.set("value",this.getInputEl().checked)},getInputEl:function(){var t;this.$input||(t=1);for(var e=arguments.length,n=Array(e),r=0;r2&&void 0!==arguments[2]?arguments[2]:{},r=t.components(),s=o.get("UndoManager"),a=o.handleUpdates.bind(o),l=this.handleChanges.bind(this),c=this.handleRemoves.bind(this);s&&s.add(t),s&&r&&s.add(r);[[t,"change:style change:content change:attributes change:src",a],[r,"add",l],[r,"remove",c],[t.get("classes"),"add remove",a]].forEach(function(t){o.stopListening(t[0],t[1],t[2]),o.listenTo(t[0],t[1],t[2])}),!i.avoidStore&&a("","",i),r.each(function(t){return n.handleChanges(t,e,i)})},handleRemoves:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!n.avoidStore&&o.handleUpdates(t,e,n)},load:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e="";if(!t&&r.stm&&(t=r.em.getCacheLoad()),t.components)try{e=JSON.parse(t.components)}catch(t){}else t.html&&(e=t.html);var n=e&&e.constructor===Object;return(e&&e.length||n)&&(this.clear(),this.getComponents().reset(),n?this.getWrapper().set(e).initComponents().initClasses().loadTraits():this.getComponents().add(e)),e},store:function(t){if(r.stm){var e={},n=this.storageKey();if(n.indexOf("html")>=0&&(e.html=r.em.getHtml()),n.indexOf("components")>=0){var i=r.storeWrapper?this.getWrapper():this.getComponents();e.components=JSON.stringify(i)}return t||r.stm.store(e),e}},getComponent:function(){return t},getWrapper:function(){return this.getComponent()},getComponents:function(){return this.getWrapper().get("components")},addComponent:function(t){return this.getComponents().add(t)},render:function(){return e.render().el},clear:function(){for(var t=this.getComponents(),e=0,n=t.length;e1&&void 0!==arguments[1]?arguments[1]:{};this.em=e.em||""},setTarget:function(t){this.target=t},add:function(t,e){var n=this.em;if((0,i.isString)(t)||(0,i.isArray)(t)){var o=n&&n.get&&n.get("TraitManager"),a=o&&o.getConfig(),l=s(a);(0,i.isString)(t)&&(t=[t]);for(var c=0,u=t.length;c0&&void 0!==arguments[0]?arguments[0]:{};return{build:function(e){var n=[];"string"==typeof e&&(e=[e]);for(var i=0;is.top+s.height?s.top+s.height:g;var v={top:g,left:p,elementTop:s.top,elementLeft:s.left,elementWidth:s.width,elementHeight:s.height,targetWidth:t.offsetWidth,targetHeight:t.offsetHeight,canvasTop:o.top,canvasLeft:o.left};return h&&r.em&&r.em.trigger(h,v),v},getMouseRelativePos:function(t,e){var n=e||{},i=0,r=0,o=n.subWinOffset,s=t.target.ownerDocument,a=s.defaultView||s.parentWindow,l=a.frameElement,c=o?a.pageYOffset:0,u=o?a.pageXOffset:0;if(l){var h=l.getBoundingClientRect();i=h.top||0,r=h.left||0}return{y:t.clientY+i-c,x:t.clientX+r-u}},getMouseRelativeCanvas:function(t,e){var n=this.getFrameEl(),i=this.getBody(),r=n.offsetTop||0,o=n.offsetLeft||0,s=i.scrollTop||0,a=i.scrollLeft||0;return{y:t.clientY+r+s,x:t.clientX+o+a}},isInputFocused:function(){return"BODY"!==this.getFrameEl().contentDocument.activeElement.tagName},startAutoscroll:function(){var t=this;this.dragging=1;var n=this.getScrollListeners();e=a.getFrameOffset(1),setTimeout(function(){(0,i.on)(n,"mousemove",t.autoscroll),(0,i.on)(n,"mouseup",t.stopAutoscroll)},0)},autoscroll:function(t){if(t.preventDefault(),this.dragging){var n=this.getFrameEl().contentWindow,i=n.document.body.scrollTop,r=i,o=t.clientY,s=e.height-50;o<50&&(r-=50-o),o>s&&(r+=o-s),n.scrollTo(0,r)}},stopAutoscroll:function(){this.dragging=0;var t=this.getScrollListeners();(0,i.off)(t,"mousemove",this.autoscroll),(0,i.off)(t,"mouseup",this.stopAutoscroll)},getScrollListeners:function(){return[this.getFrameEl().contentWindow,this.getElement()]},getFrameWrapperEl:function(){return a.frame.getWrapper()}}}},function(t,e,n){"use strict";t.exports={stylePrefix:"cv-",rulers:!1,scripts:[],styles:[],customBadgeLabel:""}},function(t,e,n){"use strict";var i=n(0),r=n(181);t.exports=i.Model.extend({defaults:{frame:"",wrapper:"",rulers:!1},initialize:function(t){var e=this.conf||{};this.set("frame",new r(e.frame))}})},function(t,e,n){"use strict";var i=n(0);t.exports=i.Model.extend({defaults:{wrapper:"",width:"",height:"",attributes:{}}})},function(t,e,n){"use strict";(function(e,i){var r=n(183),o=e.$;t.exports=e.View.extend({initialize:function(t){i.bindAll(this,"renderBody","onFrameScroll","clearOff"),window.onscroll=this.clearOff,this.config=t.config||{},this.em=this.config.em||{},this.ppfx=this.config.pStylePrefix||"",this.className=this.config.stylePrefix+"canvas",this.listenTo(this.em,"change:canvasOffset",this.clearOff),this.frame=new r({model:this.model.get("frame"),config:this.config})},isElInViewport:function(t){var e=t.getBoundingClientRect(),n=this.getFrameOffset(1),i=e.top,r=e.left;return i>=0&&r>=0&&i<=n.height&&r<=n.width},onFrameScroll:function(){var t=this.frame.el.contentDocument.body;this.toolsEl.style.top="-"+t.scrollTop+"px",this.toolsEl.style.left="-"+t.scrollLeft+"px",this.em.trigger("canvasScroll")},renderScripts:function(){var t=this.frame,e=this;t.el.onload=function(){function n(i){if(i.length>0){var r=document.createElement("script");r.type="text/javascript",r.src=i.shift(),r.onerror=r.onload=n.bind(null,i),t.el.contentDocument.head.appendChild(r)}else e.renderBody()}var i=e.config.scripts.slice(0);n(i)}},renderBody:function(){var t=this.model.get("frame").get("wrapper"),e=this.config.em;if(t){var n=this.ppfx,i=o(this.frame.el.contentWindow.document.body),r=e.get("CssComposer"),s=e.get("Config"),a=this.config,l=s.protectedCss,c="";a.styles.forEach(function(t){c+=''});var u="\n \n * {\n box-sizing: border-box;\n }\n html, body, #wrapper {\n min-height: 100%;\n }\n body {\n margin: 0;\n height: 100%;\n background-color: #fff\n }\n #wrapper {\n overflow: auto\n }\n \n\n ."+n+"dashed *[data-highlightable] {\n outline: 1px dashed rgba(170,170,170,0.7);\n outline-offset: -3px\n }\n\n ."+n+"comp-selected {\n outline: 3px solid #3b97e3 !important;\n }\n\n ."+n+"comp-selected-parent {\n outline: 2px solid #ffca6f !important\n }\n\n ."+n+"no-select {\n user-select: none;\n -webkit-user-select:none;\n -moz-user-select: none;\n }\n\n ."+n+"freezed {\n opacity: 0.5;\n pointer-events: none;\n }\n\n ."+n+"no-pointer {\n pointer-events: none;\n }\n\n ."+n+"plh-image {\n background: #f5f5f5;\n border: none;\n height: 50px;\n width: 50px;\n display: block;\n outline: 3px solid #ffca6f;\n cursor: pointer;\n outline-offset: -2px\n }\n\n ."+n+"grabbing {\n cursor: grabbing;\n cursor: -webkit-grabbing;\n }\n\n * ::-webkit-scrollbar-track {\n background: rgba(0, 0, 0, 0.1)\n }\n\n * ::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.2)\n }\n\n * ::-webkit-scrollbar {\n width: 10px\n }\n\n "+(s.canvasCss||"")+"\n "+(l||"")+"\n ";c&&i.append(c),i.append(""),i.append(t.render()).append(r.render()),i.append(this.getJsContainer()),e.trigger("loaded"),this.frame.el.contentWindow.onscroll=this.onFrameScroll,this.frame.udpateOffset();var h=document,d=this.frame.el.contentDocument,f=function(t){var e=new KeyboardEvent(t.type,t);return e.keyCodeVal=t.keyCode,["keyCode","which"].forEach(function(t){Object.defineProperty(e,t,{get:function(){return this.keyCodeVal}})}),e};d.addEventListener("keydown",function(t){h.dispatchEvent(f(t))}),d.addEventListener("keyup",function(t){h.dispatchEvent(f(t))})}},offset:function(t){var e=t.getBoundingClientRect(),n=t.ownerDocument.body;return{top:e.top+n.scrollTop,left:e.left+n.scrollLeft,width:e.width,height:e.height}},clearOff:function(){this.frmOff=null,this.cvsOff=null},getFrameOffset:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.frmOff&&!t||(this.frmOff=this.offset(this.frame.el)),this.frmOff},getCanvasOffset:function(){return this.cvsOff||(this.cvsOff=this.offset(this.el)),this.cvsOff},getElementPos:function(t,e){var n=e||{},i=this.getFrameOffset(),r=this.getCanvasOffset(),o=this.offset(t),s=n.avoidFrameOffset?0:i.top,a=n.avoidFrameOffset?0:i.left;return{top:o.top+s-r.top,left:o.left+a-r.left,height:t.offsetHeight||t.clientHeight,width:t.offsetWidth||t.clientWidth}},getPosition:function(){var t=this.frame.el.contentDocument.body,e=this.getFrameOffset(),n=this.getCanvasOffset();return{top:e.top+t.scrollTop-n.top,left:e.left+t.scrollLeft-n.left}},updateScript:function(t){t.scriptContainer||(t.scriptContainer=o("
"),this.getJsContainer().append(t.scriptContainer.get(0)));var e=t.model,n=e.getId();t.el.id=n,t.scriptContainer.html("");var i=document.createElement("script");i.innerText="\n setTimeout(function() {\n var item = document.getElementById('"+n+"');\n if (!item) return;\n (function(){\n "+e.getScriptString()+";\n }.bind(item))()\n }, 1);",t.scriptContainer.get(0).appendChild(i)},getJsContainer:function(){return this.jsContainer||(this.jsContainer=o('
').get(0)),this.jsContainer},render:function(){if(this.wrapper=this.model.get("wrapper"),this.wrapper&&"function"==typeof this.wrapper.render){this.model.get("frame").set("wrapper",this.wrapper),this.$el.append(this.frame.render().el);var t=this.frame;0===this.config.scripts.length?t.el.onload=this.renderBody:this.renderScripts()}var e=this.ppfx;this.$el.append('\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n ');var n=this.el,i=n.querySelector("#"+e+"tools");return this.hlEl=n.querySelector("."+e+"highlighter"),this.badgeEl=n.querySelector("."+e+"badge"),this.placerEl=n.querySelector("."+e+"placeholder"),this.ghostEl=n.querySelector("."+e+"ghost"),this.toolbarEl=n.querySelector("."+e+"toolbar"),this.resizerEl=n.querySelector("."+e+"resizer"),this.offsetEl=n.querySelector("."+e+"offset-v"),this.fixedOffsetEl=n.querySelector("."+e+"offset-fixed-v"),this.toolsEl=i,this.el.className=this.className,this}})}).call(e,n(0),n(1))},function(t,e,n){"use strict";var i=n(1),r="transitionend oTransitionEnd transitionend webkitTransitionEnd";t.exports=n(0).View.extend({tagName:"iframe",attributes:{src:"about:blank",allowfullscreen:"allowfullscreen"},initialize:function(t){(0,i.bindAll)(this,"udpateOffset"),this.config=t.config||{},this.ppfx=this.config.pStylePrefix||"",this.em=this.config.em,this.listenTo(this.em,"change:device",this.updateDim)},updateDim:function(t){var e=this.em,n=e.getDeviceModel(),i=this.el.style;i.width=n?n.get("width"):"",i.height=n?n.get("height"):"",this.udpateOffset(),e.stopDefault({preserveSelected:1}),this.$el.on(r,this.udpateOffset)},udpateOffset:function(){var t=this.em,e=t.get("Canvas").getOffset();t.set("canvasOffset",e),t.runDefault({preserveSelected:1}),this.$el.off(r,this.udpateOffset)},getBody:function(){this.$el.contents().find("body")},getWrapper:function(){return this.$el.contents().find("body > div")},render:function(){return this.$el.attr({class:this.ppfx+"frame"}),this}})},function(t,e,n){"use strict";var i=n(1);t.exports=function(){var t=void 0,e={},r={},o={},s=n(185),a=n(186),l=function(t,e){return(0,i.isFunction)(e)&&(e={run:e}),delete e.initialize,r[t]=a.extend(e),this};return{name:"Commands",init:function(i){e=i||{};for(var r in s)r in e||(e[r]=s[r]);t=e.em;var a=e.pStylePrefix;a&&(e.stylePrefix=a+e.stylePrefix);for(var l in e.defaults){var c=e.defaults[l];c.id&&this.add(c.id,c)}var u=n(187);return o["select-comp"]=n(21),o["create-comp"]=n(22),o["delete-comp"]=n(192),o["image-comp"]=n(193),o["move-comp"]=n(194),o["text-comp"]=n(195),o["insert-custom"]=n(54),o["export-template"]=u,o["sw-visibility"]=n(196),o["open-layers"]=n(197),o["open-sm"]=n(200),o["open-tm"]=n(201),o["open-blocks"]=n(202),o["open-assets"]=n(203),o["show-offset"]=n(204),o["select-parent"]=n(205),o.fullscreen=n(206),o.preview=n(207),o.resize=n(208),o.drag=n(209),o["tlb-delete"]={run:function(t){var e=t.getSelected();if(!e||!e.get("removable"))return void console.warn("The element is not removable");t.select(null),e.destroy()}},o["tlb-clone"]={run:function(t){var e=t.getSelected();if(!e||!e.get("copyable"))return void console.warn("The element is not clonable");var n=e.collection,i=n.indexOf(e);n.add(e.clone(),{at:i+1}),e.emitUpdate()}},o["tlb-move"]={run:function(t,e,n){var i,r=t.getSelected();if(!r||!r.get("draggable"))return void console.warn("The element is not draggable");var o=function(t,e){console.log("start mouse pos ",e.start),console.log("el rect ",e.elRect);var n=e.el;n.style.position="absolute",n.style.margin=0},s=function(t,e){l.runDefault(),l.set("selectedComponent",r),r.emitUpdate(),i&&i.blur()},a=function(t,e){console.log("Delta ",e.delta),console.log("Current ",e.current)};t.Canvas.getToolbarEl().style.display="none";var l=t.getModel();if(l.stopDefault(),l.get("designerMode"))i=editor.runCommand("drag",{el:r.view.el,options:{event:n&&n.event,onStart:o,onDrag:a,onEnd:s}});else{var c=t.Commands.get("move-comp");c.onEndMoveFromModel=s,c.initSorterFromModel(r)}r.set("status","selected")}},o["core:undo"]=function(t){return t.UndoManager.undo()},o["core:redo"]=function(t){return t.UndoManager.redo()},o["core:canvas-clear"]=function(t){t.DomComponents.clear(),t.CssComposer.clear()},o["core:copy"]=function(t){var e=t.getModel(),n=t.getSelected();n&&n.get("copyable")&&!t.Canvas.isInputFocused()&&e.set("clipboard",n)},o["core:paste"]=function(t){var e=t.getModel(),n=e.get("clipboard"),i=t.getSelected(),r=i&&i.collection;if(r&&n&&!t.Canvas.isInputFocused()){var o=r.indexOf(i)+1;r.add(n.clone(),{at:o})}},e.em&&(e.model=e.em.get("Canvas")),this.loadDefaultCommands(),this},add:l,get:function(t){var n=r[t];return"function"==typeof n&&(n=new n(e),r[t]=n),n},has:function(t){return!!r[t]},loadDefaultCommands:function(){for(var t in o)this.add(t,o[t]);return this}}}},function(t,e,n){"use strict";t.exports={ESCAPE_KEY:27,stylePrefix:"com-",defaults:[],em:null,firstCentered:!0,newFixedH:!1,minComponentH:50,minComponentW:50}},function(t,e,n){"use strict";(function(e){var n=e.$;t.exports=e.View.extend({initialize:function(t){this.config=t||{},this.editorModel=this.em=this.config.em||{},this.pfx=this.config.stylePrefix,this.ppfx=this.config.pStylePrefix,this.hoverClass=this.pfx+"hover",this.badgeClass=this.pfx+"badge",this.plhClass=this.pfx+"placeholder",this.freezClass=this.ppfx+"freezed",this.canvas=this.em.get&&this.em.get("Canvas"),this.em.get&&this.setElement(this.getCanvas()),this.canvas&&(this.$canvas=this.$el,this.$wrapper=n(this.getCanvasWrapper()),this.frameEl=this.canvas.getFrameEl(),this.canvasTool=this.getCanvasTools(),this.bodyEl=this.getCanvasBody()),this.init(this.config)},onFrameScroll:function(t){},getCanvas:function(){return this.canvas.getElement()},getCanvasBody:function(){return this.canvas.getBody()},getCanvasWrapper:function(){return this.canvas.getWrapperEl()},getCanvasTools:function(){return this.canvas.getToolsEl()},offset:function(t){var e=t.getBoundingClientRect();return{top:e.top+t.ownerDocument.body.scrollTop,left:e.left+t.ownerDocument.body.scrollLeft}},init:function(t){},run:function(t,e){},stop:function(t,e){}})}).call(e,n(0))},function(t,e,n){"use strict";(function(e){var n=e.$;t.exports={run:function(t,e){arguments.length>2&&void 0!==arguments[2]&&arguments[2];e&&e.set&&e.set("active",0);var i=t.getConfig(),r=t.Modal,o=i.stylePrefix;if(this.cm=t.CodeManager||null,!this.$editors){var s=this.buildEditor("htmlmixed","hopscotch","HTML"),a=this.buildEditor("css","hopscotch","CSS");this.htmlEditor=s.el,this.cssEditor=a.el;var l=n('
');l.append(s.$el).append(a.$el),this.$editors=l}r.setTitle(i.textViewCode),r.setContent(this.$editors),r.open(),this.htmlEditor.setContent(t.getHtml()),this.cssEditor.setContent(t.getCss())},stop:function(t){var e=t.Modal;e&&e.close()},buildEditor:function(t,e,n){var i=document.createElement("textarea");!this.codeMirror&&(this.codeMirror=this.cm.getViewer("CodeMirror"));var r=this.codeMirror.clone().set({label:n,codeName:t,theme:e,input:i}),o=new this.cm.EditorView({model:r,config:this.cm.getConfig()}).render().$el;return r.init(i),{el:r,$el:o}}}}).call(e,n(0))},function(t,e,n){"use strict";var i=(n(0),n(48)),r=n(189);t.exports=i.extend({itemView:r,initialize:function(t){this.config={editor:t.editor||""},this.listenTo(this.collection,"reset",this.render)}})},function(t,e,n){"use strict";var i=n(0);t.exports=i.View.extend({events:{mousedown:"handleClick"},attributes:function(){return this.model.get("attributes")},initialize:function(t){this.editor=t.config.editor},handleClick:function(t){t.preventDefault(),t.stopPropagation();var e={event:t},n=this.model.get("command"),i=this.editor;"function"==typeof n&&n(i,null,e),"string"==typeof n&&i.runCommand(n,e)},render:function(){var t=this.editor.getConfig();return this.el.className+=" "+t.stylePrefix+"toolbar-item",this}})},function(t,e,n){"use strict";var i=n(0),r=n(191);t.exports=i.Collection.extend({model:r})},function(t,e,n){"use strict";var i=n(0);t.exports=i.Model.extend({defaults:{command:"",attributes:{}}})},function(t,e,n){"use strict";(function(e,i){var r=n(21),o=e.$;t.exports=i.extend({},r,{init:function(t){i.bindAll(this,"startDelete","stopDelete","onDelete"),this.hoverClass=this.pfx+"hover-delete",this.badgeClass=this.pfx+"badge-red"},enable:function(){this.$el.find("*").mouseover(this.startDelete).mouseout(this.stopDelete).click(this.onDelete)},startDelete:function(t){t.stopPropagation();var e=o(t.target);e.data("model").get("removable")&&(e.addClass(this.hoverClass),this.attachBadge(e.get(0)))},stopDelete:function(t){t.stopPropagation(),o(t.target).removeClass(this.hoverClass),this.badge&&this.badge.css({left:-1e3,top:-1e3})},onDelete:function(t){t.stopPropagation();var e=o(t.target);e.data("model").get("removable")&&(e.data("model").destroy(),this.removeBadge(),this.clean())},updateBadgeLabel:function(t){this.badge.html("Remove "+t.getName())}})}).call(e,n(0),n(1))},function(t,e,n){"use strict";(function(e){var i=(n(0),n(54));t.exports=e.extend({},i,{beforeInsert:function(t){t.type="image",t.style={},t.attributes={},t.attributes.onmousedown="return false",this.config.firstCentered&&this.getCanvasWrapper()==this.sorter.target&&(t.style.margin="0 auto")},afterInsert:function(t){t.trigger("dblclick"),this.sender&&this.sender.set("active",!1)}})}).call(e,n(1))},function(t,e,n){"use strict";(function(e,i){var r=n(2),o=n(21),s=n(53),a=e.$;t.exports=i.extend({},s,o,{init:function(t){o.init.apply(this,arguments),i.bindAll(this,"initSorter","rollback","onEndMove"),this.opt=t,this.hoverClass=this.ppfx+"highlighter-warning",this.badgeClass=this.ppfx+"badge-warning",this.noSelClass=this.ppfx+"no-select"},enable:function(){for(var t=arguments.length,e=Array(t),n=0;n
');this.panel.set("appendContent",c).trigger("change:appendContent"),o.layers.sortContainer=c.get(0);var u=(new i).init(n,o.layers);this.$layers=u.render(),c.append(this.$layers),this.toAppend=c}this.toAppend.show()},stop:function(){this.toAppend&&this.toAppend.hide()}}}).call(e,n(0))},function(t,e,n){"use strict";t.exports=function(){var t=void 0,e={},i=n(199),r=n(55),o=n(56);return{init:function(n,s){e=s||e;var a=e.em;for(var l in i)l in e||(e[l]=i[l]);var c=o,u=s.opened||{},h={level:0,config:e,opened:u};return e.showWrapper&&n.parent?(c=r,h.model=n.parent):h.collection=n,t=new c(h),a&&a.on("change:selectedComponent",this.componentChanged),this.componentChanged(),this},componentChanged:function(t,n){if(!(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).fromLayers){var i=e.em,r=i.get("opened"),o=i.get("selectedComponent"),s=o&&o.collection?o.collection.parent:null;for(var a in r)r[a].set("open",0);for(;s;)s.set("open",1),r[s.cid]=s,s=s.collection?s.collection.parent:null}},render:function(){return t.render().$el}}}},function(t,e,n){"use strict";t.exports={stylePrefix:"nv-",sortable:1,hidable:1,hideTextnode:1,showWrapper:1}},function(t,e,n){"use strict";var i=(n(31),n(0)),r=i.$;t.exports={run:function(t,e){if(this.sender=e,!this.$cn){var n=t.getConfig(),i=t.Panels;this.$cn=r("
"),this.$cn2=r("
"),this.$cn.append(this.$cn2);var o=t.DeviceManager;if(o&&n.showDevices){i.addPanel({id:"devices-c"}).set("appendContent",o.render()).trigger("change:appendContent")}var s=t.SelectorManager;s&&this.$cn2.append(s.render([])),this.$cn2.append(t.StyleManager.render());var a=t.StyleManager.getConfig(),l=a.stylePrefix;this.$header=r('
'+a.textNoElement+"
"),this.$cn.append(this.$header),i.getPanel("views-container")?this.panel=i.getPanel("views-container"):this.panel=i.addPanel({id:"views-container"}),this.panel.set("appendContent",this.$cn).trigger("change:appendContent"),this.target=t.editor,this.listenTo(this.target,"change:selectedComponent",this.toggleSm)}this.toggleSm()},toggleSm:function(){var t=this.sender;t&&t.get&&!t.get("active")||(this.target.get("selectedComponent")?(this.$cn2.show(),this.$header.hide()):(this.$cn2.hide(),this.$header.show()))},stop:function(){this.$cn2&&this.$cn2.hide(),this.$header&&this.$header.hide()}}},function(t,e,n){"use strict";(function(e){var n=e.$;t.exports={run:function(t,e){var i,r=t.Config,o=r.stylePrefix,s=t.TraitManager;if(!this.obj){var a=s.getTraitsViewer(),l=s.getConfig();this.obj=n("
").append('
'+l.labelContainer+"
").get(0),this.obj.appendChild(a.render().el);var c=t.Panels;i=c.getPanel("views-container")?c.getPanel("views-container"):c.addPanel({id:"views-container"}),i.set("appendContent",this.obj).trigger("change:appendContent")}this.obj.style.display="block"},stop:function(){this.obj&&(this.obj.style.display="none")}}}).call(e,n(0))},function(t,e,n){"use strict";t.exports={run:function(t,e){var n=t.BlockManager,i=t.Panels;if(!this.blocks){n.render();var r="views-container",o=document.createElement("div"),s=i.getPanel(r)||i.addPanel({id:r});o.appendChild(n.getContainer()),s.set("appendContent",o).trigger("change:appendContent"),this.blocks=o}this.blocks.style.display="block"},stop:function(){var t=this.blocks;t&&(t.style.display="none")}}},function(t,e,n){"use strict";t.exports={run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=t.Modal,r=t.AssetManager,o=r.getConfig(),s=n.modalTitle||o.modalTitle||"";r.setTarget(n.target),r.onClick(n.onClick),r.onDblClick(n.onDblClick),r.onSelect(n.onSelect),this.rendered||(r.render(r.getAll().filter(function(t){return"image"==t.get("type")})),this.rendered=1),i.setTitle(s),i.setContent(r.getContainer()),i.open()}}},function(t,e,n){"use strict";(function(e){var n=e.$;t.exports={getOffsetMethod:function(t){return"get"+(t||"")+"OffsetViewerEl"},run:function(t,e,i){var r=i||{},o=r.state||"",s=t.getConfig();if(s.showOffsets&&(s.showOffsetsSelected||"Fixed"!=o)){var a=t.Canvas,l=r.el||"",c=r.elPos||a.getElementPos(l),u=window.getComputedStyle(l),h=this.ppfx,d=o+"State",f=this.getOffsetMethod(o),p=a[f]();p.style.display="block";var g=this["marginT"+o],v=this["marginB"+o],m=this["marginL"+o],y=this["marginR"+o],b=this["padT"+o],x=this["padB"+o],w=this["padL"+o],C=this["padR"+o];if(!this[d]){var k=o.toLowerCase(),S=k+"margin-v",T=k+"padding-v",E=n('
').get(0),M=n('
').get(0),P=h+S+"-el",A=h+T+"-el",O=P+" "+(h+S),L=A+" "+(h+T);g=n('
').get(0),v=n('
').get(0),m=n('
').get(0),y=n('
').get(0),b=n('
').get(0),x=n('
').get(0),w=n('
').get(0),C=n('
').get(0),this["marginT"+o]=g,this["marginB"+o]=v,this["marginL"+o]=m,this["marginR"+o]=y,this["padT"+o]=b,this["padB"+o]=x,this["padL"+o]=w,this["padR"+o]=C,E.appendChild(g),E.appendChild(v),E.appendChild(m),E.appendChild(y),M.appendChild(b),M.appendChild(x),M.appendChild(w),M.appendChild(C),p.appendChild(E),p.appendChild(M),this[d]="1"}var N=u.marginLeft.replace("px",""),I=parseInt(u.marginTop.replace("px","")),D=parseInt(u.marginBottom.replace("px","")),_=g.style,F=v.style,z=m.style,$=y.style,R=b.style,V=x.style,H=w.style,j=C.style,B=parseInt(c.left);_.height=u.marginTop,_.width=u.width,_.top=c.top-u.marginTop.replace("px","")+"px",_.left=B+"px",F.height=u.marginBottom,F.width=u.width,F.top=c.top+c.height+"px",F.left=B+"px";var W=c.height+I+D+"px",U=c.top-I+"px";z.height=W,z.width=u.marginLeft,z.top=U,z.left=B-N+"px",$.height=W,$.width=u.marginRight,$.top=U,$.left=B+c.width+"px";var q=parseInt(u.paddingTop.replace("px",""));R.height=u.paddingTop,R.width=u.width,R.top=c.top+"px",R.left=B+"px";var K=parseInt(u.paddingBottom.replace("px",""));V.height=u.paddingBottom,V.width=u.width,V.top=c.top+c.height-K+"px",V.left=B+"px";var G=c.height-K-q+"px",Y=c.top+q+"px";H.height=G,H.width=u.paddingLeft,H.top=Y,H.left=c.left+"px";var X=parseInt(u.paddingRight.replace("px",""));j.height=G,j.width=u.paddingRight,j.top=Y,j.left=c.left+c.width-X+"px"}},stop:function(t,e,n){var i=n||{},r=i.state||"",o=this.getOffsetMethod(r);t.Canvas[o]().style.display="none"}}}).call(e,n(0))},function(t,e,n){"use strict";t.exports={run:function(t){for(var e=t.getSelected(),n=e&&e.parent();n&&!n.get("selectable");)n=n.parent();n&&t.select(n)}}},function(t,e,n){"use strict";t.exports={isEnabled:function(){var t=document;return t.fullscreenElement||t.webkitFullscreenElement||t.mozFullScreenElement?1:0},enable:function(t){var e="";return t.requestFullscreen?t.requestFullscreen():t.webkitRequestFullscreen?(e="webkit",t.webkitRequestFullscreen()):t.mozRequestFullScreen?(e="moz",t.mozRequestFullScreen()):t.msRequestFullscreen?t.msRequestFullscreen():console.warn("Fullscreen not supported"),e},disable:function(){var t=document;t.exitFullscreen?t.exitFullscreen():t.webkitExitFullscreen?t.webkitExitFullscreen():t.mozCancelFullScreen?t.mozCancelFullScreen():t.msExitFullscreen&&t.msExitFullscreen()},fsChanged:function(t,e){var n=(document,(t||"")+"fullscreenchange");this.isEnabled()||(this.stop(null,this.sender),document.removeEventListener(n,this.fsChanged))},run:function(t,e){this.sender=e;var n=this.enable(t.getContainer());this.fsChanged=this.fsChanged.bind(this,n),document.addEventListener(n+"fullscreenchange",this.fsChanged),t&&t.trigger("change:canvasOffset")},stop:function(t,e){e&&e.set&&e.set("active",!1),this.disable(),t&&t.trigger("change:canvasOffset")}}},function(t,e,n){"use strict";(function(e){t.exports={getPanels:function(t){return this.panels||(this.panels=t.Panels.getPanelsEl()),this.panels},tglPointers:function(t,n){var i=t.Canvas.getBody().querySelectorAll("."+this.ppfx+"no-pointer");e.each(i,function(t){t.style.pointerEvents=n?"":"all"})},run:function(t,e){e&&e.set&&e.set("active",!1),t.stopCommand("sw-visibility"),t.getModel().stopDefault();var n=this.getPanels(t),i=t.Canvas.getElement(),r=t.getEl(),o=t.Config.stylePrefix;this.helper||(this.helper=document.createElement("span"),this.helper.className=o+"off-prv fa fa-eye-slash",r.appendChild(this.helper),this.helper.onclick=function(){t.stopCommand("preview")}),this.helper.style.display="inline-block",this.tglPointers(t),n.style.display="none";var s=i.style;s.width="100%",s.height="100%",s.top="0",s.left="0",s.padding="0",s.margin="0",t.trigger("change:canvasOffset")},stop:function(t,e){var n=this.getPanels(t);t.runCommand("sw-visibility"),t.getModel().runDefault(),n.style.display="block",t.Canvas.getElement().setAttribute("style",""),this.helper&&(this.helper.style.display="none"),t.trigger("change:canvasOffset"),this.tglPointers(t,1)}}}).call(e,n(1))},function(t,e,n){"use strict";t.exports={run:function(t,e,n){var i=n||{},r=i.el||"",o=t.Canvas,s=this.canvasResizer,a=i.options||{},l=o.getCanvasView();return a.ratioDefault=1,a.appendTo=o.getResizerEl(),a.prefix=t.getConfig().stylePrefix,a.posFetcher=l.getElementPos.bind(l),a.mousePosFetcher=o.getMouseRelativePos,s&&!i.forceNew||(this.canvasResizer=t.Utils.Resizer.init(a),s=this.canvasResizer),s.setOptions(a),s.focus(r),s},stop:function(){var t=this.canvasResizer;t&&t.blur()}}},function(t,e,n){"use strict";t.exports={run:function(t,e,n){var i=n&&n.el||"",r=t.Canvas,o=this.dragger,s=n.options||{},a=r.getCanvasView();return s.prefix=t.getConfig().stylePrefix,s.mousePosFetcher=r.getMouseRelativePos,s.posFetcher=a.getElementPos.bind(a),o||(o=t.Utils.Dragger.init(s),this.dragger=o),o.setOptions(s),o.focus(i),s.event&&o.start(s.event),o},stop:function(){this.canvasResizer&&this.canvasResizer.blur()}}},function(t,e,n){"use strict";t.exports=function(){var t,e,i,r={},o=n(211),s=n(212),a=n(214),l=n(215),c=[];return{name:"BlockManager",init:function(n){r=n||{};var u=r.em;for(var h in o)h in r||(r[h]=o[h]);return t=new s([]),e=new s([]),c=new a,i=new l({collection:e,categories:c},r),t.listenTo(t,"add",function(t){e.add(t),u&&u.trigger("block:add",t)}),t.listenTo(t,"remove",function(t){e.remove(t),u&&u.trigger("block:remove",t)}),t.listenTo(t,"reset",function(t){e.reset(t.models)}),this},getConfig:function(){return r},onLoad:function(){var t=this.getAll();!t.length&&t.reset(r.blocks)},add:function(e,n){var i=n||{};return i.id=e,t.add(i)},get:function(e){return t.get(e)},getAll:function(){return t},getAllVisible:function(){return e},remove:function(e){return t.remove(e)},getCategories:function(){return c},getContainer:function(){return i.el},render:function(t){var e=t||this.getAll().models;i.rendered||(i.render(),i.rendered=1),i.collection.reset(e)}}}},function(t,e,n){"use strict";t.exports={blocks:[],appendTo:""}},function(t,e,n){"use strict";var i=n(0),r=n(213);t.exports=i.Collection.extend({model:r})},function(t,e,n){"use strict";var i=n(0),r=n(57);t.exports=i.Model.extend({defaults:{label:"",content:"",category:"",attributes:{}},initialize:function(){var t=(arguments.length>0&&void 0!==arguments[0]&&arguments[0],this.get("category"));if(t&&"string"==typeof t){new r({id:t,label:t})}}})},function(t,e,n){"use strict";var i=n(0);t.exports=i.Collection.extend({model:n(57)})},function(t,e,n){"use strict";(function(e){var i=n(0),r=n(216),o=n(217);t.exports=i.View.extend({initialize:function(t,n){e.bindAll(this,"getSorter","onDrag","onDrop"),this.config=n||{},this.categories=t.categories||"",this.renderedCategories=[];var i=this.config.pStylePrefix||"";this.ppfx=i,this.noCatClass=i+"blocks-no-cat",this.blockContClass=i+"blocks-c",this.catsClass=i+"block-categories";var r=this.collection;this.listenTo(r,"add",this.addTo),this.listenTo(r,"reset",this.render),this.em=this.config.em,this.tac="test-tac",this.grabbingCls=this.ppfx+"grabbing",this.em&&(this.config.getSorter=this.getSorter,this.canvas=this.em.get("Canvas"))},getSorter:function(){if(this.em){if(!this.sorter){var t=this.em.get("Utils"),e=this.canvas;this.sorter=new t.Sorter({container:e.getBody(),placer:e.getPlacerEl(),containerSel:"*",itemSel:"*",pfx:this.ppfx,onStart:this.onDrag,onEndMove:this.onDrop,onMove:this.onMove,document:e.getFrameEl().contentDocument,direction:"a",wmargin:1,nested:1,em:this.em,canvasRelative:1})}return this.sorter}},onDrag:function(t){this.em.stopDefault(),this.em.trigger("block:drag:start",t)},onMove:function(t){this.em.trigger("block:drag:move",t)},onDrop:function(t){var e=this.em;e.runDefault(),t&&t.get&&(t.get("activeOnRender")&&(t.trigger("active"),t.set("activeOnRender",0)),e.trigger("block:drag:stop",t))},addTo:function(t){this.add(t)},add:function(t,e){var n=e||null,i=new r({model:t,attributes:t.get("attributes")},this.config),s=i.render().el,a=t.get("category");if(a&&this.categories){"string"==typeof a&&(a={id:a,label:a});var l=this.categories.add(a),c=l.get("id"),u=this.renderedCategories[c],h=this.getCategoriesEl();return t.set("category",l),!u&&h&&(u=new o({model:l},this.config).render(),this.renderedCategories[c]=u,h.appendChild(u.el)),void(u&&u.append(s))}n?n.appendChild(s):this.append(s)},getCategoriesEl:function(){return this.catsEl||(this.catsEl=this.el.querySelector("."+this.catsClass)),this.catsEl},getBlocksEl:function(){return this.blocksEl||(this.blocksEl=this.el.querySelector("."+this.noCatClass+" ."+this.blockContClass)),this.blocksEl},append:function(t){var e=this.getBlocksEl();e&&e.appendChild(t)},render:function(){var t=this,e=document.createDocumentFragment();return this.catsEl=null,this.blocksEl=null,this.renderedCategories=[],this.el.innerHTML='\n
\n
\n
\n
\n ',this.collection.each(function(n){return t.add(n,e)}),this.append(e),this.$el.addClass(this.blockContClass+"s"),this}})}).call(e,n(1))},function(t,e,n){"use strict";(function(e){var i=n(2);t.exports=e.View.extend({events:{mousedown:"startDrag"},initialize:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.config=e,this.endDrag=this.endDrag.bind(this),this.ppfx=e.pStylePrefix||"",this.listenTo(this.model,"destroy remove",this.remove)},startDrag:function(t){if(0===t.button&&this.config.getSorter){this.config.em.refreshCanvas();var e=this.config.getSorter();e.setDragHelper(this.el,t),e.setDropContent(this.model.get("content")),e.startSort(this.el),(0,i.on)(document,"mouseup",this.endDrag)}},endDrag:function(t){(0,i.off)(document,"mouseup",this.endDrag);var e=this.config.getSorter();e.moved=0,e.endMove()},render:function(){var t=this.el,e=this.ppfx,n=e+"block";return t.className+=" "+n+" "+e+"one-bg "+e+"four-color-h",t.innerHTML='
'+this.model.get("label")+"
",this}})}).call(e,n(0))},function(t,e,n){"use strict";(function(e){var i=n(0);t.exports=i.View.extend({template:e.template('\n
\n \n <%= label %>\n
\n
\n '),events:{},initialize:function(){var t=(arguments.length>0&&void 0!==arguments[0]&&arguments[0],arguments.length>1&&void 0!==arguments[1]?arguments[1]:{});this.config=t;var e=this.config.pStylePrefix||"";this.pfx=e,this.caretR="fa fa-caret-right",this.caretD="fa fa-caret-down",this.iconClass=e+"caret-icon",this.activeClass=e+"open",this.className=e+"block-category",this.events["click ."+e+"title"]="toggle",this.listenTo(this.model,"change:open",this.updateVisibility),this.delegateEvents()},updateVisibility:function(){this.model.get("open")?this.open():this.close()},open:function(){this.el.className=this.className+" "+this.activeClass,this.getIconEl().className=this.iconClass+" "+this.caretD,this.getBlocksEl().style.display=""},close:function(){this.el.className=this.className,this.getIconEl().className=this.iconClass+" "+this.caretR,this.getBlocksEl().style.display="none"},toggle:function(){var t=this.model;t.set("open",!t.get("open"))},getIconEl:function(){return this.iconEl||(this.iconEl=this.el.querySelector("."+this.iconClass)),this.iconEl},getBlocksEl:function(){return this.blocksEl||(this.blocksEl=this.el.querySelector("."+this.pfx+"blocks-c")),this.blocksEl},append:function(t){this.getBlocksEl().appendChild(t)},render:function(){return this.el.innerHTML=this.template({pfx:this.pfx,label:this.model.get("label")}),this.el.className=this.className,this.updateVisibility(),this}})}).call(e,n(1))},function(t,e,n){"use strict";t.exports=function(t){var e=t.$,n=t.Backbone;if(n){var i=n.View.prototype,r={};i.eventNsMap=r,i.delegate=function(t,e,n){var i=".delegateEvents"+this.cid;this.$el.on(t,e,n);var o=r[i];return o||(o=[],r[i]=o),o.push({eventName:t,selector:e,listener:n}),this},i.undelegateEvents=function(){var t=this,e=".delegateEvents"+this.cid;if(this.$el){var n=r[e];n&&n.forEach(function(e){var n=e.eventName;e.selector,e.listener;t.$el.off(n)})}return this},i.undelegate=function(t,e,n){var i=this,o=".delegateEvents"+this.cid,s=r[o];return s&&s.forEach(function(n){var r=n.eventName,o=n.selector;n.listener;r==t&&o==e&&i.$el.off(r)}),this}}if(e&&"jQuery"!==e.prototype.constructor.name){var o=e.fn,s=e.prototype.on,a=e.prototype.off,l=e.prototype.trigger,c=e.prototype.offset,u=function(t){return t.split(/[,\s]+/g)},h=function(t){return t.split(".")};o.on=function(t,e,n,i){var r=this;if("string"==typeof t){var o=u(t);if(1==o.length){t=o[0];var a=h(t);if(0!==t.indexOf(".")&&(t=a[0]),a=a.slice(1),a.length){this.data("_cashNs");this.data("_cashNs",a)}return s.call(this,t,e,n,i)}return o.forEach(function(t){return r.on(t,e,n,i)}),this}return s.call(this,t,e,n,i)},o.off=function(t,e){var n=this;if("string"==typeof t){var i=u(t);if(1==i.length){t=i[0];var r=h(t);return 0!==t.indexOf(".")&&(t=r[0]),r=r.slice(1),r.length,a.call(this,t,e)}return i.forEach(function(t){return n.off(t,e)}),this}return a.call(this,t,e)},o.trigger=function(t,n){var i=this;if(t instanceof e.Event)return this.trigger(t.type,n);if("string"==typeof t){var r=u(t);if(1==r.length){t=r[0];var o=h(t);return 0!==t.indexOf(".")&&(t=o[0]),o=o.slice(1),o.length,l.call(this,t,n)}return r.forEach(function(t){return i.trigger(t,n)}),this}return l.call(this,t,n)},o.hide=function(){return this.css("display","none")},o.show=function(){return this.css("display","block")},o.focus=function(){var t=this.get(0);return t&&t.focus(),this},o.remove=function(){return this.each(function(t){return t.parentNode&&t.parentNode.removeChild(t)})},o.bind=function(t,e){return this.on(t,e)},o.unbind=function(t,e){return this.off(t,e)},o.click=function(t){return t?this.on("click",t):this.trigger("click")},o.change=function(t){return t?this.on("change",t):this.trigger("change")},o.keydown=function(t){return t?this.on("keydown",t):this.trigger("keydown")},o.delegate=function(t,e,n,i){return i||(i=n),this.on(e,t,function(t){t.data=n,i(t)})},o.scrollLeft=function(){var t=this.get(0);t=9==t.nodeType?t.defaultView:t;var e=t instanceof Window?t:null;return e?e.pageXOffset:t.scrollLeft||0},o.scrollTop=function(){var t=this.get(0);t=9==t.nodeType?t.defaultView:t;var e=t instanceof Window?t:null;return e?e.pageYOffset:t.scrollTop||0},o.offset=function(t){var e=void 0,n=void 0;return t&&(e=t.top,n=t.left),void 0!==e&&this.css("top",e+"px"),void 0!==n&&this.css("left",n+"px"),c.call(this)},e.map=function(t,e){for(var n=[],i=0;it.maximumStackLength&&(t.shift(),t.pointer--)}}}function h(){}function d(e,n,i,o){if("object"==typeof n)return t.each(n,function(t,n){2===e?d(e,t,i,o):d(e,n,t,i)});switch(e){case 0:r(i,"undo","redo","on")&&t.all(t.pick(i,"undo","redo","on"),t.isFunction)&&(o[n]=i);break;case 1:o[n]&&t.isObject(i)&&(o[n]=t.extend({},o[n],i));break;case 2:delete o[n]}return this}var f=Array.prototype.slice,p=function(){function e(){i++,n=!0,t.defer(function(){n=!1})}var n=!1,i=-1;return function(){return n||e(),i}}();o.prototype={isRegistered:function(e){return e&&e.cid?this.registeredObjects[e.cid]:t.contains(this.registeredObjects,e)},register:function(t){return!this.isRegistered(t)&&(t&&t.cid?(this.registeredObjects[t.cid]=t,this.cidIndexes.push(t.cid)):this.registeredObjects.push(t),!0)},unregister:function(e){if(this.isRegistered(e)){if(e&&e.cid)delete this.registeredObjects[e.cid],this.cidIndexes.splice(t.indexOf(this.cidIndexes,e.cid),1);else{var n=t.indexOf(this.registeredObjects,e);this.registeredObjects.splice(n,1)}return!0}return!1},get:function(){return t.map(this.cidIndexes,function(t){return this.registeredObjects[t]},this).concat(this.registeredObjects)}};var g={add:{undo:function(t,e,n,i){t.remove(n,i)},redo:function(t,e,n,i){i.index&&(i.at=i.index),t.add(n,i)},on:function(e,n,i){return{object:n,before:void 0,after:e,options:t.clone(i)}}},remove:{undo:function(t,e,n,i){"index"in i&&(i.at=i.index),t.add(e,i)},redo:function(t,e,n,i){t.remove(e,i)},on:function(e,n,i){return{object:n,before:e,after:void 0,options:t.clone(i)}}},change:{undo:function(e,n,i,r){t.isEmpty(n)?t.each(t.keys(i),e.unset,e):(e.set(n),r&&r.unsetData&&r.unsetData.before&&r.unsetData.before.length&&t.each(r.unsetData.before,e.unset,e))},redo:function(e,n,i,r){t.isEmpty(i)?t.each(t.keys(n),e.unset,e):(e.set(i),r&&r.unsetData&&r.unsetData.after&&r.unsetData.after.length&&t.each(r.unsetData.after,e.unset,e))},on:function(e,n){var i=e.changedAttributes(),r=t.keys(i),o=t.pick(e.previousAttributes(),r),s=t.keys(o),a=(n||(n={})).unsetData={after:[],before:[]};return r.length!=s.length&&(r.length>s.length?t.each(r,function(t){t in o||a.before.push(t)},this):t.each(s,function(t){t in i||a.after.push(t)})),{object:e,before:o,after:i,options:t.clone(n)}}},reset:{undo:function(t,e,n){t.reset(e)},redo:function(t,e,n){t.reset(n)},on:function(e,n){return{object:e,before:n.previousModels,after:t.clone(e.models)}}}};h.prototype=g;var v=e.Model.extend({defaults:{type:null,object:null,before:null,after:null,magicFusionIndex:null},undo:function(t){a("undo",this.attributes)},redo:function(t){a("redo",this.attributes)}}),m=e.Collection.extend({model:v,pointer:-1,track:!1,isCurrentlyUndoRedoing:!1,maximumStackLength:1/0,setMaxLength:function(t){this.maximumStackLength=t}}),y=e.Model.extend({defaults:{maximumStackLength:1/0,track:!1},initialize:function(e){this.stack=new m,this.objectRegistry=new o,this.undoTypes=new h,this.stack.setMaxLength(this.get("maximumStackLength")),this.on("change:maximumStackLength",function(t,e){this.stack.setMaxLength(e)},this),e&&e.track&&this.startTracking(),e&&e.register&&(t.isArray(e.register)||t.isArguments(e.register)?n(this.register,this,e.register):this.register(e.register))},startTracking:function(){this.set("track",!0),this.stack.track=!0},stopTracking:function(){this.set("track",!1),this.stack.track=!1},isTracking:function(){return this.get("track")},_addToStack:function(t){u(this.stack,t,i(arguments,1),this.undoTypes)},register:function(){s("on",arguments,this._addToStack,this)},unregister:function(){s("off",arguments,this._addToStack,this)},unregisterAll:function(){n(this.unregister,this,this.objectRegistry.get())},undo:function(t){l("undo",this,this.stack,t)},undoAll:function(){l("undo",this,this.stack,!1,!0)},redo:function(t){l("redo",this,this.stack,t)},redoAll:function(){l("redo",this,this.stack,!1,!0)},isAvailable:function(t){var e=this.stack,n=e.length;switch(t){case"undo":return n>0&&e.pointer>-1;case"redo":return n>0&&e.pointer1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=this.get("contentTypeJson"),s=this.get("headers")||{},a=this.get("params"),l=n.body||{},c=void 0,u=void 0;for(var h in a)l[h]=a[h];if((0,o.isUndefined)(s["X-Requested-With"])&&(s["X-Requested-With"]="XMLHttpRequest"),(0,o.isUndefined)(s["Content-Type"])&&r&&(s["Content-Type"]="application/json; charset=utf-8"),r)u=JSON.stringify(l);else{u=new FormData;for(var d in l)u.append(d,l[d])}c={method:n.method||"post",credentials:"include",headers:s},"post"===c.method&&(c.body=u),this.onStart(),this.fetch(t,c).then(function(t){return 1==(t.status/200|0)?t.text():t.text().then(function(t){return Promise.reject(t)})}).then(function(t){return e.onResponse(t,i)}).catch(function(t){return e.onError(t)})}})},function(t,e,n){(function(e){!function(n){function i(){}function r(t,e){return function(){t.apply(e,arguments)}}function o(t){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof t)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],h(t,this)}function s(t,e){for(;3===t._state;)t=t._value;if(0===t._state)return void t._deferreds.push(e);t._handled=!0,o._immediateFn(function(){var n=1===t._state?e.onFulfilled:e.onRejected;if(null===n)return void(1===t._state?a:l)(e.promise,t._value);var i;try{i=n(t._value)}catch(t){return void l(e.promise,t)}a(e.promise,i)})}function a(t,e){try{if(e===t)throw new TypeError("A promise cannot be resolved with itself.");if(e&&("object"==typeof e||"function"==typeof e)){var n=e.then;if(e instanceof o)return t._state=3,t._value=e,void c(t);if("function"==typeof n)return void h(r(n,e),t)}t._state=1,t._value=e,c(t)}catch(e){l(t,e)}}function l(t,e){t._state=2,t._value=e,c(t)}function c(t){2===t._state&&0===t._deferreds.length&&o._immediateFn(function(){t._handled||o._unhandledRejectionFn(t._value)});for(var e=0,n=t._deferreds.length;e=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},n(77),e.setImmediate=setImmediate,e.clearImmediate=clearImmediate},function(t,e,n){(function(t,e){!function(t,n){"use strict";function i(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n1)for(var n=1;n<%= deviceLabel %>
\n
\n \n \n \n
\n
\n
\n
\n '),events:{change:"updateDevice"},initialize:function(t){this.config=t.config||{},this.em=this.config.em,this.ppfx=this.config.pStylePrefix||"",this.events["click ."+this.ppfx+"add-trasp"]=this.startAdd,this.listenTo(this.em,"change:device",this.updateSelect),this.delegateEvents()},startAdd:function(){},updateDevice:function(){var t=this.em;if(t){var e=this.devicesEl,n=e?e.val():"";t.set("device",n)}},updateSelect:function(){var t=this.em,e=this.devicesEl;if(t&&t.getDeviceModel&&e){var n=t.getDeviceModel(),i=n?n.get("name"):"";e.val(i)}},getOptions:function(){var t="";return this.collection.each(function(e){var n=e.get("name");t+='"}),t},render:function(){var t=this.ppfx;return this.$el.html(this.template({ppfx:t,deviceLabel:this.config.deviceLabel})),this.devicesEl=this.$el.find("."+t+"devices"),this.devicesEl.append(this.getOptions()),this.el.className=t+"devices-c",this}})}).call(e,n(1))},function(t,e,n){"use strict";t.exports=function(){var t,e,i={},r=n(85),o=n(86),s=n(25);return{compTypes:"",name:"Parser",init:function(n){i=n||{};for(var a in r)a in i||(i[a]=r[a]);return t=new s(i),e=new o(i),this},parseHtml:function(n){return t.compTypes=this.compTypes,t.parse(n,e)},parseCss:function(t){return e.parse(t)}}}},function(t,e,n){"use strict";t.exports={textTags:["br","b","i","u","a","ul","ol"]}},function(t,e,n){"use strict";t.exports=function(t){return{parseSelector:function(t){for(var e=[],n=[],i=t.split(","),r=0,o=i.length;r1&&void 0!==arguments[1]?arguments[1]:{};"object"==(void 0===t?"undefined":i(t))?n=t:n.name=t,n.label&&!n.name&&(n.name=l.escapeName(n.label));var r=n.name,o=r?this.get(r,n.type):e.where(n)[0];return o||e.add(n)},addClass:function(t){var n=[];return(0,r.isString)(t)&&(t=t.trim().split(" ")),t.forEach(function(t){return n.push(e.add({name:t}))}),n},get:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.TYPE_CLASS;return e.where({name:t,type:n})[0]},getAll:function(){return e},render:function(t){if(t){return new u({collection:new c(t),config:s}).render().el}return o.render().el}}}},function(t,e,n){"use strict";t.exports={stylePrefix:"clm-",selectors:[],label:"Classes",statesLabel:"- State -",selectedLabel:"Selected",states:[{name:"hover",label:"Hover"},{name:"active",label:"Click"},{name:"nth-of-type(2n)",label:"Even/Odd"}]}},function(t,e,n){"use strict";(function(e){var i=n(0),r=n(90);t.exports=i.View.extend({template:e.template('\n
\n
<%= label %>
\n
\n \n
\n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
<%= selectedLabel %>
\n
\n
\n
'),events:{},initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.config=t.config||{},this.pfx=this.config.stylePrefix||"",this.ppfx=this.config.pStylePrefix||"",this.className=this.pfx+"tags",this.addBtnId=this.pfx+"add-tag",this.newInputId=this.pfx+"new",this.stateInputId=this.pfx+"states",this.stateInputC=this.pfx+"input-c",this.states=this.config.states||[],this.events["click #"+this.addBtnId]="startNewTag",this.events["blur #"+this.newInputId]="endNewTag",this.events["keyup #"+this.newInputId]="onInputKeyUp",this.events["change #"+this.stateInputId]="stateChanged",this.target=this.config.em,this.em=this.target,this.listenTo(this.target,"change:selectedComponent",this.componentChanged),this.listenTo(this.target,"component:update:classes",this.updateSelector),this.listenTo(this.collection,"add",this.addNew),this.listenTo(this.collection,"reset",this.renderClasses),this.listenTo(this.collection,"remove",this.tagRemoved),this.delegateEvents()},tagRemoved:function(t){this.updateStateVis()},getStateOptions:function(){for(var t="",e=0;e'+this.states[e].label+"";return t},addNew:function(t){this.addToClasses(t)},startNewTag:function(t){this.$addBtn.get(0).style.display="none",this.$input.show().focus()},endNewTag:function(t){this.$addBtn.get(0).style.display="",this.$input.hide().val("")},onInputKeyUp:function(t){13===t.keyCode?this.addNewTag(this.$input.val()):27===t.keyCode&&this.endNewTag()},componentChanged:function(t){this.compTarget=this.target.get("selectedComponent");var e=this.compTarget,n=[];e&&(this.getStates().val(e.get("state")),n=e.get("classes").getValid()),this.collection.reset(n),this.updateStateVis()},updateStateVis:function(){var t=this.em,e=t&&t.getConfig("avoidInlineStyle");this.collection.length||e?this.getStatesC().css("display","block"):this.getStatesC().css("display","none"),this.updateSelector()},updateSelector:function(){var t=this.target.getSelected();if(this.compTarget=t,t&&t.get){var e=t.get("state"),n=this.collection,i=n.getFullString(n.getStyleable());i=i||"#"+t.getId(),i+=e?":"+e:"";var r=this.el.querySelector("#"+this.pfx+"sel");r&&(r.innerHTML=i)}},stateChanged:function(t){this.compTarget&&(this.compTarget.set("state",this.$states.val()),this.updateSelector())},addNewTag:function(t){var e=this.target,n=this.compTarget;if(t.trim()){if(e){var i=e.get("SelectorManager"),r=i.add({label:t});if(n){var o=n.get("classes");o.length;o.add(r);o.length;this.collection.add(r),this.updateStateVis()}}this.endNewTag()}},addToClasses:function(t,e){var n=e||null,i=new r({model:t,config:this.config,coll:this.collection}),o=i.render().el;return n?n.appendChild(o):this.getClasses().append(o),o},renderClasses:function(){var t=document.createDocumentFragment();return this.collection.each(function(e){this.addToClasses(e,t)},this),this.getClasses()&&this.getClasses().empty().append(t),this},getClasses:function(){return this.$classes||(this.$classes=this.$el.find("#"+this.pfx+"tags-c")),this.$classes},getStates:function(){return this.$states||(this.$states=this.$el.find("#"+this.stateInputId)),this.$states},getStatesC:function(){return this.$statesC||(this.$statesC=this.$el.find("#"+this.stateInputC)),this.$statesC},render:function(){var t=this.config;return this.$el.html(this.template({selectedLabel:t.selectedLabel,statesLabel:t.statesLabel,label:t.label,pfx:this.pfx,ppfx:this.ppfx})),this.$input=this.$el.find("input#"+this.newInputId),this.$addBtn=this.$el.find("#"+this.addBtnId),this.$classes=this.$el.find("#"+this.pfx+"tags-c"),this.$states=this.$el.find("#"+this.stateInputId),this.$statesC=this.$el.find("#"+this.stateInputC),this.$states.append(this.getStateOptions()),this.renderClasses(),this.$el.attr("class",this.className),this}})}).call(e,n(1))},function(t,e,n){"use strict";var i=n(7);t.exports=n(0).View.extend({template:function(){var t=this.pfx;this.ppfx;return'\n \n '+(this.model.get("label")||"")+'\n \n ⨯\n \n '},events:{"click [data-tag-remove]":"removeTag","click [data-tag-status]":"changeStatus","dblclick [data-tag-name]":"startEditTag","focusout [data-tag-name]":"endEditTag"},initialize:function(t){this.config=t.config||{},this.coll=t.coll||null,this.pfx=this.config.stylePrefix||"",this.ppfx=this.config.pStylePrefix||"",this.target=this.config.em,this.listenTo(this.model,"change:active",this.updateStatus)},getInputEl:function(){return this.inputEl||(this.inputEl=this.el.querySelector("[data-tag-name]")),this.inputEl},startEditTag:function(){var t=this.getInputEl();t.contentEditable=!0,t.focus()},endEditTag:function(){var t=this.model,e=this.getInputEl(),n=e.textContent,r=i.escapeName(n),o=this.target,s=o&&o.get("SelectorManager");e.contentEditable=!1,s&&(s.get(r)?e.innerText=t.get("label"):t.set({name:r,label:n}))},changeStatus:function(){this.model.set("active",!this.model.get("active"))},removeTag:function(t){var e=this,n=this.target,i=this.model,r=this.coll,o=(this.el,n&&n.get("selectedComponent"));o&&(o.get,o.get("classes").remove(i)),r&&r.remove(i),setTimeout(function(){return e.remove()},0)},updateStatus:function(){var t="fa-check-square-o";this.$chk||(this.$chk=this.$el.find("#"+this.pfx+"checkbox")),this.model.get("active")?(this.$chk.removeClass("fa-square-o").addClass(t),this.$el.removeClass("opac50")):(this.$chk.removeClass(t).addClass("fa-square-o"),this.$el.addClass("opac50"))},render:function(){var t=this.pfx,e=this.ppfx;return this.$el.html(this.template()),this.$el.attr("class",t+"tag "+e+"three-bg"),this.updateStatus(),this}})},function(t,e,n){"use strict";t.exports=function(){var t,e,i={},r=n(92),o=n(93),s=n(94);return{name:"Modal",init:function(n){i=n||{};for(var a in r)a in i||(i[a]=r[a]);var l=i.pStylePrefix;return l&&(i.stylePrefix=l+i.stylePrefix),t=new o(i),e=new s({model:t,config:i}),this},postRender:function(t){this.render().appendTo(t.el)},open:function(){return e.show(),this},close:function(){return e.hide(),this},isOpen:function(){return!!t.get("open")},setTitle:function(e){return t.set("title",e),this},getTitle:function(){return t.get("title")},setContent:function(e){return t.set("content"," "),t.set("content",e),this},getContent:function(){return t.get("content")},getContentEl:function(){return e.getContent().get(0)},getModel:function(){return t},render:function(){return e.render().$el}}}},function(t,e,n){"use strict";t.exports={stylePrefix:"mdl-",title:"",content:"",backdrop:!0}},function(t,e,n){"use strict";var i=n(0);t.exports=i.Model.extend({defaults:{title:"",content:"",open:!1}})},function(t,e,n){"use strict";t.exports=n(0).View.extend({template:function(t){var e=t.pfx,n=t.ppfx,i=t.content;return'
\n
\n
'+t.title+'
\n
\n
\n
\n
'+i+'
\n
\n
\n
\n
\n '},events:{},initialize:function(t){var e=this.model,n=t.config||{},i=n.stylePrefix||"",r=n.backdrop;this.config=n,this.pfx=i,this.ppfx=n.pStylePrefix||"",this.listenTo(e,"change:open",this.updateOpen),this.listenTo(e,"change:title",this.updateTitle),this.listenTo(e,"change:content",this.updateContent),this.events["click ."+i+"btn-close"]="hide",r&&(this.events["click ."+i+"backlayer"]="hide"),this.delegateEvents()},getCollector:function(){return this.$collector||(this.$collector=this.$el.find("."+this.pfx+"collector")),this.$collector},getContent:function(){var t=this.pfx;return this.$content||(this.$content=this.$el.find("."+t+"content #"+t+"c")),this.$content},getTitle:function(){return this.$title||(this.$title=this.$el.find("."+this.pfx+"title")),this.$title.get(0)},updateContent:function(){var t=this.getContent(),e=t.children(),n=this.getCollector(),i=this.model.get("content");e.length&&n.append(e),t.empty().append(i)},updateTitle:function(){var t=this.getTitle();t&&(t.innerHTML=this.model.get("title"))},updateOpen:function(){this.el.style.display=this.model.get("open")?"":"none"},hide:function(){this.model.set("open",0)},show:function(){this.model.set("open",1)},render:function(){var t=this.$el,e=this.pfx,n=(this.ppfx,this.model.toJSON());return n.pfx=this.pfx,n.ppfx=this.ppfx,t.html(this.template(n)),t.attr("class",e+"container"),this.updateOpen(),this}})},function(t,e,n){"use strict";t.exports=function(){var t={},e=n(96),i=n(97),r=n(98),o=n(99),s=n(100),a=n(101),l=n(106),c={},u={},h={},d={};return{getConfig:function(){return t},config:t,EditorView:l,name:"CodeManager",init:function(n){t=n||{};for(var l in e)l in t||(t[l]=e[l]);var c=t.pStylePrefix;return c&&(t.stylePrefix=c+t.stylePrefix),u.html=new i,u.css=new r,u.json=new o,u.js=new s,d.CodeMirror=new a,this.loadDefaultGenerators().loadDefaultViewers(),this},addGenerator:function(t,e){return c[t]=e,this},getGenerator:function(t){return c[t]||null},getGenerators:function(){return c},addViewer:function(t,e){return h[t]=e,this},getViewer:function(t){return h[t]||null},getViewers:function(){return h},updateViewer:function(t,e){t.setContent(e)},getCode:function(e,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};i.em=t.em;var r=this.getGenerator(n);return r?r.build(e,i):""},loadDefaultGenerators:function(){for(var t in u)this.addGenerator(t,u[t]);return this},loadDefaultViewers:function(){for(var t in d)this.addViewer(t,d[t]);return this}}}},function(t,e,n){"use strict";t.exports={stylePrefix:"cm-",inlineCss:!1}},function(t,e,n){"use strict";var i=n(0);t.exports=i.Model.extend({build:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.get("components");return e.exportWrapper?e.wrappesIsBody?""+this.buildModels(n)+"":t.toHTML():this.buildModels(n)},buildModels:function(t){var e="";return t.each(function(t){e+=t.toHTML()}),e}})},function(t,e,n){"use strict";t.exports=n(0).Model.extend({initialize:function(){this.compCls=[],this.ids=[]},buildFromModel:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i="",r=this.em,o=r&&r.getConfig("avoidInlineStyle"),s=t.styleToString(),a=t.get("classes"),l=n.wrappesIsBody,c=t.get("wrapper");if(this.ids.push("#"+t.getId()),a.each(function(t){return e.compCls.push(t.getFullName())}),(!o||c)&&s){var u="#"+t.getId();u=l&&c?"body":u,i=u+"{"+s+"}"}return t.components().each(function(t){return i+=e.buildFromModel(t,n)}),i},build:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=n.cssc;this.em=n.em||"",this.compCls=[],this.ids=[];var r=this.buildFromModel(t,n);if(i){var o=i.getAll(),s={};o.each(function(t){var n=t.get("mediaText");if(n){var i=s[n];return void(i?i.push(t):s[n]=[t])}r+=e.buildFromRule(t)});for(var a in s){var l="";s[a].forEach(function(t){return l+=e.buildFromRule(t)}),l&&(r+="@media "+a+"{"+l+"}")}}return r},buildFromRule:function(t){var e=this,n="",i=t.selectorsToString(),r=t.selectorsToString({skipAdd:1}),o=void 0;if(t.get("selectors").each(function(t){var n=t.getFullName();(e.compCls.indexOf(n)>=0||e.ids.indexOf(n)>=0)&&(o=1)}),r&&o||t.get("selectorsAdd")){var s=t.styleToString();s&&(n+=i+"{"+s+"}")}return n}})},function(t,e,n){"use strict";(function(e){var i=n(0);t.exports=i.Model.extend({build:function(t){var n=t.toJSON();return this.beforeEach(n),e.each(n,function(t,e){var r=n[e];if(r instanceof i.Model)n[e]=this.build(r);else if(r instanceof i.Collection){var o=r;n[e]=[],o.length&&o.each(function(t,i){n[e][i]=this.build(t)},this)}},this),n},beforeEach:function(t){delete t.status}})}).call(e,n(1))},function(t,e,n){"use strict";(function(e){var i=n(0);t.exports=i.Model.extend({mapModel:function(t){var n="",i=t.get("script"),r=t.get("type"),o=t.get("components"),s=t.getId();if(i){var a=t.get("attributes");a=e.extend({},a,{id:s}),t.set("attributes",a);var l=t.getScriptString();if(t.get("scriptUpdated"))this.mapJs[r+"-"+s]={ids:[s],code:l};else{var c=this.mapJs[r];c?c.ids.push(s):this.mapJs[r]={ids:[s],code:l}}}return o.each(function(t){n+=this.mapModel(t)},this),n},build:function(t){this.mapJs={},this.mapModel(t);var e="";for(var n in this.mapJs){var i=this.mapJs[n];e+="\n var items = document.querySelectorAll('"+("#"+i.ids.join(", #"))+"');\n for (var i = 0, len = items.length; i < len; i++) {\n (function(){"+i.code+"}.bind(items[i]))();\n }"}return e}})}).call(e,n(1))},function(t,e,n){"use strict";var i=Object.assign||function(t){for(var e=1;e-1?t.backUp(i.length-r):i.match(/<\/?$/)&&(t.backUp(i.length),t.match(e,!1)||t.match(i)),n}function n(t){var e=l[t];return e||(l[t]=new RegExp("\\s+"+t+"\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*"))}function i(t,e){var i=t.match(n(e));return i?/^\s*(.*?)\s*$/.exec(i[2])[1]:""}function r(t,e){return new RegExp((e?"^":"")+"","i")}function o(t,e){for(var n in t)for(var i=e[n]||(e[n]=[]),r=t[n],o=r.length-1;o>=0;o--)i.unshift(r[o])}function s(t,e){for(var n=0;n\s\/]/.test(i.current())&&(a=o.htmlState.tagName&&o.htmlState.tagName.toLowerCase())&&u.hasOwnProperty(a))o.inTag=a+" ";else if(o.inTag&&d&&/>$/.test(i.current())){var f=/^([\S]+) (.*)/.exec(o.inTag);o.inTag=null;var p=">"==i.current()&&s(u[f[1]],f[2]),g=t.getMode(n,p),v=r(f[1],!0),m=r(f[1],!1);o.token=function(t,n){return t.match(v,!1)?(n.token=l,n.localState=n.localMode=null,null):e(t,m,n.localMode.token(t,n.localState))},o.localMode=g,o.localState=t.startState(g,c.indent(o.htmlState,""))}else o.inTag&&(o.inTag+=i.current(),i.eol()&&(o.inTag+=" "));return h}var c=t.getMode(n,{name:"xml",htmlMode:!0,multilineTagIndentFactor:i.multilineTagIndentFactor,multilineTagIndentPastTag:i.multilineTagIndentPastTag}),u={},h=i&&i.tags,d=i&&i.scriptTypes;if(o(a,u),h&&o(h,u),d)for(var f=d.length-1;f>=0;f--)u.script.unshift(["type",d[f].matches,d[f].mode]);return{startState:function(){return{token:l,inTag:null,localMode:null,localState:null,htmlState:t.startState(c)}},copyState:function(e){var n;return e.localState&&(n=t.copyState(e.localMode,e.localState)),{token:e.token,inTag:e.inTag,localMode:e.localMode,localState:n,htmlState:t.copyState(c,e.htmlState)}},token:function(t,e){return e.token(t,e)},indent:function(e,n,i){return!e.localMode||/^\s*<\//.test(n)?c.indent(e.htmlState,n):e.localMode.indent?e.localMode.indent(e.localState,n,i):t.Pass},innerMode:function(t){return{state:t.localState||t.htmlState,mode:t.localMode||c}}}},"xml","javascript","css"),t.defineMIME("text/html","htmlmixed")})},function(t,e,n){!function(t){t(n(6))}(function(t){"use strict";var e={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},n={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,caseFold:!1};t.defineMode("xml",function(i,r){function o(t,e){function n(n){return e.tokenize=n,n(t,e)}var i=t.next();if("<"==i)return t.eat("!")?t.eat("[")?t.match("CDATA[")?n(l("atom","]]>")):null:t.match("--")?n(l("comment","--\x3e")):t.match("DOCTYPE",!0,!0)?(t.eatWhile(/[\w\._\-]/),n(c(1))):null:t.eat("?")?(t.eatWhile(/[\w\._\-]/),e.tokenize=l("meta","?>"),"meta"):(E=t.eat("/")?"closeTag":"openTag",e.tokenize=s,"tag bracket");if("&"==i){var r;return r=t.eat("#")?t.eat("x")?t.eatWhile(/[a-fA-F\d]/)&&t.eat(";"):t.eatWhile(/[\d]/)&&t.eat(";"):t.eatWhile(/[\w\.\-:]/)&&t.eat(";"),r?"atom":"error"}return t.eatWhile(/[^&<]/),null}function s(t,e){var n=t.next();if(">"==n||"/"==n&&t.eat(">"))return e.tokenize=o,E=">"==n?"endTag":"selfcloseTag","tag bracket";if("="==n)return E="equals",null;if("<"==n){e.tokenize=o,e.state=f,e.tagName=e.tagStart=null;var i=e.tokenize(t,e);return i?i+" tag error":"tag error"}return/[\'\"]/.test(n)?(e.tokenize=a(n),e.stringStartCol=t.column(),e.tokenize(t,e)):(t.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function a(t){var e=function(e,n){for(;!e.eol();)if(e.next()==t){n.tokenize=s;break}return"string"};return e.isInAttribute=!0,e}function l(t,e){return function(n,i){for(;!n.eol();){if(n.match(e)){i.tokenize=o;break}n.next()}return t}}function c(t){return function(e,n){for(var i;null!=(i=e.next());){if("<"==i)return n.tokenize=c(t+1),n.tokenize(e,n);if(">"==i){if(1==t){n.tokenize=o;break}return n.tokenize=c(t-1),n.tokenize(e,n)}}return"meta"}}function u(t,e,n){this.prev=t.context,this.tagName=e,this.indent=t.indented,this.startOfLine=n,(k.doNotIndent.hasOwnProperty(e)||t.context&&t.context.noIndent)&&(this.noIndent=!0)}function h(t){t.context&&(t.context=t.context.prev)}function d(t,e){for(var n;;){if(!t.context)return;if(n=t.context.tagName,!k.contextGrabbers.hasOwnProperty(n)||!k.contextGrabbers[n].hasOwnProperty(e))return;h(t)}}function f(t,e,n){return"openTag"==t?(n.tagStart=e.column(),p):"closeTag"==t?g:f}function p(t,e,n){return"word"==t?(n.tagName=e.current(),M="tag",y):(M="error",p)}function g(t,e,n){if("word"==t){var i=e.current();return n.context&&n.context.tagName!=i&&k.implicitlyClosed.hasOwnProperty(n.context.tagName)&&h(n),n.context&&n.context.tagName==i||!1===k.matchClosing?(M="tag",v):(M="tag error",m)}return M="error",m}function v(t,e,n){return"endTag"!=t?(M="error",v):(h(n),f)}function m(t,e,n){return M="error",v(t,e,n)}function y(t,e,n){if("word"==t)return M="attribute",b;if("endTag"==t||"selfcloseTag"==t){var i=n.tagName,r=n.tagStart;return n.tagName=n.tagStart=null,"selfcloseTag"==t||k.autoSelfClosers.hasOwnProperty(i)?d(n,i):(d(n,i),n.context=new u(n,i,r==n.indented)),f}return M="error",y}function b(t,e,n){return"equals"==t?x:(k.allowMissing||(M="error"),y(t,e,n))}function x(t,e,n){return"string"==t?w:"word"==t&&k.allowUnquoted?(M="string",y):(M="error",y(t,e,n))}function w(t,e,n){return"string"==t?w:y(t,e,n)}var C=i.indentUnit,k={},S=r.htmlMode?e:n;for(var T in S)k[T]=S[T];for(var T in r)k[T]=r[T];var E,M;return o.isInText=!0,{startState:function(t){var e={tokenize:o,state:f,indented:t||0,tagName:null,tagStart:null,context:null};return null!=t&&(e.baseIndent=t),e},token:function(t,e){if(!e.tagName&&t.sol()&&(e.indented=t.indentation()),t.eatSpace())return null;E=null;var n=e.tokenize(t,e);return(n||E)&&"comment"!=n&&(M=null,e.state=e.state(E||n,t,e),M&&(n="error"==M?n+" error":M)),n},indent:function(e,n,i){var r=e.context;if(e.tokenize.isInAttribute)return e.tagStart==e.indented?e.stringStartCol+1:e.indented+C;if(r&&r.noIndent)return t.Pass;if(e.tokenize!=s&&e.tokenize!=o)return i?i.match(/^(\s*)/)[0].length:0;if(e.tagName)return!1!==k.multilineTagIndentPastTag?e.tagStart+e.tagName.length+2:e.tagStart+C*(k.multilineTagIndentFactor||1);if(k.alignCDATA&&/$/,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",configuration:k.htmlMode?"html":"xml",helperType:k.htmlMode?"html":"xml",skipAttribute:function(t){t.state==x&&(t.state=y)}}}),t.defineMIME("text/xml","xml"),t.defineMIME("application/xml","xml"),t.mimeModes.hasOwnProperty("text/html")||t.defineMIME("text/html",{name:"xml",htmlMode:!0})})},function(t,e,n){!function(t){t(n(6))}(function(t){"use strict";t.defineMode("javascript",function(e,n){function i(t){for(var e,n=!1,i=!1;null!=(e=t.next());){if(!n){if("/"==e&&!i)return;"["==e?i=!0:i&&"]"==e&&(i=!1)}n=!n&&"\\"==e}}function r(t,e,n){return Tt=t,Et=n,e}function o(t,e){var n=t.next();if('"'==n||"'"==n)return e.tokenize=s(n),e.tokenize(t,e);if("."==n&&t.match(/^\d+(?:[eE][+\-]?\d+)?/))return r("number","number");if("."==n&&t.match(".."))return r("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(n))return r(n);if("="==n&&t.eat(">"))return r("=>","operator");if("0"==n&&t.eat(/x/i))return t.eatWhile(/[\da-f]/i),r("number","number");if("0"==n&&t.eat(/o/i))return t.eatWhile(/[0-7]/i),r("number","number");if("0"==n&&t.eat(/b/i))return t.eatWhile(/[01]/i),r("number","number");if(/\d/.test(n))return t.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/),r("number","number");if("/"==n)return t.eat("*")?(e.tokenize=a,a(t,e)):t.eat("/")?(t.skipToEnd(),r("comment","comment")):St(t,e,1)?(i(t),t.match(/^\b(([gimyu])(?![gimyu]*\2))+\b/),r("regexp","string-2")):(t.eat("="),r("operator","operator",t.current()));if("`"==n)return e.tokenize=l,l(t,e);if("#"==n)return t.skipToEnd(),r("error","error");if(It.test(n))return">"==n&&e.lexical&&">"==e.lexical.type||(t.eat("=")?"!"!=n&&"="!=n||t.eat("="):/[<>*+\-]/.test(n)&&(t.eat(n),">"==n&&t.eat(n))),r("operator","operator",t.current());if(Nt.test(n)){t.eatWhile(Nt);var o=t.current();if("."!=e.lastType){if(Dt.propertyIsEnumerable(o)){var c=Dt[o];return r(c.type,c.style,o)}if("async"==o&&t.match(/^\s*[\(\w]/,!1))return r("async","keyword",o)}return r("variable","variable",o)}}function s(t){return function(e,n){var i,s=!1;if(At&&"@"==e.peek()&&e.match(_t))return n.tokenize=o,r("jsonld-keyword","meta");for(;null!=(i=e.next())&&(i!=t||s);)s=!s&&"\\"==i;return s||(n.tokenize=o),r("string","string")}}function a(t,e){for(var n,i=!1;n=t.next();){if("/"==n&&i){e.tokenize=o;break}i="*"==n}return r("comment","comment")}function l(t,e){for(var n,i=!1;null!=(n=t.next());){if(!i&&("`"==n||"$"==n&&t.eat("{"))){e.tokenize=o;break}i=!i&&"\\"==n}return r("quasi","string-2",t.current())}function c(t,e){e.fatArrowAt&&(e.fatArrowAt=null);var n=t.string.indexOf("=>",t.start);if(!(n<0)){if(Lt){var i=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(t.string.slice(t.start,n));i&&(n=i.index)}for(var r=0,o=!1,s=n-1;s>=0;--s){var a=t.string.charAt(s),l=Ft.indexOf(a);if(l>=0&&l<3){if(!r){++s;break}if(0==--r){"("==a&&(o=!0);break}}else if(l>=3&&l<6)++r;else if(Nt.test(a))o=!0;else{if(/["'\/]/.test(a))return;if(o&&!r){++s;break}}}o&&!r&&(e.fatArrowAt=s)}}function u(t,e,n,i,r,o){this.indented=t,this.column=e,this.type=n,this.prev=r,this.info=o,null!=i&&(this.align=i)}function h(t,e){for(var n=t.localVars;n;n=n.next)if(n.name==e)return!0;for(var i=t.context;i;i=i.prev)for(var n=i.vars;n;n=n.next)if(n.name==e)return!0}function d(t,e,n,i,r){var o=t.cc;for($t.state=t,$t.stream=r,$t.marked=null,$t.cc=o,$t.style=e,t.lexical.hasOwnProperty("align")||(t.lexical.align=!0);;){if((o.length?o.pop():Ot?C:w)(n,i)){for(;o.length&&o[o.length-1].lex;)o.pop()();return $t.marked?$t.marked:"variable"==n&&h(t,i)?"variable-2":e}}}function f(){for(var t=arguments.length-1;t>=0;t--)$t.cc.push(arguments[t])}function p(){return f.apply(null,arguments),!0}function g(t){function e(e){for(var n=e;n;n=n.next)if(n.name==t)return!0;return!1}var i=$t.state;if($t.marked="def",i.context){if(e(i.localVars))return;i.localVars={name:t,next:i.localVars}}else{if(e(i.globalVars))return;n.globalVars&&(i.globalVars={name:t,next:i.globalVars})}}function v(){$t.state.context={prev:$t.state.context,vars:$t.state.localVars},$t.state.localVars=Rt}function m(){$t.state.localVars=$t.state.context.vars,$t.state.context=$t.state.context.prev}function y(t,e){var n=function(){var n=$t.state,i=n.indented;if("stat"==n.lexical.type)i=n.lexical.indented;else for(var r=n.lexical;r&&")"==r.type&&r.align;r=r.prev)i=r.indented;n.lexical=new u(i,$t.stream.column(),t,null,n.lexical,e)};return n.lex=!0,n}function b(){var t=$t.state;t.lexical.prev&&(")"==t.lexical.type&&(t.indented=t.lexical.indented),t.lexical=t.lexical.prev)}function x(t){function e(n){return n==t?p():";"==t?f():p(e)}return e}function w(t,e){return"var"==t?p(y("vardef",e.length),J,x(";"),b):"keyword a"==t?p(y("form"),S,w,b):"keyword b"==t?p(y("form"),w,b):"keyword d"==t?$t.stream.match(/^\s*$/,!1)?p():p(y("stat"),E,x(";"),b):"debugger"==t?p(x(";")):"{"==t?p(y("}"),B,b):";"==t?p():"if"==t?("else"==$t.state.lexical.info&&$t.state.cc[$t.state.cc.length-1]==b&&$t.state.cc.pop()(),p(y("form"),S,w,b,nt)):"function"==t?p(lt):"for"==t?p(y("form"),it,w,b):"variable"==t?Lt&&"type"==e?($t.marked="keyword",p(U,x("operator"),U,x(";"))):Lt&&"declare"==e?($t.marked="keyword",p(w)):p(y("stat"),F):"switch"==t?p(y("form"),S,x("{"),y("}","switch"),B,b,b):"case"==t?p(C,x(":")):"default"==t?p(x(":")):"catch"==t?p(y("form"),v,x("("),ct,x(")"),w,b,m):"class"==t?p(y("form"),ht,b):"export"==t?p(y("stat"),gt,b):"import"==t?p(y("stat"),mt,b):"module"==t?p(y("form"),Z,x("{"),y("}"),B,b,b):"async"==t?p(w):"@"==e?p(C,w):f(y("stat"),C,x(";"),b)}function C(t){return T(t,!1)}function k(t){return T(t,!0)}function S(t){return"("!=t?f():p(y(")"),C,x(")"),b)}function T(t,e){if($t.state.fatArrowAt==$t.stream.start){var n=e?N:L;if("("==t)return p(v,y(")"),H(ct,")"),b,x("=>"),n,m);if("variable"==t)return f(v,Z,x("=>"),n,m)}var i=e?P:M;return zt.hasOwnProperty(t)?p(i):"function"==t?p(lt,i):"class"==t?p(y("form"),ut,b):"keyword c"==t||"async"==t?p(e?k:C):"("==t?p(y(")"),E,x(")"),b,i):"operator"==t||"spread"==t?p(e?k:C):"["==t?p(y("]"),Ct,b,i):"{"==t?j($,"}",null,i):"quasi"==t?f(A,i):"new"==t?p(D(e)):p()}function E(t){return t.match(/[;\}\)\],]/)?f():f(C)}function M(t,e){return","==t?p(C):P(t,e,!1)}function P(t,e,n){var i=0==n?M:P,r=0==n?C:k;return"=>"==t?p(v,n?N:L,m):"operator"==t?/\+\+|--/.test(e)||Lt&&"!"==e?p(i):"?"==e?p(C,x(":"),r):p(r):"quasi"==t?f(A,i):";"!=t?"("==t?j(k,")","call",i):"."==t?p(z,i):"["==t?p(y("]"),E,x("]"),b,i):Lt&&"as"==e?($t.marked="keyword",p(U,i)):"regexp"==t?($t.state.lastType=$t.marked="operator",$t.stream.backUp($t.stream.pos-$t.stream.start-1),p(r)):void 0:void 0}function A(t,e){return"quasi"!=t?f():"${"!=e.slice(e.length-2)?p(A):p(C,O)}function O(t){if("}"==t)return $t.marked="string-2",$t.state.tokenize=l,p(A)}function L(t){return c($t.stream,$t.state),f("{"==t?w:C)}function N(t){return c($t.stream,$t.state),f("{"==t?w:k)}function D(t){return function(e){return"."==e?p(t?_:I):"variable"==e&&Lt?p(X,t?P:M):f(t?k:C)}}function I(t,e){if("target"==e)return $t.marked="keyword",p(M)}function _(t,e){if("target"==e)return $t.marked="keyword",p(P)}function F(t){return":"==t?p(b,w):f(M,x(";"),b)}function z(t){if("variable"==t)return $t.marked="property",p()}function $(t,e){if("async"==t)return $t.marked="property",p($);if("variable"==t||"keyword"==$t.style){if($t.marked="property","get"==e||"set"==e)return p(R);var n;return Lt&&$t.state.fatArrowAt==$t.stream.start&&(n=$t.stream.match(/^\s*:\s*/,!1))&&($t.state.fatArrowAt=$t.stream.pos+n[0].length),p(V)}return"number"==t||"string"==t?($t.marked=At?"property":$t.style+" property",p(V)):"jsonld-keyword"==t?p(V):"modifier"==t?p($):"["==t?p(C,x("]"),V):"spread"==t?p(k,V):"*"==e?($t.marked="keyword",p($)):":"==t?f(V):void 0}function R(t){return"variable"!=t?f(V):($t.marked="property",p(lt))}function V(t){return":"==t?p(k):"("==t?f(lt):void 0}function H(t,e,n){function i(r,o){if(n?n.indexOf(r)>-1:","==r){var s=$t.state.lexical;return"call"==s.info&&(s.pos=(s.pos||0)+1),p(function(n,i){return n==e||i==e?f():f(t)},i)}return r==e||o==e?p():p(x(e))}return function(n,r){return n==e||r==e?p():f(t,i)}}function j(t,e,n){for(var i=3;i"==t)return p(U)}function K(t,e){return"variable"==t||"keyword"==$t.style?($t.marked="property",p(K)):"?"==e?p(K):":"==t?p(U):"["==t?p(C,W,x("]"),K):void 0}function G(t){return"variable"==t?p(G):":"==t?p(U):void 0}function Y(t,e){return"<"==e?p(y(">"),H(U,">"),b,Y):"|"==e||"."==t?p(U):"["==t?p(x("]"),Y):"extends"==e?p(U):void 0}function X(t,e){if("<"==e)return p(y(">"),H(U,">"),b,Y)}function J(){return f(Z,W,tt,et)}function Z(t,e){return"modifier"==t?p(Z):"variable"==t?(g(e),p()):"spread"==t?p(Z):"["==t?j(Z,"]"):"{"==t?j(Q,"}"):void 0}function Q(t,e){return"variable"!=t||$t.stream.match(/^\s*:/,!1)?("variable"==t&&($t.marked="property"),"spread"==t?p(Z):"}"==t?f():p(x(":"),Z,tt)):(g(e),p(tt))}function tt(t,e){if("="==e)return p(k)}function et(t){if(","==t)return p(J)}function nt(t,e){if("keyword b"==t&&"else"==e)return p(y("form","else"),w,b)}function it(t){if("("==t)return p(y(")"),rt,x(")"),b)}function rt(t){return"var"==t?p(J,x(";"),st):";"==t?p(st):"variable"==t?p(ot):f(C,x(";"),st)}function ot(t,e){return"in"==e||"of"==e?($t.marked="keyword",p(C)):p(M,st)}function st(t,e){return";"==t?p(at):"in"==e||"of"==e?($t.marked="keyword",p(C)):f(C,x(";"),at)}function at(t){")"!=t&&p(C)}function lt(t,e){return"*"==e?($t.marked="keyword",p(lt)):"variable"==t?(g(e),p(lt)):"("==t?p(v,y(")"),H(ct,")"),b,W,w,m):Lt&&"<"==e?p(y(">"),H(U,">"),b,lt):void 0}function ct(t,e){return"@"==e&&p(C,ct),"spread"==t||"modifier"==t?p(ct):f(Z,W,tt)}function ut(t,e){return"variable"==t?ht(t,e):dt(t,e)}function ht(t,e){if("variable"==t)return g(e),p(dt)}function dt(t,e){return"<"==e?p(y(">"),H(U,">"),b,dt):"extends"==e||"implements"==e||Lt&&","==t?p(Lt?U:C,dt):"{"==t?p(y("}"),ft,b):void 0}function ft(t,e){return"modifier"==t||"async"==t||"variable"==t&&("static"==e||"get"==e||"set"==e)&&$t.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?($t.marked="keyword",p(ft)):"variable"==t||"keyword"==$t.style?($t.marked="property",p(Lt?pt:lt,ft)):"["==t?p(C,x("]"),Lt?pt:lt,ft):"*"==e?($t.marked="keyword",p(ft)):";"==t?p(ft):"}"==t?p():"@"==e?p(C,ft):void 0}function pt(t,e){return"?"==e?p(pt):":"==t?p(U,tt):"="==e?p(k):f(lt)}function gt(t,e){return"*"==e?($t.marked="keyword",p(wt,x(";"))):"default"==e?($t.marked="keyword",p(C,x(";"))):"{"==t?p(H(vt,"}"),wt,x(";")):f(w)}function vt(t,e){return"as"==e?($t.marked="keyword",p(x("variable"))):"variable"==t?f(k,vt):void 0}function mt(t){return"string"==t?p():f(yt,bt,wt)}function yt(t,e){return"{"==t?j(yt,"}"):("variable"==t&&g(e),"*"==e&&($t.marked="keyword"),p(xt))}function bt(t){if(","==t)return p(yt,bt)}function xt(t,e){if("as"==e)return $t.marked="keyword",p(yt)}function wt(t,e){if("from"==e)return $t.marked="keyword",p(C)}function Ct(t){return"]"==t?p():f(H(k,"]"))}function kt(t,e){return"operator"==t.lastType||","==t.lastType||It.test(e.charAt(0))||/[,.]/.test(e.charAt(0))}function St(t,e,n){return e.tokenize==o&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(e.lastType)||"quasi"==e.lastType&&/\{\s*$/.test(t.string.slice(0,t.pos-(n||0)))}var Tt,Et,Mt=e.indentUnit,Pt=n.statementIndent,At=n.jsonld,Ot=n.json||At,Lt=n.typescript,Nt=n.wordCharacters||/[\w$\xa1-\uffff]/,Dt=function(){function t(t){return{type:t,style:"keyword"}}var e=t("keyword a"),n=t("keyword b"),i=t("keyword c"),r=t("keyword d"),o=t("operator"),s={type:"atom",style:"atom"},a={if:t("if"),while:e,with:e,else:n,do:n,try:n,finally:n,return:r,break:r,continue:r,new:t("new"),delete:i,void:i,throw:i,debugger:t("debugger"),var:t("var"),const:t("var"),let:t("var"),function:t("function"),catch:t("catch"),for:t("for"),switch:t("switch"),case:t("case"),default:t("default"),in:o,typeof:o,instanceof:o,true:s,false:s,null:s,undefined:s,NaN:s,Infinity:s,this:t("this"),class:t("class"),super:t("atom"),yield:i,export:t("export"),import:t("import"),extends:i,await:i};if(Lt){var l={type:"variable",style:"type"},c={interface:t("class"),implements:i,namespace:i,module:t("module"),enum:t("module"),public:t("modifier"),private:t("modifier"),protected:t("modifier"),abstract:t("modifier"),readonly:t("modifier"),string:l,number:l,boolean:l,any:l};for(var u in c)a[u]=c[u]}return a}(),It=/[+\-*&%=<>!?|~^@]/,_t=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/,Ft="([{}])",zt={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,"jsonld-keyword":!0},$t={state:null,column:null,marked:null,cc:null},Rt={name:"this",next:{name:"arguments"}};return b.lex=!0,{startState:function(t){var e={tokenize:o,lastType:"sof",cc:[],lexical:new u((t||0)-Mt,0,"block",!1),localVars:n.localVars,context:n.localVars&&{vars:n.localVars},indented:t||0};return n.globalVars&&"object"==typeof n.globalVars&&(e.globalVars=n.globalVars),e},token:function(t,e){if(t.sol()&&(e.lexical.hasOwnProperty("align")||(e.lexical.align=!1),e.indented=t.indentation(),c(t,e)),e.tokenize!=a&&t.eatSpace())return null;var n=e.tokenize(t,e);return"comment"==Tt?n:(e.lastType="operator"!=Tt||"++"!=Et&&"--"!=Et?Tt:"incdec",d(e,n,Tt,Et,t))},indent:function(e,i){if(e.tokenize==a)return t.Pass;if(e.tokenize!=o)return 0;var r,s=i&&i.charAt(0),l=e.lexical;if(!/^\s*else\b/.test(i))for(var c=e.cc.length-1;c>=0;--c){var u=e.cc[c];if(u==b)l=l.prev;else if(u!=nt)break}for(;("stat"==l.type||"form"==l.type)&&("}"==s||(r=e.cc[e.cc.length-1])&&(r==M||r==P)&&!/^[,\.=+\-*:?[\(]/.test(i));)l=l.prev;Pt&&")"==l.type&&"stat"==l.prev.type&&(l=l.prev);var h=l.type,d=s==h;return"vardef"==h?l.indented+("operator"==e.lastType||","==e.lastType?l.info+1:0):"form"==h&&"{"==s?l.indented:"form"==h?l.indented+Mt:"stat"==h?l.indented+(kt(e,i)?Pt||Mt:0):"switch"!=l.info||d||0==n.doubleIndentSwitch?l.align?l.column+(d?0:1):l.indented+(d?0:Mt):l.indented+(/^(?:case|default)\b/.test(i)?Mt:2*Mt)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:Ot?null:"/*",blockCommentEnd:Ot?null:"*/",blockCommentContinue:Ot?null:" * ",lineComment:Ot?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:Ot?"json":"javascript",jsonldMode:At,jsonMode:Ot,expressionAllowed:St,skipExpression:function(t){var e=t.cc[t.cc.length-1];e!=C&&e!=k||t.cc.pop()}}}),t.registerHelper("wordChars","javascript",/[\w$]/),t.defineMIME("text/javascript","javascript"),t.defineMIME("text/ecmascript","javascript"),t.defineMIME("application/javascript","javascript"),t.defineMIME("application/x-javascript","javascript"),t.defineMIME("application/ecmascript","javascript"),t.defineMIME("application/json",{name:"javascript",json:!0}),t.defineMIME("application/x-json",{name:"javascript",json:!0}),t.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),t.defineMIME("text/typescript",{name:"javascript",typescript:!0}),t.defineMIME("application/typescript",{name:"javascript",typescript:!0})})},function(t,e,n){!function(t){t(n(6))}(function(t){t.extendMode("css",{commentStart:"/*",commentEnd:"*/",newlineAfterToken:function(t,e){return/^[;{}]$/.test(e)}}),t.extendMode("javascript",{commentStart:"/*",commentEnd:"*/",newlineAfterToken:function(t,e,n,i){return this.jsonMode?/^[\[,{]$/.test(e)||/^}/.test(n):(";"!=e||!i.lexical||")"!=i.lexical.type)&&(/^[;{}]$/.test(e)&&!/^;/.test(n))}});var e=/^(a|abbr|acronym|area|base|bdo|big|br|button|caption|cite|code|col|colgroup|dd|del|dfn|em|frame|hr|iframe|img|input|ins|kbd|label|legend|link|map|object|optgroup|option|param|q|samp|script|select|small|span|strong|sub|sup|textarea|tt|var)$/;t.extendMode("xml",{commentStart:"\x3c!--",commentEnd:"--\x3e",newlineAfterToken:function(t,n,i,r){var o=!1;return"html"==this.configuration&&(o=!!r.context&&e.test(r.context.tagName)),!o&&("tag"==t&&/>$/.test(n)&&r.context||/^-1&&a>-1&&a>s&&(t=t.substr(0,s)+t.substring(s+o.commentStart.length,a)+t.substr(a+o.commentEnd.length)),r.replaceRange(t,n,i)}})}),t.defineExtension("autoIndentRange",function(t,e){var n=this;this.operation(function(){for(var i=t.line;i<=e.line;i++)n.indentLine(i,"smart")})}),t.defineExtension("autoFormatRange",function(e,n){function i(){c+="\n",h=!0,++u}for(var r=this,o=r.getMode(),s=r.getRange(e,n).split("\n"),a=t.copyState(o,r.getTokenAt(e).state),l=r.getOption("tabSize"),c="",u=0,h=0===e.ch,d=0;d\n \t
<%= label %>
\n \t
\n
'),initialize:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix},render:function(){var t=this.model.toJSON();return t.pfx=this.pfx,this.$el.html(this.template(t)),this.$el.attr("class",this.pfx+"editor-c"),this.$el.find("#"+this.pfx+"code").append(this.model.get("input")),this}})}).call(e,n(1))},function(t,e,n){"use strict";t.exports=function(){var t,e,i={},r=n(108),o=n(27),s=n(110),a=(n(29),n(112));return{name:"Panels",init:function(n){i=n||{};for(var o in r)o in i||(i[o]=r[o]);var l=i.pStylePrefix;return l&&(i.stylePrefix=l+i.stylePrefix),t=new s(i.defaults),e=new a({collection:t,config:i}),this},getPanels:function(){return t},getPanelsEl:function(){return e.el},addPanel:function(e){return t.add(e)},removePanel:function(e){return t.remove(e)},getPanel:function(e){var n=t.where({id:e});return n.length?n[0]:null},addButton:function(t,e){var n=this.getPanel(t);return n?n.get("buttons").add(e):null},removeButton:function(t,e){var n=this.getPanel(t);return n&&n.get("buttons").remove(e)},getButton:function(t,e){var n=this.getPanel(t);if(n){var i=n.get("buttons").where({id:e});return i.length?i[0]:null}return null},render:function(){return e.render().el},active:function(){this.getPanels().each(function(t){t.get("buttons").each(function(t){t.get("active")&&t.trigger("updateActive")})})},disableButtons:function(){this.getPanels().each(function(t){t.get("buttons").each(function(t){t.get("disable")&&t.trigger("change:disable")})})},Panel:o}}},function(t,e,n){"use strict";var i="sw-visibility",r="export-template",o="open-layers",s="open-blocks",a="fullscreen",l="preview";t.exports={stylePrefix:"pn-",defaults:[{id:"commands",buttons:[{}]},{id:"options",buttons:[{active:!0,id:i,className:"fa fa-square-o",command:i,context:i,attributes:{title:"View components"}},{id:l,className:"fa fa-eye",command:l,context:l,attributes:{title:"Preview"}},{id:a,className:"fa fa-arrows-alt",command:a,context:a,attributes:{title:"Fullscreen"}},{id:r,className:"fa fa-code",command:r,attributes:{title:"View code"}}]},{id:"views",buttons:[{id:"open-sm",className:"fa fa-paint-brush",command:"open-sm",active:!0,attributes:{title:"Open Style Manager"}},{id:"open-tm",className:"fa fa-cog",command:"open-tm",attributes:{title:"Settings"}},{id:o,className:"fa fa-bars",command:o,attributes:{title:"Open Layer Manager"}},{id:s,className:"fa fa-th-large",command:s,attributes:{title:"Open Blocks"}}]}],em:null,delayBtnsShow:300}},function(t,e,n){"use strict";var i=n(0);t.exports=i.Model.extend({defaults:{id:"",className:"",command:"",context:"",buttons:[],attributes:{},options:{},active:!1,dragDrop:!1,runDefaultCommand:!0,stopDefaultCommand:!1,disable:!1},initialize:function(t){if(this.get("buttons").length){var e=n(28);this.set("buttons",new e(this.get("buttons")))}}})},function(t,e,n){"use strict";var i=n(0),r=n(27);t.exports=i.Collection.extend({model:r})},function(t,e,n){"use strict";(function(e,i){var r=n(1),o=e.$;t.exports=e.View.extend({tagName:"span",initialize:function(t){i.bindAll(this,"startTimer","stopTimer","showButtons","hideButtons","closeOnKeyPress","onDrop","initSorter","stopDrag");var e=this.model.get("className");this.config=t.config||{},this.em=this.config.em||{};var n=this.config.stylePrefix||"",r=this.config.pStylePrefix||"";this.pfx=n,this.ppfx=this.config.pStylePrefix||"",this.id=n+this.model.get("id"),this.activeCls=n+"active "+r+"four-color",this.disableCls=n+"active",this.btnsVisCls=n+"visible",this.parentM=t.parentM||null,this.className=n+"btn"+(e?" "+e:""),this.listenTo(this.model,"change:active updateActive",this.updateActive),this.listenTo(this.model,"checkActive",this.checkActive),this.listenTo(this.model,"change:bntsVis",this.updateBtnsVis),this.listenTo(this.model,"change:attributes",this.updateAttributes),this.listenTo(this.model,"change:className",this.updateClassName),this.listenTo(this.model,"change:disable",this.updateDisable),this.model.get("buttons").length&&(this.$el.on("mousedown",this.startTimer),this.$el.append(o("
",{class:n+"arrow-rd"}))),this.em&&this.em.get&&(this.commands=this.em.get("Commands")),this.events={},this.model.get("dragDrop")?(this.events.mousedown="initDrag",this.em.on("loaded",this.initSorter)):this.events.click="clicked",this.delegateEvents()},initSorter:function(){if(this.em.Canvas){var t=this.em.Canvas;this.canvasEl=t.getBody(),this.sorter=new this.em.Utils.Sorter({container:this.canvasEl,placer:t.getPlacerEl(),containerSel:"*",itemSel:"*",pfx:this.ppfx,onMove:this.onDrag,onEndMove:this.onDrop,document:t.getFrameEl().contentDocument,direction:"a",wmargin:1,nested:1});var e=t.getOffset();this.sorter.offTop=e.top,this.sorter.offLeft=e.left}},initDrag:function(){this.model.collection.deactivateAll(this.model.get("context")),this.sorter.startSort(this.el),this.sorter.setDropContent(this.model.get("options").content),this.canvasEl.style.cursor="grabbing",o(document).on("mouseup",this.stopDrag)},stopDrag:function(){o(document).off("mouseup",this.stopDrag),this.sorter.endMove()},onDrag:function(t){},onDrop:function(t){this.canvasEl.style.cursor="default"},updateClassName:function(){var t=this.model.get("className");this.$el.attr("class",this.pfx+"btn"+(t?" "+t:""))},updateAttributes:function(){this.$el.attr(this.model.get("attributes"))},updateBtnsVis:function(){this.$buttons&&(this.model.get("bntsVis")?this.$buttons.addClass(this.btnsVisCls):this.$buttons.removeClass(this.btnsVisCls))},startTimer:function(){this.timeout=setTimeout(this.showButtons,this.config.delayBtnsShow),o(document).on("mouseup",this.stopTimer)},stopTimer:function(){o(document).off("mouseup",this.stopTimer),this.timeout&&clearTimeout(this.timeout)},showButtons:function(){clearTimeout(this.timeout),this.model.set("bntsVis",!0),o(document).on("mousedown",this.hideButtons),o(document).on("keypress",this.closeOnKeyPress)},hideButtons:function(t){t&&o(t.target).trigger("click"),this.model.set("bntsVis",!1),o(document).off("mousedown",this.hideButtons),o(document).off("keypress",this.closeOnKeyPress)},closeOnKeyPress:function(t){27==(t.which||t.keyCode)&&this.hideButtons()},updateActive:function(){var t=this.model,e=t.get("context"),n=this.parentM,i={},o=this.em&&this.em.get?this.em.get("Editor"):null,s=t.get("command");this.commands&&(0,r.isString)(s)?i=this.commands.get(s)||{}:(0,r.isFunction)(s)?i={run:s}:null!==s&&(0,r.isObject)(s)&&(i=s),t.get("active")?(t.collection.deactivateAll(e),t.set("active",!0,{silent:!0}).trigger("checkActive"),n&&n.set("active",!0,{silent:!0}).trigger("checkActive"),i.run&&(i.run(o,t,t.get("options")),o.trigger("run:"+s)),!i.stop&&t.set("active",!1)):(this.$el.removeClass(this.activeCls),t.collection.deactivateAll(e),n&&n.set("active",!1,{silent:!0}).trigger("checkActive"),i.stop&&(i.stop(o,t,t.get("options")),o.trigger("stop:"+s)))},updateDisable:function(){this.model.get("disable")?this.$el.addClass(this.disableCls):this.$el.removeClass(this.disableCls)},checkActive:function(){this.model.get("active")?this.$el.addClass(this.activeCls):this.$el.removeClass(this.activeCls)},clicked:function(t){this.model.get("bntsVis")||this.model.get("disable")||this.toogleActive()},toogleActive:function(){this.parentM&&this.swapParent();var t=this.model.get("active");this.model.set("active",!t);this.em.get("Commands").get("select-comp");t?this.model.get("runDefaultCommand")&&this.em.runDefault():this.model.get("stopDefaultCommand")&&this.em.stopDefault()},swapParent:function(){this.parentM.collection.deactivateAll(this.model.get("context")),this.parentM.set("attributes",this.model.get("attributes")),this.parentM.set("options",this.model.get("options")),this.parentM.set("command",this.model.get("command")),this.parentM.set("className",this.model.get("className")),this.parentM.set("active",!0,{silent:!0}).trigger("checkActive")},render:function(){if(this.updateAttributes(),this.$el.attr("class",this.className),this.model.get("buttons").length){var t=n(30),e=new t({collection:this.model.get("buttons"),config:this.config,parentM:this.model});this.$buttons=e.render().$el,this.$buttons.append(o("
",{class:this.pfx+"arrow-l"})),this.$el.append(this.$buttons)}return this}})}).call(e,n(0),n(1))},function(t,e,n){"use strict";var i=n(0),r=n(29);t.exports=i.View.extend({initialize:function(t){this.opt=t||{},this.config=this.opt.config||{},this.pfx=this.config.stylePrefix||"",this.listenTo(this.collection,"add",this.addTo),this.listenTo(this.collection,"reset",this.render),this.className=this.pfx+"panels"},addTo:function(t){this.addToCollection(t)},addToCollection:function(t,e){var n=e||null,i=new r({model:t,config:this.config}),o=i.render().el,s=t.get("appendTo");if(s){document.querySelector(s).appendChild(o)}else n?n.appendChild(o):this.$el.append(o);return i.initResize(),o},render:function(){var t=document.createDocumentFragment();return this.$el.empty(),this.collection.each(function(e){this.addToCollection(e,t)},this),this.$el.append(t),this.$el.attr("class",this.className),this}})},function(t,e,n){"use strict";var i=n(114),r=function(t){return t&&t.__esModule?t:{default:t}}(i),o=n(2);t.exports=function(){var t={},e=n(115),i=void 0,s=void 0,a=void 0,l=void 0,c=function(){var t=i.style;t.top="-100px",t.left="-100px",t.display="none"};return{customRte:null,name:"RichTextEditor",init:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t=n;for(var r in e)r in t||(t[r]=e[r]);var a=t.pStylePrefix;return a&&(t.stylePrefix=a+t.stylePrefix),this.pfx=t.stylePrefix,s=t.actions||[],i=document.createElement("div"),i.className=a+"rte-toolbar "+a+"one-bg",l=this.initRte(document.createElement("div")),(0,o.on)(i,"mousedown",function(t){return t.stopPropagation()}),this},postRender:function(t){var e=t.model.get("Canvas");i.style.pointerEvents="all",c(),e.getToolsEl().appendChild(i)},initRte:function(e){var n=this.pfx,o=i,s=this.actionbar,a=this.actions||t.actions,c={actionbar:n+"actionbar",button:n+"action",active:n+"active"},u=new r.default({el:e,classes:c,actions:a,actionbar:s,actionbarContainer:o});return l&&l.setEl(e),u.actionbar&&(this.actionbar=u.actionbar),u.actions&&(this.actions=u.actions),u},add:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.name=t,l.addAction(e,{sync:1})},get:function(t){var e=void 0;return l.getActions().forEach(function(n){n.name==t&&(e=n)}),e},getAll:function(){return l.getActions()},remove:function(t){var e=this.getAll(),n=this.get(t);if(n){var i=n.btn,r=e.indexOf(n);i.parentNode.removeChild(i),e.splice(r,1)}return n},getToolbarEl:function(){return i},udpatePosition:function(){var e=t.em.get("Canvas"),n=e.getTargetToElementDim(i,a,{event:"rteToolbarPosUpdate"});t.adjustToolbar&&n.top<=n.canvasTop&&(n.top=n.elementTop+n.elementHeight);var r=i.style;r.top=n.top+"px",r.left=n.left+"px"},enable:function(e,n){a=e.el;var r=t.em,o=e.getChildrenContainer(),s=this.customRte;if(i.style.display="",n=s?s.enable(o,n):this.initRte(o).enable(),r){setTimeout(this.udpatePosition.bind(this),0);var l="change:canvasOffset canvasScroll";r.off(l,this.udpatePosition,this),r.on(l,this.udpatePosition,this),r.trigger("rte:enable",e,n)}return n},disable:function(e,n){var i=t.em,r=this.customRte,o=e.getChildrenContainer();r?r.disable(o,n):n&&n.disable(),c(),i&&i.trigger("rte:disable",e,n)}}}},function(t,e,n){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var r=Object.assign||function(t){for(var e=1;eB",attributes:{title:"Bold"},result:function(t){return t.exec("bold")}},italic:{name:"italic",icon:"I",attributes:{title:"Italic"},result:function(t){return t.exec("italic")}},underline:{name:"underline",icon:"U",attributes:{title:"Underline"},result:function(t){return t.exec("underline")}},strikethrough:{name:"strikethrough",icon:"S",attributes:{title:"Strike-through"},result:function(t){return t.exec("strikeThrough")}},link:{icon:'',name:"link",attributes:{style:"font-size:1.4rem;padding:0 4px 2px;",title:"Link"},result:function(t){return t.insertHTML(''+t.selection()+"")}}},c=function(){function t(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};i(this,t);var o=n.el;if(o[a])return o[a];o[a]=this,this.setEl(o),this.updateActiveActions=this.updateActiveActions.bind(this);var s=n.actions||[];s.forEach(function(t,e){"string"==typeof t?t=l[t]:l[t.name]&&(t=r({},l[t.name],t)),s[e]=t});var c=s.length?s:Object.keys(l).map(function(t){return l[t]});n.classes=r({actionbar:"actionbar",button:"action",active:"active"},n.classes);var u=n.classes,h=n.actionbar;if(this.actionbar=h,this.settings=n,this.classes=u,this.actions=c,!h){var d=n.actionbarContainer;h=document.createElement("div"),h.className=u.actionbar,d.appendChild(h),this.actionbar=h,c.forEach(function(t){return e.addAction(t)})}return n.styleWithCSS&&this.exec("styleWithCSS"),this.syncActions(),this}return o(t,[{key:"setEl",value:function(t){this.el=t,this.doc=t.ownerDocument}},{key:"updateActiveActions",value:function(){var t=this;this.getActions().forEach(function(e){var n=e.btn,i=e.update,r=t.classes.active,o=e.name,s=t.doc;n.className=n.className.replace(r,"").trim(),s.queryCommandState(o)&&(n.className+=" "+r),i&&i(t,e)})}},{key:"enable",value:function(){return this.enabled?this:(this.actionbarEl().style.display="",this.el.contentEditable=!0,(0,s.on)(this.el,"mouseup keyup",this.updateActiveActions),this.syncActions(),this.updateActiveActions(),this.el.focus(),this.enabled=1,this)}},{key:"disable",value:function(){return this.actionbarEl().style.display="none",this.el.contentEditable=!1,(0,s.off)(this.el,"mouseup keyup",this.updateActiveActions),this.enabled=0,this}},{key:"syncActions",value:function(){var t=this;this.getActions().forEach(function(e){var n=e.event||"click";e.btn["on"+n]=function(n){e.result(t,e),t.updateActiveActions()}})}},{key:"addAction",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.sync,i=document.createElement("span"),r=t.icon,o=t.attributes||{};i.className=this.classes.button,t.btn=i;for(var s in o)i.setAttribute(s,o[s]);"string"==typeof r?i.innerHTML=r:i.appendChild(r),this.actionbarEl().appendChild(i),n&&(this.actions.push(t),this.syncActions())}},{key:"getActions",value:function(){return this.actions}},{key:"selection",value:function(){return this.doc.getSelection()}},{key:"exec",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.doc.execCommand(t,!1,e)}},{key:"actionbarEl",value:function(){return this.actionbar}},{key:"insertHTML",value:function(t){var e=void 0,n=this.doc,i=n.getSelection();if(i&&i.rangeCount){var r=n.createElement("div"),o=i.getRangeAt(0);o.deleteContents(),r.innerHTML=t,Array.prototype.slice.call(r.childNodes).forEach(function(t){o.insertNode(t),e=t}),i.removeAllRanges(),i.addRange(o),this.el.focus()}}}]),t}();e.default=c},function(t,e,n){"use strict";t.exports={stylePrefix:"rte-",adjustToolbar:1,actions:["bold","italic","underline","strikethrough","link"]}},function(t,e,n){"use strict";t.exports={stylePrefix:"sm-",sectors:[],textNoElement:"Select an element before using Style Manager",hideNotStylable:!0,highlightChanged:!0,highlightComputed:!0,showComputed:!0,clearProperties:0,avoidComputed:["width","height"]}},function(t,e,n){"use strict";var i=n(118);t.exports=n(0).Collection.extend({model:i})},function(t,e,n){"use strict";var i=n(1),r=n(0),o=n(11),s=n(127);t.exports=r.Model.extend({defaults:{id:"",name:"",open:!0,buildProps:"",extendBuilded:1,properties:[]},initialize:function(t){var e=t||{},n=[],i=this.buildProperties(e.buildProps);!this.get("id")&&this.set("id",this.get("name")),n=i?this.extendProperties(i):this.get("properties");var r=new o(n);r.sector=this,this.set("properties",r)},extendProperties:function(t,e,n){for(var r=t.length,o=e||this.get("properties"),s=this.get("extendBuilded"),a=[],l=0,c=o.length;l')}else{o.push(t("
").append(t('').attr("title",r.noColorSelectedText)).html())}}return"
"+o.join("")+"
"}function r(){for(var t=0;t1&&(delete window.localStorage[B],t.each(e,function(t,e){p(e)}))}catch(t){}try{vt=window.localStorage[B].split(";")}catch(t){}}}function p(e){if(j){var n=st(e).toRgbString();if(!gt[n]&&-1===t.inArray(n,vt))for(vt.push(n);vt.length>mt;)vt.shift();if(B&&window.localStorage)try{window.localStorage[B]=vt.join(";")}catch(t){}}}function g(){var t=[];if(V.showPalette)for(var e=0;eMath.abs(e-r);bt=o?"x":"y"}}else bt=null;var s=!bt||"x"===bt,a=!bt||"y"===bt;s&&(ut=parseFloat(t/tt)),a&&(ht=parseFloat((et-e)/et)),Yt=!1,V.showAlpha||(dt=1),O()},y,b),Ut?(M(Ut),L(),Kt=V.preferredFormat||st(Ut).format,p(Ut)):L(),H&&C();var i=G?"mousedown.spectrum":"click.spectrum touchstart.spectrum";Dt.delegate(".sp-thumb-el",i,e),It.delegate(".sp-thumb-el:nth-child(1)",i,{ignore:!0},e)}();var Jt={show:C,hide:T,toggle:w,reflow:I,option:F,enable:z,disable:$,offset:R,set:function(t){M(t),D()},get:P,destroy:_,container:kt};return Jt.id=K.push(Jt)-1,Jt}function a(e,n){var i=e.outerWidth(),r=e.outerHeight(),o=n.outerHeight(),s=e[0].ownerDocument,a=s.documentElement,l=a.clientWidth,c=a.clientHeight,u=t(s).scrollLeft(),h=t(s).scrollTop(),d=l+u,f=c+h,p=n.offset();return p.top+=o,p.left-=Math.min(p.left,p.left+i>d&&d>i?Math.abs(p.left+i-d):0),p.top-=Math.min(p.top,p.top+r>f&&f>r?Math.abs(r+o-0):0),p}function l(){}function c(t){t.stopPropagation()}function u(t,e){var n=Array.prototype.slice,i=n.call(arguments,2);return function(){return t.apply(e,i.concat(n.call(arguments)))}}function h(e,n,i,r){function o(t){t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault(),t.returnValue=!1}function s(t){if(u){if(G&&c.documentMode<9&&!t.button)return l();var i=t.originalEvent&&t.originalEvent.touches&&t.originalEvent.touches[0],r=i&&i.pageX||t.pageX,s=i&&i.pageY||t.pageY,a=Math.max(0,Math.min(r-h.left,f)),g=Math.max(0,Math.min(s-h.top,d));p&&o(t),n.apply(e,[a,g,t])}}function a(n){(n.which?3==n.which:2==n.button)||u||!1!==i.apply(e,arguments)&&(u=!0,d=t(e).height(),f=t(e).width(),h=t(e).offset(),t(c).bind(g),t(c.body).addClass("sp-dragging"),s(n),o(n))}function l(){u&&(t(c).unbind(g),t(c.body).removeClass("sp-dragging"),setTimeout(function(){r.apply(e,arguments)},0)),u=!1}n=n||function(){},i=i||function(){},r=r||function(){};var c=document,u=!1,h={},d=0,f=0,p="ontouchstart"in window,g={};g.selectstart=o,g.dragstart=o,g["touchmove mousemove"]=s,g["touchend mouseup"]=l,t(e).bind("touchstart mousedown",a)}function d(t,e,n){var i;return function(){var r=this,o=arguments,s=function(){i=null,t.apply(r,o)};n&&clearTimeout(i),!n&&i||(i=setTimeout(s,e))}}function f(){return t.fn.spectrum.inputTypeColorSupport()}function p(t){var n={r:0,g:0,b:0},i=1,r=!1,o=!1;return"string"==typeof t&&(t=U(t)),"object"==(void 0===t?"undefined":e(t))&&(t.hasOwnProperty("r")&&t.hasOwnProperty("g")&&t.hasOwnProperty("b")?(n=g(t.r,t.g,t.b),r=!0,o="%"===String(t.r).substr(-1)?"prgb":"rgb"):t.hasOwnProperty("h")&&t.hasOwnProperty("s")&&t.hasOwnProperty("v")?(t.s=j(t.s),t.v=j(t.v),n=b(t.h,t.s,t.v),r=!0,o="hsv"):t.hasOwnProperty("h")&&t.hasOwnProperty("s")&&t.hasOwnProperty("l")&&(t.s=j(t.s),t.l=j(t.l),n=m(t.h,t.s,t.l),r=!0,o="hsl"),t.hasOwnProperty("a")&&(i=t.a)),i=_(i),{ok:r,format:t.format||o,r:it(255,rt(n.r,0)),g:it(255,rt(n.g,0)),b:it(255,rt(n.b,0)),a:i}}function g(t,e,n){return{r:255*F(t,255),g:255*F(e,255),b:255*F(n,255)}}function v(t,e,n){t=F(t,255),e=F(e,255),n=F(n,255);var i,r,o=rt(t,e,n),s=it(t,e,n),a=(o+s)/2;if(o==s)i=r=0;else{var l=o-s;switch(r=a>.5?l/(2-o-s):l/(o+s),o){case t:i=(e-n)/l+(e1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t}var r,o,s;if(t=F(t,360),e=F(e,100),n=F(n,100),0===e)r=o=s=n;else{var a=n<.5?n*(1+e):n+e-n*e,l=2*n-a;r=i(l,a,t+1/3),o=i(l,a,t),s=i(l,a,t-1/3)}return{r:255*r,g:255*o,b:255*s}}function y(t,e,n){t=F(t,255),e=F(e,255),n=F(n,255);var i,r,o=rt(t,e,n),s=it(t,e,n),a=o,l=o-s;if(r=0===o?0:l/o,o==s)i=0;else{switch(o){case t:i=(e-n)/l+(e>1)+720)%360;--e;)i.h=(i.h+r)%360,o.push(st(i));return o}function I(t,e){e=e||6;for(var n=st(t).toHsv(),i=n.h,r=n.s,o=n.v,s=[],a=1/e;e--;)s.push(st({h:i,s:r,v:o})),o=(o+a)%1;return s}function _(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function F(t,e){R(t)&&(t="100%");var n=V(t);return t=it(e,rt(0,parseFloat(t))),n&&(t=parseInt(t*e,10)/100),et.abs(t-e)<1e-6?1:t%e/parseFloat(e)}function z(t){return it(1,rt(0,t))}function $(t){return parseInt(t,16)}function R(t){return"string"==typeof t&&-1!=t.indexOf(".")&&1===parseFloat(t)}function V(t){return"string"==typeof t&&-1!=t.indexOf("%")}function H(t){return 1==t.length?"0"+t:""+t}function j(t){return t<=1&&(t=100*t+"%"),t}function B(t){return Math.round(255*parseFloat(t)).toString(16)}function W(t){return $(t)/255}function U(t){t=t.replace(Z,"").replace(Q,"").toLowerCase();var e=!1;if(at[t])t=at[t],e=!0;else if("transparent"==t)return{r:0,g:0,b:0,a:0,format:"name"};var n;return(n=ct.rgb.exec(t))?{r:n[1],g:n[2],b:n[3]}:(n=ct.rgba.exec(t))?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=ct.hsl.exec(t))?{h:n[1],s:n[2],l:n[3]}:(n=ct.hsla.exec(t))?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=ct.hsv.exec(t))?{h:n[1],s:n[2],v:n[3]}:(n=ct.hsva.exec(t))?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=ct.hex8.exec(t))?{a:W(n[1]),r:$(n[2]),g:$(n[3]),b:$(n[4]),format:e?"name":"hex8"}:(n=ct.hex6.exec(t))?{r:$(n[1]),g:$(n[2]),b:$(n[3]),format:e?"name":"hex"}:!!(n=ct.hex3.exec(t))&&{r:$(n[1]+""+n[1]),g:$(n[2]+""+n[2]),b:$(n[3]+""+n[3]),format:e?"name":"hex"}}var q={beforeShow:l,move:l,change:l,show:l,hide:l,color:!1,flat:!1,showInput:!1,allowEmpty:!1,showButtons:!0,clickoutFiresChange:!0,showInitial:!1,showPalette:!1,showPaletteOnly:!1,hideAfterPaletteSelect:!1,togglePaletteOnly:!1,showSelectionPalette:!0,localStorageKey:!1,appendTo:"body",maxSelectionSize:7,cancelText:"cancel",chooseText:"choose",togglePaletteMoreText:"more",togglePaletteLessText:"less",clearText:"Clear Color Selection",noColorSelectedText:"No Color Selected",preferredFormat:!1,className:"",containerClassName:"",replacerClassName:"",showAlpha:!1,theme:"sp-light",palette:[["#ffffff","#000000","#ff0000","#ff8000","#ffff00","#008000","#0000ff","#4b0082","#9400d3"]],selectionPalette:[],disabled:!1,offset:null},K=[],G=!!/msie/i.exec(window.navigator.userAgent),Y=function(){function t(t,e){return!!~(""+t).indexOf(e)}var e=document.createElement("div"),n=e.style;return n.cssText="background-color:rgba(0,0,0,.5)",t(n.backgroundColor,"rgba")||t(n.backgroundColor,"hsla")}(),X=["
","
","
","
"].join(""),J=function(){var t="";if(G)for(var e=1;e<=6;e++)t+="
";return["
","
","
","
","","
","
","
","
","
","
","
","
","
","
","
","
","
","
","
","
","
",t,"
","
","
","
","
","","
","
","
","","","
","
","
"].join("")}();t.fn.spectrum=function(e,n){if("string"==typeof e){var i=this,r=Array.prototype.slice.call(arguments,1);return this.each(function(){var n=K[t(this).data("spectrum.id")];if(n){var o=n[e];if(!o)throw new Error("Spectrum: no such method: '"+e+"'");"get"==e?i=n.get():"container"==e?i=n.container:"option"==e?i=n.option.apply(n,r):"destroy"==e?(n.destroy(),t(this).removeData("spectrum.id")):o.apply(n,r)}}),i}return this.spectrum("destroy").each(function(){var n=t.extend({},e,t(this).data()),i=s(this,n);t(this).data("spectrum.id",i.id)})},t.fn.spectrum.load=!0,t.fn.spectrum.loadOpts={},t.fn.spectrum.draggable=h,t.fn.spectrum.defaults=q,t.fn.spectrum.inputTypeColorSupport=function e(){if(void 0===e._cachedResult){var n=t("")[0];e._cachedResult="color"===n.type&&""!==n.value}return e._cachedResult},t.spectrum={},t.spectrum.localization={},t.spectrum.palettes={},t.fn.spectrum.processNativeColorInputs=function(){var e=t("input[type=color]");e.length&&!f()&&e.spectrum({preferredFormat:"hex6"})};var Z=/^[\s,#]+/,Q=/\s+$/,tt=0,et=Math,nt=et.round,it=et.min,rt=et.max,ot=et.random,st=function t(e,n){if(e=e||"",n=n||{},e instanceof t)return e;if(!(this instanceof t))return new t(e,n);var i=p(e);this._originalInput=e,this._r=i.r,this._g=i.g,this._b=i.b,this._a=i.a,this._roundA=nt(100*this._a)/100,this._format=n.format||i.format,this._gradientType=n.gradientType,this._r<1&&(this._r=nt(this._r)),this._g<1&&(this._g=nt(this._g)),this._b<1&&(this._b=nt(this._b)),this._ok=i.ok,this._tc_id=tt++};st.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},setAlpha:function(t){return this._a=_(t),this._roundA=nt(100*this._a)/100,this},toHsv:function(){var t=y(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=y(this._r,this._g,this._b),e=nt(360*t.h),n=nt(100*t.s),i=nt(100*t.v);return 1==this._a?"hsv("+e+", "+n+"%, "+i+"%)":"hsva("+e+", "+n+"%, "+i+"%, "+this._roundA+")"},toHsl:function(){var t=v(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=v(this._r,this._g,this._b),e=nt(360*t.h),n=nt(100*t.s),i=nt(100*t.l);return 1==this._a?"hsl("+e+", "+n+"%, "+i+"%)":"hsla("+e+", "+n+"%, "+i+"%, "+this._roundA+")"},toHex:function(t){return x(this._r,this._g,this._b,t)},toHexString:function(t){return"#"+this.toHex(t)},toHex8:function(){return w(this._r,this._g,this._b,this._a)},toHex8String:function(){return"#"+this.toHex8()},toRgb:function(){return{r:nt(this._r),g:nt(this._g),b:nt(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+nt(this._r)+", "+nt(this._g)+", "+nt(this._b)+")":"rgba("+nt(this._r)+", "+nt(this._g)+", "+nt(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:nt(100*F(this._r,255))+"%",g:nt(100*F(this._g,255))+"%",b:nt(100*F(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+nt(100*F(this._r,255))+"%, "+nt(100*F(this._g,255))+"%, "+nt(100*F(this._b,255))+"%)":"rgba("+nt(100*F(this._r,255))+"%, "+nt(100*F(this._g,255))+"%, "+nt(100*F(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(lt[x(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var e="#"+w(this._r,this._g,this._b,this._a),n=e,i=this._gradientType?"GradientType = 1, ":"";if(t){n=st(t).toHex8String()}return"progid:DXImageTransform.Microsoft.gradient("+i+"startColorstr="+e+",endColorstr="+n+")"},toString:function(t){var e=!!t;t=t||this._format;var n=!1,i=this._a<1&&this._a>=0;return e||!i||"hex"!==t&&"hex6"!==t&&"hex3"!==t&&"name"!==t?("rgb"===t&&(n=this.toRgbString()),"prgb"===t&&(n=this.toPercentageRgbString()),"hex"!==t&&"hex6"!==t||(n=this.toHexString()),"hex3"===t&&(n=this.toHexString(!0)),"hex8"===t&&(n=this.toHex8String()),"name"===t&&(n=this.toName()),"hsl"===t&&(n=this.toHslString()),"hsv"===t&&(n=this.toHsvString()),n||this.toHexString()):"name"===t&&0===this._a?this.toName():this.toRgbString()},_applyModification:function(t,e){var n=t.apply(null,[this].concat([].slice.call(e)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(T,arguments)},brighten:function(){return this._applyModification(E,arguments)},darken:function(){return this._applyModification(M,arguments)},desaturate:function(){return this._applyModification(C,arguments)},saturate:function(){return this._applyModification(k,arguments)},greyscale:function(){return this._applyModification(S,arguments)},spin:function(){return this._applyModification(P,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(D,arguments)},complement:function(){return this._applyCombination(A,arguments)},monochromatic:function(){return this._applyCombination(I,arguments)},splitcomplement:function(){return this._applyCombination(N,arguments)},triad:function(){return this._applyCombination(O,arguments)},tetrad:function(){return this._applyCombination(L,arguments)}},st.fromRatio=function(t,n){if("object"==(void 0===t?"undefined":e(t))){var i={};for(var r in t)t.hasOwnProperty(r)&&(i[r]="a"===r?t[r]:j(t[r]));t=i}return st(t,n)},st.equals=function(t,e){return!(!t||!e)&&st(t).toRgbString()==st(e).toRgbString()},st.random=function(){return st.fromRatio({r:ot(),g:ot(),b:ot()})},st.mix=function(t,e,n){n=0===n?0:n||50;var i,r=st(t).toRgb(),o=st(e).toRgb(),s=n/100,a=2*s-1,l=o.a-r.a;i=a*l==-1?a:(a+l)/(1+a*l),i=(i+1)/2;var c=1-i,u={r:o.r*i+r.r*c,g:o.g*i+r.g*c,b:o.b*i+r.b*c,a:o.a*s+r.a*(1-s)};return st(u)},st.readability=function(t,e){var n=st(t),i=st(e),r=n.toRgb(),o=i.toRgb(),s=n.getBrightness(),a=i.getBrightness(),l=Math.max(r.r,o.r)-Math.min(r.r,o.r)+Math.max(r.g,o.g)-Math.min(r.g,o.g)+Math.max(r.b,o.b)-Math.min(r.b,o.b);return{brightness:Math.abs(s-a),color:l}},st.isReadable=function(t,e){var n=st.readability(t,e);return n.brightness>125&&n.color>500},st.mostReadable=function(t,e){for(var n=null,i=0,r=!1,o=0;o125&&s.color>500,l=s.brightness/125*3+s.color/500;(a&&!r||a&&r&&l>i||!a&&!r&&l>i)&&(r=a,i=l,n=st(e[o]))}return n};var at=st.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},lt=st.hexNames=function(t){var e={};for(var n in t)t.hasOwnProperty(n)&&(e[t[n]]=n);return e}(at),ct=function(){var t="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",e="[\\s|\\(]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")\\s*\\)?",n="[\\s|\\(]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")\\s*\\)?";return{rgb:new RegExp("rgb"+e),rgba:new RegExp("rgba"+n),hsl:new RegExp("hsl"+e),hsla:new RegExp("hsla"+n),hsv:new RegExp("hsv"+e),hsva:new RegExp("hsva"+n),hex3:/^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex8:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();window.tinycolor=st,t(function(){t.fn.spectrum.load&&t.fn.spectrum.processNativeColorInputs()})}(t.$)}()}).call(e,n(0))},function(t,e,n){"use strict";var i=n(0),r=n(124);t.exports=i.View.extend({initialize:function(t){this.config=t.config||{},this.stackModel=t.stackModel,this.preview=t.preview,this.pfx=this.config.stylePrefix||"",this.ppfx=this.config.pStylePrefix||"",this.propsConfig=t.propsConfig;var e=this.pfx,n=this.ppfx,i=this.collection;this.className=e+"layers "+n+"field",this.listenTo(i,"add",this.addTo),this.listenTo(i,"deselectAll",this.deselectAll),this.listenTo(i,"reset",this.render);var r=this.config.em||"",o=r?r.get("Utils"):"";this.sorter=o?new o.Sorter({container:this.el,ignoreViewChildren:1,containerSel:"."+e+"layers",itemSel:"."+e+"layer",pfx:this.config.pStylePrefix}):"",i.view=this,this.$el.data("model",i),this.$el.data("collection",i)},addTo:function(t){var e=this.collection.indexOf(t);this.addToCollection(t,null,e)},addToCollection:function(t,e,n){var i=e||null,o=this.stackModel,s=this.config,a=this.sorter,l=this.propsConfig;void 0!==this.preview&&t.set("preview",this.preview);var c=new r({model:t,config:s,sorter:a,stackModel:o,propsConfig:l}),u=c.render().el;if(i)i.appendChild(u);else if(void 0!==n){var h="before";this.$el.children().length==n&&(n--,h="after"),n<0?this.$el.append(u):this.$el.children().eq(n)[h](u)}else this.$el.append(u);return u},deselectAll:function(){this.$el.find("."+this.pfx+"layer").removeClass(this.pfx+"active")},render:function(){var t=document.createDocumentFragment();return this.$el.empty(),this.collection.each(function(e){this.addToCollection(e,t)},this),this.$el.append(t),this.$el.attr("class",this.className),this.sorter&&(this.sorter.plh=null),this}})},function(t,e,n){"use strict";(function(e){t.exports=e.View.extend({events:{click:"active","click [data-close-layer]":"remove","mousedown [data-move-layer]":"initSorter"},template:function(t){var e=this.pfx;return'\n
\n \n
\n
Layer '+t.get("index")+'
\n
\n \t
\n
\n
\n ⨯\n
\n
\n
\n '},initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.model;this.stackModel=t.stackModel||{},this.config=t.config||{},this.pfx=this.config.stylePrefix||"",this.sorter=t.sorter||null,this.propsConfig=t.propsConfig||{},this.customPreview=t.onPreview,this.listenTo(e,"destroy remove",this.remove),this.listenTo(e,"change:active",this.updateVisibility),this.listenTo(e.get("properties"),"change",this.updatePreview),e.get("preview")||this.$el.addClass(this.pfx+"no-preview"),e.view=this,e.set({droppable:0,draggable:1}),this.$el.data("model",e)},initSorter:function(t){this.sorter&&this.sorter.startSort(this.el)},remove:function(t){t&&t.stopPropagation&&t.stopPropagation();var n=this.model,i=n.collection,r=this.stackModel;e.View.prototype.remove.apply(this,arguments),i.contains(n)&&i.remove(n),r&&r.set&&(r.set({stackIndex:null},{silent:!0}),r.trigger("updateValue"))},onPreview:function(t){var e=t.split(" "),n=[];return this.model.get("properties").each(function(t,i){var r=e[i]||"";if(r&&"integer"==t.get("type")){var o=parseInt(r,10),s=r.replace(o,"");o=isNaN(o)?0:o,o=o>3?3:o,o=o<-3?-3:o,r=o+s}n.push(r)}),n.join(" ")},updatePreview:function(){var t=this.stackModel,e=this.customPreview,n=this.getPreviewEl(),i=this.model.getFullValue(),r=e?e(i):this.onPreview(i);r&&t&&n&&(n.style[t.get("property")]=r)},getPropertiesWrapper:function(){return this.propsWrapEl||(this.propsWrapEl=this.el.querySelector("[data-properties]")),this.propsWrapEl},getPreviewEl:function(){return this.previewEl||(this.previewEl=this.el.querySelector("[data-preview]")),this.previewEl},active:function(){var t=this.model,e=t.collection;e.active(e.indexOf(t))},updateVisibility:function(){var t=this.pfx,e=this.getPropertiesWrapper(),n=this.model.get("active");e.style.display=n?"":"none",this.$el[n?"addClass":"removeClass"](t+"active")},render:function(){var t=n(13),e=this.propsConfig,i=this.pfx+"layer",r=this.model,o=this.el,s=new t({collection:r.get("properties"),config:this.config,target:e.target,customValue:e.customValue,propTarget:e.propTarget,onChange:e.onChange}).render().el;return o.innerHTML=this.template(r),o.className=i,this.getPropertiesWrapper().appendChild(s),this.updateVisibility(),this.updatePreview(),this}})}).call(e,n(0))},function(t,e,n){"use strict";var i=Object.assign||function(t){for(var e=1;e\n \n
\n '},getSliderEl:function(){return this.slider||(this.slider=this.el.querySelector("input[type=range]")),this.slider},inputValueChanged:function(){var t=this.model,e=t.get("step");this.getInputEl().value=this.getSliderEl().value;var n=this.getInputValue()-e;t.set("value",n,{avoidStore:1}).set("value",n+e),this.elementUpdated()},inputValueChangedSoft:function(){this.getInputEl().value=this.getSliderEl().value,this.model.set("value",this.getInputValue(),{avoidStore:1}),this.elementUpdated()},setValue:function(t){this.getSliderEl().value=t,this.inputInst.setValue(t,{silent:1})},onRender:function(){i.prototype.onRender.apply(this,arguments),this.model.get("showInput")||(this.inputInst.el.style.display="none")}})},function(t,e,n){"use strict";n(0);t.exports=function(){return{build:function(t){var e=[];"string"==typeof t&&(t=[t]);for(var n=0,i=t.length;n0&&void 0!==arguments[0]?arguments[0]:{},n=t.get("SelectorManager"),r=n.add("hc-state"),o=i.get([r]);if(o){var s=i.getAll();s.remove(o),s.add(o)}else o=i.add([r]);o.set("important",1),o.setStyle(e),l.helper=o};if(r){var p=i.getIdRule(o,u);e=p||i.setIdRule(o,{},u)}if(a.length){var g=a.getStyleable(),v=i.get(g,c,d);return!v&&g.length&&(n.stop(),v=i.add(g,c,d),v.setStyle(e.getStyle()),e.setStyle({}),n.start()),v?(c&&f(v.getStyle()),l.model=v,void l.trigger("update")):(l.model=e,void l.trigger("update"))}if(c){var m=i.getIdRule(o,u);c&&f(m&&m.getStyle())}l.model=e,l.trigger("update")}},addToCollection:function(t,e){var n=e||null,i=new o({model:t,id:this.pfx+t.get("name").replace(" ","_").toLowerCase(),name:t.get("name"),properties:t.get("properties"),target:this.target,propTarget:this.propTarget,config:this.config}),r=i.render().el;return n?n.appendChild(r):this.$el.append(r),r},render:function(){var t=document.createDocumentFragment();return this.$el.empty(),this.collection.each(function(e){this.addToCollection(e,t)},this),this.$el.attr("id",this.pfx+"sectors"),this.$el.append(t),this}})}).call(e,n(0))},function(t,e,n){"use strict";(function(e){var i=n(0),r=n(13);t.exports=i.View.extend({template:e.template('\n
\n \n <%= label %>\n
'),events:{"click [data-sector-title]":"toggle"},initialize:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix||"",this.target=t.target||{},this.propTarget=t.propTarget||{},this.caretR="fa-caret-right",this.caretD="fa-caret-down";var e=this.model;this.listenTo(e,"change:open",this.updateOpen),this.listenTo(e,"updateVisibility",this.updateVisibility),this.listenTo(e,"destroy remove",this.remove)},updateVisibility:function(){var t;this.model.get("properties").each(function(e){e.get("visible")&&(t=1)}),this.el.style.display=t?"block":"none"},updateOpen:function(){this.model.get("open")?this.show():this.hide()},show:function(){this.$el.addClass(this.pfx+"open"),this.getPropertiesEl().style.display="",this.$caret.removeClass(this.caretR).addClass(this.caretD)},hide:function(){this.$el.removeClass(this.pfx+"open"),this.getPropertiesEl().style.display="none",this.$caret.removeClass(this.caretD).addClass(this.caretR)},getPropertiesEl:function(){return this.$el.find("."+this.pfx+"properties").get(0)},toggle:function(t){var e=this.model.get("open")?0:1;this.model.set("open",e)},render:function(){return this.$el.html(this.template({pfx:this.pfx,label:this.model.get("name")})),this.$caret=this.$el.find("#"+this.pfx+"caret"),this.renderProperties(),this.$el.attr("class",this.pfx+"sector no-select"),this.updateOpen(),this},renderProperties:function(){var t=this.model.get("properties");if(t){var e=new r({collection:t,target:this.target,propTarget:this.propTarget,config:this.config});this.$el.append(e.render().el)}}})}).call(e,n(1))},function(t,e,n){"use strict";t.exports=function(){var t={},e=n(131),i=n(132),r=n(135),o=n(45),s=void 0,a=void 0,l=void 0;return{name:"AssetManager",storageKey:"assets",getConfig:function(){return t},init:function(n){var c=this;t=n||{};for(var u in e)u in t||(t[u]=e[u]);var h=t.pStylePrefix,d=t.em;h&&(t.stylePrefix=h+t.stylePrefix),s=new i([]);var f={collection:new i([]),globalCollection:s,config:t};return l=new o(f),f.fu=l,a=new r(f),s.listenTo(s,"add",function(t){c.getAllVisible().add(t),d&&d.trigger("asset:add",t)}),s.listenTo(s,"remove",function(t){c.getAllVisible().remove(t),d&&d.trigger("asset:remove",t)}),this},add:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return void 0===e.at&&(e.at=0),s.add(t,e)},get:function(t){return s.where({src:t})[0]},getAll:function(){return s},getAllVisible:function(){return a.collection},remove:function(t){var e=this.get(t);return this.getAll().remove(e),this},store:function(e){var n={},i=JSON.stringify(this.getAll().toJSON());return n[this.storageKey]=i,!e&&t.stm&&t.stm.store(n),n},load:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.storageKey,n=t[e]||[];if("string"==typeof n)try{n=JSON.parse(t[e])}catch(t){}return n&&n.length&&this.getAll().reset(n),n},getContainer:function(){return a.el},getAssetsEl:function(){return a.el.querySelector("[data-el=assets]")},render:function(t){var e=t||this.getAll().models;return a.rendered||a.render(),a.collection.reset(e),this.getContainer()},addType:function(t,e){this.getAll().addType(t,e)},getType:function(t){return this.getAll().getType(t)},getTypes:function(){return this.getAll().getTypes()},AssetsView:function(){return a},FileUploader:function(){return l},onLoad:function(){this.getAll().reset(t.assets)},postRender:function(e){t.dropzone&&l.initDropzone(e)},setTarget:function(t){a.collection.target=t},onSelect:function(t){a.collection.onSelect=t},onClick:function(e){t.onClick=e},onDblClick:function(e){t.onDblClick=e}}}},function(t,e,n){"use strict";t.exports={assets:[],noAssets:"",stylePrefix:"am-",upload:0,uploadName:"files",headers:{},params:{},autoAdd:1,uploadText:"Drop files here or click to upload",addBtnText:"Add image",uploadFile:"",handleAdd:"",dropzone:0,openAssetsOnDrop:1,dropzoneContent:"",modalTitle:"Select Image",inputPlaceholder:"http://path/to/the/image.jpg"}},function(t,e,n){"use strict";var i=n(32),r=function(t){return t&&t.__esModule?t:{default:t}}(i);t.exports=n(0).Collection.extend(r.default).extend({types:[{id:"image",model:n(133),view:n(43),isType:function(t){return"string"==typeof t?{type:"image",src:t}:t}}]})},function(t,e,n){"use strict";var i=Object.assign||function(t){for(var e=1;e\n
\n
\n
\n \n
\n \n
\n
\n \n
\n
\n
\n
\n '},initialize:function(t){this.options=t,this.config=t.config,this.pfx=this.config.stylePrefix||"",this.ppfx=this.config.pStylePrefix||"";var e=this.collection;this.listenTo(e,"reset",this.renderAssets),this.listenTo(e,"add",this.addToAsset),this.listenTo(e,"remove",this.removedAsset),this.listenTo(e,"deselectAll",this.deselectAll)},handleSubmit:function(t){t.preventDefault();var e=this.getAddInput(),n=e.value.trim(),i=this.config.handleAdd;n&&(e.value="",this.getAssetsEl().scrollTop=0,i?i(n):this.options.globalCollection.add(n,{at:0}))},getAssetsEl:function(){return this.el.querySelector("."+this.pfx+"assets")},getAddInput:function(){return this.inputUrl&&this.inputUrl.value||(this.inputUrl=this.el.querySelector("."+this.pfx+"add-asset input")),this.inputUrl},removedAsset:function(t){this.collection.length||this.toggleNoAssets()},addToAsset:function(t){1==this.collection.length&&this.toggleNoAssets(1),this.addAsset(t)},addAsset:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=e,i=this.collection,r=this.config,o=new t.typeView({model:t,collection:i,config:r}).render().el;if(n)n.appendChild(o);else{var s=this.getAssetsEl();s&&s.insertBefore(o,s.firstChild)}return o},toggleNoAssets:function(t){var e=this.$el.find("."+this.pfx+"assets");if(t)e.empty();else{var n=this.config.noAssets;n&&e.append(n)}},deselectAll:function(){var t=this.pfx;this.$el.find("."+t+"highlight").removeClass(t+"highlight")},renderAssets:function(){var t=this,e=document.createDocumentFragment(),n=this.$el.find("."+this.pfx+"assets");n.empty(),this.toggleNoAssets(this.collection.length),this.collection.each(function(n){return t.addAsset(n,e)}),n.append(e)},render:function(){var t=this.options.fu.render().el;return this.$el.empty(),this.$el.append(t).append(this.template(this)),this.el.className=this.ppfx+"asset-manager",this.renderAssets(),this.rendered=1,this}})}).call(e,n(0))},function(t,e,n){"use strict";var i=Object.assign||function(t){for(var e=1;e=0&&(n.css=o.em.getCss()),i.indexOf("styles")>=0&&(n.styles=JSON.stringify(t)),e||o.stm.store(n),n}},add:function(e,n,i,r){var s=n||"",l=i||"",c=r||{},u=this.get(e,s,l,c);return u||(c.state=s,c.mediaText=l,c.selectors="",u=new a(c,o),u.get("selectors").add(e),t.add(u),u)},get:function(e,n,i,r){var o=null;return t.each(function(t){o||t.compare(e,n,i,r)&&(o=t)}),o},getAll:function(){return t},clear:function(){return this.getAll().reset(),this},addCollection:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=[],r=t instanceof Array?t:[t],s=0,a=r.length;s1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=n.state||"",o=n.mediaText||r.getCurrentMedia(),s=r.get("SelectorManager"),a=s.add({name:t,type:h.TYPE_ID}),l=this.add(a,i,o);return l.setStyle(e,n),l},getIdRule:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.state||"",i=e.mediaText||r.getCurrentMedia(),o=r.get("SelectorManager").get(t,h.TYPE_ID);return o&&this.get(o,n,i)},setClassRule:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=n.state||"",o=n.mediaText||r.getCurrentMedia(),s=r.get("SelectorManager"),a=s.add({name:t,type:h.TYPE_CLASS}),l=this.add(a,i,o);return l.setStyle(e,n),l},getClassRule:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.state||"",i=e.mediaText||r.getCurrentMedia(),o=r.get("SelectorManager").get(t,h.TYPE_CLASS);return o&&this.get(o,n,i)},render:function(){return e.render().el}}}},function(t,e,n){"use strict";t.exports={stylePrefix:"css-",staticRules:"",rules:[]}},function(t,e,n){"use strict";var i=n(0),r=n(46);t.exports=i.Collection.extend({initialize:function(t,e){e&&e.sm&&(this.editor=e.sm),this.model=function(t,n){return!n.sm&&e&&e.sm&&(n.sm=e.sm),new r(t,n)}},add:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"string"==typeof t&&(t=this.editor.get("Parser").parseCss(t)),e.em=this.editor,i.Collection.prototype.add.apply(this,[t,e])}})},function(t,e,n){"use strict";var i=n(0),r=n(140);t.exports=i.View.extend({initialize:function(t){var e=t.config||{};this.config=e,this.em=e.em,this.pfx=e.stylePrefix||"",this.className=this.pfx+"rules";var n=this.collection;this.listenTo(n,"add",this.addTo),this.listenTo(n,"reset",this.render)},addTo:function(t){this.addToCollection(t)},addToCollection:function(t,e){var n=e||null,i=r,o=new i({model:t,config:this.config}),s=o.render().el;return n?n.appendChild(s):this.$el.append(s),s},render:function(){var t=this,e=this.$el,n=document.createDocumentFragment();return e.empty(),this.collection.each(function(e){return t.addToCollection(e,n)}),e.append(n),e.attr("class",this.className),this}})},function(t,e,n){"use strict";t.exports=n(0).View.extend({tagName:"style",initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.config=t.config||{};var e=this.model;this.listenTo(e,"change:style change:state change:mediaText",this.render),this.listenTo(e,"destroy remove",this.remove),this.listenTo(e.get("selectors"),"change",this.render)},render:function(){var t=this.model,e=t.get("important");return this.el.innerHTML=this.model.toCSS({important:e}),this}})},function(t,e,n){"use strict";var i=n(1);t.exports=function(){var t={},e=n(142),r=n(143),o=void 0;return{TraitsView:r,name:"TraitManager",getConfig:function(){return t},init:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t=n,(0,i.defaults)(t,e);var s=t.pStylePrefix;return s&&(t.stylePrefix=""+s+t.stylePrefix),o=new r({collection:[],editor:t.em,config:t}),this},getTraitsViewer:function(){return o},addType:function(t,e){var n=o.itemView;o.itemsView[t]=n.extend(e)},getType:function(t){return o.itemsView[t]}}}},function(t,e,n){"use strict";t.exports={stylePrefix:"trt-",labelContainer:"Component settings",labelPlhText:"eg. Text here",labelPlhHref:"eg. https://google.com",optionsTarget:[{value:"",name:"This window"},{value:"_blank",name:"New window"}]}},function(t,e,n){"use strict";var i=n(48),r=n(8),o=n(144),s=n(145),a=n(146),l=n(147);t.exports=i.extend({itemView:r,itemsView:{text:r,number:a,select:o,checkbox:s,color:l},initialize:function(t){this.config=t.config||{},this.em=t.editor,this.pfx=this.config.stylePrefix||"",this.className=this.pfx+"traits",this.listenTo(this.em,"change:selectedComponent",this.updatedCollection),this.updatedCollection()},updatedCollection:function(){this.el.className=this.className;var t=this.em.get("selectedComponent");t&&(this.collection=t.get("traits"),this.render())}})},function(t,e,n){"use strict";(function(e,i){var r=n(8),o=e.$;t.exports=r.extend({initialize:function(t){r.prototype.initialize.apply(this,arguments);var e=this.ppfx;this.tmpl='
'},getInputEl:function(){if(!this.$input){var t=this.model,e=t.get("options")||[],n="",this.input=n,this.$input=o(this.input);var r=this.target,s=t.get("name"),a=t.get("value");if(t.get("changeProp"))a=a||r.get(s);else{a=r.get("attributes")[s]}a&&this.$input.val(a)}return this.$input.get(0)}})}).call(e,n(0),n(1))},function(t,e,n){"use strict";var i=n(8);t.exports=i.extend({initialize:function(t){i.prototype.initialize.apply(this,arguments);var e=this.ppfx+"chk-icon";this.tmpl='
'},onChange:function(){this.model.set("value",this.getInputEl().checked)},getInputEl:function(){var t;this.$input||(t=1);for(var e=arguments.length,n=Array(e),r=0;r2&&void 0!==arguments[2]?arguments[2]:{},r=t.components(),s=o.get("UndoManager"),a=o.handleUpdates.bind(o),l=this.handleChanges.bind(this),c=this.handleRemoves.bind(this);s&&s.add(t),s&&r&&s.add(r);[[t,"change:style change:content change:attributes change:src",a],[r,"add",l],[r,"remove",c],[t.get("classes"),"add remove",a]].forEach(function(t){o.stopListening(t[0],t[1],t[2]),o.listenTo(t[0],t[1],t[2])}),!i.avoidStore&&a("","",i),r.each(function(t){return n.handleChanges(t,e,i)})},handleRemoves:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!n.avoidStore&&o.handleUpdates(t,e,n)},load:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e="";if(!t&&r.stm&&(t=r.em.getCacheLoad()),t.components)try{e=JSON.parse(t.components)}catch(t){}else t.html&&(e=t.html);var n=e&&e.constructor===Object;return(e&&e.length||n)&&(this.clear(),this.getComponents().reset(),n?this.getWrapper().set(e).initComponents().initClasses().loadTraits():this.getComponents().add(e)),e},store:function(t){if(r.stm){var e={},n=this.storageKey();if(n.indexOf("html")>=0&&(e.html=r.em.getHtml()),n.indexOf("components")>=0){var i=r.storeWrapper?this.getWrapper():this.getComponents();e.components=JSON.stringify(i)}return t||r.stm.store(e),e}},getComponent:function(){return t},getWrapper:function(){return this.getComponent()},getComponents:function(){return this.getWrapper().get("components")},addComponent:function(t){return this.getComponents().add(t)},render:function(){return e.render().el},clear:function(){for(var t=this.getComponents(),e=0,n=t.length;e1&&void 0!==arguments[1]?arguments[1]:{};this.em=e.em||""},setTarget:function(t){this.target=t},add:function(t,e){var n=this.em;if((0,i.isString)(t)||(0,i.isArray)(t)){var o=n&&n.get&&n.get("TraitManager"),a=o&&o.getConfig(),l=s(a);(0,i.isString)(t)&&(t=[t]);for(var c=0,u=t.length;c1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={value:t};this.set(r,i({},n,{avoidStore:1})),e&&(this.set("value","",n),this.set(r,n))},getInitValue:function(){var t=this.target,e=this.get("name"),n=void 0;if(t){var i=t.get("attributes");n=this.get("changeProp")?t.get(e):i[e]}return n||this.get("value")||this.get("default")}})},function(t,e,n){"use strict";t.exports=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{build:function(e){var n=[];"string"==typeof e&&(e=[e]);for(var i=0;is.top+s.height?s.top+s.height:g;var v={top:g,left:p,elementTop:s.top,elementLeft:s.left,elementWidth:s.width,elementHeight:s.height,targetWidth:t.offsetWidth,targetHeight:t.offsetHeight,canvasTop:o.top,canvasLeft:o.left};return h&&r.em&&r.em.trigger(h,v),v},getMouseRelativePos:function(t,e){var n=e||{},i=0,r=0,o=n.subWinOffset,s=t.target.ownerDocument,a=s.defaultView||s.parentWindow,l=a.frameElement,c=o?a.pageYOffset:0,u=o?a.pageXOffset:0;if(l){var h=l.getBoundingClientRect();i=h.top||0,r=h.left||0}return{y:t.clientY+i-c,x:t.clientX+r-u}},getMouseRelativeCanvas:function(t,e){var n=this.getFrameEl(),i=this.getBody(),r=n.offsetTop||0,o=n.offsetLeft||0,s=i.scrollTop||0,a=i.scrollLeft||0;return{y:t.clientY+r+s,x:t.clientX+o+a}},isInputFocused:function(){return"BODY"!==this.getFrameEl().contentDocument.activeElement.tagName},startAutoscroll:function(){var t=this;this.dragging=1;var n=this.getScrollListeners();e=l.getFrameOffset(1),setTimeout(function(){(0,i.on)(n,"mousemove",t.autoscroll),(0,i.on)(n,"mouseup",t.stopAutoscroll)},0)},autoscroll:function(t){if(t.preventDefault(),this.dragging){var n=this.getFrameEl().contentWindow,i=n.document.body.scrollTop,r=i,o=t.clientY,s=e.height-50;o<50&&(r-=50-o),o>s&&(r+=o-s),n.scrollTo(0,r)}},stopAutoscroll:function(){this.dragging=0;var t=this.getScrollListeners();(0,i.off)(t,"mousemove",this.autoscroll),(0,i.off)(t,"mouseup",this.stopAutoscroll)},getScrollListeners:function(){return[this.getFrameEl().contentWindow,this.getElement()]},postRender:function(){(0,i.hasDnd)(r.em)&&(this.droppable=new o.default(r.em))},getFrameWrapperEl:function(){return l.frame.getWrapper()}}}},function(t,e,n){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n";this.sorter.setDropContent(o),this.sorter.startSort(),e.trigger("canvas:dragenter",n,o)}}},{key:"handleDragOver",value:function(t){t.preventDefault(),this.em.trigger("canvas:dragover",t)}},{key:"handleDrop",value:function(t){t.preventDefault();var e=t.dataTransfer,n=this.getContentByData(e).content;t.target.style.border="",n?this.sorter.setDropContent(n):this.sorter.moved=0,this.endDrop(0,t)}},{key:"getContentByData",value:function(t){var e=this.em,n=t.types,i=t.files,r=t.getData("text");if(i.length){r=[];for(var o=0;o=0)r=t.getData("text/html").replace(/<\/?meta[^>]*>/g,"");else if(n.indexOf("text/uri-list")>=0)r={type:"link",attributes:{href:r},content:r};else if(n.indexOf("text/json")>=0){var l=t.getData("text/json");l&&(r=JSON.parse(l))}var c={content:r};return e.trigger("canvas:dragdata",t,c),c}}]),t}();e.default=a},function(t,e,n){"use strict";t.exports={stylePrefix:"cv-",rulers:!1,scripts:[],styles:[],customBadgeLabel:""}},function(t,e,n){"use strict";var i=n(0),r=n(180);t.exports=i.Model.extend({defaults:{frame:"",wrapper:"",rulers:!1},initialize:function(t){var e=this.conf||{};this.set("frame",new r(e.frame))}})},function(t,e,n){"use strict";var i=n(0);t.exports=i.Model.extend({defaults:{wrapper:"",width:"",height:"",attributes:{}}})},function(t,e,n){"use strict";(function(e,i){var r=n(182),o=e.$;t.exports=e.View.extend({initialize:function(t){i.bindAll(this,"renderBody","onFrameScroll","clearOff"),window.onscroll=this.clearOff,this.config=t.config||{},this.em=this.config.em||{},this.ppfx=this.config.pStylePrefix||"",this.className=this.config.stylePrefix+"canvas",this.listenTo(this.em,"change:canvasOffset",this.clearOff),this.frame=new r({model:this.model.get("frame"),config:this.config})},isElInViewport:function(t){var e=t.getBoundingClientRect(),n=this.getFrameOffset(1),i=e.top,r=e.left;return i>=0&&r>=0&&i<=n.height&&r<=n.width},onFrameScroll:function(){var t=this.frame.el.contentDocument.body;this.toolsEl.style.top="-"+t.scrollTop+"px",this.toolsEl.style.left="-"+t.scrollLeft+"px",this.em.trigger("canvasScroll")},renderScripts:function(){var t=this.frame,e=this;t.el.onload=function(){function n(i){if(i.length>0){var r=document.createElement("script");r.type="text/javascript",r.src=i.shift(),r.onerror=r.onload=n.bind(null,i),t.el.contentDocument.head.appendChild(r)}else e.renderBody()}var i=e.config.scripts.slice(0);n(i)}},renderBody:function(){var t=this.model.get("frame").get("wrapper"),e=this.config.em;if(t){var n=this.ppfx,i=o(this.frame.el.contentWindow.document.body),r=e.get("CssComposer"),s=e.get("Config"),a=this.config,l=s.protectedCss,c="";a.styles.forEach(function(t){c+=''});var u="\n \n * {\n box-sizing: border-box;\n }\n html, body, #wrapper {\n min-height: 100%;\n }\n body {\n margin: 0;\n height: 100%;\n background-color: #fff\n }\n #wrapper {\n overflow: auto;\n overflow-x: hidden;\n }\n \n\n ."+n+"dashed *[data-highlightable] {\n outline: 1px dashed rgba(170,170,170,0.7);\n outline-offset: -3px\n }\n\n ."+n+"comp-selected {\n outline: 3px solid #3b97e3 !important;\n }\n\n ."+n+"comp-selected-parent {\n outline: 2px solid #ffca6f !important\n }\n\n ."+n+"no-select {\n user-select: none;\n -webkit-user-select:none;\n -moz-user-select: none;\n }\n\n ."+n+"freezed {\n opacity: 0.5;\n pointer-events: none;\n }\n\n ."+n+"no-pointer {\n pointer-events: none;\n }\n\n ."+n+"plh-image {\n background: #f5f5f5;\n border: none;\n height: 50px;\n width: 50px;\n display: block;\n outline: 3px solid #ffca6f;\n cursor: pointer;\n outline-offset: -2px\n }\n\n ."+n+"grabbing {\n cursor: grabbing;\n cursor: -webkit-grabbing;\n }\n\n * ::-webkit-scrollbar-track {\n background: rgba(0, 0, 0, 0.1)\n }\n\n * ::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.2)\n }\n\n * ::-webkit-scrollbar {\n width: 10px\n }\n\n "+(s.canvasCss||"")+"\n "+(l||"")+"\n ";c&&i.append(c),i.append(""),i.append(t.render()).append(r.render()),i.append(this.getJsContainer()),e.trigger("loaded"),this.frame.el.contentWindow.onscroll=this.onFrameScroll,this.frame.udpateOffset();var h=document,d=this.frame.el.contentDocument,f=function(t){var e=new KeyboardEvent(t.type,t);return e.keyCodeVal=t.keyCode,["keyCode","which"].forEach(function(t){Object.defineProperty(e,t,{get:function(){return this.keyCodeVal}})}),e};d.addEventListener("keydown",function(t){h.dispatchEvent(f(t))}),d.addEventListener("keyup",function(t){h.dispatchEvent(f(t))})}},offset:function(t){var e=t.getBoundingClientRect(),n=t.ownerDocument.body;return{top:e.top+n.scrollTop,left:e.left+n.scrollLeft,width:e.width,height:e.height}},clearOff:function(){this.frmOff=null,this.cvsOff=null},getFrameOffset:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.frmOff&&!t||(this.frmOff=this.offset(this.frame.el)),this.frmOff},getCanvasOffset:function(){return this.cvsOff||(this.cvsOff=this.offset(this.el)),this.cvsOff},getElementPos:function(t,e){var n=e||{},i=this.getFrameOffset(),r=this.getCanvasOffset(),o=this.offset(t),s=n.avoidFrameOffset?0:i.top,a=n.avoidFrameOffset?0:i.left;return{top:o.top+s-r.top,left:o.left+a-r.left,height:t.offsetHeight||t.clientHeight,width:t.offsetWidth||t.clientWidth}},getPosition:function(){var t=this.frame.el.contentDocument.body,e=this.getFrameOffset(),n=this.getCanvasOffset();return{top:e.top+t.scrollTop-n.top,left:e.left+t.scrollLeft-n.left}},updateScript:function(t){t.scriptContainer||(t.scriptContainer=o("
"),this.getJsContainer().append(t.scriptContainer.get(0)));var e=t.model,n=e.getId();t.el.id=n,t.scriptContainer.html("");var i=document.createElement("script");i.innerText="\n setTimeout(function() {\n var item = document.getElementById('"+n+"');\n if (!item) return;\n (function(){\n "+e.getScriptString()+";\n }.bind(item))()\n }, 1);",t.scriptContainer.get(0).appendChild(i)},getJsContainer:function(){return this.jsContainer||(this.jsContainer=o('
').get(0)),this.jsContainer},render:function(){if(this.wrapper=this.model.get("wrapper"),this.wrapper&&"function"==typeof this.wrapper.render){this.model.get("frame").set("wrapper",this.wrapper),this.$el.append(this.frame.render().el);var t=this.frame;0===this.config.scripts.length?t.el.onload=this.renderBody:this.renderScripts()}var e=this.ppfx;this.$el.append('\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n ');var n=this.el,i=n.querySelector("#"+e+"tools");return this.hlEl=n.querySelector("."+e+"highlighter"),this.badgeEl=n.querySelector("."+e+"badge"),this.placerEl=n.querySelector("."+e+"placeholder"),this.ghostEl=n.querySelector("."+e+"ghost"),this.toolbarEl=n.querySelector("."+e+"toolbar"),this.resizerEl=n.querySelector("."+e+"resizer"),this.offsetEl=n.querySelector("."+e+"offset-v"),this.fixedOffsetEl=n.querySelector("."+e+"offset-fixed-v"),this.toolsEl=i,this.el.className=this.className,this}})}).call(e,n(0),n(1))},function(t,e,n){"use strict";var i=n(1),r="transitionend oTransitionEnd transitionend webkitTransitionEnd";t.exports=n(0).View.extend({tagName:"iframe",attributes:{allowfullscreen:"allowfullscreen"},initialize:function(t){(0,i.bindAll)(this,"udpateOffset"),this.config=t.config||{},this.ppfx=this.config.pStylePrefix||"",this.em=this.config.em,this.listenTo(this.em,"change:device",this.updateDim)},updateDim:function(t){var e=this.em,n=e.getDeviceModel(),i=this.el.style,o=i.width||"",s=i.height||"",a=n?n.get("width"):"",l=n?n.get("height"):"",c=o==a&&s==l;i.width=a,i.height=l,this.udpateOffset(),e.stopDefault({preserveSelected:1}),c?this.udpateOffset():this.$el.on(r,this.udpateOffset)},udpateOffset:function(){var t=this.em,e=t.get("Canvas").getOffset();t.set("canvasOffset",e),t.runDefault({preserveSelected:1}),this.$el.off(r,this.udpateOffset)},getBody:function(){this.$el.contents().find("body")},getWrapper:function(){return this.$el.contents().find("body > div")},render:function(){return this.$el.attr({class:this.ppfx+"frame"}),this}})},function(t,e,n){"use strict";var i=n(1);t.exports=function(){var t=void 0,e={},r={},o={},s=n(184),a=n(185),l=function(t,e){return(0,i.isFunction)(e)&&(e={run:e}),delete e.initialize,r[t]=a.extend(e),this};return{name:"Commands",init:function(i){e=i||{};for(var r in s)r in e||(e[r]=s[r]);t=e.em;var a=e.pStylePrefix;a&&(e.stylePrefix=a+e.stylePrefix);for(var l in e.defaults){var c=e.defaults[l];c.id&&this.add(c.id,c)}var u=n(186);return o["select-comp"]=n(21),o["create-comp"]=n(22),o["delete-comp"]=n(191),o["image-comp"]=n(192),o["move-comp"]=n(193),o["text-comp"]=n(194),o["insert-custom"]=n(54),o["export-template"]=u,o["sw-visibility"]=n(195),o["open-layers"]=n(196),o["open-sm"]=n(199),o["open-tm"]=n(200),o["open-blocks"]=n(201),o["open-assets"]=n(202),o["show-offset"]=n(203),o["select-parent"]=n(204),o.fullscreen=n(205),o.preview=n(206),o.resize=n(207),o.drag=n(208),o["tlb-delete"]={run:function(t){var e=t.getSelected();if(!e||!e.get("removable"))return void console.warn("The element is not removable");t.select(null),e.destroy()}},o["tlb-clone"]={run:function(t){var e=t.getSelected();if(!e||!e.get("copyable"))return void console.warn("The element is not clonable");var n=e.collection,i=n.indexOf(e),r=n.add(e.clone(),{at:i+1});e.emitUpdate(),t.trigger("component:clone",r)}},o["tlb-move"]={run:function(t,e,n){var i=void 0,r=t.getModel(),o=n&&n.event,s=t.getSelected(),a=t.Canvas.getToolbarEl().style,l="dragstart"==o.type,c=function(){a.display="none",r.stopDefault()};if(!s||!s.get("draggable"))return void console.warn("The element is not draggable");l?setTimeout(function(){return c},0):c();var u=function(t,e){console.log("start mouse pos ",e.start),console.log("el rect ",e.elRect);var n=e.el;n.style.position="absolute",n.style.margin=0},h=function(t,e){r.runDefault(),r.setSelected(s),s.emitUpdate(),i&&i.blur()},d=function(t,e){console.log("Delta ",e.delta),console.log("Current ",e.current)};if(r.get("designerMode"))i=editor.runCommand("drag",{el:s.view.el,options:{event:o,onStart:u,onDrag:d,onEnd:h}});else{l&&o.dataTransfer.setDragImage(s.view.el,0,0);var f=t.Commands.get("move-comp");f.onEndMoveFromModel=h,f.initSorterFromModel(s)}s.set("status","selected")}},o["core:undo"]=function(t){return t.UndoManager.undo()},o["core:redo"]=function(t){return t.UndoManager.redo()},o["core:canvas-clear"]=function(t){t.DomComponents.clear(),t.CssComposer.clear()},o["core:copy"]=function(t){var e=t.getModel(),n=t.getSelected();n&&n.get("copyable")&&!t.Canvas.isInputFocused()&&e.set("clipboard",n)},o["core:paste"]=function(t){var e=t.getModel(),n=e.get("clipboard"),i=t.getSelected(),r=i&&i.collection;if(r&&n&&!t.Canvas.isInputFocused()){var o=r.indexOf(i)+1;r.add(n.clone(),{at:o})}},e.em&&(e.model=e.em.get("Canvas")),this.loadDefaultCommands(),this},add:l,get:function(t){var n=r[t];return"function"==typeof n&&(n=new n(e),r[t]=n),n},has:function(t){return!!r[t]},loadDefaultCommands:function(){for(var t in o)this.add(t,o[t]);return this}}}},function(t,e,n){"use strict";t.exports={ESCAPE_KEY:27,stylePrefix:"com-",defaults:[],em:null,firstCentered:!0,newFixedH:!1,minComponentH:50,minComponentW:50}},function(t,e,n){"use strict";(function(e){var n=e.$;t.exports=e.View.extend({initialize:function(t){this.config=t||{},this.editorModel=this.em=this.config.em||{},this.pfx=this.config.stylePrefix,this.ppfx=this.config.pStylePrefix,this.hoverClass=this.pfx+"hover",this.badgeClass=this.pfx+"badge",this.plhClass=this.pfx+"placeholder",this.freezClass=this.ppfx+"freezed",this.canvas=this.em.get&&this.em.get("Canvas"),this.em.get&&this.setElement(this.getCanvas()),this.canvas&&(this.$canvas=this.$el,this.$wrapper=n(this.getCanvasWrapper()),this.frameEl=this.canvas.getFrameEl(),this.canvasTool=this.getCanvasTools(),this.bodyEl=this.getCanvasBody()),this.init(this.config)},onFrameScroll:function(t){},getCanvas:function(){return this.canvas.getElement()},getCanvasBody:function(){return this.canvas.getBody()},getCanvasWrapper:function(){return this.canvas.getWrapperEl()},getCanvasTools:function(){return this.canvas.getToolsEl()},offset:function(t){var e=t.getBoundingClientRect();return{top:e.top+t.ownerDocument.body.scrollTop,left:e.left+t.ownerDocument.body.scrollLeft}},init:function(t){},run:function(t,e){},stop:function(t,e){}})}).call(e,n(0))},function(t,e,n){"use strict";(function(e){var n=e.$;t.exports={run:function(t,e){arguments.length>2&&void 0!==arguments[2]&&arguments[2];e&&e.set&&e.set("active",0);var i=t.getConfig(),r=t.Modal,o=i.stylePrefix;if(this.cm=t.CodeManager||null,!this.$editors){var s=this.buildEditor("htmlmixed","hopscotch","HTML"),a=this.buildEditor("css","hopscotch","CSS");this.htmlEditor=s.el,this.cssEditor=a.el;var l=n('
');l.append(s.$el).append(a.$el),this.$editors=l}r.setTitle(i.textViewCode),r.setContent(this.$editors),r.open(),this.htmlEditor.setContent(t.getHtml()),this.cssEditor.setContent(t.getCss())},stop:function(t){var e=t.Modal;e&&e.close()},buildEditor:function(t,e,n){var i=document.createElement("textarea");!this.codeMirror&&(this.codeMirror=this.cm.getViewer("CodeMirror"));var r=this.codeMirror.clone().set({label:n,codeName:t,theme:e,input:i}),o=new this.cm.EditorView({model:r,config:this.cm.getConfig()}).render().$el;return r.init(i),{el:r,$el:o}}}}).call(e,n(0))},function(t,e,n){"use strict";var i=(n(0),n(48)),r=n(188);t.exports=i.extend({itemView:r,initialize:function(t){this.config={editor:t.editor||""},this.listenTo(this.collection,"reset",this.render)}})},function(t,e,n){"use strict";var i=n(0);t.exports=i.View.extend({events:function(){return this.model.get("events")||{mousedown:"handleClick"}},attributes:function(){return this.model.get("attributes")},initialize:function(t){this.editor=t.config.editor},handleClick:function(t){t.preventDefault(),t.stopPropagation(),this.execCommand(t)},execCommand:function(t){var e={event:t},n=this.model.get("command"),i=this.editor;"function"==typeof n&&n(i,null,e),"string"==typeof n&&i.runCommand(n,e)},render:function(){var t=this.editor.getConfig();return this.el.className+=" "+t.stylePrefix+"toolbar-item",this}})},function(t,e,n){"use strict";var i=n(0),r=n(190);t.exports=i.Collection.extend({model:r})},function(t,e,n){"use strict";var i=n(0);t.exports=i.Model.extend({defaults:{command:"",attributes:{}}})},function(t,e,n){"use strict";(function(e,i){var r=n(21),o=e.$;t.exports=i.extend({},r,{init:function(t){i.bindAll(this,"startDelete","stopDelete","onDelete"),this.hoverClass=this.pfx+"hover-delete",this.badgeClass=this.pfx+"badge-red"},enable:function(){this.$el.find("*").mouseover(this.startDelete).mouseout(this.stopDelete).click(this.onDelete)},startDelete:function(t){t.stopPropagation();var e=o(t.target);e.data("model").get("removable")&&(e.addClass(this.hoverClass),this.attachBadge(e.get(0)))},stopDelete:function(t){t.stopPropagation(),o(t.target).removeClass(this.hoverClass),this.badge&&this.badge.css({left:-1e3,top:-1e3})},onDelete:function(t){t.stopPropagation();var e=o(t.target);e.data("model").get("removable")&&(e.data("model").destroy(),this.removeBadge(),this.clean())},updateBadgeLabel:function(t){this.badge.html("Remove "+t.getName())}})}).call(e,n(0),n(1))},function(t,e,n){"use strict";(function(e){var i=(n(0),n(54));t.exports=e.extend({},i,{beforeInsert:function(t){t.type="image",t.style={},t.attributes={},t.attributes.onmousedown="return false",this.config.firstCentered&&this.getCanvasWrapper()==this.sorter.target&&(t.style.margin="0 auto")},afterInsert:function(t){t.trigger("dblclick"),this.sender&&this.sender.set("active",!1)}})}).call(e,n(1))},function(t,e,n){"use strict";(function(e,i){var r=n(2),o=n(21),s=n(53),a=e.$;t.exports=i.extend({},s,o,{init:function(t){o.init.apply(this,arguments),i.bindAll(this,"initSorter","rollback","onEndMove"),this.opt=t,this.hoverClass=this.ppfx+"highlighter-warning",this.badgeClass=this.ppfx+"badge-warning",this.noSelClass=this.ppfx+"no-select"},enable:function(){for(var t=arguments.length,e=Array(t),n=0;n
');this.panel.set("appendContent",c).trigger("change:appendContent"),o.layers.sortContainer=c.get(0);var u=(new i).init(n,o.layers);this.$layers=u.render(),c.append(this.$layers),this.toAppend=c}this.toAppend.show()},stop:function(){this.toAppend&&this.toAppend.hide()}}}).call(e,n(0))},function(t,e,n){"use strict";t.exports=function(){var t=void 0,e={},i=n(198),r=n(55),o=n(56);return{init:function(n,s){e=s||e;var a=e.em;for(var l in i)l in e||(e[l]=i[l]);var c=o,u=s.opened||{},h={level:0,config:e,opened:u};return e.showWrapper&&n.parent?(c=r,h.model=n.parent):h.collection=n,t=new c(h),a&&a.on("change:selectedComponent",this.componentChanged),this.componentChanged(),this},componentChanged:function(t,n){if(!(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).fromLayers){var i=e.em,r=i.get("opened"),o=i.get("selectedComponent"),s=o&&o.collection?o.collection.parent:null;for(var a in r)r[a].set("open",0);for(;s;)s.set("open",1),r[s.cid]=s,s=s.collection?s.collection.parent:null}},render:function(){return t.render().$el}}}},function(t,e,n){"use strict";t.exports={stylePrefix:"nv-",sortable:1,hidable:1,hideTextnode:1,showWrapper:1}},function(t,e,n){"use strict";var i=(n(31),n(0)),r=i.$;t.exports={run:function(t,e){if(this.sender=e,!this.$cn){var n=t.getConfig(),i=t.Panels;this.$cn=r("
"),this.$cn2=r("
"),this.$cn.append(this.$cn2);var o=t.DeviceManager;if(o&&n.showDevices){i.addPanel({id:"devices-c"}).set("appendContent",o.render()).trigger("change:appendContent")}var s=t.SelectorManager;s&&this.$cn2.append(s.render([])),this.$cn2.append(t.StyleManager.render());var a=t.StyleManager.getConfig(),l=a.stylePrefix;this.$header=r('
'+a.textNoElement+"
"),this.$cn.append(this.$header),i.getPanel("views-container")?this.panel=i.getPanel("views-container"):this.panel=i.addPanel({id:"views-container"}),this.panel.set("appendContent",this.$cn).trigger("change:appendContent"),this.target=t.editor,this.listenTo(this.target,"change:selectedComponent",this.toggleSm)}this.toggleSm()},toggleSm:function(){var t=this.sender;t&&t.get&&!t.get("active")||(this.target.get("selectedComponent")?(this.$cn2.show(),this.$header.hide()):(this.$cn2.hide(),this.$header.show()))},stop:function(){this.$cn2&&this.$cn2.hide(),this.$header&&this.$header.hide()}}},function(t,e,n){"use strict";(function(e){var n=e.$;t.exports={run:function(t,e){var i,r=t.Config,o=r.stylePrefix,s=t.TraitManager;if(!this.obj){var a=s.getTraitsViewer(),l=s.getConfig();this.obj=n("
").append('
'+l.labelContainer+"
").get(0),this.obj.appendChild(a.render().el);var c=t.Panels;i=c.getPanel("views-container")?c.getPanel("views-container"):c.addPanel({id:"views-container"}),i.set("appendContent",this.obj).trigger("change:appendContent")}this.obj.style.display="block"},stop:function(){this.obj&&(this.obj.style.display="none")}}}).call(e,n(0))},function(t,e,n){"use strict";t.exports={run:function(t,e){var n=t.BlockManager,i=t.Panels;if(!this.blocks){n.render();var r="views-container",o=document.createElement("div"),s=i.getPanel(r)||i.addPanel({id:r});o.appendChild(n.getContainer()),s.set("appendContent",o).trigger("change:appendContent"),this.blocks=o}this.blocks.style.display="block"},stop:function(){var t=this.blocks;t&&(t.style.display="none")}}},function(t,e,n){"use strict";t.exports={run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=t.Modal,r=t.AssetManager,o=r.getConfig(),s=n.modalTitle||o.modalTitle||"";r.setTarget(n.target),r.onClick(n.onClick),r.onDblClick(n.onDblClick),r.onSelect(n.onSelect),this.rendered||(r.render(r.getAll().filter(function(t){return"image"==t.get("type")})),this.rendered=1),i.setTitle(s),i.setContent(r.getContainer()),i.open()}}},function(t,e,n){"use strict";(function(e){var n=e.$;t.exports={getOffsetMethod:function(t){return"get"+(t||"")+"OffsetViewerEl"},run:function(t,e,i){var r=i||{},o=r.state||"",s=t.getConfig();if(s.showOffsets&&(s.showOffsetsSelected||"Fixed"!=o)){var a=t.Canvas,l=r.el||"",c=r.elPos||a.getElementPos(l),u=window.getComputedStyle(l),h=this.ppfx,d=o+"State",f=this.getOffsetMethod(o),p=a[f]();p.style.display="block";var g=this["marginT"+o],v=this["marginB"+o],m=this["marginL"+o],y=this["marginR"+o],b=this["padT"+o],x=this["padB"+o],w=this["padL"+o],C=this["padR"+o];if(!this[d]){var k=o.toLowerCase(),S=k+"margin-v",T=k+"padding-v",E=n('
').get(0),M=n('
').get(0),P=h+S+"-el",A=h+T+"-el",O=P+" "+(h+S),L=A+" "+(h+T);g=n('
').get(0),v=n('
').get(0),m=n('
').get(0),y=n('
').get(0),b=n('
').get(0),x=n('
').get(0),w=n('
').get(0),C=n('
').get(0),this["marginT"+o]=g,this["marginB"+o]=v,this["marginL"+o]=m,this["marginR"+o]=y,this["padT"+o]=b,this["padB"+o]=x,this["padL"+o]=w,this["padR"+o]=C,E.appendChild(g),E.appendChild(v),E.appendChild(m),E.appendChild(y),M.appendChild(b),M.appendChild(x),M.appendChild(w),M.appendChild(C),p.appendChild(E),p.appendChild(M),this[d]="1"}var N=u.marginLeft.replace("px",""),D=parseInt(u.marginTop.replace("px","")),I=parseInt(u.marginBottom.replace("px","")),_=g.style,F=v.style,z=m.style,$=y.style,R=b.style,V=x.style,H=w.style,j=C.style,B=parseInt(c.left);_.height=u.marginTop,_.width=u.width,_.top=c.top-u.marginTop.replace("px","")+"px",_.left=B+"px",F.height=u.marginBottom,F.width=u.width,F.top=c.top+c.height+"px",F.left=B+"px";var W=c.height+D+I+"px",U=c.top-D+"px";z.height=W,z.width=u.marginLeft,z.top=U,z.left=B-N+"px",$.height=W,$.width=u.marginRight,$.top=U,$.left=B+c.width+"px";var q=parseInt(u.paddingTop.replace("px",""));R.height=u.paddingTop,R.width=u.width,R.top=c.top+"px",R.left=B+"px";var K=parseInt(u.paddingBottom.replace("px",""));V.height=u.paddingBottom,V.width=u.width,V.top=c.top+c.height-K+"px",V.left=B+"px";var G=c.height-K-q+"px",Y=c.top+q+"px";H.height=G,H.width=u.paddingLeft,H.top=Y,H.left=c.left+"px";var X=parseInt(u.paddingRight.replace("px",""));j.height=G,j.width=u.paddingRight,j.top=Y,j.left=c.left+c.width-X+"px"}},stop:function(t,e,n){var i=n||{},r=i.state||"",o=this.getOffsetMethod(r);t.Canvas[o]().style.display="none"}}}).call(e,n(0))},function(t,e,n){"use strict";t.exports={run:function(t){for(var e=t.getSelected(),n=e&&e.parent();n&&!n.get("selectable");)n=n.parent();n&&t.select(n)}}},function(t,e,n){"use strict";t.exports={isEnabled:function(){var t=document;return t.fullscreenElement||t.webkitFullscreenElement||t.mozFullScreenElement?1:0},enable:function(t){var e="";return t.requestFullscreen?t.requestFullscreen():t.webkitRequestFullscreen?(e="webkit",t.webkitRequestFullscreen()):t.mozRequestFullScreen?(e="moz",t.mozRequestFullScreen()):t.msRequestFullscreen?t.msRequestFullscreen():console.warn("Fullscreen not supported"),e},disable:function(){var t=document;t.exitFullscreen?t.exitFullscreen():t.webkitExitFullscreen?t.webkitExitFullscreen():t.mozCancelFullScreen?t.mozCancelFullScreen():t.msExitFullscreen&&t.msExitFullscreen()},fsChanged:function(t,e){var n=(document,(t||"")+"fullscreenchange");this.isEnabled()||(this.stop(null,this.sender),document.removeEventListener(n,this.fsChanged))},run:function(t,e){this.sender=e;var n=this.enable(t.getContainer());this.fsChanged=this.fsChanged.bind(this,n),document.addEventListener(n+"fullscreenchange",this.fsChanged),t&&t.trigger("change:canvasOffset")},stop:function(t,e){e&&e.set&&e.set("active",!1),this.disable(),t&&t.trigger("change:canvasOffset")}}},function(t,e,n){"use strict";(function(e){t.exports={getPanels:function(t){return this.panels||(this.panels=t.Panels.getPanelsEl()),this.panels},tglPointers:function(t,n){var i=t.Canvas.getBody().querySelectorAll("."+this.ppfx+"no-pointer");e.each(i,function(t){t.style.pointerEvents=n?"":"all"})},run:function(t,e){e&&e.set&&e.set("active",!1),t.stopCommand("sw-visibility"),t.getModel().stopDefault();var n=this.getPanels(t),i=t.Canvas.getElement(),r=t.getEl(),o=t.Config.stylePrefix;this.helper||(this.helper=document.createElement("span"),this.helper.className=o+"off-prv fa fa-eye-slash",r.appendChild(this.helper),this.helper.onclick=function(){t.stopCommand("preview")}),this.helper.style.display="inline-block",this.tglPointers(t),n.style.display="none";var s=i.style;s.width="100%",s.height="100%",s.top="0",s.left="0",s.padding="0",s.margin="0",t.trigger("change:canvasOffset")},stop:function(t,e){var n=this.getPanels(t);t.runCommand("sw-visibility"),t.getModel().runDefault(),n.style.display="block",t.Canvas.getElement().setAttribute("style",""),this.helper&&(this.helper.style.display="none"),t.trigger("change:canvasOffset"),this.tglPointers(t,1)}}}).call(e,n(1))},function(t,e,n){"use strict";t.exports={run:function(t,e,n){var i=n||{},r=i.el||"",o=t.Canvas,s=this.canvasResizer,a=i.options||{},l=o.getCanvasView();return a.ratioDefault=1,a.appendTo=o.getResizerEl(),a.prefix=t.getConfig().stylePrefix,a.posFetcher=l.getElementPos.bind(l),a.mousePosFetcher=o.getMouseRelativePos,s&&!i.forceNew||(this.canvasResizer=t.Utils.Resizer.init(a),s=this.canvasResizer),s.setOptions(a),s.focus(r),s},stop:function(){var t=this.canvasResizer;t&&t.blur()}}},function(t,e,n){"use strict";t.exports={run:function(t,e,n){var i=n&&n.el||"",r=t.Canvas,o=this.dragger,s=n.options||{},a=r.getCanvasView();return s.prefix=t.getConfig().stylePrefix,s.mousePosFetcher=r.getMouseRelativePos,s.posFetcher=a.getElementPos.bind(a),o||(o=t.Utils.Dragger.init(s),this.dragger=o),o.setOptions(s),o.focus(i),s.event&&o.start(s.event),o},stop:function(){this.canvasResizer&&this.canvasResizer.blur()}}},function(t,e,n){"use strict";t.exports=function(){var t,e,i,r={},o=n(210),s=n(211),a=n(213),l=n(214),c=[];return{name:"BlockManager",init:function(n){r=n||{};var u=r.em;for(var h in o)h in r||(r[h]=o[h]);return t=new s([]),e=new s([]),c=new a,i=new l({collection:e,categories:c},r),t.listenTo(t,"add",function(t){e.add(t),u&&u.trigger("block:add",t)}),t.listenTo(t,"remove",function(t){e.remove(t),u&&u.trigger("block:remove",t)}),t.listenTo(t,"reset",function(t){e.reset(t.models)}),this},getConfig:function(){return r},onLoad:function(){var t=this.getAll();!t.length&&t.reset(r.blocks)},add:function(e,n){var i=n||{};return i.id=e,t.add(i)},get:function(e){return t.get(e)},getAll:function(){return t},getAllVisible:function(){return e},remove:function(e){return t.remove(e)},getCategories:function(){return c},getContainer:function(){return i.el},render:function(t){var e=t||this.getAll().models;i.rendered||(i.render(),i.rendered=1),i.collection.reset(e)}}}},function(t,e,n){"use strict";t.exports={blocks:[],appendTo:""}},function(t,e,n){"use strict";var i=n(0),r=n(212);t.exports=i.Collection.extend({model:r})},function(t,e,n){"use strict";var i=n(0),r=n(57);t.exports=i.Model.extend({defaults:{label:"",content:"",category:"",attributes:{}},initialize:function(){var t=(arguments.length>0&&void 0!==arguments[0]&&arguments[0],this.get("category"));if(t&&"string"==typeof t){new r({id:t,label:t})}}})},function(t,e,n){"use strict";var i=n(0);t.exports=i.Collection.extend({model:n(57)})},function(t,e,n){"use strict";(function(e){var i=n(1),r=n(215),o=n(216);t.exports=n(0).View.extend({initialize:function(t,n){e.bindAll(this,"getSorter","onDrag","onDrop"),this.config=n||{},this.categories=t.categories||"",this.renderedCategories=[];var i=this.config.pStylePrefix||"";this.ppfx=i,this.noCatClass=i+"blocks-no-cat",this.blockContClass=i+"blocks-c",this.catsClass=i+"block-categories";var r=this.collection;this.listenTo(r,"add",this.addTo),this.listenTo(r,"reset",this.render),this.em=this.config.em,this.tac="test-tac",this.grabbingCls=this.ppfx+"grabbing",this.em&&(this.config.getSorter=this.getSorter,this.canvas=this.em.get("Canvas"))},getSorter:function(){if(this.em){if(!this.sorter){var t=this.em.get("Utils"),e=this.canvas;this.sorter=new t.Sorter({container:e.getBody(),placer:e.getPlacerEl(),containerSel:"*",itemSel:"*",pfx:this.ppfx,onStart:this.onDrag,onEndMove:this.onDrop,onMove:this.onMove,document:e.getFrameEl().contentDocument,direction:"a",wmargin:1,nested:1,em:this.em,canvasRelative:1})}return this.sorter}},onDrag:function(t){this.em.stopDefault(),this.em.trigger("block:drag:start",t)},onMove:function(t){this.em.trigger("block:drag:move",t)},onDrop:function(t){var e=this.em;e.runDefault(),t&&t.get&&(t.get("activeOnRender")&&(t.trigger("active"),t.set("activeOnRender",0)),e.trigger("block:drag:stop",t))},addTo:function(t){this.add(t)},add:function(t,e){var n=e||null,s=new r({model:t,attributes:t.get("attributes")},this.config),a=s.render().el,l=t.get("category");if(l&&this.categories){(0,i.isString)(l)?l={id:l,label:l}:(0,i.isObject)(l)&&!l.id&&(l.id=l.label);var c=this.categories.add(l),u=c.get("id"),h=this.renderedCategories[u],d=this.getCategoriesEl();return t.set("category",c),!h&&d&&(h=new o({model:c},this.config).render(),this.renderedCategories[u]=h,d.appendChild(h.el)),void(h&&h.append(a))}n?n.appendChild(a):this.append(a)},getCategoriesEl:function(){return this.catsEl||(this.catsEl=this.el.querySelector("."+this.catsClass)),this.catsEl},getBlocksEl:function(){return this.blocksEl||(this.blocksEl=this.el.querySelector("."+this.noCatClass+" ."+this.blockContClass)),this.blocksEl},append:function(t){var e=this.getBlocksEl();e&&e.appendChild(t)},render:function(){var t=this,e=document.createDocumentFragment();return this.catsEl=null,this.blocksEl=null,this.renderedCategories=[],this.el.innerHTML='\n
\n
\n
\n
\n ',this.collection.each(function(n){return t.add(n,e)}),this.append(e),this.$el.addClass(this.blockContClass+"s"),this}})}).call(e,n(1))},function(t,e,n){"use strict";(function(e){var i=n(1),r=n(2);t.exports=e.View.extend({events:{mousedown:"startDrag",dragstart:"handleDragStart",dragend:"handleDragEnd"},initialize:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.em=e.em,this.config=e,this.endDrag=this.endDrag.bind(this),this.ppfx=e.pStylePrefix||"",this.listenTo(this.model,"destroy remove",this.remove)},startDrag:function(t){var e=this.config;if(0===t.button&&e.getSorter&&!this.el.draggable){e.em.refreshCanvas();var n=e.getSorter();n.setDragHelper(this.el,t),n.setDropContent(this.model.get("content")),n.startSort(this.el),(0,r.on)(document,"mouseup",this.endDrag)}},handleDragStart:function(t){var e=this.model.get("content"),n=(0,i.isObject)(e),r=n?"text/json":"text",o=n?JSON.stringify(e):e;t.dataTransfer.setData(r,o),this.em.set("dragContent",e)},handleDragEnd:function(){this.em.set("dragContent","")},endDrag:function(t){(0,r.off)(document,"mouseup",this.endDrag);var e=this.config.getSorter();e.moved=0,e.endMove()},render:function(){var t=this.el,e=this.ppfx,n=e+"block",i=this.model.get("label");return t.className+=" "+n+" "+e+"one-bg "+e+"four-color-h",t.innerHTML='
'+i+"
",(0,r.hasDnd)(this.em)&&t.setAttribute("draggable",!0),this}})}).call(e,n(0))},function(t,e,n){"use strict";(function(e){var i=n(0);t.exports=i.View.extend({template:e.template('\n
\n \n <%= label %>\n
\n
\n '),events:{},initialize:function(){var t=(arguments.length>0&&void 0!==arguments[0]&&arguments[0],arguments.length>1&&void 0!==arguments[1]?arguments[1]:{});this.config=t;var e=this.config.pStylePrefix||"";this.pfx=e,this.caretR="fa fa-caret-right",this.caretD="fa fa-caret-down",this.iconClass=e+"caret-icon",this.activeClass=e+"open",this.className=e+"block-category",this.events["click ."+e+"title"]="toggle",this.listenTo(this.model,"change:open",this.updateVisibility),this.delegateEvents()},updateVisibility:function(){this.model.get("open")?this.open():this.close()},open:function(){this.el.className=this.className+" "+this.activeClass,this.getIconEl().className=this.iconClass+" "+this.caretD,this.getBlocksEl().style.display=""},close:function(){this.el.className=this.className,this.getIconEl().className=this.iconClass+" "+this.caretR,this.getBlocksEl().style.display="none"},toggle:function(){var t=this.model;t.set("open",!t.get("open"))},getIconEl:function(){return this.iconEl||(this.iconEl=this.el.querySelector("."+this.iconClass)),this.iconEl},getBlocksEl:function(){return this.blocksEl||(this.blocksEl=this.el.querySelector("."+this.pfx+"blocks-c")),this.blocksEl},append:function(t){this.getBlocksEl().appendChild(t)},render:function(){return this.el.innerHTML=this.template({pfx:this.pfx,label:this.model.get("label")}),this.el.className=this.className,this.$el.css({order:this.model.get("order")}),this.updateVisibility(),this}})}).call(e,n(1))},function(t,e,n){"use strict";t.exports=function(t){var e=t.$,n=t.Backbone;if(n){var i=n.View.prototype,r={};i.eventNsMap=r,i.delegate=function(t,e,n){var i=".delegateEvents"+this.cid;this.$el.on(t,e,n);var o=r[i];return o||(o=[],r[i]=o),o.push({eventName:t,selector:e,listener:n}),this},i.undelegateEvents=function(){var t=this,e=".delegateEvents"+this.cid;if(this.$el){var n=r[e];n&&n.forEach(function(e){var n=e.eventName;e.selector,e.listener;t.$el.off(n)})}return this},i.undelegate=function(t,e,n){var i=this,o=".delegateEvents"+this.cid,s=r[o];return s&&s.forEach(function(n){var r=n.eventName,o=n.selector;n.listener;r==t&&o==e&&i.$el.off(r)}),this}}if(e&&"jQuery"!==e.prototype.constructor.name){var o=e.fn,s=e.prototype.on,a=e.prototype.off,l=e.prototype.trigger,c=e.prototype.offset,u=function(t){return t.split(/[,\s]+/g)},h=function(t){return t.split(".")};o.on=function(t,e,n,i){var r=this;if("string"==typeof t){var o=u(t);if(1==o.length){t=o[0];var a=h(t);if(0!==t.indexOf(".")&&(t=a[0]),a=a.slice(1),a.length){this.data("_cashNs");this.data("_cashNs",a)}return s.call(this,t,e,n,i)}return o.forEach(function(t){return r.on(t,e,n,i)}),this}return s.call(this,t,e,n,i)},o.off=function(t,e){var n=this;if("string"==typeof t){var i=u(t);if(1==i.length){t=i[0];var r=h(t);return 0!==t.indexOf(".")&&(t=r[0]),r=r.slice(1),r.length,a.call(this,t,e)}return i.forEach(function(t){return n.off(t,e)}),this}return a.call(this,t,e)},o.trigger=function(t,n){var i=this;if(t instanceof e.Event)return this.trigger(t.type,n);if("string"==typeof t){var r=u(t);if(1==r.length){t=r[0];var o=h(t);return 0!==t.indexOf(".")&&(t=o[0]),o=o.slice(1),o.length,l.call(this,t,n)}return r.forEach(function(t){return i.trigger(t,n)}),this}return l.call(this,t,n)},o.hide=function(){return this.css("display","none")},o.show=function(){return this.css("display","block")},o.focus=function(){var t=this.get(0);return t&&t.focus(),this},o.remove=function(){return this.each(function(t){return t.parentNode&&t.parentNode.removeChild(t)})},o.bind=function(t,e){return this.on(t,e)},o.unbind=function(t,e){return this.off(t,e)},o.click=function(t){return t?this.on("click",t):this.trigger("click")},o.change=function(t){return t?this.on("change",t):this.trigger("change")},o.keydown=function(t){return t?this.on("keydown",t):this.trigger("keydown")},o.delegate=function(t,e,n,i){return i||(i=n),this.on(e,t,function(t){t.data=n,i(t)})},o.scrollLeft=function(){var t=this.get(0);t=9==t.nodeType?t.defaultView:t;var e=t instanceof Window?t:null;return e?e.pageXOffset:t.scrollLeft||0},o.scrollTop=function(){var t=this.get(0);t=9==t.nodeType?t.defaultView:t;var e=t instanceof Window?t:null;return e?e.pageYOffset:t.scrollTop||0},o.offset=function(t){var e=void 0,n=void 0;return t&&(e=t.top,n=t.left),void 0!==e&&this.css("top",e+"px"),void 0!==n&&this.css("left",n+"px"),c.call(this)},e.map=function(t,e){for(var n=[],i=0;i { plugins: plugins, module: { loaders: [{ - test: /grapesjs\/index\.js$/, + test: /\/index\.js$/, loader: 'string-replace-loader', query: { search: '<# VERSION #>',