@things-factory/reference-app 6.0.0-zeta.8 → 6.0.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 (139) hide show
  1. package/Dockerfile +1 -1
  2. package/assets/editorjs-demo.css +415 -0
  3. package/attachments/03e21709-60c1-4796-bb0b-9920148ce2c6.png +0 -0
  4. package/attachments/1c5f7b4e-45f7-47dc-94e2-6d4aa04c331d.png +0 -0
  5. package/attachments/5c7f2330-a93d-4c48-bcca-6b2a10974386.png +0 -0
  6. package/attachments/92a49294-725c-445c-8fe3-98d328d6d0a5.png +0 -0
  7. package/attachments/97e18c62-6e73-4407-a062-276cd25de43a.png +0 -0
  8. package/attachments/9c6e1599-a4e2-483e-833d-c67e336b27e5.png +0 -0
  9. package/attachments/9d1d12ea-0140-46cc-8eba-b1ab475bfd98.png +0 -0
  10. package/attachments/a727d8fa-5afe-47b3-9b29-97a1f26637f3.png +0 -0
  11. package/attachments/b713c6b6-15e3-4c80-a288-b0e8eba5e091.png +0 -0
  12. package/attachments/c7b6e18b-fd21-49c5-8a38-9b2455957c2a.png +0 -0
  13. package/attachments/dabc0a7e-bb5b-46a3-b73c-d310c95f0832.png +0 -0
  14. package/attachments/f099313a-c616-4753-b2d7-33db2ac29b3b.png +0 -0
  15. package/attachments/f90a4af7-5555-4078-8960-2c978363ac42.png +0 -0
  16. package/client/bootstrap.js +8 -8
  17. package/client/components/editor-lexical.tsx +6 -0
  18. package/client/components/react-container.tsx +27 -0
  19. package/client/menu.js +62 -3
  20. package/client/pages/context-menu-page.js +2 -2
  21. package/client/pages/context-page.js +2 -2
  22. package/client/pages/data-set/data-set-list-page.js +4 -6
  23. package/client/pages/direct-print.js +2 -2
  24. package/client/pages/event-calendar-page.ts +52 -0
  25. package/client/pages/ghost-print-page.js +2 -2
  26. package/client/pages/grist-colorizing.js +2 -2
  27. package/client/pages/grist-filters.ts +368 -0
  28. package/client/pages/grist-fulltext-search.ts +374 -0
  29. package/client/pages/label-scan-page.js +2 -2
  30. package/client/pages/menu-page.js +2 -2
  31. package/client/pages/notification-page.js +2 -2
  32. package/client/pages/ocr-page.js +2 -2
  33. package/client/pages/pending-job-page.js +2 -2
  34. package/client/pages/reference-page-styles.js +1 -1
  35. package/client/pages/report-page.js +1 -1
  36. package/client/pages/tree-view-page.ts +206 -0
  37. package/client/pages/upload-page.js +2 -2
  38. package/client/pages/web-editor-editorjs-page.js +152 -0
  39. package/client/pages/web-editor-jodit-page.js +51 -0
  40. package/client/pages/web-editor-lexical-page.js +49 -0
  41. package/client/pages/web-editor-tinymce-page.js +61 -0
  42. package/client/pages/web-editor-tui-page.js +52 -0
  43. package/client/route.js +38 -2
  44. package/client/themes/grist-theme.css +8 -8
  45. package/client/tsconfig.json +13 -0
  46. package/config.development.js +42 -0
  47. package/db.sqlite +0 -0
  48. package/dist-server/routes.js +6 -0
  49. package/dist-server/routes.js.map +1 -1
  50. package/dist-server/tsconfig.tsbuildinfo +1 -1
  51. package/logs/.08636eb59927f12972f6774f5947c8507b3564c2-audit.json +62 -12
  52. package/logs/.5e5d741d8b7784a2fbad65eedc0fd46946aaf6f2-audit.json +289 -9
  53. package/logs/application-2023-01-27-03.log +6 -0
  54. package/logs/application-2023-01-27-05.log +8 -0
  55. package/logs/application-2023-01-27-06.log +6 -0
  56. package/logs/application-2023-01-27-08.log +5 -0
  57. package/logs/application-2023-01-27-12.log +1 -0
  58. package/logs/application-2023-01-27-15.log +1 -0
  59. package/logs/application-2023-01-27-17.log +1 -0
  60. package/logs/application-2023-01-27-23.log +5 -0
  61. package/logs/application-2023-01-28-00.log +5 -0
  62. package/logs/application-2023-01-28-08.log +1 -0
  63. package/logs/application-2023-01-28-09.log +16 -0
  64. package/logs/application-2023-01-28-11.log +17 -0
  65. package/logs/application-2023-01-28-18.log +3 -0
  66. package/logs/application-2023-01-28-20.log +3 -0
  67. package/logs/{connections-2022-11-27-11.log → connections-2023-01-14-15.log} +0 -0
  68. package/logs/{connections-2022-11-30-03.log → connections-2023-01-14-16.log} +0 -0
  69. package/logs/{connections-2022-11-30-05.log → connections-2023-01-14-17.log} +0 -0
  70. package/logs/connections-2023-01-15-01.log +0 -0
  71. package/logs/connections-2023-01-15-02.log +0 -0
  72. package/logs/connections-2023-01-15-09.log +0 -0
  73. package/logs/connections-2023-01-15-10.log +0 -0
  74. package/logs/connections-2023-01-15-13.log +0 -0
  75. package/logs/connections-2023-01-15-15.log +0 -0
  76. package/logs/connections-2023-01-15-16.log +0 -0
  77. package/logs/connections-2023-01-16-02.log +0 -0
  78. package/logs/connections-2023-01-16-03.log +0 -0
  79. package/logs/connections-2023-01-16-04.log +0 -0
  80. package/logs/connections-2023-01-16-05.log +0 -0
  81. package/logs/connections-2023-01-16-18.log +0 -0
  82. package/logs/connections-2023-01-18-14.log +0 -0
  83. package/logs/connections-2023-01-18-15.log +0 -0
  84. package/logs/connections-2023-01-18-16.log +0 -0
  85. package/logs/connections-2023-01-21-03.log +0 -0
  86. package/logs/connections-2023-01-21-08.log +0 -0
  87. package/logs/connections-2023-01-21-09.log +0 -0
  88. package/logs/connections-2023-01-21-13.log +0 -0
  89. package/logs/connections-2023-01-21-14.log +0 -0
  90. package/logs/connections-2023-01-21-15.log +0 -0
  91. package/logs/connections-2023-01-22-09.log +0 -0
  92. package/logs/connections-2023-01-22-10.log +0 -0
  93. package/logs/connections-2023-01-22-11.log +0 -0
  94. package/logs/connections-2023-01-22-12.log +0 -0
  95. package/logs/connections-2023-01-23-02.log +0 -0
  96. package/logs/connections-2023-01-23-03.log +0 -0
  97. package/logs/connections-2023-01-23-04.log +0 -0
  98. package/logs/connections-2023-01-23-05.log +0 -0
  99. package/logs/connections-2023-01-23-06.log +0 -0
  100. package/logs/connections-2023-01-23-07.log +0 -0
  101. package/logs/connections-2023-01-23-08.log +0 -0
  102. package/logs/connections-2023-01-23-12.log +0 -0
  103. package/logs/connections-2023-01-23-13.log +0 -0
  104. package/logs/connections-2023-01-23-14.log +0 -0
  105. package/logs/connections-2023-01-23-17.log +0 -0
  106. package/logs/connections-2023-01-24-03.log +0 -0
  107. package/logs/connections-2023-01-24-04.log +0 -0
  108. package/logs/connections-2023-01-24-05.log +0 -0
  109. package/logs/connections-2023-01-25-00.log +0 -0
  110. package/logs/connections-2023-01-25-04.log +0 -0
  111. package/logs/connections-2023-01-25-05.log +0 -0
  112. package/logs/connections-2023-01-25-06.log +0 -0
  113. package/logs/connections-2023-01-25-07.log +0 -0
  114. package/logs/connections-2023-01-25-12.log +0 -0
  115. package/logs/connections-2023-01-26-00.log +0 -0
  116. package/logs/connections-2023-01-26-01.log +0 -0
  117. package/logs/connections-2023-01-26-02.log +0 -0
  118. package/logs/connections-2023-01-26-06.log +0 -0
  119. package/logs/connections-2023-01-27-03.log +0 -0
  120. package/logs/connections-2023-01-27-06.log +0 -0
  121. package/logs/connections-2023-01-27-08.log +0 -0
  122. package/logs/connections-2023-01-27-23.log +0 -0
  123. package/logs/connections-2023-01-28-00.log +0 -0
  124. package/logs/connections-2023-01-28-09.log +0 -0
  125. package/logs/connections-2023-01-28-11.log +0 -0
  126. package/package.json +47 -36
  127. package/server/routes.ts +7 -0
  128. package/server/tsconfig.json +9 -0
  129. package/{things-factory.config.js → things-factory.config.ts} +37 -1
  130. package/translations/ms.json +1 -1
  131. package/translations/zh.json +1 -1
  132. package/views/public/html-editor-editorjs.html +269 -0
  133. package/views/public/html-editor-jodit.html +31 -0
  134. package/views/public/html-editor-tui.html +54 -0
  135. package/logs/application-2022-11-30-03.log +0 -5
  136. package/logs/application-2022-11-30-05.log +0 -5
  137. package/logs/application-2022-11-30-12.log +0 -1
  138. package/logs/application-2022-11-30-14.log +0 -1
  139. package/tsconfig.json +0 -9
package/Dockerfile CHANGED
@@ -1,5 +1,5 @@
1
1
  # Use an official ubuntu image
2
- FROM hatiolab/operato-env:16
2
+ FROM hatiolab/operato-env:latest
3
3
 
4
4
  # Set the working directory to /app
5
5
  WORKDIR /app
@@ -0,0 +1,415 @@
1
+ /**
2
+ * Styles for the example page
3
+ */
4
+
5
+ :root {
6
+ --color-bg-main: #fff;
7
+ --color-border-light: #e8e8eb;
8
+ --color-text-main: #000;
9
+ }
10
+
11
+ .dark-mode {
12
+ --color-border-light: rgba(255, 255, 255, 0.08);
13
+ --color-bg-main: #1c1e24;
14
+ --color-text-main: #737886;
15
+ }
16
+
17
+ body {
18
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans',
19
+ 'Droid Sans', 'Helvetica Neue', sans-serif;
20
+ font-size: 14px;
21
+ line-height: 1.5em;
22
+ margin: 0;
23
+ background: var(--color-bg-main);
24
+ color: var(--color-text-main);
25
+ }
26
+
27
+ .ce-example {
28
+ font-size: 16.2px;
29
+ }
30
+
31
+ .ce-example__header {
32
+ border-bottom: 1px solid var(--color-border-light);
33
+ height: 50px;
34
+ line-height: 50px;
35
+ display: flex;
36
+ padding: 0 30px;
37
+ margin-bottom: 30px;
38
+ flex-wrap: wrap;
39
+ }
40
+
41
+ .ce-example__header a {
42
+ color: inherit;
43
+ text-decoration: none;
44
+ }
45
+
46
+ .ce-example__header-logo {
47
+ font-weight: bold;
48
+ }
49
+
50
+ .ce-example__header-menu {
51
+ margin-left: auto;
52
+ }
53
+
54
+ @media all and (max-width: 730px) {
55
+ .ce-example__header-menu {
56
+ margin-left: 0;
57
+ margin-top: 10px;
58
+ flex-basis: 100%;
59
+ font-size: 14px;
60
+ }
61
+ }
62
+
63
+ .ce-example__header-menu a {
64
+ margin-left: 20px;
65
+ }
66
+
67
+ @media all and (max-width: 730px) {
68
+ .ce-example__header-menu a {
69
+ margin-left: 0;
70
+ margin-right: 15px;
71
+ }
72
+ }
73
+
74
+ .ce-example__content {
75
+ max-width: 1100px;
76
+ margin: 0 auto;
77
+ -webkit-font-smoothing: antialiased;
78
+ -moz-osx-font-smoothing: grayscale;
79
+ }
80
+
81
+ .thin-mode .ce-example__content {
82
+ max-width: 500px;
83
+ border-left: 1px solid #eee;
84
+ border-right: 1px solid #eee;
85
+ padding: 0 15px;
86
+ }
87
+
88
+ .ce-example__output {
89
+ background: #1b202b;
90
+ overflow-x: auto;
91
+ padding: 0 30px 80px;
92
+ }
93
+
94
+ .ce-example__output-content {
95
+ max-width: 650px;
96
+ margin: 30px auto;
97
+ color: #abadc3;
98
+ font-family: 'PT Mono', Menlo, Monaco, Consolas, Courier New, monospace;
99
+ font-size: 13.3px;
100
+ }
101
+
102
+ .ce-example__output-content:empty {
103
+ display: none;
104
+ }
105
+
106
+ .ce-example__button {
107
+ display: block;
108
+ margin: 50px auto;
109
+ max-width: 180px;
110
+ background: #4a9df8;
111
+ padding: 17px 30px;
112
+ box-shadow: 0 22px 18px -4px rgba(137, 207, 255, 0.77);
113
+ transition: all 150ms ease;
114
+ cursor: pointer;
115
+ border-radius: 31px;
116
+ color: #fff;
117
+ font-family: 'PT Mono', Menlo, Monaco, Consolas, Courier New, monospace;
118
+ text-align: center;
119
+ }
120
+
121
+ .ce-example__button:hover {
122
+ background: #3d8de5;
123
+ transform: translateY(2px);
124
+ box-shadow: 0 20px 15px -4px rgba(137, 207, 255, 0.77);
125
+ }
126
+
127
+ .ce-example__output-footer {
128
+ padding: 30px 0;
129
+ font-size: 14.2px;
130
+ letter-spacing: 0.3px;
131
+ text-align: center;
132
+ }
133
+
134
+ .ce-example__output-footer a {
135
+ color: #fff;
136
+ text-decoration: none;
137
+ }
138
+
139
+ .ce-example__statusbar {
140
+ display: flex;
141
+ align-items: center;
142
+ position: fixed;
143
+ bottom: 0;
144
+ right: 0;
145
+ left: 0;
146
+ background: var(--color-bg-main);
147
+ border-radius: 8px 8px 0 0;
148
+ border-top: 1px solid var(--color-border-light);
149
+ box-shadow: 0 2px 6px var(--color-border-light);
150
+ font-size: 13px;
151
+ padding: 8px 15px;
152
+ z-index: 1;
153
+ user-select: none;
154
+ }
155
+
156
+ @media (max-width: 768px) {
157
+ .ce-example__statusbar {
158
+ display: none;
159
+ }
160
+ }
161
+
162
+ .ce-example__statusbar-item:not(:last-of-type)::after {
163
+ content: '|';
164
+ color: #ddd;
165
+ margin: 0 15px 0 12px;
166
+ }
167
+
168
+ .ce-example__statusbar-item--right {
169
+ margin-left: auto;
170
+ }
171
+
172
+ .ce-example__statusbar-button {
173
+ display: inline-block;
174
+ padding: 3px 12px;
175
+ transition: all 150ms ease;
176
+ cursor: pointer;
177
+ border-radius: 31px;
178
+ background: #eff1f4;
179
+ text-align: center;
180
+ user-select: none;
181
+ }
182
+
183
+ .ce-example__statusbar-button:hover {
184
+ background: #e0e4eb;
185
+ }
186
+
187
+ .ce-example__statusbar-button-primary {
188
+ background: #4a9df8;
189
+ color: #fff;
190
+ box-shadow: 0 7px 8px -4px rgba(137, 207, 255, 0.77);
191
+ font-family: 'PT Mono', Menlo, Monaco, Consolas, Courier New, monospace;
192
+ }
193
+
194
+ .ce-example__statusbar {
195
+ --toggler-size: 20px;
196
+ }
197
+
198
+ .ce-example__statusbar-toggler {
199
+ position: relative;
200
+ background: #7b8799;
201
+ border-radius: 20px;
202
+ padding: 2px;
203
+ width: calc(var(--toggler-size) * 2.2);
204
+ cursor: pointer;
205
+ user-select: none;
206
+ }
207
+
208
+ .ce-example__statusbar-toggler::before {
209
+ display: block;
210
+ content: '';
211
+ width: var(--toggler-size);
212
+ height: var(--toggler-size);
213
+ background: #fff;
214
+ border-radius: 50%;
215
+ transition: transform 100ms ease-in;
216
+ }
217
+
218
+ .ce-example__statusbar-toggler::after {
219
+ --moon-size: calc(var(--toggler-size) * 0.5);
220
+ content: '';
221
+ position: absolute;
222
+ top: 5px;
223
+ right: 5px;
224
+ height: var(--moon-size);
225
+ width: var(--moon-size);
226
+ box-shadow: calc(var(--moon-size) * 0.25 * -1) calc(var(--moon-size) * 0.18) 0 calc(var(--moon-size) * 0.05) white;
227
+ border-radius: 50%;
228
+ }
229
+
230
+ @media all and (max-width: 730px) {
231
+ .ce-example__header,
232
+ .ce-example__content {
233
+ padding: 0 20px;
234
+ }
235
+ }
236
+
237
+ /**
238
+ * JSON highlighter
239
+ */
240
+ .sc_attr {
241
+ color: rgb(148, 162, 192);
242
+ }
243
+ .sc_key {
244
+ color: rgb(190, 213, 255);
245
+ }
246
+ .sc_toolname {
247
+ color: rgb(15, 205, 251);
248
+ }
249
+ .sc_tag {
250
+ color: rgb(4, 131, 216);
251
+ }
252
+ .sc_bool {
253
+ color: rgb(247, 60, 173);
254
+ }
255
+
256
+ .ce-example .ce-block:first-of-type h1.ce-header {
257
+ font-size: 50px;
258
+ }
259
+
260
+ .ce-example-multiple {
261
+ display: grid;
262
+ grid-template-columns: calc(50% - 15px) calc(50% - 15px);
263
+ gap: 30px;
264
+ padding: 30px;
265
+ }
266
+
267
+ .ce-example-multiple > div {
268
+ background: #fff;
269
+ border-radius: 7px;
270
+ padding: 30px;
271
+ }
272
+
273
+ /**
274
+ * Styles for the popup example page
275
+ */
276
+ .ce-example--popup {
277
+ height: 100vh;
278
+ display: flex;
279
+ flex-direction: column;
280
+ }
281
+
282
+ .ce-example--popup .ce-example__content {
283
+ flex-grow: 2;
284
+ }
285
+
286
+ .ce-example-popup__overlay {
287
+ position: fixed;
288
+ top: 0;
289
+ bottom: 0;
290
+ left: 0;
291
+ right: 0;
292
+ background: #00000085;
293
+ }
294
+
295
+ .ce-example-popup__popup {
296
+ position: absolute;
297
+ left: 50%;
298
+ top: 50%;
299
+ transform: translate(-50%, -50%);
300
+ width: 800px;
301
+ max-width: 100%;
302
+ max-height: 90vh;
303
+ background: white;
304
+ padding: 20px;
305
+ border-radius: 8px;
306
+ overflow: auto;
307
+ box-sizing: border-box;
308
+ }
309
+
310
+ @media all and (max-width: 730px) {
311
+ .ce-example-popup__popup {
312
+ top: 10px;
313
+ left: 10px;
314
+ width: calc(100% - 20px);
315
+ height: calc(100% - 20px);
316
+ transform: none;
317
+ max-height: none;
318
+ }
319
+ }
320
+
321
+ .show-block-boundaries .ce-block {
322
+ box-shadow: inset 0 0 0 1px #eff2f5;
323
+ }
324
+
325
+ .show-block-boundaries .ce-block__content {
326
+ box-shadow: 0 0 0 1px rgba(224, 231, 241, 0.61) inset;
327
+ }
328
+ .show-block-boundaries #showBlocksBoundariesButton span,
329
+ .thin-mode #enableThinModeButton span {
330
+ font-size: 0;
331
+ vertical-align: bottom;
332
+ }
333
+
334
+ .show-block-boundaries #showBlocksBoundariesButton span::before,
335
+ .thin-mode #enableThinModeButton span::before {
336
+ content: attr(data-toggled-text);
337
+ display: inline;
338
+ font-size: 13px;
339
+ }
340
+
341
+ /**
342
+ * Dark theme overrides
343
+ */
344
+ .dark-mode img {
345
+ opacity: 0.5;
346
+ }
347
+
348
+ .dark-mode .cdx-simple-image__picture--with-border,
349
+ .dark-mode .cdx-input {
350
+ border-color: var(--color-border-light);
351
+ }
352
+
353
+ .dark-mode .ce-example__button {
354
+ box-shadow: 0 24px 18px -14px rgba(4, 154, 255, 0.24);
355
+ }
356
+
357
+ .dark-mode .ce-example__output {
358
+ background-color: #17191f;
359
+ }
360
+
361
+ .dark-mode .inline-code {
362
+ background-color: rgba(53, 56, 68, 0.62);
363
+ color: #727683;
364
+ }
365
+
366
+ .dark-mode a {
367
+ color: #959ba8;
368
+ }
369
+
370
+ .dark-mode .ce-example__statusbar-toggler,
371
+ .dark-mode .ce-example__statusbar-button {
372
+ background-color: #343842;
373
+ }
374
+
375
+ .dark-mode .ce-example__statusbar-toggler::before {
376
+ transform: translateX(calc(var(--toggler-size) * 2.2 - var(--toggler-size)));
377
+ }
378
+
379
+ .dark-mode .ce-example__statusbar-toggler::after {
380
+ content: '*';
381
+ right: auto;
382
+ left: 6px;
383
+ top: 7px;
384
+ color: #fff;
385
+ box-shadow: none;
386
+ font-size: 32px;
387
+ }
388
+
389
+ .dark-mode.show-block-boundaries .ce-block,
390
+ .dark-mode.show-block-boundaries .ce-block__content {
391
+ box-shadow: 0 0 0 1px rgba(128, 144, 159, 0.09) inset;
392
+ }
393
+
394
+ .dark-mode.thin-mode .ce-example__content {
395
+ border-color: var(--color-border-light);
396
+ }
397
+
398
+ .dark-mode .ce-example__statusbar-item:not(:last-of-type)::after {
399
+ color: var(--color-border-light);
400
+ }
401
+
402
+ .dark-mode .ce-block--selected .ce-block__content,
403
+ .dark-mode ::selection {
404
+ background-color: rgba(57, 68, 84, 0.57);
405
+ }
406
+
407
+ .dark-mode .ce-toolbox__button,
408
+ .dark-mode .ce-toolbar__settings-btn,
409
+ .dark-mode .ce-toolbar__plus {
410
+ color: inherit;
411
+ }
412
+
413
+ .dark-mode .ce-stub {
414
+ opacity: 0.3;
415
+ }
@@ -72,14 +72,14 @@ export default function bootstrap() {
72
72
  // })
73
73
 
74
74
  /* add top-menu app-tool */
75
- store.dispatch({
76
- type: APPEND_APP_TOOL,
77
- tool: {
78
- name: 'domain-switch',
79
- template: html` <domain-switch rounded-corner dark></domain-switch> `,
80
- position: TOOL_POSITION.REAR
81
- }
82
- })
75
+ // store.dispatch({
76
+ // type: APPEND_APP_TOOL,
77
+ // tool: {
78
+ // name: 'domain-switch',
79
+ // template: html` <domain-switch rounded-corner dark></domain-switch> `,
80
+ // position: TOOL_POSITION.REAR
81
+ // }
82
+ // })
83
83
 
84
84
  auth.on('profile', async ({ credential }) => {
85
85
  /* set auth management menus into more-panel */
@@ -0,0 +1,6 @@
1
+ import { ReactContainer } from './react-container'
2
+ // import Editor from 'lexical-playground'
3
+
4
+ export default function LexicalEditor() {
5
+ return <ReactContainer>{/* <Editor></Editor> */}</ReactContainer>
6
+ }
@@ -0,0 +1,27 @@
1
+ import React, { Component } from 'react'
2
+ import { createPortal } from 'react-dom'
3
+
4
+ export class ReactContainer extends Component {
5
+ constructor(props) {
6
+ super(props)
7
+ this.state = {
8
+ mountNode: null
9
+ }
10
+
11
+ this.setContentRef = contentRef => {
12
+ this.setState({
13
+ mountNode: contentRef?.contentWindow?.document?.body
14
+ })
15
+ }
16
+ }
17
+
18
+ render() {
19
+ const { children, ...props } = this.props
20
+ const { mountNode } = this.state
21
+ return (
22
+ <iframe {...props} ref={this.setContentRef}>
23
+ {mountNode && createPortal(children, mountNode)}
24
+ </iframe>
25
+ )
26
+ }
27
+ }
package/client/menu.js CHANGED
@@ -34,7 +34,15 @@ export function getMenuTemplate() {
34
34
  path: 'grist-colorizing'
35
35
  },
36
36
  {
37
- name: 'Fliter/Sorting',
37
+ name: 'Grist Filters',
38
+ path: 'grist-filters'
39
+ },
40
+ {
41
+ name: 'Grist Fulltext Searching',
42
+ path: 'grist-fulltext-search'
43
+ },
44
+ {
45
+ name: 'Grist Sorting',
38
46
  path: 'bizplace-register'
39
47
  },
40
48
  {
@@ -89,6 +97,37 @@ export function getMenuTemplate() {
89
97
  }
90
98
  ]
91
99
  },
100
+ {
101
+ name: 'Organization',
102
+ icon: 'dynamic_form',
103
+ description: '다양한 폼 구성 사례와 가이드라인을 제시합니다.',
104
+ menus: [
105
+ {
106
+ name: '연락처 관리',
107
+ path: 'contact-list'
108
+ },
109
+ {
110
+ name: '직원 관리',
111
+ path: 'employee-list'
112
+ },
113
+ {
114
+ name: '부서 관리',
115
+ path: 'department-list'
116
+ },
117
+ {
118
+ name: '나의 결재선 관리',
119
+ path: 'my-approval-line-templates-page'
120
+ },
121
+ {
122
+ name: '공통 결재선 관리',
123
+ path: 'common-approval-line-templates-page'
124
+ },
125
+ {
126
+ name: 'TreeView 샘플',
127
+ path: 'tree-view-page'
128
+ }
129
+ ]
130
+ },
92
131
  {
93
132
  name: '폼구성',
94
133
  icon: 'dynamic_form',
@@ -125,13 +164,33 @@ export function getMenuTemplate() {
125
164
  name: 'OCR',
126
165
  path: 'ocr-page'
127
166
  },
167
+ {
168
+ name: 'Web Editor (TUI)',
169
+ path: 'web-editor-tui-page'
170
+ },
171
+ {
172
+ name: 'Web Editor (Lexical)',
173
+ path: 'web-editor-lexical-page'
174
+ },
175
+ {
176
+ name: 'Web Editor (Editor.JS)',
177
+ path: 'web-editor-editorjs-page'
178
+ },
179
+ {
180
+ name: 'Web Editor (TinyMCE)',
181
+ path: 'web-editor-tinymce-page'
182
+ },
183
+ {
184
+ name: 'Web Editor (Jodit)',
185
+ path: 'web-editor-jodit-page'
186
+ },
128
187
  {
129
188
  name: 'Notification',
130
189
  path: 'notification-page'
131
190
  },
132
191
  {
133
- name: 'Layout V',
134
- path: 'bizplace-register'
192
+ name: 'Event Calendar',
193
+ path: 'event-calendar-page'
135
194
  }
136
195
  ]
137
196
  },
@@ -7,12 +7,12 @@ import { connect } from 'pwa-helpers/connect-mixin.js'
7
7
  import { OxPopupMenu } from '@operato/popup/ox-popup-menu.js'
8
8
  import { PageView, store } from '@things-factory/shell'
9
9
 
10
- import { referencePageStyles } from './reference-page-styles'
10
+ import { ReferencePageStyles } from './reference-page-styles'
11
11
 
12
12
  class ContextMenuPage extends connect(store)(PageView) {
13
13
  static get styles() {
14
14
  return [
15
- referencePageStyles,
15
+ ReferencePageStyles,
16
16
  css`
17
17
  :host {
18
18
  display: block;
@@ -10,12 +10,12 @@ import { PageView, store } from '@things-factory/shell'
10
10
  import { CommonButtonStyles } from '@things-factory/styles'
11
11
  import { sleep } from '@things-factory/utils'
12
12
 
13
- import { referencePageStyles } from './reference-page-styles'
13
+ import { ReferencePageStyles } from './reference-page-styles'
14
14
 
15
15
  class ContextPage extends connect(store)(PageView) {
16
16
  static get styles() {
17
17
  return [
18
- referencePageStyles,
18
+ ReferencePageStyles,
19
19
  css`
20
20
  :host {
21
21
  display: block;
@@ -220,6 +220,7 @@ export class DataSetListPage extends connect(store)(localize(i18next)(PageView))
220
220
  type: 'gutter',
221
221
  gutterName: 'button',
222
222
  icon: 'reorder',
223
+ title: 'edit data items',
223
224
  handlers: {
224
225
  click: (columns, data, column, record, rowIndex) => {
225
226
  if (!record.id) return
@@ -239,6 +240,7 @@ export class DataSetListPage extends connect(store)(localize(i18next)(PageView))
239
240
  type: 'gutter',
240
241
  gutterName: 'button',
241
242
  icon: 'fact_check',
243
+ title: 'data entry mockup form',
242
244
  handlers: {
243
245
  click: (columns, data, column, record, rowIndex) => {
244
246
  openPopup(
@@ -416,6 +418,7 @@ export class DataSetListPage extends connect(store)(localize(i18next)(PageView))
416
418
  record: {
417
419
  editable: true,
418
420
  options: {
421
+ title: i18next.t('title.lookup role'),
419
422
  queryName: 'roles'
420
423
  }
421
424
  },
@@ -430,6 +433,7 @@ export class DataSetListPage extends connect(store)(localize(i18next)(PageView))
430
433
  record: {
431
434
  editable: true,
432
435
  options: {
436
+ title: i18next.t('title.lookup role'),
433
437
  queryName: 'roles'
434
438
  }
435
439
  },
@@ -533,9 +537,6 @@ export class DataSetListPage extends connect(store)(localize(i18next)(PageView))
533
537
  type: 'resource-object',
534
538
  name: 'updater',
535
539
  header: i18next.t('field.updater'),
536
- record: {
537
- editable: false
538
- },
539
540
  sortable: true,
540
541
  width: 120
541
542
  },
@@ -543,9 +544,6 @@ export class DataSetListPage extends connect(store)(localize(i18next)(PageView))
543
544
  type: 'datetime',
544
545
  name: 'updatedAt',
545
546
  header: i18next.t('field.updated_at'),
546
- record: {
547
- editable: false
548
- },
549
547
  sortable: true,
550
548
  width: 180
551
549
  }
@@ -5,12 +5,12 @@ import { DirectPrinter } from '@things-factory/barcode-base'
5
5
  import { PageView, store } from '@things-factory/shell'
6
6
  import { CommonButtonStyles } from '@things-factory/styles'
7
7
 
8
- import { referencePageStyles } from './reference-page-styles'
8
+ import { ReferencePageStyles } from './reference-page-styles'
9
9
 
10
10
  class DirectPrint extends connect(store)(PageView) {
11
11
  static get styles() {
12
12
  return [
13
- referencePageStyles,
13
+ ReferencePageStyles,
14
14
  css`
15
15
  :host {
16
16
  display: block;