w-web-sso 1.0.0

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 (102) hide show
  1. package/.editorconfig +9 -0
  2. package/.eslintignore +3 -0
  3. package/.eslintrc.js +55 -0
  4. package/.github/workflows/ci-test.yml +24 -0
  5. package/.jsdoc +25 -0
  6. package/.vscode/launch.json +20 -0
  7. package/LICENSE +21 -0
  8. package/README.md +25 -0
  9. package/SECURITY.md +5 -0
  10. package/babel.config.js +15 -0
  11. package/dist/css/app.969ad1db.css +1 -0
  12. package/dist/index.tmp +3 -0
  13. package/dist/js/app-legacy.ff64be1c.js +2 -0
  14. package/dist/js/app-legacy.ff64be1c.js.map +1 -0
  15. package/dist/js/app.ff64be1c.js +2 -0
  16. package/dist/js/app.ff64be1c.js.map +1 -0
  17. package/dist/js/chunk-vendors-legacy.0bb7a31b.js +13 -0
  18. package/dist/js/chunk-vendors-legacy.0bb7a31b.js.map +1 -0
  19. package/dist/js/chunk-vendors.0bb7a31b.js +13 -0
  20. package/dist/js/chunk-vendors.0bb7a31b.js.map +1 -0
  21. package/dist/w-web-sso.umd.js +7 -0
  22. package/dist/w-web-sso.umd.js.map +1 -0
  23. package/docs/WWebSso.html +938 -0
  24. package/docs/WWebSso.mjs.html +721 -0
  25. package/docs/fonts/Montserrat/Montserrat-Bold.eot +0 -0
  26. package/docs/fonts/Montserrat/Montserrat-Bold.ttf +0 -0
  27. package/docs/fonts/Montserrat/Montserrat-Bold.woff +0 -0
  28. package/docs/fonts/Montserrat/Montserrat-Bold.woff2 +0 -0
  29. package/docs/fonts/Montserrat/Montserrat-Regular.eot +0 -0
  30. package/docs/fonts/Montserrat/Montserrat-Regular.ttf +0 -0
  31. package/docs/fonts/Montserrat/Montserrat-Regular.woff +0 -0
  32. package/docs/fonts/Montserrat/Montserrat-Regular.woff2 +0 -0
  33. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot +0 -0
  34. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +978 -0
  35. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf +0 -0
  36. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff +0 -0
  37. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 +0 -0
  38. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot +0 -0
  39. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +1049 -0
  40. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf +0 -0
  41. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff +0 -0
  42. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 +0 -0
  43. package/docs/index.html +84 -0
  44. package/docs/scripts/collapse.js +39 -0
  45. package/docs/scripts/commonNav.js +28 -0
  46. package/docs/scripts/linenumber.js +25 -0
  47. package/docs/scripts/nav.js +12 -0
  48. package/docs/scripts/polyfill.js +4 -0
  49. package/docs/scripts/prettify/Apache-License-2.0.txt +202 -0
  50. package/docs/scripts/prettify/lang-css.js +2 -0
  51. package/docs/scripts/prettify/prettify.js +28 -0
  52. package/docs/scripts/search.js +99 -0
  53. package/docs/styles/jsdoc.css +776 -0
  54. package/docs/styles/prettify.css +80 -0
  55. package/g.backupDb.mjs +10 -0
  56. package/g.getSettings.mjs +17 -0
  57. package/g.initialData.mjs +94 -0
  58. package/g.initialTestData.mjs +21 -0
  59. package/g.mOrm.mjs +24 -0
  60. package/g.provideUsers.mjs +45 -0
  61. package/package.json +70 -0
  62. package/public/index.html +30 -0
  63. package/script.txt +22 -0
  64. package/server/WWebSso.mjs +649 -0
  65. package/server/hashPassword.mjs +27 -0
  66. package/server/proc.mjs +543 -0
  67. package/server/provideUsers.mjs +68 -0
  68. package/src/App.vue +123 -0
  69. package/src/components/Common/CheckYes.vue +85 -0
  70. package/src/components/Common/CheckYesNo.vue +91 -0
  71. package/src/components/Common/LabelItem.vue +106 -0
  72. package/src/components/Common/LoadingWinBar.vue +115 -0
  73. package/src/components/Layout.vue +160 -0
  74. package/src/components/LayoutContent.vue +193 -0
  75. package/src/components/LayoutContentUsers.vue +498 -0
  76. package/src/components/LayoutState.vue +91 -0
  77. package/src/components/PageLogin.vue +524 -0
  78. package/src/components/VeUser.vue +446 -0
  79. package/src/components/ruleGroup.vue +645 -0
  80. package/src/main.js +97 -0
  81. package/src/plugins/mDataSelectorSchema.mjs +30 -0
  82. package/src/plugins/mDataSupport.mjs +23 -0
  83. package/src/plugins/mShare.mjs +229 -0
  84. package/src/plugins/mUI.mjs +229 -0
  85. package/src/schema/gi.mjs +8 -0
  86. package/src/schema/index.mjs +18 -0
  87. package/src/schema/tables/tokens.mjs +70 -0
  88. package/src/schema/tables/users.mjs +110 -0
  89. package/src/store/actions.mjs +1 -0
  90. package/src/store/getters.mjs +1 -0
  91. package/src/store/index.mjs +25 -0
  92. package/src/store/mutations.mjs +333 -0
  93. package/src/store/types.mjs +15 -0
  94. package/srv.mjs +84 -0
  95. package/tableTags-web-sso.json +1 -0
  96. package/test/all.test.mjs +10 -0
  97. package/toolg/addVersion.mjs +4 -0
  98. package/toolg/cleanFolder.mjs +4 -0
  99. package/toolg/gDistRollup.mjs +36 -0
  100. package/toolg/genEntry.mjs +23 -0
  101. package/toolg/modifyReadme.mjs +4 -0
  102. package/vue.config.js +15 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js/app.ff64be1c.js","mappings":"01BAAIA,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,WAAW,CAAC,CAACC,KAAK,YAAYC,QAAQ,gBAAgBC,GAAG,CAAC,UAAYP,EAAIQ,SAAS,CAAGR,EAAIS,MAAuBT,EAAIU,KAApBR,EAAG,aAAsBA,EAAG,aAAa,CAACS,MAAM,CAAC,qBAAqB,oBAAoB,qBAAqB,sBAAsB,CAAEX,EAAIS,MAAOP,EAAG,UAAUF,EAAIU,MAAM,GAAGR,EAAG,iBAAiBA,EAAG,cAAcA,EAAG,aAAa,EAC/Y,EACIU,EAAkB,GCFlBb,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAACS,MAAM,CAAC,KAAOX,EAAIa,QAAQ,SAAWb,EAAIc,aAAaP,GAAG,CAAC,cAAc,SAASQ,GAAQf,EAAIa,QAAQE,CAAM,EAAE,OAASf,EAAIgB,cAAcC,YAAYjB,EAAIkB,GAAG,CAAC,CAACC,IAAI,QAAQC,GAAG,WAAW,MAAO,CAAClB,EAAG,MAAM,CAACmB,MAAK,WAAAC,OAAatB,EAAIuB,WAAW,EAAC,OAAAD,OAAMtB,EAAIuB,WAAU,OAAAD,OAAMtB,EAAIuB,WAAU,OAAAD,OAAMtB,EAAIuB,WAAU,QAAQ,CAACrB,EAAG,MAAM,CAACsB,YAAY,CAAC,iBAAiB,MAAM,YAAY,SAAS,MAAQ,SAAS,CAAY,KAAVxB,EAAIyB,IAAUvB,EAAG,OAAO,CAACF,EAAI0B,GAAG1B,EAAI2B,GAAG3B,EAAIyB,QAAQvB,EAAG,OAAO,CAACF,EAAI0B,GAAG,iBAAiBxB,EAAG,eAAe,CAACmB,MAAK,SAAAC,OAAWtB,EAAI4B,SAAQ,OAAOjB,MAAM,CAAC,OAAS,EAAE,kBAAmB,EAAK,UAAY,wBAAwB,oBAAsB,4BAA4B,GAAG,EAAEkB,OAAM,MAC9uB,EACIjB,EAAkB,G,6BCwCtB,GACAkB,WAAA,CACAC,QAAAA,EAAAA,EACAC,aAAAA,EAAAA,GAEAC,MAAA,CACA,EACAC,KAAA,WACA,OAEApB,YAAA,EACAqB,eAAA,IAEAZ,WAAA,GACAK,SAAA,EACAH,IAAA,GAGA,EACAW,QAAA,WAGA,IAAAC,EAAA,KAGAC,EAAAA,GAAAC,UAAAC,IAAAC,wBAAAJ,EAAAK,UAEA,EACAC,SAAA,CAEA9B,QAAA,WACA,IAAAwB,EAAA,KACAO,GAAAC,EAAAA,EAAAA,GAAAR,EAAA,wBAEA,OAAAO,CACA,GAGAE,QAAA,CAEAJ,WAAA,SAAAjB,GACA,KAAAA,IAAAA,CACA,EAEAT,aAAA,SAAAS,GAGA,IAAAY,EAAA,KAEAU,EAAAC,OAAAC,WAIAnC,EAAAiC,EAAA,EAAAV,EAAAd,WACAT,EAAAoC,KAAAC,IAAArC,EAAA,GACAA,EAAAoC,KAAAE,IAAAtC,EAAAuB,EAAAF,gBACAE,EAAAvB,YAAAA,EAIA,IAAAc,EAAAd,EAAA,EAAAuB,EAAAd,WACAK,EAAAsB,KAAAC,IAAAvB,EAAA,GACAS,EAAAT,SAAAA,CAGA,IC3GqQ,I,UCOjQyB,GAAY,OACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIF,EAAeA,EAAiB,QClB5BtD,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,WAAW,CAACS,MAAM,CAAC,KAAOX,EAAIsD,MAAM,MAAQtD,EAAIuD,GAAG,iBAAiB,QAAUvD,EAAIwD,QAAQ,cAAgB,QAAQ,kBAAoB,QAAQ,wBAA0B,mBAAmB,YAAc,QAAQ,sBAAwB,iBAAiB,UAAYxD,EAAIuD,GAAG,MAAM,WAAavD,EAAIuD,GAAG,QAAQhD,GAAG,CAAC,cAAc,SAASQ,GAAQf,EAAIsD,MAAMvC,CAAM,EAAE,WAAW,SAASA,GAAQ,OAAOf,EAAIyD,UAAS,EAAM,EAAE,YAAY,SAAS1C,GAAQ,OAAOf,EAAIyD,UAAS,EAAK,IACxhB,EACI7C,EAAkB,G,oBCoBtB,GACAkB,WAAA,CACA4B,SAAAA,EAAAA,GAEAzB,MAAA,CACA,EACAC,KAAA,WACA,OAEAoB,OAAA,EACAK,GAAA,KAEAH,QAAA,GAGA,EACApB,QAAA,WAGA,IAAAC,EAAA,KAGAC,EAAAA,GAAAC,UAAAC,IAAAoB,eAAAvB,EAAAwB,IAEA,EACAlB,SAAA,CACA,EACAG,QAAA,CAEAe,KAAA,SAAAL,GAGA,IAAAnB,EAAA,KAWA,OARAA,EAAAsB,IAAAG,EAAAA,EAAAA,KAGAzB,EAAAmB,QAAAA,EAGAnB,EAAAiB,OAAA,EAEAjB,EAAAsB,EACA,EAEAF,SAAA,SAAAM,GAGA,IAAA1B,EAAA,KAEA0B,EACA1B,EAAAsB,GAAAK,UAGA3B,EAAAsB,GAAAM,OAAA,SAIA5B,EAAAiB,OAAA,CAEA,ICnFkQ,ICO9P,GAAY,OACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIF,EAAe,EAAiB,QClB5BvD,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,WAAW,CAACS,MAAM,CAAC,KAAOX,EAAIsD,MAAM,MAAQtD,EAAIuD,GAAG,iBAAiB,QAAUvD,EAAIwD,QAAQ,cAAgB,QAAQ,kBAAoB,QAAQ,wBAA0B,mBAAmB,sBAAwB,iBAAiB,UAAW,EAAM,WAAaxD,EAAIuD,GAAG,OAAOhD,GAAG,CAAC,cAAc,SAASQ,GAAQf,EAAIsD,MAAMvC,CAAM,EAAE,YAAY,SAASA,GAAQ,OAAOf,EAAIkE,WAAW,IAC9b,EACItD,EAAkB,GCkBtB,GACAkB,WAAA,CACA4B,SAAAA,EAAAA,GAEAzB,MAAA,CACA,EACAC,KAAA,WACA,OAEAoB,OAAA,EACAK,GAAA,KAEAH,QAAA,GAGA,EACApB,QAAA,WAGA,IAAAC,EAAA,KAGAC,EAAAA,GAAAC,UAAAC,IAAA2B,aAAA9B,EAAAwB,IAEA,EACAlB,SAAA,CACA,EACAG,QAAA,CAEAe,KAAA,SAAAL,GAGA,IAAAnB,EAAA,KAWA,OARAA,EAAAsB,IAAAG,EAAAA,EAAAA,KAGAzB,EAAAmB,QAAAA,EAGAnB,EAAAiB,OAAA,EAEAjB,EAAAsB,EACA,EAEAO,UAAA,WAGA,IAAA7B,EAAA,KAGAA,EAAAsB,GAAAK,UAGA3B,EAAAiB,OAAA,CAEA,IC7EgQ,ICO5P,GAAY,OACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIF,EAAe,EAAiB,QClB5BvD,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACsB,YAAY,CAAC,SAAW,WAAW,MAAQ,QAAQ,OAAS,WAAW,CAAGxB,EAAIoE,aAOi7FlE,EAAG,MAAM,CAACsB,YAAY,CAAC,SAAW,WAAW,IAAM,MAAM,KAAO,MAAM,MAAQ,OAAO,OAAS,OAAO,QAAU,OAAO,cAAc,SAAS,kBAAkB,WAAW,CAACtB,EAAG,MAAM,CAACS,MAAM,CAAC,MAAQ,6BAA6B,MAAQ,OAAO,OAAS,OAAO,QAAU,cAAc,CAACT,EAAG,OAAO,CAACS,MAAM,CAAC,MAAQ,IAAI,OAAS,IAAI,EAAI,MAAM,EAAI,MAAM,KAAO,eAAe,GAAK,MAAM,CAACT,EAAG,UAAU,CAACS,MAAM,CAAC,GAAK,0BAA0B,cAAgB,IAAI,MAAQ,sCAAsC,IAAM,OAAO,SAAW,SAAS,OAAS,gBAAgBT,EAAG,UAAU,CAACS,MAAM,CAAC,cAAgB,IAAI,MAAQ,sCAAsC,IAAM,OAAO,SAAW,SAAS,OAAS,gBAAgBT,EAAG,UAAU,CAACS,MAAM,CAAC,cAAgB,QAAQ,MAAQ,sCAAsC,IAAM,OAAO,SAAW,SAAS,OAAS,YAAYT,EAAG,UAAU,CAACS,MAAM,CAAC,cAAgB,SAAS,MAAQ,sCAAsC,IAAM,OAAO,SAAW,SAAS,OAAS,cAAcT,EAAG,OAAO,CAACS,MAAM,CAAC,MAAQ,IAAI,OAAS,IAAI,EAAI,OAAO,EAAI,MAAM,KAAO,eAAe,GAAK,MAAM,CAACT,EAAG,UAAU,CAACS,MAAM,CAAC,cAAgB,IAAI,MAAQ,sCAAsC,IAAM,OAAO,SAAW,SAAS,OAAS,oBAAoBT,EAAG,UAAU,CAACS,MAAM,CAAC,cAAgB,IAAI,MAAQ,sCAAsC,IAAM,OAAO,SAAW,SAAS,OAAS,gBAAgBT,EAAG,UAAU,CAACS,MAAM,CAAC,cAAgB,QAAQ,MAAQ,sCAAsC,IAAM,OAAO,SAAW,SAAS,OAAS,YAAYT,EAAG,UAAU,CAACS,MAAM,CAAC,cAAgB,SAAS,MAAQ,sCAAsC,IAAM,OAAO,SAAW,SAAS,OAAS,cAAcT,EAAG,OAAO,CAACS,MAAM,CAAC,MAAQ,IAAI,OAAS,IAAI,EAAI,OAAO,EAAI,OAAO,KAAO,eAAe,GAAK,MAAM,CAACT,EAAG,UAAU,CAACS,MAAM,CAAC,cAAgB,IAAI,MAAQ,qCAAqC,IAAM,OAAO,SAAW,SAAS,OAAS,oBAAoBT,EAAG,UAAU,CAACS,MAAM,CAAC,cAAgB,IAAI,MAAQ,qCAAqC,IAAM,OAAO,SAAW,SAAS,OAAS,oBAAoBT,EAAG,UAAU,CAACS,MAAM,CAAC,cAAgB,QAAQ,MAAQ,qCAAqC,IAAM,OAAO,SAAW,SAAS,OAAS,YAAYT,EAAG,UAAU,CAACS,MAAM,CAAC,cAAgB,SAAS,MAAQ,qCAAqC,IAAM,OAAO,SAAW,SAAS,OAAS,cAAcT,EAAG,OAAO,CAACS,MAAM,CAAC,MAAQ,IAAI,OAAS,IAAI,EAAI,MAAM,EAAI,OAAO,KAAO,eAAe,GAAK,MAAM,CAACT,EAAG,UAAU,CAACS,MAAM,CAAC,GAAK,0BAA0B,cAAgB,IAAI,MAAQ,sCAAsC,IAAM,OAAO,SAAW,SAAS,OAAS,gBAAgBT,EAAG,UAAU,CAACS,MAAM,CAAC,cAAgB,IAAI,MAAQ,sCAAsC,IAAM,OAAO,SAAW,SAAS,OAAS,oBAAoBT,EAAG,UAAU,CAACS,MAAM,CAAC,cAAgB,QAAQ,MAAQ,sCAAsC,IAAM,OAAO,SAAW,SAAS,OAAS,YAAYT,EAAG,UAAU,CAACS,MAAM,CAAC,cAAgB,SAAS,MAAQ,sCAAsC,IAAM,OAAO,SAAW,SAAS,OAAS,kBAP55L,CAACT,EAAG,MAAM,CAACmB,MAAK,0MAAAC,OAE5HtB,EAAIqE,GAAE,SAAA/C,OAAQtB,EAAIsE,GAAE,UAAAhD,OAAStB,EAAIuE,GAAE,0BAChF,CAACrE,EAAG,MAAM,CAAC,EAAE,CAACA,EAAG,MAAM,CAACmB,MAAK,eAAAC,OAAiBtB,EAAIwE,SAAS,EAAC,SAAStE,EAAG,MAAM,CAACmB,MAAK,+EAAAC,OAEpEtB,EAAIyE,aAAY,qDAAAnD,OAAoDtB,EAAI0E,GAAE,mWAElF,CAACxE,EAAG,MAAM,CAACmB,MAAK,iJAAAC,OAAmJtB,EAAI2E,GAAE,MAAM,CAACzE,EAAG,MAAM,CAACS,MAAM,CAAC,MAAQX,EAAIwE,SAAS,OAASxE,EAAIwE,SAAS,IAAMxE,EAAI4E,aAAa1E,EAAG,MAAM,CAACmB,MAAK,WAAAC,OAAatB,EAAIwE,SAAS,EAAExE,EAAI6E,eAAc,OAAAvD,OAAMtB,EAAI6E,eAAc,OAAAvD,OAAMtB,EAAI6E,eAAc,OAAAvD,OAAMtB,EAAI6E,eAAc,QAAQ,CAAC3E,EAAG,MAAM,CAACsB,YAAY,CAAC,iBAAiB,OAAO,aAAa,SAAS,YAAY,WAAW,CAACxB,EAAI0B,GAAG,IAAI1B,EAAI2B,GAAG3B,EAAI8E,SAAS,OAAO5E,EAAG,MAAM,CAACsB,YAAY,CAAC,QAAU,OAAO,cAAc,YAAY,CAACtB,EAAG,MAAM,CAACsB,YAAY,CAAC,QAAU,OAAO,cAAc,SAAS,QAAU,WAAW,WAAa,0BAA0B,CAACtB,EAAG,QAAQ,CAACS,MAAM,CAAC,KAAO,cAAc,MAAQ,OAAO,WAAa,OAAO,KAAO,OAAO,GAAGT,EAAG,MAAM,CAACsB,YAAY,CAAC,MAAQ,OAAO,QAAU,WAAW,WAAa,0BAA0B,CAACtB,EAAG,MAAM,CAACmB,MAAK,iCAAoC,CAACrB,EAAI0B,GAAG,IAAI1B,EAAI2B,GAAG3B,EAAIuD,GAAG,YAAY,OAAOrD,EAAG,QAAQ,CAACS,MAAM,CAAC,UAAY,OAAO,sBAAwB,UAAU,2BAA6B,OAAO,2BAA6B,QAAQJ,GAAG,CAAC,MAAQP,EAAI+E,OAAOC,MAAM,CAACC,MAAOjF,EAAIkF,QAASC,SAAS,SAAUC,GAAMpF,EAAIkF,QAAQE,CAAG,EAAEC,WAAW,cAAc,KAAKnF,EAAG,MAAM,CAACsB,YAAY,CAAC,cAAc,UAAUtB,EAAG,MAAM,CAACsB,YAAY,CAAC,QAAU,OAAO,cAAc,YAAY,CAACtB,EAAG,MAAM,CAACsB,YAAY,CAAC,QAAU,OAAO,cAAc,SAAS,QAAU,WAAW,WAAa,0BAA0B,CAACtB,EAAG,QAAQ,CAACS,MAAM,CAAC,KAAO,WAAW,MAAQ,OAAO,WAAa,OAAO,KAAO,OAAO,GAAGT,EAAG,MAAM,CAACsB,YAAY,CAAC,MAAQ,OAAO,QAAU,WAAW,WAAa,0BAA0B,CAACtB,EAAG,MAAM,CAACmB,MAAK,iCAAoC,CAACrB,EAAI0B,GAAG,IAAI1B,EAAI2B,GAAG3B,EAAIuD,GAAG,aAAa,OAAOrD,EAAG,QAAQ,CAACS,MAAM,CAAC,UAAY,OAAO,sBAAwB,UAAU,2BAA6B,OAAO,2BAA6B,OAAO,UAAYX,EAAIsF,aAAe,UAAY,cAAc,eAAiB,OAAO,oBAAsB,OAAO,oBAAsB,OAAO,iBAAmBtF,EAAIsF,aAAe,OAAO,OAAO,UAAYtF,EAAIsF,cAAc/E,GAAG,CAAC,cAAc,SAASQ,GAAQf,EAAIsF,cAActF,EAAIsF,YAAY,EAAE,MAAQtF,EAAI+E,OAAOC,MAAM,CAACC,MAAOjF,EAAIuF,SAAUJ,SAAS,SAAUC,GAAMpF,EAAIuF,SAASH,CAAG,EAAEC,WAAW,eAAe,KAAKnF,EAAG,MAAM,CAACsB,YAAY,CAAC,cAAc,UAAUtB,EAAG,MAAM,CAACsB,YAAY,CAAC,QAAU,UAAU,aAAa,WAAW,CAACtB,EAAG,cAAc,CAACmB,MAAK,WAAAC,OAAatB,EAAIwF,QAAQ,EAAE,GAAG,KAAK7E,MAAM,CAAC,KAAOX,EAAIuD,GAAG,SAAS,aAAe,SAAS,aAAe,CAACkC,EAAE,EAAEC,EAAE,KAAK,gBAAkB,wBAAwB,qBAAuB,wBAAwB,QAAU,QAAQ,SAAW1F,EAAIwF,SAASjF,GAAG,CAAC,MAAQP,EAAI+E,UAAU,WAAW7E,EAAG,MAAM,CAACsB,YAAY,CAAC,SAAW,WAAW,IAAM,OAAO,MAAQ,SAAS,CAACtB,EAAG,MAAM,CAACsB,YAAY,CAAC,eAAe,WAAW,CAACtB,EAAG,cAAc,CAACsB,YAAY,CAAC,MAAQ,SAASb,MAAM,CAAC,MAAQX,EAAI2F,SAASpF,GAAG,CAAC,MAAQP,EAAI4F,YAAYZ,MAAM,CAACC,MAAOjF,EAAI6F,aAAcV,SAAS,SAAUC,GAAMpF,EAAI6F,aAAaT,CAAG,EAAEC,WAAW,mBAAmB,OAAkhG,EACxlM,EACIzE,EAAkB,G,0GCyJtB,GACAkB,WAAA,CACAgE,MAAAA,EAAAA,EACAC,MAAAA,EAAAA,EACAC,YAAAA,EAAAA,EACAC,YAAAA,EAAAA,GAEAhE,MAAA,CACA,EACAC,KAAA,WACA,OAEAyD,QAAA,CACA,CACAO,GAAA,MACAC,KAAA,MAEA,CACAD,GAAA,MACAC,KAAA,YAGAN,aAAA,CACAK,GAAA,MACAC,KAAA,MAGA3B,SAAA,IAEAC,aAAA,IACAI,eAAA,GAEAT,cAAA,EAEAc,QAAA,GAEAI,cAAA,EACAC,SAAA,GAGA,EACAnD,QAAA,WACA,IAAAC,EAAA,KAGAA,EAAA+D,WAEA,EACAzD,SAAA,CAEA0D,UAAA,WAGA,IAAAhE,EAAA,KAEA,OAAAQ,EAAAA,EAAAA,GAAAR,EAAA,yBACA,EAEAiE,UAAA,WAGA,IAAAjE,EAAA,KAEA,OAAAQ,EAAAA,EAAAA,GAAAR,EAAA,yBACA,EAEAkE,UAAA,WAGA,IAAAlE,EAAA,KAEA,OAAAQ,EAAAA,EAAAA,GAAAR,EAAA,4BACA,EAEAmE,cAAA,WAGA,IAAAnE,EAAA,KAEA,OAAAQ,EAAAA,EAAAA,GAAAR,EAAA,+BACA,EAEAyC,QAAA,CACAjC,IAAA,WACA,IAAAR,EAAA,KACAoE,EAAApE,EAAAkB,GAAA,cAOA,OALAmD,EAAAA,EAAAA,GAAAD,KACAA,EAAApE,EAAAkB,GAAA,mBAGAoD,SAAAC,MAAAH,EACAA,CACA,GAMA7B,QAAA,WAGA,IAAAvC,EAAA,KAEA,OAAAQ,EAAAA,EAAAA,GAAAR,EAAA,mCACA,EAEAwE,2BAAA,WAGA,IAAAxE,EAAA,KAEA,OAAAQ,EAAAA,EAAAA,GAAAR,EAAA,sDACA,EAEAgC,GAAA,WACA,IAAAhC,EAAA,KACAoE,GAAA5D,EAAAA,EAAAA,GAAAR,EAAA,uCACA,OAAAoE,CACA,EAEAnC,GAAA,WACA,IAAAjC,EAAA,KACAoE,GAAA5D,EAAAA,EAAAA,GAAAR,EAAA,uCACA,OAAAoE,CACA,EAEAlC,GAAA,WACA,IAAAlC,EAAA,KACAoE,GAAA5D,EAAAA,EAAAA,GAAAR,EAAA,uCACA,OAAAoE,CACA,EAEA/B,GAAA,WACA,IAAArC,EAAA,KACAoE,GAAA5D,EAAAA,EAAAA,GAAAR,EAAA,uCACA,OAAAoE,CACA,EAEA9B,GAAA,WACA,IAAAtC,EAAA,KACAoE,GAAA5D,EAAAA,EAAAA,GAAAR,EAAA,uCACA,OAAAoE,CACA,EAEAK,OAAA,WAGA,IAAAzE,EAAA,KAEA,OAAAQ,EAAAA,EAAAA,GAAAR,EAAA,kCACA,EAEAmD,QAAA,WAGA,IAAAnD,EAAA,KAEA,OAAAqE,EAAAA,EAAAA,GAAArE,EAAA6C,WAAAwB,EAAAA,EAAAA,GAAArE,EAAAkD,SACA,GAGAzC,QAAA,CAEA8C,WAAA,SAAAnE,GAEA,IAAAY,EAAA,KACA0E,EAAAtF,EAAAyE,GACA7D,EAAA2E,IAAAC,QAAAF,EACA,EAEAG,MAAA,SAAAC,EAAAC,GAIAD,EAAAA,EAAAE,WAAA,UAAAD,IAGAE,EAAAA,EAAAA,MACAC,QAAAC,IAAA,WAAAL,GACAM,YAAA,WACAzE,OAAA0E,SAAAC,KAAAR,CACA,SAGAnE,OAAA0E,SAAAC,KAAAR,CAGA,EAEAf,UAAA,WACA,IAAA/D,EAAA,cAEAuF,IAAA,OAAAC,EAAAC,MAAA,KAAAC,UAAA,CAuEA,SAAAF,IAFA,OAEAA,GAAAG,EAAAA,EAAAA,GAAAC,IAAAA,MAvEA,SAAAC,IAAA,IAAAC,EAAAC,EAAAjH,EAAAiG,EAAAiB,EAAAC,EAAA,OAAAL,IAAAA,MAAA,SAAAM,GAAA,eAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAGA,GAFAN,EAAA,KAGA9F,EAAA+B,aAAA,CAAAmE,EAAAE,KAAA,eAAAF,EAAAG,OAAA,wBAAAH,EAAAE,KAAA,GAKAE,EAAAA,EAAAA,IAAA,WACA,OAAAtG,EAAAiE,SACA,WAKA,GAFA8B,EAAA/F,EAAAyE,QAGAJ,EAAAA,EAAAA,GAAA0B,GAAA,CAAAG,EAAAE,KAAA,SAIA,OAHApG,EAAA+B,cAAA,EAGA/B,EAAAuG,OAAAvG,EAAAkB,GAAA,2BAAAsF,KAAA,UAAAN,EAAAG,OAAA,kBASA,OAHAvH,EAAA,GAAAG,OAAA8G,EAAA,cAGAG,EAAAE,KAAA,GACAK,aAAAC,QAAA5H,GAAA,eAAAiG,EAAAmB,EAAAS,KAAAT,EAAAE,KAAA,GAIApG,EAAA4G,MAAAC,WAAA9B,GACA+B,OAAA,SAAAC,GACAjB,EAAAiB,CAEA,gBACAjB,EAAA,CAAAI,EAAAE,KAAA,SACA,OAAApG,EAAA+B,cAAA,EAAAmE,EAAAG,OAAA,yBAAAH,EAAAE,KAAA,GAKApG,EAAA4G,MAAAI,eAAAjC,GAAA,QAOA,GAPAiB,EAAAE,EAAAS,KAIAV,GAAAzF,EAAAA,EAAAA,GAAAwF,EAAA,aAIA3B,EAAAA,EAAAA,GAAA4B,GAAA,CAAAC,EAAAE,KAAA,SAIA,OAHApG,EAAA+B,cAAA,EAGA/B,EAAAuG,OAAAvG,EAAAkB,GAAA,0BAAAsF,KAAA,UAAAN,EAAAG,OAAA,kBAMArG,EAAA6E,MAAAoB,EAAAlB,GAGA/E,EAAA+B,cAAA,2BAAAmE,EAAAe,OAAA,GAAApB,EAAA,KAEAL,EAAAC,MAAA,KAAAC,UAAA,CAGAH,IACAuB,OAAA,SAAAC,GACA7B,QAAAC,IAAA,YAAA4B,GAGA/G,EAAAuG,OAAAvG,EAAAkB,GAAA,wBAAAsF,KAAA,SAEA,IACAU,SAAA,WAGAlH,EAAA2E,IAAAwC,eAAA,EAEA,GAEA,EAEAzE,MAAA,WACA,IAAA1C,EAAA,cAEAuF,IAAA,OAAA6B,EAAA3B,MAAA,KAAAC,UAAA,CAqDA,SAAA0B,IAFA,OAEAA,GAAAzB,EAAAA,EAAAA,GAAAC,IAAAA,MArDA,SAAAyB,IAAA,IAAAtB,EAAAjH,EAAAkH,EAAAjB,EAAAkB,EAAA,OAAAL,IAAAA,MAAA,SAAA0B,GAAA,eAAAA,EAAAnB,KAAAmB,EAAAlB,MAAA,OAKA,OAFApG,EAAA2E,IAAAwC,eAAA,GAEAG,EAAAlB,KAAA,GACAmB,EAAAA,EAAAA,GAAA,YAKA,GAFAxB,EAAA/F,EAAAyE,QAGAJ,EAAAA,EAAAA,GAAA0B,GAAA,CAAAuB,EAAAlB,KAAA,eAAAkB,EAAAjB,OAAA,SACAmB,QAAA5F,OAAA5B,EAAAkB,GAAA,mCAOA,OAHApC,EAAA,GAAAG,OAAA8G,EAAA,cAGAuB,EAAAlB,KAAA,EACApG,EAAA4G,MAAAa,0BAAAzH,EAAA6C,QAAA7C,EAAAkD,UAAA,cAAA8C,EAAAsB,EAAAX,KAAAW,EAAAlB,KAAA,GAIAK,aAAAiB,QAAA5I,EAAA,YAMA,GAHAiG,GAAAvE,EAAAA,EAAAA,GAAAwF,EAAA,aAIA3B,EAAAA,EAAAA,GAAAU,GAAA,CAAAuC,EAAAlB,KAAA,gBAAAkB,EAAAjB,OAAA,SACAmB,QAAA5F,OAAA5B,EAAAkB,GAAA,0CAAAoG,EAAAlB,KAAA,GAIAK,aAAAiB,QAAA5I,EAAAiG,GAAA,QAMA,GAHAkB,GAAAzF,EAAAA,EAAAA,GAAAwF,EAAA,aAIA3B,EAAAA,EAAAA,GAAA4B,GAAA,CAAAqB,EAAAlB,KAAA,gBAAAkB,EAAAjB,OAAA,SACAmB,QAAA5F,OAAA5B,EAAAkB,GAAA,mCAIAlB,EAAA6E,MAAAoB,EAAAlB,GAAA,yBAAAuC,EAAAL,OAAA,GAAAI,EAAA,KAEAD,EAAA3B,MAAA,KAAAC,UAAA,CAGAH,IACAuB,OAAA,SAAAC,GACA7B,QAAAC,IAAA,QAAA4B,GAGA/G,EAAAuG,OAAAvG,EAAAkB,GAAA,wBAAAsF,KAAA,SAEA,IACAU,SAAA,WAGAlH,EAAA2E,IAAAwC,eAAA,EAEA,GAEA,ICpgBwP,ICOpP,IAAY,OACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QClB5BzJ,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACsB,YAAY,CAAC,OAAS,QAAQ,WAAa,YAAY,CAACtB,EAAG,MAAM,CAACmB,MAAK,UAAAC,OAAYtB,EAAIwG,cAAa,8HAA8H,CAA+IxG,EAAIU,KAAKR,EAAG,MAAM,CAACsB,YAAY,CAAC,eAAe,MAAM,cAAc,WAAW,CAACtB,EAAG,MAAM,CAACsB,YAAY,CAAC,QAAU,OAAO,cAAc,WAAW,CAAExB,EAAI4E,QAAS1E,EAAG,MAAM,CAACsB,YAAY,CAAC,gBAAgB,OAAO,QAAU,OAAO,cAAc,WAAW,CAACtB,EAAG,MAAM,CAACsB,YAAY,CAAC,MAAQ,OAAO,OAAS,QAAQb,MAAM,CAAC,IAAMX,EAAI4E,aAAa5E,EAAIU,KAAKR,EAAG,MAAM,CAACA,EAAG,MAAM,CAACsB,YAAY,CAAC,YAAY,SAAS,MAAQ,SAAS,CAACxB,EAAI0B,GAAG1B,EAAI2B,GAAG3B,EAAI8E,YAAY5E,EAAG,MAAM,CAACsB,YAAY,CAAC,YAAY,SAAS,MAAQ,SAAS,CAACxB,EAAI0B,GAAG1B,EAAI2B,GAAG3B,EAAIuD,GAAG,4BAA4BrD,EAAG,MAAM,CAACsB,YAAY,CAAC,MAAQ,UAAUtB,EAAG,MAAM,CAACsB,YAAY,CAAC,gBAAgB,OAAO,cAAc,WAAW,CAACtB,EAAG,cAAc,CAACsB,YAAY,CAAC,MAAQ,SAASb,MAAM,CAAC,MAAQX,EAAI2F,SAASpF,GAAG,CAAC,MAAQP,EAAI4F,YAAYZ,MAAM,CAACC,MAAOjF,EAAI6F,aAAcV,SAAS,SAAUC,GAAMpF,EAAI6F,aAAaT,CAAG,EAAEC,WAAW,mBAAmB,IAAI,GAAGnF,EAAG,MAAM,CAACmB,MAAK,uBAAAC,OAAyBtB,EAAIwG,cAAa,UAAU,CAACtG,EAAG,kBAAkB,IAC/4C,EACIU,GAAkB,G,sBCFlBb,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,WAAW,CAAC,CAACC,KAAK,YAAYC,QAAQ,gBAAgBkB,YAAY,CAAC,OAAS,OAAO,MAAQ,QAAQjB,GAAG,CAAC,UAAYP,EAAIQ,SAAS,CAAER,EAAIsG,UAAW,CAACpG,EAAG,UAAU,CAACmB,MAAK,UAAAC,OAAYtB,EAAIgK,YAAW,mBAAmBrJ,MAAM,CAAC,YAAcX,EAAIiK,YAAY,eAAiBjK,EAAIkK,eAAe,eAAiBlK,EAAImK,eAAe,KAAO,YAAY,iBAAkB,EAAK,YAAa,EAAK,YAA8B,IAAhBnK,EAAIiK,aAAiB1J,GAAG,CAAC,qBAAqB,SAASQ,GAAQf,EAAIiK,YAAYlJ,CAAM,EAAE,sBAAsB,SAASA,GAAQf,EAAIiK,YAAYlJ,CAAM,GAAGE,YAAYjB,EAAIkB,GAAG,CAAC,CAACC,IAAI,SAASC,GAAG,SAASa,GAAO,MAAO,CAAC/B,EAAG,MAAM,CAACmB,MAAK,UAAAC,OAAYW,EAAMmI,OAAM,4CAA4C,CAAClK,EAAG,gBAAgB,CAACsB,YAAY,CAAC,OAAS,QAAQb,MAAM,CAAC,MAAQX,EAAIqK,MAAM,WAAarK,EAAIsK,WAAW,kBAAkB,OAAO,wBAAwB,OAAO,yBAAyB,UAAU,kBAAkB,OAAO,wBAAwB,OAAO,yBAAyB,UAAU,wBAAwB,OAAO,8BAA8B,UAAU,+BAA+B,UAAU,aAAe,CAAC7E,EAAE,GAAGC,EAAE,KAAKnF,GAAG,CAAC,MAAQ,SAACgK,GAAQvK,EAAIwK,QAAQD,EAAKpJ,GAAG,KAAMnB,EAAIyK,OAAQvK,EAAG,MAAM,CAACmB,MAAK,0CAA6C,CAACnB,EAAG,gBAAgB,CAACS,MAAM,CAAC,aAAe,CAAC8E,EAAE,EAAEC,EAAE,GAAG,KAAO,iBAAiB,SAAW,GAAG,gBAAkB,OAAO,qBAAuB,OAAO,qBAAuB,OAAO,YAAc,cAAc,iBAAmB,OAAO,iBAAmB,OAAO,QAAU1F,EAAIuD,GAAG,gBAAgB,QAAS,GAAMhD,GAAG,CAAC,MAAQ,SAASQ,GAAQf,EAAIyK,QAAO,CAAK,MAAM,GAAGzK,EAAIU,MAAM,GAAG,GAAG,CAACS,IAAI,UAAUC,GAAG,SAASa,GAAO,MAAO,CAAC/B,EAAG,MAAM,CAACmB,MAAK,UAAAC,OAAYW,EAAMmI,OAAM,cAAA9I,OAAaW,EAAMyI,MAAK,2BAA2B,CAAC,CAAgB,UAAd1K,EAAIwK,QAAmBtK,EAAG,sBAAsBF,EAAIU,MAAQV,EAAIyK,OAAyazK,EAAIU,KAAraR,EAAG,MAAM,CAACmB,MAAK,yCAA4C,CAACnB,EAAG,gBAAgB,CAACS,MAAM,CAAC,aAAe,CAAC8E,EAAE,EAAEC,EAAE,GAAG,KAAO,kBAAkB,SAAW,GAAG,gBAAkB,OAAO,qBAAuB,OAAO,qBAAuB,OAAO,YAAc,cAAc,iBAAmB,OAAO,iBAAmB,OAAO,QAAU1F,EAAIuD,GAAG,gBAAgB,QAAS,GAAMhD,GAAG,CAAC,MAAQ,SAASQ,GAAQf,EAAIyK,QAAO,CAAI,MAAM,IAAa,GAAG,IAAI,MAAK,EAAM,YAAYzF,MAAM,CAACC,MAAOjF,EAAIyK,OAAQtF,SAAS,SAAUC,GAAMpF,EAAIyK,OAAOrF,CAAG,EAAEC,WAAW,aAAa,CAACnF,EAAG,MAAM,CAACsB,YAAY,CAAC,QAAU,OAAO,YAAY,WAAW,CAACxB,EAAI0B,GAAG,IAAI1B,EAAI2B,GAAG3B,EAAIuD,GAAG,gBAAgB,SAAS,EAC3/E,EACI3C,GAAkB,G,gCCFlBb,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,WAAW,CAAC,CAACC,KAAK,YAAYC,QAAQ,gBAAgBkB,YAAY,CAAC,OAAS,QAAQb,MAAM,CAAC,YAAcX,EAAI2K,aAAapK,GAAG,CAAC,UAAYP,EAAI4K,cAAc,CAAC1K,EAAG,MAAM,CAACE,WAAW,CAAC,CAACC,KAAK,YAAYC,QAAQ,gBAAgBkB,YAAY,CAAC,gBAAgB,iBAAiB,WAAa,QAAQjB,GAAG,CAAC,UAAYP,EAAI6K,aAAa,CAAC3K,EAAG,MAAM,CAACsB,YAAY,CAAC,QAAU,eAAe,iBAAiB,MAAM,QAAU,sBAAsB,CAACtB,EAAG,MAAM,CAACsB,YAAY,CAAC,QAAU,OAAO,cAAc,SAAS,QAAU,mBAAmB,gBAAgB,sBAAsB,CAACtB,EAAG,QAAQ,CAACS,MAAM,CAAC,KAAOX,EAAI8K,uBAAuB,MAAQ,aAAa5K,EAAG,MAAM,CAACsB,YAAY,CAAC,eAAe,OAAO,YAAY,SAAS,MAAQ,YAAY,CAACxB,EAAI0B,GAAG,YAAY,KAAKxB,EAAG,MAAM,CAACsB,YAAY,CAAC,QAAU,eAAe,iBAAiB,QAAQ,CAACtB,EAAG,MAAM,CAACsB,YAAY,CAAC,QAAU,sBAAsB,WAAa,SAAS,CAACtB,EAAG,MAAM,CAACsB,YAAY,CAAC,QAAU,SAAS,CAACtB,EAAG,UAAU,CAACS,MAAM,CAAC,KAAOX,EAAIuD,GAAG,eAAe,yBAA2B,UAAU,8BAAgC,OAAO,sBAAwB,UAAU,2BAA6B,WAAWyB,MAAM,CAACC,MAAOjF,EAAI+K,aAAc5F,SAAS,SAAUC,GAAMpF,EAAI+K,aAAa3F,CAAG,EAAEC,WAAW,mBAAmB,GAAIrF,EAAI+K,aAAc7K,EAAG,MAAM,CAACsB,YAAY,CAAC,cAAc,MAAM,YAAY,SAAS,OAAS,SAAS,CAACtB,EAAG,MAAM,CAACsB,YAAY,CAAC,QAAU,YAAY,CAACxB,EAAI0B,GAAG,OAAO1B,EAAI2B,GAAG3B,EAAIuD,GAAG,aAAa,OAAOrD,EAAG,MAAM,CAACsB,YAAY,CAAC,QAAU,YAAY,CAACxB,EAAI0B,GAAG,OAAO1B,EAAI2B,GAAG3B,EAAIuD,GAAG,aAAa,SAASvD,EAAIU,SAAUV,EAAIgL,WAAY9K,EAAG,MAAM,CAACsB,YAAY,CAAC,QAAU,sBAAsB,aAAa,oBAAoB,gBAAgB,oBAAoB,WAAa,UAAU,QAAU,OAAO,cAAc,SAAS,kBAAkB,aAAa,CAACtB,EAAG,cAAc,CAACS,MAAM,CAAC,aAAe,CAAC8E,EAAE,EAAEC,EAAE,IAAI,KAAO1F,EAAIuD,GAAG,eAAe,KAAOvD,EAAIiL,sBAAsB,gBAAkB,qBAAqB,qBAAuB,qBAAqB,UAAY,OAAO,eAAiB,OAAO,UAAY,OAAO,eAAiB,QAAQ1K,GAAG,CAAC,MAAQP,EAAIkL,eAAe,GAAGlL,EAAIU,OAASV,EAAImL,aAG1jDjL,EAAG,MAAM,CAACsB,YAAY,CAAC,QAAU,YAAY,YAAY,WAAW,CAACxB,EAAI0B,GAAG,IAAI1B,EAAI2B,GAAG3B,EAAIuD,GAAG,gBAAgB,OAH09CrD,EAAG,MAAM,CAACmB,MAAK,WAAAC,OAAatB,EAAIoL,YAAW,QAAQ,CAAClL,EAAG,MAAM,CAACsB,YAAY,CAAC,WAAa,OAAO,aAAa,4FAA4F,CAACtB,EAAG,MAAM,CAACE,WAAW,CAAC,CAACC,KAAK,YAAYC,QAAQ,gBAAgBkB,YAAY,CAAC,QAAU,sBAAsB,gBAAgB,kBAAkBjB,GAAG,CAAC,UAAYP,EAAIqL,mBAAmB,CAACnL,EAAG,MAAM,CAACsB,YAAY,CAAC,QAAU,oBAAoB,QAAU,eAAe,iBAAiB,SAAS,MAAQ,OAAO,YAAY,WAAW,CAACxB,EAAI0B,GAAG,IAAI1B,EAAI2B,GAAG3B,EAAIuD,GAAG,aAAa,OAAQvD,EAAI+K,aAAc7K,EAAG,MAAM,CAACsB,YAAY,CAAC,QAAU,oBAAoB,QAAU,eAAe,iBAAiB,WAAW,CAACtB,EAAG,cAAc,CAACS,MAAM,CAAC,aAAe,CAAC8E,EAAE,EAAEC,EAAE,IAAI,KAAO1F,EAAIuD,GAAG,WAAW,KAAOvD,EAAIsL,sBAAsB,gBAAkB,qBAAqB,qBAAuB,qBAAqB,UAAY,OAAO,eAAiB,OAAO,UAAY,OAAO,eAAiB,QAAQ/K,GAAG,CAAC,MAAQP,EAAIuL,iBAAiB,GAAGvL,EAAIU,OAAOR,EAAG,gBAAgB,CAACmB,MAAK,UAAAC,OAAYtB,EAAIwL,kBAAiB,0BAA0B,CAACtL,EAAG,MAAM,CAACsB,YAAY,CAAC,QAAU,SAASxB,EAAIyL,GAAIzL,EAAI0L,aAAa,SAASC,EAAGC,GAAK,OAAO1L,EAAG,MAAM,CAACiB,IAAI,OAAOyK,EAAIpK,YAAY,CAAC,QAAU,SAAS,CAACtB,EAAG,MAAM,CAACsB,YAAY,CAAC,iBAAiB,MAAM,QAAU,OAAO,cAAc,SAAS,gBAAgB,oBAAoB,CAACtB,EAAG,MAAM,CAACsB,YAAY,CAAC,gBAAgB,MAAM,MAAQ,OAAO,YAAY,WAAW,CAACxB,EAAI0B,GAAG,IAAI1B,EAAI2B,GAAG3B,EAAIuD,GAAG,SAAS,QAAQrD,EAAG,MAAM,CAACsB,YAAY,CAAC,MAAQ,OAAO,YAAY,WAAW,CAACxB,EAAI0B,GAAG,IAAI1B,EAAI2B,GAAG3B,EAAI6L,QAAQD,IAAM,SAAS1L,EAAG,MAAM,CAACsB,YAAY,CAAC,cAAc,SAASxB,EAAIyL,GAAIE,GAAI,SAAStD,EAAEyD,GAAI,OAAO5L,EAAG,MAAM,CAACiB,IAAI,MAAM2K,EAAGtK,YAAY,CAAC,QAAU,eAAe,OAAS,sBAAsB,CAACtB,EAAG,cAAc,CAACS,MAAM,CAAC,KAAO0H,EAAEhI,KAAK,aAAe,CACh7HoF,EAAG,EACHC,EAAG,IACL,KAAO1F,EAAI+L,WAAW1D,GAAGrI,EAAIgM,aAAa,GAAG,gBAAkBhM,EAAIiM,eAAe5D,GAAG,wBAAwBrI,EAAI+L,WAAW1D,GAAG,yBAAyB,uBAAuB,qBAAuBrI,EAAIiM,eAAe5D,GAAG,wBAAwBrI,EAAI+L,WAAW1D,GAAG,yBAAyB,uBAAuB,UAAY,OAAO,eAAiB,OAAO,UAAY,OAAO,eAAiB,OAAO,MAAQrI,EAAI+K,cAAcxK,GAAG,CAAC,MAAQ,SAASQ,GAAQ,OAAOf,EAAIkM,cAAc7D,EAAE,EAAE,cAAc,SAAStH,GAAQ,OAAOf,EAAImM,gBAAgB9D,EAAE,MAAM,EAAE,IAAG,IAAI,IAAG,MAAM,MAC1lB,EACIzH,GAAkB,G,mGCyMtB,IACAkB,WAAA,CACAgE,MAAAA,EAAAA,EACAG,YAAAA,EAAAA,EACAmG,QAAAA,GAAAA,EACAC,cAAAA,GAAAA,GAEApK,MAAA,CACA,EACAC,KAAA,WACA,OACA4I,uBAAAA,GAAAA,IACAQ,sBAAAA,GAAAA,IACAgB,wBAAAA,GAAAA,IACAN,aAAAA,GAAAA,IAEAO,WAAA,IACAvC,YAAA,IACAwC,WAAA,IACAC,iBAAA,IAEAtB,cAAA,EACAJ,cAAA,EACAC,YAAA,EAEA0B,YAAA,GAGA,EACA/J,SAAA,CAEAgK,MAAA,WACA,OAAA9J,EAAAA,EAAAA,GAAA,0BACA,EAEA6I,YAAA,WACA,IAAAkB,GAAAC,EAAAA,GAAAA,GAAA,KAAAF,MAAA,QACAG,GAAAC,EAAAA,GAAAA,GAAAH,GACAE,GAAAE,EAAAA,GAAAA,GAAAF,GACA,IAAAG,EAAA,GAKA,OAJAC,EAAAA,GAAAA,GAAAJ,GAAA,SAAAK,GACAF,EAAAE,GAAAP,EAAAO,EACA,IACAP,EAAAK,EACAL,CACA,EAEAjC,YAAA,WAGA,IAAAtI,EAAA,KAGA,YAAA+K,EAAAA,GAAAA,GAAA/K,EAAAsK,SAKAtK,EAAA8I,cAAA,GAJA,EAOA,EAEAC,YAAA,WACA,IAAA/I,EAAA,KACA,OAAAA,EAAAkK,WAAA,IACA,EAEAlK,EAAAkK,WAAA,IACA,GAEA,EACA,EAEAf,kBAAA,WACA,IAAAnJ,EAAA,KAGAqD,EAAArD,EAAA2H,YAAA3H,EAAAmK,WAAA,EAAAnK,EAAA+I,YAAA/I,EAAAoK,iBAGA,OAFA/G,EAAAxC,KAAAC,IAAAuC,EAAA,GAEAA,CACA,GAGA5C,QAAA,CAEA8H,YAAA,SAAAnJ,GAGA,IAAAY,EAAA,KAGAA,EAAAkK,WAAA9K,EAAA4L,KAAAC,YACAjL,EAAA2H,YAAAvI,EAAA4L,KAAAE,YAEA,EAEA1C,WAAA,SAAApJ,GAGA,IAAAY,EAAA,KAGAA,EAAAmK,WAAA/K,EAAA4L,KAAAE,YAEA,EAEAlC,iBAAA,SAAA5J,GAGA,IAAAY,EAAA,KAGAA,EAAAoK,iBAAAhL,EAAA4L,KAAAE,YAEA,EAEA1B,QAAA,SAAAD,GAEA,IAAAvJ,EAAA,KAIA,OAHAqE,EAAAA,EAAAA,GAAAkF,KACAA,EAAAvJ,EAAAkB,GAAA,UAEAqI,CACA,EAEAG,WAAA,SAAA1D,GACA,aAAAxF,EAAAA,EAAAA,GAAAwF,EAAA,UACA,EAEA4D,eAAA,SAAA5D,GACA,aAAAxF,EAAAA,EAAAA,GAAAwF,EAAA,WACA,EAEAkD,aAAA,WAGA,IAAAlJ,EAAA,cAEAuF,IAAA,OAAAC,EAAAC,MAAA,KAAAC,UAAA,CA2CA,SAAAF,IAFA,OAEAA,GAAAG,EAAAA,EAAAA,GAAAC,IAAAA,MA3CA,SAAAC,IAAA,IAAAC,EAAAE,EAAAmF,EAAA,OAAAvF,IAAAA,MAAA,SAAAM,GAAA,eAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAeA,OAdAN,EAAA,KAGA9F,EAAA2E,IAAAwC,eAAA,GAGAnB,EAAA,CACAnC,IAAAuH,EAAAA,GAAAA,KACApN,KAAAgC,EAAAkB,GAAA,WACAmK,KAAA,GACAC,QAAA,IACAC,SAAA,KAGArF,EAAAE,KAAA,EACApG,EAAA4G,MAAA0D,MAAAkB,OAAAxF,GACAc,OAAA,SAAAC,GACAjB,EAAAiB,CACA,WAQA,OALA,OAAAjB,GACA9F,EAAAuG,OAAA,GAAAtH,OAAAe,EAAAkB,GAAA,yBAAAjC,OAAA6G,GAAA,CAAAU,KAAA,UAIA2E,EAAA,KAAAjF,EAAAE,KAAA,GACAE,EAAAA,EAAAA,IAAA,WAEA,OADA6E,GAAAM,EAAAA,GAAAA,GAAAzL,EAAAsK,MAAA,CAAAzG,GAAAmC,EAAAnC,MACA6H,EAAAA,GAAAA,GAAAP,EACA,WAIAnL,EAAAG,IAAAwL,WAAAR,GACArE,OAAA,eAGA9G,EAAAuG,OAAAvG,EAAAkB,GAAA,iDAAAgF,EAAAe,OAAA,GAAApB,EAAA,KAEAL,EAAAC,MAAA,KAAAC,UAAA,CAGAH,IAIAuB,OAAA,SAAAC,GACA7B,QAAAC,IAAA,QAAA4B,GACA/G,EAAAuG,OAAAvG,EAAAkB,GAAA,8BAAAsF,KAAA,SACA,IACAU,SAAA,WAGAlH,EAAA2E,IAAAwC,eAAA,EAEA,GAEA,EAEA2C,gBAAA,SAAA9D,GAGA,IAAAhG,EAAA,cAEAuF,IAAA,OAAA6B,EAAA3B,MAAA,KAAAC,UAAA,CA6CA,SAAA0B,IAFA,OAEAA,GAAAzB,EAAAA,EAAAA,GAAAC,IAAAA,MA7CA,SAAAyB,IAAA,IAAAvB,EAAA8F,EAAAC,EAAAV,EAAA,OAAAvF,IAAAA,MAAA,SAAA0B,GAAA,eAAAA,EAAAnB,KAAAmB,EAAAlB,MAAA,OAMA,OALAN,EAAA,KAGA8F,GAAA,EACAC,EAAA7L,EAAAkB,GAAA,uBACA2K,EAAAA,EAAAC,QAAA,SAAA9F,EAAAhI,MAAAsJ,EAAAlB,KAAA,EACApG,EAAAG,IAAAoB,eAAAsK,GACA/E,OAAA,WACA8E,GAAA,CACA,eACAA,EAAA,CAAAtE,EAAAlB,KAAA,eAAAkB,EAAAjB,OAAA,iBAOA,OAFArG,EAAA2E,IAAAwC,eAAA,GAEAG,EAAAlB,KAAA,GACApG,EAAA4G,MAAA0D,MAAAyB,IAAA/F,GACAc,OAAA,SAAAC,GACAjB,EAAAiB,CACA,eAGA,OAAAjB,EAAA,CAAAwB,EAAAlB,KAAA,SACA,OAAApG,EAAAuG,OAAA,GAAAtH,OAAAe,EAAAkB,GAAA,4BAAAjC,OAAA6G,GAAA,CAAAU,KAAA,UAAAc,EAAAjB,OAAA,kBAKA,OAAA8E,EAAA,KAAA7D,EAAAlB,KAAA,IACAE,EAAAA,EAAAA,IAAA,WAIA,OAHA6E,GAAAM,EAAAA,GAAAA,GAAAzL,EAAAsK,OAAA,SAAAlH,GACA,OAAAA,EAAAS,KAAAmC,EAAAnC,EACA,MACA6H,EAAAA,GAAAA,GAAAP,EACA,YAIAnL,EAAAuG,OAAAvG,EAAAkB,GAAA,oDAAAoG,EAAAL,OAAA,GAAAI,EAAA,KAEAD,EAAA3B,MAAA,KAAAC,UAAA,CAGAH,IAIAuB,OAAA,SAAAC,GACA7B,QAAAC,IAAA,QAAA4B,GACA/G,EAAAuG,OAAAvG,EAAAkB,GAAA,8BAAAsF,KAAA,SACA,IACAU,SAAA,WAGAlH,EAAA2E,IAAAwC,eAAA,EAEA,GAEA,EAEA0C,cAAA,SAAA7D,GAGA,IAAAhG,EAAA,KAGAA,EAAA0I,aAMA1I,EAAAG,IAAAwL,WAAA3F,GACAc,OAAA,eANA9G,EAAAuG,OAAAvG,EAAAkB,GAAA,oCAAAsF,KAAA,SAQA,IC1eiQ,MCO7P,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCyGhC,IACA/G,WAAA,CACAuM,QAAAA,GAAAA,EACAC,cAAAA,GAAAA,EACAC,cAAAA,GAAAA,EACAC,mBAAAA,IAEAvM,MAAA,CACA,EACAC,KAAA,WACA,OAEAsI,QAAA,UAEA+B,WAAA,EACAvC,YAAA,EAEAS,QAAA,EACAR,YAAA,IACAC,eAAA,IACAC,eAAA,IAGA,EACAxH,SAAA,CAEA2D,UAAA,WACA,OAAAzD,EAAAA,EAAAA,GAAA,8BACA,EAEAwH,MAAA,WACA,IACAoE,EAAA,CACA,CACAtN,IAAA,QACAgF,KAAA,MACAuI,KAAA5D,GAAAA,MAGA,OAAA2D,CACA,EAEAnE,WAAA,WACA,IAAAjI,EAAA,KACAsM,GAAAb,EAAAA,GAAAA,GAAAzL,EAAAgI,MAAA,CAAAlJ,IAAAkB,EAAAmI,UAEA,OAAAmE,CACA,GAGA7L,QAAA,CAEAtC,OAAA,SAAAiB,GAGA,IAAAY,EAAA,KAGAA,EAAAkK,WAAA9K,EAAA4L,KAAAuB,YACAvM,EAAA2H,YAAAvI,EAAA4L,KAAAwB,YAGA,ICzL4P,MCOxP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QC2ChC,IACA/M,WAAA,CACAkE,YAAAA,EAAAA,EACAsI,cAAAA,GAAAA,EACAQ,cAAAA,IAEA7M,MAAA,CACA,EACAC,KAAA,WACA,OAEA6M,QAAAA,GAAAA,IAGAC,SAAA,SAEAvE,QAAA,EAEA9E,QAAA,CACA,CACAO,GAAA,MACAC,KAAA,MAEA,CACAD,GAAA,MACAC,KAAA,YAGAN,aAAA,CACAK,GAAA,MACAC,KAAA,MAIA,EACA8I,YAAA,WAGA,IAAA5M,EAAA,KAGAA,EAAA2E,IAAAC,QAAA5E,EAAAwD,aAAAK,GAEA,EACAvD,SAAA,CAEA4D,UAAA,WACA,OAAA1D,EAAAA,EAAAA,GAAA,iCACA,EAEA2D,cAAA,WAGA,IAAAnE,EAAA,KAEA,OAAAQ,EAAAA,EAAAA,GAAAR,EAAA,+BACA,EAEAyC,QAAA,CACAjC,IAAA,WACA,IAAAR,EAAA,KACAoE,EAAApE,EAAAkB,GAAA,WAOA,OALAmD,EAAAA,EAAAA,GAAAD,KACAA,EAAApE,EAAAkB,GAAA,gBAGAoD,SAAAC,MAAAH,EACAA,CACA,GAMA7B,QAAA,WAGA,IAAAvC,EAAA,KAEA,OAAAQ,EAAAA,EAAAA,GAAAR,EAAA,mCACA,GAGAS,QAAA,CAEA8C,WAAA,SAAAnE,GAEA,IAAAY,EAAA,KACA0E,EAAAtF,EAAAyE,GACA7D,EAAA2E,IAAAC,QAAAF,EACA,ICxJqP,MCOjP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCmBhC,IACAjF,WAAA,CACAoN,cAAAA,EACAC,WAAAA,EACAC,SAAAA,EAEAC,UAAAA,GACAC,OAAAA,IAGApN,KAAA,WACA,OAEA,CACA,EACA+M,YAAA,WAGA,IAAA5M,EAAA,KAGAA,EAAA2E,IAAAuI,MAAAlN,EAEA,EACAM,SAAA,CAEAlC,MAAA,WAGA,QACA,GAGAqC,QAAA,CAEAtC,OAAA,SAAAiB,GAGA,IAAAY,EAAA,KAGAA,EAAA2E,IAAAwI,YAEA,IChFyO,MCQrO,IAAY,OACd,GACAzP,EACAa,GACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,iCCnBnB6O,GAAiB,iBACjBC,GAAa,aACbC,GAAe,eACfC,GAAkB,kBAClBC,GAAkB,kBAClBC,GAAgB,gBAChBC,GAAkB,kBAClBC,GAAkB,kBAClBC,GAAa,aACbC,GAAkB,kBAClBC,GAAqB,qBACrBC,GAAsB,sBACtBC,GAAa,aACbC,GAAkB,kBAClBC,GAAiB,iB,4CCJ1BC,GAAW,SACXC,GAAe,KACfC,GAAe,SAGfC,GAAW,CACXzK,GAAI,CACA0K,IAAI,EACJvQ,KAAM,KACNwI,KAAM,UAEVzB,MAAO,CACH/G,KAAM,KACNwI,KAAM,UAEVgI,OAAQ,CACJxQ,KAAM,QACNwI,KAAM,UAEViI,WAAY,CACRzQ,KAAM,OACNwI,KAAM,UAEVkI,QAAS,CACL1Q,KAAM,OACNwI,KAAM,UAEVmI,WAAY,CACR3Q,KAAM,OACNwI,KAAM,WAIVoI,GAAS,WAAgB,IAAfC,EAAKnJ,UAAAoJ,OAAA,QAAAC,IAAArJ,UAAA,GAAAA,UAAA,GAAG,CAAC,EACfsJ,GAAIC,EAAAA,GAAAA,GAAUJ,GAAOnE,EAAAA,GAAAA,GAAK4D,KAM9B,OALAU,EAAEnL,GAAK,GAAH5E,QAAMiQ,EAAAA,GAAAA,KAAU,KAAAjQ,QAAImM,EAAAA,GAAAA,MACxB4D,EAAEjK,MAAQ,GAAH9F,QAAMiQ,EAAAA,GAAAA,KAAU,KAAAjQ,QAAImM,EAAAA,GAAAA,MAC3B4D,EAAEP,YAAaU,EAAAA,GAAAA,KACfH,EAAEN,QAAUU,KAAKC,IAAI,GAAI,UAAUC,SACnCN,EAAEL,WAAaK,EAAEP,WACVO,CACX,EAEIO,GAAU,WACV,IAAIC,EAAK,GACT,OAAOA,CACX,EAEIC,GAAM,CACNtB,SAAAA,GACAC,aAAAA,GACAC,aAAAA,GACAC,SAAAA,GACAM,OAAAA,GACAW,QAAAA,IAIJ,MC3DIpB,GAAW,QACXC,GAAe,MACfC,GAAe,QAGfC,GAAW,CACXzK,GAAI,CACA0K,IAAI,EACJvQ,KAAM,KACNwI,KAAM,UAEVkJ,MAAO,CACH1R,KAAM,KACNwI,KAAM,WAEV3D,QAAS,CACL7E,KAAM,KACNwI,KAAM,UAEVtD,SAAU,CACNlF,KAAM,KACNwI,KAAM,UAEVxI,KAAM,CACFA,KAAM,KACNwI,KAAM,UAEVmJ,MAAO,CACH3R,KAAM,OACNwI,KAAM,UAEVoJ,YAAa,CACT5R,KAAM,KACNwI,KAAM,QAEV6E,KAAM,CACFrN,KAAM,KACNwI,KAAM,UAEVqJ,cAAe,CACX7R,KAAM,WACNwI,KAAM,UAEVP,MAAO,CACHjI,KAAM,QACNwI,KAAM,UAEV8E,QAAS,CACLtN,KAAM,WACNwI,KAAM,UAEVgI,OAAQ,CACJxQ,KAAM,UACNwI,KAAM,UAEViI,WAAY,CACRzQ,KAAM,OACNwI,KAAM,UAEVsJ,aAAc,CACV9R,KAAM,YACNwI,KAAM,UAEVmI,WAAY,CACR3Q,KAAM,OACNwI,KAAM,UAEV+E,SAAU,CACNvN,KAAM,OACNwI,KAAM,WAIVoI,GAAS,WAAgB,IAAfC,EAAKnJ,UAAAoJ,OAAA,QAAAC,IAAArJ,UAAA,GAAAA,UAAA,GAAG,CAAC,EACfsJ,GAAIC,EAAAA,GAAAA,GAAUJ,GAAOnE,EAAAA,GAAAA,GAAK4D,KAO9B,OANAU,EAAEnL,GAAK,GAAH5E,QAAMiQ,EAAAA,GAAAA,KAAU,KAAAjQ,QAAImM,EAAAA,GAAAA,MACxB4D,EAAE1D,QAAU,IACZ0D,EAAEc,aAAed,EAAER,OACnBQ,EAAEP,YAAaU,EAAAA,GAAAA,KACfH,EAAEL,WAAaK,EAAEP,WACjBO,EAAEzD,SAAW,IACNyD,CACX,EAEIO,GAAU,WACV,IAAIC,EAAK,GACT,OAAOA,CACX,EAEIC,GAAM,CACNtB,SAAAA,GACAC,aAAAA,GACAC,aAAAA,GACAC,SAAAA,GACAM,OAAAA,GACAW,QAAAA,IAIJ,M,WCvGIQ,GAAK,CACLC,OAAAA,GACA1F,MAAAA,IAIA2F,GAAK,CAAC,EACV,IAAK,IAAInF,MAAKiF,GACVE,GAAGnF,KAAKoF,EAAAA,GAAAA,GAAMH,GAAGjF,IAAI,CAAEqF,kBAAkB,IAI7C,I,GAAA,MCVIC,GAAQ,CAERC,SAAU,GAAFpR,OAAK0B,OAAO0E,SAASiL,QAC7BC,SAAU,CAAC,EACXvM,UAAW,SACXC,WAAW,EACXC,UAAW,QACX1F,SAAS,EACT8P,SAAU,CACNkC,gBAAiB,KAGrBC,UAAW,EACXC,aAAc,EACdvM,cAAe,GAEf+D,KAAM,CAAC,EAEPyI,UAAW,GACXC,KAAM,CACF/M,GAAI,GACJ7F,KAAM,GACN2R,MAAO,GACPrE,QAAS,KAGb5G,KAAM,MACNmM,SAAU,CAENC,cAAe,CACXC,IAAK,iBACLC,IAAK,UAETC,GAAI,CACAF,IAAK,KACLC,IAAK,MAETE,GAAI,CACAH,IAAK,KACLC,IAAK,MAETG,IAAK,CACDJ,IAAK,MACLC,IAAK,MAGTI,MAAO,CACHL,IAAK,QACLC,IAAK,KAETK,YAAa,CACTN,IAAK,kBACLC,IAAK,YAGTM,YAAa,CACTP,IAAK,WACLC,IAAK,QAETO,YAAa,CACTR,IAAK,eACLC,IAAK,QAET3F,KAAM,CACF0F,IAAK,OACLC,IAAK,MAETQ,KAAM,CACFT,IAAK,OACLC,IAAK,MAETS,MAAO,CACHV,IAAK,QACLC,IAAK,MAETU,OAAQ,CACJX,IAAK,SACLC,IAAK,MAETW,WAAY,CACRZ,IAAK,gBACLC,IAAK,aAETY,0BAA2B,CACvBb,IAAK,iEACLC,IAAK,iBAETa,OAAQ,CACJd,IAAK,SACLC,IAAK,MAGTnO,QAAS,CACLkO,IAAK,UACLC,IAAK,MAET9N,SAAU,CACN6N,IAAK,WACLC,IAAK,MAETc,SAAU,CACNf,IAAK,WACLC,IAAK,SAETrB,MAAO,CACHoB,IAAK,QACLC,IAAK,QAEThT,KAAM,CACF+S,IAAK,OACLC,IAAK,MAETpB,YAAa,CACTmB,IAAK,cACLC,IAAK,MAETe,cAAe,CACXhB,IAAK,iBACLC,IAAK,OAGTtO,MAAO,CACHqO,IAAK,QACLC,IAAK,MAETgB,OAAQ,CACJjB,IAAK,SACLC,IAAK,MAGTiB,uBAAwB,CACpBlB,IAAK,0BACLC,IAAK,eAETkB,sBAAuB,CACnBnB,IAAK,wBACLC,IAAK,SAETmB,sBAAuB,CACnBpB,IAAK,sCACLC,IAAK,SAEToB,oBAAqB,CACjBrB,IAAK,wCACLC,IAAK,eAGTqB,SAAU,CACNtB,IAAK,YACLC,IAAK,WAETsB,QAAS,CACLvB,IAAK,WACLC,IAAK,SAGTuB,SAAU,CACNxB,IAAK,YACLC,IAAK,SAETwB,WAAY,CACRzB,IAAK,eACLC,IAAK,UAETzF,SAAU,CACNwF,IAAK,YACLC,IAAK,QAETyB,OAAQ,CACJ1B,IAAK,SACLC,IAAK,MAET0B,UAAW,CACP3B,IAAK,aACLC,IAAK,QAET2B,QAAS,CACL5B,IAAK,WACLC,IAAK,QAET4B,gBAAiB,CACb7B,IAAK,yBACLC,IAAK,WAET6B,oBAAqB,CACjB9B,IAAK,4BACLC,IAAK,WAET8B,oBAAqB,CACjB/B,IAAK,0CACLC,IAAK,aAET+B,mBAAoB,CAChBhC,IAAK,4BACLC,IAAK,WAETgC,uBAAwB,CACpBjC,IAAK,+BACLC,IAAK,WAETiC,gCAAiC,CAC7BlC,IAAK,iDACLC,IAAK,oBAGTkC,YAAa,CACTnC,IAAK,eACLC,IAAK,WAETxP,KAAM,CACFuP,IAAK,OACLC,IAAK,MAETmC,OAAQ,CACJpC,IAAK,SACLC,IAAK,MAEToC,aAAc,CACVrC,IAAK,gBACLC,IAAK,QAETqC,aAAc,CACVtC,IAAK,gBACLC,IAAK,SAETsC,iBAAkB,CACdvC,IAAK,oBACLC,IAAK,QAETuC,mBAAoB,CAChBxC,IAAK,sBACLC,IAAK,SAETwC,gBAAiB,CACbzC,IAAK,oBACLC,IAAK,aAETyC,iBAAkB,CACd1C,IAAK,0BACLC,IAAK,WAET0C,qBAAsB,CAClB3C,IAAK,6BACLC,IAAK,YAIb2C,OAAQ,CAAC,IAKb9I,EAAAA,GAAAA,GAAKoF,IAAI,SAAC7M,EAAG0H,GACTsF,GAAMtF,GAAK,IACf,IAMO,IAAI8I,IAASC,GAAG,CAAC,GAAJC,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAAD,GAEfE,IAAoB,SAAG3D,EAAOG,GAC3BH,EAAMG,SAAWA,CACrB,IAECwD,IAAgB,SAAG3D,EAAO1L,GACvB0L,EAAM1L,KAAOA,CACjB,IAECqP,IAAkB,SAAG3D,EAAOuD,GACzBvD,EAAMuD,OAASA,CACnB,IAECI,IAAqB,SAAG3D,EAAOpM,GAC5BoM,EAAMpM,UAAYA,CACtB,IAEC+P,IAAqB,SAAG3D,EAAOnM,GAC5BmM,EAAMnM,UAAYA,CACtB,IAEC8P,IAAmB,SAAG3D,EAAO5R,GAC1B4R,EAAM5R,QAAUA,CACpB,IAECuV,IAAqB,SAAG3D,EAAOlM,GAC5BkM,EAAMlM,UAAYA,CACtB,IAEC6P,IAAqB,SAAG3D,EAAOhR,GAC5BgR,EAAMhR,EAAI4U,WAAa5U,EAAIS,IAC/B,IAECkU,IAAgB,SAAG3D,EAAOhR,IAGvB6U,EAAAA,GAAAA,GAAI7D,EAAOhR,EAAI8U,KAAM9U,EAAIS,KAC7B,IAECkU,IAAqB,SAAG3D,EAAOK,GAC5BL,EAAMK,UAAYA,CACtB,KAACqD,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAAD,GAEAE,IAAwB,SAAG3D,EAAOM,GAC/BN,EAAMM,aAAeA,CACzB,IAECqD,IAAyB,SAAG3D,EAAOjM,GAChCiM,EAAMjM,cAAgBA,CAC1B,IAEC4P,IAAgB,SAAG3D,EAAOlI,GACvBkI,EAAMlI,KAAOA,CACjB,IAEC6L,IAAqB,SAAG3D,EAAOO,GAC5BP,EAAMO,UAAYA,CACtB,IAECoD,IAAoB,SAAG3D,EAAO+D,GAC3B/D,EAAM+D,SAAWA,CACrB,KChUJlU,EAAAA,GAAImU,IAAIC,GAAAA,IAER,IAAIC,GAAK,IAAID,GAAAA,GAAAA,MAAW,CACpBjE,MAAAA,GACAwD,UAAAA,GACAW,QAAAA,EACAC,QAAAA,EACAC,QAAQ,IAIZH,GAAGP,MAAQA,EACX9T,EAAAA,GAAIC,UAAUwU,OAASJ,GAGvB,U,4mBCsBA,IAAItU,GAAKC,EAAAA,GAAIC,UAGb,SAASgN,GAAMyH,GACX3U,GAAK2U,CACT,CAGA,SAASC,GAAgB5Q,GACrBhE,GAAG0U,OAAOG,OAAO7U,GAAG0U,OAAOX,MAAMxG,gBAAiBvJ,EACtD,CAGA,SAASmD,GAAc3I,GACnBwB,GAAG0U,OAAOG,OAAO7U,GAAG0U,OAAOX,MAAMtG,cAAejP,EACpD,CAGA,SAASsW,GAAgB5Q,GACrBlE,GAAG0U,OAAOG,OAAO7U,GAAG0U,OAAOX,MAAMrG,gBAAiBxJ,EACtD,CAGA,SAAS6Q,GAAgBpE,GACrB3Q,GAAG0U,OAAOG,OAAO7U,GAAG0U,OAAOX,MAAM9F,gBAAiB0C,EACtD,CAGA,SAASqE,GAAeb,GACpBnU,GAAG0U,OAAOG,OAAO7U,GAAG0U,OAAOX,MAAM7F,eAAgBiG,EACrD,CAGA,SAASc,KAGL,SAASC,EAAUC,IACftK,EAAAA,GAAAA,GAAKsK,GAAK,SAAC/R,GAEPA,EAAEgS,eACEhS,EAAEiS,WACFH,EAAU9R,EAAEiS,UAEpB,GACJ,CAGAH,EAAUlV,GAAGqV,UAEjB,CAGA,SAASzQ,KAAqB,IAAbF,EAAIgB,UAAAoJ,OAAA,QAAAC,IAAArJ,UAAA,GAAAA,UAAA,GAAG,MAIhBrB,EAAAA,EAAAA,GAAOK,IACP1E,GAAG0U,OAAOG,OAAO7U,GAAG0U,OAAOX,MAAM1G,WAAY3I,GAIjD4Q,KAGAL,IAEJ,CAGA,SAASK,KAIL,IAAIzE,GAAWrQ,EAAAA,EAAAA,GAAIR,GAAI,yBACnByC,GAAUjC,EAAAA,EAAAA,GAAIR,GAAI,iCAClBuV,GAAiB/U,EAAAA,EAAAA,GAAIR,GAAI,wCACzBwV,EAAGC,GAAAA,GAAA,GACA5E,GAAQ,IACXpO,QAAOgT,GAAA,GACAhT,GAEP8S,eAAcE,GAAA,GACPF,KAKP7Q,GAAOlE,EAAAA,EAAAA,GAAIR,GAAI,qBAGf2T,EAAS,CAAC,EAQd,OAPA9I,EAAAA,GAAAA,GAAK2K,GAAK,SAACpS,EAAG0H,GACV6I,EAAO7I,GAAK1H,EAAEsB,EAClB,IAGA1E,GAAG0U,OAAOG,OAAO7U,GAAG0U,OAAOX,MAAMzG,aAAcqG,GAExCA,CACX,CAGA,SAAS+B,GAAU5W,GAEf,IAAI6U,GAASnT,EAAAA,EAAAA,GAAIR,GAAI,uBACrB,OAAOQ,EAAAA,EAAAA,GAAImT,EAAQ7U,EAAK,GAC5B,CAGA,SAAS6W,GAAG3G,EAAGlE,GAAc,IAAX8K,EAAElQ,UAAAoJ,OAAA,QAAAC,IAAArJ,UAAA,GAAAA,UAAA,GAAG,KACf4G,GAAI9L,EAAAA,EAAAA,GAAIwO,EAAGlE,EAAG,IAClB,KAAKzG,EAAAA,EAAAA,GAAOiI,GAAI,CACZ,IAAIuJ,EAAMH,GAAU,SACpB,OAAOG,CACX,CAIA,OAHIC,EAAAA,GAAAA,GAAMF,KACNtJ,EAAIsJ,EAAGtJ,IAEJA,CACX,CAGA,SAASa,KAGL,IAAIhJ,GAAgB3D,EAAAA,EAAAA,GAAIR,GAAI,8BAGxB0Q,EAAe/P,OAAOoV,YAAc5R,EAOxC,OAHAnE,GAAG0U,OAAOG,OAAO7U,GAAG0U,OAAOX,MAAMlG,gBAAiBlN,OAAOoV,aACzD/V,GAAG0U,OAAOG,OAAO7U,GAAG0U,OAAOX,MAAMjG,mBAAoB4C,GAE9C,EACX,CAAC,SAGcsF,KAAQ,OAAAC,GAAAxQ,MAAC,KAADC,UAAA,UAAAuQ,KAiBtB,OAjBsBA,IAAAtQ,EAAAA,EAAAA,GAAAC,EAAAA,MAAvB,SAAAC,IAAA,IAAAqQ,EAAAC,EAAAzQ,UAAA,OAAAE,EAAAA,MAAA,SAAAM,GAAA,eAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAA6B,GAAL8P,EAACC,EAAArH,OAAA,QAAAC,IAAAoH,EAAA,GAAAA,EAAA,GAAG,IAGpBD,EAAI,GAAC,CAAAhQ,EAAAE,KAAA,eAAAF,EAAAE,KAAA,GACCmB,EAAAA,EAAAA,GAAM2O,GAAE,cAAAhQ,EAAAE,KAAA,GAIZE,EAAAA,EAAAA,IAAQ,WACV,OAAOoF,EAAAA,GAAAA,IAAOlL,EAAAA,EAAAA,GAAIR,GAAI,SAC1B,IAAE,cAAAkG,EAAAE,KAAA,GAGIE,EAAAA,EAAAA,IAAQ,WACV,OAAO9F,EAAAA,EAAAA,GAAIR,GAAI,yBACnB,IAAE,wBAAAkG,EAAAe,OAAA,GAAApB,EAAA,KAELoQ,GAAAxQ,MAAA,KAAAC,UAAA,CAGD,IAAI0Q,GAAM,CAENlJ,MAAAA,GAEA0H,gBAAAA,GACAzN,cAAAA,GACA2N,gBAAAA,GACAC,gBAAAA,GACAC,eAAAA,GACAC,YAAAA,GAEArQ,QAAAA,GACA0Q,UAAAA,GACAI,UAAAA,GAEAC,GAAAA,GACAxI,WAAAA,GAEA6I,SAAAA,IAKJ,MC/NA,SAASK,GAAoBpG,GAEzB,SAASqG,EAAgBC,EAASC,EAAWC,GACzC,IAAInK,GAAIb,EAAAA,GAAAA,GAAKwE,GAAE6D,EAAAA,GAAAA,GAAA,GAAKyC,EAAUC,IAO9B,OANKlK,IACDA,EAAI,KAEJjI,EAAAA,EAAAA,GAAOoS,KACPnK,GAAI9L,EAAAA,EAAAA,GAAI8L,EAAGmK,EAAS,KAEjBnK,CACX,CAEA,SAASoK,EAAiBF,GACtB,OAAOF,EAAgB,WAAYE,EAAW,eAClD,CAEA,MAAO,CACHF,gBAAAA,EACAI,iBAAAA,EAER,CAGA,U,2qBCXA,IAAIC,GAAM,IAGV,SAASC,GAAaC,GAGlB,IAAIrH,GAAKsH,EAAAA,GAAAA,GAAID,GAAS,SAACzT,GAGnB,IAAI2T,GAAIC,EAAAA,GAAAA,GAAI5T,EAAES,GAAI8S,IACd7S,GAAOtD,EAAAA,EAAAA,IAAIyW,EAAAA,GAAAA,GAAUF,GAAI,GAC7BA,GAAIG,EAAAA,GAAAA,GAAUH,EAAG,GACjB,IAAII,GAAWC,EAAAA,GAAAA,GAAKL,EAAGJ,IAEvB,OAAAlB,GAAAA,GAAA,GACOrS,GAAC,IACJiU,OAAQjU,EAAES,GACVsT,SAAAA,EACArT,KAAAA,GAER,IAOA,OAHA0L,GAAK7E,EAAAA,GAAAA,GAAO6E,EAAI,SAGTA,CACX,CAGA,SAAS8H,GAAcT,GAGnB,IAYIvK,EAZAiL,EAASX,GAAaC,GAItBW,EAAM,CACNC,QAAS,KACTC,WAAY,WACZC,aAAc,WACdC,cAAc,GAKlB,IACItL,GAAIuL,EAAAA,GAAAA,GAAcN,EAAQC,EAC9B,CACA,MAAOzQ,GACH7B,QAAQC,IAAI4B,EAChB,CAGA,OAAOuF,CACX,CAGA,SAASwL,GAAclH,EAAMmH,GAGzB,IAAIlI,GAAgBrP,EAAAA,EAAAA,GAAIoQ,EAAM,gBAAiB,IAG3CmG,GAAIC,EAAAA,GAAAA,GAAInH,EAAe,KAGvBtF,EAAK,GAeT,OAdAM,EAAAA,GAAAA,GAAKkM,GAAG,SAAClT,GACL,IAAImU,GAAIvM,EAAAA,GAAAA,GAAKsM,EAAY,CAAElU,GAAAA,KACvB6H,EAAAA,GAAAA,GAAOsM,IACPzN,EAAG0N,KAAKD,EAEhB,IAGAzN,GAAKuM,EAAAA,GAAAA,GAAIvM,GAAI,SAACyN,GACV,IAAIE,EAAQC,GAAAA,MAAYH,EAAEI,QAE1B,OADAJ,EAAEE,MAAQA,EACHF,CACX,IAEOzN,CACX,CAGA,SAAS8N,GAAkBxB,EAASyB,GAGhCzB,GAAU0B,EAAAA,GAAAA,GAAU1B,GAGpBA,GAAUlM,EAAAA,GAAAA,GAAOkM,EAAS,SAG1ByB,GAAQC,EAAAA,GAAAA,GAAUD,GAGlB,IAAIJ,EAAQC,GAAAA,MAAYG,EAAMF,QAG1BI,EAAe,CAAC,EAChB/N,EAAK,CAAC,OAAQ,UAyClB,OAxCAI,EAAAA,GAAAA,GAAKJ,GAAI,SAACK,GAGN,IAAI+K,GAAMrV,EAAAA,EAAAA,GAAI0X,EAAO,aAAFjZ,OAAe6L,IAClC+K,EAAe,MAARA,EAAe,IAAM,KAG5BhL,EAAAA,GAAAA,GAAKgM,GAAS,SAACzT,GAGX,IAAIqV,EAAQrV,EAAES,GAGT2U,EAAaC,KACdD,EAAaC,GAAS,CAAC,GAI3B,IAAIC,EAAOR,EAAMO,GAGbnM,EAAI,KAGJ/L,GAAIC,EAAAA,EAAAA,GAAIkY,EAAM,GAAFzZ,OAAK6L,IAEjBwB,EADM,MAAN/L,GAAmB,MAANA,EACTA,EAGAsV,EAIR2C,EAAaC,GAAO3N,GAAKwB,CAE7B,GAEJ,IAGOkM,CACX,CAGA,SAASG,GAAa/H,EAAMmH,EAAYlB,GAIpC,IAAIhH,GAAgBrP,EAAAA,EAAAA,GAAIoQ,EAAM,gBAAiB,IAG3CrG,EAAKuN,GAAclH,EAAMmH,GAIzBa,GAAkB9B,EAAAA,GAAAA,GAAIvM,EAAI,QAC9BqO,GAAkBxB,EAAAA,GAAAA,GAAKwB,EAAiB,KAGxC,IAAIJ,EAAe,CAAC,EAiCpB,OAhCA3N,EAAAA,GAAAA,GAAKN,GAAI,SAACyN,GACN,IAAI1L,EAAI+L,GAAkBxB,EAASmB,IACnCnN,EAAAA,GAAAA,GAAKyB,GAAG,SAAClJ,EAAG0H,IAGH+N,EAAAA,GAAAA,GAAOL,EAAc1N,KACtB0N,EAAa1N,GAAK,CAAC,GAIvB,IAAIL,EAAK,CAAC,OAAQ,WAClBI,EAAAA,GAAAA,GAAKJ,GAAI,SAACqO,GACN,IAAIC,EAAOP,EAAa1N,GAAGgO,GACvBE,EAAO1M,EAAExB,GAAGgO,GACH,MAATC,IAMIP,EAAa1N,GAAGgO,GADP,MAATE,EACsB,IAGA,IAGlC,GAEJ,GACJ,IAGO,CACHnJ,cAAAA,EACA+I,gBAAAA,EACAV,MAAOM,EAEf,CCzMAvY,EAAAA,GAAIgZ,OAAOC,eAAgB,EAG3BjZ,EAAAA,GAAIC,UAAUqG,OAAS,WACnB,IAAA4S,EAAAC,MAAAlZ,UAAAmZ,MAAAC,KAAkB5T,WAAbtG,EAAG+Z,EAAA,GAAE3S,EAAI2S,EAAA,GACdjU,QAAQC,IAAI/F,EAAKoH,GACL,UAARpH,IACAma,EAAAA,EAAAA,GAAOna,EAAKoH,EAEpB,EAGA,IAAIgT,GAAOnD,GAAoBpG,IAM/BhQ,EAAAA,GAAIC,UAAUyE,IAAM8U,GACpBxZ,EAAAA,GAAIC,UAAUgB,GAAKuY,GAAG/D,UACtBzV,EAAAA,GAAIC,UAAUwZ,GAAK3C,EACnB9W,EAAAA,GAAIC,UAAUyZ,MAAQH,GAGtBvZ,EAAAA,GAAIC,UAAUC,IAAM,CAAC,EAGrBF,EAAAA,GAAI2Z,UAAU,aAAaC,EAAAA,EAAAA,MAC3B5Z,EAAAA,GAAI2Z,UAAU,eAAeE,EAAAA,EAAAA,MAC7B7Z,EAAAA,GAAI2Z,UAAU,eAAeG,EAAAA,EAAAA,MAG7B,IAAIC,IAAa,GACjBC,EAAAA,EAAAA,GAAgB,CACZC,SAAS,EACTC,OAAQ,WACJ,OAAOxZ,OAAO0E,SAASiL,OAAS3P,OAAO0E,SAAS+U,QACpD,EACAC,cAAc,EACdC,SAAU,WAIN,MAAO,EACX,EACAC,iBAAkB,SAACC,GACftV,QAAQC,IAAI,QAASqV,GACrBva,EAAAA,GAAIC,UAAU0G,MAAQ4T,EACtBA,EAAMC,cACDC,MAAK,SAACC,GACHzV,QAAQC,IAAI,oBAAqBwV,GACjC1a,EAAAA,GAAIC,UAAUwU,OAAOG,OAAO5U,EAAAA,GAAIC,UAAUwU,OAAOX,MAAM3G,eAAgBuN,GACvElB,GAAG7U,SACP,IACCkC,OAAM,SAACC,GACJ7B,QAAQC,IAAI4B,EAChB,GACR,EACA6T,SAAU,SAACtO,GACPpH,QAAQC,IAAI,YAAamH,EAAE0H,UAAW1H,EAAEzM,MACxCI,EAAAA,GAAIC,UAAUwU,OAAOG,OAAO5U,EAAAA,GAAIC,UAAUwU,OAAOX,MAAMpG,gBAAiBrB,EAC5E,EACAuO,wBAAyB,SAACvO,GAElB0N,KAGJA,IAAa,EACb9U,QAAQC,IAAI,cACZlF,EAAAA,GAAIC,UAAUwU,OAAOG,OAAO5U,EAAAA,GAAIC,UAAUwU,OAAOX,MAAMvG,iBAAiB,GAC5E,IAIJ,IAAIvN,EAAAA,GAAI,CACJ6a,MAAAA,GACApd,OAAQ,SAAA2F,GAAC,OAAIA,EAAE0X,GAAI,IACpBC,OAAO,O,oBC9FNC,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBpM,IAAjBqM,EACH,OAAOA,EAAaC,QAGrB,IAAIC,EAASL,EAAyBE,GAAY,CAGjDE,QAAS,CAAC,GAOX,OAHAE,EAAoBJ,GAAU7B,KAAKgC,EAAOD,QAASC,EAAQA,EAAOD,QAASH,GAGpEI,EAAOD,OACf,CAGAH,EAAoBM,EAAID,E,WCzBxB,IAAIE,EAAW,GACfP,EAAoBQ,EAAI,SAASC,EAAQC,EAAU7c,EAAI8c,GACtD,IAAGD,EAAH,CAMA,IAAIE,EAAeC,IACnB,IAASC,EAAI,EAAGA,EAAIP,EAAS3M,OAAQkN,IAAK,CACrCJ,EAAWH,EAASO,GAAG,GACvBjd,EAAK0c,EAASO,GAAG,GACjBH,EAAWJ,EAASO,GAAG,GAE3B,IAJA,IAGIC,GAAY,EACPC,EAAI,EAAGA,EAAIN,EAAS9M,OAAQoN,MACpB,EAAXL,GAAsBC,GAAgBD,IAAaM,OAAOzR,KAAKwQ,EAAoBQ,GAAGU,OAAM,SAAStd,GAAO,OAAOoc,EAAoBQ,EAAE5c,GAAK8c,EAASM,GAAK,IAChKN,EAASS,OAAOH,IAAK,IAErBD,GAAY,EACTJ,EAAWC,IAAcA,EAAeD,IAG7C,GAAGI,EAAW,CACbR,EAASY,OAAOL,IAAK,GACrB,IAAI1P,EAAIvN,SACEgQ,IAANzC,IAAiBqP,EAASrP,EAC/B,CACD,CACA,OAAOqP,CArBP,CAJCE,EAAWA,GAAY,EACvB,IAAI,IAAIG,EAAIP,EAAS3M,OAAQkN,EAAI,GAAKP,EAASO,EAAI,GAAG,GAAKH,EAAUG,IAAKP,EAASO,GAAKP,EAASO,EAAI,GACrGP,EAASO,GAAK,CAACJ,EAAU7c,EAAI8c,EAwB/B,C,eC5BAX,EAAoBoB,EAAI,SAAShB,GAChC,IAAIiB,EAASjB,GAAUA,EAAOkB,WAC7B,WAAa,OAAOlB,EAAO,UAAY,EACvC,WAAa,OAAOA,CAAQ,EAE7B,OADAJ,EAAoBuB,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CACR,C,eCNArB,EAAoBuB,EAAI,SAASpB,EAASsB,GACzC,IAAI,IAAI7d,KAAO6d,EACXzB,EAAoBlM,EAAE2N,EAAY7d,KAASoc,EAAoBlM,EAAEqM,EAASvc,IAC5Eqd,OAAOS,eAAevB,EAASvc,EAAK,CAAE+d,YAAY,EAAMrc,IAAKmc,EAAW7d,IAG3E,C,eCPAoc,EAAoBlD,EAAI,WACvB,GAA0B,kBAAf8E,WAAyB,OAAOA,WAC3C,IACC,OAAOlf,MAAQ,IAAImf,SAAS,cAAb,EAChB,CAAE,MAAOC,GACR,GAAsB,kBAAXrc,OAAqB,OAAOA,MACxC,CACA,CAPuB,E,eCAxBua,EAAoBlM,EAAI,SAASiO,EAAKC,GAAQ,OAAOf,OAAOjc,UAAUid,eAAe7D,KAAK2D,EAAKC,EAAO,C,eCCtGhC,EAAoB5O,EAAI,SAAS+O,GACX,qBAAX+B,QAA0BA,OAAOC,aAC1ClB,OAAOS,eAAevB,EAAS+B,OAAOC,YAAa,CAAEza,MAAO,WAE7DuZ,OAAOS,eAAevB,EAAS,aAAc,CAAEzY,OAAO,GACvD,C,eCDA,IAAI0a,EAAkB,CACrB,IAAK,GAaNpC,EAAoBQ,EAAEQ,EAAI,SAASqB,GAAW,OAAoC,IAA7BD,EAAgBC,EAAgB,EAGrF,IAAIC,EAAuB,SAASC,EAA4B5d,GAC/D,IAKIsb,EAAUoC,EALV3B,EAAW/b,EAAK,GAChB6d,EAAc7d,EAAK,GACnB8d,EAAU9d,EAAK,GAGImc,EAAI,EAC3B,GAAGJ,EAASgC,MAAK,SAAS/Z,GAAM,OAA+B,IAAxByZ,EAAgBzZ,EAAW,IAAI,CACrE,IAAIsX,KAAYuC,EACZxC,EAAoBlM,EAAE0O,EAAavC,KACrCD,EAAoBM,EAAEL,GAAYuC,EAAYvC,IAGhD,GAAGwC,EAAS,IAAIhC,EAASgC,EAAQzC,EAClC,CAEA,IADGuC,GAA4BA,EAA2B5d,GACrDmc,EAAIJ,EAAS9M,OAAQkN,IACzBuB,EAAU3B,EAASI,GAChBd,EAAoBlM,EAAEsO,EAAiBC,IAAYD,EAAgBC,IACrED,EAAgBC,GAAS,KAE1BD,EAAgBC,GAAW,EAE5B,OAAOrC,EAAoBQ,EAAEC,EAC9B,EAEIkC,EAAqBC,KAAK,yBAA2BA,KAAK,0BAA4B,GAC1FD,EAAmBE,QAAQP,EAAqBQ,KAAK,KAAM,IAC3DH,EAAmB5F,KAAOuF,EAAqBQ,KAAK,KAAMH,EAAmB5F,KAAK+F,KAAKH,G,IC/CvF,IAAII,EAAsB/C,EAAoBQ,OAAE3M,EAAW,CAAC,MAAM,WAAa,OAAOmM,EAAoB,KAAO,IACjH+C,EAAsB/C,EAAoBQ,EAAEuC,E","sources":["webpack://w-web-sso/./src/App.vue","webpack://w-web-sso/./src/components/Common/LoadingWinBar.vue","webpack://w-web-sso/src/components/Common/LoadingWinBar.vue","webpack://w-web-sso/./src/components/Common/LoadingWinBar.vue?20f2","webpack://w-web-sso/./src/components/Common/LoadingWinBar.vue?0bae","webpack://w-web-sso/./src/components/Common/CheckYesNo.vue","webpack://w-web-sso/src/components/Common/CheckYesNo.vue","webpack://w-web-sso/./src/components/Common/CheckYesNo.vue?0786","webpack://w-web-sso/./src/components/Common/CheckYesNo.vue?5d88","webpack://w-web-sso/./src/components/Common/CheckYes.vue","webpack://w-web-sso/src/components/Common/CheckYes.vue","webpack://w-web-sso/./src/components/Common/CheckYes.vue?6829","webpack://w-web-sso/./src/components/Common/CheckYes.vue?d003","webpack://w-web-sso/./src/components/PageLogin.vue","webpack://w-web-sso/src/components/PageLogin.vue","webpack://w-web-sso/./src/components/PageLogin.vue?33c0","webpack://w-web-sso/./src/components/PageLogin.vue?29ef","webpack://w-web-sso/./src/components/Layout.vue","webpack://w-web-sso/./src/components/LayoutContent.vue","webpack://w-web-sso/./src/components/LayoutContentUsers.vue","webpack://w-web-sso/src/components/LayoutContentUsers.vue","webpack://w-web-sso/./src/components/LayoutContentUsers.vue?6395","webpack://w-web-sso/./src/components/LayoutContentUsers.vue?9c9b","webpack://w-web-sso/src/components/LayoutContent.vue","webpack://w-web-sso/./src/components/LayoutContent.vue?07f8","webpack://w-web-sso/./src/components/LayoutContent.vue?a8dd","webpack://w-web-sso/src/components/Layout.vue","webpack://w-web-sso/./src/components/Layout.vue?620d","webpack://w-web-sso/./src/components/Layout.vue?6d15","webpack://w-web-sso/src/App.vue","webpack://w-web-sso/./src/App.vue?c036","webpack://w-web-sso/./src/App.vue?0e40","webpack://w-web-sso/./src/store/types.mjs","webpack://w-web-sso/./src/schema/tables/tokens.mjs","webpack://w-web-sso/./src/schema/tables/users.mjs","webpack://w-web-sso/./src/schema/index.mjs","webpack://w-web-sso/./src/store/mutations.mjs","webpack://w-web-sso/./src/store/index.mjs","webpack://w-web-sso/./src/plugins/mUI.mjs","webpack://w-web-sso/./src/plugins/mDataSelectorSchema.mjs","webpack://w-web-sso/./src/plugins/mShare.mjs","webpack://w-web-sso/./src/main.js","webpack://w-web-sso/webpack/bootstrap","webpack://w-web-sso/webpack/runtime/chunk loaded","webpack://w-web-sso/webpack/runtime/compat get default export","webpack://w-web-sso/webpack/runtime/define property getters","webpack://w-web-sso/webpack/runtime/global","webpack://w-web-sso/webpack/runtime/hasOwnProperty shorthand","webpack://w-web-sso/webpack/runtime/make namespace object","webpack://w-web-sso/webpack/runtime/jsonp chunk loading","webpack://w-web-sso/webpack/startup"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"domresize\",rawName:\"v-domresize\"}],on:{\"domresize\":_vm.resize}},[(!_vm.ready)?_c('PageLogin'):_vm._e(),_c('transition',{attrs:{\"enter-active-class\":\"fade-enter-active\",\"leave-active-class\":\"fade-leave-active\"}},[(_vm.ready)?_c('Layout'):_vm._e()],1),_c('LoadingWinBar'),_c('CheckYesNo'),_c('CheckYes')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('WDialog',{attrs:{\"show\":_vm.loading,\"maxWidth\":_vm.dialogWidth},on:{\"update:show\":function($event){_vm.loading=$event},\"resize\":_vm.resizeDialog},scopedSlots:_vm._u([{key:\"panel\",fn:function(){return [_c('div',{style:(`padding:${_vm.barPadding-5}px ${_vm.barPadding}px ${_vm.barPadding}px ${_vm.barPadding}px;`)},[_c('div',{staticStyle:{\"padding-bottom\":\"3px\",\"font-size\":\"0.9rem\",\"color\":\"#666\"}},[(_vm.msg!=='')?_c('span',[_vm._v(_vm._s(_vm.msg))]):_c('span',[_vm._v(\"處理中請稍後...\")])]),_c('WProgressBar',{style:(`width:${_vm.barWidth}px;`),attrs:{\"height\":3,\"enableContinuous\":true,\"progColor\":'deep-purple lighten-1',\"progBackgroundColor\":'deep-purple lighten-4'}})],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <WDialog\r\n :show.sync=\"loading\"\r\n :maxWidth=\"dialogWidth\"\r\n @resize=\"resizeDialog\"\r\n >\r\n\r\n <template v-slot:panel>\r\n\r\n <div :style=\"`padding:${barPadding-5}px ${barPadding}px ${barPadding}px ${barPadding}px;`\">\r\n\r\n\r\n <div style=\"padding-bottom:3px; font-size:0.9rem; color:#666;\">\r\n\r\n <span v-if=\"msg!==''\">{{msg}}</span>\r\n\r\n <span v-else>處理中請稍後...</span>\r\n\r\n </div>\r\n\r\n <WProgressBar\r\n :style=\"`width:${barWidth}px;`\"\r\n :height=\"3\"\r\n :enableContinuous=\"true\"\r\n :progColor=\"'deep-purple lighten-1'\"\r\n :progBackgroundColor=\"'deep-purple lighten-4'\"\r\n ></WProgressBar>\r\n\r\n </div>\r\n\r\n </template>\r\n\r\n </WDialog>\r\n</template>\r\n\r\n<script>\r\nimport Vue from 'vue'\r\nimport get from 'lodash-es/get.js'\nimport WDialog from 'w-component-vue/src/components/WDialog.vue'\r\nimport WProgressBar from 'w-component-vue/src/components/WProgressBar.vue'\r\n\r\n\r\nexport default {\r\n components: {\r\n WDialog,\r\n WProgressBar,\r\n },\r\n props: {\r\n },\r\n data: function() {\r\n return {\r\n\r\n dialogWidth: 0,\r\n dialogWidthMax: 600,\r\n\r\n barPadding: 20,\r\n barWidth: 0,\r\n msg: '',\r\n\r\n }\r\n },\r\n mounted: function() {\r\n //console.log('mounted')\r\n\r\n let vo = this\r\n\r\n //set\r\n Vue.prototype.$dg.setLoadingWinBarMessage = vo.setMessage\r\n\r\n },\r\n computed: {\r\n\r\n loading: function() {\r\n let vo = this\r\n let b = get(vo, `$store.state.loading`)\r\n // console.log('loading', b)\r\n return b\r\n },\r\n\r\n },\r\n methods: {\r\n\r\n setMessage: function(msg) {\r\n this.msg = msg\r\n },\r\n\r\n resizeDialog: function(msg) {\r\n // console.log('methods resizeDialog', msg)\r\n\r\n let vo = this\r\n\r\n let w = window.innerWidth\r\n // console.log('window.innerWidth', window.innerWidth)\r\n\r\n //dialogWidth\r\n let dialogWidth = w - vo.barPadding * 2\r\n dialogWidth = Math.max(dialogWidth, 0)\r\n dialogWidth = Math.min(dialogWidth, vo.dialogWidthMax)\r\n vo.dialogWidth = dialogWidth\r\n // console.log('dialogWidth', dialogWidth)\r\n\r\n //barWidth\r\n let barWidth = dialogWidth - vo.barPadding * 2\r\n barWidth = Math.max(barWidth, 0)\r\n vo.barWidth = barWidth\r\n // console.log('barWidth', barWidth)\r\n\r\n },\r\n\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LoadingWinBar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LoadingWinBar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LoadingWinBar.vue?vue&type=template&id=ff3d4996&scoped=true\"\nimport script from \"./LoadingWinBar.vue?vue&type=script&lang=js\"\nexport * from \"./LoadingWinBar.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ff3d4996\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('WConfirm',{attrs:{\"show\":_vm.bShow,\"title\":_vm.$t('systemMessage'),\"content\":_vm.content,\"_contentColor\":'white',\"_contentIconColor\":'white',\"_contentBackgroundColor\":'orange lighten-5',\"_titleColor\":'white',\"headerBackgroundColor\":'grey lighten-3',\"noBtnText\":_vm.$t('no'),\"yesBtnText\":_vm.$t('yes')},on:{\"update:show\":function($event){_vm.bShow=$event},\"click-no\":function($event){return _vm.clickBtn(false)},\"click-yes\":function($event){return _vm.clickBtn(true)}}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <WConfirm\r\n :show.sync=\"bShow\"\r\n :title=\"$t('systemMessage')\"\r\n :content=\"content\"\r\n :_contentColor=\"'white'\"\r\n :_contentIconColor=\"'white'\"\r\n :_contentBackgroundColor=\"'orange lighten-5'\"\r\n :_titleColor=\"'white'\"\r\n :headerBackgroundColor=\"'grey lighten-3'\"\r\n :noBtnText=\"$t('no')\"\r\n :yesBtnText=\"$t('yes')\"\r\n @click-no=\"clickBtn(false)\"\r\n @click-yes=\"clickBtn(true)\"\r\n ></WConfirm>\r\n</template>\r\n\r\n<script>\r\nimport Vue from 'vue'\r\nimport genPm from 'wsemi/src/genPm.mjs'\r\nimport WConfirm from 'w-component-vue/src/components/WConfirm.vue'\r\n\r\nexport default {\r\n components: {\r\n WConfirm,\r\n },\r\n props: {\r\n },\r\n data: function() {\r\n return {\r\n\r\n bShow: false,\r\n pm: null,\r\n\r\n content: '',\r\n\r\n }\r\n },\r\n mounted: function() {\r\n //console.log('mounted')\r\n\r\n let vo = this\r\n\r\n //set\r\n Vue.prototype.$dg.showCheckYesNo = vo.show\r\n\r\n },\r\n computed: {\r\n },\r\n methods: {\r\n\r\n show: function (content) {\r\n //console.log('methods show', content)\r\n\r\n let vo = this\r\n\r\n //pm\r\n vo.pm = genPm()\r\n\r\n //save\r\n vo.content = content\r\n\r\n //show\r\n vo.bShow = true\r\n\r\n return vo.pm\r\n },\r\n\r\n clickBtn: function(mode) {\r\n //console.log('methods clickBtn', mode)\r\n\r\n let vo = this\r\n\r\n if (mode) {\r\n vo.pm.resolve()\r\n }\r\n else {\r\n vo.pm.reject('close')\r\n }\r\n\r\n //hide\r\n vo.bShow = false\r\n\r\n },\r\n\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CheckYesNo.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CheckYesNo.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CheckYesNo.vue?vue&type=template&id=cfad0048&scoped=true\"\nimport script from \"./CheckYesNo.vue?vue&type=script&lang=js\"\nexport * from \"./CheckYesNo.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cfad0048\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('WConfirm',{attrs:{\"show\":_vm.bShow,\"title\":_vm.$t('systemMessage'),\"content\":_vm.content,\"_contentColor\":'white',\"_contentIconColor\":'white',\"_contentBackgroundColor\":'orange lighten-5',\"headerBackgroundColor\":'grey lighten-3',\"hasNoBtn\":false,\"yesBtnText\":_vm.$t('ok')},on:{\"update:show\":function($event){_vm.bShow=$event},\"click-yes\":function($event){return _vm.clickUnit()}}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <WConfirm\r\n :show.sync=\"bShow\"\r\n :title=\"$t('systemMessage')\"\r\n :content=\"content\"\r\n :_contentColor=\"'white'\"\r\n :_contentIconColor=\"'white'\"\r\n :_contentBackgroundColor=\"'orange lighten-5'\"\r\n :headerBackgroundColor=\"'grey lighten-3'\"\r\n :hasNoBtn=\"false\"\r\n :yesBtnText=\"$t('ok')\"\r\n @click-yes=\"clickUnit()\"\r\n ></WConfirm>\r\n</template>\r\n\r\n<script>\r\nimport Vue from 'vue'\r\nimport genPm from 'wsemi/src/genPm.mjs'\r\nimport WConfirm from 'w-component-vue/src/components/WConfirm.vue'\r\n\r\nexport default {\r\n components: {\r\n WConfirm,\r\n },\r\n props: {\r\n },\r\n data: function() {\r\n return {\r\n\r\n bShow: false,\r\n pm: null,\r\n\r\n content: '',\r\n\r\n }\r\n },\r\n mounted: function() {\r\n //console.log('mounted')\r\n\r\n let vo = this\r\n\r\n //set\r\n Vue.prototype.$dg.showCheckYes = vo.show\r\n\r\n },\r\n computed: {\r\n },\r\n methods: {\r\n\r\n show: function (content) {\r\n //console.log('methods show', content)\r\n\r\n let vo = this\r\n\r\n //pm\r\n vo.pm = genPm()\r\n\r\n //save\r\n vo.content = content\r\n\r\n //show\r\n vo.bShow = true\r\n\r\n return vo.pm\r\n },\r\n\r\n clickUnit: function() {\r\n //console.log('methods clickUnit')\r\n\r\n let vo = this\r\n\r\n //resolve\r\n vo.pm.resolve()\r\n\r\n //hide\r\n vo.bShow = false\r\n\r\n },\r\n\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CheckYes.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CheckYes.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CheckYes.vue?vue&type=template&id=9943c370&scoped=true\"\nimport script from \"./CheckYes.vue?vue&type=script&lang=js\"\nexport * from \"./CheckYes.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9943c370\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticStyle:{\"position\":\"relative\",\"width\":\"100vw\",\"height\":\"100svh\"}},[(!_vm.autoLogining)?[_c('div',{style:(`\n position:absolute; top:0px; left:0px; width:100%; height:100%; display:flex; align-items:center; justify-content:center;\n background-image: linear-gradient(-225deg, ${_vm.c1} 0%, ${_vm.c2} 50%, ${_vm.c3} 100%);\n `)},[_c('div',{},[_c('div',{style:(`padding-top:${_vm.logoSize/2}px;`)}),_c('div',{style:(`\n position:relative;\n width:${_vm.contentWidth}px; padding:10px; border-radius:30px; background:${_vm.c4};\n box-shadow: rgb(0 0 0 / 2%) 2.76726px 2.76726px 2.21381px 0px, rgb(0 0 0 / 3%) 6.6501px 6.6501px 5.32008px 0px, rgb(0 0 0 / 4%) 12.5216px 12.5216px 10.0172px 0px, rgb(0 0 0 / 4%) 22.3363px 22.3363px 17.869px 0px, rgb(0 0 0 / 5%) 41.7776px 41.7776px 33.4221px 0px, rgb(0 0 0 / 7%) 100px 100px 80px 0px;\n `)},[_c('div',{style:(`position:absolute; top:0px; left:50%; transform:translateX(-50%) translateY(-50%); padding:15px 15px 10px 15px; border-radius:50%; background:${_vm.c5};`)},[_c('img',{attrs:{\"width\":_vm.logoSize,\"height\":_vm.logoSize,\"src\":_vm.webLogo}})]),_c('div',{style:(`padding:${_vm.logoSize/2+_vm.contentPadding}px ${_vm.contentPadding}px ${_vm.contentPadding}px ${_vm.contentPadding}px;`)},[_c('div',{staticStyle:{\"padding-bottom\":\"20px\",\"text-align\":\"center\",\"font-size\":\"1.3rem\"}},[_vm._v(\" \"+_vm._s(_vm.webName)+\" \")]),_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"stretch\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"padding\":\"0px 10px\",\"background\":\"rgba(34, 44, 77, 0.9)\"}},[_c('WIcon',{attrs:{\"icon\":'mdi-account',\"color\":'#ddd',\"colorHover\":'#eee',\"size\":24}})],1),_c('div',{staticStyle:{\"width\":\"100%\",\"padding\":\"5px 10px\",\"background\":\"rgba(34, 44, 77, 0.8)\"}},[_c('div',{style:(`font-size:0.8rem; color:#eee;`)},[_vm._v(\" \"+_vm._s(_vm.$t('account'))+\" \")]),_c('WText',{attrs:{\"textColor\":'#fff',\"bottomLineBorderColor\":'#b6b6b6',\"bottomLineBorderColorHover\":'#ccc',\"bottomLineBorderColorFocus\":'#ddd'},on:{\"enter\":_vm.login},model:{value:(_vm.account),callback:function ($$v) {_vm.account=$$v},expression:\"account\"}})],1)]),_c('div',{staticStyle:{\"padding-top\":\"10px\"}}),_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"stretch\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"padding\":\"0px 10px\",\"background\":\"rgba(34, 44, 77, 0.9)\"}},[_c('WIcon',{attrs:{\"icon\":'mdi-lock',\"color\":'#ddd',\"colorHover\":'#eee',\"size\":24}})],1),_c('div',{staticStyle:{\"width\":\"100%\",\"padding\":\"5px 10px\",\"background\":\"rgba(34, 44, 77, 0.8)\"}},[_c('div',{style:(`font-size:0.8rem; color:#eee;`)},[_vm._v(\" \"+_vm._s(_vm.$t('password'))+\" \")]),_c('WText',{attrs:{\"textColor\":'#fff',\"bottomLineBorderColor\":'#b6b6b6',\"bottomLineBorderColorHover\":'#ccc',\"bottomLineBorderColorFocus\":'#ddd',\"rightIcon\":_vm.showPassword ? 'mdi-eye' : 'mdi-eye-off',\"rightIconColor\":'#ddd',\"rightIconColorHover\":'#eee',\"rightIconColorFocus\":'#ddd',\"rightIconTooltip\":_vm.showPassword ? '顯示密碼':'隱藏密碼',\"password\":!_vm.showPassword},on:{\"click-right\":function($event){_vm.showPassword=!_vm.showPassword},\"enter\":_vm.login},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}})],1)]),_c('div',{staticStyle:{\"padding-top\":\"30px\"}}),_c('div',{staticStyle:{\"padding\":\"5px 0px\",\"text-align\":\"center\"}},[_c('WButtonChip',{style:(`opacity:${_vm.hasAcPw?1:0.5};`),attrs:{\"text\":_vm.$t('login'),\"textFontSize\":'1.0rem',\"paddingStyle\":{v:8,h:130},\"backgroundColor\":'rgba(255,255,255,0.5)',\"backgroundColorHover\":'rgba(255,255,255,0.7)',\"_shadow\":\"false\",\"editable\":_vm.hasAcPw},on:{\"click\":_vm.login}})],1)])])])]),_c('div',{staticStyle:{\"position\":\"absolute\",\"top\":\"10px\",\"right\":\"10px\"}},[_c('div',{staticStyle:{\"_white-space\":\"nowrap\"}},[_c('WTextSelect',{staticStyle:{\"width\":\"100px\"},attrs:{\"items\":_vm.tgLangs},on:{\"input\":_vm.changeLang},model:{value:(_vm.tgLangSelect),callback:function ($$v) {_vm.tgLangSelect=$$v},expression:\"tgLangSelect\"}})],1)])]:_c('div',{staticStyle:{\"position\":\"absolute\",\"top\":\"0px\",\"left\":\"0px\",\"width\":\"100%\",\"height\":\"100%\",\"display\":\"flex\",\"align-items\":\"center\",\"justify-content\":\"center\"}},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"30px\",\"height\":\"30px\",\"viewBox\":\"0 0 24 24\"}},[_c('rect',{attrs:{\"width\":\"9\",\"height\":\"9\",\"x\":\"1.5\",\"y\":\"1.5\",\"fill\":\"currentColor\",\"rx\":\"1\"}},[_c('animate',{attrs:{\"id\":\"svgSpinnersBlocksScale0\",\"attributeName\":\"x\",\"begin\":\"0;svgSpinnersBlocksScale1.end+0.15s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"1.5;.5;1.5\"}}),_c('animate',{attrs:{\"attributeName\":\"y\",\"begin\":\"0;svgSpinnersBlocksScale1.end+0.15s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"1.5;.5;1.5\"}}),_c('animate',{attrs:{\"attributeName\":\"width\",\"begin\":\"0;svgSpinnersBlocksScale1.end+0.15s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"9;11;9\"}}),_c('animate',{attrs:{\"attributeName\":\"height\",\"begin\":\"0;svgSpinnersBlocksScale1.end+0.15s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"9;11;9\"}})]),_c('rect',{attrs:{\"width\":\"9\",\"height\":\"9\",\"x\":\"13.5\",\"y\":\"1.5\",\"fill\":\"currentColor\",\"rx\":\"1\"}},[_c('animate',{attrs:{\"attributeName\":\"x\",\"begin\":\"svgSpinnersBlocksScale0.begin+0.15s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"13.5;12.5;13.5\"}}),_c('animate',{attrs:{\"attributeName\":\"y\",\"begin\":\"svgSpinnersBlocksScale0.begin+0.15s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"1.5;.5;1.5\"}}),_c('animate',{attrs:{\"attributeName\":\"width\",\"begin\":\"svgSpinnersBlocksScale0.begin+0.15s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"9;11;9\"}}),_c('animate',{attrs:{\"attributeName\":\"height\",\"begin\":\"svgSpinnersBlocksScale0.begin+0.15s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"9;11;9\"}})]),_c('rect',{attrs:{\"width\":\"9\",\"height\":\"9\",\"x\":\"13.5\",\"y\":\"13.5\",\"fill\":\"currentColor\",\"rx\":\"1\"}},[_c('animate',{attrs:{\"attributeName\":\"x\",\"begin\":\"svgSpinnersBlocksScale0.begin+0.3s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"13.5;12.5;13.5\"}}),_c('animate',{attrs:{\"attributeName\":\"y\",\"begin\":\"svgSpinnersBlocksScale0.begin+0.3s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"13.5;12.5;13.5\"}}),_c('animate',{attrs:{\"attributeName\":\"width\",\"begin\":\"svgSpinnersBlocksScale0.begin+0.3s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"9;11;9\"}}),_c('animate',{attrs:{\"attributeName\":\"height\",\"begin\":\"svgSpinnersBlocksScale0.begin+0.3s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"9;11;9\"}})]),_c('rect',{attrs:{\"width\":\"9\",\"height\":\"9\",\"x\":\"1.5\",\"y\":\"13.5\",\"fill\":\"currentColor\",\"rx\":\"1\"}},[_c('animate',{attrs:{\"id\":\"svgSpinnersBlocksScale1\",\"attributeName\":\"x\",\"begin\":\"svgSpinnersBlocksScale0.begin+0.45s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"1.5;.5;1.5\"}}),_c('animate',{attrs:{\"attributeName\":\"y\",\"begin\":\"svgSpinnersBlocksScale0.begin+0.45s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"13.5;12.5;13.5\"}}),_c('animate',{attrs:{\"attributeName\":\"width\",\"begin\":\"svgSpinnersBlocksScale0.begin+0.45s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"9;11;9\"}}),_c('animate',{attrs:{\"attributeName\":\"height\",\"begin\":\"svgSpinnersBlocksScale0.begin+0.45s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"9;11;9\"}})])])])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div style=\"position:relative; width:100vw; height:100svh;\">\r\n\r\n <template v-if=\"!autoLogining\">\r\n\r\n <div\r\n :style=\"`\r\n position:absolute; top:0px; left:0px; width:100%; height:100%; display:flex; align-items:center; justify-content:center;\r\n background-image: linear-gradient(-225deg, ${c1} 0%, ${c2} 50%, ${c3} 100%);\r\n `\"\r\n >\r\n\r\n <div style=\"\">\r\n\r\n <div :style=\"`padding-top:${logoSize/2}px;`\"></div>\r\n\r\n <div\r\n :style=\"`\r\n position:relative;\r\n width:${contentWidth}px; padding:10px; border-radius:30px; background:${c4};\r\n box-shadow: rgb(0 0 0 / 2%) 2.76726px 2.76726px 2.21381px 0px, rgb(0 0 0 / 3%) 6.6501px 6.6501px 5.32008px 0px, rgb(0 0 0 / 4%) 12.5216px 12.5216px 10.0172px 0px, rgb(0 0 0 / 4%) 22.3363px 22.3363px 17.869px 0px, rgb(0 0 0 / 5%) 41.7776px 41.7776px 33.4221px 0px, rgb(0 0 0 / 7%) 100px 100px 80px 0px;\r\n `\"\r\n >\r\n\r\n <div :style=\"`position:absolute; top:0px; left:50%; transform:translateX(-50%) translateY(-50%); padding:15px 15px 10px 15px; border-radius:50%; background:${c5};`\">\r\n <img :width=\"logoSize\" :height=\"logoSize\" :src=\"webLogo\">\r\n </div>\r\n\r\n <div :style=\"`padding:${logoSize/2+contentPadding}px ${contentPadding}px ${contentPadding}px ${contentPadding}px;`\">\r\n\r\n <div style=\"padding-bottom:20px; text-align:center; font-size:1.3rem;\">\r\n {{webName}}\r\n </div>\r\n\r\n <div style=\"display:flex; align-items:stretch;\">\r\n\r\n <div style=\"display:flex; align-items:center; padding:0px 10px; background:rgba(34, 44, 77, 0.9);\">\r\n <WIcon\r\n :icon=\"'mdi-account'\"\r\n :color=\"'#ddd'\"\r\n :colorHover=\"'#eee'\"\r\n :size=\"24\"\r\n ></WIcon>\r\n </div>\r\n\r\n <div style=\"width:100%; padding:5px 10px; background:rgba(34, 44, 77, 0.8);\">\r\n\r\n <div :style=\"`font-size:0.8rem; color:#eee;`\">\r\n {{$t('account')}}\r\n </div>\r\n\r\n <WText\r\n :textColor=\"'#fff'\"\r\n :bottomLineBorderColor=\"'#b6b6b6'\"\r\n :bottomLineBorderColorHover=\"'#ccc'\"\r\n :bottomLineBorderColorFocus=\"'#ddd'\"\r\n v-model=\"account\"\r\n @enter=\"login\"\r\n ></WText>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div style=\"padding-top:10px\"></div>\r\n\r\n <div style=\"display:flex; align-items:stretch;\">\r\n\r\n <div style=\"display:flex; align-items:center; padding:0px 10px; background:rgba(34, 44, 77, 0.9);\">\r\n <WIcon\r\n :icon=\"'mdi-lock'\"\r\n :color=\"'#ddd'\"\r\n :colorHover=\"'#eee'\"\r\n :size=\"24\"\r\n ></WIcon>\r\n </div>\r\n\r\n <div style=\"width:100%; padding:5px 10px; background:rgba(34, 44, 77, 0.8);\">\r\n\r\n <div :style=\"`font-size:0.8rem; color:#eee;`\">\r\n {{$t('password')}}\r\n </div>\r\n\r\n <WText\r\n :textColor=\"'#fff'\"\r\n :bottomLineBorderColor=\"'#b6b6b6'\"\r\n :bottomLineBorderColorHover=\"'#ccc'\"\r\n :bottomLineBorderColorFocus=\"'#ddd'\"\r\n :rightIcon=\"showPassword ? 'mdi-eye' : 'mdi-eye-off'\"\r\n :rightIconColor=\"'#ddd'\"\r\n :rightIconColorHover=\"'#eee'\"\r\n :rightIconColorFocus=\"'#ddd'\"\r\n :rightIconTooltip=\"showPassword ? '顯示密碼':'隱藏密碼'\"\r\n :password=\"!showPassword\"\r\n v-model=\"password\"\r\n @click-right=\"showPassword=!showPassword\"\r\n @enter=\"login\"\r\n ></WText>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div style=\"padding-top:30px\"></div>\r\n\r\n <div style=\"padding:5px 0px; text-align:center;\">\r\n <WButtonChip\r\n :style=\"`opacity:${hasAcPw?1:0.5};`\"\r\n :text=\"$t('login')\"\r\n :textFontSize=\"'1.0rem'\"\r\n :paddingStyle=\"{v:8,h:130}\"\r\n :backgroundColor=\"'rgba(255,255,255,0.5)'\"\r\n :backgroundColorHover=\"'rgba(255,255,255,0.7)'\"\r\n _shadow=\"false\"\r\n :editable=\"hasAcPw\"\r\n @click=\"login\"\r\n ></WButtonChip>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div style=\"position:absolute; top:10px; right:10px;\">\r\n <div style=\"_white-space:nowrap\">\r\n <WTextSelect\r\n style=\"width:100px;\"\r\n :items=\"tgLangs\"\r\n v-model=\"tgLangSelect\"\r\n @input=\"changeLang\"\r\n ></WTextSelect>\r\n </div>\r\n </div>\r\n\r\n </template>\r\n\r\n <div\r\n style=\"position:absolute; top:0px; left:0px; width:100%; height:100%; display:flex; align-items:center; justify-content:center;\"\r\n v-else\r\n >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"30px\" height=\"30px\" viewBox=\"0 0 24 24\"><rect width=\"9\" height=\"9\" x=\"1.5\" y=\"1.5\" fill=\"currentColor\" rx=\"1\"><animate id=\"svgSpinnersBlocksScale0\" attributeName=\"x\" begin=\"0;svgSpinnersBlocksScale1.end+0.15s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"1.5;.5;1.5\"/><animate attributeName=\"y\" begin=\"0;svgSpinnersBlocksScale1.end+0.15s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"1.5;.5;1.5\"/><animate attributeName=\"width\" begin=\"0;svgSpinnersBlocksScale1.end+0.15s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"9;11;9\"/><animate attributeName=\"height\" begin=\"0;svgSpinnersBlocksScale1.end+0.15s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"9;11;9\"/></rect><rect width=\"9\" height=\"9\" x=\"13.5\" y=\"1.5\" fill=\"currentColor\" rx=\"1\"><animate attributeName=\"x\" begin=\"svgSpinnersBlocksScale0.begin+0.15s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"13.5;12.5;13.5\"/><animate attributeName=\"y\" begin=\"svgSpinnersBlocksScale0.begin+0.15s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"1.5;.5;1.5\"/><animate attributeName=\"width\" begin=\"svgSpinnersBlocksScale0.begin+0.15s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"9;11;9\"/><animate attributeName=\"height\" begin=\"svgSpinnersBlocksScale0.begin+0.15s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"9;11;9\"/></rect><rect width=\"9\" height=\"9\" x=\"13.5\" y=\"13.5\" fill=\"currentColor\" rx=\"1\"><animate attributeName=\"x\" begin=\"svgSpinnersBlocksScale0.begin+0.3s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"13.5;12.5;13.5\"/><animate attributeName=\"y\" begin=\"svgSpinnersBlocksScale0.begin+0.3s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"13.5;12.5;13.5\"/><animate attributeName=\"width\" begin=\"svgSpinnersBlocksScale0.begin+0.3s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"9;11;9\"/><animate attributeName=\"height\" begin=\"svgSpinnersBlocksScale0.begin+0.3s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"9;11;9\"/></rect><rect width=\"9\" height=\"9\" x=\"1.5\" y=\"13.5\" fill=\"currentColor\" rx=\"1\"><animate id=\"svgSpinnersBlocksScale1\" attributeName=\"x\" begin=\"svgSpinnersBlocksScale0.begin+0.45s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"1.5;.5;1.5\"/><animate attributeName=\"y\" begin=\"svgSpinnersBlocksScale0.begin+0.45s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"13.5;12.5;13.5\"/><animate attributeName=\"width\" begin=\"svgSpinnersBlocksScale0.begin+0.45s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"9;11;9\"/><animate attributeName=\"height\" begin=\"svgSpinnersBlocksScale0.begin+0.45s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"9;11;9\"/></rect></svg>\r\n </div>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport get from 'lodash-es/get.js'\r\nimport isestr from 'wsemi/src/isestr.mjs'\r\nimport isDev from 'wsemi/src/isDev.mjs'\r\nimport delay from 'wsemi/src/delay.mjs'\r\nimport waitFun from 'wsemi/src/waitFun.mjs'\r\nimport WIcon from 'w-component-vue/src/components/WIcon.vue'\r\nimport WText from 'w-component-vue/src/components/WText.vue'\r\nimport WTextSelect from 'w-component-vue/src/components/WTextSelect.vue'\r\nimport WButtonChip from 'w-component-vue/src/components/WButtonChip.vue'\r\n\r\n\r\nexport default {\r\n components: {\r\n WIcon,\r\n WText,\r\n WTextSelect,\r\n WButtonChip,\r\n },\r\n props: {\r\n },\r\n data: function() {\r\n return {\r\n\r\n tgLangs: [\r\n {\r\n id: 'cht',\r\n text: '中文',\r\n },\r\n {\r\n id: 'eng',\r\n text: 'English',\r\n },\r\n ],\r\n tgLangSelect: {\r\n id: 'cht',\r\n text: '中文',\r\n },\r\n\r\n logoSize: 120,\r\n\r\n contentWidth: 380,\r\n contentPadding: 30,\r\n\r\n autoLogining: true,\r\n\r\n account: '',\r\n\r\n showPassword: false,\r\n password: '',\r\n\r\n }\r\n },\r\n mounted: function() {\r\n let vo = this\r\n\r\n //autoLogin\r\n vo.autoLogin()\r\n\r\n },\r\n computed: {\r\n\r\n connState: function() {\r\n //console.log('computed loading')\r\n\r\n let vo = this\r\n\r\n return get(vo, `$store.state.connState`)\r\n },\r\n\r\n syncState: function() {\r\n //console.log('computed syncState')\r\n\r\n let vo = this\r\n\r\n return get(vo, '$store.state.syncState')\r\n },\r\n\r\n viewState: function() {\r\n //console.log('computed viewState')\r\n\r\n let vo = this\r\n\r\n return get(vo, `$store.state.viewState`, '')\r\n },\r\n\r\n heightToolbar: function() {\r\n //console.log('computed heightToolbar')\r\n\r\n let vo = this\r\n\r\n return get(vo, `$store.state.heightToolbar`, 0)\r\n },\r\n\r\n webName: {\r\n get() {\r\n let vo = this\r\n let c = vo.$t('webName', '')\r\n // console.log('get webName1', c)\r\n if (!isestr(c)) {\r\n c = vo.$t('waitingData', '')\r\n }\r\n // console.log('get webName2', c)\r\n document.title = c //更換網頁title\r\n return c\r\n },\r\n // set(value) {\r\n // return value\r\n // },\r\n },\r\n\r\n webLogo: function() {\r\n //console.log('computed webLogo')\r\n\r\n let vo = this\r\n\r\n return get(vo, `$store.state.webInfor.webLogo`, '')\r\n },\r\n\r\n webBackgoundGradientColors: function() {\r\n //console.log('computed webBackgoundGradientColors')\r\n\r\n let vo = this\r\n\r\n return get(vo, `$store.state.webInfor.webBackgoundGradientColors`, [])\r\n },\r\n\r\n c1: function() {\r\n let vo = this\r\n let c = get(vo, 'webBackgoundGradientColors.0', '#fff')\r\n return c\r\n },\r\n\r\n c2: function() {\r\n let vo = this\r\n let c = get(vo, 'webBackgoundGradientColors.1', '#fff')\r\n return c\r\n },\r\n\r\n c3: function() {\r\n let vo = this\r\n let c = get(vo, 'webBackgoundGradientColors.2', '#fff')\r\n return c\r\n },\r\n\r\n c4: function() {\r\n let vo = this\r\n let c = get(vo, 'webBackgoundGradientColors.3', '#fff')\r\n return c\r\n },\r\n\r\n c5: function() {\r\n let vo = this\r\n let c = get(vo, 'webBackgoundGradientColors.4', '#fff')\r\n return c\r\n },\r\n\r\n webKey: function() {\r\n //console.log('computed webKey')\r\n\r\n let vo = this\r\n\r\n return get(vo, `$store.state.webInfor.webKey`, '')\r\n },\r\n\r\n hasAcPw: function() {\r\n //console.log('computed loading')\r\n\r\n let vo = this\r\n\r\n return isestr(vo.account) && isestr(vo.password)\r\n },\r\n\r\n },\r\n methods: {\r\n\r\n changeLang: function(msg) {\r\n // console.log('methods changeLang', msg)\r\n let vo = this\r\n let lang = msg.id\r\n vo.$ui.setLang(lang)\r\n },\r\n\r\n goUrl: function(url, token) {\r\n // let vo = this\r\n\r\n //replace\r\n url = url.replaceAll('{token}', token)\r\n\r\n //href\r\n if (isDev()) {\r\n console.log('60s後重導至:', url)\r\n setTimeout(() => {\r\n window.location.href = url\r\n }, 60 * 1000)\r\n }\r\n else {\r\n window.location.href = url\r\n }\r\n\r\n },\r\n\r\n autoLogin: function() {\r\n let vo = this\r\n\r\n async function core() {\r\n let errTemp = null\r\n\r\n //check\r\n if (!vo.autoLogining) {\r\n return\r\n }\r\n\r\n //waitFun, 因須使用webKey故須等待syncState\r\n await waitFun(() => {\r\n return vo.syncState\r\n })\r\n\r\n //$keyLS\r\n let $keyLS = vo.webKey\r\n\r\n //check\r\n if (!isestr($keyLS)) {\r\n vo.autoLogining = false\r\n\r\n //alert\r\n vo.$alert(vo.$t('failedLoginForNoWebKey'), { type: 'error' })\r\n\r\n return\r\n }\r\n\r\n //key\r\n let key = `${$keyLS}:userToken`\r\n // console.log('key', key)\r\n\r\n //getItem\r\n let token = await localStorage.getItem(key)\r\n // console.log('token', token)\r\n\r\n //checkToken\r\n await vo.$fapi.checkToken(token)\r\n .catch((err) => {\r\n errTemp = err\r\n //無有效token改為提供使用者進行帳密登入\r\n })\r\n if (errTemp) {\r\n vo.autoLogining = false\r\n return\r\n }\r\n\r\n //getUserByToken\r\n let u = await vo.$fapi.getUserByToken(token)\r\n // console.log('getUserByToken u', u)\r\n\r\n //redir\r\n let redir = get(u, 'redir', '')\r\n // console.log('redir', redir)\r\n\r\n //check\r\n if (!isestr(redir)) {\r\n vo.autoLogining = false\r\n\r\n //alert\r\n vo.$alert(vo.$t('failedLoginForNoRedir'), { type: 'error' })\r\n\r\n return\r\n }\r\n\r\n //goUrl\r\n vo.goUrl(redir, token)\r\n\r\n //autoLogining\r\n vo.autoLogining = false\r\n\r\n }\r\n\r\n //core\r\n core()\r\n .catch((err) => {\r\n console.log('autoLogin', err)\r\n\r\n //alert\r\n vo.$alert(vo.$t('failedLoginForCatch'), { type: 'error' })\r\n\r\n })\r\n .finally(() => {\r\n\r\n //hide loading\r\n vo.$ui.updateLoading(false)\r\n\r\n })\r\n\r\n },\r\n\r\n login: function() {\r\n let vo = this\r\n\r\n async function core() {\r\n\r\n //show loading\r\n vo.$ui.updateLoading(true)\r\n\r\n //delay\r\n await delay(1000)\r\n\r\n //$keyLS\r\n let $keyLS = vo.webKey\r\n\r\n //check\r\n if (!isestr($keyLS)) {\r\n return Promise.reject(vo.$t('failedLoginForNoWebKey'))\r\n }\r\n\r\n //key\r\n let key = `${$keyLS}:userToken`\r\n // console.log('key', key)\r\n\r\n //loginByAccountAndPassword\r\n let u = await vo.$fapi.loginByAccountAndPassword(vo.account, vo.password)\r\n // console.log('u', u)\r\n\r\n //setItem\r\n await localStorage.setItem(key, '')\r\n\r\n //token\r\n let token = get(u, 'token', '')\r\n // console.log('token', token)\r\n\r\n //check\r\n if (!isestr(token)) {\r\n return Promise.reject(vo.$t('failedLoginForNoToken'))\r\n }\r\n\r\n //setItem\r\n await localStorage.setItem(key, token)\r\n\r\n //redir\r\n let redir = get(u, 'redir', '')\r\n // console.log('redir', redir)\r\n\r\n //check\r\n if (!isestr(redir)) {\r\n return Promise.reject(vo.$t('failedLoginForNoRedir'))\r\n }\r\n\r\n //goUrl\r\n vo.goUrl(redir, token)\r\n\r\n }\r\n\r\n //core\r\n core()\r\n .catch((err) => {\r\n console.log('login', err)\r\n\r\n //alert\r\n vo.$alert(vo.$t('failedLoginForCatch'), { type: 'error' })\r\n\r\n })\r\n .finally(() => {\r\n\r\n //hide loading\r\n vo.$ui.updateLoading(false)\r\n\r\n })\r\n\r\n },\r\n\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PageLogin.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PageLogin.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PageLogin.vue?vue&type=template&id=67e885bc&scoped=true\"\nimport script from \"./PageLogin.vue?vue&type=script&lang=js\"\nexport * from \"./PageLogin.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"67e885bc\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticStyle:{\"height\":\"100vh\",\"background\":\"#f5f5f5\"}},[_c('div',{style:(`height:${_vm.heightToolbar}px; overflow-y:hidden; padding:0px 10px; background:#fff; border-bottom:1px solid #ccc; display:flex; align-items:center;`)},[(false)?_c('WButtonCircle',{attrs:{\"icon\":'mdi-menu',\"tooltip\":'左側選單',\"shadow\":false},on:{\"click\":function($event){_vm.drawer=!_vm.drawer}}}):_vm._e(),_c('div',{staticStyle:{\"padding-left\":\"5px\",\"white-space\":\"nowrap\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\"}},[(_vm.webLogo)?_c('div',{staticStyle:{\"padding-right\":\"10px\",\"display\":\"flex\",\"align-items\":\"center\"}},[_c('img',{staticStyle:{\"width\":\"36px\",\"height\":\"36px\"},attrs:{\"src\":_vm.webLogo}})]):_vm._e(),_c('div',[_c('div',{staticStyle:{\"font-size\":\"1.2rem\",\"color\":\"#000\"}},[_vm._v(_vm._s(_vm.webName))]),_c('div',{staticStyle:{\"font-size\":\"0.8rem\",\"color\":\"#666\"}},[_vm._v(_vm._s(_vm.$t('webDescription')))])])])]),_c('div',{staticStyle:{\"width\":\"100%\"}}),_c('div',{staticStyle:{\"padding-right\":\"10px\",\"white-space\":\"nowrap\"}},[_c('WTextSelect',{staticStyle:{\"width\":\"100px\"},attrs:{\"items\":_vm.tgLangs},on:{\"input\":_vm.changeLang},model:{value:(_vm.tgLangSelect),callback:function ($$v) {_vm.tgLangSelect=$$v},expression:\"tgLangSelect\"}})],1)],1),_c('div',{style:(`height:calc( 100% - ${_vm.heightToolbar}px );`)},[_c('LayoutContent')],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"domresize\",rawName:\"v-domresize\"}],staticStyle:{\"height\":\"100%\",\"width\":\"100%\"},on:{\"domresize\":_vm.resize}},[(_vm.syncState)?[_c('WDrawer',{style:(`height:${_vm.panelHeight}px; width:100%;`),attrs:{\"drawerWidth\":_vm.drawerWidth,\"drawerWidthMin\":_vm.drawerWidthMin,\"drawerWidthMax\":_vm.drawerWidthMax,\"mode\":'from-left',\"dragDrawerWidth\":true,\"autoSwitch\":true,\"switchWidth\":_vm.drawerWidth*2.3},on:{\"update:drawerWidth\":function($event){_vm.drawerWidth=$event},\"update:drawer-width\":function($event){_vm.drawerWidth=$event}},scopedSlots:_vm._u([{key:\"drawer\",fn:function(props){return [_c('div',{style:(`height:${props.height}px; background:#fff; position:relative;`)},[_c('WListVertical',{staticStyle:{\"height\":\"100%\"},attrs:{\"items\":_vm.menus,\"itemActive\":_vm.menuActive,\"item-text-color\":'#222',\"item-text-color-hover\":'#444',\"item-text-color-active\":'#EF6C00',\"item-icon-color\":'#222',\"item-icon-color-hover\":'#444',\"item-icon-color-active\":'#EF6C00',\"item-background-color\":'#fff',\"item-background-color-hover\":'#f2f2f2',\"item-background-color-active\":'#FFF3E0',\"paddingStyle\":{v:15,h:15}},on:{\"click\":(menu)=>{_vm.menuKey=menu.key}}}),(_vm.drawer)?_c('div',{style:(`position:absolute; top:1px; right:4px;`)},[_c('WButtonCircle',{attrs:{\"paddingStyle\":{v:3,h:3},\"icon\":'mdi-arrow-left',\"iconSize\":16,\"backgroundColor\":'#fff',\"backgroundColorHover\":'#eee',\"backgroundColorFocus\":'#fff',\"borderColor\":'transparent',\"borderColorHover\":'#eee',\"borderColorFocus\":'#eee',\"tooltip\":_vm.$t('menuTreeHide'),\"shadow\":true},on:{\"click\":function($event){_vm.drawer=false}}})],1):_vm._e()],1)]}},{key:\"content\",fn:function(props){return [_c('div',{style:(`height:${props.height}px; width:${props.width}px; position:relative;`)},[[(_vm.menuKey==='users')?_c('LayoutContentUsers'):_vm._e()],(!_vm.drawer)?_c('div',{style:(`position:absolute; top:1px; left:4px;`)},[_c('WButtonCircle',{attrs:{\"paddingStyle\":{v:3,h:3},\"icon\":'mdi-arrow-right',\"iconSize\":16,\"backgroundColor\":'#fff',\"backgroundColorHover\":'#eee',\"backgroundColorFocus\":'#fff',\"borderColor\":'transparent',\"borderColorHover\":'#eee',\"borderColorFocus\":'#eee',\"tooltip\":_vm.$t('menuTreeShow'),\"shadow\":true},on:{\"click\":function($event){_vm.drawer=true}}})],1):_vm._e()],2)]}}],null,false,3751248676),model:{value:(_vm.drawer),callback:function ($$v) {_vm.drawer=$$v},expression:\"drawer\"}})]:[_c('div',{staticStyle:{\"padding\":\"20px\",\"font-size\":\"0.9rem\"}},[_vm._v(\" \"+_vm._s(_vm.$t('waitingData'))+\" \")])]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"domresize\",rawName:\"v-domresize\"}],staticStyle:{\"height\":\"100%\"},attrs:{\"changeUsers\":_vm.changeUsers},on:{\"domresize\":_vm.resizePanel}},[_c('div',{directives:[{name:\"domresize\",rawName:\"v-domresize\"}],staticStyle:{\"border-bottom\":\"1px solid #ddd\",\"background\":\"#fff\"},on:{\"domresize\":_vm.resizeHead}},[_c('div',{staticStyle:{\"display\":\"inline-block\",\"vertical-align\":\"top\",\"padding\":\"10px 0px 5px 20px\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"padding\":\"5px 15px 5px 5px\",\"border-bottom\":\"3px solid #FF9100\"}},[_c('WIcon',{attrs:{\"icon\":_vm.mdiAccountGroupOutline,\"color\":'#FF9800'}}),_c('div',{staticStyle:{\"padding-left\":\"10px\",\"font-size\":\"1.3rem\",\"color\":\"#d3912c\"}},[_vm._v(\" bbb \")])],1)]),_c('div',{staticStyle:{\"display\":\"inline-block\",\"vertical-align\":\"top\"}},[_c('div',{staticStyle:{\"padding\":\"15px 20px 15px 20px\",\"background\":\"#fff\"}},[_c('div',{staticStyle:{\"display\":\"flex\"}},[_c('WSwitch',{attrs:{\"text\":_vm.$t('isEditabled'),\"checkedSwitchCircleColor\":'#D81B60',\"checkedSwitchCircleColorHover\":'#f26',\"checkedSwitchBarColor\":'#F8BBD0',\"checkedSwitchBarColorHover\":'#F8BBD0'},model:{value:(_vm.isOperatable),callback:function ($$v) {_vm.isOperatable=$$v},expression:\"isOperatable\"}})],1),(_vm.isOperatable)?_c('div',{staticStyle:{\"padding-top\":\"5px\",\"font-size\":\"0.8rem\",\"_color\":\"#f26\"}},[_c('div',{staticStyle:{\"padding\":\"3px 0px\"}},[_vm._v(\" 1. \"+_vm._s(_vm.$t('userMsg1'))+\" \")]),_c('div',{staticStyle:{\"padding\":\"3px 0px\"}},[_vm._v(\" 2. \"+_vm._s(_vm.$t('userMsg2'))+\" \")])]):_vm._e()])]),(_vm.isModified)?_c('div',{staticStyle:{\"padding\":\"10px 10px 12px 10px\",\"border-top\":\"1px solid #F48FB1\",\"border-bottom\":\"1px solid #F48FB1\",\"background\":\"#FCE4EC\",\"display\":\"flex\",\"align-items\":\"center\",\"justify-content\":\"flex-end\"}},[_c('WButtonChip',{attrs:{\"paddingStyle\":{v:0,h:11},\"text\":_vm.$t('saveChanges'),\"icon\":_vm.mdiCloudUploadOutline,\"backgroundColor\":'rgba(255,0,50,0.7)',\"backgroundColorHover\":'rgba(255,0,50,0.8)',\"textColor\":'#eee',\"textColorHover\":'#fff',\"iconColor\":'#eee',\"iconColorHover\":'#fff'},on:{\"click\":_vm.saveGroups}})],1):_vm._e()]),(!_vm.firstLoading)?_c('div',{style:(`padding:${_vm.spacePading}px;`)},[_c('div',{staticStyle:{\"background\":\"#fff\",\"box-shadow\":\"0 3px 1px -2px rgba(0,0,0,.2), 0 2px 2px 0 rgba(0,0,0,.14), 0 1px 5px 0 rgba(0,0,0,.12)\"}},[_c('div',{directives:[{name:\"domresize\",rawName:\"v-domresize\"}],staticStyle:{\"padding\":\"20px 10px 10px 20px\",\"border-bottom\":\"3px solid #ddd\"},on:{\"domresize\":_vm.resizeGroupInfor}},[_c('div',{staticStyle:{\"padding\":\"0px 10px 10px 0px\",\"display\":\"inline-block\",\"vertical-align\":\"middle\",\"color\":\"#666\",\"font-size\":\"1.1rem\"}},[_vm._v(\" \"+_vm._s(_vm.$t('userList'))+\" \")]),(_vm.isOperatable)?_c('div',{staticStyle:{\"padding\":\"0px 10px 10px 0px\",\"display\":\"inline-block\",\"vertical-align\":\"middle\"}},[_c('WButtonChip',{attrs:{\"paddingStyle\":{v:0,h:11},\"text\":_vm.$t('addUser'),\"icon\":_vm.mdiAccountPlusOutline,\"backgroundColor\":'rgba(255,0,50,0.7)',\"backgroundColorHover\":'rgba(255,0,50,0.8)',\"textColor\":'#eee',\"textColorHover\":'#fff',\"iconColor\":'#eee',\"iconColorHover\":'#fff'},on:{\"click\":_vm.clickAddUser}})],1):_vm._e()]),_c('WPanelScrolly',{style:(`height:${_vm.usersGroupsHeight}px; _overflow-y:auto;`)},[_c('div',{staticStyle:{\"padding\":\"10px\"}},_vm._l((_vm.usersGroups),function(us,kus){return _c('div',{key:'kus:'+kus,staticStyle:{\"padding\":\"10px\"}},[_c('div',{staticStyle:{\"padding-bottom\":\"5px\",\"display\":\"flex\",\"align-items\":\"center\",\"border-bottom\":\"1px dashed #ddd\"}},[_c('div',{staticStyle:{\"padding-right\":\"5px\",\"color\":\"#888\",\"font-size\":\"0.8rem\"}},[_vm._v(\" \"+_vm._s(_vm.$t('from'))+\": \")]),_c('div',{staticStyle:{\"color\":\"#000\",\"font-size\":\"0.8rem\"}},[_vm._v(\" \"+_vm._s(_vm.getFrom(kus))+\" \")])]),_c('div',{staticStyle:{\"padding-top\":\"10px\"}},_vm._l((us),function(u,ku){return _c('div',{key:'ku:'+ku,staticStyle:{\"display\":\"inline-block\",\"margin\":\"0px 10px 10px 0px\"}},[_c('WButtonChip',{attrs:{\"text\":u.name,\"paddingStyle\":{\n v: 2,\n h: 12,\n },\"icon\":_vm.getIsAdmin(u)?_vm.mdiChessRook:'',\"backgroundColor\":_vm.getIsNotActive(u)?'rgba(130,130,130,0.8)':_vm.getIsAdmin(u)?'rgba(216, 27, 96, 0.8)':'rgba(50,110,230,0.8)',\"backgroundColorHover\":_vm.getIsNotActive(u)?'rgba(130,130,130,0.9)':_vm.getIsAdmin(u)?'rgba(216, 27, 96, 0.9)':'rgba(50,110,230,0.9)',\"textColor\":'#eee',\"textColorHover\":'#fff',\"iconColor\":'#eee',\"iconColorHover\":'#fff',\"close\":_vm.isOperatable},on:{\"click\":function($event){return _vm.clickEditUser(u)},\"click-close\":function($event){return _vm.clickRemoveUser(u)}}})],1)}),0)])}),0)])],1)]):_c('div',{staticStyle:{\"padding\":\"10px 15px\",\"font-size\":\"0.8rem\"}},[_vm._v(\" \"+_vm._s(_vm.$t('waitingData'))+\" \")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div\r\n style=\"height:100%;\"\r\n v-domresize\r\n @domresize=\"resizePanel\"\r\n :changeUsers=\"changeUsers\"\r\n >\r\n\r\n <div\r\n style=\"border-bottom:1px solid #ddd; background:#fff;\"\r\n v-domresize\r\n @domresize=\"resizeHead\"\r\n >\r\n\r\n <!-- 標題區 -->\r\n <div style=\"display:inline-block; vertical-align:top; padding:10px 0px 5px 20px;\">\r\n <div style=\"display:flex; align-items:center; padding:5px 15px 5px 5px; border-bottom:3px solid #FF9100;\">\r\n\r\n <WIcon\r\n :icon=\"mdiAccountGroupOutline\"\r\n :color=\"'#FF9800'\"\r\n ></WIcon>\r\n\r\n <div style=\"padding-left:10px; font-size:1.3rem; color:#d3912c;\">\r\n bbb\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <!-- 編輯設定區 -->\r\n <div style=\"display:inline-block; vertical-align:top;\">\r\n\r\n <div style=\"padding:15px 20px 15px 20px; background:#fff;\">\r\n\r\n <div style=\"display:flex;\">\r\n <WSwitch\r\n :text=\"$t('isEditabled')\"\r\n :checkedSwitchCircleColor=\"'#D81B60'\"\r\n :checkedSwitchCircleColorHover=\"'#f26'\"\r\n :checkedSwitchBarColor=\"'#F8BBD0'\"\r\n :checkedSwitchBarColorHover=\"'#F8BBD0'\"\r\n v-model=\"isOperatable\"\r\n ></WSwitch>\r\n </div>\r\n\r\n <div style=\"padding-top:5px; font-size:0.8rem; _color:#f26;\" v-if=\"isOperatable\">\r\n <div style=\"padding:3px 0px;\">\r\n 1. {{$t('userMsg1')}}\r\n </div>\r\n <div style=\"padding:3px 0px;\">\r\n 2. {{$t('userMsg2')}}\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <!-- 儲存變更提示區 -->\r\n <div\r\n style=\"padding:10px 10px 12px 10px; border-top:1px solid #F48FB1; border-bottom:1px solid #F48FB1; background:#FCE4EC; display:flex; align-items:center; justify-content:flex-end;\"\r\n v-if=\"isModified\"\r\n >\r\n\r\n <WButtonChip\r\n :paddingStyle=\"{v:0,h:11}\"\r\n :text=\"$t('saveChanges')\"\r\n :icon=\"mdiCloudUploadOutline\"\r\n :backgroundColor=\"'rgba(255,0,50,0.7)'\"\r\n :backgroundColorHover=\"'rgba(255,0,50,0.8)'\"\r\n :textColor=\"'#eee'\"\r\n :textColorHover=\"'#fff'\"\r\n :iconColor=\"'#eee'\"\r\n :iconColorHover=\"'#fff'\"\r\n @click=\"saveGroups\"\r\n ></WButtonChip>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div\r\n :style=\"`padding:${spacePading}px;`\"\r\n v-if=\"!firstLoading\"\r\n >\r\n\r\n <div style=\"background:#fff; box-shadow:0 3px 1px -2px rgba(0,0,0,.2), 0 2px 2px 0 rgba(0,0,0,.14), 0 1px 5px 0 rgba(0,0,0,.12);\">\r\n\r\n <div\r\n style=\"padding:20px 10px 10px 20px; border-bottom:3px solid #ddd;\"\r\n v-domresize\r\n @domresize=\"resizeGroupInfor\"\r\n >\r\n\r\n <div style=\"padding:0px 10px 10px 0px; display:inline-block; vertical-align:middle; color:#666; font-size:1.1rem;\">\r\n {{$t('userList')}}\r\n </div>\r\n\r\n <div\r\n style=\"padding:0px 10px 10px 0px; display:inline-block; vertical-align:middle;\"\r\n v-if=\"isOperatable\"\r\n >\r\n\r\n <WButtonChip\r\n :paddingStyle=\"{v:0,h:11}\"\r\n :text=\"$t('addUser')\"\r\n :icon=\"mdiAccountPlusOutline\"\r\n :backgroundColor=\"'rgba(255,0,50,0.7)'\"\r\n :backgroundColorHover=\"'rgba(255,0,50,0.8)'\"\r\n :textColor=\"'#eee'\"\r\n :textColorHover=\"'#fff'\"\r\n :iconColor=\"'#eee'\"\r\n :iconColorHover=\"'#fff'\"\r\n @click=\"clickAddUser\"\r\n ></WButtonChip>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <WPanelScrolly\r\n :style=\"`height:${usersGroupsHeight}px; _overflow-y:auto;`\"\r\n >\r\n <div style=\"padding:10px;\">\r\n\r\n <div\r\n style=\"padding:10px;\"\r\n :key=\"'kus:'+kus\"\r\n v-for=\"(us,kus) in usersGroups\"\r\n >\r\n\r\n <div style=\"padding-bottom:5px; display:flex; align-items:center; border-bottom:1px dashed #ddd;\">\r\n <div style=\"padding-right:5px; color:#888; font-size:0.8rem;\">\r\n {{$t('from')}}:\r\n </div>\r\n <div style=\"color:#000; font-size:0.8rem;\">\r\n {{getFrom(kus)}}\r\n </div>\r\n </div>\r\n\r\n <div style=\"padding-top:10px;\">\r\n\r\n <div\r\n style=\"display:inline-block; margin:0px 10px 10px 0px;\"\r\n :key=\"'ku:'+ku\"\r\n v-for=\"(u,ku) in us\"\r\n >\r\n\r\n <WButtonChip\r\n :text=\"u.name\"\r\n :paddingStyle=\"{\r\n v: 2,\r\n h: 12,\r\n }\"\r\n :icon=\"getIsAdmin(u)?mdiChessRook:''\"\r\n :backgroundColor=\"getIsNotActive(u)?'rgba(130,130,130,0.8)':getIsAdmin(u)?'rgba(216, 27, 96, 0.8)':'rgba(50,110,230,0.8)'\"\r\n :backgroundColorHover=\"getIsNotActive(u)?'rgba(130,130,130,0.9)':getIsAdmin(u)?'rgba(216, 27, 96, 0.9)':'rgba(50,110,230,0.9)'\"\r\n :textColor=\"'#eee'\"\r\n :textColorHover=\"'#fff'\"\r\n :iconColor=\"'#eee'\"\r\n :iconColorHover=\"'#fff'\"\r\n :close=\"isOperatable\"\r\n @click=\"clickEditUser(u)\"\r\n @click-close=\"clickRemoveUser(u)\"\r\n ></WButtonChip>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n </WPanelScrolly>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div style=\"padding:10px 15px; font-size:0.8rem;\" v-else>\r\n {{$t('waitingData')}}\r\n </div>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mdiAccountGroupOutline, mdiAccountPlusOutline, mdiCheckboxMarkedCircle, mdiChessRook } from '@mdi/js/mdi.js'\r\nimport get from 'lodash-es/get.js'\r\nimport each from 'lodash-es/each.js'\r\nimport keys from 'lodash-es/keys.js'\r\nimport sortBy from 'lodash-es/sortBy.js'\r\nimport find from 'lodash-es/find.js'\r\nimport size from 'lodash-es/size.js'\r\nimport groupBy from 'lodash-es/groupBy.js'\r\nimport genID from 'wsemi/src/genID.mjs'\r\nimport isestr from 'wsemi/src/isestr.mjs'\r\nimport iseobj from 'wsemi/src/iseobj.mjs'\r\nimport waitFun from 'wsemi/src/waitFun.mjs'\r\nimport WIcon from 'w-component-vue/src/components/WIcon.vue'\r\nimport WButtonChip from 'w-component-vue/src/components/WButtonChip.vue'\r\nimport WSwitch from 'w-component-vue/src/components/WSwitch.vue'\r\nimport WPanelScrolly from 'w-component-vue/src/components/WPanelScrolly.vue'\r\n\r\n\r\nexport default {\r\n components: {\r\n WIcon,\r\n WButtonChip,\r\n WSwitch,\r\n WPanelScrolly,\r\n },\r\n props: {\r\n },\r\n data: function() {\r\n return {\r\n mdiAccountGroupOutline,\r\n mdiAccountPlusOutline,\r\n mdiCheckboxMarkedCircle,\r\n mdiChessRook,\r\n\r\n panelWidth: 100,\r\n panelHeight: 100,\r\n headHeight: 100,\r\n groupInforHeight: 100,\r\n\r\n firstLoading: true,\r\n isOperatable: true,\r\n isModified: false,\r\n\r\n pickGroupId: '',\r\n\r\n }\r\n },\r\n computed: {\r\n\r\n users: function() {\r\n return get(this, `$store.state.users`)\r\n },\r\n\r\n usersGroups: function() {\r\n let gs = groupBy(this.users, 'from')\r\n let ks = keys(gs)\r\n ks = sortBy(ks)\r\n let gsTemp = {}\r\n each(ks, (k) => {\r\n gsTemp[k] = gs[k]\r\n })\r\n gs = gsTemp\r\n return gs\r\n },\r\n\r\n changeUsers: function() {\r\n // console.log('computed changeUsers')\r\n\r\n let vo = this\r\n\r\n //check\r\n if (size(vo.users) === 0) {\r\n return ''\r\n }\r\n\r\n //firstLoading\r\n vo.firstLoading = false\r\n\r\n return ''\r\n },\r\n\r\n spacePading: function() {\r\n let vo = this\r\n if (vo.panelWidth < 400) {\r\n return 0\r\n }\r\n else if (vo.panelWidth < 800) {\r\n return 10\r\n }\r\n return 20\r\n },\r\n\r\n usersGroupsHeight: function() {\r\n let vo = this\r\n\r\n //h\r\n let h = vo.panelHeight - vo.headHeight - 2 * vo.spacePading - vo.groupInforHeight\r\n h = Math.max(h, 0)\r\n\r\n return h\r\n },\r\n\r\n },\r\n methods: {\r\n\r\n resizePanel: function(msg) {\r\n // console.log('methods resizePanel', msg)\r\n\r\n let vo = this\r\n\r\n //panelWidth, panelHeight\r\n vo.panelWidth = msg.snew.offsetWidth\r\n vo.panelHeight = msg.snew.offsetHeight\r\n\r\n },\r\n\r\n resizeHead: function(msg) {\r\n // console.log('methods resizeHead', msg)\r\n\r\n let vo = this\r\n\r\n //headHeight\r\n vo.headHeight = msg.snew.offsetHeight\r\n\r\n },\r\n\r\n resizeGroupInfor: function(msg) {\r\n // console.log('methods resizeGroupInfor', msg)\r\n\r\n let vo = this\r\n\r\n //groupInforHeight\r\n vo.groupInforHeight = msg.snew.offsetHeight\r\n\r\n },\r\n\r\n getFrom: function(kus) {\r\n // console.log('methods getFrom', kus)\r\n let vo = this\r\n if (!isestr(kus)) {\r\n kus = vo.$t('empty')\r\n }\r\n return kus\r\n },\r\n\r\n getIsAdmin: function(u) {\r\n return get(u, 'isAdmin') === 'y'\r\n },\r\n\r\n getIsNotActive: function(u) {\r\n return get(u, 'isActive') === 'n'\r\n },\r\n\r\n clickAddUser: function() {\r\n // console.log('methods clickAddUser')\r\n\r\n let vo = this\r\n\r\n async function core() {\r\n let errTemp = null\r\n\r\n //show loading\r\n vo.$ui.updateLoading(true)\r\n\r\n //u\r\n let u = {\r\n id: genID(),\r\n name: vo.$t('newUser'),\r\n from: '',\r\n isAdmin: 'n',\r\n isActive: 'y',\r\n }\r\n\r\n //save\r\n await vo.$fapi.users.insert(u)\r\n .catch((err) => {\r\n errTemp = err\r\n })\r\n\r\n //check\r\n if (errTemp !== null) {\r\n vo.$alert(`${vo.$t('failedToAddUser')}: ${errTemp}`, { type: 'error' })\r\n }\r\n\r\n //un\r\n let un = null\r\n await waitFun(() => {\r\n un = find(vo.users, { id: u.id })\r\n return iseobj(un) //確認g.id已存在\r\n })\r\n // console.log('un', un)\r\n\r\n //showVeUser\r\n vo.$dg.showVeUser(un)\r\n .catch(() => {})\r\n\r\n //alert\r\n vo.$alert(vo.$t('successfulToAddUser'))\r\n\r\n }\r\n\r\n //core\r\n core()\r\n // .then((res) => {\r\n // console.log('then', res)\r\n // })\r\n .catch((err) => {\r\n console.log('catch', err)\r\n vo.$alert(vo.$t('anUnexpectedErrorOccurred'), { type: 'error' })\r\n })\r\n .finally(() => {\r\n\r\n //hide loading\r\n vo.$ui.updateLoading(false)\r\n\r\n })\r\n\r\n },\r\n\r\n clickRemoveUser: function(u) {\r\n // console.log('methods clickRemoveUser', u)\r\n\r\n let vo = this\r\n\r\n async function core() {\r\n let errTemp = null\r\n\r\n //showCheckYesNo\r\n let bExit = false\r\n let t_confirmToDeleteUser = vo.$t('confirmToDeleteUser')\r\n t_confirmToDeleteUser = t_confirmToDeleteUser.replace('{name}', u.name)\r\n await vo.$dg.showCheckYesNo(t_confirmToDeleteUser)\r\n .catch(() => {\r\n bExit = true\r\n })\r\n if (bExit) {\r\n return\r\n }\r\n\r\n //show loading\r\n vo.$ui.updateLoading(true)\r\n\r\n //save\r\n await vo.$fapi.users.del(u)\r\n .catch((err) => {\r\n errTemp = err\r\n })\r\n\r\n //check\r\n if (errTemp !== null) {\r\n vo.$alert(`${vo.$t('failedToDeleteUser')}: ${errTemp}`, { type: 'error' })\r\n return\r\n }\r\n\r\n //un\r\n let un = null\r\n await waitFun(() => {\r\n un = find(vo.users, (v) => {\r\n return v.id === u.id\r\n })\r\n return !iseobj(un) //確認g.id已不存在\r\n })\r\n // console.log('un', un)\r\n\r\n //alert\r\n vo.$alert(vo.$t('successfulToDeleteUser'))\r\n\r\n }\r\n\r\n //core\r\n core()\r\n // .then((res) => {\r\n // console.log('then', res)\r\n // })\r\n .catch((err) => {\r\n console.log('catch', err)\r\n vo.$alert(vo.$t('anUnexpectedErrorOccurred'), { type: 'error' })\r\n })\r\n .finally(() => {\r\n\r\n //hide loading\r\n vo.$ui.updateLoading(false)\r\n\r\n })\r\n\r\n },\r\n\r\n clickEditUser: function(u) {\r\n // console.log('clickEditGroup', u)\r\n\r\n let vo = this\r\n\r\n //check\r\n if (!vo.isOperatable) {\r\n vo.$alert(vo.$t('cannotShowUserDetailsInViewMode'), { type: 'error' })\r\n return\r\n }\r\n\r\n //showVeUser\r\n vo.$dg.showVeUser(u)\r\n .catch(() => {})\r\n\r\n },\r\n\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutContentUsers.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutContentUsers.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LayoutContentUsers.vue?vue&type=template&id=2c575372&scoped=true\"\nimport script from \"./LayoutContentUsers.vue?vue&type=script&lang=js\"\nexport * from \"./LayoutContentUsers.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2c575372\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div\r\n style=\"height:100%; width:100%;\"\r\n v-domresize\r\n @domresize=\"resize\"\r\n >\r\n\r\n <template v-if=\"syncState\">\r\n\r\n <WDrawer\r\n :style=\"`height:${panelHeight}px; width:100%;`\"\r\n v-model=\"drawer\"\r\n :drawerWidth.sync=\"drawerWidth\"\r\n :drawerWidthMin=\"drawerWidthMin\"\r\n :drawerWidthMax=\"drawerWidthMax\"\r\n :mode=\"'from-left'\"\r\n :dragDrawerWidth=\"true\"\r\n :autoSwitch=\"true\"\r\n :switchWidth=\"drawerWidth*2.3\"\r\n >\r\n\r\n <template v-slot:drawer=\"props\">\r\n <div :style=\"`height:${props.height}px; background:#fff; position:relative;`\">\r\n\r\n <WListVertical\r\n style=\"height:100%;\"\r\n :items=\"menus\"\r\n :itemActive=\"menuActive\"\r\n :item-text-color=\"'#222'\"\r\n :item-text-color-hover=\"'#444'\"\r\n :item-text-color-active=\"'#EF6C00'\"\r\n :item-icon-color=\"'#222'\"\r\n :item-icon-color-hover=\"'#444'\"\r\n :item-icon-color-active=\"'#EF6C00'\"\r\n :item-background-color=\"'#fff'\"\r\n :item-background-color-hover=\"'#f2f2f2'\"\r\n :item-background-color-active=\"'#FFF3E0'\"\r\n :paddingStyle=\"{v:15,h:15}\"\r\n @click=\"(menu)=>{menuKey=menu.key}\"\r\n ></WListVertical>\r\n\r\n <div\r\n :style=\"`position:absolute; top:1px; right:4px;`\"\r\n v-if=\"drawer\"\r\n >\r\n <WButtonCircle\r\n :paddingStyle=\"{v:3,h:3}\"\r\n :icon=\"'mdi-arrow-left'\"\r\n :iconSize=\"16\"\r\n :backgroundColor=\"'#fff'\"\r\n :backgroundColorHover=\"'#eee'\"\r\n :backgroundColorFocus=\"'#fff'\"\r\n :borderColor=\"'transparent'\"\r\n :borderColorHover=\"'#eee'\"\r\n :borderColorFocus=\"'#eee'\"\r\n :tooltip=\"$t('menuTreeHide')\"\r\n :shadow=\"true\"\r\n @click=\"drawer=false\"\r\n ></WButtonCircle>\r\n </div>\r\n\r\n </div>\r\n </template>\r\n\r\n <template v-slot:content=\"props\">\r\n <div :style=\"`height:${props.height}px; width:${props.width}px; position:relative;`\">\r\n\r\n <template>\r\n\r\n <LayoutContentUsers\r\n v-if=\"menuKey==='users'\"\r\n ></LayoutContentUsers>\r\n\r\n </template>\r\n\r\n <div\r\n :style=\"`position:absolute; top:1px; left:4px;`\"\r\n v-if=\"!drawer\"\r\n >\r\n <WButtonCircle\r\n :paddingStyle=\"{v:3,h:3}\"\r\n :icon=\"'mdi-arrow-right'\"\r\n :iconSize=\"16\"\r\n :backgroundColor=\"'#fff'\"\r\n :backgroundColorHover=\"'#eee'\"\r\n :backgroundColorFocus=\"'#fff'\"\r\n :borderColor=\"'transparent'\"\r\n :borderColorHover=\"'#eee'\"\r\n :borderColorFocus=\"'#eee'\"\r\n :tooltip=\"$t('menuTreeShow')\"\r\n :shadow=\"true\"\r\n @click=\"drawer=true\"\r\n ></WButtonCircle>\r\n </div>\r\n\r\n </div>\r\n </template>\r\n\r\n </WDrawer>\r\n\r\n </template>\r\n\r\n <template v-else>\r\n <div\r\n style=\"padding:20px; font-size:0.9rem;\"\r\n >\r\n {{$t('waitingData')}}\r\n </div>\r\n </template>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mdiGamepadCircle, mdiStackOverflow, mdiAccountGroupOutline } from '@mdi/js/mdi.js'\r\nimport get from 'lodash-es/get.js'\r\nimport find from 'lodash-es/find.js'\r\nimport WDrawer from 'w-component-vue/src/components/WDrawer.vue'\r\nimport WButtonCircle from 'w-component-vue/src/components/WButtonCircle.vue'\r\nimport WListVertical from 'w-component-vue/src/components/WListVertical.vue'\r\nimport LayoutContentUsers from './LayoutContentUsers.vue'\r\n\r\n\r\nexport default {\r\n components: {\r\n WDrawer,\r\n WButtonCircle,\r\n WListVertical,\r\n LayoutContentUsers,\r\n },\r\n props: {\r\n },\r\n data: function() {\r\n return {\r\n\r\n menuKey: 'targets',\r\n\r\n panelWidth: 0,\r\n panelHeight: 0,\r\n\r\n drawer: true,\r\n drawerWidth: 180,\r\n drawerWidthMin: 150,\r\n drawerWidthMax: 300,\r\n\r\n }\r\n },\r\n computed: {\r\n\r\n syncState: function() {\r\n return get(this, '$store.state.syncState')\r\n },\r\n\r\n menus: function() {\r\n let vo = this\r\n let ms = [\r\n {\r\n key: 'users',\r\n text: 'bbb',\r\n icon: mdiAccountGroupOutline,\r\n },\r\n ]\r\n return ms\r\n },\r\n\r\n menuActive: function() {\r\n let vo = this\r\n let r = find(vo.menus, { key: vo.menuKey })\r\n // console.log(r)\r\n return r\r\n },\r\n\r\n },\r\n methods: {\r\n\r\n resize: function(msg) {\r\n // console.log('methods resize', msg)\r\n\r\n let vo = this\r\n\r\n //save\r\n vo.panelWidth = msg.snew.clientWidth\r\n vo.panelHeight = msg.snew.clientHeight\r\n // console.log('vo.panelHeight', vo.panelHeight)\r\n\r\n },\r\n\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutContent.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutContent.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LayoutContent.vue?vue&type=template&id=9a325736&scoped=true\"\nimport script from \"./LayoutContent.vue?vue&type=script&lang=js\"\nexport * from \"./LayoutContent.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9a325736\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div style=\"height:100vh; background:#f5f5f5;\">\r\n\r\n <!-- menu top, 因窄版導致名稱換行故須使用overflow-y:hidden -->\r\n <div :style=\"`height:${heightToolbar}px; overflow-y:hidden; padding:0px 10px; background:#fff; border-bottom:1px solid #ccc; display:flex; align-items:center;`\">\r\n\r\n <WButtonCircle\r\n :icon=\"'mdi-menu'\"\r\n :tooltip=\"'左側選單'\"\r\n :shadow=\"false\"\r\n @click=\"drawer=!drawer\"\r\n v-if=\"false\"\r\n ></WButtonCircle>\r\n\r\n <div style=\"padding-left:5px; white-space:nowrap\">\r\n <div style=\"display:flex; align-items:center;\">\r\n\r\n <div style=\"padding-right:10px; display:flex; align-items:center;\" v-if=\"webLogo\">\r\n <img style=\"width:36px; height:36px;\" :src=\"webLogo\" />\r\n </div>\r\n\r\n <div>\r\n <div style=\"font-size:1.2rem; color:#000;\">{{webName}}</div>\r\n <div style=\"font-size:0.8rem; color:#666;\">{{$t('webDescription')}}</div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <div style=\"width:100%;\"></div>\r\n\r\n <div style=\"padding-right:10px; white-space:nowrap\">\r\n <WTextSelect\r\n style=\"width:100px;\"\r\n :items=\"tgLangs\"\r\n v-model=\"tgLangSelect\"\r\n @input=\"changeLang\"\r\n ></WTextSelect>\r\n </div>\r\n\r\n </div>\r\n\r\n <div :style=\"`height:calc( 100% - ${heightToolbar}px );`\">\r\n <LayoutContent\r\n ></LayoutContent>\r\n </div>\r\n\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mdiMenu } from '@mdi/js/mdi.js'\r\nimport get from 'lodash-es/get.js'\r\n// import cloneDeep from 'lodash-es/cloneDeep.js'\r\nimport isestr from 'wsemi/src/isestr.mjs'\r\nimport WTextSelect from 'w-component-vue/src/components/WTextSelect.vue'\r\nimport WButtonCircle from 'w-component-vue/src/components/WButtonCircle.vue'\r\nimport LayoutContent from './LayoutContent.vue'\r\n\r\n\r\nexport default {\r\n components: {\r\n WTextSelect,\r\n WButtonCircle,\r\n LayoutContent,\r\n },\r\n props: {\r\n },\r\n data: function() {\r\n return {\r\n\r\n mdiMenu,\r\n // drawer: null, //null false\r\n // menuKey: 'blocks',\r\n userName: 'tester',\r\n\r\n drawer: true, //null,\r\n\r\n tgLangs: [\r\n {\r\n id: 'cht',\r\n text: '中文',\r\n },\r\n {\r\n id: 'eng',\r\n text: 'English',\r\n },\r\n ],\r\n tgLangSelect: {\r\n id: 'cht',\r\n text: '中文',\r\n },\r\n\r\n }\r\n },\r\n beforeMount: function() {\r\n // console.log('beforeMount')\r\n\r\n let vo = this\r\n\r\n //setLang\r\n vo.$ui.setLang(vo.tgLangSelect.id)\r\n\r\n },\r\n computed: {\r\n\r\n viewState: function() {\r\n return get(this, `$store.state.viewState`, '')\r\n },\r\n\r\n heightToolbar: function() {\r\n //console.log('computed heightToolbar')\r\n\r\n let vo = this\r\n\r\n return get(vo, `$store.state.heightToolbar`, 0)\r\n },\r\n\r\n webName: {\r\n get() {\r\n let vo = this\r\n let c = vo.$t('webName')\r\n // console.log('get webName1', c)\r\n if (!isestr(c)) {\r\n c = vo.$t('waitingData')\r\n }\r\n // console.log('get webName2', c)\r\n document.title = c //更換網頁title\r\n return c\r\n },\r\n // set(value) {\r\n // return value\r\n // },\r\n },\r\n\r\n webLogo: function() {\r\n //console.log('computed webLogo')\r\n\r\n let vo = this\r\n\r\n return get(vo, `$store.state.webInfor.webLogo`, '')\r\n },\r\n\r\n },\r\n methods: {\r\n\r\n changeLang: function(msg) {\r\n // console.log('methods changeLang', msg)\r\n let vo = this\r\n let lang = msg.id\r\n vo.$ui.setLang(lang)\r\n },\r\n\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Layout.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Layout.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Layout.vue?vue&type=template&id=f2151b4e&scoped=true\"\nimport script from \"./Layout.vue?vue&type=script&lang=js\"\nexport * from \"./Layout.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f2151b4e\",\n null\n \n)\n\nexport default component.exports","<template>\n <div\n v-domresize\n @domresize=\"resize\"\n >\n\n <!-- <LayoutState :style=\"`opacity:${ready?0:1};`\" v-if=\"!ready\"></LayoutState> -->\n <PageLogin v-if=\"!ready\"></PageLogin>\n\n <transition enter-active-class=\"fade-enter-active\" leave-active-class=\"fade-leave-active\">\n <Layout v-if=\"ready\"></Layout>\n </transition>\n\n <LoadingWinBar></LoadingWinBar>\n <CheckYesNo></CheckYesNo>\n <CheckYes></CheckYes>\n\n <!-- <VeUser></VeUser> -->\n\n </div>\n</template>\n\n<script>\nimport get from 'lodash-es/get.js'\nimport cloneDeep from 'lodash-es/cloneDeep.js'\nimport isestr from 'wsemi/src/isestr.mjs'\nimport isDev from 'wsemi/src/isDev.mjs'\nimport wui from 'w-ui-loginout/src/WUiLoginout.mjs'\nimport LoadingWinBar from './components/Common/LoadingWinBar.vue'\nimport CheckYesNo from './components/Common/CheckYesNo.vue'\nimport CheckYes from './components/Common/CheckYes.vue'\n// import LayoutState from './components/LayoutState.vue'\nimport PageLogin from './components/PageLogin.vue'\nimport Layout from './components/Layout.vue'\n// import VeUser from './components/VeUser.vue'\n\n\nexport default {\n components: {\n LoadingWinBar,\n CheckYesNo,\n CheckYes,\n // LayoutState,\n PageLogin,\n Layout,\n // VeUser,\n },\n data: function() {\n return {\n\n }\n },\n beforeMount: function() {\n // console.log('methods beforeMount')\n\n let vo = this\n\n //setVo, 更換ui內vo, 才能使用廣播技術, 更換語系才能用廣播通知全部組件forceUpdate\n vo.$ui.setVo(vo)\n\n },\n computed: {\n\n ready: function() {\n // let connState = get(this, `$store.state.connState`)\n // return connState === '已連線'\n return false\n },\n\n },\n methods: {\n\n resize: function(msg) {\n // console.log('methods resize', msg)\n\n let vo = this\n\n //syncHeight\n vo.$ui.syncHeight()\n\n },\n\n },\n}\n</script>\n\n<style>\nhtml,\nbody {\n font-family: '微軟正黑體', 'Microsoft JhengHei', 'MicrosoftJhengHeiRegular', 'Avenir', Helvetica, Arial, sans-serif;\n overflow-y: hidden;\n}\n\ndiv,\np,\nspan,\na,\npre,\ninput,\ntextarea,\nbutton {\n font-family: inherit;\n}\n\n.fade-enter-active {\n animation: go 1s;\n}\n\n.fade-leave-active {\n animation: back 1s;\n}\n\n@keyframes go {\n from { opacity: 0; }\n to {opacity: 1;}\n}\n\n@keyframes back {\n from { opacity: 1; }\n to { opacity: 0; }\n}\n\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=44c49b9c\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=44c49b9c&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export const UpdateWebInfor = 'UpdateWebInfor'\r\nexport const UpdateLang = 'UpdateLang'\r\nexport const UpdateKpText = 'UpdateKpText'\r\nexport const UpdateConnState = 'UpdateConnState'\r\nexport const UpdateSyncState = 'UpdateSyncState'\r\nexport const UpdateLoading = 'UpdateLoading'\r\nexport const UpdateViewState = 'UpdateViewState'\r\nexport const UpdateTableData = 'UpdateTableData'\r\nexport const UpdateData = 'UpdateData'\r\nexport const UpdateHeightApp = 'UpdateHeightApp'\r\nexport const UpdateHeightAppEff = 'UpdateHeightAppEff'\r\nexport const UpdateHeightToolbar = 'UpdateHeightToolbar'\r\nexport const UpdateMenu = 'UpdateMenu'\r\nexport const UpdateUserToken = 'UpdateUserToken'\r\nexport const UpdateUserSelf = 'UpdateUserSelf'\r\n","import map from 'lodash-es/map.js'\r\nimport keys from 'lodash-es/keys.js'\r\nimport genID from 'wsemi/src/genID.mjs'\r\nimport dtmapping from 'wsemi/src/dtmapping.mjs'\r\nimport dtpick from 'wsemi/src/dtpick.mjs'\r\nimport nowms2str from 'wsemi/src/nowms2str.mjs'\r\nimport now2strp from 'wsemi/src/now2strp.mjs'\r\nimport ot from 'dayjs'\r\n\r\n\r\nlet keyTable = 'tokens'\r\nlet tableNameCht = '金鑰'\r\nlet tableNameEng = 'Tokens'\r\n\r\n\r\nlet settings = {\r\n id: {\r\n pk: true,\r\n name: '主鍵',\r\n type: 'STRING',\r\n },\r\n token: {\r\n name: '金鑰',\r\n type: 'STRING',\r\n },\r\n userId: {\r\n name: '使用者主鍵',\r\n type: 'STRING',\r\n },\r\n timeCreate: {\r\n name: '創建時間',\r\n type: 'STRING',\r\n },\r\n timeEnd: {\r\n name: '到期時間',\r\n type: 'STRING',\r\n },\r\n timeUpdate: {\r\n name: '更新時間',\r\n type: 'STRING',\r\n },\r\n}\r\n\r\nlet funNew = (ndata = {}) => {\r\n let o = dtmapping(ndata, keys(settings))\r\n o.id = `${now2strp()}-${genID()}`\r\n o.token = `${now2strp()}-${genID()}`\r\n o.timeCreate = nowms2str()\r\n o.timeEnd = ot().add(30, 'minute').format()\r\n o.timeUpdate = o.timeCreate\r\n return o\r\n}\r\n\r\nlet funTest = () => {\r\n let rs = []\r\n return rs\r\n}\r\n\r\nlet tab = {\r\n keyTable,\r\n tableNameCht,\r\n tableNameEng,\r\n settings,\r\n funNew,\r\n funTest,\r\n}\r\n\r\n\r\nexport default tab\r\n\r\n","import map from 'lodash-es/map.js'\r\nimport keys from 'lodash-es/keys.js'\r\nimport genID from 'wsemi/src/genID.mjs'\r\nimport dtmapping from 'wsemi/src/dtmapping.mjs'\r\nimport dtpick from 'wsemi/src/dtpick.mjs'\r\nimport nowms2str from 'wsemi/src/nowms2str.mjs'\r\nimport now2strp from 'wsemi/src/now2strp.mjs'\r\n\r\n\r\nlet keyTable = 'users'\r\nlet tableNameCht = '使用者'\r\nlet tableNameEng = 'Users'\r\n\r\n\r\nlet settings = {\r\n id: {\r\n pk: true,\r\n name: '主鍵',\r\n type: 'STRING',\r\n },\r\n order: {\r\n name: '順序',\r\n type: 'INTEGER',\r\n },\r\n account: {\r\n name: '帳號',\r\n type: 'STRING',\r\n },\r\n password: {\r\n name: '密碼', //須儲存加鹽雜湊處理後密碼\r\n type: 'STRING',\r\n },\r\n name: {\r\n name: '姓名',\r\n type: 'STRING',\r\n },\r\n email: {\r\n name: '電子郵件',\r\n type: 'STRING',\r\n },\r\n description: {\r\n name: '描述',\r\n type: 'TEXT',\r\n },\r\n from: {\r\n name: '來源',\r\n type: 'STRING',\r\n },\r\n ruleGroupsIds: {\r\n name: '所屬權限群組主鍵', //多主鍵用分號區隔\r\n type: 'STRING',\r\n },\r\n redir: {\r\n name: '登入後轉址',\r\n type: 'STRING',\r\n },\r\n isAdmin: {\r\n name: '是否為系統管理員',\r\n type: 'STRING',\r\n },\r\n userId: {\r\n name: '創建使用者主鍵',\r\n type: 'STRING',\r\n },\r\n timeCreate: {\r\n name: '創建時間',\r\n type: 'STRING',\r\n },\r\n userIdUpdate: {\r\n name: '最新變更使用者主鍵',\r\n type: 'STRING',\r\n },\r\n timeUpdate: {\r\n name: '更新時間',\r\n type: 'STRING',\r\n },\r\n isActive: {\r\n name: '是否有效',\r\n type: 'STRING',\r\n },\r\n}\r\n\r\nlet funNew = (ndata = {}) => {\r\n let o = dtmapping(ndata, keys(settings))\r\n o.id = `${now2strp()}-${genID()}`\r\n o.isAdmin = 'n'\r\n o.userIdUpdate = o.userId\r\n o.timeCreate = nowms2str()\r\n o.timeUpdate = o.timeCreate\r\n o.isActive = 'y'\r\n return o\r\n}\r\n\r\nlet funTest = () => {\r\n let rs = []\r\n return rs\r\n}\r\n\r\nlet tab = {\r\n keyTable,\r\n tableNameCht,\r\n tableNameEng,\r\n settings,\r\n funNew,\r\n funTest,\r\n}\r\n\r\n\r\nexport default tab\r\n\r\n","import tokens from './tables/tokens.mjs'\nimport users from './tables/users.mjs'\nimport build from 'w-data-collector/src/build.mjs'\n\n\nlet cs = {\n tokens,\n users,\n}\n\n//ds\nlet ds = {}\nfor (let k in cs) {\n ds[k] = build(cs[k], { useCreateStorage: false })\n}\n\n\nexport default ds\n","import each from 'lodash-es/each.js'\r\nimport set from 'lodash-es/set.js'\r\nimport * as types from './types.mjs'\r\nimport ds from '../schema/index.mjs'\r\n\r\n\r\n//state, 全域狀態\r\nlet state = {\r\n\r\n hostname: `${window.location.origin}`,\r\n webInfor: {},\r\n connState: '連線中...',\r\n syncState: false,\r\n viewState: 'lists',\r\n loading: false,\r\n settings: {\r\n leftDrawerWidth: 200,\r\n },\r\n\r\n heightApp: 0,\r\n heightAppEff: 0,\r\n heightToolbar: 60,\r\n\r\n menu: {}, //初始值需為物件, 否則LayoutContent會取menu.key出錯\r\n\r\n userToken: '',\r\n user: {\r\n id: '', //id-for-admin\r\n name: '', //測試者\r\n email: '', //admin@example.com\r\n isAdmin: 'n',\r\n },\r\n\r\n lang: 'cht',\r\n keyLangs: {\r\n\r\n systemMessage: {\r\n eng: 'System message',\r\n cht: '系統確認訊息',\r\n },\r\n ok: {\r\n eng: 'OK',\r\n cht: '確認',\r\n },\r\n no: {\r\n eng: 'No',\r\n cht: '取消',\r\n },\r\n yes: {\r\n eng: 'Yes',\r\n cht: '確定',\r\n },\r\n\r\n empty: {\r\n eng: 'Empty',\r\n cht: '無',\r\n },\r\n waitingData: {\r\n eng: 'Waiting data...',\r\n cht: '等待數據中...',\r\n },\r\n\r\n isEditabled: {\r\n eng: 'Editable',\r\n cht: '是否編輯',\r\n },\r\n saveChanges: {\r\n eng: `Save changes`,\r\n cht: `儲存變更`,\r\n },\r\n from: {\r\n eng: `From`,\r\n cht: `來源`,\r\n },\r\n save: {\r\n eng: `Save`,\r\n cht: `儲存`,\r\n },\r\n close: {\r\n eng: `Close`,\r\n cht: `關閉`,\r\n },\r\n cancel: {\r\n eng: `Cancel`,\r\n cht: `取消`,\r\n },\r\n processing: {\r\n eng: `Processing...`,\r\n cht: `處理中請稍後...`,\r\n },\r\n anUnexpectedErrorOccurred: {\r\n eng: `An unexpected error occurred, please contact the administrator`,\r\n cht: `發生非預期錯誤,請洽管理員`,\r\n },\r\n unknow: {\r\n eng: `Unknow`,\r\n cht: `未知`,\r\n },\r\n\r\n account: {\r\n eng: `Account`,\r\n cht: `帳號`,\r\n },\r\n password: {\r\n eng: `Password`,\r\n cht: `密碼`,\r\n },\r\n username: {\r\n eng: `Username`,\r\n cht: `使用者姓名`,\r\n },\r\n email: {\r\n eng: `Email`,\r\n cht: `電子郵件`,\r\n },\r\n name: {\r\n eng: `Name`,\r\n cht: `名稱`,\r\n },\r\n description: {\r\n eng: `Description`,\r\n cht: `說明`,\r\n },\r\n noDescription: {\r\n eng: `No description`,\r\n cht: `無說明`,\r\n },\r\n\r\n login: {\r\n eng: `Login`,\r\n cht: `登入`,\r\n },\r\n logout: {\r\n eng: `Logout`,\r\n cht: `登出`,\r\n },\r\n\r\n failedLoginForNoWebKey: {\r\n eng: `Can not get the web key`,\r\n cht: `無有效站台唯一識別資訊`,\r\n },\r\n failedLoginForNoToken: {\r\n eng: `Can not get the token`,\r\n cht: `無有效金鑰`,\r\n },\r\n failedLoginForNoRedir: {\r\n eng: `Can not get the url for redirection`,\r\n cht: `無有效轉址`,\r\n },\r\n failedLoginForCatch: {\r\n eng: `User account or password is incorrect`,\r\n cht: `使用者帳密錯誤無法登入`,\r\n },\r\n\r\n userList: {\r\n eng: `User list`,\r\n cht: `使用者分類清單`,\r\n },\r\n addUser: {\r\n eng: `Add user`,\r\n cht: `新增使用者`,\r\n },\r\n\r\n editUser: {\r\n eng: `Edit user`,\r\n cht: `編修使用者`,\r\n },\r\n isAManager: {\r\n eng: `Is a manager`,\r\n cht: `是否為管理者`,\r\n },\r\n isActive: {\r\n eng: 'Is active',\r\n cht: '是否有效',\r\n },\r\n remark: {\r\n eng: `Remark`,\r\n cht: `備註`,\r\n },\r\n dayCreate: {\r\n eng: 'Create day',\r\n cht: '創建日期',\r\n },\r\n newUser: {\r\n eng: `New user`,\r\n cht: `新使用者`,\r\n },\r\n failedToAddUser: {\r\n eng: `Failed to add the user`,\r\n cht: `新增使用者失敗`,\r\n },\r\n successfulToAddUser: {\r\n eng: `Add the user successfully`,\r\n cht: `新增使用者成功`,\r\n },\r\n confirmToDeleteUser: {\r\n eng: `Do you want to delete the user[{name}]?`,\r\n cht: `確認是否刪除使用者`,\r\n },\r\n failedToDeleteUser: {\r\n eng: `Failed to delete the user`,\r\n cht: `刪除使用者失敗`,\r\n },\r\n successfulToDeleteUser: {\r\n eng: `Delete the user successfully`,\r\n cht: `刪除使用者成功`,\r\n },\r\n cannotShowUserDetailsInViewMode: {\r\n eng: `Can not show the user details in the view mode`,\r\n cht: `非編輯模式無法查閱使用者詳細資訊`,\r\n },\r\n\r\n allDefaults: {\r\n eng: `All defaults`,\r\n cht: `全部項目預設值`,\r\n },\r\n show: {\r\n eng: `Show`,\r\n cht: `顯示`,\r\n },\r\n active: {\r\n eng: `Active`,\r\n cht: `啟用`,\r\n },\r\n showChildren: {\r\n eng: `Show children`,\r\n cht: `所屬顯示`,\r\n },\r\n hideChildren: {\r\n eng: `Hide children`,\r\n cht: `所屬不顯示`,\r\n },\r\n activateChildren: {\r\n eng: `Activate children`,\r\n cht: `所屬啟用`,\r\n },\r\n deactivateChildren: {\r\n eng: `Deactivate children`,\r\n cht: `所屬不啟用`,\r\n },\r\n isUsernameEmpty: {\r\n eng: `Username is empty`,\r\n cht: `使用者名稱不得為空`,\r\n },\r\n failedToSaveUser: {\r\n eng: `Failed to save the user`,\r\n cht: `變更使用者失敗`,\r\n },\r\n successfulToSaveUser: {\r\n eng: `Save the user successfully`,\r\n cht: `變更使用者成功`,\r\n },\r\n\r\n },\r\n kpText: {},\r\n\r\n}\r\n\r\n//添加各資料表\r\neach(ds, (v, k) => {\r\n state[k] = null //初始化null\r\n})\r\n\r\n//儲存至state\r\nexport { state }\r\n\r\n//mutations, 同步執行\r\nexport let mutations = {\r\n\r\n [types.UpdateWebInfor] (state, webInfor) {\r\n state.webInfor = webInfor\r\n },\r\n\r\n [types.UpdateLang] (state, lang) {\r\n state.lang = lang\r\n },\r\n\r\n [types.UpdateKpText] (state, kpText) {\r\n state.kpText = kpText\r\n },\r\n\r\n [types.UpdateConnState] (state, connState) {\r\n state.connState = connState\r\n },\r\n\r\n [types.UpdateSyncState] (state, syncState) {\r\n state.syncState = syncState\r\n },\r\n\r\n [types.UpdateLoading] (state, loading) {\r\n state.loading = loading\r\n },\r\n\r\n [types.UpdateViewState] (state, viewState) {\r\n state.viewState = viewState\r\n },\r\n\r\n [types.UpdateTableData] (state, msg) {\r\n state[msg.tableName] = msg.data\r\n },\r\n\r\n [types.UpdateData] (state, msg) {\r\n //msg.path內為存取路徑, 需使用set處理\r\n // console.log('UpdateData msg', msg)\r\n set(state, msg.path, msg.data)\r\n },\r\n\r\n [types.UpdateHeightApp] (state, heightApp) {\r\n state.heightApp = heightApp\r\n },\r\n\r\n [types.UpdateHeightAppEff] (state, heightAppEff) {\r\n state.heightAppEff = heightAppEff\r\n },\r\n\r\n [types.UpdateHeightToolbar] (state, heightToolbar) {\r\n state.heightToolbar = heightToolbar\r\n },\r\n\r\n [types.UpdateMenu] (state, menu) {\r\n state.menu = menu\r\n },\r\n\r\n [types.UpdateUserToken] (state, userToken) {\r\n state.userToken = userToken\r\n },\r\n\r\n [types.UpdateUserSelf] (state, userSelf) {\r\n state.userSelf = userSelf\r\n },\r\n\r\n}\r\n\r\n","import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\nimport { state, mutations } from './mutations.mjs'\r\nimport * as getters from './getters.mjs'\r\nimport * as actions from './actions.mjs'\r\nimport * as types from './types.mjs'\r\n\r\n\r\n//use\r\nVue.use(Vuex)\r\n\r\nlet st = new Vuex.Store({\r\n state,\r\n mutations,\r\n getters,\r\n actions,\r\n strict: true, //嚴格模式禁止修改state\r\n})\r\n\r\n//save to $store\r\nst.types = types\r\nVue.prototype.$store = st\r\n// console.log('$store', st)\r\n\r\nexport default st\r\n","import Vue from 'vue'\r\nimport min from 'lodash-es/min.js'\nimport size from 'lodash-es/size.js'\nimport take from 'lodash-es/take.js'\nimport isEqual from 'lodash-es/isEqual.js'\nimport uniq from 'lodash-es/uniq.js'\nimport set from 'lodash-es/set.js'\nimport get from 'lodash-es/get.js'\nimport each from 'lodash-es/each.js'\nimport map from 'lodash-es/map.js'\nimport filter from 'lodash-es/filter.js'\nimport last from 'lodash-es/last.js'\nimport split from 'lodash-es/split.js'\nimport join from 'lodash-es/join.js'\nimport drop from 'lodash-es/drop.js'\nimport dropRight from 'lodash-es/dropRight.js'\nimport groupBy from 'lodash-es/groupBy.js'\nimport sortBy from 'lodash-es/sortBy.js'\nimport cloneDeep from 'lodash-es/cloneDeep.js'\nimport cint from 'wsemi/src/cint.mjs'\r\nimport delay from 'wsemi/src/delay.mjs'\r\nimport isarr from 'wsemi/src/isarr.mjs'\r\nimport isestr from 'wsemi/src/isestr.mjs'\r\nimport isfun from 'wsemi/src/isfun.mjs'\r\nimport iseobj from 'wsemi/src/iseobj.mjs'\r\nimport isearr from 'wsemi/src/isearr.mjs'\r\nimport isEle from 'wsemi/src/isEle.mjs'\r\nimport strleft from 'wsemi/src/strleft.mjs'\r\nimport strdelleft from 'wsemi/src/strdelleft.mjs'\r\nimport sep from 'wsemi/src/sep.mjs'\r\nimport aes2str from 'wsemi/src/aes2str.mjs'\r\nimport str2aes from 'wsemi/src/str2aes.mjs'\r\nimport haskey from 'wsemi/src/haskey.mjs'\r\nimport genPm from 'wsemi/src/genPm.mjs'\r\nimport pmSeries from 'wsemi/src/pmSeries.mjs'\r\nimport waitFun from 'wsemi/src/waitFun.mjs'\r\nimport browserView from 'wsemi/src/browserView.mjs'\r\nimport arrHas from 'wsemi/src/arrHas.mjs'\r\nimport arrSort from 'wsemi/src/arrSort.mjs'\r\nimport arrInsert from 'wsemi/src/arrInsert.mjs'\r\nimport replace from 'wsemi/src/replace.mjs'\r\nimport timemsTZ2past from 'wsemi/src/timemsTZ2past.mjs'\r\nimport convertToTree from 'wsemi/src/convertToTree.mjs'\r\n// import WUiDwload from 'w-ui-dwload/src/WUiDwload.mjs'\r\n\r\n\r\nlet vo = Vue.prototype\r\n\r\n\r\nfunction setVo(vObj) {\r\n vo = vObj\r\n}\r\n\r\n\r\nfunction updateConnState(connState) {\r\n vo.$store.commit(vo.$store.types.UpdateConnState, connState)\r\n}\r\n\r\n\r\nfunction updateLoading(loading) {\r\n vo.$store.commit(vo.$store.types.UpdateLoading, loading)\r\n}\r\n\r\n\r\nfunction updateViewState(viewState) {\r\n vo.$store.commit(vo.$store.types.UpdateViewState, viewState)\r\n}\r\n\r\n\r\nfunction updateUserToken(userToken) {\r\n vo.$store.commit(vo.$store.types.UpdateUserToken, userToken)\r\n}\r\n\r\n\r\nfunction updateUserSelf(userSelf) {\r\n vo.$store.commit(vo.$store.types.UpdateUserSelf, userSelf)\r\n}\r\n\r\n\r\nfunction forceUpdate() {\r\n // console.log('call forceUpdate')\r\n\r\n function broadcast(chs) {\r\n each(chs, (v) => {\r\n // console.log(v.$el)\r\n v.$forceUpdate()\r\n if (v.$children) {\r\n broadcast(v.$children)\r\n }\r\n })\r\n }\r\n\r\n //broadcast, 注意此處需使用更換ui內vo為mounted後的vo, 也就是含元素, 才能使用廣播技術\r\n broadcast(vo.$children)\r\n\r\n}\r\n\r\n\r\nfunction setLang(lang = null) {\r\n // console.log('call setLang')\r\n\r\n //check lang, 若有輸入才commit\r\n if (isestr(lang)) {\r\n vo.$store.commit(vo.$store.types.UpdateLang, lang)\r\n }\r\n\r\n //getKpLang, 切換lang得調用getKpLang重算kpText\r\n getKpLang()\r\n\r\n //forceUpdate\r\n forceUpdate()\r\n\r\n}\r\n\r\n\r\nfunction getKpLang() {\r\n // console.log('call getKpLang')\r\n\r\n //merge keyLangs\r\n let keyLangs = get(vo, '$store.state.keyLangs')\r\n let webName = get(vo, '$store.state.webInfor.webName')\r\n let webDescription = get(vo, '$store.state.webInfor.webDescription')\r\n let kls = {\r\n ...keyLangs,\r\n webName: {\r\n ...webName,\r\n },\r\n webDescription: {\r\n ...webDescription,\r\n },\r\n }\r\n\r\n //lang\r\n let lang = get(vo, '$store.state.lang')\r\n\r\n //kpText\r\n let kpText = {}\r\n each(kls, (v, k) => {\r\n kpText[k] = v[lang]\r\n })\r\n\r\n //commit\r\n vo.$store.commit(vo.$store.types.UpdateKpText, kpText)\r\n\r\n return kpText\r\n}\r\n\r\n\r\nfunction getKpText(key) {\r\n // console.log('call getKpText')\r\n let kpText = get(vo, '$store.state.kpText')\r\n return get(kpText, key, '')\r\n}\r\n\r\n\r\nfunction gv(o, k, cv = null) {\r\n let r = get(o, k, '')\r\n if (!isestr(r)) {\r\n let def = getKpText('empty')\r\n return def\r\n }\r\n if (isfun(cv)) {\r\n r = cv(r)\r\n }\r\n return r\r\n}\r\n\r\n\r\nfunction syncHeight() {\r\n\r\n //heightToolbar\r\n let heightToolbar = get(vo, '$store.state.heightToolbar')\r\n\r\n //heightAppEff\r\n let heightAppEff = window.innerHeight - heightToolbar\r\n\r\n //commit\r\n // vo.$store.commit(vo.$store.types.UpdateHeightToolbar, heightToolbar)\r\n vo.$store.commit(vo.$store.types.UpdateHeightApp, window.innerHeight)\r\n vo.$store.commit(vo.$store.types.UpdateHeightAppEff, heightAppEff)\r\n\r\n return ''\r\n}\r\n\r\n\r\nasync function waitData(t = 0) {\r\n\r\n //delay\r\n if (t > 0) {\r\n await delay(t)\r\n }\r\n\r\n //waitFun, 等待dsrl模組掛載\r\n await waitFun(() => {\r\n return iseobj(get(vo, '$dsrl'))\r\n })\r\n\r\n //等待前端第一次同步完畢數據\r\n await waitFun(() => {\r\n return get(vo, '$store.state.syncState')\r\n })\r\n\r\n}\r\n\r\n\r\nlet mUI = {\r\n\r\n setVo,\r\n\r\n updateConnState,\r\n updateLoading,\r\n updateViewState,\r\n updateUserToken,\r\n updateUserSelf,\r\n forceUpdate,\r\n\r\n setLang,\r\n getKpLang,\r\n getKpText,\r\n\r\n gv,\r\n syncHeight,\r\n\r\n waitData,\r\n\r\n}\r\n\r\n\r\nexport default mUI\r\n","import get from 'lodash-es/get.js'\nimport find from 'lodash-es/find.js'\nimport isestr from 'wsemi/src/isestr.mjs'\r\n\r\n\r\nfunction mDataSelectorSchema(ds, opt = {}) {\r\n\r\n function getTableInforBy(keyFind, valueFind, keyPick) {\r\n let r = find(ds, { [keyFind]: valueFind })\r\n if (!r) {\r\n r = ''\r\n }\r\n if (isestr(keyPick)) {\r\n r = get(r, keyPick, '')\r\n }\r\n return r\r\n }\r\n\r\n function getTableChtByKey(valueFind) {\r\n return getTableInforBy('keyTable', valueFind, 'tableNameCht')\r\n }\r\n\r\n return {\r\n getTableInforBy,\r\n getTableChtByKey,\r\n }\r\n}\r\n\r\n\r\nexport default mDataSelectorSchema\r\n","//前後端共用函數區\r\nimport JSON5 from 'json5'\r\nimport get from 'lodash-es/get.js'\r\nimport each from 'lodash-es/each.js'\r\nimport map from 'lodash-es/map.js'\r\nimport find from 'lodash-es/find.js'\r\nimport join from 'lodash-es/join.js'\r\nimport cloneDeep from 'lodash-es/cloneDeep.js'\r\nimport takeRight from 'lodash-es/takeRight.js'\r\nimport dropRight from 'lodash-es/dropRight.js'\r\nimport sortBy from 'lodash-es/sortBy.js'\r\nimport sep from 'wsemi/src/sep.mjs'\r\nimport iseobj from 'wsemi/src/iseobj.mjs'\r\nimport haskey from 'wsemi/src/haskey.mjs'\r\nimport composeToTree from 'wsemi/src/composeToTree.mjs'\r\n\r\n\r\n//dlm\r\nlet dlm = '/'\r\n\r\n\r\nfunction getAllBlocks(targets) {\r\n\r\n //rs\r\n let rs = map(targets, (v) => {\r\n\r\n //text, parentId\r\n let s = sep(v.id, dlm) //[tag:dlm]\r\n let text = get(takeRight(s), 0) //取最後節點\r\n s = dropRight(s, 1)\r\n let parentId = join(s, dlm) //[tag:dlm] 取父節點\r\n\r\n return {\r\n ...v,\r\n idTemp: v.id,\r\n parentId,\r\n text,\r\n }\r\n })\r\n // console.log('rs', rs)\r\n\r\n //sortBy\r\n rs = sortBy(rs, 'order')\r\n // console.log('rs sortBy', rs)\r\n\r\n return rs\r\n}\r\n\r\n\r\nfunction getTreeBlocks(targets) {\r\n\r\n //getAllBlocks\r\n let blocks = getAllBlocks(targets)\r\n // console.log('blocks', blocks)\r\n\r\n //opt\r\n let opt = {\r\n bindKey: 'id',\r\n bindParent: 'parentId',\r\n bindChildren: 'children',\r\n saveExtProps: true,\r\n }\r\n\r\n //composeToTree\r\n let r\r\n try {\r\n r = composeToTree(blocks, opt)\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n // console.log('treeBlocks', cloneDeep(r))\r\n\r\n return r\r\n}\r\n\r\n\r\nfunction getUserGroups(user, ruleGroups) {\r\n\r\n //userGroups\r\n let ruleGroupsIds = get(user, 'ruleGroupsIds', '')\r\n\r\n //sep\r\n let s = sep(ruleGroupsIds, ';')\r\n\r\n //gs\r\n let gs = []\r\n each(s, (id) => {\r\n let g = find(ruleGroups, { id })\r\n if (iseobj(g)) {\r\n gs.push(g)\r\n }\r\n })\r\n\r\n //add rules\r\n gs = map(gs, (g) => {\r\n let rules = JSON5.parse(g.crules)\r\n g.rules = rules\r\n return g\r\n })\r\n\r\n return gs\r\n}\r\n\r\n\r\nfunction getTargetsByGroup(targets, group) {\r\n\r\n //cloneDeep\r\n targets = cloneDeep(targets)\r\n\r\n //sortBy\r\n targets = sortBy(targets, 'order')\r\n\r\n //cloneDeep\r\n group = cloneDeep(group)\r\n\r\n //rules\r\n let rules = JSON5.parse(group.crules)\r\n\r\n //rulesDisplay\r\n let rulesDisplay = {}\r\n let ks = ['show', 'active']\r\n each(ks, (k) => {\r\n\r\n //___all___\r\n let def = get(rules, `___all___.${k}`)\r\n def = (def === 'y') ? 'y' : 'n'\r\n\r\n //other props\r\n each(targets, (v) => {\r\n\r\n //krule\r\n let krule = v.id\r\n\r\n //check\r\n if (!rulesDisplay[krule]) {\r\n rulesDisplay[krule] = {}\r\n }\r\n\r\n //rule\r\n let rule = rules[krule]\r\n\r\n //r\r\n let r = null\r\n\r\n //b\r\n let b = get(rule, `${k}`)\r\n if (b === 'y' || b === 'n') {\r\n r = b\r\n }\r\n else {\r\n r = def\r\n }\r\n\r\n //save\r\n rulesDisplay[krule][k] = r //因krule內含有「.」故不能用set\r\n\r\n })\r\n\r\n })\r\n // console.log('rulesDisplay', rulesDisplay)\r\n\r\n return rulesDisplay\r\n}\r\n\r\n\r\nfunction getUserRules(user, ruleGroups, targets) {\r\n //依照使用者所允許之ruleGroups轉出對全部targets權限\r\n\r\n //ruleGroupsIds\r\n let ruleGroupsIds = get(user, 'ruleGroupsIds', '')\r\n\r\n //getUserGroups\r\n let gs = getUserGroups(user, ruleGroups)\r\n // console.log('gs', gs)\r\n\r\n //ruleGroupsNames\r\n let ruleGroupsNames = map(gs, 'name')\r\n ruleGroupsNames = join(ruleGroupsNames, ';')\r\n\r\n //getTargetsByGroup\r\n let rulesDisplay = {}\r\n each(gs, (g) => {\r\n let r = getTargetsByGroup(targets, g)\r\n each(r, (v, k) => {\r\n\r\n //check\r\n if (!haskey(rulesDisplay, k)) {\r\n rulesDisplay[k] = {}\r\n }\r\n\r\n //merge\r\n let ks = ['show', 'active']\r\n each(ks, (kk) => {\r\n let bOld = rulesDisplay[k][kk]\r\n let bNew = r[k][kk]\r\n if (bOld === 'y') {\r\n //不用覆寫\r\n }\r\n else {\r\n //需覆寫\r\n if (bNew === 'y') {\r\n rulesDisplay[k][kk] = 'y'\r\n }\r\n else {\r\n rulesDisplay[k][kk] = 'n'\r\n }\r\n }\r\n })\r\n\r\n })\r\n })\r\n // console.log('rulesDisplay', rulesDisplay)\r\n\r\n return {\r\n ruleGroupsIds,\r\n ruleGroupsNames,\r\n rules: rulesDisplay,\r\n }\r\n}\r\n\r\n\r\nexport {\r\n getAllBlocks,\r\n getTreeBlocks,\r\n // getUserGroups,\r\n // getTargetsByGroup,\r\n getUserRules\r\n}\r\n","import Vue from 'vue'\r\nimport get from 'lodash-es/get.js'\nimport WServHapiClient from 'w-serv-hapi/src/WServHapiClient.mjs'\r\nimport WAlert from 'w-component-vue/src/components/WAlert.mjs'\r\nimport domMutation from 'w-component-vue/src/js/domMutation.mjs'\r\nimport domResize from 'w-component-vue/src/js/domResize.mjs'\r\nimport domDragDrop from 'w-component-vue/src/js/domDragDrop.mjs'\r\nimport App from './App.vue'\r\nimport store from './store/index.mjs'\r\nimport ui from './plugins/mUI.mjs'\r\nimport mDataSelectorSchema from './plugins/mDataSelectorSchema.mjs'\r\n// import mDataSupport from './plugins/mDataSupport.mjs'\r\nimport * as s from './plugins/mShare.mjs'\r\nimport ds from './schema/index.mjs'\r\n// console.log('ds', ds)\r\n\r\n\r\n//不提示vue產品\r\nVue.config.productionTip = false\r\n\r\n//$alert\r\nVue.prototype.$alert = function() {\r\n let [msg, type] = arguments\r\n console.log(msg, type)\r\n if (msg !== 'close') {\r\n WAlert(msg, type)\r\n }\r\n}\r\n\r\n//dssm\r\nlet dssm = mDataSelectorSchema(ds)\r\n\r\n// //dspt\r\n// let dspt = mDataSupport(Vue.prototype)\r\n\r\n//prototype\r\nVue.prototype.$ui = ui\r\nVue.prototype.$t = ui.getKpText\r\nVue.prototype.$s = s\r\nVue.prototype.$dssm = dssm\r\n// Vue.prototype.$dspt = dspt\r\n// Vue.prototype.$ds = ds\r\nVue.prototype.$dg = {}\r\n\r\n//directive\r\nVue.directive('domresize', domResize())\r\nVue.directive('dommutation', domMutation())\r\nVue.directive('domdragdrop', domDragDrop())\r\n\r\n//WServHapiClient\r\nlet bFirstSync = false\r\nWServHapiClient({\r\n showLog: false,\r\n getUrl: () => {\r\n return window.location.origin + window.location.pathname\r\n },\r\n useWaitToken: false,\r\n getToken: () => {\r\n // let token = get(Vue.prototype, `$store.state.userToken`, '')\r\n // console.log('getToken', token)\r\n // return token\r\n return ''\r\n },\r\n getServerMethods: (_fapi) => {\r\n console.log('$fapi', _fapi)\r\n Vue.prototype.$fapi = _fapi\r\n _fapi.getWebInfor() //已有fapi時優先取得web資訊\r\n .then((wi) => {\r\n console.log('$fapi getWebInfor', wi)\r\n Vue.prototype.$store.commit(Vue.prototype.$store.types.UpdateWebInfor, wi)\r\n ui.setLang() //因更新webInfor得要重刷語系才能依照語言取得顯示文字\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n },\r\n recvData: (r) => {\r\n console.log('sync data', r.tableName, r.data)\r\n Vue.prototype.$store.commit(Vue.prototype.$store.types.UpdateTableData, r)\r\n },\r\n getAfterUpdateTableTags: (r) => {\r\n // console.log('getAfterUpdateTableTags', r, 'needToRefresh', JSON.stringify(r.oldTableTags) !== JSON.stringify(r.newTableTags))\r\n if (bFirstSync) {\r\n return\r\n }\r\n bFirstSync = true\r\n console.log('first-sync')\r\n Vue.prototype.$store.commit(Vue.prototype.$store.types.UpdateSyncState, true)\r\n },\r\n})\r\n\r\n//new\r\nnew Vue({\r\n store,\r\n render: h => h(App)\r\n}).$mount('#app')\r\n\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t524: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkw_web_sso\"] = self[\"webpackChunkw_web_sso\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [504], function() { return __webpack_require__(3842); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["render","_vm","this","_c","_self","directives","name","rawName","on","resize","ready","_e","attrs","staticRenderFns","loading","dialogWidth","$event","resizeDialog","scopedSlots","_u","key","fn","style","concat","barPadding","staticStyle","msg","_v","_s","barWidth","proxy","components","WDialog","WProgressBar","props","data","dialogWidthMax","mounted","vo","Vue","prototype","$dg","setLoadingWinBarMessage","setMessage","computed","b","get","methods","w","window","innerWidth","Math","max","min","component","bShow","$t","content","clickBtn","WConfirm","pm","showCheckYesNo","show","genPm","mode","resolve","reject","clickUnit","showCheckYes","autoLogining","c1","c2","c3","logoSize","contentWidth","c4","c5","webLogo","contentPadding","webName","login","model","value","account","callback","$$v","expression","showPassword","password","hasAcPw","v","h","tgLangs","changeLang","tgLangSelect","WIcon","WText","WTextSelect","WButtonChip","id","text","autoLogin","connState","syncState","viewState","heightToolbar","c","isestr","document","title","webBackgoundGradientColors","webKey","lang","$ui","setLang","goUrl","url","token","replaceAll","isDev","console","log","setTimeout","location","href","core","_core","apply","arguments","_asyncToGenerator","_regeneratorRuntime","_callee","errTemp","$keyLS","u","redir","_context","prev","next","abrupt","waitFun","$alert","type","localStorage","getItem","sent","$fapi","checkToken","catch","err","getUserByToken","stop","finally","updateLoading","_core2","_callee2","_context2","delay","Promise","loginByAccountAndPassword","setItem","panelHeight","drawerWidth","drawerWidthMin","drawerWidthMax","height","menus","menuActive","menu","menuKey","drawer","width","changeUsers","resizePanel","resizeHead","mdiAccountGroupOutline","isOperatable","isModified","mdiCloudUploadOutline","saveGroups","firstLoading","spacePading","resizeGroupInfor","mdiAccountPlusOutline","clickAddUser","usersGroupsHeight","_l","usersGroups","us","kus","getFrom","ku","getIsAdmin","mdiChessRook","getIsNotActive","clickEditUser","clickRemoveUser","WSwitch","WPanelScrolly","mdiCheckboxMarkedCircle","panelWidth","headHeight","groupInforHeight","pickGroupId","users","gs","groupBy","ks","keys","sortBy","gsTemp","each","k","size","snew","offsetWidth","offsetHeight","un","genID","from","isAdmin","isActive","insert","find","iseobj","showVeUser","bExit","t_confirmToDeleteUser","replace","del","WDrawer","WButtonCircle","WListVertical","LayoutContentUsers","ms","icon","r","clientWidth","clientHeight","LayoutContent","mdiMenu","userName","beforeMount","LoadingWinBar","CheckYesNo","CheckYes","PageLogin","Layout","setVo","syncHeight","UpdateWebInfor","UpdateLang","UpdateKpText","UpdateConnState","UpdateSyncState","UpdateLoading","UpdateViewState","UpdateTableData","UpdateData","UpdateHeightApp","UpdateHeightAppEff","UpdateHeightToolbar","UpdateMenu","UpdateUserToken","UpdateUserSelf","keyTable","tableNameCht","tableNameEng","settings","pk","userId","timeCreate","timeEnd","timeUpdate","funNew","ndata","length","undefined","o","dtmapping","now2strp","nowms2str","ot","add","format","funTest","rs","tab","order","email","description","ruleGroupsIds","userIdUpdate","cs","tokens","ds","build","useCreateStorage","state","hostname","origin","webInfor","leftDrawerWidth","heightApp","heightAppEff","userToken","user","keyLangs","systemMessage","eng","cht","ok","no","yes","empty","waitingData","isEditabled","saveChanges","save","close","cancel","processing","anUnexpectedErrorOccurred","unknow","username","noDescription","logout","failedLoginForNoWebKey","failedLoginForNoToken","failedLoginForNoRedir","failedLoginForCatch","userList","addUser","editUser","isAManager","remark","dayCreate","newUser","failedToAddUser","successfulToAddUser","confirmToDeleteUser","failedToDeleteUser","successfulToDeleteUser","cannotShowUserDetailsInViewMode","allDefaults","active","showChildren","hideChildren","activateChildren","deactivateChildren","isUsernameEmpty","failedToSaveUser","successfulToSaveUser","kpText","mutations","_mutations","_defineProperty","types","tableName","set","path","userSelf","use","Vuex","st","getters","actions","strict","$store","vObj","updateConnState","commit","updateViewState","updateUserToken","updateUserSelf","forceUpdate","broadcast","chs","$forceUpdate","$children","getKpLang","webDescription","kls","_objectSpread","getKpText","gv","cv","def","isfun","innerHeight","waitData","_waitData","t","_args","mUI","mDataSelectorSchema","getTableInforBy","keyFind","valueFind","keyPick","getTableChtByKey","dlm","getAllBlocks","targets","map","s","sep","takeRight","dropRight","parentId","join","idTemp","getTreeBlocks","blocks","opt","bindKey","bindParent","bindChildren","saveExtProps","composeToTree","getUserGroups","ruleGroups","g","push","rules","JSON5","crules","getTargetsByGroup","group","cloneDeep","rulesDisplay","krule","rule","getUserRules","ruleGroupsNames","haskey","kk","bOld","bNew","config","productionTip","_arguments","Array","slice","call","WAlert","dssm","ui","$s","$dssm","directive","domResize","domMutation","domDragDrop","bFirstSync","WServHapiClient","showLog","getUrl","pathname","useWaitToken","getToken","getServerMethods","_fapi","getWebInfor","then","wi","recvData","getAfterUpdateTableTags","store","App","$mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__","m","deferred","O","result","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","Object","every","splice","n","getter","__esModule","d","a","definition","defineProperty","enumerable","globalThis","Function","e","obj","prop","hasOwnProperty","Symbol","toStringTag","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","forEach","bind","__webpack_exports__"],"sourceRoot":""}