@things-factory/meta-ui 7.0.1-alpha.8 → 7.0.1-alpha.81

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 (292) hide show
  1. package/client/bootstrap.ts +24 -34
  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 +231 -232
  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 +240 -243
  20. package/client/mixin/meta-tab-mixin.js +154 -155
  21. package/client/pages/activity/meta-activity-define-page.js +34 -21
  22. package/client/pages/activity/meta-activity-list-page.js +92 -79
  23. package/client/pages/button-role/button-role-page.js +5 -4
  24. package/client/pages/doc-number/doc-number-page.js +4 -3
  25. package/client/pages/doc-number/next-doc-number-popup.js +4 -3
  26. package/client/pages/entity/config-entity.js +183 -39
  27. package/client/pages/entity/main-menu-selector.js +13 -24
  28. package/client/pages/history/history-copy-list-popup.js +5 -2
  29. package/client/pages/history/history-json-list-popup.js +4 -0
  30. package/client/pages/menu/dynamic-menu-template.js +1 -4
  31. package/client/pages/menu/dynamic-menu.js +129 -27
  32. package/client/pages/menu/export-menu-popup.js +10 -11
  33. package/client/pages/meta-form-element.js +2 -2
  34. package/client/pages/meta-grist-element.js +2 -2
  35. package/client/pages/meta-grist-page.js +3 -3
  36. package/client/pages/meta-grist-tab-element.js +2 -2
  37. package/client/pages/meta-grist-tab-page.js +3 -3
  38. package/client/pages/meta-main-tab-element.js +2 -2
  39. package/client/pages/meta-main-tab-page.js +3 -3
  40. package/client/pages/meta-master-detail-element.js +2 -2
  41. package/client/pages/meta-master-detail-page.js +3 -3
  42. package/client/pages/meta-tab-detail-element.js +2 -2
  43. package/client/pages/meta-tab-detail-page.js +3 -3
  44. package/client/pages/meta-tab-element.js +2 -2
  45. package/client/pages/printer-device/printer-device-page.js +4 -3
  46. package/client/pages/template/doc-template-page.js +4 -3
  47. package/client/pages/template/template-file-page.js +4 -3
  48. package/client/pages/terms/config-terminology.js +28 -31
  49. package/client/pages/work-code/work-code-page.js +6 -5
  50. package/client/utils/grist-default-value.js +1 -1
  51. package/client/utils/meta-api.js +25 -5
  52. package/client/utils/meta-ui-util.js +304 -299
  53. package/client/utils/rest-service-util.js +328 -0
  54. package/client/utils/service-util.js +170 -110
  55. package/client/utils/{terms-util.js → terms-util.ts} +21 -94
  56. package/client/utils/value-util.js +74 -72
  57. package/dist-client/bootstrap.d.ts +2 -1
  58. package/dist-client/bootstrap.js +20 -30
  59. package/dist-client/bootstrap.js.map +1 -1
  60. package/dist-client/component/filter/filter-form-meta-code-select.d.ts +4 -1
  61. package/dist-client/component/filter/filter-form-meta-code-select.js +21 -18
  62. package/dist-client/component/filter/filter-form-meta-code-select.js.map +1 -1
  63. package/dist-client/component/filter/filter-form-meta-object-select.d.ts +4 -1
  64. package/dist-client/component/filter/filter-form-meta-object-select.js +27 -19
  65. package/dist-client/component/filter/filter-form-meta-object-select.js.map +1 -1
  66. package/dist-client/component/filter/filter-grist-meta-code-select.d.ts +3 -1
  67. package/dist-client/component/filter/filter-grist-meta-code-select.js +19 -18
  68. package/dist-client/component/filter/filter-grist-meta-code-select.js.map +1 -1
  69. package/dist-client/component/filter/filter-grist-meta-object-select.d.ts +3 -1
  70. package/dist-client/component/filter/filter-grist-meta-object-select.js +25 -19
  71. package/dist-client/component/filter/filter-grist-meta-object-select.js.map +1 -1
  72. package/dist-client/component/popup/code-input-editor-popup.js +10 -19
  73. package/dist-client/component/popup/code-input-editor-popup.js.map +1 -1
  74. package/dist-client/component/popup/file-upload-popup.js +6 -25
  75. package/dist-client/component/popup/file-upload-popup.js.map +1 -1
  76. package/dist-client/component/popup/meta-object-selector-popup.d.ts +27 -22
  77. package/dist-client/component/popup/meta-object-selector-popup.js +113 -75
  78. package/dist-client/component/popup/meta-object-selector-popup.js.map +1 -1
  79. package/dist-client/component/popup/record-based-code-editor-popup.d.ts +11 -12
  80. package/dist-client/component/popup/record-based-code-editor-popup.js +76 -44
  81. package/dist-client/component/popup/record-based-code-editor-popup.js.map +1 -1
  82. package/dist-client/dynamic-menus.d.ts +1 -15
  83. package/dist-client/dynamic-menus.js +12 -5
  84. package/dist-client/dynamic-menus.js.map +1 -1
  85. package/dist-client/index.d.ts +1 -16
  86. package/dist-client/index.js +1 -17
  87. package/dist-client/index.js.map +1 -1
  88. package/dist-client/load-components.d.ts +15 -0
  89. package/dist-client/load-components.js +17 -0
  90. package/dist-client/load-components.js.map +1 -0
  91. package/dist-client/mixin/meta-base-mixin.js +7 -8
  92. package/dist-client/mixin/meta-base-mixin.js.map +1 -1
  93. package/dist-client/mixin/meta-basic-grist-mixin.d.ts +5 -21
  94. package/dist-client/mixin/meta-basic-grist-mixin.js +5 -7
  95. package/dist-client/mixin/meta-basic-grist-mixin.js.map +1 -1
  96. package/dist-client/mixin/meta-form-mixin.d.ts +9 -5
  97. package/dist-client/mixin/meta-form-mixin.js +14 -12
  98. package/dist-client/mixin/meta-form-mixin.js.map +1 -1
  99. package/dist-client/mixin/meta-grist-tab-mixin.d.ts +1 -5
  100. package/dist-client/mixin/meta-grist-tab-mixin.js +5 -5
  101. package/dist-client/mixin/meta-grist-tab-mixin.js.map +1 -1
  102. package/dist-client/mixin/meta-main-tab-mixin.d.ts +10 -7
  103. package/dist-client/mixin/meta-main-tab-mixin.js +4 -6
  104. package/dist-client/mixin/meta-main-tab-mixin.js.map +1 -1
  105. package/dist-client/mixin/meta-master-detail-mixin.js +8 -8
  106. package/dist-client/mixin/meta-master-detail-mixin.js.map +1 -1
  107. package/dist-client/mixin/meta-tab-detail-mixin.d.ts +1 -5
  108. package/dist-client/mixin/meta-tab-detail-mixin.js +5 -7
  109. package/dist-client/mixin/meta-tab-detail-mixin.js.map +1 -1
  110. package/dist-client/mixin/meta-tab-mixin.d.ts +6 -5
  111. package/dist-client/mixin/meta-tab-mixin.js +2 -3
  112. package/dist-client/mixin/meta-tab-mixin.js.map +1 -1
  113. package/dist-client/pages/activity/meta-activity-define-page.js +25 -13
  114. package/dist-client/pages/activity/meta-activity-define-page.js.map +1 -1
  115. package/dist-client/pages/activity/meta-activity-list-page.js +26 -22
  116. package/dist-client/pages/activity/meta-activity-list-page.js.map +1 -1
  117. package/dist-client/pages/button-role/button-role-detail.d.ts +1 -1
  118. package/dist-client/pages/button-role/button-role-page.js +3 -2
  119. package/dist-client/pages/button-role/button-role-page.js.map +1 -1
  120. package/dist-client/pages/doc-number/doc-number-page.js +3 -2
  121. package/dist-client/pages/doc-number/doc-number-page.js.map +1 -1
  122. package/dist-client/pages/doc-number/next-doc-number-popup.js +3 -2
  123. package/dist-client/pages/doc-number/next-doc-number-popup.js.map +1 -1
  124. package/dist-client/pages/entity/config-entity.js +77 -27
  125. package/dist-client/pages/entity/config-entity.js.map +1 -1
  126. package/dist-client/pages/entity/main-menu-selector.js +12 -24
  127. package/dist-client/pages/entity/main-menu-selector.js.map +1 -1
  128. package/dist-client/pages/history/history-copy-list-popup.d.ts +1 -1
  129. package/dist-client/pages/history/history-copy-list-popup.js +5 -2
  130. package/dist-client/pages/history/history-copy-list-popup.js.map +1 -1
  131. package/dist-client/pages/history/history-json-list-popup.d.ts +1 -1
  132. package/dist-client/pages/history/history-json-list-popup.js +4 -0
  133. package/dist-client/pages/history/history-json-list-popup.js.map +1 -1
  134. package/dist-client/pages/menu/dynamic-menu-template.js +1 -4
  135. package/dist-client/pages/menu/dynamic-menu-template.js.map +1 -1
  136. package/dist-client/pages/menu/dynamic-menu.js +75 -23
  137. package/dist-client/pages/menu/dynamic-menu.js.map +1 -1
  138. package/dist-client/pages/menu/export-menu-popup.js +9 -11
  139. package/dist-client/pages/menu/export-menu-popup.js.map +1 -1
  140. package/dist-client/pages/meta-form-element.js +2 -1
  141. package/dist-client/pages/meta-form-element.js.map +1 -1
  142. package/dist-client/pages/meta-grist-element.d.ts +1 -1
  143. package/dist-client/pages/meta-grist-element.js +2 -1
  144. package/dist-client/pages/meta-grist-element.js.map +1 -1
  145. package/dist-client/pages/meta-grist-page.d.ts +1 -1
  146. package/dist-client/pages/meta-grist-page.js +3 -2
  147. package/dist-client/pages/meta-grist-page.js.map +1 -1
  148. package/dist-client/pages/meta-grist-tab-element.js +2 -1
  149. package/dist-client/pages/meta-grist-tab-element.js.map +1 -1
  150. package/dist-client/pages/meta-grist-tab-page.js +3 -2
  151. package/dist-client/pages/meta-grist-tab-page.js.map +1 -1
  152. package/dist-client/pages/meta-main-tab-element.js +2 -1
  153. package/dist-client/pages/meta-main-tab-element.js.map +1 -1
  154. package/dist-client/pages/meta-main-tab-page.js +3 -2
  155. package/dist-client/pages/meta-main-tab-page.js.map +1 -1
  156. package/dist-client/pages/meta-master-detail-element.js +2 -1
  157. package/dist-client/pages/meta-master-detail-element.js.map +1 -1
  158. package/dist-client/pages/meta-master-detail-page.js +3 -2
  159. package/dist-client/pages/meta-master-detail-page.js.map +1 -1
  160. package/dist-client/pages/meta-tab-detail-element.js +2 -1
  161. package/dist-client/pages/meta-tab-detail-element.js.map +1 -1
  162. package/dist-client/pages/meta-tab-detail-page.js +3 -2
  163. package/dist-client/pages/meta-tab-detail-page.js.map +1 -1
  164. package/dist-client/pages/meta-tab-element.js +2 -1
  165. package/dist-client/pages/meta-tab-element.js.map +1 -1
  166. package/dist-client/pages/printer-device/printer-device-page.js +3 -2
  167. package/dist-client/pages/printer-device/printer-device-page.js.map +1 -1
  168. package/dist-client/pages/template/doc-template-page.js +3 -2
  169. package/dist-client/pages/template/doc-template-page.js.map +1 -1
  170. package/dist-client/pages/template/template-file-page.js +3 -2
  171. package/dist-client/pages/template/template-file-page.js.map +1 -1
  172. package/dist-client/pages/terms/config-terminology.js +19 -22
  173. package/dist-client/pages/terms/config-terminology.js.map +1 -1
  174. package/dist-client/pages/work-code/work-code-detail-popup.d.ts +1 -1
  175. package/dist-client/pages/work-code/work-code-page.js +5 -3
  176. package/dist-client/pages/work-code/work-code-page.js.map +1 -1
  177. package/dist-client/tsconfig.tsbuildinfo +1 -1
  178. package/dist-client/utils/grist-default-value.js +1 -1
  179. package/dist-client/utils/grist-default-value.js.map +1 -1
  180. package/dist-client/utils/meta-api.d.ts +14 -5
  181. package/dist-client/utils/meta-api.js +15 -4
  182. package/dist-client/utils/meta-api.js.map +1 -1
  183. package/dist-client/utils/meta-ui-util.d.ts +0 -13
  184. package/dist-client/utils/meta-ui-util.js +244 -271
  185. package/dist-client/utils/meta-ui-util.js.map +1 -1
  186. package/dist-client/utils/rest-service-util.d.ts +120 -0
  187. package/dist-client/utils/rest-service-util.js +291 -0
  188. package/dist-client/utils/rest-service-util.js.map +1 -0
  189. package/dist-client/utils/service-util.d.ts +11 -14
  190. package/dist-client/utils/service-util.js +133 -102
  191. package/dist-client/utils/service-util.js.map +1 -1
  192. package/dist-client/utils/terms-util.d.ts +7 -24
  193. package/dist-client/utils/terms-util.js +6 -78
  194. package/dist-client/utils/terms-util.js.map +1 -1
  195. package/dist-client/utils/value-util.js +6 -4
  196. package/dist-client/utils/value-util.js.map +1 -1
  197. package/dist-server/service/button-role/button-role-query.js +1 -1
  198. package/dist-server/service/button-role/button-role-query.js.map +1 -1
  199. package/dist-server/service/dynamic-menu/dynamic-menu-query.js +68 -18
  200. package/dist-server/service/dynamic-menu/dynamic-menu-query.js.map +1 -1
  201. package/dist-server/service/dynamic-menu/dynamic-menu-type.js.map +1 -1
  202. package/dist-server/service/entity-event-subscriber/entity-event-subscriber.js +3 -3
  203. package/dist-server/service/entity-event-subscriber/entity-event-subscriber.js.map +1 -1
  204. package/dist-server/service/index.js +0 -4
  205. package/dist-server/service/index.js.map +1 -1
  206. package/dist-server/service/menu-button-auth/menu-button-auth-query.js +3 -3
  207. package/dist-server/service/menu-button-auth/menu-button-auth-query.js.map +1 -1
  208. package/dist-server/service/work-code/work-code.js +1 -1
  209. package/dist-server/service/work-code/work-code.js.map +1 -1
  210. package/dist-server/service/work-code-detail/work-code-detail.js +7 -3
  211. package/dist-server/service/work-code-detail/work-code-detail.js.map +1 -1
  212. package/dist-server/tsconfig.tsbuildinfo +1 -1
  213. package/package.json +16 -9
  214. package/server/service/button-role/button-role-query.ts +9 -4
  215. package/server/service/dynamic-menu/dynamic-menu-query.ts +178 -116
  216. package/server/service/dynamic-menu/dynamic-menu-type.ts +11 -16
  217. package/server/service/entity-event-subscriber/entity-event-subscriber.ts +31 -33
  218. package/server/service/index.ts +0 -4
  219. package/server/service/menu-button-auth/menu-button-auth-query.ts +31 -29
  220. package/server/service/work-code/work-code.ts +6 -7
  221. package/server/service/work-code-detail/work-code-detail.ts +9 -5
  222. package/things-factory.config.js +2 -2
  223. package/translations/en.json +2 -13
  224. package/translations/ko.json +2 -13
  225. package/translations/ms.json +2 -13
  226. package/translations/zh.json +2 -13
  227. package/client/actions/main.js +0 -127
  228. package/client/component/filter/filter-form-meta-code-select.js +0 -94
  229. package/client/component/filter/filter-form-meta-object-select.js +0 -94
  230. package/client/component/filter/filter-grist-meta-code-select.js +0 -95
  231. package/client/component/filter/filter-grist-meta-object-select.js +0 -95
  232. package/client/component/popup/meta-object-selector-popup.js +0 -314
  233. package/client/pages/menu/dynamic-menu-setting-let.js +0 -88
  234. package/client/pages/personalize/personal-column-selector.js +0 -265
  235. package/client/reducers/main.js +0 -79
  236. package/client/viewparts/dynamic-menu-landscape-styles.js +0 -149
  237. package/client/viewparts/dynamic-menu-landscape.js +0 -106
  238. package/client/viewparts/dynamic-menu-part.js +0 -142
  239. package/client/viewparts/dynamic-menu-portrait-styles.js +0 -130
  240. package/client/viewparts/dynamic-menu-portrait.js +0 -90
  241. package/client/viewparts/dynamic-top-menu-bar.js +0 -148
  242. package/dist-client/actions/main.d.ts +0 -4
  243. package/dist-client/actions/main.js +0 -114
  244. package/dist-client/actions/main.js.map +0 -1
  245. package/dist-client/pages/menu/dynamic-menu-setting-let.d.ts +0 -10
  246. package/dist-client/pages/menu/dynamic-menu-setting-let.js +0 -81
  247. package/dist-client/pages/menu/dynamic-menu-setting-let.js.map +0 -1
  248. package/dist-client/pages/personalize/personal-column-selector.d.ts +0 -71
  249. package/dist-client/pages/personalize/personal-column-selector.js +0 -244
  250. package/dist-client/pages/personalize/personal-column-selector.js.map +0 -1
  251. package/dist-client/reducers/main.d.ts +0 -11
  252. package/dist-client/reducers/main.js +0 -62
  253. package/dist-client/reducers/main.js.map +0 -1
  254. package/dist-client/viewparts/dynamic-menu-landscape-styles.d.ts +0 -1
  255. package/dist-client/viewparts/dynamic-menu-landscape-styles.js +0 -149
  256. package/dist-client/viewparts/dynamic-menu-landscape-styles.js.map +0 -1
  257. package/dist-client/viewparts/dynamic-menu-landscape.d.ts +0 -21
  258. package/dist-client/viewparts/dynamic-menu-landscape.js +0 -87
  259. package/dist-client/viewparts/dynamic-menu-landscape.js.map +0 -1
  260. package/dist-client/viewparts/dynamic-menu-part.d.ts +0 -33
  261. package/dist-client/viewparts/dynamic-menu-part.js +0 -127
  262. package/dist-client/viewparts/dynamic-menu-part.js.map +0 -1
  263. package/dist-client/viewparts/dynamic-menu-portrait-styles.d.ts +0 -1
  264. package/dist-client/viewparts/dynamic-menu-portrait-styles.js +0 -130
  265. package/dist-client/viewparts/dynamic-menu-portrait-styles.js.map +0 -1
  266. package/dist-client/viewparts/dynamic-menu-portrait.d.ts +0 -13
  267. package/dist-client/viewparts/dynamic-menu-portrait.js +0 -74
  268. package/dist-client/viewparts/dynamic-menu-portrait.js.map +0 -1
  269. package/dist-client/viewparts/dynamic-top-menu-bar.d.ts +0 -27
  270. package/dist-client/viewparts/dynamic-top-menu-bar.js +0 -133
  271. package/dist-client/viewparts/dynamic-top-menu-bar.js.map +0 -1
  272. package/dist-server/constants/error-code.js +0 -6
  273. package/dist-server/constants/error-code.js.map +0 -1
  274. package/dist-server/controllers/index.js +0 -1
  275. package/dist-server/controllers/index.js.map +0 -1
  276. package/dist-server/service/grid-personalize/grid-personalize-mutation.js +0 -108
  277. package/dist-server/service/grid-personalize/grid-personalize-mutation.js.map +0 -1
  278. package/dist-server/service/grid-personalize/grid-personalize-query.js +0 -108
  279. package/dist-server/service/grid-personalize/grid-personalize-query.js.map +0 -1
  280. package/dist-server/service/grid-personalize/grid-personalize-type.js +0 -66
  281. package/dist-server/service/grid-personalize/grid-personalize-type.js.map +0 -1
  282. package/dist-server/service/grid-personalize/grid-personalize.js +0 -84
  283. package/dist-server/service/grid-personalize/grid-personalize.js.map +0 -1
  284. package/dist-server/service/grid-personalize/index.js +0 -9
  285. package/dist-server/service/grid-personalize/index.js.map +0 -1
  286. package/server/constants/error-code.ts +0 -2
  287. package/server/controllers/index.ts +0 -0
  288. package/server/service/grid-personalize/grid-personalize-mutation.ts +0 -113
  289. package/server/service/grid-personalize/grid-personalize-query.ts +0 -61
  290. package/server/service/grid-personalize/grid-personalize-type.ts +0 -45
  291. package/server/service/grid-personalize/grid-personalize.ts +0 -73
  292. package/server/service/grid-personalize/index.ts +0 -7
@@ -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)
@@ -1,19 +1,18 @@
1
+ import '@material/web/icon/icon.js'
2
+
1
3
  import { client, gqlContext } from '@things-factory/shell'
2
4
  import { css, html, LitElement } from 'lit'
3
5
  import { SingleColumnFormStyles } from '@things-factory/form-ui'
4
- import { CommonGristStyles, ButtonContainerStyles } from '@operato/styles'
6
+ import { ButtonContainerStyles } from '@operato/styles'
5
7
  import gql from 'graphql-tag'
6
- import { TermsUtil } from '../../utils/terms-util';
7
- import { ValueUtil } from '../../utils/value-util'
8
+ import { TermsUtil } from '../../utils/terms-util'
8
9
  import { ServiceUtil } from '../../utils/service-util'
9
- import { MetaApi } from "../../utils/meta-api"
10
- import { MetaUiUtil } from "../../utils/meta-ui-util"
11
- import { isMobileDevice } from '@operato/utils'
12
- import { closePopup } from '@operato/popup'
10
+ import { MetaApi } from '../../utils/meta-api'
13
11
 
14
12
  class FileUploadPopup extends LitElement {
15
13
  static get styles() {
16
14
  return [
15
+ ButtonContainerStyles,
17
16
  SingleColumnFormStyles,
18
17
  css`
19
18
  :host {
@@ -23,27 +22,10 @@ class FileUploadPopup extends LitElement {
23
22
  overflow-x: overlay;
24
23
  background-color: var(--main-section-background-color);
25
24
  }
25
+
26
26
  .input-container {
27
27
  display: flex;
28
28
  }
29
- .button-container {
30
- padding: 10px 0 12px 0;
31
- text-align: center;
32
- }
33
- .button-container > button {
34
- background-color: var(--button-background-color);
35
- border: var(--button-border);
36
- border-radius: var(--button-border-radius);
37
- margin: var(--button-margin);
38
- padding: var(--button-padding);
39
- color: var(--button-color);
40
- font: var(--button-font);
41
- text-transform: var(--button-text-transform);
42
- }
43
- .button-container > button:hover,
44
- .button-container > button:active {
45
- background-color: var(--button-background-focus-color);
46
- }
47
29
  `
48
30
  ]
49
31
  }
@@ -84,7 +66,7 @@ class FileUploadPopup extends LitElement {
84
66
  </div>
85
67
 
86
68
  <div class="button-container">
87
- <mwc-button raised @click="${this._createAttachment}" label="${TermsUtil.tButton('create')}"></mwc-button>
69
+ <button @click=${this._createAttachment}><md-icon>attach_file_add</md-icon>${TermsUtil.tButton('create')}</button>
88
70
  </div>
89
71
  `
90
72
  }
@@ -0,0 +1,355 @@
1
+ import '@material/web/icon/icon.js'
2
+
3
+ import { css, html, LitElement, PropertyValues } from 'lit'
4
+ import { customElement, property, query } from 'lit/decorators.js'
5
+ import { closePopup } from '@operato/popup'
6
+ import { isMobileDevice, adjustFilters } from '@operato/utils'
7
+ import { CommonGristStyles, ButtonContainerStyles, CommonHeaderStyles } from '@operato/styles'
8
+ import { ColumnConfig, DataGrist, FetchOption, FetchResult, GristRecord, QueryFilter } from '@operato/data-grist'
9
+
10
+ import { TermsUtil } from '../../utils/terms-util'
11
+ import { ValueUtil } from '../../utils/value-util'
12
+ import { ServiceUtil } from '../../utils/service-util'
13
+ import { MetaApi } from '../../utils/meta-api'
14
+ import { MetaUiUtil } from '../../utils/meta-ui-util'
15
+
16
+ @customElement('meta-object-selector-popup')
17
+ export class MetaObjectSelectorPopup extends LitElement {
18
+ static styles = [
19
+ CommonGristStyles,
20
+ CommonHeaderStyles,
21
+ ButtonContainerStyles,
22
+ css`
23
+ :host {
24
+ display: flex;
25
+ flex-direction: column;
26
+
27
+ background-color: #fff;
28
+
29
+ width: var(--overlay-center-normal-width, 50%);
30
+ height: var(--overlay-center-normal-height, 50%);
31
+ }
32
+
33
+ ox-grist {
34
+ flex: 1;
35
+ }
36
+
37
+ ox-filters-form {
38
+ flex: 1;
39
+ }
40
+ `
41
+ ]
42
+
43
+ @property({ type: String }) value?: string
44
+ @property({ type: Object }) gridConfig: any
45
+ @property({ type: Object }) basicArgs?: FetchOption
46
+ @property({ type: Object }) options!: FetchOption & {
47
+ menu_template?: any
48
+ filterFields?: any[]
49
+ codeField?: string
50
+ nameField?: string
51
+ dispField?: string
52
+ queryName: string
53
+ select?: (ColumnConfig & {
54
+ options: any
55
+ select_opt: any
56
+ object_opt: any
57
+ })[]
58
+ }
59
+ @property({ type: Object }) confirmCallback?: (record?: Partial<GristRecord>) => void
60
+ @property({ type: Array }) selectedRecords: GristRecord[] = []
61
+
62
+ @query('ox-grist') private grist!: DataGrist
63
+
64
+ private foundationFilters: QueryFilter[] = []
65
+ private record: any
66
+
67
+ async connectedCallback() {
68
+ const {
69
+ select,
70
+ sorters,
71
+ filters,
72
+ codeField,
73
+ nameField,
74
+ dispField,
75
+ filterFields: optionFilterFields,
76
+ menu_template
77
+ } = this.options || {}
78
+
79
+ // 숨김 검색 조건
80
+ this.foundationFilters = filters ? filters : this.basicArgs && this.basicArgs.filters ? this.basicArgs.filters : []
81
+
82
+ this.foundationFilters = this.foundationFilters.map(x => {
83
+ let { name, operator, value } = x
84
+
85
+ if (value.startsWith('::')) {
86
+ value = ValueUtil.getParams(this.record, ...value.substring(2).split('.'))
87
+ }
88
+
89
+ return {
90
+ name,
91
+ operator,
92
+ value
93
+ }
94
+ })
95
+
96
+ // 기본 정렬
97
+ let sortFields = sorters ? sorters : this.basicArgs && this.basicArgs.sorters ? this.basicArgs.sorters : []
98
+
99
+ // 기본 검색 조건
100
+ let filterFields = optionFilterFields
101
+ ? optionFilterFields
102
+ : menu_template?.search && menu_template?.search.length > 0
103
+ ? menu_template.search
104
+ : []
105
+
106
+ // 그리드 컬럼
107
+ let gridColumns = select
108
+
109
+ // 기본 검색 조건이 없으면 코드 (code-selector), 또는 이름 (object-selector)
110
+ if (!filterFields || filterFields.length == 0) {
111
+ let defaultFilter
112
+
113
+ if (codeField) defaultFilter = codeField
114
+ if (nameField) defaultFilter = nameField
115
+
116
+ if (defaultFilter) {
117
+ filterFields.push({
118
+ name: defaultFilter,
119
+ operator: 'eq'
120
+ })
121
+ }
122
+ }
123
+
124
+ let selectFields = [...MetaApi.getGristGuttersConfig(true, false)]
125
+
126
+ if (gridColumns && gridColumns.length > 0) {
127
+ for (let idx = 0; idx < gridColumns.length; idx++) {
128
+ let {
129
+ type = 'string',
130
+ name,
131
+ hidden = false,
132
+ record = { align: 'left' },
133
+ header = undefined,
134
+ sortable = false,
135
+ width = 135,
136
+ options = undefined,
137
+ select_opt = undefined,
138
+ object_opt = undefined
139
+ } = gridColumns[idx]
140
+
141
+ if (select_opt) options = select_opt
142
+ if (object_opt) options = object_opt
143
+
144
+ if (['resource-object', 'object'].includes(type)) {
145
+ type = 'meta-object-selector'
146
+ } else if (['resource-code-selector'].includes(type)) {
147
+ type = 'meta-code-selector'
148
+ }
149
+
150
+ if (name == 'id') {
151
+ selectFields.push({
152
+ type: 'string',
153
+ name: name,
154
+ hidden: true
155
+ })
156
+ } else {
157
+ if (type == 'boolean-all') {
158
+ type = 'boolean'
159
+ }
160
+
161
+ let columnConfig = MetaApi.getGristColumnConfig2(
162
+ type,
163
+ name,
164
+ header ? (header as unknown as string) : name,
165
+ record.align ? record.align : 'left',
166
+ false,
167
+ sortable,
168
+ Number(width)
169
+ )
170
+
171
+ if (type.startsWith('meta-') && object_opt && object_opt.menu) {
172
+ options = await MetaUiUtil.getGristMetaObjectOptions(type, options)
173
+ }
174
+
175
+ if (type === 'select') {
176
+ if (Array.isArray(options)) {
177
+ columnConfig.record.options = options
178
+ } else {
179
+ if (options.type === 'code') {
180
+ // 공통 코드
181
+ columnConfig.record.options = await ServiceUtil.getCodeSelectorData(
182
+ options.values ? options.values : options.name
183
+ )
184
+ } else if (options.type === 'scenario') {
185
+ // 시나리오
186
+ columnConfig.record.options = await ServiceUtil.getCodeByScenario(options.name, options.args)
187
+ } else if (options.type === 'entity') {
188
+ // 엔티티
189
+ columnConfig.record.options = await ServiceUtil.getCodeByEntity(options.args)
190
+ }
191
+ }
192
+ } else if (type === 'meta-object-selector') {
193
+ // object-option
194
+ columnConfig.record.options = { ...options }
195
+ } else if (type == 'meta-code-selector') {
196
+ if (options.dispField) {
197
+ options.codes = await ServiceUtil.getCodeByEntity(options)
198
+ }
199
+
200
+ columnConfig.record.options = { ...options }
201
+ }
202
+
203
+ columnConfig.hidden = hidden
204
+
205
+ selectFields.push(columnConfig)
206
+ }
207
+ }
208
+ } else {
209
+ selectFields.push(MetaApi.getGristColumnConfig2('string', codeField!, codeField!, 'left', false, true, 180))
210
+
211
+ if (dispField) {
212
+ selectFields.push(MetaApi.getGristColumnConfig2('string', dispField, dispField, 'left', false, true, 300))
213
+ }
214
+ }
215
+
216
+ selectFields.forEach(x => {
217
+ let filters = filterFields.filter(y => (typeof y === 'string' ? x.name == y : x.name == y.name))
218
+
219
+ if (filters && filters.length > 0) {
220
+ x.filter = typeof filters[0] === 'string' ? 'search' : filters[0]
221
+ }
222
+ })
223
+
224
+ let gridConfig = {
225
+ rows: MetaApi.getGristSelectableConfig(false),
226
+ pagination: MetaApi.getGristPagination100Config(),
227
+ columns: selectFields,
228
+ sorters: [...sortFields]
229
+ }
230
+
231
+ gridConfig.rows.handlers = {
232
+ click: 'select-row-toggle',
233
+ dblclick: (columns, data, column, record, rowIndex, field) => {
234
+ this.selectRecord(record)
235
+ }
236
+ }
237
+
238
+ gridConfig.rows.appendable = false
239
+
240
+ this.gridConfig = gridConfig
241
+
242
+ await super.connectedCallback()
243
+ }
244
+
245
+ async firstUpdated(changes: PropertyValues<this>) {
246
+ await super.firstUpdated(changes)
247
+ }
248
+
249
+ render() {
250
+ return html`
251
+ <ox-grist
252
+ id="ox-grist"
253
+ .config=${this.gridConfig}
254
+ .mode=${isMobileDevice() ? 'LIST' : 'GRID'}
255
+ auto-fetch
256
+ .fetchHandler=${this.fetchHandler.bind(this)}
257
+ >
258
+ <div slot="headroom" class="header">
259
+ <div class="filters">
260
+ <ox-filters-form></ox-filters-form>
261
+ </div>
262
+ </div>
263
+ </ox-grist>
264
+
265
+ <div class="button-container" style="margin-left:unset;">
266
+ <button @click=${this.clickEmpty.bind(this)}>
267
+ <md-icon>check_box_outline_blank</md-icon>${TermsUtil.tButton('empty')}
268
+ </button>
269
+ <div filler></div>
270
+ <button @click=${this.clickCancel.bind(this)}><md-icon>cancel</md-icon>${TermsUtil.tButton('cancel')}</button>
271
+ <button @click=${this.clickSelect.bind(this)}><md-icon>done</md-icon>${TermsUtil.tButton('select')}</button>
272
+ </div>
273
+ `
274
+ }
275
+
276
+ /**
277
+ * @description 컬럼 조회
278
+ ***************************
279
+ * @returns
280
+ */
281
+ async fetchHandler({ page = 0, limit = 0, sorters = [], filters = [] }: FetchOption): Promise<FetchResult> {
282
+ const { menu_template, queryName } = this.options || {}
283
+
284
+ // let resFilter = [...this.foundationFilters]
285
+
286
+ // filters.forEach((x: any) => {
287
+ // let dupFilter = resFilter.filter(y => x.name == y.name)
288
+ // if (dupFilter && dupFilter.length > 0) {
289
+ // delete resFilter[x.name]
290
+ // }
291
+
292
+ // resFilter.push(x)
293
+ // })
294
+
295
+ let resFilter = adjustFilters([...this.foundationFilters], filters)
296
+
297
+ let queryAfterSetFields = ValueUtil.getParams(
298
+ menu_template ? menu_template.gql || {} : {},
299
+ 'query',
300
+ 'after_set_fields'
301
+ )
302
+ let selectSkipFields = Object.keys(queryAfterSetFields || {})
303
+
304
+ // 조회 컬럼 추출 후 조회
305
+ let selectFields = MetaApi.getSelectColumns(this.gridConfig.columns.filter(x => !selectSkipFields.includes(x.name)))
306
+
307
+ // 조회 실행
308
+ let result = await MetaApi.searchByPagination(queryName, resFilter, sorters, page, limit, selectFields)
309
+
310
+ return result
311
+ }
312
+
313
+ /**
314
+ * @description 비우기
315
+ ***************************
316
+ * @returns
317
+ */
318
+ async clickEmpty(e) {
319
+ this.confirmCallback && this.confirmCallback()
320
+ closePopup(this)
321
+ }
322
+ /**
323
+ * @description 취소
324
+ ***************************
325
+ * @returns
326
+ */
327
+ async clickCancel(e) {
328
+ closePopup(this)
329
+ }
330
+ /**
331
+ * @description 선택
332
+ ***************************
333
+ * @returns
334
+ */
335
+ async clickSelect(e) {
336
+ let selected = this.grist.selected
337
+
338
+ if (!selected || selected.length == 0) {
339
+ MetaApi.showToast('info', TermsUtil.tText('NOTHING_SELECTED'))
340
+ return
341
+ }
342
+
343
+ this.selectRecord(selected[0])
344
+ }
345
+
346
+ /**
347
+ * @description 확정
348
+ ***************************
349
+ * @param {*} record
350
+ */
351
+ async selectRecord(record) {
352
+ this.confirmCallback && this.confirmCallback(record)
353
+ closePopup(this)
354
+ }
355
+ }