@dssp/dkpi 1.0.0-alpha.10

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 (76) hide show
  1. package/.dockerignore +31 -0
  2. package/CHANGELOG.md +8 -0
  3. package/Dockerfile +16 -0
  4. package/_index.html +70 -0
  5. package/assets/favicon.ico +0 -0
  6. package/assets/helps/index.md +1 -0
  7. package/assets/images/hatiolab-logo.png +0 -0
  8. package/assets/images/spinner.png +0 -0
  9. package/assets/images/user.png +0 -0
  10. package/assets/manifest/apple-1024.png +0 -0
  11. package/assets/manifest/apple-120.png +0 -0
  12. package/assets/manifest/apple-152.png +0 -0
  13. package/assets/manifest/apple-167.png +0 -0
  14. package/assets/manifest/apple-180.png +0 -0
  15. package/assets/manifest/apple-touch-icon.png +0 -0
  16. package/assets/manifest/badge-128x128.png +0 -0
  17. package/assets/manifest/chrome-splashscreen-icon-384x384.png +0 -0
  18. package/assets/manifest/chrome-touch-icon-192x192.png +0 -0
  19. package/assets/manifest/icon-128x128.png +0 -0
  20. package/assets/manifest/icon-192x192.png +0 -0
  21. package/assets/manifest/icon-512x512.png +0 -0
  22. package/assets/manifest/icon-72x72.png +0 -0
  23. package/assets/manifest/icon-96x96.png +0 -0
  24. package/assets/manifest/image-metaog.png +0 -0
  25. package/assets/manifest/maskable_icon.png +0 -0
  26. package/assets/manifest/ms-icon-144x144.png +0 -0
  27. package/assets/manifest/ms-touch-icon-144x144-precomposed.png +0 -0
  28. package/assets/manifest.json +27 -0
  29. package/assets/videos/intro.mp4 +0 -0
  30. package/config/config.development.js +49 -0
  31. package/config/config.production.js +83 -0
  32. package/dist-client/bootstrap.d.ts +8 -0
  33. package/dist-client/bootstrap.js +244 -0
  34. package/dist-client/bootstrap.js.map +1 -0
  35. package/dist-client/entries/public/home.d.ts +8 -0
  36. package/dist-client/entries/public/home.js +97 -0
  37. package/dist-client/entries/public/home.js.map +1 -0
  38. package/dist-client/icons/menu-icons.d.ts +5 -0
  39. package/dist-client/icons/menu-icons.js +84 -0
  40. package/dist-client/icons/menu-icons.js.map +1 -0
  41. package/dist-client/index.d.ts +0 -0
  42. package/dist-client/index.js +2 -0
  43. package/dist-client/index.js.map +1 -0
  44. package/dist-client/menu.d.ts +23 -0
  45. package/dist-client/menu.js +59 -0
  46. package/dist-client/menu.js.map +1 -0
  47. package/dist-client/pages/sv-user-management.d.ts +5 -0
  48. package/dist-client/pages/sv-user-management.js +219 -0
  49. package/dist-client/pages/sv-user-management.js.map +1 -0
  50. package/dist-client/route.d.ts +1 -0
  51. package/dist-client/route.js +10 -0
  52. package/dist-client/route.js.map +1 -0
  53. package/dist-client/themes/dark.css +51 -0
  54. package/dist-client/themes/light.css +51 -0
  55. package/dist-client/tsconfig.tsbuildinfo +1 -0
  56. package/dist-client/viewparts/menu-tools.d.ts +27 -0
  57. package/dist-client/viewparts/menu-tools.js +289 -0
  58. package/dist-client/viewparts/menu-tools.js.map +1 -0
  59. package/dist-client/viewparts/user-circle.d.ts +5 -0
  60. package/dist-client/viewparts/user-circle.js +26 -0
  61. package/dist-client/viewparts/user-circle.js.map +1 -0
  62. package/dist-server/index.d.ts +0 -0
  63. package/dist-server/index.js +1 -0
  64. package/dist-server/index.js.map +1 -0
  65. package/dist-server/tsconfig.tsbuildinfo +1 -0
  66. package/openapi/unstable.yaml +41 -0
  67. package/package.json +97 -0
  68. package/schema.graphql +11572 -0
  69. package/things-factory.config.js +8 -0
  70. package/translations/en.json +3 -0
  71. package/translations/ja.json +3 -0
  72. package/translations/ko.json +3 -0
  73. package/translations/ms.json +3 -0
  74. package/translations/zh.json +3 -0
  75. package/views/auth-page.html +82 -0
  76. package/views/public/home.html +72 -0
package/.dockerignore ADDED
@@ -0,0 +1,31 @@
1
+ node_modules/
2
+ client/
3
+ server/
4
+ dist-client/
5
+ installer/
6
+ attachments/
7
+ cache/
8
+ logs/
9
+ Dockerfile*
10
+ docker-compose.yml
11
+ db.sqlite
12
+ db*.sqlite
13
+ license.json
14
+ config.development.js
15
+ config.production.js
16
+ !config/config.development.js
17
+ !config/config.production.js
18
+ \_index.html
19
+
20
+ npm-debug.log
21
+ yarn-error.log
22
+
23
+ .env
24
+ .env.local
25
+ .env.production
26
+ .git/
27
+ .gitignore
28
+ .dockerignore
29
+ .vscode/
30
+ .idea/
31
+ .DS_Store
package/CHANGELOG.md ADDED
@@ -0,0 +1,8 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
6
+ and adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
7
+
8
+ <!-- ## [Unreleased] -->
package/Dockerfile ADDED
@@ -0,0 +1,16 @@
1
+ # Use an official ubuntu image
2
+ FROM hatiolab/operato-env:latest
3
+
4
+ # Set the working directory to /app
5
+ WORKDIR /app
6
+
7
+ # copy application & configuration files
8
+ COPY . .
9
+
10
+ # run node install command
11
+ RUN yarn install
12
+
13
+ # Make port 3000 available to the world outside this container
14
+ EXPOSE 3000
15
+
16
+ CMD [ "yarn", "run", "serve" ]
package/_index.html ADDED
@@ -0,0 +1,70 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="google" content="notranslate" />
6
+ <title>Digital KPI Platform</title>
7
+ <meta name="generator" content="Things Factory Starter Kit" />
8
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
9
+ <meta name="description" content="Build Smarter with Every Metric" />
10
+
11
+ <base href="/" />
12
+
13
+ <link rel="icon" href="/assets/favicon.ico" />
14
+
15
+ <!-- See https://goo.gl/OOhYW5 -->
16
+ <link rel="manifest" href="/assets/manifest.json" />
17
+
18
+ <!-- See https://goo.gl/qRE0vM -->
19
+ <meta name="theme-color" content="#00002F" />
20
+
21
+ <!-- Add to homescreen for Chrome on Android. Fallback for manifest.json -->
22
+ <meta name="mobile-web-app-capable" content="yes" />
23
+ <meta name="application-name" content="Digital KPI Platform" />
24
+ <meta name="application-description" content="Build Smarter with Every Metric" />
25
+ <meta name="application-copyright" content="Copyright © hatiolab.com. All Rights Reserved." />
26
+ <link rel="application-icon" href="/assets/manifest/icon-96x96.png" />
27
+
28
+ <!-- Add to homescreen for Safari on iOS -->
29
+ <meta name="apple-mobile-web-app-capable" content="yes" />
30
+ <meta name="apple-mobile-web-app-status-bar-style" content="default" />
31
+ <meta name="apple-mobile-web-app-title" content="Digital KPI Platform" />
32
+
33
+ <!-- Homescreen icons -->
34
+ <link rel="apple-touch-icon" href="/assets/manifest/icon-48x48.png" />
35
+ <link rel="apple-touch-icon" sizes="72x72" href="/assets/manifest/icon-72x72.png" />
36
+ <link rel="apple-touch-icon" sizes="96x96" href="/assets/manifest/icon-96x96.png" />
37
+ <link rel="apple-touch-icon" sizes="144x144" href="/assets/manifest/icon-144x144.png" />
38
+ <link rel="apple-touch-icon" sizes="192x192" href="/assets/manifest/icon-192x192.png" />
39
+
40
+ <!-- Tile icon for Windows 8 (144x144 + tile color) -->
41
+ <meta name="msapplication-TileImage" content="/assets/manifest/icon-144x144.png" />
42
+ <meta name="msapplication-TileColor" content="#00002F" />
43
+ <meta name="msapplication-tap-highlight" content="no" />
44
+
45
+ <!-- Default twitter cards -->
46
+ <meta name="twitter:card" content="summary" />
47
+ <meta name="twitter:site" content="@username" />
48
+ <meta property="og:type" content="website" />
49
+ <meta property="og:site_name" content="Digital KPI Platform, Build Smarter with Every Metric" />
50
+ <meta property="og:image" content="/assets/manifest/image-metaog.png" />
51
+
52
+ <!-- Performance tip: hint to the browser to start the handshake for the fonts site -->
53
+ <link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin />
54
+ <link href="/node_modules/material-symbols/index.css" rel="stylesheet" />
55
+ <link href="/node_modules/@fontsource/roboto/index.css" rel="stylesheet" />
56
+ <link rel="stylesheet" href="/theme.css" />
57
+
58
+ <script src="/static/index.js" defer></script>
59
+ </head>
60
+
61
+ <body class="light">
62
+ <things-app></things-app>
63
+ <noscript> Please enable JavaScript to view this website. </noscript>
64
+ <!-- Load webcomponents-loader.js to check and load any polyfills your browser needs -->
65
+ <script src="/node_modules/@webcomponents/webcomponentsjs/webcomponents-loader.js"></script>
66
+ <script src="/node_modules/web-animations-js/web-animations-next.min.js"></script>
67
+ <script src="/node_modules/@hatiolab/things-scene/things-scene-min.js"></script>
68
+ <!-- Built with love using PWA Starter Kit -->
69
+ </body>
70
+ </html>
Binary file
@@ -0,0 +1 @@
1
+ # Digital Digital KPI Platform
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "Digital KPI Platform",
3
+ "short_name": "dkpi",
4
+ "description": "Digital KPI Platform, Build Smarter with Every Metric",
5
+ "icons": [
6
+ {
7
+ "src": "manifest/icon-192x192.png",
8
+ "sizes": "192x192",
9
+ "type": "image/png"
10
+ },
11
+ {
12
+ "src": "manifest/icon-512x512.png",
13
+ "sizes": "512x512",
14
+ "type": "image/png"
15
+ },
16
+ {
17
+ "src": "manifest/maskable_icon.png",
18
+ "sizes": "682x682",
19
+ "type": "image/png",
20
+ "purpose": "maskable"
21
+ }
22
+ ],
23
+ "start_url": "/",
24
+ "display": "standalone",
25
+ "theme_color": "#00002F",
26
+ "background_color": "#00002F"
27
+ }
Binary file
@@ -0,0 +1,49 @@
1
+ module.exports = {
2
+ subdomain: 'system',
3
+ applianceJwtExpiresIn: '10y',
4
+ /* database field encryption key : 32 bytes - must be changed by every installation */
5
+ dataEncryptionKey: 'V6g5oHJZb7KcazJyL6cM95XvIDouon5b',
6
+ password: {
7
+ lowerCase: true,
8
+ upperCase: false,
9
+ digit: true,
10
+ specialCharacter: true,
11
+ allowRepeat: true,
12
+ useTightPattern: true,
13
+ useLoosePattern: false,
14
+ tightCharacterLength: 8,
15
+ looseCharacterLength: 15,
16
+ history: 2,
17
+ /* strongly recommended to make changes during installation */
18
+ defaultPassword: 'dkswjsrkafl1!'
19
+ },
20
+ /*
21
+ Only When 'disableUserSignupProcess' is set to false,
22
+ a user-initiated user registration process is provided.
23
+ When this value is true, the 'defaultPassword' for the password must be configured.
24
+ */
25
+ disableUserSignupProcess: true,
26
+ i18n: {
27
+ languages: [
28
+ {
29
+ code: 'ko-KR',
30
+ display: '한국어'
31
+ }
32
+ ],
33
+ defaultLanguage: 'ko-KR',
34
+ disableUserFavoredLanguage: true
35
+ },
36
+ scheduler: {
37
+ /* Name to be used for setting client's "application" properties when registering a schedule */
38
+ application: 'dssp',
39
+ /* Base endpoint to be used for setting "callback" properties when registering a schedule */
40
+ callbackBase: 'http://localhost:3000',
41
+ /*
42
+ Scheduler service endpoint
43
+ caution) endpoint for "localhost" has some problem.
44
+ https://github.com/node-fetch/node-fetch/issues/1624
45
+ */
46
+ endpoint: 'http://127.0.0.1:9902'
47
+ },
48
+ projectType: 'DKPI'
49
+ }
@@ -0,0 +1,83 @@
1
+ module.exports = {
2
+ subdomain: 'system',
3
+ applianceJwtExpiresIn: '10y',
4
+ /* database field encryption key : 32 bytes - must be changed by every installation */
5
+ dataEncryptionKey: 'V6g5oHJZb7KcazJyL6cM95XvIDouon5b',
6
+ password: {
7
+ lowerCase: true,
8
+ upperCase: false,
9
+ digit: true,
10
+ specialCharacter: true,
11
+ allowRepeat: true,
12
+ useTightPattern: true,
13
+ useLoosePattern: false,
14
+ tightCharacterLength: 9,
15
+ looseCharacterLength: 15,
16
+ history: 2,
17
+ /* strongly recommended to make changes during installation */
18
+ defaultPassword: 'dkswjsrkafl1!'
19
+ },
20
+ /*
21
+ Only When 'disableUserSignupProcess' is set to false,
22
+ a user-initiated user registration process is provided.
23
+ When this value is true, the 'defaultPassword' for the password must be configured.
24
+ */
25
+ disableUserSignupProcess: true,
26
+ i18n: {
27
+ languages: [
28
+ {
29
+ code: 'ko-KR',
30
+ display: '한국어'
31
+ }
32
+ ],
33
+ defaultLanguage: 'ko-KR',
34
+ disableUserFavoredLanguage: true
35
+ },
36
+ scheduler: {
37
+ /* Name to be used for setting client's "application" properties when registering a schedule */
38
+ application: 'dssp',
39
+ /* Base endpoint to be used for setting "callback" properties when registering a schedule */
40
+ callbackBase: 'http://dssp-svc',
41
+ /*
42
+ Scheduler service endpoint
43
+ caution) endpoint for "localhost" has some problem.
44
+ https://github.com/node-fetch/node-fetch/issues/1624
45
+ */
46
+ endpoint: 'http://scheduler-svc'
47
+ },
48
+ email: {
49
+ host: 'smtp.office365.com', // your sender-email smtp host
50
+ port: 587, // smtp server port
51
+ secure: false, // true for 465, false for other ports
52
+ auth: {
53
+ user: 'your sender-email',
54
+ pass: 'your sender-email password' // generated ethereal password
55
+ },
56
+ secureConnection: false,
57
+ tls: {
58
+ ciphers: 'SSLv3'
59
+ }
60
+ },
61
+ logger: {
62
+ file: {
63
+ filename: 'logs/application-%DATE%.log',
64
+ datePattern: 'YYYY-MM-DD-HH',
65
+ zippedArchive: false,
66
+ maxSize: '20m',
67
+ maxFiles: '2d',
68
+ level: 'info'
69
+ },
70
+ console: {
71
+ level: 'silly'
72
+ }
73
+ },
74
+ ormconfig: {
75
+ name: 'default',
76
+ type: 'sqlite',
77
+ database: 'db.sqlite',
78
+ synchronize: false,
79
+ logging: true,
80
+ logger: 'debug'
81
+ },
82
+ projectType: 'DKPI'
83
+ }
@@ -0,0 +1,8 @@
1
+ import '@things-factory/notification/dist-client';
2
+ import '@things-factory/setting-ui/dist-client';
3
+ import '@material/web/icon/icon.js';
4
+ import '@operato/i18n/ox-i18n.js';
5
+ import '@things-factory/notification';
6
+ import './viewparts/user-circle';
7
+ import './viewparts/menu-tools';
8
+ export default function bootstrap(): Promise<void>;
@@ -0,0 +1,244 @@
1
+ import '@things-factory/notification/dist-client'; /* for notification-setting-let */
2
+ import '@things-factory/setting-ui/dist-client'; /* for theme-mode-setting-let */
3
+ import '@material/web/icon/icon.js';
4
+ import '@operato/i18n/ox-i18n.js';
5
+ import '@things-factory/notification';
6
+ import './viewparts/user-circle';
7
+ import './viewparts/menu-tools';
8
+ import { html } from 'lit-html';
9
+ import { registerDefaultGroups } from '@operato/board';
10
+ import { navigate, store } from '@operato/shell';
11
+ import { appendViewpart, updateViewpart, toggleOverlay, TOOL_POSITION, VIEWPART_POSITION, VIEWPART_LEVEL } from '@operato/layout';
12
+ import { APPEND_APP_TOOL } from '@things-factory/apptool-base/client';
13
+ import { setupAppToolPart } from '@things-factory/apptool-ui/dist-client';
14
+ import { setupContextUIPart } from '@things-factory/context-ui/dist-client';
15
+ import { hasPrivilege } from '@things-factory/auth-base/dist-client';
16
+ import { setAuthManagementMenus } from '@things-factory/auth-ui/dist-client';
17
+ import { ADD_MORENDA } from '@things-factory/more-base/client';
18
+ import { ADD_SETTING } from '@things-factory/setting-base/dist-client';
19
+ console.log(`%c
20
+ ▄▄▄ ▄ ▄▄ ▄▄▄ ▄
21
+ ▓ ▓ ▓ ▓ ▓ ▓ ▀
22
+ ▓ ▓ ▓▓ ▓▀▀ ▓
23
+ ▓ ▓ ▓ ▓ ▓ ▓
24
+ ▀▀▀ ▀ ▀▀ ▀ ▀
25
+ `, 'background: #222; color: #bada55');
26
+ export default async function bootstrap() {
27
+ var _a;
28
+ /* set board-modeller group and default templates */
29
+ registerDefaultGroups();
30
+ await setupAppToolPart({
31
+ toolbar: true,
32
+ busybar: true,
33
+ mdibar: false
34
+ });
35
+ await setupContextUIPart({
36
+ titlebar: 'header',
37
+ contextToolbar: 'page-footer'
38
+ });
39
+ /* append top-menu to layout */
40
+ var state = store.getState();
41
+ var width = ((_a = state.layout) === null || _a === void 0 ? void 0 : _a.width) || 'WIDE';
42
+ appendViewpart({
43
+ name: 'dkpi-topmenu',
44
+ viewpart: {
45
+ show: true,
46
+ template: html ` <menu-tools></menu-tools> `
47
+ },
48
+ position: width == 'WIDE' ? VIEWPART_POSITION.NAVBAR : VIEWPART_POSITION.FOOTERBAR
49
+ });
50
+ store.subscribe(async () => {
51
+ var state = store.getState();
52
+ if (state.layout.width == width) {
53
+ return;
54
+ }
55
+ width = state.layout.width;
56
+ updateViewpart('dkpi-topmenu', {
57
+ position: width == 'WIDE' ? VIEWPART_POSITION.NAVBAR : VIEWPART_POSITION.FOOTERBAR,
58
+ level: VIEWPART_LEVEL.TOPMOST
59
+ });
60
+ });
61
+ /* setting app-tools */
62
+ store.dispatch({
63
+ type: APPEND_APP_TOOL,
64
+ tool: {
65
+ name: 'app-brand',
66
+ template: html ` <span style="font-size: 1.2em;">KPI</span> `,
67
+ position: TOOL_POSITION.FRONT
68
+ }
69
+ });
70
+ store.dispatch({
71
+ type: APPEND_APP_TOOL,
72
+ tool: {
73
+ name: 'notification-badge',
74
+ template: html `
75
+ <notification-badge
76
+ @click=${e => {
77
+ toggleOverlay('notification', {
78
+ backdrop: true
79
+ });
80
+ }}
81
+ >
82
+ </notification-badge>
83
+ `,
84
+ position: TOOL_POSITION.REAR
85
+ }
86
+ });
87
+ appendViewpart({
88
+ name: 'notification',
89
+ viewpart: {
90
+ show: false,
91
+ hovering: 'edge',
92
+ template: html ` <notification-list style="min-width: 300px;"></notification-list> `
93
+ },
94
+ position: VIEWPART_POSITION.ASIDEBAR
95
+ });
96
+ /* add setting morenda */
97
+ store.dispatch({
98
+ type: ADD_MORENDA,
99
+ morenda: {
100
+ icon: html ` <md-icon>settings</md-icon> `,
101
+ name: html ` <ox-i18n msgid="label.setting"></ox-i18n> `,
102
+ action: () => {
103
+ navigate('setting');
104
+ }
105
+ }
106
+ });
107
+ /* set auth management menus into more-panel */
108
+ setAuthManagementMenus();
109
+ if (await hasPrivilege({
110
+ privilege: 'mutation',
111
+ category: 'user',
112
+ domainOwnerGranted: true,
113
+ superUserGranted: true
114
+ })) {
115
+ store.dispatch({
116
+ type: ADD_MORENDA,
117
+ morenda: {
118
+ icon: html ` <md-icon>vpn_key</md-icon> `,
119
+ name: html ` <ox-i18n msgid="text.oauth2-clients"></ox-i18n> `,
120
+ action: () => {
121
+ navigate('oauth2-clients');
122
+ }
123
+ }
124
+ });
125
+ }
126
+ if (await hasPrivilege({
127
+ privilege: 'mutation',
128
+ category: 'board',
129
+ domainOwnerGranted: true,
130
+ superUserGranted: true
131
+ })) {
132
+ store.dispatch({
133
+ type: ADD_MORENDA,
134
+ morenda: {
135
+ icon: html ` <md-icon>font_download</md-icon> `,
136
+ name: html ` <ox-i18n msgid="menu.fonts"></ox-i18n> `,
137
+ action: () => {
138
+ navigate('font-list');
139
+ }
140
+ }
141
+ });
142
+ store.dispatch({
143
+ type: ADD_MORENDA,
144
+ morenda: {
145
+ icon: html ` <md-icon>dvr</md-icon> `,
146
+ name: html ` <ox-i18n msgid="menu.board-list"></ox-i18n> `,
147
+ action: () => {
148
+ navigate('board-list');
149
+ }
150
+ }
151
+ });
152
+ store.dispatch({
153
+ type: ADD_MORENDA,
154
+ morenda: {
155
+ icon: html ` <md-icon>dashboard</md-icon> `,
156
+ name: html ` <ox-i18n msgid="menu.board-template"></ox-i18n> `,
157
+ action: () => {
158
+ navigate('board-template-list');
159
+ }
160
+ }
161
+ });
162
+ }
163
+ if (await hasPrivilege({
164
+ privilege: 'query',
165
+ category: 'attachment',
166
+ domainOwnerGranted: true,
167
+ superUserGranted: true
168
+ })) {
169
+ store.dispatch({
170
+ type: ADD_MORENDA,
171
+ morenda: {
172
+ icon: html ` <md-icon>attachment</md-icon> `,
173
+ name: html ` <ox-i18n msgid="menu.attachments"></ox-i18n> `,
174
+ action: () => {
175
+ navigate('attachment-list');
176
+ }
177
+ }
178
+ });
179
+ }
180
+ if (await hasPrivilege({
181
+ privilege: 'mutation',
182
+ category: 'scenario',
183
+ domainOwnerGranted: true,
184
+ superUserGranted: true
185
+ })) {
186
+ store.dispatch({
187
+ type: ADD_MORENDA,
188
+ morenda: {
189
+ icon: html ` <md-icon>device_hub</md-icon> `,
190
+ name: html ` <ox-i18n msgid="text.connection"></ox-i18n> `,
191
+ action: () => {
192
+ navigate('connection');
193
+ }
194
+ }
195
+ });
196
+ store.dispatch({
197
+ type: ADD_MORENDA,
198
+ morenda: {
199
+ icon: html ` <md-icon>format_list_numbered</md-icon> `,
200
+ name: html ` <ox-i18n msgid="text.scenario"></ox-i18n> `,
201
+ action: () => {
202
+ navigate('scenario');
203
+ }
204
+ }
205
+ });
206
+ store.dispatch({
207
+ type: ADD_MORENDA,
208
+ morenda: {
209
+ icon: html ` <md-icon>hub</md-icon> `,
210
+ name: html ` <ox-i18n msgid="text.integration analysis"></ox-i18n>&nbsp;(beta)`,
211
+ action: () => {
212
+ navigate('integration-analysis');
213
+ }
214
+ }
215
+ });
216
+ }
217
+ if (await hasPrivilege({ privilege: 'mutation', category: 'state-register', domainOwnerGranted: true })) {
218
+ store.dispatch({
219
+ type: ADD_MORENDA,
220
+ morenda: {
221
+ icon: html ` <md-icon>app_registration</md-icon> `,
222
+ name: html ` <ox-i18n msgid="title.state-register"></ox-i18n> `,
223
+ action: () => {
224
+ navigate('state-register-page');
225
+ }
226
+ }
227
+ });
228
+ }
229
+ store.dispatch({
230
+ type: ADD_SETTING,
231
+ setting: {
232
+ seq: 10,
233
+ template: html ` <theme-mode-setting-let></theme-mode-setting-let> `
234
+ }
235
+ });
236
+ store.dispatch({
237
+ type: ADD_SETTING,
238
+ setting: {
239
+ seq: 20,
240
+ template: html ` <notification-setting-let></notification-setting-let> `
241
+ }
242
+ });
243
+ }
244
+ //# sourceMappingURL=bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../client/bootstrap.ts"],"names":[],"mappings":"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","sourcesContent":["import '@things-factory/notification/dist-client' /* for notification-setting-let */\nimport '@things-factory/setting-ui/dist-client' /* for theme-mode-setting-let */\n\nimport '@material/web/icon/icon.js'\nimport '@operato/i18n/ox-i18n.js'\nimport '@things-factory/notification'\nimport './viewparts/user-circle'\nimport './viewparts/menu-tools'\n\nimport { html } from 'lit-html'\n\nimport { registerDefaultGroups } from '@operato/board'\nimport { navigate, store } from '@operato/shell'\n\nimport { appendViewpart, updateViewpart, toggleOverlay, TOOL_POSITION, VIEWPART_POSITION, VIEWPART_LEVEL } from '@operato/layout'\nimport { APPEND_APP_TOOL } from '@things-factory/apptool-base/client'\nimport { setupAppToolPart } from '@things-factory/apptool-ui/dist-client'\nimport { setupContextUIPart } from '@things-factory/context-ui/dist-client'\nimport { hasPrivilege } from '@things-factory/auth-base/dist-client'\nimport { setAuthManagementMenus } from '@things-factory/auth-ui/dist-client'\nimport { ADD_MORENDA } from '@things-factory/more-base/client'\nimport { ADD_SETTING } from '@things-factory/setting-base/dist-client'\n\nconsole.log(\n `%c\n▄▄▄ ▄ ▄▄ ▄▄▄ ▄\n▓ ▓ ▓ ▓ ▓ ▓ ▀\n▓ ▓ ▓▓ ▓▀▀ ▓\n▓ ▓ ▓ ▓ ▓ ▓\n▀▀▀ ▀ ▀▀ ▀ ▀\n`,\n 'background: #222; color: #bada55'\n)\n\nexport default async function bootstrap() {\n /* set board-modeller group and default templates */\n registerDefaultGroups()\n\n await setupAppToolPart({\n toolbar: true,\n busybar: true,\n mdibar: false\n })\n\n await setupContextUIPart({\n titlebar: 'header',\n contextToolbar: 'page-footer'\n })\n\n /* append top-menu to layout */\n var state = store.getState() as any\n var width = state.layout?.width || 'WIDE'\n\n appendViewpart({\n name: 'dkpi-topmenu',\n viewpart: {\n show: true,\n template: html` <menu-tools></menu-tools> `\n },\n position: width == 'WIDE' ? VIEWPART_POSITION.NAVBAR : VIEWPART_POSITION.FOOTERBAR\n })\n\n store.subscribe(async () => {\n var state = store.getState() as any\n\n if (state.layout.width == width) {\n return\n }\n\n width = state.layout.width\n\n updateViewpart('dkpi-topmenu', {\n position: width == 'WIDE' ? VIEWPART_POSITION.NAVBAR : VIEWPART_POSITION.FOOTERBAR,\n level: VIEWPART_LEVEL.TOPMOST\n })\n })\n\n /* setting app-tools */\n store.dispatch({\n type: APPEND_APP_TOOL,\n tool: {\n name: 'app-brand',\n template: html` <span style=\"font-size: 1.2em;\">KPI</span> `,\n position: TOOL_POSITION.FRONT\n }\n })\n\n store.dispatch({\n type: APPEND_APP_TOOL,\n tool: {\n name: 'notification-badge',\n template: html`\n <notification-badge\n @click=${e => {\n toggleOverlay('notification', {\n backdrop: true\n })\n }}\n >\n </notification-badge>\n `,\n position: TOOL_POSITION.REAR\n }\n })\n\n appendViewpart({\n name: 'notification',\n viewpart: {\n show: false,\n hovering: 'edge',\n template: html` <notification-list style=\"min-width: 300px;\"></notification-list> `\n },\n position: VIEWPART_POSITION.ASIDEBAR\n })\n\n /* add setting morenda */\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html` <md-icon>settings</md-icon> `,\n name: html` <ox-i18n msgid=\"label.setting\"></ox-i18n> `,\n action: () => {\n navigate('setting')\n }\n }\n })\n\n /* set auth management menus into more-panel */\n setAuthManagementMenus()\n\n if (\n await hasPrivilege({\n privilege: 'mutation',\n category: 'user',\n domainOwnerGranted: true,\n superUserGranted: true\n })\n ) {\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html` <md-icon>vpn_key</md-icon> `,\n name: html` <ox-i18n msgid=\"text.oauth2-clients\"></ox-i18n> `,\n action: () => {\n navigate('oauth2-clients')\n }\n }\n })\n }\n\n if (\n await hasPrivilege({\n privilege: 'mutation',\n category: 'board',\n domainOwnerGranted: true,\n superUserGranted: true\n })\n ) {\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html` <md-icon>font_download</md-icon> `,\n name: html` <ox-i18n msgid=\"menu.fonts\"></ox-i18n> `,\n action: () => {\n navigate('font-list')\n }\n }\n })\n\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html` <md-icon>dvr</md-icon> `,\n name: html` <ox-i18n msgid=\"menu.board-list\"></ox-i18n> `,\n action: () => {\n navigate('board-list')\n }\n }\n })\n\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html` <md-icon>dashboard</md-icon> `,\n name: html` <ox-i18n msgid=\"menu.board-template\"></ox-i18n> `,\n action: () => {\n navigate('board-template-list')\n }\n }\n })\n }\n\n if (\n await hasPrivilege({\n privilege: 'query',\n category: 'attachment',\n domainOwnerGranted: true,\n superUserGranted: true\n })\n ) {\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html` <md-icon>attachment</md-icon> `,\n name: html` <ox-i18n msgid=\"menu.attachments\"></ox-i18n> `,\n action: () => {\n navigate('attachment-list')\n }\n }\n })\n }\n\n if (\n await hasPrivilege({\n privilege: 'mutation',\n category: 'scenario',\n domainOwnerGranted: true,\n superUserGranted: true\n })\n ) {\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html` <md-icon>device_hub</md-icon> `,\n name: html` <ox-i18n msgid=\"text.connection\"></ox-i18n> `,\n action: () => {\n navigate('connection')\n }\n }\n })\n\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html` <md-icon>format_list_numbered</md-icon> `,\n name: html` <ox-i18n msgid=\"text.scenario\"></ox-i18n> `,\n action: () => {\n navigate('scenario')\n }\n }\n })\n\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html` <md-icon>hub</md-icon> `,\n name: html` <ox-i18n msgid=\"text.integration analysis\"></ox-i18n>&nbsp;(beta)`,\n action: () => {\n navigate('integration-analysis')\n }\n }\n })\n }\n\n if (await hasPrivilege({ privilege: 'mutation', category: 'state-register', domainOwnerGranted: true })) {\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html` <md-icon>app_registration</md-icon> `,\n name: html` <ox-i18n msgid=\"title.state-register\"></ox-i18n> `,\n action: () => {\n navigate('state-register-page')\n }\n }\n })\n }\n \n store.dispatch({\n type: ADD_SETTING,\n setting: {\n seq: 10,\n template: html` <theme-mode-setting-let></theme-mode-setting-let> `\n }\n })\n\n store.dispatch({\n type: ADD_SETTING,\n setting: {\n seq: 20,\n template: html` <notification-setting-let></notification-setting-let> `\n }\n })\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import '@material/web/icon/icon.js';
2
+ import { LitElement } from 'lit';
3
+ export declare class HomePage extends LitElement {
4
+ static styles: import("lit").CSSResult[];
5
+ private _applicationMeta;
6
+ render(): import("lit-html").TemplateResult<1>;
7
+ get applicationMeta(): any;
8
+ }