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

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 (418) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/src/accumulator/accumulator.d.ts +2 -0
  3. package/dist/src/accumulator/accumulator.js +42 -0
  4. package/dist/src/accumulator/accumulator.js.map +1 -0
  5. package/dist/src/configure/column-builder.d.ts +2 -0
  6. package/dist/src/configure/column-builder.js +99 -0
  7. package/dist/src/configure/column-builder.js.map +1 -0
  8. package/dist/src/configure/config-builder.d.ts +2 -0
  9. package/dist/src/configure/config-builder.js +36 -0
  10. package/dist/src/configure/config-builder.js.map +1 -0
  11. package/dist/src/configure/filters-option-builder.d.ts +2 -0
  12. package/dist/src/configure/filters-option-builder.js +7 -0
  13. package/dist/src/configure/filters-option-builder.js.map +1 -0
  14. package/dist/src/configure/imex-option-builder.d.ts +2 -0
  15. package/dist/src/configure/imex-option-builder.js +4 -0
  16. package/dist/src/configure/imex-option-builder.js.map +1 -0
  17. package/dist/src/configure/list-option-builder.d.ts +2 -0
  18. package/dist/src/configure/list-option-builder.js +8 -0
  19. package/dist/src/configure/list-option-builder.js.map +1 -0
  20. package/dist/src/configure/rows-option-builder.d.ts +2 -0
  21. package/dist/src/configure/rows-option-builder.js +26 -0
  22. package/dist/src/configure/rows-option-builder.js.map +1 -0
  23. package/dist/src/configure/tree-option-builder.d.ts +2 -0
  24. package/dist/src/configure/tree-option-builder.js +18 -0
  25. package/dist/src/configure/tree-option-builder.js.map +1 -0
  26. package/dist/src/configure/zero-config.d.ts +23 -0
  27. package/dist/src/configure/zero-config.js +59 -0
  28. package/dist/src/configure/zero-config.js.map +1 -0
  29. package/dist/src/const.d.ts +1 -0
  30. package/dist/src/const.js +2 -0
  31. package/dist/src/const.js.map +1 -0
  32. package/dist/src/data-card/data-card-field.d.ts +11 -0
  33. package/dist/src/data-card/data-card-field.js +106 -0
  34. package/dist/src/data-card/data-card-field.js.map +1 -0
  35. package/dist/src/data-card/data-card-gutter-menu.d.ts +2 -0
  36. package/dist/src/data-card/data-card-gutter-menu.js +96 -0
  37. package/dist/src/data-card/data-card-gutter-menu.js.map +1 -0
  38. package/dist/src/data-card/data-card-gutter.d.ts +12 -0
  39. package/dist/src/data-card/data-card-gutter.js +116 -0
  40. package/dist/src/data-card/data-card-gutter.js.map +1 -0
  41. package/dist/src/data-card/data-card.d.ts +19 -0
  42. package/dist/src/data-card/data-card.js +149 -0
  43. package/dist/src/data-card/data-card.js.map +1 -0
  44. package/dist/src/data-card/event-handlers/record-card-click-handler.d.ts +7 -0
  45. package/dist/src/data-card/event-handlers/record-card-click-handler.js +29 -0
  46. package/dist/src/data-card/event-handlers/record-card-click-handler.js.map +1 -0
  47. package/dist/src/data-card/event-handlers/record-card-dblclick-handler.d.ts +7 -0
  48. package/dist/src/data-card/event-handlers/record-card-dblclick-handler.js +29 -0
  49. package/dist/src/data-card/event-handlers/record-card-dblclick-handler.js.map +1 -0
  50. package/dist/src/data-card/record-card.d.ts +23 -0
  51. package/dist/src/data-card/record-card.js +288 -0
  52. package/dist/src/data-card/record-card.js.map +1 -0
  53. package/dist/src/data-consumer.d.ts +10 -0
  54. package/dist/src/data-consumer.js +2 -0
  55. package/dist/src/data-consumer.js.map +1 -0
  56. package/dist/src/data-grid/data-grid-accum-field.d.ts +16 -0
  57. package/dist/src/data-grid/data-grid-accum-field.js +133 -0
  58. package/dist/src/data-grid/data-grid-accum-field.js.map +1 -0
  59. package/dist/src/data-grid/data-grid-body-style.d.ts +1 -0
  60. package/dist/src/data-grid/data-grid-body-style.js +99 -0
  61. package/dist/src/data-grid/data-grid-body-style.js.map +1 -0
  62. package/dist/src/data-grid/data-grid-body.d.ts +52 -0
  63. package/dist/src/data-grid/data-grid-body.js +660 -0
  64. package/dist/src/data-grid/data-grid-body.js.map +1 -0
  65. package/dist/src/data-grid/data-grid-field.d.ts +25 -0
  66. package/dist/src/data-grid/data-grid-field.js +263 -0
  67. package/dist/src/data-grid/data-grid-field.js.map +1 -0
  68. package/dist/src/data-grid/data-grid-footer.d.ts +11 -0
  69. package/dist/src/data-grid/data-grid-footer.js +120 -0
  70. package/dist/src/data-grid/data-grid-footer.js.map +1 -0
  71. package/dist/src/data-grid/data-grid-header.d.ts +29 -0
  72. package/dist/src/data-grid/data-grid-header.js +531 -0
  73. package/dist/src/data-grid/data-grid-header.js.map +1 -0
  74. package/dist/src/data-grid/data-grid.d.ts +36 -0
  75. package/dist/src/data-grid/data-grid.js +260 -0
  76. package/dist/src/data-grid/data-grid.js.map +1 -0
  77. package/dist/src/data-grid/event-handlers/data-grid-body-click-handler.d.ts +7 -0
  78. package/dist/src/data-grid/event-handlers/data-grid-body-click-handler.js +57 -0
  79. package/dist/src/data-grid/event-handlers/data-grid-body-click-handler.js.map +1 -0
  80. package/dist/src/data-grid/event-handlers/data-grid-body-contextmenu-handler.d.ts +7 -0
  81. package/dist/src/data-grid/event-handlers/data-grid-body-contextmenu-handler.js +25 -0
  82. package/dist/src/data-grid/event-handlers/data-grid-body-contextmenu-handler.js.map +1 -0
  83. package/dist/src/data-grid/event-handlers/data-grid-body-dblclick-handler.d.ts +7 -0
  84. package/dist/src/data-grid/event-handlers/data-grid-body-dblclick-handler.js +34 -0
  85. package/dist/src/data-grid/event-handlers/data-grid-body-dblclick-handler.js.map +1 -0
  86. package/dist/src/data-grid/event-handlers/data-grid-body-focus-change-handler.d.ts +7 -0
  87. package/dist/src/data-grid/event-handlers/data-grid-body-focus-change-handler.js +19 -0
  88. package/dist/src/data-grid/event-handlers/data-grid-body-focus-change-handler.js.map +1 -0
  89. package/dist/src/data-grid/event-handlers/data-grid-body-keydown-handler.d.ts +7 -0
  90. package/dist/src/data-grid/event-handlers/data-grid-body-keydown-handler.js +226 -0
  91. package/dist/src/data-grid/event-handlers/data-grid-body-keydown-handler.js.map +1 -0
  92. package/dist/src/data-grist.d.ts +367 -0
  93. package/dist/src/data-grist.js +1064 -0
  94. package/dist/src/data-grist.js.map +1 -0
  95. package/dist/src/data-list/data-list-field.d.ts +11 -0
  96. package/dist/src/data-list/data-list-field.js +95 -0
  97. package/dist/src/data-list/data-list-field.js.map +1 -0
  98. package/dist/src/data-list/data-list-gutter.d.ts +12 -0
  99. package/dist/src/data-list/data-list-gutter.js +121 -0
  100. package/dist/src/data-list/data-list-gutter.js.map +1 -0
  101. package/dist/src/data-list/data-list.d.ts +18 -0
  102. package/dist/src/data-list/data-list.js +139 -0
  103. package/dist/src/data-list/data-list.js.map +1 -0
  104. package/dist/src/data-list/event-handlers/record-partial-click-handler.d.ts +7 -0
  105. package/dist/src/data-list/event-handlers/record-partial-click-handler.js +29 -0
  106. package/dist/src/data-list/event-handlers/record-partial-click-handler.js.map +1 -0
  107. package/dist/src/data-list/event-handlers/record-partial-dblclick-handler.d.ts +7 -0
  108. package/dist/src/data-list/event-handlers/record-partial-dblclick-handler.js +29 -0
  109. package/dist/src/data-list/event-handlers/record-partial-dblclick-handler.js.map +1 -0
  110. package/dist/src/data-list/event-handlers/record-partial-long-press-handler.d.ts +7 -0
  111. package/dist/src/data-list/event-handlers/record-partial-long-press-handler.js +29 -0
  112. package/dist/src/data-list/event-handlers/record-partial-long-press-handler.js.map +1 -0
  113. package/dist/src/data-list/record-partial.d.ts +21 -0
  114. package/dist/src/data-list/record-partial.js +252 -0
  115. package/dist/src/data-list/record-partial.js.map +1 -0
  116. package/dist/src/data-manipulator.d.ts +38 -0
  117. package/dist/src/data-manipulator.js +324 -0
  118. package/dist/src/data-manipulator.js.map +1 -0
  119. package/dist/src/data-provider.d.ts +50 -0
  120. package/dist/src/data-provider.js +200 -0
  121. package/dist/src/data-provider.js.map +1 -0
  122. package/dist/src/data-report/data-report-body-style.d.ts +1 -0
  123. package/dist/src/data-report/data-report-body-style.js +58 -0
  124. package/dist/src/data-report/data-report-body-style.js.map +1 -0
  125. package/dist/src/data-report/data-report-body.d.ts +18 -0
  126. package/dist/src/data-report/data-report-body.js +181 -0
  127. package/dist/src/data-report/data-report-body.js.map +1 -0
  128. package/dist/src/data-report/data-report-component.d.ts +21 -0
  129. package/dist/src/data-report/data-report-component.js +138 -0
  130. package/dist/src/data-report/data-report-component.js.map +1 -0
  131. package/dist/src/data-report/data-report-field.d.ts +13 -0
  132. package/dist/src/data-report/data-report-field.js +99 -0
  133. package/dist/src/data-report/data-report-field.js.map +1 -0
  134. package/dist/src/data-report/data-report-header.d.ts +1 -0
  135. package/dist/src/data-report/data-report-header.js +221 -0
  136. package/dist/src/data-report/data-report-header.js.map +1 -0
  137. package/dist/src/data-report/event-handlers/data-report-body-click-handler.d.ts +5 -0
  138. package/dist/src/data-report/event-handlers/data-report-body-click-handler.js +33 -0
  139. package/dist/src/data-report/event-handlers/data-report-body-click-handler.js.map +1 -0
  140. package/dist/src/data-report/event-handlers/data-report-body-dblclick-handler.d.ts +5 -0
  141. package/dist/src/data-report/event-handlers/data-report-body-dblclick-handler.js +19 -0
  142. package/dist/src/data-report/event-handlers/data-report-body-dblclick-handler.js.map +1 -0
  143. package/dist/src/data-report/event-handlers/data-report-body-keydown-handler.d.ts +5 -0
  144. package/dist/src/data-report/event-handlers/data-report-body-keydown-handler.js +58 -0
  145. package/dist/src/data-report/event-handlers/data-report-body-keydown-handler.js.map +1 -0
  146. package/dist/src/data-report.d.ts +44 -0
  147. package/dist/src/data-report.js +386 -0
  148. package/dist/src/data-report.js.map +1 -0
  149. package/dist/src/editors/index.d.ts +3 -0
  150. package/dist/src/editors/index.js +4 -0
  151. package/dist/src/editors/index.js.map +1 -0
  152. package/dist/src/editors/ox-grist-editor-checkbox.d.ts +7 -0
  153. package/dist/src/editors/ox-grist-editor-checkbox.js +27 -0
  154. package/dist/src/editors/ox-grist-editor-checkbox.js.map +1 -0
  155. package/dist/src/editors/ox-grist-editor-color.d.ts +4 -0
  156. package/dist/src/editors/ox-grist-editor-color.js +14 -0
  157. package/dist/src/editors/ox-grist-editor-color.js.map +1 -0
  158. package/dist/src/editors/ox-grist-editor-date.d.ts +4 -0
  159. package/dist/src/editors/ox-grist-editor-date.js +14 -0
  160. package/dist/src/editors/ox-grist-editor-date.js.map +1 -0
  161. package/dist/src/editors/ox-grist-editor-datetime.d.ts +6 -0
  162. package/dist/src/editors/ox-grist-editor-datetime.js +26 -0
  163. package/dist/src/editors/ox-grist-editor-datetime.js.map +1 -0
  164. package/dist/src/editors/ox-grist-editor-email.d.ts +4 -0
  165. package/dist/src/editors/ox-grist-editor-email.js +14 -0
  166. package/dist/src/editors/ox-grist-editor-email.js.map +1 -0
  167. package/dist/src/editors/ox-grist-editor-file.d.ts +6 -0
  168. package/dist/src/editors/ox-grist-editor-file.js +25 -0
  169. package/dist/src/editors/ox-grist-editor-file.js.map +1 -0
  170. package/dist/src/editors/ox-grist-editor-image.d.ts +7 -0
  171. package/dist/src/editors/ox-grist-editor-image.js +31 -0
  172. package/dist/src/editors/ox-grist-editor-image.js.map +1 -0
  173. package/dist/src/editors/ox-grist-editor-month.d.ts +4 -0
  174. package/dist/src/editors/ox-grist-editor-month.js +14 -0
  175. package/dist/src/editors/ox-grist-editor-month.js.map +1 -0
  176. package/dist/src/editors/ox-grist-editor-multiple-select.d.ts +8 -0
  177. package/dist/src/editors/ox-grist-editor-multiple-select.js +52 -0
  178. package/dist/src/editors/ox-grist-editor-multiple-select.js.map +1 -0
  179. package/dist/src/editors/ox-grist-editor-number.d.ts +6 -0
  180. package/dist/src/editors/ox-grist-editor-number.js +27 -0
  181. package/dist/src/editors/ox-grist-editor-number.js.map +1 -0
  182. package/dist/src/editors/ox-grist-editor-password.d.ts +4 -0
  183. package/dist/src/editors/ox-grist-editor-password.js +14 -0
  184. package/dist/src/editors/ox-grist-editor-password.js.map +1 -0
  185. package/dist/src/editors/ox-grist-editor-select.d.ts +4 -0
  186. package/dist/src/editors/ox-grist-editor-select.js +53 -0
  187. package/dist/src/editors/ox-grist-editor-select.js.map +1 -0
  188. package/dist/src/editors/ox-grist-editor-tel.d.ts +4 -0
  189. package/dist/src/editors/ox-grist-editor-tel.js +14 -0
  190. package/dist/src/editors/ox-grist-editor-tel.js.map +1 -0
  191. package/dist/src/editors/ox-grist-editor-text.d.ts +5 -0
  192. package/dist/src/editors/ox-grist-editor-text.js +17 -0
  193. package/dist/src/editors/ox-grist-editor-text.js.map +1 -0
  194. package/dist/src/editors/ox-grist-editor-textarea.d.ts +6 -0
  195. package/dist/src/editors/ox-grist-editor-textarea.js +18 -0
  196. package/dist/src/editors/ox-grist-editor-textarea.js.map +1 -0
  197. package/dist/src/editors/ox-grist-editor-time.d.ts +4 -0
  198. package/dist/src/editors/ox-grist-editor-time.js +14 -0
  199. package/dist/src/editors/ox-grist-editor-time.js.map +1 -0
  200. package/dist/src/editors/ox-grist-editor-tree.d.ts +6 -0
  201. package/dist/src/editors/ox-grist-editor-tree.js +27 -0
  202. package/dist/src/editors/ox-grist-editor-tree.js.map +1 -0
  203. package/dist/src/editors/ox-grist-editor-varname.d.ts +6 -0
  204. package/dist/src/editors/ox-grist-editor-varname.js +36 -0
  205. package/dist/src/editors/ox-grist-editor-varname.js.map +1 -0
  206. package/dist/src/editors/ox-grist-editor-week.d.ts +4 -0
  207. package/dist/src/editors/ox-grist-editor-week.js +14 -0
  208. package/dist/src/editors/ox-grist-editor-week.js.map +1 -0
  209. package/dist/src/editors/ox-grist-editor.d.ts +27 -0
  210. package/dist/src/editors/ox-grist-editor.js +197 -0
  211. package/dist/src/editors/ox-grist-editor.js.map +1 -0
  212. package/dist/src/editors/ox-input-tree.d.ts +20 -0
  213. package/dist/src/editors/ox-input-tree.js +221 -0
  214. package/dist/src/editors/ox-input-tree.js.map +1 -0
  215. package/dist/src/editors/registry.d.ts +12 -0
  216. package/dist/src/editors/registry.js +71 -0
  217. package/dist/src/editors/registry.js.map +1 -0
  218. package/dist/src/empty-note.d.ts +9 -0
  219. package/dist/src/empty-note.js +53 -0
  220. package/dist/src/empty-note.js.map +1 -0
  221. package/dist/src/filters/filter-checkbox.d.ts +3 -0
  222. package/dist/src/filters/filter-checkbox.js +41 -0
  223. package/dist/src/filters/filter-checkbox.js.map +1 -0
  224. package/dist/src/filters/filter-input-barcode.d.ts +3 -0
  225. package/dist/src/filters/filter-input-barcode.js +28 -0
  226. package/dist/src/filters/filter-input-barcode.js.map +1 -0
  227. package/dist/src/filters/filter-input.d.ts +2 -0
  228. package/dist/src/filters/filter-input.js +25 -0
  229. package/dist/src/filters/filter-input.js.map +1 -0
  230. package/dist/src/filters/filter-range-date.d.ts +2 -0
  231. package/dist/src/filters/filter-range-date.js +66 -0
  232. package/dist/src/filters/filter-range-date.js.map +1 -0
  233. package/dist/src/filters/filter-range-number.d.ts +2 -0
  234. package/dist/src/filters/filter-range-number.js +54 -0
  235. package/dist/src/filters/filter-range-number.js.map +1 -0
  236. package/dist/src/filters/filter-select-buttons.d.ts +3 -0
  237. package/dist/src/filters/filter-select-buttons.js +50 -0
  238. package/dist/src/filters/filter-select-buttons.js.map +1 -0
  239. package/dist/src/filters/filter-select.d.ts +3 -0
  240. package/dist/src/filters/filter-select.js +52 -0
  241. package/dist/src/filters/filter-select.js.map +1 -0
  242. package/dist/src/filters/filter-styles.d.ts +1 -0
  243. package/dist/src/filters/filter-styles.js +119 -0
  244. package/dist/src/filters/filter-styles.js.map +1 -0
  245. package/dist/src/filters/filters-form.d.ts +40 -0
  246. package/dist/src/filters/filters-form.js +430 -0
  247. package/dist/src/filters/filters-form.js.map +1 -0
  248. package/dist/src/filters/index.d.ts +8 -0
  249. package/dist/src/filters/index.js +9 -0
  250. package/dist/src/filters/index.js.map +1 -0
  251. package/dist/src/filters/registry.d.ts +7 -0
  252. package/dist/src/filters/registry.js +48 -0
  253. package/dist/src/filters/registry.js.map +1 -0
  254. package/dist/src/formatters/date-formatter.d.ts +1 -0
  255. package/dist/src/formatters/date-formatter.js +4 -0
  256. package/dist/src/formatters/date-formatter.js.map +1 -0
  257. package/dist/src/formatters/index.d.ts +1 -0
  258. package/dist/src/formatters/index.js +2 -0
  259. package/dist/src/formatters/index.js.map +1 -0
  260. package/dist/src/formatters/number-formatter.d.ts +1 -0
  261. package/dist/src/formatters/number-formatter.js +4 -0
  262. package/dist/src/formatters/number-formatter.js.map +1 -0
  263. package/dist/src/formatters/registry.d.ts +6 -0
  264. package/dist/src/formatters/registry.js +25 -0
  265. package/dist/src/formatters/registry.js.map +1 -0
  266. package/dist/src/formatters/text-formatter.d.ts +1 -0
  267. package/dist/src/formatters/text-formatter.js +4 -0
  268. package/dist/src/formatters/text-formatter.js.map +1 -0
  269. package/dist/src/gutters/gutter-button.d.ts +21 -0
  270. package/dist/src/gutters/gutter-button.js +40 -0
  271. package/dist/src/gutters/gutter-button.js.map +1 -0
  272. package/dist/src/gutters/gutter-dirty.d.ts +23 -0
  273. package/dist/src/gutters/gutter-dirty.js +87 -0
  274. package/dist/src/gutters/gutter-dirty.js.map +1 -0
  275. package/dist/src/gutters/gutter-row-selector.d.ts +21 -0
  276. package/dist/src/gutters/gutter-row-selector.js +70 -0
  277. package/dist/src/gutters/gutter-row-selector.js.map +1 -0
  278. package/dist/src/gutters/gutter-sequence.d.ts +35 -0
  279. package/dist/src/gutters/gutter-sequence.js +48 -0
  280. package/dist/src/gutters/gutter-sequence.js.map +1 -0
  281. package/dist/src/gutters/index.d.ts +1 -0
  282. package/dist/src/gutters/index.js +2 -0
  283. package/dist/src/gutters/index.js.map +1 -0
  284. package/dist/src/gutters/registry.d.ts +7 -0
  285. package/dist/src/gutters/registry.js +26 -0
  286. package/dist/src/gutters/registry.js.map +1 -0
  287. package/dist/src/handlers/contextmenu-tree-mutation.d.ts +3 -0
  288. package/dist/src/handlers/contextmenu-tree-mutation.js +64 -0
  289. package/dist/src/handlers/contextmenu-tree-mutation.js.map +1 -0
  290. package/dist/src/handlers/index.d.ts +1 -0
  291. package/dist/src/handlers/index.js +2 -0
  292. package/dist/src/handlers/index.js.map +1 -0
  293. package/dist/src/handlers/move-down.d.ts +3 -0
  294. package/dist/src/handlers/move-down.js +26 -0
  295. package/dist/src/handlers/move-down.js.map +1 -0
  296. package/dist/src/handlers/move-up.d.ts +3 -0
  297. package/dist/src/handlers/move-up.js +26 -0
  298. package/dist/src/handlers/move-up.js.map +1 -0
  299. package/dist/src/handlers/record-copy.d.ts +3 -0
  300. package/dist/src/handlers/record-copy.js +23 -0
  301. package/dist/src/handlers/record-copy.js.map +1 -0
  302. package/dist/src/handlers/record-delete.d.ts +3 -0
  303. package/dist/src/handlers/record-delete.js +16 -0
  304. package/dist/src/handlers/record-delete.js.map +1 -0
  305. package/dist/src/handlers/record-view-handler.d.ts +3 -0
  306. package/dist/src/handlers/record-view-handler.js +15 -0
  307. package/dist/src/handlers/record-view-handler.js.map +1 -0
  308. package/dist/src/handlers/registry.d.ts +7 -0
  309. package/dist/src/handlers/registry.js +34 -0
  310. package/dist/src/handlers/registry.js.map +1 -0
  311. package/dist/src/handlers/select-row-toggle.d.ts +3 -0
  312. package/dist/src/handlers/select-row-toggle.js +18 -0
  313. package/dist/src/handlers/select-row-toggle.js.map +1 -0
  314. package/dist/src/handlers/select-row.d.ts +3 -0
  315. package/dist/src/handlers/select-row.js +14 -0
  316. package/dist/src/handlers/select-row.js.map +1 -0
  317. package/dist/src/index.d.ts +14 -0
  318. package/dist/src/index.js +15 -0
  319. package/dist/src/index.js.map +1 -0
  320. package/dist/src/personalizer/index.d.ts +1 -0
  321. package/dist/src/personalizer/index.js +2 -0
  322. package/dist/src/personalizer/index.js.map +1 -0
  323. package/dist/src/personalizer/ox-grist-filter-personalizer.d.ts +8 -0
  324. package/dist/src/personalizer/ox-grist-filter-personalizer.js +178 -0
  325. package/dist/src/personalizer/ox-grist-filter-personalizer.js.map +1 -0
  326. package/dist/src/personalizer/ox-grist-personalizer.d.ts +8 -0
  327. package/dist/src/personalizer/ox-grist-personalizer.js +212 -0
  328. package/dist/src/personalizer/ox-grist-personalizer.js.map +1 -0
  329. package/dist/src/record-view/event-handlers/record-view-body-click-handler.d.ts +7 -0
  330. package/dist/src/record-view/event-handlers/record-view-body-click-handler.js +27 -0
  331. package/dist/src/record-view/event-handlers/record-view-body-click-handler.js.map +1 -0
  332. package/dist/src/record-view/event-handlers/record-view-body-keydown-handler.d.ts +7 -0
  333. package/dist/src/record-view/event-handlers/record-view-body-keydown-handler.js +22 -0
  334. package/dist/src/record-view/event-handlers/record-view-body-keydown-handler.js.map +1 -0
  335. package/dist/src/record-view/index.d.ts +2 -0
  336. package/dist/src/record-view/index.js +3 -0
  337. package/dist/src/record-view/index.js.map +1 -0
  338. package/dist/src/record-view/ox-record-creator.d.ts +26 -0
  339. package/dist/src/record-view/ox-record-creator.js +247 -0
  340. package/dist/src/record-view/ox-record-creator.js.map +1 -0
  341. package/dist/src/record-view/record-view-body.d.ts +21 -0
  342. package/dist/src/record-view/record-view-body.js +252 -0
  343. package/dist/src/record-view/record-view-body.js.map +1 -0
  344. package/dist/src/record-view/record-view-handler.d.ts +9 -0
  345. package/dist/src/record-view/record-view-handler.js +57 -0
  346. package/dist/src/record-view/record-view-handler.js.map +1 -0
  347. package/dist/src/record-view/record-view.d.ts +23 -0
  348. package/dist/src/record-view/record-view.js +117 -0
  349. package/dist/src/record-view/record-view.js.map +1 -0
  350. package/dist/src/renderers/index.d.ts +13 -0
  351. package/dist/src/renderers/index.js +14 -0
  352. package/dist/src/renderers/index.js.map +1 -0
  353. package/dist/src/renderers/ox-grist-renderer-boolean.d.ts +2 -0
  354. package/dist/src/renderers/ox-grist-renderer-boolean.js +39 -0
  355. package/dist/src/renderers/ox-grist-renderer-boolean.js.map +1 -0
  356. package/dist/src/renderers/ox-grist-renderer-color.d.ts +2 -0
  357. package/dist/src/renderers/ox-grist-renderer-color.js +12 -0
  358. package/dist/src/renderers/ox-grist-renderer-color.js.map +1 -0
  359. package/dist/src/renderers/ox-grist-renderer-date.d.ts +2 -0
  360. package/dist/src/renderers/ox-grist-renderer-date.js +53 -0
  361. package/dist/src/renderers/ox-grist-renderer-date.js.map +1 -0
  362. package/dist/src/renderers/ox-grist-renderer-file.d.ts +2 -0
  363. package/dist/src/renderers/ox-grist-renderer-file.js +27 -0
  364. package/dist/src/renderers/ox-grist-renderer-file.js.map +1 -0
  365. package/dist/src/renderers/ox-grist-renderer-image.d.ts +2 -0
  366. package/dist/src/renderers/ox-grist-renderer-image.js +24 -0
  367. package/dist/src/renderers/ox-grist-renderer-image.js.map +1 -0
  368. package/dist/src/renderers/ox-grist-renderer-json5.d.ts +2 -0
  369. package/dist/src/renderers/ox-grist-renderer-json5.js +30 -0
  370. package/dist/src/renderers/ox-grist-renderer-json5.js.map +1 -0
  371. package/dist/src/renderers/ox-grist-renderer-link.d.ts +2 -0
  372. package/dist/src/renderers/ox-grist-renderer-link.js +12 -0
  373. package/dist/src/renderers/ox-grist-renderer-link.js.map +1 -0
  374. package/dist/src/renderers/ox-grist-renderer-password.d.ts +2 -0
  375. package/dist/src/renderers/ox-grist-renderer-password.js +5 -0
  376. package/dist/src/renderers/ox-grist-renderer-password.js.map +1 -0
  377. package/dist/src/renderers/ox-grist-renderer-progress.d.ts +5 -0
  378. package/dist/src/renderers/ox-grist-renderer-progress.js +46 -0
  379. package/dist/src/renderers/ox-grist-renderer-progress.js.map +1 -0
  380. package/dist/src/renderers/ox-grist-renderer-select.d.ts +2 -0
  381. package/dist/src/renderers/ox-grist-renderer-select.js +50 -0
  382. package/dist/src/renderers/ox-grist-renderer-select.js.map +1 -0
  383. package/dist/src/renderers/ox-grist-renderer-text.d.ts +2 -0
  384. package/dist/src/renderers/ox-grist-renderer-text.js +11 -0
  385. package/dist/src/renderers/ox-grist-renderer-text.js.map +1 -0
  386. package/dist/src/renderers/ox-grist-renderer-textarea.d.ts +2 -0
  387. package/dist/src/renderers/ox-grist-renderer-textarea.js +5 -0
  388. package/dist/src/renderers/ox-grist-renderer-textarea.js.map +1 -0
  389. package/dist/src/renderers/ox-grist-renderer-tree.d.ts +12 -0
  390. package/dist/src/renderers/ox-grist-renderer-tree.js +183 -0
  391. package/dist/src/renderers/ox-grist-renderer-tree.js.map +1 -0
  392. package/dist/src/renderers/ox-grist-renderer.d.ts +15 -0
  393. package/dist/src/renderers/ox-grist-renderer.js +48 -0
  394. package/dist/src/renderers/ox-grist-renderer.js.map +1 -0
  395. package/dist/src/renderers/registry.d.ts +12 -0
  396. package/dist/src/renderers/registry.js +70 -0
  397. package/dist/src/renderers/registry.js.map +1 -0
  398. package/dist/src/sorters/sorters-control.d.ts +12 -0
  399. package/dist/src/sorters/sorters-control.js +138 -0
  400. package/dist/src/sorters/sorters-control.js.map +1 -0
  401. package/dist/src/types.d.ts +696 -0
  402. package/dist/src/types.js +23 -0
  403. package/dist/src/types.js.map +1 -0
  404. package/dist/src/utils/index.d.ts +2 -0
  405. package/dist/src/utils/index.js +3 -0
  406. package/dist/src/utils/index.js.map +1 -0
  407. package/dist/src/utils/list-param.d.ts +16 -0
  408. package/dist/src/utils/list-param.js +40 -0
  409. package/dist/src/utils/list-param.js.map +1 -0
  410. package/dist/src/utils/supports-passive.d.ts +1 -0
  411. package/dist/src/utils/supports-passive.js +13 -0
  412. package/dist/src/utils/supports-passive.js.map +1 -0
  413. package/dist/tsconfig.tsbuildinfo +1 -1
  414. package/package.json +4 -4
  415. package/dist/index.d.ts +0 -1
  416. package/dist/index.js +0 -2
  417. package/dist/index.js.map +0 -1
  418. package/index.ts +0 -1
@@ -0,0 +1,41 @@
1
+ import '@operato/input/ox-checkbox.js';
2
+ import { html } from 'lit-html';
3
+ export const FilterCheckbox = (column, value, owner) => {
4
+ const { name, header, label, filter } = column;
5
+ const { label: filterLabel, operator } = filter;
6
+ const labelText = filterLabel !== undefined
7
+ ? filterLabel
8
+ : typeof label === 'object' && label.renderer
9
+ ? label.renderer(column)
10
+ : header.renderer(column) || name;
11
+ // 텍스트 형태로 받았을시 의도가 boolean이면 boolean 타입으로 변환
12
+ if (value === 'false') {
13
+ value = false;
14
+ }
15
+ else if (value === 'true') {
16
+ value = true;
17
+ }
18
+ return html `
19
+ <ox-checkbox
20
+ name=${column.name}
21
+ ?checked=${value}
22
+ indeterminatable
23
+ ?indeterminate=${value === undefined}
24
+ left-label
25
+ @change=${(e) => {
26
+ ;
27
+ e.target.dispatchEvent(new CustomEvent('filter-change', {
28
+ bubbles: true,
29
+ composed: true,
30
+ detail: {
31
+ name,
32
+ operator,
33
+ value: e.target.checked
34
+ }
35
+ }));
36
+ }}
37
+ ><label filter-title><span>${labelText}</span></label></ox-checkbox
38
+ >
39
+ `;
40
+ };
41
+ //# sourceMappingURL=filter-checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-checkbox.js","sourceRoot":"","sources":["../../../src/filters/filter-checkbox.ts"],"names":[],"mappings":"AAAA,OAAO,+BAA+B,CAAA;AAEtC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAI/B,MAAM,CAAC,MAAM,cAAc,GAAyB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IAC3E,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IAE9C,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,MAA6B,CAAA;IAEtE,MAAM,SAAS,GACb,WAAW,KAAK,SAAS;QACvB,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ;YAC3C,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YACxB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAA;IAEvC,6CAA6C;IAC7C,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;SAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QAC5B,KAAK,GAAG,IAAI,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAA;;aAEA,MAAM,CAAC,IAAI;iBACP,KAAK;;uBAEC,KAAK,KAAK,SAAS;;gBAE1B,CAAC,CAAc,EAAE,EAAE;QAC3B,CAAC;QAAC,CAAC,CAAC,MAAsB,CAAC,aAAa,CACtC,IAAI,WAAW,CAAC,eAAe,EAAE;YAC/B,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACN,IAAI;gBACJ,QAAQ;gBACR,KAAK,EAAG,CAAC,CAAC,MAAqD,CAAC,OAAO;aACxE;SACF,CAAC,CACH,CAAA;IACH,CAAC;mCAC4B,SAAS;;GAEzC,CAAA;AACH,CAAC,CAAA","sourcesContent":["import '@operato/input/ox-checkbox.js'\n\nimport { html } from 'lit-html'\n\nimport { FilterConfigObject, FilterSelectRenderer } from '../types.js'\n\nexport const FilterCheckbox: FilterSelectRenderer = (column, value, owner) => {\n const { name, header, label, filter } = column\n\n const { label: filterLabel, operator } = filter! as FilterConfigObject\n\n const labelText =\n filterLabel !== undefined\n ? filterLabel\n : typeof label === 'object' && label.renderer\n ? label.renderer(column)\n : header.renderer(column) || name\n\n // 텍스트 형태로 받았을시 의도가 boolean이면 boolean 타입으로 변환\n if (value === 'false') {\n value = false;\n } else if (value === 'true') {\n value = true;\n }\n\n return html`\n <ox-checkbox\n name=${column.name}\n ?checked=${value}\n indeterminatable\n ?indeterminate=${value === undefined}\n left-label\n @change=${(e: CustomEvent) => {\n ;(e.target as HTMLElement).dispatchEvent(\n new CustomEvent('filter-change', {\n bubbles: true,\n composed: true,\n detail: {\n name,\n operator,\n value: (e.target as Element & { checked: boolean | undefined }).checked\n }\n })\n )\n }}\n ><label filter-title><span>${labelText}</span></label></ox-checkbox\n >\n `\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import '@operato/input/ox-input-barcode.js';
2
+ import { FilterSelectRenderer } from '../types.js';
3
+ export declare const FilterInputBarcode: FilterSelectRenderer;
@@ -0,0 +1,28 @@
1
+ import '@operato/input/ox-input-barcode.js';
2
+ import { html } from 'lit-html';
3
+ export const FilterInputBarcode = (column, value, owner) => {
4
+ const filter = column.filter;
5
+ const { englishOnly, selectAfterChange } = filter.options || {};
6
+ return html `
7
+ <ox-input-barcode
8
+ name=${column.name}
9
+ ?english-only=${englishOnly}
10
+ ?select-after-change=${selectAfterChange}
11
+ .value=${value == null ? '' : value}
12
+ @change=${(e) => {
13
+ const input = e.target;
14
+ input.dispatchEvent(new CustomEvent('filter-change', {
15
+ bubbles: true,
16
+ composed: true,
17
+ detail: {
18
+ name: column.name,
19
+ operator: filter.operator,
20
+ value: input.value
21
+ }
22
+ }));
23
+ }}
24
+ filter-input
25
+ ></ox-input-barcode>
26
+ `;
27
+ };
28
+ //# sourceMappingURL=filter-input-barcode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-input-barcode.js","sourceRoot":"","sources":["../../../src/filters/filter-input-barcode.ts"],"names":[],"mappings":"AAAA,OAAO,oCAAoC,CAAA;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAI/B,MAAM,CAAC,MAAM,kBAAkB,GAAyB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IAC/E,MAAM,MAAM,GAAG,MAAM,CAAC,MAA4B,CAAA;IAClD,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;IAE/D,OAAO,IAAI,CAAA;;aAEA,MAAM,CAAC,IAAI;sBACF,WAAW;6BACJ,iBAAiB;eAC/B,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;gBACzB,CAAC,CAAc,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,CAAC,CAAC,MAA0B,CAAA;QAC1C,KAAK,CAAC,aAAa,CACjB,IAAI,WAAW,CAAC,eAAe,EAAE;YAC/B,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,KAAK,EAAE,KAAK,CAAC,KAAK;aACnB;SACF,CAAC,CACH,CAAA;IACH,CAAC;;;GAGJ,CAAA;AACH,CAAC,CAAA","sourcesContent":["import '@operato/input/ox-input-barcode.js'\n\nimport { html } from 'lit-html'\n\nimport { FilterConfigObject, FilterSelectRenderer } from '../types.js'\n\nexport const FilterInputBarcode: FilterSelectRenderer = (column, value, owner) => {\n const filter = column.filter as FilterConfigObject\n const { englishOnly, selectAfterChange } = filter.options || {}\n\n return html`\n <ox-input-barcode\n name=${column.name}\n ?english-only=${englishOnly}\n ?select-after-change=${selectAfterChange}\n .value=${value == null ? '' : value}\n @change=${(e: CustomEvent) => {\n const input = e.target as HTMLInputElement\n input.dispatchEvent(\n new CustomEvent('filter-change', {\n bubbles: true,\n composed: true,\n detail: {\n name: column.name,\n operator: filter.operator,\n value: input.value\n }\n })\n )\n }}\n filter-input\n ></ox-input-barcode>\n `\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import { FilterSelectRenderer } from '../types.js';
2
+ export declare const FilterInput: FilterSelectRenderer;
@@ -0,0 +1,25 @@
1
+ import { html } from 'lit-html';
2
+ export const FilterInput = (column, value, owner) => {
3
+ const filter = column.filter;
4
+ const type = (filter === null || filter === void 0 ? void 0 : filter.type) || column.type;
5
+ return html `
6
+ <input
7
+ type=${type}
8
+ name=${column.name}
9
+ .value=${value == null ? '' : value}
10
+ @change=${(e) => {
11
+ const input = e.target;
12
+ input.dispatchEvent(new CustomEvent('filter-change', {
13
+ bubbles: true,
14
+ composed: true,
15
+ detail: {
16
+ name: column.name,
17
+ operator: filter.operator,
18
+ value: input.value
19
+ }
20
+ }));
21
+ }}
22
+ />
23
+ `;
24
+ };
25
+ //# sourceMappingURL=filter-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-input.js","sourceRoot":"","sources":["../../../src/filters/filter-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAI/B,MAAM,CAAC,MAAM,WAAW,GAAyB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IACxE,MAAM,MAAM,GAAG,MAAM,CAAC,MAA4B,CAAA;IAClD,MAAM,IAAI,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,MAAM,CAAC,IAAI,CAAA;IAExC,OAAO,IAAI,CAAA;;aAEA,IAAW;aACX,MAAM,CAAC,IAAI;eACT,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;gBACzB,CAAC,CAAc,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,CAAC,CAAC,MAA0B,CAAA;QAC1C,KAAK,CAAC,aAAa,CACjB,IAAI,WAAW,CAAC,eAAe,EAAE;YAC/B,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,KAAK,EAAE,KAAK,CAAC,KAAK;aACnB;SACF,CAAC,CACH,CAAA;IACH,CAAC;;GAEJ,CAAA;AACH,CAAC,CAAA","sourcesContent":["import { html } from 'lit-html'\n\nimport { FilterConfigObject, FilterSelectRenderer } from '../types.js'\n\nexport const FilterInput: FilterSelectRenderer = (column, value, owner) => {\n const filter = column.filter as FilterConfigObject\n const type = filter?.type || column.type\n\n return html`\n <input\n type=${type as any}\n name=${column.name}\n .value=${value == null ? '' : value}\n @change=${(e: CustomEvent) => {\n const input = e.target as HTMLInputElement\n input.dispatchEvent(\n new CustomEvent('filter-change', {\n bubbles: true,\n composed: true,\n detail: {\n name: column.name,\n operator: filter.operator,\n value: input.value\n }\n })\n )\n }}\n />\n `\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import { FilterSelectRenderer } from '../types.js';
2
+ export declare const FilterRangeDate: FilterSelectRenderer;
@@ -0,0 +1,66 @@
1
+ import { html } from 'lit-html';
2
+ function formatDate(type, date) {
3
+ var year = date.getFullYear();
4
+ var month = ('0' + (date.getMonth() + 1)).slice(-2);
5
+ var day = ('0' + date.getDate()).slice(-2);
6
+ var hours = ('0' + date.getHours()).slice(-2);
7
+ var minutes = ('0' + date.getMinutes()).slice(-2);
8
+ var formatDate = year + '-' + month + '-' + day;
9
+ return type == 'date' ? formatDate : formatDate + 'T' + hours + ':' + minutes;
10
+ }
11
+ export const FilterRangeDate = (column, value, owner) => {
12
+ const filter = column.filter;
13
+ var [from, to] = value instanceof Array ? value : [];
14
+ var type = (filter === null || filter === void 0 ? void 0 : filter.type) || column.type;
15
+ if (type === 'datetime') {
16
+ type = 'datetime-local';
17
+ }
18
+ from = formatDate(type, new Date(from));
19
+ to = formatDate(type, new Date(to));
20
+ return html `
21
+ <input
22
+ name=${column.name}
23
+ type=${type}
24
+ .value=${from}
25
+ from
26
+ @keyup=${(e) => {
27
+ if (e.key !== 'Enter') {
28
+ return;
29
+ }
30
+ ;
31
+ e.target.dispatchEvent(new CustomEvent('filter-change', {
32
+ bubbles: true,
33
+ composed: true,
34
+ detail: {
35
+ name: column.name,
36
+ operator: filter.operator,
37
+ value: Array.from(e.target.parentElement.querySelectorAll('input[from], input[to]')).map(input => input.value)
38
+ }
39
+ }));
40
+ }}
41
+ />
42
+ ~
43
+ <input
44
+ name=${column.name}
45
+ type=${type}
46
+ .value=${to}
47
+ to
48
+ @keyup=${(e) => {
49
+ if (e.key !== 'Enter') {
50
+ return;
51
+ }
52
+ ;
53
+ e.target.dispatchEvent(new CustomEvent('filter-change', {
54
+ bubbles: true,
55
+ composed: true,
56
+ detail: {
57
+ name: column.name,
58
+ operator: filter.operator,
59
+ value: Array.from(e.target.parentElement.querySelectorAll('input[from], input[to]')).map(input => input.value)
60
+ }
61
+ }));
62
+ }}
63
+ />
64
+ `;
65
+ };
66
+ //# sourceMappingURL=filter-range-date.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-range-date.js","sourceRoot":"","sources":["../../../src/filters/filter-range-date.ts"],"names":[],"mappings":"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","sourcesContent":["import { html } from 'lit-html'\n\nimport { FilterConfigObject, FilterSelectRenderer } from '../types.js'\n\nfunction formatDate(type: string, date: Date) {\n var year = date.getFullYear()\n var month = ('0' + (date.getMonth() + 1)).slice(-2)\n var day = ('0' + date.getDate()).slice(-2)\n var hours = ('0' + date.getHours()).slice(-2)\n var minutes = ('0' + date.getMinutes()).slice(-2)\n\n var formatDate = year + '-' + month + '-' + day\n\n return type == 'date' ? formatDate : formatDate + 'T' + hours + ':' + minutes\n}\n\nexport const FilterRangeDate: FilterSelectRenderer = (column, value, owner) => {\n const filter = column.filter as FilterConfigObject\n\n var [from, to] = value instanceof Array ? value : []\n\n var type: any = filter?.type || column.type\n if (type === 'datetime') {\n type = 'datetime-local'\n }\n\n from = formatDate(type, new Date(from))\n to = formatDate(type, new Date(to))\n\n return html`\n <input\n name=${column.name}\n type=${type}\n .value=${from}\n from\n @keyup=${(e: KeyboardEvent) => {\n if (e.key !== 'Enter') {\n return\n }\n ;(e.target as HTMLElement).dispatchEvent(\n new CustomEvent('filter-change', {\n bubbles: true,\n composed: true,\n detail: {\n name: column.name,\n operator: filter.operator,\n value: Array.from(\n (e.target as HTMLElement).parentElement!.querySelectorAll('input[from], input[to]')\n ).map(input => (input as HTMLInputElement).value)\n }\n })\n )\n }}\n />\n ~\n <input\n name=${column.name}\n type=${type}\n .value=${to}\n to\n @keyup=${(e: KeyboardEvent) => {\n if (e.key !== 'Enter') {\n return\n }\n ;(e.target as HTMLElement).dispatchEvent(\n new CustomEvent('filter-change', {\n bubbles: true,\n composed: true,\n detail: {\n name: column.name,\n operator: filter.operator,\n value: Array.from(\n (e.target as HTMLElement).parentElement!.querySelectorAll('input[from], input[to]')\n ).map(input => (input as HTMLInputElement).value)\n }\n })\n )\n }}\n />\n `\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import { FilterSelectRenderer } from '../types.js';
2
+ export declare const FilterRangeNumber: FilterSelectRenderer;
@@ -0,0 +1,54 @@
1
+ import { html } from 'lit-html';
2
+ export const FilterRangeNumber = (column, value, owner) => {
3
+ const filter = column.filter;
4
+ const type = (filter === null || filter === void 0 ? void 0 : filter.type) || column.type;
5
+ const [from, to] = value instanceof Array ? value : [];
6
+ return html `
7
+ <input
8
+ name=${column.name}
9
+ type="number"
10
+ placeholder="minimum"
11
+ .value=${from}
12
+ from
13
+ @keyup=${(e) => {
14
+ if (e.key !== 'Enter') {
15
+ return;
16
+ }
17
+ ;
18
+ e.target.dispatchEvent(new CustomEvent('filter-change', {
19
+ bubbles: true,
20
+ composed: true,
21
+ detail: {
22
+ name: column.name,
23
+ operator: filter.operator,
24
+ value: Array.from(e.target.parentElement.querySelectorAll('input[from], input[to]')).map(input => input.value)
25
+ }
26
+ }));
27
+ }}
28
+ />
29
+ ~
30
+ <input
31
+ name=${column.name}
32
+ type="number"
33
+ placeholder="maximum"
34
+ .value=${to}
35
+ to
36
+ @keyup=${(e) => {
37
+ if (e.key !== 'Enter') {
38
+ return;
39
+ }
40
+ ;
41
+ e.target.dispatchEvent(new CustomEvent('filter-change', {
42
+ bubbles: true,
43
+ composed: true,
44
+ detail: {
45
+ name: column.name,
46
+ operator: filter.operator,
47
+ value: Array.from(e.target.parentElement.querySelectorAll('input[from], input[to]')).map(input => input.value)
48
+ }
49
+ }));
50
+ }}
51
+ />
52
+ `;
53
+ };
54
+ //# sourceMappingURL=filter-range-number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-range-number.js","sourceRoot":"","sources":["../../../src/filters/filter-range-number.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAI/B,MAAM,CAAC,MAAM,iBAAiB,GAAyB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IAC9E,MAAM,MAAM,GAAG,MAAM,CAAC,MAA4B,CAAA;IAClD,MAAM,IAAI,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,MAAM,CAAC,IAAI,CAAA;IAExC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IAEtD,OAAO,IAAI,CAAA;;aAEA,MAAM,CAAC,IAAI;;;eAGT,IAAI;;eAEJ,CAAC,CAAgB,EAAE,EAAE;QAC5B,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;YACtB,OAAM;QACR,CAAC;QACD,CAAC;QAAC,CAAC,CAAC,MAAsB,CAAC,aAAa,CACtC,IAAI,WAAW,CAAC,eAAe,EAAE;YAC/B,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,KAAK,EAAE,KAAK,CAAC,IAAI,CACd,CAAC,CAAC,MAAsB,CAAC,aAAc,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CACpF,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAE,KAA0B,CAAC,KAAK,CAAC;aAClD;SACF,CAAC,CACH,CAAA;IACH,CAAC;;;;aAIM,MAAM,CAAC,IAAI;;;eAGT,EAAE;;eAEF,CAAC,CAAgB,EAAE,EAAE;QAC5B,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;YACtB,OAAM;QACR,CAAC;QACD,CAAC;QAAC,CAAC,CAAC,MAAsB,CAAC,aAAa,CACtC,IAAI,WAAW,CAAC,eAAe,EAAE;YAC/B,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,KAAK,EAAE,KAAK,CAAC,IAAI,CACd,CAAC,CAAC,MAAsB,CAAC,aAAc,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CACpF,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAE,KAA0B,CAAC,KAAK,CAAC;aAClD;SACF,CAAC,CACH,CAAA;IACH,CAAC;;GAEJ,CAAA;AACH,CAAC,CAAA","sourcesContent":["import { html } from 'lit-html'\n\nimport { FilterConfigObject, FilterSelectRenderer } from '../types.js'\n\nexport const FilterRangeNumber: FilterSelectRenderer = (column, value, owner) => {\n const filter = column.filter as FilterConfigObject\n const type = filter?.type || column.type\n\n const [from, to] = value instanceof Array ? value : []\n\n return html`\n <input\n name=${column.name}\n type=\"number\"\n placeholder=\"minimum\"\n .value=${from}\n from\n @keyup=${(e: KeyboardEvent) => {\n if (e.key !== 'Enter') {\n return\n }\n ;(e.target as HTMLElement).dispatchEvent(\n new CustomEvent('filter-change', {\n bubbles: true,\n composed: true,\n detail: {\n name: column.name,\n operator: filter.operator,\n value: Array.from(\n (e.target as HTMLElement).parentElement!.querySelectorAll('input[from], input[to]')\n ).map(input => (input as HTMLInputElement).value)\n }\n })\n )\n }}\n />\n ~\n <input\n name=${column.name}\n type=\"number\"\n placeholder=\"maximum\"\n .value=${to}\n to\n @keyup=${(e: KeyboardEvent) => {\n if (e.key !== 'Enter') {\n return\n }\n ;(e.target as HTMLElement).dispatchEvent(\n new CustomEvent('filter-change', {\n bubbles: true,\n composed: true,\n detail: {\n name: column.name,\n operator: filter.operator,\n value: Array.from(\n (e.target as HTMLElement).parentElement!.querySelectorAll('input[from], input[to]')\n ).map(input => (input as HTMLInputElement).value)\n }\n })\n )\n }}\n />\n `\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import '@operato/input/ox-input-select-buttons.js';
2
+ import { FilterSelectRenderer } from '../types.js';
3
+ export declare const FilterSelectButtons: FilterSelectRenderer;
@@ -0,0 +1,50 @@
1
+ import '@operato/input/ox-input-select-buttons.js';
2
+ import { html } from 'lit-html';
3
+ export const FilterSelectButtons = (column, value, owner) => {
4
+ const filter = column.filter;
5
+ const operator = filter === null || filter === void 0 ? void 0 : filter.operator;
6
+ var options = (filter === null || filter === void 0 ? void 0 : filter.options) || column.record.options || [];
7
+ if (typeof options === 'function') {
8
+ if (!(filter === null || filter === void 0 ? void 0 : filter.options)) {
9
+ console.warn('ox-grist의 column.filter 속성에서는 column.record.options의 함수형 options을 사용할 수 없으므로, filter 속성에서 재지정해야한다.');
10
+ }
11
+ options = options.call(column, owner);
12
+ }
13
+ options = options.map((option) => {
14
+ switch (typeof option) {
15
+ case 'string':
16
+ return {
17
+ display: option,
18
+ value: option
19
+ };
20
+ case 'object':
21
+ return {
22
+ display: option.display,
23
+ value: option.value
24
+ };
25
+ default:
26
+ return option;
27
+ }
28
+ });
29
+ return html `
30
+ <ox-input-select-buttons
31
+ name=${column.name}
32
+ .value=${value}
33
+ .options=${options}
34
+ ?multiple=${operator === 'in'}
35
+ @change=${(e) => {
36
+ ;
37
+ e.target.dispatchEvent(new CustomEvent('filter-change', {
38
+ bubbles: true,
39
+ composed: true,
40
+ detail: {
41
+ name: column.name,
42
+ operator: filter.operator,
43
+ value: e.target.value
44
+ }
45
+ }));
46
+ }}
47
+ ></ox-input-select-buttons>
48
+ `;
49
+ };
50
+ //# sourceMappingURL=filter-select-buttons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-select-buttons.js","sourceRoot":"","sources":["../../../src/filters/filter-select-buttons.ts"],"names":[],"mappings":"AAAA,OAAO,2CAA2C,CAAA;AAElD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAI/B,MAAM,CAAC,MAAM,mBAAmB,GAAyB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IAChF,MAAM,MAAM,GAAG,MAAM,CAAC,MAA4B,CAAA;IAClD,MAAM,QAAQ,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAA;IAEjC,IAAI,OAAO,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,KAAI,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;IAE5D,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAA,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CACV,oGAAoG,CACrG,CAAA;QACH,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACvC,CAAC;IAED,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE;QACpC,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;oBACvB,KAAK,EAAE,MAAM,CAAC,KAAK;iBACpB,CAAA;YACH;gBACE,OAAO,MAAM,CAAA;QACjB,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,IAAI,CAAA;;aAEA,MAAM,CAAC,IAAI;eACT,KAAK;iBACH,OAAO;kBACN,QAAQ,KAAK,IAAI;gBACnB,CAAC,CAAc,EAAE,EAAE;QAC3B,CAAC;QAAC,CAAC,CAAC,MAAsB,CAAC,aAAa,CACtC,IAAI,WAAW,CAAC,eAAe,EAAE;YAC/B,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,KAAK,EAAG,CAAC,CAAC,MAA2B,CAAC,KAAK;aAC5C;SACF,CAAC,CACH,CAAA;IACH,CAAC;;GAEJ,CAAA;AACH,CAAC,CAAA","sourcesContent":["import '@operato/input/ox-input-select-buttons.js'\n\nimport { html } from 'lit-html'\n\nimport { FilterConfigObject, FilterSelectRenderer } from '../types.js'\n\nexport const FilterSelectButtons: FilterSelectRenderer = (column, value, owner) => {\n const filter = column.filter as FilterConfigObject\n const operator = filter?.operator\n\n var options = filter?.options || column.record.options || []\n\n if (typeof options === 'function') {\n if (!filter?.options) {\n console.warn(\n 'ox-grist의 column.filter 속성에서는 column.record.options의 함수형 options을 사용할 수 없으므로, filter 속성에서 재지정해야한다.'\n )\n }\n options = options.call(column, owner)\n }\n\n options = options.map((option: any) => {\n switch (typeof option) {\n case 'string':\n return {\n display: option,\n value: option\n }\n case 'object':\n return {\n display: option.display,\n value: option.value\n }\n default:\n return option\n }\n })\n\n return html`\n <ox-input-select-buttons\n name=${column.name}\n .value=${value}\n .options=${options}\n ?multiple=${operator === 'in'}\n @change=${(e: CustomEvent) => {\n ;(e.target as HTMLElement).dispatchEvent(\n new CustomEvent('filter-change', {\n bubbles: true,\n composed: true,\n detail: {\n name: column.name,\n operator: filter.operator,\n value: (e.target as HTMLInputElement).value\n }\n })\n )\n }}\n ></ox-input-select-buttons>\n `\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import '@operato/input/ox-checkbox.js';
2
+ import { FilterSelectRenderer } from '../types.js';
3
+ export declare const FilterSelect: FilterSelectRenderer;
@@ -0,0 +1,52 @@
1
+ import '@operato/input/ox-checkbox.js';
2
+ import { html } from 'lit';
3
+ import { until } from 'lit/directives/until.js';
4
+ import { OxFiltersForm } from './filters-form.js';
5
+ function buildOptions(options, operator) {
6
+ const selectOptionObjects = options.map(option => {
7
+ switch (typeof option) {
8
+ case 'string':
9
+ return {
10
+ display: option,
11
+ value: option
12
+ };
13
+ case 'object':
14
+ return {
15
+ display: option.display || option.name,
16
+ value: option.value
17
+ };
18
+ default:
19
+ return option;
20
+ }
21
+ });
22
+ return operator === 'in'
23
+ ? html `
24
+ ${selectOptionObjects === null || selectOptionObjects === void 0 ? void 0 : selectOptionObjects.filter(option => !!option).map(({ value, display, name }) => html ` <ox-checkbox option value=${value}>${display || name}</ox-checkbox> `)}
25
+ `
26
+ : html `
27
+ ${selectOptionObjects === null || selectOptionObjects === void 0 ? void 0 : selectOptionObjects.map(({ value, display, name }) => html ` <div option value=${value}>${display || name}&nbsp;</div> `)}
28
+ `;
29
+ }
30
+ export const FilterSelect = (column, value, owner) => {
31
+ /* value는 filters-form이나 grid-header에서 처리되므로 이 곳에서는 무시한다. */
32
+ const filter = column.filter;
33
+ const operator = filter === null || filter === void 0 ? void 0 : filter.operator;
34
+ const form = owner;
35
+ var options = (filter === null || filter === void 0 ? void 0 : filter.options) || column.record.options || [];
36
+ if (typeof options === 'function') {
37
+ if (!(filter === null || filter === void 0 ? void 0 : filter.options)) {
38
+ console.warn('ox-grist의 column.filter 속성에서는 column.record.options의 함수형 options을 사용할 수 없으므로, filter 속성에서 재지정해야한다.');
39
+ }
40
+ options = options.call(null, value, column, form instanceof OxFiltersForm ? form.getFormObjectValue() : {}, owner);
41
+ if (options instanceof Promise) {
42
+ return html `${until(options.then(options => buildOptions(options, operator)))}`;
43
+ }
44
+ else {
45
+ return buildOptions((options || []), operator);
46
+ }
47
+ }
48
+ else {
49
+ return buildOptions((options || []), operator);
50
+ }
51
+ };
52
+ //# sourceMappingURL=filter-select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-select.js","sourceRoot":"","sources":["../../../src/filters/filter-select.ts"],"names":[],"mappings":"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","sourcesContent":["import '@operato/input/ox-checkbox.js'\n\nimport { html } from 'lit'\nimport { until } from 'lit/directives/until.js'\n\nimport { FilterConfigObject, FilterOperator, FilterSelectRenderer, SelectOption, SelectOptionObject } from '../types.js'\nimport { OxFiltersForm } from './filters-form.js'\nimport { DataGridHeader } from '../data-grid/data-grid-header.js'\n\nfunction buildOptions(options: SelectOption[], operator?: FilterOperator) {\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 operator === 'in'\n ? html`\n ${selectOptionObjects\n ?.filter(option => !!option)\n .map(\n ({ value, display, name }) => html` <ox-checkbox option value=${value}>${display || name}</ox-checkbox> `\n )}\n `\n : html`\n ${selectOptionObjects?.map(\n ({ value, display, name }) => html` <div option value=${value}>${display || name}&nbsp;</div> `\n )}\n `\n}\n\nexport const FilterSelect: FilterSelectRenderer = (column, value, owner) => {\n /* value는 filters-form이나 grid-header에서 처리되므로 이 곳에서는 무시한다. */\n const filter = column.filter as FilterConfigObject\n const operator = filter?.operator\n const form = owner as OxFiltersForm | DataGridHeader\n\n var options = filter?.options || column.record.options || []\n\n if (typeof options === 'function') {\n if (!filter?.options) {\n console.warn(\n 'ox-grist의 column.filter 속성에서는 column.record.options의 함수형 options을 사용할 수 없으므로, filter 속성에서 재지정해야한다.'\n )\n }\n\n options = options.call(null, value, column, form instanceof OxFiltersForm ? form.getFormObjectValue() : {}, owner)\n\n if (options instanceof Promise) {\n return html`${until(options.then(options => buildOptions(options, operator)))}`\n } else {\n return buildOptions((options || []) as SelectOption[], operator)\n }\n } else {\n return buildOptions((options || []) as SelectOption[], operator)\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ export declare const FilterStyles: import("lit").CSSResult;
@@ -0,0 +1,119 @@
1
+ import { css } from 'lit';
2
+ export const FilterStyles = css `
3
+ :host {
4
+ --ox-filters-input-placeholder-color: var(--input-placeholder-color, var(--md-sys-color-on-surface));
5
+
6
+ --ox-filters-input-border: var(--input-border, 1px solid rgba(0, 0, 0, 0.2));
7
+ --ox-filters-input-focus-border: var(--input-focus-border, 1px solid var(--md-sys-color-outline-variant));
8
+ --ox-filters-input-font: var(--input-font, normal 14px var(--theme-font));
9
+ --ox-filters-input-color: var(--input-color, var(--md-sys-color-on-surface));
10
+ --ox-filters-input-focus-color: var(--input-focus-color, var(--md-sys-color-on-surface-variant));
11
+ --ox-filters-label-font: var(--label-font, normal 14px var(--theme-font));
12
+ --ox-filters-label-color: var(--label-color, var(--md-sys-color-on-surface));
13
+ --ox-filters-input-background-color: transparent;
14
+
15
+ --ox-filters-form-gap: var(--input-gap-vertical, 8px) var(--input-gap-horizontal, 16px);
16
+ --ox-filters-input-padding: var(--spacing-small, 4px);
17
+
18
+ --ox-select-padding: var(--ox-filters-input-padding);
19
+ --ox-checkbox-background-color: var(--ox-filters-input-background-color, transparent);
20
+ }
21
+
22
+ label {
23
+ color: var(--ox-filters-label-color, var(--md-sys-color-on-primary-container));
24
+ }
25
+
26
+ span {
27
+ font-weight: var(--md-sys-typescale-label-medium-weight);
28
+ text-transform: capitalize;
29
+ }
30
+
31
+ input::placeholder {
32
+ color: var(--ox-filters-input-placeholder-color, var(--md-sys-color-surface-dim));
33
+ opacity: 0.6;
34
+ }
35
+
36
+ input,
37
+ ox-input-search,
38
+ [filter-input] {
39
+ padding: var(--ox-filters-input-padding);
40
+ }
41
+
42
+ ox-select,
43
+ ox-input-search,
44
+ input,
45
+ [filter-input] {
46
+ border: none;
47
+ border-bottom: var(--ox-filters-input-border, var(--md-sys-color-outline));
48
+ font: var(--ox-filters-input-font);
49
+ color: var(--ox-filters-input-color, var(--md-sys-color-on-surface));
50
+ background-color: var(--ox-filters-input-background-color, transparent);
51
+ vertical-align: middle;
52
+ }
53
+
54
+ ox-select:focus,
55
+ input:focus,
56
+ [filter-input]:focus {
57
+ outline: none;
58
+ border-bottom: var(--ox-filters-input-focus-border, var(--md-sys-color-outline-variant));
59
+ color: var(--ox-filters-input-focus-color, var(--md-sys-color-on-surface-variant));
60
+ }
61
+
62
+ ox-select {
63
+ min-width: 90px;
64
+ max-width: 170px;
65
+ }
66
+
67
+ ox-input-search {
68
+ max-width: 150px;
69
+ }
70
+
71
+ input[type='number'] {
72
+ max-width: 90px;
73
+ }
74
+
75
+ input[type*='date'],
76
+ input[type*='time'],
77
+ input[type='week'],
78
+ input[type='month'] {
79
+ max-width: 170px;
80
+ }
81
+
82
+ [filter-input] {
83
+ min-width: 140px;
84
+ max-width: 170px;
85
+ }
86
+
87
+ @media only screen and (max-width: 460px) {
88
+ :host {
89
+ --ox-filters-form-label-font: bold 13px var(--theme-font);
90
+ --ox-filters-input-font: normal 16px var(--theme-font);
91
+ }
92
+
93
+ ox-input-barcode {
94
+ max-width: unset;
95
+ flex: 1;
96
+ }
97
+
98
+ ox-input-search {
99
+ max-width: unset;
100
+ }
101
+
102
+ ox-select {
103
+ max-width: unset;
104
+ }
105
+
106
+ ox-checkbox {
107
+ max-width: unset;
108
+ }
109
+
110
+ input[type='number'] {
111
+ max-width: unset;
112
+ }
113
+
114
+ input {
115
+ flex: 1;
116
+ }
117
+ }
118
+ `;
119
+ //# sourceMappingURL=filter-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-styles.js","sourceRoot":"","sources":["../../../src/filters/filter-styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAEzB,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoH9B,CAAA","sourcesContent":["import { css } from 'lit'\n\nexport const FilterStyles = css`\n :host {\n --ox-filters-input-placeholder-color: var(--input-placeholder-color, var(--md-sys-color-on-surface));\n\n --ox-filters-input-border: var(--input-border, 1px solid rgba(0, 0, 0, 0.2));\n --ox-filters-input-focus-border: var(--input-focus-border, 1px solid var(--md-sys-color-outline-variant));\n --ox-filters-input-font: var(--input-font, normal 14px var(--theme-font));\n --ox-filters-input-color: var(--input-color, var(--md-sys-color-on-surface));\n --ox-filters-input-focus-color: var(--input-focus-color, var(--md-sys-color-on-surface-variant));\n --ox-filters-label-font: var(--label-font, normal 14px var(--theme-font));\n --ox-filters-label-color: var(--label-color, var(--md-sys-color-on-surface));\n --ox-filters-input-background-color: transparent;\n\n --ox-filters-form-gap: var(--input-gap-vertical, 8px) var(--input-gap-horizontal, 16px);\n --ox-filters-input-padding: var(--spacing-small, 4px);\n\n --ox-select-padding: var(--ox-filters-input-padding);\n --ox-checkbox-background-color: var(--ox-filters-input-background-color, transparent);\n }\n\n label {\n color: var(--ox-filters-label-color, var(--md-sys-color-on-primary-container));\n }\n\n span {\n font-weight: var(--md-sys-typescale-label-medium-weight);\n text-transform: capitalize;\n }\n\n input::placeholder {\n color: var(--ox-filters-input-placeholder-color, var(--md-sys-color-surface-dim));\n opacity: 0.6;\n }\n\n input,\n ox-input-search,\n [filter-input] {\n padding: var(--ox-filters-input-padding);\n }\n\n ox-select,\n ox-input-search,\n input,\n [filter-input] {\n border: none;\n border-bottom: var(--ox-filters-input-border, var(--md-sys-color-outline));\n font: var(--ox-filters-input-font);\n color: var(--ox-filters-input-color, var(--md-sys-color-on-surface));\n background-color: var(--ox-filters-input-background-color, transparent);\n vertical-align: middle;\n }\n\n ox-select:focus,\n input:focus,\n [filter-input]:focus {\n outline: none;\n border-bottom: var(--ox-filters-input-focus-border, var(--md-sys-color-outline-variant));\n color: var(--ox-filters-input-focus-color, var(--md-sys-color-on-surface-variant));\n }\n\n ox-select {\n min-width: 90px;\n max-width: 170px;\n }\n\n ox-input-search {\n max-width: 150px;\n }\n\n input[type='number'] {\n max-width: 90px;\n }\n\n input[type*='date'],\n input[type*='time'],\n input[type='week'],\n input[type='month'] {\n max-width: 170px;\n }\n\n [filter-input] {\n min-width: 140px;\n max-width: 170px;\n }\n\n @media only screen and (max-width: 460px) {\n :host {\n --ox-filters-form-label-font: bold 13px var(--theme-font);\n --ox-filters-input-font: normal 16px var(--theme-font);\n }\n\n ox-input-barcode {\n max-width: unset;\n flex: 1;\n }\n\n ox-input-search {\n max-width: unset;\n }\n\n ox-select {\n max-width: unset;\n }\n\n ox-checkbox {\n max-width: unset;\n }\n\n input[type='number'] {\n max-width: unset;\n }\n\n input {\n flex: 1;\n }\n }\n`\n"]}
@@ -0,0 +1,40 @@
1
+ import '@operato/input/ox-checkbox.js';
2
+ import '@operato/input/ox-select.js';
3
+ import '@operato/popup/ox-popup-list.js';
4
+ import '@operato/input/ox-input-search.js';
5
+ import { LitElement, PropertyValues, TemplateResult } from 'lit';
6
+ import { PagePreferenceProvider } from '@operato/p13n';
7
+ import { ColumnConfig, FilterPreference, FilterOperator, FilterValue, GristConfig, PersonalGristPreference } from '../types.js';
8
+ export type QueryFilterRangeValue = [from: number, to: number];
9
+ export type QueryFilter = {
10
+ name: string;
11
+ operator: FilterOperator;
12
+ value: any;
13
+ };
14
+ export declare class OxFiltersForm extends LitElement {
15
+ static styles: import("lit").CSSResult[];
16
+ value: FilterValue[];
17
+ withoutSearch: boolean;
18
+ autofocus: boolean;
19
+ empty: boolean;
20
+ personalConfigProvider?: PagePreferenceProvider;
21
+ personalConfig?: PersonalGristPreference;
22
+ personalFilters?: FilterPreference[];
23
+ config: GristConfig;
24
+ filterColumns: ColumnConfig[];
25
+ searchColumns: ColumnConfig[];
26
+ form: HTMLFormElement;
27
+ private autoUpdateTargetsOnChange;
28
+ private objectValue?;
29
+ connectedCallback(): void;
30
+ buildDefaultValue(operator: FilterOperator, defaultValue: any): any;
31
+ updated(changes: PropertyValues<this>): Promise<void>;
32
+ render(): TemplateResult;
33
+ applyUpdatedConfiguration(): void;
34
+ getQueryFilters(): Promise<QueryFilter[]>;
35
+ setInputValue(name: string, value: any): void;
36
+ getInputValue(name: string): any;
37
+ private updateObjectValues;
38
+ getFormObjectValue(): object | undefined;
39
+ reset(): void;
40
+ }