udp-stencil-component-library 25.18.2-beta.6 → 25.18.2-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/cjs/index.cjs.js +138 -0
  2. package/dist/cjs/index.cjs.js.map +1 -1
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/stencil-library.cjs.js +1 -1
  5. package/dist/cjs/udp-forms-renderer.cjs.entry.js +591 -603
  6. package/dist/cjs/udp-forms-renderer.entry.cjs.js.map +1 -1
  7. package/dist/cjs/udp-forms-ui.cjs.entry.js +1 -4
  8. package/dist/cjs/udp-forms-ui.entry.cjs.js.map +1 -1
  9. package/dist/collection/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-ui/udp-forms-ui.js +1 -4
  10. package/dist/collection/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-ui/udp-forms-ui.js.map +1 -1
  11. package/dist/collection/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-utils/comments-crud-utils.js +153 -0
  12. package/dist/collection/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-utils/comments-crud-utils.js.map +1 -0
  13. package/dist/collection/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-utils/repeated-section-utils.js +104 -0
  14. package/dist/collection/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-utils/repeated-section-utils.js.map +1 -0
  15. package/dist/collection/components/forms/udp-forms/udp-forms-renderer/{udp-forms-renderer-utils.js → udp-forms-renderer-utils/utils.js} +48 -2
  16. package/dist/collection/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-utils/utils.js.map +1 -0
  17. package/dist/collection/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer.js +187 -310
  18. package/dist/collection/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer.js.map +1 -1
  19. package/dist/collection/components/forms/udp-forms/udp-forms-utils/form-handler/UdpFormHandler.js +13 -13
  20. package/dist/collection/components/forms/udp-forms/udp-forms-utils/form-handler/UdpFormHandler.js.map +1 -1
  21. package/dist/collection/components/forms/udp-forms/udp-forms-utils/form-submission-handler/FormSubmissionHandler.js +142 -0
  22. package/dist/collection/components/forms/udp-forms/udp-forms-utils/form-submission-handler/FormSubmissionHandler.js.map +1 -0
  23. package/dist/collection/components/forms/udp-forms/udp-forms-utils/form-submission-handler/FormSubmissionHandlerFactory.js +3 -10
  24. package/dist/collection/components/forms/udp-forms/udp-forms-utils/form-submission-handler/FormSubmissionHandlerFactory.js.map +1 -1
  25. package/dist/collection/components/forms/udp-forms/udp-forms-utils/form-submission-handler/IFormSubmissionHandler.js.map +1 -1
  26. package/dist/collection/components/forms/udp-forms/udp-forms-utils/types.js.map +1 -1
  27. package/dist/collection/index.js +1 -0
  28. package/dist/collection/index.js.map +1 -1
  29. package/dist/collection/udp-utilities/udp-websocket-client/udp-websocket-client.js +137 -0
  30. package/dist/collection/udp-utilities/udp-websocket-client/udp-websocket-client.js.map +1 -0
  31. package/dist/components/index.js +138 -1
  32. package/dist/components/index.js.map +1 -1
  33. package/dist/components/udp-forms-renderer.js +593 -608
  34. package/dist/components/udp-forms-renderer.js.map +1 -1
  35. package/dist/components/udp-forms-ui2.js +1 -4
  36. package/dist/components/udp-forms-ui2.js.map +1 -1
  37. package/dist/docs.json +1 -1
  38. package/dist/esm/index.js +138 -1
  39. package/dist/esm/index.js.map +1 -1
  40. package/dist/esm/loader.js +1 -1
  41. package/dist/esm/stencil-library.js +1 -1
  42. package/dist/esm/udp-forms-renderer.entry.js +592 -604
  43. package/dist/esm/udp-forms-renderer.entry.js.map +1 -1
  44. package/dist/esm/udp-forms-ui.entry.js +1 -4
  45. package/dist/esm/udp-forms-ui.entry.js.map +1 -1
  46. package/dist/stencil-library/index.esm.js +1 -1
  47. package/dist/stencil-library/index.esm.js.map +1 -1
  48. package/dist/stencil-library/stencil-library.esm.js +1 -1
  49. package/dist/stencil-library/udp-forms-renderer.entry.esm.js.map +1 -1
  50. package/dist/stencil-library/udp-forms-renderer.entry.js +1 -1
  51. package/dist/stencil-library/udp-forms-renderer.entry.js.map +1 -1
  52. package/dist/stencil-library/udp-forms-ui.entry.esm.js.map +1 -1
  53. package/dist/stencil-library/udp-forms-ui.entry.js +1 -1
  54. package/dist/stencil-library/udp-forms-ui.entry.js.map +1 -1
  55. package/dist/types/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-utils/comments-crud-utils.d.ts +31 -0
  56. package/dist/types/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-utils/repeated-section-utils.d.ts +17 -0
  57. package/dist/types/components/forms/udp-forms/udp-forms-renderer/{udp-forms-renderer-utils.d.ts → udp-forms-renderer-utils/utils.d.ts} +4 -0
  58. package/dist/types/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer.d.ts +6 -10
  59. package/dist/types/components/forms/udp-forms/udp-forms-utils/form-handler/UdpFormHandler.d.ts +5 -6
  60. package/dist/types/components/forms/udp-forms/udp-forms-utils/form-submission-handler/FormSubmissionHandler.d.ts +42 -0
  61. package/dist/types/components/forms/udp-forms/udp-forms-utils/form-submission-handler/FormSubmissionHandlerFactory.d.ts +1 -1
  62. package/dist/types/components/forms/udp-forms/udp-forms-utils/form-submission-handler/IFormSubmissionHandler.d.ts +44 -5
  63. package/dist/types/components/forms/udp-forms/udp-forms-utils/types.d.ts +16 -0
  64. package/dist/types/index.d.ts +1 -0
  65. package/dist/types/udp-utilities/udp-websocket-client/udp-websocket-client.d.ts +34 -0
  66. package/package.json +1 -1
  67. package/dist/collection/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-utils.js.map +0 -1
  68. package/dist/collection/components/forms/udp-forms/udp-forms-utils/form-submission-handler/PrivateFormSubmissionHandler.js +0 -264
  69. package/dist/collection/components/forms/udp-forms/udp-forms-utils/form-submission-handler/PrivateFormSubmissionHandler.js.map +0 -1
  70. package/dist/collection/components/forms/udp-forms/udp-forms-utils/form-submission-handler/PublicFormSubmissionHandler.js +0 -63
  71. package/dist/collection/components/forms/udp-forms/udp-forms-utils/form-submission-handler/PublicFormSubmissionHandler.js.map +0 -1
  72. package/dist/types/components/forms/udp-forms/udp-forms-utils/form-submission-handler/PrivateFormSubmissionHandler.d.ts +0 -131
  73. package/dist/types/components/forms/udp-forms/udp-forms-utils/form-submission-handler/PublicFormSubmissionHandler.d.ts +0 -15
@@ -1 +1 @@
1
- {"version":3,"names":["registerInstance","createEvent","h","getElement","UdpFormsSubmissionStatusEnum","UdpFormsFieldTypeEnum","fontOverrideMapping","overrideFont","getIconFromName","udpFormsUiCss","UdpFormsUi","constructor","hostRef","this","formDirtyChange","currentValues","submitSuccessful","isLoading","isSaving","saveErrorMessage","showAutoSaveStatus","disabled","readonly","clientUserInfo","id","displayName","email","isSubmitted","isShowManualSaveIcon","showSavedMessage","isDialogOpen","dialogMessage","titleId","descriptionId","componentDidLoad","overrideStyles","componentDidUpdate","disconnectedCallback","savedMessageTimeoutId","clearTimeout","watchIsSaving","newValue","oldValue","console","log","setTimeout","_a","shadowRoot","el","querySelectorAll","forEach","element","_b","_c","_d","styleOverride","udpForm","styleOverrides","titleText","paragraphText","fontFamily","variant","setAttribute","isSectionContainsFollowUpFormLink","sectionKey","sectionObject","udpFormSubmission","data","submissionResponseData","_key","questionObject","Object","entries","metadata","followUpFormSubmissionId","render","_e","_f","_g","_h","_j","_k","_l","_m","_o","_p","_q","_r","class","questionNumber","sectionSet","Set","formQuestions","fq","add","section","hiddenQuestionTypes","Hidden","Paragraph","backgroundOverrides","background","backgroundImage","backgroundColor","style","maxWidth","handleSubmit","initialValues","handleChange","onDirtyChange","event","emit","detail","open","message","labelOne","labelTwo","actionOne","dialogAction","actionTwo","assign","headerBackgroundColor","color","name","isVisible","handleSave","description","dynamicSections","map","sIndex","title","sectionPositionSuffix","sectionProperties","isRepeatable","filter","s","length","icon","tooltip","onClick","duplicateRepeatableSection","isOriginalSection","async","deleteRepeatableSection","performBackgroundSaveAndUpdateLocalSubmissionState","sectionText","question","isHidden","includes","fieldTypeId","num","helperText","questionText","value","key","questionIdentifierKey","status","Submitted","type","watchers"],"sources":["0"],"mappings":"YAAcA,OAAuBC,OAAaC,OAAQC,MAAkB,kCAC9DC,OAAmCC,MAA6B,kCAChEC,OAA0BC,MAAoB,kCAC9CC,MAAuB,gCAC9B,kCACA,gCACA,gCACA,qCACA,wCACA,+CACA,uCACA,sCACA,gCACA,kCACA,kCACA,kCACA,0CACA,2CACA,sCACA,sCACA,sCACA,0CACA,2CACA,0CACA,4CACA,qCACA,0CACA,iDACA,0CACA,4CACA,4CACA,sCACA,iCACA,mCACA,iCACA,wCACA,wCACA,iCACA,oDACA,oDACA,mCACA,iCACA,qCACA,qCACA,0CACA,6CACA,sCACA,iCACA,iCACA,oCACA,oCACA,yCACA,yCACA,oCACA,sCACA,sCACA,wCACA,yCACA,wCACA,iCACA,iCACA,uCACA,yCACA,6CACA,kCACA,mCACA,2CACA,sDACA,mCACA,6CACA,uCACA,iDACA,oDACA,8CACA,kDACA,4CACA,sCACA,iCACA,qCACA,0CACA,2CACA,0CACA,mCACA,kCACA,qCACA,iCACA,kCACA,+CACA,yCACA,sDACA,qCACA,gCACA,kCACA,gCACA,0BAEP,MAAMC,EAAgB,q4EAEtB,MAAMC,EAAa,MACf,WAAAC,CAAYC,GACRZ,EAAiBa,KAAMD,GACvBC,KAAKC,gBAAkBb,EAAYY,KAAM,mBACzCA,KAAKE,cAAgB,CAAC,EACtBF,KAAKG,iBAAmB,MACxBH,KAAKI,UAAY,MACjBJ,KAAKK,SAAW,MAChBL,KAAKM,iBAAmB,KACxBN,KAAKO,mBAAqB,MAC1BP,KAAKQ,SAAW,MAChBR,KAAKS,SAAW,MAChBT,KAAKU,eAAiB,CAClBC,GAAI,KACJC,YAAa,KACbC,MAAO,MAEXb,KAAKc,YAAc,MACnBd,KAAKe,qBAAuB,MAC5Bf,KAAKgB,iBAAmB,MACxBhB,KAAKiB,aAAe,MACpBjB,KAAKkB,cAAgB,qIACrBlB,KAAKmB,QAAU,kBACfnB,KAAKoB,cAAgB,uBACzB,CACA,gBAAAC,GACIrB,KAAKsB,gBACT,CACA,kBAAAC,GACIvB,KAAKsB,gBACT,CACA,oBAAAE,GAEI,GAAIxB,KAAKyB,sBAAuB,C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","ignoreList":[]}
1
+ {"version":3,"names":["registerInstance","createEvent","h","getElement","UdpFormsSubmissionStatusEnum","UdpFormsFieldTypeEnum","fontOverrideMapping","overrideFont","getIconFromName","udpFormsUiCss","UdpFormsUi","constructor","hostRef","this","formDirtyChange","currentValues","submitSuccessful","isLoading","isSaving","saveErrorMessage","showAutoSaveStatus","disabled","readonly","clientUserInfo","id","displayName","email","isSubmitted","isShowManualSaveIcon","showSavedMessage","isDialogOpen","dialogMessage","titleId","descriptionId","componentDidLoad","overrideStyles","componentDidUpdate","disconnectedCallback","savedMessageTimeoutId","clearTimeout","watchIsSaving","newValue","oldValue","setTimeout","_a","shadowRoot","el","querySelectorAll","forEach","element","_b","_c","_d","styleOverride","udpForm","styleOverrides","titleText","paragraphText","fontFamily","variant","setAttribute","isSectionContainsFollowUpFormLink","sectionKey","sectionObject","udpFormSubmission","data","submissionResponseData","_key","questionObject","Object","entries","metadata","followUpFormSubmissionId","render","_e","_f","_g","_h","_j","_k","_l","_m","_o","_p","_q","_r","class","questionNumber","sectionSet","Set","formQuestions","fq","add","section","hiddenQuestionTypes","Hidden","Paragraph","backgroundOverrides","background","backgroundImage","backgroundColor","style","maxWidth","handleSubmit","initialValues","handleChange","onDirtyChange","event","emit","detail","open","message","labelOne","labelTwo","actionOne","dialogAction","actionTwo","assign","headerBackgroundColor","color","name","isVisible","handleSave","description","dynamicSections","map","sIndex","title","sectionPositionSuffix","sectionProperties","isRepeatable","filter","s","length","icon","tooltip","onClick","duplicateRepeatableSection","isOriginalSection","async","deleteRepeatableSection","performBackgroundSaveAndUpdateLocalSubmissionState","sectionText","question","isHidden","includes","fieldTypeId","num","helperText","questionText","value","key","questionIdentifierKey","status","Submitted","type","watchers"],"sources":["0"],"mappings":"YAAcA,OAAuBC,OAAaC,OAAQC,MAAkB,kCAC9DC,OAAmCC,MAA6B,kCAChEC,OAA0BC,MAAoB,kCAC9CC,MAAuB,gCAC9B,kCACA,gCACA,gCACA,qCACA,wCACA,+CACA,uCACA,sCACA,gCACA,kCACA,kCACA,kCACA,0CACA,2CACA,sCACA,sCACA,sCACA,0CACA,2CACA,0CACA,4CACA,qCACA,0CACA,iDACA,0CACA,4CACA,4CACA,sCACA,iCACA,mCACA,iCACA,wCACA,wCACA,iCACA,oDACA,oDACA,mCACA,iCACA,qCACA,qCACA,0CACA,6CACA,sCACA,iCACA,iCACA,oCACA,oCACA,yCACA,yCACA,oCACA,sCACA,sCACA,wCACA,yCACA,wCACA,iCACA,iCACA,uCACA,yCACA,6CACA,kCACA,mCACA,2CACA,sDACA,mCACA,6CACA,uCACA,iDACA,oDACA,8CACA,kDACA,4CACA,sCACA,iCACA,qCACA,0CACA,2CACA,0CACA,mCACA,kCACA,qCACA,iCACA,kCACA,+CACA,yCACA,sDACA,qCACA,gCACA,kCACA,gCACA,0BAEP,MAAMC,EAAgB,q4EAEtB,MAAMC,EAAa,MACf,WAAAC,CAAYC,GACRZ,EAAiBa,KAAMD,GACvBC,KAAKC,gBAAkBb,EAAYY,KAAM,mBACzCA,KAAKE,cAAgB,CAAC,EACtBF,KAAKG,iBAAmB,MACxBH,KAAKI,UAAY,MACjBJ,KAAKK,SAAW,MAChBL,KAAKM,iBAAmB,KACxBN,KAAKO,mBAAqB,MAC1BP,KAAKQ,SAAW,MAChBR,KAAKS,SAAW,MAChBT,KAAKU,eAAiB,CAClBC,GAAI,KACJC,YAAa,KACbC,MAAO,MAEXb,KAAKc,YAAc,MACnBd,KAAKe,qBAAuB,MAC5Bf,KAAKgB,iBAAmB,MACxBhB,KAAKiB,aAAe,MACpBjB,KAAKkB,cAAgB,qIACrBlB,KAAKmB,QAAU,kBACfnB,KAAKoB,cAAgB,uBACzB,CACA,gBAAAC,GACIrB,KAAKsB,gBACT,CACA,kBAAAC,GACIvB,KAAKsB,gBACT,CACA,oBAAAE,GAEI,GAAIxB,KAAKyB,sBAAuB,C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","ignoreList":[]}
@@ -0,0 +1,31 @@
1
+ export type QuestionCommentActionType = 'add' | 'save' | 'edit' | 'delete' | 'editClose';
2
+ export type QuestionIdentifierKey = string;
3
+ export interface CommentUserInfo {
4
+ id: string | null;
5
+ displayName: string | null;
6
+ }
7
+ export interface ApplyCommentCrudParams {
8
+ actionType: QuestionCommentActionType;
9
+ questionIdentifierKey: QuestionIdentifierKey;
10
+ commentId: string;
11
+ currentSubmissionResponseData: Record<string, any>;
12
+ clientUserInfo: CommentUserInfo;
13
+ }
14
+ export interface ApplyCommentCrudResult {
15
+ sectionKey: string;
16
+ questionKey: string;
17
+ nextSubmissionResponseData: Record<string, any>;
18
+ didMutate: boolean;
19
+ shouldPersist: boolean;
20
+ persistIntent: 'public-add' | 'private-update' | 'none';
21
+ commentId: string;
22
+ valueToPersist?: string;
23
+ }
24
+ /**
25
+ * Pure comment CRUD logic.
26
+ *
27
+ * - Updates submissionResponseData structure for comments/draftComments.
28
+ * - Does NOT perform any network calls.
29
+ * - Returns persistence intent for caller.
30
+ */
31
+ export declare function applyQuestionCommentCrud(params: ApplyCommentCrudParams): ApplyCommentCrudResult;
@@ -0,0 +1,17 @@
1
+ import { DynamicSection, SubmissionResponseData } from '../../udp-forms-utils/types';
2
+ export declare const computeDuplicateRepeatableSection: (params: {
3
+ dynamicSections: DynamicSection[];
4
+ values: SubmissionResponseData;
5
+ index: number;
6
+ }) => {
7
+ nextDynamicSections: DynamicSection[];
8
+ nextValues: SubmissionResponseData;
9
+ };
10
+ export declare const computeDeleteRepeatableSection: (params: {
11
+ dynamicSections: DynamicSection[];
12
+ values: SubmissionResponseData;
13
+ index: number;
14
+ }) => {
15
+ nextDynamicSections: DynamicSection[];
16
+ nextValues: SubmissionResponseData;
17
+ };
@@ -1,3 +1,4 @@
1
+ import { Guid } from '../../udp-forms-utils/types';
1
2
  export declare const findRepeatGroupKeys: (sectionName: string, values: Object) => number[];
2
3
  export declare const initializeDynamicSections: (udpForm: any, currentValues: any) => any[];
3
4
  export declare const getMaxRepeatSuffixBySectionFromUrlContext: (urlContext: Record<string, any> | undefined | null) => Record<string, number>;
@@ -10,3 +11,6 @@ export declare const applyUrlSeedValuesForAll: (dynamicSections: any, urlContext
10
11
  };
11
12
  };
12
13
  };
14
+ export declare const replaceUrlWithSubmissionId: (submissionId: Guid, history: any) => void;
15
+ export declare const enqueueSnackbarSuccess: (message: string, enqueueSnackbar: Function) => void;
16
+ export declare const enqueueSnackbarError: (message: string, enqueueSnackbar: Function) => void;
@@ -16,19 +16,14 @@ export declare class UdpFormsRenderer {
16
16
  currentValues: {
17
17
  [name: string]: any;
18
18
  };
19
- formInputSeedValues: {
20
- [name: string]: any;
21
- };
22
19
  submitSuccessful: boolean;
23
20
  isLoading: boolean;
24
21
  isSaving: boolean;
25
22
  isSubmitted: boolean;
26
- saveErrorMessage: string | null;
27
23
  dynamicSections: any[];
28
24
  isUpdatingSections: boolean;
29
25
  reRenderKey: number;
30
- isFormDirty: boolean;
31
- isUserUpdatedSections: boolean;
26
+ hasUnsavedChanges: boolean;
32
27
  sideSheetFollowUpFormsList: any[];
33
28
  followUpSideSheetTotalItems: number;
34
29
  isFollowUpFormsSideSheetOpen: boolean;
@@ -44,6 +39,7 @@ export declare class UdpFormsRenderer {
44
39
  private formSubmissionHandler;
45
40
  private followUpParentSectionKey;
46
41
  private followUpParentQuestionKey;
42
+ private readonly publicFeatures;
47
43
  componentDidLoad(): void;
48
44
  private handleLaunchFollowUpFormSideSheet;
49
45
  componentWillLoad(): Promise<void>;
@@ -60,13 +56,13 @@ export declare class UdpFormsRenderer {
60
56
  * Auto save (background save)
61
57
  */
62
58
  private performBackgroundSaveAndUpdateLocalSubmissionState;
63
- private replaceUrlWithSubmissionId;
59
+ private performBackgroundSaveAndUpdateLocalSubmissionStateInternal;
60
+ private refreshSubmissionAndSyncState;
64
61
  /**
65
- * Handle the user saving or deleting a comment
62
+ * Handle the user saving or deleting a comment (pre-submit, private forms only)
66
63
  */
67
- private handleCommmentUpdate;
68
64
  /**
69
- * Manual save function - debounced to 5 seconds
65
+ * Manual save function - debounced to 5 seconds (private forms only)
70
66
  */
71
67
  private handleManualSave;
72
68
  private handleQuestionCommentLiveCRUD;
@@ -1,11 +1,10 @@
1
1
  import { Guid } from '../types';
2
2
  import { UdpForm } from '../classes/UdpForm';
3
- /**
4
- * UDP Form handler (new UdpFormSubmission endpoint)
5
- */
6
3
  export declare class UdpFormHandler {
7
4
  tenantId?: Guid;
8
- constructor(tenantId?: Guid);
9
- getFormByFormId(formId: any): Promise<UdpForm>;
10
- getFormByFormIdAndFormVersion(formId: any, formVersion: any): Promise<UdpForm>;
5
+ isPublic: boolean;
6
+ constructor(tenantId?: Guid, isPublic?: boolean);
7
+ private buildDescribeUrl;
8
+ getFormByFormIdAndFormVersion(formId: Guid, formVersion: number): Promise<UdpForm>;
11
9
  }
10
+ export declare const createUdpFormHandler: (isPublic?: boolean, tenantId?: Guid) => UdpFormHandler;
@@ -0,0 +1,42 @@
1
+ import { UdpFormSubmission } from '../classes/UdpFormSubmission';
2
+ import { IFormSubmissionHandler } from './IFormSubmissionHandler';
3
+ export type UdpFormSubmissionAccessMode = 'public' | 'private';
4
+ /**
5
+ * Single handler for UdpFormSubmission operations.
6
+ *
7
+ * Behavior changes by access mode:
8
+ * - private: supports draft save and follow-ups; comments are saved via standard draft-save until submitted,
9
+ * and via dedicated comment endpoints when submitted or viewed by a non-owner.
10
+ * - public : no draft save, no follow-ups; submit uses the `/UdpFormSubmission/public` endpoint;
11
+ * comments use dedicated comment endpoints once a submission exists.
12
+ */
13
+ export declare class FormSubmissionHandler implements IFormSubmissionHandler {
14
+ private readonly accessMode;
15
+ constructor(accessMode: UdpFormSubmissionAccessMode);
16
+ addComment(udpFormSubmission: UdpFormSubmission, comment: {
17
+ sectionKey: string;
18
+ questionKey: string;
19
+ value: string;
20
+ commentId?: string;
21
+ }): Promise<void>;
22
+ updateComment(udpFormSubmission: UdpFormSubmission, args: {
23
+ sectionKey: string;
24
+ questionKey: string;
25
+ commentId: string;
26
+ value: string;
27
+ }): Promise<void>;
28
+ deleteComment(udpFormSubmission: UdpFormSubmission, args: {
29
+ sectionKey: string;
30
+ questionKey: string;
31
+ commentId: string;
32
+ }): Promise<void>;
33
+ fetchAndPopulateUdpFormSubmissionObj(udpFormSubmission: UdpFormSubmission): Promise<UdpFormSubmission>;
34
+ createNewLinkedFollowUpFormSubmission(udpFormSubmission: UdpFormSubmission): Promise<UdpFormSubmission>;
35
+ saveCurrentFormSubmissionState(values: Record<string, any>, udpFormSubmission: UdpFormSubmission): Promise<UdpFormSubmission>;
36
+ finalizeFormSubmissionState(values: Record<string, any>, udpFormSubmission: UdpFormSubmission): Promise<UdpFormSubmission>;
37
+ private saveFormDataWithoutValues;
38
+ private getApiRequestInfo;
39
+ private saveSubmissionToDB;
40
+ private getFormSubmissionById;
41
+ private getFormSubmissionByIdAndUser;
42
+ }
@@ -4,5 +4,5 @@ import { Guid } from '../types';
4
4
  * Factory for creating form submission handlers.
5
5
  */
6
6
  export declare class FormSubmissionHandlerFactory {
7
- static create(isPublic: boolean, userId?: Guid | null, formId?: Guid, version?: number, tenantId?: Guid): IFormSubmissionHandler;
7
+ static create(isPublic: boolean, userId?: Guid | null): IFormSubmissionHandler;
8
8
  }
@@ -3,13 +3,52 @@ import { UdpFormSubmission } from '../classes/UdpFormSubmission';
3
3
  * Interface for form submission handlers (public/private).
4
4
  */
5
5
  export interface IFormSubmissionHandler {
6
+ /**
7
+ * Given a partially-populated `UdpFormSubmission` (must include `id`), fetch the latest submission from the server
8
+ * and return a hydrated `UdpFormSubmission`.
9
+ */
6
10
  fetchAndPopulateUdpFormSubmissionObj(udpFormSubmission: UdpFormSubmission): Promise<UdpFormSubmission>;
7
- /** Submit the form for final submission. Return the data object UdpFormSubmission*/
11
+ /**
12
+ * Submit/finalize the form.
13
+ * - private: POST/PUT to `/UdpFormSubmission/private`
14
+ * - public : POST to `/UdpFormSubmission/public`
15
+ * Returns the saved submission (callers should use the return value or rely on handler mutating the passed instance).
16
+ */
8
17
  finalizeFormSubmissionState(values: Record<string, any>, udpFormSubmission: UdpFormSubmission): Promise<UdpFormSubmission>;
9
- /** save draft data. Return the data object UdpFormSubmission */
18
+ /**
19
+ * Save draft/in-progress state.
20
+ * - private: POST/PUT to `/UdpFormSubmission/private`
21
+ * - public : no-op (public draft saves are disabled)
22
+ * Returns the saved submission (callers should use the return value or rely on handler mutating the passed instance).
23
+ */
10
24
  saveCurrentFormSubmissionState(values: Record<string, any>, udpFormSubmission: UdpFormSubmission): Promise<UdpFormSubmission>;
11
- /** save comments after a submission has been submitted. Return the data object UdpFormSubmission */
12
- saveFormSubmissionComments(values: Record<string, any>, udpFormSubmission: UdpFormSubmission): Promise<UdpFormSubmission>;
13
- /** Create a new follow up udpFormSubmission and link it to the parent submission. Return the data object UdpFormSubmission */
25
+ /**
26
+ * Create a new follow-up submission and link it to a parent submission.
27
+ * private only.
28
+ */
14
29
  createNewLinkedFollowUpFormSubmission(udpFormSubmission: UdpFormSubmission): Promise<UdpFormSubmission>;
30
+ /**
31
+ * Append a single question comment to an existing submission.
32
+ * Intended for submitted forms to avoid PUT-ing the entire submission.
33
+ * Used by both public and private forms, but only for adding new comments. Does not mutate any form data values.
34
+ */
35
+ addComment(udpFormSubmission: UdpFormSubmission, comment: {
36
+ sectionKey: string;
37
+ questionKey: string;
38
+ value: string;
39
+ commentId?: string;
40
+ }): Promise<void>;
41
+ /** Update a previously-saved comment's value. */
42
+ updateComment(udpFormSubmission: UdpFormSubmission, args: {
43
+ sectionKey: string;
44
+ questionKey: string;
45
+ commentId: string;
46
+ value: string;
47
+ }): Promise<void>;
48
+ /** Soft-delete a previously-saved comment. */
49
+ deleteComment(udpFormSubmission: UdpFormSubmission, args: {
50
+ sectionKey: string;
51
+ questionKey: string;
52
+ commentId: string;
53
+ }): Promise<void>;
15
54
  }
@@ -75,3 +75,19 @@ export interface UdpFormMetadata {
75
75
  styleOverrides: object;
76
76
  id: Guid;
77
77
  }
78
+ export type SubmissionResponseData = Record<string, Record<string, {
79
+ value: any;
80
+ comments?: any[];
81
+ metadata?: Record<string, any>;
82
+ }>>;
83
+ export type DynamicSection = {
84
+ name: string;
85
+ isOriginalSection: boolean;
86
+ sectionPositionSuffix?: number;
87
+ formQuestions: Array<{
88
+ name: string;
89
+ fieldTypeId?: number;
90
+ fieldProperties?: any;
91
+ questionIdentifierKey?: string;
92
+ }>;
93
+ };
@@ -7,3 +7,4 @@ export type { Search as SearchInterface, SearchFilters, SearchFilterGroups, Grou
7
7
  export * from './store/catalog-store';
8
8
  export * from './udp-utilities/api-config';
9
9
  export { useMatchBreakpoint } from './udp-utilities/layout/breakpoints/useMatchBreakpoint';
10
+ export * from './udp-utilities/udp-websocket-client/udp-websocket-client';
@@ -0,0 +1,34 @@
1
+ export interface UdpWebSocketMessage {
2
+ headers?: Record<string, any>;
3
+ body?: any;
4
+ }
5
+ export type UdpWsReceiveHandler = (msg: UdpWebSocketMessage) => void | Promise<void>;
6
+ export type UdpWsCloseHandler = (e: CloseEvent) => void | Promise<void>;
7
+ export type UdpWsErrorHandler = (e: Event) => void | Promise<void>;
8
+ export type UdpWsOpenHandler = () => void | Promise<void>;
9
+ export declare class UdpWebSocketClient {
10
+ static readonly DEFAULT_KEEPALIVE_INTERVAL_MS = 30000;
11
+ static readonly DEFAULT_KEEPALIVE_TIMEOUT_MS: number;
12
+ private socket?;
13
+ private keepAliveIntervalId?;
14
+ private keepAliveTimeoutId?;
15
+ private messageReceivedHandler?;
16
+ private closeHandler?;
17
+ private errorHandler?;
18
+ private openHandler?;
19
+ get isConnected(): boolean;
20
+ connect(url: string, getAccessToken: () => Promise<string | void>, keepAliveIntervalMs?: number, keepAliveTimeoutMs?: number): Promise<void>;
21
+ onMessageReceived(handler: UdpWsReceiveHandler): this;
22
+ onOpen(handler: UdpWsOpenHandler): this;
23
+ onClose(handler: UdpWsCloseHandler): this;
24
+ onError(handler: UdpWsErrorHandler): this;
25
+ send(message: UdpWebSocketMessage): void;
26
+ close(): void;
27
+ protected handleMessage(event: MessageEvent): void;
28
+ protected handleClose(event: CloseEvent): void;
29
+ protected handleError(event: Event): void;
30
+ protected startKeepAliveTimer(intervalMs: number, timeoutMs: number): void;
31
+ protected stopKeepAliveTimer(): void;
32
+ protected sendKeepAlivePing(): void;
33
+ protected isWssUrl(url: string): boolean;
34
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "udp-stencil-component-library",
3
- "version": "25.18.2-beta.6",
3
+ "version": "25.18.2-beta.8",
4
4
  "description": "A Stencil based component library for UDP",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",
@@ -1 +0,0 @@
1
- {"version":3,"file":"udp-forms-renderer-utils.js","sourceRoot":"","sources":["../../../../../src/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { UdpFormsFieldTypeEnum } from '../udp-forms-utils/enums';\n\n// utility to find repeat group keys from current values\nexport const findRepeatGroupKeys = (sectionName: string, values: Object): number[] => {\n const keys = Object.keys(values);\n const repeatGroupSet = new Set<number>();\n\n // Match: sectionName_2\n const regex = new RegExp(`^${sectionName}_(\\\\d+)`);\n\n keys.forEach(key => {\n const match = key.match(regex);\n if (match && match[1]) {\n repeatGroupSet.add(Number(match[1]));\n }\n });\n\n return Array.from(repeatGroupSet).sort((a, b) => a - b);\n};\n\n\n// build dynamic sections based on the master form\nexport const initializeDynamicSections = (udpForm, currentValues) => {\n const dynamicSections: any[] = [];\n const sortedSections = structuredClone(udpForm.udpFormUdpFormSection).sort(\n (a, b) => a.order - b.order,\n );\n\n for (const section of sortedSections) {\n section.sectionProperties = JSON.parse(section.sectionProperties || {});\n const repeatGroupKeys = findRepeatGroupKeys(section.name, currentValues);\n section.isOriginalSection = true;\n section.sectionPositionSuffix = 1; // default position\n\n // always add the original section into dynamic sections\n dynamicSections.push({\n ...structuredClone(section),\n // dynamicSectionName: section.name,\n formQuestions: structuredClone(udpForm.formQuestions)\n .filter(q => q.formSectionId === section.id)\n .sort((a, b) => a.questionOrder - b.questionOrder)\n .map(q => ({\n ...q,\n questionIdentifierKey: `${section.name}.${q.name}`,\n isShowCommentInput: true,\n })),\n });\n\n // create then add additional sections if there are repeated sections\n if (section.sectionProperties?.isRepeatable && repeatGroupKeys.length > 0) {\n const maxRepeatedSectionSuffix = Math.max(...repeatGroupKeys); // create a new section for the max value of repeat group keys, even if there are no saved answers\n\n // for (const repeatKey of repeatGroupKeys) { // create a section only for the suffix saved\n for (let repeatKey = 2; repeatKey <= maxRepeatedSectionSuffix; repeatKey++) {\n const clonedSection = {\n ...structuredClone(section),\n formQuestions: structuredClone(udpForm.formQuestions)\n .filter(q => q.formSectionId === section.id)\n .sort((a, b) => a.questionOrder - b.questionOrder)\n .map(q => ({\n ...q,\n questionIdentifierKey: `${section.name}_${repeatKey}.${q.name}`,\n isShowCommentInput: true,\n })),\n isOriginalSection: false,\n sectionPositionSuffix: repeatKey,\n };\n dynamicSections.push(clonedSection);\n }\n }\n }\n\n return dynamicSections;\n};\n\n// urlContext is derived from query params that start with `udpf_` (see useUdpFormParameters).\n// Keys are stored without the prefix, e.g. `udpf_section1_3.question1=val` -> urlContext['section1_3.question1'] = 'val'\n// This helper finds the maximum repeat suffix requested by urlContext for a given section base name.\n// Example: { 'sectionA_3.q1': 'x', 'sectionA_2.q2': 'y' } -> { sectionA: 3 }\nexport const getMaxRepeatSuffixBySectionFromUrlContext = (urlContext: Record<string, any> | undefined | null) => {\n const context = (urlContext && typeof urlContext === 'object') ? urlContext : {};\n const maxBySection: Record<string, number> = {};\n\n Object.keys(context).forEach(key => {\n // Expect keys like: sectionName_3.questionName\n // Only treat it as a repeat hint if it has a dot after the suffix.\n const match = key.match(/^([^._?&#]+)_(\\d+)\\./);\n if (!match) return;\n const baseSectionName = match[1];\n const suffix = Number(match[2]);\n if (!Number.isFinite(suffix) || suffix < 2) return;\n\n const existing = maxBySection[baseSectionName] ?? 1;\n if (suffix > existing) maxBySection[baseSectionName] = suffix;\n });\n\n return maxBySection;\n};\n\n// build dynamic sections based on the master form plus optional repeat hints from URL context\nexport const initializeDynamicSectionsWithUrlContext = (udpForm, currentValues, urlContext) => {\n const maxRepeatFromUrl = getMaxRepeatSuffixBySectionFromUrlContext(urlContext);\n\n const dynamicSections: any[] = [];\n const sortedSections = structuredClone(udpForm.udpFormUdpFormSection).sort(\n (a, b) => a.order - b.order,\n );\n\n for (const section of sortedSections) {\n section.sectionProperties = JSON.parse(section.sectionProperties || {});\n\n const repeatGroupKeys = findRepeatGroupKeys(section.name, currentValues);\n const maxRepeatedFromValues = repeatGroupKeys.length > 0 ? Math.max(...repeatGroupKeys) : 1;\n const maxRepeatedFromUrl = maxRepeatFromUrl?.[section.name] ?? 1;\n const maxRepeatedSectionSuffix = Math.max(maxRepeatedFromValues, maxRepeatedFromUrl);\n\n section.isOriginalSection = true;\n section.sectionPositionSuffix = 1; // default position\n\n // always add the original section into dynamic sections\n dynamicSections.push({\n ...structuredClone(section),\n formQuestions: structuredClone(udpForm.formQuestions)\n .filter(q => q.formSectionId === section.id)\n .sort((a, b) => a.questionOrder - b.questionOrder)\n .map(q => ({\n ...q,\n questionIdentifierKey: `${section.name}.${q.name}`,\n isShowCommentInput: true,\n })),\n });\n\n // create then add additional sections if repeatable and suffix requested by saved values or url\n if (section.sectionProperties?.isRepeatable && maxRepeatedSectionSuffix >= 2) {\n for (let repeatKey = 2; repeatKey <= maxRepeatedSectionSuffix; repeatKey++) {\n const clonedSection = {\n ...structuredClone(section),\n formQuestions: structuredClone(udpForm.formQuestions)\n .filter(q => q.formSectionId === section.id)\n .sort((a, b) => a.questionOrder - b.questionOrder)\n .map(q => ({\n ...q,\n questionIdentifierKey: `${section.name}_${repeatKey}.${q.name}`,\n isShowCommentInput: true,\n })),\n isOriginalSection: false,\n sectionPositionSuffix: repeatKey,\n };\n dynamicSections.push(clonedSection);\n }\n }\n }\n\n return dynamicSections;\n};\n\n\nexport const applyUrlSeedValuesForAll = (dynamicSections, urlContext) => {\n if (!Array.isArray(dynamicSections)) return;\n\n // urlContext is derived from query params that start with `udpf_` (see useUdpFormParameters).\n // Keys are stored without the prefix, e.g. `udpf_section1.question1=val` -> urlContext['section1.question1'] = 'val'\n const context = (urlContext && typeof urlContext === 'object') ? urlContext : {};\n // Build a case-insensitive view of urlContext so callers can use udpf_ keys without worrying about case.\n // If duplicate keys exist with different casing, the last one encountered wins.\n const contextCI: Record<string, any> = {};\n Object.keys(context).forEach(k => {\n contextCI[String(k).toLowerCase()] = (context as any)[k];\n });\n\n // 1) Collect URL values into nested structure: { [sectionKey]: { [questionName]: { value, comments: [] } } }\n const urlValuesNested: {\n [sectionKey: string]: { [qName: string]: { value: any; comments: any[] } };\n } = {};\n dynamicSections.forEach(section => {\n const sectionKey = section.isOriginalSection\n ? section.name\n : `${section.name}_${section.sectionPositionSuffix}`;\n (section.formQuestions || []).forEach(q => {\n if (!q) return;\n const candidates = [q.processedSubmissionName, q.questionIdentifierKey, q.name].filter(\n Boolean,\n ) as string[];\n let urlVal: any = undefined;\n for (const c of candidates) {\n const key = String(c).toLowerCase();\n if (Object.prototype.hasOwnProperty.call(contextCI, key)) {\n urlVal = contextCI[key];\n break;\n }\n }\n if (urlVal !== undefined && urlVal !== null) {\n if (!urlValuesNested[sectionKey]) urlValuesNested[sectionKey] = {};\n urlValuesNested[sectionKey][q.name] = { value: urlVal, comments: [] };\n }\n });\n });\n\n // Caller is responsible for merging with saved submissionResponseData.\n // Here we only return the url-derived seed values + paragraph defaults.\n const merged: { [sectionKey: string]: { [qName: string]: { value: any; comments: any[] } } } = {};\n Object.entries(urlValuesNested).forEach(([sectionKey, qMap]) => {\n if (!merged[sectionKey]) merged[sectionKey] = {} as any;\n Object.entries(qMap).forEach(([qName, valObj]) => {\n const existing = merged[sectionKey][qName];\n // Only set from URL if no saved value exists (null/undefined/empty-string)\n const isMissing =\n existing == null ||\n existing.value == null ||\n (typeof existing.value === 'string' && existing.value.trim() === '');\n if (isMissing) {\n merged[sectionKey][qName] = valObj;\n }\n });\n });\n\n // 3) Paragraph defaults: if still undefined/null, use fieldProperties.paragraphText\n dynamicSections.forEach(section => {\n const sectionKey = section.isOriginalSection\n ? section.name\n : `${section.name}_${section.sectionPositionSuffix}`;\n if (!merged[sectionKey]) merged[sectionKey] = {} as any;\n (section.formQuestions || []).forEach(q => {\n if (!q) return;\n if (q.fieldTypeId === UdpFormsFieldTypeEnum.Paragraph) {\n const existing = merged[sectionKey][q.name];\n const isMissing =\n existing == null ||\n existing.value == null ||\n (typeof existing.value === 'string' && existing.value.trim() === '');\n if (isMissing) {\n let fieldProps: any = q?.fieldProperties;\n if (typeof fieldProps === 'string') {\n try {\n fieldProps = JSON.parse(fieldProps || '{}');\n } catch {\n fieldProps = {};\n }\n }\n merged[sectionKey][q.name] = {\n value: fieldProps?.paragraphText ?? '',\n comments: [],\n };\n }\n }\n });\n });\n\n return merged;\n};\n"]}