@modul/mbui 0.0.27-beta-webpack-6d7a3f6c → 0.0.27-beta-fix-pv-53496-60a0aad0
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/1476644af6cec1bd02a8.svg +1 -0
- package/dist/2deb3e3ba437d0581b29.svg +1 -0
- package/dist/302a770df56183f57b8f.svg +1 -0
- package/dist/49544592ad8cdafd48da.svg +1 -0
- package/dist/5353644099f4ce1b7bfb.svg +1 -0
- package/dist/53d3b89e5caf3efddf2f.svg +1 -0
- package/dist/8b4291644fa951602fbf.svg +1 -0
- package/dist/BankCardImage/BankCardImage.d.ts +8 -0
- package/dist/BankCardImage/index.d.ts +1 -0
- package/dist/BankCardImage/index.js +1 -0
- package/dist/Calendar/index.js +1 -1
- package/dist/DatePicker/index.js +1 -1
- package/dist/Input/index.js +1 -1
- package/dist/Input-OTP/Input.d.ts +2 -2
- package/dist/assets/css/global.css +1 -0
- package/{src → dist}/assets/fonts/Roboto-Italic.ttf +0 -0
- package/{src → dist}/assets/fonts/Roboto.ttf +0 -0
- package/dist/e02563d712f5569fb640.svg +1 -0
- package/dist/fa6c9ce5bcdc19d33629.svg +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +11 -11
- package/package.json +11 -12
- package/dist/5df09ceadd47d11f8760.woff2 +0 -0
- package/dist/@/config/button.d.ts +0 -78
- package/dist/@/config/index.d.ts +0 -223
- package/dist/@/config/index.js +0 -1
- package/dist/@/config/label.d.ts +0 -90
- package/dist/ac50880e253005087d8a.woff2 +0 -0
- package/dist/index.css +0 -1
- package/src/@/lib/utils.ts +0 -7
- package/src/Alert/Alert.tsx +0 -81
- package/src/Alert/index.ts +0 -1
- package/src/AlertDialog/AlertDialog.tsx +0 -137
- package/src/AlertDialog/index.ts +0 -13
- package/src/Audio/Audio.styl +0 -115
- package/src/Audio/Audio.tsx +0 -359
- package/src/Audio/index.ts +0 -4
- package/src/Audio/types.ts +0 -40
- package/src/Badge/Badge.tsx +0 -58
- package/src/Badge/index.ts +0 -1
- package/src/Base/Input/Base.tsx +0 -37
- package/src/Base/Input/Input.tsx +0 -42
- package/src/Base/Input/index.ts +0 -3
- package/src/Base/Input/types.ts +0 -11
- package/src/Base/Links/TextLink.tsx +0 -16
- package/src/Base/Links/index.ts +0 -3
- package/src/BottomNavigation/BottomNavigation.tsx +0 -62
- package/src/BottomNavigation/index.ts +0 -1
- package/src/Button/Button.tsx +0 -124
- package/src/Button/ButtonWidget.tsx +0 -67
- package/src/Button/index.ts +0 -2
- package/src/Calendar/Calendar.tsx +0 -61
- package/src/Calendar/index.ts +0 -1
- package/src/Chat/MessageTyping.tsx +0 -61
- package/src/Chat/index.ts +0 -1
- package/src/Checkbox/Checkbox.tsx +0 -28
- package/src/Checkbox/index.ts +0 -1
- package/src/Chip/Chip.tsx +0 -55
- package/src/Chip/index.ts +0 -1
- package/src/Collapsible/AccountCollapsible.tsx +0 -79
- package/src/Collapsible/Collapsible.tsx +0 -13
- package/src/Collapsible/index.ts +0 -8
- package/src/DatePicker/DatePicker.tsx +0 -41
- package/src/DatePicker/index.ts +0 -1
- package/src/DigitKeyPad/DigitKeyPad.tsx +0 -69
- package/src/DigitKeyPad/index.ts +0 -1
- package/src/Drawer/Drawer.tsx +0 -89
- package/src/Drawer/index.ts +0 -7
- package/src/FavoritePyments/FavoritePaymentsList.tsx +0 -40
- package/src/FavoritePyments/index.ts +0 -1
- package/src/Form/Form.tsx +0 -154
- package/src/Form/index.ts +0 -1
- package/src/Icon/SvgIcon.tsx +0 -32
- package/src/Icon/icons/AddList.tsx +0 -19
- package/src/Icon/icons/AlertCircle.tsx +0 -18
- package/src/Icon/icons/AlertCircleSolid.tsx +0 -18
- package/src/Icon/icons/AlertDiamond.tsx +0 -18
- package/src/Icon/icons/AlertDiamondSolid.tsx +0 -18
- package/src/Icon/icons/AlertShield.tsx +0 -18
- package/src/Icon/icons/Android.tsx +0 -18
- package/src/Icon/icons/Apple.tsx +0 -18
- package/src/Icon/icons/Archive.tsx +0 -18
- package/src/Icon/icons/ArrowCircle.tsx +0 -18
- package/src/Icon/icons/ArrowDown.tsx +0 -18
- package/src/Icon/icons/ArrowLeft.tsx +0 -18
- package/src/Icon/icons/ArrowRight.tsx +0 -18
- package/src/Icon/icons/ArrowUp.tsx +0 -18
- package/src/Icon/icons/ArrowUpCorner.tsx +0 -18
- package/src/Icon/icons/ArrowsChange.tsx +0 -18
- package/src/Icon/icons/Atm.tsx +0 -18
- package/src/Icon/icons/Attach.tsx +0 -18
- package/src/Icon/icons/Bank.tsx +0 -18
- package/src/Icon/icons/Bold.tsx +0 -18
- package/src/Icon/icons/Bonus.tsx +0 -18
- package/src/Icon/icons/Building.tsx +0 -18
- package/src/Icon/icons/Calendar.tsx +0 -18
- package/src/Icon/icons/CalendarCancel.tsx +0 -18
- package/src/Icon/icons/Call.tsx +0 -18
- package/src/Icon/icons/CallEnd.tsx +0 -18
- package/src/Icon/icons/CallMissed.tsx +0 -18
- package/src/Icon/icons/Callback.tsx +0 -18
- package/src/Icon/icons/Camera.tsx +0 -18
- package/src/Icon/icons/Cancel.tsx +0 -18
- package/src/Icon/icons/CancelSolid.tsx +0 -18
- package/src/Icon/icons/Card.tsx +0 -18
- package/src/Icon/icons/CardLock.tsx +0 -18
- package/src/Icon/icons/CardRefill.tsx +0 -18
- package/src/Icon/icons/CardReissue.tsx +0 -18
- package/src/Icon/icons/CardScan.tsx +0 -18
- package/src/Icon/icons/CardToCard.tsx +0 -18
- package/src/Icon/icons/CardUnlock.tsx +0 -18
- package/src/Icon/icons/Change.tsx +0 -18
- package/src/Icon/icons/Chart.tsx +0 -18
- package/src/Icon/icons/Chat.tsx +0 -18
- package/src/Icon/icons/ChatSolid.tsx +0 -18
- package/src/Icon/icons/Check.tsx +0 -18
- package/src/Icon/icons/CheckCircle.tsx +0 -18
- package/src/Icon/icons/CheckCircleSolid.tsx +0 -18
- package/src/Icon/icons/CheckShield.tsx +0 -20
- package/src/Icon/icons/CheckSmall.tsx +0 -18
- package/src/Icon/icons/Checklist.tsx +0 -18
- package/src/Icon/icons/Circle.tsx +0 -18
- package/src/Icon/icons/Clock.tsx +0 -18
- package/src/Icon/icons/ClockSolid.tsx +0 -18
- package/src/Icon/icons/Close.tsx +0 -18
- package/src/Icon/icons/Coins.tsx +0 -18
- package/src/Icon/icons/Collapse.tsx +0 -18
- package/src/Icon/icons/Copy.tsx +0 -18
- package/src/Icon/icons/Cup.tsx +0 -18
- package/src/Icon/icons/CurrencyChange.tsx +0 -18
- package/src/Icon/icons/CurrencyTransfer.tsx +0 -18
- package/src/Icon/icons/Deposit.tsx +0 -18
- package/src/Icon/icons/Diamond.tsx +0 -18
- package/src/Icon/icons/Dislike.tsx +0 -18
- package/src/Icon/icons/DislikeSolid.tsx +0 -18
- package/src/Icon/icons/Doc.tsx +0 -18
- package/src/Icon/icons/DocCancel.tsx +0 -18
- package/src/Icon/icons/Dollar.tsx +0 -18
- package/src/Icon/icons/DoubleArrow.tsx +0 -18
- package/src/Icon/icons/DoubleTick.tsx +0 -18
- package/src/Icon/icons/Download.tsx +0 -18
- package/src/Icon/icons/Dropdown.tsx +0 -18
- package/src/Icon/icons/DropdownSmall.tsx +0 -20
- package/src/Icon/icons/DropdownSmallOld.tsx +0 -20
- package/src/Icon/icons/Dropup.tsx +0 -18
- package/src/Icon/icons/Edit.tsx +0 -18
- package/src/Icon/icons/Email.tsx +0 -18
- package/src/Icon/icons/Erase.tsx +0 -16
- package/src/Icon/icons/Excel.tsx +0 -18
- package/src/Icon/icons/Expand.tsx +0 -18
- package/src/Icon/icons/Eye.tsx +0 -18
- package/src/Icon/icons/EyeOff.tsx +0 -18
- package/src/Icon/icons/Favorite.tsx +0 -18
- package/src/Icon/icons/FavoriteSolid.tsx +0 -18
- package/src/Icon/icons/Fb.tsx +0 -18
- package/src/Icon/icons/FbCircle.tsx +0 -18
- package/src/Icon/icons/File.tsx +0 -18
- package/src/Icon/icons/FileAdd.tsx +0 -18
- package/src/Icon/icons/Files.tsx +0 -18
- package/src/Icon/icons/Filter.tsx +0 -18
- package/src/Icon/icons/Folder.tsx +0 -18
- package/src/Icon/icons/Geolocation.tsx +0 -18
- package/src/Icon/icons/Gift.tsx +0 -18
- package/src/Icon/icons/Globe.tsx +0 -18
- package/src/Icon/icons/Heart.tsx +0 -18
- package/src/Icon/icons/HeartSolid.tsx +0 -18
- package/src/Icon/icons/Help.tsx +0 -18
- package/src/Icon/icons/Home.tsx +0 -18
- package/src/Icon/icons/Housing.tsx +0 -18
- package/src/Icon/icons/Ig.tsx +0 -18
- package/src/Icon/icons/IgCircle.tsx +0 -18
- package/src/Icon/icons/Info.tsx +0 -18
- package/src/Icon/icons/InfoBook.tsx +0 -18
- package/src/Icon/icons/InfoSolid.tsx +0 -18
- package/src/Icon/icons/Italic.tsx +0 -18
- package/src/Icon/icons/Key.tsx +0 -18
- package/src/Icon/icons/Left.tsx +0 -18
- package/src/Icon/icons/Lightbulb.tsx +0 -18
- package/src/Icon/icons/Like.tsx +0 -18
- package/src/Icon/icons/LikeSolid.tsx +0 -18
- package/src/Icon/icons/Link.tsx +0 -18
- package/src/Icon/icons/Lock.tsx +0 -18
- package/src/Icon/icons/Logout.tsx +0 -18
- package/src/Icon/icons/MagicWand.tsx +0 -18
- package/src/Icon/icons/Mail.tsx +0 -18
- package/src/Icon/icons/MailSend.tsx +0 -18
- package/src/Icon/icons/Map.tsx +0 -18
- package/src/Icon/icons/MapPin.tsx +0 -18
- package/src/Icon/icons/MapPinSolid.tsx +0 -18
- package/src/Icon/icons/Menu.tsx +0 -18
- package/src/Icon/icons/Mic.tsx +0 -18
- package/src/Icon/icons/MicOff.tsx +0 -18
- package/src/Icon/icons/Minus.tsx +0 -18
- package/src/Icon/icons/MinusCircle.tsx +0 -18
- package/src/Icon/icons/MinusShort.tsx +0 -18
- package/src/Icon/icons/Moneybox.tsx +0 -18
- package/src/Icon/icons/More.tsx +0 -18
- package/src/Icon/icons/Move.tsx +0 -18
- package/src/Icon/icons/Newbie.tsx +0 -20
- package/src/Icon/icons/News.tsx +0 -18
- package/src/Icon/icons/Notes.tsx +0 -18
- package/src/Icon/icons/Notification.tsx +0 -18
- package/src/Icon/icons/Ok.tsx +0 -18
- package/src/Icon/icons/OkCircle.tsx +0 -18
- package/src/Icon/icons/Order.tsx +0 -18
- package/src/Icon/icons/OrderLoad.tsx +0 -18
- package/src/Icon/icons/OrderSend.tsx +0 -18
- package/src/Icon/icons/Pause.tsx +0 -18
- package/src/Icon/icons/PauseCircle.tsx +0 -18
- package/src/Icon/icons/Payment.tsx +0 -18
- package/src/Icon/icons/PhoneShake.tsx +0 -18
- package/src/Icon/icons/Play.tsx +0 -18
- package/src/Icon/icons/PlaySolid.tsx +0 -18
- package/src/Icon/icons/Plus.tsx +0 -18
- package/src/Icon/icons/PlusCircle.tsx +0 -18
- package/src/Icon/icons/Pos.tsx +0 -18
- package/src/Icon/icons/Print.tsx +0 -18
- package/src/Icon/icons/QrPay.tsx +0 -18
- package/src/Icon/icons/Redirect.tsx +0 -18
- package/src/Icon/icons/Refill.tsx +0 -18
- package/src/Icon/icons/Refund.tsx +0 -18
- package/src/Icon/icons/Reload.tsx +0 -19
- package/src/Icon/icons/Reply.tsx +0 -18
- package/src/Icon/icons/ReplyShape.tsx +0 -18
- package/src/Icon/icons/ReplyShapeSolid.tsx +0 -18
- package/src/Icon/icons/Request.tsx +0 -18
- package/src/Icon/icons/Right.tsx +0 -18
- package/src/Icon/icons/Route.tsx +0 -18
- package/src/Icon/icons/Ruble.tsx +0 -18
- package/src/Icon/icons/Sbp.tsx +0 -18
- package/src/Icon/icons/SbpColored.tsx +0 -46
- package/src/Icon/icons/Search.tsx +0 -18
- package/src/Icon/icons/Send.tsx +0 -18
- package/src/Icon/icons/Services.tsx +0 -17
- package/src/Icon/icons/Settings.tsx +0 -17
- package/src/Icon/icons/Share.tsx +0 -18
- package/src/Icon/icons/ShoppingCart.tsx +0 -18
- package/src/Icon/icons/Sign.tsx +0 -18
- package/src/Icon/icons/SlotMachine.tsx +0 -18
- package/src/Icon/icons/SortDown.tsx +0 -18
- package/src/Icon/icons/SortDownSolid.tsx +0 -18
- package/src/Icon/icons/SortUp.tsx +0 -18
- package/src/Icon/icons/SortUpSolid.tsx +0 -18
- package/src/Icon/icons/Stop.tsx +0 -18
- package/src/Icon/icons/Support.tsx +0 -18
- package/src/Icon/icons/Sync.tsx +0 -18
- package/src/Icon/icons/Table.tsx +0 -18
- package/src/Icon/icons/Tariffs.tsx +0 -19
- package/src/Icon/icons/Tg.tsx +0 -18
- package/src/Icon/icons/TgCircle.tsx +0 -18
- package/src/Icon/icons/Timeout.tsx +0 -18
- package/src/Icon/icons/Timer.tsx +0 -18
- package/src/Icon/icons/Transfer.tsx +0 -17
- package/src/Icon/icons/Trash.tsx +0 -18
- package/src/Icon/icons/TurnOff.tsx +0 -18
- package/src/Icon/icons/Twitter.tsx +0 -18
- package/src/Icon/icons/TwitterCircle.tsx +0 -18
- package/src/Icon/icons/Underline.tsx +0 -18
- package/src/Icon/icons/Unlink.tsx +0 -18
- package/src/Icon/icons/Unsorted.tsx +0 -18
- package/src/Icon/icons/UnsortedSolid.tsx +0 -18
- package/src/Icon/icons/Upload.tsx +0 -18
- package/src/Icon/icons/User.tsx +0 -18
- package/src/Icon/icons/UserAdd.tsx +0 -18
- package/src/Icon/icons/UserCard.tsx +0 -18
- package/src/Icon/icons/UserEdit.tsx +0 -18
- package/src/Icon/icons/UserQueue.tsx +0 -18
- package/src/Icon/icons/Viber.tsx +0 -18
- package/src/Icon/icons/ViberCircle.tsx +0 -18
- package/src/Icon/icons/ViewGrid.tsx +0 -18
- package/src/Icon/icons/ViewHorizontal.tsx +0 -18
- package/src/Icon/icons/ViewList.tsx +0 -18
- package/src/Icon/icons/ViewRows.tsx +0 -18
- package/src/Icon/icons/ViewVertical.tsx +0 -18
- package/src/Icon/icons/Vk.tsx +0 -18
- package/src/Icon/icons/VkCircle.tsx +0 -18
- package/src/Icon/icons/Wallet.tsx +0 -17
- package/src/Icon/icons/Warning.tsx +0 -18
- package/src/Icon/icons/WarningClean.tsx +0 -18
- package/src/Icon/icons/Whatsapp.tsx +0 -18
- package/src/Icon/icons/WhatsappCircle.tsx +0 -18
- package/src/Icon/icons/Wheelchair.tsx +0 -18
- package/src/Icon/icons/index.ts +0 -209
- package/src/Icon/index.ts +0 -2
- package/src/Input/Input.tsx +0 -35
- package/src/Input/InputMask.tsx +0 -36
- package/src/Input/index.ts +0 -2
- package/src/Input-OTP/Input.tsx +0 -64
- package/src/Input-OTP/index.ts +0 -3
- package/src/Label/Label.tsx +0 -20
- package/src/Label/index.ts +0 -1
- package/src/Logo/Logo.tsx +0 -22
- package/src/Logo/index.ts +0 -3
- package/src/Navbar/Navbar.tsx +0 -21
- package/src/Navbar/index.tsx +0 -2
- package/src/Page/Page.tsx +0 -43
- package/src/Page/index.ts +0 -1
- package/src/Popover/Popover.tsx +0 -64
- package/src/Popover/index.ts +0 -5
- package/src/Progress/Progress.tsx +0 -31
- package/src/Progress/index.ts +0 -1
- package/src/Select/Select.tsx +0 -19
- package/src/Select/SelectAccount.tsx +0 -101
- package/src/Select/SelectAccountCard.tsx +0 -146
- package/src/Select/SelectAsync.tsx +0 -28
- package/src/Select/SelectBase.tsx +0 -54
- package/src/Select/components/components.tsx +0 -186
- package/src/Select/components/index.tsx +0 -15
- package/src/Select/index.ts +0 -5
- package/src/Skeleton/Skeleton.tsx +0 -25
- package/src/Skeleton/index.ts +0 -1
- package/src/Slider/Slider.tsx +0 -38
- package/src/Slider/index.ts +0 -4
- package/src/Swipe2Show/Swipe2Show.tsx +0 -71
- package/src/Swipe2Show/index.ts +0 -1
- package/src/Switch/Switch.tsx +0 -59
- package/src/Switch/index.ts +0 -1
- package/src/Tabs/Tabs.tsx +0 -106
- package/src/Tabs/index.ts +0 -1
- package/src/Textarea/Textarea.tsx +0 -35
- package/src/Textarea/index.ts +0 -1
- package/src/Toaster/Toaster.tsx +0 -71
- package/src/Toaster/index.ts +0 -1
- package/src/assets/css/global.css +0 -209
- package/src/assets/images/logo/1c.svg +0 -1
- package/src/assets/images/logo/bank/emblem-white.svg +0 -1
- package/src/assets/images/logo/bank/emblem.svg +0 -1
- package/src/assets/images/logo/bank/logo-white.svg +0 -1
- package/src/assets/images/logo/bank/logo.svg +0 -1
- package/src/assets/images/logo/garant/emblem-white.svg +0 -1
- package/src/assets/images/logo/garant/emblem.svg +0 -1
- package/src/assets/images/logo/garant/logo-white.svg +0 -1
- package/src/assets/images/logo/garant/logo.svg +0 -1
- package/src/assets/images/logo/kassa/emblem-white.svg +0 -1
- package/src/assets/images/logo/kassa/emblem.svg +0 -1
- package/src/assets/images/logo/kassa/logo-white.svg +0 -1
- package/src/assets/images/logo/kassa/logo.svg +0 -1
- package/src/assets/images/logo/sbp-logo.svg +0 -1
- package/src/assets/images/statusbar.svg +0 -1
- package/src/index.ts +0 -135
- package/src/pages/payments/SmsSign/sms-sign.tsx +0 -91
- /package/{src → dist}/@/config/button.ts +0 -0
- /package/{src → dist}/@/config/index.ts +0 -0
- /package/{src → dist}/@/config/label.ts +0 -0
- /package/{src → dist}/assets/fonts/Roboto-Italic.woff2 +0 -0
- /package/{src → dist}/assets/fonts/Roboto.woff2 +0 -0
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
import * as React from "react"
|
|
2
|
-
import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog"
|
|
3
|
-
import { cn } from "../@/lib/utils"
|
|
4
|
-
import { buttonVariants } from "../../src/Button"
|
|
5
|
-
|
|
6
|
-
const AlertDialog = AlertDialogPrimitive.Root
|
|
7
|
-
|
|
8
|
-
const AlertDialogTrigger = AlertDialogPrimitive.Trigger
|
|
9
|
-
|
|
10
|
-
const AlertDialogPortal = AlertDialogPrimitive.Portal
|
|
11
|
-
|
|
12
|
-
const AlertDialogOverlay = React.forwardRef<
|
|
13
|
-
React.ElementRef<typeof AlertDialogPrimitive.Overlay>,
|
|
14
|
-
React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>
|
|
15
|
-
>(({ className, ...props }, ref) => (
|
|
16
|
-
<AlertDialogPrimitive.Overlay
|
|
17
|
-
className={cn(
|
|
18
|
-
"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
19
|
-
className
|
|
20
|
-
)}
|
|
21
|
-
{...props}
|
|
22
|
-
ref={ref}
|
|
23
|
-
/>
|
|
24
|
-
))
|
|
25
|
-
AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName
|
|
26
|
-
|
|
27
|
-
const AlertDialogContent = React.forwardRef<
|
|
28
|
-
React.ElementRef<typeof AlertDialogPrimitive.Content>,
|
|
29
|
-
React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>
|
|
30
|
-
>(({ className, ...props }, ref) => (
|
|
31
|
-
<AlertDialogPortal>
|
|
32
|
-
<AlertDialogOverlay />
|
|
33
|
-
<AlertDialogPrimitive.Content
|
|
34
|
-
ref={ref}
|
|
35
|
-
className={cn(
|
|
36
|
-
"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-input bg-dialog p-[16px] shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] rounded-md",
|
|
37
|
-
className
|
|
38
|
-
)}
|
|
39
|
-
{...props}
|
|
40
|
-
/>
|
|
41
|
-
</AlertDialogPortal>
|
|
42
|
-
))
|
|
43
|
-
AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName
|
|
44
|
-
|
|
45
|
-
const AlertDialogHeader = ({
|
|
46
|
-
className,
|
|
47
|
-
...props
|
|
48
|
-
}: React.HTMLAttributes<HTMLDivElement>) => (
|
|
49
|
-
<div
|
|
50
|
-
className={cn(
|
|
51
|
-
"flex flex-col space-y-2 text-center sm:text-left",
|
|
52
|
-
className
|
|
53
|
-
)}
|
|
54
|
-
{...props}
|
|
55
|
-
/>
|
|
56
|
-
)
|
|
57
|
-
AlertDialogHeader.displayName = "AlertDialogHeader"
|
|
58
|
-
|
|
59
|
-
const AlertDialogFooter = ({
|
|
60
|
-
className,
|
|
61
|
-
...props
|
|
62
|
-
}: React.HTMLAttributes<HTMLDivElement>) => (
|
|
63
|
-
<div
|
|
64
|
-
className={cn(
|
|
65
|
-
"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
|
|
66
|
-
className
|
|
67
|
-
)}
|
|
68
|
-
{...props}
|
|
69
|
-
/>
|
|
70
|
-
)
|
|
71
|
-
AlertDialogFooter.displayName = "AlertDialogFooter"
|
|
72
|
-
|
|
73
|
-
const AlertDialogTitle = React.forwardRef<
|
|
74
|
-
React.ElementRef<typeof AlertDialogPrimitive.Title>,
|
|
75
|
-
React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>
|
|
76
|
-
>(({ className, ...props }, ref) => (
|
|
77
|
-
<AlertDialogPrimitive.Title
|
|
78
|
-
ref={ref}
|
|
79
|
-
className={cn("text-lg font-semibold", className)}
|
|
80
|
-
{...props}
|
|
81
|
-
/>
|
|
82
|
-
))
|
|
83
|
-
AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName
|
|
84
|
-
|
|
85
|
-
const AlertDialogDescription = React.forwardRef<
|
|
86
|
-
React.ElementRef<typeof AlertDialogPrimitive.Description>,
|
|
87
|
-
React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>
|
|
88
|
-
>(({ className, ...props }, ref) => (
|
|
89
|
-
<AlertDialogPrimitive.Description
|
|
90
|
-
ref={ref}
|
|
91
|
-
className={cn("text-sm text-muted-foreground", className)}
|
|
92
|
-
{...props}
|
|
93
|
-
/>
|
|
94
|
-
))
|
|
95
|
-
AlertDialogDescription.displayName =
|
|
96
|
-
AlertDialogPrimitive.Description.displayName
|
|
97
|
-
|
|
98
|
-
const AlertDialogAction = React.forwardRef<
|
|
99
|
-
React.ElementRef<typeof AlertDialogPrimitive.Action>,
|
|
100
|
-
React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>
|
|
101
|
-
>(({ className, ...props }, ref) => (
|
|
102
|
-
<AlertDialogPrimitive.Action
|
|
103
|
-
ref={ref}
|
|
104
|
-
className={cn(buttonVariants({variant: 'primary'}), className)}
|
|
105
|
-
{...props}
|
|
106
|
-
/>
|
|
107
|
-
))
|
|
108
|
-
AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName
|
|
109
|
-
|
|
110
|
-
const AlertDialogCancel = React.forwardRef<
|
|
111
|
-
React.ElementRef<typeof AlertDialogPrimitive.Cancel>,
|
|
112
|
-
React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>
|
|
113
|
-
>(({ className, ...props }, ref) => (
|
|
114
|
-
<AlertDialogPrimitive.Cancel
|
|
115
|
-
ref={ref}
|
|
116
|
-
className={cn(
|
|
117
|
-
buttonVariants({ variant: "outline"}),
|
|
118
|
-
className
|
|
119
|
-
)}
|
|
120
|
-
{...props}
|
|
121
|
-
/>
|
|
122
|
-
))
|
|
123
|
-
AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName
|
|
124
|
-
|
|
125
|
-
export {
|
|
126
|
-
AlertDialog,
|
|
127
|
-
AlertDialogPortal,
|
|
128
|
-
AlertDialogOverlay,
|
|
129
|
-
AlertDialogTrigger,
|
|
130
|
-
AlertDialogContent,
|
|
131
|
-
AlertDialogHeader,
|
|
132
|
-
AlertDialogFooter,
|
|
133
|
-
AlertDialogTitle,
|
|
134
|
-
AlertDialogDescription,
|
|
135
|
-
AlertDialogAction,
|
|
136
|
-
AlertDialogCancel,
|
|
137
|
-
}
|
package/src/AlertDialog/index.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export {
|
|
2
|
-
AlertDialog,
|
|
3
|
-
AlertDialogPortal,
|
|
4
|
-
AlertDialogOverlay,
|
|
5
|
-
AlertDialogTrigger,
|
|
6
|
-
AlertDialogContent,
|
|
7
|
-
AlertDialogHeader,
|
|
8
|
-
AlertDialogFooter,
|
|
9
|
-
AlertDialogTitle,
|
|
10
|
-
AlertDialogDescription,
|
|
11
|
-
AlertDialogAction,
|
|
12
|
-
AlertDialogCancel,
|
|
13
|
-
} from './AlertDialog'
|
package/src/Audio/Audio.styl
DELETED
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
.player
|
|
3
|
-
display flex
|
|
4
|
-
align-items center
|
|
5
|
-
|
|
6
|
-
&__btn
|
|
7
|
-
position relative
|
|
8
|
-
margin-right 12px
|
|
9
|
-
width 40px
|
|
10
|
-
height @width
|
|
11
|
-
font-size $fz-large
|
|
12
|
-
color $cl-white
|
|
13
|
-
background-color $cl-green-3
|
|
14
|
-
border 0
|
|
15
|
-
border-radius 50%
|
|
16
|
-
outline 0
|
|
17
|
-
transition background-color .3s ease-in-out
|
|
18
|
-
|
|
19
|
-
&:hover
|
|
20
|
-
&:focus
|
|
21
|
-
background-color $cl-green-4
|
|
22
|
-
|
|
23
|
-
&:active
|
|
24
|
-
background-color $cl-green-2
|
|
25
|
-
|
|
26
|
-
[class*=icon]
|
|
27
|
-
position absolute
|
|
28
|
-
top 50%
|
|
29
|
-
left 53%
|
|
30
|
-
transform translate(-50%, -50%)
|
|
31
|
-
|
|
32
|
-
&__progress
|
|
33
|
-
position relative
|
|
34
|
-
flex-grow 1
|
|
35
|
-
|
|
36
|
-
&-buffer
|
|
37
|
-
position absolute
|
|
38
|
-
top 0
|
|
39
|
-
left 0
|
|
40
|
-
height 2px
|
|
41
|
-
background-color $ca-graphite-5
|
|
42
|
-
border-radius 1px
|
|
43
|
-
|
|
44
|
-
.ant-slider-rail
|
|
45
|
-
cursor pointer
|
|
46
|
-
height 2px
|
|
47
|
-
background-color $ca-graphite-5
|
|
48
|
-
border-radius 1px
|
|
49
|
-
|
|
50
|
-
.ant-slider-track
|
|
51
|
-
position absolute
|
|
52
|
-
top 0
|
|
53
|
-
left 0
|
|
54
|
-
height 2px
|
|
55
|
-
background-color $cl-green-2
|
|
56
|
-
border-radius 1px
|
|
57
|
-
|
|
58
|
-
.ant-slider-handle
|
|
59
|
-
margin 0
|
|
60
|
-
cursor pointer
|
|
61
|
-
position absolute
|
|
62
|
-
top -4px
|
|
63
|
-
width 10px
|
|
64
|
-
height @width
|
|
65
|
-
border-radius 0
|
|
66
|
-
border 0
|
|
67
|
-
background-color transparent
|
|
68
|
-
transform translateX(-50%)
|
|
69
|
-
&::before
|
|
70
|
-
position absolute
|
|
71
|
-
display block
|
|
72
|
-
content ''
|
|
73
|
-
width 2px
|
|
74
|
-
height 8px
|
|
75
|
-
left 50%
|
|
76
|
-
top 50%
|
|
77
|
-
transform translate(-50%, -50%)
|
|
78
|
-
background-color $cl-green-2
|
|
79
|
-
border-radius 1px
|
|
80
|
-
|
|
81
|
-
.player__time
|
|
82
|
-
margin-top 14px
|
|
83
|
-
|
|
84
|
-
& + .player__time
|
|
85
|
-
margin-left 12px
|
|
86
|
-
|
|
87
|
-
&__range
|
|
88
|
-
position relative
|
|
89
|
-
height 2px
|
|
90
|
-
border-radius 1px
|
|
91
|
-
|
|
92
|
-
&__slider
|
|
93
|
-
position absolute
|
|
94
|
-
top 50%
|
|
95
|
-
left 0
|
|
96
|
-
margin-left -5px
|
|
97
|
-
width 10px
|
|
98
|
-
height @width
|
|
99
|
-
transform translateY(-50%)
|
|
100
|
-
|
|
101
|
-
&::after
|
|
102
|
-
content ''
|
|
103
|
-
position absolute
|
|
104
|
-
top 1px
|
|
105
|
-
left 50%
|
|
106
|
-
width 2px
|
|
107
|
-
height 8px
|
|
108
|
-
background-color $cl-green-2
|
|
109
|
-
border-radius 1px
|
|
110
|
-
transform translateX(-50%)
|
|
111
|
-
|
|
112
|
-
&__time
|
|
113
|
-
line-height 1
|
|
114
|
-
font-size 12px
|
|
115
|
-
color $cl-text-success
|
package/src/Audio/Audio.tsx
DELETED
|
@@ -1,359 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import Slider from '../Slider'
|
|
3
|
-
// import './Audio.styl'
|
|
4
|
-
import {EAudioStatuses, IAudioProps, IState} from "./types";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Функция отображения продолжительности записи в "мм:cc"
|
|
8
|
-
* @param {number} value Значение в секундах
|
|
9
|
-
* @returns {string}
|
|
10
|
-
*/
|
|
11
|
-
function Duration(value) {
|
|
12
|
-
let result = '––:––'
|
|
13
|
-
if (value || value === 0) {
|
|
14
|
-
const minutes = Math.floor(value / 60)
|
|
15
|
-
const seconds = Math.round(value - minutes * 60)
|
|
16
|
-
const leadZero = (value) => `${value < 10 ? '0' : ''}${value}`
|
|
17
|
-
result = `${leadZero(minutes)}:${leadZero(seconds)}`
|
|
18
|
-
}
|
|
19
|
-
return result
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Компонент прослушивания аудиозаписей
|
|
24
|
-
*/
|
|
25
|
-
export class Audio extends React.Component<IAudioProps, IState> {
|
|
26
|
-
/* начальное состояние */
|
|
27
|
-
state: any = {
|
|
28
|
-
loadingProgress: 0,
|
|
29
|
-
progress: 0,
|
|
30
|
-
duration: 0,
|
|
31
|
-
status: EAudioStatuses.PAUSED,
|
|
32
|
-
currentTime: 0,
|
|
33
|
-
drag: false,
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// static defaultProps = {
|
|
37
|
-
// onlyOneIsPlayed: true,
|
|
38
|
-
// }
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* ссылка на аудио элемент на странице
|
|
42
|
-
* @memberof Audio
|
|
43
|
-
*/
|
|
44
|
-
audioRef = React.createRef<HTMLAudioElement>()
|
|
45
|
-
|
|
46
|
-
componentDidMount() {
|
|
47
|
-
this.changeVolume(this.props.volume)
|
|
48
|
-
this.setState({
|
|
49
|
-
duration: this.props.duration,
|
|
50
|
-
})
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
componentDidUpdate(prevProps) {
|
|
54
|
-
if (prevProps.changeVolume !== this.props.volume) {
|
|
55
|
-
this.changeVolume(this.props.volume)
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
changeVolume(value) {
|
|
60
|
-
const audio = this.audioRef.current
|
|
61
|
-
if (audio.volume) {
|
|
62
|
-
audio.volume = value || 0.5
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
getDuration = () => {
|
|
67
|
-
const audio = this.audioRef.current
|
|
68
|
-
return Number(this.state.duration || audio.duration)
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Метод включение записи на проигрывание
|
|
73
|
-
* @memberof Audio
|
|
74
|
-
*/
|
|
75
|
-
play() {
|
|
76
|
-
const audio = this.audioRef.current
|
|
77
|
-
if (audio && (!audio.src || audio.src.indexOf('_abortedAudio') >= 0)) {
|
|
78
|
-
audio.src = this.props.src
|
|
79
|
-
}
|
|
80
|
-
/** Останавливаем проигрывание остальных записей */
|
|
81
|
-
const allAudioElements = document.getElementsByTagName('audio')
|
|
82
|
-
for (let i = allAudioElements.length - 1; i >= 0; i--) {
|
|
83
|
-
const audioElement = allAudioElements.item(i)
|
|
84
|
-
if (audioElement !== this.audioRef.current && !!audioElement.getAttribute('data-only-one-is-played')) {
|
|
85
|
-
audioElement.pause()
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
audio.play().catch(() => {
|
|
89
|
-
audio.pause()
|
|
90
|
-
})
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* Метод постановки проигрываемой записи на паузу
|
|
95
|
-
* @memberof Audio
|
|
96
|
-
*/
|
|
97
|
-
pause() {
|
|
98
|
-
const audio = this.audioRef.current
|
|
99
|
-
audio.pause()
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Метод прерывания процесса загрузки записи
|
|
104
|
-
* @memberof Audio
|
|
105
|
-
*/
|
|
106
|
-
loadCancel() {
|
|
107
|
-
this.pause()
|
|
108
|
-
const audio = this.audioRef.current
|
|
109
|
-
if (audio.src) {
|
|
110
|
-
audio.src = '_abortedAudio'
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* Метод перемотки записи до нужной секунды
|
|
116
|
-
* @param {number} sec значение в секундах
|
|
117
|
-
* @memberof Audio
|
|
118
|
-
*/
|
|
119
|
-
seek(sec) {
|
|
120
|
-
const audio = this.audioRef.current
|
|
121
|
-
audio.currentTime = Math.min(Math.max(sec, 0), this.getDuration())
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* Обработчик изменения позиции слайдера момента исполнения записи
|
|
126
|
-
* @param {*} value значение слайдера
|
|
127
|
-
* @memberof Audio
|
|
128
|
-
*/
|
|
129
|
-
onSliderChange = (value) => {
|
|
130
|
-
const duration = this.getDuration()
|
|
131
|
-
const newTimeValue = (value / 100) * duration
|
|
132
|
-
this.seek(newTimeValue)
|
|
133
|
-
const audio = this.audioRef.current
|
|
134
|
-
const progress = audio ? (audio.currentTime / duration) * 100 : 0
|
|
135
|
-
this.setState({ progress, drag: true, currentTime: newTimeValue })
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
onAfterChange = () => {
|
|
139
|
-
this.setState({ drag: false })
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
/**
|
|
143
|
-
* Обработчик нажатия кнопки управления
|
|
144
|
-
* @memberof Audio
|
|
145
|
-
*/
|
|
146
|
-
onButtonClick = () => {
|
|
147
|
-
switch (this.state.status) {
|
|
148
|
-
case EAudioStatuses.LOADING:
|
|
149
|
-
this.loadCancel()
|
|
150
|
-
break
|
|
151
|
-
case EAudioStatuses.PLAYING:
|
|
152
|
-
this.pause()
|
|
153
|
-
break
|
|
154
|
-
default:
|
|
155
|
-
this.play()
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* Обработчик события загрузки метаданных записи
|
|
161
|
-
* @param {*} event дескриптор события
|
|
162
|
-
* @memberof Audio
|
|
163
|
-
*/
|
|
164
|
-
onLoadedMetaData = ({ target }) => {
|
|
165
|
-
const { duration } = target || {}
|
|
166
|
-
this.setState({
|
|
167
|
-
duration: duration,
|
|
168
|
-
})
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
/**
|
|
172
|
-
* Обработчик изменения отметки времени исполнения
|
|
173
|
-
* @param {*} event дексриптор события
|
|
174
|
-
* @memberof Audio
|
|
175
|
-
*/
|
|
176
|
-
onTimeUpdate = (event) => {
|
|
177
|
-
const { currentTime } = event.target
|
|
178
|
-
const progress = (currentTime / this.getDuration()) * 100
|
|
179
|
-
this.setState({ progress, currentTime })
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
/**
|
|
183
|
-
* Метод расчета прогресса загруженной записи
|
|
184
|
-
* @param {TimeRanges} timeRanges загруженные промежутки
|
|
185
|
-
* @param {number} duration длительность записи
|
|
186
|
-
* @returns {number}
|
|
187
|
-
* @memberof Audio
|
|
188
|
-
*/
|
|
189
|
-
calcProgress(timeRanges, duration) {
|
|
190
|
-
let buffered = 0
|
|
191
|
-
if (timeRanges && timeRanges.length) {
|
|
192
|
-
for (let i = timeRanges.length - 1; 0 <= i; i--) {
|
|
193
|
-
buffered += timeRanges.end(i) - timeRanges.start(i) + 1
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
return Math.min(duration && buffered !== duration ? (buffered / duration) * 100 : 0, 100)
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
updateLoadingProgress(buffered, duration) {
|
|
200
|
-
this.setState({
|
|
201
|
-
loadingProgress: this.calcProgress(buffered, duration),
|
|
202
|
-
})
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
/**
|
|
206
|
-
* Обработчик загрузки нового фрагмента записи
|
|
207
|
-
* @param {*} event
|
|
208
|
-
* @memberof Audio
|
|
209
|
-
*/
|
|
210
|
-
onProgress = ({ target }) => {
|
|
211
|
-
const { buffered, duration } = target || {}
|
|
212
|
-
/* считаем и записываем процент загрузки аудиозаписи*/
|
|
213
|
-
this.updateLoadingProgress(buffered, duration)
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
/**
|
|
217
|
-
* Обработчик при включении проигрывания записи
|
|
218
|
-
* @param {*} event
|
|
219
|
-
* @memberof Audio
|
|
220
|
-
*/
|
|
221
|
-
onPlay = () => {
|
|
222
|
-
this.setState({ status: EAudioStatuses.PLAYING })
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
/**
|
|
226
|
-
* Обработчик при постновки записи на паузу
|
|
227
|
-
* @param {*} event дескриптор события
|
|
228
|
-
* @memberof Audio
|
|
229
|
-
*/
|
|
230
|
-
onPause = () => {
|
|
231
|
-
this.setState({ status: EAudioStatuses.PAUSED })
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
/**
|
|
235
|
-
* Обработчик перехода к проигрыванию записи
|
|
236
|
-
* @memberof Audio
|
|
237
|
-
*/
|
|
238
|
-
onPlaying = () => {
|
|
239
|
-
if (this.state.waitingTimerId) {
|
|
240
|
-
clearTimeout(this.state.waitingTimerId)
|
|
241
|
-
}
|
|
242
|
-
this.setState({ status: EAudioStatuses.PLAYING })
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
/**
|
|
246
|
-
* Обработчик события ожидания, когда что-то грузится
|
|
247
|
-
* @param {*} event дескриптор события
|
|
248
|
-
* @memberof Audio
|
|
249
|
-
*/
|
|
250
|
-
onWaiting = (event) => {
|
|
251
|
-
const { buffered, duration } = event.target || {}
|
|
252
|
-
/* устанавливаем статус "загрузка" через задержку, чтобы не видеть моргания "||" -> "Х" -> "||" при переходе к уже загруженному фрагменту */
|
|
253
|
-
this.setState({
|
|
254
|
-
waitingTimerId: setTimeout(() => {
|
|
255
|
-
this.setState({
|
|
256
|
-
status: EAudioStatuses.LOADING,
|
|
257
|
-
})
|
|
258
|
-
}, 5),
|
|
259
|
-
})
|
|
260
|
-
this.updateLoadingProgress(buffered, duration)
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
/**
|
|
264
|
-
* Обработчик достижения конца проигрываемой записи
|
|
265
|
-
* @param {*} event дескриптор события
|
|
266
|
-
* @memberof Audio
|
|
267
|
-
*/
|
|
268
|
-
onEnded = (event) => {
|
|
269
|
-
event.target.currentTime = 0
|
|
270
|
-
this.setState({ status: EAudioStatuses.PAUSED })
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
/**
|
|
274
|
-
* Обработчик возникновения ошибки аудио элемента
|
|
275
|
-
* @memberof Audio
|
|
276
|
-
*/
|
|
277
|
-
onError = () => {
|
|
278
|
-
this.setState({ status: EAudioStatuses.PAUSED })
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
/**
|
|
282
|
-
* Метод рендера содержимого кнопки управления
|
|
283
|
-
* @returns
|
|
284
|
-
* @memberof Audio
|
|
285
|
-
*/
|
|
286
|
-
getButtonCaption() {
|
|
287
|
-
switch (this.state.status) {
|
|
288
|
-
case EAudioStatuses.PAUSED:
|
|
289
|
-
return <i className="icon-play-solid" />
|
|
290
|
-
case EAudioStatuses.PLAYING:
|
|
291
|
-
return <i className="icon-pause" />
|
|
292
|
-
case EAudioStatuses.LOADING:
|
|
293
|
-
return (
|
|
294
|
-
<div>
|
|
295
|
-
<i className="icon-close" />
|
|
296
|
-
</div>
|
|
297
|
-
)
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
durationRender = () => {
|
|
302
|
-
const duration = this.state.currentTime || this.state.drag ? this.state.currentTime : this.state.duration
|
|
303
|
-
return Duration(duration)
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
render() {
|
|
307
|
-
let { src, fileName, durationView = 'right', onlyOneIsPlayed } = this.props
|
|
308
|
-
return (
|
|
309
|
-
<>
|
|
310
|
-
<div className="player">
|
|
311
|
-
{/* кнопка */}
|
|
312
|
-
<button
|
|
313
|
-
className="player__btn"
|
|
314
|
-
onClick={this.onButtonClick}
|
|
315
|
-
>
|
|
316
|
-
{this.getButtonCaption()}
|
|
317
|
-
</button>
|
|
318
|
-
{/* полоса прогресса и перемотки */}
|
|
319
|
-
<div className="player__progress">
|
|
320
|
-
<div
|
|
321
|
-
className="player__progress-buffer"
|
|
322
|
-
style={{ width: `${this.state.loadingProgress}%` }}
|
|
323
|
-
/>
|
|
324
|
-
<Slider
|
|
325
|
-
value={[this.state.progress ? this.state.progress : 0]}
|
|
326
|
-
onValueChange={this.onSliderChange}
|
|
327
|
-
onValueCommit={this.onAfterChange}
|
|
328
|
-
/>
|
|
329
|
-
{durationView === 'bottom' && <div className="player__time">{this.durationRender()}</div>}
|
|
330
|
-
</div>
|
|
331
|
-
{/* продолжительность аудиозаписи */}
|
|
332
|
-
{durationView === 'right' && <div className="player__time">{this.durationRender()}</div>}
|
|
333
|
-
{/* HTML5 элемент аудио */}
|
|
334
|
-
<audio
|
|
335
|
-
ref={this.audioRef}
|
|
336
|
-
preload="none"
|
|
337
|
-
onLoadedMetadata={this.onLoadedMetaData}
|
|
338
|
-
onDurationChange={this.onLoadedMetaData}
|
|
339
|
-
onTimeUpdate={this.onTimeUpdate}
|
|
340
|
-
onProgress={this.onProgress}
|
|
341
|
-
onPlay={this.onPlay}
|
|
342
|
-
onPause={this.onPause}
|
|
343
|
-
onPlaying={this.onPlaying}
|
|
344
|
-
onWaiting={this.onWaiting}
|
|
345
|
-
onEnded={this.onEnded}
|
|
346
|
-
onAbort={this.onError}
|
|
347
|
-
onError={this.onError}
|
|
348
|
-
src={src}
|
|
349
|
-
data-only-one-is-played={onlyOneIsPlayed ? 'true' : ''}
|
|
350
|
-
>
|
|
351
|
-
<p>
|
|
352
|
-
<a href={src}>{fileName}</a>
|
|
353
|
-
</p>
|
|
354
|
-
</audio>
|
|
355
|
-
</div>
|
|
356
|
-
</>
|
|
357
|
-
)
|
|
358
|
-
}
|
|
359
|
-
}
|
package/src/Audio/index.ts
DELETED
package/src/Audio/types.ts
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* статусы состояния аудио компонента
|
|
3
|
-
*/
|
|
4
|
-
export enum EAudioStatuses {
|
|
5
|
-
LOADING,
|
|
6
|
-
PLAYING,
|
|
7
|
-
PAUSED
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export interface IState {
|
|
11
|
-
/* текущий статус */
|
|
12
|
-
status: EAudioStatuses;
|
|
13
|
-
/* процесс загрузки */
|
|
14
|
-
loadingProgress: number;
|
|
15
|
-
/* прогресс прослушивания */
|
|
16
|
-
progress: number;
|
|
17
|
-
/** Продолжительность записи (инициализация), будет пересчитано при получении метаданных */
|
|
18
|
-
duration: number;
|
|
19
|
-
/* ИД таймера задержки перед показом лоадера */
|
|
20
|
-
waitingTimerId?: ReturnType<typeof setTimeout>;
|
|
21
|
-
/** Текущее время воспроизведения */
|
|
22
|
-
currentTime: number,
|
|
23
|
-
/** признак когда пользователь взял ползунок перемотки */
|
|
24
|
-
drag: boolean,
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export interface IAudioProps {
|
|
28
|
-
/** Продолжительность записи (инициализация), будет пересчитано при получении метаданных */
|
|
29
|
-
duration: number;
|
|
30
|
-
/** Источник аудиозаписи */
|
|
31
|
-
src: string,
|
|
32
|
-
/** Имя файла, отображаемое когда невозможно отобразить контрол аудиозаписи */
|
|
33
|
-
fileName: string,
|
|
34
|
-
/** Уровень звука [0,1] */
|
|
35
|
-
volume: number,
|
|
36
|
-
/** Расположение продолжительности аудиозаписи */
|
|
37
|
-
durationView: 'right' | 'bottom',
|
|
38
|
-
/** Только один элемент проигрывается на странице */
|
|
39
|
-
onlyOneIsPlayed: boolean,
|
|
40
|
-
}
|