@things-factory/meta-ui 7.0.1-alpha.7 → 7.0.1-alpha.72

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 (245) hide show
  1. package/client/bootstrap.ts +24 -31
  2. package/client/component/filter/filter-form-meta-code-select.ts +99 -0
  3. package/client/component/filter/filter-form-meta-object-select.ts +107 -0
  4. package/client/component/filter/filter-grist-meta-code-select.ts +97 -0
  5. package/client/component/filter/filter-grist-meta-object-select.ts +102 -0
  6. package/client/component/popup/code-input-editor-popup.js +37 -47
  7. package/client/component/popup/file-upload-popup.js +8 -26
  8. package/client/component/popup/meta-object-selector-popup.ts +355 -0
  9. package/client/component/popup/{record-based-code-editor-popup.js → record-based-code-editor-popup.ts} +49 -58
  10. package/client/dynamic-menus.ts +21 -11
  11. package/client/index.ts +1 -20
  12. package/client/load-components.ts +17 -0
  13. package/client/mixin/meta-base-mixin.js +280 -275
  14. package/client/mixin/meta-basic-grist-mixin.js +252 -229
  15. package/client/mixin/meta-form-mixin.js +350 -347
  16. package/client/mixin/meta-grist-tab-mixin.js +282 -283
  17. package/client/mixin/meta-main-tab-mixin.js +220 -223
  18. package/client/mixin/meta-master-detail-mixin.js +347 -348
  19. package/client/mixin/meta-tab-detail-mixin.js +258 -237
  20. package/client/mixin/meta-tab-mixin.js +154 -155
  21. package/client/pages/activity/meta-activity-define-page.js +50 -20
  22. package/client/pages/activity/meta-activity-list-page.js +111 -76
  23. package/client/pages/entity/config-entity.js +205 -38
  24. package/client/pages/entity/main-menu-selector.js +13 -24
  25. package/client/pages/history/history-copy-list-popup.js +5 -2
  26. package/client/pages/history/history-json-list-popup.js +4 -0
  27. package/client/pages/menu/dynamic-menu-template.js +1 -4
  28. package/client/pages/menu/dynamic-menu.js +150 -24
  29. package/client/pages/menu/export-menu-popup.js +10 -11
  30. package/client/pages/meta-grist-page.js +1 -2
  31. package/client/pages/meta-grist-tab-page.js +1 -2
  32. package/client/pages/meta-main-tab-page.js +1 -2
  33. package/client/pages/meta-master-detail-page.js +1 -2
  34. package/client/pages/meta-tab-detail-page.js +1 -2
  35. package/client/pages/terms/config-terminology.js +50 -30
  36. package/client/utils/get-page-preference-provider.js +15 -0
  37. package/client/utils/grist-default-value.js +1 -1
  38. package/client/utils/meta-api.js +25 -5
  39. package/client/utils/meta-ui-util.js +304 -299
  40. package/client/utils/rest-service-util.js +328 -0
  41. package/client/utils/service-util.js +173 -113
  42. package/client/utils/{terms-util.js → terms-util.ts} +30 -104
  43. package/client/utils/value-util.js +74 -72
  44. package/dist-client/bootstrap.d.ts +2 -1
  45. package/dist-client/bootstrap.js +20 -27
  46. package/dist-client/bootstrap.js.map +1 -1
  47. package/dist-client/component/filter/filter-form-meta-code-select.d.ts +4 -1
  48. package/dist-client/component/filter/filter-form-meta-code-select.js +21 -18
  49. package/dist-client/component/filter/filter-form-meta-code-select.js.map +1 -1
  50. package/dist-client/component/filter/filter-form-meta-object-select.d.ts +4 -1
  51. package/dist-client/component/filter/filter-form-meta-object-select.js +27 -19
  52. package/dist-client/component/filter/filter-form-meta-object-select.js.map +1 -1
  53. package/dist-client/component/filter/filter-grist-meta-code-select.d.ts +3 -1
  54. package/dist-client/component/filter/filter-grist-meta-code-select.js +19 -18
  55. package/dist-client/component/filter/filter-grist-meta-code-select.js.map +1 -1
  56. package/dist-client/component/filter/filter-grist-meta-object-select.d.ts +3 -1
  57. package/dist-client/component/filter/filter-grist-meta-object-select.js +25 -19
  58. package/dist-client/component/filter/filter-grist-meta-object-select.js.map +1 -1
  59. package/dist-client/component/popup/code-input-editor-popup.js +10 -19
  60. package/dist-client/component/popup/code-input-editor-popup.js.map +1 -1
  61. package/dist-client/component/popup/file-upload-popup.js +6 -25
  62. package/dist-client/component/popup/file-upload-popup.js.map +1 -1
  63. package/dist-client/component/popup/meta-object-selector-popup.d.ts +27 -22
  64. package/dist-client/component/popup/meta-object-selector-popup.js +113 -75
  65. package/dist-client/component/popup/meta-object-selector-popup.js.map +1 -1
  66. package/dist-client/component/popup/record-based-code-editor-popup.d.ts +11 -12
  67. package/dist-client/component/popup/record-based-code-editor-popup.js +76 -44
  68. package/dist-client/component/popup/record-based-code-editor-popup.js.map +1 -1
  69. package/dist-client/dynamic-menus.d.ts +1 -15
  70. package/dist-client/dynamic-menus.js +12 -5
  71. package/dist-client/dynamic-menus.js.map +1 -1
  72. package/dist-client/index.d.ts +1 -16
  73. package/dist-client/index.js +1 -17
  74. package/dist-client/index.js.map +1 -1
  75. package/dist-client/load-components.d.ts +15 -0
  76. package/dist-client/load-components.js +17 -0
  77. package/dist-client/load-components.js.map +1 -0
  78. package/dist-client/mixin/meta-base-mixin.js +7 -8
  79. package/dist-client/mixin/meta-base-mixin.js.map +1 -1
  80. package/dist-client/mixin/meta-basic-grist-mixin.d.ts +27 -23
  81. package/dist-client/mixin/meta-basic-grist-mixin.js +25 -7
  82. package/dist-client/mixin/meta-basic-grist-mixin.js.map +1 -1
  83. package/dist-client/mixin/meta-form-mixin.d.ts +9 -5
  84. package/dist-client/mixin/meta-form-mixin.js +14 -12
  85. package/dist-client/mixin/meta-form-mixin.js.map +1 -1
  86. package/dist-client/mixin/meta-grist-tab-mixin.d.ts +1 -5
  87. package/dist-client/mixin/meta-grist-tab-mixin.js +5 -5
  88. package/dist-client/mixin/meta-grist-tab-mixin.js.map +1 -1
  89. package/dist-client/mixin/meta-main-tab-mixin.d.ts +10 -7
  90. package/dist-client/mixin/meta-main-tab-mixin.js +4 -6
  91. package/dist-client/mixin/meta-main-tab-mixin.js.map +1 -1
  92. package/dist-client/mixin/meta-master-detail-mixin.js +8 -8
  93. package/dist-client/mixin/meta-master-detail-mixin.js.map +1 -1
  94. package/dist-client/mixin/meta-tab-detail-mixin.d.ts +9 -5
  95. package/dist-client/mixin/meta-tab-detail-mixin.js +25 -7
  96. package/dist-client/mixin/meta-tab-detail-mixin.js.map +1 -1
  97. package/dist-client/mixin/meta-tab-mixin.d.ts +6 -6
  98. package/dist-client/mixin/meta-tab-mixin.js +2 -3
  99. package/dist-client/mixin/meta-tab-mixin.js.map +1 -1
  100. package/dist-client/pages/activity/meta-activity-define-page.js +37 -12
  101. package/dist-client/pages/activity/meta-activity-define-page.js.map +1 -1
  102. package/dist-client/pages/activity/meta-activity-list-page.js +43 -20
  103. package/dist-client/pages/activity/meta-activity-list-page.js.map +1 -1
  104. package/dist-client/pages/button-role/button-role-detail.d.ts +3 -1
  105. package/dist-client/pages/entity/config-entity.js +95 -26
  106. package/dist-client/pages/entity/config-entity.js.map +1 -1
  107. package/dist-client/pages/entity/main-menu-selector.js +12 -24
  108. package/dist-client/pages/entity/main-menu-selector.js.map +1 -1
  109. package/dist-client/pages/history/history-copy-list-popup.d.ts +1 -1
  110. package/dist-client/pages/history/history-copy-list-popup.js +5 -2
  111. package/dist-client/pages/history/history-copy-list-popup.js.map +1 -1
  112. package/dist-client/pages/history/history-json-list-popup.d.ts +1 -1
  113. package/dist-client/pages/history/history-json-list-popup.js +4 -0
  114. package/dist-client/pages/history/history-json-list-popup.js.map +1 -1
  115. package/dist-client/pages/menu/dynamic-menu-template.js +1 -4
  116. package/dist-client/pages/menu/dynamic-menu-template.js.map +1 -1
  117. package/dist-client/pages/menu/dynamic-menu.js +93 -21
  118. package/dist-client/pages/menu/dynamic-menu.js.map +1 -1
  119. package/dist-client/pages/menu/export-menu-popup.js +9 -11
  120. package/dist-client/pages/menu/export-menu-popup.js.map +1 -1
  121. package/dist-client/pages/meta-grist-element.d.ts +3 -1
  122. package/dist-client/pages/meta-grist-page.d.ts +3 -1
  123. package/dist-client/pages/meta-grist-page.js.map +1 -1
  124. package/dist-client/pages/meta-grist-tab-page.js.map +1 -1
  125. package/dist-client/pages/meta-main-tab-page.js.map +1 -1
  126. package/dist-client/pages/meta-master-detail-page.js.map +1 -1
  127. package/dist-client/pages/meta-tab-detail-element.d.ts +2 -0
  128. package/dist-client/pages/meta-tab-detail-page.d.ts +2 -0
  129. package/dist-client/pages/meta-tab-detail-page.js.map +1 -1
  130. package/dist-client/pages/terms/config-terminology.js +37 -21
  131. package/dist-client/pages/terms/config-terminology.js.map +1 -1
  132. package/dist-client/pages/work-code/work-code-detail-popup.d.ts +3 -1
  133. package/dist-client/tsconfig.tsbuildinfo +1 -1
  134. package/dist-client/utils/get-page-preference-provider.d.ts +5 -0
  135. package/dist-client/utils/get-page-preference-provider.js +14 -0
  136. package/dist-client/utils/get-page-preference-provider.js.map +1 -0
  137. package/dist-client/utils/grist-default-value.js +1 -1
  138. package/dist-client/utils/grist-default-value.js.map +1 -1
  139. package/dist-client/utils/meta-api.d.ts +14 -5
  140. package/dist-client/utils/meta-api.js +15 -4
  141. package/dist-client/utils/meta-api.js.map +1 -1
  142. package/dist-client/utils/meta-ui-util.d.ts +0 -13
  143. package/dist-client/utils/meta-ui-util.js +244 -271
  144. package/dist-client/utils/meta-ui-util.js.map +1 -1
  145. package/dist-client/utils/rest-service-util.d.ts +120 -0
  146. package/dist-client/utils/rest-service-util.js +291 -0
  147. package/dist-client/utils/rest-service-util.js.map +1 -0
  148. package/dist-client/utils/service-util.d.ts +11 -14
  149. package/dist-client/utils/service-util.js +136 -105
  150. package/dist-client/utils/service-util.js.map +1 -1
  151. package/dist-client/utils/terms-util.d.ts +10 -27
  152. package/dist-client/utils/terms-util.js +6 -80
  153. package/dist-client/utils/terms-util.js.map +1 -1
  154. package/dist-client/utils/value-util.js +6 -4
  155. package/dist-client/utils/value-util.js.map +1 -1
  156. package/dist-server/service/button-role/button-role-query.js +1 -1
  157. package/dist-server/service/button-role/button-role-query.js.map +1 -1
  158. package/dist-server/service/dynamic-menu/dynamic-menu-query.js +68 -18
  159. package/dist-server/service/dynamic-menu/dynamic-menu-query.js.map +1 -1
  160. package/dist-server/service/dynamic-menu/dynamic-menu-type.js.map +1 -1
  161. package/dist-server/service/entity-event-subscriber/entity-event-subscriber.js +3 -3
  162. package/dist-server/service/entity-event-subscriber/entity-event-subscriber.js.map +1 -1
  163. package/dist-server/service/index.js +0 -4
  164. package/dist-server/service/index.js.map +1 -1
  165. package/dist-server/service/menu-button-auth/menu-button-auth-query.js +3 -3
  166. package/dist-server/service/menu-button-auth/menu-button-auth-query.js.map +1 -1
  167. package/dist-server/tsconfig.tsbuildinfo +1 -1
  168. package/package.json +15 -9
  169. package/server/service/button-role/button-role-query.ts +9 -4
  170. package/server/service/dynamic-menu/dynamic-menu-query.ts +178 -116
  171. package/server/service/dynamic-menu/dynamic-menu-type.ts +11 -16
  172. package/server/service/entity-event-subscriber/entity-event-subscriber.ts +31 -33
  173. package/server/service/index.ts +0 -4
  174. package/server/service/menu-button-auth/menu-button-auth-query.ts +31 -29
  175. package/things-factory.config.js +2 -2
  176. package/translations/en.json +2 -13
  177. package/translations/ko.json +2 -13
  178. package/translations/ms.json +2 -13
  179. package/translations/zh.json +2 -13
  180. package/client/actions/main.js +0 -133
  181. package/client/component/filter/filter-form-meta-code-select.js +0 -94
  182. package/client/component/filter/filter-form-meta-object-select.js +0 -94
  183. package/client/component/filter/filter-grist-meta-code-select.js +0 -95
  184. package/client/component/filter/filter-grist-meta-object-select.js +0 -95
  185. package/client/component/popup/meta-object-selector-popup.js +0 -314
  186. package/client/pages/menu/dynamic-menu-setting-let.js +0 -88
  187. package/client/pages/personalize/personal-column-selector.js +0 -265
  188. package/client/reducers/main.js +0 -79
  189. package/client/viewparts/dynamic-menu-landscape-styles.js +0 -149
  190. package/client/viewparts/dynamic-menu-landscape.js +0 -106
  191. package/client/viewparts/dynamic-menu-part.js +0 -142
  192. package/client/viewparts/dynamic-menu-portrait-styles.js +0 -130
  193. package/client/viewparts/dynamic-menu-portrait.js +0 -90
  194. package/client/viewparts/dynamic-top-menu-bar.js +0 -148
  195. package/dist-client/actions/main.d.ts +0 -4
  196. package/dist-client/actions/main.js +0 -113
  197. package/dist-client/actions/main.js.map +0 -1
  198. package/dist-client/pages/menu/dynamic-menu-setting-let.d.ts +0 -10
  199. package/dist-client/pages/menu/dynamic-menu-setting-let.js +0 -81
  200. package/dist-client/pages/menu/dynamic-menu-setting-let.js.map +0 -1
  201. package/dist-client/pages/personalize/personal-column-selector.d.ts +0 -71
  202. package/dist-client/pages/personalize/personal-column-selector.js +0 -244
  203. package/dist-client/pages/personalize/personal-column-selector.js.map +0 -1
  204. package/dist-client/reducers/main.d.ts +0 -11
  205. package/dist-client/reducers/main.js +0 -62
  206. package/dist-client/reducers/main.js.map +0 -1
  207. package/dist-client/viewparts/dynamic-menu-landscape-styles.d.ts +0 -1
  208. package/dist-client/viewparts/dynamic-menu-landscape-styles.js +0 -149
  209. package/dist-client/viewparts/dynamic-menu-landscape-styles.js.map +0 -1
  210. package/dist-client/viewparts/dynamic-menu-landscape.d.ts +0 -21
  211. package/dist-client/viewparts/dynamic-menu-landscape.js +0 -87
  212. package/dist-client/viewparts/dynamic-menu-landscape.js.map +0 -1
  213. package/dist-client/viewparts/dynamic-menu-part.d.ts +0 -33
  214. package/dist-client/viewparts/dynamic-menu-part.js +0 -127
  215. package/dist-client/viewparts/dynamic-menu-part.js.map +0 -1
  216. package/dist-client/viewparts/dynamic-menu-portrait-styles.d.ts +0 -1
  217. package/dist-client/viewparts/dynamic-menu-portrait-styles.js +0 -130
  218. package/dist-client/viewparts/dynamic-menu-portrait-styles.js.map +0 -1
  219. package/dist-client/viewparts/dynamic-menu-portrait.d.ts +0 -13
  220. package/dist-client/viewparts/dynamic-menu-portrait.js +0 -74
  221. package/dist-client/viewparts/dynamic-menu-portrait.js.map +0 -1
  222. package/dist-client/viewparts/dynamic-top-menu-bar.d.ts +0 -27
  223. package/dist-client/viewparts/dynamic-top-menu-bar.js +0 -133
  224. package/dist-client/viewparts/dynamic-top-menu-bar.js.map +0 -1
  225. package/dist-server/constants/error-code.js +0 -6
  226. package/dist-server/constants/error-code.js.map +0 -1
  227. package/dist-server/controllers/index.js +0 -1
  228. package/dist-server/controllers/index.js.map +0 -1
  229. package/dist-server/service/grid-personalize/grid-personalize-mutation.js +0 -108
  230. package/dist-server/service/grid-personalize/grid-personalize-mutation.js.map +0 -1
  231. package/dist-server/service/grid-personalize/grid-personalize-query.js +0 -108
  232. package/dist-server/service/grid-personalize/grid-personalize-query.js.map +0 -1
  233. package/dist-server/service/grid-personalize/grid-personalize-type.js +0 -66
  234. package/dist-server/service/grid-personalize/grid-personalize-type.js.map +0 -1
  235. package/dist-server/service/grid-personalize/grid-personalize.js +0 -84
  236. package/dist-server/service/grid-personalize/grid-personalize.js.map +0 -1
  237. package/dist-server/service/grid-personalize/index.js +0 -9
  238. package/dist-server/service/grid-personalize/index.js.map +0 -1
  239. package/server/constants/error-code.ts +0 -2
  240. package/server/controllers/index.ts +0 -0
  241. package/server/service/grid-personalize/grid-personalize-mutation.ts +0 -113
  242. package/server/service/grid-personalize/grid-personalize-query.ts +0 -61
  243. package/server/service/grid-personalize/grid-personalize-type.ts +0 -45
  244. package/server/service/grid-personalize/grid-personalize.ts +0 -73
  245. package/server/service/grid-personalize/index.ts +0 -7
@@ -1,15 +1,10 @@
1
+ import '@material/web/icon/icon.js'
2
+ import './load-components'
3
+
1
4
  import { html } from 'lit-html'
2
5
 
3
- import { auth } from '@things-factory/auth-base/dist-client/auth.js'
4
- import { ADD_MORENDA } from '@things-factory/more-base'
5
6
  import { navigate, store } from '@operato/shell'
6
-
7
- import { updateMenuTemplate } from './actions/main'
8
- import metaUI from './reducers/main'
9
- import { TermsUtil } from './utils/terms-util'
10
- import { GristDefaultValue } from './utils/grist-default-value'
11
- import { MENUS } from './dynamic-menus'
12
-
7
+ import { i18next } from '@operato/i18n'
13
8
  import {
14
9
  registerEditor as gristColumnRegisterEditor,
15
10
  registerRenderer as gristColumnRegisterRenderer,
@@ -17,6 +12,13 @@ import {
17
12
  } from '@operato/data-grist'
18
13
  import { registerFilterRenderer as formRegisterFilterRenderer } from '@operato/form'
19
14
 
15
+ import { auth } from '@things-factory/auth-base/dist-client'
16
+ import { ADD_MORENDA } from '@things-factory/more-base/client'
17
+
18
+ import { updateMenuTemplate } from '@things-factory/lite-menu/dist-client'
19
+ import { GristDefaultValue } from './utils/grist-default-value'
20
+ import { getDynamicMenus } from './dynamic-menus'
21
+
20
22
  /** GRIST Renderer Compoment */
21
23
  import { GristRendererMetaCodeSelector } from './component/grist/renderer/grist-renderer-meta-code-selector'
22
24
  import { GristRendererMetaObjectSelector } from './component/grist/renderer/grist-renderer-meta-object-selector'
@@ -35,13 +37,11 @@ import { FilterGristMetaObjectSelect } from './component/filter/filter-grist-met
35
37
  import { FilterFormMetaCodeSelect } from './component/filter/filter-form-meta-code-select'
36
38
  import { FilterFormMetaObjectSelect } from './component/filter/filter-form-meta-object-select'
37
39
 
38
- import './pages/personalize/personal-column-selector'
39
40
  import './pages/history/history-copy-list-popup'
40
41
  import './pages/history/history-json-list-popup'
41
42
 
42
43
  import './pages/activity/meta-activity-writer-element'
43
44
  import './pages/activity/meta-activity-viewer-element'
44
- import { i18next } from '@operato/i18n'
45
45
 
46
46
  export default async function bootstrap(module) {
47
47
  // GRIST Renderer
@@ -65,27 +65,20 @@ export default async function bootstrap(module) {
65
65
  // Grist Default Registry
66
66
  GristDefaultValue.registry()
67
67
 
68
- store.addReducers({
69
- metaUI
70
- })
71
-
72
- // 1. 용어 다운로드
73
- var locale = i18next.language
74
- if (locale == 'ko') {
75
- locale = 'ko-KR'
76
- }
77
- await TermsUtil.downloadTerminologies(locale)
78
-
79
68
  auth.on('profile', async ({ credential, domains, domain }) => {
80
69
  // 2. 메뉴 정보를 서버로 부터 받아서 적용
81
- const menuRoutes = await MENUS
70
+ const menuRoutes = await getDynamicMenus()
82
71
  updateMenuTemplate(menuRoutes.menus)
83
72
 
73
+ i18next.on('languageChanged', async () => {
74
+ updateMenuTemplate((await getDynamicMenus(true)).menus)
75
+ })
76
+
84
77
  // 3. 동적 메뉴 관리 화면 추가
85
78
  store.dispatch({
86
79
  type: ADD_MORENDA,
87
80
  morenda: {
88
- icon: html`<mwc-icon>auto_fix_high</mwc-icon>`,
81
+ icon: html`<md-icon>auto_fix_high</md-icon>`,
89
82
  name: html`<ox-i18n msgid="title.dynamic_menu"></ox-i18n>`,
90
83
  action: () => {
91
84
  navigate('dynamic-menu')
@@ -97,7 +90,7 @@ export default async function bootstrap(module) {
97
90
  store.dispatch({
98
91
  type: ADD_MORENDA,
99
92
  morenda: {
100
- icon: html`<mwc-icon>filter_tilt_shift</mwc-icon>`,
93
+ icon: html`<md-icon>filter_tilt_shift</md-icon>`,
101
94
  name: html`<ox-i18n msgid="title.entity"></ox-i18n>`,
102
95
  action: () => {
103
96
  navigate('config-entity')
@@ -109,7 +102,7 @@ export default async function bootstrap(module) {
109
102
  store.dispatch({
110
103
  type: ADD_MORENDA,
111
104
  morenda: {
112
- icon: html`<mwc-icon>speaker_notes</mwc-icon>`,
105
+ icon: html`<md-icon>speaker_notes</md-icon>`,
113
106
  name: html`<ox-i18n msgid="title.terminology"></ox-i18n>`,
114
107
  action: () => {
115
108
  navigate('config-terminology')
@@ -121,7 +114,7 @@ export default async function bootstrap(module) {
121
114
  store.dispatch({
122
115
  type: ADD_MORENDA,
123
116
  morenda: {
124
- icon: html`<mwc-icon>code</mwc-icon>`,
117
+ icon: html`<md-icon>code</md-icon>`,
125
118
  name: html`<ox-i18n msgid="title.code_management"></ox-i18n>`,
126
119
  action: () => {
127
120
  navigate('codes')
@@ -133,7 +126,7 @@ export default async function bootstrap(module) {
133
126
  store.dispatch({
134
127
  type: ADD_MORENDA,
135
128
  morenda: {
136
- icon: html`<mwc-icon>business_center</mwc-icon>`,
129
+ icon: html`<md-icon>business_center</md-icon>`,
137
130
  name: html`<ox-i18n msgid="title.meta_activity_list"></ox-i18n>`,
138
131
  action: () => {
139
132
  navigate('meta-activity-list')
@@ -144,7 +137,7 @@ export default async function bootstrap(module) {
144
137
  store.dispatch({
145
138
  type: ADD_MORENDA,
146
139
  morenda: {
147
- icon: html`<mwc-icon>margin</mwc-icon>`,
140
+ icon: html`<md-icon>margin</md-icon>`,
148
141
  name: html`<ox-i18n msgid="title.meta_activity_define"></ox-i18n>`,
149
142
  action: () => {
150
143
  navigate('meta-activity-define')
@@ -155,7 +148,7 @@ export default async function bootstrap(module) {
155
148
  store.dispatch({
156
149
  type: ADD_MORENDA,
157
150
  morenda: {
158
- icon: html`<mwc-icon>work</mwc-icon>`,
151
+ icon: html`<md-icon>work</md-icon>`,
159
152
  name: html`<ox-i18n msgid="title.activity_list"></ox-i18n>`,
160
153
  action: () => {
161
154
  navigate('activity-list')
@@ -166,7 +159,7 @@ export default async function bootstrap(module) {
166
159
  store.dispatch({
167
160
  type: ADD_MORENDA,
168
161
  morenda: {
169
- icon: html` <mwc-icon>dataset</mwc-icon> `,
162
+ icon: html` <md-icon>dataset</md-icon> `,
170
163
  name: html` <ox-i18n msgid="text.attribute management"></ox-i18n> `,
171
164
  action: () => {
172
165
  navigate('attributes')
@@ -0,0 +1,99 @@
1
+ import '@material/web/icon/icon.js'
2
+ import '../popup/meta-object-selector-popup'
3
+
4
+ import { html } from 'lit-html'
5
+
6
+ import { openPopup } from '@operato/layout'
7
+ import { FilterSelectRenderer } from '@operato/form'
8
+ import { TermsUtil } from './../../utils/terms-util'
9
+
10
+ function openMetaCodeSelector(filter, value, confirmCallback) {
11
+ var template = html` <meta-object-selector-popup .value=${value} .options=${filter.options} .confirmCallback=${confirmCallback}> </meta-object-selector-popup> `
12
+
13
+ openPopup(template, {
14
+ backdrop: true,
15
+ size: 'large',
16
+ title: filter.options.selectorName ? TermsUtil.tMenu(filter.options.selectorName) : TermsUtil.tTitle('select_item')
17
+ })
18
+ }
19
+
20
+ export const FilterFormMetaCodeSelect: FilterSelectRenderer = (filter, value, owner) => {
21
+ const options = filter.options || {}
22
+ const codes = options.codes && options.codes.length > 0 ? options.codes : undefined
23
+ const { operator = 'eq' } = filter
24
+ const hiddenText = value ? value : ''
25
+
26
+ var text = value ? value : ''
27
+
28
+ if (options.dispField && value && codes) {
29
+ let dispCode = codes.filter(x => x.value == value)
30
+
31
+ if (dispCode && dispCode.length > 0) {
32
+ text = dispCode[0].display
33
+ }
34
+ }
35
+
36
+ return operator === 'eq'
37
+ ? html`
38
+ <input name='${filter.name}' .value=${hiddenText} type="text" hidden></input>
39
+ <input
40
+ type="text"
41
+ readonly
42
+ name='${filter.name}_disp'
43
+ .value=${text}
44
+ @click=${e => {
45
+ e.stopPropagation()
46
+
47
+ const input = e.target
48
+
49
+ const confirmCallback = selected => {
50
+ let code = selected ? selected[options.codeField] : ''
51
+ let disp = code
52
+
53
+ if (selected && options.dispField) {
54
+ let fields = options.dispField.split(',')
55
+ disp = selected[fields[0]]
56
+
57
+ if (fields.length > 1) {
58
+ disp += `(${fields
59
+ .splice(1)
60
+ .map(field => {
61
+ return selected[field]
62
+ })
63
+ .join(',')})`
64
+ }
65
+ }
66
+
67
+ input.value = disp
68
+
69
+ let codeInput =
70
+ owner.tagName.toLowerCase() == 'ox-grid-header'
71
+ ? //@ts-ignore owner element를 전제하지 않는 방법이 필요할 것이다.
72
+ owner.renderRoot.querySelector(`[name="${filter.name}"]`)
73
+ : //@ts-ignore owner element를 전제하지 않는 방법이 필요할 것이다.
74
+ owner.renderRoot.querySelector(`form [name="${filter.name}"]`)
75
+
76
+ codeInput.value = code
77
+
78
+ input.dispatchEvent(new Event('change', { bubbles: true }))
79
+
80
+ input.dispatchEvent(
81
+ new CustomEvent('filter-change', {
82
+ bubbles: true,
83
+ composed: true,
84
+ detail: {
85
+ name: filter.name,
86
+ operator,
87
+ value: code
88
+ }
89
+ })
90
+ )
91
+ }
92
+
93
+ openMetaCodeSelector(filter, value, confirmCallback)
94
+ }}
95
+ />
96
+ <md-icon style="--md-icon-size: 18px;margin-left: -24px;">manage_search</md-icon>
97
+ `
98
+ : html``
99
+ }
@@ -0,0 +1,107 @@
1
+ import '@material/web/icon/icon.js'
2
+ import '../popup/meta-object-selector-popup'
3
+
4
+ import { html } from 'lit-html'
5
+
6
+ import { openPopup } from '@operato/layout'
7
+ import { FilterSelectRenderer } from '@operato/form'
8
+ import { TermsUtil } from '../../utils/terms-util'
9
+ import { SelectOption, SelectOptionObject } from '@operato/data-grist'
10
+
11
+ function openMetaObjectSelector(filter, value, confirmCallback) {
12
+ var template = html` <meta-object-selector-popup .value=${value} .options=${filter.options} .confirmCallback=${confirmCallback}></meta-object-selector-popup> `
13
+
14
+ openPopup(template, {
15
+ backdrop: true,
16
+ size: 'large',
17
+ title: filter.options.selectorName ? TermsUtil.tMenu(filter.options.selectorName) : TermsUtil.tTitle('select_item')
18
+ })
19
+ }
20
+
21
+ export const FilterFormMetaObjectSelect: FilterSelectRenderer = (filter, value, owner) => {
22
+ const options = filter.options as {
23
+ [key: string]: any
24
+ }
25
+ const { operator = 'eq' } = filter
26
+ const hiddenText = value ? value.id : ''
27
+
28
+ var text = ''
29
+
30
+ if (value) {
31
+ let fields = options!.nameField.split(',')
32
+ text = value[fields[0]]
33
+
34
+ if (fields.length > 1) {
35
+ text += `(${fields
36
+ .splice(1)
37
+ .map(field => {
38
+ return value[field]
39
+ })
40
+ .join(',')})`
41
+ }
42
+ }
43
+
44
+ return operator === 'eq'
45
+ ? html`
46
+ <input name='${filter.name}' .value=${hiddenText} type="text" hidden></input>
47
+ <input
48
+ type="text"
49
+ readonly
50
+ name='${filter.name}_disp'
51
+ .value=${text}
52
+ @click=${e => {
53
+ e.stopPropagation()
54
+
55
+ const input = e.target
56
+
57
+ const confirmCallback = selected => {
58
+ let code = selected ? selected.id : ''
59
+ let disp = ''
60
+
61
+ if (selected) {
62
+ let fields = options!.nameField.split(',')
63
+ disp = selected[fields[0]]
64
+
65
+ if (fields.length > 1) {
66
+ disp += `(${fields
67
+ .splice(1)
68
+ .map(field => {
69
+ return selected[field]
70
+ })
71
+ .join(',')})`
72
+ }
73
+ }
74
+
75
+ input.value = disp
76
+
77
+ let codeInput =
78
+ owner.tagName.toLowerCase() == 'ox-grid-header'
79
+ ? //@ts-ignore owner element를 전제하지 않는 방법이 필요할 것이다.
80
+ owner.renderRoot.querySelector(`[name="${filter.name}"]`)
81
+ : //@ts-ignore owner element를 전제하지 않는 방법이 필요할 것이다.
82
+ owner.renderRoot.querySelector(`form [name="${filter.name}"]`)
83
+
84
+ codeInput.value = code
85
+
86
+ input.dispatchEvent(new Event('change', { bubbles: true }))
87
+
88
+ input.dispatchEvent(
89
+ new CustomEvent('filter-change', {
90
+ bubbles: true,
91
+ composed: true,
92
+ detail: {
93
+ name: filter.name,
94
+ operator,
95
+ value: code
96
+ }
97
+ })
98
+ )
99
+ }
100
+
101
+ openMetaObjectSelector(filter, value, confirmCallback)
102
+ }}
103
+ />
104
+ <md-icon style="--md-icon-size: 18px;margin-left: -24px;">manage_search</md-icon>
105
+ `
106
+ : html``
107
+ }
@@ -0,0 +1,97 @@
1
+ import '../popup/meta-object-selector-popup'
2
+
3
+ import { html } from 'lit-html'
4
+
5
+ import { openPopup } from '@operato/layout'
6
+ import { FilterConfigObject, FilterSelectRenderer } from '@operato/data-grist'
7
+ import { TermsUtil } from '../../utils/terms-util'
8
+
9
+ function openMetaCodeSelector(column, value, confirmCallback) {
10
+ var template = html` <meta-object-selector-popup .value=${value} .options=${column.record.options} .confirmCallback=${confirmCallback}></meta-object-selector-popup> `
11
+
12
+ openPopup(template, {
13
+ backdrop: true,
14
+ size: 'large',
15
+ title: column.record.options.selectorName ? TermsUtil.tMenu(column.record.options.selectorName) : TermsUtil.tTitle('select_item')
16
+ })
17
+ }
18
+
19
+ export const FilterGristMetaCodeSelect: FilterSelectRenderer = (column, value, owner) => {
20
+ const filter = column.filter
21
+ const options = column.record.options
22
+ const codes = options.codes && options.codes.length > 0 ? options.codes : undefined
23
+ const { operator = 'eq' } = filter as FilterConfigObject
24
+ const hiddenText = value ? value : ''
25
+
26
+ var text = value ? value : ''
27
+
28
+ if (options.dispField && value && codes) {
29
+ let dispCode = codes.filter(x => x.value == value)
30
+
31
+ if (dispCode && dispCode.length > 0) {
32
+ text = dispCode[0].display
33
+ }
34
+ }
35
+
36
+ return operator === 'eq'
37
+ ? html`
38
+ <input name='${column.name}' .value=${hiddenText} type="text" hidden></input>
39
+ <input
40
+ type="text"
41
+ readonly
42
+ name='${column.name}_disp'
43
+ .value=${text}
44
+ @click=${e => {
45
+ e.stopPropagation()
46
+
47
+ const input = e.target
48
+
49
+ const confirmCallback = selected => {
50
+ let code = selected ? selected[options.codeField] : ''
51
+ let disp = code
52
+
53
+ if (selected && options.dispField) {
54
+ let fields = options.dispField.split(',')
55
+ disp = selected[fields[0]]
56
+
57
+ if (fields.length > 1) {
58
+ disp += `(${fields
59
+ .splice(1)
60
+ .map(field => {
61
+ return selected[field]
62
+ })
63
+ .join(',')})`
64
+ }
65
+ }
66
+
67
+ input.value = disp
68
+
69
+ let codeInput =
70
+ owner.tagName.toLowerCase() == 'ox-grid-header'
71
+ ? //@ts-ignore owner element를 전제하지 않는 방법이 필요할 것이다.
72
+ owner.renderRoot.querySelector(`[name="${filter.name}"]`)
73
+ : //@ts-ignore owner element를 전제하지 않는 방법이 필요할 것이다.
74
+ owner.renderRoot.querySelector(`form [name="${filter.name}"]`)
75
+ codeInput.value = code
76
+
77
+ input.dispatchEvent(new Event('change', { bubbles: true }))
78
+
79
+ input.dispatchEvent(
80
+ new CustomEvent('filter-change', {
81
+ bubbles: true,
82
+ composed: true,
83
+ detail: {
84
+ name: column.name,
85
+ operator,
86
+ value: code
87
+ }
88
+ })
89
+ )
90
+ }
91
+
92
+ openMetaCodeSelector(column, value, confirmCallback)
93
+ }}
94
+ />
95
+ `
96
+ : html``
97
+ }
@@ -0,0 +1,102 @@
1
+ import '../popup/meta-object-selector-popup'
2
+
3
+ import { html } from 'lit-html'
4
+
5
+ import { openPopup } from '@operato/layout'
6
+ import { FilterConfigObject, FilterSelectRenderer } from '@operato/data-grist'
7
+ import { TermsUtil } from '../../utils/terms-util'
8
+
9
+ function openMetaObjectSelector(column, value, confirmCallback) {
10
+ var template = html` <meta-object-selector-popup .value=${value} .options=${column.record.options} .confirmCallback=${confirmCallback}></meta-object-selector-popup> `
11
+
12
+ openPopup(template, {
13
+ backdrop: true,
14
+ size: 'large',
15
+ title: column.record.options.selectorName ? TermsUtil.tMenu(column.record.options.selectorName) : TermsUtil.tTitle('select_item')
16
+ })
17
+ }
18
+
19
+ export const FilterGristMetaObjectSelect: FilterSelectRenderer = (column, value, owner) => {
20
+ const filter = column.filter
21
+ const { operator = 'eq' } = filter as FilterConfigObject
22
+ const options = column.record.options
23
+ const hiddenText = value ? value.id : ''
24
+
25
+ var text = ''
26
+
27
+ if (value) {
28
+ let fields = options.nameField.split(',')
29
+ text = value[fields[0]]
30
+
31
+ if (fields.length > 1) {
32
+ text += `(${fields
33
+ .splice(1)
34
+ .map(field => {
35
+ return value[field]
36
+ })
37
+ .join(',')})`
38
+ }
39
+ }
40
+
41
+ return operator === 'eq'
42
+ ? html`
43
+ <input name='${column.name}' .value=${hiddenText} type="text" hidden></input>
44
+ <input
45
+ type="text"
46
+ readonly
47
+ name='${column.name}_disp'
48
+ .value=${text}
49
+ @click=${e => {
50
+ e.stopPropagation()
51
+
52
+ const input = e.target
53
+
54
+ const confirmCallback = selected => {
55
+ let code = selected ? selected.id : ''
56
+ let disp = ''
57
+
58
+ if (selected) {
59
+ let fields = options.nameField.split(',')
60
+ disp = selected[fields[0]]
61
+
62
+ if (fields.length > 1) {
63
+ disp += `(${fields
64
+ .splice(1)
65
+ .map(field => {
66
+ return selected[field]
67
+ })
68
+ .join(',')})`
69
+ }
70
+ }
71
+
72
+ input.value = disp
73
+
74
+ let codeInput =
75
+ owner.tagName.toLowerCase() == 'ox-grid-header'
76
+ ? //@ts-ignore owner element를 전제하지 않는 방법이 필요할 것이다.
77
+ owner.renderRoot.querySelector(`[name="${filter.name}"]`)
78
+ : //@ts-ignore owner element를 전제하지 않는 방법이 필요할 것이다.
79
+ owner.renderRoot.querySelector(`form [name="${filter.name}"]`)
80
+ codeInput.value = code
81
+
82
+ input.dispatchEvent(new Event('change', { bubbles: true }))
83
+
84
+ input.dispatchEvent(
85
+ new CustomEvent('filter-change', {
86
+ bubbles: true,
87
+ composed: true,
88
+ detail: {
89
+ name: column.name,
90
+ operator,
91
+ value: code
92
+ }
93
+ })
94
+ )
95
+ }
96
+
97
+ openMetaObjectSelector(column, value, confirmCallback)
98
+ }}
99
+ />
100
+ `
101
+ : html``
102
+ }
@@ -1,7 +1,9 @@
1
+ import '@material/web/icon/icon.js'
2
+
1
3
  import { css, html, LitElement } from 'lit'
2
- import { CommonGristStyles, ButtonContainerStyles } from '@operato/styles'
3
- import { TermsUtil } from '../../utils/terms-util';
4
- import { MetaApi } from "../../utils/meta-api"
4
+ import { ButtonContainerStyles } from '@operato/styles'
5
+ import { TermsUtil } from '../../utils/terms-util'
6
+ import { MetaApi } from '../../utils/meta-api'
5
7
  import '@operato/input/ox-input-code.js'
6
8
  import { closePopup } from '@operato/popup'
7
9
 
@@ -10,7 +12,6 @@ import { closePopup } from '@operato/popup'
10
12
  */
11
13
  export class CodeInputEditorPopup extends LitElement {
12
14
  static styles = [
13
- CommonGristStyles,
14
15
  ButtonContainerStyles,
15
16
  css`
16
17
  :host {
@@ -24,47 +25,36 @@ export class CodeInputEditorPopup extends LitElement {
24
25
  }
25
26
 
26
27
  ox-input-code {
27
- margin:10px;
28
+ margin: 10px;
28
29
  overflow-y: auto;
29
30
  flex: 1;
30
31
  }
31
-
32
- .button-container {
33
- display: flex;
34
- margin-left: auto;
35
- }
36
32
  `
37
33
  ]
38
34
 
39
- async connectedCallback(){
40
-
41
- if(typeof this.value === 'object'){
42
- this.codeVlaue = JSON.stringify(this.value, 0, 2);
35
+ async connectedCallback() {
36
+ if (typeof this.value === 'object') {
37
+ this.codeVlaue = JSON.stringify(this.value, 0, 2)
43
38
  } else {
44
- this.codeVlaue = this.value;
45
-
39
+ this.codeVlaue = this.value
46
40
  }
47
41
 
48
- await super.connectedCallback();
42
+ await super.connectedCallback()
49
43
  }
50
44
 
51
- async firstUpdated(){
52
- await super.firstUpdated();
45
+ async firstUpdated() {
46
+ await super.firstUpdated()
53
47
  }
54
48
 
55
- render(){
49
+ render() {
56
50
  return html`
57
51
  <ox-input-code mode="javascript" value=${this.codeVlaue} tab-size="2" tab-as-space="true"></ox-input-code>
58
- <div id="button-container" class="button-container">
59
- <mwc-button raised label="${TermsUtil.tButton('empty')}" style="margin-left:7px;margin-top:7px;"
60
- @click=${this.clickEmpty.bind(this)}>
61
- </mwc-button>
62
- <mwc-button raised label="${TermsUtil.tButton('cancel')}" style="margin-left:7px;margin-top:7px;"
63
- @click=${this.clickCancel.bind(this)}>
64
- </mwc-button>
65
- <mwc-button raised label="${TermsUtil.tButton('confirm')}" style="margin-left:7px;margin-top:7px;"
66
- @click=${this.clickConfirm.bind(this)}>
67
- </mwc-button>
52
+
53
+ <div class="button-container" style="margin-left:unset;">
54
+ <button @click=${this.clickEmpty.bind(this)}><md-icon>check_box_outline_blank</md-icon>${TermsUtil.tButton('empty')}</button>
55
+ <div filler></div>
56
+ <button @click=${this.clickCancel.bind(this)}><md-icon>cancel</md-icon>${TermsUtil.tButton('cancel')}</button>
57
+ <button @click=${this.clickConfirm.bind(this)}><md-icon>done</md-icon>${TermsUtil.tButton('confirm')}</button>
68
58
  </div>
69
59
  `
70
60
  }
@@ -76,42 +66,42 @@ export class CodeInputEditorPopup extends LitElement {
76
66
  /**
77
67
  * @description 비우기
78
68
  ***************************
79
- * @returns
69
+ * @returns
80
70
  */
81
- async clickEmpty(e){
71
+ async clickEmpty(e) {
82
72
  this.confirmCallback && this.confirmCallback(null)
83
73
  closePopup(this)
84
74
  }
85
75
  /**
86
- * @description 취소
76
+ * @description 취소
87
77
  ***************************
88
- * @returns
78
+ * @returns
89
79
  */
90
- async clickCancel(e){
80
+ async clickCancel(e) {
91
81
  closePopup(this)
92
82
  }
93
83
  /**
94
- * @description 확인
84
+ * @description 확인
95
85
  ***************************
96
- * @returns
86
+ * @returns
97
87
  */
98
- async clickConfirm(e){
99
- if(this.codeVlaue === this.codeEditor.value){
100
- MetaApi.showToast('info', TermsUtil.tText('NOTHING_CHANGED'));
101
- return;
88
+ async clickConfirm(e) {
89
+ if (this.codeVlaue === this.codeEditor.value) {
90
+ MetaApi.showToast('info', TermsUtil.tText('NOTHING_CHANGED'))
91
+ return
102
92
  }
103
- this.changedValue(this.codeEditor.value);
93
+ this.changedValue(this.codeEditor.value)
104
94
  }
105
95
 
106
96
  /**
107
- * @description 확정
97
+ * @description 확정
108
98
  ***************************
109
- * @param {*} record
99
+ * @param {*} record
110
100
  */
111
- async changedValue(value){
101
+ async changedValue(value) {
112
102
  this.confirmCallback && this.confirmCallback(value)
113
103
  closePopup(this)
114
104
  }
115
105
  }
116
-
117
- customElements.define('code-input-editor-popup', CodeInputEditorPopup)
106
+
107
+ customElements.define('code-input-editor-popup', CodeInputEditorPopup)