From d550c20662866cc321f7c0cb3a654ad3456b1447 Mon Sep 17 00:00:00 2001 From: pmurray73 Date: Sat, 16 Jan 2021 10:09:42 -0500 Subject: [PATCH] add Style node, interfaces --- src/compiler/compile/nodes/Style.ts | 22 ++++++++++++++++++++++ src/compiler/compile/nodes/interfaces.ts | 2 ++ src/compiler/interfaces.ts | 2 ++ 3 files changed, 26 insertions(+) create mode 100644 src/compiler/compile/nodes/Style.ts diff --git a/src/compiler/compile/nodes/Style.ts b/src/compiler/compile/nodes/Style.ts new file mode 100644 index 0000000000..996118679b --- /dev/null +++ b/src/compiler/compile/nodes/Style.ts @@ -0,0 +1,22 @@ +import Node from './shared/Node'; +import Expression from './shared/Expression'; +import { TemplateNode } from '../../interfaces'; +import TemplateScope from './shared/TemplateScope'; +import Component from '../Component'; + +// @paul +export default class Style extends Node { + type: 'Style'; + name: string; + expression: Expression; + + constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) { + super(component, parent, scope, info); + + this.name = info.name; + + this.expression = info.expression + ? new Expression(component, this, scope, info.expression) + : null; + } +} diff --git a/src/compiler/compile/nodes/interfaces.ts b/src/compiler/compile/nodes/interfaces.ts index a98c21511f..2e2fa8b5e0 100644 --- a/src/compiler/compile/nodes/interfaces.ts +++ b/src/compiler/compile/nodes/interfaces.ts @@ -8,6 +8,7 @@ import Binding from './Binding'; import Body from './Body'; import CatchBlock from './CatchBlock'; import Class from './Class'; +import Style from './Style'; import Comment from './Comment'; import DebugTag from './DebugTag'; import EachBlock from './EachBlock'; @@ -62,6 +63,7 @@ export type INode = Action | Slot | SlotTemplate | DefaultSlotTemplate +| Style | Tag | Text | ThenBlock diff --git a/src/compiler/interfaces.ts b/src/compiler/interfaces.ts index ce585b5b78..122c873d02 100644 --- a/src/compiler/interfaces.ts +++ b/src/compiler/interfaces.ts @@ -24,10 +24,12 @@ export interface MustacheTag extends BaseNode { expression: Node; } +// @paul export type DirectiveType = 'Action' | 'Animation' | 'Binding' | 'Class' +| 'Style' | 'EventHandler' | 'Let' | 'Ref'