diff --git a/src/dom_components/model/types.ts b/src/dom_components/model/types.ts index 67881100a..c59a4ce9b 100644 --- a/src/dom_components/model/types.ts +++ b/src/dom_components/model/types.ts @@ -18,7 +18,7 @@ export type DraggableDroppableFn = (source: Component, target: Component, index? export interface ComponentStackItem { id: string; model: typeof Component; - view: typeof ComponentView; + view: typeof ComponentView; } /** diff --git a/src/dom_components/view/ComponentFrameView.ts b/src/dom_components/view/ComponentFrameView.ts index 9a3c93f8c..7efc9e49e 100644 --- a/src/dom_components/view/ComponentFrameView.ts +++ b/src/dom_components/view/ComponentFrameView.ts @@ -1,7 +1,8 @@ import ComponentView from './ComponentView'; import { createEl, find, attrUp } from '../../utils/dom'; +import ComponentFrame from '../model/ComponentFrame'; -export default class ComponentFrameView extends ComponentView { +export default class ComponentFrameView extends ComponentView { tagName() { return 'div'; } diff --git a/src/dom_components/view/ComponentImageView.ts b/src/dom_components/view/ComponentImageView.ts index b7a03c904..595d0c70b 100644 --- a/src/dom_components/view/ComponentImageView.ts +++ b/src/dom_components/view/ComponentImageView.ts @@ -3,9 +3,8 @@ import { ObjectAny } from '../../common'; import ComponentImage from '../model/ComponentImage'; import ComponentView from './ComponentView'; -export default class ComponentImageView extends ComponentView { +export default class ComponentImageView extends ComponentView { classEmpty!: string; - model!: ComponentImage; el!: HTMLImageElement; tagName() { diff --git a/src/dom_components/view/ComponentLabelView.ts b/src/dom_components/view/ComponentLabelView.ts index 96640fa0c..b285d7aa0 100644 --- a/src/dom_components/view/ComponentLabelView.ts +++ b/src/dom_components/view/ComponentLabelView.ts @@ -1,3 +1,4 @@ -import ComponentLinkView from './ComponentLinkView'; +import ComponentLabel from '../model/ComponentLabel'; +import ComponentView from './ComponentView'; -export default class ComponentLabelView extends ComponentLinkView {} +export default class ComponentLabelView extends ComponentView {} diff --git a/src/dom_components/view/ComponentLinkView.ts b/src/dom_components/view/ComponentLinkView.ts index b5570b62c..9efc38c15 100644 --- a/src/dom_components/view/ComponentLinkView.ts +++ b/src/dom_components/view/ComponentLinkView.ts @@ -1,6 +1,7 @@ -import ComponentTextView from './ComponentTextView'; +import ComponentLink from '../model/ComponentLink'; +import ComponentView from './ComponentView'; -export default class ComponentLinkView extends ComponentTextView { +export default class ComponentLinkView extends ComponentView { render() { super.render(); // I need capturing instead of bubbling as bubbled clicks from other diff --git a/src/dom_components/view/ComponentScriptView.ts b/src/dom_components/view/ComponentScriptView.ts index 70f8ba167..dae5481da 100644 --- a/src/dom_components/view/ComponentScriptView.ts +++ b/src/dom_components/view/ComponentScriptView.ts @@ -1,6 +1,7 @@ +import ComponentScript from '../model/ComponentScript'; import ComponentView from './ComponentView'; -export default class ComponentScriptView extends ComponentView { +export default class ComponentScriptView extends ComponentView { tagName() { return 'script'; } diff --git a/src/dom_components/view/ComponentSvgView.ts b/src/dom_components/view/ComponentSvgView.ts index ad27bf7e7..36cdd6df3 100644 --- a/src/dom_components/view/ComponentSvgView.ts +++ b/src/dom_components/view/ComponentSvgView.ts @@ -1,6 +1,7 @@ +import ComponentSvg from '../model/ComponentSvg'; import ComponentView from './ComponentView'; -export default class ComponentSvgView extends ComponentView { +export default class ComponentSvgView extends ComponentView { _createElement(tagName: string) { return document.createElementNS('http://www.w3.org/2000/svg', tagName); } diff --git a/src/dom_components/view/ComponentTableBodyView.ts b/src/dom_components/view/ComponentTableBodyView.ts index 55f896cd3..e79d7546e 100644 --- a/src/dom_components/view/ComponentTableBodyView.ts +++ b/src/dom_components/view/ComponentTableBodyView.ts @@ -1,3 +1,4 @@ +import ComponentTableBody from '../model/ComponentTableBody'; import ComponentView from './ComponentView'; -export default class ComponentTableBodyView extends ComponentView {} +export default class ComponentTableBodyView extends ComponentView {} diff --git a/src/dom_components/view/ComponentTableCellView.ts b/src/dom_components/view/ComponentTableCellView.ts index 095fdbc38..dc6d3ee69 100644 --- a/src/dom_components/view/ComponentTableCellView.ts +++ b/src/dom_components/view/ComponentTableCellView.ts @@ -1,3 +1,4 @@ +import ComponentTableCell from '../model/ComponentTableCell'; import ComponentView from './ComponentView'; -export default class ComponentTableCellView extends ComponentView {} +export default class ComponentTableCellView extends ComponentView {} diff --git a/src/dom_components/view/ComponentTableFootView.ts b/src/dom_components/view/ComponentTableFootView.ts index 59a25e665..3f070ddd8 100644 --- a/src/dom_components/view/ComponentTableFootView.ts +++ b/src/dom_components/view/ComponentTableFootView.ts @@ -1,3 +1,4 @@ +import ComponentTableFoot from '../model/ComponentTableFoot'; import ComponentView from './ComponentView'; -export default class ComponentTableFootView extends ComponentView {} +export default class ComponentTableFootView extends ComponentView {} diff --git a/src/dom_components/view/ComponentTableHeadView.ts b/src/dom_components/view/ComponentTableHeadView.ts index 80535630e..a98ce988e 100644 --- a/src/dom_components/view/ComponentTableHeadView.ts +++ b/src/dom_components/view/ComponentTableHeadView.ts @@ -1,3 +1,4 @@ +import ComponentTableHead from '../model/ComponentTableHead'; import ComponentView from './ComponentView'; -export default class ComponentTableHeadView extends ComponentView {} +export default class ComponentTableHeadView extends ComponentView {} diff --git a/src/dom_components/view/ComponentTableRowView.ts b/src/dom_components/view/ComponentTableRowView.ts index 560e1c401..054df0e43 100644 --- a/src/dom_components/view/ComponentTableRowView.ts +++ b/src/dom_components/view/ComponentTableRowView.ts @@ -1,3 +1,4 @@ +import ComponentTableRow from '../model/ComponentTableRow'; import ComponentView from './ComponentView'; -export default class ComponentTableRowView extends ComponentView {} +export default class ComponentTableRowView extends ComponentView {} diff --git a/src/dom_components/view/ComponentTableView.ts b/src/dom_components/view/ComponentTableView.ts index ea061697d..f11dee446 100644 --- a/src/dom_components/view/ComponentTableView.ts +++ b/src/dom_components/view/ComponentTableView.ts @@ -1,5 +1,8 @@ +import ComponentTable from '../model/ComponentTable'; import ComponentView from './ComponentView'; -export default ComponentView.extend({ - events: {}, -}); +export default class ComponentTableView extends ComponentView { + events() { + return {}; + } +} diff --git a/src/dom_components/view/ComponentTextNodeView.ts b/src/dom_components/view/ComponentTextNodeView.ts index bd63e306a..1e3325dac 100644 --- a/src/dom_components/view/ComponentTextNodeView.ts +++ b/src/dom_components/view/ComponentTextNodeView.ts @@ -1,6 +1,9 @@ +import ComponentTextNode from '../model/ComponentTextNode'; import ComponentView from './ComponentView'; -export default class ComponentTextNodeView extends ComponentView { +export default class ComponentTextNodeView< + TComp extends ComponentTextNode = ComponentTextNode +> extends ComponentView { // Clear methods used on Nodes with attributes _setAttributes() {} renderAttributes() {} diff --git a/src/dom_components/view/ComponentTextView.ts b/src/dom_components/view/ComponentTextView.ts index 2292e4363..b0b379c35 100644 --- a/src/dom_components/view/ComponentTextView.ts +++ b/src/dom_components/view/ComponentTextView.ts @@ -6,10 +6,11 @@ import { off, on } from '../../utils/dom'; import { getComponentModel } from '../../utils/mixins'; import Component from '../model/Component'; import { getComponentIds } from '../model/Components'; +import ComponentText from '../model/ComponentText'; import { ComponentDefinition } from '../model/types'; import ComponentView from './ComponentView'; -export default class ComponentTextView extends ComponentView { +export default class ComponentTextView extends ComponentView { rte?: RichTextEditorModule; rteEnabled?: boolean; activeRte?: RichTextEditor; diff --git a/src/dom_components/view/ComponentVideoView.ts b/src/dom_components/view/ComponentVideoView.ts index e555b2f46..aa3b9020f 100644 --- a/src/dom_components/view/ComponentVideoView.ts +++ b/src/dom_components/view/ComponentVideoView.ts @@ -2,9 +2,8 @@ import ComponentVideo from '../model/ComponentVideo'; import ComponentImageView from './ComponentImageView'; import ComponentView from './ComponentView'; -export default class ComponentVideoView extends ComponentImageView { +export default class ComponentVideoView extends ComponentImageView { videoEl?: HTMLVideoElement | HTMLIFrameElement; - model!: ComponentVideo; tagName() { return 'div'; diff --git a/src/dom_components/view/ComponentView.ts b/src/dom_components/view/ComponentView.ts index f46692221..9b8701fdd 100644 --- a/src/dom_components/view/ComponentView.ts +++ b/src/dom_components/view/ComponentView.ts @@ -18,12 +18,12 @@ type ClbObj = ReturnType; export interface IComponentView extends ExtractMethods {} -export default class ComponentView extends View extends View { +TComp> { /** @ts-ignore */ - model!: Component; + model!: TComp; /** @ts-ignore */ className() {