@agilemotion/oui-react-js 1.2.9 → 1.3.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 (35) hide show
  1. package/dist/ApplicationContext.js +90 -36
  2. package/dist/BasicApp.js +4 -4
  3. package/dist/BasicAppHome.js +4 -2
  4. package/dist/RestUtils.js +11 -4
  5. package/dist/assets/css/black-dashboard-react.css +1 -2
  6. package/dist/assets/scss/black-dashboard-react/bootstrap/_reboot.scss +0 -1
  7. package/dist/components/DocumentView.css +4 -0
  8. package/dist/components/DocumentViewer.js +93 -37
  9. package/dist/components/DocumentViewerComponent.js +93 -0
  10. package/dist/components/ElementResizeHandler.js +232 -0
  11. package/dist/components/Graph.js +102 -6
  12. package/dist/components/GraphNode.js +1 -1
  13. package/dist/components/HtmlPanel.js +45 -4
  14. package/dist/components/StepperTitleBar.css +85 -0
  15. package/dist/components/StepperTitleBar.js +188 -0
  16. package/dist/components/TitleBar.js +1 -1
  17. package/dist/components/Toolbar.js +6 -3
  18. package/dist/components/form/Form.js +2 -2
  19. package/dist/components/form/UploadField.js +1 -1
  20. package/dist/components/layout/Layout.js +28 -14
  21. package/dist/components/signatures/AlertItem.js +71 -0
  22. package/dist/components/signatures/Card.js +39 -0
  23. package/dist/components/signatures/MenuButton.js +108 -0
  24. package/dist/components/signatures/Prompt.js +78 -0
  25. package/dist/components/signatures/ResponsiveTable.css +91 -0
  26. package/dist/components/signatures/ResponsiveTable.js +568 -0
  27. package/dist/components/signatures/SearchView.js +236 -0
  28. package/dist/components/signatures/SignatorySearch.js +115 -0
  29. package/dist/components/signatures/SignatorySearchForm.js +77 -0
  30. package/dist/components/signatures/SignatureInputProps.js +336 -0
  31. package/dist/components/signatures/SignatureTemplateDesigner.js +888 -0
  32. package/dist/components/signatures/Toolbar.js +208 -0
  33. package/dist/components/signatures/ViewUtils.js +309 -0
  34. package/dist/components/signatures/widgets.css +126 -0
  35. package/package.json +5 -4
@@ -0,0 +1,888 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _Utils = _interopRequireDefault(require("../../Utils"));
11
+
12
+ var _reactHtmlRenderer = _interopRequireDefault(require("react-html-renderer"));
13
+
14
+ var _core = require("@material-ui/core");
15
+
16
+ var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
17
+
18
+ var _ApplicationContext = _interopRequireDefault(require("../../ApplicationContext"));
19
+
20
+ var _reactPromiseTracker = require("react-promise-tracker");
21
+
22
+ var _SignatureInputProps = _interopRequireDefault(require("./SignatureInputProps"));
23
+
24
+ var _Observable = _interopRequireDefault(require("../../event/Observable"));
25
+
26
+ var _Event = _interopRequireDefault(require("../../event/Event"));
27
+
28
+ var _EventType = _interopRequireDefault(require("../../event/EventType"));
29
+
30
+ var Base64 = _interopRequireWildcard(require("js-base64"));
31
+
32
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
33
+
34
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
35
+
36
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
+
38
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
39
+
40
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
41
+
42
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
43
+
44
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
45
+
46
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
47
+
48
+ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
49
+
50
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
51
+
52
+ const INITIAL_ITEM = {
53
+ type: "initial",
54
+ defaultWidth: "100%",
55
+ defaultWidthOnPageDrop: "80px",
56
+ defaultHeightOnPageDrop: "80px"
57
+ };
58
+ const SIGN_ITEM = {
59
+ type: "sign",
60
+ defaultWidth: "100%",
61
+ defaultWidthOnPageDrop: "200px",
62
+ defaultHeightOnPageDrop: "80px"
63
+ };
64
+ const TEXT_ITEM = {
65
+ type: "text",
66
+ defaultWidth: "100%",
67
+ defaultWidthOnPageDrop: "200px",
68
+ defaultHeightOnPageDrop: "80px"
69
+ };
70
+ const types = [INITIAL_ITEM, SIGN_ITEM, TEXT_ITEM];
71
+ const useStyles = (0, _core.makeStyles)(theme => ({
72
+ button: {
73
+ margin: theme.spacing(1)
74
+ },
75
+ input: {
76
+ display: 'none'
77
+ },
78
+ errorMessageDisplay: {
79
+ color: 'red'
80
+ },
81
+ propertyWindow: {
82
+ width: "320px",
83
+ height: "400px",
84
+ border: "1px solid #e1e1e1",
85
+ margin: "4px",
86
+ borderRadius: "4px"
87
+ },
88
+ paletteButton: {
89
+ width: "320px",
90
+ height: "40px",
91
+ backgroundColor: "#e1e1e1",
92
+ margin: "4px",
93
+ textAlign: "center",
94
+ padding: "28px 0",
95
+ borderRadius: "4px"
96
+ },
97
+ paletteButtonSelected: {
98
+ '&:hover': {
99
+ backgroundColor: "yellowgreen"
100
+ },
101
+ width: "320px",
102
+ height: "40px",
103
+ backgroundColor: "yellowgreen",
104
+ margin: "4px",
105
+ textAlign: "center",
106
+ padding: "28px 0",
107
+ borderRadius: "4px"
108
+ },
109
+ palette: {
110
+ width: "332px",
111
+ borderRadius: "4px",
112
+ border: "1px solid #e1e1e1"
113
+ }
114
+ }));
115
+
116
+ const status = response => {
117
+ if (response.ok) {
118
+ return Promise.resolve(response);
119
+ } else {
120
+ let error = new Error(response.statusText);
121
+ error.code = response.status;
122
+ return Promise.reject(error);
123
+ }
124
+ };
125
+
126
+ const json = response => {
127
+ return response.text();
128
+ };
129
+
130
+ const VALID_COLOR = "green";
131
+ const INVALID_COLOR = "red";
132
+ const location = window.location.protocol + "//" + window.location.hostname;
133
+ const dragAndDropData = {}; //Global variable as Chrome doesn't allow access to event.dataTransfer in dragover
134
+
135
+ const SignatureTemplateDesigner = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.default.forwardRef((props, ref) => {
136
+ const _React$useState = _react.default.useState(null),
137
+ _React$useState2 = _slicedToArray(_React$useState, 2),
138
+ file = _React$useState2[0],
139
+ setFile = _React$useState2[1];
140
+
141
+ const _React$useState3 = _react.default.useState(null),
142
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
143
+ htmlTemplate = _React$useState4[0],
144
+ setHtmlTemplate = _React$useState4[1];
145
+
146
+ const _React$useState5 = _react.default.useState(null),
147
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
148
+ paletteSelectionId = _React$useState6[0],
149
+ setPaletteSelectionId = _React$useState6[1];
150
+
151
+ const paletteSelection = _react.default.useRef(null);
152
+
153
+ const idCounter = _react.default.useRef(0);
154
+
155
+ const _React$useState7 = _react.default.useState(null),
156
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
157
+ value = _React$useState8[0],
158
+ setValue = _React$useState8[1];
159
+
160
+ const _React$useState9 = _react.default.useState(null),
161
+ _React$useState10 = _slicedToArray(_React$useState9, 2),
162
+ selectedInputBoxValue = _React$useState10[0],
163
+ setSelectedInputBoxValue = _React$useState10[1];
164
+
165
+ const _React$useState11 = _react.default.useState([]),
166
+ _React$useState12 = _slicedToArray(_React$useState11, 2),
167
+ inputBoxValues = _React$useState12[0],
168
+ setInputBoxValues = _React$useState12[1];
169
+
170
+ const classes = useStyles();
171
+
172
+ const _React$useState13 = _react.default.useState(true),
173
+ _React$useState14 = _slicedToArray(_React$useState13, 2),
174
+ initializing = _React$useState14[0],
175
+ setInitializing = _React$useState14[1];
176
+
177
+ const _React$useState15 = _react.default.useState(true),
178
+ _React$useState16 = _slicedToArray(_React$useState15, 2),
179
+ loading = _React$useState16[0],
180
+ setLoading = _React$useState16[1];
181
+
182
+ _react.default.useEffect(() => {
183
+ props.handle.api = api();
184
+
185
+ if (initializing) {
186
+ let parsedConfig = _Utils.default.parseConfig(props.config, props.viewId);
187
+
188
+ _Observable.default.addSubscriptions(parsedConfig.eventHandlingConfig, props.handle, props.viewId);
189
+
190
+ _Observable.default.addSystemSubscriptions(parsedConfig);
191
+
192
+ setInitializing(false);
193
+
194
+ if (!_Utils.default.isNull(props.loadCompleteHandler)) {
195
+ props.loadCompleteHandler(props.config.id);
196
+ }
197
+ }
198
+ });
199
+
200
+ const api = () => {
201
+ return {
202
+ get id() {
203
+ return props.config.id;
204
+ },
205
+
206
+ loadData: actionConfig => {
207
+ setLoading(true);
208
+
209
+ if (!_Utils.default.isNull(actionConfig) && !_Utils.default.isNull(actionConfig.value)) {
210
+ let value = _ApplicationContext.default.isExpression(actionConfig.value) ? _ApplicationContext.default.resolveExpressionValue(actionConfig.value) : actionConfig.value;
211
+
212
+ if (!_Utils.default.isNull(value)) {
213
+ setValue(value);
214
+ setHtmlTemplate(value.htmlTemplate);
215
+ setInputBoxValues(value.signatureInputs);
216
+ idCounter.current = value.idCounter;
217
+ }
218
+ }
219
+
220
+ setLoading(false);
221
+ },
222
+
223
+ get model() {
224
+ return value;
225
+ },
226
+
227
+ get value() {
228
+ return value;
229
+ }
230
+
231
+ };
232
+ };
233
+
234
+ let mouseOverHandler = function mouseOverHandler(event) {
235
+ if (typeof event.target.className === 'string' && event.target.className.includes("dropTarget") && paletteSelection.current !== null) {
236
+ let originalBorder = event.target.style.border.replace(INVALID_COLOR, VALID_COLOR);
237
+ event.target.setAttribute('originalBorder', originalBorder);
238
+ event.target.style.border = "4px dashed " + VALID_COLOR;
239
+ }
240
+ };
241
+
242
+ let mouseOutHandler = function mouseOutHandler(event) {
243
+ if (typeof event.target.className === 'string' && event.target.className.includes("dropTarget")) {
244
+ let originalBorder = event.target.getAttribute("originalBorder");
245
+
246
+ if (_Utils.default.isNull(originalBorder)) {
247
+ originalBorder = "";
248
+ }
249
+
250
+ event.target.style.border = originalBorder;
251
+ }
252
+ };
253
+
254
+ const resetBorders = item => {
255
+ let elements = document.getElementsByClassName("_draggable_" + item.type);
256
+
257
+ var _iterator = _createForOfIteratorHelper(elements),
258
+ _step;
259
+
260
+ try {
261
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
262
+ const element = _step.value;
263
+ element.style.borderWidth = "2px";
264
+ }
265
+ } catch (err) {
266
+ _iterator.e(err);
267
+ } finally {
268
+ _iterator.f();
269
+ }
270
+ };
271
+
272
+ const getAllInputBoxElements = () => {
273
+ let elements = [];
274
+
275
+ var _iterator2 = _createForOfIteratorHelper(types),
276
+ _step2;
277
+
278
+ try {
279
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
280
+ const type = _step2.value;
281
+
282
+ var _iterator3 = _createForOfIteratorHelper(document.getElementsByClassName("_draggable_" + type.type)),
283
+ _step3;
284
+
285
+ try {
286
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
287
+ const element = _step3.value;
288
+ elements.push(element);
289
+ }
290
+ } catch (err) {
291
+ _iterator3.e(err);
292
+ } finally {
293
+ _iterator3.f();
294
+ }
295
+ }
296
+ } catch (err) {
297
+ _iterator2.e(err);
298
+ } finally {
299
+ _iterator2.f();
300
+ }
301
+
302
+ return elements;
303
+ };
304
+
305
+ const getPageDropOffset = (left, top) => {
306
+ let leftOffset = 0;
307
+ let topOffset = 0;
308
+ let elements = getAllInputBoxElements();
309
+
310
+ var _iterator4 = _createForOfIteratorHelper(elements),
311
+ _step4;
312
+
313
+ try {
314
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
315
+ const element = _step4.value;
316
+
317
+ if (parseFloat(element.style.left.replace('px', '')) === left) {
318
+ leftOffset += 4;
319
+ left = parseFloat(element.style.left.replace('px', '')) + 4;
320
+ }
321
+
322
+ if (parseFloat(element.style.top.replace('pt', '')) === top) {
323
+ topOffset += 4;
324
+ top = parseFloat(element.style.top.replace('pt', ''));
325
+ }
326
+ }
327
+ } catch (err) {
328
+ _iterator4.e(err);
329
+ } finally {
330
+ _iterator4.f();
331
+ }
332
+
333
+ return {
334
+ leftOffset: leftOffset,
335
+ topOffset: topOffset
336
+ };
337
+ };
338
+
339
+ const convertToPixels = val => {
340
+ if (val.includes("pt")) {
341
+ let numericValue = parseFloat(val.replace('pt', ''));
342
+ return (4 * numericValue / 3).toFixed(0) + "px";
343
+ }
344
+
345
+ return val;
346
+ };
347
+
348
+ const resetAllBorder = () => {
349
+ resetBorders(INITIAL_ITEM);
350
+ resetBorders(SIGN_ITEM);
351
+ resetBorders(TEXT_ITEM);
352
+ };
353
+
354
+ let mouseClickHandler = function mouseClickHandler(event) {
355
+ resetAllBorder();
356
+ setSelectedInputBoxValue(null);
357
+
358
+ if (typeof event.target.className === 'string' && event.target.className.includes("dropTarget")) {
359
+ if (paletteSelection.current !== null) {
360
+ let node = document.createElement("div"); // TODO : First check if its an overlay or an adaptive mode
361
+
362
+ node.style.lineHeight = event.target.style.lineHeight;
363
+ node.style.border = "2px dashed " + INVALID_COLOR;
364
+ node.style.position = 'absolute';
365
+ node.style.borderRadius = '2px';
366
+ node.id = idCounter.current++;
367
+ node.className = "__agm_wf_signatureInput__ _draggable_" + paletteSelection.current.type;
368
+ node.setAttribute("draggable", true);
369
+
370
+ if (event.target.className.includes("page")) {
371
+ let top = !_Utils.default.isNull(event.target.style.top) && event.target.style.top.trim().length > 0 ? event.target.style.top.replaceAll('pt', '') : '0';
372
+ let topPos = parseFloat(top) + parseFloat(event.target.style.height.replace('pt', '')) - 75;
373
+ let pageDropOffset = getPageDropOffset(16, topPos);
374
+ node.style.top = topPos - pageDropOffset.topOffset + 'pt';
375
+ node.style.width = paletteSelection.current.defaultWidthOnPageDrop;
376
+ node.style.height = paletteSelection.current.defaultHeightOnPageDrop;
377
+ node.style.padding = '8px';
378
+ node.style.left = 16 + pageDropOffset.leftOffset + 'px';
379
+ event.target.appendChild(node);
380
+ } else {
381
+ let lineHeight = event.target.style.lineHeight;
382
+ let hasLineHeight = !_Utils.default.isNull(lineHeight) && lineHeight.trim().length > 0 && lineHeight.toString() !== '0';
383
+ node.style.top = hasLineHeight ? event.target.style.top : parseFloat(event.target.style.top.replace('pt', '')) - 14.5 + 'pt';
384
+ node.style.left = event.target.style.left;
385
+ node.style.width = convertToPixels(event.target.style.width);
386
+ node.style.height = convertToPixels(hasLineHeight ? event.target.style.lineHeight : '14.5pt');
387
+ node.style.padding = parseFloat(node.style.height.replace('px', '')) > 32 ? '8px' : '0px';
388
+ event.target.parentElement.appendChild(node);
389
+ }
390
+
391
+ node.addEventListener('dragstart', dragStart, false);
392
+ let inputValue = {};
393
+ inputValue.id = node.id;
394
+ inputValue.height = node.style.height.replace("px", "");
395
+ inputValue.width = node.style.width.replace("px", "");
396
+ inputValue.type = paletteSelection.current.type === "initial" ? "INITIAL" : paletteSelection.current.type === "sign" ? "SIGN" : "TEXT INPUT";
397
+ inputBoxValues.push(inputValue);
398
+ setValue(null);
399
+ }
400
+
401
+ paletteSelection.current = null;
402
+ setPaletteSelectionId(null);
403
+ } else if (event.target.className.includes("_draggable_")) {
404
+ event.target.style.borderWidth = "4px";
405
+ let inputValue = getInputValue(event.target.id);
406
+ setSelectedInputBoxValue(inputValue);
407
+ }
408
+
409
+ if (typeof event.target.className === 'string' && !event.target.className.includes("paletteButton") && !event.target.className.includes("paletteButtonLabel") && !event.target.className.includes("paletteButtonSelected")) {
410
+ paletteSelection.current = null;
411
+ setPaletteSelectionId(null);
412
+ document.getElementsByTagName("body")[0].style.cursor = 'default';
413
+ }
414
+ };
415
+
416
+ _react.default.useEffect(() => {
417
+ return () => {
418
+ destroyEvents();
419
+ };
420
+ }, []);
421
+
422
+ _react.default.useEffect(() => {
423
+ let event = new _Event.default(props.handle, props.viewId, value);
424
+
425
+ _Observable.default.fireEvent(_EventType.default.VALUE_CHANGE, event);
426
+ }, [value]);
427
+
428
+ const initDragAndDrop = className => {
429
+ let elements = document.getElementsByClassName(className);
430
+
431
+ var _iterator5 = _createForOfIteratorHelper(elements),
432
+ _step5;
433
+
434
+ try {
435
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
436
+ const element = _step5.value;
437
+
438
+ if (className !== "page") {
439
+ element.addEventListener("dragstart", dragStart, false);
440
+ }
441
+
442
+ element.addEventListener("dragover", dragOver, false);
443
+ element.addEventListener("drop", drop, false);
444
+ }
445
+ } catch (err) {
446
+ _iterator5.e(err);
447
+ } finally {
448
+ _iterator5.f();
449
+ }
450
+ };
451
+
452
+ const destroyEvents = () => {
453
+ let elements = document.getElementsByClassName("page");
454
+
455
+ var _iterator6 = _createForOfIteratorHelper(elements),
456
+ _step6;
457
+
458
+ try {
459
+ for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
460
+ const element = _step6.value;
461
+ element.removeEventListener("dragover", dragOver);
462
+ element.removeEventListener("drop", drop);
463
+ }
464
+ } catch (err) {
465
+ _iterator6.e(err);
466
+ } finally {
467
+ _iterator6.f();
468
+ }
469
+
470
+ let allInputs = getAllInputBoxElements();
471
+
472
+ var _iterator7 = _createForOfIteratorHelper(allInputs),
473
+ _step7;
474
+
475
+ try {
476
+ for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
477
+ const element = _step7.value;
478
+ element.removeEventListener("dragover", dragOver);
479
+ element.removeEventListener("drop", drop);
480
+ element.removeEventListener("dropStart", dragStart);
481
+ }
482
+ } catch (err) {
483
+ _iterator7.e(err);
484
+ } finally {
485
+ _iterator7.f();
486
+ }
487
+ };
488
+
489
+ _react.default.useEffect(() => {
490
+ initDragAndDrop("page");
491
+
492
+ var _iterator8 = _createForOfIteratorHelper(types),
493
+ _step8;
494
+
495
+ try {
496
+ for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
497
+ const type = _step8.value;
498
+ initDragAndDrop("_draggable_" + type.type);
499
+ resetBorders(type);
500
+ }
501
+ } catch (err) {
502
+ _iterator8.e(err);
503
+ } finally {
504
+ _iterator8.f();
505
+ }
506
+
507
+ if (!loading) {
508
+ setValue(null);
509
+ }
510
+
511
+ setSelectedInputBoxValue(null);
512
+ setInputBoxValues([]);
513
+ setPaletteSelectionId(null);
514
+ }, [htmlTemplate]);
515
+
516
+ function handleDragDrop(event) {
517
+ let offset;
518
+ offset = dragAndDropData.offset.split(',');
519
+ var dm = document.getElementById(dragAndDropData.id);
520
+ dm.style.left = event.clientX + parseInt(offset[0], 10) + 'px';
521
+ dm.style.top = event.clientY + parseInt(offset[1], 10) + 'px';
522
+ event.preventDefault();
523
+ return false;
524
+ }
525
+
526
+ function dragStart(event) {
527
+ document.body.style.cursor = "move";
528
+ let style = window.getComputedStyle(event.target, null);
529
+ dragAndDropData.offset = parseInt(style.getPropertyValue("left"), 10) - event.clientX + ',' + (parseInt(style.getPropertyValue("top"), 10) - event.clientY);
530
+ console.log("\n\n\nDRAG START " + event.target.id);
531
+ dragAndDropData.id = event.target.id;
532
+ }
533
+
534
+ function dragOver(event) {
535
+ document.body.style.cursor = "move";
536
+ return handleDragDrop(event);
537
+ }
538
+
539
+ function drop(event) {
540
+ document.body.style.cursor = "default";
541
+ return handleDragDrop(event);
542
+ }
543
+
544
+ const getInputValue = id => {
545
+ let index = 0;
546
+
547
+ var _iterator9 = _createForOfIteratorHelper(inputBoxValues),
548
+ _step9;
549
+
550
+ try {
551
+ for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
552
+ const inputBoxValue = _step9.value;
553
+
554
+ if (inputBoxValue.id === id) {
555
+ inputBoxValue.index = index;
556
+ return inputBoxValue;
557
+ }
558
+
559
+ index++;
560
+ }
561
+ } catch (err) {
562
+ _iterator9.e(err);
563
+ } finally {
564
+ _iterator9.f();
565
+ }
566
+
567
+ return null;
568
+ };
569
+
570
+ const handleSubmit = () => event => {
571
+ setHtmlTemplate("");
572
+ const accessToken = sessionStorage.getItem("accessToken");
573
+ const idToken = sessionStorage.getItem("idToken");
574
+ let data = new FormData();
575
+ data.append("sourceType", "PDF");
576
+ data.append("targetType", "HTML");
577
+ data.append("file", file);
578
+ let fetchConfig = {
579
+ method: 'POST',
580
+ headers: {
581
+ 'Accept': 'application/json',
582
+ 'Authorization': 'Bearer ' + accessToken,
583
+ 'idToken': idToken
584
+ },
585
+ body: data
586
+ };
587
+ let url = location + _ApplicationContext.default.getBaseApiUrl() + props.config.documentConverterUrl;
588
+ (0, _reactPromiseTracker.trackPromise)(fetch(encodeURI(url), fetchConfig).then(status).then(json).then(data => {
589
+ setHtmlTemplate(data);
590
+ setFile(null);
591
+ }).catch(e => {
592
+ if (e.code === 401) {
593
+ _ApplicationContext.default.clear();
594
+
595
+ _ApplicationContext.default.getApplicationHistory().push('/login');
596
+ }
597
+ }));
598
+ };
599
+
600
+ const handleChange = () => event => {
601
+ let files = event.target.files;
602
+ setFile(files[0]);
603
+ };
604
+
605
+ const deleteInputItem = id => {
606
+ let val = getInputValue(id);
607
+ inputBoxValues.splice(val.index, 1);
608
+ let element = document.getElementById(id);
609
+ element.remove();
610
+ saveValue();
611
+ };
612
+
613
+ const clear = () => {
614
+ var _iterator10 = _createForOfIteratorHelper(inputBoxValues),
615
+ _step10;
616
+
617
+ try {
618
+ for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
619
+ const inputBoxValue = _step10.value;
620
+ document.getElementById(inputBoxValue.id).remove();
621
+ }
622
+ } catch (err) {
623
+ _iterator10.e(err);
624
+ } finally {
625
+ _iterator10.f();
626
+ }
627
+
628
+ inputBoxValues.splice(0, inputBoxValues.length);
629
+ setValue(null);
630
+ };
631
+
632
+ const handleDuplicate = id => {
633
+ let inputValue = getInputValue(id);
634
+ let element = document.getElementById(id);
635
+ let pageElements = document.getElementsByClassName("page");
636
+ let elementPage = null;
637
+ let elementTop = 3 * parseFloat(element.style.top.replace("px", '').replace('pt', '')) / 4;
638
+ let pageElementTop = 0;
639
+
640
+ var _iterator11 = _createForOfIteratorHelper(pageElements),
641
+ _step11;
642
+
643
+ try {
644
+ for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
645
+ const pageElement = _step11.value;
646
+ let pageElementHeight = parseFloat(pageElement.style.height.replace("px", '').replace('pt', ''));
647
+
648
+ if (elementTop >= pageElementTop && elementTop < pageElementTop + pageElementHeight) {
649
+ elementPage = pageElement;
650
+ break;
651
+ }
652
+
653
+ pageElementTop += pageElementHeight;
654
+ }
655
+ } catch (err) {
656
+ _iterator11.e(err);
657
+ } finally {
658
+ _iterator11.f();
659
+ }
660
+
661
+ let offset = elementTop - pageElementTop;
662
+ let pageNumber = 0;
663
+ let elementData = getInputValue(id);
664
+
665
+ var _iterator12 = _createForOfIteratorHelper(pageElements),
666
+ _step12;
667
+
668
+ try {
669
+ for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
670
+ const pageElement = _step12.value;
671
+ let pageElementHeight = parseFloat(pageElement.style.height.replace("px", '').replace('pt', ''));
672
+
673
+ if (pageElement !== elementPage) {
674
+ let node = document.createElement("div");
675
+ node.style.lineHeight = element.lineHeight;
676
+ node.style.border = element.style.border;
677
+ node.style.position = 'absolute';
678
+ node.style.borderWidth = '2px';
679
+ node.style.borderRadius = '2px';
680
+ node.style.width = element.style.width;
681
+ node.style.padding = element.style.padding;
682
+ node.style.height = element.style.height;
683
+ node.style.left = element.style.left;
684
+ node.innerText = element.innerText;
685
+ node.style.top = pageNumber * pageElementHeight + offset + 'pt';
686
+ node.id = idCounter.current++;
687
+ node.className = element.className;
688
+ node.setAttribute("draggable", true);
689
+ let inputValue = {};
690
+ inputValue.id = node.id;
691
+ inputValue.height = node.style.height.replace("px", "");
692
+ inputValue.width = node.style.width.replace("px", "");
693
+ inputValue.type = elementData.type;
694
+ inputValue.signatory = elementData.signatory;
695
+ inputBoxValues.push(inputValue);
696
+ setValue(null);
697
+ pageElement.appendChild(node);
698
+ node.addEventListener('dragstart', dragStart, false);
699
+ }
700
+ }
701
+ } catch (err) {
702
+ _iterator12.e(err);
703
+ } finally {
704
+ _iterator12.f();
705
+ }
706
+ };
707
+
708
+ function saveValue() {
709
+ let allValid = true;
710
+
711
+ var _iterator13 = _createForOfIteratorHelper(inputBoxValues),
712
+ _step13;
713
+
714
+ try {
715
+ for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
716
+ const inputBoxValue = _step13.value;
717
+
718
+ if (_Utils.default.isNull(inputBoxValue.signatory)) {
719
+ allValid = false;
720
+ break;
721
+ }
722
+ }
723
+ } catch (err) {
724
+ _iterator13.e(err);
725
+ } finally {
726
+ _iterator13.f();
727
+ }
728
+
729
+ if (allValid) {
730
+ let newValue = {};
731
+ newValue.htmlTemplate = document.getElementById("templateContainer").innerHTML;
732
+ newValue.htmlTemplateBase64 = Base64.encode(document.getElementById("templateContainer").innerHTML);
733
+ newValue.signatureInputs = inputBoxValues;
734
+ newValue.idCounter = idCounter.current;
735
+ setValue(newValue);
736
+ } else {
737
+ setValue(null);
738
+ }
739
+ }
740
+
741
+ const saveProps = (id, values) => {
742
+ let val = getInputValue(id);
743
+ val.width = values.width;
744
+ val.height = values.height;
745
+ val.signatory = values.signatory;
746
+ val.type = values.type === 'TEXT INPUT' ? 'TEXT_INPUT' : values.type;
747
+ let element = document.getElementById(id);
748
+ element.style.width = values.width + "px";
749
+ element.style.height = values.height + "px";
750
+ element.style.borderColor = VALID_COLOR;
751
+ element.innerText = values.signatory.map.name;
752
+ saveValue();
753
+ };
754
+
755
+ return /*#__PURE__*/_react.default.createElement("div", {
756
+ ref: ref,
757
+ style: {
758
+ padding: "0 32px"
759
+ }
760
+ }, !_Utils.default.isNull(props.config) && !loading ? /*#__PURE__*/_react.default.createElement("div", {
761
+ style: {
762
+ width: "100%",
763
+ maxHeight: "70vh"
764
+ }
765
+ }, /*#__PURE__*/_react.default.createElement("div", {
766
+ style: {
767
+ marginBottom: "32px"
768
+ }
769
+ }, /*#__PURE__*/_react.default.createElement("input", {
770
+ accept: "application/pdf",
771
+ className: classes.input,
772
+ id: "contained-button-file",
773
+ onChange: handleChange(),
774
+ type: "file"
775
+ }), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
776
+ className: "row"
777
+ }, /*#__PURE__*/_react.default.createElement("div", {
778
+ className: "col-*-*"
779
+ }, /*#__PURE__*/_react.default.createElement("label", {
780
+ htmlFor: "contained-button-file"
781
+ }, /*#__PURE__*/_react.default.createElement(_Button.default, {
782
+ variant: "contained",
783
+ component: "span",
784
+ className: classes.button
785
+ }, "Upload File"))), /*#__PURE__*/_react.default.createElement("div", {
786
+ className: "col-*-*"
787
+ }, /*#__PURE__*/_react.default.createElement(_Button.default, {
788
+ variant: "contained",
789
+ component: "span",
790
+ disabled: _Utils.default.isNull(file),
791
+ className: classes.button,
792
+ onClick: handleSubmit()
793
+ }, "Generate Template"))))), /*#__PURE__*/_react.default.createElement("div", {
794
+ style: {
795
+ height: "auto"
796
+ }
797
+ }, !_Utils.default.isNull(htmlTemplate) ? /*#__PURE__*/_react.default.createElement("div", {
798
+ className: 'row'
799
+ }, /*#__PURE__*/_react.default.createElement("div", {
800
+ className: "".concat(classes.palette, " col-*-*"),
801
+ style: {
802
+ maxHeight: "calc(70vh - 80px)",
803
+ overflow: "auto"
804
+ }
805
+ }, /*#__PURE__*/_react.default.createElement("div", {
806
+ className: "col-*-*"
807
+ }, /*#__PURE__*/_react.default.createElement(_Button.default, {
808
+ variant: "contained",
809
+ component: "span",
810
+ className: paletteSelectionId === 'INITIAL_ITEM' ? classes.paletteButtonSelected : classes.paletteButton,
811
+ onClick: () => {
812
+ document.getElementsByTagName("body")[0].style.cursor = 'grabbing';
813
+ paletteSelection.current = INITIAL_ITEM;
814
+ setPaletteSelectionId('INITIAL_ITEM');
815
+ },
816
+ id: "initialPaletteButton",
817
+ classes: {
818
+ "label": "paletteButtonLabel"
819
+ }
820
+ }, "Initial Pad")), /*#__PURE__*/_react.default.createElement("div", {
821
+ className: "col-*-*"
822
+ }, /*#__PURE__*/_react.default.createElement(_Button.default, {
823
+ variant: "contained",
824
+ component: "span",
825
+ className: paletteSelectionId === 'SIGN_ITEM' ? classes.paletteButtonSelected : classes.paletteButton,
826
+ onClick: () => {
827
+ document.getElementsByTagName("body")[0].style.cursor = 'grabbing';
828
+ paletteSelection.current = SIGN_ITEM;
829
+ setPaletteSelectionId('SIGN_ITEM');
830
+ },
831
+ id: "signPaletteButton",
832
+ classes: {
833
+ "label": "paletteButtonLabel"
834
+ }
835
+ }, "Signature Pad")), /*#__PURE__*/_react.default.createElement("div", {
836
+ className: "col-*-*"
837
+ }, /*#__PURE__*/_react.default.createElement(_Button.default, {
838
+ variant: "contained",
839
+ component: "span",
840
+ className: paletteSelectionId === 'TEXT_ITEM' ? classes.paletteButtonSelected : classes.paletteButton,
841
+ onClick: () => {
842
+ document.getElementsByTagName("body")[0].style.cursor = 'grabbing';
843
+ paletteSelection.current = TEXT_ITEM;
844
+ setPaletteSelectionId('TEXT_ITEM');
845
+ },
846
+ id: "signPaletteButton",
847
+ classes: {
848
+ "label": "paletteButtonLabel"
849
+ }
850
+ }, "Text Input")), /*#__PURE__*/_react.default.createElement("div", {
851
+ className: "col-*-*"
852
+ }, /*#__PURE__*/_react.default.createElement(_Button.default, {
853
+ variant: "contained",
854
+ component: "span",
855
+ className: classes.paletteButton,
856
+ onClick: () => {
857
+ clear();
858
+ },
859
+ id: "clearButton",
860
+ classes: {
861
+ "label": "paletteButtonLabel"
862
+ }
863
+ }, "Clear")), /*#__PURE__*/_react.default.createElement("div", {
864
+ className: "".concat(classes.propertyWindow, " col")
865
+ }, /*#__PURE__*/_react.default.createElement(_SignatureInputProps.default, {
866
+ value: selectedInputBoxValue,
867
+ signatoryUrl: location + _ApplicationContext.default.getBaseApiUrl() + props.config.signatoryUrl,
868
+ saveHandler: (id, values) => saveProps(id, values),
869
+ deleteHandler: (id, values) => deleteInputItem(id, values),
870
+ dublicateHandler: id => handleDuplicate(id)
871
+ }))), /*#__PURE__*/_react.default.createElement("div", {
872
+ style: {
873
+ maxHeight: "calc(70vh - 80px)",
874
+ overflow: "auto"
875
+ },
876
+ className: 'col-*-*',
877
+ id: "signaturePanel",
878
+ onClick: e => mouseClickHandler(e),
879
+ onMouseOver: e => mouseOverHandler(e),
880
+ onMouseOut: e => mouseOutHandler(e),
881
+ id: "templateContainer"
882
+ }, /*#__PURE__*/_react.default.createElement(_reactHtmlRenderer.default, {
883
+ html: htmlTemplate
884
+ }))) : null)) : /*#__PURE__*/_react.default.createElement("div", null, "Loading..."));
885
+ }));
886
+
887
+ var _default = SignatureTemplateDesigner;
888
+ exports.default = _default;