@next-bricks/vs 1.14.14 → 1.15.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.
Files changed (32) hide show
  1. package/dist/bricks.json +1 -1
  2. package/dist/chunks/2675.c83dda19.js +2 -0
  3. package/dist/chunks/2675.c83dda19.js.map +1 -0
  4. package/dist/chunks/{6035.8d5ea739.js → 2856.d8103722.js} +2 -2
  5. package/dist/chunks/2856.d8103722.js.map +1 -0
  6. package/dist/chunks/6090.fafa68bd.js +3 -0
  7. package/dist/chunks/6090.fafa68bd.js.LICENSE.txt +5 -0
  8. package/dist/chunks/6090.fafa68bd.js.map +1 -0
  9. package/dist/chunks/7242.43943ae7.js +2 -0
  10. package/dist/chunks/7242.43943ae7.js.map +1 -0
  11. package/dist/chunks/code-editor.3e401ebe.js +2 -0
  12. package/dist/chunks/code-editor.3e401ebe.js.map +1 -0
  13. package/dist/chunks/main.a0b7b063.js +2 -0
  14. package/dist/chunks/main.a0b7b063.js.map +1 -0
  15. package/dist/index.9082a563.js +2 -0
  16. package/dist/index.9082a563.js.map +1 -0
  17. package/dist/manifest.json +13 -1
  18. package/dist/types.json +17 -0
  19. package/dist-types/code-editor/index.d.ts +13 -2
  20. package/dist-types/code-editor/workers/spellCheck.worker.d.ts +1 -0
  21. package/dist-types/code-editor/workers/spellCheckRemoteWorker.d.ts +5 -0
  22. package/dist-types/code-editor/workers/yamlLinter.d.ts +0 -1
  23. package/package.json +2 -2
  24. package/dist/chunks/6035.8d5ea739.js.map +0 -1
  25. package/dist/chunks/7242.978767ea.js +0 -2
  26. package/dist/chunks/7242.978767ea.js.map +0 -1
  27. package/dist/chunks/code-editor.2665f247.js +0 -2
  28. package/dist/chunks/code-editor.2665f247.js.map +0 -1
  29. package/dist/chunks/main.98ec566d.js +0 -2
  30. package/dist/chunks/main.98ec566d.js.map +0 -1
  31. package/dist/index.9f3463d2.js +0 -2
  32. package/dist/index.9f3463d2.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/6090.fafa68bd.js","mappings":";gJACA,MAAMA,EAAuB,yBACvBC,EAAuB,+BAEvBC,EAA2B,wBAE3BC,EAAuB,iBAEvBC,EAAsB,SAEtBC,EAAmC,GAIlC,SAASC,EAAMC,GAClB,IAAIC,EAASD,EAAME,OACnBD,EAASA,EACJE,QAAQV,EAAsBI,GAC9BM,QAAQT,EAAsBG,GACnCI,EAASA,EAAOE,QAAQP,EAAsB,MAC9C,IAAIQ,EAAQ,EACRC,EAAMJ,EAAOK,OAEjB,KAAgC,OAAzBL,EAAOM,OAAOH,IACjBA,IACJ,GAAIA,IAAUC,EACV,MAAO,GACX,KAAkC,OAA3BJ,EAAOM,OAAOF,EAAM,IACvBA,IACJ,OAAOJ,EAAOO,MAAMJ,EAAOC,GAAKN,MAAM,MAC1C,CAIO,SAASU,EAAqBT,GACjC,MAAMU,EAAQX,EAAMC,GACpB,IAAK,IAAIW,EAAI,EAAGA,EAAID,EAAMJ,OAAQK,IAAK,CACnC,MAAMC,EAAOF,EAAMC,GACbE,EAAQlB,EAAyBmB,KAAKF,GAC5C,GAAIC,EAAO,CACP,MAAME,EAASF,EAAMG,OAASH,EAAM,IAAMA,EAAM,IAAIP,OACpDI,EAAMO,OAAON,EAAG,EAAGC,EAAKJ,MAAM,EAAGO,GAASH,EAAKJ,MAAMO,GACzD,CACJ,CACA,OAAOL,CACX,CAIO,SAASQ,EAAOC,EAAOC,GAC1B,MAAOC,EAAQX,EAAOY,GAqI1B,SAA2BH,EAAOC,EAAU,CAAC,GACzC,MAAMG,EAAUH,EAAQrB,QAAUqB,EAAQI,gBAAkBf,EAAuBV,GAC7E0B,EAAmBL,EAAQK,kBAAoB3B,EAC/C4B,EAAmBN,EAAQM,kBAAoB5B,EACrD,IAAI6B,EAAc,EACdC,EAAcT,EAAMb,OACxB,KAAOqB,EAAcR,EAAMb,QAAQ,CAC/B,MAAMuB,EAAOV,EAAMZ,OAAOoB,GAC1B,IAAKF,EAAiBK,SAASD,GAC3B,MACJF,GACJ,CACA,KAAOC,EAAcD,GAAa,CAC9B,MAAMX,EAAQY,EAAc,EACtBC,EAAOV,EAAMZ,OAAOS,GAC1B,IAAKU,EAAiBI,SAASD,GAC3B,MACJD,EAAcZ,CAClB,CACA,MAAO,CACHG,EAAMX,MAAM,EAAGmB,GACfJ,EAAQJ,EAAMX,MAAMmB,EAAaC,IACjCT,EAAMX,MAAMoB,GAEpB,CA7JoCG,CAAkBZ,EAAOC,GACzD,OAAQC,EACJX,EAAMsB,KA+GQC,EA/GSb,GAASa,QAgHlB,IAAXA,EACAd,GAAUA,EAAMe,cAChBf,GAAUA,EAAMgB,kBAAkBF,KAlHIG,KAAKhB,GAASiB,WAAa,KACpEf,EA8GR,IAAsBW,CA7GtB,sBC7CIK,GACJ,WACI,cA8BAA,EAAO,SAAUC,EAAYC,EAASC,EAAWC,GAC7CA,EAAWA,GAAY,CAAC,EACxBC,KAAKJ,WAAa,KAClBI,KAAKC,MAAQ,CAAC,EACdD,KAAKE,gBAAkB,CAAC,EACxBF,KAAKG,cAAgB,GACrBH,KAAKI,kBAAoB,CAAC,EAC1BJ,KAAKK,iBAAmB,GACxBL,KAAKM,MAAQP,EAASO,OAAS,CAAC,EAChCN,KAAKO,SAAW,CAAC,EACjBP,KAAKQ,QAAS,EACd,IACIC,EAEAzC,EAAG0C,EAAGC,EAAMC,EAHZC,EAAOb,KAIX,GAAIJ,EAGA,GAFAiB,EAAKjB,WAAaA,EAEdC,GAAWC,EACXgB,SAGC,GAAsB,oBAAXC,SAA2BA,OAAOC,QAAUD,OAAOE,SAAU,CACzE,IAAIC,EAAUH,OAAOC,QAAUD,OAAOC,OAAOE,QAAUH,OAAOC,OAAOE,QAAUD,QAAQC,QAEnFT,EADAV,EAASoB,eACFpB,EAASoB,eAGT,oBAENtB,GACDuB,EAAaF,EAAQG,OAAOZ,EAAO,IAAMb,EAAa,IAAMA,EAAa,QAAS0B,GACjFxB,GACDsB,EAAaF,EAAQG,OAAOZ,EAAO,IAAMb,EAAa,IAAMA,EAAa,QAAS2B,EAC1F,MAIQd,EADAV,EAASoB,eACFpB,EAASoB,eAGTK,iBAKN3B,GACDuB,EAAaX,EAAO,IAAMb,EAAa,IAAMA,EAAa,OAAQ0B,GACjExB,GACDsB,EAAaX,EAAO,IAAMb,EAAa,IAAMA,EAAa,OAAQ2B,GAG9E,SAASH,EAAaK,EAAKC,GACvB,IAAIC,EAAWd,EAAKe,UAAUH,EAAK,KAAM1B,aAA2C,EAASA,EAAS8B,YAClG9B,aAA2C,EAASA,EAAS8B,WAC7DF,EAASG,MAAK,SAAUC,GACpBL,EAAQK,EACZ,IAGAL,EAAQC,EAEhB,CACA,SAASL,EAAWS,GAChBlC,EAAUkC,EACNjC,GACAgB,GAER,CACA,SAASS,EAAaQ,GAClBjC,EAAYiC,EACRlC,GACAiB,GAER,CACA,SAASA,IAIL,IAHAD,EAAKZ,MAAQY,EAAKmB,UAAUnC,GAE5BgB,EAAKT,kBAAoB,CAAC,EACrBpC,EAAI,EAAG2C,EAAOE,EAAKV,cAAcxC,OAAQK,EAAI2C,EAAM3C,IAAK,CACzD,IAAIiE,EAAOpB,EAAKV,cAAcnC,GAC9B,IAAK0C,EAAI,EAAGE,EAAQqB,EAAKtE,OAAQ+C,EAAIE,EAAOF,IACxCG,EAAKT,kBAAkB6B,EAAKvB,IAAM,EAE1C,CASA,IAAK1C,IAND,mBAAoB6C,EAAKP,QACzBO,EAAKT,kBAAkBS,EAAKP,MAAM4B,gBAAkB,IAExDrB,EAAKX,gBAAkBW,EAAKsB,UAAUrC,GAG5Be,EAAKT,kBAC8B,IAArCS,EAAKT,kBAAkBpC,GAAGL,eACnBkD,EAAKT,kBAAkBpC,GAMtC,IAAKA,EAAI,EAAG2C,EAAOE,EAAKV,cAAcxC,OAAQK,EAAI2C,EAAM3C,IAAK,CACzD,IAAIoE,EAAWvB,EAAKV,cAAcnC,GAC9BqE,EAAiB,GACrB,IAAK3B,EAAI,EAAGE,EAAQwB,EAASzE,OAAQ+C,EAAIE,EAAOF,IAAK,CACjD,IAAI4B,EAAYF,EAAS1B,GACrB4B,KAAazB,EAAKT,kBAClBiC,GAAkB,IAAMxB,EAAKT,kBAAkBkC,GAAW7C,KAAK,KAAO,IAGtE4C,GAAkBC,CAE1B,CACAzB,EAAKV,cAAcnC,GAAK,IAAIuE,OAAO,IAAMF,EAAiB,IAAK,IACnE,CACAxB,EAAKL,QAAS,GACTT,aAA2C,EAASA,EAAS8B,aAAe9B,aAA2C,EAASA,EAASyC,iBAC1IzC,EAASyC,eAAe3B,EAEhC,CACA,OAAOb,IACX,GACKyC,UAAY,CAMbC,KAAM,SAAUC,GACZ,IAAK,IAAI3E,KAAK2E,EACNA,EAAIC,eAAe5E,KACnBgC,KAAKhC,GAAK2E,EAAI3E,IAGtB,OAAOgC,IACX,EAWA4B,UAAW,SAAUnB,EAAMoC,EAASC,GAChC,IAAIC,EAEJ,GADAF,EAAUA,GAAW,OACS,oBAAnBG,eAAgC,CACvC,IAAIC,EAAQ,IAAID,eAGhB,GAFAC,EAAMC,KAAK,MAAOzC,IAAQqC,GACQ,QAAjCC,EAAKE,EAAME,wBAAqC,IAAPJ,GAAyBA,EAAGK,KAAKH,EAAO,uBAAyBJ,GACrGC,EAAO,CACT,IAAIO,EAAU,IAAIC,SAAQ,SAAUC,EAASC,GACzCP,EAAMQ,OAAS,WACU,MAAjBR,EAAMS,OACNH,EAAQN,EAAMU,cAGdH,EAAOP,EAAMW,WAErB,EACAX,EAAMY,QAAU,WACZL,EAAOP,EAAMW,WACjB,CACJ,IAEA,OADAX,EAAMa,KAAK,MACJT,CACX,CAGI,OADAJ,EAAMa,KAAK,MACJb,EAAMU,YAErB,CAGI,IAAII,EAAK,EAAQ,MACjB,IACI,GAAIA,EAAGC,WAAWvD,GACd,OAAOsD,EAAGE,aAAaxD,EAAMoC,GAG7BqB,QAAQC,IAAI,QAAU1D,EAAO,mBAErC,CACA,MAAO2D,GACHF,QAAQC,IAAIC,EAChB,CACA,MAAO,EAGf,EAOApC,UAAW,SAAUD,GACjB,IACIsC,EAAeC,EAAYC,EAC3BvG,EAAG0C,EAAGC,EAAMC,EAFZX,EAAQ,CAAC,EAGTuE,EAAQzC,EAAK3E,MAAM,SACvB,IAAKY,EAAI,EAAG2C,EAAO6D,EAAM7G,OAAQK,EAAI2C,EAAM3C,IAIvC,GADAqG,GADAA,EAAOrE,KAAKyE,qBAAqBD,EAAMxG,KAC3BT,OACZ,CAGA,IAAImH,EAAkBL,EAAKjH,MAAM,OAC7BuH,EAAWD,EAAgB,GAC/B,GAAiB,QAAbC,GAAmC,QAAbA,EAAoB,CAC1C,IAAIC,EAAWF,EAAgB,GAC3BG,EAAcH,EAAgB,GAE9BI,EAAU,GACd,IAAKpE,EAAI1C,EAAI,EAAG4C,EAAQ5C,EAAI,GAF5BsG,EAAaS,SAASL,EAAgB,GAAI,KAEEhE,EAAIE,EAAOF,IAAK,CAGxD,IAAIsE,GADJT,EADUC,EAAM9D,GACItD,MAAM,QACS,GAC/B6H,EAAgBV,EAAU,GAAGnH,MAAM,KACnC8H,EAAkBD,EAAc,GACZ,MAApBC,IACAA,EAAkB,IACtB,IAAIC,EAAsBnF,KAAKoF,eAAeH,EAAc,IACxDI,EAAed,EAAU,GACzBe,EAAQ,CACRC,IAAKL,GAELC,EAAoBxH,OAAS,IAC7B2H,EAAMH,oBAAsBA,GACX,MAAjBE,IAEIC,EAAMpH,MADO,QAAbyG,EACc,IAAIpC,OAAO8C,EAAe,KAG1B,IAAI9C,OAAO,IAAM8C,IAGb,KAAtBL,IAEIM,EAAME,OADO,QAAbb,EACe,IAAIpC,OAAOyC,EAAqB,KAGhCA,GAGvBF,EAAQW,KAAKH,EACjB,CACArF,EAAM2E,GAAY,CAAE,KAAQD,EAAU,YAAgC,MAAhBE,EAAsB,QAAWC,GACvF9G,GAAKsG,CACT,MACK,GAAiB,iBAAbK,EAA6B,CAElC,IAAKjE,EAAI1C,EAAI,EAAG4C,EAAQ5C,EAAI,GAD5BsG,EAAaS,SAASL,EAAgB,GAAI,KACEhE,EAAIE,EAAOF,IAEnD6D,GADAF,EAAOG,EAAM9D,IACItD,MAAM,OACvB4C,KAAKG,cAAcsF,KAAKlB,EAAU,IAEtCvG,GAAKsG,CACT,KACsB,QAAbK,EAEoB,KADzBJ,EAAYF,EAAKjH,MAAM,QACTO,QACVqC,KAAKK,iBAAiBoF,KAAK,CAAClB,EAAU,GAAIA,EAAU,KASxDvE,KAAKM,MAAMqE,GAAYD,EAAgB,EAjE3C,CAoEJ,OAAOzE,CACX,EAOAwE,qBAAsB,SAAUJ,GAI5B,OAAIA,EAAKnG,MAAM,SACJ,GAEJmG,CACX,EAQAlC,UAAW,SAAUJ,GAEjB,IAAIyC,GADJzC,EAAO/B,KAAK0F,mBAAmB3D,IACd3E,MAAM,SACnB8C,EAAkB,CAAC,EACvB,SAASyF,EAAQ1H,EAAMgC,GAEdC,EAAgB0C,eAAe3E,KAChCiC,EAAgBjC,GAAQ,MAExBgC,EAAMtC,OAAS,IACe,OAA1BuC,EAAgBjC,KAChBiC,EAAgBjC,GAAQ,IAE5BiC,EAAgBjC,GAAMwH,KAAKxF,GAEnC,CAEA,IAAK,IAAIjC,EAAI,EAAG2C,EAAO6D,EAAM7G,OAAQK,EAAI2C,EAAM3C,IAAK,CAChD,IAAIqG,EAAOG,EAAMxG,GACjB,GAAKqG,EAAL,CAIA,IAAIuB,EAAQvB,EAAKjH,MAAM,IAAK,GACxBa,EAAO2H,EAAM,GAEjB,GAAIA,EAAMjI,OAAS,EAAG,CAClB,IAAIkI,EAAiB7F,KAAKoF,eAAeQ,EAAM,IAEzC,cAAe5F,KAAKM,QAA4D,IAAlDuF,EAAeC,QAAQ9F,KAAKM,MAAMyF,YAClEJ,EAAQ1H,EAAM4H,GAElB,IAAK,IAAInF,EAAI,EAAGE,EAAQiF,EAAelI,OAAQ+C,EAAIE,EAAOF,IAAK,CAC3D,IAAIsF,EAAOH,EAAenF,GACtBuB,EAAOjC,KAAKC,MAAM+F,GACtB,GAAI/D,EAEA,IADA,IAAIgE,EAAWjG,KAAKkG,WAAWjI,EAAMgE,GAC5BkE,EAAK,EAAGC,EAASH,EAAStI,OAAQwI,EAAKC,EAAQD,IAAM,CAC1D,IAAIE,EAAUJ,EAASE,GAEvB,GADAR,EAAQU,EAAS,IACbpE,EAAK4C,YACL,IAAK,IAAIyB,EAAI5F,EAAI,EAAG4F,EAAI1F,EAAO0F,IAAK,CAChC,IAAIC,EAAcV,EAAeS,GAC7BE,EAAcxG,KAAKC,MAAMsG,GAC7B,GAAIC,GACIA,EAAY3B,aAAgB5C,EAAKwE,MAAQD,EAAYC,KAErD,IADA,IAAIC,EAAgB1G,KAAKkG,WAAWG,EAASG,GACpCG,EAAM,EAAGC,EAAUF,EAAc/I,OAAQgJ,EAAMC,EAASD,IAE7DhB,EADmBe,EAAcC,GACX,GAItC,CAER,CAEAX,KAAQhG,KAAKI,mBACbJ,KAAKI,kBAAkB4F,GAAMP,KAAKxH,EAE1C,CACJ,MAEI0H,EAAQ1H,EAAKV,OAAQ,GAzCzB,CA2CJ,CACA,OAAO2C,CACX,EAOAwF,mBAAoB,SAAU3D,GAK1B,OADOA,EAAKvE,QAAQ,WAAY,GAEpC,EACA4H,eAAgB,SAAUyB,GACtB,GAAKA,EAGA,IAAM,SAAU7G,KAAKM,MAIrB,IAAwB,SAApBN,KAAKM,MAAMwG,KAAiB,CAGjC,IADA,IAAIxG,EAAQ,GACHtC,EAAI,EAAG2C,EAAOkG,EAAUlJ,OAAQK,EAAI2C,EAAM3C,GAAK,EACpDsC,EAAMmF,KAAKoB,EAAUE,OAAO/I,EAAG,IAEnC,OAAOsC,CACX,CACK,MAAwB,QAApBN,KAAKM,MAAMwG,KAETD,EAAUzJ,MAAM,KAEE,UAApB4C,KAAKM,MAAMwG,KAGTE,MAAMC,KAAKJ,GAKXA,EAAUzJ,MAAM,GAC3B,CAvBI,OAAOyJ,EAAUzJ,MAAM,GAuB3B,CA3BI,MAAO,EA4Bf,EAQA8I,WAAY,SAAUjI,EAAMgE,GAGxB,IAFA,IAAI6C,EAAU7C,EAAK6C,QACfmB,EAAW,GACNjI,EAAI,EAAG2C,EAAOmE,EAAQnH,OAAQK,EAAI2C,EAAM3C,IAAK,CAClD,IAAIsH,EAAQR,EAAQ9G,GACpB,IAAKsH,EAAMpH,OAASD,EAAKC,MAAMoH,EAAMpH,OAAQ,CACzC,IAAImI,EAAUpI,EAWd,GAVIqH,EAAME,SACNa,EAAUA,EAAQ7I,QAAQ8H,EAAME,OAAQ,KAE1B,QAAdvD,EAAKwE,KACLJ,GAAoBf,EAAMC,IAG1Bc,EAAUf,EAAMC,IAAMc,EAE1BJ,EAASR,KAAKY,GACV,wBAAyBf,EACzB,IAAK,IAAI5E,EAAI,EAAGE,EAAQ0E,EAAMH,oBAAoBxH,OAAQ+C,EAAIE,EAAOF,IAAK,CACtE,IAAIwG,EAAmBlH,KAAKC,MAAMqF,EAAMH,oBAAoBzE,IACxDwG,IACAjB,EAAWA,EAASkB,OAAOnH,KAAKkG,WAAWG,EAASa,IAS5D,CAER,CACJ,CACA,OAAOjB,CACX,EAWAmB,MAAO,SAAUC,GACb,IAAKrH,KAAKQ,OACN,KAAM,yBAEV,IAAK6G,EACD,OAAO,EAGX,IAAIC,EAAcD,EAAM7J,QAAQ,SAAU,IAAIA,QAAQ,SAAU,IAChE,GAAIwC,KAAKuH,WAAWD,GAChB,OAAO,EAGX,GAAIA,EAAYE,gBAAkBF,EAAa,CAG3C,IAAIG,EAAkBH,EAAY,GAAKA,EAAYI,UAAU,GAAGnI,cAChE,GAAIS,KAAK2H,QAAQF,EAAiB,YAE9B,OAAO,EAEX,GAAIzH,KAAKuH,WAAWE,GAEhB,OAAO,EAEX,GAAIzH,KAAKuH,WAAWD,EAAY/H,eAE5B,OAAO,CAEf,CACA,IAAIqI,EAAoBN,EAAY,GAAG/H,cAAgB+H,EAAYI,UAAU,GAC7E,GAAIE,IAAsBN,EAAa,CACnC,GAAItH,KAAK2H,QAAQC,EAAmB,YAEhC,OAAO,EAGX,GAAI5H,KAAKuH,WAAWK,GAEhB,OAAO,CAEf,CACA,OAAO,CACX,EAOAL,WAAY,SAAUtJ,GAClB,IAAK+B,KAAKQ,OACN,KAAM,yBAEV,IACIxC,EAAG2C,EADHkH,EAAY7H,KAAKE,gBAAgBjC,GAErC,QAAyB,IAAd4J,GAEP,GAAI,gBAAiB7H,KAAKM,OAASrC,EAAKN,QAAUqC,KAAKM,MAAMwH,YACzD,IAAK9J,EAAI,EAAG2C,EAAOX,KAAKG,cAAcxC,OAAQK,EAAI2C,EAAM3C,IACpD,GAAIC,EAAKC,MAAM8B,KAAKG,cAAcnC,IAC9B,OAAO,MAKlB,IAAkB,OAAd6J,EAGL,OAAO,EAEN,GAAyB,iBAAdA,EACZ,IAAK7J,EAAI,EAAG2C,EAAOkH,EAAUlK,OAAQK,EAAI2C,EAAM3C,IAC3C,IAAKgC,KAAK2H,QAAQ1J,EAAM,iBAAkB4J,EAAU7J,IAChD,OAAO,CAGnB,CACA,OAAO,CACX,EAQA2J,QAAS,SAAU1J,EAAM8J,EAAMC,GAC3B,IAAKhI,KAAKQ,OACN,KAAM,yBAEV,UAAIuH,KAAQ/H,KAAKM,cACY,IAAd0H,IACPA,EAAYhB,MAAMvE,UAAU0E,OAAOc,MAAM,GAAIjI,KAAKE,gBAAgBjC,MAElE+J,IAAsD,IAAzCA,EAAUlC,QAAQ9F,KAAKM,MAAMyH,KAKtD,EAWAG,SAAU,GACVC,QAAS,SAAUlK,EAAMmK,GACrB,IAAKpI,KAAKQ,OACN,KAAM,yBAGV,GADA4H,EAAQA,GAAS,EACbpI,KAAKO,SAASqC,eAAe3E,GAAO,CACpC,IAAIoK,EAAgBrI,KAAKO,SAAStC,GAAa,MAG/C,GAAImK,GAASC,GAAiBrI,KAAKO,SAAStC,GAAmB,YAAEN,OAAS0K,EACtE,OAAOrI,KAAKO,SAAStC,GAAmB,YAAEJ,MAAM,EAAGuK,EAE3D,CACA,GAAIpI,KAAKoH,MAAMnJ,GACX,MAAO,GAEX,IAAK,IAAID,EAAI,EAAG2C,EAAOX,KAAKK,iBAAiB1C,OAAQK,EAAI2C,EAAM3C,IAAK,CAChE,IAAIsK,EAAmBtI,KAAKK,iBAAiBrC,GAC7C,IAA2C,IAAvCC,EAAK6H,QAAQwC,EAAiB,IAAY,CAC1C,IAAIC,EAAgBtK,EAAKT,QAAQ8K,EAAiB,GAAIA,EAAiB,IACvE,GAAItI,KAAKoH,MAAMmB,GACX,MAAO,CAACA,EAEhB,CACJ,CACA,IAAKvI,KAAKkI,SAAU,CAEhBlI,KAAKkI,SAAW,uDAKZ,QAASlI,KAAKM,QACdN,KAAKkI,UAAYlI,KAAKM,MAAW,KAGjC,cAAeN,KAAKM,QACpBN,KAAKkI,UAAYlI,KAAKM,MAAiB,WAG3C,IAAIkI,EAAaxI,KAAKkI,SAAS9K,MAAM,IACrCoL,EAAWC,OACX,IAAIC,EAAY,CAAC,EACjB,IAAS1K,EAAI,EAAGA,EAAIwK,EAAW7K,OAAQK,IACnC0K,EAAUF,EAAWxK,KAAM,EAG/B,IAAK,IAAIA,KADTgC,KAAKkI,SAAW,GACFQ,EACV1I,KAAKkI,UAAYlK,CAEzB,CACA,IAAI6C,EAAOb,KAQX,SAAS2I,EAAO5K,EAAO6K,GACnB,IACI5K,EAAG0C,EAAWC,EAAakI,EAD3BC,EAAK,CAAC,EAENC,EAAiBlI,EAAKqH,SAASvK,OACnC,IAAK,IAAIqL,KAAUjL,EACf,IAAKC,EAAI,EAAG2C,EAAOqI,EAAOrL,OAAS,EAAGK,EAAI2C,EAAM3C,IAAK,CACjD,IAAIiL,EAAI,CAACD,EAAOtB,UAAU,EAAG1J,GAAIgL,EAAOtB,UAAU1J,IA0BlD,GAxBIiL,EAAE,KACFJ,EAAQI,EAAE,GAAKA,EAAE,GAAGvB,UAAU,GACzBkB,IAAc/H,EAAKuG,MAAMyB,KACpBA,KAASC,EAIXA,EAAGD,IAAU,EAHbC,EAAGD,GAAS,IASpBI,EAAE,GAAGtL,OAAS,GAAKsL,EAAE,GAAG,KAAOA,EAAE,GAAG,KACpCJ,EAAQI,EAAE,GAAKA,EAAE,GAAG,GAAKA,EAAE,GAAG,GAAKA,EAAE,GAAGvB,UAAU,GAC7CkB,IAAc/H,EAAKuG,MAAMyB,KACpBA,KAASC,EAIXA,EAAGD,IAAU,EAHbC,EAAGD,GAAS,IAOpBI,EAAE,GAAI,CAEN,IAAIC,EAAcD,EAAE,GAAGvB,UAAU,EAAG,GAAGF,gBAAkByB,EAAE,GAAGvB,UAAU,EAAG,GAAM,YAAc,YAC/F,IAAKhH,EAAI,EAAGA,EAAIqI,EAAgBrI,IAAK,CACjC,IAAIyI,EAAoBtI,EAAKqH,SAASxH,GAElC,cAAgBwI,IAChBC,EAAoBA,EAAkB3B,eAGtC2B,GAAqBF,EAAE,GAAGvB,UAAU,EAAG,KACvCmB,EAAQI,EAAE,GAAKE,EAAoBF,EAAE,GAAGvB,UAAU,GAC7CkB,IAAc/H,EAAKuG,MAAMyB,KACpBA,KAASC,EAIXA,EAAGD,IAAU,EAHbC,EAAGD,GAAS,GAO5B,CACJ,CACA,GAAII,EAAE,GAEF,IAAKvI,EAAI,EAAGA,EAAIqI,EAAgBrI,IAExBwI,EAAcD,EAAE,GAAGvB,WAAW,GAAGF,gBAAkByB,EAAE,GAAGvB,WAAW,IAAMuB,EAAE,GAAGvB,UAAU,EAAG,GAAGF,gBAAkByB,EAAE,GAAGvB,UAAU,EAAG,GAAM,YAAc,YACtJyB,EAAoBtI,EAAKqH,SAASxH,GAClC,cAAgBwI,IAChBC,EAAoBA,EAAkB3B,eAE1CqB,EAAQI,EAAE,GAAKE,EAAoBF,EAAE,GAChCL,IAAc/H,EAAKuG,MAAMyB,KACpBA,KAASC,EAIXA,EAAGD,IAAU,EAHbC,EAAGD,GAAS,EAQhC,CAEJ,OAAOC,CACX,CAqEA,OAJA9I,KAAKO,SAAStC,GAAQ,CAClB,YAjEJ,SAAiBA,GACb,IAAI8E,EAiBA/E,EAfAoL,EAAMT,IAAQ5F,EAAK,CAAC,GAAM9E,IAAQ,EAAM8E,IAGxCsG,EAFMV,EAAOS,GAAK,GAGtB,IAAK,IAAIE,KAAWF,EACXvI,EAAKuG,MAAMkC,KAGZA,KAAWD,EACXA,EAAqBC,IAAYF,EAAIE,GAGrCD,EAAqBC,GAAWF,EAAIE,IAI5C,IAAIC,EAAqB,GACzB,IAAKvL,KAAKqL,EACFA,EAAqBzG,eAAe5E,IACpCuL,EAAmB9D,KAAK,CAACzH,EAAGqL,EAAqBrL,KAezDuL,EAAmBd,MAZnB,SAAgBe,EAAGC,GACf,IAAIC,EAAQF,EAAE,GACVG,EAAQF,EAAE,GACd,OAAIC,EAAQC,GACA,EAEHD,EAAQC,EACN,EAGJF,EAAE,GAAGG,cAAcJ,EAAE,GAChC,IACgCK,UAChC,IAAIf,EAAK,GACLgB,EAAwB,YACxB7L,EAAKuJ,gBAAkBvJ,EACvB6L,EAAwB,YAEnB7L,EAAK8I,OAAO,EAAG,GAAGS,cAAgBvJ,EAAK8I,OAAO,GAAGxH,gBAAkBtB,IACxE6L,EAAwB,eAE5B,IAAIC,EAAgB3B,EACpB,IAAKpK,EAAI,EAAGA,EAAIgM,KAAKC,IAAIF,EAAeR,EAAmB5L,QAASK,IAC5D,cAAgB8L,EAChBP,EAAmBvL,GAAG,GAAKuL,EAAmBvL,GAAG,GAAGwJ,cAE/C,gBAAkBsC,IACvBP,EAAmBvL,GAAG,GAAKuL,EAAmBvL,GAAG,GAAG+I,OAAO,EAAG,GAAGS,cAAgB+B,EAAmBvL,GAAG,GAAG+I,OAAO,IAEhHlG,EAAK8G,QAAQ4B,EAAmBvL,GAAG,GAAI,eAA0D,IAA1C8K,EAAGhD,QAAQyD,EAAmBvL,GAAG,IAKzF+L,IAJAjB,EAAGrD,KAAK8D,EAAmBvL,GAAG,IAOtC,OAAO8K,CACX,CAEmBoB,CAAQjM,GACvB,MAASmK,GAENpI,KAAKO,SAAStC,GAAmB,WAC5C,EAEP,CAnzBD,GAszBIkM,EAAOC,QAAUzK,gDC3zBrB,MAAM0K,EAAcC,OAAO,iBACrBC,EAAiBD,OAAO,oBACxBE,EAAeF,OAAO,wBACtBG,EAAYH,OAAO,qBACnBI,EAAcJ,OAAO,kBACrBK,EAAYC,GAAwB,iBAARA,GAA4B,OAARA,GAAgC,mBAARA,EAIxEC,EAAuB,CACzBC,UAAYF,GAAQD,EAASC,IAAQA,EAAIP,GACzC,SAAAU,CAAUpI,GACN,MAAM,MAAEqI,EAAK,MAAEC,GAAU,IAAIC,eAE7B,OADAC,EAAOxI,EAAKqI,GACL,CAACC,EAAO,CAACA,GACpB,EACAG,YAAYC,IACRA,EAAK5N,QAgJb,SAAc6N,GACV,MAAMC,EAAmB,IAAIC,IAiB7B,OAhBAF,EAAGG,iBAAiB,WAAW,SAAuBC,GAClD,MAAM,KAAE3J,GAAS2J,EACjB,IAAK3J,IAASA,EAAK4J,GACf,OAEJ,MAAMC,EAAWL,EAAiBM,IAAI9J,EAAK4J,IAC3C,GAAKC,EAGL,IACIA,EAAS7J,EACb,CACA,QACIwJ,EAAiBO,OAAO/J,EAAK4J,GACjC,CACJ,IACOI,EAAYT,EAAIC,EAAkB,QAjK9BS,EAkKf,CAlKeA,CAAKX,KAmCdY,EAAmB,IAAIT,IAAI,CAC7B,CAAC,QAASX,GACV,CAAC,QA/BwB,CACzBC,UAAYzN,GAAUsN,EAAStN,IAAUqN,KAAerN,EACxD,SAAA0N,EAAU,MAAE1N,IACR,IAAI6O,EAcJ,OAZIA,EADA7O,aAAiB8O,MACJ,CACTC,SAAS,EACT/O,MAAO,CACHgP,QAAShP,EAAMgP,QACfC,KAAMjP,EAAMiP,KACZC,MAAOlP,EAAMkP,QAKR,CAAEH,SAAS,EAAO/O,SAE5B,CAAC6O,EAAY,GACxB,EACA,WAAAd,CAAYc,GACR,GAAIA,EAAWE,QACX,MAAMI,OAAOC,OAAO,IAAIN,MAAMD,EAAW7O,MAAMgP,SAAUH,EAAW7O,OAExE,MAAM6O,EAAW7O,KACrB,MAoBJ,SAAS8N,EAAOxI,EAAK2I,EAAKoB,WAAYC,EAAiB,CAAC,MACpDrB,EAAGG,iBAAiB,WAAW,SAASmB,EAASlB,GAC7C,IAAKA,IAAOA,EAAG3J,KACX,OAEJ,IAhBR,SAAyB4K,EAAgBE,GACrC,IAAK,MAAMC,KAAiBH,EAAgB,CACxC,GAAIE,IAAWC,GAAmC,MAAlBA,EAC5B,OAAO,EAEX,GAAIA,aAAyBvK,QAAUuK,EAAcC,KAAKF,GACtD,OAAO,CAEf,CACA,OAAO,CACX,CAMaG,CAAgBL,EAAgBjB,EAAGmB,QAEpC,YADA3I,QAAQ+I,KAAK,mBAAmBvB,EAAGmB,6BAGvC,MAAM,GAAElB,EAAE,KAAElF,EAAI,KAAEhG,GAAS+L,OAAOC,OAAO,CAAEhM,KAAM,IAAMiL,EAAG3J,MACpDmL,GAAgBxB,EAAG3J,KAAKmL,cAAgB,IAAI7N,IAAI8N,GACtD,IAAIC,EACJ,IACI,MAAMC,EAAS5M,EAAK5C,MAAM,GAAI,GAAGyP,QAAO,CAAC3K,EAAK4K,IAAS5K,EAAI4K,IAAO5K,GAC5D6K,EAAW/M,EAAK6M,QAAO,CAAC3K,EAAK4K,IAAS5K,EAAI4K,IAAO5K,GACvD,OAAQ8D,GACJ,IAAK,MAEG2G,EAAcI,EAElB,MACJ,IAAK,MAEGH,EAAO5M,EAAK5C,OAAO,GAAG,IAAMsP,EAAczB,EAAG3J,KAAK1E,OAClD+P,GAAc,EAElB,MACJ,IAAK,QAEGA,EAAcI,EAASvF,MAAMoF,EAAQH,GAEzC,MACJ,IAAK,YAGGE,EA+LxB,SAAezK,GACX,OAAO6J,OAAOC,OAAO9J,EAAK,CAAE,CAAC0H,IAAc,GAC/C,CAjMsCoD,CADA,IAAID,KAAYN,IAGlC,MACJ,IAAK,WACD,CACI,MAAM,MAAElC,EAAK,MAAEC,GAAU,IAAIC,eAC7BC,EAAOxI,EAAKsI,GACZmC,EAoLxB,SAAkBzK,EAAK+K,GAEnB,OADAC,EAAcC,IAAIjL,EAAK+K,GAChB/K,CACX,CAvLsCkL,CAAS7C,EAAO,CAACA,GACnC,CACA,MACJ,IAAK,UAEGoC,OAAcU,EAElB,MACJ,QACI,OAEZ,CACA,MAAOzQ,GACH+P,EAAc,CAAE/P,QAAO,CAACqN,GAAc,EAC1C,CACApH,QAAQC,QAAQ6J,GACXW,OAAO1Q,IACD,CAAEA,QAAO,CAACqN,GAAc,MAE9B5I,MAAMsL,IACP,MAAOY,EAAWC,GAAiBC,EAAYd,GAC/C9B,EAAG6C,YAAY3B,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAGuB,GAAY,CAAErC,OAAOsC,GACvD,YAATxH,IAEA6E,EAAG8C,oBAAoB,UAAWxB,GAClCyB,EAAc/C,GACVb,KAAa9H,GAAiC,mBAAnBA,EAAI8H,IAC/B9H,EAAI8H,KAEZ,IAECsD,OAAOO,IAER,MAAON,EAAWC,GAAiBC,EAAY,CAC3C7Q,MAAO,IAAIkR,UAAU,+BACrB,CAAC7D,GAAc,IAEnBY,EAAG6C,YAAY3B,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAGuB,GAAY,CAAErC,OAAOsC,EAAc,GAE1F,IACI3C,EAAG7N,OACH6N,EAAG7N,OAEX,CAIA,SAAS4Q,EAAcG,IAHvB,SAAuBA,GACnB,MAAqC,gBAA9BA,EAASC,YAAYnC,IAChC,EAEQoC,CAAcF,IACdA,EAASG,OACjB,CAqBA,SAASC,EAAqBC,GAC1B,GAAIA,EACA,MAAM,IAAI1C,MAAM,6CAExB,CACA,SAAS2C,EAAgBxD,GACrB,OAAOyD,EAAuBzD,EAAI,IAAIE,IAAO,CACzC/E,KAAM,YACP3E,MAAK,KACJuM,EAAc/C,EAAG,GAEzB,CACA,MAAM0D,EAAe,IAAIC,QACnBC,EAAkB,yBAA0BxC,YAC9C,IAAIyC,sBAAsB7D,IACtB,MAAM8D,GAAYJ,EAAanD,IAAIP,IAAO,GAAK,EAC/C0D,EAAapB,IAAItC,EAAI8D,GACJ,IAAbA,GACAN,EAAgBxD,EACpB,IAcR,SAASS,EAAYT,EAAIC,EAAkB9K,EAAO,GAAI4O,EAAS,WAAc,GACzE,IAAIC,GAAkB,EACtB,MAAM7B,EAAQ,IAAI8B,MAAMF,EAAQ,CAC5B,GAAAxD,CAAI2D,EAASjC,GAET,GADAqB,EAAqBU,GACjB/B,IAAS/C,EACT,MAAO,MAXvB,SAAyBiD,GACjByB,GACAA,EAAgBO,WAAWhC,EAEnC,CAQoBiC,CAAgBjC,GAChBqB,EAAgBxD,GAChBC,EAAiBoE,QACjBL,GAAkB,CAAI,EAG9B,GAAa,SAAT/B,EAAiB,CACjB,GAAoB,IAAhB9M,EAAK9C,OACL,MAAO,CAAEmE,KAAM,IAAM2L,GAEzB,MAAMmC,EAAIb,EAAuBzD,EAAIC,EAAkB,CACnD9E,KAAM,MACNhG,KAAMA,EAAKpB,KAAKwQ,GAAMA,EAAEC,eACzBhO,KAAKqL,GACR,OAAOyC,EAAE9N,KAAKiO,KAAKH,EACvB,CACA,OAAO7D,EAAYT,EAAIC,EAAkB,IAAI9K,EAAM8M,GACvD,EACA,GAAAK,CAAI4B,EAASjC,EAAMC,GACfoB,EAAqBU,GAGrB,MAAOjS,EAAO4Q,GAAiBC,EAAYV,GAC3C,OAAOuB,EAAuBzD,EAAIC,EAAkB,CAChD9E,KAAM,MACNhG,KAAM,IAAIA,EAAM8M,GAAMlO,KAAKwQ,GAAMA,EAAEC,aACnCzS,SACD4Q,GAAenM,KAAKqL,EAC3B,EACA,KAAAlF,CAAMuH,EAASQ,EAAUC,GACrBrB,EAAqBU,GACrB,MAAMY,EAAOzP,EAAKA,EAAK9C,OAAS,GAChC,GAAIuS,IAAS3F,EACT,OAAOwE,EAAuBzD,EAAIC,EAAkB,CAChD9E,KAAM,aACP3E,KAAKqL,GAGZ,GAAa,SAAT+C,EACA,OAAOnE,EAAYT,EAAIC,EAAkB9K,EAAK5C,MAAM,GAAI,IAE5D,MAAOqP,EAAce,GAAiBkC,EAAiBF,GACvD,OAAOlB,EAAuBzD,EAAIC,EAAkB,CAChD9E,KAAM,QACNhG,KAAMA,EAAKpB,KAAKwQ,GAAMA,EAAEC,aACxB5C,gBACDe,GAAenM,KAAKqL,EAC3B,EACA,SAAAiD,CAAUZ,EAASS,GACfrB,EAAqBU,GACrB,MAAOpC,EAAce,GAAiBkC,EAAiBF,GACvD,OAAOlB,EAAuBzD,EAAIC,EAAkB,CAChD9E,KAAM,YACNhG,KAAMA,EAAKpB,KAAKwQ,GAAMA,EAAEC,aACxB5C,gBACDe,GAAenM,KAAKqL,EAC3B,IAGJ,OA9EJ,SAAuBM,EAAOnC,GAC1B,MAAM8D,GAAYJ,EAAanD,IAAIP,IAAO,GAAK,EAC/C0D,EAAapB,IAAItC,EAAI8D,GACjBF,GACAA,EAAgBmB,SAAS5C,EAAOnC,EAAImC,EAE5C,CAuEI6C,CAAc7C,EAAOnC,GACdmC,CACX,CAIA,SAAS0C,EAAiBjD,GACtB,MAAMqD,EAAYrD,EAAa7N,IAAI6O,GACnC,MAAO,CAACqC,EAAUlR,KAAKmR,GAAMA,EAAE,MALnBC,EAK+BF,EAAUlR,KAAKmR,GAAMA,EAAE,KAJ3DxJ,MAAMvE,UAAU0E,OAAOc,MAAM,GAAIwI,KAD5C,IAAgBA,CAMhB,CACA,MAAM9C,EAAgB,IAAIsB,QAe1B,SAASf,EAAY7Q,GACjB,IAAK,MAAOiP,EAAMoE,KAAYzE,EAC1B,GAAIyE,EAAQ5F,UAAUzN,GAAQ,CAC1B,MAAOsT,EAAiB1C,GAAiByC,EAAQ3F,UAAU1N,GAC3D,MAAO,CACH,CACIoJ,KAAM,UACN6F,OACAjP,MAAOsT,GAEX1C,EAER,CAEJ,MAAO,CACH,CACIxH,KAAM,MACNpJ,SAEJsQ,EAAc9B,IAAIxO,IAAU,GAEpC,CACA,SAAS8P,EAAc9P,GACnB,OAAQA,EAAMoJ,MACV,IAAK,UACD,OAAOwF,EAAiBJ,IAAIxO,EAAMiP,MAAMlB,YAAY/N,EAAMA,OAC9D,IAAK,MACD,OAAOA,EAAMA,MAEzB,CACA,SAAS0R,EAAuBzD,EAAIC,EAAkBqF,EAAKlD,GACvD,OAAO,IAAIpK,SAASC,IAChB,MAAMoI,EASH,IAAI3E,MAAM,GACZ6J,KAAK,GACLxR,KAAI,IAAM2K,KAAK8G,MAAM9G,KAAK+G,SAAWC,OAAOC,kBAAkBnB,SAAS,MACvErQ,KAAK,KAXN8L,EAAiBqC,IAAIjC,EAAIpI,GACrB+H,EAAG7N,OACH6N,EAAG7N,QAEP6N,EAAG6C,YAAY3B,OAAOC,OAAO,CAAEd,MAAMiF,GAAMlD,EAAU,GAE7D","sources":["webpack:///../../node_modules/change-case/dist/index.js","webpack:///../../node_modules/typo-js/typo.js","webpack:///../../node_modules/comlink/dist/esm/comlink.mjs"],"sourcesContent":["// Regexps involved with splitting words in various case formats.\nconst SPLIT_LOWER_UPPER_RE = /([\\p{Ll}\\d])(\\p{Lu})/gu;\nconst SPLIT_UPPER_UPPER_RE = /(\\p{Lu})([\\p{Lu}][\\p{Ll}])/gu;\n// Used to iterate over the initial split result and separate numbers.\nconst SPLIT_SEPARATE_NUMBER_RE = /(\\d)\\p{Ll}|(\\p{L})\\d/u;\n// Regexp involved with stripping non-word characters from the result.\nconst DEFAULT_STRIP_REGEXP = /[^\\p{L}\\d]+/giu;\n// The replacement value for splits.\nconst SPLIT_REPLACE_VALUE = \"$1\\0$2\";\n// The default characters to keep after transforming case.\nconst DEFAULT_PREFIX_SUFFIX_CHARACTERS = \"\";\n/**\n * Split any cased input strings into an array of words.\n */\nexport function split(value) {\n let result = value.trim();\n result = result\n .replace(SPLIT_LOWER_UPPER_RE, SPLIT_REPLACE_VALUE)\n .replace(SPLIT_UPPER_UPPER_RE, SPLIT_REPLACE_VALUE);\n result = result.replace(DEFAULT_STRIP_REGEXP, \"\\0\");\n let start = 0;\n let end = result.length;\n // Trim the delimiter from around the output string.\n while (result.charAt(start) === \"\\0\")\n start++;\n if (start === end)\n return [];\n while (result.charAt(end - 1) === \"\\0\")\n end--;\n return result.slice(start, end).split(/\\0/g);\n}\n/**\n * Split the input string into an array of words, separating numbers.\n */\nexport function splitSeparateNumbers(value) {\n const words = split(value);\n for (let i = 0; i < words.length; i++) {\n const word = words[i];\n const match = SPLIT_SEPARATE_NUMBER_RE.exec(word);\n if (match) {\n const offset = match.index + (match[1] ?? match[2]).length;\n words.splice(i, 1, word.slice(0, offset), word.slice(offset));\n }\n }\n return words;\n}\n/**\n * Convert a string to space separated lower case (`foo bar`).\n */\nexport function noCase(input, options) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n return (prefix +\n words.map(lowerFactory(options?.locale)).join(options?.delimiter ?? \" \") +\n suffix);\n}\n/**\n * Convert a string to camel case (`fooBar`).\n */\nexport function camelCase(input, options) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n const lower = lowerFactory(options?.locale);\n const upper = upperFactory(options?.locale);\n const transform = options?.mergeAmbiguousCharacters\n ? capitalCaseTransformFactory(lower, upper)\n : pascalCaseTransformFactory(lower, upper);\n return (prefix +\n words\n .map((word, index) => {\n if (index === 0)\n return lower(word);\n return transform(word, index);\n })\n .join(options?.delimiter ?? \"\") +\n suffix);\n}\n/**\n * Convert a string to pascal case (`FooBar`).\n */\nexport function pascalCase(input, options) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n const lower = lowerFactory(options?.locale);\n const upper = upperFactory(options?.locale);\n const transform = options?.mergeAmbiguousCharacters\n ? capitalCaseTransformFactory(lower, upper)\n : pascalCaseTransformFactory(lower, upper);\n return prefix + words.map(transform).join(options?.delimiter ?? \"\") + suffix;\n}\n/**\n * Convert a string to pascal snake case (`Foo_Bar`).\n */\nexport function pascalSnakeCase(input, options) {\n return capitalCase(input, { delimiter: \"_\", ...options });\n}\n/**\n * Convert a string to capital case (`Foo Bar`).\n */\nexport function capitalCase(input, options) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n const lower = lowerFactory(options?.locale);\n const upper = upperFactory(options?.locale);\n return (prefix +\n words\n .map(capitalCaseTransformFactory(lower, upper))\n .join(options?.delimiter ?? \" \") +\n suffix);\n}\n/**\n * Convert a string to constant case (`FOO_BAR`).\n */\nexport function constantCase(input, options) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n return (prefix +\n words.map(upperFactory(options?.locale)).join(options?.delimiter ?? \"_\") +\n suffix);\n}\n/**\n * Convert a string to dot case (`foo.bar`).\n */\nexport function dotCase(input, options) {\n return noCase(input, { delimiter: \".\", ...options });\n}\n/**\n * Convert a string to kebab case (`foo-bar`).\n */\nexport function kebabCase(input, options) {\n return noCase(input, { delimiter: \"-\", ...options });\n}\n/**\n * Convert a string to path case (`foo/bar`).\n */\nexport function pathCase(input, options) {\n return noCase(input, { delimiter: \"/\", ...options });\n}\n/**\n * Convert a string to path case (`Foo bar`).\n */\nexport function sentenceCase(input, options) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n const lower = lowerFactory(options?.locale);\n const upper = upperFactory(options?.locale);\n const transform = capitalCaseTransformFactory(lower, upper);\n return (prefix +\n words\n .map((word, index) => {\n if (index === 0)\n return transform(word);\n return lower(word);\n })\n .join(options?.delimiter ?? \" \") +\n suffix);\n}\n/**\n * Convert a string to snake case (`foo_bar`).\n */\nexport function snakeCase(input, options) {\n return noCase(input, { delimiter: \"_\", ...options });\n}\n/**\n * Convert a string to header case (`Foo-Bar`).\n */\nexport function trainCase(input, options) {\n return capitalCase(input, { delimiter: \"-\", ...options });\n}\nfunction lowerFactory(locale) {\n return locale === false\n ? (input) => input.toLowerCase()\n : (input) => input.toLocaleLowerCase(locale);\n}\nfunction upperFactory(locale) {\n return locale === false\n ? (input) => input.toUpperCase()\n : (input) => input.toLocaleUpperCase(locale);\n}\nfunction capitalCaseTransformFactory(lower, upper) {\n return (word) => `${upper(word[0])}${lower(word.slice(1))}`;\n}\nfunction pascalCaseTransformFactory(lower, upper) {\n return (word, index) => {\n const char0 = word[0];\n const initial = index > 0 && char0 >= \"0\" && char0 <= \"9\" ? \"_\" + char0 : upper(char0);\n return initial + lower(word.slice(1));\n };\n}\nfunction splitPrefixSuffix(input, options = {}) {\n const splitFn = options.split ?? (options.separateNumbers ? splitSeparateNumbers : split);\n const prefixCharacters = options.prefixCharacters ?? DEFAULT_PREFIX_SUFFIX_CHARACTERS;\n const suffixCharacters = options.suffixCharacters ?? DEFAULT_PREFIX_SUFFIX_CHARACTERS;\n let prefixIndex = 0;\n let suffixIndex = input.length;\n while (prefixIndex < input.length) {\n const char = input.charAt(prefixIndex);\n if (!prefixCharacters.includes(char))\n break;\n prefixIndex++;\n }\n while (suffixIndex > prefixIndex) {\n const index = suffixIndex - 1;\n const char = input.charAt(index);\n if (!suffixCharacters.includes(char))\n break;\n suffixIndex = index;\n }\n return [\n input.slice(0, prefixIndex),\n splitFn(input.slice(prefixIndex, suffixIndex)),\n input.slice(suffixIndex),\n ];\n}\n//# sourceMappingURL=index.js.map","/* globals chrome: false */\n/* globals __dirname: false */\n/* globals require: false */\n/* globals Buffer: false */\n/* globals module: false */\n/**\n * Typo is a JavaScript implementation of a spellchecker using hunspell-style\n * dictionaries.\n */\nvar Typo;\n(function () {\n \"use strict\";\n /**\n * Typo constructor.\n *\n * @param {string} [dictionary] The locale code of the dictionary being used. e.g.,\n * \"en_US\". This is only used to auto-load dictionaries.\n * @param {string} [affData] The data from the dictionary's .aff file. If omitted\n * and Typo.js is being used in a Chrome extension, the .aff\n * file will be loaded automatically from\n * lib/typo/dictionaries/[dictionary]/[dictionary].aff\n * In other environments, it will be loaded from\n * [settings.dictionaryPath]/dictionaries/[dictionary]/[dictionary].aff\n * @param {string} [wordsData] The data from the dictionary's .dic file. If omitted\n * and Typo.js is being used in a Chrome extension, the .dic\n * file will be loaded automatically from\n * lib/typo/dictionaries/[dictionary]/[dictionary].dic\n * In other environments, it will be loaded from\n * [settings.dictionaryPath]/dictionaries/[dictionary]/[dictionary].dic\n * @param {Object} [settings] Constructor settings. Available properties are:\n * {string} [dictionaryPath]: path to load dictionary from in non-chrome\n * environment.\n * {Object} [flags]: flag information.\n * {boolean} [asyncLoad]: If true, affData and wordsData will be loaded\n * asynchronously.\n * {Function} [loadedCallback]: Called when both affData and wordsData\n * have been loaded. Only used if asyncLoad is set to true. The parameter\n * is the instantiated Typo object.\n *\n * @returns {Typo} A Typo object.\n */\n Typo = function (dictionary, affData, wordsData, settings) {\n settings = settings || {};\n this.dictionary = null;\n this.rules = {};\n this.dictionaryTable = {};\n this.compoundRules = [];\n this.compoundRuleCodes = {};\n this.replacementTable = [];\n this.flags = settings.flags || {};\n this.memoized = {};\n this.loaded = false;\n var self = this;\n var path;\n // Loop-control variables.\n var i, j, _len, _jlen;\n if (dictionary) {\n self.dictionary = dictionary;\n // If the data is preloaded, just setup the Typo object.\n if (affData && wordsData) {\n setup();\n }\n // Loading data for Chrome extentions.\n else if (typeof window !== 'undefined' && (window.chrome || window.browser)) {\n var runtime = window.chrome && window.chrome.runtime ? window.chrome.runtime : browser.runtime;\n if (settings.dictionaryPath) {\n path = settings.dictionaryPath;\n }\n else {\n path = \"typo/dictionaries\";\n }\n if (!affData)\n readDataFile(runtime.getURL(path + \"/\" + dictionary + \"/\" + dictionary + \".aff\"), setAffData);\n if (!wordsData)\n readDataFile(runtime.getURL(path + \"/\" + dictionary + \"/\" + dictionary + \".dic\"), setWordsData);\n }\n // Loading data for Node.js or other environments.\n else {\n if (settings.dictionaryPath) {\n path = settings.dictionaryPath;\n }\n else if (typeof __dirname !== 'undefined') {\n path = __dirname + '/dictionaries';\n }\n else {\n path = './dictionaries';\n }\n if (!affData)\n readDataFile(path + \"/\" + dictionary + \"/\" + dictionary + \".aff\", setAffData);\n if (!wordsData)\n readDataFile(path + \"/\" + dictionary + \"/\" + dictionary + \".dic\", setWordsData);\n }\n }\n function readDataFile(url, setFunc) {\n var response = self._readFile(url, null, settings === null || settings === void 0 ? void 0 : settings.asyncLoad);\n if (settings === null || settings === void 0 ? void 0 : settings.asyncLoad) {\n response.then(function (data) {\n setFunc(data);\n });\n }\n else {\n setFunc(response);\n }\n }\n function setAffData(data) {\n affData = data;\n if (wordsData) {\n setup();\n }\n }\n function setWordsData(data) {\n wordsData = data;\n if (affData) {\n setup();\n }\n }\n function setup() {\n self.rules = self._parseAFF(affData);\n // Save the rule codes that are used in compound rules.\n self.compoundRuleCodes = {};\n for (i = 0, _len = self.compoundRules.length; i < _len; i++) {\n var rule = self.compoundRules[i];\n for (j = 0, _jlen = rule.length; j < _jlen; j++) {\n self.compoundRuleCodes[rule[j]] = [];\n }\n }\n // If we add this ONLYINCOMPOUND flag to self.compoundRuleCodes, then _parseDIC\n // will do the work of saving the list of words that are compound-only.\n if (\"ONLYINCOMPOUND\" in self.flags) {\n self.compoundRuleCodes[self.flags.ONLYINCOMPOUND] = [];\n }\n self.dictionaryTable = self._parseDIC(wordsData);\n // Get rid of any codes from the compound rule codes that are never used\n // (or that were special regex characters). Not especially necessary...\n for (i in self.compoundRuleCodes) {\n if (self.compoundRuleCodes[i].length === 0) {\n delete self.compoundRuleCodes[i];\n }\n }\n // Build the full regular expressions for each compound rule.\n // I have a feeling (but no confirmation yet) that this method of\n // testing for compound words is probably slow.\n for (i = 0, _len = self.compoundRules.length; i < _len; i++) {\n var ruleText = self.compoundRules[i];\n var expressionText = \"\";\n for (j = 0, _jlen = ruleText.length; j < _jlen; j++) {\n var character = ruleText[j];\n if (character in self.compoundRuleCodes) {\n expressionText += \"(\" + self.compoundRuleCodes[character].join(\"|\") + \")\";\n }\n else {\n expressionText += character;\n }\n }\n self.compoundRules[i] = new RegExp('^' + expressionText + '$', \"i\");\n }\n self.loaded = true;\n if ((settings === null || settings === void 0 ? void 0 : settings.asyncLoad) && (settings === null || settings === void 0 ? void 0 : settings.loadedCallback)) {\n settings.loadedCallback(self);\n }\n }\n return this;\n };\n Typo.prototype = {\n /**\n * Loads a Typo instance from a hash of all of the Typo properties.\n *\n * @param {object} obj A hash of Typo properties, probably gotten from a JSON.parse(JSON.stringify(typo_instance)).\n */\n load: function (obj) {\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n this[i] = obj[i];\n }\n }\n return this;\n },\n /**\n * Read the contents of a file.\n *\n * @param {string} path The path (relative) to the file.\n * @param {string} [charset=\"ISO8859-1\"] The expected charset of the file\n * @param {boolean} async If true, the file will be read asynchronously. For node.js this does nothing, all\n * files are read synchronously.\n * @returns {string} The file data if async is false, otherwise a promise object. If running node.js, the data is\n * always returned.\n */\n _readFile: function (path, charset, async) {\n var _a;\n charset = charset || \"utf8\";\n if (typeof XMLHttpRequest !== 'undefined') {\n var req_1 = new XMLHttpRequest();\n req_1.open(\"GET\", path, !!async);\n (_a = req_1.overrideMimeType) === null || _a === void 0 ? void 0 : _a.call(req_1, \"text/plain; charset=\" + charset);\n if (!!async) {\n var promise = new Promise(function (resolve, reject) {\n req_1.onload = function () {\n if (req_1.status === 200) {\n resolve(req_1.responseText);\n }\n else {\n reject(req_1.statusText);\n }\n };\n req_1.onerror = function () {\n reject(req_1.statusText);\n };\n });\n req_1.send(null);\n return promise;\n }\n else {\n req_1.send(null);\n return req_1.responseText;\n }\n }\n else if (typeof require !== 'undefined') {\n // Node.js\n var fs = require(\"fs\");\n try {\n if (fs.existsSync(path)) {\n return fs.readFileSync(path, charset);\n }\n else {\n console.log(\"Path \" + path + \" does not exist.\");\n }\n }\n catch (e) {\n console.log(e);\n }\n return '';\n }\n return '';\n },\n /**\n * Parse the rules out from a .aff file.\n *\n * @param {string} data The contents of the affix file.\n * @returns object The rules from the file.\n */\n _parseAFF: function (data) {\n var rules = {};\n var line, subline, numEntries, lineParts;\n var i, j, _len, _jlen;\n var lines = data.split(/\\r?\\n/);\n for (i = 0, _len = lines.length; i < _len; i++) {\n // Remove comment lines\n line = this._removeAffixComments(lines[i]);\n line = line.trim();\n if (!line) {\n continue;\n }\n var definitionParts = line.split(/\\s+/);\n var ruleType = definitionParts[0];\n if (ruleType === \"PFX\" || ruleType === \"SFX\") {\n var ruleCode = definitionParts[1];\n var combineable = definitionParts[2];\n numEntries = parseInt(definitionParts[3], 10);\n var entries = [];\n for (j = i + 1, _jlen = i + 1 + numEntries; j < _jlen; j++) {\n subline = lines[j];\n lineParts = subline.split(/\\s+/);\n var charactersToRemove = lineParts[2];\n var additionParts = lineParts[3].split(\"/\");\n var charactersToAdd = additionParts[0];\n if (charactersToAdd === \"0\")\n charactersToAdd = \"\";\n var continuationClasses = this.parseRuleCodes(additionParts[1]);\n var regexToMatch = lineParts[4];\n var entry = {\n add: charactersToAdd\n };\n if (continuationClasses.length > 0)\n entry.continuationClasses = continuationClasses;\n if (regexToMatch !== \".\") {\n if (ruleType === \"SFX\") {\n entry.match = new RegExp(regexToMatch + \"$\");\n }\n else {\n entry.match = new RegExp(\"^\" + regexToMatch);\n }\n }\n if (charactersToRemove != \"0\") {\n if (ruleType === \"SFX\") {\n entry.remove = new RegExp(charactersToRemove + \"$\");\n }\n else {\n entry.remove = charactersToRemove;\n }\n }\n entries.push(entry);\n }\n rules[ruleCode] = { \"type\": ruleType, \"combineable\": (combineable === \"Y\"), \"entries\": entries };\n i += numEntries;\n }\n else if (ruleType === \"COMPOUNDRULE\") {\n numEntries = parseInt(definitionParts[1], 10);\n for (j = i + 1, _jlen = i + 1 + numEntries; j < _jlen; j++) {\n line = lines[j];\n lineParts = line.split(/\\s+/);\n this.compoundRules.push(lineParts[1]);\n }\n i += numEntries;\n }\n else if (ruleType === \"REP\") {\n lineParts = line.split(/\\s+/);\n if (lineParts.length === 3) {\n this.replacementTable.push([lineParts[1], lineParts[2]]);\n }\n }\n else {\n // ONLYINCOMPOUND\n // COMPOUNDMIN\n // FLAG\n // KEEPCASE\n // NEEDAFFIX\n this.flags[ruleType] = definitionParts[1];\n }\n }\n return rules;\n },\n /**\n * Removes comments.\n *\n * @param {string} data A line from an affix file.\n * @return {string} The cleaned-up line.\n */\n _removeAffixComments: function (line) {\n // This used to remove any string starting with '#' up to the end of the line,\n // but some COMPOUNDRULE definitions include '#' as part of the rule.\n // So, only remove lines that begin with a comment, optionally preceded by whitespace.\n if (line.match(/^\\s*#/)) {\n return '';\n }\n return line;\n },\n /**\n * Parses the words out from the .dic file.\n *\n * @param {string} data The data from the dictionary file.\n * @returns HashMap The lookup table containing all of the words and\n * word forms from the dictionary.\n */\n _parseDIC: function (data) {\n data = this._removeDicComments(data);\n var lines = data.split(/\\r?\\n/);\n var dictionaryTable = {};\n function addWord(word, rules) {\n // Some dictionaries will list the same word multiple times with different rule sets.\n if (!dictionaryTable.hasOwnProperty(word)) {\n dictionaryTable[word] = null;\n }\n if (rules.length > 0) {\n if (dictionaryTable[word] === null) {\n dictionaryTable[word] = [];\n }\n dictionaryTable[word].push(rules);\n }\n }\n // The first line is the number of words in the dictionary.\n for (var i = 1, _len = lines.length; i < _len; i++) {\n var line = lines[i];\n if (!line) {\n // Ignore empty lines.\n continue;\n }\n var parts = line.split(\"/\", 2);\n var word = parts[0];\n // Now for each affix rule, generate that form of the word.\n if (parts.length > 1) {\n var ruleCodesArray = this.parseRuleCodes(parts[1]);\n // Save the ruleCodes for compound word situations.\n if (!(\"NEEDAFFIX\" in this.flags) || ruleCodesArray.indexOf(this.flags.NEEDAFFIX) === -1) {\n addWord(word, ruleCodesArray);\n }\n for (var j = 0, _jlen = ruleCodesArray.length; j < _jlen; j++) {\n var code = ruleCodesArray[j];\n var rule = this.rules[code];\n if (rule) {\n var newWords = this._applyRule(word, rule);\n for (var ii = 0, _iilen = newWords.length; ii < _iilen; ii++) {\n var newWord = newWords[ii];\n addWord(newWord, []);\n if (rule.combineable) {\n for (var k = j + 1; k < _jlen; k++) {\n var combineCode = ruleCodesArray[k];\n var combineRule = this.rules[combineCode];\n if (combineRule) {\n if (combineRule.combineable && (rule.type != combineRule.type)) {\n var otherNewWords = this._applyRule(newWord, combineRule);\n for (var iii = 0, _iiilen = otherNewWords.length; iii < _iiilen; iii++) {\n var otherNewWord = otherNewWords[iii];\n addWord(otherNewWord, []);\n }\n }\n }\n }\n }\n }\n }\n if (code in this.compoundRuleCodes) {\n this.compoundRuleCodes[code].push(word);\n }\n }\n }\n else {\n addWord(word.trim(), []);\n }\n }\n return dictionaryTable;\n },\n /**\n * Removes comment lines and then cleans up blank lines and trailing whitespace.\n *\n * @param {string} data The data from a .dic file.\n * @return {string} The cleaned-up data.\n */\n _removeDicComments: function (data) {\n // I can't find any official documentation on it, but at least the de_DE\n // dictionary uses tab-indented lines as comments.\n // Remove comments\n data = data.replace(/^\\t.*$/mg, \"\");\n return data;\n },\n parseRuleCodes: function (textCodes) {\n if (!textCodes) {\n return [];\n }\n else if (!(\"FLAG\" in this.flags)) {\n // The flag symbols are single characters\n return textCodes.split(\"\");\n }\n else if (this.flags.FLAG === \"long\") {\n // The flag symbols are two characters long.\n var flags = [];\n for (var i = 0, _len = textCodes.length; i < _len; i += 2) {\n flags.push(textCodes.substr(i, 2));\n }\n return flags;\n }\n else if (this.flags.FLAG === \"num\") {\n // The flag symbols are a CSV list of numbers.\n return textCodes.split(\",\");\n }\n else if (this.flags.FLAG === \"UTF-8\") {\n // The flags are single UTF-8 characters.\n // @see https://github.com/cfinke/Typo.js/issues/57\n return Array.from(textCodes);\n }\n else {\n // It's possible that this fallback case will not work for all FLAG values,\n // but I think it's more likely to work than not returning anything at all.\n return textCodes.split(\"\");\n }\n },\n /**\n * Applies an affix rule to a word.\n *\n * @param {string} word The base word.\n * @param {Object} rule The affix rule.\n * @returns {string[]} The new words generated by the rule.\n */\n _applyRule: function (word, rule) {\n var entries = rule.entries;\n var newWords = [];\n for (var i = 0, _len = entries.length; i < _len; i++) {\n var entry = entries[i];\n if (!entry.match || word.match(entry.match)) {\n var newWord = word;\n if (entry.remove) {\n newWord = newWord.replace(entry.remove, \"\");\n }\n if (rule.type === \"SFX\") {\n newWord = newWord + entry.add;\n }\n else {\n newWord = entry.add + newWord;\n }\n newWords.push(newWord);\n if (\"continuationClasses\" in entry) {\n for (var j = 0, _jlen = entry.continuationClasses.length; j < _jlen; j++) {\n var continuationRule = this.rules[entry.continuationClasses[j]];\n if (continuationRule) {\n newWords = newWords.concat(this._applyRule(newWord, continuationRule));\n }\n /*\n else {\n // This shouldn't happen, but it does, at least in the de_DE dictionary.\n // I think the author mistakenly supplied lower-case rule codes instead\n // of upper-case.\n }\n */\n }\n }\n }\n }\n return newWords;\n },\n /**\n * Checks whether a word or a capitalization variant exists in the current dictionary.\n * The word is trimmed and several variations of capitalizations are checked.\n * If you want to check a word without any changes made to it, call checkExact()\n *\n * @see http://blog.stevenlevithan.com/archives/faster-trim-javascript re:trimming function\n *\n * @param {string} aWord The word to check.\n * @returns {boolean}\n */\n check: function (aWord) {\n if (!this.loaded) {\n throw \"Dictionary not loaded.\";\n }\n if (!aWord) {\n return false;\n }\n // Remove leading and trailing whitespace\n var trimmedWord = aWord.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n if (this.checkExact(trimmedWord)) {\n return true;\n }\n // The exact word is not in the dictionary.\n if (trimmedWord.toUpperCase() === trimmedWord) {\n // The word was supplied in all uppercase.\n // Check for a capitalized form of the word.\n var capitalizedWord = trimmedWord[0] + trimmedWord.substring(1).toLowerCase();\n if (this.hasFlag(capitalizedWord, \"KEEPCASE\")) {\n // Capitalization variants are not allowed for this word.\n return false;\n }\n if (this.checkExact(capitalizedWord)) {\n // The all-caps word is a capitalized word spelled correctly.\n return true;\n }\n if (this.checkExact(trimmedWord.toLowerCase())) {\n // The all-caps is a lowercase word spelled correctly.\n return true;\n }\n }\n var uncapitalizedWord = trimmedWord[0].toLowerCase() + trimmedWord.substring(1);\n if (uncapitalizedWord !== trimmedWord) {\n if (this.hasFlag(uncapitalizedWord, \"KEEPCASE\")) {\n // Capitalization variants are not allowed for this word.\n return false;\n }\n // Check for an uncapitalized form\n if (this.checkExact(uncapitalizedWord)) {\n // The word is spelled correctly but with the first letter capitalized.\n return true;\n }\n }\n return false;\n },\n /**\n * Checks whether a word exists in the current dictionary.\n *\n * @param {string} word The word to check.\n * @returns {boolean}\n */\n checkExact: function (word) {\n if (!this.loaded) {\n throw \"Dictionary not loaded.\";\n }\n var ruleCodes = this.dictionaryTable[word];\n var i, _len;\n if (typeof ruleCodes === 'undefined') {\n // Check if this might be a compound word.\n if (\"COMPOUNDMIN\" in this.flags && word.length >= this.flags.COMPOUNDMIN) {\n for (i = 0, _len = this.compoundRules.length; i < _len; i++) {\n if (word.match(this.compoundRules[i])) {\n return true;\n }\n }\n }\n }\n else if (ruleCodes === null) {\n // a null (but not undefined) value for an entry in the dictionary table\n // means that the word is in the dictionary but has no flags.\n return true;\n }\n else if (typeof ruleCodes === 'object') { // this.dictionary['hasOwnProperty'] will be a function.\n for (i = 0, _len = ruleCodes.length; i < _len; i++) {\n if (!this.hasFlag(word, \"ONLYINCOMPOUND\", ruleCodes[i])) {\n return true;\n }\n }\n }\n return false;\n },\n /**\n * Looks up whether a given word is flagged with a given flag.\n *\n * @param {string} word The word in question.\n * @param {string} flag The flag in question.\n * @return {boolean}\n */\n hasFlag: function (word, flag, wordFlags) {\n if (!this.loaded) {\n throw \"Dictionary not loaded.\";\n }\n if (flag in this.flags) {\n if (typeof wordFlags === 'undefined') {\n wordFlags = Array.prototype.concat.apply([], this.dictionaryTable[word]);\n }\n if (wordFlags && wordFlags.indexOf(this.flags[flag]) !== -1) {\n return true;\n }\n }\n return false;\n },\n /**\n * Returns a list of suggestions for a misspelled word.\n *\n * @see http://www.norvig.com/spell-correct.html for the basis of this suggestor.\n * This suggestor is primitive, but it works.\n *\n * @param {string} word The misspelling.\n * @param {number} [limit=5] The maximum number of suggestions to return.\n * @returns {string[]} The array of suggestions.\n */\n alphabet: \"\",\n suggest: function (word, limit) {\n if (!this.loaded) {\n throw \"Dictionary not loaded.\";\n }\n limit = limit || 5;\n if (this.memoized.hasOwnProperty(word)) {\n var memoizedLimit = this.memoized[word]['limit'];\n // Only return the cached list if it's big enough or if there weren't enough suggestions\n // to fill a smaller limit.\n if (limit <= memoizedLimit || this.memoized[word]['suggestions'].length < memoizedLimit) {\n return this.memoized[word]['suggestions'].slice(0, limit);\n }\n }\n if (this.check(word))\n return [];\n // Check the replacement table.\n for (var i = 0, _len = this.replacementTable.length; i < _len; i++) {\n var replacementEntry = this.replacementTable[i];\n if (word.indexOf(replacementEntry[0]) !== -1) {\n var correctedWord = word.replace(replacementEntry[0], replacementEntry[1]);\n if (this.check(correctedWord)) {\n return [correctedWord];\n }\n }\n }\n if (!this.alphabet) {\n // Use the English alphabet as the default. Problematic, but backwards-compatible.\n this.alphabet = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n // Any characters defined in the affix file as substitutions can go in the alphabet too.\n // Note that dictionaries do not include the entire alphabet in the TRY flag when it's there.\n // For example, Q is not in the default English TRY list; that's why having the default\n // alphabet above is useful.\n if ('TRY' in this.flags) {\n this.alphabet += this.flags['TRY'];\n }\n // Plus any additional characters specifically defined as being allowed in words.\n if ('WORDCHARS' in this.flags) {\n this.alphabet += this.flags['WORDCHARS'];\n }\n // Remove any duplicates.\n var alphaArray = this.alphabet.split(\"\");\n alphaArray.sort();\n var alphaHash = {};\n for (var i = 0; i < alphaArray.length; i++) {\n alphaHash[alphaArray[i]] = true;\n }\n this.alphabet = '';\n for (var i in alphaHash) {\n this.alphabet += i;\n }\n }\n var self = this;\n /**\n * Returns a hash keyed by all of the strings that can be made by making a single edit to the word (or words in) `words`\n * The value of each entry is the number of unique ways that the resulting word can be made.\n *\n * @arg HashMap words A hash keyed by words (all with the value `true` to make lookups very quick).\n * @arg boolean known_only Whether this function should ignore strings that are not in the dictionary.\n */\n function edits1(words, known_only) {\n var rv = {};\n var i, j, _iilen, _len, _jlen, _edit;\n var alphabetLength = self.alphabet.length;\n for (var word_1 in words) {\n for (i = 0, _len = word_1.length + 1; i < _len; i++) {\n var s = [word_1.substring(0, i), word_1.substring(i)];\n // Remove a letter.\n if (s[1]) {\n _edit = s[0] + s[1].substring(1);\n if (!known_only || self.check(_edit)) {\n if (!(_edit in rv)) {\n rv[_edit] = 1;\n }\n else {\n rv[_edit] += 1;\n }\n }\n }\n // Transpose letters\n // Eliminate transpositions of identical letters\n if (s[1].length > 1 && s[1][1] !== s[1][0]) {\n _edit = s[0] + s[1][1] + s[1][0] + s[1].substring(2);\n if (!known_only || self.check(_edit)) {\n if (!(_edit in rv)) {\n rv[_edit] = 1;\n }\n else {\n rv[_edit] += 1;\n }\n }\n }\n if (s[1]) {\n // Replace a letter with another letter.\n var lettercase = (s[1].substring(0, 1).toUpperCase() === s[1].substring(0, 1)) ? 'uppercase' : 'lowercase';\n for (j = 0; j < alphabetLength; j++) {\n var replacementLetter = self.alphabet[j];\n // Set the case of the replacement letter to the same as the letter being replaced.\n if ('uppercase' === lettercase) {\n replacementLetter = replacementLetter.toUpperCase();\n }\n // Eliminate replacement of a letter by itself\n if (replacementLetter != s[1].substring(0, 1)) {\n _edit = s[0] + replacementLetter + s[1].substring(1);\n if (!known_only || self.check(_edit)) {\n if (!(_edit in rv)) {\n rv[_edit] = 1;\n }\n else {\n rv[_edit] += 1;\n }\n }\n }\n }\n }\n if (s[1]) {\n // Add a letter between each letter.\n for (j = 0; j < alphabetLength; j++) {\n // If the letters on each side are capitalized, capitalize the replacement.\n var lettercase = (s[0].substring(-1).toUpperCase() === s[0].substring(-1) && s[1].substring(0, 1).toUpperCase() === s[1].substring(0, 1)) ? 'uppercase' : 'lowercase';\n var replacementLetter = self.alphabet[j];\n if ('uppercase' === lettercase) {\n replacementLetter = replacementLetter.toUpperCase();\n }\n _edit = s[0] + replacementLetter + s[1];\n if (!known_only || self.check(_edit)) {\n if (!(_edit in rv)) {\n rv[_edit] = 1;\n }\n else {\n rv[_edit] += 1;\n }\n }\n }\n }\n }\n }\n return rv;\n }\n function correct(word) {\n var _a;\n // Get the edit-distance-1 and edit-distance-2 forms of this word.\n var ed1 = edits1((_a = {}, _a[word] = true, _a));\n var ed2 = edits1(ed1, true);\n // Sort the edits based on how many different ways they were created.\n var weighted_corrections = ed2;\n for (var ed1word in ed1) {\n if (!self.check(ed1word)) {\n continue;\n }\n if (ed1word in weighted_corrections) {\n weighted_corrections[ed1word] += ed1[ed1word];\n }\n else {\n weighted_corrections[ed1word] = ed1[ed1word];\n }\n }\n var i, _len;\n var sorted_corrections = [];\n for (i in weighted_corrections) {\n if (weighted_corrections.hasOwnProperty(i)) {\n sorted_corrections.push([i, weighted_corrections[i]]);\n }\n }\n function sorter(a, b) {\n var a_val = a[1];\n var b_val = b[1];\n if (a_val < b_val) {\n return -1;\n }\n else if (a_val > b_val) {\n return 1;\n }\n // @todo If a and b are equally weighted, add our own weight based on something like the key locations on this language's default keyboard.\n return b[0].localeCompare(a[0]);\n }\n sorted_corrections.sort(sorter).reverse();\n var rv = [];\n var capitalization_scheme = \"lowercase\";\n if (word.toUpperCase() === word) {\n capitalization_scheme = \"uppercase\";\n }\n else if (word.substr(0, 1).toUpperCase() + word.substr(1).toLowerCase() === word) {\n capitalization_scheme = \"capitalized\";\n }\n var working_limit = limit;\n for (i = 0; i < Math.min(working_limit, sorted_corrections.length); i++) {\n if (\"uppercase\" === capitalization_scheme) {\n sorted_corrections[i][0] = sorted_corrections[i][0].toUpperCase();\n }\n else if (\"capitalized\" === capitalization_scheme) {\n sorted_corrections[i][0] = sorted_corrections[i][0].substr(0, 1).toUpperCase() + sorted_corrections[i][0].substr(1);\n }\n if (!self.hasFlag(sorted_corrections[i][0], \"NOSUGGEST\") && rv.indexOf(sorted_corrections[i][0]) === -1) {\n rv.push(sorted_corrections[i][0]);\n }\n else {\n // If one of the corrections is not eligible as a suggestion , make sure we still return the right number of suggestions.\n working_limit++;\n }\n }\n return rv;\n }\n this.memoized[word] = {\n 'suggestions': correct(word),\n 'limit': limit\n };\n return this.memoized[word]['suggestions'];\n }\n };\n})();\n// Support for use as a node.js module.\nif (typeof module !== 'undefined') {\n module.exports = Typo;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nconst proxyMarker = Symbol(\"Comlink.proxy\");\nconst createEndpoint = Symbol(\"Comlink.endpoint\");\nconst releaseProxy = Symbol(\"Comlink.releaseProxy\");\nconst finalizer = Symbol(\"Comlink.finalizer\");\nconst throwMarker = Symbol(\"Comlink.thrown\");\nconst isObject = (val) => (typeof val === \"object\" && val !== null) || typeof val === \"function\";\n/**\n * Internal transfer handle to handle objects marked to proxy.\n */\nconst proxyTransferHandler = {\n canHandle: (val) => isObject(val) && val[proxyMarker],\n serialize(obj) {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port1);\n return [port2, [port2]];\n },\n deserialize(port) {\n port.start();\n return wrap(port);\n },\n};\n/**\n * Internal transfer handler to handle thrown exceptions.\n */\nconst throwTransferHandler = {\n canHandle: (value) => isObject(value) && throwMarker in value,\n serialize({ value }) {\n let serialized;\n if (value instanceof Error) {\n serialized = {\n isError: true,\n value: {\n message: value.message,\n name: value.name,\n stack: value.stack,\n },\n };\n }\n else {\n serialized = { isError: false, value };\n }\n return [serialized, []];\n },\n deserialize(serialized) {\n if (serialized.isError) {\n throw Object.assign(new Error(serialized.value.message), serialized.value);\n }\n throw serialized.value;\n },\n};\n/**\n * Allows customizing the serialization of certain values.\n */\nconst transferHandlers = new Map([\n [\"proxy\", proxyTransferHandler],\n [\"throw\", throwTransferHandler],\n]);\nfunction isAllowedOrigin(allowedOrigins, origin) {\n for (const allowedOrigin of allowedOrigins) {\n if (origin === allowedOrigin || allowedOrigin === \"*\") {\n return true;\n }\n if (allowedOrigin instanceof RegExp && allowedOrigin.test(origin)) {\n return true;\n }\n }\n return false;\n}\nfunction expose(obj, ep = globalThis, allowedOrigins = [\"*\"]) {\n ep.addEventListener(\"message\", function callback(ev) {\n if (!ev || !ev.data) {\n return;\n }\n if (!isAllowedOrigin(allowedOrigins, ev.origin)) {\n console.warn(`Invalid origin '${ev.origin}' for comlink proxy`);\n return;\n }\n const { id, type, path } = Object.assign({ path: [] }, ev.data);\n const argumentList = (ev.data.argumentList || []).map(fromWireValue);\n let returnValue;\n try {\n const parent = path.slice(0, -1).reduce((obj, prop) => obj[prop], obj);\n const rawValue = path.reduce((obj, prop) => obj[prop], obj);\n switch (type) {\n case \"GET\" /* MessageType.GET */:\n {\n returnValue = rawValue;\n }\n break;\n case \"SET\" /* MessageType.SET */:\n {\n parent[path.slice(-1)[0]] = fromWireValue(ev.data.value);\n returnValue = true;\n }\n break;\n case \"APPLY\" /* MessageType.APPLY */:\n {\n returnValue = rawValue.apply(parent, argumentList);\n }\n break;\n case \"CONSTRUCT\" /* MessageType.CONSTRUCT */:\n {\n const value = new rawValue(...argumentList);\n returnValue = proxy(value);\n }\n break;\n case \"ENDPOINT\" /* MessageType.ENDPOINT */:\n {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port2);\n returnValue = transfer(port1, [port1]);\n }\n break;\n case \"RELEASE\" /* MessageType.RELEASE */:\n {\n returnValue = undefined;\n }\n break;\n default:\n return;\n }\n }\n catch (value) {\n returnValue = { value, [throwMarker]: 0 };\n }\n Promise.resolve(returnValue)\n .catch((value) => {\n return { value, [throwMarker]: 0 };\n })\n .then((returnValue) => {\n const [wireValue, transferables] = toWireValue(returnValue);\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n if (type === \"RELEASE\" /* MessageType.RELEASE */) {\n // detach and deactive after sending release response above.\n ep.removeEventListener(\"message\", callback);\n closeEndPoint(ep);\n if (finalizer in obj && typeof obj[finalizer] === \"function\") {\n obj[finalizer]();\n }\n }\n })\n .catch((error) => {\n // Send Serialization Error To Caller\n const [wireValue, transferables] = toWireValue({\n value: new TypeError(\"Unserializable return value\"),\n [throwMarker]: 0,\n });\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n });\n });\n if (ep.start) {\n ep.start();\n }\n}\nfunction isMessagePort(endpoint) {\n return endpoint.constructor.name === \"MessagePort\";\n}\nfunction closeEndPoint(endpoint) {\n if (isMessagePort(endpoint))\n endpoint.close();\n}\nfunction wrap(ep, target) {\n const pendingListeners = new Map();\n ep.addEventListener(\"message\", function handleMessage(ev) {\n const { data } = ev;\n if (!data || !data.id) {\n return;\n }\n const resolver = pendingListeners.get(data.id);\n if (!resolver) {\n return;\n }\n try {\n resolver(data);\n }\n finally {\n pendingListeners.delete(data.id);\n }\n });\n return createProxy(ep, pendingListeners, [], target);\n}\nfunction throwIfProxyReleased(isReleased) {\n if (isReleased) {\n throw new Error(\"Proxy has been released and is not useable\");\n }\n}\nfunction releaseEndpoint(ep) {\n return requestResponseMessage(ep, new Map(), {\n type: \"RELEASE\" /* MessageType.RELEASE */,\n }).then(() => {\n closeEndPoint(ep);\n });\n}\nconst proxyCounter = new WeakMap();\nconst proxyFinalizers = \"FinalizationRegistry\" in globalThis &&\n new FinalizationRegistry((ep) => {\n const newCount = (proxyCounter.get(ep) || 0) - 1;\n proxyCounter.set(ep, newCount);\n if (newCount === 0) {\n releaseEndpoint(ep);\n }\n });\nfunction registerProxy(proxy, ep) {\n const newCount = (proxyCounter.get(ep) || 0) + 1;\n proxyCounter.set(ep, newCount);\n if (proxyFinalizers) {\n proxyFinalizers.register(proxy, ep, proxy);\n }\n}\nfunction unregisterProxy(proxy) {\n if (proxyFinalizers) {\n proxyFinalizers.unregister(proxy);\n }\n}\nfunction createProxy(ep, pendingListeners, path = [], target = function () { }) {\n let isProxyReleased = false;\n const proxy = new Proxy(target, {\n get(_target, prop) {\n throwIfProxyReleased(isProxyReleased);\n if (prop === releaseProxy) {\n return () => {\n unregisterProxy(proxy);\n releaseEndpoint(ep);\n pendingListeners.clear();\n isProxyReleased = true;\n };\n }\n if (prop === \"then\") {\n if (path.length === 0) {\n return { then: () => proxy };\n }\n const r = requestResponseMessage(ep, pendingListeners, {\n type: \"GET\" /* MessageType.GET */,\n path: path.map((p) => p.toString()),\n }).then(fromWireValue);\n return r.then.bind(r);\n }\n return createProxy(ep, pendingListeners, [...path, prop]);\n },\n set(_target, prop, rawValue) {\n throwIfProxyReleased(isProxyReleased);\n // FIXME: ES6 Proxy Handler `set` methods are supposed to return a\n // boolean. To show good will, we return true asynchronously ¯\\_(ツ)_/¯\n const [value, transferables] = toWireValue(rawValue);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"SET\" /* MessageType.SET */,\n path: [...path, prop].map((p) => p.toString()),\n value,\n }, transferables).then(fromWireValue);\n },\n apply(_target, _thisArg, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const last = path[path.length - 1];\n if (last === createEndpoint) {\n return requestResponseMessage(ep, pendingListeners, {\n type: \"ENDPOINT\" /* MessageType.ENDPOINT */,\n }).then(fromWireValue);\n }\n // We just pretend that `bind()` didn’t happen.\n if (last === \"bind\") {\n return createProxy(ep, pendingListeners, path.slice(0, -1));\n }\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"APPLY\" /* MessageType.APPLY */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n construct(_target, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"CONSTRUCT\" /* MessageType.CONSTRUCT */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n });\n registerProxy(proxy, ep);\n return proxy;\n}\nfunction myFlat(arr) {\n return Array.prototype.concat.apply([], arr);\n}\nfunction processArguments(argumentList) {\n const processed = argumentList.map(toWireValue);\n return [processed.map((v) => v[0]), myFlat(processed.map((v) => v[1]))];\n}\nconst transferCache = new WeakMap();\nfunction transfer(obj, transfers) {\n transferCache.set(obj, transfers);\n return obj;\n}\nfunction proxy(obj) {\n return Object.assign(obj, { [proxyMarker]: true });\n}\nfunction windowEndpoint(w, context = globalThis, targetOrigin = \"*\") {\n return {\n postMessage: (msg, transferables) => w.postMessage(msg, targetOrigin, transferables),\n addEventListener: context.addEventListener.bind(context),\n removeEventListener: context.removeEventListener.bind(context),\n };\n}\nfunction toWireValue(value) {\n for (const [name, handler] of transferHandlers) {\n if (handler.canHandle(value)) {\n const [serializedValue, transferables] = handler.serialize(value);\n return [\n {\n type: \"HANDLER\" /* WireValueType.HANDLER */,\n name,\n value: serializedValue,\n },\n transferables,\n ];\n }\n }\n return [\n {\n type: \"RAW\" /* WireValueType.RAW */,\n value,\n },\n transferCache.get(value) || [],\n ];\n}\nfunction fromWireValue(value) {\n switch (value.type) {\n case \"HANDLER\" /* WireValueType.HANDLER */:\n return transferHandlers.get(value.name).deserialize(value.value);\n case \"RAW\" /* WireValueType.RAW */:\n return value.value;\n }\n}\nfunction requestResponseMessage(ep, pendingListeners, msg, transfers) {\n return new Promise((resolve) => {\n const id = generateUUID();\n pendingListeners.set(id, resolve);\n if (ep.start) {\n ep.start();\n }\n ep.postMessage(Object.assign({ id }, msg), transfers);\n });\n}\nfunction generateUUID() {\n return new Array(4)\n .fill(0)\n .map(() => Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16))\n .join(\"-\");\n}\n\nexport { createEndpoint, expose, finalizer, proxy, proxyMarker, releaseProxy, transfer, transferHandlers, windowEndpoint, wrap };\n//# sourceMappingURL=comlink.mjs.map\n"],"names":["SPLIT_LOWER_UPPER_RE","SPLIT_UPPER_UPPER_RE","SPLIT_SEPARATE_NUMBER_RE","DEFAULT_STRIP_REGEXP","SPLIT_REPLACE_VALUE","DEFAULT_PREFIX_SUFFIX_CHARACTERS","split","value","result","trim","replace","start","end","length","charAt","slice","splitSeparateNumbers","words","i","word","match","exec","offset","index","splice","noCase","input","options","prefix","suffix","splitFn","separateNumbers","prefixCharacters","suffixCharacters","prefixIndex","suffixIndex","char","includes","splitPrefixSuffix","map","locale","toLowerCase","toLocaleLowerCase","join","delimiter","Typo","dictionary","affData","wordsData","settings","this","rules","dictionaryTable","compoundRules","compoundRuleCodes","replacementTable","flags","memoized","loaded","path","j","_len","_jlen","self","setup","window","chrome","browser","runtime","dictionaryPath","readDataFile","getURL","setAffData","setWordsData","__dirname","url","setFunc","response","_readFile","asyncLoad","then","data","_parseAFF","rule","ONLYINCOMPOUND","_parseDIC","ruleText","expressionText","character","RegExp","loadedCallback","prototype","load","obj","hasOwnProperty","charset","async","_a","XMLHttpRequest","req_1","open","overrideMimeType","call","promise","Promise","resolve","reject","onload","status","responseText","statusText","onerror","send","fs","existsSync","readFileSync","console","log","e","line","numEntries","lineParts","lines","_removeAffixComments","definitionParts","ruleType","ruleCode","combineable","entries","parseInt","charactersToRemove","additionParts","charactersToAdd","continuationClasses","parseRuleCodes","regexToMatch","entry","add","remove","push","_removeDicComments","addWord","parts","ruleCodesArray","indexOf","NEEDAFFIX","code","newWords","_applyRule","ii","_iilen","newWord","k","combineCode","combineRule","type","otherNewWords","iii","_iiilen","textCodes","FLAG","substr","Array","from","continuationRule","concat","check","aWord","trimmedWord","checkExact","toUpperCase","capitalizedWord","substring","hasFlag","uncapitalizedWord","ruleCodes","COMPOUNDMIN","flag","wordFlags","apply","alphabet","suggest","limit","memoizedLimit","replacementEntry","correctedWord","alphaArray","sort","alphaHash","edits1","known_only","_edit","rv","alphabetLength","word_1","s","lettercase","replacementLetter","ed1","weighted_corrections","ed1word","sorted_corrections","a","b","a_val","b_val","localeCompare","reverse","capitalization_scheme","working_limit","Math","min","correct","module","exports","proxyMarker","Symbol","createEndpoint","releaseProxy","finalizer","throwMarker","isObject","val","proxyTransferHandler","canHandle","serialize","port1","port2","MessageChannel","expose","deserialize","port","ep","pendingListeners","Map","addEventListener","ev","id","resolver","get","delete","createProxy","wrap","transferHandlers","serialized","Error","isError","message","name","stack","Object","assign","globalThis","allowedOrigins","callback","origin","allowedOrigin","test","isAllowedOrigin","warn","argumentList","fromWireValue","returnValue","parent","reduce","prop","rawValue","proxy","transfers","transferCache","set","transfer","undefined","catch","wireValue","transferables","toWireValue","postMessage","removeEventListener","closeEndPoint","error","TypeError","endpoint","constructor","isMessagePort","close","throwIfProxyReleased","isReleased","releaseEndpoint","requestResponseMessage","proxyCounter","WeakMap","proxyFinalizers","FinalizationRegistry","newCount","target","isProxyReleased","Proxy","_target","unregister","unregisterProxy","clear","r","p","toString","bind","_thisArg","rawArgumentList","last","processArguments","construct","register","registerProxy","processed","v","arr","handler","serializedValue","msg","fill","floor","random","Number","MAX_SAFE_INTEGER"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(globalThis.webpackChunk_next_bricks_vs=globalThis.webpackChunk_next_bricks_vs||[]).push([[7242],{7242:(e,t,n)=>{var i,s=n(4635),r=n(918),a=n(6902),o=n(5536),l=n(6121),c=n(829),u=n(2740),h=n(8769),d=n.n(h),g=n(6192),m=n(2304),p=n(9859),k=n(8792),f=n(426),A=n(2329),v=n(6197),w=n(3909),y=n(2257),b=n(3135),M=n(5310),C=n.n(M),x=(n(6477),n(563)),E=n(7137),W=n(4046),S=n(4804),L=n(4102),N=n(9287),B=n(9704),P=n(8182),_=n(3373),z=n.n(_),R=(n(3569),n(1968)),O=n(1836),I=n(5087),V=n(5808),D=n(896),F=n(2066),Y=n(8546),H=n(6984);let K,T,q,j,U,J,X,Z,$,G,Q,ee,te,ne,ie,se,re,ae,oe,le,ce,ue,he,de,ge,me,pe,ke,fe,Ae,ve,we,ye,be,Me,Ce,xe,Ee,We,Se,Le,Ne,Be,Pe,_e,ze,Re,Oe,Ie,Ve,De,Fe,Ye,He,Ke,Te,qe,je,Ue,Je,Xe,Ze,$e,Ge,Qe,et,tt;(0,B.initializeReactI18n)(P.NS,P.I),(0,v.kz)(A),(0,w.kz)(A),(0,y.kz)(A,"brick_next_yaml"),(0,b.kz)(A),(0,D.kz)(A),(0,F.kz)(A),(0,Y.kz)(A);const nt=["cel_yaml","cel_str"],it=["cel",...nt];for(const e of nt)A.languages.registerCompletionItemProvider(e,{triggerCharacters:["<"],provideCompletionItems:H.ix});for(const e of it)A.languages.registerCompletionItemProvider(e,(0,H.ZY)(e));const{defineElement:st,property:rt,event:at}=(0,g.createDecorators)(),ot=(0,p.wrapBrick)("eo-form-item"),lt=(0,p.wrapBrick)("eo-tooltip"),ct=(0,p.wrapBrick)("eo-icon"),ut=(0,m.unwrapProvider)("basic.copy-to-clipboard"),ht=(0,m.unwrapProvider)("basic.show-notification"),dt="spell_check",gt="brick_next_yaml_lint";let mt;var pt=new WeakMap,kt=new WeakMap,ft=new WeakMap,At=new WeakMap,vt=new WeakMap,wt=new WeakMap,yt=new WeakMap,bt=new WeakMap,Mt=new WeakMap,Ct=new WeakMap,xt=new WeakMap,Et=new WeakMap,Wt=new WeakMap,St=new WeakMap,Lt=new WeakMap,Nt=new WeakMap,Bt=new WeakMap,Pt=new WeakMap,_t=new WeakMap,zt=new WeakMap,Rt=new WeakMap,Ot=new WeakMap,It=new WeakMap,Vt=new WeakMap,Dt=new WeakMap,Ft=new WeakMap,Yt=new WeakMap,Ht=new WeakMap,Kt=new WeakSet,Tt=new WeakMap,qt=new WeakMap,jt=new WeakMap,Ut=new WeakMap,Jt=new WeakMap,Xt=new WeakMap;class Zt extends f.N{constructor(){super(...arguments),(0,s.A)(this,Kt),(0,r.A)(this,pt,T(this)),(0,r.A)(this,kt,(q(this),j(this))),(0,r.A)(this,ft,(U(this),J(this))),(0,r.A)(this,At,(X(this),Z(this))),(0,r.A)(this,vt,($(this),G(this))),(0,r.A)(this,wt,(Q(this),ee(this))),(0,r.A)(this,yt,(te(this),ne(this))),(0,r.A)(this,bt,(ie(this),se(this))),(0,r.A)(this,Mt,(re(this),ae(this))),(0,r.A)(this,Ct,(oe(this),le(this))),(0,r.A)(this,xt,(ce(this),ue(this))),(0,r.A)(this,Et,(he(this),de(this))),(0,r.A)(this,Wt,(ge(this),me(this))),(0,r.A)(this,St,(pe(this),ke(this))),(0,r.A)(this,Lt,(fe(this),Ae(this))),(0,r.A)(this,Nt,(ve(this),we(this))),(0,r.A)(this,Bt,(ye(this),be(this))),(0,r.A)(this,Pt,(Me(this),Ce(this))),(0,r.A)(this,_t,(xe(this),Ee(this))),(0,r.A)(this,zt,(We(this),Se(this))),(0,r.A)(this,Rt,(Le(this),Ne(this))),(0,r.A)(this,Ot,(Be(this),Pe(this))),(0,r.A)(this,It,(_e(this),ze(this))),(0,r.A)(this,Vt,(Re(this),Oe(this))),(0,r.A)(this,Dt,(Ie(this),Ve(this))),(0,r.A)(this,Ft,(De(this),Fe(this))),(0,r.A)(this,Yt,(Ye(this),He(this))),(0,r.A)(this,Ht,(Ke(this),Te(this))),(0,r.A)(this,Tt,(Ue(this),Je(this))),(0,r.A)(this,qt,($e(this),e=>{var t;this.value=e,null===(t=this.getFormElement())||void 0===t||t.formStore.onChange(this.name,e),(0,o.A)(Kt,this,qe).emit(e)})),(0,r.A)(this,jt,(e=>{(0,o.A)(Kt,this,Xe).emit(e)})),(0,r.A)(this,Ut,Ge(this)),(0,r.A)(this,Jt,(tt(this),e=>{(0,o.A)(Kt,this,Qe).emit(e)})),(0,r.A)(this,Xt,(e=>{if("brick_next_yaml"===this.language||"yaml"===this.language)try{C().load(e)}catch{return"请填写正确的格式"}return""}))}get name(){return(0,c.A)(pt,this)}set name(e){(0,l.A)(pt,this,e)}get label(){return(0,c.A)(kt,this)}set label(e){(0,l.A)(kt,this,e)}get value(){return(0,c.A)(ft,this)}set value(e){(0,l.A)(ft,this,e)}get language(){return(0,c.A)(At,this)}set language(e){(0,l.A)(At,this,e)}get theme(){return(0,c.A)(vt,this)}set theme(e){(0,l.A)(vt,this,e)}get required(){return(0,c.A)(wt,this)}set required(e){(0,l.A)(wt,this,e)}get readOnly(){return(0,c.A)(yt,this)}set readOnly(e){(0,l.A)(yt,this,e)}get automaticLayout(){return(0,c.A)(bt,this)}set automaticLayout(e){(0,l.A)(bt,this,e)}get minLines(){return(0,c.A)(Mt,this)}set minLines(e){(0,l.A)(Mt,this,e)}get completers(){return(0,c.A)(Ct,this)}set completers(e){(0,l.A)(Ct,this,e)}get advancedCompleters(){return(0,c.A)(xt,this)}set advancedCompleters(e){(0,l.A)(xt,this,e)}get markers(){return(0,c.A)(Et,this)}set markers(e){(0,l.A)(Et,this,e)}get links(){return(0,c.A)(Wt,this)}set links(e){(0,l.A)(Wt,this,e)}get maxLines(){return(0,c.A)(St,this)}set maxLines(e){(0,l.A)(St,this,e)}get height(){return(0,c.A)(Lt,this)}set height(e){(0,l.A)(Lt,this,e)}get message(){return(0,c.A)(Nt,this)}set message(e){(0,l.A)(Nt,this,e)}get placeholder(){return(0,c.A)(Bt,this)}set placeholder(e){(0,l.A)(Bt,this,e)}get showExpandButton(){return(0,c.A)(Pt,this)}set showExpandButton(e){(0,l.A)(Pt,this,e)}get lineNumbers(){return(0,c.A)(_t,this)}set lineNumbers(e){(0,l.A)(_t,this,e)}get tokenConfig(){return(0,c.A)(zt,this)}set tokenConfig(e){(0,l.A)(zt,this,e)}get customValidationInBrickNextYaml(){return(0,c.A)(Rt,this)}set customValidationInBrickNextYaml(e){(0,l.A)(Rt,this,e)}get showCopyButton(){return(0,c.A)(Ot,this)}set showCopyButton(e){(0,l.A)(Ot,this,e)}get glyphMargin(){return(0,c.A)(It,this)}set glyphMargin(e){(0,l.A)(It,this,e)}get extraLibs(){return(0,c.A)(Vt,this)}set extraLibs(e){(0,l.A)(Vt,this,e)}get fixedOverflowWidgets(){return(0,c.A)(Dt,this)}set fixedOverflowWidgets(e){(0,l.A)(Dt,this,e)}get spellCheck(){return(0,c.A)(Ft,this)}set spellCheck(e){(0,l.A)(Ft,this,e)}get knownWords(){return(0,c.A)(Yt,this)}set knownWords(e){(0,l.A)(Yt,this,e)}connectedCallback(){this.style.display||(this.style.display="block"),super.connectedCallback()}render(){return d().createElement(ot,{exportparts:"message",curElement:this,formElement:this.getFormElement(),name:this.name,label:this.label,required:this.required,helpBrick:this.helpBrick,labelBrick:this.labelBrick,notRender:this.notRender,validator:(0,c.A)(Xt,this)},d().createElement($t,{value:this.value,language:this.language,readOnly:this.readOnly,theme:this.theme,automaticLayout:this.automaticLayout,minLines:this.minLines,maxLines:this.maxLines,height:this.height,completers:this.completers,advancedCompleters:this.advancedCompleters,extraLibs:this.extraLibs,markers:this.markers,links:this.links,tokenConfig:this.tokenConfig,lineNumbers:this.lineNumbers,glyphMargin:this.glyphMargin,placeholder:this.placeholder,showCopyButton:this.showCopyButton,showExpandButton:this.showExpandButton,validateState:this.validateState,onChange:(0,c.A)(qt,this),onUserInput:(0,c.A)(jt,this),onTokenClick:(0,c.A)(Jt,this),customValidationInBrickNextYaml:this.customValidationInBrickNextYaml,fixedOverflowWidgets:this.fixedOverflowWidgets,spellCheck:this.spellCheck,knownWords:this.knownWords}))}}function $t(e){let{value:t,language:n,theme:i,minLines:s,maxLines:r,height:a,automaticLayout:o,completers:l,advancedCompleters:c,markers:u,readOnly:g,links:m,extraLibs:p,tokenConfig:f,showExpandButton:v,showCopyButton:w=!0,lineNumbers:y="on",glyphMargin:b=!1,placeholder:M,validateState:C,onChange:_,onTokenClick:D,customValidationInBrickNextYaml:F,fixedOverflowWidgets:Y,spellCheck:K,knownWords:T}=e;const q=null!=t?t:"",j=null!=n?n:"plaintext",U=null!=i?i:"auto",J=null!=s?s:3,X=null!=r?r:1/0,Z=null!=a?a:500,$=null==Y||Y,G=null==K||K,[Q,ee]=(0,h.useState)(!1),te=(0,h.useMemo)((()=>(0,x.uniqueId)("worker")),[]),{t:ne}=(0,B.useTranslation)(P.NS),ie=(0,h.useRef)(null),se=(0,h.useRef)(),re=(0,h.useRef)(),ae=(0,h.useRef)({width:300,height:Gt(q,J,X)}),[oe,le]=(0,h.useState)(),ce=(0,h.useRef)(o),ue=(0,k.useCurrentTheme)(),he="auto"===U?"dark"===ue||"dark-v2"===ue?"vs-dark":"vs":U,de="vs-dark"===he||"hc-black"===he;(0,h.useEffect)((()=>{const e=de?"#FFFFFF0F":"#0000000A";A.editor.defineTheme("custom-theme",{base:he,inherit:!0,rules:[],colors:{"editor.lineHighlightBackground":`${e}`}}),A.editor.setTheme("custom-theme")}),[he,de]),(0,h.useEffect)((()=>{if(re.current){const e=re.current.getModel();A.editor.setModelLanguage(e,j)}}),[j]),(0,h.useEffect)((()=>{if("brick_next_yaml"===j){const e=(0,W.v)(l,Array.isArray(c)?void 0:c,te,f),t=A.languages.registerCompletionItemProvider("brick_next_yaml",{provideCompletionItems:e,triggerCharacters:[".",":","<"]});return()=>{t.dispose()}}}),[l,c,j,te,f]),(0,h.useEffect)((()=>{if(Array.isArray(c)&&c.length>0&&it.includes(j)){const e=A.languages.registerCompletionItemProvider(j,(0,H.MY)(j,te,c));return()=>{e.dispose()}}}),[j,c,te]),(0,h.useEffect)((()=>{const e=re.current;if(e){const t=e.getModel();null!=t&&t.getValue&&q!==t.getValue()&&t.setValue(q)}}),[q]),(0,h.useLayoutEffect)((()=>{var e;if("fit-content"!==ce.current||!ie.current)return;ae.current.width=ie.current.getBoundingClientRect().width,null===(e=re.current)||void 0===e||e.layout(ae.current);const t=new ResizeObserver((e=>{for(const n of e)if(n.target===ie.current){const e=n.contentBoxSize?n.contentBoxSize[0]?n.contentBoxSize[0].inlineSize:n.contentBoxSize.inlineSize:n.contentRect.width,i=n.contentBoxSize?n.contentBoxSize[0]?n.contentBoxSize[0].blockSize:n.contentBoxSize.blockSize:n.contentRect.height;var t;(e!==ae.current.width||Q)&&(ae.current.width=e,null===(t=re.current)||void 0===t||t.layout({width:e,height:Q?i:ae.current.height}));break}}));return t.observe(ie.current),()=>{t.disconnect()}}),[Q]),(0,h.useLayoutEffect)((()=>{if("fit-container"!==ce.current)return;const e=function(e){let t=e;for(;t;){const e="vs.code-editor"===t.tagName.toLowerCase();if(t=t.parentElement,e)return t}}(ie.current);if(!e)return;const t=new ResizeObserver((()=>{le(e.offsetHeight)}));return t.observe(e),()=>{t.disconnect()}}),[]),(0,h.useEffect)((()=>{"fit-container"!==ce.current&&"fit-content"!==ce.current&&le(Z)}),[Z]),(0,h.useEffect)((()=>{re.current&&re.current.updateOptions({readOnly:g,lineNumbersMinChars:Q?5:3})}),[g,Q]),(0,h.useEffect)((()=>{if(re.current||!ie.current)return;const e=A.editor.createModel(q,j);if("brick_next_yaml"===j){const t=(0,L.AR)(e.uri);A.editor.createModel(q,"javascript",t),A.languages.typescript.javascriptDefaults.addExtraLib((0,L.Eh)(),e.uri.toString()+"d.ts")}re.current=A.editor.create(ie.current,{extraEditorClassName:"monaco-editor-v3",model:e,minimap:{enabled:!1,showRegionSectionHeaders:!1,showMarkSectionHeaders:!1},scrollBeyondLastLine:!1,tabSize:2,insertSpaces:!0,automaticLayout:"fit-content"!==ce.current,fontSize:E.yU,lineHeight:E.fE,scrollbar:{horizontalScrollbarSize:E.lP,verticalScrollbarSize:E.lP,horizontalSliderSize:8,verticalSliderSize:8,alwaysConsumeMouseWheel:!1},padding:{top:E.Vu,bottom:"fit-content"==ce.current?void 0:E.Vu},overviewRulerBorder:!1,mouseWheelScrollSensitivity:.5,fixedOverflowWidgets:$,lineNumbers:y,lineNumbersMinChars:3,glyphMargin:b,folding:"off"!==y,suggest:{insertMode:"insert",preview:!0},readOnly:g,quickSuggestions:{strings:!0,other:!0,comments:!0},renderLineHighlightOnlyWhenFocus:!0,unicodeHighlight:{ambiguousCharacters:!1}}),se.current=re.current.createDecorationsCollection()}),[]),(0,h.useEffect)((()=>{const e=null!=p?p:[],t="typescript"===j?"typescriptDefaults":"javascriptDefaults",n=(0,N.m)(e,{languageDefaults:t});return()=>{for(const e of n)e.dispose()}}),[p,j]),(0,h.useEffect)((()=>{const e=re.current;if("brick_next_yaml"===j&&e){const t=e.getModel(),n=e.onMouseDown((function(e){var n,i;const s=se.current;(null!==(n=null==s||null===(i=s.getRanges)||void 0===i?void 0:i.call(s))&&void 0!==n?n:[]).forEach((n=>{const i=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey";n&&e.target.position&&e.event[i]&&n.containsPosition(e.target.position)&&D(t.getValueInRange(n))}))})),i=e.onMouseMove((function(e){const t=se.current;t&&t.getRanges().forEach((n=>{const i=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey";if(n&&e.target.position&&e.event[i]&&n.containsPosition(e.target.position)){const e=t.getRanges().map((e=>({range:e,options:{inlineClassName:n.equalsRange(e)?"highlight pointer":"highlight"}})));t.set(e)}else if(!e.event[i]){const e=t.getRanges().map((e=>({range:e,options:{inlineClassName:"highlight"}})));t.set(e)}}))}));return()=>{null==i||i.dispose(),null==n||n.dispose()}}}),[j,D,ue,U]),(0,h.useEffect)((()=>{const e=re.current;if(!e||!ie.current||"fit-content"!==ce.current)return;const t=e.onDidContentSizeChange((t=>{if(!Q&&t.contentHeightChanged){const n=Qt(t.contentHeight,J,X);n!==ae.current.height&&(ae.current.height=n,e.layout(ae.current))}})),n=Qt(e.getContentHeight(),J,X);return n!==ae.current.height&&(ae.current.height=n,e.layout(ae.current)),()=>{t.dispose()}}),[X,J,Q]);const ge=(0,h.useCallback)((async(e,t)=>{A.editor.setModelMarkers(e,"semantic_validate",[]);const n=e.findPreviousMatch("<%[~=]?",t,!0,!1,null,!1),i=e.findNextMatch("%>",t,!1,!1,null,!1),s=null==n?void 0:n.range,r=null==i?void 0:i.range;if(s&&r){const n=new A.Range(s.startLineNumber,s.endColumn,r.startLineNumber,r.startColumn),i=e.getValueInRange(n);if(n.containsPosition(t)&&!/<% | %>/.test(i)){const t=(0,L.AR)(e.uri);A.editor.getModel(t).setValue(i);const r=e.getOffsetAt(new A.Position(s.startLineNumber,s.endColumn));if(R.b.getInstance(te).updateState({content:i,range:n,offset:r}),!F)return;const a=await A.languages.typescript.getJavaScriptWorker(),o=await a(t),l=(await o.getSemanticDiagnostics(t.toString())).map((t=>{var n;const i=r+(null!==(n=t.start)&&void 0!==n?n:0),s=e.getPositionAt(i);return{startLineNumber:s.lineNumber,startColumn:s.column,endLineNumber:s.lineNumber,endColumn:s.column+t.length,message:t.messageText,severity:A.MarkerSeverity.Warning}}));A.editor.setModelMarkers(e,"semantic_validate",l)}}}),[te]);(0,h.useEffect)((()=>{if(!re.current)return;const e=re.current.getModel(),t=e.onDidChangeContent((async t=>{(0,S.J)(te),["brick_next_yaml"].includes(j)&&ge(e,re.current.getPosition()),t.isFlush||_(e.getValue())}));return()=>{t.dispose()}}),[_,te,j,ge]),(0,h.useEffect)((()=>{if(Q){const e=t=>{"Escape"!==t.key&&"Esc"!==t.key||(window.removeEventListener("keydown",e),ee(!1))};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}}}),[Q]),(0,h.useEffect)((()=>()=>{var e,t;null===(e=re.current)||void 0===e||null===(e=e.getModel())||void 0===e||e.dispose(),null===(t=re.current)||void 0===t||t.dispose()}),[]),(0,h.useEffect)((()=>{if(!re.current&&!M)return;const e=new O.j(M,re.current,de?"rgba(174,174,175,0.4)":"rgba(89,89,89,0.4)");return()=>{e.dispose()}}),[M,de]);const me=(0,h.useCallback)((()=>{if(re.current){const e=re.current.getModel();ut(e.getValue()).then((()=>ht({type:"success",message:ne(P.K.COPY_SUCCESS)}))).catch((()=>ht({type:"error",message:ne(P.K.COPY_FAILED)})))}}),[ne]),pe=(0,h.useCallback)((()=>{ee(!Q)}),[Q]);return(0,h.useEffect)((()=>{const e=re.current;if(!e||"brick_next_yaml"!==j)return;let t=!1;const n=(0,x.debounce)((async()=>{var n;const i=await(0,I.K)();if(t)return;const{lintMarkers:s,lintDecorations:r}=await i.lint({source:e.getValue(),links:m,markers:u}),a=e.getModel();!t&&a&&(A.editor.setModelMarkers(a,gt,s.map((e=>{let{start:t,end:n,message:i,severity:s,code:r}=e;const o=a.getPositionAt(t),l=a.getPositionAt(n);return{startLineNumber:o.lineNumber,startColumn:o.column,endLineNumber:l.lineNumber,endColumn:l.column,severity:A.MarkerSeverity[s],message:i,code:r}}))),null===(n=se.current)||void 0===n||n.set(r.map((e=>{let{start:t,end:n,options:i}=e;return{range:A.Range.fromPositions(a.getPositionAt(t),a.getPositionAt(n)),options:i}}))))}),200),i=e.onDidChangeModelContent(n);return n(),()=>{t=!0,i.dispose(),A.editor.setModelMarkers(e.getModel(),gt,[])}}),[j,m,u,U,te]),(0,h.useEffect)((()=>{const e=re.current;if(!e||!G)return;let t=!1;const n=(0,x.debounce)((async()=>{const n=await(0,V.n)();if(t)return;const{markers:i}=await n.spellCheck({source:e.getValue(),knownWords:T}),s=e.getModel();!t&&s&&A.editor.setModelMarkers(s,dt,i.map((e=>{let{start:t,end:n,message:i,severity:r}=e;const a=s.getPositionAt(t),o=s.getPositionAt(n);return{startLineNumber:a.lineNumber,startColumn:a.column,endLineNumber:o.lineNumber,endColumn:o.column,severity:A.MarkerSeverity[r],message:i}})))}),200),i=e.onDidChangeModelContent(n);return n(),()=>{t=!0,i.dispose(),A.editor.setModelMarkers(e.getModel(),dt,[])}}),[G,T]),d().createElement("div",{className:z()("code-editor-wrapper",{expanded:Q,error:"error"===C})},d().createElement("div",{ref:ie,style:{height:Q?"100%":oe,overflow:Q?"scroll":""}}),d().createElement("div",{className:"toolbar-wrapper"},d().createElement("div",{className:"toolbar sticky"},w&&d().createElement(lt,{content:ne(P.K.COPY)},d().createElement(ct,{className:"copy-icon",icon:"copy",lib:"antd",theme:"outlined",onClick:me})),v&&d().createElement(lt,{content:ne(Q?P.K.COLLAPSE:P.K.EXPAND)},d().createElement(ct,{className:"expand-icon",icon:Q?"compress":"expand",lib:"antd",theme:"outlined",onClick:pe})))))}function Gt(e,t,n){return en(Math.min(n,Math.max(t,e.split("\n").length)))}function Qt(e,t,n){let i=e;return(e-E.Vu)%E.fE==0&&(i=e+E.lP),Math.min(en(n),Math.max(i,en(t)))}function en(e){return e*E.fE+E.lP+E.Vu}i=Zt,({e:[T,q,j,U,J,X,Z,$,G,Q,ee,te,ne,ie,se,re,ae,oe,le,ce,ue,he,de,ge,me,pe,ke,fe,Ae,ve,we,ye,be,Me,Ce,xe,Ee,We,Se,Le,Ne,Be,Pe,_e,ze,Re,Oe,Ie,Ve,De,Fe,Ye,He,Ke,Te,qe,je,Ue,Je,Xe,Ze,$e,Ge,Qe,et,tt],c:[mt,K]}=(0,u.A)(i,[st("vs.code-editor",{shadowOptions:!1})],[[rt(),1,"name"],[rt(),1,"label"],[rt(),1,"value"],[rt(),1,"language"],[rt(),1,"theme"],[rt({type:Boolean}),1,"required"],[rt({type:Boolean}),1,"readOnly"],[rt(),1,"automaticLayout"],[rt({type:Number}),1,"minLines"],[rt({attribute:!1}),1,"completers"],[rt({attribute:!1}),1,"advancedCompleters"],[rt({attribute:!1}),1,"markers"],[rt({attribute:!1}),1,"links"],[rt({type:Number}),1,"maxLines"],[rt({attribute:!1}),1,"height"],[rt(),1,"message"],[rt(),1,"placeholder"],[rt({type:Boolean}),1,"showExpandButton"],[rt(),1,"lineNumbers"],[rt({attribute:!1}),1,"tokenConfig"],[rt({type:Boolean}),1,"customValidationInBrickNextYaml"],[rt({type:Boolean}),1,"showCopyButton"],[rt({type:Boolean}),1,"glyphMargin"],[rt({attribute:!1}),1,"extraLibs"],[rt({type:Boolean}),1,"fixedOverflowWidgets"],[rt({type:Boolean}),1,"spellCheck"],[rt({attribute:!1}),1,"knownWords"],[at({type:"code.change"}),1,"codeChange",e=>(0,c.A)(Ht,e),(e,t)=>(0,l.A)(Ht,e,t)],[at({type:"user.input"}),1,"userInput",e=>(0,c.A)(Tt,e),(e,t)=>(0,l.A)(Tt,e,t)],[at({type:"token.click"}),1,"tokenClickEvent",e=>(0,c.A)(Ut,e),(e,t)=>(0,l.A)(Ut,e,t)]],0,(e=>Xt.has((0,a.A)(e))),f.N)),K()}}]);
2
+ //# sourceMappingURL=7242.43943ae7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/7242.43943ae7.js","mappings":"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","sources":["webpack:///./src/code-editor/index.tsx"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { unwrapProvider } from \"@next-core/utils/general\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"@next-bricks/form/form-item\";\nimport * as monaco from \"monaco-editor/esm/vs/editor/editor.api.js\";\nimport { register as registerJavaScript } from \"@next-core/monaco-contributions/javascript\";\nimport { register as registerTypeScript } from \"@next-core/monaco-contributions/typescript\";\nimport { register as registerYaml } from \"@next-core/monaco-contributions/yaml\";\nimport { register as registerHtml } from \"@next-core/monaco-contributions/html\";\nimport yaml from \"js-yaml\";\nimport \"@next-core/theme\";\nimport { uniqueId, debounce } from \"lodash\";\nimport {\n EDITOR_SCROLLBAR_SIZE,\n EDITOR_PADDING_VERTICAL,\n EDITOR_LINE_HEIGHT,\n EDITOR_FONT_SIZE,\n} from \"./constants.js\";\nimport {\n AdvancedCompleterMap,\n ExtraLib,\n type MixedCompleter,\n} from \"./interfaces.js\";\nimport { brickNextYAMLProviderCompletionItems } from \"./utils/brickNextYaml.js\";\nimport { Level } from \"./utils/constants.js\";\nimport { setEditorId } from \"./utils/editorId.js\";\nimport {\n getEmbeddedJavascriptUri,\n getBrickYamlBuiltInDeclare,\n} from \"./utils/jsSuggestInBrickYaml.js\";\nimport { addExtraLibs } from \"./utils/addExtraLibs.js\";\nimport type { EoTooltip, ToolTipProps } from \"@next-bricks/basic/tooltip\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport type { copyToClipboard as _copyToClipboard } from \"@next-bricks/basic/data-providers/copy-to-clipboard\";\nimport type { showNotification as _showNotification } from \"@next-bricks/basic/data-providers/show-notification/show-notification\";\nimport classNames from \"classnames\";\nimport \"./index.css\";\nimport { EmbeddedModelContext } from \"./utils/embeddedModelState.js\";\nimport { PlaceholderContentWidget } from \"./widget/Placeholder.js\";\nimport { getRemoteYamlLinterWorker } from \"./workers/yamlLinter.js\";\nimport { getRemoteSpellCheckWorker } from \"./workers/spellCheckRemoteWorker.js\";\nimport { register as registerCel } from \"./languages/cel.js\";\nimport { register as registerCelYaml } from \"./languages/cel-yaml.js\";\nimport { register as registerCelStr } from \"./languages/cel-str.js\";\nimport {\n provideEmbeddedCelCompletionItems,\n celCommonCompletionProviderFactory,\n celSpecificCompletionProviderFactory,\n} from \"./utils/celCompletionProvider.js\";\n\ninitializeReactI18n(NS, locales);\n\nregisterJavaScript(monaco);\nregisterTypeScript(monaco);\nregisterYaml(monaco, \"brick_next_yaml\");\nregisterHtml(monaco);\nregisterCel(monaco);\nregisterCelYaml(monaco);\nregisterCelStr(monaco);\n\nconst EMBEDDED_CEL = [\"cel_yaml\", \"cel_str\"];\nconst CEL_FAMILY = [\"cel\", ...EMBEDDED_CEL];\nfor (const lang of EMBEDDED_CEL) {\n monaco.languages.registerCompletionItemProvider(lang, {\n triggerCharacters: [\"<\"],\n provideCompletionItems: provideEmbeddedCelCompletionItems,\n });\n}\n\nfor (const lang of CEL_FAMILY) {\n monaco.languages.registerCompletionItemProvider(\n lang,\n celCommonCompletionProviderFactory(lang)\n );\n}\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\nconst WrappedTooltip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst copyToClipboard = unwrapProvider<typeof _copyToClipboard>(\n \"basic.copy-to-clipboard\"\n);\nconst showNotification = unwrapProvider<typeof _showNotification>(\n \"basic.show-notification\"\n);\n\nconst SPELL_CHECK = \"spell_check\";\nconst BRICK_NEXT_YAML_LINT = \"brick_next_yaml_lint\";\n\nexport interface CodeEditorProps {\n name?: string;\n label?: string;\n value?: string;\n language?: string;\n theme?: string;\n placeholder?: string;\n required?: boolean;\n readOnly?: boolean;\n automaticLayout?: \"fit-container\" | \"fit-content\" | \"none\";\n minLines?: number;\n maxLines?: number;\n height?: string | number;\n completers?: monaco.languages.CompletionItem[];\n tokenConfig?: TokenConfig;\n advancedCompleters?: AdvancedCompleterMap | MixedCompleter[];\n extraLibs?: ExtraLib[];\n markers?: Marker[];\n links?: string[];\n showExpandButton?: boolean;\n showCopyButton?: boolean;\n lineNumbers?: monaco.editor.LineNumbersType;\n glyphMargin?: boolean;\n validateState?: string;\n customValidationInBrickNextYaml?: boolean;\n fixedOverflowWidgets?: boolean;\n spellCheck?: boolean;\n knownWords?: string[];\n}\n\nexport interface Marker {\n token: string;\n level?: keyof typeof Level;\n message?: string;\n code?: {\n value: string;\n target: string;\n };\n params?: string[];\n}\n\nexport type TokenConfig = {\n showDSKey?: boolean;\n};\n\n/**\n * 构件代码编辑器\n * @category form-input-advanced\n */\nexport\n@defineElement(\"vs.code-editor\", {\n // There are a few issues for monaco-editor with shadow DOM.\n // So we use light DOM for now.\n // See https://github.com/microsoft/monaco-editor/issues?q=is%3Aissue+is%3Aopen+shadow+dom\n shadowOptions: false,\n})\nclass CodeEditor extends FormItemElementBase implements CodeEditorProps {\n @property()\n accessor name: string | undefined;\n\n @property()\n accessor label: string | undefined;\n\n @property()\n accessor value: string | undefined;\n\n /**\n * @default \"plaintext\"\n */\n @property()\n accessor language: string | undefined;\n\n /**\n * 主题,支持 `\"auto\" | \"vs\" | \"vs-dark\"`\n *\n * @default \"auto\"\n * @group ui\n */\n @property() accessor theme: string | undefined;\n\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n @property({\n type: Boolean,\n })\n accessor readOnly: boolean | undefined;\n\n @property()\n accessor automaticLayout:\n | \"fit-container\"\n | \"fit-content\"\n | \"none\"\n | undefined;\n\n /**\n * @default 3\n */\n @property({ type: Number })\n accessor minLines: number | undefined;\n\n /**\n * 仅对 language 为 brick_next_yaml 有效,设置第一层属性名的自动补全。\n */\n @property({\n attribute: false,\n })\n accessor completers: monaco.languages.CompletionItem[] | undefined;\n\n /**\n * 高级自动补全配置。\n * - 设置为键值对时,仅对 language 为 brick_next_yaml 有效,设置任意的自动补全;\n * - 设置为数组时,当前仅对 language 为 cel 有效。\n * 未来将统一改为数组格式,废弃键值对格式的配置。\n */\n @property({\n attribute: false,\n })\n accessor advancedCompleters:\n | AdvancedCompleterMap\n | MixedCompleter[]\n | undefined;\n\n @property({ attribute: false })\n accessor markers: Marker[] | undefined;\n\n @property({ attribute: false })\n accessor links: string[] | undefined;\n\n /**\n * @default Infinity\n */\n @property({ type: Number })\n accessor maxLines: number | undefined;\n\n @property({ attribute: false })\n accessor height: string | number | undefined;\n\n @property()\n accessor message: string | undefined;\n\n @property()\n accessor placeholder: string | undefined;\n\n /**\n * 是否展示展开按钮\n */\n @property({ type: Boolean })\n accessor showExpandButton: boolean | undefined;\n\n /**\n * 行数配置\n */\n @property()\n accessor lineNumbers: monaco.editor.LineNumbersType | undefined;\n\n /**\n * 自定义高亮配置\n */\n @property({\n attribute: false,\n })\n accessor tokenConfig: TokenConfig | undefined;\n\n /**\n * 在 brick_next_yaml 中是否开启语义相关校验\n * @default false\n */\n @property({\n type: Boolean,\n })\n accessor customValidationInBrickNextYaml: boolean | undefined;\n\n /**\n * 是否展示复制按钮\n * @default true\n */\n @property({ type: Boolean })\n accessor showCopyButton: boolean | undefined;\n\n /**\n * 显示字形边距\n * @default false\n */\n @property({ type: Boolean })\n accessor glyphMargin: boolean | undefined;\n\n /**\n * 额外声明的 lib 库\n */\n @property({\n attribute: false,\n })\n accessor extraLibs: ExtraLib[] | undefined;\n\n /**\n * @default true\n */\n @property({ type: Boolean })\n accessor fixedOverflowWidgets: boolean | undefined;\n\n /**\n * 是否启用英语拼写检查\n * @default true\n */\n @property({ type: Boolean })\n accessor spellCheck: boolean | undefined;\n\n /**\n * 启用英语拼写检查时,除系统设置的词汇表外,指定其他的已知单词(小写)。\n */\n @property({ attribute: false })\n accessor knownWords: string[] | undefined;\n\n @event({ type: \"code.change\" })\n accessor #codeChange!: EventEmitter<string>;\n\n @event({ type: \"user.input\" })\n accessor #userInput!: EventEmitter<any>;\n\n #handleChange = (value: string) => {\n this.value = value;\n this.getFormElement()?.formStore.onChange(this.name!, value);\n this.#codeChange.emit(value);\n };\n\n #handleUserInput = (value: any) => {\n this.#userInput.emit(value);\n };\n\n @event({ type: \"token.click\" })\n accessor #tokenClickEvent!: EventEmitter<string>;\n\n #handleTokenClick = (word: string) => {\n this.#tokenClickEvent.emit(word);\n };\n\n #handleValidator = (value: string) => {\n if (this.language === \"brick_next_yaml\" || this.language === \"yaml\") {\n try {\n yaml.load(value);\n } catch {\n return \"请填写正确的格式\";\n }\n }\n return \"\";\n };\n\n connectedCallback(): void {\n // Don't override user's style settings.\n // istanbul ignore else\n if (!this.style.display) {\n this.style.display = \"block\";\n }\n super.connectedCallback();\n }\n\n render() {\n return (\n <WrappedFormItem\n exportparts=\"message\"\n curElement={this}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n required={this.required}\n helpBrick={this.helpBrick}\n labelBrick={this.labelBrick}\n notRender={this.notRender}\n validator={this.#handleValidator}\n >\n <CodeEditorComponent\n value={this.value}\n language={this.language}\n readOnly={this.readOnly}\n theme={this.theme}\n automaticLayout={this.automaticLayout}\n minLines={this.minLines}\n maxLines={this.maxLines}\n height={this.height}\n completers={this.completers}\n advancedCompleters={this.advancedCompleters}\n extraLibs={this.extraLibs}\n markers={this.markers}\n links={this.links}\n tokenConfig={this.tokenConfig}\n lineNumbers={this.lineNumbers}\n glyphMargin={this.glyphMargin}\n placeholder={this.placeholder}\n showCopyButton={this.showCopyButton}\n showExpandButton={this.showExpandButton}\n validateState={this.validateState}\n onChange={this.#handleChange}\n onUserInput={this.#handleUserInput}\n onTokenClick={this.#handleTokenClick}\n customValidationInBrickNextYaml={this.customValidationInBrickNextYaml}\n fixedOverflowWidgets={this.fixedOverflowWidgets}\n spellCheck={this.spellCheck}\n knownWords={this.knownWords}\n />\n </WrappedFormItem>\n );\n }\n}\n\nexport function CodeEditorComponent({\n value: _value,\n language: _language,\n theme: _theme,\n minLines: _minLines,\n maxLines: _maxLines,\n height: _height,\n automaticLayout,\n completers,\n advancedCompleters,\n markers,\n readOnly,\n links,\n extraLibs,\n tokenConfig,\n showExpandButton,\n showCopyButton = true,\n lineNumbers = \"on\",\n glyphMargin = false,\n placeholder,\n validateState,\n onChange,\n // onUserInput,\n onTokenClick,\n customValidationInBrickNextYaml,\n fixedOverflowWidgets: _fixedOverflowWidgets,\n spellCheck: _spellCheck,\n knownWords,\n}: CodeEditorProps & {\n onChange(value: string): void;\n onUserInput: (value: any) => void;\n onTokenClick(word: string): void;\n}) {\n const value = _value ?? \"\";\n const language = _language ?? \"plaintext\";\n const theme = _theme ?? \"auto\";\n const minLines = _minLines ?? 3;\n const maxLines = _maxLines ?? Infinity;\n const height = _height ?? 500;\n const fixedOverflowWidgets = _fixedOverflowWidgets ?? true;\n const spellCheck = _spellCheck ?? true;\n const [expanded, setExpanded] = useState(false);\n const workerId = useMemo(() => uniqueId(\"worker\"), []);\n\n const { t } = useTranslation(NS);\n\n const containerRef = useRef<HTMLDivElement>(null);\n const decorationsCollection =\n useRef<monaco.editor.IEditorDecorationsCollection>();\n const editorRef = useRef<monaco.editor.IStandaloneCodeEditor>();\n const size = useRef<monaco.editor.IDimension>({\n width: 300,\n height: getContentHeightByCode(value, minLines, maxLines),\n });\n const [actualHeight, setActualHeight] = useState<string | number>();\n // `automaticLayout` should never change\n const automaticLayoutRef = useRef(automaticLayout);\n const systemTheme = useCurrentTheme();\n\n const computedTheme =\n theme === \"auto\"\n ? systemTheme === \"dark\" || systemTheme === \"dark-v2\"\n ? \"vs-dark\"\n : \"vs\"\n : theme;\n const isDarkTheme =\n computedTheme === \"vs-dark\" || computedTheme === \"hc-black\";\n\n useEffect(() => {\n const lineHighlightBackground = isDarkTheme ? \"#FFFFFF0F\" : \"#0000000A\";\n monaco.editor.defineTheme(\"custom-theme\", {\n base: computedTheme as \"vs-dark\" | \"vs\",\n inherit: true,\n rules: [],\n colors: {\n \"editor.lineHighlightBackground\": `${lineHighlightBackground}`,\n },\n });\n // Currently theme is configured globally.\n // See https://github.com/microsoft/monaco-editor/issues/338\n monaco.editor.setTheme(\"custom-theme\");\n }, [computedTheme, isDarkTheme]);\n\n useEffect(() => {\n if (editorRef.current) {\n const currentModel = editorRef.current.getModel()!;\n monaco.editor.setModelLanguage(currentModel, language);\n }\n }, [language]);\n\n useEffect(() => {\n if (language === \"brick_next_yaml\") {\n const provideCompletionItems = brickNextYAMLProviderCompletionItems(\n completers,\n Array.isArray(advancedCompleters) ? undefined : advancedCompleters,\n workerId,\n tokenConfig\n );\n const monacoProviderRef = monaco.languages.registerCompletionItemProvider(\n \"brick_next_yaml\",\n {\n provideCompletionItems,\n triggerCharacters: [\".\", \":\", \"<\"],\n } as monaco.languages.CompletionItemProvider\n );\n return () => {\n monacoProviderRef.dispose();\n };\n }\n }, [completers, advancedCompleters, language, workerId, tokenConfig]);\n\n useEffect(() => {\n if (\n Array.isArray(advancedCompleters) &&\n advancedCompleters.length > 0 &&\n CEL_FAMILY.includes(language)\n ) {\n const disposable = monaco.languages.registerCompletionItemProvider(\n language,\n celSpecificCompletionProviderFactory(\n language,\n workerId,\n advancedCompleters\n )\n );\n return () => {\n disposable.dispose();\n };\n }\n }, [language, advancedCompleters, workerId]);\n\n useEffect(() => {\n const editor = editorRef.current;\n if (editor) {\n const currentModel = editor.getModel();\n if (currentModel?.getValue && value !== currentModel.getValue()) {\n currentModel.setValue(value as string);\n }\n }\n }, [value]);\n\n useLayoutEffect(() => {\n if (automaticLayoutRef.current !== \"fit-content\" || !containerRef.current) {\n return;\n }\n\n size.current.width = containerRef.current.getBoundingClientRect().width;\n editorRef.current?.layout(size.current);\n\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === containerRef.current) {\n // istanbul ignore next: compatibility\n const newWidth = entry.contentBoxSize\n ? entry.contentBoxSize[0]\n ? entry.contentBoxSize[0].inlineSize\n : (entry.contentBoxSize as unknown as ResizeObserverSize)\n .inlineSize\n : entry.contentRect.width;\n // istanbul ignore next: compatibility\n const newHeight = entry.contentBoxSize\n ? entry.contentBoxSize[0]\n ? entry.contentBoxSize[0].blockSize\n : (entry.contentBoxSize as unknown as ResizeObserverSize)\n .blockSize\n : entry.contentRect.height;\n if (newWidth !== size.current.width || expanded) {\n size.current.width = newWidth;\n editorRef.current?.layout({\n width: newWidth,\n height: expanded ? newHeight : size.current.height,\n });\n }\n break;\n }\n }\n });\n observer.observe(containerRef.current);\n\n return () => {\n observer.disconnect();\n };\n }, [expanded]);\n\n useLayoutEffect(() => {\n if (automaticLayoutRef.current !== \"fit-container\") {\n return;\n }\n\n const container = getDOMContainer(containerRef.current);\n if (!container) {\n return;\n }\n // Manually layout the editor once the container resized.\n const observer = new ResizeObserver((): void => {\n setActualHeight(container.offsetHeight);\n });\n observer.observe(container);\n return () => {\n observer.disconnect();\n };\n }, []);\n\n useEffect(() => {\n if (\n automaticLayoutRef.current !== \"fit-container\" &&\n automaticLayoutRef.current !== \"fit-content\"\n ) {\n setActualHeight(height);\n }\n }, [height]);\n\n useEffect(() => {\n if (!editorRef.current) return;\n editorRef.current.updateOptions({\n readOnly,\n lineNumbersMinChars: expanded ? 5 : 3,\n });\n }, [readOnly, expanded]);\n\n useEffect(() => {\n if (editorRef.current || !containerRef.current) {\n return;\n }\n const model = monaco.editor.createModel(value, language);\n if (language === \"brick_next_yaml\") {\n // 注册嵌套的 model, language 为 js\n const uri = getEmbeddedJavascriptUri(model.uri);\n monaco.editor.createModel(value, \"javascript\", uri);\n monaco.languages.typescript.javascriptDefaults.addExtraLib(\n getBrickYamlBuiltInDeclare(),\n model.uri.toString() + \"d.ts\"\n );\n }\n\n editorRef.current = monaco.editor.create(containerRef.current, {\n extraEditorClassName: \"monaco-editor-v3\",\n model,\n minimap: {\n enabled: false,\n showRegionSectionHeaders: false,\n showMarkSectionHeaders: false,\n },\n scrollBeyondLastLine: false,\n tabSize: 2,\n insertSpaces: true,\n automaticLayout: automaticLayoutRef.current !== \"fit-content\",\n fontSize: EDITOR_FONT_SIZE,\n lineHeight: EDITOR_LINE_HEIGHT,\n scrollbar: {\n horizontalScrollbarSize: EDITOR_SCROLLBAR_SIZE,\n verticalScrollbarSize: EDITOR_SCROLLBAR_SIZE,\n horizontalSliderSize: 8,\n verticalSliderSize: 8,\n alwaysConsumeMouseWheel: false,\n },\n padding: {\n top: EDITOR_PADDING_VERTICAL,\n // When use `fit-content`, we always plus the height with the vertical padding.\n // Thus the possible x-scrollbar will not take extra space at the bottom.\n bottom:\n automaticLayoutRef.current == \"fit-content\"\n ? undefined\n : EDITOR_PADDING_VERTICAL,\n },\n overviewRulerBorder: false,\n mouseWheelScrollSensitivity: 0.5,\n fixedOverflowWidgets,\n lineNumbers: lineNumbers,\n lineNumbersMinChars: 3,\n glyphMargin,\n folding: lineNumbers !== \"off\",\n suggest: {\n insertMode: \"insert\",\n preview: true,\n },\n readOnly: readOnly,\n quickSuggestions: { strings: true, other: true, comments: true },\n renderLineHighlightOnlyWhenFocus: true,\n unicodeHighlight: {\n ambiguousCharacters: false,\n },\n });\n\n decorationsCollection.current =\n editorRef.current.createDecorationsCollection();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const libs: ExtraLib[] = extraLibs ?? [];\n\n const languageDefaults =\n language === \"typescript\" ? \"typescriptDefaults\" : \"javascriptDefaults\";\n const disposables = addExtraLibs(libs, {\n languageDefaults,\n });\n return () => {\n for (const item of disposables) {\n item.dispose();\n }\n };\n }, [extraLibs, language]);\n\n useEffect(() => {\n const editor = editorRef.current;\n if (language === \"brick_next_yaml\" && editor) {\n const model = editor.getModel()!;\n const editorMouseDownEvent = editor.onMouseDown(function (e) {\n const decorations = decorationsCollection.current;\n (decorations?.getRanges?.() ?? []).forEach((range) => {\n const modKey = /Mac|iPod|iPhone|iPad/.test(navigator.platform)\n ? \"metaKey\"\n : \"ctrlKey\";\n if (\n range &&\n e.target.position &&\n e.event[modKey] &&\n range.containsPosition(e.target.position)\n ) {\n onTokenClick(model.getValueInRange(range));\n }\n });\n });\n\n const mouseOverEvent = editor.onMouseMove(function (e) {\n const decorations = decorationsCollection.current;\n if (!decorations) return;\n decorations.getRanges().forEach((range) => {\n const modKey = /Mac|iPod|iPhone|iPad/.test(navigator.platform)\n ? \"metaKey\"\n : \"ctrlKey\";\n if (\n range &&\n e.target.position &&\n e.event[modKey] &&\n range.containsPosition(e.target.position)\n ) {\n const newDecorations = decorations.getRanges().map((item) => ({\n range: item,\n options: {\n inlineClassName: range.equalsRange(item)\n ? \"highlight pointer\"\n : \"highlight\",\n },\n }));\n decorations.set(newDecorations);\n } else if (!e.event[modKey]) {\n const newDecorations = decorations.getRanges().map((item) => ({\n range: item,\n options: {\n inlineClassName: \"highlight\",\n },\n }));\n decorations.set(newDecorations);\n }\n });\n });\n\n return () => {\n mouseOverEvent?.dispose();\n editorMouseDownEvent?.dispose();\n };\n }\n }, [language, onTokenClick, systemTheme, theme]);\n\n useEffect(() => {\n const editor = editorRef.current;\n if (\n !editor ||\n !containerRef.current ||\n automaticLayoutRef.current !== \"fit-content\"\n ) {\n return;\n }\n\n const listener = editor.onDidContentSizeChange((e) => {\n if (expanded) return;\n if (e.contentHeightChanged) {\n const newHeight = fixEditorHeightWithScrollBar(\n e.contentHeight,\n minLines,\n maxLines\n );\n if (newHeight !== size.current.height) {\n size.current.height = newHeight;\n editor.layout(size.current);\n }\n }\n });\n\n const newHeight = fixEditorHeightWithScrollBar(\n editor.getContentHeight(),\n minLines,\n maxLines\n );\n if (newHeight !== size.current.height) {\n size.current.height = newHeight;\n editor.layout(size.current);\n }\n\n return () => {\n listener.dispose();\n };\n }, [maxLines, minLines, expanded]);\n\n // istanbul ignore next\n const embeddedModelProcessor = useCallback(\n async (model: monaco.editor.IModel, position: monaco.Position) => {\n monaco.editor.setModelMarkers(model, \"semantic_validate\", []);\n\n const prefixEvaluateOperator = model.findPreviousMatch(\n \"<%[~=]?\",\n position,\n true,\n false,\n null,\n false\n );\n\n const suffixEvaluateOperator = model.findNextMatch(\n \"%>\",\n position,\n false,\n false,\n null,\n false\n );\n\n const prefixEvaluateRange = prefixEvaluateOperator?.range;\n const suffixEvaluateRange = suffixEvaluateOperator?.range;\n\n if (prefixEvaluateRange && suffixEvaluateRange) {\n const range = new monaco.Range(\n prefixEvaluateRange.startLineNumber,\n prefixEvaluateRange.endColumn,\n suffixEvaluateRange.startLineNumber,\n suffixEvaluateRange.startColumn\n );\n\n const content = model.getValueInRange(range);\n if (range.containsPosition(position!) && !/<% | %>/.test(content)) {\n const newUri = getEmbeddedJavascriptUri(model.uri);\n const embeddedModel = monaco.editor.getModel(newUri);\n\n embeddedModel!.setValue(content);\n const offset = model.getOffsetAt(\n new monaco.Position(\n prefixEvaluateRange.startLineNumber,\n prefixEvaluateRange.endColumn\n )\n );\n\n const embeddedContext = EmbeddedModelContext.getInstance(workerId);\n\n embeddedContext.updateState({ content, range, offset });\n\n if (!customValidationInBrickNextYaml) return;\n\n const getWorker =\n await monaco.languages.typescript.getJavaScriptWorker();\n\n const worker = await getWorker(newUri);\n\n const diagnostics = await worker.getSemanticDiagnostics(\n newUri.toString()\n );\n\n const semanticMarkers = diagnostics.map((item) => {\n const finalOffset = offset + (item.start ?? 0);\n const currentPosition = model.getPositionAt(finalOffset);\n\n return {\n startLineNumber: currentPosition.lineNumber,\n startColumn: currentPosition.column,\n endLineNumber: currentPosition.lineNumber,\n endColumn: currentPosition.column + item.length!,\n message: item.messageText as string,\n severity: monaco.MarkerSeverity.Warning,\n };\n });\n\n monaco.editor.setModelMarkers(\n model,\n \"semantic_validate\",\n semanticMarkers\n );\n }\n }\n },\n [workerId]\n );\n\n useEffect(() => {\n if (!editorRef.current) {\n return;\n }\n const currentModel = editorRef.current.getModel()!;\n const listener = currentModel.onDidChangeContent(async (e) => {\n setEditorId(workerId);\n\n if ([\"brick_next_yaml\"].includes(language)) {\n embeddedModelProcessor(currentModel, editorRef.current!.getPosition()!);\n // debounceParse();\n }\n if (!e.isFlush) {\n onChange(currentModel.getValue());\n }\n });\n return () => {\n listener.dispose();\n };\n }, [\n /* debounceParse, */ onChange,\n workerId,\n language,\n embeddedModelProcessor,\n ]);\n\n useEffect(() => {\n if (expanded) {\n const fn = (e: KeyboardEvent): void => {\n if (e.key === \"Escape\" || e.key === \"Esc\") {\n window.removeEventListener(\"keydown\", fn);\n setExpanded(false);\n }\n };\n window.addEventListener(\"keydown\", fn);\n return () => {\n window.removeEventListener(\"keydown\", fn);\n };\n }\n }, [expanded]);\n\n useEffect(() => {\n return () => {\n editorRef.current?.getModel()?.dispose();\n editorRef.current?.dispose();\n };\n }, []);\n\n useEffect(() => {\n if (!editorRef.current && !placeholder) return;\n const placeholderWidget = new PlaceholderContentWidget(\n placeholder!,\n editorRef.current!,\n isDarkTheme ? \"rgba(174,174,175,0.4)\" : \"rgba(89,89,89,0.4)\"\n );\n\n return () => {\n placeholderWidget.dispose();\n };\n }, [placeholder, isDarkTheme]);\n\n const handleCopyIconClick = useCallback(() => {\n if (editorRef.current) {\n const currentModel = editorRef.current.getModel()!;\n copyToClipboard(currentModel.getValue())\n .then(() =>\n showNotification({ type: \"success\", message: t(K.COPY_SUCCESS) })\n )\n .catch(() =>\n showNotification({ type: \"error\", message: t(K.COPY_FAILED) })\n );\n }\n }, [t]);\n\n const handleExpandedClick = useCallback(() => {\n setExpanded(!expanded);\n }, [expanded]);\n\n // istanbul ignore next\n useEffect(() => {\n const editor = editorRef.current;\n if (!(editor && language === \"brick_next_yaml\")) {\n return;\n }\n\n let ignore = false;\n const handleChange = async () => {\n const worker = await getRemoteYamlLinterWorker();\n if (ignore) {\n return;\n }\n const { lintMarkers, lintDecorations } = await worker.lint({\n source: editor.getValue(),\n links,\n markers,\n });\n const model = editor.getModel();\n if (ignore || !model) {\n return;\n }\n monaco.editor.setModelMarkers(\n model,\n BRICK_NEXT_YAML_LINT,\n lintMarkers.map(({ start, end, message, severity, code }) => {\n const startPos = model.getPositionAt(start);\n const endPos = model.getPositionAt(end);\n return {\n startLineNumber: startPos.lineNumber,\n startColumn: startPos.column,\n endLineNumber: endPos.lineNumber,\n endColumn: endPos.column,\n severity: monaco.MarkerSeverity[severity],\n message,\n code: code as monaco.editor.IMarkerData[\"code\"],\n };\n })\n );\n decorationsCollection.current?.set(\n lintDecorations.map(({ start, end, options }) => ({\n range: monaco.Range.fromPositions(\n model.getPositionAt(start),\n model.getPositionAt(end)\n ),\n options,\n }))\n );\n };\n const debounceChange = debounce(handleChange, 200);\n const change = editor.onDidChangeModelContent(debounceChange);\n debounceChange();\n\n return () => {\n ignore = true;\n change.dispose();\n monaco.editor.setModelMarkers(\n editor.getModel()!,\n BRICK_NEXT_YAML_LINT,\n []\n );\n };\n }, [language, links, markers, theme, workerId]);\n\n // istanbul ignore next\n useEffect(() => {\n const editor = editorRef.current;\n if (!editor || !spellCheck) {\n return;\n }\n\n let ignore = false;\n const handleChange = async () => {\n const worker = await getRemoteSpellCheckWorker();\n if (ignore) {\n return;\n }\n const { markers: spellCheckMarkers } = await worker.spellCheck({\n source: editor.getValue(),\n knownWords,\n });\n const model = editor.getModel();\n if (ignore || !model) {\n return;\n }\n monaco.editor.setModelMarkers(\n model,\n SPELL_CHECK,\n spellCheckMarkers.map(({ start, end, message, severity }) => {\n const startPos = model.getPositionAt(start);\n const endPos = model.getPositionAt(end);\n return {\n startLineNumber: startPos.lineNumber,\n startColumn: startPos.column,\n endLineNumber: endPos.lineNumber,\n endColumn: endPos.column,\n severity: monaco.MarkerSeverity[severity],\n message,\n };\n })\n );\n };\n const debounceChange = debounce(handleChange, 200);\n const change = editor.onDidChangeModelContent(debounceChange);\n debounceChange();\n\n return () => {\n ignore = true;\n change.dispose();\n monaco.editor.setModelMarkers(editor.getModel()!, SPELL_CHECK, []);\n };\n }, [spellCheck, knownWords]);\n\n return (\n <div\n className={classNames(\"code-editor-wrapper\", {\n expanded,\n error: validateState === \"error\",\n })}\n >\n <div\n ref={containerRef}\n style={{\n height: expanded ? \"100%\" : actualHeight,\n overflow: expanded ? \"scroll\" : \"\",\n }}\n />\n <div className=\"toolbar-wrapper\">\n <div className=\"toolbar sticky\">\n {showCopyButton && (\n <WrappedTooltip content={t(K.COPY) as string}>\n <WrappedIcon\n className=\"copy-icon\"\n icon=\"copy\"\n lib=\"antd\"\n theme=\"outlined\"\n onClick={handleCopyIconClick}\n />\n </WrappedTooltip>\n )}\n {showExpandButton && (\n <WrappedTooltip\n content={(expanded ? t(K.COLLAPSE) : t(K.EXPAND)) as string}\n >\n <WrappedIcon\n className=\"expand-icon\"\n icon={expanded ? \"compress\" : \"expand\"}\n lib=\"antd\"\n theme=\"outlined\"\n onClick={handleExpandedClick}\n />\n </WrappedTooltip>\n )}\n </div>\n </div>\n </div>\n );\n}\n\nfunction getContentHeightByCode(\n code: string,\n minLines: number,\n maxLines: number\n): number {\n return getContentHeightByLines(\n Math.min(maxLines, Math.max(minLines, code.split(\"\\n\").length))\n );\n}\n\nfunction fixEditorHeightWithScrollBar(\n contentHeight: number,\n minLines: number,\n maxLines: number\n): number {\n let fixedHeight = contentHeight;\n if ((contentHeight - EDITOR_PADDING_VERTICAL) % EDITOR_LINE_HEIGHT === 0) {\n fixedHeight = contentHeight + EDITOR_SCROLLBAR_SIZE;\n }\n return Math.min(\n getContentHeightByLines(maxLines),\n Math.max(fixedHeight, getContentHeightByLines(minLines))\n );\n}\n\nfunction getContentHeightByLines(lines: number): number {\n return (\n lines * EDITOR_LINE_HEIGHT + EDITOR_SCROLLBAR_SIZE + EDITOR_PADDING_VERTICAL\n );\n}\n\n/** Get the direct DOM container of `vs.code-editor` */\nfunction getDOMContainer(element: HTMLElement | null) {\n let brick = element;\n while (brick) {\n const found = brick.tagName.toLowerCase() === \"vs.code-editor\";\n brick = brick.parentElement;\n if (found) {\n return brick;\n }\n }\n}\n"],"names":["initializeReactI18n","NS","locales","registerJavaScript","monaco","registerTypeScript","registerYaml","registerHtml","registerCel","registerCelYaml","registerCelStr","EMBEDDED_CEL","CEL_FAMILY","lang","registerCompletionItemProvider","triggerCharacters","provideCompletionItems","provideEmbeddedCelCompletionItems","celCommonCompletionProviderFactory","defineElement","property","event","createDecorators","WrappedFormItem","wrapBrick","WrappedTooltip","WrappedIcon","copyToClipboard","unwrapProvider","showNotification","SPELL_CHECK","BRICK_NEXT_YAML_LINT","_CodeEditor","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_T","_U","_V","_W","_X","_Y","_Z","_a","_b","_CodeEditor_brand","WeakSet","_c","_handleChange","_handleUserInput","_d","_handleTokenClick","_handleValidator","CodeEditor","FormItemElementBase","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_init_name","_init_extra_name","_init_label","_init_extra_label","_init_value","_init_extra_value","_init_language","_init_extra_language","_init_theme","_init_extra_theme","_init_required","_init_extra_required","_init_readOnly","_init_extra_readOnly","_init_automaticLayout","_init_extra_automaticLayout","_init_minLines","_init_extra_minLines","_init_completers","_init_extra_completers","_init_advancedCompleters","_init_extra_advancedCompleters","_init_markers","_init_extra_markers","_init_links","_init_extra_links","_init_maxLines","_init_extra_maxLines","_init_height","_init_extra_height","_init_message","_init_extra_message","_init_placeholder","_init_extra_placeholder","_init_showExpandButton","_init_extra_showExpandButton","_init_lineNumbers","_init_extra_lineNumbers","_init_tokenConfig","_init_extra_tokenConfig","_init_customValidationInBrickNextYaml","_init_extra_customValidationInBrickNextYaml","_init_showCopyButton","_init_extra_showCopyButton","_init_glyphMargin","_init_extra_glyphMargin","_init_extraLibs","_init_extra_extraLibs","_init_fixedOverflowWidgets","_init_extra_fixedOverflowWidgets","_init_spellCheck","_init_extra_spellCheck","_init_knownWords","_init_extra_knownWords","_init_codeChange","_init_extra_codeChange","_init_userInput","_init_extra_userInput","value","_this$getFormElement","this","getFormElement","formStore","onChange","name","_classPrivateGetter","_get_codeChange","emit","_get_userInput","_init_tokenClickEvent","_init_extra_tokenClickEvent","word","_get_tokenClickEvent","language","yaml","_classPrivateFieldGet","v","_classPrivateFieldSet","label","theme","required","readOnly","automaticLayout","minLines","completers","advancedCompleters","markers","links","maxLines","height","message","placeholder","showExpandButton","lineNumbers","tokenConfig","customValidationInBrickNextYaml","showCopyButton","glyphMargin","extraLibs","fixedOverflowWidgets","spellCheck","knownWords","connectedCallback","style","display","super","render","React","exportparts","curElement","formElement","helpBrick","labelBrick","notRender","validator","CodeEditorComponent","validateState","onUserInput","onTokenClick","_ref","_value","_language","_theme","_minLines","_maxLines","_height","_fixedOverflowWidgets","_spellCheck","Infinity","expanded","setExpanded","useState","workerId","useMemo","uniqueId","t","useTranslation","containerRef","useRef","decorationsCollection","editorRef","size","width","getContentHeightByCode","actualHeight","setActualHeight","automaticLayoutRef","systemTheme","useCurrentTheme","computedTheme","isDarkTheme","useEffect","lineHighlightBackground","defineTheme","base","inherit","rules","colors","setTheme","current","currentModel","getModel","setModelLanguage","brickNextYAMLProviderCompletionItems","Array","isArray","undefined","monacoProviderRef","dispose","length","includes","disposable","celSpecificCompletionProviderFactory","editor","getValue","setValue","useLayoutEffect","_editorRef$current","getBoundingClientRect","layout","observer","ResizeObserver","entries","entry","target","newWidth","contentBoxSize","inlineSize","contentRect","newHeight","blockSize","_editorRef$current2","observe","disconnect","container","element","brick","found","tagName","toLowerCase","parentElement","getDOMContainer","offsetHeight","updateOptions","lineNumbersMinChars","model","createModel","uri","getEmbeddedJavascriptUri","typescript","javascriptDefaults","addExtraLib","getBrickYamlBuiltInDeclare","toString","create","extraEditorClassName","minimap","enabled","showRegionSectionHeaders","showMarkSectionHeaders","scrollBeyondLastLine","tabSize","insertSpaces","fontSize","EDITOR_FONT_SIZE","lineHeight","EDITOR_LINE_HEIGHT","scrollbar","horizontalScrollbarSize","EDITOR_SCROLLBAR_SIZE","verticalScrollbarSize","horizontalSliderSize","verticalSliderSize","alwaysConsumeMouseWheel","padding","top","EDITOR_PADDING_VERTICAL","bottom","overviewRulerBorder","mouseWheelScrollSensitivity","folding","suggest","insertMode","preview","quickSuggestions","strings","other","comments","renderLineHighlightOnlyWhenFocus","unicodeHighlight","ambiguousCharacters","createDecorationsCollection","libs","languageDefaults","disposables","addExtraLibs","item","editorMouseDownEvent","onMouseDown","e","_decorations$getRange","_decorations$getRange2","decorations","getRanges","call","forEach","range","modKey","test","navigator","platform","position","containsPosition","getValueInRange","mouseOverEvent","onMouseMove","newDecorations","map","options","inlineClassName","equalsRange","set","listener","onDidContentSizeChange","contentHeightChanged","fixEditorHeightWithScrollBar","contentHeight","getContentHeight","embeddedModelProcessor","useCallback","async","setModelMarkers","prefixEvaluateOperator","findPreviousMatch","suffixEvaluateOperator","findNextMatch","prefixEvaluateRange","suffixEvaluateRange","startLineNumber","endColumn","startColumn","content","newUri","offset","getOffsetAt","EmbeddedModelContext","getInstance","updateState","getWorker","getJavaScriptWorker","worker","semanticMarkers","getSemanticDiagnostics","_item$start","finalOffset","start","currentPosition","getPositionAt","lineNumber","column","endLineNumber","messageText","severity","Warning","onDidChangeContent","setEditorId","getPosition","isFlush","fn","key","window","removeEventListener","addEventListener","_editorRef$current3","_editorRef$current4","placeholderWidget","PlaceholderContentWidget","handleCopyIconClick","then","type","K","COPY_SUCCESS","catch","COPY_FAILED","handleExpandedClick","ignore","debounceChange","debounce","_decorationsCollectio","getRemoteYamlLinterWorker","lintMarkers","lintDecorations","lint","source","_ref2","end","code","startPos","endPos","_ref3","fromPositions","change","onDidChangeModelContent","getRemoteSpellCheckWorker","spellCheckMarkers","_ref4","className","classNames","error","ref","overflow","COPY","icon","lib","onClick","COLLAPSE","EXPAND","getContentHeightByLines","Math","min","max","split","fixedHeight","lines","_CodeEditor2","_set_codeChange","_set_userInput","_set_tokenClickEvent","c","_initClass","_applyDecs","shadowOptions","Boolean","Number","attribute","o","_","has","_checkInRHS"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(globalThis.webpackChunk_next_bricks_vs=globalThis.webpackChunk_next_bricks_vs||[]).push([[3722],{2580:(e,t,n)=>{n.r(t),n.d(t,{CodeEditor:()=>mt,CodeEditorComponent:()=>$t});var i,s=n(4635),r=n(918),o=n(6902),a=n(5536),l=n(6121),c=n(829),u=n(2740),h=n(8769),d=n.n(h),g=n(6192),m=n(2304),p=n(9859),k=n(8792),f=n(426),A=n(2329),v=n(6197),w=n(3909),y=n(2257),b=n(3135),M=n(5310),C=n.n(M),x=(n(6477),n(563)),E=n(7137),W=n(4046),S=n(4804),L=n(4102),N=n(9287),B=n(9704),P=n(8182),_=n(3373),z=n.n(_),R=(n(3569),n(1968)),O=n(1836),I=n(5087),V=n(5808),D=n(896),F=n(2066),Y=n(8546),H=n(6984);let K,T,q,j,U,J,X,Z,$,G,Q,ee,te,ne,ie,se,re,oe,ae,le,ce,ue,he,de,ge,me,pe,ke,fe,Ae,ve,we,ye,be,Me,Ce,xe,Ee,We,Se,Le,Ne,Be,Pe,_e,ze,Re,Oe,Ie,Ve,De,Fe,Ye,He,Ke,Te,qe,je,Ue,Je,Xe,Ze,$e,Ge,Qe,et,tt;(0,B.initializeReactI18n)(P.NS,P.I),(0,v.kz)(A),(0,w.kz)(A),(0,y.kz)(A,"brick_next_yaml"),(0,b.kz)(A),(0,D.kz)(A),(0,F.kz)(A),(0,Y.kz)(A);const nt=["cel_yaml","cel_str"],it=["cel",...nt];for(const e of nt)A.languages.registerCompletionItemProvider(e,{triggerCharacters:["<"],provideCompletionItems:H.ix});for(const e of it)A.languages.registerCompletionItemProvider(e,(0,H.ZY)(e));const{defineElement:st,property:rt,event:ot}=(0,g.createDecorators)(),at=(0,p.wrapBrick)("eo-form-item"),lt=(0,p.wrapBrick)("eo-tooltip"),ct=(0,p.wrapBrick)("eo-icon"),ut=(0,m.unwrapProvider)("basic.copy-to-clipboard"),ht=(0,m.unwrapProvider)("basic.show-notification"),dt="spell_check",gt="brick_next_yaml_lint";let mt;var pt=new WeakMap,kt=new WeakMap,ft=new WeakMap,At=new WeakMap,vt=new WeakMap,wt=new WeakMap,yt=new WeakMap,bt=new WeakMap,Mt=new WeakMap,Ct=new WeakMap,xt=new WeakMap,Et=new WeakMap,Wt=new WeakMap,St=new WeakMap,Lt=new WeakMap,Nt=new WeakMap,Bt=new WeakMap,Pt=new WeakMap,_t=new WeakMap,zt=new WeakMap,Rt=new WeakMap,Ot=new WeakMap,It=new WeakMap,Vt=new WeakMap,Dt=new WeakMap,Ft=new WeakMap,Yt=new WeakMap,Ht=new WeakMap,Kt=new WeakSet,Tt=new WeakMap,qt=new WeakMap,jt=new WeakMap,Ut=new WeakMap,Jt=new WeakMap,Xt=new WeakMap;class Zt extends f.N{constructor(){super(...arguments),(0,s.A)(this,Kt),(0,r.A)(this,pt,T(this)),(0,r.A)(this,kt,(q(this),j(this))),(0,r.A)(this,ft,(U(this),J(this))),(0,r.A)(this,At,(X(this),Z(this))),(0,r.A)(this,vt,($(this),G(this))),(0,r.A)(this,wt,(Q(this),ee(this))),(0,r.A)(this,yt,(te(this),ne(this))),(0,r.A)(this,bt,(ie(this),se(this))),(0,r.A)(this,Mt,(re(this),oe(this))),(0,r.A)(this,Ct,(ae(this),le(this))),(0,r.A)(this,xt,(ce(this),ue(this))),(0,r.A)(this,Et,(he(this),de(this))),(0,r.A)(this,Wt,(ge(this),me(this))),(0,r.A)(this,St,(pe(this),ke(this))),(0,r.A)(this,Lt,(fe(this),Ae(this))),(0,r.A)(this,Nt,(ve(this),we(this))),(0,r.A)(this,Bt,(ye(this),be(this))),(0,r.A)(this,Pt,(Me(this),Ce(this))),(0,r.A)(this,_t,(xe(this),Ee(this))),(0,r.A)(this,zt,(We(this),Se(this))),(0,r.A)(this,Rt,(Le(this),Ne(this))),(0,r.A)(this,Ot,(Be(this),Pe(this))),(0,r.A)(this,It,(_e(this),ze(this))),(0,r.A)(this,Vt,(Re(this),Oe(this))),(0,r.A)(this,Dt,(Ie(this),Ve(this))),(0,r.A)(this,Ft,(De(this),Fe(this))),(0,r.A)(this,Yt,(Ye(this),He(this))),(0,r.A)(this,Ht,(Ke(this),Te(this))),(0,r.A)(this,Tt,(Ue(this),Je(this))),(0,r.A)(this,qt,($e(this),e=>{var t;this.value=e,null===(t=this.getFormElement())||void 0===t||t.formStore.onChange(this.name,e),(0,a.A)(Kt,this,qe).emit(e)})),(0,r.A)(this,jt,(e=>{(0,a.A)(Kt,this,Xe).emit(e)})),(0,r.A)(this,Ut,Ge(this)),(0,r.A)(this,Jt,(tt(this),e=>{(0,a.A)(Kt,this,Qe).emit(e)})),(0,r.A)(this,Xt,(e=>{if("brick_next_yaml"===this.language||"yaml"===this.language)try{C().load(e)}catch{return"请填写正确的格式"}return""}))}get name(){return(0,c.A)(pt,this)}set name(e){(0,l.A)(pt,this,e)}get label(){return(0,c.A)(kt,this)}set label(e){(0,l.A)(kt,this,e)}get value(){return(0,c.A)(ft,this)}set value(e){(0,l.A)(ft,this,e)}get language(){return(0,c.A)(At,this)}set language(e){(0,l.A)(At,this,e)}get theme(){return(0,c.A)(vt,this)}set theme(e){(0,l.A)(vt,this,e)}get required(){return(0,c.A)(wt,this)}set required(e){(0,l.A)(wt,this,e)}get readOnly(){return(0,c.A)(yt,this)}set readOnly(e){(0,l.A)(yt,this,e)}get automaticLayout(){return(0,c.A)(bt,this)}set automaticLayout(e){(0,l.A)(bt,this,e)}get minLines(){return(0,c.A)(Mt,this)}set minLines(e){(0,l.A)(Mt,this,e)}get completers(){return(0,c.A)(Ct,this)}set completers(e){(0,l.A)(Ct,this,e)}get advancedCompleters(){return(0,c.A)(xt,this)}set advancedCompleters(e){(0,l.A)(xt,this,e)}get markers(){return(0,c.A)(Et,this)}set markers(e){(0,l.A)(Et,this,e)}get links(){return(0,c.A)(Wt,this)}set links(e){(0,l.A)(Wt,this,e)}get maxLines(){return(0,c.A)(St,this)}set maxLines(e){(0,l.A)(St,this,e)}get height(){return(0,c.A)(Lt,this)}set height(e){(0,l.A)(Lt,this,e)}get message(){return(0,c.A)(Nt,this)}set message(e){(0,l.A)(Nt,this,e)}get placeholder(){return(0,c.A)(Bt,this)}set placeholder(e){(0,l.A)(Bt,this,e)}get showExpandButton(){return(0,c.A)(Pt,this)}set showExpandButton(e){(0,l.A)(Pt,this,e)}get lineNumbers(){return(0,c.A)(_t,this)}set lineNumbers(e){(0,l.A)(_t,this,e)}get tokenConfig(){return(0,c.A)(zt,this)}set tokenConfig(e){(0,l.A)(zt,this,e)}get customValidationInBrickNextYaml(){return(0,c.A)(Rt,this)}set customValidationInBrickNextYaml(e){(0,l.A)(Rt,this,e)}get showCopyButton(){return(0,c.A)(Ot,this)}set showCopyButton(e){(0,l.A)(Ot,this,e)}get glyphMargin(){return(0,c.A)(It,this)}set glyphMargin(e){(0,l.A)(It,this,e)}get extraLibs(){return(0,c.A)(Vt,this)}set extraLibs(e){(0,l.A)(Vt,this,e)}get fixedOverflowWidgets(){return(0,c.A)(Dt,this)}set fixedOverflowWidgets(e){(0,l.A)(Dt,this,e)}get spellCheck(){return(0,c.A)(Ft,this)}set spellCheck(e){(0,l.A)(Ft,this,e)}get knownWords(){return(0,c.A)(Yt,this)}set knownWords(e){(0,l.A)(Yt,this,e)}connectedCallback(){this.style.display||(this.style.display="block"),super.connectedCallback()}render(){return d().createElement(at,{exportparts:"message",curElement:this,formElement:this.getFormElement(),name:this.name,label:this.label,required:this.required,helpBrick:this.helpBrick,labelBrick:this.labelBrick,notRender:this.notRender,validator:(0,c.A)(Xt,this)},d().createElement($t,{value:this.value,language:this.language,readOnly:this.readOnly,theme:this.theme,automaticLayout:this.automaticLayout,minLines:this.minLines,maxLines:this.maxLines,height:this.height,completers:this.completers,advancedCompleters:this.advancedCompleters,extraLibs:this.extraLibs,markers:this.markers,links:this.links,tokenConfig:this.tokenConfig,lineNumbers:this.lineNumbers,glyphMargin:this.glyphMargin,placeholder:this.placeholder,showCopyButton:this.showCopyButton,showExpandButton:this.showExpandButton,validateState:this.validateState,onChange:(0,c.A)(qt,this),onUserInput:(0,c.A)(jt,this),onTokenClick:(0,c.A)(Jt,this),customValidationInBrickNextYaml:this.customValidationInBrickNextYaml,fixedOverflowWidgets:this.fixedOverflowWidgets,spellCheck:this.spellCheck,knownWords:this.knownWords}))}}function $t(e){let{value:t,language:n,theme:i,minLines:s,maxLines:r,height:o,automaticLayout:a,completers:l,advancedCompleters:c,markers:u,readOnly:g,links:m,extraLibs:p,tokenConfig:f,showExpandButton:v,showCopyButton:w=!0,lineNumbers:y="on",glyphMargin:b=!1,placeholder:M,validateState:C,onChange:_,onTokenClick:D,customValidationInBrickNextYaml:F,fixedOverflowWidgets:Y,spellCheck:K,knownWords:T}=e;const q=null!=t?t:"",j=null!=n?n:"plaintext",U=null!=i?i:"auto",J=null!=s?s:3,X=null!=r?r:1/0,Z=null!=o?o:500,$=null==Y||Y,G=null==K||K,[Q,ee]=(0,h.useState)(!1),te=(0,h.useMemo)((()=>(0,x.uniqueId)("worker")),[]),{t:ne}=(0,B.useTranslation)(P.NS),ie=(0,h.useRef)(null),se=(0,h.useRef)(),re=(0,h.useRef)(),oe=(0,h.useRef)({width:300,height:Gt(q,J,X)}),[ae,le]=(0,h.useState)(),ce=(0,h.useRef)(a),ue=(0,k.useCurrentTheme)(),he="auto"===U?"dark"===ue||"dark-v2"===ue?"vs-dark":"vs":U,de="vs-dark"===he||"hc-black"===he;(0,h.useEffect)((()=>{const e=de?"#FFFFFF0F":"#0000000A";A.editor.defineTheme("custom-theme",{base:he,inherit:!0,rules:[],colors:{"editor.lineHighlightBackground":`${e}`}}),A.editor.setTheme("custom-theme")}),[he,de]),(0,h.useEffect)((()=>{if(re.current){const e=re.current.getModel();A.editor.setModelLanguage(e,j)}}),[j]),(0,h.useEffect)((()=>{if("brick_next_yaml"===j){const e=(0,W.v)(l,Array.isArray(c)?void 0:c,te,f),t=A.languages.registerCompletionItemProvider("brick_next_yaml",{provideCompletionItems:e,triggerCharacters:[".",":","<"]});return()=>{t.dispose()}}}),[l,c,j,te,f]),(0,h.useEffect)((()=>{if(Array.isArray(c)&&c.length>0&&it.includes(j)){const e=A.languages.registerCompletionItemProvider(j,(0,H.MY)(j,te,c));return()=>{e.dispose()}}}),[j,c,te]),(0,h.useEffect)((()=>{const e=re.current;if(e){const t=e.getModel();null!=t&&t.getValue&&q!==t.getValue()&&t.setValue(q)}}),[q]),(0,h.useLayoutEffect)((()=>{var e;if("fit-content"!==ce.current||!ie.current)return;oe.current.width=ie.current.getBoundingClientRect().width,null===(e=re.current)||void 0===e||e.layout(oe.current);const t=new ResizeObserver((e=>{for(const n of e)if(n.target===ie.current){const e=n.contentBoxSize?n.contentBoxSize[0]?n.contentBoxSize[0].inlineSize:n.contentBoxSize.inlineSize:n.contentRect.width,i=n.contentBoxSize?n.contentBoxSize[0]?n.contentBoxSize[0].blockSize:n.contentBoxSize.blockSize:n.contentRect.height;var t;(e!==oe.current.width||Q)&&(oe.current.width=e,null===(t=re.current)||void 0===t||t.layout({width:e,height:Q?i:oe.current.height}));break}}));return t.observe(ie.current),()=>{t.disconnect()}}),[Q]),(0,h.useLayoutEffect)((()=>{if("fit-container"!==ce.current)return;const e=function(e){let t=e;for(;t;){const e="vs.code-editor"===t.tagName.toLowerCase();if(t=t.parentElement,e)return t}}(ie.current);if(!e)return;const t=new ResizeObserver((()=>{le(e.offsetHeight)}));return t.observe(e),()=>{t.disconnect()}}),[]),(0,h.useEffect)((()=>{"fit-container"!==ce.current&&"fit-content"!==ce.current&&le(Z)}),[Z]),(0,h.useEffect)((()=>{re.current&&re.current.updateOptions({readOnly:g,lineNumbersMinChars:Q?5:3})}),[g,Q]),(0,h.useEffect)((()=>{if(re.current||!ie.current)return;const e=A.editor.createModel(q,j);if("brick_next_yaml"===j){const t=(0,L.AR)(e.uri);A.editor.createModel(q,"javascript",t),A.languages.typescript.javascriptDefaults.addExtraLib((0,L.Eh)(),e.uri.toString()+"d.ts")}re.current=A.editor.create(ie.current,{extraEditorClassName:"monaco-editor-v3",model:e,minimap:{enabled:!1,showRegionSectionHeaders:!1,showMarkSectionHeaders:!1},scrollBeyondLastLine:!1,tabSize:2,insertSpaces:!0,automaticLayout:"fit-content"!==ce.current,fontSize:E.yU,lineHeight:E.fE,scrollbar:{horizontalScrollbarSize:E.lP,verticalScrollbarSize:E.lP,horizontalSliderSize:8,verticalSliderSize:8,alwaysConsumeMouseWheel:!1},padding:{top:E.Vu,bottom:"fit-content"==ce.current?void 0:E.Vu},overviewRulerBorder:!1,mouseWheelScrollSensitivity:.5,fixedOverflowWidgets:$,lineNumbers:y,lineNumbersMinChars:3,glyphMargin:b,folding:"off"!==y,suggest:{insertMode:"insert",preview:!0},readOnly:g,quickSuggestions:{strings:!0,other:!0,comments:!0},renderLineHighlightOnlyWhenFocus:!0,unicodeHighlight:{ambiguousCharacters:!1}}),se.current=re.current.createDecorationsCollection()}),[]),(0,h.useEffect)((()=>{const e=null!=p?p:[],t="typescript"===j?"typescriptDefaults":"javascriptDefaults",n=(0,N.m)(e,{languageDefaults:t});return()=>{for(const e of n)e.dispose()}}),[p,j]),(0,h.useEffect)((()=>{const e=re.current;if("brick_next_yaml"===j&&e){const t=e.getModel(),n=e.onMouseDown((function(e){var n,i;const s=se.current;(null!==(n=null==s||null===(i=s.getRanges)||void 0===i?void 0:i.call(s))&&void 0!==n?n:[]).forEach((n=>{const i=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey";n&&e.target.position&&e.event[i]&&n.containsPosition(e.target.position)&&D(t.getValueInRange(n))}))})),i=e.onMouseMove((function(e){const t=se.current;t&&t.getRanges().forEach((n=>{const i=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey";if(n&&e.target.position&&e.event[i]&&n.containsPosition(e.target.position)){const e=t.getRanges().map((e=>({range:e,options:{inlineClassName:n.equalsRange(e)?"highlight pointer":"highlight"}})));t.set(e)}else if(!e.event[i]){const e=t.getRanges().map((e=>({range:e,options:{inlineClassName:"highlight"}})));t.set(e)}}))}));return()=>{null==i||i.dispose(),null==n||n.dispose()}}}),[j,D,ue,U]),(0,h.useEffect)((()=>{const e=re.current;if(!e||!ie.current||"fit-content"!==ce.current)return;const t=e.onDidContentSizeChange((t=>{if(!Q&&t.contentHeightChanged){const n=Qt(t.contentHeight,J,X);n!==oe.current.height&&(oe.current.height=n,e.layout(oe.current))}})),n=Qt(e.getContentHeight(),J,X);return n!==oe.current.height&&(oe.current.height=n,e.layout(oe.current)),()=>{t.dispose()}}),[X,J,Q]);const ge=(0,h.useCallback)((async(e,t)=>{A.editor.setModelMarkers(e,"semantic_validate",[]);const n=e.findPreviousMatch("<%[~=]?",t,!0,!1,null,!1),i=e.findNextMatch("%>",t,!1,!1,null,!1),s=null==n?void 0:n.range,r=null==i?void 0:i.range;if(s&&r){const n=new A.Range(s.startLineNumber,s.endColumn,r.startLineNumber,r.startColumn),i=e.getValueInRange(n);if(n.containsPosition(t)&&!/<% | %>/.test(i)){const t=(0,L.AR)(e.uri);A.editor.getModel(t).setValue(i);const r=e.getOffsetAt(new A.Position(s.startLineNumber,s.endColumn));if(R.b.getInstance(te).updateState({content:i,range:n,offset:r}),!F)return;const o=await A.languages.typescript.getJavaScriptWorker(),a=await o(t),l=(await a.getSemanticDiagnostics(t.toString())).map((t=>{var n;const i=r+(null!==(n=t.start)&&void 0!==n?n:0),s=e.getPositionAt(i);return{startLineNumber:s.lineNumber,startColumn:s.column,endLineNumber:s.lineNumber,endColumn:s.column+t.length,message:t.messageText,severity:A.MarkerSeverity.Warning}}));A.editor.setModelMarkers(e,"semantic_validate",l)}}}),[te]);(0,h.useEffect)((()=>{if(!re.current)return;const e=re.current.getModel(),t=e.onDidChangeContent((async t=>{(0,S.J)(te),["brick_next_yaml"].includes(j)&&ge(e,re.current.getPosition()),t.isFlush||_(e.getValue())}));return()=>{t.dispose()}}),[_,te,j,ge]),(0,h.useEffect)((()=>{if(Q){const e=t=>{"Escape"!==t.key&&"Esc"!==t.key||(window.removeEventListener("keydown",e),ee(!1))};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}}}),[Q]),(0,h.useEffect)((()=>()=>{var e,t;null===(e=re.current)||void 0===e||null===(e=e.getModel())||void 0===e||e.dispose(),null===(t=re.current)||void 0===t||t.dispose()}),[]),(0,h.useEffect)((()=>{if(!re.current&&!M)return;const e=new O.j(M,re.current,de?"rgba(174,174,175,0.4)":"rgba(89,89,89,0.4)");return()=>{e.dispose()}}),[M,de]);const me=(0,h.useCallback)((()=>{if(re.current){const e=re.current.getModel();ut(e.getValue()).then((()=>ht({type:"success",message:ne(P.K.COPY_SUCCESS)}))).catch((()=>ht({type:"error",message:ne(P.K.COPY_FAILED)})))}}),[ne]),pe=(0,h.useCallback)((()=>{ee(!Q)}),[Q]);return(0,h.useEffect)((()=>{const e=re.current;if(!e||"brick_next_yaml"!==j)return;let t=!1;const n=(0,x.debounce)((async()=>{var n;const i=await(0,I.K)();if(t)return;const{lintMarkers:s,lintDecorations:r}=await i.lint({source:e.getValue(),links:m,markers:u}),o=e.getModel();!t&&o&&(A.editor.setModelMarkers(o,gt,s.map((e=>{let{start:t,end:n,message:i,severity:s,code:r}=e;const a=o.getPositionAt(t),l=o.getPositionAt(n);return{startLineNumber:a.lineNumber,startColumn:a.column,endLineNumber:l.lineNumber,endColumn:l.column,severity:A.MarkerSeverity[s],message:i,code:r}}))),null===(n=se.current)||void 0===n||n.set(r.map((e=>{let{start:t,end:n,options:i}=e;return{range:A.Range.fromPositions(o.getPositionAt(t),o.getPositionAt(n)),options:i}}))))}),200),i=e.onDidChangeModelContent(n);return n(),()=>{t=!0,i.dispose(),A.editor.setModelMarkers(e.getModel(),gt,[])}}),[j,m,u,U,te]),(0,h.useEffect)((()=>{const e=re.current;if(!e||!G)return;let t=!1;const n=(0,x.debounce)((async()=>{const n=await(0,V.n)();if(t)return;const{markers:i}=await n.spellCheck({source:e.getValue(),knownWords:T}),s=e.getModel();!t&&s&&A.editor.setModelMarkers(s,dt,i.map((e=>{let{start:t,end:n,message:i,severity:r}=e;const o=s.getPositionAt(t),a=s.getPositionAt(n);return{startLineNumber:o.lineNumber,startColumn:o.column,endLineNumber:a.lineNumber,endColumn:a.column,severity:A.MarkerSeverity[r],message:i}})))}),200),i=e.onDidChangeModelContent(n);return n(),()=>{t=!0,i.dispose(),A.editor.setModelMarkers(e.getModel(),dt,[])}}),[G,T]),d().createElement("div",{className:z()("code-editor-wrapper",{expanded:Q,error:"error"===C})},d().createElement("div",{ref:ie,style:{height:Q?"100%":ae,overflow:Q?"scroll":""}}),d().createElement("div",{className:"toolbar-wrapper"},d().createElement("div",{className:"toolbar sticky"},w&&d().createElement(lt,{content:ne(P.K.COPY)},d().createElement(ct,{className:"copy-icon",icon:"copy",lib:"antd",theme:"outlined",onClick:me})),v&&d().createElement(lt,{content:ne(Q?P.K.COLLAPSE:P.K.EXPAND)},d().createElement(ct,{className:"expand-icon",icon:Q?"compress":"expand",lib:"antd",theme:"outlined",onClick:pe})))))}function Gt(e,t,n){return en(Math.min(n,Math.max(t,e.split("\n").length)))}function Qt(e,t,n){let i=e;return(e-E.Vu)%E.fE==0&&(i=e+E.lP),Math.min(en(n),Math.max(i,en(t)))}function en(e){return e*E.fE+E.lP+E.Vu}i=Zt,({e:[T,q,j,U,J,X,Z,$,G,Q,ee,te,ne,ie,se,re,oe,ae,le,ce,ue,he,de,ge,me,pe,ke,fe,Ae,ve,we,ye,be,Me,Ce,xe,Ee,We,Se,Le,Ne,Be,Pe,_e,ze,Re,Oe,Ie,Ve,De,Fe,Ye,He,Ke,Te,qe,je,Ue,Je,Xe,Ze,$e,Ge,Qe,et,tt],c:[mt,K]}=(0,u.A)(i,[st("vs.code-editor",{shadowOptions:!1})],[[rt(),1,"name"],[rt(),1,"label"],[rt(),1,"value"],[rt(),1,"language"],[rt(),1,"theme"],[rt({type:Boolean}),1,"required"],[rt({type:Boolean}),1,"readOnly"],[rt(),1,"automaticLayout"],[rt({type:Number}),1,"minLines"],[rt({attribute:!1}),1,"completers"],[rt({attribute:!1}),1,"advancedCompleters"],[rt({attribute:!1}),1,"markers"],[rt({attribute:!1}),1,"links"],[rt({type:Number}),1,"maxLines"],[rt({attribute:!1}),1,"height"],[rt(),1,"message"],[rt(),1,"placeholder"],[rt({type:Boolean}),1,"showExpandButton"],[rt(),1,"lineNumbers"],[rt({attribute:!1}),1,"tokenConfig"],[rt({type:Boolean}),1,"customValidationInBrickNextYaml"],[rt({type:Boolean}),1,"showCopyButton"],[rt({type:Boolean}),1,"glyphMargin"],[rt({attribute:!1}),1,"extraLibs"],[rt({type:Boolean}),1,"fixedOverflowWidgets"],[rt({type:Boolean}),1,"spellCheck"],[rt({attribute:!1}),1,"knownWords"],[ot({type:"code.change"}),1,"codeChange",e=>(0,c.A)(Ht,e),(e,t)=>(0,l.A)(Ht,e,t)],[ot({type:"user.input"}),1,"userInput",e=>(0,c.A)(Tt,e),(e,t)=>(0,l.A)(Tt,e,t)],[ot({type:"token.click"}),1,"tokenClickEvent",e=>(0,c.A)(Ut,e),(e,t)=>(0,l.A)(Ut,e,t)]],0,(e=>Xt.has((0,o.A)(e))),f.N)),K()}}]);
2
+ //# sourceMappingURL=code-editor.3e401ebe.js.map