Signature_pad: рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 5 рдлрд╝рд░ре░ 2018  ┬╖  20рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: szimek/signature_pad

рд╡рд┐рд╡рд░рдг рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдореБрдЭреЗ рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
import * as SignaturePad from 'signature_pad';

рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрд╕реЗ рдорд╛рдиреНрдп рдорд╛рдирдиреЗ рд╕реЗ рдЗрдВрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рд╣реИред рдХреГрдкрдпрд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВред

рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣рд╛рдВ рдПрдХ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлрд╝реНрд▓реЛ рд╡рд┐рд╖рдп рд╣реИ ред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВрдиреЗ рдЕрднреА рдПрдХ рдмреАрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдШреЛрд╖рдгрд╛ рдлрд╛рдЗрд▓реЗрдВ рдЕрдм рдкреБрд╕реНрддрдХрд╛рд▓рдп рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИрдВред рдЖрдк рдЗрд╕реЗ yarn add signature_pad@beta рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕реНрд░реЛрдд рдХреЛрдб рдЕрднреА рднреА рдХреЗрд╡рд▓ typescript рд╢рд╛рдЦрд╛ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ ред

рдпрд╣ рдЕрднреА рднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрдпрд╛рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕реЗ рд╡реЗрдмрдкреИрдХ 4 рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 2.7.2 рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдореИрдВ рдЗрд╕реЗ import SignaturePad from 'signature_pad' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реВрдВред

рдХреБрдЫ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдЕрдЧрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЕрдЧрд░ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЖрджрд┐ред

рд╕рднреА 20 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрджрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рд╕реАрдзреЗ signature_pad/dist/signature_pad.mjs рд╕реЗ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдЧрд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ -

@szimek рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рдПрдХ .tsx рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

import * as SignaturePad from 'signature_pad'; рджреЗрддрд╛ рд╣реИ рд╕рд┐рдЧреНрдиреЗрдЪрд░рдкреИрдб рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдирд╣реАрдВ рд╣реИ

import * as SignaturePad from 'signature_pad/dist/signature_pad.mjs'; рджреЗрддрд╛ рд╣реИ рд╕рд┐рдЧреНрдиреЗрдЪрд░рдкреИрдб рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдирд╣реАрдВ рд╣реИ

const SignaturePad = require('signature_pad'); рджреЗрддрд╛ рд╣реИ рд╕рд┐рдЧреНрдиреЗрдЪрд░рдкреИрдб рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдирд╣реАрдВ рд╣реИ

import SignaturePad from 'signature_pad'; рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИ : ...node_modules/@types/signature_pad/index.d.ts' рдПрдХ рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рд╣реИред

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ SignaturePad рдЪрд░ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ? signature_pad/dist/signature_pad.mjs рдореЗрдВ рдХреЛрдб рдХреЛ рдХреЗрд╡рд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрдпрд╛рдд рдХреЗ рд╕рд╛рде ES6 рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдмрдВрдбрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ рддрдм рддрдХ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрдм рддрдХ рдХрд┐ TS рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрдпрд╛рдд рдХреЛ рд╕рдВрднрд╛рд▓ рдирд╣реАрдВ рд▓реЗрддрд╛ред

@szimek TS рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрдпрд╛рдд рдХреЛ рдареАрдХ рд╕реЗ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ, рд╕рдорд╕реНрдпрд╛ @types/signature_pad index.d.ts рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╣реИред

рд▓реЗрдХрд┐рди рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдШреЛрд╖рдгрд╛ рдлрд╛рдЗрд▓ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

@szimek рдпрд╣ рдирд╣реАрдВ рд╣реИ? рдлрд┐рд░ рдЬрдм рдЖрдк install @types/signature_pad --save-dev рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЯреАрдПрд╕ рдШреЛрд╖рдгрд╛ рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрддреА рд╣реИрдВред рдХреНрдпрд╛ рд╡реЗ рд╡рд╣реА рд▓реЛрдЧ рдирд╣реАрдВ рдмрдиреЗ рд╣реИрдВ ??

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛;) рдЖрдк рдпрд╣рд╛рдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: https://www.jsdelivr.com/package/npm/signature_padред

@szimek рдореИрдВрдиреЗ @ рдЪрд░рд┐рддреНрд░ рдХреА рд╡рдЬрд╣ рд╕реЗ рдкреВрд░реА рдЗрдВрд╕реНрдЯреЙрд▓ рд▓рд╛рдЗрди рдирд╣реАрдВ рджрд┐рдЦрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреА рдЯрд┐рдкреНрдкрдгреА рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдореВрд▓ рд░реВрдк рд╕реЗ рдпрджрд┐ рдЖрдк install @types/signature_pad --save-dev , рддреЛ рдЖрдк @types/signature_pad рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рджреЗрдЦреЗрдВрдЧреЗред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреМрди рдХрд░ рд░рд╣рд╛ рд╣реИ? рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЙрдирд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреИрдХреЗрдЬ рдореЗрдВ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ

рдЕрдЧрд░ рдореИрдВ рдШреЛрд╖рдгрд╛ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкрдврд╝рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдЗрд╕реЗ рдЖрдЬрдорд╛рдпрд╛ рдирд╣реАрдВ, рдореИрдВ рдЕрднреА рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИ):
import { SignaturePad } from 'signature_pad';

@strongui рдореБрдЭреЗ рдЖрдкрдХреЗ рдЬреИрд╕реА рд╣реА рдЧрд▓рддреА рдорд┐рд▓реАред рдореИрдВрдиреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рдм рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА,
рдореИрдВрдиреЗ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ @szimek рдХреА рднреА рдХреЛрд╢рд┐рд╢ рдХреАред рдмрд┐рд▓реНрдХреБрд▓ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдореИрдВ рдЕрднреА JS рдлрд╛рдЗрд▓ рдореЗрдВ рд╕рд┐рдЧреНрдиреЗрдЪрд░ рдкреИрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЬрдЧрд╣ рдХреЛ TS . рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛
рдореИрдВ рдиреЛрдб рд╕рдВрд╕реНрдХрд░рдг v6.11.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ рд╕рдВрд╕реНрдХрд░рдг v2.6.2 рд╣реИ
npm version { npm: '3.10.10', ares: '1.10.1-DEV', node: '6.11.2', zlib: '1.2.11' }

рдореИрдВрдиреЗ рдЕрднреА рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 2.7.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

index.ts

import SignaturePad from 'signature_pad';

new SignaturePad(document.querySelector('canvas'));

index.html

<html>
  <body>  
    <canvas style="border: 2px solid #000"></canvas>
    <script src="bundle.js"></script>
  </body>
</html>

tsconfig.json

{
  "compilerOptions": {
    "outDir": ".",
    "noImplicitAny": true,
    "module": "es6",
    "target": "es3"
  }
}

webpack.config.js

module.exports = {
  entry: './index.js',  
  output: { filename: 'bundle.js' },
  module: {
    rules: [
      {
        test: /\.ts$/,
        use: 'ts-loader',
        exclude: /node_modules/
      }
    ]
  },
  resolve: {
    extensions: [ '.ts', '.js' ]
  }
};

yarn add signature_pad typescript webpack ts-loader && yarn run webpack рдЪрд▓рд╛рдПрдБред рдлрд┐рд░ index.html рдЦреЛрд▓реЗрдВ рдФрд░ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

@szimek рдзрдиреНрдпрд╡рд╛рдж рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 2.4.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдКрдкрд░ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ @szimek рдХреА рддрд░рд╣ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИред

tsconfig.json

{
  "compilerOptions": {
    "allowSyntheticDefaultImports": true,
    "declaration": false,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": [
      "dom",
      "es2015"
    ],
    "module": "es2015",
    "moduleResolution": "node",
    "sourceMap": true,
    "target": "es5"
  },
  "include": [
    "src/**/*.ts"
  ],
  "exclude": [
    "node_modules"
  ],
  "compileOnSave": false,
  "atom": {
    "rewriteTsconfig": false
  }
}

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╕рд┐рдЧреНрдиреЗрдЪрд░рдкреИрдб рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд░рд┐рдХреНрд╡рд╛рдпрд░рдЬ рдФрд░ рд╡реЗрдмрдкреИрдХ (рдпрд╛ рд▓рд╛рд░реНрд╡рд╛ рдорд┐рдХреНрд╕) рдХреЗ рд╣реБрдб рдХреЗ рддрд╣рдд рдирд╣реАрдВ рд╣реИ , рдмрд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬреИрд╕реЗ:
new SignaturePad.default(canvas, { backgroundColor: 'rgb(255, 255, 255)' });

рдореИрдВрдиреЗ рдЕрднреА рдПрдХ рдмреАрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдШреЛрд╖рдгрд╛ рдлрд╛рдЗрд▓реЗрдВ рдЕрдм рдкреБрд╕реНрддрдХрд╛рд▓рдп рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИрдВред рдЖрдк рдЗрд╕реЗ yarn add signature_pad@beta рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕реНрд░реЛрдд рдХреЛрдб рдЕрднреА рднреА рдХреЗрд╡рд▓ typescript рд╢рд╛рдЦрд╛ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ ред

рдпрд╣ рдЕрднреА рднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрдпрд╛рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕реЗ рд╡реЗрдмрдкреИрдХ 4 рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 2.7.2 рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдореИрдВ рдЗрд╕реЗ import SignaturePad from 'signature_pad' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реВрдВред

рдХреБрдЫ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдЕрдЧрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЕрдЧрд░ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЖрджрд┐ред

рд╣рдо рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 2.8 рдРрдк рдореЗрдВ рдмреАрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдмрд╕ рдорд╛рдореВрд▓реА рдореБрджреНрджреЗ:

  • рдЯрдЪ рдПрдВрдб рдкрд░ рдПрдХ рд╣реИрдВрдбрд▓ рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдХреНрдпреЛрдВрдХрд┐ const touch = event.targetTouches[0] рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИред
  • рдпрджрд┐ рдЖрдк рдХреИрдирд╡рд╛рд╕ рдХреА toDataURL рдкрджреНрдзрддрд┐ рд╕реЗ рдорд┐рд▓рд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ toDataURL рдкрджреНрдзрддрд┐ рдореЗрдВ рдЗрд╕рдХреЗ рддрд░реНрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред

@StevenBarnettST рдлрд┐рдХреНрд╕реНрдб! рдЗрди рдореБрджреНрджреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдХрд▓ рдореИрдВ рдПрдХ рдирдпрд╛ рдмреАрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд░реВрдБрдЧрд╛ред

рд╕реНрд╡рдд: рдкреВрд░реНрдг рдФрд░ рдЯреАрдПрд╕ рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рд╣рд╕реНрддрд╛рдХреНрд╖рд░рдкреИрдб рдХреЗ рдкреНрд░рдХрд╛рд░/рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдмрд╛рдзреНрдп рдХрд░рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИ?

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╕рд┐рдЧреНрдиреЗрдЪрд░рдкреИрдб рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд░рд┐рдХреНрд╡рд╛рдпрд░рдЬ рдФрд░ рд╡реЗрдмрдкреИрдХ (рдпрд╛ рд▓рд╛рд░реНрд╡рд╛ рдорд┐рдХреНрд╕) рдХреЗ рд╣реБрдб рдХреЗ рддрд╣рдд рдирд╣реАрдВ рд╣реИ , рдмрд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬреИрд╕реЗ:
new SignaturePad.default(canvas, { backgroundColor: 'rgb(255, 255, 255)' });

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдмрд╣реБрдд - рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж! (рд╕рд┐рдореНрдлрдиреА рд╡реЗрдмрдкреИрдХ рдПрдирдХреЛрд░)

рдореИрдВрдиреЗ рдЗрд╕реЗ рдХрд╛рдо рдкрд░ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд┐рдпрд╛:
var SignaturePad = require('signature_pad/dist/signature_pad.js');

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕