@webiny/lexical-editor 5.40.2 → 5.40.3-beta.1
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,7 +17,7 @@ var _LexicalOnChangePlugin = require("@lexical/react/LexicalOnChangePlugin");
|
|
|
17
17
|
var _LexicalAutoFocusPlugin = require("@lexical/react/LexicalAutoFocusPlugin");
|
|
18
18
|
var _LexicalClearEditorPlugin = require("@lexical/react/LexicalClearEditorPlugin");
|
|
19
19
|
var _LexicalRichTextPlugin = require("@lexical/react/LexicalRichTextPlugin");
|
|
20
|
-
var _LexicalErrorBoundary =
|
|
20
|
+
var _LexicalErrorBoundary = require("@lexical/react/LexicalErrorBoundary");
|
|
21
21
|
var _reactComposition = require("@webiny/react-composition");
|
|
22
22
|
var _LexicalHistoryPlugin = require("@lexical/react/LexicalHistoryPlugin");
|
|
23
23
|
var _LexicalContentEditable = require("@lexical/react/LexicalContentEditable");
|
|
@@ -96,7 +96,10 @@ var BaseRichTextEditor = function BaseRichTextEditor(_ref) {
|
|
|
96
96
|
editorState.read(function () {
|
|
97
97
|
if (typeof onChange === "function") {
|
|
98
98
|
var _editorState = editor.getEditorState();
|
|
99
|
-
|
|
99
|
+
// The timeout is necessary to prevent the `flushSync` warning by React.
|
|
100
|
+
setTimeout(function () {
|
|
101
|
+
onChange(JSON.stringify(_editorState.toJSON()));
|
|
102
|
+
}, 0);
|
|
100
103
|
}
|
|
101
104
|
});
|
|
102
105
|
}
|
|
@@ -145,7 +148,7 @@ var BaseRichTextEditor = function BaseRichTextEditor(_ref) {
|
|
|
145
148
|
}, contentEditableStyles)
|
|
146
149
|
}))),
|
|
147
150
|
placeholder: placeholderElem,
|
|
148
|
-
ErrorBoundary: _LexicalErrorBoundary.
|
|
151
|
+
ErrorBoundary: _LexicalErrorBoundary.LexicalErrorBoundary
|
|
149
152
|
}), floatingAnchorElem && toolbar))))
|
|
150
153
|
);
|
|
151
154
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_emotion","_LexicalComposer","_LexicalOnChangePlugin","_LexicalAutoFocusPlugin","_LexicalClearEditorPlugin","_LexicalRichTextPlugin","_LexicalErrorBoundary","_interopRequireDefault","_reactComposition","_LexicalHistoryPlugin","_LexicalContentEditable","_RichTextEditorContext","_isValidLexicalData","_LexicalUpdateStatePlugin","_BlurEventPlugin","_Placeholder","_generateInitialLexicalValue","_lexicalTheme","_lexicalNodes","_SharedHistoryContext","_LexicalEditorConfig","_excluded","BaseRichTextEditor","_ref","toolbar","staticToolbar","onChange","value","nodes","placeholder","children","onBlur","focus","styles","width","height","contentEditableStyles","placeholderStyles","props","_objectWithoutProperties2","default","themeEmotionMap","toTypographyEmotionMap","css","theme","themeStylesTransformer","editorTheme","useRef","createTheme","config","useLexicalEditorConfig","_useSharedHistoryCont","useSharedHistoryContext","historyState","placeholderElem","createElement","Placeholder","scrollRef","_useState","useState","undefined","_useState2","_slicedToArray2","floatingAnchorElem","setFloatingAnchorElem","onRef","_floatingAnchorElem","sizeStyle","configNodes","map","node","configPlugins","plugins","plugin","Fragment","key","name","element","editorValue","isValidLexicalData","generateInitialLexicalValue","initialConfig","editorState","namespace","onError","concat","_toConsumableArray2","allNodes","_objectSpread2","current","emotionMap","handleOnChange","editor","read","getEditorState","JSON","stringify","toJSON","SharedHistoryContext","LexicalComposer","length","RichTextEditorProvider","toolbarActionPlugins","className","ref","style","overflow","position","OnChangePlugin","UpdateStatePlugin","ClearEditorPlugin","HistoryPlugin","externalHistoryState","BlurEventPlugin","AutoFocusPlugin","RichTextPlugin","contentEditable","ContentEditable","outline","ErrorBoundary","LexicalErrorBoundary","RichTextEditor","exports","makeDecoratable","LexicalEditorWithConfig"],"sources":["RichTextEditor.tsx"],"sourcesContent":["import React, { Fragment, useRef, useState } from \"react\";\nimport { css } from \"emotion\";\nimport { CSSObject } from \"@emotion/react\";\nimport { Klass, LexicalEditor, LexicalNode } from \"lexical\";\nimport { EditorState } from \"lexical/LexicalEditorState\";\nimport { LexicalComposer } from \"@lexical/react/LexicalComposer\";\nimport { OnChangePlugin } from \"@lexical/react/LexicalOnChangePlugin\";\nimport { AutoFocusPlugin } from \"@lexical/react/LexicalAutoFocusPlugin\";\nimport { ClearEditorPlugin } from \"@lexical/react/LexicalClearEditorPlugin\";\nimport { RichTextPlugin } from \"@lexical/react/LexicalRichTextPlugin\";\nimport LexicalErrorBoundary from \"@lexical/react/LexicalErrorBoundary\";\nimport { makeDecoratable } from \"@webiny/react-composition\";\nimport { HistoryPlugin } from \"@lexical/react/LexicalHistoryPlugin\";\nimport { ContentEditable } from \"@lexical/react/LexicalContentEditable\";\nimport { RichTextEditorProvider } from \"~/context/RichTextEditorContext\";\nimport { isValidLexicalData } from \"~/utils/isValidLexicalData\";\nimport { UpdateStatePlugin } from \"~/plugins/LexicalUpdateStatePlugin\";\nimport { BlurEventPlugin } from \"~/plugins/BlurEventPlugin/BlurEventPlugin\";\nimport { LexicalValue, ToolbarActionPlugin } from \"~/types\";\nimport { Placeholder } from \"~/ui/Placeholder\";\nimport { generateInitialLexicalValue } from \"~/utils/generateInitialLexicalValue\";\nimport {\n createTheme,\n WebinyTheme,\n ThemeEmotionMap,\n toTypographyEmotionMap\n} from \"@webiny/lexical-theme\";\nimport { allNodes } from \"@webiny/lexical-nodes\";\nimport { SharedHistoryContext, useSharedHistoryContext } from \"~/context/SharedHistoryContext\";\nimport {\n LexicalEditorWithConfig,\n useLexicalEditorConfig\n} from \"~/components/LexicalEditorConfig/LexicalEditorConfig\";\n\nexport interface RichTextEditorProps {\n children?: React.ReactNode | React.ReactNode[];\n classes?: string;\n contentEditableStyles?: React.CSSProperties;\n focus?: boolean;\n height?: number | string;\n nodes?: Klass<LexicalNode>[];\n onBlur?: (editorState: LexicalValue) => void;\n onChange?: (json: LexicalValue) => void;\n placeholder?: string;\n placeholderStyles?: React.CSSProperties;\n staticToolbar?: React.ReactNode;\n styles?: React.CSSProperties;\n tag?: string;\n theme: WebinyTheme;\n themeEmotionMap?: ThemeEmotionMap;\n toolbarActionPlugins?: ToolbarActionPlugin[];\n themeStylesTransformer?: (cssObject: Record<string, any>) => CSSObject;\n toolbar?: React.ReactNode;\n value: LexicalValue | null;\n width?: number | string;\n}\n\nconst BaseRichTextEditor = ({\n toolbar,\n staticToolbar,\n onChange,\n value,\n nodes,\n placeholder,\n children,\n onBlur,\n focus,\n styles,\n width,\n height,\n contentEditableStyles,\n placeholderStyles,\n ...props\n}: RichTextEditorProps) => {\n const themeEmotionMap =\n props.themeEmotionMap ??\n toTypographyEmotionMap(css, props.theme, props.themeStylesTransformer);\n\n const editorTheme = useRef(createTheme());\n const config = useLexicalEditorConfig();\n const { historyState } = useSharedHistoryContext();\n const placeholderElem = (\n <Placeholder styles={placeholderStyles}>{placeholder || \"Enter text...\"}</Placeholder>\n );\n const scrollRef = useRef(null);\n const [floatingAnchorElem, setFloatingAnchorElem] = useState<HTMLElement | undefined>(\n undefined\n );\n const onRef = (_floatingAnchorElem: HTMLDivElement) => {\n if (_floatingAnchorElem !== null) {\n setFloatingAnchorElem(_floatingAnchorElem);\n }\n };\n\n const sizeStyle = {\n height: height || \"\",\n width: width || \"\"\n };\n\n const configNodes = config.nodes.map(node => node.node);\n const configPlugins = config.plugins.map(plugin => (\n <Fragment key={plugin.name}>{plugin.element}</Fragment>\n ));\n\n const editorValue = isValidLexicalData(value) ? value : generateInitialLexicalValue();\n\n const initialConfig = {\n // We update the state via the `<LexicalUpdateStatePlugin/>`.\n editorState: null,\n namespace: \"webiny\",\n onError: () => {\n // Ignore errors. We don't want to break the app because of errors caused by config/value updates.\n // These are usually resolved in the next component render cycle.\n },\n nodes: [...allNodes, ...configNodes, ...(nodes || [])],\n theme: { ...editorTheme.current, emotionMap: themeEmotionMap }\n };\n\n function handleOnChange(editorState: EditorState, editor: LexicalEditor) {\n editorState.read(() => {\n if (typeof onChange === \"function\") {\n const editorState = editor.getEditorState();\n onChange(JSON.stringify(editorState.toJSON()));\n }\n });\n }\n\n return (\n /**\n * Once the LexicalComposer is mounted, it caches the `initialConfig` internally, and all future\n * updates to the config will be ignored. This is a problem because we pull in Nodes from our config,\n * and initially, there can be multiple re-renders, while the config object is settled.\n *\n * To bypass this issue, we generate a naive `key` based on the number of Nodes.\n */\n <SharedHistoryContext>\n <LexicalComposer initialConfig={initialConfig} key={initialConfig.nodes.length}>\n <RichTextEditorProvider\n theme={props.theme}\n themeEmotionMap={themeEmotionMap}\n toolbarActionPlugins={props.toolbarActionPlugins}\n >\n {staticToolbar && staticToolbar}\n <div\n /* This className is necessary for targeting of editor container from CSS files. */\n className={\"editor-shell\"}\n ref={scrollRef}\n style={{ ...styles, ...sizeStyle, overflow: \"auto\", position: \"relative\" }}\n >\n {/* State plugins. */}\n <OnChangePlugin onChange={handleOnChange} />\n <UpdateStatePlugin value={editorValue} />\n <ClearEditorPlugin />\n <HistoryPlugin externalHistoryState={historyState} />\n {/* Event plugins. */}\n {onBlur && <BlurEventPlugin onBlur={onBlur} />}\n {focus && <AutoFocusPlugin />}\n {/* External plugins and components. */}\n {configPlugins}\n {children}\n <RichTextPlugin\n contentEditable={\n <div className=\"editor-scroller\" style={{ ...sizeStyle }}>\n <div className=\"editor\" ref={onRef}>\n <ContentEditable\n style={{ outline: 0, ...contentEditableStyles }}\n />\n </div>\n </div>\n }\n placeholder={placeholderElem}\n ErrorBoundary={LexicalErrorBoundary}\n />\n {/* Toolbar. */}\n {floatingAnchorElem && toolbar}\n </div>\n </RichTextEditorProvider>\n </LexicalComposer>\n </SharedHistoryContext>\n );\n};\n\n/**\n * @description Main editor container\n */\nexport const RichTextEditor = makeDecoratable(\"RichTextEditor\", (props: RichTextEditorProps) => {\n return (\n <LexicalEditorWithConfig>\n <BaseRichTextEditor {...props} />\n </LexicalEditorWithConfig>\n );\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_emotion","_LexicalComposer","_LexicalOnChangePlugin","_LexicalAutoFocusPlugin","_LexicalClearEditorPlugin","_LexicalRichTextPlugin","_LexicalErrorBoundary","_reactComposition","_LexicalHistoryPlugin","_LexicalContentEditable","_RichTextEditorContext","_isValidLexicalData","_LexicalUpdateStatePlugin","_BlurEventPlugin","_Placeholder","_generateInitialLexicalValue","_lexicalTheme","_lexicalNodes","_SharedHistoryContext","_LexicalEditorConfig","_excluded","BaseRichTextEditor","_ref","toolbar","staticToolbar","onChange","value","nodes","placeholder","children","onBlur","focus","styles","width","height","contentEditableStyles","placeholderStyles","props","_objectWithoutProperties2","default","themeEmotionMap","toTypographyEmotionMap","css","theme","themeStylesTransformer","editorTheme","useRef","createTheme","config","useLexicalEditorConfig","_useSharedHistoryCont","useSharedHistoryContext","historyState","placeholderElem","createElement","Placeholder","scrollRef","_useState","useState","undefined","_useState2","_slicedToArray2","floatingAnchorElem","setFloatingAnchorElem","onRef","_floatingAnchorElem","sizeStyle","configNodes","map","node","configPlugins","plugins","plugin","Fragment","key","name","element","editorValue","isValidLexicalData","generateInitialLexicalValue","initialConfig","editorState","namespace","onError","concat","_toConsumableArray2","allNodes","_objectSpread2","current","emotionMap","handleOnChange","editor","read","getEditorState","setTimeout","JSON","stringify","toJSON","SharedHistoryContext","LexicalComposer","length","RichTextEditorProvider","toolbarActionPlugins","className","ref","style","overflow","position","OnChangePlugin","UpdateStatePlugin","ClearEditorPlugin","HistoryPlugin","externalHistoryState","BlurEventPlugin","AutoFocusPlugin","RichTextPlugin","contentEditable","ContentEditable","outline","ErrorBoundary","LexicalErrorBoundary","RichTextEditor","exports","makeDecoratable","LexicalEditorWithConfig"],"sources":["RichTextEditor.tsx"],"sourcesContent":["import React, { Fragment, useRef, useState } from \"react\";\nimport { css } from \"emotion\";\nimport { CSSObject } from \"@emotion/react\";\nimport { Klass, LexicalEditor, LexicalNode } from \"lexical\";\nimport { EditorState } from \"lexical/LexicalEditorState\";\nimport { LexicalComposer } from \"@lexical/react/LexicalComposer\";\nimport { OnChangePlugin } from \"@lexical/react/LexicalOnChangePlugin\";\nimport { AutoFocusPlugin } from \"@lexical/react/LexicalAutoFocusPlugin\";\nimport { ClearEditorPlugin } from \"@lexical/react/LexicalClearEditorPlugin\";\nimport { RichTextPlugin } from \"@lexical/react/LexicalRichTextPlugin\";\nimport { LexicalErrorBoundary } from \"@lexical/react/LexicalErrorBoundary\";\nimport { makeDecoratable } from \"@webiny/react-composition\";\nimport { HistoryPlugin } from \"@lexical/react/LexicalHistoryPlugin\";\nimport { ContentEditable } from \"@lexical/react/LexicalContentEditable\";\nimport { RichTextEditorProvider } from \"~/context/RichTextEditorContext\";\nimport { isValidLexicalData } from \"~/utils/isValidLexicalData\";\nimport { UpdateStatePlugin } from \"~/plugins/LexicalUpdateStatePlugin\";\nimport { BlurEventPlugin } from \"~/plugins/BlurEventPlugin/BlurEventPlugin\";\nimport { LexicalValue, ToolbarActionPlugin } from \"~/types\";\nimport { Placeholder } from \"~/ui/Placeholder\";\nimport { generateInitialLexicalValue } from \"~/utils/generateInitialLexicalValue\";\nimport {\n createTheme,\n WebinyTheme,\n ThemeEmotionMap,\n toTypographyEmotionMap\n} from \"@webiny/lexical-theme\";\nimport { allNodes } from \"@webiny/lexical-nodes\";\nimport { SharedHistoryContext, useSharedHistoryContext } from \"~/context/SharedHistoryContext\";\nimport {\n LexicalEditorWithConfig,\n useLexicalEditorConfig\n} from \"~/components/LexicalEditorConfig/LexicalEditorConfig\";\n\nexport interface RichTextEditorProps {\n children?: React.ReactNode | React.ReactNode[];\n classes?: string;\n contentEditableStyles?: React.CSSProperties;\n focus?: boolean;\n height?: number | string;\n nodes?: Klass<LexicalNode>[];\n onBlur?: (editorState: LexicalValue) => void;\n onChange?: (json: LexicalValue) => void;\n placeholder?: string;\n placeholderStyles?: React.CSSProperties;\n staticToolbar?: React.ReactNode;\n styles?: React.CSSProperties;\n tag?: string;\n theme: WebinyTheme;\n themeEmotionMap?: ThemeEmotionMap;\n toolbarActionPlugins?: ToolbarActionPlugin[];\n themeStylesTransformer?: (cssObject: Record<string, any>) => CSSObject;\n toolbar?: React.ReactNode;\n value: LexicalValue | null;\n width?: number | string;\n}\n\nconst BaseRichTextEditor = ({\n toolbar,\n staticToolbar,\n onChange,\n value,\n nodes,\n placeholder,\n children,\n onBlur,\n focus,\n styles,\n width,\n height,\n contentEditableStyles,\n placeholderStyles,\n ...props\n}: RichTextEditorProps) => {\n const themeEmotionMap =\n props.themeEmotionMap ??\n toTypographyEmotionMap(css, props.theme, props.themeStylesTransformer);\n\n const editorTheme = useRef(createTheme());\n const config = useLexicalEditorConfig();\n const { historyState } = useSharedHistoryContext();\n const placeholderElem = (\n <Placeholder styles={placeholderStyles}>{placeholder || \"Enter text...\"}</Placeholder>\n );\n const scrollRef = useRef(null);\n const [floatingAnchorElem, setFloatingAnchorElem] = useState<HTMLElement | undefined>(\n undefined\n );\n const onRef = (_floatingAnchorElem: HTMLDivElement) => {\n if (_floatingAnchorElem !== null) {\n setFloatingAnchorElem(_floatingAnchorElem);\n }\n };\n\n const sizeStyle = {\n height: height || \"\",\n width: width || \"\"\n };\n\n const configNodes = config.nodes.map(node => node.node);\n const configPlugins = config.plugins.map(plugin => (\n <Fragment key={plugin.name}>{plugin.element}</Fragment>\n ));\n\n const editorValue = isValidLexicalData(value) ? value : generateInitialLexicalValue();\n\n const initialConfig = {\n // We update the state via the `<LexicalUpdateStatePlugin/>`.\n editorState: null,\n namespace: \"webiny\",\n onError: () => {\n // Ignore errors. We don't want to break the app because of errors caused by config/value updates.\n // These are usually resolved in the next component render cycle.\n },\n nodes: [...allNodes, ...configNodes, ...(nodes || [])],\n theme: { ...editorTheme.current, emotionMap: themeEmotionMap }\n };\n\n function handleOnChange(editorState: EditorState, editor: LexicalEditor) {\n editorState.read(() => {\n if (typeof onChange === \"function\") {\n const editorState = editor.getEditorState();\n // The timeout is necessary to prevent the `flushSync` warning by React.\n setTimeout(() => {\n onChange(JSON.stringify(editorState.toJSON()));\n }, 0);\n }\n });\n }\n\n return (\n /**\n * Once the LexicalComposer is mounted, it caches the `initialConfig` internally, and all future\n * updates to the config will be ignored. This is a problem because we pull in Nodes from our config,\n * and initially, there can be multiple re-renders, while the config object is settled.\n *\n * To bypass this issue, we generate a naive `key` based on the number of Nodes.\n */\n <SharedHistoryContext>\n <LexicalComposer initialConfig={initialConfig} key={initialConfig.nodes.length}>\n <RichTextEditorProvider\n theme={props.theme}\n themeEmotionMap={themeEmotionMap}\n toolbarActionPlugins={props.toolbarActionPlugins}\n >\n {staticToolbar && staticToolbar}\n <div\n /* This className is necessary for targeting of editor container from CSS files. */\n className={\"editor-shell\"}\n ref={scrollRef}\n style={{ ...styles, ...sizeStyle, overflow: \"auto\", position: \"relative\" }}\n >\n {/* State plugins. */}\n <OnChangePlugin onChange={handleOnChange} />\n <UpdateStatePlugin value={editorValue} />\n <ClearEditorPlugin />\n <HistoryPlugin externalHistoryState={historyState} />\n {/* Event plugins. */}\n {onBlur && <BlurEventPlugin onBlur={onBlur} />}\n {focus && <AutoFocusPlugin />}\n {/* External plugins and components. */}\n {configPlugins}\n {children}\n <RichTextPlugin\n contentEditable={\n <div className=\"editor-scroller\" style={{ ...sizeStyle }}>\n <div className=\"editor\" ref={onRef}>\n <ContentEditable\n style={{ outline: 0, ...contentEditableStyles }}\n />\n </div>\n </div>\n }\n placeholder={placeholderElem}\n ErrorBoundary={LexicalErrorBoundary}\n />\n {/* Toolbar. */}\n {floatingAnchorElem && toolbar}\n </div>\n </RichTextEditorProvider>\n </LexicalComposer>\n </SharedHistoryContext>\n );\n};\n\n/**\n * @description Main editor container\n */\nexport const RichTextEditor = makeDecoratable(\"RichTextEditor\", (props: RichTextEditorProps) => {\n return (\n <LexicalEditorWithConfig>\n <BaseRichTextEditor {...props} />\n </LexicalEditorWithConfig>\n );\n});\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/lexical-editor",
|
|
3
|
-
"version": "5.40.
|
|
3
|
+
"version": "5.40.3-beta.1",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/webiny/webiny-js.git"
|
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
"@lexical/rich-text": "0.16.0",
|
|
15
15
|
"@lexical/selection": "0.16.0",
|
|
16
16
|
"@lexical/utils": "0.16.0",
|
|
17
|
-
"@webiny/lexical-nodes": "5.40.
|
|
18
|
-
"@webiny/lexical-theme": "5.40.
|
|
19
|
-
"@webiny/react-composition": "5.40.
|
|
20
|
-
"@webiny/react-properties": "5.40.
|
|
17
|
+
"@webiny/lexical-nodes": "5.40.3-beta.1",
|
|
18
|
+
"@webiny/lexical-theme": "5.40.3-beta.1",
|
|
19
|
+
"@webiny/react-composition": "5.40.3-beta.1",
|
|
20
|
+
"@webiny/react-properties": "5.40.3-beta.1",
|
|
21
21
|
"emotion": "10.0.27",
|
|
22
22
|
"lexical": "0.16.0",
|
|
23
23
|
"lodash": "4.17.21",
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
"react-dom": "18.2.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@webiny/cli": "5.40.
|
|
29
|
-
"@webiny/project-utils": "5.40.
|
|
28
|
+
"@webiny/cli": "5.40.3-beta.1",
|
|
29
|
+
"@webiny/project-utils": "5.40.3-beta.1"
|
|
30
30
|
},
|
|
31
31
|
"publishConfig": {
|
|
32
32
|
"access": "public",
|
|
@@ -36,5 +36,5 @@
|
|
|
36
36
|
"build": "yarn webiny run build",
|
|
37
37
|
"watch": "yarn webiny run watch"
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "deb698c829c8633fd9abdab70cd61ad42387eef7"
|
|
40
40
|
}
|
package/utils/files.d.ts
CHANGED
package/utils/files.js
CHANGED
|
@@ -4,57 +4,33 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.
|
|
7
|
+
exports.fileToImagePayload = void 0;
|
|
8
8
|
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
|
|
9
|
-
var isImageType = exports.isImageType = function isImageType(file) {
|
|
10
|
-
if (!file?.meta) {
|
|
11
|
-
return false;
|
|
12
|
-
}
|
|
13
|
-
var _iterator = (0, _createForOfIteratorHelper2.default)(file.meta),
|
|
14
|
-
_step;
|
|
15
|
-
try {
|
|
16
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
17
|
-
var metaItem = _step.value;
|
|
18
|
-
if (metaItem.key === "type") {
|
|
19
|
-
return metaItem.value.includes("image/");
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
} catch (err) {
|
|
23
|
-
_iterator.e(err);
|
|
24
|
-
} finally {
|
|
25
|
-
_iterator.f();
|
|
26
|
-
}
|
|
27
|
-
return false;
|
|
28
|
-
};
|
|
29
9
|
var fileToImagePayload = exports.fileToImagePayload = function fileToImagePayload(file) {
|
|
30
|
-
if (!file?.meta) {
|
|
31
|
-
return null;
|
|
32
|
-
}
|
|
33
|
-
if (!isImageType(file)) {
|
|
34
|
-
return null;
|
|
35
|
-
}
|
|
36
10
|
var imagePayload = {};
|
|
37
11
|
imagePayload["id"] = file.id;
|
|
38
12
|
imagePayload["src"] = file.src;
|
|
39
13
|
imagePayload["showCaption"] = true;
|
|
40
14
|
imagePayload["captionsEnabled"] = true;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
15
|
+
if (file?.meta) {
|
|
16
|
+
var _iterator = (0, _createForOfIteratorHelper2.default)(file.meta),
|
|
17
|
+
_step;
|
|
18
|
+
try {
|
|
19
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
20
|
+
var metaValue = _step.value;
|
|
21
|
+
if (metaValue.key === "name") {
|
|
22
|
+
imagePayload["altText"] = metaValue.value;
|
|
23
|
+
} else if (metaValue.key === "width") {
|
|
24
|
+
imagePayload["width"] = metaValue.value;
|
|
25
|
+
} else if (metaValue.key === "height") {
|
|
26
|
+
imagePayload["height"] = metaValue.value;
|
|
27
|
+
}
|
|
52
28
|
}
|
|
29
|
+
} catch (err) {
|
|
30
|
+
_iterator.e(err);
|
|
31
|
+
} finally {
|
|
32
|
+
_iterator.f();
|
|
53
33
|
}
|
|
54
|
-
} catch (err) {
|
|
55
|
-
_iterator2.e(err);
|
|
56
|
-
} finally {
|
|
57
|
-
_iterator2.f();
|
|
58
34
|
}
|
|
59
35
|
return imagePayload;
|
|
60
36
|
};
|
package/utils/files.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["fileToImagePayload","exports","file","imagePayload","id","src","meta","_iterator","_createForOfIteratorHelper2","default","_step","s","n","done","metaValue","value","key","err","e","f"],"sources":["files.ts"],"sourcesContent":["import { ImagePayload } from \"~/commands\";\n\nexport interface FileManagerFileItem {\n id: string;\n src: string;\n meta?: Array<FileManagerFileItemMetaItem>;\n}\n\nexport interface FileManagerFileItemMetaItem {\n key: string;\n value: any;\n}\n\nexport const fileToImagePayload = (file: FileManagerFileItem): ImagePayload | null => {\n const imagePayload = {} as ImagePayload;\n imagePayload[\"id\"] = file.id;\n imagePayload[\"src\"] = file.src;\n imagePayload[\"showCaption\"] = true;\n imagePayload[\"captionsEnabled\"] = true;\n\n if (file?.meta) {\n for (const metaValue of file.meta) {\n if (metaValue.key === \"name\") {\n imagePayload[\"altText\"] = metaValue.value;\n } else if (metaValue.key === \"width\") {\n imagePayload[\"width\"] = metaValue.value;\n } else if (metaValue.key === \"height\") {\n imagePayload[\"height\"] = metaValue.value;\n }\n }\n }\n\n return imagePayload;\n};\n"],"mappings":";;;;;;;;AAaO,IAAMA,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG,SAArBA,kBAAkBA,CAAIE,IAAyB,EAA0B;EAClF,IAAMC,YAAY,GAAG,CAAC,CAAiB;EACvCA,YAAY,CAAC,IAAI,CAAC,GAAGD,IAAI,CAACE,EAAE;EAC5BD,YAAY,CAAC,KAAK,CAAC,GAAGD,IAAI,CAACG,GAAG;EAC9BF,YAAY,CAAC,aAAa,CAAC,GAAG,IAAI;EAClCA,YAAY,CAAC,iBAAiB,CAAC,GAAG,IAAI;EAEtC,IAAID,IAAI,EAAEI,IAAI,EAAE;IAAA,IAAAC,SAAA,OAAAC,2BAAA,CAAAC,OAAA,EACYP,IAAI,CAACI,IAAI;MAAAI,KAAA;IAAA;MAAjC,KAAAH,SAAA,CAAAI,CAAA,MAAAD,KAAA,GAAAH,SAAA,CAAAK,CAAA,IAAAC,IAAA,GAAmC;QAAA,IAAxBC,SAAS,GAAAJ,KAAA,CAAAK,KAAA;QAChB,IAAID,SAAS,CAACE,GAAG,KAAK,MAAM,EAAE;UAC1Bb,YAAY,CAAC,SAAS,CAAC,GAAGW,SAAS,CAACC,KAAK;QAC7C,CAAC,MAAM,IAAID,SAAS,CAACE,GAAG,KAAK,OAAO,EAAE;UAClCb,YAAY,CAAC,OAAO,CAAC,GAAGW,SAAS,CAACC,KAAK;QAC3C,CAAC,MAAM,IAAID,SAAS,CAACE,GAAG,KAAK,QAAQ,EAAE;UACnCb,YAAY,CAAC,QAAQ,CAAC,GAAGW,SAAS,CAACC,KAAK;QAC5C;MACJ;IAAC,SAAAE,GAAA;MAAAV,SAAA,CAAAW,CAAA,CAAAD,GAAA;IAAA;MAAAV,SAAA,CAAAY,CAAA;IAAA;EACL;EAEA,OAAOhB,YAAY;AACvB,CAAC","ignoreList":[]}
|