kordoc 4.19.2 → 4.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE +47 -0
- package/README.md +4 -1
- package/THIRD_PARTY/hwp-auto-docfit.LICENSE +23 -0
- package/THIRD_PARTY/korean-report-hwpx.LICENSE +21 -0
- package/dist/{-3JIHF2AL.js → -LJL6UNRO.js} +17 -11
- package/dist/{chunk-ORGWGR4K.cjs → chunk-2OTAFZ2Y.cjs} +6 -6
- package/dist/{chunk-ORGWGR4K.cjs.map → chunk-2OTAFZ2Y.cjs.map} +1 -1
- package/dist/{chunk-T2DZTOGG.cjs → chunk-3ITKDX7E.cjs} +12 -12
- package/dist/{chunk-T2DZTOGG.cjs.map → chunk-3ITKDX7E.cjs.map} +1 -1
- package/dist/{chunk-B4R443MV.js → chunk-6EXVHTBH.js} +2 -2
- package/dist/{chunk-AOVMOCTK.js → chunk-6SG56DDC.js} +2 -2
- package/dist/{chunk-5PGOZBEQ.cjs → chunk-7QL3G7UF.cjs} +22 -22
- package/dist/{chunk-5PGOZBEQ.cjs.map → chunk-7QL3G7UF.cjs.map} +1 -1
- package/dist/{chunk-R2JM2HOJ.js → chunk-ALCZCRIU.js} +4 -4
- package/dist/{chunk-PWQ2BVAT.js → chunk-D4EDAS3V.js} +22 -3
- package/dist/{chunk-PWQ2BVAT.js.map → chunk-D4EDAS3V.js.map} +1 -1
- package/dist/{chunk-OKHKEYTL.js → chunk-FNHELO37.js} +2 -2
- package/dist/{chunk-QYJPU4FZ.js → chunk-G57LD7SG.js} +2 -2
- package/dist/{chunk-TM4T4NYJ.js → chunk-GYPEF6GQ.js} +2 -2
- package/dist/{chunk-56ZWAREM.js → chunk-HDP2H33I.js} +2 -2
- package/dist/{chunk-VO22VAR3.js → chunk-JEKZXUIJ.js} +2 -2
- package/dist/{chunk-WQAGDJIP.cjs → chunk-JL525ZAU.cjs} +3 -3
- package/dist/{chunk-WQAGDJIP.cjs.map → chunk-JL525ZAU.cjs.map} +1 -1
- package/dist/{chunk-RVBQT2PD.cjs → chunk-JUFEZMXC.cjs} +3 -3
- package/dist/{chunk-RVBQT2PD.cjs.map → chunk-JUFEZMXC.cjs.map} +1 -1
- package/dist/chunk-LRHVFJ5J.js +29 -0
- package/dist/chunk-LRHVFJ5J.js.map +1 -0
- package/dist/{chunk-EUCBMW6C.js → chunk-MCMMGZOJ.js} +3 -3
- package/dist/{chunk-I2TBI7PN.js → chunk-O23XMVMP.js} +2 -2
- package/dist/{chunk-XPM7WC54.js → chunk-O33PS3VI.js} +4 -4
- package/dist/{chunk-6ZBORHFB.js → chunk-OVBIDELJ.js} +2 -2
- package/dist/{chunk-NV46IWKF.js → chunk-QQERGR6C.js} +440 -29
- package/dist/chunk-QQERGR6C.js.map +1 -0
- package/dist/{chunk-JXJDXDOU.js → chunk-SEVFALDF.js} +3 -3
- package/dist/{chunk-AKSCTGKG.js → chunk-T3EVQHOP.js} +2 -2
- package/dist/{chunk-MZ6XNFZL.cjs → chunk-UYKDMNLD.cjs} +2 -2
- package/dist/{chunk-MZ6XNFZL.cjs.map → chunk-UYKDMNLD.cjs.map} +1 -1
- package/dist/{chunk-QZ63HXEG.js → chunk-VSSMJKOX.js} +11 -9
- package/dist/chunk-VSSMJKOX.js.map +1 -0
- package/dist/{chunk-4CS7XE2Q.js → chunk-WB6RROCW.js} +2 -2
- package/dist/{chunk-JK7N4R4K.js → chunk-WUJNUWZ4.js} +2 -2
- package/dist/{chunk-J75TVRJB.js → chunk-XZ3HIQXC.js} +2 -2
- package/dist/{chunk-GNUGD4RO.js → chunk-ZJDZH647.js} +2 -2
- package/dist/{chunk-QPJXYJIK.js → chunk-ZKHLC7ZG.js} +3 -2
- package/dist/chunk-ZKHLC7ZG.js.map +1 -0
- package/dist/{chunk-U6AJU2VD.js → chunk-ZNCOOG54.js} +2 -2
- package/dist/chunks-XOKXUJ67.js +10 -0
- package/dist/cli.js +414 -65
- package/dist/cli.js.map +1 -1
- package/dist/{formula-STIFIS57.js → formula-AD75YRCB.js} +3 -3
- package/dist/{formula-RNATQ3FQ.cjs → formula-B7GGECPZ.cjs} +9 -9
- package/dist/{formula-RNATQ3FQ.cjs.map → formula-B7GGECPZ.cjs.map} +1 -1
- package/dist/{formula-RSTTP626.js → formula-JULH7HF6.js} +4 -4
- package/dist/{image-ocr-R6ZDFBAN.js → image-ocr-2UJ6QP63.js} +6 -6
- package/dist/{image-ocr-XKSAEEXP.js → image-ocr-3C3K64AD.js} +9 -9
- package/dist/{image-ocr-7L5TBBPA.cjs → image-ocr-E2IN6D4B.cjs} +15 -15
- package/dist/{image-ocr-7L5TBBPA.cjs.map → image-ocr-E2IN6D4B.cjs.map} +1 -1
- package/dist/index.cjs +977 -551
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +104 -3
- package/dist/index.d.ts +104 -3
- package/dist/index.js +453 -27
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +34 -27
- package/dist/mcp.js.map +1 -1
- package/dist/{model-bundle-NGTKULP7.js → model-bundle-XT5IXIZ3.js} +5 -5
- package/dist/{models-QOSU5SYL.js → models-NDSZF5T2.js} +5 -5
- package/dist/parse-worker-v2-XTDC2E3M.js +285 -0
- package/dist/parse-worker-v2-XTDC2E3M.js.map +1 -0
- package/dist/{parser-3G4G6SST.js → parser-3W5XWIE5.js} +11 -11
- package/dist/{parser-AIQBU7FS.cjs → parser-V2JLOQIC.cjs} +132 -132
- package/dist/{parser-AIQBU7FS.cjs.map → parser-V2JLOQIC.cjs.map} +1 -1
- package/dist/{parser-5GUEP6EK.js → parser-VE7A5K7X.js} +8 -8
- package/dist/pdf-ocr-KZ56UECD.js +20 -0
- package/dist/pdf-ocr-L4EUIDIW.js +16 -0
- package/dist/pdf-ocr-XPLOCBYI.cjs +17 -0
- package/dist/{pdf-ocr-7OAFUDM4.cjs.map → pdf-ocr-XPLOCBYI.cjs.map} +1 -1
- package/dist/{profile-io-ZVNMDLLS.js → profile-io-7Z6CPLR2.js} +3 -3
- package/dist/{rasterize-Y2RLMVCL.js → rasterize-IF2FNQ7Y.js} +3 -3
- package/dist/{redact-doc-PNRDDBI3.js → redact-doc-HE42N4TZ.js} +11 -11
- package/dist/{render-S3ALARVO.js → render-6ZE75NBK.js} +7 -7
- package/dist/seal-N2Q7WC4V.js +10 -0
- package/dist/{setup-JH66VSFZ.js → setup-ZTYMTCEJ.js} +3 -3
- package/dist/visual-3YC2PLLG.js +20 -0
- package/dist/{watch-KMB2FTOD.js → watch-WELSQDEN.js} +12 -12
- package/package.json +1 -1
- package/dist/chunk-NV46IWKF.js.map +0 -1
- package/dist/chunk-QPJXYJIK.js.map +0 -1
- package/dist/chunk-QZ63HXEG.js.map +0 -1
- package/dist/chunks-2EC2R7PY.js +0 -10
- package/dist/pdf-ocr-7OAFUDM4.cjs +0 -17
- package/dist/pdf-ocr-DAXS5RX4.js +0 -16
- package/dist/pdf-ocr-R3VGX6F2.js +0 -20
- package/dist/seal-EJWPS5VK.js +0 -10
- package/dist/visual-GDXMKDVY.js +0 -20
- /package/dist/{-3JIHF2AL.js.map → -LJL6UNRO.js.map} +0 -0
- /package/dist/{chunk-B4R443MV.js.map → chunk-6EXVHTBH.js.map} +0 -0
- /package/dist/{chunk-AOVMOCTK.js.map → chunk-6SG56DDC.js.map} +0 -0
- /package/dist/{chunk-R2JM2HOJ.js.map → chunk-ALCZCRIU.js.map} +0 -0
- /package/dist/{chunk-OKHKEYTL.js.map → chunk-FNHELO37.js.map} +0 -0
- /package/dist/{chunk-QYJPU4FZ.js.map → chunk-G57LD7SG.js.map} +0 -0
- /package/dist/{chunk-TM4T4NYJ.js.map → chunk-GYPEF6GQ.js.map} +0 -0
- /package/dist/{chunk-56ZWAREM.js.map → chunk-HDP2H33I.js.map} +0 -0
- /package/dist/{chunk-VO22VAR3.js.map → chunk-JEKZXUIJ.js.map} +0 -0
- /package/dist/{chunk-EUCBMW6C.js.map → chunk-MCMMGZOJ.js.map} +0 -0
- /package/dist/{chunk-I2TBI7PN.js.map → chunk-O23XMVMP.js.map} +0 -0
- /package/dist/{chunk-XPM7WC54.js.map → chunk-O33PS3VI.js.map} +0 -0
- /package/dist/{chunk-6ZBORHFB.js.map → chunk-OVBIDELJ.js.map} +0 -0
- /package/dist/{chunk-JXJDXDOU.js.map → chunk-SEVFALDF.js.map} +0 -0
- /package/dist/{chunk-AKSCTGKG.js.map → chunk-T3EVQHOP.js.map} +0 -0
- /package/dist/{chunk-4CS7XE2Q.js.map → chunk-WB6RROCW.js.map} +0 -0
- /package/dist/{chunk-JK7N4R4K.js.map → chunk-WUJNUWZ4.js.map} +0 -0
- /package/dist/{chunk-J75TVRJB.js.map → chunk-XZ3HIQXC.js.map} +0 -0
- /package/dist/{chunk-GNUGD4RO.js.map → chunk-ZJDZH647.js.map} +0 -0
- /package/dist/{chunk-U6AJU2VD.js.map → chunk-ZNCOOG54.js.map} +0 -0
- /package/dist/{chunks-2EC2R7PY.js.map → chunks-XOKXUJ67.js.map} +0 -0
- /package/dist/{formula-STIFIS57.js.map → formula-AD75YRCB.js.map} +0 -0
- /package/dist/{formula-RSTTP626.js.map → formula-JULH7HF6.js.map} +0 -0
- /package/dist/{image-ocr-R6ZDFBAN.js.map → image-ocr-2UJ6QP63.js.map} +0 -0
- /package/dist/{image-ocr-XKSAEEXP.js.map → image-ocr-3C3K64AD.js.map} +0 -0
- /package/dist/{model-bundle-NGTKULP7.js.map → model-bundle-XT5IXIZ3.js.map} +0 -0
- /package/dist/{models-QOSU5SYL.js.map → models-NDSZF5T2.js.map} +0 -0
- /package/dist/{parser-3G4G6SST.js.map → parser-3W5XWIE5.js.map} +0 -0
- /package/dist/{parser-5GUEP6EK.js.map → parser-VE7A5K7X.js.map} +0 -0
- /package/dist/{pdf-ocr-DAXS5RX4.js.map → pdf-ocr-KZ56UECD.js.map} +0 -0
- /package/dist/{pdf-ocr-R3VGX6F2.js.map → pdf-ocr-L4EUIDIW.js.map} +0 -0
- /package/dist/{profile-io-ZVNMDLLS.js.map → profile-io-7Z6CPLR2.js.map} +0 -0
- /package/dist/{rasterize-Y2RLMVCL.js.map → rasterize-IF2FNQ7Y.js.map} +0 -0
- /package/dist/{redact-doc-PNRDDBI3.js.map → redact-doc-HE42N4TZ.js.map} +0 -0
- /package/dist/{render-S3ALARVO.js.map → render-6ZE75NBK.js.map} +0 -0
- /package/dist/{seal-EJWPS5VK.js.map → seal-N2Q7WC4V.js.map} +0 -0
- /package/dist/{setup-JH66VSFZ.js.map → setup-ZTYMTCEJ.js.map} +0 -0
- /package/dist/{visual-GDXMKDVY.js.map → visual-3YC2PLLG.js.map} +0 -0
- /package/dist/{watch-KMB2FTOD.js.map → watch-WELSQDEN.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
blocksToPages
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-JEKZXUIJ.js";
|
|
5
5
|
import {
|
|
6
6
|
allLinesegRemovalSplices,
|
|
7
7
|
applySplices,
|
|
@@ -14,8 +14,9 @@ import {
|
|
|
14
14
|
paraTText,
|
|
15
15
|
paraTextPureT,
|
|
16
16
|
patchZipEntries,
|
|
17
|
+
readZipEntries,
|
|
17
18
|
scanSectionXml
|
|
18
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-D4EDAS3V.js";
|
|
19
20
|
import {
|
|
20
21
|
CONVERT_MAP,
|
|
21
22
|
FLAG_COMPRESSED,
|
|
@@ -65,7 +66,7 @@ import {
|
|
|
65
66
|
romanNumeral,
|
|
66
67
|
simulateWrap,
|
|
67
68
|
takeTocLeaders
|
|
68
|
-
} from "./chunk-
|
|
69
|
+
} from "./chunk-VSSMJKOX.js";
|
|
69
70
|
import {
|
|
70
71
|
CELL_EDGES,
|
|
71
72
|
HEADING_RATIO_H1,
|
|
@@ -77,7 +78,7 @@ import {
|
|
|
77
78
|
tidyScriptTags,
|
|
78
79
|
unframeLayoutTables,
|
|
79
80
|
wrapScript
|
|
80
|
-
} from "./chunk-
|
|
81
|
+
} from "./chunk-6SG56DDC.js";
|
|
81
82
|
import {
|
|
82
83
|
parsePageRange
|
|
83
84
|
} from "./chunk-VQFA55IC.js";
|
|
@@ -97,7 +98,7 @@ import {
|
|
|
97
98
|
localName,
|
|
98
99
|
rawTextContent,
|
|
99
100
|
readZipEntry
|
|
100
|
-
} from "./chunk-
|
|
101
|
+
} from "./chunk-G57LD7SG.js";
|
|
101
102
|
import {
|
|
102
103
|
MAX_COLS,
|
|
103
104
|
MAX_ROWS,
|
|
@@ -112,7 +113,7 @@ import {
|
|
|
112
113
|
hasStructuredCellContent,
|
|
113
114
|
mapPuaText,
|
|
114
115
|
noteSuffix
|
|
115
|
-
} from "./chunk-
|
|
116
|
+
} from "./chunk-6EXVHTBH.js";
|
|
116
117
|
import {
|
|
117
118
|
KordocError,
|
|
118
119
|
classifyError,
|
|
@@ -128,7 +129,7 @@ import {
|
|
|
128
129
|
toArrayBuffer,
|
|
129
130
|
unescapeHtml,
|
|
130
131
|
unzipLimitBytes
|
|
131
|
-
} from "./chunk-
|
|
132
|
+
} from "./chunk-FNHELO37.js";
|
|
132
133
|
|
|
133
134
|
// src/table/visual.ts
|
|
134
135
|
import { readFile as readFile2 } from "fs/promises";
|
|
@@ -20028,6 +20029,155 @@ function bodyTitleGeom(bodyHeight, ov = {}) {
|
|
|
20028
20029
|
return { barH: BODY_TITLE_GEOM.barH, titleH: Math.round(BODY_TITLE_GEOM.titleH * s) };
|
|
20029
20030
|
}
|
|
20030
20031
|
|
|
20032
|
+
// src/hwpx/agency-styles.ts
|
|
20033
|
+
var AGENCY_COMMON = { "report": { "docs": 1129, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, "bullet2": "\u3147", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12, "fill": "#DFE6F7" } }, "press": { "paras": 32253, "style": "para", "share": 0.37, "levels": [{ "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u3147" }, "band": { "fill": "#000080", "text": "#FFFFFF" } };
|
|
20034
|
+
var AGENCY_STYLES = {
|
|
20035
|
+
"\uAC1C\uC778\uC815\uBCF4\uBCF4\uD638\uC704\uC6D0\uD68C": { "report": { "docs": 10, "levels": [{ "font": "HY\uD5E4\uB4DC\uB77C\uC778M", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "HY\uAD81\uC11C", "pt": 15 }, "bullet2": "\u25CB", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 10, "fill": "#F2F2F2" } }, "press": { "paras": 455, "style": "para", "share": 0.17, "levels": [{ "font": "\uBC14\uD0D5", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u25CB" }, "band": { "fill": null, "text": "#000000" } },
|
|
20036
|
+
"\uACBD\uCC30\uCCAD": { "report": { "docs": 4, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uBB38\uCCB4\uBD80 \uBC14\uD0D5\uCCB4", "pt": 15 }, { "font": "\uBB38\uCCB4\uBD80 \uBC14\uD0D5\uCCB4", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, "bullet2": "\u25E6", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12, "fill": "#DFE6F7" } }, "press": { "paras": 332, "style": "para", "share": 0.06, "levels": [{ "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uBB38\uCCB4\uBD80 \uBC14\uD0D5\uCCB4", "pt": 14 }, { "font": "\uBC14\uD0D5", "pt": 14 }], "note": { "font": "\uD55C\uC591\uC911\uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u25CB" }, "band": { "fill": "#E7F4F6", "text": "#000000" } },
|
|
20037
|
+
"\uACE0\uC6A9\uB178\uB3D9\uBD80": { "report": { "docs": 65, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 13 }, "p": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 12 }, "bullet2": "\u3147", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12, "fill": "#DFE6F7" } }, "press": { "paras": 2104, "style": "para", "share": 0.28, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD55C\uCEF4\uBC14\uD0D5", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD55C\uCEF4\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u3147" }, "band": { "fill": "#193657", "text": "#FFFFFF" } },
|
|
20038
|
+
"\uACF5\uC815\uAC70\uB798\uC704\uC6D0\uD68C": { "report": { "docs": 29, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, { "font": "\uD55C\uC591\uC2E0\uBA85\uC870", "pt": 14 }, { "font": "\uD55C\uC591\uC2E0\uBA85\uC870", "pt": 14 }], "note": { "font": "\uD55C\uC591\uC911\uACE0\uB515", "pt": 12 }, "ref": { "font": "\uD55C\uC591\uC911\uACE0\uB515", "pt": 12 }, "p": { "font": "\uC2E0\uBA85 \uACAC\uBA85\uC870", "pt": 18 }, "bullet2": "\u3147", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12, "fill": "#DFE6F7" } }, "press": { "paras": 977, "style": "para", "share": 0.28, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, { "font": "\uD55C\uC591\uC2E0\uBA85\uC870", "pt": 14 }, { "font": "\uD55C\uC591\uC2E0\uBA85\uC870", "pt": 14 }], "note": { "font": "\uD55C\uC591\uC911\uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u3147" }, "band": { "fill": "#000080", "text": "#FFFFFF" } },
|
|
20039
|
+
"\uACFC\uD559\uAE30\uC220\uC815\uBCF4\uD1B5\uC2E0\uBD80": { "report": { "docs": 47, "levels": [{ "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u3147", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12, "fill": "#DFE6F7" } }, "press": { "paras": 1365, "style": "para", "share": 0.27, "levels": [{ "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 13 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 13 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u25CB" }, "band": { "fill": "#2B2D63", "text": "#FFFFFF" } },
|
|
20040
|
+
"\uAD00\uC138\uCCAD": { "report": { "docs": 12, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 10 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 10 }, "bullet2": "\u25E6", "table": { "font": "\uD55C\uC591\uC911\uACE0\uB515", "pt": 12, "fill": "#F2F2F2" } }, "press": { "paras": 587, "style": "para", "share": 0.29, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u3147" }, "band": { "fill": null, "text": "#000000" } },
|
|
20041
|
+
"\uAD50\uC721\uBD80": { "report": { "docs": 34, "levels": [{ "font": "HY\uD5E4\uB4DC\uB77C\uC778M", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 12 }, "bullet2": "\u25E6", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12, "fill": "#DFE6F7" } }, "press": { "paras": 654, "style": "para", "share": 0.46, "levels": [{ "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u25E6" }, "band": { "fill": "#DFE6F7", "text": "#000000" } },
|
|
20042
|
+
"\uAD6D\uAC00\uAD50\uC721\uC704\uC6D0\uD68C": { "report": { "docs": 3, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD55C\uC591\uC2E0\uBA85\uC870", "pt": 14 }, "bullet2": "\u25E6", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 13, "fill": "#F2F2F2" } }, "press": { "paras": 46, "style": "para", "share": 0.11, "levels": [{ "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD55C\uC591\uC2E0\uBA85\uC870", "pt": 14 }, "bullet2": "\u25E6" }, "band": { "fill": "#23236A", "text": "#FFFFFF" } },
|
|
20043
|
+
"\uAD6D\uAC00\uB370\uC774\uD130\uCC98": { "report": { "docs": 5, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, "bullet2": "\u3147", "table": { "font": "\uD55C\uC591\uC911\uACE0\uB515", "pt": 10, "fill": "#E1E1E1" } }, "press": { "paras": 1258, "style": "box", "share": 0.66, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, "bullet2": "\u25CB" }, "band": { "fill": "#333399", "text": "#FFFFFF" } },
|
|
20044
|
+
"\uAD6D\uAC00\uBCF4\uD6C8\uBD80": { "report": { "docs": 10, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, "bullet2": "\u25CB", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12, "fill": "#F2F2F2" } }, "press": { "paras": 161, "style": "para", "share": 0.19, "levels": [{ "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u25CB" }, "band": { "fill": "#0000FF", "text": "#FFFFFF" } },
|
|
20045
|
+
"\uAD6D\uAC00\uC720\uC0B0\uCCAD": { "report": { "docs": 30, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 13 }], "note": { "font": "\uD55C\uC591\uC911\uACE0\uB515", "pt": 12 }, "ref": { "font": "\uD55C\uC591\uC911\uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u25CB", "table": { "font": "\uD55C\uC591\uC911\uACE0\uB515", "pt": 11, "fill": "#DFE6F7" } }, "press": { "paras": 623, "style": "para", "share": 0.17, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 13 }, { "font": "\uBC14\uD0D5", "pt": 13 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 11 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u3147" }, "band": { "fill": "#000080", "text": "#FFFFFF" } },
|
|
20046
|
+
"\uAD6D\uBB34\uC870\uC815\uC2E4": { "report": { "docs": 25, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, "bullet2": "\u3147", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12, "fill": "#F0F0F0" } }, "press": { "paras": 1206, "style": "box", "share": 0.92, "levels": [{ "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uBC14\uD0D5", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u3147" }, "band": { "fill": "#000080", "text": "#FFFFFF" } },
|
|
20047
|
+
"\uAD6D\uBBFC\uAD8C\uC775\uC704\uC6D0\uD68C": { "report": { "docs": 3, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "bullet2": "\u3147", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12, "fill": "#FBEFD4" } }, "press": { "paras": 449, "style": "box", "share": 0.53, "levels": [{ "font": "\uBC14\uD0D5", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "HY\uC911\uACE0\uB515", "pt": 13 }, "p": { "font": "\uBC14\uD0D5", "pt": 15 }, "bullet2": "\u3147" }, "band": { "fill": "#00468C", "text": "#FFFFFF" } },
|
|
20048
|
+
"\uAD6D\uBC29\uBD80": { "report": { "docs": 7, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 16 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 12 }, "p": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, "bullet2": "\u25E6", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 11, "fill": "#ECF2FA" } }, "press": { "paras": 280, "style": "box", "share": 0.9, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 16 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 13 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 13 }, "p": { "font": "\uD55C\uCEF4\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u25E6" }, "band": { "fill": "#193657", "text": "#FFFFFF" } },
|
|
20049
|
+
"\uAD6D\uC138\uCCAD": { "report": { "docs": 9, "levels": [{ "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 14 }, { "font": "\uBC14\uD0D5", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 13 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 13 }, "bullet2": "\u3147", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 13, "fill": "#E7E7E7" } }, "press": { "paras": 380, "style": "box", "share": 0.93, "levels": [{ "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uBC14\uD0D5", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 15 }, "bullet2": "\u3147" }, "band": { "fill": "#3E57A5", "text": "#FFFFFF" } },
|
|
20050
|
+
"\uAD6D\uD1A0\uAD50\uD1B5\uBD80": { "report": { "docs": 35, "levels": [{ "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 13 }, "p": { "font": "\uBC14\uD0D5", "pt": 12 }, "bullet2": "\u3147", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 11, "fill": "#D9D9D9" } }, "press": { "paras": 1441, "style": "box", "share": 0.9, "levels": [{ "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uBC14\uD0D5", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 12 }, "bullet2": "\u3147" }, "band": { "fill": "#000080", "text": "#FFFFFF" } },
|
|
20051
|
+
"\uAE08\uC735\uC704\uC6D0\uD68C": { "report": { "docs": 13, "levels": [{ "font": "\uBC14\uD0D5", "pt": 13 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 13 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 13 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u3147", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12, "fill": "#FFFFE5" } }, "press": { "paras": 791, "style": "para", "share": 0.33, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u3147" }, "band": { "fill": "#000080", "text": "#FFFFFF" } },
|
|
20052
|
+
"\uAE30\uBCF8\uC0AC\uD68C\uC704\uC6D0\uD68C": { "report": null, "press": { "paras": 43, "style": "box", "share": 0.85, "levels": [{ "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 14 }, { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u3147" }, "band": null },
|
|
20053
|
+
"\uAE30\uC0C1\uCCAD": { "report": { "docs": 18, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, { "font": "\uBC14\uD0D5\uCCB4", "pt": 14 }, { "font": "\uBC14\uD0D5\uCCB4", "pt": 14 }], "note": { "font": "\uB3CB\uC6C0\uCCB4", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, "bullet2": "\u25CB", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 9, "fill": "#D1E8FF" } }, "press": { "paras": 314, "style": "para", "share": 0.46, "levels": [{ "font": "\uBC14\uD0D5\uCCB4", "pt": 14 }, { "font": "\uBC14\uD0D5\uCCB4", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }], "note": { "font": "\uB3CB\uC6C0\uCCB4", "pt": 12 }, "p": { "font": "\uBC14\uD0D5\uCCB4", "pt": 14 }, "bullet2": "\u25CB" }, "band": { "fill": "#00468C", "text": "#FFFFFF" } },
|
|
20054
|
+
"\uAE30\uD68D\uC608\uC0B0\uCC98": { "report": { "docs": 5, "levels": [{ "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 14 }, { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 16 }, "bullet2": "\u3147", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 11, "fill": "#DFE6F7" } }, "press": { "paras": 422, "style": "para", "share": 0.19, "levels": [{ "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 14 }, { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u3147" }, "band": { "fill": "#0066FF", "text": "#FFFFFF" } },
|
|
20055
|
+
"\uAE30\uD6C4\uC5D0\uB108\uC9C0\uD658\uACBD\uBD80": { "report": { "docs": 92, "levels": [{ "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 15 }, "bullet2": "\u3147", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12, "fill": "#DFE6F7" } }, "press": { "paras": 2042, "style": "para", "share": 0.39, "levels": [{ "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u3147" }, "band": { "fill": "#000080", "text": "#FFFFFF" } },
|
|
20056
|
+
"\uB18D\uB9BC\uCD95\uC0B0\uC2DD\uD488\uBD80": { "report": { "docs": 54, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u3147", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 11, "fill": "#DFE6F7" } }, "press": { "paras": 1155, "style": "para", "share": 0.22, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u3147" }, "band": { "fill": "#0066FF", "text": "#FFFFFF" } },
|
|
20057
|
+
"\uB18D\uCD0C\uC9C4\uD765\uCCAD": { "report": { "docs": 128, "levels": [{ "font": "HY\uD5E4\uB4DC\uB77C\uC778M", "pt": 15 }, { "font": "\uD55C\uC591\uC2E0\uBA85\uC870", "pt": 15 }, { "font": "\uD55C\uC591\uC2E0\uBA85\uC870", "pt": 14 }], "note": { "font": "\uD55C\uC591\uC911\uACE0\uB515", "pt": 12 }, "ref": { "font": "\uD55C\uC591\uC911\uACE0\uB515", "pt": 13 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u25CB", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12, "fill": "#DFE6F7" } }, "press": { "paras": 2530, "style": "para", "share": 0.43, "levels": [{ "font": "\uD55C\uC591\uC2E0\uBA85\uC870", "pt": 15 }, { "font": "\uD55C\uC591\uC2E0\uBA85\uC870", "pt": 15 }, { "font": "\uD55C\uC591\uC2E0\uBA85\uC870", "pt": 14 }], "note": { "font": "\uB3CB\uC6C0", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u25CB" }, "band": { "fill": "#1B1760", "text": "#FFFFFF" } },
|
|
20058
|
+
"\uBB38\uD654\uCCB4\uC721\uAD00\uAD11\uBD80": { "report": { "docs": 44, "levels": [{ "font": "HY\uD5E4\uB4DC\uB77C\uC778M", "pt": 16 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 11 }, "p": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, "bullet2": "\u3147", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12, "fill": "#DFE6F7" } }, "press": { "paras": 717, "style": "para", "share": 0.16, "levels": [{ "font": "\uBC14\uD0D5", "pt": 16 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uBC14\uD0D5", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u3147" }, "band": { "fill": "#193657", "text": "#FFFFFF" } },
|
|
20059
|
+
"\uBC29\uC1A1\uBBF8\uB514\uC5B4\uD1B5\uC2E0\uC704\uC6D0\uD68C": { "report": { "docs": 11, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, "bullet2": "\u25CB", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 11, "fill": "#D2EBEE" } }, "press": { "paras": 390, "style": "para", "share": 0.28, "levels": [{ "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u3147" }, "band": { "fill": "#000080", "text": "#FFFFFF" } },
|
|
20060
|
+
"\uBC29\uC704\uC0AC\uC5C5\uCCAD": { "report": { "docs": 6, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u274D", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 11, "fill": "#ECF2FA" } }, "press": { "paras": 164, "style": "para", "share": 0.22, "levels": [{ "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }], "note": { "font": "\uD55C\uC591\uC911\uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u25E6" }, "band": { "fill": "#1C3D62", "text": "#FFFFFF" } },
|
|
20061
|
+
"\uBC95\uBB34\uBD80": { "report": { "docs": 12, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, "bullet2": "\u274D", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12, "fill": "#DFE6F7" } }, "press": { "paras": 361, "style": "box", "share": 0.56, "levels": [{ "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uAD74\uB9BC", "pt": 13 }, "p": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, "bullet2": "\u274D" }, "band": { "fill": null, "text": "#000000" } },
|
|
20062
|
+
"\uBC95\uC81C\uCC98": { "report": { "docs": 3, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, "bullet2": "\u3147", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12, "fill": "#E3E2F2" } }, "press": { "paras": 105, "style": "para", "share": 0.17, "levels": [{ "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }], "note": { "font": "\uBC14\uD0D5", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u3147" }, "band": { "fill": "#000080", "text": "#FFFFFF" } },
|
|
20063
|
+
"\uBCD1\uBB34\uCCAD": { "report": null, "press": { "paras": 39, "style": "para", "share": 0.37, "levels": [{ "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 15 }, { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, "bullet2": "\u25CB" }, "band": null },
|
|
20064
|
+
"\uBCF4\uAC74\uBCF5\uC9C0\uBD80": { "report": { "docs": 78, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 10 }, "p": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, "bullet2": "\u25CB", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12, "fill": "#DFE6F7" } }, "press": { "paras": 1725, "style": "para", "share": 0.33, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5\uCCB4", "pt": 14 }, "bullet2": "\u25CB" }, "band": { "fill": "#0066FF", "text": "#FFFFFF" } },
|
|
20065
|
+
"\uC0B0\uB9BC\uCCAD": { "report": { "docs": 4, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, "bullet2": "\u3147", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12, "fill": "#DFE6F7" } }, "press": { "paras": 714, "style": "para", "share": 0.01, "levels": [{ "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u3147" }, "band": { "fill": "#000066", "text": "#FFFFFF" } },
|
|
20066
|
+
"\uC0B0\uC5C5\uD1B5\uC0C1\uBD80": { "report": { "docs": 16, "levels": [{ "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 15 }, { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 15 }, { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, "bullet2": "\u3147", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 11, "fill": "#FAFABF" } }, "press": { "paras": 401, "style": "para", "share": 0.28, "levels": [{ "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 15 }, { "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uBC14\uD0D5", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u3147" }, "band": { "fill": "#000066", "text": "#FFFFFF" } },
|
|
20067
|
+
"\uC0C8\uB9CC\uAE08\uAC1C\uBC1C\uCCAD": { "report": null, "press": { "paras": 181, "style": "box", "share": 0.92, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, "bullet2": "\u3147" }, "band": { "fill": "#000080", "text": "#FFFFFF" } },
|
|
20068
|
+
"\uC131\uD3C9\uB4F1\uAC00\uC871\uBD80": { "report": { "docs": 29, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 13 }, "p": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, "bullet2": "\u25CB", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12, "fill": "#F5FCFE" } }, "press": { "paras": 639, "style": "box", "share": 0.91, "levels": [{ "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 12 }, "bullet2": "\u3147" }, "band": { "fill": "#000080", "text": "#FFFFFF" } },
|
|
20069
|
+
"\uC18C\uBC29\uCCAD": { "report": null, "press": { "paras": 224, "style": "box", "share": 0.84, "levels": [{ "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u25CB" }, "band": null },
|
|
20070
|
+
"\uC2DD\uD488\uC758\uC57D\uD488\uC548\uC804\uCC98": { "report": { "docs": 42, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, "bullet2": "\u25CB", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 13, "fill": "#DFE6F7" } }, "press": { "paras": 731, "style": "para", "share": 0.16, "levels": [{ "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, { "font": "\uBC14\uD0D5", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u3147" }, "band": { "fill": "#193657", "text": "#FFFFFF" } },
|
|
20071
|
+
"\uC678\uAD50\uBD80": { "report": null, "press": { "paras": 443, "style": "para", "share": 0.03, "levels": [{ "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, { "font": "\uBC14\uD0D5", "pt": 12 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u3147" }, "band": { "fill": "#000080", "text": "#FFFFFF" } },
|
|
20072
|
+
"\uC6B0\uC8FC\uD56D\uACF5\uCCAD": { "report": { "docs": 20, "levels": [{ "font": "HY\uD5E4\uB4DC\uB77C\uC778M", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u3147", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12, "fill": "#D9D9D9" } }, "press": { "paras": 222, "style": "para", "share": 0.31, "levels": [{ "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 14 }, { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u3147" }, "band": { "fill": "#00294B", "text": "#FFFFFF" } },
|
|
20073
|
+
"\uC6D0\uC790\uB825\uC548\uC804\uC704\uC6D0\uD68C": { "report": null, "press": { "paras": 198, "style": "box", "share": 0.53, "levels": [{ "font": "\uBC14\uD0D5", "pt": 15 }, { "font": "\uBC14\uD0D5", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uBC14\uD0D5", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u25CB" }, "band": { "fill": "#121275", "text": "#FFFFFF" } },
|
|
20074
|
+
"\uC778\uAD6C\uC804\uB7B5\uC704\uC6D0\uD68C": { "report": null, "press": { "paras": 82, "style": "para", "share": 0.5, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, "bullet2": "\u3147" }, "band": null },
|
|
20075
|
+
"\uC778\uC0AC\uD601\uC2E0\uCC98": { "report": { "docs": 8, "levels": [{ "font": "HY\uD5E4\uB4DC\uB77C\uC778M", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 11 }, "p": { "font": "\uBC14\uD0D5", "pt": 15 }, "bullet2": "\u25CB", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12, "fill": "#D1DEEF" } }, "press": { "paras": 315, "style": "para", "share": 0.05, "levels": [{ "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u25CB" }, "band": { "fill": "#4B72E3", "text": "#FFFFFF" } },
|
|
20076
|
+
"\uC7AC\uC678\uB3D9\uD3EC\uCCAD": { "report": null, "press": { "paras": 67, "style": "box", "share": 0.92, "levels": [{ "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, "bullet2": "\u3147" }, "band": null },
|
|
20077
|
+
"\uC7AC\uC815\uACBD\uC81C\uBD80": { "report": { "docs": 9, "levels": [{ "font": "\uBC14\uD0D5", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "HY\uAD81\uC11C", "pt": 18 }, "bullet2": "\u3147", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 11, "fill": "#FCF5E7" } }, "press": { "paras": 513, "style": "para", "share": 0.2, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u3147" }, "band": { "fill": "#0066FF", "text": "#FFFFFF" } },
|
|
20078
|
+
"\uC870\uB2EC\uCCAD": { "report": { "docs": 10, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uD55C\uC591\uC911\uACE0\uB515", "pt": 10 }, "p": { "font": "\uD55C\uC591\uC911\uACE0\uB515", "pt": 12 }, "bullet2": "\u25CB", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12, "fill": "#D6D6D6" } }, "press": { "paras": 353, "style": "para", "share": 0.03, "levels": [{ "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, "bullet2": "\u25CB" }, "band": { "fill": "#000066", "text": "#FFFFFF" } },
|
|
20079
|
+
"\uC911\uC18C\uBCA4\uCC98\uAE30\uC5C5\uBD80": { "report": { "docs": 23, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 12 }, "bullet2": "\u25E6", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 11, "fill": "#DFE6F7" } }, "press": { "paras": 529, "style": "para", "share": 0.21, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u25E6" }, "band": { "fill": "#DFE6F7", "text": "#000000" } },
|
|
20080
|
+
"\uC9C0\uC2DD\uC7AC\uC0B0\uCC98": { "report": { "docs": 42, "levels": [{ "font": "HY\uD5E4\uB4DC\uB77C\uC778M", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 15 }, "bullet2": "\u3147", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12, "fill": "#FFFFAB" } }, "press": { "paras": 558, "style": "para", "share": 0.27, "levels": [{ "font": "\uBC14\uD0D5", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u3147" }, "band": { "fill": "#2D629C", "text": "#FFFFFF" } },
|
|
20081
|
+
"\uC9C8\uBCD1\uAD00\uB9AC\uCCAD": { "report": { "docs": 32, "levels": [{ "font": "HY\uD5E4\uB4DC\uB77C\uC778M", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 11 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u25CB", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 11, "fill": "#DFE6F7" } }, "press": { "paras": 808, "style": "para", "share": 0.15, "levels": [{ "font": "\uBC14\uD0D5", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uD55C\uC591\uC911\uACE0\uB515", "pt": 13 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u25CB" }, "band": { "fill": "#0066FF", "text": "#FFFFFF" } },
|
|
20082
|
+
"\uD1B5\uC77C\uBD80": { "report": null, "press": { "paras": 14, "style": "box", "share": 0.64, "levels": [{ "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u3147" }, "band": { "fill": "#3A3C84", "text": "#FFFFFF" } },
|
|
20083
|
+
"\uD574\uC591\uACBD\uCC30\uCCAD": { "report": null, "press": { "paras": 40, "style": "box", "share": 0.57, "levels": [{ "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uBC14\uD0D5", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u3147" }, "band": null },
|
|
20084
|
+
"\uD574\uC591\uC218\uC0B0\uBD80": { "report": { "docs": 31, "levels": [{ "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 15 }, { "font": "\uD55C\uC591\uC2E0\uBA85\uC870", "pt": 14 }, { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 14 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD55C\uC591\uC2E0\uBA85\uC870", "pt": 14 }, "bullet2": "\u3147", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 11, "fill": "#DFE6F7" } }, "press": { "paras": 652, "style": "para", "share": 0.34, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 18 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 18 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, "bullet2": "\u3147" }, "band": { "fill": "#000080", "text": "#FFFFFF" } },
|
|
20085
|
+
"\uD589\uC815\uC548\uC804\uBD80": { "report": { "docs": 52, "levels": [{ "font": "HY\uD5E4\uB4DC\uB77C\uC778M", "pt": 15 }, { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 15 }, { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 12 }, "bullet2": "\u25CB", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12, "fill": "#F2F2F2" } }, "press": { "paras": 1376, "style": "para", "share": 0.08, "levels": [{ "font": "\uBC14\uD0D5", "pt": 15 }, { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 15 }, { "font": "\uD568\uCD08\uB86C\uBC14\uD0D5", "pt": 15 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u25CB" }, "band": { "fill": "#000066", "text": "#FFFFFF" } },
|
|
20086
|
+
"\uD589\uC815\uC911\uC2EC\uBCF5\uD569\uB3C4\uC2DC\uAC74\uC124\uCCAD": { "report": { "docs": 9, "levels": [{ "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 15 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 13 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "ref": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 13 }, "bullet2": "\u3147", "table": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12, "fill": "#D9D9D9" } }, "press": { "paras": 77, "style": "para", "share": 0.14, "levels": [{ "font": "\uBC14\uD0D5", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 14 }, { "font": "\uD734\uBA3C\uBA85\uC870", "pt": 13 }], "note": { "font": "\uB9D1\uC740 \uACE0\uB515", "pt": 12 }, "p": { "font": "\uBC14\uD0D5", "pt": 14 }, "bullet2": "\u3147" }, "band": { "fill": "#000080", "text": "#FFFFFF" } }
|
|
20087
|
+
};
|
|
20088
|
+
|
|
20089
|
+
// src/hwpx/agency.ts
|
|
20090
|
+
var AGENCY_COMMON_NAME = "\uACF5\uD1B5";
|
|
20091
|
+
var AGENCY_PRESETS = /* @__PURE__ */ new Set(["report", "plan", "ministry", "gaejosik", "press"]);
|
|
20092
|
+
var V5_AGENCY_PRESETS = /* @__PURE__ */ new Set(["report", "plan", "ministry"]);
|
|
20093
|
+
var GAEJOSIK_BODY_PT = 15;
|
|
20094
|
+
function agencyNames() {
|
|
20095
|
+
return Object.keys(AGENCY_STYLES);
|
|
20096
|
+
}
|
|
20097
|
+
function findAgency(name) {
|
|
20098
|
+
const n = name.trim();
|
|
20099
|
+
return n === AGENCY_COMMON_NAME ? AGENCY_COMMON : AGENCY_STYLES[n];
|
|
20100
|
+
}
|
|
20101
|
+
function agencyStyle(name) {
|
|
20102
|
+
const s = findAgency(name);
|
|
20103
|
+
if (!s) throw new KordocError(`agency: \uC2E4\uCE21 \uC11C\uC2DD\uC774 \uC5C6\uB294 \uAE30\uAD00\uC785\uB2C8\uB2E4 "${name}" \u2014 ${AGENCY_COMMON_NAME} \uB610\uB294 ${agencyNames().join("\xB7")}`);
|
|
20104
|
+
return s;
|
|
20105
|
+
}
|
|
20106
|
+
function applyAgency(opts, preset) {
|
|
20107
|
+
if (!opts.agency?.trim()) return { opts, agency: null };
|
|
20108
|
+
agencyStyle(opts.agency);
|
|
20109
|
+
if (!AGENCY_PRESETS.has(preset)) return { opts, agency: null };
|
|
20110
|
+
const name = opts.agency.trim();
|
|
20111
|
+
const st = agencyStyle(name);
|
|
20112
|
+
const userBody = opts.fonts?.body ?? (opts.bodyFont ? opts.bodyFont === "gothic" ? "\uB9D1\uC740 \uACE0\uB515" : "\uD568\uCD08\uB86C\uBC14\uD0D5" : void 0);
|
|
20113
|
+
const userHeading = opts.fonts?.heading;
|
|
20114
|
+
const ptFree = opts.bodyPt === void 0;
|
|
20115
|
+
const fonts = { ...opts.fonts };
|
|
20116
|
+
const setFont = (role, font) => {
|
|
20117
|
+
if (role === "body" && userBody) return;
|
|
20118
|
+
fonts[role] ??= font;
|
|
20119
|
+
};
|
|
20120
|
+
const lvl = (f, role) => ({
|
|
20121
|
+
font: role === "heading" ? userHeading ?? f.font : role === "body" ? userBody ?? f.font : f.font,
|
|
20122
|
+
...ptFree || role === "note" ? { pt: f.pt } : {},
|
|
20123
|
+
bold: false
|
|
20124
|
+
});
|
|
20125
|
+
const sameAsBody = (f, role, body) => lvl(f, role).font === body.font && (!ptFree || f.pt === body.pt);
|
|
20126
|
+
let levels = {};
|
|
20127
|
+
let bullet2;
|
|
20128
|
+
let bodyPt = opts.bodyPt;
|
|
20129
|
+
let agency = { name, refPt: null, table: null, pressStyle: null };
|
|
20130
|
+
if (preset === "press") {
|
|
20131
|
+
const ps = st.press ?? AGENCY_COMMON.press;
|
|
20132
|
+
setFont("body", ps.p.font);
|
|
20133
|
+
bodyPt ??= ps.p.pt;
|
|
20134
|
+
const body = { font: fonts.body ?? userBody, pt: bodyPt };
|
|
20135
|
+
if (!sameAsBody(ps.levels[0], "heading", body)) levels[0] = lvl(ps.levels[0], "heading");
|
|
20136
|
+
if (!sameAsBody(ps.levels[1], "body", body)) levels[1] = lvl(ps.levels[1], "body");
|
|
20137
|
+
levels[2] = lvl(ps.note, "note");
|
|
20138
|
+
bullet2 = ps.bullet2;
|
|
20139
|
+
agency = { ...agency, pressStyle: ps.style };
|
|
20140
|
+
} else {
|
|
20141
|
+
const rs = st.report ?? AGENCY_COMMON.report;
|
|
20142
|
+
setFont("ref", rs.ref.font);
|
|
20143
|
+
setFont("table", rs.table.font);
|
|
20144
|
+
bullet2 = rs.bullet2;
|
|
20145
|
+
if (V5_AGENCY_PRESETS.has(preset)) {
|
|
20146
|
+
setFont("body", rs.p.font);
|
|
20147
|
+
levels = { 0: lvl(rs.levels[0], "heading"), 1: lvl(rs.levels[1], "body"), 2: lvl(rs.levels[2], "body") };
|
|
20148
|
+
agency = { ...agency, refPt: ptFree ? rs.ref.pt : null, table: { pt: ptFree ? rs.table.pt : null, headerFill: rs.table.fill } };
|
|
20149
|
+
} else {
|
|
20150
|
+
setFont("body", rs.levels[1].font);
|
|
20151
|
+
const body = { font: fonts.body ?? userBody, pt: bodyPt ?? GAEJOSIK_BODY_PT };
|
|
20152
|
+
levels[0] = lvl(rs.levels[0], "heading");
|
|
20153
|
+
if (!sameAsBody(rs.levels[1], "body", body)) levels[1] = lvl(rs.levels[1], "body");
|
|
20154
|
+
if (!sameAsBody(rs.levels[2], "body", body)) levels[2] = lvl(rs.levels[2], "body");
|
|
20155
|
+
}
|
|
20156
|
+
}
|
|
20157
|
+
for (const [k, v] of Object.entries(opts.levels ?? {})) levels[Number(k)] = { ...levels[Number(k)], ...v };
|
|
20158
|
+
const band = st.band ?? AGENCY_COMMON.band;
|
|
20159
|
+
const merged = {
|
|
20160
|
+
...opts,
|
|
20161
|
+
fonts,
|
|
20162
|
+
bodyPt,
|
|
20163
|
+
levels,
|
|
20164
|
+
bullet2: opts.bullet2 ?? bullet2,
|
|
20165
|
+
...preset !== "press" ? {
|
|
20166
|
+
bandColor: opts.bandColor ?? band.fill ?? "#FFFFFF",
|
|
20167
|
+
bandTextColor: opts.bandTextColor ?? band.text
|
|
20168
|
+
} : {}
|
|
20169
|
+
};
|
|
20170
|
+
return { opts: merged, agency };
|
|
20171
|
+
}
|
|
20172
|
+
function agencyWarnings(opts, preset) {
|
|
20173
|
+
const name = opts.agency?.trim();
|
|
20174
|
+
if (!name) return [];
|
|
20175
|
+
if (!AGENCY_PRESETS.has(preset)) return [`agency(\uAE30\uAD00 \uC11C\uC2DD)\uB294 \uBCF4\uACE0\uC11C\xB7\uACC4\uD68D\uC11C\xB7\uC5C5\uBB34\uBCF4\uACE0\xB7\uAC1C\uC870\uC2DD\xB7\uBCF4\uB3C4\uC790\uB8CC \uC804\uC6A9 \u2014 '${preset}' \uD504\uB9AC\uC14B\uC5D0\uC11C \uBB34\uC2DC\uB428`];
|
|
20176
|
+
const st = findAgency(name);
|
|
20177
|
+
if (st && preset !== "press" && !st.report) return [`agency: ${name} \uC740 \uBCF4\uACE0\uC11C\uD615 \uC2E4\uCE21 \uD45C\uBCF8\uC774 \uBAA8\uC790\uB77C \uAE30\uAD00 \uAC04 \uACF5\uD1B5 \uC11C\uC2DD\uC744 \uC500`];
|
|
20178
|
+
return [];
|
|
20179
|
+
}
|
|
20180
|
+
|
|
20031
20181
|
// src/hwpx/gen-ids.ts
|
|
20032
20182
|
var NS_SECTION = "http://www.hancom.co.kr/hwpml/2011/section";
|
|
20033
20183
|
var NS_PARA = "http://www.hancom.co.kr/hwpml/2011/paragraph";
|
|
@@ -21077,6 +21227,9 @@ function incompatibleGongmunWarnings(opts) {
|
|
|
21077
21227
|
if (opts.noticeHead && preset !== "notice") warns.push(`notice_head(\uACF5\uACE0\uBC88\uD638\xB7\uBC1C\uC2E0\uBA85\uC758)\uB294 \uD1B5\uC9C0(notice) \uC804\uC6A9 \u2014 '${preset}' \uD504\uB9AC\uC14B\uC5D0\uC11C \uBB34\uC2DC\uB428`);
|
|
21078
21228
|
if (opts.press && preset !== "press") warns.push(`press(\uBA38\uB9AC\uBC15\uC2A4\xB7\uBD80\uC81C\xB7\uB2F4\uB2F9)\uB294 \uBCF4\uB3C4\uC790\uB8CC(press) \uC804\uC6A9 \u2014 '${preset}' \uD504\uB9AC\uC14B\uC5D0\uC11C \uBB34\uC2DC\uB428`);
|
|
21079
21229
|
if (opts.checklist && !SEOUL_REPORT_PRESETS.has(preset)) warns.push(`checklist(\uC0AC\uC804 \uAC80\uD1A0\uD56D\uBAA9 \uC810\uAC80\uD45C)\uB294 \uBCF4\uACE0\uC11C\xB7\uACC4\uD68D\uC11C\xB7\uBC29\uCE68\uC11C \uC804\uC6A9 \u2014 '${preset}' \uD504\uB9AC\uC14B\uC5D0\uC11C \uBB34\uC2DC\uB428`);
|
|
21230
|
+
warns.push(...agencyWarnings(opts, preset));
|
|
21231
|
+
const contact = opts.press?.contact;
|
|
21232
|
+
if (contact?.people?.length && (contact.manager || contact.phone)) warns.push("press.contact: people(\uC0AC\uB78C\uBCC4 \uD589)\uB97C \uC8FC\uBA74 manager\xB7phone(\uD55C \uD589 \uAF34)\uC740 \uBB34\uC2DC\uB428");
|
|
21080
21233
|
if (preset === "press" && (opts.cover === true || typeof opts.cover === "object" || opts.toc === true)) {
|
|
21081
21234
|
warns.push("\uBCF4\uB3C4\uC790\uB8CC\uB294 \uBA38\uB9AC\uBC15\uC2A4 \uC11C\uC2DD\uACFC \uC591\uB9BD \uBD88\uAC00\uB77C \uD45C\uC9C0\xB7\uBAA9\uCC28\uAC00 \uBB34\uC2DC\uB428");
|
|
21082
21235
|
}
|
|
@@ -21105,9 +21258,10 @@ function hexColorOption(name, value) {
|
|
|
21105
21258
|
if (!/^#[0-9a-fA-F]{6}$/.test(v)) throw new KordocError(`${name} must be a #RRGGBB color (got "${value}")`);
|
|
21106
21259
|
return v.toUpperCase();
|
|
21107
21260
|
}
|
|
21108
|
-
function resolveGongmun(
|
|
21109
|
-
validateGongmunOptions(
|
|
21110
|
-
const preset = normalizeGongmunPreset(
|
|
21261
|
+
function resolveGongmun(input) {
|
|
21262
|
+
validateGongmunOptions(input);
|
|
21263
|
+
const preset = normalizeGongmunPreset(input.preset);
|
|
21264
|
+
const { opts, agency } = applyAgency(input, preset);
|
|
21111
21265
|
const d = PRESET_DEFAULTS[preset];
|
|
21112
21266
|
const bodyPt = opts.bodyPt ?? d.bodyPt;
|
|
21113
21267
|
const autoFitMinRatio = opts.autoFit === false ? null : typeof opts.autoFit === "object" ? Math.min(Math.max(opts.autoFit.minRatio ?? 90, 50), 99) : 90;
|
|
@@ -21165,7 +21319,8 @@ function resolveGongmun(opts) {
|
|
|
21165
21319
|
reportInfo: opts.reportInfo?.trim() || null,
|
|
21166
21320
|
noticeHead: preset === "notice" && opts.noticeHead ? opts.noticeHead : null,
|
|
21167
21321
|
// 보도자료 머리박스는 프리셋 자체가 요구 — 옵션 미지정이어도 빈 객체
|
|
21168
|
-
press: preset === "press" ? opts.press ?? {} : null
|
|
21322
|
+
press: preset === "press" ? opts.press ?? {} : null,
|
|
21323
|
+
agency
|
|
21169
21324
|
};
|
|
21170
21325
|
}
|
|
21171
21326
|
var REPORT_BULLETS = ["\u25A1", "\u25CB", "-", "\u318D"];
|
|
@@ -21512,7 +21667,7 @@ function parseInlineMarkdown(text) {
|
|
|
21512
21667
|
}
|
|
21513
21668
|
return spans;
|
|
21514
21669
|
}
|
|
21515
|
-
var INLINE_REGEX = /(`[^`]+`|\*{3}(?:[^*]|\*(?!\*\*))
|
|
21670
|
+
var INLINE_REGEX = /(`[^`]+`|\*{3}(?=\S)(?:[^*]|\*(?!\*\*))+(?<=\S)\*{3}|\*{2}(?=\S)(?:[^*]|\*(?!\*))+(?<=\S)\*{2}|\*(?=\S)(?:[^*]|\*{2}(?:[^*]|\*(?!\*))+\*{2})+(?<=\S)\*|(?<![^\s\p{P}\p{S}\x00])(?<!_)_{2}(?=\S)[^_]+(?<=\S)_{2}(?!_)(?![^\s\p{P}\p{S}\x00])|(?<![^\s\p{P}\p{S}\x00])(?<!_)_(?=\S)[^_]+(?<=\S)_(?!_)(?![^\s\p{P}\p{S}\x00]))/gu;
|
|
21516
21671
|
function emphasisSpans(text, depth = 0) {
|
|
21517
21672
|
const spans = [];
|
|
21518
21673
|
let lastIdx = 0;
|
|
@@ -23919,10 +24074,46 @@ function buildPressHead(g, ids, bodyWidth, reg) {
|
|
|
23919
24074
|
const table2 = tbl(rows, w, PRESS_LABEL_H + (headLine ? PRESS_HEAD_H : 0), 1);
|
|
23920
24075
|
return [`<hp:p paraPrIDRef="${PARA_NORMAL}" styleIDRef="0"><hp:run charPrIDRef="${CHAR_NORMAL}">${table2}</hp:run></hp:p>`, blank()];
|
|
23921
24076
|
}
|
|
24077
|
+
var PRESS_PEOPLE_RATIO = [6236, 15167, 6081, 5605, 5605, 9003];
|
|
24078
|
+
var PRESS_PEOPLE_ROW_H = 1800;
|
|
24079
|
+
function buildPressPeople(dept, people, ids, w, reg) {
|
|
24080
|
+
const total = PRESS_PEOPLE_RATIO.reduce((a, b) => a + b, 0);
|
|
24081
|
+
const ws = PRESS_PEOPLE_RATIO.map((r) => Math.floor(w * r / total));
|
|
24082
|
+
ws[ws.length - 1] += w - ws.reduce((a, b) => a + b, 0);
|
|
24083
|
+
const n = people.length, last = n - 1;
|
|
24084
|
+
const bf = (label, col, row, rows2 = 1) => reg.get({
|
|
24085
|
+
t: row === 0 ? "thick" : "thin",
|
|
24086
|
+
b: row + rows2 - 1 === last ? "thick" : "thin",
|
|
24087
|
+
l: col === 0 ? "thick" : "thin",
|
|
24088
|
+
r: col === ws.length - 1 ? "thick" : "thin",
|
|
24089
|
+
fill: label ? "#E6E6E6" : void 0
|
|
24090
|
+
});
|
|
24091
|
+
const cell2 = (label, col, row, text, rowSpan = 1) => tc({
|
|
24092
|
+
bf: bf(label, col, row, rowSpan),
|
|
24093
|
+
row,
|
|
24094
|
+
col,
|
|
24095
|
+
w: ws[col],
|
|
24096
|
+
h: PRESS_PEOPLE_ROW_H * rowSpan,
|
|
24097
|
+
rowSpan,
|
|
24098
|
+
paras: para(text, GONGMUN_TBL_CENTER, label ? ids.pressHead : ids.pressContact)
|
|
24099
|
+
});
|
|
24100
|
+
const rows = people.map((p, i) => [
|
|
24101
|
+
...i === 0 ? [cell2(true, 0, 0, "\uB2F4\uB2F9 \uBD80\uC11C", n), cell2(false, 1, 0, dept, n)] : [],
|
|
24102
|
+
cell2(true, 2, i, p.role ?? "\uB2F4\uB2F9\uC790"),
|
|
24103
|
+
cell2(false, 3, i, p.title ?? ""),
|
|
24104
|
+
cell2(false, 4, i, p.name ?? ""),
|
|
24105
|
+
cell2(false, 5, i, p.phone ?? "")
|
|
24106
|
+
].join(""));
|
|
24107
|
+
return tbl(rows, w, PRESS_PEOPLE_ROW_H * n, ws.length);
|
|
24108
|
+
}
|
|
23922
24109
|
function buildPressContact(g, ids, bodyWidth, reg) {
|
|
23923
24110
|
const c = g.press?.contact;
|
|
23924
|
-
|
|
24111
|
+
const people = (c?.people ?? []).filter((p) => p.role || p.title || p.name || p.phone);
|
|
24112
|
+
if (!c || !c.dept && !c.manager && !c.phone && people.length === 0) return [];
|
|
23925
24113
|
const w = bodyWidth - 280;
|
|
24114
|
+
if (people.length > 0) {
|
|
24115
|
+
return [blank(), `<hp:p paraPrIDRef="${PARA_NORMAL}" styleIDRef="0"><hp:run charPrIDRef="${CHAR_NORMAL}">${buildPressPeople(c.dept ?? "", people, ids, w, reg)}</hp:run></hp:p>`];
|
|
24116
|
+
}
|
|
23926
24117
|
const cells = [["\uB2F4\uB2F9 \uBD80\uC11C", c.dept ?? ""], ["\uB2F4\uB2F9\uC790", c.manager ?? ""], ["\uC5F0\uB77D\uCC98", c.phone ?? ""]];
|
|
23927
24118
|
const labelW = Math.round(w * 0.14);
|
|
23928
24119
|
const valueW = Math.round(w / 3) - labelW;
|
|
@@ -25001,6 +25192,11 @@ function seoulLegalScheme(bodyFont = "\uAD74\uB9BC\uCCB4", bodyPt = 12, lineSp =
|
|
|
25001
25192
|
}
|
|
25002
25193
|
function applySchemeOverrides(s, g) {
|
|
25003
25194
|
const out = { ...s, levels: s.levels.map((l) => ({ ...l })), body: { ...s.body }, ref: { ...s.ref }, table: { ...s.table } };
|
|
25195
|
+
if (g.agency?.refPt) out.ref.pt = g.agency.refPt;
|
|
25196
|
+
if (g.agency?.table) {
|
|
25197
|
+
if (g.agency.table.pt) out.table.pt = g.agency.table.pt;
|
|
25198
|
+
out.table.headerFill = g.agency.table.headerFill;
|
|
25199
|
+
}
|
|
25004
25200
|
if (g.fonts.heading) {
|
|
25005
25201
|
out.levels[0].font = g.fonts.heading;
|
|
25006
25202
|
out.chapter = { ...out.chapter, font: g.fonts.heading };
|
|
@@ -25289,7 +25485,7 @@ function markerRunXml(marker, charPr2, lay) {
|
|
|
25289
25485
|
var NBSP = "\xA0";
|
|
25290
25486
|
var OPENER_BEFORE = /[\s(\[{>「『〈《【〔‘“·/:,~—–-]/u;
|
|
25291
25487
|
function bindSpaces(s) {
|
|
25292
|
-
return s.replace(/(\d{4}|['’]\d{2})\. (\d{1,2})\. (\d{1,2})\.(?!\d)/g, `$1.${NBSP}$2.${NBSP}$3.`).replace(/(\d{4}|['’]\d{2})\. (\d{1,2})\.(?!\d)/g, `$1.${NBSP}$2.`).replace(/(?<![\d.])(\d{1,2})\. (\d{1,2})\.(?!\d)/g, `$1.${NBSP}$2.`).replace(/(\d{1,2}:\d{2}) ([~∼-]) (\d{1,2}:\d{2})/g, `$1${NBSP}$2${NBSP}$3`).replace(/(\d(?:조|억|만|천)?) 원/g, `$1${NBSP}\uC6D0`);
|
|
25488
|
+
return s.replace(/(\d{4}|['’]\d{2})\. (\d{1,2})\. (\d{1,2})\.(?!\d)/g, `$1.${NBSP}$2.${NBSP}$3.`).replace(/(\d{4}|['’]\d{2})\. (\d{1,2})\.(?!\d)/g, `$1.${NBSP}$2.`).replace(/(?<![\d.])(\d{1,2})\. (\d{1,2})\.(?!\d)/g, `$1.${NBSP}$2.`).replace(/(\d{1,2}:\d{2}) ([~∼-]) (\d{1,2}:\d{2})/g, `$1${NBSP}$2${NBSP}$3`).replace(/(\d(?:조|억|만|천)?) 원/g, `$1${NBSP}\uC6D0`).replace(/(?<=[가-힣A-Za-z0-9))*.]) 등(?=(?:으로서|으로써|으로|에서|에게|까지|부터|이며|이고|이다|이나|이라|과|와|을|를|은|는|이|가|의|에|도|만)?[,,.))」』’”]*(?:\s|$))/g, `${NBSP}\uB4F1`).replace(/(?<=[가-힣A-Za-z]) (?=\d+(?:\.\d+)?[,,](?:\s|$))/g, NBSP).replace(/(?<=\d[,,][ \u00a0]+[가-힣A-Za-z]+) (?=\d+(?:\.\d+)?[^\s,,\d]*(?:\s|$))/g, NBSP);
|
|
25293
25489
|
}
|
|
25294
25490
|
function neighbor(s, i, dir) {
|
|
25295
25491
|
for (let k = i + dir; k >= 0 && k < s.length; k += dir) if (!/[*_~]/.test(s[k])) return s[k];
|
|
@@ -26049,12 +26245,39 @@ function legalDepthOf(marker) {
|
|
|
26049
26245
|
return 6;
|
|
26050
26246
|
}
|
|
26051
26247
|
|
|
26248
|
+
// src/hwpx/paste-clean.ts
|
|
26249
|
+
var INVISIBLE = /[\u200b\u200c\u2060\ufeff]/g;
|
|
26250
|
+
var CITATION_TAG = /[ \t]?【[^【】†\n]*†[^【】\n]*】/g;
|
|
26251
|
+
var ESCAPED_BOLD = /(?<![\\*])\\\*\\\*(?=[^\s\\*<])([^\\\n<]+?)(?<=[^\s\\*>])\\\*\\\*(?!\\\*)/g;
|
|
26252
|
+
function cleanPastedMarkdown(md) {
|
|
26253
|
+
let removed = 0;
|
|
26254
|
+
let fence = null;
|
|
26255
|
+
const count = (re, s, to) => s.replace(re, (...a) => {
|
|
26256
|
+
removed++;
|
|
26257
|
+
return typeof to === "string" ? to : to(...a);
|
|
26258
|
+
});
|
|
26259
|
+
const lines = md.split("\n").map((line) => {
|
|
26260
|
+
const f = line.match(/^\s*(```+|~~~+)/);
|
|
26261
|
+
if (f) {
|
|
26262
|
+
fence = fence === null ? f[1][0] : fence === f[1][0] ? null : fence;
|
|
26263
|
+
return line;
|
|
26264
|
+
}
|
|
26265
|
+
if (fence !== null) return line;
|
|
26266
|
+
let out = count(INVISIBLE, line, "");
|
|
26267
|
+
out = count(CITATION_TAG, out, "");
|
|
26268
|
+
return count(ESCAPED_BOLD, out, (_m, inner) => `**${inner}**`);
|
|
26269
|
+
});
|
|
26270
|
+
return { md: lines.join("\n"), removed };
|
|
26271
|
+
}
|
|
26272
|
+
|
|
26052
26273
|
// src/hwpx/generator.ts
|
|
26053
26274
|
async function markdownToHwpx(markdown, options) {
|
|
26054
26275
|
const theme = resolveTheme(options?.theme);
|
|
26055
26276
|
const gongmun = options?.gongmun ? resolveGongmun(options.gongmun) : null;
|
|
26056
26277
|
const page = resolvePage(options?.page);
|
|
26057
|
-
const
|
|
26278
|
+
const pasted = cleanPastedMarkdown(markdown);
|
|
26279
|
+
if (pasted.removed > 0) options?.warnings?.push(`\uBD99\uC5EC\uB123\uAE30 \uD754\uC801 ${pasted.removed}\uAC1C \uC815\uB9AC (\uBCF4\uC774\uC9C0 \uC54A\uB294 \uAE00\uC790\xB7\uC778\uC6A9 \uD45C\uC2DC\xB7\uC774\uC2A4\uCF00\uC774\uD504\uB41C \uAD75\uAC8C)`);
|
|
26280
|
+
const { md, defs } = extractFootnoteDefs(pasted.md);
|
|
26058
26281
|
beginInlineDoc(defs);
|
|
26059
26282
|
try {
|
|
26060
26283
|
if (gongmun && usesV5Engine(gongmun.preset)) {
|
|
@@ -26097,6 +26320,9 @@ async function markdownToHwpx(markdown, options) {
|
|
|
26097
26320
|
const richAssets = !!gongmun && needsGaejosikAssets(gongmun);
|
|
26098
26321
|
const blocks = gongmun ? parseMarkdownToBlocks(md).map(polishGongmunBlock) : parseMarkdownToBlocks(md);
|
|
26099
26322
|
const gongmunList = gongmun ? precomputeGongmunList(blocks, gongmun) : null;
|
|
26323
|
+
if (gongmun?.agency?.pressStyle === "para" && gongmunList && [...gongmunList.items.values()].some((it) => it.depth === 0)) {
|
|
26324
|
+
options?.warnings?.push(`agency: ${gongmun.agency.name} \uBCF4\uB3C4\uC790\uB8CC \uBCF8\uBB38\uC740 \uBB38\uB2E8\uC2DD(\uAE30\uD638 \uC5C6\uB294 \uAE30\uC0AC\uCCB4 \uBB38\uB2E8)\uC774 \uC8FC\uB41C \uBC29\uC2DD \u2014 \u25A1 \uD56D\uBAA9 \uB300\uC2E0 \uBB38\uB2E8\uC73C\uB85C \uC4F0\uB294 \uAC83\uC744 \uAC80\uD1A0\uD558\uC138\uC694`);
|
|
26325
|
+
}
|
|
26100
26326
|
const fit = gongmun && gongmunList ? computeGongmunFitPlan(blocks, gongmun, gongmunList) : null;
|
|
26101
26327
|
const staticBfEnd = staticBorderFillNext(gongmun);
|
|
26102
26328
|
const remap = options?.profile ? buildProfileRemap(options.profile, charVariantBase(richAssets, !!gongmun) + (fit?.variants?.length ?? 0) * 4, staticBfEnd, staticFontNext(gongmun)) : null;
|
|
@@ -26790,14 +27016,71 @@ var DISCRIM_FIXES = [
|
|
|
26790
27016
|
["\uADC0\uBA38\uAC70\uB9AC", "\uCCAD\uAC01\uC7A5\uC560\uC778"]
|
|
26791
27017
|
];
|
|
26792
27018
|
var DISCRIM_RE = new RegExp(DISCRIM_FIXES.map(([w]) => w).sort((a, b) => b.length - a.length).join("|"), "g");
|
|
27019
|
+
var PLAIN_FIXES = [
|
|
27020
|
+
["\uAE08\uBC88", "\uC774\uBC88"],
|
|
27021
|
+
["\uAE08\uC77C", "\uC624\uB298"],
|
|
27022
|
+
["\uBA85\uC77C", "\uB0B4\uC77C"],
|
|
27023
|
+
["\uC791\uC77C", "\uC5B4\uC81C"],
|
|
27024
|
+
["\uC775\uC77C", "\uB2E4\uC74C \uB0A0"],
|
|
27025
|
+
["\uACE0\uC218\uBD80\uC9C0", "\uB454\uCE58"],
|
|
27026
|
+
["\uBD88\uCCA0\uC8FC\uC57C", "\uBC24\uB0AE\uC5C6\uC774"]
|
|
27027
|
+
];
|
|
27028
|
+
var SPELLING_FIXES = [
|
|
27029
|
+
["\uBA87\uC77C", "\uBA70\uCE60"],
|
|
27030
|
+
["\uAC2F\uC218", "\uAC1C\uC218"],
|
|
27031
|
+
["\uB42C\uC2B5\uB2C8\uB2E4", "\uB410\uC2B5\uB2C8\uB2E4"],
|
|
27032
|
+
["\uB42C\uB2E4", "\uB410\uB2E4"],
|
|
27033
|
+
["\uC660\uB9CC\uD558\uBA74", "\uC6EC\uB9CC\uD558\uBA74"],
|
|
27034
|
+
["\uC5B4\uC758\uC5C6\uB2E4", "\uC5B4\uC774\uC5C6\uB2E4"],
|
|
27035
|
+
["\uB418\uC694", "\uB3FC\uC694"]
|
|
27036
|
+
];
|
|
27037
|
+
var wordRe = (fixes) => new RegExp(
|
|
27038
|
+
"(?<![\uAC00-\uD7A3A-Za-z0-9])(?:" + fixes.map(([w]) => w).sort((a, b) => b.length - a.length).join("|") + ")(?=(?:\uC73C\uB85C|\uBD80\uD130|\uAE4C\uC9C0|\uB3D9\uC548|\uC774\uB098|\uC740|\uB294|\uC774|\uAC00|\uC744|\uB97C|\uC5D0|\uC758|\uB3C4|\uB9CC|\uB85C|\uACFC|\uC640|\uAC04)?(?![\uAC00-\uD7A3A-Za-z0-9]))",
|
|
27039
|
+
"g"
|
|
27040
|
+
);
|
|
27041
|
+
var PLAIN_RE = wordRe(PLAIN_FIXES);
|
|
27042
|
+
var SPELLING_RE = wordRe(SPELLING_FIXES);
|
|
27043
|
+
var WEEKDAYS = "\uC77C\uC6D4\uD654\uC218\uBAA9\uAE08\uD1A0";
|
|
27044
|
+
function weekdayCheck(m) {
|
|
27045
|
+
const [y, mo, d] = [Number(m[1]), Number(m[2]), Number(m[3])];
|
|
27046
|
+
const date = new Date(y, mo - 1, d);
|
|
27047
|
+
if (date.getFullYear() !== y || date.getMonth() !== mo - 1 || date.getDate() !== d) return null;
|
|
27048
|
+
const right = WEEKDAYS[date.getDay()];
|
|
27049
|
+
return right === m[4] ? null : `${m[0].trim()} \u2192 ${y}. ${mo}. ${d}.(${right})`;
|
|
27050
|
+
}
|
|
27051
|
+
var HANGUL_DIGIT = { \uC77C: 1, \uC774: 2, \uC0BC: 3, \uC0AC: 4, \uC624: 5, \uC721: 6, \uCE60: 7, \uD314: 8, \uAD6C: 9, \uC601: 0 };
|
|
27052
|
+
var HANGUL_SMALL = { \uC2ED: 10, \uBC31: 100, \uCC9C: 1e3 };
|
|
27053
|
+
var HANGUL_BIG = { \uB9CC: 1e4, \uC5B5: 1e8, \uC870: 1e12 };
|
|
27054
|
+
function hangulToNumber(s) {
|
|
27055
|
+
let total = 0, section = 0, digit = 0;
|
|
27056
|
+
for (const ch of s) {
|
|
27057
|
+
if (ch in HANGUL_DIGIT) digit = HANGUL_DIGIT[ch];
|
|
27058
|
+
else if (ch in HANGUL_SMALL) {
|
|
27059
|
+
section += (digit || 1) * HANGUL_SMALL[ch];
|
|
27060
|
+
digit = 0;
|
|
27061
|
+
} else if (ch in HANGUL_BIG) {
|
|
27062
|
+
total += (section + digit || 1) * HANGUL_BIG[ch];
|
|
27063
|
+
section = 0;
|
|
27064
|
+
digit = 0;
|
|
27065
|
+
} else return null;
|
|
27066
|
+
}
|
|
27067
|
+
return total + section + digit;
|
|
27068
|
+
}
|
|
27069
|
+
function moneyHangulCheck(m) {
|
|
27070
|
+
const n = Number(m[1].replace(/,/g, ""));
|
|
27071
|
+
const h = hangulToNumber(m[2].replace(/\s/g, ""));
|
|
27072
|
+
if (!Number.isFinite(n) || h === null || h === n) return null;
|
|
27073
|
+
return `\uAE08${m[1]}\uC6D0(\uAE08${hangulAmount(n)}\uC6D0)`;
|
|
27074
|
+
}
|
|
26793
27075
|
var RULES = [
|
|
26794
27076
|
// 날짜 ─ 온점 뒤 한 칸, 0 패딩 금지, 연도 4자리, 끝 마침표
|
|
26795
27077
|
// 법령 연혁 표기 `<개정 2012.2.14>`·`삭제 <2016.2.29.>`·`[시행일:2017.9.8.]` 는 법제처 정본 형식(별지서식 표제) —
|
|
26796
27078
|
// 편람 날짜 규칙 대상이 아니다 (v4.12.3: 서식 595건 DATE 156건 전부 이 꼴, 기안문 0건)
|
|
27079
|
+
// 날짜 모양이 시작되는 자리에서만 뒤쪽 검사 — 뒤쪽 검사(\s*)를 모든 자리에서 먼저 하면 긴 공백 줄에서 이차 폭주(2만 칸 0.7초)
|
|
26797
27080
|
{
|
|
26798
27081
|
code: "DATE_NO_SPACE",
|
|
26799
27082
|
severity: "error",
|
|
26800
|
-
pattern:
|
|
27083
|
+
pattern: /\b(?=\d{4}\.\d{1,2}\.\d)(?<!<(?:개정|신설|전문개정|전부개정|일부개정|제정)\s*)(?<!삭제\s*<)(?<!시행일\s*:\s*)\d{4}\.\d{1,2}\.\d{1,2}\.?/g,
|
|
26801
27084
|
message: "\uB0A0\uC9DC \uC628\uC810 \uB4A4\uC5D0 \uD55C \uCE78\uC529 \uB744\uC6CC\uC57C \uD568",
|
|
26802
27085
|
suggest: "\uC608) 2025. 1. 6."
|
|
26803
27086
|
},
|
|
@@ -26844,7 +27127,7 @@ var RULES = [
|
|
|
26844
27127
|
code: "TIME_24H",
|
|
26845
27128
|
severity: "warning",
|
|
26846
27129
|
pattern: /(?<!\d)24\s*시(?!각)/g,
|
|
26847
|
-
message: "'24\uC2DC'\uBCF4\uB2E4 \
|
|
27130
|
+
message: "'24\uC2DC'\uBCF4\uB2E4 \uB2E4\uC74C \uB0A0 00:00 \uB610\uB294 '18:00\uAE4C\uC9C0' \uAD8C\uC7A5",
|
|
26848
27131
|
suggest: "\uC608) 18:00"
|
|
26849
27132
|
},
|
|
26850
27133
|
{
|
|
@@ -26855,10 +27138,11 @@ var RULES = [
|
|
|
26855
27138
|
suggest: "\uC608) 13:20"
|
|
26856
27139
|
},
|
|
26857
27140
|
// 금액 ─ '천원' 금지, 금+숫자 붙여쓰기
|
|
27141
|
+
// 숫자 런 첫머리에서만 시작 — 아니면 긴 숫자 줄에서 시작 자리마다 런을 다시 훑어 이차 폭주(숫자 5만 자 2.9초)
|
|
26858
27142
|
{
|
|
26859
27143
|
code: "MONEY_CHEONWON",
|
|
26860
27144
|
severity: "error",
|
|
26861
|
-
pattern:
|
|
27145
|
+
pattern: /(?<!\d)\d+\s*천\s*원/g,
|
|
26862
27146
|
message: "\uAE08\uC561\uC740 '\uCC9C\uC6D0'\uC73C\uB85C \uC904\uC774\uC9C0 \uC54A\uACE0 \uC544\uB77C\uBE44\uC544 \uC22B\uC790\uB85C",
|
|
26863
27147
|
suggest: "\uC608) 345,000\uC6D0"
|
|
26864
27148
|
},
|
|
@@ -26907,6 +27191,14 @@ var RULES = [
|
|
|
26907
27191
|
},
|
|
26908
27192
|
// ── 편람 보강 (v4.12.1) — pyhwpxlib Gongmun 검사·hwpx-skill gonmun_lint 대조로 빈 축 보충 ──
|
|
26909
27193
|
// 금액 한글 병기 — 규정 시행규칙 제2조: 아라비아 숫자 다음 괄호 안에 한글로 적는다
|
|
27194
|
+
// 한글 금액은 글자 묶음 사이에만 공백 — 공백 수량자가 겹치면 닫는 괄호 없는 긴 공백 줄에서 폭주했다(160칸 9.8초)
|
|
27195
|
+
{
|
|
27196
|
+
code: "MONEY_HANGUL_MISMATCH",
|
|
27197
|
+
severity: "error",
|
|
27198
|
+
pattern: /금\s?(\d[\d,]*)원\s*[((]\s*(?:금\s*)?([일이삼사오육칠팔구십백천만억조영]+(?:\s+[일이삼사오육칠팔구십백천만억조영]+)*)\s*원?\s*[))]/g,
|
|
27199
|
+
check: moneyHangulCheck,
|
|
27200
|
+
message: "\uBCD1\uAE30\uD55C \uD55C\uAE00 \uAE08\uC561\uC774 \uC22B\uC790\uC640 \uB2E4\uB984"
|
|
27201
|
+
},
|
|
26910
27202
|
{
|
|
26911
27203
|
code: "MONEY_NO_HANGUL",
|
|
26912
27204
|
severity: "warning",
|
|
@@ -26917,6 +27209,22 @@ var RULES = [
|
|
|
26917
27209
|
// 물결표 앞뒤 붙여쓰기 — 기간·범위는 "2. 20.∼2. 24." 처럼 붙여 씀. 숫자·날짜·시각 범위(앞은 숫자·
|
|
26918
27210
|
// 온점·괄호·년월일시분, 뒤는 숫자·연도 생략부호)에만 건다 — "기간( 부터 ~ 까지)" 기입란·"~ ※ 비고"·
|
|
26919
27211
|
// "~ 수리완료시까지" 처럼 낱말이 붙는 물결표는 범위 표기가 아니다 (v4.12.2, 별지서식 47→30·기안문 32→27 실측)
|
|
27212
|
+
// 기간·시각 범위의 대시 — 점 날짜(연·월·일)나 시:분 사이만 잡아 전화번호(02-123-4567)·조항(제4조-2)·코드(IT-2026-01)는
|
|
27213
|
+
// 걸리지 않는다. 자동 치환은 하지 않는다(명세 (d) 물결표 자동 치환 위험 — 검수만)
|
|
27214
|
+
{
|
|
27215
|
+
code: "RANGE_DASH",
|
|
27216
|
+
severity: "warning",
|
|
27217
|
+
pattern: /\d{2,4}\.\s*\d{1,2}\.\s*\d{1,2}\.?\s*[-–—]\s*(?:\d{2,4}\.\s*)?\d{1,2}\.\s*\d{1,2}\.?|(?<![\d:])\d{1,2}:\d{2}\s*[-–—]\s*\d{1,2}:\d{2}(?![\d:])/g,
|
|
27218
|
+
message: "\uAE30\uAC04\xB7\uC2DC\uAC01 \uBC94\uC704\uB294 \uBB3C\uACB0\uD45C(\u223C)\uB85C",
|
|
27219
|
+
suggest: "\uC608) 2026. 3. 1.\u223C6. 30., 14:00\u223C16:00"
|
|
27220
|
+
},
|
|
27221
|
+
{
|
|
27222
|
+
code: "WEEKDAY_MISMATCH",
|
|
27223
|
+
severity: "error",
|
|
27224
|
+
pattern: /(?<![\d.])(\d{4})\.\s*(\d{1,2})\.\s*(\d{1,2})\.?\s*\(([월화수목금토일])\)/g,
|
|
27225
|
+
check: weekdayCheck,
|
|
27226
|
+
message: "\uB0A0\uC9DC\uC640 \uC694\uC77C\uC774 \uB9DE\uC9C0 \uC54A\uC74C"
|
|
27227
|
+
},
|
|
26920
27228
|
{
|
|
26921
27229
|
code: "TILDE_SPACE",
|
|
26922
27230
|
severity: "warning",
|
|
@@ -26943,6 +27251,39 @@ var RULES = [
|
|
|
26943
27251
|
suggest: "\uC608) \uCF58\uD150\uCE20\xB7\uC560\uD50C\uB9AC\uCF00\uC774\uC158\xB7\uBA54\uC2DC\uC9C0\xB7\uC6CC\uD06C\uC20D\xB7\uC2A4\uCF00\uC904\xB7\uCF58\uC149\uD2B8"
|
|
26944
27252
|
},
|
|
26945
27253
|
// 차별·비하 표현 — 행안부 공문서 작성 지침·국립국어원 순화어
|
|
27254
|
+
// 표 줄은 건너뜀 — 법정 서식 라벨 칸("전일 지침 | 금일 지침")은 바꿀 대상이 아니다 (gate-fill·licbyl 801건 실측 7건 전부 표 라벨)
|
|
27255
|
+
{
|
|
27256
|
+
code: "PLAIN_LANGUAGE",
|
|
27257
|
+
severity: "warning",
|
|
27258
|
+
skipTable: true,
|
|
27259
|
+
pattern: PLAIN_RE,
|
|
27260
|
+
message: "\uACF5\uACF5\uC5B8\uC5B4 \uC26C\uC6B4 \uB9D0\uB85C \uBC14\uAFD4 \uC4F0\uAE30 \uAD8C\uC7A5 (\uD2C0\uB9B0 \uB9D0\uC740 \uC544\uB2D8)"
|
|
27261
|
+
},
|
|
27262
|
+
{
|
|
27263
|
+
code: "SPELLING_ERROR",
|
|
27264
|
+
severity: "warning",
|
|
27265
|
+
pattern: SPELLING_RE,
|
|
27266
|
+
message: "\uB9DE\uCDA4\uBC95 \uC624\uAE30"
|
|
27267
|
+
},
|
|
27268
|
+
// 끝 표시·붙임 표시 2타 (규칙 제2조제2항·편람) — 생성 경로는 official 프리셋이 스스로 맞춘다
|
|
27269
|
+
{
|
|
27270
|
+
code: "END_MARK_SPACE",
|
|
27271
|
+
severity: "warning",
|
|
27272
|
+
documentOnly: true,
|
|
27273
|
+
rawSource: true,
|
|
27274
|
+
pattern: /(?<=\.)(?:[ \t\u3000]?|[ \t\u3000]{3,})끝\.[ \t\u3000]*$/g,
|
|
27275
|
+
message: "'\uB05D.'\uC740 \uC55E \uAE00 \uB9C8\uCE68\uD45C\uC5D0\uC11C 2\uD0C0 \uB744\uC6C0",
|
|
27276
|
+
suggest: "\uC608) \u2026\uBC14\uB78D\uB2C8\uB2E4. \uB05D."
|
|
27277
|
+
},
|
|
27278
|
+
{
|
|
27279
|
+
code: "BUNIM_SPACE",
|
|
27280
|
+
severity: "warning",
|
|
27281
|
+
documentOnly: true,
|
|
27282
|
+
rawSource: true,
|
|
27283
|
+
pattern: /^[ \t\u3000]*붙임(?:[ \t\u3000]|[ \t\u3000]{3,})(?=[^ \t\u3000::])(?=.*(?<!\d)\d+\s*부\.(?:[ \t\u3000]*끝\.)?[ \t\u3000]*$)/g,
|
|
27284
|
+
message: "'\uBD99\uC784' \uB4A4\uB294 2\uD0C0 \uB744\uC6C0",
|
|
27285
|
+
suggest: "\uC608) \uBD99\uC784 \uACC4\uD68D\uC11C 1\uBD80. \uB05D."
|
|
27286
|
+
},
|
|
26946
27287
|
{
|
|
26947
27288
|
code: "DISCRIMINATORY_TERM",
|
|
26948
27289
|
severity: "warning",
|
|
@@ -26962,6 +27303,7 @@ var RULES = [
|
|
|
26962
27303
|
{
|
|
26963
27304
|
code: "AI_BOLD_OVERUSE",
|
|
26964
27305
|
severity: "warning",
|
|
27306
|
+
rawSource: true,
|
|
26965
27307
|
pattern: /(?:\*\*[^*\n]+\*\*[^*\n]*){3}/g,
|
|
26966
27308
|
message: "\uD55C \uC904\uC5D0 \uAC15\uC870(**) 3\uD68C \uC774\uC0C1 \u2014 \uAC15\uC870 \uB0A8\uBC1C\uC740 \uC0DD\uC131\uD615 AI \uBB38\uCCB4 \uD754\uC801",
|
|
26967
27309
|
suggest: "\uB9AC\uB4DC\uC5B4\xB7\uD575\uC2EC \uC218\uCE58 \uD55C \uACF3\uB9CC \uAC15\uC870"
|
|
@@ -26984,15 +27326,19 @@ function lintGongmunText(text, opts) {
|
|
|
26984
27326
|
const tableLine = /^\s*\|/.test(line) || /<t[dhr][\s>]/i.test(line);
|
|
26985
27327
|
for (const r of RULES) {
|
|
26986
27328
|
if (r.skipTable && tableLine) continue;
|
|
27329
|
+
if (r.documentOnly && !opts?.document) continue;
|
|
27330
|
+
if (r.rawSource && opts?.parsed) continue;
|
|
26987
27331
|
r.pattern.lastIndex = 0;
|
|
26988
27332
|
for (const m of line.matchAll(r.pattern)) {
|
|
27333
|
+
const checked = r.check ? r.check(m) : void 0;
|
|
27334
|
+
if (checked === null) continue;
|
|
26989
27335
|
findings.push({
|
|
26990
27336
|
line: i + 1,
|
|
26991
|
-
match: m[0].trim(),
|
|
27337
|
+
match: m[0].trim() || m[0],
|
|
26992
27338
|
rule: r.code,
|
|
26993
27339
|
severity: r.severity,
|
|
26994
27340
|
message: r.message,
|
|
26995
|
-
suggest: dictSuggest(r.code, m[0]) ?? r.suggest
|
|
27341
|
+
suggest: checked ?? dictSuggest(r.code, m[0]) ?? r.suggest
|
|
26996
27342
|
});
|
|
26997
27343
|
}
|
|
26998
27344
|
}
|
|
@@ -27016,7 +27362,7 @@ function dictSuggest(code, match) {
|
|
|
27016
27362
|
const d = m.match(/^(\d{4})-(\d{1,2})-(\d{1,2})$/);
|
|
27017
27363
|
if (d) return `${m} \u2192 ${d[1]}. ${Number(d[2])}. ${Number(d[3])}.`;
|
|
27018
27364
|
}
|
|
27019
|
-
const table2 = code === "LOANWORD_ERROR" ? LOANWORD_FIXES : code === "DISCRIMINATORY_TERM" ? DISCRIM_FIXES : null;
|
|
27365
|
+
const table2 = code === "LOANWORD_ERROR" ? LOANWORD_FIXES : code === "DISCRIMINATORY_TERM" ? DISCRIM_FIXES : code === "PLAIN_LANGUAGE" ? PLAIN_FIXES : code === "SPELLING_ERROR" ? SPELLING_FIXES : null;
|
|
27020
27366
|
if (!table2) return void 0;
|
|
27021
27367
|
const hit = table2.find(([w]) => w === match.trim());
|
|
27022
27368
|
return hit ? `${hit[0]} \u2192 ${hit[1]}` : void 0;
|
|
@@ -27262,6 +27608,60 @@ function muncheLintWarnings(text, limit = 10) {
|
|
|
27262
27608
|
// src/roundtrip/patcher.ts
|
|
27263
27609
|
import JSZip10 from "jszip";
|
|
27264
27610
|
|
|
27611
|
+
// src/roundtrip/integrity.ts
|
|
27612
|
+
import { DOMParser as DOMParser5 } from "@xmldom/xmldom";
|
|
27613
|
+
import { inflateRawSync as inflateRawSync5 } from "zlib";
|
|
27614
|
+
var LINESEG_RE = /<(\w+:)?linesegarray\b[^>]*?(?:\/>|>[\s\S]*?<\/\1linesegarray>)/g;
|
|
27615
|
+
var TAG_RE = /<[^>]+>/g;
|
|
27616
|
+
var sameBytes = (a, b) => Buffer.compare(a, b) === 0;
|
|
27617
|
+
function xmlError(xml) {
|
|
27618
|
+
let error = null;
|
|
27619
|
+
try {
|
|
27620
|
+
new DOMParser5({ onError: (level, msg2) => {
|
|
27621
|
+
if (level !== "warning" && !error) error = String(msg2);
|
|
27622
|
+
} }).parseFromString(xml, "text/xml");
|
|
27623
|
+
} catch (e) {
|
|
27624
|
+
error ??= e instanceof Error ? e.message : String(e);
|
|
27625
|
+
}
|
|
27626
|
+
return error;
|
|
27627
|
+
}
|
|
27628
|
+
var textOnly = (xml, s) => !s.replacement.includes("<") && !xml.slice(s.start, s.end).includes("<");
|
|
27629
|
+
function checkPatchIntegrity(original, patched, replacements, sections) {
|
|
27630
|
+
const issues = [];
|
|
27631
|
+
const a = readZipEntries(original), b = readZipEntries(patched);
|
|
27632
|
+
const names = (m) => [...m.keys()].join("\n");
|
|
27633
|
+
if (names(a) !== names(b)) issues.push("ZIP \uC5D4\uD2B8\uB9AC \uBAA9\uB85D\xB7\uC21C\uC11C\uAC00 \uC6D0\uBCF8\uACFC \uB2E4\uB984");
|
|
27634
|
+
for (const [name, entry] of a) {
|
|
27635
|
+
if (replacements.has(name)) continue;
|
|
27636
|
+
const out = b.get(name);
|
|
27637
|
+
if (!out || out.method !== entry.method || !sameBytes(out.compData, entry.compData)) issues.push(`\uAD50\uCCB4\uD558\uC9C0 \uC54A\uC740 \uC5D4\uD2B8\uB9AC\uC758 \uBC14\uC774\uD2B8\uAC00 \uBC14\uB01C: ${name}`);
|
|
27638
|
+
}
|
|
27639
|
+
const decoder = new TextDecoder();
|
|
27640
|
+
const originalText = (name) => {
|
|
27641
|
+
const e = a.get(name);
|
|
27642
|
+
if (!e) return null;
|
|
27643
|
+
try {
|
|
27644
|
+
return decoder.decode(e.method === 8 ? inflateRawSync5(e.compData) : e.compData);
|
|
27645
|
+
} catch {
|
|
27646
|
+
return null;
|
|
27647
|
+
}
|
|
27648
|
+
};
|
|
27649
|
+
for (const [name, data] of replacements) {
|
|
27650
|
+
if (!/\.xml$/i.test(name)) continue;
|
|
27651
|
+
const err = xmlError(decoder.decode(data));
|
|
27652
|
+
const before = originalText(name);
|
|
27653
|
+
if (err && before !== null && !xmlError(before)) issues.push(`\uAD50\uCCB4\uD55C XML \uC774 \uC62C\uBC14\uB974\uC9C0 \uC54A\uC74C: ${name} \u2014 ${err.split("\n")[0]}`);
|
|
27654
|
+
}
|
|
27655
|
+
for (const { name, xml, splices } of sections) {
|
|
27656
|
+
if (!splices.every((s) => textOnly(xml, s))) continue;
|
|
27657
|
+
const data = replacements.get(name);
|
|
27658
|
+
if (!data) continue;
|
|
27659
|
+
const tags = (x) => (x.replace(LINESEG_RE, "").match(TAG_RE) ?? []).join("");
|
|
27660
|
+
if (tags(xml) !== tags(decoder.decode(data))) issues.push(`\uAE00\uB9CC \uACE0\uCE5C \uC139\uC158\uC758 \uD0DC\uADF8\xB7\uC18D\uC131\uC774 \uBC14\uB01C: ${name}`);
|
|
27661
|
+
}
|
|
27662
|
+
return issues;
|
|
27663
|
+
}
|
|
27664
|
+
|
|
27265
27665
|
// src/roundtrip/table-rows.ts
|
|
27266
27666
|
var ROW_OBJECT_RE = /<(?:[A-Za-z0-9_]+:)?(?:tbl|pic|equation|ole|container|shape|drawingObject|drawText|video|chart|fieldBegin|fieldEnd|ctrl)\b/;
|
|
27267
27667
|
var TAG_AT_RE = /<[A-Za-z0-9_:]+(?:"[^"]*"|'[^']*'|[^>"'])*>/y;
|
|
@@ -29226,9 +29626,9 @@ async function patchHwpx(original, editedMarkdown, options) {
|
|
|
29226
29626
|
for (const [oi, ei] of pairs) {
|
|
29227
29627
|
if (oi !== null && ei !== null) {
|
|
29228
29628
|
const orig = origUnits[oi];
|
|
29229
|
-
const
|
|
29230
|
-
if (orig.raw ===
|
|
29231
|
-
applied += handleModifiedUnit(orig,
|
|
29629
|
+
const edited2 = editedUnits[ei];
|
|
29630
|
+
if (orig.raw === edited2.raw) continue;
|
|
29631
|
+
applied += handleModifiedUnit(orig, edited2, {
|
|
29232
29632
|
origBlocks,
|
|
29233
29633
|
paraMap,
|
|
29234
29634
|
scans,
|
|
@@ -29245,10 +29645,12 @@ async function patchHwpx(original, editedMarkdown, options) {
|
|
|
29245
29645
|
}
|
|
29246
29646
|
}
|
|
29247
29647
|
const replacements = /* @__PURE__ */ new Map();
|
|
29648
|
+
const edited = [];
|
|
29248
29649
|
const encoder = new TextEncoder();
|
|
29249
29650
|
try {
|
|
29250
29651
|
for (let i = 0; i < scans.length; i++) {
|
|
29251
29652
|
if (sectionSplices[i].length === 0) continue;
|
|
29653
|
+
edited.push({ name: sectionPaths[i], xml: scans[i].xml, splices: [...sectionSplices[i]] });
|
|
29252
29654
|
const claimed = sectionSplices[i].filter((s) => s.end > s.start);
|
|
29253
29655
|
sectionSplices[i].push(...allLinesegRemovalSplices(scans[i].xml).filter((ls) => !claimed.some((c) => ls.start >= c.start && ls.end <= c.end)));
|
|
29254
29656
|
const newXml = applySplices(scans[i].xml, sectionSplices[i]);
|
|
@@ -29273,6 +29675,8 @@ async function patchHwpx(original, editedMarkdown, options) {
|
|
|
29273
29675
|
}
|
|
29274
29676
|
let verification;
|
|
29275
29677
|
if (options?.verify !== false) {
|
|
29678
|
+
const issues = replacements.size > 0 ? checkPatchIntegrity(original, data, replacements, edited) : [];
|
|
29679
|
+
if (issues.length) return { success: false, applied, skipped, error: `\uD328\uCE58\uBCF8 \uBB34\uACB0\uC131 \uAC80\uC0AC \uC2E4\uD328 \u2014 \uD328\uCE58 \uC911\uB2E8: ${issues.join("; ")}` };
|
|
29276
29680
|
try {
|
|
29277
29681
|
const reparsed = await parseHwpxDocument(u8ToArrayBuffer(data), { layoutTables: "keep" });
|
|
29278
29682
|
verification = diffUnitLists(splitMarkdownUnits(reparsed.markdown), editedUnits);
|
|
@@ -29642,7 +30046,7 @@ async function resolveHeaderEntryName(zip) {
|
|
|
29642
30046
|
|
|
29643
30047
|
// src/validate.ts
|
|
29644
30048
|
import JSZip11 from "jszip";
|
|
29645
|
-
import { DOMParser as
|
|
30049
|
+
import { DOMParser as DOMParser6 } from "@xmldom/xmldom";
|
|
29646
30050
|
var REQUIRED_FILES = [
|
|
29647
30051
|
"mimetype",
|
|
29648
30052
|
"META-INF/container.xml",
|
|
@@ -29688,7 +30092,7 @@ async function validateHwpx(buffer) {
|
|
|
29688
30092
|
const text = await zip.files[name].async("string");
|
|
29689
30093
|
let firstError = null;
|
|
29690
30094
|
try {
|
|
29691
|
-
new
|
|
30095
|
+
new DOMParser6({
|
|
29692
30096
|
onError(level, msg2) {
|
|
29693
30097
|
if (level !== "warning" && firstError === null) firstError = String(msg2);
|
|
29694
30098
|
}
|
|
@@ -30166,7 +30570,7 @@ function scriptsOff(r, off) {
|
|
|
30166
30570
|
}
|
|
30167
30571
|
async function parseImage(buffer, options) {
|
|
30168
30572
|
try {
|
|
30169
|
-
const { parseImageDocument } = await import("./image-ocr-
|
|
30573
|
+
const { parseImageDocument } = await import("./image-ocr-3C3K64AD.js");
|
|
30170
30574
|
const { blocks, warnings } = await parseImageDocument(buffer, options);
|
|
30171
30575
|
stripScriptTags({ blocks });
|
|
30172
30576
|
return {
|
|
@@ -30226,7 +30630,7 @@ async function parseHwp(buffer, options) {
|
|
|
30226
30630
|
async function parsePdf(buffer, options) {
|
|
30227
30631
|
let parsePdfDocument;
|
|
30228
30632
|
try {
|
|
30229
|
-
const mod = await import("./parser-
|
|
30633
|
+
const mod = await import("./parser-3W5XWIE5.js");
|
|
30230
30634
|
parsePdfDocument = mod.parsePdfDocument;
|
|
30231
30635
|
} catch {
|
|
30232
30636
|
return {
|
|
@@ -30393,6 +30797,8 @@ async function extractTables(input, options = {}) {
|
|
|
30393
30797
|
export {
|
|
30394
30798
|
toPlainMarkdown,
|
|
30395
30799
|
toHtmlTables,
|
|
30800
|
+
extractHwpxStyles,
|
|
30801
|
+
resolveSectionPaths,
|
|
30396
30802
|
extractHwpxMetadataOnly,
|
|
30397
30803
|
formatFillValue,
|
|
30398
30804
|
ValueCursor,
|
|
@@ -30408,9 +30814,14 @@ export {
|
|
|
30408
30814
|
collectTableBlocks,
|
|
30409
30815
|
classifyTableTree,
|
|
30410
30816
|
chooseTableRepresentation,
|
|
30817
|
+
AGENCY_COMMON_NAME,
|
|
30818
|
+
agencyNames,
|
|
30819
|
+
agencyStyle,
|
|
30411
30820
|
PRESET_ALIAS,
|
|
30412
30821
|
normalizeGongmunPreset,
|
|
30413
30822
|
incompatibleGongmunWarnings,
|
|
30823
|
+
parseMarkdownToBlocks,
|
|
30824
|
+
parseLeadingMarker,
|
|
30414
30825
|
markdownToHwpx,
|
|
30415
30826
|
compare,
|
|
30416
30827
|
diffBlocks,
|
|
@@ -30449,4 +30860,4 @@ export {
|
|
|
30449
30860
|
parseHwpml,
|
|
30450
30861
|
fillForm
|
|
30451
30862
|
};
|
|
30452
|
-
//# sourceMappingURL=chunk-
|
|
30863
|
+
//# sourceMappingURL=chunk-QQERGR6C.js.map
|