@guodun/antdv 1.4.7 → 1.5.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.
- package/dist/es/components/contract-signing-location/src/ContractSigningLocation.vue.mjs +315 -286
- package/dist/es/components/contract-signing-location/src/ContractSigningLocationCanvas.vue.mjs +316 -285
- package/dist/es/components/contract-signing-location/src/ContractSigningTemplatePage.vue.mjs +62 -54
- package/dist/es/components/contract-signing-location/style/index.css +1 -1
- package/dist/es/components/index.mjs +1 -0
- package/dist/es/components/pro-contract-template-designer/index.mjs +1 -0
- package/dist/es/components/pro-contract-template-designer/src/ContractPrintIframe.mjs +7 -0
- package/dist/es/components/pro-contract-template-designer/src/ContractPrintIframe.vue.mjs +129 -0
- package/dist/es/components/pro-contract-template-designer/src/ContractPrintIframe.vue_vue_type_style_index_0_scoped_a9912ff0_lang.css +1 -0
- package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePreviewModal.vue.mjs +10 -5
- package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePreviewPage.vue.mjs +64 -43
- package/dist/es/components/pro-contract-template-designer/src/ContractTemplateRendererPage.vue.mjs +82 -53
- package/dist/es/components/pro-contract-template-designer/src/DesignerPage.vue.mjs +271 -265
- package/dist/es/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.mjs +762 -751
- package/dist/es/components/pro-contract-template-designer/src/ProContractTemplateRenderer.vue.mjs +217 -197
- package/dist/es/components/pro-contract-template-designer/src/constants.mjs +29 -51
- package/dist/es/components/pro-contract-template-designer/src/extensions/template-variable.mjs +103 -103
- package/dist/es/components/pro-contract-template-designer/src/extensions/word-paste.mjs +24 -21
- package/dist/es/components/pro-contract-template-designer/src/utils/contract-print-document.mjs +314 -0
- package/dist/es/components/pro-contract-template-designer/src/utils/page-decorations.mjs +1 -1
- package/dist/es/components/pro-contract-template-designer/src/utils/template-variable-render.mjs +47 -47
- package/dist/es/components/pro-contract-template-designer/src/utils/word-paste.mjs +216 -148
- package/dist/es/components/pro-contract-template-designer/style/index.css +1 -1
- package/dist/es/index.mjs +27 -26
- package/dist/lib/components/contract-signing-location/src/ContractSigningLocation.vue.cjs +1 -1
- package/dist/lib/components/contract-signing-location/src/ContractSigningLocationCanvas.vue.cjs +1 -1
- package/dist/lib/components/contract-signing-location/src/ContractSigningTemplatePage.vue.cjs +1 -1
- package/dist/lib/components/contract-signing-location/style/index.css +1 -1
- package/dist/lib/components/index.cjs +1 -1
- package/dist/lib/components/pro-contract-template-designer/index.cjs +1 -1
- package/dist/lib/components/pro-contract-template-designer/src/ContractPrintIframe.cjs +1 -0
- package/dist/lib/components/pro-contract-template-designer/src/ContractPrintIframe.vue.cjs +1 -0
- package/dist/lib/components/pro-contract-template-designer/src/ContractPrintIframe.vue_vue_type_style_index_0_scoped_a9912ff0_lang.css +1 -0
- package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePreviewModal.vue.cjs +1 -1
- package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePreviewPage.vue.cjs +1 -1
- package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateRendererPage.vue.cjs +1 -1
- package/dist/lib/components/pro-contract-template-designer/src/DesignerPage.vue.cjs +2 -2
- package/dist/lib/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.cjs +1 -1
- package/dist/lib/components/pro-contract-template-designer/src/ProContractTemplateRenderer.vue.cjs +1 -1
- package/dist/lib/components/pro-contract-template-designer/src/constants.cjs +1 -1
- package/dist/lib/components/pro-contract-template-designer/src/extensions/template-variable.cjs +1 -1
- package/dist/lib/components/pro-contract-template-designer/src/extensions/word-paste.cjs +1 -1
- package/dist/lib/components/pro-contract-template-designer/src/utils/contract-print-document.cjs +211 -0
- package/dist/lib/components/pro-contract-template-designer/src/utils/page-decorations.cjs +1 -1
- package/dist/lib/components/pro-contract-template-designer/src/utils/template-variable-render.cjs +1 -1
- package/dist/lib/components/pro-contract-template-designer/src/utils/word-paste.cjs +2 -2
- package/dist/lib/components/pro-contract-template-designer/style/index.css +1 -1
- package/dist/lib/index.cjs +1 -1
- package/dist/theme/contract-signing-location.css +1 -1
- package/dist/theme/icon.css +1 -1
- package/dist/theme/index.css +1 -1
- package/dist/types/components/contract-signing-location/src/ContractSigningLocation.vue.d.ts +7 -0
- package/dist/types/components/contract-signing-location/src/ContractSigningLocationCanvas.vue.d.ts +4 -0
- package/dist/types/components/contract-signing-location/src/ContractSigningTemplatePage.vue.d.ts +9 -3
- package/dist/types/components/contract-signing-location/src/types.d.ts +5 -0
- package/dist/types/components/pro-contract-template-designer/index.d.ts +1 -0
- package/dist/types/components/pro-contract-template-designer/src/ContractPrintIframe.vue.d.ts +35 -0
- package/dist/types/components/pro-contract-template-designer/src/ContractTemplateDesignerToolbar.vue.d.ts +2 -2
- package/dist/types/components/pro-contract-template-designer/src/ContractTemplatePreviewModal.vue.d.ts +1 -0
- package/dist/types/components/pro-contract-template-designer/src/ContractTemplatePreviewPage.vue.d.ts +1 -0
- package/dist/types/components/pro-contract-template-designer/src/ContractTemplateRendererPage.vue.d.ts +13 -1
- package/dist/types/components/pro-contract-template-designer/src/DesignerPage.vue.d.ts +6 -0
- package/dist/types/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.d.ts +1 -0
- package/dist/types/components/pro-contract-template-designer/src/ProContractTemplateRenderer.vue.d.ts +1 -0
- package/dist/types/components/pro-contract-template-designer/src/constants.d.ts +4 -4
- package/dist/types/components/pro-contract-template-designer/src/extensions/word-paste.d.ts +8 -0
- package/dist/types/components/pro-contract-template-designer/src/types.d.ts +10 -0
- package/dist/types/components/pro-contract-template-designer/src/utils/contract-print-document.d.ts +119 -0
- package/dist/types/components/pro-contract-template-designer/src/utils/word-paste.d.ts +2 -0
- package/package.json +2 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const e=require(`../../../../_virtual/_rolldown/runtime.cjs`),t=require(`./image-url.cjs`);let
|
|
1
|
+
const e=require(`../../../../_virtual/_rolldown/runtime.cjs`),t=require(`../constants.cjs`),n=require(`./image-url.cjs`);let r=require(`dompurify`);r=e.__toESM(r,1);var i=4*1024*1024,a=t.DEFAULT_CONTRACT_FONT_FAMILY,o=`16px`,s=`1.75`,c=new Set([`serif`,`sans-serif`,`monospace`,`cursive`,`fantasy`,`system-ui`,`ui-serif`,`ui-sans-serif`,`ui-monospace`,`ui-rounded`,`emoji`,`math`,`fangsong`,`inherit`,`initial`,`unset`,`revert`,`revert-layer`,`-apple-system`,`blinkmacsystemfont`]),l=new Set([`image/png`,`image/jpeg`,`image/gif`,`image/webp`,`image/bmp`]),u=`(?:file:|cid:|mhtml:|wordml:|blob:)`,d=RegExp(`^${u}`,`i`);RegExp(`<(?:img|v:imagedata)\\b[^>]+\\bsrc\\s*=\\s*["']\\s*${u}`,`i`);var f=`p.div.span.br.hr.h1.h2.h3.h4.h5.h6.strong.b.em.i.u.s.strike.del.sup.sub.blockquote.pre.code.a.ul.ol.li.table.thead.tbody.tfoot.tr.th.td.img`.split(`.`),p=[`style`,`href`,`target`,`rel`,`start`,`type`,`rowspan`,`colspan`,`colwidth`,`src`,`alt`,`title`,`width`,`height`],m=new Set(p),h=new Set([`script`,`style`,`meta`,`link`,`base`,`object`,`embed`,`iframe`,`frame`,`frameset`,`form`,`input`,`button`,`textarea`,`select`,`option`,`audio`,`video`,`source`,`track`,`canvas`,`svg`,`math`,`xml`,`template`]),g=new Set([`font-weight`,`font-style`,`text-decoration`,`text-decoration-line`,`color`,`background-color`,`font-size`,`font-family`,`vertical-align`]),_=new Set([`font-weight`,`font-style`,`text-decoration`,`text-decoration-line`,`color`,`background-color`,`font-size`,`font-family`,`text-align`,`line-height`,`margin-top`,`margin-bottom`,`margin-left`,`padding-left`,`text-indent`,`direction`]),v=new Set([`font-weight`,`font-style`,`text-decoration`,`text-decoration-line`,`color`,`background-color`,`font-size`,`font-family`,`text-align`,`line-height`,`margin-top`,`margin-bottom`,`margin-left`,`padding-left`,`text-indent`,`direction`,`list-style-type`]),ee=new Set([`width`,`max-width`,`min-width`,`table-layout`,`border-collapse`,`margin-left`,`margin-right`]),te=new Set(`font-weight.font-style.text-decoration.text-decoration-line.color.background-color.font-size.font-family.text-align.line-height.margin-top.margin-bottom.margin-left.text-indent.direction.width.height.min-width.vertical-align.padding.padding-top.padding-right.padding-bottom.padding-left.border.border-top.border-right.border-bottom.border-left`.split(`.`)),ne=[/urn:schemas-microsoft-com:office/i,/xmlns:(?:o|w|m)\s*=/i,/class\s*=\s*["'][^"']*\bMso/i,/\bmso-[\w-]+\s*:/i,/\[if\s+(?:gte\s+)?mso/i,/Microsoft Word/i],y=[/\bListContainerWrapper\b/i,/\bdata-listid\s*=/i,/\bdata-list-defn-props\s*=/i,/\bdata-ccp-props\s*=/i,/\bdata-contrast\s*=/i],b=[/\b(?:WPS Office|Kingsoft)\b/i,/\bwpsoffice\b/i,/\bwps-(?:office|list|paragraph)\b/i];function x(e){return/\bdata-pm-slice\s*=/i.test(e)?`internal`:b.some(t=>t.test(e))?`wps`:y.some(t=>t.test(e))?`word-online`:ne.some(t=>t.test(e))?/Microsoft Word|Mso|xmlns:w/i.test(e)?`word`:`office`:`generic`}function S(e){return e.replaceAll(`&`,`&`).replaceAll(`<`,`<`).replaceAll(`>`,`>`).replaceAll(`"`,`"`).replaceAll(`'`,`'`).split(/\r?\n\r?\n/).map(e=>`<p>${e.replace(/\r?\n/g,`<br>`)||`<br>`}</p>`).join(``)}function re(e){let t=/(?:^|;)\s*mso-list\s*:\s*(?:l(\d+)\s+)?level(\d+)(?:\s+lfo(\d+))?/i.exec(e);if(t)return{id:t[1]??`0`,level:Math.max(1,Math.min(9,Number.parseInt(t[2]??`1`,10)||1)),lfo:t[3]??`0`}}function C(e,t=`span`){let n=t.toLowerCase(),r=n===`td`||n===`th`?te:n===`table`?ee:n===`ul`||n===`ol`?v:/^(?:p|div|h[1-6]|blockquote|li)$/.test(n)?_:g,i=T(e),a=i.find(([e])=>e.trim().toLowerCase()===`direction`)?.[1]?.trim().toLowerCase()===`rtl`?`rtl`:`ltr`,o=new Map;for(let[e,t]of i){let n=e.toLowerCase().trim(),i=t.trim().replace(/\s*!important\s*$/i,``);if(n===`mso-highlight`||n===`background`)n=`background-color`;else if(n===`mso-padding-alt`)n=`padding`;else if(n===`mso-border-alt`)n=`border`;else if(/^mso-border-(top|right|bottom|left)-alt$/.test(n))n=n.replace(/^mso-border-(top|right|bottom|left)-alt$/,`border-$1`);else if(n.startsWith(`mso-`))continue;r.has(n)&&(n===`text-align`&&/^(?:start|end)$/i.test(i)&&(i=D(i,a)),i=E(n,i),i&&o.set(n===`text-decoration-line`?`text-decoration`:n,i))}return Array.from(o.entries()).map(([e,t])=>`${e}: ${t}`).join(`; `)}function w(e){if(!e||e.length>12582912*3)return[];let t=[],n=0,r=0;for(;r<e.length;){let i=e.indexOf(`{\\pict`,r);if(i<0)break;let a=Se(e,i);if(a<0)break;let o=e.slice(i,a+1);r=i+6;let s=Ce(o),c=/\\pngblip\b/i.test(s)?`image/png`:/\\jpe?gblip\b/i.test(s)?`image/jpeg`:``;if(!c)continue;let l=s.replace(/^\{\\pict\b/i,``).replace(/\\[a-z]+-?\d*\s?/gi,``).replace(/\\[^a-z]/gi,``).replace(/[{}\s]/g,``);if(!l||l.length%2||/[^\da-f]/i.test(l))continue;let u=l.length/2;u>5242880||n+u>12582912||we(l,c)&&(n+=u,t.push(`data:${c};base64,${$(l)}`))}return t}async function ie(e,t){let n=[],r=0;for(let i of e){let e=i.type.toLowerCase();if(!l.has(e)||i.size<=0||i.size>5242880){n.push(Promise.resolve(null));continue}if(r+i.size>12582912){n.push(Promise.resolve(null));continue}r+=i.size,n.push((t?t(i):Te(i)).then(e=>e&&Y(e)?e:null).catch(()=>null))}return Promise.all(n)}function ae(e,t={}){let n=x(e);if(n===`internal`&&t.trustedInternal)return{html:e,source:n,converted:!1,fallback:!1,recoveredImageCount:0,replacedFontFamilies:[]};let a=S(t.plainText??ce(e));if(!e||e.length>i||typeof window>`u`||typeof DOMParser>`u`)return{html:a,source:n,converted:!0,fallback:!0,recoveredImageCount:0,replacedFontFamilies:[]};try{let i=n!==`generic`&&n!==`internal`,o=oe(e),s=new DOMParser().parseFromString(i?se(o):o,`text/html`),c=N(s),l=c.size>0||F(s);(i||l)&&P(s,c),i&&(I(s),L(s));let u=i?w(t.rtf??``):[],d=!!t.preferClipboardImages&&u.length===0,m=de(s,{office:i,replacementImages:u.length?u:t.clipboardImages??[],appendClipboardImages:u.length===0?t.clipboardImages??[]:[],preferClipboardImages:d}),h=(0,r.default)(window),g=String(h.sanitize(s.body.innerHTML,{ALLOWED_TAGS:f,ALLOWED_ATTR:p,ALLOW_DATA_ATTR:!1,ALLOW_ARIA_ATTR:!1,KEEP_CONTENT:!0,RETURN_TRUSTED_TYPE:!1}));if(g){let e=new DOMParser().parseFromString(g,`text/html`),t=fe(e);return g=e.body.innerHTML,{html:g||a,source:n,converted:!0,fallback:!g,recoveredImageCount:m,replacedFontFamilies:g?t:[]}}return{html:a,source:n,converted:!0,fallback:!0,recoveredImageCount:m,replacedFontFamilies:[]}}catch{return{html:a,source:n,converted:!0,fallback:!0,recoveredImageCount:0,replacedFontFamilies:[]}}}function oe(e){return/<!--StartFragment-->([\s\S]*?)<!--EndFragment-->/i.exec(e)?.[1]??e}function se(e){return e.replace(/<!--\s*\[if\s+!supportLists\]\s*>([\s\S]*?)<!\s*\[endif\]\s*-->/gi,`$1`).replace(/<!\s*\[if\s+!supportLists\]\s*>([\s\S]*?)<!\s*\[endif\]\s*>/gi,`$1`)}function ce(e){return e.replace(/<br\s*\/?>/gi,`
|
|
2
2
|
`).replace(/<\/(?:p|div|li|h[1-6]|tr)>/gi,`
|
|
3
|
-
`).replace(/<[^>]*>/g,``).replace(/ /gi,` `).replace(/&/gi,`&`).replace(/</gi,`<`).replace(/>/gi,`>`).trim()}function T(e){let t=[],n=0,r=``,i=0;for(let a=0;a<=e.length;a++){let o=e[a]??`;`;if(r){o===r&&e[a-1]!==`\\`&&(r=``);continue}if(o===`"`||o===`'`){r=o;continue}if(o===`(`)i++;else if(o===`)`)i=Math.max(0,i-1);else if(o===`;`&&i===0){let r=e.slice(n,a),i=r.indexOf(`:`);i>0&&t.push([r.slice(0,i),r.slice(i+1)]),n=a+1}}return t}function se(e,t){let n=t.trim();if(!n||n.length>220||/(?:url\s*\(|expression\s*\(|javascript:|vbscript:|data:|@import|var\s*\()/i.test(n))return``;if(e===`font-size`)return D(n,{min:8,max:120,convertPt:!0,allowPercent:!0});if(e===`padding`)return j(n);if(/^(?:margin-(?:top|bottom|left|right)|text-indent)$/.test(e))return D(n,{min:-2e3,max:2e3,allowPercent:!0});if(/^(?:padding-(?:top|right|bottom|left)|width|height|min-width|max-width)$/.test(e))return D(n,{min:0,max:2400,allowPercent:!0});if(e===`line-height`){let e=Number(n);return Number.isFinite(e)&&e>=.5&&e<=4?String(e):D(n,{min:8,max:160,convertPt:!0,allowPercent:!0})}return e===`color`||e===`background-color`?k(n):e===`font-family`?/^[\w\s,'"\-\u00A0-\uFFFF]+$/.test(n)?n:``:e===`font-weight`?/^(?:normal|bold|bolder|lighter|[1-9]00)$/i.test(n)?n.toLowerCase():``:e===`font-style`?/^(?:normal|italic|oblique)$/i.test(n)?n.toLowerCase():``:e===`text-decoration`?/^(?:(?:none|underline|line-through|overline)\s*)+$/i.test(n)?n.toLowerCase():``:e===`text-align`?/^(?:left|right|center|justify|start|end)$/i.test(n)?E(n,`ltr`):``:e===`vertical-align`?/^(?:top|middle|bottom|baseline|sub|super)$/i.test(n)?n.toLowerCase():``:e===`direction`?/^(?:ltr|rtl)$/i.test(n)?n.toLowerCase():``:e===`list-style-type`?/^(?:disc|circle|square|decimal|lower-alpha|upper-alpha|lower-roman|upper-roman|cjk-ideographic)$/i.test(n)?n.toLowerCase():``:e===`table-layout`?/^(?:auto|fixed)$/i.test(n)?n.toLowerCase():``:e===`border-collapse`?/^(?:collapse|separate)$/i.test(n)?n.toLowerCase():``:/^border(?:-(?:top|right|bottom|left))?$/.test(e)?A(n):``}function E(e,t){let n=e.toLowerCase();return n===`start`?t===`rtl`?`right`:`left`:n===`end`?t===`rtl`?`left`:`right`:n}function D(e,t){if(e===`0`)return`0`;let n=/^(-?(?:\d+(?:\.\d+)?|\.\d+))(px|pt|cm|mm|in|pc|em|rem|%)$/i.exec(e);if(!n||!t.allowPercent&&n[2]===`%`)return``;let r=Number(n[1]),i=n[2].toLowerCase();if(i===`%`&&(r<Math.max(t.min,-500)||r>Math.min(t.max,500)))return``;let a=i===`%`?r:r*O(i);return!Number.isFinite(r)||a<t.min||a>t.max?``:r===0?`0`:(t.convertPt&&i===`pt`&&(r=Math.round(r*4/3*100)/100,i=`px`),`${r}${i}`)}function O(e){return e===`pt`?4/3:e===`cm`?96/2.54:e===`mm`?96/25.4:e===`in`?96:e===`pc`||e===`em`||e===`rem`?16:1}function k(e){return/^(?:windowtext|buttontext|canvastext)$/i.test(e)?`black`:/^(?:window|buttonface|canvas)$/i.test(e)?`white`:/^(?:transparent|currentcolor|black|white|red|green|blue|gray|grey|yellow|orange|purple|navy|teal|maroon|silver|fuchsia|aqua|lime)$/i.test(e)||/^#[\da-f]{3,8}$/i.test(e)?e.toLowerCase():/^(?:rgb|rgba|hsl|hsla)\(\s*[-\d.%]+(?:\s*[,/]\s*[-\d.%]+){2,3}\s*\)$/i.test(e)?e:``}function A(e){if(/^none$/i.test(e))return`none`;let t=/^((?:\d+(?:\.\d+)?|\.\d+)(?:px|pt))\s+(solid|dashed|dotted|double)\s+(.+)$/i.exec(e),n=/^(solid|dashed|dotted|double)\s+(.+?)\s+((?:\d+(?:\.\d+)?|\.\d+)(?:px|pt))$/i.exec(e),r=t?.[1]??n?.[3],i=t?.[2]??n?.[1],a=t?.[3]??n?.[2];if(!r||!i||!a)return``;let o=D(r,{min:0,max:24,convertPt:!0}),s=k(a.trim());return o&&s?`${o} ${i.toLowerCase()} ${s}`:``}function j(e){let t=e.trim().split(/\s+/);if(t.length<1||t.length>4)return``;let n=t.map(e=>D(e,{min:0,max:2400,allowPercent:!0}));return n.every(Boolean)?n.join(` `):``}function M(e){let t=new Map;for(let n of Array.from(e.querySelectorAll(`style`))){let e=n.textContent??``,r=/([^{}]+)\{([^{}]*)\}/g,i=r.exec(e);for(;i;){for(let e of i[1].split(`,`)){let n=/\.([_a-z][\w-]*)/i.exec(e)?.[1];n&&t.set(n,`${t.get(n)??``};${i[2]}`)}i=r.exec(e)}}return t}function N(e,t){for(let n of Array.from(e.body.querySelectorAll(`[class]`))){let e=Array.from(n.classList).map(e=>t.get(e)??``).filter(Boolean).join(`;`);e&&n.setAttribute(`style`,`${e};${n.getAttribute(`style`)??``}`)}}function P(e){return!!e.body.querySelector(`p[align],div[align],h1[align],h2[align],h3[align],h4[align],h5[align],h6[align],center,font`)}function F(e){for(let t of Array.from(e.body.querySelectorAll(`p,div`))){let n=t.className,r=t.getAttribute(`style`)??``,i=/(?:Mso)?Heading\s*([1-6])|MsoHeading([1-6])/i.exec(`${n};${r}`),a=i?Number(i[1]??i[2]):/MsoTitle/i.test(n)?1:/MsoSubtitle/i.test(n)?2:0;a&&G(e,t,`h${a}`)}}function I(e){let t=[e.body,...Array.from(e.body.querySelectorAll(`td,th,div,blockquote`))];for(let n of t.reverse())L(e,n)}function L(e,t){let n=Array.from(t.childNodes),r=[];for(let i of n){if(i.nodeType===3&&!(i.textContent??``).trim())continue;if(i.nodeType!==1){r=[];continue}let n=i,a=R(n);if(!a){r=[];continue}let o=Math.min(a.level,r.length+1);o<=r.length&&(r=r.slice(0,o));let s=r[o-1];if(!s||s.kind!==a.kind||a.type!=null&&s.type!==a.type||s.session!==a.session||a.kind===`ol`&&a.start!=null&&s.expectedStart!=null&&a.start!==s.expectedStart){let i=e.createElement(a.kind);if(a.kind===`ol`&&a.start&&a.start!==1&&i.setAttribute(`start`,String(a.start)),a.kind===`ol`&&a.type&&i.setAttribute(`type`,a.type),a.listStyleType&&i.setAttribute(`style`,`list-style-type: ${a.listStyleType}`),o===1)t.insertBefore(i,n);else{let e=r[o-2];e?.lastItem?e.lastItem.appendChild(i):(t.insertBefore(i,n),r=[])}s={...a,level:o,list:i},r[o-1]=s}let c=e.createElement(`li`);for(H(n);n.firstChild;)c.appendChild(n.firstChild);s.list.appendChild(c),s.lastItem=c,s.expectedStart=a.kind===`ol`?(a.start??s.expectedStart??1)+1:void 0,n.remove()}}function R(e){if(!/^(?:p|div)$/i.test(e.tagName))return;let t=re(e.getAttribute(`style`)??``);if(!t)return;let n=U(e),r=n.text,i=n.font;if(/[•·●○■□◆◇▪▫]/.test(r)||/(?:Symbol|Wingdings|Webdings)/i.test(i)){let e=/[○◇▫]/.test(r)?`circle`:/[■□▪]/.test(r)?`square`:`disc`;return{...t,session:`${t.id}:${t.lfo}`,kind:`ul`,listStyleType:e}}let a=z(r);return{...t,session:`${t.id}:${t.lfo}`,kind:`ol`,type:a?.type,listStyleType:a?.listStyleType??`decimal`,start:a?.start}}function z(e){let t=e.trim().replace(/^[((]/,``).replace(/[))\..、]\s*$/,``).trim();if(/^\d+$/.test(t))return{start:Math.max(1,Number(t)),type:`1`,listStyleType:`decimal`};if(/^[ivxlcdm]+$/i.test(t)){let e=t===t.toUpperCase();return{start:V(t),type:e?`I`:`i`,listStyleType:e?`upper-roman`:`lower-roman`}}if(/^[a-z]$/i.test(t)){let e=t===t.toUpperCase();return{start:t.toLowerCase().charCodeAt(0)-96,type:e?`A`:`a`,listStyleType:e?`upper-alpha`:`lower-alpha`}}if(/^[零〇一二三四五六七八九十百千万]+$/.test(t))return{start:B(t),type:void 0,listStyleType:`cjk-ideographic`}}function B(e){let t={零:0,〇:0,一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9},n={十:10,百:100,千:1e3,万:1e4},r=0,i=0,a=0;for(let o of e){if(o in t){a=t[o];continue}let e=n[o];e&&(e===1e4?(i=(i+a||1)*e,r+=i,i=0,a=0):(i+=(a||1)*e,a=0))}return Math.max(1,r+i+a)}function V(e){let t={i:1,v:5,x:10,l:50,c:100,d:500,m:1e3},n=0,r=0;for(let i of e.toLowerCase().split(``).reverse()){let e=t[i]??0;n+=e<r?-e:e,r=Math.max(r,e)}return Math.max(1,n)}function H(e){U(e).element?.remove(),e.firstChild?.nodeType===3&&(e.firstChild.textContent=e.firstChild.textContent?.replace(/^[\s\u00A0]+/,``)??``)}function U(e){let t=Array.from(e.querySelectorAll(`span`)).find(e=>/mso-list\s*:\s*ignore/i.test(e.getAttribute(`style`)??``));if(t)return{element:t,text:W(t.textContent??``),font:t.style.fontFamily};let n=e.querySelector(`span`),r=W(n?.textContent??``),i=n?.style.fontFamily??``;return/[•·●○■□◆◇▪▫]/.test(r)||/(?:Symbol|Wingdings|Webdings)/i.test(i)||/^(?:\d+|[a-z]|[ivxlcdm]+)[.)、]$/i.test(r)||/^[((]?[零〇一二三四五六七八九十百千万]+[))\..、]$/.test(r)?{element:n??void 0,text:r,font:i}:{text:``,font:``}}function W(e){return e.replace(/[\u00A0\s]+/g,` `).trim()}function G(e,t,n){let r=e.createElement(n);for(let e of Array.from(t.attributes))r.setAttribute(e.name,e.value);for(;t.firstChild;)r.appendChild(t.firstChild);return t.replaceWith(r),r}function K(e,t){$(e.body),fe(e),pe(e),le(e);let n=0,r=0,i=0;for(let a of Array.from(e.body.querySelectorAll(`*`))){let o=a.tagName.toLowerCase();if(p.has(o)){a.remove();continue}if(q(a),o===`img`){let e=n<t.replacementImages.length,o=me(a,t.replacementImages[n],e,t.preferClipboardImages===!0);if(o.consumedReplacement&&n++,o.usedReplacement&&r++,!o.kept)continue;i++}else o===`a`&&he(a);let s=x(a.getAttribute(`style`)??``,o);s?a.setAttribute(`style`,s):a.removeAttribute(`style`),de(e,a),ue(e,a),ge(a);for(let e of Array.from(a.attributes)){let t=e.name.toLowerCase();(!f.has(t)||t.startsWith(`on`)||t.startsWith(`data-`)||t===`class`||t===`id`||t===`lang`||t.includes(`:`))&&a.removeAttribute(e.name)}let c=a.style.verticalAlign;(c===`super`||c===`sub`)&&o===`span`&&G(e,a,c===`super`?`sup`:`sub`)}if(!i&&t.appendClipboardImages.length)for(let n of t.appendClipboardImages){if(!n||!Y(n))continue;let t=e.createElement(`p`),i=e.createElement(`img`);i.setAttribute(`src`,n),i.setAttribute(`alt`,``),t.appendChild(i),e.body.appendChild(t),r++}return r}function ce(e){let t=/^(?:p|div|blockquote|li)$/,n=Array.from(e.body.querySelectorAll(`*`));for(let e of n){let n=e.tagName.toLowerCase(),r=new Map;for(let[t,n]of T(e.getAttribute(`style`)??``)){let e=t.trim().toLowerCase();e&&r.set(e,n.trim())}let s=r.has(`font-family`);!t.test(n)&&!s||(r.set(`font-family`,i),/^(?:p|div|blockquote|li)$/.test(n)&&(r.set(`line-height`,o),r.set(`font-size`,a),r.set(`margin-top`,`0`),r.set(`margin-bottom`,`10px`)),e.setAttribute(`style`,Array.from(r,([e,t])=>`${e}: ${t}`).join(`; `)))}let r=e.createTreeWalker(e.body,e.defaultView?.NodeFilter?.SHOW_TEXT??4),s=[],c=r.nextNode();for(;c;)s.push(c),c=r.nextNode();for(let e of s){let t=e.nodeValue??``;if(!t)continue;let n=e.parentElement;if(n?.closest(`h1,h2,h3,h4,h5,h6,pre,code`))continue;let r=t.replace(/[\t\r\n \u00a0]+/g,e=>e.includes(`\xA0`)?`\xA0`.repeat(e.length):` `);if(!r.trim()&&!r.includes(`\xA0`)){let t=e=>!!(e&&/^(?:a|b|strong|em|i|u|s|strike|del|sup|sub|span|img)$/.test(e.tagName.toLowerCase()));n&&(t(e.previousElementSibling)||t(e.nextElementSibling))?e.nodeValue=` `:e.remove()}else e.nodeValue=r}}function le(e){for(let t of Array.from(e.body.querySelectorAll(`font`)))q(t),G(e,t,`span`);for(let t of Array.from(e.body.querySelectorAll(`center`)))t.setAttribute(`style`,`${t.getAttribute(`style`)??``};text-align:center`),G(e,t,`div`)}function ue(e,t){let n=t.tagName.toLowerCase();if(!/^(?:b|strong|em|i|u|s|strike|del|sup|sub|a)$/.test(n))return;let r=T(t.getAttribute(`style`)??``),i=[],a=[];for(let[e,t]of r){let n=e.trim().toLowerCase(),r=t.trim();(n===`font-family`||n===`font-size`||n===`color`||n===`background-color`?i:a).push(`${n}: ${r}`)}if(!i.length)return;a.length?t.setAttribute(`style`,a.join(`; `)):t.removeAttribute(`style`);let o=e.createElement(`span`);for(o.setAttribute(`style`,i.join(`; `));t.firstChild;)o.appendChild(t.firstChild);t.appendChild(o)}function de(e,t){let n=t.tagName.toLowerCase();if(!/^(?:p|div|h[1-6]|blockquote|li|td|th)$/.test(n))return;let r=T(t.getAttribute(`style`)??``),i=[],a=[];for(let[e,t]of r){let r=e.trim().toLowerCase(),o=t.trim();(m.has(r)&&r!==`vertical-align`&&!((n===`td`||n===`th`)&&r===`background-color`)?i:a).push(`${r}: ${o}`)}if(!i.length)return;a.length?t.setAttribute(`style`,a.join(`; `)):t.removeAttribute(`style`);let o=e.createElement(`span`);for(o.setAttribute(`style`,i.join(`; `));t.firstChild;)o.appendChild(t.firstChild);t.appendChild(o)}function fe(e){for(let t of Array.from(e.body.querySelectorAll(`*`))){if(t.tagName.toLowerCase()!==`v:imagedata`)continue;let n=e.createElement(`img`);n.setAttribute(`src`,t.getAttribute(`src`)??t.getAttribute(`o:href`)??``),n.setAttribute(`alt`,t.getAttribute(`o:title`)??t.getAttribute(`title`)??``);let r=t.parentElement?.tagName.toLowerCase()===`v:shape`?t.parentElement:void 0;if(r){let e=X(r.style.width),t=X(r.style.height);e&&n.setAttribute(`width`,e),t&&n.setAttribute(`height`,t),r.replaceWith(n)}else t.replaceWith(n)}}function pe(e){for(let t of Array.from(e.body.querySelectorAll(`*`)).reverse()){let e=t.tagName.toLowerCase();if(e.includes(`:`)){if(/^(?:v|m):/.test(e)){t.remove();continue}t.replaceWith(...Array.from(t.childNodes))}}}function q(e){let t=e.tagName.toLowerCase(),n=[e.getAttribute(`style`)??``],r=(e,t)=>{t&&n.push(`${e}:${t}`)};t===`font`&&(r(`font-family`,e.getAttribute(`face`)),r(`color`,e.getAttribute(`color`))),(t===`table`||t===`td`||t===`th`)&&(r(`width`,J(e.getAttribute(`width`))),r(`height`,J(e.getAttribute(`height`))),r(`background-color`,e.getAttribute(`bgcolor`)),r(`text-align`,e.getAttribute(`align`)),r(`vertical-align`,e.getAttribute(`valign`))),/^(?:p|div|h[1-6])$/.test(t)&&r(`text-align`,e.getAttribute(`align`)),e.setAttribute(`style`,n.join(`;`))}function J(e){return e?/^\d+(?:\.\d+)?$/.test(e.trim())?`${e.trim()}px`:e.trim():``}function me(e,t,n=!1,r=!1){let i=e.getAttribute(`src`)??``,a=l.test(i.trim()),o=(r||a)&&n,s=!!(t&&Y(t)),c=o&&s,u=c&&t?t:i;if(l.test(u.trim())||!Y(u))return e.remove(),{kept:!1,usedReplacement:!1,consumedReplacement:o};e.setAttribute(`src`,u.trim());let d=X(e.getAttribute(`width`)??e.style.width),f=X(e.getAttribute(`height`)??e.style.height);return d?e.setAttribute(`width`,d):e.removeAttribute(`width`),f?e.setAttribute(`height`,f):e.removeAttribute(`height`),e.setAttribute(`alt`,(e.getAttribute(`alt`)??``).slice(0,500)),e.hasAttribute(`title`)&&e.setAttribute(`title`,(e.getAttribute(`title`)??``).slice(0,500)),{kept:!0,usedReplacement:c,consumedReplacement:o}}function Y(e){let n=e.trim();return!!n&&t.isSafeContractImageUrl(n)}function X(e){let t=/^(\d+(?:\.\d+)?)(px|pt|cm|mm|in|pc)?$/i.exec((e??``).trim());if(!t)return``;let n=Number(t[1]),r=O((t[2]??`px`).toLowerCase()),i=Math.round(n*r);return i>=1&&i<=2400?String(i):``}function he(e){let t=(e.getAttribute(`href`)??``).trim();if(!Z(t)){e.removeAttribute(`href`),e.removeAttribute(`target`),e.removeAttribute(`rel`);return}e.setAttribute(`href`,t),e.getAttribute(`target`)===`_blank`?e.setAttribute(`rel`,`noopener noreferrer`):(e.removeAttribute(`target`),e.removeAttribute(`rel`))}function Z(e){if(!e)return!1;let t=e.replace(/[\u0000-\u0020\u007F]+/g,``);return/^(?:javascript|vbscript|data|file):/i.test(t)?!1:/^(?:https?:|mailto:|tel:|#|\/|\.\/|\.\.\/)/i.test(t)||!/^[a-z][a-z\d+.-]*:/i.test(t)}function ge(e){let t=e.tagName.toLowerCase();if((t===`td`||t===`th`)&&(Q(e,`rowspan`,1,100),Q(e,`colspan`,1,100)),t===`td`||t===`th`){let t=(e.getAttribute(`colwidth`)??``).split(`,`).map(e=>Number.parseInt(e.trim(),10)).filter(e=>Number.isFinite(e)&&e>=1&&e<=2400).slice(0,100);t.length?e.setAttribute(`colwidth`,t.join(`,`)):e.removeAttribute(`colwidth`)}if(t===`ol`){Q(e,`start`,1,1e5);let t=e.getAttribute(`type`);(!t||!/^(?:1|a|A|i|I)$/.test(t))&&e.removeAttribute(`type`)}}function Q(e,t,n,r){let i=Number.parseInt(e.getAttribute(t)??``,10);if(!Number.isFinite(i)){e.removeAttribute(t);return}e.setAttribute(t,String(Math.max(n,Math.min(r,i))))}function $(e){for(let t of Array.from(e.childNodes))t.nodeType===8?t.remove():$(t)}function _e(e,t){let n=0;for(let r=t;r<e.length;r++){if(e[r]===`\\`){r++;continue}if(e[r]===`{`)n++;else if(e[r]===`}`&&--n===0)return r}return-1}function ve(e){let t=0,n=``;for(let r=0;r<e.length;r++){let i=e[r];if(i===`\\`){t<=1&&(n+=i);let a=e[r+1];a&&t<=1&&(n+=a),r++;continue}if(i===`{`){t++,t===1&&(n+=i);continue}if(i===`}`){t===1&&(n+=i),t=Math.max(0,t-1);continue}t<=1&&(n+=i)}return n}function ye(e){let t=[],n=new Uint8Array(e.length/2);for(let t=0;t<n.length;t++)n[t]=Number.parseInt(e.slice(t*2,t*2+2),16);for(let e=0;e<n.length;e+=32768)t.push(String.fromCharCode(...Array.from(n.subarray(e,e+32768))));return btoa(t.join(``))}function be(e,t){return t===`image/png`?e.toLowerCase().startsWith(`89504e470d0a1a0a`):t===`image/jpeg`?e.toLowerCase().startsWith(`ffd8ff`):!1}function xe(e){return new Promise((t,n)=>{let r=new FileReader;r.onerror=()=>n(r.error??Error(`clipboard image read failed`)),r.onload=()=>t(typeof r.result==`string`?r.result:``),r.readAsDataURL(e)})}exports.detectClipboardHtmlSource=y,exports.extractRtfImageDataUrls=S,exports.normalizeOfficeStyle=x,exports.normalizeWordClipboardHtml=w,exports.plainTextToSafeHtml=b,exports.readClipboardImageFiles=C;
|
|
3
|
+
`).replace(/<[^>]*>/g,``).replace(/ /gi,` `).replace(/&/gi,`&`).replace(/</gi,`<`).replace(/>/gi,`>`).trim()}function T(e){let t=[],n=0,r=``,i=0;for(let a=0;a<=e.length;a++){let o=e[a]??`;`;if(r){o===r&&e[a-1]!==`\\`&&(r=``);continue}if(o===`"`||o===`'`){r=o;continue}if(o===`(`)i++;else if(o===`)`)i=Math.max(0,i-1);else if(o===`;`&&i===0){let r=e.slice(n,a),i=r.indexOf(`:`);i>0&&t.push([r.slice(0,i),r.slice(i+1)]),n=a+1}}return t}function le(e){let t=[],n=``,r=``;for(let i of e){if(r){i===r?r=``:n+=i;continue}if(i===`"`||i===`'`){r=i;continue}if(i===`,`){let e=n.trim();e&&t.push(e),n=``;continue}n+=i}let i=n.trim();return i&&t.push(i),t}function ue(e){let t=new Set,n=[],r=a.replace(/["']/g,``).replace(/\s+/g,` `).trim().toLowerCase();for(let i of e){let e=i.replace(/["']/g,``).replace(/\s+/g,` `).trim().toLowerCase();if(!(!e||e===r))for(let e of le(i)){let r=e.replace(/^["']+|["']+$/g,``).trim();if(!r)continue;let i=r.replace(/\s+/g,` `).toLowerCase();c.has(i)||t.has(i)||(t.add(i),n.push(r))}}return n}function E(e,t){let n=t.trim();if(!n||n.length>220||/(?:url\s*\(|expression\s*\(|javascript:|vbscript:|data:|@import|var\s*\()/i.test(n))return``;if(e===`font-size`)return O(n,{min:8,max:120,convertPt:!0,allowPercent:!0});if(e===`padding`)return M(n);if(/^(?:margin-(?:top|bottom|left|right)|text-indent)$/.test(e))return O(n,{min:-2e3,max:2e3,allowPercent:!0});if(/^(?:padding-(?:top|right|bottom|left)|width|height|min-width|max-width)$/.test(e))return O(n,{min:0,max:2400,allowPercent:!0});if(e===`line-height`){let e=Number(n);return Number.isFinite(e)&&e>=.5&&e<=4?String(e):O(n,{min:8,max:160,convertPt:!0,allowPercent:!0})}return e===`color`||e===`background-color`?A(n):e===`font-family`?/^[\w\s,'"\-\u00A0-\uFFFF]+$/.test(n)?n:``:e===`font-weight`?/^(?:normal|bold|bolder|lighter|[1-9]00)$/i.test(n)?n.toLowerCase():``:e===`font-style`?/^(?:normal|italic|oblique)$/i.test(n)?n.toLowerCase():``:e===`text-decoration`?/^(?:(?:none|underline|line-through|overline)\s*)+$/i.test(n)?n.toLowerCase():``:e===`text-align`?/^(?:left|right|center|justify|start|end)$/i.test(n)?D(n,`ltr`):``:e===`vertical-align`?/^(?:top|middle|bottom|baseline|sub|super)$/i.test(n)?n.toLowerCase():``:e===`direction`?/^(?:ltr|rtl)$/i.test(n)?n.toLowerCase():``:e===`list-style-type`?/^(?:disc|circle|square|decimal|lower-alpha|upper-alpha|lower-roman|upper-roman|cjk-ideographic)$/i.test(n)?n.toLowerCase():``:e===`table-layout`?/^(?:auto|fixed)$/i.test(n)?n.toLowerCase():``:e===`border-collapse`?/^(?:collapse|separate)$/i.test(n)?n.toLowerCase():``:/^border(?:-(?:top|right|bottom|left))?$/.test(e)?j(n):``}function D(e,t){let n=e.toLowerCase();return n===`start`?t===`rtl`?`right`:`left`:n===`end`?t===`rtl`?`left`:`right`:n}function O(e,t){if(e===`0`)return`0`;let n=/^(-?(?:\d+(?:\.\d+)?|\.\d+))(px|pt|cm|mm|in|pc|em|rem|%)$/i.exec(e);if(!n||!t.allowPercent&&n[2]===`%`)return``;let r=Number(n[1]),i=n[2].toLowerCase();if(i===`%`&&(r<Math.max(t.min,-500)||r>Math.min(t.max,500)))return``;let a=i===`%`?r:r*k(i);return!Number.isFinite(r)||a<t.min||a>t.max?``:r===0?`0`:(t.convertPt&&i===`pt`&&(r=Math.round(r*4/3*100)/100,i=`px`),`${r}${i}`)}function k(e){return e===`pt`?4/3:e===`cm`?96/2.54:e===`mm`?96/25.4:e===`in`?96:e===`pc`||e===`em`||e===`rem`?16:1}function A(e){return/^(?:windowtext|buttontext|canvastext)$/i.test(e)?`black`:/^(?:window|buttonface|canvas)$/i.test(e)?`white`:/^(?:transparent|currentcolor|black|white|red|green|blue|gray|grey|yellow|orange|purple|navy|teal|maroon|silver|fuchsia|aqua|lime)$/i.test(e)||/^#[\da-f]{3,8}$/i.test(e)?e.toLowerCase():/^(?:rgb|rgba|hsl|hsla)\(\s*[-\d.%]+(?:\s*[,/]\s*[-\d.%]+){2,3}\s*\)$/i.test(e)?e:``}function j(e){if(/^none$/i.test(e))return`none`;let t=/^((?:\d+(?:\.\d+)?|\.\d+)(?:px|pt))\s+(solid|dashed|dotted|double)\s+(.+)$/i.exec(e),n=/^(solid|dashed|dotted|double)\s+(.+?)\s+((?:\d+(?:\.\d+)?|\.\d+)(?:px|pt))$/i.exec(e),r=t?.[1]??n?.[3],i=t?.[2]??n?.[1],a=t?.[3]??n?.[2];if(!r||!i||!a)return``;let o=O(r,{min:0,max:24,convertPt:!0}),s=A(a.trim());return o&&s?`${o} ${i.toLowerCase()} ${s}`:``}function M(e){let t=e.trim().split(/\s+/);if(t.length<1||t.length>4)return``;let n=t.map(e=>O(e,{min:0,max:2400,allowPercent:!0}));return n.every(Boolean)?n.join(` `):``}function N(e){let t=new Map;for(let n of Array.from(e.querySelectorAll(`style`))){let e=n.textContent??``,r=/([^{}]+)\{([^{}]*)\}/g,i=r.exec(e);for(;i;){for(let e of i[1].split(`,`)){let n=/\.([_a-z][\w-]*)/i.exec(e)?.[1];n&&t.set(n,`${t.get(n)??``};${i[2]}`)}i=r.exec(e)}}return t}function P(e,t){for(let n of Array.from(e.body.querySelectorAll(`[class]`))){let e=Array.from(n.classList).map(e=>t.get(e)??``).filter(Boolean).join(`;`);e&&n.setAttribute(`style`,`${e};${n.getAttribute(`style`)??``}`)}}function F(e){return!!e.body.querySelector(`p[align],div[align],h1[align],h2[align],h3[align],h4[align],h5[align],h6[align],center,font`)}function I(e){for(let t of Array.from(e.body.querySelectorAll(`p,div`))){let n=t.className,r=t.getAttribute(`style`)??``,i=/(?:Mso)?Heading\s*([1-6])|MsoHeading([1-6])/i.exec(`${n};${r}`),a=i?Number(i[1]??i[2]):/MsoTitle/i.test(n)?1:/MsoSubtitle/i.test(n)?2:0;a&&K(e,t,`h${a}`)}}function L(e){let t=[e.body,...Array.from(e.body.querySelectorAll(`td,th,div,blockquote`))];for(let n of t.reverse())R(e,n)}function R(e,t){let n=Array.from(t.childNodes),r=[];for(let i of n){if(i.nodeType===3&&!(i.textContent??``).trim())continue;if(i.nodeType!==1){r=[];continue}let n=i,a=z(n);if(!a){r=[];continue}let o=Math.min(a.level,r.length+1);o<=r.length&&(r=r.slice(0,o));let s=r[o-1];if(!s||s.kind!==a.kind||a.type!=null&&s.type!==a.type||s.session!==a.session||a.kind===`ol`&&a.start!=null&&s.expectedStart!=null&&a.start!==s.expectedStart){let i=e.createElement(a.kind);if(a.kind===`ol`&&a.start&&a.start!==1&&i.setAttribute(`start`,String(a.start)),a.kind===`ol`&&a.type&&i.setAttribute(`type`,a.type),a.listStyleType&&i.setAttribute(`style`,`list-style-type: ${a.listStyleType}`),o===1)t.insertBefore(i,n);else{let e=r[o-2];e?.lastItem?e.lastItem.appendChild(i):(t.insertBefore(i,n),r=[])}s={...a,level:o,list:i},r[o-1]=s}let c=e.createElement(`li`);for(U(n);n.firstChild;)c.appendChild(n.firstChild);s.list.appendChild(c),s.lastItem=c,s.expectedStart=a.kind===`ol`?(a.start??s.expectedStart??1)+1:void 0,n.remove()}}function z(e){if(!/^(?:p|div)$/i.test(e.tagName))return;let t=re(e.getAttribute(`style`)??``);if(!t)return;let n=W(e),r=n.text,i=n.font;if(/[•·●○■□◆◇▪▫]/.test(r)||/(?:Symbol|Wingdings|Webdings)/i.test(i)){let e=/[○◇▫]/.test(r)?`circle`:/[■□▪]/.test(r)?`square`:`disc`;return{...t,session:`${t.id}:${t.lfo}`,kind:`ul`,listStyleType:e}}let a=B(r);return{...t,session:`${t.id}:${t.lfo}`,kind:`ol`,type:a?.type,listStyleType:a?.listStyleType??`decimal`,start:a?.start}}function B(e){let t=e.trim().replace(/^[((]/,``).replace(/[))\..、]\s*$/,``).trim();if(/^\d+$/.test(t))return{start:Math.max(1,Number(t)),type:`1`,listStyleType:`decimal`};if(/^[ivxlcdm]+$/i.test(t)){let e=t===t.toUpperCase();return{start:H(t),type:e?`I`:`i`,listStyleType:e?`upper-roman`:`lower-roman`}}if(/^[a-z]$/i.test(t)){let e=t===t.toUpperCase();return{start:t.toLowerCase().charCodeAt(0)-96,type:e?`A`:`a`,listStyleType:e?`upper-alpha`:`lower-alpha`}}if(/^[零〇一二三四五六七八九十百千万]+$/.test(t))return{start:V(t),type:void 0,listStyleType:`cjk-ideographic`}}function V(e){let t={零:0,〇:0,一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9},n={十:10,百:100,千:1e3,万:1e4},r=0,i=0,a=0;for(let o of e){if(o in t){a=t[o];continue}let e=n[o];e&&(e===1e4?(i=(i+a||1)*e,r+=i,i=0,a=0):(i+=(a||1)*e,a=0))}return Math.max(1,r+i+a)}function H(e){let t={i:1,v:5,x:10,l:50,c:100,d:500,m:1e3},n=0,r=0;for(let i of e.toLowerCase().split(``).reverse()){let e=t[i]??0;n+=e<r?-e:e,r=Math.max(r,e)}return Math.max(1,n)}function U(e){W(e).element?.remove(),e.firstChild?.nodeType===3&&(e.firstChild.textContent=e.firstChild.textContent?.replace(/^[\s\u00A0]+/,``)??``)}function W(e){let t=Array.from(e.querySelectorAll(`span`)).find(e=>/mso-list\s*:\s*ignore/i.test(e.getAttribute(`style`)??``));if(t)return{element:t,text:G(t.textContent??``),font:t.style.fontFamily};let n=e.querySelector(`span`),r=G(n?.textContent??``),i=n?.style.fontFamily??``;return/[•·●○■□◆◇▪▫]/.test(r)||/(?:Symbol|Wingdings|Webdings)/i.test(i)||/^(?:\d+|[a-z]|[ivxlcdm]+)[.)、]$/i.test(r)||/^[((]?[零〇一二三四五六七八九十百千万]+[))\..、]$/.test(r)?{element:n??void 0,text:r,font:i}:{text:``,font:``}}function G(e){return e.replace(/[\u00A0\s]+/g,` `).trim()}function K(e,t,n){let r=e.createElement(n);for(let e of Array.from(t.attributes))r.setAttribute(e.name,e.value);for(;t.firstChild;)r.appendChild(t.firstChild);return t.replaceWith(r),r}function de(e,t){Q(e.body),ge(e),_e(e),pe(e);let n=0,r=0,i=0;for(let a of Array.from(e.body.querySelectorAll(`*`))){let o=a.tagName.toLowerCase();if(h.has(o)){a.remove();continue}if(q(a),o===`img`){let e=n<t.replacementImages.length,o=ve(a,t.replacementImages[n],e,t.preferClipboardImages===!0);if(o.consumedReplacement&&n++,o.usedReplacement&&r++,!o.kept)continue;i++}else o===`a`&&ye(a);let s=C(a.getAttribute(`style`)??``,o);s?a.setAttribute(`style`,s):a.removeAttribute(`style`),he(e,a),me(e,a),xe(a);for(let e of Array.from(a.attributes)){let t=e.name.toLowerCase();(!m.has(t)||t.startsWith(`on`)||t.startsWith(`data-`)||t===`class`||t===`id`||t===`lang`||t.includes(`:`))&&a.removeAttribute(e.name)}let c=a.style.verticalAlign;(c===`super`||c===`sub`)&&o===`span`&&K(e,a,c===`super`?`sup`:`sub`)}if(!i&&t.appendClipboardImages.length)for(let n of t.appendClipboardImages){if(!n||!Y(n))continue;let t=e.createElement(`p`),i=e.createElement(`img`);i.setAttribute(`src`,n),i.setAttribute(`alt`,``),t.appendChild(i),e.body.appendChild(t),r++}return r}function fe(e){let t=[],n=/^(?:p|div|blockquote|li)$/,r=Array.from(e.body.querySelectorAll(`*`));for(let e of r){let r=e.tagName.toLowerCase(),i=new Map;for(let[t,n]of T(e.getAttribute(`style`)??``)){let e=t.trim().toLowerCase();e&&i.set(e,n.trim())}let c=i.has(`font-family`);c&&t.push(i.get(`font-family`)??``),!(!n.test(r)&&!c)&&(i.set(`font-family`,a),/^(?:p|div|blockquote|li)$/.test(r)&&(i.set(`line-height`,s),i.set(`font-size`,o),i.set(`margin-top`,`0`),i.set(`margin-bottom`,`10px`)),e.setAttribute(`style`,Array.from(i,([e,t])=>`${e}: ${t}`).join(`; `)))}let i=e.createTreeWalker(e.body,e.defaultView?.NodeFilter?.SHOW_TEXT??4),c=[],l=i.nextNode();for(;l;)c.push(l),l=i.nextNode();for(let e of c){let t=e.nodeValue??``;if(!t)continue;let n=e.parentElement;if(n?.closest(`h1,h2,h3,h4,h5,h6,pre,code`))continue;let r=t.replace(/[\t\r\n \u00a0]+/g,e=>e.includes(`\xA0`)?`\xA0`.repeat(e.length):` `);if(!r.trim()&&!r.includes(`\xA0`)){let t=e=>!!(e&&/^(?:a|b|strong|em|i|u|s|strike|del|sup|sub|span|img)$/.test(e.tagName.toLowerCase()));n&&(t(e.previousElementSibling)||t(e.nextElementSibling))?e.nodeValue=` `:e.remove()}else e.nodeValue=r}return ue(t)}function pe(e){for(let t of Array.from(e.body.querySelectorAll(`font`)))q(t),K(e,t,`span`);for(let t of Array.from(e.body.querySelectorAll(`center`)))t.setAttribute(`style`,`${t.getAttribute(`style`)??``};text-align:center`),K(e,t,`div`)}function me(e,t){let n=t.tagName.toLowerCase();if(!/^(?:b|strong|em|i|u|s|strike|del|sup|sub|a)$/.test(n))return;let r=T(t.getAttribute(`style`)??``),i=[],a=[];for(let[e,t]of r){let n=e.trim().toLowerCase(),r=t.trim();(n===`font-family`||n===`font-size`||n===`color`||n===`background-color`?i:a).push(`${n}: ${r}`)}if(!i.length)return;a.length?t.setAttribute(`style`,a.join(`; `)):t.removeAttribute(`style`);let o=e.createElement(`span`);for(o.setAttribute(`style`,i.join(`; `));t.firstChild;)o.appendChild(t.firstChild);t.appendChild(o)}function he(e,t){let n=t.tagName.toLowerCase();if(!/^(?:p|div|h[1-6]|blockquote|li|td|th)$/.test(n))return;let r=T(t.getAttribute(`style`)??``),i=[],a=[];for(let[e,t]of r){let r=e.trim().toLowerCase(),o=t.trim();(g.has(r)&&r!==`vertical-align`&&!((n===`td`||n===`th`)&&r===`background-color`)?i:a).push(`${r}: ${o}`)}if(!i.length)return;a.length?t.setAttribute(`style`,a.join(`; `)):t.removeAttribute(`style`);let o=e.createElement(`span`);for(o.setAttribute(`style`,i.join(`; `));t.firstChild;)o.appendChild(t.firstChild);t.appendChild(o)}function ge(e){for(let t of Array.from(e.body.querySelectorAll(`*`))){if(t.tagName.toLowerCase()!==`v:imagedata`)continue;let n=e.createElement(`img`);n.setAttribute(`src`,t.getAttribute(`src`)??t.getAttribute(`o:href`)??``),n.setAttribute(`alt`,t.getAttribute(`o:title`)??t.getAttribute(`title`)??``);let r=t.parentElement?.tagName.toLowerCase()===`v:shape`?t.parentElement:void 0;if(r){let e=X(r.style.width),t=X(r.style.height);e&&n.setAttribute(`width`,e),t&&n.setAttribute(`height`,t),r.replaceWith(n)}else t.replaceWith(n)}}function _e(e){for(let t of Array.from(e.body.querySelectorAll(`*`)).reverse()){let e=t.tagName.toLowerCase();if(e.includes(`:`)){if(/^(?:v|m):/.test(e)){t.remove();continue}t.replaceWith(...Array.from(t.childNodes))}}}function q(e){let t=e.tagName.toLowerCase(),n=[e.getAttribute(`style`)??``],r=(e,t)=>{t&&n.push(`${e}:${t}`)};t===`font`&&(r(`font-family`,e.getAttribute(`face`)),r(`color`,e.getAttribute(`color`))),(t===`table`||t===`td`||t===`th`)&&(r(`width`,J(e.getAttribute(`width`))),r(`height`,J(e.getAttribute(`height`))),r(`background-color`,e.getAttribute(`bgcolor`)),r(`text-align`,e.getAttribute(`align`)),r(`vertical-align`,e.getAttribute(`valign`))),/^(?:p|div|h[1-6])$/.test(t)&&r(`text-align`,e.getAttribute(`align`)),e.setAttribute(`style`,n.join(`;`))}function J(e){return e?/^\d+(?:\.\d+)?$/.test(e.trim())?`${e.trim()}px`:e.trim():``}function ve(e,t,n=!1,r=!1){let i=e.getAttribute(`src`)??``,a=d.test(i.trim()),o=(r||a)&&n,s=!!(t&&Y(t)),c=o&&s,l=c&&t?t:i;if(d.test(l.trim())||!Y(l))return e.remove(),{kept:!1,usedReplacement:!1,consumedReplacement:o};e.setAttribute(`src`,l.trim());let u=X(e.getAttribute(`width`)??e.style.width),f=X(e.getAttribute(`height`)??e.style.height);return u?e.setAttribute(`width`,u):e.removeAttribute(`width`),f?e.setAttribute(`height`,f):e.removeAttribute(`height`),e.setAttribute(`alt`,(e.getAttribute(`alt`)??``).slice(0,500)),e.hasAttribute(`title`)&&e.setAttribute(`title`,(e.getAttribute(`title`)??``).slice(0,500)),{kept:!0,usedReplacement:c,consumedReplacement:o}}function Y(e){let t=e.trim();return!!t&&n.isSafeContractImageUrl(t)}function X(e){let t=/^(\d+(?:\.\d+)?)(px|pt|cm|mm|in|pc)?$/i.exec((e??``).trim());if(!t)return``;let n=Number(t[1]),r=k((t[2]??`px`).toLowerCase()),i=Math.round(n*r);return i>=1&&i<=2400?String(i):``}function ye(e){let t=(e.getAttribute(`href`)??``).trim();if(!be(t)){e.removeAttribute(`href`),e.removeAttribute(`target`),e.removeAttribute(`rel`);return}e.setAttribute(`href`,t),e.getAttribute(`target`)===`_blank`?e.setAttribute(`rel`,`noopener noreferrer`):(e.removeAttribute(`target`),e.removeAttribute(`rel`))}function be(e){if(!e)return!1;let t=e.replace(/[\u0000-\u0020\u007F]+/g,``);return/^(?:javascript|vbscript|data|file):/i.test(t)?!1:/^(?:https?:|mailto:|tel:|#|\/|\.\/|\.\.\/)/i.test(t)||!/^[a-z][a-z\d+.-]*:/i.test(t)}function xe(e){let t=e.tagName.toLowerCase();if((t===`td`||t===`th`)&&(Z(e,`rowspan`,1,100),Z(e,`colspan`,1,100)),t===`td`||t===`th`){let t=(e.getAttribute(`colwidth`)??``).split(`,`).map(e=>Number.parseInt(e.trim(),10)).filter(e=>Number.isFinite(e)&&e>=1&&e<=2400).slice(0,100);t.length?e.setAttribute(`colwidth`,t.join(`,`)):e.removeAttribute(`colwidth`)}if(t===`ol`){Z(e,`start`,1,1e5);let t=e.getAttribute(`type`);(!t||!/^(?:1|a|A|i|I)$/.test(t))&&e.removeAttribute(`type`)}}function Z(e,t,n,r){let i=Number.parseInt(e.getAttribute(t)??``,10);if(!Number.isFinite(i)){e.removeAttribute(t);return}e.setAttribute(t,String(Math.max(n,Math.min(r,i))))}function Q(e){for(let t of Array.from(e.childNodes))t.nodeType===8?t.remove():Q(t)}function Se(e,t){let n=0;for(let r=t;r<e.length;r++){if(e[r]===`\\`){r++;continue}if(e[r]===`{`)n++;else if(e[r]===`}`&&--n===0)return r}return-1}function Ce(e){let t=0,n=``;for(let r=0;r<e.length;r++){let i=e[r];if(i===`\\`){t<=1&&(n+=i);let a=e[r+1];a&&t<=1&&(n+=a),r++;continue}if(i===`{`){t++,t===1&&(n+=i);continue}if(i===`}`){t===1&&(n+=i),t=Math.max(0,t-1);continue}t<=1&&(n+=i)}return n}function $(e){let t=[],n=new Uint8Array(e.length/2);for(let t=0;t<n.length;t++)n[t]=Number.parseInt(e.slice(t*2,t*2+2),16);for(let e=0;e<n.length;e+=32768)t.push(String.fromCharCode(...Array.from(n.subarray(e,e+32768))));return btoa(t.join(``))}function we(e,t){return t===`image/png`?e.toLowerCase().startsWith(`89504e470d0a1a0a`):t===`image/jpeg`?e.toLowerCase().startsWith(`ffd8ff`):!1}function Te(e){return new Promise((t,n)=>{let r=new FileReader;r.onerror=()=>n(r.error??Error(`clipboard image read failed`)),r.onload=()=>t(typeof r.result==`string`?r.result:``),r.readAsDataURL(e)})}exports.detectClipboardHtmlSource=x,exports.extractRtfImageDataUrls=w,exports.normalizeOfficeStyle=C,exports.normalizeWordClipboardHtml=ae,exports.plainTextToSafeHtml=S,exports.readClipboardImageFiles=ie;
|