@operato/data-grist 9.0.0-beta.6 → 9.0.0-beta.61

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 (472) hide show
  1. package/CHANGELOG.md +230 -0
  2. package/README.md +337 -44
  3. package/dist/tsconfig.tsbuildinfo +1 -1
  4. package/package.json +11 -11
  5. package/dist/src/accumulator/accumulator.d.ts +0 -2
  6. package/dist/src/accumulator/accumulator.js +0 -42
  7. package/dist/src/accumulator/accumulator.js.map +0 -1
  8. package/dist/src/configure/column-builder.d.ts +0 -2
  9. package/dist/src/configure/column-builder.js +0 -99
  10. package/dist/src/configure/column-builder.js.map +0 -1
  11. package/dist/src/configure/config-builder.d.ts +0 -2
  12. package/dist/src/configure/config-builder.js +0 -36
  13. package/dist/src/configure/config-builder.js.map +0 -1
  14. package/dist/src/configure/filters-option-builder.d.ts +0 -2
  15. package/dist/src/configure/filters-option-builder.js +0 -7
  16. package/dist/src/configure/filters-option-builder.js.map +0 -1
  17. package/dist/src/configure/imex-option-builder.d.ts +0 -2
  18. package/dist/src/configure/imex-option-builder.js +0 -4
  19. package/dist/src/configure/imex-option-builder.js.map +0 -1
  20. package/dist/src/configure/list-option-builder.d.ts +0 -2
  21. package/dist/src/configure/list-option-builder.js +0 -8
  22. package/dist/src/configure/list-option-builder.js.map +0 -1
  23. package/dist/src/configure/rows-option-builder.d.ts +0 -2
  24. package/dist/src/configure/rows-option-builder.js +0 -26
  25. package/dist/src/configure/rows-option-builder.js.map +0 -1
  26. package/dist/src/configure/tree-option-builder.d.ts +0 -2
  27. package/dist/src/configure/tree-option-builder.js +0 -18
  28. package/dist/src/configure/tree-option-builder.js.map +0 -1
  29. package/dist/src/configure/zero-config.d.ts +0 -23
  30. package/dist/src/configure/zero-config.js +0 -59
  31. package/dist/src/configure/zero-config.js.map +0 -1
  32. package/dist/src/const.d.ts +0 -1
  33. package/dist/src/const.js +0 -2
  34. package/dist/src/const.js.map +0 -1
  35. package/dist/src/data-card/data-card-field.d.ts +0 -11
  36. package/dist/src/data-card/data-card-field.js +0 -106
  37. package/dist/src/data-card/data-card-field.js.map +0 -1
  38. package/dist/src/data-card/data-card-gutter-menu.d.ts +0 -2
  39. package/dist/src/data-card/data-card-gutter-menu.js +0 -96
  40. package/dist/src/data-card/data-card-gutter-menu.js.map +0 -1
  41. package/dist/src/data-card/data-card-gutter.d.ts +0 -12
  42. package/dist/src/data-card/data-card-gutter.js +0 -116
  43. package/dist/src/data-card/data-card-gutter.js.map +0 -1
  44. package/dist/src/data-card/data-card.d.ts +0 -19
  45. package/dist/src/data-card/data-card.js +0 -149
  46. package/dist/src/data-card/data-card.js.map +0 -1
  47. package/dist/src/data-card/event-handlers/record-card-click-handler.d.ts +0 -7
  48. package/dist/src/data-card/event-handlers/record-card-click-handler.js +0 -29
  49. package/dist/src/data-card/event-handlers/record-card-click-handler.js.map +0 -1
  50. package/dist/src/data-card/event-handlers/record-card-dblclick-handler.d.ts +0 -7
  51. package/dist/src/data-card/event-handlers/record-card-dblclick-handler.js +0 -29
  52. package/dist/src/data-card/event-handlers/record-card-dblclick-handler.js.map +0 -1
  53. package/dist/src/data-card/record-card.d.ts +0 -23
  54. package/dist/src/data-card/record-card.js +0 -288
  55. package/dist/src/data-card/record-card.js.map +0 -1
  56. package/dist/src/data-consumer.d.ts +0 -10
  57. package/dist/src/data-consumer.js +0 -2
  58. package/dist/src/data-consumer.js.map +0 -1
  59. package/dist/src/data-grid/data-grid-accum-field.d.ts +0 -16
  60. package/dist/src/data-grid/data-grid-accum-field.js +0 -133
  61. package/dist/src/data-grid/data-grid-accum-field.js.map +0 -1
  62. package/dist/src/data-grid/data-grid-body-style.d.ts +0 -1
  63. package/dist/src/data-grid/data-grid-body-style.js +0 -99
  64. package/dist/src/data-grid/data-grid-body-style.js.map +0 -1
  65. package/dist/src/data-grid/data-grid-body.d.ts +0 -52
  66. package/dist/src/data-grid/data-grid-body.js +0 -660
  67. package/dist/src/data-grid/data-grid-body.js.map +0 -1
  68. package/dist/src/data-grid/data-grid-field.d.ts +0 -25
  69. package/dist/src/data-grid/data-grid-field.js +0 -263
  70. package/dist/src/data-grid/data-grid-field.js.map +0 -1
  71. package/dist/src/data-grid/data-grid-footer.d.ts +0 -11
  72. package/dist/src/data-grid/data-grid-footer.js +0 -120
  73. package/dist/src/data-grid/data-grid-footer.js.map +0 -1
  74. package/dist/src/data-grid/data-grid-header.d.ts +0 -29
  75. package/dist/src/data-grid/data-grid-header.js +0 -531
  76. package/dist/src/data-grid/data-grid-header.js.map +0 -1
  77. package/dist/src/data-grid/data-grid.d.ts +0 -36
  78. package/dist/src/data-grid/data-grid.js +0 -260
  79. package/dist/src/data-grid/data-grid.js.map +0 -1
  80. package/dist/src/data-grid/event-handlers/data-grid-body-click-handler.d.ts +0 -7
  81. package/dist/src/data-grid/event-handlers/data-grid-body-click-handler.js +0 -57
  82. package/dist/src/data-grid/event-handlers/data-grid-body-click-handler.js.map +0 -1
  83. package/dist/src/data-grid/event-handlers/data-grid-body-contextmenu-handler.d.ts +0 -7
  84. package/dist/src/data-grid/event-handlers/data-grid-body-contextmenu-handler.js +0 -25
  85. package/dist/src/data-grid/event-handlers/data-grid-body-contextmenu-handler.js.map +0 -1
  86. package/dist/src/data-grid/event-handlers/data-grid-body-dblclick-handler.d.ts +0 -7
  87. package/dist/src/data-grid/event-handlers/data-grid-body-dblclick-handler.js +0 -34
  88. package/dist/src/data-grid/event-handlers/data-grid-body-dblclick-handler.js.map +0 -1
  89. package/dist/src/data-grid/event-handlers/data-grid-body-focus-change-handler.d.ts +0 -7
  90. package/dist/src/data-grid/event-handlers/data-grid-body-focus-change-handler.js +0 -19
  91. package/dist/src/data-grid/event-handlers/data-grid-body-focus-change-handler.js.map +0 -1
  92. package/dist/src/data-grid/event-handlers/data-grid-body-keydown-handler.d.ts +0 -7
  93. package/dist/src/data-grid/event-handlers/data-grid-body-keydown-handler.js +0 -226
  94. package/dist/src/data-grid/event-handlers/data-grid-body-keydown-handler.js.map +0 -1
  95. package/dist/src/data-grist.d.ts +0 -355
  96. package/dist/src/data-grist.js +0 -1022
  97. package/dist/src/data-grist.js.map +0 -1
  98. package/dist/src/data-list/data-list-field.d.ts +0 -11
  99. package/dist/src/data-list/data-list-field.js +0 -95
  100. package/dist/src/data-list/data-list-field.js.map +0 -1
  101. package/dist/src/data-list/data-list-gutter.d.ts +0 -12
  102. package/dist/src/data-list/data-list-gutter.js +0 -121
  103. package/dist/src/data-list/data-list-gutter.js.map +0 -1
  104. package/dist/src/data-list/data-list.d.ts +0 -18
  105. package/dist/src/data-list/data-list.js +0 -139
  106. package/dist/src/data-list/data-list.js.map +0 -1
  107. package/dist/src/data-list/event-handlers/record-partial-click-handler.d.ts +0 -7
  108. package/dist/src/data-list/event-handlers/record-partial-click-handler.js +0 -29
  109. package/dist/src/data-list/event-handlers/record-partial-click-handler.js.map +0 -1
  110. package/dist/src/data-list/event-handlers/record-partial-dblclick-handler.d.ts +0 -7
  111. package/dist/src/data-list/event-handlers/record-partial-dblclick-handler.js +0 -29
  112. package/dist/src/data-list/event-handlers/record-partial-dblclick-handler.js.map +0 -1
  113. package/dist/src/data-list/event-handlers/record-partial-long-press-handler.d.ts +0 -7
  114. package/dist/src/data-list/event-handlers/record-partial-long-press-handler.js +0 -29
  115. package/dist/src/data-list/event-handlers/record-partial-long-press-handler.js.map +0 -1
  116. package/dist/src/data-list/record-partial.d.ts +0 -21
  117. package/dist/src/data-list/record-partial.js +0 -252
  118. package/dist/src/data-list/record-partial.js.map +0 -1
  119. package/dist/src/data-manipulator.d.ts +0 -38
  120. package/dist/src/data-manipulator.js +0 -324
  121. package/dist/src/data-manipulator.js.map +0 -1
  122. package/dist/src/data-provider.d.ts +0 -50
  123. package/dist/src/data-provider.js +0 -200
  124. package/dist/src/data-provider.js.map +0 -1
  125. package/dist/src/data-report/data-report-body-style.d.ts +0 -1
  126. package/dist/src/data-report/data-report-body-style.js +0 -58
  127. package/dist/src/data-report/data-report-body-style.js.map +0 -1
  128. package/dist/src/data-report/data-report-body.d.ts +0 -18
  129. package/dist/src/data-report/data-report-body.js +0 -181
  130. package/dist/src/data-report/data-report-body.js.map +0 -1
  131. package/dist/src/data-report/data-report-component.d.ts +0 -21
  132. package/dist/src/data-report/data-report-component.js +0 -138
  133. package/dist/src/data-report/data-report-component.js.map +0 -1
  134. package/dist/src/data-report/data-report-field.d.ts +0 -13
  135. package/dist/src/data-report/data-report-field.js +0 -99
  136. package/dist/src/data-report/data-report-field.js.map +0 -1
  137. package/dist/src/data-report/data-report-header.d.ts +0 -1
  138. package/dist/src/data-report/data-report-header.js +0 -221
  139. package/dist/src/data-report/data-report-header.js.map +0 -1
  140. package/dist/src/data-report/event-handlers/data-report-body-click-handler.d.ts +0 -5
  141. package/dist/src/data-report/event-handlers/data-report-body-click-handler.js +0 -33
  142. package/dist/src/data-report/event-handlers/data-report-body-click-handler.js.map +0 -1
  143. package/dist/src/data-report/event-handlers/data-report-body-dblclick-handler.d.ts +0 -5
  144. package/dist/src/data-report/event-handlers/data-report-body-dblclick-handler.js +0 -19
  145. package/dist/src/data-report/event-handlers/data-report-body-dblclick-handler.js.map +0 -1
  146. package/dist/src/data-report/event-handlers/data-report-body-keydown-handler.d.ts +0 -5
  147. package/dist/src/data-report/event-handlers/data-report-body-keydown-handler.js +0 -58
  148. package/dist/src/data-report/event-handlers/data-report-body-keydown-handler.js.map +0 -1
  149. package/dist/src/data-report.d.ts +0 -44
  150. package/dist/src/data-report.js +0 -386
  151. package/dist/src/data-report.js.map +0 -1
  152. package/dist/src/editors/index.d.ts +0 -3
  153. package/dist/src/editors/index.js +0 -4
  154. package/dist/src/editors/index.js.map +0 -1
  155. package/dist/src/editors/ox-grist-editor-checkbox.d.ts +0 -7
  156. package/dist/src/editors/ox-grist-editor-checkbox.js +0 -27
  157. package/dist/src/editors/ox-grist-editor-checkbox.js.map +0 -1
  158. package/dist/src/editors/ox-grist-editor-color.d.ts +0 -4
  159. package/dist/src/editors/ox-grist-editor-color.js +0 -14
  160. package/dist/src/editors/ox-grist-editor-color.js.map +0 -1
  161. package/dist/src/editors/ox-grist-editor-date.d.ts +0 -4
  162. package/dist/src/editors/ox-grist-editor-date.js +0 -14
  163. package/dist/src/editors/ox-grist-editor-date.js.map +0 -1
  164. package/dist/src/editors/ox-grist-editor-datetime.d.ts +0 -6
  165. package/dist/src/editors/ox-grist-editor-datetime.js +0 -26
  166. package/dist/src/editors/ox-grist-editor-datetime.js.map +0 -1
  167. package/dist/src/editors/ox-grist-editor-email.d.ts +0 -4
  168. package/dist/src/editors/ox-grist-editor-email.js +0 -14
  169. package/dist/src/editors/ox-grist-editor-email.js.map +0 -1
  170. package/dist/src/editors/ox-grist-editor-file.d.ts +0 -6
  171. package/dist/src/editors/ox-grist-editor-file.js +0 -25
  172. package/dist/src/editors/ox-grist-editor-file.js.map +0 -1
  173. package/dist/src/editors/ox-grist-editor-image.d.ts +0 -7
  174. package/dist/src/editors/ox-grist-editor-image.js +0 -31
  175. package/dist/src/editors/ox-grist-editor-image.js.map +0 -1
  176. package/dist/src/editors/ox-grist-editor-month.d.ts +0 -4
  177. package/dist/src/editors/ox-grist-editor-month.js +0 -14
  178. package/dist/src/editors/ox-grist-editor-month.js.map +0 -1
  179. package/dist/src/editors/ox-grist-editor-multiple-select.d.ts +0 -8
  180. package/dist/src/editors/ox-grist-editor-multiple-select.js +0 -52
  181. package/dist/src/editors/ox-grist-editor-multiple-select.js.map +0 -1
  182. package/dist/src/editors/ox-grist-editor-number.d.ts +0 -6
  183. package/dist/src/editors/ox-grist-editor-number.js +0 -27
  184. package/dist/src/editors/ox-grist-editor-number.js.map +0 -1
  185. package/dist/src/editors/ox-grist-editor-password.d.ts +0 -4
  186. package/dist/src/editors/ox-grist-editor-password.js +0 -14
  187. package/dist/src/editors/ox-grist-editor-password.js.map +0 -1
  188. package/dist/src/editors/ox-grist-editor-select.d.ts +0 -4
  189. package/dist/src/editors/ox-grist-editor-select.js +0 -53
  190. package/dist/src/editors/ox-grist-editor-select.js.map +0 -1
  191. package/dist/src/editors/ox-grist-editor-tel.d.ts +0 -4
  192. package/dist/src/editors/ox-grist-editor-tel.js +0 -14
  193. package/dist/src/editors/ox-grist-editor-tel.js.map +0 -1
  194. package/dist/src/editors/ox-grist-editor-text.d.ts +0 -5
  195. package/dist/src/editors/ox-grist-editor-text.js +0 -17
  196. package/dist/src/editors/ox-grist-editor-text.js.map +0 -1
  197. package/dist/src/editors/ox-grist-editor-textarea.d.ts +0 -6
  198. package/dist/src/editors/ox-grist-editor-textarea.js +0 -18
  199. package/dist/src/editors/ox-grist-editor-textarea.js.map +0 -1
  200. package/dist/src/editors/ox-grist-editor-time.d.ts +0 -4
  201. package/dist/src/editors/ox-grist-editor-time.js +0 -14
  202. package/dist/src/editors/ox-grist-editor-time.js.map +0 -1
  203. package/dist/src/editors/ox-grist-editor-tree.d.ts +0 -6
  204. package/dist/src/editors/ox-grist-editor-tree.js +0 -27
  205. package/dist/src/editors/ox-grist-editor-tree.js.map +0 -1
  206. package/dist/src/editors/ox-grist-editor-varname.d.ts +0 -6
  207. package/dist/src/editors/ox-grist-editor-varname.js +0 -36
  208. package/dist/src/editors/ox-grist-editor-varname.js.map +0 -1
  209. package/dist/src/editors/ox-grist-editor-week.d.ts +0 -4
  210. package/dist/src/editors/ox-grist-editor-week.js +0 -14
  211. package/dist/src/editors/ox-grist-editor-week.js.map +0 -1
  212. package/dist/src/editors/ox-grist-editor.d.ts +0 -27
  213. package/dist/src/editors/ox-grist-editor.js +0 -197
  214. package/dist/src/editors/ox-grist-editor.js.map +0 -1
  215. package/dist/src/editors/ox-input-tree.d.ts +0 -20
  216. package/dist/src/editors/ox-input-tree.js +0 -221
  217. package/dist/src/editors/ox-input-tree.js.map +0 -1
  218. package/dist/src/editors/registry.d.ts +0 -12
  219. package/dist/src/editors/registry.js +0 -71
  220. package/dist/src/editors/registry.js.map +0 -1
  221. package/dist/src/empty-note.d.ts +0 -9
  222. package/dist/src/empty-note.js +0 -53
  223. package/dist/src/empty-note.js.map +0 -1
  224. package/dist/src/filters/filter-checkbox.d.ts +0 -3
  225. package/dist/src/filters/filter-checkbox.js +0 -41
  226. package/dist/src/filters/filter-checkbox.js.map +0 -1
  227. package/dist/src/filters/filter-input-barcode.d.ts +0 -3
  228. package/dist/src/filters/filter-input-barcode.js +0 -28
  229. package/dist/src/filters/filter-input-barcode.js.map +0 -1
  230. package/dist/src/filters/filter-input.d.ts +0 -2
  231. package/dist/src/filters/filter-input.js +0 -25
  232. package/dist/src/filters/filter-input.js.map +0 -1
  233. package/dist/src/filters/filter-range-date.d.ts +0 -2
  234. package/dist/src/filters/filter-range-date.js +0 -66
  235. package/dist/src/filters/filter-range-date.js.map +0 -1
  236. package/dist/src/filters/filter-range-number.d.ts +0 -2
  237. package/dist/src/filters/filter-range-number.js +0 -54
  238. package/dist/src/filters/filter-range-number.js.map +0 -1
  239. package/dist/src/filters/filter-select-buttons.d.ts +0 -3
  240. package/dist/src/filters/filter-select-buttons.js +0 -50
  241. package/dist/src/filters/filter-select-buttons.js.map +0 -1
  242. package/dist/src/filters/filter-select.d.ts +0 -3
  243. package/dist/src/filters/filter-select.js +0 -52
  244. package/dist/src/filters/filter-select.js.map +0 -1
  245. package/dist/src/filters/filter-styles.d.ts +0 -1
  246. package/dist/src/filters/filter-styles.js +0 -119
  247. package/dist/src/filters/filter-styles.js.map +0 -1
  248. package/dist/src/filters/filters-form.d.ts +0 -40
  249. package/dist/src/filters/filters-form.js +0 -430
  250. package/dist/src/filters/filters-form.js.map +0 -1
  251. package/dist/src/filters/index.d.ts +0 -8
  252. package/dist/src/filters/index.js +0 -9
  253. package/dist/src/filters/index.js.map +0 -1
  254. package/dist/src/filters/registry.d.ts +0 -7
  255. package/dist/src/filters/registry.js +0 -48
  256. package/dist/src/filters/registry.js.map +0 -1
  257. package/dist/src/formatters/date-formatter.d.ts +0 -1
  258. package/dist/src/formatters/date-formatter.js +0 -4
  259. package/dist/src/formatters/date-formatter.js.map +0 -1
  260. package/dist/src/formatters/index.d.ts +0 -1
  261. package/dist/src/formatters/index.js +0 -2
  262. package/dist/src/formatters/index.js.map +0 -1
  263. package/dist/src/formatters/number-formatter.d.ts +0 -1
  264. package/dist/src/formatters/number-formatter.js +0 -4
  265. package/dist/src/formatters/number-formatter.js.map +0 -1
  266. package/dist/src/formatters/registry.d.ts +0 -6
  267. package/dist/src/formatters/registry.js +0 -25
  268. package/dist/src/formatters/registry.js.map +0 -1
  269. package/dist/src/formatters/text-formatter.d.ts +0 -1
  270. package/dist/src/formatters/text-formatter.js +0 -4
  271. package/dist/src/formatters/text-formatter.js.map +0 -1
  272. package/dist/src/gutters/gutter-button.d.ts +0 -21
  273. package/dist/src/gutters/gutter-button.js +0 -40
  274. package/dist/src/gutters/gutter-button.js.map +0 -1
  275. package/dist/src/gutters/gutter-dirty.d.ts +0 -23
  276. package/dist/src/gutters/gutter-dirty.js +0 -87
  277. package/dist/src/gutters/gutter-dirty.js.map +0 -1
  278. package/dist/src/gutters/gutter-row-selector.d.ts +0 -21
  279. package/dist/src/gutters/gutter-row-selector.js +0 -70
  280. package/dist/src/gutters/gutter-row-selector.js.map +0 -1
  281. package/dist/src/gutters/gutter-sequence.d.ts +0 -35
  282. package/dist/src/gutters/gutter-sequence.js +0 -48
  283. package/dist/src/gutters/gutter-sequence.js.map +0 -1
  284. package/dist/src/gutters/index.d.ts +0 -1
  285. package/dist/src/gutters/index.js +0 -2
  286. package/dist/src/gutters/index.js.map +0 -1
  287. package/dist/src/gutters/registry.d.ts +0 -7
  288. package/dist/src/gutters/registry.js +0 -26
  289. package/dist/src/gutters/registry.js.map +0 -1
  290. package/dist/src/handlers/contextmenu-tree-mutation.d.ts +0 -3
  291. package/dist/src/handlers/contextmenu-tree-mutation.js +0 -64
  292. package/dist/src/handlers/contextmenu-tree-mutation.js.map +0 -1
  293. package/dist/src/handlers/index.d.ts +0 -1
  294. package/dist/src/handlers/index.js +0 -2
  295. package/dist/src/handlers/index.js.map +0 -1
  296. package/dist/src/handlers/move-down.d.ts +0 -3
  297. package/dist/src/handlers/move-down.js +0 -26
  298. package/dist/src/handlers/move-down.js.map +0 -1
  299. package/dist/src/handlers/move-up.d.ts +0 -3
  300. package/dist/src/handlers/move-up.js +0 -26
  301. package/dist/src/handlers/move-up.js.map +0 -1
  302. package/dist/src/handlers/record-copy.d.ts +0 -3
  303. package/dist/src/handlers/record-copy.js +0 -23
  304. package/dist/src/handlers/record-copy.js.map +0 -1
  305. package/dist/src/handlers/record-delete.d.ts +0 -3
  306. package/dist/src/handlers/record-delete.js +0 -16
  307. package/dist/src/handlers/record-delete.js.map +0 -1
  308. package/dist/src/handlers/record-view-handler.d.ts +0 -3
  309. package/dist/src/handlers/record-view-handler.js +0 -15
  310. package/dist/src/handlers/record-view-handler.js.map +0 -1
  311. package/dist/src/handlers/registry.d.ts +0 -7
  312. package/dist/src/handlers/registry.js +0 -34
  313. package/dist/src/handlers/registry.js.map +0 -1
  314. package/dist/src/handlers/select-row-toggle.d.ts +0 -3
  315. package/dist/src/handlers/select-row-toggle.js +0 -18
  316. package/dist/src/handlers/select-row-toggle.js.map +0 -1
  317. package/dist/src/handlers/select-row.d.ts +0 -3
  318. package/dist/src/handlers/select-row.js +0 -14
  319. package/dist/src/handlers/select-row.js.map +0 -1
  320. package/dist/src/index.d.ts +0 -14
  321. package/dist/src/index.js +0 -15
  322. package/dist/src/index.js.map +0 -1
  323. package/dist/src/personalizer/index.d.ts +0 -1
  324. package/dist/src/personalizer/index.js +0 -2
  325. package/dist/src/personalizer/index.js.map +0 -1
  326. package/dist/src/personalizer/ox-grist-filter-personalizer.d.ts +0 -8
  327. package/dist/src/personalizer/ox-grist-filter-personalizer.js +0 -178
  328. package/dist/src/personalizer/ox-grist-filter-personalizer.js.map +0 -1
  329. package/dist/src/personalizer/ox-grist-personalizer.d.ts +0 -8
  330. package/dist/src/personalizer/ox-grist-personalizer.js +0 -212
  331. package/dist/src/personalizer/ox-grist-personalizer.js.map +0 -1
  332. package/dist/src/record-view/event-handlers/record-view-body-click-handler.d.ts +0 -7
  333. package/dist/src/record-view/event-handlers/record-view-body-click-handler.js +0 -27
  334. package/dist/src/record-view/event-handlers/record-view-body-click-handler.js.map +0 -1
  335. package/dist/src/record-view/event-handlers/record-view-body-keydown-handler.d.ts +0 -7
  336. package/dist/src/record-view/event-handlers/record-view-body-keydown-handler.js +0 -22
  337. package/dist/src/record-view/event-handlers/record-view-body-keydown-handler.js.map +0 -1
  338. package/dist/src/record-view/index.d.ts +0 -2
  339. package/dist/src/record-view/index.js +0 -3
  340. package/dist/src/record-view/index.js.map +0 -1
  341. package/dist/src/record-view/ox-record-creator.d.ts +0 -26
  342. package/dist/src/record-view/ox-record-creator.js +0 -247
  343. package/dist/src/record-view/ox-record-creator.js.map +0 -1
  344. package/dist/src/record-view/record-view-body.d.ts +0 -21
  345. package/dist/src/record-view/record-view-body.js +0 -252
  346. package/dist/src/record-view/record-view-body.js.map +0 -1
  347. package/dist/src/record-view/record-view-handler.d.ts +0 -9
  348. package/dist/src/record-view/record-view-handler.js +0 -57
  349. package/dist/src/record-view/record-view-handler.js.map +0 -1
  350. package/dist/src/record-view/record-view.d.ts +0 -23
  351. package/dist/src/record-view/record-view.js +0 -117
  352. package/dist/src/record-view/record-view.js.map +0 -1
  353. package/dist/src/renderers/index.d.ts +0 -13
  354. package/dist/src/renderers/index.js +0 -14
  355. package/dist/src/renderers/index.js.map +0 -1
  356. package/dist/src/renderers/ox-grist-renderer-boolean.d.ts +0 -2
  357. package/dist/src/renderers/ox-grist-renderer-boolean.js +0 -39
  358. package/dist/src/renderers/ox-grist-renderer-boolean.js.map +0 -1
  359. package/dist/src/renderers/ox-grist-renderer-color.d.ts +0 -2
  360. package/dist/src/renderers/ox-grist-renderer-color.js +0 -12
  361. package/dist/src/renderers/ox-grist-renderer-color.js.map +0 -1
  362. package/dist/src/renderers/ox-grist-renderer-date.d.ts +0 -2
  363. package/dist/src/renderers/ox-grist-renderer-date.js +0 -53
  364. package/dist/src/renderers/ox-grist-renderer-date.js.map +0 -1
  365. package/dist/src/renderers/ox-grist-renderer-file.d.ts +0 -2
  366. package/dist/src/renderers/ox-grist-renderer-file.js +0 -27
  367. package/dist/src/renderers/ox-grist-renderer-file.js.map +0 -1
  368. package/dist/src/renderers/ox-grist-renderer-image.d.ts +0 -2
  369. package/dist/src/renderers/ox-grist-renderer-image.js +0 -24
  370. package/dist/src/renderers/ox-grist-renderer-image.js.map +0 -1
  371. package/dist/src/renderers/ox-grist-renderer-json5.d.ts +0 -2
  372. package/dist/src/renderers/ox-grist-renderer-json5.js +0 -30
  373. package/dist/src/renderers/ox-grist-renderer-json5.js.map +0 -1
  374. package/dist/src/renderers/ox-grist-renderer-link.d.ts +0 -2
  375. package/dist/src/renderers/ox-grist-renderer-link.js +0 -12
  376. package/dist/src/renderers/ox-grist-renderer-link.js.map +0 -1
  377. package/dist/src/renderers/ox-grist-renderer-password.d.ts +0 -2
  378. package/dist/src/renderers/ox-grist-renderer-password.js +0 -5
  379. package/dist/src/renderers/ox-grist-renderer-password.js.map +0 -1
  380. package/dist/src/renderers/ox-grist-renderer-progress.d.ts +0 -5
  381. package/dist/src/renderers/ox-grist-renderer-progress.js +0 -46
  382. package/dist/src/renderers/ox-grist-renderer-progress.js.map +0 -1
  383. package/dist/src/renderers/ox-grist-renderer-select.d.ts +0 -2
  384. package/dist/src/renderers/ox-grist-renderer-select.js +0 -50
  385. package/dist/src/renderers/ox-grist-renderer-select.js.map +0 -1
  386. package/dist/src/renderers/ox-grist-renderer-text.d.ts +0 -2
  387. package/dist/src/renderers/ox-grist-renderer-text.js +0 -11
  388. package/dist/src/renderers/ox-grist-renderer-text.js.map +0 -1
  389. package/dist/src/renderers/ox-grist-renderer-textarea.d.ts +0 -2
  390. package/dist/src/renderers/ox-grist-renderer-textarea.js +0 -5
  391. package/dist/src/renderers/ox-grist-renderer-textarea.js.map +0 -1
  392. package/dist/src/renderers/ox-grist-renderer-tree.d.ts +0 -12
  393. package/dist/src/renderers/ox-grist-renderer-tree.js +0 -183
  394. package/dist/src/renderers/ox-grist-renderer-tree.js.map +0 -1
  395. package/dist/src/renderers/ox-grist-renderer.d.ts +0 -15
  396. package/dist/src/renderers/ox-grist-renderer.js +0 -48
  397. package/dist/src/renderers/ox-grist-renderer.js.map +0 -1
  398. package/dist/src/renderers/registry.d.ts +0 -12
  399. package/dist/src/renderers/registry.js +0 -70
  400. package/dist/src/renderers/registry.js.map +0 -1
  401. package/dist/src/sorters/sorters-control.d.ts +0 -12
  402. package/dist/src/sorters/sorters-control.js +0 -138
  403. package/dist/src/sorters/sorters-control.js.map +0 -1
  404. package/dist/src/types.d.ts +0 -696
  405. package/dist/src/types.js +0 -23
  406. package/dist/src/types.js.map +0 -1
  407. package/dist/src/utils/index.d.ts +0 -2
  408. package/dist/src/utils/index.js +0 -3
  409. package/dist/src/utils/index.js.map +0 -1
  410. package/dist/src/utils/list-param.d.ts +0 -16
  411. package/dist/src/utils/list-param.js +0 -40
  412. package/dist/src/utils/list-param.js.map +0 -1
  413. package/dist/src/utils/supports-passive.d.ts +0 -1
  414. package/dist/src/utils/supports-passive.js +0 -13
  415. package/dist/src/utils/supports-passive.js.map +0 -1
  416. package/dist/stories/accumulator-format.stories.d.ts +0 -41
  417. package/dist/stories/accumulator-format.stories.js +0 -237
  418. package/dist/stories/accumulator-format.stories.js.map +0 -1
  419. package/dist/stories/barcode-input-filter.stories.d.ts +0 -33
  420. package/dist/stories/barcode-input-filter.stories.js +0 -185
  421. package/dist/stories/barcode-input-filter.stories.js.map +0 -1
  422. package/dist/stories/bounded-select-filters.stories.d.ts +0 -25
  423. package/dist/stories/bounded-select-filters.stories.js +0 -283
  424. package/dist/stories/bounded-select-filters.stories.js.map +0 -1
  425. package/dist/stories/bounded-select-record.stories.d.ts +0 -25
  426. package/dist/stories/bounded-select-record.stories.js +0 -286
  427. package/dist/stories/bounded-select-record.stories.js.map +0 -1
  428. package/dist/stories/click-event-custom.stories.d.ts +0 -45
  429. package/dist/stories/click-event-custom.stories.js +0 -248
  430. package/dist/stories/click-event-custom.stories.js.map +0 -1
  431. package/dist/stories/click-event.stories.d.ts +0 -45
  432. package/dist/stories/click-event.stories.js +0 -243
  433. package/dist/stories/click-event.stories.js.map +0 -1
  434. package/dist/stories/creatable-only-column.stories.d.ts +0 -29
  435. package/dist/stories/creatable-only-column.stories.js +0 -232
  436. package/dist/stories/creatable-only-column.stories.js.map +0 -1
  437. package/dist/stories/default-filters.stories.d.ts +0 -26
  438. package/dist/stories/default-filters.stories.js +0 -219
  439. package/dist/stories/default-filters.stories.js.map +0 -1
  440. package/dist/stories/dynamic-editable.stories.d.ts +0 -25
  441. package/dist/stories/dynamic-editable.stories.js +0 -293
  442. package/dist/stories/dynamic-editable.stories.js.map +0 -1
  443. package/dist/stories/empty-sorters.stories.d.ts +0 -25
  444. package/dist/stories/empty-sorters.stories.js +0 -162
  445. package/dist/stories/empty-sorters.stories.js.map +0 -1
  446. package/dist/stories/explicit-fetch.stories.d.ts +0 -25
  447. package/dist/stories/explicit-fetch.stories.js +0 -166
  448. package/dist/stories/explicit-fetch.stories.js.map +0 -1
  449. package/dist/stories/fixed-column.stories.d.ts +0 -26
  450. package/dist/stories/fixed-column.stories.js +0 -383
  451. package/dist/stories/fixed-column.stories.js.map +0 -1
  452. package/dist/stories/grid-setting.stories.d.ts +0 -47
  453. package/dist/stories/grid-setting.stories.js +0 -453
  454. package/dist/stories/grid-setting.stories.js.map +0 -1
  455. package/dist/stories/grist-modes.stories.d.ts +0 -37
  456. package/dist/stories/grist-modes.stories.js +0 -416
  457. package/dist/stories/grist-modes.stories.js.map +0 -1
  458. package/dist/stories/group-header.stories.d.ts +0 -26
  459. package/dist/stories/group-header.stories.js +0 -410
  460. package/dist/stories/group-header.stories.js.map +0 -1
  461. package/dist/stories/record-view.stories.d.ts +0 -24
  462. package/dist/stories/record-view.stories.js +0 -125
  463. package/dist/stories/record-view.stories.js.map +0 -1
  464. package/dist/stories/textarea.stories.d.ts +0 -37
  465. package/dist/stories/textarea.stories.js +0 -229
  466. package/dist/stories/textarea.stories.js.map +0 -1
  467. package/dist/stories/tree-column-with-checkbox.stories.d.ts +0 -26
  468. package/dist/stories/tree-column-with-checkbox.stories.js +0 -267
  469. package/dist/stories/tree-column-with-checkbox.stories.js.map +0 -1
  470. package/dist/stories/tree-column.stories.d.ts +0 -26
  471. package/dist/stories/tree-column.stories.js +0 -266
  472. package/dist/stories/tree-column.stories.js.map +0 -1
@@ -1,21 +0,0 @@
1
- import '@material/web/icon/icon.js';
2
- import '../data-grid/data-grid-field.js';
3
- import { LitElement } from 'lit';
4
- import { ColumnConfig, GristRecord, ValidationReason } from '../types.js';
5
- export declare class RecordViewBody extends LitElement {
6
- static styles: import("lit").CSSResult[];
7
- columns: ColumnConfig[];
8
- record: GristRecord;
9
- rowIndex: number;
10
- currentTarget: any;
11
- connectedCallback(): void;
12
- disconnectedCallback(): void;
13
- setFocus(fieldElement: HTMLElement): void;
14
- setFocusOnInvalid(invalidFields: {
15
- field: string;
16
- reason: ValidationReason;
17
- }[]): void;
18
- _onKeyDown(event: KeyboardEvent): void;
19
- render(): import("lit-html").TemplateResult<1>;
20
- _renderLabel(column: ColumnConfig): import("lit-html").TemplateResult<1>;
21
- }
@@ -1,252 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import '@material/web/icon/icon.js';
3
- import '../data-grid/data-grid-field.js';
4
- import { css, html, LitElement } from 'lit';
5
- import { customElement, property } from 'lit/decorators.js';
6
- import { ZERO_RECORD } from '../configure/zero-config.js';
7
- import { recordViewBodyClickHandler } from './event-handlers/record-view-body-click-handler.js';
8
- import i18next from 'i18next';
9
- let RecordViewBody = class RecordViewBody extends LitElement {
10
- constructor() {
11
- super(...arguments);
12
- this.columns = [];
13
- this.record = ZERO_RECORD;
14
- this.rowIndex = -1;
15
- }
16
- connectedCallback() {
17
- super.connectedCallback();
18
- this.setAttribute('tabindex', '0');
19
- this.addEventListener('keydown', this._onKeyDown);
20
- this.renderRoot.addEventListener('click', recordViewBodyClickHandler.bind(this));
21
- }
22
- disconnectedCallback() {
23
- super.disconnectedCallback();
24
- this.removeEventListener('keydown', this._onKeyDown);
25
- }
26
- setFocus(fieldElement) {
27
- fieldElement === null || fieldElement === void 0 ? void 0 : fieldElement.dispatchEvent(new CustomEvent('click', { bubbles: true, composed: true }));
28
- }
29
- setFocusOnInvalid(invalidFields) {
30
- const allLabels = this.renderRoot.querySelectorAll('label');
31
- allLabels.forEach((label) => {
32
- label.classList.remove('highlight-invalid');
33
- label.removeAttribute('data-reason');
34
- });
35
- // 유효성 검사를 통과하지 못한 필드에 대해 처리
36
- invalidFields.forEach(({ field, reason }, index) => {
37
- const labelElement = this.renderRoot.querySelector(`[data-name="${field}"]`);
38
- const fieldElement = this.renderRoot.querySelector(`[data-name="${field}"] + ox-grid-field`);
39
- // 동적으로 data-reason 속성을 설정하여 메시지를 변경
40
- if (labelElement) {
41
- labelElement.classList.add('highlight-invalid');
42
- labelElement.setAttribute('data-reason', '(' + i18next.t(`text.validation-reason.${reason}`) + ')');
43
- }
44
- // 첫 번째 필드에 포커스 설정
45
- if (index === 0 && fieldElement) {
46
- this.setFocus(fieldElement);
47
- }
48
- });
49
- }
50
- _onKeyDown(event) {
51
- if (event.key === 'Tab') {
52
- const fields = Array.from(this.renderRoot.querySelectorAll('ox-grid-field[tabstop]'));
53
- const focused = this.renderRoot.querySelector('ox-grid-field[editing]');
54
- const focusedIndex = fields.findIndex(field => field === focused);
55
- let nextIndex = focusedIndex + (event.shiftKey ? -1 : 1);
56
- if (nextIndex >= fields.length || nextIndex < 0) {
57
- return; // Let the default behavior happen if it's the last or first element
58
- }
59
- event.preventDefault();
60
- const nextField = fields[nextIndex];
61
- nextField && this.setFocus(nextField);
62
- }
63
- }
64
- render() {
65
- var columns = this.columns.filter(column => !column.hidden && column.type !== 'gutter');
66
- var record = this.record;
67
- var rowIndex = this.rowIndex;
68
- return html `
69
- <div content>
70
- ${columns.map((column, index) => {
71
- let { editable, disabled, mandatory, wide } = column.record;
72
- if (typeof editable === 'function') {
73
- editable = editable.call(this, record[column.name], column, record, rowIndex, this);
74
- }
75
- if (typeof disabled === 'function') {
76
- disabled = disabled.call(this, record[column.name], column, record, rowIndex, this);
77
- }
78
- let dirtyFields = record['__dirtyfields__'] || {};
79
- return html `
80
- <label ?editable=${editable} ?wide=${wide} data-name=${column.name}>
81
- <span>${mandatory ? '*' : ''}${this._renderLabel(column)}</span>
82
- <md-icon>edit</md-icon>
83
- </label>
84
- <ox-grid-field
85
- ?disabled=${disabled}
86
- .rowIndex=${rowIndex}
87
- .column=${column}
88
- .record=${record}
89
- .value=${record[column.name]}
90
- ?dirty=${!!dirtyFields[column.name]}
91
- ?tabstop=${!!editable}
92
- ?wide=${wide}
93
- ></ox-grid-field>
94
- `;
95
- })}
96
- </div>
97
- `;
98
- }
99
- _renderLabel(column) {
100
- var { renderer } = column.header;
101
- var title = renderer.call(this, column);
102
- return html ` ${title} `;
103
- }
104
- };
105
- RecordViewBody.styles = [
106
- css `
107
- :host {
108
- display: flex;
109
- flex-direction: column;
110
- align-content: center;
111
- }
112
-
113
- :host > * {
114
- align-self: stretch;
115
- }
116
-
117
- div[content] {
118
- align-self: center;
119
-
120
- display: grid;
121
- grid-template-columns: 2fr 3fr 2fr 3fr;
122
- grid-auto-rows: min-content;
123
- grid-gap: var(--spacing-large) 0;
124
-
125
- padding: var(--spacing-large) var(--spacing-huge);
126
- font-size: 16px; /* for ios safari */
127
- flex: 1;
128
- width: 100%;
129
- max-width: 1300px;
130
- box-sizing: border-box;
131
- }
132
-
133
- label {
134
- display: flex;
135
- align-items: center;
136
- position: relative;
137
- text-transform: capitalize;
138
- padding: var(--record-view-item-padding);
139
- font: var(--record-view-label-font);
140
- color: var(--record-view-label-color);
141
- text-align: right;
142
- padding-right: var(--spacing-large);
143
- }
144
-
145
- label[wide] {
146
- grid-column: 1 / 2;
147
- }
148
-
149
- label md-icon {
150
- display: none;
151
- }
152
-
153
- label > span {
154
- margin-left: auto;
155
- }
156
-
157
- label[editable] md-icon {
158
- display: inline-block;
159
- font-size: var(--record-view-label-icon-size);
160
- opacity: 0.5;
161
- }
162
-
163
- ox-grid-field {
164
- background-color: var(--record-view-grid-field-background-color, var(--md-sys-color-surface-container-lowest));
165
- border: var(--record-view-grid-field-border);
166
- border-radius: var(--md-sys-shape-corner-small);
167
- padding: var(--spacing-tiny) var(--spacing-small);
168
-
169
- font: var(--record-view-font);
170
- color: var(--record-view-color);
171
-
172
- max-width: 360px;
173
- }
174
-
175
- ox-grid-field[editing='true'] {
176
- border: var(--record-view-edit-border);
177
- }
178
-
179
- ox-grid-field[wide] {
180
- grid-column: 2 / 5;
181
- width: 100%;
182
- max-width: 986px;
183
- }
184
-
185
- :first-child + ox-grid-field {
186
- color: var(--record-view-focus-color);
187
- font-weight: bold;
188
- }
189
-
190
- .highlight-invalid {
191
- position: relative;
192
- padding: var(--spacing-tiny) var(--spacing-small);
193
- }
194
-
195
- .highlight-invalid::after {
196
- content: attr(data-reason); /* 콘텐츠를 동적으로 변경하기 위해 data-reason 속성을 사용 */
197
- color: red;
198
- font-size: 12px;
199
- position: absolute;
200
- left: 0;
201
- bottom: -8px; /* 라벨 아래쪽에 메시지를 표시 */
202
- }
203
-
204
- @media only screen and (max-width: 1000px) {
205
- div[content] {
206
- grid-template-columns: 2fr 3fr;
207
- padding: var(--spacing-medium);
208
- }
209
-
210
- label[wide] {
211
- grid-column: 1 / 2;
212
- }
213
-
214
- ox-grid-field[wide] {
215
- grid-column: 2 / 3;
216
- width: 100%;
217
- max-width: 360px;
218
- }
219
- }
220
-
221
- @media only screen and (max-width: 600px) {
222
- div[content] {
223
- grid-template-columns: 2fr 3fr;
224
- padding: var(--spacing-medium);
225
- }
226
-
227
- label[wide] {
228
- grid-column: 1 / 2;
229
- }
230
-
231
- ox-grid-field[wide] {
232
- grid-column: 1 / 3;
233
- width: 100%;
234
- max-width: unset;
235
- }
236
- }
237
- `
238
- ];
239
- __decorate([
240
- property({ type: Array })
241
- ], RecordViewBody.prototype, "columns", void 0);
242
- __decorate([
243
- property({ type: Object })
244
- ], RecordViewBody.prototype, "record", void 0);
245
- __decorate([
246
- property({ type: Number })
247
- ], RecordViewBody.prototype, "rowIndex", void 0);
248
- RecordViewBody = __decorate([
249
- customElement('ox-record-view-body')
250
- ], RecordViewBody);
251
- export { RecordViewBody };
252
- //# sourceMappingURL=record-view-body.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"record-view-body.js","sourceRoot":"","sources":["../../../src/record-view/record-view-body.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport '../data-grid/data-grid-field.js'\n\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { ZERO_RECORD } from '../configure/zero-config.js'\nimport { ColumnConfig, GristRecord, ValidationReason } from '../types.js'\nimport { recordViewBodyClickHandler } from './event-handlers/record-view-body-click-handler.js'\nimport i18next from 'i18next'\n\n@customElement('ox-record-view-body')\nexport class RecordViewBody extends LitElement {\n static styles = [\n css`\n :host {\n display: flex;\n flex-direction: column;\n align-content: center;\n }\n\n :host > * {\n align-self: stretch;\n }\n\n div[content] {\n align-self: center;\n\n display: grid;\n grid-template-columns: 2fr 3fr 2fr 3fr;\n grid-auto-rows: min-content;\n grid-gap: var(--spacing-large) 0;\n\n padding: var(--spacing-large) var(--spacing-huge);\n font-size: 16px; /* for ios safari */\n flex: 1;\n width: 100%;\n max-width: 1300px;\n box-sizing: border-box;\n }\n\n label {\n display: flex;\n align-items: center;\n position: relative;\n text-transform: capitalize;\n padding: var(--record-view-item-padding);\n font: var(--record-view-label-font);\n color: var(--record-view-label-color);\n text-align: right;\n padding-right: var(--spacing-large);\n }\n\n label[wide] {\n grid-column: 1 / 2;\n }\n\n label md-icon {\n display: none;\n }\n\n label > span {\n margin-left: auto;\n }\n\n label[editable] md-icon {\n display: inline-block;\n font-size: var(--record-view-label-icon-size);\n opacity: 0.5;\n }\n\n ox-grid-field {\n background-color: var(--record-view-grid-field-background-color, var(--md-sys-color-surface-container-lowest));\n border: var(--record-view-grid-field-border);\n border-radius: var(--md-sys-shape-corner-small);\n padding: var(--spacing-tiny) var(--spacing-small);\n\n font: var(--record-view-font);\n color: var(--record-view-color);\n\n max-width: 360px;\n }\n\n ox-grid-field[editing='true'] {\n border: var(--record-view-edit-border);\n }\n\n ox-grid-field[wide] {\n grid-column: 2 / 5;\n width: 100%;\n max-width: 986px;\n }\n\n :first-child + ox-grid-field {\n color: var(--record-view-focus-color);\n font-weight: bold;\n }\n\n .highlight-invalid {\n position: relative;\n padding: var(--spacing-tiny) var(--spacing-small);\n }\n\n .highlight-invalid::after {\n content: attr(data-reason); /* 콘텐츠를 동적으로 변경하기 위해 data-reason 속성을 사용 */\n color: red;\n font-size: 12px;\n position: absolute;\n left: 0;\n bottom: -8px; /* 라벨 아래쪽에 메시지를 표시 */\n }\n\n @media only screen and (max-width: 1000px) {\n div[content] {\n grid-template-columns: 2fr 3fr;\n padding: var(--spacing-medium);\n }\n\n label[wide] {\n grid-column: 1 / 2;\n }\n\n ox-grid-field[wide] {\n grid-column: 2 / 3;\n width: 100%;\n max-width: 360px;\n }\n }\n\n @media only screen and (max-width: 600px) {\n div[content] {\n grid-template-columns: 2fr 3fr;\n padding: var(--spacing-medium);\n }\n\n label[wide] {\n grid-column: 1 / 2;\n }\n\n ox-grid-field[wide] {\n grid-column: 1 / 3;\n width: 100%;\n max-width: unset;\n }\n }\n `\n ]\n\n @property({ type: Array }) columns: ColumnConfig[] = []\n @property({ type: Object }) record: GristRecord = ZERO_RECORD\n @property({ type: Number }) rowIndex: number = -1\n\n public currentTarget: any\n\n connectedCallback() {\n super.connectedCallback()\n\n this.setAttribute('tabindex', '0')\n\n this.addEventListener('keydown', this._onKeyDown)\n this.renderRoot.addEventListener('click', recordViewBodyClickHandler.bind(this))\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n this.removeEventListener('keydown', this._onKeyDown)\n }\n\n setFocus(fieldElement: HTMLElement) {\n fieldElement?.dispatchEvent(new CustomEvent('click', { bubbles: true, composed: true }))\n }\n\n setFocusOnInvalid(invalidFields: { field: string; reason: ValidationReason }[]) {\n const allLabels = this.renderRoot.querySelectorAll('label')\n allLabels.forEach((label: HTMLLabelElement) => {\n label.classList.remove('highlight-invalid')\n label.removeAttribute('data-reason')\n })\n\n // 유효성 검사를 통과하지 못한 필드에 대해 처리\n invalidFields.forEach(({ field, reason }, index) => {\n const labelElement = this.renderRoot.querySelector(`[data-name=\"${field}\"]`) as HTMLLabelElement\n const fieldElement = this.renderRoot.querySelector(`[data-name=\"${field}\"] + ox-grid-field`) as HTMLInputElement\n\n // 동적으로 data-reason 속성을 설정하여 메시지를 변경\n if (labelElement) {\n labelElement.classList.add('highlight-invalid')\n labelElement.setAttribute('data-reason', '(' + i18next.t(`text.validation-reason.${reason}`) + ')')\n }\n\n // 첫 번째 필드에 포커스 설정\n if (index === 0 && fieldElement) {\n this.setFocus(fieldElement)\n }\n })\n }\n\n _onKeyDown(event: KeyboardEvent) {\n if (event.key === 'Tab') {\n const fields = Array.from(this.renderRoot.querySelectorAll('ox-grid-field[tabstop]'))\n const focused = this.renderRoot.querySelector('ox-grid-field[editing]')\n const focusedIndex = fields.findIndex(field => field === focused)\n\n let nextIndex = focusedIndex + (event.shiftKey ? -1 : 1)\n\n if (nextIndex >= fields.length || nextIndex < 0) {\n return // Let the default behavior happen if it's the last or first element\n }\n\n event.preventDefault()\n const nextField = fields[nextIndex] as HTMLInputElement\n nextField && this.setFocus(nextField)\n }\n }\n\n render() {\n var columns = this.columns.filter(column => !column.hidden && column.type !== 'gutter')\n var record = this.record\n var rowIndex = this.rowIndex\n\n return html`\n <div content>\n ${columns.map((column, index) => {\n let { editable, disabled, mandatory, wide } = column.record\n if (typeof editable === 'function') {\n editable = editable.call(this, record[column.name], column, record, rowIndex, this)\n }\n if (typeof disabled === 'function') {\n disabled = disabled.call(this, record[column.name], column, record, rowIndex, this)\n }\n\n let dirtyFields = record['__dirtyfields__'] || {}\n\n return html`\n <label ?editable=${editable} ?wide=${wide} data-name=${column.name}>\n <span>${mandatory ? '*' : ''}${this._renderLabel(column)}</span>\n <md-icon>edit</md-icon>\n </label>\n <ox-grid-field\n ?disabled=${disabled}\n .rowIndex=${rowIndex}\n .column=${column}\n .record=${record}\n .value=${record[column.name]}\n ?dirty=${!!dirtyFields[column.name]}\n ?tabstop=${!!editable}\n ?wide=${wide}\n ></ox-grid-field>\n `\n })}\n </div>\n `\n }\n\n _renderLabel(column: ColumnConfig) {\n var { renderer } = column.header\n var title = renderer.call(this, column)\n\n return html` ${title} `\n }\n}\n"]}
@@ -1,9 +0,0 @@
1
- import { RecordCard } from '../data-card/record-card.js';
2
- import { DataGridBody } from '../data-grid/data-grid-body.js';
3
- import { DataGridField } from '../data-grid/data-grid-field.js';
4
- import { RecordPartial } from '../data-list/record-partial.js';
5
- import { RecordView } from './record-view.js';
6
- import { ColumnConfig, GristRecord } from '../types.js';
7
- export declare const RecordViewHandler: (columns: ColumnConfig[], record: GristRecord, rowIndex: number, field: DataGridField | RecordCard | RecordPartial | DataGridBody, popupOptions: {
8
- [key: string]: any;
9
- }, closeCallback?: () => void) => RecordView;
@@ -1,57 +0,0 @@
1
- /*
2
- * handler들은 ox-grid-field 로부터 호출되는 것을 전제로 하며,
3
- * 전반적인 처리를 위해서, columns 및 data 정보를 포함해서 제공할 수 있어야 한다.
4
- */
5
- export const RecordViewHandler = function (columns, record, rowIndex, field, popupOptions, closeCallback) {
6
- var recordView = document.createElement('ox-record-view');
7
- recordView.columns = columns;
8
- recordView.record = record;
9
- recordView.rowIndex = rowIndex;
10
- document.dispatchEvent(new CustomEvent('open-popup', {
11
- detail: {
12
- template: recordView,
13
- options: {
14
- backdrop: true,
15
- size: 'large',
16
- title: record['name'],
17
- ...popupOptions
18
- },
19
- callback: (popup) => {
20
- recordView.addEventListener('field-change', (e) => {
21
- field.dispatchEvent(new CustomEvent('field-change', {
22
- bubbles: true,
23
- composed: true,
24
- detail: e.detail
25
- }));
26
- });
27
- recordView.addEventListener('reset', (e) => {
28
- field.dispatchEvent(new CustomEvent('record-reset', {
29
- bubbles: true,
30
- composed: true,
31
- detail: {
32
- record: record,
33
- row: rowIndex
34
- }
35
- }));
36
- });
37
- recordView.addEventListener('cancel', (e) => {
38
- field.dispatchEvent(new CustomEvent('record-reset', {
39
- bubbles: true,
40
- composed: true,
41
- detail: {
42
- record: record,
43
- row: rowIndex
44
- }
45
- }));
46
- popup.close();
47
- });
48
- recordView.addEventListener('ok', (e) => {
49
- popup.close();
50
- });
51
- popup.onclosed = closeCallback;
52
- }
53
- }
54
- }));
55
- return recordView;
56
- };
57
- //# sourceMappingURL=record-view-handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"record-view-handler.js","sourceRoot":"","sources":["../../../src/record-view/record-view-handler.ts"],"names":[],"mappings":"AAOA;;;GAGG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAC/B,OAAuB,EACvB,MAAmB,EACnB,QAAgB,EAChB,KAAgE,EAChE,YAAoC,EACpC,aAA0B;IAE1B,IAAI,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAe,CAAA;IAEvE,UAAU,CAAC,OAAO,GAAG,OAAO,CAAA;IAC5B,UAAU,CAAC,MAAM,GAAG,MAAM,CAAA;IAC1B,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAE9B,QAAQ,CAAC,aAAa,CACpB,IAAI,WAAW,CAAC,YAAY,EAAE;QAC5B,MAAM,EAAE;YACN,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE;gBACP,QAAQ,EAAE,IAAI;gBACd,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;gBACrB,GAAG,YAAY;aAChB;YACD,QAAQ,EAAE,CAAC,KAAU,EAAE,EAAE;gBACvB,UAAU,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAQ,EAAE,EAAE;oBACvD,KAAK,CAAC,aAAa,CACjB,IAAI,WAAW,CAAC,cAAc,EAAE;wBAC9B,OAAO,EAAE,IAAI;wBACb,QAAQ,EAAE,IAAI;wBACd,MAAM,EAAG,CAAS,CAAC,MAAM;qBAC1B,CAAC,CACH,CAAA;gBACH,CAAC,CAAC,CAAA;gBAEF,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAQ,EAAE,EAAE;oBAChD,KAAK,CAAC,aAAa,CACjB,IAAI,WAAW,CAAC,cAAc,EAAE;wBAC9B,OAAO,EAAE,IAAI;wBACb,QAAQ,EAAE,IAAI;wBACd,MAAM,EAAE;4BACN,MAAM,EAAE,MAAM;4BACd,GAAG,EAAE,QAAQ;yBACd;qBACF,CAAC,CACH,CAAA;gBACH,CAAC,CAAC,CAAA;gBAEF,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAQ,EAAE,EAAE;oBACjD,KAAK,CAAC,aAAa,CACjB,IAAI,WAAW,CAAC,cAAc,EAAE;wBAC9B,OAAO,EAAE,IAAI;wBACb,QAAQ,EAAE,IAAI;wBACd,MAAM,EAAE;4BACN,MAAM,EAAE,MAAM;4BACd,GAAG,EAAE,QAAQ;yBACd;qBACF,CAAC,CACH,CAAA;oBACD,KAAK,CAAC,KAAK,EAAE,CAAA;gBACf,CAAC,CAAC,CAAA;gBAEF,UAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAQ,EAAE,EAAE;oBAC7C,KAAK,CAAC,KAAK,EAAE,CAAA;gBACf,CAAC,CAAC,CAAA;gBAEF,KAAK,CAAC,QAAQ,GAAG,aAAa,CAAA;YAChC,CAAC;SACF;KACK,CAAC,CACV,CAAA;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA","sourcesContent":["import { RecordCard } from '../data-card/record-card.js'\nimport { DataGridBody } from '../data-grid/data-grid-body.js'\nimport { DataGridField } from '../data-grid/data-grid-field.js'\nimport { RecordPartial } from '../data-list/record-partial.js'\nimport { RecordView } from './record-view.js'\nimport { ColumnConfig, GristRecord } from '../types.js'\n\n/*\n * handler들은 ox-grid-field 로부터 호출되는 것을 전제로 하며,\n * 전반적인 처리를 위해서, columns 및 data 정보를 포함해서 제공할 수 있어야 한다.\n */\n\nexport const RecordViewHandler = function (\n columns: ColumnConfig[],\n record: GristRecord,\n rowIndex: number,\n field: DataGridField | RecordCard | RecordPartial | DataGridBody,\n popupOptions: { [key: string]: any },\n closeCallback?: () => void\n): RecordView {\n var recordView = document.createElement('ox-record-view') as RecordView\n\n recordView.columns = columns\n recordView.record = record\n recordView.rowIndex = rowIndex\n\n document.dispatchEvent(\n new CustomEvent('open-popup', {\n detail: {\n template: recordView,\n options: {\n backdrop: true,\n size: 'large',\n title: record['name'],\n ...popupOptions\n },\n callback: (popup: any) => {\n recordView.addEventListener('field-change', (e: Event) => {\n field.dispatchEvent(\n new CustomEvent('field-change', {\n bubbles: true,\n composed: true,\n detail: (e as any).detail\n })\n )\n })\n\n recordView.addEventListener('reset', (e: Event) => {\n field.dispatchEvent(\n new CustomEvent('record-reset', {\n bubbles: true,\n composed: true,\n detail: {\n record: record,\n row: rowIndex\n }\n })\n )\n })\n\n recordView.addEventListener('cancel', (e: Event) => {\n field.dispatchEvent(\n new CustomEvent('record-reset', {\n bubbles: true,\n composed: true,\n detail: {\n record: record,\n row: rowIndex\n }\n })\n )\n popup.close()\n })\n\n recordView.addEventListener('ok', (e: Event) => {\n popup.close()\n })\n\n popup.onclosed = closeCallback\n }\n }\n } as any)\n )\n\n return recordView\n}\n"]}
@@ -1,23 +0,0 @@
1
- import '@material/web/icon/icon.js';
2
- import '@operato/input/ox-input-file.js';
3
- import '../data-grid/data-grid-field.js';
4
- import './record-view-body.js';
5
- import { LitElement } from 'lit';
6
- import { ColumnConfig, GristRecord, ValidationReason } from '../types.js';
7
- import { RecordViewBody } from './record-view-body.js';
8
- export declare class RecordView extends LitElement {
9
- static styles: import("lit").CSSResult[];
10
- columns: ColumnConfig[];
11
- record: GristRecord;
12
- rowIndex: number;
13
- body: RecordViewBody;
14
- render(): import("lit-html").TemplateResult<1>;
15
- firstUpdated(): void;
16
- setFocusOnInvalid(invalidFields: {
17
- field: string;
18
- reason: ValidationReason;
19
- }[]): void;
20
- onReset(): void;
21
- onCancel(): void;
22
- onOK(): void;
23
- }
@@ -1,117 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import '@material/web/icon/icon.js';
3
- import '@operato/input/ox-input-file.js';
4
- import '../data-grid/data-grid-field.js';
5
- import './record-view-body.js';
6
- import { css, html, LitElement } from 'lit';
7
- import { customElement, property, query } from 'lit/decorators.js';
8
- import { ScrollbarStyles } from '@operato/styles';
9
- import { ZERO_RECORD } from '../configure/zero-config.js';
10
- let RecordView = class RecordView extends LitElement {
11
- constructor() {
12
- super(...arguments);
13
- this.columns = [];
14
- this.record = ZERO_RECORD;
15
- this.rowIndex = -1;
16
- }
17
- render() {
18
- return html `
19
- <ox-record-view-body .columns=${this.columns} .record=${this.record} .rowIndex=${this.rowIndex}>
20
- </ox-record-view-body>
21
- <div footer>
22
- <button @click=${this.onReset.bind(this)}><md-icon>refresh</md-icon><span>Reset</span></button>
23
- <button @click=${this.onCancel.bind(this)}><md-icon>clear</md-icon><span>Cancel</span></button>
24
- <button @click=${this.onOK.bind(this)} ok><md-icon>task_alt</md-icon><span>OK</span></button>
25
- </div>
26
- `;
27
- }
28
- firstUpdated() {
29
- this.setAttribute('tabindex', '0');
30
- }
31
- setFocusOnInvalid(invalidFields) {
32
- this.body.setFocusOnInvalid(invalidFields);
33
- }
34
- onReset() {
35
- this.focus();
36
- this.dispatchEvent(new CustomEvent('reset', {
37
- detail: this.record
38
- }));
39
- }
40
- onCancel() {
41
- this.focus();
42
- this.dispatchEvent(new CustomEvent('cancel', {
43
- detail: this.record
44
- }));
45
- }
46
- onOK() {
47
- this.focus();
48
- this.dispatchEvent(new CustomEvent('ok', {
49
- detail: this.record
50
- }));
51
- }
52
- };
53
- RecordView.styles = [
54
- ScrollbarStyles,
55
- css `
56
- :host {
57
- display: flex;
58
- flex-direction: column;
59
- background-color: var(--record-view-background-color);
60
- }
61
-
62
- ox-record-view-body {
63
- flex: 1;
64
- overflow-y: auto;
65
- }
66
-
67
- [footer] {
68
- text-align: right;
69
- background-color: var(--record-view-footer-background);
70
- box-shadow: var(--context-toolbar-shadow-line);
71
- }
72
-
73
- [footer] button {
74
- display: inline-block;
75
- align-items: center;
76
- justify-content: center;
77
-
78
- background-color: transparent;
79
- border: var(--record-view-footer-button-border);
80
- border-width: var(--record-view-footer-button-border-width);
81
- padding: var(--spacing-tiny) var(--spacing-medium);
82
- color: var(--record-view-footer-button-color);
83
- font-size: var(--md-sys-typescale-title-medium-size, 1rem);
84
- line-height: 2;
85
- }
86
-
87
- [footer] button * {
88
- vertical-align: middle;
89
- }
90
-
91
- [footer] button md-icon {
92
- --md-icon-size: var(--icon-size-small);
93
- margin-right: var(--spacing-small, 4px);
94
- }
95
-
96
- [footer] button[ok] {
97
- background-color: var(--record-view-footer-focus-background);
98
- }
99
- `
100
- ];
101
- __decorate([
102
- property({ type: Array })
103
- ], RecordView.prototype, "columns", void 0);
104
- __decorate([
105
- property({ type: Object })
106
- ], RecordView.prototype, "record", void 0);
107
- __decorate([
108
- property({ type: Number })
109
- ], RecordView.prototype, "rowIndex", void 0);
110
- __decorate([
111
- query('ox-record-view-body')
112
- ], RecordView.prototype, "body", void 0);
113
- RecordView = __decorate([
114
- customElement('ox-record-view')
115
- ], RecordView);
116
- export { RecordView };
117
- //# sourceMappingURL=record-view.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"record-view.js","sourceRoot":"","sources":["../../../src/record-view/record-view.ts"],"names":[],"mappings":";AAAA,OAAO,4BAA4B,CAAA;AACnC,OAAO,iCAAiC,CAAA;AACxC,OAAO,iCAAiC,CAAA;AACxC,OAAO,uBAAuB,CAAA;AAE9B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAElE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAMlD,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,UAAU;IAAnC;;QAkDsB,YAAO,GAAmB,EAAE,CAAA;QAC3B,WAAM,GAAgB,WAAW,CAAA;QACjC,aAAQ,GAAW,CAAC,CAAC,CAAA;IAqDnD,CAAC;IAjDC,MAAM;QACJ,OAAO,IAAI,CAAA;sCACuB,IAAI,CAAC,OAAO,YAAY,IAAI,CAAC,MAAM,cAAc,IAAI,CAAC,QAAQ;;;yBAG3E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;yBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;yBACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;;KAExC,CAAA;IACH,CAAC;IAED,YAAY;QACV,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;IACpC,CAAC;IAED,iBAAiB,CAAC,aAA4D;QAC5E,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC;IAED,OAAO;QACL,IAAI,CAAC,KAAK,EAAE,CAAA;QAEZ,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,OAAO,EAAE;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CACH,CAAA;IACH,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,KAAK,EAAE,CAAA;QAEZ,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,QAAQ,EAAE;YACxB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CACH,CAAA;IACH,CAAC;IAED,IAAI;QACF,IAAI,CAAC,KAAK,EAAE,CAAA;QAEZ,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,IAAI,EAAE;YACpB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CACH,CAAA;IACH,CAAC;;AAvGM,iBAAM,GAAG;IACd,eAAe;IACf,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA4CF;CACF,AA/CY,CA+CZ;AAE0B;IAA1B,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;2CAA6B;AAC3B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0CAAkC;AACjC;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4CAAsB;AAEnB;IAA7B,KAAK,CAAC,qBAAqB,CAAC;wCAAsB;AAtDxC,UAAU;IADtB,aAAa,CAAC,gBAAgB,CAAC;GACnB,UAAU,CAyGtB","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@operato/input/ox-input-file.js'\nimport '../data-grid/data-grid-field.js'\nimport './record-view-body.js'\n\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\n\nimport { ScrollbarStyles } from '@operato/styles'\n\nimport { ZERO_RECORD } from '../configure/zero-config.js'\nimport { ColumnConfig, GristRecord, ValidationReason } from '../types.js'\n\nimport { RecordViewBody } from './record-view-body.js'\n\n@customElement('ox-record-view')\nexport class RecordView extends LitElement {\n static styles = [\n ScrollbarStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n background-color: var(--record-view-background-color);\n }\n\n ox-record-view-body {\n flex: 1;\n overflow-y: auto;\n }\n\n [footer] {\n text-align: right;\n background-color: var(--record-view-footer-background);\n box-shadow: var(--context-toolbar-shadow-line);\n }\n\n [footer] button {\n display: inline-block;\n align-items: center;\n justify-content: center;\n\n background-color: transparent;\n border: var(--record-view-footer-button-border);\n border-width: var(--record-view-footer-button-border-width);\n padding: var(--spacing-tiny) var(--spacing-medium);\n color: var(--record-view-footer-button-color);\n font-size: var(--md-sys-typescale-title-medium-size, 1rem);\n line-height: 2;\n }\n\n [footer] button * {\n vertical-align: middle;\n }\n\n [footer] button md-icon {\n --md-icon-size: var(--icon-size-small);\n margin-right: var(--spacing-small, 4px);\n }\n\n [footer] button[ok] {\n background-color: var(--record-view-footer-focus-background);\n }\n `\n ]\n\n @property({ type: Array }) columns: ColumnConfig[] = []\n @property({ type: Object }) record: GristRecord = ZERO_RECORD\n @property({ type: Number }) rowIndex: number = -1\n\n @query('ox-record-view-body') body!: RecordViewBody\n\n render() {\n return html`\n <ox-record-view-body .columns=${this.columns} .record=${this.record} .rowIndex=${this.rowIndex}>\n </ox-record-view-body>\n <div footer>\n <button @click=${this.onReset.bind(this)}><md-icon>refresh</md-icon><span>Reset</span></button>\n <button @click=${this.onCancel.bind(this)}><md-icon>clear</md-icon><span>Cancel</span></button>\n <button @click=${this.onOK.bind(this)} ok><md-icon>task_alt</md-icon><span>OK</span></button>\n </div>\n `\n }\n\n firstUpdated() {\n this.setAttribute('tabindex', '0')\n }\n\n setFocusOnInvalid(invalidFields: { field: string; reason: ValidationReason }[]) {\n this.body.setFocusOnInvalid(invalidFields)\n }\n\n onReset() {\n this.focus()\n\n this.dispatchEvent(\n new CustomEvent('reset', {\n detail: this.record\n })\n )\n }\n\n onCancel() {\n this.focus()\n\n this.dispatchEvent(\n new CustomEvent('cancel', {\n detail: this.record\n })\n )\n }\n\n onOK() {\n this.focus()\n\n this.dispatchEvent(\n new CustomEvent('ok', {\n detail: this.record\n })\n )\n }\n}\n"]}
@@ -1,13 +0,0 @@
1
- export * from './registry.js';
2
- export * from './ox-grist-renderer.js';
3
- export * from './ox-grist-renderer-boolean.js';
4
- export * from './ox-grist-renderer-color.js';
5
- export * from './ox-grist-renderer-date.js';
6
- export * from './ox-grist-renderer-link.js';
7
- export * from './ox-grist-renderer-password.js';
8
- export * from './ox-grist-renderer-progress.js';
9
- export * from './ox-grist-renderer-text.js';
10
- export * from './ox-grist-renderer-select.js';
11
- export * from './ox-grist-renderer-image.js';
12
- export * from './ox-grist-renderer-file.js';
13
- export * from './ox-grist-renderer-json5.js';
@@ -1,14 +0,0 @@
1
- export * from './registry.js';
2
- export * from './ox-grist-renderer.js';
3
- export * from './ox-grist-renderer-boolean.js';
4
- export * from './ox-grist-renderer-color.js';
5
- export * from './ox-grist-renderer-date.js';
6
- export * from './ox-grist-renderer-link.js';
7
- export * from './ox-grist-renderer-password.js';
8
- export * from './ox-grist-renderer-progress.js';
9
- export * from './ox-grist-renderer-text.js';
10
- export * from './ox-grist-renderer-select.js';
11
- export * from './ox-grist-renderer-image.js';
12
- export * from './ox-grist-renderer-file.js';
13
- export * from './ox-grist-renderer-json5.js';
14
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/renderers/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAE7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,8BAA8B,CAAA","sourcesContent":["export * from './registry.js'\n\nexport * from './ox-grist-renderer.js'\nexport * from './ox-grist-renderer-boolean.js'\nexport * from './ox-grist-renderer-color.js'\nexport * from './ox-grist-renderer-date.js'\nexport * from './ox-grist-renderer-link.js'\nexport * from './ox-grist-renderer-password.js'\nexport * from './ox-grist-renderer-progress.js'\nexport * from './ox-grist-renderer-text.js'\nexport * from './ox-grist-renderer-select.js'\nexport * from './ox-grist-renderer-image.js'\nexport * from './ox-grist-renderer-file.js'\nexport * from './ox-grist-renderer-json5.js'\n"]}
@@ -1,2 +0,0 @@
1
- import { FieldRenderer } from '../types.js';
2
- export declare const OxGristRendererBoolean: FieldRenderer;
@@ -1,39 +0,0 @@
1
- import { html } from 'lit';
2
- export const OxGristRendererBoolean = (value, column, record, rowIndex, field) => {
3
- let { editable } = column.record;
4
- if (typeof editable === 'function') {
5
- editable = editable.call(field, value, column, record, rowIndex, field);
6
- }
7
- return html `
8
- <input
9
- type="checkbox"
10
- .checked=${!!value && !!String(value).match(/true/i)}
11
- ?disabled=${!editable}
12
- @pointerdown=${(e) => {
13
- /* edit mode로 전환되지 않도록 차단함. 체크박스인풋은 렌더러 모드에서도 처리가능하므로. */
14
- e.stopPropagation();
15
- }}
16
- @click=${(e) => {
17
- e.stopPropagation();
18
- /*
19
- * 특별하게, checkbox인 경우에, editor가 활성화되지 않아도, renderer에서 값을 변경할 수 있게 함.
20
- * checkbox가 클릭되면, 클릭에 의해 변경된 값을 레코드에 반영하기 위해서 value-changed 이벤트를 발생시킨다.
21
- *
22
- * 만일, readonly인 경우에는 click 이벤트가 발생하지 않으므로, 클릭으로 에디트할 수 없게 됨.
23
- */
24
- field.dispatchEvent(new CustomEvent('field-change', {
25
- bubbles: true,
26
- composed: true,
27
- detail: {
28
- before: value,
29
- after: e.target.checked,
30
- column: column,
31
- record: record,
32
- row: rowIndex
33
- }
34
- }));
35
- }}
36
- />
37
- `;
38
- };
39
- //# sourceMappingURL=ox-grist-renderer-boolean.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ox-grist-renderer-boolean.js","sourceRoot":"","sources":["../../../src/renderers/ox-grist-renderer-boolean.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAE1B,MAAM,CAAC,MAAM,sBAAsB,GAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;IAC9F,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,MAAM,CAAA;IAChC,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QACnC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;IACzE,CAAC;IAED,OAAO,IAAI,CAAA;;;iBAGI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;kBACxC,CAAC,QAAQ;qBACN,CAAC,CAAQ,EAAE,EAAE;QAC1B,yDAAyD;QACzD,CAAC,CAAC,eAAe,EAAE,CAAA;IACrB,CAAC;eACQ,CAAC,CAAQ,EAAE,EAAE;QACpB,CAAC,CAAC,eAAe,EAAE,CAAA;QACnB;;;;;WAKG;QACH,KAAK,CAAC,aAAa,CACjB,IAAI,WAAW,CAAC,cAAc,EAAE;YAC9B,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACN,MAAM,EAAE,KAAK;gBACb,KAAK,EAAG,CAAC,CAAC,MAA2B,CAAC,OAAO;gBAC7C,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,QAAQ;aACd;SACF,CAAC,CACH,CAAA;IACH,CAAC;;GAEJ,CAAA;AACH,CAAC,CAAA","sourcesContent":["import { FieldRenderer } from '../types.js'\nimport { html } from 'lit'\n\nexport const OxGristRendererBoolean: FieldRenderer = (value, column, record, rowIndex, field) => {\n let { editable } = column.record\n if (typeof editable === 'function') {\n editable = editable.call(field, value, column, record, rowIndex, field)\n }\n\n return html`\n <input\n type=\"checkbox\"\n .checked=${!!value && !!String(value).match(/true/i)}\n ?disabled=${!editable}\n @pointerdown=${(e: Event) => {\n /* edit mode로 전환되지 않도록 차단함. 체크박스인풋은 렌더러 모드에서도 처리가능하므로. */\n e.stopPropagation()\n }}\n @click=${(e: Event) => {\n e.stopPropagation()\n /*\n * 특별하게, checkbox인 경우에, editor가 활성화되지 않아도, renderer에서 값을 변경할 수 있게 함.\n * checkbox가 클릭되면, 클릭에 의해 변경된 값을 레코드에 반영하기 위해서 value-changed 이벤트를 발생시킨다.\n *\n * 만일, readonly인 경우에는 click 이벤트가 발생하지 않으므로, 클릭으로 에디트할 수 없게 됨.\n */\n field.dispatchEvent(\n new CustomEvent('field-change', {\n bubbles: true,\n composed: true,\n detail: {\n before: value,\n after: (e.target as HTMLInputElement).checked,\n column: column,\n record: record,\n row: rowIndex\n }\n })\n )\n }}\n />\n `\n}\n"]}
@@ -1,2 +0,0 @@
1
- import { FieldRenderer } from '../types.js';
2
- export declare const OxGristRendererColor: FieldRenderer;
@@ -1,12 +0,0 @@
1
- import { html } from 'lit';
2
- export const OxGristRendererColor = (value, column, record, rowIndex, field) => {
3
- value = value == null ? '#000' : value;
4
- return html `
5
- <div
6
- style="display:flex;align-items:center;justify-content:center;width:100%;height:100%;background-color:${value};"
7
- >
8
- ${value ? html `<p>${value}</p>` : html `<p>&nbsp</p>`}
9
- </div>
10
- `;
11
- };
12
- //# sourceMappingURL=ox-grist-renderer-color.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ox-grist-renderer-color.js","sourceRoot":"","sources":["../../../src/renderers/ox-grist-renderer-color.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAI1B,MAAM,CAAC,MAAM,oBAAoB,GAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;IAC5F,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA;IAEtC,OAAO,IAAI,CAAA;;8GAEiG,KAAK;;QAE3G,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA,cAAc;;GAEvD,CAAA;AACH,CAAC,CAAA","sourcesContent":["import { html } from 'lit'\n\nimport { FieldRenderer } from '../types.js'\n\nexport const OxGristRendererColor: FieldRenderer = (value, column, record, rowIndex, field) => {\n value = value == null ? '#000' : value\n\n return html`\n <div\n style=\"display:flex;align-items:center;justify-content:center;width:100%;height:100%;background-color:${value};\"\n >\n ${value ? html`<p>${value}</p>` : html`<p>&nbsp</p>`}\n </div>\n `\n}\n"]}
@@ -1,2 +0,0 @@
1
- import { FieldRenderer } from '../types.js';
2
- export declare const OxGristRendererDate: FieldRenderer;