@tiptap/extension-strike 2.0.0-beta.21 → 2.0.0-beta.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tiptap/extension-strike",
3
3
  "description": "strike extension for tiptap",
4
- "version": "2.0.0-beta.21",
4
+ "version": "2.0.0-beta.25",
5
5
  "homepage": "https://tiptap.dev",
6
6
  "keywords": [
7
7
  "tiptap",
@@ -28,5 +28,5 @@
28
28
  "url": "https://github.com/ueberdosis/tiptap",
29
29
  "directory": "packages/extension-strike"
30
30
  },
31
- "gitHead": "9948e2499a3aa6ca72b677ef2ca96de1db1cb6b5"
31
+ "gitHead": "fce16e805824972834d5a8ce8d60e3ff41d63c7e"
32
32
  }
package/src/strike.ts CHANGED
@@ -34,8 +34,10 @@ export const pasteRegex = /(?:^|\s)((?:~~)((?:[^~]+))(?:~~))/g
34
34
  export const Strike = Mark.create<StrikeOptions>({
35
35
  name: 'strike',
36
36
 
37
- defaultOptions: {
38
- HTMLAttributes: {},
37
+ addOptions() {
38
+ return {
39
+ HTMLAttributes: {},
40
+ }
39
41
  },
40
42
 
41
43
  parseHTML() {
@@ -1,3 +0,0 @@
1
- import { Strike } from './strike';
2
- export * from './strike';
3
- export default Strike;
@@ -1,25 +0,0 @@
1
- import { Mark } from '@tiptap/core';
2
- export interface StrikeOptions {
3
- HTMLAttributes: Record<string, any>;
4
- }
5
- declare module '@tiptap/core' {
6
- interface Commands<ReturnType> {
7
- strike: {
8
- /**
9
- * Set a strike mark
10
- */
11
- setStrike: () => ReturnType;
12
- /**
13
- * Toggle a strike mark
14
- */
15
- toggleStrike: () => ReturnType;
16
- /**
17
- * Unset a strike mark
18
- */
19
- unsetStrike: () => ReturnType;
20
- };
21
- }
22
- }
23
- export declare const inputRegex: RegExp;
24
- export declare const pasteRegex: RegExp;
25
- export declare const Strike: Mark<StrikeOptions>;
@@ -1,75 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var core = require('@tiptap/core');
6
-
7
- const inputRegex = /(?:^|\s)((?:~~)((?:[^~]+))(?:~~))$/;
8
- const pasteRegex = /(?:^|\s)((?:~~)((?:[^~]+))(?:~~))/g;
9
- const Strike = core.Mark.create({
10
- name: 'strike',
11
- defaultOptions: {
12
- HTMLAttributes: {},
13
- },
14
- parseHTML() {
15
- return [
16
- {
17
- tag: 's',
18
- },
19
- {
20
- tag: 'del',
21
- },
22
- {
23
- tag: 'strike',
24
- },
25
- {
26
- style: 'text-decoration',
27
- consuming: false,
28
- getAttrs: style => (style.includes('line-through') ? {} : false),
29
- },
30
- ];
31
- },
32
- renderHTML({ HTMLAttributes }) {
33
- return ['s', core.mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
34
- },
35
- addCommands() {
36
- return {
37
- setStrike: () => ({ commands }) => {
38
- return commands.setMark('strike');
39
- },
40
- toggleStrike: () => ({ commands }) => {
41
- return commands.toggleMark('strike');
42
- },
43
- unsetStrike: () => ({ commands }) => {
44
- return commands.unsetMark('strike');
45
- },
46
- };
47
- },
48
- addKeyboardShortcuts() {
49
- return {
50
- 'Mod-Shift-x': () => this.editor.commands.toggleStrike(),
51
- };
52
- },
53
- addInputRules() {
54
- return [
55
- core.markInputRule({
56
- find: inputRegex,
57
- type: this.type,
58
- }),
59
- ];
60
- },
61
- addPasteRules() {
62
- return [
63
- core.markPasteRule({
64
- find: pasteRegex,
65
- type: this.type,
66
- }),
67
- ];
68
- },
69
- });
70
-
71
- exports.Strike = Strike;
72
- exports["default"] = Strike;
73
- exports.inputRegex = inputRegex;
74
- exports.pasteRegex = pasteRegex;
75
- //# sourceMappingURL=tiptap-extension-strike.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tiptap-extension-strike.cjs.js","sources":["../src/strike.ts"],"sourcesContent":["import {\n Mark,\n markInputRule,\n markPasteRule,\n mergeAttributes,\n} from '@tiptap/core'\n\nexport interface StrikeOptions {\n HTMLAttributes: Record<string, any>,\n}\n\ndeclare module '@tiptap/core' {\n interface Commands<ReturnType> {\n strike: {\n /**\n * Set a strike mark\n */\n setStrike: () => ReturnType,\n /**\n * Toggle a strike mark\n */\n toggleStrike: () => ReturnType,\n /**\n * Unset a strike mark\n */\n unsetStrike: () => ReturnType,\n }\n }\n}\n\nexport const inputRegex = /(?:^|\\s)((?:~~)((?:[^~]+))(?:~~))$/\nexport const pasteRegex = /(?:^|\\s)((?:~~)((?:[^~]+))(?:~~))/g\n\nexport const Strike = Mark.create<StrikeOptions>({\n name: 'strike',\n\n defaultOptions: {\n HTMLAttributes: {},\n },\n\n parseHTML() {\n return [\n {\n tag: 's',\n },\n {\n tag: 'del',\n },\n {\n tag: 'strike',\n },\n {\n style: 'text-decoration',\n consuming: false,\n getAttrs: style => ((style as string).includes('line-through') ? {} : false),\n },\n ]\n },\n\n renderHTML({ HTMLAttributes }) {\n return ['s', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0]\n },\n\n addCommands() {\n return {\n setStrike: () => ({ commands }) => {\n return commands.setMark('strike')\n },\n toggleStrike: () => ({ commands }) => {\n return commands.toggleMark('strike')\n },\n unsetStrike: () => ({ commands }) => {\n return commands.unsetMark('strike')\n },\n }\n },\n\n addKeyboardShortcuts() {\n return {\n 'Mod-Shift-x': () => this.editor.commands.toggleStrike(),\n }\n },\n\n addInputRules() {\n return [\n markInputRule({\n find: inputRegex,\n type: this.type,\n }),\n ]\n },\n\n addPasteRules() {\n return [\n markPasteRule({\n find: pasteRegex,\n type: this.type,\n }),\n ]\n },\n})\n"],"names":["Mark","mergeAttributes","markInputRule","markPasteRule"],"mappings":";;;;;;MA8Ba,UAAU,GAAG,qCAAoC;MACjD,UAAU,GAAG,qCAAoC;MAEjD,MAAM,GAAGA,SAAI,CAAC,MAAM,CAAgB;IAC/C,IAAI,EAAE,QAAQ;IAEd,cAAc,EAAE;QACd,cAAc,EAAE,EAAE;KACnB;IAED,SAAS;QACP,OAAO;YACL;gBACE,GAAG,EAAE,GAAG;aACT;YACD;gBACE,GAAG,EAAE,KAAK;aACX;YACD;gBACE,GAAG,EAAE,QAAQ;aACd;YACD;gBACE,KAAK,EAAE,iBAAiB;gBACxB,SAAS,EAAE,KAAK;gBAChB,QAAQ,EAAE,KAAK,KAAM,KAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;aAC7E;SACF,CAAA;KACF;IAED,UAAU,CAAC,EAAE,cAAc,EAAE;QAC3B,OAAO,CAAC,GAAG,EAAEC,oBAAe,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,CAAA;KAC9E;IAED,WAAW;QACT,OAAO;YACL,SAAS,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE;gBAC5B,OAAO,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;aAClC;YACD,YAAY,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE;gBAC/B,OAAO,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;aACrC;YACD,WAAW,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE;gBAC9B,OAAO,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;aACpC;SACF,CAAA;KACF;IAED,oBAAoB;QAClB,OAAO;YACL,aAAa,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE;SACzD,CAAA;KACF;IAED,aAAa;QACX,OAAO;YACLC,kBAAa,CAAC;gBACZ,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC;SACH,CAAA;KACF;IAED,aAAa;QACX,OAAO;YACLC,kBAAa,CAAC;gBACZ,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC;SACH,CAAA;KACF;CACF;;;;;;;"}
@@ -1,68 +0,0 @@
1
- import { Mark, mergeAttributes, markInputRule, markPasteRule } from '@tiptap/core';
2
-
3
- const inputRegex = /(?:^|\s)((?:~~)((?:[^~]+))(?:~~))$/;
4
- const pasteRegex = /(?:^|\s)((?:~~)((?:[^~]+))(?:~~))/g;
5
- const Strike = Mark.create({
6
- name: 'strike',
7
- defaultOptions: {
8
- HTMLAttributes: {},
9
- },
10
- parseHTML() {
11
- return [
12
- {
13
- tag: 's',
14
- },
15
- {
16
- tag: 'del',
17
- },
18
- {
19
- tag: 'strike',
20
- },
21
- {
22
- style: 'text-decoration',
23
- consuming: false,
24
- getAttrs: style => (style.includes('line-through') ? {} : false),
25
- },
26
- ];
27
- },
28
- renderHTML({ HTMLAttributes }) {
29
- return ['s', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
30
- },
31
- addCommands() {
32
- return {
33
- setStrike: () => ({ commands }) => {
34
- return commands.setMark('strike');
35
- },
36
- toggleStrike: () => ({ commands }) => {
37
- return commands.toggleMark('strike');
38
- },
39
- unsetStrike: () => ({ commands }) => {
40
- return commands.unsetMark('strike');
41
- },
42
- };
43
- },
44
- addKeyboardShortcuts() {
45
- return {
46
- 'Mod-Shift-x': () => this.editor.commands.toggleStrike(),
47
- };
48
- },
49
- addInputRules() {
50
- return [
51
- markInputRule({
52
- find: inputRegex,
53
- type: this.type,
54
- }),
55
- ];
56
- },
57
- addPasteRules() {
58
- return [
59
- markPasteRule({
60
- find: pasteRegex,
61
- type: this.type,
62
- }),
63
- ];
64
- },
65
- });
66
-
67
- export { Strike, Strike as default, inputRegex, pasteRegex };
68
- //# sourceMappingURL=tiptap-extension-strike.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tiptap-extension-strike.esm.js","sources":["../src/strike.ts"],"sourcesContent":["import {\n Mark,\n markInputRule,\n markPasteRule,\n mergeAttributes,\n} from '@tiptap/core'\n\nexport interface StrikeOptions {\n HTMLAttributes: Record<string, any>,\n}\n\ndeclare module '@tiptap/core' {\n interface Commands<ReturnType> {\n strike: {\n /**\n * Set a strike mark\n */\n setStrike: () => ReturnType,\n /**\n * Toggle a strike mark\n */\n toggleStrike: () => ReturnType,\n /**\n * Unset a strike mark\n */\n unsetStrike: () => ReturnType,\n }\n }\n}\n\nexport const inputRegex = /(?:^|\\s)((?:~~)((?:[^~]+))(?:~~))$/\nexport const pasteRegex = /(?:^|\\s)((?:~~)((?:[^~]+))(?:~~))/g\n\nexport const Strike = Mark.create<StrikeOptions>({\n name: 'strike',\n\n defaultOptions: {\n HTMLAttributes: {},\n },\n\n parseHTML() {\n return [\n {\n tag: 's',\n },\n {\n tag: 'del',\n },\n {\n tag: 'strike',\n },\n {\n style: 'text-decoration',\n consuming: false,\n getAttrs: style => ((style as string).includes('line-through') ? {} : false),\n },\n ]\n },\n\n renderHTML({ HTMLAttributes }) {\n return ['s', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0]\n },\n\n addCommands() {\n return {\n setStrike: () => ({ commands }) => {\n return commands.setMark('strike')\n },\n toggleStrike: () => ({ commands }) => {\n return commands.toggleMark('strike')\n },\n unsetStrike: () => ({ commands }) => {\n return commands.unsetMark('strike')\n },\n }\n },\n\n addKeyboardShortcuts() {\n return {\n 'Mod-Shift-x': () => this.editor.commands.toggleStrike(),\n }\n },\n\n addInputRules() {\n return [\n markInputRule({\n find: inputRegex,\n type: this.type,\n }),\n ]\n },\n\n addPasteRules() {\n return [\n markPasteRule({\n find: pasteRegex,\n type: this.type,\n }),\n ]\n },\n})\n"],"names":[],"mappings":";;MA8Ba,UAAU,GAAG,qCAAoC;MACjD,UAAU,GAAG,qCAAoC;MAEjD,MAAM,GAAG,IAAI,CAAC,MAAM,CAAgB;IAC/C,IAAI,EAAE,QAAQ;IAEd,cAAc,EAAE;QACd,cAAc,EAAE,EAAE;KACnB;IAED,SAAS;QACP,OAAO;YACL;gBACE,GAAG,EAAE,GAAG;aACT;YACD;gBACE,GAAG,EAAE,KAAK;aACX;YACD;gBACE,GAAG,EAAE,QAAQ;aACd;YACD;gBACE,KAAK,EAAE,iBAAiB;gBACxB,SAAS,EAAE,KAAK;gBAChB,QAAQ,EAAE,KAAK,KAAM,KAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;aAC7E;SACF,CAAA;KACF;IAED,UAAU,CAAC,EAAE,cAAc,EAAE;QAC3B,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,CAAA;KAC9E;IAED,WAAW;QACT,OAAO;YACL,SAAS,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE;gBAC5B,OAAO,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;aAClC;YACD,YAAY,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE;gBAC/B,OAAO,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;aACrC;YACD,WAAW,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE;gBAC9B,OAAO,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;aACpC;SACF,CAAA;KACF;IAED,oBAAoB;QAClB,OAAO;YACL,aAAa,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE;SACzD,CAAA;KACF;IAED,aAAa;QACX,OAAO;YACL,aAAa,CAAC;gBACZ,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC;SACH,CAAA;KACF;IAED,aAAa;QACX,OAAO;YACL,aAAa,CAAC;gBACZ,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC;SACH,CAAA;KACF;CACF;;;;"}
@@ -1,79 +0,0 @@
1
- (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@tiptap/core')) :
3
- typeof define === 'function' && define.amd ? define(['exports', '@tiptap/core'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["@tiptap/extension-strike"] = {}, global.core));
5
- })(this, (function (exports, core) { 'use strict';
6
-
7
- const inputRegex = /(?:^|\s)((?:~~)((?:[^~]+))(?:~~))$/;
8
- const pasteRegex = /(?:^|\s)((?:~~)((?:[^~]+))(?:~~))/g;
9
- const Strike = core.Mark.create({
10
- name: 'strike',
11
- defaultOptions: {
12
- HTMLAttributes: {},
13
- },
14
- parseHTML() {
15
- return [
16
- {
17
- tag: 's',
18
- },
19
- {
20
- tag: 'del',
21
- },
22
- {
23
- tag: 'strike',
24
- },
25
- {
26
- style: 'text-decoration',
27
- consuming: false,
28
- getAttrs: style => (style.includes('line-through') ? {} : false),
29
- },
30
- ];
31
- },
32
- renderHTML({ HTMLAttributes }) {
33
- return ['s', core.mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
34
- },
35
- addCommands() {
36
- return {
37
- setStrike: () => ({ commands }) => {
38
- return commands.setMark('strike');
39
- },
40
- toggleStrike: () => ({ commands }) => {
41
- return commands.toggleMark('strike');
42
- },
43
- unsetStrike: () => ({ commands }) => {
44
- return commands.unsetMark('strike');
45
- },
46
- };
47
- },
48
- addKeyboardShortcuts() {
49
- return {
50
- 'Mod-Shift-x': () => this.editor.commands.toggleStrike(),
51
- };
52
- },
53
- addInputRules() {
54
- return [
55
- core.markInputRule({
56
- find: inputRegex,
57
- type: this.type,
58
- }),
59
- ];
60
- },
61
- addPasteRules() {
62
- return [
63
- core.markPasteRule({
64
- find: pasteRegex,
65
- type: this.type,
66
- }),
67
- ];
68
- },
69
- });
70
-
71
- exports.Strike = Strike;
72
- exports["default"] = Strike;
73
- exports.inputRegex = inputRegex;
74
- exports.pasteRegex = pasteRegex;
75
-
76
- Object.defineProperty(exports, '__esModule', { value: true });
77
-
78
- }));
79
- //# sourceMappingURL=tiptap-extension-strike.umd.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tiptap-extension-strike.umd.js","sources":["../src/strike.ts"],"sourcesContent":["import {\n Mark,\n markInputRule,\n markPasteRule,\n mergeAttributes,\n} from '@tiptap/core'\n\nexport interface StrikeOptions {\n HTMLAttributes: Record<string, any>,\n}\n\ndeclare module '@tiptap/core' {\n interface Commands<ReturnType> {\n strike: {\n /**\n * Set a strike mark\n */\n setStrike: () => ReturnType,\n /**\n * Toggle a strike mark\n */\n toggleStrike: () => ReturnType,\n /**\n * Unset a strike mark\n */\n unsetStrike: () => ReturnType,\n }\n }\n}\n\nexport const inputRegex = /(?:^|\\s)((?:~~)((?:[^~]+))(?:~~))$/\nexport const pasteRegex = /(?:^|\\s)((?:~~)((?:[^~]+))(?:~~))/g\n\nexport const Strike = Mark.create<StrikeOptions>({\n name: 'strike',\n\n defaultOptions: {\n HTMLAttributes: {},\n },\n\n parseHTML() {\n return [\n {\n tag: 's',\n },\n {\n tag: 'del',\n },\n {\n tag: 'strike',\n },\n {\n style: 'text-decoration',\n consuming: false,\n getAttrs: style => ((style as string).includes('line-through') ? {} : false),\n },\n ]\n },\n\n renderHTML({ HTMLAttributes }) {\n return ['s', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0]\n },\n\n addCommands() {\n return {\n setStrike: () => ({ commands }) => {\n return commands.setMark('strike')\n },\n toggleStrike: () => ({ commands }) => {\n return commands.toggleMark('strike')\n },\n unsetStrike: () => ({ commands }) => {\n return commands.unsetMark('strike')\n },\n }\n },\n\n addKeyboardShortcuts() {\n return {\n 'Mod-Shift-x': () => this.editor.commands.toggleStrike(),\n }\n },\n\n addInputRules() {\n return [\n markInputRule({\n find: inputRegex,\n type: this.type,\n }),\n ]\n },\n\n addPasteRules() {\n return [\n markPasteRule({\n find: pasteRegex,\n type: this.type,\n }),\n ]\n },\n})\n"],"names":["Mark","mergeAttributes","markInputRule","markPasteRule"],"mappings":";;;;;;QA8Ba,UAAU,GAAG,qCAAoC;QACjD,UAAU,GAAG,qCAAoC;QAEjD,MAAM,GAAGA,SAAI,CAAC,MAAM,CAAgB;MAC/C,IAAI,EAAE,QAAQ;MAEd,cAAc,EAAE;UACd,cAAc,EAAE,EAAE;OACnB;MAED,SAAS;UACP,OAAO;cACL;kBACE,GAAG,EAAE,GAAG;eACT;cACD;kBACE,GAAG,EAAE,KAAK;eACX;cACD;kBACE,GAAG,EAAE,QAAQ;eACd;cACD;kBACE,KAAK,EAAE,iBAAiB;kBACxB,SAAS,EAAE,KAAK;kBAChB,QAAQ,EAAE,KAAK,KAAM,KAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;eAC7E;WACF,CAAA;OACF;MAED,UAAU,CAAC,EAAE,cAAc,EAAE;UAC3B,OAAO,CAAC,GAAG,EAAEC,oBAAe,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,CAAA;OAC9E;MAED,WAAW;UACT,OAAO;cACL,SAAS,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE;kBAC5B,OAAO,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;eAClC;cACD,YAAY,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE;kBAC/B,OAAO,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;eACrC;cACD,WAAW,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE;kBAC9B,OAAO,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;eACpC;WACF,CAAA;OACF;MAED,oBAAoB;UAClB,OAAO;cACL,aAAa,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE;WACzD,CAAA;OACF;MAED,aAAa;UACX,OAAO;cACLC,kBAAa,CAAC;kBACZ,IAAI,EAAE,UAAU;kBAChB,IAAI,EAAE,IAAI,CAAC,IAAI;eAChB,CAAC;WACH,CAAA;OACF;MAED,aAAa;UACX,OAAO;cACLC,kBAAa,CAAC;kBACZ,IAAI,EAAE,UAAU;kBAChB,IAAI,EAAE,IAAI,CAAC,IAAI;eAChB,CAAC;WACH,CAAA;OACF;GACF;;;;;;;;;;;;;"}