datajunction-ui 0.0.1-rc.1 → 0.0.1-rc.11

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 (58) hide show
  1. package/.github/workflows/ci.yml +3 -3
  2. package/.prettierignore +3 -1
  3. package/package.json +16 -8
  4. package/src/app/__tests__/__snapshots__/index.test.tsx.snap +67 -25
  5. package/src/app/components/NamespaceHeader.jsx +4 -13
  6. package/src/app/components/QueryInfo.jsx +109 -0
  7. package/src/app/components/Tab.jsx +1 -8
  8. package/src/app/components/ToggleSwitch.jsx +17 -0
  9. package/src/app/components/__tests__/__snapshots__/NamespaceHeader.test.jsx.snap +2 -18
  10. package/src/app/components/djgraph/Collapse.jsx +46 -0
  11. package/src/app/components/djgraph/DJNode.jsx +56 -80
  12. package/src/app/components/djgraph/DJNodeColumns.jsx +68 -0
  13. package/src/app/components/djgraph/DJNodeDimensions.jsx +69 -0
  14. package/src/app/components/djgraph/__tests__/__snapshots__/DJNode.test.tsx.snap +82 -43
  15. package/src/app/icons/CollapsedIcon.jsx +15 -0
  16. package/src/app/icons/ExpandedIcon.jsx +15 -0
  17. package/src/app/icons/HorizontalHierarchyIcon.jsx +15 -0
  18. package/src/app/icons/InvalidIcon.jsx +14 -0
  19. package/src/app/icons/PythonIcon.jsx +52 -0
  20. package/src/app/icons/TableIcon.jsx +14 -0
  21. package/src/app/icons/ValidIcon.jsx +14 -0
  22. package/src/app/index.tsx +28 -15
  23. package/src/app/pages/NamespacePage/Explorer.jsx +57 -0
  24. package/src/app/pages/NamespacePage/Loadable.jsx +9 -7
  25. package/src/app/pages/NamespacePage/__tests__/__snapshots__/index.test.tsx.snap +39 -17
  26. package/src/app/pages/NamespacePage/index.jsx +90 -28
  27. package/src/app/pages/NodePage/ClientCodePopover.jsx +30 -0
  28. package/src/app/pages/NodePage/Loadable.jsx +9 -7
  29. package/src/app/pages/NodePage/NodeColumnTab.jsx +36 -20
  30. package/src/app/pages/NodePage/NodeGraphTab.jsx +83 -54
  31. package/src/app/pages/NodePage/NodeHistory.jsx +71 -0
  32. package/src/app/pages/NodePage/NodeInfoTab.jsx +132 -49
  33. package/src/app/pages/NodePage/NodeMaterializationTab.jsx +151 -0
  34. package/src/app/pages/NodePage/NodeSQLTab.jsx +100 -0
  35. package/src/app/pages/NodePage/NodeStatus.jsx +14 -20
  36. package/src/app/pages/NodePage/index.jsx +49 -13
  37. package/src/app/pages/Root/index.tsx +5 -0
  38. package/src/app/pages/SQLBuilderPage/Loadable.jsx +16 -0
  39. package/src/app/pages/SQLBuilderPage/index.jsx +344 -0
  40. package/src/app/providers/djclient.jsx +5 -0
  41. package/src/app/services/DJService.js +125 -1
  42. package/src/styles/dag.css +111 -5
  43. package/src/styles/index.css +343 -25
  44. package/tsconfig.json +1 -1
  45. package/webpack.config.js +22 -6
  46. package/.babelrc +0 -4
  47. package/.env.local +0 -4
  48. package/.env.production +0 -1
  49. package/.vscode/extensions.json +0 -7
  50. package/.vscode/launch.json +0 -15
  51. package/.vscode/settings.json +0 -25
  52. package/Dockerfile +0 -7
  53. package/dist/5fa71a03d45dc2e3d61447f3013a303d.png +0 -0
  54. package/dist/index.html +0 -26
  55. package/dist/main.js +0 -23303
  56. package/dist/vendor.js +0 -281
  57. package/src/app/pages/ListNamespacesPage/Loadable.jsx +0 -14
  58. package/src/app/pages/ListNamespacesPage/index.jsx +0 -52
@@ -110,9 +110,7 @@ ul {
110
110
 
111
111
  .list-group {
112
112
  width: 100%;
113
- /*min-width: fit-content;*/
114
113
  max-width: fit-content;
115
- /*margin-inline: 1.5rem;*/
116
114
  border-radius: 0.375rem;
117
115
  }
118
116
  .list-group-item {
@@ -122,7 +120,6 @@ ul {
122
120
  color: #212529;
123
121
  text-decoration: none;
124
122
  background-color: #ffffff;
125
- /*border: 1px solid #dee2e6;*/
126
123
  min-width: fit-content;
127
124
  }
128
125
  .list-group-item + .list-group-item {
@@ -132,6 +129,12 @@ ul {
132
129
  border-top-left-radius: inherit;
133
130
  border-top-right-radius: inherit;
134
131
  }
132
+ .li {
133
+ cursor: pointer;
134
+ }
135
+ .raw-node-list {
136
+ flex: 0 0 50px;
137
+ }
135
138
  .d-flex {
136
139
  display: flex !important;
137
140
  }
@@ -150,13 +153,15 @@ ul {
150
153
  .h6,
151
154
  h6 {
152
155
  margin: 0;
153
- /*background-color: #f9fbfd;*/
154
156
  text-transform: uppercase;
155
157
  font-size: 0.8125rem;
156
158
  font-weight: 600;
157
159
  letter-spacing: 0.08em;
158
160
  color: #95aac9;
159
161
  }
162
+ .larger {
163
+ font-size: 120%;
164
+ }
160
165
  .py-3 {
161
166
  padding-top: 1rem !important;
162
167
  padding-bottom: 1rem !important;
@@ -180,6 +185,10 @@ h6 {
180
185
  .badge.bg-secondary-soft {
181
186
  color: #6e84a3;
182
187
  }
188
+ .badge.bg-secondary-error {
189
+ color: #6e84a3;
190
+ background-color: #fad7dd;
191
+ }
183
192
  .badge.rounded-pill {
184
193
  padding-right: 0.6em;
185
194
  padding-left: 0.6em;
@@ -240,14 +249,30 @@ tr {
240
249
  word-wrap: break-word;
241
250
  background-color: #fff;
242
251
  background-clip: border-box;
243
- /*border: 1px solid #edf2f9;*/
244
252
  border-radius: 1rem;
245
- margin: 4rem;
253
+ margin: 2rem;
254
+ }
255
+
256
+ .card-light-shadow {
257
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
258
+ transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
259
+ padding: 1rem;
260
+ }
261
+
262
+ .sidebar {
263
+ position: sticky;
264
+ top: 0;
265
+ left: 0;
246
266
  }
247
267
 
248
268
  .table-responsive {
249
269
  overflow-x: auto;
250
270
  -webkit-overflow-scrolling: touch;
271
+ display: grid;
272
+
273
+ grid-template-columns: auto auto auto;
274
+ grid-gap: 8px;
275
+ padding: 8px;
251
276
  }
252
277
  .table > thead {
253
278
  vertical-align: bottom;
@@ -280,7 +305,6 @@ tr {
280
305
  padding-left: 1.5rem !important;
281
306
  }
282
307
  .table thead th {
283
- background-color: #f9fbfd;
284
308
  text-transform: uppercase;
285
309
  font-size: 0.8125rem;
286
310
  font-weight: 600;
@@ -351,42 +375,172 @@ tbody th {
351
375
  vertical-align: middle;
352
376
  padding: 0.44rem;
353
377
  border-radius: 0.375rem;
354
- cursor: crosshair;
378
+ word-wrap: break-word;
379
+ white-space: break-spaces;
355
380
  }
356
381
 
357
382
  /* Nodes */
358
383
  .node_type__source {
359
- /*background-color: #84ea4d50!important;*/
360
- /*color: #4e8033;*/
361
-
362
384
  background-color: #ccf7e5 !important;
363
385
  color: #00b368;
364
386
  }
387
+ .react-flow__node .node_type__source {
388
+ background-color: #7eb46150 !important;
389
+ color: #7eb461;
390
+ }
365
391
 
366
392
  .node_type__transform {
367
393
  background-color: #ccefff !important;
368
394
  color: #0063b4;
369
395
  }
396
+ .react-flow__node .node_type__transform {
397
+ background-color: #6daaa750 !important;
398
+ color: #6daaa7;
399
+ }
370
400
 
371
401
  .node_type__metric {
372
402
  background-color: #fad7dd !important;
373
403
  color: #a2283e;
374
404
  }
405
+ .react-flow__node .node_type__metric {
406
+ background-color: #a27e8650 !important;
407
+ color: #a27e86;
408
+ }
375
409
 
376
410
  .node_type__dimension {
377
411
  background-color: #ffefd0 !important;
378
412
  color: #a96621;
379
413
  }
414
+ .react-flow__node .node_type__dimension {
415
+ background-color: #cf7d2950 !important;
416
+ color: #cf7d29;
417
+ }
380
418
 
381
419
  .node_type__cube {
420
+ background-color: #dbafff !important;
421
+ color: #580076;
422
+ }
423
+ .react-flow__node .node_type__cube {
382
424
  background-color: #c2180750 !important;
383
- color: #c21807;
425
+ color: #c2180750;
426
+ }
427
+
428
+ .history_type__create {
429
+ background-color: #ccf7e5 !important;
430
+ color: #00b368;
431
+ }
432
+
433
+ .history_type__deactvate {
434
+ background-color: #a8a8a8 !important;
435
+ color: #855e5e;
436
+ }
437
+
438
+ .history_type__activate {
439
+ background-color: #ccf7e5 !important;
440
+ color: #00b368;
441
+ }
442
+
443
+ .history_type__modify {
444
+ background-color: #ffefd0 !important;
445
+ color: #a96621;
446
+ }
447
+
448
+ .history_type__link {
449
+ background-color: #a8a8a8 !important;
450
+ color: #855e5e;
451
+ }
452
+
453
+ .history_type__tag {
454
+ background-color: #a8a8a8 !important;
455
+ color: #855e5e;
456
+ }
457
+
458
+ .history_type__set_attribute {
459
+ background-color: #a8a8a8 !important;
460
+ color: #855e5e;
461
+ }
462
+
463
+ .partition_value {
464
+ border: solid #00b368 0.025em;
465
+ background-color: #ccf7e525;
466
+ margin: 0.25rem;
467
+ }
468
+
469
+ .partition_value_highlight {
470
+ border: solid #5c3b8f 0.025em;
471
+ color: #5c3b8f;
472
+ background-color: #5c3b8f25;
473
+ margin: 0.25rem;
474
+ }
475
+
476
+ .dimension_option {
477
+ border: solid #5c3b8f 0.025em;
478
+ color: #5c3b8f;
479
+ background-color: #5c3b8f25;
480
+ margin: 0.25rem;
481
+ font-size: 16px;
482
+ }
483
+
484
+ .dimension_option_subheading {
485
+ background-color: #ffffff !important;
486
+ color: #580076;
487
+ padding: 0.4rem;
488
+ margin: 0.4rem;
489
+ font-size: 12px;
490
+ }
491
+
492
+ .upstreams {
493
+ width: 260px;
494
+ display: flex;
495
+ }
496
+ .upstream_tables {
497
+ width: 260px;
498
+ font-size: 14px;
499
+ word-wrap: break-word;
500
+ padding: 12px;
501
+ }
502
+
503
+ .bi-table {
504
+ }
505
+
506
+ .name {
507
+ display: block;
508
+ flex-grow: 1;
509
+ line-height: 18px;
510
+ }
511
+
512
+ .entity-info {
513
+ color: #757575;
514
+ font-size: 12px;
515
+ padding: 0.25rem;
516
+ flex-grow: 1;
517
+ line-height: 24px;
518
+ letter-spacing: normal;
519
+ }
520
+
521
+ .node_name {
522
+ word-wrap: break-word;
523
+ max-width: 200px;
524
+ }
525
+
526
+ .cron {
527
+ background-color: rgb(255 215 215) !important;
528
+ color: #b34b00;
529
+ font-size: 1rem;
530
+ }
531
+ .cron-description {
532
+ text-transform: lowercase;
533
+ color: #777777;
384
534
  }
385
535
 
386
536
  .status__valid {
387
537
  color: #00b368;
388
538
  }
389
539
 
540
+ .status__invalid {
541
+ color: #b34b00;
542
+ }
543
+
390
544
  .status {
391
545
  text-transform: capitalize;
392
546
  vertical-align: middle;
@@ -402,7 +556,6 @@ tbody th {
402
556
  }
403
557
 
404
558
  .col.active {
405
- /*background-color: #f5fbff;*/
406
559
  padding-bottom: 1.15rem;
407
560
  color: #a1a5b7;
408
561
  border-bottom: solid 0.2em #2c7be5;
@@ -422,9 +575,6 @@ tbody th {
422
575
  --bs-gutter-y: 0;
423
576
  display: flex;
424
577
  flex-wrap: wrap;
425
- /*margin-top: 3rem;*/
426
- /*margin-bottom: calc(-.75*var(--bs-gutter-x));*/
427
- /*margin-left: 3.4rem;*/
428
578
  }
429
579
 
430
580
  .header {
@@ -433,14 +583,11 @@ tbody th {
433
583
  --bs-header-body-border-width: 1px;
434
584
  --bs-header-body-border-color: #e3ebf6;
435
585
  --bs-header-body-border-color-dark: rgba(227, 235, 246, 0.1);
436
- /*margin-bottom: var(--bs-header-margin-bottom);*/
437
586
  height: 90px;
438
587
  transition: none;
439
588
  display: flex;
440
589
  align-items: center;
441
590
  background-color: transparent;
442
- /*box-shadow: 0px 10px 30px 0px rgba(82, 63, 105, 0.05);*/
443
- /*border-bottom: var(--bs-app-header-base-border-bottom);*/
444
591
  }
445
592
  *,
446
593
  :after,
@@ -464,10 +611,6 @@ tbody th {
464
611
  background-color: transparent;
465
612
  border-color: #2c7be5;
466
613
  }
467
- .header-tabs .nav-link {
468
- /*padding-top: var(--bs-header-spacing-y);*/
469
- /*padding-bottom: var(--bs-header-spacing-y);*/
470
- }
471
614
  .nav-link {
472
615
  display: block;
473
616
  color: #a1a5b7;
@@ -498,8 +641,8 @@ pre {
498
641
  flex-grow: 0 !important;
499
642
  }
500
643
  .logo img {
501
- padding: 10px;
502
- margin-bottom: -1.2rem;
644
+ padding: 15px;
645
+ margin-bottom: 0.2rem;
503
646
  }
504
647
 
505
648
  .menu-lg-row > .menu-item {
@@ -542,11 +685,16 @@ pre {
542
685
  padding-bottom: 2rem;
543
686
  }
544
687
 
688
+ .mid {
689
+ padding-top: 0.4rem;
690
+ }
691
+
545
692
  .rounded-box {
546
693
  border-radius: 1rem !important;
547
694
  background-color: #ffffff;
548
695
  max-width: fit-content;
549
696
  }
697
+
550
698
  .card-header {
551
699
  align-items: center;
552
700
  margin: 0.5rem;
@@ -557,3 +705,173 @@ pre {
557
705
  .text-gray-400 {
558
706
  color: #b5b5c3 !important;
559
707
  }
708
+
709
+ .filters_attribute {
710
+ width: 30%;
711
+ display: block;
712
+ margin: 0 3rem 3rem 3rem;
713
+ float: left;
714
+ }
715
+
716
+ .switch {
717
+ position: relative;
718
+ display: inline-block;
719
+ width: 40px;
720
+ height: 20px;
721
+ background-color: #eee;
722
+ border-radius: 20px;
723
+ vertical-align: middle;
724
+ }
725
+
726
+ .switch::after {
727
+ content: '';
728
+ position: absolute;
729
+ width: 18px;
730
+ height: 18px;
731
+ border-radius: 50%;
732
+ background-color: white;
733
+ top: 1px;
734
+ left: 1px;
735
+ transition: all 0.3s;
736
+ }
737
+
738
+ .checkbox:checked + .switch::after {
739
+ left: 20px;
740
+ }
741
+ .checkbox:checked + .switch {
742
+ background-color: #7983ff;
743
+ }
744
+
745
+ .checkbox {
746
+ display: none;
747
+ }
748
+
749
+ .button-3 {
750
+ appearance: none;
751
+ border: 1px solid rgba(27, 31, 35, 0.15);
752
+ border-radius: 6px;
753
+ box-shadow: rgba(27, 31, 35, 0.1) 0 1px 0;
754
+ box-sizing: border-box;
755
+ cursor: pointer;
756
+ display: inline-block;
757
+ font-weight: 600;
758
+ line-height: 20px;
759
+ padding: 6px 16px;
760
+ margin: 5px;
761
+ position: relative;
762
+ text-align: center;
763
+ text-decoration: none;
764
+ user-select: none;
765
+ -webkit-user-select: none;
766
+ touch-action: manipulation;
767
+ vertical-align: middle;
768
+ white-space: nowrap;
769
+ }
770
+
771
+ .button-3:focus:not(:focus-visible):not(.focus-visible) {
772
+ box-shadow: none;
773
+ outline: none;
774
+ }
775
+
776
+ .execute-button {
777
+ background-color: #00b368;
778
+ color: #fff;
779
+ }
780
+
781
+ .executing-button {
782
+ background-color: #bbbbbb;
783
+ color: #fff;
784
+ }
785
+
786
+ .neutral-button {
787
+ background-color: #f6f8fa;
788
+ color: #24292f;
789
+ }
790
+ .text-black {
791
+ color: #000000 !important;
792
+ }
793
+
794
+ .cube-element {
795
+ color: #757575;
796
+ font-size: 14px;
797
+ padding: 0.25rem;
798
+ flex-grow: 1;
799
+ display: table;
800
+ line-height: 24px;
801
+ letter-spacing: normal;
802
+ }
803
+ .cube-element .badge {
804
+ margin-left: 0.4rem;
805
+ }
806
+
807
+ .code-button {
808
+ display: inline-flex;
809
+ -webkit-box-align: center;
810
+ align-items: center;
811
+ -webkit-box-pack: center;
812
+ justify-content: center;
813
+ position: relative;
814
+ box-sizing: border-box;
815
+ -webkit-tap-highlight-color: transparent;
816
+ background-color: transparent;
817
+ outline: 0;
818
+ border: 0;
819
+ margin: 0;
820
+ cursor: pointer;
821
+ user-select: none;
822
+ vertical-align: middle;
823
+ appearance: none;
824
+ text-decoration: none;
825
+ text-align: center;
826
+ flex: 0 0 auto;
827
+ font-size: 1.5rem;
828
+ padding: 0;
829
+ border-radius: 50%;
830
+ overflow: visible;
831
+ color: rgba(0, 0, 0, 0.54);
832
+ transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
833
+ }
834
+
835
+ #node-create-code pre {
836
+ padding: 1rem !important;
837
+ max-height: 300px;
838
+ overflow: scroll;
839
+ text-align: left;
840
+ position: absolute;
841
+ max-width: 75%;
842
+ z-index: 1;
843
+ }
844
+
845
+ .select-name {
846
+ margin-top: 5px;
847
+ padding: 7px 7px;
848
+ width: fit-content;
849
+ border-radius: 4px;
850
+ cursor: default;
851
+ font-size: 0.9125rem;
852
+ color: #95aac9;
853
+ }
854
+
855
+ .select-name:hover {
856
+ background-color: #bdbaba3c;
857
+ }
858
+
859
+ .select-name-highlight {
860
+ font-weight: 600;
861
+ background-color: #bdbaba3c;
862
+ border: 1px solid rgba(94, 94, 94, 0.24);
863
+ }
864
+
865
+ .inactive {
866
+ display: none;
867
+ }
868
+
869
+ .filters {
870
+ width: 500px;
871
+ display: inline-table;
872
+ }
873
+
874
+ .filters-operator {
875
+ width: 200px;
876
+ display: inline-table;
877
+ }
package/tsconfig.json CHANGED
@@ -21,7 +21,7 @@
21
21
  "removeComments": true,
22
22
  "sourceMap": true
23
23
  },
24
- "include": ["src", "internals/startingTemplate/**/*"],
24
+ "include": ["src/**/*.ts", "src/**/*.tsx", "internals/startingTemplate/**/*"],
25
25
  "ts-node": {
26
26
  "compilerOptions": {
27
27
  "esModuleInterop": true,
package/webpack.config.js CHANGED
@@ -1,6 +1,8 @@
1
+ const webpack = require('webpack');
2
+ const dotenv = require('dotenv').config();
1
3
  const path = require('path');
2
4
  const HtmlWebpackPlugin = require('html-webpack-plugin');
3
- const MiniCssExtractPlugin = require('mini-css-extract-plugin');
5
+ require('dotenv').config({ path: './.env' });
4
6
 
5
7
  var babelOptions = {
6
8
  presets: ['@babel/preset-react'],
@@ -10,20 +12,27 @@ module.exports = {
10
12
  cache: true,
11
13
  entry: {
12
14
  main: './src/index.tsx',
13
- vendor: ['events', 'fbemitter', 'flux', 'react', 'react-dom'],
15
+ vendor: ['events', 'react', 'react-dom'],
14
16
  },
15
17
  target: 'web',
16
18
  mode: 'development',
17
19
  output: {
18
20
  path: path.resolve(__dirname, './dist'),
19
21
  filename: 'static/[name].[fullhash].js',
22
+ library: 'datajunction-ui',
23
+ libraryTarget: 'umd',
24
+ globalObject: 'this',
25
+ umdNamedDefine: true,
20
26
  publicPath: '/',
21
27
  },
22
28
  devServer: {
23
- historyApiFallback: true,
29
+ historyApiFallback: {
30
+ disableDotRule: true,
31
+ },
24
32
  },
25
33
  resolve: {
26
34
  extensions: ['.js', '.jsx', '.json', '.ts', '.tsx'],
35
+ modules: ['src', 'node_modules'],
27
36
  fallback: {
28
37
  path: false,
29
38
  buffer: false,
@@ -31,6 +40,13 @@ module.exports = {
31
40
  fs: false,
32
41
  os: false,
33
42
  module: false,
43
+ http: false,
44
+ tls: false,
45
+ https: false,
46
+ url: false,
47
+ browser: false,
48
+ net: false,
49
+ process: false,
34
50
  },
35
51
  },
36
52
  module: {
@@ -84,8 +100,8 @@ module.exports = {
84
100
  new HtmlWebpackPlugin({
85
101
  template: path.resolve(__dirname, 'public', 'index.html'),
86
102
  }),
87
- // new MiniCssExtractPlugin({
88
- // filename: './styles/index.css',
89
- // }),
103
+ new webpack.DefinePlugin({
104
+ 'process.env': JSON.stringify(process.env),
105
+ }),
90
106
  ],
91
107
  };
package/.babelrc DELETED
@@ -1,4 +0,0 @@
1
- {
2
- "presets": ["@babel/preset-env", "@babel/preset-react"],
3
- "plugins": ["@babel/plugin-proposal-class-properties"]
4
- }
package/.env.local DELETED
@@ -1,4 +0,0 @@
1
- BROWSER=none
2
- EXTEND_ESLINT=true
3
- FAST_REFRESH=true
4
- REACT_APP_DJ_URL=http://localhost:8000
package/.env.production DELETED
@@ -1 +0,0 @@
1
- GENERATE_SOURCEMAP=false
@@ -1,7 +0,0 @@
1
- {
2
- "recommendations": [
3
- "dbaeumer.vscode-eslint",
4
- "esbenp.prettier-vscode",
5
- "orta.vscode-jest"
6
- ]
7
- }
@@ -1,15 +0,0 @@
1
- {
2
- "version": "0.2.0",
3
- "configurations": [
4
- {
5
- "name": "Chrome",
6
- "type": "chrome",
7
- "request": "launch",
8
- "url": "http://localhost:3000",
9
- "webRoot": "${workspaceFolder}/src",
10
- "sourceMapPathOverrides": {
11
- "webpack:///src/*": "${webRoot}/*"
12
- }
13
- }
14
- ]
15
- }
@@ -1,25 +0,0 @@
1
- {
2
- "typescript.tsdk": "node_modules/typescript/lib",
3
- "[typescript]": {
4
- "editor.defaultFormatter": "esbenp.prettier-vscode",
5
- "editor.tabSize": 2
6
- },
7
- "[typescriptreact]": {
8
- "editor.defaultFormatter": "esbenp.prettier-vscode"
9
- },
10
- "[javascript]": {
11
- "editor.defaultFormatter": "esbenp.prettier-vscode"
12
- },
13
- "[json]": {
14
- "editor.defaultFormatter": "esbenp.prettier-vscode"
15
- },
16
- "[html]": {
17
- "editor.defaultFormatter": "esbenp.prettier-vscode"
18
- },
19
- "editor.codeActionsOnSave": {
20
- "source.fixAll": true,
21
- "source.fixAll.eslint": true
22
- },
23
- "editor.formatOnSave": true,
24
- "javascript.format.enable": false
25
- }
package/Dockerfile DELETED
@@ -1,7 +0,0 @@
1
- FROM node:19 AS ui-build
2
- WORKDIR /usr/src/app
3
- COPY . .
4
- EXPOSE 3000
5
- RUN yarn webpack build
6
-
7
- CMD ["yarn", "webpack-start", "--host", "0.0.0.0", "--port", "3000"]
package/dist/index.html DELETED
@@ -1,26 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8" />
5
- <link rel="icon" href="public/favicon.ico" />
6
- <meta name="viewport" content="width=device-width, initial-scale=1" />
7
- <meta name="theme-color" content="#000000" />
8
- <link rel="manifest" href="public/manifest.json" />
9
- <meta property="og:title" content="React Boilerplate Example App" />
10
- <meta property="og:description" content="" />
11
- <title>DataJunction App</title>
12
- <meta name="description" content="" />
13
- <script defer src="main.js"></script>
14
- <script defer src="vendor.js"></script>
15
- </head>
16
- <body>
17
- <noscript>You need to enable JavaScript to run this app.</noscript>
18
- <div id="root"></div>
19
-
20
- <!-- Inter Font -->
21
- <link
22
- href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;700&display=swap"
23
- rel="stylesheet"
24
- />
25
- </body>
26
- </html>