summaryrefslogtreecommitdiff
path: root/packages/webapi/src/lib/CharacterData.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/webapi/src/lib/CharacterData.ts')
-rw-r--r--packages/webapi/src/lib/CharacterData.ts36
1 files changed, 36 insertions, 0 deletions
diff --git a/packages/webapi/src/lib/CharacterData.ts b/packages/webapi/src/lib/CharacterData.ts
new file mode 100644
index 000000000..8bbcce12d
--- /dev/null
+++ b/packages/webapi/src/lib/CharacterData.ts
@@ -0,0 +1,36 @@
+import * as _ from './utils'
+
+export class CharacterData extends Node {
+ constructor(data: string) {
+ _.INTERNALS.set(super(), {
+ data: String(data),
+ } as CharacterDataInternals)
+ }
+ get data(): string {
+ return _.internalsOf<CharacterDataInternals>(this, 'CharacterData', 'data').data
+ }
+
+ get textContent(): string {
+ return _.internalsOf<CharacterDataInternals>(this, 'CharacterData', 'textContent').data
+ }
+}
+
+export class Comment extends CharacterData {}
+
+export class Text extends CharacterData {
+ get assignedSlot(): HTMLSlotElement | null {
+ return null
+ }
+
+ get wholeText(): string {
+ return _.internalsOf<CharacterDataInternals>(this, 'CharacterData', 'textContent').data
+ }
+}
+
+_.allowStringTag(CharacterData)
+_.allowStringTag(Text)
+_.allowStringTag(Comment)
+
+interface CharacterDataInternals {
+ data: string
+}