@kne-components/react-pdf-sign 1.0.0

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.
Files changed (68) hide show
  1. package/build/asset-manifest.json +62 -0
  2. package/build/favicon.svg +1 -0
  3. package/build/index.html +1 -0
  4. package/build/logo192.png +0 -0
  5. package/build/logo512.png +0 -0
  6. package/build/manifest.json +25 -0
  7. package/build/remoteEntry.js +2 -0
  8. package/build/remoteEntry.js.map +1 -0
  9. package/build/static/css/198.7cb1b9b2.chunk.css +12 -0
  10. package/build/static/css/198.7cb1b9b2.chunk.css.map +1 -0
  11. package/build/static/css/340.b3f109e8.chunk.css +2 -0
  12. package/build/static/css/340.b3f109e8.chunk.css.map +1 -0
  13. package/build/static/css/483.ef9334d8.chunk.css +2 -0
  14. package/build/static/css/483.ef9334d8.chunk.css.map +1 -0
  15. package/build/static/css/864.ef9334d8.chunk.css +2 -0
  16. package/build/static/css/864.ef9334d8.chunk.css.map +1 -0
  17. package/build/static/js/198.0f24a165.chunk.js +2 -0
  18. package/build/static/js/198.0f24a165.chunk.js.map +1 -0
  19. package/build/static/js/201.37f0c350.chunk.js +2 -0
  20. package/build/static/js/201.37f0c350.chunk.js.map +1 -0
  21. package/build/static/js/233.6eb019a2.chunk.js +3 -0
  22. package/build/static/js/233.6eb019a2.chunk.js.LICENSE.txt +9 -0
  23. package/build/static/js/233.6eb019a2.chunk.js.map +1 -0
  24. package/build/static/js/245.5b6c9ccd.chunk.js +3 -0
  25. package/build/static/js/245.5b6c9ccd.chunk.js.LICENSE.txt +32 -0
  26. package/build/static/js/245.5b6c9ccd.chunk.js.map +1 -0
  27. package/build/static/js/257.5e166a25.chunk.js +2 -0
  28. package/build/static/js/257.5e166a25.chunk.js.map +1 -0
  29. package/build/static/js/340.1906f1da.chunk.js +2 -0
  30. package/build/static/js/340.1906f1da.chunk.js.map +1 -0
  31. package/build/static/js/379.87d72b93.chunk.js +2 -0
  32. package/build/static/js/379.87d72b93.chunk.js.map +1 -0
  33. package/build/static/js/391.73e8cf6c.chunk.js +3 -0
  34. package/build/static/js/391.73e8cf6c.chunk.js.LICENSE.txt +9 -0
  35. package/build/static/js/391.73e8cf6c.chunk.js.map +1 -0
  36. package/build/static/js/446.fbd0b83c.chunk.js +2 -0
  37. package/build/static/js/446.fbd0b83c.chunk.js.map +1 -0
  38. package/build/static/js/467.f25312c6.chunk.js +2 -0
  39. package/build/static/js/467.f25312c6.chunk.js.map +1 -0
  40. package/build/static/js/496.d861cbc9.chunk.js +2 -0
  41. package/build/static/js/496.d861cbc9.chunk.js.map +1 -0
  42. package/build/static/js/548.07ca0884.chunk.js +3 -0
  43. package/build/static/js/548.07ca0884.chunk.js.LICENSE.txt +8 -0
  44. package/build/static/js/548.07ca0884.chunk.js.map +1 -0
  45. package/build/static/js/623.8c36584b.chunk.js +2 -0
  46. package/build/static/js/623.8c36584b.chunk.js.map +1 -0
  47. package/build/static/js/638.d80dc5ae.chunk.js +2 -0
  48. package/build/static/js/638.d80dc5ae.chunk.js.map +1 -0
  49. package/build/static/js/7.a1482d96.chunk.js +3 -0
  50. package/build/static/js/7.a1482d96.chunk.js.LICENSE.txt +39 -0
  51. package/build/static/js/7.a1482d96.chunk.js.map +1 -0
  52. package/build/static/js/736.1c82c0a6.chunk.js +3 -0
  53. package/build/static/js/736.1c82c0a6.chunk.js.LICENSE.txt +11 -0
  54. package/build/static/js/736.1c82c0a6.chunk.js.map +1 -0
  55. package/build/static/js/8.df68e0a8.chunk.js +2 -0
  56. package/build/static/js/8.df68e0a8.chunk.js.map +1 -0
  57. package/build/static/js/825.11734156.chunk.js +2 -0
  58. package/build/static/js/825.11734156.chunk.js.map +1 -0
  59. package/build/static/js/848.c142377a.chunk.js +2 -0
  60. package/build/static/js/848.c142377a.chunk.js.map +1 -0
  61. package/build/static/js/86.0acd6d07.chunk.js +3 -0
  62. package/build/static/js/86.0acd6d07.chunk.js.LICENSE.txt +19 -0
  63. package/build/static/js/86.0acd6d07.chunk.js.map +1 -0
  64. package/build/static/js/main.c42144d3.js +2 -0
  65. package/build/static/js/main.c42144d3.js.map +1 -0
  66. package/build/static/media/example.034ae1f30c5fe6d68d26.pdf +0 -0
  67. package/build/static/media/signature.841922fcd4ffbb9de231.png +0 -0
  68. package/package.json +55 -0
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_kne_components_react_pdf_sign=self.webpackChunk_kne_components_react_pdf_sign||[]).push([[257,638],{39638:(e,t,n)=>{n.r(t),n.d(t,{Consumer:()=>a,Global:()=>p,GlobalSetting:()=>g,GlobalValue:()=>v,Preset:()=>C,Provider:()=>u,context:()=>o,createContext:()=>s,default:()=>o,useContext:()=>c,useGlobalContext:()=>i,useGlobalValue:()=>h,usePreset:()=>f});var r=n(94922),l=n.n(r);const s=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=(0,r.createContext)(e),{Provider:n,Consumer:l}=t;return{context:t,Provider:n,Consumer:l,useContext:()=>(0,r.useContext)(t)}},o=s({}),{Provider:u,Consumer:a,useContext:c}=o,i=c,f=()=>{const e=c();return Object.assign({},{apis:{}},null==e?void 0:e.preset)};function b(){return b=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},b.apply(null,arguments)}const d=["preset","children"],p=e=>{let{preset:t,children:n}=e,s=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,d);const[o,a]=(0,r.useState)({}),c=(0,r.useCallback)((e,t)=>{a(n=>Object.assign({},n,{[e]:"function"===typeof t?t(n[e]):t}))},[]);return l().createElement(u,{value:b({},s,{global:o,preset:t,setGlobal:a,setGlobalWithKey:c})},n)},g=e=>{let{loader:t,needReady:n=!0,children:l}=e;const[s,o]=(0,r.useState)(!1),{global:u,setGlobal:a}=c(),i=(0,r.useRef)(null),f=(0,r.useRef)(t);return(0,r.useEffect)(()=>{f.current().then(e=>{a(t=>{const n=Object.assign({},t,e);return i.current=n,n})})},[]),(0,r.useEffect)(()=>{u===i.current&&o(!0)},[u]),n&&!s?null:l},h=e=>{const{global:t}=c();return t[e]},v=e=>{let{globalKey:t,children:n}=e;return n({value:h(t)})},C=e=>{let{children:t}=e;return t(f())}}}]);
2
+ //# sourceMappingURL=257.5e166a25.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/js/257.5e166a25.chunk.js","mappings":"uZAIA,MAAMA,EAAgB,WAAoB,IAAnBC,EAASC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAC,EAClC,MAAMG,GAAUC,EAAAA,EAAAA,eAAmBL,IAC7B,SAAEM,EAAQ,SAAEC,GAAaH,EAG/B,MAAO,CAAEA,UAASE,WAAUC,WAAUC,WAFnBA,KAAMC,EAAAA,EAAAA,YAAgBL,GAG3C,ECRaA,EAAUL,EAAc,CAAC,IAEzB,SAAEO,EAAQ,SAAEC,EAAQ,WAAEC,GAAeJ,EAErCM,EAAmBF,EAEnBG,EAAYA,KACvB,MAAMC,EAAeJ,IACrB,OAAOK,OAAOC,OAAO,CAAC,EAAG,CAAEC,KAAM,CAAC,GAAiB,MAAZH,OAAY,EAAZA,EAAcI,S,sPCPjDC,EAASC,IAAkC,IAAjC,OAACF,EAAM,SAAEG,GAAmBD,EAANE,E,2IAAKC,CAAAH,EAAAI,GACvC,MAAOC,EAAQC,IAAaC,EAAAA,EAAAA,UAAS,CAAC,GAEhCC,GAAmBC,EAAAA,EAAAA,aAAY,CAACC,EAAWC,KAC7CL,EAAWD,GACAV,OAAOC,OAAO,CAAC,EAAGS,EAAQ,CAAC,CAACK,GAA6B,oBAAVC,EAAuBA,EAAMN,EAAOK,IAAcC,MAE7G,IAEH,OAAOC,IAAAA,cAACxB,EAAQ,CAACuB,MAAKE,EAAA,GAAMX,EAAO,CAAAG,SAAQP,SAAQQ,YAAWE,sBACzDP,IAIIa,EAAgBC,IAA0C,IAAzC,OAACC,EAAQC,UAAAC,GAAY,EAAI,SAAEjB,GAASc,EAC9D,MAAOI,EAAQC,IAAab,EAAAA,EAAAA,WAAS,IAC/B,OAACF,EAAM,UAAEC,GAAahB,IACtB+B,GAAYC,EAAAA,EAAAA,QAAO,MACnBC,GAAYD,EAAAA,EAAAA,QAAON,GAiBzB,OAhBAQ,EAAAA,EAAAA,WAAU,KACND,EAAUE,UAAUC,KAAMC,IACtBrB,EAAWD,IACP,MAAMuB,EAAajC,OAAOC,OAAO,CAAC,EAAGS,EAAQsB,GAE7C,OADAN,EAAUI,QAAUG,EACbA,OAGhB,KAEHJ,EAAAA,EAAAA,WAAU,KACFnB,IAAWgB,EAAUI,SACrBL,GAAU,IAEf,CAACf,IAEAa,IAAcC,EACP,KAGJlB,GAGE4B,EAAkBnB,IAC3B,MAAM,OAACL,GAAUf,IACjB,OAAOe,EAAOK,IAGLoB,EAAcC,IAA2B,IAA1B,UAACrB,EAAS,SAAET,GAAS8B,EAE7C,OAAO9B,EAAS,CAACU,MADHkB,EAAenB,MAIpBsB,EAASC,IAAgB,IAAf,SAAChC,GAASgC,EAE7B,OAAOhC,EADQR,K","sources":["../../node_modules/@kne/global-context/src/createContext.js","../../node_modules/@kne/global-context/src/globalContext.js","../../node_modules/@kne/global-context/src/Global.js"],"sourcesContent":["import {\n createContext as createReactContext, useContext as useReactContext\n} from \"react\";\n\nconst createContext = (initValue = {}) => {\n const context = createReactContext(initValue);\n const { Provider, Consumer } = context;\n const useContext = () => useReactContext(context);\n\n return { context, Provider, Consumer, useContext };\n};\n\nexport default createContext;\n","import createContext from \"./createContext\";\n\nexport const context = createContext({});\n\nexport const { Provider, Consumer, useContext } = context;\n\nexport const useGlobalContext = useContext;\n\nexport const usePreset = () => {\n const contextValue = useContext();\n return Object.assign({}, { apis: {} }, contextValue?.preset);\n};\n\nexport default context;\n","import React, {useState, useCallback, useEffect, useRef} from \"react\";\nimport {Provider, useContext, usePreset} from \"./globalContext\";\n\nconst Global = ({preset, children, ...props}) => {\n const [global, setGlobal] = useState({});\n\n const setGlobalWithKey = useCallback((globalKey, value) => {\n setGlobal((global) => {\n return Object.assign({}, global, {[globalKey]: typeof value === \"function\" ? value(global[globalKey]) : value});\n });\n }, []);\n\n return <Provider value={{...props, global, preset, setGlobal, setGlobalWithKey}}>\n {children}\n </Provider>;\n};\n\nexport const GlobalSetting = ({loader, needReady = true, children}) => {\n const [loaded, setLoaded] = useState(false);\n const {global, setGlobal} = useContext();\n const globalRef = useRef(null);\n const loaderRef = useRef(loader);\n useEffect(() => {\n loaderRef.current().then((target) => {\n setGlobal((global) => {\n const nextGlobal = Object.assign({}, global, target);\n globalRef.current = nextGlobal;\n return nextGlobal;\n });\n });\n }, []);\n\n useEffect(() => {\n if (global === globalRef.current) {\n setLoaded(true);\n }\n }, [global]);\n\n if (needReady && !loaded) {\n return null;\n }\n\n return children;\n};\n\nexport const useGlobalValue = (globalKey) => {\n const {global} = useContext();\n return global[globalKey];\n};\n\nexport const GlobalValue = ({globalKey, children}) => {\n const value = useGlobalValue(globalKey);\n return children({value});\n};\n\nexport const Preset = ({children}) => {\n const preset = usePreset();\n return children(preset);\n};\n\nexport default Global;\n"],"names":["createContext","initValue","arguments","length","undefined","context","createContext$1","Provider","Consumer","useContext","useContext$1","useGlobalContext","usePreset","contextValue","Object","assign","apis","preset","Global","_ref","children","props","_objectWithoutPropertiesLoose","_excluded","global","setGlobal","useState","setGlobalWithKey","useCallback","globalKey","value","React","_extends","GlobalSetting","_ref2","loader","needReady","_needReady","loaded","setLoaded","globalRef","useRef","loaderRef","useEffect","current","then","target","nextGlobal","useGlobalValue","GlobalValue","_ref3","Preset","_ref4"],"ignoreList":[],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_kne_components_react_pdf_sign=self.webpackChunk_kne_components_react_pdf_sign||[]).push([[340],{26784:(n,t,e)=>{e.r(t),e.d(t,{default:()=>c,manifest:()=>s});var d=e(81755),a=e(55199);const r=e.p+"static/media/example.034ae1f30c5fe6d68d26.pdf";var i=e.t(r);const o=e.p+"static/media/signature.841922fcd4ffbb9de231.png";const c={ReactPdfSign:{name:"react-pdf-sign",summary:"<p>\u8fd9\u662f\u4e00\u4e2a\u529f\u80fd\u5f3a\u5927\u7684 React PDF \u7b7e\u540d\u7ec4\u4ef6\u5e93\uff0c\u4e13\u4e3a\u9700\u8981\u5728 PDF \u6587\u6863\u4e0a\u6dfb\u52a0\u7535\u5b50\u7b7e\u540d\u7684\u5e94\u7528\u573a\u666f\u800c\u8bbe\u8ba1\u3002\u8be5\u7ec4\u4ef6\u5e93\u63d0\u4f9b\u4e86\u7075\u6d3b\u7684\u7b7e\u540d\u89e3\u51b3\u65b9\u6848\uff0c\u652f\u6301\u5373\u65f6\u7b7e\u540d\u6dfb\u52a0\u548c\u9884\u5b9a\u4e49\u7b7e\u540d\u533a\u57df\u4e24\u79cd\u6a21\u5f0f\u3002</p>\n<h2>\u6838\u5fc3\u7279\u6027</h2>\n<p><strong>\u76f4\u89c2\u7684\u7b7e\u540d\u4f53\u9a8c</strong> - \u63d0\u4f9b\u624b\u5199\u7b7e\u540d\u753b\u677f\uff0c\u7528\u6237\u53ef\u4ee5\u901a\u8fc7\u9f20\u6807\u6216\u89e6\u6478\u8bbe\u5907\u81ea\u7136\u5730\u7ed8\u5236\u7b7e\u540d\uff0c\u7b7e\u540d\u652f\u6301\u5b9e\u65f6\u9884\u89c8\u548c\u8c03\u6574\u3002</p>\n<p><strong>\u7075\u6d3b\u7684\u5b9a\u4f4d\u63a7\u5236</strong> - \u7b7e\u540d\u533a\u57df\u53ef\u4ee5\u5728 PDF \u9875\u9762\u4e0a\u81ea\u7531\u62d6\u62fd\u3001\u7f29\u653e\u548c\u7cbe\u786e\u5b9a\u4f4d\uff0c\u652f\u6301\u4fdd\u6301\u6bd4\u4f8b\u7f29\u653e\uff0c\u786e\u4fdd\u7b7e\u540d\u7684\u89c6\u89c9\u6548\u679c\u3002</p>\n<p><strong>\u5b8c\u6574\u7684 PDF \u64cd\u4f5c</strong> - \u57fa\u4e8e pdf-lib \u548c react-pdf\uff0c\u652f\u6301\u591a\u9875 PDF \u6587\u6863\u7684\u6d4f\u89c8\u3001\u7b7e\u540d\u5b9a\u4f4d\u548c\u6700\u7ec8\u7b7e\u540d\u6587\u4ef6\u7684\u751f\u6210\u3002</p>\n<p><strong>\u7ec4\u4ef6\u5316\u8bbe\u8ba1</strong> - \u63d0\u4f9b\u591a\u4e2a\u72ec\u7acb\u7ec4\u4ef6\uff08PDFSign\u3001PDFViewer\u3001LocationLayer\u3001useSignature\uff09\uff0c\u5f00\u53d1\u8005\u53ef\u4ee5\u6839\u636e\u9700\u6c42\u7075\u6d3b\u7ec4\u5408\u4f7f\u7528\u3002</p>\n<p><strong>\u56fd\u9645\u5316\u652f\u6301</strong> - \u5185\u7f6e\u4e2d\u82f1\u6587\u8bed\u8a00\u5305\uff0c\u652f\u6301\u591a\u8bed\u8a00\u5207\u6362\uff0c\u9002\u5408\u56fd\u9645\u5316\u5e94\u7528\u3002</p>\n<p><strong>\u73b0\u4ee3\u5316\u6280\u672f\u6808</strong> - \u57fa\u4e8e React 18+\uff0c\u4f7f\u7528 Konva.js \u5b9e\u73b0\u9ad8\u6027\u80fd\u7684\u56fe\u5f62\u6e32\u67d3\uff0c\u652f\u6301\u54cd\u5e94\u5f0f\u8bbe\u8ba1\u3002</p>\n<h2>\u4f7f\u7528\u573a\u666f</h2>\n<ul>\n<li>\u5408\u540c\u7b7e\u7f72\u7cfb\u7edf</li>\n<li>\u6587\u6863\u5ba1\u6279\u6d41\u7a0b</li>\n<li>\u7535\u5b50\u8868\u5355\u7b7e\u540d</li>\n<li>\u8bc1\u4e66\u9881\u53d1\u7cfb\u7edf</li>\n<li>\u6cd5\u5f8b\u6587\u4ef6\u7b7e\u7f72</li>\n</ul>\n<p>\u8be5\u7ec4\u4ef6\u5e93\u7b80\u5316\u4e86 PDF \u7b7e\u540d\u7684\u590d\u6742\u5b9e\u73b0\uff0c\u5f00\u53d1\u8005\u53ea\u9700\u8981\u51e0\u884c\u4ee3\u7801\u5c31\u80fd\u96c6\u6210\u5b8c\u6574\u7684\u7b7e\u540d\u529f\u80fd\uff0c\u5927\u5927\u63d0\u5347\u4e86\u5f00\u53d1\u6548\u7387\u3002</p>",description:"\u8fd9\u662f\u4e00\u4e2a\u529f\u80fd\u5f3a\u5927\u7684 React PDF \u7b7e\u540d\u7ec4\u4ef6\u5e93\uff0c\u4e13\u4e3a\u9700\u8981\u5728 PDF \u6587\u6863\u4e0a\u6dfb\u52a0\u7535\u5b50\u7b7e\u540d\u7684\u5e94\u7528\u573a\u666f\u800c\u8bbe\u8ba1\u3002\u8be5\u7ec4\u4ef6\u5e93\u63d0\u4f9b\u4e86\u7075\u6d3b\u7684\u7b7e\u540d\u89e3\u51b3\u65b9\u6848\uff0c\u652f\u6301\u5373\u65f6\u7b7e\u540d\u6dfb\u52a0\u548c\u9884\u5b9a\u4e49\u7b7e\u540d\u533a\u57df\u4e24\u79cd\u6a21\u5f0f",packageName:"@kne/react-pdf-sign",api:"<h3>PDFSign</h3>\n<p>\u4e3b\u8981\u7684 PDF \u7b7e\u540d\u7ec4\u4ef6\uff0c\u96c6\u6210\u4e86 PDF \u67e5\u770b\u5668\u548c\u7b7e\u540d\u5b9a\u4f4d\u529f\u80fd\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n<th>\u8bf4\u660e</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>url</td>\n<td>string</td>\n<td>-</td>\n<td>PDF \u6587\u4ef6\u7684 URL \u5730\u5740</td>\n</tr>\n<tr>\n<td>signature</td>\n<td>string</td>\n<td>-</td>\n<td>\u7b7e\u540d\u56fe\u7247\u7684 URL \u5730\u5740</td>\n</tr>\n<tr>\n<td>width</td>\n<td>number</td>\n<td>200</td>\n<td>\u7b7e\u540d\u533a\u57df\u7684\u5bbd\u5ea6</td>\n</tr>\n<tr>\n<td>height</td>\n<td>number</td>\n<td>50</td>\n<td>\u7b7e\u540d\u533a\u57df\u7684\u9ad8\u5ea6</td>\n</tr>\n<tr>\n<td>padding</td>\n<td>number</td>\n<td>8</td>\n<td>\u7b7e\u540d\u533a\u57df\u53d8\u6362\u5668\u7684\u5185\u8fb9\u8ddd</td>\n</tr>\n<tr>\n<td>placeholder</td>\n<td>string</td>\n<td>'\u62d6\u62fd\u5230\u7b7e\u540d\u4f4d\u7f6e'</td>\n<td>\u7b7e\u540d\u533a\u57df\u7684\u5360\u4f4d\u6587\u672c</td>\n</tr>\n</tbody>\n</table>\n<h4>\u5b9e\u4f8b\u65b9\u6cd5</h4>\n<table>\n<thead>\n<tr>\n<th>\u65b9\u6cd5\u540d</th>\n<th>\u53c2\u6570</th>\n<th>\u8fd4\u56de\u503c</th>\n<th>\u8bf4\u660e</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>getLocation</td>\n<td>-</td>\n<td>object</td>\n<td>\u83b7\u53d6\u5f53\u524d\u7b7e\u540d\u4f4d\u7f6e\u4fe1\u606f</td>\n</tr>\n<tr>\n<td>setLocation</td>\n<td>location: object</td>\n<td>-</td>\n<td>\u8bbe\u7f6e\u7b7e\u540d\u4f4d\u7f6e</td>\n</tr>\n<tr>\n<td>getPdfSignature</td>\n<td>-</td>\n<td>object</td>\n<td>\u83b7\u53d6 PDF \u7b7e\u540d\u4fe1\u606f</td>\n</tr>\n<tr>\n<td>sign</td>\n<td>-</td>\n<td>Promise&lt;File&gt;</td>\n<td>\u751f\u6210\u7b7e\u540d\u540e\u7684 PDF \u6587\u4ef6</td>\n</tr>\n</tbody>\n</table>\n<h3>PDFViewer</h3>\n<p>PDF \u6587\u6863\u67e5\u770b\u5668\u7ec4\u4ef6\uff0c\u63d0\u4f9b PDF \u9875\u9762\u6d4f\u89c8\u529f\u80fd\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n<th>\u8bf4\u660e</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>url</td>\n<td>string</td>\n<td>-</td>\n<td>PDF \u6587\u4ef6\u7684 URL \u5730\u5740</td>\n</tr>\n<tr>\n<td>className</td>\n<td>string</td>\n<td>-</td>\n<td>\u81ea\u5b9a\u4e49 CSS \u7c7b\u540d</td>\n</tr>\n<tr>\n<td>defaultPage</td>\n<td>number</td>\n<td>1</td>\n<td>\u9ed8\u8ba4\u663e\u793a\u7684\u9875\u7801</td>\n</tr>\n<tr>\n<td>maxWidth</td>\n<td>number</td>\n<td>1200</td>\n<td>\u6700\u5927\u663e\u793a\u5bbd\u5ea6</td>\n</tr>\n<tr>\n<td>pdfjsUrl</td>\n<td>string</td>\n<td>-</td>\n<td>\u81ea\u5b9a\u4e49 pdf.js CDN \u5730\u5740</td>\n</tr>\n<tr>\n<td>apis</td>\n<td>object</td>\n<td>-</td>\n<td>API \u914d\u7f6e\u5bf9\u8c61</td>\n</tr>\n</tbody>\n</table>\n<h4>children \u6e32\u67d3\u5c5e\u6027</h4>\n<p>\u5f53 children \u4e3a\u51fd\u6570\u65f6\uff0c\u4f1a\u4f20\u5165\u4ee5\u4e0b\u53c2\u6570\uff1a</p>\n<table>\n<thead>\n<tr>\n<th>\u53c2\u6570</th>\n<th>\u7c7b\u578b</th>\n<th>\u8bf4\u660e</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>size</td>\n<td>object</td>\n<td>\u5f53\u524d\u9875\u9762\u7684\u5c3a\u5bf8\u4fe1\u606f</td>\n</tr>\n<tr>\n<td>currentPage</td>\n<td>number</td>\n<td>\u5f53\u524d\u9875\u7801</td>\n</tr>\n<tr>\n<td>pageSize</td>\n<td>number</td>\n<td>\u603b\u9875\u6570</td>\n</tr>\n</tbody>\n</table>\n<h3>LocationLayer</h3>\n<p>\u7b7e\u540d\u5b9a\u4f4d\u5c42\u7ec4\u4ef6\uff0c\u7528\u4e8e\u5728 PDF \u4e0a\u5b9a\u4f4d\u548c\u8c03\u6574\u7b7e\u540d\u533a\u57df\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n<th>\u8bf4\u660e</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>stageWidth</td>\n<td>number</td>\n<td>-</td>\n<td>\u753b\u5e03\u5bbd\u5ea6\uff08\u5fc5\u9700\uff09</td>\n</tr>\n<tr>\n<td>stageHeight</td>\n<td>number</td>\n<td>-</td>\n<td>\u753b\u5e03\u9ad8\u5ea6\uff08\u5fc5\u9700\uff09</td>\n</tr>\n<tr>\n<td>width</td>\n<td>number</td>\n<td>200</td>\n<td>\u7b7e\u540d\u533a\u57df\u5bbd\u5ea6</td>\n</tr>\n<tr>\n<td>height</td>\n<td>number</td>\n<td>50</td>\n<td>\u7b7e\u540d\u533a\u57df\u9ad8\u5ea6</td>\n</tr>\n<tr>\n<td>padding</td>\n<td>number</td>\n<td>8</td>\n<td>\u53d8\u6362\u5668\u5185\u8fb9\u8ddd</td>\n</tr>\n<tr>\n<td>placeholder</td>\n<td>string</td>\n<td>'\u62d6\u62fd\u5230\u7b7e\u540d\u4f4d\u7f6e'</td>\n<td>\u5360\u4f4d\u6587\u672c</td>\n</tr>\n<tr>\n<td>signature</td>\n<td>string</td>\n<td>-</td>\n<td>\u7b7e\u540d\u56fe\u7247 URL</td>\n</tr>\n<tr>\n<td>value</td>\n<td>object</td>\n<td>-</td>\n<td>\u53d7\u63a7\u7684\u4f4d\u7f6e\u503c</td>\n</tr>\n<tr>\n<td>onChange</td>\n<td>function</td>\n<td>-</td>\n<td>\u4f4d\u7f6e\u53d8\u5316\u56de\u8c03</td>\n</tr>\n</tbody>\n</table>\n<h3>useSignature</h3>\n<p>\u7b7e\u540d\u753b\u677f Hook\uff0c\u63d0\u4f9b\u624b\u5199\u7b7e\u540d\u529f\u80fd\u3002</p>\n<h4>\u8fd4\u56de\u7684\u51fd\u6570\u53c2\u6570</h4>\n<table>\n<thead>\n<tr>\n<th>\u53c2\u6570</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n<th>\u8bf4\u660e</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>filename</td>\n<td>string</td>\n<td>'signature.png'</td>\n<td>\u7b7e\u540d\u6587\u4ef6\u540d</td>\n</tr>\n<tr>\n<td>width</td>\n<td>number</td>\n<td>200</td>\n<td>\u7b7e\u540d\u753b\u677f\u5bbd\u5ea6</td>\n</tr>\n<tr>\n<td>height</td>\n<td>number</td>\n<td>50</td>\n<td>\u7b7e\u540d\u753b\u677f\u9ad8\u5ea6</td>\n</tr>\n<tr>\n<td>onSuccess</td>\n<td>function</td>\n<td>-</td>\n<td>\u7b7e\u540d\u5b8c\u6210\u56de\u8c03</td>\n</tr>\n<tr>\n<td>modalProps</td>\n<td>object</td>\n<td>-</td>\n<td>Modal \u7ec4\u4ef6\u5c5e\u6027</td>\n</tr>\n</tbody>\n</table>\n<h4>Hook \u914d\u7f6e\u53c2\u6570</h4>\n<table>\n<thead>\n<tr>\n<th>\u53c2\u6570</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n<th>\u8bf4\u660e</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>width</td>\n<td>number</td>\n<td>200</td>\n<td>\u9ed8\u8ba4\u7b7e\u540d\u753b\u677f\u5bbd\u5ea6</td>\n</tr>\n<tr>\n<td>height</td>\n<td>number</td>\n<td>50</td>\n<td>\u9ed8\u8ba4\u7b7e\u540d\u753b\u677f\u9ad8\u5ea6</td>\n</tr>\n</tbody>\n</table>",example:{isFull:!1,className:"react_pdf_sign_e88dd",style:"",list:[{title:"\u5b8c\u6574\u7b7e\u540d\u6d41\u7a0b",description:"\u6f14\u793aPDF\u4e0a\u4f20\u3001\u624b\u5199\u7b7e\u540d\u521b\u5efa\u548c\u7b7e\u540dPDF\u751f\u6210\u7684\u5b8c\u6574\u5de5\u4f5c\u6d41\u7a0b",code:"const { default: ReactPdfSign, useSignature } = _ReactPdfSign;\nconst { useState, useRef } = React;\nconst { Flex, Button } = antd;\n\nconst BaseExample = () => {\n const [pdfFile, setPdfFile] = useState(null);\n const [sign, setSign] = useState(null);\n const ref = useRef(null);\n const signatureModal = useSignature();\n return (\n <Flex vertical gap={12}>\n <Flex gap={8}>\n <Button>\n <input\n type=\"file\"\n accept=\"application/pdf\"\n onChange={e => {\n const file = e.target.files[0];\n setPdfFile(URL.createObjectURL(file));\n }}\n />\n </Button>\n <Button\n onClick={() => {\n signatureModal({\n onSuccess: file => {\n setSign(URL.createObjectURL(file));\n }\n });\n }}>\n \u6dfb\u52a0\u7b7e\u540d\n </Button>\n {pdfFile && sign && (\n <Button\n onClick={async () => {\n const blob = await ref.current.sign();\n const link = document.createElement('a');\n const url = URL.createObjectURL(blob);\n link.href = url;\n link.download = 'signed-document.pdf';\n link.click();\n URL.revokeObjectURL(url);\n }}>\n \u751f\u6210\u7b7e\u540dPDF\n </Button>\n )}\n </Flex>\n {pdfFile ? <ReactPdfSign url={pdfFile} signature={sign} ref={ref} /> : null}\n </Flex>\n );\n};\n\nrender(<BaseExample />);\n\n",scope:[{name:"_ReactPdfSign",packageName:"@kne/current-lib_react-pdf-sign",importStatement:'import * as _ReactPdfSign from "@kne/react-pdf-sign"',component:d},{name:"antd",packageName:"antd",component:a}]},{title:"\u7b7e\u540d\u5b9a\u4f4d\u5c42",description:"\u5c55\u793a\u72ec\u7acb\u7684\u7b7e\u540d\u5b9a\u4f4d\u7ec4\u4ef6\uff0c\u652f\u6301\u62d6\u62fd\u548c\u7f29\u653e\u8c03\u6574\u7b7e\u540d\u4f4d\u7f6e",code:"const { LocationLayer } = _ReactPdfSign;\n\nconst BaseExample = () => {\n return (\n <div>\n <LocationLayer stageWidth={400} stageHeight={300} />\n </div>\n );\n};\n\nrender(<BaseExample />);\n\n",scope:[{name:"_ReactPdfSign",packageName:"@kne/current-lib_react-pdf-sign",importStatement:'import * as _ReactPdfSign from "@kne/react-pdf-sign"',component:d}]},{title:"PDF\u67e5\u770b\u5668",description:"\u57fa\u7840\u7684PDF\u6587\u6863\u67e5\u770b\u5668\uff0c\u652f\u6301\u9875\u9762\u5207\u6362\u548c\u7f29\u653e\u663e\u793a",code:"const { PDFViewer } = _ReactPdfSign;\nconst { default: examplePdf } = _examplePdf;\n\nconst BaseExample = () => {\n return (\n <div>\n <PDFViewer url={examplePdf} />\n </div>\n );\n};\n\nrender(<BaseExample />);\n\n",scope:[{name:"_ReactPdfSign",packageName:"@kne/current-lib_react-pdf-sign",importStatement:'import * as _ReactPdfSign from "@kne/react-pdf-sign"',component:d},{name:"_examplePdf",packageName:"./doc/example.pdf",component:i}]},{title:"PDF\u7b7e\u540d\u7ec4\u4ef6",description:"\u6f14\u793aPDF\u7b7e\u540d\u7ec4\u4ef6\u7684API\u4f7f\u7528\uff0c\u5305\u62ec\u4f4d\u7f6e\u83b7\u53d6\u3001\u8bbe\u7f6e\u548c\u7b7e\u540d\u6587\u4ef6\u751f\u6210",code:"const { PDFSign } = _ReactPdfSign;\nconst { default: examplePdf } = _examplePdf;\nconst { default: signature } = _signature;\nconst { useRef } = React;\nconst { Flex, Button, App } = antd;\n\nconst BaseExample = () => {\n const ref = useRef();\n const ref2 = useRef();\n const { modal } = App.useApp();\n return (\n <Flex vertical gap={24}>\n <Flex vertical gap={8}>\n <Flex gap={8}>\n <Button\n onClick={() => {\n const location = ref.current.getLocation();\n modal.info({\n title: '\u7b7e\u540d\u4f4d\u7f6e',\n content: <pre>{JSON.stringify(location, null, 2)}</pre>\n });\n }}>\n \u83b7\u53d6\u7b7e\u540d\u4f4d\u7f6e\n </Button>\n <Button\n onClick={() => {\n ref.current.setLocation({\n size: {\n width: 200,\n height: 50,\n x: 240,\n y: 47\n },\n scaleX: 1,\n scaleY: 1,\n x: 240,\n y: 47\n });\n }}>\n \u8bbe\u7f6e\u7b7e\u540d\u4f4d\u7f6e\n </Button>\n <Button\n onClick={() => {\n const pdfSignature = ref.current.getPdfSignature();\n modal.info({\n title: 'PDF\u7b7e\u540d\u4fe1\u606f',\n content: <pre style={{ 'white-space': 'break-spaces' }}>{JSON.stringify(pdfSignature, null, 2)}</pre>\n });\n }}>\n \u83b7\u53d6PDF\u7b7e\u540d\u4fe1\u606f\n </Button>\n </Flex>\n <PDFSign url={examplePdf} ref={ref} />\n </Flex>\n <Flex vertical gap={8}>\n <div>\n <Button\n onClick={async () => {\n const blob = await ref2.current.sign();\n const link = document.createElement('a');\n const url = URL.createObjectURL(blob);\n link.href = url;\n link.download = 'signed-document.pdf';\n link.click();\n URL.revokeObjectURL(url);\n }}>\n \u751f\u6210\u7b7e\u540d\u6587\u4ef6\n </Button>\n </div>\n <PDFSign url={examplePdf} signature={signature} ref={ref2} />\n </Flex>\n </Flex>\n );\n};\n\nrender(<BaseExample />);\n\n",scope:[{name:"_ReactPdfSign",packageName:"@kne/current-lib_react-pdf-sign",importStatement:'import * as _ReactPdfSign from "@kne/react-pdf-sign"',component:d},{name:"_examplePdf",packageName:"./doc/example.pdf",component:i},{name:"_signature",packageName:"./doc/signature.png",component:e.t(o)},{name:"antd",packageName:"antd",component:a}]},{title:"\u624b\u5199\u7b7e\u540d\u753b\u677f",description:"\u5c55\u793auseSignature Hook\u7684\u4f7f\u7528\uff0c\u6253\u5f00\u624b\u5199\u7b7e\u540d\u6a21\u6001\u6846",code:"const { useSignature } = _ReactPdfSign;\nconst { Button } = antd;\n\nconst BaseExample = () => {\n const modal = useSignature();\n return (\n <div>\n <Button\n onClick={() => {\n modal({\n onSuccess: file => {\n console.log(file);\n }\n });\n }}>\n \u7b7e\u540d\n </Button>\n </div>\n );\n};\n\nrender(<BaseExample />);\n\n",scope:[{name:"_ReactPdfSign",packageName:"@kne/current-lib_react-pdf-sign",importStatement:'import * as _ReactPdfSign from "@kne/react-pdf-sign"',component:d},{name:"antd",packageName:"antd",component:a}]}]}}},s={name:"react-pdf-sign",version:"1.0.0","open-version":!0,"public-url":"/react-pdf-sign",modules:[{name:"react-pdf-sign",baseDir:"/home/runner/work/react-pdf-sign/react-pdf-sign",description:"\u8fd9\u662f\u4e00\u4e2a\u529f\u80fd\u5f3a\u5927\u7684 React PDF \u7b7e\u540d\u7ec4\u4ef6\u5e93\uff0c\u4e13\u4e3a\u9700\u8981\u5728 PDF \u6587\u6863\u4e0a\u6dfb\u52a0\u7535\u5b50\u7b7e\u540d\u7684\u5e94\u7528\u573a\u666f\u800c\u8bbe\u8ba1\u3002\u8be5\u7ec4\u4ef6\u5e93\u63d0\u4f9b\u4e86\u7075\u6d3b\u7684\u7b7e\u540d\u89e3\u51b3\u65b9\u6848\uff0c\u652f\u6301\u5373\u65f6\u7b7e\u540d\u6dfb\u52a0\u548c\u9884\u5b9a\u4e49\u7b7e\u540d\u533a\u57df\u4e24\u79cd\u6a21\u5f0f",packageName:"@kne/react-pdf-sign"}]}}}]);
2
+ //# sourceMappingURL=340.1906f1da.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/js/340.1906f1da.chunk.js","mappings":"8VASA,MCTgE,GAAgBA,aDS3D,CACjBC,KAAM,iBACNC,QAAS,uqFAiBTC,YAAa,qdACbC,YAAa,sBACbC,IAAK,k5LA+SLC,QAAS,CACLC,QAAQ,EACRC,UAAW,uBACXC,MAAO,GACPC,KAAM,CAAC,CACXC,MAAO,uCACPR,YAAa,mJACbS,KAAM,2jDAuDNC,MAAO,CAAC,CACRZ,KAAM,gBACNG,YAAa,kCACbU,gBAAiB,uDACjBC,UAAW,GACb,CACEd,KAAM,OACNG,YAAa,OACbW,UAAW,KAEb,CACEJ,MAAO,iCACPR,YAAa,yJACbS,KAAM,mNAaNC,MAAO,CAAC,CACRZ,KAAM,gBACNG,YAAa,kCACbU,gBAAiB,uDACjBC,UAAW,KAEb,CACEJ,MAAO,wBACPR,YAAa,8HACbS,KAAM,uOAcNC,MAAO,CAAC,CACRZ,KAAM,gBACNG,YAAa,kCACbU,gBAAiB,uDACjBC,UAAW,GACb,CACEd,KAAM,cACNG,YAAa,oBACbW,UAAW,KAEb,CACEJ,MAAO,8BACPR,YAAa,qKACbS,KAAM,y2EA8ENC,MAAO,CAAC,CACRZ,KAAM,gBACNG,YAAa,kCACbU,gBAAiB,uDACjBC,UAAW,GACb,CACEd,KAAM,cACNG,YAAa,oBACbW,UAAW,GACb,CACEd,KAAM,aACNG,YAAa,sBACbW,U,QACF,CACEd,KAAM,OACNG,YAAa,OACbW,UAAW,KAEb,CACEJ,MAAO,uCACPR,YAAa,8GACbS,KAAM,maAwBNC,MAAO,CAAC,CACRZ,KAAM,gBACNG,YAAa,kCACbU,gBAAiB,uDACjBC,UAAW,GACb,CACEd,KAAM,OACNG,YAAa,OACbW,UAAW,SC3kBFC,EAAW,CAAC,KAAO,iBAAiB,QAAU,QAAQ,gBAAe,EAAK,aAAa,kBAAkB,QAAU,CAAC,CAAC,KAAO,iBAAiB,QAAU,kDAAkD,YAAc,qdAA8F,YAAc,wB","sources":["../../README.md","../node_modules/readme/modules.js"],"sourcesContent":["import * as component_1 from '@kne/current-lib_react-pdf-sign';\nimport * as component_2 from 'antd';\nimport '@kne/current-lib_react-pdf-sign/dist/index.css';\nimport '@kne/current-lib_react-pdf-sign/dist/index.css';\nimport * as component_5 from './doc/example.pdf';\nimport '@kne/current-lib_react-pdf-sign/dist/index.css';\nimport * as component_7 from './doc/signature.png';\nimport '@kne/current-lib_react-pdf-sign/dist/index.css';\nimport '@kne/current-lib_react-pdf-sign/dist/index.css';\nconst readmeConfig = {\n name: `react-pdf-sign`,\n summary: `<p>这是一个功能强大的 React PDF 签名组件库,专为需要在 PDF 文档上添加电子签名的应用场景而设计。该组件库提供了灵活的签名解决方案,支持即时签名添加和预定义签名区域两种模式。</p>\n<h2>核心特性</h2>\n<p><strong>直观的签名体验</strong> - 提供手写签名画板,用户可以通过鼠标或触摸设备自然地绘制签名,签名支持实时预览和调整。</p>\n<p><strong>灵活的定位控制</strong> - 签名区域可以在 PDF 页面上自由拖拽、缩放和精确定位,支持保持比例缩放,确保签名的视觉效果。</p>\n<p><strong>完整的 PDF 操作</strong> - 基于 pdf-lib 和 react-pdf,支持多页 PDF 文档的浏览、签名定位和最终签名文件的生成。</p>\n<p><strong>组件化设计</strong> - 提供多个独立组件(PDFSign、PDFViewer、LocationLayer、useSignature),开发者可以根据需求灵活组合使用。</p>\n<p><strong>国际化支持</strong> - 内置中英文语言包,支持多语言切换,适合国际化应用。</p>\n<p><strong>现代化技术栈</strong> - 基于 React 18+,使用 Konva.js 实现高性能的图形渲染,支持响应式设计。</p>\n<h2>使用场景</h2>\n<ul>\n<li>合同签署系统</li>\n<li>文档审批流程</li>\n<li>电子表单签名</li>\n<li>证书颁发系统</li>\n<li>法律文件签署</li>\n</ul>\n<p>该组件库简化了 PDF 签名的复杂实现,开发者只需要几行代码就能集成完整的签名功能,大大提升了开发效率。</p>`,\n description: `这是一个功能强大的 React PDF 签名组件库,专为需要在 PDF 文档上添加电子签名的应用场景而设计。该组件库提供了灵活的签名解决方案,支持即时签名添加和预定义签名区域两种模式`,\n packageName: `@kne/react-pdf-sign`,\n api: `<h3>PDFSign</h3>\n<p>主要的 PDF 签名组件,集成了 PDF 查看器和签名定位功能。</p>\n<table>\n<thead>\n<tr>\n<th>属性</th>\n<th>类型</th>\n<th>默认值</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>url</td>\n<td>string</td>\n<td>-</td>\n<td>PDF 文件的 URL 地址</td>\n</tr>\n<tr>\n<td>signature</td>\n<td>string</td>\n<td>-</td>\n<td>签名图片的 URL 地址</td>\n</tr>\n<tr>\n<td>width</td>\n<td>number</td>\n<td>200</td>\n<td>签名区域的宽度</td>\n</tr>\n<tr>\n<td>height</td>\n<td>number</td>\n<td>50</td>\n<td>签名区域的高度</td>\n</tr>\n<tr>\n<td>padding</td>\n<td>number</td>\n<td>8</td>\n<td>签名区域变换器的内边距</td>\n</tr>\n<tr>\n<td>placeholder</td>\n<td>string</td>\n<td>'拖拽到签名位置'</td>\n<td>签名区域的占位文本</td>\n</tr>\n</tbody>\n</table>\n<h4>实例方法</h4>\n<table>\n<thead>\n<tr>\n<th>方法名</th>\n<th>参数</th>\n<th>返回值</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>getLocation</td>\n<td>-</td>\n<td>object</td>\n<td>获取当前签名位置信息</td>\n</tr>\n<tr>\n<td>setLocation</td>\n<td>location: object</td>\n<td>-</td>\n<td>设置签名位置</td>\n</tr>\n<tr>\n<td>getPdfSignature</td>\n<td>-</td>\n<td>object</td>\n<td>获取 PDF 签名信息</td>\n</tr>\n<tr>\n<td>sign</td>\n<td>-</td>\n<td>Promise&lt;File&gt;</td>\n<td>生成签名后的 PDF 文件</td>\n</tr>\n</tbody>\n</table>\n<h3>PDFViewer</h3>\n<p>PDF 文档查看器组件,提供 PDF 页面浏览功能。</p>\n<table>\n<thead>\n<tr>\n<th>属性</th>\n<th>类型</th>\n<th>默认值</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>url</td>\n<td>string</td>\n<td>-</td>\n<td>PDF 文件的 URL 地址</td>\n</tr>\n<tr>\n<td>className</td>\n<td>string</td>\n<td>-</td>\n<td>自定义 CSS 类名</td>\n</tr>\n<tr>\n<td>defaultPage</td>\n<td>number</td>\n<td>1</td>\n<td>默认显示的页码</td>\n</tr>\n<tr>\n<td>maxWidth</td>\n<td>number</td>\n<td>1200</td>\n<td>最大显示宽度</td>\n</tr>\n<tr>\n<td>pdfjsUrl</td>\n<td>string</td>\n<td>-</td>\n<td>自定义 pdf.js CDN 地址</td>\n</tr>\n<tr>\n<td>apis</td>\n<td>object</td>\n<td>-</td>\n<td>API 配置对象</td>\n</tr>\n</tbody>\n</table>\n<h4>children 渲染属性</h4>\n<p>当 children 为函数时,会传入以下参数:</p>\n<table>\n<thead>\n<tr>\n<th>参数</th>\n<th>类型</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>size</td>\n<td>object</td>\n<td>当前页面的尺寸信息</td>\n</tr>\n<tr>\n<td>currentPage</td>\n<td>number</td>\n<td>当前页码</td>\n</tr>\n<tr>\n<td>pageSize</td>\n<td>number</td>\n<td>总页数</td>\n</tr>\n</tbody>\n</table>\n<h3>LocationLayer</h3>\n<p>签名定位层组件,用于在 PDF 上定位和调整签名区域。</p>\n<table>\n<thead>\n<tr>\n<th>属性</th>\n<th>类型</th>\n<th>默认值</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>stageWidth</td>\n<td>number</td>\n<td>-</td>\n<td>画布宽度(必需)</td>\n</tr>\n<tr>\n<td>stageHeight</td>\n<td>number</td>\n<td>-</td>\n<td>画布高度(必需)</td>\n</tr>\n<tr>\n<td>width</td>\n<td>number</td>\n<td>200</td>\n<td>签名区域宽度</td>\n</tr>\n<tr>\n<td>height</td>\n<td>number</td>\n<td>50</td>\n<td>签名区域高度</td>\n</tr>\n<tr>\n<td>padding</td>\n<td>number</td>\n<td>8</td>\n<td>变换器内边距</td>\n</tr>\n<tr>\n<td>placeholder</td>\n<td>string</td>\n<td>'拖拽到签名位置'</td>\n<td>占位文本</td>\n</tr>\n<tr>\n<td>signature</td>\n<td>string</td>\n<td>-</td>\n<td>签名图片 URL</td>\n</tr>\n<tr>\n<td>value</td>\n<td>object</td>\n<td>-</td>\n<td>受控的位置值</td>\n</tr>\n<tr>\n<td>onChange</td>\n<td>function</td>\n<td>-</td>\n<td>位置变化回调</td>\n</tr>\n</tbody>\n</table>\n<h3>useSignature</h3>\n<p>签名画板 Hook,提供手写签名功能。</p>\n<h4>返回的函数参数</h4>\n<table>\n<thead>\n<tr>\n<th>参数</th>\n<th>类型</th>\n<th>默认值</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>filename</td>\n<td>string</td>\n<td>'signature.png'</td>\n<td>签名文件名</td>\n</tr>\n<tr>\n<td>width</td>\n<td>number</td>\n<td>200</td>\n<td>签名画板宽度</td>\n</tr>\n<tr>\n<td>height</td>\n<td>number</td>\n<td>50</td>\n<td>签名画板高度</td>\n</tr>\n<tr>\n<td>onSuccess</td>\n<td>function</td>\n<td>-</td>\n<td>签名完成回调</td>\n</tr>\n<tr>\n<td>modalProps</td>\n<td>object</td>\n<td>-</td>\n<td>Modal 组件属性</td>\n</tr>\n</tbody>\n</table>\n<h4>Hook 配置参数</h4>\n<table>\n<thead>\n<tr>\n<th>参数</th>\n<th>类型</th>\n<th>默认值</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>width</td>\n<td>number</td>\n<td>200</td>\n<td>默认签名画板宽度</td>\n</tr>\n<tr>\n<td>height</td>\n<td>number</td>\n<td>50</td>\n<td>默认签名画板高度</td>\n</tr>\n</tbody>\n</table>`,\n example: {\n isFull: false,\n className: `react_pdf_sign_e88dd`,\n style: ``,\n list: [{\n title: `完整签名流程`,\n description: `演示PDF上传、手写签名创建和签名PDF生成的完整工作流程`,\n code: `const { default: ReactPdfSign, useSignature } = _ReactPdfSign;\nconst { useState, useRef } = React;\nconst { Flex, Button } = antd;\n\nconst BaseExample = () => {\n const [pdfFile, setPdfFile] = useState(null);\n const [sign, setSign] = useState(null);\n const ref = useRef(null);\n const signatureModal = useSignature();\n return (\n <Flex vertical gap={12}>\n <Flex gap={8}>\n <Button>\n <input\n type=\"file\"\n accept=\"application/pdf\"\n onChange={e => {\n const file = e.target.files[0];\n setPdfFile(URL.createObjectURL(file));\n }}\n />\n </Button>\n <Button\n onClick={() => {\n signatureModal({\n onSuccess: file => {\n setSign(URL.createObjectURL(file));\n }\n });\n }}>\n 添加签名\n </Button>\n {pdfFile && sign && (\n <Button\n onClick={async () => {\n const blob = await ref.current.sign();\n const link = document.createElement('a');\n const url = URL.createObjectURL(blob);\n link.href = url;\n link.download = 'signed-document.pdf';\n link.click();\n URL.revokeObjectURL(url);\n }}>\n 生成签名PDF\n </Button>\n )}\n </Flex>\n {pdfFile ? <ReactPdfSign url={pdfFile} signature={sign} ref={ref} /> : null}\n </Flex>\n );\n};\n\nrender(<BaseExample />);\n\n`,\n scope: [{\n name: \"_ReactPdfSign\",\n packageName: \"@kne/current-lib_react-pdf-sign\",\n importStatement: \"import * as _ReactPdfSign from \\\"@kne/react-pdf-sign\\\"\",\n component: component_1\n},{\n name: \"antd\",\n packageName: \"antd\",\n component: component_2\n}]\n},{\n title: `签名定位层`,\n description: `展示独立的签名定位组件,支持拖拽和缩放调整签名位置`,\n code: `const { LocationLayer } = _ReactPdfSign;\n\nconst BaseExample = () => {\n return (\n <div>\n <LocationLayer stageWidth={400} stageHeight={300} />\n </div>\n );\n};\n\nrender(<BaseExample />);\n\n`,\n scope: [{\n name: \"_ReactPdfSign\",\n packageName: \"@kne/current-lib_react-pdf-sign\",\n importStatement: \"import * as _ReactPdfSign from \\\"@kne/react-pdf-sign\\\"\",\n component: component_1\n}]\n},{\n title: `PDF查看器`,\n description: `基础的PDF文档查看器,支持页面切换和缩放显示`,\n code: `const { PDFViewer } = _ReactPdfSign;\nconst { default: examplePdf } = _examplePdf;\n\nconst BaseExample = () => {\n return (\n <div>\n <PDFViewer url={examplePdf} />\n </div>\n );\n};\n\nrender(<BaseExample />);\n\n`,\n scope: [{\n name: \"_ReactPdfSign\",\n packageName: \"@kne/current-lib_react-pdf-sign\",\n importStatement: \"import * as _ReactPdfSign from \\\"@kne/react-pdf-sign\\\"\",\n component: component_1\n},{\n name: \"_examplePdf\",\n packageName: \"./doc/example.pdf\",\n component: component_5\n}]\n},{\n title: `PDF签名组件`,\n description: `演示PDF签名组件的API使用,包括位置获取、设置和签名文件生成`,\n code: `const { PDFSign } = _ReactPdfSign;\nconst { default: examplePdf } = _examplePdf;\nconst { default: signature } = _signature;\nconst { useRef } = React;\nconst { Flex, Button, App } = antd;\n\nconst BaseExample = () => {\n const ref = useRef();\n const ref2 = useRef();\n const { modal } = App.useApp();\n return (\n <Flex vertical gap={24}>\n <Flex vertical gap={8}>\n <Flex gap={8}>\n <Button\n onClick={() => {\n const location = ref.current.getLocation();\n modal.info({\n title: '签名位置',\n content: <pre>{JSON.stringify(location, null, 2)}</pre>\n });\n }}>\n 获取签名位置\n </Button>\n <Button\n onClick={() => {\n ref.current.setLocation({\n size: {\n width: 200,\n height: 50,\n x: 240,\n y: 47\n },\n scaleX: 1,\n scaleY: 1,\n x: 240,\n y: 47\n });\n }}>\n 设置签名位置\n </Button>\n <Button\n onClick={() => {\n const pdfSignature = ref.current.getPdfSignature();\n modal.info({\n title: 'PDF签名信息',\n content: <pre style={{ 'white-space': 'break-spaces' }}>{JSON.stringify(pdfSignature, null, 2)}</pre>\n });\n }}>\n 获取PDF签名信息\n </Button>\n </Flex>\n <PDFSign url={examplePdf} ref={ref} />\n </Flex>\n <Flex vertical gap={8}>\n <div>\n <Button\n onClick={async () => {\n const blob = await ref2.current.sign();\n const link = document.createElement('a');\n const url = URL.createObjectURL(blob);\n link.href = url;\n link.download = 'signed-document.pdf';\n link.click();\n URL.revokeObjectURL(url);\n }}>\n 生成签名文件\n </Button>\n </div>\n <PDFSign url={examplePdf} signature={signature} ref={ref2} />\n </Flex>\n </Flex>\n );\n};\n\nrender(<BaseExample />);\n\n`,\n scope: [{\n name: \"_ReactPdfSign\",\n packageName: \"@kne/current-lib_react-pdf-sign\",\n importStatement: \"import * as _ReactPdfSign from \\\"@kne/react-pdf-sign\\\"\",\n component: component_1\n},{\n name: \"_examplePdf\",\n packageName: \"./doc/example.pdf\",\n component: component_5\n},{\n name: \"_signature\",\n packageName: \"./doc/signature.png\",\n component: component_7\n},{\n name: \"antd\",\n packageName: \"antd\",\n component: component_2\n}]\n},{\n title: `手写签名画板`,\n description: `展示useSignature Hook的使用,打开手写签名模态框`,\n code: `const { useSignature } = _ReactPdfSign;\nconst { Button } = antd;\n\nconst BaseExample = () => {\n const modal = useSignature();\n return (\n <div>\n <Button\n onClick={() => {\n modal({\n onSuccess: file => {\n console.log(file);\n }\n });\n }}>\n 签名\n </Button>\n </div>\n );\n};\n\nrender(<BaseExample />);\n\n`,\n scope: [{\n name: \"_ReactPdfSign\",\n packageName: \"@kne/current-lib_react-pdf-sign\",\n importStatement: \"import * as _ReactPdfSign from \\\"@kne/react-pdf-sign\\\"\",\n component: component_1\n},{\n name: \"antd\",\n packageName: \"antd\",\n component: component_2\n}]\n}]\n }\n};\nexport default readmeConfig;\n","import ReactPdfSign from '@components/react-pdf-sign/README.md';export default {ReactPdfSign};\nexport const manifest = {\"name\":\"react-pdf-sign\",\"version\":\"1.0.0\",\"open-version\":true,\"public-url\":\"/react-pdf-sign\",\"modules\":[{\"name\":\"react-pdf-sign\",\"baseDir\":\"/home/runner/work/react-pdf-sign/react-pdf-sign\",\"description\":\"这是一个功能强大的 React PDF 签名组件库,专为需要在 PDF 文档上添加电子签名的应用场景而设计。该组件库提供了灵活的签名解决方案,支持即时签名添加和预定义签名区域两种模式\",\"packageName\":\"@kne/react-pdf-sign\"}]};"],"names":["ReactPdfSign","name","summary","description","packageName","api","example","isFull","className","style","list","title","code","scope","importStatement","component","manifest"],"ignoreList":[],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_kne_components_react_pdf_sign=self.webpackChunk_kne_components_react_pdf_sign||[]).push([[379],{20816:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(82284);function o(e){var t=function(e,t){if("object"!=(0,n.A)(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,t||"default");if("object"!=(0,n.A)(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==(0,n.A)(t)?t:t+""}},64467:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(20816);function o(e,t,r){return(t=(0,n.A)(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}},82284:(e,t,r)=>{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}r.d(t,{A:()=>n})},89379:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(64467);function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach(function(t){(0,n.A)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}}}]);
2
+ //# sourceMappingURL=379.87d72b93.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/js/379.87d72b93.chunk.js","mappings":"gLAEA,SAASA,EAAcC,GACrB,IAAIC,ECFN,SAAqBD,EAAGE,GACtB,GAAI,WAAY,OAAQF,KAAOA,EAAG,OAAOA,EACzC,IAAIG,EAAIH,EAAEI,OAAOC,aACjB,QAAI,IAAWF,EAAG,CAChB,IAAIF,EAAIE,EAAEG,KAAKN,EAAGE,GAAK,WACvB,GAAI,WAAY,OAAQD,GAAI,OAAOA,EACnC,MAAM,IAAIM,UAAU,+CACtB,CACA,OAAQ,WAAaL,EAAIM,OAASC,QAAQT,EAC5C,CDPUK,CAAYL,EAAG,UACvB,MAAO,WAAY,OAAQC,GAAKA,EAAIA,EAAI,EAC1C,C,kDEJA,SAASS,EAAgBP,EAAGD,EAAGF,GAC7B,OAAQE,GAAI,OAAcA,MAAOC,EAAIQ,OAAOC,eAAeT,EAAGD,EAAG,CAC/DW,MAAOb,EACPc,YAAY,EACZC,cAAc,EACdC,UAAU,IACPb,EAAED,GAAKF,EAAGG,CACjB,C,kBCRA,SAASc,EAAQC,GAGf,OAAOD,EAAU,mBAAqBb,QAAU,iBAAmBA,OAAOe,SAAW,SAAUD,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAK,mBAAqBd,QAAUc,EAAEE,cAAgBhB,QAAUc,IAAMd,OAAOiB,UAAY,gBAAkBH,CACpH,EAAGD,EAAQC,EACb,C,kECPA,SAASI,EAAQnB,EAAGD,GAClB,IAAIF,EAAIW,OAAOY,KAAKpB,GACpB,GAAIQ,OAAOa,sBAAuB,CAChC,IAAIN,EAAIP,OAAOa,sBAAsBrB,GACrCD,IAAMgB,EAAIA,EAAEO,OAAO,SAAUvB,GAC3B,OAAOS,OAAOe,yBAAyBvB,EAAGD,GAAGY,UAC/C,IAAKd,EAAE2B,KAAKC,MAAM5B,EAAGkB,EACvB,CACA,OAAOlB,CACT,CACA,SAAS6B,EAAe1B,GACtB,IAAK,IAAID,EAAI,EAAGA,EAAI4B,UAAUC,OAAQ7B,IAAK,CACzC,IAAIF,EAAI,MAAQ8B,UAAU5B,GAAK4B,UAAU5B,GAAK,CAAC,EAC/CA,EAAI,EAAIoB,EAAQX,OAAOX,IAAI,GAAIgC,QAAQ,SAAU9B,IAC/C,OAAeC,EAAGD,EAAGF,EAAEE,GACzB,GAAKS,OAAOsB,0BAA4BtB,OAAOuB,iBAAiB/B,EAAGQ,OAAOsB,0BAA0BjC,IAAMsB,EAAQX,OAAOX,IAAIgC,QAAQ,SAAU9B,GAC7IS,OAAOC,eAAeT,EAAGD,EAAGS,OAAOe,yBAAyB1B,EAAGE,GACjE,EACF,CACA,OAAOC,CACT,C","sources":["../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js"],"sourcesContent":["import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nexport { _objectSpread2 as default };"],"names":["toPropertyKey","t","i","r","e","Symbol","toPrimitive","call","TypeError","String","Number","_defineProperty","Object","defineProperty","value","enumerable","configurable","writable","_typeof","o","iterator","constructor","prototype","ownKeys","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","push","apply","_objectSpread2","arguments","length","forEach","getOwnPropertyDescriptors","defineProperties"],"ignoreList":[],"sourceRoot":""}