@operato/data-grist 2.0.0-alpha.99 → 2.0.0-beta.1

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 (216) hide show
  1. package/CHANGELOG.md +441 -0
  2. package/demo/data-grist-test.html +1 -1
  3. package/demo/index.html +1 -1
  4. package/dist/src/data-card/data-card-field.js +2 -2
  5. package/dist/src/data-card/data-card-field.js.map +1 -1
  6. package/dist/src/data-card/data-card-gutter-menu.js +5 -5
  7. package/dist/src/data-card/data-card-gutter-menu.js.map +1 -1
  8. package/dist/src/data-card/data-card-gutter.js +6 -6
  9. package/dist/src/data-card/data-card-gutter.js.map +1 -1
  10. package/dist/src/data-card/data-card.js +7 -9
  11. package/dist/src/data-card/data-card.js.map +1 -1
  12. package/dist/src/data-card/record-card.js +9 -10
  13. package/dist/src/data-card/record-card.js.map +1 -1
  14. package/dist/src/data-grid/data-grid-accum-field.js +12 -5
  15. package/dist/src/data-grid/data-grid-accum-field.js.map +1 -1
  16. package/dist/src/data-grid/data-grid-body-style.js +12 -0
  17. package/dist/src/data-grid/data-grid-body-style.js.map +1 -1
  18. package/dist/src/data-grid/data-grid-body.d.ts +0 -1
  19. package/dist/src/data-grid/data-grid-body.js +14 -21
  20. package/dist/src/data-grid/data-grid-body.js.map +1 -1
  21. package/dist/src/data-grid/data-grid-field.js +8 -2
  22. package/dist/src/data-grid/data-grid-field.js.map +1 -1
  23. package/dist/src/data-grid/data-grid-footer.js +4 -2
  24. package/dist/src/data-grid/data-grid-footer.js.map +1 -1
  25. package/dist/src/data-grid/data-grid-header.js +9 -6
  26. package/dist/src/data-grid/data-grid-header.js.map +1 -1
  27. package/dist/src/data-grid/data-grid.js +23 -1
  28. package/dist/src/data-grid/data-grid.js.map +1 -1
  29. package/dist/src/data-grid/event-handlers/data-grid-body-click-handler.js +3 -0
  30. package/dist/src/data-grid/event-handlers/data-grid-body-click-handler.js.map +1 -1
  31. package/dist/src/data-grist.d.ts +10 -2
  32. package/dist/src/data-grist.js +71 -8
  33. package/dist/src/data-grist.js.map +1 -1
  34. package/dist/src/data-list/data-list-field.js +5 -5
  35. package/dist/src/data-list/data-list-field.js.map +1 -1
  36. package/dist/src/data-list/data-list-gutter.js +3 -3
  37. package/dist/src/data-list/data-list-gutter.js.map +1 -1
  38. package/dist/src/data-list/data-list.js +4 -4
  39. package/dist/src/data-list/data-list.js.map +1 -1
  40. package/dist/src/data-list/record-partial.js +9 -10
  41. package/dist/src/data-list/record-partial.js.map +1 -1
  42. package/dist/src/data-manipulator.d.ts +1 -1
  43. package/dist/src/data-manipulator.js +5 -5
  44. package/dist/src/data-manipulator.js.map +1 -1
  45. package/dist/src/data-report/data-report-field.js +2 -1
  46. package/dist/src/data-report/data-report-field.js.map +1 -1
  47. package/dist/src/data-report/data-report-header.js +2 -2
  48. package/dist/src/data-report/data-report-header.js.map +1 -1
  49. package/dist/src/editors/ox-grist-editor-select.js +37 -25
  50. package/dist/src/editors/ox-grist-editor-select.js.map +1 -1
  51. package/dist/src/editors/ox-input-tree.js +8 -8
  52. package/dist/src/editors/ox-input-tree.js.map +1 -1
  53. package/dist/src/filters/filter-input-barcode.js +1 -0
  54. package/dist/src/filters/filter-input-barcode.js.map +1 -1
  55. package/dist/src/filters/filter-select.js +30 -16
  56. package/dist/src/filters/filter-select.js.map +1 -1
  57. package/dist/src/filters/filter-styles.js +46 -31
  58. package/dist/src/filters/filter-styles.js.map +1 -1
  59. package/dist/src/filters/filters-form.d.ts +15 -4
  60. package/dist/src/filters/filters-form.js +205 -70
  61. package/dist/src/filters/filters-form.js.map +1 -1
  62. package/dist/src/gutters/gutter-dirty.js +2 -2
  63. package/dist/src/gutters/gutter-dirty.js.map +1 -1
  64. package/dist/src/index.d.ts +1 -0
  65. package/dist/src/index.js +1 -0
  66. package/dist/src/index.js.map +1 -1
  67. package/dist/src/personalizer/index.d.ts +1 -0
  68. package/dist/src/personalizer/index.js +2 -0
  69. package/dist/src/personalizer/index.js.map +1 -0
  70. package/dist/src/personalizer/ox-grist-filter-personalizer.d.ts +8 -0
  71. package/dist/src/personalizer/ox-grist-filter-personalizer.js +177 -0
  72. package/dist/src/personalizer/ox-grist-filter-personalizer.js.map +1 -0
  73. package/dist/src/personalizer/ox-grist-personalizer.d.ts +8 -0
  74. package/dist/src/personalizer/ox-grist-personalizer.js +178 -0
  75. package/dist/src/personalizer/ox-grist-personalizer.js.map +1 -0
  76. package/dist/src/record-view/record-creator.js +2 -2
  77. package/dist/src/record-view/record-creator.js.map +1 -1
  78. package/dist/src/renderers/ox-grist-renderer-select.js +34 -4
  79. package/dist/src/renderers/ox-grist-renderer-select.js.map +1 -1
  80. package/dist/src/renderers/ox-grist-renderer-tree.js +8 -8
  81. package/dist/src/renderers/ox-grist-renderer-tree.js.map +1 -1
  82. package/dist/src/sorters/sorters-control.js +3 -3
  83. package/dist/src/sorters/sorters-control.js.map +1 -1
  84. package/dist/src/types.d.ts +41 -2
  85. package/dist/src/types.js.map +1 -1
  86. package/dist/stories/{accumulator.stories.d.ts → accumulator-format.stories.d.ts} +9 -0
  87. package/dist/stories/{accumulator.stories.js → accumulator-format.stories.js} +24 -12
  88. package/dist/stories/accumulator-format.stories.js.map +1 -0
  89. package/dist/stories/barcode-input-filter.stories.d.ts +5 -0
  90. package/dist/stories/barcode-input-filter.stories.js +29 -5
  91. package/dist/stories/barcode-input-filter.stories.js.map +1 -1
  92. package/dist/stories/bounded-select-filters.stories.d.ts +30 -0
  93. package/dist/stories/bounded-select-filters.stories.js +288 -0
  94. package/dist/stories/bounded-select-filters.stories.js.map +1 -0
  95. package/dist/stories/bounded-select-record.stories.d.ts +30 -0
  96. package/dist/stories/bounded-select-record.stories.js +291 -0
  97. package/dist/stories/bounded-select-record.stories.js.map +1 -0
  98. package/dist/stories/click-event.stories.d.ts +41 -0
  99. package/dist/stories/click-event.stories.js +234 -0
  100. package/dist/stories/click-event.stories.js.map +1 -0
  101. package/dist/stories/creatable-only-column.stories.d.ts +5 -0
  102. package/dist/stories/creatable-only-column.stories.js +46 -21
  103. package/dist/stories/creatable-only-column.stories.js.map +1 -1
  104. package/dist/stories/default-filters.stories.d.ts +5 -0
  105. package/dist/stories/default-filters.stories.js +84 -17
  106. package/dist/stories/default-filters.stories.js.map +1 -1
  107. package/dist/stories/dynamic-editable.stories.d.ts +5 -0
  108. package/dist/stories/dynamic-editable.stories.js +44 -21
  109. package/dist/stories/dynamic-editable.stories.js.map +1 -1
  110. package/dist/stories/empty-sorters.stories.d.ts +7 -1
  111. package/dist/stories/empty-sorters.stories.js +41 -17
  112. package/dist/stories/empty-sorters.stories.js.map +1 -1
  113. package/dist/stories/explicit-fetch.stories.d.ts +5 -0
  114. package/dist/stories/explicit-fetch.stories.js +40 -17
  115. package/dist/stories/explicit-fetch.stories.js.map +1 -1
  116. package/dist/stories/fixed-column.stories.d.ts +5 -0
  117. package/dist/stories/fixed-column.stories.js +53 -30
  118. package/dist/stories/fixed-column.stories.js.map +1 -1
  119. package/dist/stories/grid-setting.stories.d.ts +20 -4
  120. package/dist/stories/grid-setting.stories.js +96 -51
  121. package/dist/stories/grid-setting.stories.js.map +1 -1
  122. package/dist/stories/grist-modes.stories.d.ts +8 -2
  123. package/dist/stories/grist-modes.stories.js +58 -35
  124. package/dist/stories/grist-modes.stories.js.map +1 -1
  125. package/dist/stories/group-header.stories.d.ts +5 -0
  126. package/dist/stories/group-header.stories.js +53 -30
  127. package/dist/stories/group-header.stories.js.map +1 -1
  128. package/dist/stories/textarea.stories.d.ts +8 -2
  129. package/dist/stories/textarea.stories.js +37 -13
  130. package/dist/stories/textarea.stories.js.map +1 -1
  131. package/dist/stories/tree-column-with-checkbox.stories.d.ts +5 -0
  132. package/dist/stories/tree-column-with-checkbox.stories.js +44 -21
  133. package/dist/stories/tree-column-with-checkbox.stories.js.map +1 -1
  134. package/dist/stories/tree-column.stories.d.ts +5 -0
  135. package/dist/stories/tree-column.stories.js +44 -21
  136. package/dist/stories/tree-column.stories.js.map +1 -1
  137. package/dist/tsconfig.tsbuildinfo +1 -1
  138. package/docs/default-value/value-generator/date-generator.md +29 -0
  139. package/docs/default-value/value-generator/hour-time-generator.md +33 -0
  140. package/docs/default-value/value-generator/minute-time-generator.md +33 -0
  141. package/docs/default-value/value-generator/month-date-generator.md +2 -0
  142. package/docs/default-value/value-generator/now-generator.md +29 -0
  143. package/docs/default-value/value-generator/time-generator.md +31 -0
  144. package/docs/default-value/value-generator/today-generator.md +29 -0
  145. package/docs/default-value/value-generator/week-date-generator.md +31 -0
  146. package/docs/default-value/value-generator/year-date-generator.md +31 -0
  147. package/package.json +15 -10
  148. package/src/data-card/data-card-field.ts +2 -2
  149. package/src/data-card/data-card-gutter-menu.ts +5 -5
  150. package/src/data-card/data-card-gutter.ts +6 -6
  151. package/src/data-card/data-card.ts +7 -9
  152. package/src/data-card/record-card.ts +9 -10
  153. package/src/data-grid/data-grid-accum-field.ts +11 -5
  154. package/src/data-grid/data-grid-body-style.ts +12 -0
  155. package/src/data-grid/data-grid-body.ts +16 -29
  156. package/src/data-grid/data-grid-field.ts +7 -2
  157. package/src/data-grid/data-grid-footer.ts +4 -2
  158. package/src/data-grid/data-grid-header.ts +8 -6
  159. package/src/data-grid/data-grid.ts +23 -1
  160. package/src/data-grid/event-handlers/data-grid-body-click-handler.ts +4 -0
  161. package/src/data-grist.ts +88 -8
  162. package/src/data-list/data-list-field.ts +5 -5
  163. package/src/data-list/data-list-gutter.ts +3 -3
  164. package/src/data-list/data-list.ts +4 -4
  165. package/src/data-list/record-partial.ts +9 -10
  166. package/src/data-manipulator.ts +5 -5
  167. package/src/data-report/data-report-field.ts +2 -1
  168. package/src/data-report/data-report-header.ts +2 -2
  169. package/src/editors/ox-grist-editor-select.ts +41 -28
  170. package/src/editors/ox-input-tree.ts +8 -8
  171. package/src/filters/filter-input-barcode.ts +1 -0
  172. package/src/filters/filter-select.ts +41 -28
  173. package/src/filters/filter-styles.ts +46 -31
  174. package/src/filters/filters-form.ts +273 -119
  175. package/src/gutters/gutter-dirty.ts +2 -2
  176. package/src/index.ts +1 -0
  177. package/src/personalizer/index.ts +1 -0
  178. package/src/personalizer/ox-grist-filter-personalizer.ts +191 -0
  179. package/src/personalizer/ox-grist-personalizer.ts +192 -0
  180. package/src/record-view/record-creator.ts +2 -2
  181. package/src/renderers/ox-grist-renderer-select.ts +41 -6
  182. package/src/renderers/ox-grist-renderer-tree.ts +8 -8
  183. package/src/sorters/sorters-control.ts +3 -3
  184. package/src/types.ts +53 -2
  185. package/stories/{accumulator.stories.ts → accumulator-format.stories.ts} +33 -12
  186. package/stories/barcode-input-filter.stories.ts +31 -6
  187. package/stories/bounded-select-filters.stories.ts +339 -0
  188. package/stories/bounded-select-record.stories.ts +342 -0
  189. package/stories/click-event.stories.ts +269 -0
  190. package/stories/creatable-only-column.stories.ts +54 -28
  191. package/stories/default-filters.stories.ts +92 -24
  192. package/stories/dynamic-editable.stories.ts +52 -28
  193. package/stories/empty-sorters.stories.ts +51 -25
  194. package/stories/explicit-fetch.stories.ts +48 -24
  195. package/stories/fixed-column.stories.ts +62 -39
  196. package/stories/grid-setting.stories.ts +120 -63
  197. package/stories/grist-modes.stories.ts +74 -46
  198. package/stories/group-header.stories.ts +61 -39
  199. package/stories/textarea.stories.ts +49 -17
  200. package/stories/tree-column-with-checkbox.stories.ts +52 -28
  201. package/stories/tree-column.stories.ts +52 -28
  202. package/themes/dark-hc.css +151 -0
  203. package/themes/dark-mc.css +151 -0
  204. package/themes/dark.css +151 -0
  205. package/themes/grist-theme.css +103 -100
  206. package/themes/light-hc.css +151 -0
  207. package/themes/light-mc.css +151 -0
  208. package/themes/light.css +151 -0
  209. package/themes/md-typescale-styles.css +100 -0
  210. package/themes/spacing.css +43 -0
  211. package/themes/state-color.css +6 -0
  212. package/dist/stories/accumulator.stories.js.map +0 -1
  213. package/themes/app-theme.css +0 -145
  214. package/themes/form-theme.css +0 -75
  215. package/themes/oops-theme.css +0 -26
  216. package/themes/report-theme.css +0 -47
@@ -1,6 +1,38 @@
1
- import { OxGristEditor } from './ox-grist-editor.js'
2
- import { customElement } from 'lit/decorators.js'
3
1
  import { html } from 'lit'
2
+ import { customElement } from 'lit/decorators.js'
3
+ import { until } from 'lit/directives/until.js'
4
+
5
+ import { OxGristEditor } from './ox-grist-editor.js'
6
+ import { SelectOption, SelectOptionObject } from '../types.js'
7
+
8
+ function buildOptions(options: SelectOption[], value: any) {
9
+ const selectOptionObjects = options.map(option => {
10
+ switch (typeof option) {
11
+ case 'string':
12
+ return {
13
+ display: option,
14
+ value: option
15
+ }
16
+ case 'object':
17
+ return {
18
+ display: option.display || option.name,
19
+ value: option.value
20
+ }
21
+ default:
22
+ return option
23
+ }
24
+ }) as SelectOptionObject[]
25
+
26
+ return html`
27
+ <select>
28
+ ${selectOptionObjects.map(
29
+ (option: any) => html`
30
+ <option ?selected=${option.value == value} value=${option.value}>${option.display}</option>
31
+ `
32
+ )}
33
+ </select>
34
+ `
35
+ }
4
36
 
5
37
  @customElement('ox-grist-editor-select')
6
38
  export class OxGristEditorSelect extends OxGristEditor {
@@ -10,33 +42,14 @@ export class OxGristEditorSelect extends OxGristEditor {
10
42
 
11
43
  if (typeof options == 'function') {
12
44
  options = options.call(null, this.value, this.column, this.record, this.rowIndex, this.field)
13
- }
14
45
 
15
- options = options.map((option: any) => {
16
- switch (typeof option) {
17
- case 'string':
18
- return {
19
- display: option,
20
- value: option
21
- }
22
- case 'object':
23
- return {
24
- display: option.display,
25
- value: option.value
26
- }
27
- default:
28
- return option
46
+ if (options instanceof Promise) {
47
+ return html`${until(options.then(options => buildOptions(options, this.value)))}`
48
+ } else {
49
+ return buildOptions((options || []) as SelectOption[], rowOptionField.display || this.value)
29
50
  }
30
- })
31
-
32
- return html`
33
- <select>
34
- ${options.map(
35
- (option: any) => html`
36
- <option ?selected=${option.value == this.value} value=${option.value}>${option.display}</option>
37
- `
38
- )}
39
- </select>
40
- `
51
+ } else {
52
+ return buildOptions((options || []) as SelectOption[], this.value)
53
+ }
41
54
  }
42
55
  }
@@ -44,7 +44,7 @@ export class OxInputTree extends OxFormField {
44
44
  transform: translate(-25%, -50%) rotate(-90deg);
45
45
  content: ' ';
46
46
  border: 5px solid transparent;
47
- border-top: 5px solid var(--primary-color, #1890ff);
47
+ border-top: 5px solid var(--md-sys-color-on-primary-container, #1890ff);
48
48
  }
49
49
 
50
50
  span[expander][expanded]::before {
@@ -54,7 +54,7 @@ export class OxInputTree extends OxFormField {
54
54
  transform: translate(-50%, -25%);
55
55
  content: ' ';
56
56
  border: 5px solid transparent;
57
- border-top: 5px solid var(--primary-color, #1890ff);
57
+ border-top: 5px solid var(--md-sys-color-on-primary-container, #1890ff);
58
58
  }
59
59
 
60
60
  span[checkbox] {
@@ -76,13 +76,13 @@ export class OxInputTree extends OxFormField {
76
76
  display: block;
77
77
  width: 10px;
78
78
  height: 10px;
79
- border: 1px solid var(--primary-color, #1890ff);
79
+ border: 1px solid var(--md-sys-color-on-primary-container, #1890ff);
80
80
  border-radius: 2px;
81
81
  }
82
82
 
83
83
  span[checkbox][checked='checked']::before {
84
- background-color: var(--primary-color, #1890ff);
85
- border-color: var(--primary-color, #1890ff);
84
+ background-color: var(--md-sys-color-on-primary-container, #1890ff);
85
+ border-color: var(--md-sys-color-on-primary-container, #1890ff);
86
86
  }
87
87
 
88
88
  span[checkbox][checked='checked']::after {
@@ -102,8 +102,8 @@ export class OxInputTree extends OxFormField {
102
102
  }
103
103
 
104
104
  span[checkbox][checked='half-checked']::before {
105
- background-color: var(--primary-color, #1890ff);
106
- border-color: var(--primary-color, #1890ff);
105
+ background-color: var(--md-sys-color-on-primary-container, #1890ff);
106
+ border-color: var(--md-sys-color-on-primary-container, #1890ff);
107
107
  }
108
108
 
109
109
  span[checkbox][checked='half-checked']::after {
@@ -115,7 +115,7 @@ export class OxInputTree extends OxFormField {
115
115
  transform: translate(-50%, -50%);
116
116
  width: 10px;
117
117
  height: 2px;
118
- background-color: #fff;
118
+ background-color: var(--md-sys-color-surface);
119
119
  }
120
120
 
121
121
  span[label] {
@@ -28,6 +28,7 @@ export const FilterInputBarcode: FilterSelectRenderer = (column, value, owner) =
28
28
  })
29
29
  )
30
30
  }}
31
+ filter-input
31
32
  ></ox-input-barcode>
32
33
  `
33
34
  }
@@ -1,26 +1,14 @@
1
1
  import '@operato/input/ox-checkbox.js'
2
2
 
3
- import { FilterConfigObject, FilterSelectRenderer } from '../types'
3
+ import { html } from 'lit'
4
+ import { until } from 'lit/directives/until.js'
4
5
 
5
- import { html } from 'lit-html'
6
+ import { FilterConfigObject, FilterOperator, FilterSelectRenderer, SelectOption, SelectOptionObject } from '../types'
7
+ import { OxFiltersForm } from './filters-form'
8
+ import { DataGridHeader } from '../data-grid/data-grid-header'
6
9
 
7
- export const FilterSelect: FilterSelectRenderer = (column, value, owner) => {
8
- /* value는 filters-form이나 grid-header에서 처리되므로 이 곳에서는 무시한다. */
9
- const filter = column.filter as FilterConfigObject
10
- const operator = filter?.operator
11
-
12
- var options = filter?.options || column.record.options || []
13
-
14
- if (typeof options === 'function') {
15
- if (!filter?.options) {
16
- console.warn(
17
- 'ox-grist의 column.filter 속성에서는 column.record.options의 함수형 options을 사용할 수 없으므로, filter 속성에서 재지정해야한다.'
18
- )
19
- }
20
- options = options.call(column, owner)
21
- }
22
-
23
- options = options.map((option: any) => {
10
+ function buildOptions(options: SelectOption[], operator?: FilterOperator) {
11
+ const selectOptionObjects = options.map(option => {
24
12
  switch (typeof option) {
25
13
  case 'string':
26
14
  return {
@@ -29,27 +17,52 @@ export const FilterSelect: FilterSelectRenderer = (column, value, owner) => {
29
17
  }
30
18
  case 'object':
31
19
  return {
32
- display: option.display,
20
+ display: option.display || option.name,
33
21
  value: option.value
34
22
  }
35
23
  default:
36
24
  return option
37
25
  }
38
- })
26
+ }) as SelectOptionObject[]
39
27
 
40
28
  return operator === 'in'
41
29
  ? html`
42
- ${options
43
- ?.filter((option: { display: string; value: any }) => !!option)
30
+ ${selectOptionObjects
31
+ ?.filter(option => !!option)
44
32
  .map(
45
- (option: { display: string; value: any }) =>
46
- html` <ox-checkbox option value=${option.value}>${option.display}</ox-checkbox> `
33
+ ({ value, display, name }) => html` <ox-checkbox option value=${value}>${display || name}</ox-checkbox> `
47
34
  )}
48
35
  `
49
36
  : html`
50
- ${options?.map(
51
- (option: { display: string; value: any }) =>
52
- html` <div option value=${option.value}>${option.display}&nbsp;</div> `
37
+ ${selectOptionObjects?.map(
38
+ ({ value, display, name }) => html` <div option value=${value}>${display || name}&nbsp;</div> `
53
39
  )}
54
40
  `
55
41
  }
42
+
43
+ export const FilterSelect: FilterSelectRenderer = (column, value, owner) => {
44
+ /* value는 filters-form이나 grid-header에서 처리되므로 이 곳에서는 무시한다. */
45
+ const filter = column.filter as FilterConfigObject
46
+ const operator = filter?.operator
47
+ const form = owner as OxFiltersForm | DataGridHeader
48
+
49
+ var options = filter?.options || column.record.options || []
50
+
51
+ if (typeof options === 'function') {
52
+ if (!filter?.options) {
53
+ console.warn(
54
+ 'ox-grist의 column.filter 속성에서는 column.record.options의 함수형 options을 사용할 수 없으므로, filter 속성에서 재지정해야한다.'
55
+ )
56
+ }
57
+
58
+ options = options.call(null, value, column, form instanceof OxFiltersForm ? form.getFormObjectValue() : {}, owner)
59
+
60
+ if (options instanceof Promise) {
61
+ return html`${until(options.then(options => buildOptions(options, operator)))}`
62
+ } else {
63
+ return buildOptions((options || []) as SelectOption[], operator)
64
+ }
65
+ } else {
66
+ return buildOptions((options || []) as SelectOption[], operator)
67
+ }
68
+ }
@@ -2,15 +2,15 @@ import { css } from 'lit'
2
2
 
3
3
  export const FilterStyles = css`
4
4
  :host {
5
- --ox-filters-input-placeholder-color: var(--input-placeholder-color, var(--primary-color));
5
+ --ox-filters-input-placeholder-color: var(--input-placeholder-color, var(--md-sys-color-on-surface));
6
6
 
7
7
  --ox-filters-input-border: var(--input-border, 1px solid rgba(0, 0, 0, 0.2));
8
- --ox-filters-input-focus-border: var(--input-focus-border, 1px solid var(--primary-color));
8
+ --ox-filters-input-focus-border: var(--input-focus-border, 1px solid var(--md-sys-color-outline-variant));
9
9
  --ox-filters-input-font: var(--input-font, normal 14px var(--theme-font));
10
- --ox-filters-input-color: var(--input-color, var(--primary-text-color));
11
- --ox-filters-input-focus-color: var(--input-focus-color, var(--primary-color));
10
+ --ox-filters-input-color: var(--input-color, var(--md-sys-color-on-surface));
11
+ --ox-filters-input-focus-color: var(--input-focus-color, var(--md-sys-color-on-surface-variant));
12
12
  --ox-filters-label-font: var(--label-font, normal 14px var(--theme-font));
13
- --ox-filters-label-color: var(--label-color, var(--primary-text-color));
13
+ --ox-filters-label-color: var(--label-color, var(--md-sys-color-on-surface));
14
14
  --ox-filters-input-background-color: transparent;
15
15
 
16
16
  --ox-filters-form-gap: var(--input-gap-vertical, 8px) var(--input-gap-horizontal, 16px);
@@ -22,7 +22,7 @@ export const FilterStyles = css`
22
22
 
23
23
  label {
24
24
  font: var(--ox-filters-label-font);
25
- color: var(--ox-filters-label-color);
25
+ color: var(--ox-filters-label-color, var(--md-sys-color-on-surface));
26
26
  }
27
27
 
28
28
  span {
@@ -30,44 +30,40 @@ export const FilterStyles = css`
30
30
  }
31
31
 
32
32
  input::placeholder {
33
- color: var(--ox-filters-input-placeholder-color);
33
+ color: var(--ox-filters-input-placeholder-color, var(--md-sys-color-surface-dim));
34
34
  opacity: 0.6;
35
35
  }
36
36
 
37
- input {
37
+ input,
38
+ ox-input-search,
39
+ [filter-input] {
38
40
  padding: var(--ox-filters-input-padding);
39
41
  }
40
42
 
41
- label > span + *,
42
43
  ox-select,
43
- input {
44
+ ox-input-search,
45
+ input,
46
+ [filter-input] {
44
47
  border: none;
45
- border-bottom: var(--ox-filters-input-border);
48
+ border-bottom: var(--ox-filters-input-border, var(--md-sys-color-outline));
46
49
  font: var(--ox-filters-input-font);
47
- color: var(--ox-filters-input-color);
50
+ color: var(--ox-filters-input-color, var(--md-sys-color-on-surface));
48
51
  background-color: var(--ox-filters-input-background-color, transparent);
49
52
  }
50
53
 
51
- label > span + * {
52
- min-width: 120px;
53
- }
54
-
55
54
  ox-select:focus,
56
- input:focus {
55
+ input:focus,
56
+ [filter-input]:focus {
57
57
  outline: none;
58
- border-bottom: var(--ox-filters-input-focus-border);
59
- color: var(--ox-filters-input-focus-color);
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
60
  }
61
61
 
62
62
  ox-select {
63
- min-width: 100px;
63
+ min-width: 90px;
64
64
  max-width: 170px;
65
65
  }
66
66
 
67
- ox-input-barcode {
68
- min-width: 150px;
69
- }
70
-
71
67
  ox-input-search {
72
68
  max-width: 150px;
73
69
  }
@@ -83,21 +79,40 @@ export const FilterStyles = css`
83
79
  max-width: 170px;
84
80
  }
85
81
 
82
+ [filter-input] {
83
+ min-width: 140px;
84
+ max-width: 170px;
85
+ }
86
+
86
87
  @media only screen and (max-width: 460px) {
87
88
  :host {
88
89
  --ox-filters-form-label-font: bold 13px var(--theme-font);
89
90
  --ox-filters-input-font: normal 16px var(--theme-font);
90
91
  }
91
92
 
92
- input[from],
93
- input[to] {
94
- max-width: 44%;
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;
95
112
  }
96
113
 
97
- input[type*='datetime'][from],
98
- input[type*='datetime'][to] {
99
- padding-right: var(--padding-narrow);
100
- min-width: 91%;
114
+ input {
115
+ flex: 1;
101
116
  }
102
117
  }
103
118
  `