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

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 +433 -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
@@ -30,14 +30,47 @@ function getRelativeHourTime(params: RelativeHourTimeParams = {}): string | numb
30
30
  ## 예제
31
31
 
32
32
  ```typescript
33
+ /* get Date() object */
33
34
  const relativeHourTime = getRelativeHourTime({
34
35
  relativeHour: 2,
35
36
  relativeSeconds: 120,
36
37
  timeZone: 'Asia/Seoul',
38
+ loclae: 'en-CA',
37
39
  format: 'date'
38
40
  })
39
41
 
40
42
  console.log(relativeHourTime)
41
43
  ```
42
44
 
45
+ ```typescript
46
+ /* text format style */
47
+ const relativeHourTime = getRelativeHourTime({
48
+ relativeHour: 2,
49
+ relativeSeconds: 120,
50
+ timeZone: 'Asia/Seoul',
51
+ format: 'h:mm:ss'
52
+ })
53
+
54
+ console.log(relativeHourTime)
55
+ ```
56
+
57
+ ```typescript
58
+ /* Intl.DateTimeFormat style */
59
+ const relativeHourTime = getRelativeHourTime({
60
+ relativeHour: 2,
61
+ relativeSeconds: 120,
62
+ timeZone: 'Asia/Seoul',
63
+ loclae: 'en-CA',
64
+ format: {
65
+ hour: 'numeric',
66
+ minute: 'numeric',
67
+ second: 'numeric',
68
+ hour12: false,
69
+ timeZone: 'America/Los_Angeles'
70
+ }
71
+ })
72
+
73
+ console.log(relativeHourTime)
74
+ ```
75
+
43
76
  이 코드는 현재 시간으로부터 2시간 후와 2분 후의 시간을 `'Asia/Seoul'` 시간대에서의 Date 객체로 반환합니다.
@@ -30,14 +30,47 @@ function getRelativeMinuteTime(params: RelativeMinuteTimeParams = {}): string |
30
30
  ## 예제
31
31
 
32
32
  ```typescript
33
+ /* get Date() object */
33
34
  const relativeMinuteTime = getRelativeMinuteTime({
34
35
  relativeMinutes: 15,
35
36
  relativeSeconds: 30,
36
37
  timeZone: 'Asia/Seoul',
38
+ loclae: 'en-CA',
37
39
  format: 'date'
38
40
  })
39
41
 
40
42
  console.log(relativeMinuteTime)
41
43
  ```
42
44
 
45
+ ```typescript
46
+ /* text format style */
47
+ const relativeMinuteTime = getRelativeMinuteTime({
48
+ relativeMinutes: 15,
49
+ relativeSeconds: 30,
50
+ timeZone: 'Asia/Seoul',
51
+ format: 'mm:ss'
52
+ })
53
+
54
+ console.log(relativeMinuteTime)
55
+ ```
56
+
57
+ ```typescript
58
+ /* Intl.DateTimeFormat style */
59
+ const relativeMinuteTime = getRelativeMinuteTime({
60
+ relativeMinutes: 15,
61
+ relativeSeconds: 30,
62
+ timeZone: 'Asia/Seoul',
63
+ loclae: 'en-CA',
64
+ format: {
65
+ hour: 'numeric',
66
+ minute: 'numeric',
67
+ second: 'numeric',
68
+ hour12: false,
69
+ timeZone: 'America/Los_Angeles'
70
+ }
71
+ })
72
+
73
+ console.log(relativeMinuteTime)
74
+ ```
75
+
43
76
  이 코드는 현재 시간으로부터 15분 30초 후의 시간을 `'Asia/Seoul'` 시간대에서의 Date 객체로 반환합니다.
@@ -30,10 +30,12 @@ function getRelativeMonthDate(params: RelativeMonthDateParams = {}): string | nu
30
30
  ## 예제
31
31
 
32
32
  ```typescript
33
+ /* get Date() object */
33
34
  const relativeMonthDate = getRelativeMonthDate({
34
35
  relativeMonths: 2,
35
36
  relativeDays: 3,
36
37
  timeZone: 'Asia/Seoul',
38
+ loclae: 'en-CA',
37
39
  format: 'date'
38
40
  })
39
41
 
@@ -28,12 +28,41 @@ function getCurrentTime(
28
28
  ## 예제
29
29
 
30
30
  ```typescript
31
+ /* get Date() object */
31
32
  const currentTime = getCurrentTime({
32
33
  timeZone: 'Asia/Seoul',
34
+ loclae: 'en-CA',
33
35
  format: 'date'
34
36
  })
35
37
 
36
38
  console.log(currentTime)
37
39
  ```
38
40
 
41
+ ```typescript
42
+ /* text format style */
43
+ const relativeDate = getCurrentTime({
44
+ relativeDays: 1,
45
+ timeZone: 'Asia/Seoul',
46
+ format: 'YYYY-MM-DD'
47
+ })
48
+
49
+ console.log(relativeDate)
50
+ ```
51
+
52
+ ```typescript
53
+ /* Intl.DateTimeFormat style */
54
+ const relativeDate = getCurrentTime({
55
+ relativeDays: 1,
56
+ timeZone: 'Asia/Seoul',
57
+ loclae: 'en-CA' /* YYYY-MM-DD format */,
58
+ format: {
59
+ year: 'numeric',
60
+ month: '2-digit',
61
+ day: '2-digit'
62
+ }
63
+ })
64
+
65
+ console.log(relativeDate)
66
+ ```
67
+
39
68
  이 코드는 현재 시간을 `'Asia/Seoul'` 시간대에서의 Date 객체로 반환합니다.
@@ -28,13 +28,44 @@ function getRelativeTime(params: RelativeTimeParams = {}): string | number | Dat
28
28
  ## 예제
29
29
 
30
30
  ```typescript
31
+ /* get Date() object */
31
32
  const relativeTime = getRelativeTime({
32
33
  relativeSeconds: 3600,
33
34
  timeZone: 'Asia/Seoul',
35
+ loclae: 'en-CA',
34
36
  format: 'date'
35
37
  })
36
38
 
37
39
  console.log(relativeTime)
38
40
  ```
39
41
 
42
+ ```typescript
43
+ /* text format style */
44
+ const relativeTime = getRelativeTime({
45
+ relativeSeconds: 3600,
46
+ timeZone: 'Asia/Seoul',
47
+ format: 'hh:mm:ss'
48
+ })
49
+
50
+ console.log(relativeTime)
51
+ ```
52
+
53
+ ```typescript
54
+ /* Intl.DateTimeFormat style */
55
+ const relativeTime = getRelativeTime({
56
+ relativeSeconds: 3600,
57
+ timeZone: 'Asia/Seoul',
58
+ loclae: 'en-CA',
59
+ format: {
60
+ hour: 'numeric',
61
+ minute: 'numeric',
62
+ second: 'numeric',
63
+ hour12: false,
64
+ timeZone: 'America/Los_Angeles'
65
+ }
66
+ })
67
+
68
+ console.log(relativeTime)
69
+ ```
70
+
40
71
  이 코드는 현재 시간으로부터 1시간 후의 시간을 `'Asia/Seoul'` 시간대에서의 Date 객체로 반환합니다.
@@ -28,12 +28,41 @@ function getToday(
28
28
  ## 예제
29
29
 
30
30
  ```typescript
31
+ /* get Date() object */
31
32
  const todayDate = getToday({
32
33
  timeZone: 'Asia/Seoul',
34
+ loclae: 'en-CA',
33
35
  format: 'date'
34
36
  })
35
37
 
36
38
  console.log(todayDate)
37
39
  ```
38
40
 
41
+ ```typescript
42
+ /* text format style */
43
+ const relativeDate = getToday({
44
+ relativeDays: 1,
45
+ timeZone: 'Asia/Seoul',
46
+ format: 'YYYY-MM-DD'
47
+ })
48
+
49
+ console.log(relativeDate)
50
+ ```
51
+
52
+ ```typescript
53
+ /* Intl.DateTimeFormat style */
54
+ const relativeDate = getToday({
55
+ relativeDays: 1,
56
+ timeZone: 'Asia/Seoul',
57
+ loclae: 'en-CA' /* YYYY-MM-DD format */,
58
+ format: {
59
+ year: 'numeric',
60
+ month: '2-digit',
61
+ day: '2-digit'
62
+ }
63
+ })
64
+
65
+ console.log(relativeDate)
66
+ ```
67
+
39
68
  이 코드는 오늘의 날짜를 `'Asia/Seoul'` 시간대에서의 Date 객체로 반환합니다.
@@ -30,14 +30,45 @@ function getRelativeWeekDate(params: RelativeWeekDateParams = {}): string | numb
30
30
  ## 예제
31
31
 
32
32
  ```typescript
33
+ /* get Date() object */
33
34
  const relativeWeekDate = getRelativeWeekDate({
34
35
  relativeWeeks: 2,
35
36
  relativeDays: 3,
36
37
  timeZone: 'Asia/Seoul',
38
+ loclae: 'en-CA',
37
39
  format: 'date'
38
40
  })
39
41
 
40
42
  console.log(relativeWeekDate)
41
43
  ```
42
44
 
45
+ ```typescript
46
+ /* text format style */
47
+ const relativeWeekDate = getRelativeWeekDate({
48
+ relativeWeeks: 2,
49
+ relativeDays: 3,
50
+ timeZone: 'Asia/Seoul',
51
+ format: 'YYYY-MM-DD'
52
+ })
53
+
54
+ console.log(relativeWeekDate)
55
+ ```
56
+
57
+ ```typescript
58
+ /* Intl.DateTimeFormat style */
59
+ const relativeWeekDate = getRelativeWeekDate({
60
+ relativeWeeks: 2,
61
+ relativeDays: 3,
62
+ timeZone: 'Asia/Seoul',
63
+ loclae: 'en-CA' /* YYYY-MM-DD format */,
64
+ format: {
65
+ year: 'numeric',
66
+ month: '2-digit',
67
+ day: '2-digit'
68
+ }
69
+ })
70
+
71
+ console.log(relativeWeekDate)
72
+ ```
73
+
43
74
  이 코드는 현재 시간으로부터 2주 후와 3일 후의 날짜를 `'Asia/Seoul'` 시간대에서의 Date 객체로 반환합니다.
@@ -30,14 +30,45 @@ function getRelativeYearDate(params: RelativeYearDateParams = {}): string | numb
30
30
  ## 예제
31
31
 
32
32
  ```typescript
33
+ /* get Date() object */
33
34
  const relativeYearDate = getRelativeYearDate({
34
35
  relativeYears: 2,
35
36
  relativeDays: 3,
36
37
  timeZone: 'Asia/Seoul',
38
+ loclae: 'en-CA',
37
39
  format: 'date'
38
40
  })
39
41
 
40
42
  console.log(relativeYearDate)
41
43
  ```
42
44
 
45
+ ```typescript
46
+ /* text format style */
47
+ const relativeYearDate = getRelativeYearDate({
48
+ relativeYears: 2,
49
+ relativeDays: 3,
50
+ timeZone: 'Asia/Seoul',
51
+ format: 'YYYY-MM-DD'
52
+ })
53
+
54
+ console.log(relativeYearDate)
55
+ ```
56
+
57
+ ```typescript
58
+ /* Intl.DateTimeFormat style */
59
+ const relativeYearDate = getRelativeYearDate({
60
+ relativeYears: 2,
61
+ relativeDays: 3,
62
+ timeZone: 'Asia/Seoul',
63
+ loclae: 'en-CA' /* YYYY-MM-DD format */,
64
+ format: {
65
+ year: 'numeric',
66
+ month: '2-digit',
67
+ day: '2-digit'
68
+ }
69
+ })
70
+
71
+ console.log(relativeYearDate)
72
+ ```
73
+
43
74
  이 코드는 현재 시간으로부터 2년 후와 3일 후의 날짜를 `'Asia/Seoul'` 시간대에서의 Date 객체로 반환합니다.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@operato/data-grist",
3
- "version": "2.0.0-alpha.99",
3
+ "version": "2.0.0-beta.0",
4
4
  "description": "User interface for grid (desktop) and list (mobile)",
5
5
  "author": "heartyoh",
6
6
  "main": "dist/index.js",
@@ -21,7 +21,8 @@
21
21
  "./ox-report.js": "./dist/src/data-report.js",
22
22
  "./ox-filters-form.js": "./dist/src/filters/filters-form.js",
23
23
  "./ox-sorters-control.js": "./dist/src/sorters/sorters-control.js",
24
- "./ox-record-creator.js": "./dist/src/record-view/record-creator.js"
24
+ "./ox-record-creator.js": "./dist/src/record-view/record-creator.js",
25
+ "./ox-grist-personalizer.js": "./dist/src/personalizer/ox-grist-personalizer.js"
25
26
  },
26
27
  "typesVersions": {
27
28
  "*": {
@@ -39,6 +40,9 @@
39
40
  ],
40
41
  "ox-record-creator.js": [
41
42
  "dist/src/record-view/record-creator.d.ts"
43
+ ],
44
+ "ox-grist-personalizer.js": [
45
+ "dist/src/personalizer/ox-grist-personalizer.d.ts"
42
46
  ]
43
47
  }
44
48
  },
@@ -56,13 +60,14 @@
56
60
  },
57
61
  "dependencies": {
58
62
  "@material/web": "^1.4.0",
59
- "@operato/headroom": "^2.0.0-alpha.57",
60
- "@operato/input": "^2.0.0-alpha.99",
61
- "@operato/popup": "^2.0.0-alpha.99",
62
- "@operato/pull-to-refresh": "^2.0.0-alpha.57",
63
- "@operato/styles": "^2.0.0-alpha.99",
64
- "@operato/time-calculator": "^2.0.0-alpha.57",
65
- "@operato/utils": "^2.0.0-alpha.68",
63
+ "@operato/headroom": "^2.0.0-beta.0",
64
+ "@operato/input": "^2.0.0-beta.0",
65
+ "@operato/p13n": "^2.0.0-beta.0",
66
+ "@operato/popup": "^2.0.0-beta.0",
67
+ "@operato/pull-to-refresh": "^2.0.0-beta.0",
68
+ "@operato/styles": "^2.0.0-beta.0",
69
+ "@operato/time-calculator": "^2.0.0-beta.0",
70
+ "@operato/utils": "^2.0.0-beta.0",
66
71
  "i18next": "^21.5.4",
67
72
  "json5": "^2.2.0",
68
73
  "lit": "^3.1.2",
@@ -101,5 +106,5 @@
101
106
  "prettier --write"
102
107
  ]
103
108
  },
104
- "gitHead": "8641cdd871ffdbef9e5b2a79bbf3862fb0422e3e"
109
+ "gitHead": "1c7306d2c3170b773e16d5d4ef79b490584d5441"
105
110
  }
@@ -34,7 +34,7 @@ export class DataCardField extends LitElement {
34
34
  }
35
35
 
36
36
  :host > * {
37
- margin: 0;
37
+ margin: var(--spacing-none);
38
38
 
39
39
  overflow: hidden;
40
40
 
@@ -44,7 +44,7 @@ export class DataCardField extends LitElement {
44
44
 
45
45
  :host > *[center] {
46
46
  flex: none;
47
- margin: 0 auto;
47
+ margin: var(--spacing-none) auto;
48
48
  }
49
49
 
50
50
  :host([name]) label {
@@ -16,22 +16,22 @@ class DataCardGutterMenu extends LitElement {
16
16
  }
17
17
 
18
18
  ::slotted(ox-popup) {
19
- padding: 4px;
19
+ padding: var(--spacing-small);
20
20
  }
21
21
 
22
22
  md-icon {
23
23
  flex: 1;
24
- margin: 0;
25
- margin-bottom: 1px;
24
+ margin: var(--spacing-none);
26
25
  border: var(--data-card-item-btn-border);
27
26
  border-radius: var(--data-card-item-btn-border-radius);
28
27
  padding: var(--data-card-item-btn-padding);
29
- font-size: var(--grid-record-fontsize);
28
+ font-size: var(--md-sys-typescale-label-large-size, 0.875rem);
30
29
  }
31
30
 
32
31
  md-icon:hover {
33
32
  cursor: pointer;
34
- color: var(--grid-record-color-hover);
33
+ background-color: var(--md-sys-color-primary);
34
+ color: var(--md-sys-color-on-primary);
35
35
  }
36
36
  `
37
37
 
@@ -12,7 +12,7 @@ export class DataCardGutter extends LitElement {
12
12
  css`
13
13
  :host {
14
14
  background-color: transparent;
15
-
15
+ align-content: center;
16
16
  font-size: var(--grid-record-wide-fontsize);
17
17
  text-overflow: ellipsis;
18
18
  color: var(--grid-record-color);
@@ -20,22 +20,22 @@ export class DataCardGutter extends LitElement {
20
20
 
21
21
  * {
22
22
  flex: 1;
23
- margin: 0;
24
- margin-bottom: 1px;
23
+ margin: var(--spacing-tiny);
25
24
  border: var(--data-card-item-btn-border);
26
25
  border-radius: var(--data-card-item-btn-border-radius);
27
26
  padding: var(--data-card-item-btn-padding);
28
- font-size: var(--grid-record-fontsize);
27
+ font-size: var(--md-sys-typescale-label-large-size, 0.875rem);
29
28
  }
30
29
 
31
30
  *:hover {
32
31
  cursor: pointer;
33
- color: var(--grid-record-color-hover);
32
+ background-color: var(--md-sys-color-primary);
33
+ color: var(--md-sys-color-on-primary);
34
34
  }
35
35
 
36
36
  *[center] {
37
37
  flex: none;
38
- margin: 0 auto;
38
+ margin: var(--spacing-none) auto;
39
39
  }
40
40
  `
41
41
  ]
@@ -13,16 +13,13 @@ export class DataCard extends DataManipulator {
13
13
  static styles = [
14
14
  css`
15
15
  :host {
16
- background-color: var(--data-card-background-color);
17
16
  overflow-y: auto;
18
- padding: var(--padding-wide);
17
+ padding: var(--spacing-medium);
19
18
 
20
19
  display: grid;
21
20
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
22
-
23
21
  grid-template-rows: min-content;
24
-
25
- grid-gap: var(--margin-wide);
22
+ grid-gap: var(--spacing-large);
26
23
  }
27
24
 
28
25
  ox-record-card {
@@ -33,24 +30,25 @@ export class DataCard extends DataManipulator {
33
30
  border-radius: var(--data-card-record-card-border-radius);
34
31
  }
35
32
  ox-record-card:hover {
33
+ background-color: var(--md-sys-color-inverse-primary);
36
34
  border: var(--data-card-record-card-border-hover);
37
35
  box-shadow: var(--data-card-record-card-boxshadow-hover);
38
36
  }
39
37
 
40
38
  [selected-row] {
41
- background-color: var(--data-card-record-card-selected-border);
39
+ background-color: var(--grid-record-selected-background-color);
42
40
  }
43
41
 
44
42
  #upward {
45
- --md-icon-size: 26px;
43
+ --md-icon-size: var(--icon-size-large);
46
44
  position: absolute;
47
45
  top: var(--data-card-fab-position-vertical);
48
46
  right: var(--data-card-fab-position-horizontal);
49
47
  background-color: rgba(255, 255, 255, 0.7);
50
- border-radius: 20px;
48
+ border-radius: var(--md-sys-shape-corner-large);
51
49
  color: var(--data-card-fab-color);
52
50
  box-shadow: var(--data-card-fab-shadow);
53
- padding: 7px;
51
+ padding: var(--spacing-small);
54
52
  }
55
53
 
56
54
  slot {
@@ -41,24 +41,24 @@ export class RecordCard extends LitElement {
41
41
  :host([dirty])::before {
42
42
  content: '';
43
43
  position: absolute;
44
- left: 0;
45
- top: 0;
44
+ left: var(--spacing-none);
45
+ top: var(--spacing-none);
46
46
 
47
- width: 0px;
48
- height: 0px;
47
+ width: var(--spacing-none);
48
+ height: var(--spacing-none);
49
49
  border-top: var(--grid-record-dirty-border-top);
50
50
  border-right: var(--grid-record-dirty-border-left);
51
51
  }
52
52
 
53
53
  [dirty] {
54
54
  position: absolute;
55
- margin: 0;
55
+ margin: var(--spacing-none);
56
56
  height: 20px;
57
57
 
58
58
  font: var(--grid-record-dirty-icon-font);
59
59
  text-indent: 1px;
60
- left: 0;
61
- top: 0;
60
+ left: var(--spacing-none);
61
+ top: var(--spacing-none);
62
62
  color: var(--grid-record-dirty-color);
63
63
  }
64
64
 
@@ -67,13 +67,12 @@ export class RecordCard extends LitElement {
67
67
  height: var(--data-card-thumbnail-height);
68
68
  border-top-left-radius: var(--data-card-record-card-border-radius);
69
69
  border-top-right-radius: var(--data-card-record-card-border-radius);
70
- border-bottom: var(--data-card-thumbnail-border-bottom);
71
70
  overflow: hidden;
72
71
  }
73
72
 
74
73
  [content] {
75
74
  display: grid;
76
- gap: 2px 7px;
75
+ gap: var(--spacing-tiny) var(--spacing-medium);
77
76
  grid-template:
78
77
  'brief gutters'
79
78
  'detail detail';
@@ -84,7 +83,7 @@ export class RecordCard extends LitElement {
84
83
  [brief] {
85
84
  display: flex;
86
85
  flex-direction: column;
87
- gap: 2px;
86
+ gap: var(--spacing-tiny);
88
87
  grid-area: brief;
89
88
  overflow: hidden;
90
89
  }
@@ -22,13 +22,17 @@ export class DataGridAccumField extends LitElement {
22
22
  position: relative;
23
23
 
24
24
  white-space: nowrap;
25
- background-color: var(--grid-accum-record-background-color, #ccc);
26
- border: 1px solid transparent;
25
+ background-color: var(--md-sys-color-inverse-primary);
26
+ border: var(--grid-record-border-bottom);
27
27
  border-width: 1px 0;
28
- border-bottom: var(--grid-record-border-bottom);
28
+ padding: var(--spacing-small);
29
29
 
30
30
  font-size: var(--grid-record-wide-fontsize);
31
- min-height: 19px;
31
+ color: var(--md-sys-color-primary);
32
+ font-weight: var(--md-sys-typescale-label-large-weight, var(--md-ref-typeface-weight-medium, 500));
33
+
34
+ min-height: 30px;
35
+ box-sizing: border-box;
32
36
  }
33
37
 
34
38
  span,
@@ -62,7 +66,7 @@ export class DataGridAccumField extends LitElement {
62
66
  @property({ type: Boolean }) editing = false
63
67
  @property({ type: Object }) value = {}
64
68
  @property({ attribute: false }) emphasized: any = false
65
- @property({ type: String }) fixed?: string
69
+ @property({ type: String, attribute: true }) fixed?: string
66
70
 
67
71
  render(): TemplateResult {
68
72
  if (!this.column || !this.column.accumulator) {
@@ -100,6 +104,8 @@ export class DataGridAccumField extends LitElement {
100
104
  if (changes.has('fixed')) {
101
105
  if (this.fixed) {
102
106
  this.style.left = this.fixed + 'px'
107
+ } else {
108
+ this.style.left = 'unset'
103
109
  }
104
110
  }
105
111
  }
@@ -70,4 +70,16 @@ export const dataGridBodyStyle = css`
70
70
  background-color: transparent;
71
71
  }
72
72
  }
73
+
74
+ @media (prefers-color-scheme: dark) {
75
+ ox-grid-field[focused-row] {
76
+ background-blend-mode: lighten;
77
+ }
78
+ }
79
+
80
+ @media (prefers-color-scheme: light) {
81
+ ox-grid-field[focused-row] {
82
+ background-blend-mode: darken;
83
+ }
84
+ }
73
85
  `