mirror of https://github.com/artf/grapesjs.git
Browse Source
* Refactor Traits Collection * Fix css prefix * Fix trait undo and add test for it --------- Co-authored-by: Artur Arseniev <artur.catch@hotmail.it>pull/5196/head
committed by
GitHub
9 changed files with 125 additions and 77 deletions
@ -1,35 +1,35 @@ |
|||
import { TraitManagerConfig } from '../config/config'; |
|||
import { TraitProperties } from './Trait'; |
|||
import { isString } from 'underscore'; |
|||
import Trait, { TraitProperties } from './Trait'; |
|||
import EditorModel from '../../editor/model/Editor'; |
|||
|
|||
export default class TraitFactory { |
|||
config: Partial<TraitManagerConfig>; |
|||
|
|||
constructor(config: Partial<TraitManagerConfig> = {}) { |
|||
this.config = config; |
|||
} |
|||
|
|||
export default (config: Partial<TraitManagerConfig> = {}) => ({ |
|||
/** |
|||
* Build props object by their name |
|||
* @param {Array<string>|string} props Array of properties name |
|||
* @return {Array<Object>} |
|||
*/ |
|||
build(props: string | string[]) { |
|||
const objs = []; |
|||
|
|||
if (typeof props === 'string') props = [props]; |
|||
build(prop: string | TraitProperties, em: EditorModel): Trait { |
|||
return isString(prop) ? this.buildFromString(prop, em) : new Trait(prop, em); |
|||
} |
|||
|
|||
for (let i = 0; i < props.length; i++) { |
|||
const prop = props[i]; |
|||
const obj: TraitProperties = { |
|||
name: prop, |
|||
type: 'text', |
|||
}; |
|||
private buildFromString(name: string, em: EditorModel): Trait { |
|||
const obj: TraitProperties = { |
|||
name: name, |
|||
type: 'text', |
|||
}; |
|||
|
|||
switch (prop) { |
|||
case 'target': |
|||
obj.type = 'select'; |
|||
obj.default = false; |
|||
obj.options = config.optionsTarget; |
|||
break; |
|||
} |
|||
|
|||
objs.push(obj); |
|||
switch (name) { |
|||
case 'target': |
|||
obj.type = 'select'; |
|||
obj.default = false; |
|||
obj.options = this.config.optionsTarget; |
|||
break; |
|||
} |
|||
|
|||
return objs; |
|||
}, |
|||
}); |
|||
return new Trait(obj, em); |
|||
} |
|||
} |
|||
|
|||
Loading…
Reference in new issue