Browse Source

Start data variable component

ci/dependabot
Artur Arseniev 3 years ago
parent
commit
88a1f7f18b
  1. 7
      src/dom_components/index.ts
  2. 19
      src/dom_components/model/ComponentDataVariable.ts
  3. 19
      src/dom_components/view/ComponentDataVariableView.ts

7
src/dom_components/index.ts

@ -101,6 +101,8 @@ 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 ComponentDataVariable, { type as typeVariable } from './model/ComponentDataVariable';
import ComponentDataVariableView from './view/ComponentDataVariableView';
export type ComponentEvent = export type ComponentEvent =
| 'component:create' | 'component:create'
@ -165,6 +167,11 @@ export interface CanMoveResult {
export default class ComponentManager extends ItemManagerModule<DomComponentsConfig, any> { export default class ComponentManager extends ItemManagerModule<DomComponentsConfig, any> {
componentTypes: ComponentStackItem[] = [ componentTypes: ComponentStackItem[] = [
{
id: typeVariable,
model: ComponentDataVariable,
view: ComponentDataVariableView,
},
{ {
id: 'cell', id: 'cell',
model: ComponentTableCell, model: ComponentTableCell,

19
src/dom_components/model/ComponentDataVariable.ts

@ -0,0 +1,19 @@
import { toLowerCase } from '../../utils/mixins';
import Component from './Component';
export const type = 'data-variable';
export default class ComponentDataVariable extends Component {
get defaults() {
return {
// @ts-ignore
...super.defaults,
type,
source: '',
};
}
static isComponent(el: HTMLElement) {
return toLowerCase(el.tagName) === type;
}
}

19
src/dom_components/view/ComponentDataVariableView.ts

@ -0,0 +1,19 @@
import ComponentDataVariable from '../model/ComponentDataVariable';
import ComponentView from './ComponentView';
export default class ComponentDataVariableView extends ComponentView<ComponentDataVariable> {
initialize(opt = {}) {
super.initialize(opt);
const { model, em } = this;
const { key } = model.attributes;
this.listenTo(em, key, () => this.postRender());
}
postRender() {
const { key, default: def } = this.model.attributes;
// this.el.innerHTML = getValue(key, def);
this.el.innerHTML = def;
console.log('this.el.innerHTML', { key, def });
super.postRender();
}
}
Loading…
Cancel
Save