powr-sdk-web 2.4.0 → 3.0.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.
- package/dist/chat/index.js +12 -3
- package/dist/index.js +12 -5
- package/dist/invoices/index.js +140 -0
- package/dist/plexx/admin.js +647 -0
- package/package.json +1 -1
package/dist/chat/index.js
CHANGED
|
@@ -100,7 +100,9 @@ var PowrBaseChat = function PowrBaseChat(_ref) {
|
|
|
100
100
|
var options,
|
|
101
101
|
token,
|
|
102
102
|
url,
|
|
103
|
+
separator,
|
|
103
104
|
config,
|
|
105
|
+
bodyWithProjectId,
|
|
104
106
|
response,
|
|
105
107
|
data,
|
|
106
108
|
_args = arguments;
|
|
@@ -109,16 +111,23 @@ var PowrBaseChat = function PowrBaseChat(_ref) {
|
|
|
109
111
|
case 0:
|
|
110
112
|
options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
|
|
111
113
|
token = getAuthToken();
|
|
112
|
-
url = "".concat(apiUrl).concat(endpoint);
|
|
114
|
+
url = "".concat(apiUrl).concat(endpoint); // Add projectId as query parameter for GET requests
|
|
115
|
+
if (!options.method || options.method === 'GET') {
|
|
116
|
+
separator = endpoint.includes('?') ? '&' : '?';
|
|
117
|
+
url = "".concat(url).concat(separator, "projectId=").concat(projectId);
|
|
118
|
+
}
|
|
113
119
|
config = _objectSpread({
|
|
114
120
|
headers: _objectSpread(_objectSpread({
|
|
115
121
|
'Content-Type': 'application/json'
|
|
116
122
|
}, token && {
|
|
117
123
|
'Authorization': "Bearer ".concat(token)
|
|
118
124
|
}), options.headers)
|
|
119
|
-
}, options);
|
|
125
|
+
}, options); // Add projectId to body for POST/PUT requests
|
|
120
126
|
if (options.body) {
|
|
121
|
-
|
|
127
|
+
bodyWithProjectId = _objectSpread(_objectSpread({}, options.body), {}, {
|
|
128
|
+
projectId: projectId
|
|
129
|
+
});
|
|
130
|
+
config.body = JSON.stringify(bodyWithProjectId);
|
|
122
131
|
}
|
|
123
132
|
_context.n = 1;
|
|
124
133
|
return fetch(url, config);
|
package/dist/index.js
CHANGED
|
@@ -42,7 +42,7 @@ Object.defineProperty(exports, "PowrBaseFormsAdmin", {
|
|
|
42
42
|
Object.defineProperty(exports, "PowrBaseInvoice", {
|
|
43
43
|
enumerable: true,
|
|
44
44
|
get: function get() {
|
|
45
|
-
return
|
|
45
|
+
return _invoices["default"];
|
|
46
46
|
}
|
|
47
47
|
});
|
|
48
48
|
Object.defineProperty(exports, "PowrBaseInvoicesAdmin", {
|
|
@@ -69,6 +69,12 @@ Object.defineProperty(exports, "PowrBaseNotificationsAdmin", {
|
|
|
69
69
|
return _admin5["default"];
|
|
70
70
|
}
|
|
71
71
|
});
|
|
72
|
+
Object.defineProperty(exports, "PowrBasePlexxAdmin", {
|
|
73
|
+
enumerable: true,
|
|
74
|
+
get: function get() {
|
|
75
|
+
return _admin7["default"];
|
|
76
|
+
}
|
|
77
|
+
});
|
|
72
78
|
Object.defineProperty(exports, "PowrBaseReviews", {
|
|
73
79
|
enumerable: true,
|
|
74
80
|
get: function get() {
|
|
@@ -117,23 +123,24 @@ Object.defineProperty(exports, "PowrWaitListAdmin", {
|
|
|
117
123
|
return _admin["default"];
|
|
118
124
|
}
|
|
119
125
|
});
|
|
126
|
+
var _table = _interopRequireDefault(require("./table"));
|
|
120
127
|
var _swiper = _interopRequireDefault(require("./swiper"));
|
|
121
128
|
var _reviews = _interopRequireDefault(require("./reviews"));
|
|
122
129
|
var _uploader = _interopRequireDefault(require("./uploader"));
|
|
123
130
|
var _comments = _interopRequireDefault(require("./comments"));
|
|
124
|
-
var
|
|
131
|
+
var _invoices = _interopRequireDefault(require("./invoices"));
|
|
125
132
|
var _waitlists = _interopRequireDefault(require("./waitlists"));
|
|
126
|
-
var _admin = _interopRequireDefault(require("./waitlists/admin"));
|
|
127
133
|
var _activities = _interopRequireDefault(require("./activities"));
|
|
128
134
|
var _blogs = _interopRequireDefault(require("./blogs"));
|
|
129
135
|
var _likes = _interopRequireDefault(require("./likes"));
|
|
130
136
|
var _auth = _interopRequireDefault(require("./auth"));
|
|
131
137
|
var _forms = _interopRequireDefault(require("./forms"));
|
|
138
|
+
var _chat = _interopRequireDefault(require("./chat"));
|
|
139
|
+
var _admin = _interopRequireDefault(require("./waitlists/admin"));
|
|
132
140
|
var _admin2 = _interopRequireDefault(require("./forms/admin"));
|
|
133
141
|
var _admin3 = _interopRequireDefault(require("./slides/admin"));
|
|
134
142
|
var _admin4 = _interopRequireDefault(require("./invoices/admin"));
|
|
135
143
|
var _admin5 = _interopRequireDefault(require("./notifications/admin"));
|
|
136
144
|
var _admin6 = _interopRequireDefault(require("./users/admin"));
|
|
137
|
-
var
|
|
138
|
-
var _chat = _interopRequireDefault(require("./chat"));
|
|
145
|
+
var _admin7 = _interopRequireDefault(require("./plexx/admin"));
|
|
139
146
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
|
|
10
|
+
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
11
|
+
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
12
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
13
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
14
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
15
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
16
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
17
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
18
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
19
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
20
|
+
var PowrBaseInvoice = function PowrBaseInvoice(_ref) {
|
|
21
|
+
var _invoice$customerInfo, _invoice$customerInfo2, _invoice$customerInfo3, _invoice$customerInfo4, _invoice$serviceSecti, _invoice$serviceSecti2, _invoice$serviceSecti3, _invoice$paymentSecti, _invoice$paymentSecti2, _invoice$paymentSecti3, _invoice$paymentSecti4, _invoice$serviceSecti4, _invoice$serviceSecti5;
|
|
22
|
+
var projectId = _ref.projectId,
|
|
23
|
+
invoiceId = _ref.invoiceId;
|
|
24
|
+
var _useState = (0, _react.useState)(null),
|
|
25
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
26
|
+
invoice = _useState2[0],
|
|
27
|
+
setInvoice = _useState2[1];
|
|
28
|
+
var _useState3 = (0, _react.useState)(true),
|
|
29
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
30
|
+
loading = _useState4[0],
|
|
31
|
+
setLoading = _useState4[1];
|
|
32
|
+
(0, _react.useEffect)(function () {
|
|
33
|
+
var fetchInvoice = /*#__PURE__*/function () {
|
|
34
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
35
|
+
var response, data, _t;
|
|
36
|
+
return _regenerator().w(function (_context) {
|
|
37
|
+
while (1) switch (_context.n) {
|
|
38
|
+
case 0:
|
|
39
|
+
_context.p = 0;
|
|
40
|
+
_context.n = 1;
|
|
41
|
+
return fetch("https://api.powrbase.cloud/invoice/".concat(invoiceId, "?projectId=").concat(projectId));
|
|
42
|
+
case 1:
|
|
43
|
+
response = _context.v;
|
|
44
|
+
_context.n = 2;
|
|
45
|
+
return response.json();
|
|
46
|
+
case 2:
|
|
47
|
+
data = _context.v;
|
|
48
|
+
setInvoice(data === null || data === void 0 ? void 0 : data.invoice);
|
|
49
|
+
_context.n = 4;
|
|
50
|
+
break;
|
|
51
|
+
case 3:
|
|
52
|
+
_context.p = 3;
|
|
53
|
+
_t = _context.v;
|
|
54
|
+
console.error("Error fetching invoice:", _t);
|
|
55
|
+
case 4:
|
|
56
|
+
_context.p = 4;
|
|
57
|
+
setLoading(false);
|
|
58
|
+
return _context.f(4);
|
|
59
|
+
case 5:
|
|
60
|
+
return _context.a(2);
|
|
61
|
+
}
|
|
62
|
+
}, _callee, null, [[0, 3, 4, 5]]);
|
|
63
|
+
}));
|
|
64
|
+
return function fetchInvoice() {
|
|
65
|
+
return _ref2.apply(this, arguments);
|
|
66
|
+
};
|
|
67
|
+
}();
|
|
68
|
+
fetchInvoice();
|
|
69
|
+
}, [invoiceId, projectId]);
|
|
70
|
+
if (loading) return /*#__PURE__*/_react["default"].createElement("div", null, "Loading...");
|
|
71
|
+
if (!invoice) return /*#__PURE__*/_react["default"].createElement("div", null, "No invoice found.");
|
|
72
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
73
|
+
className: "z-50 flex items-center justify-center"
|
|
74
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
75
|
+
className: "bg-white rounded-lg shadow-lg max-w-3xl w-full p-4 md:p-8 relative flex flex-col md:flex-row gap-8",
|
|
76
|
+
style: {
|
|
77
|
+
maxHeight: "90vh",
|
|
78
|
+
overflowY: "auto",
|
|
79
|
+
margin: "5vw",
|
|
80
|
+
boxSizing: "border-box"
|
|
81
|
+
}
|
|
82
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
83
|
+
className: "flex-1 min-w-0"
|
|
84
|
+
}, /*#__PURE__*/_react["default"].createElement("h2", {
|
|
85
|
+
className: "text-2xl font-bold mb-6"
|
|
86
|
+
}, "Invoice Details"), /*#__PURE__*/_react["default"].createElement("div", {
|
|
87
|
+
className: "mb-4"
|
|
88
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
89
|
+
className: "text-lg font-semibold"
|
|
90
|
+
}, invoice.invoiceNumber), /*#__PURE__*/_react["default"].createElement("div", {
|
|
91
|
+
className: "text-gray-500 text-sm"
|
|
92
|
+
}, "Issued: ", invoice.dateOfIssue), /*#__PURE__*/_react["default"].createElement("div", {
|
|
93
|
+
className: "text-sm mt-2"
|
|
94
|
+
}, "Status:", " ", /*#__PURE__*/_react["default"].createElement("span", {
|
|
95
|
+
className: invoice.paymentStatus === "Paid" ? "text-green-600" : "text-yellow-600"
|
|
96
|
+
}, invoice.paymentStatus))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
97
|
+
className: "mb-4"
|
|
98
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
99
|
+
className: "font-semibold mb-1"
|
|
100
|
+
}, "Customer"), /*#__PURE__*/_react["default"].createElement("div", {
|
|
101
|
+
className: "text-sm"
|
|
102
|
+
}, (_invoice$customerInfo = invoice.customerInfo) === null || _invoice$customerInfo === void 0 ? void 0 : _invoice$customerInfo.name), /*#__PURE__*/_react["default"].createElement("div", {
|
|
103
|
+
className: "text-sm text-gray-500"
|
|
104
|
+
}, (_invoice$customerInfo2 = invoice.customerInfo) === null || _invoice$customerInfo2 === void 0 ? void 0 : _invoice$customerInfo2.email), /*#__PURE__*/_react["default"].createElement("div", {
|
|
105
|
+
className: "text-sm text-gray-500"
|
|
106
|
+
}, "Phone: ", (_invoice$customerInfo3 = invoice.customerInfo) === null || _invoice$customerInfo3 === void 0 ? void 0 : _invoice$customerInfo3.phoneNumber), /*#__PURE__*/_react["default"].createElement("div", {
|
|
107
|
+
className: "text-sm text-gray-500"
|
|
108
|
+
}, "Customer ID: ", (_invoice$customerInfo4 = invoice.customerInfo) === null || _invoice$customerInfo4 === void 0 ? void 0 : _invoice$customerInfo4.customerId)), /*#__PURE__*/_react["default"].createElement("div", {
|
|
109
|
+
className: "mb-4"
|
|
110
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
111
|
+
className: "font-semibold mb-1"
|
|
112
|
+
}, "Service"), /*#__PURE__*/_react["default"].createElement("div", {
|
|
113
|
+
className: "text-sm"
|
|
114
|
+
}, (_invoice$serviceSecti = invoice.serviceSection) === null || _invoice$serviceSecti === void 0 ? void 0 : _invoice$serviceSecti.serviceTitle), /*#__PURE__*/_react["default"].createElement("div", {
|
|
115
|
+
className: "text-sm text-gray-500"
|
|
116
|
+
}, "Provider: ", (_invoice$serviceSecti2 = invoice.serviceSection) === null || _invoice$serviceSecti2 === void 0 ? void 0 : _invoice$serviceSecti2.providerName), /*#__PURE__*/_react["default"].createElement("div", {
|
|
117
|
+
className: "text-sm text-gray-500"
|
|
118
|
+
}, "Duration: ", (_invoice$serviceSecti3 = invoice.serviceSection) === null || _invoice$serviceSecti3 === void 0 ? void 0 : _invoice$serviceSecti3.duration))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
119
|
+
className: "w-full md:w-80 flex-shrink-0 bg-gray-50 rounded-lg p-6 flex flex-col justify-between"
|
|
120
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
121
|
+
className: "font-semibold mb-2"
|
|
122
|
+
}, "Payment Summary"), /*#__PURE__*/_react["default"].createElement("div", {
|
|
123
|
+
className: "flex justify-between text-sm mb-1"
|
|
124
|
+
}, /*#__PURE__*/_react["default"].createElement("span", null, "Base Amount"), /*#__PURE__*/_react["default"].createElement("span", null, "\u20B9", (_invoice$paymentSecti = invoice.paymentSection) === null || _invoice$paymentSecti === void 0 || (_invoice$paymentSecti = _invoice$paymentSecti.baseAmount) === null || _invoice$paymentSecti === void 0 ? void 0 : _invoice$paymentSecti.toLocaleString())), /*#__PURE__*/_react["default"].createElement("div", {
|
|
125
|
+
className: "flex justify-between text-sm mb-1"
|
|
126
|
+
}, /*#__PURE__*/_react["default"].createElement("span", null, "Tax"), /*#__PURE__*/_react["default"].createElement("span", null, "\u20B9", (_invoice$paymentSecti2 = invoice.paymentSection) === null || _invoice$paymentSecti2 === void 0 || (_invoice$paymentSecti2 = _invoice$paymentSecti2.tax) === null || _invoice$paymentSecti2 === void 0 ? void 0 : _invoice$paymentSecti2.toLocaleString())), /*#__PURE__*/_react["default"].createElement("div", {
|
|
127
|
+
className: "flex justify-between text-sm mb-1"
|
|
128
|
+
}, /*#__PURE__*/_react["default"].createElement("span", null, "Discount"), /*#__PURE__*/_react["default"].createElement("span", null, "-\u20B9", (_invoice$paymentSecti3 = invoice.paymentSection) === null || _invoice$paymentSecti3 === void 0 || (_invoice$paymentSecti3 = _invoice$paymentSecti3.discount) === null || _invoice$paymentSecti3 === void 0 ? void 0 : _invoice$paymentSecti3.toLocaleString())), /*#__PURE__*/_react["default"].createElement("div", {
|
|
129
|
+
className: "flex justify-between text-base font-bold border-t pt-2 mt-2"
|
|
130
|
+
}, /*#__PURE__*/_react["default"].createElement("span", null, "Total"), /*#__PURE__*/_react["default"].createElement("span", null, "\u20B9", (_invoice$paymentSecti4 = invoice.paymentSection) === null || _invoice$paymentSecti4 === void 0 || (_invoice$paymentSecti4 = _invoice$paymentSecti4.totalAmount) === null || _invoice$paymentSecti4 === void 0 ? void 0 : _invoice$paymentSecti4.toLocaleString()))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
131
|
+
className: "mt-8"
|
|
132
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
133
|
+
className: "font-semibold mb-1"
|
|
134
|
+
}, "Schedule"), /*#__PURE__*/_react["default"].createElement("div", {
|
|
135
|
+
className: "text-sm"
|
|
136
|
+
}, (_invoice$serviceSecti4 = invoice.serviceSection) === null || _invoice$serviceSecti4 === void 0 ? void 0 : _invoice$serviceSecti4.schedule), /*#__PURE__*/_react["default"].createElement("div", {
|
|
137
|
+
className: "text-sm text-gray-500"
|
|
138
|
+
}, "Mode: ", (_invoice$serviceSecti5 = invoice.serviceSection) === null || _invoice$serviceSecti5 === void 0 ? void 0 : _invoice$serviceSecti5.deliveryMode)))));
|
|
139
|
+
};
|
|
140
|
+
var _default = exports["default"] = PowrBaseInvoice;
|
|
@@ -0,0 +1,647 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
|
|
4
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _button = require("../ui/button");
|
|
11
|
+
var _input = require("../ui/input");
|
|
12
|
+
var _label = require("../ui/label");
|
|
13
|
+
var _card = require("../ui/card");
|
|
14
|
+
var _lucideReact = require("lucide-react");
|
|
15
|
+
var _reactToastify = require("react-toastify");
|
|
16
|
+
require("react-toastify/dist/ReactToastify.css");
|
|
17
|
+
var _react2 = require("@monaco-editor/react");
|
|
18
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t4 in e) "default" !== _t4 && {}.hasOwnProperty.call(e, _t4) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t4)) && (i.get || i.set) ? o(f, _t4, i) : f[_t4] = e[_t4]); return f; })(e, t); }
|
|
19
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
20
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
21
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
22
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
23
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
24
|
+
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
25
|
+
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
26
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
27
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
28
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
29
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
30
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
31
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
32
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
33
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
34
|
+
var PowrBasePlexxAdmin = function PowrBasePlexxAdmin(_ref) {
|
|
35
|
+
var projectId = _ref.projectId,
|
|
36
|
+
_ref$apiUrl = _ref.apiUrl,
|
|
37
|
+
apiUrl = _ref$apiUrl === void 0 ? "https://api.powrbase.cloud" : _ref$apiUrl,
|
|
38
|
+
_ref$theme = _ref.theme,
|
|
39
|
+
theme = _ref$theme === void 0 ? "default" : _ref$theme,
|
|
40
|
+
onRouteAdded = _ref.onRouteAdded,
|
|
41
|
+
onRouteUpdated = _ref.onRouteUpdated,
|
|
42
|
+
onError = _ref.onError;
|
|
43
|
+
var _useState = (0, _react.useState)([]),
|
|
44
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
45
|
+
routes = _useState2[0],
|
|
46
|
+
setRoutes = _useState2[1];
|
|
47
|
+
var _useState3 = (0, _react.useState)(true),
|
|
48
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
49
|
+
loading = _useState4[0],
|
|
50
|
+
setLoading = _useState4[1];
|
|
51
|
+
var _useState5 = (0, _react.useState)(false),
|
|
52
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
53
|
+
isSubmitting = _useState6[0],
|
|
54
|
+
setIsSubmitting = _useState6[1];
|
|
55
|
+
var _useState7 = (0, _react.useState)(false),
|
|
56
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
57
|
+
showAddModal = _useState8[0],
|
|
58
|
+
setShowAddModal = _useState8[1];
|
|
59
|
+
var _useState9 = (0, _react.useState)(false),
|
|
60
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
61
|
+
showEditModal = _useState0[0],
|
|
62
|
+
setShowEditModal = _useState0[1];
|
|
63
|
+
var _useState1 = (0, _react.useState)(null),
|
|
64
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
65
|
+
editingRoute = _useState10[0],
|
|
66
|
+
setEditingRoute = _useState10[1];
|
|
67
|
+
var _useState11 = (0, _react.useState)(''),
|
|
68
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
69
|
+
iframeSrcDoc = _useState12[0],
|
|
70
|
+
setIframeSrcDoc = _useState12[1];
|
|
71
|
+
|
|
72
|
+
// Separate state for add modal testing
|
|
73
|
+
var _useState13 = (0, _react.useState)(''),
|
|
74
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
75
|
+
addUserInput = _useState14[0],
|
|
76
|
+
setAddUserInput = _useState14[1];
|
|
77
|
+
var _useState15 = (0, _react.useState)(''),
|
|
78
|
+
_useState16 = _slicedToArray(_useState15, 2),
|
|
79
|
+
addOutput = _useState16[0],
|
|
80
|
+
setAddOutput = _useState16[1];
|
|
81
|
+
|
|
82
|
+
// Separate state for edit modal testing
|
|
83
|
+
var _useState17 = (0, _react.useState)(''),
|
|
84
|
+
_useState18 = _slicedToArray(_useState17, 2),
|
|
85
|
+
editUserInput = _useState18[0],
|
|
86
|
+
setEditUserInput = _useState18[1];
|
|
87
|
+
var _useState19 = (0, _react.useState)(''),
|
|
88
|
+
_useState20 = _slicedToArray(_useState19, 2),
|
|
89
|
+
editOutput = _useState20[0],
|
|
90
|
+
setEditOutput = _useState20[1];
|
|
91
|
+
|
|
92
|
+
// Test mode to track which modal is being tested
|
|
93
|
+
var _useState21 = (0, _react.useState)(null),
|
|
94
|
+
_useState22 = _slicedToArray(_useState21, 2),
|
|
95
|
+
testMode = _useState22[0],
|
|
96
|
+
setTestMode = _useState22[1];
|
|
97
|
+
var _useState23 = (0, _react.useState)({
|
|
98
|
+
name: '',
|
|
99
|
+
// Default code for testing
|
|
100
|
+
path: ''
|
|
101
|
+
}),
|
|
102
|
+
_useState24 = _slicedToArray(_useState23, 2),
|
|
103
|
+
formData = _useState24[0],
|
|
104
|
+
setFormData = _useState24[1];
|
|
105
|
+
var _useState25 = (0, _react.useState)({
|
|
106
|
+
code: ''
|
|
107
|
+
}),
|
|
108
|
+
_useState26 = _slicedToArray(_useState25, 2),
|
|
109
|
+
editFormData = _useState26[0],
|
|
110
|
+
setEditFormData = _useState26[1];
|
|
111
|
+
var iframeRef = (0, _react.useRef)(null);
|
|
112
|
+
var handleTestAddCode = function handleTestAddCode() {
|
|
113
|
+
setAddOutput("");
|
|
114
|
+
setTestMode('add');
|
|
115
|
+
console.log("Testing add code with user input:", addUserInput, formData);
|
|
116
|
+
var escapedUserInput = addUserInput.replace(/`/g, "\\`");
|
|
117
|
+
var wrappedCode = "\n <script>\n const userInput = `".concat(escapedUserInput, "`;\n const log = console.log;\n console.log = function(...args) {\n parent.postMessage({ type: 'console', message: args.join(' ') }, '*');\n log.apply(console, args);\n };\n try {\n ").concat(formData.name, "\n } catch (err) {\n console.log(\"Error:\", err.message);\n }\n </script>\n ");
|
|
118
|
+
setIframeSrcDoc("<html><body>".concat(wrappedCode, "</body></html>"));
|
|
119
|
+
};
|
|
120
|
+
var handleTestEditCode = function handleTestEditCode() {
|
|
121
|
+
setEditOutput("");
|
|
122
|
+
setTestMode('edit');
|
|
123
|
+
console.log("Testing edit code with user input:", editUserInput, editFormData);
|
|
124
|
+
var escapedUserInput = editUserInput.replace(/`/g, "\\`");
|
|
125
|
+
var wrappedCode = "\n <script>\n const userInput = `".concat(escapedUserInput, "`;\n const log = console.log;\n console.log = function(...args) {\n parent.postMessage({ type: 'console', message: args.join(' ') }, '*');\n log.apply(console, args);\n };\n try {\n ").concat(editFormData.code, "\n } catch (err) {\n console.log(\"Error:\", err.message);\n }\n </script>\n ");
|
|
126
|
+
setIframeSrcDoc("<html><body>".concat(wrappedCode, "</body></html>"));
|
|
127
|
+
};
|
|
128
|
+
(0, _react.useEffect)(function () {
|
|
129
|
+
var handleMessage = function handleMessage(event) {
|
|
130
|
+
var _event$data;
|
|
131
|
+
if (((_event$data = event.data) === null || _event$data === void 0 ? void 0 : _event$data.type) === 'console') {
|
|
132
|
+
if (testMode === 'add') {
|
|
133
|
+
setAddOutput(function (prev) {
|
|
134
|
+
return prev + event.data.message + '\n';
|
|
135
|
+
});
|
|
136
|
+
} else if (testMode === 'edit') {
|
|
137
|
+
setEditOutput(function (prev) {
|
|
138
|
+
return prev + event.data.message + '\n';
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
window.addEventListener('message', handleMessage);
|
|
144
|
+
return function () {
|
|
145
|
+
return window.removeEventListener('message', handleMessage);
|
|
146
|
+
};
|
|
147
|
+
}, [testMode]);
|
|
148
|
+
var fetchRoutes = /*#__PURE__*/function () {
|
|
149
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
150
|
+
var response, data, errorMsg, _t;
|
|
151
|
+
return _regenerator().w(function (_context) {
|
|
152
|
+
while (1) switch (_context.n) {
|
|
153
|
+
case 0:
|
|
154
|
+
_context.p = 0;
|
|
155
|
+
setLoading(true);
|
|
156
|
+
_context.n = 1;
|
|
157
|
+
return fetch("".concat(apiUrl, "/routes?projectId=").concat(projectId), {
|
|
158
|
+
method: 'GET',
|
|
159
|
+
headers: {
|
|
160
|
+
'Content-Type': 'application/json'
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
case 1:
|
|
164
|
+
response = _context.v;
|
|
165
|
+
if (response.ok) {
|
|
166
|
+
_context.n = 2;
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
throw new Error('Failed to fetch routes');
|
|
170
|
+
case 2:
|
|
171
|
+
_context.n = 3;
|
|
172
|
+
return response.json();
|
|
173
|
+
case 3:
|
|
174
|
+
data = _context.v;
|
|
175
|
+
if (!data.success) {
|
|
176
|
+
_context.n = 4;
|
|
177
|
+
break;
|
|
178
|
+
}
|
|
179
|
+
setRoutes(data.allroutes || []);
|
|
180
|
+
_context.n = 5;
|
|
181
|
+
break;
|
|
182
|
+
case 4:
|
|
183
|
+
throw new Error('API response indicates failure');
|
|
184
|
+
case 5:
|
|
185
|
+
_context.n = 7;
|
|
186
|
+
break;
|
|
187
|
+
case 6:
|
|
188
|
+
_context.p = 6;
|
|
189
|
+
_t = _context.v;
|
|
190
|
+
console.error('Error fetching routes:', _t);
|
|
191
|
+
errorMsg = 'Failed to load routes';
|
|
192
|
+
_reactToastify.toast.error(errorMsg);
|
|
193
|
+
onError && onError(_t, errorMsg);
|
|
194
|
+
case 7:
|
|
195
|
+
_context.p = 7;
|
|
196
|
+
setLoading(false);
|
|
197
|
+
return _context.f(7);
|
|
198
|
+
case 8:
|
|
199
|
+
return _context.a(2);
|
|
200
|
+
}
|
|
201
|
+
}, _callee, null, [[0, 6, 7, 8]]);
|
|
202
|
+
}));
|
|
203
|
+
return function fetchRoutes() {
|
|
204
|
+
return _ref2.apply(this, arguments);
|
|
205
|
+
};
|
|
206
|
+
}();
|
|
207
|
+
(0, _react.useEffect)(function () {
|
|
208
|
+
if (projectId) {
|
|
209
|
+
fetchRoutes();
|
|
210
|
+
}
|
|
211
|
+
}, [projectId]);
|
|
212
|
+
var handleInputChange = function handleInputChange(e) {
|
|
213
|
+
var _e$target = e.target,
|
|
214
|
+
name = _e$target.name,
|
|
215
|
+
value = _e$target.value;
|
|
216
|
+
setFormData(function (prev) {
|
|
217
|
+
return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, name, value));
|
|
218
|
+
});
|
|
219
|
+
};
|
|
220
|
+
var handleEditInputChange = function handleEditInputChange(e) {
|
|
221
|
+
var _e$target2 = e.target,
|
|
222
|
+
name = _e$target2.name,
|
|
223
|
+
value = _e$target2.value;
|
|
224
|
+
setEditFormData(function (prev) {
|
|
225
|
+
return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, name, value));
|
|
226
|
+
});
|
|
227
|
+
};
|
|
228
|
+
var handleSubmit = /*#__PURE__*/function () {
|
|
229
|
+
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {
|
|
230
|
+
var errorMsg, response, contentType, result, successMsg, _errorMsg, _t2;
|
|
231
|
+
return _regenerator().w(function (_context2) {
|
|
232
|
+
while (1) switch (_context2.n) {
|
|
233
|
+
case 0:
|
|
234
|
+
if (!(!formData.name || !formData.path)) {
|
|
235
|
+
_context2.n = 1;
|
|
236
|
+
break;
|
|
237
|
+
}
|
|
238
|
+
errorMsg = 'Name and path are required';
|
|
239
|
+
_reactToastify.toast.error(errorMsg);
|
|
240
|
+
onError && onError(new Error(errorMsg), errorMsg);
|
|
241
|
+
return _context2.a(2);
|
|
242
|
+
case 1:
|
|
243
|
+
setIsSubmitting(true);
|
|
244
|
+
_context2.p = 2;
|
|
245
|
+
_context2.n = 3;
|
|
246
|
+
return fetch("".concat(apiUrl, "/routes?projectId=").concat(projectId), {
|
|
247
|
+
method: 'POST',
|
|
248
|
+
headers: {
|
|
249
|
+
'Content-Type': 'application/json'
|
|
250
|
+
},
|
|
251
|
+
body: JSON.stringify({
|
|
252
|
+
code: formData.name,
|
|
253
|
+
route: formData.path
|
|
254
|
+
})
|
|
255
|
+
});
|
|
256
|
+
case 3:
|
|
257
|
+
response = _context2.v;
|
|
258
|
+
if (response.ok) {
|
|
259
|
+
_context2.n = 4;
|
|
260
|
+
break;
|
|
261
|
+
}
|
|
262
|
+
throw new Error("HTTP ".concat(response.status, ": ").concat(response.statusText));
|
|
263
|
+
case 4:
|
|
264
|
+
contentType = response.headers.get('content-type');
|
|
265
|
+
if (!(!contentType || !contentType.includes('application/json'))) {
|
|
266
|
+
_context2.n = 5;
|
|
267
|
+
break;
|
|
268
|
+
}
|
|
269
|
+
throw new Error('Server returned non-JSON response');
|
|
270
|
+
case 5:
|
|
271
|
+
_context2.n = 6;
|
|
272
|
+
return response.json();
|
|
273
|
+
case 6:
|
|
274
|
+
result = _context2.v;
|
|
275
|
+
if (!result.success) {
|
|
276
|
+
_context2.n = 7;
|
|
277
|
+
break;
|
|
278
|
+
}
|
|
279
|
+
successMsg = 'Route added successfully!';
|
|
280
|
+
_reactToastify.toast.success(successMsg);
|
|
281
|
+
onRouteAdded && onRouteAdded(result.entry);
|
|
282
|
+
setFormData({
|
|
283
|
+
name: '',
|
|
284
|
+
path: ''
|
|
285
|
+
});
|
|
286
|
+
setShowAddModal(false);
|
|
287
|
+
setAddUserInput('');
|
|
288
|
+
setAddOutput('');
|
|
289
|
+
setTestMode(null);
|
|
290
|
+
fetchRoutes();
|
|
291
|
+
_context2.n = 8;
|
|
292
|
+
break;
|
|
293
|
+
case 7:
|
|
294
|
+
throw new Error(result.message || 'Failed to add route');
|
|
295
|
+
case 8:
|
|
296
|
+
_context2.n = 10;
|
|
297
|
+
break;
|
|
298
|
+
case 9:
|
|
299
|
+
_context2.p = 9;
|
|
300
|
+
_t2 = _context2.v;
|
|
301
|
+
console.error('Error adding route:', _t2);
|
|
302
|
+
_errorMsg = _t2 instanceof Error ? _t2.message : 'Failed to add route';
|
|
303
|
+
_reactToastify.toast.error(_errorMsg);
|
|
304
|
+
onError && onError(_t2, _errorMsg);
|
|
305
|
+
case 10:
|
|
306
|
+
_context2.p = 10;
|
|
307
|
+
setIsSubmitting(false);
|
|
308
|
+
return _context2.f(10);
|
|
309
|
+
case 11:
|
|
310
|
+
return _context2.a(2);
|
|
311
|
+
}
|
|
312
|
+
}, _callee2, null, [[2, 9, 10, 11]]);
|
|
313
|
+
}));
|
|
314
|
+
return function handleSubmit() {
|
|
315
|
+
return _ref3.apply(this, arguments);
|
|
316
|
+
};
|
|
317
|
+
}();
|
|
318
|
+
var handleEditClick = function handleEditClick(route) {
|
|
319
|
+
setEditingRoute(route);
|
|
320
|
+
setEditFormData({
|
|
321
|
+
code: route.code
|
|
322
|
+
});
|
|
323
|
+
setEditUserInput('');
|
|
324
|
+
setEditOutput('');
|
|
325
|
+
setTestMode(null);
|
|
326
|
+
setShowEditModal(true);
|
|
327
|
+
};
|
|
328
|
+
var handleEditSubmit = /*#__PURE__*/function () {
|
|
329
|
+
var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {
|
|
330
|
+
var errorMsg, response, contentType, result, successMsg, _errorMsg2, _t3;
|
|
331
|
+
return _regenerator().w(function (_context3) {
|
|
332
|
+
while (1) switch (_context3.n) {
|
|
333
|
+
case 0:
|
|
334
|
+
if (!(!editingRoute || !editFormData.code)) {
|
|
335
|
+
_context3.n = 1;
|
|
336
|
+
break;
|
|
337
|
+
}
|
|
338
|
+
errorMsg = 'Code is required';
|
|
339
|
+
_reactToastify.toast.error(errorMsg);
|
|
340
|
+
onError && onError(new Error(errorMsg), errorMsg);
|
|
341
|
+
return _context3.a(2);
|
|
342
|
+
case 1:
|
|
343
|
+
setIsSubmitting(true);
|
|
344
|
+
_context3.p = 2;
|
|
345
|
+
_context3.n = 3;
|
|
346
|
+
return fetch("".concat(apiUrl, "/routes/").concat(editingRoute.route.replace('/', ''), "?projectId=").concat(projectId), {
|
|
347
|
+
method: 'PUT',
|
|
348
|
+
headers: {
|
|
349
|
+
'Content-Type': 'application/json'
|
|
350
|
+
},
|
|
351
|
+
body: JSON.stringify({
|
|
352
|
+
code: editFormData.code
|
|
353
|
+
})
|
|
354
|
+
});
|
|
355
|
+
case 3:
|
|
356
|
+
response = _context3.v;
|
|
357
|
+
if (response.ok) {
|
|
358
|
+
_context3.n = 4;
|
|
359
|
+
break;
|
|
360
|
+
}
|
|
361
|
+
throw new Error("HTTP ".concat(response.status, ": ").concat(response.statusText));
|
|
362
|
+
case 4:
|
|
363
|
+
contentType = response.headers.get('content-type');
|
|
364
|
+
if (!(!contentType || !contentType.includes('application/json'))) {
|
|
365
|
+
_context3.n = 5;
|
|
366
|
+
break;
|
|
367
|
+
}
|
|
368
|
+
throw new Error('Server returned non-JSON response');
|
|
369
|
+
case 5:
|
|
370
|
+
_context3.n = 6;
|
|
371
|
+
return response.json();
|
|
372
|
+
case 6:
|
|
373
|
+
result = _context3.v;
|
|
374
|
+
if (!result.success) {
|
|
375
|
+
_context3.n = 7;
|
|
376
|
+
break;
|
|
377
|
+
}
|
|
378
|
+
successMsg = 'Route updated successfully!';
|
|
379
|
+
_reactToastify.toast.success(successMsg);
|
|
380
|
+
onRouteUpdated && onRouteUpdated(result.entry);
|
|
381
|
+
setEditFormData({
|
|
382
|
+
code: ''
|
|
383
|
+
});
|
|
384
|
+
setShowEditModal(false);
|
|
385
|
+
setEditingRoute(null);
|
|
386
|
+
setEditUserInput('');
|
|
387
|
+
setEditOutput('');
|
|
388
|
+
setTestMode(null);
|
|
389
|
+
fetchRoutes();
|
|
390
|
+
_context3.n = 8;
|
|
391
|
+
break;
|
|
392
|
+
case 7:
|
|
393
|
+
throw new Error(result.message || 'Failed to update route');
|
|
394
|
+
case 8:
|
|
395
|
+
_context3.n = 10;
|
|
396
|
+
break;
|
|
397
|
+
case 9:
|
|
398
|
+
_context3.p = 9;
|
|
399
|
+
_t3 = _context3.v;
|
|
400
|
+
console.log('Error updating route:', _t3);
|
|
401
|
+
_errorMsg2 = _t3 instanceof Error ? _t3.message : 'Failed to update route';
|
|
402
|
+
_reactToastify.toast.error(_errorMsg2);
|
|
403
|
+
onError && onError(_t3, _errorMsg2);
|
|
404
|
+
case 10:
|
|
405
|
+
_context3.p = 10;
|
|
406
|
+
setIsSubmitting(false);
|
|
407
|
+
return _context3.f(10);
|
|
408
|
+
case 11:
|
|
409
|
+
return _context3.a(2);
|
|
410
|
+
}
|
|
411
|
+
}, _callee3, null, [[2, 9, 10, 11]]);
|
|
412
|
+
}));
|
|
413
|
+
return function handleEditSubmit() {
|
|
414
|
+
return _ref4.apply(this, arguments);
|
|
415
|
+
};
|
|
416
|
+
}();
|
|
417
|
+
if (loading) {
|
|
418
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
419
|
+
className: "flex items-center justify-center h-64"
|
|
420
|
+
}, /*#__PURE__*/_react["default"].createElement(_lucideReact.Loader, {
|
|
421
|
+
className: "animate-spin size-8"
|
|
422
|
+
}));
|
|
423
|
+
}
|
|
424
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
425
|
+
className: ""
|
|
426
|
+
}, /*#__PURE__*/_react["default"].createElement(_reactToastify.ToastContainer, null), /*#__PURE__*/_react["default"].createElement("div", {
|
|
427
|
+
className: "flex items-center justify-between"
|
|
428
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("h1", {
|
|
429
|
+
className: "text-2xl font-bold text-gray-900"
|
|
430
|
+
}, "Plexx Routes Management"), /*#__PURE__*/_react["default"].createElement("p", {
|
|
431
|
+
className: "text-gray-600 mt-1"
|
|
432
|
+
}, "Manage your dynamic API routes and endpoints")), /*#__PURE__*/_react["default"].createElement(_button.Button, {
|
|
433
|
+
onClick: function onClick() {
|
|
434
|
+
setShowAddModal(true);
|
|
435
|
+
setAddUserInput('');
|
|
436
|
+
setAddOutput('');
|
|
437
|
+
setTestMode(null);
|
|
438
|
+
},
|
|
439
|
+
className: "bg-orange-600 hover:bg-orange-700"
|
|
440
|
+
}, /*#__PURE__*/_react["default"].createElement(_lucideReact.Plus, {
|
|
441
|
+
className: "size-4 mr-2"
|
|
442
|
+
}), "Add Route")), /*#__PURE__*/_react["default"].createElement("div", {
|
|
443
|
+
className: "grid grid-cols-1 md:grid-cols-1 gap-4 mt-6"
|
|
444
|
+
}, /*#__PURE__*/_react["default"].createElement(_card.Card, null, /*#__PURE__*/_react["default"].createElement(_card.CardContent, {
|
|
445
|
+
className: "p-4"
|
|
446
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
447
|
+
className: "flex items-center"
|
|
448
|
+
}, /*#__PURE__*/_react["default"].createElement(_lucideReact.Route, {
|
|
449
|
+
className: "size-8 text-blue-600"
|
|
450
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
451
|
+
className: "ml-3"
|
|
452
|
+
}, /*#__PURE__*/_react["default"].createElement("p", {
|
|
453
|
+
className: "text-sm font-medium text-gray-600"
|
|
454
|
+
}, "Total Routes"), /*#__PURE__*/_react["default"].createElement("p", {
|
|
455
|
+
className: "text-2xl font-bold text-gray-900"
|
|
456
|
+
}, routes.length)))))), /*#__PURE__*/_react["default"].createElement(_card.Card, {
|
|
457
|
+
className: "mt-6"
|
|
458
|
+
}, /*#__PURE__*/_react["default"].createElement(_card.CardHeader, null, /*#__PURE__*/_react["default"].createElement(_card.CardTitle, null, "All API Routes")), /*#__PURE__*/_react["default"].createElement(_card.CardContent, null, routes.length === 0 ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
459
|
+
className: "text-center py-8 text-gray-500"
|
|
460
|
+
}, /*#__PURE__*/_react["default"].createElement(_lucideReact.Route, {
|
|
461
|
+
className: "size-12 mx-auto mb-4 text-gray-300"
|
|
462
|
+
}), /*#__PURE__*/_react["default"].createElement("p", null, "No routes configured yet"), /*#__PURE__*/_react["default"].createElement("p", {
|
|
463
|
+
className: "text-sm"
|
|
464
|
+
}, "Add your first route to get started")) : /*#__PURE__*/_react["default"].createElement("div", {
|
|
465
|
+
className: "space-y-4"
|
|
466
|
+
}, routes.map(function (route) {
|
|
467
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
468
|
+
key: route._id,
|
|
469
|
+
className: "flex items-center justify-between p-4 border rounded-lg hover:bg-gray-50"
|
|
470
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
471
|
+
className: "flex-1"
|
|
472
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
473
|
+
className: "flex items-center space-x-3"
|
|
474
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("p", {
|
|
475
|
+
className: "text-sm font-medium text-gray-900"
|
|
476
|
+
}, "/", route.route), /*#__PURE__*/_react["default"].createElement("p", {
|
|
477
|
+
className: "text-xs text-gray-400 font-mono bg-gray-100 px-2 py-1 rounded"
|
|
478
|
+
}, route.code)))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
479
|
+
className: "flex items-center space-x-2"
|
|
480
|
+
}, /*#__PURE__*/_react["default"].createElement(_button.Button, {
|
|
481
|
+
variant: "ghost",
|
|
482
|
+
size: "sm",
|
|
483
|
+
onClick: function onClick() {
|
|
484
|
+
return handleEditClick(route);
|
|
485
|
+
},
|
|
486
|
+
className: "p-2 hover:bg-gray-100"
|
|
487
|
+
}, /*#__PURE__*/_react["default"].createElement(_lucideReact.Edit, {
|
|
488
|
+
className: "size-4 text-gray-500"
|
|
489
|
+
}))));
|
|
490
|
+
})))), showAddModal && /*#__PURE__*/_react["default"].createElement("div", {
|
|
491
|
+
className: "fixed inset-0 flex items-center justify-center bg-black/50 z-50"
|
|
492
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
493
|
+
className: "bg-white rounded-2xl shadow-xl p-6 w-full max-w-3xl overflow-y-auto max-h-[90vh]"
|
|
494
|
+
}, /*#__PURE__*/_react["default"].createElement("h2", {
|
|
495
|
+
className: "text-xl font-bold text-gray-800 mb-6"
|
|
496
|
+
}, "Add New Route"), /*#__PURE__*/_react["default"].createElement("div", {
|
|
497
|
+
className: "space-y-4"
|
|
498
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_label.Label, {
|
|
499
|
+
htmlFor: "name"
|
|
500
|
+
}, "Code * ", /*#__PURE__*/_react["default"].createElement("span", {
|
|
501
|
+
className: "text-xs text-gray-400"
|
|
502
|
+
}, "(Use ", /*#__PURE__*/_react["default"].createElement("code", null, "userInput"), " to access test input)")), /*#__PURE__*/_react["default"].createElement(_react2.Editor, {
|
|
503
|
+
height: "40vh",
|
|
504
|
+
language: "javascript",
|
|
505
|
+
value: formData.name,
|
|
506
|
+
onChange: function onChange(newValue) {
|
|
507
|
+
return setFormData(function (prev) {
|
|
508
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
509
|
+
name: newValue || ''
|
|
510
|
+
});
|
|
511
|
+
});
|
|
512
|
+
},
|
|
513
|
+
theme: "vs-dark"
|
|
514
|
+
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
515
|
+
className: "space-y-2"
|
|
516
|
+
}, /*#__PURE__*/_react["default"].createElement("label", {
|
|
517
|
+
htmlFor: "userInput",
|
|
518
|
+
className: "block text-sm font-medium text-gray-700"
|
|
519
|
+
}, "Test Input (optional)"), /*#__PURE__*/_react["default"].createElement("textarea", {
|
|
520
|
+
id: "userInput",
|
|
521
|
+
rows: 3,
|
|
522
|
+
className: "w-full border border-gray-300 rounded-md p-2 focus:outline-none focus:border-orange-600 focus:ring-1 focus:ring-orange-600",
|
|
523
|
+
value: addUserInput,
|
|
524
|
+
onChange: function onChange(e) {
|
|
525
|
+
return setAddUserInput(e.target.value);
|
|
526
|
+
},
|
|
527
|
+
placeholder: "Enter test input if required"
|
|
528
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
529
|
+
className: "flex justify-end gap-4 mt-4"
|
|
530
|
+
}, /*#__PURE__*/_react["default"].createElement(_button.Button, {
|
|
531
|
+
className: "bg-orange-600 text-white hover:bg-orange-700",
|
|
532
|
+
onClick: handleTestAddCode,
|
|
533
|
+
disabled: loading
|
|
534
|
+
}, "Test Code")), addOutput && /*#__PURE__*/_react["default"].createElement("div", {
|
|
535
|
+
className: "mt-6"
|
|
536
|
+
}, /*#__PURE__*/_react["default"].createElement("label", {
|
|
537
|
+
className: "block text-sm font-medium text-gray-700 mb-1"
|
|
538
|
+
}, "Output"), /*#__PURE__*/_react["default"].createElement("pre", {
|
|
539
|
+
className: "bg-gray-800 text-green-200 p-4 rounded-md overflow-auto max-h-64"
|
|
540
|
+
}, addOutput))), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_label.Label, {
|
|
541
|
+
htmlFor: "path"
|
|
542
|
+
}, "Route *"), /*#__PURE__*/_react["default"].createElement(_input.Input, {
|
|
543
|
+
id: "path",
|
|
544
|
+
name: "path",
|
|
545
|
+
type: "text",
|
|
546
|
+
value: formData.path,
|
|
547
|
+
onChange: handleInputChange,
|
|
548
|
+
placeholder: "welcome",
|
|
549
|
+
required: true
|
|
550
|
+
}))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
551
|
+
className: "flex justify-end gap-4 mt-6"
|
|
552
|
+
}, /*#__PURE__*/_react["default"].createElement(_button.Button, {
|
|
553
|
+
onClick: function onClick() {
|
|
554
|
+
setShowAddModal(false);
|
|
555
|
+
setAddUserInput('');
|
|
556
|
+
setAddOutput('');
|
|
557
|
+
setTestMode(null);
|
|
558
|
+
},
|
|
559
|
+
variant: "outline",
|
|
560
|
+
className: "bg-gray-300 text-gray-700 hover:bg-gray-400"
|
|
561
|
+
}, "Cancel"), /*#__PURE__*/_react["default"].createElement(_button.Button, {
|
|
562
|
+
onClick: handleSubmit,
|
|
563
|
+
disabled: isSubmitting,
|
|
564
|
+
className: "bg-orange-600 text-white hover:bg-orange-700"
|
|
565
|
+
}, isSubmitting ? /*#__PURE__*/_react["default"].createElement(_lucideReact.Loader, {
|
|
566
|
+
className: "animate-spin size-5 mx-auto"
|
|
567
|
+
}) : 'Add Route')))), showEditModal && editingRoute && /*#__PURE__*/_react["default"].createElement("div", {
|
|
568
|
+
className: "fixed inset-0 flex items-center justify-center bg-black/50 z-50"
|
|
569
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
570
|
+
className: "bg-white rounded-2xl shadow-xl p-6 w-full max-w-3xl overflow-y-auto max-h-[90vh]"
|
|
571
|
+
}, /*#__PURE__*/_react["default"].createElement("h2", {
|
|
572
|
+
className: "text-xl font-bold text-gray-800 mb-6"
|
|
573
|
+
}, "Edit Route: /", editingRoute.route), /*#__PURE__*/_react["default"].createElement("div", {
|
|
574
|
+
className: "space-y-4"
|
|
575
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_label.Label, {
|
|
576
|
+
htmlFor: "name"
|
|
577
|
+
}, "Code * ", /*#__PURE__*/_react["default"].createElement("span", {
|
|
578
|
+
className: "text-xs text-gray-400"
|
|
579
|
+
}, "(Use ", /*#__PURE__*/_react["default"].createElement("code", null, "userInput"), " to access test input)")), /*#__PURE__*/_react["default"].createElement(_react2.Editor, {
|
|
580
|
+
height: "40vh",
|
|
581
|
+
language: "javascript",
|
|
582
|
+
value: editFormData.code,
|
|
583
|
+
onChange: function onChange(newValue) {
|
|
584
|
+
return setEditFormData(function (prev) {
|
|
585
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
586
|
+
code: newValue || ''
|
|
587
|
+
});
|
|
588
|
+
});
|
|
589
|
+
},
|
|
590
|
+
theme: "vs-dark"
|
|
591
|
+
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
592
|
+
className: "space-y-2"
|
|
593
|
+
}, /*#__PURE__*/_react["default"].createElement("label", {
|
|
594
|
+
htmlFor: "userInput",
|
|
595
|
+
className: "block text-sm font-medium text-gray-700"
|
|
596
|
+
}, "Test Input (optional)"), /*#__PURE__*/_react["default"].createElement("textarea", {
|
|
597
|
+
id: "userInput",
|
|
598
|
+
rows: 3,
|
|
599
|
+
className: "w-full border border-gray-300 rounded-md p-2 focus:outline-none focus:border-orange-600 focus:ring-1 focus:ring-orange-600",
|
|
600
|
+
value: editUserInput,
|
|
601
|
+
onChange: function onChange(e) {
|
|
602
|
+
return setEditUserInput(e.target.value);
|
|
603
|
+
},
|
|
604
|
+
placeholder: "Enter test input if required"
|
|
605
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
606
|
+
className: "flex justify-end gap-4 mt-4"
|
|
607
|
+
}, /*#__PURE__*/_react["default"].createElement(_button.Button, {
|
|
608
|
+
className: "bg-orange-600 text-white hover:bg-orange-700",
|
|
609
|
+
onClick: handleTestEditCode,
|
|
610
|
+
disabled: loading
|
|
611
|
+
}, "Test Code")), editOutput && /*#__PURE__*/_react["default"].createElement("div", {
|
|
612
|
+
className: "mt-6"
|
|
613
|
+
}, /*#__PURE__*/_react["default"].createElement("label", {
|
|
614
|
+
className: "block text-sm font-medium text-gray-700 mb-1"
|
|
615
|
+
}, "Output"), /*#__PURE__*/_react["default"].createElement("pre", {
|
|
616
|
+
className: "bg-gray-800 text-green-200 p-4 rounded-md overflow-auto max-h-64"
|
|
617
|
+
}, editOutput)))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
618
|
+
className: "flex justify-end gap-4 mt-6"
|
|
619
|
+
}, /*#__PURE__*/_react["default"].createElement(_button.Button, {
|
|
620
|
+
onClick: function onClick() {
|
|
621
|
+
setShowEditModal(false);
|
|
622
|
+
setEditingRoute(null);
|
|
623
|
+
setEditFormData({
|
|
624
|
+
code: ''
|
|
625
|
+
});
|
|
626
|
+
setEditUserInput('');
|
|
627
|
+
setEditOutput('');
|
|
628
|
+
setTestMode(null);
|
|
629
|
+
},
|
|
630
|
+
variant: "outline",
|
|
631
|
+
className: "bg-gray-300 text-gray-700 hover:bg-gray-400"
|
|
632
|
+
}, "Cancel"), /*#__PURE__*/_react["default"].createElement(_button.Button, {
|
|
633
|
+
onClick: handleEditSubmit,
|
|
634
|
+
disabled: isSubmitting,
|
|
635
|
+
className: "bg-orange-600 text-white hover:bg-orange-700"
|
|
636
|
+
}, isSubmitting ? /*#__PURE__*/_react["default"].createElement(_lucideReact.Loader, {
|
|
637
|
+
className: "animate-spin size-5 mx-auto"
|
|
638
|
+
}) : 'Update Route')))), /*#__PURE__*/_react["default"].createElement("iframe", {
|
|
639
|
+
title: "code-runner",
|
|
640
|
+
sandbox: "allow-scripts",
|
|
641
|
+
srcDoc: iframeSrcDoc,
|
|
642
|
+
style: {
|
|
643
|
+
display: 'none'
|
|
644
|
+
}
|
|
645
|
+
}));
|
|
646
|
+
};
|
|
647
|
+
var _default = exports["default"] = PowrBasePlexxAdmin;
|