@omegagrid/tabs 0.2.5

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 (41) hide show
  1. package/dist/components/index.d.ts +4 -0
  2. package/dist/components/index.d.ts.map +1 -0
  3. package/dist/components/index.js +20 -0
  4. package/dist/components/index.js.map +1 -0
  5. package/dist/components/tabContainer.d.ts +48 -0
  6. package/dist/components/tabContainer.d.ts.map +1 -0
  7. package/dist/components/tabContainer.js +219 -0
  8. package/dist/components/tabContainer.js.map +1 -0
  9. package/dist/components/tabContainer.style.d.ts +2 -0
  10. package/dist/components/tabContainer.style.d.ts.map +1 -0
  11. package/dist/components/tabContainer.style.js +33 -0
  12. package/dist/components/tabContainer.style.js.map +1 -0
  13. package/dist/components/tabSplitContainer.d.ts +41 -0
  14. package/dist/components/tabSplitContainer.d.ts.map +1 -0
  15. package/dist/components/tabSplitContainer.js +281 -0
  16. package/dist/components/tabSplitContainer.js.map +1 -0
  17. package/dist/components/tabs.d.ts +55 -0
  18. package/dist/components/tabs.d.ts.map +1 -0
  19. package/dist/components/tabs.js +287 -0
  20. package/dist/components/tabs.js.map +1 -0
  21. package/dist/components/tabs.style.d.ts +2 -0
  22. package/dist/components/tabs.style.d.ts.map +1 -0
  23. package/dist/components/tabs.style.js +152 -0
  24. package/dist/components/tabs.style.js.map +1 -0
  25. package/dist/constants.d.ts +44 -0
  26. package/dist/constants.d.ts.map +1 -0
  27. package/dist/constants.js +9 -0
  28. package/dist/constants.js.map +1 -0
  29. package/dist/index.d.ts +4 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +20 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/model/index.d.ts +25 -0
  34. package/dist/model/index.d.ts.map +1 -0
  35. package/dist/model/index.js +96 -0
  36. package/dist/model/index.js.map +1 -0
  37. package/dist/types.d.ts +9 -0
  38. package/dist/types.d.ts.map +1 -0
  39. package/dist/types.js +3 -0
  40. package/dist/types.js.map +1 -0
  41. package/package.json +58 -0
@@ -0,0 +1,2 @@
1
+ export declare const style: import("lit").CSSResult;
2
+ //# sourceMappingURL=tabs.style.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.style.d.ts","sourceRoot":"","sources":["../../src/components/tabs.style.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,KAAK,yBA8IjB,CAAC"}
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.style = void 0;
7
+ const constants_1 = __importDefault(require("../constants"));
8
+ const lit_1 = require("lit");
9
+ exports.style = (0, lit_1.css) `
10
+ * {
11
+ box-sizing: border-box;
12
+ }
13
+
14
+ :host {
15
+ height: ${constants_1.default.TAB_PANEL_HEIGHT}px;
16
+ line-height: ${constants_1.default.TAB_PANEL_HEIGHT}px;
17
+ background: var(--tab-panel-background-color);
18
+ border-bottom: 1px solid var(--tab-border-color);
19
+ display: flex;
20
+ flex-direction: row;
21
+ position: relative;
22
+ font-size: var(--font-size);
23
+ }
24
+
25
+ .tabs {
26
+ height: ${constants_1.default.TAB_PANEL_HEIGHT - 1}px;
27
+ flex: 0;
28
+ white-space: nowrap;
29
+ display: flex;
30
+ flex-direction: row;
31
+ }
32
+
33
+ :host([position="top"]) .tab {
34
+ border-top: ${constants_1.default.TAB_PANEL_BORDER}px solid var(--tab-panel-background-color);
35
+ }
36
+
37
+ :host([position="top"]) .tab:hover, :host([position="top"]) .tab.active {
38
+ border-top-color: var(--accent-color);
39
+ }
40
+
41
+ :host([position="bottom"]) .tab {
42
+ border-bottom: ${constants_1.default.TAB_PANEL_BORDER}px solid var(--tab-panel-background-color);
43
+ }
44
+
45
+ :host([position="bottom"]) .tab:hover, :host([position="bottom"]) .tab.active {
46
+ border-bottom-color: var(--accent-color);
47
+ }
48
+
49
+ :host(.inactive) .tab.active {
50
+ border-top-color: var(--tab-border-color);
51
+ border-bottom-color: var(--tab-border-color);
52
+ }
53
+
54
+ .tab {
55
+ border-right: 1px solid var(--tab-border-color);
56
+ display: flex;
57
+ flex-direction: row;
58
+ height: 100%;
59
+ background: var(--tab-background-color);
60
+ cursor: pointer;
61
+ margin-right: 1px;
62
+ padding-left: 7px;
63
+ padding-right: 7px;
64
+ position: relative;
65
+ }
66
+
67
+ .tab.closable {
68
+ padding-right: 20px;
69
+ }
70
+
71
+ .tab.active {
72
+ background-color: var(--tab-background-color-active);
73
+ height: ${constants_1.default.TAB_PANEL_HEIGHT}px;
74
+ font-weight: bold;
75
+ }
76
+
77
+ .tab:hover .tab-x {
78
+ display: block;
79
+ }
80
+
81
+ .tab-x {
82
+ font-size: 14px;
83
+ position: absolute;
84
+ right: 2px;
85
+ display: none;
86
+ width: 16px;
87
+ height: 16px;
88
+ line-height: 16px;
89
+ margin: 6px 0 0 5px;
90
+ text-align: center;
91
+ border-radius: 50%;
92
+ }
93
+
94
+ .tab-save-mark {
95
+ height: 16px;
96
+ line-height: 16px;
97
+ margin: 6px 0 0 5px;
98
+ }
99
+
100
+ .tab.closable:hover .tab-save-mark {
101
+ display: none;
102
+ }
103
+
104
+ .tab.closable .tab-save-mark {
105
+ position: absolute;
106
+ right: 5px;
107
+ }
108
+
109
+ .tab.unsaved {
110
+ color: #959d00;
111
+ }
112
+
113
+ .tab-x og-fa-icon {
114
+ display: block;
115
+ }
116
+
117
+ .tab-x:hover {
118
+ background-color: rgba(1, 1, 1, 0.5);
119
+ }
120
+
121
+ .empty {
122
+ flex: 1;
123
+ height: 100%;
124
+ }
125
+
126
+ .buttons {
127
+ flex: 0;
128
+ height: 100%;
129
+ padding: 0 10px 0 10px;
130
+ }
131
+
132
+ .buttons og-fa-icon {
133
+ cursor: pointer;
134
+ }
135
+
136
+ .buttons og-fa-icon:hover {
137
+ color: var(--text-color-2)
138
+ }
139
+
140
+ #overlay {
141
+ background-color: var(--accent-color);
142
+ opacity: 0.5;
143
+ pointer-events: none;
144
+ }
145
+
146
+ #btnAdd {
147
+ margin-left: 5px;
148
+ line-height: 0;
149
+ }
150
+
151
+ `;
152
+ //# sourceMappingURL=tabs.style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.style.js","sourceRoot":"","sources":["../../src/components/tabs.style.ts"],"names":[],"mappings":";;;;;;AAAA,6DAAqC;AACrC,6BAA0B;AAEb,QAAA,KAAK,GAAG,IAAA,SAAG,EAAA;;;;;;YAMZ,mBAAS,CAAC,gBAAgB;iBACrB,mBAAS,CAAC,gBAAgB;;;;;;;;;;YAU/B,mBAAS,CAAC,gBAAgB,GAAG,CAAC;;;;;;;;gBAQ1B,mBAAS,CAAC,gBAAgB;;;;;;;;mBAQvB,mBAAS,CAAC,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA+BjC,mBAAS,CAAC,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8ErC,CAAC"}
@@ -0,0 +1,44 @@
1
+ declare const _default: {
2
+ LOCALE: string;
3
+ PREFIX: string;
4
+ DEFAULT_ACCENT_COLOR: string;
5
+ DEFAULT_ACCENT_COLOR_2: import("color")<string | number | ArrayLike<number> | import("color")<string | number | ArrayLike<number> | import("color")<string | number | ArrayLike<number> | import("color")<string | number | ArrayLike<number> | import("color")<string | number | ArrayLike<number> | import("color")<string | number | ArrayLike<number> | import("color")<string | number | ArrayLike<number> | import("color")<string | number | ArrayLike<number> | import("color")<string | number | ArrayLike<number> | import("color")<string | number | ArrayLike<number> | import("color")<string | number | ArrayLike<number> | import("color")<any> | {
6
+ [key: string]: any;
7
+ }> | {
8
+ [key: string]: any;
9
+ }> | {
10
+ [key: string]: any;
11
+ }> | {
12
+ [key: string]: any;
13
+ }> | {
14
+ [key: string]: any;
15
+ }> | {
16
+ [key: string]: any;
17
+ }> | {
18
+ [key: string]: any;
19
+ }> | {
20
+ [key: string]: any;
21
+ }> | {
22
+ [key: string]: any;
23
+ }> | {
24
+ [key: string]: any;
25
+ }> | {
26
+ [key: string]: any;
27
+ }>;
28
+ SIZER_SIZE: number;
29
+ SLIDER_SIZE: number;
30
+ SLIDER_MIN_LENGTH: number;
31
+ EXPANDER_SIZE: number;
32
+ LIST_ITEM_HEIGHT: number;
33
+ LIST_RENDERING_TRESHOLD: number;
34
+ LIST_AUTOSCROLL_TRESHOLD: number;
35
+ LIST_AUTOSCROLL_DELAY: number;
36
+ DEFAULT_TEXT_HIGHLIGHT_COLOR: string;
37
+ TOOLTIP_MARGIN: number;
38
+ MENU_ITEM_HEIGHT: number;
39
+ COLORPICKER_COLOR_SIZE: number;
40
+ TAB_PANEL_HEIGHT: number;
41
+ TAB_PANEL_BORDER: number;
42
+ };
43
+ export default _default;
44
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBAIC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@omegagrid/core");
4
+ exports.default = {
5
+ TAB_PANEL_HEIGHT: 30,
6
+ TAB_PANEL_BORDER: 2,
7
+ ...core_1.constants
8
+ };
9
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;AAAA,0CAA6D;AAE7D,kBAAe;IACd,gBAAgB,EAAE,EAAE;IACpB,gBAAgB,EAAE,CAAC;IACnB,GAAG,gBAAa;CAChB,CAAA"}
@@ -0,0 +1,4 @@
1
+ export * from './model';
2
+ export * from './components';
3
+ export * from './types';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./model"), exports);
18
+ __exportStar(require("./components"), exports);
19
+ __exportStar(require("./types"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,+CAA6B;AAC7B,0CAAwB"}
@@ -0,0 +1,25 @@
1
+ import { Orientation, SplitContainerItem } from "@omegagrid/core";
2
+ import { TabItem } from "../types";
3
+ export type TabSplitContainerItem = SplitContainerItem & {
4
+ tabs?: TabItem[];
5
+ selectedIndex?: number;
6
+ container?: Partial<TabSplitContainerModel>;
7
+ parentContainer?: TabSplitContainerModel;
8
+ };
9
+ export type TabSplitContainerSource = {
10
+ orientation?: Orientation;
11
+ items?: TabSplitContainerItem[];
12
+ };
13
+ export declare class TabSplitContainerModel {
14
+ orientation: Orientation;
15
+ items: TabSplitContainerItem[];
16
+ parentItem?: TabSplitContainerItem;
17
+ constructor(sourceData?: TabSplitContainerSource);
18
+ clean(): boolean;
19
+ populate(sourceData: TabSplitContainerSource): void;
20
+ updateTab(id: string, tab: Partial<TabItem>): void;
21
+ removeTab(id: string): void;
22
+ walk(cb: (m: TabItem, container: TabSplitContainerModel) => void, container?: TabSplitContainerModel): void;
23
+ getSourceData(): TabSplitContainerSource;
24
+ }
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,GAAG;IACxD,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC5C,eAAe,CAAC,EAAE,sBAAsB,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACrC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,KAAK,CAAC,EAAE,qBAAqB,EAAE,CAAC;CAChC,CAAA;AAED,qBAAa,sBAAsB;IAElC,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,qBAAqB,EAAE,CAAM;IACpC,UAAU,CAAC,EAAE,qBAAqB,CAAC;gBAEvB,UAAU,CAAC,EAAE,uBAAuB;IAIhD,KAAK;IAiBL,QAAQ,CAAC,UAAU,EAAE,uBAAuB;IAc5C,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC;IAc3C,SAAS,CAAC,EAAE,EAAE,MAAM;IAUpB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,sBAAsB,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,sBAAsB;IAOpG,aAAa;CAmBb"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TabSplitContainerModel = void 0;
4
+ class TabSplitContainerModel {
5
+ constructor(sourceData) {
6
+ this.items = [];
7
+ if (sourceData)
8
+ this.populate(sourceData);
9
+ }
10
+ clean() {
11
+ const removeIndexes = new Set();
12
+ let clean = false;
13
+ this.items.forEach((item, i) => {
14
+ if (item.container)
15
+ clean = item.container.clean() || clean;
16
+ else if (!item.tabs || !item.tabs.length)
17
+ removeIndexes.add(i);
18
+ });
19
+ this.items = this.items.filter((_item, i) => !removeIndexes.has(i));
20
+ if (this.items.length == 1 && this.parentItem) {
21
+ this.parentItem.tabs = this.items[0].tabs;
22
+ this.parentItem.container = this.items[0].container;
23
+ this.parentItem.parentContainer = this.items[0].parentContainer;
24
+ clean = true;
25
+ }
26
+ return removeIndexes.size > 0 || clean;
27
+ }
28
+ populate(sourceData) {
29
+ this.orientation = sourceData.orientation;
30
+ this.items = sourceData.items ? (sourceData.items.map((sourceItem) => ({
31
+ tabs: sourceItem.tabs,
32
+ selectedIndex: sourceItem.selectedIndex,
33
+ container: sourceItem.container ? new TabSplitContainerModel(sourceItem.container) : null
34
+ }))) : [];
35
+ this.items.forEach(item => {
36
+ item.parentContainer = this;
37
+ if (item.container)
38
+ item.container.parentItem = item;
39
+ });
40
+ }
41
+ updateTab(id, tab) {
42
+ this.items.forEach(item => {
43
+ if (item.container)
44
+ item.container.updateTab(id, tab);
45
+ else if (item.tabs) {
46
+ for (let i = 0; i < item.tabs.length; i++) {
47
+ if (item.tabs[i].id == id) {
48
+ Object.assign(item.tabs[i], tab);
49
+ break;
50
+ }
51
+ }
52
+ }
53
+ });
54
+ }
55
+ removeTab(id) {
56
+ this.items.forEach(item => {
57
+ if (item.container)
58
+ item.container.removeTab(id);
59
+ else if (item.tabs) {
60
+ const tabIndex = item.tabs.findIndex(tab => tab.id == id);
61
+ if (tabIndex > -1)
62
+ item.tabs.splice(tabIndex, 1);
63
+ }
64
+ });
65
+ }
66
+ walk(cb, container) {
67
+ this.items.forEach(item => {
68
+ if (item.container)
69
+ item.container.walk(cb, item.container);
70
+ else if (item.tabs)
71
+ item.tabs.forEach(tab => cb(tab, container || this));
72
+ });
73
+ }
74
+ getSourceData() {
75
+ return {
76
+ orientation: this.orientation,
77
+ items: this.items.map(item => {
78
+ const modelItem = {};
79
+ modelItem.collapsed = item.collapsed;
80
+ modelItem.size = item.size;
81
+ modelItem.selectedIndex = item.selectedIndex;
82
+ if (item.container)
83
+ modelItem.container = item.container.getSourceData();
84
+ else if (item.tabs)
85
+ modelItem.tabs = item.tabs.map(tabItem => {
86
+ const item = Object.assign({}, tabItem);
87
+ delete item.unsaved;
88
+ return item;
89
+ });
90
+ return modelItem;
91
+ })
92
+ };
93
+ }
94
+ }
95
+ exports.TabSplitContainerModel = TabSplitContainerModel;
96
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { ComponentId } from "@omegagrid/core";
2
+ export type TabItem = {
3
+ id: ComponentId;
4
+ title?: string;
5
+ color?: string;
6
+ icon?: string;
7
+ unsaved?: boolean;
8
+ };
9
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,MAAM,OAAO,GAAG;IACrB,EAAE,EAAE,WAAW,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA"}
package/dist/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "@omegagrid/tabs",
3
+ "version": "0.2.5",
4
+ "license": "UNLICENSED",
5
+ "description": "Universal tabbed layout component",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "files": [
9
+ "./dist/**/*"
10
+ ],
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "https://github.com/cechi/omegagrid.git"
14
+ },
15
+ "bugs": "https://github.com/cechi/omegagrid/issues",
16
+ "author": {
17
+ "name": "Petr Čechura",
18
+ "email": "p.cechura@gmail.com",
19
+ "url": "https://cechura.eu"
20
+ },
21
+ "scripts": {
22
+ "watch": "tsc --watch",
23
+ "build": "tsc --project tsconfig.json",
24
+ "test": "jest --passWithNoTests",
25
+ "lint": "eslint **/src/**/*.ts",
26
+ "_prepack": "yarn build",
27
+ "_prepublish": "yarn test && yarn lint"
28
+ },
29
+ "dependencies": {
30
+ "@lit/localize": "^0.12.1",
31
+ "@omegagrid/core": "^0.2.5",
32
+ "lit": "^3.1.1",
33
+ "lit-html": "^3.1.1",
34
+ "ts-debounce": "^4.0.0"
35
+ },
36
+ "devDependencies": {
37
+ "@babel/core": "^7.18.13",
38
+ "@types/jest": "^29.5.11",
39
+ "@types/node": "^20.11.5",
40
+ "@types/webpack": "^5.28.0",
41
+ "@typescript-eslint/eslint-plugin": "^6.19.0",
42
+ "@typescript-eslint/parser": "^6.19.0",
43
+ "astroturf": "^1.2.0",
44
+ "babel-jest": "^29.7.0",
45
+ "babel-loader": "^9.1.3",
46
+ "eslint": "^8.56.0",
47
+ "jest": "^29.7.0",
48
+ "jest-environment-jsdom": "^29.7.0",
49
+ "ts-jest": "^29.1.1",
50
+ "ts-loader": "^9.5.1",
51
+ "ts-node": "^10.9.2",
52
+ "typescript": "5.3.2",
53
+ "webpack": "^5.89.0",
54
+ "webpack-cli": "^5.1.4",
55
+ "webpack-dev-server": "^4.15.1",
56
+ "webpack-merge": "^5.10.0"
57
+ }
58
+ }