рдХреЛрдгреАрдп 7 w/рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.2.4 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдЕрдм рдЬрдм рднреА рдореИрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд┐рд▓ рд░рд╣реЗ рд╣реИрдВ:
import swal from 'sweetalert';
swal({ ... });
рдиреЛрдб_рдореЙрдбреНрдпреВрд▓реНрд╕/рд╕реНрд╡реАрдЯрд▓рд╛рд░реНрдЯ/рдЯрд╛рдЗрдкрд┐рдВрдЧ/рд╕реНрд╡реАрдЯрд▓реЗрд░реНрдЯ.рдбреА.рдЯреАрдПрд╕(4,9) рдореЗрдВ рддреНрд░реБрдЯрд┐: рддреНрд░реБрдЯрд┐ рдЯреАрдПрд╕2403: рдмрд╛рдж рдХреА рдЪрд░ рдШреЛрд╖рдгрд╛рдУрдВ рдореЗрдВ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡реЗрд░рд┐рдПрдмрд▓ 'рд╕реНрд╡рд╛рд▓' рдЯрд╛рдЗрдкрдСрдлрд╝ рдЗрдВрдкреЛрд░реНрдЯ ("рд╕реА:/рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕/рдореА/рдмреНрд░рд╛рдЙрдЬрд╝рд░/рдиреЛрдб_рдореЙрдбреНрдпреВрд▓реНрд╕/рд╕реНрд╡реАрдЯрд▓рд╛рд░реНрдЯ/рдЯрд╛рдЗрдкрд┐рдВрдЧ/рд╕реНрд╡реАрдЯрд▓рд╛рд░реНрдЯ")' рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ 'рд╕реНрд╡реАрдЯ рдЕрд▓рд░реНрдЯ' рдЯрд╛рдЗрдк рд╣реИред
рдЕрдЧрд░ рдореИрдВ node_modules/sweetalert/typings/sweetalert.d.ts
рд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ...
import swal, { SweetAlert } from "./core";
declare global {
const swal: SweetAlert;
const sweetAlert: SweetAlert;
}
export default swal;
export as namespace swal;
... рдкреНрд░рддрд┐ ...
import swal, { SweetAlert } from "./core";
export default swal;
export as namespace swal;
... рдпрд╣ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред
рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?
рд╡рд╣реА рдореБрджреНрджрд╛, рд╡рд╣реА рд╕реНрдерд┐рддрд┐ред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдХреЗрд╡рд▓ export as namespace swal;
рд▓рд╛рдЗрди рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рд╕реЗ рднреА рдпрд╣ рд╕рдВрдХрд▓рд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдХрд┐рд╕реА рднреА рд╕реБрд░рд╛рдЧ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪреЗрдВрдЬрд▓реЙрдЧ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ ...
рд╡рд╣реА рдореБрджреНрджрд╛, рд╡рд╣реА рд╕реНрдерд┐рддрд┐ред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдХреЗрд╡рд▓
export as namespace swal;
рд▓рд╛рдЗрди рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рд╕реЗ рднреА рдпрд╣ рд╕рдВрдХрд▓рд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдХрд┐рд╕реА рднреА рд╕реБрд░рд╛рдЧ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪреЗрдВрдЬрд▓реЙрдЧ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ ...
рд╡рд╣реА рдореБрджреНрджрд╛
рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛
рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд╕рдорд╛рдзрд╛рди рд╕рд╣реА рд╣реИред
рд╡рд╣реА рдореБрджреНрджрд╛ред
рд╕рд╛рде рд╣реА рдПрдХ рд╣реА рдореБрджреНрджрд╛ред рд╕реАрдЖрдИ рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ рдЕрд╕рдлрд▓ рдмрдирд╛рддрд╛ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рд╣рдЯрд╛рдирд╛ рд╣реЛрдЧрд╛:
рдУрдкрдирдмреАрдПрд╕рдбреА рдХреЗ рддрд╣рдд рдЪрд▓рддреЗ рд╕рдордп рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рд╣рд╛рдВ, рдореИрдВ рдореБрдЦреНрдпрдзрд╛рд░рд╛ рдХреЗ рдУрдПрд╕ рдирд╣реАрдВ рдЬрд╛рдирддрд╛, рд▓реЗрдХрд┐рди рдЙрдкрд▓рдмреНрдз рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрд╡реАрдЯрд▓рд░реНрдЯ рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рдЕрдиреБрдкрдпреЛрдЧреА рдмрдирд╛рддрд╛ рд╣реИ :(
рдУрдкрдирдмреАрдПрд╕рдбреА рдХреЗ рддрд╣рдд рдЪрд▓рддреЗ рд╕рдордп рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рд╣рд╛рдВ, рдореИрдВ рдореБрдЦреНрдпрдзрд╛рд░рд╛ рдХреЗ рдУрдПрд╕ рдирд╣реАрдВ рдЬрд╛рдирддрд╛, рд▓реЗрдХрд┐рди рдЙрдкрд▓рдмреНрдз рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрд╡реАрдЯрд▓рд░реНрдЯ рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рдЕрдиреБрдкрдпреЛрдЧреА рдмрдирд╛рддрд╛ рд╣реИ :(
@ t4t5 рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдПрдХ рдирдЬрд╝рд░
рдПрдВрдЧреБрд▓рд░ 7 рдХреЗ рд╕рд╛рде рднреА рдЗрд╕рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВ
рдкрд░рд┐рднрд╛рд╖рд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдкрд░ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░? рдкреНрд░рддреНрдпреЗрдХ рдХреНрд▓реЛрди/рдПрдирдкреАрдПрдо рдЗрдВрд╕реНрдЯреЙрд▓ рдХреЗ рдмрд╛рдж рдРрд╕рд╛ рдХрд░рдирд╛ рдпрд╛рдж рд░рдЦрдирд╛ рдереЛрдбрд╝рд╛ рдкрд░реЗрд╢рд╛рдиреА рднрд░рд╛ рд╣реЛрддрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
@ рдмреЛрдЧрджрд╛рди-рдХреИрд▓рд╛рдкреЙрдб рдпрд╣рд╛рдВ рдореИрдВ рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рддрд╛рдХрд┐ рд╣рдорд╛рд░рд╛ рд╕реАрдЖрдИ рдмрд┐рд▓реНрдб рд╡рд┐рдлрд▓ рди рд╣реЛ:
sweetalert.min.js
рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВ)редsweetalert.min.js
рдХреЛ src/assets/scripts
рдореЗрдВ рд░рдЦреЗрдВредsrc/assets/scripts/sweetalert.min.js
рдореЗрдВ scripts
рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ angular.json
declare var swal: any;
рдЬреЛрдбрд╝реЗрдВредswal
рдпрд╛рдиреА return swal({...})
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрд╣реАрдВ рднреА Sweetalert рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВnpm uninstall sweetalert --save
рдирдорд╕реНрддреЗ,
рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдкреНрд░рдпрд╛рд╕ рд╕реЗ рдмрдЪрд╛рдПрдВ рдФрд░ рд╕реНрд╡реАрдЯрд▓рд░реНрдЯ 2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ https://sweetalert2.github.io/
рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд╕рд╛рде рдХреЛрдИ рдЕрдкрдбреЗрдЯ?
рдирдорд╕реНрддреЗ,
рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдкреНрд░рдпрд╛рд╕ рд╕реЗ рдмрдЪрд╛рдПрдВ рдФрд░ рд╕реНрд╡реАрдЯрд▓рд░реНрдЯ 2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ https://sweetalert2.github.io/
рдЗрд╕рдореЗрдВ 3 рдмрдЯрди рдпрд╛ рдЕрдзрд┐рдХ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИ?
@DVGalarza рдпрд╣ рд╕рдорд╛рдзрд╛рди рдореЗрд░реЗ рдХрд╛рдо рдирд╣реАрдВ рдЖрдпрд╛ред рд╕рдВрджрд░реНрдн рддреНрд░реБрдЯрд┐: "рд╕реНрд╡рд╛рд▓ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ" рдЬреЛ рдореБрдЭреЗ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред
@alvarofelipe12 рдЬрд┐рд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдк 'swal' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдХреНрдпрд╛ рдЖрдкрдиреЗ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ (рдЖрдпрд╛рдд рдХреЗ рдиреАрдЪреЗ) declare var swal: any;
рдЬреЛрдбрд╝рд╛ рд╣реИ? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдпрд╣ рднреА рдЬрд╛рдВрдЪ рд▓реЗрдВ рдХрд┐ sweetalert.min.js
рдХреЛ angular.json
рдХреЗ 'рд╕реНрдХреНрд░рд┐рдкреНрдЯ' рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдареАрдХ рд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдХреЛрдгреАрдп 7 w/рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.2.4 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдЕрдм рдЬрдм рднреА рдореИрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд┐рд▓ рд░рд╣реЗ рд╣реИрдВ:
import swal from 'sweetalert'; swal({ ... });
рдиреЛрдб_рдореЙрдбреНрдпреВрд▓реНрд╕/рд╕реНрд╡реАрдЯрд▓рд╛рд░реНрдЯ/рдЯрд╛рдЗрдкрд┐рдВрдЧ/рд╕реНрд╡реАрдЯрд▓реЗрд░реНрдЯ.рдбреА.рдЯреАрдПрд╕(4,9) рдореЗрдВ рддреНрд░реБрдЯрд┐: рддреНрд░реБрдЯрд┐ рдЯреАрдПрд╕2403: рдмрд╛рдж рдХреА рдЪрд░ рдШреЛрд╖рдгрд╛рдУрдВ рдореЗрдВ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡реЗрд░рд┐рдПрдмрд▓ 'рд╕реНрд╡рд╛рд▓' рдЯрд╛рдЗрдкрдСрдлрд╝ рдЗрдВрдкреЛрд░реНрдЯ ("рд╕реА:/рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕/рдореА/рдмреНрд░рд╛рдЙрдЬрд╝рд░/рдиреЛрдб_рдореЙрдбреНрдпреВрд▓реНрд╕/рд╕реНрд╡реАрдЯрд▓рд╛рд░реНрдЯ/рдЯрд╛рдЗрдкрд┐рдВрдЧ/рд╕реНрд╡реАрдЯрд▓рд╛рд░реНрдЯ")' рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ 'рд╕реНрд╡реАрдЯ рдЕрд▓рд░реНрдЯ' рдЯрд╛рдЗрдк рд╣реИред
рдЕрдЧрд░ рдореИрдВ
node_modules/sweetalert/typings/sweetalert.d.ts
рд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ...import swal, { SweetAlert } from "./core"; declare global { const swal: SweetAlert; const sweetAlert: SweetAlert; } export default swal; export as namespace swal;
... рдкреНрд░рддрд┐ ...
import swal, { SweetAlert } from "./core"; export default swal; export as namespace swal;
... рдпрд╣ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред
рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?
рдореЗрд░рд╛ рд╡рд┐рдХрд▓реНрдк рдХреЙрдиреНрд╕реНрдЯ рд╕реНрд╡рд╛рд▓ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рдХреЙрдиреНрд╕ _swal рдХрд░рдирд╛ рдерд╛
рдЖрдпрд╛рдд swal, { SweetAlert } "./core" рд╕реЗ;
рд╡реИрд╢реНрд╡рд┐рдХ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ {
const _swal: SweetAlert;
рдХреЙрдиреНрд╕реНрдЯ рд╕реНрд╡реАрдЯрдЕрд▓рд░реНрдЯ: рд╕реНрд╡реАрдЯрдЕрд▓рд░реНрдЯ;
}
рдирд┐рд░реНрдпрд╛рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрд╡рд╛рд▓;
рдиреЗрдорд╕реНрдкреЗрд╕ рд╕реНрд╡рд╛рд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ;
рд╣реИрд▓реЛ!, рд╡рд╣реА рдореБрджреНрджрд╛
рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕реНрд╡реАрдЯрд▓рд░реНрдЯ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдХреЗ рдареАрдХ рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ src/node_modules/sweetalert/index.d.ts
рдирд╛рдо рдХреЗ src dir рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реА рд╣реИ
//this file is needed because the sweetalert typings need to be overwritten because they are broken
//the real fix here is to stop using sweetalert
declare global {
const _swal: any;
const sweetAlert: any;
}
export default _swal;
export as namespace swal;
рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рдмрджрд▓рдХрд░ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛:
import swal from 'sweetalert';
рдкреНрд░рддрд┐:
const swal = require('sweetalert');
рдпрд╛ (рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде):
import { SweetAlert } from 'sweetalert/typings/core';
const swal: SweetAlert = require('sweetalert');
рдореБрдЭреЗ рдХреЛрдгреАрдп 10 рдореЗрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред рд╣рд╛рдБ, рд╕рдорд╕реНрдпрд╛ sweetalert.d.ts
рдореЗрдВ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реА рдЖрдИрдбреАрдИ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдмреБрд░рд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ:
@drmencos рдХреНрдпрд╛ рд╡рд╣ Node.js рдХреЗ рд▓рд┐рдП рд╣реИ? require
рдореЗрд░реЗ рд▓рд┐рдП рдХреЛрдгреАрдп 10 рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ: node_modules> Sweetalert> рдЯрд╛рдЗрдкрд┐рдВрдЧ> Sweetalert.d.ts
рдЯрд┐рдкреНрдкрдгреА: const swal: SweetAlert;
рдЖрдпрд╛рдд swal, {SweetAlert} "./core" рд╕реЗ;
рд╡реИрд╢реНрд╡рд┐рдХ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ {
// рдХреЙрдиреНрд╕реНрдЯ рд╕реНрд╡рд╛рд▓: рд╕реНрд╡реАрдЯрдЕрд░реНрдЯ;
рдХреЙрдиреНрд╕реНрдЯ рд╕реНрд╡реАрдЯрдЕрд▓рд░реНрдЯ: рд╕реНрд╡реАрдЯрдЕрд▓рд░реНрдЯ;
}
рдирд┐рд░реНрдпрд╛рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрд╡рд╛рд▓;
рдиреЗрдорд╕реНрдкреЗрд╕ рд╕реНрд╡рд╛рд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ;
import 'sweetalert'
рдХреЛ require('sweetalert')
рдмрджрд▓рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдирдорд╕реНрддреЗ,
рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдкреНрд░рдпрд╛рд╕ рд╕реЗ рдмрдЪрд╛рдПрдВ рдФрд░ рд╕реНрд╡реАрдЯрд▓рд░реНрдЯ 2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ https://sweetalert2.github.io/