@4i/modal-manager 1.0.0 → 1.0.1

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.
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+
3
+ var __assign = void 0 && (void 0).__assign || function () {
4
+ __assign = Object.assign || function (t) {
5
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
6
+ s = arguments[i];
7
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = void 0 && (void 0).__createBinding || (Object.create ? function (o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = {
18
+ enumerable: true,
19
+ get: function get() {
20
+ return m[k];
21
+ }
22
+ };
23
+ }
24
+ Object.defineProperty(o, k2, desc);
25
+ } : function (o, m, k, k2) {
26
+ if (k2 === undefined) k2 = k;
27
+ o[k2] = m[k];
28
+ });
29
+ var __setModuleDefault = void 0 && (void 0).__setModuleDefault || (Object.create ? function (o, v) {
30
+ Object.defineProperty(o, "default", {
31
+ enumerable: true,
32
+ value: v
33
+ });
34
+ } : function (o, v) {
35
+ o["default"] = v;
36
+ });
37
+ var __importStar = void 0 && (void 0).__importStar || function (mod) {
38
+ if (mod && mod.__esModule) return mod;
39
+ var result = {};
40
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
41
+ __setModuleDefault(result, mod);
42
+ return result;
43
+ };
44
+ var __spreadArray = void 0 && (void 0).__spreadArray || function (to, from, pack) {
45
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
46
+ if (ar || !(i in from)) {
47
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
48
+ ar[i] = from[i];
49
+ }
50
+ }
51
+ return to.concat(ar || Array.prototype.slice.call(from));
52
+ };
53
+ var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
54
+ return mod && mod.__esModule ? mod : {
55
+ "default": mod
56
+ };
57
+ };
58
+ Object.defineProperty(exports, "__esModule", {
59
+ value: true
60
+ });
61
+ var react_1 = __importStar(require("react"));
62
+ var ModalManager_1 = __importDefault(require("../utils/service/ModalManager"));
63
+ require("./backdrop.css");
64
+ var ModalManager_2 = __importDefault(require("../utils/service/ModalManager"));
65
+ var modal_list_1 = __importDefault(require("../utils/config/modal-list"));
66
+ var ModalProvider = function ModalProvider(_a) {
67
+ var CustomComponent = _a.CustomComponent;
68
+ var _b = (0, react_1.useState)([]),
69
+ data = _b[0],
70
+ setData = _b[1];
71
+ var _c = (0, react_1.useState)([]),
72
+ names = _c[0],
73
+ setNames = _c[1];
74
+ var modalRef = (0, react_1.useRef)([]);
75
+ (0, react_1.useEffect)(function () {
76
+ var handleOpenModal = function handleOpenModal(name, data) {
77
+ setData(function (prev) {
78
+ return __spreadArray(__spreadArray([], prev, true), [data], false);
79
+ });
80
+ setNames(function (prev) {
81
+ return __spreadArray(__spreadArray([], prev, true), [name], false);
82
+ });
83
+ };
84
+ var handleClose = function handleClose(position) {
85
+ if (position === "all") {
86
+ setData([]);
87
+ setNames([]);
88
+ return;
89
+ }
90
+ if (position === -1) {
91
+ // remove last
92
+ setData(function (prev) {
93
+ return prev.filter(function (_, index) {
94
+ return index !== prev.length - 1;
95
+ });
96
+ });
97
+ setNames(function (prev) {
98
+ return prev.filter(function (_, index) {
99
+ return index !== prev.length - 1;
100
+ });
101
+ });
102
+ return;
103
+ }
104
+ if (position === 0) {
105
+ // remove first
106
+ setData(function (prev) {
107
+ return prev.filter(function (_, index) {
108
+ return index !== 0;
109
+ });
110
+ });
111
+ setNames(function (prev) {
112
+ return prev.filter(function (_, index) {
113
+ return index !== 0;
114
+ });
115
+ });
116
+ return;
117
+ }
118
+ // remove position index
119
+ setData(function (prev) {
120
+ return prev.filter(function (_, index) {
121
+ return index !== prev.length - 1;
122
+ });
123
+ });
124
+ setNames(function (prev) {
125
+ return prev.filter(function (_, index) {
126
+ return index !== prev.length - 1;
127
+ });
128
+ });
129
+ };
130
+ ModalManager_1["default"].addEventListener("change", handleOpenModal);
131
+ ModalManager_1["default"].addEventListener("close", handleClose);
132
+ return function () {
133
+ ModalManager_1["default"].removeEventListener("change", handleOpenModal);
134
+ ModalManager_1["default"].removeEventListener("close", handleClose);
135
+ };
136
+ }, []);
137
+ var activeModals = names.map(function (name) {
138
+ var Component = modal_list_1["default"][name] || function () {
139
+ return react_1["default"].createElement(react_1["default"].Fragment, null);
140
+ };
141
+ return Component;
142
+ });
143
+ var handleCloseModal = function handleCloseModal(index, e) {
144
+ if (modalRef.current[index] && !modalRef.current[index].contains(e.target)) {
145
+ ModalManager_2["default"].close(index);
146
+ }
147
+ };
148
+ var refReducer = function refReducer(index, value) {
149
+ modalRef.current[index] = value;
150
+ };
151
+ return activeModals.length !== 0 && activeModals.map(function (Component, i) {
152
+ var Modal = Component;
153
+ return react_1["default"].createElement(react_1["default"].Fragment, null, CustomComponent ? react_1["default"].createElement(CustomComponent, __assign({
154
+ key: i
155
+ }, data[i])) : react_1["default"].createElement("div", {
156
+ key: i,
157
+ className: "backdrop_modal_manager",
158
+ onClick: function onClick(e) {
159
+ handleCloseModal(i, e);
160
+ }
161
+ }, react_1["default"].createElement("div", {
162
+ ref: function ref(_ref) {
163
+ refReducer(i, _ref);
164
+ }
165
+ }, react_1["default"].createElement(Modal, __assign({
166
+ key: i
167
+ }, data[i])))));
168
+ });
169
+ };
170
+ exports["default"] = ModalProvider;
package/lib/index.js ADDED
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
4
+ return mod && mod.__esModule ? mod : {
5
+ "default": mod
6
+ };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", {
9
+ value: true
10
+ });
11
+ exports.setModalActions = exports.setModalList = exports.ModalProvider = exports.modal = exports.Manager = void 0;
12
+ var Manager_1 = __importDefault(require("./utils/service/Manager"));
13
+ exports.Manager = Manager_1["default"];
14
+ var ModalManager_1 = __importDefault(require("./utils/service/ModalManager"));
15
+ exports.modal = ModalManager_1["default"];
16
+ var modal_provider_1 = __importDefault(require("./components/modal-provider"));
17
+ exports.ModalProvider = modal_provider_1["default"];
18
+ var modal_list_1 = require("./utils/config/modal-list");
19
+ Object.defineProperty(exports, "setModalList", {
20
+ enumerable: true,
21
+ get: function get() {
22
+ return modal_list_1.setModalList;
23
+ }
24
+ });
25
+ var modal_actions_1 = require("./utils/config/modal-actions");
26
+ Object.defineProperty(exports, "setModalActions", {
27
+ enumerable: true,
28
+ get: function get() {
29
+ return modal_actions_1.setModalActions;
30
+ }
31
+ });
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ var __assign = void 0 && (void 0).__assign || function () {
4
+ __assign = Object.assign || function (t) {
5
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
6
+ s = arguments[i];
7
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", {
14
+ value: true
15
+ });
16
+ exports.setModalActions = void 0;
17
+ var modalActions = {};
18
+ var setModalActions = function setModalActions(actionList) {
19
+ modalActions = __assign(__assign({}, modalActions), actionList);
20
+ };
21
+ exports.setModalActions = setModalActions;
22
+ exports["default"] = modalActions;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ var __assign = void 0 && (void 0).__assign || function () {
4
+ __assign = Object.assign || function (t) {
5
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
6
+ s = arguments[i];
7
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", {
14
+ value: true
15
+ });
16
+ exports.setModalList = void 0;
17
+ var modalList = {};
18
+ var setModalList = function setModalList(_modalList) {
19
+ modalList = __assign(__assign({}, modalList), _modalList);
20
+ };
21
+ exports.setModalList = setModalList;
22
+ exports["default"] = modalList;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var events_1 = require("events");
7
+ var Constants = {
8
+ CHANGE: "change",
9
+ CLOSE: "close"
10
+ };
11
+ var Manager = /** @class */function () {
12
+ function Manager() {
13
+ this.name = "";
14
+ this.data = {};
15
+ this.emitter = new events_1.EventEmitter();
16
+ }
17
+ Manager.prototype.addEventListener = function (event, listener) {
18
+ this.emitter.addListener(event, listener);
19
+ };
20
+ Manager.prototype.removeEventListener = function (event, listener) {
21
+ this.emitter.removeListener(event, listener);
22
+ };
23
+ return Manager;
24
+ }();
25
+ exports["default"] = Manager;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ var __extends = void 0 && (void 0).__extends || function () {
4
+ var _extendStatics = function extendStatics(d, b) {
5
+ _extendStatics = Object.setPrototypeOf || {
6
+ __proto__: []
7
+ } instanceof Array && function (d, b) {
8
+ d.__proto__ = b;
9
+ } || function (d, b) {
10
+ for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
11
+ };
12
+ return _extendStatics(d, b);
13
+ };
14
+ return function (d, b) {
15
+ if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
16
+ _extendStatics(d, b);
17
+ function __() {
18
+ this.constructor = d;
19
+ }
20
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
21
+ };
22
+ }();
23
+ var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
24
+ return mod && mod.__esModule ? mod : {
25
+ "default": mod
26
+ };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", {
29
+ value: true
30
+ });
31
+ var Manager_1 = __importDefault(require("./Manager"));
32
+ var uuid_1 = require("uuid");
33
+ var constants = {
34
+ CHANGE: "change",
35
+ CLOSE: "close"
36
+ };
37
+ var ModalManager = /** @class */function (_super) {
38
+ __extends(ModalManager, _super);
39
+ function ModalManager() {
40
+ return _super.call(this) || this;
41
+ }
42
+ ModalManager.prototype.create = function (name, data) {
43
+ this.name = name;
44
+ this.data = data;
45
+ this.emitter.emit(constants.CHANGE);
46
+ };
47
+ ModalManager.prototype.call = function (name, data) {
48
+ if (data === void 0) {
49
+ data = {};
50
+ }
51
+ this.create(name, {
52
+ modalId: (0, uuid_1.v4)(),
53
+ data: data
54
+ });
55
+ };
56
+ ModalManager.prototype.close = function (position) {
57
+ this.emitter.emit(constants.CLOSE, position);
58
+ };
59
+ return ModalManager;
60
+ }(Manager_1["default"]);
61
+ var modal = new ModalManager();
62
+ exports["default"] = modal;
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@4i/modal-manager",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "",
5
- "main": "src/index.js",
5
+ "main": "lib/index.js",
6
6
  "scripts": {
7
7
  "test": "echo \"Error: no test specified\" && exit 1",
8
- "build": "babel src -d lib"
8
+ "build": "npm run clean && tsc && babel src --out-dir lib",
9
+ "clean": "rm -rf lib"
9
10
  },
10
11
  "repository": {
11
12
  "type": "git",
@@ -28,8 +29,13 @@
28
29
  "devDependencies": {
29
30
  "@babel/cli": "^7.23.4",
30
31
  "@babel/core": "^7.23.5",
32
+ "@babel/plugin-transform-typescript": "^7.23.5",
31
33
  "@babel/preset-env": "^7.23.5",
32
34
  "@babel/preset-react": "^7.23.3",
33
- "@types/node": "^20.10.2"
35
+ "@babel/preset-typescript": "^7.23.3",
36
+ "@types/node": "^20.10.2",
37
+ "@types/react": "^18.2.40",
38
+ "@types/uuid": "^9.0.7",
39
+ "typescript": "^5.3.2"
34
40
  }
35
41
  }
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import "./backdrop.css";
3
+ interface ModalProviderProps {
4
+ CustomComponent?: React.ComponentType;
5
+ }
6
+ declare const ModalProvider: ({ CustomComponent }: ModalProviderProps) => false | React.JSX.Element[];
7
+ export default ModalProvider;
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
37
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
38
+ if (ar || !(i in from)) {
39
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
40
+ ar[i] = from[i];
41
+ }
42
+ }
43
+ return to.concat(ar || Array.prototype.slice.call(from));
44
+ };
45
+ var __importDefault = (this && this.__importDefault) || function (mod) {
46
+ return (mod && mod.__esModule) ? mod : { "default": mod };
47
+ };
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ var react_1 = __importStar(require("react"));
50
+ var ModalManager_1 = __importDefault(require("../utils/service/ModalManager"));
51
+ require("./backdrop.css");
52
+ var ModalManager_2 = __importDefault(require("../utils/service/ModalManager"));
53
+ var modal_list_1 = __importDefault(require("../utils/config/modal-list"));
54
+ var ModalProvider = function (_a) {
55
+ var CustomComponent = _a.CustomComponent;
56
+ var _b = (0, react_1.useState)([]), data = _b[0], setData = _b[1];
57
+ var _c = (0, react_1.useState)([]), names = _c[0], setNames = _c[1];
58
+ var modalRef = (0, react_1.useRef)([]);
59
+ (0, react_1.useEffect)(function () {
60
+ var handleOpenModal = function (name, data) {
61
+ setData(function (prev) { return __spreadArray(__spreadArray([], prev, true), [data], false); });
62
+ setNames(function (prev) { return __spreadArray(__spreadArray([], prev, true), [name], false); });
63
+ };
64
+ var handleClose = function (position) {
65
+ if (position === "all") {
66
+ setData([]);
67
+ setNames([]);
68
+ return;
69
+ }
70
+ if (position === -1) {
71
+ // remove last
72
+ setData(function (prev) {
73
+ return prev.filter(function (_, index) { return index !== prev.length - 1; });
74
+ });
75
+ setNames(function (prev) {
76
+ return prev.filter(function (_, index) { return index !== prev.length - 1; });
77
+ });
78
+ return;
79
+ }
80
+ if (position === 0) {
81
+ // remove first
82
+ setData(function (prev) { return prev.filter(function (_, index) { return index !== 0; }); });
83
+ setNames(function (prev) { return prev.filter(function (_, index) { return index !== 0; }); });
84
+ return;
85
+ }
86
+ // remove position index
87
+ setData(function (prev) {
88
+ return prev.filter(function (_, index) { return index !== prev.length - 1; });
89
+ });
90
+ setNames(function (prev) {
91
+ return prev.filter(function (_, index) { return index !== prev.length - 1; });
92
+ });
93
+ };
94
+ ModalManager_1.default.addEventListener("change", handleOpenModal);
95
+ ModalManager_1.default.addEventListener("close", handleClose);
96
+ return function () {
97
+ ModalManager_1.default.removeEventListener("change", handleOpenModal);
98
+ ModalManager_1.default.removeEventListener("close", handleClose);
99
+ };
100
+ }, []);
101
+ var activeModals = names.map(function (name) {
102
+ var Component = modal_list_1.default[name] || (function () { return react_1.default.createElement(react_1.default.Fragment, null); });
103
+ return Component;
104
+ });
105
+ var handleCloseModal = function (index, e) {
106
+ if (modalRef.current[index] &&
107
+ !modalRef.current[index].contains(e.target)) {
108
+ ModalManager_2.default.close(index);
109
+ }
110
+ };
111
+ var refReducer = function (index, value) {
112
+ modalRef.current[index] = value;
113
+ };
114
+ return (activeModals.length !== 0 &&
115
+ activeModals.map(function (Component, i) {
116
+ var Modal = Component;
117
+ return (react_1.default.createElement(react_1.default.Fragment, null, CustomComponent ? (react_1.default.createElement(CustomComponent, __assign({ key: i }, data[i]))) : (react_1.default.createElement("div", { key: i, className: "backdrop_modal_manager", onClick: function (e) {
118
+ handleCloseModal(i, e);
119
+ } },
120
+ react_1.default.createElement("div", { ref: function (ref) {
121
+ refReducer(i, ref);
122
+ } },
123
+ react_1.default.createElement(Modal, __assign({ key: i }, data[i])))))));
124
+ }));
125
+ };
126
+ exports.default = ModalProvider;
@@ -8,18 +8,20 @@ interface ModalProviderProps {
8
8
  CustomComponent?: React.ComponentType;
9
9
  }
10
10
 
11
+ type TData = { [key: string]: any };
12
+
11
13
  const ModalProvider = ({ CustomComponent }: ModalProviderProps) => {
12
- const [data, setData] = useState([]);
13
- const [names, setNames] = useState([]);
14
- const modalRef = useRef([]);
14
+ const [data, setData] = useState<TData[]>([]);
15
+ const [names, setNames] = useState<string[]>([]);
16
+ const modalRef = useRef<any[]>([]);
15
17
 
16
18
  useEffect(() => {
17
- const handleOpenModal = (name, data) => {
18
- setData((prev) => [...prev, data]);
19
- setNames((prev) => [...prev, name]);
19
+ const handleOpenModal = (name: string, data: TData) => {
20
+ setData((prev: TData[]) => [...prev, data]);
21
+ setNames((prev: string[]) => [...prev, name]);
20
22
  };
21
23
 
22
- const handleClose = (position) => {
24
+ const handleClose = (position: number | string) => {
23
25
  if (position === "all") {
24
26
  setData([]);
25
27
  setNames([]);
@@ -28,8 +30,10 @@ const ModalProvider = ({ CustomComponent }: ModalProviderProps) => {
28
30
 
29
31
  if (position === -1) {
30
32
  // remove last
31
- setData((prev) => prev.filter((_, index) => index !== prev.length - 1));
32
- setNames((prev) =>
33
+ setData((prev: TData[]) =>
34
+ prev.filter((_, index) => index !== prev.length - 1)
35
+ );
36
+ setNames((prev: string[]) =>
33
37
  prev.filter((_, index) => index !== prev.length - 1)
34
38
  );
35
39
  return;
@@ -37,14 +41,18 @@ const ModalProvider = ({ CustomComponent }: ModalProviderProps) => {
37
41
 
38
42
  if (position === 0) {
39
43
  // remove first
40
- setData((prev) => prev.filter((_, index) => index !== 0));
41
- setNames((prev) => prev.filter((_, index) => index !== 0));
44
+ setData((prev: TData[]) => prev.filter((_, index) => index !== 0));
45
+ setNames((prev: string[]) => prev.filter((_, index) => index !== 0));
42
46
  return;
43
47
  }
44
48
 
45
49
  // remove position index
46
- setData((prev) => prev.filter((_, index) => index !== prev.length - 1));
47
- setNames((prev) => prev.filter((_, index) => index !== prev.length - 1));
50
+ setData((prev: TData[]) =>
51
+ prev.filter((_, index) => index !== prev.length - 1)
52
+ );
53
+ setNames((prev: string[]) =>
54
+ prev.filter((_, index) => index !== prev.length - 1)
55
+ );
48
56
  };
49
57
 
50
58
  manager.addEventListener("change", handleOpenModal);
@@ -55,12 +63,12 @@ const ModalProvider = ({ CustomComponent }: ModalProviderProps) => {
55
63
  };
56
64
  }, []);
57
65
 
58
- const activeModals = names.map((name) => {
66
+ const activeModals = names.map((name: string) => {
59
67
  const Component = modalList[name] || (() => <></>);
60
68
  return Component;
61
69
  });
62
70
 
63
- const handleCloseModal = (index, e) => {
71
+ const handleCloseModal = (index: number, e: any) => {
64
72
  if (
65
73
  modalRef.current[index] &&
66
74
  !modalRef.current[index].contains(e.target)
@@ -69,7 +77,7 @@ const ModalProvider = ({ CustomComponent }: ModalProviderProps) => {
69
77
  }
70
78
  };
71
79
 
72
- const refReducer = (index, value) => {
80
+ const refReducer = (index: number, value: any) => {
73
81
  modalRef.current[index] = value;
74
82
  };
75
83
 
package/src/index.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ import Manager from "./utils/service/Manager";
2
+ import modal from "./utils/service/ModalManager";
3
+ import ModalProvider from "./components/modal-provider";
4
+ import { setModalList } from "./utils/config/modal-list";
5
+ import { setModalActions } from "./utils/config/modal-actions";
6
+ export { Manager, modal, ModalProvider, setModalList, setModalActions };
package/src/index.js ADDED
@@ -0,0 +1,16 @@
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.setModalActions = exports.setModalList = exports.ModalProvider = exports.modal = exports.Manager = void 0;
7
+ var Manager_1 = __importDefault(require("./utils/service/Manager"));
8
+ exports.Manager = Manager_1.default;
9
+ var ModalManager_1 = __importDefault(require("./utils/service/ModalManager"));
10
+ exports.modal = ModalManager_1.default;
11
+ var modal_provider_1 = __importDefault(require("./components/modal-provider"));
12
+ exports.ModalProvider = modal_provider_1.default;
13
+ var modal_list_1 = require("./utils/config/modal-list");
14
+ Object.defineProperty(exports, "setModalList", { enumerable: true, get: function () { return modal_list_1.setModalList; } });
15
+ var modal_actions_1 = require("./utils/config/modal-actions");
16
+ Object.defineProperty(exports, "setModalActions", { enumerable: true, get: function () { return modal_actions_1.setModalActions; } });
@@ -0,0 +1,6 @@
1
+ declare let modalActions: {};
2
+ interface ModalActions {
3
+ [key: string]: string;
4
+ }
5
+ export declare const setModalActions: (actionList: ModalActions) => void;
6
+ export default modalActions;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.setModalActions = void 0;
15
+ var modalActions = {};
16
+ var setModalActions = function (actionList) {
17
+ modalActions = __assign(__assign({}, modalActions), actionList);
18
+ };
19
+ exports.setModalActions = setModalActions;
20
+ exports.default = modalActions;
@@ -0,0 +1,6 @@
1
+ export interface ModalList {
2
+ [key: string]: string;
3
+ }
4
+ declare let modalList: ModalList;
5
+ export declare const setModalList: (_modalList: ModalList) => void;
6
+ export default modalList;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.setModalList = void 0;
15
+ var modalList = {};
16
+ var setModalList = function (_modalList) {
17
+ modalList = __assign(__assign({}, modalList), _modalList);
18
+ };
19
+ exports.setModalList = setModalList;
20
+ exports.default = modalList;
@@ -1,9 +1,9 @@
1
- let modalList = {};
2
-
3
- interface ModalList {
1
+ export interface ModalList {
4
2
  [key: string]: string;
5
3
  }
6
4
 
5
+ let modalList: ModalList = {};
6
+
7
7
  export const setModalList = (_modalList: ModalList) => {
8
8
  modalList = { ...modalList, ..._modalList };
9
9
  };
@@ -0,0 +1,13 @@
1
+ /// <reference types="node" />
2
+ import { EventEmitter } from "events";
3
+ declare class Manager {
4
+ emitter: EventEmitter;
5
+ name: string;
6
+ data: {
7
+ [key: string]: any;
8
+ };
9
+ constructor();
10
+ addEventListener(event: string, listener: (...args: any[]) => void): void;
11
+ removeEventListener(event: string, listener: (...args: any[]) => void): void;
12
+ }
13
+ export default Manager;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var events_1 = require("events");
4
+ var Constants = {
5
+ CHANGE: "change",
6
+ CLOSE: "close",
7
+ };
8
+ var Manager = /** @class */ (function () {
9
+ function Manager() {
10
+ this.name = "";
11
+ this.data = {};
12
+ this.emitter = new events_1.EventEmitter();
13
+ }
14
+ Manager.prototype.addEventListener = function (event, listener) {
15
+ this.emitter.addListener(event, listener);
16
+ };
17
+ Manager.prototype.removeEventListener = function (event, listener) {
18
+ this.emitter.removeListener(event, listener);
19
+ };
20
+ return Manager;
21
+ }());
22
+ exports.default = Manager;
@@ -15,6 +15,8 @@ class Manager {
15
15
  data: { [key: string]: any };
16
16
 
17
17
  constructor() {
18
+ this.name = "";
19
+ this.data = {};
18
20
  this.emitter = new EventEmitter();
19
21
  }
20
22
 
@@ -0,0 +1,11 @@
1
+ import Manager from "./Manager";
2
+ declare class ModalManager extends Manager {
3
+ constructor();
4
+ create(name: string, data: {
5
+ [key: string]: any;
6
+ }): void;
7
+ call(name: string, data?: any): void;
8
+ close(position?: number): void;
9
+ }
10
+ declare const modal: ModalManager;
11
+ export default modal;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ var Manager_1 = __importDefault(require("./Manager"));
22
+ var uuid_1 = require("uuid");
23
+ var constants = {
24
+ CHANGE: "change",
25
+ CLOSE: "close",
26
+ };
27
+ var ModalManager = /** @class */ (function (_super) {
28
+ __extends(ModalManager, _super);
29
+ function ModalManager() {
30
+ return _super.call(this) || this;
31
+ }
32
+ ModalManager.prototype.create = function (name, data) {
33
+ this.name = name;
34
+ this.data = data;
35
+ this.emitter.emit(constants.CHANGE);
36
+ };
37
+ ModalManager.prototype.call = function (name, data) {
38
+ if (data === void 0) { data = {}; }
39
+ this.create(name, { modalId: (0, uuid_1.v4)(), data: data });
40
+ };
41
+ ModalManager.prototype.close = function (position) {
42
+ this.emitter.emit(constants.CLOSE, position);
43
+ };
44
+ return ModalManager;
45
+ }(Manager_1.default));
46
+ var modal = new ModalManager();
47
+ exports.default = modal;
@@ -11,7 +11,7 @@ class ModalManager extends Manager {
11
11
  super();
12
12
  }
13
13
 
14
- create(name: string, data) {
14
+ create(name: string, data: { [key: string]: any }) {
15
15
  this.name = name;
16
16
  this.data = data;
17
17
  this.emitter.emit(constants.CHANGE);
package/tsconfig.json ADDED
@@ -0,0 +1,16 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "es5",
4
+ "module": "commonjs",
5
+ "jsx": "react",
6
+ "strict": true,
7
+ "esModuleInterop": true,
8
+ "skipLibCheck": true,
9
+ "forceConsistentCasingInFileNames": true,
10
+ "moduleResolution": "node",
11
+ "declaration": true,
12
+ "outDir": "./src"
13
+ },
14
+ "include": ["src/**/*.ts", "src/**/*.tsx"],
15
+ "exclude": ["node_modules"]
16
+ }
package/.babelrc DELETED
@@ -1,3 +0,0 @@
1
- {
2
- "presets": ["@babel/preset-env", "@babel/preset-react"]
3
- }