@elice/material-exercise 1.240401.0 → 1.240508.0-globalization.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (251) hide show
  1. package/cjs/components/locales/en.json.js +7 -0
  2. package/cjs/components/locales/index.d.ts +3 -0
  3. package/cjs/components/locales/ko.json.js +7 -0
  4. package/cjs/components/locales/th.json.js +7 -0
  5. package/cjs/components/material-exercise/MaterialExercise.d.ts +3 -1
  6. package/cjs/components/material-exercise/MaterialExercise.js +11 -14
  7. package/cjs/components/material-exercise/context/ExerciseProviderNoImage.d.ts +2 -1
  8. package/cjs/components/material-exercise/context/ExerciseProviderNoImage.js +7 -15
  9. package/cjs/components/material-exercise/context/locales/noImage.en.json.js +2 -2
  10. package/cjs/components/material-exercise/context/locales/noImage.ko.json.js +2 -2
  11. package/cjs/components/material-exercise/context/locales/noImage.th.json.js +7 -0
  12. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +2 -1
  13. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +9 -12
  14. package/cjs/components/material-exercise/exercise-code-history/locales/en.json.js +2 -2
  15. package/cjs/components/material-exercise/exercise-code-history/locales/index.d.ts +3 -0
  16. package/cjs/components/material-exercise/exercise-code-history/locales/ko.json.js +2 -2
  17. package/cjs/components/material-exercise/exercise-code-history/locales/th.json.js +7 -0
  18. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.d.ts +3 -5
  19. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +14 -5
  20. package/cjs/components/material-exercise/exercise-file-editor/locales/en.json.js +7 -0
  21. package/cjs/components/material-exercise/exercise-file-editor/locales/index.d.ts +3 -0
  22. package/cjs/components/material-exercise/exercise-file-editor/locales/ko.json.js +7 -0
  23. package/cjs/components/material-exercise/exercise-file-editor/locales/th.json.js +7 -0
  24. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.d.ts +3 -2
  25. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +17 -4
  26. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.d.ts +2 -2
  27. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +5 -15
  28. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +2 -2
  29. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +2 -2
  30. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.th.json.js +7 -0
  31. package/cjs/components/material-exercise/exercise-file-tabs/locales/index.d.ts +3 -0
  32. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.d.ts +2 -3
  33. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +8 -10
  34. package/cjs/components/material-exercise/exercise-file-tree/locales/en.json.js +2 -2
  35. package/cjs/components/material-exercise/exercise-file-tree/locales/index.d.ts +3 -0
  36. package/cjs/components/material-exercise/exercise-file-tree/locales/ko.json.js +2 -2
  37. package/cjs/components/material-exercise/exercise-file-tree/locales/th.json.js +7 -0
  38. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.d.ts +2 -1
  39. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +9 -9
  40. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +4 -3
  41. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +13 -13
  42. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +8 -8
  43. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +10 -10
  44. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +7 -7
  45. package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +2 -2
  46. package/cjs/components/material-exercise/exercise-menu/locales/index.d.ts +3 -0
  47. package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +2 -2
  48. package/cjs/components/material-exercise/exercise-menu/locales/th.json.js +7 -0
  49. package/cjs/components/material-exercise/exercise-preview/ExercisePreview.d.ts +2 -1
  50. package/cjs/components/material-exercise/exercise-preview/ExercisePreview.js +8 -8
  51. package/cjs/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +4 -4
  52. package/cjs/components/material-exercise/exercise-preview/locales/en.json.js +2 -2
  53. package/cjs/components/material-exercise/exercise-preview/locales/index.d.ts +3 -0
  54. package/cjs/components/material-exercise/exercise-preview/locales/ko.json.js +2 -2
  55. package/cjs/components/material-exercise/exercise-preview/locales/th.json.js +7 -0
  56. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.d.ts +2 -3
  57. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +14 -15
  58. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +18 -18
  59. package/cjs/components/material-exercise/exercise-rightpane/locales/en.json.js +2 -2
  60. package/cjs/components/material-exercise/exercise-rightpane/locales/index.d.ts +3 -0
  61. package/cjs/components/material-exercise/exercise-rightpane/locales/ko.json.js +2 -2
  62. package/cjs/components/material-exercise/exercise-rightpane/locales/th.json.js +7 -0
  63. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.d.ts +2 -1
  64. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +9 -9
  65. package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +28 -28
  66. package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +15 -15
  67. package/cjs/components/material-exercise/exercise-room/locales/en.json.js +2 -2
  68. package/cjs/components/material-exercise/exercise-room/locales/index.d.ts +3 -0
  69. package/cjs/components/material-exercise/exercise-room/locales/ko.json.js +2 -2
  70. package/cjs/components/material-exercise/exercise-room/locales/th.json.js +7 -0
  71. package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.d.ts +2 -1
  72. package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +26 -29
  73. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +20 -18
  74. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +10 -10
  75. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +13 -13
  76. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +6 -5
  77. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +27 -30
  78. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +8 -7
  79. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +6 -6
  80. package/cjs/components/material-exercise/exercise-runner/locales/en.json.js +2 -2
  81. package/cjs/components/material-exercise/exercise-runner/locales/index.d.ts +3 -0
  82. package/cjs/components/material-exercise/exercise-runner/locales/ko.json.js +2 -2
  83. package/cjs/components/material-exercise/exercise-runner/locales/th.json.js +7 -0
  84. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +2 -1
  85. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +13 -16
  86. package/cjs/components/material-exercise/exercise-submit-history/locales/en.json.js +2 -2
  87. package/cjs/components/material-exercise/exercise-submit-history/locales/index.d.ts +3 -0
  88. package/cjs/components/material-exercise/exercise-submit-history/locales/ko.json.js +2 -2
  89. package/cjs/components/material-exercise/exercise-submit-history/locales/th.json.js +7 -0
  90. package/cjs/components/shared/file-tree/FileTree.d.ts +1 -5
  91. package/cjs/components/shared/file-tree/FileTree.js +11 -12
  92. package/cjs/components/shared/file-tree/FileTreeConfig.js +1 -2
  93. package/cjs/components/shared/file-tree/FileTreeList.js +1 -2
  94. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +8 -8
  95. package/cjs/components/shared/file-tree/FileTreeListItemContentMenu.js +24 -24
  96. package/cjs/components/shared/file-tree/FileTreeToolbar.js +6 -7
  97. package/cjs/components/shared/file-tree/locales/en.json.js +2 -2
  98. package/cjs/components/shared/file-tree/locales/index.d.ts +3 -0
  99. package/cjs/components/shared/file-tree/locales/ko.json.js +2 -2
  100. package/cjs/components/shared/file-tree/locales/th.json.js +7 -0
  101. package/cjs/components/shared/file-viewer/FileViewer.d.ts +2 -1
  102. package/cjs/components/shared/file-viewer/FileViewer.js +8 -16
  103. package/cjs/components/shared/file-viewer/FileViewerCsv.js +8 -7
  104. package/cjs/components/shared/file-viewer/FileViewerNonViewable.d.ts +2 -1
  105. package/cjs/components/shared/file-viewer/FileViewerNonViewable.js +11 -18
  106. package/cjs/components/shared/file-viewer/locales/index.d.ts +6 -0
  107. package/cjs/components/shared/file-viewer/locales/nonViewable.en.json.js +2 -2
  108. package/cjs/components/shared/file-viewer/locales/nonViewable.ko.json.js +2 -2
  109. package/cjs/components/shared/file-viewer/locales/nonViewable.th.json.js +7 -0
  110. package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.d.ts +2 -1
  111. package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +29 -37
  112. package/cjs/components/shared/monaco-editor/locales/en.json.js +2 -2
  113. package/cjs/components/shared/monaco-editor/locales/index.d.ts +3 -0
  114. package/cjs/components/shared/monaco-editor/locales/ko.json.js +2 -2
  115. package/cjs/components/shared/monaco-editor/locales/th.json.js +7 -0
  116. package/cjs/components/shared/xterm/Xterm.d.ts +3 -1
  117. package/cjs/components/shared/xterm/Xterm.js +8 -18
  118. package/cjs/components/shared/xterm/locales/en.json.js +2 -2
  119. package/cjs/components/shared/xterm/locales/index.d.ts +3 -0
  120. package/cjs/components/shared/xterm/locales/ko.json.js +2 -2
  121. package/cjs/components/shared/xterm/locales/th.json.js +7 -0
  122. package/es/components/locales/en.json.js +3 -0
  123. package/es/components/locales/index.d.ts +3 -0
  124. package/es/components/locales/ko.json.js +3 -0
  125. package/es/components/locales/th.json.js +3 -0
  126. package/es/components/material-exercise/MaterialExercise.d.ts +3 -1
  127. package/es/components/material-exercise/MaterialExercise.js +11 -15
  128. package/es/components/material-exercise/context/ExerciseProviderNoImage.d.ts +2 -1
  129. package/es/components/material-exercise/context/ExerciseProviderNoImage.js +9 -17
  130. package/es/components/material-exercise/context/locales/noImage.en.json.js +2 -2
  131. package/es/components/material-exercise/context/locales/noImage.ko.json.js +2 -2
  132. package/es/components/material-exercise/context/locales/noImage.th.json.js +3 -0
  133. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +2 -1
  134. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +11 -14
  135. package/es/components/material-exercise/exercise-code-history/locales/en.json.js +2 -2
  136. package/es/components/material-exercise/exercise-code-history/locales/index.d.ts +3 -0
  137. package/es/components/material-exercise/exercise-code-history/locales/ko.json.js +2 -2
  138. package/es/components/material-exercise/exercise-code-history/locales/th.json.js +3 -0
  139. package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.d.ts +3 -5
  140. package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +14 -5
  141. package/es/components/material-exercise/exercise-file-editor/locales/en.json.js +3 -0
  142. package/es/components/material-exercise/exercise-file-editor/locales/index.d.ts +3 -0
  143. package/es/components/material-exercise/exercise-file-editor/locales/ko.json.js +3 -0
  144. package/es/components/material-exercise/exercise-file-editor/locales/th.json.js +3 -0
  145. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.d.ts +3 -2
  146. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +17 -4
  147. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.d.ts +2 -2
  148. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +3 -13
  149. package/es/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +2 -2
  150. package/es/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +2 -2
  151. package/es/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.th.json.js +3 -0
  152. package/es/components/material-exercise/exercise-file-tabs/locales/index.d.ts +3 -0
  153. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.d.ts +2 -3
  154. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +10 -12
  155. package/es/components/material-exercise/exercise-file-tree/locales/en.json.js +2 -2
  156. package/es/components/material-exercise/exercise-file-tree/locales/index.d.ts +3 -0
  157. package/es/components/material-exercise/exercise-file-tree/locales/ko.json.js +2 -2
  158. package/es/components/material-exercise/exercise-file-tree/locales/th.json.js +3 -0
  159. package/es/components/material-exercise/exercise-menu/ExerciseMenu.d.ts +2 -1
  160. package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +9 -9
  161. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +4 -3
  162. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +12 -12
  163. package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +2 -2
  164. package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +6 -6
  165. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +6 -6
  166. package/es/components/material-exercise/exercise-menu/locales/en.json.js +2 -2
  167. package/es/components/material-exercise/exercise-menu/locales/index.d.ts +3 -0
  168. package/es/components/material-exercise/exercise-menu/locales/ko.json.js +2 -2
  169. package/es/components/material-exercise/exercise-menu/locales/th.json.js +3 -0
  170. package/es/components/material-exercise/exercise-preview/ExercisePreview.d.ts +2 -1
  171. package/es/components/material-exercise/exercise-preview/ExercisePreview.js +9 -9
  172. package/es/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +2 -2
  173. package/es/components/material-exercise/exercise-preview/locales/en.json.js +2 -2
  174. package/es/components/material-exercise/exercise-preview/locales/index.d.ts +3 -0
  175. package/es/components/material-exercise/exercise-preview/locales/ko.json.js +2 -2
  176. package/es/components/material-exercise/exercise-preview/locales/th.json.js +3 -0
  177. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.d.ts +2 -3
  178. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +14 -15
  179. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +2 -2
  180. package/es/components/material-exercise/exercise-rightpane/locales/en.json.js +2 -2
  181. package/es/components/material-exercise/exercise-rightpane/locales/index.d.ts +3 -0
  182. package/es/components/material-exercise/exercise-rightpane/locales/ko.json.js +2 -2
  183. package/es/components/material-exercise/exercise-rightpane/locales/th.json.js +3 -0
  184. package/es/components/material-exercise/exercise-room/ExerciseRoom.d.ts +2 -1
  185. package/es/components/material-exercise/exercise-room/ExerciseRoom.js +9 -9
  186. package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +4 -4
  187. package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +2 -2
  188. package/es/components/material-exercise/exercise-room/locales/en.json.js +2 -2
  189. package/es/components/material-exercise/exercise-room/locales/index.d.ts +3 -0
  190. package/es/components/material-exercise/exercise-room/locales/ko.json.js +2 -2
  191. package/es/components/material-exercise/exercise-room/locales/th.json.js +3 -0
  192. package/es/components/material-exercise/exercise-runner/ExerciseRunner.d.ts +2 -1
  193. package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +26 -29
  194. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +18 -16
  195. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +2 -2
  196. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +12 -12
  197. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +6 -5
  198. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +26 -29
  199. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +8 -7
  200. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +6 -6
  201. package/es/components/material-exercise/exercise-runner/locales/en.json.js +2 -2
  202. package/es/components/material-exercise/exercise-runner/locales/index.d.ts +3 -0
  203. package/es/components/material-exercise/exercise-runner/locales/ko.json.js +2 -2
  204. package/es/components/material-exercise/exercise-runner/locales/th.json.js +3 -0
  205. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +2 -1
  206. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +14 -17
  207. package/es/components/material-exercise/exercise-submit-history/locales/en.json.js +2 -2
  208. package/es/components/material-exercise/exercise-submit-history/locales/index.d.ts +3 -0
  209. package/es/components/material-exercise/exercise-submit-history/locales/ko.json.js +2 -2
  210. package/es/components/material-exercise/exercise-submit-history/locales/th.json.js +3 -0
  211. package/es/components/shared/file-tree/FileTree.d.ts +1 -5
  212. package/es/components/shared/file-tree/FileTree.js +11 -12
  213. package/es/components/shared/file-tree/FileTreeConfig.js +1 -2
  214. package/es/components/shared/file-tree/FileTreeList.js +1 -2
  215. package/es/components/shared/file-tree/FileTreeListItemContentInput.js +2 -2
  216. package/es/components/shared/file-tree/FileTreeListItemContentMenu.js +22 -22
  217. package/es/components/shared/file-tree/FileTreeToolbar.js +3 -4
  218. package/es/components/shared/file-tree/locales/en.json.js +2 -2
  219. package/es/components/shared/file-tree/locales/index.d.ts +3 -0
  220. package/es/components/shared/file-tree/locales/ko.json.js +2 -2
  221. package/es/components/shared/file-tree/locales/th.json.js +3 -0
  222. package/es/components/shared/file-viewer/FileViewer.d.ts +2 -1
  223. package/es/components/shared/file-viewer/FileViewer.js +8 -16
  224. package/es/components/shared/file-viewer/FileViewerCsv.js +8 -7
  225. package/es/components/shared/file-viewer/FileViewerNonViewable.d.ts +2 -1
  226. package/es/components/shared/file-viewer/FileViewerNonViewable.js +13 -20
  227. package/es/components/shared/file-viewer/locales/index.d.ts +6 -0
  228. package/es/components/shared/file-viewer/locales/nonViewable.en.json.js +2 -2
  229. package/es/components/shared/file-viewer/locales/nonViewable.ko.json.js +2 -2
  230. package/es/components/shared/file-viewer/locales/nonViewable.th.json.js +3 -0
  231. package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.d.ts +2 -1
  232. package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +30 -38
  233. package/es/components/shared/monaco-editor/locales/en.json.js +2 -2
  234. package/es/components/shared/monaco-editor/locales/index.d.ts +3 -0
  235. package/es/components/shared/monaco-editor/locales/ko.json.js +2 -2
  236. package/es/components/shared/monaco-editor/locales/th.json.js +3 -0
  237. package/es/components/shared/xterm/Xterm.d.ts +3 -1
  238. package/es/components/shared/xterm/Xterm.js +10 -20
  239. package/es/components/shared/xterm/locales/en.json.js +2 -2
  240. package/es/components/shared/xterm/locales/index.d.ts +3 -0
  241. package/es/components/shared/xterm/locales/ko.json.js +2 -2
  242. package/es/components/shared/xterm/locales/th.json.js +3 -0
  243. package/package.json +6 -6
  244. package/cjs/components/material-exercise/MaterialExercise.i18n.d.ts +0 -5
  245. package/cjs/components/material-exercise/MaterialExercise.i18n.js +0 -13
  246. package/cjs/components/material-exercise/context/ExerciseIntlProvider.d.ts +0 -12
  247. package/cjs/components/material-exercise/context/ExerciseIntlProvider.js +0 -44
  248. package/es/components/material-exercise/MaterialExercise.i18n.d.ts +0 -5
  249. package/es/components/material-exercise/MaterialExercise.i18n.js +0 -10
  250. package/es/components/material-exercise/context/ExerciseIntlProvider.d.ts +0 -12
  251. package/es/components/material-exercise/context/ExerciseIntlProvider.js +0 -41
@@ -1,3 +1,3 @@
1
- var phrasesEn = {"exerciseRunner.controller.arduino.connectionStatus.connected":"Connected to Arduino","exerciseRunner.controller.arduino.connectionStatus.connectedDevice":"Connected to {device}","exerciseRunner.controller.arduino.connectionStatus.connecting":"Connecting to Elice Arduino Agent","exerciseRunner.controller.arduino.connectionStatus.disconnected":"Disconnected from Elice Arduino Agent","exerciseRunner.controller.arduino.connectionStatus.noDevice":"No connected device","exerciseRunner.controller.arduino.connectionStatus.reconnecting":"Connecting to Elice Arduino Agent","exerciseRunner.controller.arduino.connectionStatus.uploading":"Uploading...","exerciseRunner.controller.arduino.agent.title":"Connect to Agent","exerciseRunner.controller.arduino.agent.instruction.install":"1. Install Elice arduino agent","exerciseRunner.controller.arduino.agent.instruction.install.detail":"Install 'elice-arduino-agent' program to connect to arduino.","exerciseRunner.controller.arduino.agent.instruction.install.window":"Download for Windows","exerciseRunner.controller.arduino.agent.instruction.install.mac":"Download for MacOS","exerciseRunner.controller.arduino.agent.instruction.connect":"2. Connect to arduino","exerciseRunner.controller.arduino.agent.instruction.connect.detail":"After the download is completed, it should be connected to exercise environment. If connection is unavailable, please follow the manual.\nClick the button below to read the manual.","exerciseRunner.controller.arduino.agent.instruction.connect.button":"Go to Manual","exerciseRunner.controller.arduino.agent.instruction.close":"Close","exerciseRunner.controller.buttonGroup.button.compile":"Compile","exerciseRunner.controller.buttonGroup.button.helpRequest":"Ask Helpy a question","exerciseRunner.controller.buttonGroup.button.run":"Run","exerciseRunner.controller.buttonGroup.button.stop":"Stop","exerciseRunner.controller.buttonGroup.button.submit":"Submit","exerciseRunner.controller.buttonGroup.button.submit.tooltip.noSubmit":"Exercise without submission","exerciseRunner.controller.buttonGroup.button.syncRequest":"Sync code","exerciseRunner.controller.buttonGroup.button.tooltip.aiHelp":"Ask any questions you may have.","exerciseRunner.controller.runningInfo.error.fetch":"An error occurred while fetching running info","exerciseRunner.controller.runningInfo.lastRunningDatetime":"Last running datetime","exerciseRunner.controller.runningInfo.lastSubmitDatetime":"Last submit datetime","exerciseRunner.controller.runningInfo.lastSubmitScore":"Last submit score","exerciseRunner.controller.runningInfo.score":"{score}","exerciseRunner.controller.statusMessage.closed":"Editor disconnected","exerciseRunner.controller.statusMessage.connecting":"Connecting to editor...","exerciseRunner.controller.statusMessage.open":"Editor connected","exerciseRunner.controller.timer.runningRemainingTime":"Remaining: {remainingTime}","exerciseRunner.submitErrorDialog.action.confirm":"OK","exerciseRunner.submitErrorDialog.action.reload":"Reload page","exerciseRunner.submitErrorDialog.body.commonError":"An error occurred while running the code.\nPlease refresh and try again.","exerciseRunner.submitErrorDialog.body.exceedSubmitGradeLimit":"You have exceeded the allowed number of lab submissions.","exerciseRunner.submitErrorDialog.body.expiredExerciseImage":"The exercise image has been updated.\nPlease refresh and try again.","exerciseRunner.submitErrorDialog.body.networkError":"An error occurred while running the code.\nPlease refresh and try again.\nIf the problem persists, please check the network status.","exerciseRunner.submitErrorDialog.body.notForSubmitGrade":"This exercise is not allowed to be submitted.","exerciseRunner.submitErrorDialog.body.notPreparedRoom":"The exercise room is being prepared.\nPlease try again later.","exerciseRunner.submitErrorDialog.body.roomIsBusy":"The exercise room is running.\nPlease wait a moment.","exerciseRunner.submitErrorDialog.body.unknown":"An error occurred while running the code.\nPlease try again later.","exerciseRunner.submitErrorDialog.title":"Unable to run the code"};
1
+ var messageEn = {"exerciseRunner.controller.arduino.connectionStatus.connected":"Connected to Arduino","exerciseRunner.controller.arduino.connectionStatus.connectedDevice":"Connected to {device}","exerciseRunner.controller.arduino.connectionStatus.connecting":"Connecting to Elice Arduino Agent","exerciseRunner.controller.arduino.connectionStatus.disconnected":"Disconnected from Elice Arduino Agent","exerciseRunner.controller.arduino.connectionStatus.noDevice":"No connected device","exerciseRunner.controller.arduino.connectionStatus.reconnecting":"Connecting to Elice Arduino Agent","exerciseRunner.controller.arduino.connectionStatus.uploading":"Uploading...","exerciseRunner.controller.arduino.agent.title":"Connect to Agent","exerciseRunner.controller.arduino.agent.instruction.install":"1. Install Elice arduino agent","exerciseRunner.controller.arduino.agent.instruction.install.detail":"Install 'elice-arduino-agent' program to connect to arduino.","exerciseRunner.controller.arduino.agent.instruction.install.window":"Download for Windows","exerciseRunner.controller.arduino.agent.instruction.install.mac":"Download for MacOS","exerciseRunner.controller.arduino.agent.instruction.connect":"2. Connect to arduino","exerciseRunner.controller.arduino.agent.instruction.connect.detail":"After the download is completed, it should be connected to exercise environment. If connection is unavailable, please follow the manual.\nClick the button below to read the manual.","exerciseRunner.controller.arduino.agent.instruction.connect.button":"Go to Manual","exerciseRunner.controller.arduino.agent.instruction.close":"Close","exerciseRunner.controller.buttonGroup.button.compile":"Compile","exerciseRunner.controller.buttonGroup.button.helpRequest":"Ask Helpy a question","exerciseRunner.controller.buttonGroup.button.run":"Run","exerciseRunner.controller.buttonGroup.button.stop":"Stop","exerciseRunner.controller.buttonGroup.button.submit":"Submit","exerciseRunner.controller.buttonGroup.button.submit.tooltip.noSubmit":"Exercise without submission","exerciseRunner.controller.buttonGroup.button.syncRequest":"Sync code","exerciseRunner.controller.buttonGroup.button.tooltip.aiHelp":"Ask any questions you may have.","exerciseRunner.controller.runningInfo.error.fetch":"An error occurred while fetching running info","exerciseRunner.controller.runningInfo.lastRunningDatetime":"Last running datetime","exerciseRunner.controller.runningInfo.lastSubmitDatetime":"Last submit datetime","exerciseRunner.controller.runningInfo.lastSubmitScore":"Last submit score","exerciseRunner.controller.runningInfo.score":"{score}","exerciseRunner.controller.statusMessage.closed":"Editor disconnected","exerciseRunner.controller.statusMessage.connecting":"Connecting to editor...","exerciseRunner.controller.statusMessage.open":"Editor connected","exerciseRunner.controller.timer.runningRemainingTime":"Remaining: {remainingTime}","exerciseRunner.submitErrorDialog.action.confirm":"OK","exerciseRunner.submitErrorDialog.action.reload":"Reload page","exerciseRunner.submitErrorDialog.body.commonError":"An error occurred while running the code.\nPlease refresh and try again.","exerciseRunner.submitErrorDialog.body.exceedSubmitGradeLimit":"You have exceeded the allowed number of lab submissions.","exerciseRunner.submitErrorDialog.body.expiredExerciseImage":"The exercise image has been updated.\nPlease refresh and try again.","exerciseRunner.submitErrorDialog.body.networkError":"An error occurred while running the code.\nPlease refresh and try again.\nIf the problem persists, please check the network status.","exerciseRunner.submitErrorDialog.body.notForSubmitGrade":"This exercise is not allowed to be submitted.","exerciseRunner.submitErrorDialog.body.notPreparedRoom":"The exercise room is being prepared.\nPlease try again later.","exerciseRunner.submitErrorDialog.body.roomIsBusy":"The exercise room is running.\nPlease wait a moment.","exerciseRunner.submitErrorDialog.body.unknown":"An error occurred while running the code.\nPlease try again later.","exerciseRunner.submitErrorDialog.title":"Unable to run the code"};
2
2
 
3
- export { phrasesEn as default };
3
+ export { messageEn as default };
@@ -0,0 +1,3 @@
1
+ export { default as messageEn } from './en.json';
2
+ export { default as messageKo } from './ko.json';
3
+ export { default as messageTh } from './th.json';
@@ -1,3 +1,3 @@
1
- var phrasesKo = {"exerciseRunner.controller.arduino.connectionStatus.connected":"아두이노 기기 연결됨","exerciseRunner.controller.arduino.connectionStatus.connectedDevice":"{device} 연결됨","exerciseRunner.controller.arduino.connectionStatus.connecting":"엘리스 아두이노 에이전트 연결 중","exerciseRunner.controller.arduino.connectionStatus.disconnected":"엘리스 아두이노 에이전트 연결 끊김","exerciseRunner.controller.arduino.connectionStatus.noDevice":"연결된 기기 없음","exerciseRunner.controller.arduino.connectionStatus.reconnecting":"엘리스 아두이노 에이전트 연결 중","exerciseRunner.controller.arduino.connectionStatus.uploading":"업로드 중","exerciseRunner.controller.arduino.agent.title":"에이전트 연결","exerciseRunner.controller.arduino.agent.instruction.install":"1. 엘리스 아두이노 에이전트 설치하기","exerciseRunner.controller.arduino.agent.instruction.install.detail":"아두이노와 연결하기 위해 ‘엘리스 아두이노 에이전트'를 설치해주세요.","exerciseRunner.controller.arduino.agent.instruction.install.window":"Windows 용 설치","exerciseRunner.controller.arduino.agent.instruction.install.mac":"MacOS 용 설치","exerciseRunner.controller.arduino.agent.instruction.connect":"2. 연결하기","exerciseRunner.controller.arduino.agent.instruction.connect.detail":"다운로드를 완료하였다면 실습 환경과 연결이 필요합니다. 연결되지 않을 경우 매뉴얼을 확인하세요.\n아래 버튼을 클릭해 매뉴얼을 확인하실 수 있습니다.","exerciseRunner.controller.arduino.agent.instruction.connect.button":"매뉴얼 이동","exerciseRunner.controller.arduino.agent.instruction.close":"닫기","exerciseRunner.controller.buttonGroup.button.compile":"컴파일","exerciseRunner.controller.buttonGroup.button.helpRequest":"헬피에게 질문하기","exerciseRunner.controller.buttonGroup.button.run":"실행","exerciseRunner.controller.buttonGroup.button.stop":"정지","exerciseRunner.controller.buttonGroup.button.submit":"제출","exerciseRunner.controller.buttonGroup.button.submit.tooltip.noSubmit":"실행만 가능한 실습입니다.","exerciseRunner.controller.buttonGroup.button.syncRequest":"코드 동기화","exerciseRunner.controller.buttonGroup.button.tooltip.aiHelp":"궁금한 사항을 질문해 보세요.","exerciseRunner.controller.runningInfo.error.fetch":"최종 실행 내역을 가져오는데 문제가 발생하였습니다.","exerciseRunner.controller.runningInfo.lastRunningDatetime":"최종 실행 시간","exerciseRunner.controller.runningInfo.lastSubmitDatetime":"최종 제출 시간","exerciseRunner.controller.runningInfo.lastSubmitScore":"최종 제출 점수","exerciseRunner.controller.runningInfo.score":"{score} 점","exerciseRunner.controller.statusMessage.closed":"에디터 연결 끊김","exerciseRunner.controller.statusMessage.connecting":"에디터 연결 중...","exerciseRunner.controller.statusMessage.open":"에디터 연결됨","exerciseRunner.controller.timer.runningRemainingTime":"실행 제한시간: {remainingTime}","exerciseRunner.submitErrorDialog.action.confirm":"확인","exerciseRunner.submitErrorDialog.action.reload":"새로고침","exerciseRunner.submitErrorDialog.body.commonError":"코드 실행 중 오류가 발생했습니다.\n새로고침 후 다시 시도해주세요.","exerciseRunner.submitErrorDialog.body.exceedSubmitGradeLimit":"실습 제출 허용 횟수를 초과했습니다.","exerciseRunner.submitErrorDialog.body.expiredExerciseImage":"실습환경이 업데이트 되었습니다.\n새로고침 후 다시 시도해주세요.","exerciseRunner.submitErrorDialog.body.networkError":"코드 실행 중 오류가 발생했습니다.\n새로고침 후 다시 시도해주세요.\n문제가 계속되면 네트워크 상태를 확인해주세요.","exerciseRunner.submitErrorDialog.body.notForSubmitGrade":"제출이 허용되지 않은 실습입니다.","exerciseRunner.submitErrorDialog.body.notPreparedRoom":"실습환경이 준비 중입니다.\n잠시 후 다시 시도해주세요.","exerciseRunner.submitErrorDialog.body.roomIsBusy":"실습을 실행하고 있습니다.\n잠시만 기다려주세요.","exerciseRunner.submitErrorDialog.body.unknown":"코드 실행 중 오류가 발생했습니다.\n잠시 후 다시 시도해주세요.","exerciseRunner.submitErrorDialog.title":"실습을 실행할 수 없습니다"};
1
+ var messageKo = {"exerciseRunner.controller.arduino.connectionStatus.connected":"아두이노 기기 연결됨","exerciseRunner.controller.arduino.connectionStatus.connectedDevice":"{device} 연결됨","exerciseRunner.controller.arduino.connectionStatus.connecting":"엘리스 아두이노 에이전트 연결 중","exerciseRunner.controller.arduino.connectionStatus.disconnected":"엘리스 아두이노 에이전트 연결 끊김","exerciseRunner.controller.arduino.connectionStatus.noDevice":"연결된 기기 없음","exerciseRunner.controller.arduino.connectionStatus.reconnecting":"엘리스 아두이노 에이전트 연결 중","exerciseRunner.controller.arduino.connectionStatus.uploading":"업로드 중","exerciseRunner.controller.arduino.agent.title":"에이전트 연결","exerciseRunner.controller.arduino.agent.instruction.install":"1. 엘리스 아두이노 에이전트 설치하기","exerciseRunner.controller.arduino.agent.instruction.install.detail":"아두이노와 연결하기 위해 ‘엘리스 아두이노 에이전트'를 설치해주세요.","exerciseRunner.controller.arduino.agent.instruction.install.window":"Windows 용 설치","exerciseRunner.controller.arduino.agent.instruction.install.mac":"MacOS 용 설치","exerciseRunner.controller.arduino.agent.instruction.connect":"2. 연결하기","exerciseRunner.controller.arduino.agent.instruction.connect.detail":"다운로드를 완료하였다면 실습 환경과 연결이 필요합니다. 연결되지 않을 경우 매뉴얼을 확인하세요.\n아래 버튼을 클릭해 매뉴얼을 확인하실 수 있습니다.","exerciseRunner.controller.arduino.agent.instruction.connect.button":"매뉴얼 이동","exerciseRunner.controller.arduino.agent.instruction.close":"닫기","exerciseRunner.controller.buttonGroup.button.compile":"컴파일","exerciseRunner.controller.buttonGroup.button.helpRequest":"헬피에게 질문하기","exerciseRunner.controller.buttonGroup.button.run":"실행","exerciseRunner.controller.buttonGroup.button.stop":"정지","exerciseRunner.controller.buttonGroup.button.submit":"제출","exerciseRunner.controller.buttonGroup.button.submit.tooltip.noSubmit":"실행만 가능한 실습입니다.","exerciseRunner.controller.buttonGroup.button.syncRequest":"코드 동기화","exerciseRunner.controller.buttonGroup.button.tooltip.aiHelp":"궁금한 사항을 질문해 보세요.","exerciseRunner.controller.runningInfo.error.fetch":"최종 실행 내역을 가져오는데 문제가 발생하였습니다.","exerciseRunner.controller.runningInfo.lastRunningDatetime":"최종 실행 시간","exerciseRunner.controller.runningInfo.lastSubmitDatetime":"최종 제출 시간","exerciseRunner.controller.runningInfo.lastSubmitScore":"최종 제출 점수","exerciseRunner.controller.runningInfo.score":"{score} 점","exerciseRunner.controller.statusMessage.closed":"에디터 연결 끊김","exerciseRunner.controller.statusMessage.connecting":"에디터 연결 중...","exerciseRunner.controller.statusMessage.open":"에디터 연결됨","exerciseRunner.controller.timer.runningRemainingTime":"실행 제한시간: {remainingTime}","exerciseRunner.submitErrorDialog.action.confirm":"확인","exerciseRunner.submitErrorDialog.action.reload":"새로고침","exerciseRunner.submitErrorDialog.body.commonError":"코드 실행 중 오류가 발생했습니다.\n새로고침 후 다시 시도해주세요.","exerciseRunner.submitErrorDialog.body.exceedSubmitGradeLimit":"실습 제출 허용 횟수를 초과했습니다.","exerciseRunner.submitErrorDialog.body.expiredExerciseImage":"실습환경이 업데이트 되었습니다.\n새로고침 후 다시 시도해주세요.","exerciseRunner.submitErrorDialog.body.networkError":"코드 실행 중 오류가 발생했습니다.\n새로고침 후 다시 시도해주세요.\n문제가 계속되면 네트워크 상태를 확인해주세요.","exerciseRunner.submitErrorDialog.body.notForSubmitGrade":"제출이 허용되지 않은 실습입니다.","exerciseRunner.submitErrorDialog.body.notPreparedRoom":"실습환경이 준비 중입니다.\n잠시 후 다시 시도해주세요.","exerciseRunner.submitErrorDialog.body.roomIsBusy":"실습을 실행하고 있습니다.\n잠시만 기다려주세요.","exerciseRunner.submitErrorDialog.body.unknown":"코드 실행 중 오류가 발생했습니다.\n잠시 후 다시 시도해주세요.","exerciseRunner.submitErrorDialog.title":"실습을 실행할 수 없습니다"};
2
2
 
3
- export { phrasesKo as default };
3
+ export { messageKo as default };
@@ -0,0 +1,3 @@
1
+ var messageTh = {"exerciseRunner.controller.arduino.connectionStatus.connected":"เอาดูอินอุโน กีย ยอน รยังล่นดึม","exerciseRunner.controller.arduino.connectionStatus.connectedDevice":"{device} เชื่อมต่อแล้ว","exerciseRunner.controller.arduino.connectionStatus.connecting":"เอลลิ스 อาร์ดูย์โน เชื่อมต่อเอเจนท์แอนต์ โThai้ ","exerciseRunner.controller.arduino.connectionStatus.disconnected":"เอลลิ스 อา두ีโน เอเจนท์ ตัดการเชื่อมต่อ","exerciseRunner.controller.arduino.connectionStatus.noDevice":"ไม่มีอุปกรณ์ที่เชื่อมต่อ","exerciseRunner.controller.arduino.connectionStatus.reconnecting":"เอลลิ스 อาร์ดูย์โน เชื่อมต่อเอเจนท์ อาร์ดูย์โน อยู่ ค่ะ","exerciseRunner.controller.arduino.connectionStatus.uploading":"กำลังอัปโหลด","exerciseRunner.controller.arduino.agent.title":"เอเจนต์เชื่อมต่อ","exerciseRunner.controller.arduino.agent.instruction.install":"1. ติดตั้งเอลิส อาดูยโน เอเจนต์","exerciseRunner.controller.arduino.agent.instruction.install.detail":"เพื่อเชื่อมต่อกับอา두ีโน่ โปรดติดตั้ง 'Elees Arduino Agent' ค่ะ.","exerciseRunner.controller.arduino.agent.instruction.install.window":"การติดตั้งสำหรับ Windows","exerciseRunner.controller.arduino.agent.instruction.install.mac":"การติดตั้งสำหรับ MacOS","exerciseRunner.controller.arduino.agent.instruction.connect":"2. เชื่อมต่อ","exerciseRunner.controller.arduino.agent.instruction.connect.detail":"หากดาวน์โหลดเสร็จสิ้นแล้วจะต้องเชื่อมต่อกับสภาพแวดล้อมการฝึกฝน หากไม่สามารถเชื่อมต่อได้ โปรดตรวจสอบคู่มือ\nคุณสามารถคลิกที่ปุ่มด้านล่างเพื่อดูคู่มือ ","exerciseRunner.controller.arduino.agent.instruction.connect.button":"ย้ายคู่มือ","exerciseRunner.controller.arduino.agent.instruction.close":"ปิด","exerciseRunner.controller.buttonGroup.button.compile":"คอมไพล์","exerciseRunner.controller.buttonGroup.button.helpRequest":"ถามเฮล퍼","exerciseRunner.controller.buttonGroup.button.run":"การดำเนินการ","exerciseRunner.controller.buttonGroup.button.stop":"หยุด","exerciseRunner.controller.buttonGroup.button.submit":"ส่ง","exerciseRunner.controller.buttonGroup.button.submit.tooltip.noSubmit":"โปรดทำการดำเนินการเท่านั้น ","exerciseRunner.controller.buttonGroup.button.syncRequest":"การซิงโครไนซ์โค้ด","exerciseRunner.controller.buttonGroup.button.tooltip.aiHelp":"โปรดถามคำถามที่คุณสงสัย.","exerciseRunner.controller.runningInfo.error.fetch":"พบปัญหาในการดึงประวัติการดำเนินงานสุดท้าย ","exerciseRunner.controller.runningInfo.lastRunningDatetime":"เวลาที่รันล่าสุด","exerciseRunner.controller.runningInfo.lastSubmitDatetime":"เวลาส่งงานสุดท้าย","exerciseRunner.controller.runningInfo.lastSubmitScore":"คะแนนสุดท้ายที่ส่งท้าย","exerciseRunner.controller.runningInfo.score":"{score} จุด","exerciseRunner.controller.statusMessage.closed":"ตัดการเชื่อมต่อเอดิเตอร์","exerciseRunner.controller.statusMessage.connecting":"การเชื่อมต่อเอดิเตอร์...","exerciseRunner.controller.statusMessage.open":"เอดิเตอร์เชื่อมต่อแล้ว","exerciseRunner.controller.timer.runningRemainingTime":"เวลาที่จำกัดในการเรียกใช้: {remainingTime}","exerciseRunner.submitErrorDialog.action.confirm":"ตรวจสอบ","exerciseRunner.submitErrorDialog.action.reload":"รีเฟรช","exerciseRunner.submitErrorDialog.body.commonError":"ระหว่างการทำงานของโค้ดเกิดข้อผิดพลาด\nโปรดลองอีกครั้งหลังจากรีเฟรชหน้าจอ","exerciseRunner.submitErrorDialog.body.exceedSubmitGradeLimit":"เลยจำนวนครั้งที่อนุญาตให้ส่งงานทดลองแล้ว ","exerciseRunner.submitErrorDialog.body.expiredExerciseImage":"สภาพแวดล้อมการฝึกปฏิบัติได้รับการอัปเดต\nโปรดรีเฟรชและลองอีกครั้งค่ะ.","exerciseRunner.submitErrorDialog.body.networkError":"โปรดลองใหม่หลังจากรีเฟรช\nหากปัญหายังคงอยู่ โปรดตรวจสอบสถานะเครือข่าย","exerciseRunner.submitErrorDialog.body.notForSubmitGrade":"การส่งงานไม่ได้รับอนุญาตในการฝึกปฏิบัตินี้ค่ะ.","exerciseRunner.submitErrorDialog.body.notPreparedRoom":"สมดุลสภาพแวดล้อมกำลังเตรียมอยู่\nโปรดลองใหม่อีกครั้งในภายหลัง","exerciseRunner.submitErrorDialog.body.roomIsBusy":"กำลังดำเนินการฝึกงาน\nโปรดรอสักครู่","exerciseRunner.submitErrorDialog.body.unknown":"มีข้อผิดพลาดเกิดขึ้นในขณะที่รหัสกำลังทำงาน\nโปรดลองอีกครั้งในภายหลัง","exerciseRunner.submitErrorDialog.title":"ไม่สามารถดำเนินการฝึกงานได้"};
2
+
3
+ export { messageTh as default };
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
+ import type { WithIntlComponentBuilderProps } from '@elice/intl';
2
3
  export interface ExerciseSubmitHistoryProps {
3
4
  onHide?: () => void;
4
5
  }
5
- declare const _default: React.VFC<ExerciseSubmitHistoryProps>;
6
+ declare const _default: React.ForwardRefExoticComponent<import("@elice/intl").IntlComponentExtraProps & Omit<WithIntlComponentBuilderProps<ExerciseSubmitHistoryProps>, keyof import("@elice/intl").IntlComponentExtraProps | "__intl"> & React.RefAttributes<any>>;
6
7
  export default _default;
@@ -1,7 +1,7 @@
1
1
  import React, { useState, useEffect } from 'react';
2
- import { useIntl } from 'react-intl';
3
2
  import { getOrgMaterialExerciseExerciseRunningList, getOrgMaterialExerciseExerciseRunningGet, getOrgMaterialExerciseExerciseImageExerciseFileGet, getOrgMaterialExerciseExerciseRoomUserFileGet, getOrgMaterialExerciseUsercodeGet } from '@elice/api-client';
4
3
  import { Flex, Box, Text, ResizableNext, Spinner } from '@elice/blocks';
4
+ import { IntlComponentBuilder, RawEliceIntlProvider } from '@elice/intl';
5
5
  import { enums } from '@elice/types';
6
6
  import dayjs from 'dayjs';
7
7
  import { camelizeKeys } from 'humps';
@@ -19,10 +19,10 @@ import { ExerciseContext } from '../context/context.js';
19
19
  import '../context/recoilTypes.js';
20
20
  import '../context/subjects.js';
21
21
  import '../context/ExerciseProvider.js';
22
- import { withExerciseIntlProvider } from '../context/ExerciseIntlProvider.js';
23
- import phrasesEn from './locales/en.json.js';
24
- import phrasesKo from './locales/ko.json.js';
25
22
  import ExerciseSubmitHistoryOutput from './ExerciseSubmitHistoryOutput.js';
23
+ import messageEn from './locales/en.json.js';
24
+ import messageKo from './locales/ko.json.js';
25
+ import messageTh from './locales/th.json.js';
26
26
  import { StyledExerciseVersionRunType, StyledExerciseVersionDatetime, StyledExerciseVersionScore } from '../../shared/exercise-version-list/ExerciseVersionListItem.styled.js';
27
27
  import { StyledFileTreeWrapper, StyledExerciseSubmitHistoryNotChanged, StyledExerciseSubmitHistoryEditorWrapper, StyledExerciseSubmitHistoryEditorLoadingScreen } from './ExerciseSubmitHistory.styled.js';
28
28
 
@@ -30,10 +30,10 @@ const AsyncFileTree = React.lazy(() => import('../../shared/file-tree/FileTree.j
30
30
  const AsyncFileTreeList = React.lazy(() => import('../../shared/file-tree/FileTreeList.js'));
31
31
  const AsyncFileViewer = React.lazy(() => import('../../shared/file-viewer/FileViewer.js'));
32
32
  const ExerciseSubmitHistory = ({
33
- onHide
33
+ onHide,
34
+ __intl
34
35
  }) => {
35
36
  const COUNT = 100;
36
- const intl = useIntl();
37
37
  const {
38
38
  materialExerciseId,
39
39
  exerciseRoomId,
@@ -205,9 +205,9 @@ const ExerciseSubmitHistory = ({
205
205
  }, React.createElement(StyledExerciseVersionRunType, {
206
206
  role: "gray3",
207
207
  size: "small"
208
- }, exerciseRunning.runType === enums.ExerciseRunType.Grade ? intl.formatMessage({
208
+ }, exerciseRunning.runType === enums.ExerciseRunType.Grade ? __intl.formatMessage({
209
209
  id: 'exerciseSubmitHistory.runType.grade'
210
- }) : intl.formatMessage({
210
+ }) : __intl.formatMessage({
211
211
  id: 'exerciseSubmitHistory.runType.run'
212
212
  })), React.createElement(StyledExerciseVersionDatetime, {
213
213
  role: "gray3",
@@ -224,7 +224,7 @@ const ExerciseSubmitHistory = ({
224
224
  width: "100%"
225
225
  }, React.createElement(Text, {
226
226
  role: "important"
227
- }, intl.formatMessage({
227
+ }, __intl.formatMessage({
228
228
  id: 'exerciseSubmitHistory.button.load.more'
229
229
  })))) : null);
230
230
  };
@@ -278,7 +278,7 @@ const ExerciseSubmitHistory = ({
278
278
  }, !isUserChanged && React.createElement(StyledExerciseSubmitHistoryNotChanged, null, React.createElement(Text, {
279
279
  role: "white",
280
280
  size: "tiny"
281
- }, intl.formatMessage({
281
+ }, __intl.formatMessage({
282
282
  id: 'exerciseSubmitHistory.notChanged'
283
283
  }))), React.createElement(StyledExerciseSubmitHistoryEditorWrapper, null, isFile ? React.createElement(React.Suspense, {
284
284
  fallback: null
@@ -299,8 +299,8 @@ const ExerciseSubmitHistory = ({
299
299
  //
300
300
  //
301
301
  //
302
- return React.createElement(MaterialModal, {
303
- title: intl.formatMessage({
302
+ return React.createElement(RawEliceIntlProvider, Object.assign({}, __intl), React.createElement(MaterialModal, {
303
+ title: __intl.formatMessage({
304
304
  id: 'exerciseSubmitHistory.title'
305
305
  }),
306
306
  onHide: onHide
@@ -317,11 +317,8 @@ const ExerciseSubmitHistory = ({
317
317
  column: true,
318
318
  height: "100%",
319
319
  overflow: "hidden"
320
- }, renderRunningContent(), renderRunningOutput())));
320
+ }, renderRunningContent(), renderRunningOutput()))));
321
321
  };
322
- var ExerciseSubmitHistory$1 = withExerciseIntlProvider(ExerciseSubmitHistory, {
323
- en: phrasesEn,
324
- ko: phrasesKo
325
- });
322
+ var ExerciseSubmitHistory$1 = new IntlComponentBuilder(ExerciseSubmitHistory).add('en', messageEn).add('ko', messageKo).add('th', messageTh).build();
326
323
 
327
324
  export { ExerciseSubmitHistory$1 as default };
@@ -1,3 +1,3 @@
1
- var phrasesEn = {"exerciseSubmitHistory.button.load.more":"Load more","exerciseSubmitHistory.notChanged":"A file with no modification history.","exerciseSubmitHistory.runType.grade":"Grade","exerciseSubmitHistory.runType.run":"Run","exerciseSubmitHistory.title":"Code revision history"};
1
+ var messageEn = {"exerciseSubmitHistory.button.load.more":"Load more","exerciseSubmitHistory.notChanged":"A file with no modification history.","exerciseSubmitHistory.runType.grade":"Grade","exerciseSubmitHistory.runType.run":"Run","exerciseSubmitHistory.title":"Code revision history"};
2
2
 
3
- export { phrasesEn as default };
3
+ export { messageEn as default };
@@ -0,0 +1,3 @@
1
+ export { default as messageEn } from './en.json';
2
+ export { default as messageKo } from './ko.json';
3
+ export { default as messageTh } from './th.json';
@@ -1,3 +1,3 @@
1
- var phrasesKo = {"exerciseSubmitHistory.button.load.more":"더 불러오기","exerciseSubmitHistory.notChanged":"수정 내역이 없는 파일입니다.","exerciseSubmitHistory.runType.grade":"제출","exerciseSubmitHistory.runType.run":"실행","exerciseSubmitHistory.title":"코드 수정 이력"};
1
+ var messageKo = {"exerciseSubmitHistory.button.load.more":"더 불러오기","exerciseSubmitHistory.notChanged":"수정 내역이 없는 파일입니다.","exerciseSubmitHistory.runType.grade":"제출","exerciseSubmitHistory.runType.run":"실행","exerciseSubmitHistory.title":"코드 수정 이력"};
2
2
 
3
- export { phrasesKo as default };
3
+ export { messageKo as default };
@@ -0,0 +1,3 @@
1
+ var messageTh = {"exerciseSubmitHistory.button.load.more":"โหลดเพิ่มเติม","exerciseSubmitHistory.notChanged":"ไม่มีปรับปรุงใดๆในไฟล์นี้ค่ะ.","exerciseSubmitHistory.runType.grade":"ส่ง","exerciseSubmitHistory.runType.run":"การดำเนินการ","exerciseSubmitHistory.title":"ประวัติการแก้ไขโค้ด"};
2
+
3
+ export { messageTh as default };
@@ -61,9 +61,5 @@ export interface FileTreeProps {
61
61
  style?: React.CSSProperties;
62
62
  locale?: string;
63
63
  }
64
- declare const _default: React.VFC<FileTreeProps> & {
65
- Toolbar: React.VFC<import("./FileTreeToolbar").FileTreeToolbarProps>;
66
- List: React.ForwardRefExoticComponent<import("./FileTreeList").FileTreeListProps & React.RefAttributes<HTMLDivElement>>;
67
- Config: React.ForwardRefExoticComponent<import("./FileTreeConfig").FileTreeConfigProps & React.RefAttributes<HTMLDivElement>>;
68
- };
64
+ declare const _default: React.ForwardRefExoticComponent<import("@elice/intl").IntlComponentExtraProps & Omit<FileTreeProps, keyof import("@elice/intl").IntlComponentExtraProps | "__intl"> & React.RefAttributes<any>>;
69
65
  export default _default;
@@ -1,14 +1,15 @@
1
1
  import React from 'react';
2
2
  import { Spinner } from '@elice/blocks';
3
3
  import { base } from '@elice/design-tokens';
4
- import { MaterialIntlProvider } from '@elice/material-shared-utils';
4
+ import { IntlComponentBuilder } from '@elice/intl';
5
5
  import styled from 'styled-components';
6
- import phrasesEn from './locales/en.json.js';
7
- import phrasesKo from './locales/ko.json.js';
8
6
  import { FileTreeProvider } from './context/FileTreeContext.js';
9
7
  import FileTreeConfig from './FileTreeConfig.js';
10
8
  import FileTreeList from './FileTreeList.js';
11
9
  import FileTreeToolbar from './FileTreeToolbar.js';
10
+ import messageEn from './locales/en.json.js';
11
+ import messageKo from './locales/ko.json.js';
12
+ import messageTh from './locales/th.json.js';
12
13
 
13
14
  const StyledFileTreeWrapper = styled.div.withConfig({
14
15
  componentId: "sc-6ext2i-0"
@@ -17,20 +18,18 @@ const StyledLoading = styled.div.withConfig({
17
18
  componentId: "sc-6ext2i-1"
18
19
  })(["position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background-color:", ";opacity:0.5;width:100%;height:100%;display:flex;align-items:center;justify-content:center;z-index:100;"], base.color.navy7);
19
20
  const FileTree = props => {
20
- return React.createElement(MaterialIntlProvider, {
21
- locale: props.locale,
22
- phrases: {
23
- en: phrasesEn,
24
- ko: phrasesKo
25
- }
26
- }, React.createElement(FileTreeProvider, Object.assign({}, props), React.createElement(StyledFileTreeWrapper, {
21
+ return React.createElement(FileTreeProvider, Object.assign({}, props), React.createElement(StyledFileTreeWrapper, {
27
22
  style: props.style
28
- }, props.loading ? React.createElement(StyledLoading, null, React.createElement(Spinner, null)) : null, props.children)));
23
+ }, props.loading ? React.createElement(StyledLoading, null, React.createElement(Spinner, null)) : null, props.children));
29
24
  };
30
- var FileTree$1 = Object.assign(FileTree, {
25
+ //
26
+ //
27
+ //
28
+ const FileTreeComponents = Object.assign(FileTree, {
31
29
  Toolbar: FileTreeToolbar,
32
30
  List: FileTreeList,
33
31
  Config: FileTreeConfig
34
32
  });
33
+ var FileTree$1 = new IntlComponentBuilder(FileTreeComponents).add('en', messageEn).add('ko', messageKo).add('th', messageTh).build();
35
34
 
36
35
  export { FileTree$1 as default };
@@ -53,6 +53,5 @@ const FileTreeConfig = forwardRef(({
53
53
  }
54
54
  }, mode === 'default' ? `Initial Open Files(${initialOpenFileListTemp.length})` : `Settings (${initialOpenFileListTemp.length})`));
55
55
  });
56
- var FileTreeConfig$1 = FileTreeConfig;
57
56
 
58
- export { FileTreeConfig$1 as default };
57
+ export { FileTreeConfig as default };
@@ -118,6 +118,5 @@ const FileTreeList = forwardRef(({
118
118
  indent: options === null || options === void 0 ? void 0 : options.indent
119
119
  }));
120
120
  });
121
- var FileTreeList$1 = FileTreeList;
122
121
 
123
- export { FileTreeList$1 as default };
122
+ export { FileTreeList as default };
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { useForm, Controller } from 'react-hook-form';
3
- import { useIntl } from 'react-intl';
4
3
  import { useClickAway } from 'react-use';
4
+ import { useRawEliceIntl } from '@elice/intl';
5
5
  import { getParentPath } from './utils/fileTreeGenerator.js';
6
6
  import { useFileTreeDispatch } from './context/FileTreeContext.js';
7
7
  import { StyledInputForm, StyledInput } from './FileTreeListItemContentInput.styled.js';
@@ -21,7 +21,7 @@ const FileTreeListItemContentInput = ({
21
21
  currentDirTitleList,
22
22
  newInputType
23
23
  }) => {
24
- const intl = useIntl();
24
+ const intl = useRawEliceIntl();
25
25
  const targetPath = getParentPath(currentPath);
26
26
  const {
27
27
  dispatch,
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { useIntl, FormattedMessage } from 'react-intl';
3
2
  import { Menu, Dialog, List } from '@elice/blocks';
3
+ import { useRawEliceIntl } from '@elice/intl';
4
4
  import { useFileTreeState, useFileTreeDispatch } from './context/FileTreeContext.js';
5
5
 
6
6
  const FileTreeListItemContentMenu = ({
@@ -8,7 +8,7 @@ const FileTreeListItemContentMenu = ({
8
8
  anchorEl,
9
9
  onClose
10
10
  }) => {
11
- const intl = useIntl();
11
+ const intl = useRawEliceIntl();
12
12
  const {
13
13
  allowToggleHidden,
14
14
  allowToggleReadonly
@@ -118,8 +118,8 @@ const FileTreeListItemContentMenu = ({
118
118
  }
119
119
  return React.createElement(List.Item, {
120
120
  onClick: handleReadOnlySet
121
- }, React.createElement(List.ItemText, null, React.createElement(FormattedMessage, {
122
- id: "fileTree.list.item.content.menu.item.readOnlySet"
121
+ }, React.createElement(List.ItemText, null, intl.formatMessage({
122
+ id: 'fileTree.list.item.content.menu.item.readOnlySet'
123
123
  })));
124
124
  };
125
125
  /**
@@ -131,8 +131,8 @@ const FileTreeListItemContentMenu = ({
131
131
  }
132
132
  return React.createElement(List.Item, {
133
133
  onClick: handleReadOnlyUnset
134
- }, React.createElement(List.ItemText, null, React.createElement(FormattedMessage, {
135
- id: "fileTree.list.item.content.menu.item.readOnlyUnset"
134
+ }, React.createElement(List.ItemText, null, intl.formatMessage({
135
+ id: 'fileTree.list.item.content.menu.item.readOnlyUnset'
136
136
  })));
137
137
  };
138
138
  /**
@@ -144,8 +144,8 @@ const FileTreeListItemContentMenu = ({
144
144
  }
145
145
  return React.createElement(List.Item, {
146
146
  onClick: handleHiddenSet
147
- }, React.createElement(List.ItemText, null, React.createElement(FormattedMessage, {
148
- id: "fileTree.list.item.content.menu.item.hiddenSet"
147
+ }, React.createElement(List.ItemText, null, intl.formatMessage({
148
+ id: 'fileTree.list.item.content.menu.item.hiddenSet'
149
149
  })));
150
150
  };
151
151
  /**
@@ -157,8 +157,8 @@ const FileTreeListItemContentMenu = ({
157
157
  }
158
158
  return React.createElement(List.Item, {
159
159
  onClick: handleHiddenUnset
160
- }, React.createElement(List.ItemText, null, React.createElement(FormattedMessage, {
161
- id: "fileTree.list.item.content.menu.item.hiddenUnset"
160
+ }, React.createElement(List.ItemText, null, intl.formatMessage({
161
+ id: 'fileTree.list.item.content.menu.item.hiddenUnset'
162
162
  })));
163
163
  };
164
164
  /**
@@ -170,8 +170,8 @@ const FileTreeListItemContentMenu = ({
170
170
  }
171
171
  return React.createElement(List.Item, {
172
172
  onClick: handleNewFile
173
- }, React.createElement(List.ItemText, null, React.createElement(FormattedMessage, {
174
- id: "fileTree.list.item.content.menu.item.newFile"
173
+ }, React.createElement(List.ItemText, null, intl.formatMessage({
174
+ id: 'fileTree.list.item.content.menu.item.newFile'
175
175
  })));
176
176
  };
177
177
  /**
@@ -183,8 +183,8 @@ const FileTreeListItemContentMenu = ({
183
183
  }
184
184
  return React.createElement(List.Item, {
185
185
  onClick: handleNewDirectory
186
- }, React.createElement(List.ItemText, null, React.createElement(FormattedMessage, {
187
- id: "fileTree.list.item.content.menu.item.newDirectory"
186
+ }, React.createElement(List.ItemText, null, intl.formatMessage({
187
+ id: 'fileTree.list.item.content.menu.item.newDirectory'
188
188
  })));
189
189
  };
190
190
  /**
@@ -194,8 +194,8 @@ const FileTreeListItemContentMenu = ({
194
194
  return React.createElement(List.Item, {
195
195
  disabled: !node.isRemovable,
196
196
  onClick: handleRename
197
- }, React.createElement(List.ItemText, null, React.createElement(FormattedMessage, {
198
- id: "fileTree.list.item.content.menu.item.rename"
197
+ }, React.createElement(List.ItemText, null, intl.formatMessage({
198
+ id: 'fileTree.list.item.content.menu.item.rename'
199
199
  })));
200
200
  };
201
201
  /**
@@ -205,8 +205,8 @@ const FileTreeListItemContentMenu = ({
205
205
  return React.createElement(List.Item, {
206
206
  disabled: !node.isRemovable,
207
207
  onClick: () => setDeleteDialogOpen(true)
208
- }, React.createElement(List.ItemText, null, React.createElement(FormattedMessage, {
209
- id: "fileTree.list.item.content.menu.item.delete"
208
+ }, React.createElement(List.ItemText, null, intl.formatMessage({
209
+ id: 'fileTree.list.item.content.menu.item.delete'
210
210
  })));
211
211
  };
212
212
  /**
@@ -242,12 +242,12 @@ const FileTreeListItemContentMenu = ({
242
242
  onHide: () => setDeleteDialogOpen(false)
243
243
  }, React.createElement(Dialog.CloseButton, {
244
244
  onClick: () => setDeleteDialogOpen(false)
245
- }, React.createElement(FormattedMessage, {
246
- id: "fileTree.list.item.content.menu.deleteConfirmDialog.cancel"
245
+ }, intl.formatMessage({
246
+ id: 'fileTree.list.item.content.menu.deleteConfirmDialog.cancel'
247
247
  })), React.createElement(Dialog.ActionButton, {
248
248
  onClick: handleDelete
249
- }, React.createElement(FormattedMessage, {
250
- id: "fileTree.list.item.content.menu.deleteConfirmDialog.confirm"
249
+ }, intl.formatMessage({
250
+ id: 'fileTree.list.item.content.menu.deleteConfirmDialog.confirm'
251
251
  })));
252
252
  };
253
253
  //
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { useIntl } from 'react-intl';
3
2
  import { eilFileAdd, eilFolderAdd, eilUpload } from '@elice/icons';
3
+ import { useRawEliceIntl } from '@elice/intl';
4
4
  import ExerciseMenuButton from '../exercise-menu-button/ExerciseMenuButton.js';
5
5
  import { useFileTreeState, useFileTreeDispatch } from './context/FileTreeContext.js';
6
6
  import { validateFilesSize } from './utils/fileTreeFiles.js';
@@ -10,7 +10,7 @@ import { StyledFileTreeToolbar } from './FileTreeToolbar.styled.js';
10
10
  const FileTreeToolbar = ({
11
11
  className
12
12
  }) => {
13
- const intl = useIntl();
13
+ const intl = useRawEliceIntl();
14
14
  const {
15
15
  activePath,
16
16
  fileTree,
@@ -107,6 +107,5 @@ const FileTreeToolbar = ({
107
107
  className: className
108
108
  }, renderFileAddButton(), renderFolderAddButton(), renderFileUploadButton());
109
109
  };
110
- var FileTreeToolbar$1 = FileTreeToolbar;
111
110
 
112
- export { FileTreeToolbar$1 as default };
111
+ export { FileTreeToolbar as default };
@@ -1,3 +1,3 @@
1
- var phrasesEn = {"fileTree.list.item.content.input.validation.error.filename.dot":"The filename can't be \".\" or \"..\".","fileTree.list.item.content.input.validation.error.filename.dotElice":"The filename can't be \".elice\".","fileTree.list.item.content.input.validation.error.filename.duplicated":"The file name is already used.","fileTree.list.item.content.input.validation.error.filename.slash":"The filename can't include slash or backslash.","fileTree.list.item.content.input.validation.error.maxLength":"The filename can't be more than {maxLength} characters long.","fileTree.list.item.content.input.validation.error.required":"Please enter a filename.","fileTree.list.item.content.menu.deleteConfirmDialog.body":"Are you sure you want to delete \"{title}\"?","fileTree.list.item.content.menu.deleteConfirmDialog.cancel":"Cancel","fileTree.list.item.content.menu.deleteConfirmDialog.confirm":"Delete","fileTree.list.item.content.menu.deleteConfirmDialog.title":"Confirm Delete","fileTree.list.item.content.menu.item.delete":"Delete","fileTree.list.item.content.menu.item.hiddenSet":"Set Hidden","fileTree.list.item.content.menu.item.hiddenUnset":"Unset Hidden","fileTree.list.item.content.menu.item.newDirectory":"New Directory","fileTree.list.item.content.menu.item.newFile":"New File","fileTree.list.item.content.menu.item.readOnlySet":"Set Read-only","fileTree.list.item.content.menu.item.readOnlyUnset":"Unset Read-only","fileTree.list.item.content.menu.item.rename":"Rename","fileTree.toolbar.newDirectory":"New Directory","fileTree.toolbar.newFile":"New File","fileTree.toolbar.upload":"Upload File"};
1
+ var messageEn = {"fileTree.list.item.content.input.validation.error.filename.dot":"The filename can't be \".\" or \"..\".","fileTree.list.item.content.input.validation.error.filename.dotElice":"The filename can't be \".elice\".","fileTree.list.item.content.input.validation.error.filename.duplicated":"The file name is already used.","fileTree.list.item.content.input.validation.error.filename.slash":"The filename can't include slash or backslash.","fileTree.list.item.content.input.validation.error.maxLength":"The filename can't be more than {maxLength} characters long.","fileTree.list.item.content.input.validation.error.required":"Please enter a filename.","fileTree.list.item.content.menu.deleteConfirmDialog.body":"Are you sure you want to delete \"{title}\"?","fileTree.list.item.content.menu.deleteConfirmDialog.cancel":"Cancel","fileTree.list.item.content.menu.deleteConfirmDialog.confirm":"Delete","fileTree.list.item.content.menu.deleteConfirmDialog.title":"Confirm Delete","fileTree.list.item.content.menu.item.delete":"Delete","fileTree.list.item.content.menu.item.hiddenSet":"Set Hidden","fileTree.list.item.content.menu.item.hiddenUnset":"Unset Hidden","fileTree.list.item.content.menu.item.newDirectory":"New Directory","fileTree.list.item.content.menu.item.newFile":"New File","fileTree.list.item.content.menu.item.readOnlySet":"Set Read-only","fileTree.list.item.content.menu.item.readOnlyUnset":"Unset Read-only","fileTree.list.item.content.menu.item.rename":"Rename","fileTree.toolbar.newDirectory":"New Directory","fileTree.toolbar.newFile":"New File","fileTree.toolbar.upload":"Upload File"};
2
2
 
3
- export { phrasesEn as default };
3
+ export { messageEn as default };
@@ -0,0 +1,3 @@
1
+ export { default as messageEn } from './en.json';
2
+ export { default as messageKo } from './ko.json';
3
+ export { default as messageTh } from './th.json';
@@ -1,3 +1,3 @@
1
- var phrasesKo = {"fileTree.list.item.content.input.validation.error.filename.dot":"파일 이름은 \".\" 혹은 \"..\"을 사용할 수 없습니다.","fileTree.list.item.content.input.validation.error.filename.dotElice":"파일 이름은 \".elice\"를 사용할 수 없습니다.","fileTree.list.item.content.input.validation.error.filename.duplicated":"이미 존재하는 파일 이름입니다.","fileTree.list.item.content.input.validation.error.filename.slash":"파일 이름은 슬래시나 역슬래시를 포함할 수 없습니다.","fileTree.list.item.content.input.validation.error.maxLength":"파일 이름은 {maxLength}자를 초과할 수 없습니다..","fileTree.list.item.content.input.validation.error.required":"파일 이름을 입력해주세요.","fileTree.list.item.content.menu.deleteConfirmDialog.body":"\"{title}\" 파일을 삭제하시겠습니까?","fileTree.list.item.content.menu.deleteConfirmDialog.cancel":"취소","fileTree.list.item.content.menu.deleteConfirmDialog.confirm":"확인","fileTree.list.item.content.menu.deleteConfirmDialog.title":"파일 삭제","fileTree.list.item.content.menu.item.delete":"삭제","fileTree.list.item.content.menu.item.hiddenSet":"파일 숨기기","fileTree.list.item.content.menu.item.hiddenUnset":"파일 보이기","fileTree.list.item.content.menu.item.newDirectory":"새 폴더","fileTree.list.item.content.menu.item.newFile":"새 파일","fileTree.list.item.content.menu.item.readOnlySet":"읽기 전용","fileTree.list.item.content.menu.item.readOnlyUnset":"읽기 전용 해제","fileTree.list.item.content.menu.item.rename":"이름 바꾸기","fileTree.toolbar.newDirectory":"새 폴더 추가","fileTree.toolbar.newFile":"새 파일 추가","fileTree.toolbar.upload":"파일 업로드"};
1
+ var messageKo = {"fileTree.list.item.content.input.validation.error.filename.dot":"파일 이름은 \".\" 혹은 \"..\"을 사용할 수 없습니다.","fileTree.list.item.content.input.validation.error.filename.dotElice":"파일 이름은 \".elice\"를 사용할 수 없습니다.","fileTree.list.item.content.input.validation.error.filename.duplicated":"이미 존재하는 파일 이름입니다.","fileTree.list.item.content.input.validation.error.filename.slash":"파일 이름은 슬래시나 역슬래시를 포함할 수 없습니다.","fileTree.list.item.content.input.validation.error.maxLength":"파일 이름은 {maxLength}자를 초과할 수 없습니다..","fileTree.list.item.content.input.validation.error.required":"파일 이름을 입력해주세요.","fileTree.list.item.content.menu.deleteConfirmDialog.body":"\"{title}\" 파일을 삭제하시겠습니까?","fileTree.list.item.content.menu.deleteConfirmDialog.cancel":"취소","fileTree.list.item.content.menu.deleteConfirmDialog.confirm":"확인","fileTree.list.item.content.menu.deleteConfirmDialog.title":"파일 삭제","fileTree.list.item.content.menu.item.delete":"삭제","fileTree.list.item.content.menu.item.hiddenSet":"파일 숨기기","fileTree.list.item.content.menu.item.hiddenUnset":"파일 보이기","fileTree.list.item.content.menu.item.newDirectory":"새 폴더","fileTree.list.item.content.menu.item.newFile":"새 파일","fileTree.list.item.content.menu.item.readOnlySet":"읽기 전용","fileTree.list.item.content.menu.item.readOnlyUnset":"읽기 전용 해제","fileTree.list.item.content.menu.item.rename":"이름 바꾸기","fileTree.toolbar.newDirectory":"새 폴더 추가","fileTree.toolbar.newFile":"새 파일 추가","fileTree.toolbar.upload":"파일 업로드"};
2
2
 
3
- export { phrasesKo as default };
3
+ export { messageKo as default };
@@ -0,0 +1,3 @@
1
+ var messageTh = {"fileTree.list.item.content.input.validation.error.filename.dot":"ชื่อไฟล์ไม่สามารถใช้ \".\" หรือ \"..\" ได้ครับ.","fileTree.list.item.content.input.validation.error.filename.dotElice":"ชื่อไฟล์ไม่สามารถใช้ \".elice\" ได้ค่ะ.","fileTree.list.item.content.input.validation.error.filename.duplicated":"มีชื่อไฟล์นี้อยู่แล้วค่ะ.","fileTree.list.item.content.input.validation.error.filename.slash":"ชื่อไฟล์ไม่สามารถมีเครื่องหมายสแลชหรือสแลชย้อนได้","fileTree.list.item.content.input.validation.error.maxLength":"ชื่อไฟล์คือ {maxLength}ไม่สามารถเกินไปได้.","fileTree.list.item.content.input.validation.error.required":"โปรดป้อนชื่อไฟล์.","fileTree.list.item.content.menu.deleteConfirmDialog.body":"\"{title}\"คุณต้องการลบไฟล์หรือไม่?\"","fileTree.list.item.content.menu.deleteConfirmDialog.cancel":"ยกเลิก","fileTree.list.item.content.menu.deleteConfirmDialog.confirm":"ตรวจสอบ","fileTree.list.item.content.menu.deleteConfirmDialog.title":"ลบไฟล์","fileTree.list.item.content.menu.item.delete":"ลบ","fileTree.list.item.content.menu.item.hiddenSet":"ซ่อนไฟล์","fileTree.list.item.content.menu.item.hiddenUnset":"แสดงไฟล์","fileTree.list.item.content.menu.item.newDirectory":"โฟลเดอร์ใหม่","fileTree.list.item.content.menu.item.newFile":"ไฟล์ใหม่","fileTree.list.item.content.menu.item.readOnlySet":"โหมดอ่านอย่างเดียว","fileTree.list.item.content.menu.item.readOnlyUnset":"ปลดล็อกอ่านเท่านั้น","fileTree.list.item.content.menu.item.rename":"เปลี่ยนชื่อ","fileTree.toolbar.newDirectory":"เพิ่มโฟลเดอร์ใหม่","fileTree.toolbar.newFile":"เพิ่มไฟล์ใหม่","fileTree.toolbar.upload":"อัปโหลดไฟล์"};
2
+
3
+ export { messageTh as default };
@@ -1,8 +1,9 @@
1
1
  import React from 'react';
2
+ import type { WithIntlComponentBuilderProps } from '@elice/intl';
2
3
  export interface FileViewerBaseProps {
3
4
  filename: string;
4
5
  fileurl?: null | string;
5
6
  locale?: string;
6
7
  }
7
- declare const _default: (props: FileViewerBaseProps) => React.JSX.Element;
8
+ declare const _default: React.ForwardRefExoticComponent<import("@elice/intl").IntlComponentExtraProps & Omit<WithIntlComponentBuilderProps<FileViewerBaseProps>, keyof import("@elice/intl").IntlComponentExtraProps | "__intl"> & React.RefAttributes<any>>;
8
9
  export default _default;
@@ -1,9 +1,8 @@
1
1
  import React, { useState } from 'react';
2
- import { FormattedMessage } from 'react-intl';
3
2
  import { Flex, Hspace, Icon } from '@elice/blocks';
4
3
  import { base } from '@elice/design-tokens';
5
4
  import { eilDownload } from '@elice/icons';
6
- import { MaterialIntlProvider } from '@elice/material-shared-utils';
5
+ import { IntlComponentBuilder } from '@elice/intl';
7
6
  import FileSaver from 'file-saver';
8
7
  import mime from 'mime';
9
8
  import styled from 'styled-components';
@@ -29,7 +28,8 @@ const StyledReadonlyBanner = styled.div.withConfig({
29
28
  const FileViewer = ({
30
29
  filename,
31
30
  fileurl,
32
- locale
31
+ locale,
32
+ __intl
33
33
  }) => {
34
34
  const [showInTextViewer, setShowInTextViewer] = useState(false);
35
35
  /**
@@ -87,8 +87,8 @@ const FileViewer = ({
87
87
  if (!fileurl) {
88
88
  return null;
89
89
  }
90
- return React.createElement(StyledReadonlyBanner, null, React.createElement(FormattedMessage, {
91
- id: "fileViewer.readOnlyBanner.content"
90
+ return React.createElement(StyledReadonlyBanner, null, __intl.formatMessage({
91
+ id: 'fileViewer.readOnlyBanner.content'
92
92
  }), React.createElement(Hspace, {
93
93
  width: 0.25
94
94
  }), React.createElement("a", {
@@ -97,8 +97,8 @@ const FileViewer = ({
97
97
  }, React.createElement(Icon, {
98
98
  icon: eilDownload,
99
99
  size: "tiny"
100
- }), React.createElement(FormattedMessage, {
101
- id: "fileViewer.readOnlyBanner.downloadButton"
100
+ }), __intl.formatMessage({
101
+ id: 'fileViewer.readOnlyBanner.downloadButton'
102
102
  })));
103
103
  };
104
104
  /**
@@ -138,14 +138,6 @@ const FileViewer = ({
138
138
  //
139
139
  //
140
140
  //
141
- var FileViewer$1 = (props => {
142
- return React.createElement(MaterialIntlProvider, {
143
- locale: props.locale,
144
- phrases: {
145
- en: phrasesEn,
146
- ko: phrasesKo
147
- }
148
- }, React.createElement(FileViewer, Object.assign({}, props)));
149
- });
141
+ var FileViewer$1 = new IntlComponentBuilder(FileViewer).add('en', phrasesEn).add('ko', phrasesKo).add('th', phrasesEn).build();
150
142
 
151
143
  export { FileViewer$1 as default };
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
- import { FormattedMessage } from 'react-intl';
3
2
  import { Hr, Flex, Text, IconButton, Hspace, AntSwitch } from '@elice/blocks';
4
3
  import { base } from '@elice/design-tokens';
5
4
  import { eilArrowLeftwardsDouble, eilArrowLeftwardsSingle, eilArrowRightwardsSingle, eilArrowRightwardsDouble } from '@elice/icons';
5
+ import { useRawEliceIntl } from '@elice/intl';
6
6
  import styled from 'styled-components';
7
7
  import ExerciseFileShimmer from '../exercise-shimmer/ExerciseFileShimmer.js';
8
8
  import '../exercise-shimmer/ExerciseFileTabsShimmer.js';
@@ -57,6 +57,7 @@ const StyledViewerFooterHr = styled(Hr).withConfig({
57
57
  const FileViewerCsv = ({
58
58
  fileurl
59
59
  }) => {
60
+ const intl = useRawEliceIntl();
60
61
  const [csv, setCsv] = React.useState('');
61
62
  const [csvHeader, setCsvHeader] = React.useState(null);
62
63
  const [csvRecords, setCsvRecords] = React.useState([]);
@@ -211,8 +212,8 @@ const FileViewerCsv = ({
211
212
  }, React.createElement(Text, {
212
213
  role: "gray1",
213
214
  size: "small"
214
- }, React.createElement(FormattedMessage, {
215
- id: "\uD5E4\uB354 \uC0AC\uC6A9"
215
+ }, intl.formatMessage({
216
+ id: '헤더 사용'
216
217
  })), React.createElement(Hspace, {
217
218
  width: 0.5
218
219
  }), React.createElement(AntSwitch, {
@@ -227,8 +228,8 @@ const FileViewerCsv = ({
227
228
  }, React.createElement(Text, {
228
229
  role: "gray1",
229
230
  size: "small"
230
- }, React.createElement(FormattedMessage, {
231
- id: "\uAD6C\uBD84\uC790:"
231
+ }, intl.formatMessage({
232
+ id: '구분자:'
232
233
  })), React.createElement(Hspace, {
233
234
  width: 0.5
234
235
  }), React.createElement(StyledViewerFooterSelect, {
@@ -248,8 +249,8 @@ const FileViewerCsv = ({
248
249
  }, React.createElement(Text, {
249
250
  role: "gray1",
250
251
  size: "small"
251
- }, React.createElement(FormattedMessage, {
252
- id: "\uD398\uC774\uC9C0\uB2F9 \uD589:"
252
+ }, intl.formatMessage({
253
+ id: '페이지당 행:'
253
254
  })), React.createElement(Hspace, {
254
255
  width: 0.5
255
256
  }), React.createElement(StyledViewerFooterSelect, {