@agilemotion/oui-react-js 1.8.56 → 1.8.58

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 (187) hide show
  1. package/dist/ApplicationManager.js +446 -472
  2. package/dist/BasicApp.js +30 -0
  3. package/dist/BasicAppHome.js +2 -3
  4. package/dist/DateUtils.js +2 -2
  5. package/dist/DynamicJS.js +93 -101
  6. package/dist/InteractionPortalAppHome.js +1 -1
  7. package/dist/InteractionPortalApp_old.js +1 -2
  8. package/dist/MouseTracker.js +23 -0
  9. package/dist/RestService.js +13 -11
  10. package/dist/RestUtils.js +1 -1
  11. package/dist/TypedValue.js +15 -14
  12. package/dist/Utils.js +121 -114
  13. package/dist/ViewContext.js +152 -159
  14. package/dist/assets/jss/components/authNavbarStyle.js +34 -37
  15. package/dist/assets/jss/components/cardHeaderStyle.js +11 -18
  16. package/dist/assets/jss/components/customDropdownStyle.js +25 -27
  17. package/dist/assets/jss/components/customInputStyle.js +7 -3
  18. package/dist/assets/jss/components/dropdownStyle.js +14 -11
  19. package/dist/assets/jss/components/footerStyle.js +17 -12
  20. package/dist/assets/jss/components/headerLinksStyle.js +12 -9
  21. package/dist/assets/jss/components/headerStyle.js +24 -26
  22. package/dist/assets/jss/components/navbarLinksStyle.js +12 -9
  23. package/dist/assets/jss/components/navbarStyle.js +24 -26
  24. package/dist/assets/jss/components/sidebarStyle.js +42 -42
  25. package/dist/assets/jss/components/typographyStyle.js +7 -3
  26. package/dist/assets/jss/rootStyle.js +30 -34
  27. package/dist/assets/jss/views/layoutStyle.js +12 -9
  28. package/dist/assets/jss/views/loginStyle.js +9 -6
  29. package/dist/components/AlertBar.js +1 -1
  30. package/dist/components/Button.js +18 -11
  31. package/dist/components/Calendar.js +9 -6
  32. package/dist/components/Chart.js +1 -1
  33. package/dist/components/DataGrid.css +12 -3
  34. package/dist/components/DataGrid.js +115 -56
  35. package/dist/components/DataGridColumn.js +22 -4
  36. package/dist/components/DocumentTemplateDesigner.js +9 -5
  37. package/dist/components/DocumentTemplateDesignerComponent.js +49 -549
  38. package/dist/components/DocumentTemplatePlaceholderDialog.js +3 -4
  39. package/dist/components/DocumentViewer.js +19 -6
  40. package/dist/components/ElementResizeHandler.js +177 -174
  41. package/dist/components/FaceApi.js +2 -2
  42. package/dist/components/FileThumb.js +5 -5
  43. package/dist/components/Graph.js +77 -74
  44. package/dist/components/GraphNode.js +39 -36
  45. package/dist/components/HtmlPanel.js +2 -1
  46. package/dist/components/Icon.js +1 -2
  47. package/dist/components/PDFViewer.js +2 -3
  48. package/dist/components/PopupView.js +1 -1
  49. package/dist/components/Portlet.js +3 -2
  50. package/dist/components/RegularButton.js +17 -14
  51. package/dist/components/SocketManager.js +97 -94
  52. package/dist/components/StepperTitleBar.js +7 -6
  53. package/dist/components/TabPage.js +10 -7
  54. package/dist/components/TabPanel.js +11 -6
  55. package/dist/components/TableCellContent.js +13 -9
  56. package/dist/components/TemplateDesigner.js +2 -2
  57. package/dist/components/TemplateItemEventHandler.js +232 -228
  58. package/dist/components/TemplateTable.js +32 -29
  59. package/dist/components/TitleBar.js +2 -2
  60. package/dist/components/Toolbar.js +58 -22
  61. package/dist/components/Tree.js +3 -3
  62. package/dist/components/WordDocumentViewer.css +7 -0
  63. package/dist/components/WordDocumentViewer.js +329 -109
  64. package/dist/components/card/Card.js +18 -15
  65. package/dist/components/card/CardAvatar.js +11 -8
  66. package/dist/components/card/CardBody.js +16 -13
  67. package/dist/components/card/CardFooter.js +15 -12
  68. package/dist/components/card/CardHeader.js +16 -13
  69. package/dist/components/card/CardIcon.js +9 -6
  70. package/dist/components/card/CardText.js +9 -6
  71. package/dist/components/customInput/File.js +4 -5
  72. package/dist/components/dashboard/FoldingSideTabDashboard.bck.js +1 -1
  73. package/dist/components/dashboard/FoldingSideTabDashboard.js +2 -3
  74. package/dist/components/dashboard/components/Header.js +6 -4
  75. package/dist/components/dashboard/components/LeftDrawer.js +2 -2
  76. package/dist/components/dashboard/components/blackDashboard/fixedPlugin/FixedPlugin.js +26 -28
  77. package/dist/components/dashboard/components/blackDashboard/sidebar/FoldingTabSidebar.bck.js +182 -188
  78. package/dist/components/dashboard/components/blackDashboard/sidebar/FoldingTabSidebar.js +27 -30
  79. package/dist/components/dashboard/components/blackDashboard/sidebar/ModuleMenuSidebar.js +12 -14
  80. package/dist/components/drag-spec-design.json +15 -0
  81. package/dist/components/facialRecognition/FaceRecognitionComponent.js +10 -11
  82. package/dist/components/facialRecognition/service/faceApi.js +3 -3
  83. package/dist/components/form/AddressSearch.js +8 -5
  84. package/dist/components/form/AutoComplete.js +4 -4
  85. package/dist/components/form/BaseField.js +3 -2
  86. package/dist/components/form/CurrencyField.js +8 -8
  87. package/dist/components/form/DatePicker.js +3 -2
  88. package/dist/components/form/FieldSet.js +2 -1
  89. package/dist/components/form/Form.css +1 -1
  90. package/dist/components/form/Form.js +11 -8
  91. package/dist/components/form/GridField.js +4 -3
  92. package/dist/components/form/IconField.js +2 -1
  93. package/dist/components/form/ImageEditor.js +13 -8
  94. package/dist/components/form/LookupField.js +8 -7
  95. package/dist/components/form/MultiFileUploadField.js +14 -8
  96. package/dist/components/form/SelectItem.js +7 -6
  97. package/dist/components/form/TextField.js +6 -6
  98. package/dist/components/form/TimePicker.js +3 -2
  99. package/dist/components/form/TransferList.js +2 -2
  100. package/dist/components/form/UploadField.js +5 -5
  101. package/dist/components/grid/GridContainer.js +7 -4
  102. package/dist/components/grid/GridItem.js +7 -4
  103. package/dist/components/layout/CollapsiblePanel.js +7 -5
  104. package/dist/components/layout/Layout.js +5 -5
  105. package/dist/components/layout/View.js +6 -5
  106. package/dist/components/layout/ViewContainer.js +1 -2
  107. package/dist/components/layout/ViewPort.js +1 -1
  108. package/dist/components/layout/Window.js +2 -3
  109. package/dist/components/layout/WindowDialog.js +9 -7
  110. package/dist/components/layout/WindowViewPort.js +3 -3
  111. package/dist/components/media/Chat.js +2 -1
  112. package/dist/components/media/MediaSoupHelper.js +57 -53
  113. package/dist/components/media/SocketRequest.js +9 -7
  114. package/dist/components/media/SocketResponse.js +7 -5
  115. package/dist/components/media/Timer.js +1 -2
  116. package/dist/components/media/Toolbar.js +3 -3
  117. package/dist/components/media/ToolbarButton.js +23 -24
  118. package/dist/components/media/Toolbar_bck.js +3 -3
  119. package/dist/components/media/Tracks.js +24 -19
  120. package/dist/components/media/TrainingRoom.js +3 -4
  121. package/dist/components/media/Transports.js +21 -17
  122. package/dist/components/media/VCEventManager.js +25 -24
  123. package/dist/components/media/VCEventType.js +81 -79
  124. package/dist/components/media/VCParticipantList.js +1 -2
  125. package/dist/components/media/VCParticipantListItem.js +2 -3
  126. package/dist/components/media/VCRoomParticipant.js +4 -5
  127. package/dist/components/media/VCRoomRecorder.js +163 -160
  128. package/dist/components/media/VCRoomWorkspace.js +3 -4
  129. package/dist/components/media/Video.js +1 -2
  130. package/dist/components/media/VideoPlayer.js +1 -2
  131. package/dist/components/media/chat/ChatPoll.js +15 -15
  132. package/dist/components/media/chat/ChatRoom.js +15 -15
  133. package/dist/components/media/chat/ChatRoomItem.js +2 -3
  134. package/dist/components/media/chat/ChatRoomList.js +1 -2
  135. package/dist/components/media/chat/ChatRoomWrapper.js +1 -1
  136. package/dist/components/media/chat/PollContainer.js +14 -8
  137. package/dist/components/media/chat/PollResult.js +1 -2
  138. package/dist/components/menu/MenuBars.js +8 -5
  139. package/dist/components/menu/MenuButton.js +11 -5
  140. package/dist/components/menu/MenuItem.js +13 -6
  141. package/dist/components/menu/MenuLink.js +2 -1
  142. package/dist/components/navbars/HomeNavbar.js +43 -41
  143. package/dist/components/navbars/PortalNavbar.js +1 -2
  144. package/dist/components/signatures/AgilitySignaturePanel.js +39 -15
  145. package/dist/components/signatures/{DocumentContainer.js → HtmlSignatureDocumentContainer.js} +4 -4
  146. package/dist/components/signatures/ImageSignatureInput.js +27 -16
  147. package/dist/components/signatures/ResponsiveTable.js +1 -1
  148. package/dist/components/signatures/SearchView.js +1 -1
  149. package/dist/components/signatures/SignatureInput.js +42 -98
  150. package/dist/components/signatures/SignatureInputProps.js +1 -1
  151. package/dist/components/signatures/SignatureTemplateDesigner.js +13 -10
  152. package/dist/components/signatures/Toolbar.js +7 -3
  153. package/dist/components/signatures/ViewUtils.js +21 -16
  154. package/dist/event/ActionHandlers.js +10 -7
  155. package/dist/event/Event.js +15 -13
  156. package/dist/event/EventListener.js +39 -41
  157. package/dist/event/EventType.js +24 -19
  158. package/dist/event/Observable.js +120 -125
  159. package/dist/event/RouteActionHandler.js +4 -4
  160. package/dist/event/ScriptActionHandler.js +1 -1
  161. package/dist/event/ServiceCallActionHandler.js +1 -1
  162. package/dist/interaction/CursorOverlay.js +48 -0
  163. package/dist/interaction/DragContext.js +39 -0
  164. package/dist/interaction/GrabContext.js +40 -0
  165. package/dist/js/Addresses.js +9 -8
  166. package/dist/js/Calendar.js +152 -149
  167. package/dist/js/Docs.js +92 -87
  168. package/dist/js/DynamicLib.js +9 -6
  169. package/dist/js/Media.js +134 -131
  170. package/dist/js/ProcurementMeetings.js +81 -78
  171. package/dist/js/Validators.js +53 -50
  172. package/dist/js/Windows.js +35 -32
  173. package/dist/redux/store/ConfigureStore.js +8 -5
  174. package/dist/redux/store/DashboardStore.js +13 -12
  175. package/dist/redux/store/SecurityStore.js +9 -6
  176. package/dist/security/TokenManager.js +1 -1
  177. package/dist/view/Dashboard.js +11 -12
  178. package/dist/view/security/ForgotPassword.js +3 -3
  179. package/dist/view/security/ForgotPasswordBasic.js +1 -1
  180. package/dist/view/security/Login.js +4 -4
  181. package/dist/view/security/LoginBasic.js +2 -2
  182. package/dist/view/security/LoginInteractionPortal.js +2 -2
  183. package/dist/view/security/ResetPassword.js +1 -1
  184. package/dist/view/security/ResetPasswordBasic.js +1 -1
  185. package/dist/view/security/Security.js +4 -4
  186. package/package.json +10 -10
  187. package/dist/components/DocumentTemplateDesignerComponent2.js +0 -585
@@ -4,503 +4,52 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _ej2ReactDocumenteditor = require("@syncfusion/ej2-react-documenteditor");
8
- var _ej2Base = require("@syncfusion/ej2-base");
9
- var _react = _interopRequireWildcard(require("react"));
10
- var React = _react;
7
+ var React = _interopRequireWildcard(require("react"));
11
8
  require("./DocumentTemplateDesignerComponent.css");
12
- var _ApplicationManager = _interopRequireDefault(require("../ApplicationManager"));
9
+ var _DocumentViewer = _interopRequireDefault(require("./DocumentViewer"));
13
10
  var _Form = _interopRequireDefault(require("./form/Form"));
14
- var _EventType = _interopRequireDefault(require("../event/EventType"));
15
- var _Observable = _interopRequireDefault(require("../event/Observable"));
16
- var _Utils = _interopRequireDefault(require("../Utils"));
17
- var _reactPromiseTracker = require("react-promise-tracker");
18
- var _WordDocumentViewer = require("./WordDocumentViewer");
19
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
20
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
21
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
22
- (0, _ej2Base.registerLicense)(_WordDocumentViewer.KEY);
23
- _ej2ReactDocumenteditor.DocumentEditorContainerComponent.Inject(_ej2ReactDocumenteditor.Toolbar);
12
+ 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
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
16
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
17
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
24
18
  const DocumentTemplateDesignerComponent = props => {
25
- const {
26
- contractTemplate,
27
- uploadTrigger,
28
- valueChangeHandler,
29
- addDocumentMetaDataHandler,
30
- value
31
- } = props;
32
- const [container, setContainer] = React.useState(null);
33
- const model = React.useRef({});
19
+ const propertiesComponentHandle = React.useState({});
20
+ const templateDesignerComponentHandle = React.useState({});
34
21
  const [doc, setDoc] = React.useState(null);
35
- const [file, setFile] = React.useState(null);
36
- const [documentData, setDocumentData] = React.useState(null);
37
- const [contentState] = React.useState({
38
- changed: false
39
- });
40
- const btnRef = (0, _react.useRef)(null);
41
- const currentVal = (0, _react.useRef)(null);
42
- const propertiesFormHandle = React.useRef({});
43
- const onToolbarClick = args => {
44
- switch (args.item.id) {
45
- case "Custom":
46
- break;
47
- default:
48
- break;
49
- }
50
- };
51
- const onWrapText = text => {
52
- let content = '';
53
- const index = text.lastIndexOf(' ');
54
- if (index !== -1) {
55
- content = text.slice(0, index) + "<div class='e-de-text-wrap'>" + text.slice(index + 1) + "</div>";
56
- } else {
57
- content = text;
58
- }
59
- return content;
60
- };
61
- const findNext = () => {
62
- container.documentEditor.search.searchResults.index = container.documentEditor.search.searchResults.index + 1;
63
- };
64
- const findPrev = () => {
65
- container.documentEditor.search.searchResults.index = container.documentEditor.search.searchResults.index - 1;
66
- };
67
- let next = {
68
- prefixIcon: "e-chevron-down",
69
- click: findNext.bind(void 0),
70
- tooltipText: 'Next placeholder',
71
- text: '',
72
- id: "NextPlaceHolder"
73
- };
74
- let previous = {
75
- prefixIcon: "e-chevron-up",
76
- click: findPrev.bind(void 0),
77
- tooltipText: 'Previous placeholder',
78
- text: '',
79
- id: "PrevPlaceHolder"
80
- };
81
- let apply = {
82
- prefixIcon: "e-icons e-save",
83
- click: applyChanges.bind(void 0),
84
- tooltipText: 'Previous placeholder',
85
- text: 'Apply',
86
- id: "PrevPlaceHolder"
87
- };
88
- let items = ["Open", apply, "Undo", "Redo", "Separator", {
89
- tooltipText: 'Bold',
90
- prefixIcon: 'e-icons e-bold',
91
- command: 'Bold'
92
- }, {
93
- tooltipText: 'Italic',
94
- prefixIcon: 'e-icons e-italic',
95
- command: 'Italic'
96
- }, "Separator", "Image", "Table", "Separator", "Header", "Footer", "PageSetup", "PageNumber", "InsertFootnote", "Separator", "Find"];
97
- let searchHighlightColor = {
98
- searchHighlightColor: 'Red'
99
- };
100
- const saveDoc = () => {
101
- return new Promise((accept, reject) => {
102
- if (container && container.documentEditor) {
103
- container.documentEditor.saveAsBlob('Docx').then(blob => {
104
- accept(blob);
105
- }).catch(e => {
106
- console.error("Error saving document");
107
- reject(e);
108
- });
109
- }
110
- });
111
- };
112
- const onContentChange = () => {
113
- contentState.changed = true;
114
- };
115
- (0, _react.useEffect)(() => {
116
- if (uploadTrigger != null && btnRef.current) {
117
- btnRef.current.click();
118
- }
119
- }, [uploadTrigger]);
120
- (0, _react.useEffect)(() => {
121
- if (value) {
122
- let i = 0;
123
- for (const property of value.properties) {
124
- property.id = i++;
125
- }
126
- propertiesFormHandle.current.api.model = {
127
- properties: value.properties
128
- };
129
- if (value.file && value.file.url) {
130
- let tokens = value.file.url.split(';base64,');
131
- let type = tokens[0].replace("data:", "");
132
- let base64 = tokens[1];
133
- const arrayBuffer = _Utils.default.base64ToArrayBuffer(base64);
134
- const file = new Blob([arrayBuffer], {
135
- type
136
- });
137
- const formData = new FormData();
138
- formData.append('files', file, 'document.docx');
139
- (0, _reactPromiseTracker.trackPromise)(fetch(`${_WordDocumentViewer.DOCSVC}Import`, {
140
- method: 'POST',
141
- body: formData
142
- }).then(response => {
143
- (0, _reactPromiseTracker.trackPromise)(response.json().then(json => {
144
- setDocumentData(json);
145
- }));
146
- }));
147
- }
148
- }
149
- }, [value]);
150
- const getFooterText = () => {
151
- container.documentEditor.selection.goToFooter();
152
- container.documentEditor.selection.selectAll();
153
- let footerText = container.documentEditor.selection.getText();
154
- container.documentEditor.selection.closeHeaderFooter();
155
- container.documentEditor.selection.clear();
156
- return footerText;
157
- };
158
- function applyChanges() {
159
- setup();
160
- }
161
- const comparePositions = (a, b) => {
162
- if (a.location.yIn === b.location.yIn && a.location.xIn === b.location.xIn) {
163
- return 0;
164
- }
165
- if (a.location.yIn > b.location.yIn) {
166
- return 1;
167
- }
168
- if (a.location.yIn < b.location.yIn) {
169
- return -1;
170
- }
171
- if (a.location.yIn === b.location.yIn) {
172
- if (a.location.xIn < b.location.xIn) {
173
- return -1;
174
- } else {
175
- return 1;
176
- }
177
- }
178
- return 0;
179
- };
180
- const getSearchStartPosition = (anchorPosition, searchList) => {
181
- if (!anchorPosition) {
182
- return searchList[0].startIn;
183
- }
184
- for (const searchListElement of searchList) {
185
- if (comparePositions(searchListElement.startIn, anchorPosition) >= 0) {
186
- return searchListElement.startIn;
187
- }
188
- }
189
- return anchorPosition;
190
- };
191
- const getSearchEndPosition = (anchorPosition, searchList) => {
192
- if (!anchorPosition) {
193
- return searchList[0].endIn;
194
- }
195
- for (const searchListElement of searchList) {
196
- if (comparePositions(searchListElement.endIn, anchorPosition) >= 0) {
197
- return searchListElement.endIn;
198
- }
199
- }
200
- return anchorPosition;
201
- };
202
- function generateSubstrings(sentence) {
203
- let substrings = [];
204
- for (let i = 0; i < sentence.length; i++) {
205
- substrings.push(sentence.substring(0, i + 1)); // Add substring from index 0 to i
206
- }
207
- return substrings;
208
- }
209
- function detectWordWrap(anchorPosition, startPosition, endPosition, editor, sentence, startY) {
210
- let substrings = generateSubstrings(sentence);
211
- let wordWrapAnchorPosition = anchorPosition;
212
- let wordWrapPositions = [];
213
- if (substrings.length === 1) {
214
- wordWrapPositions.push({
215
- startPosition,
216
- endPosition
217
- });
218
- } else {
219
- let wordWrapTokens = [];
220
- let currentY = startY;
221
- let wordWrapIndex = 0;
222
- let pos = 0;
223
- for (const substring of substrings) {
224
- container.documentEditor.search.find(substring);
225
- let endPosition = getSearchEndPosition(wordWrapAnchorPosition, container.documentEditor.search.searchResults.searchModule.textSearchResults.innerList);
226
- wordWrapAnchorPosition = endPosition;
227
- if (endPosition.location.yIn > currentY) {
228
- wordWrapTokens.push(sentence.substring(wordWrapIndex, pos));
229
- currentY = endPosition.location.yIn;
230
- wordWrapIndex = pos;
231
- }
232
- pos++;
233
- }
234
-
235
- //Add last substring
236
- wordWrapTokens.push(sentence.substring(wordWrapIndex, sentence.length));
237
- //console.log("\n\n\n\n\nWORD WRAP TOKENS : [" + wordWrapIndex + "]", wordWrapTokens);
238
- for (const wordWrapToken of wordWrapTokens) {
239
- container.documentEditor.search.find(wordWrapToken);
240
- let startPosition = getSearchStartPosition(anchorPosition, container.documentEditor.search.searchResults.searchModule.textSearchResults.innerList);
241
- let endPosition = getSearchEndPosition(anchorPosition, container.documentEditor.search.searchResults.searchModule.textSearchResults.innerList);
242
- wordWrapPositions.push({
243
- startPosition,
244
- endPosition
245
- });
246
- }
247
- }
248
- return wordWrapPositions;
249
- }
250
- const setPlaceholderPositions = prop => {
251
- console.log("SETTING PLACE HOLDER POSITIONS FOR : " + prop.placeHolder);
252
- container.documentEditor.search.find(prop.originalText);
253
- let searchResults = container.documentEditor.search.searchResults.searchModule.textSearchResults.innerList;
254
- prop.positions = [];
255
- for (const searchResult of searchResults) {
256
- if (searchResult.endIn.location.yIn > searchResult.startIn.location.yIn) {
257
- let positions = detectWordWrap(searchResult.startIn, searchResult.startIn, searchResult.endIn, container.documentEditor, prop.originalText, searchResult.startIn.location.yIn);
258
- for (const position of positions) {
259
- prop.positions.push({
260
- start: {
261
- paragraph: {
262
- x: position.startPosition.currentWidget.paragraph.x,
263
- y: position.startPosition.currentWidget.paragraph.y,
264
- height: position.startPosition.currentWidget.paragraph.height
265
- },
266
- x: position.startPosition.location.xIn,
267
- y: position.startPosition.location.yIn
268
- },
269
- end: {
270
- paragraph: {
271
- x: position.endPosition.currentWidget.paragraph.x,
272
- y: position.endPosition.currentWidget.paragraph.y,
273
- height: position.endPosition.currentWidget.paragraph.height
274
- },
275
- x: position.endPosition.location.xIn,
276
- y: position.endPosition.location.yIn
277
- }
278
- });
279
- }
280
- } else {
281
- prop.positions.push({
282
- start: {
283
- paragraph: {
284
- x: searchResult.startIn.currentWidget.paragraph.x,
285
- y: searchResult.startIn.currentWidget.paragraph.y,
286
- height: searchResult.startIn.currentWidget.paragraph.height
287
- },
288
- x: searchResult.startIn.location.xIn,
289
- y: searchResult.startIn.location.yIn
290
- },
291
- end: {
292
- paragraph: {
293
- x: searchResult.endIn.currentWidget.paragraph.x,
294
- y: searchResult.endIn.currentWidget.paragraph.y,
295
- height: searchResult.endIn.currentWidget.paragraph.height
296
- },
297
- x: searchResult.endIn.location.xIn,
298
- y: searchResult.endIn.location.yIn
299
- }
300
- });
301
- }
302
- }
303
- console.log(prop);
304
- console.log("\n\n");
305
- };
306
- function setup() {
307
- let initialFormValue = {
308
- properties: []
309
- };
310
- if (container) {
311
- container.documentEditor.selection.selectAll();
312
- const text = container.documentEditor.selection.getText();
313
- container.documentEditor.selection.clear();
314
- const bodyMatches = removeNextLineCharsFromPlaceholders(text, '<<', '>>');
315
- const footerText = getFooterText();
316
- let footerMatches = removeNextLineCharsFromPlaceholders(footerText, '<<', '>>');
317
- const matches = bodyMatches.concat(footerMatches);
318
-
319
- //container.documentEditor.editor.enforceProtection('password', 'CommentsOnly');
320
- //container.documentEditor.search.findAll(/<<[\s\S]*?>>/g);
321
-
322
- matches.forEach(match => {
323
- let prop = model.current.properties.find(p => p.placeHolder === match.text);
324
- if (!prop) {
325
- prop = {
326
- placeHolder: match.text
327
- };
328
- }
329
- prop.originalText = match.originalText;
330
- setPlaceholderPositions(prop);
331
- if (!initialFormValue.properties.find(p => p.placeHolder === match.text)) {
332
- initialFormValue.properties.push(prop);
333
- }
334
- });
335
- let i = 0;
336
- for (const property of initialFormValue.properties) {
337
- property.id = i++;
338
- }
339
- propertiesFormHandle.current.api.bindData(initialFormValue);
340
- saveDoc().then(blob => {
341
- const newFile = new File([blob], props.documentName, {
342
- type: blob.type
343
- });
344
- setFile(newFile);
345
- if (contentState.changed) {
346
- if (!initialFormValue) {
347
- valueChangeHandler(null);
348
- } else {
349
- let newVal = validateProps(initialFormValue.properties) ? {
350
- properties: initialFormValue.properties,
351
- file: newFile
352
- } : null;
353
- valueChangeHandler(newVal);
354
- }
355
- }
356
- contentState.changed = false;
357
- });
358
- }
359
- }
360
- (0, _react.useEffect)(() => {
361
- setup();
362
- }, [doc]);
363
- (0, _react.useEffect)(() => {
364
- if (container && documentData) {
365
- container.documentEditor.open(JSON.stringify(documentData));
366
- }
367
- }, [documentData]);
368
- const validateProps = properties => {
369
- let valid = properties && properties.length > 0;
370
- if (valid) {
371
- for (const property of properties) {
372
- if (!property.valueField) {
373
- valid = false;
374
- break;
375
- }
376
- }
377
- }
378
- return valid;
379
- };
380
- const removeNextLineCharsFromPlaceholders = (text, startTag, endTag) => {
381
- const matches = [];
382
- let index = 0;
383
- while (index < text.length) {
384
- const startIndex = text.indexOf(startTag, index);
385
- if (startIndex === -1) break;
386
- const endIndex = text.indexOf(endTag, startIndex + startTag.length);
387
- if (endIndex === -1) break;
388
- let find = text.substring(startIndex, endIndex + endTag.length);
389
- let split = find.split("\r");
390
- if (split.length > 1) {
391
- container.documentEditor.search.find(split[0]);
392
- let startPosition = container.documentEditor.search.searchResults.searchModule.textSearchResults.innerList[0].startIn;
393
- container.documentEditor.search.find(split[split.length - 1]);
394
- let endPosition = container.documentEditor.search.searchResults.searchModule.textSearchResults.innerList[0].endIn;
395
- let selection = container.documentEditor.selection;
396
- selection.selectRange(startPosition, endPosition);
397
- if (selection && selection.start && selection.end) {
398
- let selectedText = selection.getText();
399
- container.documentEditor.editor.delete();
400
- container.documentEditor.editor.insertText(selectedText.replace(/(\r\n|\n|\r)/gm, ""));
401
- } else {
402
- console.error("No valid selection found");
403
- }
404
- }
405
- matches.push({
406
- originalText: find,
407
- start: startIndex,
408
- end: endIndex + endTag.length,
409
- text: find.replace(/(\r\n|\n|\r)/gm, "")
410
- });
411
- index = endIndex + endTag.length;
412
- }
413
- return matches;
414
- };
415
- function setupContainer() {
416
- container.documentEditor.currentUser = _ApplicationManager.default.getUserDetails().name + " " + _ApplicationManager.default.getUserDetails().surname;
417
- }
418
- (0, _react.useEffect)(() => {
419
- if (container) {
420
- setupContainer();
421
- //autoSave();
422
-
423
- const editor = container.documentEditor;
424
- editor.addEventListener("keyDown", event => {
425
- const startPosition = container.documentEditor.selection.start;
426
- let selectedProperty;
427
- for (const property of model.current.properties) {
428
- for (const position of property.positions) {
429
- if (position.start.y === startPosition.location.yIn && position.start.x <= startPosition.location.xIn && position.end.x >= startPosition.location.xIn) {
430
- selectedProperty = property;
431
- break;
432
- }
433
- }
434
- }
435
- if (selectedProperty) {
436
- event.event.preventDefault();
437
- if (event.event.key === "Backspace") {
438
- // For some reason, preventDefault does not work on the backspace key so we throw this exception as a temporary measure to prevent it
439
- throw new Error("Backspace pressed on restricted area");
440
- }
441
- }
442
- });
443
- }
444
- }, [container]);
445
- (0, _react.useEffect)(() => {
22
+ React.useEffect(() => {
446
23
  props.handle.api = api();
447
24
  });
448
- (0, _react.useEffect)(() => {
449
- props.handle.api = api();
450
- let eventHandlingConfig = {};
451
- let defaultAction = {
452
- actionType: 'script',
453
- script: {
454
- lines: [`@#{this}.highlightSelection($event.data)`]
455
- }
456
- };
457
- eventHandlingConfig.subscriptions = [];
458
- let subscription = {
459
- publisher: 'propertiesGrid',
460
- eventType: _EventType.default.SELECTION_CHANGE,
461
- actions: [defaultAction]
462
- };
463
- eventHandlingConfig.subscriptions.push(subscription);
464
- _Observable.default.addSubscriptions(_Utils.default.parseConfig({
465
- id: props.id + "DocTemplateDesigner",
466
- eventHandlingConfig
467
- }, props.viewId).eventHandlingConfig, props.handle, props.viewId);
468
- return () => {
469
- _Observable.default.clearComponentEventListeners(props.handle);
470
- };
471
- }, []);
472
- const doHighlightSelection = selectedPropertyRows => {
473
- if (container && selectedPropertyRows && selectedPropertyRows.length > 0) {
474
- container.documentEditor.selection.clear();
475
- container.documentEditor.search.find(selectedPropertyRows[0].placeHolder);
476
- }
477
- };
478
- const saveAsBase64 = async () => {
479
- if (props.allowUnresolvedChanges === false && container.documentEditor.revisions.length > 0) {
480
- setErrorMessage("Please accept or reject all suggested changes");
481
- return null;
482
- }
483
- if (container) {
484
- container.documentEditor.editor.stopProtection("password");
485
- let blob = await container.documentEditor.saveAsBlob('Docx');
486
- if (props.commentsOnly) {
487
- container.documentEditor.editor.enforceProtection('password', 'CommentsOnly');
488
- }
489
- return new File([blob], props.file?.name ? props.file.name : 'document.docx', {
490
- type: props.file?.type ? props.file.type : 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
491
- });
25
+ React.useEffect(() => {
26
+ if (props.value) {
27
+ propertiesComponentHandle.api.model = {
28
+ properties: props.value.properties
29
+ };
492
30
  }
493
- };
31
+ }, [props.value]);
494
32
  const api = () => {
495
33
  return {
496
34
  get id() {
497
- return props.id + "DocTemplateDesigner";
35
+ return props.id + "-templateDesignerComponent";
498
36
  },
499
- highlightSelection: selectedPropertyRow => {
500
- doHighlightSelection(selectedPropertyRow);
37
+ getChildren: () => {
38
+ return [propertiesComponentHandle, templateDesignerComponentHandle];
501
39
  },
502
40
  getValue: () => {
503
- return saveAsBase64();
41
+ if (templateDesignerComponentHandle.api) {
42
+ return {
43
+ file: templateDesignerComponentHandle.api.getValue(),
44
+ properties: propertiesComponentHandle.api.value
45
+ };
46
+ }
47
+ },
48
+ getDocumentValue: async () => {
49
+ if (templateDesignerComponentHandle.api) {
50
+ return templateDesignerComponentHandle.api.getDocumentValue();
51
+ }
52
+ return null;
504
53
  }
505
54
  };
506
55
  };
@@ -511,88 +60,39 @@ const DocumentTemplateDesignerComponent = props => {
511
60
  }
512
61
  }, /*#__PURE__*/React.createElement("div", {
513
62
  style: {
514
- width: "40%",
515
- overflow: "auto",
63
+ width: "25%",
64
+ overflow: "hidden",
516
65
  minHeight: "250px",
517
66
  height: "100%",
518
- border: "1px solid #e1e1e1",
519
67
  borderRadius: '4px',
520
- marginRight: "4px"
68
+ padding: "0 16px"
521
69
  }
522
70
  }, /*#__PURE__*/React.createElement("div", {
523
71
  style: {
524
- width: "100%",
525
- fontSize: "12px",
526
- backgroundColor: "#fafafa",
527
- padding: "8px",
528
- height: "77px",
529
- color: "rgba(0, 0, 0, 0.87)",
530
- borderBottom: "#f1f1f1",
531
- display: "flex",
532
- alignItems: "center"
533
- }
534
- }, "Properties"), /*#__PURE__*/React.createElement("div", {
535
- style: {
536
- width: "100%",
72
+ width: "calc(100% - 8px)",
537
73
  marginTop: "4px",
538
- padding: "0 8px"
74
+ padding: "0",
75
+ overflowY: "hidden",
76
+ maxHeight: "100%"
539
77
  }
540
78
  }, /*#__PURE__*/React.createElement(_Form.default, {
541
- config: props.propertiesFormConfig,
542
- handle: propertiesFormHandle.current,
543
- valueChangeHandler: React.useCallback(val => {
544
- model.current = val;
545
- let newVal = validateProps(val.properties) ? val : null;
546
- if (JSON.stringify(currentVal.current) !== JSON.stringify(newVal?.properties)) {
547
- if (newVal) {
548
- valueChangeHandler({
549
- properties: val.properties,
550
- file
551
- });
552
- currentVal.current = val.properties;
553
- } else {
554
- if (currentVal.current) {
555
- currentVal.current = null;
556
- valueChangeHandler(null);
557
- }
558
- }
559
- }
560
- }, [file]),
79
+ config: props.propertiesForm,
80
+ handle: propertiesComponentHandle,
561
81
  viewId: props.viewId,
562
82
  className: 'defaultForm'
563
83
  }))), props.visible && /*#__PURE__*/React.createElement("div", {
564
84
  className: 'col no-margin no-padding',
565
85
  style: {
566
- maxWidth: 'calc(60% - 16px)',
86
+ maxWidth: '75%',
567
87
  height: '100%'
568
88
  }
569
- }, /*#__PURE__*/React.createElement(_ej2ReactDocumenteditor.DocumentEditorContainerComponent, {
570
- id: "container",
571
- height: '590px',
572
- ref: scope => {
573
- setContainer(scope);
574
- },
575
- created: () => {
576
- if (container) {
577
- container.resize();
578
- container.documentEditor.resize();
579
- }
580
- },
581
- documentChange: doc => {
582
- if (container) {
583
- setupContainer();
584
- }
585
- setDoc(doc);
586
- }
587
- //documentEditorSettings={searchHighlightColor}
588
- ,
589
- showPropertiesPane: false,
590
- enableTrackChanges: false,
591
- toolbarItems: items,
592
- toolbarClick: onToolbarClick,
593
- contentChange: onContentChange,
594
- serviceUrl: _WordDocumentViewer.DOCSVC,
595
- enableToolbar: true
89
+ }, /*#__PURE__*/React.createElement(_DocumentViewer.default, {
90
+ config: props.templateViewer,
91
+ handle: templateDesignerComponentHandle,
92
+ viewId: props.viewId,
93
+ onValueChange: file => props.valueChangeHandler(_objectSpread(_objectSpread({}, propertiesComponentHandle.api.value), {}, {
94
+ file: file
95
+ }))
596
96
  })));
597
97
  };
598
98
  var _default = exports.default = DocumentTemplateDesignerComponent;
@@ -8,8 +8,7 @@ var _react = _interopRequireWildcard(require("react"));
8
8
  var _material = require("@mui/material");
9
9
  var _iconsMaterial = require("@mui/icons-material");
10
10
  require("./DocumentTemplateDesignerComponent.css");
11
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
11
+ 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
12
  const DocumentTemplatePlaceholderDialog = _ref => {
14
13
  let {
15
14
  open,
@@ -38,7 +37,7 @@ const DocumentTemplatePlaceholderDialog = _ref => {
38
37
  };
39
38
  const handleInsert = () => {
40
39
  if (selectedIndex !== null) {
41
- console.log(`Selected placeholder: ${placeholders[selectedIndex].title}`);
40
+ console.log("Selected placeholder: ".concat(placeholders[selectedIndex].title));
42
41
  onInsertHandler(placeholders[selectedIndex]);
43
42
  }
44
43
  onClose();
@@ -59,7 +58,7 @@ const DocumentTemplatePlaceholderDialog = _ref => {
59
58
  // className="char_block"
60
59
  ,
61
60
  style: {
62
- border: selectedIndex === index ? `1px solid ${palette.primary.main}` : null,
61
+ border: selectedIndex === index ? "1px solid ".concat(palette.primary.main) : null,
63
62
  margin: '4px 0',
64
63
  borderRadius: '4px'
65
64
  }