Files
陈誉午 994b267f5c feat: 电子药箱小程序 - 4Tab药品管理
- 电子药箱: 药品库存管理 + 手动录入 + 今日用药打卡
- 药品百科: 搜索 + 分类筛选 + 20种药品静态数据
- 惠教中心: 4条药品使用指南课程
- 我的: 家庭成员信息管理
- 自定义TabBar + navigation-bar组件
- SVG药品分类插图
2026-07-29 11:20:52 +08:00

1 line
6.9 KiB
JavaScript

"use strict";function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_unsupportedIterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}}function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseRichTextSegments=exports.normalizeRichTextHtml=exports.normalizeMiniRichTextTags=exports.getRichTextPlainText=exports.editorXssFilter=exports.decodeHtmlEntities=void 0;var decodeHtmlEntities=function(e){if(!e)return"";var t={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'","&nbsp;":" "};return String(e).replace(/&(amp|lt|gt|quot|#39|nbsp);/g,function(e){return t[e]||e}).replace(/&#(\d+);/g,function(e,t){return String.fromCharCode(Number(t))}).replace(/&#x([0-9a-fA-F]+);/g,function(e,t){return String.fromCharCode(parseInt(t,16))})};exports.decodeHtmlEntities=decodeHtmlEntities;var editorXssFilter=function(e){return String(e||"").replace(/<\s*\/?script[^>]*>/gi,"").replace(/javascript:[^'"]*/gi,"").replace(/(onerror|ontoggle)\s*=\s*['"]?[^'"]*['"]?/gi,"")};exports.editorXssFilter=editorXssFilter;var normalizeMiniRichTextTags=function(e){return String(e||"").replace(/<(\/?)(section|article|header|footer|main|aside|figure|figcaption)([^>]*)>/gi,"<$1div$3>").replace(/<(\/?)font([^>]*)>/gi,"<$1span$2>").replace(/text-decoration-line\s*:/gi,"text-decoration:").replace(/<br([^/>]*)>/gi,"<br$1/>").replace(/<img\b([^>]*)>/gi,function(e,t){if(/style\s*=/.test(t))return e;var r=t.replace(/\/\s*$/,"");return"<img".concat(r,' style="max-width: 100%; height: auto;" />')})};exports.normalizeMiniRichTextTags=normalizeMiniRichTextTags;var normalizeRichTextHtml=function(e){if(!e)return"";var t=String(e),r=/&lt;[a-zA-Z!/]/.test(t)?decodeHtmlEntities(t):t;return normalizeMiniRichTextTags(editorXssFilter(r))};exports.normalizeRichTextHtml=normalizeRichTextHtml;var getRichTextPlainText=function(e){return decodeHtmlEntities(normalizeRichTextHtml(e).replace(/<\s*br\s*\/?>/gi,"\n").replace(/<\/(p|div|h[1-6]|li)>/gi,"\n").replace(/<[^>]+>/g,"").replace(/\n{3,}/g,"\n\n").trim())};exports.getRichTextPlainText=getRichTextPlainText;var BLOCK_TAGS={p:!0,div:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,ul:!0,ol:!0,li:!0},BLOCK_RENDER_TAGS={p:!0,div:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0},getTagName=function(e){var t=String(e||"").match(/^<\/?\s*([a-zA-Z0-9-]+)/);return((null==t?void 0:t[1])||"").toLowerCase()},getAttr=function(e,t){var r=new RegExp("\\b".concat(t,"\\s*=\\s*(\"([^\"]*)\"|'([^']*)'|([^\\s>]+))"),"i"),n=String(e||"").match(r);return decodeHtmlEntities((null==n?void 0:n[2])||(null==n?void 0:n[3])||(null==n?void 0:n[4])||"").trim()},HTML_FONT_SIZE_TO_PX={1:10,2:13,3:16,4:18,5:24,6:32,7:48},getLegacyFontSizeStyle=function(e){var t=Number(getAttr(e,"size"));return HTML_FONT_SIZE_TO_PX[t]?"font-size: ".concat(HTML_FONT_SIZE_TO_PX[t],"px"):""},getCurrentSegmentList=function(e,t){for(var r=t.length-1;r>=0;r-=1){var n,i;if(null!==(n=t[r])&&void 0!==n&&null!==(i=n.segment)&&void 0!==i&&i.children)return t[r].segment.children}return e},getBlockSegment=function(e,t){var r=getAttr(t,"style"),n={};return/^h[1-6]$/.test(e)&&(n["volc-rich-text-renderer-".concat(e)]=!0),{type:"block",className:["volc-rich-text-renderer-block"].concat(_toConsumableArray(Object.keys(n))).join(" "),style:r,children:[]}},getCurrentRichTextMeta=function(e){var t={},r=[],n="";return e.forEach(function(e){var i=e||{},a=i.tag,o=i.attrs,l=getAttr(o,"style");l&&(r.push(l),/text-decoration[^;]*line-through/i.test(l)&&(t["volc-rich-text-renderer-delete"]=!0));var s=getLegacyFontSizeStyle(o);s&&!/font-size\s*:/i.test(l)&&r.push(s),"b"!==a&&"strong"!==a||(t["volc-rich-text-renderer-bold"]=!0),"i"!==a&&"em"!==a||(t["volc-rich-text-renderer-italic"]=!0),"u"===a&&(t["volc-rich-text-renderer-underline"]=!0),"del"!==a&&"s"!==a&&"strike"!==a||(t["volc-rich-text-renderer-delete"]=!0),/^h[1-6]$/.test(a)&&(t["volc-rich-text-renderer-".concat(a)]=!0),"a"===a&&(n=getAttr(o,"href")||n,t["volc-rich-text-renderer-link"]=!0)}),{className:["volc-rich-text-renderer-text"].concat(_toConsumableArray(Object.keys(t))).join(" "),style:r.join(";"),url:n}},pushBreak=function(e){var t,r=e;r.length&&"br"!==(null===(t=r[r.length-1])||void 0===t?void 0:t.type)&&r.push({type:"br"})},pushTextSegment=function(e,t,r){var n=decodeHtmlEntities(t);if(n){var i=getCurrentRichTextMeta(r),a=getCurrentSegmentList(e,r);i.url?a.push({type:"link",text:n,url:i.url,className:i.className,style:i.style}):a.push({type:"text",text:n,url:"",className:i.className,style:i.style})}},pushListMarker=function(e,t,r){if("li"===r){for(var n="• ",i=t.length-1;i>=0;i-=1){var a,o;if("ol"===(null===(a=t[i])||void 0===a?void 0:a.tag)){t[i].index=(t[i].index||0)+1,n="".concat(t[i].index,". ");break}if("ul"===(null===(o=t[i])||void 0===o?void 0:o.tag))break}pushTextSegment(e,n,t)}},closeCurrentBlockContext=function(e){for(var t=-1,r=e.length-1;r>=0;r--)if(BLOCK_TAGS[e[r]&&e[r].tag]){t=r;break}t>=0&&e.splice(t,e.length-t)},pushCurrentBreak=function(e,t){pushBreak(getCurrentSegmentList(e,t))},parseRichTextSegments=function(e){var t=normalizeRichTextHtml(e);if(!t)return[];for(var r,n=[],i=[],a=/<!--[\s\S]*?-->|<[^>]+>|[^<]+/g;r=a.exec(t);){var o=r[0];if(o&&!o.startsWith("\x3c!--"))if(o.startsWith("<")){var l=getTagName(o);if(l)if("br"!==l)if(/^<\//.test(o)){var s=i.map(function(e){return e.tag}).lastIndexOf(l);s>=0&&i.splice(s,i.length-s),BLOCK_TAGS[l]&&!BLOCK_RENDER_TAGS[l]&&pushCurrentBreak(n,i)}else{var c=o.replace(/^<\s*[a-zA-Z0-9-]+/,"").replace(/\/?\s*>$/,"");if("img"!==l){if(BLOCK_TAGS[l]&&"li"!==l&&(closeCurrentBlockContext(i),BLOCK_RENDER_TAGS[l]||pushCurrentBreak(n,i)),BLOCK_RENDER_TAGS[l]){var u=getBlockSegment(l,c);getCurrentSegmentList(n,i).push(u),i.push({tag:l,attrs:c,index:0,segment:u})}else i.push({tag:l,attrs:c,index:0});pushListMarker(n,i,l),/\/\s*>$/.test(o)&&(i.pop(),BLOCK_TAGS[l]&&!BLOCK_RENDER_TAGS[l]&&pushCurrentBreak(n,i))}else{var g=getAttr(c,"src");if(g){var h=getCurrentRichTextMeta(i);getCurrentSegmentList(n,i).push({type:"image",src:g,url:h.url,text:getAttr(c,"alt")||g,style:getAttr(c,"style")||"max-width: 100%; height: auto;"})}}}else getCurrentSegmentList(n,i).push({type:"br"})}else pushTextSegment(n,o,i)}return n};exports.parseRichTextSegments=parseRichTextSegments;