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

2
src/dom_components/model/ComponentHead.ts

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

17
src/dom_components/model/ComponentWrapper.ts

@ -1,4 +1,5 @@
import Component from './Component'; import Component from './Component';
import ComponentHead, { type as typeHead } from './ComponentHead';
export default class ComponentWrapper extends Component { export default class ComponentWrapper extends Component {
get defaults() { get defaults() {
@ -11,6 +12,7 @@ export default class ComponentWrapper extends Component {
draggable: false, draggable: false,
components: [], components: [],
traits: [], traits: [],
head: null,
stylable: [ stylable: [
'background', 'background',
'background-color', '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() { __postAdd() {
const um = this.em?.UndoManager; const um = this.em?.UndoManager;
!this.__hasUm && um?.add(this); !this.__hasUm && um?.add(this);

Loading…
Cancel
Save