udp-stencil-component-library 25.18.1-beta.24 → 25.18.1-beta.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/image-upload_7.cjs.entry.js +1 -1
- package/dist/cjs/udp-forms-list-card.cjs.entry.js +1 -1
- package/dist/cjs/udp-forms-renderer.cjs.entry.js +1 -1
- package/dist/cjs/udp-forms-ui.cjs.entry.js +1 -1
- package/dist/cjs/{utils-C6zQV6K1.js → utils-_9VRHzac.js} +9 -5
- package/dist/cjs/{utils-C6zQV6K1.js.map → utils-_9VRHzac.js.map} +1 -1
- package/dist/collection/components/forms/udp-forms/utils/utils.js +7 -3
- package/dist/collection/components/forms/udp-forms/utils/utils.js.map +1 -1
- package/dist/components/utils.js +7 -3
- package/dist/components/utils.js.map +1 -1
- package/dist/docs.json +1 -1
- package/dist/esm/image-upload_7.entry.js +1 -1
- package/dist/esm/udp-forms-list-card.entry.js +1 -1
- package/dist/esm/udp-forms-renderer.entry.js +1 -1
- package/dist/esm/udp-forms-ui.entry.js +1 -1
- package/dist/esm/{utils-92Ceg12m.js → utils-FDX6DxFp.js} +9 -5
- package/dist/{stencil-library/utils-92Ceg12m.js.map → esm/utils-FDX6DxFp.js.map} +1 -1
- package/dist/stencil-library/image-upload_7.entry.js +1 -1
- package/dist/stencil-library/udp-forms-list-card.entry.js +1 -1
- package/dist/stencil-library/udp-forms-renderer.entry.js +1 -1
- package/dist/stencil-library/udp-forms-ui.entry.js +1 -1
- package/dist/stencil-library/utils-FDX6DxFp.js +2 -0
- package/dist/{esm/utils-92Ceg12m.js.map → stencil-library/utils-FDX6DxFp.js.map} +1 -1
- package/package.json +1 -1
- package/dist/stencil-library/utils-92Ceg12m.js +0 -2
|
@@ -5,7 +5,7 @@ var udpDriveUtils = require('./udp-drive-utils-B8uPAKzW.js');
|
|
|
5
5
|
var finalForm = require('final-form');
|
|
6
6
|
var debounce = require('lodash.debounce');
|
|
7
7
|
var enums = require('./enums-ibNZ4cZ4.js');
|
|
8
|
-
var utils = require('./utils-
|
|
8
|
+
var utils = require('./utils-_9VRHzac.js');
|
|
9
9
|
var iconUtils = require('./iconUtils-BuDk48Xh.js');
|
|
10
10
|
var Save = require('@carbon/icons/es/save/20');
|
|
11
11
|
require('axios');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var index = require('./index-CGCOXUJE.js');
|
|
4
4
|
var enums = require('./enums-ibNZ4cZ4.js');
|
|
5
|
-
var utils = require('./utils-
|
|
5
|
+
var utils = require('./utils-_9VRHzac.js');
|
|
6
6
|
var ChevronRight24 = require('@carbon/icons/es/chevron--right/16');
|
|
7
7
|
var Edit16 = require('@carbon/icons/es/edit/16');
|
|
8
8
|
var DocumentAdd16 = require('@carbon/icons/es/document--add/16');
|
|
@@ -5,7 +5,7 @@ var lodash = require('lodash');
|
|
|
5
5
|
var enums = require('./enums-ibNZ4cZ4.js');
|
|
6
6
|
var tenantUtils = require('./tenantUtils-BCKSE0vq.js');
|
|
7
7
|
var udpFormApiUtils = require('./udp-form-api-utils-BwNeblH_.js');
|
|
8
|
-
var utils = require('./utils-
|
|
8
|
+
var utils = require('./utils-_9VRHzac.js');
|
|
9
9
|
var makeApiCall = require('./makeApiCall-CFfg9gI0.js');
|
|
10
10
|
var SearchBuilder = require('./SearchBuilder-C1sUitjQ.js');
|
|
11
11
|
var configService = require('./configService-BmGAegZf.js');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var index = require('./index-CGCOXUJE.js');
|
|
4
4
|
var enums = require('./enums-ibNZ4cZ4.js');
|
|
5
|
-
var utils = require('./utils-
|
|
5
|
+
var utils = require('./utils-_9VRHzac.js');
|
|
6
6
|
var iconUtils = require('./iconUtils-BuDk48Xh.js');
|
|
7
7
|
require('./iconMapping-CkHR1LGY.js');
|
|
8
8
|
require('@carbon/icons/es/add/16');
|
|
@@ -8,9 +8,13 @@ const dateFormatter = (dateString) => {
|
|
|
8
8
|
// Check if the string is in the 'YYYY-MM-DD HH:mm:ss.sss' format (i.e., contains a space, not 'T')
|
|
9
9
|
// If the input is '2025-12-10T20:23:23.055Z', it passes straight through.
|
|
10
10
|
// This format is assumed to be missing timezone info and needs to be treated as UTC.
|
|
11
|
-
if (dateString.includes(' ')
|
|
12
|
-
// Replace the space with 'T'
|
|
13
|
-
normalizedDateString = dateString.replace(' ', 'T')
|
|
11
|
+
if (dateString.includes(' ')) {
|
|
12
|
+
// Replace the space with 'T'
|
|
13
|
+
normalizedDateString = dateString.replace(' ', 'T');
|
|
14
|
+
}
|
|
15
|
+
if (!dateString.toUpperCase().endsWith('Z')) {
|
|
16
|
+
// append Z if not there
|
|
17
|
+
normalizedDateString = normalizedDateString + 'Z';
|
|
14
18
|
}
|
|
15
19
|
const date = new Date(normalizedDateString);
|
|
16
20
|
return date.toLocaleString(undefined, {
|
|
@@ -69,6 +73,6 @@ exports.buildEmptyInitialValues = buildEmptyInitialValues;
|
|
|
69
73
|
exports.dateFormatter = dateFormatter;
|
|
70
74
|
exports.fontOverrideMapping = fontOverrideMapping;
|
|
71
75
|
exports.overrideFont = overrideFont;
|
|
72
|
-
//# sourceMappingURL=utils-
|
|
76
|
+
//# sourceMappingURL=utils-_9VRHzac.js.map
|
|
73
77
|
|
|
74
|
-
//# sourceMappingURL=utils-
|
|
78
|
+
//# sourceMappingURL=utils-_9VRHzac.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils-
|
|
1
|
+
{"version":3,"file":"utils-_9VRHzac.js","sources":["src/components/forms/udp-forms/utils/utils.ts"],"sourcesContent":["// take a masterForm's structure and build the empty initialValues object\nimport { UdpForm } from \"src/components\";\n\n/**\n * Translate and format UTC timestamp to local time.\n */\nexport const dateFormatter = (dateString) => {\n let normalizedDateString = dateString;\n\n // Check if the string is in the 'YYYY-MM-DD HH:mm:ss.sss' format (i.e., contains a space, not 'T')\n // If the input is '2025-12-10T20:23:23.055Z', it passes straight through.\n // This format is assumed to be missing timezone info and needs to be treated as UTC.\n if (dateString.includes(' ')) {\n // Replace the space with 'T' \n normalizedDateString = dateString.replace(' ', 'T');\n }\n\n if (!dateString.toUpperCase().endsWith('Z')) {\n // append Z if not there\n normalizedDateString = normalizedDateString + 'Z';\n }\n\n const date = new Date(normalizedDateString);\n\n return date.toLocaleString(undefined, {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n hour12: true\n });\n};\n\n\n// eg. { section1: { question1: { value: '', comments: [], metadata: {} }, question2: { value: '', comments: [], metadata: {} } }, section2: { question3: { value: '', comments: [], metadata: {} } } }\nexport const buildEmptyInitialValues = (masterForm: UdpForm) => {\n const initialValues = {};\n\n for (const section of masterForm.udpFormUdpFormSection) {\n initialValues[section.name] = {};\n\n const questionsOfSection = masterForm.formQuestions.filter(\n question => question.formSectionId == section.id,\n );\n\n for (const question of questionsOfSection) {\n initialValues[section.name][question.name] = {\n value: '', // default empty value\n comments: [], // default empty comments array\n metadata: {}, // default metadata object\n };\n }\n }\n\n return initialValues;\n};\n\n\nexport const overrideFont = (element: HTMLElement, cssVariable) => {\n if(element?.shadowRoot?.lastElementChild){ // this returns null in react for some instances\n element?.shadowRoot?.lastElementChild?.setAttribute?.('style', `font-family: var(${cssVariable})`)\n return;\n }\n const observer = new MutationObserver((mutationsList, observer) => {\n mutationsList.forEach(mutation => {\n if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {\n mutation.addedNodes.forEach(node => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n (node as HTMLElement)?.setAttribute?.('style', `font-family: var(${cssVariable})`);\n observer.disconnect(); // Stop observing once the target is found\n }\n });\n }\n });\n });\n\n if (element?.shadowRoot) {\n observer.observe(element.shadowRoot, { childList: true });\n }\n };\n\n\nexport const fontOverrideMapping = {\n Arial: \"--font-override-arial\"\n}"],"names":[],"mappings":"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"}
|
|
@@ -6,9 +6,13 @@ export const dateFormatter = (dateString) => {
|
|
|
6
6
|
// Check if the string is in the 'YYYY-MM-DD HH:mm:ss.sss' format (i.e., contains a space, not 'T')
|
|
7
7
|
// If the input is '2025-12-10T20:23:23.055Z', it passes straight through.
|
|
8
8
|
// This format is assumed to be missing timezone info and needs to be treated as UTC.
|
|
9
|
-
if (dateString.includes(' ')
|
|
10
|
-
// Replace the space with 'T'
|
|
11
|
-
normalizedDateString = dateString.replace(' ', 'T')
|
|
9
|
+
if (dateString.includes(' ')) {
|
|
10
|
+
// Replace the space with 'T'
|
|
11
|
+
normalizedDateString = dateString.replace(' ', 'T');
|
|
12
|
+
}
|
|
13
|
+
if (!dateString.toUpperCase().endsWith('Z')) {
|
|
14
|
+
// append Z if not there
|
|
15
|
+
normalizedDateString = normalizedDateString + 'Z';
|
|
12
16
|
}
|
|
13
17
|
const date = new Date(normalizedDateString);
|
|
14
18
|
return date.toLocaleString(undefined, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/components/forms/udp-forms/utils/utils.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,UAAU,EAAE,EAAE;IAC1C,IAAI,oBAAoB,GAAG,UAAU,CAAC;IAEtC,mGAAmG;IACnG,0EAA0E;IAC1E,qFAAqF;IACrF,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/components/forms/udp-forms/utils/utils.ts"],"names":[],"mappings":"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","sourcesContent":["// take a masterForm's structure and build the empty initialValues object\nimport { UdpForm } from \"src/components\";\n\n/**\n * Translate and format UTC timestamp to local time.\n */\nexport const dateFormatter = (dateString) => {\n let normalizedDateString = dateString;\n\n // Check if the string is in the 'YYYY-MM-DD HH:mm:ss.sss' format (i.e., contains a space, not 'T')\n // If the input is '2025-12-10T20:23:23.055Z', it passes straight through.\n // This format is assumed to be missing timezone info and needs to be treated as UTC.\n if (dateString.includes(' ')) {\n // Replace the space with 'T' \n normalizedDateString = dateString.replace(' ', 'T');\n }\n\n if (!dateString.toUpperCase().endsWith('Z')) {\n // append Z if not there\n normalizedDateString = normalizedDateString + 'Z';\n }\n\n const date = new Date(normalizedDateString);\n\n return date.toLocaleString(undefined, {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n hour12: true\n });\n};\n\n\n// eg. { section1: { question1: { value: '', comments: [], metadata: {} }, question2: { value: '', comments: [], metadata: {} } }, section2: { question3: { value: '', comments: [], metadata: {} } } }\nexport const buildEmptyInitialValues = (masterForm: UdpForm) => {\n const initialValues = {};\n\n for (const section of masterForm.udpFormUdpFormSection) {\n initialValues[section.name] = {};\n\n const questionsOfSection = masterForm.formQuestions.filter(\n question => question.formSectionId == section.id,\n );\n\n for (const question of questionsOfSection) {\n initialValues[section.name][question.name] = {\n value: '', // default empty value\n comments: [], // default empty comments array\n metadata: {}, // default metadata object\n };\n }\n }\n\n return initialValues;\n};\n\n\nexport const overrideFont = (element: HTMLElement, cssVariable) => {\n if(element?.shadowRoot?.lastElementChild){ // this returns null in react for some instances\n element?.shadowRoot?.lastElementChild?.setAttribute?.('style', `font-family: var(${cssVariable})`)\n return;\n }\n const observer = new MutationObserver((mutationsList, observer) => {\n mutationsList.forEach(mutation => {\n if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {\n mutation.addedNodes.forEach(node => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n (node as HTMLElement)?.setAttribute?.('style', `font-family: var(${cssVariable})`);\n observer.disconnect(); // Stop observing once the target is found\n }\n });\n }\n });\n });\n\n if (element?.shadowRoot) {\n observer.observe(element.shadowRoot, { childList: true });\n }\n };\n\n\nexport const fontOverrideMapping = {\n Arial: \"--font-override-arial\"\n}"]}
|
package/dist/components/utils.js
CHANGED
|
@@ -6,9 +6,13 @@ const dateFormatter = (dateString) => {
|
|
|
6
6
|
// Check if the string is in the 'YYYY-MM-DD HH:mm:ss.sss' format (i.e., contains a space, not 'T')
|
|
7
7
|
// If the input is '2025-12-10T20:23:23.055Z', it passes straight through.
|
|
8
8
|
// This format is assumed to be missing timezone info and needs to be treated as UTC.
|
|
9
|
-
if (dateString.includes(' ')
|
|
10
|
-
// Replace the space with 'T'
|
|
11
|
-
normalizedDateString = dateString.replace(' ', 'T')
|
|
9
|
+
if (dateString.includes(' ')) {
|
|
10
|
+
// Replace the space with 'T'
|
|
11
|
+
normalizedDateString = dateString.replace(' ', 'T');
|
|
12
|
+
}
|
|
13
|
+
if (!dateString.toUpperCase().endsWith('Z')) {
|
|
14
|
+
// append Z if not there
|
|
15
|
+
normalizedDateString = normalizedDateString + 'Z';
|
|
12
16
|
}
|
|
13
17
|
const date = new Date(normalizedDateString);
|
|
14
18
|
return date.toLocaleString(undefined, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"utils.js","mappings":"AAGA;;AAEG;AACU,MAAA,aAAa,GAAG,CAAC,UAAU,KAAI;IAC1C,IAAI,oBAAoB,GAAG,UAAU;;;;AAKrC,IAAA,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,
|
|
1
|
+
{"file":"utils.js","mappings":"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","names":[],"sources":["src/components/forms/udp-forms/utils/utils.ts"],"sourcesContent":["// take a masterForm's structure and build the empty initialValues object\nimport { UdpForm } from \"src/components\";\n\n/**\n * Translate and format UTC timestamp to local time.\n */\nexport const dateFormatter = (dateString) => {\n let normalizedDateString = dateString;\n\n // Check if the string is in the 'YYYY-MM-DD HH:mm:ss.sss' format (i.e., contains a space, not 'T')\n // If the input is '2025-12-10T20:23:23.055Z', it passes straight through.\n // This format is assumed to be missing timezone info and needs to be treated as UTC.\n if (dateString.includes(' ')) {\n // Replace the space with 'T' \n normalizedDateString = dateString.replace(' ', 'T');\n }\n\n if (!dateString.toUpperCase().endsWith('Z')) {\n // append Z if not there\n normalizedDateString = normalizedDateString + 'Z';\n }\n\n const date = new Date(normalizedDateString);\n\n return date.toLocaleString(undefined, {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n hour12: true\n });\n};\n\n\n// eg. { section1: { question1: { value: '', comments: [], metadata: {} }, question2: { value: '', comments: [], metadata: {} } }, section2: { question3: { value: '', comments: [], metadata: {} } } }\nexport const buildEmptyInitialValues = (masterForm: UdpForm) => {\n const initialValues = {};\n\n for (const section of masterForm.udpFormUdpFormSection) {\n initialValues[section.name] = {};\n\n const questionsOfSection = masterForm.formQuestions.filter(\n question => question.formSectionId == section.id,\n );\n\n for (const question of questionsOfSection) {\n initialValues[section.name][question.name] = {\n value: '', // default empty value\n comments: [], // default empty comments array\n metadata: {}, // default metadata object\n };\n }\n }\n\n return initialValues;\n};\n\n\nexport const overrideFont = (element: HTMLElement, cssVariable) => {\n if(element?.shadowRoot?.lastElementChild){ // this returns null in react for some instances\n element?.shadowRoot?.lastElementChild?.setAttribute?.('style', `font-family: var(${cssVariable})`)\n return;\n }\n const observer = new MutationObserver((mutationsList, observer) => {\n mutationsList.forEach(mutation => {\n if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {\n mutation.addedNodes.forEach(node => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n (node as HTMLElement)?.setAttribute?.('style', `font-family: var(${cssVariable})`);\n observer.disconnect(); // Stop observing once the target is found\n }\n });\n }\n });\n });\n\n if (element?.shadowRoot) {\n observer.observe(element.shadowRoot, { childList: true });\n }\n };\n\n\nexport const fontOverrideMapping = {\n Arial: \"--font-override-arial\"\n}"],"version":3}
|
package/dist/docs.json
CHANGED
|
@@ -3,7 +3,7 @@ import { i as isFileReference, p as parseFileReference, d as downloadFileFromUdp
|
|
|
3
3
|
import { createForm } from 'final-form';
|
|
4
4
|
import debounce from 'lodash.debounce';
|
|
5
5
|
import { b as UdpFormsFieldTypeEnum, U as UdpFormsPageIdEnum } from './enums-BnKmfKJT.js';
|
|
6
|
-
import { f as fontOverrideMapping, o as overrideFont, d as dateFormatter } from './utils-
|
|
6
|
+
import { f as fontOverrideMapping, o as overrideFont, d as dateFormatter } from './utils-FDX6DxFp.js';
|
|
7
7
|
import { g as getIconFromName } from './iconUtils-DcPvHO4A.js';
|
|
8
8
|
import Save from '@carbon/icons/es/save/20';
|
|
9
9
|
import 'axios';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as registerInstance, h, F as Fragment } from './index-CaZq3YdB.js';
|
|
2
2
|
import { U as UdpFormsPageIdEnum, a as UdpFormsTypeEnum } from './enums-BnKmfKJT.js';
|
|
3
|
-
import { d as dateFormatter } from './utils-
|
|
3
|
+
import { d as dateFormatter } from './utils-FDX6DxFp.js';
|
|
4
4
|
import ChevronRight24 from '@carbon/icons/es/chevron--right/16';
|
|
5
5
|
import Edit16 from '@carbon/icons/es/edit/16';
|
|
6
6
|
import DocumentAdd16 from '@carbon/icons/es/document--add/16';
|
|
@@ -3,7 +3,7 @@ import { throttle } from 'lodash';
|
|
|
3
3
|
import { b as UdpFormsFieldTypeEnum, U as UdpFormsPageIdEnum, a as UdpFormsTypeEnum } from './enums-BnKmfKJT.js';
|
|
4
4
|
import { g as getCurrentTenantId } from './tenantUtils-Basdb1b1.js';
|
|
5
5
|
import { f as fetchLatestForms } from './udp-form-api-utils-vPSYCvIA.js';
|
|
6
|
-
import { b as buildEmptyInitialValues } from './utils-
|
|
6
|
+
import { b as buildEmptyInitialValues } from './utils-FDX6DxFp.js';
|
|
7
7
|
import { c as createFormData, m as makeApiCall } from './makeApiCall-B-daVutk.js';
|
|
8
8
|
import { S as SearchBuilder, c as SearchOperators } from './SearchBuilder-CvKqGlUH.js';
|
|
9
9
|
import { C as ConfigService } from './configService-BqLfkVKh.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as registerInstance, c as createEvent, h, a as getElement } from './index-CaZq3YdB.js';
|
|
2
2
|
import { b as UdpFormsFieldTypeEnum } from './enums-BnKmfKJT.js';
|
|
3
|
-
import { f as fontOverrideMapping, o as overrideFont } from './utils-
|
|
3
|
+
import { f as fontOverrideMapping, o as overrideFont } from './utils-FDX6DxFp.js';
|
|
4
4
|
import { g as getIconFromName } from './iconUtils-DcPvHO4A.js';
|
|
5
5
|
import './iconMapping-CPerGeNF.js';
|
|
6
6
|
import '@carbon/icons/es/add/16';
|
|
@@ -6,9 +6,13 @@ const dateFormatter = (dateString) => {
|
|
|
6
6
|
// Check if the string is in the 'YYYY-MM-DD HH:mm:ss.sss' format (i.e., contains a space, not 'T')
|
|
7
7
|
// If the input is '2025-12-10T20:23:23.055Z', it passes straight through.
|
|
8
8
|
// This format is assumed to be missing timezone info and needs to be treated as UTC.
|
|
9
|
-
if (dateString.includes(' ')
|
|
10
|
-
// Replace the space with 'T'
|
|
11
|
-
normalizedDateString = dateString.replace(' ', 'T')
|
|
9
|
+
if (dateString.includes(' ')) {
|
|
10
|
+
// Replace the space with 'T'
|
|
11
|
+
normalizedDateString = dateString.replace(' ', 'T');
|
|
12
|
+
}
|
|
13
|
+
if (!dateString.toUpperCase().endsWith('Z')) {
|
|
14
|
+
// append Z if not there
|
|
15
|
+
normalizedDateString = normalizedDateString + 'Z';
|
|
12
16
|
}
|
|
13
17
|
const date = new Date(normalizedDateString);
|
|
14
18
|
return date.toLocaleString(undefined, {
|
|
@@ -64,6 +68,6 @@ const fontOverrideMapping = {
|
|
|
64
68
|
};
|
|
65
69
|
|
|
66
70
|
export { buildEmptyInitialValues as b, dateFormatter as d, fontOverrideMapping as f, overrideFont as o };
|
|
67
|
-
//# sourceMappingURL=utils-
|
|
71
|
+
//# sourceMappingURL=utils-FDX6DxFp.js.map
|
|
68
72
|
|
|
69
|
-
//# sourceMappingURL=utils-
|
|
73
|
+
//# sourceMappingURL=utils-FDX6DxFp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils-
|
|
1
|
+
{"version":3,"file":"utils-FDX6DxFp.js","sources":["src/components/forms/udp-forms/utils/utils.ts"],"sourcesContent":["// take a masterForm's structure and build the empty initialValues object\nimport { UdpForm } from \"src/components\";\n\n/**\n * Translate and format UTC timestamp to local time.\n */\nexport const dateFormatter = (dateString) => {\n let normalizedDateString = dateString;\n\n // Check if the string is in the 'YYYY-MM-DD HH:mm:ss.sss' format (i.e., contains a space, not 'T')\n // If the input is '2025-12-10T20:23:23.055Z', it passes straight through.\n // This format is assumed to be missing timezone info and needs to be treated as UTC.\n if (dateString.includes(' ')) {\n // Replace the space with 'T' \n normalizedDateString = dateString.replace(' ', 'T');\n }\n\n if (!dateString.toUpperCase().endsWith('Z')) {\n // append Z if not there\n normalizedDateString = normalizedDateString + 'Z';\n }\n\n const date = new Date(normalizedDateString);\n\n return date.toLocaleString(undefined, {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n hour12: true\n });\n};\n\n\n// eg. { section1: { question1: { value: '', comments: [], metadata: {} }, question2: { value: '', comments: [], metadata: {} } }, section2: { question3: { value: '', comments: [], metadata: {} } } }\nexport const buildEmptyInitialValues = (masterForm: UdpForm) => {\n const initialValues = {};\n\n for (const section of masterForm.udpFormUdpFormSection) {\n initialValues[section.name] = {};\n\n const questionsOfSection = masterForm.formQuestions.filter(\n question => question.formSectionId == section.id,\n );\n\n for (const question of questionsOfSection) {\n initialValues[section.name][question.name] = {\n value: '', // default empty value\n comments: [], // default empty comments array\n metadata: {}, // default metadata object\n };\n }\n }\n\n return initialValues;\n};\n\n\nexport const overrideFont = (element: HTMLElement, cssVariable) => {\n if(element?.shadowRoot?.lastElementChild){ // this returns null in react for some instances\n element?.shadowRoot?.lastElementChild?.setAttribute?.('style', `font-family: var(${cssVariable})`)\n return;\n }\n const observer = new MutationObserver((mutationsList, observer) => {\n mutationsList.forEach(mutation => {\n if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {\n mutation.addedNodes.forEach(node => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n (node as HTMLElement)?.setAttribute?.('style', `font-family: var(${cssVariable})`);\n observer.disconnect(); // Stop observing once the target is found\n }\n });\n }\n });\n });\n\n if (element?.shadowRoot) {\n observer.observe(element.shadowRoot, { childList: true });\n }\n };\n\n\nexport const fontOverrideMapping = {\n Arial: \"--font-override-arial\"\n}"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,c as i,h as e,H as o,a as s}from"./index-CaZq3YdB.js";import{i as n,p as a,d as r,a as l,c,b as d}from"./udp-drive-utils-CIrjVGiJ.js";import{createForm as p}from"final-form";import u from"lodash.debounce";import{b as h,U as m}from"./enums-BnKmfKJT.js";import{f as b,o as f,d as v}from"./utils-92Ceg12m.js";import{g as y}from"./iconUtils-DcPvHO4A.js";import g from"@carbon/icons/es/save/20";import"axios";import"./configService-BqLfkVKh.js";import"./iconMapping-CPerGeNF.js";import"@carbon/icons/es/add/16";import"@carbon/icons/es/add/32";import"@carbon/icons/es/add--alt/16";import"@carbon/icons/es/add--filled/16";import"@carbon/icons/es/arrows--horizontal/16";import"@carbon/icons/es/attachment/16";import"@carbon/icons/es/batch-job/16";import"@carbon/icons/es/box/16";import"@carbon/icons/es/close/16";import"@carbon/icons/es/close/24";import"@carbon/icons/es/close/32";import"@carbon/icons/es/close--filled/16";import"@carbon/icons/es/close--outline/16";import"@carbon/icons/es/checkmark/16";import"@carbon/icons/es/checkmark/24";import"@carbon/icons/es/checkmark/32";import"@carbon/icons/es/chevron--left/16";import"@carbon/icons/es/chevron--right/16";import"@carbon/icons/es/chevron--down/16";import"@carbon/icons/es/data-enrichment/16";import"@carbon/icons/es/document/16";import"@carbon/icons/es/document--add/16";import"@carbon/icons/es/document--attachment/16";import"@carbon/icons/es/document--pdf/16";import"@carbon/icons/es/document--video/16";import"@carbon/icons/es/document--audio/16";import"@carbon/icons/es/draggable/16";import"@carbon/icons/es/edit/16";import"@carbon/icons/es/export/16";import"@carbon/icons/es/flag/16";import"@carbon/icons/es/information/16";import"@carbon/icons/es/information/32";import"@carbon/icons/es/link/16";import"@carbon/icons/es/overflow-menu--vertical/16";import"@carbon/icons/es/overflow-menu--vertical/32";import"@carbon/icons/es/return/16";import"@carbon/icons/es/save/16";import"@carbon/icons/es/settings/16";import"@carbon/icons/es/subtract/16";import"@carbon/icons/es/subtract--alt/16";import"@carbon/icons/es/subtract--filled/16";import"@carbon/icons/es/trash-can/16";import"@carbon/icons/es/user/16";import"@carbon/icons/es/view/16";import"@carbon/icons/es/warning/16";import"@carbon/icons/es/warning/32";import"@carbon/icons/es/warning--alt/16";import"@carbon/icons/es/warning--alt/32";import"@carbon/icons/es/product/16";import"@carbon/icons/es/workspace/16";import"@carbon/icons/es/arrow--up/16";import"@carbon/icons/es/arrow--down/16";import"@carbon/icons/es/arrow--right/16";import"@carbon/icons/es/arrow--left/16";import"@carbon/icons/es/copy/16";import"@carbon/icons/es/star/16";import"@carbon/icons/es/data-table/16";import"@carbon/icons/es/fit-to-width/16";import"@carbon/icons/es/search--advanced/16";import"@carbon/icons/es/reset/16";import"@carbon/icons/es/column/16";import"@carbon/icons/es/column--delete/16";import"@carbon/icons/es/watson-health/rotate--360/16";import"@carbon/icons/es/filter/16";import"@carbon/icons/es/app-connectivity/16";import"@carbon/icons/es/text--font/16";import"@carbon/icons/es/text--long-paragraph/16";import"@carbon/icons/es/character--whole-number/16";import"@carbon/icons/es/checkbox--checked/16";import"@carbon/icons/es/radio-button--checked/16";import"@carbon/icons/es/event--schedule/16";import"@carbon/icons/es/view--off/16";import"@carbon/icons/es/time/16";import"@carbon/icons/es/calendar/16";import"@carbon/icons/es/list--checked/16";import"@carbon/icons/es/list--bulleted/16";import"@carbon/icons/es/cloud--upload/16";import"@carbon/icons/es/locked/16";import"@carbon/icons/es/pause/16";import"@carbon/icons/es/unlocked/16";import"@carbon/icons/es/send/16";import"@carbon/icons/es/email/16";import"@carbon/icons/es/checkmark--outline/16";import"@carbon/icons/es/migrate--alt/16";import"@carbon/icons/es/checkbox--checked--filled/16";import"@carbon/icons/es/checkbox/16";import"@carbon/icons/es/ZIP/16";import"@carbon/icons/es/image/16";import"@carbon/icons/es/PPT/16";import"@carbon/icons/es/XLS/16";const x=":host{display:block}";const w=class{constructor(e){t(this,e);this.change=i(this,"change");this.allowedMimeTypes=["image/jpeg","image/png","image/gif","image/svg+xml","image/webp"];this.fullWidth=false;this.dragAndDropMessage="Drag and drop your images here";this.browseFileMessage="Browse Images";this.hideDragAndDrop=false;this.hideButton=false;this.disabled=false;this.readonly=false;this.handleFileChange=t=>{t.stopPropagation();this.change.emit(t.detail)}}render(){return e(o,{key:"f98115378f75b830773ebcf21bd4c8870ed2dd08"},e("file-upload",{key:"93830c15661df2a2a24096d1f89bec7d4caabbb5",allowMultiple:false,allowedMimeTypes:this.allowedMimeTypes,fullWidth:this.fullWidth,required:this.required,error:this.error,dragAndDropMessage:this.dragAndDropMessage,browseFileMessage:this.browseFileMessage,hideDragAndDrop:this.hideDragAndDrop,hideButton:this.hideButton,id:this.id,name:this.name,label:this.label,disabled:this.disabled,readonly:this.readonly,initialValue:this.initialValue,renderImage:true,onChange:this.handleFileChange}))}};w.style=x;const k=':host(.udp-input){display:block;box-sizing:border-box;position:relative}:host(.udp-input--full-width){width:100%}:host(.udp-input--error){--input-border-color:var(--input-underline-color-error)}:host(.udp-input--disabled){pointer-events:none;opacity:0.5;cursor:not-allowed}:host(.udp-input--required){position:relative}:host(.udp-input--readonly){--input-background:var(--gray-02)}:host(.udp-input--hidden){display:none}:host(.udp-input--checked){--input-accent-color:var(--primary-color)}:host(.udp-input--multi-select){--list-max-height:200px}:host(.udp-input) .bx--text-input:focus{outline:none;}:host(.udp-input) .bx--form-item{margin-bottom:var(--spacing-05)}:host(.udp-input) .bx--label{display:block;margin-bottom:var(--spacing-03);color:var(--text-main);font-size:var(--caption-text-font-size);font-weight:var(--caption-text-font-weight);line-height:var(--caption-text-line-height)}@media (max-width: var(--breakpoint-xs-max)){:host(.udp-input){margin-bottom:var(--spacing-04)}:host(.udp-input) .bx--form-item{margin-bottom:var(--spacing-04)}}@media (min-width: var(--breakpoint-sm-min)){:host(.udp-input){min-height:2.5rem;}}:host(.udp-input--size-small) .bx--text-input,:host(.udp-input--size-small) textarea,:host(.udp-input--size-small) input[type="text"],:host(.udp-input--size-small) input[type="number"],:host(.udp-input--size-small) input[type="email"],:host(.udp-input--size-small) input[type="password"],:host(.udp-input--size-small) input[type="tel"],:host(.udp-input--size-small) input[type="url"],:host(.udp-input--size-small) input[type="search"]{padding:var(--spacing-02);padding-bottom:6px;font-size:var(--caption-font-size, 0.875rem)}:host(.udp-input--size-normal) .bx--text-input,:host(.udp-input--size-normal) textarea,:host(.udp-input--size-normal) input[type="text"],:host(.udp-input--size-normal) input[type="number"],:host(.udp-input--size-normal) input[type="email"],:host(.udp-input--size-normal) input[type="password"],:host(.udp-input--size-normal) input[type="tel"],:host(.udp-input--size-normal) input[type="url"],:host(.udp-input--size-normal) input[type="search"]{padding:var(--spacing-03);padding-bottom:9px;font-size:var(--body-font-size)}:host(.udp-input--size-large) .bx--text-input,:host(.udp-input--size-large) textarea,:host(.udp-input--size-large) input[type="text"],:host(.udp-input--size-large) input[type="number"],:host(.udp-input--size-large) input[type="email"],:host(.udp-input--size-large) input[type="password"],:host(.udp-input--size-large) input[type="tel"],:host(.udp-input--size-large) input[type="url"],:host(.udp-input--size-large) input[type="search"]{padding:var(--spacing-04);padding-bottom:12px;font-size:var(--body-font-size)}:host(.udp-input--margin-none){margin:0}:host(.udp-input--margin-dense){margin:var(--spacing-02) 0}:host(.udp-input--margin-normal){margin:var(--spacing-03) 0}:host(.udp-input--margin-comfortable){margin:var(--spacing-04) 0}:host(.udp-input--size-small) .bx--label{margin-bottom:var(--spacing-02);font-size:var(--caption-font-size, 0.875rem)}:host(.udp-input--size-normal) .bx--label{margin-bottom:var(--spacing-03);font-size:var(--body-font-size)}:host(.udp-input--size-large) .bx--label{margin-bottom:var(--spacing-04);font-size:var(--body-font-size)}.bx--text-input,textarea,input[type="text"],input[type="number"],input[type="email"],input[type="password"],input[type="tel"],input[type="url"],input[type="search"]{display:inline-block;padding:var(--spacing-03);padding-bottom:9px;box-sizing:border-box;border:none;font-size:var(--body-font-size);background:var(--input-background);border-bottom:var(--underline-standard) solid var(--input-underline-color, var(--gray-08));width:100%;font-family:var(--font-family);transition:border-bottom-color 0.15s ease-in-out}.bx--text-input:focus,textarea:focus,input[type="text"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="password"]:focus,input[type="tel"]:focus,input[type="url"]:focus,input[type="search"]:focus{border-bottom-color:var(--input-underline-color-focus, var(--primary-color));border-bottom-width:2px}.bx--text-input--error,.bx--text-input:user-invalid,:host(.udp-input--error) .bx--text-input,:host(.udp-input--error) textarea,:host(.udp-input--error) input[type="text"],:host(.udp-input--error) input[type="number"],:host(.udp-input--error) input[type="email"],:host(.udp-input--error) input[type="password"],:host(.udp-input--error) input[type="tel"],:host(.udp-input--error) input[type="url"],:host(.udp-input--error) input[type="search"],input[type="text"]:user-invalid,input[type="number"]:user-invalid,input[type="email"]:user-invalid,input[type="password"]:user-invalid,input[type="tel"]:user-invalid,input[type="url"]:user-invalid,input[type="search"]:user-invalid{border-bottom-color:var(--input-underline-color-error, var(--error-color-main)) !important}:host(.udp-input--disabled) .bx--text-input,:host(.udp-input--disabled) textarea,:host(.udp-input--disabled) input[type="text"],:host(.udp-input--disabled) input[type="number"],:host(.udp-input--disabled) input[type="email"],:host(.udp-input--disabled) input[type="password"],:host(.udp-input--disabled) input[type="tel"],:host(.udp-input--disabled) input[type="url"],:host(.udp-input--disabled) input[type="search"]{border-bottom-color:var(--input-underline-color-disabled, var(--gray-08))}textarea.bx--text-input{resize:vertical;min-height:var(--spacing-08)}.bx--text-input::placeholder,textarea::placeholder,input[type="text"]::placeholder,input[type="number"]::placeholder,input[type="email"]::placeholder,input[type="password"]::placeholder,input[type="tel"]::placeholder,input[type="url"]::placeholder,input[type="search"]::placeholder{color:var(--placeholder-color, #999);opacity:1}:host(.udp-input),:host{display:block;width:100%;box-sizing:border-box}.bx--form-item{margin-bottom:var(--spacing-05)}.bx--label{display:block;margin-bottom:var(--spacing-03)}.error-message,.bx--form-requirement,:host(.udp-input--error) .error-message,:host(.udp-input--error) .bx--form-requirement{color:var(--error-color-main, #d32f2f) !important;margin-top:var(--spacing-02);font-size:var(--caption-font-size, 0.875rem);--unity-typography-inherit-color:var(--error-color-main, #d32f2f)}.helper-text{color:var(--text-02, #525252);margin-top:var(--spacing-02);font-size:var(--caption-font-size, 0.875rem)}:host(.udp-input--disabled) .bx--text-input,:host(.udp-input--disabled) textarea,:host(.udp-input--disabled) input,:host(.udp-input--disabled){cursor:not-allowed;opacity:0.6}:host(.udp-input--readonly) .bx--text-input,:host(.udp-input--readonly) textarea,:host(.udp-input--readonly) input{background-color:var(--field-01, #f4f4f4);cursor:default}:host(.udp-input--size-small) .signature-canvas{height:150px}:host(.udp-input--size-normal) .signature-canvas{height:200px}:host(.udp-input--size-large) .signature-canvas{height:250px}:host(.udp-input--size-small) .clear-button{padding:var(--spacing-01) var(--spacing-02);font-size:var(--caption-font-size, 0.875rem);top:var(--spacing-02);right:var(--spacing-02)}:host(.udp-input--size-normal) .clear-button{padding:var(--spacing-02) var(--spacing-03);font-size:var(--body-font-size);top:var(--spacing-02);right:var(--spacing-02)}:host(.udp-input--size-large) .clear-button{padding:var(--spacing-03) var(--spacing-04);font-size:var(--body-font-size);top:var(--spacing-03);right:var(--spacing-03)}.signature-pad-container{position:relative;border:1px solid var(--udp-mid-gray-color);border-radius:4px;background-color:var(--udp-light-gray-color)}.signature-canvas{display:block;width:100%;height:200px;}.signature-pad-container.readonly{background-color:var(--udp-disabled-gray-color)}.signature-canvas.readonly{cursor:not-allowed}.clear-button{position:absolute;top:var(--spacing-02);right:var(--spacing-02);background-color:var(--udp-light-gray-color);border:1px solid var(--udp-mid-gray-color);color:var(--udp-primary-color);cursor:pointer;border-radius:4px;padding:var(--spacing-02) var(--spacing-03);}.clear-button:hover{background-color:var(--udp-mid-gray-color)}.clear-button:disabled{cursor:not-allowed;opacity:0.5}';const z=class{constructor(e){t(this,e);this.change=i(this,"change");this.metadataEmit=i(this,"metadataEmit");this.includeLocation=false;this.disabled=false;this.readonly=false;this.size="normal";this.margin="normal";this.cachedLocation=null;this.handleResize=()=>{if(this.resizeTimeout)clearTimeout(this.resizeTimeout);this.resizeTimeout=setTimeout((()=>{const t=this.canvasEl.getBoundingClientRect();if(!this.lastCanvasRect||t.width!==this.lastCanvasRect.width||t.height!==this.lastCanvasRect.height){let i=this.signaturePad&&!this.signaturePad.isEmpty()?this.signaturePad.toDataURL():null;this.resizeCanvasForDPR();this.initializeSignaturePad();this.lastCanvasRect=t;if(i&&this.signaturePad){this.signaturePad.fromDataURL(i)}}}),200)};this.handleSignatureEnd=async()=>{if(this.signaturePad.isEmpty()){this.value=null;this.change.emit(null);this.metadataEmit.emit({key:"signature.latitude",value:null});this.metadataEmit.emit({key:"signature.longitude",value:null});this.metadataEmit.emit({key:"signature.timestamp",value:null})}else{const t=this.signaturePad.toDataURL();const i=await this.urlToFile(t,"signature.png");this.value=i;this.change.emit(i);this.metadataEmit.emit({key:"signature.timestamp",value:(new Date).toISOString()});if(this.includeLocation){try{let t=this.cachedLocation;if(!t){t=await new Promise(((t,i)=>{navigator.geolocation.getCurrentPosition(t,i,{enableHighAccuracy:true,timeout:3e4,maximumAge:0})}))}if(t){this.metadataEmit.emit({key:"signature.latitude",value:t.coords.latitude});this.metadataEmit.emit({key:"signature.longitude",value:t.coords.longitude})}else{this.metadataEmit.emit({key:"signature.latitude",value:null});this.metadataEmit.emit({key:"signature.longitude",value:null})}}catch(t){console.warn("Geolocation error:",t);this.metadataEmit.emit({key:"signature.latitude",value:null});this.metadataEmit.emit({key:"signature.longitude",value:null})}}}};this.clearSignature=()=>{if(this.signaturePad){this.signaturePad.clear();this.handleSignatureEnd()}}}onErrorChange(t){this.internalError=t}async onValueChange(t){await this.loadSignaturePad();if(this.signaturePad){this.signaturePad.clear();if(t){this.loadSignature(t)}}}async onInitialValueChange(t){if(!t){return}try{const i=Array.isArray(t)?t[0]:t;if(!i)return;let e=null;if(typeof i==="string"&&n(i)){const t=await a(i);if(t){if(t.driveFileId){const i={name:t.name,driveFileId:t.driveFileId,extension:t.name.split(".").pop()||""};e=await r(i)}else{e=t}}}else if(l(i)){e=await r(i)}else if(typeof i==="string"){e=await c(i,"initial_signature.png")}else if(d(i)){e=i}if(e){this.value=e;this.resizeCanvasForDPR();this.initializeSignaturePad()}else{console.warn("Initial value could not be processed into a valid file:",i)}}catch(t){console.error("Failed to process initial value for signature pad:",t)}}async componentWillLoad(){this.internalError=this.error;await this.loadSignaturePad();if(this.includeLocation){navigator.geolocation.getCurrentPosition((t=>{this.cachedLocation=t}),(t=>{console.warn("Prewarm geolocation error:",t);this.cachedLocation=null}),{enableHighAccuracy:true,timeout:3e4,maximumAge:0})}}async componentDidLoad(){let t=this.initialValue;if(t){if(Array.isArray(t)){t=t[0]}if(l(this.initialValue)){console.log("Loading signature from UdpDriveFile:",this.initialValue);try{const t=await r(this.initialValue);this.value=t;this.readonly=false}catch(t){console.error("Failed to fetch UdpDriveFile for signature:",t);this.value=this.initialValue;this.readonly=true}}else{this.value=await this.urlToFile(this.initialValue,"initial_signature.png")}}this.resizeCanvasForDPR();this.initializeSignaturePad();this.lastCanvasRect=this.canvasEl.getBoundingClientRect();window.addEventListener("resize",this.handleResize)}disconnectedCallback(){window.removeEventListener("resize",this.handleResize);if(this.resizeTimeout)clearTimeout(this.resizeTimeout)}resizeCanvasForDPR(){if(!this.canvasEl)return;const t=window.devicePixelRatio||1;const i=this.canvasEl.getBoundingClientRect();this.canvasEl.width=i.width*t;this.canvasEl.height=i.height*t;this.canvasEl.getContext("2d").scale(t,t)}async loadSignaturePad(){if(!this.SignaturePadLib){try{const t=await import("signature_pad");this.SignaturePadLib=t.default}catch(t){console.error("Failed to load signature_pad library",t)}}}initializeSignaturePad(){this.resizeCanvasForDPR();if(this.SignaturePadLib&&this.canvasEl){this.signaturePad=new this.SignaturePadLib(this.canvasEl);this.signaturePad.addEventListener("endStroke",this.handleSignatureEnd);this.handleStateChange();if(this.value){this.loadSignature(this.value)}}}handleStateChange(){if(this.signaturePad){if(this.disabled||this.readonly){this.signaturePad.off()}else{this.signaturePad.on()}}}async loadSignature(t){let i;if(typeof t==="string"){i=t}else if(l(t)){try{const e=await r(t);i=URL.createObjectURL(e)}catch(t){console.error("Error loading signature image from UdpDriveFile:",t);return}}else if(t instanceof File){i=URL.createObjectURL(t)}if(i&&this.signaturePad){this.signaturePad.fromDataURL(i,{ratio:window.devicePixelRatio,width:this.canvasEl.width,height:this.canvasEl.height})}}async urlToFile(t,i){const e=await fetch(t);const o=await e.blob();return new File([o],i,{type:o.type})}render(){const t=!!this.internalError;const i={"signature-pad-container":true,readonly:this.readonly,disabled:this.disabled};return e(o,{key:"25389b86aa91a9dde960f166e79ed2a300369f35",class:{"udp-input":true,"udp-input--error":t,"udp-input--disabled":this.disabled,"udp-input--required":this.required,"udp-input--readonly":this.readonly,[`udp-input--size-${this.size}`]:true,[`udp-input--margin-${this.margin}`]:true}},e("div",{key:"caf9a3202629bab33ce4557eed89f9c25f8b565e",class:"bx--form-item"},this.label&&e("unity-typography",{key:"7dab3efdac9b8609c93f7ac796eda94c8a4b40b7",variant:"caption-text"},e("label",{key:"bd67435665b625d5451699e2e8c93e0b9c6e3bb8",htmlFor:this.id,class:"bx--label"},this.label,this.required&&"*")),e("div",{key:"d40a68796973224950da2d142319d06471920f28",class:i},e("canvas",{key:"0a0ac328ede1d3e4f405f16637121717dfdeff00",ref:t=>this.canvasEl=t,class:{"signature-canvas":true,readonly:this.readonly||this.disabled},id:this.id}),!this.readonly&&!this.disabled&&e("button",{key:"b66c55a7dd3e72e5324bb360df03efc45c2fafff",type:"button",class:"clear-button",onClick:this.clearSignature,disabled:this.disabled},"Clear")),t&&e("div",{key:"4255c95f925627b0614f6831bb83a0f5d167f08d",class:"error-message"},e("unity-typography",{key:"a10683729cd351f2bea7e840562da9487602527a",variant:"caption-text",color:"error"},this.internalError))))}get el(){return s(this)}static get watchers(){return{error:["onErrorChange"],value:["onValueChange"],initialValue:["onInitialValueChange"],disabled:["handleStateChange"],readonly:["handleStateChange"]}}};z.style=k;const C=class{constructor(e){t(this,e);this.stencilFormInvalidEvent=i(this,"stencilFormInvalidEvent");this.dirtyChange=i(this,"dirtyChange");this.validateOnBlur=true;this.registeredFields={};this.customErrors={};this.handleSlotChange=()=>{const t=this.el.shadowRoot.querySelector("slot");if(!t)return;t.assignedNodes().forEach((t=>this.processNodeRecursively(t)))};this.submitWithValidation=this.submitWithValidation.bind(this);this.defaultValidation=this.defaultValidation.bind(this);this.submit=this.submit.bind(this);this.onFormChange=this.onFormChange.bind(this)}connectField(t){if(t.__connectedToForm)return;t.setFormApi({api:this.api,registeredFields:this.registeredFields,customErrors:this.customErrors});t.__connectedToForm=true}async processNodeRecursively(t){if(t.nodeType!==Node.ELEMENT_NODE){return}const i=t;if(i.localName.includes("-")){await customElements.whenDefined(i.localName)}if(i.matches("stencil-field")){this.connectField(i)}this.connectSubmitButtons(i);if(i.shadowRoot){for(const t of Array.from(i.shadowRoot.childNodes)){await this.processNodeRecursively(t)}}for(const t of Array.from(i.childNodes)){await this.processNodeRecursively(t)}}connectSubmitButtons(t){if(t.nodeType!==Node.ELEMENT_NODE){return}const i=t;if(i.matches('input[type="submit"], button[type="submit"]')){const t=i;if(!t.dataset.stencilFormConnected){t.dataset.stencilFormConnected="true";i.addEventListener("click",(t=>{t.preventDefault();this.submit(t)}))}}const e=i.querySelectorAll('input[type="submit"], button[type="submit"]');e.forEach((t=>{const i=t;if(!i.dataset.stencilFormConnected){i.dataset.stencilFormConnected="true";t.addEventListener("click",(t=>{t.preventDefault();this.submit(t)}))}}))}componentWillLoad(){this.api=p({onSubmit:this.submitWithValidation,initialValues:this.initialValues,validate:this.defaultValidation,validateOnBlur:this.validateOnBlur});if(this.handleChange){this.api.subscribe(this.onFormChange,{values:true})}this.api.subscribe((t=>{const{dirtyFields:i}=t;const e=this.registeredFields;const o=Object.keys(i||{}).some((t=>{var o;return i[t]&&!((o=e[t])===null||o===void 0?void 0:o.ignoreDirty)}));this.dirtyChange.emit(o)}),{dirtyFields:true})}componentDidLoad(){const t=this.el.shadowRoot.querySelector("slot");this.observer=new MutationObserver((t=>{for(const i of t){i.addedNodes.forEach((t=>{this.processNodeRecursively(t)}))}}));const i=()=>{const i=(t===null||t===void 0?void 0:t.assignedNodes({flatten:true}))||[];i.forEach((t=>{if(t.nodeType===Node.ELEMENT_NODE){this.observer.observe(t,{childList:true,subtree:true});this.processNodeRecursively(t)}}))};if(t){i();t.addEventListener("slotchange",i)}this.observer.observe(this.el,{childList:true,subtree:true});this.el.dispatchEvent(new CustomEvent("stencilFormReady",{bubbles:true,composed:true}))}disconnectedCallback(){var t;this.api=null;this.registeredFields={};const i=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector("slot");if(i){i.removeEventListener("slotchange",this.handleSlotChange)}}onFormChange(t){if(this.handleChange&&t.values){this.handleChange(t.values)}}async submitWithValidation(t){const i=this.defaultValidation(t);if(Object.keys(i).length===0){this.handleSubmit(t)}else{this.stencilFormInvalidEvent.emit(i)}}defaultValidation(t){const{registeredFields:i,customErrors:e}=this;const o={};const s=(t,i)=>i.replace(/\[(\d+)\]/g,".$1").split(".").reduce(((t,i)=>t!=null?t[i]:undefined),t);Object.keys(i).forEach((e=>{const n=i[e];if(n===null||n===void 0?void 0:n.ignoreDirty)return;const a=s(t,e);if(n.required&&(a==null||typeof a==="string"&&a.trim()===""||a===false||a==="false")){o[e]="This field is required"}}));if(e){Object.keys(e).forEach((t=>{if(e[t]){o[t]=e[t]}}))}if(this===null||this===void 0?void 0:this.handleValidate){const i=this.handleValidate(t,o);return Object.assign(Object.assign({},o),i)}return o}async getApi(){if(!this.api){console.error("❌ Form API not initialized yet.");return null}return this.api}submit(t){var i;(i=t===null||t===void 0?void 0:t.preventDefault)===null||i===void 0?void 0:i.call(t);const e=this.api.getState().values;const o=this.defaultValidation(e);const s=()=>{var t;if(Object.keys(o).length){this.stencilFormInvalidEvent.emit(o);return}(t=this.api)===null||t===void 0?void 0:t.submit()};u(s,1e3,{leading:true,trailing:false})()}render(){return e("form",{key:"4ac60260d402ca51999311e2e9095643a548bf7b"},e("slot",{key:"f86bda6b8329db4a2e620ffa5cbe95ae5aded136"}))}get el(){return s(this)}};const j=":host{display:block;width:100%}.tally-container{display:flex;flex-direction:column;gap:var(--spacing-02, 8px)}.tally-label{font-weight:600;margin-bottom:var(--spacing-02, 8px)}.tally-loading{display:flex;align-items:center;justify-content:center;padding:var(--spacing-04, 16px);color:var(--text-secondary, #6b7280)}.tally-content{display:flex;flex-direction:column;gap:var(--spacing-03, 12px)}.tally-stats{display:flex;gap:var(--spacing-04, 16px);flex-wrap:wrap}.tally-item{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-03, 12px) var(--spacing-04, 16px);border-radius:var(--border-radius-01, 4px);border:1px solid var(--border-subtle, #e5e7eb);background-color:var(--layer-01, #ffffff);min-width:80px;flex:1;max-width:120px}.tally-item.tally-yes{border-color:var(--support-success, #42be65);background-color:var(--support-success-hover, #f6f8ff)}.tally-item.tally-no{border-color:var(--support-error, #da1e28);background-color:var(--support-error-hover, #fff1f1)}.tally-item.tally-unanswered{border-color:var(--support-warning, #f1c21b);background-color:var(--support-warning-hover, #fcf4d6)}.tally-count{font-weight:700;line-height:1.2;margin-bottom:var(--spacing-01, 4px)}.tally-yes .tally-count{color:var(--support-success, #42be65)}.tally-no .tally-count{color:var(--support-error, #da1e28)}.tally-unanswered .tally-count{color:var(--support-warning, #f1c21b)}.tally-item .tally-label{margin:0;font-weight:500;text-transform:uppercase;font-size:0.75rem;letter-spacing:0.02em}.tally-summary{padding:var(--spacing-02, 8px) 0;border-top:1px solid var(--border-subtle, #e5e7eb);text-align:center}.error-message{margin-top:var(--spacing-02, 8px);padding:var(--spacing-02, 8px);border-radius:var(--border-radius-01, 4px);background-color:var(--support-error-hover, #fff1f1);border:1px solid var(--support-error, #da1e28)}:host(.udp-input--size-small) .tally-item{padding:var(--spacing-02, 8px) var(--spacing-03, 12px);min-width:60px;max-width:90px}:host(.udp-input--size-small) .tally-count{font-size:1.25rem}:host(.udp-input--size-large) .tally-item{padding:var(--spacing-04, 16px) var(--spacing-05, 20px);min-width:100px;max-width:150px}:host(.udp-input--size-large) .tally-count{font-size:2rem}:host(.udp-input--margin-none) .tally-container{gap:0}:host(.udp-input--margin-dense) .tally-container{gap:var(--spacing-01, 4px)}:host(.udp-input--margin-comfortable) .tally-container{gap:var(--spacing-04, 16px)}:host(.udp-input--disabled) .tally-item{opacity:0.5;pointer-events:none}:host(.udp-input--readonly) .tally-item{background-color:var(--field-01, #f4f4f4)}@media (max-width: 480px){.tally-stats{flex-direction:column}.tally-item{max-width:none;flex:none}}";const O=class{constructor(i){t(this,i);this.label="Response Tally";this.yesCount=0;this.noCount=0;this.naCount=0;this.totalFields=0;this.disabled=false;this.readonly=false;this.size="normal";this.margin="normal"}render(){const t=!!this.error;const i=this.yesCount+this.noCount+this.naCount;const s=this.totalFields-i;return e(o,{key:"fed22627bce1ac7be18a2425bece6686869564d7",class:{"udp-input":true,"udp-input--error":t,"udp-input--disabled":this.disabled,"udp-input--readonly":this.readonly,[`udp-input--size-${this.size}`]:true,[`udp-input--margin-${this.margin}`]:true}},e("div",{key:"971333eebb659bbb4eb934bb9950032a7909da18",class:"tally-container"},this.label&&e("unity-typography",{key:"8444c7bcbcbe333f9e66026a5222ee29335e4de6",variant:"caption-text"},e("label",{key:"98c8daa86aa2d29c2d1c5b4a5004ce6819d83349",htmlFor:this.id,class:"tally-label"},this.label)),e("div",{key:"7b6a501d4ce95a2b27d3884e8c695e1faf06b2e8",class:"tally-content",id:this.id},e("div",{key:"68454bc99bd9c1ce4680df8f983eaf5ae4e9767e",class:"tally-stats"},e("div",{key:"e0e1b18c29dccb79043e00475b5bc30adc987d4e",class:"tally-item tally-yes"},e("unity-typography",{key:"18cc8a94d43cf31f6306b8de3d2f48d1396304a2",variant:"h4",class:"tally-count"},this.yesCount),e("unity-typography",{key:"d88c15dbf4bda174343aaa5bab8717d1c8cc0624",variant:"caption-text",class:"tally-label"},"Yes")),e("div",{key:"3f5108ae238eb07f67e5c6de82eb396ade8224f8",class:"tally-item tally-no"},e("unity-typography",{key:"371e592c1c36ecbb6dd03764f395c21f1d4d0be5",variant:"h4",class:"tally-count"},this.noCount),e("unity-typography",{key:"b808bcc32aa9c582046b368d1d13747d8e757b77",variant:"caption-text",class:"tally-label"},"No")),e("div",{key:"78f58c21c1c20d6054c0ef0a31dd56de06fb0431",class:"tally-item tally-na"},e("unity-typography",{key:"bbf95119a828762d96ba783b24e6d33f4d21084c",variant:"h4",class:"tally-count"},this.naCount),e("unity-typography",{key:"c34245acdfe54eab110e4d21d3397a0902087ccd",variant:"caption-text",class:"tally-label"},"Not Applicable")),s>0&&e("div",{key:"7e56aeb2896950a6a8ba2b414250628bc15f73d0",class:"tally-item tally-unanswered"},e("unity-typography",{key:"947f18fb83d02cb7544fc245aaad81ae188d5a98",variant:"h4",class:"tally-count"},s),e("unity-typography",{key:"fb740e38f0086757ead6285834183fcc183dc07f",variant:"caption-text",class:"tally-label"},"Unanswered"))),e("div",{key:"2c877a0a184fe0b51b75ed26073085c057ae6a40",class:"tally-summary"},e("unity-typography",{key:"8479096b7addcedab23446a67ed9a0795dc5c8fe",variant:"caption-text"},"Total Questions: ",this.totalFields))),t&&e("div",{key:"b686351f4926cc8bfbec445bf426ec3634c861a9",class:"error-message"},e("unity-typography",{key:"4363a3cb9ffd25fd03b0ca1c74ea01281a451dbd",variant:"caption-text",color:"error"},this.error))))}};O.style=j;async function F(t){let i=t;let e=null;while(i){const t=i.closest("stencil-form");if(t){e=t;break}const o=i.getRootNode();if(o instanceof ShadowRoot){i=o.host}else{break}}if(!e){return null}if(typeof e.getApi!=="function"){return null}const o=await e.getApi();if(!o){return null}return o}const q=".hidden{display:none}.question-container{border-top:1px solid rgba(0, 0, 0, 0.08);padding-top:1rem}.question-title-and-helper-container{display:flex;flex-direction:column;gap:var(--spacing-03)}.question-title-and-followup-container{display:flex;justify-content:space-between;align-items:center}";const $=class{constructor(e){t(this,e);this.launchFollowUpFormSideSheet=i(this,"launchFollowUpFormSideSheet");this.disabled=false;this.readonly=false;this.initialValues={};this.userId=null;this.isCommentAllowed=false;this.tallyData={yesCount:0,noCount:0,naCount:0,totalFields:0};this.formApi=null}propChanged(){this.updateFieldComponent()}async componentWillLoad(){this.updateFieldComponent();if(this.question.fieldTypeId===h.Tally){await this.initializeFormApiForTally()}}async initializeFormApiForTally(){try{this.formApi=await F(this.el);if(this.formApi){const t=this.formApi.subscribe((()=>{this.calculateTally()}),{active:true,dirty:true,values:true});this.unsubscribeFormApi=t;this.calculateTally()}}catch(t){console.error("Failed to initialize form API for tally:",t)}}calculateTally(){if(!this.formApi||this.question.fieldTypeId!==h.Tally){return}try{const t=this.formApi.getState().values;const i=this.el.closest("stencil-form");if(!i){return}const e=i.querySelectorAll("udp-question");const o=[];e.forEach((t=>{if(t.question&&t.question.fieldTypeId===h.YesNo){const i=`${t.question.questionIdentifierKey}.value`;if(i){const t=this.shouldIncludeFieldInTally(i);if(t){o.push(i)}}}}));let s=0;let n=0;let a=0;o.forEach((i=>{const[e,o]=i.split(".");const r=t[e][o].value;if(r==="true"||r===true){s++}else if(r==="false"||r===false){n++}else if(r==="na"){a++}}));this.tallyData={yesCount:s,noCount:n,naCount:a,totalFields:o.length};this.updateFieldComponent()}catch(t){console.error("Error calculating tally:",t)}}shouldIncludeFieldInTally(t){const i=this.question.fieldProperties;if((i===null||i===void 0?void 0:i.includeFields)&&i.includeFields.length>0){return i.includeFields.includes(t)}if((i===null||i===void 0?void 0:i.excludeFields)&&i.excludeFields.length>0){return!i.excludeFields.includes(t)}return true}updateFieldComponent(){this._fieldComponent=this.getFieldComponent()}getFieldComponent(){var t,i,o,s;const n={name:`${this.question.questionIdentifierKey}.value`,required:this.question.required};const a=Object.assign(Object.assign({},this.question.fieldProperties),{id:this.questionNumber,disabled:this.disabled,readonly:this.readonly});switch(this.question.fieldTypeId){case h.SingleLineText:return e("stencil-field",Object.assign({},n),e("text-field",Object.assign({},a)));case h.MultiLineText:return e("stencil-field",Object.assign({},n),e("text-area",Object.assign({fullWidth:true},a)));case h.Checkbox:return e("stencil-field",Object.assign({},n),e("selectable-list",Object.assign({valueKey:"value",displayKey:"display",multiSelect:true,useCheckbox:true},a)));case h.RadioButton:return e("stencil-field",Object.assign({},n),e("selectable-list",Object.assign({valueKey:"value",displayKey:"display",useCheckbox:true},a)));case h.DropdownSingleSelect:case h.DropdownMultipleSelect:let r=(i=(t=a===null||a===void 0?void 0:a.items)===null||t===void 0?void 0:t.map)===null||i===void 0?void 0:i.call(t,(t=>Object.assign({label:t.display,value:t.value},a)));return e("stencil-field",Object.assign({},n),e("udp-selector",Object.assign({options:r!==null&&r!==void 0?r:[],multiSelect:this.question.fieldTypeId===h.DropdownMultipleSelect},a)));case h.YesNo:return e("stencil-field",Object.assign({},n),e("selectable-list",Object.assign({valueKey:"value",displayKey:"display",useCheckbox:true,multiSelect:false,items:[{value:"true",display:"Yes"},{value:"false",display:"No"},{value:"na",display:"Not Applicable"}]},a)));case h.ListMultiSelect:return e("stencil-field",Object.assign({},n),e("selectable-list",Object.assign({valueKey:"value",displayKey:"display",multiSelect:true},a)));case h.DateSelector:return e("stencil-field",Object.assign({},n),e("udp-date-selector",Object.assign({min:a===null||a===void 0?void 0:a.minDate,max:a===null||a===void 0?void 0:a.maxDate},a)));case h.TimeSelector:return e("stencil-field",Object.assign({},n),e("udp-time-selector",Object.assign({min:a===null||a===void 0?void 0:a.minTime,max:a===null||a===void 0?void 0:a.maxTime},a)));case h.DateTimeSelector:return e("stencil-field",Object.assign({},n),e("udp-datetime-selector",Object.assign({max:a===null||a===void 0?void 0:a.maxDateTime,min:a===null||a===void 0?void 0:a.minDateTime},a)));case h.FileUpload:return e("stencil-field",Object.assign({},n),e("file-upload",Object.assign({fullWidth:true,allowMultiple:false},a)));case h.ImageUpload:return e("stencil-field",Object.assign({},n),e("image-upload",Object.assign({fullWidth:true},a)));case h.Signature:return e("div",null,e("stencil-field",Object.assign({},n,{fieldIdentifierKey:`${this.question.questionIdentifierKey}`,registerMetadata:true,metadataFieldNames:["signature.latitude","signature.longitude","signature.timestamp"]}),e("signature-input",Object.assign({},a,{value:this.value}))),e("stencil-field",{required:this.question.required,name:`${this.question.questionIdentifierKey}.metadata.signature.fullName`},e("text-field",Object.assign({},a,{label:"Full Name"}))));case h.Paragraph:return e("stencil-field",{name:this.question.name,required:false},e("input",{type:"hidden",name:this.question.name,value:this.value||""}),this.value?e("unity-typography",{id:`paragraphText${this.question.name}`,variant:((s=(o=this.styleOverrides)===null||o===void 0?void 0:o.paragraphText)===null||s===void 0?void 0:s.variant)||"body"},this.value):e("div",null));case h.Number:return e("stencil-field",Object.assign({},n),e("numeric-field",Object.assign({},a)));case h.Tally:return e("tally-display",Object.assign({id:this.questionNumber,label:this.question.questionText||"Response Tally",yesCount:this.tallyData.yesCount,noCount:this.tallyData.noCount,naCount:this.tallyData.naCount,totalFields:this.tallyData.totalFields},a,{required:false}));case h.Hidden:default:return e("div",null)}}async componentDidLoad(){var t,i,e,o;if(this.question.fieldTypeId===h.Tally&&!this.formApi){await this.initializeFormApiForTally()}const s=[];for(const n in this.styleOverrides){s.push({id:n+this.question.name,fontOverride:(i=(t=this.styleOverrides)===null||t===void 0?void 0:t[n])===null||i===void 0?void 0:i.fontFamily,variant:(o=(e=this.styleOverrides)===null||e===void 0?void 0:e[n])===null||o===void 0?void 0:o.variant})}s.forEach((t=>{var i,e,o;if(!b[t===null||t===void 0?void 0:t.fontOverride]||!this.el||!this.el.shadowRoot)return;f((o=(e=(i=this.el)===null||i===void 0?void 0:i.shadowRoot)===null||e===void 0?void 0:e.getElementById)===null||o===void 0?void 0:o.call(e,t.id),b[t===null||t===void 0?void 0:t.fontOverride])}))}render(){var t,i,o,s;const n=this._fieldComponent;const a=`${this.question.fieldTypeId===h.Paragraph?"":`${this.questionNumber}.`} ${this.question.questionText} ${this.question.required&&this.question.fieldTypeId!==h.Paragraph?"*":""}`;const r=`${this.question.questionIdentifierKey}.value`;const[l,c]=r.split(".");if(!n)return null;return e("div",{class:{hidden:this.question.fieldTypeId===h.Hidden,"question-container":true}},e("div",{class:"question-title-and-helper-container"},e("div",{class:"question-title-and-followup-container"},this.question.questionText&&e("unity-typography",{id:`questionText${this.question.name}`,variant:((i=(t=this.styleOverrides)===null||t===void 0?void 0:t.questionText)===null||i===void 0?void 0:i.variant)||"h3"},a),e("div",null,this.question.fieldProperties.allowFollowUpForms&&(()=>{var t;const i=(t=this.initialValues[l][c])===null||t===void 0?void 0:t.metadata;const o=i===null||i===void 0?void 0:i.followUpFormSubmissionId;if(o){const t=`/page/${m.FormRendererPageId}?udpf_submissionId=${o}`;return e("stencil-icon-button",{icon:y("link"),tooltip:"Open Follow-Up Form",onClick:()=>window.open(t,"_blank")})}if(!this.readonly){return e("stencil-icon-button",{icon:y("document"),tooltip:"Create Follow-Up Form",onClick:()=>{console.log("clicked create follow up form");this.launchFollowUpFormSideSheet.emit({sectionKey:l,questionKey:c})}})}})())),this.question.helperText&&e("unity-typography",{id:`helperText${this.question.name}`,variant:((s=(o=this.styleOverrides)===null||o===void 0?void 0:o.helperText)===null||s===void 0?void 0:s.variant)||"caption-text"},this.question.helperText)),n,this.question.fieldProperties.allowFollowUpForms&&e("div",null,e("stencil-field",{hidden:true,name:`${this.question.questionIdentifierKey}.metadata.followUpParentFormId`},e("text-field",null)),e("stencil-field",{hidden:true,name:`${this.question.questionIdentifierKey}.metadata.followUpParentFormVersion`},e("text-field",null)),e("stencil-field",{hidden:true,name:`${this.question.questionIdentifierKey}.metadata.followUpParentFormSubmissionId`},e("text-field",null))),this.isCommentAllowed&&e("udp-question-comment",{question:this.question,readonly:this.readonly,initialValues:this.initialValues,userId:this.userId}))}get el(){return s(this)}static get watchers(){return{question:["propChanged"],questionNumber:["propChanged"],value:["propChanged"],disabled:["propChanged"],readonly:["propChanged"],styleOverrides:["propChanged"]}}};$.style=q;const I=".question-comment-add-comment-button{display:flex;justify-content:center;margin:var(--spacing-03) 0}.question-comment-action-container{display:flex;justify-content:end}.question-comment-display{position:relative;display:flex;flex-direction:column;gap:var(--spacing-03);margin:var(--spacing-05) 0;border:1px solid var(--border-color, #ccc);border-radius:6px;padding:var(--spacing-05) var(--spacing-04)}.question-comment-display>.question-comment-header{position:absolute;bottom:-0.6em;right:1em;background:white;padding:0 0.4em;font-size:0.85em}";const S=class{constructor(e){t(this,e);this.questionCommentAction=i(this,"questionCommentAction");this.readonly=false;this.commentFieldProps={};this.initialValues={};this.userId=null;this.isContainsSavedComment=false;this.isContainsDraftComment=false;this.isCommentOwner=false}emitQuestionCommentAction(t){this.questionCommentAction.emit({type:t,key:this.question.questionIdentifierKey})}handleCommentAdd(){this.emitQuestionCommentAction("add")}handleCommentSave(){this.emitQuestionCommentAction("save")}handleCommentEdit(){this.emitQuestionCommentAction("edit")}handleCommentDelete(){this.emitQuestionCommentAction("delete")}componentWillRender(){var t;const i=this.question.questionIdentifierKey;const[e,o]=i.split(".");const s=this.initialValues[e][o];s.draftComment?this.isContainsDraftComment=true:this.isContainsDraftComment=false;s.comments.length>0?this.isContainsSavedComment=true:this.isContainsSavedComment=false;((t=s.comments[0])===null||t===void 0?void 0:t.userId)==this.userId?this.isCommentOwner=true:this.isCommentOwner=false}render(){const t=`${this.question.questionIdentifierKey}.comments[0].value`;const i=`${this.question.questionIdentifierKey}.draftComment.value`;const[o,s]=this.question.questionIdentifierKey.split(".");const n=this.initialValues[o][s].comments[0]||null;if(this.isContainsSavedComment&&!this.isCommentOwner){return e("div",{class:"question-comment-display"},e("unity-typography",{variant:"h4",color:"inherit",class:"question-comment-header"},`Comment by: ${n===null||n===void 0?void 0:n.userDisplayName} ${(n===null||n===void 0?void 0:n.timestamp)?`on ${v(n.timestamp)}`:""}`),e("unity-typography",{variant:"body",color:"inherit"},n===null||n===void 0?void 0:n.value))}if(this.isContainsDraftComment){return e("div",{class:"question-comment-draft-container"},e("stencil-field",{name:i,required:true,ignoreDirty:true},e("text-area",Object.assign({},this.commentFieldProps,{label:"Comment:",placeholder:"Add a comment"}))),e("div",{class:"question-comment-action-container"},e("udp-button",{variant:"text",onClick:()=>{this.handleCommentDelete()},startIcon:e("udp-icon",{iconName:"trashCan",color:"inherit"})},"Delete"),e("udp-button",{variant:"text",onClick:()=>{this.handleCommentSave()},startIcon:e("udp-icon",{iconName:"save",color:"inherit"})},"Save")))}if(this.isContainsSavedComment){return e("div",{class:"question-comment-input-container"},e("div",null,e("stencil-field",{name:t,style:{display:"none"}},e("text-area",{disabled:true})),e("div",{class:"question-comment-display"},e("unity-typography",{variant:"h4",color:"inherit",class:"question-comment-header"},`Comment by: ${n===null||n===void 0?void 0:n.userDisplayName} ${(n===null||n===void 0?void 0:n.timestamp)?`on ${v(n.timestamp)}`:""}`),e("unity-typography",{variant:"body",color:"inherit"},`${n===null||n===void 0?void 0:n.value}`)),e("div",{class:"question-comment-action-container"},e("udp-button",{variant:"text",onClick:()=>{this.handleCommentEdit()},startIcon:e("udp-icon",{iconName:"edit",color:"inherit"})},"Edit"))))}return e("div",{class:"question-comment-add-comment-button"},e("udp-button",{variant:"text",onClick:()=>{this.handleCommentAdd()},startIcon:e("udp-icon",{iconName:"add",color:"inherit"})},"Add a Comment"))}};S.style=I;const A=".floating-save-button{position:fixed;top:5rem;right:2rem;z-index:1000;animation:slideInDown 0.3s ease-out}.inline-save-button{position:relative;display:inline-flex;align-items:center;margin-left:auto;}.floating-save-button.saving,.inline-save-button.saving{pointer-events:none}.saving-state{display:flex;align-items:center;gap:0.5rem;padding:0.75rem 1rem;background:rgba(0, 0, 0, 0.8);color:white;border-radius:8px;font-size:0.9rem}.saved-state{display:flex;align-items:center;gap:0.5rem;padding:0.75rem 1rem;background:rgba(34, 139, 34, 0.9);color:white;border-radius:8px;font-size:0.9rem;animation:fadeIn 0.3s ease-out}.inline-save-button .saving-state{padding:0.5rem 0.75rem;background:rgba(0, 0, 0, 0.6);font-size:0.8rem}.inline-save-button .saved-state{padding:0.5rem 0.75rem;background:rgba(34, 139, 34, 0.8);font-size:0.8rem}.save-error-tooltip{position:absolute;top:100%;right:0;margin-top:0.5rem;background:#dc3545;color:white;padding:0.5rem 1rem;border-radius:8px;font-size:0.8rem;white-space:nowrap;box-shadow:0 4px 12px rgba(220, 53, 69, 0.3);animation:fadeIn 0.3s ease-out;z-index:1001}.save-error-tooltip::after{content:'';position:absolute;bottom:100%;right:1rem;border:6px solid transparent;border-bottom-color:#dc3545}.inline-save-button .save-error-tooltip{top:100%;bottom:auto;margin-top:0.5rem;margin-bottom:0}.inline-save-button .save-error-tooltip::after{top:-6px;border-top-color:transparent;border-bottom-color:#dc3545}@keyframes slideInDown{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@media (max-width: 768px){.floating-save-button{bottom:1rem;right:1rem;top:auto;}.saving-state{padding:0.6rem 0.8rem;font-size:0.8rem}.inline-save-button .saving-state{padding:0.4rem 0.6rem;font-size:0.75rem}}.primary-icon{--icon-color:var(--primary-color, #1976d2)}.primary-icon::part(icon){fill:var(--icon-color) !important}.primary-icon udp-icon-button::part(icon),.primary-icon .icon{fill:var(--primary-color, #1976d2) !important}@media (prefers-reduced-motion: reduce){.floating-save-button,.save-error-tooltip{animation:none}}";const T=class{constructor(i){t(this,i);this.isVisible=false;this.isSaving=false;this.saveErrorMessage=null;this.showSavedMessage=false;this.shouldBeInline=false;this.formApi=null;this.handleSaveClick=async()=>{if(!this.formApi||this.isSaving){return}if(typeof this.handleSave!=="function"){return}const t=this.formApi.getState().values;try{await this.handleSave(t);this.formApi.reset(t)}catch(t){console.error("The onSave handler threw an error. The form will remain dirty.",t)}}}async componentDidLoad(){this.formApi=await F(this.el);this.checkForOverlap();this.setupOverlapDetection()}disconnectedCallback(){if(this.resizeObserver){this.resizeObserver.disconnect()}if(this.checkOverlapTimeoutId){clearTimeout(this.checkOverlapTimeoutId)}}handleWindowResize(){this.debouncedOverlapCheck()}setupOverlapDetection(){if(typeof ResizeObserver!=="undefined"){this.resizeObserver=new ResizeObserver((()=>{this.debouncedOverlapCheck()}));const t=this.el.closest("udp-forms-ui, .form-container, udp-container");if(t){this.resizeObserver.observe(t)}const i=document.querySelector('main, [role="main"]')||document.body;if(i){this.resizeObserver.observe(i)}}}debouncedOverlapCheck(){if(this.checkOverlapTimeoutId){clearTimeout(this.checkOverlapTimeoutId)}this.checkOverlapTimeoutId=setTimeout((()=>{this.checkForOverlap()}),100)}checkForOverlap(){const t=1280;this.shouldBeInline=window.innerWidth<t}render(){if(!this.isVisible&&!this.showSavedMessage){return null}const t=this.shouldBeInline?"inline-save-button":"floating-save-button";const i=this.shouldBeInline;return e("div",{class:`${t} ${this.isSaving?"saving":""} ${this.showSavedMessage?"saved":""}`},this.isSaving?e("div",{class:"saving-state"},e("unity-spinner",{size:"small"}),!i&&e("span",null,"Saving...")):this.isVisible?e("udp-icon-button",{icon:g,onClick:this.handleSaveClick,tooltip:"Save Changes",variant:"contained",color:i?"inherit":"primary",iconColor:i?"primary":null,size:i?"small":"medium"},i?"":"Save Changes"):e("div",{class:"saved-state"},e("span",null,"Saved")),this.saveErrorMessage&&e("div",{class:"save-error-tooltip"},this.saveErrorMessage))}get el(){return s(this)}};T.style=A;export{w as image_upload,z as signature_input,C as stencil_form,O as tally_display,$ as udp_question,S as udp_question_comment,T as udp_save_draft_button};
|
|
1
|
+
import{r as t,c as i,h as e,H as o,a as s}from"./index-CaZq3YdB.js";import{i as n,p as a,d as r,a as l,c,b as d}from"./udp-drive-utils-CIrjVGiJ.js";import{createForm as p}from"final-form";import u from"lodash.debounce";import{b as h,U as m}from"./enums-BnKmfKJT.js";import{f as b,o as f,d as v}from"./utils-FDX6DxFp.js";import{g as y}from"./iconUtils-DcPvHO4A.js";import g from"@carbon/icons/es/save/20";import"axios";import"./configService-BqLfkVKh.js";import"./iconMapping-CPerGeNF.js";import"@carbon/icons/es/add/16";import"@carbon/icons/es/add/32";import"@carbon/icons/es/add--alt/16";import"@carbon/icons/es/add--filled/16";import"@carbon/icons/es/arrows--horizontal/16";import"@carbon/icons/es/attachment/16";import"@carbon/icons/es/batch-job/16";import"@carbon/icons/es/box/16";import"@carbon/icons/es/close/16";import"@carbon/icons/es/close/24";import"@carbon/icons/es/close/32";import"@carbon/icons/es/close--filled/16";import"@carbon/icons/es/close--outline/16";import"@carbon/icons/es/checkmark/16";import"@carbon/icons/es/checkmark/24";import"@carbon/icons/es/checkmark/32";import"@carbon/icons/es/chevron--left/16";import"@carbon/icons/es/chevron--right/16";import"@carbon/icons/es/chevron--down/16";import"@carbon/icons/es/data-enrichment/16";import"@carbon/icons/es/document/16";import"@carbon/icons/es/document--add/16";import"@carbon/icons/es/document--attachment/16";import"@carbon/icons/es/document--pdf/16";import"@carbon/icons/es/document--video/16";import"@carbon/icons/es/document--audio/16";import"@carbon/icons/es/draggable/16";import"@carbon/icons/es/edit/16";import"@carbon/icons/es/export/16";import"@carbon/icons/es/flag/16";import"@carbon/icons/es/information/16";import"@carbon/icons/es/information/32";import"@carbon/icons/es/link/16";import"@carbon/icons/es/overflow-menu--vertical/16";import"@carbon/icons/es/overflow-menu--vertical/32";import"@carbon/icons/es/return/16";import"@carbon/icons/es/save/16";import"@carbon/icons/es/settings/16";import"@carbon/icons/es/subtract/16";import"@carbon/icons/es/subtract--alt/16";import"@carbon/icons/es/subtract--filled/16";import"@carbon/icons/es/trash-can/16";import"@carbon/icons/es/user/16";import"@carbon/icons/es/view/16";import"@carbon/icons/es/warning/16";import"@carbon/icons/es/warning/32";import"@carbon/icons/es/warning--alt/16";import"@carbon/icons/es/warning--alt/32";import"@carbon/icons/es/product/16";import"@carbon/icons/es/workspace/16";import"@carbon/icons/es/arrow--up/16";import"@carbon/icons/es/arrow--down/16";import"@carbon/icons/es/arrow--right/16";import"@carbon/icons/es/arrow--left/16";import"@carbon/icons/es/copy/16";import"@carbon/icons/es/star/16";import"@carbon/icons/es/data-table/16";import"@carbon/icons/es/fit-to-width/16";import"@carbon/icons/es/search--advanced/16";import"@carbon/icons/es/reset/16";import"@carbon/icons/es/column/16";import"@carbon/icons/es/column--delete/16";import"@carbon/icons/es/watson-health/rotate--360/16";import"@carbon/icons/es/filter/16";import"@carbon/icons/es/app-connectivity/16";import"@carbon/icons/es/text--font/16";import"@carbon/icons/es/text--long-paragraph/16";import"@carbon/icons/es/character--whole-number/16";import"@carbon/icons/es/checkbox--checked/16";import"@carbon/icons/es/radio-button--checked/16";import"@carbon/icons/es/event--schedule/16";import"@carbon/icons/es/view--off/16";import"@carbon/icons/es/time/16";import"@carbon/icons/es/calendar/16";import"@carbon/icons/es/list--checked/16";import"@carbon/icons/es/list--bulleted/16";import"@carbon/icons/es/cloud--upload/16";import"@carbon/icons/es/locked/16";import"@carbon/icons/es/pause/16";import"@carbon/icons/es/unlocked/16";import"@carbon/icons/es/send/16";import"@carbon/icons/es/email/16";import"@carbon/icons/es/checkmark--outline/16";import"@carbon/icons/es/migrate--alt/16";import"@carbon/icons/es/checkbox--checked--filled/16";import"@carbon/icons/es/checkbox/16";import"@carbon/icons/es/ZIP/16";import"@carbon/icons/es/image/16";import"@carbon/icons/es/PPT/16";import"@carbon/icons/es/XLS/16";const x=":host{display:block}";const w=class{constructor(e){t(this,e);this.change=i(this,"change");this.allowedMimeTypes=["image/jpeg","image/png","image/gif","image/svg+xml","image/webp"];this.fullWidth=false;this.dragAndDropMessage="Drag and drop your images here";this.browseFileMessage="Browse Images";this.hideDragAndDrop=false;this.hideButton=false;this.disabled=false;this.readonly=false;this.handleFileChange=t=>{t.stopPropagation();this.change.emit(t.detail)}}render(){return e(o,{key:"f98115378f75b830773ebcf21bd4c8870ed2dd08"},e("file-upload",{key:"93830c15661df2a2a24096d1f89bec7d4caabbb5",allowMultiple:false,allowedMimeTypes:this.allowedMimeTypes,fullWidth:this.fullWidth,required:this.required,error:this.error,dragAndDropMessage:this.dragAndDropMessage,browseFileMessage:this.browseFileMessage,hideDragAndDrop:this.hideDragAndDrop,hideButton:this.hideButton,id:this.id,name:this.name,label:this.label,disabled:this.disabled,readonly:this.readonly,initialValue:this.initialValue,renderImage:true,onChange:this.handleFileChange}))}};w.style=x;const k=':host(.udp-input){display:block;box-sizing:border-box;position:relative}:host(.udp-input--full-width){width:100%}:host(.udp-input--error){--input-border-color:var(--input-underline-color-error)}:host(.udp-input--disabled){pointer-events:none;opacity:0.5;cursor:not-allowed}:host(.udp-input--required){position:relative}:host(.udp-input--readonly){--input-background:var(--gray-02)}:host(.udp-input--hidden){display:none}:host(.udp-input--checked){--input-accent-color:var(--primary-color)}:host(.udp-input--multi-select){--list-max-height:200px}:host(.udp-input) .bx--text-input:focus{outline:none;}:host(.udp-input) .bx--form-item{margin-bottom:var(--spacing-05)}:host(.udp-input) .bx--label{display:block;margin-bottom:var(--spacing-03);color:var(--text-main);font-size:var(--caption-text-font-size);font-weight:var(--caption-text-font-weight);line-height:var(--caption-text-line-height)}@media (max-width: var(--breakpoint-xs-max)){:host(.udp-input){margin-bottom:var(--spacing-04)}:host(.udp-input) .bx--form-item{margin-bottom:var(--spacing-04)}}@media (min-width: var(--breakpoint-sm-min)){:host(.udp-input){min-height:2.5rem;}}:host(.udp-input--size-small) .bx--text-input,:host(.udp-input--size-small) textarea,:host(.udp-input--size-small) input[type="text"],:host(.udp-input--size-small) input[type="number"],:host(.udp-input--size-small) input[type="email"],:host(.udp-input--size-small) input[type="password"],:host(.udp-input--size-small) input[type="tel"],:host(.udp-input--size-small) input[type="url"],:host(.udp-input--size-small) input[type="search"]{padding:var(--spacing-02);padding-bottom:6px;font-size:var(--caption-font-size, 0.875rem)}:host(.udp-input--size-normal) .bx--text-input,:host(.udp-input--size-normal) textarea,:host(.udp-input--size-normal) input[type="text"],:host(.udp-input--size-normal) input[type="number"],:host(.udp-input--size-normal) input[type="email"],:host(.udp-input--size-normal) input[type="password"],:host(.udp-input--size-normal) input[type="tel"],:host(.udp-input--size-normal) input[type="url"],:host(.udp-input--size-normal) input[type="search"]{padding:var(--spacing-03);padding-bottom:9px;font-size:var(--body-font-size)}:host(.udp-input--size-large) .bx--text-input,:host(.udp-input--size-large) textarea,:host(.udp-input--size-large) input[type="text"],:host(.udp-input--size-large) input[type="number"],:host(.udp-input--size-large) input[type="email"],:host(.udp-input--size-large) input[type="password"],:host(.udp-input--size-large) input[type="tel"],:host(.udp-input--size-large) input[type="url"],:host(.udp-input--size-large) input[type="search"]{padding:var(--spacing-04);padding-bottom:12px;font-size:var(--body-font-size)}:host(.udp-input--margin-none){margin:0}:host(.udp-input--margin-dense){margin:var(--spacing-02) 0}:host(.udp-input--margin-normal){margin:var(--spacing-03) 0}:host(.udp-input--margin-comfortable){margin:var(--spacing-04) 0}:host(.udp-input--size-small) .bx--label{margin-bottom:var(--spacing-02);font-size:var(--caption-font-size, 0.875rem)}:host(.udp-input--size-normal) .bx--label{margin-bottom:var(--spacing-03);font-size:var(--body-font-size)}:host(.udp-input--size-large) .bx--label{margin-bottom:var(--spacing-04);font-size:var(--body-font-size)}.bx--text-input,textarea,input[type="text"],input[type="number"],input[type="email"],input[type="password"],input[type="tel"],input[type="url"],input[type="search"]{display:inline-block;padding:var(--spacing-03);padding-bottom:9px;box-sizing:border-box;border:none;font-size:var(--body-font-size);background:var(--input-background);border-bottom:var(--underline-standard) solid var(--input-underline-color, var(--gray-08));width:100%;font-family:var(--font-family);transition:border-bottom-color 0.15s ease-in-out}.bx--text-input:focus,textarea:focus,input[type="text"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="password"]:focus,input[type="tel"]:focus,input[type="url"]:focus,input[type="search"]:focus{border-bottom-color:var(--input-underline-color-focus, var(--primary-color));border-bottom-width:2px}.bx--text-input--error,.bx--text-input:user-invalid,:host(.udp-input--error) .bx--text-input,:host(.udp-input--error) textarea,:host(.udp-input--error) input[type="text"],:host(.udp-input--error) input[type="number"],:host(.udp-input--error) input[type="email"],:host(.udp-input--error) input[type="password"],:host(.udp-input--error) input[type="tel"],:host(.udp-input--error) input[type="url"],:host(.udp-input--error) input[type="search"],input[type="text"]:user-invalid,input[type="number"]:user-invalid,input[type="email"]:user-invalid,input[type="password"]:user-invalid,input[type="tel"]:user-invalid,input[type="url"]:user-invalid,input[type="search"]:user-invalid{border-bottom-color:var(--input-underline-color-error, var(--error-color-main)) !important}:host(.udp-input--disabled) .bx--text-input,:host(.udp-input--disabled) textarea,:host(.udp-input--disabled) input[type="text"],:host(.udp-input--disabled) input[type="number"],:host(.udp-input--disabled) input[type="email"],:host(.udp-input--disabled) input[type="password"],:host(.udp-input--disabled) input[type="tel"],:host(.udp-input--disabled) input[type="url"],:host(.udp-input--disabled) input[type="search"]{border-bottom-color:var(--input-underline-color-disabled, var(--gray-08))}textarea.bx--text-input{resize:vertical;min-height:var(--spacing-08)}.bx--text-input::placeholder,textarea::placeholder,input[type="text"]::placeholder,input[type="number"]::placeholder,input[type="email"]::placeholder,input[type="password"]::placeholder,input[type="tel"]::placeholder,input[type="url"]::placeholder,input[type="search"]::placeholder{color:var(--placeholder-color, #999);opacity:1}:host(.udp-input),:host{display:block;width:100%;box-sizing:border-box}.bx--form-item{margin-bottom:var(--spacing-05)}.bx--label{display:block;margin-bottom:var(--spacing-03)}.error-message,.bx--form-requirement,:host(.udp-input--error) .error-message,:host(.udp-input--error) .bx--form-requirement{color:var(--error-color-main, #d32f2f) !important;margin-top:var(--spacing-02);font-size:var(--caption-font-size, 0.875rem);--unity-typography-inherit-color:var(--error-color-main, #d32f2f)}.helper-text{color:var(--text-02, #525252);margin-top:var(--spacing-02);font-size:var(--caption-font-size, 0.875rem)}:host(.udp-input--disabled) .bx--text-input,:host(.udp-input--disabled) textarea,:host(.udp-input--disabled) input,:host(.udp-input--disabled){cursor:not-allowed;opacity:0.6}:host(.udp-input--readonly) .bx--text-input,:host(.udp-input--readonly) textarea,:host(.udp-input--readonly) input{background-color:var(--field-01, #f4f4f4);cursor:default}:host(.udp-input--size-small) .signature-canvas{height:150px}:host(.udp-input--size-normal) .signature-canvas{height:200px}:host(.udp-input--size-large) .signature-canvas{height:250px}:host(.udp-input--size-small) .clear-button{padding:var(--spacing-01) var(--spacing-02);font-size:var(--caption-font-size, 0.875rem);top:var(--spacing-02);right:var(--spacing-02)}:host(.udp-input--size-normal) .clear-button{padding:var(--spacing-02) var(--spacing-03);font-size:var(--body-font-size);top:var(--spacing-02);right:var(--spacing-02)}:host(.udp-input--size-large) .clear-button{padding:var(--spacing-03) var(--spacing-04);font-size:var(--body-font-size);top:var(--spacing-03);right:var(--spacing-03)}.signature-pad-container{position:relative;border:1px solid var(--udp-mid-gray-color);border-radius:4px;background-color:var(--udp-light-gray-color)}.signature-canvas{display:block;width:100%;height:200px;}.signature-pad-container.readonly{background-color:var(--udp-disabled-gray-color)}.signature-canvas.readonly{cursor:not-allowed}.clear-button{position:absolute;top:var(--spacing-02);right:var(--spacing-02);background-color:var(--udp-light-gray-color);border:1px solid var(--udp-mid-gray-color);color:var(--udp-primary-color);cursor:pointer;border-radius:4px;padding:var(--spacing-02) var(--spacing-03);}.clear-button:hover{background-color:var(--udp-mid-gray-color)}.clear-button:disabled{cursor:not-allowed;opacity:0.5}';const z=class{constructor(e){t(this,e);this.change=i(this,"change");this.metadataEmit=i(this,"metadataEmit");this.includeLocation=false;this.disabled=false;this.readonly=false;this.size="normal";this.margin="normal";this.cachedLocation=null;this.handleResize=()=>{if(this.resizeTimeout)clearTimeout(this.resizeTimeout);this.resizeTimeout=setTimeout((()=>{const t=this.canvasEl.getBoundingClientRect();if(!this.lastCanvasRect||t.width!==this.lastCanvasRect.width||t.height!==this.lastCanvasRect.height){let i=this.signaturePad&&!this.signaturePad.isEmpty()?this.signaturePad.toDataURL():null;this.resizeCanvasForDPR();this.initializeSignaturePad();this.lastCanvasRect=t;if(i&&this.signaturePad){this.signaturePad.fromDataURL(i)}}}),200)};this.handleSignatureEnd=async()=>{if(this.signaturePad.isEmpty()){this.value=null;this.change.emit(null);this.metadataEmit.emit({key:"signature.latitude",value:null});this.metadataEmit.emit({key:"signature.longitude",value:null});this.metadataEmit.emit({key:"signature.timestamp",value:null})}else{const t=this.signaturePad.toDataURL();const i=await this.urlToFile(t,"signature.png");this.value=i;this.change.emit(i);this.metadataEmit.emit({key:"signature.timestamp",value:(new Date).toISOString()});if(this.includeLocation){try{let t=this.cachedLocation;if(!t){t=await new Promise(((t,i)=>{navigator.geolocation.getCurrentPosition(t,i,{enableHighAccuracy:true,timeout:3e4,maximumAge:0})}))}if(t){this.metadataEmit.emit({key:"signature.latitude",value:t.coords.latitude});this.metadataEmit.emit({key:"signature.longitude",value:t.coords.longitude})}else{this.metadataEmit.emit({key:"signature.latitude",value:null});this.metadataEmit.emit({key:"signature.longitude",value:null})}}catch(t){console.warn("Geolocation error:",t);this.metadataEmit.emit({key:"signature.latitude",value:null});this.metadataEmit.emit({key:"signature.longitude",value:null})}}}};this.clearSignature=()=>{if(this.signaturePad){this.signaturePad.clear();this.handleSignatureEnd()}}}onErrorChange(t){this.internalError=t}async onValueChange(t){await this.loadSignaturePad();if(this.signaturePad){this.signaturePad.clear();if(t){this.loadSignature(t)}}}async onInitialValueChange(t){if(!t){return}try{const i=Array.isArray(t)?t[0]:t;if(!i)return;let e=null;if(typeof i==="string"&&n(i)){const t=await a(i);if(t){if(t.driveFileId){const i={name:t.name,driveFileId:t.driveFileId,extension:t.name.split(".").pop()||""};e=await r(i)}else{e=t}}}else if(l(i)){e=await r(i)}else if(typeof i==="string"){e=await c(i,"initial_signature.png")}else if(d(i)){e=i}if(e){this.value=e;this.resizeCanvasForDPR();this.initializeSignaturePad()}else{console.warn("Initial value could not be processed into a valid file:",i)}}catch(t){console.error("Failed to process initial value for signature pad:",t)}}async componentWillLoad(){this.internalError=this.error;await this.loadSignaturePad();if(this.includeLocation){navigator.geolocation.getCurrentPosition((t=>{this.cachedLocation=t}),(t=>{console.warn("Prewarm geolocation error:",t);this.cachedLocation=null}),{enableHighAccuracy:true,timeout:3e4,maximumAge:0})}}async componentDidLoad(){let t=this.initialValue;if(t){if(Array.isArray(t)){t=t[0]}if(l(this.initialValue)){console.log("Loading signature from UdpDriveFile:",this.initialValue);try{const t=await r(this.initialValue);this.value=t;this.readonly=false}catch(t){console.error("Failed to fetch UdpDriveFile for signature:",t);this.value=this.initialValue;this.readonly=true}}else{this.value=await this.urlToFile(this.initialValue,"initial_signature.png")}}this.resizeCanvasForDPR();this.initializeSignaturePad();this.lastCanvasRect=this.canvasEl.getBoundingClientRect();window.addEventListener("resize",this.handleResize)}disconnectedCallback(){window.removeEventListener("resize",this.handleResize);if(this.resizeTimeout)clearTimeout(this.resizeTimeout)}resizeCanvasForDPR(){if(!this.canvasEl)return;const t=window.devicePixelRatio||1;const i=this.canvasEl.getBoundingClientRect();this.canvasEl.width=i.width*t;this.canvasEl.height=i.height*t;this.canvasEl.getContext("2d").scale(t,t)}async loadSignaturePad(){if(!this.SignaturePadLib){try{const t=await import("signature_pad");this.SignaturePadLib=t.default}catch(t){console.error("Failed to load signature_pad library",t)}}}initializeSignaturePad(){this.resizeCanvasForDPR();if(this.SignaturePadLib&&this.canvasEl){this.signaturePad=new this.SignaturePadLib(this.canvasEl);this.signaturePad.addEventListener("endStroke",this.handleSignatureEnd);this.handleStateChange();if(this.value){this.loadSignature(this.value)}}}handleStateChange(){if(this.signaturePad){if(this.disabled||this.readonly){this.signaturePad.off()}else{this.signaturePad.on()}}}async loadSignature(t){let i;if(typeof t==="string"){i=t}else if(l(t)){try{const e=await r(t);i=URL.createObjectURL(e)}catch(t){console.error("Error loading signature image from UdpDriveFile:",t);return}}else if(t instanceof File){i=URL.createObjectURL(t)}if(i&&this.signaturePad){this.signaturePad.fromDataURL(i,{ratio:window.devicePixelRatio,width:this.canvasEl.width,height:this.canvasEl.height})}}async urlToFile(t,i){const e=await fetch(t);const o=await e.blob();return new File([o],i,{type:o.type})}render(){const t=!!this.internalError;const i={"signature-pad-container":true,readonly:this.readonly,disabled:this.disabled};return e(o,{key:"25389b86aa91a9dde960f166e79ed2a300369f35",class:{"udp-input":true,"udp-input--error":t,"udp-input--disabled":this.disabled,"udp-input--required":this.required,"udp-input--readonly":this.readonly,[`udp-input--size-${this.size}`]:true,[`udp-input--margin-${this.margin}`]:true}},e("div",{key:"caf9a3202629bab33ce4557eed89f9c25f8b565e",class:"bx--form-item"},this.label&&e("unity-typography",{key:"7dab3efdac9b8609c93f7ac796eda94c8a4b40b7",variant:"caption-text"},e("label",{key:"bd67435665b625d5451699e2e8c93e0b9c6e3bb8",htmlFor:this.id,class:"bx--label"},this.label,this.required&&"*")),e("div",{key:"d40a68796973224950da2d142319d06471920f28",class:i},e("canvas",{key:"0a0ac328ede1d3e4f405f16637121717dfdeff00",ref:t=>this.canvasEl=t,class:{"signature-canvas":true,readonly:this.readonly||this.disabled},id:this.id}),!this.readonly&&!this.disabled&&e("button",{key:"b66c55a7dd3e72e5324bb360df03efc45c2fafff",type:"button",class:"clear-button",onClick:this.clearSignature,disabled:this.disabled},"Clear")),t&&e("div",{key:"4255c95f925627b0614f6831bb83a0f5d167f08d",class:"error-message"},e("unity-typography",{key:"a10683729cd351f2bea7e840562da9487602527a",variant:"caption-text",color:"error"},this.internalError))))}get el(){return s(this)}static get watchers(){return{error:["onErrorChange"],value:["onValueChange"],initialValue:["onInitialValueChange"],disabled:["handleStateChange"],readonly:["handleStateChange"]}}};z.style=k;const C=class{constructor(e){t(this,e);this.stencilFormInvalidEvent=i(this,"stencilFormInvalidEvent");this.dirtyChange=i(this,"dirtyChange");this.validateOnBlur=true;this.registeredFields={};this.customErrors={};this.handleSlotChange=()=>{const t=this.el.shadowRoot.querySelector("slot");if(!t)return;t.assignedNodes().forEach((t=>this.processNodeRecursively(t)))};this.submitWithValidation=this.submitWithValidation.bind(this);this.defaultValidation=this.defaultValidation.bind(this);this.submit=this.submit.bind(this);this.onFormChange=this.onFormChange.bind(this)}connectField(t){if(t.__connectedToForm)return;t.setFormApi({api:this.api,registeredFields:this.registeredFields,customErrors:this.customErrors});t.__connectedToForm=true}async processNodeRecursively(t){if(t.nodeType!==Node.ELEMENT_NODE){return}const i=t;if(i.localName.includes("-")){await customElements.whenDefined(i.localName)}if(i.matches("stencil-field")){this.connectField(i)}this.connectSubmitButtons(i);if(i.shadowRoot){for(const t of Array.from(i.shadowRoot.childNodes)){await this.processNodeRecursively(t)}}for(const t of Array.from(i.childNodes)){await this.processNodeRecursively(t)}}connectSubmitButtons(t){if(t.nodeType!==Node.ELEMENT_NODE){return}const i=t;if(i.matches('input[type="submit"], button[type="submit"]')){const t=i;if(!t.dataset.stencilFormConnected){t.dataset.stencilFormConnected="true";i.addEventListener("click",(t=>{t.preventDefault();this.submit(t)}))}}const e=i.querySelectorAll('input[type="submit"], button[type="submit"]');e.forEach((t=>{const i=t;if(!i.dataset.stencilFormConnected){i.dataset.stencilFormConnected="true";t.addEventListener("click",(t=>{t.preventDefault();this.submit(t)}))}}))}componentWillLoad(){this.api=p({onSubmit:this.submitWithValidation,initialValues:this.initialValues,validate:this.defaultValidation,validateOnBlur:this.validateOnBlur});if(this.handleChange){this.api.subscribe(this.onFormChange,{values:true})}this.api.subscribe((t=>{const{dirtyFields:i}=t;const e=this.registeredFields;const o=Object.keys(i||{}).some((t=>{var o;return i[t]&&!((o=e[t])===null||o===void 0?void 0:o.ignoreDirty)}));this.dirtyChange.emit(o)}),{dirtyFields:true})}componentDidLoad(){const t=this.el.shadowRoot.querySelector("slot");this.observer=new MutationObserver((t=>{for(const i of t){i.addedNodes.forEach((t=>{this.processNodeRecursively(t)}))}}));const i=()=>{const i=(t===null||t===void 0?void 0:t.assignedNodes({flatten:true}))||[];i.forEach((t=>{if(t.nodeType===Node.ELEMENT_NODE){this.observer.observe(t,{childList:true,subtree:true});this.processNodeRecursively(t)}}))};if(t){i();t.addEventListener("slotchange",i)}this.observer.observe(this.el,{childList:true,subtree:true});this.el.dispatchEvent(new CustomEvent("stencilFormReady",{bubbles:true,composed:true}))}disconnectedCallback(){var t;this.api=null;this.registeredFields={};const i=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector("slot");if(i){i.removeEventListener("slotchange",this.handleSlotChange)}}onFormChange(t){if(this.handleChange&&t.values){this.handleChange(t.values)}}async submitWithValidation(t){const i=this.defaultValidation(t);if(Object.keys(i).length===0){this.handleSubmit(t)}else{this.stencilFormInvalidEvent.emit(i)}}defaultValidation(t){const{registeredFields:i,customErrors:e}=this;const o={};const s=(t,i)=>i.replace(/\[(\d+)\]/g,".$1").split(".").reduce(((t,i)=>t!=null?t[i]:undefined),t);Object.keys(i).forEach((e=>{const n=i[e];if(n===null||n===void 0?void 0:n.ignoreDirty)return;const a=s(t,e);if(n.required&&(a==null||typeof a==="string"&&a.trim()===""||a===false||a==="false")){o[e]="This field is required"}}));if(e){Object.keys(e).forEach((t=>{if(e[t]){o[t]=e[t]}}))}if(this===null||this===void 0?void 0:this.handleValidate){const i=this.handleValidate(t,o);return Object.assign(Object.assign({},o),i)}return o}async getApi(){if(!this.api){console.error("❌ Form API not initialized yet.");return null}return this.api}submit(t){var i;(i=t===null||t===void 0?void 0:t.preventDefault)===null||i===void 0?void 0:i.call(t);const e=this.api.getState().values;const o=this.defaultValidation(e);const s=()=>{var t;if(Object.keys(o).length){this.stencilFormInvalidEvent.emit(o);return}(t=this.api)===null||t===void 0?void 0:t.submit()};u(s,1e3,{leading:true,trailing:false})()}render(){return e("form",{key:"4ac60260d402ca51999311e2e9095643a548bf7b"},e("slot",{key:"f86bda6b8329db4a2e620ffa5cbe95ae5aded136"}))}get el(){return s(this)}};const j=":host{display:block;width:100%}.tally-container{display:flex;flex-direction:column;gap:var(--spacing-02, 8px)}.tally-label{font-weight:600;margin-bottom:var(--spacing-02, 8px)}.tally-loading{display:flex;align-items:center;justify-content:center;padding:var(--spacing-04, 16px);color:var(--text-secondary, #6b7280)}.tally-content{display:flex;flex-direction:column;gap:var(--spacing-03, 12px)}.tally-stats{display:flex;gap:var(--spacing-04, 16px);flex-wrap:wrap}.tally-item{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-03, 12px) var(--spacing-04, 16px);border-radius:var(--border-radius-01, 4px);border:1px solid var(--border-subtle, #e5e7eb);background-color:var(--layer-01, #ffffff);min-width:80px;flex:1;max-width:120px}.tally-item.tally-yes{border-color:var(--support-success, #42be65);background-color:var(--support-success-hover, #f6f8ff)}.tally-item.tally-no{border-color:var(--support-error, #da1e28);background-color:var(--support-error-hover, #fff1f1)}.tally-item.tally-unanswered{border-color:var(--support-warning, #f1c21b);background-color:var(--support-warning-hover, #fcf4d6)}.tally-count{font-weight:700;line-height:1.2;margin-bottom:var(--spacing-01, 4px)}.tally-yes .tally-count{color:var(--support-success, #42be65)}.tally-no .tally-count{color:var(--support-error, #da1e28)}.tally-unanswered .tally-count{color:var(--support-warning, #f1c21b)}.tally-item .tally-label{margin:0;font-weight:500;text-transform:uppercase;font-size:0.75rem;letter-spacing:0.02em}.tally-summary{padding:var(--spacing-02, 8px) 0;border-top:1px solid var(--border-subtle, #e5e7eb);text-align:center}.error-message{margin-top:var(--spacing-02, 8px);padding:var(--spacing-02, 8px);border-radius:var(--border-radius-01, 4px);background-color:var(--support-error-hover, #fff1f1);border:1px solid var(--support-error, #da1e28)}:host(.udp-input--size-small) .tally-item{padding:var(--spacing-02, 8px) var(--spacing-03, 12px);min-width:60px;max-width:90px}:host(.udp-input--size-small) .tally-count{font-size:1.25rem}:host(.udp-input--size-large) .tally-item{padding:var(--spacing-04, 16px) var(--spacing-05, 20px);min-width:100px;max-width:150px}:host(.udp-input--size-large) .tally-count{font-size:2rem}:host(.udp-input--margin-none) .tally-container{gap:0}:host(.udp-input--margin-dense) .tally-container{gap:var(--spacing-01, 4px)}:host(.udp-input--margin-comfortable) .tally-container{gap:var(--spacing-04, 16px)}:host(.udp-input--disabled) .tally-item{opacity:0.5;pointer-events:none}:host(.udp-input--readonly) .tally-item{background-color:var(--field-01, #f4f4f4)}@media (max-width: 480px){.tally-stats{flex-direction:column}.tally-item{max-width:none;flex:none}}";const O=class{constructor(i){t(this,i);this.label="Response Tally";this.yesCount=0;this.noCount=0;this.naCount=0;this.totalFields=0;this.disabled=false;this.readonly=false;this.size="normal";this.margin="normal"}render(){const t=!!this.error;const i=this.yesCount+this.noCount+this.naCount;const s=this.totalFields-i;return e(o,{key:"fed22627bce1ac7be18a2425bece6686869564d7",class:{"udp-input":true,"udp-input--error":t,"udp-input--disabled":this.disabled,"udp-input--readonly":this.readonly,[`udp-input--size-${this.size}`]:true,[`udp-input--margin-${this.margin}`]:true}},e("div",{key:"971333eebb659bbb4eb934bb9950032a7909da18",class:"tally-container"},this.label&&e("unity-typography",{key:"8444c7bcbcbe333f9e66026a5222ee29335e4de6",variant:"caption-text"},e("label",{key:"98c8daa86aa2d29c2d1c5b4a5004ce6819d83349",htmlFor:this.id,class:"tally-label"},this.label)),e("div",{key:"7b6a501d4ce95a2b27d3884e8c695e1faf06b2e8",class:"tally-content",id:this.id},e("div",{key:"68454bc99bd9c1ce4680df8f983eaf5ae4e9767e",class:"tally-stats"},e("div",{key:"e0e1b18c29dccb79043e00475b5bc30adc987d4e",class:"tally-item tally-yes"},e("unity-typography",{key:"18cc8a94d43cf31f6306b8de3d2f48d1396304a2",variant:"h4",class:"tally-count"},this.yesCount),e("unity-typography",{key:"d88c15dbf4bda174343aaa5bab8717d1c8cc0624",variant:"caption-text",class:"tally-label"},"Yes")),e("div",{key:"3f5108ae238eb07f67e5c6de82eb396ade8224f8",class:"tally-item tally-no"},e("unity-typography",{key:"371e592c1c36ecbb6dd03764f395c21f1d4d0be5",variant:"h4",class:"tally-count"},this.noCount),e("unity-typography",{key:"b808bcc32aa9c582046b368d1d13747d8e757b77",variant:"caption-text",class:"tally-label"},"No")),e("div",{key:"78f58c21c1c20d6054c0ef0a31dd56de06fb0431",class:"tally-item tally-na"},e("unity-typography",{key:"bbf95119a828762d96ba783b24e6d33f4d21084c",variant:"h4",class:"tally-count"},this.naCount),e("unity-typography",{key:"c34245acdfe54eab110e4d21d3397a0902087ccd",variant:"caption-text",class:"tally-label"},"Not Applicable")),s>0&&e("div",{key:"7e56aeb2896950a6a8ba2b414250628bc15f73d0",class:"tally-item tally-unanswered"},e("unity-typography",{key:"947f18fb83d02cb7544fc245aaad81ae188d5a98",variant:"h4",class:"tally-count"},s),e("unity-typography",{key:"fb740e38f0086757ead6285834183fcc183dc07f",variant:"caption-text",class:"tally-label"},"Unanswered"))),e("div",{key:"2c877a0a184fe0b51b75ed26073085c057ae6a40",class:"tally-summary"},e("unity-typography",{key:"8479096b7addcedab23446a67ed9a0795dc5c8fe",variant:"caption-text"},"Total Questions: ",this.totalFields))),t&&e("div",{key:"b686351f4926cc8bfbec445bf426ec3634c861a9",class:"error-message"},e("unity-typography",{key:"4363a3cb9ffd25fd03b0ca1c74ea01281a451dbd",variant:"caption-text",color:"error"},this.error))))}};O.style=j;async function F(t){let i=t;let e=null;while(i){const t=i.closest("stencil-form");if(t){e=t;break}const o=i.getRootNode();if(o instanceof ShadowRoot){i=o.host}else{break}}if(!e){return null}if(typeof e.getApi!=="function"){return null}const o=await e.getApi();if(!o){return null}return o}const q=".hidden{display:none}.question-container{border-top:1px solid rgba(0, 0, 0, 0.08);padding-top:1rem}.question-title-and-helper-container{display:flex;flex-direction:column;gap:var(--spacing-03)}.question-title-and-followup-container{display:flex;justify-content:space-between;align-items:center}";const $=class{constructor(e){t(this,e);this.launchFollowUpFormSideSheet=i(this,"launchFollowUpFormSideSheet");this.disabled=false;this.readonly=false;this.initialValues={};this.userId=null;this.isCommentAllowed=false;this.tallyData={yesCount:0,noCount:0,naCount:0,totalFields:0};this.formApi=null}propChanged(){this.updateFieldComponent()}async componentWillLoad(){this.updateFieldComponent();if(this.question.fieldTypeId===h.Tally){await this.initializeFormApiForTally()}}async initializeFormApiForTally(){try{this.formApi=await F(this.el);if(this.formApi){const t=this.formApi.subscribe((()=>{this.calculateTally()}),{active:true,dirty:true,values:true});this.unsubscribeFormApi=t;this.calculateTally()}}catch(t){console.error("Failed to initialize form API for tally:",t)}}calculateTally(){if(!this.formApi||this.question.fieldTypeId!==h.Tally){return}try{const t=this.formApi.getState().values;const i=this.el.closest("stencil-form");if(!i){return}const e=i.querySelectorAll("udp-question");const o=[];e.forEach((t=>{if(t.question&&t.question.fieldTypeId===h.YesNo){const i=`${t.question.questionIdentifierKey}.value`;if(i){const t=this.shouldIncludeFieldInTally(i);if(t){o.push(i)}}}}));let s=0;let n=0;let a=0;o.forEach((i=>{const[e,o]=i.split(".");const r=t[e][o].value;if(r==="true"||r===true){s++}else if(r==="false"||r===false){n++}else if(r==="na"){a++}}));this.tallyData={yesCount:s,noCount:n,naCount:a,totalFields:o.length};this.updateFieldComponent()}catch(t){console.error("Error calculating tally:",t)}}shouldIncludeFieldInTally(t){const i=this.question.fieldProperties;if((i===null||i===void 0?void 0:i.includeFields)&&i.includeFields.length>0){return i.includeFields.includes(t)}if((i===null||i===void 0?void 0:i.excludeFields)&&i.excludeFields.length>0){return!i.excludeFields.includes(t)}return true}updateFieldComponent(){this._fieldComponent=this.getFieldComponent()}getFieldComponent(){var t,i,o,s;const n={name:`${this.question.questionIdentifierKey}.value`,required:this.question.required};const a=Object.assign(Object.assign({},this.question.fieldProperties),{id:this.questionNumber,disabled:this.disabled,readonly:this.readonly});switch(this.question.fieldTypeId){case h.SingleLineText:return e("stencil-field",Object.assign({},n),e("text-field",Object.assign({},a)));case h.MultiLineText:return e("stencil-field",Object.assign({},n),e("text-area",Object.assign({fullWidth:true},a)));case h.Checkbox:return e("stencil-field",Object.assign({},n),e("selectable-list",Object.assign({valueKey:"value",displayKey:"display",multiSelect:true,useCheckbox:true},a)));case h.RadioButton:return e("stencil-field",Object.assign({},n),e("selectable-list",Object.assign({valueKey:"value",displayKey:"display",useCheckbox:true},a)));case h.DropdownSingleSelect:case h.DropdownMultipleSelect:let r=(i=(t=a===null||a===void 0?void 0:a.items)===null||t===void 0?void 0:t.map)===null||i===void 0?void 0:i.call(t,(t=>Object.assign({label:t.display,value:t.value},a)));return e("stencil-field",Object.assign({},n),e("udp-selector",Object.assign({options:r!==null&&r!==void 0?r:[],multiSelect:this.question.fieldTypeId===h.DropdownMultipleSelect},a)));case h.YesNo:return e("stencil-field",Object.assign({},n),e("selectable-list",Object.assign({valueKey:"value",displayKey:"display",useCheckbox:true,multiSelect:false,items:[{value:"true",display:"Yes"},{value:"false",display:"No"},{value:"na",display:"Not Applicable"}]},a)));case h.ListMultiSelect:return e("stencil-field",Object.assign({},n),e("selectable-list",Object.assign({valueKey:"value",displayKey:"display",multiSelect:true},a)));case h.DateSelector:return e("stencil-field",Object.assign({},n),e("udp-date-selector",Object.assign({min:a===null||a===void 0?void 0:a.minDate,max:a===null||a===void 0?void 0:a.maxDate},a)));case h.TimeSelector:return e("stencil-field",Object.assign({},n),e("udp-time-selector",Object.assign({min:a===null||a===void 0?void 0:a.minTime,max:a===null||a===void 0?void 0:a.maxTime},a)));case h.DateTimeSelector:return e("stencil-field",Object.assign({},n),e("udp-datetime-selector",Object.assign({max:a===null||a===void 0?void 0:a.maxDateTime,min:a===null||a===void 0?void 0:a.minDateTime},a)));case h.FileUpload:return e("stencil-field",Object.assign({},n),e("file-upload",Object.assign({fullWidth:true,allowMultiple:false},a)));case h.ImageUpload:return e("stencil-field",Object.assign({},n),e("image-upload",Object.assign({fullWidth:true},a)));case h.Signature:return e("div",null,e("stencil-field",Object.assign({},n,{fieldIdentifierKey:`${this.question.questionIdentifierKey}`,registerMetadata:true,metadataFieldNames:["signature.latitude","signature.longitude","signature.timestamp"]}),e("signature-input",Object.assign({},a,{value:this.value}))),e("stencil-field",{required:this.question.required,name:`${this.question.questionIdentifierKey}.metadata.signature.fullName`},e("text-field",Object.assign({},a,{label:"Full Name"}))));case h.Paragraph:return e("stencil-field",{name:this.question.name,required:false},e("input",{type:"hidden",name:this.question.name,value:this.value||""}),this.value?e("unity-typography",{id:`paragraphText${this.question.name}`,variant:((s=(o=this.styleOverrides)===null||o===void 0?void 0:o.paragraphText)===null||s===void 0?void 0:s.variant)||"body"},this.value):e("div",null));case h.Number:return e("stencil-field",Object.assign({},n),e("numeric-field",Object.assign({},a)));case h.Tally:return e("tally-display",Object.assign({id:this.questionNumber,label:this.question.questionText||"Response Tally",yesCount:this.tallyData.yesCount,noCount:this.tallyData.noCount,naCount:this.tallyData.naCount,totalFields:this.tallyData.totalFields},a,{required:false}));case h.Hidden:default:return e("div",null)}}async componentDidLoad(){var t,i,e,o;if(this.question.fieldTypeId===h.Tally&&!this.formApi){await this.initializeFormApiForTally()}const s=[];for(const n in this.styleOverrides){s.push({id:n+this.question.name,fontOverride:(i=(t=this.styleOverrides)===null||t===void 0?void 0:t[n])===null||i===void 0?void 0:i.fontFamily,variant:(o=(e=this.styleOverrides)===null||e===void 0?void 0:e[n])===null||o===void 0?void 0:o.variant})}s.forEach((t=>{var i,e,o;if(!b[t===null||t===void 0?void 0:t.fontOverride]||!this.el||!this.el.shadowRoot)return;f((o=(e=(i=this.el)===null||i===void 0?void 0:i.shadowRoot)===null||e===void 0?void 0:e.getElementById)===null||o===void 0?void 0:o.call(e,t.id),b[t===null||t===void 0?void 0:t.fontOverride])}))}render(){var t,i,o,s;const n=this._fieldComponent;const a=`${this.question.fieldTypeId===h.Paragraph?"":`${this.questionNumber}.`} ${this.question.questionText} ${this.question.required&&this.question.fieldTypeId!==h.Paragraph?"*":""}`;const r=`${this.question.questionIdentifierKey}.value`;const[l,c]=r.split(".");if(!n)return null;return e("div",{class:{hidden:this.question.fieldTypeId===h.Hidden,"question-container":true}},e("div",{class:"question-title-and-helper-container"},e("div",{class:"question-title-and-followup-container"},this.question.questionText&&e("unity-typography",{id:`questionText${this.question.name}`,variant:((i=(t=this.styleOverrides)===null||t===void 0?void 0:t.questionText)===null||i===void 0?void 0:i.variant)||"h3"},a),e("div",null,this.question.fieldProperties.allowFollowUpForms&&(()=>{var t;const i=(t=this.initialValues[l][c])===null||t===void 0?void 0:t.metadata;const o=i===null||i===void 0?void 0:i.followUpFormSubmissionId;if(o){const t=`/page/${m.FormRendererPageId}?udpf_submissionId=${o}`;return e("stencil-icon-button",{icon:y("link"),tooltip:"Open Follow-Up Form",onClick:()=>window.open(t,"_blank")})}if(!this.readonly){return e("stencil-icon-button",{icon:y("document"),tooltip:"Create Follow-Up Form",onClick:()=>{console.log("clicked create follow up form");this.launchFollowUpFormSideSheet.emit({sectionKey:l,questionKey:c})}})}})())),this.question.helperText&&e("unity-typography",{id:`helperText${this.question.name}`,variant:((s=(o=this.styleOverrides)===null||o===void 0?void 0:o.helperText)===null||s===void 0?void 0:s.variant)||"caption-text"},this.question.helperText)),n,this.question.fieldProperties.allowFollowUpForms&&e("div",null,e("stencil-field",{hidden:true,name:`${this.question.questionIdentifierKey}.metadata.followUpParentFormId`},e("text-field",null)),e("stencil-field",{hidden:true,name:`${this.question.questionIdentifierKey}.metadata.followUpParentFormVersion`},e("text-field",null)),e("stencil-field",{hidden:true,name:`${this.question.questionIdentifierKey}.metadata.followUpParentFormSubmissionId`},e("text-field",null))),this.isCommentAllowed&&e("udp-question-comment",{question:this.question,readonly:this.readonly,initialValues:this.initialValues,userId:this.userId}))}get el(){return s(this)}static get watchers(){return{question:["propChanged"],questionNumber:["propChanged"],value:["propChanged"],disabled:["propChanged"],readonly:["propChanged"],styleOverrides:["propChanged"]}}};$.style=q;const I=".question-comment-add-comment-button{display:flex;justify-content:center;margin:var(--spacing-03) 0}.question-comment-action-container{display:flex;justify-content:end}.question-comment-display{position:relative;display:flex;flex-direction:column;gap:var(--spacing-03);margin:var(--spacing-05) 0;border:1px solid var(--border-color, #ccc);border-radius:6px;padding:var(--spacing-05) var(--spacing-04)}.question-comment-display>.question-comment-header{position:absolute;bottom:-0.6em;right:1em;background:white;padding:0 0.4em;font-size:0.85em}";const S=class{constructor(e){t(this,e);this.questionCommentAction=i(this,"questionCommentAction");this.readonly=false;this.commentFieldProps={};this.initialValues={};this.userId=null;this.isContainsSavedComment=false;this.isContainsDraftComment=false;this.isCommentOwner=false}emitQuestionCommentAction(t){this.questionCommentAction.emit({type:t,key:this.question.questionIdentifierKey})}handleCommentAdd(){this.emitQuestionCommentAction("add")}handleCommentSave(){this.emitQuestionCommentAction("save")}handleCommentEdit(){this.emitQuestionCommentAction("edit")}handleCommentDelete(){this.emitQuestionCommentAction("delete")}componentWillRender(){var t;const i=this.question.questionIdentifierKey;const[e,o]=i.split(".");const s=this.initialValues[e][o];s.draftComment?this.isContainsDraftComment=true:this.isContainsDraftComment=false;s.comments.length>0?this.isContainsSavedComment=true:this.isContainsSavedComment=false;((t=s.comments[0])===null||t===void 0?void 0:t.userId)==this.userId?this.isCommentOwner=true:this.isCommentOwner=false}render(){const t=`${this.question.questionIdentifierKey}.comments[0].value`;const i=`${this.question.questionIdentifierKey}.draftComment.value`;const[o,s]=this.question.questionIdentifierKey.split(".");const n=this.initialValues[o][s].comments[0]||null;if(this.isContainsSavedComment&&!this.isCommentOwner){return e("div",{class:"question-comment-display"},e("unity-typography",{variant:"h4",color:"inherit",class:"question-comment-header"},`Comment by: ${n===null||n===void 0?void 0:n.userDisplayName} ${(n===null||n===void 0?void 0:n.timestamp)?`on ${v(n.timestamp)}`:""}`),e("unity-typography",{variant:"body",color:"inherit"},n===null||n===void 0?void 0:n.value))}if(this.isContainsDraftComment){return e("div",{class:"question-comment-draft-container"},e("stencil-field",{name:i,required:true,ignoreDirty:true},e("text-area",Object.assign({},this.commentFieldProps,{label:"Comment:",placeholder:"Add a comment"}))),e("div",{class:"question-comment-action-container"},e("udp-button",{variant:"text",onClick:()=>{this.handleCommentDelete()},startIcon:e("udp-icon",{iconName:"trashCan",color:"inherit"})},"Delete"),e("udp-button",{variant:"text",onClick:()=>{this.handleCommentSave()},startIcon:e("udp-icon",{iconName:"save",color:"inherit"})},"Save")))}if(this.isContainsSavedComment){return e("div",{class:"question-comment-input-container"},e("div",null,e("stencil-field",{name:t,style:{display:"none"}},e("text-area",{disabled:true})),e("div",{class:"question-comment-display"},e("unity-typography",{variant:"h4",color:"inherit",class:"question-comment-header"},`Comment by: ${n===null||n===void 0?void 0:n.userDisplayName} ${(n===null||n===void 0?void 0:n.timestamp)?`on ${v(n.timestamp)}`:""}`),e("unity-typography",{variant:"body",color:"inherit"},`${n===null||n===void 0?void 0:n.value}`)),e("div",{class:"question-comment-action-container"},e("udp-button",{variant:"text",onClick:()=>{this.handleCommentEdit()},startIcon:e("udp-icon",{iconName:"edit",color:"inherit"})},"Edit"))))}return e("div",{class:"question-comment-add-comment-button"},e("udp-button",{variant:"text",onClick:()=>{this.handleCommentAdd()},startIcon:e("udp-icon",{iconName:"add",color:"inherit"})},"Add a Comment"))}};S.style=I;const A=".floating-save-button{position:fixed;top:5rem;right:2rem;z-index:1000;animation:slideInDown 0.3s ease-out}.inline-save-button{position:relative;display:inline-flex;align-items:center;margin-left:auto;}.floating-save-button.saving,.inline-save-button.saving{pointer-events:none}.saving-state{display:flex;align-items:center;gap:0.5rem;padding:0.75rem 1rem;background:rgba(0, 0, 0, 0.8);color:white;border-radius:8px;font-size:0.9rem}.saved-state{display:flex;align-items:center;gap:0.5rem;padding:0.75rem 1rem;background:rgba(34, 139, 34, 0.9);color:white;border-radius:8px;font-size:0.9rem;animation:fadeIn 0.3s ease-out}.inline-save-button .saving-state{padding:0.5rem 0.75rem;background:rgba(0, 0, 0, 0.6);font-size:0.8rem}.inline-save-button .saved-state{padding:0.5rem 0.75rem;background:rgba(34, 139, 34, 0.8);font-size:0.8rem}.save-error-tooltip{position:absolute;top:100%;right:0;margin-top:0.5rem;background:#dc3545;color:white;padding:0.5rem 1rem;border-radius:8px;font-size:0.8rem;white-space:nowrap;box-shadow:0 4px 12px rgba(220, 53, 69, 0.3);animation:fadeIn 0.3s ease-out;z-index:1001}.save-error-tooltip::after{content:'';position:absolute;bottom:100%;right:1rem;border:6px solid transparent;border-bottom-color:#dc3545}.inline-save-button .save-error-tooltip{top:100%;bottom:auto;margin-top:0.5rem;margin-bottom:0}.inline-save-button .save-error-tooltip::after{top:-6px;border-top-color:transparent;border-bottom-color:#dc3545}@keyframes slideInDown{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@media (max-width: 768px){.floating-save-button{bottom:1rem;right:1rem;top:auto;}.saving-state{padding:0.6rem 0.8rem;font-size:0.8rem}.inline-save-button .saving-state{padding:0.4rem 0.6rem;font-size:0.75rem}}.primary-icon{--icon-color:var(--primary-color, #1976d2)}.primary-icon::part(icon){fill:var(--icon-color) !important}.primary-icon udp-icon-button::part(icon),.primary-icon .icon{fill:var(--primary-color, #1976d2) !important}@media (prefers-reduced-motion: reduce){.floating-save-button,.save-error-tooltip{animation:none}}";const D=class{constructor(i){t(this,i);this.isVisible=false;this.isSaving=false;this.saveErrorMessage=null;this.showSavedMessage=false;this.shouldBeInline=false;this.formApi=null;this.handleSaveClick=async()=>{if(!this.formApi||this.isSaving){return}if(typeof this.handleSave!=="function"){return}const t=this.formApi.getState().values;try{await this.handleSave(t);this.formApi.reset(t)}catch(t){console.error("The onSave handler threw an error. The form will remain dirty.",t)}}}async componentDidLoad(){this.formApi=await F(this.el);this.checkForOverlap();this.setupOverlapDetection()}disconnectedCallback(){if(this.resizeObserver){this.resizeObserver.disconnect()}if(this.checkOverlapTimeoutId){clearTimeout(this.checkOverlapTimeoutId)}}handleWindowResize(){this.debouncedOverlapCheck()}setupOverlapDetection(){if(typeof ResizeObserver!=="undefined"){this.resizeObserver=new ResizeObserver((()=>{this.debouncedOverlapCheck()}));const t=this.el.closest("udp-forms-ui, .form-container, udp-container");if(t){this.resizeObserver.observe(t)}const i=document.querySelector('main, [role="main"]')||document.body;if(i){this.resizeObserver.observe(i)}}}debouncedOverlapCheck(){if(this.checkOverlapTimeoutId){clearTimeout(this.checkOverlapTimeoutId)}this.checkOverlapTimeoutId=setTimeout((()=>{this.checkForOverlap()}),100)}checkForOverlap(){const t=1280;this.shouldBeInline=window.innerWidth<t}render(){if(!this.isVisible&&!this.showSavedMessage){return null}const t=this.shouldBeInline?"inline-save-button":"floating-save-button";const i=this.shouldBeInline;return e("div",{class:`${t} ${this.isSaving?"saving":""} ${this.showSavedMessage?"saved":""}`},this.isSaving?e("div",{class:"saving-state"},e("unity-spinner",{size:"small"}),!i&&e("span",null,"Saving...")):this.isVisible?e("udp-icon-button",{icon:g,onClick:this.handleSaveClick,tooltip:"Save Changes",variant:"contained",color:i?"inherit":"primary",iconColor:i?"primary":null,size:i?"small":"medium"},i?"":"Save Changes"):e("div",{class:"saved-state"},e("span",null,"Saved")),this.saveErrorMessage&&e("div",{class:"save-error-tooltip"},this.saveErrorMessage))}get el(){return s(this)}};D.style=A;export{w as image_upload,z as signature_input,C as stencil_form,O as tally_display,$ as udp_question,S as udp_question_comment,D as udp_save_draft_button};
|
|
2
2
|
//# sourceMappingURL=image-upload_7.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,h as i,F as o}from"./index-CaZq3YdB.js";import{U as s,a as e}from"./enums-BnKmfKJT.js";import{d}from"./utils-
|
|
1
|
+
import{r as t,h as i,F as o}from"./index-CaZq3YdB.js";import{U as s,a as e}from"./enums-BnKmfKJT.js";import{d}from"./utils-FDX6DxFp.js";import r from"@carbon/icons/es/chevron--right/16";import a from"@carbon/icons/es/edit/16";import n from"@carbon/icons/es/document--add/16";const c=class{constructor(i){t(this,i);this.isFollowUpFormConfigOn=false;this.isRendererRedirectConfigOn=false;this.getFormBuilderUrl=()=>{if(this.formsBuilderUrlPath){return`${this.formsBuilderUrlPath}&udpf_formId=${this.data.id}&udpf_version=${this.data.version}`}return`/page/${s.FormBuilderPageId}?udpf_formId=${this.data.id}&udpf_version=${this.data.version}`};this.getFormRendererUrl=()=>{if(this.formsRendererUrlPath){return`${this.formsRendererUrlPath}?udpf_formId=${this.data.id}&udpf_version=${this.data.version}`}return`/page/${s.FormRendererPageId}?udpf_formId=${this.data.id}&udpf_version=${this.data.version}`};this.formBuilderHandler=()=>{this.history.push(this.getFormBuilderUrl())};this.formRendererHandler=()=>{this.history.push(this.getFormRendererUrl())};this.handleTitleClick=t=>{t.preventDefault();this.formBuilderHandler()}}render(){const t=i(o,{key:"ba7937058367132207dcd99d315b78cf75fd0a00"},i("unity-typography",{key:"ecc8bc79197a24211197b03b941b20c1931e38b9",variant:"body1",color:"textSecondary"},"Version: ",this.data.version),!this.isSideSheetList&&i("unity-typography",{key:"c86458c18a3301cda0c8081843386d0fffed41df",variant:"body1",color:"textSecondary"},"Last Modified: ",d(this.data.lastModifiedOn)),i("unity-typography",{key:"957eae0688020a254d66b920dc725be51a142019",variant:"body1",color:"textSecondary"},"Created On: ",this.isSideSheetList?d(this.data.createdOn):d(this.data.initialCreatedOn)),this.isFollowUpFormConfigOn&&i("unity-typography",{key:"a7c43cc8ac763ee980dd38dd09674893bebac28f",variant:"body1",color:"textSecondary"},"Form Type: ",e[this.data.type]));const s=i(o,{key:"61fa8f7bd84a1bd5056bde1814d401817aff6616"},i("stencil-icon-button",{key:"e1be281292ada585dec37bc47cf86a979def3660",icon:a,tooltip:"Edit Form Template",onClick:t=>{t.stopPropagation();this.formBuilderHandler()}}),!this.isSideSheetList&&this.isRendererRedirectConfigOn&&i("stencil-icon-button",{key:"8597ce158f36ebb3f65ec7d545349addf17738b5",icon:n,tooltip:"View Form",onClick:t=>{t.stopPropagation();this.formRendererHandler()}}),!this.isSideSheetList&&i("stencil-icon-button",{key:"6862ab517fb63418b195d1ec5b6b84110500bc8b",icon:r,tooltip:"See Form Version History",onClick:t=>{var i;t.stopPropagation();(i=this.openSideSheet)===null||i===void 0?void 0:i.call(this)}}));return i("udp-card",{key:"0741f58711352fb935228f054fa465ddd1cd1050",cardTitle:this.data.name,subheader:this.data.description,actions:s,onTitleClick:this.handleTitleClick,disableContentPadding:true,adornmentStatus:"info"},t)}};export{c as udp_forms_list_card};
|
|
2
2
|
//# sourceMappingURL=udp-forms-list-card.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,h as s,a as i}from"./index-CaZq3YdB.js";import{throttle as e}from"lodash";import{b as n,U as o,a as r}from"./enums-BnKmfKJT.js";import{g as a}from"./tenantUtils-Basdb1b1.js";import{f as h}from"./udp-form-api-utils-vPSYCvIA.js";import{b as l}from"./utils-92Ceg12m.js";import{c,m as u}from"./makeApiCall-B-daVutk.js";import{S as d,c as f}from"./SearchBuilder-CvKqGlUH.js";import{C as m}from"./configService-BqLfkVKh.js";import"axios";function p(t){if(!Array.isArray(t)){return false}return t.every((t=>t instanceof File))}class v{constructor(t,s,i){}async fetchAndPopulateUdpFormSubmissionObj(t){return t}objectToFormData(t){var s,i;const e=[];const n={};for(const o in t){let r=(i=(s=t[o])===null||s===void 0?void 0:s.value)!==null&&i!==void 0?i:t[o];if(p(r)){if(r.length>0){e.push(r[0]);n[o]=r[0].name}}else if(Array.isArray(r)){n[o]=r.map((t=>typeof t==="string"?t:t.value)).join(",")}else if(r!==null&&r!==undefined&&r!==""){n[o]=r}}return c({formData:JSON.stringify(n),formFiles:e[0]||null})}async saveCurrentFormSubmissionState(t,s){return s}async saveFormSubmissionComments(t,s){return s}async createNewLinkedFollowUpFormSubmission(t){return t}async finalizeFormSubmissionState(t,s){try{return s}catch(t){console.error("Public form submission failed:",t);throw t}}}class w{constructor(t={}){this.id=null;this.formId=null;this.formVersion=null;this.data={};this.unityUserId=null;this.clusterId=null;this.userDisplayName="";this.status=null;this.businessObjectKey="";this.udpTags=[];this.form=null;this.initialCreatedOn=null;this.lastModifiedOn=null;this.submittedOn=null;this.generic1=null;this.generic2=null;this.generic3=null;Object.assign(this,t)}processSubmissionIntoFormDataWithoutValues(t){const s=this.resolveSubmissionStatus(t);const i=this.buildBaseSubmissionData(s);const e=c(i);e.append("Data",JSON.stringify(this.data));return e}processSubmissionIntoFormData(t,s){const i=this.resolveSubmissionStatus(s);const e=this.buildBaseSubmissionData(i);const{cleanedData:n,files:o}=this.extractCleanedDataAndFiles(t);const r=c(e);o.forEach((t=>r.append("FormFiles",t)));const a={submissionResponseData:n,submissionMetadata:this.data.submissionMetadata||null};r.append("Data",JSON.stringify(a));return r}resolveSubmissionStatus(t){if(t==="submitted")return 2;if(t==="in-progress")return 1;return typeof t==="number"?t:1}buildBaseSubmissionData(t){const s={FormId:this.formId,FormVersion:this.formVersion.toString(),Status:t.toString()};if(this.id){s.Id=this.id}if(this.initialCreatedOn){s.InitialCreatedOn=this.initialCreatedOn}else{s.InitialCreatedOn=(new Date).toISOString()}if(this.lastModifiedOn){s.LastModifiedOn=this.lastModifiedOn}else{s.LastModifiedOn=(new Date).toISOString()}if(this.submittedOn){s.submittedOn=this.submittedOn}if(this.generic1){s.generic1=this.generic1.toString()}if(this.generic2){s.generic2=this.generic2.toString()}if(this.generic3){s.generic3=this.generic3.toString()}return s}extractCleanedDataAndFiles(t){const s=[];const i={};for(const e in t){i[e]={};for(const n in t[e]){const o=t[e][n];const{value:r,fieldFiles:a}=this.extractValueAndFiles(o);if(a)s.push(...a);const h=this.processComments(o.comments);const l=this.processMetadata(o.metadata);i[e][n]=Object.assign({value:r,comments:h},l&&{metadata:l})}}return{cleanedData:i,files:s}}extractValueAndFiles(t){var s,i;let e=((s=t===null||t===void 0?void 0:t.value)===null||s===void 0?void 0:s.files)?t.value.value:t===null||t===void 0?void 0:t.value;const n=(i=t===null||t===void 0?void 0:t.value)===null||i===void 0?void 0:i.files;if(n&&Array.isArray(n)){return{value:typeof e==="string"&&e.trim()!==""?e:"",fieldFiles:n}}if(p(e)){return{value:e.length>0?e.map((t=>t.name)).join(","):"",fieldFiles:e}}if(e instanceof File){return{value:e.name,fieldFiles:[e]}}if(Array.isArray(e)){return{value:e.map((t=>typeof t==="string"?t:t===null||t===void 0?void 0:t.value)).join(",")}}return{value:e}}processComments(t){var s;return(s=t===null||t===void 0?void 0:t.map((t=>Object.assign({},t))))!==null&&s!==void 0?s:[]}processMetadata(t){return t&&Object.keys(t).length>0?Object.assign({},t):undefined}}class b{async fetchAndPopulateUdpFormSubmissionObj(t){if(!(t===null||t===void 0?void 0:t.id)){console.warn("Cannot fetch form submission without an ID.");return t}try{const{id:s,generic1:i,generic2:e,generic3:n}=t;let o=null;if(i||e||n){o=await this.getFormSubmissionByIdAndGenerics(s,i||undefined,e||undefined,n||undefined)}else{o=await this.getFormSubmissionById(s)}if(!o){console.warn("No form submission found for the provided object.");return t}return new w(Object.assign(Object.assign({},t),o))}catch(t){console.error("Error fetching form submission:",t);throw t}}async getFormSubmissionById(t){var s;try{const i=new d(1,1).addFilter("id",t,f.EQUALS);const e=await i.execute("UdpFormSubmission");return((s=e===null||e===void 0?void 0:e.pageList)===null||s===void 0?void 0:s[0])||null}catch(t){console.error("Error fetching form submission by ID:",t);return null}}async getFormSubmissionByIdAndGenerics(t,s,i,e){var n;try{const o=new d(1,1).addFilter("id",t,f.EQUALS);if(s){o.addFilter("generic1",s,f.EQUALS)}if(i){o.addFilter("generic2",i,f.EQUALS)}if(e){o.addFilter("generic3",e,f.EQUALS)}const r=await o.execute("UdpFormSubmission");return((n=r===null||r===void 0?void 0:r.pageList)===null||n===void 0?void 0:n[0])||null}catch(t){console.error("Error fetching form submission by ID:",t);return null}}async createNewLinkedFollowUpFormSubmission(t){const s=await this.saveFormDataWithoutValues(t,"in-progress");return s}async saveFormDataWithoutValues(t,s){try{const i=t.processSubmissionIntoFormDataWithoutValues(s);const{method:e,url:n}=this.getApiRequestInfo(t);const o=await u(e,n,i,true);if(o===""){return await this.fetchAndPopulateUdpFormSubmissionObj(t)}return new w(Object.assign(Object.assign({},t),o))}catch(t){console.error("Failed to save form udpFormSubmission:",t);throw t}}async saveFormSubmissionComments(t,s){return this.saveCommentsToDB(t,s)}async saveCurrentFormSubmissionState(t,s){return this.saveSubmissionToDB(t,s,"in-progress")}async finalizeFormSubmissionState(t,s){return this.saveSubmissionToDB(t,s,"submitted")}getApiRequestInfo(t){const s=`${m.productV1ApiUrl}/UdpFormSubmission`;return t.id?{method:"PUT",url:`${s}/${t.id}`}:{method:"POST",url:s}}async saveSubmissionToDB(t,s,i){try{const e=s.processSubmissionIntoFormData(t,i);const{method:n,url:o}=this.getApiRequestInfo(s);const r=await u(n,o,e,true);if(r===""){return await this.fetchAndPopulateUdpFormSubmissionObj(s)}return new w(Object.assign(Object.assign({},s),r))}catch(t){console.error("Failed to save form udpFormSubmission:",t);throw t}}async saveCommentsToDB(t,s){try{const i="PUT";const e=s.status||2;const n=`${m.productV1ApiUrl}/UdpFormSubmission/${s.id}`;const o=s.processSubmissionIntoFormData(t,e);const r=await u(i,n,o,true);if(r===""){return await this.fetchAndPopulateUdpFormSubmissionObj(s)}return new w(Object.assign(Object.assign({},s),r))}catch(t){console.error("Failed to save form udpFormSubmission:",t);throw t}}}class y{static create(t,s,i,e,n){if(t){return new v(i,e,n)}if(!s){throw new Error("User ID is required for private forms")}return new b}}class S{constructor(t){this.tenantId=t}async getFormByFormId(t){const s=await u("GET",`${m.productV1ApiUrl}/UdpForm/${t}/describe`);if(s.styleOverrides&&typeof s.styleOverrides==="string"){s.styleOverrides=JSON.parse(s.styleOverrides)}return s}async getFormByFormIdAndFormVersion(t,s){const i=await u("GET",`${m.productV1ApiUrl}/UdpForm/${t}/${s}/describe`);if(i.styleOverrides&&typeof i.styleOverrides==="string"){i.styleOverrides=JSON.parse(i.styleOverrides)}return i}}class F{constructor(t){if(!t)return;Object.assign(this,t)}}const g=class{constructor(s){t(this,s);this.isPublic=false;this.autoSaveDelay=2e3;this.initialValues={};this.submitSuccessful=false;this.currentFormData={};this.isLoading=false;this.isSaving=false;this.isSubmitted=false;this.saveErrorMessage=null;this.dynamicSections=[];this.isUpdatingSections=false;this.reRenderKey=0;this.isFormDirty=false;this.isUserModifiedComment=false;this.isUserUpdatedSections=false;this.sideSheetFollowUpFormsList=[];this.followUpSideSheetTotalItems=0;this.isFollowUpFormsSideSheetOpen=false;this.followUpSideSheetListPageNumber=1;this.FOLLOW_UP_SIDE_SHEET_PAGE_SIZE=5;this.componentMap={history:"history",listItemData:"listItemData",handleLaunchFollowUpForm:"handleLaunchFollowUpForm"};this.tenantId=a();this.userId=null;this.userDisplayName=null;this.followUpParentSectionKey="";this.followUpParentQuestionKey="";this.handleLaunchFollowUpFormSideSheet=async t=>{try{await this.performBackgroundSaveAndUpdateLocalSubmissionState(this.udpFormSubmission.data.submissionResponseData);this.followUpParentSectionKey=t.detail.sectionKey;this.followUpParentQuestionKey=t.detail.questionKey;await this.loadFollowUpForms(this.followUpParentSectionKey,this.followUpParentQuestionKey);this.isFollowUpFormsSideSheetOpen=true}catch(t){console.error("Error loading follow-up forms:",t)}};this.duplicateRepeatableSection=t=>{if(this.isSubmitted||this.isUpdatingSections)return;this.isUpdatingSections=true;this.isLoading=true;try{const s=this.dynamicSections[t];if(!s)return;const i=s.name;const e=this.findRepeatGroupKeys(i,this.initialValues);const o=e.length>0?Math.max(...e)+1:2;const r=Object.assign(Object.assign({},structuredClone(s)),{formQuestions:s.formQuestions.map((t=>{const s=structuredClone(t);s.questionIdentifierKey=`${i}_${o}.${t.name}`;return s})),isOriginalSection:false,sectionPositionSuffix:o});let a=t;for(let s=t+1;s<this.dynamicSections.length;s++){const t=this.dynamicSections[s];if(t.name===i){a=s}else{break}}this.dynamicSections=[...this.dynamicSections.slice(0,a+1),r,...this.dynamicSections.slice(a+1)];const h=structuredClone(this.udpFormSubmission.data.submissionResponseData);r.formQuestions.forEach((t=>{var e,r,a,l;const c=`${i}_${o}`;const u=t.name;if(!h[c]){h[c]={}}let d="";if(t.fieldTypeId===n.Paragraph){const n=s.isOriginalSection?i:`${i}_${s.sectionPositionSuffix}`;const o=(a=(r=(e=this.udpFormSubmission.data.submissionResponseData)===null||e===void 0?void 0:e[n])===null||r===void 0?void 0:r[u])===null||a===void 0?void 0:a.value;let h=t===null||t===void 0?void 0:t.fieldProperties;if(typeof h==="string"){try{h=JSON.parse(h||"{}")}catch(t){h={}}}const c=(l=h===null||h===void 0?void 0:h.paragraphText)!==null&&l!==void 0?l:"";d=o!==null&&o!==void 0?o:c}h[c][u]={value:d,comments:[],metadata:{}}}));this.initialValues=Object.assign({},h);this.udpFormSubmission.data.submissionResponseData=Object.assign({},h);this.triggerFormRerender()}finally{this.isUpdatingSections=false;this.isLoading=false;this.isUserUpdatedSections=true}};this.deleteRepeatableSection=t=>{if(this.isSubmitted)return;const s=this.dynamicSections[t];if(!s||s.isOriginalSection)return;this.isUpdatingSections=true;this.isLoading=true;try{const i=s.name;const e=s.sectionPositionSuffix;const n=`${i}_${e}`;const o=Object.assign({},this.udpFormSubmission.data.submissionResponseData);delete o[n];const r=structuredClone(this.dynamicSections);r.splice(t,1);r.forEach((t=>{if(t.name!==i||t.isOriginalSection||t.sectionPositionSuffix<=e){return}const s=t.sectionPositionSuffix;const n=`${i}_${s}`;const r=s-1;const a=`${i}_${r}`;t.sectionPositionSuffix=r;t.formQuestions=t.formQuestions.map((t=>{const s=structuredClone(t);s.questionIdentifierKey=`${a}.${t.name}`;return s}));if(o[n]){o[a]=structuredClone(o[n]);delete o[n]}}));this.dynamicSections=r;this.initialValues=Object.assign({},o);this.udpFormSubmission.data.submissionResponseData=Object.assign({},o);this.triggerFormRerender()}finally{this.isUpdatingSections=false;this.isLoading=false;this.isUserUpdatedSections=true}};this.performBackgroundSaveAndUpdateLocalSubmissionState=async t=>{var s;this.saveErrorMessage=null;try{const i=await this.formSubmissionHandler.saveCurrentFormSubmissionState(t,this.udpFormSubmission);this.udpFormSubmission=i;this.initialValues=Object.assign({},((s=i.data)===null||s===void 0?void 0:s.submissionResponseData)||{});if(!new URLSearchParams(window.location.search).has("udpf_submissionId")){this.replaceUrlWithSubmissionId(i.id)}}catch(t){this.saveErrorMessage="Failed to save form data"}finally{this.isSaving=false;this.isUserModifiedComment=false;this.isUserUpdatedSections=false;this.isFormDirty=false}};this.handleCommmentUpdate=async t=>{var s;this.isSaving=true;this.saveErrorMessage=null;try{const i=await this.formSubmissionHandler.saveFormSubmissionComments(t,this.udpFormSubmission);this.udpFormSubmission=i;this.initialValues=Object.assign({},((s=i.data)===null||s===void 0?void 0:s.submissionResponseData)||{});this.enqueueSnackbar("Comment updated successfully.",{variant:"success",anchorOrigin:{vertical:"top",horizontal:"center"}})}catch(t){this.enqueueSnackbar("There was an error updating the comment in this form.",{variant:"error",anchorOrigin:{vertical:"top",horizontal:"center"}})}finally{this.isSaving=false;this.isUserModifiedComment=false;this.isUserUpdatedSections=false;this.isFormDirty=false}};this.handleManualSave=async t=>{var s;this.isSaving=true;this.saveErrorMessage=null;try{const i=await this.formSubmissionHandler.saveCurrentFormSubmissionState(t,this.udpFormSubmission);this.udpFormSubmission=i;this.initialValues=Object.assign({},((s=i.data)===null||s===void 0?void 0:s.submissionResponseData)||{});if(!new URLSearchParams(window.location.search).has("udpf_submissionId")){this.replaceUrlWithSubmissionId(i.id)}this.enqueueSnackbar("Form saved successfully.",{variant:"success",anchorOrigin:{vertical:"top",horizontal:"center"}})}catch(t){this.enqueueSnackbar("There was an error saving this form",{variant:"error",anchorOrigin:{vertical:"top",horizontal:"center"}});this.saveErrorMessage="Failed to save form data"}finally{this.isSaving=false;this.isUserModifiedComment=false;this.isUserUpdatedSections=false;this.isFormDirty=false}};this.handleFormChange=t=>{if(this.isUpdatingSections)return;this.udpFormSubmission.data.submissionResponseData=t};this.handleFinish=()=>{if(this.triggerAction){this.triggerAction(null,{action:"finish"})}};this.triggerFormRerender=()=>{const t=window.scrollY;this.isLoading=true;this.reRenderKey+=1;setTimeout((()=>{this.isLoading=false;window.scrollTo(0,t)}),100)};this.handleLaunchFollowUpForm=async(t,s,i,e,n,r,a)=>{const h=await this.formHandler.getFormByFormIdAndFormVersion(t,s);const c={submissionResponseData:l(h),submissionMetadata:{ParentSubmission:{submissionId:i,formId:e,formVersion:n}}};const u=new w({formId:t,formVersion:s,unityUserId:this.userId,data:c});const d=y.create(false,this.userId);const f=await d.createNewLinkedFollowUpFormSubmission(u);const m=this.udpFormSubmission.data.submissionResponseData[r][a].metadata;this.udpFormSubmission.data.submissionResponseData[r][a].metadata=Object.assign(Object.assign({},m),{followUpFormSubmissionId:f.id});await this.performBackgroundSaveAndUpdateLocalSubmissionState(this.udpFormSubmission.data.submissionResponseData);const p=`/page/${o.FormRendererPageId}?udpf_submissionId=${f.id}`;window.open(p,"_blank");this.handleSideSheetClose();this.triggerFormRerender()};this.handleSideSheetClose=()=>{this.sideSheetFollowUpFormsList=[];this.followUpSideSheetListPageNumber=1;this.followUpSideSheetTotalItems=0;this.isFollowUpFormsSideSheetOpen=false;this.followUpParentSectionKey="";this.followUpParentQuestionKey=""}}componentDidLoad(){if(this.el){this.el.addEventListener("questionCommentAction",(async t=>this.handleQuestionCommentLiveCRUD(t)));this.el.addEventListener("launchFollowUpFormSideSheet",(t=>this.handleLaunchFollowUpFormSideSheet(t)));this.el.addEventListener("formDirtyChange",(t=>{this.isFormDirty=t.detail}))}}async componentWillLoad(){var t;this.isLoading=true;try{const s=(t=this.getUserCallback)===null||t===void 0?void 0:t.call(this);if(s){this.userId=s.id||null;this.userDisplayName=s.name||null}this.formSubmissionHandler=y.create(this.isPublic,this.userId);this.udpFormSubmission=new w({id:this.submissionId,formId:this.formId,formVersion:this.version,unityUserId:this.userId,generic1:this.generic1,generic2:this.generic2,generic3:this.generic3});if(this.submissionId){this.udpFormSubmission=await this.formSubmissionHandler.fetchAndPopulateUdpFormSubmissionObj(this.udpFormSubmission)}let i;let n;if(this.submissionId){i=this.udpFormSubmission.formId;n=this.udpFormSubmission.formVersion}else if(this.formId&&this.version){i=this.formId;n=this.version}this.formHandler=new S(this.tenantId);const o=await this.formHandler.getFormByFormIdAndFormVersion(i,n);this.udpForm=new F(o);this.initialValues=l(this.udpForm);if(this.udpFormSubmission.data.submissionResponseData){this.initialValues=Object.assign({},this.udpFormSubmission.data.submissionResponseData);if(this.udpFormSubmission.status===2||this.udpFormSubmission.status==="submitted"){this.isSubmitted=true}}this.initializeDynamicSections();this.applyUrlInitialValuesForAll();this.debouncedManualSave=e((async t=>{await this.handleManualSave(t)}),2e3,{leading:true,trailing:false})}catch(t){console.error("Error failed to load form in the form renderer:",t)}finally{this.isLoading=false}}initializeDynamicSections(){var t;const s=[];const i=structuredClone(this.udpForm.udpFormUdpFormSection).sort(((t,s)=>t.order-s.order));for(const e of i){e.sectionProperties=JSON.parse(e.sectionProperties||{});const i=this.findRepeatGroupKeys(e.name,this.initialValues);e.isOriginalSection=true;e.sectionPositionSuffix=1;s.push(Object.assign(Object.assign({},structuredClone(e)),{formQuestions:structuredClone(this.udpForm.formQuestions).filter((t=>t.formSectionId===e.id)).sort(((t,s)=>t.questionOrder-s.questionOrder)).map((t=>Object.assign(Object.assign({},t),{questionIdentifierKey:`${e.name}.${t.name}`,isShowCommentInput:true})))}));if(((t=e.sectionProperties)===null||t===void 0?void 0:t.isRepeatable)&&i.length>0){const t=Math.max(...i);for(let i=2;i<=t;i++){const t=Object.assign(Object.assign({},structuredClone(e)),{formQuestions:structuredClone(this.udpForm.formQuestions).filter((t=>t.formSectionId===e.id)).sort(((t,s)=>t.questionOrder-s.questionOrder)).map((t=>Object.assign(Object.assign({},t),{questionIdentifierKey:`${e.name}_${i}.${t.name}`,isShowCommentInput:true}))),isOriginalSection:false,sectionPositionSuffix:i});s.push(t)}}}this.dynamicSections=s}findRepeatGroupKeys(t,s){const i=Object.keys(s);const e=new Set;const n=new RegExp(`^${t}_(\\d+)`);i.forEach((t=>{const s=t.match(n);if(s&&s[1]){e.add(Number(s[1]))}}));return Array.from(e).sort(((t,s)=>t-s))}applyUrlInitialValuesForAll(){if(!Array.isArray(this.dynamicSections))return;const t=typeof window!=="undefined"?new URLSearchParams(window.location.search):null;const s={};if(t){this.dynamicSections.forEach((i=>{const e=i.isOriginalSection?i.name:`${i.name}_${i.sectionPositionSuffix}`;(i.formQuestions||[]).forEach((i=>{if(!i)return;const n=[i.processedSubmissionName,i.questionIdentifierKey,i.name].filter(Boolean);let o=null;for(const s of n){o=t.get(s);if(o!==null)break}if(o!==null){if(!s[e])s[e]={};s[e][i.name]={value:o,comments:[]}}}))}))}const i=structuredClone(this.initialValues)||{};Object.entries(s).forEach((([t,s])=>{if(!i[t])i[t]={};Object.entries(s).forEach((([s,e])=>{const n=i[t][s];const o=n==null||n.value==null||typeof n.value==="string"&&n.value.trim()==="";if(o){i[t][s]=e}}))}));this.dynamicSections.forEach((t=>{const s=t.isOriginalSection?t.name:`${t.name}_${t.sectionPositionSuffix}`;if(!i[s])i[s]={};(t.formQuestions||[]).forEach((t=>{var e;if(!t)return;if(t.fieldTypeId===n.Paragraph){const n=i[s][t.name];const o=n==null||n.value==null||typeof n.value==="string"&&n.value.trim()==="";if(o){let n=t===null||t===void 0?void 0:t.fieldProperties;if(typeof n==="string"){try{n=JSON.parse(n||"{}")}catch(t){n={}}}i[s][t.name]={value:(e=n===null||n===void 0?void 0:n.paragraphText)!==null&&e!==void 0?e:"",comments:[]}}}}))}));this.initialValues=i;this.udpFormSubmission.data.submissionResponseData=Object.assign({},i)}async handleSubmit(t){this.isLoading=true;try{this.udpFormSubmission=await this.formSubmissionHandler.finalizeFormSubmissionState(t,this.udpFormSubmission);this.submitSuccessful=true}catch(t){this.enqueueSnackbar("There was an error submitting this form",{variant:"error",anchorOrigin:{vertical:"top",horizontal:"center"}});throw t}finally{this.isLoading=false}}replaceUrlWithSubmissionId(t){const s=typeof window!=="undefined"?window.location.pathname:`/page/${o.FormRendererPageId}`;const i=typeof window!=="undefined"?window.location.hash:"";const e=`${s}?udpf_submissionId=${t}${i}`;const n=this.history;if(n){if(typeof n.replace==="function"){n.replace(e);return}if(typeof n.push==="function"){n.push(e);return}if(typeof n==="function"){try{n(e,{replace:true})}catch(t){n(e)}return}}if(typeof window!=="undefined"&&window.history&&typeof window.history.replaceState==="function"){window.history.replaceState({},"",e)}else if(typeof window!=="undefined"){window.location.href=e}}async handleQuestionCommentLiveCRUD(t){try{const{type:s,key:i}=t.detail;const[e,n]=i.split(".");let o=Object.assign({},this.udpFormSubmission.data.submissionResponseData);switch(s){case"add":o[e][n].draftComment={value:""};break;case"save":const t=this.udpFormSubmission.data.submissionResponseData[e][n].draftComment;if(!t)return;o[e][n].comments.push(Object.assign(Object.assign({},t),{timestamp:(new Date).toISOString(),userId:this.userId,userDisplayName:this.userDisplayName}));delete o[e][n].draftComment;this.isUserModifiedComment=true;break;case"edit":const s=this.udpFormSubmission.data.submissionResponseData[e][n].comments[0];if(!s)return;o[e][n].draftComment=Object.assign(Object.assign({},s),{timestamp:null});o[e][n].comments=[];break;case"delete":o[e][n].comments=[];delete o[e][n].draftComment;this.isUserModifiedComment=true;break}switch(s){case"save":case"delete":await this.handleCommmentUpdate(o);break}this.isFormDirty=false}catch(t){console.error("Error handling live comment CRUD:",t)}finally{this.triggerFormRerender()}}async loadFollowUpForms(t,s){var i;this.isLoading=true;this.saveErrorMessage="";try{const e=await h(this.followUpSideSheetListPageNumber,this.FOLLOW_UP_SIDE_SHEET_PAGE_SIZE,[{searchField:"type",searchOperator:"=",searchValue:r.FollowUp}],{sortDirection:"DESC",sortColumn:"lastModifiedOn"});const n=e.data;if(!n||!Array.isArray(n.pageList)){throw new Error("Malformed form versions data.")}this.sideSheetFollowUpFormsList=this.formatFollowUpFormsList(n.pageList,t,s);this.followUpSideSheetTotalItems=(i=n.total)!==null&&i!==void 0?i:0}catch(t){console.error("Failed to follow up form.",t);this.saveErrorMessage="Failed to follow up forms."}finally{this.isLoading=false}}formatFollowUpFormsList(t,s,i){return t.map((t=>({listItemData:t,history:this.history,handleLaunchFollowUpForm:async()=>await this.handleLaunchFollowUpForm(t.id,t.version,this.udpFormSubmission.id,this.udpFormSubmission.formId,this.udpFormSubmission.formVersion,s,i)})))}async handleSideSheetPageChange(t){this.followUpSideSheetListPageNumber=t;await this.loadFollowUpForms(this.followUpParentSectionKey,this.followUpParentQuestionKey)}renderFollowUpSideSheet(){return s("udp-side-sheet",{title:"Link a Follow Up Form",open:this.isFollowUpFormsSideSheetOpen,onUdpSideSheetClose:()=>this.handleSideSheetClose(),position:"right",width:"md"},this.isLoading&&this.isFollowUpFormsSideSheetOpen&&s("udp-linear-loader",null),s("udp-list-renderer",{itemComponent:"udp-forms-follow-up-list-card",data:this.sideSheetFollowUpFormsList,pagination:true,isServerSide:true,isLoading:this.isLoading,itemsPerPage:this.FOLLOW_UP_SIDE_SHEET_PAGE_SIZE,currentPage:this.followUpSideSheetListPageNumber,totalItems:this.followUpSideSheetTotalItems,onPageChange:t=>this.handleSideSheetPageChange(t.detail),componentDataMap:this.componentMap,spacing:"md"}))}isShowManualSaveIcon(){const t=(this.isFormDirty||this.isUserModifiedComment||this.isUserUpdatedSections)&&!!this.userId;return t}get isReadOnlyMode(){return this.isSubmitted||this.udpFormSubmission.unityUserId!==this.userId}get isShowCommentUI(){return this.isSubmitted}render(){return s("div",{key:"12e10ac2042460f5c398e1599f7e25299fd0dcf1",class:"forms-renderer-container"},this.renderFollowUpSideSheet(),s("udp-forms-ui",{udpForm:this.udpForm,initialValues:this.initialValues,udpFormSubmission:this.udpFormSubmission,submitSuccessful:this.submitSuccessful,isSaving:this.isSaving,saveErrorMessage:this.saveErrorMessage,readonly:this.isReadOnlyMode,handleSubmit:this.handleSubmit.bind(this),handleSave:t=>Promise.resolve(this.debouncedManualSave(t)),handleChange:this.handleFormChange,handleAction:this.triggerAction,handleFinish:this.handleFinish,userId:this.userId,isSubmitted:this.isSubmitted,dynamicSections:this.dynamicSections,duplicateRepeatableSection:this.duplicateRepeatableSection,deleteRepeatableSection:this.deleteRepeatableSection,key:`form-rerender-key-${this.reRenderKey}`,isShowManualSaveIcon:this.isShowManualSaveIcon(),isLoading:this.isLoading,isCommentAllowed:this.isShowCommentUI,performBackgroundSaveAndUpdateLocalSubmissionState:this.performBackgroundSaveAndUpdateLocalSubmissionState}))}get el(){return i(this)}};export{g as udp_forms_renderer};
|
|
1
|
+
import{r as t,h as s,a as i}from"./index-CaZq3YdB.js";import{throttle as e}from"lodash";import{b as n,U as o,a as r}from"./enums-BnKmfKJT.js";import{g as a}from"./tenantUtils-Basdb1b1.js";import{f as h}from"./udp-form-api-utils-vPSYCvIA.js";import{b as l}from"./utils-FDX6DxFp.js";import{c,m as u}from"./makeApiCall-B-daVutk.js";import{S as d,c as f}from"./SearchBuilder-CvKqGlUH.js";import{C as m}from"./configService-BqLfkVKh.js";import"axios";function p(t){if(!Array.isArray(t)){return false}return t.every((t=>t instanceof File))}class v{constructor(t,s,i){}async fetchAndPopulateUdpFormSubmissionObj(t){return t}objectToFormData(t){var s,i;const e=[];const n={};for(const o in t){let r=(i=(s=t[o])===null||s===void 0?void 0:s.value)!==null&&i!==void 0?i:t[o];if(p(r)){if(r.length>0){e.push(r[0]);n[o]=r[0].name}}else if(Array.isArray(r)){n[o]=r.map((t=>typeof t==="string"?t:t.value)).join(",")}else if(r!==null&&r!==undefined&&r!==""){n[o]=r}}return c({formData:JSON.stringify(n),formFiles:e[0]||null})}async saveCurrentFormSubmissionState(t,s){return s}async saveFormSubmissionComments(t,s){return s}async createNewLinkedFollowUpFormSubmission(t){return t}async finalizeFormSubmissionState(t,s){try{return s}catch(t){console.error("Public form submission failed:",t);throw t}}}class w{constructor(t={}){this.id=null;this.formId=null;this.formVersion=null;this.data={};this.unityUserId=null;this.clusterId=null;this.userDisplayName="";this.status=null;this.businessObjectKey="";this.udpTags=[];this.form=null;this.initialCreatedOn=null;this.lastModifiedOn=null;this.submittedOn=null;this.generic1=null;this.generic2=null;this.generic3=null;Object.assign(this,t)}processSubmissionIntoFormDataWithoutValues(t){const s=this.resolveSubmissionStatus(t);const i=this.buildBaseSubmissionData(s);const e=c(i);e.append("Data",JSON.stringify(this.data));return e}processSubmissionIntoFormData(t,s){const i=this.resolveSubmissionStatus(s);const e=this.buildBaseSubmissionData(i);const{cleanedData:n,files:o}=this.extractCleanedDataAndFiles(t);const r=c(e);o.forEach((t=>r.append("FormFiles",t)));const a={submissionResponseData:n,submissionMetadata:this.data.submissionMetadata||null};r.append("Data",JSON.stringify(a));return r}resolveSubmissionStatus(t){if(t==="submitted")return 2;if(t==="in-progress")return 1;return typeof t==="number"?t:1}buildBaseSubmissionData(t){const s={FormId:this.formId,FormVersion:this.formVersion.toString(),Status:t.toString()};if(this.id){s.Id=this.id}if(this.initialCreatedOn){s.InitialCreatedOn=this.initialCreatedOn}else{s.InitialCreatedOn=(new Date).toISOString()}if(this.lastModifiedOn){s.LastModifiedOn=this.lastModifiedOn}else{s.LastModifiedOn=(new Date).toISOString()}if(this.submittedOn){s.submittedOn=this.submittedOn}if(this.generic1){s.generic1=this.generic1.toString()}if(this.generic2){s.generic2=this.generic2.toString()}if(this.generic3){s.generic3=this.generic3.toString()}return s}extractCleanedDataAndFiles(t){const s=[];const i={};for(const e in t){i[e]={};for(const n in t[e]){const o=t[e][n];const{value:r,fieldFiles:a}=this.extractValueAndFiles(o);if(a)s.push(...a);const h=this.processComments(o.comments);const l=this.processMetadata(o.metadata);i[e][n]=Object.assign({value:r,comments:h},l&&{metadata:l})}}return{cleanedData:i,files:s}}extractValueAndFiles(t){var s,i;let e=((s=t===null||t===void 0?void 0:t.value)===null||s===void 0?void 0:s.files)?t.value.value:t===null||t===void 0?void 0:t.value;const n=(i=t===null||t===void 0?void 0:t.value)===null||i===void 0?void 0:i.files;if(n&&Array.isArray(n)){return{value:typeof e==="string"&&e.trim()!==""?e:"",fieldFiles:n}}if(p(e)){return{value:e.length>0?e.map((t=>t.name)).join(","):"",fieldFiles:e}}if(e instanceof File){return{value:e.name,fieldFiles:[e]}}if(Array.isArray(e)){return{value:e.map((t=>typeof t==="string"?t:t===null||t===void 0?void 0:t.value)).join(",")}}return{value:e}}processComments(t){var s;return(s=t===null||t===void 0?void 0:t.map((t=>Object.assign({},t))))!==null&&s!==void 0?s:[]}processMetadata(t){return t&&Object.keys(t).length>0?Object.assign({},t):undefined}}class b{async fetchAndPopulateUdpFormSubmissionObj(t){if(!(t===null||t===void 0?void 0:t.id)){console.warn("Cannot fetch form submission without an ID.");return t}try{const{id:s,generic1:i,generic2:e,generic3:n}=t;let o=null;if(i||e||n){o=await this.getFormSubmissionByIdAndGenerics(s,i||undefined,e||undefined,n||undefined)}else{o=await this.getFormSubmissionById(s)}if(!o){console.warn("No form submission found for the provided object.");return t}return new w(Object.assign(Object.assign({},t),o))}catch(t){console.error("Error fetching form submission:",t);throw t}}async getFormSubmissionById(t){var s;try{const i=new d(1,1).addFilter("id",t,f.EQUALS);const e=await i.execute("UdpFormSubmission");return((s=e===null||e===void 0?void 0:e.pageList)===null||s===void 0?void 0:s[0])||null}catch(t){console.error("Error fetching form submission by ID:",t);return null}}async getFormSubmissionByIdAndGenerics(t,s,i,e){var n;try{const o=new d(1,1).addFilter("id",t,f.EQUALS);if(s){o.addFilter("generic1",s,f.EQUALS)}if(i){o.addFilter("generic2",i,f.EQUALS)}if(e){o.addFilter("generic3",e,f.EQUALS)}const r=await o.execute("UdpFormSubmission");return((n=r===null||r===void 0?void 0:r.pageList)===null||n===void 0?void 0:n[0])||null}catch(t){console.error("Error fetching form submission by ID:",t);return null}}async createNewLinkedFollowUpFormSubmission(t){const s=await this.saveFormDataWithoutValues(t,"in-progress");return s}async saveFormDataWithoutValues(t,s){try{const i=t.processSubmissionIntoFormDataWithoutValues(s);const{method:e,url:n}=this.getApiRequestInfo(t);const o=await u(e,n,i,true);if(o===""){return await this.fetchAndPopulateUdpFormSubmissionObj(t)}return new w(Object.assign(Object.assign({},t),o))}catch(t){console.error("Failed to save form udpFormSubmission:",t);throw t}}async saveFormSubmissionComments(t,s){return this.saveCommentsToDB(t,s)}async saveCurrentFormSubmissionState(t,s){return this.saveSubmissionToDB(t,s,"in-progress")}async finalizeFormSubmissionState(t,s){return this.saveSubmissionToDB(t,s,"submitted")}getApiRequestInfo(t){const s=`${m.productV1ApiUrl}/UdpFormSubmission`;return t.id?{method:"PUT",url:`${s}/${t.id}`}:{method:"POST",url:s}}async saveSubmissionToDB(t,s,i){try{const e=s.processSubmissionIntoFormData(t,i);const{method:n,url:o}=this.getApiRequestInfo(s);const r=await u(n,o,e,true);if(r===""){return await this.fetchAndPopulateUdpFormSubmissionObj(s)}return new w(Object.assign(Object.assign({},s),r))}catch(t){console.error("Failed to save form udpFormSubmission:",t);throw t}}async saveCommentsToDB(t,s){try{const i="PUT";const e=s.status||2;const n=`${m.productV1ApiUrl}/UdpFormSubmission/${s.id}`;const o=s.processSubmissionIntoFormData(t,e);const r=await u(i,n,o,true);if(r===""){return await this.fetchAndPopulateUdpFormSubmissionObj(s)}return new w(Object.assign(Object.assign({},s),r))}catch(t){console.error("Failed to save form udpFormSubmission:",t);throw t}}}class y{static create(t,s,i,e,n){if(t){return new v(i,e,n)}if(!s){throw new Error("User ID is required for private forms")}return new b}}class S{constructor(t){this.tenantId=t}async getFormByFormId(t){const s=await u("GET",`${m.productV1ApiUrl}/UdpForm/${t}/describe`);if(s.styleOverrides&&typeof s.styleOverrides==="string"){s.styleOverrides=JSON.parse(s.styleOverrides)}return s}async getFormByFormIdAndFormVersion(t,s){const i=await u("GET",`${m.productV1ApiUrl}/UdpForm/${t}/${s}/describe`);if(i.styleOverrides&&typeof i.styleOverrides==="string"){i.styleOverrides=JSON.parse(i.styleOverrides)}return i}}class F{constructor(t){if(!t)return;Object.assign(this,t)}}const g=class{constructor(s){t(this,s);this.isPublic=false;this.autoSaveDelay=2e3;this.initialValues={};this.submitSuccessful=false;this.currentFormData={};this.isLoading=false;this.isSaving=false;this.isSubmitted=false;this.saveErrorMessage=null;this.dynamicSections=[];this.isUpdatingSections=false;this.reRenderKey=0;this.isFormDirty=false;this.isUserModifiedComment=false;this.isUserUpdatedSections=false;this.sideSheetFollowUpFormsList=[];this.followUpSideSheetTotalItems=0;this.isFollowUpFormsSideSheetOpen=false;this.followUpSideSheetListPageNumber=1;this.FOLLOW_UP_SIDE_SHEET_PAGE_SIZE=5;this.componentMap={history:"history",listItemData:"listItemData",handleLaunchFollowUpForm:"handleLaunchFollowUpForm"};this.tenantId=a();this.userId=null;this.userDisplayName=null;this.followUpParentSectionKey="";this.followUpParentQuestionKey="";this.handleLaunchFollowUpFormSideSheet=async t=>{try{await this.performBackgroundSaveAndUpdateLocalSubmissionState(this.udpFormSubmission.data.submissionResponseData);this.followUpParentSectionKey=t.detail.sectionKey;this.followUpParentQuestionKey=t.detail.questionKey;await this.loadFollowUpForms(this.followUpParentSectionKey,this.followUpParentQuestionKey);this.isFollowUpFormsSideSheetOpen=true}catch(t){console.error("Error loading follow-up forms:",t)}};this.duplicateRepeatableSection=t=>{if(this.isSubmitted||this.isUpdatingSections)return;this.isUpdatingSections=true;this.isLoading=true;try{const s=this.dynamicSections[t];if(!s)return;const i=s.name;const e=this.findRepeatGroupKeys(i,this.initialValues);const o=e.length>0?Math.max(...e)+1:2;const r=Object.assign(Object.assign({},structuredClone(s)),{formQuestions:s.formQuestions.map((t=>{const s=structuredClone(t);s.questionIdentifierKey=`${i}_${o}.${t.name}`;return s})),isOriginalSection:false,sectionPositionSuffix:o});let a=t;for(let s=t+1;s<this.dynamicSections.length;s++){const t=this.dynamicSections[s];if(t.name===i){a=s}else{break}}this.dynamicSections=[...this.dynamicSections.slice(0,a+1),r,...this.dynamicSections.slice(a+1)];const h=structuredClone(this.udpFormSubmission.data.submissionResponseData);r.formQuestions.forEach((t=>{var e,r,a,l;const c=`${i}_${o}`;const u=t.name;if(!h[c]){h[c]={}}let d="";if(t.fieldTypeId===n.Paragraph){const n=s.isOriginalSection?i:`${i}_${s.sectionPositionSuffix}`;const o=(a=(r=(e=this.udpFormSubmission.data.submissionResponseData)===null||e===void 0?void 0:e[n])===null||r===void 0?void 0:r[u])===null||a===void 0?void 0:a.value;let h=t===null||t===void 0?void 0:t.fieldProperties;if(typeof h==="string"){try{h=JSON.parse(h||"{}")}catch(t){h={}}}const c=(l=h===null||h===void 0?void 0:h.paragraphText)!==null&&l!==void 0?l:"";d=o!==null&&o!==void 0?o:c}h[c][u]={value:d,comments:[],metadata:{}}}));this.initialValues=Object.assign({},h);this.udpFormSubmission.data.submissionResponseData=Object.assign({},h);this.triggerFormRerender()}finally{this.isUpdatingSections=false;this.isLoading=false;this.isUserUpdatedSections=true}};this.deleteRepeatableSection=t=>{if(this.isSubmitted)return;const s=this.dynamicSections[t];if(!s||s.isOriginalSection)return;this.isUpdatingSections=true;this.isLoading=true;try{const i=s.name;const e=s.sectionPositionSuffix;const n=`${i}_${e}`;const o=Object.assign({},this.udpFormSubmission.data.submissionResponseData);delete o[n];const r=structuredClone(this.dynamicSections);r.splice(t,1);r.forEach((t=>{if(t.name!==i||t.isOriginalSection||t.sectionPositionSuffix<=e){return}const s=t.sectionPositionSuffix;const n=`${i}_${s}`;const r=s-1;const a=`${i}_${r}`;t.sectionPositionSuffix=r;t.formQuestions=t.formQuestions.map((t=>{const s=structuredClone(t);s.questionIdentifierKey=`${a}.${t.name}`;return s}));if(o[n]){o[a]=structuredClone(o[n]);delete o[n]}}));this.dynamicSections=r;this.initialValues=Object.assign({},o);this.udpFormSubmission.data.submissionResponseData=Object.assign({},o);this.triggerFormRerender()}finally{this.isUpdatingSections=false;this.isLoading=false;this.isUserUpdatedSections=true}};this.performBackgroundSaveAndUpdateLocalSubmissionState=async t=>{var s;this.saveErrorMessage=null;try{const i=await this.formSubmissionHandler.saveCurrentFormSubmissionState(t,this.udpFormSubmission);this.udpFormSubmission=i;this.initialValues=Object.assign({},((s=i.data)===null||s===void 0?void 0:s.submissionResponseData)||{});if(!new URLSearchParams(window.location.search).has("udpf_submissionId")){this.replaceUrlWithSubmissionId(i.id)}}catch(t){this.saveErrorMessage="Failed to save form data"}finally{this.isSaving=false;this.isUserModifiedComment=false;this.isUserUpdatedSections=false;this.isFormDirty=false}};this.handleCommmentUpdate=async t=>{var s;this.isSaving=true;this.saveErrorMessage=null;try{const i=await this.formSubmissionHandler.saveFormSubmissionComments(t,this.udpFormSubmission);this.udpFormSubmission=i;this.initialValues=Object.assign({},((s=i.data)===null||s===void 0?void 0:s.submissionResponseData)||{});this.enqueueSnackbar("Comment updated successfully.",{variant:"success",anchorOrigin:{vertical:"top",horizontal:"center"}})}catch(t){this.enqueueSnackbar("There was an error updating the comment in this form.",{variant:"error",anchorOrigin:{vertical:"top",horizontal:"center"}})}finally{this.isSaving=false;this.isUserModifiedComment=false;this.isUserUpdatedSections=false;this.isFormDirty=false}};this.handleManualSave=async t=>{var s;this.isSaving=true;this.saveErrorMessage=null;try{const i=await this.formSubmissionHandler.saveCurrentFormSubmissionState(t,this.udpFormSubmission);this.udpFormSubmission=i;this.initialValues=Object.assign({},((s=i.data)===null||s===void 0?void 0:s.submissionResponseData)||{});if(!new URLSearchParams(window.location.search).has("udpf_submissionId")){this.replaceUrlWithSubmissionId(i.id)}this.enqueueSnackbar("Form saved successfully.",{variant:"success",anchorOrigin:{vertical:"top",horizontal:"center"}})}catch(t){this.enqueueSnackbar("There was an error saving this form",{variant:"error",anchorOrigin:{vertical:"top",horizontal:"center"}});this.saveErrorMessage="Failed to save form data"}finally{this.isSaving=false;this.isUserModifiedComment=false;this.isUserUpdatedSections=false;this.isFormDirty=false}};this.handleFormChange=t=>{if(this.isUpdatingSections)return;this.udpFormSubmission.data.submissionResponseData=t};this.handleFinish=()=>{if(this.triggerAction){this.triggerAction(null,{action:"finish"})}};this.triggerFormRerender=()=>{const t=window.scrollY;this.isLoading=true;this.reRenderKey+=1;setTimeout((()=>{this.isLoading=false;window.scrollTo(0,t)}),100)};this.handleLaunchFollowUpForm=async(t,s,i,e,n,r,a)=>{const h=await this.formHandler.getFormByFormIdAndFormVersion(t,s);const c={submissionResponseData:l(h),submissionMetadata:{ParentSubmission:{submissionId:i,formId:e,formVersion:n}}};const u=new w({formId:t,formVersion:s,unityUserId:this.userId,data:c});const d=y.create(false,this.userId);const f=await d.createNewLinkedFollowUpFormSubmission(u);const m=this.udpFormSubmission.data.submissionResponseData[r][a].metadata;this.udpFormSubmission.data.submissionResponseData[r][a].metadata=Object.assign(Object.assign({},m),{followUpFormSubmissionId:f.id});await this.performBackgroundSaveAndUpdateLocalSubmissionState(this.udpFormSubmission.data.submissionResponseData);const p=`/page/${o.FormRendererPageId}?udpf_submissionId=${f.id}`;window.open(p,"_blank");this.handleSideSheetClose();this.triggerFormRerender()};this.handleSideSheetClose=()=>{this.sideSheetFollowUpFormsList=[];this.followUpSideSheetListPageNumber=1;this.followUpSideSheetTotalItems=0;this.isFollowUpFormsSideSheetOpen=false;this.followUpParentSectionKey="";this.followUpParentQuestionKey=""}}componentDidLoad(){if(this.el){this.el.addEventListener("questionCommentAction",(async t=>this.handleQuestionCommentLiveCRUD(t)));this.el.addEventListener("launchFollowUpFormSideSheet",(t=>this.handleLaunchFollowUpFormSideSheet(t)));this.el.addEventListener("formDirtyChange",(t=>{this.isFormDirty=t.detail}))}}async componentWillLoad(){var t;this.isLoading=true;try{const s=(t=this.getUserCallback)===null||t===void 0?void 0:t.call(this);if(s){this.userId=s.id||null;this.userDisplayName=s.name||null}this.formSubmissionHandler=y.create(this.isPublic,this.userId);this.udpFormSubmission=new w({id:this.submissionId,formId:this.formId,formVersion:this.version,unityUserId:this.userId,generic1:this.generic1,generic2:this.generic2,generic3:this.generic3});if(this.submissionId){this.udpFormSubmission=await this.formSubmissionHandler.fetchAndPopulateUdpFormSubmissionObj(this.udpFormSubmission)}let i;let n;if(this.submissionId){i=this.udpFormSubmission.formId;n=this.udpFormSubmission.formVersion}else if(this.formId&&this.version){i=this.formId;n=this.version}this.formHandler=new S(this.tenantId);const o=await this.formHandler.getFormByFormIdAndFormVersion(i,n);this.udpForm=new F(o);this.initialValues=l(this.udpForm);if(this.udpFormSubmission.data.submissionResponseData){this.initialValues=Object.assign({},this.udpFormSubmission.data.submissionResponseData);if(this.udpFormSubmission.status===2||this.udpFormSubmission.status==="submitted"){this.isSubmitted=true}}this.initializeDynamicSections();this.applyUrlInitialValuesForAll();this.debouncedManualSave=e((async t=>{await this.handleManualSave(t)}),2e3,{leading:true,trailing:false})}catch(t){console.error("Error failed to load form in the form renderer:",t)}finally{this.isLoading=false}}initializeDynamicSections(){var t;const s=[];const i=structuredClone(this.udpForm.udpFormUdpFormSection).sort(((t,s)=>t.order-s.order));for(const e of i){e.sectionProperties=JSON.parse(e.sectionProperties||{});const i=this.findRepeatGroupKeys(e.name,this.initialValues);e.isOriginalSection=true;e.sectionPositionSuffix=1;s.push(Object.assign(Object.assign({},structuredClone(e)),{formQuestions:structuredClone(this.udpForm.formQuestions).filter((t=>t.formSectionId===e.id)).sort(((t,s)=>t.questionOrder-s.questionOrder)).map((t=>Object.assign(Object.assign({},t),{questionIdentifierKey:`${e.name}.${t.name}`,isShowCommentInput:true})))}));if(((t=e.sectionProperties)===null||t===void 0?void 0:t.isRepeatable)&&i.length>0){const t=Math.max(...i);for(let i=2;i<=t;i++){const t=Object.assign(Object.assign({},structuredClone(e)),{formQuestions:structuredClone(this.udpForm.formQuestions).filter((t=>t.formSectionId===e.id)).sort(((t,s)=>t.questionOrder-s.questionOrder)).map((t=>Object.assign(Object.assign({},t),{questionIdentifierKey:`${e.name}_${i}.${t.name}`,isShowCommentInput:true}))),isOriginalSection:false,sectionPositionSuffix:i});s.push(t)}}}this.dynamicSections=s}findRepeatGroupKeys(t,s){const i=Object.keys(s);const e=new Set;const n=new RegExp(`^${t}_(\\d+)`);i.forEach((t=>{const s=t.match(n);if(s&&s[1]){e.add(Number(s[1]))}}));return Array.from(e).sort(((t,s)=>t-s))}applyUrlInitialValuesForAll(){if(!Array.isArray(this.dynamicSections))return;const t=typeof window!=="undefined"?new URLSearchParams(window.location.search):null;const s={};if(t){this.dynamicSections.forEach((i=>{const e=i.isOriginalSection?i.name:`${i.name}_${i.sectionPositionSuffix}`;(i.formQuestions||[]).forEach((i=>{if(!i)return;const n=[i.processedSubmissionName,i.questionIdentifierKey,i.name].filter(Boolean);let o=null;for(const s of n){o=t.get(s);if(o!==null)break}if(o!==null){if(!s[e])s[e]={};s[e][i.name]={value:o,comments:[]}}}))}))}const i=structuredClone(this.initialValues)||{};Object.entries(s).forEach((([t,s])=>{if(!i[t])i[t]={};Object.entries(s).forEach((([s,e])=>{const n=i[t][s];const o=n==null||n.value==null||typeof n.value==="string"&&n.value.trim()==="";if(o){i[t][s]=e}}))}));this.dynamicSections.forEach((t=>{const s=t.isOriginalSection?t.name:`${t.name}_${t.sectionPositionSuffix}`;if(!i[s])i[s]={};(t.formQuestions||[]).forEach((t=>{var e;if(!t)return;if(t.fieldTypeId===n.Paragraph){const n=i[s][t.name];const o=n==null||n.value==null||typeof n.value==="string"&&n.value.trim()==="";if(o){let n=t===null||t===void 0?void 0:t.fieldProperties;if(typeof n==="string"){try{n=JSON.parse(n||"{}")}catch(t){n={}}}i[s][t.name]={value:(e=n===null||n===void 0?void 0:n.paragraphText)!==null&&e!==void 0?e:"",comments:[]}}}}))}));this.initialValues=i;this.udpFormSubmission.data.submissionResponseData=Object.assign({},i)}async handleSubmit(t){this.isLoading=true;try{this.udpFormSubmission=await this.formSubmissionHandler.finalizeFormSubmissionState(t,this.udpFormSubmission);this.submitSuccessful=true}catch(t){this.enqueueSnackbar("There was an error submitting this form",{variant:"error",anchorOrigin:{vertical:"top",horizontal:"center"}});throw t}finally{this.isLoading=false}}replaceUrlWithSubmissionId(t){const s=typeof window!=="undefined"?window.location.pathname:`/page/${o.FormRendererPageId}`;const i=typeof window!=="undefined"?window.location.hash:"";const e=`${s}?udpf_submissionId=${t}${i}`;const n=this.history;if(n){if(typeof n.replace==="function"){n.replace(e);return}if(typeof n.push==="function"){n.push(e);return}if(typeof n==="function"){try{n(e,{replace:true})}catch(t){n(e)}return}}if(typeof window!=="undefined"&&window.history&&typeof window.history.replaceState==="function"){window.history.replaceState({},"",e)}else if(typeof window!=="undefined"){window.location.href=e}}async handleQuestionCommentLiveCRUD(t){try{const{type:s,key:i}=t.detail;const[e,n]=i.split(".");let o=Object.assign({},this.udpFormSubmission.data.submissionResponseData);switch(s){case"add":o[e][n].draftComment={value:""};break;case"save":const t=this.udpFormSubmission.data.submissionResponseData[e][n].draftComment;if(!t)return;o[e][n].comments.push(Object.assign(Object.assign({},t),{timestamp:(new Date).toISOString(),userId:this.userId,userDisplayName:this.userDisplayName}));delete o[e][n].draftComment;this.isUserModifiedComment=true;break;case"edit":const s=this.udpFormSubmission.data.submissionResponseData[e][n].comments[0];if(!s)return;o[e][n].draftComment=Object.assign(Object.assign({},s),{timestamp:null});o[e][n].comments=[];break;case"delete":o[e][n].comments=[];delete o[e][n].draftComment;this.isUserModifiedComment=true;break}switch(s){case"save":case"delete":await this.handleCommmentUpdate(o);break}this.isFormDirty=false}catch(t){console.error("Error handling live comment CRUD:",t)}finally{this.triggerFormRerender()}}async loadFollowUpForms(t,s){var i;this.isLoading=true;this.saveErrorMessage="";try{const e=await h(this.followUpSideSheetListPageNumber,this.FOLLOW_UP_SIDE_SHEET_PAGE_SIZE,[{searchField:"type",searchOperator:"=",searchValue:r.FollowUp}],{sortDirection:"DESC",sortColumn:"lastModifiedOn"});const n=e.data;if(!n||!Array.isArray(n.pageList)){throw new Error("Malformed form versions data.")}this.sideSheetFollowUpFormsList=this.formatFollowUpFormsList(n.pageList,t,s);this.followUpSideSheetTotalItems=(i=n.total)!==null&&i!==void 0?i:0}catch(t){console.error("Failed to follow up form.",t);this.saveErrorMessage="Failed to follow up forms."}finally{this.isLoading=false}}formatFollowUpFormsList(t,s,i){return t.map((t=>({listItemData:t,history:this.history,handleLaunchFollowUpForm:async()=>await this.handleLaunchFollowUpForm(t.id,t.version,this.udpFormSubmission.id,this.udpFormSubmission.formId,this.udpFormSubmission.formVersion,s,i)})))}async handleSideSheetPageChange(t){this.followUpSideSheetListPageNumber=t;await this.loadFollowUpForms(this.followUpParentSectionKey,this.followUpParentQuestionKey)}renderFollowUpSideSheet(){return s("udp-side-sheet",{title:"Link a Follow Up Form",open:this.isFollowUpFormsSideSheetOpen,onUdpSideSheetClose:()=>this.handleSideSheetClose(),position:"right",width:"md"},this.isLoading&&this.isFollowUpFormsSideSheetOpen&&s("udp-linear-loader",null),s("udp-list-renderer",{itemComponent:"udp-forms-follow-up-list-card",data:this.sideSheetFollowUpFormsList,pagination:true,isServerSide:true,isLoading:this.isLoading,itemsPerPage:this.FOLLOW_UP_SIDE_SHEET_PAGE_SIZE,currentPage:this.followUpSideSheetListPageNumber,totalItems:this.followUpSideSheetTotalItems,onPageChange:t=>this.handleSideSheetPageChange(t.detail),componentDataMap:this.componentMap,spacing:"md"}))}isShowManualSaveIcon(){const t=(this.isFormDirty||this.isUserModifiedComment||this.isUserUpdatedSections)&&!!this.userId;return t}get isReadOnlyMode(){return this.isSubmitted||this.udpFormSubmission.unityUserId!==this.userId}get isShowCommentUI(){return this.isSubmitted}render(){return s("div",{key:"12e10ac2042460f5c398e1599f7e25299fd0dcf1",class:"forms-renderer-container"},this.renderFollowUpSideSheet(),s("udp-forms-ui",{udpForm:this.udpForm,initialValues:this.initialValues,udpFormSubmission:this.udpFormSubmission,submitSuccessful:this.submitSuccessful,isSaving:this.isSaving,saveErrorMessage:this.saveErrorMessage,readonly:this.isReadOnlyMode,handleSubmit:this.handleSubmit.bind(this),handleSave:t=>Promise.resolve(this.debouncedManualSave(t)),handleChange:this.handleFormChange,handleAction:this.triggerAction,handleFinish:this.handleFinish,userId:this.userId,isSubmitted:this.isSubmitted,dynamicSections:this.dynamicSections,duplicateRepeatableSection:this.duplicateRepeatableSection,deleteRepeatableSection:this.deleteRepeatableSection,key:`form-rerender-key-${this.reRenderKey}`,isShowManualSaveIcon:this.isShowManualSaveIcon(),isLoading:this.isLoading,isCommentAllowed:this.isShowCommentUI,performBackgroundSaveAndUpdateLocalSubmissionState:this.performBackgroundSaveAndUpdateLocalSubmissionState}))}get el(){return i(this)}};export{g as udp_forms_renderer};
|
|
2
2
|
//# sourceMappingURL=udp-forms-renderer.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as o,c as i,h as t,a as s}from"./index-CaZq3YdB.js";import{b as n}from"./enums-BnKmfKJT.js";import{f as e,o as r}from"./utils-92Ceg12m.js";import{g as a}from"./iconUtils-DcPvHO4A.js";import"./iconMapping-CPerGeNF.js";import"@carbon/icons/es/add/16";import"@carbon/icons/es/add/32";import"@carbon/icons/es/add--alt/16";import"@carbon/icons/es/add--filled/16";import"@carbon/icons/es/arrows--horizontal/16";import"@carbon/icons/es/attachment/16";import"@carbon/icons/es/batch-job/16";import"@carbon/icons/es/box/16";import"@carbon/icons/es/close/16";import"@carbon/icons/es/close/24";import"@carbon/icons/es/close/32";import"@carbon/icons/es/close--filled/16";import"@carbon/icons/es/close--outline/16";import"@carbon/icons/es/checkmark/16";import"@carbon/icons/es/checkmark/24";import"@carbon/icons/es/checkmark/32";import"@carbon/icons/es/chevron--left/16";import"@carbon/icons/es/chevron--right/16";import"@carbon/icons/es/chevron--down/16";import"@carbon/icons/es/data-enrichment/16";import"@carbon/icons/es/document/16";import"@carbon/icons/es/document--add/16";import"@carbon/icons/es/document--attachment/16";import"@carbon/icons/es/document--pdf/16";import"@carbon/icons/es/document--video/16";import"@carbon/icons/es/document--audio/16";import"@carbon/icons/es/draggable/16";import"@carbon/icons/es/edit/16";import"@carbon/icons/es/export/16";import"@carbon/icons/es/flag/16";import"@carbon/icons/es/information/16";import"@carbon/icons/es/information/32";import"@carbon/icons/es/link/16";import"@carbon/icons/es/overflow-menu--vertical/16";import"@carbon/icons/es/overflow-menu--vertical/32";import"@carbon/icons/es/return/16";import"@carbon/icons/es/save/16";import"@carbon/icons/es/settings/16";import"@carbon/icons/es/subtract/16";import"@carbon/icons/es/subtract--alt/16";import"@carbon/icons/es/subtract--filled/16";import"@carbon/icons/es/trash-can/16";import"@carbon/icons/es/user/16";import"@carbon/icons/es/view/16";import"@carbon/icons/es/warning/16";import"@carbon/icons/es/warning/32";import"@carbon/icons/es/warning--alt/16";import"@carbon/icons/es/warning--alt/32";import"@carbon/icons/es/product/16";import"@carbon/icons/es/workspace/16";import"@carbon/icons/es/arrow--up/16";import"@carbon/icons/es/arrow--down/16";import"@carbon/icons/es/arrow--right/16";import"@carbon/icons/es/arrow--left/16";import"@carbon/icons/es/copy/16";import"@carbon/icons/es/star/16";import"@carbon/icons/es/data-table/16";import"@carbon/icons/es/fit-to-width/16";import"@carbon/icons/es/search--advanced/16";import"@carbon/icons/es/reset/16";import"@carbon/icons/es/column/16";import"@carbon/icons/es/column--delete/16";import"@carbon/icons/es/watson-health/rotate--360/16";import"@carbon/icons/es/filter/16";import"@carbon/icons/es/app-connectivity/16";import"@carbon/icons/es/text--font/16";import"@carbon/icons/es/text--long-paragraph/16";import"@carbon/icons/es/character--whole-number/16";import"@carbon/icons/es/checkbox--checked/16";import"@carbon/icons/es/radio-button--checked/16";import"@carbon/icons/es/event--schedule/16";import"@carbon/icons/es/view--off/16";import"@carbon/icons/es/time/16";import"@carbon/icons/es/calendar/16";import"@carbon/icons/es/list--checked/16";import"@carbon/icons/es/list--bulleted/16";import"@carbon/icons/es/cloud--upload/16";import"@carbon/icons/es/locked/16";import"@carbon/icons/es/pause/16";import"@carbon/icons/es/unlocked/16";import"@carbon/icons/es/send/16";import"@carbon/icons/es/email/16";import"@carbon/icons/es/checkmark--outline/16";import"@carbon/icons/es/migrate--alt/16";import"@carbon/icons/es/checkbox--checked--filled/16";import"@carbon/icons/es/checkbox/16";import"@carbon/icons/es/ZIP/16";import"@carbon/icons/es/image/16";import"@carbon/icons/es/PPT/16";import"@carbon/icons/es/XLS/16";const c=".background{background-color:var(--gray-01);height:100%;overflow-y:auto;overflow-x:hidden}.item{padding-bottom:var(--spacing-02);}.items{display:flex;flex-direction:column;gap:var(--spacing-05);padding-top:var(--spacing-02);padding-bottom:var(--spacing-02)}.footer{display:flex;flex-direction:row-reverse}.submit{background-color:var(--primary-color);box-sizing:border-box;border:none;color:white;padding:8px 24px;font-size:14px;font-weight:600;cursor:pointer;transition:background-color 0.3s ease;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;min-width:48px;min-height:24px;}.submit:disabled{background-color:var(--gray-05);cursor:default}.submit-card{display:flex;flex-direction:row;justify-content:space-between}.form-section-content{margin-bottom:var(--spacing-05);background-color:white;padding:16px;display:flex;flex-direction:column;gap:var(--spacing-05)}.form-container{padding-top:var(--spacing-05);padding-bottom:var(--spacing-05);min-height:100px}.form-section-block{margin-bottom:var(--spacing-05)}.form-section-header{display:flex;flex-direction:row;justify-content:space-between;background-color:var(--primary-color, #000);color:var(--primary-contrast-text, #FFF);padding:var(--spacing-04, 16px) var(--spacing-05, 24px);align-items:center;min-height:var(--spacing-10, 60px)}.form-section-text{margin-bottom:var(--spacing-03)}.center-div{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.finish-button{display:flex;flex-direction:column;justify-content:center}.form-renderer-header{padding:var(--spacing-05) var(--spacing-05);background-color:var(--primary-color-dark, #000);color:var(--primary-contrast-text, #FFF);display:flex;justify-content:space-between;align-items:center}.header-content{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-03)}.header-text{flex:1;min-width:0;}.header-save-button{display:block;}.floating-save-button{display:block;}.error-banner{background-color:#fdecea;border:1px solid #f5c6cb;color:#a94442;padding:12px;margin-bottom:12px;border-radius:4px}@media (max-width: 768px){.header-content{flex-direction:column;align-items:stretch;gap:var(--spacing-02)}.header-text{margin-bottom:var(--spacing-02)}}@media (max-height: 600px){.header-save-button{display:block}.floating-save-button{display:none}}.auto-save-status{margin-top:var(--spacing-02);padding:var(--spacing-01) 0;font-size:12px;opacity:0.8}";const l=class{constructor(t){o(this,t);this.formDirtyChange=i(this,"formDirtyChange");this.initialValues={};this.submitSuccessful=false;this.isLoading=false;this.isSaving=false;this.saveErrorMessage=null;this.showAutoSaveStatus=false;this.disabled=false;this.readonly=false;this.userId=null;this.isSubmitted=false;this.isShowManualSaveIcon=false;this.isCommentAllowed=false;this.showSavedMessage=false;this.isDialogOpen=false;this.dialogMessage="Are you sure you want to delete this section? This section contains links to follow-up forms. Deleting it will remove those links.";this.titleId="udp-forms-title";this.descriptionId="udp-forms-description"}componentDidLoad(){this.overrideStyles()}componentDidUpdate(){this.overrideStyles()}disconnectedCallback(){if(this.savedMessageTimeoutId){clearTimeout(this.savedMessageTimeoutId)}}watchIsSaving(o,i){console.log("isSaving watcher triggered:",{oldValue:i,newValue:o,saveErrorMessage:this.saveErrorMessage});if(i===true&&o===false&&!this.saveErrorMessage){console.log("Setting showSavedMessage to true");this.showSavedMessage=true;if(this.savedMessageTimeoutId){clearTimeout(this.savedMessageTimeoutId)}this.savedMessageTimeoutId=setTimeout((()=>{console.log("Hiding saved message after 5 seconds");this.showSavedMessage=false}),5e3)}}overrideStyles(){var o;const i=(o=this.el)===null||o===void 0?void 0:o.shadowRoot;i===null||i===void 0?void 0:i.querySelectorAll("unity-typography").forEach((o=>{var i,t,s,n;const a=o.id===this.titleId?(t=(i=this.udpForm)===null||i===void 0?void 0:i.styleOverrides)===null||t===void 0?void 0:t.titleText:o.id===this.descriptionId?(n=(s=this.udpForm)===null||s===void 0?void 0:s.styleOverrides)===null||n===void 0?void 0:n.paragraphText:{};if((a===null||a===void 0?void 0:a.fontFamily)&&e[a.fontFamily]){r(o,e[a.fontFamily])}if(a===null||a===void 0?void 0:a.variant){o.setAttribute("variant",a.variant)}}))}isSectionContainsFollowUpFormLink(o){var i;const t=this.udpFormSubmission.data.submissionResponseData[o];for(const[o,s]of Object.entries(t)){if((s===null||s===void 0?void 0:s.metadata)&&((i=s.metadata)===null||i===void 0?void 0:i.followUpFormSubmissionId)){return true}}return false}render(){var o,i,s,e,r,c,l,d,p,m,h,b,u,v,f,g;if(this.isLoading){return t("udp-linear-loader",null)}if(!this.udpForm){return t("div",{class:"error-banner"},t("unity-typography",{variant:"body2"},"Error Loading Form"))}let y=1;const x=new Set;this.udpForm.formQuestions.forEach((o=>x.add(o.section)));const w=[n.Hidden,n.Paragraph];const k={};if((s=(i=(o=this.udpForm)===null||o===void 0?void 0:o.styleOverrides)===null||i===void 0?void 0:i.background)===null||s===void 0?void 0:s.backgroundImage);else if((c=(r=(e=this.udpForm)===null||e===void 0?void 0:e.styleOverrides)===null||r===void 0?void 0:r.background)===null||c===void 0?void 0:c.backgroundColor){k.backgroundColor=(p=(d=(l=this.udpForm)===null||l===void 0?void 0:l.styleOverrides)===null||d===void 0?void 0:d.background)===null||p===void 0?void 0:p.backgroundColor}return t("div",{class:"background",style:k},t("udp-container",{maxWidth:"md"},t("div",{class:"form-container"},!this.submitSuccessful?t("stencil-form",{handleSubmit:this.handleSubmit,initialValues:this.initialValues,handleChange:this.handleChange,onDirtyChange:o=>this.formDirtyChange.emit(o.detail)},this.readonly&&t("div",{class:"error-banner"},t("unity-typography",{variant:"body2"},"View Only Mode. The contents of this form cannot be changed.")),t("fluent-dialog",{open:this.isDialogOpen,message:this.dialogMessage,labelOne:"Confirm",labelTwo:"Cancel",actionOne:()=>this.dialogAction(),actionTwo:()=>this.isDialogOpen=false}),t("div",null,t("div",{class:"form-section-block"},t("div",{class:"form-renderer-header",style:Object.assign({},((h=(m=this.udpForm)===null||m===void 0?void 0:m.styleOverrides)===null||h===void 0?void 0:h.headerBackgroundColor)&&{backgroundColor:this.udpForm.styleOverrides.headerBackgroundColor})},t("unity-typography",{id:this.titleId,variant:"h6",color:"inherit"},this.udpForm.name),this.showAutoSaveStatus&&t("div",{class:"auto-save-status"},this.saveErrorMessage&&t("unity-typography",{variant:"body",color:"secondary"},this.saveErrorMessage)),this.isShowManualSaveIcon&&t("udp-save-draft-button",{isVisible:this.isShowManualSaveIcon,isSaving:this.isSaving,saveErrorMessage:this.saveErrorMessage,showSavedMessage:this.showSavedMessage,handleSave:this.handleSave})),t("div",{class:"form-section-content"},t("div",{class:"items"},t("div",{class:"form-section-text"},t("unity-typography",{id:this.descriptionId,variant:(f=(v=(u=(b=this.udpForm)===null||b===void 0?void 0:b.styleOverrides)===null||u===void 0?void 0:u.paragraphText)===null||v===void 0?void 0:v.variant)!==null&&f!==void 0?f:"body",color:"inherit"},this.udpForm.description))))),this.dynamicSections.map(((o,i)=>t("div",{class:"form-section-block"},t("div",{class:"form-section-header"},t("div",{class:"form-section-header-title"},t("unity-typography",{variant:"h6",color:"inherit"},`${o.title}${o.sectionPositionSuffix>1?` (${o.sectionPositionSuffix})`:""}`)),t("div",{class:"form-section-header-actions"},o.sectionProperties.isRepeatable&&this.dynamicSections.filter((i=>i.id===o.id)).length===o.sectionPositionSuffix&&!this.readonly&&t("stencil-icon-button",{icon:a("add"),tooltip:"Repeat This Section",onClick:()=>this.duplicateRepeatableSection(i)}),!o.isOriginalSection&&!this.readonly&&t("stencil-icon-button",{icon:a("subtract"),tooltip:"Delete This Repeated Section",onClick:()=>{if(this.isSectionContainsFollowUpFormLink(`${o.name}_${o.sectionPositionSuffix}`)){this.dialogAction=async()=>{this.deleteRepeatableSection(i);await this.performBackgroundSaveAndUpdateLocalSubmissionState(this.udpFormSubmission.data.submissionResponseData);this.isDialogOpen=false}}else{this.deleteRepeatableSection(i)}this.isDialogOpen=true}}))),t("div",{class:"form-section-content"},t("div",{class:"items"},t("div",{class:"form-section-text"},t("unity-typography",{variant:"body",color:"inherit"},o.sectionText)),t("div",null,o.formQuestions.map((i=>{var s,n,e,r,a,c,l;const d=w.includes(i.fieldTypeId);const p=y;if(!d)y++;const m=o.sectionPositionSuffix>1?`${o.name}_${o.sectionPositionSuffix}`:`${o.name}`;return t("div",{class:"item"},t("udp-question",{styleOverrides:{helperText:(s=this.udpForm.styleOverrides)===null||s===void 0?void 0:s.helperText,paragraphText:(n=this.udpForm.styleOverrides)===null||n===void 0?void 0:n.paragraphText,questionText:(e=this.udpForm.styleOverrides)===null||e===void 0?void 0:e.questionText},question:i,questionNumber:p,value:(l=(c=(a=(r=this.initialValues)===null||r===void 0?void 0:r[m])===null||a===void 0?void 0:a[i.name])===null||c===void 0?void 0:c.value)!==null&&l!==void 0?l:"",disabled:this.disabled,readonly:this.readonly,key:i.questionIdentifierKey,initialValues:this.initialValues,userId:this.userId,isCommentAllowed:this.isCommentAllowed}))})))))))),((g=this.udpFormSubmission)===null||g===void 0?void 0:g.status)!=2&&t("div",{class:"footer"},t("input",{disabled:this.isLoading||this.disabled||this.readonly,type:"submit",value:"Submit",class:"submit",id:"udpRecord-udp-forms-renderer-Submit",onClick:()=>{console.log("Submit button clicked")}})))):t("div",{class:"center-div"},t("udp-ambient-card",null,t("div",{class:"submit-card"},t("unity-typography",null,"Thank you for your submission.")))))))}get el(){return s(this)}static get watchers(){return{isSaving:["watchIsSaving"]}}};l.style=c;export{l as udp_forms_ui};
|
|
1
|
+
import{r as o,c as i,h as t,a as s}from"./index-CaZq3YdB.js";import{b as n}from"./enums-BnKmfKJT.js";import{f as e,o as r}from"./utils-FDX6DxFp.js";import{g as a}from"./iconUtils-DcPvHO4A.js";import"./iconMapping-CPerGeNF.js";import"@carbon/icons/es/add/16";import"@carbon/icons/es/add/32";import"@carbon/icons/es/add--alt/16";import"@carbon/icons/es/add--filled/16";import"@carbon/icons/es/arrows--horizontal/16";import"@carbon/icons/es/attachment/16";import"@carbon/icons/es/batch-job/16";import"@carbon/icons/es/box/16";import"@carbon/icons/es/close/16";import"@carbon/icons/es/close/24";import"@carbon/icons/es/close/32";import"@carbon/icons/es/close--filled/16";import"@carbon/icons/es/close--outline/16";import"@carbon/icons/es/checkmark/16";import"@carbon/icons/es/checkmark/24";import"@carbon/icons/es/checkmark/32";import"@carbon/icons/es/chevron--left/16";import"@carbon/icons/es/chevron--right/16";import"@carbon/icons/es/chevron--down/16";import"@carbon/icons/es/data-enrichment/16";import"@carbon/icons/es/document/16";import"@carbon/icons/es/document--add/16";import"@carbon/icons/es/document--attachment/16";import"@carbon/icons/es/document--pdf/16";import"@carbon/icons/es/document--video/16";import"@carbon/icons/es/document--audio/16";import"@carbon/icons/es/draggable/16";import"@carbon/icons/es/edit/16";import"@carbon/icons/es/export/16";import"@carbon/icons/es/flag/16";import"@carbon/icons/es/information/16";import"@carbon/icons/es/information/32";import"@carbon/icons/es/link/16";import"@carbon/icons/es/overflow-menu--vertical/16";import"@carbon/icons/es/overflow-menu--vertical/32";import"@carbon/icons/es/return/16";import"@carbon/icons/es/save/16";import"@carbon/icons/es/settings/16";import"@carbon/icons/es/subtract/16";import"@carbon/icons/es/subtract--alt/16";import"@carbon/icons/es/subtract--filled/16";import"@carbon/icons/es/trash-can/16";import"@carbon/icons/es/user/16";import"@carbon/icons/es/view/16";import"@carbon/icons/es/warning/16";import"@carbon/icons/es/warning/32";import"@carbon/icons/es/warning--alt/16";import"@carbon/icons/es/warning--alt/32";import"@carbon/icons/es/product/16";import"@carbon/icons/es/workspace/16";import"@carbon/icons/es/arrow--up/16";import"@carbon/icons/es/arrow--down/16";import"@carbon/icons/es/arrow--right/16";import"@carbon/icons/es/arrow--left/16";import"@carbon/icons/es/copy/16";import"@carbon/icons/es/star/16";import"@carbon/icons/es/data-table/16";import"@carbon/icons/es/fit-to-width/16";import"@carbon/icons/es/search--advanced/16";import"@carbon/icons/es/reset/16";import"@carbon/icons/es/column/16";import"@carbon/icons/es/column--delete/16";import"@carbon/icons/es/watson-health/rotate--360/16";import"@carbon/icons/es/filter/16";import"@carbon/icons/es/app-connectivity/16";import"@carbon/icons/es/text--font/16";import"@carbon/icons/es/text--long-paragraph/16";import"@carbon/icons/es/character--whole-number/16";import"@carbon/icons/es/checkbox--checked/16";import"@carbon/icons/es/radio-button--checked/16";import"@carbon/icons/es/event--schedule/16";import"@carbon/icons/es/view--off/16";import"@carbon/icons/es/time/16";import"@carbon/icons/es/calendar/16";import"@carbon/icons/es/list--checked/16";import"@carbon/icons/es/list--bulleted/16";import"@carbon/icons/es/cloud--upload/16";import"@carbon/icons/es/locked/16";import"@carbon/icons/es/pause/16";import"@carbon/icons/es/unlocked/16";import"@carbon/icons/es/send/16";import"@carbon/icons/es/email/16";import"@carbon/icons/es/checkmark--outline/16";import"@carbon/icons/es/migrate--alt/16";import"@carbon/icons/es/checkbox--checked--filled/16";import"@carbon/icons/es/checkbox/16";import"@carbon/icons/es/ZIP/16";import"@carbon/icons/es/image/16";import"@carbon/icons/es/PPT/16";import"@carbon/icons/es/XLS/16";const c=".background{background-color:var(--gray-01);height:100%;overflow-y:auto;overflow-x:hidden}.item{padding-bottom:var(--spacing-02);}.items{display:flex;flex-direction:column;gap:var(--spacing-05);padding-top:var(--spacing-02);padding-bottom:var(--spacing-02)}.footer{display:flex;flex-direction:row-reverse}.submit{background-color:var(--primary-color);box-sizing:border-box;border:none;color:white;padding:8px 24px;font-size:14px;font-weight:600;cursor:pointer;transition:background-color 0.3s ease;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;min-width:48px;min-height:24px;}.submit:disabled{background-color:var(--gray-05);cursor:default}.submit-card{display:flex;flex-direction:row;justify-content:space-between}.form-section-content{margin-bottom:var(--spacing-05);background-color:white;padding:16px;display:flex;flex-direction:column;gap:var(--spacing-05)}.form-container{padding-top:var(--spacing-05);padding-bottom:var(--spacing-05);min-height:100px}.form-section-block{margin-bottom:var(--spacing-05)}.form-section-header{display:flex;flex-direction:row;justify-content:space-between;background-color:var(--primary-color, #000);color:var(--primary-contrast-text, #FFF);padding:var(--spacing-04, 16px) var(--spacing-05, 24px);align-items:center;min-height:var(--spacing-10, 60px)}.form-section-text{margin-bottom:var(--spacing-03)}.center-div{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.finish-button{display:flex;flex-direction:column;justify-content:center}.form-renderer-header{padding:var(--spacing-05) var(--spacing-05);background-color:var(--primary-color-dark, #000);color:var(--primary-contrast-text, #FFF);display:flex;justify-content:space-between;align-items:center}.header-content{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-03)}.header-text{flex:1;min-width:0;}.header-save-button{display:block;}.floating-save-button{display:block;}.error-banner{background-color:#fdecea;border:1px solid #f5c6cb;color:#a94442;padding:12px;margin-bottom:12px;border-radius:4px}@media (max-width: 768px){.header-content{flex-direction:column;align-items:stretch;gap:var(--spacing-02)}.header-text{margin-bottom:var(--spacing-02)}}@media (max-height: 600px){.header-save-button{display:block}.floating-save-button{display:none}}.auto-save-status{margin-top:var(--spacing-02);padding:var(--spacing-01) 0;font-size:12px;opacity:0.8}";const l=class{constructor(t){o(this,t);this.formDirtyChange=i(this,"formDirtyChange");this.initialValues={};this.submitSuccessful=false;this.isLoading=false;this.isSaving=false;this.saveErrorMessage=null;this.showAutoSaveStatus=false;this.disabled=false;this.readonly=false;this.userId=null;this.isSubmitted=false;this.isShowManualSaveIcon=false;this.isCommentAllowed=false;this.showSavedMessage=false;this.isDialogOpen=false;this.dialogMessage="Are you sure you want to delete this section? This section contains links to follow-up forms. Deleting it will remove those links.";this.titleId="udp-forms-title";this.descriptionId="udp-forms-description"}componentDidLoad(){this.overrideStyles()}componentDidUpdate(){this.overrideStyles()}disconnectedCallback(){if(this.savedMessageTimeoutId){clearTimeout(this.savedMessageTimeoutId)}}watchIsSaving(o,i){console.log("isSaving watcher triggered:",{oldValue:i,newValue:o,saveErrorMessage:this.saveErrorMessage});if(i===true&&o===false&&!this.saveErrorMessage){console.log("Setting showSavedMessage to true");this.showSavedMessage=true;if(this.savedMessageTimeoutId){clearTimeout(this.savedMessageTimeoutId)}this.savedMessageTimeoutId=setTimeout((()=>{console.log("Hiding saved message after 5 seconds");this.showSavedMessage=false}),5e3)}}overrideStyles(){var o;const i=(o=this.el)===null||o===void 0?void 0:o.shadowRoot;i===null||i===void 0?void 0:i.querySelectorAll("unity-typography").forEach((o=>{var i,t,s,n;const a=o.id===this.titleId?(t=(i=this.udpForm)===null||i===void 0?void 0:i.styleOverrides)===null||t===void 0?void 0:t.titleText:o.id===this.descriptionId?(n=(s=this.udpForm)===null||s===void 0?void 0:s.styleOverrides)===null||n===void 0?void 0:n.paragraphText:{};if((a===null||a===void 0?void 0:a.fontFamily)&&e[a.fontFamily]){r(o,e[a.fontFamily])}if(a===null||a===void 0?void 0:a.variant){o.setAttribute("variant",a.variant)}}))}isSectionContainsFollowUpFormLink(o){var i;const t=this.udpFormSubmission.data.submissionResponseData[o];for(const[o,s]of Object.entries(t)){if((s===null||s===void 0?void 0:s.metadata)&&((i=s.metadata)===null||i===void 0?void 0:i.followUpFormSubmissionId)){return true}}return false}render(){var o,i,s,e,r,c,l,d,p,m,h,b,u,v,f,g;if(this.isLoading){return t("udp-linear-loader",null)}if(!this.udpForm){return t("div",{class:"error-banner"},t("unity-typography",{variant:"body2"},"Error Loading Form"))}let y=1;const x=new Set;this.udpForm.formQuestions.forEach((o=>x.add(o.section)));const w=[n.Hidden,n.Paragraph];const k={};if((s=(i=(o=this.udpForm)===null||o===void 0?void 0:o.styleOverrides)===null||i===void 0?void 0:i.background)===null||s===void 0?void 0:s.backgroundImage);else if((c=(r=(e=this.udpForm)===null||e===void 0?void 0:e.styleOverrides)===null||r===void 0?void 0:r.background)===null||c===void 0?void 0:c.backgroundColor){k.backgroundColor=(p=(d=(l=this.udpForm)===null||l===void 0?void 0:l.styleOverrides)===null||d===void 0?void 0:d.background)===null||p===void 0?void 0:p.backgroundColor}return t("div",{class:"background",style:k},t("udp-container",{maxWidth:"md"},t("div",{class:"form-container"},!this.submitSuccessful?t("stencil-form",{handleSubmit:this.handleSubmit,initialValues:this.initialValues,handleChange:this.handleChange,onDirtyChange:o=>this.formDirtyChange.emit(o.detail)},this.readonly&&t("div",{class:"error-banner"},t("unity-typography",{variant:"body2"},"View Only Mode. The contents of this form cannot be changed.")),t("fluent-dialog",{open:this.isDialogOpen,message:this.dialogMessage,labelOne:"Confirm",labelTwo:"Cancel",actionOne:()=>this.dialogAction(),actionTwo:()=>this.isDialogOpen=false}),t("div",null,t("div",{class:"form-section-block"},t("div",{class:"form-renderer-header",style:Object.assign({},((h=(m=this.udpForm)===null||m===void 0?void 0:m.styleOverrides)===null||h===void 0?void 0:h.headerBackgroundColor)&&{backgroundColor:this.udpForm.styleOverrides.headerBackgroundColor})},t("unity-typography",{id:this.titleId,variant:"h6",color:"inherit"},this.udpForm.name),this.showAutoSaveStatus&&t("div",{class:"auto-save-status"},this.saveErrorMessage&&t("unity-typography",{variant:"body",color:"secondary"},this.saveErrorMessage)),this.isShowManualSaveIcon&&t("udp-save-draft-button",{isVisible:this.isShowManualSaveIcon,isSaving:this.isSaving,saveErrorMessage:this.saveErrorMessage,showSavedMessage:this.showSavedMessage,handleSave:this.handleSave})),t("div",{class:"form-section-content"},t("div",{class:"items"},t("div",{class:"form-section-text"},t("unity-typography",{id:this.descriptionId,variant:(f=(v=(u=(b=this.udpForm)===null||b===void 0?void 0:b.styleOverrides)===null||u===void 0?void 0:u.paragraphText)===null||v===void 0?void 0:v.variant)!==null&&f!==void 0?f:"body",color:"inherit"},this.udpForm.description))))),this.dynamicSections.map(((o,i)=>t("div",{class:"form-section-block"},t("div",{class:"form-section-header"},t("div",{class:"form-section-header-title"},t("unity-typography",{variant:"h6",color:"inherit"},`${o.title}${o.sectionPositionSuffix>1?` (${o.sectionPositionSuffix})`:""}`)),t("div",{class:"form-section-header-actions"},o.sectionProperties.isRepeatable&&this.dynamicSections.filter((i=>i.id===o.id)).length===o.sectionPositionSuffix&&!this.readonly&&t("stencil-icon-button",{icon:a("add"),tooltip:"Repeat This Section",onClick:()=>this.duplicateRepeatableSection(i)}),!o.isOriginalSection&&!this.readonly&&t("stencil-icon-button",{icon:a("subtract"),tooltip:"Delete This Repeated Section",onClick:()=>{if(this.isSectionContainsFollowUpFormLink(`${o.name}_${o.sectionPositionSuffix}`)){this.dialogAction=async()=>{this.deleteRepeatableSection(i);await this.performBackgroundSaveAndUpdateLocalSubmissionState(this.udpFormSubmission.data.submissionResponseData);this.isDialogOpen=false}}else{this.deleteRepeatableSection(i)}this.isDialogOpen=true}}))),t("div",{class:"form-section-content"},t("div",{class:"items"},t("div",{class:"form-section-text"},t("unity-typography",{variant:"body",color:"inherit"},o.sectionText)),t("div",null,o.formQuestions.map((i=>{var s,n,e,r,a,c,l;const d=w.includes(i.fieldTypeId);const p=y;if(!d)y++;const m=o.sectionPositionSuffix>1?`${o.name}_${o.sectionPositionSuffix}`:`${o.name}`;return t("div",{class:"item"},t("udp-question",{styleOverrides:{helperText:(s=this.udpForm.styleOverrides)===null||s===void 0?void 0:s.helperText,paragraphText:(n=this.udpForm.styleOverrides)===null||n===void 0?void 0:n.paragraphText,questionText:(e=this.udpForm.styleOverrides)===null||e===void 0?void 0:e.questionText},question:i,questionNumber:p,value:(l=(c=(a=(r=this.initialValues)===null||r===void 0?void 0:r[m])===null||a===void 0?void 0:a[i.name])===null||c===void 0?void 0:c.value)!==null&&l!==void 0?l:"",disabled:this.disabled,readonly:this.readonly,key:i.questionIdentifierKey,initialValues:this.initialValues,userId:this.userId,isCommentAllowed:this.isCommentAllowed}))})))))))),((g=this.udpFormSubmission)===null||g===void 0?void 0:g.status)!=2&&t("div",{class:"footer"},t("input",{disabled:this.isLoading||this.disabled||this.readonly,type:"submit",value:"Submit",class:"submit",id:"udpRecord-udp-forms-renderer-Submit",onClick:()=>{console.log("Submit button clicked")}})))):t("div",{class:"center-div"},t("udp-ambient-card",null,t("div",{class:"submit-card"},t("unity-typography",null,"Thank you for your submission.")))))))}get el(){return s(this)}static get watchers(){return{isSaving:["watchIsSaving"]}}};l.style=c;export{l as udp_forms_ui};
|
|
2
2
|
//# sourceMappingURL=udp-forms-ui.entry.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const o=o=>{let i=o;if(o.includes(" ")){i=o.replace(" ","T")}if(!o.toUpperCase().endsWith("Z")){i=i+"Z"}const n=new Date(i);return n.toLocaleString(undefined,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",hour12:true})};const i=o=>{const i={};for(const n of o.udpFormUdpFormSection){i[n.name]={};const t=o.formQuestions.filter((o=>o.formSectionId==n.id));for(const o of t){i[n.name][o.name]={value:"",comments:[],metadata:{}}}}return i};const n=(o,i)=>{var n,t,d,l;if((n=o===null||o===void 0?void 0:o.shadowRoot)===null||n===void 0?void 0:n.lastElementChild){(l=(d=(t=o===null||o===void 0?void 0:o.shadowRoot)===null||t===void 0?void 0:t.lastElementChild)===null||d===void 0?void 0:d.setAttribute)===null||l===void 0?void 0:l.call(d,"style",`font-family: var(${i})`);return}const r=new MutationObserver(((o,n)=>{o.forEach((o=>{if(o.type==="childList"&&o.addedNodes.length>0){o.addedNodes.forEach((o=>{var t;if(o.nodeType===Node.ELEMENT_NODE){(t=o===null||o===void 0?void 0:o.setAttribute)===null||t===void 0?void 0:t.call(o,"style",`font-family: var(${i})`);n.disconnect()}}))}}))}));if(o===null||o===void 0?void 0:o.shadowRoot){r.observe(o.shadowRoot,{childList:true})}};const t={Arial:"--font-override-arial"};export{i as b,o as d,t as f,n as o};
|
|
2
|
+
//# sourceMappingURL=utils-FDX6DxFp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils-
|
|
1
|
+
{"version":3,"file":"utils-FDX6DxFp.js","sources":["src/components/forms/udp-forms/utils/utils.ts"],"sourcesContent":["// take a masterForm's structure and build the empty initialValues object\nimport { UdpForm } from \"src/components\";\n\n/**\n * Translate and format UTC timestamp to local time.\n */\nexport const dateFormatter = (dateString) => {\n let normalizedDateString = dateString;\n\n // Check if the string is in the 'YYYY-MM-DD HH:mm:ss.sss' format (i.e., contains a space, not 'T')\n // If the input is '2025-12-10T20:23:23.055Z', it passes straight through.\n // This format is assumed to be missing timezone info and needs to be treated as UTC.\n if (dateString.includes(' ')) {\n // Replace the space with 'T' \n normalizedDateString = dateString.replace(' ', 'T');\n }\n\n if (!dateString.toUpperCase().endsWith('Z')) {\n // append Z if not there\n normalizedDateString = normalizedDateString + 'Z';\n }\n\n const date = new Date(normalizedDateString);\n\n return date.toLocaleString(undefined, {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n hour12: true\n });\n};\n\n\n// eg. { section1: { question1: { value: '', comments: [], metadata: {} }, question2: { value: '', comments: [], metadata: {} } }, section2: { question3: { value: '', comments: [], metadata: {} } } }\nexport const buildEmptyInitialValues = (masterForm: UdpForm) => {\n const initialValues = {};\n\n for (const section of masterForm.udpFormUdpFormSection) {\n initialValues[section.name] = {};\n\n const questionsOfSection = masterForm.formQuestions.filter(\n question => question.formSectionId == section.id,\n );\n\n for (const question of questionsOfSection) {\n initialValues[section.name][question.name] = {\n value: '', // default empty value\n comments: [], // default empty comments array\n metadata: {}, // default metadata object\n };\n }\n }\n\n return initialValues;\n};\n\n\nexport const overrideFont = (element: HTMLElement, cssVariable) => {\n if(element?.shadowRoot?.lastElementChild){ // this returns null in react for some instances\n element?.shadowRoot?.lastElementChild?.setAttribute?.('style', `font-family: var(${cssVariable})`)\n return;\n }\n const observer = new MutationObserver((mutationsList, observer) => {\n mutationsList.forEach(mutation => {\n if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {\n mutation.addedNodes.forEach(node => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n (node as HTMLElement)?.setAttribute?.('style', `font-family: var(${cssVariable})`);\n observer.disconnect(); // Stop observing once the target is found\n }\n });\n }\n });\n });\n\n if (element?.shadowRoot) {\n observer.observe(element.shadowRoot, { childList: true });\n }\n };\n\n\nexport const fontOverrideMapping = {\n Arial: \"--font-override-arial\"\n}"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const o=o=>{let i=o;if(o.includes(" ")&&!o.includes("Z")){i=o.replace(" ","T")+"Z"}const n=new Date(i);return n.toLocaleString(undefined,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",hour12:true})};const i=o=>{const i={};for(const n of o.udpFormUdpFormSection){i[n.name]={};const t=o.formQuestions.filter((o=>o.formSectionId==n.id));for(const o of t){i[n.name][o.name]={value:"",comments:[],metadata:{}}}}return i};const n=(o,i)=>{var n,t,d,l;if((n=o===null||o===void 0?void 0:o.shadowRoot)===null||n===void 0?void 0:n.lastElementChild){(l=(d=(t=o===null||o===void 0?void 0:o.shadowRoot)===null||t===void 0?void 0:t.lastElementChild)===null||d===void 0?void 0:d.setAttribute)===null||l===void 0?void 0:l.call(d,"style",`font-family: var(${i})`);return}const r=new MutationObserver(((o,n)=>{o.forEach((o=>{if(o.type==="childList"&&o.addedNodes.length>0){o.addedNodes.forEach((o=>{var t;if(o.nodeType===Node.ELEMENT_NODE){(t=o===null||o===void 0?void 0:o.setAttribute)===null||t===void 0?void 0:t.call(o,"style",`font-family: var(${i})`);n.disconnect()}}))}}))}));if(o===null||o===void 0?void 0:o.shadowRoot){r.observe(o.shadowRoot,{childList:true})}};const t={Arial:"--font-override-arial"};export{i as b,o as d,t as f,n as o};
|
|
2
|
-
//# sourceMappingURL=utils-92Ceg12m.js.map
|