@agilemotion/oui-react-js 2.0.27 → 2.0.28

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,79 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.fetchDocumentObjectUrl = exports.fetchDocumentBlob = exports.downloadDocument = exports.documentRequestHeaders = exports.documentDownloadUrl = void 0;
7
+ var _ApplicationManager = _interopRequireDefault(require("./ApplicationManager"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ const location = window.location.protocol + '//' + window.location.hostname;
10
+
11
+ /**
12
+ * Docs download URL. Auth travels in HEADERS (see {@link documentRequestHeaders}), not the query
13
+ * string — keeping tokens out of URLs (which get logged/cached) and out of browser history.
14
+ */
15
+ const documentDownloadUrl = repositoryId => location + _ApplicationManager.default.getContextRoot() + '/docs/api/v1/manager/download/' + repositoryId;
16
+
17
+ /**
18
+ * Auth + tenant headers for a docs request. Access/id tokens go in headers (bearer + idToken);
19
+ * the tenant is required so the docs service can resolve the S3 bucket — omitted when there is no
20
+ * active tenant so the service can fall back.
21
+ */
22
+ exports.documentDownloadUrl = documentDownloadUrl;
23
+ const documentRequestHeaders = () => {
24
+ const headers = {};
25
+ const accessToken = sessionStorage.getItem('accessToken');
26
+ const idToken = sessionStorage.getItem('idToken');
27
+ if (accessToken) {
28
+ headers['Authorization'] = 'Bearer ' + accessToken;
29
+ }
30
+ if (idToken) {
31
+ headers['idToken'] = idToken;
32
+ }
33
+ const tenant = _ApplicationManager.default.getActiveTenant();
34
+ if (tenant) {
35
+ headers['tenant'] = tenant;
36
+ }
37
+ return headers;
38
+ };
39
+
40
+ /** Fetch a stored document as a Blob using header-based auth. */
41
+ exports.documentRequestHeaders = documentRequestHeaders;
42
+ const fetchDocumentBlob = repositoryId => fetch(encodeURI(documentDownloadUrl(repositoryId)), {
43
+ method: 'GET',
44
+ headers: documentRequestHeaders()
45
+ }).then(response => {
46
+ if (!response.ok) {
47
+ return Promise.reject({
48
+ code: response.status,
49
+ message: response.statusText
50
+ });
51
+ }
52
+ return response.blob();
53
+ });
54
+
55
+ /**
56
+ * Fetch a document and return an object URL for {@code <img>}/background display.
57
+ * The caller owns the URL and should {@code URL.revokeObjectURL} it when done.
58
+ */
59
+ exports.fetchDocumentBlob = fetchDocumentBlob;
60
+ const fetchDocumentObjectUrl = repositoryId => fetchDocumentBlob(repositoryId).then(blob => URL.createObjectURL(blob));
61
+
62
+ /**
63
+ * Download a document to the user's device — WITHOUT opening a new tab. Fetches the blob (header
64
+ * auth), then triggers a save via a transient anchor. The object URL is revoked shortly after so
65
+ * the download has time to start.
66
+ */
67
+ exports.fetchDocumentObjectUrl = fetchDocumentObjectUrl;
68
+ const downloadDocument = (repositoryId, fileName) => fetchDocumentBlob(repositoryId).then(blob => {
69
+ const objectUrl = URL.createObjectURL(blob);
70
+ const link = document.createElement('a');
71
+ link.href = objectUrl;
72
+ link.download = fileName || 'download';
73
+ document.body.appendChild(link);
74
+ link.click();
75
+ document.body.removeChild(link);
76
+ setTimeout(() => URL.revokeObjectURL(objectUrl), 10000);
77
+ });
78
+ exports.downloadDocument = downloadDocument;
79
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQXBwbGljYXRpb25NYW5hZ2VyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJsb2NhdGlvbiIsIndpbmRvdyIsInByb3RvY29sIiwiaG9zdG5hbWUiLCJkb2N1bWVudERvd25sb2FkVXJsIiwicmVwb3NpdG9yeUlkIiwiYXBwbGljYXRpb25NYW5hZ2VyIiwiZ2V0Q29udGV4dFJvb3QiLCJleHBvcnRzIiwiZG9jdW1lbnRSZXF1ZXN0SGVhZGVycyIsImhlYWRlcnMiLCJhY2Nlc3NUb2tlbiIsInNlc3Npb25TdG9yYWdlIiwiZ2V0SXRlbSIsImlkVG9rZW4iLCJ0ZW5hbnQiLCJnZXRBY3RpdmVUZW5hbnQiLCJmZXRjaERvY3VtZW50QmxvYiIsImZldGNoIiwiZW5jb2RlVVJJIiwibWV0aG9kIiwidGhlbiIsInJlc3BvbnNlIiwib2siLCJQcm9taXNlIiwicmVqZWN0IiwiY29kZSIsInN0YXR1cyIsIm1lc3NhZ2UiLCJzdGF0dXNUZXh0IiwiYmxvYiIsImZldGNoRG9jdW1lbnRPYmplY3RVcmwiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJkb3dubG9hZERvY3VtZW50IiwiZmlsZU5hbWUiLCJvYmplY3RVcmwiLCJsaW5rIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiaHJlZiIsImRvd25sb2FkIiwiYm9keSIsImFwcGVuZENoaWxkIiwiY2xpY2siLCJyZW1vdmVDaGlsZCIsInNldFRpbWVvdXQiLCJyZXZva2VPYmplY3RVUkwiXSwic291cmNlcyI6WyIuLi9zcmMvbGliL2RvY3VtZW50RG93bmxvYWQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFwcGxpY2F0aW9uTWFuYWdlciBmcm9tICcuL0FwcGxpY2F0aW9uTWFuYWdlcic7XG5cbmNvbnN0IGxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgJy8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcblxuLyoqXG4gKiBEb2NzIGRvd25sb2FkIFVSTC4gQXV0aCB0cmF2ZWxzIGluIEhFQURFUlMgKHNlZSB7QGxpbmsgZG9jdW1lbnRSZXF1ZXN0SGVhZGVyc30pLCBub3QgdGhlIHF1ZXJ5XG4gKiBzdHJpbmcg4oCUIGtlZXBpbmcgdG9rZW5zIG91dCBvZiBVUkxzICh3aGljaCBnZXQgbG9nZ2VkL2NhY2hlZCkgYW5kIG91dCBvZiBicm93c2VyIGhpc3RvcnkuXG4gKi9cbmV4cG9ydCBjb25zdCBkb2N1bWVudERvd25sb2FkVXJsID0gKHJlcG9zaXRvcnlJZCkgPT5cbiAgICBsb2NhdGlvbiArIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRDb250ZXh0Um9vdCgpICsgJy9kb2NzL2FwaS92MS9tYW5hZ2VyL2Rvd25sb2FkLycgKyByZXBvc2l0b3J5SWQ7XG5cbi8qKlxuICogQXV0aCArIHRlbmFudCBoZWFkZXJzIGZvciBhIGRvY3MgcmVxdWVzdC4gQWNjZXNzL2lkIHRva2VucyBnbyBpbiBoZWFkZXJzIChiZWFyZXIgKyBpZFRva2VuKTtcbiAqIHRoZSB0ZW5hbnQgaXMgcmVxdWlyZWQgc28gdGhlIGRvY3Mgc2VydmljZSBjYW4gcmVzb2x2ZSB0aGUgUzMgYnVja2V0IOKAlCBvbWl0dGVkIHdoZW4gdGhlcmUgaXMgbm9cbiAqIGFjdGl2ZSB0ZW5hbnQgc28gdGhlIHNlcnZpY2UgY2FuIGZhbGwgYmFjay5cbiAqL1xuZXhwb3J0IGNvbnN0IGRvY3VtZW50UmVxdWVzdEhlYWRlcnMgPSAoKSA9PiB7XG4gICAgY29uc3QgaGVhZGVycyA9IHt9O1xuICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnYWNjZXNzVG9rZW4nKTtcbiAgICBjb25zdCBpZFRva2VuID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnaWRUb2tlbicpO1xuICAgIGlmIChhY2Nlc3NUb2tlbikge1xuICAgICAgICBoZWFkZXJzWydBdXRob3JpemF0aW9uJ10gPSAnQmVhcmVyICcgKyBhY2Nlc3NUb2tlbjtcbiAgICB9XG4gICAgaWYgKGlkVG9rZW4pIHtcbiAgICAgICAgaGVhZGVyc1snaWRUb2tlbiddID0gaWRUb2tlbjtcbiAgICB9XG4gICAgY29uc3QgdGVuYW50ID0gYXBwbGljYXRpb25NYW5hZ2VyLmdldEFjdGl2ZVRlbmFudCgpO1xuICAgIGlmICh0ZW5hbnQpIHtcbiAgICAgICAgaGVhZGVyc1sndGVuYW50J10gPSB0ZW5hbnQ7XG4gICAgfVxuICAgIHJldHVybiBoZWFkZXJzO1xufTtcblxuLyoqIEZldGNoIGEgc3RvcmVkIGRvY3VtZW50IGFzIGEgQmxvYiB1c2luZyBoZWFkZXItYmFzZWQgYXV0aC4gKi9cbmV4cG9ydCBjb25zdCBmZXRjaERvY3VtZW50QmxvYiA9IChyZXBvc2l0b3J5SWQpID0+XG4gICAgZmV0Y2goZW5jb2RlVVJJKGRvY3VtZW50RG93bmxvYWRVcmwocmVwb3NpdG9yeUlkKSksIHttZXRob2Q6ICdHRVQnLCBoZWFkZXJzOiBkb2N1bWVudFJlcXVlc3RIZWFkZXJzKCl9KVxuICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3Qoe2NvZGU6IHJlc3BvbnNlLnN0YXR1cywgbWVzc2FnZTogcmVzcG9uc2Uuc3RhdHVzVGV4dH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmJsb2IoKTtcbiAgICAgICAgfSk7XG5cbi8qKlxuICogRmV0Y2ggYSBkb2N1bWVudCBhbmQgcmV0dXJuIGFuIG9iamVjdCBVUkwgZm9yIHtAY29kZSA8aW1nPn0vYmFja2dyb3VuZCBkaXNwbGF5LlxuICogVGhlIGNhbGxlciBvd25zIHRoZSBVUkwgYW5kIHNob3VsZCB7QGNvZGUgVVJMLnJldm9rZU9iamVjdFVSTH0gaXQgd2hlbiBkb25lLlxuICovXG5leHBvcnQgY29uc3QgZmV0Y2hEb2N1bWVudE9iamVjdFVybCA9IChyZXBvc2l0b3J5SWQpID0+XG4gICAgZmV0Y2hEb2N1bWVudEJsb2IocmVwb3NpdG9yeUlkKS50aGVuKChibG9iKSA9PiBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpKTtcblxuLyoqXG4gKiBEb3dubG9hZCBhIGRvY3VtZW50IHRvIHRoZSB1c2VyJ3MgZGV2aWNlIOKAlCBXSVRIT1VUIG9wZW5pbmcgYSBuZXcgdGFiLiBGZXRjaGVzIHRoZSBibG9iIChoZWFkZXJcbiAqIGF1dGgpLCB0aGVuIHRyaWdnZXJzIGEgc2F2ZSB2aWEgYSB0cmFuc2llbnQgYW5jaG9yLiBUaGUgb2JqZWN0IFVSTCBpcyByZXZva2VkIHNob3J0bHkgYWZ0ZXIgc29cbiAqIHRoZSBkb3dubG9hZCBoYXMgdGltZSB0byBzdGFydC5cbiAqL1xuZXhwb3J0IGNvbnN0IGRvd25sb2FkRG9jdW1lbnQgPSAocmVwb3NpdG9yeUlkLCBmaWxlTmFtZSkgPT5cbiAgICBmZXRjaERvY3VtZW50QmxvYihyZXBvc2l0b3J5SWQpLnRoZW4oKGJsb2IpID0+IHtcbiAgICAgICAgY29uc3Qgb2JqZWN0VXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgbGluay5ocmVmID0gb2JqZWN0VXJsO1xuICAgICAgICBsaW5rLmRvd25sb2FkID0gZmlsZU5hbWUgfHwgJ2Rvd25sb2FkJztcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICAgICAgbGluay5jbGljaygpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IFVSTC5yZXZva2VPYmplY3RVUkwob2JqZWN0VXJsKSwgMTAwMDApO1xuICAgIH0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxtQkFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQXNELFNBQUFELHVCQUFBRSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRXRELE1BQU1HLFFBQVEsR0FBR0MsTUFBTSxDQUFDRCxRQUFRLENBQUNFLFFBQVEsR0FBRyxJQUFJLEdBQUdELE1BQU0sQ0FBQ0QsUUFBUSxDQUFDRyxRQUFROztBQUUzRTtBQUNBO0FBQ0E7QUFDQTtBQUNPLE1BQU1DLG1CQUFtQixHQUFJQyxZQUFZLElBQzVDTCxRQUFRLEdBQUdNLDJCQUFrQixDQUFDQyxjQUFjLENBQUMsQ0FBQyxHQUFHLGdDQUFnQyxHQUFHRixZQUFZOztBQUVwRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkFHLE9BQUEsQ0FBQUosbUJBQUEsR0FBQUEsbUJBQUE7QUFLTyxNQUFNSyxzQkFBc0IsR0FBR0EsQ0FBQSxLQUFNO0VBQ3hDLE1BQU1DLE9BQU8sR0FBRyxDQUFDLENBQUM7RUFDbEIsTUFBTUMsV0FBVyxHQUFHQyxjQUFjLENBQUNDLE9BQU8sQ0FBQyxhQUFhLENBQUM7RUFDekQsTUFBTUMsT0FBTyxHQUFHRixjQUFjLENBQUNDLE9BQU8sQ0FBQyxTQUFTLENBQUM7RUFDakQsSUFBSUYsV0FBVyxFQUFFO0lBQ2JELE9BQU8sQ0FBQyxlQUFlLENBQUMsR0FBRyxTQUFTLEdBQUdDLFdBQVc7RUFDdEQ7RUFDQSxJQUFJRyxPQUFPLEVBQUU7SUFDVEosT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHSSxPQUFPO0VBQ2hDO0VBQ0EsTUFBTUMsTUFBTSxHQUFHVCwyQkFBa0IsQ0FBQ1UsZUFBZSxDQUFDLENBQUM7RUFDbkQsSUFBSUQsTUFBTSxFQUFFO0lBQ1JMLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBR0ssTUFBTTtFQUM5QjtFQUNBLE9BQU9MLE9BQU87QUFDbEIsQ0FBQzs7QUFFRDtBQUFBRixPQUFBLENBQUFDLHNCQUFBLEdBQUFBLHNCQUFBO0FBQ08sTUFBTVEsaUJBQWlCLEdBQUlaLFlBQVksSUFDMUNhLEtBQUssQ0FBQ0MsU0FBUyxDQUFDZixtQkFBbUIsQ0FBQ0MsWUFBWSxDQUFDLENBQUMsRUFBRTtFQUFDZSxNQUFNLEVBQUUsS0FBSztFQUFFVixPQUFPLEVBQUVELHNCQUFzQixDQUFDO0FBQUMsQ0FBQyxDQUFDLENBQ2xHWSxJQUFJLENBQUVDLFFBQVEsSUFBSztFQUNoQixJQUFJLENBQUNBLFFBQVEsQ0FBQ0MsRUFBRSxFQUFFO0lBQ2QsT0FBT0MsT0FBTyxDQUFDQyxNQUFNLENBQUM7TUFBQ0MsSUFBSSxFQUFFSixRQUFRLENBQUNLLE1BQU07TUFBRUMsT0FBTyxFQUFFTixRQUFRLENBQUNPO0lBQVUsQ0FBQyxDQUFDO0VBQ2hGO0VBQ0EsT0FBT1AsUUFBUSxDQUFDUSxJQUFJLENBQUMsQ0FBQztBQUMxQixDQUFDLENBQUM7O0FBRVY7QUFDQTtBQUNBO0FBQ0E7QUFIQXRCLE9BQUEsQ0FBQVMsaUJBQUEsR0FBQUEsaUJBQUE7QUFJTyxNQUFNYyxzQkFBc0IsR0FBSTFCLFlBQVksSUFDL0NZLGlCQUFpQixDQUFDWixZQUFZLENBQUMsQ0FBQ2dCLElBQUksQ0FBRVMsSUFBSSxJQUFLRSxHQUFHLENBQUNDLGVBQWUsQ0FBQ0gsSUFBSSxDQUFDLENBQUM7O0FBRTdFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFKQXRCLE9BQUEsQ0FBQXVCLHNCQUFBLEdBQUFBLHNCQUFBO0FBS08sTUFBTUcsZ0JBQWdCLEdBQUdBLENBQUM3QixZQUFZLEVBQUU4QixRQUFRLEtBQ25EbEIsaUJBQWlCLENBQUNaLFlBQVksQ0FBQyxDQUFDZ0IsSUFBSSxDQUFFUyxJQUFJLElBQUs7RUFDM0MsTUFBTU0sU0FBUyxHQUFHSixHQUFHLENBQUNDLGVBQWUsQ0FBQ0gsSUFBSSxDQUFDO0VBQzNDLE1BQU1PLElBQUksR0FBR0MsUUFBUSxDQUFDQyxhQUFhLENBQUMsR0FBRyxDQUFDO0VBQ3hDRixJQUFJLENBQUNHLElBQUksR0FBR0osU0FBUztFQUNyQkMsSUFBSSxDQUFDSSxRQUFRLEdBQUdOLFFBQVEsSUFBSSxVQUFVO0VBQ3RDRyxRQUFRLENBQUNJLElBQUksQ0FBQ0MsV0FBVyxDQUFDTixJQUFJLENBQUM7RUFDL0JBLElBQUksQ0FBQ08sS0FBSyxDQUFDLENBQUM7RUFDWk4sUUFBUSxDQUFDSSxJQUFJLENBQUNHLFdBQVcsQ0FBQ1IsSUFBSSxDQUFDO0VBQy9CUyxVQUFVLENBQUMsTUFBTWQsR0FBRyxDQUFDZSxlQUFlLENBQUNYLFNBQVMsQ0FBQyxFQUFFLEtBQUssQ0FBQztBQUMzRCxDQUFDLENBQUM7QUFBQzVCLE9BQUEsQ0FBQTBCLGdCQUFBLEdBQUFBLGdCQUFBIiwiaWdub3JlTGlzdCI6W119
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agilemotion/oui-react-js",
3
- "version": "2.0.27",
3
+ "version": "2.0.28",
4
4
  "description": "AgileMotion React UI Component Library - A comprehensive collection of dashboard components, forms, media controls, and more",
5
5
  "license": "ISC",
6
6
  "author": "",