@agilemotion/oui-react-js 1.8.78 → 2.0.1

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.
Files changed (32) hide show
  1. package/README.TXT +10 -0
  2. package/dist/ApplicationManager.js +39 -2
  3. package/dist/BasicAppHome.js +4 -0
  4. package/dist/RestService.js +11 -2
  5. package/dist/RestUtils.js +11 -2
  6. package/dist/assets/jss/views/loginBasicStyle.js +5 -5
  7. package/dist/assets/jss/views/loginBasicStyle.jsx +5 -5
  8. package/dist/components/Button.js +47 -29
  9. package/dist/components/DocumentViewer.js +32 -19
  10. package/dist/components/Icon.js +3 -14
  11. package/dist/components/Toolbar.js +2 -2
  12. package/dist/components/Tree.js +237 -141
  13. package/dist/components/WordDocumentViewer.js +35 -7
  14. package/dist/components/dashboard/FoldingSideTabDashboard.js +10 -1
  15. package/dist/components/facialRecognition/FacialRegistration.js +15 -1
  16. package/dist/components/facialRecognition/FacialVerification.js +23 -2
  17. package/dist/components/form/FieldSet.js +8 -0
  18. package/dist/components/form/ImageEditor.js +64 -43
  19. package/dist/components/form/MultiFileUploadField.js +6 -5
  20. package/dist/components/form/RadioGroup.js +9 -1
  21. package/dist/components/form/Section.js +8 -2
  22. package/dist/components/form/TransferList.js +14 -10
  23. package/dist/components/form/UploadField.js +17 -4
  24. package/dist/components/layout/Layout.css +49 -1
  25. package/dist/components/layout/Layout.js +41 -1
  26. package/dist/components/layout/View.css +1 -1
  27. package/dist/components/navbars/PortalNavbar.js +5 -0
  28. package/dist/components/signatures/AgilitySignaturePanel.js +230 -22
  29. package/dist/components/signatures/DynamicSignatureDocumentContainer.js +487 -0
  30. package/dist/components/signatures/ImageSignatureInput.js +1 -2
  31. package/dist/event/EventType.js +3 -1
  32. package/package.json +2 -1
@@ -5,11 +5,20 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.Tree = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
- var _propTypes = _interopRequireDefault(require("prop-types"));
9
- var _SvgIcon = _interopRequireDefault(require("@mui/material/SvgIcon"));
10
- var _styles = require("@mui/styles");
8
+ var _styles = require("@mui/material/styles");
11
9
  var _SimpleTreeView = require("@mui/x-tree-view/SimpleTreeView");
12
10
  var _TreeItem = require("@mui/x-tree-view/TreeItem");
11
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
12
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
13
+ var _FolderRounded = _interopRequireDefault(require("@mui/icons-material/FolderRounded"));
14
+ var _FolderOpenRounded = _interopRequireDefault(require("@mui/icons-material/FolderOpenRounded"));
15
+ var _InsertDriveFileOutlined = _interopRequireDefault(require("@mui/icons-material/InsertDriveFileOutlined"));
16
+ var _CorporateFareRounded = _interopRequireDefault(require("@mui/icons-material/CorporateFareRounded"));
17
+ var _GroupsRounded = _interopRequireDefault(require("@mui/icons-material/GroupsRounded"));
18
+ var _BadgeOutlined = _interopRequireDefault(require("@mui/icons-material/BadgeOutlined"));
19
+ var _AccountTreeRounded = _interopRequireDefault(require("@mui/icons-material/AccountTreeRounded"));
20
+ var _CircleOutlined = _interopRequireDefault(require("@mui/icons-material/CircleOutlined"));
21
+ var _HubOutlined = _interopRequireDefault(require("@mui/icons-material/HubOutlined"));
13
22
  var _Collapse = _interopRequireDefault(require("@mui/material/Collapse"));
14
23
  var _web = require("react-spring/web.cjs");
15
24
  var _Utils = _interopRequireDefault(require("../Utils"));
@@ -19,91 +28,173 @@ var _Observable = _interopRequireDefault(require("../event/Observable"));
19
28
  var _EventType = _interopRequireDefault(require("../event/EventType"));
20
29
  var _ApplicationManager = _interopRequireDefault(require("../ApplicationManager"));
21
30
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
22
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
23
- // web.cjs is required for IE 11 support
31
+ // ── Animated collapse transition ──
24
32
 
25
- function MinusSquare(props) {
26
- return /*#__PURE__*/_react.default.createElement(_SvgIcon.default, _extends({
27
- fontSize: "inherit",
28
- style: {
29
- width: 14,
30
- height: 14
31
- }
32
- }, props), /*#__PURE__*/_react.default.createElement("path", {
33
- d: "M22.047 22.074v0 0-20.147 0h-20.12v0 20.147 0h20.12zM22.047 24h-20.12q-.803 0-1.365-.562t-.562-1.365v-20.147q0-.776.562-1.351t1.365-.575h20.147q.776 0 1.351.575t.575 1.351v20.147q0 .803-.575 1.365t-1.378.562v0zM17.873 11.023h-11.826q-.375 0-.669.281t-.294.682v0q0 .401.294 .682t.669.281h11.826q.375 0 .669-.281t.294-.682v0q0-.401-.294-.682t-.669-.281z"
34
- }));
35
- }
36
- function PlusSquare(props) {
37
- return /*#__PURE__*/_react.default.createElement(_SvgIcon.default, _extends({
38
- fontSize: "inherit",
39
- style: {
40
- width: 14,
41
- height: 14
42
- }
43
- }, props), /*#__PURE__*/_react.default.createElement("path", {
44
- d: "M22.047 22.074v0 0-20.147 0h-20.12v0 20.147 0h20.12zM22.047 24h-20.12q-.803 0-1.365-.562t-.562-1.365v-20.147q0-.776.562-1.351t1.365-.575h20.147q.776 0 1.351.575t.575 1.351v20.147q0 .803-.575 1.365t-1.378.562v0zM17.873 12.977h-4.923v4.896q0 .401-.281.682t-.682.281v0q-.375 0-.669-.281t-.294-.682v-4.896h-4.923q-.401 0-.682-.294t-.281-.669v0q0-.401.281-.682t.682-.281h4.923v-4.896q0-.401.294-.682t.669-.281v0q.401 0 .682.281t.281.682v4.896h4.923q.401 0 .682.281t.281.682v0q0 .375-.281.669t-.682.294z"
45
- }));
46
- }
47
- function CloseSquare(props) {
48
- return /*#__PURE__*/_react.default.createElement(_SvgIcon.default, _extends({
49
- className: "close",
50
- fontSize: "inherit",
51
- style: {
52
- width: 14,
53
- height: 14
54
- }
55
- }, props), /*#__PURE__*/_react.default.createElement("path", {
56
- d: "M17.485 17.512q-.281.281-.682.281t-.696-.268l-4.12-4.147-4.12 4.147q-.294.268-.696.268t-.682-.281-.281-.682.294-.669l4.12-4.147-4.12-4.147q-.294-.268-.294-.669t.281-.682.682-.281.696 .268l4.12 4.147 4.12-4.147q.294-.268.696-.268t.682.281 .281.669-.294.682l-4.12 4.147 4.12 4.147q.294.268 .294.669t-.281.682zM22.047 22.074v0 0-20.147 0h-20.12v0 20.147 0h20.12zM22.047 24h-20.12q-.803 0-1.365-.562t-.562-1.365v-20.147q0-.776.562-1.351t1.365-.575h20.147q.776 0 1.351.575t.575 1.351v20.147q0 .803-.575 1.365t-1.378.562v0z"
57
- }));
58
- }
59
33
  function TransitionComponent(props) {
60
34
  const style = (0, _web.useSpring)({
61
35
  from: {
62
36
  opacity: 0,
63
- transform: 'translate3d(20px,0,0)'
37
+ transform: 'translate3d(0,-8px,0)'
64
38
  },
65
39
  to: {
66
40
  opacity: props.in ? 1 : 0,
67
- transform: "translate3d(".concat(props.in ? 0 : 20, "px,0,0)")
41
+ transform: "translate3d(0,".concat(props.in ? 0 : -8, "px,0)")
42
+ },
43
+ config: {
44
+ tension: 340,
45
+ friction: 28
68
46
  }
69
47
  });
70
48
  return /*#__PURE__*/_react.default.createElement(_web.animated.div, {
71
49
  style: style
72
50
  }, /*#__PURE__*/_react.default.createElement(_Collapse.default, props));
73
51
  }
74
- TransitionComponent.propTypes = {
75
- /**
76
- * Show the component; triggers the enter or exit states
77
- */
78
- in: _propTypes.default.bool
79
- };
80
- const StyledTreeItem = (0, _styles.withStyles)(theme => ({
81
- iconContainer: {
82
- '& .close': {
83
- opacity: 0.3
52
+
53
+ // ── Styled tree item ──
54
+
55
+ const StyledTreeItem = (0, _styles.styled)(_TreeItem.TreeItem)(_ref => {
56
+ let {
57
+ theme
58
+ } = _ref;
59
+ return {
60
+ ["& .".concat(_TreeItem.treeItemClasses.content)]: {
61
+ borderRadius: theme.shape.borderRadius,
62
+ padding: '4px 8px',
63
+ margin: '2px 0',
64
+ transition: 'all 0.15s ease',
65
+ '&:hover': {
66
+ backgroundColor: (0, _styles.alpha)(theme.palette.primary.main, 0.06)
67
+ },
68
+ '&.Mui-selected': {
69
+ backgroundColor: (0, _styles.alpha)(theme.palette.primary.main, 0.12),
70
+ '&:hover': {
71
+ backgroundColor: (0, _styles.alpha)(theme.palette.primary.main, 0.16)
72
+ }
73
+ },
74
+ '&.Mui-focused': {
75
+ backgroundColor: 'transparent'
76
+ }
77
+ },
78
+ ["& .".concat(_TreeItem.treeItemClasses.iconContainer)]: {
79
+ color: theme.palette.primary.main,
80
+ marginRight: 4
81
+ },
82
+ ["& .".concat(_TreeItem.treeItemClasses.label)]: {
83
+ fontSize: '0.875rem',
84
+ fontWeight: 500,
85
+ color: theme.palette.text.primary
86
+ },
87
+ ["& .".concat(_TreeItem.treeItemClasses.groupTransition)]: {
88
+ marginLeft: 16,
89
+ paddingLeft: 12,
90
+ borderLeft: "1.5px solid ".concat((0, _styles.alpha)(theme.palette.divider, 0.4))
84
91
  }
92
+ };
93
+ });
94
+
95
+ // ── Icon themes ──
96
+
97
+ const ICON_THEMES = {
98
+ documents: {
99
+ branchOpen: _FolderOpenRounded.default,
100
+ branchClosed: _FolderRounded.default,
101
+ leaf: _FolderOpenRounded.default,
102
+ empty: _FolderOpenRounded.default
85
103
  },
86
- group: {
87
- marginLeft: 7,
88
- paddingLeft: 18,
89
- borderLeft: "1px dashed #e1e1e1"
90
- }
91
- }))(props => /*#__PURE__*/_react.default.createElement(_TreeItem.TreeItem, _extends({}, props, {
92
- TransitionComponent: TransitionComponent
93
- })));
94
- const useStyles = (0, _styles.makeStyles)({
95
- root: {
96
- height: 264,
97
- flexGrow: 1,
98
- maxWidth: 400
104
+ organisation: {
105
+ branchOpen: _CorporateFareRounded.default,
106
+ branchClosed: _CorporateFareRounded.default,
107
+ leaf: _GroupsRounded.default,
108
+ empty: _CorporateFareRounded.default
109
+ },
110
+ hierarchy: {
111
+ branchOpen: _AccountTreeRounded.default,
112
+ branchClosed: _AccountTreeRounded.default,
113
+ leaf: _CircleOutlined.default,
114
+ empty: _HubOutlined.default
115
+ },
116
+ people: {
117
+ branchOpen: _GroupsRounded.default,
118
+ branchClosed: _GroupsRounded.default,
119
+ leaf: _BadgeOutlined.default,
120
+ empty: _GroupsRounded.default
99
121
  }
100
- });
122
+ };
123
+ function resolveIconTheme(themeName) {
124
+ return ICON_THEMES[themeName] || ICON_THEMES.documents;
125
+ }
126
+
127
+ // ── Custom node label with icon ──
128
+
129
+ function NodeLabel(_ref2) {
130
+ let {
131
+ name,
132
+ hasChildren,
133
+ isExpanded,
134
+ iconTheme
135
+ } = _ref2;
136
+ const theme = resolveIconTheme(iconTheme);
137
+ const Icon = hasChildren ? isExpanded ? theme.branchOpen : theme.branchClosed : theme.leaf;
138
+ return /*#__PURE__*/_react.default.createElement(_Box.default, {
139
+ sx: {
140
+ display: 'flex',
141
+ alignItems: 'center',
142
+ gap: 1,
143
+ py: 0.25
144
+ }
145
+ }, /*#__PURE__*/_react.default.createElement(Icon, {
146
+ sx: {
147
+ fontSize: 18,
148
+ opacity: 0.7
149
+ }
150
+ }), /*#__PURE__*/_react.default.createElement(_Typography.default, {
151
+ variant: "body2",
152
+ sx: {
153
+ fontWeight: 'inherit'
154
+ }
155
+ }, name));
156
+ }
157
+
158
+ // ── Empty state ──
159
+
160
+ function EmptyState(_ref3) {
161
+ let {
162
+ iconTheme
163
+ } = _ref3;
164
+ const theme = resolveIconTheme(iconTheme);
165
+ const Icon = theme.empty;
166
+ return /*#__PURE__*/_react.default.createElement(_Box.default, {
167
+ sx: {
168
+ display: 'flex',
169
+ flexDirection: 'column',
170
+ alignItems: 'center',
171
+ justifyContent: 'flex-start',
172
+ py: 6,
173
+ color: 'text.secondary'
174
+ }
175
+ }, /*#__PURE__*/_react.default.createElement(Icon, {
176
+ sx: {
177
+ fontSize: 48,
178
+ opacity: 0.3,
179
+ mb: 1
180
+ }
181
+ }), /*#__PURE__*/_react.default.createElement(_Typography.default, {
182
+ variant: "body2",
183
+ color: "text.secondary"
184
+ }, "No items found"));
185
+ }
186
+
187
+ // ── Main Tree component ──
188
+
101
189
  const Tree = props => {
102
- const classes = useStyles();
190
+ var _props$config;
191
+ const iconTheme = ((_props$config = props.config) === null || _props$config === void 0 ? void 0 : _props$config.iconTheme) || 'documents';
103
192
  const [root, setRoot] = _react.default.useState(null);
104
193
  const [selectedRows] = _react.default.useState([]);
105
194
  const [expanded, setExpanded] = _react.default.useState([]);
195
+ const [loading, setLoading] = _react.default.useState(true);
106
196
  const [initializing, setInitializing] = _react.default.useState(true);
197
+ const ref = _react.default.useRef(null);
107
198
  _react.default.useEffect(() => {
108
199
  props.handle.api = api();
109
200
  });
@@ -119,41 +210,39 @@ const Tree = props => {
119
210
  function loadData(eventConfig, componentConfig) {
120
211
  let service = !_Utils.default.isNull(componentConfig.dataService) ? componentConfig.dataService : eventConfig !== null ? eventConfig.dataService : null;
121
212
  if (!_Utils.default.isNull(service)) {
122
- if (service.type === 'rpc') {
123
- (0, _RestService.invokeRpc)({
124
- service: service,
125
- component: props.handle,
126
- viewId: props.viewId
127
- }).then(result => {
128
- try {
129
- if (result) {
130
- expand(result);
131
- setRoot(result);
132
- }
133
- } catch (e) {
134
- props.console.error(e);
135
- _Utils.default.publishErrorMessage(e, props.viewId);
136
- }
137
- }).catch(e => {});
138
- } else {
139
- (0, _RestService.invokeRest)({
140
- service: service,
141
- component: props.handle,
142
- viewId: props.viewId
143
- }).then(result => {
144
- try {
145
- if (result) {
146
- expand(result);
147
- setRoot(result);
213
+ setLoading(true);
214
+ const invoker = service.type === 'rpc' ? _RestService.invokeRpc : _RestService.invokeRest;
215
+ invoker({
216
+ service: service,
217
+ component: props.handle,
218
+ viewId: props.viewId
219
+ }).then(result => {
220
+ try {
221
+ if (result) {
222
+ var _props$config2;
223
+ const expandMode = ((_props$config2 = props.config) === null || _props$config2 === void 0 ? void 0 : _props$config2.expandMode) || 'collapsed';
224
+ const expandedIds = [];
225
+ if (expandMode === 'all') {
226
+ collectIds(result, expandedIds);
227
+ } else if (expandMode === 'root') {
228
+ expandedIds.push("".concat(result.id));
148
229
  }
149
- } catch (e) {
150
- props.console.error(e);
151
- _Utils.default.publishErrorMessage(e, props.viewId);
230
+ // 'collapsed' empty array, everything folded
231
+ setExpanded(expandedIds);
232
+ setRoot(result);
152
233
  }
153
- }).catch(e => {});
154
- }
234
+ } catch (e) {
235
+ console.error(e);
236
+ _Utils.default.publishErrorMessage(e, props.viewId);
237
+ }
238
+ }).catch(() => {}).finally(() => {
239
+ setLoading(false);
240
+ });
155
241
  } else if (!_Utils.default.isNull(componentConfig.value)) {
156
- let value = _ApplicationManager.default.isExpression(componentConfig.value) ? _ApplicationManager.default.resolveExpressionValue(componentConfig.value) : componentConfig.value;
242
+ _ApplicationManager.default.isExpression(componentConfig.value) ? _ApplicationManager.default.resolveExpressionValue(componentConfig.value) : componentConfig.value;
243
+ setLoading(false);
244
+ } else {
245
+ setLoading(false);
157
246
  }
158
247
  }
159
248
  _react.default.useEffect(() => {
@@ -170,64 +259,71 @@ const Tree = props => {
170
259
  return selectedRows;
171
260
  },
172
261
  get root() {
173
- let rootReference = null;
174
- if (!_Utils.default.isNull(root)) {
175
- rootReference = {};
176
- if (!_Utils.default.isNull(root)) {
177
- rootReference.id = root.id;
178
- rootReference.label = root.name;
179
- } else {
180
- rootReference.id = root.id;
181
- rootReference.label = root.name;
182
- }
183
- }
184
- return rootReference;
262
+ if (_Utils.default.isNull(root)) return null;
263
+ return {
264
+ id: root.id,
265
+ label: root.name
266
+ };
185
267
  },
186
268
  getChildren: () => {
187
269
  return [];
188
270
  }
189
271
  };
190
272
  };
191
- const handleSelectionChange = (id, name) => {
192
- let node = {};
193
- node.id = id;
194
- node.label = name;
273
+ const handleSelectionChange = item => {
195
274
  selectedRows.splice(0, selectedRows.length);
196
- selectedRows.push(node);
197
- let event = new _Event.default(props.handle, props.viewId);
275
+ selectedRows.push(item);
276
+ let event = new _Event.default(props.handle, props.viewId, selectedRows);
198
277
  _Observable.default.fireEvent(_EventType.default.SELECTION_CHANGE, event);
199
278
  };
200
- const render = item => {
201
- return /*#__PURE__*/_react.default.createElement(StyledTreeItem, {
202
- itemId: item.id.toString(),
203
- label: item.name,
204
- key: item.id,
205
- onLabelClick: e => e.preventDefault(),
206
- onClick: () => {
207
- handleSelectionChange(item.id, item.name);
208
- }
209
- }, !_Utils.default.isNull(item.children) && item.children.length > 0 ? item.children.map(child => {
210
- return render(child);
211
- }) : null);
212
- };
213
- const expand = item => {
214
- expanded.push("".concat(item.id));
279
+ const collectIds = (item, ids) => {
280
+ ids.push("".concat(item.id));
215
281
  if (!_Utils.default.isNull(item.children)) {
216
282
  for (const child of item.children) {
217
- expand(child);
283
+ collectIds(child, ids);
218
284
  }
219
285
  }
220
286
  };
287
+ const renderNode = item => {
288
+ const hasChildren = !_Utils.default.isNull(item.children) && item.children.length > 0;
289
+ return /*#__PURE__*/_react.default.createElement(StyledTreeItem, {
290
+ key: item.id,
291
+ itemId: item.id.toString(),
292
+ slots: {
293
+ groupTransition: TransitionComponent
294
+ },
295
+ label: /*#__PURE__*/_react.default.createElement(NodeLabel, {
296
+ name: item.name,
297
+ hasChildren: hasChildren,
298
+ isExpanded: expanded.includes("".concat(item.id)),
299
+ iconTheme: iconTheme
300
+ }),
301
+ onClick: () => handleSelectionChange(item)
302
+ }, hasChildren ? item.children.map(renderNode) : null);
303
+ };
304
+
305
+ // ── Render ──
306
+
307
+ if (!loading && _Utils.default.isNull(root)) {
308
+ return /*#__PURE__*/_react.default.createElement(EmptyState, {
309
+ iconTheme: iconTheme
310
+ });
311
+ }
221
312
  return /*#__PURE__*/_react.default.createElement("div", {
222
- style: {
223
- padding: '32px'
313
+ style: _Utils.default.mergeStyles({}, props.config)
314
+ }, /*#__PURE__*/_react.default.createElement(_Box.default, {
315
+ sx: {
316
+ p: 2,
317
+ flexGrow: 1,
318
+ overflow: 'auto'
319
+ }
320
+ }, root && /*#__PURE__*/_react.default.createElement(_SimpleTreeView.SimpleTreeView, {
321
+ expandedItems: expanded,
322
+ onExpandedItemsChange: (event, ids) => setExpanded(ids),
323
+ sx: {
324
+ flexGrow: 1,
325
+ overflowY: 'auto'
224
326
  }
225
- }, initializing === false && !_Utils.default.isNull(root) ? /*#__PURE__*/_react.default.createElement(_SimpleTreeView.SimpleTreeView, {
226
- className: classes.root,
227
- defaultExpanded: expanded,
228
- defaultCollapseIcon: /*#__PURE__*/_react.default.createElement(MinusSquare, null),
229
- defaultExpandIcon: /*#__PURE__*/_react.default.createElement(PlusSquare, null),
230
- defaultEndIcon: /*#__PURE__*/_react.default.createElement(CloseSquare, null)
231
- }, render(root)) : null);
327
+ }, renderNode(root))));
232
328
  };
233
329
  exports.Tree = Tree;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = exports.KEY = exports.DOCSVC = void 0;
6
+ exports.location = exports.default = exports.KEY = exports.DOCSVC = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _reactPromiseTracker = require("react-promise-tracker");
9
9
  var _Utils = _interopRequireDefault(require("../Utils"));
@@ -20,7 +20,18 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
20
20
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (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 (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
21
21
  const KEY = exports.KEY = 'Ngo9BigBOggjHTQxAR8/V1JGaF5cXGpCf1FpRmJGdld5fUVHYVZUTXxaS00DNHVRdkdlWX5ceHVRQ2BYUUdwX0NWYEs=';
22
22
  (0, _ej2Base.registerLicense)(KEY);
23
- const DOCSVC = exports.DOCSVC = "https://document.syncfusion.com/web-services/docx-editor/api/documenteditor/";
23
+ const location = exports.location = window.location.protocol + '//' + window.location.hostname;
24
+ const DOCSVC = exports.DOCSVC = "/docs/api/v1/syncfusion";
25
+ function getServiceUrl() {
26
+ const accessToken = sessionStorage.getItem('accessToken');
27
+ const idToken = sessionStorage.getItem('idToken');
28
+ const base = "".concat(location + _ApplicationManager.default.getContextRoot() + DOCSVC, "/Import");
29
+ const params = new URLSearchParams();
30
+ if (accessToken) params.set('access_token', accessToken);
31
+ if (idToken) params.set('id_token', idToken);
32
+ const qs = params.toString();
33
+ return qs ? "".concat(base, "?").concat(qs) : base;
34
+ }
24
35
  _ej2ReactDocumenteditor.DocumentEditorContainerComponent.Inject(_ej2ReactDocumenteditor.Toolbar);
25
36
  const LEVEL_FMT = ['%1.', '%1.%2.', '%1.%2.%3.'];
26
37
  function applyLevel(ed) {
@@ -97,14 +108,25 @@ const WordDocumentViewer = props => {
97
108
  if (!(container !== null && container !== void 0 && container.documentEditor)) return;
98
109
  if (!dropPosition) return;
99
110
  if (!isPointInsideElement(dropPosition.x, dropPosition.y, viewerElement)) {
100
- // Drop did not happen inside this document
101
- //console.log("DROP NOT INSIDE THIS DOCUMENT : ", dropPosition);
102
111
  return;
103
112
  }
104
113
  const doc = container.documentEditor;
105
114
  const ed = doc.editor;
106
115
  const sel = doc.selection;
107
116
  if (!ed || !sel) return;
117
+
118
+ // Reject drop if cursor is strictly inside an existing anchor
119
+ // Allow dropping at the exact start or end boundary
120
+ const caretOffset = sel.startOffset;
121
+ const existingAnchor = grabAnchorWithBounds(container);
122
+ if (existingAnchor) {
123
+ const atStart = caretOffset === existingAnchor.startOffset;
124
+ const atEnd = caretOffset === existingAnchor.endOffset;
125
+ if (!atStart && !atEnd) {
126
+ console.warn("Drop rejected — cursor is inside anchor: " + existingAnchor.token);
127
+ return;
128
+ }
129
+ }
108
130
  const token = "[[".concat(normalizeAnchor(eventData), "]]");
109
131
  ed.insertText(token);
110
132
  }
@@ -169,8 +191,14 @@ const WordDocumentViewer = props => {
169
191
  });
170
192
  const formData = new FormData();
171
193
  formData.append('files', file, 'document.docx');
172
- (0, _reactPromiseTracker.trackPromise)(fetch("".concat(DOCSVC, "Import"), {
194
+ const accessToken = sessionStorage.getItem('accessToken');
195
+ const idToken = sessionStorage.getItem('idToken');
196
+ (0, _reactPromiseTracker.trackPromise)(fetch("".concat(location + _ApplicationManager.default.getContextRoot() + DOCSVC, "/Import"), {
173
197
  method: 'POST',
198
+ headers: {
199
+ 'Authorization': 'Bearer ' + accessToken,
200
+ 'idToken': idToken
201
+ },
174
202
  body: formData
175
203
  }).then(response => {
176
204
  (0, _reactPromiseTracker.trackPromise)(response.json().then(json => {
@@ -592,7 +620,7 @@ const WordDocumentViewer = props => {
592
620
  showPropertiesPane: false,
593
621
  enableTrackChanges: true,
594
622
  enableAutoFocus: false,
595
- serviceUrl: DOCSVC,
623
+ serviceUrl: getServiceUrl(),
596
624
  enableToolbar: !props.readOnly || props.commentsOnly
597
625
  }), visible && items && props.trackChanges === false && /*#__PURE__*/_react.default.createElement(_ej2ReactDocumenteditor.DocumentEditorContainerComponent, {
598
626
  id: "".concat(props.id, "-container"),
@@ -613,7 +641,7 @@ const WordDocumentViewer = props => {
613
641
  restrictEditing: props.readOnly && !props.commentsOnly,
614
642
  showPropertiesPane: false,
615
643
  enableAutoFocus: false,
616
- serviceUrl: DOCSVC,
644
+ serviceUrl: getServiceUrl(),
617
645
  enableToolbar: !props.readOnly || props.commentsOnly
618
646
  }));
619
647
  };
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.DRAWER_WIDTH = void 0;
6
7
  exports.default = FoldingSideTabDashboard;
7
8
  var React = _interopRequireWildcard(require("react"));
8
9
  var _material = require("@mui/material");
@@ -30,7 +31,7 @@ var _useMediaQuery = _interopRequireDefault(require("@mui/material/useMediaQuery
30
31
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
31
32
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (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 (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
32
33
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } // FoldingSideTabDashboard.jsx
33
- const DRAWER_WIDTH = 320;
34
+ const DRAWER_WIDTH = exports.DRAWER_WIDTH = 320;
34
35
  const MINI_WIDTH = 72;
35
36
  const DrawerStyled = (0, _styles.styled)(_material.Drawer, {
36
37
  shouldForwardProp: prop => prop !== "open"
@@ -123,6 +124,11 @@ function FoldingSideTabDashboard(props) {
123
124
  setOpen(false); // auto collapse when screen is small
124
125
  }
125
126
  }, [isMobile]);
127
+ React.useEffect(() => {
128
+ _ApplicationManager.default.setDashboardState({
129
+ leftOffset: open ? DRAWER_WIDTH : MINI_WIDTH
130
+ });
131
+ }, [open]);
126
132
  React.useEffect(() => {
127
133
  if (navigator.platform.indexOf("Win") > -1) {
128
134
  document.documentElement.classList.add("perfect-scrollbar-on");
@@ -141,6 +147,9 @@ function FoldingSideTabDashboard(props) {
141
147
  }, [props.width]);
142
148
  React.useEffect(() => {
143
149
  _SocketManager.default.init();
150
+ _ApplicationManager.default.setDashboardState({
151
+ leftOffset: open ? DRAWER_WIDTH : MINI_WIDTH
152
+ });
144
153
  return () => {
145
154
  _SocketManager.default.disconnect();
146
155
  };
@@ -10,6 +10,9 @@ var _Observable = _interopRequireDefault(require("../../event/Observable"));
10
10
  var _Event = _interopRequireDefault(require("../../event/Event"));
11
11
  var _EventType = _interopRequireDefault(require("../../event/EventType"));
12
12
  var _FaceRecognitionComponent = _interopRequireDefault(require("./FaceRecognitionComponent"));
13
+ var _FoldingSideTabDashboard = require("../dashboard/FoldingSideTabDashboard");
14
+ var _ApplicationManager = _interopRequireWildcard(require("../../ApplicationManager"));
15
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (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 (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
16
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
17
  const status = response => {
15
18
  if (response.ok) {
@@ -26,6 +29,7 @@ const json = response => {
26
29
  const location = window.location.protocol + '//' + window.location.hostname + ':' + window.location.port;
27
30
  const FacialRegistration = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.default.forwardRef((props, ref) => {
28
31
  const [visible, setVisible] = _react.default.useState(false);
32
+ const [offset, setOffset] = _react.default.useState(_FoldingSideTabDashboard.DRAWER_WIDTH);
29
33
  _react.default.useEffect(() => {
30
34
  props.handle.api = api();
31
35
  });
@@ -36,8 +40,16 @@ const FacialRegistration = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.
36
40
  let event = new _Event.default(props.handle, props.viewId, null);
37
41
  _Observable.default.fireEvent(_EventType.default.COMPONENT_LOAD, event);
38
42
  props.handle.api.refresh();
43
+ let listener = {};
44
+ listener.id = 'facialRegistrationDashboardStateListener';
45
+ listener.type = _ApplicationManager.DASHBOARD_STATE;
46
+ listener.handler = state => {
47
+ setOffset(state.leftOffset);
48
+ };
49
+ _ApplicationManager.default.addApplicationListener(listener);
39
50
  return () => {
40
51
  _Observable.default.clearComponentEventListeners(props.handle);
52
+ _ApplicationManager.default.removeApplicationListener('facialVerificationDashboardStateListener');
41
53
  };
42
54
  }, []);
43
55
  const api = () => {
@@ -63,7 +75,9 @@ const FacialRegistration = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.
63
75
  };
64
76
  };
65
77
  return visible && /*#__PURE__*/_react.default.createElement("div", {
66
- style: _Utils.default.mergeStyles({}, props.config)
78
+ style: _Utils.default.mergeStyles({
79
+ width: "calc(100% - ".concat(offset, "px)")
80
+ }, props.config)
67
81
  }, /*#__PURE__*/_react.default.createElement(_FaceRecognitionComponent.default, {
68
82
  mode: "register",
69
83
  onComplete: () => {},