@operato/data-grist 9.0.0-beta.62 → 9.0.0-beta.64

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 (424) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/src/accumulator/accumulator.d.ts +2 -0
  3. package/dist/src/accumulator/accumulator.js +42 -0
  4. package/dist/src/accumulator/accumulator.js.map +1 -0
  5. package/dist/src/configure/column-builder.d.ts +2 -0
  6. package/dist/src/configure/column-builder.js +99 -0
  7. package/dist/src/configure/column-builder.js.map +1 -0
  8. package/dist/src/configure/config-builder.d.ts +2 -0
  9. package/dist/src/configure/config-builder.js +36 -0
  10. package/dist/src/configure/config-builder.js.map +1 -0
  11. package/dist/src/configure/filters-option-builder.d.ts +2 -0
  12. package/dist/src/configure/filters-option-builder.js +7 -0
  13. package/dist/src/configure/filters-option-builder.js.map +1 -0
  14. package/dist/src/configure/imex-option-builder.d.ts +2 -0
  15. package/dist/src/configure/imex-option-builder.js +4 -0
  16. package/dist/src/configure/imex-option-builder.js.map +1 -0
  17. package/dist/src/configure/list-option-builder.d.ts +2 -0
  18. package/dist/src/configure/list-option-builder.js +8 -0
  19. package/dist/src/configure/list-option-builder.js.map +1 -0
  20. package/dist/src/configure/rows-option-builder.d.ts +2 -0
  21. package/dist/src/configure/rows-option-builder.js +26 -0
  22. package/dist/src/configure/rows-option-builder.js.map +1 -0
  23. package/dist/src/configure/tree-option-builder.d.ts +2 -0
  24. package/dist/src/configure/tree-option-builder.js +18 -0
  25. package/dist/src/configure/tree-option-builder.js.map +1 -0
  26. package/dist/src/configure/zero-config.d.ts +23 -0
  27. package/dist/src/configure/zero-config.js +59 -0
  28. package/dist/src/configure/zero-config.js.map +1 -0
  29. package/dist/src/const.d.ts +1 -0
  30. package/dist/src/const.js +2 -0
  31. package/dist/src/const.js.map +1 -0
  32. package/dist/src/data-card/data-card-field.d.ts +11 -0
  33. package/dist/src/data-card/data-card-field.js +106 -0
  34. package/dist/src/data-card/data-card-field.js.map +1 -0
  35. package/dist/src/data-card/data-card-gutter-menu.d.ts +2 -0
  36. package/dist/src/data-card/data-card-gutter-menu.js +96 -0
  37. package/dist/src/data-card/data-card-gutter-menu.js.map +1 -0
  38. package/dist/src/data-card/data-card-gutter.d.ts +12 -0
  39. package/dist/src/data-card/data-card-gutter.js +116 -0
  40. package/dist/src/data-card/data-card-gutter.js.map +1 -0
  41. package/dist/src/data-card/data-card.d.ts +19 -0
  42. package/dist/src/data-card/data-card.js +149 -0
  43. package/dist/src/data-card/data-card.js.map +1 -0
  44. package/dist/src/data-card/event-handlers/record-card-click-handler.d.ts +7 -0
  45. package/dist/src/data-card/event-handlers/record-card-click-handler.js +29 -0
  46. package/dist/src/data-card/event-handlers/record-card-click-handler.js.map +1 -0
  47. package/dist/src/data-card/event-handlers/record-card-dblclick-handler.d.ts +7 -0
  48. package/dist/src/data-card/event-handlers/record-card-dblclick-handler.js +29 -0
  49. package/dist/src/data-card/event-handlers/record-card-dblclick-handler.js.map +1 -0
  50. package/dist/src/data-card/record-card.d.ts +23 -0
  51. package/dist/src/data-card/record-card.js +288 -0
  52. package/dist/src/data-card/record-card.js.map +1 -0
  53. package/dist/src/data-consumer.d.ts +10 -0
  54. package/dist/src/data-consumer.js +2 -0
  55. package/dist/src/data-consumer.js.map +1 -0
  56. package/dist/src/data-grid/data-grid-accum-field.d.ts +16 -0
  57. package/dist/src/data-grid/data-grid-accum-field.js +133 -0
  58. package/dist/src/data-grid/data-grid-accum-field.js.map +1 -0
  59. package/dist/src/data-grid/data-grid-body-style.d.ts +1 -0
  60. package/dist/src/data-grid/data-grid-body-style.js +99 -0
  61. package/dist/src/data-grid/data-grid-body-style.js.map +1 -0
  62. package/dist/src/data-grid/data-grid-body.d.ts +52 -0
  63. package/dist/src/data-grid/data-grid-body.js +660 -0
  64. package/dist/src/data-grid/data-grid-body.js.map +1 -0
  65. package/dist/src/data-grid/data-grid-field.d.ts +25 -0
  66. package/dist/src/data-grid/data-grid-field.js +263 -0
  67. package/dist/src/data-grid/data-grid-field.js.map +1 -0
  68. package/dist/src/data-grid/data-grid-footer.d.ts +11 -0
  69. package/dist/src/data-grid/data-grid-footer.js +120 -0
  70. package/dist/src/data-grid/data-grid-footer.js.map +1 -0
  71. package/dist/src/data-grid/data-grid-header.d.ts +29 -0
  72. package/dist/src/data-grid/data-grid-header.js +531 -0
  73. package/dist/src/data-grid/data-grid-header.js.map +1 -0
  74. package/dist/src/data-grid/data-grid.d.ts +36 -0
  75. package/dist/src/data-grid/data-grid.js +260 -0
  76. package/dist/src/data-grid/data-grid.js.map +1 -0
  77. package/dist/src/data-grid/event-handlers/data-grid-body-click-handler.d.ts +7 -0
  78. package/dist/src/data-grid/event-handlers/data-grid-body-click-handler.js +57 -0
  79. package/dist/src/data-grid/event-handlers/data-grid-body-click-handler.js.map +1 -0
  80. package/dist/src/data-grid/event-handlers/data-grid-body-contextmenu-handler.d.ts +7 -0
  81. package/dist/src/data-grid/event-handlers/data-grid-body-contextmenu-handler.js +25 -0
  82. package/dist/src/data-grid/event-handlers/data-grid-body-contextmenu-handler.js.map +1 -0
  83. package/dist/src/data-grid/event-handlers/data-grid-body-dblclick-handler.d.ts +7 -0
  84. package/dist/src/data-grid/event-handlers/data-grid-body-dblclick-handler.js +34 -0
  85. package/dist/src/data-grid/event-handlers/data-grid-body-dblclick-handler.js.map +1 -0
  86. package/dist/src/data-grid/event-handlers/data-grid-body-focus-change-handler.d.ts +7 -0
  87. package/dist/src/data-grid/event-handlers/data-grid-body-focus-change-handler.js +19 -0
  88. package/dist/src/data-grid/event-handlers/data-grid-body-focus-change-handler.js.map +1 -0
  89. package/dist/src/data-grid/event-handlers/data-grid-body-keydown-handler.d.ts +7 -0
  90. package/dist/src/data-grid/event-handlers/data-grid-body-keydown-handler.js +226 -0
  91. package/dist/src/data-grid/event-handlers/data-grid-body-keydown-handler.js.map +1 -0
  92. package/dist/src/data-grist.d.ts +367 -0
  93. package/dist/src/data-grist.js +1064 -0
  94. package/dist/src/data-grist.js.map +1 -0
  95. package/dist/src/data-list/data-list-field.d.ts +11 -0
  96. package/dist/src/data-list/data-list-field.js +95 -0
  97. package/dist/src/data-list/data-list-field.js.map +1 -0
  98. package/dist/src/data-list/data-list-gutter.d.ts +12 -0
  99. package/dist/src/data-list/data-list-gutter.js +121 -0
  100. package/dist/src/data-list/data-list-gutter.js.map +1 -0
  101. package/dist/src/data-list/data-list.d.ts +18 -0
  102. package/dist/src/data-list/data-list.js +139 -0
  103. package/dist/src/data-list/data-list.js.map +1 -0
  104. package/dist/src/data-list/event-handlers/record-partial-click-handler.d.ts +7 -0
  105. package/dist/src/data-list/event-handlers/record-partial-click-handler.js +29 -0
  106. package/dist/src/data-list/event-handlers/record-partial-click-handler.js.map +1 -0
  107. package/dist/src/data-list/event-handlers/record-partial-dblclick-handler.d.ts +7 -0
  108. package/dist/src/data-list/event-handlers/record-partial-dblclick-handler.js +29 -0
  109. package/dist/src/data-list/event-handlers/record-partial-dblclick-handler.js.map +1 -0
  110. package/dist/src/data-list/event-handlers/record-partial-long-press-handler.d.ts +7 -0
  111. package/dist/src/data-list/event-handlers/record-partial-long-press-handler.js +29 -0
  112. package/dist/src/data-list/event-handlers/record-partial-long-press-handler.js.map +1 -0
  113. package/dist/src/data-list/record-partial.d.ts +21 -0
  114. package/dist/src/data-list/record-partial.js +252 -0
  115. package/dist/src/data-list/record-partial.js.map +1 -0
  116. package/dist/src/data-manipulator.d.ts +38 -0
  117. package/dist/src/data-manipulator.js +324 -0
  118. package/dist/src/data-manipulator.js.map +1 -0
  119. package/dist/src/data-provider.d.ts +50 -0
  120. package/dist/src/data-provider.js +200 -0
  121. package/dist/src/data-provider.js.map +1 -0
  122. package/dist/src/data-report/data-report-body-style.d.ts +1 -0
  123. package/dist/src/data-report/data-report-body-style.js +58 -0
  124. package/dist/src/data-report/data-report-body-style.js.map +1 -0
  125. package/dist/src/data-report/data-report-body.d.ts +18 -0
  126. package/dist/src/data-report/data-report-body.js +181 -0
  127. package/dist/src/data-report/data-report-body.js.map +1 -0
  128. package/dist/src/data-report/data-report-component.d.ts +21 -0
  129. package/dist/src/data-report/data-report-component.js +138 -0
  130. package/dist/src/data-report/data-report-component.js.map +1 -0
  131. package/dist/src/data-report/data-report-field.d.ts +13 -0
  132. package/dist/src/data-report/data-report-field.js +99 -0
  133. package/dist/src/data-report/data-report-field.js.map +1 -0
  134. package/dist/src/data-report/data-report-header.d.ts +1 -0
  135. package/dist/src/data-report/data-report-header.js +221 -0
  136. package/dist/src/data-report/data-report-header.js.map +1 -0
  137. package/dist/src/data-report/event-handlers/data-report-body-click-handler.d.ts +5 -0
  138. package/dist/src/data-report/event-handlers/data-report-body-click-handler.js +33 -0
  139. package/dist/src/data-report/event-handlers/data-report-body-click-handler.js.map +1 -0
  140. package/dist/src/data-report/event-handlers/data-report-body-dblclick-handler.d.ts +5 -0
  141. package/dist/src/data-report/event-handlers/data-report-body-dblclick-handler.js +19 -0
  142. package/dist/src/data-report/event-handlers/data-report-body-dblclick-handler.js.map +1 -0
  143. package/dist/src/data-report/event-handlers/data-report-body-keydown-handler.d.ts +5 -0
  144. package/dist/src/data-report/event-handlers/data-report-body-keydown-handler.js +58 -0
  145. package/dist/src/data-report/event-handlers/data-report-body-keydown-handler.js.map +1 -0
  146. package/dist/src/data-report.d.ts +44 -0
  147. package/dist/src/data-report.js +386 -0
  148. package/dist/src/data-report.js.map +1 -0
  149. package/dist/src/editors/index.d.ts +3 -0
  150. package/dist/src/editors/index.js +4 -0
  151. package/dist/src/editors/index.js.map +1 -0
  152. package/dist/src/editors/ox-grist-editor-checkbox.d.ts +7 -0
  153. package/dist/src/editors/ox-grist-editor-checkbox.js +27 -0
  154. package/dist/src/editors/ox-grist-editor-checkbox.js.map +1 -0
  155. package/dist/src/editors/ox-grist-editor-color.d.ts +4 -0
  156. package/dist/src/editors/ox-grist-editor-color.js +14 -0
  157. package/dist/src/editors/ox-grist-editor-color.js.map +1 -0
  158. package/dist/src/editors/ox-grist-editor-date.d.ts +4 -0
  159. package/dist/src/editors/ox-grist-editor-date.js +14 -0
  160. package/dist/src/editors/ox-grist-editor-date.js.map +1 -0
  161. package/dist/src/editors/ox-grist-editor-datetime.d.ts +6 -0
  162. package/dist/src/editors/ox-grist-editor-datetime.js +26 -0
  163. package/dist/src/editors/ox-grist-editor-datetime.js.map +1 -0
  164. package/dist/src/editors/ox-grist-editor-email.d.ts +4 -0
  165. package/dist/src/editors/ox-grist-editor-email.js +14 -0
  166. package/dist/src/editors/ox-grist-editor-email.js.map +1 -0
  167. package/dist/src/editors/ox-grist-editor-file.d.ts +6 -0
  168. package/dist/src/editors/ox-grist-editor-file.js +25 -0
  169. package/dist/src/editors/ox-grist-editor-file.js.map +1 -0
  170. package/dist/src/editors/ox-grist-editor-image.d.ts +7 -0
  171. package/dist/src/editors/ox-grist-editor-image.js +31 -0
  172. package/dist/src/editors/ox-grist-editor-image.js.map +1 -0
  173. package/dist/src/editors/ox-grist-editor-json5.d.ts +8 -0
  174. package/dist/src/editors/ox-grist-editor-json5.js +66 -0
  175. package/dist/src/editors/ox-grist-editor-json5.js.map +1 -0
  176. package/dist/src/editors/ox-grist-editor-month.d.ts +4 -0
  177. package/dist/src/editors/ox-grist-editor-month.js +14 -0
  178. package/dist/src/editors/ox-grist-editor-month.js.map +1 -0
  179. package/dist/src/editors/ox-grist-editor-multiple-select.d.ts +8 -0
  180. package/dist/src/editors/ox-grist-editor-multiple-select.js +52 -0
  181. package/dist/src/editors/ox-grist-editor-multiple-select.js.map +1 -0
  182. package/dist/src/editors/ox-grist-editor-number.d.ts +6 -0
  183. package/dist/src/editors/ox-grist-editor-number.js +27 -0
  184. package/dist/src/editors/ox-grist-editor-number.js.map +1 -0
  185. package/dist/src/editors/ox-grist-editor-password.d.ts +4 -0
  186. package/dist/src/editors/ox-grist-editor-password.js +14 -0
  187. package/dist/src/editors/ox-grist-editor-password.js.map +1 -0
  188. package/dist/src/editors/ox-grist-editor-select.d.ts +4 -0
  189. package/dist/src/editors/ox-grist-editor-select.js +53 -0
  190. package/dist/src/editors/ox-grist-editor-select.js.map +1 -0
  191. package/dist/src/editors/ox-grist-editor-tel.d.ts +4 -0
  192. package/dist/src/editors/ox-grist-editor-tel.js +14 -0
  193. package/dist/src/editors/ox-grist-editor-tel.js.map +1 -0
  194. package/dist/src/editors/ox-grist-editor-text.d.ts +5 -0
  195. package/dist/src/editors/ox-grist-editor-text.js +17 -0
  196. package/dist/src/editors/ox-grist-editor-text.js.map +1 -0
  197. package/dist/src/editors/ox-grist-editor-textarea.d.ts +6 -0
  198. package/dist/src/editors/ox-grist-editor-textarea.js +18 -0
  199. package/dist/src/editors/ox-grist-editor-textarea.js.map +1 -0
  200. package/dist/src/editors/ox-grist-editor-time.d.ts +4 -0
  201. package/dist/src/editors/ox-grist-editor-time.js +14 -0
  202. package/dist/src/editors/ox-grist-editor-time.js.map +1 -0
  203. package/dist/src/editors/ox-grist-editor-tree.d.ts +6 -0
  204. package/dist/src/editors/ox-grist-editor-tree.js +27 -0
  205. package/dist/src/editors/ox-grist-editor-tree.js.map +1 -0
  206. package/dist/src/editors/ox-grist-editor-varname.d.ts +6 -0
  207. package/dist/src/editors/ox-grist-editor-varname.js +36 -0
  208. package/dist/src/editors/ox-grist-editor-varname.js.map +1 -0
  209. package/dist/src/editors/ox-grist-editor-week.d.ts +4 -0
  210. package/dist/src/editors/ox-grist-editor-week.js +14 -0
  211. package/dist/src/editors/ox-grist-editor-week.js.map +1 -0
  212. package/dist/src/editors/ox-grist-editor.d.ts +27 -0
  213. package/dist/src/editors/ox-grist-editor.js +197 -0
  214. package/dist/src/editors/ox-grist-editor.js.map +1 -0
  215. package/dist/src/editors/ox-input-tree.d.ts +20 -0
  216. package/dist/src/editors/ox-input-tree.js +221 -0
  217. package/dist/src/editors/ox-input-tree.js.map +1 -0
  218. package/dist/src/editors/ox-popup-code-input.d.ts +14 -0
  219. package/dist/src/editors/ox-popup-code-input.js +78 -0
  220. package/dist/src/editors/ox-popup-code-input.js.map +1 -0
  221. package/dist/src/editors/registry.d.ts +12 -0
  222. package/dist/src/editors/registry.js +73 -0
  223. package/dist/src/editors/registry.js.map +1 -0
  224. package/dist/src/empty-note.d.ts +9 -0
  225. package/dist/src/empty-note.js +53 -0
  226. package/dist/src/empty-note.js.map +1 -0
  227. package/dist/src/filters/filter-checkbox.d.ts +3 -0
  228. package/dist/src/filters/filter-checkbox.js +41 -0
  229. package/dist/src/filters/filter-checkbox.js.map +1 -0
  230. package/dist/src/filters/filter-input-barcode.d.ts +3 -0
  231. package/dist/src/filters/filter-input-barcode.js +28 -0
  232. package/dist/src/filters/filter-input-barcode.js.map +1 -0
  233. package/dist/src/filters/filter-input.d.ts +2 -0
  234. package/dist/src/filters/filter-input.js +25 -0
  235. package/dist/src/filters/filter-input.js.map +1 -0
  236. package/dist/src/filters/filter-range-date.d.ts +2 -0
  237. package/dist/src/filters/filter-range-date.js +66 -0
  238. package/dist/src/filters/filter-range-date.js.map +1 -0
  239. package/dist/src/filters/filter-range-number.d.ts +2 -0
  240. package/dist/src/filters/filter-range-number.js +54 -0
  241. package/dist/src/filters/filter-range-number.js.map +1 -0
  242. package/dist/src/filters/filter-select-buttons.d.ts +3 -0
  243. package/dist/src/filters/filter-select-buttons.js +50 -0
  244. package/dist/src/filters/filter-select-buttons.js.map +1 -0
  245. package/dist/src/filters/filter-select.d.ts +3 -0
  246. package/dist/src/filters/filter-select.js +52 -0
  247. package/dist/src/filters/filter-select.js.map +1 -0
  248. package/dist/src/filters/filter-styles.d.ts +1 -0
  249. package/dist/src/filters/filter-styles.js +119 -0
  250. package/dist/src/filters/filter-styles.js.map +1 -0
  251. package/dist/src/filters/filters-form.d.ts +40 -0
  252. package/dist/src/filters/filters-form.js +430 -0
  253. package/dist/src/filters/filters-form.js.map +1 -0
  254. package/dist/src/filters/index.d.ts +8 -0
  255. package/dist/src/filters/index.js +9 -0
  256. package/dist/src/filters/index.js.map +1 -0
  257. package/dist/src/filters/registry.d.ts +7 -0
  258. package/dist/src/filters/registry.js +48 -0
  259. package/dist/src/filters/registry.js.map +1 -0
  260. package/dist/src/formatters/date-formatter.d.ts +1 -0
  261. package/dist/src/formatters/date-formatter.js +4 -0
  262. package/dist/src/formatters/date-formatter.js.map +1 -0
  263. package/dist/src/formatters/index.d.ts +1 -0
  264. package/dist/src/formatters/index.js +2 -0
  265. package/dist/src/formatters/index.js.map +1 -0
  266. package/dist/src/formatters/number-formatter.d.ts +1 -0
  267. package/dist/src/formatters/number-formatter.js +4 -0
  268. package/dist/src/formatters/number-formatter.js.map +1 -0
  269. package/dist/src/formatters/registry.d.ts +6 -0
  270. package/dist/src/formatters/registry.js +25 -0
  271. package/dist/src/formatters/registry.js.map +1 -0
  272. package/dist/src/formatters/text-formatter.d.ts +1 -0
  273. package/dist/src/formatters/text-formatter.js +4 -0
  274. package/dist/src/formatters/text-formatter.js.map +1 -0
  275. package/dist/src/gutters/gutter-button.d.ts +21 -0
  276. package/dist/src/gutters/gutter-button.js +40 -0
  277. package/dist/src/gutters/gutter-button.js.map +1 -0
  278. package/dist/src/gutters/gutter-dirty.d.ts +23 -0
  279. package/dist/src/gutters/gutter-dirty.js +87 -0
  280. package/dist/src/gutters/gutter-dirty.js.map +1 -0
  281. package/dist/src/gutters/gutter-row-selector.d.ts +21 -0
  282. package/dist/src/gutters/gutter-row-selector.js +70 -0
  283. package/dist/src/gutters/gutter-row-selector.js.map +1 -0
  284. package/dist/src/gutters/gutter-sequence.d.ts +35 -0
  285. package/dist/src/gutters/gutter-sequence.js +48 -0
  286. package/dist/src/gutters/gutter-sequence.js.map +1 -0
  287. package/dist/src/gutters/index.d.ts +1 -0
  288. package/dist/src/gutters/index.js +2 -0
  289. package/dist/src/gutters/index.js.map +1 -0
  290. package/dist/src/gutters/registry.d.ts +7 -0
  291. package/dist/src/gutters/registry.js +26 -0
  292. package/dist/src/gutters/registry.js.map +1 -0
  293. package/dist/src/handlers/contextmenu-tree-mutation.d.ts +3 -0
  294. package/dist/src/handlers/contextmenu-tree-mutation.js +64 -0
  295. package/dist/src/handlers/contextmenu-tree-mutation.js.map +1 -0
  296. package/dist/src/handlers/index.d.ts +1 -0
  297. package/dist/src/handlers/index.js +2 -0
  298. package/dist/src/handlers/index.js.map +1 -0
  299. package/dist/src/handlers/move-down.d.ts +3 -0
  300. package/dist/src/handlers/move-down.js +26 -0
  301. package/dist/src/handlers/move-down.js.map +1 -0
  302. package/dist/src/handlers/move-up.d.ts +3 -0
  303. package/dist/src/handlers/move-up.js +26 -0
  304. package/dist/src/handlers/move-up.js.map +1 -0
  305. package/dist/src/handlers/record-copy.d.ts +3 -0
  306. package/dist/src/handlers/record-copy.js +23 -0
  307. package/dist/src/handlers/record-copy.js.map +1 -0
  308. package/dist/src/handlers/record-delete.d.ts +3 -0
  309. package/dist/src/handlers/record-delete.js +16 -0
  310. package/dist/src/handlers/record-delete.js.map +1 -0
  311. package/dist/src/handlers/record-view-handler.d.ts +3 -0
  312. package/dist/src/handlers/record-view-handler.js +15 -0
  313. package/dist/src/handlers/record-view-handler.js.map +1 -0
  314. package/dist/src/handlers/registry.d.ts +7 -0
  315. package/dist/src/handlers/registry.js +34 -0
  316. package/dist/src/handlers/registry.js.map +1 -0
  317. package/dist/src/handlers/select-row-toggle.d.ts +3 -0
  318. package/dist/src/handlers/select-row-toggle.js +18 -0
  319. package/dist/src/handlers/select-row-toggle.js.map +1 -0
  320. package/dist/src/handlers/select-row.d.ts +3 -0
  321. package/dist/src/handlers/select-row.js +14 -0
  322. package/dist/src/handlers/select-row.js.map +1 -0
  323. package/dist/src/index.d.ts +14 -0
  324. package/dist/src/index.js +15 -0
  325. package/dist/src/index.js.map +1 -0
  326. package/dist/src/personalizer/index.d.ts +1 -0
  327. package/dist/src/personalizer/index.js +2 -0
  328. package/dist/src/personalizer/index.js.map +1 -0
  329. package/dist/src/personalizer/ox-grist-filter-personalizer.d.ts +8 -0
  330. package/dist/src/personalizer/ox-grist-filter-personalizer.js +178 -0
  331. package/dist/src/personalizer/ox-grist-filter-personalizer.js.map +1 -0
  332. package/dist/src/personalizer/ox-grist-personalizer.d.ts +8 -0
  333. package/dist/src/personalizer/ox-grist-personalizer.js +212 -0
  334. package/dist/src/personalizer/ox-grist-personalizer.js.map +1 -0
  335. package/dist/src/record-view/event-handlers/record-view-body-click-handler.d.ts +7 -0
  336. package/dist/src/record-view/event-handlers/record-view-body-click-handler.js +27 -0
  337. package/dist/src/record-view/event-handlers/record-view-body-click-handler.js.map +1 -0
  338. package/dist/src/record-view/event-handlers/record-view-body-keydown-handler.d.ts +7 -0
  339. package/dist/src/record-view/event-handlers/record-view-body-keydown-handler.js +22 -0
  340. package/dist/src/record-view/event-handlers/record-view-body-keydown-handler.js.map +1 -0
  341. package/dist/src/record-view/index.d.ts +2 -0
  342. package/dist/src/record-view/index.js +3 -0
  343. package/dist/src/record-view/index.js.map +1 -0
  344. package/dist/src/record-view/ox-record-creator.d.ts +26 -0
  345. package/dist/src/record-view/ox-record-creator.js +247 -0
  346. package/dist/src/record-view/ox-record-creator.js.map +1 -0
  347. package/dist/src/record-view/record-view-body.d.ts +21 -0
  348. package/dist/src/record-view/record-view-body.js +252 -0
  349. package/dist/src/record-view/record-view-body.js.map +1 -0
  350. package/dist/src/record-view/record-view-handler.d.ts +9 -0
  351. package/dist/src/record-view/record-view-handler.js +57 -0
  352. package/dist/src/record-view/record-view-handler.js.map +1 -0
  353. package/dist/src/record-view/record-view.d.ts +23 -0
  354. package/dist/src/record-view/record-view.js +117 -0
  355. package/dist/src/record-view/record-view.js.map +1 -0
  356. package/dist/src/renderers/index.d.ts +13 -0
  357. package/dist/src/renderers/index.js +14 -0
  358. package/dist/src/renderers/index.js.map +1 -0
  359. package/dist/src/renderers/ox-grist-renderer-boolean.d.ts +2 -0
  360. package/dist/src/renderers/ox-grist-renderer-boolean.js +39 -0
  361. package/dist/src/renderers/ox-grist-renderer-boolean.js.map +1 -0
  362. package/dist/src/renderers/ox-grist-renderer-color.d.ts +2 -0
  363. package/dist/src/renderers/ox-grist-renderer-color.js +12 -0
  364. package/dist/src/renderers/ox-grist-renderer-color.js.map +1 -0
  365. package/dist/src/renderers/ox-grist-renderer-date.d.ts +2 -0
  366. package/dist/src/renderers/ox-grist-renderer-date.js +53 -0
  367. package/dist/src/renderers/ox-grist-renderer-date.js.map +1 -0
  368. package/dist/src/renderers/ox-grist-renderer-file.d.ts +2 -0
  369. package/dist/src/renderers/ox-grist-renderer-file.js +27 -0
  370. package/dist/src/renderers/ox-grist-renderer-file.js.map +1 -0
  371. package/dist/src/renderers/ox-grist-renderer-image.d.ts +2 -0
  372. package/dist/src/renderers/ox-grist-renderer-image.js +24 -0
  373. package/dist/src/renderers/ox-grist-renderer-image.js.map +1 -0
  374. package/dist/src/renderers/ox-grist-renderer-json5.d.ts +2 -0
  375. package/dist/src/renderers/ox-grist-renderer-json5.js +30 -0
  376. package/dist/src/renderers/ox-grist-renderer-json5.js.map +1 -0
  377. package/dist/src/renderers/ox-grist-renderer-link.d.ts +2 -0
  378. package/dist/src/renderers/ox-grist-renderer-link.js +12 -0
  379. package/dist/src/renderers/ox-grist-renderer-link.js.map +1 -0
  380. package/dist/src/renderers/ox-grist-renderer-password.d.ts +2 -0
  381. package/dist/src/renderers/ox-grist-renderer-password.js +5 -0
  382. package/dist/src/renderers/ox-grist-renderer-password.js.map +1 -0
  383. package/dist/src/renderers/ox-grist-renderer-progress.d.ts +5 -0
  384. package/dist/src/renderers/ox-grist-renderer-progress.js +46 -0
  385. package/dist/src/renderers/ox-grist-renderer-progress.js.map +1 -0
  386. package/dist/src/renderers/ox-grist-renderer-select.d.ts +2 -0
  387. package/dist/src/renderers/ox-grist-renderer-select.js +50 -0
  388. package/dist/src/renderers/ox-grist-renderer-select.js.map +1 -0
  389. package/dist/src/renderers/ox-grist-renderer-text.d.ts +2 -0
  390. package/dist/src/renderers/ox-grist-renderer-text.js +11 -0
  391. package/dist/src/renderers/ox-grist-renderer-text.js.map +1 -0
  392. package/dist/src/renderers/ox-grist-renderer-textarea.d.ts +2 -0
  393. package/dist/src/renderers/ox-grist-renderer-textarea.js +5 -0
  394. package/dist/src/renderers/ox-grist-renderer-textarea.js.map +1 -0
  395. package/dist/src/renderers/ox-grist-renderer-tree.d.ts +12 -0
  396. package/dist/src/renderers/ox-grist-renderer-tree.js +183 -0
  397. package/dist/src/renderers/ox-grist-renderer-tree.js.map +1 -0
  398. package/dist/src/renderers/ox-grist-renderer.d.ts +15 -0
  399. package/dist/src/renderers/ox-grist-renderer.js +48 -0
  400. package/dist/src/renderers/ox-grist-renderer.js.map +1 -0
  401. package/dist/src/renderers/registry.d.ts +12 -0
  402. package/dist/src/renderers/registry.js +70 -0
  403. package/dist/src/renderers/registry.js.map +1 -0
  404. package/dist/src/sorters/sorters-control.d.ts +12 -0
  405. package/dist/src/sorters/sorters-control.js +138 -0
  406. package/dist/src/sorters/sorters-control.js.map +1 -0
  407. package/dist/src/types.d.ts +696 -0
  408. package/dist/src/types.js +23 -0
  409. package/dist/src/types.js.map +1 -0
  410. package/dist/src/utils/index.d.ts +2 -0
  411. package/dist/src/utils/index.js +3 -0
  412. package/dist/src/utils/index.js.map +1 -0
  413. package/dist/src/utils/list-param.d.ts +16 -0
  414. package/dist/src/utils/list-param.js +40 -0
  415. package/dist/src/utils/list-param.js.map +1 -0
  416. package/dist/src/utils/supports-passive.d.ts +1 -0
  417. package/dist/src/utils/supports-passive.js +13 -0
  418. package/dist/src/utils/supports-passive.js.map +1 -0
  419. package/dist/tsconfig.tsbuildinfo +1 -1
  420. package/package.json +9 -5
  421. package/dist/index.d.ts +0 -1
  422. package/dist/index.js +0 -2
  423. package/dist/index.js.map +0 -1
  424. package/index.ts +0 -1
@@ -0,0 +1,386 @@
1
+ import { __decorate } from "tslib";
2
+ import './data-report/data-report-component.js';
3
+ import { LitElement, css, html } from 'lit';
4
+ import { customElement, property, query, queryAsync, state } from 'lit/decorators.js';
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';
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
+ let DataReport = class DataReport extends LitElement {
13
+ constructor() {
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;
20
+ }
21
+ get mode() {
22
+ return 'REPORT';
23
+ }
24
+ connectedCallback() {
25
+ super.connectedCallback();
26
+ this.dataProvider = new DataProvider(this);
27
+ }
28
+ disconnectedCallback() {
29
+ var _a;
30
+ super.disconnectedCallback();
31
+ this.resetPullToRefresh();
32
+ (_a = this.dataProvider) === null || _a === void 0 ? void 0 : _a.dispose();
33
+ }
34
+ resetPullToRefresh() {
35
+ if (this.pulltorefreshHandle) {
36
+ this.pulltorefreshHandle();
37
+ delete this.pulltorefreshHandle;
38
+ }
39
+ }
40
+ async setPullToRefresh() {
41
+ this.resetPullToRefresh();
42
+ if (this.fetchHandler) {
43
+ this.pulltorefreshHandle = pulltorefresh({
44
+ container: await this.wrap,
45
+ scrollable: this.report.pullToRefreshTarget,
46
+ refresh: () => {
47
+ return this.fetch(true);
48
+ }
49
+ });
50
+ }
51
+ }
52
+ async firstUpdated() {
53
+ if (this.fetchHandler && this.autoFetch) {
54
+ await this.requestUpdate();
55
+ this.fetch(true);
56
+ }
57
+ }
58
+ render() {
59
+ var oops = !this._showSpinner && (!this._data || !this._data.records || this._data.records.length == 0);
60
+ return html `
61
+ ${oops ? html ` <ox-empty-note title="NO RECORDS"></ox-empty-note> ` : html ``}
62
+
63
+ <div id="wrap">
64
+ <ox-report-component id="report" .config=${this._config} .data=${this._data}> </ox-report-component>
65
+ </div>
66
+
67
+ <div id="spinner" ?show=${this._showSpinner}></div>
68
+ `;
69
+ }
70
+ async fetch(reset = true) {
71
+ if (!this._config) {
72
+ /* avoid to be here */
73
+ console.warn('report is not configured yet.');
74
+ return;
75
+ }
76
+ if (reset) {
77
+ /*
78
+ * scroll 의 현재위치에 의해서 scroll 이벤트가 발생할 수 있으므로, 이를 방지하기 위해서 스크롤의 위치를 TOP으로 옮긴다.
79
+ * (scroll 이 첫페이지 크기 이상으로 내려가 있는 경우, 첫페이지부터 다시 표시하는 경우에, scroll 이벤트가 발생한다.)
80
+ */
81
+ this.report.scrollTop = 0;
82
+ }
83
+ if (this.dataProvider) {
84
+ await this.dataProvider.attach(reset);
85
+ }
86
+ }
87
+ async updated(changes) {
88
+ if (changes.has('config')) {
89
+ this._config = buildConfig({
90
+ ...this.config
91
+ });
92
+ this.dataProvider && (this.dataProvider.sorters = this._config.sorters);
93
+ this.fetch();
94
+ }
95
+ if (changes.has('fetchHandler')) {
96
+ this.dataProvider && (this.dataProvider.fetchHandler = this.fetchHandler);
97
+ await this.setPullToRefresh();
98
+ }
99
+ if (changes.has('fetchOptions')) {
100
+ this.dataProvider && (this.dataProvider.fetchOptions = this.fetchOptions);
101
+ }
102
+ if (changes.has('data')) {
103
+ this.reset();
104
+ }
105
+ }
106
+ get dirtyData() {
107
+ var _a;
108
+ return ((_a = this.report) === null || _a === void 0 ? void 0 : _a.data) || {};
109
+ }
110
+ showSpinner() {
111
+ this._showSpinner = true;
112
+ }
113
+ hideSpinner() {
114
+ this._showSpinner = false;
115
+ }
116
+ focus() {
117
+ var _a;
118
+ super.focus();
119
+ (_a = this.report) === null || _a === void 0 ? void 0 : _a.focus();
120
+ }
121
+ /**
122
+ * Forced internal data to be reflected on the screen
123
+ * 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.
124
+ Therefore, it will be deprecated.
125
+ * @deprecated
126
+ * @method
127
+ */
128
+ refresh() {
129
+ this.requestUpdate();
130
+ }
131
+ reset() {
132
+ var { limit = ZERO_PAGINATION.limit, page = ZERO_PAGINATION.page, total = ZERO_PAGINATION.total, records = [] } = this.data;
133
+ this._data = {
134
+ limit,
135
+ page,
136
+ total,
137
+ records: this.sortByGroups(records).map((record, idx) => {
138
+ return {
139
+ ...record,
140
+ __seq__: (page - 1) * limit + idx + 1
141
+ };
142
+ })
143
+ };
144
+ }
145
+ sortByGroups(sortedRecords) {
146
+ var _a;
147
+ var { groups, totals } = this._config.rows;
148
+ var { columns } = this._config;
149
+ var getColumnIndex = (name) => columns.filter(column => !column.hidden).findIndex(column => column.name == name);
150
+ var groupFieldsForTotalRecord = [
151
+ /* add a group total record to the front. */
152
+ {
153
+ column: '*',
154
+ title: i18next.exists('text.ox-data-report-grand-total')
155
+ ? i18next.t('text.ox-data-report-grand-total')
156
+ : 'grand total',
157
+ align: 'right',
158
+ rowspan: 1
159
+ },
160
+ ...groups
161
+ ].map(group => {
162
+ return {
163
+ ...group,
164
+ titleColumn: buildColumn({
165
+ record: {
166
+ align: group.align || 'right'
167
+ }
168
+ })
169
+ };
170
+ });
171
+ let lastGroupValues;
172
+ let reportRecords = [];
173
+ let totalicRecords = sortedRecords[0]
174
+ ? (() => {
175
+ /* 처음 만드는 total records */
176
+ let record = sortedRecords[0];
177
+ let totalBase = totals.reduce((base, field) => {
178
+ var _a;
179
+ base[field] =
180
+ ((_a = columns.find(col => col.name == field)) === null || _a === void 0 ? void 0 : _a.rowCount) && (record[field] === 0 || record[field])
181
+ ? 1
182
+ : record[field];
183
+ return base;
184
+ }, {});
185
+ let groupBase = {};
186
+ return groupFieldsForTotalRecord.map((group, idx) => {
187
+ groupBase[group.column] = record[group.column];
188
+ return {
189
+ ...totalBase,
190
+ ...groupBase,
191
+ [group.column]: record[group.column],
192
+ '*': {
193
+ titleColumn: group.titleColumn,
194
+ value: group.title,
195
+ groupName: group.column,
196
+ /* 이 레코드 그룹에 해당하는 첫번째 레코드의 행 번호(1 부터 시작하는 번호임.) - grid layout의 row 지정에 사용됨. */
197
+ row: 1,
198
+ rowspan: 1,
199
+ /* 이 레코드 그룹의 컬럼에 해당하는 열 번호(1 부터 시작하는 번호임.) - grid layout의 column 지정에 사용됨. */
200
+ column: group.column !== '*'
201
+ ? getColumnIndex(group.column) + 1
202
+ : getColumnIndex(groups[0].column) + 1 /* grand total 은 첫번째 그룹 컬럼을 사용한다. */,
203
+ colspan: group.column !== '*' ? groupFieldsForTotalRecord.length - idx : groupFieldsForTotalRecord.length - 1
204
+ }
205
+ };
206
+ });
207
+ })()
208
+ : [
209
+ {
210
+ '*': {
211
+ titleColumn: groupFieldsForTotalRecord[0].titleColumn,
212
+ value: i18next.exists('text.ox-data-report-grand-total')
213
+ ? i18next.t('text.ox-data-report-grand-total')
214
+ : 'grand total',
215
+ groupName: '*',
216
+ row: 1,
217
+ rowspan: 1,
218
+ column: 1,
219
+ colspan: 0
220
+ }
221
+ }
222
+ ];
223
+ var row = 0;
224
+ for (let record of sortedRecords) {
225
+ let groupValues = groups.reduce((base, group) => {
226
+ base[group.column] = record[group.column];
227
+ return base;
228
+ }, {});
229
+ let isSameGroupRecord = true;
230
+ let totalsStack = [];
231
+ let groupBase = {};
232
+ row++;
233
+ if (lastGroupValues) {
234
+ for (let idx in groupFieldsForTotalRecord) {
235
+ let group = groupFieldsForTotalRecord[idx];
236
+ let totalRecord = totalicRecords[idx];
237
+ groupBase[group.column] = record[group.column];
238
+ if (group.column == '*' ||
239
+ (isSameGroupRecord && groupValues[group.column] === lastGroupValues[group.column])) {
240
+ for (let field of totals) {
241
+ totalRecord[field] +=
242
+ ((_a = columns.find(col => col.name == field)) === null || _a === void 0 ? void 0 : _a.rowCount) && (record[field] === 0 || record[field])
243
+ ? 1
244
+ : record[field];
245
+ }
246
+ ;
247
+ totalRecord['*'].rowspan++;
248
+ continue;
249
+ }
250
+ /* to avoid from floating point calculation problem */
251
+ totals.forEach(field => {
252
+ totalRecord[field] = Math.round(totalRecord[field] * 100) / 100;
253
+ });
254
+ isSameGroupRecord = false;
255
+ totalsStack.push({
256
+ idx,
257
+ record: totals.reduce((sum, field) => {
258
+ var _a;
259
+ sum[field] =
260
+ ((_a = columns.find(col => col.name == field)) === null || _a === void 0 ? void 0 : _a.rowCount) && (record[field] === 0 || record[field])
261
+ ? 1
262
+ : record[field];
263
+ return sum;
264
+ }, {
265
+ ...groupBase,
266
+ [group.column]: record[group.column],
267
+ '*': {
268
+ titleColumn: group.titleColumn,
269
+ groupName: group.column,
270
+ value: group.title,
271
+ row,
272
+ rowspan: 1,
273
+ column: getColumnIndex(group.column) + 1,
274
+ colspan: totalicRecords[idx]['*'].colspan
275
+ }
276
+ })
277
+ });
278
+ }
279
+ totalsStack
280
+ .reverse()
281
+ .map(({ record, idx }) => {
282
+ reportRecords.push(totalicRecords[Number(idx)]);
283
+ totalicRecords[Number(idx)] = {};
284
+ if (record['*'].value) {
285
+ totalicRecords.forEach(record => record['*'] && record['*'].rowspan++);
286
+ row++;
287
+ }
288
+ return { record, idx };
289
+ })
290
+ .forEach(({ record, idx }) => {
291
+ record['*'].row = row;
292
+ totalicRecords[Number(idx)] = record;
293
+ });
294
+ }
295
+ reportRecords.push(record);
296
+ lastGroupValues = groupValues;
297
+ }
298
+ /* 마지막 남은 토탈 레코드들을 추가한다. */
299
+ var poped;
300
+ while ((poped = totalicRecords.pop())) {
301
+ /* to avoid from floating point calculation problem */
302
+ totals.forEach(field => {
303
+ poped[field] = Math.round(poped[field] * 100) / 100;
304
+ });
305
+ reportRecords.push(poped);
306
+ if (poped['*'].value) {
307
+ totalicRecords.forEach(record => record['*'].rowspan++);
308
+ }
309
+ }
310
+ return reportRecords;
311
+ }
312
+ checkDirties() { }
313
+ };
314
+ DataReport.styles = [
315
+ ScrollbarStyles,
316
+ SpinnerStyles,
317
+ css `
318
+ :host {
319
+ display: flex;
320
+ flex-direction: column;
321
+ box-sizing: border-box;
322
+ background-color: var(--report-background-color);
323
+ padding: var(--report-padding);
324
+ min-height: 120px;
325
+
326
+ overflow: hidden;
327
+
328
+ /* for pulltorefresh controller */
329
+ position: relative;
330
+ }
331
+
332
+ #wrap {
333
+ flex: 1;
334
+ display: flex;
335
+ flex-direction: column;
336
+ overflow: auto;
337
+ }
338
+
339
+ ox-report-component {
340
+ flex: 1;
341
+ }
342
+
343
+ ox-empty-note {
344
+ display: block;
345
+ position: absolute;
346
+ left: 50%;
347
+ top: 50%;
348
+ transform: translate(-50%, -50%);
349
+ }
350
+ `
351
+ ];
352
+ __decorate([
353
+ property({ type: Object })
354
+ ], DataReport.prototype, "config", void 0);
355
+ __decorate([
356
+ property({ type: Object })
357
+ ], DataReport.prototype, "data", void 0);
358
+ __decorate([
359
+ property({ type: Object })
360
+ ], DataReport.prototype, "fetchHandler", void 0);
361
+ __decorate([
362
+ property({ type: Object })
363
+ ], DataReport.prototype, "fetchOptions", void 0);
364
+ __decorate([
365
+ property({ type: Boolean, attribute: 'auto-fetch' })
366
+ ], DataReport.prototype, "autoFetch", void 0);
367
+ __decorate([
368
+ state()
369
+ ], DataReport.prototype, "_data", void 0);
370
+ __decorate([
371
+ state()
372
+ ], DataReport.prototype, "_config", void 0);
373
+ __decorate([
374
+ state()
375
+ ], DataReport.prototype, "_showSpinner", void 0);
376
+ __decorate([
377
+ query('#report')
378
+ ], DataReport.prototype, "report", void 0);
379
+ __decorate([
380
+ queryAsync('#wrap')
381
+ ], DataReport.prototype, "wrap", void 0);
382
+ DataReport = __decorate([
383
+ customElement('ox-report')
384
+ ], DataReport);
385
+ export { DataReport };
386
+ //# sourceMappingURL=data-report.js.map
@@ -0,0 +1 @@
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({ type: Object }) config: any\n @property({ type: Object }) data: GristData = ZERO_DATA\n @property({ type: Object }) fetchHandler: any\n @property({ type: Object }) 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"]}
@@ -0,0 +1,3 @@
1
+ export * from './registry.js';
2
+ export * from './ox-grist-editor.js';
3
+ export * from './ox-grist-editor-image.js';
@@ -0,0 +1,4 @@
1
+ export * from './registry.js';
2
+ export * from './ox-grist-editor.js';
3
+ export * from './ox-grist-editor-image.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
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"]}
@@ -0,0 +1,7 @@
1
+ import { OxGristEditor } from './ox-grist-editor.js';
2
+ export declare class OxGristEditorCheckbox extends OxGristEditor {
3
+ _onchange(e: Event): void;
4
+ formatFromEditor(value: any): boolean | undefined;
5
+ formatForEditor(value: any): any;
6
+ get editorTemplate(): import("lit-html").TemplateResult<1>;
7
+ }
@@ -0,0 +1,27 @@
1
+ import { __decorate } from "tslib";
2
+ import { OxGristEditor } from './ox-grist-editor.js';
3
+ import { customElement } from 'lit/decorators.js';
4
+ import { html } from 'lit';
5
+ let OxGristEditorCheckbox = class OxGristEditorCheckbox extends OxGristEditor {
6
+ _onchange(e) {
7
+ e.stopPropagation();
8
+ const input = e.target;
9
+ this._dirtyValue = this.formatFromEditor(input.checked);
10
+ }
11
+ formatFromEditor(value) {
12
+ if (typeof value == 'boolean') {
13
+ return value;
14
+ }
15
+ }
16
+ formatForEditor(value) {
17
+ return value == !!value && !!String(value).match(/true/i);
18
+ }
19
+ get editorTemplate() {
20
+ return html ` <input type="checkbox" .checked=${!!this.value && !!String(this.value).match(/true/i)} /> `;
21
+ }
22
+ };
23
+ OxGristEditorCheckbox = __decorate([
24
+ customElement('ox-grist-editor-checkbox')
25
+ ], OxGristEditorCheckbox);
26
+ export { OxGristEditorCheckbox };
27
+ //# sourceMappingURL=ox-grist-editor-checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ox-grist-editor-checkbox.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor-checkbox.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAGnB,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,aAAa;IACtD,SAAS,CAAC,CAAQ;QAChB,CAAC,CAAC,eAAe,EAAE,CAAA;QAEnB,MAAM,KAAK,GAAG,CAAC,CAAC,MAA0B,CAAA;QAE1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACzD,CAAC;IAED,gBAAgB,CAAC,KAAU;QACzB,IAAI,OAAO,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,eAAe,CAAC,KAAU;QACxB,OAAO,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC3D,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA,oCAAoC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAA;IAC1G,CAAC;CACF,CAAA;AAtBY,qBAAqB;IADjC,aAAa,CAAC,0BAA0B,CAAC;GAC7B,qBAAqB,CAsBjC","sourcesContent":["import { OxGristEditor } from './ox-grist-editor.js'\nimport { customElement } from 'lit/decorators.js'\nimport { html } from 'lit'\n\n@customElement('ox-grist-editor-checkbox')\nexport class OxGristEditorCheckbox extends OxGristEditor {\n _onchange(e: Event) {\n e.stopPropagation()\n\n const input = e.target as HTMLInputElement\n\n this._dirtyValue = this.formatFromEditor(input.checked)\n }\n\n formatFromEditor(value: any) {\n if (typeof value == 'boolean') {\n return value\n }\n }\n\n formatForEditor(value: any): any {\n return value == !!value && !!String(value).match(/true/i)\n }\n\n get editorTemplate() {\n return html` <input type=\"checkbox\" .checked=${!!this.value && !!String(this.value).match(/true/i)} /> `\n }\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import { OxGristEditor } from './ox-grist-editor.js';
2
+ export declare class OxGristEditorColor extends OxGristEditor {
3
+ get editorTemplate(): import("lit-html").TemplateResult<1>;
4
+ }
@@ -0,0 +1,14 @@
1
+ import { __decorate } from "tslib";
2
+ import { OxGristEditor } from './ox-grist-editor.js';
3
+ import { customElement } from 'lit/decorators.js';
4
+ import { html } from 'lit';
5
+ let OxGristEditorColor = class OxGristEditorColor extends OxGristEditor {
6
+ get editorTemplate() {
7
+ return html ` <input type="color" .value=${this.value} /> `;
8
+ }
9
+ };
10
+ OxGristEditorColor = __decorate([
11
+ customElement('ox-grist-editor-color')
12
+ ], OxGristEditorColor);
13
+ export { OxGristEditorColor };
14
+ //# sourceMappingURL=ox-grist-editor-color.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ox-grist-editor-color.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor-color.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAGnB,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,aAAa;IACnD,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA,+BAA+B,IAAI,CAAC,KAAK,MAAM,CAAA;IAC5D,CAAC;CACF,CAAA;AAJY,kBAAkB;IAD9B,aAAa,CAAC,uBAAuB,CAAC;GAC1B,kBAAkB,CAI9B","sourcesContent":["import { OxGristEditor } from './ox-grist-editor.js'\nimport { customElement } from 'lit/decorators.js'\nimport { html } from 'lit'\n\n@customElement('ox-grist-editor-color')\nexport class OxGristEditorColor extends OxGristEditor {\n get editorTemplate() {\n return html` <input type=\"color\" .value=${this.value} /> `\n }\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import { OxGristEditor } from './ox-grist-editor.js';
2
+ export declare class OxGristEditorDate extends OxGristEditor {
3
+ get editorTemplate(): import("lit-html").TemplateResult<1>;
4
+ }
@@ -0,0 +1,14 @@
1
+ import { __decorate } from "tslib";
2
+ import { OxGristEditor } from './ox-grist-editor.js';
3
+ import { customElement } from 'lit/decorators.js';
4
+ import { html } from 'lit';
5
+ let OxGristEditorDate = class OxGristEditorDate extends OxGristEditor {
6
+ get editorTemplate() {
7
+ return html ` <input type="date" .value=${this.value} max="9999-12-31" /> `;
8
+ }
9
+ };
10
+ OxGristEditorDate = __decorate([
11
+ customElement('ox-grist-editor-date')
12
+ ], OxGristEditorDate);
13
+ export { OxGristEditorDate };
14
+ //# sourceMappingURL=ox-grist-editor-date.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ox-grist-editor-date.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor-date.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAGnB,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,aAAa;IAClD,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA,8BAA8B,IAAI,CAAC,KAAK,uBAAuB,CAAA;IAC5E,CAAC;CACF,CAAA;AAJY,iBAAiB;IAD7B,aAAa,CAAC,sBAAsB,CAAC;GACzB,iBAAiB,CAI7B","sourcesContent":["import { OxGristEditor } from './ox-grist-editor.js'\nimport { customElement } from 'lit/decorators.js'\nimport { html } from 'lit'\n\n@customElement('ox-grist-editor-date')\nexport class OxGristEditorDate extends OxGristEditor {\n get editorTemplate() {\n return html` <input type=\"date\" .value=${this.value} max=\"9999-12-31\" /> `\n }\n}\n"]}
@@ -0,0 +1,6 @@
1
+ import { OxGristEditor } from './ox-grist-editor.js';
2
+ export declare class OxGristEditorDateTime extends OxGristEditor {
3
+ formatForEditor(timestamp: any): string;
4
+ formatFromEditor(value: any): number;
5
+ get editorTemplate(): import("lit-html").TemplateResult<1>;
6
+ }
@@ -0,0 +1,26 @@
1
+ import { __decorate } from "tslib";
2
+ import { OxGristEditor } from './ox-grist-editor.js';
3
+ import { customElement } from 'lit/decorators.js';
4
+ import { html } from 'lit';
5
+ let OxGristEditorDateTime = class OxGristEditorDateTime extends OxGristEditor {
6
+ formatForEditor(timestamp) {
7
+ if (!timestamp) {
8
+ timestamp = Date.now();
9
+ }
10
+ var datetime = new Date(timestamp);
11
+ var tzoffset = datetime.getTimezoneOffset() * 60000; //offset in milliseconds
12
+ return new Date(timestamp - tzoffset).toISOString().slice(0, -1);
13
+ }
14
+ formatFromEditor(value) {
15
+ var datetime = new Date(value);
16
+ return datetime.getTime();
17
+ }
18
+ get editorTemplate() {
19
+ return html ` <input type="datetime-local" .value=${this.value} max="9999-12-31T23:59" /> `;
20
+ }
21
+ };
22
+ OxGristEditorDateTime = __decorate([
23
+ customElement('ox-grist-editor-datetime')
24
+ ], OxGristEditorDateTime);
25
+ export { OxGristEditorDateTime };
26
+ //# sourceMappingURL=ox-grist-editor-datetime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ox-grist-editor-datetime.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor-datetime.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAGnB,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,aAAa;IACtD,eAAe,CAAC,SAAc;QAC5B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACxB,CAAC;QACD,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAA;QAElC,IAAI,QAAQ,GAAG,QAAQ,CAAC,iBAAiB,EAAE,GAAG,KAAK,CAAA,CAAC,wBAAwB;QAE5E,OAAO,IAAI,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAClE,CAAC;IAED,gBAAgB,CAAC,KAAU;QACzB,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;QAE9B,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAA;IAC3B,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA,wCAAwC,IAAI,CAAC,KAAK,6BAA6B,CAAA;IAC5F,CAAC;CACF,CAAA;AArBY,qBAAqB;IADjC,aAAa,CAAC,0BAA0B,CAAC;GAC7B,qBAAqB,CAqBjC","sourcesContent":["import { OxGristEditor } from './ox-grist-editor.js'\nimport { customElement } from 'lit/decorators.js'\nimport { html } from 'lit'\n\n@customElement('ox-grist-editor-datetime')\nexport class OxGristEditorDateTime extends OxGristEditor {\n formatForEditor(timestamp: any) {\n if (!timestamp) {\n timestamp = Date.now()\n }\n var datetime = new Date(timestamp)\n\n var tzoffset = datetime.getTimezoneOffset() * 60000 //offset in milliseconds\n\n return new Date(timestamp - tzoffset).toISOString().slice(0, -1)\n }\n\n formatFromEditor(value: any) {\n var datetime = new Date(value)\n\n return datetime.getTime()\n }\n\n get editorTemplate() {\n return html` <input type=\"datetime-local\" .value=${this.value} max=\"9999-12-31T23:59\" /> `\n }\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import { OxGristEditor } from './ox-grist-editor.js';
2
+ export declare class OxGristEditorEmail extends OxGristEditor {
3
+ get editorTemplate(): import("lit-html").TemplateResult<1>;
4
+ }
@@ -0,0 +1,14 @@
1
+ import { __decorate } from "tslib";
2
+ import { OxGristEditor } from './ox-grist-editor.js';
3
+ import { customElement } from 'lit/decorators.js';
4
+ import { html } from 'lit';
5
+ let OxGristEditorEmail = class OxGristEditorEmail extends OxGristEditor {
6
+ get editorTemplate() {
7
+ return html ` <input type="email" .value=${this.value} /> `;
8
+ }
9
+ };
10
+ OxGristEditorEmail = __decorate([
11
+ customElement('ox-grist-editor-email')
12
+ ], OxGristEditorEmail);
13
+ export { OxGristEditorEmail };
14
+ //# sourceMappingURL=ox-grist-editor-email.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ox-grist-editor-email.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor-email.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAGnB,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,aAAa;IACnD,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA,+BAA+B,IAAI,CAAC,KAAK,MAAM,CAAA;IAC5D,CAAC;CACF,CAAA;AAJY,kBAAkB;IAD9B,aAAa,CAAC,uBAAuB,CAAC;GAC1B,kBAAkB,CAI9B","sourcesContent":["import { OxGristEditor } from './ox-grist-editor.js'\nimport { customElement } from 'lit/decorators.js'\nimport { html } from 'lit'\n\n@customElement('ox-grist-editor-email')\nexport class OxGristEditorEmail extends OxGristEditor {\n get editorTemplate() {\n return html` <input type=\"email\" .value=${this.value} /> `\n }\n}\n"]}
@@ -0,0 +1,6 @@
1
+ import { OxGristEditor } from './ox-grist-editor.js';
2
+ export declare class OxGristEditorFile extends OxGristEditor {
3
+ _onchange(e: Event): void;
4
+ formatFromEditor(value: any): any;
5
+ get editorTemplate(): import("lit-html").TemplateResult<1>;
6
+ }
@@ -0,0 +1,25 @@
1
+ import { __decorate } from "tslib";
2
+ import { html } from 'lit';
3
+ import { customElement } from 'lit/decorators.js';
4
+ import { OxGristEditor } from './ox-grist-editor.js';
5
+ let OxGristEditorFile = class OxGristEditorFile extends OxGristEditor {
6
+ _onchange(e) {
7
+ e.stopPropagation();
8
+ const input = e.target;
9
+ this._dirtyValue = this.formatFromEditor(input.files);
10
+ this._onfocusout();
11
+ }
12
+ formatFromEditor(value) {
13
+ return value;
14
+ }
15
+ get editorTemplate() {
16
+ var value = typeof this.value === 'string' ? null : this.value;
17
+ var { multiple = false } = this.column.record || {};
18
+ return html ` <input style="opacity: 1" type="file" ?multiple=${multiple} /> `;
19
+ }
20
+ };
21
+ OxGristEditorFile = __decorate([
22
+ customElement('ox-grist-editor-file')
23
+ ], OxGristEditorFile);
24
+ export { OxGristEditorFile };
25
+ //# sourceMappingURL=ox-grist-editor-file.js.map