@frontify/fondue 12.1.6 → 12.1.7

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.
@@ -17,13 +17,13 @@ import { defaultPlugins as X } from "./Plugins/defaultPlugins.es.js";
17
17
  import { parseRawValue as Z } from "./utils/parseRawValue.es.js";
18
18
  const $ = ({
19
19
  id: N,
20
- value: l,
20
+ value: m,
21
21
  placeholder: R = "",
22
22
  readonly: x = !1,
23
23
  onTextChange: C,
24
24
  onBlur: n,
25
25
  padding: F = J.None,
26
- position: a = h.FLOATING,
26
+ position: l = h.FLOATING,
27
27
  plugins: s = X,
28
28
  updateValueOnChange: O = !1,
29
29
  onValueChanged: V,
@@ -32,13 +32,13 @@ const $ = ({
32
32
  hideExternalFloatingModals: K
33
33
  }) => {
34
34
  var u, E, y;
35
- const t = B(N), { localValue: c, onChange: L, memoizedValue: P, config: r } = Y({
35
+ const t = B(N), { localValue: a, onChange: L, memoizedValue: P, config: r } = Y({
36
36
  editorId: t,
37
- initialValue: l,
37
+ initialValue: m,
38
38
  onTextChange: C,
39
39
  plugins: s,
40
40
  onValueChanged: V
41
- }), o = s.plugins.find((e) => e.key === b), m = (u = o == null ? void 0 : o.options) == null ? void 0 : u.customClass, d = m ? null : ((E = o == null ? void 0 : o.options) == null ? void 0 : E.columns) ?? 1, p = m ? null : ((y = o == null ? void 0 : o.options) == null ? void 0 : y.gap) ?? q, _ = D(
41
+ }), o = s.plugins.find((e) => e.key === b), c = (u = o == null ? void 0 : o.options) == null ? void 0 : u.customClass, d = c ? null : ((E = o == null ? void 0 : o.options) == null ? void 0 : E.columns) ?? 1, p = ((y = o == null ? void 0 : o.options) == null ? void 0 : y.gap) ?? q, _ = D(
42
42
  () => ({
43
43
  columns: d,
44
44
  columnGap: p,
@@ -46,25 +46,25 @@ const $ = ({
46
46
  }),
47
47
  [d, p]
48
48
  ), G = T(() => {
49
- n && n(JSON.stringify(c.current));
50
- }, [n, c]), M = T((e) => {
49
+ n && n(JSON.stringify(a.current));
50
+ }, [n, a]), M = T((e) => {
51
51
  e.code === "Tab" && v(e, !e.shiftKey);
52
52
  }, []), f = {
53
53
  placeholder: R,
54
54
  renderPlaceholder: Q,
55
55
  readOnly: x,
56
56
  onBlur: G,
57
- className: H([F, m]),
57
+ className: H([F, c]),
58
58
  style: _,
59
59
  onKeyDown: M,
60
60
  scrollSelectionIntoView: W
61
61
  };
62
- return /* @__PURE__ */ i(A, { styles: r.styles(), position: a, border: w, editorId: t, children: /* @__PURE__ */ S(g, { id: t, onChange: L, plugins: r.plugins, initialValue: P, children: [
62
+ return /* @__PURE__ */ i(A, { styles: r.styles(), position: l, border: w, editorId: t, children: /* @__PURE__ */ S(g, { id: t, onChange: L, plugins: r.plugins, initialValue: P, children: [
63
63
  /* @__PURE__ */ i(z, { ...f }),
64
64
  !f.readOnly && r.toolbar(I),
65
65
  r.inline(),
66
- O && /* @__PURE__ */ i(U, { value: Z({ editorId: t, raw: l, plugins: s }) }),
67
- a === h.FLOATING && /* @__PURE__ */ i(j, { hideExternalFloatingModals: K })
66
+ O && /* @__PURE__ */ i(U, { value: Z({ editorId: t, raw: m, plugins: s }) }),
67
+ l === h.FLOATING && /* @__PURE__ */ i(j, { hideExternalFloatingModals: K })
68
68
  ] }) });
69
69
  };
70
70
  $.displayName = "FondueRichTextEditor";
@@ -1 +1 @@
1
- {"version":3,"file":"RichTextEditor.es.js","sources":["../../../src/components/RichTextEditor/RichTextEditor.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { Plate, PlateContent, type TEditableProps } from '@udecode/plate-core';\nimport { noop } from 'lodash-es';\nimport { type KeyboardEvent, useCallback, useMemo } from 'react';\n\nimport { BlurObserver } from '@components/RichTextEditor/BlurObserver';\nimport { useMemoizedId } from '@hooks/useMemoizedId';\nimport { merge } from '@utilities/merge';\n\nimport { ContentReplacement } from './ContentReplacement';\nimport { GAP_DEFAULT, KEY_ELEMENT_BREAK_AFTER_COLUMN, type PluginComposer, defaultPlugins } from './Plugins';\nimport { Position } from './components/EditorPositioningWrapper';\nimport { RenderPlaceholder } from './components/RenderPlaceholder';\nimport { RichTextEditorProvider } from './context/RichTextEditorContext';\nimport { forceToFocusNextElement } from './helpers';\nimport { useEditorState } from './hooks';\nimport { PaddingSizes, type TreeOfNodes } from './types';\nimport { parseRawValue } from './utils';\n\nexport type RichTextEditorProps = {\n id?: string;\n placeholder?: string;\n value?: string;\n onTextChange?: (value: string) => void;\n onBlur?: (value: string) => void;\n readonly?: boolean;\n padding?: PaddingSizes;\n position?: Position;\n plugins?: PluginComposer;\n onValueChanged?: (value: TreeOfNodes | null) => void;\n border?: boolean;\n updateValueOnChange?: boolean; // Only set to true when you are sure that performance isn't an issue\n toolbarWidth?: number;\n hideExternalFloatingModals?: (editorId: string) => void;\n};\n\nexport const RichTextEditor = ({\n id,\n value,\n placeholder = '',\n readonly: readOnly = false,\n onTextChange,\n onBlur,\n padding = PaddingSizes.None,\n position = Position.FLOATING,\n plugins = defaultPlugins,\n updateValueOnChange = false,\n onValueChanged,\n border = true,\n toolbarWidth,\n hideExternalFloatingModals,\n}: RichTextEditorProps) => {\n const editorId = useMemoizedId(id);\n const { localValue, onChange, memoizedValue, config } = useEditorState({\n editorId,\n initialValue: value,\n onTextChange,\n plugins,\n onValueChanged,\n });\n const breakAfterPlugin = plugins.plugins.find((plugin) => plugin.key === KEY_ELEMENT_BREAK_AFTER_COLUMN);\n const customClass = breakAfterPlugin?.options?.customClass as string | undefined;\n const columns = customClass ? null : breakAfterPlugin?.options?.columns ?? 1;\n const columnGap = customClass ? null : breakAfterPlugin?.options?.gap ?? GAP_DEFAULT;\n\n const style = useMemo(\n () => ({\n columns,\n columnGap,\n outline: 'none',\n }),\n [columns, columnGap],\n );\n\n const onBlurHandler = useCallback(() => {\n if (onBlur) {\n onBlur(JSON.stringify(localValue.current));\n }\n }, [onBlur, localValue]);\n\n const onKeyDownHandler = useCallback((event: KeyboardEvent<HTMLDivElement>) => {\n if (event.code === 'Tab') {\n forceToFocusNextElement(event, !event.shiftKey);\n }\n }, []);\n\n const editableProps: TEditableProps = {\n placeholder,\n renderPlaceholder: RenderPlaceholder,\n readOnly,\n onBlur: onBlurHandler,\n className: merge([padding, customClass]),\n style,\n onKeyDown: onKeyDownHandler,\n scrollSelectionIntoView: noop,\n };\n\n return (\n <RichTextEditorProvider styles={config.styles()} position={position} border={border} editorId={editorId}>\n <Plate id={editorId} onChange={onChange} plugins={config.plugins} initialValue={memoizedValue}>\n <PlateContent {...editableProps} />\n {!editableProps.readOnly && config.toolbar(toolbarWidth)}\n {config.inline()}\n {updateValueOnChange && <ContentReplacement value={parseRawValue({ editorId, raw: value, plugins })} />}\n {position === Position.FLOATING && (\n <BlurObserver hideExternalFloatingModals={hideExternalFloatingModals} />\n )}\n </Plate>\n </RichTextEditorProvider>\n );\n};\nRichTextEditor.displayName = 'FondueRichTextEditor';\n"],"names":["RichTextEditor","id","value","placeholder","readOnly","onTextChange","onBlur","padding","PaddingSizes","position","Position","plugins","defaultPlugins","updateValueOnChange","onValueChanged","border","toolbarWidth","hideExternalFloatingModals","editorId","useMemoizedId","localValue","onChange","memoizedValue","config","useEditorState","breakAfterPlugin","plugin","KEY_ELEMENT_BREAK_AFTER_COLUMN","customClass","_a","columns","_b","columnGap","_c","GAP_DEFAULT","style","useMemo","onBlurHandler","useCallback","onKeyDownHandler","event","forceToFocusNextElement","editableProps","RenderPlaceholder","merge","noop","RichTextEditorProvider","jsxs","Plate","jsx","PlateContent","ContentReplacement","parseRawValue","BlurObserver"],"mappings":";;;;;;;;;;;;;;;;;AAqCO,MAAMA,IAAiB,CAAC;AAAA,EAC3B,IAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,UAAUC,IAAW;AAAA,EACrB,cAAAC;AAAA,EACA,QAAAC;AAAA,EACA,SAAAC,IAAUC,EAAa;AAAA,EACvB,UAAAC,IAAWC,EAAS;AAAA,EACpB,SAAAC,IAAUC;AAAA,EACV,qBAAAC,IAAsB;AAAA,EACtB,gBAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,cAAAC;AAAA,EACA,4BAAAC;AACJ,MAA2B;;AACjB,QAAAC,IAAWC,EAAclB,CAAE,GAC3B,EAAE,YAAAmB,GAAY,UAAAC,GAAU,eAAAC,GAAe,QAAAC,EAAA,IAAWC,EAAe;AAAA,IACnE,UAAAN;AAAA,IACA,cAAchB;AAAA,IACd,cAAAG;AAAA,IACA,SAAAM;AAAA,IACA,gBAAAG;AAAA,EAAA,CACH,GACKW,IAAmBd,EAAQ,QAAQ,KAAK,CAACe,MAAWA,EAAO,QAAQC,CAA8B,GACjGC,KAAcC,IAAAJ,KAAA,gBAAAA,EAAkB,YAAlB,gBAAAI,EAA2B,aACzCC,IAAUF,IAAc,SAAOG,IAAAN,KAAA,gBAAAA,EAAkB,YAAlB,gBAAAM,EAA2B,YAAW,GACrEC,IAAYJ,IAAc,SAAOK,IAAAR,KAAA,gBAAAA,EAAkB,YAAlB,gBAAAQ,EAA2B,QAAOC,GAEnEC,IAAQC;AAAA,IACV,OAAO;AAAA,MACH,SAAAN;AAAA,MACA,WAAAE;AAAA,MACA,SAAS;AAAA,IAAA;AAAA,IAEb,CAACF,GAASE,CAAS;AAAA,EAAA,GAGjBK,IAAgBC,EAAY,MAAM;AACpC,IAAIhC,KACAA,EAAO,KAAK,UAAUc,EAAW,OAAO,CAAC;AAAA,EAC7C,GACD,CAACd,GAAQc,CAAU,CAAC,GAEjBmB,IAAmBD,EAAY,CAACE,MAAyC;AACvE,IAAAA,EAAM,SAAS,SACSC,EAAAD,GAAO,CAACA,EAAM,QAAQ;AAAA,EAEtD,GAAG,CAAE,CAAA,GAECE,IAAgC;AAAA,IAClC,aAAAvC;AAAA,IACA,mBAAmBwC;AAAA,IACnB,UAAAvC;AAAA,IACA,QAAQiC;AAAA,IACR,WAAWO,EAAM,CAACrC,GAASqB,CAAW,CAAC;AAAA,IACvC,OAAAO;AAAA,IACA,WAAWI;AAAA,IACX,yBAAyBM;AAAA,EAAA;AAG7B,2BACKC,GAAuB,EAAA,QAAQvB,EAAO,OAAO,GAAG,UAAAd,GAAoB,QAAAM,GAAgB,UAAAG,GACjF,UAAC,gBAAA6B,EAAAC,GAAA,EAAM,IAAI9B,GAAU,UAAAG,GAAoB,SAASE,EAAO,SAAS,cAAcD,GAC5E,UAAA;AAAA,IAAC,gBAAA2B,EAAAC,GAAA,EAAc,GAAGR,GAAe;AAAA,IAChC,CAACA,EAAc,YAAYnB,EAAO,QAAQP,CAAY;AAAA,IACtDO,EAAO,OAAO;AAAA,IACdV,KAAwB,gBAAAoC,EAAAE,GAAA,EAAmB,OAAOC,EAAc,EAAE,UAAAlC,GAAU,KAAKhB,GAAO,SAAAS,EAAQ,CAAC,EAAG,CAAA;AAAA,IACpGF,MAAaC,EAAS,YACnB,gBAAAuC,EAACI,KAAa,4BAAApC,GAAwD;AAAA,EAAA,EAE9E,CAAA,EACJ,CAAA;AAER;AACAjB,EAAe,cAAc;"}
1
+ {"version":3,"file":"RichTextEditor.es.js","sources":["../../../src/components/RichTextEditor/RichTextEditor.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { Plate, PlateContent, type TEditableProps } from '@udecode/plate-core';\nimport { noop } from 'lodash-es';\nimport { type KeyboardEvent, useCallback, useMemo } from 'react';\n\nimport { BlurObserver } from '@components/RichTextEditor/BlurObserver';\nimport { useMemoizedId } from '@hooks/useMemoizedId';\nimport { merge } from '@utilities/merge';\n\nimport { ContentReplacement } from './ContentReplacement';\nimport { GAP_DEFAULT, KEY_ELEMENT_BREAK_AFTER_COLUMN, type PluginComposer, defaultPlugins } from './Plugins';\nimport { Position } from './components/EditorPositioningWrapper';\nimport { RenderPlaceholder } from './components/RenderPlaceholder';\nimport { RichTextEditorProvider } from './context/RichTextEditorContext';\nimport { forceToFocusNextElement } from './helpers';\nimport { useEditorState } from './hooks';\nimport { PaddingSizes, type TreeOfNodes } from './types';\nimport { parseRawValue } from './utils';\n\nexport type RichTextEditorProps = {\n id?: string;\n placeholder?: string;\n value?: string;\n onTextChange?: (value: string) => void;\n onBlur?: (value: string) => void;\n readonly?: boolean;\n padding?: PaddingSizes;\n position?: Position;\n plugins?: PluginComposer;\n onValueChanged?: (value: TreeOfNodes | null) => void;\n border?: boolean;\n updateValueOnChange?: boolean; // Only set to true when you are sure that performance isn't an issue\n toolbarWidth?: number;\n hideExternalFloatingModals?: (editorId: string) => void;\n};\n\nexport const RichTextEditor = ({\n id,\n value,\n placeholder = '',\n readonly: readOnly = false,\n onTextChange,\n onBlur,\n padding = PaddingSizes.None,\n position = Position.FLOATING,\n plugins = defaultPlugins,\n updateValueOnChange = false,\n onValueChanged,\n border = true,\n toolbarWidth,\n hideExternalFloatingModals,\n}: RichTextEditorProps) => {\n const editorId = useMemoizedId(id);\n const { localValue, onChange, memoizedValue, config } = useEditorState({\n editorId,\n initialValue: value,\n onTextChange,\n plugins,\n onValueChanged,\n });\n const breakAfterPlugin = plugins.plugins.find((plugin) => plugin.key === KEY_ELEMENT_BREAK_AFTER_COLUMN);\n const customClass = breakAfterPlugin?.options?.customClass as string | undefined;\n const columns = customClass ? null : breakAfterPlugin?.options?.columns ?? 1;\n const columnGap = breakAfterPlugin?.options?.gap ?? GAP_DEFAULT;\n\n const style = useMemo(\n () => ({\n columns,\n columnGap,\n outline: 'none',\n }),\n [columns, columnGap],\n );\n\n const onBlurHandler = useCallback(() => {\n if (onBlur) {\n onBlur(JSON.stringify(localValue.current));\n }\n }, [onBlur, localValue]);\n\n const onKeyDownHandler = useCallback((event: KeyboardEvent<HTMLDivElement>) => {\n if (event.code === 'Tab') {\n forceToFocusNextElement(event, !event.shiftKey);\n }\n }, []);\n\n const editableProps: TEditableProps = {\n placeholder,\n renderPlaceholder: RenderPlaceholder,\n readOnly,\n onBlur: onBlurHandler,\n className: merge([padding, customClass]),\n style,\n onKeyDown: onKeyDownHandler,\n scrollSelectionIntoView: noop,\n };\n\n return (\n <RichTextEditorProvider styles={config.styles()} position={position} border={border} editorId={editorId}>\n <Plate id={editorId} onChange={onChange} plugins={config.plugins} initialValue={memoizedValue}>\n <PlateContent {...editableProps} />\n {!editableProps.readOnly && config.toolbar(toolbarWidth)}\n {config.inline()}\n {updateValueOnChange && <ContentReplacement value={parseRawValue({ editorId, raw: value, plugins })} />}\n {position === Position.FLOATING && (\n <BlurObserver hideExternalFloatingModals={hideExternalFloatingModals} />\n )}\n </Plate>\n </RichTextEditorProvider>\n );\n};\nRichTextEditor.displayName = 'FondueRichTextEditor';\n"],"names":["RichTextEditor","id","value","placeholder","readOnly","onTextChange","onBlur","padding","PaddingSizes","position","Position","plugins","defaultPlugins","updateValueOnChange","onValueChanged","border","toolbarWidth","hideExternalFloatingModals","editorId","useMemoizedId","localValue","onChange","memoizedValue","config","useEditorState","breakAfterPlugin","plugin","KEY_ELEMENT_BREAK_AFTER_COLUMN","customClass","_a","columns","_b","columnGap","_c","GAP_DEFAULT","style","useMemo","onBlurHandler","useCallback","onKeyDownHandler","event","forceToFocusNextElement","editableProps","RenderPlaceholder","merge","noop","RichTextEditorProvider","jsxs","Plate","jsx","PlateContent","ContentReplacement","parseRawValue","BlurObserver"],"mappings":";;;;;;;;;;;;;;;;;AAqCO,MAAMA,IAAiB,CAAC;AAAA,EAC3B,IAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,UAAUC,IAAW;AAAA,EACrB,cAAAC;AAAA,EACA,QAAAC;AAAA,EACA,SAAAC,IAAUC,EAAa;AAAA,EACvB,UAAAC,IAAWC,EAAS;AAAA,EACpB,SAAAC,IAAUC;AAAA,EACV,qBAAAC,IAAsB;AAAA,EACtB,gBAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,cAAAC;AAAA,EACA,4BAAAC;AACJ,MAA2B;;AACjB,QAAAC,IAAWC,EAAclB,CAAE,GAC3B,EAAE,YAAAmB,GAAY,UAAAC,GAAU,eAAAC,GAAe,QAAAC,EAAA,IAAWC,EAAe;AAAA,IACnE,UAAAN;AAAA,IACA,cAAchB;AAAA,IACd,cAAAG;AAAA,IACA,SAAAM;AAAA,IACA,gBAAAG;AAAA,EAAA,CACH,GACKW,IAAmBd,EAAQ,QAAQ,KAAK,CAACe,MAAWA,EAAO,QAAQC,CAA8B,GACjGC,KAAcC,IAAAJ,KAAA,gBAAAA,EAAkB,YAAlB,gBAAAI,EAA2B,aACzCC,IAAUF,IAAc,SAAOG,IAAAN,KAAA,gBAAAA,EAAkB,YAAlB,gBAAAM,EAA2B,YAAW,GACrEC,MAAYC,IAAAR,KAAA,gBAAAA,EAAkB,YAAlB,gBAAAQ,EAA2B,QAAOC,GAE9CC,IAAQC;AAAA,IACV,OAAO;AAAA,MACH,SAAAN;AAAA,MACA,WAAAE;AAAA,MACA,SAAS;AAAA,IAAA;AAAA,IAEb,CAACF,GAASE,CAAS;AAAA,EAAA,GAGjBK,IAAgBC,EAAY,MAAM;AACpC,IAAIhC,KACAA,EAAO,KAAK,UAAUc,EAAW,OAAO,CAAC;AAAA,EAC7C,GACD,CAACd,GAAQc,CAAU,CAAC,GAEjBmB,IAAmBD,EAAY,CAACE,MAAyC;AACvE,IAAAA,EAAM,SAAS,SACSC,EAAAD,GAAO,CAACA,EAAM,QAAQ;AAAA,EAEtD,GAAG,CAAE,CAAA,GAECE,IAAgC;AAAA,IAClC,aAAAvC;AAAA,IACA,mBAAmBwC;AAAA,IACnB,UAAAvC;AAAA,IACA,QAAQiC;AAAA,IACR,WAAWO,EAAM,CAACrC,GAASqB,CAAW,CAAC;AAAA,IACvC,OAAAO;AAAA,IACA,WAAWI;AAAA,IACX,yBAAyBM;AAAA,EAAA;AAG7B,2BACKC,GAAuB,EAAA,QAAQvB,EAAO,OAAO,GAAG,UAAAd,GAAoB,QAAAM,GAAgB,UAAAG,GACjF,UAAC,gBAAA6B,EAAAC,GAAA,EAAM,IAAI9B,GAAU,UAAAG,GAAoB,SAASE,EAAO,SAAS,cAAcD,GAC5E,UAAA;AAAA,IAAC,gBAAA2B,EAAAC,GAAA,EAAc,GAAGR,GAAe;AAAA,IAChC,CAACA,EAAc,YAAYnB,EAAO,QAAQP,CAAY;AAAA,IACtDO,EAAO,OAAO;AAAA,IACdV,KAAwB,gBAAAoC,EAAAE,GAAA,EAAmB,OAAOC,EAAc,EAAE,UAAAlC,GAAU,KAAKhB,GAAO,SAAAS,EAAQ,CAAC,EAAG,CAAA;AAAA,IACpGF,MAAaC,EAAS,YACnB,gBAAAuC,EAACI,KAAa,4BAAApC,GAAwD;AAAA,EAAA,EAE9E,CAAA,EACJ,CAAA;AAER;AACAjB,EAAe,cAAc;"}
@@ -1,26 +1,33 @@
1
- import { parseRawValue as a } from "../utils/parseRawValue.es.js";
2
- import { serializeNodeToHtmlRecursive as f } from "./utils/serializeNodeToHtmlRecursive.es.js";
3
- import { defaultPlugins as i } from "../Plugins/defaultPlugins.es.js";
4
- import { mapMentionable as d } from "../Plugins/MentionPlugin/helpers/mapMentionable.es.js";
5
- import { defaultStyles as u } from "../utils/defaultStyles.es.js";
6
- const R = (t, e = i, o = 1, r = "normal") => {
7
- const l = a({ raw: t, plugins: e }), s = e.getStyles;
8
- return c(l, { columns: o, columnGap: r, styles: s });
9
- }, T = async (t, e = i, o = 1, r = "normal") => {
10
- const l = a({ raw: t, plugins: e }), s = e.getStyles;
11
- return Promise.resolve(c(l, { columns: o, columnGap: r, styles: s }));
12
- }, c = (t, { mentionable: e, columns: o = 1, columnGap: r = "normal", styles: l = u } = {}) => {
13
- const s = e ? d(e) : /* @__PURE__ */ new Map();
14
- let n = "";
15
- for (let m = 0, p = t.length; m < p; m++)
16
- n += f(t[m], l, {
17
- mappedMentionable: s
1
+ import { parseRawValue as i } from "../utils/parseRawValue.es.js";
2
+ import { serializeNodeToHtmlRecursive as d } from "./utils/serializeNodeToHtmlRecursive.es.js";
3
+ import { defaultPlugins as c } from "../Plugins/defaultPlugins.es.js";
4
+ import { mapMentionable as u } from "../Plugins/MentionPlugin/helpers/mapMentionable.es.js";
5
+ import { defaultStyles as $ } from "../utils/defaultStyles.es.js";
6
+ const T = (o, e = c, l = 1, r = "normal", t = "") => {
7
+ const s = i({ raw: o, plugins: e }), n = e.getStyles;
8
+ return y(s, { columns: l, columnGap: r, styles: n, customClass: t });
9
+ }, g = async (o, e = c, l = 1, r = "normal", t = "") => {
10
+ const s = i({ raw: o, plugins: e }), n = e.getStyles;
11
+ return Promise.resolve(y(s, { columns: l, columnGap: r, styles: n, customClass: t }));
12
+ }, y = (o, {
13
+ mentionable: e,
14
+ columns: l = 1,
15
+ columnGap: r = "normal",
16
+ customClass: t = "",
17
+ styles: s = $
18
+ } = {}) => {
19
+ const n = e ? u(e) : /* @__PURE__ */ new Map();
20
+ let m = "";
21
+ for (let a = 0, f = o.length; a < f; a++)
22
+ m += d(o[a], s, {
23
+ mappedMentionable: n
18
24
  });
19
- return o > 1 ? `<div style="columns:${o}; column-gap:${r};">${n}</div>` : n;
25
+ const p = `${t ? "" : `columns:${l};`} column-gap:${r};`;
26
+ return l > 1 || t ? `<div style="${p}" class="${t}">${m}</div>` : m;
20
27
  };
21
28
  export {
22
- c as serializeNodesToHtml,
23
- R as serializeRawToHtml,
24
- T as serializeRawToHtmlAsync
29
+ y as serializeNodesToHtml,
30
+ T as serializeRawToHtml,
31
+ g as serializeRawToHtmlAsync
25
32
  };
26
33
  //# sourceMappingURL=serializeToHtml.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serializeToHtml.es.js","sources":["../../../../src/components/RichTextEditor/serializer/serializeToHtml.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { type TDescendant } from '@udecode/slate';\nimport { type CSSProperties } from 'react';\n\nimport { type PluginComposer, defaultPlugins } from '../Plugins';\nimport { type MentionableItems } from '../Plugins/MentionPlugin';\nimport { mapMentionable } from '../Plugins/MentionPlugin/helpers';\nimport { defaultStyles } from '../utils';\nimport { parseRawValue } from '../utils/parseRawValue';\n\nimport { type CSSPropertiesHover } from './types';\nimport { serializeNodeToHtmlRecursive } from './utils/serializeNodeToHtmlRecursive';\n\nexport const serializeRawToHtml = (\n raw: string,\n plugins: PluginComposer = defaultPlugins,\n columns: SerializeNodesToHtmlOptions['columns'] = 1,\n columnGap: SerializeNodesToHtmlOptions['columnGap'] = 'normal',\n): string => {\n const nodes = parseRawValue({ raw, plugins });\n const styles = plugins.getStyles;\n return serializeNodesToHtml(nodes, { columns, columnGap, styles });\n};\nexport const serializeRawToHtmlAsync = async (\n raw: string,\n plugins: PluginComposer = defaultPlugins,\n columns: SerializeNodesToHtmlOptions['columns'] = 1,\n columnGap: SerializeNodesToHtmlOptions['columnGap'] = 'normal',\n): Promise<string> => {\n const nodes = parseRawValue({ raw, plugins });\n const styles = plugins.getStyles;\n return Promise.resolve(serializeNodesToHtml(nodes, { columns, columnGap, styles }));\n};\n\nexport type SerializeNodesToHtmlOptions = {\n styles?: Record<string, CSSPropertiesHover>;\n mentionable?: MentionableItems;\n columns?: number;\n columnGap?: CSSProperties['columnGap'];\n};\n\nexport const serializeNodesToHtml = (\n nodes: TDescendant[],\n { mentionable, columns = 1, columnGap = 'normal', styles = defaultStyles }: SerializeNodesToHtmlOptions = {},\n): string => {\n const mappedMentionable = mentionable ? mapMentionable(mentionable) : new Map();\n\n let html = '';\n for (let i = 0, len = nodes.length; i < len; i++) {\n html += serializeNodeToHtmlRecursive(nodes[i], styles, {\n mappedMentionable,\n });\n }\n\n if (columns > 1) {\n return `<div style=\"columns:${columns}; column-gap:${columnGap};\">${html}</div>`;\n }\n\n return html;\n};\n"],"names":["serializeRawToHtml","raw","plugins","defaultPlugins","columns","columnGap","nodes","parseRawValue","styles","serializeNodesToHtml","serializeRawToHtmlAsync","mentionable","defaultStyles","mappedMentionable","mapMentionable","html","i","len","serializeNodeToHtmlRecursive"],"mappings":";;;;;AAca,MAAAA,IAAqB,CAC9BC,GACAC,IAA0BC,GAC1BC,IAAkD,GAClDC,IAAsD,aAC7C;AACT,QAAMC,IAAQC,EAAc,EAAE,KAAAN,GAAK,SAAAC,EAAS,CAAA,GACtCM,IAASN,EAAQ;AACvB,SAAOO,EAAqBH,GAAO,EAAE,SAAAF,GAAS,WAAAC,GAAW,QAAAG,GAAQ;AACrE,GACaE,IAA0B,OACnCT,GACAC,IAA0BC,GAC1BC,IAAkD,GAClDC,IAAsD,aACpC;AAClB,QAAMC,IAAQC,EAAc,EAAE,KAAAN,GAAK,SAAAC,EAAS,CAAA,GACtCM,IAASN,EAAQ;AAChB,SAAA,QAAQ,QAAQO,EAAqBH,GAAO,EAAE,SAAAF,GAAS,WAAAC,GAAW,QAAAG,EAAQ,CAAA,CAAC;AACtF,GASaC,IAAuB,CAChCH,GACA,EAAE,aAAAK,GAAa,SAAAP,IAAU,GAAG,WAAAC,IAAY,UAAU,QAAAG,IAASI,EAAc,IAAiC,CAAA,MACjG;AACT,QAAMC,IAAoBF,IAAcG,EAAeH,CAAW,wBAAQ;AAE1E,MAAII,IAAO;AACX,WAASC,IAAI,GAAGC,IAAMX,EAAM,QAAQU,IAAIC,GAAKD;AACzC,IAAAD,KAAQG,EAA6BZ,EAAMU,CAAC,GAAGR,GAAQ;AAAA,MACnD,mBAAAK;AAAA,IAAA,CACH;AAGL,SAAIT,IAAU,IACH,uBAAuBA,CAAO,gBAAgBC,CAAS,MAAMU,CAAI,WAGrEA;AACX;"}
1
+ {"version":3,"file":"serializeToHtml.es.js","sources":["../../../../src/components/RichTextEditor/serializer/serializeToHtml.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { type TDescendant } from '@udecode/slate';\nimport { type CSSProperties } from 'react';\n\nimport { type PluginComposer, defaultPlugins } from '../Plugins';\nimport { type MentionableItems } from '../Plugins/MentionPlugin';\nimport { mapMentionable } from '../Plugins/MentionPlugin/helpers';\nimport { defaultStyles } from '../utils';\nimport { parseRawValue } from '../utils/parseRawValue';\n\nimport { type CSSPropertiesHover } from './types';\nimport { serializeNodeToHtmlRecursive } from './utils/serializeNodeToHtmlRecursive';\n\nexport const serializeRawToHtml = (\n raw: string,\n plugins: PluginComposer = defaultPlugins,\n columns: SerializeNodesToHtmlOptions['columns'] = 1,\n columnGap: SerializeNodesToHtmlOptions['columnGap'] = 'normal',\n customClass = '',\n): string => {\n const nodes = parseRawValue({ raw, plugins });\n const styles = plugins.getStyles;\n return serializeNodesToHtml(nodes, { columns, columnGap, styles, customClass });\n};\nexport const serializeRawToHtmlAsync = async (\n raw: string,\n plugins: PluginComposer = defaultPlugins,\n columns: SerializeNodesToHtmlOptions['columns'] = 1,\n columnGap: SerializeNodesToHtmlOptions['columnGap'] = 'normal',\n customClass = '',\n): Promise<string> => {\n const nodes = parseRawValue({ raw, plugins });\n const styles = plugins.getStyles;\n return Promise.resolve(serializeNodesToHtml(nodes, { columns, columnGap, styles, customClass }));\n};\n\nexport type SerializeNodesToHtmlOptions = {\n styles?: Record<string, CSSPropertiesHover>;\n mentionable?: MentionableItems;\n columns?: number;\n columnGap?: CSSProperties['columnGap'];\n customClass?: string;\n};\n\nexport const serializeNodesToHtml = (\n nodes: TDescendant[],\n {\n mentionable,\n columns = 1,\n columnGap = 'normal',\n customClass = '',\n styles = defaultStyles,\n }: SerializeNodesToHtmlOptions = {},\n): string => {\n const mappedMentionable = mentionable ? mapMentionable(mentionable) : new Map();\n\n let html = '';\n for (let i = 0, len = nodes.length; i < len; i++) {\n html += serializeNodeToHtmlRecursive(nodes[i], styles, {\n mappedMentionable,\n });\n }\n\n const columnsStyle = customClass ? '' : `columns:${columns};`;\n const style = `${columnsStyle} column-gap:${columnGap};`;\n\n if (columns > 1 || customClass) {\n return `<div style=\"${style}\" class=\"${customClass}\">${html}</div>`;\n }\n\n return html;\n};\n"],"names":["serializeRawToHtml","raw","plugins","defaultPlugins","columns","columnGap","customClass","nodes","parseRawValue","styles","serializeNodesToHtml","serializeRawToHtmlAsync","mentionable","defaultStyles","mappedMentionable","mapMentionable","html","i","len","serializeNodeToHtmlRecursive","style"],"mappings":";;;;;AAca,MAAAA,IAAqB,CAC9BC,GACAC,IAA0BC,GAC1BC,IAAkD,GAClDC,IAAsD,UACtDC,IAAc,OACL;AACT,QAAMC,IAAQC,EAAc,EAAE,KAAAP,GAAK,SAAAC,EAAS,CAAA,GACtCO,IAASP,EAAQ;AACvB,SAAOQ,EAAqBH,GAAO,EAAE,SAAAH,GAAS,WAAAC,GAAW,QAAAI,GAAQ,aAAAH,GAAa;AAClF,GACaK,IAA0B,OACnCV,GACAC,IAA0BC,GAC1BC,IAAkD,GAClDC,IAAsD,UACtDC,IAAc,OACI;AAClB,QAAMC,IAAQC,EAAc,EAAE,KAAAP,GAAK,SAAAC,EAAS,CAAA,GACtCO,IAASP,EAAQ;AAChB,SAAA,QAAQ,QAAQQ,EAAqBH,GAAO,EAAE,SAAAH,GAAS,WAAAC,GAAW,QAAAI,GAAQ,aAAAH,EAAa,CAAA,CAAC;AACnG,GAUaI,IAAuB,CAChCH,GACA;AAAA,EACI,aAAAK;AAAA,EACA,SAAAR,IAAU;AAAA,EACV,WAAAC,IAAY;AAAA,EACZ,aAAAC,IAAc;AAAA,EACd,QAAAG,IAASI;AACb,IAAiC,OACxB;AACT,QAAMC,IAAoBF,IAAcG,EAAeH,CAAW,wBAAQ;AAE1E,MAAII,IAAO;AACX,WAASC,IAAI,GAAGC,IAAMX,EAAM,QAAQU,IAAIC,GAAKD;AACzC,IAAAD,KAAQG,EAA6BZ,EAAMU,CAAC,GAAGR,GAAQ;AAAA,MACnD,mBAAAK;AAAA,IAAA,CACH;AAIL,QAAMM,IAAQ,GADOd,IAAc,KAAK,WAAWF,CAAO,GAC7B,eAAeC,CAAS;AAEjD,SAAAD,IAAU,KAAKE,IACR,eAAec,CAAK,YAAYd,CAAW,KAAKU,CAAI,WAGxDA;AACX;"}