@drincs/pixi-vn-ink 0.1.0 → 0.1.1

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/README.md CHANGED
@@ -1,15 +1,15 @@
1
- # pixi-vn-ink
2
-
3
- npm library to import .ink files into pixi-vn
4
-
5
- ## install project
6
-
7
- ```bash
8
- git clone https://github.com/DRincs-Productions/pixi-vn-ink
9
- git submodule update --init --recursive
10
- npm install
11
- ```
12
-
13
- ## Run tests
14
-
15
- Press F5 in vscode to run tests
1
+ # Pixi'VN + Ink
2
+
3
+ npm library to import .ink files into pixi-vn
4
+
5
+ ## install project
6
+
7
+ ```bash
8
+ git clone https://github.com/DRincs-Productions/pixi-vn-ink
9
+ git submodule update --init --recursive
10
+ npm install
11
+ ```
12
+
13
+ ## Run tests
14
+
15
+ Press F5 in vscode to run tests
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/functions/ChoiceInfoConverter.ts"],"names":[],"mappings":";;;AAGO,SAAS,cAAA,CAAe,OAAc,MAAwB,EAAA;AACjE,EAAA,IAAI,IAAe,GAAA,EAAA,CAAA;AACnB,EAAA,IAAI,KAAgB,GAAA,EAAA,CAAA;AACpB,EAAA,IAAI,SAAoB,GAAA,EAAA,CAAA;AACxB,EAAM,KAAA,CAAA,OAAA,CAAQ,CAAC,CAAA,EAAG,KAAU,KAAA;AACxB,IAAI,IAAA,OAAO,MAAM,QAAU,EAAA;AAEvB,MAAI,IAAA,CAAA,CAAE,UAAW,CAAA,GAAG,CAAG,EAAA;AACnB,QAAO,IAAA,GAAA,CAAA,CAAE,UAAU,CAAC,CAAA,CAAA;AAAA,OACxB;AAAA,KAEK,MAAA,IAAA,CAAA,IAAK,OAAO,CAAA,KAAM,QAAU,EAAA;AAEjC,MAAA,IAAI,OAAO,CAAK,IAAA,OAAO,CAAE,CAAA,GAAG,KAAK,OAAO,CAAA,CAAE,GAAG,CAAA,KAAM,YAAY,CAAE,CAAA,GAAG,CAAE,CAAA,QAAA,CAAS,GAAG,CAAG,EAAA;AACjF,QAAI,IAAA,CAAA,GAAI,MAAM,CAAE,CAAA,GAAG,EAAE,KAAM,CAAA,GAAG,EAAE,CAAC,CAAA,CAAA;AACjC,QAAQ,KAAA,GAAA,CAAA,CAAA;AAAA,iBAGH,GAAO,IAAA,CAAA,IAAK,CAAE,CAAA,GAAG,aAAa,KAAO,EAAA;AAC1C,QAAA,IAAI,CAAI,GAAA,cAAA,CAAe,CAAE,CAAA,GAAG,CAAC,CAAA,CAAA;AAC7B,QAAA,IAAI,CAAG,EAAA;AACH,UAAO,IAAA,GAAA,CAAA,CAAA;AACP,UAAY,SAAA,GAAA,CAAA,CAAA;AAAA,SAChB;AAAA,OACJ;AAAA,KACJ;AACA,IAAA,IAAI,QAAQ,KAAO,EAAA;AACf,MAAI,IAAA,MAAA,CAAO,KAAK,CAAG,EAAA;AACf,QAAA,MAAA,CAAO,KAAK,CAAE,CAAA,IAAA,GAAO,IAAO,GAAA,MAAA,CAAO,KAAK,CAAE,CAAA,IAAA,CAAA;AAAA,OAEzC,MAAA;AACD,QAAO,MAAA,CAAA,KAAK,CAAI,GAAA,EAAE,IAAW,EAAA,CAAA;AAAA,OACjC;AACA,MAAA,IAAI,SAAW,EAAA;AACX,QAAA,MAAA,CAAO,KAAK,CAAA,CAAE,SAAY,GAAA,EAAE,MAAM,SAAU,EAAA,CAAA;AAAA,OAChD;AAEA,MAAA,IAAI,WAAc,GAAA,KAAA,CAAM,KAAM,CAAA,KAAA,GAAQ,CAAC,CAAA,CAAA;AACvC,MAAA,cAAA,CAAe,aAAa,MAAM,CAAA,CAAA;AAClC,MAAA,OAAA;AAAA,KACJ;AAAA,GACH,CAAA,CAAA;AACL,CAAA;AAEA,SAAS,eAAe,KAAiD,EAAA;AACrE,EAAA,KAAA,MAAW,QAAQ,KAAO,EAAA;AACtB,IAAI,IAAA,OAAO,SAAS,QAAU,EAAA;AAC1B,MAAI,IAAA,IAAA,CAAK,UAAW,CAAA,GAAG,CAAG,EAAA;AACtB,QAAO,OAAA,IAAA,CAAK,UAAU,CAAC,CAAA,CAAA;AAAA,OAC3B;AAAA,KACJ,MAAA,IACS,gBAAgB,KAAO,EAAA;AAC5B,MAAI,IAAA,GAAA,GAAM,eAAe,IAAI,CAAA,CAAA;AAC7B,MAAA,IAAI,GAAK,EAAA;AACL,QAAO,OAAA,GAAA,CAAA;AAAA,OACX;AAAA,KACJ;AAAA,GACJ;AACJ","file":"ChoiceInfoConverter.js","sourcesContent":["import LabelChoiceRes from '../types/LabelChoiceRes';\r\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\r\n\r\nexport function getLabelChoice(items: any[], result: LabelChoiceRes) {\r\n let text: string = \"\"\r\n let label: string = \"\"\r\n let preDialog: string = \"\"\r\n items.forEach((v, index) => {\r\n if (typeof v === \"string\") {\r\n // Dialog\r\n if (v.startsWith(\"^\")) {\r\n text = v.substring(1)\r\n }\r\n }\r\n else if (v && typeof v === \"object\") {\r\n // if is a choice\r\n if (\"*\" in v && typeof v[\"*\"] && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\r\n let l = \"c\" + v[\"*\"].split(\"c\")[1]\r\n label = l\r\n }\r\n // if is choise info\r\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\r\n let t = findChoiceText(v[\"s\"])\r\n if (t) {\r\n text = t\r\n preDialog = t\r\n }\r\n }\r\n }\r\n if (text && label) {\r\n if (result[label]) {\r\n result[label].text = text + result[label].text\r\n }\r\n else {\r\n result[label] = { text: text }\r\n }\r\n if (preDialog) {\r\n result[label].preDialog = { text: preDialog }\r\n }\r\n // split text and label\r\n let newListItem = items.slice(index + 1)\r\n getLabelChoice(newListItem, result)\r\n return\r\n }\r\n })\r\n}\r\n\r\nfunction findChoiceText(items: RootParserItemType[]): string | undefined {\r\n for (const item of items) {\r\n if (typeof item === \"string\") {\r\n if (item.startsWith(\"^\")) {\r\n return item.substring(1)\r\n }\r\n }\r\n else if (item instanceof Array) {\r\n let res = findChoiceText(item)\r\n if (res) {\r\n return res\r\n }\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../src/functions/ChoiceInfoConverter.ts"],"names":[],"mappings":";;;AAGO,SAAS,cAAA,CAAe,OAAc,MAAwB,EAAA;AACjE,EAAA,IAAI,IAAe,GAAA,EAAA,CAAA;AACnB,EAAA,IAAI,KAAgB,GAAA,EAAA,CAAA;AACpB,EAAA,IAAI,SAAoB,GAAA,EAAA,CAAA;AACxB,EAAM,KAAA,CAAA,OAAA,CAAQ,CAAC,CAAA,EAAG,KAAU,KAAA;AACxB,IAAI,IAAA,OAAO,MAAM,QAAU,EAAA;AAEvB,MAAI,IAAA,CAAA,CAAE,UAAW,CAAA,GAAG,CAAG,EAAA;AACnB,QAAO,IAAA,GAAA,CAAA,CAAE,UAAU,CAAC,CAAA,CAAA;AAAA,OACxB;AAAA,KAEK,MAAA,IAAA,CAAA,IAAK,OAAO,CAAA,KAAM,QAAU,EAAA;AAEjC,MAAA,IAAI,OAAO,CAAK,IAAA,OAAO,CAAE,CAAA,GAAG,KAAK,OAAO,CAAA,CAAE,GAAG,CAAA,KAAM,YAAY,CAAE,CAAA,GAAG,CAAE,CAAA,QAAA,CAAS,GAAG,CAAG,EAAA;AACjF,QAAI,IAAA,CAAA,GAAI,MAAM,CAAE,CAAA,GAAG,EAAE,KAAM,CAAA,GAAG,EAAE,CAAC,CAAA,CAAA;AACjC,QAAQ,KAAA,GAAA,CAAA,CAAA;AAAA,iBAGH,GAAO,IAAA,CAAA,IAAK,CAAE,CAAA,GAAG,aAAa,KAAO,EAAA;AAC1C,QAAA,IAAI,CAAI,GAAA,cAAA,CAAe,CAAE,CAAA,GAAG,CAAC,CAAA,CAAA;AAC7B,QAAA,IAAI,CAAG,EAAA;AACH,UAAO,IAAA,GAAA,CAAA,CAAA;AACP,UAAY,SAAA,GAAA,CAAA,CAAA;AAAA,SAChB;AAAA,OACJ;AAAA,KACJ;AACA,IAAA,IAAI,QAAQ,KAAO,EAAA;AACf,MAAI,IAAA,MAAA,CAAO,KAAK,CAAG,EAAA;AACf,QAAA,MAAA,CAAO,KAAK,CAAE,CAAA,IAAA,GAAO,IAAO,GAAA,MAAA,CAAO,KAAK,CAAE,CAAA,IAAA,CAAA;AAAA,OAEzC,MAAA;AACD,QAAO,MAAA,CAAA,KAAK,CAAI,GAAA,EAAE,IAAW,EAAA,CAAA;AAAA,OACjC;AACA,MAAA,IAAI,SAAW,EAAA;AACX,QAAA,MAAA,CAAO,KAAK,CAAA,CAAE,SAAY,GAAA,EAAE,MAAM,SAAU,EAAA,CAAA;AAAA,OAChD;AAEA,MAAA,IAAI,WAAc,GAAA,KAAA,CAAM,KAAM,CAAA,KAAA,GAAQ,CAAC,CAAA,CAAA;AACvC,MAAA,cAAA,CAAe,aAAa,MAAM,CAAA,CAAA;AAClC,MAAA,OAAA;AAAA,KACJ;AAAA,GACH,CAAA,CAAA;AACL,CAAA;AAEA,SAAS,eAAe,KAAiD,EAAA;AACrE,EAAA,KAAA,MAAW,QAAQ,KAAO,EAAA;AACtB,IAAI,IAAA,OAAO,SAAS,QAAU,EAAA;AAC1B,MAAI,IAAA,IAAA,CAAK,UAAW,CAAA,GAAG,CAAG,EAAA;AACtB,QAAO,OAAA,IAAA,CAAK,UAAU,CAAC,CAAA,CAAA;AAAA,OAC3B;AAAA,KACJ,MAAA,IACS,gBAAgB,KAAO,EAAA;AAC5B,MAAI,IAAA,GAAA,GAAM,eAAe,IAAI,CAAA,CAAA;AAC7B,MAAA,IAAI,GAAK,EAAA;AACL,QAAO,OAAA,GAAA,CAAA;AAAA,OACX;AAAA,KACJ;AAAA,GACJ;AACJ","file":"ChoiceInfoConverter.js","sourcesContent":["import LabelChoiceRes from '../types/LabelChoiceRes';\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\n\nexport function getLabelChoice(items: any[], result: LabelChoiceRes) {\n let text: string = \"\"\n let label: string = \"\"\n let preDialog: string = \"\"\n items.forEach((v, index) => {\n if (typeof v === \"string\") {\n // Dialog\n if (v.startsWith(\"^\")) {\n text = v.substring(1)\n }\n }\n else if (v && typeof v === \"object\") {\n // if is a choice\n if (\"*\" in v && typeof v[\"*\"] && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\n let l = \"c\" + v[\"*\"].split(\"c\")[1]\n label = l\n }\n // if is choise info\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\n let t = findChoiceText(v[\"s\"])\n if (t) {\n text = t\n preDialog = t\n }\n }\n }\n if (text && label) {\n if (result[label]) {\n result[label].text = text + result[label].text\n }\n else {\n result[label] = { text: text }\n }\n if (preDialog) {\n result[label].preDialog = { text: preDialog }\n }\n // split text and label\n let newListItem = items.slice(index + 1)\n getLabelChoice(newListItem, result)\n return\n }\n })\n}\n\nfunction findChoiceText(items: RootParserItemType[]): string | undefined {\n for (const item of items) {\n if (typeof item === \"string\") {\n if (item.startsWith(\"^\")) {\n return item.substring(1)\n }\n }\n else if (item instanceof Array) {\n let res = findChoiceText(item)\n if (res) {\n return res\n }\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/functions/ChoiceInfoConverter.ts"],"names":[],"mappings":";AAGO,SAAS,cAAA,CAAe,OAAc,MAAwB,EAAA;AACjE,EAAA,IAAI,IAAe,GAAA,EAAA,CAAA;AACnB,EAAA,IAAI,KAAgB,GAAA,EAAA,CAAA;AACpB,EAAA,IAAI,SAAoB,GAAA,EAAA,CAAA;AACxB,EAAM,KAAA,CAAA,OAAA,CAAQ,CAAC,CAAA,EAAG,KAAU,KAAA;AACxB,IAAI,IAAA,OAAO,MAAM,QAAU,EAAA;AAEvB,MAAI,IAAA,CAAA,CAAE,UAAW,CAAA,GAAG,CAAG,EAAA;AACnB,QAAO,IAAA,GAAA,CAAA,CAAE,UAAU,CAAC,CAAA,CAAA;AAAA,OACxB;AAAA,KAEK,MAAA,IAAA,CAAA,IAAK,OAAO,CAAA,KAAM,QAAU,EAAA;AAEjC,MAAA,IAAI,OAAO,CAAK,IAAA,OAAO,CAAE,CAAA,GAAG,KAAK,OAAO,CAAA,CAAE,GAAG,CAAA,KAAM,YAAY,CAAE,CAAA,GAAG,CAAE,CAAA,QAAA,CAAS,GAAG,CAAG,EAAA;AACjF,QAAI,IAAA,CAAA,GAAI,MAAM,CAAE,CAAA,GAAG,EAAE,KAAM,CAAA,GAAG,EAAE,CAAC,CAAA,CAAA;AACjC,QAAQ,KAAA,GAAA,CAAA,CAAA;AAAA,iBAGH,GAAO,IAAA,CAAA,IAAK,CAAE,CAAA,GAAG,aAAa,KAAO,EAAA;AAC1C,QAAA,IAAI,CAAI,GAAA,cAAA,CAAe,CAAE,CAAA,GAAG,CAAC,CAAA,CAAA;AAC7B,QAAA,IAAI,CAAG,EAAA;AACH,UAAO,IAAA,GAAA,CAAA,CAAA;AACP,UAAY,SAAA,GAAA,CAAA,CAAA;AAAA,SAChB;AAAA,OACJ;AAAA,KACJ;AACA,IAAA,IAAI,QAAQ,KAAO,EAAA;AACf,MAAI,IAAA,MAAA,CAAO,KAAK,CAAG,EAAA;AACf,QAAA,MAAA,CAAO,KAAK,CAAE,CAAA,IAAA,GAAO,IAAO,GAAA,MAAA,CAAO,KAAK,CAAE,CAAA,IAAA,CAAA;AAAA,OAEzC,MAAA;AACD,QAAO,MAAA,CAAA,KAAK,CAAI,GAAA,EAAE,IAAW,EAAA,CAAA;AAAA,OACjC;AACA,MAAA,IAAI,SAAW,EAAA;AACX,QAAA,MAAA,CAAO,KAAK,CAAA,CAAE,SAAY,GAAA,EAAE,MAAM,SAAU,EAAA,CAAA;AAAA,OAChD;AAEA,MAAA,IAAI,WAAc,GAAA,KAAA,CAAM,KAAM,CAAA,KAAA,GAAQ,CAAC,CAAA,CAAA;AACvC,MAAA,cAAA,CAAe,aAAa,MAAM,CAAA,CAAA;AAClC,MAAA,OAAA;AAAA,KACJ;AAAA,GACH,CAAA,CAAA;AACL,CAAA;AAEA,SAAS,eAAe,KAAiD,EAAA;AACrE,EAAA,KAAA,MAAW,QAAQ,KAAO,EAAA;AACtB,IAAI,IAAA,OAAO,SAAS,QAAU,EAAA;AAC1B,MAAI,IAAA,IAAA,CAAK,UAAW,CAAA,GAAG,CAAG,EAAA;AACtB,QAAO,OAAA,IAAA,CAAK,UAAU,CAAC,CAAA,CAAA;AAAA,OAC3B;AAAA,KACJ,MAAA,IACS,gBAAgB,KAAO,EAAA;AAC5B,MAAI,IAAA,GAAA,GAAM,eAAe,IAAI,CAAA,CAAA;AAC7B,MAAA,IAAI,GAAK,EAAA;AACL,QAAO,OAAA,GAAA,CAAA;AAAA,OACX;AAAA,KACJ;AAAA,GACJ;AACJ","file":"ChoiceInfoConverter.mjs","sourcesContent":["import LabelChoiceRes from '../types/LabelChoiceRes';\r\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\r\n\r\nexport function getLabelChoice(items: any[], result: LabelChoiceRes) {\r\n let text: string = \"\"\r\n let label: string = \"\"\r\n let preDialog: string = \"\"\r\n items.forEach((v, index) => {\r\n if (typeof v === \"string\") {\r\n // Dialog\r\n if (v.startsWith(\"^\")) {\r\n text = v.substring(1)\r\n }\r\n }\r\n else if (v && typeof v === \"object\") {\r\n // if is a choice\r\n if (\"*\" in v && typeof v[\"*\"] && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\r\n let l = \"c\" + v[\"*\"].split(\"c\")[1]\r\n label = l\r\n }\r\n // if is choise info\r\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\r\n let t = findChoiceText(v[\"s\"])\r\n if (t) {\r\n text = t\r\n preDialog = t\r\n }\r\n }\r\n }\r\n if (text && label) {\r\n if (result[label]) {\r\n result[label].text = text + result[label].text\r\n }\r\n else {\r\n result[label] = { text: text }\r\n }\r\n if (preDialog) {\r\n result[label].preDialog = { text: preDialog }\r\n }\r\n // split text and label\r\n let newListItem = items.slice(index + 1)\r\n getLabelChoice(newListItem, result)\r\n return\r\n }\r\n })\r\n}\r\n\r\nfunction findChoiceText(items: RootParserItemType[]): string | undefined {\r\n for (const item of items) {\r\n if (typeof item === \"string\") {\r\n if (item.startsWith(\"^\")) {\r\n return item.substring(1)\r\n }\r\n }\r\n else if (item instanceof Array) {\r\n let res = findChoiceText(item)\r\n if (res) {\r\n return res\r\n }\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../src/functions/ChoiceInfoConverter.ts"],"names":[],"mappings":";AAGO,SAAS,cAAA,CAAe,OAAc,MAAwB,EAAA;AACjE,EAAA,IAAI,IAAe,GAAA,EAAA,CAAA;AACnB,EAAA,IAAI,KAAgB,GAAA,EAAA,CAAA;AACpB,EAAA,IAAI,SAAoB,GAAA,EAAA,CAAA;AACxB,EAAM,KAAA,CAAA,OAAA,CAAQ,CAAC,CAAA,EAAG,KAAU,KAAA;AACxB,IAAI,IAAA,OAAO,MAAM,QAAU,EAAA;AAEvB,MAAI,IAAA,CAAA,CAAE,UAAW,CAAA,GAAG,CAAG,EAAA;AACnB,QAAO,IAAA,GAAA,CAAA,CAAE,UAAU,CAAC,CAAA,CAAA;AAAA,OACxB;AAAA,KAEK,MAAA,IAAA,CAAA,IAAK,OAAO,CAAA,KAAM,QAAU,EAAA;AAEjC,MAAA,IAAI,OAAO,CAAK,IAAA,OAAO,CAAE,CAAA,GAAG,KAAK,OAAO,CAAA,CAAE,GAAG,CAAA,KAAM,YAAY,CAAE,CAAA,GAAG,CAAE,CAAA,QAAA,CAAS,GAAG,CAAG,EAAA;AACjF,QAAI,IAAA,CAAA,GAAI,MAAM,CAAE,CAAA,GAAG,EAAE,KAAM,CAAA,GAAG,EAAE,CAAC,CAAA,CAAA;AACjC,QAAQ,KAAA,GAAA,CAAA,CAAA;AAAA,iBAGH,GAAO,IAAA,CAAA,IAAK,CAAE,CAAA,GAAG,aAAa,KAAO,EAAA;AAC1C,QAAA,IAAI,CAAI,GAAA,cAAA,CAAe,CAAE,CAAA,GAAG,CAAC,CAAA,CAAA;AAC7B,QAAA,IAAI,CAAG,EAAA;AACH,UAAO,IAAA,GAAA,CAAA,CAAA;AACP,UAAY,SAAA,GAAA,CAAA,CAAA;AAAA,SAChB;AAAA,OACJ;AAAA,KACJ;AACA,IAAA,IAAI,QAAQ,KAAO,EAAA;AACf,MAAI,IAAA,MAAA,CAAO,KAAK,CAAG,EAAA;AACf,QAAA,MAAA,CAAO,KAAK,CAAE,CAAA,IAAA,GAAO,IAAO,GAAA,MAAA,CAAO,KAAK,CAAE,CAAA,IAAA,CAAA;AAAA,OAEzC,MAAA;AACD,QAAO,MAAA,CAAA,KAAK,CAAI,GAAA,EAAE,IAAW,EAAA,CAAA;AAAA,OACjC;AACA,MAAA,IAAI,SAAW,EAAA;AACX,QAAA,MAAA,CAAO,KAAK,CAAA,CAAE,SAAY,GAAA,EAAE,MAAM,SAAU,EAAA,CAAA;AAAA,OAChD;AAEA,MAAA,IAAI,WAAc,GAAA,KAAA,CAAM,KAAM,CAAA,KAAA,GAAQ,CAAC,CAAA,CAAA;AACvC,MAAA,cAAA,CAAe,aAAa,MAAM,CAAA,CAAA;AAClC,MAAA,OAAA;AAAA,KACJ;AAAA,GACH,CAAA,CAAA;AACL,CAAA;AAEA,SAAS,eAAe,KAAiD,EAAA;AACrE,EAAA,KAAA,MAAW,QAAQ,KAAO,EAAA;AACtB,IAAI,IAAA,OAAO,SAAS,QAAU,EAAA;AAC1B,MAAI,IAAA,IAAA,CAAK,UAAW,CAAA,GAAG,CAAG,EAAA;AACtB,QAAO,OAAA,IAAA,CAAK,UAAU,CAAC,CAAA,CAAA;AAAA,OAC3B;AAAA,KACJ,MAAA,IACS,gBAAgB,KAAO,EAAA;AAC5B,MAAI,IAAA,GAAA,GAAM,eAAe,IAAI,CAAA,CAAA;AAC7B,MAAA,IAAI,GAAK,EAAA;AACL,QAAO,OAAA,GAAA,CAAA;AAAA,OACX;AAAA,KACJ;AAAA,GACJ;AACJ","file":"ChoiceInfoConverter.mjs","sourcesContent":["import LabelChoiceRes from '../types/LabelChoiceRes';\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\n\nexport function getLabelChoice(items: any[], result: LabelChoiceRes) {\n let text: string = \"\"\n let label: string = \"\"\n let preDialog: string = \"\"\n items.forEach((v, index) => {\n if (typeof v === \"string\") {\n // Dialog\n if (v.startsWith(\"^\")) {\n text = v.substring(1)\n }\n }\n else if (v && typeof v === \"object\") {\n // if is a choice\n if (\"*\" in v && typeof v[\"*\"] && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\n let l = \"c\" + v[\"*\"].split(\"c\")[1]\n label = l\n }\n // if is choise info\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\n let t = findChoiceText(v[\"s\"])\n if (t) {\n text = t\n preDialog = t\n }\n }\n }\n if (text && label) {\n if (result[label]) {\n result[label].text = text + result[label].text\n }\n else {\n result[label] = { text: text }\n }\n if (preDialog) {\n result[label].preDialog = { text: preDialog }\n }\n // split text and label\n let newListItem = items.slice(index + 1)\n getLabelChoice(newListItem, result)\n return\n }\n })\n}\n\nfunction findChoiceText(items: RootParserItemType[]): string | undefined {\n for (const item of items) {\n if (typeof item === \"string\") {\n if (item.startsWith(\"^\")) {\n return item.substring(1)\n }\n }\n else if (item instanceof Array) {\n let res = findChoiceText(item)\n if (res) {\n return res\n }\n }\n }\n}\n"]}
@@ -1,3 +1,3 @@
1
- declare function importInkText(text: string): void;
1
+ declare function importInkText(text: string | string[]): void;
2
2
 
3
3
  export { importInkText };
@@ -1,3 +1,3 @@
1
- declare function importInkText(text: string): void;
1
+ declare function importInkText(text: string | string[]): void;
2
2
 
3
3
  export { importInkText };
@@ -218,6 +218,12 @@ function convertorInkToJson(test) {
218
218
 
219
219
  // src/functions/Importer.ts
220
220
  function importInkText(text) {
221
+ if (Array.isArray(text)) {
222
+ text.forEach((t) => {
223
+ importInkText(t);
224
+ });
225
+ return;
226
+ }
221
227
  let data = convertInkText(text);
222
228
  if (data) {
223
229
  {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/functions/ChoiceInfoConverter.ts","../../src/functions/StoryInfoConverter.ts","../../src/functions/InkToPixivn.ts","../../src/functions/Importer.ts"],"names":["Compiler","importPixiVNJson"],"mappings":"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","file":"Importer.js","sourcesContent":["import LabelChoiceRes from '../types/LabelChoiceRes';\r\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\r\n\r\nexport function getLabelChoice(items: any[], result: LabelChoiceRes) {\r\n let text: string = \"\"\r\n let label: string = \"\"\r\n let preDialog: string = \"\"\r\n items.forEach((v, index) => {\r\n if (typeof v === \"string\") {\r\n // Dialog\r\n if (v.startsWith(\"^\")) {\r\n text = v.substring(1)\r\n }\r\n }\r\n else if (v && typeof v === \"object\") {\r\n // if is a choice\r\n if (\"*\" in v && typeof v[\"*\"] && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\r\n let l = \"c\" + v[\"*\"].split(\"c\")[1]\r\n label = l\r\n }\r\n // if is choise info\r\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\r\n let t = findChoiceText(v[\"s\"])\r\n if (t) {\r\n text = t\r\n preDialog = t\r\n }\r\n }\r\n }\r\n if (text && label) {\r\n if (result[label]) {\r\n result[label].text = text + result[label].text\r\n }\r\n else {\r\n result[label] = { text: text }\r\n }\r\n if (preDialog) {\r\n result[label].preDialog = { text: preDialog }\r\n }\r\n // split text and label\r\n let newListItem = items.slice(index + 1)\r\n getLabelChoice(newListItem, result)\r\n return\r\n }\r\n })\r\n}\r\n\r\nfunction findChoiceText(items: RootParserItemType[]): string | undefined {\r\n for (const item of items) {\r\n if (typeof item === \"string\") {\r\n if (item.startsWith(\"^\")) {\r\n return item.substring(1)\r\n }\r\n }\r\n else if (item instanceof Array) {\r\n let res = findChoiceText(item)\r\n if (res) {\r\n return res\r\n }\r\n }\r\n }\r\n}\r\n","import { LabelJsonType, StepLabelJsonType } from '@drincs/pixi-vn';\r\nimport InkRootType from '../types/InkRootType';\r\nimport LabelChoiceRes from '../types/LabelChoiceRes';\r\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\r\nimport { getLabelChoice } from './ChoiceInfoConverter';\r\n\r\nexport function getInkLabel(story: InkRootType[]): LabelJsonType | undefined {\r\n try {\r\n let label: LabelJsonType = {}\r\n\r\n findLabel(story, label)\r\n\r\n return label;\r\n } catch (e) {\r\n console.error(\"[Pixi'VN Ink] Error parsing ink file\", e)\r\n }\r\n}\r\n\r\nfunction findLabel(story: RootParserItemType[], labels: LabelJsonType) {\r\n for (const storyItem of story) {\r\n if (storyItem) {\r\n if (storyItem instanceof Array) {\r\n findLabel(storyItem, labels)\r\n }\r\n else if (typeof storyItem === \"object\") {\r\n addLabels(storyItem, labels)\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction addLabels(storyItem: object, result: LabelJsonType, dadLabelKey: string = \"\", shareData: ShareData = { preDialog: {} }) {\r\n if (storyItem === null) {\r\n return\r\n }\r\n // for value and key in item\r\n for (const [key, value] of Object.entries(storyItem)) {\r\n // if value is an array\r\n if (value instanceof Array) {\r\n let labels: StepLabelJsonType[] = []\r\n let subLabels: LabelJsonType = {}\r\n let labelName = (dadLabelKey ? dadLabelKey + \"_\" : \"\") + key\r\n getLabel(value, labelName, labels, subLabels, shareData)\r\n for (const [subKey, subValue] of Object.entries(subLabels)) {\r\n result[subKey] = subValue\r\n }\r\n if (labels.length > 0) {\r\n result[labelName] = labels\r\n }\r\n }\r\n }\r\n}\r\n\r\ntype ShareData = {\r\n preDialog: { [label: string]: { text: string } }\r\n}\r\nfunction getLabel(items: any[], labelKey: string, labelSteps: StepLabelJsonType[], subLabels: LabelJsonType, shareData: ShareData, isNewLine: boolean = true) {\r\n let isInEnv = false\r\n let envList: any[] = []\r\n if (shareData.preDialog[labelKey]) {\r\n labelSteps.push({\r\n dialog: shareData.preDialog[labelKey].text\r\n })\r\n delete shareData.preDialog[labelKey]\r\n isNewLine = false\r\n }\r\n items.forEach((v) => {\r\n if (isInEnv) {\r\n envList.push(v)\r\n if (typeof v === \"string\" && v == \"/ev\") {\r\n isInEnv = false\r\n }\r\n }\r\n else if (typeof v === \"string\") {\r\n // Dialog\r\n if (v.startsWith(\"^\")) {\r\n if (!isNewLine && labelSteps.length > 0) {\r\n labelSteps[labelSteps.length - 1].dialog = labelSteps[labelSteps.length - 1].dialog + v.substring(1)\r\n } else {\r\n labelSteps.push({\r\n dialog: v.substring(1)\r\n })\r\n }\r\n isNewLine = false\r\n }\r\n else if (v == \"ev\") {\r\n isInEnv = true\r\n }\r\n else if (v == \"\\n\") {\r\n isNewLine = true\r\n }\r\n else if (v == \"done\") {\r\n labelSteps.push({\r\n end: \"label_end\"\r\n })\r\n isNewLine = false\r\n }\r\n else if (v == \"end\") {\r\n labelSteps.push({\r\n end: \"game_end\"\r\n })\r\n isNewLine = false\r\n }\r\n }\r\n else if (v instanceof Array) {\r\n getLabel(v, labelKey, labelSteps, subLabels, shareData, isNewLine)\r\n }\r\n else if (v && typeof v === \"object\") {\r\n if (\"->\" in v && typeof v[\"->\"] === \"string\" && !v[\"->\"].includes(\".^.^.\")) {\r\n labelSteps.push({\r\n labelToOpen: {\r\n labelId: v[\"->\"],\r\n type: \"call\",\r\n }\r\n })\r\n isNewLine = false\r\n }\r\n else if (\"*\" in v && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\r\n envList.push(v)\r\n isNewLine = false\r\n }\r\n // if is choise info\r\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\r\n envList.push(v)\r\n isNewLine = false\r\n }\r\n else {\r\n addLabels(v, subLabels, labelKey, shareData)\r\n }\r\n }\r\n })\r\n if (envList.length > 0) {\r\n let choices: LabelChoiceRes = {}\r\n getLabelChoice(envList, choices)\r\n for (const [key, value] of Object.entries(choices)) {\r\n let newKey = labelKey + \"_\" + key\r\n // if last step is choice\r\n if (labelSteps.length > 0 && \"currentChoiceMenuOptions\" in labelSteps[labelSteps.length - 1]) {\r\n labelSteps[labelSteps.length - 1].currentChoiceMenuOptions?.push({\r\n text: value.text,\r\n label: newKey,\r\n props: {},\r\n type: \"call\"\r\n })\r\n }\r\n else {\r\n labelSteps.push({\r\n currentChoiceMenuOptions: [{\r\n text: value.text,\r\n label: newKey,\r\n props: {},\r\n type: \"call\"\r\n }]\r\n })\r\n }\r\n if (value.preDialog) {\r\n shareData.preDialog[newKey] = {\r\n text: value.preDialog.text\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import { LabelJsonType } from \"@drincs/pixi-vn\";\r\nimport { Compiler } from \"inkjs/compiler/Compiler\";\r\nimport InkStoryType from \"../types/InkStoryType\";\r\nimport { getInkLabel } from \"./StoryInfoConverter\";\r\n\r\nexport function convertInkText(text: string): LabelJsonType | undefined {\r\n let json = convertorInkToJson(text);\r\n let obj: InkStoryType\r\n try {\r\n obj = JSON.parse(json);\r\n } catch (e) {\r\n console.error(\"[Pixi'VN Ink] Error parsing ink file\", e)\r\n return\r\n }\r\n\r\n return getInkLabel(obj.root)\r\n}\r\n\r\nfunction convertorInkToJson(test: string): string {\r\n try {\r\n const story = new Compiler(test).Compile();\r\n let json = story.ToJson();\r\n console.log(json);\r\n return json || \"\";\r\n } catch (e) {\r\n console.error(\"[Pixi'VN] Error compiling ink file\", e)\r\n return \"\"\r\n }\r\n}\r\n","import { importPixiVNJson } from \"@drincs/pixi-vn\";\r\nimport { convertInkText } from \"./InkToPixivn\";\r\n\r\nexport function importInkText(text: string) {\r\n let data = convertInkText(text)\r\n if (data) {\r\n {\r\n importPixiVNJson(data)\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../src/functions/ChoiceInfoConverter.ts","../../src/functions/StoryInfoConverter.ts","../../src/functions/InkToPixivn.ts","../../src/functions/Importer.ts"],"names":["Compiler","importPixiVNJson"],"mappings":"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","file":"Importer.js","sourcesContent":["import LabelChoiceRes from '../types/LabelChoiceRes';\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\n\nexport function getLabelChoice(items: any[], result: LabelChoiceRes) {\n let text: string = \"\"\n let label: string = \"\"\n let preDialog: string = \"\"\n items.forEach((v, index) => {\n if (typeof v === \"string\") {\n // Dialog\n if (v.startsWith(\"^\")) {\n text = v.substring(1)\n }\n }\n else if (v && typeof v === \"object\") {\n // if is a choice\n if (\"*\" in v && typeof v[\"*\"] && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\n let l = \"c\" + v[\"*\"].split(\"c\")[1]\n label = l\n }\n // if is choise info\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\n let t = findChoiceText(v[\"s\"])\n if (t) {\n text = t\n preDialog = t\n }\n }\n }\n if (text && label) {\n if (result[label]) {\n result[label].text = text + result[label].text\n }\n else {\n result[label] = { text: text }\n }\n if (preDialog) {\n result[label].preDialog = { text: preDialog }\n }\n // split text and label\n let newListItem = items.slice(index + 1)\n getLabelChoice(newListItem, result)\n return\n }\n })\n}\n\nfunction findChoiceText(items: RootParserItemType[]): string | undefined {\n for (const item of items) {\n if (typeof item === \"string\") {\n if (item.startsWith(\"^\")) {\n return item.substring(1)\n }\n }\n else if (item instanceof Array) {\n let res = findChoiceText(item)\n if (res) {\n return res\n }\n }\n }\n}\n","import { LabelJsonType, StepLabelJsonType } from '@drincs/pixi-vn';\nimport InkRootType from '../types/InkRootType';\nimport LabelChoiceRes from '../types/LabelChoiceRes';\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\nimport { getLabelChoice } from './ChoiceInfoConverter';\n\nexport function getInkLabel(story: InkRootType[]): LabelJsonType | undefined {\n try {\n let label: LabelJsonType = {}\n\n findLabel(story, label)\n\n return label;\n } catch (e) {\n console.error(\"[Pixi'VN Ink] Error parsing ink file\", e)\n }\n}\n\nfunction findLabel(story: RootParserItemType[], labels: LabelJsonType) {\n for (const storyItem of story) {\n if (storyItem) {\n if (storyItem instanceof Array) {\n findLabel(storyItem, labels)\n }\n else if (typeof storyItem === \"object\") {\n addLabels(storyItem, labels)\n }\n }\n }\n}\n\nfunction addLabels(storyItem: object, result: LabelJsonType, dadLabelKey: string = \"\", shareData: ShareData = { preDialog: {} }) {\n if (storyItem === null) {\n return\n }\n // for value and key in item\n for (const [key, value] of Object.entries(storyItem)) {\n // if value is an array\n if (value instanceof Array) {\n let labels: StepLabelJsonType[] = []\n let subLabels: LabelJsonType = {}\n let labelName = (dadLabelKey ? dadLabelKey + \"_\" : \"\") + key\n getLabel(value, labelName, labels, subLabels, shareData)\n for (const [subKey, subValue] of Object.entries(subLabels)) {\n result[subKey] = subValue\n }\n if (labels.length > 0) {\n result[labelName] = labels\n }\n }\n }\n}\n\ntype ShareData = {\n preDialog: { [label: string]: { text: string } }\n}\nfunction getLabel(items: any[], labelKey: string, labelSteps: StepLabelJsonType[], subLabels: LabelJsonType, shareData: ShareData, isNewLine: boolean = true) {\n let isInEnv = false\n let envList: any[] = []\n if (shareData.preDialog[labelKey]) {\n labelSteps.push({\n dialog: shareData.preDialog[labelKey].text\n })\n delete shareData.preDialog[labelKey]\n isNewLine = false\n }\n items.forEach((v) => {\n if (isInEnv) {\n envList.push(v)\n if (typeof v === \"string\" && v == \"/ev\") {\n isInEnv = false\n }\n }\n else if (typeof v === \"string\") {\n // Dialog\n if (v.startsWith(\"^\")) {\n if (!isNewLine && labelSteps.length > 0) {\n labelSteps[labelSteps.length - 1].dialog = labelSteps[labelSteps.length - 1].dialog + v.substring(1)\n } else {\n labelSteps.push({\n dialog: v.substring(1)\n })\n }\n isNewLine = false\n }\n else if (v == \"ev\") {\n isInEnv = true\n }\n else if (v == \"\\n\") {\n isNewLine = true\n }\n else if (v == \"done\") {\n labelSteps.push({\n end: \"label_end\"\n })\n isNewLine = false\n }\n else if (v == \"end\") {\n labelSteps.push({\n end: \"game_end\"\n })\n isNewLine = false\n }\n }\n else if (v instanceof Array) {\n getLabel(v, labelKey, labelSteps, subLabels, shareData, isNewLine)\n }\n else if (v && typeof v === \"object\") {\n if (\"->\" in v && typeof v[\"->\"] === \"string\" && !v[\"->\"].includes(\".^.^.\")) {\n labelSteps.push({\n labelToOpen: {\n labelId: v[\"->\"],\n type: \"call\",\n }\n })\n isNewLine = false\n }\n else if (\"*\" in v && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\n envList.push(v)\n isNewLine = false\n }\n // if is choise info\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\n envList.push(v)\n isNewLine = false\n }\n else {\n addLabels(v, subLabels, labelKey, shareData)\n }\n }\n })\n if (envList.length > 0) {\n let choices: LabelChoiceRes = {}\n getLabelChoice(envList, choices)\n for (const [key, value] of Object.entries(choices)) {\n let newKey = labelKey + \"_\" + key\n // if last step is choice\n if (labelSteps.length > 0 && \"currentChoiceMenuOptions\" in labelSteps[labelSteps.length - 1]) {\n labelSteps[labelSteps.length - 1].currentChoiceMenuOptions?.push({\n text: value.text,\n label: newKey,\n props: {},\n type: \"call\"\n })\n }\n else {\n labelSteps.push({\n currentChoiceMenuOptions: [{\n text: value.text,\n label: newKey,\n props: {},\n type: \"call\"\n }]\n })\n }\n if (value.preDialog) {\n shareData.preDialog[newKey] = {\n text: value.preDialog.text\n }\n }\n }\n }\n}\n","import { LabelJsonType } from \"@drincs/pixi-vn\";\nimport { Compiler } from \"inkjs/compiler/Compiler\";\nimport InkStoryType from \"../types/InkStoryType\";\nimport { getInkLabel } from \"./StoryInfoConverter\";\n\nexport function convertInkText(text: string): LabelJsonType | undefined {\n let json = convertorInkToJson(text);\n let obj: InkStoryType\n try {\n obj = JSON.parse(json);\n } catch (e) {\n console.error(\"[Pixi'VN Ink] Error parsing ink file\", e)\n return\n }\n\n return getInkLabel(obj.root)\n}\n\nfunction convertorInkToJson(test: string): string {\n try {\n const story = new Compiler(test).Compile();\n let json = story.ToJson();\n console.log(json);\n return json || \"\";\n } catch (e) {\n console.error(\"[Pixi'VN] Error compiling ink file\", e)\n return \"\"\n }\n}\n","import { importPixiVNJson } from \"@drincs/pixi-vn\";\nimport { convertInkText } from \"./InkToPixivn\";\n\nexport function importInkText(text: string | string[]) {\n // if is array\n if (Array.isArray(text)) {\n text.forEach((t) => {\n importInkText(t)\n })\n return\n }\n let data = convertInkText(text)\n if (data) {\n {\n importPixiVNJson(data)\n }\n }\n}\n"]}
@@ -216,6 +216,12 @@ function convertorInkToJson(test) {
216
216
 
217
217
  // src/functions/Importer.ts
218
218
  function importInkText(text) {
219
+ if (Array.isArray(text)) {
220
+ text.forEach((t) => {
221
+ importInkText(t);
222
+ });
223
+ return;
224
+ }
219
225
  let data = convertInkText(text);
220
226
  if (data) {
221
227
  {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/functions/ChoiceInfoConverter.ts","../../src/functions/StoryInfoConverter.ts","../../src/functions/InkToPixivn.ts","../../src/functions/Importer.ts"],"names":[],"mappings":"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","file":"Importer.mjs","sourcesContent":["import LabelChoiceRes from '../types/LabelChoiceRes';\r\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\r\n\r\nexport function getLabelChoice(items: any[], result: LabelChoiceRes) {\r\n let text: string = \"\"\r\n let label: string = \"\"\r\n let preDialog: string = \"\"\r\n items.forEach((v, index) => {\r\n if (typeof v === \"string\") {\r\n // Dialog\r\n if (v.startsWith(\"^\")) {\r\n text = v.substring(1)\r\n }\r\n }\r\n else if (v && typeof v === \"object\") {\r\n // if is a choice\r\n if (\"*\" in v && typeof v[\"*\"] && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\r\n let l = \"c\" + v[\"*\"].split(\"c\")[1]\r\n label = l\r\n }\r\n // if is choise info\r\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\r\n let t = findChoiceText(v[\"s\"])\r\n if (t) {\r\n text = t\r\n preDialog = t\r\n }\r\n }\r\n }\r\n if (text && label) {\r\n if (result[label]) {\r\n result[label].text = text + result[label].text\r\n }\r\n else {\r\n result[label] = { text: text }\r\n }\r\n if (preDialog) {\r\n result[label].preDialog = { text: preDialog }\r\n }\r\n // split text and label\r\n let newListItem = items.slice(index + 1)\r\n getLabelChoice(newListItem, result)\r\n return\r\n }\r\n })\r\n}\r\n\r\nfunction findChoiceText(items: RootParserItemType[]): string | undefined {\r\n for (const item of items) {\r\n if (typeof item === \"string\") {\r\n if (item.startsWith(\"^\")) {\r\n return item.substring(1)\r\n }\r\n }\r\n else if (item instanceof Array) {\r\n let res = findChoiceText(item)\r\n if (res) {\r\n return res\r\n }\r\n }\r\n }\r\n}\r\n","import { LabelJsonType, StepLabelJsonType } from '@drincs/pixi-vn';\r\nimport InkRootType from '../types/InkRootType';\r\nimport LabelChoiceRes from '../types/LabelChoiceRes';\r\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\r\nimport { getLabelChoice } from './ChoiceInfoConverter';\r\n\r\nexport function getInkLabel(story: InkRootType[]): LabelJsonType | undefined {\r\n try {\r\n let label: LabelJsonType = {}\r\n\r\n findLabel(story, label)\r\n\r\n return label;\r\n } catch (e) {\r\n console.error(\"[Pixi'VN Ink] Error parsing ink file\", e)\r\n }\r\n}\r\n\r\nfunction findLabel(story: RootParserItemType[], labels: LabelJsonType) {\r\n for (const storyItem of story) {\r\n if (storyItem) {\r\n if (storyItem instanceof Array) {\r\n findLabel(storyItem, labels)\r\n }\r\n else if (typeof storyItem === \"object\") {\r\n addLabels(storyItem, labels)\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction addLabels(storyItem: object, result: LabelJsonType, dadLabelKey: string = \"\", shareData: ShareData = { preDialog: {} }) {\r\n if (storyItem === null) {\r\n return\r\n }\r\n // for value and key in item\r\n for (const [key, value] of Object.entries(storyItem)) {\r\n // if value is an array\r\n if (value instanceof Array) {\r\n let labels: StepLabelJsonType[] = []\r\n let subLabels: LabelJsonType = {}\r\n let labelName = (dadLabelKey ? dadLabelKey + \"_\" : \"\") + key\r\n getLabel(value, labelName, labels, subLabels, shareData)\r\n for (const [subKey, subValue] of Object.entries(subLabels)) {\r\n result[subKey] = subValue\r\n }\r\n if (labels.length > 0) {\r\n result[labelName] = labels\r\n }\r\n }\r\n }\r\n}\r\n\r\ntype ShareData = {\r\n preDialog: { [label: string]: { text: string } }\r\n}\r\nfunction getLabel(items: any[], labelKey: string, labelSteps: StepLabelJsonType[], subLabels: LabelJsonType, shareData: ShareData, isNewLine: boolean = true) {\r\n let isInEnv = false\r\n let envList: any[] = []\r\n if (shareData.preDialog[labelKey]) {\r\n labelSteps.push({\r\n dialog: shareData.preDialog[labelKey].text\r\n })\r\n delete shareData.preDialog[labelKey]\r\n isNewLine = false\r\n }\r\n items.forEach((v) => {\r\n if (isInEnv) {\r\n envList.push(v)\r\n if (typeof v === \"string\" && v == \"/ev\") {\r\n isInEnv = false\r\n }\r\n }\r\n else if (typeof v === \"string\") {\r\n // Dialog\r\n if (v.startsWith(\"^\")) {\r\n if (!isNewLine && labelSteps.length > 0) {\r\n labelSteps[labelSteps.length - 1].dialog = labelSteps[labelSteps.length - 1].dialog + v.substring(1)\r\n } else {\r\n labelSteps.push({\r\n dialog: v.substring(1)\r\n })\r\n }\r\n isNewLine = false\r\n }\r\n else if (v == \"ev\") {\r\n isInEnv = true\r\n }\r\n else if (v == \"\\n\") {\r\n isNewLine = true\r\n }\r\n else if (v == \"done\") {\r\n labelSteps.push({\r\n end: \"label_end\"\r\n })\r\n isNewLine = false\r\n }\r\n else if (v == \"end\") {\r\n labelSteps.push({\r\n end: \"game_end\"\r\n })\r\n isNewLine = false\r\n }\r\n }\r\n else if (v instanceof Array) {\r\n getLabel(v, labelKey, labelSteps, subLabels, shareData, isNewLine)\r\n }\r\n else if (v && typeof v === \"object\") {\r\n if (\"->\" in v && typeof v[\"->\"] === \"string\" && !v[\"->\"].includes(\".^.^.\")) {\r\n labelSteps.push({\r\n labelToOpen: {\r\n labelId: v[\"->\"],\r\n type: \"call\",\r\n }\r\n })\r\n isNewLine = false\r\n }\r\n else if (\"*\" in v && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\r\n envList.push(v)\r\n isNewLine = false\r\n }\r\n // if is choise info\r\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\r\n envList.push(v)\r\n isNewLine = false\r\n }\r\n else {\r\n addLabels(v, subLabels, labelKey, shareData)\r\n }\r\n }\r\n })\r\n if (envList.length > 0) {\r\n let choices: LabelChoiceRes = {}\r\n getLabelChoice(envList, choices)\r\n for (const [key, value] of Object.entries(choices)) {\r\n let newKey = labelKey + \"_\" + key\r\n // if last step is choice\r\n if (labelSteps.length > 0 && \"currentChoiceMenuOptions\" in labelSteps[labelSteps.length - 1]) {\r\n labelSteps[labelSteps.length - 1].currentChoiceMenuOptions?.push({\r\n text: value.text,\r\n label: newKey,\r\n props: {},\r\n type: \"call\"\r\n })\r\n }\r\n else {\r\n labelSteps.push({\r\n currentChoiceMenuOptions: [{\r\n text: value.text,\r\n label: newKey,\r\n props: {},\r\n type: \"call\"\r\n }]\r\n })\r\n }\r\n if (value.preDialog) {\r\n shareData.preDialog[newKey] = {\r\n text: value.preDialog.text\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import { LabelJsonType } from \"@drincs/pixi-vn\";\r\nimport { Compiler } from \"inkjs/compiler/Compiler\";\r\nimport InkStoryType from \"../types/InkStoryType\";\r\nimport { getInkLabel } from \"./StoryInfoConverter\";\r\n\r\nexport function convertInkText(text: string): LabelJsonType | undefined {\r\n let json = convertorInkToJson(text);\r\n let obj: InkStoryType\r\n try {\r\n obj = JSON.parse(json);\r\n } catch (e) {\r\n console.error(\"[Pixi'VN Ink] Error parsing ink file\", e)\r\n return\r\n }\r\n\r\n return getInkLabel(obj.root)\r\n}\r\n\r\nfunction convertorInkToJson(test: string): string {\r\n try {\r\n const story = new Compiler(test).Compile();\r\n let json = story.ToJson();\r\n console.log(json);\r\n return json || \"\";\r\n } catch (e) {\r\n console.error(\"[Pixi'VN] Error compiling ink file\", e)\r\n return \"\"\r\n }\r\n}\r\n","import { importPixiVNJson } from \"@drincs/pixi-vn\";\r\nimport { convertInkText } from \"./InkToPixivn\";\r\n\r\nexport function importInkText(text: string) {\r\n let data = convertInkText(text)\r\n if (data) {\r\n {\r\n importPixiVNJson(data)\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../src/functions/ChoiceInfoConverter.ts","../../src/functions/StoryInfoConverter.ts","../../src/functions/InkToPixivn.ts","../../src/functions/Importer.ts"],"names":[],"mappings":"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","file":"Importer.mjs","sourcesContent":["import LabelChoiceRes from '../types/LabelChoiceRes';\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\n\nexport function getLabelChoice(items: any[], result: LabelChoiceRes) {\n let text: string = \"\"\n let label: string = \"\"\n let preDialog: string = \"\"\n items.forEach((v, index) => {\n if (typeof v === \"string\") {\n // Dialog\n if (v.startsWith(\"^\")) {\n text = v.substring(1)\n }\n }\n else if (v && typeof v === \"object\") {\n // if is a choice\n if (\"*\" in v && typeof v[\"*\"] && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\n let l = \"c\" + v[\"*\"].split(\"c\")[1]\n label = l\n }\n // if is choise info\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\n let t = findChoiceText(v[\"s\"])\n if (t) {\n text = t\n preDialog = t\n }\n }\n }\n if (text && label) {\n if (result[label]) {\n result[label].text = text + result[label].text\n }\n else {\n result[label] = { text: text }\n }\n if (preDialog) {\n result[label].preDialog = { text: preDialog }\n }\n // split text and label\n let newListItem = items.slice(index + 1)\n getLabelChoice(newListItem, result)\n return\n }\n })\n}\n\nfunction findChoiceText(items: RootParserItemType[]): string | undefined {\n for (const item of items) {\n if (typeof item === \"string\") {\n if (item.startsWith(\"^\")) {\n return item.substring(1)\n }\n }\n else if (item instanceof Array) {\n let res = findChoiceText(item)\n if (res) {\n return res\n }\n }\n }\n}\n","import { LabelJsonType, StepLabelJsonType } from '@drincs/pixi-vn';\nimport InkRootType from '../types/InkRootType';\nimport LabelChoiceRes from '../types/LabelChoiceRes';\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\nimport { getLabelChoice } from './ChoiceInfoConverter';\n\nexport function getInkLabel(story: InkRootType[]): LabelJsonType | undefined {\n try {\n let label: LabelJsonType = {}\n\n findLabel(story, label)\n\n return label;\n } catch (e) {\n console.error(\"[Pixi'VN Ink] Error parsing ink file\", e)\n }\n}\n\nfunction findLabel(story: RootParserItemType[], labels: LabelJsonType) {\n for (const storyItem of story) {\n if (storyItem) {\n if (storyItem instanceof Array) {\n findLabel(storyItem, labels)\n }\n else if (typeof storyItem === \"object\") {\n addLabels(storyItem, labels)\n }\n }\n }\n}\n\nfunction addLabels(storyItem: object, result: LabelJsonType, dadLabelKey: string = \"\", shareData: ShareData = { preDialog: {} }) {\n if (storyItem === null) {\n return\n }\n // for value and key in item\n for (const [key, value] of Object.entries(storyItem)) {\n // if value is an array\n if (value instanceof Array) {\n let labels: StepLabelJsonType[] = []\n let subLabels: LabelJsonType = {}\n let labelName = (dadLabelKey ? dadLabelKey + \"_\" : \"\") + key\n getLabel(value, labelName, labels, subLabels, shareData)\n for (const [subKey, subValue] of Object.entries(subLabels)) {\n result[subKey] = subValue\n }\n if (labels.length > 0) {\n result[labelName] = labels\n }\n }\n }\n}\n\ntype ShareData = {\n preDialog: { [label: string]: { text: string } }\n}\nfunction getLabel(items: any[], labelKey: string, labelSteps: StepLabelJsonType[], subLabels: LabelJsonType, shareData: ShareData, isNewLine: boolean = true) {\n let isInEnv = false\n let envList: any[] = []\n if (shareData.preDialog[labelKey]) {\n labelSteps.push({\n dialog: shareData.preDialog[labelKey].text\n })\n delete shareData.preDialog[labelKey]\n isNewLine = false\n }\n items.forEach((v) => {\n if (isInEnv) {\n envList.push(v)\n if (typeof v === \"string\" && v == \"/ev\") {\n isInEnv = false\n }\n }\n else if (typeof v === \"string\") {\n // Dialog\n if (v.startsWith(\"^\")) {\n if (!isNewLine && labelSteps.length > 0) {\n labelSteps[labelSteps.length - 1].dialog = labelSteps[labelSteps.length - 1].dialog + v.substring(1)\n } else {\n labelSteps.push({\n dialog: v.substring(1)\n })\n }\n isNewLine = false\n }\n else if (v == \"ev\") {\n isInEnv = true\n }\n else if (v == \"\\n\") {\n isNewLine = true\n }\n else if (v == \"done\") {\n labelSteps.push({\n end: \"label_end\"\n })\n isNewLine = false\n }\n else if (v == \"end\") {\n labelSteps.push({\n end: \"game_end\"\n })\n isNewLine = false\n }\n }\n else if (v instanceof Array) {\n getLabel(v, labelKey, labelSteps, subLabels, shareData, isNewLine)\n }\n else if (v && typeof v === \"object\") {\n if (\"->\" in v && typeof v[\"->\"] === \"string\" && !v[\"->\"].includes(\".^.^.\")) {\n labelSteps.push({\n labelToOpen: {\n labelId: v[\"->\"],\n type: \"call\",\n }\n })\n isNewLine = false\n }\n else if (\"*\" in v && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\n envList.push(v)\n isNewLine = false\n }\n // if is choise info\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\n envList.push(v)\n isNewLine = false\n }\n else {\n addLabels(v, subLabels, labelKey, shareData)\n }\n }\n })\n if (envList.length > 0) {\n let choices: LabelChoiceRes = {}\n getLabelChoice(envList, choices)\n for (const [key, value] of Object.entries(choices)) {\n let newKey = labelKey + \"_\" + key\n // if last step is choice\n if (labelSteps.length > 0 && \"currentChoiceMenuOptions\" in labelSteps[labelSteps.length - 1]) {\n labelSteps[labelSteps.length - 1].currentChoiceMenuOptions?.push({\n text: value.text,\n label: newKey,\n props: {},\n type: \"call\"\n })\n }\n else {\n labelSteps.push({\n currentChoiceMenuOptions: [{\n text: value.text,\n label: newKey,\n props: {},\n type: \"call\"\n }]\n })\n }\n if (value.preDialog) {\n shareData.preDialog[newKey] = {\n text: value.preDialog.text\n }\n }\n }\n }\n}\n","import { LabelJsonType } from \"@drincs/pixi-vn\";\nimport { Compiler } from \"inkjs/compiler/Compiler\";\nimport InkStoryType from \"../types/InkStoryType\";\nimport { getInkLabel } from \"./StoryInfoConverter\";\n\nexport function convertInkText(text: string): LabelJsonType | undefined {\n let json = convertorInkToJson(text);\n let obj: InkStoryType\n try {\n obj = JSON.parse(json);\n } catch (e) {\n console.error(\"[Pixi'VN Ink] Error parsing ink file\", e)\n return\n }\n\n return getInkLabel(obj.root)\n}\n\nfunction convertorInkToJson(test: string): string {\n try {\n const story = new Compiler(test).Compile();\n let json = story.ToJson();\n console.log(json);\n return json || \"\";\n } catch (e) {\n console.error(\"[Pixi'VN] Error compiling ink file\", e)\n return \"\"\n }\n}\n","import { importPixiVNJson } from \"@drincs/pixi-vn\";\nimport { convertInkText } from \"./InkToPixivn\";\n\nexport function importInkText(text: string | string[]) {\n // if is array\n if (Array.isArray(text)) {\n text.forEach((t) => {\n importInkText(t)\n })\n return\n }\n let data = convertInkText(text)\n if (data) {\n {\n importPixiVNJson(data)\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/functions/ChoiceInfoConverter.ts","../../src/functions/StoryInfoConverter.ts","../../src/functions/InkToPixivn.ts"],"names":["Compiler"],"mappings":"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","file":"InkToPixivn.js","sourcesContent":["import LabelChoiceRes from '../types/LabelChoiceRes';\r\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\r\n\r\nexport function getLabelChoice(items: any[], result: LabelChoiceRes) {\r\n let text: string = \"\"\r\n let label: string = \"\"\r\n let preDialog: string = \"\"\r\n items.forEach((v, index) => {\r\n if (typeof v === \"string\") {\r\n // Dialog\r\n if (v.startsWith(\"^\")) {\r\n text = v.substring(1)\r\n }\r\n }\r\n else if (v && typeof v === \"object\") {\r\n // if is a choice\r\n if (\"*\" in v && typeof v[\"*\"] && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\r\n let l = \"c\" + v[\"*\"].split(\"c\")[1]\r\n label = l\r\n }\r\n // if is choise info\r\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\r\n let t = findChoiceText(v[\"s\"])\r\n if (t) {\r\n text = t\r\n preDialog = t\r\n }\r\n }\r\n }\r\n if (text && label) {\r\n if (result[label]) {\r\n result[label].text = text + result[label].text\r\n }\r\n else {\r\n result[label] = { text: text }\r\n }\r\n if (preDialog) {\r\n result[label].preDialog = { text: preDialog }\r\n }\r\n // split text and label\r\n let newListItem = items.slice(index + 1)\r\n getLabelChoice(newListItem, result)\r\n return\r\n }\r\n })\r\n}\r\n\r\nfunction findChoiceText(items: RootParserItemType[]): string | undefined {\r\n for (const item of items) {\r\n if (typeof item === \"string\") {\r\n if (item.startsWith(\"^\")) {\r\n return item.substring(1)\r\n }\r\n }\r\n else if (item instanceof Array) {\r\n let res = findChoiceText(item)\r\n if (res) {\r\n return res\r\n }\r\n }\r\n }\r\n}\r\n","import { LabelJsonType, StepLabelJsonType } from '@drincs/pixi-vn';\r\nimport InkRootType from '../types/InkRootType';\r\nimport LabelChoiceRes from '../types/LabelChoiceRes';\r\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\r\nimport { getLabelChoice } from './ChoiceInfoConverter';\r\n\r\nexport function getInkLabel(story: InkRootType[]): LabelJsonType | undefined {\r\n try {\r\n let label: LabelJsonType = {}\r\n\r\n findLabel(story, label)\r\n\r\n return label;\r\n } catch (e) {\r\n console.error(\"[Pixi'VN Ink] Error parsing ink file\", e)\r\n }\r\n}\r\n\r\nfunction findLabel(story: RootParserItemType[], labels: LabelJsonType) {\r\n for (const storyItem of story) {\r\n if (storyItem) {\r\n if (storyItem instanceof Array) {\r\n findLabel(storyItem, labels)\r\n }\r\n else if (typeof storyItem === \"object\") {\r\n addLabels(storyItem, labels)\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction addLabels(storyItem: object, result: LabelJsonType, dadLabelKey: string = \"\", shareData: ShareData = { preDialog: {} }) {\r\n if (storyItem === null) {\r\n return\r\n }\r\n // for value and key in item\r\n for (const [key, value] of Object.entries(storyItem)) {\r\n // if value is an array\r\n if (value instanceof Array) {\r\n let labels: StepLabelJsonType[] = []\r\n let subLabels: LabelJsonType = {}\r\n let labelName = (dadLabelKey ? dadLabelKey + \"_\" : \"\") + key\r\n getLabel(value, labelName, labels, subLabels, shareData)\r\n for (const [subKey, subValue] of Object.entries(subLabels)) {\r\n result[subKey] = subValue\r\n }\r\n if (labels.length > 0) {\r\n result[labelName] = labels\r\n }\r\n }\r\n }\r\n}\r\n\r\ntype ShareData = {\r\n preDialog: { [label: string]: { text: string } }\r\n}\r\nfunction getLabel(items: any[], labelKey: string, labelSteps: StepLabelJsonType[], subLabels: LabelJsonType, shareData: ShareData, isNewLine: boolean = true) {\r\n let isInEnv = false\r\n let envList: any[] = []\r\n if (shareData.preDialog[labelKey]) {\r\n labelSteps.push({\r\n dialog: shareData.preDialog[labelKey].text\r\n })\r\n delete shareData.preDialog[labelKey]\r\n isNewLine = false\r\n }\r\n items.forEach((v) => {\r\n if (isInEnv) {\r\n envList.push(v)\r\n if (typeof v === \"string\" && v == \"/ev\") {\r\n isInEnv = false\r\n }\r\n }\r\n else if (typeof v === \"string\") {\r\n // Dialog\r\n if (v.startsWith(\"^\")) {\r\n if (!isNewLine && labelSteps.length > 0) {\r\n labelSteps[labelSteps.length - 1].dialog = labelSteps[labelSteps.length - 1].dialog + v.substring(1)\r\n } else {\r\n labelSteps.push({\r\n dialog: v.substring(1)\r\n })\r\n }\r\n isNewLine = false\r\n }\r\n else if (v == \"ev\") {\r\n isInEnv = true\r\n }\r\n else if (v == \"\\n\") {\r\n isNewLine = true\r\n }\r\n else if (v == \"done\") {\r\n labelSteps.push({\r\n end: \"label_end\"\r\n })\r\n isNewLine = false\r\n }\r\n else if (v == \"end\") {\r\n labelSteps.push({\r\n end: \"game_end\"\r\n })\r\n isNewLine = false\r\n }\r\n }\r\n else if (v instanceof Array) {\r\n getLabel(v, labelKey, labelSteps, subLabels, shareData, isNewLine)\r\n }\r\n else if (v && typeof v === \"object\") {\r\n if (\"->\" in v && typeof v[\"->\"] === \"string\" && !v[\"->\"].includes(\".^.^.\")) {\r\n labelSteps.push({\r\n labelToOpen: {\r\n labelId: v[\"->\"],\r\n type: \"call\",\r\n }\r\n })\r\n isNewLine = false\r\n }\r\n else if (\"*\" in v && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\r\n envList.push(v)\r\n isNewLine = false\r\n }\r\n // if is choise info\r\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\r\n envList.push(v)\r\n isNewLine = false\r\n }\r\n else {\r\n addLabels(v, subLabels, labelKey, shareData)\r\n }\r\n }\r\n })\r\n if (envList.length > 0) {\r\n let choices: LabelChoiceRes = {}\r\n getLabelChoice(envList, choices)\r\n for (const [key, value] of Object.entries(choices)) {\r\n let newKey = labelKey + \"_\" + key\r\n // if last step is choice\r\n if (labelSteps.length > 0 && \"currentChoiceMenuOptions\" in labelSteps[labelSteps.length - 1]) {\r\n labelSteps[labelSteps.length - 1].currentChoiceMenuOptions?.push({\r\n text: value.text,\r\n label: newKey,\r\n props: {},\r\n type: \"call\"\r\n })\r\n }\r\n else {\r\n labelSteps.push({\r\n currentChoiceMenuOptions: [{\r\n text: value.text,\r\n label: newKey,\r\n props: {},\r\n type: \"call\"\r\n }]\r\n })\r\n }\r\n if (value.preDialog) {\r\n shareData.preDialog[newKey] = {\r\n text: value.preDialog.text\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import { LabelJsonType } from \"@drincs/pixi-vn\";\r\nimport { Compiler } from \"inkjs/compiler/Compiler\";\r\nimport InkStoryType from \"../types/InkStoryType\";\r\nimport { getInkLabel } from \"./StoryInfoConverter\";\r\n\r\nexport function convertInkText(text: string): LabelJsonType | undefined {\r\n let json = convertorInkToJson(text);\r\n let obj: InkStoryType\r\n try {\r\n obj = JSON.parse(json);\r\n } catch (e) {\r\n console.error(\"[Pixi'VN Ink] Error parsing ink file\", e)\r\n return\r\n }\r\n\r\n return getInkLabel(obj.root)\r\n}\r\n\r\nfunction convertorInkToJson(test: string): string {\r\n try {\r\n const story = new Compiler(test).Compile();\r\n let json = story.ToJson();\r\n console.log(json);\r\n return json || \"\";\r\n } catch (e) {\r\n console.error(\"[Pixi'VN] Error compiling ink file\", e)\r\n return \"\"\r\n }\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../src/functions/ChoiceInfoConverter.ts","../../src/functions/StoryInfoConverter.ts","../../src/functions/InkToPixivn.ts"],"names":["Compiler"],"mappings":"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","file":"InkToPixivn.js","sourcesContent":["import LabelChoiceRes from '../types/LabelChoiceRes';\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\n\nexport function getLabelChoice(items: any[], result: LabelChoiceRes) {\n let text: string = \"\"\n let label: string = \"\"\n let preDialog: string = \"\"\n items.forEach((v, index) => {\n if (typeof v === \"string\") {\n // Dialog\n if (v.startsWith(\"^\")) {\n text = v.substring(1)\n }\n }\n else if (v && typeof v === \"object\") {\n // if is a choice\n if (\"*\" in v && typeof v[\"*\"] && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\n let l = \"c\" + v[\"*\"].split(\"c\")[1]\n label = l\n }\n // if is choise info\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\n let t = findChoiceText(v[\"s\"])\n if (t) {\n text = t\n preDialog = t\n }\n }\n }\n if (text && label) {\n if (result[label]) {\n result[label].text = text + result[label].text\n }\n else {\n result[label] = { text: text }\n }\n if (preDialog) {\n result[label].preDialog = { text: preDialog }\n }\n // split text and label\n let newListItem = items.slice(index + 1)\n getLabelChoice(newListItem, result)\n return\n }\n })\n}\n\nfunction findChoiceText(items: RootParserItemType[]): string | undefined {\n for (const item of items) {\n if (typeof item === \"string\") {\n if (item.startsWith(\"^\")) {\n return item.substring(1)\n }\n }\n else if (item instanceof Array) {\n let res = findChoiceText(item)\n if (res) {\n return res\n }\n }\n }\n}\n","import { LabelJsonType, StepLabelJsonType } from '@drincs/pixi-vn';\nimport InkRootType from '../types/InkRootType';\nimport LabelChoiceRes from '../types/LabelChoiceRes';\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\nimport { getLabelChoice } from './ChoiceInfoConverter';\n\nexport function getInkLabel(story: InkRootType[]): LabelJsonType | undefined {\n try {\n let label: LabelJsonType = {}\n\n findLabel(story, label)\n\n return label;\n } catch (e) {\n console.error(\"[Pixi'VN Ink] Error parsing ink file\", e)\n }\n}\n\nfunction findLabel(story: RootParserItemType[], labels: LabelJsonType) {\n for (const storyItem of story) {\n if (storyItem) {\n if (storyItem instanceof Array) {\n findLabel(storyItem, labels)\n }\n else if (typeof storyItem === \"object\") {\n addLabels(storyItem, labels)\n }\n }\n }\n}\n\nfunction addLabels(storyItem: object, result: LabelJsonType, dadLabelKey: string = \"\", shareData: ShareData = { preDialog: {} }) {\n if (storyItem === null) {\n return\n }\n // for value and key in item\n for (const [key, value] of Object.entries(storyItem)) {\n // if value is an array\n if (value instanceof Array) {\n let labels: StepLabelJsonType[] = []\n let subLabels: LabelJsonType = {}\n let labelName = (dadLabelKey ? dadLabelKey + \"_\" : \"\") + key\n getLabel(value, labelName, labels, subLabels, shareData)\n for (const [subKey, subValue] of Object.entries(subLabels)) {\n result[subKey] = subValue\n }\n if (labels.length > 0) {\n result[labelName] = labels\n }\n }\n }\n}\n\ntype ShareData = {\n preDialog: { [label: string]: { text: string } }\n}\nfunction getLabel(items: any[], labelKey: string, labelSteps: StepLabelJsonType[], subLabels: LabelJsonType, shareData: ShareData, isNewLine: boolean = true) {\n let isInEnv = false\n let envList: any[] = []\n if (shareData.preDialog[labelKey]) {\n labelSteps.push({\n dialog: shareData.preDialog[labelKey].text\n })\n delete shareData.preDialog[labelKey]\n isNewLine = false\n }\n items.forEach((v) => {\n if (isInEnv) {\n envList.push(v)\n if (typeof v === \"string\" && v == \"/ev\") {\n isInEnv = false\n }\n }\n else if (typeof v === \"string\") {\n // Dialog\n if (v.startsWith(\"^\")) {\n if (!isNewLine && labelSteps.length > 0) {\n labelSteps[labelSteps.length - 1].dialog = labelSteps[labelSteps.length - 1].dialog + v.substring(1)\n } else {\n labelSteps.push({\n dialog: v.substring(1)\n })\n }\n isNewLine = false\n }\n else if (v == \"ev\") {\n isInEnv = true\n }\n else if (v == \"\\n\") {\n isNewLine = true\n }\n else if (v == \"done\") {\n labelSteps.push({\n end: \"label_end\"\n })\n isNewLine = false\n }\n else if (v == \"end\") {\n labelSteps.push({\n end: \"game_end\"\n })\n isNewLine = false\n }\n }\n else if (v instanceof Array) {\n getLabel(v, labelKey, labelSteps, subLabels, shareData, isNewLine)\n }\n else if (v && typeof v === \"object\") {\n if (\"->\" in v && typeof v[\"->\"] === \"string\" && !v[\"->\"].includes(\".^.^.\")) {\n labelSteps.push({\n labelToOpen: {\n labelId: v[\"->\"],\n type: \"call\",\n }\n })\n isNewLine = false\n }\n else if (\"*\" in v && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\n envList.push(v)\n isNewLine = false\n }\n // if is choise info\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\n envList.push(v)\n isNewLine = false\n }\n else {\n addLabels(v, subLabels, labelKey, shareData)\n }\n }\n })\n if (envList.length > 0) {\n let choices: LabelChoiceRes = {}\n getLabelChoice(envList, choices)\n for (const [key, value] of Object.entries(choices)) {\n let newKey = labelKey + \"_\" + key\n // if last step is choice\n if (labelSteps.length > 0 && \"currentChoiceMenuOptions\" in labelSteps[labelSteps.length - 1]) {\n labelSteps[labelSteps.length - 1].currentChoiceMenuOptions?.push({\n text: value.text,\n label: newKey,\n props: {},\n type: \"call\"\n })\n }\n else {\n labelSteps.push({\n currentChoiceMenuOptions: [{\n text: value.text,\n label: newKey,\n props: {},\n type: \"call\"\n }]\n })\n }\n if (value.preDialog) {\n shareData.preDialog[newKey] = {\n text: value.preDialog.text\n }\n }\n }\n }\n}\n","import { LabelJsonType } from \"@drincs/pixi-vn\";\nimport { Compiler } from \"inkjs/compiler/Compiler\";\nimport InkStoryType from \"../types/InkStoryType\";\nimport { getInkLabel } from \"./StoryInfoConverter\";\n\nexport function convertInkText(text: string): LabelJsonType | undefined {\n let json = convertorInkToJson(text);\n let obj: InkStoryType\n try {\n obj = JSON.parse(json);\n } catch (e) {\n console.error(\"[Pixi'VN Ink] Error parsing ink file\", e)\n return\n }\n\n return getInkLabel(obj.root)\n}\n\nfunction convertorInkToJson(test: string): string {\n try {\n const story = new Compiler(test).Compile();\n let json = story.ToJson();\n console.log(json);\n return json || \"\";\n } catch (e) {\n console.error(\"[Pixi'VN] Error compiling ink file\", e)\n return \"\"\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/functions/ChoiceInfoConverter.ts","../../src/functions/StoryInfoConverter.ts","../../src/functions/InkToPixivn.ts"],"names":[],"mappings":"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","file":"InkToPixivn.mjs","sourcesContent":["import LabelChoiceRes from '../types/LabelChoiceRes';\r\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\r\n\r\nexport function getLabelChoice(items: any[], result: LabelChoiceRes) {\r\n let text: string = \"\"\r\n let label: string = \"\"\r\n let preDialog: string = \"\"\r\n items.forEach((v, index) => {\r\n if (typeof v === \"string\") {\r\n // Dialog\r\n if (v.startsWith(\"^\")) {\r\n text = v.substring(1)\r\n }\r\n }\r\n else if (v && typeof v === \"object\") {\r\n // if is a choice\r\n if (\"*\" in v && typeof v[\"*\"] && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\r\n let l = \"c\" + v[\"*\"].split(\"c\")[1]\r\n label = l\r\n }\r\n // if is choise info\r\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\r\n let t = findChoiceText(v[\"s\"])\r\n if (t) {\r\n text = t\r\n preDialog = t\r\n }\r\n }\r\n }\r\n if (text && label) {\r\n if (result[label]) {\r\n result[label].text = text + result[label].text\r\n }\r\n else {\r\n result[label] = { text: text }\r\n }\r\n if (preDialog) {\r\n result[label].preDialog = { text: preDialog }\r\n }\r\n // split text and label\r\n let newListItem = items.slice(index + 1)\r\n getLabelChoice(newListItem, result)\r\n return\r\n }\r\n })\r\n}\r\n\r\nfunction findChoiceText(items: RootParserItemType[]): string | undefined {\r\n for (const item of items) {\r\n if (typeof item === \"string\") {\r\n if (item.startsWith(\"^\")) {\r\n return item.substring(1)\r\n }\r\n }\r\n else if (item instanceof Array) {\r\n let res = findChoiceText(item)\r\n if (res) {\r\n return res\r\n }\r\n }\r\n }\r\n}\r\n","import { LabelJsonType, StepLabelJsonType } from '@drincs/pixi-vn';\r\nimport InkRootType from '../types/InkRootType';\r\nimport LabelChoiceRes from '../types/LabelChoiceRes';\r\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\r\nimport { getLabelChoice } from './ChoiceInfoConverter';\r\n\r\nexport function getInkLabel(story: InkRootType[]): LabelJsonType | undefined {\r\n try {\r\n let label: LabelJsonType = {}\r\n\r\n findLabel(story, label)\r\n\r\n return label;\r\n } catch (e) {\r\n console.error(\"[Pixi'VN Ink] Error parsing ink file\", e)\r\n }\r\n}\r\n\r\nfunction findLabel(story: RootParserItemType[], labels: LabelJsonType) {\r\n for (const storyItem of story) {\r\n if (storyItem) {\r\n if (storyItem instanceof Array) {\r\n findLabel(storyItem, labels)\r\n }\r\n else if (typeof storyItem === \"object\") {\r\n addLabels(storyItem, labels)\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction addLabels(storyItem: object, result: LabelJsonType, dadLabelKey: string = \"\", shareData: ShareData = { preDialog: {} }) {\r\n if (storyItem === null) {\r\n return\r\n }\r\n // for value and key in item\r\n for (const [key, value] of Object.entries(storyItem)) {\r\n // if value is an array\r\n if (value instanceof Array) {\r\n let labels: StepLabelJsonType[] = []\r\n let subLabels: LabelJsonType = {}\r\n let labelName = (dadLabelKey ? dadLabelKey + \"_\" : \"\") + key\r\n getLabel(value, labelName, labels, subLabels, shareData)\r\n for (const [subKey, subValue] of Object.entries(subLabels)) {\r\n result[subKey] = subValue\r\n }\r\n if (labels.length > 0) {\r\n result[labelName] = labels\r\n }\r\n }\r\n }\r\n}\r\n\r\ntype ShareData = {\r\n preDialog: { [label: string]: { text: string } }\r\n}\r\nfunction getLabel(items: any[], labelKey: string, labelSteps: StepLabelJsonType[], subLabels: LabelJsonType, shareData: ShareData, isNewLine: boolean = true) {\r\n let isInEnv = false\r\n let envList: any[] = []\r\n if (shareData.preDialog[labelKey]) {\r\n labelSteps.push({\r\n dialog: shareData.preDialog[labelKey].text\r\n })\r\n delete shareData.preDialog[labelKey]\r\n isNewLine = false\r\n }\r\n items.forEach((v) => {\r\n if (isInEnv) {\r\n envList.push(v)\r\n if (typeof v === \"string\" && v == \"/ev\") {\r\n isInEnv = false\r\n }\r\n }\r\n else if (typeof v === \"string\") {\r\n // Dialog\r\n if (v.startsWith(\"^\")) {\r\n if (!isNewLine && labelSteps.length > 0) {\r\n labelSteps[labelSteps.length - 1].dialog = labelSteps[labelSteps.length - 1].dialog + v.substring(1)\r\n } else {\r\n labelSteps.push({\r\n dialog: v.substring(1)\r\n })\r\n }\r\n isNewLine = false\r\n }\r\n else if (v == \"ev\") {\r\n isInEnv = true\r\n }\r\n else if (v == \"\\n\") {\r\n isNewLine = true\r\n }\r\n else if (v == \"done\") {\r\n labelSteps.push({\r\n end: \"label_end\"\r\n })\r\n isNewLine = false\r\n }\r\n else if (v == \"end\") {\r\n labelSteps.push({\r\n end: \"game_end\"\r\n })\r\n isNewLine = false\r\n }\r\n }\r\n else if (v instanceof Array) {\r\n getLabel(v, labelKey, labelSteps, subLabels, shareData, isNewLine)\r\n }\r\n else if (v && typeof v === \"object\") {\r\n if (\"->\" in v && typeof v[\"->\"] === \"string\" && !v[\"->\"].includes(\".^.^.\")) {\r\n labelSteps.push({\r\n labelToOpen: {\r\n labelId: v[\"->\"],\r\n type: \"call\",\r\n }\r\n })\r\n isNewLine = false\r\n }\r\n else if (\"*\" in v && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\r\n envList.push(v)\r\n isNewLine = false\r\n }\r\n // if is choise info\r\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\r\n envList.push(v)\r\n isNewLine = false\r\n }\r\n else {\r\n addLabels(v, subLabels, labelKey, shareData)\r\n }\r\n }\r\n })\r\n if (envList.length > 0) {\r\n let choices: LabelChoiceRes = {}\r\n getLabelChoice(envList, choices)\r\n for (const [key, value] of Object.entries(choices)) {\r\n let newKey = labelKey + \"_\" + key\r\n // if last step is choice\r\n if (labelSteps.length > 0 && \"currentChoiceMenuOptions\" in labelSteps[labelSteps.length - 1]) {\r\n labelSteps[labelSteps.length - 1].currentChoiceMenuOptions?.push({\r\n text: value.text,\r\n label: newKey,\r\n props: {},\r\n type: \"call\"\r\n })\r\n }\r\n else {\r\n labelSteps.push({\r\n currentChoiceMenuOptions: [{\r\n text: value.text,\r\n label: newKey,\r\n props: {},\r\n type: \"call\"\r\n }]\r\n })\r\n }\r\n if (value.preDialog) {\r\n shareData.preDialog[newKey] = {\r\n text: value.preDialog.text\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import { LabelJsonType } from \"@drincs/pixi-vn\";\r\nimport { Compiler } from \"inkjs/compiler/Compiler\";\r\nimport InkStoryType from \"../types/InkStoryType\";\r\nimport { getInkLabel } from \"./StoryInfoConverter\";\r\n\r\nexport function convertInkText(text: string): LabelJsonType | undefined {\r\n let json = convertorInkToJson(text);\r\n let obj: InkStoryType\r\n try {\r\n obj = JSON.parse(json);\r\n } catch (e) {\r\n console.error(\"[Pixi'VN Ink] Error parsing ink file\", e)\r\n return\r\n }\r\n\r\n return getInkLabel(obj.root)\r\n}\r\n\r\nfunction convertorInkToJson(test: string): string {\r\n try {\r\n const story = new Compiler(test).Compile();\r\n let json = story.ToJson();\r\n console.log(json);\r\n return json || \"\";\r\n } catch (e) {\r\n console.error(\"[Pixi'VN] Error compiling ink file\", e)\r\n return \"\"\r\n }\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../src/functions/ChoiceInfoConverter.ts","../../src/functions/StoryInfoConverter.ts","../../src/functions/InkToPixivn.ts"],"names":[],"mappings":"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","file":"InkToPixivn.mjs","sourcesContent":["import LabelChoiceRes from '../types/LabelChoiceRes';\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\n\nexport function getLabelChoice(items: any[], result: LabelChoiceRes) {\n let text: string = \"\"\n let label: string = \"\"\n let preDialog: string = \"\"\n items.forEach((v, index) => {\n if (typeof v === \"string\") {\n // Dialog\n if (v.startsWith(\"^\")) {\n text = v.substring(1)\n }\n }\n else if (v && typeof v === \"object\") {\n // if is a choice\n if (\"*\" in v && typeof v[\"*\"] && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\n let l = \"c\" + v[\"*\"].split(\"c\")[1]\n label = l\n }\n // if is choise info\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\n let t = findChoiceText(v[\"s\"])\n if (t) {\n text = t\n preDialog = t\n }\n }\n }\n if (text && label) {\n if (result[label]) {\n result[label].text = text + result[label].text\n }\n else {\n result[label] = { text: text }\n }\n if (preDialog) {\n result[label].preDialog = { text: preDialog }\n }\n // split text and label\n let newListItem = items.slice(index + 1)\n getLabelChoice(newListItem, result)\n return\n }\n })\n}\n\nfunction findChoiceText(items: RootParserItemType[]): string | undefined {\n for (const item of items) {\n if (typeof item === \"string\") {\n if (item.startsWith(\"^\")) {\n return item.substring(1)\n }\n }\n else if (item instanceof Array) {\n let res = findChoiceText(item)\n if (res) {\n return res\n }\n }\n }\n}\n","import { LabelJsonType, StepLabelJsonType } from '@drincs/pixi-vn';\nimport InkRootType from '../types/InkRootType';\nimport LabelChoiceRes from '../types/LabelChoiceRes';\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\nimport { getLabelChoice } from './ChoiceInfoConverter';\n\nexport function getInkLabel(story: InkRootType[]): LabelJsonType | undefined {\n try {\n let label: LabelJsonType = {}\n\n findLabel(story, label)\n\n return label;\n } catch (e) {\n console.error(\"[Pixi'VN Ink] Error parsing ink file\", e)\n }\n}\n\nfunction findLabel(story: RootParserItemType[], labels: LabelJsonType) {\n for (const storyItem of story) {\n if (storyItem) {\n if (storyItem instanceof Array) {\n findLabel(storyItem, labels)\n }\n else if (typeof storyItem === \"object\") {\n addLabels(storyItem, labels)\n }\n }\n }\n}\n\nfunction addLabels(storyItem: object, result: LabelJsonType, dadLabelKey: string = \"\", shareData: ShareData = { preDialog: {} }) {\n if (storyItem === null) {\n return\n }\n // for value and key in item\n for (const [key, value] of Object.entries(storyItem)) {\n // if value is an array\n if (value instanceof Array) {\n let labels: StepLabelJsonType[] = []\n let subLabels: LabelJsonType = {}\n let labelName = (dadLabelKey ? dadLabelKey + \"_\" : \"\") + key\n getLabel(value, labelName, labels, subLabels, shareData)\n for (const [subKey, subValue] of Object.entries(subLabels)) {\n result[subKey] = subValue\n }\n if (labels.length > 0) {\n result[labelName] = labels\n }\n }\n }\n}\n\ntype ShareData = {\n preDialog: { [label: string]: { text: string } }\n}\nfunction getLabel(items: any[], labelKey: string, labelSteps: StepLabelJsonType[], subLabels: LabelJsonType, shareData: ShareData, isNewLine: boolean = true) {\n let isInEnv = false\n let envList: any[] = []\n if (shareData.preDialog[labelKey]) {\n labelSteps.push({\n dialog: shareData.preDialog[labelKey].text\n })\n delete shareData.preDialog[labelKey]\n isNewLine = false\n }\n items.forEach((v) => {\n if (isInEnv) {\n envList.push(v)\n if (typeof v === \"string\" && v == \"/ev\") {\n isInEnv = false\n }\n }\n else if (typeof v === \"string\") {\n // Dialog\n if (v.startsWith(\"^\")) {\n if (!isNewLine && labelSteps.length > 0) {\n labelSteps[labelSteps.length - 1].dialog = labelSteps[labelSteps.length - 1].dialog + v.substring(1)\n } else {\n labelSteps.push({\n dialog: v.substring(1)\n })\n }\n isNewLine = false\n }\n else if (v == \"ev\") {\n isInEnv = true\n }\n else if (v == \"\\n\") {\n isNewLine = true\n }\n else if (v == \"done\") {\n labelSteps.push({\n end: \"label_end\"\n })\n isNewLine = false\n }\n else if (v == \"end\") {\n labelSteps.push({\n end: \"game_end\"\n })\n isNewLine = false\n }\n }\n else if (v instanceof Array) {\n getLabel(v, labelKey, labelSteps, subLabels, shareData, isNewLine)\n }\n else if (v && typeof v === \"object\") {\n if (\"->\" in v && typeof v[\"->\"] === \"string\" && !v[\"->\"].includes(\".^.^.\")) {\n labelSteps.push({\n labelToOpen: {\n labelId: v[\"->\"],\n type: \"call\",\n }\n })\n isNewLine = false\n }\n else if (\"*\" in v && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\n envList.push(v)\n isNewLine = false\n }\n // if is choise info\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\n envList.push(v)\n isNewLine = false\n }\n else {\n addLabels(v, subLabels, labelKey, shareData)\n }\n }\n })\n if (envList.length > 0) {\n let choices: LabelChoiceRes = {}\n getLabelChoice(envList, choices)\n for (const [key, value] of Object.entries(choices)) {\n let newKey = labelKey + \"_\" + key\n // if last step is choice\n if (labelSteps.length > 0 && \"currentChoiceMenuOptions\" in labelSteps[labelSteps.length - 1]) {\n labelSteps[labelSteps.length - 1].currentChoiceMenuOptions?.push({\n text: value.text,\n label: newKey,\n props: {},\n type: \"call\"\n })\n }\n else {\n labelSteps.push({\n currentChoiceMenuOptions: [{\n text: value.text,\n label: newKey,\n props: {},\n type: \"call\"\n }]\n })\n }\n if (value.preDialog) {\n shareData.preDialog[newKey] = {\n text: value.preDialog.text\n }\n }\n }\n }\n}\n","import { LabelJsonType } from \"@drincs/pixi-vn\";\nimport { Compiler } from \"inkjs/compiler/Compiler\";\nimport InkStoryType from \"../types/InkStoryType\";\nimport { getInkLabel } from \"./StoryInfoConverter\";\n\nexport function convertInkText(text: string): LabelJsonType | undefined {\n let json = convertorInkToJson(text);\n let obj: InkStoryType\n try {\n obj = JSON.parse(json);\n } catch (e) {\n console.error(\"[Pixi'VN Ink] Error parsing ink file\", e)\n return\n }\n\n return getInkLabel(obj.root)\n}\n\nfunction convertorInkToJson(test: string): string {\n try {\n const story = new Compiler(test).Compile();\n let json = story.ToJson();\n console.log(json);\n return json || \"\";\n } catch (e) {\n console.error(\"[Pixi'VN] Error compiling ink file\", e)\n return \"\"\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/functions/ChoiceInfoConverter.ts","../../src/functions/StoryInfoConverter.ts"],"names":[],"mappings":"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","file":"StoryInfoConverter.js","sourcesContent":["import LabelChoiceRes from '../types/LabelChoiceRes';\r\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\r\n\r\nexport function getLabelChoice(items: any[], result: LabelChoiceRes) {\r\n let text: string = \"\"\r\n let label: string = \"\"\r\n let preDialog: string = \"\"\r\n items.forEach((v, index) => {\r\n if (typeof v === \"string\") {\r\n // Dialog\r\n if (v.startsWith(\"^\")) {\r\n text = v.substring(1)\r\n }\r\n }\r\n else if (v && typeof v === \"object\") {\r\n // if is a choice\r\n if (\"*\" in v && typeof v[\"*\"] && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\r\n let l = \"c\" + v[\"*\"].split(\"c\")[1]\r\n label = l\r\n }\r\n // if is choise info\r\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\r\n let t = findChoiceText(v[\"s\"])\r\n if (t) {\r\n text = t\r\n preDialog = t\r\n }\r\n }\r\n }\r\n if (text && label) {\r\n if (result[label]) {\r\n result[label].text = text + result[label].text\r\n }\r\n else {\r\n result[label] = { text: text }\r\n }\r\n if (preDialog) {\r\n result[label].preDialog = { text: preDialog }\r\n }\r\n // split text and label\r\n let newListItem = items.slice(index + 1)\r\n getLabelChoice(newListItem, result)\r\n return\r\n }\r\n })\r\n}\r\n\r\nfunction findChoiceText(items: RootParserItemType[]): string | undefined {\r\n for (const item of items) {\r\n if (typeof item === \"string\") {\r\n if (item.startsWith(\"^\")) {\r\n return item.substring(1)\r\n }\r\n }\r\n else if (item instanceof Array) {\r\n let res = findChoiceText(item)\r\n if (res) {\r\n return res\r\n }\r\n }\r\n }\r\n}\r\n","import { LabelJsonType, StepLabelJsonType } from '@drincs/pixi-vn';\r\nimport InkRootType from '../types/InkRootType';\r\nimport LabelChoiceRes from '../types/LabelChoiceRes';\r\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\r\nimport { getLabelChoice } from './ChoiceInfoConverter';\r\n\r\nexport function getInkLabel(story: InkRootType[]): LabelJsonType | undefined {\r\n try {\r\n let label: LabelJsonType = {}\r\n\r\n findLabel(story, label)\r\n\r\n return label;\r\n } catch (e) {\r\n console.error(\"[Pixi'VN Ink] Error parsing ink file\", e)\r\n }\r\n}\r\n\r\nfunction findLabel(story: RootParserItemType[], labels: LabelJsonType) {\r\n for (const storyItem of story) {\r\n if (storyItem) {\r\n if (storyItem instanceof Array) {\r\n findLabel(storyItem, labels)\r\n }\r\n else if (typeof storyItem === \"object\") {\r\n addLabels(storyItem, labels)\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction addLabels(storyItem: object, result: LabelJsonType, dadLabelKey: string = \"\", shareData: ShareData = { preDialog: {} }) {\r\n if (storyItem === null) {\r\n return\r\n }\r\n // for value and key in item\r\n for (const [key, value] of Object.entries(storyItem)) {\r\n // if value is an array\r\n if (value instanceof Array) {\r\n let labels: StepLabelJsonType[] = []\r\n let subLabels: LabelJsonType = {}\r\n let labelName = (dadLabelKey ? dadLabelKey + \"_\" : \"\") + key\r\n getLabel(value, labelName, labels, subLabels, shareData)\r\n for (const [subKey, subValue] of Object.entries(subLabels)) {\r\n result[subKey] = subValue\r\n }\r\n if (labels.length > 0) {\r\n result[labelName] = labels\r\n }\r\n }\r\n }\r\n}\r\n\r\ntype ShareData = {\r\n preDialog: { [label: string]: { text: string } }\r\n}\r\nfunction getLabel(items: any[], labelKey: string, labelSteps: StepLabelJsonType[], subLabels: LabelJsonType, shareData: ShareData, isNewLine: boolean = true) {\r\n let isInEnv = false\r\n let envList: any[] = []\r\n if (shareData.preDialog[labelKey]) {\r\n labelSteps.push({\r\n dialog: shareData.preDialog[labelKey].text\r\n })\r\n delete shareData.preDialog[labelKey]\r\n isNewLine = false\r\n }\r\n items.forEach((v) => {\r\n if (isInEnv) {\r\n envList.push(v)\r\n if (typeof v === \"string\" && v == \"/ev\") {\r\n isInEnv = false\r\n }\r\n }\r\n else if (typeof v === \"string\") {\r\n // Dialog\r\n if (v.startsWith(\"^\")) {\r\n if (!isNewLine && labelSteps.length > 0) {\r\n labelSteps[labelSteps.length - 1].dialog = labelSteps[labelSteps.length - 1].dialog + v.substring(1)\r\n } else {\r\n labelSteps.push({\r\n dialog: v.substring(1)\r\n })\r\n }\r\n isNewLine = false\r\n }\r\n else if (v == \"ev\") {\r\n isInEnv = true\r\n }\r\n else if (v == \"\\n\") {\r\n isNewLine = true\r\n }\r\n else if (v == \"done\") {\r\n labelSteps.push({\r\n end: \"label_end\"\r\n })\r\n isNewLine = false\r\n }\r\n else if (v == \"end\") {\r\n labelSteps.push({\r\n end: \"game_end\"\r\n })\r\n isNewLine = false\r\n }\r\n }\r\n else if (v instanceof Array) {\r\n getLabel(v, labelKey, labelSteps, subLabels, shareData, isNewLine)\r\n }\r\n else if (v && typeof v === \"object\") {\r\n if (\"->\" in v && typeof v[\"->\"] === \"string\" && !v[\"->\"].includes(\".^.^.\")) {\r\n labelSteps.push({\r\n labelToOpen: {\r\n labelId: v[\"->\"],\r\n type: \"call\",\r\n }\r\n })\r\n isNewLine = false\r\n }\r\n else if (\"*\" in v && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\r\n envList.push(v)\r\n isNewLine = false\r\n }\r\n // if is choise info\r\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\r\n envList.push(v)\r\n isNewLine = false\r\n }\r\n else {\r\n addLabels(v, subLabels, labelKey, shareData)\r\n }\r\n }\r\n })\r\n if (envList.length > 0) {\r\n let choices: LabelChoiceRes = {}\r\n getLabelChoice(envList, choices)\r\n for (const [key, value] of Object.entries(choices)) {\r\n let newKey = labelKey + \"_\" + key\r\n // if last step is choice\r\n if (labelSteps.length > 0 && \"currentChoiceMenuOptions\" in labelSteps[labelSteps.length - 1]) {\r\n labelSteps[labelSteps.length - 1].currentChoiceMenuOptions?.push({\r\n text: value.text,\r\n label: newKey,\r\n props: {},\r\n type: \"call\"\r\n })\r\n }\r\n else {\r\n labelSteps.push({\r\n currentChoiceMenuOptions: [{\r\n text: value.text,\r\n label: newKey,\r\n props: {},\r\n type: \"call\"\r\n }]\r\n })\r\n }\r\n if (value.preDialog) {\r\n shareData.preDialog[newKey] = {\r\n text: value.preDialog.text\r\n }\r\n }\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../src/functions/ChoiceInfoConverter.ts","../../src/functions/StoryInfoConverter.ts"],"names":[],"mappings":"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","file":"StoryInfoConverter.js","sourcesContent":["import LabelChoiceRes from '../types/LabelChoiceRes';\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\n\nexport function getLabelChoice(items: any[], result: LabelChoiceRes) {\n let text: string = \"\"\n let label: string = \"\"\n let preDialog: string = \"\"\n items.forEach((v, index) => {\n if (typeof v === \"string\") {\n // Dialog\n if (v.startsWith(\"^\")) {\n text = v.substring(1)\n }\n }\n else if (v && typeof v === \"object\") {\n // if is a choice\n if (\"*\" in v && typeof v[\"*\"] && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\n let l = \"c\" + v[\"*\"].split(\"c\")[1]\n label = l\n }\n // if is choise info\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\n let t = findChoiceText(v[\"s\"])\n if (t) {\n text = t\n preDialog = t\n }\n }\n }\n if (text && label) {\n if (result[label]) {\n result[label].text = text + result[label].text\n }\n else {\n result[label] = { text: text }\n }\n if (preDialog) {\n result[label].preDialog = { text: preDialog }\n }\n // split text and label\n let newListItem = items.slice(index + 1)\n getLabelChoice(newListItem, result)\n return\n }\n })\n}\n\nfunction findChoiceText(items: RootParserItemType[]): string | undefined {\n for (const item of items) {\n if (typeof item === \"string\") {\n if (item.startsWith(\"^\")) {\n return item.substring(1)\n }\n }\n else if (item instanceof Array) {\n let res = findChoiceText(item)\n if (res) {\n return res\n }\n }\n }\n}\n","import { LabelJsonType, StepLabelJsonType } from '@drincs/pixi-vn';\nimport InkRootType from '../types/InkRootType';\nimport LabelChoiceRes from '../types/LabelChoiceRes';\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\nimport { getLabelChoice } from './ChoiceInfoConverter';\n\nexport function getInkLabel(story: InkRootType[]): LabelJsonType | undefined {\n try {\n let label: LabelJsonType = {}\n\n findLabel(story, label)\n\n return label;\n } catch (e) {\n console.error(\"[Pixi'VN Ink] Error parsing ink file\", e)\n }\n}\n\nfunction findLabel(story: RootParserItemType[], labels: LabelJsonType) {\n for (const storyItem of story) {\n if (storyItem) {\n if (storyItem instanceof Array) {\n findLabel(storyItem, labels)\n }\n else if (typeof storyItem === \"object\") {\n addLabels(storyItem, labels)\n }\n }\n }\n}\n\nfunction addLabels(storyItem: object, result: LabelJsonType, dadLabelKey: string = \"\", shareData: ShareData = { preDialog: {} }) {\n if (storyItem === null) {\n return\n }\n // for value and key in item\n for (const [key, value] of Object.entries(storyItem)) {\n // if value is an array\n if (value instanceof Array) {\n let labels: StepLabelJsonType[] = []\n let subLabels: LabelJsonType = {}\n let labelName = (dadLabelKey ? dadLabelKey + \"_\" : \"\") + key\n getLabel(value, labelName, labels, subLabels, shareData)\n for (const [subKey, subValue] of Object.entries(subLabels)) {\n result[subKey] = subValue\n }\n if (labels.length > 0) {\n result[labelName] = labels\n }\n }\n }\n}\n\ntype ShareData = {\n preDialog: { [label: string]: { text: string } }\n}\nfunction getLabel(items: any[], labelKey: string, labelSteps: StepLabelJsonType[], subLabels: LabelJsonType, shareData: ShareData, isNewLine: boolean = true) {\n let isInEnv = false\n let envList: any[] = []\n if (shareData.preDialog[labelKey]) {\n labelSteps.push({\n dialog: shareData.preDialog[labelKey].text\n })\n delete shareData.preDialog[labelKey]\n isNewLine = false\n }\n items.forEach((v) => {\n if (isInEnv) {\n envList.push(v)\n if (typeof v === \"string\" && v == \"/ev\") {\n isInEnv = false\n }\n }\n else if (typeof v === \"string\") {\n // Dialog\n if (v.startsWith(\"^\")) {\n if (!isNewLine && labelSteps.length > 0) {\n labelSteps[labelSteps.length - 1].dialog = labelSteps[labelSteps.length - 1].dialog + v.substring(1)\n } else {\n labelSteps.push({\n dialog: v.substring(1)\n })\n }\n isNewLine = false\n }\n else if (v == \"ev\") {\n isInEnv = true\n }\n else if (v == \"\\n\") {\n isNewLine = true\n }\n else if (v == \"done\") {\n labelSteps.push({\n end: \"label_end\"\n })\n isNewLine = false\n }\n else if (v == \"end\") {\n labelSteps.push({\n end: \"game_end\"\n })\n isNewLine = false\n }\n }\n else if (v instanceof Array) {\n getLabel(v, labelKey, labelSteps, subLabels, shareData, isNewLine)\n }\n else if (v && typeof v === \"object\") {\n if (\"->\" in v && typeof v[\"->\"] === \"string\" && !v[\"->\"].includes(\".^.^.\")) {\n labelSteps.push({\n labelToOpen: {\n labelId: v[\"->\"],\n type: \"call\",\n }\n })\n isNewLine = false\n }\n else if (\"*\" in v && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\n envList.push(v)\n isNewLine = false\n }\n // if is choise info\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\n envList.push(v)\n isNewLine = false\n }\n else {\n addLabels(v, subLabels, labelKey, shareData)\n }\n }\n })\n if (envList.length > 0) {\n let choices: LabelChoiceRes = {}\n getLabelChoice(envList, choices)\n for (const [key, value] of Object.entries(choices)) {\n let newKey = labelKey + \"_\" + key\n // if last step is choice\n if (labelSteps.length > 0 && \"currentChoiceMenuOptions\" in labelSteps[labelSteps.length - 1]) {\n labelSteps[labelSteps.length - 1].currentChoiceMenuOptions?.push({\n text: value.text,\n label: newKey,\n props: {},\n type: \"call\"\n })\n }\n else {\n labelSteps.push({\n currentChoiceMenuOptions: [{\n text: value.text,\n label: newKey,\n props: {},\n type: \"call\"\n }]\n })\n }\n if (value.preDialog) {\n shareData.preDialog[newKey] = {\n text: value.preDialog.text\n }\n }\n }\n }\n}\n"]}