@operato/data-grist 8.0.0 → 9.0.0-beta.10

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 (309) hide show
  1. package/CHANGELOG.md +223 -30
  2. package/dist/index.d.ts +1 -1
  3. package/dist/index.js +1 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/accumulator/accumulator.d.ts +1 -1
  6. package/dist/src/accumulator/accumulator.js.map +1 -1
  7. package/dist/src/configure/column-builder.d.ts +1 -1
  8. package/dist/src/configure/column-builder.js +5 -5
  9. package/dist/src/configure/column-builder.js.map +1 -1
  10. package/dist/src/configure/config-builder.d.ts +1 -1
  11. package/dist/src/configure/config-builder.js +6 -6
  12. package/dist/src/configure/config-builder.js.map +1 -1
  13. package/dist/src/configure/filters-option-builder.d.ts +1 -1
  14. package/dist/src/configure/filters-option-builder.js.map +1 -1
  15. package/dist/src/configure/imex-option-builder.d.ts +1 -1
  16. package/dist/src/configure/imex-option-builder.js.map +1 -1
  17. package/dist/src/configure/list-option-builder.d.ts +1 -1
  18. package/dist/src/configure/list-option-builder.js.map +1 -1
  19. package/dist/src/configure/rows-option-builder.d.ts +1 -1
  20. package/dist/src/configure/rows-option-builder.js +2 -2
  21. package/dist/src/configure/rows-option-builder.js.map +1 -1
  22. package/dist/src/configure/tree-option-builder.d.ts +1 -1
  23. package/dist/src/configure/tree-option-builder.js.map +1 -1
  24. package/dist/src/configure/zero-config.d.ts +1 -1
  25. package/dist/src/configure/zero-config.js.map +1 -1
  26. package/dist/src/data-card/data-card-field.d.ts +1 -1
  27. package/dist/src/data-card/data-card-field.js +39 -7
  28. package/dist/src/data-card/data-card-field.js.map +1 -1
  29. package/dist/src/data-card/data-card-gutter-menu.js +46 -2
  30. package/dist/src/data-card/data-card-gutter-menu.js.map +1 -1
  31. package/dist/src/data-card/data-card-gutter.d.ts +1 -1
  32. package/dist/src/data-card/data-card-gutter.js +39 -7
  33. package/dist/src/data-card/data-card-gutter.js.map +1 -1
  34. package/dist/src/data-card/data-card.d.ts +3 -3
  35. package/dist/src/data-card/data-card.js +47 -11
  36. package/dist/src/data-card/data-card.js.map +1 -1
  37. package/dist/src/data-card/event-handlers/record-card-click-handler.d.ts +1 -1
  38. package/dist/src/data-card/event-handlers/record-card-click-handler.js.map +1 -1
  39. package/dist/src/data-card/event-handlers/record-card-dblclick-handler.d.ts +1 -1
  40. package/dist/src/data-card/event-handlers/record-card-dblclick-handler.js.map +1 -1
  41. package/dist/src/data-card/record-card.d.ts +5 -5
  42. package/dist/src/data-card/record-card.js +80 -20
  43. package/dist/src/data-card/record-card.js.map +1 -1
  44. package/dist/src/data-consumer.d.ts +1 -1
  45. package/dist/src/data-consumer.js.map +1 -1
  46. package/dist/src/data-grid/data-grid-accum-field.d.ts +1 -1
  47. package/dist/src/data-grid/data-grid-accum-field.js +63 -12
  48. package/dist/src/data-grid/data-grid-accum-field.js.map +1 -1
  49. package/dist/src/data-grid/data-grid-body.d.ts +4 -4
  50. package/dist/src/data-grid/data-grid-body.js +140 -38
  51. package/dist/src/data-grid/data-grid-body.js.map +1 -1
  52. package/dist/src/data-grid/data-grid-field.d.ts +1 -1
  53. package/dist/src/data-grid/data-grid-field.js +112 -17
  54. package/dist/src/data-grid/data-grid-field.js.map +1 -1
  55. package/dist/src/data-grid/data-grid-footer.d.ts +1 -1
  56. package/dist/src/data-grid/data-grid-footer.js +23 -6
  57. package/dist/src/data-grid/data-grid-footer.js.map +1 -1
  58. package/dist/src/data-grid/data-grid-header.d.ts +2 -2
  59. package/dist/src/data-grid/data-grid-header.js +86 -25
  60. package/dist/src/data-grid/data-grid-header.js.map +1 -1
  61. package/dist/src/data-grid/data-grid.d.ts +7 -7
  62. package/dist/src/data-grid/data-grid.js +52 -12
  63. package/dist/src/data-grid/data-grid.js.map +1 -1
  64. package/dist/src/data-grid/event-handlers/data-grid-body-click-handler.d.ts +1 -1
  65. package/dist/src/data-grid/event-handlers/data-grid-body-click-handler.js.map +1 -1
  66. package/dist/src/data-grid/event-handlers/data-grid-body-contextmenu-handler.d.ts +1 -1
  67. package/dist/src/data-grid/event-handlers/data-grid-body-contextmenu-handler.js.map +1 -1
  68. package/dist/src/data-grid/event-handlers/data-grid-body-dblclick-handler.d.ts +1 -1
  69. package/dist/src/data-grid/event-handlers/data-grid-body-dblclick-handler.js.map +1 -1
  70. package/dist/src/data-grid/event-handlers/data-grid-body-focus-change-handler.d.ts +1 -1
  71. package/dist/src/data-grid/event-handlers/data-grid-body-focus-change-handler.js.map +1 -1
  72. package/dist/src/data-grid/event-handlers/data-grid-body-keydown-handler.d.ts +1 -1
  73. package/dist/src/data-grid/event-handlers/data-grid-body-keydown-handler.js.map +1 -1
  74. package/dist/src/data-grist.d.ts +8 -8
  75. package/dist/src/data-grist.js +308 -91
  76. package/dist/src/data-grist.js.map +1 -1
  77. package/dist/src/data-list/data-list-field.d.ts +1 -1
  78. package/dist/src/data-list/data-list-field.js +39 -7
  79. package/dist/src/data-list/data-list-field.js.map +1 -1
  80. package/dist/src/data-list/data-list-gutter.d.ts +1 -1
  81. package/dist/src/data-list/data-list-gutter.js +39 -7
  82. package/dist/src/data-list/data-list-gutter.js.map +1 -1
  83. package/dist/src/data-list/data-list.d.ts +2 -2
  84. package/dist/src/data-list/data-list.js +46 -10
  85. package/dist/src/data-list/data-list.js.map +1 -1
  86. package/dist/src/data-list/event-handlers/record-partial-click-handler.d.ts +1 -1
  87. package/dist/src/data-list/event-handlers/record-partial-click-handler.js.map +1 -1
  88. package/dist/src/data-list/event-handlers/record-partial-dblclick-handler.d.ts +1 -1
  89. package/dist/src/data-list/event-handlers/record-partial-dblclick-handler.js.map +1 -1
  90. package/dist/src/data-list/event-handlers/record-partial-long-press-handler.d.ts +1 -1
  91. package/dist/src/data-list/event-handlers/record-partial-long-press-handler.js.map +1 -1
  92. package/dist/src/data-list/record-partial.d.ts +4 -4
  93. package/dist/src/data-list/record-partial.js +68 -18
  94. package/dist/src/data-list/record-partial.js.map +1 -1
  95. package/dist/src/data-manipulator.d.ts +1 -1
  96. package/dist/src/data-manipulator.js +31 -6
  97. package/dist/src/data-manipulator.js.map +1 -1
  98. package/dist/src/data-provider.js +90 -9
  99. package/dist/src/data-provider.js.map +1 -1
  100. package/dist/src/data-report/data-report-body.d.ts +2 -2
  101. package/dist/src/data-report/data-report-body.js +42 -10
  102. package/dist/src/data-report/data-report-body.js.map +1 -1
  103. package/dist/src/data-report/data-report-component.d.ts +3 -3
  104. package/dist/src/data-report/data-report-component.js +42 -10
  105. package/dist/src/data-report/data-report-component.js.map +1 -1
  106. package/dist/src/data-report/data-report-field.d.ts +1 -1
  107. package/dist/src/data-report/data-report-field.js +46 -9
  108. package/dist/src/data-report/data-report-field.js.map +1 -1
  109. package/dist/src/data-report/data-report-header.js +41 -8
  110. package/dist/src/data-report/data-report-header.js.map +1 -1
  111. package/dist/src/data-report/event-handlers/data-report-body-click-handler.d.ts +1 -1
  112. package/dist/src/data-report/event-handlers/data-report-body-click-handler.js.map +1 -1
  113. package/dist/src/data-report/event-handlers/data-report-body-dblclick-handler.d.ts +1 -1
  114. package/dist/src/data-report/event-handlers/data-report-body-dblclick-handler.js.map +1 -1
  115. package/dist/src/data-report/event-handlers/data-report-body-keydown-handler.d.ts +1 -1
  116. package/dist/src/data-report/event-handlers/data-report-body-keydown-handler.js.map +1 -1
  117. package/dist/src/data-report.d.ts +4 -4
  118. package/dist/src/data-report.js +88 -16
  119. package/dist/src/data-report.js.map +1 -1
  120. package/dist/src/editors/index.d.ts +1 -1
  121. package/dist/src/editors/index.js +1 -1
  122. package/dist/src/editors/index.js.map +1 -1
  123. package/dist/src/editors/ox-grist-editor-multiple-select.js +9 -4
  124. package/dist/src/editors/ox-grist-editor-multiple-select.js.map +1 -1
  125. package/dist/src/editors/ox-grist-editor-tree.d.ts +1 -1
  126. package/dist/src/editors/ox-grist-editor-tree.js +9 -4
  127. package/dist/src/editors/ox-grist-editor-tree.js.map +1 -1
  128. package/dist/src/editors/ox-grist-editor.d.ts +2 -2
  129. package/dist/src/editors/ox-grist-editor.js +52 -7
  130. package/dist/src/editors/ox-grist-editor.js.map +1 -1
  131. package/dist/src/editors/ox-input-tree.d.ts +1 -1
  132. package/dist/src/editors/ox-input-tree.js +37 -3
  133. package/dist/src/editors/ox-input-tree.js.map +1 -1
  134. package/dist/src/editors/registry.d.ts +2 -2
  135. package/dist/src/editors/registry.js +19 -19
  136. package/dist/src/editors/registry.js.map +1 -1
  137. package/dist/src/empty-note.js +28 -2
  138. package/dist/src/empty-note.js.map +1 -1
  139. package/dist/src/filters/filter-input.d.ts +1 -1
  140. package/dist/src/filters/filter-input.js.map +1 -1
  141. package/dist/src/filters/filter-range-date.d.ts +1 -1
  142. package/dist/src/filters/filter-range-date.js.map +1 -1
  143. package/dist/src/filters/filter-range-number.d.ts +1 -1
  144. package/dist/src/filters/filter-range-number.js.map +1 -1
  145. package/dist/src/filters/filter-select-buttons.d.ts +1 -1
  146. package/dist/src/filters/filter-select-buttons.js.map +1 -1
  147. package/dist/src/filters/filter-select.d.ts +1 -1
  148. package/dist/src/filters/filter-select.js +1 -1
  149. package/dist/src/filters/filter-select.js.map +1 -1
  150. package/dist/src/filters/filters-form.d.ts +1 -2
  151. package/dist/src/filters/filters-form.js +91 -15
  152. package/dist/src/filters/filters-form.js.map +1 -1
  153. package/dist/src/filters/index.d.ts +8 -8
  154. package/dist/src/filters/index.js +8 -8
  155. package/dist/src/filters/index.js.map +1 -1
  156. package/dist/src/formatters/index.d.ts +1 -1
  157. package/dist/src/formatters/index.js +1 -1
  158. package/dist/src/formatters/index.js.map +1 -1
  159. package/dist/src/formatters/registry.js +4 -4
  160. package/dist/src/formatters/registry.js.map +1 -1
  161. package/dist/src/gutters/gutter-button.d.ts +1 -1
  162. package/dist/src/gutters/gutter-button.js.map +1 -1
  163. package/dist/src/gutters/gutter-dirty.d.ts +1 -1
  164. package/dist/src/gutters/gutter-dirty.js +16 -2
  165. package/dist/src/gutters/gutter-dirty.js.map +1 -1
  166. package/dist/src/gutters/gutter-row-selector.d.ts +1 -1
  167. package/dist/src/gutters/gutter-row-selector.js.map +1 -1
  168. package/dist/src/gutters/gutter-sequence.d.ts +9 -9
  169. package/dist/src/gutters/gutter-sequence.js.map +1 -1
  170. package/dist/src/gutters/index.d.ts +1 -1
  171. package/dist/src/gutters/index.js +1 -1
  172. package/dist/src/gutters/index.js.map +1 -1
  173. package/dist/src/gutters/registry.d.ts +1 -1
  174. package/dist/src/gutters/registry.js +4 -4
  175. package/dist/src/gutters/registry.js.map +1 -1
  176. package/dist/src/handlers/contextmenu-tree-mutation.d.ts +2 -2
  177. package/dist/src/handlers/contextmenu-tree-mutation.js.map +1 -1
  178. package/dist/src/handlers/index.d.ts +1 -1
  179. package/dist/src/handlers/index.js +1 -1
  180. package/dist/src/handlers/index.js.map +1 -1
  181. package/dist/src/handlers/move-down.d.ts +2 -2
  182. package/dist/src/handlers/move-down.js.map +1 -1
  183. package/dist/src/handlers/move-up.d.ts +2 -2
  184. package/dist/src/handlers/move-up.js.map +1 -1
  185. package/dist/src/handlers/record-copy.d.ts +2 -2
  186. package/dist/src/handlers/record-copy.js.map +1 -1
  187. package/dist/src/handlers/record-delete.d.ts +2 -2
  188. package/dist/src/handlers/record-delete.js.map +1 -1
  189. package/dist/src/handlers/record-view-handler.d.ts +2 -2
  190. package/dist/src/handlers/record-view-handler.js.map +1 -1
  191. package/dist/src/handlers/registry.d.ts +1 -1
  192. package/dist/src/handlers/registry.js +8 -8
  193. package/dist/src/handlers/registry.js.map +1 -1
  194. package/dist/src/handlers/select-row-toggle.d.ts +2 -2
  195. package/dist/src/handlers/select-row-toggle.js.map +1 -1
  196. package/dist/src/handlers/select-row.d.ts +2 -2
  197. package/dist/src/handlers/select-row.js.map +1 -1
  198. package/dist/src/index.d.ts +14 -14
  199. package/dist/src/index.js +14 -14
  200. package/dist/src/index.js.map +1 -1
  201. package/dist/src/personalizer/index.d.ts +1 -1
  202. package/dist/src/personalizer/index.js +1 -1
  203. package/dist/src/personalizer/index.js.map +1 -1
  204. package/dist/src/personalizer/ox-grist-filter-personalizer.js +20 -4
  205. package/dist/src/personalizer/ox-grist-filter-personalizer.js.map +1 -1
  206. package/dist/src/personalizer/ox-grist-personalizer.js +20 -4
  207. package/dist/src/personalizer/ox-grist-personalizer.js.map +1 -1
  208. package/dist/src/record-view/event-handlers/record-view-body-click-handler.d.ts +1 -1
  209. package/dist/src/record-view/event-handlers/record-view-body-click-handler.js.map +1 -1
  210. package/dist/src/record-view/event-handlers/record-view-body-keydown-handler.d.ts +1 -1
  211. package/dist/src/record-view/event-handlers/record-view-body-keydown-handler.js.map +1 -1
  212. package/dist/src/record-view/index.d.ts +2 -2
  213. package/dist/src/record-view/index.js +2 -2
  214. package/dist/src/record-view/index.js.map +1 -1
  215. package/dist/src/record-view/ox-record-creator.d.ts +3 -3
  216. package/dist/src/record-view/ox-record-creator.js +40 -7
  217. package/dist/src/record-view/ox-record-creator.js.map +1 -1
  218. package/dist/src/record-view/record-view-body.d.ts +2 -2
  219. package/dist/src/record-view/record-view-body.js +44 -10
  220. package/dist/src/record-view/record-view-body.js.map +1 -1
  221. package/dist/src/record-view/record-view-handler.d.ts +6 -6
  222. package/dist/src/record-view/record-view-handler.js.map +1 -1
  223. package/dist/src/record-view/record-view.d.ts +4 -4
  224. package/dist/src/record-view/record-view.js +36 -10
  225. package/dist/src/record-view/record-view.js.map +1 -1
  226. package/dist/src/renderers/ox-grist-renderer-boolean.d.ts +1 -1
  227. package/dist/src/renderers/ox-grist-renderer-boolean.js +1 -1
  228. package/dist/src/renderers/ox-grist-renderer-boolean.js.map +1 -1
  229. package/dist/src/renderers/ox-grist-renderer-color.d.ts +1 -1
  230. package/dist/src/renderers/ox-grist-renderer-color.js.map +1 -1
  231. package/dist/src/renderers/ox-grist-renderer-date.d.ts +1 -1
  232. package/dist/src/renderers/ox-grist-renderer-date.js.map +1 -1
  233. package/dist/src/renderers/ox-grist-renderer-file.d.ts +1 -1
  234. package/dist/src/renderers/ox-grist-renderer-file.js.map +1 -1
  235. package/dist/src/renderers/ox-grist-renderer-image.d.ts +1 -1
  236. package/dist/src/renderers/ox-grist-renderer-image.js.map +1 -1
  237. package/dist/src/renderers/ox-grist-renderer-json5.d.ts +1 -1
  238. package/dist/src/renderers/ox-grist-renderer-json5.js.map +1 -1
  239. package/dist/src/renderers/ox-grist-renderer-link.d.ts +1 -1
  240. package/dist/src/renderers/ox-grist-renderer-link.js.map +1 -1
  241. package/dist/src/renderers/ox-grist-renderer-password.d.ts +1 -1
  242. package/dist/src/renderers/ox-grist-renderer-password.js.map +1 -1
  243. package/dist/src/renderers/ox-grist-renderer-progress.d.ts +1 -1
  244. package/dist/src/renderers/ox-grist-renderer-progress.js +8 -3
  245. package/dist/src/renderers/ox-grist-renderer-progress.js.map +1 -1
  246. package/dist/src/renderers/ox-grist-renderer-select.d.ts +1 -1
  247. package/dist/src/renderers/ox-grist-renderer-select.js.map +1 -1
  248. package/dist/src/renderers/ox-grist-renderer-text.d.ts +1 -1
  249. package/dist/src/renderers/ox-grist-renderer-text.js.map +1 -1
  250. package/dist/src/renderers/ox-grist-renderer-textarea.d.ts +1 -1
  251. package/dist/src/renderers/ox-grist-renderer-textarea.js.map +1 -1
  252. package/dist/src/renderers/ox-grist-renderer-tree.d.ts +1 -1
  253. package/dist/src/renderers/ox-grist-renderer-tree.js +20 -4
  254. package/dist/src/renderers/ox-grist-renderer-tree.js.map +1 -1
  255. package/dist/src/renderers/ox-grist-renderer.d.ts +2 -2
  256. package/dist/src/renderers/ox-grist-renderer.js +43 -4
  257. package/dist/src/renderers/ox-grist-renderer.js.map +1 -1
  258. package/dist/src/sorters/sorters-control.d.ts +1 -1
  259. package/dist/src/sorters/sorters-control.js +26 -5
  260. package/dist/src/sorters/sorters-control.js.map +1 -1
  261. package/dist/src/types.d.ts +11 -11
  262. package/dist/src/types.js.map +1 -1
  263. package/dist/src/utils/index.d.ts +2 -2
  264. package/dist/src/utils/index.js +2 -2
  265. package/dist/src/utils/index.js.map +1 -1
  266. package/dist/src/utils/list-param.d.ts +1 -1
  267. package/dist/src/utils/list-param.js +1 -1
  268. package/dist/src/utils/list-param.js.map +1 -1
  269. package/dist/stories/accumulator-format.stories.js +1 -1
  270. package/dist/stories/accumulator-format.stories.js.map +1 -1
  271. package/dist/stories/barcode-input-filter.stories.js +1 -1
  272. package/dist/stories/barcode-input-filter.stories.js.map +1 -1
  273. package/dist/stories/bounded-select-filters.stories.js +1 -1
  274. package/dist/stories/bounded-select-filters.stories.js.map +1 -1
  275. package/dist/stories/bounded-select-record.stories.js +1 -1
  276. package/dist/stories/bounded-select-record.stories.js.map +1 -1
  277. package/dist/stories/click-event-custom.stories.js +1 -1
  278. package/dist/stories/click-event-custom.stories.js.map +1 -1
  279. package/dist/stories/click-event.stories.js +1 -1
  280. package/dist/stories/click-event.stories.js.map +1 -1
  281. package/dist/stories/creatable-only-column.stories.js +1 -1
  282. package/dist/stories/creatable-only-column.stories.js.map +1 -1
  283. package/dist/stories/default-filters.stories.js +1 -1
  284. package/dist/stories/default-filters.stories.js.map +1 -1
  285. package/dist/stories/dynamic-editable.stories.js +1 -1
  286. package/dist/stories/dynamic-editable.stories.js.map +1 -1
  287. package/dist/stories/empty-sorters.stories.js +1 -1
  288. package/dist/stories/empty-sorters.stories.js.map +1 -1
  289. package/dist/stories/explicit-fetch.stories.js +1 -1
  290. package/dist/stories/explicit-fetch.stories.js.map +1 -1
  291. package/dist/stories/fixed-column.stories.js +1 -1
  292. package/dist/stories/fixed-column.stories.js.map +1 -1
  293. package/dist/stories/grid-setting.stories.js +1 -1
  294. package/dist/stories/grid-setting.stories.js.map +1 -1
  295. package/dist/stories/grist-modes.stories.js +1 -1
  296. package/dist/stories/grist-modes.stories.js.map +1 -1
  297. package/dist/stories/group-header.stories.js +1 -1
  298. package/dist/stories/group-header.stories.js.map +1 -1
  299. package/dist/stories/record-view.stories.js +1 -1
  300. package/dist/stories/record-view.stories.js.map +1 -1
  301. package/dist/stories/textarea.stories.js +1 -1
  302. package/dist/stories/textarea.stories.js.map +1 -1
  303. package/dist/stories/tree-column-with-checkbox.stories.js +1 -1
  304. package/dist/stories/tree-column-with-checkbox.stories.js.map +1 -1
  305. package/dist/stories/tree-column.stories.js +1 -1
  306. package/dist/stories/tree-column.stories.js.map +1 -1
  307. package/dist/tsconfig.tsbuildinfo +1 -1
  308. package/index.ts +1 -1
  309. package/package.json +20 -19
@@ -1 +1 @@
1
- {"version":3,"file":"data-report-body-dblclick-handler.js","sourceRoot":"","sources":["../../../../src/data-report/event-handlers/data-report-body-dblclick-handler.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAuB,CAAQ;IAChF,CAAC,CAAC,eAAe,EAAE,CAAA;IAEnB,IAAI,MAAM,GAAG,CAAC,CAAC,MAAyB,CAAA;IACxC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IAEzC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,mBAAmB;QACnB,OAAM;IACR,CAAC;IAED,gCAAgC;IAChC,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAA;IAClC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;IAE/E,8BAA8B;IAC9B,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAA;IAC1D,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;AACzF,CAAC","sourcesContent":["import { DataReportBody } from '../data-report-body'\nimport { DataReportField } from '../data-report-field'\n\n/**\n * ox-report-body 의 dblclick handler\n */\nexport async function dataReportBodyDblclickHandler(this: DataReportBody, e: Event) {\n e.stopPropagation()\n\n var target = e.target as DataReportField\n var { record, rowIndex, column } = target\n\n if (!column) {\n /* 여백 컬럼이 클릭된 경우 */\n return\n }\n\n /* do column dblclick handler */\n var { dblclick } = column.handlers\n dblclick && dblclick(this.columns, this.data, column, record, rowIndex, target)\n\n /* do rows dblclick handler */\n var { dblclick: rowsDblclick } = this.config.rows.handlers\n rowsDblclick && rowsDblclick(this.columns, this.data, column, record, rowIndex, target)\n}\n"]}
1
+ {"version":3,"file":"data-report-body-dblclick-handler.js","sourceRoot":"","sources":["../../../../src/data-report/event-handlers/data-report-body-dblclick-handler.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAuB,CAAQ;IAChF,CAAC,CAAC,eAAe,EAAE,CAAA;IAEnB,IAAI,MAAM,GAAG,CAAC,CAAC,MAAyB,CAAA;IACxC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IAEzC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,mBAAmB;QACnB,OAAM;IACR,CAAC;IAED,gCAAgC;IAChC,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAA;IAClC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;IAE/E,8BAA8B;IAC9B,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAA;IAC1D,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;AACzF,CAAC","sourcesContent":["import { DataReportBody } from '../data-report-body.js'\nimport { DataReportField } from '../data-report-field.js'\n\n/**\n * ox-report-body 의 dblclick handler\n */\nexport async function dataReportBodyDblclickHandler(this: DataReportBody, e: Event) {\n e.stopPropagation()\n\n var target = e.target as DataReportField\n var { record, rowIndex, column } = target\n\n if (!column) {\n /* 여백 컬럼이 클릭된 경우 */\n return\n }\n\n /* do column dblclick handler */\n var { dblclick } = column.handlers\n dblclick && dblclick(this.columns, this.data, column, record, rowIndex, target)\n\n /* do rows dblclick handler */\n var { dblclick: rowsDblclick } = this.config.rows.handlers\n rowsDblclick && rowsDblclick(this.columns, this.data, column, record, rowIndex, target)\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { DataReportBody } from '../data-report-body';
1
+ import { DataReportBody } from '../data-report-body.js';
2
2
  /**
3
3
  * ox-report-body 의 keydown handler
4
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"data-report-body-keydown-handler.js","sourceRoot":"","sources":["../../../../src/data-report/event-handlers/data-report-body-keydown-handler.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAAuB,CAAgB;;IACjF,YAAY;IACZ,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAA;IACjB,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA;IAChD,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;IACtC,IAAI,MAAM,GAAG,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,IAAI,0CAAE,UAAU,EAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA;IAC/E,IAAI,SAAS,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;IAEhF,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,IAAI,CAAC;QACV,KAAK,SAAS;YACZ,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAA;YAC1B,MAAK;QAEP,KAAK,MAAM,CAAC;QACZ,KAAK,WAAW;YACd,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAA;YAC/B,MAAK;QAEP,KAAK,OAAO;YACV,IAAI,SAAS,GAAG,MAAM,EAAE,CAAC;gBACvB,MAAM,EAAE,CAAA;YACV,CAAC;iBAAM,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;gBACxB,GAAG,EAAE,CAAA;YACP,CAAC;YACD,MAAK;QAEP,KAAK,MAAM,CAAC;QACZ,KAAK,WAAW,CAAC;QACjB,KAAK,WAAW;YACd,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;YAChC,MAAK;QAEP,KAAK,OAAO,CAAC;QACb,KAAK,YAAY,CAAC;QAClB,KAAK,KAAK;YACR,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;YACxC,MAAK;QAEP,KAAK,QAAQ;YACX,sCAAsC;YACtC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAA;YAC3B,MAAK;QAEP,KAAK,UAAU;YACb,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,CAAA;YAChC,MAAK;QAEP,KAAK,KAAK,CAAC;QACX,KAAK,QAAQ;YACX,OAAM;QAER;YACE,OAAM;IACV,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAChF,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,CAAA;IAChC,CAAC;IAED,kDAAkD;IAClD,CAAC,CAAC,cAAc,EAAE,CAAA;AACpB,CAAC","sourcesContent":["import { DataReportBody } from '../data-report-body'\n\n/**\n * ox-report-body 의 keydown handler\n */\nexport function dataReportBodyKeydownHandler(this: DataReportBody, e: KeyboardEvent): void {\n // arrow-key\n const key = e.key\n var { row = 0, column = 0 } = this.focused || {}\n var { records = [] } = this.data || {}\n var maxrow = this.config.rows?.appendable ? records.length : records.length - 1\n var maxcolumn = (this.columns || []).filter(column => !column.hidden).length - 1\n\n switch (key) {\n case 'Up':\n case 'ArrowUp':\n row = Math.max(0, row - 1)\n break\n\n case 'Down':\n case 'ArrowDown':\n row = Math.min(maxrow, row + 1)\n break\n\n case 'Enter':\n if (maxcolumn > column) {\n column++\n } else if (maxrow > row) {\n row++\n }\n break\n\n case 'Left':\n case 'ArrowLeft':\n case 'Backspace':\n column = Math.max(0, column - 1)\n break\n\n case 'Right':\n case 'ArrowRight':\n case 'Tab':\n column = Math.min(maxcolumn, column + 1)\n break\n\n case 'PageUp':\n /* TODO 페이지당 레코드의 수를 계산해서 증감시켜야 한다. */\n row = Math.max(0, row - 10)\n break\n\n case 'PageDown':\n row = Math.min(maxrow, row + 10)\n break\n\n case 'Esc':\n case 'Escape':\n return\n\n default:\n return\n }\n\n if (!this.focused || this.focused.row !== row || this.focused.column !== column) {\n this.focused = { row, column }\n }\n\n /* arrow key에 의한 scrollbar의 자동 움직임을 하지 못하도록 한다. */\n e.preventDefault()\n}\n"]}
1
+ {"version":3,"file":"data-report-body-keydown-handler.js","sourceRoot":"","sources":["../../../../src/data-report/event-handlers/data-report-body-keydown-handler.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAAuB,CAAgB;;IACjF,YAAY;IACZ,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAA;IACjB,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA;IAChD,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;IACtC,IAAI,MAAM,GAAG,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,IAAI,0CAAE,UAAU,EAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA;IAC/E,IAAI,SAAS,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;IAEhF,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,IAAI,CAAC;QACV,KAAK,SAAS;YACZ,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAA;YAC1B,MAAK;QAEP,KAAK,MAAM,CAAC;QACZ,KAAK,WAAW;YACd,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAA;YAC/B,MAAK;QAEP,KAAK,OAAO;YACV,IAAI,SAAS,GAAG,MAAM,EAAE,CAAC;gBACvB,MAAM,EAAE,CAAA;YACV,CAAC;iBAAM,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;gBACxB,GAAG,EAAE,CAAA;YACP,CAAC;YACD,MAAK;QAEP,KAAK,MAAM,CAAC;QACZ,KAAK,WAAW,CAAC;QACjB,KAAK,WAAW;YACd,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;YAChC,MAAK;QAEP,KAAK,OAAO,CAAC;QACb,KAAK,YAAY,CAAC;QAClB,KAAK,KAAK;YACR,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;YACxC,MAAK;QAEP,KAAK,QAAQ;YACX,sCAAsC;YACtC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAA;YAC3B,MAAK;QAEP,KAAK,UAAU;YACb,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,CAAA;YAChC,MAAK;QAEP,KAAK,KAAK,CAAC;QACX,KAAK,QAAQ;YACX,OAAM;QAER;YACE,OAAM;IACV,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAChF,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,CAAA;IAChC,CAAC;IAED,kDAAkD;IAClD,CAAC,CAAC,cAAc,EAAE,CAAA;AACpB,CAAC","sourcesContent":["import { DataReportBody } from '../data-report-body.js'\n\n/**\n * ox-report-body 의 keydown handler\n */\nexport function dataReportBodyKeydownHandler(this: DataReportBody, e: KeyboardEvent): void {\n // arrow-key\n const key = e.key\n var { row = 0, column = 0 } = this.focused || {}\n var { records = [] } = this.data || {}\n var maxrow = this.config.rows?.appendable ? records.length : records.length - 1\n var maxcolumn = (this.columns || []).filter(column => !column.hidden).length - 1\n\n switch (key) {\n case 'Up':\n case 'ArrowUp':\n row = Math.max(0, row - 1)\n break\n\n case 'Down':\n case 'ArrowDown':\n row = Math.min(maxrow, row + 1)\n break\n\n case 'Enter':\n if (maxcolumn > column) {\n column++\n } else if (maxrow > row) {\n row++\n }\n break\n\n case 'Left':\n case 'ArrowLeft':\n case 'Backspace':\n column = Math.max(0, column - 1)\n break\n\n case 'Right':\n case 'ArrowRight':\n case 'Tab':\n column = Math.min(maxcolumn, column + 1)\n break\n\n case 'PageUp':\n /* TODO 페이지당 레코드의 수를 계산해서 증감시켜야 한다. */\n row = Math.max(0, row - 10)\n break\n\n case 'PageDown':\n row = Math.min(maxrow, row + 10)\n break\n\n case 'Esc':\n case 'Escape':\n return\n\n default:\n return\n }\n\n if (!this.focused || this.focused.row !== row || this.focused.column !== column) {\n this.focused = { row, column }\n }\n\n /* arrow key에 의한 scrollbar의 자동 움직임을 하지 못하도록 한다. */\n e.preventDefault()\n}\n"]}
@@ -1,8 +1,8 @@
1
- import './data-report/data-report-component';
2
- import { GristConfig, GristData, GristRecord } from './types';
1
+ import './data-report/data-report-component.js';
3
2
  import { LitElement, PropertyValues } from 'lit';
4
- import { DataConsumer } from './data-consumer';
5
- import { DataReportComponent } from './data-report/data-report-component';
3
+ import { GristConfig, GristData, GristRecord } from './types.js';
4
+ import { DataConsumer } from './data-consumer.js';
5
+ import { DataReportComponent } from './data-report/data-report-component.js';
6
6
  export declare class DataReport extends LitElement implements DataConsumer {
7
7
  static styles: import("lit").CSSResult[];
8
8
  config: any;
@@ -1,22 +1,89 @@
1
1
  import { __decorate } from "tslib";
2
- import './data-report/data-report-component';
2
+ import './data-report/data-report-component.js';
3
3
  import { LitElement, css, html } from 'lit';
4
- import { ScrollbarStyles, SpinnerStyles } from '@operato/styles';
5
- import { ZERO_CONFIG, ZERO_DATA, ZERO_PAGINATION } from './configure/zero-config';
6
4
  import { customElement, property, query, queryAsync, state } from 'lit/decorators.js';
7
- import { DataProvider } from './data-provider';
8
- import { buildColumn } from './configure/column-builder';
9
- import { buildConfig } from './configure/config-builder';
10
5
  import i18next from 'i18next';
6
+ import { ScrollbarStyles, SpinnerStyles } from '@operato/styles';
7
+ import { ZERO_CONFIG, ZERO_DATA, ZERO_PAGINATION } from './configure/zero-config.js';
11
8
  import { pulltorefresh } from '@operato/pull-to-refresh';
9
+ import { DataProvider } from './data-provider.js';
10
+ import { buildColumn } from './configure/column-builder.js';
11
+ import { buildConfig } from './configure/config-builder.js';
12
12
  let DataReport = class DataReport extends LitElement {
13
13
  constructor() {
14
14
  super(...arguments);
15
- this.data = ZERO_DATA;
16
- this.autoFetch = false;
17
- this._data = ZERO_DATA;
18
- this._config = ZERO_CONFIG;
19
- this._showSpinner = false;
15
+ Object.defineProperty(this, "config", {
16
+ enumerable: true,
17
+ configurable: true,
18
+ writable: true,
19
+ value: void 0
20
+ });
21
+ Object.defineProperty(this, "data", {
22
+ enumerable: true,
23
+ configurable: true,
24
+ writable: true,
25
+ value: ZERO_DATA
26
+ });
27
+ Object.defineProperty(this, "fetchHandler", {
28
+ enumerable: true,
29
+ configurable: true,
30
+ writable: true,
31
+ value: void 0
32
+ });
33
+ Object.defineProperty(this, "fetchOptions", {
34
+ enumerable: true,
35
+ configurable: true,
36
+ writable: true,
37
+ value: void 0
38
+ });
39
+ Object.defineProperty(this, "autoFetch", {
40
+ enumerable: true,
41
+ configurable: true,
42
+ writable: true,
43
+ value: false
44
+ });
45
+ Object.defineProperty(this, "_data", {
46
+ enumerable: true,
47
+ configurable: true,
48
+ writable: true,
49
+ value: ZERO_DATA
50
+ });
51
+ Object.defineProperty(this, "_config", {
52
+ enumerable: true,
53
+ configurable: true,
54
+ writable: true,
55
+ value: ZERO_CONFIG
56
+ });
57
+ Object.defineProperty(this, "_showSpinner", {
58
+ enumerable: true,
59
+ configurable: true,
60
+ writable: true,
61
+ value: false
62
+ });
63
+ Object.defineProperty(this, "dataProvider", {
64
+ enumerable: true,
65
+ configurable: true,
66
+ writable: true,
67
+ value: void 0
68
+ });
69
+ Object.defineProperty(this, "pulltorefreshHandle", {
70
+ enumerable: true,
71
+ configurable: true,
72
+ writable: true,
73
+ value: void 0
74
+ });
75
+ Object.defineProperty(this, "report", {
76
+ enumerable: true,
77
+ configurable: true,
78
+ writable: true,
79
+ value: void 0
80
+ });
81
+ Object.defineProperty(this, "wrap", {
82
+ enumerable: true,
83
+ configurable: true,
84
+ writable: true,
85
+ value: void 0
86
+ });
20
87
  }
21
88
  get mode() {
22
89
  return 'REPORT';
@@ -311,10 +378,14 @@ let DataReport = class DataReport extends LitElement {
311
378
  }
312
379
  checkDirties() { }
313
380
  };
314
- DataReport.styles = [
315
- ScrollbarStyles,
316
- SpinnerStyles,
317
- css `
381
+ Object.defineProperty(DataReport, "styles", {
382
+ enumerable: true,
383
+ configurable: true,
384
+ writable: true,
385
+ value: [
386
+ ScrollbarStyles,
387
+ SpinnerStyles,
388
+ css `
318
389
  :host {
319
390
  display: flex;
320
391
  flex-direction: column;
@@ -348,7 +419,8 @@ DataReport.styles = [
348
419
  transform: translate(-50%, -50%);
349
420
  }
350
421
  `
351
- ];
422
+ ]
423
+ });
352
424
  __decorate([
353
425
  property()
354
426
  ], DataReport.prototype, "config", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"data-report.js","sourceRoot":"","sources":["../../src/data-report.ts"],"names":[],"mappings":";AAAA,OAAO,qCAAqC,CAAA;AAG5C,OAAO,EAAE,UAAU,EAAkB,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAChE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACjF,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAGrF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAGjD,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,UAAU;IAAnC;;QAyCO,SAAI,GAAc,SAAS,CAAA;QAGe,cAAS,GAAY,KAAK,CAAA;QAEvE,UAAK,GAAc,SAAS,CAAA;QAC5B,YAAO,GAAgB,WAAW,CAAA;QAC1B,iBAAY,GAAY,KAAK,CAAA;IAsWhD,CAAC;IA9VC,IAAI,IAAI;QACN,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAA;QAEzB,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAA;IAC5C,CAAC;IAED,oBAAoB;;QAClB,KAAK,CAAC,oBAAoB,EAAE,CAAA;QAE5B,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACzB,MAAA,IAAI,CAAC,YAAY,0CAAE,OAAO,EAAE,CAAA;IAC9B,CAAC;IAEO,kBAAkB;QACxB,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,IAAI,CAAC,mBAAmB,EAAE,CAAA;YAC1B,OAAO,IAAI,CAAC,mBAAmB,CAAA;QACjC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACzB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,mBAAmB,GAAG,aAAa,CAAC;gBACvC,SAAS,EAAE,MAAM,IAAI,CAAC,IAAI;gBAC1B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB;gBAC3C,OAAO,EAAE,GAAG,EAAE;oBACZ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACzB,CAAC;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;YAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAClB,CAAC;IACH,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAA;QAEvG,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA,sDAAsD,CAAC,CAAC,CAAC,IAAI,CAAA,EAAE;;;mDAG/B,IAAI,CAAC,OAAO,UAAU,IAAI,CAAC,KAAK;;;gCAGnD,IAAI,CAAC,YAAY;KAC5C,CAAA;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI;QACtB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,sBAAsB;YACtB,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAA;YAC7C,OAAM;QACR,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV;;;eAGG;YACH,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAA;QAC3B,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAA6B;QACzC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;gBACzB,GAAG,IAAI,CAAC,MAAM;aACf,CAAC,CAAA;YAEF,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YACvE,IAAI,CAAC,KAAK,EAAE,CAAA;QACd,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,CAAA;YACzE,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAC/B,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,CAAA;QAC3E,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,EAAE,CAAA;QACd,CAAC;IACH,CAAC;IAED,IAAI,SAAS;;QACX,OAAO,CAAA,MAAC,IAAI,CAAC,MAAc,0CAAE,IAAI,KAAI,EAAE,CAAA;IACzC,CAAC;IAED,WAAW;QACT,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;IAC1B,CAAC;IAED,WAAW;QACT,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;IAC3B,CAAC;IAED,KAAK;;QACH,KAAK,CAAC,KAAK,EAAE,CAAA;QAEb,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK,EAAE,CAAA;IACtB,CAAC;IAED;;;;;;OAMG;IACH,OAAO;QACL,IAAI,CAAC,aAAa,EAAE,CAAA;IACtB,CAAC;IAED,KAAK;QACH,IAAI,EACF,KAAK,GAAG,eAAe,CAAC,KAAK,EAC7B,IAAI,GAAG,eAAe,CAAC,IAAI,EAC3B,KAAK,GAAG,eAAe,CAAC,KAAK,EAC7B,OAAO,GAAG,EAAE,EACb,GAAG,IAAI,CAAC,IAAI,CAAA;QAEb,IAAI,CAAC,KAAK,GAAG;YACX,KAAK;YACL,IAAI;YACJ,KAAK;YACL,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;gBACtD,OAAO;oBACL,GAAG,MAAM;oBACT,OAAO,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,GAAG,CAAC;iBACtC,CAAA;YACH,CAAC,CAAC;SACH,CAAA;IACH,CAAC;IAED,YAAY,CAAC,aAA4B;;QACvC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAA;QAC1C,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAA;QAE9B,IAAI,cAAc,GAAG,CAAC,IAAqB,EAAE,EAAE,CAC7C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,CAAA;QAEnF,IAAI,yBAAyB,GAAkB;YAC7C,4CAA4C;YAC5C;gBACE,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,iCAAiC,CAAC;oBACtD,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iCAAiC,CAAC;oBAC9C,CAAC,CAAC,aAAa;gBACjB,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE,CAAC;aACX;YACD,GAAG,MAAM;SACV,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACZ,OAAO;gBACL,GAAG,KAAK;gBACR,WAAW,EAAE,WAAW,CAAC;oBACvB,MAAM,EAAE;wBACN,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,OAAO;qBAC9B;iBACF,CAAC;aACH,CAAA;QACH,CAAC,CAAC,CAAA;QACF,IAAI,eAAe,CAAA;QACnB,IAAI,aAAa,GAAG,EAAE,CAAA;QACtB,IAAI,cAAc,GAAqC,aAAa,CAAC,CAAC,CAAC;YACrE,CAAC,CAAC,CAAC,GAAG,EAAE;gBACJ,0BAA0B;gBAC1B,IAAI,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;gBAC7B,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;;oBAC5C,IAAI,CAAC,KAAK,CAAC;wBACT,CAAA,MAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,0CAAE,QAAQ,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;4BACxF,CAAC,CAAC,CAAC;4BACH,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;oBACnB,OAAO,IAAI,CAAA;gBACb,CAAC,EAAE,EAAsC,CAAC,CAAA;gBAC1C,IAAI,SAAS,GAAG,EAAoC,CAAA;gBAEpD,OAAO,yBAAyB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBAClD,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;oBAE9C,OAAO;wBACL,GAAG,SAAS;wBACZ,GAAG,SAAS;wBACZ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;wBACpC,GAAG,EAAE;4BACH,WAAW,EAAE,KAAK,CAAC,WAAW;4BAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;4BAClB,SAAS,EAAE,KAAK,CAAC,MAAM;4BACvB,8EAA8E;4BAC9E,GAAG,EAAE,CAAC;4BACN,OAAO,EAAE,CAAC;4BACV,4EAA4E;4BAC5E,MAAM,EACJ,KAAK,CAAC,MAAM,KAAK,GAAG;gCAClB,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;gCAClC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,oCAAoC;4BAC/E,OAAO,EACL,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,yBAAyB,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,yBAAyB,CAAC,MAAM,GAAG,CAAC;yBACvG;qBACF,CAAA;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,EAAE;YACN,CAAC,CAAC;gBACE;oBACE,GAAG,EAAE;wBACH,WAAW,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAC,WAAW;wBACrD,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,iCAAiC,CAAC;4BACtD,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iCAAiC,CAAC;4BAC9C,CAAC,CAAC,aAAa;wBACjB,SAAS,EAAE,GAAG;wBACd,GAAG,EAAE,CAAC;wBACN,OAAO,EAAE,CAAC;wBACV,MAAM,EAAE,CAAC;wBACT,OAAO,EAAE,CAAC;qBACI;iBACjB;aACF,CAAA;QAEL,IAAI,GAAG,GAAG,CAAC,CAAA;QAEX,KAAK,IAAI,MAAM,IAAI,aAAa,EAAE,CAAC;YACjC,IAAI,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC9C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;gBACzC,OAAO,IAAI,CAAA;YACb,CAAC,EAAE,EAAgD,CAAC,CAAA;YACpD,IAAI,iBAAiB,GAAG,IAAI,CAAA;YAC5B,IAAI,WAAW,GAAG,EAAoC,CAAA;YACtD,IAAI,SAAS,GAAG,EAA4B,CAAA;YAE5C,GAAG,EAAE,CAAA;YAEL,IAAI,eAAe,EAAE,CAAC;gBACpB,KAAK,IAAI,GAAG,IAAI,yBAAyB,EAAE,CAAC;oBAC1C,IAAI,KAAK,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAA;oBAC1C,IAAI,WAAW,GAEX,cAAc,CAAC,GAAG,CAAC,CAAA;oBAEvB,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;oBAE9C,IACE,KAAK,CAAC,MAAM,IAAI,GAAG;wBACnB,CAAC,iBAAiB,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAClF,CAAC;wBACD,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;4BACzB,WAAW,CAAC,KAAK,CAAC;gCAChB,CAAA,MAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,0CAAE,QAAQ,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;oCACxF,CAAC,CAAC,CAAC;oCACH,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;wBACrB,CAAC;wBAED,CAAC;wBAAC,WAAW,CAAC,GAAG,CAAiB,CAAC,OAAO,EAAE,CAAA;wBAE5C,SAAQ;oBACV,CAAC;oBAED,sDAAsD;oBACtD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;wBACrB,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAE,WAAW,CAAC,KAAK,CAAY,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;oBAC7E,CAAC,CAAC,CAAA;oBAEF,iBAAiB,GAAG,KAAK,CAAA;oBAEzB,WAAW,CAAC,IAAI,CAAC;wBACf,GAAG;wBACH,MAAM,EAAE,MAAM,CAAC,MAAM,CACnB,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;;4BACb,GAAG,CAAC,KAAK,CAAC;gCACR,CAAA,MAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,0CAAE,QAAQ,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;oCACxF,CAAC,CAAC,CAAC;oCACH,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;4BACnB,OAAO,GAAG,CAAA;wBACZ,CAAC,EACD;4BACE,GAAG,SAAS;4BACZ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;4BACpC,GAAG,EAAE;gCACH,WAAW,EAAE,KAAK,CAAC,WAAW;gCAC9B,SAAS,EAAE,KAAK,CAAC,MAAM;gCACvB,KAAK,EAAE,KAAK,CAAC,KAAK;gCAClB,GAAG;gCACH,OAAO,EAAE,CAAC;gCACV,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;gCACxC,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO;6BAC1C;yBACF,CACF;qBACF,CAAC,CAAA;gBACJ,CAAC;gBAED,WAAW;qBACR,OAAO,EAAE;qBACT,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE;oBACvB,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;oBAC/C,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;oBAEhC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;wBACtB,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;wBACtE,GAAG,EAAE,CAAA;oBACP,CAAC;oBAED,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;gBACxB,CAAC,CAAC;qBACD,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE;oBAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAA;oBACrB,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAA;gBACtC,CAAC,CAAC,CAAA;YACN,CAAC;YAED,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAE1B,eAAe,GAAG,WAAW,CAAA;QAC/B,CAAC;QAED,2BAA2B;QAC3B,IAAI,KAAU,CAAA;QACd,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;YACtC,sDAAsD;YACtD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACrB,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;YACrD,CAAC,CAAC,CAAA;YAEF,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACzB,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;gBACrB,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;YACzD,CAAC;QACH,CAAC;QAED,OAAO,aAAa,CAAA;IACtB,CAAC;IAED,YAAY,KAAI,CAAC;;AApZV,iBAAM,GAAG;IACd,eAAe;IACf,aAAa;IACb,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAiCF;CACF,AArCY,CAqCZ;AAEW;IAAX,QAAQ,EAAE;0CAAY;AACX;IAAX,QAAQ,EAAE;wCAA4B;AAC3B;IAAX,QAAQ,EAAE;gDAAkB;AACjB;IAAX,QAAQ,EAAE;gDAAkB;AACyB;IAArD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;6CAA2B;AAEvE;IAAR,KAAK,EAAE;yCAA6B;AAC5B;IAAR,KAAK,EAAE;2CAAmC;AAC1B;IAAhB,KAAK,EAAE;gDAAsC;AAK5B;IAAjB,KAAK,CAAC,SAAS,CAAC;0CAA6B;AACjB;IAA5B,UAAU,CAAC,OAAO,CAAC;wCAAoC;AAtD7C,UAAU;IADtB,aAAa,CAAC,WAAW,CAAC;GACd,UAAU,CAsZtB","sourcesContent":["import './data-report/data-report-component'\n\nimport { GristConfig, GristData, GristRecord, GroupConfig } from './types'\nimport { LitElement, PropertyValues, css, html } from 'lit'\nimport { ScrollbarStyles, SpinnerStyles } from '@operato/styles'\nimport { ZERO_CONFIG, ZERO_DATA, ZERO_PAGINATION } from './configure/zero-config'\nimport { customElement, property, query, queryAsync, state } from 'lit/decorators.js'\n\nimport { DataConsumer } from './data-consumer'\nimport { DataProvider } from './data-provider'\nimport { DataReportComponent } from './data-report/data-report-component'\nimport { buildColumn } from './configure/column-builder'\nimport { buildConfig } from './configure/config-builder'\nimport i18next from 'i18next'\nimport { pulltorefresh } from '@operato/pull-to-refresh'\n\n@customElement('ox-report')\nexport class DataReport extends LitElement implements DataConsumer {\n static styles = [\n ScrollbarStyles,\n SpinnerStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n background-color: var(--report-background-color);\n padding: var(--report-padding);\n min-height: 120px;\n\n overflow: hidden;\n\n /* for pulltorefresh controller */\n position: relative;\n }\n\n #wrap {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: auto;\n }\n\n ox-report-component {\n flex: 1;\n }\n\n ox-empty-note {\n display: block;\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n }\n `\n ]\n\n @property() config: any\n @property() data: GristData = ZERO_DATA\n @property() fetchHandler: any\n @property() fetchOptions: any\n @property({ type: Boolean, attribute: 'auto-fetch' }) autoFetch: boolean = false\n\n @state() _data: GristData = ZERO_DATA\n @state() _config: GristConfig = ZERO_CONFIG\n @state() private _showSpinner: boolean = false\n\n private dataProvider?: DataProvider\n private pulltorefreshHandle?: any\n\n @query('#report') report!: DataReportComponent\n @queryAsync('#wrap') private wrap!: Promise<HTMLElement>\n\n get mode(): 'REPORT' {\n return 'REPORT'\n }\n\n connectedCallback() {\n super.connectedCallback()\n\n this.dataProvider = new DataProvider(this)\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n\n this.resetPullToRefresh()\n this.dataProvider?.dispose()\n }\n\n private resetPullToRefresh() {\n if (this.pulltorefreshHandle) {\n this.pulltorefreshHandle()\n delete this.pulltorefreshHandle\n }\n }\n\n private async setPullToRefresh() {\n this.resetPullToRefresh()\n if (this.fetchHandler) {\n this.pulltorefreshHandle = pulltorefresh({\n container: await this.wrap,\n scrollable: this.report.pullToRefreshTarget,\n refresh: () => {\n return this.fetch(true)\n }\n })\n }\n }\n\n async firstUpdated() {\n if (this.fetchHandler && this.autoFetch) {\n await this.requestUpdate()\n this.fetch(true)\n }\n }\n\n render() {\n var oops = !this._showSpinner && (!this._data || !this._data.records || this._data.records.length == 0)\n\n return html`\n ${oops ? html` <ox-empty-note title=\"NO RECORDS\"></ox-empty-note> ` : html``}\n\n <div id=\"wrap\">\n <ox-report-component id=\"report\" .config=${this._config} .data=${this._data}> </ox-report-component>\n </div>\n\n <div id=\"spinner\" ?show=${this._showSpinner}></div>\n `\n }\n\n async fetch(reset = true) {\n if (!this._config) {\n /* avoid to be here */\n console.warn('report is not configured yet.')\n return\n }\n\n if (reset) {\n /*\n * scroll 의 현재위치에 의해서 scroll 이벤트가 발생할 수 있으므로, 이를 방지하기 위해서 스크롤의 위치를 TOP으로 옮긴다.\n * (scroll 이 첫페이지 크기 이상으로 내려가 있는 경우, 첫페이지부터 다시 표시하는 경우에, scroll 이벤트가 발생한다.)\n */\n this.report.scrollTop = 0\n }\n\n if (this.dataProvider) {\n await this.dataProvider.attach(reset)\n }\n }\n\n async updated(changes: PropertyValues<this>) {\n if (changes.has('config')) {\n this._config = buildConfig({\n ...this.config\n })\n\n this.dataProvider && (this.dataProvider.sorters = this._config.sorters)\n this.fetch()\n }\n\n if (changes.has('fetchHandler')) {\n this.dataProvider && (this.dataProvider.fetchHandler = this.fetchHandler)\n await this.setPullToRefresh()\n }\n\n if (changes.has('fetchOptions')) {\n this.dataProvider && (this.dataProvider.fetchOptions = this.fetchOptions)\n }\n\n if (changes.has('data')) {\n this.reset()\n }\n }\n\n get dirtyData() {\n return (this.report as any)?.data || {}\n }\n\n showSpinner() {\n this._showSpinner = true\n }\n\n hideSpinner() {\n this._showSpinner = false\n }\n\n focus() {\n super.focus()\n\n this.report?.focus()\n }\n\n /**\n * Forced internal data to be reflected on the screen\n * Data changing through a normal method is automatically reflected on the screen, so it is a method that does not need to be used in general.\nTherefore, it will be deprecated.\n * @deprecated\n * @method\n */\n refresh() {\n this.requestUpdate()\n }\n\n reset() {\n var {\n limit = ZERO_PAGINATION.limit,\n page = ZERO_PAGINATION.page,\n total = ZERO_PAGINATION.total,\n records = []\n } = this.data\n\n this._data = {\n limit,\n page,\n total,\n records: this.sortByGroups(records).map((record, idx) => {\n return {\n ...record,\n __seq__: (page - 1) * limit + idx + 1\n }\n })\n }\n }\n\n sortByGroups(sortedRecords: GristRecord[]) {\n var { groups, totals } = this._config.rows\n var { columns } = this._config\n\n var getColumnIndex = (name: string | number) =>\n columns.filter(column => !column.hidden).findIndex(column => column.name == name)\n\n var groupFieldsForTotalRecord: GroupConfig[] = [\n /* add a group total record to the front. */\n {\n column: '*',\n title: i18next.exists('text.ox-data-report-grand-total')\n ? i18next.t('text.ox-data-report-grand-total')\n : 'grand total',\n align: 'right',\n rowspan: 1\n },\n ...groups\n ].map(group => {\n return {\n ...group,\n titleColumn: buildColumn({\n record: {\n align: group.align || 'right'\n }\n })\n }\n })\n let lastGroupValues\n let reportRecords = []\n let totalicRecords: { [idx: string]: GroupConfig }[] = sortedRecords[0]\n ? (() => {\n /* 처음 만드는 total records */\n let record = sortedRecords[0]\n let totalBase = totals.reduce((base, field) => {\n base[field] =\n columns.find(col => col.name == field)?.rowCount && (record[field] === 0 || record[field])\n ? 1\n : record[field]\n return base\n }, {} as { [totalField: string]: number })\n let groupBase = {} as { [idx: string]: GroupConfig }\n\n return groupFieldsForTotalRecord.map((group, idx) => {\n groupBase[group.column] = record[group.column]\n\n return {\n ...totalBase,\n ...groupBase,\n [group.column]: record[group.column],\n '*': {\n titleColumn: group.titleColumn,\n value: group.title,\n groupName: group.column,\n /* 이 레코드 그룹에 해당하는 첫번째 레코드의 행 번호(1 부터 시작하는 번호임.) - grid layout의 row 지정에 사용됨. */\n row: 1,\n rowspan: 1,\n /* 이 레코드 그룹의 컬럼에 해당하는 열 번호(1 부터 시작하는 번호임.) - grid layout의 column 지정에 사용됨. */\n column:\n group.column !== '*'\n ? getColumnIndex(group.column) + 1\n : getColumnIndex(groups[0].column) + 1 /* grand total 은 첫번째 그룹 컬럼을 사용한다. */,\n colspan:\n group.column !== '*' ? groupFieldsForTotalRecord.length - idx : groupFieldsForTotalRecord.length - 1\n }\n }\n })\n })()\n : [\n {\n '*': {\n titleColumn: groupFieldsForTotalRecord[0].titleColumn,\n value: i18next.exists('text.ox-data-report-grand-total')\n ? i18next.t('text.ox-data-report-grand-total')\n : 'grand total',\n groupName: '*',\n row: 1,\n rowspan: 1,\n column: 1,\n colspan: 0\n } as GroupConfig\n }\n ]\n\n var row = 0\n\n for (let record of sortedRecords) {\n let groupValues = groups.reduce((base, group) => {\n base[group.column] = record[group.column]\n return base\n }, {} as { [groupColumn: string]: string | number })\n let isSameGroupRecord = true\n let totalsStack = [] as { idx: string; record: any }[]\n let groupBase = {} as { [idx: string]: any }\n\n row++\n\n if (lastGroupValues) {\n for (let idx in groupFieldsForTotalRecord) {\n let group = groupFieldsForTotalRecord[idx]\n let totalRecord: {\n [idx: string]: GroupConfig | number\n } = totalicRecords[idx]\n\n groupBase[group.column] = record[group.column]\n\n if (\n group.column == '*' ||\n (isSameGroupRecord && groupValues[group.column] === lastGroupValues[group.column])\n ) {\n for (let field of totals) {\n totalRecord[field] +=\n columns.find(col => col.name == field)?.rowCount && (record[field] === 0 || record[field])\n ? 1\n : record[field]\n }\n\n ;(totalRecord['*'] as GroupConfig).rowspan++\n\n continue\n }\n\n /* to avoid from floating point calculation problem */\n totals.forEach(field => {\n totalRecord[field] = Math.round((totalRecord[field] as number) * 100) / 100\n })\n\n isSameGroupRecord = false\n\n totalsStack.push({\n idx,\n record: totals.reduce(\n (sum, field) => {\n sum[field] =\n columns.find(col => col.name == field)?.rowCount && (record[field] === 0 || record[field])\n ? 1\n : record[field]\n return sum\n },\n {\n ...groupBase,\n [group.column]: record[group.column],\n '*': {\n titleColumn: group.titleColumn,\n groupName: group.column,\n value: group.title,\n row,\n rowspan: 1,\n column: getColumnIndex(group.column) + 1,\n colspan: totalicRecords[idx]['*'].colspan\n }\n }\n )\n })\n }\n\n totalsStack\n .reverse()\n .map(({ record, idx }) => {\n reportRecords.push(totalicRecords[Number(idx)])\n totalicRecords[Number(idx)] = {}\n\n if (record['*'].value) {\n totalicRecords.forEach(record => record['*'] && record['*'].rowspan++)\n row++\n }\n\n return { record, idx }\n })\n .forEach(({ record, idx }) => {\n record['*'].row = row\n totalicRecords[Number(idx)] = record\n })\n }\n\n reportRecords.push(record)\n\n lastGroupValues = groupValues\n }\n\n /* 마지막 남은 토탈 레코드들을 추가한다. */\n var poped: any\n while ((poped = totalicRecords.pop())) {\n /* to avoid from floating point calculation problem */\n totals.forEach(field => {\n poped[field] = Math.round(poped[field] * 100) / 100\n })\n\n reportRecords.push(poped)\n if (poped['*'].value) {\n totalicRecords.forEach(record => record['*'].rowspan++)\n }\n }\n\n return reportRecords\n }\n\n checkDirties() {}\n}\n"]}
1
+ {"version":3,"file":"data-report.js","sourceRoot":"","sources":["../../src/data-report.ts"],"names":[],"mappings":"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","sourcesContent":["import './data-report/data-report-component.js'\n\nimport { LitElement, PropertyValues, css, html } from 'lit'\nimport { customElement, property, query, queryAsync, state } from 'lit/decorators.js'\nimport i18next from 'i18next'\n\nimport { ScrollbarStyles, SpinnerStyles } from '@operato/styles'\n\nimport { GristConfig, GristData, GristRecord, GroupConfig } from './types.js'\nimport { ZERO_CONFIG, ZERO_DATA, ZERO_PAGINATION } from './configure/zero-config.js'\nimport { pulltorefresh } from '@operato/pull-to-refresh'\nimport { DataConsumer } from './data-consumer.js'\nimport { DataProvider } from './data-provider.js'\nimport { DataReportComponent } from './data-report/data-report-component.js'\nimport { buildColumn } from './configure/column-builder.js'\nimport { buildConfig } from './configure/config-builder.js'\n\n@customElement('ox-report')\nexport class DataReport extends LitElement implements DataConsumer {\n static styles = [\n ScrollbarStyles,\n SpinnerStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n background-color: var(--report-background-color);\n padding: var(--report-padding);\n min-height: 120px;\n\n overflow: hidden;\n\n /* for pulltorefresh controller */\n position: relative;\n }\n\n #wrap {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: auto;\n }\n\n ox-report-component {\n flex: 1;\n }\n\n ox-empty-note {\n display: block;\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n }\n `\n ]\n\n @property() config: any\n @property() data: GristData = ZERO_DATA\n @property() fetchHandler: any\n @property() fetchOptions: any\n @property({ type: Boolean, attribute: 'auto-fetch' }) autoFetch: boolean = false\n\n @state() _data: GristData = ZERO_DATA\n @state() _config: GristConfig = ZERO_CONFIG\n @state() private _showSpinner: boolean = false\n\n private dataProvider?: DataProvider\n private pulltorefreshHandle?: any\n\n @query('#report') report!: DataReportComponent\n @queryAsync('#wrap') private wrap!: Promise<HTMLElement>\n\n get mode(): 'REPORT' {\n return 'REPORT'\n }\n\n connectedCallback() {\n super.connectedCallback()\n\n this.dataProvider = new DataProvider(this)\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n\n this.resetPullToRefresh()\n this.dataProvider?.dispose()\n }\n\n private resetPullToRefresh() {\n if (this.pulltorefreshHandle) {\n this.pulltorefreshHandle()\n delete this.pulltorefreshHandle\n }\n }\n\n private async setPullToRefresh() {\n this.resetPullToRefresh()\n if (this.fetchHandler) {\n this.pulltorefreshHandle = pulltorefresh({\n container: await this.wrap,\n scrollable: this.report.pullToRefreshTarget,\n refresh: () => {\n return this.fetch(true)\n }\n })\n }\n }\n\n async firstUpdated() {\n if (this.fetchHandler && this.autoFetch) {\n await this.requestUpdate()\n this.fetch(true)\n }\n }\n\n render() {\n var oops = !this._showSpinner && (!this._data || !this._data.records || this._data.records.length == 0)\n\n return html`\n ${oops ? html` <ox-empty-note title=\"NO RECORDS\"></ox-empty-note> ` : html``}\n\n <div id=\"wrap\">\n <ox-report-component id=\"report\" .config=${this._config} .data=${this._data}> </ox-report-component>\n </div>\n\n <div id=\"spinner\" ?show=${this._showSpinner}></div>\n `\n }\n\n async fetch(reset = true) {\n if (!this._config) {\n /* avoid to be here */\n console.warn('report is not configured yet.')\n return\n }\n\n if (reset) {\n /*\n * scroll 의 현재위치에 의해서 scroll 이벤트가 발생할 수 있으므로, 이를 방지하기 위해서 스크롤의 위치를 TOP으로 옮긴다.\n * (scroll 이 첫페이지 크기 이상으로 내려가 있는 경우, 첫페이지부터 다시 표시하는 경우에, scroll 이벤트가 발생한다.)\n */\n this.report.scrollTop = 0\n }\n\n if (this.dataProvider) {\n await this.dataProvider.attach(reset)\n }\n }\n\n async updated(changes: PropertyValues<this>) {\n if (changes.has('config')) {\n this._config = buildConfig({\n ...this.config\n })\n\n this.dataProvider && (this.dataProvider.sorters = this._config.sorters)\n this.fetch()\n }\n\n if (changes.has('fetchHandler')) {\n this.dataProvider && (this.dataProvider.fetchHandler = this.fetchHandler)\n await this.setPullToRefresh()\n }\n\n if (changes.has('fetchOptions')) {\n this.dataProvider && (this.dataProvider.fetchOptions = this.fetchOptions)\n }\n\n if (changes.has('data')) {\n this.reset()\n }\n }\n\n get dirtyData() {\n return (this.report as any)?.data || {}\n }\n\n showSpinner() {\n this._showSpinner = true\n }\n\n hideSpinner() {\n this._showSpinner = false\n }\n\n focus() {\n super.focus()\n\n this.report?.focus()\n }\n\n /**\n * Forced internal data to be reflected on the screen\n * Data changing through a normal method is automatically reflected on the screen, so it is a method that does not need to be used in general.\nTherefore, it will be deprecated.\n * @deprecated\n * @method\n */\n refresh() {\n this.requestUpdate()\n }\n\n reset() {\n var {\n limit = ZERO_PAGINATION.limit,\n page = ZERO_PAGINATION.page,\n total = ZERO_PAGINATION.total,\n records = []\n } = this.data\n\n this._data = {\n limit,\n page,\n total,\n records: this.sortByGroups(records).map((record, idx) => {\n return {\n ...record,\n __seq__: (page - 1) * limit + idx + 1\n }\n })\n }\n }\n\n sortByGroups(sortedRecords: GristRecord[]) {\n var { groups, totals } = this._config.rows\n var { columns } = this._config\n\n var getColumnIndex = (name: string | number) =>\n columns.filter(column => !column.hidden).findIndex(column => column.name == name)\n\n var groupFieldsForTotalRecord: GroupConfig[] = [\n /* add a group total record to the front. */\n {\n column: '*',\n title: i18next.exists('text.ox-data-report-grand-total')\n ? i18next.t('text.ox-data-report-grand-total')\n : 'grand total',\n align: 'right',\n rowspan: 1\n },\n ...groups\n ].map(group => {\n return {\n ...group,\n titleColumn: buildColumn({\n record: {\n align: group.align || 'right'\n }\n })\n }\n })\n let lastGroupValues\n let reportRecords = []\n let totalicRecords: { [idx: string]: GroupConfig }[] = sortedRecords[0]\n ? (() => {\n /* 처음 만드는 total records */\n let record = sortedRecords[0]\n let totalBase = totals.reduce(\n (base, field) => {\n base[field] =\n columns.find(col => col.name == field)?.rowCount && (record[field] === 0 || record[field])\n ? 1\n : record[field]\n return base\n },\n {} as { [totalField: string]: number }\n )\n let groupBase = {} as { [idx: string]: GroupConfig }\n\n return groupFieldsForTotalRecord.map((group, idx) => {\n groupBase[group.column] = record[group.column]\n\n return {\n ...totalBase,\n ...groupBase,\n [group.column]: record[group.column],\n '*': {\n titleColumn: group.titleColumn,\n value: group.title,\n groupName: group.column,\n /* 이 레코드 그룹에 해당하는 첫번째 레코드의 행 번호(1 부터 시작하는 번호임.) - grid layout의 row 지정에 사용됨. */\n row: 1,\n rowspan: 1,\n /* 이 레코드 그룹의 컬럼에 해당하는 열 번호(1 부터 시작하는 번호임.) - grid layout의 column 지정에 사용됨. */\n column:\n group.column !== '*'\n ? getColumnIndex(group.column) + 1\n : getColumnIndex(groups[0].column) + 1 /* grand total 은 첫번째 그룹 컬럼을 사용한다. */,\n colspan:\n group.column !== '*' ? groupFieldsForTotalRecord.length - idx : groupFieldsForTotalRecord.length - 1\n }\n }\n })\n })()\n : [\n {\n '*': {\n titleColumn: groupFieldsForTotalRecord[0].titleColumn,\n value: i18next.exists('text.ox-data-report-grand-total')\n ? i18next.t('text.ox-data-report-grand-total')\n : 'grand total',\n groupName: '*',\n row: 1,\n rowspan: 1,\n column: 1,\n colspan: 0\n } as GroupConfig\n }\n ]\n\n var row = 0\n\n for (let record of sortedRecords) {\n let groupValues = groups.reduce(\n (base, group) => {\n base[group.column] = record[group.column]\n return base\n },\n {} as { [groupColumn: string]: string | number }\n )\n let isSameGroupRecord = true\n let totalsStack = [] as { idx: string; record: any }[]\n let groupBase = {} as { [idx: string]: any }\n\n row++\n\n if (lastGroupValues) {\n for (let idx in groupFieldsForTotalRecord) {\n let group = groupFieldsForTotalRecord[idx]\n let totalRecord: {\n [idx: string]: GroupConfig | number\n } = totalicRecords[idx]\n\n groupBase[group.column] = record[group.column]\n\n if (\n group.column == '*' ||\n (isSameGroupRecord && groupValues[group.column] === lastGroupValues[group.column])\n ) {\n for (let field of totals) {\n totalRecord[field] +=\n columns.find(col => col.name == field)?.rowCount && (record[field] === 0 || record[field])\n ? 1\n : record[field]\n }\n\n ;(totalRecord['*'] as GroupConfig).rowspan++\n\n continue\n }\n\n /* to avoid from floating point calculation problem */\n totals.forEach(field => {\n totalRecord[field] = Math.round((totalRecord[field] as number) * 100) / 100\n })\n\n isSameGroupRecord = false\n\n totalsStack.push({\n idx,\n record: totals.reduce(\n (sum, field) => {\n sum[field] =\n columns.find(col => col.name == field)?.rowCount && (record[field] === 0 || record[field])\n ? 1\n : record[field]\n return sum\n },\n {\n ...groupBase,\n [group.column]: record[group.column],\n '*': {\n titleColumn: group.titleColumn,\n groupName: group.column,\n value: group.title,\n row,\n rowspan: 1,\n column: getColumnIndex(group.column) + 1,\n colspan: totalicRecords[idx]['*'].colspan\n }\n }\n )\n })\n }\n\n totalsStack\n .reverse()\n .map(({ record, idx }) => {\n reportRecords.push(totalicRecords[Number(idx)])\n totalicRecords[Number(idx)] = {}\n\n if (record['*'].value) {\n totalicRecords.forEach(record => record['*'] && record['*'].rowspan++)\n row++\n }\n\n return { record, idx }\n })\n .forEach(({ record, idx }) => {\n record['*'].row = row\n totalicRecords[Number(idx)] = record\n })\n }\n\n reportRecords.push(record)\n\n lastGroupValues = groupValues\n }\n\n /* 마지막 남은 토탈 레코드들을 추가한다. */\n var poped: any\n while ((poped = totalicRecords.pop())) {\n /* to avoid from floating point calculation problem */\n totals.forEach(field => {\n poped[field] = Math.round(poped[field] * 100) / 100\n })\n\n reportRecords.push(poped)\n if (poped['*'].value) {\n totalicRecords.forEach(record => record['*'].rowspan++)\n }\n }\n\n return reportRecords\n }\n\n checkDirties() {}\n}\n"]}
@@ -1,3 +1,3 @@
1
- export * from './registry';
1
+ export * from './registry.js';
2
2
  export * from './ox-grist-editor.js';
3
3
  export * from './ox-grist-editor-image.js';
@@ -1,4 +1,4 @@
1
- export * from './registry';
1
+ export * from './registry.js';
2
2
  export * from './ox-grist-editor.js';
3
3
  export * from './ox-grist-editor-image.js';
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/editors/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAE1B,cAAc,sBAAsB,CAAA;AACpC,cAAc,4BAA4B,CAAA","sourcesContent":["export * from './registry'\n\nexport * from './ox-grist-editor.js'\nexport * from './ox-grist-editor-image.js'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/editors/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAE7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,4BAA4B,CAAA","sourcesContent":["export * from './registry.js'\n\nexport * from './ox-grist-editor.js'\nexport * from './ox-grist-editor-image.js'\n"]}
@@ -37,14 +37,19 @@ let OxGristEditorMultipleSelect = class OxGristEditorMultipleSelect extends OxGr
37
37
  `;
38
38
  }
39
39
  };
40
- OxGristEditorMultipleSelect.styles = [
41
- ...OxGristEditor.styles,
42
- css `
40
+ Object.defineProperty(OxGristEditorMultipleSelect, "styles", {
41
+ enumerable: true,
42
+ configurable: true,
43
+ writable: true,
44
+ value: [
45
+ ...OxGristEditor.styles,
46
+ css `
43
47
  :host {
44
48
  overflow: visible;
45
49
  }
46
50
  `
47
- ];
51
+ ]
52
+ });
48
53
  OxGristEditorMultipleSelect = __decorate([
49
54
  customElement('ox-grist-editor-multiple-select')
50
55
  ], OxGristEditorMultipleSelect);
@@ -1 +1 @@
1
- {"version":3,"file":"ox-grist-editor-multiple-select.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor-multiple-select.ts"],"names":[],"mappings":";AAAA,OAAO,6BAA6B,CAAA;AACpC,OAAO,+BAA+B,CAAA;AACtC,OAAO,iCAAiC,CAAA;AAExC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAG7C,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,aAAa;IAU5D,IAAI,cAAc;QAChB,IAAI,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,CAAA;QACzE,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA;QAE3E,IAAI,OAAO,OAAO,IAAI,UAAU,EAAE,CAAC;YACjC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QACrG,CAAC;QAED,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE;YACpC,QAAQ,OAAO,MAAM,EAAE,CAAC;gBACtB,KAAK,QAAQ;oBACX,OAAO;wBACL,OAAO,EAAE,MAAM;wBACf,KAAK,EAAE,MAAM;qBACd,CAAA;gBACH,KAAK,QAAQ;oBACX,OAAO;wBACL,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,KAAK,EAAE,MAAM,CAAC,KAAK;qBACpB,CAAA;gBACH;oBACE,OAAO,MAAM,CAAA;YACjB,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;0BACW,IAAI,CAAC,KAAK;;YAExB,OAAO,CAAC,GAAG,CACX,CAAC,MAA0C,EAAE,EAAE,CAC7C,IAAI,CAAA,8BAA8B,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,iBAAiB,CACpF;;;KAGN,CAAA;IACH,CAAC;;AA5CM,kCAAM,GAAG;IACd,GAAG,aAAa,CAAC,MAAM;IACvB,GAAG,CAAA;;;;KAIF;CACF,AAPY,CAOZ;AARU,2BAA2B;IADvC,aAAa,CAAC,iCAAiC,CAAC;GACpC,2BAA2B,CA8CvC","sourcesContent":["import '@operato/input/ox-select.js'\nimport '@operato/input/ox-checkbox.js'\nimport '@operato/popup/ox-popup-list.js'\n\nimport { html, css } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\nimport { OxGristEditor } from './ox-grist-editor.js'\n\n@customElement('ox-grist-editor-multiple-select')\nexport class OxGristEditorMultipleSelect extends OxGristEditor {\n static styles = [\n ...OxGristEditor.styles,\n css`\n :host {\n overflow: visible;\n }\n `\n ]\n\n get editorTemplate() {\n var rowOptionField = this.record[this.column.record.rowOptionField || '']\n var { options = [] } = rowOptionField ? rowOptionField : this.column.record\n\n if (typeof options == 'function') {\n options = options.call(null, this.value, this.column, this.record, this.rowIndex, this.field) || []\n }\n\n options = options.map((option: any) => {\n switch (typeof option) {\n case 'string':\n return {\n display: option,\n value: option\n }\n case 'object':\n return {\n display: option.display,\n value: option.value\n }\n default:\n return option\n }\n })\n\n return html`\n <ox-select .value=${this.value} style=\"width: 100%;\">\n <ox-popup-list multiple attr-selected=\"checked\">\n ${options.map(\n (option: { display: string; value: string }) =>\n html` <ox-checkbox option value=${option.value}>${option.display}</ox-checkbox> `\n )}\n </ox-popup-list>\n </ox-select>\n `\n }\n}\n"]}
1
+ {"version":3,"file":"ox-grist-editor-multiple-select.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor-multiple-select.ts"],"names":[],"mappings":";AAAA,OAAO,6BAA6B,CAAA;AACpC,OAAO,+BAA+B,CAAA;AACtC,OAAO,iCAAiC,CAAA;AAExC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAG7C,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,aAAa;IAU5D,IAAI,cAAc;QAChB,IAAI,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,CAAA;QACzE,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA;QAE3E,IAAI,OAAO,OAAO,IAAI,UAAU,EAAE,CAAC;YACjC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QACrG,CAAC;QAED,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE;YACpC,QAAQ,OAAO,MAAM,EAAE,CAAC;gBACtB,KAAK,QAAQ;oBACX,OAAO;wBACL,OAAO,EAAE,MAAM;wBACf,KAAK,EAAE,MAAM;qBACd,CAAA;gBACH,KAAK,QAAQ;oBACX,OAAO;wBACL,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,KAAK,EAAE,MAAM,CAAC,KAAK;qBACpB,CAAA;gBACH;oBACE,OAAO,MAAM,CAAA;YACjB,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;0BACW,IAAI,CAAC,KAAK;;YAExB,OAAO,CAAC,GAAG,CACX,CAAC,MAA0C,EAAE,EAAE,CAC7C,IAAI,CAAA,8BAA8B,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,iBAAiB,CACpF;;;KAGN,CAAA;IACH,CAAC;;AA5CM;;;;WAAS;QACd,GAAG,aAAa,CAAC,MAAM;QACvB,GAAG,CAAA;;;;KAIF;KACF;EAPY,CAOZ;AARU,2BAA2B;IADvC,aAAa,CAAC,iCAAiC,CAAC;GACpC,2BAA2B,CA8CvC","sourcesContent":["import '@operato/input/ox-select.js'\nimport '@operato/input/ox-checkbox.js'\nimport '@operato/popup/ox-popup-list.js'\n\nimport { html, css } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\nimport { OxGristEditor } from './ox-grist-editor.js'\n\n@customElement('ox-grist-editor-multiple-select')\nexport class OxGristEditorMultipleSelect extends OxGristEditor {\n static styles = [\n ...OxGristEditor.styles,\n css`\n :host {\n overflow: visible;\n }\n `\n ]\n\n get editorTemplate() {\n var rowOptionField = this.record[this.column.record.rowOptionField || '']\n var { options = [] } = rowOptionField ? rowOptionField : this.column.record\n\n if (typeof options == 'function') {\n options = options.call(null, this.value, this.column, this.record, this.rowIndex, this.field) || []\n }\n\n options = options.map((option: any) => {\n switch (typeof option) {\n case 'string':\n return {\n display: option,\n value: option\n }\n case 'object':\n return {\n display: option.display,\n value: option.value\n }\n default:\n return option\n }\n })\n\n return html`\n <ox-select .value=${this.value} style=\"width: 100%;\">\n <ox-popup-list multiple attr-selected=\"checked\">\n ${options.map(\n (option: { display: string; value: string }) =>\n html` <ox-checkbox option value=${option.value}>${option.display}</ox-checkbox> `\n )}\n </ox-popup-list>\n </ox-select>\n `\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import './ox-input-tree';
1
+ import './ox-input-tree.js';
2
2
  import { OxGristEditor } from './ox-grist-editor.js';
3
3
  export declare class OxGristEditorTree extends OxGristEditor {
4
4
  static styles: import("lit").CSSResult[];
@@ -1,5 +1,5 @@
1
1
  import { __decorate } from "tslib";
2
- import './ox-input-tree';
2
+ import './ox-input-tree.js';
3
3
  import { html, css } from 'lit';
4
4
  import { customElement } from 'lit/decorators.js';
5
5
  import { OxGristEditor } from './ox-grist-editor.js';
@@ -9,8 +9,12 @@ let OxGristEditorTree = class OxGristEditorTree extends OxGristEditor {
9
9
  return html `<ox-input-tree .value=${this.value} .record=${this.record} ?selectable=${selectable}></ox-input-tree>`;
10
10
  }
11
11
  };
12
- OxGristEditorTree.styles = [
13
- css `
12
+ Object.defineProperty(OxGristEditorTree, "styles", {
13
+ enumerable: true,
14
+ configurable: true,
15
+ writable: true,
16
+ value: [
17
+ css `
14
18
  :host {
15
19
  flex: 1;
16
20
  }
@@ -19,7 +23,8 @@ OxGristEditorTree.styles = [
19
23
  flex: 1;
20
24
  }
21
25
  `
22
- ];
26
+ ]
27
+ });
23
28
  OxGristEditorTree = __decorate([
24
29
  customElement('ox-grist-editor-tree')
25
30
  ], OxGristEditorTree);
@@ -1 +1 @@
1
- {"version":3,"file":"ox-grist-editor-tree.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor-tree.ts"],"names":[],"mappings":";AAAA,OAAO,iBAAiB,CAAA;AAExB,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAS,MAAM,mBAAmB,CAAA;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAG7C,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,aAAa;IAalD,IAAI,cAAc;QAChB,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;QAErD,OAAO,IAAI,CAAA,yBAAyB,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,MAAM,gBAAgB,UAAU,mBAAmB,CAAA;IACpH,CAAC;;AAhBM,wBAAM,GAAG;IACd,GAAG,CAAA;;;;;;;;KAQF;CACF,AAVY,CAUZ;AAXU,iBAAiB;IAD7B,aAAa,CAAC,sBAAsB,CAAC;GACzB,iBAAiB,CAkB7B","sourcesContent":["import './ox-input-tree'\n\nimport { html, css } from 'lit'\nimport { customElement, query } from 'lit/decorators.js'\n\nimport { OxGristEditor } from './ox-grist-editor.js'\n\n@customElement('ox-grist-editor-tree')\nexport class OxGristEditorTree extends OxGristEditor {\n static styles = [\n css`\n :host {\n flex: 1;\n }\n\n ox-input-tree {\n flex: 1;\n }\n `\n ]\n\n get editorTemplate() {\n var { selectable } = this.column.record.options || {}\n\n return html`<ox-input-tree .value=${this.value} .record=${this.record} ?selectable=${selectable}></ox-input-tree>`\n }\n}\n"]}
1
+ {"version":3,"file":"ox-grist-editor-tree.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor-tree.ts"],"names":[],"mappings":";AAAA,OAAO,oBAAoB,CAAA;AAE3B,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAS,MAAM,mBAAmB,CAAA;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAG7C,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,aAAa;IAalD,IAAI,cAAc;QAChB,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;QAErD,OAAO,IAAI,CAAA,yBAAyB,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,MAAM,gBAAgB,UAAU,mBAAmB,CAAA;IACpH,CAAC;;AAhBM;;;;WAAS;QACd,GAAG,CAAA;;;;;;;;KAQF;KACF;EAVY,CAUZ;AAXU,iBAAiB;IAD7B,aAAa,CAAC,sBAAsB,CAAC;GACzB,iBAAiB,CAkB7B","sourcesContent":["import './ox-input-tree.js'\n\nimport { html, css } from 'lit'\nimport { customElement, query } from 'lit/decorators.js'\n\nimport { OxGristEditor } from './ox-grist-editor.js'\n\n@customElement('ox-grist-editor-tree')\nexport class OxGristEditorTree extends OxGristEditor {\n static styles = [\n css`\n :host {\n flex: 1;\n }\n\n ox-input-tree {\n flex: 1;\n }\n `\n ]\n\n get editorTemplate() {\n var { selectable } = this.column.record.options || {}\n\n return html`<ox-input-tree .value=${this.value} .record=${this.record} ?selectable=${selectable}></ox-input-tree>`\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import { LitElement } from 'lit';
2
- import { DataGridField } from '../data-grid/data-grid-field';
3
- import { ColumnConfig, GristRecord } from '../types';
2
+ import { DataGridField } from '../data-grid/data-grid-field.js';
3
+ import { ColumnConfig, GristRecord } from '../types.js';
4
4
  export declare class OxGristEditor extends LitElement {
5
5
  static styles: import("lit").CSSResult[];
6
6
  value?: any;
@@ -1,7 +1,7 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { css, html, LitElement } from 'lit';
3
3
  import { customElement, property } from 'lit/decorators.js';
4
- import { ZERO_COLUMN, ZERO_RECORD } from '../configure/zero-config';
4
+ import { ZERO_COLUMN, ZERO_RECORD } from '../configure/zero-config.js';
5
5
  import { getDefaultValue } from '@operato/time-calculator';
6
6
  const STYLE = css `
7
7
  :host {
@@ -73,8 +73,48 @@ const STYLE = css `
73
73
  let OxGristEditor = class OxGristEditor extends LitElement {
74
74
  constructor() {
75
75
  super(...arguments);
76
- this.column = ZERO_COLUMN;
77
- this.record = ZERO_RECORD;
76
+ Object.defineProperty(this, "value", {
77
+ enumerable: true,
78
+ configurable: true,
79
+ writable: true,
80
+ value: void 0
81
+ });
82
+ Object.defineProperty(this, "column", {
83
+ enumerable: true,
84
+ configurable: true,
85
+ writable: true,
86
+ value: ZERO_COLUMN
87
+ });
88
+ Object.defineProperty(this, "record", {
89
+ enumerable: true,
90
+ configurable: true,
91
+ writable: true,
92
+ value: ZERO_RECORD
93
+ });
94
+ Object.defineProperty(this, "rowIndex", {
95
+ enumerable: true,
96
+ configurable: true,
97
+ writable: true,
98
+ value: void 0
99
+ });
100
+ Object.defineProperty(this, "field", {
101
+ enumerable: true,
102
+ configurable: true,
103
+ writable: true,
104
+ value: void 0
105
+ });
106
+ Object.defineProperty(this, "row", {
107
+ enumerable: true,
108
+ configurable: true,
109
+ writable: true,
110
+ value: void 0
111
+ });
112
+ Object.defineProperty(this, "_dirtyValue", {
113
+ enumerable: true,
114
+ configurable: true,
115
+ writable: true,
116
+ value: void 0
117
+ });
78
118
  }
79
119
  render() {
80
120
  return this.editorTemplate;
@@ -93,9 +133,9 @@ let OxGristEditor = class OxGristEditor extends LitElement {
93
133
  this.addEventListener('dblclick', this._ondblclick.bind(this));
94
134
  this.addEventListener('keydown', this._onkeydown.bind(this));
95
135
  /* editor mode 인 경우의 마우스 움직임이, grist-body의 이벤트 처리에 의해서 에디터를 리셋시킬 수 있으므로, 이벤트 전파를 막는다. */
96
- this.addEventListener('mousedown', (e) => e.stopPropagation());
97
- this.addEventListener('mousemove', (e) => e.stopPropagation());
98
- this.addEventListener('mouseup', (e) => e.stopPropagation());
136
+ this.addEventListener('pointerdown', (e) => e.stopPropagation());
137
+ this.addEventListener('pointermove', (e) => e.stopPropagation());
138
+ this.addEventListener('pointerup', (e) => e.stopPropagation());
99
139
  const { name = '' } = this.column;
100
140
  const { align, defaultValue } = this.column.record;
101
141
  if (align) {
@@ -171,7 +211,12 @@ let OxGristEditor = class OxGristEditor extends LitElement {
171
211
  return html ``;
172
212
  }
173
213
  };
174
- OxGristEditor.styles = [STYLE];
214
+ Object.defineProperty(OxGristEditor, "styles", {
215
+ enumerable: true,
216
+ configurable: true,
217
+ writable: true,
218
+ value: [STYLE]
219
+ });
175
220
  __decorate([
176
221
  property({ type: Object })
177
222
  ], OxGristEditor.prototype, "value", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"ox-grist-editor.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, LitElement, PropertyValues } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { ZERO_COLUMN, ZERO_RECORD } from '../configure/zero-config'\nimport { DataGridField } from '../data-grid/data-grid-field'\nimport { ColumnConfig, GristRecord } from '../types'\nimport { getDefaultValue } from '@operato/time-calculator'\n\nconst STYLE = css`\n :host {\n display: flex;\n\n align-items: center;\n\n width: 100%;\n height: 100%;\n\n border: 0;\n background-color: transparent;\n\n overflow: hidden;\n justify-content: var(--data-grid-field-justify-content, flex-start);\n }\n\n :host > * {\n display: flex;\n\n width: 100%;\n height: 100%;\n\n border: 0;\n background-color: transparent;\n\n box-sizing: border-box;\n\n align-items: center;\n }\n\n :host > style {\n display: none;\n }\n\n :host > input {\n color: var(--md-sys-color-on-background);\n }\n\n :host > input[type='checkbox'] {\n width: initial;\n margin: 0;\n }\n *:focus {\n outline: none;\n }\n\n input[type='file'] {\n opacity: 0%;\n }\n\n @media screen and (max-width: 460px) {\n :host > * {\n border: initial;\n background-color: initial;\n }\n\n *:focus {\n outline: none;\n }\n\n input,\n select,\n textarea {\n font-size: 16px;\n }\n }\n`\n\n@customElement('ox-grist-editor')\nexport class OxGristEditor extends LitElement {\n static styles = [STYLE]\n\n @property({ type: Object }) value?: any\n @property({ type: Object }) column: ColumnConfig = ZERO_COLUMN\n @property({ type: Object }) record: GristRecord = ZERO_RECORD\n @property({ type: Number }) rowIndex?: number\n @property({ type: Object }) field?: DataGridField\n @property({ type: Number }) row?: number\n\n protected _dirtyValue?: any\n\n render() {\n return this.editorTemplate\n }\n\n get editor(): HTMLElement | null {\n return this.renderRoot.firstElementChild as HTMLElement\n }\n\n get inlineEditable() {\n return false\n }\n\n async firstUpdated() {\n this.renderRoot.addEventListener('change', this._onchange.bind(this))\n this.renderRoot.addEventListener('focusout', this._onfocusout.bind(this))\n this.addEventListener('click', this._onclick.bind(this))\n this.addEventListener('dblclick', this._ondblclick.bind(this))\n this.addEventListener('keydown', this._onkeydown.bind(this))\n\n /* editor mode 인 경우의 마우스 움직임이, grist-body의 이벤트 처리에 의해서 에디터를 리셋시킬 수 있으므로, 이벤트 전파를 막는다. */\n this.addEventListener('mousedown', (e: Event) => e.stopPropagation())\n this.addEventListener('mousemove', (e: Event) => e.stopPropagation())\n this.addEventListener('mouseup', (e: Event) => e.stopPropagation())\n\n const { name = '' } = this.column\n const { align, defaultValue } = this.column.record\n\n if (align) {\n this.style.textAlign = align\n this.style.textAlignLast = align /* for select */\n }\n\n var currentValue = this.record[name]\n\n if (typeof currentValue == 'undefined' && defaultValue) {\n currentValue = getDefaultValue(defaultValue, this.record)\n }\n\n this.value = this._dirtyValue = this.formatForEditor(currentValue)\n\n // 입력을 위한 키를 누르면서 편집모드가 될때는 누른 키가 처음에 입력되도록, enter 같은 것을 눌러서 편집모드가 되면 현재 값으로 편집모드 전환\n const valueWith = this.inlineEditable && this.field?.valueWith\n this.value = this._dirtyValue = valueWith ? this.formatFromEditor(valueWith) : this.formatForEditor(currentValue)\n\n requestAnimationFrame(() => {\n this.focus()\n !valueWith && this.select()\n })\n }\n\n select() {\n const editor = this.editor\n if ((editor as HTMLInputElement)?.select) {\n return (editor as HTMLInputElement).select()\n }\n }\n\n focus() {\n const editor = this.editor\n if (editor) {\n editor.focus()\n }\n }\n\n formatForEditor(value: any): any {\n return value == null ? '' : value\n }\n\n formatFromEditor(value: any): any {\n return value\n }\n\n _onfocusout() {\n // paste시 field-change는 Body에서 하므로 X\n if (this.field?.isWorking === true) return\n\n const { name = '' } = this.column\n var currentValue = this.record[name] || ''\n\n if (this._dirtyValue !== currentValue) {\n this.dispatchEvent(\n new CustomEvent('field-change', {\n bubbles: true,\n composed: true,\n detail: {\n before: currentValue,\n after: this._dirtyValue,\n column: this.column,\n record: this.record,\n row: this.row\n }\n })\n )\n }\n }\n\n _onchange(e: Event): void {\n e.stopPropagation()\n\n const value = (e.target as any)?.value\n\n this._dirtyValue = this.formatFromEditor(value)\n }\n\n _onkeydown(e: Event): void {}\n\n _onclick(e: Event): void {\n e.stopPropagation()\n }\n\n _ondblclick(e: Event): void {\n e.stopPropagation()\n }\n\n get editorTemplate() {\n return html``\n }\n}\n"]}
1
+ {"version":3,"file":"ox-grist-editor.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, LitElement, PropertyValues } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { ZERO_COLUMN, ZERO_RECORD } from '../configure/zero-config.js'\nimport { DataGridField } from '../data-grid/data-grid-field.js'\nimport { ColumnConfig, GristRecord } from '../types.js'\nimport { getDefaultValue } from '@operato/time-calculator'\n\nconst STYLE = css`\n :host {\n display: flex;\n\n align-items: center;\n\n width: 100%;\n height: 100%;\n\n border: 0;\n background-color: transparent;\n\n overflow: hidden;\n justify-content: var(--data-grid-field-justify-content, flex-start);\n }\n\n :host > * {\n display: flex;\n\n width: 100%;\n height: 100%;\n\n border: 0;\n background-color: transparent;\n\n box-sizing: border-box;\n\n align-items: center;\n }\n\n :host > style {\n display: none;\n }\n\n :host > input {\n color: var(--md-sys-color-on-background);\n }\n\n :host > input[type='checkbox'] {\n width: initial;\n margin: 0;\n }\n *:focus {\n outline: none;\n }\n\n input[type='file'] {\n opacity: 0%;\n }\n\n @media screen and (max-width: 460px) {\n :host > * {\n border: initial;\n background-color: initial;\n }\n\n *:focus {\n outline: none;\n }\n\n input,\n select,\n textarea {\n font-size: 16px;\n }\n }\n`\n\n@customElement('ox-grist-editor')\nexport class OxGristEditor extends LitElement {\n static styles = [STYLE]\n\n @property({ type: Object }) value?: any\n @property({ type: Object }) column: ColumnConfig = ZERO_COLUMN\n @property({ type: Object }) record: GristRecord = ZERO_RECORD\n @property({ type: Number }) rowIndex?: number\n @property({ type: Object }) field?: DataGridField\n @property({ type: Number }) row?: number\n\n protected _dirtyValue?: any\n\n render() {\n return this.editorTemplate\n }\n\n get editor(): HTMLElement | null {\n return this.renderRoot.firstElementChild as HTMLElement\n }\n\n get inlineEditable() {\n return false\n }\n\n async firstUpdated() {\n this.renderRoot.addEventListener('change', this._onchange.bind(this))\n this.renderRoot.addEventListener('focusout', this._onfocusout.bind(this))\n this.addEventListener('click', this._onclick.bind(this))\n this.addEventListener('dblclick', this._ondblclick.bind(this))\n this.addEventListener('keydown', this._onkeydown.bind(this))\n\n /* editor mode 인 경우의 마우스 움직임이, grist-body의 이벤트 처리에 의해서 에디터를 리셋시킬 수 있으므로, 이벤트 전파를 막는다. */\n this.addEventListener('pointerdown', (e: Event) => e.stopPropagation())\n this.addEventListener('pointermove', (e: Event) => e.stopPropagation())\n this.addEventListener('pointerup', (e: Event) => e.stopPropagation())\n\n const { name = '' } = this.column\n const { align, defaultValue } = this.column.record\n\n if (align) {\n this.style.textAlign = align\n this.style.textAlignLast = align /* for select */\n }\n\n var currentValue = this.record[name]\n\n if (typeof currentValue == 'undefined' && defaultValue) {\n currentValue = getDefaultValue(defaultValue, this.record)\n }\n\n this.value = this._dirtyValue = this.formatForEditor(currentValue)\n\n // 입력을 위한 키를 누르면서 편집모드가 될때는 누른 키가 처음에 입력되도록, enter 같은 것을 눌러서 편집모드가 되면 현재 값으로 편집모드 전환\n const valueWith = this.inlineEditable && this.field?.valueWith\n this.value = this._dirtyValue = valueWith ? this.formatFromEditor(valueWith) : this.formatForEditor(currentValue)\n\n requestAnimationFrame(() => {\n this.focus()\n !valueWith && this.select()\n })\n }\n\n select() {\n const editor = this.editor\n if ((editor as HTMLInputElement)?.select) {\n return (editor as HTMLInputElement).select()\n }\n }\n\n focus() {\n const editor = this.editor\n if (editor) {\n editor.focus()\n }\n }\n\n formatForEditor(value: any): any {\n return value == null ? '' : value\n }\n\n formatFromEditor(value: any): any {\n return value\n }\n\n _onfocusout() {\n // paste시 field-change는 Body에서 하므로 X\n if (this.field?.isWorking === true) return\n\n const { name = '' } = this.column\n var currentValue = this.record[name] || ''\n\n if (this._dirtyValue !== currentValue) {\n this.dispatchEvent(\n new CustomEvent('field-change', {\n bubbles: true,\n composed: true,\n detail: {\n before: currentValue,\n after: this._dirtyValue,\n column: this.column,\n record: this.record,\n row: this.row\n }\n })\n )\n }\n }\n\n _onchange(e: Event): void {\n e.stopPropagation()\n\n const value = (e.target as any)?.value\n\n this._dirtyValue = this.formatFromEditor(value)\n }\n\n _onkeydown(e: Event): void {}\n\n _onclick(e: Event): void {\n e.stopPropagation()\n }\n\n _ondblclick(e: Event): void {\n e.stopPropagation()\n }\n\n get editorTemplate() {\n return html``\n }\n}\n"]}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { PropertyValues } from 'lit';
5
5
  import { OxFormField } from '@operato/input';
6
- import { GristRecord } from '../types';
6
+ import { GristRecord } from '../types.js';
7
7
  export declare class OxInputTree extends OxFormField {
8
8
  static styles: import("lit").CSSResult;
9
9
  record: GristRecord;
@@ -9,7 +9,36 @@ import { OxFormField } from '@operato/input';
9
9
  let OxInputTree = class OxInputTree extends OxFormField {
10
10
  constructor() {
11
11
  super(...arguments);
12
- this.expanded = false;
12
+ Object.defineProperty(this, "record", {
13
+ enumerable: true,
14
+ configurable: true,
15
+ writable: true,
16
+ value: void 0
17
+ });
18
+ Object.defineProperty(this, "selectable", {
19
+ enumerable: true,
20
+ configurable: true,
21
+ writable: true,
22
+ value: void 0
23
+ });
24
+ Object.defineProperty(this, "checked", {
25
+ enumerable: true,
26
+ configurable: true,
27
+ writable: true,
28
+ value: void 0
29
+ });
30
+ Object.defineProperty(this, "expanded", {
31
+ enumerable: true,
32
+ configurable: true,
33
+ writable: true,
34
+ value: false
35
+ });
36
+ Object.defineProperty(this, "input", {
37
+ enumerable: true,
38
+ configurable: true,
39
+ writable: true,
40
+ value: void 0
41
+ });
13
42
  }
14
43
  render() {
15
44
  var { __children__ } = this.record;
@@ -76,7 +105,11 @@ let OxInputTree = class OxInputTree extends OxFormField {
76
105
  this.requestUpdate();
77
106
  }
78
107
  };
79
- OxInputTree.styles = css `
108
+ Object.defineProperty(OxInputTree, "styles", {
109
+ enumerable: true,
110
+ configurable: true,
111
+ writable: true,
112
+ value: css `
80
113
  :host {
81
114
  overflow: hidden;
82
115
  }
@@ -198,7 +231,8 @@ OxInputTree.styles = css `
198
231
  input:focus {
199
232
  outline: none;
200
233
  }
201
- `;
234
+ `
235
+ });
202
236
  __decorate([
203
237
  property({ type: Object })
204
238
  ], OxInputTree.prototype, "record", void 0);