@unvired/turboforms-embed-sdk 2.0.42 → 2.0.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -13,10 +13,24 @@ A powerful, lightweight JavaScript SDK for rendering dynamic forms with advanced
13
13
 
14
14
  ## 📦 Installation
15
15
 
16
+ ### Using NPM
17
+
16
18
  ```bash
17
19
  npm install unvired-forms-sdk
18
20
  ```
19
21
 
22
+ ### Using CDN
23
+
24
+ You can include the SDK directly in your HTML using a CDN (e.g., jsDelivr) without requiring a build step:
25
+
26
+ ```html
27
+ <script type="module">
28
+ import { loadForm } from 'https://cdn.jsdelivr.net/npm/unvired-forms-sdk/dist/unvired-forms-sdk.js';
29
+
30
+ // Initialize your form here
31
+ </script>
32
+ ```
33
+
20
34
  ## 🚀 Usage Examples
21
35
 
22
36
  ### Vanilla JavaScript
@@ -50,9 +64,6 @@ npm install unvired-forms-sdk
50
64
  },
51
65
  container: document.getElementById('form-container'),
52
66
  options: {
53
- formioLibPath: {
54
- formioPath: "./dist/assets/formio.full.min.js"
55
- },
56
67
  mode: "render",
57
68
  platform: "web",
58
69
  showBackButton: true,
@@ -94,9 +105,6 @@ const UnviredForm = ({ formData, onSubmit, onBack }) => {
94
105
  },
95
106
  container: containerRef.current,
96
107
  options: {
97
- formioLibPath: {
98
- formioPath: "./assets/formio.full.min.js"
99
- },
100
108
  mode: "render",
101
109
  platform: "web",
102
110
  showBackButton: true
@@ -148,9 +156,6 @@ export class UnviredFormComponent {
148
156
  },
149
157
  container: this.formContainer.nativeElement,
150
158
  options: {
151
- formioLibPath: {
152
- formioPath: "./assets/formio.full.min.js"
153
- },
154
159
  mode: "render",
155
160
  platform: "web"
156
161
  }
@@ -184,9 +189,6 @@ document.addEventListener('deviceready', function() {
184
189
  },
185
190
  container: document.getElementById('form-container'),
186
191
  options: {
187
- formioLibPath: {
188
- formioPath: "./js/formio.full.min.js"
189
- },
190
192
  mode: "render",
191
193
  platform: "cordova",
192
194
  showBackButton: true
@@ -196,6 +198,186 @@ document.addEventListener('deviceready', function() {
196
198
  }, false);
197
199
  ```
198
200
 
201
+ ### CDN Web Integration
202
+
203
+ ```html
204
+ <!DOCTYPE html>
205
+ <html>
206
+ <head>
207
+ <title>Unvired Forms Integration (CDN)</title>
208
+ </head>
209
+ <body>
210
+ <div id="form-container"></div>
211
+
212
+ <script type="module">
213
+ // Import directly from the CDN
214
+ import { loadForm } from 'https://cdn.jsdelivr.net/npm/unvired-forms-sdk/dist/unvired-forms-sdk.js';
215
+
216
+ const formInstance = loadForm({
217
+ formsData: formTemplateData, // Provide your Form.io JSON schema here
218
+ submissionData: {},
219
+ eventCallback: function (event) {
220
+ console.log('Form event:', event);
221
+
222
+ switch (event.type) {
223
+ case 'FORM_SUBMIT':
224
+ console.log('Form submitted:', event.data);
225
+ break;
226
+ }
227
+ },
228
+ container: document.getElementById('form-container'),
229
+ options: {
230
+ mode: "render",
231
+ platform: "web",
232
+ showBackButton: true
233
+ }
234
+ });
235
+ </script>
236
+ </body>
237
+ </html>
238
+ ```
239
+
240
+ ### React Native Integration
241
+
242
+ Using `react-native-webview`:
243
+
244
+ ```jsx
245
+ import React, { useRef } from 'react';
246
+ import { StyleSheet, SafeAreaView } from 'react-native';
247
+ import { WebView } from 'react-native-webview';
248
+
249
+ const UnviredFormNative = ({ formData }) => {
250
+ const webViewRef = useRef(null);
251
+
252
+ const htmlContent = `
253
+ <!DOCTYPE html>
254
+ <html>
255
+ <head>
256
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
257
+ </head>
258
+ <body style="margin: 0; padding: 0;">
259
+ <div id="form-container"></div>
260
+ <script type="module">
261
+ import { loadForm } from 'https://cdn.jsdelivr.net/npm/unvired-forms-sdk/dist/unvired-forms-sdk.js';
262
+
263
+ const formInstance = loadForm({
264
+ formsData: ${JSON.stringify(formData)},
265
+ submissionData: {},
266
+ eventCallback: function(event) {
267
+ window.ReactNativeWebView.postMessage(JSON.stringify(event));
268
+ },
269
+ container: document.getElementById('form-container'),
270
+ options: {
271
+ mode: "render",
272
+ platform: "web"
273
+ }
274
+ });
275
+ </script>
276
+ </body>
277
+ </html>
278
+ `;
279
+
280
+ const onMessage = (event) => {
281
+ const formEvent = JSON.parse(event.nativeEvent.data);
282
+ if (formEvent.type === 'FORM_SUBMIT') {
283
+ console.log('Form submitted:', formEvent.data);
284
+ }
285
+ };
286
+
287
+ return (
288
+ <SafeAreaView style={styles.container}>
289
+ <WebView
290
+ ref={webViewRef}
291
+ originWhitelist={['*']}
292
+ source={{ html: htmlContent }}
293
+ onMessage={onMessage}
294
+ javaScriptEnabled={true}
295
+ />
296
+ </SafeAreaView>
297
+ );
298
+ };
299
+
300
+ const styles = StyleSheet.create({
301
+ container: { flex: 1 }
302
+ });
303
+
304
+ export default UnviredFormNative;
305
+ ```
306
+
307
+ ### Flutter Integration
308
+
309
+ Using `webview_flutter`:
310
+
311
+ ```dart
312
+ import 'dart:convert';
313
+ import 'package:flutter/material.dart';
314
+ import 'package:webview_flutter/webview_flutter.dart';
315
+
316
+ class UnviredFormScreen extends StatefulWidget {
317
+ final Map<String, dynamic> formData;
318
+
319
+ UnviredFormScreen({required this.formData});
320
+
321
+ @override
322
+ _UnviredFormScreenState createState() => _UnviredFormScreenState();
323
+ }
324
+
325
+ class _UnviredFormScreenState extends State<UnviredFormScreen> {
326
+ late WebViewController _controller;
327
+
328
+ @override
329
+ void initState() {
330
+ super.initState();
331
+
332
+ final htmlContent = '''
333
+ <!DOCTYPE html>
334
+ <html>
335
+ <head>
336
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
337
+ </head>
338
+ <body>
339
+ <div id="form-container"></div>
340
+ <script type="module">
341
+ import { loadForm } from 'https://cdn.jsdelivr.net/npm/unvired-forms-sdk/dist/unvired-forms-sdk.js';
342
+
343
+ const formInstance = loadForm({
344
+ formsData: ${jsonEncode(widget.formData)},
345
+ submissionData: {},
346
+ eventCallback: function(event) {
347
+ FormChannel.postMessage(JSON.stringify(event));
348
+ },
349
+ container: document.getElementById('form-container'),
350
+ options: { mode: "render", platform: "web" }
351
+ });
352
+ </script>
353
+ </body>
354
+ </html>
355
+ ''';
356
+
357
+ _controller = WebViewController()
358
+ ..setJavaScriptMode(JavaScriptMode.unrestricted)
359
+ ..addJavaScriptChannel(
360
+ 'FormChannel',
361
+ onMessageReceived: (JavaScriptMessage message) {
362
+ final event = jsonDecode(message.message);
363
+ if (event['type'] == 'FORM_SUBMIT') {
364
+ print('Form submitted: ${event['data']}');
365
+ }
366
+ },
367
+ )
368
+ ..loadHtmlString(htmlContent);
369
+ }
370
+
371
+ @override
372
+ Widget build(BuildContext context) {
373
+ return Scaffold(
374
+ appBar: AppBar(title: Text('Unvired Form')),
375
+ body: WebViewWidget(controller: _controller),
376
+ );
377
+ }
378
+ }
379
+ ```
380
+
199
381
  ## 📋 API Reference
200
382
 
201
383
  ### loadFormParams
@@ -212,7 +394,6 @@ document.addEventListener('deviceready', function() {
212
394
 
213
395
  | Property | Type | Description |
214
396
  |----------|------|-------------|
215
- | `formioLibPath` | object | FormIO library paths configuration |
216
397
  | `nestedFormData` | array | Nested form data |
217
398
  | `masterData` | array | Master data for dropdowns |
218
399
  | `title` | string | Form title |
@@ -231,6 +412,15 @@ document.addEventListener('deviceready', function() {
231
412
  | `permission` | string | Access permission ('writesingle', 'writemultiple', 'read') |
232
413
  | `controlData` | object | Data for initial control values |
233
414
  | `showLoader` | boolean | Show/hide initial SDK loading spinner |
415
+ | `commentsData` | array | Comments data |
416
+ | `vobArr` | array | Voice of Business data |
417
+ | `showComments` | boolean | Show/hide comments |
418
+ | `showDocuments` | boolean | Show/hide documents |
419
+ | `showHelp` | boolean | Show/hide help |
420
+ | `showFooter` | boolean | Show/hide form footer |
421
+ | `showHeader` | boolean | Show/hide form header |
422
+ | `showCompleteAlways` | boolean | Always show complete button |
423
+ | `requireCompleteForm` | boolean | Require form to be 100% complete before submission |
234
424
 
235
425
  ### Event Types
236
426
 
@@ -131,7 +131,7 @@ var ke=Object.create;var ie=Object.defineProperty;var Ee=Object.getOwnPropertyDe
131
131
 
132
132
  /* === STYLE_SEPARATOR === */
133
133
 
134
- .tf-formio-sdk table.table,.tf-formio-sdk table.datagrid-table,.tf-formio-sdk .table>:not(caption)>*>*{border:1px solid var(--tf-border-color)!important;margin-bottom:.5rem!important;font-weight:var(--tf-app-font-weight)!important}.tf-formio-sdk .formio-component-datagrid{border-radius:8px!important;overflow:visible!important}.tf-formio-sdk table.table td,.tf-formio-sdk table.table th{font-weight:var(--tf-app-font-weight)!important}.tf-formio-sdk .table td .formio-component-signature{width:100%!important}.tf-formio-sdk .table-responsive{display:block!important;width:100%!important;overflow-x:auto!important;overflow-y:visible!important;-webkit-overflow-scrolling:touch;transition:all .2s ease}.tf-formio-sdk .table-responsive::-webkit-scrollbar{width:0px!important}.tf-formio-sdk .table-responsive:has(.choices.is-open){z-index:9999!important}.tf-formio-sdk .formio-component-datagrid .table-responsive:has(.choices.is-open){overflow-x:auto!important;overflow-y:auto!important}.tf-formio-sdk .table-responsive:not(.formio-component-datagrid .table-responsive):has(.choices.is-open){overflow-x:auto!important;overflow-y:visible!important}.tf-formio-sdk .table-responsive:has(.choices.is-open) thead{z-index:1!important;position:relative!important;overflow:visible!important}.tf-formio-sdk .table-responsive:has(.choices.is-open) tbody{overflow:visible!important}.tf-formio-sdk .table-responsive:has(.choices.is-open) table.table,.tf-formio-sdk .table-responsive:has(.choices.is-open) .table>:not(caption)>*>*,.tf-formio-sdk table.table:has(.choices.is-open),.tf-formio-sdk table.table:has(.choices.is-open) td,.tf-formio-sdk table.table:has(.choices.is-open) th,.tf-formio-sdk tr:has(.choices.is-open) td{border:1px solid var(--tf-border-color)!important;border-color:var(--tf-border-color)!important;visibility:visible!important;opacity:1!important}.tf-formio-sdk table.table:has(.choices.is-open){border-spacing:0!important}.tf-formio-sdk.formio-form table.table thead th,.tf-formio-sdk.formio-form table.table tbody td,.tf-formio-sdk.formio-form table.table tfoot td,.tf-formio-sdk .formio-component-datagrid table thead th,.tf-formio-sdk .formio-component-datagrid table tbody td,.tf-formio-sdk .formio-component-datagrid table tfoot td{padding:.5rem .75rem!important;vertical-align:top!important;border:1px solid var(--tf-border-color)!important;word-wrap:break-word!important;overflow:visible!important;font-size:var(--tf-app-font-size-base)!important;color:var(--tf-app-font-color)!important;line-height:1.2!important}.tf-formio-sdk .formio-component-datagrid table tbody td{border:1px solid var(--tf-border-color)!important}.tf-formio-sdk .formio-component-datagrid table tfoot td{border:none!important}.tf-formio-sdk .table-striped>tbody>tr:nth-of-type(odd)>*{color:var(--tf-app-font-color)!important;--bs-table-color-type: var(--tf-app-font-color) !important}.tf-formio-sdk .formio-component-datagrid table.datagrid-table thead th:last-child,.tf-formio-sdk .formio-component-datagrid table.datagrid-table tbody tr td:last-child,.tf-formio-sdk table td:has([ref=removeRow]),.tf-formio-sdk table td:has(.formio-button-remove-row),.tf-formio-sdk table th:has([ref=removeRow]),.tf-formio-sdk table th:has(.formio-button-remove-row){text-align:center!important;min-width:45px!important}@media (min-width: 769px){.tf-formio-sdk table td:has([ref=removeRow]),.tf-formio-sdk table td:has(.formio-button-remove-row),.tf-formio-sdk table th:has([ref=removeRow]),.tf-formio-sdk table th:has(.formio-button-remove-row){width:1%!important}}.tf-formio-sdk tr:has(.choices.is-open){z-index:100!important;position:relative!important}.tf-formio-sdk .formio-component-datagrid table tfoot tr td,.tf-formio-sdk .formio-form table tfoot tr td{text-align:left!important;padding-left:.75rem!important;background-color:transparent!important}@media (max-width: 768px){.tf-formio-sdk .table-responsive,.tf-formio-sdk .formio-component-table,.tf-formio-sdk .formio-component-datagrid,.tf-formio-sdk .formio-component-multiple{overflow:visible!important}.tf-formio-sdk .formio-form table.table thead,.tf-formio-sdk .formio-component-datagrid table thead,.tf-formio-sdk .formio-component-multiple table thead{display:none!important}.tf-formio-sdk .formio-form table.table,.tf-formio-sdk .formio-form tbody,.tf-formio-sdk .formio-form tr,.tf-formio-sdk .formio-form td,.tf-formio-sdk .formio-component table,.tf-formio-sdk .formio-component tbody,.tf-formio-sdk .formio-component tr,.tf-formio-sdk .formio-component td{display:block!important;width:100%!important}.tf-formio-sdk .formio-form tbody,.tf-formio-sdk .formio-form tr,.tf-formio-sdk .formio-component tbody,.tf-formio-sdk .formio-component tr{border-style:none!important}.tf-formio-sdk .formio-form tr,.tf-formio-sdk .formio-component-datagrid tr{margin-bottom:1.5rem!important;border-radius:10px!important}.tf-formio-sdk .formio-form td,.tf-formio-sdk .formio-component-datagrid td{border:none!important;border-bottom:1px solid #f1f5f9!important;padding:.6rem .8rem!important;font-size:.8125rem!important}.tf-formio-sdk table td:has(>[ref=removeRow]),.tf-formio-sdk table td:has(>.formio-button-remove-row){text-align:center!important;display:flex!important;justify-content:center!important;align-items:center!important;padding:.8rem!important;width:100%!important}.tf-formio-sdk .formio-component-datagrid td[data-label]:before{content:attr(data-label);display:block;font-family:var(--tf-app-font-family)!important;font-weight:600;margin-bottom:.25rem;font-size:var(--tf-app-font-size-base)!important;color:var(--tf-app-font-color, #333);text-align:left}}.tf-formio-sdk .formio-component-datagrid .row [class*=col-]{min-width:60px!important}.tf-formio-sdk .formio-component-datagrid .row [class*=col-].formio-component-select,.tf-formio-sdk .formio-component-datagrid .row [class*=col-]:has([class*=formio-component-select]),.tf-formio-sdk .formio-component-datagrid .row [class*=col-]:has(.formio-component-select){min-width:50px!important}.tf-formio-sdk .formio-component-datagrid .col-form-label{max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.tf-formio-sdk .formio-component-table table,.tf-formio-sdk .formio-component-datagrid table{width:100%!important}.tf-formio-sdk .table td .formio-component{width:100%!important;max-width:100%!important}.tf-formio-sdk .table td label:not(.custom-control-label){max-width:100%!important;word-break:break-word!important;white-space:normal!important;line-height:1.1!important;font-size:.75rem!important;margin-bottom:2px!important;display:block!important}
134
+ .tf-formio-sdk table.table,.tf-formio-sdk table.datagrid-table,.tf-formio-sdk .table>:not(caption)>*>*{border:1px solid var(--tf-border-color)!important;margin-bottom:.5rem!important;font-weight:var(--tf-app-font-weight)!important}.tf-formio-sdk .formio-component-datagrid{border-radius:8px!important;overflow:visible!important}.tf-formio-sdk table.table td,.tf-formio-sdk table.table th{font-weight:var(--tf-app-font-weight)!important}.tf-formio-sdk .table td .formio-component-signature{width:100%!important}.tf-formio-sdk .table-responsive{display:block!important;width:100%!important;overflow-x:auto!important;overflow-y:visible!important;-webkit-overflow-scrolling:touch;transition:all .2s ease}.tf-formio-sdk .table-responsive::-webkit-scrollbar{width:0px!important}.tf-formio-sdk .table-responsive:has(.choices.is-open){z-index:9999!important}.tf-formio-sdk .formio-component-datagrid .table-responsive:has(.choices.is-open){overflow-x:auto!important;overflow-y:auto!important}.tf-formio-sdk .table-responsive:not(.formio-component-datagrid .table-responsive):has(.choices.is-open){overflow-x:auto!important;overflow-y:visible!important}.tf-formio-sdk .table-responsive:has(.choices.is-open) thead{z-index:1!important;position:relative!important;overflow:visible!important}.tf-formio-sdk .table-responsive:has(.choices.is-open) tbody{overflow:visible!important}.tf-formio-sdk .table-responsive:has(.choices.is-open) table.table,.tf-formio-sdk .table-responsive:has(.choices.is-open) .table>:not(caption)>*>*,.tf-formio-sdk table.table:has(.choices.is-open),.tf-formio-sdk table.table:has(.choices.is-open) td,.tf-formio-sdk table.table:has(.choices.is-open) th,.tf-formio-sdk tr:has(.choices.is-open) td{border:1px solid var(--tf-border-color)!important;border-color:var(--tf-border-color)!important;visibility:visible!important;opacity:1!important}.tf-formio-sdk table.table:has(.choices.is-open){border-spacing:0!important}.tf-formio-sdk.formio-form table.table thead th,.tf-formio-sdk.formio-form table.table tbody td,.tf-formio-sdk.formio-form table.table tfoot td,.tf-formio-sdk .formio-component-datagrid table thead th,.tf-formio-sdk .formio-component-datagrid table tbody td,.tf-formio-sdk .formio-component-datagrid table tfoot td{padding:.5rem .75rem!important;vertical-align:top!important;border:1px solid var(--tf-border-color)!important;word-wrap:break-word!important;overflow:visible!important;font-size:var(--tf-app-font-size-base)!important;color:var(--tf-app-font-color)!important;line-height:1.2!important;border-radius:5px}.tf-formio-sdk .formio-component-datagrid table tbody td{border:1px solid var(--tf-border-color)!important}.tf-formio-sdk .formio-component-datagrid table tfoot td{border:none!important}.tf-formio-sdk .table-striped>tbody>tr:nth-of-type(odd)>*{color:var(--tf-app-font-color)!important;--bs-table-color-type: var(--tf-app-font-color) !important}.tf-formio-sdk .formio-component-datagrid table.datagrid-table thead th:last-child,.tf-formio-sdk .formio-component-datagrid table.datagrid-table tbody tr td:last-child,.tf-formio-sdk table td:has([ref=removeRow]),.tf-formio-sdk table td:has(.formio-button-remove-row),.tf-formio-sdk table th:has([ref=removeRow]),.tf-formio-sdk table th:has(.formio-button-remove-row){text-align:center!important;min-width:45px!important}@media (min-width: 769px){.tf-formio-sdk table td:has([ref=removeRow]),.tf-formio-sdk table td:has(.formio-button-remove-row),.tf-formio-sdk table th:has([ref=removeRow]),.tf-formio-sdk table th:has(.formio-button-remove-row){width:1%!important}}.tf-formio-sdk tr:has(.choices.is-open){z-index:100!important;position:relative!important}.tf-formio-sdk .formio-component-datagrid table tfoot tr td,.tf-formio-sdk .formio-form table tfoot tr td{text-align:left!important;padding-left:.75rem!important;background-color:transparent!important}@media (max-width: 768px){.tf-formio-sdk .table-responsive,.tf-formio-sdk .formio-component-table,.tf-formio-sdk .formio-component-datagrid,.tf-formio-sdk .formio-component-multiple{overflow:visible!important}.tf-formio-sdk .formio-form table.table thead,.tf-formio-sdk .formio-component-datagrid table thead,.tf-formio-sdk .formio-component-multiple table thead{display:none!important}.tf-formio-sdk .formio-form table.table,.tf-formio-sdk .formio-form tbody,.tf-formio-sdk .formio-form tr,.tf-formio-sdk .formio-form td,.tf-formio-sdk .formio-component table,.tf-formio-sdk .formio-component tbody,.tf-formio-sdk .formio-component tr,.tf-formio-sdk .formio-component td{display:block!important;width:100%!important;border-radius:10px}.tf-formio-sdk .formio-form tbody,.tf-formio-sdk .formio-form tr,.tf-formio-sdk .formio-component tbody,.tf-formio-sdk .formio-component tr{border-style:none!important}.tf-formio-sdk .formio-form tr,.tf-formio-sdk .formio-component-datagrid tr{border-radius:10px!important}.tf-formio-sdk .formio-form td,.tf-formio-sdk .formio-component-datagrid td{border:none!important;border-bottom:1px solid #f1f5f9!important;padding:.6rem .8rem!important;font-size:.8125rem!important}.tf-formio-sdk table td:has(>[ref=removeRow]),.tf-formio-sdk table td:has(>.formio-button-remove-row){text-align:center!important;display:flex!important;justify-content:center!important;align-items:center!important;padding:.8rem!important;width:100%!important}.tf-formio-sdk .formio-component-datagrid td[data-label]:before{content:attr(data-label);display:block;font-family:var(--tf-app-font-family)!important;font-weight:600;margin-bottom:.25rem;font-size:var(--tf-app-font-size-base)!important;color:var(--tf-app-font-color, #333);text-align:left}}.tf-formio-sdk .formio-component-datagrid .row [class*=col-]{min-width:60px!important}.tf-formio-sdk .formio-component-datagrid .row [class*=col-].formio-component-select,.tf-formio-sdk .formio-component-datagrid .row [class*=col-]:has([class*=formio-component-select]),.tf-formio-sdk .formio-component-datagrid .row [class*=col-]:has(.formio-component-select){min-width:50px!important}.tf-formio-sdk .formio-component-datagrid .col-form-label{max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.tf-formio-sdk .formio-component-table table,.tf-formio-sdk .formio-component-datagrid table{width:100%!important}.tf-formio-sdk .table td .formio-component{width:100%!important;max-width:100%!important}.tf-formio-sdk .table td label:not(.custom-control-label){max-width:100%!important;word-break:break-word!important;white-space:normal!important;line-height:1.1!important;font-size:.75rem!important;margin-bottom:2px!important;display:block!important}
135
135
 
136
136
  /* === STYLE_SEPARATOR === */
137
137
 
@@ -199,7 +199,7 @@ var ke=Object.create;var ie=Object.defineProperty;var Ee=Object.getOwnPropertyDe
199
199
  </div>
200
200
  ${(W=e.themeData)!=null&&W.isCard?"</div>":""}
201
201
  <div id="sticky-footer" class="${e.showFooter===!1?"footer-hidden":""}">
202
- <div class="build-version">SDK v2.0.42</div>
202
+ <div class="build-version">SDK v2.0.43</div>
203
203
 
204
204
  <button class="footer-btn footer-btn-secondary" id="prevBtn" style="display:none" onclick="FormOnPrevious()">
205
205
  <i class="bi bi-chevron-left"></i> Previous
@@ -262,4 +262,4 @@ var ke=Object.create;var ie=Object.defineProperty;var Ee=Object.getOwnPropertyDe
262
262
 
263
263
  // === SCRIPT_SEPARATOR ===
264
264
 
265
- `);if(!window.__unviredSdkScriptsLoaded&&!window.__unviredSdkScriptsLoading){window.__unviredSdkScriptsLoading=!0,l.info("[TF_SDK:14] \u2705 Loading SDK scripts (jQuery, Formio, Recogito, LESS, components)...");let m=d=>{if(b){let C=b.querySelector(".sdk-loader-text");C&&(C.textContent=d)}};if(m("Loading Core Components..."),c[0]&&c[0].trim()){let d=document.createElement("script");d.textContent=c[0],d.setAttribute("data-unvired-script","jquery"),document.head.appendChild(d)}if(c[4]&&c[4].trim()){let d=document.createElement("script");d.textContent=c[4],d.setAttribute("data-unvired-script","choices"),document.head.appendChild(d)}if(m("Loading Formio Library..."),c[5]&&c[5].trim()){let d=document.createElement("script");d.textContent=c[5],d.setAttribute("data-unvired-script","formio"),document.head.appendChild(d),l.info("[TF_SDK:15] \u2705 Bundled Formio library injected.")}if(e.showComments){m("Loading Annotation Tools...");for(let d=1;d<=2;d++)if(c[d]&&c[d].trim()){let C=document.createElement("script");C.textContent=c[d],C.setAttribute("data-unvired-script",`recogito-${d}`),document.head.appendChild(C),await new Promise(A=>setTimeout(A,0))}}else l.info("[TF_SDK:16] \u2705 Skipping Recogito (comments disabled, optimized load)");if(m("Initializing Engine..."),c[3]&&c[3].trim()){let d=document.createElement("script");d.textContent=c[3],d.setAttribute("data-unvired-script","less"),document.head.appendChild(d)}window.form=window.form||{},window.platform=window.platform||{},window.ResizeObserver=window.ResizeObserver||ResizeObserver,typeof browserMD5File!="undefined"&&(window.form.BMF=new browserMD5File),window.less=window.less||{},typeof window.__Html5QrcodeLibrary__!="undefined"&&(window.html5QrCode=window.__Html5QrcodeLibrary__),typeof window.Html5QrcodeScanner=="undefined"&&(window.Html5QrcodeScanner=class{constructor(){l.warn("[TF_SDK:17] \u26A0\uFE0F Barcode library (Html5QrcodeScanner) is not loaded.")}render(){}clear(){}}),m("Initializing Components...");for(let d=6;d<c.length;d++){let C=c[d];if(C&&C.trim()){let A=document.createElement("script");A.textContent=C,A.setAttribute("data-unvired-script",`script-${d}`),document.head.appendChild(A),d%5===0&&await new Promise(V=>setTimeout(V,0))}}window.__unviredSdkScriptsLoaded=!0,window.__unviredSdkScriptsLoading=!1,l.info("[TF_SDK:18] \u2705 All SDK scripts injected successfully"),document.addEventListener("click",function(d){let C=document.getElementById("unvired-more-btn"),A=document.getElementById("moreTooltip");C&&A&&!C.contains(d.target)&&!A.contains(d.target)&&(A.style.display="none")})}else if(window.__unviredSdkScriptsLoading)window.__unviredSdkScriptsLoaded||(l.warn("[TF_SDK:19] \u26A0\uFE0F Scripts marked as loading but not yet loaded - waiting..."),window.__unviredSdkScriptsLoaded=!0,window.__unviredSdkScriptsLoading=!1);else{if(l.info("[TF_SDK:20] \u2705 SDK scripts already loaded \u2014 skipping injection"),typeof window.Formio=="undefined"){let m="ErrorCode : 005, Formio library not available even though scripts were loaded.";throw l.error("[TF_SDK:21] \u274C ",m),b&&b.classList.add("hidden"),s({type:"ERROR",errorMessage:m,data:{technicalError:new Error(m),formioPath:"bundled",timestamp:new Date().toISOString()}}),new Error(m)}l.info("[TF_SDK:22] \u2705 Formio verified (previously loaded)")}window.FORM_TEMPLATE=h,window.FORM_PREVIOUS_DATA=n,window.FORM_MODE=e.mode,window.FORM_COMMENTS_DATA=e.commentsData,window.FORM_VOB_ARR=e.vobArr,window.FORM_PLATFORM=e.platform,window.FORM_LANGUAGE=e.language,window.FORM_TRASLATIONS=e.translations,window.FORM_ENV=e.environmentVariable,window.FORM_THEME_DATA=e.themeData,window.FORM_USER_DATA=e.userData,window.FORM_USERS_LIST=e.usersList,window.FORM_CONTROL_DATA=e.controlData,window.FORM_PRIVATE_EXTERNAL=e.privateExternal,window.FORM_PERMISSION=e.permission,window.FORM_ATTACHMENT_FILE_KEYS=i,window.sendEventCallback=s,window.FORM_EVENTS={FORM_RENDER:"FORM_RENDER",SAVE:"FORM_SAVE",SUBMIT:"FORM_SUBMIT",SUBMIT_ERROR:"FORM_SUBMIT_ERROR",BACK_NAVIGATION:"FORM_BACK_NAVIGATION",ONCHANGE:"FORM_ONCHANGE",FORM_LOADED:"FORM_LOADED"};let v=r.querySelector("#form-back-btn"),E=r.querySelector("#unvired-more-btn");v&&(e.showBackButton?v.style.setProperty("display","flex","important"):v.style.setProperty("display","none","important")),E&&!e.showMoreButton&&E.style.setProperty("display","none","important"),window.__unviredFormsOptions=e,window.checkDocumentsVisibility(),typeof window.checkMoreButtonVisibility=="function"&&window.checkMoreButtonVisibility(),e.platform==="web"?window.platform={isBrowser:!0,isAndroid:!1,iosPlatform:!1}:e.platform==="android"?window.platform={isBrowser:!1,isAndroid:!0,iosPlatform:!1}:e.platform==="ios"&&(window.platform={isBrowser:!1,isAndroid:!1,iosPlatform:!0});let O={};if(((oe=e.environmentVariable)==null?void 0:oe.length)>0)for(let m of e.environmentVariable)for(let d in m)O[d]=m[d];Object.keys(O).length>0&&(window.env=O);let S=r.querySelector("#sticky-header"),N=r.querySelector("#sticky-footer"),L=r.querySelector("#formio-wrapper"),H=r.querySelector("#comments-header");e.mode==="pdf"||e.mode==="print"?(r.classList.add(`${e.mode}-mode`),L&&L.classList.add(`${e.mode}-mode`),S&&(S.style.display="none"),N&&(N.style.display="none")):(S&&(S.style.display="flex"),N&&(N.style.display="flex")),H&&(H.style.display="none"),e.themeData&&Object.keys(e.themeData).length>0&&(window.FORM_THEME_DATA=e.themeData),e.language&&(window.FORMIO_LANGUAGE=e.language),e.translations&&(window.FORMIO_I18N=e.translations),e.userData&&(window.firstName=e.userData.firstName,window.lastName=e.userData.lastName,window.form=window.form||{},Object.assign(window.form,e.userData)),window.less=window.less||{},Object.assign(window.less,{async:!0,environment:"production",fileAsync:!1,onReady:!0,useFileCache:!0});let _=n;if(n&&(l.info("[TF_SDK:23] \u2705 Processing file IDs in submission data (fetching from IndexedDB)..."),_=await pe(n,s,i),l.info("[TF_SDK:24] \u2705 File IDs processed \u2014 handing off to form renderer")),b){let m=b.querySelector(".sdk-loader-text");m&&(m.textContent="Initializing Form...")}return typeof window.loadTRform!="function"?(l.info("[TF_SDK:25] \u2705 loadTRform not ready yet \u2014 waiting for web-turbo-formio.js to signal..."),await new Promise(m=>{let d=()=>{document.removeEventListener("LoadRNformReady",d),l.info("[TF_SDK:26] \u2705 loadTRform is now ready (LoadRNformReady event received)"),m()};document.addEventListener("LoadRNformReady",d),typeof window.loadTRform=="function"&&d()})):l.info("[TF_SDK:27] \u2705 loadTRform already available \u2014 invoking immediately"),l.info("[TF_SDK:28] \u2705 Handing off to loadTRform (web-turbo-formio.js)..."),await window.loadTRform(h,_,e.themeData,e.mode,e.language,e.translations,e.controlData,e.privateExternal,e.permission,i),Ce(),{sendAction:m=>{var d;m.type==="SET_IMAGE_DATA"&&((d=window.setImageData)==null||d.call(window,m.imageData,m.controlId,m.fileName))},destroy:()=>{r.innerHTML=""}}}window.closeDocumentsModal=function(){if(typeof $!="undefined"&&$.fn.modal)$("#documentsModal").modal("hide");else{let t=document.getElementById("documentsModal");t&&(t.style.display="none",t.classList.remove("active"))}};window.checkDocumentsVisibility=async function(){let t=document.getElementById("documentsOption"),n=document.getElementById("documentsDivider"),o=await te();t.style.display=o?"block":"none",n&&(n.style.display=o?"block":"none"),typeof window.checkMoreButtonVisibility=="function"&&window.checkMoreButtonVisibility()};window.insertAppDocument=async function(t){try{return await be(t),l.info("[TF_SDK:29] \u2705 Document inserted",{id:t==null?void 0:t.id}),await window.checkDocumentsVisibility(),!0}catch(n){return l.error("[TF_SDK:30] \u274C Failed to insert document",n),!1}};window.deleteAppDocument=async function(t){try{return await ge(t),l.info("[TF_SDK:31] \u2705 Document deleted",{id:t}),await window.checkDocumentsVisibility(),!0}catch(n){return l.error("[TF_SDK:32] \u274C Failed to delete document",n),!1}};window.getAllDocuments=me;window.hasDocuments=te;function He(){return"2.0.42"}function Se(t){let n=typeof t=="string"?document.getElementById(t):t;n||(n=document.querySelector(".tf-formio-sdk")||document.body);let o=n.querySelectorAll("table"),r=0,e=null;return o.forEach(i=>{let a=i.getBoundingClientRect().width;a>r&&(r=a,e=i)}),{maxWidth:r,widestTable:e}}window.getMaxTableWidth=Se;typeof window!="undefined"&&(window.TurboForms=window.TurboForms||{loadForm:ze,getBuildVersion:He,getMaxTableWidth:Se});export{He as getBuildVersion,Se as getMaxTableWidth,ze as loadForm};
265
+ `);if(!window.__unviredSdkScriptsLoaded&&!window.__unviredSdkScriptsLoading){window.__unviredSdkScriptsLoading=!0,l.info("[TF_SDK:14] \u2705 Loading SDK scripts (jQuery, Formio, Recogito, LESS, components)...");let m=d=>{if(b){let C=b.querySelector(".sdk-loader-text");C&&(C.textContent=d)}};if(m("Loading Core Components..."),c[0]&&c[0].trim()){let d=document.createElement("script");d.textContent=c[0],d.setAttribute("data-unvired-script","jquery"),document.head.appendChild(d)}if(c[4]&&c[4].trim()){let d=document.createElement("script");d.textContent=c[4],d.setAttribute("data-unvired-script","choices"),document.head.appendChild(d)}if(m("Loading Formio Library..."),c[5]&&c[5].trim()){let d=document.createElement("script");d.textContent=c[5],d.setAttribute("data-unvired-script","formio"),document.head.appendChild(d),l.info("[TF_SDK:15] \u2705 Bundled Formio library injected.")}if(e.showComments){m("Loading Annotation Tools...");for(let d=1;d<=2;d++)if(c[d]&&c[d].trim()){let C=document.createElement("script");C.textContent=c[d],C.setAttribute("data-unvired-script",`recogito-${d}`),document.head.appendChild(C),await new Promise(A=>setTimeout(A,0))}}else l.info("[TF_SDK:16] \u2705 Skipping Recogito (comments disabled, optimized load)");if(m("Initializing Engine..."),c[3]&&c[3].trim()){let d=document.createElement("script");d.textContent=c[3],d.setAttribute("data-unvired-script","less"),document.head.appendChild(d)}window.form=window.form||{},window.platform=window.platform||{},window.ResizeObserver=window.ResizeObserver||ResizeObserver,typeof browserMD5File!="undefined"&&(window.form.BMF=new browserMD5File),window.less=window.less||{},typeof window.__Html5QrcodeLibrary__!="undefined"&&(window.html5QrCode=window.__Html5QrcodeLibrary__),typeof window.Html5QrcodeScanner=="undefined"&&(window.Html5QrcodeScanner=class{constructor(){l.warn("[TF_SDK:17] \u26A0\uFE0F Barcode library (Html5QrcodeScanner) is not loaded.")}render(){}clear(){}}),m("Initializing Components...");for(let d=6;d<c.length;d++){let C=c[d];if(C&&C.trim()){let A=document.createElement("script");A.textContent=C,A.setAttribute("data-unvired-script",`script-${d}`),document.head.appendChild(A),d%5===0&&await new Promise(V=>setTimeout(V,0))}}window.__unviredSdkScriptsLoaded=!0,window.__unviredSdkScriptsLoading=!1,l.info("[TF_SDK:18] \u2705 All SDK scripts injected successfully"),document.addEventListener("click",function(d){let C=document.getElementById("unvired-more-btn"),A=document.getElementById("moreTooltip");C&&A&&!C.contains(d.target)&&!A.contains(d.target)&&(A.style.display="none")})}else if(window.__unviredSdkScriptsLoading)window.__unviredSdkScriptsLoaded||(l.warn("[TF_SDK:19] \u26A0\uFE0F Scripts marked as loading but not yet loaded - waiting..."),window.__unviredSdkScriptsLoaded=!0,window.__unviredSdkScriptsLoading=!1);else{if(l.info("[TF_SDK:20] \u2705 SDK scripts already loaded \u2014 skipping injection"),typeof window.Formio=="undefined"){let m="ErrorCode : 005, Formio library not available even though scripts were loaded.";throw l.error("[TF_SDK:21] \u274C ",m),b&&b.classList.add("hidden"),s({type:"ERROR",errorMessage:m,data:{technicalError:new Error(m),formioPath:"bundled",timestamp:new Date().toISOString()}}),new Error(m)}l.info("[TF_SDK:22] \u2705 Formio verified (previously loaded)")}window.FORM_TEMPLATE=h,window.FORM_PREVIOUS_DATA=n,window.FORM_MODE=e.mode,window.FORM_COMMENTS_DATA=e.commentsData,window.FORM_VOB_ARR=e.vobArr,window.FORM_PLATFORM=e.platform,window.FORM_LANGUAGE=e.language,window.FORM_TRASLATIONS=e.translations,window.FORM_ENV=e.environmentVariable,window.FORM_THEME_DATA=e.themeData,window.FORM_USER_DATA=e.userData,window.FORM_USERS_LIST=e.usersList,window.FORM_CONTROL_DATA=e.controlData,window.FORM_PRIVATE_EXTERNAL=e.privateExternal,window.FORM_PERMISSION=e.permission,window.FORM_ATTACHMENT_FILE_KEYS=i,window.sendEventCallback=s,window.FORM_EVENTS={FORM_RENDER:"FORM_RENDER",SAVE:"FORM_SAVE",SUBMIT:"FORM_SUBMIT",SUBMIT_ERROR:"FORM_SUBMIT_ERROR",BACK_NAVIGATION:"FORM_BACK_NAVIGATION",ONCHANGE:"FORM_ONCHANGE",FORM_LOADED:"FORM_LOADED"};let v=r.querySelector("#form-back-btn"),E=r.querySelector("#unvired-more-btn");v&&(e.showBackButton?v.style.setProperty("display","flex","important"):v.style.setProperty("display","none","important")),E&&!e.showMoreButton&&E.style.setProperty("display","none","important"),window.__unviredFormsOptions=e,window.checkDocumentsVisibility(),typeof window.checkMoreButtonVisibility=="function"&&window.checkMoreButtonVisibility(),e.platform==="web"?window.platform={isBrowser:!0,isAndroid:!1,iosPlatform:!1}:e.platform==="android"?window.platform={isBrowser:!1,isAndroid:!0,iosPlatform:!1}:e.platform==="ios"&&(window.platform={isBrowser:!1,isAndroid:!1,iosPlatform:!0});let O={};if(((oe=e.environmentVariable)==null?void 0:oe.length)>0)for(let m of e.environmentVariable)for(let d in m)O[d]=m[d];Object.keys(O).length>0&&(window.env=O);let S=r.querySelector("#sticky-header"),N=r.querySelector("#sticky-footer"),L=r.querySelector("#formio-wrapper"),H=r.querySelector("#comments-header");e.mode==="pdf"||e.mode==="print"?(r.classList.add(`${e.mode}-mode`),L&&L.classList.add(`${e.mode}-mode`),S&&(S.style.display="none"),N&&(N.style.display="none")):(S&&(S.style.display="flex"),N&&(N.style.display="flex")),H&&(H.style.display="none"),e.themeData&&Object.keys(e.themeData).length>0&&(window.FORM_THEME_DATA=e.themeData),e.language&&(window.FORMIO_LANGUAGE=e.language),e.translations&&(window.FORMIO_I18N=e.translations),e.userData&&(window.firstName=e.userData.firstName,window.lastName=e.userData.lastName,window.form=window.form||{},Object.assign(window.form,e.userData)),window.less=window.less||{},Object.assign(window.less,{async:!0,environment:"production",fileAsync:!1,onReady:!0,useFileCache:!0});let _=n;if(n&&(l.info("[TF_SDK:23] \u2705 Processing file IDs in submission data (fetching from IndexedDB)..."),_=await pe(n,s,i),l.info("[TF_SDK:24] \u2705 File IDs processed \u2014 handing off to form renderer")),b){let m=b.querySelector(".sdk-loader-text");m&&(m.textContent="Initializing Form...")}return typeof window.loadTRform!="function"?(l.info("[TF_SDK:25] \u2705 loadTRform not ready yet \u2014 waiting for web-turbo-formio.js to signal..."),await new Promise(m=>{let d=()=>{document.removeEventListener("LoadRNformReady",d),l.info("[TF_SDK:26] \u2705 loadTRform is now ready (LoadRNformReady event received)"),m()};document.addEventListener("LoadRNformReady",d),typeof window.loadTRform=="function"&&d()})):l.info("[TF_SDK:27] \u2705 loadTRform already available \u2014 invoking immediately"),l.info("[TF_SDK:28] \u2705 Handing off to loadTRform (web-turbo-formio.js)..."),await window.loadTRform(h,_,e.themeData,e.mode,e.language,e.translations,e.controlData,e.privateExternal,e.permission,i),Ce(),{sendAction:m=>{var d;m.type==="SET_IMAGE_DATA"&&((d=window.setImageData)==null||d.call(window,m.imageData,m.controlId,m.fileName))},destroy:()=>{r.innerHTML=""}}}window.closeDocumentsModal=function(){if(typeof $!="undefined"&&$.fn.modal)$("#documentsModal").modal("hide");else{let t=document.getElementById("documentsModal");t&&(t.style.display="none",t.classList.remove("active"))}};window.checkDocumentsVisibility=async function(){let t=document.getElementById("documentsOption"),n=document.getElementById("documentsDivider"),o=await te();t.style.display=o?"block":"none",n&&(n.style.display=o?"block":"none"),typeof window.checkMoreButtonVisibility=="function"&&window.checkMoreButtonVisibility()};window.insertAppDocument=async function(t){try{return await be(t),l.info("[TF_SDK:29] \u2705 Document inserted",{id:t==null?void 0:t.id}),await window.checkDocumentsVisibility(),!0}catch(n){return l.error("[TF_SDK:30] \u274C Failed to insert document",n),!1}};window.deleteAppDocument=async function(t){try{return await ge(t),l.info("[TF_SDK:31] \u2705 Document deleted",{id:t}),await window.checkDocumentsVisibility(),!0}catch(n){return l.error("[TF_SDK:32] \u274C Failed to delete document",n),!1}};window.getAllDocuments=me;window.hasDocuments=te;function He(){return"2.0.43"}function Se(t){let n=typeof t=="string"?document.getElementById(t):t;n||(n=document.querySelector(".tf-formio-sdk")||document.body);let o=n.querySelectorAll("table"),r=0,e=null;return o.forEach(i=>{let a=i.getBoundingClientRect().width;a>r&&(r=a,e=i)}),{maxWidth:r,widestTable:e}}window.getMaxTableWidth=Se;typeof window!="undefined"&&(window.TurboForms=window.TurboForms||{loadForm:ze,getBuildVersion:He,getMaxTableWidth:Se});export{He as getBuildVersion,Se as getMaxTableWidth,ze as loadForm};
@@ -42902,7 +42902,7 @@ window.CommentOnBack = CommentOnBack;
42902
42902
 
42903
42903
 
42904
42904
  <div id="sticky-footer">
42905
- <div class="build-version">SDK v2.0.42</div>
42905
+ <div class="build-version">SDK v2.0.43</div>
42906
42906
  <div class="relative-position">
42907
42907
  <button id="unvired-more-btn" class="ui button primary dataGrid-addRow" onclick="toggleTooltip()">
42908
42908
  <i class="icon options"></i>
@@ -131,7 +131,7 @@ var TurboForms=(()=>{var Oe=Object.create;var q=Object.defineProperty;var Pe=Obj
131
131
 
132
132
  /* === STYLE_SEPARATOR === */
133
133
 
134
- .tf-formio-sdk table.table,.tf-formio-sdk table.datagrid-table,.tf-formio-sdk .table>:not(caption)>*>*{border:1px solid var(--tf-border-color)!important;margin-bottom:.5rem!important;font-weight:var(--tf-app-font-weight)!important}.tf-formio-sdk .formio-component-datagrid{border-radius:8px!important;overflow:visible!important}.tf-formio-sdk table.table td,.tf-formio-sdk table.table th{font-weight:var(--tf-app-font-weight)!important}.tf-formio-sdk .table td .formio-component-signature{width:100%!important}.tf-formio-sdk .table-responsive{display:block!important;width:100%!important;overflow-x:auto!important;overflow-y:visible!important;-webkit-overflow-scrolling:touch;transition:all .2s ease}.tf-formio-sdk .table-responsive::-webkit-scrollbar{width:0px!important}.tf-formio-sdk .table-responsive:has(.choices.is-open){z-index:9999!important}.tf-formio-sdk .formio-component-datagrid .table-responsive:has(.choices.is-open){overflow-x:auto!important;overflow-y:auto!important}.tf-formio-sdk .table-responsive:not(.formio-component-datagrid .table-responsive):has(.choices.is-open){overflow-x:auto!important;overflow-y:visible!important}.tf-formio-sdk .table-responsive:has(.choices.is-open) thead{z-index:1!important;position:relative!important;overflow:visible!important}.tf-formio-sdk .table-responsive:has(.choices.is-open) tbody{overflow:visible!important}.tf-formio-sdk .table-responsive:has(.choices.is-open) table.table,.tf-formio-sdk .table-responsive:has(.choices.is-open) .table>:not(caption)>*>*,.tf-formio-sdk table.table:has(.choices.is-open),.tf-formio-sdk table.table:has(.choices.is-open) td,.tf-formio-sdk table.table:has(.choices.is-open) th,.tf-formio-sdk tr:has(.choices.is-open) td{border:1px solid var(--tf-border-color)!important;border-color:var(--tf-border-color)!important;visibility:visible!important;opacity:1!important}.tf-formio-sdk table.table:has(.choices.is-open){border-spacing:0!important}.tf-formio-sdk.formio-form table.table thead th,.tf-formio-sdk.formio-form table.table tbody td,.tf-formio-sdk.formio-form table.table tfoot td,.tf-formio-sdk .formio-component-datagrid table thead th,.tf-formio-sdk .formio-component-datagrid table tbody td,.tf-formio-sdk .formio-component-datagrid table tfoot td{padding:.5rem .75rem!important;vertical-align:top!important;border:1px solid var(--tf-border-color)!important;word-wrap:break-word!important;overflow:visible!important;font-size:var(--tf-app-font-size-base)!important;color:var(--tf-app-font-color)!important;line-height:1.2!important}.tf-formio-sdk .formio-component-datagrid table tbody td{border:1px solid var(--tf-border-color)!important}.tf-formio-sdk .formio-component-datagrid table tfoot td{border:none!important}.tf-formio-sdk .table-striped>tbody>tr:nth-of-type(odd)>*{color:var(--tf-app-font-color)!important;--bs-table-color-type: var(--tf-app-font-color) !important}.tf-formio-sdk .formio-component-datagrid table.datagrid-table thead th:last-child,.tf-formio-sdk .formio-component-datagrid table.datagrid-table tbody tr td:last-child,.tf-formio-sdk table td:has([ref=removeRow]),.tf-formio-sdk table td:has(.formio-button-remove-row),.tf-formio-sdk table th:has([ref=removeRow]),.tf-formio-sdk table th:has(.formio-button-remove-row){text-align:center!important;min-width:45px!important}@media (min-width: 769px){.tf-formio-sdk table td:has([ref=removeRow]),.tf-formio-sdk table td:has(.formio-button-remove-row),.tf-formio-sdk table th:has([ref=removeRow]),.tf-formio-sdk table th:has(.formio-button-remove-row){width:1%!important}}.tf-formio-sdk tr:has(.choices.is-open){z-index:100!important;position:relative!important}.tf-formio-sdk .formio-component-datagrid table tfoot tr td,.tf-formio-sdk .formio-form table tfoot tr td{text-align:left!important;padding-left:.75rem!important;background-color:transparent!important}@media (max-width: 768px){.tf-formio-sdk .table-responsive,.tf-formio-sdk .formio-component-table,.tf-formio-sdk .formio-component-datagrid,.tf-formio-sdk .formio-component-multiple{overflow:visible!important}.tf-formio-sdk .formio-form table.table thead,.tf-formio-sdk .formio-component-datagrid table thead,.tf-formio-sdk .formio-component-multiple table thead{display:none!important}.tf-formio-sdk .formio-form table.table,.tf-formio-sdk .formio-form tbody,.tf-formio-sdk .formio-form tr,.tf-formio-sdk .formio-form td,.tf-formio-sdk .formio-component table,.tf-formio-sdk .formio-component tbody,.tf-formio-sdk .formio-component tr,.tf-formio-sdk .formio-component td{display:block!important;width:100%!important}.tf-formio-sdk .formio-form tbody,.tf-formio-sdk .formio-form tr,.tf-formio-sdk .formio-component tbody,.tf-formio-sdk .formio-component tr{border-style:none!important}.tf-formio-sdk .formio-form tr,.tf-formio-sdk .formio-component-datagrid tr{margin-bottom:1.5rem!important;border-radius:10px!important}.tf-formio-sdk .formio-form td,.tf-formio-sdk .formio-component-datagrid td{border:none!important;border-bottom:1px solid #f1f5f9!important;padding:.6rem .8rem!important;font-size:.8125rem!important}.tf-formio-sdk table td:has(>[ref=removeRow]),.tf-formio-sdk table td:has(>.formio-button-remove-row){text-align:center!important;display:flex!important;justify-content:center!important;align-items:center!important;padding:.8rem!important;width:100%!important}.tf-formio-sdk .formio-component-datagrid td[data-label]:before{content:attr(data-label);display:block;font-family:var(--tf-app-font-family)!important;font-weight:600;margin-bottom:.25rem;font-size:var(--tf-app-font-size-base)!important;color:var(--tf-app-font-color, #333);text-align:left}}.tf-formio-sdk .formio-component-datagrid .row [class*=col-]{min-width:60px!important}.tf-formio-sdk .formio-component-datagrid .row [class*=col-].formio-component-select,.tf-formio-sdk .formio-component-datagrid .row [class*=col-]:has([class*=formio-component-select]),.tf-formio-sdk .formio-component-datagrid .row [class*=col-]:has(.formio-component-select){min-width:50px!important}.tf-formio-sdk .formio-component-datagrid .col-form-label{max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.tf-formio-sdk .formio-component-table table,.tf-formio-sdk .formio-component-datagrid table{width:100%!important}.tf-formio-sdk .table td .formio-component{width:100%!important;max-width:100%!important}.tf-formio-sdk .table td label:not(.custom-control-label){max-width:100%!important;word-break:break-word!important;white-space:normal!important;line-height:1.1!important;font-size:.75rem!important;margin-bottom:2px!important;display:block!important}
134
+ .tf-formio-sdk table.table,.tf-formio-sdk table.datagrid-table,.tf-formio-sdk .table>:not(caption)>*>*{border:1px solid var(--tf-border-color)!important;margin-bottom:.5rem!important;font-weight:var(--tf-app-font-weight)!important}.tf-formio-sdk .formio-component-datagrid{border-radius:8px!important;overflow:visible!important}.tf-formio-sdk table.table td,.tf-formio-sdk table.table th{font-weight:var(--tf-app-font-weight)!important}.tf-formio-sdk .table td .formio-component-signature{width:100%!important}.tf-formio-sdk .table-responsive{display:block!important;width:100%!important;overflow-x:auto!important;overflow-y:visible!important;-webkit-overflow-scrolling:touch;transition:all .2s ease}.tf-formio-sdk .table-responsive::-webkit-scrollbar{width:0px!important}.tf-formio-sdk .table-responsive:has(.choices.is-open){z-index:9999!important}.tf-formio-sdk .formio-component-datagrid .table-responsive:has(.choices.is-open){overflow-x:auto!important;overflow-y:auto!important}.tf-formio-sdk .table-responsive:not(.formio-component-datagrid .table-responsive):has(.choices.is-open){overflow-x:auto!important;overflow-y:visible!important}.tf-formio-sdk .table-responsive:has(.choices.is-open) thead{z-index:1!important;position:relative!important;overflow:visible!important}.tf-formio-sdk .table-responsive:has(.choices.is-open) tbody{overflow:visible!important}.tf-formio-sdk .table-responsive:has(.choices.is-open) table.table,.tf-formio-sdk .table-responsive:has(.choices.is-open) .table>:not(caption)>*>*,.tf-formio-sdk table.table:has(.choices.is-open),.tf-formio-sdk table.table:has(.choices.is-open) td,.tf-formio-sdk table.table:has(.choices.is-open) th,.tf-formio-sdk tr:has(.choices.is-open) td{border:1px solid var(--tf-border-color)!important;border-color:var(--tf-border-color)!important;visibility:visible!important;opacity:1!important}.tf-formio-sdk table.table:has(.choices.is-open){border-spacing:0!important}.tf-formio-sdk.formio-form table.table thead th,.tf-formio-sdk.formio-form table.table tbody td,.tf-formio-sdk.formio-form table.table tfoot td,.tf-formio-sdk .formio-component-datagrid table thead th,.tf-formio-sdk .formio-component-datagrid table tbody td,.tf-formio-sdk .formio-component-datagrid table tfoot td{padding:.5rem .75rem!important;vertical-align:top!important;border:1px solid var(--tf-border-color)!important;word-wrap:break-word!important;overflow:visible!important;font-size:var(--tf-app-font-size-base)!important;color:var(--tf-app-font-color)!important;line-height:1.2!important;border-radius:5px}.tf-formio-sdk .formio-component-datagrid table tbody td{border:1px solid var(--tf-border-color)!important}.tf-formio-sdk .formio-component-datagrid table tfoot td{border:none!important}.tf-formio-sdk .table-striped>tbody>tr:nth-of-type(odd)>*{color:var(--tf-app-font-color)!important;--bs-table-color-type: var(--tf-app-font-color) !important}.tf-formio-sdk .formio-component-datagrid table.datagrid-table thead th:last-child,.tf-formio-sdk .formio-component-datagrid table.datagrid-table tbody tr td:last-child,.tf-formio-sdk table td:has([ref=removeRow]),.tf-formio-sdk table td:has(.formio-button-remove-row),.tf-formio-sdk table th:has([ref=removeRow]),.tf-formio-sdk table th:has(.formio-button-remove-row){text-align:center!important;min-width:45px!important}@media (min-width: 769px){.tf-formio-sdk table td:has([ref=removeRow]),.tf-formio-sdk table td:has(.formio-button-remove-row),.tf-formio-sdk table th:has([ref=removeRow]),.tf-formio-sdk table th:has(.formio-button-remove-row){width:1%!important}}.tf-formio-sdk tr:has(.choices.is-open){z-index:100!important;position:relative!important}.tf-formio-sdk .formio-component-datagrid table tfoot tr td,.tf-formio-sdk .formio-form table tfoot tr td{text-align:left!important;padding-left:.75rem!important;background-color:transparent!important}@media (max-width: 768px){.tf-formio-sdk .table-responsive,.tf-formio-sdk .formio-component-table,.tf-formio-sdk .formio-component-datagrid,.tf-formio-sdk .formio-component-multiple{overflow:visible!important}.tf-formio-sdk .formio-form table.table thead,.tf-formio-sdk .formio-component-datagrid table thead,.tf-formio-sdk .formio-component-multiple table thead{display:none!important}.tf-formio-sdk .formio-form table.table,.tf-formio-sdk .formio-form tbody,.tf-formio-sdk .formio-form tr,.tf-formio-sdk .formio-form td,.tf-formio-sdk .formio-component table,.tf-formio-sdk .formio-component tbody,.tf-formio-sdk .formio-component tr,.tf-formio-sdk .formio-component td{display:block!important;width:100%!important;border-radius:10px}.tf-formio-sdk .formio-form tbody,.tf-formio-sdk .formio-form tr,.tf-formio-sdk .formio-component tbody,.tf-formio-sdk .formio-component tr{border-style:none!important}.tf-formio-sdk .formio-form tr,.tf-formio-sdk .formio-component-datagrid tr{border-radius:10px!important}.tf-formio-sdk .formio-form td,.tf-formio-sdk .formio-component-datagrid td{border:none!important;border-bottom:1px solid #f1f5f9!important;padding:.6rem .8rem!important;font-size:.8125rem!important}.tf-formio-sdk table td:has(>[ref=removeRow]),.tf-formio-sdk table td:has(>.formio-button-remove-row){text-align:center!important;display:flex!important;justify-content:center!important;align-items:center!important;padding:.8rem!important;width:100%!important}.tf-formio-sdk .formio-component-datagrid td[data-label]:before{content:attr(data-label);display:block;font-family:var(--tf-app-font-family)!important;font-weight:600;margin-bottom:.25rem;font-size:var(--tf-app-font-size-base)!important;color:var(--tf-app-font-color, #333);text-align:left}}.tf-formio-sdk .formio-component-datagrid .row [class*=col-]{min-width:60px!important}.tf-formio-sdk .formio-component-datagrid .row [class*=col-].formio-component-select,.tf-formio-sdk .formio-component-datagrid .row [class*=col-]:has([class*=formio-component-select]),.tf-formio-sdk .formio-component-datagrid .row [class*=col-]:has(.formio-component-select){min-width:50px!important}.tf-formio-sdk .formio-component-datagrid .col-form-label{max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.tf-formio-sdk .formio-component-table table,.tf-formio-sdk .formio-component-datagrid table{width:100%!important}.tf-formio-sdk .table td .formio-component{width:100%!important;max-width:100%!important}.tf-formio-sdk .table td label:not(.custom-control-label){max-width:100%!important;word-break:break-word!important;white-space:normal!important;line-height:1.1!important;font-size:.75rem!important;margin-bottom:2px!important;display:block!important}
135
135
 
136
136
  /* === STYLE_SEPARATOR === */
137
137
 
@@ -199,7 +199,7 @@ var TurboForms=(()=>{var Oe=Object.create;var q=Object.defineProperty;var Pe=Obj
199
199
  </div>
200
200
  ${(W=e.themeData)!=null&&W.isCard?"</div>":""}
201
201
  <div id="sticky-footer" class="${e.showFooter===!1?"footer-hidden":""}">
202
- <div class="build-version">SDK v2.0.42</div>
202
+ <div class="build-version">SDK v2.0.43</div>
203
203
 
204
204
  <button class="footer-btn footer-btn-secondary" id="prevBtn" style="display:none" onclick="FormOnPrevious()">
205
205
  <i class="bi bi-chevron-left"></i> Previous
@@ -262,4 +262,4 @@ var TurboForms=(()=>{var Oe=Object.create;var q=Object.defineProperty;var Pe=Obj
262
262
 
263
263
  // === SCRIPT_SEPARATOR ===
264
264
 
265
- `);if(!window.__unviredSdkScriptsLoaded&&!window.__unviredSdkScriptsLoading){window.__unviredSdkScriptsLoading=!0,l.info("[TF_SDK:14] \u2705 Loading SDK scripts (jQuery, Formio, Recogito, LESS, components)...");let m=d=>{if(b){let C=b.querySelector(".sdk-loader-text");C&&(C.textContent=d)}};if(m("Loading Core Components..."),c[0]&&c[0].trim()){let d=document.createElement("script");d.textContent=c[0],d.setAttribute("data-unvired-script","jquery"),document.head.appendChild(d)}if(c[4]&&c[4].trim()){let d=document.createElement("script");d.textContent=c[4],d.setAttribute("data-unvired-script","choices"),document.head.appendChild(d)}if(m("Loading Formio Library..."),c[5]&&c[5].trim()){let d=document.createElement("script");d.textContent=c[5],d.setAttribute("data-unvired-script","formio"),document.head.appendChild(d),l.info("[TF_SDK:15] \u2705 Bundled Formio library injected.")}if(e.showComments){m("Loading Annotation Tools...");for(let d=1;d<=2;d++)if(c[d]&&c[d].trim()){let C=document.createElement("script");C.textContent=c[d],C.setAttribute("data-unvired-script",`recogito-${d}`),document.head.appendChild(C),await new Promise(A=>setTimeout(A,0))}}else l.info("[TF_SDK:16] \u2705 Skipping Recogito (comments disabled, optimized load)");if(m("Initializing Engine..."),c[3]&&c[3].trim()){let d=document.createElement("script");d.textContent=c[3],d.setAttribute("data-unvired-script","less"),document.head.appendChild(d)}window.form=window.form||{},window.platform=window.platform||{},window.ResizeObserver=window.ResizeObserver||ResizeObserver,typeof browserMD5File!="undefined"&&(window.form.BMF=new browserMD5File),window.less=window.less||{},typeof window.__Html5QrcodeLibrary__!="undefined"&&(window.html5QrCode=window.__Html5QrcodeLibrary__),typeof window.Html5QrcodeScanner=="undefined"&&(window.Html5QrcodeScanner=class{constructor(){l.warn("[TF_SDK:17] \u26A0\uFE0F Barcode library (Html5QrcodeScanner) is not loaded.")}render(){}clear(){}}),m("Initializing Components...");for(let d=6;d<c.length;d++){let C=c[d];if(C&&C.trim()){let A=document.createElement("script");A.textContent=C,A.setAttribute("data-unvired-script",`script-${d}`),document.head.appendChild(A),d%5===0&&await new Promise(V=>setTimeout(V,0))}}window.__unviredSdkScriptsLoaded=!0,window.__unviredSdkScriptsLoading=!1,l.info("[TF_SDK:18] \u2705 All SDK scripts injected successfully"),document.addEventListener("click",function(d){let C=document.getElementById("unvired-more-btn"),A=document.getElementById("moreTooltip");C&&A&&!C.contains(d.target)&&!A.contains(d.target)&&(A.style.display="none")})}else if(window.__unviredSdkScriptsLoading)window.__unviredSdkScriptsLoaded||(l.warn("[TF_SDK:19] \u26A0\uFE0F Scripts marked as loading but not yet loaded - waiting..."),window.__unviredSdkScriptsLoaded=!0,window.__unviredSdkScriptsLoading=!1);else{if(l.info("[TF_SDK:20] \u2705 SDK scripts already loaded \u2014 skipping injection"),typeof window.Formio=="undefined"){let m="ErrorCode : 005, Formio library not available even though scripts were loaded.";throw l.error("[TF_SDK:21] \u274C ",m),b&&b.classList.add("hidden"),s({type:"ERROR",errorMessage:m,data:{technicalError:new Error(m),formioPath:"bundled",timestamp:new Date().toISOString()}}),new Error(m)}l.info("[TF_SDK:22] \u2705 Formio verified (previously loaded)")}window.FORM_TEMPLATE=h,window.FORM_PREVIOUS_DATA=n,window.FORM_MODE=e.mode,window.FORM_COMMENTS_DATA=e.commentsData,window.FORM_VOB_ARR=e.vobArr,window.FORM_PLATFORM=e.platform,window.FORM_LANGUAGE=e.language,window.FORM_TRASLATIONS=e.translations,window.FORM_ENV=e.environmentVariable,window.FORM_THEME_DATA=e.themeData,window.FORM_USER_DATA=e.userData,window.FORM_USERS_LIST=e.usersList,window.FORM_CONTROL_DATA=e.controlData,window.FORM_PRIVATE_EXTERNAL=e.privateExternal,window.FORM_PERMISSION=e.permission,window.FORM_ATTACHMENT_FILE_KEYS=i,window.sendEventCallback=s,window.FORM_EVENTS={FORM_RENDER:"FORM_RENDER",SAVE:"FORM_SAVE",SUBMIT:"FORM_SUBMIT",SUBMIT_ERROR:"FORM_SUBMIT_ERROR",BACK_NAVIGATION:"FORM_BACK_NAVIGATION",ONCHANGE:"FORM_ONCHANGE",FORM_LOADED:"FORM_LOADED"};let v=r.querySelector("#form-back-btn"),E=r.querySelector("#unvired-more-btn");v&&(e.showBackButton?v.style.setProperty("display","flex","important"):v.style.setProperty("display","none","important")),E&&!e.showMoreButton&&E.style.setProperty("display","none","important"),window.__unviredFormsOptions=e,window.checkDocumentsVisibility(),typeof window.checkMoreButtonVisibility=="function"&&window.checkMoreButtonVisibility(),e.platform==="web"?window.platform={isBrowser:!0,isAndroid:!1,iosPlatform:!1}:e.platform==="android"?window.platform={isBrowser:!1,isAndroid:!0,iosPlatform:!1}:e.platform==="ios"&&(window.platform={isBrowser:!1,isAndroid:!1,iosPlatform:!0});let O={};if(((ie=e.environmentVariable)==null?void 0:ie.length)>0)for(let m of e.environmentVariable)for(let d in m)O[d]=m[d];Object.keys(O).length>0&&(window.env=O);let S=r.querySelector("#sticky-header"),N=r.querySelector("#sticky-footer"),L=r.querySelector("#formio-wrapper"),H=r.querySelector("#comments-header");e.mode==="pdf"||e.mode==="print"?(r.classList.add(`${e.mode}-mode`),L&&L.classList.add(`${e.mode}-mode`),S&&(S.style.display="none"),N&&(N.style.display="none")):(S&&(S.style.display="flex"),N&&(N.style.display="flex")),H&&(H.style.display="none"),e.themeData&&Object.keys(e.themeData).length>0&&(window.FORM_THEME_DATA=e.themeData),e.language&&(window.FORMIO_LANGUAGE=e.language),e.translations&&(window.FORMIO_I18N=e.translations),e.userData&&(window.firstName=e.userData.firstName,window.lastName=e.userData.lastName,window.form=window.form||{},Object.assign(window.form,e.userData)),window.less=window.less||{},Object.assign(window.less,{async:!0,environment:"production",fileAsync:!1,onReady:!0,useFileCache:!0});let _=n;if(n&&(l.info("[TF_SDK:23] \u2705 Processing file IDs in submission data (fetching from IndexedDB)..."),_=await me(n,s,i),l.info("[TF_SDK:24] \u2705 File IDs processed \u2014 handing off to form renderer")),b){let m=b.querySelector(".sdk-loader-text");m&&(m.textContent="Initializing Form...")}return typeof window.loadTRform!="function"?(l.info("[TF_SDK:25] \u2705 loadTRform not ready yet \u2014 waiting for web-turbo-formio.js to signal..."),await new Promise(m=>{let d=()=>{document.removeEventListener("LoadRNformReady",d),l.info("[TF_SDK:26] \u2705 loadTRform is now ready (LoadRNformReady event received)"),m()};document.addEventListener("LoadRNformReady",d),typeof window.loadTRform=="function"&&d()})):l.info("[TF_SDK:27] \u2705 loadTRform already available \u2014 invoking immediately"),l.info("[TF_SDK:28] \u2705 Handing off to loadTRform (web-turbo-formio.js)..."),await window.loadTRform(h,_,e.themeData,e.mode,e.language,e.translations,e.controlData,e.privateExternal,e.permission,i),ke(),{sendAction:m=>{var d;m.type==="SET_IMAGE_DATA"&&((d=window.setImageData)==null||d.call(window,m.imageData,m.controlId,m.fileName))},destroy:()=>{r.innerHTML=""}}}window.closeDocumentsModal=function(){if(typeof $!="undefined"&&$.fn.modal)$("#documentsModal").modal("hide");else{let t=document.getElementById("documentsModal");t&&(t.style.display="none",t.classList.remove("active"))}};window.checkDocumentsVisibility=async function(){let t=document.getElementById("documentsOption"),n=document.getElementById("documentsDivider"),o=await ne();t.style.display=o?"block":"none",n&&(n.style.display=o?"block":"none"),typeof window.checkMoreButtonVisibility=="function"&&window.checkMoreButtonVisibility()};window.insertAppDocument=async function(t){try{return await ve(t),l.info("[TF_SDK:29] \u2705 Document inserted",{id:t==null?void 0:t.id}),await window.checkDocumentsVisibility(),!0}catch(n){return l.error("[TF_SDK:30] \u274C Failed to insert document",n),!1}};window.deleteAppDocument=async function(t){try{return await ye(t),l.info("[TF_SDK:31] \u2705 Document deleted",{id:t}),await window.checkDocumentsVisibility(),!0}catch(n){return l.error("[TF_SDK:32] \u274C Failed to delete document",n),!1}};window.getAllDocuments=ge;window.hasDocuments=ne;function Ae(){return"2.0.42"}function re(t){let n=typeof t=="string"?document.getElementById(t):t;n||(n=document.querySelector(".tf-formio-sdk")||document.body);let o=n.querySelectorAll("table"),r=0,e=null;return o.forEach(i=>{let a=i.getBoundingClientRect().width;a>r&&(r=a,e=i)}),{maxWidth:r,widestTable:e}}window.getMaxTableWidth=re;typeof window!="undefined"&&(window.TurboForms=window.TurboForms||{loadForm:Ee,getBuildVersion:Ae,getMaxTableWidth:re});return Fe(Ge);})();
265
+ `);if(!window.__unviredSdkScriptsLoaded&&!window.__unviredSdkScriptsLoading){window.__unviredSdkScriptsLoading=!0,l.info("[TF_SDK:14] \u2705 Loading SDK scripts (jQuery, Formio, Recogito, LESS, components)...");let m=d=>{if(b){let C=b.querySelector(".sdk-loader-text");C&&(C.textContent=d)}};if(m("Loading Core Components..."),c[0]&&c[0].trim()){let d=document.createElement("script");d.textContent=c[0],d.setAttribute("data-unvired-script","jquery"),document.head.appendChild(d)}if(c[4]&&c[4].trim()){let d=document.createElement("script");d.textContent=c[4],d.setAttribute("data-unvired-script","choices"),document.head.appendChild(d)}if(m("Loading Formio Library..."),c[5]&&c[5].trim()){let d=document.createElement("script");d.textContent=c[5],d.setAttribute("data-unvired-script","formio"),document.head.appendChild(d),l.info("[TF_SDK:15] \u2705 Bundled Formio library injected.")}if(e.showComments){m("Loading Annotation Tools...");for(let d=1;d<=2;d++)if(c[d]&&c[d].trim()){let C=document.createElement("script");C.textContent=c[d],C.setAttribute("data-unvired-script",`recogito-${d}`),document.head.appendChild(C),await new Promise(A=>setTimeout(A,0))}}else l.info("[TF_SDK:16] \u2705 Skipping Recogito (comments disabled, optimized load)");if(m("Initializing Engine..."),c[3]&&c[3].trim()){let d=document.createElement("script");d.textContent=c[3],d.setAttribute("data-unvired-script","less"),document.head.appendChild(d)}window.form=window.form||{},window.platform=window.platform||{},window.ResizeObserver=window.ResizeObserver||ResizeObserver,typeof browserMD5File!="undefined"&&(window.form.BMF=new browserMD5File),window.less=window.less||{},typeof window.__Html5QrcodeLibrary__!="undefined"&&(window.html5QrCode=window.__Html5QrcodeLibrary__),typeof window.Html5QrcodeScanner=="undefined"&&(window.Html5QrcodeScanner=class{constructor(){l.warn("[TF_SDK:17] \u26A0\uFE0F Barcode library (Html5QrcodeScanner) is not loaded.")}render(){}clear(){}}),m("Initializing Components...");for(let d=6;d<c.length;d++){let C=c[d];if(C&&C.trim()){let A=document.createElement("script");A.textContent=C,A.setAttribute("data-unvired-script",`script-${d}`),document.head.appendChild(A),d%5===0&&await new Promise(V=>setTimeout(V,0))}}window.__unviredSdkScriptsLoaded=!0,window.__unviredSdkScriptsLoading=!1,l.info("[TF_SDK:18] \u2705 All SDK scripts injected successfully"),document.addEventListener("click",function(d){let C=document.getElementById("unvired-more-btn"),A=document.getElementById("moreTooltip");C&&A&&!C.contains(d.target)&&!A.contains(d.target)&&(A.style.display="none")})}else if(window.__unviredSdkScriptsLoading)window.__unviredSdkScriptsLoaded||(l.warn("[TF_SDK:19] \u26A0\uFE0F Scripts marked as loading but not yet loaded - waiting..."),window.__unviredSdkScriptsLoaded=!0,window.__unviredSdkScriptsLoading=!1);else{if(l.info("[TF_SDK:20] \u2705 SDK scripts already loaded \u2014 skipping injection"),typeof window.Formio=="undefined"){let m="ErrorCode : 005, Formio library not available even though scripts were loaded.";throw l.error("[TF_SDK:21] \u274C ",m),b&&b.classList.add("hidden"),s({type:"ERROR",errorMessage:m,data:{technicalError:new Error(m),formioPath:"bundled",timestamp:new Date().toISOString()}}),new Error(m)}l.info("[TF_SDK:22] \u2705 Formio verified (previously loaded)")}window.FORM_TEMPLATE=h,window.FORM_PREVIOUS_DATA=n,window.FORM_MODE=e.mode,window.FORM_COMMENTS_DATA=e.commentsData,window.FORM_VOB_ARR=e.vobArr,window.FORM_PLATFORM=e.platform,window.FORM_LANGUAGE=e.language,window.FORM_TRASLATIONS=e.translations,window.FORM_ENV=e.environmentVariable,window.FORM_THEME_DATA=e.themeData,window.FORM_USER_DATA=e.userData,window.FORM_USERS_LIST=e.usersList,window.FORM_CONTROL_DATA=e.controlData,window.FORM_PRIVATE_EXTERNAL=e.privateExternal,window.FORM_PERMISSION=e.permission,window.FORM_ATTACHMENT_FILE_KEYS=i,window.sendEventCallback=s,window.FORM_EVENTS={FORM_RENDER:"FORM_RENDER",SAVE:"FORM_SAVE",SUBMIT:"FORM_SUBMIT",SUBMIT_ERROR:"FORM_SUBMIT_ERROR",BACK_NAVIGATION:"FORM_BACK_NAVIGATION",ONCHANGE:"FORM_ONCHANGE",FORM_LOADED:"FORM_LOADED"};let v=r.querySelector("#form-back-btn"),E=r.querySelector("#unvired-more-btn");v&&(e.showBackButton?v.style.setProperty("display","flex","important"):v.style.setProperty("display","none","important")),E&&!e.showMoreButton&&E.style.setProperty("display","none","important"),window.__unviredFormsOptions=e,window.checkDocumentsVisibility(),typeof window.checkMoreButtonVisibility=="function"&&window.checkMoreButtonVisibility(),e.platform==="web"?window.platform={isBrowser:!0,isAndroid:!1,iosPlatform:!1}:e.platform==="android"?window.platform={isBrowser:!1,isAndroid:!0,iosPlatform:!1}:e.platform==="ios"&&(window.platform={isBrowser:!1,isAndroid:!1,iosPlatform:!0});let O={};if(((ie=e.environmentVariable)==null?void 0:ie.length)>0)for(let m of e.environmentVariable)for(let d in m)O[d]=m[d];Object.keys(O).length>0&&(window.env=O);let S=r.querySelector("#sticky-header"),N=r.querySelector("#sticky-footer"),L=r.querySelector("#formio-wrapper"),H=r.querySelector("#comments-header");e.mode==="pdf"||e.mode==="print"?(r.classList.add(`${e.mode}-mode`),L&&L.classList.add(`${e.mode}-mode`),S&&(S.style.display="none"),N&&(N.style.display="none")):(S&&(S.style.display="flex"),N&&(N.style.display="flex")),H&&(H.style.display="none"),e.themeData&&Object.keys(e.themeData).length>0&&(window.FORM_THEME_DATA=e.themeData),e.language&&(window.FORMIO_LANGUAGE=e.language),e.translations&&(window.FORMIO_I18N=e.translations),e.userData&&(window.firstName=e.userData.firstName,window.lastName=e.userData.lastName,window.form=window.form||{},Object.assign(window.form,e.userData)),window.less=window.less||{},Object.assign(window.less,{async:!0,environment:"production",fileAsync:!1,onReady:!0,useFileCache:!0});let _=n;if(n&&(l.info("[TF_SDK:23] \u2705 Processing file IDs in submission data (fetching from IndexedDB)..."),_=await me(n,s,i),l.info("[TF_SDK:24] \u2705 File IDs processed \u2014 handing off to form renderer")),b){let m=b.querySelector(".sdk-loader-text");m&&(m.textContent="Initializing Form...")}return typeof window.loadTRform!="function"?(l.info("[TF_SDK:25] \u2705 loadTRform not ready yet \u2014 waiting for web-turbo-formio.js to signal..."),await new Promise(m=>{let d=()=>{document.removeEventListener("LoadRNformReady",d),l.info("[TF_SDK:26] \u2705 loadTRform is now ready (LoadRNformReady event received)"),m()};document.addEventListener("LoadRNformReady",d),typeof window.loadTRform=="function"&&d()})):l.info("[TF_SDK:27] \u2705 loadTRform already available \u2014 invoking immediately"),l.info("[TF_SDK:28] \u2705 Handing off to loadTRform (web-turbo-formio.js)..."),await window.loadTRform(h,_,e.themeData,e.mode,e.language,e.translations,e.controlData,e.privateExternal,e.permission,i),ke(),{sendAction:m=>{var d;m.type==="SET_IMAGE_DATA"&&((d=window.setImageData)==null||d.call(window,m.imageData,m.controlId,m.fileName))},destroy:()=>{r.innerHTML=""}}}window.closeDocumentsModal=function(){if(typeof $!="undefined"&&$.fn.modal)$("#documentsModal").modal("hide");else{let t=document.getElementById("documentsModal");t&&(t.style.display="none",t.classList.remove("active"))}};window.checkDocumentsVisibility=async function(){let t=document.getElementById("documentsOption"),n=document.getElementById("documentsDivider"),o=await ne();t.style.display=o?"block":"none",n&&(n.style.display=o?"block":"none"),typeof window.checkMoreButtonVisibility=="function"&&window.checkMoreButtonVisibility()};window.insertAppDocument=async function(t){try{return await ve(t),l.info("[TF_SDK:29] \u2705 Document inserted",{id:t==null?void 0:t.id}),await window.checkDocumentsVisibility(),!0}catch(n){return l.error("[TF_SDK:30] \u274C Failed to insert document",n),!1}};window.deleteAppDocument=async function(t){try{return await ye(t),l.info("[TF_SDK:31] \u2705 Document deleted",{id:t}),await window.checkDocumentsVisibility(),!0}catch(n){return l.error("[TF_SDK:32] \u274C Failed to delete document",n),!1}};window.getAllDocuments=ge;window.hasDocuments=ne;function Ae(){return"2.0.43"}function re(t){let n=typeof t=="string"?document.getElementById(t):t;n||(n=document.querySelector(".tf-formio-sdk")||document.body);let o=n.querySelectorAll("table"),r=0,e=null;return o.forEach(i=>{let a=i.getBoundingClientRect().width;a>r&&(r=a,e=i)}),{maxWidth:r,widestTable:e}}window.getMaxTableWidth=re;typeof window!="undefined"&&(window.TurboForms=window.TurboForms||{loadForm:Ee,getBuildVersion:Ae,getMaxTableWidth:re});return Fe(Ge);})();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unvired/turboforms-embed-sdk",
3
- "version": "2.0.42",
3
+ "version": "2.0.43",
4
4
  "description": "Reusable vanilla JS form library that works with React, Angular, Ionic, etc.",
5
5
  "main": "dist/turboforms.js",
6
6
  "types": "dist/index.d.ts",