@contentstack/live-preview-utils 3.2.3 → 3.2.4

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 (40) hide show
  1. package/README.md +1 -1
  2. package/dist/legacy/index.d.cts +1 -1
  3. package/dist/legacy/index.d.ts +1 -1
  4. package/dist/legacy/light-sdk.cjs +1 -1
  5. package/dist/legacy/light-sdk.js +1 -1
  6. package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.cjs +1 -1
  7. package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.js +1 -1
  8. package/dist/legacy/preview/contentstack-live-preview-HOC.cjs +1 -1
  9. package/dist/legacy/preview/contentstack-live-preview-HOC.js +1 -1
  10. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.cjs +23 -20
  11. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.cjs.map +1 -1
  12. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.js +23 -20
  13. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.js.map +1 -1
  14. package/dist/legacy/visualBuilder/eventManager/useCollab.cjs +6 -2
  15. package/dist/legacy/visualBuilder/eventManager/useCollab.cjs.map +1 -1
  16. package/dist/legacy/visualBuilder/eventManager/useCollab.js +6 -2
  17. package/dist/legacy/visualBuilder/eventManager/useCollab.js.map +1 -1
  18. package/dist/legacy/visualBuilder/generators/generateThread.cjs +1 -0
  19. package/dist/legacy/visualBuilder/generators/generateThread.cjs.map +1 -1
  20. package/dist/legacy/visualBuilder/generators/generateThread.js +1 -0
  21. package/dist/legacy/visualBuilder/generators/generateThread.js.map +1 -1
  22. package/dist/modern/light-sdk.cjs +1 -1
  23. package/dist/modern/light-sdk.js +1 -1
  24. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.cjs +1 -1
  25. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.js +1 -1
  26. package/dist/modern/preview/contentstack-live-preview-HOC.cjs +1 -1
  27. package/dist/modern/preview/contentstack-live-preview-HOC.js +1 -1
  28. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.cjs +7 -1
  29. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.cjs.map +1 -1
  30. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.js +7 -1
  31. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.js.map +1 -1
  32. package/dist/modern/visualBuilder/eventManager/useCollab.cjs +4 -0
  33. package/dist/modern/visualBuilder/eventManager/useCollab.cjs.map +1 -1
  34. package/dist/modern/visualBuilder/eventManager/useCollab.js +4 -0
  35. package/dist/modern/visualBuilder/eventManager/useCollab.js.map +1 -1
  36. package/dist/modern/visualBuilder/generators/generateThread.cjs +1 -0
  37. package/dist/modern/visualBuilder/generators/generateThread.cjs.map +1 -1
  38. package/dist/modern/visualBuilder/generators/generateThread.js +1 -0
  39. package/dist/modern/visualBuilder/generators/generateThread.js.map +1 -1
  40. package/package.json +1 -1
package/README.md CHANGED
@@ -16,7 +16,7 @@ Alternatively, if you want to include the package directly in your website HTML
16
16
 
17
17
  ```html
18
18
  <script type='module' integrity='sha384-b6G+ggU20rGxqCqsgaS6zludFgj5N11xsuXhMEIARMuQY2PtyDS04TU0H5goP+32' crossorigin="anonymous">
19
- import ContentstackLivePreview from 'https://esm.sh/@contentstack/live-preview-utils@3.2.3';
19
+ import ContentstackLivePreview from 'https://esm.sh/@contentstack/live-preview-utils@3.2.4';
20
20
 
21
21
  ContentstackLivePreview.init({
22
22
  stackDetails: {
@@ -5,7 +5,7 @@ import './livePreview/types/onEntryChangeCallback.type.cjs';
5
5
  import './visualBuilder/types/collab.types.cjs';
6
6
 
7
7
  type IStackSdk = IStackSdk$1;
8
- declare const ContentstackLivePreview: typeof LightLivePreviewHoC | typeof ContentstackLivePreview$1;
8
+ declare const ContentstackLivePreview: typeof ContentstackLivePreview$1 | typeof LightLivePreviewHoC;
9
9
  declare const VB_EmptyBlockParentClass = "visual-builder__empty-block-parent";
10
10
 
11
11
  export { type IStackSdk, VB_EmptyBlockParentClass, ContentstackLivePreview as default };
@@ -5,7 +5,7 @@ import './livePreview/types/onEntryChangeCallback.type.js';
5
5
  import './visualBuilder/types/collab.types.js';
6
6
 
7
7
  type IStackSdk = IStackSdk$1;
8
- declare const ContentstackLivePreview: typeof LightLivePreviewHoC | typeof ContentstackLivePreview$1;
8
+ declare const ContentstackLivePreview: typeof ContentstackLivePreview$1 | typeof LightLivePreviewHoC;
9
9
  declare const VB_EmptyBlockParentClass = "visual-builder__empty-block-parent";
10
10
 
11
11
  export { type IStackSdk, VB_EmptyBlockParentClass, ContentstackLivePreview as default };
@@ -60,7 +60,7 @@ var _LightLivePreviewHoC = class _LightLivePreviewHoC {
60
60
  static unsubscribeOnEntryChange() {
61
61
  }
62
62
  static getSdkVersion() {
63
- return "3.2.3";
63
+ return "3.2.4";
64
64
  }
65
65
  };
66
66
  _LightLivePreviewHoC.previewConstructors = {};
@@ -38,7 +38,7 @@ var _LightLivePreviewHoC = class _LightLivePreviewHoC {
38
38
  static unsubscribeOnEntryChange() {
39
39
  }
40
40
  static getSdkVersion() {
41
- return "3.2.3";
41
+ return "3.2.4";
42
42
  }
43
43
  };
44
44
  _LightLivePreviewHoC.previewConstructors = {};
@@ -89,7 +89,7 @@ function sendInitializeLivePreviewPostMessageEvent() {
89
89
  config: {
90
90
  shouldReload: import_configManager.default.get().ssr,
91
91
  href: window.location.href,
92
- sdkVersion: "3.2.3",
92
+ sdkVersion: "3.2.4",
93
93
  mode: import_configManager.default.get().mode
94
94
  }
95
95
  }
@@ -55,7 +55,7 @@ function sendInitializeLivePreviewPostMessageEvent() {
55
55
  config: {
56
56
  shouldReload: Config.get().ssr,
57
57
  href: window.location.href,
58
- sdkVersion: "3.2.3",
58
+ sdkVersion: "3.2.4",
59
59
  mode: Config.get().mode
60
60
  }
61
61
  }
@@ -227,7 +227,7 @@ var _ContentstackLivePreview = class _ContentstackLivePreview {
227
227
  * @returns The version of the SDK as a string.
228
228
  */
229
229
  static getSdkVersion() {
230
- return "3.2.3";
230
+ return "3.2.4";
231
231
  }
232
232
  };
233
233
  _ContentstackLivePreview.previewConstructors = {};
@@ -195,7 +195,7 @@ var _ContentstackLivePreview = class _ContentstackLivePreview {
195
195
  * @returns The version of the SDK as a string.
196
196
  */
197
197
  static getSdkVersion() {
198
- return "3.2.3";
198
+ return "3.2.4";
199
199
  }
200
200
  };
201
201
  _ContentstackLivePreview.previewConstructors = {};
@@ -94,26 +94,29 @@ var MentionSuggestionsList = ({
94
94
  }
95
95
  },
96
96
  ref: listRef,
97
- children: filteredUsers.map((user, index) => {
98
- var _a2;
99
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
100
- "li",
101
- {
102
- onClick: () => insertMention(user),
103
- className: (0, import_classnames.default)(
104
- "collab-thread-body--input--textarea--suggestionsList--item",
105
- (0, import_collab.collabStyles)()["collab-thread-body--input--textarea--suggestionsList--item"],
106
- index === selectedIndex ? (0, import_collab.collabStyles)()["collab-thread-body--input--textarea--suggestionsList--item-selected"] : ""
107
- ),
108
- ref: (el) => itemRefs.current[index] = el,
109
- onKeyDown: (e) => e.key === "Enter" ? insertMention(user) : handleKeyDown(e),
110
- tabIndex: -1,
111
- "aria-selected": index === selectedIndex,
112
- children: (((_a2 = user.display) == null ? void 0 : _a2.length) || 0) > 20 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Tooltip.default, { content: user.display || "", children: (user.display || "").substring(0, 18) + "..." }) : user.display || ""
113
- },
114
- user.uid
115
- );
116
- })
97
+ children: filteredUsers.map((user, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
98
+ "li",
99
+ {
100
+ onClick: () => insertMention(user),
101
+ className: (0, import_classnames.default)(
102
+ "collab-thread-body--input--textarea--suggestionsList--item",
103
+ (0, import_collab.collabStyles)()["collab-thread-body--input--textarea--suggestionsList--item"],
104
+ index === selectedIndex ? (0, import_collab.collabStyles)()["collab-thread-body--input--textarea--suggestionsList--item-selected"] : ""
105
+ ),
106
+ ref: (el) => itemRefs.current[index] = el,
107
+ onKeyDown: (e) => e.key === "Enter" ? insertMention(user) : handleKeyDown(e),
108
+ tabIndex: -1,
109
+ "aria-selected": index === selectedIndex,
110
+ children: user.display === user.email ? user.display.length > 20 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Tooltip.default, { content: user.display || "", children: (user.display || "").substring(0, 18) + "..." }) : user.display : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
111
+ import_Tooltip.default,
112
+ {
113
+ content: user.display + " - " + user.email || "",
114
+ children: user.display.length > 20 ? (user.display || "").substring(0, 18) + "..." : user.display
115
+ }
116
+ )
117
+ },
118
+ user.uid
119
+ ))
117
120
  }
118
121
  );
119
122
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.tsx"],"sourcesContent":["/** @jsxImportSource preact */\nimport React from \"preact/compat\";\nimport { useEffect } from \"preact/hooks\";\nimport { useCommentTextArea } from \"../../../hooks/useCommentTextArea\";\nimport { collabStyles, flexAlignCenter } from \"../../../collab.style\";\nimport {\n ICommentTextAreaProps,\n IMentionList,\n} from \"../../../types/collab.types\";\nimport classNames from \"classnames\";\nimport Tooltip from \"../Tooltip/Tooltip\";\n\nconst ErrorIndicator: React.FC<{ errorMessage: string }> = ({\n errorMessage,\n}) => (\n <div\n className={classNames(\n \"collab-thread-input-indicator--error\",\n collabStyles()[\"collab-thread-input-indicator--error\"]\n )}\n >\n {errorMessage}\n </div>\n);\n\nconst CharacterCounter: React.FC<{\n currentLength: number;\n maxLength: number;\n}> = ({ currentLength, maxLength }) => (\n <div\n className={classNames(\n \"collab-thread-input-indicator--count\",\n collabStyles()[\"collab-thread-input-indicator--count\"]\n )}\n >\n {currentLength}/{maxLength}\n </div>\n);\n\nconst MentionSuggestionsList: React.FC<{\n filteredUsers: IMentionList[];\n selectedIndex: number;\n cursorPosition: { top: number; showAbove: boolean };\n inputRef: React.RefObject<HTMLTextAreaElement>;\n listRef: React.RefObject<HTMLUListElement>;\n itemRefs: React.MutableRefObject<(HTMLLIElement | null)[]>;\n insertMention: (user: IMentionList) => void;\n handleKeyDown: (event: KeyboardEvent) => void;\n}> = ({\n filteredUsers,\n selectedIndex,\n cursorPosition,\n inputRef,\n listRef,\n itemRefs,\n insertMention,\n handleKeyDown,\n}) => {\n if (filteredUsers.length === 0) return null;\n\n return (\n <ul\n className={classNames(\n \"collab-thread-body--input--textarea--suggestionsList\",\n collabStyles()[\n \"collab-thread-body--input--textarea--suggestionsList\"\n ]\n )}\n style={{\n ...(cursorPosition.showAbove\n ? {\n bottom: `${window.innerHeight - (inputRef.current?.getBoundingClientRect().top || 0) - cursorPosition.top}px`,\n top: \"auto\",\n }\n : {\n top: `${(inputRef.current?.getBoundingClientRect().top || 0) + cursorPosition.top}px`,\n }),\n }}\n ref={listRef}\n >\n {filteredUsers.map((user, index) => (\n <li\n key={user.uid}\n onClick={() => insertMention(user)}\n className={classNames(\n \"collab-thread-body--input--textarea--suggestionsList--item\",\n collabStyles()[\n \"collab-thread-body--input--textarea--suggestionsList--item\"\n ],\n index === selectedIndex\n ? collabStyles()[\n \"collab-thread-body--input--textarea--suggestionsList--item-selected\"\n ]\n : \"\"\n )}\n ref={(el) => (itemRefs.current[index] = el)}\n onKeyDown={(e) =>\n e.key === \"Enter\"\n ? insertMention(user)\n : handleKeyDown(e as KeyboardEvent)\n }\n tabIndex={-1}\n aria-selected={index === selectedIndex}\n >\n {(user.display?.length || 0) > 20 ? (\n <Tooltip content={user.display || \"\"}>\n {(user.display || \"\").substring(0, 18) + \"...\"}\n </Tooltip>\n ) : (\n user.display || \"\"\n )}\n </li>\n ))}\n </ul>\n );\n};\n\nconst CommentTextArea: React.FC<ICommentTextAreaProps> = React.memo(\n ({ userState, handleOnSaveRef, comment, onClose }) => {\n const {\n state,\n error,\n showSuggestions,\n cursorPosition,\n selectedIndex,\n filteredUsers,\n inputRef,\n listRef,\n itemRefs,\n handleInputChange,\n handleKeyDown,\n handleSubmit,\n insertMention,\n maxMessageLength,\n } = useCommentTextArea(userState, comment, onClose);\n\n const onChangeHandler = (event: Event) =>\n handleInputChange(event as any);\n const onKeyDownHandler = (event: KeyboardEvent) =>\n handleKeyDown(event as any);\n\n useEffect(() => {\n handleOnSaveRef.current = handleSubmit;\n }, [handleSubmit, handleOnSaveRef]);\n\n return (\n <div\n className={classNames(\n \"collab-thread-body--input--wrapper\",\n collabStyles()[\"collab-thread-body--input--wrapper\"]\n )}\n >\n <div\n className={classNames(\n \"collab-thread-body--input\",\n collabStyles()[\"collab-thread-body--input\"]\n )}\n >\n <div\n className={classNames(\n \"collab-thread-body--input--textarea--wrapper\",\n collabStyles()[\n \"collab-thread-body--input--textarea--wrapper\"\n ]\n )}\n >\n <textarea\n name=\"collab-thread-body--input--textarea\"\n id=\"collab-thread-body--input--textarea\"\n rows={1}\n className={classNames(\n \"collab-thread-body--input--textarea\",\n collabStyles()[\n \"collab-thread-body--input--textarea\"\n ]\n )}\n value={state.message}\n onChange={onChangeHandler}\n onKeyDown={onKeyDownHandler}\n maxLength={maxMessageLength}\n placeholder=\"Enter a comment or tag others using “@”\"\n ref={inputRef}\n />\n {showSuggestions && (\n <MentionSuggestionsList\n filteredUsers={filteredUsers}\n selectedIndex={selectedIndex}\n cursorPosition={cursorPosition}\n inputRef={inputRef}\n listRef={listRef}\n itemRefs={itemRefs}\n insertMention={insertMention}\n handleKeyDown={handleKeyDown}\n />\n )}\n </div>\n </div>\n\n <div\n className={classNames(\n \"collab-thread-input-indicator--wrapper\",\n \"flex-v-center\",\n collabStyles()[\n \"collab-thread-input-indicator--wrapper\"\n ],\n flexAlignCenter\n )}\n >\n <ErrorIndicator errorMessage={error.message} />\n <CharacterCounter\n currentLength={state.message.length}\n maxLength={maxMessageLength}\n />\n </div>\n </div>\n );\n }\n);\n\nexport default CommentTextArea;\n"],"mappings":"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","names":["classNames","_a","Tooltip","React"]}
1
+ {"version":3,"sources":["../../../../../../src/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.tsx"],"sourcesContent":["/** @jsxImportSource preact */\nimport React from \"preact/compat\";\nimport { useEffect } from \"preact/hooks\";\nimport { useCommentTextArea } from \"../../../hooks/useCommentTextArea\";\nimport { collabStyles, flexAlignCenter } from \"../../../collab.style\";\nimport {\n ICommentTextAreaProps,\n IMentionList,\n} from \"../../../types/collab.types\";\nimport classNames from \"classnames\";\nimport Tooltip from \"../Tooltip/Tooltip\";\n\nconst ErrorIndicator: React.FC<{ errorMessage: string }> = ({\n errorMessage,\n}) => (\n <div\n className={classNames(\n \"collab-thread-input-indicator--error\",\n collabStyles()[\"collab-thread-input-indicator--error\"]\n )}\n >\n {errorMessage}\n </div>\n);\n\nconst CharacterCounter: React.FC<{\n currentLength: number;\n maxLength: number;\n}> = ({ currentLength, maxLength }) => (\n <div\n className={classNames(\n \"collab-thread-input-indicator--count\",\n collabStyles()[\"collab-thread-input-indicator--count\"]\n )}\n >\n {currentLength}/{maxLength}\n </div>\n);\n\nconst MentionSuggestionsList: React.FC<{\n filteredUsers: IMentionList[];\n selectedIndex: number;\n cursorPosition: { top: number; showAbove: boolean };\n inputRef: React.RefObject<HTMLTextAreaElement>;\n listRef: React.RefObject<HTMLUListElement>;\n itemRefs: React.MutableRefObject<(HTMLLIElement | null)[]>;\n insertMention: (user: IMentionList) => void;\n handleKeyDown: (event: KeyboardEvent) => void;\n}> = ({\n filteredUsers,\n selectedIndex,\n cursorPosition,\n inputRef,\n listRef,\n itemRefs,\n insertMention,\n handleKeyDown,\n}) => {\n if (filteredUsers.length === 0) return null;\n\n return (\n <ul\n className={classNames(\n \"collab-thread-body--input--textarea--suggestionsList\",\n collabStyles()[\n \"collab-thread-body--input--textarea--suggestionsList\"\n ]\n )}\n style={{\n ...(cursorPosition.showAbove\n ? {\n bottom: `${window.innerHeight - (inputRef.current?.getBoundingClientRect().top || 0) - cursorPosition.top}px`,\n top: \"auto\",\n }\n : {\n top: `${(inputRef.current?.getBoundingClientRect().top || 0) + cursorPosition.top}px`,\n }),\n }}\n ref={listRef}\n >\n {filteredUsers.map((user, index) => (\n <li\n key={user.uid}\n onClick={() => insertMention(user)}\n className={classNames(\n \"collab-thread-body--input--textarea--suggestionsList--item\",\n collabStyles()[\n \"collab-thread-body--input--textarea--suggestionsList--item\"\n ],\n index === selectedIndex\n ? collabStyles()[\n \"collab-thread-body--input--textarea--suggestionsList--item-selected\"\n ]\n : \"\"\n )}\n ref={(el) => (itemRefs.current[index] = el)}\n onKeyDown={(e) =>\n e.key === \"Enter\"\n ? insertMention(user)\n : handleKeyDown(e as KeyboardEvent)\n }\n tabIndex={-1}\n aria-selected={index === selectedIndex}\n >\n {user.display === user.email ? (\n user.display.length > 20 ? (\n <Tooltip content={user.display || \"\"}>\n {(user.display || \"\").substring(0, 18) + \"...\"}\n </Tooltip>\n ) : (\n user.display\n )\n ) : (\n <Tooltip\n content={user.display + \" - \" + user.email || \"\"}\n >\n {user.display.length > 20\n ? (user.display || \"\").substring(0, 18) + \"...\"\n : user.display}\n </Tooltip>\n )}\n </li>\n ))}\n </ul>\n );\n};\n\nconst CommentTextArea: React.FC<ICommentTextAreaProps> = React.memo(\n ({ userState, handleOnSaveRef, comment, onClose }) => {\n const {\n state,\n error,\n showSuggestions,\n cursorPosition,\n selectedIndex,\n filteredUsers,\n inputRef,\n listRef,\n itemRefs,\n handleInputChange,\n handleKeyDown,\n handleSubmit,\n insertMention,\n maxMessageLength,\n } = useCommentTextArea(userState, comment, onClose);\n\n const onChangeHandler = (event: Event) =>\n handleInputChange(event as any);\n const onKeyDownHandler = (event: KeyboardEvent) =>\n handleKeyDown(event as any);\n\n useEffect(() => {\n handleOnSaveRef.current = handleSubmit;\n }, [handleSubmit, handleOnSaveRef]);\n\n return (\n <div\n className={classNames(\n \"collab-thread-body--input--wrapper\",\n collabStyles()[\"collab-thread-body--input--wrapper\"]\n )}\n >\n <div\n className={classNames(\n \"collab-thread-body--input\",\n collabStyles()[\"collab-thread-body--input\"]\n )}\n >\n <div\n className={classNames(\n \"collab-thread-body--input--textarea--wrapper\",\n collabStyles()[\n \"collab-thread-body--input--textarea--wrapper\"\n ]\n )}\n >\n <textarea\n name=\"collab-thread-body--input--textarea\"\n id=\"collab-thread-body--input--textarea\"\n rows={1}\n className={classNames(\n \"collab-thread-body--input--textarea\",\n collabStyles()[\n \"collab-thread-body--input--textarea\"\n ]\n )}\n value={state.message}\n onChange={onChangeHandler}\n onKeyDown={onKeyDownHandler}\n maxLength={maxMessageLength}\n placeholder=\"Enter a comment or tag others using “@”\"\n ref={inputRef}\n />\n {showSuggestions && (\n <MentionSuggestionsList\n filteredUsers={filteredUsers}\n selectedIndex={selectedIndex}\n cursorPosition={cursorPosition}\n inputRef={inputRef}\n listRef={listRef}\n itemRefs={itemRefs}\n insertMention={insertMention}\n handleKeyDown={handleKeyDown}\n />\n )}\n </div>\n </div>\n\n <div\n className={classNames(\n \"collab-thread-input-indicator--wrapper\",\n \"flex-v-center\",\n collabStyles()[\n \"collab-thread-input-indicator--wrapper\"\n ],\n flexAlignCenter\n )}\n >\n <ErrorIndicator errorMessage={error.message} />\n <CharacterCounter\n currentLength={state.message.length}\n maxLength={maxMessageLength}\n />\n </div>\n </div>\n );\n }\n);\n\nexport default CommentTextArea;\n"],"mappings":"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","names":["classNames","Tooltip","React"]}
@@ -62,26 +62,29 @@ var MentionSuggestionsList = ({
62
62
  }
63
63
  },
64
64
  ref: listRef,
65
- children: filteredUsers.map((user, index) => {
66
- var _a2;
67
- return /* @__PURE__ */ jsx(
68
- "li",
69
- {
70
- onClick: () => insertMention(user),
71
- className: classNames(
72
- "collab-thread-body--input--textarea--suggestionsList--item",
73
- collabStyles()["collab-thread-body--input--textarea--suggestionsList--item"],
74
- index === selectedIndex ? collabStyles()["collab-thread-body--input--textarea--suggestionsList--item-selected"] : ""
75
- ),
76
- ref: (el) => itemRefs.current[index] = el,
77
- onKeyDown: (e) => e.key === "Enter" ? insertMention(user) : handleKeyDown(e),
78
- tabIndex: -1,
79
- "aria-selected": index === selectedIndex,
80
- children: (((_a2 = user.display) == null ? void 0 : _a2.length) || 0) > 20 ? /* @__PURE__ */ jsx(Tooltip, { content: user.display || "", children: (user.display || "").substring(0, 18) + "..." }) : user.display || ""
81
- },
82
- user.uid
83
- );
84
- })
65
+ children: filteredUsers.map((user, index) => /* @__PURE__ */ jsx(
66
+ "li",
67
+ {
68
+ onClick: () => insertMention(user),
69
+ className: classNames(
70
+ "collab-thread-body--input--textarea--suggestionsList--item",
71
+ collabStyles()["collab-thread-body--input--textarea--suggestionsList--item"],
72
+ index === selectedIndex ? collabStyles()["collab-thread-body--input--textarea--suggestionsList--item-selected"] : ""
73
+ ),
74
+ ref: (el) => itemRefs.current[index] = el,
75
+ onKeyDown: (e) => e.key === "Enter" ? insertMention(user) : handleKeyDown(e),
76
+ tabIndex: -1,
77
+ "aria-selected": index === selectedIndex,
78
+ children: user.display === user.email ? user.display.length > 20 ? /* @__PURE__ */ jsx(Tooltip, { content: user.display || "", children: (user.display || "").substring(0, 18) + "..." }) : user.display : /* @__PURE__ */ jsx(
79
+ Tooltip,
80
+ {
81
+ content: user.display + " - " + user.email || "",
82
+ children: user.display.length > 20 ? (user.display || "").substring(0, 18) + "..." : user.display
83
+ }
84
+ )
85
+ },
86
+ user.uid
87
+ ))
85
88
  }
86
89
  );
87
90
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.tsx"],"sourcesContent":["/** @jsxImportSource preact */\nimport React from \"preact/compat\";\nimport { useEffect } from \"preact/hooks\";\nimport { useCommentTextArea } from \"../../../hooks/useCommentTextArea\";\nimport { collabStyles, flexAlignCenter } from \"../../../collab.style\";\nimport {\n ICommentTextAreaProps,\n IMentionList,\n} from \"../../../types/collab.types\";\nimport classNames from \"classnames\";\nimport Tooltip from \"../Tooltip/Tooltip\";\n\nconst ErrorIndicator: React.FC<{ errorMessage: string }> = ({\n errorMessage,\n}) => (\n <div\n className={classNames(\n \"collab-thread-input-indicator--error\",\n collabStyles()[\"collab-thread-input-indicator--error\"]\n )}\n >\n {errorMessage}\n </div>\n);\n\nconst CharacterCounter: React.FC<{\n currentLength: number;\n maxLength: number;\n}> = ({ currentLength, maxLength }) => (\n <div\n className={classNames(\n \"collab-thread-input-indicator--count\",\n collabStyles()[\"collab-thread-input-indicator--count\"]\n )}\n >\n {currentLength}/{maxLength}\n </div>\n);\n\nconst MentionSuggestionsList: React.FC<{\n filteredUsers: IMentionList[];\n selectedIndex: number;\n cursorPosition: { top: number; showAbove: boolean };\n inputRef: React.RefObject<HTMLTextAreaElement>;\n listRef: React.RefObject<HTMLUListElement>;\n itemRefs: React.MutableRefObject<(HTMLLIElement | null)[]>;\n insertMention: (user: IMentionList) => void;\n handleKeyDown: (event: KeyboardEvent) => void;\n}> = ({\n filteredUsers,\n selectedIndex,\n cursorPosition,\n inputRef,\n listRef,\n itemRefs,\n insertMention,\n handleKeyDown,\n}) => {\n if (filteredUsers.length === 0) return null;\n\n return (\n <ul\n className={classNames(\n \"collab-thread-body--input--textarea--suggestionsList\",\n collabStyles()[\n \"collab-thread-body--input--textarea--suggestionsList\"\n ]\n )}\n style={{\n ...(cursorPosition.showAbove\n ? {\n bottom: `${window.innerHeight - (inputRef.current?.getBoundingClientRect().top || 0) - cursorPosition.top}px`,\n top: \"auto\",\n }\n : {\n top: `${(inputRef.current?.getBoundingClientRect().top || 0) + cursorPosition.top}px`,\n }),\n }}\n ref={listRef}\n >\n {filteredUsers.map((user, index) => (\n <li\n key={user.uid}\n onClick={() => insertMention(user)}\n className={classNames(\n \"collab-thread-body--input--textarea--suggestionsList--item\",\n collabStyles()[\n \"collab-thread-body--input--textarea--suggestionsList--item\"\n ],\n index === selectedIndex\n ? collabStyles()[\n \"collab-thread-body--input--textarea--suggestionsList--item-selected\"\n ]\n : \"\"\n )}\n ref={(el) => (itemRefs.current[index] = el)}\n onKeyDown={(e) =>\n e.key === \"Enter\"\n ? insertMention(user)\n : handleKeyDown(e as KeyboardEvent)\n }\n tabIndex={-1}\n aria-selected={index === selectedIndex}\n >\n {(user.display?.length || 0) > 20 ? (\n <Tooltip content={user.display || \"\"}>\n {(user.display || \"\").substring(0, 18) + \"...\"}\n </Tooltip>\n ) : (\n user.display || \"\"\n )}\n </li>\n ))}\n </ul>\n );\n};\n\nconst CommentTextArea: React.FC<ICommentTextAreaProps> = React.memo(\n ({ userState, handleOnSaveRef, comment, onClose }) => {\n const {\n state,\n error,\n showSuggestions,\n cursorPosition,\n selectedIndex,\n filteredUsers,\n inputRef,\n listRef,\n itemRefs,\n handleInputChange,\n handleKeyDown,\n handleSubmit,\n insertMention,\n maxMessageLength,\n } = useCommentTextArea(userState, comment, onClose);\n\n const onChangeHandler = (event: Event) =>\n handleInputChange(event as any);\n const onKeyDownHandler = (event: KeyboardEvent) =>\n handleKeyDown(event as any);\n\n useEffect(() => {\n handleOnSaveRef.current = handleSubmit;\n }, [handleSubmit, handleOnSaveRef]);\n\n return (\n <div\n className={classNames(\n \"collab-thread-body--input--wrapper\",\n collabStyles()[\"collab-thread-body--input--wrapper\"]\n )}\n >\n <div\n className={classNames(\n \"collab-thread-body--input\",\n collabStyles()[\"collab-thread-body--input\"]\n )}\n >\n <div\n className={classNames(\n \"collab-thread-body--input--textarea--wrapper\",\n collabStyles()[\n \"collab-thread-body--input--textarea--wrapper\"\n ]\n )}\n >\n <textarea\n name=\"collab-thread-body--input--textarea\"\n id=\"collab-thread-body--input--textarea\"\n rows={1}\n className={classNames(\n \"collab-thread-body--input--textarea\",\n collabStyles()[\n \"collab-thread-body--input--textarea\"\n ]\n )}\n value={state.message}\n onChange={onChangeHandler}\n onKeyDown={onKeyDownHandler}\n maxLength={maxMessageLength}\n placeholder=\"Enter a comment or tag others using “@”\"\n ref={inputRef}\n />\n {showSuggestions && (\n <MentionSuggestionsList\n filteredUsers={filteredUsers}\n selectedIndex={selectedIndex}\n cursorPosition={cursorPosition}\n inputRef={inputRef}\n listRef={listRef}\n itemRefs={itemRefs}\n insertMention={insertMention}\n handleKeyDown={handleKeyDown}\n />\n )}\n </div>\n </div>\n\n <div\n className={classNames(\n \"collab-thread-input-indicator--wrapper\",\n \"flex-v-center\",\n collabStyles()[\n \"collab-thread-input-indicator--wrapper\"\n ],\n flexAlignCenter\n )}\n >\n <ErrorIndicator errorMessage={error.message} />\n <CharacterCounter\n currentLength={state.message.length}\n maxLength={maxMessageLength}\n />\n </div>\n </div>\n );\n }\n);\n\nexport default CommentTextArea;\n"],"mappings":"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","names":["_a"]}
1
+ {"version":3,"sources":["../../../../../../src/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.tsx"],"sourcesContent":["/** @jsxImportSource preact */\nimport React from \"preact/compat\";\nimport { useEffect } from \"preact/hooks\";\nimport { useCommentTextArea } from \"../../../hooks/useCommentTextArea\";\nimport { collabStyles, flexAlignCenter } from \"../../../collab.style\";\nimport {\n ICommentTextAreaProps,\n IMentionList,\n} from \"../../../types/collab.types\";\nimport classNames from \"classnames\";\nimport Tooltip from \"../Tooltip/Tooltip\";\n\nconst ErrorIndicator: React.FC<{ errorMessage: string }> = ({\n errorMessage,\n}) => (\n <div\n className={classNames(\n \"collab-thread-input-indicator--error\",\n collabStyles()[\"collab-thread-input-indicator--error\"]\n )}\n >\n {errorMessage}\n </div>\n);\n\nconst CharacterCounter: React.FC<{\n currentLength: number;\n maxLength: number;\n}> = ({ currentLength, maxLength }) => (\n <div\n className={classNames(\n \"collab-thread-input-indicator--count\",\n collabStyles()[\"collab-thread-input-indicator--count\"]\n )}\n >\n {currentLength}/{maxLength}\n </div>\n);\n\nconst MentionSuggestionsList: React.FC<{\n filteredUsers: IMentionList[];\n selectedIndex: number;\n cursorPosition: { top: number; showAbove: boolean };\n inputRef: React.RefObject<HTMLTextAreaElement>;\n listRef: React.RefObject<HTMLUListElement>;\n itemRefs: React.MutableRefObject<(HTMLLIElement | null)[]>;\n insertMention: (user: IMentionList) => void;\n handleKeyDown: (event: KeyboardEvent) => void;\n}> = ({\n filteredUsers,\n selectedIndex,\n cursorPosition,\n inputRef,\n listRef,\n itemRefs,\n insertMention,\n handleKeyDown,\n}) => {\n if (filteredUsers.length === 0) return null;\n\n return (\n <ul\n className={classNames(\n \"collab-thread-body--input--textarea--suggestionsList\",\n collabStyles()[\n \"collab-thread-body--input--textarea--suggestionsList\"\n ]\n )}\n style={{\n ...(cursorPosition.showAbove\n ? {\n bottom: `${window.innerHeight - (inputRef.current?.getBoundingClientRect().top || 0) - cursorPosition.top}px`,\n top: \"auto\",\n }\n : {\n top: `${(inputRef.current?.getBoundingClientRect().top || 0) + cursorPosition.top}px`,\n }),\n }}\n ref={listRef}\n >\n {filteredUsers.map((user, index) => (\n <li\n key={user.uid}\n onClick={() => insertMention(user)}\n className={classNames(\n \"collab-thread-body--input--textarea--suggestionsList--item\",\n collabStyles()[\n \"collab-thread-body--input--textarea--suggestionsList--item\"\n ],\n index === selectedIndex\n ? collabStyles()[\n \"collab-thread-body--input--textarea--suggestionsList--item-selected\"\n ]\n : \"\"\n )}\n ref={(el) => (itemRefs.current[index] = el)}\n onKeyDown={(e) =>\n e.key === \"Enter\"\n ? insertMention(user)\n : handleKeyDown(e as KeyboardEvent)\n }\n tabIndex={-1}\n aria-selected={index === selectedIndex}\n >\n {user.display === user.email ? (\n user.display.length > 20 ? (\n <Tooltip content={user.display || \"\"}>\n {(user.display || \"\").substring(0, 18) + \"...\"}\n </Tooltip>\n ) : (\n user.display\n )\n ) : (\n <Tooltip\n content={user.display + \" - \" + user.email || \"\"}\n >\n {user.display.length > 20\n ? (user.display || \"\").substring(0, 18) + \"...\"\n : user.display}\n </Tooltip>\n )}\n </li>\n ))}\n </ul>\n );\n};\n\nconst CommentTextArea: React.FC<ICommentTextAreaProps> = React.memo(\n ({ userState, handleOnSaveRef, comment, onClose }) => {\n const {\n state,\n error,\n showSuggestions,\n cursorPosition,\n selectedIndex,\n filteredUsers,\n inputRef,\n listRef,\n itemRefs,\n handleInputChange,\n handleKeyDown,\n handleSubmit,\n insertMention,\n maxMessageLength,\n } = useCommentTextArea(userState, comment, onClose);\n\n const onChangeHandler = (event: Event) =>\n handleInputChange(event as any);\n const onKeyDownHandler = (event: KeyboardEvent) =>\n handleKeyDown(event as any);\n\n useEffect(() => {\n handleOnSaveRef.current = handleSubmit;\n }, [handleSubmit, handleOnSaveRef]);\n\n return (\n <div\n className={classNames(\n \"collab-thread-body--input--wrapper\",\n collabStyles()[\"collab-thread-body--input--wrapper\"]\n )}\n >\n <div\n className={classNames(\n \"collab-thread-body--input\",\n collabStyles()[\"collab-thread-body--input\"]\n )}\n >\n <div\n className={classNames(\n \"collab-thread-body--input--textarea--wrapper\",\n collabStyles()[\n \"collab-thread-body--input--textarea--wrapper\"\n ]\n )}\n >\n <textarea\n name=\"collab-thread-body--input--textarea\"\n id=\"collab-thread-body--input--textarea\"\n rows={1}\n className={classNames(\n \"collab-thread-body--input--textarea\",\n collabStyles()[\n \"collab-thread-body--input--textarea\"\n ]\n )}\n value={state.message}\n onChange={onChangeHandler}\n onKeyDown={onKeyDownHandler}\n maxLength={maxMessageLength}\n placeholder=\"Enter a comment or tag others using “@”\"\n ref={inputRef}\n />\n {showSuggestions && (\n <MentionSuggestionsList\n filteredUsers={filteredUsers}\n selectedIndex={selectedIndex}\n cursorPosition={cursorPosition}\n inputRef={inputRef}\n listRef={listRef}\n itemRefs={itemRefs}\n insertMention={insertMention}\n handleKeyDown={handleKeyDown}\n />\n )}\n </div>\n </div>\n\n <div\n className={classNames(\n \"collab-thread-input-indicator--wrapper\",\n \"flex-v-center\",\n collabStyles()[\n \"collab-thread-input-indicator--wrapper\"\n ],\n flexAlignCenter\n )}\n >\n <ErrorIndicator errorMessage={error.message} />\n <CharacterCounter\n currentLength={state.message.length}\n maxLength={maxMessageLength}\n />\n </div>\n </div>\n );\n }\n);\n\nexport default CommentTextArea;\n"],"mappings":"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","names":[]}
@@ -51,7 +51,7 @@ var useCollab = () => {
51
51
  const collabEnable = (_a = import_visualBuilderPostMessage.default) == null ? void 0 : _a.on(
52
52
  import_postMessage.VisualBuilderPostMessageEvents.COLLAB_ENABLE,
53
53
  (data) => {
54
- var _a2, _b2, _c2, _d2, _e2, _f2, _g;
54
+ var _a2, _b2, _c2, _d2, _e2, _f2, _g, _h, _i;
55
55
  if (!((_a2 = data == null ? void 0 : data.data) == null ? void 0 : _a2.collab)) {
56
56
  console.error("Invalid collab data structure:", data);
57
57
  return;
@@ -61,6 +61,10 @@ var useCollab = () => {
61
61
  "collab.pauseFeedback",
62
62
  (_e2 = (_d2 = data == null ? void 0 : data.data) == null ? void 0 : _d2.collab) == null ? void 0 : _e2.pauseFeedback
63
63
  );
64
+ import_configManager.default.set(
65
+ "collab.isFeedbackMode",
66
+ (_g = (_f2 = data == null ? void 0 : data.data) == null ? void 0 : _f2.collab) == null ? void 0 : _g.isFeedbackMode
67
+ );
64
68
  (0, import_generateThread.showAllCollabIcons)();
65
69
  return;
66
70
  }
@@ -71,7 +75,7 @@ var useCollab = () => {
71
75
  );
72
76
  import_configManager.default.set(
73
77
  "collab.pauseFeedback",
74
- (_g = (_f2 = data == null ? void 0 : data.data) == null ? void 0 : _f2.collab) == null ? void 0 : _g.pauseFeedback
78
+ (_i = (_h = data == null ? void 0 : data.data) == null ? void 0 : _h.collab) == null ? void 0 : _i.pauseFeedback
75
79
  );
76
80
  import_configManager.default.set(
77
81
  "collab.inviteMetadata",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/eventManager/useCollab.ts"],"sourcesContent":["import visualBuilderPostMessage from \"../utils/visualBuilderPostMessage\";\nimport { VisualBuilderPostMessageEvents } from \"../utils/types/postMessage.types\";\nimport Config from \"../../configManager/configManager\";\nimport {\n removeAllCollabIcons,\n hideAllCollabIcons,\n removeCollabIcon,\n HighlightThread,\n showAllCollabIcons,\n} from \"../generators/generateThread\";\nimport {\n generateThread,\n handleMissingThreads,\n} from \"../generators/generateThread\";\nimport {\n IThreadDTO,\n ICollabConfig,\n IThreadIdentifier,\n IThreadRemove,\n IThreadReopen,\n} from \"../types/collab.types\";\nimport { OnEvent } from \"@contentstack/advanced-post-message\";\n\nconst handleRemoveCommentIcons = (fromShare: boolean = false): void => {\n if (fromShare) {\n hideAllCollabIcons();\n return;\n }\n removeAllCollabIcons();\n};\n\nexport const useCollab = () => {\n const config = Config.get();\n const collabEnable = visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.COLLAB_ENABLE,\n (data: OnEvent<ICollabConfig>) => {\n if (!data?.data?.collab) {\n console.error(\"Invalid collab data structure:\", data);\n return;\n }\n if (data?.data?.collab?.fromShare) {\n Config.set(\n \"collab.pauseFeedback\",\n data?.data?.collab?.pauseFeedback\n );\n showAllCollabIcons();\n return;\n }\n\n Config.set(\"collab.enable\", data.data.collab.enable ?? false);\n Config.set(\n \"collab.isFeedbackMode\",\n data.data.collab.isFeedbackMode ?? false\n );\n Config.set(\n \"collab.pauseFeedback\",\n data?.data?.collab?.pauseFeedback\n );\n Config.set(\n \"collab.inviteMetadata\",\n data.data.collab.inviteMetadata\n );\n }\n );\n\n const collabPayload = visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.COLLAB_DATA_UPDATE,\n (data: OnEvent<ICollabConfig>) => {\n if (!config?.collab?.enable) return;\n\n if (!data?.data?.collab) {\n console.error(\"Invalid collab data structure:\", data);\n return;\n }\n\n if (data?.data?.collab?.inviteMetadata) {\n Config.set(\n \"collab.inviteMetadata\",\n data?.data?.collab?.inviteMetadata\n );\n return;\n }\n\n const missingThreadIds =\n data?.data?.collab?.payload\n ?.map((payload: IThreadDTO) => generateThread(payload))\n .filter((id): id is string => id !== undefined) || [];\n if (missingThreadIds.length > 0) {\n handleMissingThreads({\n payload: { isElementPresent: false },\n threadUids: missingThreadIds,\n });\n }\n }\n );\n\n const collabDisable = visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.COLLAB_DISABLE,\n (data: OnEvent<ICollabConfig>) => {\n if (data?.data?.collab?.fromShare) {\n Config.set(\n \"collab.pauseFeedback\",\n data?.data?.collab?.pauseFeedback\n );\n handleRemoveCommentIcons(true);\n return;\n }\n\n Config.set(\"collab.enable\", false);\n Config.set(\"collab.isFeedbackMode\", false);\n\n handleRemoveCommentIcons();\n }\n );\n\n const collabThreadRemove = visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.COLLAB_THREADS_REMOVE,\n (data: OnEvent<IThreadRemove>) => {\n const threadUids = data?.data?.threadUids;\n\n if (!config?.collab?.enable) return;\n\n if (data?.data?.updateConfig) {\n Config.set(\"collab.isFeedbackMode\", true);\n }\n if (threadUids.length > 0) {\n threadUids.forEach((threadUid) => {\n removeCollabIcon(threadUid);\n });\n }\n }\n );\n\n const collabThreadReopen = visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.COLLAB_THREAD_REOPEN,\n (data: OnEvent<IThreadReopen>) => {\n const thread = data.data.thread;\n\n if (!config?.collab?.enable) return;\n\n const result = generateThread(thread, {\n hidden: Boolean(config?.collab?.pauseFeedback),\n });\n if (result) {\n handleMissingThreads({\n payload: { isElementPresent: false },\n threadUids: [result],\n });\n }\n }\n );\n\n const collabThreadHighlight = visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.COLLAB_THREAD_HIGHLIGHT,\n (data: OnEvent<IThreadIdentifier>) => {\n const { threadUid } = data.data;\n if (!config?.collab?.enable || config?.collab?.pauseFeedback)\n return;\n\n HighlightThread(threadUid);\n }\n );\n\n return () => {\n collabEnable?.unregister();\n collabPayload?.unregister();\n collabDisable?.unregister();\n collabThreadRemove?.unregister();\n collabThreadReopen?.unregister();\n collabThreadHighlight?.unregister();\n };\n};\n"],"mappings":"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","names":["import_generateThread","Config","visualBuilderPostMessage","_a","_b","_c","_d","_e","_f"]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/eventManager/useCollab.ts"],"sourcesContent":["import visualBuilderPostMessage from \"../utils/visualBuilderPostMessage\";\nimport { VisualBuilderPostMessageEvents } from \"../utils/types/postMessage.types\";\nimport Config from \"../../configManager/configManager\";\nimport {\n removeAllCollabIcons,\n hideAllCollabIcons,\n removeCollabIcon,\n HighlightThread,\n showAllCollabIcons,\n} from \"../generators/generateThread\";\nimport {\n generateThread,\n handleMissingThreads,\n} from \"../generators/generateThread\";\nimport {\n IThreadDTO,\n ICollabConfig,\n IThreadIdentifier,\n IThreadRemove,\n IThreadReopen,\n} from \"../types/collab.types\";\nimport { OnEvent } from \"@contentstack/advanced-post-message\";\n\nconst handleRemoveCommentIcons = (fromShare: boolean = false): void => {\n if (fromShare) {\n hideAllCollabIcons();\n return;\n }\n removeAllCollabIcons();\n};\n\nexport const useCollab = () => {\n const config = Config.get();\n const collabEnable = visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.COLLAB_ENABLE,\n (data: OnEvent<ICollabConfig>) => {\n if (!data?.data?.collab) {\n console.error(\"Invalid collab data structure:\", data);\n return;\n }\n if (data?.data?.collab?.fromShare) {\n Config.set(\n \"collab.pauseFeedback\",\n data?.data?.collab?.pauseFeedback\n );\n Config.set(\n \"collab.isFeedbackMode\",\n data?.data?.collab?.isFeedbackMode\n );\n showAllCollabIcons();\n return;\n }\n\n Config.set(\"collab.enable\", data.data.collab.enable ?? false);\n Config.set(\n \"collab.isFeedbackMode\",\n data.data.collab.isFeedbackMode ?? false\n );\n Config.set(\n \"collab.pauseFeedback\",\n data?.data?.collab?.pauseFeedback\n );\n Config.set(\n \"collab.inviteMetadata\",\n data.data.collab.inviteMetadata\n );\n }\n );\n\n const collabPayload = visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.COLLAB_DATA_UPDATE,\n (data: OnEvent<ICollabConfig>) => {\n if (!config?.collab?.enable) return;\n\n if (!data?.data?.collab) {\n console.error(\"Invalid collab data structure:\", data);\n return;\n }\n\n if (data?.data?.collab?.inviteMetadata) {\n Config.set(\n \"collab.inviteMetadata\",\n data?.data?.collab?.inviteMetadata\n );\n return;\n }\n\n const missingThreadIds =\n data?.data?.collab?.payload\n ?.map((payload: IThreadDTO) => generateThread(payload))\n .filter((id): id is string => id !== undefined) || [];\n if (missingThreadIds.length > 0) {\n handleMissingThreads({\n payload: { isElementPresent: false },\n threadUids: missingThreadIds,\n });\n }\n }\n );\n\n const collabDisable = visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.COLLAB_DISABLE,\n (data: OnEvent<ICollabConfig>) => {\n if (data?.data?.collab?.fromShare) {\n Config.set(\n \"collab.pauseFeedback\",\n data?.data?.collab?.pauseFeedback\n );\n handleRemoveCommentIcons(true);\n return;\n }\n\n Config.set(\"collab.enable\", false);\n Config.set(\"collab.isFeedbackMode\", false);\n\n handleRemoveCommentIcons();\n }\n );\n\n const collabThreadRemove = visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.COLLAB_THREADS_REMOVE,\n (data: OnEvent<IThreadRemove>) => {\n const threadUids = data?.data?.threadUids;\n\n if (!config?.collab?.enable) return;\n\n if (data?.data?.updateConfig) {\n Config.set(\"collab.isFeedbackMode\", true);\n }\n if (threadUids.length > 0) {\n threadUids.forEach((threadUid) => {\n removeCollabIcon(threadUid);\n });\n }\n }\n );\n\n const collabThreadReopen = visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.COLLAB_THREAD_REOPEN,\n (data: OnEvent<IThreadReopen>) => {\n const thread = data.data.thread;\n\n if (!config?.collab?.enable) return;\n\n const result = generateThread(thread, {\n hidden: Boolean(config?.collab?.pauseFeedback),\n });\n if (result) {\n handleMissingThreads({\n payload: { isElementPresent: false },\n threadUids: [result],\n });\n }\n }\n );\n\n const collabThreadHighlight = visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.COLLAB_THREAD_HIGHLIGHT,\n (data: OnEvent<IThreadIdentifier>) => {\n const { threadUid } = data.data;\n if (!config?.collab?.enable || config?.collab?.pauseFeedback)\n return;\n\n HighlightThread(threadUid);\n }\n );\n\n return () => {\n collabEnable?.unregister();\n collabPayload?.unregister();\n collabDisable?.unregister();\n collabThreadRemove?.unregister();\n collabThreadReopen?.unregister();\n collabThreadHighlight?.unregister();\n };\n};\n"],"mappings":"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","names":["import_generateThread","Config","visualBuilderPostMessage","_a","_b","_c","_d","_e","_f"]}
@@ -28,7 +28,7 @@ var useCollab = () => {
28
28
  const collabEnable = (_a = visualBuilderPostMessage) == null ? void 0 : _a.on(
29
29
  VisualBuilderPostMessageEvents.COLLAB_ENABLE,
30
30
  (data) => {
31
- var _a2, _b2, _c2, _d2, _e2, _f2, _g;
31
+ var _a2, _b2, _c2, _d2, _e2, _f2, _g, _h, _i;
32
32
  if (!((_a2 = data == null ? void 0 : data.data) == null ? void 0 : _a2.collab)) {
33
33
  console.error("Invalid collab data structure:", data);
34
34
  return;
@@ -38,6 +38,10 @@ var useCollab = () => {
38
38
  "collab.pauseFeedback",
39
39
  (_e2 = (_d2 = data == null ? void 0 : data.data) == null ? void 0 : _d2.collab) == null ? void 0 : _e2.pauseFeedback
40
40
  );
41
+ Config.set(
42
+ "collab.isFeedbackMode",
43
+ (_g = (_f2 = data == null ? void 0 : data.data) == null ? void 0 : _f2.collab) == null ? void 0 : _g.isFeedbackMode
44
+ );
41
45
  showAllCollabIcons();
42
46
  return;
43
47
  }
@@ -48,7 +52,7 @@ var useCollab = () => {
48
52
  );
49
53
  Config.set(
50
54
  "collab.pauseFeedback",
51
- (_g = (_f2 = data == null ? void 0 : data.data) == null ? void 0 : _f2.collab) == null ? void 0 : _g.pauseFeedback
55
+ (_i = (_h = data == null ? void 0 : data.data) == null ? void 0 : _h.collab) == null ? void 0 : _i.pauseFeedback
52
56
  );
53
57
  Config.set(
54
58
  "collab.inviteMetadata",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/eventManager/useCollab.ts"],"sourcesContent":["import visualBuilderPostMessage from \"../utils/visualBuilderPostMessage\";\nimport { VisualBuilderPostMessageEvents } from \"../utils/types/postMessage.types\";\nimport Config from \"../../configManager/configManager\";\nimport {\n removeAllCollabIcons,\n hideAllCollabIcons,\n removeCollabIcon,\n HighlightThread,\n showAllCollabIcons,\n} from \"../generators/generateThread\";\nimport {\n generateThread,\n handleMissingThreads,\n} from \"../generators/generateThread\";\nimport {\n IThreadDTO,\n ICollabConfig,\n IThreadIdentifier,\n IThreadRemove,\n IThreadReopen,\n} from \"../types/collab.types\";\nimport { OnEvent } from \"@contentstack/advanced-post-message\";\n\nconst handleRemoveCommentIcons = (fromShare: boolean = false): void => {\n if (fromShare) {\n hideAllCollabIcons();\n return;\n }\n removeAllCollabIcons();\n};\n\nexport const useCollab = () => {\n const config = Config.get();\n const collabEnable = visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.COLLAB_ENABLE,\n (data: OnEvent<ICollabConfig>) => {\n if (!data?.data?.collab) {\n console.error(\"Invalid collab data structure:\", data);\n return;\n }\n if (data?.data?.collab?.fromShare) {\n Config.set(\n \"collab.pauseFeedback\",\n data?.data?.collab?.pauseFeedback\n );\n showAllCollabIcons();\n return;\n }\n\n Config.set(\"collab.enable\", data.data.collab.enable ?? false);\n Config.set(\n \"collab.isFeedbackMode\",\n data.data.collab.isFeedbackMode ?? false\n );\n Config.set(\n \"collab.pauseFeedback\",\n data?.data?.collab?.pauseFeedback\n );\n Config.set(\n \"collab.inviteMetadata\",\n data.data.collab.inviteMetadata\n );\n }\n );\n\n const collabPayload = visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.COLLAB_DATA_UPDATE,\n (data: OnEvent<ICollabConfig>) => {\n if (!config?.collab?.enable) return;\n\n if (!data?.data?.collab) {\n console.error(\"Invalid collab data structure:\", data);\n return;\n }\n\n if (data?.data?.collab?.inviteMetadata) {\n Config.set(\n \"collab.inviteMetadata\",\n data?.data?.collab?.inviteMetadata\n );\n return;\n }\n\n const missingThreadIds =\n data?.data?.collab?.payload\n ?.map((payload: IThreadDTO) => generateThread(payload))\n .filter((id): id is string => id !== undefined) || [];\n if (missingThreadIds.length > 0) {\n handleMissingThreads({\n payload: { isElementPresent: false },\n threadUids: missingThreadIds,\n });\n }\n }\n );\n\n const collabDisable = visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.COLLAB_DISABLE,\n (data: OnEvent<ICollabConfig>) => {\n if (data?.data?.collab?.fromShare) {\n Config.set(\n \"collab.pauseFeedback\",\n data?.data?.collab?.pauseFeedback\n );\n handleRemoveCommentIcons(true);\n return;\n }\n\n Config.set(\"collab.enable\", false);\n Config.set(\"collab.isFeedbackMode\", false);\n\n handleRemoveCommentIcons();\n }\n );\n\n const collabThreadRemove = visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.COLLAB_THREADS_REMOVE,\n (data: OnEvent<IThreadRemove>) => {\n const threadUids = data?.data?.threadUids;\n\n if (!config?.collab?.enable) return;\n\n if (data?.data?.updateConfig) {\n Config.set(\"collab.isFeedbackMode\", true);\n }\n if (threadUids.length > 0) {\n threadUids.forEach((threadUid) => {\n removeCollabIcon(threadUid);\n });\n }\n }\n );\n\n const collabThreadReopen = visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.COLLAB_THREAD_REOPEN,\n (data: OnEvent<IThreadReopen>) => {\n const thread = data.data.thread;\n\n if (!config?.collab?.enable) return;\n\n const result = generateThread(thread, {\n hidden: Boolean(config?.collab?.pauseFeedback),\n });\n if (result) {\n handleMissingThreads({\n payload: { isElementPresent: false },\n threadUids: [result],\n });\n }\n }\n );\n\n const collabThreadHighlight = visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.COLLAB_THREAD_HIGHLIGHT,\n (data: OnEvent<IThreadIdentifier>) => {\n const { threadUid } = data.data;\n if (!config?.collab?.enable || config?.collab?.pauseFeedback)\n return;\n\n HighlightThread(threadUid);\n }\n );\n\n return () => {\n collabEnable?.unregister();\n collabPayload?.unregister();\n collabDisable?.unregister();\n collabThreadRemove?.unregister();\n collabThreadReopen?.unregister();\n collabThreadHighlight?.unregister();\n };\n};\n"],"mappings":"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","names":["_a","_b","_c","_d","_e","_f"]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/eventManager/useCollab.ts"],"sourcesContent":["import visualBuilderPostMessage from \"../utils/visualBuilderPostMessage\";\nimport { VisualBuilderPostMessageEvents } from \"../utils/types/postMessage.types\";\nimport Config from \"../../configManager/configManager\";\nimport {\n removeAllCollabIcons,\n hideAllCollabIcons,\n removeCollabIcon,\n HighlightThread,\n showAllCollabIcons,\n} from \"../generators/generateThread\";\nimport {\n generateThread,\n handleMissingThreads,\n} from \"../generators/generateThread\";\nimport {\n IThreadDTO,\n ICollabConfig,\n IThreadIdentifier,\n IThreadRemove,\n IThreadReopen,\n} from \"../types/collab.types\";\nimport { OnEvent } from \"@contentstack/advanced-post-message\";\n\nconst handleRemoveCommentIcons = (fromShare: boolean = false): void => {\n if (fromShare) {\n hideAllCollabIcons();\n return;\n }\n removeAllCollabIcons();\n};\n\nexport const useCollab = () => {\n const config = Config.get();\n const collabEnable = visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.COLLAB_ENABLE,\n (data: OnEvent<ICollabConfig>) => {\n if (!data?.data?.collab) {\n console.error(\"Invalid collab data structure:\", data);\n return;\n }\n if (data?.data?.collab?.fromShare) {\n Config.set(\n \"collab.pauseFeedback\",\n data?.data?.collab?.pauseFeedback\n );\n Config.set(\n \"collab.isFeedbackMode\",\n data?.data?.collab?.isFeedbackMode\n );\n showAllCollabIcons();\n return;\n }\n\n Config.set(\"collab.enable\", data.data.collab.enable ?? false);\n Config.set(\n \"collab.isFeedbackMode\",\n data.data.collab.isFeedbackMode ?? false\n );\n Config.set(\n \"collab.pauseFeedback\",\n data?.data?.collab?.pauseFeedback\n );\n Config.set(\n \"collab.inviteMetadata\",\n data.data.collab.inviteMetadata\n );\n }\n );\n\n const collabPayload = visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.COLLAB_DATA_UPDATE,\n (data: OnEvent<ICollabConfig>) => {\n if (!config?.collab?.enable) return;\n\n if (!data?.data?.collab) {\n console.error(\"Invalid collab data structure:\", data);\n return;\n }\n\n if (data?.data?.collab?.inviteMetadata) {\n Config.set(\n \"collab.inviteMetadata\",\n data?.data?.collab?.inviteMetadata\n );\n return;\n }\n\n const missingThreadIds =\n data?.data?.collab?.payload\n ?.map((payload: IThreadDTO) => generateThread(payload))\n .filter((id): id is string => id !== undefined) || [];\n if (missingThreadIds.length > 0) {\n handleMissingThreads({\n payload: { isElementPresent: false },\n threadUids: missingThreadIds,\n });\n }\n }\n );\n\n const collabDisable = visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.COLLAB_DISABLE,\n (data: OnEvent<ICollabConfig>) => {\n if (data?.data?.collab?.fromShare) {\n Config.set(\n \"collab.pauseFeedback\",\n data?.data?.collab?.pauseFeedback\n );\n handleRemoveCommentIcons(true);\n return;\n }\n\n Config.set(\"collab.enable\", false);\n Config.set(\"collab.isFeedbackMode\", false);\n\n handleRemoveCommentIcons();\n }\n );\n\n const collabThreadRemove = visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.COLLAB_THREADS_REMOVE,\n (data: OnEvent<IThreadRemove>) => {\n const threadUids = data?.data?.threadUids;\n\n if (!config?.collab?.enable) return;\n\n if (data?.data?.updateConfig) {\n Config.set(\"collab.isFeedbackMode\", true);\n }\n if (threadUids.length > 0) {\n threadUids.forEach((threadUid) => {\n removeCollabIcon(threadUid);\n });\n }\n }\n );\n\n const collabThreadReopen = visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.COLLAB_THREAD_REOPEN,\n (data: OnEvent<IThreadReopen>) => {\n const thread = data.data.thread;\n\n if (!config?.collab?.enable) return;\n\n const result = generateThread(thread, {\n hidden: Boolean(config?.collab?.pauseFeedback),\n });\n if (result) {\n handleMissingThreads({\n payload: { isElementPresent: false },\n threadUids: [result],\n });\n }\n }\n );\n\n const collabThreadHighlight = visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.COLLAB_THREAD_HIGHLIGHT,\n (data: OnEvent<IThreadIdentifier>) => {\n const { threadUid } = data.data;\n if (!config?.collab?.enable || config?.collab?.pauseFeedback)\n return;\n\n HighlightThread(threadUid);\n }\n );\n\n return () => {\n collabEnable?.unregister();\n collabPayload?.unregister();\n collabDisable?.unregister();\n collabThreadRemove?.unregister();\n collabThreadReopen?.unregister();\n collabThreadHighlight?.unregister();\n };\n};\n"],"mappings":"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","names":["_a","_b","_c","_d","_e","_f"]}
@@ -332,6 +332,7 @@ function hideAllCollabIcons() {
332
332
  ".visual-builder__collab-wrapper .collab-thread"
333
333
  );
334
334
  icons == null ? void 0 : icons.forEach((icon) => icon == null ? void 0 : icon.classList.add(hiddenClass));
335
+ toggleCollabPopup({ threadUid: "", action: "close" });
335
336
  }
336
337
  function showAllCollabIcons() {
337
338
  const icons = document.querySelectorAll(