UNPKG

@drincs/pixi-vn-json

Version:

Pixi'VN can be integrated with JSON files to create a visual novel.

3 lines (2 loc) 23.4 kB
'use strict';var pixiVn=require('@drincs/pixi-vn');var ae=Object.create;var X=Object.defineProperty;var se=Object.getOwnPropertyDescriptor;var oe=Object.getOwnPropertyNames;var le=Object.getPrototypeOf,fe=Object.prototype.hasOwnProperty;var W=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(i,e)=>(typeof require<"u"?require:i)[e]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var Y=(t,i)=>()=>(i||t((i={exports:{}}).exports,i),i.exports);var ce=(t,i,e,n)=>{if(i&&typeof i=="object"||typeof i=="function")for(let a of oe(i))!fe.call(t,a)&&a!==e&&X(t,a,{get:()=>i[a],enumerable:!(n=se(i,a))||n.enumerable});return t};var pe=(t,i,e)=>(e=t!=null?ae(le(t)):{},ce(X(e,"default",{value:t,enumerable:true}),t));var Z=Y((D,q)=>{(function(t,i){typeof D=="object"?q.exports=D=i():typeof define=="function"&&define.amd?define([],i):t.CryptoJS=i();})(D,function(){var t=t||function(i,e){var n;if(typeof window<"u"&&window.crypto&&(n=window.crypto),typeof self<"u"&&self.crypto&&(n=self.crypto),typeof globalThis<"u"&&globalThis.crypto&&(n=globalThis.crypto),!n&&typeof window<"u"&&window.msCrypto&&(n=window.msCrypto),!n&&typeof global<"u"&&global.crypto&&(n=global.crypto),!n&&typeof W=="function")try{n=W("crypto");}catch{}var a=function(){if(n){if(typeof n.getRandomValues=="function")try{return n.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof n.randomBytes=="function")try{return n.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")},o=Object.create||function(){function r(){}return function(s){var g;return r.prototype=s,g=new r,r.prototype=null,g}}(),f={},p=f.lib={},u=p.Base=function(){return {extend:function(r){var s=o(this);return r&&s.mixIn(r),(!s.hasOwnProperty("init")||this.init===s.init)&&(s.init=function(){s.$super.init.apply(this,arguments);}),s.init.prototype=s,s.$super=this,s},create:function(){var r=this.extend();return r.init.apply(r,arguments),r},init:function(){},mixIn:function(r){for(var s in r)r.hasOwnProperty(s)&&(this[s]=r[s]);r.hasOwnProperty("toString")&&(this.toString=r.toString);},clone:function(){return this.init.prototype.extend(this)}}}(),h=p.WordArray=u.extend({init:function(r,s){r=this.words=r||[],s!=e?this.sigBytes=s:this.sigBytes=r.length*4;},toString:function(r){return (r||d).stringify(this)},concat:function(r){var s=this.words,g=r.words,y=this.sigBytes,V=r.sigBytes;if(this.clamp(),y%4)for(var P=0;P<V;P++){var H=g[P>>>2]>>>24-P%4*8&255;s[y+P>>>2]|=H<<24-(y+P)%4*8;}else for(var C=0;C<V;C+=4)s[y+C>>>2]=g[C>>>2];return this.sigBytes+=V,this},clamp:function(){var r=this.words,s=this.sigBytes;r[s>>>2]&=4294967295<<32-s%4*8,r.length=i.ceil(s/4);},clone:function(){var r=u.clone.call(this);return r.words=this.words.slice(0),r},random:function(r){for(var s=[],g=0;g<r;g+=4)s.push(a());return new h.init(s,r)}}),c=f.enc={},d=c.Hex={stringify:function(r){for(var s=r.words,g=r.sigBytes,y=[],V=0;V<g;V++){var P=s[V>>>2]>>>24-V%4*8&255;y.push((P>>>4).toString(16)),y.push((P&15).toString(16));}return y.join("")},parse:function(r){for(var s=r.length,g=[],y=0;y<s;y+=2)g[y>>>3]|=parseInt(r.substr(y,2),16)<<24-y%8*4;return new h.init(g,s/2)}},m=c.Latin1={stringify:function(r){for(var s=r.words,g=r.sigBytes,y=[],V=0;V<g;V++){var P=s[V>>>2]>>>24-V%4*8&255;y.push(String.fromCharCode(P));}return y.join("")},parse:function(r){for(var s=r.length,g=[],y=0;y<s;y++)g[y>>>2]|=(r.charCodeAt(y)&255)<<24-y%4*8;return new h.init(g,s)}},x=c.Utf8={stringify:function(r){try{return decodeURIComponent(escape(m.stringify(r)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(r){return m.parse(unescape(encodeURIComponent(r)))}},T=p.BufferedBlockAlgorithm=u.extend({reset:function(){this._data=new h.init,this._nDataBytes=0;},_append:function(r){typeof r=="string"&&(r=x.parse(r)),this._data.concat(r),this._nDataBytes+=r.sigBytes;},_process:function(r){var s,g=this._data,y=g.words,V=g.sigBytes,P=this.blockSize,H=P*4,C=V/H;r?C=i.ceil(C):C=i.max((C|0)-this._minBufferSize,0);var I=C*P,U=i.min(I*4,V);if(I){for(var M=0;M<I;M+=P)this._doProcessBlock(y,M);s=y.splice(0,I),g.sigBytes-=U;}return new h.init(s,U)},clone:function(){var r=u.clone.call(this);return r._data=this._data.clone(),r},_minBufferSize:0});p.Hasher=T.extend({cfg:u.extend(),init:function(r){this.cfg=this.cfg.extend(r),this.reset();},reset:function(){T.reset.call(this),this._doReset();},update:function(r){return this._append(r),this._process(),this},finalize:function(r){r&&this._append(r);var s=this._doFinalize();return s},blockSize:512/32,_createHelper:function(r){return function(s,g){return new r.init(g).finalize(s)}},_createHmacHelper:function(r){return function(s,g){return new N.HMAC.init(r,g).finalize(s)}}});var N=f.algo={};return f}(Math);return t});});var ee=Y((R,Q)=>{(function(t,i){typeof R=="object"?Q.exports=R=i(Z()):typeof define=="function"&&define.amd?define(["./core"],i):i(t.CryptoJS);})(R,function(t){return function(){var i=t,e=i.lib,n=e.WordArray,a=e.Hasher,o=i.algo,f=[],p=o.SHA1=a.extend({_doReset:function(){this._hash=new n.init([1732584193,4023233417,2562383102,271733878,3285377520]);},_doProcessBlock:function(u,h){for(var c=this._hash.words,d=c[0],m=c[1],x=c[2],T=c[3],b=c[4],N=0;N<80;N++){if(N<16)f[N]=u[h+N]|0;else {var r=f[N-3]^f[N-8]^f[N-14]^f[N-16];f[N]=r<<1|r>>>31;}var s=(d<<5|d>>>27)+b+f[N];N<20?s+=(m&x|~m&T)+1518500249:N<40?s+=(m^x^T)+1859775393:N<60?s+=(m&x|m&T|x&T)-1894007588:s+=(m^x^T)-899497514,b=T,T=x,x=m<<30|m>>>2,m=d,d=s;}c[0]=c[0]+d|0,c[1]=c[1]+m|0,c[2]=c[2]+x|0,c[3]=c[3]+T|0,c[4]=c[4]+b|0;},_doFinalize:function(){var u=this._data,h=u.words,c=this._nDataBytes*8,d=u.sigBytes*8;return h[d>>>5]|=128<<24-d%32,h[(d+64>>>9<<4)+14]=Math.floor(c/4294967296),h[(d+64>>>9<<4)+15]=c,u.sigBytes=h.length*4,this._process(),this._hash},clone:function(){var u=a.clone.call(this);return u._hash=this._hash.clone(),u}});i.SHA1=a._createHelper(p),i.HmacSHA1=a._createHmacHelper(p);}(),t.SHA1});});var re=pe(ee());var E="___param___";var J=class t{static _beforeToTranslate=void 0;static _translate=i=>i;static _afterToTranslate=void 0;static t(i){return Array.isArray(i)?i.map(e=>t.translate(`${e}`)):t.translate(`${i}`)}static set beforeToTranslate(i){t._beforeToTranslate=i;}static set translate(i){t._translate=i;}static get translate(){return i=>{let e=i;return t._beforeToTranslate&&(e=t._beforeToTranslate(e)),e=t._translate(e),t._afterToTranslate&&(e=t._afterToTranslate(e)),e}}static set afterToTranslate(i){t._afterToTranslate=i;}static addKey(i,e,n){let a=n.defaultValue||"empty_string";typeof e=="string"&&(e=[e]),Array.isArray(e)&&e.forEach(o=>{i[o]===void 0&&(a==="empty_string"?i[o]="":a==="copy_key"&&(t._beforeToTranslate?i[o]=t._beforeToTranslate(o):i[o]=o));});}static getConditionalsThenElse(i,e=[]){if(typeof i=="object"&&i&&"type"in i)if(i.type==="ifelse")i.then&&t.getConditionalsThenElse(i.then,e),i.else&&t.getConditionalsThenElse(i.else,e);else if(i.type==="stepswitch"){if(i.elements)if(Array.isArray(i.elements))i.elements.forEach(n=>{t.getConditionalsThenElse(n,e);});else if(i.elements.type==="ifelse"){let n=[];t.getConditionalsThenElse(i.elements,n),n.forEach(a=>{e.push(...a);});}else if(i.elements.type==="stepswitch"){let n=[];t.getConditionalsThenElse(i.elements,n),n.forEach(a=>{e.push(...a);});}else t.getConditionalsThenElse(i.elements,e);}else i.type==="resulttocombine"?(i.firstItem&&t.getConditionalsThenElse(i.firstItem,e),i.secondConditionalItem&&i.secondConditionalItem.forEach(n=>{t.getConditionalsThenElse(n,e);})):e.push(i);else i&&e.push(i);return e}static generateJsonTranslation(i,e={},n={}){return i.forEach(a=>{if(a.choices){let o=[];Array.isArray(a.choices)?o=[a.choices]:o=t.getConditionalsThenElse(a.choices),o.forEach(f=>f.forEach(p=>{if("type"in p){let u=[];p.type==="ifelse"||p.type==="stepswitch"?t.getConditionalsThenElse(p,u):u=[p],u.map(c=>t.getConditionalsThenElse(c.text)).forEach(c=>{Array.isArray(c)&&c.forEach(d=>{Array.isArray(d)?d.forEach(m=>{typeof m=="string"?t.addKey(e,m,n):t.getConditionalsThenElse(m).forEach(x=>{Array.isArray(x)?x.forEach(T=>{typeof T=="string"&&t.addKey(e,T,n);}):typeof x=="string"&&t.addKey(e,x,n);});}):typeof d=="string"&&t.addKey(e,d,n);});});}}));}if(a.dialogue){let o=[];Array.isArray(a.dialogue)?o=[a.dialogue]:o=t.getConditionalsThenElse(a.dialogue),o.forEach(f=>{typeof f=="string"?t.addKey(e,f,n):"text"in f&&Array.isArray(f.text)&&f.text.forEach(p=>{typeof p=="string"?t.addKey(e,p,n):t.getConditionalsThenElse(p).forEach(h=>{typeof h=="string"?t.addKey(e,h,n):Array.isArray(h)&&h.forEach(c=>{typeof c=="string"?t.addKey(e,c,n):t.getConditionalsThenElse(c).forEach(d=>{typeof d=="string"&&t.addKey(e,d,n);});});});});});}a.conditionalStep&&t.getConditionalsThenElse(a.conditionalStep).forEach(f=>{Array.isArray(f)?t.generateJsonTranslation(f,e,n):t.generateJsonTranslation([f],e,n);});}),e}};var B=J;function de(t,i){return Math.floor(Math.random()*(i-t+1)+t)}function ge(t){if(Array.isArray(t)||!t)return t;if(t&&typeof t=="object"&&"type"in t)switch(t.type){case "resulttocombine":return he(t);case "ifelse":return l(t.condition)?l(t.then):l(t.else);case "stepswitch":let e=l(t.elements)||[];if(e.length===0){console.error("[Pixi\u2019VN Json] getValueFromConditionalStatements elements.length === 0");return}switch(t.choiceType){case "random":let n=de(0,e.length-1);return l(e[n]);case "loop":let a=pixiVn.NarrationManagerStatic.getCurrentStepTimesCounter(t.nestedId)-1;return a>e.length-1&&(a=a%e.length),l(e[a]);case "sequential":let o,f=pixiVn.NarrationManagerStatic.getCurrentStepTimesCounter(t.nestedId)-1;return t.end=="lastItem"&&(o=l(e[e.length-1])),f>e.length-1?o:l(e[f]);case "sequentialrandom":let p=pixiVn.NarrationManagerStatic.getRandomNumber(0,e.length-1,{nestedId:t.nestedId,onceOnly:true});if(p==null&&t.end=="lastItem"){let u=pixiVn.NarrationManagerStatic.getCurrentStepTimesCounterData(t.nestedId);if(!u||!u?.usedRandomNumbers){console.warn("[Pixi\u2019VN Json] getValueFromConditionalStatements randomIndexWhitExclude == undefined");return}let h=u.usedRandomNumbers[`0-${e.length-1}`];return l(e[h[h.length-1]])}if(p==null){console.warn("[Pixi\u2019VN Json] getValueFromConditionalStatements randomIndexWhitExclude == undefined");return}return l(e[p])}}return t}function O(t){if(t.conditionalStep){let i=pixiVn.createExportableElement(l(t.conditionalStep));if(i?.glueEnabled===void 0&&delete i?.glueEnabled,i?.goNextStep===void 0&&delete i?.goNextStep,i?.end===void 0&&delete i?.end,i?.choices===void 0&&delete i?.choices,i?.dialogue===void 0&&delete i?.dialogue,i?.labelToOpen===void 0&&delete i?.labelToOpen,i?.operations===void 0&&delete i?.operations,i){let e={...t,conditionalStep:void 0,...i};return O(e)}else pixiVn.storage.getFlag(pixiVn.SYSTEM_RESERVED_STORAGE_KEYS.ADD_NEXT_DIALOG_TEXT_INTO_THE_CURRENT_DIALOG_FLAG_KEY)&&pixiVn.storage.setFlag(pixiVn.SYSTEM_RESERVED_STORAGE_KEYS.ADD_NEXT_DIALOG_TEXT_INTO_THE_CURRENT_DIALOG_FLAG_KEY,false);}return t}function he(t){let i=t.firstItem,e=[];t.secondConditionalItem?.forEach(a=>{if(Array.isArray(a))a.forEach(o=>{let f=l(o);e.push(f);});else {let o=l(a);e.push(o);}});let n=i?[i,...e]:e;if(n.length===0){console.warn("[Pixi\u2019VN Json] combinateResult toCheck.length === 0");return}if(typeof n[0]=="string")return B.t(n).join("");if(typeof n[0]=="object"){let a=n,o,f=a.map((r,s)=>{r=O(r);let g=l(r.dialogue)||"";return s===0?(o=l(r.glueEnabled)||false,g):(typeof g=="object"&&"text"in g&&(g=g.character+": "+g.text),o===false&&(g=` `+g),o=l(r.glueEnabled)||false,g)}),p=l(f[0]),u=typeof p=="object"&&"character"in p?p.character:void 0,h=f.map(r=>{let s;r&&typeof r=="object"&&"text"in r?s=r.text:s=r;let g;return Array.isArray(s)?g=s.map(y=>{let V=l(y);return B.t(`${V}`)}).join(""):g=l(s)||"",B.t(g)}).join(""),c=a.find(r=>r.end),d=a.find(r=>r.choices),m=false,x=false;a.length>0&&(a[0].glueEnabled&&a[0].goNextStep&&a[0].dialogue===void 0&&pixiVn.storage.setFlag(pixiVn.SYSTEM_RESERVED_STORAGE_KEYS.ADD_NEXT_DIALOG_TEXT_INTO_THE_CURRENT_DIALOG_FLAG_KEY,true),m=a[a.length-1].glueEnabled,x=a.reverse().find(r=>!(r.operations&&(!r.dialogue||!r.choices)))?.goNextStep);let T=a.find(r=>r.labelToOpen),b=[];return a.forEach(r=>{r.operations&&b.forEach(s=>{b.push(s);});}),{dialogue:u?{character:u,text:h}:h,end:c?.end,choices:d?.choices,glueEnabled:m,goNextStep:x,labelToOpen:T?.labelToOpen,operations:b}}}function ye(t){if(!t)return false;if(typeof t!="object"||!("type"in t))return !!t;switch(t.type){case "compare":let i=l(t.leftValue),e=l(t.rightValue);switch(t.operator){case "==":return i===e;case "!=":return i!==e;case "<":return i<e;case "<=":return i<=e;case ">":return i>e;case ">=":return i>=e;case "CONTAINS":return i.toString().includes(e.toString())}break;case "valueCondition":return !!l(t.value);case "union":return xe(t)}return !!t}function me(t){if(t&&typeof t=="object"&&"type"in t&&t.type==="value"&&t.storageOperationType==="get")switch(t.storageType){case "storage":case "tempstorage":return pixiVn.storage.getVariable(t.key);case "flagStorage":return pixiVn.storage.getFlag(t.key);case "label":return pixiVn.narration.getTimesLabelOpened(t.label);case "choice":return pixiVn.narration.getTimesChoiceMade(t.index);case "logic":return l(t.operation);case "params":let i=pixiVn.storage.getVariable(`${E}${pixiVn.narration.openedLabels.length-1}`)||[];if(i&&i.length>t.key)return i[t.key];console.warn("[Pixi\u2019VN Json] getValue params not found");return}return t}function xe(t){if(t.unionType==="not")return !l(t.condition);let i=t.unionType==="and";for(let e=0;e<t.conditions.length;e++)if(i=l(t.conditions[e])||false,t.unionType==="and"){if(!i)return false}else if(i)return true;return i}function ie(t){let i=l(t.value),e;switch(i&&typeof i=="object"&&"type"in i?e=l(i):e=i,t.storageType){case "flagStorage":pixiVn.storage.setFlag(t.key,t.value);break;case "storage":pixiVn.storage.setVariable(t.key,e);break;case "tempstorage":pixiVn.storage.setTempVariable(t.key,e);break;case "params":let n=pixiVn.storage.getVariable(`${E}${pixiVn.narration.openedLabels.length-1}`)||[];n&&n.length-1>=t.key&&(n[t.key]=e),pixiVn.storage.setTempVariable(`${E}${pixiVn.narration.openedLabels.length-1}`,n);break}}function l(t){let i=ge(t);if(i&&typeof i=="object"&&"type"in i)switch(i.type){case "value":return me(i);case "arithmetic":case "arithmeticsingle":return Te(i);case "compare":case "valueCondition":case "union":return ye(i)}return i}function Te(t){let i=l(t.leftValue);switch(t.type){case "arithmetic":let e=l(t.rightValue);switch(t.operator){case "*":return i*e;case "/":return i/e;case "+":return i+e;case "-":return i-e;case "%":return i%e;case "POW":return Math.pow(i,e);case "RANDOM":return pixiVn.narration.getRandomNumber(i,e)}case "arithmeticsingle":switch(t.operator){case "INT":return parseInt(i);case "FLOOR":return Math.floor(i);case "FLOAT":return parseFloat(i)}break}}async function te(t){let i=l(t);if(i)switch(i.type){case "assets":switch(i.operationType){case "load":await pixiVn.Assets.load(i.assets);break}break}}async function L(t,i){let e=l(t);if(e)switch(e.type){case "sound":switch(e.operationType){case "play":pixiVn.sound.play(e.alias,e.props);break;case "stop":pixiVn.sound.stop(e.alias);break;case "pause":pixiVn.sound.pause(e.alias);break;case "resume":pixiVn.sound.resume(e.alias);break;case "volume":pixiVn.sound.volume(e.alias,e.value);break}break;case "assets":switch(e.operationType){case "load":let p=e.assets.map(u=>pixiVn.Assets.load(u));await Promise.all(p);break}break;case "image":switch(e.operationType){case "show":let p=new pixiVn.ImageSprite(e.props,e.url||e.alias);await K(p,e);break;case "edit":let u=pixiVn.canvas.find(e.alias);u?e.props&&await u.setMemory({...u.memory,...e.props}):console.error(`[Pixi\u2019VN Json] Image with alias ${e.alias} not found.`);break;case "remove":$(e);break}break;case "video":switch(e.operationType){case "show":let p=new pixiVn.VideoSprite(e.props,e.url||e.alias);await K(p,e);break;case "edit":let u=pixiVn.canvas.find(e.alias);u?e.props&&await u.setMemory({...u.memory,...e.props}):console.error(`[Pixi\u2019VN Json] Video with alias ${e.alias} not found.`);break;case "remove":$(e);break;case "pause":let h=pixiVn.canvas.find(e.alias);h?h.paused=true:console.error(`[Pixi\u2019VN Json] Video with alias ${e.alias} not found.`);break;case "resume":let c=pixiVn.canvas.find(e.alias);c?c.paused=false:console.error(`[Pixi\u2019VN Json] Video with alias ${e.alias} not found.`);break}break;case "imagecontainer":switch(e.operationType){case "show":let p=new pixiVn.ImageContainer(e.props,e.urls);await K(p,e);break;case "edit":let u=pixiVn.canvas.find(e.alias);u?e.props&&await u.setMemory({...u.memory,...e.props}):console.error(`[Pixi\u2019VN Json] ImageContainer with alias ${e.alias} not found.`);break;case "remove":$(e);break}break;case "canvaselement":switch(e.operationType){case "edit":try{let p=pixiVn.canvas.find(e.alias);p?e.props&&(p.memory={...p.memory,...e.props}):console.error(`[Pixi\u2019VN Json] Canvas Element with alias ${e.alias} not found.`);}catch(p){console.error(`[Pixi\u2019VN Json] There was an error while trying to edit the canvas element with alias ${e.alias}.`,p);}break;case "remove":$(e);break}break;case "value":ie(e);break;case "operationtoconvert":if(i){let p="";e.values.forEach(h=>{if(typeof h=="string")p+=h;else {let c=l(h);p+=`${c}`;}});let u=await i(p);u&&await L(u,i);}break;case "input":switch(e.operationType){case "request":pixiVn.narration.requestInput({type:e.valueType},e.defaultValue);break}break;case "fade":let n=new pixiVn.FadeAlphaTicker(e.props,e.duration,e.priority);pixiVn.canvas.addTicker(e.alias,n);break;case "move":let a=new pixiVn.MoveTicker(e.props,e.duration,e.priority);pixiVn.canvas.addTicker(e.alias,a);break;case "rotate":let o=new pixiVn.RotateTicker(e.props,e.duration,e.priority);pixiVn.canvas.addTicker(e.alias,o);break;case "zoom":let f=new pixiVn.ZoomTicker(e.props,e.duration,e.priority);pixiVn.canvas.addTicker(e.alias,f);break;case "shake":await pixiVn.shakeEffect(e.alias,e.props,e.priority);break}}async function K(t,i){if(i.transition)switch(i.transition.type){case "fade":await pixiVn.showWithFadeTransition(i.alias,t,i.transition.props,i.transition.priority);break;case "dissolve":await pixiVn.showWithDissolveTransition(i.alias,t,i.transition.props,i.transition.priority);break;case "movein":case "moveout":await pixiVn.moveIn(i.alias,t,i.transition.props,i.transition.priority);break;case "zoomin":case "zoomout":await pixiVn.zoomIn(i.alias,t,i.transition.props,i.transition.priority);break;case "pushin":case "pushout":await pixiVn.pushIn(i.alias,t,i.transition.props,i.transition.priority);break}else await t.load(),pixiVn.canvas.add(i.alias,t);}function $(t){if(t.transition)switch(t.transition.type){case "fade":pixiVn.removeWithFadeTransition(t.alias,t.transition.props,t.transition.priority);break;case "dissolve":pixiVn.removeWithDissolveTransition(t.alias,t.transition.props,t.transition.priority);break;case "movein":case "moveout":pixiVn.moveOut(t.alias,t.transition.props,t.transition.priority);break;case "zoomin":case "zoomout":pixiVn.zoomOut(t.alias,t.transition.props,t.transition.priority);break;case "pushin":case "pushout":pixiVn.pushOut(t.alias,t.transition.props,t.transition.priority);break}else pixiVn.canvas.remove(t.alias);}var k=class extends pixiVn.LabelAbstract{constructor(i,e,n,a={}){n||(n={}),n.onLoadingLabel=async()=>{for(let o of e){let f;if(typeof o=="function"?f=o():f=o,f=O(f),f.operations){let p=f.operations.map(u=>te(u));await Promise.all(p);}}},super(i,n),this._steps=e,this.operationStringConvert=a.operationStringConvert,this.skipEmptyDialogs=a.skipEmptyDialogs||false;}_steps;get steps(){return this._steps.map(i=>this.stepConverter(i))}operationStringConvert;skipEmptyDialogs=false;getStepSha1(i){if(i<0||i>=this.steps.length)return;let e=this._steps[i];return (0, re.default)(e.toString().toLocaleLowerCase()).toString()}getDialogueText(i){let e="";if(Array.isArray(i)){let n=[];i.forEach(a=>{if(typeof a=="string")n.push(a);else if(a&&typeof a=="object"){let o=l(a);o?(o&&!Array.isArray(o)&&typeof o=="object"&&(o=l(o)||""),Array.isArray(o)?n=n.concat(o):n.push(`${o}`)):n.push(`${a}`);}}),e=n;}else {let n=l(i)||"";n&&!Array.isArray(n)&&typeof n=="object"&&(n=l(n)||""),e=n;}return `${e}`}getDialogue(i){if(i==null)return;let e=l(i);return e==null?"":typeof e=="object"&&"character"in e&&"text"in e?{character:e.character,text:J.t(this.getDialogueText(e.text))}:J.t(this.getDialogueText(e))}getChoices(i){return l(i)?.map(a=>l(a)).filter(a=>a!==void 0)}stepConverter(i){return async e=>{let n;if(typeof i=="function"?n=i():n=i,n=O(n),n.operations)for(let c of n.operations)await L(c,this.operationStringConvert?d=>this.operationStringConvert(d,n,e):void 0);let a=this.getChoices(n.choices),o=l(n.glueEnabled),f=this.getDialogue(n.dialogue),p=[];n.labelToOpen&&(Array.isArray(n.labelToOpen)||(n.labelToOpen=[n.labelToOpen]),n.labelToOpen.forEach(c=>{let d=l(c);d&&p.push(d);}));let u=l(n.goNextStep),h=l(n.end);if(a){let c=a.map(d=>{let m="";if(Array.isArray(d.text)){let x=[];d.text.forEach(T=>{if(typeof T=="string")x.push(J.t(T));else if(T&&typeof T=="object"){let b=l(T);b&&!Array.isArray(b)&&typeof b=="object"&&(b=l(b)||""),b&&(Array.isArray(b)?x=x.concat(J.t(b)):x.push(J.t(b)));}}),m=x.join();}else typeof d.text=="string"&&(m=J.t(d.text));return new pixiVn.ChoiceMenuOption(m,d.label,d.props,{type:d.type,oneTime:d.oneTime,onlyHaveNoChoice:d.onlyHaveNoChoice,autoSelect:d.autoSelect})});pixiVn.narration.choiceMenuOptions=c;}else pixiVn.narration.choiceMenuOptions=void 0;f!==void 0&&(pixiVn.narration.dialogue=f,this.skipEmptyDialogs&&typeof f=="string"&&(f===""||RegExp(/^\s+$/).test(f))&&(u=true)),o?pixiVn.storage.setFlag(pixiVn.SYSTEM_RESERVED_STORAGE_KEYS.ADD_NEXT_DIALOG_TEXT_INTO_THE_CURRENT_DIALOG_FLAG_KEY,true):o===false&&pixiVn.storage.setFlag(pixiVn.SYSTEM_RESERVED_STORAGE_KEYS.ADD_NEXT_DIALOG_TEXT_INTO_THE_CURRENT_DIALOG_FLAG_KEY,false);for(let c of p){let d=c.label;typeof d=="object"&&(d=l(d)||"");let m=c.params?.map(x=>l(x));e={...e,...c.props},c.type==="jump"?(pixiVn.narration.closeCurrentLabel(),pixiVn.storage.setTempVariable(`${E}${pixiVn.narration.openedLabels.length}`,m),await pixiVn.narration.callLabel(d,e)):(pixiVn.storage.setTempVariable(`${E}${pixiVn.narration.openedLabels.length}`,m),await pixiVn.narration.callLabel(d,e));}h==="game_end"?(pixiVn.narration.closeAllLabels(),await pixiVn.narration.goNext(e,{runNow:true})):h==="label_end"&&pixiVn.narration.closeCurrentLabel(),u&&await pixiVn.narration.goNext(e,{runNow:true});}}};function Pi(t,i={}){let e=i?.operationStringConvert;try{typeof t=="string"&&(t=JSON.parse(t));}catch(n){console.error("[Pixi\u2019VN Json] Error parsing imported Pixi'VN JSON",n);return}if(typeof t!="object"){console.error("[Pixi\u2019VN Json] Error parsing imported Pixi'VN JSON: data is not an object");return}if(t.initialOperations){for(let a of t.initialOperations)L(a,e?o=>e(o,{},{}):void 0);let n={};[...pixiVn.storage.storage.keys()].forEach((a,o)=>{n[a]=pixiVn.storage.storage.get(a);}),pixiVn.storage.startingStorage=n;}if(t.labels){let n=t.labels;for(let a in n)try{let o=n[a],f=new k(a,o,void 0,i);pixiVn.saveLabel(f);}catch(o){console.error(`[Pixi\u2019VN Json] Error creating JSON label ${a}`,o);}}}exports.importPixiVNJson=Pi;