|
|
|
@ -7,6 +7,9 @@ import { eventDrag } from 'dom_components/model/Component'; |
|
|
|
const inputProp = 'contentEditable'; |
|
|
|
const styleOpts = { mediaText: '' }; |
|
|
|
const $ = Backbone.$; |
|
|
|
const isStyleHidden = (style = {}) => { |
|
|
|
return (style.display || '').trim().indexOf('none') === 0; |
|
|
|
}; |
|
|
|
let ItemsView; |
|
|
|
|
|
|
|
export default Backbone.View.extend({ |
|
|
|
@ -20,7 +23,7 @@ export default Backbone.View.extend({ |
|
|
|
'mouseout [data-toggle-select]': 'handleHoverOut', |
|
|
|
'dblclick [data-name]': 'handleEdit', |
|
|
|
'keydown [data-name]': 'handleEditKey', |
|
|
|
'focusout [data-name]': 'handleEditEnd' |
|
|
|
'focusout [data-name]': 'handleEditEnd', |
|
|
|
}, |
|
|
|
|
|
|
|
template(model) { |
|
|
|
@ -86,8 +89,8 @@ export default Backbone.View.extend({ |
|
|
|
['change:open', this.updateOpening], |
|
|
|
['change:layerable', this.updateLayerable], |
|
|
|
['change:style:display', this.updateVisibility], |
|
|
|
['rerender:layer', this.render] |
|
|
|
].forEach(item => this.listenTo(model, item[0], item[1])); |
|
|
|
['rerender:layer', this.render], |
|
|
|
].forEach((item) => this.listenTo(model, item[0], item[1])); |
|
|
|
this.className = `${pfx}layer ${pfx}layer__t-${type} no-select ${ppfx}two-color`; |
|
|
|
this.inputNameCls = `${ppfx}layer-name`; |
|
|
|
this.clsTitleC = `${pfx}layer-title-c`; |
|
|
|
@ -105,7 +108,7 @@ export default Backbone.View.extend({ |
|
|
|
onInit.bind(this)({ |
|
|
|
component: model, |
|
|
|
render: this.__render, |
|
|
|
listenTo: this.listenTo |
|
|
|
listenTo: this.listenTo, |
|
|
|
}); |
|
|
|
}, |
|
|
|
|
|
|
|
@ -122,7 +125,7 @@ export default Backbone.View.extend({ |
|
|
|
const model = this.model; |
|
|
|
const hClass = `${pfx}layer-hidden`; |
|
|
|
const hideIcon = 'fa-eye-slash'; |
|
|
|
const hidden = model.getStyle(styleOpts).display === 'none'; |
|
|
|
const hidden = isStyleHidden(model.getStyle(styleOpts)); |
|
|
|
const method = hidden ? 'addClass' : 'removeClass'; |
|
|
|
this.$el[method](hClass); |
|
|
|
this.getVisibilityEl()[method](hideIcon); |
|
|
|
@ -141,7 +144,7 @@ export default Backbone.View.extend({ |
|
|
|
const prevDisplay = model.get(prevDspKey); |
|
|
|
const style = model.getStyle(styleOpts); |
|
|
|
const { display } = style; |
|
|
|
const hidden = display == 'none'; |
|
|
|
const hidden = isStyleHidden(style); |
|
|
|
|
|
|
|
if (hidden) { |
|
|
|
delete style.display; |
|
|
|
@ -170,10 +173,7 @@ export default Backbone.View.extend({ |
|
|
|
inputEl.focus(); |
|
|
|
document.execCommand('selectAll', false, null); |
|
|
|
em && em.setEditing(1); |
|
|
|
$el |
|
|
|
.find(`.${this.inputNameCls}`) |
|
|
|
.removeClass(clsNoEdit) |
|
|
|
.addClass(clsEdit); |
|
|
|
$el.find(`.${this.inputNameCls}`).removeClass(clsNoEdit).addClass(clsEdit); |
|
|
|
}, |
|
|
|
|
|
|
|
handleEditKey(ev) { |
|
|
|
@ -193,10 +193,7 @@ export default Backbone.View.extend({ |
|
|
|
inputEl[inputProp] = false; |
|
|
|
this.setName(name, { component: this.model, propName: 'custom-name' }); |
|
|
|
em && em.setEditing(0); |
|
|
|
$el |
|
|
|
.find(`.${this.inputNameCls}`) |
|
|
|
.addClass(clsNoEdit) |
|
|
|
.removeClass(clsEdit); |
|
|
|
$el.find(`.${this.inputNameCls}`).addClass(clsNoEdit).removeClass(clsEdit); |
|
|
|
}, |
|
|
|
|
|
|
|
setName(name, { propName }) { |
|
|
|
@ -260,7 +257,7 @@ export default Backbone.View.extend({ |
|
|
|
if (em) { |
|
|
|
em.setSelected(model, { fromLayers: 1, event: e }); |
|
|
|
const scroll = config.scrollCanvas; |
|
|
|
scroll && model.views.forEach(view => view.scrollIntoView(scroll)); |
|
|
|
scroll && model.views.forEach((view) => view.scrollIntoView(scroll)); |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
@ -290,8 +287,8 @@ export default Backbone.View.extend({ |
|
|
|
if (e.button && e.button !== 0) return; |
|
|
|
|
|
|
|
if (sorter) { |
|
|
|
sorter.onStart = data => em.trigger(`${eventDrag}:start`, data); |
|
|
|
sorter.onMoveClb = data => em.trigger(eventDrag, data); |
|
|
|
sorter.onStart = (data) => em.trigger(`${eventDrag}:start`, data); |
|
|
|
sorter.onMoveClb = (data) => em.trigger(eventDrag, data); |
|
|
|
sorter.startSort(e.target); |
|
|
|
} |
|
|
|
}, |
|
|
|
@ -321,8 +318,8 @@ export default Backbone.View.extend({ |
|
|
|
ComponentView.prototype.updateStatus.apply(this, [ |
|
|
|
{ |
|
|
|
avoidHover: !this.config.highlightHover, |
|
|
|
noExtHl: 1 |
|
|
|
} |
|
|
|
noExtHl: 1, |
|
|
|
}, |
|
|
|
]); |
|
|
|
}, |
|
|
|
|
|
|
|
@ -332,9 +329,7 @@ export default Backbone.View.extend({ |
|
|
|
* @return boolean |
|
|
|
* */ |
|
|
|
isVisible() { |
|
|
|
const { display } = this.model.getStyle(); |
|
|
|
|
|
|
|
return !(display && display === 'none'); |
|
|
|
return !isStyleHidden(this.model.getStyle()); |
|
|
|
}, |
|
|
|
|
|
|
|
/** |
|
|
|
@ -368,7 +363,7 @@ export default Backbone.View.extend({ |
|
|
|
*/ |
|
|
|
countChildren(model) { |
|
|
|
var count = 0; |
|
|
|
model.get('components').each(function(m) { |
|
|
|
model.get('components').each(function (m) { |
|
|
|
var isCountable = this.opt.isCountable; |
|
|
|
var hide = this.config.hideTextnode; |
|
|
|
if (isCountable && !isCountable(m, hide)) return; |
|
|
|
@ -436,7 +431,7 @@ export default Backbone.View.extend({ |
|
|
|
opened: this.opt.opened, |
|
|
|
parentView: this, |
|
|
|
parent: model, |
|
|
|
level |
|
|
|
level, |
|
|
|
}); |
|
|
|
const children = this.items.render().$el; |
|
|
|
|
|
|
|
@ -468,5 +463,5 @@ export default Backbone.View.extend({ |
|
|
|
const opt = { component: model, el }; |
|
|
|
onRender.bind(this)(opt); |
|
|
|
this.em.trigger('layer:render', opt); |
|
|
|
} |
|
|
|
}, |
|
|
|
}); |
|
|
|
|