slicejs-web-framework 2.3.4 → 2.4.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 (89) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +24 -5
  3. package/Slice/Components/Structural/Controller/Controller.js +156 -154
  4. package/Slice/Components/Structural/Debugger/Debugger.css +619 -619
  5. package/Slice/Components/Structural/Debugger/Debugger.html +72 -72
  6. package/Slice/Components/Structural/Logger/Log.js +10 -10
  7. package/Slice/Components/Structural/StylesManager/StylesManager.js +6 -3
  8. package/Slice/Slice.js +111 -51
  9. package/api/index.js +261 -239
  10. package/api/middleware/securityMiddleware.js +252 -252
  11. package/package.json +37 -37
  12. package/sliceConfig.schema.json +4 -0
  13. package/src/App/index.html +22 -22
  14. package/src/App/index.js +23 -23
  15. package/src/App/style.css +40 -40
  16. package/src/Components/AppComponents/HomePage/HomePage.css +204 -204
  17. package/src/Components/AppComponents/HomePage/HomePage.html +48 -48
  18. package/src/Components/AppComponents/HomePage/HomePage.js +195 -195
  19. package/src/Components/AppComponents/Playground/Playground.css +11 -11
  20. package/src/Components/AppComponents/Playground/Playground.js +111 -111
  21. package/src/Components/Service/FetchManager/FetchManager.js +133 -133
  22. package/src/Components/Service/IndexedDbManager/IndexedDbManager.js +141 -141
  23. package/src/Components/Service/LocalStorageManager/LocalStorageManager.js +45 -45
  24. package/src/Components/Visual/Button/Button.css +47 -47
  25. package/src/Components/Visual/Button/Button.html +5 -5
  26. package/src/Components/Visual/Button/Button.js +92 -92
  27. package/src/Components/Visual/Card/Card.css +68 -68
  28. package/src/Components/Visual/Card/Card.html +7 -7
  29. package/src/Components/Visual/Card/Card.js +107 -107
  30. package/src/Components/Visual/Checkbox/Checkbox.css +87 -87
  31. package/src/Components/Visual/Checkbox/Checkbox.html +8 -8
  32. package/src/Components/Visual/Checkbox/Checkbox.js +86 -86
  33. package/src/Components/Visual/CodeVisualizer/CodeVisualizer.css +129 -129
  34. package/src/Components/Visual/CodeVisualizer/CodeVisualizer.html +3 -3
  35. package/src/Components/Visual/CodeVisualizer/CodeVisualizer.js +259 -259
  36. package/src/Components/Visual/Details/Details.css +70 -70
  37. package/src/Components/Visual/Details/Details.html +9 -9
  38. package/src/Components/Visual/Details/Details.js +76 -76
  39. package/src/Components/Visual/DropDown/DropDown.css +60 -60
  40. package/src/Components/Visual/DropDown/DropDown.html +5 -5
  41. package/src/Components/Visual/DropDown/DropDown.js +63 -63
  42. package/src/Components/Visual/Grid/Grid.css +7 -7
  43. package/src/Components/Visual/Grid/Grid.html +1 -1
  44. package/src/Components/Visual/Grid/Grid.js +57 -57
  45. package/src/Components/Visual/Icon/Icon.css +510 -510
  46. package/src/Components/Visual/Icon/Icon.js +89 -89
  47. package/src/Components/Visual/Icon/slc.json +554 -554
  48. package/src/Components/Visual/Icon/slc.styl +507 -507
  49. package/src/Components/Visual/Icon/slc.svg +1485 -1485
  50. package/src/Components/Visual/Icon/slc.symbol.svg +1058 -1058
  51. package/src/Components/Visual/Input/Input.css +91 -91
  52. package/src/Components/Visual/Input/Input.html +4 -4
  53. package/src/Components/Visual/Input/Input.js +215 -215
  54. package/src/Components/Visual/Layout/Layout.js +49 -49
  55. package/src/Components/Visual/Link/Link.css +8 -0
  56. package/src/Components/Visual/Link/Link.html +1 -0
  57. package/src/Components/Visual/Link/Link.js +63 -0
  58. package/src/Components/Visual/Loading/Loading.css +56 -56
  59. package/src/Components/Visual/Loading/Loading.html +83 -83
  60. package/src/Components/Visual/Loading/Loading.js +38 -38
  61. package/src/Components/Visual/MultiRoute/MultiRoute.js +93 -93
  62. package/src/Components/Visual/Navbar/Navbar.css +115 -115
  63. package/src/Components/Visual/Navbar/Navbar.html +44 -44
  64. package/src/Components/Visual/Navbar/Navbar.js +141 -141
  65. package/src/Components/Visual/NotFound/NotFound.css +116 -116
  66. package/src/Components/Visual/NotFound/NotFound.html +23 -23
  67. package/src/Components/Visual/NotFound/NotFound.js +16 -16
  68. package/src/Components/Visual/Route/Route.js +93 -93
  69. package/src/Components/Visual/Select/Select.css +84 -84
  70. package/src/Components/Visual/Select/Select.html +8 -8
  71. package/src/Components/Visual/Select/Select.js +195 -195
  72. package/src/Components/Visual/Switch/Switch.css +76 -76
  73. package/src/Components/Visual/Switch/Switch.html +8 -8
  74. package/src/Components/Visual/Switch/Switch.js +102 -102
  75. package/src/Components/Visual/TreeItem/TreeItem.css +36 -36
  76. package/src/Components/Visual/TreeItem/TreeItem.html +1 -1
  77. package/src/Components/Visual/TreeItem/TreeItem.js +126 -126
  78. package/src/Components/Visual/TreeView/TreeView.css +8 -8
  79. package/src/Components/Visual/TreeView/TreeView.html +1 -1
  80. package/src/Components/Visual/TreeView/TreeView.js +48 -48
  81. package/src/Components/components.js +2 -2
  82. package/src/Styles/sliceStyles.css +34 -34
  83. package/src/Themes/Dark.css +42 -42
  84. package/src/Themes/Light.css +31 -31
  85. package/src/Themes/Slice.css +47 -47
  86. package/src/routes.js +15 -15
  87. package/src/sliceConfig.json +73 -60
  88. package/src/testing.js +887 -887
  89. package/src/Components/Service/Link/Link.js +0 -26
@@ -1,93 +1,93 @@
1
- export default class Route extends HTMLElement {
2
- constructor(props) {
3
- super();
4
- this.props = props;
5
- this.rendered = false;
6
- }
7
-
8
- init() {
9
- if (!this.props.path) {
10
- this.props.path = ' ';
11
- }
12
-
13
- if (!this.props.component) {
14
- this.props.component = slice.router.pathToRouteMap.get(this.props.path).component || ' ';
15
- }
16
-
17
- //this.props.innerHTML = this.innerHTML;
18
- }
19
-
20
- get path() {
21
- return this.props.path;
22
- }
23
-
24
- set path(value) {
25
- this.props.path = value;
26
- }
27
-
28
- get component() {
29
- return this.props.component;
30
- }
31
-
32
- set component(value) {
33
- this.props.component = value;
34
- }
35
-
36
- async render() {
37
- if (Route.componentCache[this.props.component]) {
38
- const cachedComponent = Route.componentCache[this.props.component];
39
- this.innerHTML = '';
40
-
41
- if (cachedComponent.update) {
42
- await cachedComponent.update();
43
- }
44
-
45
- this.appendChild(cachedComponent);
46
- } else {
47
- if (!this.props.component) {
48
- return;
49
- }
50
-
51
- if (!slice.controller.componentCategories.has(this.props.component)) {
52
- slice.logger.logError(`${this.sliceId}`, `Component ${this.props.component} not found`);
53
- return;
54
- }
55
-
56
- const component = await slice.build(this.props.component, {
57
- sliceId: this.props.component,
58
- });
59
-
60
- this.innerHTML = '';
61
- this.appendChild(component);
62
- Route.componentCache[this.props.component] = component;
63
- }
64
- this.rendered = true;
65
- }
66
-
67
- async renderIfCurrentRoute() {
68
- if (this.props.path === window.location.pathname) {
69
- if (this.rendered) {
70
- if (Route.componentCache[this.props.component]) {
71
- const cachedComponent = Route.componentCache[this.props.component];
72
- if (cachedComponent.update) {
73
- await cachedComponent.update();
74
- }
75
- return true;
76
- }
77
- }
78
- await this.render();
79
- return true;
80
- }
81
- return false;
82
- }
83
-
84
- removeComponent() {
85
- delete Route.componentCache[this.props.component];
86
- this.innerHTML = '';
87
- this.rendered = false;
88
- }
89
- }
90
-
91
- Route.componentCache = {};
92
-
93
- customElements.define('slice-route', Route);
1
+ export default class Route extends HTMLElement {
2
+ constructor(props) {
3
+ super();
4
+ this.props = props;
5
+ this.rendered = false;
6
+ }
7
+
8
+ init() {
9
+ if (!this.props.path) {
10
+ this.props.path = ' ';
11
+ }
12
+
13
+ if (!this.props.component) {
14
+ this.props.component = slice.router.pathToRouteMap.get(this.props.path).component || ' ';
15
+ }
16
+
17
+ //this.props.innerHTML = this.innerHTML;
18
+ }
19
+
20
+ get path() {
21
+ return this.props.path;
22
+ }
23
+
24
+ set path(value) {
25
+ this.props.path = value;
26
+ }
27
+
28
+ get component() {
29
+ return this.props.component;
30
+ }
31
+
32
+ set component(value) {
33
+ this.props.component = value;
34
+ }
35
+
36
+ async render() {
37
+ if (Route.componentCache[this.props.component]) {
38
+ const cachedComponent = Route.componentCache[this.props.component];
39
+ this.innerHTML = '';
40
+
41
+ if (cachedComponent.update) {
42
+ await cachedComponent.update();
43
+ }
44
+
45
+ this.appendChild(cachedComponent);
46
+ } else {
47
+ if (!this.props.component) {
48
+ return;
49
+ }
50
+
51
+ if (!slice.controller.componentCategories.has(this.props.component)) {
52
+ slice.logger.logError(`${this.sliceId}`, `Component ${this.props.component} not found`);
53
+ return;
54
+ }
55
+
56
+ const component = await slice.build(this.props.component, {
57
+ sliceId: this.props.component,
58
+ });
59
+
60
+ this.innerHTML = '';
61
+ this.appendChild(component);
62
+ Route.componentCache[this.props.component] = component;
63
+ }
64
+ this.rendered = true;
65
+ }
66
+
67
+ async renderIfCurrentRoute() {
68
+ if (this.props.path === window.location.pathname) {
69
+ if (this.rendered) {
70
+ if (Route.componentCache[this.props.component]) {
71
+ const cachedComponent = Route.componentCache[this.props.component];
72
+ if (cachedComponent.update) {
73
+ await cachedComponent.update();
74
+ }
75
+ return true;
76
+ }
77
+ }
78
+ await this.render();
79
+ return true;
80
+ }
81
+ return false;
82
+ }
83
+
84
+ removeComponent() {
85
+ delete Route.componentCache[this.props.component];
86
+ this.innerHTML = '';
87
+ this.rendered = false;
88
+ }
89
+ }
90
+
91
+ Route.componentCache = {};
92
+
93
+ customElements.define('slice-route', Route);
@@ -1,84 +1,84 @@
1
- .slice_select_dropdown {
2
- font-family: var(--font-family);
3
- max-width: 100%;
4
- margin-bottom: 25px;
5
- margin-top: 25px;
6
- position: relative;
7
- }
8
- .slice_select_container {
9
- cursor: pointer;
10
- display: flex;
11
- padding: 10px;
12
- border-radius: var(--border-radius-slice);
13
- border: var(--slice-border) solid var(--primary-color);
14
- background-color: var(--primary-background-color);
15
- justify-content: space-between;
16
- align-items: center;
17
- }
18
- .slice_select {
19
- pointer-events: none;
20
- color: var(--font-primary-color);
21
- width: 100%;
22
- background: none;
23
- outline: none;
24
- border: none;
25
- }
26
- .slice_select_label {
27
- color: var(--primary-color);
28
- position: absolute;
29
- transition: all 0.5s;
30
- user-select: none;
31
- }
32
- .slice_select_value {
33
- scale: 0.8;
34
- transform: translateY(-200%);
35
- transition: all 0.5s;
36
- }
37
- .slice_select_menu {
38
- display: none;
39
- border: var(--slice-border) solid var(--primary-color);
40
- list-style: none;
41
- font-family: var(--font-family);
42
- visibility: hidden;
43
- overflow: hidden;
44
- position: absolute;
45
- opacity: 0;
46
- transition: 0s, opacity 0.3s;
47
- top: 100%;
48
- width: 100%;
49
- z-index: 1;
50
- background-color: var(--primary-background-color);
51
- border-radius: var(--border-radius-slice);
52
- box-shadow: 0 0 10px 0 #00000050;
53
- div {
54
- color: var(--font-primary-color);
55
- cursor: pointer;
56
- padding: 10px;
57
- &:hover {
58
- color: var(--secondary-color-contrast);
59
- background-color: var(--secondary-color);
60
- }
61
- }
62
- }
63
- .menu_open {
64
- display: block;
65
- overflow-y: scroll;
66
- min-height: min-content;
67
- max-height: 400%;
68
- visibility: visible;
69
- opacity: 1;
70
- }
71
- .menu_open::-webkit-scrollbar {
72
- width: 5px;
73
- }
74
- .menu_open::-webkit-scrollbar-thumb {
75
- background: var(--secondary-color);
76
- border-radius: var(--border-radius-slice);
77
- }
78
- .active {
79
- /* color: var(--primary-color); */
80
- background-color: var(--secondary-background-color);
81
- }
82
- .slice_select_container .caret {
83
- border-top-color: var(--primary-color);
84
- }
1
+ .slice_select_dropdown {
2
+ font-family: var(--font-family);
3
+ max-width: 100%;
4
+ margin-bottom: 25px;
5
+ margin-top: 25px;
6
+ position: relative;
7
+ }
8
+ .slice_select_container {
9
+ cursor: pointer;
10
+ display: flex;
11
+ padding: 10px;
12
+ border-radius: var(--border-radius-slice);
13
+ border: var(--slice-border) solid var(--primary-color);
14
+ background-color: var(--primary-background-color);
15
+ justify-content: space-between;
16
+ align-items: center;
17
+ }
18
+ .slice_select {
19
+ pointer-events: none;
20
+ color: var(--font-primary-color);
21
+ width: 100%;
22
+ background: none;
23
+ outline: none;
24
+ border: none;
25
+ }
26
+ .slice_select_label {
27
+ color: var(--primary-color);
28
+ position: absolute;
29
+ transition: all 0.5s;
30
+ user-select: none;
31
+ }
32
+ .slice_select_value {
33
+ scale: 0.8;
34
+ transform: translateY(-200%);
35
+ transition: all 0.5s;
36
+ }
37
+ .slice_select_menu {
38
+ display: none;
39
+ border: var(--slice-border) solid var(--primary-color);
40
+ list-style: none;
41
+ font-family: var(--font-family);
42
+ visibility: hidden;
43
+ overflow: hidden;
44
+ position: absolute;
45
+ opacity: 0;
46
+ transition: 0s, opacity 0.3s;
47
+ top: 100%;
48
+ width: 100%;
49
+ z-index: 1;
50
+ background-color: var(--primary-background-color);
51
+ border-radius: var(--border-radius-slice);
52
+ box-shadow: 0 0 10px 0 #00000050;
53
+ div {
54
+ color: var(--font-primary-color);
55
+ cursor: pointer;
56
+ padding: 10px;
57
+ &:hover {
58
+ color: var(--secondary-color-contrast);
59
+ background-color: var(--secondary-color);
60
+ }
61
+ }
62
+ }
63
+ .menu_open {
64
+ display: block;
65
+ overflow-y: scroll;
66
+ min-height: min-content;
67
+ max-height: 400%;
68
+ visibility: visible;
69
+ opacity: 1;
70
+ }
71
+ .menu_open::-webkit-scrollbar {
72
+ width: 5px;
73
+ }
74
+ .menu_open::-webkit-scrollbar-thumb {
75
+ background: var(--secondary-color);
76
+ border-radius: var(--border-radius-slice);
77
+ }
78
+ .active {
79
+ /* color: var(--primary-color); */
80
+ background-color: var(--secondary-background-color);
81
+ }
82
+ .slice_select_container .caret {
83
+ border-top-color: var(--primary-color);
84
+ }
@@ -1,8 +1,8 @@
1
- <div class="slice_select_dropdown">
2
- <div class="slice_select_container">
3
- <label class="slice_select_label"></label>
4
- <input class="slice_select" />
5
- <div class="caret"></div>
6
- </div>
7
- <div class="slice_select_menu"></div>
8
- </div>
1
+ <div class="slice_select_dropdown">
2
+ <div class="slice_select_container">
3
+ <label class="slice_select_label"></label>
4
+ <input class="slice_select" />
5
+ <div class="caret"></div>
6
+ </div>
7
+ <div class="slice_select_menu"></div>
8
+ </div>