@operato/data-grist 2.0.0-alpha.11 → 2.0.0-alpha.111

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 (303) hide show
  1. package/CHANGELOG.md +472 -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 +8 -3
  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 +2 -2
  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 +1 -1
  41. package/dist/src/data-grist.js +23 -22
  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 -22
  115. package/dist/src/handlers/contextmenu-tree-mutation.js.map +1 -1
  116. package/dist/src/index.d.ts +0 -1
  117. package/dist/src/index.js +0 -1
  118. package/dist/src/index.js.map +1 -1
  119. package/dist/src/record-view/record-creator.d.ts +2 -2
  120. package/dist/src/record-view/record-creator.js +1 -1
  121. package/dist/src/record-view/record-creator.js.map +1 -1
  122. package/dist/src/record-view/record-view-body.d.ts +3 -3
  123. package/dist/src/record-view/record-view-body.js +4 -4
  124. package/dist/src/record-view/record-view-body.js.map +1 -1
  125. package/dist/src/record-view/record-view.d.ts +2 -2
  126. package/dist/src/record-view/record-view.js +5 -5
  127. package/dist/src/record-view/record-view.js.map +1 -1
  128. package/dist/src/renderers/ox-grist-renderer-progress.d.ts +1 -1
  129. package/dist/src/renderers/ox-grist-renderer-select.js +34 -4
  130. package/dist/src/renderers/ox-grist-renderer-select.js.map +1 -1
  131. package/dist/src/renderers/ox-grist-renderer-tree.d.ts +1 -1
  132. package/dist/src/renderers/ox-grist-renderer.d.ts +2 -2
  133. package/dist/src/sorters/sorters-control.js +3 -3
  134. package/dist/src/sorters/sorters-control.js.map +1 -1
  135. package/dist/src/types.d.ts +15 -9
  136. package/dist/src/types.js.map +1 -1
  137. package/dist/stories/{accumulator.stories.d.ts → accumulator-format.stories.d.ts} +1 -1
  138. package/dist/stories/{accumulator.stories.js → accumulator-format.stories.js} +58 -129
  139. package/dist/stories/accumulator-format.stories.js.map +1 -0
  140. package/dist/stories/barcode-input-filter.stories.d.ts +1 -1
  141. package/dist/stories/barcode-input-filter.stories.js +41 -79
  142. package/dist/stories/barcode-input-filter.stories.js.map +1 -1
  143. package/dist/stories/bounded-select-filters.stories.d.ts +25 -0
  144. package/dist/stories/bounded-select-filters.stories.js +264 -0
  145. package/dist/stories/bounded-select-filters.stories.js.map +1 -0
  146. package/dist/stories/bounded-select-record.stories.d.ts +25 -0
  147. package/dist/stories/bounded-select-record.stories.js +267 -0
  148. package/dist/stories/bounded-select-record.stories.js.map +1 -0
  149. package/dist/stories/creatable-only-column.stories.d.ts +25 -0
  150. package/dist/stories/creatable-only-column.stories.js +211 -0
  151. package/dist/stories/creatable-only-column.stories.js.map +1 -0
  152. package/dist/stories/default-filters.stories.d.ts +1 -1
  153. package/dist/stories/default-filters.stories.js +84 -79
  154. package/dist/stories/default-filters.stories.js.map +1 -1
  155. package/dist/stories/dynamic-editable.stories.d.ts +1 -1
  156. package/dist/stories/dynamic-editable.stories.js +61 -86
  157. package/dist/stories/dynamic-editable.stories.js.map +1 -1
  158. package/dist/stories/empty-sorters.stories.d.ts +1 -1
  159. package/dist/stories/empty-sorters.stories.js +41 -78
  160. package/dist/stories/empty-sorters.stories.js.map +1 -1
  161. package/dist/stories/explicit-fetch.stories.d.ts +1 -1
  162. package/dist/stories/explicit-fetch.stories.js +42 -79
  163. package/dist/stories/explicit-fetch.stories.js.map +1 -1
  164. package/dist/stories/fixed-column.stories.d.ts +1 -1
  165. package/dist/stories/fixed-column.stories.js +45 -127
  166. package/dist/stories/fixed-column.stories.js.map +1 -1
  167. package/dist/stories/grid-setting.stories.d.ts +36 -0
  168. package/dist/stories/grid-setting.stories.js +403 -0
  169. package/dist/stories/grid-setting.stories.js.map +1 -0
  170. package/dist/stories/grist-modes.stories.d.ts +1 -1
  171. package/dist/stories/grist-modes.stories.js +74 -140
  172. package/dist/stories/grist-modes.stories.js.map +1 -1
  173. package/dist/stories/group-header.stories.d.ts +1 -1
  174. package/dist/stories/group-header.stories.js +45 -127
  175. package/dist/stories/group-header.stories.js.map +1 -1
  176. package/dist/stories/textarea.stories.d.ts +1 -1
  177. package/dist/stories/textarea.stories.js +39 -121
  178. package/dist/stories/textarea.stories.js.map +1 -1
  179. package/dist/stories/tree-column-with-checkbox.stories.d.ts +1 -1
  180. package/dist/stories/tree-column-with-checkbox.stories.js +49 -136
  181. package/dist/stories/tree-column-with-checkbox.stories.js.map +1 -1
  182. package/dist/stories/tree-column.stories.d.ts +1 -1
  183. package/dist/stories/tree-column.stories.js +49 -136
  184. package/dist/stories/tree-column.stories.js.map +1 -1
  185. package/dist/tsconfig.tsbuildinfo +1 -1
  186. package/docs/default-value/default-value.md +1 -1
  187. package/docs/default-value/value-generator/date-generator.md +31 -2
  188. package/docs/default-value/value-generator/hour-time-generator.md +33 -0
  189. package/docs/default-value/value-generator/minute-time-generator.md +33 -0
  190. package/docs/default-value/value-generator/month-date-generator.md +4 -2
  191. package/docs/default-value/value-generator/now-generator.md +29 -0
  192. package/docs/default-value/value-generator/time-generator.md +31 -0
  193. package/docs/default-value/value-generator/today-generator.md +29 -0
  194. package/docs/default-value/value-generator/week-date-generator.md +33 -2
  195. package/docs/default-value/value-generator/year-date-generator.md +33 -2
  196. package/package.json +21 -20
  197. package/src/configure/column-builder.ts +1 -0
  198. package/src/configure/rows-option-builder.ts +11 -1
  199. package/src/configure/zero-config.ts +1 -0
  200. package/src/data-card/data-card-gutter-menu.ts +5 -5
  201. package/src/data-card/data-card.ts +3 -3
  202. package/src/data-card/event-handlers/record-card-click-handler.ts +1 -1
  203. package/src/data-card/record-card.ts +30 -32
  204. package/src/data-grid/data-grid-accum-field.ts +8 -3
  205. package/src/data-grid/data-grid-body-style.ts +1 -0
  206. package/src/data-grid/data-grid-body.ts +10 -5
  207. package/src/data-grid/data-grid-field.ts +1 -1
  208. package/src/data-grid/data-grid-footer.ts +18 -11
  209. package/src/data-grid/data-grid-header.ts +68 -65
  210. package/src/data-grid/data-grid.ts +14 -4
  211. package/src/data-grist.ts +25 -24
  212. package/src/data-list/data-list-gutter.ts +12 -0
  213. package/src/data-list/data-list.ts +3 -3
  214. package/src/data-list/event-handlers/record-partial-click-handler.ts +1 -1
  215. package/src/data-list/record-partial.ts +22 -22
  216. package/src/editors/ox-grist-editor-checkbox.ts +12 -2
  217. package/src/editors/ox-grist-editor-datetime.ts +1 -2
  218. package/src/editors/ox-grist-editor-file.ts +12 -2
  219. package/src/editors/ox-grist-editor-image.ts +10 -7
  220. package/src/editors/ox-grist-editor-number.ts +11 -9
  221. package/src/editors/ox-grist-editor-select.ts +41 -28
  222. package/src/editors/ox-grist-editor-text.ts +4 -0
  223. package/src/editors/ox-grist-editor-textarea.ts +4 -0
  224. package/src/editors/ox-grist-editor.ts +14 -10
  225. package/src/empty-note.ts +3 -3
  226. package/src/filters/filter-checkbox.ts +15 -5
  227. package/src/filters/filter-range-date.ts +16 -1
  228. package/src/filters/filter-select.ts +41 -28
  229. package/src/filters/filter-styles.ts +47 -28
  230. package/src/filters/filters-form.ts +159 -59
  231. package/src/gutters/gutter-button.ts +3 -3
  232. package/src/gutters/gutter-dirty.ts +5 -5
  233. package/src/handlers/contextmenu-tree-mutation.ts +4 -22
  234. package/src/index.ts +0 -1
  235. package/src/record-view/record-creator.ts +1 -1
  236. package/src/record-view/record-view-body.ts +4 -4
  237. package/src/record-view/record-view.ts +5 -5
  238. package/src/renderers/ox-grist-renderer-select.ts +41 -6
  239. package/src/sorters/sorters-control.ts +3 -3
  240. package/src/types.ts +20 -10
  241. package/stories/{accumulator.stories.ts → accumulator-format.stories.ts} +56 -130
  242. package/stories/barcode-input-filter.stories.ts +53 -89
  243. package/stories/bounded-select-filters.stories.ts +313 -0
  244. package/stories/bounded-select-record.stories.ts +316 -0
  245. package/stories/creatable-only-column.stories.ts +231 -0
  246. package/stories/default-filters.stories.ts +96 -89
  247. package/stories/dynamic-editable.stories.ts +68 -92
  248. package/stories/empty-sorters.stories.ts +53 -89
  249. package/stories/explicit-fetch.stories.ts +54 -90
  250. package/stories/fixed-column.stories.ts +57 -137
  251. package/stories/grid-setting.stories.ts +441 -0
  252. package/stories/grist-modes.stories.ts +86 -155
  253. package/stories/group-header.stories.ts +57 -137
  254. package/stories/textarea.stories.ts +42 -127
  255. package/stories/tree-column-with-checkbox.stories.ts +53 -138
  256. package/stories/tree-column.stories.ts +53 -138
  257. package/themes/grist-theme.css +3 -1
  258. package/yarn-error.log +16971 -0
  259. package/dist/src/value-generator/date-generator.d.ts +0 -6
  260. package/dist/src/value-generator/date-generator.js +0 -30
  261. package/dist/src/value-generator/date-generator.js.map +0 -1
  262. package/dist/src/value-generator/hour-time-generator.d.ts +0 -7
  263. package/dist/src/value-generator/hour-time-generator.js +0 -29
  264. package/dist/src/value-generator/hour-time-generator.js.map +0 -1
  265. package/dist/src/value-generator/index.d.ts +0 -1
  266. package/dist/src/value-generator/index.js +0 -2
  267. package/dist/src/value-generator/index.js.map +0 -1
  268. package/dist/src/value-generator/minute-time-generator.d.ts +0 -7
  269. package/dist/src/value-generator/minute-time-generator.js +0 -29
  270. package/dist/src/value-generator/minute-time-generator.js.map +0 -1
  271. package/dist/src/value-generator/month-date-generator.d.ts +0 -7
  272. package/dist/src/value-generator/month-date-generator.js +0 -31
  273. package/dist/src/value-generator/month-date-generator.js.map +0 -1
  274. package/dist/src/value-generator/now-generator.d.ts +0 -4
  275. package/dist/src/value-generator/now-generator.js +0 -8
  276. package/dist/src/value-generator/now-generator.js.map +0 -1
  277. package/dist/src/value-generator/registry.d.ts +0 -11
  278. package/dist/src/value-generator/registry.js +0 -50
  279. package/dist/src/value-generator/registry.js.map +0 -1
  280. package/dist/src/value-generator/time-generator.d.ts +0 -6
  281. package/dist/src/value-generator/time-generator.js +0 -28
  282. package/dist/src/value-generator/time-generator.js.map +0 -1
  283. package/dist/src/value-generator/today-generator.d.ts +0 -4
  284. package/dist/src/value-generator/today-generator.js +0 -8
  285. package/dist/src/value-generator/today-generator.js.map +0 -1
  286. package/dist/src/value-generator/week-date-generator.d.ts +0 -7
  287. package/dist/src/value-generator/week-date-generator.js +0 -29
  288. package/dist/src/value-generator/week-date-generator.js.map +0 -1
  289. package/dist/src/value-generator/year-date-generator.d.ts +0 -7
  290. package/dist/src/value-generator/year-date-generator.js +0 -29
  291. package/dist/src/value-generator/year-date-generator.js.map +0 -1
  292. package/dist/stories/accumulator.stories.js.map +0 -1
  293. package/src/value-generator/date-generator.ts +0 -35
  294. package/src/value-generator/hour-time-generator.ts +0 -43
  295. package/src/value-generator/index.ts +0 -1
  296. package/src/value-generator/minute-time-generator.ts +0 -43
  297. package/src/value-generator/month-date-generator.ts +0 -38
  298. package/src/value-generator/now-generator.ts +0 -10
  299. package/src/value-generator/registry.ts +0 -58
  300. package/src/value-generator/time-generator.ts +0 -33
  301. package/src/value-generator/today-generator.ts +0 -10
  302. package/src/value-generator/week-date-generator.ts +0 -40
  303. package/src/value-generator/year-date-generator.ts +0 -36
@@ -1 +1 @@
1
- {"version":3,"file":"ox-grist-editor-checkbox.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor-checkbox.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAGnB,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,aAAa;IACtD,gBAAgB,CAAC,CAAQ;QACvB,OAAQ,CAAC,CAAC,MAA2B,CAAC,OAAO,CAAA;IAC/C,CAAC;IAED,eAAe,CAAC,KAAU;QACxB,OAAO,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC3D,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA,oCAAoC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAA;IAC1G,CAAC;CACF,CAAA;AAZY,qBAAqB;IADjC,aAAa,CAAC,0BAA0B,CAAC;GAC7B,qBAAqB,CAYjC","sourcesContent":["import { OxGristEditor } from './ox-grist-editor.js'\nimport { customElement } from 'lit/decorators.js'\nimport { html } from 'lit'\n\n@customElement('ox-grist-editor-checkbox')\nexport class OxGristEditorCheckbox extends OxGristEditor {\n formatFromEditor(e: Event) {\n return (e.target as HTMLInputElement).checked\n }\n\n formatForEditor(value: any): any {\n return value == !!value && !!String(value).match(/true/i)\n }\n\n get editorTemplate() {\n return html` <input type=\"checkbox\" .checked=${!!this.value && !!String(this.value).match(/true/i)} /> `\n }\n}\n"]}
1
+ {"version":3,"file":"ox-grist-editor-checkbox.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor-checkbox.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAGnB,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,aAAa;IACtD,SAAS,CAAC,CAAQ;QAChB,CAAC,CAAC,eAAe,EAAE,CAAA;QAEnB,MAAM,KAAK,GAAG,CAAC,CAAC,MAA0B,CAAA;QAE1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACzD,CAAC;IAED,gBAAgB,CAAC,KAAU;QACzB,IAAI,OAAO,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,eAAe,CAAC,KAAU;QACxB,OAAO,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC3D,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA,oCAAoC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAA;IAC1G,CAAC;CACF,CAAA;AAtBY,qBAAqB;IADjC,aAAa,CAAC,0BAA0B,CAAC;GAC7B,qBAAqB,CAsBjC","sourcesContent":["import { OxGristEditor } from './ox-grist-editor.js'\nimport { customElement } from 'lit/decorators.js'\nimport { html } from 'lit'\n\n@customElement('ox-grist-editor-checkbox')\nexport class OxGristEditorCheckbox extends OxGristEditor {\n _onchange(e: Event) {\n e.stopPropagation()\n\n const input = e.target as HTMLInputElement\n\n this._dirtyValue = this.formatFromEditor(input.checked)\n }\n\n formatFromEditor(value: any) {\n if (typeof value == 'boolean') {\n return value\n }\n }\n\n formatForEditor(value: any): any {\n return value == !!value && !!String(value).match(/true/i)\n }\n\n get editorTemplate() {\n return html` <input type=\"checkbox\" .checked=${!!this.value && !!String(this.value).match(/true/i)} /> `\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
1
  import { OxGristEditor } from './ox-grist-editor.js';
2
2
  export declare class OxGristEditorColor extends OxGristEditor {
3
- get editorTemplate(): import("lit").TemplateResult<1>;
3
+ get editorTemplate(): import("lit-html").TemplateResult<1>;
4
4
  }
@@ -1,4 +1,4 @@
1
1
  import { OxGristEditor } from './ox-grist-editor.js';
2
2
  export declare class OxGristEditorDate extends OxGristEditor {
3
- get editorTemplate(): import("lit").TemplateResult<1>;
3
+ get editorTemplate(): import("lit-html").TemplateResult<1>;
4
4
  }
@@ -1,6 +1,6 @@
1
1
  import { OxGristEditor } from './ox-grist-editor.js';
2
2
  export declare class OxGristEditorDateTime extends OxGristEditor {
3
3
  formatForEditor(timestamp: any): string;
4
- formatFromEditor(e: Event): number;
5
- get editorTemplate(): import("lit").TemplateResult<1>;
4
+ formatFromEditor(value: any): number;
5
+ get editorTemplate(): import("lit-html").TemplateResult<1>;
6
6
  }
@@ -11,8 +11,7 @@ let OxGristEditorDateTime = class OxGristEditorDateTime extends OxGristEditor {
11
11
  var tzoffset = datetime.getTimezoneOffset() * 60000; //offset in milliseconds
12
12
  return new Date(timestamp - tzoffset).toISOString().slice(0, -1);
13
13
  }
14
- formatFromEditor(e) {
15
- var value = e.target.value;
14
+ formatFromEditor(value) {
16
15
  var datetime = new Date(value);
17
16
  return datetime.getTime();
18
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ox-grist-editor-datetime.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor-datetime.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAGnB,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,aAAa;IACtD,eAAe,CAAC,SAAc;QAC5B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACxB,CAAC;QACD,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAA;QAElC,IAAI,QAAQ,GAAG,QAAQ,CAAC,iBAAiB,EAAE,GAAG,KAAK,CAAA,CAAC,wBAAwB;QAE5E,OAAO,IAAI,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAClE,CAAC;IAED,gBAAgB,CAAC,CAAQ;QACvB,IAAI,KAAK,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAA;QAChD,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;QAE9B,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAA;IAC3B,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA,wCAAwC,IAAI,CAAC,KAAK,MAAM,CAAA;IACrE,CAAC;CACF,CAAA;AAtBY,qBAAqB;IADjC,aAAa,CAAC,0BAA0B,CAAC;GAC7B,qBAAqB,CAsBjC","sourcesContent":["import { OxGristEditor } from './ox-grist-editor.js'\nimport { customElement } from 'lit/decorators.js'\nimport { html } from 'lit'\n\n@customElement('ox-grist-editor-datetime')\nexport class OxGristEditorDateTime extends OxGristEditor {\n formatForEditor(timestamp: any) {\n if (!timestamp) {\n timestamp = Date.now()\n }\n var datetime = new Date(timestamp)\n\n var tzoffset = datetime.getTimezoneOffset() * 60000 //offset in milliseconds\n\n return new Date(timestamp - tzoffset).toISOString().slice(0, -1)\n }\n\n formatFromEditor(e: Event) {\n var value = (e.target as HTMLInputElement).value\n var datetime = new Date(value)\n\n return datetime.getTime()\n }\n\n get editorTemplate() {\n return html` <input type=\"datetime-local\" .value=${this.value} /> `\n }\n}\n"]}
1
+ {"version":3,"file":"ox-grist-editor-datetime.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor-datetime.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAGnB,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,aAAa;IACtD,eAAe,CAAC,SAAc;QAC5B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACxB,CAAC;QACD,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAA;QAElC,IAAI,QAAQ,GAAG,QAAQ,CAAC,iBAAiB,EAAE,GAAG,KAAK,CAAA,CAAC,wBAAwB;QAE5E,OAAO,IAAI,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAClE,CAAC;IAED,gBAAgB,CAAC,KAAU;QACzB,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;QAE9B,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAA;IAC3B,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA,wCAAwC,IAAI,CAAC,KAAK,MAAM,CAAA;IACrE,CAAC;CACF,CAAA;AArBY,qBAAqB;IADjC,aAAa,CAAC,0BAA0B,CAAC;GAC7B,qBAAqB,CAqBjC","sourcesContent":["import { OxGristEditor } from './ox-grist-editor.js'\nimport { customElement } from 'lit/decorators.js'\nimport { html } from 'lit'\n\n@customElement('ox-grist-editor-datetime')\nexport class OxGristEditorDateTime extends OxGristEditor {\n formatForEditor(timestamp: any) {\n if (!timestamp) {\n timestamp = Date.now()\n }\n var datetime = new Date(timestamp)\n\n var tzoffset = datetime.getTimezoneOffset() * 60000 //offset in milliseconds\n\n return new Date(timestamp - tzoffset).toISOString().slice(0, -1)\n }\n\n formatFromEditor(value: any) {\n var datetime = new Date(value)\n\n return datetime.getTime()\n }\n\n get editorTemplate() {\n return html` <input type=\"datetime-local\" .value=${this.value} /> `\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
1
  import { OxGristEditor } from './ox-grist-editor.js';
2
2
  export declare class OxGristEditorEmail extends OxGristEditor {
3
- get editorTemplate(): import("lit").TemplateResult<1>;
3
+ get editorTemplate(): import("lit-html").TemplateResult<1>;
4
4
  }
@@ -1,5 +1,6 @@
1
1
  import { OxGristEditor } from './ox-grist-editor.js';
2
2
  export declare class OxGristEditorFile extends OxGristEditor {
3
- formatFromEditor(e: Event): any;
4
- get editorTemplate(): import("lit").TemplateResult<1>;
3
+ _onchange(e: Event): void;
4
+ formatFromEditor(value: any): any;
5
+ get editorTemplate(): import("lit-html").TemplateResult<1>;
5
6
  }
@@ -3,8 +3,14 @@ import { html } from 'lit';
3
3
  import { customElement } from 'lit/decorators.js';
4
4
  import { OxGristEditor } from './ox-grist-editor.js';
5
5
  let OxGristEditorFile = class OxGristEditorFile extends OxGristEditor {
6
- formatFromEditor(e) {
7
- return e.target.files;
6
+ _onchange(e) {
7
+ e.stopPropagation();
8
+ const input = e.target;
9
+ this._dirtyValue = this.formatFromEditor(input.files);
10
+ this._onfocusout();
11
+ }
12
+ formatFromEditor(value) {
13
+ return value;
8
14
  }
9
15
  get editorTemplate() {
10
16
  var value = typeof this.value === 'string' ? null : this.value;
@@ -1 +1 @@
1
- {"version":3,"file":"ox-grist-editor-file.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor-file.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAG7C,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,aAAa;IAClD,gBAAgB,CAAC,CAAQ;QACvB,OAAQ,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAA;IAC7C,CAAC;IAED,IAAI,cAAc;QAChB,IAAI,KAAK,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAA;QAC9D,OAAO,IAAI,CAAA,4CAA4C,CAAA;IACzD,CAAC;CACF,CAAA;AATY,iBAAiB;IAD7B,aAAa,CAAC,sBAAsB,CAAC;GACzB,iBAAiB,CAS7B","sourcesContent":["import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\nimport { OxGristEditor } from './ox-grist-editor.js'\n\n@customElement('ox-grist-editor-file')\nexport class OxGristEditorFile extends OxGristEditor {\n formatFromEditor(e: Event): any {\n return (e.target as HTMLInputElement).files\n }\n\n get editorTemplate() {\n var value = typeof this.value === 'string' ? null : this.value\n return html` <input style=\"opacity: 1\" type=\"file\" /> `\n }\n}\n"]}
1
+ {"version":3,"file":"ox-grist-editor-file.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor-file.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAG7C,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,aAAa;IAClD,SAAS,CAAC,CAAQ;QAChB,CAAC,CAAC,eAAe,EAAE,CAAA;QAEnB,MAAM,KAAK,GAAG,CAAC,CAAC,MAA0B,CAAA;QAE1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAErD,IAAI,CAAC,WAAW,EAAE,CAAA;IACpB,CAAC;IAED,gBAAgB,CAAC,KAAU;QACzB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,cAAc;QAChB,IAAI,KAAK,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAA;QAC9D,OAAO,IAAI,CAAA,4CAA4C,CAAA;IACzD,CAAC;CACF,CAAA;AAnBY,iBAAiB;IAD7B,aAAa,CAAC,sBAAsB,CAAC;GACzB,iBAAiB,CAmB7B","sourcesContent":["import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\nimport { OxGristEditor } from './ox-grist-editor.js'\n\n@customElement('ox-grist-editor-file')\nexport class OxGristEditorFile extends OxGristEditor {\n _onchange(e: Event) {\n e.stopPropagation()\n\n const input = e.target as HTMLInputElement\n\n this._dirtyValue = this.formatFromEditor(input.files)\n\n this._onfocusout()\n }\n\n formatFromEditor(value: any): any {\n return value\n }\n\n get editorTemplate() {\n var value = typeof this.value === 'string' ? null : this.value\n return html` <input style=\"opacity: 1\" type=\"file\" /> `\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import '@operato/input/ox-input-image.js';
2
2
  import { OxGristEditor } from './ox-grist-editor.js';
3
3
  export declare class OxGristEditorImage extends OxGristEditor {
4
- get editorTemplate(): import("lit").TemplateResult<1>;
4
+ get editorTemplate(): import("lit-html").TemplateResult<1>;
5
5
  _onchange(e: Event): void;
6
- formatFromEditor(e: Event): string | File;
6
+ formatFromEditor(value: any): any;
7
7
  }
@@ -8,20 +8,20 @@ let OxGristEditorImage = class OxGristEditorImage extends OxGristEditor {
8
8
  return html ` <ox-input-image .value=${this.value}></ox-input-image> `;
9
9
  }
10
10
  _onchange(e) {
11
- e.stopPropagation();
12
- this._dirtyValue = this.formatFromEditor(e);
13
- this._onfocusout();
14
- }
15
- formatFromEditor(e) {
16
11
  var _a;
17
- // value가 image file object인지, image url인지 확인
12
+ e.stopPropagation();
18
13
  const input = e.target;
14
+ // value가 image file object인지, image url인지 확인
19
15
  if ((_a = input.files) === null || _a === void 0 ? void 0 : _a[0]) {
20
- return input.files[0];
16
+ this._dirtyValue = this.formatFromEditor(input.files[0]);
21
17
  }
22
18
  else {
23
- return input.value;
19
+ this._dirtyValue = this.formatFromEditor(input.value);
24
20
  }
21
+ this._onfocusout();
22
+ }
23
+ formatFromEditor(value) {
24
+ return value;
25
25
  }
26
26
  };
27
27
  OxGristEditorImage = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"ox-grist-editor-image.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor-image.ts"],"names":[],"mappings":";AAAA,OAAO,kCAAkC,CAAA;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAGnB,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,aAAa;IACnD,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA,2BAA2B,IAAI,CAAC,KAAK,qBAAqB,CAAA;IACvE,CAAC;IAED,SAAS,CAAC,CAAQ;QAChB,CAAC,CAAC,eAAe,EAAE,CAAA;QACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;QAC3C,IAAI,CAAC,WAAW,EAAE,CAAA;IACpB,CAAC;IAED,gBAAgB,CAAC,CAAQ;;QACvB,6CAA6C;QAC7C,MAAM,KAAK,GAAG,CAAC,CAAC,MAA0B,CAAA;QAC1C,IAAI,MAAA,KAAK,CAAC,KAAK,0CAAG,CAAC,CAAC,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACvB,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC,KAAK,CAAA;QACpB,CAAC;IACH,CAAC;CACF,CAAA;AApBY,kBAAkB;IAD9B,aAAa,CAAC,uBAAuB,CAAC;GAC1B,kBAAkB,CAoB9B","sourcesContent":["import '@operato/input/ox-input-image.js'\n\nimport { OxGristEditor } from './ox-grist-editor.js'\nimport { customElement } from 'lit/decorators.js'\nimport { html } from 'lit'\n\n@customElement('ox-grist-editor-image')\nexport class OxGristEditorImage extends OxGristEditor {\n get editorTemplate() {\n return html` <ox-input-image .value=${this.value}></ox-input-image> `\n }\n\n _onchange(e: Event) {\n e.stopPropagation()\n this._dirtyValue = this.formatFromEditor(e)\n this._onfocusout()\n }\n\n formatFromEditor(e: Event) {\n // value가 image file object인지, image url인지 확인\n const input = e.target as HTMLInputElement\n if (input.files?.[0]) {\n return input.files[0]\n } else {\n return input.value\n }\n }\n}\n"]}
1
+ {"version":3,"file":"ox-grist-editor-image.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor-image.ts"],"names":[],"mappings":";AAAA,OAAO,kCAAkC,CAAA;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAGnB,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,aAAa;IACnD,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA,2BAA2B,IAAI,CAAC,KAAK,qBAAqB,CAAA;IACvE,CAAC;IAED,SAAS,CAAC,CAAQ;;QAChB,CAAC,CAAC,eAAe,EAAE,CAAA;QAEnB,MAAM,KAAK,GAAG,CAAC,CAAC,MAA0B,CAAA;QAE1C,6CAA6C;QAC7C,IAAI,MAAA,KAAK,CAAC,KAAK,0CAAG,CAAC,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAC1D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACvD,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAA;IACpB,CAAC;IAED,gBAAgB,CAAC,KAAU;QACzB,OAAO,KAAK,CAAA;IACd,CAAC;CACF,CAAA;AAvBY,kBAAkB;IAD9B,aAAa,CAAC,uBAAuB,CAAC;GAC1B,kBAAkB,CAuB9B","sourcesContent":["import '@operato/input/ox-input-image.js'\n\nimport { OxGristEditor } from './ox-grist-editor.js'\nimport { customElement } from 'lit/decorators.js'\nimport { html } from 'lit'\n\n@customElement('ox-grist-editor-image')\nexport class OxGristEditorImage extends OxGristEditor {\n get editorTemplate() {\n return html` <ox-input-image .value=${this.value}></ox-input-image> `\n }\n\n _onchange(e: Event) {\n e.stopPropagation()\n\n const input = e.target as HTMLInputElement\n\n // value가 image file object인지, image url인지 확인\n if (input.files?.[0]) {\n this._dirtyValue = this.formatFromEditor(input.files[0])\n } else {\n this._dirtyValue = this.formatFromEditor(input.value)\n }\n\n this._onfocusout()\n }\n\n formatFromEditor(value: any) {\n return value\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
1
  import { OxGristEditor } from './ox-grist-editor.js';
2
2
  export declare class OxGristEditorMonth extends OxGristEditor {
3
- get editorTemplate(): import("lit").TemplateResult<1>;
3
+ get editorTemplate(): import("lit-html").TemplateResult<1>;
4
4
  }
@@ -4,5 +4,5 @@ import '@operato/popup/ox-popup-list.js';
4
4
  import { OxGristEditor } from './ox-grist-editor.js';
5
5
  export declare class OxGristEditorMultipleSelect extends OxGristEditor {
6
6
  static styles: import("lit").CSSResult[];
7
- get editorTemplate(): import("lit").TemplateResult<1>;
7
+ get editorTemplate(): import("lit-html").TemplateResult<1>;
8
8
  }
@@ -1,5 +1,6 @@
1
1
  import { OxGristEditor } from './ox-grist-editor.js';
2
2
  export declare class OxGristEditorNumber extends OxGristEditor {
3
- formatFromEditor(e: Event): number;
4
- get editorTemplate(): import("lit").TemplateResult<1>;
3
+ get inlineEditable(): boolean;
4
+ formatFromEditor(value: any): number | null;
5
+ get editorTemplate(): import("lit-html").TemplateResult<1>;
5
6
  }
@@ -2,17 +2,18 @@ import { __decorate } from "tslib";
2
2
  import { OxGristEditor } from './ox-grist-editor.js';
3
3
  import { customElement } from 'lit/decorators.js';
4
4
  import { html } from 'lit';
5
+ import { parseToNumberOrNull } from '@operato/utils';
5
6
  let OxGristEditorNumber = class OxGristEditorNumber extends OxGristEditor {
6
- formatFromEditor(e) {
7
- let value = e.target.value;
8
- switch (this.column.type) {
9
- case 'float':
10
- return Number.parseFloat(value);
11
- case 'integer':
12
- return Number.parseInt(value);
13
- default:
14
- return Number(value);
7
+ get inlineEditable() {
8
+ return true;
9
+ }
10
+ formatFromEditor(value) {
11
+ var _a;
12
+ const parsed = (_a = parseToNumberOrNull(value)) !== null && _a !== void 0 ? _a : null;
13
+ if (parsed !== null && this.column.type == 'integer') {
14
+ return Math.floor(parsed);
15
15
  }
16
+ return parsed;
16
17
  }
17
18
  get editorTemplate() {
18
19
  var { min = -Infinity, max = Infinity } = this.column.record.options || {};
@@ -1 +1 @@
1
- {"version":3,"file":"ox-grist-editor-number.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor-number.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAGnB,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,aAAa;IACpD,gBAAgB,CAAC,CAAQ;QACvB,IAAI,KAAK,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAA;QAEhD,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACzB,KAAK,OAAO;gBACV,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;YACjC,KAAK,SAAS;gBACZ,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YAC/B;gBACE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IAED,IAAI,cAAc;QAChB,IAAI,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;QAE1E,OAAO,IAAI,CAAA,gCAAgC,IAAI,CAAC,KAAK,SAAS,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,MAAM,CAAA;IACrG,CAAC;CACF,CAAA;AAnBY,mBAAmB;IAD/B,aAAa,CAAC,wBAAwB,CAAC;GAC3B,mBAAmB,CAmB/B","sourcesContent":["import { OxGristEditor } from './ox-grist-editor.js'\nimport { customElement } from 'lit/decorators.js'\nimport { html } from 'lit'\n\n@customElement('ox-grist-editor-number')\nexport class OxGristEditorNumber extends OxGristEditor {\n formatFromEditor(e: Event) {\n let value = (e.target as HTMLInputElement).value\n\n switch (this.column.type) {\n case 'float':\n return Number.parseFloat(value)\n case 'integer':\n return Number.parseInt(value)\n default:\n return Number(value)\n }\n }\n\n get editorTemplate() {\n var { min = -Infinity, max = Infinity } = this.column.record.options || {}\n\n return html` <input type=\"number\" .value=${this.value} .min=${Number(min)} .max=${Number(max)} /> `\n }\n}\n"]}
1
+ {"version":3,"file":"ox-grist-editor-number.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor-number.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAG7C,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,aAAa;IACpD,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,gBAAgB,CAAC,KAAU;;QACzB,MAAM,MAAM,GAAG,MAAA,mBAAmB,CAAC,KAAK,CAAC,mCAAI,IAAI,CAAA;QAEjD,IAAI,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC3B,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAI,cAAc;QAChB,IAAI,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;QAE1E,OAAO,IAAI,CAAA,gCAAgC,IAAI,CAAC,KAAK,SAAS,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,MAAM,CAAA;IACrG,CAAC;CACF,CAAA;AApBY,mBAAmB;IAD/B,aAAa,CAAC,wBAAwB,CAAC;GAC3B,mBAAmB,CAoB/B","sourcesContent":["import { OxGristEditor } from './ox-grist-editor.js'\nimport { customElement } from 'lit/decorators.js'\nimport { html } from 'lit'\nimport { parseToNumberOrNull } from '@operato/utils'\n\n@customElement('ox-grist-editor-number')\nexport class OxGristEditorNumber extends OxGristEditor {\n get inlineEditable() {\n return true\n }\n\n formatFromEditor(value: any) {\n const parsed = parseToNumberOrNull(value) ?? null\n\n if (parsed !== null && this.column.type == 'integer') {\n return Math.floor(parsed)\n }\n\n return parsed\n }\n\n get editorTemplate() {\n var { min = -Infinity, max = Infinity } = this.column.record.options || {}\n\n return html` <input type=\"number\" .value=${this.value} .min=${Number(min)} .max=${Number(max)} /> `\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
1
  import { OxGristEditor } from './ox-grist-editor.js';
2
2
  export declare class OxGristEditorPassword extends OxGristEditor {
3
- get editorTemplate(): import("lit").TemplateResult<1>;
3
+ get editorTemplate(): import("lit-html").TemplateResult<1>;
4
4
  }
@@ -1,4 +1,4 @@
1
1
  import { OxGristEditor } from './ox-grist-editor.js';
2
2
  export declare class OxGristEditorSelect extends OxGristEditor {
3
- get editorTemplate(): import("lit").TemplateResult<1>;
3
+ get editorTemplate(): import("lit-html").TemplateResult<1>;
4
4
  }
@@ -1,37 +1,49 @@
1
1
  import { __decorate } from "tslib";
2
- import { OxGristEditor } from './ox-grist-editor.js';
3
- import { customElement } from 'lit/decorators.js';
4
2
  import { html } from 'lit';
3
+ import { customElement } from 'lit/decorators.js';
4
+ import { until } from 'lit/directives/until.js';
5
+ import { OxGristEditor } from './ox-grist-editor.js';
6
+ function buildOptions(options, value) {
7
+ const selectOptionObjects = options.map(option => {
8
+ switch (typeof option) {
9
+ case 'string':
10
+ return {
11
+ display: option,
12
+ value: option
13
+ };
14
+ case 'object':
15
+ return {
16
+ display: option.display || option.name,
17
+ value: option.value
18
+ };
19
+ default:
20
+ return option;
21
+ }
22
+ });
23
+ return html `
24
+ <select>
25
+ ${selectOptionObjects.map((option) => html `
26
+ <option ?selected=${option.value == value} value=${option.value}>${option.display}</option>
27
+ `)}
28
+ </select>
29
+ `;
30
+ }
5
31
  let OxGristEditorSelect = class OxGristEditorSelect extends OxGristEditor {
6
32
  get editorTemplate() {
7
33
  var rowOptionField = this.record[this.column.record.rowOptionField || ''];
8
34
  var { options = [] } = rowOptionField ? rowOptionField : this.column.record;
9
35
  if (typeof options == 'function') {
10
36
  options = options.call(null, this.value, this.column, this.record, this.rowIndex, this.field);
11
- }
12
- options = options.map((option) => {
13
- switch (typeof option) {
14
- case 'string':
15
- return {
16
- display: option,
17
- value: option
18
- };
19
- case 'object':
20
- return {
21
- display: option.display,
22
- value: option.value
23
- };
24
- default:
25
- return option;
37
+ if (options instanceof Promise) {
38
+ return html `${until(options.then(options => buildOptions(options, this.value)))}`;
39
+ }
40
+ else {
41
+ return buildOptions((options || []), rowOptionField.display || this.value);
26
42
  }
27
- });
28
- return html `
29
- <select>
30
- ${options.map((option) => html `
31
- <option ?selected=${option.value == this.value} value=${option.value}>${option.display}</option>
32
- `)}
33
- </select>
34
- `;
43
+ }
44
+ else {
45
+ return buildOptions((options || []), this.value);
46
+ }
35
47
  }
36
48
  };
37
49
  OxGristEditorSelect = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"ox-grist-editor-select.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor-select.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAGnB,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,aAAa;IACpD,IAAI,cAAc;QAChB,IAAI,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,CAAA;QACzE,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA;QAE3E,IAAI,OAAO,OAAO,IAAI,UAAU,EAAE,CAAC;YACjC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QAC/F,CAAC;QAED,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE;YACpC,QAAQ,OAAO,MAAM,EAAE,CAAC;gBACtB,KAAK,QAAQ;oBACX,OAAO;wBACL,OAAO,EAAE,MAAM;wBACf,KAAK,EAAE,MAAM;qBACd,CAAA;gBACH,KAAK,QAAQ;oBACX,OAAO;wBACL,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,KAAK,EAAE,MAAM,CAAC,KAAK;qBACpB,CAAA;gBACH;oBACE,OAAO,MAAM,CAAA;YACjB,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;;UAEL,OAAO,CAAC,GAAG,CACX,CAAC,MAAW,EAAE,EAAE,CAAC,IAAI,CAAA;gCACC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,UAAU,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO;WACvF,CACF;;KAEJ,CAAA;IACH,CAAC;CACF,CAAA;AApCY,mBAAmB;IAD/B,aAAa,CAAC,wBAAwB,CAAC;GAC3B,mBAAmB,CAoC/B","sourcesContent":["import { OxGristEditor } from './ox-grist-editor.js'\nimport { customElement } from 'lit/decorators.js'\nimport { html } from 'lit'\n\n@customElement('ox-grist-editor-select')\nexport class OxGristEditorSelect extends OxGristEditor {\n get editorTemplate() {\n var rowOptionField = this.record[this.column.record.rowOptionField || '']\n var { options = [] } = rowOptionField ? rowOptionField : this.column.record\n\n if (typeof options == 'function') {\n options = options.call(null, this.value, this.column, this.record, this.rowIndex, this.field)\n }\n\n options = options.map((option: any) => {\n switch (typeof option) {\n case 'string':\n return {\n display: option,\n value: option\n }\n case 'object':\n return {\n display: option.display,\n value: option.value\n }\n default:\n return option\n }\n })\n\n return html`\n <select>\n ${options.map(\n (option: any) => html`\n <option ?selected=${option.value == this.value} value=${option.value}>${option.display}</option>\n `\n )}\n </select>\n `\n }\n}\n"]}
1
+ {"version":3,"file":"ox-grist-editor-select.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor-select.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAGpD,SAAS,YAAY,CAAC,OAAuB,EAAE,KAAU;IACvD,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QAC/C,QAAQ,OAAO,MAAM,EAAE,CAAC;YACtB,KAAK,QAAQ;gBACX,OAAO;oBACL,OAAO,EAAE,MAAM;oBACf,KAAK,EAAE,MAAM;iBACd,CAAA;YACH,KAAK,QAAQ;gBACX,OAAO;oBACL,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI;oBACtC,KAAK,EAAE,MAAM,CAAC,KAAK;iBACpB,CAAA;YACH;gBACE,OAAO,MAAM,CAAA;QACjB,CAAC;IACH,CAAC,CAAyB,CAAA;IAE1B,OAAO,IAAI,CAAA;;QAEL,mBAAmB,CAAC,GAAG,CACvB,CAAC,MAAW,EAAE,EAAE,CAAC,IAAI,CAAA;8BACC,MAAM,CAAC,KAAK,IAAI,KAAK,UAAU,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO;SAClF,CACF;;GAEJ,CAAA;AACH,CAAC;AAGM,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,aAAa;IACpD,IAAI,cAAc;QAChB,IAAI,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,CAAA;QACzE,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA;QAE3E,IAAI,OAAO,OAAO,IAAI,UAAU,EAAE,CAAC;YACjC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;YAE7F,IAAI,OAAO,YAAY,OAAO,EAAE,CAAC;gBAC/B,OAAO,IAAI,CAAA,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;YACnF,CAAC;iBAAM,CAAC;gBACN,OAAO,YAAY,CAAC,CAAC,OAAO,IAAI,EAAE,CAAmB,EAAE,cAAc,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;YAC9F,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,YAAY,CAAC,CAAC,OAAO,IAAI,EAAE,CAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QACpE,CAAC;IACH,CAAC;CACF,CAAA;AAjBY,mBAAmB;IAD/B,aAAa,CAAC,wBAAwB,CAAC;GAC3B,mBAAmB,CAiB/B","sourcesContent":["import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { until } from 'lit/directives/until.js'\n\nimport { OxGristEditor } from './ox-grist-editor.js'\nimport { SelectOption, SelectOptionObject } from '../types.js'\n\nfunction buildOptions(options: SelectOption[], value: any) {\n const selectOptionObjects = options.map(option => {\n switch (typeof option) {\n case 'string':\n return {\n display: option,\n value: option\n }\n case 'object':\n return {\n display: option.display || option.name,\n value: option.value\n }\n default:\n return option\n }\n }) as SelectOptionObject[]\n\n return html`\n <select>\n ${selectOptionObjects.map(\n (option: any) => html`\n <option ?selected=${option.value == value} value=${option.value}>${option.display}</option>\n `\n )}\n </select>\n `\n}\n\n@customElement('ox-grist-editor-select')\nexport class OxGristEditorSelect extends OxGristEditor {\n get editorTemplate() {\n var rowOptionField = this.record[this.column.record.rowOptionField || '']\n var { options = [] } = rowOptionField ? rowOptionField : this.column.record\n\n if (typeof options == 'function') {\n options = options.call(null, this.value, this.column, this.record, this.rowIndex, this.field)\n\n if (options instanceof Promise) {\n return html`${until(options.then(options => buildOptions(options, this.value)))}`\n } else {\n return buildOptions((options || []) as SelectOption[], rowOptionField.display || this.value)\n }\n } else {\n return buildOptions((options || []) as SelectOption[], this.value)\n }\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
1
  import { OxGristEditor } from './ox-grist-editor.js';
2
2
  export declare class OxGristEditorTel extends OxGristEditor {
3
- get editorTemplate(): import("lit").TemplateResult<1>;
3
+ get editorTemplate(): import("lit-html").TemplateResult<1>;
4
4
  }
@@ -1,4 +1,5 @@
1
1
  import { OxGristEditor } from './ox-grist-editor.js';
2
2
  export declare class OxGristEditorText extends OxGristEditor {
3
- get editorTemplate(): import("lit").TemplateResult<1>;
3
+ get inlineEditable(): boolean;
4
+ get editorTemplate(): import("lit-html").TemplateResult<1>;
4
5
  }
@@ -3,6 +3,9 @@ import { OxGristEditor } from './ox-grist-editor.js';
3
3
  import { customElement } from 'lit/decorators.js';
4
4
  import { html } from 'lit';
5
5
  let OxGristEditorText = class OxGristEditorText extends OxGristEditor {
6
+ get inlineEditable() {
7
+ return true;
8
+ }
6
9
  get editorTemplate() {
7
10
  return html ` <input type="text" .value=${this.value} /> `;
8
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ox-grist-editor-text.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor-text.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAGnB,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,aAAa;IAClD,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA,8BAA8B,IAAI,CAAC,KAAK,MAAM,CAAA;IAC3D,CAAC;CACF,CAAA;AAJY,iBAAiB;IAD7B,aAAa,CAAC,sBAAsB,CAAC;GACzB,iBAAiB,CAI7B","sourcesContent":["import { OxGristEditor } from './ox-grist-editor.js'\nimport { customElement } from 'lit/decorators.js'\nimport { html } from 'lit'\n\n@customElement('ox-grist-editor-text')\nexport class OxGristEditorText extends OxGristEditor {\n get editorTemplate() {\n return html` <input type=\"text\" .value=${this.value} /> `\n }\n}\n"]}
1
+ {"version":3,"file":"ox-grist-editor-text.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor-text.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAGnB,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,aAAa;IAClD,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA,8BAA8B,IAAI,CAAC,KAAK,MAAM,CAAA;IAC3D,CAAC;CACF,CAAA;AARY,iBAAiB;IAD7B,aAAa,CAAC,sBAAsB,CAAC;GACzB,iBAAiB,CAQ7B","sourcesContent":["import { OxGristEditor } from './ox-grist-editor.js'\nimport { customElement } from 'lit/decorators.js'\nimport { html } from 'lit'\n\n@customElement('ox-grist-editor-text')\nexport class OxGristEditorText extends OxGristEditor {\n get inlineEditable() {\n return true\n }\n\n get editorTemplate() {\n return html` <input type=\"text\" .value=${this.value} /> `\n }\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import '@operato/input/ox-input-textarea.js';
2
2
  import { OxGristEditor } from './ox-grist-editor.js';
3
3
  export declare class OxGristEditorTextarea extends OxGristEditor {
4
- get editorTemplate(): import("lit").TemplateResult<1>;
4
+ get inlineEditable(): boolean;
5
+ get editorTemplate(): import("lit-html").TemplateResult<1>;
5
6
  }
@@ -4,6 +4,9 @@ import { OxGristEditor } from './ox-grist-editor.js';
4
4
  import { customElement } from 'lit/decorators.js';
5
5
  import { html } from 'lit';
6
6
  let OxGristEditorTextarea = class OxGristEditorTextarea extends OxGristEditor {
7
+ get inlineEditable() {
8
+ return true;
9
+ }
7
10
  get editorTemplate() {
8
11
  return html ` <ox-input-textarea .value=${this.value}></ox-input-textarea> `;
9
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ox-grist-editor-textarea.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor-textarea.ts"],"names":[],"mappings":";AAAA,OAAO,qCAAqC,CAAA;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAGnB,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,aAAa;IACtD,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA,8BAA8B,IAAI,CAAC,KAAK,wBAAwB,CAAA;IAC7E,CAAC;CACF,CAAA;AAJY,qBAAqB;IADjC,aAAa,CAAC,0BAA0B,CAAC;GAC7B,qBAAqB,CAIjC","sourcesContent":["import '@operato/input/ox-input-textarea.js'\n\nimport { OxGristEditor } from './ox-grist-editor.js'\nimport { customElement } from 'lit/decorators.js'\nimport { html } from 'lit'\n\n@customElement('ox-grist-editor-textarea')\nexport class OxGristEditorTextarea extends OxGristEditor {\n get editorTemplate() {\n return html` <ox-input-textarea .value=${this.value}></ox-input-textarea> `\n }\n}\n"]}
1
+ {"version":3,"file":"ox-grist-editor-textarea.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor-textarea.ts"],"names":[],"mappings":";AAAA,OAAO,qCAAqC,CAAA;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAGnB,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,aAAa;IACtD,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA,8BAA8B,IAAI,CAAC,KAAK,wBAAwB,CAAA;IAC7E,CAAC;CACF,CAAA;AARY,qBAAqB;IADjC,aAAa,CAAC,0BAA0B,CAAC;GAC7B,qBAAqB,CAQjC","sourcesContent":["import '@operato/input/ox-input-textarea.js'\n\nimport { OxGristEditor } from './ox-grist-editor.js'\nimport { customElement } from 'lit/decorators.js'\nimport { html } from 'lit'\n\n@customElement('ox-grist-editor-textarea')\nexport class OxGristEditorTextarea extends OxGristEditor {\n get inlineEditable() {\n return true\n }\n\n get editorTemplate() {\n return html` <ox-input-textarea .value=${this.value}></ox-input-textarea> `\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
1
  import { OxGristEditor } from './ox-grist-editor.js';
2
2
  export declare class OxGristEditorTime extends OxGristEditor {
3
- get editorTemplate(): import("lit").TemplateResult<1>;
3
+ get editorTemplate(): import("lit-html").TemplateResult<1>;
4
4
  }
@@ -2,5 +2,5 @@ import './ox-input-tree';
2
2
  import { OxGristEditor } from './ox-grist-editor.js';
3
3
  export declare class OxGristEditorTree extends OxGristEditor {
4
4
  static styles: import("lit").CSSResult[];
5
- get editorTemplate(): import("lit").TemplateResult<1>;
5
+ get editorTemplate(): import("lit-html").TemplateResult<1>;
6
6
  }
@@ -1,4 +1,4 @@
1
1
  import { OxGristEditor } from './ox-grist-editor.js';
2
2
  export declare class OxGristEditorWeek extends OxGristEditor {
3
- get editorTemplate(): import("lit").TemplateResult<1>;
3
+ get editorTemplate(): import("lit-html").TemplateResult<1>;
4
4
  }
@@ -10,18 +10,18 @@ export declare class OxGristEditor extends LitElement {
10
10
  field?: DataGridField;
11
11
  row?: number;
12
12
  protected _dirtyValue?: any;
13
- render(): import("lit").TemplateResult<1>;
13
+ render(): import("lit-html").TemplateResult<1>;
14
14
  get editor(): HTMLElement | null;
15
- get directEditable(): boolean;
15
+ get inlineEditable(): boolean;
16
16
  firstUpdated(): Promise<void>;
17
17
  select(): void;
18
18
  focus(): void;
19
19
  formatForEditor(value: any): any;
20
- formatFromEditor(e: Event): any;
20
+ formatFromEditor(value: any): any;
21
21
  _onfocusout(): void;
22
22
  _onchange(e: Event): void;
23
23
  _onkeydown(e: Event): void;
24
24
  _onclick(e: Event): void;
25
25
  _ondblclick(e: Event): void;
26
- get editorTemplate(): import("lit").TemplateResult<1>;
26
+ get editorTemplate(): import("lit-html").TemplateResult<1>;
27
27
  }
@@ -2,7 +2,7 @@ import { __decorate } from "tslib";
2
2
  import { css, html, LitElement } from 'lit';
3
3
  import { customElement, property } from 'lit/decorators.js';
4
4
  import { ZERO_COLUMN, ZERO_RECORD } from '../configure/zero-config';
5
- import { getDefaultValue } from '../value-generator';
5
+ import { getDefaultValue } from '@operato/time-calculator';
6
6
  const STYLE = css `
7
7
  :host {
8
8
  display: flex;
@@ -78,11 +78,11 @@ let OxGristEditor = class OxGristEditor extends LitElement {
78
78
  get editor() {
79
79
  return this.renderRoot.firstElementChild;
80
80
  }
81
- get directEditable() {
82
- return true;
81
+ get inlineEditable() {
82
+ return false;
83
83
  }
84
84
  async firstUpdated() {
85
- var _a, _b;
85
+ var _a;
86
86
  this.renderRoot.addEventListener('change', this._onchange.bind(this));
87
87
  this.renderRoot.addEventListener('focusout', this._onfocusout.bind(this));
88
88
  this.addEventListener('click', this._onclick.bind(this));
@@ -102,18 +102,18 @@ let OxGristEditor = class OxGristEditor extends LitElement {
102
102
  if (typeof currentValue == 'undefined' && defaultValue) {
103
103
  currentValue = getDefaultValue(defaultValue, this.record);
104
104
  }
105
+ this.value = this._dirtyValue = this.formatForEditor(currentValue);
105
106
  // 입력을 위한 키를 누르면서 편집모드가 될때는 누른 키가 처음에 입력되도록, enter 같은 것을 눌러서 편집모드가 되면 현재 값으로 편집모드 전환
106
- const editorValue = ((_a = this.field) === null || _a === void 0 ? void 0 : _a.valueWithEdit) ? this.field.valueWithEdit : this.formatForEditor(currentValue);
107
- this.value = this._dirtyValue = ((_b = this.field) === null || _b === void 0 ? void 0 : _b.type) === 'number' ? Number(editorValue) : editorValue;
107
+ const valueWith = this.inlineEditable && ((_a = this.field) === null || _a === void 0 ? void 0 : _a.valueWith);
108
+ this.value = this._dirtyValue = valueWith ? this.formatFromEditor(valueWith) : this.formatForEditor(currentValue);
108
109
  requestAnimationFrame(() => {
109
110
  this.focus();
110
- this.select();
111
+ !valueWith && this.select();
111
112
  });
112
113
  }
113
114
  select() {
114
- var _a;
115
115
  const editor = this.editor;
116
- if ((editor === null || editor === void 0 ? void 0 : editor.select) && !((_a = this.field) === null || _a === void 0 ? void 0 : _a.valueWithEdit)) {
116
+ if (editor === null || editor === void 0 ? void 0 : editor.select) {
117
117
  return editor.select();
118
118
  }
119
119
  }
@@ -126,8 +126,8 @@ let OxGristEditor = class OxGristEditor extends LitElement {
126
126
  formatForEditor(value) {
127
127
  return value == null ? '' : value;
128
128
  }
129
- formatFromEditor(e) {
130
- return e.target.value;
129
+ formatFromEditor(value) {
130
+ return value;
131
131
  }
132
132
  _onfocusout() {
133
133
  var _a;
@@ -151,8 +151,10 @@ let OxGristEditor = class OxGristEditor extends LitElement {
151
151
  }
152
152
  }
153
153
  _onchange(e) {
154
+ var _a;
154
155
  e.stopPropagation();
155
- this._dirtyValue = this.formatFromEditor(e);
156
+ const value = (_a = e.target) === null || _a === void 0 ? void 0 : _a.value;
157
+ this._dirtyValue = this.formatFromEditor(value);
156
158
  }
157
159
  _onkeydown(e) { }
158
160
  _onclick(e) {
@@ -1 +1 @@
1
- {"version":3,"file":"ox-grist-editor.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, LitElement, PropertyValues } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { ZERO_COLUMN, ZERO_RECORD } from '../configure/zero-config'\nimport { DataGridField } from '../data-grid/data-grid-field'\nimport { ColumnConfig, GristRecord } from '../types'\nimport { getDefaultValue } from '../value-generator'\n\nconst STYLE = css`\n :host {\n display: flex;\n\n align-items: center;\n\n width: 100%;\n height: 100%;\n\n border: 0;\n background-color: transparent;\n\n overflow: hidden;\n justify-content: var(--data-grid-field-justify-content, flex-start);\n }\n\n :host > * {\n display: flex;\n\n width: 100%;\n height: 100%;\n\n border: 0;\n background-color: transparent;\n\n box-sizing: border-box;\n\n align-items: center;\n }\n\n :host > style {\n display: none;\n }\n\n :host > input[type='checkbox'] {\n width: initial;\n margin: 0;\n }\n *:focus {\n outline: none;\n }\n\n input[type='file'] {\n opacity: 0%;\n }\n\n @media screen and (max-width: 460px) {\n :host > * {\n border: initial;\n background-color: initial;\n }\n\n *:focus {\n outline: none;\n }\n\n input,\n select,\n textarea {\n font-size: 16px;\n }\n }\n`\n\n@customElement('ox-grist-editor')\nexport class OxGristEditor extends LitElement {\n static styles = [STYLE]\n\n @property({ type: Object }) value?: any\n @property({ type: Object }) column: ColumnConfig = ZERO_COLUMN\n @property({ type: Object }) record: GristRecord = ZERO_RECORD\n @property({ type: Number }) rowIndex?: number\n @property({ type: Object }) field?: DataGridField\n @property({ type: Number }) row?: number\n\n protected _dirtyValue?: any\n\n render() {\n return this.editorTemplate\n }\n\n get editor(): HTMLElement | null {\n return this.renderRoot.firstElementChild as HTMLElement\n }\n\n get directEditable() {\n return true\n }\n\n async firstUpdated() {\n this.renderRoot.addEventListener('change', this._onchange.bind(this))\n this.renderRoot.addEventListener('focusout', this._onfocusout.bind(this))\n this.addEventListener('click', this._onclick.bind(this))\n this.addEventListener('dblclick', this._ondblclick.bind(this))\n this.addEventListener('keydown', this._onkeydown.bind(this))\n\n /* editor mode 인 경우의 마우스 움직임이, grist-body의 이벤트 처리에 의해서 에디터를 리셋시킬 수 있으므로, 이벤트 전파를 막는다. */\n this.addEventListener('mousedown', (e: Event) => e.stopPropagation())\n this.addEventListener('mousemove', (e: Event) => e.stopPropagation())\n this.addEventListener('mouseup', (e: Event) => e.stopPropagation())\n\n const { name = '' } = this.column\n const { align, defaultValue } = this.column.record\n\n if (align) {\n this.style.textAlign = align\n this.style.textAlignLast = align /* for select */\n }\n\n var currentValue = this.record[name]\n\n if (typeof currentValue == 'undefined' && defaultValue) {\n currentValue = getDefaultValue(defaultValue, this.record)\n }\n\n // 입력을 위한 키를 누르면서 편집모드가 될때는 누른 키가 처음에 입력되도록, enter 같은 것을 눌러서 편집모드가 되면 현재 값으로 편집모드 전환\n const editorValue = this.field?.valueWithEdit ? this.field.valueWithEdit : this.formatForEditor(currentValue)\n this.value = this._dirtyValue = this.field?.type === 'number' ? Number(editorValue) : editorValue\n\n requestAnimationFrame(() => {\n this.focus()\n this.select()\n })\n }\n\n select() {\n const editor = this.editor\n if ((editor as HTMLInputElement)?.select && !this.field?.valueWithEdit) {\n return (editor as HTMLInputElement).select()\n }\n }\n\n focus() {\n const editor = this.editor\n if (editor) {\n editor.focus()\n }\n }\n\n formatForEditor(value: any): any {\n return value == null ? '' : value\n }\n\n formatFromEditor(e: Event): any {\n return (e.target as HTMLInputElement).value\n }\n\n _onfocusout() {\n // paste시 field-change는 Body에서 하므로 X\n if (this.field?.isWorking === true) return\n\n const { name = '' } = this.column\n var currentValue = this.record[name] || ''\n\n if (this._dirtyValue !== currentValue) {\n this.dispatchEvent(\n new CustomEvent('field-change', {\n bubbles: true,\n composed: true,\n detail: {\n before: currentValue,\n after: this._dirtyValue,\n column: this.column,\n record: this.record,\n row: this.row\n }\n })\n )\n }\n }\n\n _onchange(e: Event): void {\n e.stopPropagation()\n\n this._dirtyValue = this.formatFromEditor(e)\n }\n\n _onkeydown(e: Event): void {}\n\n _onclick(e: Event): void {\n e.stopPropagation()\n }\n\n _ondblclick(e: Event): void {\n e.stopPropagation()\n }\n\n get editorTemplate() {\n return html``\n }\n}\n"]}
1
+ {"version":3,"file":"ox-grist-editor.js","sourceRoot":"","sources":["../../../src/editors/ox-grist-editor.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, LitElement, PropertyValues } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { ZERO_COLUMN, ZERO_RECORD } from '../configure/zero-config'\nimport { DataGridField } from '../data-grid/data-grid-field'\nimport { ColumnConfig, GristRecord } from '../types'\nimport { getDefaultValue } from '@operato/time-calculator'\n\nconst STYLE = css`\n :host {\n display: flex;\n\n align-items: center;\n\n width: 100%;\n height: 100%;\n\n border: 0;\n background-color: transparent;\n\n overflow: hidden;\n justify-content: var(--data-grid-field-justify-content, flex-start);\n }\n\n :host > * {\n display: flex;\n\n width: 100%;\n height: 100%;\n\n border: 0;\n background-color: transparent;\n\n box-sizing: border-box;\n\n align-items: center;\n }\n\n :host > style {\n display: none;\n }\n\n :host > input[type='checkbox'] {\n width: initial;\n margin: 0;\n }\n *:focus {\n outline: none;\n }\n\n input[type='file'] {\n opacity: 0%;\n }\n\n @media screen and (max-width: 460px) {\n :host > * {\n border: initial;\n background-color: initial;\n }\n\n *:focus {\n outline: none;\n }\n\n input,\n select,\n textarea {\n font-size: 16px;\n }\n }\n`\n\n@customElement('ox-grist-editor')\nexport class OxGristEditor extends LitElement {\n static styles = [STYLE]\n\n @property({ type: Object }) value?: any\n @property({ type: Object }) column: ColumnConfig = ZERO_COLUMN\n @property({ type: Object }) record: GristRecord = ZERO_RECORD\n @property({ type: Number }) rowIndex?: number\n @property({ type: Object }) field?: DataGridField\n @property({ type: Number }) row?: number\n\n protected _dirtyValue?: any\n\n render() {\n return this.editorTemplate\n }\n\n get editor(): HTMLElement | null {\n return this.renderRoot.firstElementChild as HTMLElement\n }\n\n get inlineEditable() {\n return false\n }\n\n async firstUpdated() {\n this.renderRoot.addEventListener('change', this._onchange.bind(this))\n this.renderRoot.addEventListener('focusout', this._onfocusout.bind(this))\n this.addEventListener('click', this._onclick.bind(this))\n this.addEventListener('dblclick', this._ondblclick.bind(this))\n this.addEventListener('keydown', this._onkeydown.bind(this))\n\n /* editor mode 인 경우의 마우스 움직임이, grist-body의 이벤트 처리에 의해서 에디터를 리셋시킬 수 있으므로, 이벤트 전파를 막는다. */\n this.addEventListener('mousedown', (e: Event) => e.stopPropagation())\n this.addEventListener('mousemove', (e: Event) => e.stopPropagation())\n this.addEventListener('mouseup', (e: Event) => e.stopPropagation())\n\n const { name = '' } = this.column\n const { align, defaultValue } = this.column.record\n\n if (align) {\n this.style.textAlign = align\n this.style.textAlignLast = align /* for select */\n }\n\n var currentValue = this.record[name]\n\n if (typeof currentValue == 'undefined' && defaultValue) {\n currentValue = getDefaultValue(defaultValue, this.record)\n }\n\n this.value = this._dirtyValue = this.formatForEditor(currentValue)\n\n // 입력을 위한 키를 누르면서 편집모드가 될때는 누른 키가 처음에 입력되도록, enter 같은 것을 눌러서 편집모드가 되면 현재 값으로 편집모드 전환\n const valueWith = this.inlineEditable && this.field?.valueWith\n this.value = this._dirtyValue = valueWith ? this.formatFromEditor(valueWith) : this.formatForEditor(currentValue)\n\n requestAnimationFrame(() => {\n this.focus()\n !valueWith && this.select()\n })\n }\n\n select() {\n const editor = this.editor\n if ((editor as HTMLInputElement)?.select) {\n return (editor as HTMLInputElement).select()\n }\n }\n\n focus() {\n const editor = this.editor\n if (editor) {\n editor.focus()\n }\n }\n\n formatForEditor(value: any): any {\n return value == null ? '' : value\n }\n\n formatFromEditor(value: any): any {\n return value\n }\n\n _onfocusout() {\n // paste시 field-change는 Body에서 하므로 X\n if (this.field?.isWorking === true) return\n\n const { name = '' } = this.column\n var currentValue = this.record[name] || ''\n\n if (this._dirtyValue !== currentValue) {\n this.dispatchEvent(\n new CustomEvent('field-change', {\n bubbles: true,\n composed: true,\n detail: {\n before: currentValue,\n after: this._dirtyValue,\n column: this.column,\n record: this.record,\n row: this.row\n }\n })\n )\n }\n }\n\n _onchange(e: Event): void {\n e.stopPropagation()\n\n const value = (e.target as any)?.value\n\n this._dirtyValue = this.formatFromEditor(value)\n }\n\n _onkeydown(e: Event): void {}\n\n _onclick(e: Event): void {\n e.stopPropagation()\n }\n\n _ondblclick(e: Event): void {\n e.stopPropagation()\n }\n\n get editorTemplate() {\n return html``\n }\n}\n"]}
@@ -11,7 +11,7 @@ export declare class OxInputTree extends OxFormField {
11
11
  private checked?;
12
12
  private expanded?;
13
13
  input: HTMLInputElement;
14
- render(): import("lit").TemplateResult<1>;
14
+ render(): import("lit-html").TemplateResult<1>;
15
15
  updated(changes: PropertyValues<this>): void;
16
16
  focus(): void;
17
17
  select(): void;
@@ -1,9 +1,9 @@
1
- import '@material/mwc-icon';
1
+ import '@material/web/icon/icon.js';
2
2
  import { LitElement } from 'lit';
3
3
  export declare class EmptyNote extends LitElement {
4
4
  static styles: import("lit").CSSResult;
5
5
  icon?: string;
6
6
  title: string;
7
7
  description?: string;
8
- render(): import("lit").TemplateResult<1>;
8
+ render(): import("lit-html").TemplateResult<1>;
9
9
  }