@mirai/core 0.4.523 → 0.4.524

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.
@@ -5,16 +5,13 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.Message = void 0;
7
7
  var _dataSources = require("@mirai/data-sources");
8
- var _locale = require("@mirai/locale");
9
8
  var _ui = require("@mirai/ui");
10
9
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
10
  var _react = _interopRequireWildcard(require("react"));
12
11
  var _components = require("./components");
13
12
  var _helpers = require("./helpers");
14
- var _Message = require("./Message.l10n");
15
13
  var style = _interopRequireWildcard(require("./Message.module.css"));
16
- var _helpers2 = require("../../../helpers");
17
- const _excluded = ["busy", "disabled", "images", "synapse", "text", "url"],
14
+ const _excluded = ["busy", "images", "synapse", "text"],
18
15
  _excluded2 = ["testId"];
19
16
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
20
17
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -29,16 +26,11 @@ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t =
29
26
  const Message = _ref => {
30
27
  let {
31
28
  busy = false,
32
- disabled,
33
29
  images = [],
34
30
  synapse,
35
- text,
36
- url
31
+ text
37
32
  } = _ref,
38
33
  others = _objectWithoutProperties(_ref, _excluded);
39
- const {
40
- translate
41
- } = (0, _locale.useLocale)();
42
34
  const containerRef = (0, _react.useRef)();
43
35
  const {
44
36
  value: {
@@ -46,14 +38,10 @@ const Message = _ref => {
46
38
  } = {}
47
39
  } = (0, _dataSources.useStore)();
48
40
  const [containerWidth, setContainerWidth] = (0, _react.useState)();
49
- const {
50
- innerUrl,
51
- text: displayText
52
- } = (0, _helpers.resolveInnerUrl)(text, url);
53
41
  const {
54
42
  imageUrl: inlineImageUrl,
55
43
  text: textWithoutInlineImage
56
- } = (0, _helpers.extractTrailingImageMarkdown)(displayText);
44
+ } = (0, _helpers.extractTrailingImageMarkdown)(text);
57
45
  const galleryImages = inlineImageUrl ? [...images, inlineImageUrl] : images;
58
46
  const {
59
47
  testId
@@ -66,9 +54,6 @@ const Message = _ref => {
66
54
  window.addEventListener('resize', updateWidth);
67
55
  return () => window.removeEventListener('resize', updateWidth);
68
56
  }, [synapse]);
69
- const handlePress = url => {
70
- window.open(url, '_blank');
71
- };
72
57
  return /*#__PURE__*/_react.default.createElement(_ui.View, {
73
58
  testId: testId,
74
59
  wide: true
@@ -83,16 +68,7 @@ const Message = _ref => {
83
68
  className: style.spinner
84
69
  }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.Text, {
85
70
  className: style.text
86
- }, (0, _helpers.formatText)(textWithoutInlineImage)), innerUrl && /*#__PURE__*/_react.default.createElement(_ui.Pressable, {
87
- onPress: !disabled ? () => handlePress(innerUrl) : undefined,
88
- className: style.card
89
- }, /*#__PURE__*/_react.default.createElement(_ui.Icon, {
90
- light: true,
91
- value: _helpers2.ICON.LINK
92
- }), /*#__PURE__*/_react.default.createElement(_ui.Text, {
93
- action: true,
94
- className: style.text
95
- }, translate(_Message.L10N.LABEL_VIEW_LINK))), galleryImages.length > 0 && containerWidth && /*#__PURE__*/_react.default.createElement(_ui.Slider, {
71
+ }, (0, _helpers.formatText)(textWithoutInlineImage)), galleryImages.length > 0 && containerWidth && /*#__PURE__*/_react.default.createElement(_ui.Slider, {
96
72
  height: containerWidth * 0.66,
97
73
  images: galleryImages,
98
74
  width: containerWidth,
@@ -104,10 +80,8 @@ const Message = _ref => {
104
80
  exports.Message = Message;
105
81
  Message.propTypes = {
106
82
  busy: _propTypes.default.bool,
107
- disabled: _propTypes.default.bool,
108
83
  images: _propTypes.default.arrayOf(_propTypes.default.string),
109
84
  synapse: _propTypes.default.bool,
110
- text: _propTypes.default.string,
111
- url: _propTypes.default.string
85
+ text: _propTypes.default.string
112
86
  };
113
87
  //# sourceMappingURL=Message.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Message.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_helpers","_Message","style","_helpers2","_excluded","_excluded2","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_objectWithoutProperties","_objectWithoutPropertiesLoose","indexOf","propertyIsEnumerable","Message","_ref","busy","disabled","images","synapse","text","url","others","translate","useLocale","containerRef","useRef","urlParams","useStore","containerWidth","setContainerWidth","useState","innerUrl","displayText","resolveInnerUrl","imageUrl","inlineImageUrl","textWithoutInlineImage","extractTrailingImageMarkdown","galleryImages","testId","synapseProps","useEffect","current","updateWidth","offsetWidth","window","addEventListener","removeEventListener","handlePress","open","createElement","View","wide","row","className","styles","message","ref","undefined","content","spinner","Fragment","Text","formatText","Pressable","onPress","card","Icon","light","ICON","LINK","action","L10N","LABEL_VIEW_LINK","Slider","height","width","gallery","sarai","Environment","exports","propTypes","PropTypes","bool","arrayOf","string"],"sources":["../../../../../src/components/Chat/components/Message/Message.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Icon, Slider, styles, Pressable, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { Environment } from './components';\nimport { extractTrailingImageMarkdown, formatText, resolveInnerUrl } from './helpers';\nimport { L10N } from './Message.l10n';\nimport * as style from './Message.module.css';\nimport { ICON } from '../../../helpers';\n\n// ! TODO: Refacto use of intent/response vs lisa.intent/response\nconst Message = ({ busy = false, disabled, images = [], synapse, text, url, ...others }) => {\n const { translate } = useLocale();\n const containerRef = useRef();\n const { value: { urlParams = {} } = {} } = useStore();\n\n const [containerWidth, setContainerWidth] = useState();\n const { innerUrl, text: displayText } = resolveInnerUrl(text, url);\n const { imageUrl: inlineImageUrl, text: textWithoutInlineImage } = extractTrailingImageMarkdown(displayText);\n const galleryImages = inlineImageUrl ? [...images, inlineImageUrl] : images;\n\n const { testId, ...synapseProps } = others;\n\n useEffect(() => {\n if (!synapse || !containerRef?.current) return setContainerWidth();\n\n const updateWidth = () => setContainerWidth(containerRef.current.offsetWidth);\n updateWidth();\n\n window.addEventListener('resize', updateWidth);\n\n return () => window.removeEventListener('resize', updateWidth);\n }, [synapse]);\n\n const handlePress = (url) => {\n window.open(url, '_blank');\n };\n\n return (\n <View testId={testId} wide>\n <View row wide className={styles(style.message, synapse && style.synapse)}>\n <View\n ref={synapse ? containerRef : undefined}\n className={styles(style.content, synapse && style.synapse, busy && style.busy)}\n >\n {busy ? (\n <View className={style.spinner} />\n ) : (\n <>\n <Text className={style.text}>{formatText(textWithoutInlineImage)}</Text>\n {innerUrl && (\n <Pressable onPress={!disabled ? () => handlePress(innerUrl) : undefined} className={style.card}>\n <Icon light value={ICON.LINK} />\n <Text action className={style.text}>\n {translate(L10N.LABEL_VIEW_LINK)}\n </Text>\n </Pressable>\n )}\n {galleryImages.length > 0 && containerWidth && (\n <Slider\n height={containerWidth * 0.66}\n images={galleryImages}\n width={containerWidth}\n className={style.gallery}\n />\n )}\n </>\n )}\n </View>\n </View>\n\n {!busy && synapse && urlParams.sarai === 'environment' && (\n <Environment {...{ synapse, ...others, ...synapseProps }} />\n )}\n </View>\n );\n};\n\nMessage.propTypes = {\n busy: PropTypes.bool,\n disabled: PropTypes.bool,\n images: PropTypes.arrayOf(PropTypes.string),\n synapse: PropTypes.bool,\n text: PropTypes.string,\n url: PropTypes.string,\n};\n\nexport { Message };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Message.js","names":["_dataSources","require","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_helpers","style","_excluded","_excluded2","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_objectWithoutProperties","_objectWithoutPropertiesLoose","indexOf","propertyIsEnumerable","Message","_ref","busy","images","synapse","text","others","containerRef","useRef","urlParams","useStore","containerWidth","setContainerWidth","useState","imageUrl","inlineImageUrl","textWithoutInlineImage","extractTrailingImageMarkdown","galleryImages","testId","synapseProps","useEffect","current","updateWidth","offsetWidth","window","addEventListener","removeEventListener","createElement","View","wide","row","className","styles","message","ref","undefined","content","spinner","Fragment","Text","formatText","Slider","height","width","gallery","sarai","Environment","exports","propTypes","PropTypes","bool","arrayOf","string"],"sources":["../../../../../src/components/Chat/components/Message/Message.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { Slider, styles, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { Environment } from './components';\nimport { extractTrailingImageMarkdown, formatText } from './helpers';\nimport * as style from './Message.module.css';\n\n// ! TODO: Refacto use of intent/response vs lisa.intent/response\nconst Message = ({ busy = false, images = [], synapse, text, ...others }) => {\n const containerRef = useRef();\n const { value: { urlParams = {} } = {} } = useStore();\n\n const [containerWidth, setContainerWidth] = useState();\n const { imageUrl: inlineImageUrl, text: textWithoutInlineImage } = extractTrailingImageMarkdown(text);\n const galleryImages = inlineImageUrl ? [...images, inlineImageUrl] : images;\n\n const { testId, ...synapseProps } = others;\n\n useEffect(() => {\n if (!synapse || !containerRef?.current) return setContainerWidth();\n\n const updateWidth = () => setContainerWidth(containerRef.current.offsetWidth);\n updateWidth();\n\n window.addEventListener('resize', updateWidth);\n\n return () => window.removeEventListener('resize', updateWidth);\n }, [synapse]);\n\n return (\n <View testId={testId} wide>\n <View row wide className={styles(style.message, synapse && style.synapse)}>\n <View\n ref={synapse ? containerRef : undefined}\n className={styles(style.content, synapse && style.synapse, busy && style.busy)}\n >\n {busy ? (\n <View className={style.spinner} />\n ) : (\n <>\n <Text className={style.text}>{formatText(textWithoutInlineImage)}</Text>\n {galleryImages.length > 0 && containerWidth && (\n <Slider\n height={containerWidth * 0.66}\n images={galleryImages}\n width={containerWidth}\n className={style.gallery}\n />\n )}\n </>\n )}\n </View>\n </View>\n\n {!busy && synapse && urlParams.sarai === 'environment' && (\n <Environment {...{ synapse, ...others, ...synapseProps }} />\n )}\n </View>\n );\n};\n\nMessage.propTypes = {\n busy: PropTypes.bool,\n images: PropTypes.arrayOf(PropTypes.string),\n synapse: PropTypes.bool,\n text: PropTypes.string,\n};\n\nexport { Message };\n"],"mappings":"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","ignoreList":[]}
@@ -8,8 +8,8 @@ var _ui = require("@mirai/ui");
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
10
  const IMAGE_MARKDOWN_REGEX = /!\[image\]\((https?:\/\/[^\s)]+)\)\s*$/;
11
- const URL_SPLIT_REGEX = /(https?:\/\/[^\s]+)/g;
12
- const URL_MATCH_REGEX = /^https?:\/\/[^\s]+$/;
11
+ const LINK_TOKEN_REGEX = /\[([^\]]+)\]\((https?:\/\/[^\s)]+)\)|(https?:\/\/[^\s]+)/g;
12
+ const TRAILING_PUNCTUATION_REGEX = /[.,!?;:]$/;
13
13
  const renderTextWithLineBreaks = (value, keyPrefix) => {
14
14
  const lines = value.split('\n');
15
15
  if (lines.length === 1) return value;
@@ -40,23 +40,48 @@ const extractTrailingImageMarkdown = text => {
40
40
  exports.extractTrailingImageMarkdown = extractTrailingImageMarkdown;
41
41
  const formatText = text => {
42
42
  if (!text) return text;
43
- const parts = text.split(URL_SPLIT_REGEX);
44
43
  const hasNewlines = text.includes('\n');
45
- if (parts.length === 1 && !hasNewlines) return text;
46
- return parts.flatMap((part, index) => {
47
- if (URL_MATCH_REGEX.test(part)) {
48
- const cleanUrl = part.replace(/[.,!?;:]$/, '');
49
- return [/*#__PURE__*/_react.default.createElement(_ui.Action, {
50
- key: index,
51
- href: cleanUrl,
52
- paragraph: true,
53
- rel: "noopener noreferrer",
54
- target: "_blank",
55
- underline: true
56
- }, cleanUrl)];
44
+ const hasLinks = LINK_TOKEN_REGEX.test(text);
45
+ LINK_TOKEN_REGEX.lastIndex = 0;
46
+ if (!hasLinks && !hasNewlines) return text;
47
+ if (!hasLinks) return renderTextWithLineBreaks(text, 'text');
48
+ const output = [];
49
+ let lastIndex = 0;
50
+ let match;
51
+ while ((match = LINK_TOKEN_REGEX.exec(text)) !== null) {
52
+ const [rawMatch, markdownLabel, markdownUrl, rawUrl] = match;
53
+ const matchIndex = match.index;
54
+ if (matchIndex > lastIndex) {
55
+ const beforeText = text.slice(lastIndex, matchIndex);
56
+ const renderedBefore = renderTextWithLineBreaks(beforeText, "text-".concat(matchIndex));
57
+ if (Array.isArray(renderedBefore)) {
58
+ output.push(...renderedBefore);
59
+ } else {
60
+ output.push(renderedBefore);
61
+ }
57
62
  }
58
- return renderTextWithLineBreaks(part, index);
59
- });
63
+ const linkUrl = (markdownUrl || rawUrl).replace(TRAILING_PUNCTUATION_REGEX, '');
64
+ const linkLabel = markdownLabel || linkUrl;
65
+ output.push(/*#__PURE__*/_react.default.createElement(_ui.Action, {
66
+ key: "link-".concat(matchIndex),
67
+ href: linkUrl,
68
+ paragraph: true,
69
+ rel: "noopener noreferrer",
70
+ target: "_blank",
71
+ underline: true
72
+ }, linkLabel));
73
+ lastIndex = matchIndex + rawMatch.length;
74
+ }
75
+ if (lastIndex < text.length) {
76
+ const remainingText = text.slice(lastIndex);
77
+ const renderedRemaining = renderTextWithLineBreaks(remainingText, "text-".concat(lastIndex));
78
+ if (Array.isArray(renderedRemaining)) {
79
+ output.push(...renderedRemaining);
80
+ } else {
81
+ output.push(renderedRemaining);
82
+ }
83
+ }
84
+ return output;
60
85
  };
61
86
  exports.formatText = formatText;
62
87
  //# sourceMappingURL=formatText.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatText.js","names":["_ui","require","_react","_interopRequireDefault","e","__esModule","default","IMAGE_MARKDOWN_REGEX","URL_SPLIT_REGEX","URL_MATCH_REGEX","renderTextWithLineBreaks","value","keyPrefix","lines","split","length","flatMap","line","index","createElement","key","concat","extractTrailingImageMarkdown","text","imageUrl","undefined","match","nextText","replace","exports","formatText","parts","hasNewlines","includes","part","test","cleanUrl","Action","href","paragraph","rel","target","underline"],"sources":["../../../../../../src/components/Chat/components/Message/helpers/formatText.js"],"sourcesContent":["import { Action } from '@mirai/ui';\nimport React from 'react';\n\nconst IMAGE_MARKDOWN_REGEX = /!\\[image\\]\\((https?:\\/\\/[^\\s)]+)\\)\\s*$/;\nconst URL_SPLIT_REGEX = /(https?:\\/\\/[^\\s]+)/g;\nconst URL_MATCH_REGEX = /^https?:\\/\\/[^\\s]+$/;\n\nconst renderTextWithLineBreaks = (value, keyPrefix) => {\n const lines = value.split('\\n');\n\n if (lines.length === 1) return value;\n\n return lines.flatMap((line, index) => {\n if (index === lines.length - 1) return line;\n\n return [line, <br key={`${keyPrefix}-br-${index}`} />];\n });\n};\n\nexport const extractTrailingImageMarkdown = (text) => {\n if (!text) return { imageUrl: undefined, text };\n\n const match = text.match(IMAGE_MARKDOWN_REGEX);\n\n if (!match) return { imageUrl: undefined, text };\n\n const [, imageUrl] = match;\n const nextText = text.replace(IMAGE_MARKDOWN_REGEX, '').replace(/[ \\t]+$/g, '');\n\n return { imageUrl, text: nextText };\n};\n\nexport const formatText = (text) => {\n if (!text) return text;\n\n const parts = text.split(URL_SPLIT_REGEX);\n const hasNewlines = text.includes('\\n');\n\n if (parts.length === 1 && !hasNewlines) return text;\n\n return parts.flatMap((part, index) => {\n if (URL_MATCH_REGEX.test(part)) {\n const cleanUrl = part.replace(/[.,!?;:]$/, '');\n return [\n <Action key={index} href={cleanUrl} paragraph rel=\"noopener noreferrer\" target=\"_blank\" underline>\n {cleanUrl}\n </Action>,\n ];\n }\n\n return renderTextWithLineBreaks(part, index);\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,GAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAA0B,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE1B,MAAMG,oBAAoB,GAAG,wCAAwC;AACrE,MAAMC,eAAe,GAAG,sBAAsB;AAC9C,MAAMC,eAAe,GAAG,qBAAqB;AAE7C,MAAMC,wBAAwB,GAAGA,CAACC,KAAK,EAAEC,SAAS,KAAK;EACrD,MAAMC,KAAK,GAAGF,KAAK,CAACG,KAAK,CAAC,IAAI,CAAC;EAE/B,IAAID,KAAK,CAACE,MAAM,KAAK,CAAC,EAAE,OAAOJ,KAAK;EAEpC,OAAOE,KAAK,CAACG,OAAO,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAK;IACpC,IAAIA,KAAK,KAAKL,KAAK,CAACE,MAAM,GAAG,CAAC,EAAE,OAAOE,IAAI;IAE3C,OAAO,CAACA,IAAI,eAAEf,MAAA,CAAAI,OAAA,CAAAa,aAAA;MAAIC,GAAG,KAAAC,MAAA,CAAKT,SAAS,UAAAS,MAAA,CAAOH,KAAK;IAAG,CAAE,CAAC,CAAC;EACxD,CAAC,CAAC;AACJ,CAAC;AAEM,MAAMI,4BAA4B,GAAIC,IAAI,IAAK;EACpD,IAAI,CAACA,IAAI,EAAE,OAAO;IAAEC,QAAQ,EAAEC,SAAS;IAAEF;EAAK,CAAC;EAE/C,MAAMG,KAAK,GAAGH,IAAI,CAACG,KAAK,CAACnB,oBAAoB,CAAC;EAE9C,IAAI,CAACmB,KAAK,EAAE,OAAO;IAAEF,QAAQ,EAAEC,SAAS;IAAEF;EAAK,CAAC;EAEhD,MAAM,GAAGC,QAAQ,CAAC,GAAGE,KAAK;EAC1B,MAAMC,QAAQ,GAAGJ,IAAI,CAACK,OAAO,CAACrB,oBAAoB,EAAE,EAAE,CAAC,CAACqB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;EAE/E,OAAO;IAAEJ,QAAQ;IAAED,IAAI,EAAEI;EAAS,CAAC;AACrC,CAAC;AAACE,OAAA,CAAAP,4BAAA,GAAAA,4BAAA;AAEK,MAAMQ,UAAU,GAAIP,IAAI,IAAK;EAClC,IAAI,CAACA,IAAI,EAAE,OAAOA,IAAI;EAEtB,MAAMQ,KAAK,GAAGR,IAAI,CAACT,KAAK,CAACN,eAAe,CAAC;EACzC,MAAMwB,WAAW,GAAGT,IAAI,CAACU,QAAQ,CAAC,IAAI,CAAC;EAEvC,IAAIF,KAAK,CAAChB,MAAM,KAAK,CAAC,IAAI,CAACiB,WAAW,EAAE,OAAOT,IAAI;EAEnD,OAAOQ,KAAK,CAACf,OAAO,CAAC,CAACkB,IAAI,EAAEhB,KAAK,KAAK;IACpC,IAAIT,eAAe,CAAC0B,IAAI,CAACD,IAAI,CAAC,EAAE;MAC9B,MAAME,QAAQ,GAAGF,IAAI,CAACN,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;MAC9C,OAAO,cACL1B,MAAA,CAAAI,OAAA,CAAAa,aAAA,CAACnB,GAAA,CAAAqC,MAAM;QAACjB,GAAG,EAAEF,KAAM;QAACoB,IAAI,EAAEF,QAAS;QAACG,SAAS;QAACC,GAAG,EAAC,qBAAqB;QAACC,MAAM,EAAC,QAAQ;QAACC,SAAS;MAAA,GAC9FN,QACK,CAAC,CACV;IACH;IAEA,OAAO1B,wBAAwB,CAACwB,IAAI,EAAEhB,KAAK,CAAC;EAC9C,CAAC,CAAC;AACJ,CAAC;AAACW,OAAA,CAAAC,UAAA,GAAAA,UAAA","ignoreList":[]}
1
+ {"version":3,"file":"formatText.js","names":["_ui","require","_react","_interopRequireDefault","e","__esModule","default","IMAGE_MARKDOWN_REGEX","LINK_TOKEN_REGEX","TRAILING_PUNCTUATION_REGEX","renderTextWithLineBreaks","value","keyPrefix","lines","split","length","flatMap","line","index","createElement","key","concat","extractTrailingImageMarkdown","text","imageUrl","undefined","match","nextText","replace","exports","formatText","hasNewlines","includes","hasLinks","test","lastIndex","output","exec","rawMatch","markdownLabel","markdownUrl","rawUrl","matchIndex","beforeText","slice","renderedBefore","Array","isArray","push","linkUrl","linkLabel","Action","href","paragraph","rel","target","underline","remainingText","renderedRemaining"],"sources":["../../../../../../src/components/Chat/components/Message/helpers/formatText.js"],"sourcesContent":["import { Action } from '@mirai/ui';\nimport React from 'react';\n\nconst IMAGE_MARKDOWN_REGEX = /!\\[image\\]\\((https?:\\/\\/[^\\s)]+)\\)\\s*$/;\nconst LINK_TOKEN_REGEX = /\\[([^\\]]+)\\]\\((https?:\\/\\/[^\\s)]+)\\)|(https?:\\/\\/[^\\s]+)/g;\nconst TRAILING_PUNCTUATION_REGEX = /[.,!?;:]$/;\n\nconst renderTextWithLineBreaks = (value, keyPrefix) => {\n const lines = value.split('\\n');\n\n if (lines.length === 1) return value;\n\n return lines.flatMap((line, index) => {\n if (index === lines.length - 1) return line;\n\n return [line, <br key={`${keyPrefix}-br-${index}`} />];\n });\n};\n\nexport const extractTrailingImageMarkdown = (text) => {\n if (!text) return { imageUrl: undefined, text };\n\n const match = text.match(IMAGE_MARKDOWN_REGEX);\n\n if (!match) return { imageUrl: undefined, text };\n\n const [, imageUrl] = match;\n const nextText = text.replace(IMAGE_MARKDOWN_REGEX, '').replace(/[ \\t]+$/g, '');\n\n return { imageUrl, text: nextText };\n};\n\nexport const formatText = (text) => {\n if (!text) return text;\n\n const hasNewlines = text.includes('\\n');\n const hasLinks = LINK_TOKEN_REGEX.test(text);\n LINK_TOKEN_REGEX.lastIndex = 0;\n\n if (!hasLinks && !hasNewlines) return text;\n if (!hasLinks) return renderTextWithLineBreaks(text, 'text');\n\n const output = [];\n let lastIndex = 0;\n let match;\n\n while ((match = LINK_TOKEN_REGEX.exec(text)) !== null) {\n const [rawMatch, markdownLabel, markdownUrl, rawUrl] = match;\n const matchIndex = match.index;\n\n if (matchIndex > lastIndex) {\n const beforeText = text.slice(lastIndex, matchIndex);\n const renderedBefore = renderTextWithLineBreaks(beforeText, `text-${matchIndex}`);\n if (Array.isArray(renderedBefore)) {\n output.push(...renderedBefore);\n } else {\n output.push(renderedBefore);\n }\n }\n\n const linkUrl = (markdownUrl || rawUrl).replace(TRAILING_PUNCTUATION_REGEX, '');\n const linkLabel = markdownLabel || linkUrl;\n\n output.push(\n <Action key={`link-${matchIndex}`} href={linkUrl} paragraph rel=\"noopener noreferrer\" target=\"_blank\" underline>\n {linkLabel}\n </Action>,\n );\n\n lastIndex = matchIndex + rawMatch.length;\n }\n\n if (lastIndex < text.length) {\n const remainingText = text.slice(lastIndex);\n const renderedRemaining = renderTextWithLineBreaks(remainingText, `text-${lastIndex}`);\n if (Array.isArray(renderedRemaining)) {\n output.push(...renderedRemaining);\n } else {\n output.push(renderedRemaining);\n }\n }\n\n return output;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -36,15 +36,4 @@ Object.keys(_formatText).forEach(function (key) {
36
36
  }
37
37
  });
38
38
  });
39
- var _resolveInnerUrl = require("./resolveInnerUrl");
40
- Object.keys(_resolveInnerUrl).forEach(function (key) {
41
- if (key === "default" || key === "__esModule") return;
42
- if (key in exports && exports[key] === _resolveInnerUrl[key]) return;
43
- Object.defineProperty(exports, key, {
44
- enumerable: true,
45
- get: function () {
46
- return _resolveInnerUrl[key];
47
- }
48
- });
49
- });
50
39
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_getActionIcon","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_getTime","_formatText","_resolveInnerUrl"],"sources":["../../../../../../src/components/Chat/components/Message/helpers/index.js"],"sourcesContent":["export * from './getActionIcon';\nexport * from './getTime';\nexport * from './formatText';\nexport * from './resolveInnerUrl';\n"],"mappings":";;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,cAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,cAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,cAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,QAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,QAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,QAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,QAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,WAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,WAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,WAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,WAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,gBAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,gBAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,gBAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,gBAAA,CAAAP,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_getActionIcon","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_getTime","_formatText"],"sources":["../../../../../../src/components/Chat/components/Message/helpers/index.js"],"sourcesContent":["export * from './getActionIcon';\nexport * from './getTime';\nexport * from './formatText';\n"],"mappings":";;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,cAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,cAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,cAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,QAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,QAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,QAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,QAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,WAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,WAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,WAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,WAAA,CAAAN,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirai/core",
3
- "version": "0.4.523",
3
+ "version": "0.4.524",
4
4
  "source": "src/index.js",
5
5
  "repository": "https://gitlab.com/miraicorp/dev/frontend/core",
6
6
  "author": "JΛVI <hello@soyjavi.com>",
@@ -1,12 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.L10N = void 0;
7
- const L10N = exports.L10N = {
8
- LABEL_VIEW_LINK: {
9
- id: 'lisa.label.view_link'
10
- }
11
- };
12
- //# sourceMappingURL=Message.l10n.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Message.l10n.js","names":["L10N","exports","LABEL_VIEW_LINK","id"],"sources":["../../../../../src/components/Chat/components/Message/Message.l10n.js"],"sourcesContent":["export const L10N = {\n LABEL_VIEW_LINK: { id: 'lisa.label.view_link' },\n};\n"],"mappings":";;;;;;AAAO,MAAMA,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG;EAClBE,eAAe,EAAE;IAAEC,EAAE,EAAE;EAAuB;AAChD,CAAC","ignoreList":[]}
@@ -1,36 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.resolveInnerUrl = void 0;
7
- const URL_REGEX = /https?:\/\/[^\s]+/i;
8
- const TRAILING_PUNCTUATION_REGEX = /[.,!?;:]$/;
9
- const TRAILING_IMAGE_MARKDOWN_REGEX = /!\[image\]\(https?:\/\/[^\s)]+\)\s*$/i;
10
- const MULTIPLE_SPACES_REGEX = /[ \t]{2,}/g;
11
- const SPACES_BEFORE_NEWLINE_REGEX = /[ \t]+\n/g;
12
- const SPACES_AFTER_NEWLINE_REGEX = /\n[ \t]+/g;
13
- const resolveInnerUrl = (text, url) => {
14
- if (url) return {
15
- innerUrl: url,
16
- text
17
- };
18
- if (!text) return {
19
- innerUrl: undefined,
20
- text
21
- };
22
- const textWithoutTrailingImage = text.replace(TRAILING_IMAGE_MARKDOWN_REGEX, '');
23
- const [matchedUrl] = textWithoutTrailingImage.match(URL_REGEX) || [];
24
- if (!matchedUrl) return {
25
- innerUrl: undefined,
26
- text
27
- };
28
- const cleanUrl = matchedUrl.replace(TRAILING_PUNCTUATION_REGEX, '');
29
- const textWithoutUrl = text.replace(matchedUrl, '').replace(MULTIPLE_SPACES_REGEX, ' ').replace(SPACES_BEFORE_NEWLINE_REGEX, '\n').replace(SPACES_AFTER_NEWLINE_REGEX, '\n').trim();
30
- return {
31
- innerUrl: cleanUrl,
32
- text: textWithoutUrl
33
- };
34
- };
35
- exports.resolveInnerUrl = resolveInnerUrl;
36
- //# sourceMappingURL=resolveInnerUrl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolveInnerUrl.js","names":["URL_REGEX","TRAILING_PUNCTUATION_REGEX","TRAILING_IMAGE_MARKDOWN_REGEX","MULTIPLE_SPACES_REGEX","SPACES_BEFORE_NEWLINE_REGEX","SPACES_AFTER_NEWLINE_REGEX","resolveInnerUrl","text","url","innerUrl","undefined","textWithoutTrailingImage","replace","matchedUrl","match","cleanUrl","textWithoutUrl","trim","exports"],"sources":["../../../../../../src/components/Chat/components/Message/helpers/resolveInnerUrl.js"],"sourcesContent":["const URL_REGEX = /https?:\\/\\/[^\\s]+/i;\nconst TRAILING_PUNCTUATION_REGEX = /[.,!?;:]$/;\nconst TRAILING_IMAGE_MARKDOWN_REGEX = /!\\[image\\]\\(https?:\\/\\/[^\\s)]+\\)\\s*$/i;\nconst MULTIPLE_SPACES_REGEX = /[ \\t]{2,}/g;\nconst SPACES_BEFORE_NEWLINE_REGEX = /[ \\t]+\\n/g;\nconst SPACES_AFTER_NEWLINE_REGEX = /\\n[ \\t]+/g;\n\nexport const resolveInnerUrl = (text, url) => {\n if (url) return { innerUrl: url, text };\n if (!text) return { innerUrl: undefined, text };\n const textWithoutTrailingImage = text.replace(TRAILING_IMAGE_MARKDOWN_REGEX, '');\n const [matchedUrl] = textWithoutTrailingImage.match(URL_REGEX) || [];\n if (!matchedUrl) return { innerUrl: undefined, text };\n const cleanUrl = matchedUrl.replace(TRAILING_PUNCTUATION_REGEX, '');\n const textWithoutUrl = text\n .replace(matchedUrl, '')\n .replace(MULTIPLE_SPACES_REGEX, ' ')\n .replace(SPACES_BEFORE_NEWLINE_REGEX, '\\n')\n .replace(SPACES_AFTER_NEWLINE_REGEX, '\\n')\n .trim();\n return { innerUrl: cleanUrl, text: textWithoutUrl };\n};\n"],"mappings":";;;;;;AAAA,MAAMA,SAAS,GAAG,oBAAoB;AACtC,MAAMC,0BAA0B,GAAG,WAAW;AAC9C,MAAMC,6BAA6B,GAAG,uCAAuC;AAC7E,MAAMC,qBAAqB,GAAG,YAAY;AAC1C,MAAMC,2BAA2B,GAAG,WAAW;AAC/C,MAAMC,0BAA0B,GAAG,WAAW;AAEvC,MAAMC,eAAe,GAAGA,CAACC,IAAI,EAAEC,GAAG,KAAK;EAC5C,IAAIA,GAAG,EAAE,OAAO;IAAEC,QAAQ,EAAED,GAAG;IAAED;EAAK,CAAC;EACvC,IAAI,CAACA,IAAI,EAAE,OAAO;IAAEE,QAAQ,EAAEC,SAAS;IAAEH;EAAK,CAAC;EAC/C,MAAMI,wBAAwB,GAAGJ,IAAI,CAACK,OAAO,CAACV,6BAA6B,EAAE,EAAE,CAAC;EAChF,MAAM,CAACW,UAAU,CAAC,GAAGF,wBAAwB,CAACG,KAAK,CAACd,SAAS,CAAC,IAAI,EAAE;EACpE,IAAI,CAACa,UAAU,EAAE,OAAO;IAAEJ,QAAQ,EAAEC,SAAS;IAAEH;EAAK,CAAC;EACrD,MAAMQ,QAAQ,GAAGF,UAAU,CAACD,OAAO,CAACX,0BAA0B,EAAE,EAAE,CAAC;EACnE,MAAMe,cAAc,GAAGT,IAAI,CACxBK,OAAO,CAACC,UAAU,EAAE,EAAE,CAAC,CACvBD,OAAO,CAACT,qBAAqB,EAAE,GAAG,CAAC,CACnCS,OAAO,CAACR,2BAA2B,EAAE,IAAI,CAAC,CAC1CQ,OAAO,CAACP,0BAA0B,EAAE,IAAI,CAAC,CACzCY,IAAI,CAAC,CAAC;EACT,OAAO;IAAER,QAAQ,EAAEM,QAAQ;IAAER,IAAI,EAAES;EAAe,CAAC;AACrD,CAAC;AAACE,OAAA,CAAAZ,eAAA,GAAAA,eAAA","ignoreList":[]}