UNPKG

grapesjs_codeapps

Version:

Free and Open Source Web Builder Framework/SC Modification

85 lines (72 loc) 2.11 kB
import _ from 'underscore'; import Backbone from 'backbone'; module.exports = Backbone.View.extend({ template: _.template(` <div class="<%= pfx %>blocks-c template-cat-el <%= pfx %>template-cat-<%= classEl %>"></div> `), events: {}, initialize(o = {}, config = {}) { this.config = config; const pfx = this.config.pStylePrefix || ''; this.pfx = pfx; this.caretR = 'fa fa-caret-right'; this.caretD = 'fa fa-caret-down'; //this.iconClass = `${pfx}caret-icon`; this.activeClass = `${pfx}open`; this.className = `${pfx}block-category`; this.events[`click .${pfx}title`] = 'toggle'; this.listenTo(this.model, 'change:open', this.updateVisibility); this.delegateEvents(); }, updateVisibility() { this.$el .find(`.template-cat-el`) .parent() .hide(); this.$el .find(`.gjs-template-cat-pop-up`) .parent() .show(); }, open() { this.el.className = `${this.className} ${this.activeClass}`; //this.getIconEl().className = `${this.iconClass} ${this.caretD}`; this.getBlocksEl().style.display = ''; }, close() { this.el.className = this.className; //this.getIconEl().className = `${this.iconClass} ${this.caretR}`; this.getBlocksEl().style.display = 'none'; }, toggle() { var model = this.model; model.set('open', !model.get('open')); }, getIconEl() { // if (!this.iconEl) { // // this.iconEl = this.el.querySelector('.' + this.iconClass); // // } // // // // return this.iconEl; }, getBlocksEl() { if (!this.blocksEl) { this.blocksEl = this.el.querySelector('.' + this.pfx + 'blocks-c'); } return this.blocksEl; }, append(el) { this.getBlocksEl().appendChild(el); }, render() { this.el.innerHTML = this.template({ pfx: this.pfx, label: this.model.get('label'), classEl: this.model.get('label').toLowerCase() }); this.el.className = this.className; this.$el.css({ order: this.model.get('order') }); this.updateVisibility(); return this; } });