@sutech_jp/raas-react-client 0.0.2 → 0.0.3
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/ReportPaperForm.d.ts +3 -0
- package/dist/ReportPaperForm.js +117 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.js +20 -3
- package/dist/types.d.ts +29 -0
- package/dist/types.js +2 -0
- package/dist/useReportPaperForm.d.ts +19 -0
- package/dist/useReportPaperForm.js +74 -0
- package/package.json +1 -4
- package/dist/HelloWorld.d.ts +0 -2
- package/dist/HelloWorld.js +0 -11
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { ReactElement } from 'react';
|
|
2
|
+
import { ReportPaperFormProps } from './types';
|
|
3
|
+
export declare const ReportPaperForm: <D>({ url, layoutId, data, onDataUpdate, customData, onCustomDataUpdate, onRender, reportOptions, layout, onLayoutUpdate, editability, layoutEditable, }: ReportPaperFormProps<D>) => ReactElement;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
14
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
15
|
+
if (!m) return o;
|
|
16
|
+
var i = m.call(o), r, ar = [], e;
|
|
17
|
+
try {
|
|
18
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
19
|
+
}
|
|
20
|
+
catch (error) { e = { error: error }; }
|
|
21
|
+
finally {
|
|
22
|
+
try {
|
|
23
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
24
|
+
}
|
|
25
|
+
finally { if (e) throw e.error; }
|
|
26
|
+
}
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
+
exports.ReportPaperForm = void 0;
|
|
31
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
32
|
+
var react_1 = require("react");
|
|
33
|
+
var ReportPaperForm = function (_a) {
|
|
34
|
+
var url = _a.url, 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;
|
|
35
|
+
var _d = __read((0, react_1.useState)('unauthorized'), 2), formState = _d[0], setFormState = _d[1];
|
|
36
|
+
var _e = __read((0, react_1.useState)(), 2), renderedLayoutId = _e[0], setRenderedLayoutId = _e[1];
|
|
37
|
+
var _f = __read((0, react_1.useState)(), 2), contentHeight = _f[0], setContentHeight = _f[1];
|
|
38
|
+
var iframe = (0, react_1.useRef)(null);
|
|
39
|
+
(0, react_1.useEffect)(function () {
|
|
40
|
+
var _a;
|
|
41
|
+
if (formState === 'unauthorized' || layoutId === undefined || renderedLayoutId === layoutId) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
// set the layout id as rendered immediately
|
|
45
|
+
setRenderedLayoutId(layoutId);
|
|
46
|
+
var iframeWindow = (_a = iframe.current) === null || _a === void 0 ? void 0 : _a.contentWindow;
|
|
47
|
+
if (!iframeWindow)
|
|
48
|
+
return;
|
|
49
|
+
iframeWindow.postMessage({
|
|
50
|
+
from: 'paperFormClient',
|
|
51
|
+
action: 'onShowLayout',
|
|
52
|
+
id: layoutId,
|
|
53
|
+
layout: layout,
|
|
54
|
+
editability: editability,
|
|
55
|
+
layoutEditable: layoutEditable,
|
|
56
|
+
}, '*');
|
|
57
|
+
}, [formState, layoutId, editability, renderedLayoutId, layout, layoutEditable]);
|
|
58
|
+
(0, react_1.useEffect)(function () {
|
|
59
|
+
var _a;
|
|
60
|
+
if ((formState !== 'ready' && formState !== 'rendered') || !data)
|
|
61
|
+
return;
|
|
62
|
+
var iframeWindow = (_a = iframe.current) === null || _a === void 0 ? void 0 : _a.contentWindow;
|
|
63
|
+
if (!iframeWindow)
|
|
64
|
+
return;
|
|
65
|
+
iframeWindow.postMessage({
|
|
66
|
+
from: 'paperFormClient',
|
|
67
|
+
action: 'onUpdateData',
|
|
68
|
+
data: data,
|
|
69
|
+
customData: customData,
|
|
70
|
+
options: reportOptions,
|
|
71
|
+
}, '*');
|
|
72
|
+
}, [formState, data, customData, reportOptions]);
|
|
73
|
+
var handleMessage = (0, react_1.useCallback)(function (e) {
|
|
74
|
+
var message = e.data;
|
|
75
|
+
var from = message === null || message === void 0 ? void 0 : message.from;
|
|
76
|
+
var action = message === null || message === void 0 ? void 0 : message.action;
|
|
77
|
+
if (from !== 'paperForm') {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
if (action === 'onAuthorized') {
|
|
81
|
+
setFormState('authorized');
|
|
82
|
+
}
|
|
83
|
+
else if (action === 'onReady') {
|
|
84
|
+
setFormState('ready');
|
|
85
|
+
}
|
|
86
|
+
else if (action === 'onRender') {
|
|
87
|
+
setContentHeight(message === null || message === void 0 ? void 0 : message.contentHeight);
|
|
88
|
+
if (onRender)
|
|
89
|
+
onRender((message === null || message === void 0 ? void 0 : message.hasRequiredBlank) || false);
|
|
90
|
+
setFormState('rendered');
|
|
91
|
+
}
|
|
92
|
+
else if (action === 'onBusinessDataUpdate') {
|
|
93
|
+
var updated = message.updated, options = message.options;
|
|
94
|
+
if (onDataUpdate)
|
|
95
|
+
onDataUpdate(__assign(__assign({}, data), updated), options);
|
|
96
|
+
}
|
|
97
|
+
else if (action === 'onCustomDataUpdate') {
|
|
98
|
+
var customData_1 = message.customData, options = message.options;
|
|
99
|
+
if (onCustomDataUpdate)
|
|
100
|
+
onCustomDataUpdate(customData_1, options);
|
|
101
|
+
}
|
|
102
|
+
else if (action === 'onEditLayout') {
|
|
103
|
+
var layout_1 = message.layout;
|
|
104
|
+
if (onLayoutUpdate)
|
|
105
|
+
onLayoutUpdate(layout_1);
|
|
106
|
+
}
|
|
107
|
+
}, [data, onDataUpdate, onCustomDataUpdate, onLayoutUpdate, onRender]);
|
|
108
|
+
(0, react_1.useEffect)(function () {
|
|
109
|
+
window.addEventListener('message', handleMessage);
|
|
110
|
+
return function () { return window.removeEventListener('message', handleMessage); };
|
|
111
|
+
}, [handleMessage]);
|
|
112
|
+
return ((0, jsx_runtime_1.jsx)("iframe", { ref: iframe, id: "paper-form", name: "paperForm", frameBorder: '0', src: url, style: {
|
|
113
|
+
minWidth: '100%',
|
|
114
|
+
height: "".concat(contentHeight ? contentHeight + 10 : 240, "px"),
|
|
115
|
+
} }));
|
|
116
|
+
};
|
|
117
|
+
exports.ReportPaperForm = ReportPaperForm;
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
2
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
var
|
|
5
|
-
Object.defineProperty(exports, "
|
|
17
|
+
exports.useReportPaperForm = exports.ReportPaperForm = void 0;
|
|
18
|
+
var ReportPaperForm_1 = require("./ReportPaperForm");
|
|
19
|
+
Object.defineProperty(exports, "ReportPaperForm", { enumerable: true, get: function () { return ReportPaperForm_1.ReportPaperForm; } });
|
|
20
|
+
var useReportPaperForm_1 = require("./useReportPaperForm");
|
|
21
|
+
Object.defineProperty(exports, "useReportPaperForm", { enumerable: true, get: function () { return useReportPaperForm_1.useReportPaperForm; } });
|
|
22
|
+
__exportStar(require("./types"), exports);
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export declare type Layout = any;
|
|
2
|
+
export declare type CustomData = any[];
|
|
3
|
+
export declare type ReportOptions = any[];
|
|
4
|
+
export declare type UserEditability = 'all' | 'customDataOnly' | 'none';
|
|
5
|
+
export declare type FormState = 'unauthorized' | 'authorized' | 'ready' | 'rendered';
|
|
6
|
+
declare type LayoutEditable = {
|
|
7
|
+
layoutEditable: true;
|
|
8
|
+
layout: Layout;
|
|
9
|
+
onLayoutUpdate: (layout: Layout) => void;
|
|
10
|
+
};
|
|
11
|
+
declare type LayoutNotEditable = {
|
|
12
|
+
layoutEditable?: false;
|
|
13
|
+
layout?: Layout;
|
|
14
|
+
onLayoutUpdate?: (layout: Layout) => void;
|
|
15
|
+
};
|
|
16
|
+
export declare type PaperFormArgs<D> = {
|
|
17
|
+
data: D;
|
|
18
|
+
onDataUpdate?: (data: D, reportOptions: ReportOptions) => void;
|
|
19
|
+
customData?: CustomData;
|
|
20
|
+
onCustomDataUpdate?: (customData: CustomData, reportOptions: ReportOptions) => void;
|
|
21
|
+
onRender?: (hasRequiredBlank: boolean) => void;
|
|
22
|
+
reportOptions?: ReportOptions;
|
|
23
|
+
editability?: UserEditability;
|
|
24
|
+
} & (LayoutEditable | LayoutNotEditable);
|
|
25
|
+
export declare type ReportPaperFormProps<D> = {
|
|
26
|
+
url: string;
|
|
27
|
+
layoutId: number;
|
|
28
|
+
} & PaperFormArgs<D>;
|
|
29
|
+
export {};
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { CustomData, Layout, PaperFormArgs, ReportOptions, UserEditability } from './types';
|
|
2
|
+
declare type Ret<D> = {
|
|
3
|
+
dirty: boolean;
|
|
4
|
+
hasRequiredBlank: boolean;
|
|
5
|
+
onInitialize: (data: D) => void;
|
|
6
|
+
paperFormArgs: Required<PaperFormArgs<D>>;
|
|
7
|
+
generatePdfArgs: {
|
|
8
|
+
data: D;
|
|
9
|
+
customData: CustomData;
|
|
10
|
+
options: ReportOptions;
|
|
11
|
+
layout: Layout;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
declare type Options = {
|
|
15
|
+
editability?: UserEditability;
|
|
16
|
+
layoutEditable?: boolean;
|
|
17
|
+
};
|
|
18
|
+
export declare const useReportPaperForm: <D>(initialData: D, options?: Options) => Ret<D>;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
+
if (!m) return o;
|
|
5
|
+
var i = m.call(o), r, ar = [], e;
|
|
6
|
+
try {
|
|
7
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
+
}
|
|
9
|
+
catch (error) { e = { error: error }; }
|
|
10
|
+
finally {
|
|
11
|
+
try {
|
|
12
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
+
}
|
|
14
|
+
finally { if (e) throw e.error; }
|
|
15
|
+
}
|
|
16
|
+
return ar;
|
|
17
|
+
};
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.useReportPaperForm = void 0;
|
|
20
|
+
var react_1 = require("react");
|
|
21
|
+
var useReportPaperForm = function (initialData, options) {
|
|
22
|
+
var _a = __read((0, react_1.useState)(initialData), 2), data = _a[0], setData = _a[1];
|
|
23
|
+
var _b = __read((0, react_1.useState)([]), 2), customData = _b[0], setCustomData = _b[1];
|
|
24
|
+
var _c = __read((0, react_1.useState)([]), 2), reportOptions = _c[0], setReportOptions = _c[1];
|
|
25
|
+
var _d = __read((0, react_1.useState)(), 2), layout = _d[0], setLayout = _d[1];
|
|
26
|
+
var _e = __read((0, react_1.useState)(false), 2), dirty = _e[0], setDirty = _e[1];
|
|
27
|
+
var _f = __read((0, react_1.useState)(false), 2), hasRequiredBlank = _f[0], setHasRequiredBlank = _f[1];
|
|
28
|
+
var onInitialize = (0, react_1.useCallback)(function (data) {
|
|
29
|
+
setData(data);
|
|
30
|
+
setCustomData([]);
|
|
31
|
+
setReportOptions([]);
|
|
32
|
+
setLayout(undefined);
|
|
33
|
+
setDirty(false);
|
|
34
|
+
}, []);
|
|
35
|
+
var onDataUpdate = (0, react_1.useCallback)(function (data, options) {
|
|
36
|
+
setData(data);
|
|
37
|
+
setReportOptions(options);
|
|
38
|
+
setDirty(true);
|
|
39
|
+
}, []);
|
|
40
|
+
var onCustomDataUpdate = (0, react_1.useCallback)(function (customData, options) {
|
|
41
|
+
setCustomData(customData);
|
|
42
|
+
setReportOptions(options);
|
|
43
|
+
setDirty(true);
|
|
44
|
+
}, []);
|
|
45
|
+
var onLayoutUpdate = (0, react_1.useCallback)(function (layout) {
|
|
46
|
+
setLayout(layout);
|
|
47
|
+
setDirty(true);
|
|
48
|
+
}, []);
|
|
49
|
+
var onRender = setHasRequiredBlank;
|
|
50
|
+
return {
|
|
51
|
+
dirty: dirty,
|
|
52
|
+
hasRequiredBlank: hasRequiredBlank,
|
|
53
|
+
onInitialize: onInitialize,
|
|
54
|
+
paperFormArgs: {
|
|
55
|
+
data: data,
|
|
56
|
+
onDataUpdate: onDataUpdate,
|
|
57
|
+
customData: customData,
|
|
58
|
+
onCustomDataUpdate: onCustomDataUpdate,
|
|
59
|
+
reportOptions: reportOptions,
|
|
60
|
+
layout: layout,
|
|
61
|
+
onLayoutUpdate: onLayoutUpdate,
|
|
62
|
+
onRender: onRender,
|
|
63
|
+
editability: (options === null || options === void 0 ? void 0 : options.editability) || 'none',
|
|
64
|
+
layoutEditable: (options === null || options === void 0 ? void 0 : options.layoutEditable) || false,
|
|
65
|
+
},
|
|
66
|
+
generatePdfArgs: {
|
|
67
|
+
data: data,
|
|
68
|
+
customData: customData,
|
|
69
|
+
options: reportOptions,
|
|
70
|
+
layout: layout,
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
exports.useReportPaperForm = useReportPaperForm;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sutech_jp/raas-react-client",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "react client for raas produced by SuTech",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -32,8 +32,6 @@
|
|
|
32
32
|
"@types/jest": "^27.4.0",
|
|
33
33
|
"@types/node": "^16.9.4",
|
|
34
34
|
"@types/react": "17.0.20",
|
|
35
|
-
"@types/react-beautiful-dnd": "^13.1.2",
|
|
36
|
-
"@types/uuid": "^8.3.4",
|
|
37
35
|
"@typescript-eslint/eslint-plugin": "^4.31.2",
|
|
38
36
|
"@typescript-eslint/parser": "^4.31.2",
|
|
39
37
|
"eslint": "^7.32.0",
|
|
@@ -52,7 +50,6 @@
|
|
|
52
50
|
"typescript": "^4.4.3"
|
|
53
51
|
},
|
|
54
52
|
"peerDependencies": {
|
|
55
|
-
"encoding": "0.1.13",
|
|
56
53
|
"next": "^12.0.4",
|
|
57
54
|
"react": "17.0.2",
|
|
58
55
|
"react-dom": "17.0.2"
|
package/dist/HelloWorld.d.ts
DELETED
package/dist/HelloWorld.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.HelloWorld = void 0;
|
|
7
|
-
var react_1 = __importDefault(require("react"));
|
|
8
|
-
var HelloWorld = function () {
|
|
9
|
-
return react_1.default.createElement("h3", null, "Hello World");
|
|
10
|
-
};
|
|
11
|
-
exports.HelloWorld = HelloWorld;
|