@operato/data-grist 2.0.0-alpha.12 → 2.0.0-alpha.121

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 (312) hide show
  1. package/CHANGELOG.md +535 -0
  2. package/demo/data-grist-test.html +25 -14
  3. package/demo/index.html +25 -14
  4. package/demo/report-test.html +13 -2
  5. package/dist/src/configure/column-builder.js.map +1 -1
  6. package/dist/src/configure/rows-option-builder.js +2 -1
  7. package/dist/src/configure/rows-option-builder.js.map +1 -1
  8. package/dist/src/configure/zero-config.js +1 -0
  9. package/dist/src/configure/zero-config.js.map +1 -1
  10. package/dist/src/data-card/data-card-gutter-menu.d.ts +1 -1
  11. package/dist/src/data-card/data-card-gutter-menu.js +5 -5
  12. package/dist/src/data-card/data-card-gutter-menu.js.map +1 -1
  13. package/dist/src/data-card/data-card.d.ts +2 -2
  14. package/dist/src/data-card/data-card.js +3 -3
  15. package/dist/src/data-card/data-card.js.map +1 -1
  16. package/dist/src/data-card/event-handlers/record-card-click-handler.js +1 -1
  17. package/dist/src/data-card/event-handlers/record-card-click-handler.js.map +1 -1
  18. package/dist/src/data-card/record-card.d.ts +2 -2
  19. package/dist/src/data-card/record-card.js +26 -26
  20. package/dist/src/data-card/record-card.js.map +1 -1
  21. package/dist/src/data-grid/data-grid-accum-field.js +12 -4
  22. package/dist/src/data-grid/data-grid-accum-field.js.map +1 -1
  23. package/dist/src/data-grid/data-grid-body-style.js +1 -0
  24. package/dist/src/data-grid/data-grid-body-style.js.map +1 -1
  25. package/dist/src/data-grid/data-grid-body.d.ts +3 -3
  26. package/dist/src/data-grid/data-grid-body.js +9 -4
  27. package/dist/src/data-grid/data-grid-body.js.map +1 -1
  28. package/dist/src/data-grid/data-grid-field.d.ts +1 -1
  29. package/dist/src/data-grid/data-grid-field.js +6 -3
  30. package/dist/src/data-grid/data-grid-field.js.map +1 -1
  31. package/dist/src/data-grid/data-grid-footer.d.ts +2 -2
  32. package/dist/src/data-grid/data-grid-footer.js +17 -9
  33. package/dist/src/data-grid/data-grid-footer.js.map +1 -1
  34. package/dist/src/data-grid/data-grid-header.d.ts +1 -1
  35. package/dist/src/data-grid/data-grid-header.js +38 -35
  36. package/dist/src/data-grid/data-grid-header.js.map +1 -1
  37. package/dist/src/data-grid/data-grid.d.ts +1 -1
  38. package/dist/src/data-grid/data-grid.js +12 -2
  39. package/dist/src/data-grid/data-grid.js.map +1 -1
  40. package/dist/src/data-grist.d.ts +12 -3
  41. package/dist/src/data-grist.js +74 -31
  42. package/dist/src/data-grist.js.map +1 -1
  43. package/dist/src/data-list/data-list-gutter.js +12 -0
  44. package/dist/src/data-list/data-list-gutter.js.map +1 -1
  45. package/dist/src/data-list/data-list.d.ts +2 -2
  46. package/dist/src/data-list/data-list.js +3 -3
  47. package/dist/src/data-list/data-list.js.map +1 -1
  48. package/dist/src/data-list/event-handlers/record-partial-click-handler.js +1 -1
  49. package/dist/src/data-list/event-handlers/record-partial-click-handler.js.map +1 -1
  50. package/dist/src/data-list/record-partial.d.ts +2 -2
  51. package/dist/src/data-list/record-partial.js +20 -18
  52. package/dist/src/data-list/record-partial.js.map +1 -1
  53. package/dist/src/data-report/data-report-body.d.ts +1 -1
  54. package/dist/src/data-report/data-report-component.d.ts +1 -1
  55. package/dist/src/data-report.d.ts +1 -1
  56. package/dist/src/editors/ox-grist-editor-checkbox.d.ts +3 -2
  57. package/dist/src/editors/ox-grist-editor-checkbox.js +9 -2
  58. package/dist/src/editors/ox-grist-editor-checkbox.js.map +1 -1
  59. package/dist/src/editors/ox-grist-editor-color.d.ts +1 -1
  60. package/dist/src/editors/ox-grist-editor-date.d.ts +1 -1
  61. package/dist/src/editors/ox-grist-editor-datetime.d.ts +2 -2
  62. package/dist/src/editors/ox-grist-editor-datetime.js +1 -2
  63. package/dist/src/editors/ox-grist-editor-datetime.js.map +1 -1
  64. package/dist/src/editors/ox-grist-editor-email.d.ts +1 -1
  65. package/dist/src/editors/ox-grist-editor-file.d.ts +3 -2
  66. package/dist/src/editors/ox-grist-editor-file.js +8 -2
  67. package/dist/src/editors/ox-grist-editor-file.js.map +1 -1
  68. package/dist/src/editors/ox-grist-editor-image.d.ts +2 -2
  69. package/dist/src/editors/ox-grist-editor-image.js +8 -8
  70. package/dist/src/editors/ox-grist-editor-image.js.map +1 -1
  71. package/dist/src/editors/ox-grist-editor-month.d.ts +1 -1
  72. package/dist/src/editors/ox-grist-editor-multiple-select.d.ts +1 -1
  73. package/dist/src/editors/ox-grist-editor-number.d.ts +3 -2
  74. package/dist/src/editors/ox-grist-editor-number.js +10 -9
  75. package/dist/src/editors/ox-grist-editor-number.js.map +1 -1
  76. package/dist/src/editors/ox-grist-editor-password.d.ts +1 -1
  77. package/dist/src/editors/ox-grist-editor-select.d.ts +1 -1
  78. package/dist/src/editors/ox-grist-editor-select.js +37 -25
  79. package/dist/src/editors/ox-grist-editor-select.js.map +1 -1
  80. package/dist/src/editors/ox-grist-editor-tel.d.ts +1 -1
  81. package/dist/src/editors/ox-grist-editor-text.d.ts +2 -1
  82. package/dist/src/editors/ox-grist-editor-text.js +3 -0
  83. package/dist/src/editors/ox-grist-editor-text.js.map +1 -1
  84. package/dist/src/editors/ox-grist-editor-textarea.d.ts +2 -1
  85. package/dist/src/editors/ox-grist-editor-textarea.js +3 -0
  86. package/dist/src/editors/ox-grist-editor-textarea.js.map +1 -1
  87. package/dist/src/editors/ox-grist-editor-time.d.ts +1 -1
  88. package/dist/src/editors/ox-grist-editor-tree.d.ts +1 -1
  89. package/dist/src/editors/ox-grist-editor-week.d.ts +1 -1
  90. package/dist/src/editors/ox-grist-editor.d.ts +4 -4
  91. package/dist/src/editors/ox-grist-editor.js +14 -12
  92. package/dist/src/editors/ox-grist-editor.js.map +1 -1
  93. package/dist/src/editors/ox-input-tree.d.ts +1 -1
  94. package/dist/src/empty-note.d.ts +2 -2
  95. package/dist/src/empty-note.js +3 -3
  96. package/dist/src/empty-note.js.map +1 -1
  97. package/dist/src/filters/filter-checkbox.js +12 -5
  98. package/dist/src/filters/filter-checkbox.js.map +1 -1
  99. package/dist/src/filters/filter-range-date.js +12 -1
  100. package/dist/src/filters/filter-range-date.js.map +1 -1
  101. package/dist/src/filters/filter-select.js +30 -16
  102. package/dist/src/filters/filter-select.js.map +1 -1
  103. package/dist/src/filters/filter-styles.js +47 -28
  104. package/dist/src/filters/filter-styles.js.map +1 -1
  105. package/dist/src/filters/filters-form.d.ts +7 -1
  106. package/dist/src/filters/filters-form.js +154 -71
  107. package/dist/src/filters/filters-form.js.map +1 -1
  108. package/dist/src/gutters/gutter-button.d.ts +1 -1
  109. package/dist/src/gutters/gutter-button.js +3 -3
  110. package/dist/src/gutters/gutter-button.js.map +1 -1
  111. package/dist/src/gutters/gutter-dirty.d.ts +1 -1
  112. package/dist/src/gutters/gutter-dirty.js +5 -5
  113. package/dist/src/gutters/gutter-dirty.js.map +1 -1
  114. package/dist/src/handlers/contextmenu-tree-mutation.js +4 -4
  115. package/dist/src/handlers/contextmenu-tree-mutation.js.map +1 -1
  116. package/dist/src/index.d.ts +1 -1
  117. package/dist/src/index.js +1 -1
  118. package/dist/src/index.js.map +1 -1
  119. package/dist/src/personalizer/index.d.ts +1 -0
  120. package/dist/src/personalizer/index.js +2 -0
  121. package/dist/src/personalizer/index.js.map +1 -0
  122. package/dist/src/personalizer/ox-grist-personalizer.d.ts +10 -0
  123. package/dist/src/personalizer/ox-grist-personalizer.js +171 -0
  124. package/dist/src/personalizer/ox-grist-personalizer.js.map +1 -0
  125. package/dist/src/record-view/record-creator.d.ts +2 -2
  126. package/dist/src/record-view/record-creator.js +1 -1
  127. package/dist/src/record-view/record-creator.js.map +1 -1
  128. package/dist/src/record-view/record-view-body.d.ts +3 -3
  129. package/dist/src/record-view/record-view-body.js +4 -4
  130. package/dist/src/record-view/record-view-body.js.map +1 -1
  131. package/dist/src/record-view/record-view.d.ts +2 -2
  132. package/dist/src/record-view/record-view.js +5 -5
  133. package/dist/src/record-view/record-view.js.map +1 -1
  134. package/dist/src/renderers/ox-grist-renderer-progress.d.ts +1 -1
  135. package/dist/src/renderers/ox-grist-renderer-select.js +34 -4
  136. package/dist/src/renderers/ox-grist-renderer-select.js.map +1 -1
  137. package/dist/src/renderers/ox-grist-renderer-tree.d.ts +1 -1
  138. package/dist/src/renderers/ox-grist-renderer.d.ts +2 -2
  139. package/dist/src/sorters/sorters-control.js +3 -3
  140. package/dist/src/sorters/sorters-control.js.map +1 -1
  141. package/dist/src/types.d.ts +28 -9
  142. package/dist/src/types.js.map +1 -1
  143. package/dist/stories/accumulator-format.stories.d.ts +36 -0
  144. package/dist/stories/accumulator-format.stories.js +231 -0
  145. package/dist/stories/accumulator-format.stories.js.map +1 -0
  146. package/dist/stories/accumulator.stories.d.ts +6 -1
  147. package/dist/stories/accumulator.stories.js +70 -129
  148. package/dist/stories/accumulator.stories.js.map +1 -1
  149. package/dist/stories/barcode-input-filter.stories.d.ts +1 -1
  150. package/dist/stories/barcode-input-filter.stories.js +41 -79
  151. package/dist/stories/barcode-input-filter.stories.js.map +1 -1
  152. package/dist/stories/bounded-select-filters.stories.d.ts +25 -0
  153. package/dist/stories/bounded-select-filters.stories.js +264 -0
  154. package/dist/stories/bounded-select-filters.stories.js.map +1 -0
  155. package/dist/stories/bounded-select-record.stories.d.ts +25 -0
  156. package/dist/stories/bounded-select-record.stories.js +267 -0
  157. package/dist/stories/bounded-select-record.stories.js.map +1 -0
  158. package/dist/stories/creatable-only-column.stories.d.ts +25 -0
  159. package/dist/stories/creatable-only-column.stories.js +211 -0
  160. package/dist/stories/creatable-only-column.stories.js.map +1 -0
  161. package/dist/stories/default-filters.stories.d.ts +1 -1
  162. package/dist/stories/default-filters.stories.js +84 -79
  163. package/dist/stories/default-filters.stories.js.map +1 -1
  164. package/dist/stories/dynamic-editable.stories.d.ts +1 -1
  165. package/dist/stories/dynamic-editable.stories.js +61 -86
  166. package/dist/stories/dynamic-editable.stories.js.map +1 -1
  167. package/dist/stories/empty-sorters.stories.d.ts +1 -1
  168. package/dist/stories/empty-sorters.stories.js +41 -78
  169. package/dist/stories/empty-sorters.stories.js.map +1 -1
  170. package/dist/stories/explicit-fetch.stories.d.ts +1 -1
  171. package/dist/stories/explicit-fetch.stories.js +42 -79
  172. package/dist/stories/explicit-fetch.stories.js.map +1 -1
  173. package/dist/stories/fixed-column.stories.d.ts +1 -1
  174. package/dist/stories/fixed-column.stories.js +45 -127
  175. package/dist/stories/fixed-column.stories.js.map +1 -1
  176. package/dist/stories/grid-setting.stories.d.ts +42 -0
  177. package/dist/stories/grid-setting.stories.js +415 -0
  178. package/dist/stories/grid-setting.stories.js.map +1 -0
  179. package/dist/stories/grist-modes.stories.d.ts +1 -1
  180. package/dist/stories/grist-modes.stories.js +74 -140
  181. package/dist/stories/grist-modes.stories.js.map +1 -1
  182. package/dist/stories/group-header.stories.d.ts +1 -1
  183. package/dist/stories/group-header.stories.js +45 -127
  184. package/dist/stories/group-header.stories.js.map +1 -1
  185. package/dist/stories/textarea.stories.d.ts +1 -1
  186. package/dist/stories/textarea.stories.js +39 -121
  187. package/dist/stories/textarea.stories.js.map +1 -1
  188. package/dist/stories/tree-column-with-checkbox.stories.d.ts +1 -1
  189. package/dist/stories/tree-column-with-checkbox.stories.js +49 -136
  190. package/dist/stories/tree-column-with-checkbox.stories.js.map +1 -1
  191. package/dist/stories/tree-column.stories.d.ts +1 -1
  192. package/dist/stories/tree-column.stories.js +49 -136
  193. package/dist/stories/tree-column.stories.js.map +1 -1
  194. package/dist/tsconfig.tsbuildinfo +1 -1
  195. package/docs/default-value/default-value.md +1 -1
  196. package/docs/default-value/value-generator/date-generator.md +31 -2
  197. package/docs/default-value/value-generator/hour-time-generator.md +33 -0
  198. package/docs/default-value/value-generator/minute-time-generator.md +33 -0
  199. package/docs/default-value/value-generator/month-date-generator.md +4 -2
  200. package/docs/default-value/value-generator/now-generator.md +29 -0
  201. package/docs/default-value/value-generator/time-generator.md +31 -0
  202. package/docs/default-value/value-generator/today-generator.md +29 -0
  203. package/docs/default-value/value-generator/week-date-generator.md +33 -2
  204. package/docs/default-value/value-generator/year-date-generator.md +33 -2
  205. package/package.json +26 -21
  206. package/src/configure/column-builder.ts +1 -0
  207. package/src/configure/rows-option-builder.ts +11 -1
  208. package/src/configure/zero-config.ts +1 -0
  209. package/src/data-card/data-card-gutter-menu.ts +5 -5
  210. package/src/data-card/data-card.ts +3 -3
  211. package/src/data-card/event-handlers/record-card-click-handler.ts +1 -1
  212. package/src/data-card/record-card.ts +30 -32
  213. package/src/data-grid/data-grid-accum-field.ts +11 -4
  214. package/src/data-grid/data-grid-body-style.ts +1 -0
  215. package/src/data-grid/data-grid-body.ts +10 -5
  216. package/src/data-grid/data-grid-field.ts +4 -2
  217. package/src/data-grid/data-grid-footer.ts +18 -11
  218. package/src/data-grid/data-grid-header.ts +68 -65
  219. package/src/data-grid/data-grid.ts +14 -4
  220. package/src/data-grist.ts +89 -30
  221. package/src/data-list/data-list-gutter.ts +12 -0
  222. package/src/data-list/data-list.ts +3 -3
  223. package/src/data-list/event-handlers/record-partial-click-handler.ts +1 -1
  224. package/src/data-list/record-partial.ts +22 -22
  225. package/src/editors/ox-grist-editor-checkbox.ts +12 -2
  226. package/src/editors/ox-grist-editor-datetime.ts +1 -2
  227. package/src/editors/ox-grist-editor-file.ts +12 -2
  228. package/src/editors/ox-grist-editor-image.ts +10 -7
  229. package/src/editors/ox-grist-editor-number.ts +11 -9
  230. package/src/editors/ox-grist-editor-select.ts +41 -28
  231. package/src/editors/ox-grist-editor-text.ts +4 -0
  232. package/src/editors/ox-grist-editor-textarea.ts +4 -0
  233. package/src/editors/ox-grist-editor.ts +14 -10
  234. package/src/empty-note.ts +3 -3
  235. package/src/filters/filter-checkbox.ts +15 -5
  236. package/src/filters/filter-range-date.ts +16 -1
  237. package/src/filters/filter-select.ts +41 -28
  238. package/src/filters/filter-styles.ts +47 -28
  239. package/src/filters/filters-form.ts +159 -59
  240. package/src/gutters/gutter-button.ts +3 -3
  241. package/src/gutters/gutter-dirty.ts +5 -5
  242. package/src/handlers/contextmenu-tree-mutation.ts +4 -4
  243. package/src/index.ts +1 -1
  244. package/src/personalizer/index.ts +1 -0
  245. package/src/personalizer/ox-grist-personalizer.ts +181 -0
  246. package/src/record-view/record-creator.ts +1 -1
  247. package/src/record-view/record-view-body.ts +4 -4
  248. package/src/record-view/record-view.ts +5 -5
  249. package/src/renderers/ox-grist-renderer-select.ts +41 -6
  250. package/src/sorters/sorters-control.ts +3 -3
  251. package/src/types.ts +34 -10
  252. package/stories/{accumulator.stories.ts → accumulator-format.stories.ts} +56 -130
  253. package/stories/barcode-input-filter.stories.ts +53 -89
  254. package/stories/bounded-select-filters.stories.ts +313 -0
  255. package/stories/bounded-select-record.stories.ts +316 -0
  256. package/stories/creatable-only-column.stories.ts +231 -0
  257. package/stories/default-filters.stories.ts +96 -89
  258. package/stories/dynamic-editable.stories.ts +68 -92
  259. package/stories/empty-sorters.stories.ts +53 -89
  260. package/stories/explicit-fetch.stories.ts +54 -90
  261. package/stories/fixed-column.stories.ts +57 -137
  262. package/stories/grid-setting.stories.ts +462 -0
  263. package/stories/grist-modes.stories.ts +86 -155
  264. package/stories/group-header.stories.ts +57 -137
  265. package/stories/textarea.stories.ts +42 -127
  266. package/stories/tree-column-with-checkbox.stories.ts +53 -138
  267. package/stories/tree-column.stories.ts +53 -138
  268. package/themes/grist-theme.css +3 -1
  269. package/dist/src/value-generator/date-generator.d.ts +0 -6
  270. package/dist/src/value-generator/date-generator.js +0 -30
  271. package/dist/src/value-generator/date-generator.js.map +0 -1
  272. package/dist/src/value-generator/hour-time-generator.d.ts +0 -7
  273. package/dist/src/value-generator/hour-time-generator.js +0 -29
  274. package/dist/src/value-generator/hour-time-generator.js.map +0 -1
  275. package/dist/src/value-generator/index.d.ts +0 -1
  276. package/dist/src/value-generator/index.js +0 -2
  277. package/dist/src/value-generator/index.js.map +0 -1
  278. package/dist/src/value-generator/minute-time-generator.d.ts +0 -7
  279. package/dist/src/value-generator/minute-time-generator.js +0 -29
  280. package/dist/src/value-generator/minute-time-generator.js.map +0 -1
  281. package/dist/src/value-generator/month-date-generator.d.ts +0 -7
  282. package/dist/src/value-generator/month-date-generator.js +0 -31
  283. package/dist/src/value-generator/month-date-generator.js.map +0 -1
  284. package/dist/src/value-generator/now-generator.d.ts +0 -4
  285. package/dist/src/value-generator/now-generator.js +0 -8
  286. package/dist/src/value-generator/now-generator.js.map +0 -1
  287. package/dist/src/value-generator/registry.d.ts +0 -11
  288. package/dist/src/value-generator/registry.js +0 -50
  289. package/dist/src/value-generator/registry.js.map +0 -1
  290. package/dist/src/value-generator/time-generator.d.ts +0 -6
  291. package/dist/src/value-generator/time-generator.js +0 -28
  292. package/dist/src/value-generator/time-generator.js.map +0 -1
  293. package/dist/src/value-generator/today-generator.d.ts +0 -4
  294. package/dist/src/value-generator/today-generator.js +0 -8
  295. package/dist/src/value-generator/today-generator.js.map +0 -1
  296. package/dist/src/value-generator/week-date-generator.d.ts +0 -7
  297. package/dist/src/value-generator/week-date-generator.js +0 -29
  298. package/dist/src/value-generator/week-date-generator.js.map +0 -1
  299. package/dist/src/value-generator/year-date-generator.d.ts +0 -7
  300. package/dist/src/value-generator/year-date-generator.js +0 -29
  301. package/dist/src/value-generator/year-date-generator.js.map +0 -1
  302. package/src/value-generator/date-generator.ts +0 -35
  303. package/src/value-generator/hour-time-generator.ts +0 -43
  304. package/src/value-generator/index.ts +0 -1
  305. package/src/value-generator/minute-time-generator.ts +0 -43
  306. package/src/value-generator/month-date-generator.ts +0 -38
  307. package/src/value-generator/now-generator.ts +0 -10
  308. package/src/value-generator/registry.ts +0 -58
  309. package/src/value-generator/time-generator.ts +0 -33
  310. package/src/value-generator/today-generator.ts +0 -10
  311. package/src/value-generator/week-date-generator.ts +0 -40
  312. package/src/value-generator/year-date-generator.ts +0 -36
@@ -30,14 +30,47 @@ function getRelativeHourTime(params: RelativeHourTimeParams = {}): string | numb
30
30
  ## 예제
31
31
 
32
32
  ```typescript
33
+ /* get Date() object */
33
34
  const relativeHourTime = getRelativeHourTime({
34
35
  relativeHour: 2,
35
36
  relativeSeconds: 120,
36
37
  timeZone: 'Asia/Seoul',
38
+ loclae: 'en-CA',
37
39
  format: 'date'
38
40
  })
39
41
 
40
42
  console.log(relativeHourTime)
41
43
  ```
42
44
 
45
+ ```typescript
46
+ /* text format style */
47
+ const relativeHourTime = getRelativeHourTime({
48
+ relativeHour: 2,
49
+ relativeSeconds: 120,
50
+ timeZone: 'Asia/Seoul',
51
+ format: 'h:mm:ss'
52
+ })
53
+
54
+ console.log(relativeHourTime)
55
+ ```
56
+
57
+ ```typescript
58
+ /* Intl.DateTimeFormat style */
59
+ const relativeHourTime = getRelativeHourTime({
60
+ relativeHour: 2,
61
+ relativeSeconds: 120,
62
+ timeZone: 'Asia/Seoul',
63
+ loclae: 'en-CA',
64
+ format: {
65
+ hour: 'numeric',
66
+ minute: 'numeric',
67
+ second: 'numeric',
68
+ hour12: false,
69
+ timeZone: 'America/Los_Angeles'
70
+ }
71
+ })
72
+
73
+ console.log(relativeHourTime)
74
+ ```
75
+
43
76
  이 코드는 현재 시간으로부터 2시간 후와 2분 후의 시간을 `'Asia/Seoul'` 시간대에서의 Date 객체로 반환합니다.
@@ -30,14 +30,47 @@ function getRelativeMinuteTime(params: RelativeMinuteTimeParams = {}): string |
30
30
  ## 예제
31
31
 
32
32
  ```typescript
33
+ /* get Date() object */
33
34
  const relativeMinuteTime = getRelativeMinuteTime({
34
35
  relativeMinutes: 15,
35
36
  relativeSeconds: 30,
36
37
  timeZone: 'Asia/Seoul',
38
+ loclae: 'en-CA',
37
39
  format: 'date'
38
40
  })
39
41
 
40
42
  console.log(relativeMinuteTime)
41
43
  ```
42
44
 
45
+ ```typescript
46
+ /* text format style */
47
+ const relativeMinuteTime = getRelativeMinuteTime({
48
+ relativeMinutes: 15,
49
+ relativeSeconds: 30,
50
+ timeZone: 'Asia/Seoul',
51
+ format: 'mm:ss'
52
+ })
53
+
54
+ console.log(relativeMinuteTime)
55
+ ```
56
+
57
+ ```typescript
58
+ /* Intl.DateTimeFormat style */
59
+ const relativeMinuteTime = getRelativeMinuteTime({
60
+ relativeMinutes: 15,
61
+ relativeSeconds: 30,
62
+ timeZone: 'Asia/Seoul',
63
+ loclae: 'en-CA',
64
+ format: {
65
+ hour: 'numeric',
66
+ minute: 'numeric',
67
+ second: 'numeric',
68
+ hour12: false,
69
+ timeZone: 'America/Los_Angeles'
70
+ }
71
+ })
72
+
73
+ console.log(relativeMinuteTime)
74
+ ```
75
+
43
76
  이 코드는 현재 시간으로부터 15분 30초 후의 시간을 `'Asia/Seoul'` 시간대에서의 Date 객체로 반환합니다.
@@ -14,7 +14,7 @@ function getRelativeMonthDate(params: RelativeMonthDateParams = {}): string | nu
14
14
 
15
15
  - `relativeMonths?: number`: 상대적인 월을 나타내는 숫자입니다. 이 값은 현재 날짜로부터의 월 수를 나타냅니다. 예를 들어, 이 값이 3이면 현재 날짜로부터 3개월 뒤를 나타냅니다. 이 값이 주어지지 않으면 기본값은 0입니다, 즉 현재 월을 의미합니다.
16
16
 
17
- - `relativeDates?: number`: 상대적인 일수를 나타내는 숫자입니다. 이 값은 현재 날짜로부터의 일 수를 나타냅니다. 예를 들어, 이 값이 2이면 현재 날짜로부터 2일 뒤를 나타냅니다. 이 값이 주어지지 않으면 기본값은 0입니다, 즉 현재 날짜를 의미합니다.
17
+ - `relativeDays?: number`: 상대적인 일수를 나타내는 숫자입니다. 이 값은 현재 날짜로부터의 일 수를 나타냅니다. 예를 들어, 이 값이 2이면 현재 날짜로부터 2일 뒤를 나타냅니다. 이 값이 주어지지 않으면 기본값은 0입니다, 즉 현재 날짜를 의미합니다.
18
18
 
19
19
  - `timeZone?: string`: 날짜를 얻고자 하는 시간대를 나타내는 문자열입니다. 이 값이 주어지지 않으면 사용자의 로컬 시간대가 사용됩니다.
20
20
 
@@ -30,10 +30,12 @@ function getRelativeMonthDate(params: RelativeMonthDateParams = {}): string | nu
30
30
  ## 예제
31
31
 
32
32
  ```typescript
33
+ /* get Date() object */
33
34
  const relativeMonthDate = getRelativeMonthDate({
34
35
  relativeMonths: 2,
35
- relativeDates: 3,
36
+ relativeDays: 3,
36
37
  timeZone: 'Asia/Seoul',
38
+ loclae: 'en-CA',
37
39
  format: 'date'
38
40
  })
39
41
 
@@ -28,12 +28,41 @@ function getCurrentTime(
28
28
  ## 예제
29
29
 
30
30
  ```typescript
31
+ /* get Date() object */
31
32
  const currentTime = getCurrentTime({
32
33
  timeZone: 'Asia/Seoul',
34
+ loclae: 'en-CA',
33
35
  format: 'date'
34
36
  })
35
37
 
36
38
  console.log(currentTime)
37
39
  ```
38
40
 
41
+ ```typescript
42
+ /* text format style */
43
+ const relativeDate = getCurrentTime({
44
+ relativeDays: 1,
45
+ timeZone: 'Asia/Seoul',
46
+ format: 'YYYY-MM-DD'
47
+ })
48
+
49
+ console.log(relativeDate)
50
+ ```
51
+
52
+ ```typescript
53
+ /* Intl.DateTimeFormat style */
54
+ const relativeDate = getCurrentTime({
55
+ relativeDays: 1,
56
+ timeZone: 'Asia/Seoul',
57
+ loclae: 'en-CA' /* YYYY-MM-DD format */,
58
+ format: {
59
+ year: 'numeric',
60
+ month: '2-digit',
61
+ day: '2-digit'
62
+ }
63
+ })
64
+
65
+ console.log(relativeDate)
66
+ ```
67
+
39
68
  이 코드는 현재 시간을 `'Asia/Seoul'` 시간대에서의 Date 객체로 반환합니다.
@@ -28,13 +28,44 @@ function getRelativeTime(params: RelativeTimeParams = {}): string | number | Dat
28
28
  ## 예제
29
29
 
30
30
  ```typescript
31
+ /* get Date() object */
31
32
  const relativeTime = getRelativeTime({
32
33
  relativeSeconds: 3600,
33
34
  timeZone: 'Asia/Seoul',
35
+ loclae: 'en-CA',
34
36
  format: 'date'
35
37
  })
36
38
 
37
39
  console.log(relativeTime)
38
40
  ```
39
41
 
42
+ ```typescript
43
+ /* text format style */
44
+ const relativeTime = getRelativeTime({
45
+ relativeSeconds: 3600,
46
+ timeZone: 'Asia/Seoul',
47
+ format: 'hh:mm:ss'
48
+ })
49
+
50
+ console.log(relativeTime)
51
+ ```
52
+
53
+ ```typescript
54
+ /* Intl.DateTimeFormat style */
55
+ const relativeTime = getRelativeTime({
56
+ relativeSeconds: 3600,
57
+ timeZone: 'Asia/Seoul',
58
+ loclae: 'en-CA',
59
+ format: {
60
+ hour: 'numeric',
61
+ minute: 'numeric',
62
+ second: 'numeric',
63
+ hour12: false,
64
+ timeZone: 'America/Los_Angeles'
65
+ }
66
+ })
67
+
68
+ console.log(relativeTime)
69
+ ```
70
+
40
71
  이 코드는 현재 시간으로부터 1시간 후의 시간을 `'Asia/Seoul'` 시간대에서의 Date 객체로 반환합니다.
@@ -28,12 +28,41 @@ function getToday(
28
28
  ## 예제
29
29
 
30
30
  ```typescript
31
+ /* get Date() object */
31
32
  const todayDate = getToday({
32
33
  timeZone: 'Asia/Seoul',
34
+ loclae: 'en-CA',
33
35
  format: 'date'
34
36
  })
35
37
 
36
38
  console.log(todayDate)
37
39
  ```
38
40
 
41
+ ```typescript
42
+ /* text format style */
43
+ const relativeDate = getToday({
44
+ relativeDays: 1,
45
+ timeZone: 'Asia/Seoul',
46
+ format: 'YYYY-MM-DD'
47
+ })
48
+
49
+ console.log(relativeDate)
50
+ ```
51
+
52
+ ```typescript
53
+ /* Intl.DateTimeFormat style */
54
+ const relativeDate = getToday({
55
+ relativeDays: 1,
56
+ timeZone: 'Asia/Seoul',
57
+ loclae: 'en-CA' /* YYYY-MM-DD format */,
58
+ format: {
59
+ year: 'numeric',
60
+ month: '2-digit',
61
+ day: '2-digit'
62
+ }
63
+ })
64
+
65
+ console.log(relativeDate)
66
+ ```
67
+
39
68
  이 코드는 오늘의 날짜를 `'Asia/Seoul'` 시간대에서의 Date 객체로 반환합니다.
@@ -14,7 +14,7 @@ function getRelativeWeekDate(params: RelativeWeekDateParams = {}): string | numb
14
14
 
15
15
  - `relativeWeeks?: number`: 상대적인 주를 나타내는 숫자입니다. 이 값은 현재 날짜로부터의 주 수를 나타냅니다. 예를 들어, 이 값이 3이면 현재 날짜로부터 3주 뒤를 나타냅니다. 이 값이 주어지지 않으면 기본값은 0입니다, 즉 현재 주를 의미합니다.
16
16
 
17
- - `relativeDates?: number`: 상대적인 일수를 나타내는 숫자입니다. 이 값은 현재 날짜로부터의 일 수를 나타냅니다. 예를 들어, 이 값이 2이면 현재 날짜로부터 2일 뒤를 나타냅니다. 이 값이 주어지지 않으면 기본값은 0입니다, 즉 현재 날짜를 의미합니다.
17
+ - `relativeDays?: number`: 상대적인 일수를 나타내는 숫자입니다. 이 값은 현재 날짜로부터의 일 수를 나타냅니다. 예를 들어, 이 값이 2이면 현재 날짜로부터 2일 뒤를 나타냅니다. 이 값이 주어지지 않으면 기본값은 0입니다, 즉 현재 날짜를 의미합니다.
18
18
 
19
19
  - `timeZone?: string`: 날짜를 얻고자 하는 시간대를 나타내는 문자열입니다. 이 값이 주어지지 않으면 사용자의 로컬 시간대가 사용됩니다.
20
20
 
@@ -30,14 +30,45 @@ function getRelativeWeekDate(params: RelativeWeekDateParams = {}): string | numb
30
30
  ## 예제
31
31
 
32
32
  ```typescript
33
+ /* get Date() object */
33
34
  const relativeWeekDate = getRelativeWeekDate({
34
35
  relativeWeeks: 2,
35
- relativeDates: 3,
36
+ relativeDays: 3,
36
37
  timeZone: 'Asia/Seoul',
38
+ loclae: 'en-CA',
37
39
  format: 'date'
38
40
  })
39
41
 
40
42
  console.log(relativeWeekDate)
41
43
  ```
42
44
 
45
+ ```typescript
46
+ /* text format style */
47
+ const relativeWeekDate = getRelativeWeekDate({
48
+ relativeWeeks: 2,
49
+ relativeDays: 3,
50
+ timeZone: 'Asia/Seoul',
51
+ format: 'YYYY-MM-DD'
52
+ })
53
+
54
+ console.log(relativeWeekDate)
55
+ ```
56
+
57
+ ```typescript
58
+ /* Intl.DateTimeFormat style */
59
+ const relativeWeekDate = getRelativeWeekDate({
60
+ relativeWeeks: 2,
61
+ relativeDays: 3,
62
+ timeZone: 'Asia/Seoul',
63
+ loclae: 'en-CA' /* YYYY-MM-DD format */,
64
+ format: {
65
+ year: 'numeric',
66
+ month: '2-digit',
67
+ day: '2-digit'
68
+ }
69
+ })
70
+
71
+ console.log(relativeWeekDate)
72
+ ```
73
+
43
74
  이 코드는 현재 시간으로부터 2주 후와 3일 후의 날짜를 `'Asia/Seoul'` 시간대에서의 Date 객체로 반환합니다.
@@ -14,7 +14,7 @@ function getRelativeYearDate(params: RelativeYearDateParams = {}): string | numb
14
14
 
15
15
  - `relativeYears?: number`: 상대적인 연도를 나타내는 숫자입니다. 이 값은 현재 날짜로부터의 연도 수를 나타냅니다. 예를 들어, 이 값이 3이면 현재 날짜로부터 3년 뒤를 나타냅니다. 이 값이 주어지지 않으면 기본값은 0입니다, 즉 현재 연도를 의미합니다.
16
16
 
17
- - `relativeDates?: number`: 상대적인 일수를 나타내는 숫자입니다. 이 값은 현재 날짜로부터의 일 수를 나타냅니다. 예를 들어, 이 값이 2이면 현재 날짜로부터 2일 뒤를 나타냅니다. 이 값이 주어지지 않으면 기본값은 0입니다, 즉 현재 날짜를 의미합니다.
17
+ - `relativeDays?: number`: 상대적인 일수를 나타내는 숫자입니다. 이 값은 현재 날짜로부터의 일 수를 나타냅니다. 예를 들어, 이 값이 2이면 현재 날짜로부터 2일 뒤를 나타냅니다. 이 값이 주어지지 않으면 기본값은 0입니다, 즉 현재 날짜를 의미합니다.
18
18
 
19
19
  - `timeZone?: string`: 날짜를 얻고자 하는 시간대를 나타내는 문자열입니다. 이 값이 주어지지 않으면 사용자의 로컬 시간대가 사용됩니다.
20
20
 
@@ -30,14 +30,45 @@ function getRelativeYearDate(params: RelativeYearDateParams = {}): string | numb
30
30
  ## 예제
31
31
 
32
32
  ```typescript
33
+ /* get Date() object */
33
34
  const relativeYearDate = getRelativeYearDate({
34
35
  relativeYears: 2,
35
- relativeDates: 3,
36
+ relativeDays: 3,
36
37
  timeZone: 'Asia/Seoul',
38
+ loclae: 'en-CA',
37
39
  format: 'date'
38
40
  })
39
41
 
40
42
  console.log(relativeYearDate)
41
43
  ```
42
44
 
45
+ ```typescript
46
+ /* text format style */
47
+ const relativeYearDate = getRelativeYearDate({
48
+ relativeYears: 2,
49
+ relativeDays: 3,
50
+ timeZone: 'Asia/Seoul',
51
+ format: 'YYYY-MM-DD'
52
+ })
53
+
54
+ console.log(relativeYearDate)
55
+ ```
56
+
57
+ ```typescript
58
+ /* Intl.DateTimeFormat style */
59
+ const relativeYearDate = getRelativeYearDate({
60
+ relativeYears: 2,
61
+ relativeDays: 3,
62
+ timeZone: 'Asia/Seoul',
63
+ loclae: 'en-CA' /* YYYY-MM-DD format */,
64
+ format: {
65
+ year: 'numeric',
66
+ month: '2-digit',
67
+ day: '2-digit'
68
+ }
69
+ })
70
+
71
+ console.log(relativeYearDate)
72
+ ```
73
+
43
74
  이 코드는 현재 시간으로부터 2년 후와 3일 후의 날짜를 `'Asia/Seoul'` 시간대에서의 Date 객체로 반환합니다.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@operato/data-grist",
3
- "version": "2.0.0-alpha.12",
3
+ "version": "2.0.0-alpha.121",
4
4
  "description": "User interface for grid (desktop) and list (mobile)",
5
5
  "author": "heartyoh",
6
6
  "main": "dist/index.js",
@@ -21,7 +21,8 @@
21
21
  "./ox-report.js": "./dist/src/data-report.js",
22
22
  "./ox-filters-form.js": "./dist/src/filters/filters-form.js",
23
23
  "./ox-sorters-control.js": "./dist/src/sorters/sorters-control.js",
24
- "./ox-record-creator.js": "./dist/src/record-view/record-creator.js"
24
+ "./ox-record-creator.js": "./dist/src/record-view/record-creator.js",
25
+ "./ox-grist-personalizer.js": "./dist/src/personalizer/ox-grist-personalizer.js"
25
26
  },
26
27
  "typesVersions": {
27
28
  "*": {
@@ -39,6 +40,9 @@
39
40
  ],
40
41
  "ox-record-creator.js": [
41
42
  "dist/src/record-view/record-creator.d.ts"
43
+ ],
44
+ "ox-grist-personalizer.js": [
45
+ "dist/src/personalizer/ox-grist-personalizer.d.ts"
42
46
  ]
43
47
  }
44
48
  },
@@ -55,35 +59,36 @@
55
59
  "storybook:build": "tsc && build-storybook"
56
60
  },
57
61
  "dependencies": {
58
- "@material/mwc-icon": "^0.27.0",
59
- "@operato/headroom": "^2.0.0-alpha.0",
60
- "@operato/input": "^2.0.0-alpha.11",
61
- "@operato/popup": "^2.0.0-alpha.9",
62
- "@operato/pull-to-refresh": "^2.0.0-alpha.0",
63
- "@operato/styles": "^2.0.0-alpha.0",
64
- "@operato/utils": "^2.0.0-alpha.8",
62
+ "@material/web": "^1.4.0",
63
+ "@operato/headroom": "^2.0.0-alpha.111",
64
+ "@operato/input": "^2.0.0-alpha.120",
65
+ "@operato/popup": "^2.0.0-alpha.120",
66
+ "@operato/pull-to-refresh": "^2.0.0-alpha.111",
67
+ "@operato/styles": "^2.0.0-alpha.118",
68
+ "@operato/time-calculator": "^2.0.0-alpha.111",
69
+ "@operato/utils": "^2.0.0-alpha.111",
65
70
  "i18next": "^21.5.4",
66
71
  "json5": "^2.2.0",
67
- "lit": "^2.5.0",
72
+ "lit": "^3.1.2",
68
73
  "lodash-es": "^4.17.21"
69
74
  },
70
75
  "devDependencies": {
71
- "@custom-elements-manifest/analyzer": "^0.8.1",
76
+ "@custom-elements-manifest/analyzer": "^0.9.2",
72
77
  "@hatiolab/prettier-config": "^1.0.0",
73
- "@open-wc/eslint-config": "^10.0.0",
78
+ "@open-wc/eslint-config": "^12.0.3",
74
79
  "@open-wc/testing": "^3.1.6",
75
80
  "@types/lodash-es": "^4.17.5",
76
- "@typescript-eslint/eslint-plugin": "^5.59.1",
77
- "@typescript-eslint/parser": "^5.59.1",
81
+ "@typescript-eslint/eslint-plugin": "^7.0.1",
82
+ "@typescript-eslint/parser": "^7.0.1",
78
83
  "@web/dev-server": "^0.3.0",
79
- "@web/dev-server-storybook": "^0.7.4",
80
- "@web/test-runner": "^0.17.0",
84
+ "@web/dev-server-storybook": "^2.0.1",
85
+ "@web/test-runner": "^0.18.0",
81
86
  "concurrently": "^8.0.1",
82
87
  "eslint": "^8.39.0",
83
- "eslint-config-prettier": "^8.3.0",
84
- "husky": "^8.0.1",
85
- "lint-staged": "^13.2.2",
86
- "prettier": "^2.4.1",
88
+ "eslint-config-prettier": "^9.1.0",
89
+ "husky": "^9.0.11",
90
+ "lint-staged": "^15.2.2",
91
+ "prettier": "^3.2.5",
87
92
  "tslib": "^2.3.1",
88
93
  "typescript": "^5.0.4"
89
94
  },
@@ -100,5 +105,5 @@
100
105
  "prettier --write"
101
106
  ]
102
107
  },
103
- "gitHead": "ccec2e280e088b9a2976a496d2a196c085d948ba"
108
+ "gitHead": "966388e24e41832927ac3df25012ecd67620c00c"
104
109
  }
@@ -58,6 +58,7 @@ export const buildColumn = (column: any): ColumnConfig => {
58
58
  var { renderer: recordRenderer, editor, editable, classifier } = record || {}
59
59
 
60
60
  recordRenderer = getRenderer(recordRenderer || column.type)
61
+
61
62
  if (editable !== false && typeof editor !== 'function') {
62
63
  editor = getEditor(column.type)
63
64
  }
@@ -3,7 +3,16 @@ import { RowsConfig } from '../types'
3
3
  import { getGristEventHandler } from '../handlers'
4
4
 
5
5
  export const buildRowsOptions = (rows: any): RowsConfig => {
6
- var { appendable = true, insertable = false, selectable, groups = [], totals = [], classifier, accumulator } = rows
6
+ var {
7
+ appendable = true,
8
+ editable = true,
9
+ insertable = false,
10
+ selectable,
11
+ groups = [],
12
+ totals = [],
13
+ classifier,
14
+ accumulator
15
+ } = rows
7
16
 
8
17
  /* handler */
9
18
  var { click, dblclick, focus } = rows.handlers || {}
@@ -14,6 +23,7 @@ export const buildRowsOptions = (rows: any): RowsConfig => {
14
23
  return {
15
24
  accumulator,
16
25
  appendable,
26
+ editable,
17
27
  insertable,
18
28
  selectable,
19
29
  groups,
@@ -45,6 +45,7 @@ export const ZERO_COLUMN: ColumnConfig = {
45
45
  export const ZERO_ROWS: RowsConfig = {
46
46
  appendable: false,
47
47
  insertable: false,
48
+ editable: false,
48
49
  groups: ZERO_GROUPS,
49
50
  totals: ZERO_TOTALS,
50
51
  classifier: ZERO_CLASSIFIER,
@@ -1,4 +1,4 @@
1
- import '@material/mwc-icon'
1
+ import '@material/web/icon/icon.js'
2
2
  import './data-card-gutter.js'
3
3
 
4
4
  import { css, html, LitElement } from 'lit'
@@ -19,7 +19,7 @@ class DataCardGutterMenu extends LitElement {
19
19
  padding: 4px;
20
20
  }
21
21
 
22
- mwc-icon {
22
+ md-icon {
23
23
  flex: 1;
24
24
  margin: 0;
25
25
  margin-bottom: 1px;
@@ -29,7 +29,7 @@ class DataCardGutterMenu extends LitElement {
29
29
  font-size: var(--grid-record-fontsize);
30
30
  }
31
31
 
32
- mwc-icon:hover {
32
+ md-icon:hover {
33
33
  cursor: pointer;
34
34
  color: var(--grid-record-color-hover);
35
35
  }
@@ -41,11 +41,11 @@ class DataCardGutterMenu extends LitElement {
41
41
  @property() clickHandler!: EventListener
42
42
  @property() dblclickHandler!: EventListener
43
43
 
44
- @query('mwc-icon') icon!: Element
44
+ @query('md-icon') icon!: Element
45
45
 
46
46
  render() {
47
47
  return html`
48
- <mwc-icon @click=${(e: Event) => this.open(e)}>more_horiz</mwc-icon>
48
+ <md-icon @click=${(e: Event) => this.open(e)}>more_horiz</md-icon>
49
49
  <slot></slot>
50
50
  `
51
51
  }
@@ -1,4 +1,4 @@
1
- import '@material/mwc-icon'
1
+ import '@material/web/icon/icon.js'
2
2
  import '../empty-note'
3
3
  import './record-card'
4
4
 
@@ -42,7 +42,7 @@ export class DataCard extends DataManipulator {
42
42
  }
43
43
 
44
44
  #upward {
45
- --mdc-icon-size: 26px;
45
+ --md-icon-size: 26px;
46
46
  position: absolute;
47
47
  top: var(--data-card-fab-position-vertical);
48
48
  right: var(--data-card-fab-position-horizontal);
@@ -142,7 +142,7 @@ export class DataCard extends DataManipulator {
142
142
  ${this.empty ? html` <ox-empty-note title="NO RECORDS"></ox-empty-note> ` : html``}
143
143
  ${this.isTop
144
144
  ? html``
145
- : html` <mwc-icon id="upward" @click=${(e: Event) => this.gotoTop(e)}>arrow_upward</mwc-icon> `}
145
+ : html` <md-icon id="upward" @click=${(e: Event) => this.gotoTop(e)}>arrow_upward</md-icon> `}
146
146
  `
147
147
  }
148
148
 
@@ -29,6 +29,6 @@ export function recordCardClickHandler(this: RecordCard, e: MouseEvent): void {
29
29
  rowsClick(this.config.columns, this.data, column, this.record, rowIndex, target)
30
30
  } else {
31
31
  /* content 가 클릭된 경우 - 레코드뷰 팝업을 실행한다. */
32
- this.popupRecordView()
32
+ this.config.rows.editable && this.popupRecordView()
33
33
  }
34
34
  }
@@ -1,4 +1,4 @@
1
- import '@material/mwc-icon'
1
+ import '@material/web/icon/icon.js'
2
2
  import './data-card-field'
3
3
  import '../record-view'
4
4
  import './data-card-gutter'
@@ -183,7 +183,7 @@ export class RecordCard extends LitElement {
183
183
  }
184
184
 
185
185
  return html`
186
- ${dirtyIcon ? html` <mwc-icon dirty>${dirtyIcon}</mwc-icon> ` : html``}
186
+ ${dirtyIcon ? html` <md-icon dirty>${dirtyIcon}</md-icon> ` : html``}
187
187
  ${thumbnailColumn
188
188
  ? html` <ox-card-field
189
189
  thumbnail
@@ -216,46 +216,44 @@ export class RecordCard extends LitElement {
216
216
  ></ox-card-gutter>
217
217
  `
218
218
  : gutters.length > 2
219
- ? html`
220
- <ox-card-gutter-menu
221
- .gutters=${gutters}
222
- .rowIndex=${rowIndex}
223
- .record=${record}
224
- .clickHandler=${this.clickHandler}
225
- .dblclickHandler=${this.dblclickHandler}
226
- ></ox-card-gutter-menu>
227
- `
228
- : html``}
219
+ ? html`
220
+ <ox-card-gutter-menu
221
+ .gutters=${gutters}
222
+ .rowIndex=${rowIndex}
223
+ .record=${record}
224
+ .clickHandler=${this.clickHandler}
225
+ .dblclickHandler=${this.dblclickHandler}
226
+ ></ox-card-gutter-menu>
227
+ `
228
+ : html``}
229
229
  </div>
230
230
 
231
231
  <div brief>
232
232
  ${briefFields.map(
233
- (column, idx) =>
234
- html`
235
- <ox-card-field
236
- .rowIndex=${rowIndex}
237
- .column=${column}
238
- .record=${record}
239
- .value=${record[column?.name || '']}
240
- ?name=${idx == 0}
241
- ?desc=${idx == 1}
242
- ></ox-card-field>
243
- `
233
+ (column, idx) => html`
234
+ <ox-card-field
235
+ .rowIndex=${rowIndex}
236
+ .column=${column}
237
+ .record=${record}
238
+ .value=${record[column?.name || '']}
239
+ ?name=${idx == 0}
240
+ ?desc=${idx == 1}
241
+ ></ox-card-field>
242
+ `
244
243
  )}
245
244
  </div>
246
245
  ${detailFields.length > 0
247
246
  ? html`
248
247
  <div detail>
249
248
  ${detailFields.map(
250
- (column, idx) =>
251
- html`
252
- <ox-card-field
253
- .rowIndex=${rowIndex}
254
- .column=${column}
255
- .record=${record}
256
- .value=${record[column?.name || '']}
257
- ></ox-card-field>
258
- `
249
+ (column, idx) => html`
250
+ <ox-card-field
251
+ .rowIndex=${rowIndex}
252
+ .column=${column}
253
+ .record=${record}
254
+ .value=${record[column?.name || '']}
255
+ ></ox-card-field>
256
+ `
259
257
  )}
260
258
  </div>
261
259
  `