@ihabdevteam/core 0.322.0 → 0.323.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/CHANGELOG.md +517 -0
  2. package/dist/components.cjs.js +183 -183
  3. package/dist/components.esm.css +1 -1
  4. package/dist/hooks.cjs.js +3 -3
  5. package/dist/i18n.cjs.js +3 -3
  6. package/dist/ihabdevteam-core.cjs.js +187 -187
  7. package/dist/ihabdevteam-core.d.ts +54 -16
  8. package/dist/packages/core/src/components/Accordion.js +3 -3
  9. package/dist/packages/core/src/components/Alert.js +2 -2
  10. package/dist/packages/core/src/components/BarChart.js +120 -119
  11. package/dist/packages/core/src/components/BottomNav.js +18 -18
  12. package/dist/packages/core/src/components/BulkBar.js +25 -25
  13. package/dist/packages/core/src/components/Button.js +16 -16
  14. package/dist/packages/core/src/components/Calendar.js +17 -17
  15. package/dist/packages/core/src/components/ChartSection.js +30 -30
  16. package/dist/packages/core/src/components/CountTile.js +38 -38
  17. package/dist/packages/core/src/components/DatePicker.js +59 -59
  18. package/dist/packages/core/src/components/Dialog.js +14 -14
  19. package/dist/packages/core/src/components/Effect/EffectPartyPopperHost.js +8 -8
  20. package/dist/packages/core/src/components/FilterPanel.js +6 -6
  21. package/dist/packages/core/src/components/FilterSectionInfo.js +6 -6
  22. package/dist/packages/core/src/components/GameIntro.js +1 -1
  23. package/dist/packages/core/src/components/Icon.js +2 -2
  24. package/dist/packages/core/src/components/ItemActions.js +16 -16
  25. package/dist/packages/core/src/components/LandingHeader.js +6 -6
  26. package/dist/packages/core/src/components/LineChart.js +24 -24
  27. package/dist/packages/core/src/components/Loader.js +5 -5
  28. package/dist/packages/core/src/components/NoticeBox.js +3 -3
  29. package/dist/packages/core/src/components/PageTitle.js +2 -2
  30. package/dist/packages/core/src/components/Pagination.js +4 -4
  31. package/dist/packages/core/src/components/Panel.js +2 -2
  32. package/dist/packages/core/src/components/PanelRow.js +6 -13
  33. package/dist/packages/core/src/components/PassCard/PassCard.js +9 -9
  34. package/dist/packages/core/src/components/PassCard/passCardProduct.js +2 -2
  35. package/dist/packages/core/src/components/PaymentPlan.js +5 -5
  36. package/dist/packages/core/src/components/Popup/ConfirmPopup.js +29 -29
  37. package/dist/packages/core/src/components/Popup/CouponInputPopup.js +2 -2
  38. package/dist/packages/core/src/components/Popup/DeviceSideTable.js +18 -25
  39. package/dist/packages/core/src/components/Popup/ListPopup.js +3 -3
  40. package/dist/packages/core/src/components/Popup/LoadTablePopup.js +7 -7
  41. package/dist/packages/core/src/components/Popup/Popup.js +27 -27
  42. package/dist/packages/core/src/components/Popup/SaveTablePopup.js +5 -5
  43. package/dist/packages/core/src/components/Popup/TrainingResultPopup.js +4 -4
  44. package/dist/packages/core/src/components/Popup/customerDetailUtils.js +18 -18
  45. package/dist/packages/core/src/components/Popup/useDiscardGuard.js +4 -4
  46. package/dist/packages/core/src/components/ProgressIndicator.js +5 -5
  47. package/dist/packages/core/src/components/PromoBannerBg/promoBannerBg.js +16 -16
  48. package/dist/packages/core/src/components/Rating.js +20 -20
  49. package/dist/packages/core/src/components/Report/ReportDocument.js +21 -21
  50. package/dist/packages/core/src/components/RingChart.js +5 -5
  51. package/dist/packages/core/src/components/SectionHeadFloat.js +15 -15
  52. package/dist/packages/core/src/components/SegmentedControl.js +34 -34
  53. package/dist/packages/core/src/components/SideNav.js +37 -37
  54. package/dist/packages/core/src/components/Slider.js +2 -2
  55. package/dist/packages/core/src/components/SoundCompass.js +5 -5
  56. package/dist/packages/core/src/components/Table.js +257 -98
  57. package/dist/packages/core/src/components/Tabs.js +12 -12
  58. package/dist/packages/core/src/components/TextField.js +34 -34
  59. package/dist/packages/core/src/components/Toast.js +6 -6
  60. package/dist/packages/core/src/components/Tooltip/MenuTooltip.js +4 -4
  61. package/dist/packages/core/src/components/Tooltip/Tooltip.js +22 -22
  62. package/dist/packages/core/src/components/Tooltip/TrainingTooltip.js +4 -4
  63. package/dist/packages/core/src/components/TopBanner.js +28 -28
  64. package/dist/packages/core/src/components/Training/AudioPlayerWaveForm.js +11 -11
  65. package/dist/packages/core/src/components/Training/CategoryIcon.js +2 -2
  66. package/dist/packages/core/src/components/Training/NoisePlayerContext.js +12 -12
  67. package/dist/packages/core/src/components/Training/NoiseSettingsTooltip.js +2 -2
  68. package/dist/packages/core/src/components/Training/TrainingBlock.js +11 -11
  69. package/dist/packages/core/src/components/Training/TrainingBlockButton.js +10 -10
  70. package/dist/packages/core/src/components/Training/TrainingBlockGrid.js +21 -21
  71. package/dist/packages/core/src/components/Training/TrainingCard.css +13 -1
  72. package/dist/packages/core/src/components/Training/TrainingCard.js +2 -2
  73. package/dist/packages/core/src/components/Training/TrainingCardGroup.js +6 -6
  74. package/dist/packages/core/src/components/Training/TrainingPagePopup.js +81 -81
  75. package/dist/packages/core/src/components/Training/TrainingPagePopupBottom.js +17 -17
  76. package/dist/packages/core/src/components/Training/TrainingStepAudioPlayer.js +127 -127
  77. package/dist/packages/core/src/components/Training/TrainingStepCard.js +18 -18
  78. package/dist/packages/core/src/components/Training/TrainingStepConfirmWithText.js +4 -4
  79. package/dist/packages/core/src/components/Training/TrainingStepOrderList.js +12 -12
  80. package/dist/packages/core/src/components/Training/TrainingStepTextBox.js +12 -12
  81. package/dist/packages/core/src/components/Training/TrainingStepTitle.js +4 -4
  82. package/dist/packages/core/src/components/Training/TrainingWordCard.js +17 -17
  83. package/dist/packages/core/src/components/Training/WordTablePopup.js +5 -5
  84. package/dist/packages/core/src/components/Training/audioPlaybackRules.js +8 -8
  85. package/dist/packages/core/src/components/Training/audioTimeline.js +25 -25
  86. package/dist/packages/core/src/components/Training/oneShotSound.js +13 -13
  87. package/dist/packages/core/src/components/Training/trainingMissStats.js +20 -20
  88. package/dist/packages/core/src/components/Training/trainingPopupUtils.js +7 -7
  89. package/dist/packages/core/src/components/Training/useAudioPreview.js +15 -15
  90. package/dist/packages/core/src/components/Training/useFloatingFocus.js +14 -14
  91. package/dist/packages/core/src/components/Training/useNoiseFade.js +22 -22
  92. package/dist/packages/core/src/components/Training/useObjectUrls.js +2 -2
  93. package/dist/packages/core/src/components/Training/usePlaybackSequencer.d.ts +2 -2
  94. package/dist/packages/core/src/components/Training/usePlaybackSequencer.js +23 -23
  95. package/dist/packages/core/src/components/Training/useProgressTicker.js +33 -33
  96. package/dist/packages/core/src/components/Training/useTTSPlayback.js +17 -17
  97. package/dist/packages/core/src/components/Training/useWaveReady.js +11 -11
  98. package/dist/packages/core/src/components/UpdateAlert.js +6 -6
  99. package/dist/packages/core/src/components/Word/PhonemeSelectBlock.js +7 -1
  100. package/dist/packages/core/src/components/Word/TableFilterPanel.js +3 -3
  101. package/dist/packages/core/src/components/Word/WordSearchResultBlock.js +10 -10
  102. package/dist/packages/core/src/components/Word/WordTableBlock.js +28 -28
  103. package/dist/packages/core/src/components/Word/WordTableButton.css +16 -2
  104. package/dist/packages/core/src/components/Word/WordTableThumbnail.css +6 -1
  105. package/dist/packages/core/src/components/Word/generatedDraft.js +14 -14
  106. package/dist/packages/core/src/components/Word/useWordTableDisplaySettings.js +7 -7
  107. package/dist/packages/core/src/components/Word/wordScoreStats.js +15 -15
  108. package/dist/packages/core/src/components/Word/wordTablePrint.js +10 -10
  109. package/dist/packages/core/src/components/Word/wordTableRecommend.js +11 -11
  110. package/dist/packages/core/src/components/Word/wordTableReview.js +28 -28
  111. package/dist/packages/core/src/components/Word/wordTableSettings.d.ts +8 -11
  112. package/dist/packages/core/src/components/Word/wordTableSettings.js +48 -36
  113. package/dist/packages/core/src/components/WordTable.js +130 -130
  114. package/dist/packages/core/src/components/barChartData.d.ts +16 -1
  115. package/dist/packages/core/src/components/barChartData.js +49 -29
  116. package/dist/packages/core/src/components/barChartTypes.js +8 -8
  117. package/dist/packages/core/src/components/tableTrackList.js +11 -11
  118. package/dist/packages/core/src/components/updateAlertStack.js +28 -28
  119. package/dist/packages/core/src/components/useBarChartControl.js +4 -6
  120. package/dist/packages/core/src/components/useComboboxSuggestions.js +17 -17
  121. package/dist/packages/core/src/components/useToastLifecycle.js +18 -18
  122. package/dist/packages/core/src/components/wordTableLayout.d.ts +17 -4
  123. package/dist/packages/core/src/components/wordTableLayout.js +5 -5
  124. package/dist/packages/core/src/context/I18nProvider.js +6 -6
  125. package/dist/packages/core/src/hooks/focusReturn.js +27 -27
  126. package/dist/packages/core/src/hooks/inputModality.js +13 -13
  127. package/dist/packages/core/src/hooks/touchToggle.js +39 -39
  128. package/dist/packages/core/src/hooks/useAnchoredMenu.js +30 -30
  129. package/dist/packages/core/src/hooks/useDailyTrainingSelection.js +28 -28
  130. package/dist/packages/core/src/hooks/useDocumentTitle.js +10 -10
  131. package/dist/packages/core/src/hooks/useEditableList.js +4 -4
  132. package/dist/packages/core/src/hooks/useFocusTrap.js +2 -2
  133. package/dist/packages/core/src/hooks/useFontScale.js +6 -6
  134. package/dist/packages/core/src/hooks/useIcon.js +7 -7
  135. package/dist/packages/core/src/hooks/useListControls.js +2 -2
  136. package/dist/packages/core/src/hooks/usePageResetOnChange.js +3 -3
  137. package/dist/packages/core/src/hooks/usePasswordChange.js +4 -4
  138. package/dist/packages/core/src/hooks/usePendingPress.js +7 -7
  139. package/dist/packages/core/src/hooks/useRelativeDay.js +4 -4
  140. package/dist/packages/core/src/hooks/useSoundCompassExam.js +6 -6
  141. package/dist/packages/core/src/hooks/useTablePaging.d.ts +0 -11
  142. package/dist/packages/core/src/hooks/useTablePaging.js +29 -34
  143. package/dist/packages/core/src/hooks/useTrainingSessionLog.js +35 -35
  144. package/dist/packages/core/src/hooks/useVisitSchedule.js +4 -4
  145. package/dist/packages/core/src/hooks/useWordAttributeFilter.js +14 -14
  146. package/dist/packages/core/src/hooks/useWordMeanings.js +5 -5
  147. package/dist/packages/core/src/hooks/useWordTrainingFilter.js +7 -7
  148. package/dist/packages/core/src/i18n/locales/en.json +13 -2
  149. package/dist/packages/core/src/i18n/locales/ko.json +12 -1
  150. package/dist/packages/core/src/types/wordSearch.d.ts +9 -0
  151. package/dist/packages/core/src/utils/audioMeter.js +5 -5
  152. package/dist/packages/core/src/utils/audioPeaks.d.ts +1 -1
  153. package/dist/packages/core/src/utils/audioPeaks.js +18 -18
  154. package/dist/packages/core/src/utils/blockGrid.js +4 -4
  155. package/dist/packages/core/src/utils/chunkSkew.js +9 -9
  156. package/dist/packages/core/src/utils/clipboard.js +3 -3
  157. package/dist/packages/core/src/utils/dailySelectionUtils.js +12 -12
  158. package/dist/packages/core/src/utils/date.js +12 -12
  159. package/dist/packages/core/src/utils/devWarn.js +4 -4
  160. package/dist/packages/core/src/utils/deviceKind.d.ts +37 -7
  161. package/dist/packages/core/src/utils/deviceKind.js +53 -10
  162. package/dist/packages/core/src/utils/errorMessage.js +7 -7
  163. package/dist/packages/core/src/utils/filterPanelSummary.js +14 -14
  164. package/dist/packages/core/src/utils/format.js +4 -4
  165. package/dist/packages/core/src/utils/getTrainingData.js +9 -9
  166. package/dist/packages/core/src/utils/imageConfig.js +17 -17
  167. package/dist/packages/core/src/utils/koreanSyllable.js +18 -18
  168. package/dist/packages/core/src/utils/navScroll.js +2 -2
  169. package/dist/packages/core/src/utils/phonemeConvert.d.ts +7 -0
  170. package/dist/packages/core/src/utils/phonemeConvert.js +19 -10
  171. package/dist/packages/core/src/utils/phonemeGroups.js +2 -2
  172. package/dist/packages/core/src/utils/phonemePairSearch.d.ts +1 -0
  173. package/dist/packages/core/src/utils/phonemePairSearch.js +118 -102
  174. package/dist/packages/core/src/utils/phonemeSectionCodes.d.ts +52 -0
  175. package/dist/packages/core/src/utils/phonemeSectionCodes.js +76 -0
  176. package/dist/packages/core/src/utils/prefetchChunk.js +6 -6
  177. package/dist/packages/core/src/utils/safeHref.js +4 -4
  178. package/dist/packages/core/src/utils/savedWordTables.js +5 -5
  179. package/dist/packages/core/src/utils/speak.js +12 -12
  180. package/dist/packages/core/src/utils/textSort.d.ts +0 -10
  181. package/dist/packages/core/src/utils/textSort.js +38 -48
  182. package/dist/packages/core/src/utils/theme.js +3 -3
  183. package/dist/packages/core/src/utils/trainingItemResults.js +3 -3
  184. package/dist/packages/core/src/utils/ttsConfig.js +2 -2
  185. package/dist/packages/core/src/utils/wordAttributeFilterCodes.js +45 -45
  186. package/dist/packages/core/src/utils/wordContrast.js +3 -3
  187. package/dist/packages/core/src/utils/wordPairIndex.js +4 -4
  188. package/dist/packages/core/src/utils/wordTrainingGenerators.js +4 -4
  189. package/dist/packages/core/src/utils/wordTrainingPool.js +15 -15
  190. package/dist/packages/core/src/utils/wordTrainingRuntime.js +6 -6
  191. package/dist/packages/core/src/utils/wornDate.d.ts +3 -3
  192. package/dist/packages/core/src/utils/wornDate.js +14 -14
  193. package/dist/packages/core/src/version.d.ts +1 -1
  194. package/dist/packages/core/src/version.js +1 -1
  195. package/dist/utils.cjs.js +4 -4
  196. package/package.json +1 -1
@@ -8,14 +8,21 @@ import { ITEMS_PER_PAGE_OPTIONS } from './wordTableBlockTypes';
8
8
  * 개수·페이지 번호 섹션을 그 사이에 끼워 넣는다.
9
9
  */
10
10
  /** @public 구성(이미지/단어/표준발음/구어체발음) 다중 토글 섹션. */
11
+ /**
12
+ * 켜고 끄는 절의 값 — **코드다.** 보일 글은 사전(`wordTable.filter.show`·`.hide`)이 쥔다.
13
+ * 외곽선·대립선·상단/하단 정보·절취선이 같은 짝을 쓰므로 한 자리에 둔다
14
+ * (한글 `'표시'`·`'미표시'` 에서 2026-10-13 옮겼다 — 사장님 지시 "모두 표준으로").
15
+ */
16
+ const SHOW = 'show';
17
+ const HIDE = 'hide';
11
18
  export function buildCompositionSection(t, opts) {
12
19
  return {
13
20
  label: t('wordTable.filter.composition', '구성'),
14
21
  items: [
15
- { value: '이미지', disabled: !opts.hasImage, displayLabel: t('wordTable.filter.image', '이미지') },
16
- { value: '단어', displayLabel: t('wordTable.filter.word', '단어') },
17
- { value: '표준 발음', displayLabel: t('wordTable.filter.standardPron', '표준 발음') },
18
- { value: '구어체 발음', disabled: !opts.hasColloquial, displayLabel: t('wordTable.filter.colloquialPron', '구어체 발음') },
22
+ { value: 'image', disabled: !opts.hasImage, displayLabel: t('wordTable.filter.image', '이미지') },
23
+ { value: 'word', displayLabel: t('wordTable.filter.word', '단어') },
24
+ { value: 'standardPron', displayLabel: t('wordTable.filter.standardPron', '표준 발음') },
25
+ { value: 'colloquialPron', disabled: !opts.hasColloquial, displayLabel: t('wordTable.filter.colloquialPron', '구어체 발음') },
19
26
  ],
20
27
  multiple: true,
21
28
  allOption: true,
@@ -26,8 +33,8 @@ export function buildOrientationSection(t) {
26
33
  return {
27
34
  label: t('wordTable.filter.paperOrientation', '용지 방향'),
28
35
  items: [
29
- { value: '가로', displayLabel: t('wordTable.filter.landscape', '가로') },
30
- { value: '세로', displayLabel: t('wordTable.filter.portrait', '세로') },
36
+ { value: 'landscape', displayLabel: t('wordTable.filter.landscape', '가로') },
37
+ { value: 'portrait', displayLabel: t('wordTable.filter.portrait', '세로') },
31
38
  ],
32
39
  display: 'segmented',
33
40
  };
@@ -37,8 +44,8 @@ export function buildBorderSection(t) {
37
44
  return {
38
45
  label: t('wordTable.filter.border', '외곽선'),
39
46
  items: [
40
- { value: '표시', displayLabel: t('wordTable.filter.show', '표시') },
41
- { value: '미표시', displayLabel: t('wordTable.filter.hide', '미표시') },
47
+ { value: SHOW, displayLabel: t('wordTable.filter.show', '표시') },
48
+ { value: HIDE, displayLabel: t('wordTable.filter.hide', '미표시') },
42
49
  ],
43
50
  display: 'segmented',
44
51
  };
@@ -48,8 +55,8 @@ export function buildTopInfoSection(t) {
48
55
  return {
49
56
  label: t('wordTable.filter.topInfo', '상단 정보'),
50
57
  items: [
51
- { value: '표시', displayLabel: t('wordTable.filter.show', '표시') },
52
- { value: '미표시', displayLabel: t('wordTable.filter.hide', '미표시') },
58
+ { value: SHOW, displayLabel: t('wordTable.filter.show', '표시') },
59
+ { value: HIDE, displayLabel: t('wordTable.filter.hide', '미표시') },
53
60
  ],
54
61
  display: 'segmented',
55
62
  };
@@ -59,8 +66,8 @@ export function buildBottomInfoSection(t) {
59
66
  return {
60
67
  label: t('wordTable.filter.bottomInfo', '하단 정보'),
61
68
  items: [
62
- { value: '표시', displayLabel: t('wordTable.filter.show', '표시') },
63
- { value: '미표시', displayLabel: t('wordTable.filter.hide', '미표시') },
69
+ { value: SHOW, displayLabel: t('wordTable.filter.show', '표시') },
70
+ { value: HIDE, displayLabel: t('wordTable.filter.hide', '미표시') },
64
71
  ],
65
72
  display: 'segmented',
66
73
  };
@@ -70,10 +77,10 @@ export function buildCutLineSection(t) {
70
77
  return {
71
78
  label: t('wordTable.filter.cutLine', '절취선'),
72
79
  items: [
73
- { value: '표시', displayLabel: t('wordTable.filter.show', '표시') },
74
- { value: '점선', displayLabel: t('wordTable.filter.dotted', '점선') },
75
- { value: '코너', displayLabel: t('wordTable.filter.corner', '코너') },
76
- { value: '미표시', displayLabel: t('wordTable.filter.hide', '미표시') },
80
+ { value: SHOW, displayLabel: t('wordTable.filter.show', '표시') },
81
+ { value: 'dashed', displayLabel: t('wordTable.filter.dotted', '점선') },
82
+ { value: 'corner', displayLabel: t('wordTable.filter.corner', '코너') },
83
+ { value: HIDE, displayLabel: t('wordTable.filter.hide', '미표시') },
77
84
  ],
78
85
  display: 'segmented',
79
86
  };
@@ -83,8 +90,8 @@ export function buildDivLineSection(t) {
83
90
  return {
84
91
  label: t('wordPrint.divLine', '대립선'),
85
92
  items: [
86
- { value: '표시', displayLabel: t('wordTable.filter.show', '표시') },
87
- { value: '미표시', displayLabel: t('wordTable.filter.hide', '미표시') },
93
+ { value: SHOW, displayLabel: t('wordTable.filter.show', '표시') },
94
+ { value: HIDE, displayLabel: t('wordTable.filter.hide', '미표시') },
88
95
  ],
89
96
  display: 'segmented',
90
97
  };
@@ -115,35 +122,40 @@ export function buildPageNumberSection(t) {
115
122
  return {
116
123
  label: t('wordTable.filter.pageNumber', '페이지 번호'),
117
124
  items: [
118
- { value: '왼쪽', displayLabel: t('wordTable.filter.pageNumberLeft', '왼쪽') },
119
- { value: '중앙', displayLabel: t('wordTable.filter.pageNumberCenter', '중앙') },
120
- { value: '오른쪽', displayLabel: t('wordTable.filter.pageNumberRight', '오른쪽') },
121
- { value: '미표시', displayLabel: t('wordTable.filter.hide', '미표시') },
125
+ { value: 'left', displayLabel: t('wordTable.filter.pageNumberLeft', '왼쪽') },
126
+ { value: 'center', displayLabel: t('wordTable.filter.pageNumberCenter', '중앙') },
127
+ { value: 'right', displayLabel: t('wordTable.filter.pageNumberRight', '오른쪽') },
128
+ { value: HIDE, displayLabel: t('wordTable.filter.hide', '미표시') },
122
129
  ],
123
130
  display: 'segmented',
124
131
  };
125
132
  }
126
- /** @public 페이지 번호 위치 → filterSelected 표시값. */
127
- export const PAGE_NUM_POSITION_VALUE = { left: '왼쪽', center: '중앙', right: '오른쪽', none: '미표시' };
128
- /** @public FilterPanel 선택값 → 페이지 번호 위치. */
133
+ /**
134
+ * @public FilterPanel 선택값 → 페이지 번호 위치.
135
+ *
136
+ * **섹션의 `value` 가 곧 코드다.** 전에는 `value` 가 한글(`'왼쪽'`)이라 여기서 되돌리는 표
137
+ * (`PAGE_NUM_POSITION_VALUE`)와 파서가 **둘 다** 필요했다 — 값을 코드로 돌리니 그 둘이
138
+ * 항등식이 되어 표를 걷었다(2026-10-13). *옮기는 표가 사라지는 것이 옳게 옮긴 표시다.*
139
+ * 모르는 값은 `'none'` 으로 떨어뜨린다(옛 한글 값이 어디선가 오더라도 번호를 안 찍는다).
140
+ */
129
141
  export function parsePageNumberPosition(value) {
130
- return value === '왼쪽' ? 'left' : value === '중앙' ? 'center' : value === '오른쪽' ? 'right' : 'none';
142
+ return value === 'left' || value === 'center' || value === 'right' ? value : 'none';
131
143
  }
132
144
  /** @public 기본 5개 설정의 filterSelected 엔트리(호출부가 자신의 추가 섹션과 spread). */
133
145
  export function buildTableSettingsSelected(t, v) {
134
146
  return {
135
147
  [t('wordTable.filter.composition', '구성')]: v.contentTypes,
136
- [t('wordTable.filter.paperOrientation', '용지 방향')]: v.orientation === 'landscape' ? '가로' : '세로',
137
- [t('wordTable.filter.border', '외곽선')]: v.showOutline ? '표시' : '미표시',
148
+ [t('wordTable.filter.paperOrientation', '용지 방향')]: v.orientation,
149
+ [t('wordTable.filter.border', '외곽선')]: v.showOutline ? SHOW : HIDE,
138
150
  [t('wordTable.filter.cutLine', '절취선')]: v.cutLine,
139
- [t('wordPrint.divLine', '대립선')]: v.showDivLine ? '표시' : '미표시',
151
+ [t('wordPrint.divLine', '대립선')]: v.showDivLine ? SHOW : HIDE,
140
152
  /* **`undefined` 는 '안 쓴다' 다** — `false`('미표시')와 다르다. 띠를 안 쓰는 화면은
141
153
  값을 안 주므로 항목 자체를 안 넣는다. 지금은 절 목록에 그 절이 없어 어차피 안
142
154
  보이지만, 여기 죽은 항목을 남겨 두면 **요약이 절이 아니라 이 맵을 훑도록 바뀌는 날**
143
155
  쓰지도 않는 줄 둘이 따라 선다. 그렇게 될 뻔한 것을 말귀가 tarball 을 뜯어 보고
144
156
  짚었다(2026-09-30). 쪽 번호가 쓰던 꼴(`isPaginated ? {…} : {}`)과 같게 둔다. */
145
- ...(v.showTopInfo != null ? { [t('wordTable.filter.topInfo', '상단 정보')]: v.showTopInfo ? '표시' : '미표시' } : {}),
146
- ...(v.showBottomInfo != null ? { [t('wordTable.filter.bottomInfo', '하단 정보')]: v.showBottomInfo ? '표시' : '미표시' } : {}),
157
+ ...(v.showTopInfo != null ? { [t('wordTable.filter.topInfo', '상단 정보')]: v.showTopInfo ? SHOW : HIDE } : {}),
158
+ ...(v.showBottomInfo != null ? { [t('wordTable.filter.bottomInfo', '하단 정보')]: v.showBottomInfo ? SHOW : HIDE } : {}),
147
159
  };
148
160
  }
149
161
  /**
@@ -161,11 +173,11 @@ export function applyTableSettingsSelect(t, value, sectionLabel, s) {
161
173
  return true;
162
174
  }
163
175
  if (sectionLabel === t('wordTable.filter.paperOrientation', '용지 방향')) {
164
- s.setOrientation(value === '가로' ? 'landscape' : 'portrait');
176
+ s.setOrientation(value === 'landscape' ? 'landscape' : 'portrait');
165
177
  return true;
166
178
  }
167
179
  if (sectionLabel === t('wordTable.filter.border', '외곽선')) {
168
- s.setShowOutline(value === '표시');
180
+ s.setShowOutline(value === SHOW);
169
181
  return true;
170
182
  }
171
183
  if (sectionLabel === t('wordTable.filter.cutLine', '절취선')) {
@@ -173,15 +185,15 @@ export function applyTableSettingsSelect(t, value, sectionLabel, s) {
173
185
  return true;
174
186
  }
175
187
  if (sectionLabel === t('wordPrint.divLine', '대립선')) {
176
- s.setShowDivLine(value === '표시');
188
+ s.setShowDivLine(value === SHOW);
177
189
  return true;
178
190
  }
179
191
  if (sectionLabel === t('wordTable.filter.topInfo', '상단 정보')) {
180
- s.setShowTopInfo?.(value === '표시');
192
+ s.setShowTopInfo?.(value === SHOW);
181
193
  return true;
182
194
  }
183
195
  if (sectionLabel === t('wordTable.filter.bottomInfo', '하단 정보')) {
184
- s.setShowBottomInfo?.(value === '표시');
196
+ s.setShowBottomInfo?.(value === SHOW);
185
197
  return true;
186
198
  }
187
199
  return false;