UNPKG

grapesjs-clot

Version:

Free and Open Source Web Builder Framework

134 lines (130 loc) 3.46 kB
import Backbone from 'backbone'; import TypeableCollection from 'domain_abstract/model/TypeableCollection'; import Property from './Property'; import PropertyStack from './PropertyStack'; import PropertyStackView from './../view/PropertyStackView'; import PropertyComposite from './PropertyComposite'; import PropertyCompositeView from './../view/PropertyCompositeView'; import PropertyFileView from './../view/PropertyFileView'; import PropertyColorView from './../view/PropertyColorView'; import PropertySelect from './PropertySelect'; import PropertySelectView from './../view/PropertySelectView'; import PropertyRadio from './PropertyRadio'; import PropertyRadioView from './../view/PropertyRadioView'; import PropertySlider from './PropertySlider'; import PropertySliderView from './../view/PropertySliderView'; import PropertyNumber from './PropertyNumber'; import PropertyNumberView from './../view/PropertyNumberView'; import PropertyView from './../view/PropertyView'; export default Backbone.Collection.extend(TypeableCollection).extend({ extendViewApi: 1, init() { const { opts, em } = this; const sm = opts.module || em?.get('StyleManager'); if (sm) { sm.__listenAdd(this, sm.events.propertyAdd); sm.__listenRemove(this, sm.events.propertyRemove); } }, types: [ { id: 'stack', model: PropertyStack, view: PropertyStackView, isType(value) { if (value && value.type == 'stack') { return value; } }, }, { id: 'composite', model: PropertyComposite, view: PropertyCompositeView, isType(value) { if (value && value.type == 'composite') { return value; } }, }, { id: 'file', model: Property, view: PropertyFileView, isType(value) { if (value && value.type == 'file') { return value; } }, }, { id: 'color', model: Property, view: PropertyColorView, isType(value) { if (value && value.type == 'color') { return value; } }, }, { id: 'select', model: PropertySelect, view: PropertySelectView, isType(value) { if (value && value.type == 'select') { return value; } }, }, { id: 'radio', model: PropertyRadio, view: PropertyRadioView, isType(value) { if (value && value.type == 'radio') { return value; } }, }, { id: 'slider', model: PropertySlider, view: PropertySliderView, isType(value) { if (value && value.type == 'slider') { return value; } }, }, { id: 'integer', model: PropertyNumber, view: PropertyNumberView, isType(value) { if (value && value.type == 'integer') { return value; } }, }, { id: 'number', model: PropertyNumber, view: PropertyNumberView, isType(value) { if (value && value.type == 'number') { return value; } }, }, { id: 'base', model: Property, view: PropertyView, isType(value) { value.type = 'base'; return value; }, }, ], });