Browse Source

Add head to wrapper

pull/5895/head
Artur Arseniev 2 years ago
parent
commit
b9c9ccd323
  1. 6
      src/dom_components/index.ts
  2. 2
      src/dom_components/model/ComponentHead.ts
  3. 17
      src/dom_components/model/ComponentWrapper.ts

6
src/dom_components/index.ts

@ -101,6 +101,7 @@ import ComponentVideoView from './view/ComponentVideoView';
import ComponentView, { IComponentView } from './view/ComponentView';
import ComponentWrapperView from './view/ComponentWrapperView';
import ComponentsView from './view/ComponentsView';
import ComponentHead, { type as typeHead } from './model/ComponentHead';
export type ComponentEvent =
| 'component:create'
@ -260,6 +261,11 @@ export default class ComponentManager extends ItemManagerModule<DomComponentsCon
model: ComponentWrapper,
view: ComponentWrapperView,
},
{
id: typeHead,
model: ComponentHead,
view: ComponentView,
},
{
id: 'default',
model: Component,

2
src/dom_components/model/ComponentHead.ts

@ -1,7 +1,7 @@
import Component from './Component';
import { toLowerCase } from '../../utils/mixins';
const type = 'head';
export const type = 'head';
export default class ComponentHead extends Component {
get defaults() {

17
src/dom_components/model/ComponentWrapper.ts

@ -1,4 +1,5 @@
import Component from './Component';
import ComponentHead, { type as typeHead } from './ComponentHead';
export default class ComponentWrapper extends Component {
get defaults() {
@ -11,6 +12,7 @@ export default class ComponentWrapper extends Component {
draggable: false,
components: [],
traits: [],
head: null,
stylable: [
'background',
'background-color',
@ -23,6 +25,21 @@ export default class ComponentWrapper extends Component {
};
}
constructor(...args: ConstructorParameters<typeof Component>) {
super(...args);
const opts = args[1];
const CmpHead = opts?.em?.Components.getType(typeHead)?.model;
if (CmpHead) {
this.set({
head: new CmpHead({}, opts),
});
}
}
get head(): ComponentHead {
return this.get('head');
}
__postAdd() {
const um = this.em?.UndoManager;
!this.__hasUm && um?.add(this);

Loading…
Cancel
Save