powr-sdk-web 6.14.2 → 6.15.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.
@@ -62,7 +62,7 @@ var AdminDashboard = function AdminDashboard(_ref2) {
62
62
  var apiUrl = _ref2.apiUrl,
63
63
  projectId = _ref2.projectId,
64
64
  _ref2$sections = _ref2.sections,
65
- sections = _ref2$sections === void 0 ? [] : _ref2$sections,
65
+ sections = _ref2$sections === void 0 ? ['Users', 'Pageviews', 'Feedbacks', 'Forms'] : _ref2$sections,
66
66
  formPublicBaseUrl = _ref2.formPublicBaseUrl,
67
67
  _ref2$theme = _ref2.theme,
68
68
  theme = _ref2$theme === void 0 ? 'default' : _ref2$theme,
@@ -0,0 +1,225 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = PowrFormsPage;
7
+ exports.getPowrFormSchema = getPowrFormSchema;
8
+ exports.resolvePowrFormImageUrl = resolvePowrFormImageUrl;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _index = _interopRequireDefault(require("./index"));
11
+ var _config = require("../config");
12
+ var _session = require("../session");
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
14
+ var cache;
15
+ function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var r, c, a = Object.defineProperty, n = { __proto__: null, "default": e }; if (Object(e) !== e) return n; if (cache || "function" != typeof WeakMap || (cache = new WeakMap()), cache) { if (cache.has(e)) return cache.get(e); cache.set(e, n); } for (c in e) "default" !== c && {}.hasOwnProperty.call(e, c) && ((r = a && Object.getOwnPropertyDescriptor(e, c)) && (r.get || r.set) ? a(n, c, r) : n[c] = e[c]); return n; }
16
+ 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 }; })(); }
17
+ 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); }
18
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
19
+ 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."); }
20
+ 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; } }
21
+ 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; }
22
+ 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; } }
23
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
24
+ 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); }
25
+ 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); }); }; }
26
+ function resolvePowrFormImageUrl(imageUrl) {
27
+ if (!imageUrl || typeof imageUrl !== "string") return null;
28
+ var trimmed = imageUrl.trim();
29
+ if (!trimmed) return null;
30
+ if (trimmed.startsWith("http://") || trimmed.startsWith("https://")) return trimmed;
31
+ if (trimmed.startsWith("/")) return trimmed;
32
+ return "/".concat(trimmed);
33
+ }
34
+ function getPowrFormSchema(_x) {
35
+ return _getPowrFormSchema.apply(this, arguments);
36
+ }
37
+ function _getPowrFormSchema() {
38
+ _getPowrFormSchema = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(formName) {
39
+ var _ref,
40
+ projectId,
41
+ _ref$apiUrl,
42
+ apiUrl,
43
+ slug,
44
+ pid,
45
+ _json$data,
46
+ url,
47
+ res,
48
+ json,
49
+ _args = arguments,
50
+ _t;
51
+ return _regenerator().w(function (_context) {
52
+ while (1) switch (_context.p = _context.n) {
53
+ case 0:
54
+ _ref = _args.length > 1 && _args[1] !== undefined ? _args[1] : {}, projectId = _ref.projectId, _ref$apiUrl = _ref.apiUrl, apiUrl = _ref$apiUrl === void 0 ? _config.DEFAULT_API_URL : _ref$apiUrl;
55
+ slug = String(formName || "").trim();
56
+ pid = String(projectId || "").trim();
57
+ if (!(!slug || !pid)) {
58
+ _context.n = 1;
59
+ break;
60
+ }
61
+ return _context.a(2, null);
62
+ case 1:
63
+ _context.p = 1;
64
+ url = "".concat(String(apiUrl).replace(/\/$/, ""), "/forms/").concat(encodeURIComponent(slug), "?projectId=").concat(encodeURIComponent(pid));
65
+ _context.n = 2;
66
+ return fetch(url, {
67
+ cache: "no-store",
68
+ credentials: "omit"
69
+ });
70
+ case 2:
71
+ res = _context.v;
72
+ if (res.ok) {
73
+ _context.n = 3;
74
+ break;
75
+ }
76
+ return _context.a(2, null);
77
+ case 3:
78
+ _context.n = 4;
79
+ return res.json();
80
+ case 4:
81
+ json = _context.v;
82
+ return _context.a(2, (_json$data = json === null || json === void 0 ? void 0 : json.data) !== null && _json$data !== void 0 ? _json$data : null);
83
+ case 5:
84
+ _context.p = 5;
85
+ _t = _context.v;
86
+ return _context.a(2, null);
87
+ }
88
+ }, _callee, null, [[1, 5]]);
89
+ }));
90
+ return _getPowrFormSchema.apply(this, arguments);
91
+ }
92
+ function PowrFormsPage(_ref2) {
93
+ var _schema$formTitle, _schema$description;
94
+ var formName = _ref2.formName,
95
+ _ref2$defaultFormName = _ref2.defaultFormName,
96
+ defaultFormName = _ref2$defaultFormName === void 0 ? "" : _ref2$defaultFormName,
97
+ projectId = _ref2.projectId,
98
+ _ref2$apiUrl = _ref2.apiUrl,
99
+ apiUrl = _ref2$apiUrl === void 0 ? _config.DEFAULT_API_URL : _ref2$apiUrl,
100
+ _ref2$theme = _ref2.theme,
101
+ theme = _ref2$theme === void 0 ? "purple" : _ref2$theme,
102
+ _ref2$fallbackTitle = _ref2.fallbackTitle,
103
+ fallbackTitle = _ref2$fallbackTitle === void 0 ? "Form" : _ref2$fallbackTitle,
104
+ _ref2$loginPath = _ref2.loginPath,
105
+ loginPath = _ref2$loginPath === void 0 ? "/login" : _ref2$loginPath,
106
+ _ref2$formsPath = _ref2.formsPath,
107
+ formsPath = _ref2$formsPath === void 0 ? "/forms" : _ref2$formsPath,
108
+ onNavigate = _ref2.onNavigate,
109
+ onReplace = _ref2.onReplace,
110
+ _ref2$className = _ref2.className,
111
+ className = _ref2$className === void 0 ? "" : _ref2$className,
112
+ _ref2$cardClassName = _ref2.cardClassName,
113
+ cardClassName = _ref2$cardClassName === void 0 ? "overflow-hidden rounded-lg border border-gray-200 bg-white px-4 py-6 text-slate-900 shadow-sm sm:px-6" : _ref2$cardClassName;
114
+ var session = (0, _session.usePowrSession)();
115
+ var _useState = (0, _react.useState)(function () {
116
+ var explicit = String(formName || "").trim();
117
+ if (explicit) return explicit;
118
+ if (typeof window !== "undefined") {
119
+ var sp = new URLSearchParams(window.location.search);
120
+ var id = (sp.get("id") || "").trim();
121
+ if (id) return id;
122
+ }
123
+ return String(defaultFormName || "").trim();
124
+ }),
125
+ _useState2 = _slicedToArray(_useState, 2),
126
+ resolvedName = _useState2[0],
127
+ setResolvedName = _useState2[1];
128
+ var _useState3 = (0, _react.useState)(null),
129
+ _useState4 = _slicedToArray(_useState3, 2),
130
+ schema = _useState4[0],
131
+ setSchema = _useState4[1];
132
+ (0, _react.useEffect)(function () {
133
+ var explicit = String(formName || "").trim();
134
+ if (explicit) {
135
+ setResolvedName(explicit);
136
+ return;
137
+ }
138
+ if (typeof window !== "undefined") {
139
+ var sp = new URLSearchParams(window.location.search);
140
+ var id = (sp.get("id") || "").trim();
141
+ if (id) {
142
+ setResolvedName(id);
143
+ return;
144
+ }
145
+ var def = String(defaultFormName || "").trim();
146
+ if (def) {
147
+ setResolvedName(def);
148
+ var target = "".concat(formsPath, "?id=").concat(encodeURIComponent(def));
149
+ if (typeof onReplace === "function") {
150
+ onReplace(target);
151
+ } else if (window.history && typeof window.history.replaceState === "function") {
152
+ window.history.replaceState(null, "", target);
153
+ }
154
+ }
155
+ }
156
+ }, [formName, defaultFormName, formsPath, onReplace]);
157
+ (0, _react.useEffect)(function () {
158
+ var cancelled = false;
159
+ if (!resolvedName || !projectId) {
160
+ setSchema(null);
161
+ return undefined;
162
+ }
163
+ getPowrFormSchema(resolvedName, {
164
+ projectId: projectId,
165
+ apiUrl: apiUrl
166
+ }).then(function (data) {
167
+ if (!cancelled) setSchema(data);
168
+ });
169
+ return function () {
170
+ cancelled = true;
171
+ };
172
+ }, [resolvedName, projectId, apiUrl]);
173
+ var isAuthenticated = Boolean(session && session.hydrated && session.user);
174
+ var user = session ? session.user : null;
175
+ var signedAs = (user === null || user === void 0 ? void 0 : user.fullName) || (user === null || user === void 0 ? void 0 : user.name) || (user === null || user === void 0 ? void 0 : user.phoneNumber) || "you";
176
+ var extraFields = user ? {
177
+ userId: user.userId || user._id,
178
+ respondent_name: user.fullName || user.name || "",
179
+ whatsapp: user.phoneNumber || undefined,
180
+ email: user.email || undefined
181
+ } : undefined;
182
+ var handleNeedLogin = function handleNeedLogin() {
183
+ var next = "".concat(formsPath, "?id=").concat(encodeURIComponent(resolvedName));
184
+ var target = "".concat(loginPath, "?next=").concat(encodeURIComponent(next));
185
+ if (typeof onNavigate === "function") {
186
+ onNavigate(target);
187
+ } else if (typeof window !== "undefined") {
188
+ window.location.href = target;
189
+ }
190
+ };
191
+ var title = (schema === null || schema === void 0 || (_schema$formTitle = schema.formTitle) === null || _schema$formTitle === void 0 ? void 0 : _schema$formTitle.trim()) || fallbackTitle;
192
+ var description = (schema === null || schema === void 0 || (_schema$description = schema.description) === null || _schema$description === void 0 ? void 0 : _schema$description.trim()) || "";
193
+ var bannerUrl = resolvePowrFormImageUrl(schema === null || schema === void 0 ? void 0 : schema.imageUrl);
194
+ return /*#__PURE__*/_react["default"].createElement("div", {
195
+ className: "flex flex-col gap-6 ".concat(className).trim()
196
+ }, bannerUrl ? /*#__PURE__*/_react["default"].createElement("div", {
197
+ className: "h-40 overflow-hidden rounded-lg bg-slate-100 bg-cover bg-center",
198
+ style: {
199
+ backgroundImage: "url('".concat(bannerUrl, "')")
200
+ },
201
+ role: "img",
202
+ "aria-label": ""
203
+ }) : null, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("h1", {
204
+ className: "font-display text-3xl font-bold sm:text-4xl"
205
+ }, title), description ? /*#__PURE__*/_react["default"].createElement("p", {
206
+ className: "mt-2 whitespace-pre-line text-sm leading-relaxed text-slate-600"
207
+ }, description) : null), !projectId ? /*#__PURE__*/_react["default"].createElement("p", {
208
+ className: "text-sm text-slate-500"
209
+ }, "Form is not configured. Set NEXT_PUBLIC_PROJECT_ID.") : !resolvedName ? /*#__PURE__*/_react["default"].createElement("p", {
210
+ className: "text-sm text-slate-500"
211
+ }, "No form selected. Open ", formsPath, "?id=<formName>.") : /*#__PURE__*/_react["default"].createElement("div", {
212
+ className: cardClassName
213
+ }, /*#__PURE__*/_react["default"].createElement(_index["default"], {
214
+ formName: resolvedName,
215
+ apiUrl: apiUrl,
216
+ projectId: projectId,
217
+ embed: true,
218
+ showHeader: false,
219
+ isAuthenticated: isAuthenticated,
220
+ onNeedLogin: handleNeedLogin,
221
+ extraFields: extraFields,
222
+ authenticatedLabel: isAuthenticated ? "Submitting as ".concat(signedAs) : undefined,
223
+ theme: theme
224
+ })));
225
+ }
package/dist/index.js CHANGED
@@ -297,6 +297,12 @@ Object.defineProperty(exports, "PowrCalendarStrip", {
297
297
  return _calendar["default"];
298
298
  }
299
299
  });
300
+ Object.defineProperty(exports, "PowrFormsPage", {
301
+ enumerable: true,
302
+ get: function get() {
303
+ return _page["default"];
304
+ }
305
+ });
300
306
  Object.defineProperty(exports, "PowrImpersonationBar", {
301
307
  enumerable: true,
302
308
  get: function get() {
@@ -483,6 +489,12 @@ Object.defineProperty(exports, "getPhoneLookupVariants", {
483
489
  return _phone.getPhoneLookupVariants;
484
490
  }
485
491
  });
492
+ Object.defineProperty(exports, "getPowrFormSchema", {
493
+ enumerable: true,
494
+ get: function get() {
495
+ return _page.getPowrFormSchema;
496
+ }
497
+ });
486
498
  Object.defineProperty(exports, "getPowrUserId", {
487
499
  enumerable: true,
488
500
  get: function get() {
@@ -645,6 +657,12 @@ Object.defineProperty(exports, "resolveCountry", {
645
657
  return _phone.resolveCountry;
646
658
  }
647
659
  });
660
+ Object.defineProperty(exports, "resolvePowrFormImageUrl", {
661
+ enumerable: true,
662
+ get: function get() {
663
+ return _page.resolvePowrFormImageUrl;
664
+ }
665
+ });
648
666
  Object.defineProperty(exports, "resolvePowrTokens", {
649
667
  enumerable: true,
650
668
  get: function get() {
@@ -713,6 +731,7 @@ var _likes = _interopRequireDefault(require("./likes"));
713
731
  var _auth = _interopRequireDefault(require("./auth"));
714
732
  var _sso = _interopRequireWildcard(require("./sso"));
715
733
  var _forms = _interopRequireDefault(require("./forms"));
734
+ var _page = _interopRequireWildcard(require("./forms/page"));
716
735
  var _feedback = _interopRequireDefault(require("./feedback"));
717
736
  var _chat = _interopRequireDefault(require("./chat"));
718
737
  var _feeds = _interopRequireDefault(require("./feeds"));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "powr-sdk-web",
3
- "version": "6.14.2",
3
+ "version": "6.15.0",
4
4
  "main": "dist/index.js",
5
5
  "files": [
6
6
  "dist"