@sutech_jp/raas-react-client 0.0.41 → 0.0.43

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.
@@ -3,11 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ReportConfig = void 0;
4
4
  var jsx_runtime_1 = require("react/jsx-runtime");
5
5
  var react_1 = require("react");
6
+ var targetOrigin_1 = require("../util/targetOrigin");
6
7
  var ReportConfig = function (_a) {
7
8
  var session = _a.session, _b = _a.width, width = _b === void 0 ? '100%' : _b, _c = _a.height, height = _c === void 0 ? '100%' : _c, _d = _a.hideTenantInfoConfig, hideTenantInfoConfig = _d === void 0 ? false : _d, _e = _a.toolbarPosition, toolbarPosition = _e === void 0 ? 'bottom' : _e, customStyles = _a.customStyles;
8
9
  var iframe = (0, react_1.useRef)(null);
9
10
  var handleMessage = (0, react_1.useCallback)(function (e) {
10
11
  var _a;
12
+ if ((0, targetOrigin_1.getTargetOrigin)(session === null || session === void 0 ? void 0 : session.newUrl) !== '*' && e.origin !== (0, targetOrigin_1.getTargetOrigin)(session === null || session === void 0 ? void 0 : session.newUrl)) {
13
+ return;
14
+ }
11
15
  var message = e.data;
12
16
  var from = message === null || message === void 0 ? void 0 : message.from;
13
17
  var action = message === null || message === void 0 ? void 0 : message.action;
@@ -26,9 +30,9 @@ var ReportConfig = function (_a) {
26
30
  toolbarPosition: toolbarPosition,
27
31
  customStyles: customStyles,
28
32
  },
29
- }, '*');
33
+ }, (0, targetOrigin_1.getTargetOrigin)(session === null || session === void 0 ? void 0 : session.newUrl));
30
34
  }
31
- }, [customStyles, hideTenantInfoConfig, toolbarPosition]);
35
+ }, [customStyles, hideTenantInfoConfig, session, toolbarPosition]);
32
36
  (0, react_1.useEffect)(function () {
33
37
  window.addEventListener('message', handleMessage);
34
38
  return function () { return window.removeEventListener('message', handleMessage); };
@@ -3,11 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ReportDesigner = void 0;
4
4
  var jsx_runtime_1 = require("react/jsx-runtime");
5
5
  var react_1 = require("react");
6
+ var targetOrigin_1 = require("../util/targetOrigin");
6
7
  var ReportDesigner = function (_a) {
7
8
  var session = _a.session, data = _a.data, _b = _a.width, width = _b === void 0 ? '100%' : _b, _c = _a.height, height = _c === void 0 ? '100%' : _c, customStyles = _a.customStyles, onBack = _a.onBack;
8
9
  var iframe = (0, react_1.useRef)(null);
9
10
  var handleMessage = (0, react_1.useCallback)(function (e) {
10
11
  var _a;
12
+ if ((0, targetOrigin_1.getTargetOrigin)(session === null || session === void 0 ? void 0 : session.newUrl) !== '*' && e.origin !== (0, targetOrigin_1.getTargetOrigin)(session === null || session === void 0 ? void 0 : session.newUrl)) {
13
+ return;
14
+ }
11
15
  var message = e.data;
12
16
  var from = message === null || message === void 0 ? void 0 : message.from;
13
17
  var action = message === null || message === void 0 ? void 0 : message.action;
@@ -23,12 +27,12 @@ var ReportDesigner = function (_a) {
23
27
  action: 'onRender',
24
28
  data: data,
25
29
  customStyles: customStyles,
26
- }, '*');
30
+ }, (0, targetOrigin_1.getTargetOrigin)(session === null || session === void 0 ? void 0 : session.newUrl));
27
31
  }
28
32
  else if (action === 'onBack') {
29
33
  onBack();
30
34
  }
31
- }, [customStyles, data, onBack]);
35
+ }, [customStyles, data, onBack, session]);
32
36
  (0, react_1.useEffect)(function () {
33
37
  window.addEventListener('message', handleMessage);
34
38
  return function () { return window.removeEventListener('message', handleMessage); };
@@ -30,6 +30,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
30
30
  exports.ReportPaperForm = void 0;
31
31
  var jsx_runtime_1 = require("react/jsx-runtime");
32
32
  var react_1 = require("react");
33
+ var targetOrigin_1 = require("../util/targetOrigin");
33
34
  var ReportPaperForm = function (_a) {
34
35
  var session = _a.session, layoutId = _a.layoutId, data = _a.data, onDataUpdate = _a.onDataUpdate, customData = _a.customData, onCustomDataUpdate = _a.onCustomDataUpdate, onRender = _a.onRender, reportOptions = _a.reportOptions, layout = _a.layout, onLayoutUpdate = _a.onLayoutUpdate, _b = _a.editability, editability = _b === void 0 ? 'none' : _b, _c = _a.layoutEditable, layoutEditable = _c === void 0 ? false : _c, _d = _a.downloadable, downloadable = _d === void 0 ? false : _d, version = _a.version, _e = _a.width, width = _e === void 0 ? '100%' : _e, _f = _a.height, height = _f === void 0 ? 0 : _f, customStyles = _a.customStyles;
35
36
  var _g = __read((0, react_1.useState)('unauthorized'), 2), formState = _g[0], setFormState = _g[1];
@@ -54,8 +55,8 @@ var ReportPaperForm = function (_a) {
54
55
  layoutEditable: layoutEditable,
55
56
  downloadable: downloadable,
56
57
  customStyles: customStyles,
57
- }, '*');
58
- }, [formState, layoutId, editability, layout, layoutEditable, version, customStyles, downloadable]);
58
+ }, (0, targetOrigin_1.getTargetOrigin)(session === null || session === void 0 ? void 0 : session.newUrl));
59
+ }, [formState, layoutId, editability, layout, layoutEditable, version, customStyles, downloadable, session]);
59
60
  (0, react_1.useEffect)(function () {
60
61
  var _a;
61
62
  if (formState === 'unauthorized')
@@ -73,9 +74,12 @@ var ReportPaperForm = function (_a) {
73
74
  data: data,
74
75
  customData: customData,
75
76
  options: reportOptions,
76
- }, '*');
77
- }, [formState, layoutInitialized, data, customData, reportOptions]);
77
+ }, (0, targetOrigin_1.getTargetOrigin)(session === null || session === void 0 ? void 0 : session.newUrl));
78
+ }, [formState, layoutInitialized, data, customData, reportOptions, session]);
78
79
  var handleMessage = (0, react_1.useCallback)(function (e) {
80
+ if ((0, targetOrigin_1.getTargetOrigin)(session === null || session === void 0 ? void 0 : session.newUrl) !== '*' && e.origin !== (0, targetOrigin_1.getTargetOrigin)(session === null || session === void 0 ? void 0 : session.newUrl)) {
81
+ return;
82
+ }
79
83
  var message = e.data;
80
84
  var from = message === null || message === void 0 ? void 0 : message.from;
81
85
  var action = message === null || message === void 0 ? void 0 : message.action;
@@ -111,7 +115,7 @@ var ReportPaperForm = function (_a) {
111
115
  else if (action === 'onChangeContentHeight') {
112
116
  setContentHeight(message === null || message === void 0 ? void 0 : message.contentHeight);
113
117
  }
114
- }, [data, onDataUpdate, onCustomDataUpdate, onLayoutUpdate, onRender]);
118
+ }, [session, onRender, onDataUpdate, data, onCustomDataUpdate, onLayoutUpdate]);
115
119
  (0, react_1.useEffect)(function () {
116
120
  window.addEventListener('message', handleMessage);
117
121
  return function () { return window.removeEventListener('message', handleMessage); };
@@ -3,11 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ReportLayoutGallery = void 0;
4
4
  var jsx_runtime_1 = require("react/jsx-runtime");
5
5
  var react_1 = require("react");
6
+ var targetOrigin_1 = require("../util/targetOrigin");
6
7
  var ReportLayoutGallery = function (_a) {
7
8
  var session = _a.session, _b = _a.width, width = _b === void 0 ? '100%' : _b, _c = _a.height, height = _c === void 0 ? '100%' : _c, customStyles = _a.customStyles, _d = _a.deletable, deletable = _d === void 0 ? false : _d, onSelectLayout = _a.onSelectLayout, onEditLayout = _a.onEditLayout, onCreateLayout = _a.onCreateLayout;
8
9
  var iframe = (0, react_1.useRef)(null);
9
10
  var handleMessage = (0, react_1.useCallback)(function (e) {
10
11
  var _a, _b, _c, _d, _e;
12
+ if ((0, targetOrigin_1.getTargetOrigin)(session === null || session === void 0 ? void 0 : session.newUrl) !== '*' && e.origin !== (0, targetOrigin_1.getTargetOrigin)(session === null || session === void 0 ? void 0 : session.newUrl)) {
13
+ return;
14
+ }
11
15
  var from = (_a = e.data) === null || _a === void 0 ? void 0 : _a.from;
12
16
  var action = (_b = e.data) === null || _b === void 0 ? void 0 : _b.action;
13
17
  if (from !== 'gallery') {
@@ -36,9 +40,9 @@ var ReportLayoutGallery = function (_a) {
36
40
  deletable: deletable,
37
41
  customStyles: customStyles,
38
42
  },
39
- }, '*');
43
+ }, (0, targetOrigin_1.getTargetOrigin)(session === null || session === void 0 ? void 0 : session.newUrl));
40
44
  }
41
- }, [customStyles, deletable, onCreateLayout, onEditLayout, onSelectLayout]);
45
+ }, [customStyles, deletable, onCreateLayout, onEditLayout, onSelectLayout, session]);
42
46
  (0, react_1.useEffect)(function () {
43
47
  window.addEventListener('message', handleMessage);
44
48
  return function () { return window.removeEventListener('message', handleMessage); };
package/dist/index.d.ts CHANGED
@@ -3,4 +3,5 @@ export { ReportDesigner } from './designer/ReportDesigner';
3
3
  export { ReportPaperForm } from './form/ReportPaperForm';
4
4
  export { useReportPaperForm, createLocalSession } from './form/useReportPaperForm';
5
5
  export { ReportLayoutGallery } from './gallery/ReportLayoutGallery';
6
+ export { ReportTenantInfo } from './tenantInfo/ReportTenantInfo';
6
7
  export * from './types';
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.ReportLayoutGallery = exports.createLocalSession = exports.useReportPaperForm = exports.ReportPaperForm = exports.ReportDesigner = exports.ReportConfig = void 0;
17
+ exports.ReportTenantInfo = exports.ReportLayoutGallery = exports.createLocalSession = exports.useReportPaperForm = exports.ReportPaperForm = exports.ReportDesigner = exports.ReportConfig = void 0;
18
18
  var ReportConfig_1 = require("./config/ReportConfig");
19
19
  Object.defineProperty(exports, "ReportConfig", { enumerable: true, get: function () { return ReportConfig_1.ReportConfig; } });
20
20
  var ReportDesigner_1 = require("./designer/ReportDesigner");
@@ -26,4 +26,6 @@ Object.defineProperty(exports, "useReportPaperForm", { enumerable: true, get: fu
26
26
  Object.defineProperty(exports, "createLocalSession", { enumerable: true, get: function () { return useReportPaperForm_1.createLocalSession; } });
27
27
  var ReportLayoutGallery_1 = require("./gallery/ReportLayoutGallery");
28
28
  Object.defineProperty(exports, "ReportLayoutGallery", { enumerable: true, get: function () { return ReportLayoutGallery_1.ReportLayoutGallery; } });
29
+ var ReportTenantInfo_1 = require("./tenantInfo/ReportTenantInfo");
30
+ Object.defineProperty(exports, "ReportTenantInfo", { enumerable: true, get: function () { return ReportTenantInfo_1.ReportTenantInfo; } });
29
31
  __exportStar(require("./types"), exports);
@@ -0,0 +1,11 @@
1
+ import { VFC } from 'react';
2
+ import { Session } from '../types';
3
+ import { ThemeOptions } from '../types/theme';
4
+ declare type ReportTenantInfoProps = {
5
+ session: Session | undefined;
6
+ width?: string | number;
7
+ height?: string | number;
8
+ customStyles?: ThemeOptions;
9
+ };
10
+ export declare const ReportTenantInfo: VFC<ReportTenantInfoProps>;
11
+ export {};
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReportTenantInfo = void 0;
4
+ var jsx_runtime_1 = require("react/jsx-runtime");
5
+ var react_1 = require("react");
6
+ var targetOrigin_1 = require("../util/targetOrigin");
7
+ var ReportTenantInfo = function (_a) {
8
+ var session = _a.session, _b = _a.width, width = _b === void 0 ? '100%' : _b, _c = _a.height, height = _c === void 0 ? '100%' : _c, customStyles = _a.customStyles;
9
+ var iframe = (0, react_1.useRef)(null);
10
+ var handleMessage = (0, react_1.useCallback)(function (e) {
11
+ var _a;
12
+ if ((0, targetOrigin_1.getTargetOrigin)(session === null || session === void 0 ? void 0 : session.newUrl) !== '*' && e.origin !== (0, targetOrigin_1.getTargetOrigin)(session === null || session === void 0 ? void 0 : session.newUrl)) {
13
+ return;
14
+ }
15
+ var message = e.data;
16
+ var from = message === null || message === void 0 ? void 0 : message.from;
17
+ var action = message === null || message === void 0 ? void 0 : message.action;
18
+ if (from !== 'tenantInfo') {
19
+ return;
20
+ }
21
+ if (action === 'onAuthorized') {
22
+ var iframeWindow = (_a = iframe.current) === null || _a === void 0 ? void 0 : _a.contentWindow;
23
+ if (!iframeWindow)
24
+ return;
25
+ iframeWindow.postMessage({
26
+ from: 'tenantInfoClient',
27
+ action: 'onShow',
28
+ props: {
29
+ customStyles: customStyles,
30
+ },
31
+ }, (0, targetOrigin_1.getTargetOrigin)(session === null || session === void 0 ? void 0 : session.newUrl));
32
+ }
33
+ }, [customStyles, session]);
34
+ (0, react_1.useEffect)(function () {
35
+ window.addEventListener('message', handleMessage);
36
+ return function () { return window.removeEventListener('message', handleMessage); };
37
+ }, [handleMessage]);
38
+ return (0, jsx_runtime_1.jsx)("iframe", { ref: iframe, id: "tenantInfo", src: session === null || session === void 0 ? void 0 : session.newUrl, style: { width: width, height: height, border: 0 } });
39
+ };
40
+ exports.ReportTenantInfo = ReportTenantInfo;
@@ -0,0 +1 @@
1
+ export declare const getTargetOrigin: (source: string | undefined) => string;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTargetOrigin = void 0;
4
+ var getTargetOrigin = function (source) {
5
+ if (!source)
6
+ return '*';
7
+ try {
8
+ return new URL(source).origin;
9
+ }
10
+ catch (e) {
11
+ return '*';
12
+ }
13
+ };
14
+ exports.getTargetOrigin = getTargetOrigin;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sutech_jp/raas-react-client",
3
- "version": "0.0.41",
3
+ "version": "0.0.43",
4
4
  "description": "react client for raas produced by SuTech",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",