diff --git a/hwe/js/chiefCenter.js.map b/hwe/js/chiefCenter.js.map index d4f63174..9a06344a 100644 --- a/hwe/js/chiefCenter.js.map +++ b/hwe/js/chiefCenter.js.map @@ -1 +1 @@ -{"version":3,"file":"chiefCenter.js","mappings":"uBAAIA,E,onFCGG,IAeMC,EAAb,yLACkB,mBADlB,YAfA,uB,IAAA,OAEI,aAAuC,MAApBC,EAAoB,uDAAF,GAAE,qBACnC,cAAMA,IAD6B,OADzB,gBACK,EAAAA,QAAAA,EAAoB,EAF3C,O,EAAA,G,EAAA,uBAKI,WACI,OAAIC,KAAKD,QACEC,KAAKC,KAAO,KAAOD,KAAKD,QAGxBC,KAAKC,U,iBAVxB,KAAkCC,SAmB5B,SAAU,EAAUC,GACtB,GAAIA,MAAAA,EACA,MAAM,IAAIL,EAEd,OAAOK,ECuRL,SAAUC,IACZC,MAAM,eAgCJ,SAAUC,EAAYC,GACxB,OAAIA,GAAW,EACJ,OAEI,GAAXA,EACO,UAEJ,K,QAlVX,gDAAoD,iBA6HpDC,OAAOC,UAAUC,OAAS,WAAsC,2BAAzBC,EAAyB,yBAAzBA,EAAyB,gBAC5D,OAAOX,KAAKY,QAAQ,YAAY,SAAUC,EAAOC,GAC7C,YAA+B,IAAhBH,EAAKG,GAA0BH,EAAKG,GAAQC,WAAaF,M,0lCCpI1E,SAAUG,EAAgBC,GAgB5B,IAfA,IAAMC,EAAW,IAAIC,SAEfC,EAAa,SAACC,GAChB,GAAG,IAASA,GACR,OAAOA,EAEX,GAAG,IAASA,GACR,OAAOA,EAAEN,WAEb,GAAG,IAAUM,GACT,OAAOA,EAAE,OAAO,QAEpB,MAAM,IAAIC,UAAU,0BAGxB,MAA0BC,OAAOC,QAAQP,GAAzC,eAAiD,CAA7C,O,EAAA,K,EAAA,E,miBAAOQ,EAAP,KAAYC,EAAZ,KACA,GAAG,IAAQA,GAAX,CACI,IADc,EACRC,EAAS,GAAH,OAAMF,EAAN,MADE,IAEQC,GAFR,IAEd,2BAA4B,KAAlBE,EAAkB,QACxBV,EAASW,OAAOF,EAAQP,EAAWQ,KAHzB,oCAQlBV,EAASW,OAAOJ,EAAKL,EAAWM,I,QAGpC,OAAOR,EC3BL,SAAUY,EAAc3B,GAC1B,GAAIA,MAAAA,EACA,MAAM,IAAIL,EAEd,OAAOK,E,20CCkCX,IAAI4B,EAA2C,GAC3CC,OAA0BC,EAsC9B,SAASC,EAAWC,GAChB,IAAMC,EAAS,IAAE,aAAa1B,OAAOyB,IACrCC,EAAOC,KAAK,mBAAmBC,KAAK,KACpCF,EAAOC,KAAK,8CAA8CC,KAAK,U,SAGpDC,I,gFAAf,6HAEsC,2BAAC,4HAEJ,IAAM,CACzBC,IAAK,qBACLC,aAAc,SAJS,cAErBC,EAFqB,yBAMpBA,EAASC,MANW,gCAS3BC,QAAQC,MAAR,MACAzC,IAV2B,wDAAD,GAFtC,WAEUuC,EAFV,QAgBcxC,OAhBd,uBAiBQE,MAAMsC,EAAKG,QAjBnB,0BAoBUC,EAAWJ,EAAKI,SAChBC,EAA6C,GAE/CL,EAAKM,QACLjB,EAAckB,KAAKC,IAAI,aAAc,WAGrCnB,EAAckB,KAAKC,IAAI,aAAc,UAEzC,SAAOR,EAAKS,iBAAiB,SAAUjB,EAAUkB,GAC7CL,EAAmBb,IAAY,EAC/BJ,EAAgBI,IAAY,EAE5B,IAeImB,EAfEC,EAAWvB,EAAcG,GAC/B,GAAIkB,EAAUpD,KAAM,CAChB,IAAMuD,EAAQ,IAAE,mBAAmB9C,OAAO2C,EAAUpD,OAC9CwD,EAAYnD,EAAY+C,EAAU9C,SACpCkD,GACAD,EAAML,IAAI,QAASM,GAEvBF,EAAStD,KAAKyD,QAAQ7B,OAAO2B,QAG7BD,EAAStD,KAAKqC,KAAK,IAGvBiB,EAASI,iBAAiBC,KAAKP,EAAUM,kBAIrCN,EAAUQ,WACVP,EAAc,aAAiBD,EAAUQ,WAG7C,IAAMC,EAAWP,EAASQ,KAC1B,SAAOV,EAAUU,MAAM,SAAUC,EAASC,GAClCX,EACAQ,EAASE,GAASH,SAASD,KAAKN,EAAYY,SAAS,UAGrDJ,EAASE,GAASH,SAASD,KAAK,IAGpCE,EAASE,GAASC,SAAS3B,KAAK2B,GAAUd,IAAI,YAAa,QAC3D,IAAMgB,EAAS,EAAOL,EAASE,GAASI,QAAQC,cAC1CC,EAAS,EAAOR,EAASE,GAASC,SAASM,cACjD,GAAID,EAAkB,IAATH,EAAe,CACxB,IAAMK,EAAc,GAAKL,EAASG,EAAS,GAC3CR,EAASE,GAASC,SAASd,IAAI,YAAa,QAAQzC,OAAO8D,IAE3DlB,IACAA,EAAcA,EAAYmB,KAAK,CAAC,QAAW1B,WAvE3D,IA6EsB,IAAM,EAAG,KA7E/B,iEA6Ee2B,EA7Ef,WA8EmB1B,GA9EnB,wDAiFY0B,KAAO3C,GACPG,EAAWwC,GAlFvB,iJAqFI3C,EAAkBiB,EArFtB,kE,uEAwFA,WAA2Bc,EAAoBa,GAA/C,+FACI/B,QAAQgC,IAAId,EAAUa,GAD1B,kBAI+B,IAAM,CACzBnC,IAAK,0BACLC,aAAa,OACboC,OAAQ,OACRlC,KAAM3B,EAAgB,CAClB8C,SAAAA,EACAgB,OAAQH,MAVxB,cAIcjC,EAJd,QAccC,EAAwBD,EAASC,MAE7BxC,QACNE,MAAMsC,EAAKG,QAjBvB,SAmBcP,IAnBd,yDAsBQK,QAAQC,MAAR,MACAzC,IAvBR,2D,+BA2Be2E,EAAS,G,gFAAxB,WAAwBC,GAAxB,iHAE+B,IAAM,CACzBxC,IAAK,mBACLC,aAAc,OACdoC,OAAQ,OACRlC,KAAM3B,EAAgB,CAClBiE,OAAQD,MAPxB,cAEctC,EAFd,QAUcC,EAAOD,EAASC,MACZxC,QACNE,MAAMsC,EAAKG,QAZvB,SAccP,IAdd,yDAiBQK,QAAQC,MAAR,MACAzC,IAlBR,2D,sBAsBA8E,QAAO,SAAUC,GAEbnD,EA9KJ,WACI,IADqB,EACfoD,EAAqB,CACvBlC,KAAM,IAAE,oCAFS,IAKE,IAAM,EAAG,KALX,IAKrB,2BAAqC,OAA1Bf,EAA0B,QAC3BC,EAAS,IAAE,aAAa1B,OAAOyB,IAC/BkD,EAAoBjD,EAAOC,KAAK,mBAChCmB,EAAQpB,EAAOC,KAAK,cACpB0B,EAAqB,GAJM,IAKX,IAAMuB,eALK,IAKjC,2BAA2C,KAAhCtB,EAAgC,QACjCuB,EAAQnD,EAAOC,KAAK,WAAW3B,OAAOsD,IACtCwB,EAAYD,EAAMlD,KAAK,kBACvBoD,EAAWF,EAAMlD,KAAK,iBACtBqD,EAAYH,EAAMlD,KAAK,kBAC7B0B,EAAK4B,KAAK,CAAE9B,SAAU2B,EAAWpB,QAASqB,EAAUxB,SAAUyB,KAVjC,8BAYjCN,EAASjD,GAAY,CACjBwB,iBAAkB0B,EAClBpF,KAAMuD,EACNO,KAAMA,IApBO,8BAwBrB,OAAOqB,EAsJSQ,GACXrD,IACL4C,EAAE,gBAAgBU,GAAG,QAAStD,GAC9B4C,EAAE,eAAeU,GAAG,SAAS,WACzB,IAAM/B,EAAWhC,EAAqBqD,EAAE,sBAAsBW,OAAOC,KAAI,SAAU1E,GAAK,OAAO2E,SAAS3E,MAClG4E,EAAWd,EAAE,qCAYnB,OAXIc,EAAStD,KAAK,UACdwC,EAAEe,SACE,mBAAoB,CACpBvB,QAAS,EAAOsB,EAASH,OACzBhC,SAAUA,EAASqC,KAAK,KACxBC,UAAU,GACX,O,SA/DY,EAAZ,G,wBAkEEC,CAAYvC,EAAUhC,EAAmBmE,EAASH,SAEpD,KAGXX,EAAE,aAAaU,GAAG,SAAS,WAEvB,OADKd,EAAS,IACP,KAGXI,EAAE,aAAaU,GAAG,SAAS,WAEvB,OADKd,GAAU,IACR,UC3PXuB,EAA2B,GAG/B,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBvE,IAAjBwE,EACH,OAAOA,EAAaC,QAGrB,IAAIC,EAASL,EAAyBE,GAAY,CACjDI,GAAIJ,EACJK,QAAQ,EACRH,QAAS,IAUV,OANAI,EAAoBN,GAAUO,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASH,GAG3EI,EAAOE,QAAS,EAGTF,EAAOD,QAIfH,EAAoBS,EAAIF,EN5BpBjH,EAAW,GACf0G,EAAoBU,EAAI,CAAC9G,EAAQ+G,EAAUC,EAAIC,KAC9C,IAAGF,EAAH,CAMA,IAAIG,EAAeC,EAAAA,EACnB,IAASC,EAAI,EAAGA,EAAI1H,EAAS2H,OAAQD,IAAK,CAGzC,IAFA,IAAKL,EAAUC,EAAIC,GAAYvH,EAAS0H,GACpCE,GAAY,EACPC,EAAI,EAAGA,EAAIR,EAASM,OAAQE,MACpB,EAAXN,GAAsBC,GAAgBD,IAAa7F,OAAOoG,KAAKpB,EAAoBU,GAAGW,OAAOnG,GAAS8E,EAAoBU,EAAExF,GAAKyF,EAASQ,MAC9IR,EAASW,OAAOH,IAAK,IAErBD,GAAY,EACTL,EAAWC,IAAcA,EAAeD,IAG7C,GAAGK,EAAW,CACb5H,EAASgI,OAAON,IAAK,GACrB,IAAIO,EAAIX,SACElF,IAAN6F,IAAiB3H,EAAS2H,IAGhC,OAAO3H,EAvBNiH,EAAWA,GAAY,EACvB,IAAI,IAAIG,EAAI1H,EAAS2H,OAAQD,EAAI,GAAK1H,EAAS0H,EAAI,GAAG,GAAKH,EAAUG,IAAK1H,EAAS0H,GAAK1H,EAAS0H,EAAI,GACrG1H,EAAS0H,GAAK,CAACL,EAAUC,EAAIC,IOJ/Bb,EAAoBwB,EAAKpB,IACxB,IAAIqB,EAASrB,GAAUA,EAAOsB,WAC7B,IAAOtB,EAAiB,QACxB,IAAM,EAEP,OADAJ,EAAoB2B,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,GCLRzB,EAAoB2B,EAAI,CAACxB,EAAS0B,KACjC,IAAI,IAAI3G,KAAO2G,EACX7B,EAAoB8B,EAAED,EAAY3G,KAAS8E,EAAoB8B,EAAE3B,EAASjF,IAC5EF,OAAO+G,eAAe5B,EAASjF,EAAK,CAAE8G,YAAY,EAAMC,IAAKJ,EAAW3G,MCJ3E8E,EAAoBkC,EAAI,WACvB,GAA0B,iBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAO1I,MAAQ,IAAI2I,SAAS,cAAb,GACd,MAAOC,GACR,GAAsB,iBAAXC,OAAqB,OAAOA,QALjB,GCAxBtC,EAAoB8B,EAAI,CAACS,EAAKC,IAAUxH,OAAOd,UAAUuI,eAAejC,KAAK+B,EAAKC,GCClFxC,EAAoBuB,EAAKpB,IACH,oBAAXuC,QAA0BA,OAAOC,aAC1C3H,OAAO+G,eAAe5B,EAASuC,OAAOC,YAAa,CAAExH,MAAO,WAE7DH,OAAO+G,eAAe5B,EAAS,aAAc,CAAEhF,OAAO,KCLvD6E,EAAoB4C,IAAOxC,IAC1BA,EAAOyC,MAAQ,GACVzC,EAAO0C,WAAU1C,EAAO0C,SAAW,IACjC1C,GCHRJ,EAAoBmB,EAAI,I,MCKxB,IAAI4B,EAAkB,CACrB,IAAK,GAaN/C,EAAoBU,EAAES,EAAK6B,GAA0C,IAA7BD,EAAgBC,GAGxD,IAAIC,EAAuB,CAACC,EAA4B9G,KACvD,IAGI6D,EAAU+C,GAHTrC,EAAUwC,EAAaC,GAAWhH,EAGhB4E,EAAI,EAC3B,IAAIf,KAAYkD,EACZnD,EAAoB8B,EAAEqB,EAAalD,KACrCD,EAAoBS,EAAER,GAAYkD,EAAYlD,IAGhD,GAAGmD,EAAS,IAAIxJ,EAASwJ,EAAQpD,GAEjC,IADGkD,GAA4BA,EAA2B9G,GACrD4E,EAAIL,EAASM,OAAQD,IACzBgC,EAAUrC,EAASK,GAChBhB,EAAoB8B,EAAEiB,EAAiBC,IAAYD,EAAgBC,IACrED,EAAgBC,GAAS,KAE1BD,EAAgBpC,EAASK,IAAM,EAEhC,OAAOhB,EAAoBU,EAAE9G,IAG1ByJ,EAAqBC,KAA6B,uBAAIA,KAA6B,wBAAK,GAC5FD,EAAmBE,QAAQN,EAAqBO,KAAK,KAAM,IAC3DH,EAAmBjE,KAAO6D,EAAqBO,KAAK,KAAMH,EAAmBjE,KAAKoE,KAAKH,K,GC3CvF,IAAII,EAAsBzD,EAAoBU,OAAEhF,EAAW,CAAC,MAAM,IAAOsE,EAAoB,QAC7FyD,EAAsBzD,EAAoBU,EAAE+C,I","sources":["webpack://hidche_lib/webpack/runtime/chunk loaded","webpack://hidche_lib/./hwe/ts/util.ts","webpack://hidche_lib/./hwe/ts/common_legacy.ts","webpack://hidche_lib/./hwe/ts/util/convertFormData.ts","webpack://hidche_lib/./hwe/ts/util/unwrap_any.ts","webpack://hidche_lib/./hwe/ts/chiefCenter.ts","webpack://hidche_lib/webpack/bootstrap","webpack://hidche_lib/webpack/runtime/compat get default export","webpack://hidche_lib/webpack/runtime/define property getters","webpack://hidche_lib/webpack/runtime/global","webpack://hidche_lib/webpack/runtime/hasOwnProperty shorthand","webpack://hidche_lib/webpack/runtime/make namespace object","webpack://hidche_lib/webpack/runtime/node module decorator","webpack://hidche_lib/webpack/runtime/runtimeId","webpack://hidche_lib/webpack/runtime/jsonp chunk loading","webpack://hidche_lib/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (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, fn, priority] = deferred[i];\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((key) => (__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};","type ErrType = { new(msg?: string): T }\nexport type Nullable = T | null | undefined\n\nexport class RuntimeError extends Error {\n public name = 'RuntimeError';\n constructor(public message: string = '') {\n super(message);\n }\n toString(): string {\n if (this.message) {\n return this.name + ': ' + this.message;\n }\n else {\n return this.name;\n }\n }\n}\n\nexport class NotNullExpected extends RuntimeError {\n public name = 'NotNullExpected';\n}\n\nexport function unwrap(result: Nullable): T {\n if (result === null || result === undefined) {\n throw new NotNullExpected();\n }\n return result;\n}\n\nexport function unwrap_err(result: Nullable, errType: ErrType, errMsg?: string): T {\n if (result === null || result === undefined) {\n throw new errType(errMsg);\n }\n return result;\n}","import { unwrap } from \"./util\";\n\nimport jQuery from \"jquery\";\nimport 'bootstrap';\n\nimport axios from \"axios\";\n\naxios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';\n//TODO: X-Requested-With 믿지 말자.\n\n/** \n * <>& 등을 html에서도 그대로 보이도록 escape주는 함수\n * @see https://stackoverflow.com/questions/24816/escaping-html-strings-with-jquery\n */\nexport const escapeHtml = (() => {\n const entityMap: { [v: string]: string } = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/',\n '`': '`',\n '=': '='\n };\n\n return function (string: string) {\n return String(string).replace(/[&<>\"'`=/]/g, function (s: string) {\n return entityMap[s];\n });\n }\n})();\n\n/**\n * 변수가 정수인지 확인하는 함수\n * @param {*} n 정수인지 확인하기 위한 인자\n * @return {boolean} 정수인지 여부\n */\nexport function isInt(n: unknown): n is number {\n const v = n as number;\n return +v === v && !(v % 1);\n}\n\n\n//https://gist.github.com/demouth/3217440\n/**\n * mb_strwidth\n * @see http://php.net/manual/function.mb-strwidth.php\n */\nexport function mb_strwidth(str: string): number {\n const l = str.length;\n let length = 0;\n for (let i = 0; i < l; i++) {\n const c = str.charCodeAt(i);\n if (0x0000 <= c && c <= 0x0019) {\n length += 0;\n } else if (0x0020 <= c && c <= 0x1FFF) {\n length += 1;\n } else if (0x2000 <= c && c <= 0xFF60) {\n length += 2;\n } else if (0xFF61 <= c && c <= 0xFF9F) {\n length += 1;\n } else if (0xFFA0 <= c) {\n length += 2;\n }\n }\n return length;\n}\n\n\n/**\n * mb_strimwidth\n * @param String\n * @param int\n * @param int\n * @param String\n * @return String\n * @see http://www.php.net/manual/function.mb-strimwidth.php\n */\nexport function mb_strimwidth(str: string, start: number, width: number, trimmarker = ''): string {\n const trimmakerWidth = mb_strwidth(trimmarker);\n const l = str.length;\n let trimmedLength = 0;\n const trimmedStr: string[] = [];\n for (let i = start; i < l; i++) {\n const c = str.charAt(i);\n const charWidth = mb_strwidth(c);\n const next = str.charAt(i + 1);\n const nextWidth = mb_strwidth(next);\n\n trimmedLength += charWidth;\n trimmedStr.push(c);\n if (trimmedLength + trimmakerWidth + nextWidth > width) {\n trimmedStr.push(trimmarker);\n break;\n }\n }\n return trimmedStr.join('');\n}\n\n/**\n * object의 array를 id를 key로 삼는 object로 재 변환\n */\nexport function convertDictById(arr: ArrayLike): Record {\n const result: Record = {};\n for (const v of Object.values(arr)) {\n result[v.id] = v;\n }\n return result;\n}\n\n/**\n * array를 set 형태의 object로 변환\n */\nexport function convertSet(arr: ArrayLike): Record {\n const result: Record = {};\n for (const v of Object.values(arr)) {\n result[v] = true;\n }\n return result;\n}\n\n\n/** \n * {0}, {1}, {2}형태로 포맷해주는 함수\n */\n\ndeclare global {\n interface String {\n format(...args: (string | number)[]): string;\n }\n}\nString.prototype.format = function (...args: (string | number)[]) {\n return this.replace(/{(\\d+)}/g, function (match, number) {\n return (typeof args[number] != 'undefined') ? args[number].toString() : match;\n });\n};\n\n\nexport function hexToRgb(hex: string): { r: number, g: number, b: number } | null {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16)\n } : null;\n}\n\nexport function isBrightColor(color: string): boolean {\n const cv = unwrap(hexToRgb(color));\n if ((cv.r * 0.299 + cv.g * 0.587 + cv.b * 0.114) > 140) {\n return true;\n } else {\n return false;\n }\n}\n\n/**\n * 게임내에서 지원하는 color type만 선택할 수 있도록 해주는 함수\n * @param {string} color #AAAAAA 또는 AAAAAA 형태로 작성된 RGB hex color string\n * @returns {string}\n */\nexport function convColorValue(color: string): string {\n if (color.charAt(0) == '#') {\n color = color.substr(1);\n }\n color = color.toUpperCase();\n\n const colorBase = new Set([\n '000080', '0000FF', '008000', '008080', '00BFFF', '00FF00', '00FFFF', '20B2AA',\n '2E8B57', '483D8B', '6495ED', '7B68EE', '7CFC00', '7FFFD4', '800000', '800080',\n '808000', '87CEEB', 'A0522D', 'A9A9A9', 'AFEEEE', 'BA55D3', 'E0FFFF', 'F5F5DC',\n 'FF0000', 'FF00FF', 'FF6347', 'FFA500', 'FFC0CB', 'FFD700', 'FFDAB9', 'FFFF00',\n 'FFFFFF'\n ]);\n\n if (!colorBase.has(color)) {\n return '000000';\n }\n\n return color;\n}\n\n\nexport function numberWithCommas(x: number): string {\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n}\n\n//linkify가 불러와 있어야함\ndeclare global {\n interface Window {\n linkifyStr: (v: string, k?: Record) => string;\n }\n}\nexport function linkifyStrWithOpt(text: string): string {\n return window.linkifyStr(text, {});\n}\n\n/**\n * 단순한 Template 함수. <%변수명%>으로 template 가능\n * @see https://github.com/krasimir/absurd/blob/master/lib/processors/html/helpers/TemplateEngine.js\n * @param {string} html \n * @param {object} options \n * @returns {string}\n */\nexport function TemplateEngine(html: string, options: Record = {}): string {\n const re = /<%(.+?)%>/g;\n const reExp = /(^( )?(var|if|for|else|switch|case|break|{|}|;))(.*)?/g;\n let cursor = 0;\n const add = function (line: string, js?: boolean) {\n js ? (code += line.match(reExp) ? line + '\\n' : 'r.push(' + line + ');\\n') :\n (code += line != '' ? 'r.push(\"' + line.replace(/\"/g, '\\\\\"') + '\");\\n' : '');\n return add;\n }\n options.e = escapeHtml;\n options.linkifyStr = linkifyStrWithOpt;\n for (; ;) {\n const match = re.exec(html);\n if (!match) {\n break;\n }\n add(html.slice(cursor, match.index))(match[1], true);\n cursor = match.index + match[0].length;\n }\n add(html.substr(cursor, html.length - cursor));\n\n let code = 'with(obj) { var r=[];\\n';\n code = (code + 'return r.join(\"\"); }').replace(/[\\r\\t\\n]/g, ' ');\n try {\n return new Function('obj', code).apply(options, [options]);\n } catch (err) {\n console.error(\"'\" + err.message + \"'\", \" in \\n\\nCode:\\n\", code, \"\\n\");\n throw err;\n }\n}\n\nexport function getIconPath(imgsvr: boolean | 1 | 0, picture: string): string {\n // ../d_shared/common_path.js 필요\n if (!imgsvr) {\n return window.pathConfig.sharedIcon + '/' + picture;\n } else {\n return window.pathConfig.root + '/d_pic/' + picture;\n }\n}\n\nexport function activeFlip($obj?: JQuery): void {\n let $result: JQuery;\n if ($obj === undefined) {\n $result = $('img[data-flip]');\n } else {\n $result = $obj.find('img[data-flip]');\n }\n\n $result.each(function () {\n activeFlipItem($(this));\n });\n\n}\n\nexport function combineObject(item: V[], columnList: K[]): Record {\n const newItem: Record = {};\n for (const columnIdx in columnList) {\n const columnName = columnList[columnIdx];\n newItem[columnName] = item[columnIdx];\n }\n return newItem;\n}\n\nexport function combineArray(array: V[][], columnList: K[]): Record[] {\n const result: Record[] = [];\n for (const key of array.keys()) {\n const item = array[key];\n result[key] = combineObject(item, columnList);\n }\n return result;\n}\n\nexport function activeFlipItem($img: JQuery): void {\n const imageList = [];\n imageList.push($img.attr('src'));\n $.each($img.data('flip').split(','), function (idx, value) {\n value = $.trim(value);\n if (!value) {\n return true;\n }\n imageList.push(value);\n });\n if (imageList.length <= 1) {\n return;\n }\n $img.data('computed_flip_array', imageList);\n $img.data('computed_flip_idx', 0);\n\n $img.click(function () {\n const arr = $img.data('computed_flip_array');\n let idx = $img.data('computed_flip_idx');\n idx = (idx + 1) % (arr.length);\n $img.attr('src', arr[idx]);\n $img.data('computed_flip_idx', idx);\n });\n $img.css('cursor', 'pointer');\n}\n\n\n\nexport function errUnknown(): void {\n alert('작업을 실패했습니다.');\n}\n\n\n\nexport function errUnknownToast(): void {\n jQuery.toast({\n title: '에러!',\n content: '작업을 실패했습니다.',\n type: 'danger',\n delay: 5000\n });\n}\n\nexport function quickReject(errMsg: string): JQuery.Promise {\n if (errMsg === undefined) {\n errMsg = '작업을 실패했습니다.';\n }\n const deferred = $.Deferred();\n void deferred.reject(errMsg);\n return deferred.promise();\n}\n\nexport function nl2br(text: string): string {\n return text.replace(/\\n/g, \"
\");\n}\n/*\nfunction br2nl (text) { \n return text.replace(/<\\s*\\/?br\\s*[\\/]?>/gi, '\\n');\n}\n*/\n\nexport function getNpcColor(npcType: number): 'cyan' | 'skyblue' | null {\n if (npcType >= 2) {\n return 'cyan';\n }\n if (npcType == 1) {\n return 'skyblue';\n }\n return null;\n}\n\nexport function initTooltip($obj?: JQuery): void {\n if ($obj === undefined) {\n $obj = $('.obj_tooltip');\n } else if (!$obj.hasClass('obj_tooltip')) {\n $obj = $obj.find('.obj_tooltip');\n }\n console.log($obj);\n\n $obj.each(function () {\n const $target = $(this);\n\n if ($target.data('installHandler')) {\n return;\n }\n $target.data('installHandler', true);\n\n $target.mouseover(function () {\n const $objTooltip = $(this);\n if ($objTooltip.data('setObjTooltip')) {\n return;\n }\n\n let tooltipClassText = $objTooltip.data('tooltip-class');\n if (!tooltipClassText) {\n tooltipClassText = '';\n }\n const template = '
'\n .format(tooltipClassText);\n\n $objTooltip.tooltip({\n title: function () {\n return $.trim($(this).find('.tooltiptext').html());\n },\n template: template,\n html: true\n }).tooltip('show');\n\n $objTooltip.data('setObjTooltip', true);\n });\n });\n}","import { isArray, isString, isNumber, isBoolean } from \"lodash\";\n\nexport function convertFormData(values: Record): FormData{\n const formData = new FormData();\n\n const simpleConv = (v: unknown):string=>{\n if(isString(v)){\n return v;\n }\n if(isNumber(v)){\n return v.toString();\n }\n if(isBoolean(v)){\n return v?'true':'false';\n }\n throw new TypeError('지원하지 않는 formData Type');\n }\n\n for(const [key, value] of Object.entries(values)){\n if(isArray(value)){\n const arrKey = `${key}[]`;\n for(const subValue of value){\n formData.append(arrKey, simpleConv(subValue));\n }\n continue;\n }\n\n formData.append(key, simpleConv(value));\n }\n\n return formData;\n}","import { Nullable, NotNullExpected } from \"../util\";\n\n\nexport function unwrap_any(result: Nullable): T {\n if (result === null || result === undefined) {\n throw new NotNullExpected();\n }\n return result as T;\n}\n","import axios from 'axios';\r\nimport $ from 'jquery';\r\nimport { range } from 'lodash';\r\nimport { DateTime } from 'luxon';\r\nimport { errUnknown, getNpcColor } from './common_legacy';\r\nimport { InvalidResponse } from './defs';\r\nimport { unwrap } from './util';\r\nimport { convertFormData } from './util/convertFormData';\r\nimport { unwrap_any } from \"./util/unwrap_any\";\r\n\r\ndeclare const maxChiefTurn: number;\r\n\r\ntype TurnDOMObj = {\r\n turnTime: JQuery,\r\n turnPad: JQuery,\r\n turnText: JQuery\r\n};\r\n\r\ntype TableObj = {\r\n btns: JQuery;\r\n [key: number]: {\r\n officerLevelText: JQuery,\r\n name: JQuery,\r\n turn: TurnDOMObj[],\r\n }\r\n}\r\n\r\ntype ChiefResponse = InvalidResponse | {\r\n result: true,\r\n date: string,\r\n nationTurnBrief: {\r\n name:string|null,\r\n turnTime:string|null,\r\n officerLevelText:string,\r\n npcType:number,\r\n turn:string\r\n }[],\r\n isChief: boolean,\r\n turnTerm: number\r\n}\r\n\r\nlet filledChiefList: Record = {};\r\nlet chiefTableObj: TableObj = undefined as unknown as TableObj;//TODO: 매우 지저분하다. class 기반으로 고치던가 할 것\r\n\r\n/*\r\nfunction clearTable() {\r\n $('.chiefLevelText').html('-');\r\n $('.chiefTurnTime, .chiefTurnText, .chiefName').html(' ');\r\n}\r\n*/\r\n\r\nfunction genChiefTableObj(): TableObj {\r\n const objTable: TableObj = {\r\n btns: $('#turnPush,#turnPull,#setCommand')\r\n };\r\n\r\n for (const chiefIdx of range(5, 13)) {\r\n const $plate = $('#chief_{0}'.format(chiefIdx));\r\n const $officerLevelText = $plate.find('.chiefLevelText');\r\n const $name = $plate.find('.chiefName');\r\n const turn: TurnDOMObj[] = [];\r\n for (const turnIdx of range(maxChiefTurn)) {\r\n const $turn = $plate.find('.turn{0}'.format(turnIdx));\r\n const $turnTime = $turn.find('.chiefTurnTime');\r\n const $turnPad = $turn.find('.chiefTurnPad');\r\n const $turnText = $turn.find('.chiefTurnText');\r\n turn.push({ turnTime: $turnTime, turnPad: $turnPad, turnText: $turnText });\r\n }\r\n objTable[chiefIdx] = {\r\n officerLevelText: $officerLevelText,\r\n name: $name,\r\n turn: turn\r\n };\r\n }\r\n\r\n return objTable;\r\n}\r\n\r\n\r\n\r\nfunction clearChief(chiefIdx: number): void {\r\n const $plate = $('#chief_{0}'.format(chiefIdx));\r\n $plate.find('.chiefLevelText').html('-');\r\n $plate.find('.chiefTurnTime, .chiefTurnText, .chiefName').html(' ');\r\n}\r\n\r\nasync function reloadTable() {\r\n\r\n const data: ChiefResponse = await (async () => {\r\n try {\r\n const response = await axios({\r\n url: 'j_getChiefTurn.php',\r\n responseType: 'json'\r\n });\r\n return response.data;\r\n }\r\n catch (e) {\r\n console.error(e);\r\n errUnknown();\r\n }\r\n })();\r\n\r\n if (!data.result) {\r\n alert(data.reason);\r\n return;\r\n }\r\n const turnTerm = data.turnTerm;\r\n const tmpFilledChiefList:Record = {};\r\n\r\n if (data.isChief) {\r\n chiefTableObj.btns.css('visibility', 'visible');\r\n }\r\n else {\r\n chiefTableObj.btns.css('visibility', 'hidden');\r\n }\r\n $.each(data.nationTurnBrief, function (chiefIdx, chiefInfo) {\r\n tmpFilledChiefList[chiefIdx] = true;\r\n filledChiefList[chiefIdx] = true;\r\n\r\n const plateObj = chiefTableObj[chiefIdx];\r\n if (chiefInfo.name) {\r\n const $name = $('{0}'.format(chiefInfo.name));\r\n const nameColor = getNpcColor(chiefInfo.npcType);\r\n if (nameColor) {\r\n $name.css('color', nameColor);\r\n }\r\n plateObj.name.empty().append($name);\r\n }\r\n else {\r\n plateObj.name.html('');\r\n }\r\n\r\n plateObj.officerLevelText.text(chiefInfo.officerLevelText);\r\n\r\n let turnTimeObj: DateTime|undefined;\r\n\r\n if (chiefInfo.turnTime) {\r\n turnTimeObj = DateTime.fromSQL(chiefInfo.turnTime);\r\n }\r\n\r\n const turnList = plateObj.turn;\r\n $.each(chiefInfo.turn, function (turnIdx, turnText) {\r\n if (turnTimeObj) {\r\n turnList[turnIdx].turnTime.text(turnTimeObj.toFormat('HH:mm'));\r\n }\r\n else {\r\n turnList[turnIdx].turnTime.text('');\r\n }\r\n\r\n turnList[turnIdx].turnText.html(turnText).css('font-size', '13px');\r\n const oWidth = unwrap(turnList[turnIdx].turnPad.innerWidth());\r\n const iWidth = unwrap(turnList[turnIdx].turnText.outerWidth());\r\n if (iWidth > oWidth * 0.95) {\r\n const newFontSize = 13 * oWidth / iWidth * 0.9;\r\n turnList[turnIdx].turnText.css('font-size', '{0}px'.format(newFontSize));\r\n }\r\n if (turnTimeObj) {\r\n turnTimeObj = turnTimeObj.plus({'minutes': turnTerm});\r\n }\r\n\r\n });\r\n });\r\n\r\n for (const idx of range(5, 13)) {\r\n if (idx in tmpFilledChiefList) {\r\n continue;\r\n }\r\n if (idx in filledChiefList) {\r\n clearChief(idx);\r\n }\r\n }\r\n filledChiefList = tmpFilledChiefList;\r\n}\r\n\r\nasync function reserveTurn(turnList: number[], command: string) {\r\n console.log(turnList, command);\r\n try{\r\n\r\n const response = await axios({\r\n url: 'j_set_chief_command.php',\r\n responseType:'json',\r\n method: 'post',\r\n data: convertFormData({\r\n turnList,\r\n action: command\r\n })\r\n });\r\n\r\n const data: InvalidResponse = response.data;\r\n\r\n if (!data.result) {\r\n alert(data.reason);\r\n }\r\n await reloadTable();\r\n }\r\n catch(e){\r\n console.error(e);\r\n errUnknown();\r\n }\r\n}\r\n\r\nasync function pushTurn(turnCnt: number) {\r\n try {\r\n const response = await axios({\r\n url: 'j_chief_turn.php',\r\n responseType: 'json',\r\n method: 'post',\r\n data: convertFormData({\r\n amount: turnCnt\r\n })\r\n });\r\n const data = response.data;\r\n if (!data.result) {\r\n alert(data.reason);\r\n }\r\n await reloadTable();\r\n }\r\n catch (e) {\r\n console.error(e);\r\n errUnknown();\r\n }\r\n}\r\n\r\njQuery(function ($) {\r\n\r\n chiefTableObj = genChiefTableObj();\r\n void reloadTable();\r\n $('#reloadTable').on('click', reloadTable);\r\n $('#setCommand').on('click', function () {\r\n const turnList = unwrap_any($('#chiefTurnSelector').val()).map(function (v) { return parseInt(v); });\r\n const $command = $('#chiefCommandList option:selected');\r\n if ($command.data('reqarg')) {\r\n $.redirect(\r\n \"b_processing.php\", {\r\n command: unwrap($command.val()),\r\n turnList: turnList.join('_'),\r\n is_chief: true\r\n }, \"GET\");\r\n }\r\n else {\r\n void reserveTurn(turnList, unwrap_any($command.val()));\r\n }\r\n return false;\r\n });\r\n\r\n $('#turnPush').on('click', function () {\r\n void pushTurn(1);\r\n return false;\r\n });\r\n\r\n $('#turnPull').on('click', function () {\r\n void pushTurn(-1);\r\n return false;\r\n });\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\tid: moduleId,\n\t\tloaded: false,\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// Flag the module as loaded\n\tmodule.loaded = true;\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","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 310;","// 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\t310: 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 = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\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\tfor(moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) var result = runtime(__webpack_require__);\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[chunkIds[i]] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkhidche_lib\"] = self[\"webpackChunkhidche_lib\"] || [];\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, [216], () => (__webpack_require__(1329)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","NotNullExpected","message","this","name","Error","result","errUnknown","alert","getNpcColor","npcType","String","prototype","format","args","replace","match","number","toString","convertFormData","values","formData","FormData","simpleConv","v","TypeError","Object","entries","key","value","arrKey","subValue","append","unwrap_any","filledChiefList","chiefTableObj","undefined","clearChief","chiefIdx","$plate","find","html","reloadTable","url","responseType","response","data","console","error","reason","turnTerm","tmpFilledChiefList","isChief","btns","css","nationTurnBrief","chiefInfo","turnTimeObj","plateObj","$name","nameColor","empty","officerLevelText","text","turnTime","turnList","turn","turnIdx","turnText","toFormat","oWidth","turnPad","innerWidth","iWidth","outerWidth","newFontSize","plus","idx","command","log","method","action","pushTurn","turnCnt","amount","jQuery","$","objTable","$officerLevelText","maxChiefTurn","$turn","$turnTime","$turnPad","$turnText","push","genChiefTableObj","on","val","map","parseInt","$command","redirect","join","is_chief","reserveTurn","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","id","loaded","__webpack_modules__","call","m","O","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","keys","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","g","globalThis","Function","e","window","obj","prop","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","forEach","bind","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"chiefCenter.js","mappings":"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","sources":["webpack://hidche_lib/webpack/runtime/chunk loaded","webpack://hidche_lib/./hwe/ts/util.ts","webpack://hidche_lib/./hwe/ts/common_legacy.ts","webpack://hidche_lib/./hwe/ts/util/convertFormData.ts","webpack://hidche_lib/./hwe/ts/util/unwrap_any.ts","webpack://hidche_lib/./hwe/ts/chiefCenter.ts","webpack://hidche_lib/webpack/bootstrap","webpack://hidche_lib/webpack/runtime/compat get default export","webpack://hidche_lib/webpack/runtime/define property getters","webpack://hidche_lib/webpack/runtime/global","webpack://hidche_lib/webpack/runtime/hasOwnProperty shorthand","webpack://hidche_lib/webpack/runtime/make namespace object","webpack://hidche_lib/webpack/runtime/node module decorator","webpack://hidche_lib/webpack/runtime/runtimeId","webpack://hidche_lib/webpack/runtime/jsonp chunk loading","webpack://hidche_lib/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (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, fn, priority] = deferred[i];\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((key) => (__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};","type ErrType = { new(msg?: string): T }\nexport type Nullable = T | null | undefined\n\nexport class RuntimeError extends Error {\n public name = 'RuntimeError';\n constructor(public message: string = '') {\n super(message);\n }\n toString(): string {\n if (this.message) {\n return this.name + ': ' + this.message;\n }\n else {\n return this.name;\n }\n }\n}\n\nexport class NotNullExpected extends RuntimeError {\n public name = 'NotNullExpected';\n}\n\nexport function unwrap(result: Nullable): T {\n if (result === null || result === undefined) {\n throw new NotNullExpected();\n }\n return result;\n}\n\nexport function unwrap_err(result: Nullable, errType: ErrType, errMsg?: string): T {\n if (result === null || result === undefined) {\n throw new errType(errMsg);\n }\n return result;\n}","import { unwrap } from \"./util\";\n\nimport jQuery from \"jquery\";\nimport 'bootstrap';\n\nimport axios from \"axios\";\n\naxios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';\n//TODO: X-Requested-With 믿지 말자.\n\n/** \n * <>& 등을 html에서도 그대로 보이도록 escape주는 함수\n * @see https://stackoverflow.com/questions/24816/escaping-html-strings-with-jquery\n */\nexport const escapeHtml = (() => {\n const entityMap: { [v: string]: string } = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/',\n '`': '`',\n '=': '='\n };\n\n return function (string: string) {\n return String(string).replace(/[&<>\"'`=/]/g, function (s: string) {\n return entityMap[s];\n });\n }\n})();\n\n/**\n * 변수가 정수인지 확인하는 함수\n * @param {*} n 정수인지 확인하기 위한 인자\n * @return {boolean} 정수인지 여부\n */\nexport function isInt(n: unknown): n is number {\n const v = n as number;\n return +v === v && !(v % 1);\n}\n\n\n//https://gist.github.com/demouth/3217440\n/**\n * mb_strwidth\n * @see http://php.net/manual/function.mb-strwidth.php\n */\nexport function mb_strwidth(str: string): number {\n const l = str.length;\n let length = 0;\n for (let i = 0; i < l; i++) {\n const c = str.charCodeAt(i);\n if (0x0000 <= c && c <= 0x0019) {\n length += 0;\n } else if (0x0020 <= c && c <= 0x1FFF) {\n length += 1;\n } else if (0x2000 <= c && c <= 0xFF60) {\n length += 2;\n } else if (0xFF61 <= c && c <= 0xFF9F) {\n length += 1;\n } else if (0xFFA0 <= c) {\n length += 2;\n }\n }\n return length;\n}\n\n\n/**\n * mb_strimwidth\n * @param String\n * @param int\n * @param int\n * @param String\n * @return String\n * @see http://www.php.net/manual/function.mb-strimwidth.php\n */\nexport function mb_strimwidth(str: string, start: number, width: number, trimmarker = ''): string {\n const trimmakerWidth = mb_strwidth(trimmarker);\n const l = str.length;\n let trimmedLength = 0;\n const trimmedStr: string[] = [];\n for (let i = start; i < l; i++) {\n const c = str.charAt(i);\n const charWidth = mb_strwidth(c);\n const next = str.charAt(i + 1);\n const nextWidth = mb_strwidth(next);\n\n trimmedLength += charWidth;\n trimmedStr.push(c);\n if (trimmedLength + trimmakerWidth + nextWidth > width) {\n trimmedStr.push(trimmarker);\n break;\n }\n }\n return trimmedStr.join('');\n}\n\n/**\n * object의 array를 id를 key로 삼는 object로 재 변환\n */\nexport function convertDictById(arr: ArrayLike): Record {\n const result: Record = {};\n for (const v of Object.values(arr)) {\n result[v.id] = v;\n }\n return result;\n}\n\n/**\n * array를 set 형태의 object로 변환\n */\nexport function convertSet(arr: ArrayLike): Record {\n const result: Record = {};\n for (const v of Object.values(arr)) {\n result[v] = true;\n }\n return result;\n}\n\n\n/** \n * {0}, {1}, {2}형태로 포맷해주는 함수\n */\n\ndeclare global {\n interface String {\n format(...args: (string | number)[]): string;\n }\n}\nString.prototype.format = function (...args: (string | number)[]) {\n return this.replace(/{(\\d+)}/g, function (match, number) {\n return (typeof args[number] != 'undefined') ? args[number].toString() : match;\n });\n};\n\n\nexport function hexToRgb(hex: string): { r: number, g: number, b: number } | null {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16)\n } : null;\n}\n\nexport function isBrightColor(color: string): boolean {\n const cv = unwrap(hexToRgb(color));\n if ((cv.r * 0.299 + cv.g * 0.587 + cv.b * 0.114) > 140) {\n return true;\n } else {\n return false;\n }\n}\n\n/**\n * 게임내에서 지원하는 color type만 선택할 수 있도록 해주는 함수\n * @param {string} color #AAAAAA 또는 AAAAAA 형태로 작성된 RGB hex color string\n * @returns {string}\n */\nexport function convColorValue(color: string): string {\n if (color.charAt(0) == '#') {\n color = color.substr(1);\n }\n color = color.toUpperCase();\n\n const colorBase = new Set([\n '000080', '0000FF', '008000', '008080', '00BFFF', '00FF00', '00FFFF', '20B2AA',\n '2E8B57', '483D8B', '6495ED', '7B68EE', '7CFC00', '7FFFD4', '800000', '800080',\n '808000', '87CEEB', 'A0522D', 'A9A9A9', 'AFEEEE', 'BA55D3', 'E0FFFF', 'F5F5DC',\n 'FF0000', 'FF00FF', 'FF6347', 'FFA500', 'FFC0CB', 'FFD700', 'FFDAB9', 'FFFF00',\n 'FFFFFF'\n ]);\n\n if (!colorBase.has(color)) {\n return '000000';\n }\n\n return color;\n}\n\n\nexport function numberWithCommas(x: number): string {\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n}\n\n//linkify가 불러와 있어야함\ndeclare global {\n interface Window {\n linkifyStr: (v: string, k?: Record) => string;\n }\n}\nexport function linkifyStrWithOpt(text: string): string {\n return window.linkifyStr(text, {});\n}\n\n/**\n * 단순한 Template 함수. <%변수명%>으로 template 가능\n * @see https://github.com/krasimir/absurd/blob/master/lib/processors/html/helpers/TemplateEngine.js\n * @param {string} html \n * @param {object} options \n * @returns {string}\n */\nexport function TemplateEngine(html: string, options: Record = {}): string {\n const re = /<%(.+?)%>/g;\n const reExp = /(^( )?(var|if|for|else|switch|case|break|{|}|;))(.*)?/g;\n const code = ['with(obj) { var r=[];\\n'];\n let cursor = 0;\n const add = function (line: string, js?: boolean) {\n js ? code.push(line.match(reExp) ? line + '\\n' : 'r.push(' + line + ');\\n') :\n code.push(line != '' ? 'r.push(\"' + line.replace(/\"/g, '\\\\\"') + '\");\\n' : '');\n return add;\n }\n options.e = escapeHtml;\n options.linkifyStr = linkifyStrWithOpt;\n for (; ;) {\n const match = re.exec(html);\n if (!match) {\n break;\n }\n add(html.slice(cursor, match.index))(match[1], true);\n cursor = match.index + match[0].length;\n }\n add(html.substr(cursor, html.length - cursor));\n\n code.push('return r.join(\"\"); }');\n const compiledCode = code.join('').replace(/[\\r\\t\\n]/g, ' ');\n try {\n return new Function('obj', compiledCode).apply(options, [options]);\n } catch (err) {\n console.error(\"'\" + err.message + \"'\", \" in \\n\\nCode:\\n\", code, \"\\n\");\n throw err;\n }\n}\n\nexport function getIconPath(imgsvr: boolean | 1 | 0, picture: string): string {\n // ../d_shared/common_path.js 필요\n if (!imgsvr) {\n return window.pathConfig.sharedIcon + '/' + picture;\n } else {\n return window.pathConfig.root + '/d_pic/' + picture;\n }\n}\n\nexport function activeFlip($obj?: JQuery): void {\n let $result: JQuery;\n if ($obj === undefined) {\n $result = $('img[data-flip]');\n } else {\n $result = $obj.find('img[data-flip]');\n }\n\n $result.each(function () {\n activeFlipItem($(this));\n });\n\n}\n\nexport function combineObject(item: V[], columnList: K[]): Record {\n const newItem: Record = {};\n for (const columnIdx in columnList) {\n const columnName = columnList[columnIdx];\n newItem[columnName] = item[columnIdx];\n }\n return newItem;\n}\n\nexport function combineArray(array: V[][], columnList: K[]): Record[] {\n const result: Record[] = [];\n for (const key of array.keys()) {\n const item = array[key];\n result[key] = combineObject(item, columnList);\n }\n return result;\n}\n\nexport function activeFlipItem($img: JQuery): void {\n const imageList = [];\n imageList.push($img.attr('src'));\n $.each($img.data('flip').split(','), function (idx, value) {\n value = $.trim(value);\n if (!value) {\n return true;\n }\n imageList.push(value);\n });\n if (imageList.length <= 1) {\n return;\n }\n $img.data('computed_flip_array', imageList);\n $img.data('computed_flip_idx', 0);\n\n $img.click(function () {\n const arr = $img.data('computed_flip_array');\n let idx = $img.data('computed_flip_idx');\n idx = (idx + 1) % (arr.length);\n $img.attr('src', arr[idx]);\n $img.data('computed_flip_idx', idx);\n });\n $img.css('cursor', 'pointer');\n}\n\n\n\nexport function errUnknown(): void {\n alert('작업을 실패했습니다.');\n}\n\n\n\nexport function errUnknownToast(): void {\n jQuery.toast({\n title: '에러!',\n content: '작업을 실패했습니다.',\n type: 'danger',\n delay: 5000\n });\n}\n\nexport function quickReject(errMsg: string): JQuery.Promise {\n if (errMsg === undefined) {\n errMsg = '작업을 실패했습니다.';\n }\n const deferred = $.Deferred();\n void deferred.reject(errMsg);\n return deferred.promise();\n}\n\nexport function nl2br(text: string): string {\n return text.replace(/\\n/g, \"
\");\n}\n/*\nfunction br2nl (text) { \n return text.replace(/<\\s*\\/?br\\s*[\\/]?>/gi, '\\n');\n}\n*/\n\nexport function getNpcColor(npcType: number): 'cyan' | 'skyblue' | null {\n if (npcType >= 2) {\n return 'cyan';\n }\n if (npcType == 1) {\n return 'skyblue';\n }\n return null;\n}\n\nexport function initTooltip($obj?: JQuery): void {\n if ($obj === undefined) {\n $obj = $('.obj_tooltip');\n } else if (!$obj.hasClass('obj_tooltip')) {\n $obj = $obj.find('.obj_tooltip');\n }\n console.log($obj);\n\n $obj.each(function () {\n const $target = $(this);\n\n if ($target.data('installHandler')) {\n return;\n }\n $target.data('installHandler', true);\n\n $target.mouseover(function () {\n const $objTooltip = $(this);\n if ($objTooltip.data('setObjTooltip')) {\n return;\n }\n\n let tooltipClassText = $objTooltip.data('tooltip-class');\n if (!tooltipClassText) {\n tooltipClassText = '';\n }\n const template = '
'\n .format(tooltipClassText);\n\n $objTooltip.tooltip({\n title: function () {\n return $.trim($(this).find('.tooltiptext').html());\n },\n template: template,\n html: true\n }).tooltip('show');\n\n $objTooltip.data('setObjTooltip', true);\n });\n });\n}","import { isArray, isString, isNumber, isBoolean } from \"lodash\";\n\nexport function convertFormData(values: Record): FormData{\n const formData = new FormData();\n\n const simpleConv = (v: unknown):string=>{\n if(isString(v)){\n return v;\n }\n if(isNumber(v)){\n return v.toString();\n }\n if(isBoolean(v)){\n return v?'true':'false';\n }\n throw new TypeError('지원하지 않는 formData Type');\n }\n\n for(const [key, value] of Object.entries(values)){\n if(isArray(value)){\n const arrKey = `${key}[]`;\n for(const subValue of value){\n formData.append(arrKey, simpleConv(subValue));\n }\n continue;\n }\n\n formData.append(key, simpleConv(value));\n }\n\n return formData;\n}","import { Nullable, NotNullExpected } from \"../util\";\n\n\nexport function unwrap_any(result: Nullable): T {\n if (result === null || result === undefined) {\n throw new NotNullExpected();\n }\n return result as T;\n}\n","import axios from 'axios';\r\nimport $ from 'jquery';\r\nimport { range } from 'lodash';\r\nimport { DateTime } from 'luxon';\r\nimport { errUnknown, getNpcColor } from './common_legacy';\r\nimport { InvalidResponse } from './defs';\r\nimport { unwrap } from './util';\r\nimport { convertFormData } from './util/convertFormData';\r\nimport { unwrap_any } from \"./util/unwrap_any\";\r\n\r\ndeclare const maxChiefTurn: number;\r\n\r\ntype TurnDOMObj = {\r\n turnTime: JQuery,\r\n turnPad: JQuery,\r\n turnText: JQuery\r\n};\r\n\r\ntype TableObj = {\r\n btns: JQuery;\r\n [key: number]: {\r\n officerLevelText: JQuery,\r\n name: JQuery,\r\n turn: TurnDOMObj[],\r\n }\r\n}\r\n\r\ntype ChiefResponse = InvalidResponse | {\r\n result: true,\r\n date: string,\r\n nationTurnBrief: {\r\n name:string|null,\r\n turnTime:string|null,\r\n officerLevelText:string,\r\n npcType:number,\r\n turn:string\r\n }[],\r\n isChief: boolean,\r\n turnTerm: number\r\n}\r\n\r\nlet filledChiefList: Record = {};\r\nlet chiefTableObj: TableObj = undefined as unknown as TableObj;//TODO: 매우 지저분하다. class 기반으로 고치던가 할 것\r\n\r\n/*\r\nfunction clearTable() {\r\n $('.chiefLevelText').html('-');\r\n $('.chiefTurnTime, .chiefTurnText, .chiefName').html(' ');\r\n}\r\n*/\r\n\r\nfunction genChiefTableObj(): TableObj {\r\n const objTable: TableObj = {\r\n btns: $('#turnPush,#turnPull,#setCommand')\r\n };\r\n\r\n for (const chiefIdx of range(5, 13)) {\r\n const $plate = $('#chief_{0}'.format(chiefIdx));\r\n const $officerLevelText = $plate.find('.chiefLevelText');\r\n const $name = $plate.find('.chiefName');\r\n const turn: TurnDOMObj[] = [];\r\n for (const turnIdx of range(maxChiefTurn)) {\r\n const $turn = $plate.find('.turn{0}'.format(turnIdx));\r\n const $turnTime = $turn.find('.chiefTurnTime');\r\n const $turnPad = $turn.find('.chiefTurnPad');\r\n const $turnText = $turn.find('.chiefTurnText');\r\n turn.push({ turnTime: $turnTime, turnPad: $turnPad, turnText: $turnText });\r\n }\r\n objTable[chiefIdx] = {\r\n officerLevelText: $officerLevelText,\r\n name: $name,\r\n turn: turn\r\n };\r\n }\r\n\r\n return objTable;\r\n}\r\n\r\n\r\n\r\nfunction clearChief(chiefIdx: number): void {\r\n const $plate = $('#chief_{0}'.format(chiefIdx));\r\n $plate.find('.chiefLevelText').html('-');\r\n $plate.find('.chiefTurnTime, .chiefTurnText, .chiefName').html(' ');\r\n}\r\n\r\nasync function reloadTable() {\r\n\r\n const data: ChiefResponse = await (async () => {\r\n try {\r\n const response = await axios({\r\n url: 'j_getChiefTurn.php',\r\n responseType: 'json'\r\n });\r\n return response.data;\r\n }\r\n catch (e) {\r\n console.error(e);\r\n errUnknown();\r\n }\r\n })();\r\n\r\n if (!data.result) {\r\n alert(data.reason);\r\n return;\r\n }\r\n const turnTerm = data.turnTerm;\r\n const tmpFilledChiefList:Record = {};\r\n\r\n if (data.isChief) {\r\n chiefTableObj.btns.css('visibility', 'visible');\r\n }\r\n else {\r\n chiefTableObj.btns.css('visibility', 'hidden');\r\n }\r\n $.each(data.nationTurnBrief, function (chiefIdx, chiefInfo) {\r\n tmpFilledChiefList[chiefIdx] = true;\r\n filledChiefList[chiefIdx] = true;\r\n\r\n const plateObj = chiefTableObj[chiefIdx];\r\n if (chiefInfo.name) {\r\n const $name = $('{0}'.format(chiefInfo.name));\r\n const nameColor = getNpcColor(chiefInfo.npcType);\r\n if (nameColor) {\r\n $name.css('color', nameColor);\r\n }\r\n plateObj.name.empty().append($name);\r\n }\r\n else {\r\n plateObj.name.html('');\r\n }\r\n\r\n plateObj.officerLevelText.text(chiefInfo.officerLevelText);\r\n\r\n let turnTimeObj: DateTime|undefined;\r\n\r\n if (chiefInfo.turnTime) {\r\n turnTimeObj = DateTime.fromSQL(chiefInfo.turnTime);\r\n }\r\n\r\n const turnList = plateObj.turn;\r\n $.each(chiefInfo.turn, function (turnIdx, turnText) {\r\n if (turnTimeObj) {\r\n turnList[turnIdx].turnTime.text(turnTimeObj.toFormat('HH:mm'));\r\n }\r\n else {\r\n turnList[turnIdx].turnTime.text('');\r\n }\r\n\r\n turnList[turnIdx].turnText.html(turnText).css('font-size', '13px');\r\n const oWidth = unwrap(turnList[turnIdx].turnPad.innerWidth());\r\n const iWidth = unwrap(turnList[turnIdx].turnText.outerWidth());\r\n if (iWidth > oWidth * 0.95) {\r\n const newFontSize = 13 * oWidth / iWidth * 0.9;\r\n turnList[turnIdx].turnText.css('font-size', '{0}px'.format(newFontSize));\r\n }\r\n if (turnTimeObj) {\r\n turnTimeObj = turnTimeObj.plus({'minutes': turnTerm});\r\n }\r\n\r\n });\r\n });\r\n\r\n for (const idx of range(5, 13)) {\r\n if (idx in tmpFilledChiefList) {\r\n continue;\r\n }\r\n if (idx in filledChiefList) {\r\n clearChief(idx);\r\n }\r\n }\r\n filledChiefList = tmpFilledChiefList;\r\n}\r\n\r\nasync function reserveTurn(turnList: number[], command: string) {\r\n console.log(turnList, command);\r\n try{\r\n\r\n const response = await axios({\r\n url: 'j_set_chief_command.php',\r\n responseType:'json',\r\n method: 'post',\r\n data: convertFormData({\r\n turnList,\r\n action: command\r\n })\r\n });\r\n\r\n const data: InvalidResponse = response.data;\r\n\r\n if (!data.result) {\r\n alert(data.reason);\r\n }\r\n await reloadTable();\r\n }\r\n catch(e){\r\n console.error(e);\r\n errUnknown();\r\n }\r\n}\r\n\r\nasync function pushTurn(turnCnt: number) {\r\n try {\r\n const response = await axios({\r\n url: 'j_chief_turn.php',\r\n responseType: 'json',\r\n method: 'post',\r\n data: convertFormData({\r\n amount: turnCnt\r\n })\r\n });\r\n const data = response.data;\r\n if (!data.result) {\r\n alert(data.reason);\r\n }\r\n await reloadTable();\r\n }\r\n catch (e) {\r\n console.error(e);\r\n errUnknown();\r\n }\r\n}\r\n\r\njQuery(function ($) {\r\n\r\n chiefTableObj = genChiefTableObj();\r\n void reloadTable();\r\n $('#reloadTable').on('click', reloadTable);\r\n $('#setCommand').on('click', function () {\r\n const turnList = unwrap_any($('#chiefTurnSelector').val()).map(function (v) { return parseInt(v); });\r\n const $command = $('#chiefCommandList option:selected');\r\n if ($command.data('reqarg')) {\r\n $.redirect(\r\n \"b_processing.php\", {\r\n command: unwrap($command.val()),\r\n turnList: turnList.join('_'),\r\n is_chief: true\r\n }, \"GET\");\r\n }\r\n else {\r\n void reserveTurn(turnList, unwrap_any($command.val()));\r\n }\r\n return false;\r\n });\r\n\r\n $('#turnPush').on('click', function () {\r\n void pushTurn(1);\r\n return false;\r\n });\r\n\r\n $('#turnPull').on('click', function () {\r\n void pushTurn(-1);\r\n return false;\r\n });\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\tid: moduleId,\n\t\tloaded: false,\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// Flag the module as loaded\n\tmodule.loaded = true;\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","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 310;","// 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\t310: 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 = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\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\tfor(moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) var result = runtime(__webpack_require__);\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[chunkIds[i]] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkhidche_lib\"] = self[\"webpackChunkhidche_lib\"] || [];\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, [216], () => (__webpack_require__(1329)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","NotNullExpected","message","this","name","Error","result","errUnknown","alert","getNpcColor","npcType","String","prototype","format","args","replace","match","number","toString","convertFormData","values","formData","FormData","simpleConv","v","TypeError","Object","entries","key","value","arrKey","subValue","append","unwrap_any","filledChiefList","chiefTableObj","undefined","clearChief","chiefIdx","$plate","find","html","reloadTable","url","responseType","response","data","console","error","reason","turnTerm","tmpFilledChiefList","isChief","btns","css","nationTurnBrief","chiefInfo","turnTimeObj","plateObj","$name","nameColor","empty","officerLevelText","text","turnTime","turnList","turn","turnIdx","turnText","toFormat","oWidth","turnPad","innerWidth","iWidth","outerWidth","newFontSize","plus","idx","command","log","method","action","pushTurn","turnCnt","amount","jQuery","$","objTable","$officerLevelText","maxChiefTurn","$turn","$turnTime","$turnPad","$turnText","push","genChiefTableObj","on","val","map","parseInt","$command","redirect","join","is_chief","reserveTurn","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","id","loaded","__webpack_modules__","call","m","O","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","keys","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","g","globalThis","Function","e","window","obj","prop","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","forEach","bind","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/hwe/js/common.js b/hwe/js/common.js index f252c86d..58b498fd 100644 --- a/hwe/js/common.js +++ b/hwe/js/common.js @@ -1,2 +1,2 @@ -(()=>{"use strict";var t,n={9003:(t,n,r)=>{function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function o(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}function i(t,n){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:"";return o(this,c),v(l(t=e.call(this,n)),"name","RuntimeError"),t.message=n,t}return n=c,(r=[{key:"toString",value:function(){return this.message?this.name+": "+this.message:this.name}}])&&i(n.prototype,r),c}(f(Error))),y=r(9755),b=r.n(y),m=(r(3734),r(9669));function g(t,n){(null==n||n>t.length)&&(n=t.length);for(var r=0,e=new Array(n);r":">",'"':""","'":"'","/":"/","`":"`","=":"="},function(t){return String(t).replace(/[&<>"'`=/]/g,(function(t){return F[t]}))});function O(t){for(var n=t.length,r=0,e=0;e');r.text(n),r.appendTo(t("head"))}})),window.escapeHtml=j,window.isInt=function(t){return+t===t&&!(t%1)},window.mb_strwidth=O,window.mb_strimwidth=function(t,n,r){for(var e=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",o=O(e),i=t.length,a=0,u=[],c=n;cr){u.push(e);break}}return u.join("")},window.convertDictById=function(t){for(var n={},r=0,e=Object.values(t);r140},window.convColorValue=function(t){return"#"==t.charAt(0)&&(t=t.substr(1)),t=t.toUpperCase(),new Set(["000080","0000FF","008000","008080","00BFFF","00FF00","00FFFF","20B2AA","2E8B57","483D8B","6495ED","7B68EE","7CFC00","7FFFD4","800000","800080","808000","87CEEB","A0522D","A9A9A9","AFEEEE","BA55D3","E0FFFF","F5F5DC","FF0000","FF00FF","FF6347","FFA500","FFC0CB","FFD700","FFDAB9","FFFF00","FFFFFF"]).has(t)?t:"000000"},window.numberWithCommas=function(t){return t.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")},window.linkifyStrWithOpt=_,window.TemplateEngine=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=/<%(.+?)%>/g,e=/(^( )?(var|if|for|else|switch|case|break|{|}|;))(.*)?/g,o=0,i=function t(n,r){return u+=r?n.match(e)?n+"\n":"r.push("+n+");\n":""!=n?'r.push("'+n.replace(/"/g,'\\"')+'");\n':"",t};for(n.e=j,n.linkifyStr=_;;){var a=r.exec(t);if(!a)break;i(t.slice(o,a.index))(a[1],!0),o=a.index+a[0].length}i(t.substr(o,t.length-o));var u="with(obj) { var r=[];\n";u=(u+'return r.join(""); }').replace(/[\r\t\n]/g," ");try{return new Function("obj",u).apply(n,[n])}catch(t){throw console.error("'"+t.message+"'"," in \n\nCode:\n",u,"\n"),t}},window.getIconPath=function(t,n){return t?window.pathConfig.root+"/d_pic/"+n:window.pathConfig.sharedIcon+"/"+n},window.activeFlip=x,window.combineObject=A,window.combineArray=function(t,n){var r,e=[],o=function(t,n){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,n){if(t){if("string"==typeof t)return g(t,n);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?g(t,n):void 0}}(t))||n&&t&&"number"==typeof t.length){r&&(t=r);var e=0,o=function(){};return{s:o,n:function(){return e>=t.length?{done:!0}:{done:!1,value:t[e++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}(t.keys());try{for(o.s();!(r=o.n()).done;){var i=r.value,a=t[i];e[i]=A(a,n)}}catch(t){o.e(t)}finally{o.f()}return e},window.activeFlipItem=C,window.errUnknown=function(){alert("작업을 실패했습니다.")},window.errUnknownToast=function(){b().toast({title:"에러!",content:"작업을 실패했습니다.",type:"danger",delay:5e3})},window.quickReject=function(t){void 0===t&&(t="작업을 실패했습니다.");var n=$.Deferred();return n.reject(t),n.promise()},window.nl2br=function(t){return t.replace(/\n/g,"
")},window.getNpcColor=function(t){return t>=2?"cyan":1==t?"skyblue":null},window.initTooltip=E}},r={};function e(t){var o=r[t];if(void 0!==o)return o.exports;var i=r[t]={id:t,loaded:!1,exports:{}};return n[t].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}e.m=n,t=[],e.O=(n,r,o,i)=>{if(!r){var a=1/0;for(f=0;f=i)&&Object.keys(e.O).every((t=>e.O[t](r[c])))?r.splice(c--,1):(u=!1,i0&&t[f-1][2]>i;f--)t[f]=t[f-1];t[f]=[r,o,i]},e.n=t=>{var n=t&&t.__esModule?()=>t.default:()=>t;return e.d(n,{a:n}),n},e.d=(t,n)=>{for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),e.o=(t,n)=>Object.prototype.hasOwnProperty.call(t,n),e.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},e.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),e.j=592,(()=>{var t={592:0};e.O.j=n=>0===t[n];var n=(n,r)=>{var o,i,[a,u,c]=r,l=0;for(o in u)e.o(u,o)&&(e.m[o]=u[o]);if(c)var f=c(e);for(n&&n(r);le(9003)));o=e.O(o)})(); +(()=>{"use strict";var t,n={9003:(t,n,r)=>{function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function o(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}function i(t,n){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:"";return o(this,c),v(l(t=e.call(this,n)),"name","RuntimeError"),t.message=n,t}return n=c,(r=[{key:"toString",value:function(){return this.message?this.name+": "+this.message:this.name}}])&&i(n.prototype,r),c}(f(Error))),y=r(9755),b=r.n(y),m=(r(3734),r(9669));function g(t,n){(null==n||n>t.length)&&(n=t.length);for(var r=0,e=new Array(n);r":">",'"':""","'":"'","/":"/","`":"`","=":"="},function(t){return String(t).replace(/[&<>"'`=/]/g,(function(t){return F[t]}))});function O(t){for(var n=t.length,r=0,e=0;e');r.text(n),r.appendTo(t("head"))}})),window.escapeHtml=j,window.isInt=function(t){return+t===t&&!(t%1)},window.mb_strwidth=O,window.mb_strimwidth=function(t,n,r){for(var e=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",o=O(e),i=t.length,a=0,u=[],c=n;cr){u.push(e);break}}return u.join("")},window.convertDictById=function(t){for(var n={},r=0,e=Object.values(t);r140},window.convColorValue=function(t){return"#"==t.charAt(0)&&(t=t.substr(1)),t=t.toUpperCase(),new Set(["000080","0000FF","008000","008080","00BFFF","00FF00","00FFFF","20B2AA","2E8B57","483D8B","6495ED","7B68EE","7CFC00","7FFFD4","800000","800080","808000","87CEEB","A0522D","A9A9A9","AFEEEE","BA55D3","E0FFFF","F5F5DC","FF0000","FF00FF","FF6347","FFA500","FFC0CB","FFD700","FFDAB9","FFFF00","FFFFFF"]).has(t)?t:"000000"},window.numberWithCommas=function(t){return t.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")},window.linkifyStrWithOpt=_,window.TemplateEngine=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=/<%(.+?)%>/g,e=/(^( )?(var|if|for|else|switch|case|break|{|}|;))(.*)?/g,o=["with(obj) { var r=[];\n"],i=0,a=function t(n,r){return r?o.push(n.match(e)?n+"\n":"r.push("+n+");\n"):o.push(""!=n?'r.push("'+n.replace(/"/g,'\\"')+'");\n':""),t};for(n.e=j,n.linkifyStr=_;;){var u=r.exec(t);if(!u)break;a(t.slice(i,u.index))(u[1],!0),i=u.index+u[0].length}a(t.substr(i,t.length-i)),o.push('return r.join(""); }');var c=o.join("").replace(/[\r\t\n]/g," ");try{return new Function("obj",c).apply(n,[n])}catch(t){throw console.error("'"+t.message+"'"," in \n\nCode:\n",o,"\n"),t}},window.getIconPath=function(t,n){return t?window.pathConfig.root+"/d_pic/"+n:window.pathConfig.sharedIcon+"/"+n},window.activeFlip=x,window.combineObject=A,window.combineArray=function(t,n){var r,e=[],o=function(t,n){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,n){if(t){if("string"==typeof t)return g(t,n);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?g(t,n):void 0}}(t))||n&&t&&"number"==typeof t.length){r&&(t=r);var e=0,o=function(){};return{s:o,n:function(){return e>=t.length?{done:!0}:{done:!1,value:t[e++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}(t.keys());try{for(o.s();!(r=o.n()).done;){var i=r.value,a=t[i];e[i]=A(a,n)}}catch(t){o.e(t)}finally{o.f()}return e},window.activeFlipItem=C,window.errUnknown=function(){alert("작업을 실패했습니다.")},window.errUnknownToast=function(){b().toast({title:"에러!",content:"작업을 실패했습니다.",type:"danger",delay:5e3})},window.quickReject=function(t){void 0===t&&(t="작업을 실패했습니다.");var n=$.Deferred();return n.reject(t),n.promise()},window.nl2br=function(t){return t.replace(/\n/g,"
")},window.getNpcColor=function(t){return t>=2?"cyan":1==t?"skyblue":null},window.initTooltip=E}},r={};function e(t){var o=r[t];if(void 0!==o)return o.exports;var i=r[t]={id:t,loaded:!1,exports:{}};return n[t].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}e.m=n,t=[],e.O=(n,r,o,i)=>{if(!r){var a=1/0;for(f=0;f=i)&&Object.keys(e.O).every((t=>e.O[t](r[c])))?r.splice(c--,1):(u=!1,i0&&t[f-1][2]>i;f--)t[f]=t[f-1];t[f]=[r,o,i]},e.n=t=>{var n=t&&t.__esModule?()=>t.default:()=>t;return e.d(n,{a:n}),n},e.d=(t,n)=>{for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),e.o=(t,n)=>Object.prototype.hasOwnProperty.call(t,n),e.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},e.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),e.j=592,(()=>{var t={592:0};e.O.j=n=>0===t[n];var n=(n,r)=>{var o,i,[a,u,c]=r,l=0;for(o in u)e.o(u,o)&&(e.m[o]=u[o]);if(c)var f=c(e);for(n&&n(r);le(9003)));o=e.O(o)})(); //# sourceMappingURL=common.js.map \ No newline at end of file diff --git a/hwe/js/common.js.map b/hwe/js/common.js.map index 0f2f9074..62cc5f64 100644 --- a/hwe/js/common.js.map +++ b/hwe/js/common.js.map @@ -1 +1 @@ -{"version":3,"file":"common.js","mappings":"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","sources":["webpack://hidche_lib/webpack/runtime/chunk loaded","webpack://hidche_lib/./hwe/ts/util.ts","webpack://hidche_lib/./hwe/ts/common_legacy.ts","webpack://hidche_lib/./hwe/ts/common_deprecated.ts","webpack://hidche_lib/webpack/bootstrap","webpack://hidche_lib/webpack/runtime/compat get default export","webpack://hidche_lib/webpack/runtime/define property getters","webpack://hidche_lib/webpack/runtime/global","webpack://hidche_lib/webpack/runtime/hasOwnProperty shorthand","webpack://hidche_lib/webpack/runtime/make namespace object","webpack://hidche_lib/webpack/runtime/node module decorator","webpack://hidche_lib/webpack/runtime/runtimeId","webpack://hidche_lib/webpack/runtime/jsonp chunk loading","webpack://hidche_lib/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (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, fn, priority] = deferred[i];\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((key) => (__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};","type ErrType = { new(msg?: string): T }\nexport type Nullable = T | null | undefined\n\nexport class RuntimeError extends Error {\n public name = 'RuntimeError';\n constructor(public message: string = '') {\n super(message);\n }\n toString(): string {\n if (this.message) {\n return this.name + ': ' + this.message;\n }\n else {\n return this.name;\n }\n }\n}\n\nexport class NotNullExpected extends RuntimeError {\n public name = 'NotNullExpected';\n}\n\nexport function unwrap(result: Nullable): T {\n if (result === null || result === undefined) {\n throw new NotNullExpected();\n }\n return result;\n}\n\nexport function unwrap_err(result: Nullable, errType: ErrType, errMsg?: string): T {\n if (result === null || result === undefined) {\n throw new errType(errMsg);\n }\n return result;\n}","import { unwrap } from \"./util\";\n\nimport jQuery from \"jquery\";\nimport 'bootstrap';\n\nimport axios from \"axios\";\n\naxios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';\n//TODO: X-Requested-With 믿지 말자.\n\n/** \n * <>& 등을 html에서도 그대로 보이도록 escape주는 함수\n * @see https://stackoverflow.com/questions/24816/escaping-html-strings-with-jquery\n */\nexport const escapeHtml = (() => {\n const entityMap: { [v: string]: string } = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/',\n '`': '`',\n '=': '='\n };\n\n return function (string: string) {\n return String(string).replace(/[&<>\"'`=/]/g, function (s: string) {\n return entityMap[s];\n });\n }\n})();\n\n/**\n * 변수가 정수인지 확인하는 함수\n * @param {*} n 정수인지 확인하기 위한 인자\n * @return {boolean} 정수인지 여부\n */\nexport function isInt(n: unknown): n is number {\n const v = n as number;\n return +v === v && !(v % 1);\n}\n\n\n//https://gist.github.com/demouth/3217440\n/**\n * mb_strwidth\n * @see http://php.net/manual/function.mb-strwidth.php\n */\nexport function mb_strwidth(str: string): number {\n const l = str.length;\n let length = 0;\n for (let i = 0; i < l; i++) {\n const c = str.charCodeAt(i);\n if (0x0000 <= c && c <= 0x0019) {\n length += 0;\n } else if (0x0020 <= c && c <= 0x1FFF) {\n length += 1;\n } else if (0x2000 <= c && c <= 0xFF60) {\n length += 2;\n } else if (0xFF61 <= c && c <= 0xFF9F) {\n length += 1;\n } else if (0xFFA0 <= c) {\n length += 2;\n }\n }\n return length;\n}\n\n\n/**\n * mb_strimwidth\n * @param String\n * @param int\n * @param int\n * @param String\n * @return String\n * @see http://www.php.net/manual/function.mb-strimwidth.php\n */\nexport function mb_strimwidth(str: string, start: number, width: number, trimmarker = ''): string {\n const trimmakerWidth = mb_strwidth(trimmarker);\n const l = str.length;\n let trimmedLength = 0;\n const trimmedStr: string[] = [];\n for (let i = start; i < l; i++) {\n const c = str.charAt(i);\n const charWidth = mb_strwidth(c);\n const next = str.charAt(i + 1);\n const nextWidth = mb_strwidth(next);\n\n trimmedLength += charWidth;\n trimmedStr.push(c);\n if (trimmedLength + trimmakerWidth + nextWidth > width) {\n trimmedStr.push(trimmarker);\n break;\n }\n }\n return trimmedStr.join('');\n}\n\n/**\n * object의 array를 id를 key로 삼는 object로 재 변환\n */\nexport function convertDictById(arr: ArrayLike): Record {\n const result: Record = {};\n for (const v of Object.values(arr)) {\n result[v.id] = v;\n }\n return result;\n}\n\n/**\n * array를 set 형태의 object로 변환\n */\nexport function convertSet(arr: ArrayLike): Record {\n const result: Record = {};\n for (const v of Object.values(arr)) {\n result[v] = true;\n }\n return result;\n}\n\n\n/** \n * {0}, {1}, {2}형태로 포맷해주는 함수\n */\n\ndeclare global {\n interface String {\n format(...args: (string | number)[]): string;\n }\n}\nString.prototype.format = function (...args: (string | number)[]) {\n return this.replace(/{(\\d+)}/g, function (match, number) {\n return (typeof args[number] != 'undefined') ? args[number].toString() : match;\n });\n};\n\n\nexport function hexToRgb(hex: string): { r: number, g: number, b: number } | null {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16)\n } : null;\n}\n\nexport function isBrightColor(color: string): boolean {\n const cv = unwrap(hexToRgb(color));\n if ((cv.r * 0.299 + cv.g * 0.587 + cv.b * 0.114) > 140) {\n return true;\n } else {\n return false;\n }\n}\n\n/**\n * 게임내에서 지원하는 color type만 선택할 수 있도록 해주는 함수\n * @param {string} color #AAAAAA 또는 AAAAAA 형태로 작성된 RGB hex color string\n * @returns {string}\n */\nexport function convColorValue(color: string): string {\n if (color.charAt(0) == '#') {\n color = color.substr(1);\n }\n color = color.toUpperCase();\n\n const colorBase = new Set([\n '000080', '0000FF', '008000', '008080', '00BFFF', '00FF00', '00FFFF', '20B2AA',\n '2E8B57', '483D8B', '6495ED', '7B68EE', '7CFC00', '7FFFD4', '800000', '800080',\n '808000', '87CEEB', 'A0522D', 'A9A9A9', 'AFEEEE', 'BA55D3', 'E0FFFF', 'F5F5DC',\n 'FF0000', 'FF00FF', 'FF6347', 'FFA500', 'FFC0CB', 'FFD700', 'FFDAB9', 'FFFF00',\n 'FFFFFF'\n ]);\n\n if (!colorBase.has(color)) {\n return '000000';\n }\n\n return color;\n}\n\n\nexport function numberWithCommas(x: number): string {\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n}\n\n//linkify가 불러와 있어야함\ndeclare global {\n interface Window {\n linkifyStr: (v: string, k?: Record) => string;\n }\n}\nexport function linkifyStrWithOpt(text: string): string {\n return window.linkifyStr(text, {});\n}\n\n/**\n * 단순한 Template 함수. <%변수명%>으로 template 가능\n * @see https://github.com/krasimir/absurd/blob/master/lib/processors/html/helpers/TemplateEngine.js\n * @param {string} html \n * @param {object} options \n * @returns {string}\n */\nexport function TemplateEngine(html: string, options: Record = {}): string {\n const re = /<%(.+?)%>/g;\n const reExp = /(^( )?(var|if|for|else|switch|case|break|{|}|;))(.*)?/g;\n let cursor = 0;\n const add = function (line: string, js?: boolean) {\n js ? (code += line.match(reExp) ? line + '\\n' : 'r.push(' + line + ');\\n') :\n (code += line != '' ? 'r.push(\"' + line.replace(/\"/g, '\\\\\"') + '\");\\n' : '');\n return add;\n }\n options.e = escapeHtml;\n options.linkifyStr = linkifyStrWithOpt;\n for (; ;) {\n const match = re.exec(html);\n if (!match) {\n break;\n }\n add(html.slice(cursor, match.index))(match[1], true);\n cursor = match.index + match[0].length;\n }\n add(html.substr(cursor, html.length - cursor));\n\n let code = 'with(obj) { var r=[];\\n';\n code = (code + 'return r.join(\"\"); }').replace(/[\\r\\t\\n]/g, ' ');\n try {\n return new Function('obj', code).apply(options, [options]);\n } catch (err) {\n console.error(\"'\" + err.message + \"'\", \" in \\n\\nCode:\\n\", code, \"\\n\");\n throw err;\n }\n}\n\nexport function getIconPath(imgsvr: boolean | 1 | 0, picture: string): string {\n // ../d_shared/common_path.js 필요\n if (!imgsvr) {\n return window.pathConfig.sharedIcon + '/' + picture;\n } else {\n return window.pathConfig.root + '/d_pic/' + picture;\n }\n}\n\nexport function activeFlip($obj?: JQuery): void {\n let $result: JQuery;\n if ($obj === undefined) {\n $result = $('img[data-flip]');\n } else {\n $result = $obj.find('img[data-flip]');\n }\n\n $result.each(function () {\n activeFlipItem($(this));\n });\n\n}\n\nexport function combineObject(item: V[], columnList: K[]): Record {\n const newItem: Record = {};\n for (const columnIdx in columnList) {\n const columnName = columnList[columnIdx];\n newItem[columnName] = item[columnIdx];\n }\n return newItem;\n}\n\nexport function combineArray(array: V[][], columnList: K[]): Record[] {\n const result: Record[] = [];\n for (const key of array.keys()) {\n const item = array[key];\n result[key] = combineObject(item, columnList);\n }\n return result;\n}\n\nexport function activeFlipItem($img: JQuery): void {\n const imageList = [];\n imageList.push($img.attr('src'));\n $.each($img.data('flip').split(','), function (idx, value) {\n value = $.trim(value);\n if (!value) {\n return true;\n }\n imageList.push(value);\n });\n if (imageList.length <= 1) {\n return;\n }\n $img.data('computed_flip_array', imageList);\n $img.data('computed_flip_idx', 0);\n\n $img.click(function () {\n const arr = $img.data('computed_flip_array');\n let idx = $img.data('computed_flip_idx');\n idx = (idx + 1) % (arr.length);\n $img.attr('src', arr[idx]);\n $img.data('computed_flip_idx', idx);\n });\n $img.css('cursor', 'pointer');\n}\n\n\n\nexport function errUnknown(): void {\n alert('작업을 실패했습니다.');\n}\n\n\n\nexport function errUnknownToast(): void {\n jQuery.toast({\n title: '에러!',\n content: '작업을 실패했습니다.',\n type: 'danger',\n delay: 5000\n });\n}\n\nexport function quickReject(errMsg: string): JQuery.Promise {\n if (errMsg === undefined) {\n errMsg = '작업을 실패했습니다.';\n }\n const deferred = $.Deferred();\n void deferred.reject(errMsg);\n return deferred.promise();\n}\n\nexport function nl2br(text: string): string {\n return text.replace(/\\n/g, \"
\");\n}\n/*\nfunction br2nl (text) { \n return text.replace(/<\\s*\\/?br\\s*[\\/]?>/gi, '\\n');\n}\n*/\n\nexport function getNpcColor(npcType: number): 'cyan' | 'skyblue' | null {\n if (npcType >= 2) {\n return 'cyan';\n }\n if (npcType == 1) {\n return 'skyblue';\n }\n return null;\n}\n\nexport function initTooltip($obj?: JQuery): void {\n if ($obj === undefined) {\n $obj = $('.obj_tooltip');\n } else if (!$obj.hasClass('obj_tooltip')) {\n $obj = $obj.find('.obj_tooltip');\n }\n console.log($obj);\n\n $obj.each(function () {\n const $target = $(this);\n\n if ($target.data('installHandler')) {\n return;\n }\n $target.data('installHandler', true);\n\n $target.mouseover(function () {\n const $objTooltip = $(this);\n if ($objTooltip.data('setObjTooltip')) {\n return;\n }\n\n let tooltipClassText = $objTooltip.data('tooltip-class');\n if (!tooltipClassText) {\n tooltipClassText = '';\n }\n const template = '
'\n .format(tooltipClassText);\n\n $objTooltip.tooltip({\n title: function () {\n return $.trim($(this).find('.tooltiptext').html());\n },\n template: template,\n html: true\n }).tooltip('show');\n\n $objTooltip.data('setObjTooltip', true);\n });\n });\n}","import { activeFlip, escapeHtml, isInt, mb_strwidth, mb_strimwidth, convertDictById, convertSet, hexToRgb, isBrightColor, convColorValue, numberWithCommas, linkifyStrWithOpt, TemplateEngine, getIconPath, combineObject, combineArray, activeFlipItem, errUnknown, errUnknownToast, quickReject, nl2br, getNpcColor, initTooltip } from \"./common_legacy\";\nimport jQuery from \"jquery\";\nwindow.jQuery = jQuery;\nwindow.$ = jQuery;\n\njQuery(function ($) {\n initTooltip();\n activeFlip();\n\n const customCSS = localStorage.getItem('sam_customCSS');\n if (customCSS) {\n const $style = $('');\n $style.text(customCSS);\n $style.appendTo($('head'));\n }\n});\n\ndeclare global {\n interface Window {\n $: typeof jQuery;\n jQuery: typeof jQuery;\n /** @deprecated Module 사용할 것 */\n escapeHtml: typeof escapeHtml;\n /** @deprecated Module 사용할 것 */\n isInt: typeof isInt;\n /** @deprecated Module 사용할 것 */\n mb_strwidth: typeof mb_strwidth;\n /** @deprecated Module 사용할 것 */\n mb_strimwidth: typeof mb_strimwidth;\n /** @deprecated Module 사용할 것 */\n convertDictById: typeof convertDictById;\n /** @deprecated Module 사용할 것 */\n convertSet: typeof convertSet;\n /** @deprecated Module 사용할 것 */\n hexToRgb: typeof hexToRgb;\n /** @deprecated Module 사용할 것 */\n isBrightColor: typeof isBrightColor;\n /** @deprecated Module 사용할 것 */\n convColorValue: typeof convColorValue;\n /** @deprecated Module 사용할 것 */\n numberWithCommas: typeof numberWithCommas;\n /** @deprecated Module 사용할 것 */\n linkifyStrWithOpt: typeof linkifyStrWithOpt;\n /** @deprecated Module 사용할 것 */\n TemplateEngine: typeof TemplateEngine;\n /** @deprecated Module 사용할 것 */\n getIconPath: typeof getIconPath;\n /** @deprecated Module 사용할 것 */\n activeFlip: typeof activeFlip;\n /** @deprecated Module 사용할 것 */\n combineObject: typeof combineObject;\n /** @deprecated Module 사용할 것 */\n combineArray: typeof combineArray;\n /** @deprecated Module 사용할 것 */\n activeFlipItem: typeof activeFlipItem;\n /** @deprecated Module 사용할 것 */\n errUnknown: typeof errUnknown;\n /** @deprecated Module 사용할 것 */\n errUnknownToast: typeof errUnknownToast;\n /** @deprecated Module 사용할 것 */\n quickReject: typeof quickReject;\n /** @deprecated Module 사용할 것 */\n nl2br: typeof nl2br;\n /** @deprecated Module 사용할 것 */\n getNpcColor: typeof getNpcColor;\n /** @deprecated Module 사용할 것 */\n initTooltip: typeof initTooltip;\n }\n}\n\nwindow.escapeHtml = escapeHtml;\nwindow.isInt = isInt;\nwindow.mb_strwidth = mb_strwidth;\nwindow.mb_strimwidth = mb_strimwidth;\nwindow.convertDictById = convertDictById;\nwindow.convertSet = convertSet;\nwindow.hexToRgb = hexToRgb;\nwindow.isBrightColor = isBrightColor;\nwindow.convColorValue = convColorValue;\nwindow.numberWithCommas = numberWithCommas;\nwindow.linkifyStrWithOpt = linkifyStrWithOpt;\nwindow.TemplateEngine = TemplateEngine;\nwindow.getIconPath = getIconPath;\nwindow.activeFlip = activeFlip;\nwindow.combineObject = combineObject;\nwindow.combineArray = combineArray;\nwindow.activeFlipItem = activeFlipItem;\nwindow.errUnknown = errUnknown;\nwindow.errUnknownToast = errUnknownToast;\nwindow.quickReject = quickReject;\nwindow.nl2br = nl2br;\nwindow.getNpcColor = getNpcColor;\nwindow.initTooltip = initTooltip;","// 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\tid: moduleId,\n\t\tloaded: false,\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// Flag the module as loaded\n\tmodule.loaded = true;\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","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 592;","// 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\t592: 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 = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\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\tfor(moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) var result = runtime(__webpack_require__);\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[chunkIds[i]] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkhidche_lib\"] = self[\"webpackChunkhidche_lib\"] || [];\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, [216], () => (__webpack_require__(9003)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","NotNullExpected","message","this","name","Error","entityMap","escapeHtml","string","String","replace","s","mb_strwidth","str","l","length","i","c","charCodeAt","hexToRgb","hex","result","exec","r","parseInt","g","b","linkifyStrWithOpt","text","window","linkifyStr","activeFlip","$obj","undefined","$","find","each","activeFlipItem","combineObject","item","columnList","newItem","columnIdx","$img","imageList","push","attr","data","split","idx","value","trim","click","arr","css","initTooltip","hasClass","console","log","$target","mouseover","$objTooltip","tooltipClassText","template","format","tooltip","title","html","prototype","args","match","number","toString","jQuery","customCSS","localStorage","getItem","$style","appendTo","isInt","n","mb_strimwidth","start","width","trimmarker","trimmakerWidth","trimmedLength","trimmedStr","charAt","charWidth","next","nextWidth","join","convertDictById","Object","values","v","id","convertSet","isBrightColor","color","cv","unwrap","convColorValue","substr","toUpperCase","Set","has","numberWithCommas","x","TemplateEngine","options","re","reExp","cursor","add","line","js","code","e","slice","index","Function","apply","err","error","getIconPath","imgsvr","picture","pathConfig","root","sharedIcon","combineArray","array","keys","key","errUnknown","alert","errUnknownToast","content","type","delay","quickReject","errMsg","Deferred","reject","promise","nl2br","getNpcColor","npcType","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","loaded","__webpack_modules__","call","m","O","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","every","splice","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","globalThis","obj","prop","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","forEach","bind","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"common.js","mappings":"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","sources":["webpack://hidche_lib/webpack/runtime/chunk loaded","webpack://hidche_lib/./hwe/ts/util.ts","webpack://hidche_lib/./hwe/ts/common_legacy.ts","webpack://hidche_lib/./hwe/ts/common_deprecated.ts","webpack://hidche_lib/webpack/bootstrap","webpack://hidche_lib/webpack/runtime/compat get default export","webpack://hidche_lib/webpack/runtime/define property getters","webpack://hidche_lib/webpack/runtime/global","webpack://hidche_lib/webpack/runtime/hasOwnProperty shorthand","webpack://hidche_lib/webpack/runtime/make namespace object","webpack://hidche_lib/webpack/runtime/node module decorator","webpack://hidche_lib/webpack/runtime/runtimeId","webpack://hidche_lib/webpack/runtime/jsonp chunk loading","webpack://hidche_lib/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (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, fn, priority] = deferred[i];\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((key) => (__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};","type ErrType = { new(msg?: string): T }\nexport type Nullable = T | null | undefined\n\nexport class RuntimeError extends Error {\n public name = 'RuntimeError';\n constructor(public message: string = '') {\n super(message);\n }\n toString(): string {\n if (this.message) {\n return this.name + ': ' + this.message;\n }\n else {\n return this.name;\n }\n }\n}\n\nexport class NotNullExpected extends RuntimeError {\n public name = 'NotNullExpected';\n}\n\nexport function unwrap(result: Nullable): T {\n if (result === null || result === undefined) {\n throw new NotNullExpected();\n }\n return result;\n}\n\nexport function unwrap_err(result: Nullable, errType: ErrType, errMsg?: string): T {\n if (result === null || result === undefined) {\n throw new errType(errMsg);\n }\n return result;\n}","import { unwrap } from \"./util\";\n\nimport jQuery from \"jquery\";\nimport 'bootstrap';\n\nimport axios from \"axios\";\n\naxios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';\n//TODO: X-Requested-With 믿지 말자.\n\n/** \n * <>& 등을 html에서도 그대로 보이도록 escape주는 함수\n * @see https://stackoverflow.com/questions/24816/escaping-html-strings-with-jquery\n */\nexport const escapeHtml = (() => {\n const entityMap: { [v: string]: string } = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/',\n '`': '`',\n '=': '='\n };\n\n return function (string: string) {\n return String(string).replace(/[&<>\"'`=/]/g, function (s: string) {\n return entityMap[s];\n });\n }\n})();\n\n/**\n * 변수가 정수인지 확인하는 함수\n * @param {*} n 정수인지 확인하기 위한 인자\n * @return {boolean} 정수인지 여부\n */\nexport function isInt(n: unknown): n is number {\n const v = n as number;\n return +v === v && !(v % 1);\n}\n\n\n//https://gist.github.com/demouth/3217440\n/**\n * mb_strwidth\n * @see http://php.net/manual/function.mb-strwidth.php\n */\nexport function mb_strwidth(str: string): number {\n const l = str.length;\n let length = 0;\n for (let i = 0; i < l; i++) {\n const c = str.charCodeAt(i);\n if (0x0000 <= c && c <= 0x0019) {\n length += 0;\n } else if (0x0020 <= c && c <= 0x1FFF) {\n length += 1;\n } else if (0x2000 <= c && c <= 0xFF60) {\n length += 2;\n } else if (0xFF61 <= c && c <= 0xFF9F) {\n length += 1;\n } else if (0xFFA0 <= c) {\n length += 2;\n }\n }\n return length;\n}\n\n\n/**\n * mb_strimwidth\n * @param String\n * @param int\n * @param int\n * @param String\n * @return String\n * @see http://www.php.net/manual/function.mb-strimwidth.php\n */\nexport function mb_strimwidth(str: string, start: number, width: number, trimmarker = ''): string {\n const trimmakerWidth = mb_strwidth(trimmarker);\n const l = str.length;\n let trimmedLength = 0;\n const trimmedStr: string[] = [];\n for (let i = start; i < l; i++) {\n const c = str.charAt(i);\n const charWidth = mb_strwidth(c);\n const next = str.charAt(i + 1);\n const nextWidth = mb_strwidth(next);\n\n trimmedLength += charWidth;\n trimmedStr.push(c);\n if (trimmedLength + trimmakerWidth + nextWidth > width) {\n trimmedStr.push(trimmarker);\n break;\n }\n }\n return trimmedStr.join('');\n}\n\n/**\n * object의 array를 id를 key로 삼는 object로 재 변환\n */\nexport function convertDictById(arr: ArrayLike): Record {\n const result: Record = {};\n for (const v of Object.values(arr)) {\n result[v.id] = v;\n }\n return result;\n}\n\n/**\n * array를 set 형태의 object로 변환\n */\nexport function convertSet(arr: ArrayLike): Record {\n const result: Record = {};\n for (const v of Object.values(arr)) {\n result[v] = true;\n }\n return result;\n}\n\n\n/** \n * {0}, {1}, {2}형태로 포맷해주는 함수\n */\n\ndeclare global {\n interface String {\n format(...args: (string | number)[]): string;\n }\n}\nString.prototype.format = function (...args: (string | number)[]) {\n return this.replace(/{(\\d+)}/g, function (match, number) {\n return (typeof args[number] != 'undefined') ? args[number].toString() : match;\n });\n};\n\n\nexport function hexToRgb(hex: string): { r: number, g: number, b: number } | null {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16)\n } : null;\n}\n\nexport function isBrightColor(color: string): boolean {\n const cv = unwrap(hexToRgb(color));\n if ((cv.r * 0.299 + cv.g * 0.587 + cv.b * 0.114) > 140) {\n return true;\n } else {\n return false;\n }\n}\n\n/**\n * 게임내에서 지원하는 color type만 선택할 수 있도록 해주는 함수\n * @param {string} color #AAAAAA 또는 AAAAAA 형태로 작성된 RGB hex color string\n * @returns {string}\n */\nexport function convColorValue(color: string): string {\n if (color.charAt(0) == '#') {\n color = color.substr(1);\n }\n color = color.toUpperCase();\n\n const colorBase = new Set([\n '000080', '0000FF', '008000', '008080', '00BFFF', '00FF00', '00FFFF', '20B2AA',\n '2E8B57', '483D8B', '6495ED', '7B68EE', '7CFC00', '7FFFD4', '800000', '800080',\n '808000', '87CEEB', 'A0522D', 'A9A9A9', 'AFEEEE', 'BA55D3', 'E0FFFF', 'F5F5DC',\n 'FF0000', 'FF00FF', 'FF6347', 'FFA500', 'FFC0CB', 'FFD700', 'FFDAB9', 'FFFF00',\n 'FFFFFF'\n ]);\n\n if (!colorBase.has(color)) {\n return '000000';\n }\n\n return color;\n}\n\n\nexport function numberWithCommas(x: number): string {\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n}\n\n//linkify가 불러와 있어야함\ndeclare global {\n interface Window {\n linkifyStr: (v: string, k?: Record) => string;\n }\n}\nexport function linkifyStrWithOpt(text: string): string {\n return window.linkifyStr(text, {});\n}\n\n/**\n * 단순한 Template 함수. <%변수명%>으로 template 가능\n * @see https://github.com/krasimir/absurd/blob/master/lib/processors/html/helpers/TemplateEngine.js\n * @param {string} html \n * @param {object} options \n * @returns {string}\n */\nexport function TemplateEngine(html: string, options: Record = {}): string {\n const re = /<%(.+?)%>/g;\n const reExp = /(^( )?(var|if|for|else|switch|case|break|{|}|;))(.*)?/g;\n const code = ['with(obj) { var r=[];\\n'];\n let cursor = 0;\n const add = function (line: string, js?: boolean) {\n js ? code.push(line.match(reExp) ? line + '\\n' : 'r.push(' + line + ');\\n') :\n code.push(line != '' ? 'r.push(\"' + line.replace(/\"/g, '\\\\\"') + '\");\\n' : '');\n return add;\n }\n options.e = escapeHtml;\n options.linkifyStr = linkifyStrWithOpt;\n for (; ;) {\n const match = re.exec(html);\n if (!match) {\n break;\n }\n add(html.slice(cursor, match.index))(match[1], true);\n cursor = match.index + match[0].length;\n }\n add(html.substr(cursor, html.length - cursor));\n\n code.push('return r.join(\"\"); }');\n const compiledCode = code.join('').replace(/[\\r\\t\\n]/g, ' ');\n try {\n return new Function('obj', compiledCode).apply(options, [options]);\n } catch (err) {\n console.error(\"'\" + err.message + \"'\", \" in \\n\\nCode:\\n\", code, \"\\n\");\n throw err;\n }\n}\n\nexport function getIconPath(imgsvr: boolean | 1 | 0, picture: string): string {\n // ../d_shared/common_path.js 필요\n if (!imgsvr) {\n return window.pathConfig.sharedIcon + '/' + picture;\n } else {\n return window.pathConfig.root + '/d_pic/' + picture;\n }\n}\n\nexport function activeFlip($obj?: JQuery): void {\n let $result: JQuery;\n if ($obj === undefined) {\n $result = $('img[data-flip]');\n } else {\n $result = $obj.find('img[data-flip]');\n }\n\n $result.each(function () {\n activeFlipItem($(this));\n });\n\n}\n\nexport function combineObject(item: V[], columnList: K[]): Record {\n const newItem: Record = {};\n for (const columnIdx in columnList) {\n const columnName = columnList[columnIdx];\n newItem[columnName] = item[columnIdx];\n }\n return newItem;\n}\n\nexport function combineArray(array: V[][], columnList: K[]): Record[] {\n const result: Record[] = [];\n for (const key of array.keys()) {\n const item = array[key];\n result[key] = combineObject(item, columnList);\n }\n return result;\n}\n\nexport function activeFlipItem($img: JQuery): void {\n const imageList = [];\n imageList.push($img.attr('src'));\n $.each($img.data('flip').split(','), function (idx, value) {\n value = $.trim(value);\n if (!value) {\n return true;\n }\n imageList.push(value);\n });\n if (imageList.length <= 1) {\n return;\n }\n $img.data('computed_flip_array', imageList);\n $img.data('computed_flip_idx', 0);\n\n $img.click(function () {\n const arr = $img.data('computed_flip_array');\n let idx = $img.data('computed_flip_idx');\n idx = (idx + 1) % (arr.length);\n $img.attr('src', arr[idx]);\n $img.data('computed_flip_idx', idx);\n });\n $img.css('cursor', 'pointer');\n}\n\n\n\nexport function errUnknown(): void {\n alert('작업을 실패했습니다.');\n}\n\n\n\nexport function errUnknownToast(): void {\n jQuery.toast({\n title: '에러!',\n content: '작업을 실패했습니다.',\n type: 'danger',\n delay: 5000\n });\n}\n\nexport function quickReject(errMsg: string): JQuery.Promise {\n if (errMsg === undefined) {\n errMsg = '작업을 실패했습니다.';\n }\n const deferred = $.Deferred();\n void deferred.reject(errMsg);\n return deferred.promise();\n}\n\nexport function nl2br(text: string): string {\n return text.replace(/\\n/g, \"
\");\n}\n/*\nfunction br2nl (text) { \n return text.replace(/<\\s*\\/?br\\s*[\\/]?>/gi, '\\n');\n}\n*/\n\nexport function getNpcColor(npcType: number): 'cyan' | 'skyblue' | null {\n if (npcType >= 2) {\n return 'cyan';\n }\n if (npcType == 1) {\n return 'skyblue';\n }\n return null;\n}\n\nexport function initTooltip($obj?: JQuery): void {\n if ($obj === undefined) {\n $obj = $('.obj_tooltip');\n } else if (!$obj.hasClass('obj_tooltip')) {\n $obj = $obj.find('.obj_tooltip');\n }\n console.log($obj);\n\n $obj.each(function () {\n const $target = $(this);\n\n if ($target.data('installHandler')) {\n return;\n }\n $target.data('installHandler', true);\n\n $target.mouseover(function () {\n const $objTooltip = $(this);\n if ($objTooltip.data('setObjTooltip')) {\n return;\n }\n\n let tooltipClassText = $objTooltip.data('tooltip-class');\n if (!tooltipClassText) {\n tooltipClassText = '';\n }\n const template = '
'\n .format(tooltipClassText);\n\n $objTooltip.tooltip({\n title: function () {\n return $.trim($(this).find('.tooltiptext').html());\n },\n template: template,\n html: true\n }).tooltip('show');\n\n $objTooltip.data('setObjTooltip', true);\n });\n });\n}","import { activeFlip, escapeHtml, isInt, mb_strwidth, mb_strimwidth, convertDictById, convertSet, hexToRgb, isBrightColor, convColorValue, numberWithCommas, linkifyStrWithOpt, TemplateEngine, getIconPath, combineObject, combineArray, activeFlipItem, errUnknown, errUnknownToast, quickReject, nl2br, getNpcColor, initTooltip } from \"./common_legacy\";\nimport jQuery from \"jquery\";\nwindow.jQuery = jQuery;\nwindow.$ = jQuery;\n\njQuery(function ($) {\n initTooltip();\n activeFlip();\n\n const customCSS = localStorage.getItem('sam_customCSS');\n if (customCSS) {\n const $style = $('');\n $style.text(customCSS);\n $style.appendTo($('head'));\n }\n});\n\ndeclare global {\n interface Window {\n $: typeof jQuery;\n jQuery: typeof jQuery;\n /** @deprecated Module 사용할 것 */\n escapeHtml: typeof escapeHtml;\n /** @deprecated Module 사용할 것 */\n isInt: typeof isInt;\n /** @deprecated Module 사용할 것 */\n mb_strwidth: typeof mb_strwidth;\n /** @deprecated Module 사용할 것 */\n mb_strimwidth: typeof mb_strimwidth;\n /** @deprecated Module 사용할 것 */\n convertDictById: typeof convertDictById;\n /** @deprecated Module 사용할 것 */\n convertSet: typeof convertSet;\n /** @deprecated Module 사용할 것 */\n hexToRgb: typeof hexToRgb;\n /** @deprecated Module 사용할 것 */\n isBrightColor: typeof isBrightColor;\n /** @deprecated Module 사용할 것 */\n convColorValue: typeof convColorValue;\n /** @deprecated Module 사용할 것 */\n numberWithCommas: typeof numberWithCommas;\n /** @deprecated Module 사용할 것 */\n linkifyStrWithOpt: typeof linkifyStrWithOpt;\n /** @deprecated Module 사용할 것 */\n TemplateEngine: typeof TemplateEngine;\n /** @deprecated Module 사용할 것 */\n getIconPath: typeof getIconPath;\n /** @deprecated Module 사용할 것 */\n activeFlip: typeof activeFlip;\n /** @deprecated Module 사용할 것 */\n combineObject: typeof combineObject;\n /** @deprecated Module 사용할 것 */\n combineArray: typeof combineArray;\n /** @deprecated Module 사용할 것 */\n activeFlipItem: typeof activeFlipItem;\n /** @deprecated Module 사용할 것 */\n errUnknown: typeof errUnknown;\n /** @deprecated Module 사용할 것 */\n errUnknownToast: typeof errUnknownToast;\n /** @deprecated Module 사용할 것 */\n quickReject: typeof quickReject;\n /** @deprecated Module 사용할 것 */\n nl2br: typeof nl2br;\n /** @deprecated Module 사용할 것 */\n getNpcColor: typeof getNpcColor;\n /** @deprecated Module 사용할 것 */\n initTooltip: typeof initTooltip;\n }\n}\n\nwindow.escapeHtml = escapeHtml;\nwindow.isInt = isInt;\nwindow.mb_strwidth = mb_strwidth;\nwindow.mb_strimwidth = mb_strimwidth;\nwindow.convertDictById = convertDictById;\nwindow.convertSet = convertSet;\nwindow.hexToRgb = hexToRgb;\nwindow.isBrightColor = isBrightColor;\nwindow.convColorValue = convColorValue;\nwindow.numberWithCommas = numberWithCommas;\nwindow.linkifyStrWithOpt = linkifyStrWithOpt;\nwindow.TemplateEngine = TemplateEngine;\nwindow.getIconPath = getIconPath;\nwindow.activeFlip = activeFlip;\nwindow.combineObject = combineObject;\nwindow.combineArray = combineArray;\nwindow.activeFlipItem = activeFlipItem;\nwindow.errUnknown = errUnknown;\nwindow.errUnknownToast = errUnknownToast;\nwindow.quickReject = quickReject;\nwindow.nl2br = nl2br;\nwindow.getNpcColor = getNpcColor;\nwindow.initTooltip = initTooltip;","// 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\tid: moduleId,\n\t\tloaded: false,\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// Flag the module as loaded\n\tmodule.loaded = true;\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","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 592;","// 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\t592: 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 = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\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\tfor(moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) var result = runtime(__webpack_require__);\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[chunkIds[i]] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkhidche_lib\"] = self[\"webpackChunkhidche_lib\"] || [];\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, [216], () => (__webpack_require__(9003)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","NotNullExpected","message","this","name","Error","entityMap","escapeHtml","string","String","replace","s","mb_strwidth","str","l","length","i","c","charCodeAt","hexToRgb","hex","result","exec","r","parseInt","g","b","linkifyStrWithOpt","text","window","linkifyStr","activeFlip","$obj","undefined","$","find","each","activeFlipItem","combineObject","item","columnList","newItem","columnIdx","$img","imageList","push","attr","data","split","idx","value","trim","click","arr","css","initTooltip","hasClass","console","log","$target","mouseover","$objTooltip","tooltipClassText","template","format","tooltip","title","html","prototype","args","match","number","toString","jQuery","customCSS","localStorage","getItem","$style","appendTo","isInt","n","mb_strimwidth","start","width","trimmarker","trimmakerWidth","trimmedLength","trimmedStr","charAt","charWidth","next","nextWidth","join","convertDictById","Object","values","v","id","convertSet","isBrightColor","color","cv","unwrap","convColorValue","substr","toUpperCase","Set","has","numberWithCommas","x","TemplateEngine","options","re","reExp","code","cursor","add","line","js","e","slice","index","compiledCode","Function","apply","err","error","getIconPath","imgsvr","picture","pathConfig","root","sharedIcon","combineArray","array","keys","key","errUnknown","alert","errUnknownToast","content","type","delay","quickReject","errMsg","Deferred","reject","promise","nl2br","getNpcColor","npcType","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","loaded","__webpack_modules__","call","m","O","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","every","splice","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","globalThis","obj","prop","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","forEach","bind","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/hwe/js/install_db.js b/hwe/js/install_db.js index bc218464..6f5bc31b 100644 --- a/hwe/js/install_db.js +++ b/hwe/js/install_db.js @@ -1,2 +1,2 @@ -(()=>{"use strict";var r,e={835:(r,e,t)=>{t(5666),t(1058),t(1539),t(8674);var n=t(9669),a=t.n(n),i=t(9755),o=t.n(i),u=t(1469),l=t.n(u),s=(t(9826),t(7941),t(715)),c=(t(1038),t(8783),t(2526),t(1817),t(2165),t(6992),t(3948),t(7037)),f=t.n(c);function d(r,e){(null==e||e>r.length)&&(e=r.length);for(var t=0,n=new Array(e);t=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,u=!1;return{s:function(){t=t.call(r)},n:function(){var r=t.next();return o=r.done,r},e:function(r){u=!0,i=r},f:function(){try{o||null==t.return||t.return()}finally{if(u)throw i}}}}(r);try{for(n.s();!(e=n.n()).done;){var a=e.value,i=a.name,o=a.value;if(!f()(i))throw new TypeError("".concat(i," is not string"));if(!f()(o))throw new TypeError("".concat(o," is not string"));if(""!==i&&"[]"!==i)if(i.length>2&&"[]"==i.slice(-2)){var u=i.slice(0,-2);u in t?t[u].push(o):t[u]=[o]}else t[i]=o}}catch(r){n.e(r)}finally{n.f()}return t}function v(r,e,t,n,a,i,o){try{var u=r[i](o),l=u.value}catch(r){return void t(r)}u.done?e(l):Promise.resolve(l).then(n,a)}function h(r,e){for(var t=0;t".concat(c,""));f.addClass("invalid-feedback"),"checkbox"===s.prop("type")?f.insertAfter(s.parent("label")):f.insertAfter(s)}n.inputs.each((function(){this.name in t||this.classList.add("is-valid")}))}));case 3:if(void 0!==(t=r.sent)){r.next=6;break}return r.abrupt("return",void 0);case 6:return this.clearErrMsg(),this.inputs.addClass("is-valid"),r.abrupt("return",t);case 9:case"end":return r.stop()}}),r,this)})),a=function(){var r=this,e=arguments;return new Promise((function(t,a){var i=n.apply(r,e);function o(r){v(i,t,a,o,u,"next",r)}function u(r){v(i,t,a,o,u,"throw",r)}o(void 0)}))},function(){return a.apply(this,arguments)})}])&&h(e.prototype,t),r}(),b=t(1584),m=t.n(b),g=t(1763),w=t.n(g);function j(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=x(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var n=0,a=function(){};return{s:a,n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,u=!1;return{s:function(){t=t.call(r)},n:function(){var r=t.next();return o=r.done,r},e:function(r){u=!0,i=r},f:function(){try{o||null==t.return||t.return()}finally{if(u)throw i}}}}function x(r,e){if(r){if("string"==typeof r)return k(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?k(r,e):void 0}}function k(r,e){(null==e||e>r.length)&&(e=r.length);for(var t=0,n=new Array(e);t=65535)||new Error("올바른 포트 범위가 아닙니다.")}},db_id:{type:"string",required:!0},db_pw:{type:"string",required:!0},db_name:{type:"string",required:!0}},(n=new y(e("#db_form"),t)).installChangeHandler(),e("#db_form").on("submit",function(){var r=_(regeneratorRuntime.mark((function r(e){var t,i,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return e.preventDefault(),r.next=3,n.validate();case 3:if(void 0!==(t=r.sent)){r.next=6;break}return r.abrupt("return");case 6:return r.prev=6,r.next=9,a()({url:"j_install_db.php",method:"post",responseType:"json",data:O(t)});case 9:o=r.sent,i=o.data,r.next=17;break;case 13:return r.prev=13,r.t0=r.catch(6),alert(r.t0),r.abrupt("return",!1);case 17:if(i.result){r.next=20;break}return alert("에러: ".concat(i.reason)),r.abrupt("return",!1);case 20:alert("DB.php가 생성되었습니다."),location.href="install.php";case 22:case"end":return r.stop()}}),r,null,[[6,13]])})));return function(e){return r.apply(this,arguments)}}());case 5:case"end":return r.stop()}}),r)})));return function(e){return r.apply(this,arguments)}}())}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var i=t[r]={id:r,loaded:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}n.m=e,r=[],n.O=(e,t,a,i)=>{if(!t){var o=1/0;for(c=0;c=i)&&Object.keys(n.O).every((r=>n.O[r](t[l])))?t.splice(l--,1):(u=!1,i0&&r[c-1][2]>i;c--)r[c]=r[c-1];r[c]=[t,a,i]},n.n=r=>{var e=r&&r.__esModule?()=>r.default:()=>r;return n.d(e,{a:e}),e},n.d=(r,e)=>{for(var t in e)n.o(e,t)&&!n.o(r,t)&&Object.defineProperty(r,t,{enumerable:!0,get:e[t]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(r){if("object"==typeof window)return window}}(),n.o=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),n.r=r=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})},n.nmd=r=>(r.paths=[],r.children||(r.children=[]),r),n.j=788,(()=>{var r={788:0};n.O.j=e=>0===r[e];var e=(e,t)=>{var a,i,[o,u,l]=t,s=0;for(a in u)n.o(u,a)&&(n.m[a]=u[a]);if(l)var c=l(n);for(e&&e(t);sn(835)));a=n.O(a)})(); +(()=>{"use strict";var r,e={1835:(r,e,t)=>{t(5666),t(1058),t(1539),t(8674);var n=t(9669),a=t.n(n),i=t(9755),o=t.n(i),u=t(1469),l=t.n(u),s=(t(9826),t(7941),t(5715)),c=(t(1038),t(8783),t(2526),t(1817),t(2165),t(6992),t(3948),t(7037)),f=t.n(c);function d(r,e){(null==e||e>r.length)&&(e=r.length);for(var t=0,n=new Array(e);t=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,u=!1;return{s:function(){t=t.call(r)},n:function(){var r=t.next();return o=r.done,r},e:function(r){u=!0,i=r},f:function(){try{o||null==t.return||t.return()}finally{if(u)throw i}}}}(r);try{for(n.s();!(e=n.n()).done;){var a=e.value,i=a.name,o=a.value;if(!f()(i))throw new TypeError("".concat(i," is not string"));if(!f()(o))throw new TypeError("".concat(o," is not string"));if(""!==i&&"[]"!==i)if(i.length>2&&"[]"==i.slice(-2)){var u=i.slice(0,-2);u in t?t[u].push(o):t[u]=[o]}else t[i]=o}}catch(r){n.e(r)}finally{n.f()}return t}function v(r,e,t,n,a,i,o){try{var u=r[i](o),l=u.value}catch(r){return void t(r)}u.done?e(l):Promise.resolve(l).then(n,a)}function h(r,e){for(var t=0;t".concat(c,""));f.addClass("invalid-feedback"),"checkbox"===s.prop("type")?f.insertAfter(s.parent("label")):f.insertAfter(s)}n.inputs.each((function(){this.name in t||this.classList.add("is-valid")}))}));case 3:if(void 0!==(t=r.sent)){r.next=6;break}return r.abrupt("return",void 0);case 6:return this.clearErrMsg(),this.inputs.addClass("is-valid"),r.abrupt("return",t);case 9:case"end":return r.stop()}}),r,this)})),a=function(){var r=this,e=arguments;return new Promise((function(t,a){var i=n.apply(r,e);function o(r){v(i,t,a,o,u,"next",r)}function u(r){v(i,t,a,o,u,"throw",r)}o(void 0)}))},function(){return a.apply(this,arguments)})}])&&h(e.prototype,t),r}(),b=t(1584),m=t.n(b),g=t(1763),w=t.n(g);function j(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=x(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var n=0,a=function(){};return{s:a,n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,u=!1;return{s:function(){t=t.call(r)},n:function(){var r=t.next();return o=r.done,r},e:function(r){u=!0,i=r},f:function(){try{o||null==t.return||t.return()}finally{if(u)throw i}}}}function x(r,e){if(r){if("string"==typeof r)return k(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?k(r,e):void 0}}function k(r,e){(null==e||e>r.length)&&(e=r.length);for(var t=0,n=new Array(e);t=65535)||new Error("올바른 포트 범위가 아닙니다.")}},db_id:{type:"string",required:!0},db_pw:{type:"string",required:!0},db_name:{type:"string",required:!0}},(n=new y(e("#db_form"),t)).installChangeHandler(),e("#db_form").on("submit",function(){var r=_(regeneratorRuntime.mark((function r(e){var t,i,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return e.preventDefault(),r.next=3,n.validate();case 3:if(void 0!==(t=r.sent)){r.next=6;break}return r.abrupt("return");case 6:return r.prev=6,r.next=9,a()({url:"j_install_db.php",method:"post",responseType:"json",data:O(t)});case 9:o=r.sent,i=o.data,r.next=17;break;case 13:return r.prev=13,r.t0=r.catch(6),alert(r.t0),r.abrupt("return",!1);case 17:if(i.result){r.next=20;break}return alert("에러: ".concat(i.reason)),r.abrupt("return",!1);case 20:alert("DB.php가 생성되었습니다."),location.href="install.php";case 22:case"end":return r.stop()}}),r,null,[[6,13]])})));return function(e){return r.apply(this,arguments)}}());case 5:case"end":return r.stop()}}),r)})));return function(e){return r.apply(this,arguments)}}())}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var i=t[r]={id:r,loaded:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}n.m=e,r=[],n.O=(e,t,a,i)=>{if(!t){var o=1/0;for(c=0;c=i)&&Object.keys(n.O).every((r=>n.O[r](t[l])))?t.splice(l--,1):(u=!1,i0&&r[c-1][2]>i;c--)r[c]=r[c-1];r[c]=[t,a,i]},n.n=r=>{var e=r&&r.__esModule?()=>r.default:()=>r;return n.d(e,{a:e}),e},n.d=(r,e)=>{for(var t in e)n.o(e,t)&&!n.o(r,t)&&Object.defineProperty(r,t,{enumerable:!0,get:e[t]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(r){if("object"==typeof window)return window}}(),n.o=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),n.r=r=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})},n.nmd=r=>(r.paths=[],r.children||(r.children=[]),r),n.j=788,(()=>{var r={788:0};n.O.j=e=>0===r[e];var e=(e,t)=>{var a,i,[o,u,l]=t,s=0;for(a in u)n.o(u,a)&&(n.m[a]=u[a]);if(l)var c=l(n);for(e&&e(t);sn(1835)));a=n.O(a)})(); //# sourceMappingURL=install_db.js.map \ No newline at end of file diff --git a/hwe/js/install_db.js.map b/hwe/js/install_db.js.map index 8400def8..3afe0ad8 100644 --- a/hwe/js/install_db.js.map +++ b/hwe/js/install_db.js.map @@ -1 +1 @@ -{"version":3,"file":"install_db.js","mappings":"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","sources":["webpack://hidche_lib/webpack/runtime/chunk loaded","webpack://hidche_lib/./hwe/ts/util/mergeKVArray.ts","webpack://hidche_lib/./hwe/ts/util/jqValidateForm.ts","webpack://hidche_lib/./hwe/ts/util/convertFormData.ts","webpack://hidche_lib/./hwe/ts/install_db.ts","webpack://hidche_lib/./hwe/ts/util/setAxiosXMLHttpRequest.ts","webpack://hidche_lib/webpack/bootstrap","webpack://hidche_lib/webpack/runtime/compat get default export","webpack://hidche_lib/webpack/runtime/define property getters","webpack://hidche_lib/webpack/runtime/global","webpack://hidche_lib/webpack/runtime/hasOwnProperty shorthand","webpack://hidche_lib/webpack/runtime/make namespace object","webpack://hidche_lib/webpack/runtime/node module decorator","webpack://hidche_lib/webpack/runtime/runtimeId","webpack://hidche_lib/webpack/runtime/jsonp chunk loading","webpack://hidche_lib/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (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, fn, priority] = deferred[i];\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((key) => (__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};","import { isString } from \"lodash\";\n\ninterface NameValuePair {\n name: string,\n value: string\n}\n\nexport function mergeKVArray(array : NameValuePair[]):Record{\n const result:Record = {};\n\n for(const {name, value} of array){\n if(!isString(name)){\n throw new TypeError(`${name} is not string`);\n }\n if(!isString(value)){\n throw new TypeError(`${value} is not string`);\n }\n\n if(name === '' || name === '[]'){\n continue;\n }\n if(name.length > 2 && name.slice(-2) == '[]'){\n const keyHead = name.slice(0, -2);\n if(!(keyHead in result)){\n result[keyHead] = [value];\n }\n else{\n (result[keyHead] as string[]).push(value);\n }\n continue;\n }\n result[name] = value;\n }\n return result;\n}","import Schema, { Rules, Values } from \"async-validator\";\nimport { isArray } from \"lodash\";\nimport { mergeKVArray } from \"./mergeKVArray\";\nimport $ from 'jquery';\n\nexport class JQValidateForm {\n public readonly validator: Schema;\n public readonly inputs: JQuery;\n constructor(public readonly target: JQuery, public readonly rule: Rules) {\n this.validator = new Schema(rule);\n this.inputs = target.find('input');\n }\n\n public clearErrMsg():void {\n this.inputs.removeClass('is-invalid');\n this.inputs.removeClass('is-valid');\n this.target.find('.invalid-feedback').detach();\n }\n\n public installChangeHandler():this{\n this.inputs.on('change', ()=>{\n void this.validate();\n });\n return this;\n }\n\n public async validate(): Promise {\n const rawValues = mergeKVArray(this.inputs.serializeArray());\n const validateResult = await this.validator.validate(rawValues).catch(({ fields }) => {\n this.clearErrMsg();\n for(const key of Object.keys(fields)){\n let $item: JQuery;\n const errMsg = fields[key][0].message;\n if(isArray(rawValues[key])){\n $item = $(`#db_form input[name='${key}[]']`);\n }\n else{\n $item = $(`#db_form input[name='${key}']`);\n }\n $item.addClass('is-invalid');\n\n const $error = $(`${errMsg}`);\n\n $error.addClass( \"invalid-feedback\" );\n\n if ( $item.prop( \"type\" ) === \"checkbox\" ) {\n $error.insertAfter( $item.parent( \"label\" ) );\n } else {\n $error.insertAfter( $item );\n }\n }\n\n this.inputs.each(function(){\n const name = (this as HTMLInputElement).name;\n if(name in fields){\n return;\n }\n this.classList.add('is-valid');\n });\n return undefined;\n });\n if(validateResult === undefined){\n return undefined;\n }\n this.clearErrMsg();\n this.inputs.addClass('is-valid');\n return validateResult;\n }\n}","import { isArray, isString, isNumber, isBoolean } from \"lodash\";\n\nexport function convertFormData(values: Record): FormData{\n const formData = new FormData();\n\n const simpleConv = (v: unknown):string=>{\n if(isString(v)){\n return v;\n }\n if(isNumber(v)){\n return v.toString();\n }\n if(isBoolean(v)){\n return v?'true':'false';\n }\n throw new TypeError('지원하지 않는 formData Type');\n }\n\n for(const [key, value] of Object.entries(values)){\n if(isArray(value)){\n const arrKey = `${key}[]`;\n for(const subValue of value){\n formData.append(arrKey, simpleConv(subValue));\n }\n continue;\n }\n\n formData.append(key, simpleConv(value));\n }\n\n return formData;\n}","\nimport axios from 'axios';\nimport jQuery from 'jquery';\nimport { Rules } from 'async-validator';\nimport { JQValidateForm } from './util/jqValidateForm';\nimport { convertFormData } from './util/convertFormData';\nimport { InvalidResponse } from './defs';\nimport { setAxiosXMLHttpRequest } from './util/setAxiosXMLHttpRequest';\n\njQuery(async function ($) {\n setAxiosXMLHttpRequest();\n\n const descriptor: Rules = {\n full_reset: {\n required: true,\n },\n db_host: {\n type: 'string',\n required: true,\n },\n db_port: {\n type: 'integer',\n validator: (rule, value: string) => {\n const num = parseInt(value);\n if (num <= 0 || num >= 65535) {\n return new Error('올바른 포트 범위가 아닙니다.');\n }\n return true;\n }\n },\n db_id: {\n type: 'string',\n required: true,\n },\n db_pw: {\n type: 'string',\n required: true,\n },\n db_name: {\n type: 'string',\n required: true,\n }\n };\n const validator = new JQValidateForm($('#db_form'), descriptor);\n validator.installChangeHandler();\n \n $('#db_form').on('submit', async function (e) {\n e.preventDefault();\n\n const items = await validator.validate();\n if(items === undefined){\n return;\n }\n\n let data: InvalidResponse;\n\n try{\n const response = await axios({\n url: 'j_install_db.php',\n method: 'post',\n responseType: 'json',\n data: convertFormData(items)\n })\n data = response.data as InvalidResponse;\n }\n catch(e){\n alert(e);\n return false;\n }\n \n if(!data.result){\n alert(`에러: ${data.reason}`);\n return false;\n }\n\n alert('DB.php가 생성되었습니다.');\n location.href = 'install.php';\n });\n});","import axios from \"axios\";\n\nexport function setAxiosXMLHttpRequest(): void{\n axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';\n //TODO: X-Requested-With 믿지 말자.\n}\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\tid: moduleId,\n\t\tloaded: false,\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// Flag the module as loaded\n\tmodule.loaded = true;\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","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 788;","// 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\t788: 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 = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\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\tfor(moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) var result = runtime(__webpack_require__);\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[chunkIds[i]] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkhidche_lib\"] = self[\"webpackChunkhidche_lib\"] || [];\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, [216], () => (__webpack_require__(835)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","mergeKVArray","array","result","name","value","TypeError","length","slice","keyHead","push","JQValidateForm","target","rule","this","validator","inputs","find","removeClass","detach","on","validate","rawValues","serializeArray","catch","fields","clearErrMsg","Object","keys","key","$item","errMsg","message","addClass","$error","prop","insertAfter","parent","each","classList","add","undefined","validateResult","convertFormData","values","formData","FormData","simpleConv","v","toString","entries","arrKey","subValue","append","$","descriptor","full_reset","required","db_host","type","db_port","num","parseInt","Error","db_id","db_pw","db_name","installChangeHandler","e","preventDefault","items","url","method","responseType","data","response","alert","reason","location","href","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","id","loaded","__webpack_modules__","call","m","O","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","g","globalThis","Function","window","obj","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","forEach","bind","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"install_db.js","mappings":"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","sources":["webpack://hidche_lib/webpack/runtime/chunk loaded","webpack://hidche_lib/./hwe/ts/util/mergeKVArray.ts","webpack://hidche_lib/./hwe/ts/util/jqValidateForm.ts","webpack://hidche_lib/./hwe/ts/util/convertFormData.ts","webpack://hidche_lib/./hwe/ts/install_db.ts","webpack://hidche_lib/./hwe/ts/util/setAxiosXMLHttpRequest.ts","webpack://hidche_lib/webpack/bootstrap","webpack://hidche_lib/webpack/runtime/compat get default export","webpack://hidche_lib/webpack/runtime/define property getters","webpack://hidche_lib/webpack/runtime/global","webpack://hidche_lib/webpack/runtime/hasOwnProperty shorthand","webpack://hidche_lib/webpack/runtime/make namespace object","webpack://hidche_lib/webpack/runtime/node module decorator","webpack://hidche_lib/webpack/runtime/runtimeId","webpack://hidche_lib/webpack/runtime/jsonp chunk loading","webpack://hidche_lib/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (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, fn, priority] = deferred[i];\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((key) => (__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};","import { isString } from \"lodash\";\n\ninterface NameValuePair {\n name: string,\n value: string\n}\n\nexport function mergeKVArray(array : NameValuePair[]):Record{\n const result:Record = {};\n\n for(const {name, value} of array){\n if(!isString(name)){\n throw new TypeError(`${name} is not string`);\n }\n if(!isString(value)){\n throw new TypeError(`${value} is not string`);\n }\n\n if(name === '' || name === '[]'){\n continue;\n }\n if(name.length > 2 && name.slice(-2) == '[]'){\n const keyHead = name.slice(0, -2);\n if(!(keyHead in result)){\n result[keyHead] = [value];\n }\n else{\n (result[keyHead] as string[]).push(value);\n }\n continue;\n }\n result[name] = value;\n }\n return result;\n}","import Schema, { Rules, Values } from \"async-validator\";\nimport { isArray } from \"lodash\";\nimport { mergeKVArray } from \"./mergeKVArray\";\nimport $ from 'jquery';\n\nexport class JQValidateForm {\n public readonly validator: Schema;\n public readonly inputs: JQuery;\n constructor(public readonly target: JQuery, public readonly rule: Rules) {\n this.validator = new Schema(rule);\n this.inputs = target.find('input');\n }\n\n public clearErrMsg():void {\n this.inputs.removeClass('is-invalid');\n this.inputs.removeClass('is-valid');\n this.target.find('.invalid-feedback').detach();\n }\n\n public installChangeHandler():this{\n this.inputs.on('change', ()=>{\n void this.validate();\n });\n return this;\n }\n\n public async validate(): Promise {\n const rawValues = mergeKVArray(this.inputs.serializeArray());\n const validateResult = await this.validator.validate(rawValues).catch(({ fields }) => {\n this.clearErrMsg();\n for(const key of Object.keys(fields)){\n let $item: JQuery;\n const errMsg = fields[key][0].message;\n if(isArray(rawValues[key])){\n $item = $(`#db_form input[name='${key}[]']`);\n }\n else{\n $item = $(`#db_form input[name='${key}']`);\n }\n $item.addClass('is-invalid');\n\n const $error = $(`${errMsg}`);\n\n $error.addClass( \"invalid-feedback\" );\n\n if ( $item.prop( \"type\" ) === \"checkbox\" ) {\n $error.insertAfter( $item.parent( \"label\" ) );\n } else {\n $error.insertAfter( $item );\n }\n }\n\n this.inputs.each(function(){\n const name = (this as HTMLInputElement).name;\n if(name in fields){\n return;\n }\n this.classList.add('is-valid');\n });\n return undefined;\n });\n if(validateResult === undefined){\n return undefined;\n }\n this.clearErrMsg();\n this.inputs.addClass('is-valid');\n return validateResult;\n }\n}","import { isArray, isString, isNumber, isBoolean } from \"lodash\";\n\nexport function convertFormData(values: Record): FormData{\n const formData = new FormData();\n\n const simpleConv = (v: unknown):string=>{\n if(isString(v)){\n return v;\n }\n if(isNumber(v)){\n return v.toString();\n }\n if(isBoolean(v)){\n return v?'true':'false';\n }\n throw new TypeError('지원하지 않는 formData Type');\n }\n\n for(const [key, value] of Object.entries(values)){\n if(isArray(value)){\n const arrKey = `${key}[]`;\n for(const subValue of value){\n formData.append(arrKey, simpleConv(subValue));\n }\n continue;\n }\n\n formData.append(key, simpleConv(value));\n }\n\n return formData;\n}","\nimport axios from 'axios';\nimport jQuery from 'jquery';\nimport { Rules } from 'async-validator';\nimport { JQValidateForm } from './util/jqValidateForm';\nimport { convertFormData } from './util/convertFormData';\nimport { InvalidResponse } from './defs';\nimport { setAxiosXMLHttpRequest } from './util/setAxiosXMLHttpRequest';\n\njQuery(async function ($) {\n setAxiosXMLHttpRequest();\n\n const descriptor: Rules = {\n full_reset: {\n required: true,\n },\n db_host: {\n type: 'string',\n required: true,\n },\n db_port: {\n type: 'integer',\n validator: (rule, value: string) => {\n const num = parseInt(value);\n if (num <= 0 || num >= 65535) {\n return new Error('올바른 포트 범위가 아닙니다.');\n }\n return true;\n }\n },\n db_id: {\n type: 'string',\n required: true,\n },\n db_pw: {\n type: 'string',\n required: true,\n },\n db_name: {\n type: 'string',\n required: true,\n }\n };\n const validator = new JQValidateForm($('#db_form'), descriptor);\n validator.installChangeHandler();\n \n $('#db_form').on('submit', async function (e) {\n e.preventDefault();\n\n const items = await validator.validate();\n if(items === undefined){\n return;\n }\n\n let data: InvalidResponse;\n\n try{\n const response = await axios({\n url: 'j_install_db.php',\n method: 'post',\n responseType: 'json',\n data: convertFormData(items)\n })\n data = response.data as InvalidResponse;\n }\n catch(e){\n alert(e);\n return false;\n }\n \n if(!data.result){\n alert(`에러: ${data.reason}`);\n return false;\n }\n\n alert('DB.php가 생성되었습니다.');\n location.href = 'install.php';\n });\n});","import axios from \"axios\";\n\nexport function setAxiosXMLHttpRequest(): void{\n axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';\n //TODO: X-Requested-With 믿지 말자.\n}\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\tid: moduleId,\n\t\tloaded: false,\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// Flag the module as loaded\n\tmodule.loaded = true;\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","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 788;","// 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\t788: 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 = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\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\tfor(moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) var result = runtime(__webpack_require__);\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[chunkIds[i]] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkhidche_lib\"] = self[\"webpackChunkhidche_lib\"] || [];\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, [216], () => (__webpack_require__(1835)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","mergeKVArray","array","result","name","value","TypeError","length","slice","keyHead","push","JQValidateForm","target","rule","this","validator","inputs","find","removeClass","detach","on","validate","rawValues","serializeArray","catch","fields","clearErrMsg","Object","keys","key","$item","errMsg","message","addClass","$error","prop","insertAfter","parent","each","classList","add","undefined","validateResult","convertFormData","values","formData","FormData","simpleConv","v","toString","entries","arrKey","subValue","append","$","descriptor","full_reset","required","db_host","type","db_port","num","parseInt","Error","db_id","db_pw","db_name","installChangeHandler","e","preventDefault","items","url","method","responseType","data","response","alert","reason","location","href","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","id","loaded","__webpack_modules__","call","m","O","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","g","globalThis","Function","window","obj","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","forEach","bind","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/hwe/js/map.js.map b/hwe/js/map.js.map index 2e496f81..0101af9b 100644 --- a/hwe/js/map.js.map +++ b/hwe/js/map.js.map @@ -1 +1 @@ -{"version":3,"file":"map.js","mappings":"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","sources":["webpack://hidche_lib/webpack/runtime/chunk loaded","webpack://hidche_lib/./hwe/ts/util.ts","webpack://hidche_lib/./hwe/ts/common_legacy.ts","webpack://hidche_lib/./hwe/ts/util/convertFormData.ts","webpack://hidche_lib/./hwe/ts/map.ts","webpack://hidche_lib/webpack/bootstrap","webpack://hidche_lib/webpack/runtime/compat get default export","webpack://hidche_lib/webpack/runtime/define property getters","webpack://hidche_lib/webpack/runtime/global","webpack://hidche_lib/webpack/runtime/hasOwnProperty shorthand","webpack://hidche_lib/webpack/runtime/make namespace object","webpack://hidche_lib/webpack/runtime/node module decorator","webpack://hidche_lib/webpack/runtime/runtimeId","webpack://hidche_lib/webpack/runtime/jsonp chunk loading","webpack://hidche_lib/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (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, fn, priority] = deferred[i];\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((key) => (__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};","type ErrType = { new(msg?: string): T }\nexport type Nullable = T | null | undefined\n\nexport class RuntimeError extends Error {\n public name = 'RuntimeError';\n constructor(public message: string = '') {\n super(message);\n }\n toString(): string {\n if (this.message) {\n return this.name + ': ' + this.message;\n }\n else {\n return this.name;\n }\n }\n}\n\nexport class NotNullExpected extends RuntimeError {\n public name = 'NotNullExpected';\n}\n\nexport function unwrap(result: Nullable): T {\n if (result === null || result === undefined) {\n throw new NotNullExpected();\n }\n return result;\n}\n\nexport function unwrap_err(result: Nullable, errType: ErrType, errMsg?: string): T {\n if (result === null || result === undefined) {\n throw new errType(errMsg);\n }\n return result;\n}","import { unwrap } from \"./util\";\n\nimport jQuery from \"jquery\";\nimport 'bootstrap';\n\nimport axios from \"axios\";\n\naxios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';\n//TODO: X-Requested-With 믿지 말자.\n\n/** \n * <>& 등을 html에서도 그대로 보이도록 escape주는 함수\n * @see https://stackoverflow.com/questions/24816/escaping-html-strings-with-jquery\n */\nexport const escapeHtml = (() => {\n const entityMap: { [v: string]: string } = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/',\n '`': '`',\n '=': '='\n };\n\n return function (string: string) {\n return String(string).replace(/[&<>\"'`=/]/g, function (s: string) {\n return entityMap[s];\n });\n }\n})();\n\n/**\n * 변수가 정수인지 확인하는 함수\n * @param {*} n 정수인지 확인하기 위한 인자\n * @return {boolean} 정수인지 여부\n */\nexport function isInt(n: unknown): n is number {\n const v = n as number;\n return +v === v && !(v % 1);\n}\n\n\n//https://gist.github.com/demouth/3217440\n/**\n * mb_strwidth\n * @see http://php.net/manual/function.mb-strwidth.php\n */\nexport function mb_strwidth(str: string): number {\n const l = str.length;\n let length = 0;\n for (let i = 0; i < l; i++) {\n const c = str.charCodeAt(i);\n if (0x0000 <= c && c <= 0x0019) {\n length += 0;\n } else if (0x0020 <= c && c <= 0x1FFF) {\n length += 1;\n } else if (0x2000 <= c && c <= 0xFF60) {\n length += 2;\n } else if (0xFF61 <= c && c <= 0xFF9F) {\n length += 1;\n } else if (0xFFA0 <= c) {\n length += 2;\n }\n }\n return length;\n}\n\n\n/**\n * mb_strimwidth\n * @param String\n * @param int\n * @param int\n * @param String\n * @return String\n * @see http://www.php.net/manual/function.mb-strimwidth.php\n */\nexport function mb_strimwidth(str: string, start: number, width: number, trimmarker = ''): string {\n const trimmakerWidth = mb_strwidth(trimmarker);\n const l = str.length;\n let trimmedLength = 0;\n const trimmedStr: string[] = [];\n for (let i = start; i < l; i++) {\n const c = str.charAt(i);\n const charWidth = mb_strwidth(c);\n const next = str.charAt(i + 1);\n const nextWidth = mb_strwidth(next);\n\n trimmedLength += charWidth;\n trimmedStr.push(c);\n if (trimmedLength + trimmakerWidth + nextWidth > width) {\n trimmedStr.push(trimmarker);\n break;\n }\n }\n return trimmedStr.join('');\n}\n\n/**\n * object의 array를 id를 key로 삼는 object로 재 변환\n */\nexport function convertDictById(arr: ArrayLike): Record {\n const result: Record = {};\n for (const v of Object.values(arr)) {\n result[v.id] = v;\n }\n return result;\n}\n\n/**\n * array를 set 형태의 object로 변환\n */\nexport function convertSet(arr: ArrayLike): Record {\n const result: Record = {};\n for (const v of Object.values(arr)) {\n result[v] = true;\n }\n return result;\n}\n\n\n/** \n * {0}, {1}, {2}형태로 포맷해주는 함수\n */\n\ndeclare global {\n interface String {\n format(...args: (string | number)[]): string;\n }\n}\nString.prototype.format = function (...args: (string | number)[]) {\n return this.replace(/{(\\d+)}/g, function (match, number) {\n return (typeof args[number] != 'undefined') ? args[number].toString() : match;\n });\n};\n\n\nexport function hexToRgb(hex: string): { r: number, g: number, b: number } | null {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16)\n } : null;\n}\n\nexport function isBrightColor(color: string): boolean {\n const cv = unwrap(hexToRgb(color));\n if ((cv.r * 0.299 + cv.g * 0.587 + cv.b * 0.114) > 140) {\n return true;\n } else {\n return false;\n }\n}\n\n/**\n * 게임내에서 지원하는 color type만 선택할 수 있도록 해주는 함수\n * @param {string} color #AAAAAA 또는 AAAAAA 형태로 작성된 RGB hex color string\n * @returns {string}\n */\nexport function convColorValue(color: string): string {\n if (color.charAt(0) == '#') {\n color = color.substr(1);\n }\n color = color.toUpperCase();\n\n const colorBase = new Set([\n '000080', '0000FF', '008000', '008080', '00BFFF', '00FF00', '00FFFF', '20B2AA',\n '2E8B57', '483D8B', '6495ED', '7B68EE', '7CFC00', '7FFFD4', '800000', '800080',\n '808000', '87CEEB', 'A0522D', 'A9A9A9', 'AFEEEE', 'BA55D3', 'E0FFFF', 'F5F5DC',\n 'FF0000', 'FF00FF', 'FF6347', 'FFA500', 'FFC0CB', 'FFD700', 'FFDAB9', 'FFFF00',\n 'FFFFFF'\n ]);\n\n if (!colorBase.has(color)) {\n return '000000';\n }\n\n return color;\n}\n\n\nexport function numberWithCommas(x: number): string {\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n}\n\n//linkify가 불러와 있어야함\ndeclare global {\n interface Window {\n linkifyStr: (v: string, k?: Record) => string;\n }\n}\nexport function linkifyStrWithOpt(text: string): string {\n return window.linkifyStr(text, {});\n}\n\n/**\n * 단순한 Template 함수. <%변수명%>으로 template 가능\n * @see https://github.com/krasimir/absurd/blob/master/lib/processors/html/helpers/TemplateEngine.js\n * @param {string} html \n * @param {object} options \n * @returns {string}\n */\nexport function TemplateEngine(html: string, options: Record = {}): string {\n const re = /<%(.+?)%>/g;\n const reExp = /(^( )?(var|if|for|else|switch|case|break|{|}|;))(.*)?/g;\n let cursor = 0;\n const add = function (line: string, js?: boolean) {\n js ? (code += line.match(reExp) ? line + '\\n' : 'r.push(' + line + ');\\n') :\n (code += line != '' ? 'r.push(\"' + line.replace(/\"/g, '\\\\\"') + '\");\\n' : '');\n return add;\n }\n options.e = escapeHtml;\n options.linkifyStr = linkifyStrWithOpt;\n for (; ;) {\n const match = re.exec(html);\n if (!match) {\n break;\n }\n add(html.slice(cursor, match.index))(match[1], true);\n cursor = match.index + match[0].length;\n }\n add(html.substr(cursor, html.length - cursor));\n\n let code = 'with(obj) { var r=[];\\n';\n code = (code + 'return r.join(\"\"); }').replace(/[\\r\\t\\n]/g, ' ');\n try {\n return new Function('obj', code).apply(options, [options]);\n } catch (err) {\n console.error(\"'\" + err.message + \"'\", \" in \\n\\nCode:\\n\", code, \"\\n\");\n throw err;\n }\n}\n\nexport function getIconPath(imgsvr: boolean | 1 | 0, picture: string): string {\n // ../d_shared/common_path.js 필요\n if (!imgsvr) {\n return window.pathConfig.sharedIcon + '/' + picture;\n } else {\n return window.pathConfig.root + '/d_pic/' + picture;\n }\n}\n\nexport function activeFlip($obj?: JQuery): void {\n let $result: JQuery;\n if ($obj === undefined) {\n $result = $('img[data-flip]');\n } else {\n $result = $obj.find('img[data-flip]');\n }\n\n $result.each(function () {\n activeFlipItem($(this));\n });\n\n}\n\nexport function combineObject(item: V[], columnList: K[]): Record {\n const newItem: Record = {};\n for (const columnIdx in columnList) {\n const columnName = columnList[columnIdx];\n newItem[columnName] = item[columnIdx];\n }\n return newItem;\n}\n\nexport function combineArray(array: V[][], columnList: K[]): Record[] {\n const result: Record[] = [];\n for (const key of array.keys()) {\n const item = array[key];\n result[key] = combineObject(item, columnList);\n }\n return result;\n}\n\nexport function activeFlipItem($img: JQuery): void {\n const imageList = [];\n imageList.push($img.attr('src'));\n $.each($img.data('flip').split(','), function (idx, value) {\n value = $.trim(value);\n if (!value) {\n return true;\n }\n imageList.push(value);\n });\n if (imageList.length <= 1) {\n return;\n }\n $img.data('computed_flip_array', imageList);\n $img.data('computed_flip_idx', 0);\n\n $img.click(function () {\n const arr = $img.data('computed_flip_array');\n let idx = $img.data('computed_flip_idx');\n idx = (idx + 1) % (arr.length);\n $img.attr('src', arr[idx]);\n $img.data('computed_flip_idx', idx);\n });\n $img.css('cursor', 'pointer');\n}\n\n\n\nexport function errUnknown(): void {\n alert('작업을 실패했습니다.');\n}\n\n\n\nexport function errUnknownToast(): void {\n jQuery.toast({\n title: '에러!',\n content: '작업을 실패했습니다.',\n type: 'danger',\n delay: 5000\n });\n}\n\nexport function quickReject(errMsg: string): JQuery.Promise {\n if (errMsg === undefined) {\n errMsg = '작업을 실패했습니다.';\n }\n const deferred = $.Deferred();\n void deferred.reject(errMsg);\n return deferred.promise();\n}\n\nexport function nl2br(text: string): string {\n return text.replace(/\\n/g, \"
\");\n}\n/*\nfunction br2nl (text) { \n return text.replace(/<\\s*\\/?br\\s*[\\/]?>/gi, '\\n');\n}\n*/\n\nexport function getNpcColor(npcType: number): 'cyan' | 'skyblue' | null {\n if (npcType >= 2) {\n return 'cyan';\n }\n if (npcType == 1) {\n return 'skyblue';\n }\n return null;\n}\n\nexport function initTooltip($obj?: JQuery): void {\n if ($obj === undefined) {\n $obj = $('.obj_tooltip');\n } else if (!$obj.hasClass('obj_tooltip')) {\n $obj = $obj.find('.obj_tooltip');\n }\n console.log($obj);\n\n $obj.each(function () {\n const $target = $(this);\n\n if ($target.data('installHandler')) {\n return;\n }\n $target.data('installHandler', true);\n\n $target.mouseover(function () {\n const $objTooltip = $(this);\n if ($objTooltip.data('setObjTooltip')) {\n return;\n }\n\n let tooltipClassText = $objTooltip.data('tooltip-class');\n if (!tooltipClassText) {\n tooltipClassText = '';\n }\n const template = '
'\n .format(tooltipClassText);\n\n $objTooltip.tooltip({\n title: function () {\n return $.trim($(this).find('.tooltiptext').html());\n },\n template: template,\n html: true\n }).tooltip('show');\n\n $objTooltip.data('setObjTooltip', true);\n });\n });\n}","import { isArray, isString, isNumber, isBoolean } from \"lodash\";\n\nexport function convertFormData(values: Record): FormData{\n const formData = new FormData();\n\n const simpleConv = (v: unknown):string=>{\n if(isString(v)){\n return v;\n }\n if(isNumber(v)){\n return v.toString();\n }\n if(isBoolean(v)){\n return v?'true':'false';\n }\n throw new TypeError('지원하지 않는 formData Type');\n }\n\n for(const [key, value] of Object.entries(values)){\n if(isArray(value)){\n const arrKey = `${key}[]`;\n for(const subValue of value){\n formData.append(arrKey, simpleConv(subValue));\n }\n continue;\n }\n\n formData.append(key, simpleConv(value));\n }\n\n return formData;\n}","import axios from 'axios';\r\nimport jQuery from 'jquery';\r\nimport { extend, isNumber } from 'lodash';\r\nimport { convColorValue, convertDictById, convertSet } from './common_legacy';\r\nimport { InvalidResponse } from './defs';\r\nimport { unwrap } from './util';\r\nimport { convertFormData } from './util/convertFormData';\r\n\r\ndeclare const serverNick: string;\r\ndeclare const serverID: string;\r\n\r\ntype CityPositionMap = {\r\n [cityID: number]: [string, number, number];\r\n}\r\n\r\ndeclare global {\r\n interface Window {\r\n sam_toggleSingleTap?: boolean,\r\n reloadWorldMap: (option: loadMapOption, drawTarget?: string) => Promise;\r\n getCityPosition: () => CityPositionMap;\r\n formatCityInfo: (city: MapCityParsedRaw)=>MapCityParsedRegionLevelText\r\n }\r\n}\r\n\r\ntype MapCityCompact = [number, number, number, number, number, number];\r\ntype MapNationCompact = [number, string, string, number];\r\n\r\ntype MapCityParsedRaw = {\r\n id: number,\r\n level: number,\r\n state: number,\r\n nationID?: number,\r\n region: number,\r\n supply: boolean\r\n};\r\n\r\ntype MapCityParsedName = MapCityParsedRaw & {\r\n name: string,\r\n x: number,\r\n y: number,\r\n};\r\n\r\ntype MapCityParsedNation = MapCityParsedName & {\r\n nationID?: number;\r\n nation?: string;\r\n color?: string;\r\n isCapital: boolean\r\n}\r\n\r\ntype MapCityParsedClickable = MapCityParsedNation & {\r\n clickable: number\r\n}\r\n\r\ntype MapCityParsedRegionLevelText = MapCityParsedClickable & {\r\n region_str: string,\r\n level_str: string,\r\n text: string,\r\n}\r\n\r\ntype MapCityParsed = MapCityParsedRegionLevelText;\r\n\r\ntype MapCityDrawable = {\r\n cityList: MapCityParsed[],\r\n myCity?: number\r\n};\r\n\r\ntype MapNationParsed = {\r\n id: number,\r\n name: string,\r\n color: string,\r\n capital: number\r\n}\r\n\r\ntype MapResult = {\r\n result: true,\r\n startYear: number,\r\n year: number,\r\n month: number,\r\n cityList: MapCityCompact[],\r\n nationList: MapNationCompact[],\r\n spyList: Record,\r\n shownByGeneralList: number[],\r\n myCity?: number,\r\n myNation?: number,\r\n\r\n theme?: string,\r\n history?: string[],\r\n}\r\ntype MapRawResult = InvalidResponse | MapResult;\r\n\r\nfunction is_touch_device(): boolean {\r\n const prefixes = ' -webkit- -moz- -o- -ms- '.split(' ');\r\n const mq = (query: string) => {\r\n return window.matchMedia(query).matches;\r\n }\r\n\r\n type TouchWindow = { DocumentTouch?: () => void | Document };\r\n const tWindow = window as unknown as TouchWindow;\r\n if (('ontouchstart' in window) || (tWindow.DocumentTouch && (document instanceof tWindow.DocumentTouch))) {\r\n return true;\r\n }\r\n\r\n\r\n // include the 'heartz' as a way to have a non matching MQ to help terminate the join\r\n // https://git.io/vznFH\r\n const query = ['(', prefixes.join('touch-enabled),('), 'heartz', ')'].join('');\r\n return mq(query);\r\n}\r\n\r\ntype loadMapOption = {\r\n isDetailMap?: boolean, //복잡 지도, 단순 지도\r\n clickableAll?: boolean, //어떤 경우든 클릭을 가능하게 함. 해당 동작의 동작 가능성 여부와는 별도.\r\n selectCallback?: (city: MapCityParsed) => void, //callback을 지정시 clickable과 관계 없이 해당 함수를 실행. \r\n hrefTemplate?: string, //도시가 클릭가능할 경우 지정할 href값. {0}은 도시 id로 변환됨\r\n useCachedMap?: boolean, //맵 캐시를 사용\r\n\r\n //아래부터는 post query에 들어갈 녀석\r\n year?: number, //year값, 연감등에 사용\r\n month?: number, //month값, 연감등에 사용\r\n aux?: Record, //기타 넣고 싶은 값을 입력\r\n neutralView?: boolean, //clickable, 소속 국가, 첩보 여부 등을 반환여부를 설정\r\n showMe?: boolean, //반환 값에 본인이 위치한 도시 값을 반환하도록 설정. neutralView와 별개\r\n\r\n targetJson?: string,\r\n reqType?: 'get' | 'post',\r\n dynamicMapTheme?: boolean,\r\n callback?: (a: unknown, rawObejct: unknown) => void,\r\n\r\n //기타 보조 값\r\n startYear?: number,\r\n}\r\n\r\nexport async function reloadWorldMap(option: loadMapOption, drawTarget = '.world_map'): Promise {\r\n const $world_map = jQuery(drawTarget);\r\n\r\n if ($world_map.length == 0) {\r\n return;\r\n }\r\n\r\n const defaultOption: loadMapOption = {\r\n isDetailMap: true, //복잡 지도, 단순 지도\r\n clickableAll: false, //어떤 경우든 클릭을 가능하게 함. 해당 동작의 동작 가능성 여부와는 별도.\r\n selectCallback: undefined, //callback을 지정시 clickable과 관계 없이 해당 함수를 실행. \r\n hrefTemplate: '#', //도시가 클릭가능할 경우 지정할 href값. {0}은 도시 id로 변환됨\r\n useCachedMap: false, //맵 캐시를 사용\r\n\r\n //아래부터는 post query에 들어갈 녀석\r\n year: undefined, //year값, 연감등에 사용\r\n month: undefined, //month값, 연감등에 사용\r\n aux: undefined, //기타 넣고 싶은 값을 입력\r\n neutralView: false, //clickable, 소속 국가, 첩보 여부 등을 반환여부를 설정\r\n showMe: true, //반환 값에 본인이 위치한 도시 값을 반환하도록 설정. neutralView와 별개\r\n\r\n targetJson: 'j_map.php',\r\n reqType: 'post',\r\n dynamicMapTheme: false,\r\n callback: undefined,\r\n\r\n //기타 보조 값\r\n startYear: undefined,\r\n };\r\n\r\n option = extend({}, defaultOption, option);\r\n\r\n const useCachedMap = option.useCachedMap;\r\n const isDetailMap = option.isDetailMap;\r\n const clickableAll = option.clickableAll;\r\n const selectCallback = option.selectCallback;\r\n const hrefTemplate = unwrap(option.hrefTemplate);\r\n\r\n const cityPosition = window.getCityPosition();\r\n\r\n const storedOldMapKey = `sam.${serverNick}.map`;\r\n const storedStartYear = `am.${serverNick}.startYear`;\r\n //OBJ : startYear, year, month, cityList, nationList, spyList, shownByGeneralList, myCity\r\n\r\n async function checkReturnObject(obj: MapRawResult): Promise {\r\n if (!obj.result) {\r\n throw `fail: ${obj.reason}`;\r\n }\r\n\r\n if (!isNumber(obj.startYear) ||\r\n !isNumber(obj.year) ||\r\n !isNumber(obj.month)\r\n ) {\r\n throw 'fail: date type';\r\n }\r\n\r\n if (useCachedMap) {\r\n localStorage.setItem(storedOldMapKey, JSON.stringify([serverID, obj]));\r\n localStorage.setItem(storedStartYear, JSON.stringify(obj.startYear));\r\n }\r\n\r\n $world_map.removeClass('draw_required');\r\n\r\n return obj;\r\n }\r\n\r\n\r\n\r\n async function setMapBackground(obj: MapResult): Promise {\r\n function setTheme() {\r\n const oldTheme = $world_map.data('currentTheme');\r\n const newTheme = obj.theme;\r\n if (oldTheme === newTheme) {\r\n return;\r\n }\r\n if (oldTheme) {\r\n $world_map.removeClass('map_theme_' + oldTheme);\r\n }\r\n $world_map.addClass('map_theme_' + newTheme);\r\n $world_map.data('currentTheme', newTheme ?? '_current');//FIXME: 뭔가 틀렸음. 전송시에 theme가 있어야하나?\r\n }\r\n if (option.dynamicMapTheme) {\r\n setTheme();\r\n }\r\n const startYear = obj.startYear;\r\n const year = obj.year;\r\n const month = obj.month;\r\n\r\n if (isDetailMap) {\r\n $world_map.addClass('map_detail').removeClass('map_basic');\r\n } else {\r\n $world_map.addClass('map_basic').removeClass('map_detail');\r\n }\r\n\r\n const $map_title = $('.map_title_text');\r\n if (year < startYear + 1) {\r\n $map_title.css('color', 'magenta');\r\n } else if (year < startYear + 2) {\r\n $map_title.css('color', 'orange');\r\n } else if (year < startYear + 3) {\r\n $map_title.css('color', 'yellow');\r\n }\r\n\r\n const $map_title_tooltip = $('.map_title .tooltiptext');\r\n $map_title_tooltip.empty();\r\n\r\n const tooltipTexts = [];\r\n if (year < startYear + 3) {\r\n const startYearText = [];\r\n let remainYear = startYear + 3 - year;\r\n const remainMonth = 12 - month + 1;\r\n if (remainMonth > 0) {\r\n remainYear -= 1;\r\n }\r\n if (remainYear) {\r\n startYearText.push('{0}년'.format(remainYear));\r\n }\r\n if (remainMonth) {\r\n startYearText.push('{0}개월'.format(remainMonth));\r\n }\r\n\r\n tooltipTexts.push('초반제한 기간 : {0} ({1}년)'.format(startYearText.join(' '), startYear + 3));\r\n }\r\n\r\n const currentTechLimit = Math.floor(Math.max(0, year - startYear) / 5) + 1;\r\n const nextTechLimitYear = currentTechLimit * 5 + startYear;\r\n\r\n tooltipTexts.push('기술등급 제한 : {0}등급 ({1}년 해제)'.format(currentTechLimit, nextTechLimitYear, currentTechLimit + 1));\r\n $map_title_tooltip.html(tooltipTexts.join('
'));\r\n\r\n $world_map.removeClass('map_string map_summer map_fall map_winter');\r\n if (month <= 3) {\r\n $world_map.addClass('map_spring');\r\n } else if (month <= 6) {\r\n $world_map.addClass('map_summer');\r\n } else if (month <= 9) {\r\n $world_map.addClass('map_fall');\r\n } else {\r\n $world_map.addClass('map_winter');\r\n }\r\n\r\n $map_title.html('{0}年 {1}月'.format(year, month));\r\n\r\n return obj;\r\n }\r\n\r\n async function convertCityObjs(obj: MapResult): Promise {\r\n //원본 Obj는 굉장히 간소하게 온다, Object 형태로 변환해서 사용한다.\r\n\r\n function toCityObj([id, level, state, nationID, region, supply]: MapCityCompact): MapCityParsedRaw {\r\n return {\r\n id: id,\r\n level: level,\r\n state: state,\r\n nationID: nationID > 0 ? nationID : undefined,\r\n region: region,\r\n supply: supply != 0\r\n };\r\n }\r\n\r\n function toNationObj([id, name, color, capital]: MapNationCompact): MapNationParsed {\r\n return {\r\n id,\r\n name,\r\n color,\r\n capital\r\n };\r\n }\r\n\r\n const nationList = convertDictById(obj.nationList.map(toNationObj)); //array of object -> dict\r\n\r\n const spyList = obj.spyList;\r\n const shownByGeneralList = new Set(obj.shownByGeneralList);\r\n\r\n const myCity = obj.myCity;\r\n const myNation = obj.myNation;\r\n\r\n\r\n function mergePositionInfo(city: MapCityParsedRaw): MapCityParsedName {\r\n const id = city.id;\r\n if (!(id in cityPosition)) {\r\n throw TypeError(`알수 없는 cityID: ${id}`);\r\n }\r\n const [name, x, y] = cityPosition[id];\r\n\r\n return {\r\n ...city,\r\n name,\r\n x,\r\n y,\r\n };\r\n }\r\n\r\n function mergeNationInfo(city: MapCityParsedName):MapCityParsedNation{\r\n //nationID 값으로 isCapital, color, nation을 통합\r\n\r\n const nationID = city.nationID;\r\n if (nationID === undefined || !(nationID in nationList)) {\r\n return {\r\n ...city,\r\n isCapital: false,\r\n };\r\n }\r\n\r\n const nationObj = nationList[nationID];\r\n return {\r\n ...city,\r\n nation: nationObj.name,\r\n color: nationObj.color,\r\n isCapital: nationObj.capital == city.id\r\n };\r\n }\r\n\r\n function mergeClickable(city:MapCityParsedNation): MapCityParsedClickable {\r\n //clickable = (defaultCity << 4 ) | (remainSpy << 3) | (ourCity << 2) | (shownByGeneral << 1) | clickableAll\r\n const id = city.id;\r\n const nationID = city.nationID;\r\n let clickable = 16;\r\n if (id in spyList) {\r\n clickable |= spyList[id] << 3;\r\n }\r\n if (myNation !== null && nationID == myNation) {\r\n clickable |= 4;\r\n }\r\n if (shownByGeneralList.has(id)) {\r\n clickable |= 2;\r\n }\r\n if (myCity !== null && id == myCity) {\r\n clickable |= 2;\r\n }\r\n if (clickableAll) {\r\n clickable |= 1;\r\n }\r\n\r\n\r\n return {\r\n ...city,\r\n clickable\r\n };\r\n }\r\n\r\n const cityList = obj.cityList.map(toCityObj)\r\n .map(mergePositionInfo)\r\n .map(mergeNationInfo)\r\n .map(mergeClickable)\r\n .map(window.formatCityInfo);\r\n\r\n return {\r\n 'cityList': cityList,\r\n 'myCity': myCity\r\n };\r\n }\r\n\r\n function drawDetailWorldMap(obj: MapCityDrawable) {\r\n\r\n const $map_body = $(drawTarget + ' .map_body');\r\n\r\n const cityList = obj.cityList;\r\n const myCity = obj.myCity;\r\n\r\n cityList.forEach(function (city) {\r\n const id = city.id;\r\n $(`.city_base_${id}`).detach();\r\n //이전 도시는 지운다.\r\n\r\n const $cityObj = $(`
`);\r\n $cityObj.addClass(`city_level_${city.level}`);\r\n $cityObj.data('obj', city).css({ 'left': city.x - 20, 'top': city.y - 15 });\r\n\r\n if (city.color !== undefined) {\r\n const $bgObj = $('
');\r\n $cityObj.append($bgObj);\r\n $bgObj.css({ 'background-image': 'url({0}/b{1}.png)'.format(window.pathConfig.gameImage, convColorValue(city.color)) });\r\n }\r\n\r\n const $linkObj = $('');\r\n $linkObj.data({ 'text': city.text, 'nation': city.nation, 'id': city.id });\r\n $cityObj.append($linkObj);\r\n\r\n const $imgObj = $(`
`);\r\n $linkObj.append($imgObj);\r\n\r\n if (city.state > 0) {\r\n const $stateObj = $(`
`);\r\n $linkObj.append($stateObj);\r\n }\r\n\r\n if (city.nationID && city.nationID > 0) {\r\n const flagType = city.supply ? 'f' : 'd';\r\n const $flagObj = $(`
`);\r\n if (city.isCapital) {\r\n const $capitalObj = $(`
`);\r\n $flagObj.append($capitalObj);\r\n }\r\n $imgObj.append($flagObj);\r\n }\r\n\r\n const $nameObj = $(`${city.name}`);\r\n $imgObj.append($nameObj);\r\n\r\n\r\n $map_body.append($cityObj);\r\n\r\n\r\n });\r\n\r\n if(myCity){\r\n $world_map.find(`.city_base_${myCity} .city_filler`).addClass('my_city');\r\n }\r\n \r\n\r\n return obj;\r\n }\r\n\r\n function drawBasicWorldMap(obj:MapCityDrawable) {\r\n\r\n const $map_body = $(`${drawTarget} .map_body`);\r\n\r\n const cityList = obj.cityList;\r\n const myCity = obj.myCity;\r\n\r\n cityList.forEach(function (city) {\r\n const id = city.id;\r\n $(`.city_base_${id}`).detach();\r\n //이전 도시는 지운다.\r\n\r\n const $cityObj = $(`
`);\r\n $cityObj.addClass(`city_level_${city.level}`);\r\n $cityObj.data('obj', city).css({ 'left': city.x - 20, 'top': city.y - 15 });\r\n\r\n const $linkObj = $('');\r\n $linkObj.data({ 'text': city.text, 'nation': city.nation, 'id': city.id });\r\n $cityObj.append($linkObj);\r\n\r\n const $imgObj = $('
');\r\n if (city.color !== undefined) {\r\n $imgObj.css({ 'background-color': city.color });\r\n }\r\n $linkObj.append($imgObj);\r\n\r\n if (city.state > 0) {\r\n let state_text = 'wrong';\r\n if (city.state < 10) {\r\n state_text = 'good';\r\n } else if (city.state < 40) {\r\n state_text = 'bad';\r\n } else if (city.state < 50) {\r\n state_text = 'war';\r\n }\r\n\r\n const $stateObj = $(`
`);\r\n $imgObj.append($stateObj);\r\n }\r\n\r\n //단순 표기에서는 깃발 여부가 없음\r\n if (city.isCapital) {\r\n const $capitalObj = $('
');\r\n $imgObj.append($capitalObj);\r\n }\r\n\r\n const $nameObj = $(`${city.name}`.format());\r\n $imgObj.append($nameObj);\r\n\r\n $map_body.append($cityObj);\r\n });\r\n\r\n if(myCity){\r\n $world_map.find(`.city_base_${myCity} .city_filler`).addClass('my_city');\r\n }\r\n \r\n\r\n return obj;\r\n }\r\n\r\n function setMouseWork(obj:MapCityDrawable) {\r\n const $tooltip = $(drawTarget + ' .city_tooltip');\r\n const $tooltip_city = $tooltip.find('.city_name');\r\n const $tooltip_nation = $tooltip.find('.nation_name');\r\n\r\n const $objs = $(drawTarget + ' .city_link');\r\n\r\n const $map_body = $(drawTarget + ' .map_body');\r\n\r\n //터치스크린 탭\r\n\r\n if (!option.neutralView && is_touch_device()) {\r\n $objs.on('touchstart', function (e) {\r\n if (window.sam_toggleSingleTap) {\r\n return true;\r\n }\r\n const $this = $(this);\r\n\r\n const touchMode = $this.data('touchMode') as number;\r\n if ($tooltip_city.data('target') != $this.data('id')) {\r\n $this.data('touchMode', 1);\r\n } else if (touchMode === undefined) {\r\n $this.data('touchMode', 1);\r\n } else {\r\n $this.data('touchMode', touchMode + 1);\r\n }\r\n $map_body.data('touchMode', 1);\r\n\r\n $tooltip_city.data('target', $this.data('id'));\r\n\r\n\r\n });\r\n\r\n $objs.on('touchend', function () {\r\n if (window.sam_toggleSingleTap) {\r\n return true;\r\n }\r\n const $this = $(this);\r\n const position = $this.parent().position();\r\n $tooltip_city.html($this.data('text') as string);\r\n\r\n const nation_text = $this.data('nation') as string;\r\n if (nation_text) {\r\n $tooltip_nation.html(nation_text).show();\r\n } else {\r\n $tooltip_nation.html('').hide();\r\n }\r\n\r\n let left = position.left;\r\n let top = position.top;\r\n\r\n const scale = $map_body.data('scale');\r\n if (scale) {\r\n left /= scale;\r\n top /= scale;\r\n }\r\n\r\n $tooltip.css({ 'top': top + 25, 'left': left + 35 }).show();\r\n\r\n const touchMode = $this.data('touchMode') as number;\r\n if (touchMode <= 1) {\r\n return false;\r\n }\r\n\r\n //xxx: touchend 다음 click 이벤트가 갈 수도 있고, 안 갈 수도 있다.\r\n $this.data('touchMode', 0);\r\n });\r\n\r\n $map_body.on('touchend', function () {\r\n if (window.sam_toggleSingleTap) {\r\n return true;\r\n }\r\n //위의 touchend bind에 해당하지 않는 경우 -> 빈 지도 터치\r\n $tooltip.hide();\r\n });\r\n\r\n }\r\n\r\n //Mouse over 모드 작동\r\n\r\n $map_body.on('mousemove', function (e) {\r\n if ($(this).data('touchMode')) {\r\n return true;\r\n }\r\n\r\n const rect = this.getBoundingClientRect();\r\n let left = (e.clientX - rect.left - this.clientLeft + this.scrollLeft);\r\n let top = (e.clientY - rect.top - this.clientTop + this.scrollTop);\r\n\r\n const scale = $map_body.data('scale');\r\n if (scale) {\r\n left /= scale;\r\n top /= scale;\r\n }\r\n\r\n $tooltip.css({ 'top': top + 10, 'left': left + 10 });\r\n });\r\n\r\n $objs.on('mouseenter', function () {\r\n if ($map_body.data('touchMode')) {\r\n return true;\r\n }\r\n\r\n const $this = $(this);\r\n\r\n $tooltip_city.data('target', $this.data('id'));\r\n $tooltip_city.html($this.data('text'));\r\n const nation_text = $this.data('nation');\r\n if (nation_text) {\r\n $tooltip_nation.html(nation_text).show();\r\n } else {\r\n $tooltip_nation.html('').hide();\r\n }\r\n\r\n $tooltip.show();\r\n });\r\n\r\n $objs.on('mouseleave', function () {\r\n $tooltip.hide();\r\n });\r\n\r\n $objs.on('click', function () {\r\n //xxx: touchend 다음 click 이벤트가 갈 수도 있고, 안 갈 수도 있다.\r\n const touchMode = $(this).data('touchMode') as number|undefined;\r\n if (touchMode === undefined) {\r\n return;\r\n }\r\n\r\n if (touchMode === 1) {\r\n return false;\r\n }\r\n });\r\n\r\n\r\n return obj;\r\n }\r\n\r\n function setCityClickable(obj:MapCityDrawable) {\r\n\r\n obj.cityList.forEach(function (city) {\r\n const $cityLink = $world_map.find(`.city_base_${city.id} .city_link`);\r\n\r\n if ('clickable' in city && city.clickable > 0) {\r\n $cityLink.attr('href', hrefTemplate.format(city.id));\r\n }\r\n\r\n if (selectCallback) {\r\n $cityLink.on('click', function () {\r\n return selectCallback(city);\r\n });\r\n }\r\n });\r\n\r\n return obj;\r\n }\r\n\r\n function saveCityInfo(obj: MapCityDrawable) {\r\n $world_map.data('cityInfo', obj);\r\n return obj;\r\n }\r\n\r\n const $hideCityNameBtn = $world_map.find('.map_toggle_cityname');\r\n if (localStorage.getItem('sam.hideMapCityName') == 'yes') {\r\n $world_map.addClass('hide_cityname');\r\n $hideCityNameBtn.addClass('active').attr('aria-pressed', 'true');\r\n }\r\n\r\n $hideCityNameBtn.click(function () {\r\n //이전 상태 확인\r\n const state = !$hideCityNameBtn.hasClass('active');\r\n if (state) {\r\n $world_map.addClass('hide_cityname');\r\n localStorage.setItem('sam.hideMapCityName', 'yes');\r\n } else {\r\n $world_map.removeClass('hide_cityname');\r\n localStorage.setItem('sam.hideMapCityName', 'no');\r\n }\r\n });\r\n\r\n const $toggleSingleTapBtn = $world_map.find('.map_toggle_single_tap');\r\n if (localStorage.getItem('sam.toggleSingleTap') == 'yes') {\r\n window.sam_toggleSingleTap = true;\r\n $toggleSingleTapBtn.addClass('active').attr('aria-pressed', 'true');\r\n } else {\r\n window.sam_toggleSingleTap = false;\r\n }\r\n\r\n const $map_body = $(drawTarget + ' .map_body');\r\n\r\n $toggleSingleTapBtn.click(function () {\r\n //이전 상태 확인\r\n const state = !$toggleSingleTapBtn.hasClass('active');\r\n if (state) {\r\n $map_body.removeData('touchMode');\r\n localStorage.setItem('sam.toggleSingleTap', 'yes');\r\n window.sam_toggleSingleTap = true;\r\n } else {\r\n localStorage.setItem('sam.toggleSingleTap', 'no');\r\n window.sam_toggleSingleTap = false;\r\n }\r\n });\r\n\r\n if (isDetailMap) {\r\n $world_map.addClass('map_detail');\r\n } else {\r\n $world_map.removeClass('map_datail');\r\n }\r\n\r\n const responseP = axios({\r\n url: unwrap(option.targetJson),\r\n method: unwrap(option.reqType),\r\n responseType: 'json',\r\n data: convertFormData({\r\n data: JSON.stringify({\r\n neutralView: option.neutralView,\r\n year: option.year,\r\n month: option.month,\r\n showMe: option.showMe,\r\n aux: option.aux\r\n })\r\n })\r\n });\r\n\r\n const response = await responseP;\r\n\r\n const rawObject = response.data;\r\n\r\n const computedResult = await checkReturnObject(rawObject)\r\n .then(setMapBackground)\r\n .then(convertCityObjs)\r\n .then(isDetailMap ? drawDetailWorldMap : drawBasicWorldMap)\r\n .then(setMouseWork)\r\n .then(setCityClickable)\r\n .then(saveCityInfo);\r\n\r\n if (option.callback) {\r\n option.callback(computedResult, rawObject);\r\n }\r\n\r\n if ($world_map.hasClass('draw_required')) {\r\n if (useCachedMap) {\r\n //일단 불러옴\r\n await (async ()=>{\r\n const rawStoredMap = localStorage.getItem(storedOldMapKey);\r\n if (!rawStoredMap) {\r\n return;\r\n }\r\n const [storedServerID, storedMap] = JSON.parse(rawStoredMap) as [string, MapResult];\r\n if (storedServerID != serverID) {\r\n return;\r\n }\r\n\r\n await setMapBackground(storedMap)\r\n .then(convertCityObjs)\r\n .then(isDetailMap?drawDetailWorldMap:drawBasicWorldMap)\r\n .then(setMouseWork)\r\n .then(setCityClickable)\r\n .then(saveCityInfo);\r\n })();\r\n } else if (option.year && option.month) {\r\n const rawStartYear = localStorage.getItem(storedStartYear) as string|undefined;\r\n let startYear: number;\r\n if (rawStartYear) {\r\n startYear = JSON.parse(rawStartYear);\r\n } else {\r\n startYear = option.year;\r\n }\r\n await setMapBackground({\r\n year: option.year,\r\n month: option.month,\r\n startYear: startYear\r\n } as unknown as MapResult);\r\n }\r\n\r\n\r\n }\r\n}\r\n\r\nwindow.reloadWorldMap = reloadWorldMap;\r\n$(function () {\r\n if (is_touch_device()) {\r\n $('.map_body .map_toggle_single_tap').show();\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\tid: moduleId,\n\t\tloaded: false,\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// Flag the module as loaded\n\tmodule.loaded = true;\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","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 842;","// 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\t842: 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 = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\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\tfor(moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) var result = runtime(__webpack_require__);\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[chunkIds[i]] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkhidche_lib\"] = self[\"webpackChunkhidche_lib\"] || [];\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, [216], () => (__webpack_require__(9939)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","NotNullExpected","message","this","name","Error","result","convertDictById","arr","Object","values","v","id","convColorValue","color","charAt","substr","toUpperCase","Set","has","String","prototype","format","args","replace","match","number","toString","convertFormData","formData","FormData","simpleConv","TypeError","entries","key","value","arrKey","subValue","append","is_touch_device","query","prefixes","split","tWindow","window","DocumentTouch","document","join","matchMedia","matches","option","checkReturnObject","setMapBackground","convertCityObjs","drawDetailWorldMap","drawBasicWorldMap","setMouseWork","setCityClickable","saveCityInfo","obj","$world_map","data","cityList","forEach","city","$cityLink","find","clickable","attr","hrefTemplate","selectCallback","on","$tooltip","$","drawTarget","$tooltip_city","$tooltip_nation","$objs","$map_body","neutralView","e","sam_toggleSingleTap","$this","touchMode","undefined","position","parent","html","nation_text","show","hide","left","top","scale","css","rect","getBoundingClientRect","clientX","clientLeft","scrollLeft","clientY","clientTop","scrollTop","myCity","detach","$cityObj","addClass","level","x","y","$linkObj","text","nation","$imgObj","state","state_text","$stateObj","isCapital","$capitalObj","$nameObj","$bgObj","pathConfig","gameImage","nationID","flagType","supply","$flagObj","toCityObj","toNationObj","mergePositionInfo","mergeNationInfo","mergeClickable","spyList","myNation","shownByGeneralList","clickableAll","nationList","nationObj","capital","cityPosition","region","map","formatCityInfo","setTheme","oldTheme","newTheme","theme","removeClass","dynamicMapTheme","startYear","year","month","isDetailMap","$map_title","$map_title_tooltip","empty","tooltipTexts","startYearText","remainYear","remainMonth","push","currentTechLimit","Math","floor","max","nextTechLimitYear","reason","useCachedMap","localStorage","setItem","storedOldMapKey","JSON","stringify","serverID","storedStartYear","length","defaultOption","aux","showMe","targetJson","reqType","callback","getCityPosition","serverNick","$hideCityNameBtn","getItem","click","hasClass","$toggleSingleTapBtn","removeData","responseP","url","method","responseType","response","rawObject","then","computedResult","rawStoredMap","parse","storedServerID","storedMap","rawStartYear","reloadWorldMap","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","loaded","__webpack_modules__","call","m","O","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","keys","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","g","globalThis","Function","prop","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","bind","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"map.js","mappings":"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","sources":["webpack://hidche_lib/webpack/runtime/chunk loaded","webpack://hidche_lib/./hwe/ts/util.ts","webpack://hidche_lib/./hwe/ts/common_legacy.ts","webpack://hidche_lib/./hwe/ts/util/convertFormData.ts","webpack://hidche_lib/./hwe/ts/map.ts","webpack://hidche_lib/webpack/bootstrap","webpack://hidche_lib/webpack/runtime/compat get default export","webpack://hidche_lib/webpack/runtime/define property getters","webpack://hidche_lib/webpack/runtime/global","webpack://hidche_lib/webpack/runtime/hasOwnProperty shorthand","webpack://hidche_lib/webpack/runtime/make namespace object","webpack://hidche_lib/webpack/runtime/node module decorator","webpack://hidche_lib/webpack/runtime/runtimeId","webpack://hidche_lib/webpack/runtime/jsonp chunk loading","webpack://hidche_lib/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (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, fn, priority] = deferred[i];\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((key) => (__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};","type ErrType = { new(msg?: string): T }\nexport type Nullable = T | null | undefined\n\nexport class RuntimeError extends Error {\n public name = 'RuntimeError';\n constructor(public message: string = '') {\n super(message);\n }\n toString(): string {\n if (this.message) {\n return this.name + ': ' + this.message;\n }\n else {\n return this.name;\n }\n }\n}\n\nexport class NotNullExpected extends RuntimeError {\n public name = 'NotNullExpected';\n}\n\nexport function unwrap(result: Nullable): T {\n if (result === null || result === undefined) {\n throw new NotNullExpected();\n }\n return result;\n}\n\nexport function unwrap_err(result: Nullable, errType: ErrType, errMsg?: string): T {\n if (result === null || result === undefined) {\n throw new errType(errMsg);\n }\n return result;\n}","import { unwrap } from \"./util\";\n\nimport jQuery from \"jquery\";\nimport 'bootstrap';\n\nimport axios from \"axios\";\n\naxios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';\n//TODO: X-Requested-With 믿지 말자.\n\n/** \n * <>& 등을 html에서도 그대로 보이도록 escape주는 함수\n * @see https://stackoverflow.com/questions/24816/escaping-html-strings-with-jquery\n */\nexport const escapeHtml = (() => {\n const entityMap: { [v: string]: string } = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/',\n '`': '`',\n '=': '='\n };\n\n return function (string: string) {\n return String(string).replace(/[&<>\"'`=/]/g, function (s: string) {\n return entityMap[s];\n });\n }\n})();\n\n/**\n * 변수가 정수인지 확인하는 함수\n * @param {*} n 정수인지 확인하기 위한 인자\n * @return {boolean} 정수인지 여부\n */\nexport function isInt(n: unknown): n is number {\n const v = n as number;\n return +v === v && !(v % 1);\n}\n\n\n//https://gist.github.com/demouth/3217440\n/**\n * mb_strwidth\n * @see http://php.net/manual/function.mb-strwidth.php\n */\nexport function mb_strwidth(str: string): number {\n const l = str.length;\n let length = 0;\n for (let i = 0; i < l; i++) {\n const c = str.charCodeAt(i);\n if (0x0000 <= c && c <= 0x0019) {\n length += 0;\n } else if (0x0020 <= c && c <= 0x1FFF) {\n length += 1;\n } else if (0x2000 <= c && c <= 0xFF60) {\n length += 2;\n } else if (0xFF61 <= c && c <= 0xFF9F) {\n length += 1;\n } else if (0xFFA0 <= c) {\n length += 2;\n }\n }\n return length;\n}\n\n\n/**\n * mb_strimwidth\n * @param String\n * @param int\n * @param int\n * @param String\n * @return String\n * @see http://www.php.net/manual/function.mb-strimwidth.php\n */\nexport function mb_strimwidth(str: string, start: number, width: number, trimmarker = ''): string {\n const trimmakerWidth = mb_strwidth(trimmarker);\n const l = str.length;\n let trimmedLength = 0;\n const trimmedStr: string[] = [];\n for (let i = start; i < l; i++) {\n const c = str.charAt(i);\n const charWidth = mb_strwidth(c);\n const next = str.charAt(i + 1);\n const nextWidth = mb_strwidth(next);\n\n trimmedLength += charWidth;\n trimmedStr.push(c);\n if (trimmedLength + trimmakerWidth + nextWidth > width) {\n trimmedStr.push(trimmarker);\n break;\n }\n }\n return trimmedStr.join('');\n}\n\n/**\n * object의 array를 id를 key로 삼는 object로 재 변환\n */\nexport function convertDictById(arr: ArrayLike): Record {\n const result: Record = {};\n for (const v of Object.values(arr)) {\n result[v.id] = v;\n }\n return result;\n}\n\n/**\n * array를 set 형태의 object로 변환\n */\nexport function convertSet(arr: ArrayLike): Record {\n const result: Record = {};\n for (const v of Object.values(arr)) {\n result[v] = true;\n }\n return result;\n}\n\n\n/** \n * {0}, {1}, {2}형태로 포맷해주는 함수\n */\n\ndeclare global {\n interface String {\n format(...args: (string | number)[]): string;\n }\n}\nString.prototype.format = function (...args: (string | number)[]) {\n return this.replace(/{(\\d+)}/g, function (match, number) {\n return (typeof args[number] != 'undefined') ? args[number].toString() : match;\n });\n};\n\n\nexport function hexToRgb(hex: string): { r: number, g: number, b: number } | null {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16)\n } : null;\n}\n\nexport function isBrightColor(color: string): boolean {\n const cv = unwrap(hexToRgb(color));\n if ((cv.r * 0.299 + cv.g * 0.587 + cv.b * 0.114) > 140) {\n return true;\n } else {\n return false;\n }\n}\n\n/**\n * 게임내에서 지원하는 color type만 선택할 수 있도록 해주는 함수\n * @param {string} color #AAAAAA 또는 AAAAAA 형태로 작성된 RGB hex color string\n * @returns {string}\n */\nexport function convColorValue(color: string): string {\n if (color.charAt(0) == '#') {\n color = color.substr(1);\n }\n color = color.toUpperCase();\n\n const colorBase = new Set([\n '000080', '0000FF', '008000', '008080', '00BFFF', '00FF00', '00FFFF', '20B2AA',\n '2E8B57', '483D8B', '6495ED', '7B68EE', '7CFC00', '7FFFD4', '800000', '800080',\n '808000', '87CEEB', 'A0522D', 'A9A9A9', 'AFEEEE', 'BA55D3', 'E0FFFF', 'F5F5DC',\n 'FF0000', 'FF00FF', 'FF6347', 'FFA500', 'FFC0CB', 'FFD700', 'FFDAB9', 'FFFF00',\n 'FFFFFF'\n ]);\n\n if (!colorBase.has(color)) {\n return '000000';\n }\n\n return color;\n}\n\n\nexport function numberWithCommas(x: number): string {\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n}\n\n//linkify가 불러와 있어야함\ndeclare global {\n interface Window {\n linkifyStr: (v: string, k?: Record) => string;\n }\n}\nexport function linkifyStrWithOpt(text: string): string {\n return window.linkifyStr(text, {});\n}\n\n/**\n * 단순한 Template 함수. <%변수명%>으로 template 가능\n * @see https://github.com/krasimir/absurd/blob/master/lib/processors/html/helpers/TemplateEngine.js\n * @param {string} html \n * @param {object} options \n * @returns {string}\n */\nexport function TemplateEngine(html: string, options: Record = {}): string {\n const re = /<%(.+?)%>/g;\n const reExp = /(^( )?(var|if|for|else|switch|case|break|{|}|;))(.*)?/g;\n const code = ['with(obj) { var r=[];\\n'];\n let cursor = 0;\n const add = function (line: string, js?: boolean) {\n js ? code.push(line.match(reExp) ? line + '\\n' : 'r.push(' + line + ');\\n') :\n code.push(line != '' ? 'r.push(\"' + line.replace(/\"/g, '\\\\\"') + '\");\\n' : '');\n return add;\n }\n options.e = escapeHtml;\n options.linkifyStr = linkifyStrWithOpt;\n for (; ;) {\n const match = re.exec(html);\n if (!match) {\n break;\n }\n add(html.slice(cursor, match.index))(match[1], true);\n cursor = match.index + match[0].length;\n }\n add(html.substr(cursor, html.length - cursor));\n\n code.push('return r.join(\"\"); }');\n const compiledCode = code.join('').replace(/[\\r\\t\\n]/g, ' ');\n try {\n return new Function('obj', compiledCode).apply(options, [options]);\n } catch (err) {\n console.error(\"'\" + err.message + \"'\", \" in \\n\\nCode:\\n\", code, \"\\n\");\n throw err;\n }\n}\n\nexport function getIconPath(imgsvr: boolean | 1 | 0, picture: string): string {\n // ../d_shared/common_path.js 필요\n if (!imgsvr) {\n return window.pathConfig.sharedIcon + '/' + picture;\n } else {\n return window.pathConfig.root + '/d_pic/' + picture;\n }\n}\n\nexport function activeFlip($obj?: JQuery): void {\n let $result: JQuery;\n if ($obj === undefined) {\n $result = $('img[data-flip]');\n } else {\n $result = $obj.find('img[data-flip]');\n }\n\n $result.each(function () {\n activeFlipItem($(this));\n });\n\n}\n\nexport function combineObject(item: V[], columnList: K[]): Record {\n const newItem: Record = {};\n for (const columnIdx in columnList) {\n const columnName = columnList[columnIdx];\n newItem[columnName] = item[columnIdx];\n }\n return newItem;\n}\n\nexport function combineArray(array: V[][], columnList: K[]): Record[] {\n const result: Record[] = [];\n for (const key of array.keys()) {\n const item = array[key];\n result[key] = combineObject(item, columnList);\n }\n return result;\n}\n\nexport function activeFlipItem($img: JQuery): void {\n const imageList = [];\n imageList.push($img.attr('src'));\n $.each($img.data('flip').split(','), function (idx, value) {\n value = $.trim(value);\n if (!value) {\n return true;\n }\n imageList.push(value);\n });\n if (imageList.length <= 1) {\n return;\n }\n $img.data('computed_flip_array', imageList);\n $img.data('computed_flip_idx', 0);\n\n $img.click(function () {\n const arr = $img.data('computed_flip_array');\n let idx = $img.data('computed_flip_idx');\n idx = (idx + 1) % (arr.length);\n $img.attr('src', arr[idx]);\n $img.data('computed_flip_idx', idx);\n });\n $img.css('cursor', 'pointer');\n}\n\n\n\nexport function errUnknown(): void {\n alert('작업을 실패했습니다.');\n}\n\n\n\nexport function errUnknownToast(): void {\n jQuery.toast({\n title: '에러!',\n content: '작업을 실패했습니다.',\n type: 'danger',\n delay: 5000\n });\n}\n\nexport function quickReject(errMsg: string): JQuery.Promise {\n if (errMsg === undefined) {\n errMsg = '작업을 실패했습니다.';\n }\n const deferred = $.Deferred();\n void deferred.reject(errMsg);\n return deferred.promise();\n}\n\nexport function nl2br(text: string): string {\n return text.replace(/\\n/g, \"
\");\n}\n/*\nfunction br2nl (text) { \n return text.replace(/<\\s*\\/?br\\s*[\\/]?>/gi, '\\n');\n}\n*/\n\nexport function getNpcColor(npcType: number): 'cyan' | 'skyblue' | null {\n if (npcType >= 2) {\n return 'cyan';\n }\n if (npcType == 1) {\n return 'skyblue';\n }\n return null;\n}\n\nexport function initTooltip($obj?: JQuery): void {\n if ($obj === undefined) {\n $obj = $('.obj_tooltip');\n } else if (!$obj.hasClass('obj_tooltip')) {\n $obj = $obj.find('.obj_tooltip');\n }\n console.log($obj);\n\n $obj.each(function () {\n const $target = $(this);\n\n if ($target.data('installHandler')) {\n return;\n }\n $target.data('installHandler', true);\n\n $target.mouseover(function () {\n const $objTooltip = $(this);\n if ($objTooltip.data('setObjTooltip')) {\n return;\n }\n\n let tooltipClassText = $objTooltip.data('tooltip-class');\n if (!tooltipClassText) {\n tooltipClassText = '';\n }\n const template = '
'\n .format(tooltipClassText);\n\n $objTooltip.tooltip({\n title: function () {\n return $.trim($(this).find('.tooltiptext').html());\n },\n template: template,\n html: true\n }).tooltip('show');\n\n $objTooltip.data('setObjTooltip', true);\n });\n });\n}","import { isArray, isString, isNumber, isBoolean } from \"lodash\";\n\nexport function convertFormData(values: Record): FormData{\n const formData = new FormData();\n\n const simpleConv = (v: unknown):string=>{\n if(isString(v)){\n return v;\n }\n if(isNumber(v)){\n return v.toString();\n }\n if(isBoolean(v)){\n return v?'true':'false';\n }\n throw new TypeError('지원하지 않는 formData Type');\n }\n\n for(const [key, value] of Object.entries(values)){\n if(isArray(value)){\n const arrKey = `${key}[]`;\n for(const subValue of value){\n formData.append(arrKey, simpleConv(subValue));\n }\n continue;\n }\n\n formData.append(key, simpleConv(value));\n }\n\n return formData;\n}","import axios from 'axios';\r\nimport jQuery from 'jquery';\r\nimport { extend, isNumber } from 'lodash';\r\nimport { convColorValue, convertDictById, convertSet } from './common_legacy';\r\nimport { InvalidResponse } from './defs';\r\nimport { unwrap } from './util';\r\nimport { convertFormData } from './util/convertFormData';\r\n\r\ndeclare const serverNick: string;\r\ndeclare const serverID: string;\r\n\r\ntype CityPositionMap = {\r\n [cityID: number]: [string, number, number];\r\n}\r\n\r\ndeclare global {\r\n interface Window {\r\n sam_toggleSingleTap?: boolean,\r\n reloadWorldMap: (option: loadMapOption, drawTarget?: string) => Promise;\r\n getCityPosition: () => CityPositionMap;\r\n formatCityInfo: (city: MapCityParsedRaw)=>MapCityParsedRegionLevelText\r\n }\r\n}\r\n\r\ntype MapCityCompact = [number, number, number, number, number, number];\r\ntype MapNationCompact = [number, string, string, number];\r\n\r\ntype MapCityParsedRaw = {\r\n id: number,\r\n level: number,\r\n state: number,\r\n nationID?: number,\r\n region: number,\r\n supply: boolean\r\n};\r\n\r\ntype MapCityParsedName = MapCityParsedRaw & {\r\n name: string,\r\n x: number,\r\n y: number,\r\n};\r\n\r\ntype MapCityParsedNation = MapCityParsedName & {\r\n nationID?: number;\r\n nation?: string;\r\n color?: string;\r\n isCapital: boolean\r\n}\r\n\r\ntype MapCityParsedClickable = MapCityParsedNation & {\r\n clickable: number\r\n}\r\n\r\ntype MapCityParsedRegionLevelText = MapCityParsedClickable & {\r\n region_str: string,\r\n level_str: string,\r\n text: string,\r\n}\r\n\r\ntype MapCityParsed = MapCityParsedRegionLevelText;\r\n\r\ntype MapCityDrawable = {\r\n cityList: MapCityParsed[],\r\n myCity?: number\r\n};\r\n\r\ntype MapNationParsed = {\r\n id: number,\r\n name: string,\r\n color: string,\r\n capital: number\r\n}\r\n\r\ntype MapResult = {\r\n result: true,\r\n startYear: number,\r\n year: number,\r\n month: number,\r\n cityList: MapCityCompact[],\r\n nationList: MapNationCompact[],\r\n spyList: Record,\r\n shownByGeneralList: number[],\r\n myCity?: number,\r\n myNation?: number,\r\n\r\n theme?: string,\r\n history?: string[],\r\n}\r\ntype MapRawResult = InvalidResponse | MapResult;\r\n\r\nfunction is_touch_device(): boolean {\r\n const prefixes = ' -webkit- -moz- -o- -ms- '.split(' ');\r\n const mq = (query: string) => {\r\n return window.matchMedia(query).matches;\r\n }\r\n\r\n type TouchWindow = { DocumentTouch?: () => void | Document };\r\n const tWindow = window as unknown as TouchWindow;\r\n if (('ontouchstart' in window) || (tWindow.DocumentTouch && (document instanceof tWindow.DocumentTouch))) {\r\n return true;\r\n }\r\n\r\n\r\n // include the 'heartz' as a way to have a non matching MQ to help terminate the join\r\n // https://git.io/vznFH\r\n const query = ['(', prefixes.join('touch-enabled),('), 'heartz', ')'].join('');\r\n return mq(query);\r\n}\r\n\r\ntype loadMapOption = {\r\n isDetailMap?: boolean, //복잡 지도, 단순 지도\r\n clickableAll?: boolean, //어떤 경우든 클릭을 가능하게 함. 해당 동작의 동작 가능성 여부와는 별도.\r\n selectCallback?: (city: MapCityParsed) => void, //callback을 지정시 clickable과 관계 없이 해당 함수를 실행. \r\n hrefTemplate?: string, //도시가 클릭가능할 경우 지정할 href값. {0}은 도시 id로 변환됨\r\n useCachedMap?: boolean, //맵 캐시를 사용\r\n\r\n //아래부터는 post query에 들어갈 녀석\r\n year?: number, //year값, 연감등에 사용\r\n month?: number, //month값, 연감등에 사용\r\n aux?: Record, //기타 넣고 싶은 값을 입력\r\n neutralView?: boolean, //clickable, 소속 국가, 첩보 여부 등을 반환여부를 설정\r\n showMe?: boolean, //반환 값에 본인이 위치한 도시 값을 반환하도록 설정. neutralView와 별개\r\n\r\n targetJson?: string,\r\n reqType?: 'get' | 'post',\r\n dynamicMapTheme?: boolean,\r\n callback?: (a: unknown, rawObejct: unknown) => void,\r\n\r\n //기타 보조 값\r\n startYear?: number,\r\n}\r\n\r\nexport async function reloadWorldMap(option: loadMapOption, drawTarget = '.world_map'): Promise {\r\n const $world_map = jQuery(drawTarget);\r\n\r\n if ($world_map.length == 0) {\r\n return;\r\n }\r\n\r\n const defaultOption: loadMapOption = {\r\n isDetailMap: true, //복잡 지도, 단순 지도\r\n clickableAll: false, //어떤 경우든 클릭을 가능하게 함. 해당 동작의 동작 가능성 여부와는 별도.\r\n selectCallback: undefined, //callback을 지정시 clickable과 관계 없이 해당 함수를 실행. \r\n hrefTemplate: '#', //도시가 클릭가능할 경우 지정할 href값. {0}은 도시 id로 변환됨\r\n useCachedMap: false, //맵 캐시를 사용\r\n\r\n //아래부터는 post query에 들어갈 녀석\r\n year: undefined, //year값, 연감등에 사용\r\n month: undefined, //month값, 연감등에 사용\r\n aux: undefined, //기타 넣고 싶은 값을 입력\r\n neutralView: false, //clickable, 소속 국가, 첩보 여부 등을 반환여부를 설정\r\n showMe: true, //반환 값에 본인이 위치한 도시 값을 반환하도록 설정. neutralView와 별개\r\n\r\n targetJson: 'j_map.php',\r\n reqType: 'post',\r\n dynamicMapTheme: false,\r\n callback: undefined,\r\n\r\n //기타 보조 값\r\n startYear: undefined,\r\n };\r\n\r\n option = extend({}, defaultOption, option);\r\n\r\n const useCachedMap = option.useCachedMap;\r\n const isDetailMap = option.isDetailMap;\r\n const clickableAll = option.clickableAll;\r\n const selectCallback = option.selectCallback;\r\n const hrefTemplate = unwrap(option.hrefTemplate);\r\n\r\n const cityPosition = window.getCityPosition();\r\n\r\n const storedOldMapKey = `sam.${serverNick}.map`;\r\n const storedStartYear = `am.${serverNick}.startYear`;\r\n //OBJ : startYear, year, month, cityList, nationList, spyList, shownByGeneralList, myCity\r\n\r\n async function checkReturnObject(obj: MapRawResult): Promise {\r\n if (!obj.result) {\r\n throw `fail: ${obj.reason}`;\r\n }\r\n\r\n if (!isNumber(obj.startYear) ||\r\n !isNumber(obj.year) ||\r\n !isNumber(obj.month)\r\n ) {\r\n throw 'fail: date type';\r\n }\r\n\r\n if (useCachedMap) {\r\n localStorage.setItem(storedOldMapKey, JSON.stringify([serverID, obj]));\r\n localStorage.setItem(storedStartYear, JSON.stringify(obj.startYear));\r\n }\r\n\r\n $world_map.removeClass('draw_required');\r\n\r\n return obj;\r\n }\r\n\r\n\r\n\r\n async function setMapBackground(obj: MapResult): Promise {\r\n function setTheme() {\r\n const oldTheme = $world_map.data('currentTheme');\r\n const newTheme = obj.theme;\r\n if (oldTheme === newTheme) {\r\n return;\r\n }\r\n if (oldTheme) {\r\n $world_map.removeClass('map_theme_' + oldTheme);\r\n }\r\n $world_map.addClass('map_theme_' + newTheme);\r\n $world_map.data('currentTheme', newTheme ?? '_current');//FIXME: 뭔가 틀렸음. 전송시에 theme가 있어야하나?\r\n }\r\n if (option.dynamicMapTheme) {\r\n setTheme();\r\n }\r\n const startYear = obj.startYear;\r\n const year = obj.year;\r\n const month = obj.month;\r\n\r\n if (isDetailMap) {\r\n $world_map.addClass('map_detail').removeClass('map_basic');\r\n } else {\r\n $world_map.addClass('map_basic').removeClass('map_detail');\r\n }\r\n\r\n const $map_title = $('.map_title_text');\r\n if (year < startYear + 1) {\r\n $map_title.css('color', 'magenta');\r\n } else if (year < startYear + 2) {\r\n $map_title.css('color', 'orange');\r\n } else if (year < startYear + 3) {\r\n $map_title.css('color', 'yellow');\r\n }\r\n\r\n const $map_title_tooltip = $('.map_title .tooltiptext');\r\n $map_title_tooltip.empty();\r\n\r\n const tooltipTexts = [];\r\n if (year < startYear + 3) {\r\n const startYearText = [];\r\n let remainYear = startYear + 3 - year;\r\n const remainMonth = 12 - month + 1;\r\n if (remainMonth > 0) {\r\n remainYear -= 1;\r\n }\r\n if (remainYear) {\r\n startYearText.push('{0}년'.format(remainYear));\r\n }\r\n if (remainMonth) {\r\n startYearText.push('{0}개월'.format(remainMonth));\r\n }\r\n\r\n tooltipTexts.push('초반제한 기간 : {0} ({1}년)'.format(startYearText.join(' '), startYear + 3));\r\n }\r\n\r\n const currentTechLimit = Math.floor(Math.max(0, year - startYear) / 5) + 1;\r\n const nextTechLimitYear = currentTechLimit * 5 + startYear;\r\n\r\n tooltipTexts.push('기술등급 제한 : {0}등급 ({1}년 해제)'.format(currentTechLimit, nextTechLimitYear, currentTechLimit + 1));\r\n $map_title_tooltip.html(tooltipTexts.join('
'));\r\n\r\n $world_map.removeClass('map_string map_summer map_fall map_winter');\r\n if (month <= 3) {\r\n $world_map.addClass('map_spring');\r\n } else if (month <= 6) {\r\n $world_map.addClass('map_summer');\r\n } else if (month <= 9) {\r\n $world_map.addClass('map_fall');\r\n } else {\r\n $world_map.addClass('map_winter');\r\n }\r\n\r\n $map_title.html('{0}年 {1}月'.format(year, month));\r\n\r\n return obj;\r\n }\r\n\r\n async function convertCityObjs(obj: MapResult): Promise {\r\n //원본 Obj는 굉장히 간소하게 온다, Object 형태로 변환해서 사용한다.\r\n\r\n function toCityObj([id, level, state, nationID, region, supply]: MapCityCompact): MapCityParsedRaw {\r\n return {\r\n id: id,\r\n level: level,\r\n state: state,\r\n nationID: nationID > 0 ? nationID : undefined,\r\n region: region,\r\n supply: supply != 0\r\n };\r\n }\r\n\r\n function toNationObj([id, name, color, capital]: MapNationCompact): MapNationParsed {\r\n return {\r\n id,\r\n name,\r\n color,\r\n capital\r\n };\r\n }\r\n\r\n const nationList = convertDictById(obj.nationList.map(toNationObj)); //array of object -> dict\r\n\r\n const spyList = obj.spyList;\r\n const shownByGeneralList = new Set(obj.shownByGeneralList);\r\n\r\n const myCity = obj.myCity;\r\n const myNation = obj.myNation;\r\n\r\n\r\n function mergePositionInfo(city: MapCityParsedRaw): MapCityParsedName {\r\n const id = city.id;\r\n if (!(id in cityPosition)) {\r\n throw TypeError(`알수 없는 cityID: ${id}`);\r\n }\r\n const [name, x, y] = cityPosition[id];\r\n\r\n return {\r\n ...city,\r\n name,\r\n x,\r\n y,\r\n };\r\n }\r\n\r\n function mergeNationInfo(city: MapCityParsedName):MapCityParsedNation{\r\n //nationID 값으로 isCapital, color, nation을 통합\r\n\r\n const nationID = city.nationID;\r\n if (nationID === undefined || !(nationID in nationList)) {\r\n return {\r\n ...city,\r\n isCapital: false,\r\n };\r\n }\r\n\r\n const nationObj = nationList[nationID];\r\n return {\r\n ...city,\r\n nation: nationObj.name,\r\n color: nationObj.color,\r\n isCapital: nationObj.capital == city.id\r\n };\r\n }\r\n\r\n function mergeClickable(city:MapCityParsedNation): MapCityParsedClickable {\r\n //clickable = (defaultCity << 4 ) | (remainSpy << 3) | (ourCity << 2) | (shownByGeneral << 1) | clickableAll\r\n const id = city.id;\r\n const nationID = city.nationID;\r\n let clickable = 16;\r\n if (id in spyList) {\r\n clickable |= spyList[id] << 3;\r\n }\r\n if (myNation !== null && nationID == myNation) {\r\n clickable |= 4;\r\n }\r\n if (shownByGeneralList.has(id)) {\r\n clickable |= 2;\r\n }\r\n if (myCity !== null && id == myCity) {\r\n clickable |= 2;\r\n }\r\n if (clickableAll) {\r\n clickable |= 1;\r\n }\r\n\r\n\r\n return {\r\n ...city,\r\n clickable\r\n };\r\n }\r\n\r\n const cityList = obj.cityList.map(toCityObj)\r\n .map(mergePositionInfo)\r\n .map(mergeNationInfo)\r\n .map(mergeClickable)\r\n .map(window.formatCityInfo);\r\n\r\n return {\r\n 'cityList': cityList,\r\n 'myCity': myCity\r\n };\r\n }\r\n\r\n function drawDetailWorldMap(obj: MapCityDrawable) {\r\n\r\n const $map_body = $(drawTarget + ' .map_body');\r\n\r\n const cityList = obj.cityList;\r\n const myCity = obj.myCity;\r\n\r\n cityList.forEach(function (city) {\r\n const id = city.id;\r\n $(`.city_base_${id}`).detach();\r\n //이전 도시는 지운다.\r\n\r\n const $cityObj = $(`
`);\r\n $cityObj.addClass(`city_level_${city.level}`);\r\n $cityObj.data('obj', city).css({ 'left': city.x - 20, 'top': city.y - 15 });\r\n\r\n if (city.color !== undefined) {\r\n const $bgObj = $('
');\r\n $cityObj.append($bgObj);\r\n $bgObj.css({ 'background-image': 'url({0}/b{1}.png)'.format(window.pathConfig.gameImage, convColorValue(city.color)) });\r\n }\r\n\r\n const $linkObj = $('');\r\n $linkObj.data({ 'text': city.text, 'nation': city.nation, 'id': city.id });\r\n $cityObj.append($linkObj);\r\n\r\n const $imgObj = $(`
`);\r\n $linkObj.append($imgObj);\r\n\r\n if (city.state > 0) {\r\n const $stateObj = $(`
`);\r\n $linkObj.append($stateObj);\r\n }\r\n\r\n if (city.nationID && city.nationID > 0) {\r\n const flagType = city.supply ? 'f' : 'd';\r\n const $flagObj = $(`
`);\r\n if (city.isCapital) {\r\n const $capitalObj = $(`
`);\r\n $flagObj.append($capitalObj);\r\n }\r\n $imgObj.append($flagObj);\r\n }\r\n\r\n const $nameObj = $(`${city.name}`);\r\n $imgObj.append($nameObj);\r\n\r\n\r\n $map_body.append($cityObj);\r\n\r\n\r\n });\r\n\r\n if(myCity){\r\n $world_map.find(`.city_base_${myCity} .city_filler`).addClass('my_city');\r\n }\r\n \r\n\r\n return obj;\r\n }\r\n\r\n function drawBasicWorldMap(obj:MapCityDrawable) {\r\n\r\n const $map_body = $(`${drawTarget} .map_body`);\r\n\r\n const cityList = obj.cityList;\r\n const myCity = obj.myCity;\r\n\r\n cityList.forEach(function (city) {\r\n const id = city.id;\r\n $(`.city_base_${id}`).detach();\r\n //이전 도시는 지운다.\r\n\r\n const $cityObj = $(`
`);\r\n $cityObj.addClass(`city_level_${city.level}`);\r\n $cityObj.data('obj', city).css({ 'left': city.x - 20, 'top': city.y - 15 });\r\n\r\n const $linkObj = $('');\r\n $linkObj.data({ 'text': city.text, 'nation': city.nation, 'id': city.id });\r\n $cityObj.append($linkObj);\r\n\r\n const $imgObj = $('
');\r\n if (city.color !== undefined) {\r\n $imgObj.css({ 'background-color': city.color });\r\n }\r\n $linkObj.append($imgObj);\r\n\r\n if (city.state > 0) {\r\n let state_text = 'wrong';\r\n if (city.state < 10) {\r\n state_text = 'good';\r\n } else if (city.state < 40) {\r\n state_text = 'bad';\r\n } else if (city.state < 50) {\r\n state_text = 'war';\r\n }\r\n\r\n const $stateObj = $(`
`);\r\n $imgObj.append($stateObj);\r\n }\r\n\r\n //단순 표기에서는 깃발 여부가 없음\r\n if (city.isCapital) {\r\n const $capitalObj = $('
');\r\n $imgObj.append($capitalObj);\r\n }\r\n\r\n const $nameObj = $(`${city.name}`.format());\r\n $imgObj.append($nameObj);\r\n\r\n $map_body.append($cityObj);\r\n });\r\n\r\n if(myCity){\r\n $world_map.find(`.city_base_${myCity} .city_filler`).addClass('my_city');\r\n }\r\n \r\n\r\n return obj;\r\n }\r\n\r\n function setMouseWork(obj:MapCityDrawable) {\r\n const $tooltip = $(drawTarget + ' .city_tooltip');\r\n const $tooltip_city = $tooltip.find('.city_name');\r\n const $tooltip_nation = $tooltip.find('.nation_name');\r\n\r\n const $objs = $(drawTarget + ' .city_link');\r\n\r\n const $map_body = $(drawTarget + ' .map_body');\r\n\r\n //터치스크린 탭\r\n\r\n if (!option.neutralView && is_touch_device()) {\r\n $objs.on('touchstart', function (e) {\r\n if (window.sam_toggleSingleTap) {\r\n return true;\r\n }\r\n const $this = $(this);\r\n\r\n const touchMode = $this.data('touchMode') as number;\r\n if ($tooltip_city.data('target') != $this.data('id')) {\r\n $this.data('touchMode', 1);\r\n } else if (touchMode === undefined) {\r\n $this.data('touchMode', 1);\r\n } else {\r\n $this.data('touchMode', touchMode + 1);\r\n }\r\n $map_body.data('touchMode', 1);\r\n\r\n $tooltip_city.data('target', $this.data('id'));\r\n\r\n\r\n });\r\n\r\n $objs.on('touchend', function () {\r\n if (window.sam_toggleSingleTap) {\r\n return true;\r\n }\r\n const $this = $(this);\r\n const position = $this.parent().position();\r\n $tooltip_city.html($this.data('text') as string);\r\n\r\n const nation_text = $this.data('nation') as string;\r\n if (nation_text) {\r\n $tooltip_nation.html(nation_text).show();\r\n } else {\r\n $tooltip_nation.html('').hide();\r\n }\r\n\r\n let left = position.left;\r\n let top = position.top;\r\n\r\n const scale = $map_body.data('scale');\r\n if (scale) {\r\n left /= scale;\r\n top /= scale;\r\n }\r\n\r\n $tooltip.css({ 'top': top + 25, 'left': left + 35 }).show();\r\n\r\n const touchMode = $this.data('touchMode') as number;\r\n if (touchMode <= 1) {\r\n return false;\r\n }\r\n\r\n //xxx: touchend 다음 click 이벤트가 갈 수도 있고, 안 갈 수도 있다.\r\n $this.data('touchMode', 0);\r\n });\r\n\r\n $map_body.on('touchend', function () {\r\n if (window.sam_toggleSingleTap) {\r\n return true;\r\n }\r\n //위의 touchend bind에 해당하지 않는 경우 -> 빈 지도 터치\r\n $tooltip.hide();\r\n });\r\n\r\n }\r\n\r\n //Mouse over 모드 작동\r\n\r\n $map_body.on('mousemove', function (e) {\r\n if ($(this).data('touchMode')) {\r\n return true;\r\n }\r\n\r\n const rect = this.getBoundingClientRect();\r\n let left = (e.clientX - rect.left - this.clientLeft + this.scrollLeft);\r\n let top = (e.clientY - rect.top - this.clientTop + this.scrollTop);\r\n\r\n const scale = $map_body.data('scale');\r\n if (scale) {\r\n left /= scale;\r\n top /= scale;\r\n }\r\n\r\n $tooltip.css({ 'top': top + 10, 'left': left + 10 });\r\n });\r\n\r\n $objs.on('mouseenter', function () {\r\n if ($map_body.data('touchMode')) {\r\n return true;\r\n }\r\n\r\n const $this = $(this);\r\n\r\n $tooltip_city.data('target', $this.data('id'));\r\n $tooltip_city.html($this.data('text'));\r\n const nation_text = $this.data('nation');\r\n if (nation_text) {\r\n $tooltip_nation.html(nation_text).show();\r\n } else {\r\n $tooltip_nation.html('').hide();\r\n }\r\n\r\n $tooltip.show();\r\n });\r\n\r\n $objs.on('mouseleave', function () {\r\n $tooltip.hide();\r\n });\r\n\r\n $objs.on('click', function () {\r\n //xxx: touchend 다음 click 이벤트가 갈 수도 있고, 안 갈 수도 있다.\r\n const touchMode = $(this).data('touchMode') as number|undefined;\r\n if (touchMode === undefined) {\r\n return;\r\n }\r\n\r\n if (touchMode === 1) {\r\n return false;\r\n }\r\n });\r\n\r\n\r\n return obj;\r\n }\r\n\r\n function setCityClickable(obj:MapCityDrawable) {\r\n\r\n obj.cityList.forEach(function (city) {\r\n const $cityLink = $world_map.find(`.city_base_${city.id} .city_link`);\r\n\r\n if ('clickable' in city && city.clickable > 0) {\r\n $cityLink.attr('href', hrefTemplate.format(city.id));\r\n }\r\n\r\n if (selectCallback) {\r\n $cityLink.on('click', function () {\r\n return selectCallback(city);\r\n });\r\n }\r\n });\r\n\r\n return obj;\r\n }\r\n\r\n function saveCityInfo(obj: MapCityDrawable) {\r\n $world_map.data('cityInfo', obj);\r\n return obj;\r\n }\r\n\r\n const $hideCityNameBtn = $world_map.find('.map_toggle_cityname');\r\n if (localStorage.getItem('sam.hideMapCityName') == 'yes') {\r\n $world_map.addClass('hide_cityname');\r\n $hideCityNameBtn.addClass('active').attr('aria-pressed', 'true');\r\n }\r\n\r\n $hideCityNameBtn.click(function () {\r\n //이전 상태 확인\r\n const state = !$hideCityNameBtn.hasClass('active');\r\n if (state) {\r\n $world_map.addClass('hide_cityname');\r\n localStorage.setItem('sam.hideMapCityName', 'yes');\r\n } else {\r\n $world_map.removeClass('hide_cityname');\r\n localStorage.setItem('sam.hideMapCityName', 'no');\r\n }\r\n });\r\n\r\n const $toggleSingleTapBtn = $world_map.find('.map_toggle_single_tap');\r\n if (localStorage.getItem('sam.toggleSingleTap') == 'yes') {\r\n window.sam_toggleSingleTap = true;\r\n $toggleSingleTapBtn.addClass('active').attr('aria-pressed', 'true');\r\n } else {\r\n window.sam_toggleSingleTap = false;\r\n }\r\n\r\n const $map_body = $(drawTarget + ' .map_body');\r\n\r\n $toggleSingleTapBtn.click(function () {\r\n //이전 상태 확인\r\n const state = !$toggleSingleTapBtn.hasClass('active');\r\n if (state) {\r\n $map_body.removeData('touchMode');\r\n localStorage.setItem('sam.toggleSingleTap', 'yes');\r\n window.sam_toggleSingleTap = true;\r\n } else {\r\n localStorage.setItem('sam.toggleSingleTap', 'no');\r\n window.sam_toggleSingleTap = false;\r\n }\r\n });\r\n\r\n if (isDetailMap) {\r\n $world_map.addClass('map_detail');\r\n } else {\r\n $world_map.removeClass('map_datail');\r\n }\r\n\r\n const responseP = axios({\r\n url: unwrap(option.targetJson),\r\n method: unwrap(option.reqType),\r\n responseType: 'json',\r\n data: convertFormData({\r\n data: JSON.stringify({\r\n neutralView: option.neutralView,\r\n year: option.year,\r\n month: option.month,\r\n showMe: option.showMe,\r\n aux: option.aux\r\n })\r\n })\r\n });\r\n\r\n const response = await responseP;\r\n\r\n const rawObject = response.data;\r\n\r\n const computedResult = await checkReturnObject(rawObject)\r\n .then(setMapBackground)\r\n .then(convertCityObjs)\r\n .then(isDetailMap ? drawDetailWorldMap : drawBasicWorldMap)\r\n .then(setMouseWork)\r\n .then(setCityClickable)\r\n .then(saveCityInfo);\r\n\r\n if (option.callback) {\r\n option.callback(computedResult, rawObject);\r\n }\r\n\r\n if ($world_map.hasClass('draw_required')) {\r\n if (useCachedMap) {\r\n //일단 불러옴\r\n await (async ()=>{\r\n const rawStoredMap = localStorage.getItem(storedOldMapKey);\r\n if (!rawStoredMap) {\r\n return;\r\n }\r\n const [storedServerID, storedMap] = JSON.parse(rawStoredMap) as [string, MapResult];\r\n if (storedServerID != serverID) {\r\n return;\r\n }\r\n\r\n await setMapBackground(storedMap)\r\n .then(convertCityObjs)\r\n .then(isDetailMap?drawDetailWorldMap:drawBasicWorldMap)\r\n .then(setMouseWork)\r\n .then(setCityClickable)\r\n .then(saveCityInfo);\r\n })();\r\n } else if (option.year && option.month) {\r\n const rawStartYear = localStorage.getItem(storedStartYear) as string|undefined;\r\n let startYear: number;\r\n if (rawStartYear) {\r\n startYear = JSON.parse(rawStartYear);\r\n } else {\r\n startYear = option.year;\r\n }\r\n await setMapBackground({\r\n year: option.year,\r\n month: option.month,\r\n startYear: startYear\r\n } as unknown as MapResult);\r\n }\r\n\r\n\r\n }\r\n}\r\n\r\nwindow.reloadWorldMap = reloadWorldMap;\r\n$(function () {\r\n if (is_touch_device()) {\r\n $('.map_body .map_toggle_single_tap').show();\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\tid: moduleId,\n\t\tloaded: false,\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// Flag the module as loaded\n\tmodule.loaded = true;\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","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 842;","// 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\t842: 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 = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\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\tfor(moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) var result = runtime(__webpack_require__);\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[chunkIds[i]] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkhidche_lib\"] = self[\"webpackChunkhidche_lib\"] || [];\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, [216], () => (__webpack_require__(9939)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","NotNullExpected","message","this","name","Error","result","convertDictById","arr","Object","values","v","id","convColorValue","color","charAt","substr","toUpperCase","Set","has","String","prototype","format","args","replace","match","number","toString","convertFormData","formData","FormData","simpleConv","TypeError","entries","key","value","arrKey","subValue","append","is_touch_device","query","prefixes","split","tWindow","window","DocumentTouch","document","join","matchMedia","matches","option","checkReturnObject","setMapBackground","convertCityObjs","drawDetailWorldMap","drawBasicWorldMap","setMouseWork","setCityClickable","saveCityInfo","obj","$world_map","data","cityList","forEach","city","$cityLink","find","clickable","attr","hrefTemplate","selectCallback","on","$tooltip","$","drawTarget","$tooltip_city","$tooltip_nation","$objs","$map_body","neutralView","e","sam_toggleSingleTap","$this","touchMode","undefined","position","parent","html","nation_text","show","hide","left","top","scale","css","rect","getBoundingClientRect","clientX","clientLeft","scrollLeft","clientY","clientTop","scrollTop","myCity","detach","$cityObj","addClass","level","x","y","$linkObj","text","nation","$imgObj","state","state_text","$stateObj","isCapital","$capitalObj","$nameObj","$bgObj","pathConfig","gameImage","nationID","flagType","supply","$flagObj","toCityObj","toNationObj","mergePositionInfo","mergeNationInfo","mergeClickable","spyList","myNation","shownByGeneralList","clickableAll","nationList","nationObj","capital","cityPosition","region","map","formatCityInfo","setTheme","oldTheme","newTheme","theme","removeClass","dynamicMapTheme","startYear","year","month","isDetailMap","$map_title","$map_title_tooltip","empty","tooltipTexts","startYearText","remainYear","remainMonth","push","currentTechLimit","Math","floor","max","nextTechLimitYear","reason","useCachedMap","localStorage","setItem","storedOldMapKey","JSON","stringify","serverID","storedStartYear","length","defaultOption","aux","showMe","targetJson","reqType","callback","getCityPosition","serverNick","$hideCityNameBtn","getItem","click","hasClass","$toggleSingleTapBtn","removeData","responseP","url","method","responseType","response","rawObject","then","computedResult","rawStoredMap","parse","storedServerID","storedMap","rawStartYear","reloadWorldMap","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","loaded","__webpack_modules__","call","m","O","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","keys","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","g","globalThis","Function","prop","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","bind","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/hwe/js/troop.js.map b/hwe/js/troop.js.map index f8d8b7c2..243eeaee 100644 --- a/hwe/js/troop.js.map +++ b/hwe/js/troop.js.map @@ -1 +1 @@ -{"version":3,"file":"troop.js","mappings":"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","sources":["webpack://hidche_lib/webpack/runtime/chunk loaded","webpack://hidche_lib/./hwe/ts/util.ts","webpack://hidche_lib/./hwe/ts/common_legacy.ts","webpack://hidche_lib/./hwe/ts/troop.ts","webpack://hidche_lib/./hwe/ts/ext.plugin_troop.ts","webpack://hidche_lib/webpack/bootstrap","webpack://hidche_lib/webpack/runtime/compat get default export","webpack://hidche_lib/webpack/runtime/define property getters","webpack://hidche_lib/webpack/runtime/global","webpack://hidche_lib/webpack/runtime/hasOwnProperty shorthand","webpack://hidche_lib/webpack/runtime/make namespace object","webpack://hidche_lib/webpack/runtime/node module decorator","webpack://hidche_lib/webpack/runtime/runtimeId","webpack://hidche_lib/webpack/runtime/jsonp chunk loading","webpack://hidche_lib/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (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, fn, priority] = deferred[i];\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((key) => (__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};","type ErrType = { new(msg?: string): T }\nexport type Nullable = T | null | undefined\n\nexport class RuntimeError extends Error {\n public name = 'RuntimeError';\n constructor(public message: string = '') {\n super(message);\n }\n toString(): string {\n if (this.message) {\n return this.name + ': ' + this.message;\n }\n else {\n return this.name;\n }\n }\n}\n\nexport class NotNullExpected extends RuntimeError {\n public name = 'NotNullExpected';\n}\n\nexport function unwrap(result: Nullable): T {\n if (result === null || result === undefined) {\n throw new NotNullExpected();\n }\n return result;\n}\n\nexport function unwrap_err(result: Nullable, errType: ErrType, errMsg?: string): T {\n if (result === null || result === undefined) {\n throw new errType(errMsg);\n }\n return result;\n}","import { unwrap } from \"./util\";\n\nimport jQuery from \"jquery\";\nimport 'bootstrap';\n\nimport axios from \"axios\";\n\naxios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';\n//TODO: X-Requested-With 믿지 말자.\n\n/** \n * <>& 등을 html에서도 그대로 보이도록 escape주는 함수\n * @see https://stackoverflow.com/questions/24816/escaping-html-strings-with-jquery\n */\nexport const escapeHtml = (() => {\n const entityMap: { [v: string]: string } = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/',\n '`': '`',\n '=': '='\n };\n\n return function (string: string) {\n return String(string).replace(/[&<>\"'`=/]/g, function (s: string) {\n return entityMap[s];\n });\n }\n})();\n\n/**\n * 변수가 정수인지 확인하는 함수\n * @param {*} n 정수인지 확인하기 위한 인자\n * @return {boolean} 정수인지 여부\n */\nexport function isInt(n: unknown): n is number {\n const v = n as number;\n return +v === v && !(v % 1);\n}\n\n\n//https://gist.github.com/demouth/3217440\n/**\n * mb_strwidth\n * @see http://php.net/manual/function.mb-strwidth.php\n */\nexport function mb_strwidth(str: string): number {\n const l = str.length;\n let length = 0;\n for (let i = 0; i < l; i++) {\n const c = str.charCodeAt(i);\n if (0x0000 <= c && c <= 0x0019) {\n length += 0;\n } else if (0x0020 <= c && c <= 0x1FFF) {\n length += 1;\n } else if (0x2000 <= c && c <= 0xFF60) {\n length += 2;\n } else if (0xFF61 <= c && c <= 0xFF9F) {\n length += 1;\n } else if (0xFFA0 <= c) {\n length += 2;\n }\n }\n return length;\n}\n\n\n/**\n * mb_strimwidth\n * @param String\n * @param int\n * @param int\n * @param String\n * @return String\n * @see http://www.php.net/manual/function.mb-strimwidth.php\n */\nexport function mb_strimwidth(str: string, start: number, width: number, trimmarker = ''): string {\n const trimmakerWidth = mb_strwidth(trimmarker);\n const l = str.length;\n let trimmedLength = 0;\n const trimmedStr: string[] = [];\n for (let i = start; i < l; i++) {\n const c = str.charAt(i);\n const charWidth = mb_strwidth(c);\n const next = str.charAt(i + 1);\n const nextWidth = mb_strwidth(next);\n\n trimmedLength += charWidth;\n trimmedStr.push(c);\n if (trimmedLength + trimmakerWidth + nextWidth > width) {\n trimmedStr.push(trimmarker);\n break;\n }\n }\n return trimmedStr.join('');\n}\n\n/**\n * object의 array를 id를 key로 삼는 object로 재 변환\n */\nexport function convertDictById(arr: ArrayLike): Record {\n const result: Record = {};\n for (const v of Object.values(arr)) {\n result[v.id] = v;\n }\n return result;\n}\n\n/**\n * array를 set 형태의 object로 변환\n */\nexport function convertSet(arr: ArrayLike): Record {\n const result: Record = {};\n for (const v of Object.values(arr)) {\n result[v] = true;\n }\n return result;\n}\n\n\n/** \n * {0}, {1}, {2}형태로 포맷해주는 함수\n */\n\ndeclare global {\n interface String {\n format(...args: (string | number)[]): string;\n }\n}\nString.prototype.format = function (...args: (string | number)[]) {\n return this.replace(/{(\\d+)}/g, function (match, number) {\n return (typeof args[number] != 'undefined') ? args[number].toString() : match;\n });\n};\n\n\nexport function hexToRgb(hex: string): { r: number, g: number, b: number } | null {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16)\n } : null;\n}\n\nexport function isBrightColor(color: string): boolean {\n const cv = unwrap(hexToRgb(color));\n if ((cv.r * 0.299 + cv.g * 0.587 + cv.b * 0.114) > 140) {\n return true;\n } else {\n return false;\n }\n}\n\n/**\n * 게임내에서 지원하는 color type만 선택할 수 있도록 해주는 함수\n * @param {string} color #AAAAAA 또는 AAAAAA 형태로 작성된 RGB hex color string\n * @returns {string}\n */\nexport function convColorValue(color: string): string {\n if (color.charAt(0) == '#') {\n color = color.substr(1);\n }\n color = color.toUpperCase();\n\n const colorBase = new Set([\n '000080', '0000FF', '008000', '008080', '00BFFF', '00FF00', '00FFFF', '20B2AA',\n '2E8B57', '483D8B', '6495ED', '7B68EE', '7CFC00', '7FFFD4', '800000', '800080',\n '808000', '87CEEB', 'A0522D', 'A9A9A9', 'AFEEEE', 'BA55D3', 'E0FFFF', 'F5F5DC',\n 'FF0000', 'FF00FF', 'FF6347', 'FFA500', 'FFC0CB', 'FFD700', 'FFDAB9', 'FFFF00',\n 'FFFFFF'\n ]);\n\n if (!colorBase.has(color)) {\n return '000000';\n }\n\n return color;\n}\n\n\nexport function numberWithCommas(x: number): string {\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n}\n\n//linkify가 불러와 있어야함\ndeclare global {\n interface Window {\n linkifyStr: (v: string, k?: Record) => string;\n }\n}\nexport function linkifyStrWithOpt(text: string): string {\n return window.linkifyStr(text, {});\n}\n\n/**\n * 단순한 Template 함수. <%변수명%>으로 template 가능\n * @see https://github.com/krasimir/absurd/blob/master/lib/processors/html/helpers/TemplateEngine.js\n * @param {string} html \n * @param {object} options \n * @returns {string}\n */\nexport function TemplateEngine(html: string, options: Record = {}): string {\n const re = /<%(.+?)%>/g;\n const reExp = /(^( )?(var|if|for|else|switch|case|break|{|}|;))(.*)?/g;\n let cursor = 0;\n const add = function (line: string, js?: boolean) {\n js ? (code += line.match(reExp) ? line + '\\n' : 'r.push(' + line + ');\\n') :\n (code += line != '' ? 'r.push(\"' + line.replace(/\"/g, '\\\\\"') + '\");\\n' : '');\n return add;\n }\n options.e = escapeHtml;\n options.linkifyStr = linkifyStrWithOpt;\n for (; ;) {\n const match = re.exec(html);\n if (!match) {\n break;\n }\n add(html.slice(cursor, match.index))(match[1], true);\n cursor = match.index + match[0].length;\n }\n add(html.substr(cursor, html.length - cursor));\n\n let code = 'with(obj) { var r=[];\\n';\n code = (code + 'return r.join(\"\"); }').replace(/[\\r\\t\\n]/g, ' ');\n try {\n return new Function('obj', code).apply(options, [options]);\n } catch (err) {\n console.error(\"'\" + err.message + \"'\", \" in \\n\\nCode:\\n\", code, \"\\n\");\n throw err;\n }\n}\n\nexport function getIconPath(imgsvr: boolean | 1 | 0, picture: string): string {\n // ../d_shared/common_path.js 필요\n if (!imgsvr) {\n return window.pathConfig.sharedIcon + '/' + picture;\n } else {\n return window.pathConfig.root + '/d_pic/' + picture;\n }\n}\n\nexport function activeFlip($obj?: JQuery): void {\n let $result: JQuery;\n if ($obj === undefined) {\n $result = $('img[data-flip]');\n } else {\n $result = $obj.find('img[data-flip]');\n }\n\n $result.each(function () {\n activeFlipItem($(this));\n });\n\n}\n\nexport function combineObject(item: V[], columnList: K[]): Record {\n const newItem: Record = {};\n for (const columnIdx in columnList) {\n const columnName = columnList[columnIdx];\n newItem[columnName] = item[columnIdx];\n }\n return newItem;\n}\n\nexport function combineArray(array: V[][], columnList: K[]): Record[] {\n const result: Record[] = [];\n for (const key of array.keys()) {\n const item = array[key];\n result[key] = combineObject(item, columnList);\n }\n return result;\n}\n\nexport function activeFlipItem($img: JQuery): void {\n const imageList = [];\n imageList.push($img.attr('src'));\n $.each($img.data('flip').split(','), function (idx, value) {\n value = $.trim(value);\n if (!value) {\n return true;\n }\n imageList.push(value);\n });\n if (imageList.length <= 1) {\n return;\n }\n $img.data('computed_flip_array', imageList);\n $img.data('computed_flip_idx', 0);\n\n $img.click(function () {\n const arr = $img.data('computed_flip_array');\n let idx = $img.data('computed_flip_idx');\n idx = (idx + 1) % (arr.length);\n $img.attr('src', arr[idx]);\n $img.data('computed_flip_idx', idx);\n });\n $img.css('cursor', 'pointer');\n}\n\n\n\nexport function errUnknown(): void {\n alert('작업을 실패했습니다.');\n}\n\n\n\nexport function errUnknownToast(): void {\n jQuery.toast({\n title: '에러!',\n content: '작업을 실패했습니다.',\n type: 'danger',\n delay: 5000\n });\n}\n\nexport function quickReject(errMsg: string): JQuery.Promise {\n if (errMsg === undefined) {\n errMsg = '작업을 실패했습니다.';\n }\n const deferred = $.Deferred();\n void deferred.reject(errMsg);\n return deferred.promise();\n}\n\nexport function nl2br(text: string): string {\n return text.replace(/\\n/g, \"
\");\n}\n/*\nfunction br2nl (text) { \n return text.replace(/<\\s*\\/?br\\s*[\\/]?>/gi, '\\n');\n}\n*/\n\nexport function getNpcColor(npcType: number): 'cyan' | 'skyblue' | null {\n if (npcType >= 2) {\n return 'cyan';\n }\n if (npcType == 1) {\n return 'skyblue';\n }\n return null;\n}\n\nexport function initTooltip($obj?: JQuery): void {\n if ($obj === undefined) {\n $obj = $('.obj_tooltip');\n } else if (!$obj.hasClass('obj_tooltip')) {\n $obj = $obj.find('.obj_tooltip');\n }\n console.log($obj);\n\n $obj.each(function () {\n const $target = $(this);\n\n if ($target.data('installHandler')) {\n return;\n }\n $target.data('installHandler', true);\n\n $target.mouseover(function () {\n const $objTooltip = $(this);\n if ($objTooltip.data('setObjTooltip')) {\n return;\n }\n\n let tooltipClassText = $objTooltip.data('tooltip-class');\n if (!tooltipClassText) {\n tooltipClassText = '';\n }\n const template = '
'\n .format(tooltipClassText);\n\n $objTooltip.tooltip({\n title: function () {\n return $.trim($(this).find('.tooltiptext').html());\n },\n template: template,\n html: true\n }).tooltip('show');\n\n $objTooltip.data('setObjTooltip', true);\n });\n });\n}","import { errUnknown } from \"./common_legacy\";\nimport { launchTroopPlugin } from \"./ext.plugin_troop\";\nimport jQuery from \"jquery\";\n\nimport \"../scss/troop.scss\";\n\njQuery(function($){\n //btnJoinTroop, btnLeaveTroop, btnKickTroop, btnCreateTroop, btnChangeTroopName\n $('#btnLeaveTroop').click(function(){\n if(!confirm(\"정말 부대를 탈퇴하시겠습니까?\")){\n return false;\n }\n $.post({\n url:'j_troop.php',\n dataType:'json',\n data:{\n action:'부대탈퇴'\n }\n }).then(function(data){\n console.log(data);\n if(!data.result){\n alert(data.reason);\n location.reload();\n }\n \n location.reload();\n \n }, errUnknown);\n return false;\n });\n\n $('#btnCreateTroop').click(function(){\n $.post({\n url:'j_troop.php',\n dataType:'json',\n data:{\n action:'부대창설',\n name:$('#nameplate').val()\n }\n }).then(function(data){\n console.log(data);\n if(!data.result){\n alert(data.reason);\n location.reload();\n }\n \n location.reload();\n \n }, errUnknown);\n return false;\n });\n\n $('#btnChangeTroopName').click(function(){\n $.post({\n url:'j_troop.php',\n dataType:'json',\n data:{\n action:'부대변경',\n name:$('#nameplate').val()\n }\n }).then(function(data){\n console.log(data);\n if(!data.result){\n alert(data.reason);\n location.reload();\n }\n \n location.reload();\n \n }, errUnknown);\n return false;\n });\n\n $('#btnKickTroop').click(function(){\n $.post({\n url:'j_troop.php',\n dataType:'json',\n data:{\n action:'부대추방',\n gen:$('#genNo').val()\n }\n }).then(function(data){\n console.log(data);\n if(!data.result){\n alert(data.reason);\n location.reload();\n }\n \n location.reload();\n \n }, errUnknown);\n return false;\n });\n\n $('#btnJoinTroop').click(function(){\n $.post({\n url:'j_troop.php',\n dataType:'json',\n data:{\n action:'부대가입',\n troop:$('.troopId:checked').val()\n }\n }).then(function(data){\n console.log(data);\n if(!data.result){\n alert(data.reason);\n location.reload();\n }\n \n location.reload();\n \n }, errUnknown);\n return false;\n });\n\n \n launchTroopPlugin($);\n});","import axios from \"axios\";\nimport { RuntimeError, unwrap } from \"./util\";\n\ndeclare global {\n interface Window {\n userList: Record>;\n }\n}\n\nexport function launchTroopPlugin($: JQueryStatic): void {\n\n let userList: Record> = {};\n const basicPath = (() => {\n const path = document.location.pathname;\n return path.substring(0, path.lastIndexOf('/'));\n })();\n\n const $userFrame: JQuery = $(\"
\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"
이 름통무지자 금군 량도시병 종병 사훈련사기명 령삭턴
\");\n $userFrame.find('thead td');\n $userFrame.css('width', '960px').css('margin', '0').css('padding', '0').css('left', '50%').css('margin-left', '-480px');\n $userFrame.hide();\n\n\n const runAnalysis = async function () {\n userList = {};\n const $content = $('#on_mover .content');\n $content.html('');\n const response = await axios.get(`${basicPath}/b_genList.php`, {responseType: 'text'});\n const rawData = response.data;\n\n try {\n const $html = $(rawData); \n\n const tmpUsers: JQuery = (() => {\n let tmpUsers = undefined;\n $html.each(function () {\n const $this = $(this);\n if ($this.attr('id') == \"general_list\") {\n tmpUsers = $(this);\n return false;\n }\n });\n if (tmpUsers === undefined) {\n throw new RuntimeError();\n }\n return tmpUsers;\n })()\n\n\n tmpUsers.find(\"tbody > tr\").each(function () {\n const $this = $(this);\n const $부대 = $this.children('.i_troop');\n\n const 부대 = $.trim($부대.text());\n\n if (부대 == '-') {\n //부대 안탔음!\n return;\n }\n $부대.remove();\n\n const generalID = parseInt($this.data('general-id'));\n userList[generalID] = $this;\n $this.hide();\n $content.append($this);\n });\n\n $('.troopUser').hover(function () {\n const $this = $(this);\n const parent = $this.closest('tr');\n const generalID = parseInt($this.data('general-id'));\n console.log(generalID);\n const top = unwrap(parent.offset()).top + unwrap(parent.outerHeight());\n $userFrame.css('top', top);\n userList[generalID].show();\n $userFrame.show();\n }, function () {\n const $this = $(this);\n const generalID = parseInt($this.data('general-id'));\n userList[generalID].hide();\n $userFrame.hide();\n });\n }\n catch (err) {\n console.log(err);\n }\n\n\n };\n\n const $frame = $('table:eq(0) td:eq(0)');\n $frame.find('br:last').remove();\n\n const $btn = $('');\n $btn.click(async function () {\n await runAnalysis();\n });\n\n $frame.append($btn);\n\n\n window.userList = userList;\n\n $('body').append($userFrame);\n\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\tid: moduleId,\n\t\tloaded: false,\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// Flag the module as loaded\n\tmodule.loaded = true;\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","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 48;","// 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\t48: 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 = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\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\tfor(moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) var result = runtime(__webpack_require__);\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[chunkIds[i]] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkhidche_lib\"] = self[\"webpackChunkhidche_lib\"] || [];\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, [216], () => (__webpack_require__(3430)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","RuntimeError","message","this","name","Error","NotNullExpected","result","errUnknown","alert","String","prototype","format","args","replace","match","number","toString","$","click","confirm","post","url","dataType","data","action","then","console","log","reason","location","reload","val","gen","troop","path","userList","basicPath","document","pathname","substring","lastIndexOf","$userFrame","find","css","hide","runAnalysis","$content","html","responseType","response","rawData","$html","tmpUsers","undefined","each","attr","$this","children","trim","text","remove","generalID","parseInt","append","hover","parent","closest","top","offset","outerHeight","show","err","$frame","$btn","window","launchTroopPlugin","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","id","loaded","__webpack_modules__","call","m","O","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","g","globalThis","Function","e","obj","prop","hasOwnProperty","Symbol","toStringTag","value","nmd","paths","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","forEach","bind","push","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"troop.js","mappings":"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","sources":["webpack://hidche_lib/webpack/runtime/chunk loaded","webpack://hidche_lib/./hwe/ts/util.ts","webpack://hidche_lib/./hwe/ts/common_legacy.ts","webpack://hidche_lib/./hwe/ts/troop.ts","webpack://hidche_lib/./hwe/ts/ext.plugin_troop.ts","webpack://hidche_lib/webpack/bootstrap","webpack://hidche_lib/webpack/runtime/compat get default export","webpack://hidche_lib/webpack/runtime/define property getters","webpack://hidche_lib/webpack/runtime/global","webpack://hidche_lib/webpack/runtime/hasOwnProperty shorthand","webpack://hidche_lib/webpack/runtime/make namespace object","webpack://hidche_lib/webpack/runtime/node module decorator","webpack://hidche_lib/webpack/runtime/runtimeId","webpack://hidche_lib/webpack/runtime/jsonp chunk loading","webpack://hidche_lib/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (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, fn, priority] = deferred[i];\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((key) => (__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};","type ErrType = { new(msg?: string): T }\nexport type Nullable = T | null | undefined\n\nexport class RuntimeError extends Error {\n public name = 'RuntimeError';\n constructor(public message: string = '') {\n super(message);\n }\n toString(): string {\n if (this.message) {\n return this.name + ': ' + this.message;\n }\n else {\n return this.name;\n }\n }\n}\n\nexport class NotNullExpected extends RuntimeError {\n public name = 'NotNullExpected';\n}\n\nexport function unwrap(result: Nullable): T {\n if (result === null || result === undefined) {\n throw new NotNullExpected();\n }\n return result;\n}\n\nexport function unwrap_err(result: Nullable, errType: ErrType, errMsg?: string): T {\n if (result === null || result === undefined) {\n throw new errType(errMsg);\n }\n return result;\n}","import { unwrap } from \"./util\";\n\nimport jQuery from \"jquery\";\nimport 'bootstrap';\n\nimport axios from \"axios\";\n\naxios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';\n//TODO: X-Requested-With 믿지 말자.\n\n/** \n * <>& 등을 html에서도 그대로 보이도록 escape주는 함수\n * @see https://stackoverflow.com/questions/24816/escaping-html-strings-with-jquery\n */\nexport const escapeHtml = (() => {\n const entityMap: { [v: string]: string } = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/',\n '`': '`',\n '=': '='\n };\n\n return function (string: string) {\n return String(string).replace(/[&<>\"'`=/]/g, function (s: string) {\n return entityMap[s];\n });\n }\n})();\n\n/**\n * 변수가 정수인지 확인하는 함수\n * @param {*} n 정수인지 확인하기 위한 인자\n * @return {boolean} 정수인지 여부\n */\nexport function isInt(n: unknown): n is number {\n const v = n as number;\n return +v === v && !(v % 1);\n}\n\n\n//https://gist.github.com/demouth/3217440\n/**\n * mb_strwidth\n * @see http://php.net/manual/function.mb-strwidth.php\n */\nexport function mb_strwidth(str: string): number {\n const l = str.length;\n let length = 0;\n for (let i = 0; i < l; i++) {\n const c = str.charCodeAt(i);\n if (0x0000 <= c && c <= 0x0019) {\n length += 0;\n } else if (0x0020 <= c && c <= 0x1FFF) {\n length += 1;\n } else if (0x2000 <= c && c <= 0xFF60) {\n length += 2;\n } else if (0xFF61 <= c && c <= 0xFF9F) {\n length += 1;\n } else if (0xFFA0 <= c) {\n length += 2;\n }\n }\n return length;\n}\n\n\n/**\n * mb_strimwidth\n * @param String\n * @param int\n * @param int\n * @param String\n * @return String\n * @see http://www.php.net/manual/function.mb-strimwidth.php\n */\nexport function mb_strimwidth(str: string, start: number, width: number, trimmarker = ''): string {\n const trimmakerWidth = mb_strwidth(trimmarker);\n const l = str.length;\n let trimmedLength = 0;\n const trimmedStr: string[] = [];\n for (let i = start; i < l; i++) {\n const c = str.charAt(i);\n const charWidth = mb_strwidth(c);\n const next = str.charAt(i + 1);\n const nextWidth = mb_strwidth(next);\n\n trimmedLength += charWidth;\n trimmedStr.push(c);\n if (trimmedLength + trimmakerWidth + nextWidth > width) {\n trimmedStr.push(trimmarker);\n break;\n }\n }\n return trimmedStr.join('');\n}\n\n/**\n * object의 array를 id를 key로 삼는 object로 재 변환\n */\nexport function convertDictById(arr: ArrayLike): Record {\n const result: Record = {};\n for (const v of Object.values(arr)) {\n result[v.id] = v;\n }\n return result;\n}\n\n/**\n * array를 set 형태의 object로 변환\n */\nexport function convertSet(arr: ArrayLike): Record {\n const result: Record = {};\n for (const v of Object.values(arr)) {\n result[v] = true;\n }\n return result;\n}\n\n\n/** \n * {0}, {1}, {2}형태로 포맷해주는 함수\n */\n\ndeclare global {\n interface String {\n format(...args: (string | number)[]): string;\n }\n}\nString.prototype.format = function (...args: (string | number)[]) {\n return this.replace(/{(\\d+)}/g, function (match, number) {\n return (typeof args[number] != 'undefined') ? args[number].toString() : match;\n });\n};\n\n\nexport function hexToRgb(hex: string): { r: number, g: number, b: number } | null {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16)\n } : null;\n}\n\nexport function isBrightColor(color: string): boolean {\n const cv = unwrap(hexToRgb(color));\n if ((cv.r * 0.299 + cv.g * 0.587 + cv.b * 0.114) > 140) {\n return true;\n } else {\n return false;\n }\n}\n\n/**\n * 게임내에서 지원하는 color type만 선택할 수 있도록 해주는 함수\n * @param {string} color #AAAAAA 또는 AAAAAA 형태로 작성된 RGB hex color string\n * @returns {string}\n */\nexport function convColorValue(color: string): string {\n if (color.charAt(0) == '#') {\n color = color.substr(1);\n }\n color = color.toUpperCase();\n\n const colorBase = new Set([\n '000080', '0000FF', '008000', '008080', '00BFFF', '00FF00', '00FFFF', '20B2AA',\n '2E8B57', '483D8B', '6495ED', '7B68EE', '7CFC00', '7FFFD4', '800000', '800080',\n '808000', '87CEEB', 'A0522D', 'A9A9A9', 'AFEEEE', 'BA55D3', 'E0FFFF', 'F5F5DC',\n 'FF0000', 'FF00FF', 'FF6347', 'FFA500', 'FFC0CB', 'FFD700', 'FFDAB9', 'FFFF00',\n 'FFFFFF'\n ]);\n\n if (!colorBase.has(color)) {\n return '000000';\n }\n\n return color;\n}\n\n\nexport function numberWithCommas(x: number): string {\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n}\n\n//linkify가 불러와 있어야함\ndeclare global {\n interface Window {\n linkifyStr: (v: string, k?: Record) => string;\n }\n}\nexport function linkifyStrWithOpt(text: string): string {\n return window.linkifyStr(text, {});\n}\n\n/**\n * 단순한 Template 함수. <%변수명%>으로 template 가능\n * @see https://github.com/krasimir/absurd/blob/master/lib/processors/html/helpers/TemplateEngine.js\n * @param {string} html \n * @param {object} options \n * @returns {string}\n */\nexport function TemplateEngine(html: string, options: Record = {}): string {\n const re = /<%(.+?)%>/g;\n const reExp = /(^( )?(var|if|for|else|switch|case|break|{|}|;))(.*)?/g;\n const code = ['with(obj) { var r=[];\\n'];\n let cursor = 0;\n const add = function (line: string, js?: boolean) {\n js ? code.push(line.match(reExp) ? line + '\\n' : 'r.push(' + line + ');\\n') :\n code.push(line != '' ? 'r.push(\"' + line.replace(/\"/g, '\\\\\"') + '\");\\n' : '');\n return add;\n }\n options.e = escapeHtml;\n options.linkifyStr = linkifyStrWithOpt;\n for (; ;) {\n const match = re.exec(html);\n if (!match) {\n break;\n }\n add(html.slice(cursor, match.index))(match[1], true);\n cursor = match.index + match[0].length;\n }\n add(html.substr(cursor, html.length - cursor));\n\n code.push('return r.join(\"\"); }');\n const compiledCode = code.join('').replace(/[\\r\\t\\n]/g, ' ');\n try {\n return new Function('obj', compiledCode).apply(options, [options]);\n } catch (err) {\n console.error(\"'\" + err.message + \"'\", \" in \\n\\nCode:\\n\", code, \"\\n\");\n throw err;\n }\n}\n\nexport function getIconPath(imgsvr: boolean | 1 | 0, picture: string): string {\n // ../d_shared/common_path.js 필요\n if (!imgsvr) {\n return window.pathConfig.sharedIcon + '/' + picture;\n } else {\n return window.pathConfig.root + '/d_pic/' + picture;\n }\n}\n\nexport function activeFlip($obj?: JQuery): void {\n let $result: JQuery;\n if ($obj === undefined) {\n $result = $('img[data-flip]');\n } else {\n $result = $obj.find('img[data-flip]');\n }\n\n $result.each(function () {\n activeFlipItem($(this));\n });\n\n}\n\nexport function combineObject(item: V[], columnList: K[]): Record {\n const newItem: Record = {};\n for (const columnIdx in columnList) {\n const columnName = columnList[columnIdx];\n newItem[columnName] = item[columnIdx];\n }\n return newItem;\n}\n\nexport function combineArray(array: V[][], columnList: K[]): Record[] {\n const result: Record[] = [];\n for (const key of array.keys()) {\n const item = array[key];\n result[key] = combineObject(item, columnList);\n }\n return result;\n}\n\nexport function activeFlipItem($img: JQuery): void {\n const imageList = [];\n imageList.push($img.attr('src'));\n $.each($img.data('flip').split(','), function (idx, value) {\n value = $.trim(value);\n if (!value) {\n return true;\n }\n imageList.push(value);\n });\n if (imageList.length <= 1) {\n return;\n }\n $img.data('computed_flip_array', imageList);\n $img.data('computed_flip_idx', 0);\n\n $img.click(function () {\n const arr = $img.data('computed_flip_array');\n let idx = $img.data('computed_flip_idx');\n idx = (idx + 1) % (arr.length);\n $img.attr('src', arr[idx]);\n $img.data('computed_flip_idx', idx);\n });\n $img.css('cursor', 'pointer');\n}\n\n\n\nexport function errUnknown(): void {\n alert('작업을 실패했습니다.');\n}\n\n\n\nexport function errUnknownToast(): void {\n jQuery.toast({\n title: '에러!',\n content: '작업을 실패했습니다.',\n type: 'danger',\n delay: 5000\n });\n}\n\nexport function quickReject(errMsg: string): JQuery.Promise {\n if (errMsg === undefined) {\n errMsg = '작업을 실패했습니다.';\n }\n const deferred = $.Deferred();\n void deferred.reject(errMsg);\n return deferred.promise();\n}\n\nexport function nl2br(text: string): string {\n return text.replace(/\\n/g, \"
\");\n}\n/*\nfunction br2nl (text) { \n return text.replace(/<\\s*\\/?br\\s*[\\/]?>/gi, '\\n');\n}\n*/\n\nexport function getNpcColor(npcType: number): 'cyan' | 'skyblue' | null {\n if (npcType >= 2) {\n return 'cyan';\n }\n if (npcType == 1) {\n return 'skyblue';\n }\n return null;\n}\n\nexport function initTooltip($obj?: JQuery): void {\n if ($obj === undefined) {\n $obj = $('.obj_tooltip');\n } else if (!$obj.hasClass('obj_tooltip')) {\n $obj = $obj.find('.obj_tooltip');\n }\n console.log($obj);\n\n $obj.each(function () {\n const $target = $(this);\n\n if ($target.data('installHandler')) {\n return;\n }\n $target.data('installHandler', true);\n\n $target.mouseover(function () {\n const $objTooltip = $(this);\n if ($objTooltip.data('setObjTooltip')) {\n return;\n }\n\n let tooltipClassText = $objTooltip.data('tooltip-class');\n if (!tooltipClassText) {\n tooltipClassText = '';\n }\n const template = '
'\n .format(tooltipClassText);\n\n $objTooltip.tooltip({\n title: function () {\n return $.trim($(this).find('.tooltiptext').html());\n },\n template: template,\n html: true\n }).tooltip('show');\n\n $objTooltip.data('setObjTooltip', true);\n });\n });\n}","import { errUnknown } from \"./common_legacy\";\nimport { launchTroopPlugin } from \"./ext.plugin_troop\";\nimport jQuery from \"jquery\";\n\nimport \"../scss/troop.scss\";\n\njQuery(function($){\n //btnJoinTroop, btnLeaveTroop, btnKickTroop, btnCreateTroop, btnChangeTroopName\n $('#btnLeaveTroop').click(function(){\n if(!confirm(\"정말 부대를 탈퇴하시겠습니까?\")){\n return false;\n }\n $.post({\n url:'j_troop.php',\n dataType:'json',\n data:{\n action:'부대탈퇴'\n }\n }).then(function(data){\n console.log(data);\n if(!data.result){\n alert(data.reason);\n location.reload();\n }\n \n location.reload();\n \n }, errUnknown);\n return false;\n });\n\n $('#btnCreateTroop').click(function(){\n $.post({\n url:'j_troop.php',\n dataType:'json',\n data:{\n action:'부대창설',\n name:$('#nameplate').val()\n }\n }).then(function(data){\n console.log(data);\n if(!data.result){\n alert(data.reason);\n location.reload();\n }\n \n location.reload();\n \n }, errUnknown);\n return false;\n });\n\n $('#btnChangeTroopName').click(function(){\n $.post({\n url:'j_troop.php',\n dataType:'json',\n data:{\n action:'부대변경',\n name:$('#nameplate').val()\n }\n }).then(function(data){\n console.log(data);\n if(!data.result){\n alert(data.reason);\n location.reload();\n }\n \n location.reload();\n \n }, errUnknown);\n return false;\n });\n\n $('#btnKickTroop').click(function(){\n $.post({\n url:'j_troop.php',\n dataType:'json',\n data:{\n action:'부대추방',\n gen:$('#genNo').val()\n }\n }).then(function(data){\n console.log(data);\n if(!data.result){\n alert(data.reason);\n location.reload();\n }\n \n location.reload();\n \n }, errUnknown);\n return false;\n });\n\n $('#btnJoinTroop').click(function(){\n $.post({\n url:'j_troop.php',\n dataType:'json',\n data:{\n action:'부대가입',\n troop:$('.troopId:checked').val()\n }\n }).then(function(data){\n console.log(data);\n if(!data.result){\n alert(data.reason);\n location.reload();\n }\n \n location.reload();\n \n }, errUnknown);\n return false;\n });\n\n \n launchTroopPlugin($);\n});","import axios from \"axios\";\nimport { RuntimeError, unwrap } from \"./util\";\n\ndeclare global {\n interface Window {\n userList: Record>;\n }\n}\n\nexport function launchTroopPlugin($: JQueryStatic): void {\n\n let userList: Record> = {};\n const basicPath = (() => {\n const path = document.location.pathname;\n return path.substring(0, path.lastIndexOf('/'));\n })();\n\n const $userFrame: JQuery = $(\"
\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"
이 름통무지자 금군 량도시병 종병 사훈련사기명 령삭턴
\");\n $userFrame.find('thead td');\n $userFrame.css('width', '960px').css('margin', '0').css('padding', '0').css('left', '50%').css('margin-left', '-480px');\n $userFrame.hide();\n\n\n const runAnalysis = async function () {\n userList = {};\n const $content = $('#on_mover .content');\n $content.html('');\n const response = await axios.get(`${basicPath}/b_genList.php`, {responseType: 'text'});\n const rawData = response.data;\n\n try {\n const $html = $(rawData); \n\n const tmpUsers: JQuery = (() => {\n let tmpUsers = undefined;\n $html.each(function () {\n const $this = $(this);\n if ($this.attr('id') == \"general_list\") {\n tmpUsers = $(this);\n return false;\n }\n });\n if (tmpUsers === undefined) {\n throw new RuntimeError();\n }\n return tmpUsers;\n })()\n\n\n tmpUsers.find(\"tbody > tr\").each(function () {\n const $this = $(this);\n const $부대 = $this.children('.i_troop');\n\n const 부대 = $.trim($부대.text());\n\n if (부대 == '-') {\n //부대 안탔음!\n return;\n }\n $부대.remove();\n\n const generalID = parseInt($this.data('general-id'));\n userList[generalID] = $this;\n $this.hide();\n $content.append($this);\n });\n\n $('.troopUser').hover(function () {\n const $this = $(this);\n const parent = $this.closest('tr');\n const generalID = parseInt($this.data('general-id'));\n console.log(generalID);\n const top = unwrap(parent.offset()).top + unwrap(parent.outerHeight());\n $userFrame.css('top', top);\n userList[generalID].show();\n $userFrame.show();\n }, function () {\n const $this = $(this);\n const generalID = parseInt($this.data('general-id'));\n userList[generalID].hide();\n $userFrame.hide();\n });\n }\n catch (err) {\n console.log(err);\n }\n\n\n };\n\n const $frame = $('table:eq(0) td:eq(0)');\n $frame.find('br:last').remove();\n\n const $btn = $('');\n $btn.click(async function () {\n await runAnalysis();\n });\n\n $frame.append($btn);\n\n\n window.userList = userList;\n\n $('body').append($userFrame);\n\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\tid: moduleId,\n\t\tloaded: false,\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// Flag the module as loaded\n\tmodule.loaded = true;\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","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 48;","// 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\t48: 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 = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\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\tfor(moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) var result = runtime(__webpack_require__);\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[chunkIds[i]] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkhidche_lib\"] = self[\"webpackChunkhidche_lib\"] || [];\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, [216], () => (__webpack_require__(3430)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","RuntimeError","message","this","name","Error","NotNullExpected","result","errUnknown","alert","String","prototype","format","args","replace","match","number","toString","$","click","confirm","post","url","dataType","data","action","then","console","log","reason","location","reload","val","gen","troop","path","userList","basicPath","document","pathname","substring","lastIndexOf","$userFrame","find","css","hide","runAnalysis","$content","html","responseType","response","rawData","$html","tmpUsers","undefined","each","attr","$this","children","trim","text","remove","generalID","parseInt","append","hover","parent","closest","top","offset","outerHeight","show","err","$frame","$btn","window","launchTroopPlugin","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","id","loaded","__webpack_modules__","call","m","O","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","g","globalThis","Function","e","obj","prop","hasOwnProperty","Symbol","toStringTag","value","nmd","paths","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","forEach","bind","push","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/hwe/js/vendors.js b/hwe/js/vendors.js index 109f4fff..24304005 100644 --- a/hwe/js/vendors.js +++ b/hwe/js/vendors.js @@ -1,3 +1,3 @@ /*! For license information please see vendors.js.LICENSE.txt */ -(self.webpackChunkhidche_lib=self.webpackChunkhidche_lib||[]).push([[216],{715:(e,t,n)=>{"use strict";function r(){return(r=Object.assign||function(e){for(var t=1;tj});var l=/%[sdj%]/g;function c(e){if(!e||!e.length)return null;var t={};return e.forEach((function(e){var n=e.field;t[n]=t[n]||[],t[n].push(e)})),t}function f(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r=o)return e;switch(e){case"%s":return String(n[i++]);case"%d":return Number(n[i++]);case"%j":try{return JSON.stringify(n[i++])}catch(e){return"[Circular]"}break;default:return e}}));return a}return e}function d(e,t){return null==e||!("array"!==t||!Array.isArray(e)||e.length)||!(!function(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"date"===e||"pattern"===e}(t)||"string"!=typeof e||e)}function h(e,t,n){var r=0,i=e.length;!function o(a){if(a&&a.length)n(a);else{var s=r;r+=1,s()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,url:new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$","i"),hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},b={integer:function(e){return b.number(e)&&parseInt(e,10)===e},float:function(e){return b.number(e)&&!b.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(e){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime())},number:function(e){return!isNaN(e)&&"number"==typeof e},object:function(e){return"object"==typeof e&&!b.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&!!e.match(y.email)&&e.length<255},url:function(e){return"string"==typeof e&&!!e.match(y.url)},hex:function(e){return"string"==typeof e&&!!e.match(y.hex)}},w=g,x=function(e,t,n,r,i){(/^\s+$/.test(t)||""===t)&&r.push(f(i.messages.whitespace,e.fullField))},_=function(e,t,n,r,i){if(e.required&&void 0===t)g(e,t,n,r,i);else{var o=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(o)>-1?b[o](t)||r.push(f(i.messages.types[o],e.fullField,e.type)):o&&typeof t!==e.type&&r.push(f(i.messages.types[o],e.fullField,e.type))}},E=function(e,t,n,r,i){var o="number"==typeof e.len,a="number"==typeof e.min,s="number"==typeof e.max,u=t,l=null,c="number"==typeof t,d="string"==typeof t,h=Array.isArray(t);if(c?l="number":d?l="string":h&&(l="array"),!l)return!1;h&&(u=t.length),d&&(u=t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),o?u!==e.len&&r.push(f(i.messages[l].len,e.fullField,e.len)):a&&!s&&ue.max?r.push(f(i.messages[l].max,e.fullField,e.max)):a&&s&&(ue.max)&&r.push(f(i.messages[l].range,e.fullField,e.min,e.max))},T=function(e,t,n,r,i){e.enum=Array.isArray(e.enum)?e.enum:[],-1===e.enum.indexOf(t)&&r.push(f(i.messages.enum,e.fullField,e.enum.join(", ")))},S=function(e,t,n,r,i){e.pattern&&(e.pattern instanceof RegExp?(e.pattern.lastIndex=0,e.pattern.test(t)||r.push(f(i.messages.pattern.mismatch,e.fullField,t,e.pattern))):"string"==typeof e.pattern&&(new RegExp(e.pattern).test(t)||r.push(f(i.messages.pattern.mismatch,e.fullField,t,e.pattern))))},k=function(e,t,n,r,i){var o=e.type,a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(d(t,o)&&!e.required)return n();w(e,t,r,a,i,o),d(t,o)||_(e,t,r,a,i)}n(a)},O={string:function(e,t,n,r,i){var o=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(d(t,"string")&&!e.required)return n();w(e,t,r,o,i,"string"),d(t,"string")||(_(e,t,r,o,i),E(e,t,r,o,i),S(e,t,r,o,i),!0===e.whitespace&&x(e,t,r,o,i))}n(o)},method:function(e,t,n,r,i){var o=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(d(t)&&!e.required)return n();w(e,t,r,o,i),void 0!==t&&_(e,t,r,o,i)}n(o)},number:function(e,t,n,r,i){var o=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(""===t&&(t=void 0),d(t)&&!e.required)return n();w(e,t,r,o,i),void 0!==t&&(_(e,t,r,o,i),E(e,t,r,o,i))}n(o)},boolean:function(e,t,n,r,i){var o=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(d(t)&&!e.required)return n();w(e,t,r,o,i),void 0!==t&&_(e,t,r,o,i)}n(o)},regexp:function(e,t,n,r,i){var o=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(d(t)&&!e.required)return n();w(e,t,r,o,i),d(t)||_(e,t,r,o,i)}n(o)},integer:function(e,t,n,r,i){var o=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(d(t)&&!e.required)return n();w(e,t,r,o,i),void 0!==t&&(_(e,t,r,o,i),E(e,t,r,o,i))}n(o)},float:function(e,t,n,r,i){var o=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(d(t)&&!e.required)return n();w(e,t,r,o,i),void 0!==t&&(_(e,t,r,o,i),E(e,t,r,o,i))}n(o)},array:function(e,t,n,r,i){var o=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(null==t&&!e.required)return n();w(e,t,r,o,i,"array"),null!=t&&(_(e,t,r,o,i),E(e,t,r,o,i))}n(o)},object:function(e,t,n,r,i){var o=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(d(t)&&!e.required)return n();w(e,t,r,o,i),void 0!==t&&_(e,t,r,o,i)}n(o)},enum:function(e,t,n,r,i){var o=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(d(t)&&!e.required)return n();w(e,t,r,o,i),void 0!==t&&T(e,t,r,o,i)}n(o)},pattern:function(e,t,n,r,i){var o=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(d(t,"string")&&!e.required)return n();w(e,t,r,o,i),d(t,"string")||S(e,t,r,o,i)}n(o)},date:function(e,t,n,r,i){var o=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(d(t,"date")&&!e.required)return n();var a;w(e,t,r,o,i),d(t,"date")||(a=t instanceof Date?t:new Date(t),_(e,a,r,o,i),a&&E(e,a.getTime(),r,o,i))}n(o)},url:k,hex:k,email:k,required:function(e,t,n,r,i){var o=[],a=Array.isArray(t)?"array":typeof t;w(e,t,r,o,i,a),n(o)},any:function(e,t,n,r,i){var o=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(d(t)&&!e.required)return n();w(e,t,r,o,i)}n(o)}};function C(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var N=C(),j=function(){function e(e){this.rules=null,this._messages=N,this.define(e)}var t=e.prototype;return t.define=function(e){var t=this;if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!=typeof e||Array.isArray(e))throw new Error("Rules must be an object");this.rules={},Object.keys(e).forEach((function(n){var r=e[n];t.rules[n]=Array.isArray(r)?r:[r]}))},t.messages=function(e){return e&&(this._messages=v(C(),e)),this._messages},t.validate=function(t,n,i){var o=this;void 0===n&&(n={}),void 0===i&&(i=function(){});var a=t,s=n,u=i;if("function"==typeof s&&(u=s,s={}),!this.rules||0===Object.keys(this.rules).length)return u&&u(null,a),Promise.resolve(a);if(s.messages){var l=this.messages();l===N&&(l=C()),v(l,s.messages),s.messages=l}else s.messages=this.messages();var d={};(s.keys||Object.keys(this.rules)).forEach((function(e){var n=o.rules[e],i=a[e];n.forEach((function(n){var s=n;"function"==typeof s.transform&&(a===t&&(a=r({},a)),i=a[e]=s.transform(i)),(s="function"==typeof s?{validator:s}:r({},s)).validator=o.getValidationMethod(s),s.validator&&(s.field=e,s.fullField=s.fullField||e,s.type=o.getType(s),d[e]=d[e]||[],d[e].push({rule:s,value:i,source:a,field:e}))}))}));var g={};return function(e,t,n,r,i){if(t.first){var o=new Promise((function(t,o){h(function(e){var t=[];return Object.keys(e).forEach((function(n){t.push.apply(t,e[n]||[])})),t}(e),n,(function(e){return r(e),e.length?o(new p(e,c(e))):t(i)}))}));return o.catch((function(e){return e})),o}var a=!0===t.firstFields?Object.keys(e):t.firstFields||[],s=Object.keys(e),u=s.length,l=0,f=[],d=new Promise((function(t,o){var d=function(e){if(f.push.apply(f,e),++l===u)return r(f),f.length?o(new p(f,c(f))):t(i)};s.length||(r(f),t(i)),s.forEach((function(t){var r=e[t];-1!==a.indexOf(t)?h(r,n,d):function(e,t,n){var r=[],i=0,o=e.length;function a(e){r.push.apply(r,e||[]),++i===o&&n(r)}e.forEach((function(e){t(e,a)}))}(r,n,d)}))}));return d.catch((function(e){return e})),d}(d,s,(function(t,n){var i,o=t.rule,u=!("object"!==o.type&&"array"!==o.type||"object"!=typeof o.fields&&"object"!=typeof o.defaultField);function l(e,t){return r({},t,{fullField:o.fullField+"."+e,fullFields:o.fullFields?[].concat(o.fullFields,[e]):[e]})}function c(i){void 0===i&&(i=[]);var c=Array.isArray(i)?i:[i];!s.suppressWarning&&c.length&&e.warning("async-validator:",c),c.length&&void 0!==o.message&&(c=[].concat(o.message));var d=c.map(m(o,a));if(s.first&&d.length)return g[o.field]=1,n(d);if(u){if(o.required&&!t.value)return void 0!==o.message?d=[].concat(o.message).map(m(o,a)):s.error&&(d=[s.error(o,f(s.messages.required,o.field))]),n(d);var h={};o.defaultField&&Object.keys(t.value).map((function(e){h[e]=o.defaultField})),h=r({},h,t.rule.fields);var p={};Object.keys(h).forEach((function(e){var t=h[e],n=Array.isArray(t)?t:[t];p[e]=n.map(l.bind(null,e))}));var v=new e(p);v.messages(s.messages),t.rule.options&&(t.rule.options.messages=s.messages,t.rule.options.error=s.error),v.validate(t.value,t.rule.options||s,(function(e){var t=[];d&&d.length&&t.push.apply(t,d),e&&e.length&&t.push.apply(t,e),n(t.length?t:null)}))}else n(d)}u=u&&(o.required||!o.required&&t.value),o.field=t.field,o.asyncValidator?i=o.asyncValidator(o,t.value,c,t.source,s):o.validator&&(!0===(i=o.validator(o,t.value,c,t.source,s))?c():!1===i?c("function"==typeof o.message?o.message(o.fullField||o.field):o.message||(o.fullField||o.field)+" fails"):i instanceof Array?c(i):i instanceof Error&&c(i.message)),i&&i.then&&i.then((function(){return c()}),(function(e){return c(e)}))}),(function(e){!function(e){for(var t,n,r=[],i={},o=0;o{e.exports=n(1609)},5448:(e,t,n)=>{"use strict";var r=n(4867),i=n(1309),o=n(4372),a=n(5327),s=n(4097),u=n(4109),l=n(7985),c=n(5061);e.exports=function(e){return new Promise((function(t,n){var f=e.data,d=e.headers;r.isFormData(f)&&delete d["Content-Type"];var h=new XMLHttpRequest;if(e.auth){var p=e.auth.username||"",m=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";d.Authorization="Basic "+btoa(p+":"+m)}var v=s(e.baseURL,e.url);if(h.open(e.method.toUpperCase(),a(v,e.params,e.paramsSerializer),!0),h.timeout=e.timeout,h.onreadystatechange=function(){if(h&&4===h.readyState&&(0!==h.status||h.responseURL&&0===h.responseURL.indexOf("file:"))){var r="getAllResponseHeaders"in h?u(h.getAllResponseHeaders()):null,o={data:e.responseType&&"text"!==e.responseType?h.response:h.responseText,status:h.status,statusText:h.statusText,headers:r,config:e,request:h};i(t,n,o),h=null}},h.onabort=function(){h&&(n(c("Request aborted",e,"ECONNABORTED",h)),h=null)},h.onerror=function(){n(c("Network Error",e,null,h)),h=null},h.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(c(t,e,"ECONNABORTED",h)),h=null},r.isStandardBrowserEnv()){var g=(e.withCredentials||l(v))&&e.xsrfCookieName?o.read(e.xsrfCookieName):void 0;g&&(d[e.xsrfHeaderName]=g)}if("setRequestHeader"in h&&r.forEach(d,(function(e,t){void 0===f&&"content-type"===t.toLowerCase()?delete d[t]:h.setRequestHeader(t,e)})),r.isUndefined(e.withCredentials)||(h.withCredentials=!!e.withCredentials),e.responseType)try{h.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"==typeof e.onDownloadProgress&&h.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&h.upload&&h.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then((function(e){h&&(h.abort(),n(e),h=null)})),f||(f=null),h.send(f)}))}},1609:(e,t,n)=>{"use strict";var r=n(4867),i=n(1849),o=n(321),a=n(7185);function s(e){var t=new o(e),n=i(o.prototype.request,t);return r.extend(n,o.prototype,t),r.extend(n,t),n}var u=s(n(5655));u.Axios=o,u.create=function(e){return s(a(u.defaults,e))},u.Cancel=n(5263),u.CancelToken=n(4972),u.isCancel=n(6502),u.all=function(e){return Promise.all(e)},u.spread=n(8713),u.isAxiosError=n(6268),e.exports=u,e.exports.default=u},5263:e=>{"use strict";function t(e){this.message=e}t.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},t.prototype.__CANCEL__=!0,e.exports=t},4972:(e,t,n)=>{"use strict";var r=n(5263);function i(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var n=this;e((function(e){n.reason||(n.reason=new r(e),t(n.reason))}))}i.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},i.source=function(){var e;return{token:new i((function(t){e=t})),cancel:e}},e.exports=i},6502:e=>{"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},321:(e,t,n)=>{"use strict";var r=n(4867),i=n(5327),o=n(782),a=n(3572),s=n(7185);function u(e){this.defaults=e,this.interceptors={request:new o,response:new o}}u.prototype.request=function(e){"string"==typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=s(this.defaults,e)).method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=[a,void 0],n=Promise.resolve(e);for(this.interceptors.request.forEach((function(e){t.unshift(e.fulfilled,e.rejected)})),this.interceptors.response.forEach((function(e){t.push(e.fulfilled,e.rejected)}));t.length;)n=n.then(t.shift(),t.shift());return n},u.prototype.getUri=function(e){return e=s(this.defaults,e),i(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},r.forEach(["delete","get","head","options"],(function(e){u.prototype[e]=function(t,n){return this.request(s(n||{},{method:e,url:t,data:(n||{}).data}))}})),r.forEach(["post","put","patch"],(function(e){u.prototype[e]=function(t,n,r){return this.request(s(r||{},{method:e,url:t,data:n}))}})),e.exports=u},782:(e,t,n)=>{"use strict";var r=n(4867);function i(){this.handlers=[]}i.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},i.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},i.prototype.forEach=function(e){r.forEach(this.handlers,(function(t){null!==t&&e(t)}))},e.exports=i},4097:(e,t,n)=>{"use strict";var r=n(1793),i=n(7303);e.exports=function(e,t){return e&&!r(t)?i(e,t):t}},5061:(e,t,n)=>{"use strict";var r=n(481);e.exports=function(e,t,n,i,o){var a=new Error(e);return r(a,t,n,i,o)}},3572:(e,t,n)=>{"use strict";var r=n(4867),i=n(8527),o=n(6502),a=n(5655);function s(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function(e){return s(e),e.headers=e.headers||{},e.data=i(e.data,e.headers,e.transformRequest),e.headers=r.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),r.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||a.adapter)(e).then((function(t){return s(e),t.data=i(t.data,t.headers,e.transformResponse),t}),(function(t){return o(t)||(s(e),t&&t.response&&(t.response.data=i(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},481:e=>{"use strict";e.exports=function(e,t,n,r,i){return e.config=t,n&&(e.code=n),e.request=r,e.response=i,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},7185:(e,t,n)=>{"use strict";var r=n(4867);e.exports=function(e,t){t=t||{};var n={},i=["url","method","data"],o=["headers","auth","proxy","params"],a=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],s=["validateStatus"];function u(e,t){return r.isPlainObject(e)&&r.isPlainObject(t)?r.merge(e,t):r.isPlainObject(t)?r.merge({},t):r.isArray(t)?t.slice():t}function l(i){r.isUndefined(t[i])?r.isUndefined(e[i])||(n[i]=u(void 0,e[i])):n[i]=u(e[i],t[i])}r.forEach(i,(function(e){r.isUndefined(t[e])||(n[e]=u(void 0,t[e]))})),r.forEach(o,l),r.forEach(a,(function(i){r.isUndefined(t[i])?r.isUndefined(e[i])||(n[i]=u(void 0,e[i])):n[i]=u(void 0,t[i])})),r.forEach(s,(function(r){r in t?n[r]=u(e[r],t[r]):r in e&&(n[r]=u(void 0,e[r]))}));var c=i.concat(o).concat(a).concat(s),f=Object.keys(e).concat(Object.keys(t)).filter((function(e){return-1===c.indexOf(e)}));return r.forEach(f,l),n}},1309:(e,t,n)=>{"use strict";var r=n(5061);e.exports=function(e,t,n){var i=n.config.validateStatus;n.status&&i&&!i(n.status)?t(r("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},8527:(e,t,n)=>{"use strict";var r=n(4867);e.exports=function(e,t,n){return r.forEach(n,(function(n){e=n(e,t)})),e}},5655:(e,t,n)=>{"use strict";var r=n(4867),i=n(6016),o={"Content-Type":"application/x-www-form-urlencoded"};function a(e,t){!r.isUndefined(e)&&r.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var s,u={adapter:(("undefined"!=typeof XMLHttpRequest||"undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process))&&(s=n(5448)),s),transformRequest:[function(e,t){return i(t,"Accept"),i(t,"Content-Type"),r.isFormData(e)||r.isArrayBuffer(e)||r.isBuffer(e)||r.isStream(e)||r.isFile(e)||r.isBlob(e)?e:r.isArrayBufferView(e)?e.buffer:r.isURLSearchParams(e)?(a(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):r.isObject(e)?(a(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(e){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],(function(e){u.headers[e]={}})),r.forEach(["post","put","patch"],(function(e){u.headers[e]=r.merge(o)})),e.exports=u},1849:e=>{"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r{"use strict";var r=n(4867);function i(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,n){if(!t)return e;var o;if(n)o=n(t);else if(r.isURLSearchParams(t))o=t.toString();else{var a=[];r.forEach(t,(function(e,t){null!=e&&(r.isArray(e)?t+="[]":e=[e],r.forEach(e,(function(e){r.isDate(e)?e=e.toISOString():r.isObject(e)&&(e=JSON.stringify(e)),a.push(i(t)+"="+i(e))})))})),o=a.join("&")}if(o){var s=e.indexOf("#");-1!==s&&(e=e.slice(0,s)),e+=(-1===e.indexOf("?")?"?":"&")+o}return e}},7303:e=>{"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},4372:(e,t,n)=>{"use strict";var r=n(4867);e.exports=r.isStandardBrowserEnv()?{write:function(e,t,n,i,o,a){var s=[];s.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&s.push("expires="+new Date(n).toGMTString()),r.isString(i)&&s.push("path="+i),r.isString(o)&&s.push("domain="+o),!0===a&&s.push("secure"),document.cookie=s.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},1793:e=>{"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},6268:e=>{"use strict";e.exports=function(e){return"object"==typeof e&&!0===e.isAxiosError}},7985:(e,t,n)=>{"use strict";var r=n(4867);e.exports=r.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function i(e){var r=e;return t&&(n.setAttribute("href",r),r=n.href),n.setAttribute("href",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return e=i(window.location.href),function(t){var n=r.isString(t)?i(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return!0}},6016:(e,t,n)=>{"use strict";var r=n(4867);e.exports=function(e,t){r.forEach(e,(function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])}))}},4109:(e,t,n)=>{"use strict";var r=n(4867),i=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,o,a={};return e?(r.forEach(e.split("\n"),(function(e){if(o=e.indexOf(":"),t=r.trim(e.substr(0,o)).toLowerCase(),n=r.trim(e.substr(o+1)),t){if(a[t]&&i.indexOf(t)>=0)return;a[t]="set-cookie"===t?(a[t]?a[t]:[]).concat([n]):a[t]?a[t]+", "+n:n}})),a):a}},8713:e=>{"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},4867:(e,t,n)=>{"use strict";var r=n(1849),i=Object.prototype.toString;function o(e){return"[object Array]"===i.call(e)}function a(e){return void 0===e}function s(e){return null!==e&&"object"==typeof e}function u(e){if("[object Object]"!==i.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function l(e){return"[object Function]"===i.call(e)}function c(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),o(e))for(var n=0,r=e.length;n=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}};f.jQueryDetection(),i.default.fn.emulateTransitionEnd=c,i.default.event.special[f.TRANSITION_END]={bindType:l,delegateType:l,handle:function(e){if(i.default(e.target).is(this))return e.handleObj.handler.apply(this,arguments)}};var d="bs.alert",h=i.default.fn.alert,p=function(){function e(e){this._element=e}var t=e.prototype;return t.close=function(e){var t=this._element;e&&(t=this._getRootElement(e)),this._triggerCloseEvent(t).isDefaultPrevented()||this._removeElement(t)},t.dispose=function(){i.default.removeData(this._element,d),this._element=null},t._getRootElement=function(e){var t=f.getSelectorFromElement(e),n=!1;return t&&(n=document.querySelector(t)),n||(n=i.default(e).closest(".alert")[0]),n},t._triggerCloseEvent=function(e){var t=i.default.Event("close.bs.alert");return i.default(e).trigger(t),t},t._removeElement=function(e){var t=this;if(i.default(e).removeClass("show"),i.default(e).hasClass("fade")){var n=f.getTransitionDurationFromElement(e);i.default(e).one(f.TRANSITION_END,(function(n){return t._destroyElement(e,n)})).emulateTransitionEnd(n)}else this._destroyElement(e)},t._destroyElement=function(e){i.default(e).detach().trigger("closed.bs.alert").remove()},e._jQueryInterface=function(t){return this.each((function(){var n=i.default(this),r=n.data(d);r||(r=new e(this),n.data(d,r)),"close"===t&&r[t](this)}))},e._handleDismiss=function(e){return function(t){t&&t.preventDefault(),e.close(this)}},s(e,null,[{key:"VERSION",get:function(){return"4.6.0"}}]),e}();i.default(document).on("click.bs.alert.data-api",'[data-dismiss="alert"]',p._handleDismiss(new p)),i.default.fn.alert=p._jQueryInterface,i.default.fn.alert.Constructor=p,i.default.fn.alert.noConflict=function(){return i.default.fn.alert=h,p._jQueryInterface};var m="bs.button",v=i.default.fn.button,g="active",y='[data-toggle^="button"]',b='input:not([type="hidden"])',w=".btn",x=function(){function e(e){this._element=e,this.shouldAvoidTriggerChange=!1}var t=e.prototype;return t.toggle=function(){var e=!0,t=!0,n=i.default(this._element).closest('[data-toggle="buttons"]')[0];if(n){var r=this._element.querySelector(b);if(r){if("radio"===r.type)if(r.checked&&this._element.classList.contains(g))e=!1;else{var o=n.querySelector(".active");o&&i.default(o).removeClass(g)}e&&("checkbox"!==r.type&&"radio"!==r.type||(r.checked=!this._element.classList.contains(g)),this.shouldAvoidTriggerChange||i.default(r).trigger("change")),r.focus(),t=!1}}this._element.hasAttribute("disabled")||this._element.classList.contains("disabled")||(t&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(g)),e&&i.default(this._element).toggleClass(g))},t.dispose=function(){i.default.removeData(this._element,m),this._element=null},e._jQueryInterface=function(t,n){return this.each((function(){var r=i.default(this),o=r.data(m);o||(o=new e(this),r.data(m,o)),o.shouldAvoidTriggerChange=n,"toggle"===t&&o[t]()}))},s(e,null,[{key:"VERSION",get:function(){return"4.6.0"}}]),e}();i.default(document).on("click.bs.button.data-api",y,(function(e){var t=e.target,n=t;if(i.default(t).hasClass("btn")||(t=i.default(t).closest(w)[0]),!t||t.hasAttribute("disabled")||t.classList.contains("disabled"))e.preventDefault();else{var r=t.querySelector(b);if(r&&(r.hasAttribute("disabled")||r.classList.contains("disabled")))return void e.preventDefault();"INPUT"!==n.tagName&&"LABEL"===t.tagName||x._jQueryInterface.call(i.default(t),"toggle","INPUT"===n.tagName)}})).on("focus.bs.button.data-api blur.bs.button.data-api",y,(function(e){var t=i.default(e.target).closest(w)[0];i.default(t).toggleClass("focus",/^focus(in)?$/.test(e.type))})),i.default(window).on("load.bs.button.data-api",(function(){for(var e=[].slice.call(document.querySelectorAll('[data-toggle="buttons"] .btn')),t=0,n=e.length;t0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var t=e.prototype;return t.next=function(){this._isSliding||this._slide(C)},t.nextWhenVisible=function(){var e=i.default(this._element);!document.hidden&&e.is(":visible")&&"hidden"!==e.css("visibility")&&this.next()},t.prev=function(){this._isSliding||this._slide(N)},t.pause=function(e){e||(this._isPaused=!0),this._element.querySelector(".carousel-item-next, .carousel-item-prev")&&(f.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},t.cycle=function(e){e||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},t.to=function(e){var t=this;this._activeElement=this._element.querySelector(D);var n=this._getItemIndex(this._activeElement);if(!(e>this._items.length-1||e<0))if(this._isSliding)i.default(this._element).one(j,(function(){return t.to(e)}));else{if(n===e)return this.pause(),void this.cycle();var r=e>n?C:N;this._slide(r,this._items[e])}},t.dispose=function(){i.default(this._element).off(T),i.default.removeData(this._element,E),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},t._getConfig=function(e){return e=u({},k,e),f.typeCheckConfig(_,e,O),e},t._handleSwipe=function(){var e=Math.abs(this.touchDeltaX);if(!(e<=40)){var t=e/this.touchDeltaX;this.touchDeltaX=0,t>0&&this.prev(),t<0&&this.next()}},t._addEventListeners=function(){var e=this;this._config.keyboard&&i.default(this._element).on("keydown.bs.carousel",(function(t){return e._keydown(t)})),"hover"===this._config.pause&&i.default(this._element).on("mouseenter.bs.carousel",(function(t){return e.pause(t)})).on("mouseleave.bs.carousel",(function(t){return e.cycle(t)})),this._config.touch&&this._addTouchEventListeners()},t._addTouchEventListeners=function(){var e=this;if(this._touchSupported){var t=function(t){e._pointerEvent&&I[t.originalEvent.pointerType.toUpperCase()]?e.touchStartX=t.originalEvent.clientX:e._pointerEvent||(e.touchStartX=t.originalEvent.touches[0].clientX)},n=function(t){e._pointerEvent&&I[t.originalEvent.pointerType.toUpperCase()]&&(e.touchDeltaX=t.originalEvent.clientX-e.touchStartX),e._handleSwipe(),"hover"===e._config.pause&&(e.pause(),e.touchTimeout&&clearTimeout(e.touchTimeout),e.touchTimeout=setTimeout((function(t){return e.cycle(t)}),500+e._config.interval))};i.default(this._element.querySelectorAll(".carousel-item img")).on("dragstart.bs.carousel",(function(e){return e.preventDefault()})),this._pointerEvent?(i.default(this._element).on("pointerdown.bs.carousel",(function(e){return t(e)})),i.default(this._element).on("pointerup.bs.carousel",(function(e){return n(e)})),this._element.classList.add("pointer-event")):(i.default(this._element).on("touchstart.bs.carousel",(function(e){return t(e)})),i.default(this._element).on("touchmove.bs.carousel",(function(t){return function(t){t.originalEvent.touches&&t.originalEvent.touches.length>1?e.touchDeltaX=0:e.touchDeltaX=t.originalEvent.touches[0].clientX-e.touchStartX}(t)})),i.default(this._element).on("touchend.bs.carousel",(function(e){return n(e)})))}},t._keydown=function(e){if(!/input|textarea/i.test(e.target.tagName))switch(e.which){case 37:e.preventDefault(),this.prev();break;case 39:e.preventDefault(),this.next()}},t._getItemIndex=function(e){return this._items=e&&e.parentNode?[].slice.call(e.parentNode.querySelectorAll(".carousel-item")):[],this._items.indexOf(e)},t._getItemByDirection=function(e,t){var n=e===C,r=e===N,i=this._getItemIndex(t),o=this._items.length-1;if((r&&0===i||n&&i===o)&&!this._config.wrap)return t;var a=(i+(e===N?-1:1))%this._items.length;return-1===a?this._items[this._items.length-1]:this._items[a]},t._triggerSlideEvent=function(e,t){var n=this._getItemIndex(e),r=this._getItemIndex(this._element.querySelector(D)),o=i.default.Event("slide.bs.carousel",{relatedTarget:e,direction:t,from:r,to:n});return i.default(this._element).trigger(o),o},t._setActiveIndicatorElement=function(e){if(this._indicatorsElement){var t=[].slice.call(this._indicatorsElement.querySelectorAll(".active"));i.default(t).removeClass(A);var n=this._indicatorsElement.children[this._getItemIndex(e)];n&&i.default(n).addClass(A)}},t._updateInterval=function(){var e=this._activeElement||this._element.querySelector(D);if(e){var t=parseInt(e.getAttribute("data-interval"),10);t?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=t):this._config.interval=this._config.defaultInterval||this._config.interval}},t._slide=function(e,t){var n,r,o,a=this,s=this._element.querySelector(D),u=this._getItemIndex(s),l=t||s&&this._getItemByDirection(e,s),c=this._getItemIndex(l),d=Boolean(this._interval);if(e===C?(n="carousel-item-left",r="carousel-item-next",o="left"):(n="carousel-item-right",r="carousel-item-prev",o="right"),l&&i.default(l).hasClass(A))this._isSliding=!1;else if(!this._triggerSlideEvent(l,o).isDefaultPrevented()&&s&&l){this._isSliding=!0,d&&this.pause(),this._setActiveIndicatorElement(l),this._activeElement=l;var h=i.default.Event(j,{relatedTarget:l,direction:o,from:u,to:c});if(i.default(this._element).hasClass("slide")){i.default(l).addClass(r),f.reflow(l),i.default(s).addClass(n),i.default(l).addClass(n);var p=f.getTransitionDurationFromElement(s);i.default(s).one(f.TRANSITION_END,(function(){i.default(l).removeClass(n+" "+r).addClass(A),i.default(s).removeClass("active "+r+" "+n),a._isSliding=!1,setTimeout((function(){return i.default(a._element).trigger(h)}),0)})).emulateTransitionEnd(p)}else i.default(s).removeClass(A),i.default(l).addClass(A),this._isSliding=!1,i.default(this._element).trigger(h);d&&this.cycle()}},e._jQueryInterface=function(t){return this.each((function(){var n=i.default(this).data(E),r=u({},k,i.default(this).data());"object"==typeof t&&(r=u({},r,t));var o="string"==typeof t?t:r.slide;if(n||(n=new e(this,r),i.default(this).data(E,n)),"number"==typeof t)n.to(t);else if("string"==typeof o){if(void 0===n[o])throw new TypeError('No method named "'+o+'"');n[o]()}else r.interval&&r.ride&&(n.pause(),n.cycle())}))},e._dataApiClickHandler=function(t){var n=f.getSelectorFromElement(this);if(n){var r=i.default(n)[0];if(r&&i.default(r).hasClass("carousel")){var o=u({},i.default(r).data(),i.default(this).data()),a=this.getAttribute("data-slide-to");a&&(o.interval=!1),e._jQueryInterface.call(i.default(r),o),a&&i.default(r).data(E).to(a),t.preventDefault()}}},s(e,null,[{key:"VERSION",get:function(){return"4.6.0"}},{key:"Default",get:function(){return k}}]),e}();i.default(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",L._dataApiClickHandler),i.default(window).on("load.bs.carousel.data-api",(function(){for(var e=[].slice.call(document.querySelectorAll('[data-ride="carousel"]')),t=0,n=e.length;t0&&(this._selector=a,this._triggerArray.push(o))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var t=e.prototype;return t.toggle=function(){i.default(this._element).hasClass(H)?this.hide():this.show()},t.show=function(){var t,n,r=this;if(!(this._isTransitioning||i.default(this._element).hasClass(H)||(this._parent&&0===(t=[].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter((function(e){return"string"==typeof r._config.parent?e.getAttribute("data-parent")===r._config.parent:e.classList.contains(V)}))).length&&(t=null),t&&(n=i.default(t).not(this._selector).data(P))&&n._isTransitioning))){var o=i.default.Event("show.bs.collapse");if(i.default(this._element).trigger(o),!o.isDefaultPrevented()){t&&(e._jQueryInterface.call(i.default(t).not(this._selector),"hide"),n||i.default(t).data(P,null));var a=this._getDimension();i.default(this._element).removeClass(V).addClass(B),this._element.style[a]=0,this._triggerArray.length&&i.default(this._triggerArray).removeClass(U).attr("aria-expanded",!0),this.setTransitioning(!0);var s="scroll"+(a[0].toUpperCase()+a.slice(1)),u=f.getTransitionDurationFromElement(this._element);i.default(this._element).one(f.TRANSITION_END,(function(){i.default(r._element).removeClass(B).addClass("collapse show"),r._element.style[a]="",r.setTransitioning(!1),i.default(r._element).trigger("shown.bs.collapse")})).emulateTransitionEnd(u),this._element.style[a]=this._element[s]+"px"}}},t.hide=function(){var e=this;if(!this._isTransitioning&&i.default(this._element).hasClass(H)){var t=i.default.Event("hide.bs.collapse");if(i.default(this._element).trigger(t),!t.isDefaultPrevented()){var n=this._getDimension();this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",f.reflow(this._element),i.default(this._element).addClass(B).removeClass("collapse show");var r=this._triggerArray.length;if(r>0)for(var o=0;o0},t._getOffset=function(){var e=this,t={};return"function"==typeof this._config.offset?t.fn=function(t){return t.offsets=u({},t.offsets,e._config.offset(t.offsets,e._element)||{}),t}:t.offset=this._config.offset,t},t._getPopperConfig=function(){var e={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(e.modifiers.applyStyle={enabled:!1}),u({},e,this._config.popperConfig)},e._jQueryInterface=function(t){return this.each((function(){var n=i.default(this).data(Y);if(n||(n=new e(this,"object"==typeof t?t:null),i.default(this).data(Y,n)),"string"==typeof t){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}}))},e._clearMenus=function(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var n=[].slice.call(document.querySelectorAll(oe)),r=0,o=n.length;r0&&a--,40===t.which&&adocument.documentElement.clientHeight;n||(this._element.style.overflowY="hidden"),this._element.classList.add(ke);var r=f.getTransitionDurationFromElement(this._dialog);i.default(this._element).off(f.TRANSITION_END),i.default(this._element).one(f.TRANSITION_END,(function(){e._element.classList.remove(ke),n||i.default(e._element).one(f.TRANSITION_END,(function(){e._element.style.overflowY=""})).emulateTransitionEnd(e._element,r)})).emulateTransitionEnd(r),this._element.focus()}},t._showElement=function(e){var t=this,n=i.default(this._element).hasClass(Te),r=this._dialog?this._dialog.querySelector(".modal-body"):null;this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),i.default(this._dialog).hasClass("modal-dialog-scrollable")&&r?r.scrollTop=0:this._element.scrollTop=0,n&&f.reflow(this._element),i.default(this._element).addClass(Se),this._config.focus&&this._enforceFocus();var o=i.default.Event("shown.bs.modal",{relatedTarget:e}),a=function(){t._config.focus&&t._element.focus(),t._isTransitioning=!1,i.default(t._element).trigger(o)};if(n){var s=f.getTransitionDurationFromElement(this._dialog);i.default(this._dialog).one(f.TRANSITION_END,a).emulateTransitionEnd(s)}else a()},t._enforceFocus=function(){var e=this;i.default(document).off(ye).on(ye,(function(t){document!==t.target&&e._element!==t.target&&0===i.default(e._element).has(t.target).length&&e._element.focus()}))},t._setEscapeEvent=function(){var e=this;this._isShown?i.default(this._element).on(xe,(function(t){e._config.keyboard&&27===t.which?(t.preventDefault(),e.hide()):e._config.keyboard||27!==t.which||e._triggerBackdropTransition()})):this._isShown||i.default(this._element).off(xe)},t._setResizeEvent=function(){var e=this;this._isShown?i.default(window).on(be,(function(t){return e.handleUpdate(t)})):i.default(window).off(be)},t._hideModal=function(){var e=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop((function(){i.default(document.body).removeClass(Ee),e._resetAdjustments(),e._resetScrollbar(),i.default(e._element).trigger(ve)}))},t._removeBackdrop=function(){this._backdrop&&(i.default(this._backdrop).remove(),this._backdrop=null)},t._showBackdrop=function(e){var t=this,n=i.default(this._element).hasClass(Te)?Te:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",n&&this._backdrop.classList.add(n),i.default(this._backdrop).appendTo(document.body),i.default(this._element).on(we,(function(e){t._ignoreBackdropClick?t._ignoreBackdropClick=!1:e.target===e.currentTarget&&("static"===t._config.backdrop?t._triggerBackdropTransition():t.hide())})),n&&f.reflow(this._backdrop),i.default(this._backdrop).addClass(Se),!e)return;if(!n)return void e();var r=f.getTransitionDurationFromElement(this._backdrop);i.default(this._backdrop).one(f.TRANSITION_END,e).emulateTransitionEnd(r)}else if(!this._isShown&&this._backdrop){i.default(this._backdrop).removeClass(Se);var o=function(){t._removeBackdrop(),e&&e()};if(i.default(this._element).hasClass(Te)){var a=f.getTransitionDurationFromElement(this._backdrop);i.default(this._backdrop).one(f.TRANSITION_END,o).emulateTransitionEnd(a)}else o()}else e&&e()},t._adjustDialog=function(){var e=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&e&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!e&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var e=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(e.left+e.right)
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",customClass:"",sanitize:!0,sanitizeFn:null,whiteList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},Ue="show",We="out",ze={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},$e="fade",Ze="show",Ye="hover",Ge="focus",Qe=function(){function e(e,t){if(void 0===o.default)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=e,this.config=this._getConfig(t),this.tip=null,this._setListeners()}var t=e.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(e){if(this._isEnabled)if(e){var t=this.constructor.DATA_KEY,n=i.default(e.currentTarget).data(t);n||(n=new this.constructor(e.currentTarget,this._getDelegateConfig()),i.default(e.currentTarget).data(t,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(i.default(this.getTipElement()).hasClass(Ze))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),i.default.removeData(this.element,this.constructor.DATA_KEY),i.default(this.element).off(this.constructor.EVENT_KEY),i.default(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&i.default(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===i.default(this.element).css("display"))throw new Error("Please use show on visible elements");var t=i.default.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){i.default(this.element).trigger(t);var n=f.findShadowRoot(this.element),r=i.default.contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!r)return;var a=this.getTipElement(),s=f.getUID(this.constructor.NAME);a.setAttribute("id",s),this.element.setAttribute("aria-describedby",s),this.setContent(),this.config.animation&&i.default(a).addClass($e);var u="function"==typeof this.config.placement?this.config.placement.call(this,a,this.element):this.config.placement,l=this._getAttachment(u);this.addAttachmentClass(l);var c=this._getContainer();i.default(a).data(this.constructor.DATA_KEY,this),i.default.contains(this.element.ownerDocument.documentElement,this.tip)||i.default(a).appendTo(c),i.default(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new o.default(this.element,a,this._getPopperConfig(l)),i.default(a).addClass(Ze),i.default(a).addClass(this.config.customClass),"ontouchstart"in document.documentElement&&i.default(document.body).children().on("mouseover",null,i.default.noop);var d=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,i.default(e.element).trigger(e.constructor.Event.SHOWN),t===We&&e._leave(null,e)};if(i.default(this.tip).hasClass($e)){var h=f.getTransitionDurationFromElement(this.tip);i.default(this.tip).one(f.TRANSITION_END,d).emulateTransitionEnd(h)}else d()}},t.hide=function(e){var t=this,n=this.getTipElement(),r=i.default.Event(this.constructor.Event.HIDE),o=function(){t._hoverState!==Ue&&n.parentNode&&n.parentNode.removeChild(n),t._cleanTipClass(),t.element.removeAttribute("aria-describedby"),i.default(t.element).trigger(t.constructor.Event.HIDDEN),null!==t._popper&&t._popper.destroy(),e&&e()};if(i.default(this.element).trigger(r),!r.isDefaultPrevented()){if(i.default(n).removeClass(Ze),"ontouchstart"in document.documentElement&&i.default(document.body).children().off("mouseover",null,i.default.noop),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,i.default(this.tip).hasClass($e)){var a=f.getTransitionDurationFromElement(n);i.default(n).one(f.TRANSITION_END,o).emulateTransitionEnd(a)}else o();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(e){i.default(this.getTipElement()).addClass("bs-tooltip-"+e)},t.getTipElement=function(){return this.tip=this.tip||i.default(this.config.template)[0],this.tip},t.setContent=function(){var e=this.getTipElement();this.setElementContent(i.default(e.querySelectorAll(".tooltip-inner")),this.getTitle()),i.default(e).removeClass("fade show")},t.setElementContent=function(e,t){"object"!=typeof t||!t.nodeType&&!t.jquery?this.config.html?(this.config.sanitize&&(t=Ie(t,this.config.whiteList,this.config.sanitizeFn)),e.html(t)):e.text(t):this.config.html?i.default(t).parent().is(e)||e.empty().append(t):e.text(i.default(t).text())},t.getTitle=function(){var e=this.element.getAttribute("data-original-title");return e||(e="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),e},t._getPopperConfig=function(e){var t=this;return u({},{placement:e,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(e){e.originalPlacement!==e.placement&&t._handlePopperPlacementChange(e)},onUpdate:function(e){return t._handlePopperPlacementChange(e)}},this.config.popperConfig)},t._getOffset=function(){var e=this,t={};return"function"==typeof this.config.offset?t.fn=function(t){return t.offsets=u({},t.offsets,e.config.offset(t.offsets,e.element)||{}),t}:t.offset=this.config.offset,t},t._getContainer=function(){return!1===this.config.container?document.body:f.isElement(this.config.container)?i.default(this.config.container):i.default(document).find(this.config.container)},t._getAttachment=function(e){return Ve[e.toUpperCase()]},t._setListeners=function(){var e=this;this.config.trigger.split(" ").forEach((function(t){if("click"===t)i.default(e.element).on(e.constructor.Event.CLICK,e.config.selector,(function(t){return e.toggle(t)}));else if("manual"!==t){var n=t===Ye?e.constructor.Event.MOUSEENTER:e.constructor.Event.FOCUSIN,r=t===Ye?e.constructor.Event.MOUSELEAVE:e.constructor.Event.FOCUSOUT;i.default(e.element).on(n,e.config.selector,(function(t){return e._enter(t)})).on(r,e.config.selector,(function(t){return e._leave(t)}))}})),this._hideModalHandler=function(){e.element&&e.hide()},i.default(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=u({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var e=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==e)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(e,t){var n=this.constructor.DATA_KEY;(t=t||i.default(e.currentTarget).data(n))||(t=new this.constructor(e.currentTarget,this._getDelegateConfig()),i.default(e.currentTarget).data(n,t)),e&&(t._activeTrigger["focusin"===e.type?Ge:Ye]=!0),i.default(t.getTipElement()).hasClass(Ze)||t._hoverState===Ue?t._hoverState=Ue:(clearTimeout(t._timeout),t._hoverState=Ue,t.config.delay&&t.config.delay.show?t._timeout=setTimeout((function(){t._hoverState===Ue&&t.show()}),t.config.delay.show):t.show())},t._leave=function(e,t){var n=this.constructor.DATA_KEY;(t=t||i.default(e.currentTarget).data(n))||(t=new this.constructor(e.currentTarget,this._getDelegateConfig()),i.default(e.currentTarget).data(n,t)),e&&(t._activeTrigger["focusout"===e.type?Ge:Ye]=!1),t._isWithActiveTrigger()||(clearTimeout(t._timeout),t._hoverState=We,t.config.delay&&t.config.delay.hide?t._timeout=setTimeout((function(){t._hoverState===We&&t.hide()}),t.config.delay.hide):t.hide())},t._isWithActiveTrigger=function(){for(var e in this._activeTrigger)if(this._activeTrigger[e])return!0;return!1},t._getConfig=function(e){var t=i.default(this.element).data();return Object.keys(t).forEach((function(e){-1!==Re.indexOf(e)&&delete t[e]})),"number"==typeof(e=u({},this.constructor.Default,t,"object"==typeof e&&e?e:{})).delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),f.typeCheckConfig(Le,e,this.constructor.DefaultType),e.sanitize&&(e.template=Ie(e.template,e.whiteList,e.sanitizeFn)),e},t._getDelegateConfig=function(){var e={};if(this.config)for(var t in this.config)this.constructor.Default[t]!==this.config[t]&&(e[t]=this.config[t]);return e},t._cleanTipClass=function(){var e=i.default(this.getTipElement()),t=e.attr("class").match(Fe);null!==t&&t.length&&e.removeClass(t.join(""))},t._handlePopperPlacementChange=function(e){this.tip=e.instance.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(e.placement))},t._fixTransition=function(){var e=this.getTipElement(),t=this.config.animation;null===e.getAttribute("x-placement")&&(i.default(e).removeClass($e),this.config.animation=!1,this.hide(),this.show(),this.config.animation=t)},e._jQueryInterface=function(t){return this.each((function(){var n=i.default(this),r=n.data(Me),o="object"==typeof t&&t;if((r||!/dispose|hide/.test(t))&&(r||(r=new e(this,o),n.data(Me,r)),"string"==typeof t)){if(void 0===r[t])throw new TypeError('No method named "'+t+'"');r[t]()}}))},s(e,null,[{key:"VERSION",get:function(){return"4.6.0"}},{key:"Default",get:function(){return Be}},{key:"NAME",get:function(){return Le}},{key:"DATA_KEY",get:function(){return Me}},{key:"Event",get:function(){return ze}},{key:"EVENT_KEY",get:function(){return Pe}},{key:"DefaultType",get:function(){return He}}]),e}();i.default.fn.tooltip=Qe._jQueryInterface,i.default.fn.tooltip.Constructor=Qe,i.default.fn.tooltip.noConflict=function(){return i.default.fn.tooltip=qe,Qe._jQueryInterface};var Je="popover",Xe="bs.popover",Ke=".bs.popover",et=i.default.fn.popover,tt=new RegExp("(^|\\s)bs-popover\\S+","g"),nt=u({},Qe.Default,{placement:"right",trigger:"click",content:"",template:''}),rt=u({},Qe.DefaultType,{content:"(string|element|function)"}),it={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},ot=function(e){function t(){return e.apply(this,arguments)||this}var n,r;r=e,(n=t).prototype=Object.create(r.prototype),n.prototype.constructor=n,n.__proto__=r;var o=t.prototype;return o.isWithContent=function(){return this.getTitle()||this._getContent()},o.addAttachmentClass=function(e){i.default(this.getTipElement()).addClass("bs-popover-"+e)},o.getTipElement=function(){return this.tip=this.tip||i.default(this.config.template)[0],this.tip},o.setContent=function(){var e=i.default(this.getTipElement());this.setElementContent(e.find(".popover-header"),this.getTitle());var t=this._getContent();"function"==typeof t&&(t=t.call(this.element)),this.setElementContent(e.find(".popover-body"),t),e.removeClass("fade show")},o._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},o._cleanTipClass=function(){var e=i.default(this.getTipElement()),t=e.attr("class").match(tt);null!==t&&t.length>0&&e.removeClass(t.join(""))},t._jQueryInterface=function(e){return this.each((function(){var n=i.default(this).data(Xe),r="object"==typeof e?e:null;if((n||!/dispose|hide/.test(e))&&(n||(n=new t(this,r),i.default(this).data(Xe,n)),"string"==typeof e)){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},s(t,null,[{key:"VERSION",get:function(){return"4.6.0"}},{key:"Default",get:function(){return nt}},{key:"NAME",get:function(){return Je}},{key:"DATA_KEY",get:function(){return Xe}},{key:"Event",get:function(){return it}},{key:"EVENT_KEY",get:function(){return Ke}},{key:"DefaultType",get:function(){return rt}}]),t}(Qe);i.default.fn.popover=ot._jQueryInterface,i.default.fn.popover.Constructor=ot,i.default.fn.popover.noConflict=function(){return i.default.fn.popover=et,ot._jQueryInterface};var at="scrollspy",st="bs.scrollspy",ut="."+st,lt=i.default.fn[at],ct={offset:10,method:"auto",target:""},ft={offset:"number",method:"string",target:"(string|element)"},dt="active",ht=".nav, .list-group",pt=".nav-link",mt="position",vt=function(){function e(e,t){var n=this;this._element=e,this._scrollElement="BODY"===e.tagName?window:e,this._config=this._getConfig(t),this._selector=this._config.target+" "+".nav-link,"+this._config.target+" "+".list-group-item,"+this._config.target+" .dropdown-item",this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,i.default(this._scrollElement).on("scroll.bs.scrollspy",(function(e){return n._process(e)})),this.refresh(),this._process()}var t=e.prototype;return t.refresh=function(){var e=this,t=this._scrollElement===this._scrollElement.window?"offset":mt,n="auto"===this._config.method?t:this._config.method,r=n===mt?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map((function(e){var t,o=f.getSelectorFromElement(e);if(o&&(t=document.querySelector(o)),t){var a=t.getBoundingClientRect();if(a.width||a.height)return[i.default(t)[n]().top+r,o]}return null})).filter((function(e){return e})).sort((function(e,t){return e[0]-t[0]})).forEach((function(t){e._offsets.push(t[0]),e._targets.push(t[1])}))},t.dispose=function(){i.default.removeData(this._element,st),i.default(this._scrollElement).off(ut),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},t._getConfig=function(e){if("string"!=typeof(e=u({},ct,"object"==typeof e&&e?e:{})).target&&f.isElement(e.target)){var t=i.default(e.target).attr("id");t||(t=f.getUID(at),i.default(e.target).attr("id",t)),e.target="#"+t}return f.typeCheckConfig(at,e,ft),e},t._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},t._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},t._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},t._process=function(){var e=this._getScrollTop()+this._config.offset,t=this._getScrollHeight(),n=this._config.offset+t-this._getOffsetHeight();if(this._scrollHeight!==t&&this.refresh(),e>=n){var r=this._targets[this._targets.length-1];this._activeTarget!==r&&this._activate(r)}else{if(this._activeTarget&&e0)return this._activeTarget=null,void this._clear();for(var i=this._offsets.length;i--;)this._activeTarget!==this._targets[i]&&e>=this._offsets[i]&&(void 0===this._offsets[i+1]||e li > .active",Tt=function(){function e(e){this._element=e}var t=e.prototype;return t.show=function(){var e=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&i.default(this._element).hasClass(bt)||i.default(this._element).hasClass("disabled"))){var t,n,r=i.default(this._element).closest(".nav, .list-group")[0],o=f.getSelectorFromElement(this._element);if(r){var a="UL"===r.nodeName||"OL"===r.nodeName?Et:_t;n=(n=i.default.makeArray(i.default(r).find(a)))[n.length-1]}var s=i.default.Event("hide.bs.tab",{relatedTarget:this._element}),u=i.default.Event("show.bs.tab",{relatedTarget:n});if(n&&i.default(n).trigger(s),i.default(this._element).trigger(u),!u.isDefaultPrevented()&&!s.isDefaultPrevented()){o&&(t=document.querySelector(o)),this._activate(this._element,r);var l=function(){var t=i.default.Event("hidden.bs.tab",{relatedTarget:e._element}),r=i.default.Event("shown.bs.tab",{relatedTarget:n});i.default(n).trigger(t),i.default(e._element).trigger(r)};t?this._activate(t,t.parentNode,l):l()}}},t.dispose=function(){i.default.removeData(this._element,gt),this._element=null},t._activate=function(e,t,n){var r=this,o=(!t||"UL"!==t.nodeName&&"OL"!==t.nodeName?i.default(t).children(_t):i.default(t).find(Et))[0],a=n&&o&&i.default(o).hasClass(wt),s=function(){return r._transitionComplete(e,o,n)};if(o&&a){var u=f.getTransitionDurationFromElement(o);i.default(o).removeClass(xt).one(f.TRANSITION_END,s).emulateTransitionEnd(u)}else s()},t._transitionComplete=function(e,t,n){if(t){i.default(t).removeClass(bt);var r=i.default(t.parentNode).find("> .dropdown-menu .active")[0];r&&i.default(r).removeClass(bt),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!1)}if(i.default(e).addClass(bt),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!0),f.reflow(e),e.classList.contains(wt)&&e.classList.add(xt),e.parentNode&&i.default(e.parentNode).hasClass("dropdown-menu")){var o=i.default(e).closest(".dropdown")[0];if(o){var a=[].slice.call(o.querySelectorAll(".dropdown-toggle"));i.default(a).addClass(bt)}e.setAttribute("aria-expanded",!0)}n&&n()},e._jQueryInterface=function(t){return this.each((function(){var n=i.default(this),r=n.data(gt);if(r||(r=new e(this),n.data(gt,r)),"string"==typeof t){if(void 0===r[t])throw new TypeError('No method named "'+t+'"');r[t]()}}))},s(e,null,[{key:"VERSION",get:function(){return"4.6.0"}}]),e}();i.default(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',(function(e){e.preventDefault(),Tt._jQueryInterface.call(i.default(this),"show")})),i.default.fn.tab=Tt._jQueryInterface,i.default.fn.tab.Constructor=Tt,i.default.fn.tab.noConflict=function(){return i.default.fn.tab=yt,Tt._jQueryInterface};var St="toast",kt="bs.toast",Ot=i.default.fn.toast,Ct="click.dismiss.bs.toast",Nt="hide",jt="show",At="showing",Dt={animation:"boolean",autohide:"boolean",delay:"number"},It={animation:!0,autohide:!0,delay:500},Lt=function(){function e(e,t){this._element=e,this._config=this._getConfig(t),this._timeout=null,this._setListeners()}var t=e.prototype;return t.show=function(){var e=this,t=i.default.Event("show.bs.toast");if(i.default(this._element).trigger(t),!t.isDefaultPrevented()){this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");var n=function(){e._element.classList.remove(At),e._element.classList.add(jt),i.default(e._element).trigger("shown.bs.toast"),e._config.autohide&&(e._timeout=setTimeout((function(){e.hide()}),e._config.delay))};if(this._element.classList.remove(Nt),f.reflow(this._element),this._element.classList.add(At),this._config.animation){var r=f.getTransitionDurationFromElement(this._element);i.default(this._element).one(f.TRANSITION_END,n).emulateTransitionEnd(r)}else n()}},t.hide=function(){if(this._element.classList.contains(jt)){var e=i.default.Event("hide.bs.toast");i.default(this._element).trigger(e),e.isDefaultPrevented()||this._close()}},t.dispose=function(){this._clearTimeout(),this._element.classList.contains(jt)&&this._element.classList.remove(jt),i.default(this._element).off(Ct),i.default.removeData(this._element,kt),this._element=null,this._config=null},t._getConfig=function(e){return e=u({},It,i.default(this._element).data(),"object"==typeof e&&e?e:{}),f.typeCheckConfig(St,e,this.constructor.DefaultType),e},t._setListeners=function(){var e=this;i.default(this._element).on(Ct,'[data-dismiss="toast"]',(function(){return e.hide()}))},t._close=function(){var e=this,t=function(){e._element.classList.add(Nt),i.default(e._element).trigger("hidden.bs.toast")};if(this._element.classList.remove(jt),this._config.animation){var n=f.getTransitionDurationFromElement(this._element);i.default(this._element).one(f.TRANSITION_END,t).emulateTransitionEnd(n)}else t()},t._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},e._jQueryInterface=function(t){return this.each((function(){var n=i.default(this),r=n.data(kt);if(r||(r=new e(this,"object"==typeof t&&t),n.data(kt,r)),"string"==typeof t){if(void 0===r[t])throw new TypeError('No method named "'+t+'"');r[t](this)}}))},s(e,null,[{key:"VERSION",get:function(){return"4.6.0"}},{key:"DefaultType",get:function(){return Dt}},{key:"Default",get:function(){return It}}]),e}();i.default.fn.toast=Lt._jQueryInterface,i.default.fn.toast.Constructor=Lt,i.default.fn.toast.noConflict=function(){return i.default.fn.toast=Ot,Lt._jQueryInterface},e.Alert=p,e.Button=x,e.Carousel=L,e.Collapse=$,e.Dropdown=le,e.Modal=Ne,e.Popover=ot,e.Scrollspy=vt,e.Tab=Tt,e.Toast=Lt,e.Tooltip=Qe,e.Util=f,Object.defineProperty(e,"__esModule",{value:!0})}(t,n(9755),n(8981))},3099:e=>{e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},6077:(e,t,n)=>{var r=n(111);e.exports=function(e){if(!r(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},1223:(e,t,n)=>{var r=n(5112),i=n(30),o=n(3070),a=r("unscopables"),s=Array.prototype;null==s[a]&&o.f(s,a,{configurable:!0,value:i(null)}),e.exports=function(e){s[a][e]=!0}},1530:(e,t,n)=>{"use strict";var r=n(8710).charAt;e.exports=function(e,t,n){return t+(n?r(e,t).length:1)}},5787:e=>{e.exports=function(e,t,n){if(!(e instanceof t))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return e}},9670:(e,t,n)=>{var r=n(111);e.exports=function(e){if(!r(e))throw TypeError(String(e)+" is not an object");return e}},8533:(e,t,n)=>{"use strict";var r=n(2092).forEach,i=n(9341)("forEach");e.exports=i?[].forEach:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}},8457:(e,t,n)=>{"use strict";var r=n(9974),i=n(7908),o=n(3411),a=n(7659),s=n(7466),u=n(6135),l=n(1246);e.exports=function(e){var t,n,c,f,d,h,p=i(e),m="function"==typeof this?this:Array,v=arguments.length,g=v>1?arguments[1]:void 0,y=void 0!==g,b=l(p),w=0;if(y&&(g=r(g,v>2?arguments[2]:void 0,2)),null==b||m==Array&&a(b))for(n=new m(t=s(p.length));t>w;w++)h=y?g(p[w],w):p[w],u(n,w,h);else for(d=(f=b.call(p)).next,n=new m;!(c=d.call(f)).done;w++)h=y?o(f,g,[c.value,w],!0):c.value,u(n,w,h);return n.length=w,n}},1318:(e,t,n)=>{var r=n(5656),i=n(7466),o=n(1400),a=function(e){return function(t,n,a){var s,u=r(t),l=i(u.length),c=o(a,l);if(e&&n!=n){for(;l>c;)if((s=u[c++])!=s)return!0}else for(;l>c;c++)if((e||c in u)&&u[c]===n)return e||c||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},2092:(e,t,n)=>{var r=n(9974),i=n(8361),o=n(7908),a=n(7466),s=n(5417),u=[].push,l=function(e){var t=1==e,n=2==e,l=3==e,c=4==e,f=6==e,d=7==e,h=5==e||f;return function(p,m,v,g){for(var y,b,w=o(p),x=i(w),_=r(m,v,3),E=a(x.length),T=0,S=g||s,k=t?S(p,E):n||d?S(p,0):void 0;E>T;T++)if((h||T in x)&&(b=_(y=x[T],T,w),e))if(t)k[T]=b;else if(b)switch(e){case 3:return!0;case 5:return y;case 6:return T;case 2:u.call(k,y)}else switch(e){case 4:return!1;case 7:u.call(k,y)}return f?-1:l||c?c:k}};e.exports={forEach:l(0),map:l(1),filter:l(2),some:l(3),every:l(4),find:l(5),findIndex:l(6),filterReject:l(7)}},6583:(e,t,n)=>{"use strict";var r=n(5656),i=n(9958),o=n(7466),a=n(9341),s=Math.min,u=[].lastIndexOf,l=!!u&&1/[1].lastIndexOf(1,-0)<0,c=a("lastIndexOf"),f=l||!c;e.exports=f?function(e){if(l)return u.apply(this,arguments)||0;var t=r(this),n=o(t.length),a=n-1;for(arguments.length>1&&(a=s(a,i(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in t&&t[a]===e)return a||0;return-1}:u},1194:(e,t,n)=>{var r=n(7293),i=n(5112),o=n(7392),a=i("species");e.exports=function(e){return o>=51||!r((function(){var t=[];return(t.constructor={})[a]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},9341:(e,t,n)=>{"use strict";var r=n(7293);e.exports=function(e,t){var n=[][e];return!!n&&r((function(){n.call(null,t||function(){throw 1},1)}))}},7475:(e,t,n)=>{var r=n(111),i=n(3157),o=n(5112)("species");e.exports=function(e){var t;return i(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!i(t.prototype)?r(t)&&null===(t=t[o])&&(t=void 0):t=void 0),void 0===t?Array:t}},5417:(e,t,n)=>{var r=n(7475);e.exports=function(e,t){return new(r(e))(0===t?0:t)}},3411:(e,t,n)=>{var r=n(9670),i=n(9212);e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(t){throw i(e),t}}},7072:(e,t,n)=>{var r=n(5112)("iterator"),i=!1;try{var o=0,a={next:function(){return{done:!!o++}},return:function(){i=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(e){}e.exports=function(e,t){if(!t&&!i)return!1;var n=!1;try{var o={};o[r]=function(){return{next:function(){return{done:n=!0}}}},e(o)}catch(e){}return n}},4326:e=>{var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},648:(e,t,n)=>{var r=n(1694),i=n(4326),o=n(5112)("toStringTag"),a="Arguments"==i(function(){return arguments}());e.exports=r?i:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?n:a?i(t):"Object"==(r=i(t))&&"function"==typeof t.callee?"Arguments":r}},5631:(e,t,n)=>{"use strict";var r=n(3070).f,i=n(30),o=n(2248),a=n(9974),s=n(5787),u=n(408),l=n(654),c=n(6340),f=n(9781),d=n(2423).fastKey,h=n(9909),p=h.set,m=h.getterFor;e.exports={getConstructor:function(e,t,n,l){var c=e((function(e,r){s(e,c,t),p(e,{type:t,index:i(null),first:void 0,last:void 0,size:0}),f||(e.size=0),null!=r&&u(r,e[l],{that:e,AS_ENTRIES:n})})),h=m(t),v=function(e,t,n){var r,i,o=h(e),a=g(e,t);return a?a.value=n:(o.last=a={index:i=d(t,!0),key:t,value:n,previous:r=o.last,next:void 0,removed:!1},o.first||(o.first=a),r&&(r.next=a),f?o.size++:e.size++,"F"!==i&&(o.index[i]=a)),e},g=function(e,t){var n,r=h(e),i=d(t);if("F"!==i)return r.index[i];for(n=r.first;n;n=n.next)if(n.key==t)return n};return o(c.prototype,{clear:function(){for(var e=h(this),t=e.index,n=e.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete t[n.index],n=n.next;e.first=e.last=void 0,f?e.size=0:this.size=0},delete:function(e){var t=this,n=h(t),r=g(t,e);if(r){var i=r.next,o=r.previous;delete n.index[r.index],r.removed=!0,o&&(o.next=i),i&&(i.previous=o),n.first==r&&(n.first=i),n.last==r&&(n.last=o),f?n.size--:t.size--}return!!r},forEach:function(e){for(var t,n=h(this),r=a(e,arguments.length>1?arguments[1]:void 0,3);t=t?t.next:n.first;)for(r(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!g(this,e)}}),o(c.prototype,n?{get:function(e){var t=g(this,e);return t&&t.value},set:function(e,t){return v(this,0===e?0:e,t)}}:{add:function(e){return v(this,e=0===e?0:e,e)}}),f&&r(c.prototype,"size",{get:function(){return h(this).size}}),c},setStrong:function(e,t,n){var r=t+" Iterator",i=m(t),o=m(r);l(e,t,(function(e,t){p(this,{type:r,target:e,state:i(e),kind:t,last:void 0})}),(function(){for(var e=o(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?"keys"==t?{value:n.key,done:!1}:"values"==t?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(e.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),c(t)}}},7710:(e,t,n)=>{"use strict";var r=n(2109),i=n(7854),o=n(4705),a=n(1320),s=n(2423),u=n(408),l=n(5787),c=n(111),f=n(7293),d=n(7072),h=n(8003),p=n(9587);e.exports=function(e,t,n){var m=-1!==e.indexOf("Map"),v=-1!==e.indexOf("Weak"),g=m?"set":"add",y=i[e],b=y&&y.prototype,w=y,x={},_=function(e){var t=b[e];a(b,e,"add"==e?function(e){return t.call(this,0===e?0:e),this}:"delete"==e?function(e){return!(v&&!c(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return v&&!c(e)?void 0:t.call(this,0===e?0:e)}:"has"==e?function(e){return!(v&&!c(e))&&t.call(this,0===e?0:e)}:function(e,n){return t.call(this,0===e?0:e,n),this})};if(o(e,"function"!=typeof y||!(v||b.forEach&&!f((function(){(new y).entries().next()})))))w=n.getConstructor(t,e,m,g),s.enable();else if(o(e,!0)){var E=new w,T=E[g](v?{}:-0,1)!=E,S=f((function(){E.has(1)})),k=d((function(e){new y(e)})),O=!v&&f((function(){for(var e=new y,t=5;t--;)e[g](t,t);return!e.has(-0)}));k||((w=t((function(t,n){l(t,w,e);var r=p(new y,t,w);return null!=n&&u(n,r[g],{that:r,AS_ENTRIES:m}),r}))).prototype=b,b.constructor=w),(S||O)&&(_("delete"),_("has"),m&&_("get")),(O||T)&&_(g),v&&b.clear&&delete b.clear}return x[e]=w,r({global:!0,forced:w!=y},x),h(w,e),v||n.setStrong(w,e,m),w}},9920:(e,t,n)=>{var r=n(6656),i=n(3887),o=n(1236),a=n(3070);e.exports=function(e,t){for(var n=i(t),s=a.f,u=o.f,l=0;l{var r=n(7293);e.exports=!r((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},4994:(e,t,n)=>{"use strict";var r=n(3383).IteratorPrototype,i=n(30),o=n(9114),a=n(8003),s=n(7497),u=function(){return this};e.exports=function(e,t,n){var l=t+" Iterator";return e.prototype=i(r,{next:o(1,n)}),a(e,l,!1,!0),s[l]=u,e}},8880:(e,t,n)=>{var r=n(9781),i=n(3070),o=n(9114);e.exports=r?function(e,t,n){return i.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},9114:e=>{e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},6135:(e,t,n)=>{"use strict";var r=n(4948),i=n(3070),o=n(9114);e.exports=function(e,t,n){var a=r(t);a in e?i.f(e,a,o(0,n)):e[a]=n}},654:(e,t,n)=>{"use strict";var r=n(2109),i=n(4994),o=n(9518),a=n(7674),s=n(8003),u=n(8880),l=n(1320),c=n(5112),f=n(1913),d=n(7497),h=n(3383),p=h.IteratorPrototype,m=h.BUGGY_SAFARI_ITERATORS,v=c("iterator"),g="keys",y="values",b="entries",w=function(){return this};e.exports=function(e,t,n,c,h,x,_){i(n,t,c);var E,T,S,k=function(e){if(e===h&&A)return A;if(!m&&e in N)return N[e];switch(e){case g:case y:case b:return function(){return new n(this,e)}}return function(){return new n(this)}},O=t+" Iterator",C=!1,N=e.prototype,j=N[v]||N["@@iterator"]||h&&N[h],A=!m&&j||k(h),D="Array"==t&&N.entries||j;if(D&&(E=o(D.call(new e)),p!==Object.prototype&&E.next&&(f||o(E)===p||(a?a(E,p):"function"!=typeof E[v]&&u(E,v,w)),s(E,O,!0,!0),f&&(d[O]=w))),h==y&&j&&j.name!==y&&(C=!0,A=function(){return j.call(this)}),f&&!_||N[v]===A||u(N,v,A),d[t]=A,h)if(T={values:k(y),keys:x?A:k(g),entries:k(b)},_)for(S in T)(m||C||!(S in N))&&l(N,S,T[S]);else r({target:t,proto:!0,forced:m||C},T);return T}},7235:(e,t,n)=>{var r=n(857),i=n(6656),o=n(6061),a=n(3070).f;e.exports=function(e){var t=r.Symbol||(r.Symbol={});i(t,e)||a(t,e,{value:o.f(e)})}},9781:(e,t,n)=>{var r=n(7293);e.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},317:(e,t,n)=>{var r=n(7854),i=n(111),o=r.document,a=i(o)&&i(o.createElement);e.exports=function(e){return a?o.createElement(e):{}}},8324:e=>{e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},7871:e=>{e.exports="object"==typeof window},1528:(e,t,n)=>{var r=n(8113),i=n(7854);e.exports=/iphone|ipod|ipad/i.test(r)&&void 0!==i.Pebble},6833:(e,t,n)=>{var r=n(8113);e.exports=/(?:iphone|ipod|ipad).*applewebkit/i.test(r)},5268:(e,t,n)=>{var r=n(4326),i=n(7854);e.exports="process"==r(i.process)},1036:(e,t,n)=>{var r=n(8113);e.exports=/web0s(?!.*chrome)/i.test(r)},8113:(e,t,n)=>{var r=n(5005);e.exports=r("navigator","userAgent")||""},7392:(e,t,n)=>{var r,i,o=n(7854),a=n(8113),s=o.process,u=o.Deno,l=s&&s.versions||u&&u.version,c=l&&l.v8;c?i=(r=c.split("."))[0]<4?1:r[0]+r[1]:a&&(!(r=a.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\/(\d+)/))&&(i=r[1]),e.exports=i&&+i},748:e=>{e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},2109:(e,t,n)=>{var r=n(7854),i=n(1236).f,o=n(8880),a=n(1320),s=n(3505),u=n(9920),l=n(4705);e.exports=function(e,t){var n,c,f,d,h,p=e.target,m=e.global,v=e.stat;if(n=m?r:v?r[p]||s(p,{}):(r[p]||{}).prototype)for(c in t){if(d=t[c],f=e.noTargetGet?(h=i(n,c))&&h.value:n[c],!l(m?c:p+(v?".":"#")+c,e.forced)&&void 0!==f){if(typeof d==typeof f)continue;u(d,f)}(e.sham||f&&f.sham)&&o(d,"sham",!0),a(n,c,d,e)}}},7293:e=>{e.exports=function(e){try{return!!e()}catch(e){return!0}}},7007:(e,t,n)=>{"use strict";n(4916);var r=n(1320),i=n(2261),o=n(7293),a=n(5112),s=n(8880),u=a("species"),l=RegExp.prototype;e.exports=function(e,t,n,c){var f=a(e),d=!o((function(){var t={};return t[f]=function(){return 7},7!=""[e](t)})),h=d&&!o((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags="",n[f]=/./[f]),n.exec=function(){return t=!0,null},n[f](""),!t}));if(!d||!h||n){var p=/./[f],m=t(f,""[e],(function(e,t,n,r,o){var a=t.exec;return a===i||a===l.exec?d&&!o?{done:!0,value:p.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}}));r(String.prototype,e,m[0]),r(l,f,m[1])}c&&s(l[f],"sham",!0)}},6677:(e,t,n)=>{var r=n(7293);e.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},9974:(e,t,n)=>{var r=n(3099);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},7065:(e,t,n)=>{"use strict";var r=n(3099),i=n(111),o=[].slice,a={},s=function(e,t,n){if(!(t in a)){for(var r=[],i=0;i{var r=n(7854),i=function(e){return"function"==typeof e?e:void 0};e.exports=function(e,t){return arguments.length<2?i(r[e]):r[e]&&r[e][t]}},1246:(e,t,n)=>{var r=n(648),i=n(7497),o=n(5112)("iterator");e.exports=function(e){if(null!=e)return e[o]||e["@@iterator"]||i[r(e)]}},647:(e,t,n)=>{var r=n(7908),i=Math.floor,o="".replace,a=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,s=/\$([$&'`]|\d{1,2})/g;e.exports=function(e,t,n,u,l,c){var f=n+e.length,d=u.length,h=s;return void 0!==l&&(l=r(l),h=a),o.call(c,h,(function(r,o){var a;switch(o.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,n);case"'":return t.slice(f);case"<":a=l[o.slice(1,-1)];break;default:var s=+o;if(0===s)return r;if(s>d){var c=i(s/10);return 0===c?r:c<=d?void 0===u[c-1]?o.charAt(1):u[c-1]+o.charAt(1):r}a=u[s-1]}return void 0===a?"":a}))}},7854:(e,t,n)=>{var r=function(e){return e&&e.Math==Math&&e};e.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof n.g&&n.g)||function(){return this}()||Function("return this")()},6656:(e,t,n)=>{var r=n(7908),i={}.hasOwnProperty;e.exports=Object.hasOwn||function(e,t){return i.call(r(e),t)}},3501:e=>{e.exports={}},842:(e,t,n)=>{var r=n(7854);e.exports=function(e,t){var n=r.console;n&&n.error&&(1===arguments.length?n.error(e):n.error(e,t))}},490:(e,t,n)=>{var r=n(5005);e.exports=r("document","documentElement")},4664:(e,t,n)=>{var r=n(9781),i=n(7293),o=n(317);e.exports=!r&&!i((function(){return 7!=Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a}))},8361:(e,t,n)=>{var r=n(7293),i=n(4326),o="".split;e.exports=r((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==i(e)?o.call(e,""):Object(e)}:Object},9587:(e,t,n)=>{var r=n(111),i=n(7674);e.exports=function(e,t,n){var o,a;return i&&"function"==typeof(o=t.constructor)&&o!==n&&r(a=o.prototype)&&a!==n.prototype&&i(e,a),e}},2788:(e,t,n)=>{var r=n(5465),i=Function.toString;"function"!=typeof r.inspectSource&&(r.inspectSource=function(e){return i.call(e)}),e.exports=r.inspectSource},2423:(e,t,n)=>{var r=n(2109),i=n(3501),o=n(111),a=n(6656),s=n(3070).f,u=n(8006),l=n(1156),c=n(9711),f=n(6677),d=!1,h=c("meta"),p=0,m=Object.isExtensible||function(){return!0},v=function(e){s(e,h,{value:{objectID:"O"+p++,weakData:{}}})},g=e.exports={enable:function(){g.enable=function(){},d=!0;var e=u.f,t=[].splice,n={};n[h]=1,e(n).length&&(u.f=function(n){for(var r=e(n),i=0,o=r.length;i{var r,i,o,a=n(8536),s=n(7854),u=n(111),l=n(8880),c=n(6656),f=n(5465),d=n(6200),h=n(3501),p="Object already initialized",m=s.WeakMap;if(a||f.state){var v=f.state||(f.state=new m),g=v.get,y=v.has,b=v.set;r=function(e,t){if(y.call(v,e))throw new TypeError(p);return t.facade=e,b.call(v,e,t),t},i=function(e){return g.call(v,e)||{}},o=function(e){return y.call(v,e)}}else{var w=d("state");h[w]=!0,r=function(e,t){if(c(e,w))throw new TypeError(p);return t.facade=e,l(e,w,t),t},i=function(e){return c(e,w)?e[w]:{}},o=function(e){return c(e,w)}}e.exports={set:r,get:i,has:o,enforce:function(e){return o(e)?i(e):r(e,{})},getterFor:function(e){return function(t){var n;if(!u(t)||(n=i(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}}},7659:(e,t,n)=>{var r=n(5112),i=n(7497),o=r("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(i.Array===e||a[o]===e)}},3157:(e,t,n)=>{var r=n(4326);e.exports=Array.isArray||function(e){return"Array"==r(e)}},4705:(e,t,n)=>{var r=n(7293),i=/#|\.prototype\./,o=function(e,t){var n=s[a(e)];return n==l||n!=u&&("function"==typeof t?r(t):!!t)},a=o.normalize=function(e){return String(e).replace(i,".").toLowerCase()},s=o.data={},u=o.NATIVE="N",l=o.POLYFILL="P";e.exports=o},111:e=>{e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},1913:e=>{e.exports=!1},7850:(e,t,n)=>{var r=n(111),i=n(4326),o=n(5112)("match");e.exports=function(e){var t;return r(e)&&(void 0!==(t=e[o])?!!t:"RegExp"==i(e))}},2190:(e,t,n)=>{var r=n(5005),i=n(3307);e.exports=i?function(e){return"symbol"==typeof e}:function(e){var t=r("Symbol");return"function"==typeof t&&Object(e)instanceof t}},408:(e,t,n)=>{var r=n(9670),i=n(7659),o=n(7466),a=n(9974),s=n(1246),u=n(9212),l=function(e,t){this.stopped=e,this.result=t};e.exports=function(e,t,n){var c,f,d,h,p,m,v,g=n&&n.that,y=!(!n||!n.AS_ENTRIES),b=!(!n||!n.IS_ITERATOR),w=!(!n||!n.INTERRUPTED),x=a(t,g,1+y+w),_=function(e){return c&&u(c),new l(!0,e)},E=function(e){return y?(r(e),w?x(e[0],e[1],_):x(e[0],e[1])):w?x(e,_):x(e)};if(b)c=e;else{if("function"!=typeof(f=s(e)))throw TypeError("Target is not iterable");if(i(f)){for(d=0,h=o(e.length);h>d;d++)if((p=E(e[d]))&&p instanceof l)return p;return new l(!1)}c=f.call(e)}for(m=c.next;!(v=m.call(c)).done;){try{p=E(v.value)}catch(e){throw u(c),e}if("object"==typeof p&&p&&p instanceof l)return p}return new l(!1)}},9212:(e,t,n)=>{var r=n(9670);e.exports=function(e){var t=e.return;if(void 0!==t)return r(t.call(e)).value}},3383:(e,t,n)=>{"use strict";var r,i,o,a=n(7293),s=n(9518),u=n(8880),l=n(6656),c=n(5112),f=n(1913),d=c("iterator"),h=!1;[].keys&&("next"in(o=[].keys())?(i=s(s(o)))!==Object.prototype&&(r=i):h=!0);var p=null==r||a((function(){var e={};return r[d].call(e)!==e}));p&&(r={}),f&&!p||l(r,d)||u(r,d,(function(){return this})),e.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:h}},7497:e=>{e.exports={}},5948:(e,t,n)=>{var r,i,o,a,s,u,l,c,f=n(7854),d=n(1236).f,h=n(261).set,p=n(6833),m=n(1528),v=n(1036),g=n(5268),y=f.MutationObserver||f.WebKitMutationObserver,b=f.document,w=f.process,x=f.Promise,_=d(f,"queueMicrotask"),E=_&&_.value;E||(r=function(){var e,t;for(g&&(e=w.domain)&&e.exit();i;){t=i.fn,i=i.next;try{t()}catch(e){throw i?a():o=void 0,e}}o=void 0,e&&e.enter()},p||g||v||!y||!b?!m&&x&&x.resolve?((l=x.resolve(void 0)).constructor=x,c=l.then,a=function(){c.call(l,r)}):a=g?function(){w.nextTick(r)}:function(){h.call(f,r)}:(s=!0,u=b.createTextNode(""),new y(r).observe(u,{characterData:!0}),a=function(){u.data=s=!s})),e.exports=E||function(e){var t={fn:e,next:void 0};o&&(o.next=t),i||(i=t,a()),o=t}},3366:(e,t,n)=>{var r=n(7854);e.exports=r.Promise},133:(e,t,n)=>{var r=n(7392),i=n(7293);e.exports=!!Object.getOwnPropertySymbols&&!i((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},8536:(e,t,n)=>{var r=n(7854),i=n(2788),o=r.WeakMap;e.exports="function"==typeof o&&/native code/.test(i(o))},8523:(e,t,n)=>{"use strict";var r=n(3099),i=function(e){var t,n;this.promise=new e((function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r})),this.resolve=r(t),this.reject=r(n)};e.exports.f=function(e){return new i(e)}},3009:(e,t,n)=>{var r=n(7854),i=n(1340),o=n(3111).trim,a=n(1361),s=r.parseInt,u=/^[+-]?0[Xx]/,l=8!==s(a+"08")||22!==s(a+"0x16");e.exports=l?function(e,t){var n=o(i(e));return s(n,t>>>0||(u.test(n)?16:10))}:s},30:(e,t,n)=>{var r,i=n(9670),o=n(6048),a=n(748),s=n(3501),u=n(490),l=n(317),c=n(6200)("IE_PROTO"),f=function(){},d=function(e){return"