@4i/modal-manager 1.0.0 → 1.0.2

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,169 @@
1
+ "use strict";
2
+
3
+ var __assign = this && this.__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 = 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 = {
18
+ enumerable: true,
19
+ get: function () {
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 = this && this.__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 = this && this.__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 = this && this.__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 = this && this.__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
+ var ModalManager_2 = __importDefault(require("../utils/service/ModalManager"));
64
+ var modal_list_1 = __importDefault(require("../utils/config/modal-list"));
65
+ var ModalProvider = function (_a) {
66
+ var CustomComponent = _a.CustomComponent;
67
+ var _b = (0, react_1.useState)([]),
68
+ data = _b[0],
69
+ setData = _b[1];
70
+ var _c = (0, react_1.useState)([]),
71
+ names = _c[0],
72
+ setNames = _c[1];
73
+ var modalRef = (0, react_1.useRef)([]);
74
+ (0, react_1.useEffect)(function () {
75
+ var handleOpenModal = function (name, data) {
76
+ setData(function (prev) {
77
+ return __spreadArray(__spreadArray([], prev, true), [data], false);
78
+ });
79
+ setNames(function (prev) {
80
+ return __spreadArray(__spreadArray([], prev, true), [name], false);
81
+ });
82
+ };
83
+ var handleClose = function (position) {
84
+ if (position === "all") {
85
+ setData([]);
86
+ setNames([]);
87
+ return;
88
+ }
89
+ if (position === -1) {
90
+ // remove last
91
+ setData(function (prev) {
92
+ return prev.filter(function (_, index) {
93
+ return index !== prev.length - 1;
94
+ });
95
+ });
96
+ setNames(function (prev) {
97
+ return prev.filter(function (_, index) {
98
+ return index !== prev.length - 1;
99
+ });
100
+ });
101
+ return;
102
+ }
103
+ if (position === 0) {
104
+ // remove first
105
+ setData(function (prev) {
106
+ return prev.filter(function (_, index) {
107
+ return index !== 0;
108
+ });
109
+ });
110
+ setNames(function (prev) {
111
+ return prev.filter(function (_, index) {
112
+ return index !== 0;
113
+ });
114
+ });
115
+ return;
116
+ }
117
+ // remove position index
118
+ setData(function (prev) {
119
+ return prev.filter(function (_, index) {
120
+ return index !== prev.length - 1;
121
+ });
122
+ });
123
+ setNames(function (prev) {
124
+ return prev.filter(function (_, index) {
125
+ return index !== prev.length - 1;
126
+ });
127
+ });
128
+ };
129
+ ModalManager_1.default.addEventListener("change", handleOpenModal);
130
+ ModalManager_1.default.addEventListener("close", handleClose);
131
+ return function () {
132
+ ModalManager_1.default.removeEventListener("change", handleOpenModal);
133
+ ModalManager_1.default.removeEventListener("close", handleClose);
134
+ };
135
+ }, []);
136
+ var activeModals = names.map(function (name) {
137
+ var Component = modal_list_1.default[name] || function () {
138
+ return react_1.default.createElement(react_1.default.Fragment, null);
139
+ };
140
+ return Component;
141
+ });
142
+ var handleCloseModal = function (index, e) {
143
+ if (modalRef.current[index] && !modalRef.current[index].contains(e.target)) {
144
+ ModalManager_2.default.close(index);
145
+ }
146
+ };
147
+ var refReducer = function (index, value) {
148
+ modalRef.current[index] = value;
149
+ };
150
+ return activeModals.length !== 0 && activeModals.map(function (Component, i) {
151
+ var Modal = Component;
152
+ return react_1.default.createElement(react_1.default.Fragment, null, CustomComponent ? react_1.default.createElement(CustomComponent, __assign({
153
+ key: i
154
+ }, data[i])) : react_1.default.createElement("div", {
155
+ key: i,
156
+ className: "backdrop_modal_manager",
157
+ onClick: function (e) {
158
+ handleCloseModal(i, e);
159
+ }
160
+ }, react_1.default.createElement("div", {
161
+ ref: function (ref) {
162
+ refReducer(i, ref);
163
+ }
164
+ }, react_1.default.createElement(Modal, __assign({
165
+ key: i
166
+ }, data[i])))));
167
+ });
168
+ };
169
+ exports.default = ModalProvider;
package/lib/index.js ADDED
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ var __importDefault = this && this.__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 () {
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 () {
29
+ return modal_actions_1.setModalActions;
30
+ }
31
+ });
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ var __assign = this && this.__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 (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 = this && this.__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 (_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 = this && this.__extends || function () {
4
+ var extendStatics = function (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 = this && this.__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.2",
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 && cp src/styles.css 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,6 @@
1
+ import React from "react";
2
+ interface ModalProviderProps {
3
+ CustomComponent?: React.ComponentType;
4
+ }
5
+ declare const ModalProvider: ({ CustomComponent }: ModalProviderProps) => false | React.JSX.Element[];
6
+ export default ModalProvider;
@@ -0,0 +1,125 @@
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
+ var ModalManager_2 = __importDefault(require("../utils/service/ModalManager"));
52
+ var modal_list_1 = __importDefault(require("../utils/config/modal-list"));
53
+ var ModalProvider = function (_a) {
54
+ var CustomComponent = _a.CustomComponent;
55
+ var _b = (0, react_1.useState)([]), data = _b[0], setData = _b[1];
56
+ var _c = (0, react_1.useState)([]), names = _c[0], setNames = _c[1];
57
+ var modalRef = (0, react_1.useRef)([]);
58
+ (0, react_1.useEffect)(function () {
59
+ var handleOpenModal = function (name, data) {
60
+ setData(function (prev) { return __spreadArray(__spreadArray([], prev, true), [data], false); });
61
+ setNames(function (prev) { return __spreadArray(__spreadArray([], prev, true), [name], false); });
62
+ };
63
+ var handleClose = function (position) {
64
+ if (position === "all") {
65
+ setData([]);
66
+ setNames([]);
67
+ return;
68
+ }
69
+ if (position === -1) {
70
+ // remove last
71
+ setData(function (prev) {
72
+ return prev.filter(function (_, index) { return index !== prev.length - 1; });
73
+ });
74
+ setNames(function (prev) {
75
+ return prev.filter(function (_, index) { return index !== prev.length - 1; });
76
+ });
77
+ return;
78
+ }
79
+ if (position === 0) {
80
+ // remove first
81
+ setData(function (prev) { return prev.filter(function (_, index) { return index !== 0; }); });
82
+ setNames(function (prev) { return prev.filter(function (_, index) { return index !== 0; }); });
83
+ return;
84
+ }
85
+ // remove position index
86
+ setData(function (prev) {
87
+ return prev.filter(function (_, index) { return index !== prev.length - 1; });
88
+ });
89
+ setNames(function (prev) {
90
+ return prev.filter(function (_, index) { return index !== prev.length - 1; });
91
+ });
92
+ };
93
+ ModalManager_1.default.addEventListener("change", handleOpenModal);
94
+ ModalManager_1.default.addEventListener("close", handleClose);
95
+ return function () {
96
+ ModalManager_1.default.removeEventListener("change", handleOpenModal);
97
+ ModalManager_1.default.removeEventListener("close", handleClose);
98
+ };
99
+ }, []);
100
+ var activeModals = names.map(function (name) {
101
+ var Component = modal_list_1.default[name] || (function () { return react_1.default.createElement(react_1.default.Fragment, null); });
102
+ return Component;
103
+ });
104
+ var handleCloseModal = function (index, e) {
105
+ if (modalRef.current[index] &&
106
+ !modalRef.current[index].contains(e.target)) {
107
+ ModalManager_2.default.close(index);
108
+ }
109
+ };
110
+ var refReducer = function (index, value) {
111
+ modalRef.current[index] = value;
112
+ };
113
+ return (activeModals.length !== 0 &&
114
+ activeModals.map(function (Component, i) {
115
+ var Modal = Component;
116
+ 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) {
117
+ handleCloseModal(i, e);
118
+ } },
119
+ react_1.default.createElement("div", { ref: function (ref) {
120
+ refReducer(i, ref);
121
+ } },
122
+ react_1.default.createElement(Modal, __assign({ key: i }, data[i])))))));
123
+ }));
124
+ };
125
+ exports.default = ModalProvider;
@@ -1,6 +1,5 @@
1
1
  import React, { useEffect, useRef, useState } from "react";
2
2
  import manager from "../utils/service/ModalManager";
3
- import "./backdrop.css";
4
3
  import modal from "../utils/service/ModalManager";
5
4
  import modalList from "../utils/config/modal-list";
6
5
 
@@ -8,18 +7,20 @@ interface ModalProviderProps {
8
7
  CustomComponent?: React.ComponentType;
9
8
  }
10
9
 
10
+ type TData = { [key: string]: any };
11
+
11
12
  const ModalProvider = ({ CustomComponent }: ModalProviderProps) => {
12
- const [data, setData] = useState([]);
13
- const [names, setNames] = useState([]);
14
- const modalRef = useRef([]);
13
+ const [data, setData] = useState<TData[]>([]);
14
+ const [names, setNames] = useState<string[]>([]);
15
+ const modalRef = useRef<any[]>([]);
15
16
 
16
17
  useEffect(() => {
17
- const handleOpenModal = (name, data) => {
18
- setData((prev) => [...prev, data]);
19
- setNames((prev) => [...prev, name]);
18
+ const handleOpenModal = (name: string, data: TData) => {
19
+ setData((prev: TData[]) => [...prev, data]);
20
+ setNames((prev: string[]) => [...prev, name]);
20
21
  };
21
22
 
22
- const handleClose = (position) => {
23
+ const handleClose = (position: number | string) => {
23
24
  if (position === "all") {
24
25
  setData([]);
25
26
  setNames([]);
@@ -28,8 +29,10 @@ const ModalProvider = ({ CustomComponent }: ModalProviderProps) => {
28
29
 
29
30
  if (position === -1) {
30
31
  // remove last
31
- setData((prev) => prev.filter((_, index) => index !== prev.length - 1));
32
- setNames((prev) =>
32
+ setData((prev: TData[]) =>
33
+ prev.filter((_, index) => index !== prev.length - 1)
34
+ );
35
+ setNames((prev: string[]) =>
33
36
  prev.filter((_, index) => index !== prev.length - 1)
34
37
  );
35
38
  return;
@@ -37,14 +40,18 @@ const ModalProvider = ({ CustomComponent }: ModalProviderProps) => {
37
40
 
38
41
  if (position === 0) {
39
42
  // remove first
40
- setData((prev) => prev.filter((_, index) => index !== 0));
41
- setNames((prev) => prev.filter((_, index) => index !== 0));
43
+ setData((prev: TData[]) => prev.filter((_, index) => index !== 0));
44
+ setNames((prev: string[]) => prev.filter((_, index) => index !== 0));
42
45
  return;
43
46
  }
44
47
 
45
48
  // remove position index
46
- setData((prev) => prev.filter((_, index) => index !== prev.length - 1));
47
- setNames((prev) => prev.filter((_, index) => index !== prev.length - 1));
49
+ setData((prev: TData[]) =>
50
+ prev.filter((_, index) => index !== prev.length - 1)
51
+ );
52
+ setNames((prev: string[]) =>
53
+ prev.filter((_, index) => index !== prev.length - 1)
54
+ );
48
55
  };
49
56
 
50
57
  manager.addEventListener("change", handleOpenModal);
@@ -55,12 +62,12 @@ const ModalProvider = ({ CustomComponent }: ModalProviderProps) => {
55
62
  };
56
63
  }, []);
57
64
 
58
- const activeModals = names.map((name) => {
65
+ const activeModals = names.map((name: string) => {
59
66
  const Component = modalList[name] || (() => <></>);
60
67
  return Component;
61
68
  });
62
69
 
63
- const handleCloseModal = (index, e) => {
70
+ const handleCloseModal = (index: number, e: any) => {
64
71
  if (
65
72
  modalRef.current[index] &&
66
73
  !modalRef.current[index].contains(e.target)
@@ -69,7 +76,7 @@ const ModalProvider = ({ CustomComponent }: ModalProviderProps) => {
69
76
  }
70
77
  };
71
78
 
72
- const refReducer = (index, value) => {
79
+ const refReducer = (index: number, value: any) => {
73
80
  modalRef.current[index] = value;
74
81
  };
75
82
 
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; } });
package/src/styles.css ADDED
@@ -0,0 +1,44 @@
1
+ @keyframes bg_opacity_scale {
2
+ from {
3
+ transform: scale(0.8);
4
+ }
5
+ to {
6
+ transform: scale(1);
7
+ }
8
+ }
9
+
10
+ @keyframes bg_opacity {
11
+ from {
12
+ opacity: 0;
13
+ }
14
+ to {
15
+ opacity: 1;
16
+ }
17
+ }
18
+
19
+ .backdrop_modal_manager {
20
+ position: absolute;
21
+ display: flex;
22
+ justify-content: center;
23
+ align-items: center;
24
+ top: 0;
25
+ left: 0;
26
+ right: 0;
27
+ bottom: 0;
28
+ width: 100%;
29
+ height: 100%;
30
+ background-color: rgba(0, 0, 0, 0.5);
31
+ position: fixed;
32
+ z-index: 1000;
33
+ opacity: 0;
34
+ animation: bg_opacity 150ms ease-in-out forwards;
35
+ }
36
+
37
+ .backdrop_modal_manager > div {
38
+ animation: bg_opacity_scale 150ms ease-in-out forwards;
39
+ }
40
+
41
+ .main_container_modal_manager {
42
+ opacity: 0;
43
+ animation: bg_opacity 250ms forwards;
44
+ }
@@ -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
- }
File without changes