@operato/data-grist 2.0.0-alpha.9 → 2.0.0-alpha.92

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 (274) hide show
  1. package/CHANGELOG.md +358 -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/rows-option-builder.js +2 -1
  6. package/dist/src/configure/rows-option-builder.js.map +1 -1
  7. package/dist/src/configure/zero-config.js +1 -0
  8. package/dist/src/configure/zero-config.js.map +1 -1
  9. package/dist/src/data-card/data-card-gutter-menu.d.ts +1 -1
  10. package/dist/src/data-card/data-card-gutter-menu.js +5 -5
  11. package/dist/src/data-card/data-card-gutter-menu.js.map +1 -1
  12. package/dist/src/data-card/data-card.d.ts +2 -2
  13. package/dist/src/data-card/data-card.js +3 -3
  14. package/dist/src/data-card/data-card.js.map +1 -1
  15. package/dist/src/data-card/event-handlers/record-card-click-handler.js +1 -1
  16. package/dist/src/data-card/event-handlers/record-card-click-handler.js.map +1 -1
  17. package/dist/src/data-card/record-card.d.ts +2 -2
  18. package/dist/src/data-card/record-card.js +26 -26
  19. package/dist/src/data-card/record-card.js.map +1 -1
  20. package/dist/src/data-grid/data-grid-accum-field.js +8 -3
  21. package/dist/src/data-grid/data-grid-accum-field.js.map +1 -1
  22. package/dist/src/data-grid/data-grid-body.d.ts +3 -3
  23. package/dist/src/data-grid/data-grid-body.js +9 -4
  24. package/dist/src/data-grid/data-grid-body.js.map +1 -1
  25. package/dist/src/data-grid/data-grid-field.d.ts +1 -1
  26. package/dist/src/data-grid/data-grid-field.js +2 -2
  27. package/dist/src/data-grid/data-grid-field.js.map +1 -1
  28. package/dist/src/data-grid/data-grid-footer.d.ts +2 -2
  29. package/dist/src/data-grid/data-grid-footer.js +17 -9
  30. package/dist/src/data-grid/data-grid-footer.js.map +1 -1
  31. package/dist/src/data-grid/data-grid-header.d.ts +1 -1
  32. package/dist/src/data-grid/data-grid-header.js +38 -35
  33. package/dist/src/data-grid/data-grid-header.js.map +1 -1
  34. package/dist/src/data-grid/data-grid.d.ts +1 -1
  35. package/dist/src/data-grid/data-grid.js +12 -2
  36. package/dist/src/data-grid/data-grid.js.map +1 -1
  37. package/dist/src/data-grist.d.ts +226 -4
  38. package/dist/src/data-grist.js +218 -25
  39. package/dist/src/data-grist.js.map +1 -1
  40. package/dist/src/data-list/data-list-gutter.js +12 -0
  41. package/dist/src/data-list/data-list-gutter.js.map +1 -1
  42. package/dist/src/data-list/data-list.d.ts +2 -2
  43. package/dist/src/data-list/data-list.js +3 -3
  44. package/dist/src/data-list/data-list.js.map +1 -1
  45. package/dist/src/data-list/event-handlers/record-partial-click-handler.js +1 -1
  46. package/dist/src/data-list/event-handlers/record-partial-click-handler.js.map +1 -1
  47. package/dist/src/data-list/record-partial.d.ts +2 -2
  48. package/dist/src/data-list/record-partial.js +20 -18
  49. package/dist/src/data-list/record-partial.js.map +1 -1
  50. package/dist/src/data-manipulator.d.ts +6 -6
  51. package/dist/src/data-manipulator.js +44 -29
  52. package/dist/src/data-manipulator.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-tel.d.ts +1 -1
  79. package/dist/src/editors/ox-grist-editor-text.d.ts +2 -1
  80. package/dist/src/editors/ox-grist-editor-text.js +3 -0
  81. package/dist/src/editors/ox-grist-editor-text.js.map +1 -1
  82. package/dist/src/editors/ox-grist-editor-textarea.d.ts +2 -1
  83. package/dist/src/editors/ox-grist-editor-textarea.js +3 -0
  84. package/dist/src/editors/ox-grist-editor-textarea.js.map +1 -1
  85. package/dist/src/editors/ox-grist-editor-time.d.ts +1 -1
  86. package/dist/src/editors/ox-grist-editor-tree.d.ts +1 -1
  87. package/dist/src/editors/ox-grist-editor-week.d.ts +1 -1
  88. package/dist/src/editors/ox-grist-editor.d.ts +4 -4
  89. package/dist/src/editors/ox-grist-editor.js +14 -12
  90. package/dist/src/editors/ox-grist-editor.js.map +1 -1
  91. package/dist/src/editors/ox-input-tree.d.ts +1 -1
  92. package/dist/src/empty-note.d.ts +2 -2
  93. package/dist/src/empty-note.js +3 -3
  94. package/dist/src/empty-note.js.map +1 -1
  95. package/dist/src/filters/filter-checkbox.js +12 -5
  96. package/dist/src/filters/filter-checkbox.js.map +1 -1
  97. package/dist/src/filters/filter-range-date.js +12 -1
  98. package/dist/src/filters/filter-range-date.js.map +1 -1
  99. package/dist/src/filters/filter-styles.js +47 -28
  100. package/dist/src/filters/filter-styles.js.map +1 -1
  101. package/dist/src/filters/filters-form.d.ts +1 -0
  102. package/dist/src/filters/filters-form.js +71 -50
  103. package/dist/src/filters/filters-form.js.map +1 -1
  104. package/dist/src/gutters/gutter-button.d.ts +1 -1
  105. package/dist/src/gutters/gutter-button.js +3 -3
  106. package/dist/src/gutters/gutter-button.js.map +1 -1
  107. package/dist/src/gutters/gutter-dirty.d.ts +1 -1
  108. package/dist/src/gutters/gutter-dirty.js +5 -5
  109. package/dist/src/gutters/gutter-dirty.js.map +1 -1
  110. package/dist/src/handlers/contextmenu-tree-mutation.js +5 -23
  111. package/dist/src/handlers/contextmenu-tree-mutation.js.map +1 -1
  112. package/dist/src/index.d.ts +0 -1
  113. package/dist/src/index.js +0 -1
  114. package/dist/src/index.js.map +1 -1
  115. package/dist/src/record-view/record-creator.d.ts +2 -2
  116. package/dist/src/record-view/record-creator.js +1 -1
  117. package/dist/src/record-view/record-creator.js.map +1 -1
  118. package/dist/src/record-view/record-view-body.d.ts +3 -3
  119. package/dist/src/record-view/record-view-body.js +4 -4
  120. package/dist/src/record-view/record-view-body.js.map +1 -1
  121. package/dist/src/record-view/record-view.d.ts +2 -2
  122. package/dist/src/record-view/record-view.js +5 -5
  123. package/dist/src/record-view/record-view.js.map +1 -1
  124. package/dist/src/renderers/ox-grist-renderer-progress.d.ts +1 -1
  125. package/dist/src/renderers/ox-grist-renderer-tree.d.ts +1 -1
  126. package/dist/src/renderers/ox-grist-renderer.d.ts +2 -2
  127. package/dist/src/sorters/sorters-control.js +3 -3
  128. package/dist/src/sorters/sorters-control.js.map +1 -1
  129. package/dist/src/types.d.ts +1 -8
  130. package/dist/src/types.js.map +1 -1
  131. package/dist/stories/accumulator.stories.d.ts +1 -1
  132. package/dist/stories/accumulator.stories.js +55 -127
  133. package/dist/stories/accumulator.stories.js.map +1 -1
  134. package/dist/stories/barcode-input-filter.stories.d.ts +1 -1
  135. package/dist/stories/barcode-input-filter.stories.js +41 -79
  136. package/dist/stories/barcode-input-filter.stories.js.map +1 -1
  137. package/dist/stories/default-filters.stories.d.ts +1 -1
  138. package/dist/stories/default-filters.stories.js +41 -79
  139. package/dist/stories/default-filters.stories.js.map +1 -1
  140. package/dist/stories/dynamic-editable.stories.d.ts +1 -1
  141. package/dist/stories/dynamic-editable.stories.js +61 -86
  142. package/dist/stories/dynamic-editable.stories.js.map +1 -1
  143. package/dist/stories/empty-sorters.stories.d.ts +1 -1
  144. package/dist/stories/empty-sorters.stories.js +41 -78
  145. package/dist/stories/empty-sorters.stories.js.map +1 -1
  146. package/dist/stories/explicit-fetch.stories.d.ts +1 -1
  147. package/dist/stories/explicit-fetch.stories.js +42 -79
  148. package/dist/stories/explicit-fetch.stories.js.map +1 -1
  149. package/dist/stories/fixed-column.stories.d.ts +1 -1
  150. package/dist/stories/fixed-column.stories.js +45 -127
  151. package/dist/stories/fixed-column.stories.js.map +1 -1
  152. package/dist/stories/grid-setting.stories.d.ts +36 -0
  153. package/dist/stories/grid-setting.stories.js +403 -0
  154. package/dist/stories/grid-setting.stories.js.map +1 -0
  155. package/dist/stories/grist-modes.stories.d.ts +1 -1
  156. package/dist/stories/grist-modes.stories.js +74 -140
  157. package/dist/stories/grist-modes.stories.js.map +1 -1
  158. package/dist/stories/group-header.stories.d.ts +1 -1
  159. package/dist/stories/group-header.stories.js +45 -127
  160. package/dist/stories/group-header.stories.js.map +1 -1
  161. package/dist/stories/textarea.stories.d.ts +1 -1
  162. package/dist/stories/textarea.stories.js +39 -121
  163. package/dist/stories/textarea.stories.js.map +1 -1
  164. package/dist/stories/tree-column-with-checkbox.stories.d.ts +1 -1
  165. package/dist/stories/tree-column-with-checkbox.stories.js +49 -136
  166. package/dist/stories/tree-column-with-checkbox.stories.js.map +1 -1
  167. package/dist/stories/tree-column.stories.d.ts +1 -1
  168. package/dist/stories/tree-column.stories.js +49 -136
  169. package/dist/stories/tree-column.stories.js.map +1 -1
  170. package/dist/tsconfig.tsbuildinfo +1 -1
  171. package/docs/default-value/default-value.md +1 -1
  172. package/docs/default-value/value-generator/date-generator.md +2 -2
  173. package/docs/default-value/value-generator/month-date-generator.md +2 -2
  174. package/docs/default-value/value-generator/week-date-generator.md +2 -2
  175. package/docs/default-value/value-generator/year-date-generator.md +2 -2
  176. package/package.json +21 -20
  177. package/src/configure/rows-option-builder.ts +11 -1
  178. package/src/configure/zero-config.ts +1 -0
  179. package/src/data-card/data-card-gutter-menu.ts +5 -5
  180. package/src/data-card/data-card.ts +3 -3
  181. package/src/data-card/event-handlers/record-card-click-handler.ts +1 -1
  182. package/src/data-card/record-card.ts +30 -32
  183. package/src/data-grid/data-grid-accum-field.ts +8 -3
  184. package/src/data-grid/data-grid-body.ts +10 -5
  185. package/src/data-grid/data-grid-field.ts +1 -1
  186. package/src/data-grid/data-grid-footer.ts +18 -11
  187. package/src/data-grid/data-grid-header.ts +68 -65
  188. package/src/data-grid/data-grid.ts +14 -4
  189. package/src/data-grist.ts +275 -27
  190. package/src/data-list/data-list-gutter.ts +12 -0
  191. package/src/data-list/data-list.ts +3 -3
  192. package/src/data-list/event-handlers/record-partial-click-handler.ts +1 -1
  193. package/src/data-list/record-partial.ts +22 -22
  194. package/src/data-manipulator.ts +52 -31
  195. package/src/editors/ox-grist-editor-checkbox.ts +12 -2
  196. package/src/editors/ox-grist-editor-datetime.ts +1 -2
  197. package/src/editors/ox-grist-editor-file.ts +12 -2
  198. package/src/editors/ox-grist-editor-image.ts +10 -7
  199. package/src/editors/ox-grist-editor-number.ts +11 -9
  200. package/src/editors/ox-grist-editor-text.ts +4 -0
  201. package/src/editors/ox-grist-editor-textarea.ts +4 -0
  202. package/src/editors/ox-grist-editor.ts +14 -10
  203. package/src/empty-note.ts +3 -3
  204. package/src/filters/filter-checkbox.ts +15 -5
  205. package/src/filters/filter-range-date.ts +16 -1
  206. package/src/filters/filter-styles.ts +47 -28
  207. package/src/filters/filters-form.ts +76 -50
  208. package/src/gutters/gutter-button.ts +3 -3
  209. package/src/gutters/gutter-dirty.ts +5 -5
  210. package/src/handlers/contextmenu-tree-mutation.ts +5 -23
  211. package/src/index.ts +0 -1
  212. package/src/record-view/record-creator.ts +1 -1
  213. package/src/record-view/record-view-body.ts +4 -4
  214. package/src/record-view/record-view.ts +5 -5
  215. package/src/sorters/sorters-control.ts +3 -3
  216. package/src/types.ts +1 -9
  217. package/stories/accumulator.stories.ts +54 -129
  218. package/stories/barcode-input-filter.stories.ts +53 -89
  219. package/stories/default-filters.stories.ts +53 -89
  220. package/stories/dynamic-editable.stories.ts +68 -92
  221. package/stories/empty-sorters.stories.ts +53 -89
  222. package/stories/explicit-fetch.stories.ts +54 -90
  223. package/stories/fixed-column.stories.ts +57 -137
  224. package/stories/grid-setting.stories.ts +441 -0
  225. package/stories/grist-modes.stories.ts +86 -155
  226. package/stories/group-header.stories.ts +57 -137
  227. package/stories/textarea.stories.ts +42 -127
  228. package/stories/tree-column-with-checkbox.stories.ts +53 -138
  229. package/stories/tree-column.stories.ts +53 -138
  230. package/themes/grist-theme.css +1 -1
  231. package/dist/src/value-generator/date-generator.d.ts +0 -6
  232. package/dist/src/value-generator/date-generator.js +0 -30
  233. package/dist/src/value-generator/date-generator.js.map +0 -1
  234. package/dist/src/value-generator/hour-time-generator.d.ts +0 -7
  235. package/dist/src/value-generator/hour-time-generator.js +0 -29
  236. package/dist/src/value-generator/hour-time-generator.js.map +0 -1
  237. package/dist/src/value-generator/index.d.ts +0 -1
  238. package/dist/src/value-generator/index.js +0 -2
  239. package/dist/src/value-generator/index.js.map +0 -1
  240. package/dist/src/value-generator/minute-time-generator.d.ts +0 -7
  241. package/dist/src/value-generator/minute-time-generator.js +0 -29
  242. package/dist/src/value-generator/minute-time-generator.js.map +0 -1
  243. package/dist/src/value-generator/month-date-generator.d.ts +0 -7
  244. package/dist/src/value-generator/month-date-generator.js +0 -31
  245. package/dist/src/value-generator/month-date-generator.js.map +0 -1
  246. package/dist/src/value-generator/now-generator.d.ts +0 -4
  247. package/dist/src/value-generator/now-generator.js +0 -8
  248. package/dist/src/value-generator/now-generator.js.map +0 -1
  249. package/dist/src/value-generator/registry.d.ts +0 -11
  250. package/dist/src/value-generator/registry.js +0 -50
  251. package/dist/src/value-generator/registry.js.map +0 -1
  252. package/dist/src/value-generator/time-generator.d.ts +0 -6
  253. package/dist/src/value-generator/time-generator.js +0 -28
  254. package/dist/src/value-generator/time-generator.js.map +0 -1
  255. package/dist/src/value-generator/today-generator.d.ts +0 -4
  256. package/dist/src/value-generator/today-generator.js +0 -8
  257. package/dist/src/value-generator/today-generator.js.map +0 -1
  258. package/dist/src/value-generator/week-date-generator.d.ts +0 -7
  259. package/dist/src/value-generator/week-date-generator.js +0 -29
  260. package/dist/src/value-generator/week-date-generator.js.map +0 -1
  261. package/dist/src/value-generator/year-date-generator.d.ts +0 -7
  262. package/dist/src/value-generator/year-date-generator.js +0 -29
  263. package/dist/src/value-generator/year-date-generator.js.map +0 -1
  264. package/src/value-generator/date-generator.ts +0 -35
  265. package/src/value-generator/hour-time-generator.ts +0 -43
  266. package/src/value-generator/index.ts +0 -1
  267. package/src/value-generator/minute-time-generator.ts +0 -43
  268. package/src/value-generator/month-date-generator.ts +0 -38
  269. package/src/value-generator/now-generator.ts +0 -10
  270. package/src/value-generator/registry.ts +0 -58
  271. package/src/value-generator/time-generator.ts +0 -33
  272. package/src/value-generator/today-generator.ts +0 -10
  273. package/src/value-generator/week-date-generator.ts +0 -40
  274. package/src/value-generator/year-date-generator.ts +0 -36
@@ -2,11 +2,12 @@ import '../src/index.js'
2
2
  import '../src/filters/filters-form.js'
3
3
  import '../src/sorters/sorters-control.js'
4
4
  import '@operato/popup/ox-popup-list.js'
5
- import '@material/mwc-icon'
5
+ import '@material/web/icon/icon.js'
6
6
 
7
7
  import { html, TemplateResult } from 'lit'
8
8
 
9
9
  import { FetchHandler } from '../src/types.js'
10
+ import { CommonHeaderStyles, CommonGristStyles } from '@operato/styles'
10
11
 
11
12
  const fetchHandler: FetchHandler = async ({ filters, page, limit }) => {
12
13
  var total = 120993
@@ -102,95 +103,58 @@ interface Story<T> {
102
103
 
103
104
  interface ArgTypes {}
104
105
 
105
- const Template: Story<ArgTypes> = ({}: ArgTypes) => html` <link
106
- href="https://fonts.googleapis.com/css?family=Material+Icons&display=block"
107
- rel="stylesheet"
108
- />
109
- <link href="/themes/app-theme.css" rel="stylesheet" />
110
- <link href="/themes/oops-theme.css" rel="stylesheet" />
111
- <link href="/themes/grist-theme.css" rel="stylesheet" />
112
-
113
- <style>
114
- [slot='headroom'] {
115
- display: flex;
116
- flex-direction: row;
117
- align-items: center;
118
- padding: var(--padding-default) var(--padding-wide);
119
- background-color: var(--theme-white-color);
120
- box-shadow: var(--box-shadow);
121
-
122
- --mdc-icon-size: 24px;
123
- }
124
- #sorters mwc-icon,
125
- #modes mwc-icon {
126
- --mdc-icon-size: 18px;
127
- }
128
- #sorters {
129
- margin-left: auto;
130
- margin-right: var(--margin-default);
131
- padding-left: var(--padding-narrow);
132
- border-bottom: var(--border-dark-color);
133
- position: relative;
134
- color: var(--secondary-color);
135
- font-size: var(--fontsize-default);
136
- user-select: none;
137
- }
138
-
139
- #sorters > * {
140
- padding: var(--padding-narrow);
141
- vertical-align: middle;
142
- }
143
-
144
- #filters {
145
- display: flex;
146
- justify-content: center;
147
- align-items: center;
148
- }
149
-
150
- #filters * {
151
- margin-right: var(--margin-default);
152
- }
153
-
154
- @media only screen and (max-width: 460px) {
155
- #filters {
156
- flex-direction: column;
157
- }
158
-
159
- #modes {
160
- display: none;
161
- }
162
- }
163
- </style>
164
-
165
- <ox-grist
166
- .config=${config}
167
- mode="GRID"
168
- .fetchHandler=${fetchHandler}
169
- @filters-change=${(e: Event) => console.log('filters', (e.target as any).filters)}
170
- >
171
- <div slot="headroom">
172
- <div id="filters">
173
- <ox-filters-form></ox-filters-form>
174
- </div>
175
-
176
- <div id="sorters">
177
- Sort
178
- <mwc-icon
179
- @click=${(e: Event) => {
180
- const target = e.currentTarget as HTMLElement
181
- ;(target.closest('#sorters')!.querySelector('#sorter-control') as any).open({
182
- right: 0,
183
- top: target.offsetTop + target.offsetHeight
184
- })
185
- }}
186
- >expand_more</mwc-icon
187
- >
188
- <ox-popup id="sorter-control">
189
- <ox-sorters-control> </ox-sorters-control>
190
- </ox-popup>
106
+ const Template: Story<ArgTypes> = ({}: ArgTypes) =>
107
+ html` <link
108
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
109
+ rel="stylesheet"
110
+ />
111
+ <link
112
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,100..700,0..1"
113
+ rel="stylesheet"
114
+ />
115
+ <link
116
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL@20..48,100..700,0..1"
117
+ rel="stylesheet"
118
+ />
119
+
120
+ <link href="/themes/app-theme.css" rel="stylesheet" />
121
+ <link href="/themes/oops-theme.css" rel="stylesheet" />
122
+ <link href="/themes/grist-theme.css" rel="stylesheet" />
123
+
124
+ <style>
125
+ ${CommonGristStyles.cssText}
126
+ ${CommonHeaderStyles.cssText}
127
+ </style>
128
+
129
+ <ox-grist
130
+ .config=${config}
131
+ mode="GRID"
132
+ .fetchHandler=${fetchHandler}
133
+ @filters-change=${(e: Event) => console.log('filters', (e.target as any).filters)}
134
+ >
135
+ <div slot="headroom">
136
+ <div id="filters">
137
+ <ox-filters-form></ox-filters-form>
138
+ </div>
139
+
140
+ <div id="sorters">
141
+ Sort
142
+ <md-icon
143
+ @click=${(e: Event) => {
144
+ const target = e.currentTarget as HTMLElement
145
+ ;(target.closest('#sorters')!.querySelector('#sorter-control') as any).open({
146
+ right: 0,
147
+ top: target.offsetTop + target.offsetHeight
148
+ })
149
+ }}
150
+ >expand_more</md-icon
151
+ >
152
+ <ox-popup id="sorter-control">
153
+ <ox-sorters-control> </ox-sorters-control>
154
+ </ox-popup>
155
+ </div>
191
156
  </div>
192
- </div>
193
- </ox-grist>`
157
+ </ox-grist>`
194
158
 
195
159
  export const Regular = Template.bind({})
196
160
  Regular.args = {}
@@ -2,11 +2,12 @@ import '../src/index.js'
2
2
  import '../src/filters/filters-form.js'
3
3
  import '../src/sorters/sorters-control.js'
4
4
  import '@operato/popup/ox-popup-list.js'
5
- import '@material/mwc-icon'
5
+ import '@material/web/icon/icon.js'
6
6
 
7
7
  import { html, TemplateResult } from 'lit'
8
8
 
9
9
  import { FetchHandler } from '../src/types.js'
10
+ import { CommonHeaderStyles, CommonGristStyles } from '@operato/styles'
10
11
 
11
12
  const fetchHandler: FetchHandler = async ({ page, limit }) => {
12
13
  var total = 120993
@@ -107,96 +108,59 @@ interface ArgTypes {
107
108
  explicitFetch: boolean
108
109
  }
109
110
 
110
- const Template: Story<ArgTypes> = ({ explicitFetch = false }: ArgTypes) => html` <link
111
- href="https://fonts.googleapis.com/css?family=Material+Icons&display=block"
112
- rel="stylesheet"
113
- />
114
- <link href="/themes/app-theme.css" rel="stylesheet" />
115
- <link href="/themes/oops-theme.css" rel="stylesheet" />
116
- <link href="/themes/grist-theme.css" rel="stylesheet" />
117
-
118
- <style>
119
- [slot='headroom'] {
120
- display: flex;
121
- flex-direction: row;
122
- align-items: center;
123
- padding: var(--padding-default) var(--padding-wide);
124
- background-color: var(--theme-white-color);
125
- box-shadow: var(--box-shadow);
126
-
127
- --mdc-icon-size: 24px;
128
- }
129
- #sorters mwc-icon,
130
- #modes mwc-icon {
131
- --mdc-icon-size: 18px;
132
- }
133
- #sorters {
134
- margin-left: auto;
135
- margin-right: var(--margin-default);
136
- padding-left: var(--padding-narrow);
137
- border-bottom: var(--border-dark-color);
138
- position: relative;
139
- color: var(--secondary-color);
140
- font-size: var(--fontsize-default);
141
- user-select: none;
142
- }
143
-
144
- #sorters > * {
145
- padding: var(--padding-narrow);
146
- vertical-align: middle;
147
- }
148
-
149
- #filters {
150
- display: flex;
151
- justify-content: center;
152
- align-items: center;
153
- }
154
-
155
- #filters * {
156
- margin-right: var(--margin-default);
157
- }
158
-
159
- @media only screen and (max-width: 460px) {
160
- #filters {
161
- flex-direction: column;
162
- }
163
-
164
- #modes {
165
- display: none;
166
- }
167
- }
168
- </style>
169
-
170
- <ox-grist
171
- .config=${config}
172
- mode="GRID"
173
- ?explicit-fetch=${explicitFetch}
174
- .fetchHandler=${fetchHandler}
175
- @filters-change=${(e: Event) => console.log('filters', (e.target as any).filters)}
176
- >
177
- <div slot="headroom">
178
- <div id="filters">
179
- <ox-filters-form></ox-filters-form>
180
- </div>
181
-
182
- <div id="sorters">
183
- Sort
184
- <mwc-icon
185
- @click=${(e: Event) => {
186
- const target = e.currentTarget as HTMLElement
187
- ;(target.closest('#sorters')!.querySelector('#sorter-control') as any).open({
188
- right: 0,
189
- top: target.offsetTop + target.offsetHeight
190
- })
191
- }}
192
- >expand_more</mwc-icon
193
- >
194
- <ox-popup id="sorter-control">
195
- <ox-sorters-control> </ox-sorters-control>
196
- </ox-popup>
111
+ const Template: Story<ArgTypes> = ({ explicitFetch = false }: ArgTypes) =>
112
+ html` <link
113
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
114
+ rel="stylesheet"
115
+ />
116
+ <link
117
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,100..700,0..1"
118
+ rel="stylesheet"
119
+ />
120
+ <link
121
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL@20..48,100..700,0..1"
122
+ rel="stylesheet"
123
+ />
124
+
125
+ <link href="/themes/app-theme.css" rel="stylesheet" />
126
+ <link href="/themes/oops-theme.css" rel="stylesheet" />
127
+ <link href="/themes/grist-theme.css" rel="stylesheet" />
128
+
129
+ <style>
130
+ ${CommonGristStyles.cssText}
131
+ ${CommonHeaderStyles.cssText}
132
+ </style>
133
+
134
+ <ox-grist
135
+ .config=${config}
136
+ mode="GRID"
137
+ ?explicit-fetch=${explicitFetch}
138
+ .fetchHandler=${fetchHandler}
139
+ @filters-change=${(e: Event) => console.log('filters', (e.target as any).filters)}
140
+ >
141
+ <div slot="headroom">
142
+ <div id="filters">
143
+ <ox-filters-form></ox-filters-form>
144
+ </div>
145
+
146
+ <div id="sorters">
147
+ Sort
148
+ <md-icon
149
+ @click=${(e: Event) => {
150
+ const target = e.currentTarget as HTMLElement
151
+ ;(target.closest('#sorters')!.querySelector('#sorter-control') as any).open({
152
+ right: 0,
153
+ top: target.offsetTop + target.offsetHeight
154
+ })
155
+ }}
156
+ >expand_more</md-icon
157
+ >
158
+ <ox-popup id="sorter-control">
159
+ <ox-sorters-control> </ox-sorters-control>
160
+ </ox-popup>
161
+ </div>
197
162
  </div>
198
- </div>
199
- </ox-grist>`
163
+ </ox-grist>`
200
164
 
201
165
  export const Regular = Template.bind({})
202
166
  Regular.args = {
@@ -3,7 +3,7 @@ import '../src/filters/filters-form.js'
3
3
  import '../src/sorters/sorters-control.js'
4
4
  import '../src/record-view/record-creator.js'
5
5
  import '@operato/popup/ox-popup-list.js'
6
- import '@material/mwc-icon'
6
+ import '@material/web/icon/icon.js'
7
7
 
8
8
  import { html, TemplateResult } from 'lit'
9
9
 
@@ -16,6 +16,8 @@ import {
16
16
  ValidationCallback
17
17
  } from '../src/types.js'
18
18
 
19
+ import { CommonHeaderStyles, CommonGristStyles } from '@operato/styles'
20
+
19
21
  const fetchHandler: FetchHandler = async ({ page, limit }) => {
20
22
  var total = 120993
21
23
  var start = (page! - 1) * limit!
@@ -50,10 +52,10 @@ const fetchHandler: FetchHandler = async ({ page, limit }) => {
50
52
  idx % 4 === 0
51
53
  ? '' /* no source */
52
54
  : idx % 4 === 1
53
- ? `http://www.hatiolab.com/assets/img/operato-biz3.png`
54
- : idx % 4 === 2
55
- ? `http://www.hatiolab.com/assets/img/thingsboard-30.png`
56
- : `http://www.hatiolab.com/wrong-url.png` /* wrong source */,
55
+ ? `http://www.hatiolab.com/assets/img/operato-biz3.png`
56
+ : idx % 4 === 2
57
+ ? `http://www.hatiolab.com/assets/img/thingsboard-30.png`
58
+ : `http://www.hatiolab.com/wrong-url.png` /* wrong source */,
57
59
  role: ['admin', 'worker', 'tester'][idx % 3],
58
60
  color: idx % 2 ? `#87f018` : `#180f87`,
59
61
  rate: Math.round(Math.random() * 100),
@@ -330,144 +332,62 @@ interface ArgTypes {
330
332
  config: object
331
333
  }
332
334
 
333
- const Template: Story<ArgTypes> = ({ config }: ArgTypes) => html` <link
334
- href="https://fonts.googleapis.com/css?family=Material+Icons&display=block"
335
- rel="stylesheet"
336
- />
337
- <link href="/themes/app-theme.css" rel="stylesheet" />
338
- <link href="/themes/oops-theme.css" rel="stylesheet" />
339
- <link href="/themes/grist-theme.css" rel="stylesheet" />
340
-
341
- <style>
342
- [slot='headroom'] {
343
- display: flex;
344
- flex-direction: row;
345
- align-items: center;
346
- padding: var(--padding-default) var(--padding-wide);
347
- background-color: var(--theme-white-color);
348
- box-shadow: var(--box-shadow);
349
-
350
- --mdc-icon-size: 24px;
351
- }
352
- #sorters mwc-icon,
353
- #modes mwc-icon {
354
- --mdc-icon-size: 18px;
355
- }
356
- #sorters {
357
- margin-left: auto;
358
- margin-right: var(--margin-default);
359
- padding-left: var(--padding-narrow);
360
- border-bottom: var(--border-dark-color);
361
- position: relative;
362
- color: var(--secondary-color);
363
- font-size: var(--fontsize-default);
364
- user-select: none;
365
- }
366
-
367
- #sorters > * {
368
- padding: var(--padding-narrow);
369
- vertical-align: middle;
370
- }
371
-
372
- #modes > * {
373
- padding: var(--padding-narrow);
374
- opacity: 0.5;
375
- color: var(--primary-text-color);
376
- cursor: pointer;
377
- }
378
-
379
- #modes > mwc-icon[active] {
380
- border-radius: 9px;
381
- background-color: rgba(var(--primary-color-rgb), 0.05);
382
- opacity: 1;
383
- color: var(--secondary-text-color);
384
- cursor: default;
385
- }
335
+ const Template: Story<ArgTypes> = ({ config }: ArgTypes) =>
336
+ html` <link
337
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
338
+ rel="stylesheet"
339
+ />
340
+ <link
341
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,100..700,0..1"
342
+ rel="stylesheet"
343
+ />
344
+ <link
345
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL@20..48,100..700,0..1"
346
+ rel="stylesheet"
347
+ />
386
348
 
387
- #modes > mwc-icon:hover {
388
- opacity: 1;
389
- color: var(--secondary-text-color);
390
- }
349
+ <link href="/themes/app-theme.css" rel="stylesheet" />
350
+ <link href="/themes/oops-theme.css" rel="stylesheet" />
351
+ <link href="/themes/grist-theme.css" rel="stylesheet" />
391
352
 
392
- #add {
393
- width: 50px;
394
- text-align: right;
395
- }
353
+ <style>
354
+ ${CommonGristStyles.cssText}
355
+ ${CommonHeaderStyles.cssText}
356
+ </style>
396
357
 
397
- #add button {
398
- background-color: var(--primary-color);
399
- border: 0;
400
- border-radius: 50%;
401
- padding: 5px;
402
- width: 36px;
403
- height: 36px;
404
- cursor: pointer;
405
- }
358
+ <ox-grist
359
+ mode="GRID"
360
+ .config=${config}
361
+ .fetchHandler=${fetchHandler}
362
+ @filters-change=${(e: Event) => console.log('filters', (e.target as any).filters)}
363
+ >
364
+ <div slot="headroom">
365
+ <div id="filters">
366
+ <ox-filters-form autofocus></ox-filters-form>
367
+ </div>
406
368
 
407
- #add button:hover {
408
- background-color: var(--focus-background-color);
409
- box-shadow: var(--box-shadow);
410
- }
369
+ <div id="sorters">
370
+ Sort
371
+ <md-icon
372
+ @click=${(e: Event) => {
373
+ const target = e.currentTarget as HTMLElement
374
+ ;(target.closest('#sorters')!.querySelector('#sorter-control') as any).open({
375
+ right: 0,
376
+ top: target.offsetTop + target.offsetHeight
377
+ })
378
+ }}
379
+ >expand_more</md-icon
380
+ >
381
+ <ox-popup id="sorter-control">
382
+ <ox-sorters-control> </ox-sorters-control>
383
+ </ox-popup>
384
+ </div>
411
385
 
412
- #add button mwc-icon {
413
- font-size: 2em;
414
- color: var(--theme-white-color);
415
- }
416
-
417
- #filters {
418
- display: flex;
419
- justify-content: center;
420
- align-items: center;
421
- }
422
-
423
- #filters * {
424
- margin-right: var(--margin-default);
425
- }
426
-
427
- @media only screen and (max-width: 460px) {
428
- #filters {
429
- flex-direction: column;
430
- }
431
-
432
- #modes {
433
- display: none;
434
- }
435
- }
436
- </style>
437
-
438
- <ox-grist
439
- mode="GRID"
440
- .config=${config}
441
- .fetchHandler=${fetchHandler}
442
- @filters-change=${(e: Event) => console.log('filters', (e.target as any).filters)}
443
- >
444
- <div slot="headroom">
445
- <div id="filters">
446
- <ox-filters-form autofocus></ox-filters-form>
386
+ <ox-record-creator id="add" light-popup>
387
+ <button><md-icon>add</md-icon></button>
388
+ </ox-record-creator>
447
389
  </div>
448
-
449
- <div id="sorters">
450
- Sort
451
- <mwc-icon
452
- @click=${(e: Event) => {
453
- const target = e.currentTarget as HTMLElement
454
- ;(target.closest('#sorters')!.querySelector('#sorter-control') as any).open({
455
- right: 0,
456
- top: target.offsetTop + target.offsetHeight
457
- })
458
- }}
459
- >expand_more</mwc-icon
460
- >
461
- <ox-popup id="sorter-control">
462
- <ox-sorters-control> </ox-sorters-control>
463
- </ox-popup>
464
- </div>
465
-
466
- <ox-record-creator id="add" light-popup>
467
- <button><mwc-icon>add</mwc-icon></button>
468
- </ox-record-creator>
469
- </div>
470
- </ox-grist>`
390
+ </ox-grist>`
471
391
 
472
392
  export const Regular = Template.bind({})
473
393
  Regular.args = {