mediacube-ui 0.1.7
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/.browserslistrc +3 -0
- package/.eslintrc.js +34 -0
- package/.prettierrc.js +9 -0
- package/.storybook/components.js +6 -0
- package/.storybook/decorators.js +5 -0
- package/.storybook/main.js +51 -0
- package/.storybook/plugins.js +28 -0
- package/.storybook/preview-body.html +9 -0
- package/.storybook/preview.js +59 -0
- package/CHANGELOG.md +13 -0
- package/README.md +138 -0
- package/babel.config.js +3 -0
- package/dist/demo.html +19 -0
- package/dist/mcui.common.js +516 -0
- package/dist/mcui.common.js.map +1 -0
- package/dist/mcui.css +1 -0
- package/dist/mcui.umd.js +526 -0
- package/dist/mcui.umd.js.map +1 -0
- package/dist/mcui.umd.min.js +2 -0
- package/dist/mcui.umd.min.js.map +1 -0
- package/jest.config.js +4 -0
- package/package.json +115 -0
- package/public/img/mc_dashboard.svg +11 -0
- package/public/img/preview.png +0 -0
- package/src/App.vue +30 -0
- package/src/assets/fonts/inter/Inter-Bold.woff +0 -0
- package/src/assets/fonts/inter/Inter-Bold.woff2 +0 -0
- package/src/assets/fonts/inter/Inter-Italic.woff +0 -0
- package/src/assets/fonts/inter/Inter-Italic.woff2 +0 -0
- package/src/assets/fonts/inter/Inter-Medium.woff +0 -0
- package/src/assets/fonts/inter/Inter-Medium.woff2 +0 -0
- package/src/assets/fonts/inter/Inter-Regular.woff +0 -0
- package/src/assets/fonts/inter/Inter-Regular.woff2 +0 -0
- package/src/assets/fonts/inter/Inter-SemiBold.woff +0 -0
- package/src/assets/fonts/inter/Inter-SemiBold.woff2 +0 -0
- package/src/assets/fonts/inter/inter.css +44 -0
- package/src/assets/icons/a_circle.svg +3 -0
- package/src/assets/icons/access_time.svg +5 -0
- package/src/assets/icons/account_circle.svg +1 -0
- package/src/assets/icons/account_edit.svg +3 -0
- package/src/assets/icons/add.svg +3 -0
- package/src/assets/icons/add_circle.svg +3 -0
- package/src/assets/icons/address.svg +6 -0
- package/src/assets/icons/ads_banner.svg +3 -0
- package/src/assets/icons/album.svg +1 -0
- package/src/assets/icons/alert_solid.svg +3 -0
- package/src/assets/icons/alternate_email.svg +1 -0
- package/src/assets/icons/amocrm.svg +4 -0
- package/src/assets/icons/amper_music.svg +4 -0
- package/src/assets/icons/analytics.svg +3 -0
- package/src/assets/icons/animation_motion.svg +4 -0
- package/src/assets/icons/api.svg +1 -0
- package/src/assets/icons/apple_icon.svg +3 -0
- package/src/assets/icons/applications.svg +3 -0
- package/src/assets/icons/applications_new.svg +3 -0
- package/src/assets/icons/apps.svg +3 -0
- package/src/assets/icons/archive.svg +1 -0
- package/src/assets/icons/archive_in.svg +3 -0
- package/src/assets/icons/archive_out.svg +3 -0
- package/src/assets/icons/arrow-stats-down.svg +3 -0
- package/src/assets/icons/arrow-stats-up.svg +3 -0
- package/src/assets/icons/arrow_backward.svg +3 -0
- package/src/assets/icons/arrow_downward.svg +3 -0
- package/src/assets/icons/arrow_drop_down.svg +3 -0
- package/src/assets/icons/arrow_drop_up.svg +3 -0
- package/src/assets/icons/arrow_forward.svg +3 -0
- package/src/assets/icons/arrow_leftward.svg +3 -0
- package/src/assets/icons/arrow_rightward.svg +3 -0
- package/src/assets/icons/arrow_to_grow_circle.svg +3 -0
- package/src/assets/icons/arrow_up_down.svg +3 -0
- package/src/assets/icons/arrow_upward.svg +3 -0
- package/src/assets/icons/arrows.svg +6 -0
- package/src/assets/icons/artist.svg +8 -0
- package/src/assets/icons/assessment.svg +1 -0
- package/src/assets/icons/assets_unassigned.svg +3 -0
- package/src/assets/icons/assignment.svg +9 -0
- package/src/assets/icons/assignment_ind.svg +1 -0
- package/src/assets/icons/assist_icon.svg +13 -0
- package/src/assets/icons/attach_money.svg +1 -0
- package/src/assets/icons/audiotrack.svg +1 -0
- package/src/assets/icons/backspace.svg +1 -0
- package/src/assets/icons/bank_building_blue.svg +4 -0
- package/src/assets/icons/bank_card.svg +3 -0
- package/src/assets/icons/bank_card_arrow.svg +3 -0
- package/src/assets/icons/bank_card_clock.svg +3 -0
- package/src/assets/icons/bank_card_double.svg +3 -0
- package/src/assets/icons/bank_card_virtual_blue.svg +7 -0
- package/src/assets/icons/bankwire.svg +70 -0
- package/src/assets/icons/bell.svg +3 -0
- package/src/assets/icons/binance_coin_colored.svg +4 -0
- package/src/assets/icons/bitcoin.svg +6 -0
- package/src/assets/icons/bitcoin_cash_colored.svg +4 -0
- package/src/assets/icons/bitcoin_colored.svg +4 -0
- package/src/assets/icons/bloggerhood.svg +19 -0
- package/src/assets/icons/board.svg +7 -0
- package/src/assets/icons/book.svg +3 -0
- package/src/assets/icons/bug.svg +10 -0
- package/src/assets/icons/bug_big.svg +3 -0
- package/src/assets/icons/bug_report.svg +3 -0
- package/src/assets/icons/building.svg +17 -0
- package/src/assets/icons/building_colored.svg +18 -0
- package/src/assets/icons/business_center.svg +1 -0
- package/src/assets/icons/calendar.svg +3 -0
- package/src/assets/icons/calendar_sixteen.svg +5 -0
- package/src/assets/icons/calendar_two_weeks.svg +3 -0
- package/src/assets/icons/calendar_user.svg +11 -0
- package/src/assets/icons/camera_alt.svg +1 -0
- package/src/assets/icons/camera_plus.svg +1 -0
- package/src/assets/icons/camera_video.svg +3 -0
- package/src/assets/icons/cancel.svg +4 -0
- package/src/assets/icons/cancel_alt.svg +1 -0
- package/src/assets/icons/capitalist.svg +23 -0
- package/src/assets/icons/capitalist_colored.svg +4 -0
- package/src/assets/icons/card.svg +1 -0
- package/src/assets/icons/card_off.svg +7 -0
- package/src/assets/icons/card_off_circle.svg +4 -0
- package/src/assets/icons/card_to_card_blue.svg +11 -0
- package/src/assets/icons/cash-ad.svg +7 -0
- package/src/assets/icons/cash.svg +7 -0
- package/src/assets/icons/category.svg +6 -0
- package/src/assets/icons/cellphone.svg +1 -0
- package/src/assets/icons/channels_icon.svg +12 -0
- package/src/assets/icons/chart_bar.svg +3 -0
- package/src/assets/icons/chart_line.svg +3 -0
- package/src/assets/icons/chat.svg +3 -0
- package/src/assets/icons/chat_forum.svg +3 -0
- package/src/assets/icons/chat_messages.svg +3 -0
- package/src/assets/icons/check-rhombus.svg +3 -0
- package/src/assets/icons/check.svg +4 -0
- package/src/assets/icons/check_all.svg +6 -0
- package/src/assets/icons/check_circle.svg +4 -0
- package/src/assets/icons/check_circle_solid.svg +3 -0
- package/src/assets/icons/check_polygonal.svg +3 -0
- package/src/assets/icons/checkbox--checked.svg +3 -0
- package/src/assets/icons/checkbox.svg +3 -0
- package/src/assets/icons/click.svg +3 -0
- package/src/assets/icons/clickup.svg +14 -0
- package/src/assets/icons/clip.svg +3 -0
- package/src/assets/icons/clock_check.svg +6 -0
- package/src/assets/icons/clock_solid.svg +5 -0
- package/src/assets/icons/close.svg +3 -0
- package/src/assets/icons/close_circle_solid.svg +3 -0
- package/src/assets/icons/cloud_upload.svg +1 -0
- package/src/assets/icons/coin_speed.svg +7 -0
- package/src/assets/icons/comment.svg +4 -0
- package/src/assets/icons/company.svg +1 -0
- package/src/assets/icons/confetti.svg +18 -0
- package/src/assets/icons/connection.svg +3 -0
- package/src/assets/icons/contacts.svg +1 -0
- package/src/assets/icons/contracts.svg +3 -0
- package/src/assets/icons/convert.svg +6 -0
- package/src/assets/icons/copy.svg +3 -0
- package/src/assets/icons/copyright.svg +3 -0
- package/src/assets/icons/credit-card.svg +5 -0
- package/src/assets/icons/crypto.svg +8 -0
- package/src/assets/icons/crypto_blue.svg +9 -0
- package/src/assets/icons/cryptowallet.svg +5 -0
- package/src/assets/icons/cryptowallet_blue.svg +6 -0
- package/src/assets/icons/dashboard.svg +1 -0
- package/src/assets/icons/date_range.svg +1 -0
- package/src/assets/icons/deeplinks.svg +3 -0
- package/src/assets/icons/delete-account.svg +5 -0
- package/src/assets/icons/delete.svg +3 -0
- package/src/assets/icons/delete_alt.svg +1 -0
- package/src/assets/icons/deprecated.svg +1 -0
- package/src/assets/icons/desktop_device.svg +3 -0
- package/src/assets/icons/dialog.svg +3 -0
- package/src/assets/icons/discord.svg +9 -0
- package/src/assets/icons/discord_colored.svg +4 -0
- package/src/assets/icons/dislike.svg +3 -0
- package/src/assets/icons/doc-export.svg +10 -0
- package/src/assets/icons/document.svg +1 -0
- package/src/assets/icons/dollar.svg +3 -0
- package/src/assets/icons/donate_blue.svg +7 -0
- package/src/assets/icons/dot-status.svg +3 -0
- package/src/assets/icons/download.svg +3 -0
- package/src/assets/icons/drag.svg +1 -0
- package/src/assets/icons/eWallet.svg +25 -0
- package/src/assets/icons/e_wallet_blue.svg +9 -0
- package/src/assets/icons/edit.svg +3 -0
- package/src/assets/icons/edit_solid.svg +4 -0
- package/src/assets/icons/email.svg +12 -0
- package/src/assets/icons/email_circle.svg +5 -0
- package/src/assets/icons/email_colored.svg +5 -0
- package/src/assets/icons/enrollment.svg +1 -0
- package/src/assets/icons/epayments_colored.svg +4 -0
- package/src/assets/icons/epidemic-sound.svg +66 -0
- package/src/assets/icons/epidemic_sound_circle.svg +4 -0
- package/src/assets/icons/error.svg +3 -0
- package/src/assets/icons/ethereum_colored.svg +8 -0
- package/src/assets/icons/event.svg +1 -0
- package/src/assets/icons/event_alt.svg +1 -0
- package/src/assets/icons/exit_to_app.svg +1 -0
- package/src/assets/icons/explicit.svg +1 -0
- package/src/assets/icons/face.svg +1 -0
- package/src/assets/icons/face_alt.svg +1 -0
- package/src/assets/icons/facebook.svg +3 -0
- package/src/assets/icons/facebook_colored.svg +4 -0
- package/src/assets/icons/fast.svg +10 -0
- package/src/assets/icons/favorite.svg +1 -0
- package/src/assets/icons/file.svg +1 -0
- package/src/assets/icons/file_add.svg +3 -0
- package/src/assets/icons/file_copy.svg +4 -0
- package/src/assets/icons/file_download.svg +1 -0
- package/src/assets/icons/file_export.svg +3 -0
- package/src/assets/icons/file_eye.svg +3 -0
- package/src/assets/icons/file_new.svg +3 -0
- package/src/assets/icons/filter_list.svg +3 -0
- package/src/assets/icons/find_in_page.svg +1 -0
- package/src/assets/icons/fire.svg +3 -0
- package/src/assets/icons/fire_colored.svg +8 -0
- package/src/assets/icons/fire_solid.svg +3 -0
- package/src/assets/icons/flag_ar.svg +19 -0
- package/src/assets/icons/flag_en.svg +6 -0
- package/src/assets/icons/flag_es.svg +564 -0
- package/src/assets/icons/flag_pt.svg +43 -0
- package/src/assets/icons/flag_ru.svg +6 -0
- package/src/assets/icons/fly_dollar.svg +13 -0
- package/src/assets/icons/fly_euro.svg +5 -0
- package/src/assets/icons/freeze.svg +3 -0
- package/src/assets/icons/fullscreen.svg +1 -0
- package/src/assets/icons/get_app.svg +4 -0
- package/src/assets/icons/glasses.svg +3 -0
- package/src/assets/icons/google_colored.svg +6 -0
- package/src/assets/icons/googleplus_colored.svg +5 -0
- package/src/assets/icons/graph-no-data.svg +3 -0
- package/src/assets/icons/group.svg +3 -0
- package/src/assets/icons/group_connection.svg +9 -0
- package/src/assets/icons/growth_arrow_circle.svg +3 -0
- package/src/assets/icons/help.svg +1 -0
- package/src/assets/icons/help_invert.svg +1 -0
- package/src/assets/icons/help_ukraine_colored.svg +14 -0
- package/src/assets/icons/home.svg +3 -0
- package/src/assets/icons/iban.svg +9 -0
- package/src/assets/icons/iban_blue.svg +10 -0
- package/src/assets/icons/id_square.svg +3 -0
- package/src/assets/icons/id_thin.svg +5 -0
- package/src/assets/icons/image.svg +1 -0
- package/src/assets/icons/info.svg +3 -0
- package/src/assets/icons/info_rounded_square.svg +5 -0
- package/src/assets/icons/info_solid.svg +4 -0
- package/src/assets/icons/instagram.svg +23 -0
- package/src/assets/icons/instagram_colored.svg +18 -0
- package/src/assets/icons/keyboard.svg +1 -0
- package/src/assets/icons/keyboard_arrow_left.svg +4 -0
- package/src/assets/icons/keyboard_arrow_right.svg +4 -0
- package/src/assets/icons/keyboard_arrow_right_thin.svg +3 -0
- package/src/assets/icons/language.svg +3 -0
- package/src/assets/icons/layers.svg +3 -0
- package/src/assets/icons/lightning.svg +3 -0
- package/src/assets/icons/lightning_circle.svg +4 -0
- package/src/assets/icons/like.svg +3 -0
- package/src/assets/icons/link.svg +3 -0
- package/src/assets/icons/link_broken.svg +7 -0
- package/src/assets/icons/link_external.svg +3 -0
- package/src/assets/icons/link_external_new.svg +3 -0
- package/src/assets/icons/linkedin.svg +9 -0
- package/src/assets/icons/linkedin_colored.svg +6 -0
- package/src/assets/icons/list.svg +1 -0
- package/src/assets/icons/litecoin_colored.svg +4 -0
- package/src/assets/icons/live_help.svg +1 -0
- package/src/assets/icons/loader.svg +3 -0
- package/src/assets/icons/location_city.svg +1 -0
- package/src/assets/icons/location_on.svg +3 -0
- package/src/assets/icons/lock.svg +3 -0
- package/src/assets/icons/lock_old.svg +1 -0
- package/src/assets/icons/logout.svg +3 -0
- package/src/assets/icons/magic_blink.svg +3 -0
- package/src/assets/icons/mail_outline.svg +1 -0
- package/src/assets/icons/mc_assist.svg +4 -0
- package/src/assets/icons/mc_dashboard.svg +5 -0
- package/src/assets/icons/mc_id.svg +3 -0
- package/src/assets/icons/mc_pay.svg +10 -0
- package/src/assets/icons/mc_pay_app.svg +6 -0
- package/src/assets/icons/mc_pay_compact.svg +4 -0
- package/src/assets/icons/mc_pay_menu.svg +4 -0
- package/src/assets/icons/mc_studio.svg +3 -0
- package/src/assets/icons/mc_vidwide.svg +11 -0
- package/src/assets/icons/mcadslogo.svg +37 -0
- package/src/assets/icons/mediacube.svg +1 -0
- package/src/assets/icons/menu.svg +3 -0
- package/src/assets/icons/menu_new.svg +3 -0
- package/src/assets/icons/message.svg +3 -0
- package/src/assets/icons/messenger.svg +6 -0
- package/src/assets/icons/messenger_colored.svg +10 -0
- package/src/assets/icons/minus.svg +5 -0
- package/src/assets/icons/mobile_device.svg +3 -0
- package/src/assets/icons/more_horiz.svg +1 -0
- package/src/assets/icons/music.svg +1 -0
- package/src/assets/icons/music_icon.svg +8 -0
- package/src/assets/icons/new.svg +1 -0
- package/src/assets/icons/notes.svg +3 -0
- package/src/assets/icons/objects.svg +3 -0
- package/src/assets/icons/obs.svg +3 -0
- package/src/assets/icons/okru.svg +12 -0
- package/src/assets/icons/okru_colored.svg +4 -0
- package/src/assets/icons/ondemand_video.svg +1 -0
- package/src/assets/icons/partners.svg +3 -0
- package/src/assets/icons/pause.svg +1 -0
- package/src/assets/icons/payment.svg +1 -0
- package/src/assets/icons/payoneer.svg +13 -0
- package/src/assets/icons/payoneer_colored.svg +19 -0
- package/src/assets/icons/payoneer_cy.svg +13 -0
- package/src/assets/icons/paypal.svg +1 -0
- package/src/assets/icons/paypal_colored.svg +6 -0
- package/src/assets/icons/percent.svg +3 -0
- package/src/assets/icons/personal_email_colored.svg +11 -0
- package/src/assets/icons/phone_colored.svg +4 -0
- package/src/assets/icons/photo_add.svg +3 -0
- package/src/assets/icons/picture.svg +3 -0
- package/src/assets/icons/picture_thin.svg +3 -0
- package/src/assets/icons/play-videos.svg +4 -0
- package/src/assets/icons/play.svg +1 -0
- package/src/assets/icons/print.svg +1 -0
- package/src/assets/icons/prototype.svg +1 -0
- package/src/assets/icons/public.svg +1 -0
- package/src/assets/icons/qiwi.svg +11 -0
- package/src/assets/icons/qiwi_colored.svg +4 -0
- package/src/assets/icons/ready.svg +1 -0
- package/src/assets/icons/receipt.svg +1 -0
- package/src/assets/icons/receipt_thin.svg +6 -0
- package/src/assets/icons/recording_circle.svg +3 -0
- package/src/assets/icons/recruiters.svg +3 -0
- package/src/assets/icons/redo.svg +3 -0
- package/src/assets/icons/reload.svg +3 -0
- package/src/assets/icons/reload_right.svg +3 -0
- package/src/assets/icons/remove_red_eye.svg +1 -0
- package/src/assets/icons/repair.svg +6 -0
- package/src/assets/icons/requisites.svg +7 -0
- package/src/assets/icons/reset.svg +7 -0
- package/src/assets/icons/resize_video.svg +3 -0
- package/src/assets/icons/revenue.svg +3 -0
- package/src/assets/icons/review.svg +1 -0
- package/src/assets/icons/ripple_colored.svg +4 -0
- package/src/assets/icons/role.svg +3 -0
- package/src/assets/icons/safety.svg +5 -0
- package/src/assets/icons/sand_clock.svg +4 -0
- package/src/assets/icons/save.svg +1 -0
- package/src/assets/icons/search.svg +3 -0
- package/src/assets/icons/send.svg +1 -0
- package/src/assets/icons/send_solid.svg +3 -0
- package/src/assets/icons/settings.svg +4 -0
- package/src/assets/icons/settings_solid.svg +3 -0
- package/src/assets/icons/settings_tools.svg +3 -0
- package/src/assets/icons/shield_colored.svg +5 -0
- package/src/assets/icons/shop.svg +1 -0
- package/src/assets/icons/shopping_cart.svg +1 -0
- package/src/assets/icons/sign_out.svg +8 -0
- package/src/assets/icons/skype.svg +56 -0
- package/src/assets/icons/skype_colored.svg +4 -0
- package/src/assets/icons/slack.svg +6 -0
- package/src/assets/icons/smile_star_eye.svg +6 -0
- package/src/assets/icons/sort_asc.svg +4 -0
- package/src/assets/icons/sort_az.svg +4 -0
- package/src/assets/icons/sort_desc.svg +4 -0
- package/src/assets/icons/sort_directions.svg +3 -0
- package/src/assets/icons/sort_list.svg +1 -0
- package/src/assets/icons/sort_za.svg +4 -0
- package/src/assets/icons/spy_colored.svg +15 -0
- package/src/assets/icons/staff.svg +10 -0
- package/src/assets/icons/star.svg +1 -0
- package/src/assets/icons/star_round.svg +3 -0
- package/src/assets/icons/star_round_solid.svg +3 -0
- package/src/assets/icons/stars.svg +4 -0
- package/src/assets/icons/stats_icon.svg +8 -0
- package/src/assets/icons/steam.svg +12 -0
- package/src/assets/icons/steam_colored.svg +15 -0
- package/src/assets/icons/studio_icon.svg +7 -0
- package/src/assets/icons/subscriptions.svg +1 -0
- package/src/assets/icons/suitcase.svg +4 -0
- package/src/assets/icons/supervised_user_circle.svg +1 -0
- package/src/assets/icons/support.svg +7 -0
- package/src/assets/icons/swap_cubes.svg +5 -0
- package/src/assets/icons/swap_horizontal_circle.svg +3 -0
- package/src/assets/icons/switches.svg +3 -0
- package/src/assets/icons/table.svg +1 -0
- package/src/assets/icons/telegram.svg +40 -0
- package/src/assets/icons/telegram_colored.svg +12 -0
- package/src/assets/icons/tether.svg +8 -0
- package/src/assets/icons/tether_colored.svg +4 -0
- package/src/assets/icons/three_dots.svg +3 -0
- package/src/assets/icons/thumb_down.svg +4 -0
- package/src/assets/icons/thumb_up.svg +4 -0
- package/src/assets/icons/time.svg +3 -0
- package/src/assets/icons/time_thin.svg +3 -0
- package/src/assets/icons/timelapse.svg +4 -0
- package/src/assets/icons/timeline.svg +1 -0
- package/src/assets/icons/tipalti.svg +48 -0
- package/src/assets/icons/transaction.svg +1 -0
- package/src/assets/icons/twitter_colored.svg +4 -0
- package/src/assets/icons/unarchive.svg +1 -0
- package/src/assets/icons/unfold_more.svg +1 -0
- package/src/assets/icons/unlock.svg +3 -0
- package/src/assets/icons/upload_img.svg +1 -0
- package/src/assets/icons/user.svg +3 -0
- package/src/assets/icons/user_edit.svg +3 -0
- package/src/assets/icons/user_kyc.svg +8 -0
- package/src/assets/icons/viber.svg +17 -0
- package/src/assets/icons/viber_colored.svg +8 -0
- package/src/assets/icons/videoblocks.svg +8 -0
- package/src/assets/icons/vidiq-logo-mono.svg +10 -0
- package/src/assets/icons/vidiq_circle.svg +5 -0
- package/src/assets/icons/visibility.svg +4 -0
- package/src/assets/icons/visibility_off.svg +7 -0
- package/src/assets/icons/vkontakte.svg +1 -0
- package/src/assets/icons/vkontakte_colored.svg +4 -0
- package/src/assets/icons/wallet.svg +5 -0
- package/src/assets/icons/warning.svg +3 -0
- package/src/assets/icons/webmoney.svg +10 -0
- package/src/assets/icons/webmoney_colored.svg +4 -0
- package/src/assets/icons/website_colored.svg +4 -0
- package/src/assets/icons/whatsapp.svg +12 -0
- package/src/assets/icons/whatsapp_colored.svg +4 -0
- package/src/assets/icons/wise_colored.svg +4 -0
- package/src/assets/icons/yandexmoney.svg +1 -0
- package/src/assets/icons/yoomoney_colored.svg +4 -0
- package/src/assets/icons/youtube.svg +3 -0
- package/src/assets/icons/youtube_circled.svg +4 -0
- package/src/assets/icons/youtube_circled_second.svg +4 -0
- package/src/assets/icons/youtube_colored.svg +4 -0
- package/src/assets/icons/zcash_colored.svg +4 -0
- package/src/assets/img/no_table_data.png +0 -0
- package/src/assets/img/no_user.png +0 -0
- package/src/assets/logo.png +0 -0
- package/src/assets/tokens/tokens.json +1101 -0
- package/src/elements/McAvatar/McAvatar.stories.js +122 -0
- package/src/elements/McAvatar/McAvatar.vue +325 -0
- package/src/elements/McBadge/McBadge.stories.js +80 -0
- package/src/elements/McBadge/McBadge.vue +120 -0
- package/src/elements/McButton/McButton.stories.js +205 -0
- package/src/elements/McButton/McButton.vue +877 -0
- package/src/elements/McChip/McChip.stories.js +140 -0
- package/src/elements/McChip/McChip.vue +246 -0
- package/src/elements/McCropper/McCropper.stories.js +47 -0
- package/src/elements/McCropper/McCropper.vue +131 -0
- package/src/elements/McDate/McDate.stories.js +105 -0
- package/src/elements/McDate/McDate.vue +102 -0
- package/src/elements/McDatePicker/McDatePicker.stories.js +205 -0
- package/src/elements/McDatePicker/McDatePicker.vue +793 -0
- package/src/elements/McField/McFieldCheckbox/McFieldCheckbox.vue +334 -0
- package/src/elements/McField/McFieldCheckbox/McFieldCheckox.stories.js +130 -0
- package/src/elements/McField/McFieldRadio/McFieldRadioButton/McFieldRadioButton.stories.js +115 -0
- package/src/elements/McField/McFieldRadio/McFieldRadioButton/McFieldRadioButton.vue +185 -0
- package/src/elements/McField/McFieldRadio/McFieldRadioGroup/McFieldRadioGroup.stories.js +162 -0
- package/src/elements/McField/McFieldRadio/McFieldRadioGroup/McFieldRadioGroup.vue +194 -0
- package/src/elements/McField/McFieldSelect/McFieldSelect.stories.js +271 -0
- package/src/elements/McField/McFieldSelect/McFieldSelect.vue +900 -0
- package/src/elements/McField/McFieldText/McFieldText.stories.js +232 -0
- package/src/elements/McField/McFieldText/McFieldText.vue +856 -0
- package/src/elements/McField/McFieldToggle/McFieldToggle.stories.js +82 -0
- package/src/elements/McField/McFieldToggle/McFieldToggle.vue +262 -0
- package/src/elements/McInfinityLoadingIndicator/McInfinityLoadingIndicator.stories.js +52 -0
- package/src/elements/McInfinityLoadingIndicator/McInfinityLoadingIndicator.vue +97 -0
- package/src/elements/McNotification/McNotification.stories.js +125 -0
- package/src/elements/McNotification/McNotification.vue +203 -0
- package/src/elements/McProgress/McProgress.stories.js +76 -0
- package/src/elements/McProgress/McProgress.vue +229 -0
- package/src/elements/McRangeSlider/McRangeSlider.stories.js +129 -0
- package/src/elements/McRangeSlider/McRangeSlider.vue +196 -0
- package/src/elements/McSeparator/McSeparator.stories.js +84 -0
- package/src/elements/McSeparator/McSeparator.vue +158 -0
- package/src/elements/McSlideUpDown/McSlideUpDown.stories.js +77 -0
- package/src/elements/McSlideUpDown/McSlideUpDown.vue +157 -0
- package/src/elements/McSvgIcon/McSvgIcon.stories.js +44 -0
- package/src/elements/McSvgIcon/McSvgIcon.vue +176 -0
- package/src/elements/McTabs/McTab/McTab.stories.js +20 -0
- package/src/elements/McTabs/McTab/McTab.vue +192 -0
- package/src/elements/McTabs/McTabs/McTabs.stories.js +112 -0
- package/src/elements/McTabs/McTabs/McTabs.vue +493 -0
- package/src/elements/McTitle/McTitle.stories.js +130 -0
- package/src/elements/McTitle/McTitle.vue +462 -0
- package/src/elements/McTooltip/McTooltip.stories.js +130 -0
- package/src/elements/McTooltip/McTooltip.vue +288 -0
- package/src/examples/Welcome.js +131 -0
- package/src/examples/Welcome.stories.js +18 -0
- package/src/examples/elements/MyElButton/MyElButton.js +36 -0
- package/src/examples/elements/MyElButton/MyElButton.stories.js +52 -0
- package/src/examples/elements/MyElTask/MyElTask.stories.js +61 -0
- package/src/examples/elements/MyElTask/MyElTask.vue +113 -0
- package/src/examples/elements/MyElToast/MyElToast.stories.js +106 -0
- package/src/examples/elements/MyElToast/MyElToast.vue +19 -0
- package/src/examples/patterns/MyPtTaskList/MyPtTaskList.stories.js +69 -0
- package/src/examples/patterns/MyPtTaskList/MyPtTaskList.vue +121 -0
- package/src/examples/templates/TmDrawerWrapper/TmDrawerWrapper.vue +77 -0
- package/src/helpers/delayedAction.js +26 -0
- package/src/main.js +14 -0
- package/src/mocks/authUser.js +163 -0
- package/src/mocks/categories.js +107 -0
- package/src/mocks/chatComments.js +113 -0
- package/src/mocks/filterMocks.js +115 -0
- package/src/mocks/menuApps.js +40 -0
- package/src/mocks/menuLangs.js +18 -0
- package/src/mocks/menuMain.js +53 -0
- package/src/mocks/tableInfusersBody.js +8317 -0
- package/src/patterns/McAccordion/McAccordion.stories.js +37 -0
- package/src/patterns/McAccordion/McAccordion.vue +53 -0
- package/src/patterns/McCells/McCell/McCell.stories.js +78 -0
- package/src/patterns/McCells/McCell/McCell.vue +100 -0
- package/src/patterns/McChat/McChat.stories.js +135 -0
- package/src/patterns/McChat/McChat.vue +304 -0
- package/src/patterns/McChat/McChatComment/McChatComment.stories.js +74 -0
- package/src/patterns/McChat/McChatComment/McChatComment.vue +240 -0
- package/src/patterns/McChat/McChatForm/McChatForm.stories.js +65 -0
- package/src/patterns/McChat/McChatForm/McChatForm.vue +146 -0
- package/src/patterns/McCollapse/McCollapse.stories.js +114 -0
- package/src/patterns/McCollapse/McCollapse.vue +280 -0
- package/src/patterns/McDrawer/McDrawer.stories.js +105 -0
- package/src/patterns/McDrawer/McDrawer.vue +143 -0
- package/src/patterns/McDropdown/McDropdown.stories.js +102 -0
- package/src/patterns/McDropdown/McDropdown.vue +210 -0
- package/src/patterns/McDropdown/McDropdownPanel/McDropdownPanel.stories.js +44 -0
- package/src/patterns/McDropdown/McDropdownPanel/McDropdownPanel.vue +38 -0
- package/src/patterns/McFakeScroll/McFakeScroll.stories.js +47 -0
- package/src/patterns/McFakeScroll/McFakeScroll.vue +276 -0
- package/src/patterns/McFilter/McFilter.stories.js +114 -0
- package/src/patterns/McFilter/McFilter.vue +800 -0
- package/src/patterns/McFilter/McFilterChip/McFilterChip.stories.js +59 -0
- package/src/patterns/McFilter/McFilterChip/McFilterChip.vue +83 -0
- package/src/patterns/McFilter/McFilterTags/McFilterTags.stories.js +83 -0
- package/src/patterns/McFilter/McFilterTags/McFilterTags.vue +356 -0
- package/src/patterns/McFilter/McFilterTypeDate/McFilterTypeDate.stories.js +50 -0
- package/src/patterns/McFilter/McFilterTypeDate/McFilterTypeDate.vue +66 -0
- package/src/patterns/McFilter/McFilterTypeRange/McFilterTypeRange.stories.js +51 -0
- package/src/patterns/McFilter/McFilterTypeRange/McFilterTypeRange.vue +131 -0
- package/src/patterns/McFilter/McFilterTypeRelation/McFilterTypeRelation.stories.js +53 -0
- package/src/patterns/McFilter/McFilterTypeRelation/McFilterTypeRelation.vue +204 -0
- package/src/patterns/McFilter/McFilterTypeText/McFilterTypeText.stories.js +51 -0
- package/src/patterns/McFilter/McFilterTypeText/McFilterTypeText.vue +62 -0
- package/src/patterns/McGrid/McGridCol/McGridCol.stories.js +20 -0
- package/src/patterns/McGrid/McGridCol/McGridCol.vue +165 -0
- package/src/patterns/McGrid/McGridRow/McGridRow.stories.js +151 -0
- package/src/patterns/McGrid/McGridRow/McGridRow.vue +150 -0
- package/src/patterns/McModal/McModal.stories.js +53 -0
- package/src/patterns/McModal/McModal.vue +530 -0
- package/src/patterns/McPreview/McPreview.stories.js +51 -0
- package/src/patterns/McPreview/McPreview.vue +181 -0
- package/src/patterns/McSideBar/McSideBar/McSideBar.stories.js +143 -0
- package/src/patterns/McSideBar/McSideBar/McSideBar.vue +395 -0
- package/src/patterns/McSideBar/McSideBarBottom/McSideBarBottom.stories.js +65 -0
- package/src/patterns/McSideBar/McSideBarBottom/McSideBarBottom.vue +124 -0
- package/src/patterns/McSideBar/McSideBarButton/McSideBarButton.stories.js +89 -0
- package/src/patterns/McSideBar/McSideBarButton/McSideBarButton.vue +277 -0
- package/src/patterns/McSideBar/McSideBarCenter/McSideBarCenter.stories.js +88 -0
- package/src/patterns/McSideBar/McSideBarCenter/McSideBarCenter.vue +337 -0
- package/src/patterns/McSideBar/McSideBarTop/McSideBarTop.stories.js +63 -0
- package/src/patterns/McSideBar/McSideBarTop/McSideBarTop.vue +236 -0
- package/src/patterns/McStack/McStack.stories.js +88 -0
- package/src/patterns/McStack/McStack.vue +119 -0
- package/src/patterns/McTable/McTable/McTable.stories.js +309 -0
- package/src/patterns/McTable/McTable/McTable.vue +824 -0
- package/src/patterns/McTable/McTableCol/McTableCol.stories.js +20 -0
- package/src/patterns/McTable/McTableCol/McTableCol.vue +282 -0
- package/src/patterns/McTableCard/McTableCard.stories.js +108 -0
- package/src/patterns/McTableCard/McTableCard.vue +134 -0
- package/src/patterns/McTableCard/McTableCardHeader/McTableCardHeader.stories.js +70 -0
- package/src/patterns/McTableCard/McTableCardHeader/McTableCardHeader.vue +72 -0
- package/src/patterns/McTopBar/McTopBar.stories.js +60 -0
- package/src/patterns/McTopBar/McTopBar.vue +152 -0
- package/src/service/GlobalStyles/GlobalStyles.stories.js +27 -0
- package/src/service/GlobalStyles/GlobalStyles.vue +21 -0
- package/src/service/HelloWorld.vue +102 -0
- package/src/styles/_functions.scss +187 -0
- package/src/styles/_mixins.scss +366 -0
- package/src/styles/_spacing.scss +66 -0
- package/src/styles/_variables.scss +23 -0
- package/src/styles/global.scss +244 -0
- package/src/styles/main.scss +5 -0
- package/src/styles/table.scss +10 -0
- package/src/styles/toast.scss +84 -0
- package/src/templates/layouts/McContentFixed/McContentFixed.vue +59 -0
- package/src/templates/layouts/McMain/McMain.stories.js +136 -0
- package/src/templates/layouts/McMain/McMain.vue +114 -0
- package/src/templates/layouts/McRoot/McRoot.stories.js +31 -0
- package/src/templates/layouts/McRoot/McRoot.vue +44 -0
- package/src/tokens/animations.scss +50 -0
- package/src/tokens/border-radius.scss +26 -0
- package/src/tokens/box-shadows.scss +31 -0
- package/src/tokens/colors.scss +72 -0
- package/src/tokens/durations.scss +7 -0
- package/src/tokens/easings.scss +6 -0
- package/src/tokens/font-families.scss +8 -0
- package/src/tokens/font-sizes.scss +23 -0
- package/src/tokens/font-weights.scss +9 -0
- package/src/tokens/gradients.scss +15 -0
- package/src/tokens/letter-spacings.scss +6 -0
- package/src/tokens/line-heights.scss +22 -0
- package/src/tokens/media-queries.scss +32 -0
- package/src/tokens/opacities.scss +8 -0
- package/src/tokens/sizes.scss +44 -0
- package/src/tokens/spacings.scss +36 -0
- package/src/tokens/z-indexes.scss +12 -0
- package/src/utils/filters.js +11 -0
- package/src/utils/getTokens.js +41 -0
- package/src/utils/load-icons.js +3 -0
- package/src/utils/treeSearch.js +30 -0
- package/src/utils/webFontLoader.js +12 -0
- package/tests/unit/TaskList.spec.js +14 -0
- package/tests/unit/__snapshots__/storybook.spec.js.snap +930 -0
- package/tests/unit/storybook.spec.js +3 -0
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div v-click-outside="handleClickOutside" class="mc-dropdown" :class="dropdownClasses">
|
|
3
|
+
<div class="mc-dropdown__toggle" :class="toggleClasses" tabindex="0" @keyup.esc="closeDropdown">
|
|
4
|
+
<!-- @slot активатора переключения состояния -->
|
|
5
|
+
<slot name="activator" />
|
|
6
|
+
</div>
|
|
7
|
+
<div :style="dropdownBodyStyles" class="mc-dropdown__body">
|
|
8
|
+
<!-- @slot контента -->
|
|
9
|
+
<slot />
|
|
10
|
+
</div>
|
|
11
|
+
</div>
|
|
12
|
+
</template>
|
|
13
|
+
|
|
14
|
+
<script>
|
|
15
|
+
import VueClickOutside from 'vue-click-outside'
|
|
16
|
+
|
|
17
|
+
export default {
|
|
18
|
+
name: 'McDropdown',
|
|
19
|
+
directives: {
|
|
20
|
+
'click-outside': VueClickOutside,
|
|
21
|
+
},
|
|
22
|
+
props: {
|
|
23
|
+
/**
|
|
24
|
+
* Состояние видимости контента
|
|
25
|
+
*/
|
|
26
|
+
value: {
|
|
27
|
+
type: Boolean,
|
|
28
|
+
default: false,
|
|
29
|
+
},
|
|
30
|
+
/**
|
|
31
|
+
* Выравнивание
|
|
32
|
+
* контента: 'left', 'right'
|
|
33
|
+
*/
|
|
34
|
+
position: {
|
|
35
|
+
type: String,
|
|
36
|
+
default: 'left',
|
|
37
|
+
},
|
|
38
|
+
/**
|
|
39
|
+
* Направление отображения
|
|
40
|
+
* контента: 'top', 'bottom'
|
|
41
|
+
*/
|
|
42
|
+
listPosition: {
|
|
43
|
+
type: String,
|
|
44
|
+
default: 'bottom',
|
|
45
|
+
},
|
|
46
|
+
/**
|
|
47
|
+
* Минимальная ширина выпадаюзего списка
|
|
48
|
+
*/
|
|
49
|
+
listMinWidth: {
|
|
50
|
+
type: String,
|
|
51
|
+
default: 'inherit',
|
|
52
|
+
},
|
|
53
|
+
/**
|
|
54
|
+
* Необходимо ли вращение иконки
|
|
55
|
+
* (элементу для вращения, необходимо добавить класс 'rotate')
|
|
56
|
+
*/
|
|
57
|
+
rotateIcon: {
|
|
58
|
+
type: Boolean,
|
|
59
|
+
default: true,
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
|
|
63
|
+
computed: {
|
|
64
|
+
dropdownClasses() {
|
|
65
|
+
return {
|
|
66
|
+
[`mc-dropdown--position-${this.position}`]: this.position,
|
|
67
|
+
[`mc-dropdown--list-position-${this.listPosition}`]: this.listPosition,
|
|
68
|
+
['mc-dropdown--is-open']: this.value,
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
dropdownBodyStyles() {
|
|
72
|
+
return {
|
|
73
|
+
'min-width': this.listMinWidth,
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
toggleClasses() {
|
|
77
|
+
return {
|
|
78
|
+
['mc-dropdown__toggle--rotate-icon']: this.rotateIcon,
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
activator() {
|
|
82
|
+
return this.$slots.activator[0].elm
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
|
|
86
|
+
watch: {
|
|
87
|
+
$route() {
|
|
88
|
+
this.value && this.closeDropdown()
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
|
|
92
|
+
mounted() {
|
|
93
|
+
this.activator.addEventListener('click', this.toggleDropdown)
|
|
94
|
+
},
|
|
95
|
+
|
|
96
|
+
beforeDestroy() {
|
|
97
|
+
this.activator.removeEventListener('click', this.toggleDropdown)
|
|
98
|
+
},
|
|
99
|
+
|
|
100
|
+
methods: {
|
|
101
|
+
toggleDropdown() {
|
|
102
|
+
/**
|
|
103
|
+
* Событие по тогглу
|
|
104
|
+
* @property {Boolean}
|
|
105
|
+
*/
|
|
106
|
+
this.$emit('input', !this.value)
|
|
107
|
+
},
|
|
108
|
+
handleClickOutside(e) {
|
|
109
|
+
if (!this.value || !document.body.contains(e.target)) return
|
|
110
|
+
this.value && this.closeDropdown()
|
|
111
|
+
},
|
|
112
|
+
closeDropdown() {
|
|
113
|
+
this.$emit('input', false)
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
}
|
|
117
|
+
</script>
|
|
118
|
+
|
|
119
|
+
<style lang="scss">
|
|
120
|
+
.mc-dropdown {
|
|
121
|
+
$block-name: &;
|
|
122
|
+
|
|
123
|
+
position: relative;
|
|
124
|
+
display: inline-block;
|
|
125
|
+
|
|
126
|
+
&__toggle {
|
|
127
|
+
outline: none;
|
|
128
|
+
@include reset-text-indents();
|
|
129
|
+
.mc-svg-icon {
|
|
130
|
+
transition: all $duration-s;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
&__body {
|
|
135
|
+
@include position(absolute, null null null 0);
|
|
136
|
+
z-index: $z-index-dropdown;
|
|
137
|
+
height: 0;
|
|
138
|
+
overflow: hidden;
|
|
139
|
+
margin: 0;
|
|
140
|
+
background-color: transparent;
|
|
141
|
+
opacity: 0;
|
|
142
|
+
visibility: hidden;
|
|
143
|
+
transition: opacity $duration-s, transform $duration-s;
|
|
144
|
+
|
|
145
|
+
.mc-button {
|
|
146
|
+
&:not(.nuxt-link-active):not(.mc-button--is-active):not(.mc-button--variation-red-flat) {
|
|
147
|
+
&:hover {
|
|
148
|
+
background-color: fade-out($color-purple, 0.9);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
&--list-position-top {
|
|
155
|
+
#{$block-name} {
|
|
156
|
+
&__body {
|
|
157
|
+
bottom: 100%;
|
|
158
|
+
margin-bottom: $space-100;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
&--list-position-bottom {
|
|
164
|
+
#{$block-name} {
|
|
165
|
+
&__body {
|
|
166
|
+
top: 100%;
|
|
167
|
+
margin-top: $space-100;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
&--is-open {
|
|
173
|
+
#{$block-name} {
|
|
174
|
+
&__body {
|
|
175
|
+
height: auto;
|
|
176
|
+
visibility: visible;
|
|
177
|
+
overflow: visible;
|
|
178
|
+
opacity: 1;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
#{$block-name} {
|
|
183
|
+
&__toggle--rotate-icon {
|
|
184
|
+
.rotate {
|
|
185
|
+
position: relative;
|
|
186
|
+
transform: rotate(180deg);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
&--position-right {
|
|
193
|
+
#{$block-name} {
|
|
194
|
+
&__body {
|
|
195
|
+
left: auto;
|
|
196
|
+
right: 0;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
&--position-left {
|
|
202
|
+
#{$block-name} {
|
|
203
|
+
&__body {
|
|
204
|
+
left: 0;
|
|
205
|
+
right: auto;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
</style>
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import McDropdownPanel from './McDropdownPanel'
|
|
2
|
+
import McSvgIcon from "../../../elements/McSvgIcon/McSvgIcon"
|
|
3
|
+
import McButton from "../../../elements/McButton/McButton"
|
|
4
|
+
|
|
5
|
+
export default {
|
|
6
|
+
title: 'Patterns/McDropdown/McDropdownPanel',
|
|
7
|
+
component: McDropdownPanel,
|
|
8
|
+
parameters: {
|
|
9
|
+
componentSubtitle: 'Status: Ready',
|
|
10
|
+
design: {
|
|
11
|
+
type: 'figma',
|
|
12
|
+
url: 'https://www.figma.com/file/LXNkU1vlAYmydEiC0l0gDa/MC-Design-System?node-id=19%3A280',
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const Default = () => ({
|
|
18
|
+
components: { McDropdownPanel, McButton, McSvgIcon },
|
|
19
|
+
data() {
|
|
20
|
+
return {
|
|
21
|
+
buttons: [
|
|
22
|
+
{icon: 'mc_id', name: 'Identity'},
|
|
23
|
+
{icon: 'mc_assist', name: 'Assist'},
|
|
24
|
+
{icon: 'mc_studio', name: 'Studio'},
|
|
25
|
+
{icon: 'exit_to_app', name: 'Выйти'},
|
|
26
|
+
],
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
template: `<mc-dropdown-panel>
|
|
30
|
+
<mc-button
|
|
31
|
+
v-for="(btn, i) in buttons"
|
|
32
|
+
:key="i"
|
|
33
|
+
href="#"
|
|
34
|
+
full-width
|
|
35
|
+
text-align="left"
|
|
36
|
+
:variation="btn.icon === 'exit_to_app' ? 'red-flat' : 'black-flat'"
|
|
37
|
+
@click.prevent
|
|
38
|
+
>
|
|
39
|
+
<mc-svg-icon slot="icon-prepend" :name="btn.icon" />
|
|
40
|
+
{{ btn.name }}
|
|
41
|
+
</mc-button>
|
|
42
|
+
</mc-dropdown-panel>`,
|
|
43
|
+
})
|
|
44
|
+
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<section class="mc-dropdown-panel">
|
|
3
|
+
<!-- @slot Слот контента -->
|
|
4
|
+
<slot />
|
|
5
|
+
</section>
|
|
6
|
+
</template>
|
|
7
|
+
|
|
8
|
+
<script>
|
|
9
|
+
export default {
|
|
10
|
+
name: 'McDropdownPanel',
|
|
11
|
+
}
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<style lang="scss">
|
|
15
|
+
.mc-dropdown-panel {
|
|
16
|
+
$block-name: &;
|
|
17
|
+
|
|
18
|
+
box-shadow: $shadow-s;
|
|
19
|
+
border-radius: $radius-150;
|
|
20
|
+
background-color: $color-white;
|
|
21
|
+
padding: $space-100;
|
|
22
|
+
max-width: 320px;
|
|
23
|
+
|
|
24
|
+
&:empty {
|
|
25
|
+
display: none;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.mc-button {
|
|
29
|
+
&--size-m {
|
|
30
|
+
font-weight: $font-weight-medium;
|
|
31
|
+
padding: $space-100;
|
|
32
|
+
.mc-svg-icon {
|
|
33
|
+
@include size($size-300);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
</style>
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { select } from '@storybook/addon-knobs'
|
|
2
|
+
|
|
3
|
+
import McFakeScroll from './McFakeScroll'
|
|
4
|
+
import McTitle from '../../elements/McTitle/McTitle'
|
|
5
|
+
import { getTokenGroup } from '../../utils/getTokens'
|
|
6
|
+
|
|
7
|
+
export default {
|
|
8
|
+
title: 'Patterns/McFakeScroll',
|
|
9
|
+
component: McFakeScroll,
|
|
10
|
+
parameters: {
|
|
11
|
+
componentSubtitle: 'Status: Ready',
|
|
12
|
+
},
|
|
13
|
+
}
|
|
14
|
+
const mediaQueries = getTokenGroup('media-queries')
|
|
15
|
+
|
|
16
|
+
const getUniqueProps = key => {
|
|
17
|
+
return {
|
|
18
|
+
visible: {
|
|
19
|
+
default: select('visible', { ...mediaQueries, default: '' }, 's-down', key),
|
|
20
|
+
},
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const getCommonTags = ctx => {
|
|
25
|
+
return {
|
|
26
|
+
visible: ctx.visible,
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export const Default = () => ({
|
|
31
|
+
components: { McFakeScroll, McTitle },
|
|
32
|
+
computed: {
|
|
33
|
+
tagBind() {
|
|
34
|
+
return getCommonTags(this)
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
props: {
|
|
38
|
+
...getUniqueProps('default'),
|
|
39
|
+
},
|
|
40
|
+
template: `<mc-fake-scroll v-bind="tagBind">
|
|
41
|
+
<div style="max-height: 300px; overflow-y: auto;" tabindex="0">
|
|
42
|
+
<mc-title :ellipsis="false" max-width="100%">
|
|
43
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. A accusamus commodi eos neque odit tempora vitae. Cumque cupiditate delectus ducimus ipsum iste iusto magnam neque nostrum reiciendis voluptatum! Alias dolore dolorem est et fugit inventore iusto libero maiores minima minus necessitatibus nostrum numquam, obcaecati quod rem, repudiandae sunt temporibus tenetur. Amet assumenda commodi consequuntur dicta eius est eum exercitationem, expedita facere fugiat illo impedit in ipsa ipsum magni minima nam nemo odio omnis porro quae quia quisquam quos, recusandae reprehenderit, saepe sequi similique temporibus vel vero. Accusantium adipisci animi aspernatur beatae debitis delectus dignissimos enim et illum, maiores maxime molestiae obcaecati officiis praesentium quidem quis sit suscipit totam veniam, voluptatibus! Ab adipisci amet beatae, corporis delectus ducimus ea esse expedita illo illum magnam magni, perferendis quas qui quidem repellat, similique ullam voluptatem? Ab accusamus assumenda aut commodi doloremque earum eveniet excepturi illum laboriosam minus modi, nihil, non numquam provident quis rem soluta tempore tenetur totam ullam, veniam veritatis voluptates? Accusantium assumenda at delectus dolor esse, nam nesciunt repellat temporibus. Dignissimos itaque labore qui repellendus temporibus. Alias architecto, commodi consequuntur deserunt distinctio dolores eligendi iusto magnam mollitia, nihil perferendis porro quisquam sed sint sunt. Culpa dicta earum eligendi provident unde ut. Accusamus aperiam, architecto deleniti dolores eaque iure nihil repellat suscipit. Asperiores autem dolores eos error facilis, fuga id modi molestias neque perspiciatis quaerat reiciendis reprehenderit vel velit voluptates? A, autem expedita fugiat libero nostrum perferendis porro qui rerum voluptas. Ab aliquam amet aperiam asperiores commodi corporis cumque dolorum eaque error excepturi expedita explicabo, fuga illo mollitia nam non pariatur quaerat quas rem tenetur. Accusamus amet aspernatur corporis et excepturi explicabo facere id, incidunt ipsam, maiores nam pariatur quidem, repudiandae sequi sint ut voluptates. Accusamus aliquam, aperiam asperiores assumenda at cumque dolorum ducimus facilis illo maiores nemo nostrum omnis optio praesentium, quidem similique soluta! Architecto aspernatur deleniti dicta nihil obcaecati! Animi commodi delectus fuga soluta sunt. Deserunt eligendi laudantium molestiae nisi sapiente tempore? Accusamus ad consectetur consequuntur dicta dolores et expedita facere ipsa itaque iusto magni minus nemo nulla officia perferendis quae sequi, sint soluta suscipit voluptatem! Ab alias, aperiam culpa dolorum eaque eligendi eveniet ex ipsam iste libero maxime, minima modi nobis numquam omnis, quia quis quod repellendus repudiandae sed tempora tempore ut vero voluptas voluptates. Aliquam asperiores consectetur, consequuntur corporis et eum exercitationem facilis ipsam ipsum labore natus neque optio quod similique, sit. Eum hic ipsam laborum libero magni pariatur placeat quo! Accusantium atque aut beatae blanditiis consequuntur deserunt dignissimos dolor dolorum, eligendi est et incidunt laboriosam nemo nobis non officia perferendis porro quibusdam! Alias architecto autem, commodi deleniti dicta dolore molestias non officia quae velit. Accusamus aliquid blanditiis cumque deleniti dolor dolore doloremque dolores eaque eius eligendi hic impedit in ipsa laboriosam nam nesciunt nisi omnis quae quidem quis ratione recusandae rerum, suscipit velit, vero voluptas voluptatibus voluptatum. Ab alias atque beatae consectetur consequatur cum dicta dolores ea earum, ex expedita explicabo facilis fugiat harum maiores, minima nulla porro quos recusandae repellat soluta sunt tempora tempore tenetur ut vero voluptas? A adipisci alias aliquam aut commodi corporis cumque dignissimos doloremque ea earum eius esse et ex exercitationem explicabo harum illum in incidunt iure laboriosam molestiae molestias, mollitia nam porro qui quidem quis quo suscipit tempore temporibus ullam, veniam veritatis voluptatibus. A ab accusantium, adipisci alias animi, aperiam asperiores aut autem deleniti earum eius eos explicabo in laboriosam laudantium magni, modi necessitatibus nobis numquam obcaecati officia omnis pariatur quidem quis quod reiciendis reprehenderit sunt tenetur unde ut veniam voluptas voluptatem voluptatum. Aperiam architecto corporis cupiditate distinctio dolorum, et inventore odio odit officiis quia! Accusantium aut dolores eveniet facere maiores mollitia provident voluptatem voluptatum. Ad assumenda dignissimos eius est explicabo id illo incidunt labore magnam nam nemo nesciunt, numquam perspiciatis porro quasi ratione rem saepe tenetur unde voluptas. A adipisci animi aperiam aut consectetur consequuntur delectus distinctio eaque, enim illum magnam magni nihil, numquam repellendus, tenetur ullam voluptates. Ad aliquam autem enim et fugit in ipsam nesciunt obcaecati omnis perferendis, porro quaerat quas reprehenderit ut veritatis. Accusamus, assumenda consectetur ex exercitationem libero natus neque nobis officia repudiandae sapiente. Accusamus ad aliquam autem culpa dolorem eaque fuga, illo, illum ipsum laboriosam nulla pariatur porro quidem quo repellendus reprehenderit sit suscipit voluptates. Amet culpa cumque deleniti distinctio dolorem doloremque eius eveniet id ipsa magnam nam, natus pariatur perferendis provident quaerat. Architecto at atque corporis cumque dicta doloremque eveniet illo labore magni minus modi molestiae nihil omnis praesentium quaerat rem repudiandae sequi similique soluta, tempore tenetur unde voluptates? Asperiores consectetur culpa deleniti dolores odit quo recusandae similique tempora temporibus, veniam. Ea explicabo harum odio possimus soluta, ut! Aperiam blanditiis exercitationem id ipsam laborum laudantium perspiciatis temporibus ullam voluptate voluptates. A alias aliquam animi aspernatur atque blanditiis consectetur eaque exercitationem expedita, facilis harum id illum labore laudantium nam necessitatibus neque nesciunt perferendis possimus quibusdam quis sint voluptate voluptatem. Deserunt distinctio dolor ducimus eligendi et, explicabo fugit incidunt ipsa ipsam minima nam nostrum officia placeat, reiciendis velit? Commodi deserunt dicta eligendi error modi obcaecati praesentium quia quibusdam repellendus saepe! Aperiam doloribus maxime mollitia, odit quis sapiente similique? Commodi doloribus labore, nobis quibusdam voluptate voluptatum. Accusamus adipisci alias cumque ea excepturi impedit inventore ipsum iste iusto magnam nemo neque nesciunt nostrum quaerat quasi reiciendis, repellendus vel velit voluptates voluptatum! Aut eius fugit ipsum nostrum omnis repellendus soluta ut! Ipsa odit, ullam! Architecto at blanditiis, corporis deleniti deserunt eius eum ex exercitationem harum in itaque laudantium maxime nemo nulla numquam placeat praesentium provident qui quibusdam quisquam quos reiciendis repudiandae saepe sit temporibus totam vitae! Dolor doloremque est et maiores nobis officiis porro reiciendis ut? A amet blanditiis cumque cupiditate deserunt dicta dolore dolorum ducimus eaque earum eligendi esse ex ipsam ipsum iure, modi molestias mollitia nostrum officiis pariatur possimus quaerat quas quidem quo quos ratione recusandae similique? Ab corporis, debitis deserunt facere facilis in iure magni natus optio porro quae repellendus sunt voluptas! Alias commodi consequatur corporis delectus dignissimos doloribus, earum ex, explicabo id illo laborum magni necessitatibus nihil officia praesentium rem soluta tempora tempore temporibus unde!
|
|
44
|
+
</mc-title>
|
|
45
|
+
</div>
|
|
46
|
+
</mc-fake-scroll>`,
|
|
47
|
+
})
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div ref="main" :class="mainClasses">
|
|
3
|
+
<div class="mc-fake-scroll__main">
|
|
4
|
+
<!-- @slot Слот для <strong>одного (!)</strong> элемента со скроллом -->
|
|
5
|
+
<slot />
|
|
6
|
+
</div>
|
|
7
|
+
<div
|
|
8
|
+
ref="track"
|
|
9
|
+
:class="trackClasses"
|
|
10
|
+
@mousedown.stop="onFakeScrollBarTrackMouseDown"
|
|
11
|
+
@click.stop="onFakeScrollBarTrackClick"
|
|
12
|
+
>
|
|
13
|
+
<div
|
|
14
|
+
ref="thumb"
|
|
15
|
+
class="mc-fake-scroll__thumb"
|
|
16
|
+
:style="thumbStyles"
|
|
17
|
+
@mousedown.stop="onFakeScrollBarMouseDown"
|
|
18
|
+
></div>
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
|
+
</template>
|
|
22
|
+
|
|
23
|
+
<script>
|
|
24
|
+
export default {
|
|
25
|
+
name: 'McFakeScroll',
|
|
26
|
+
props: {
|
|
27
|
+
/**
|
|
28
|
+
* Значение медиа-запроса (из токенов),
|
|
29
|
+
* при котором скроллбар
|
|
30
|
+
* будет виден всегда:
|
|
31
|
+
* `xl`, `xl-down`, `l`, `l-down`, `m`, `m-down` и т.д.
|
|
32
|
+
*/
|
|
33
|
+
visible: {
|
|
34
|
+
type: String,
|
|
35
|
+
default: '',
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
data() {
|
|
39
|
+
return {
|
|
40
|
+
hasScroll: false,
|
|
41
|
+
thumbBox: null,
|
|
42
|
+
trackBox: null,
|
|
43
|
+
thumbHeight: 0,
|
|
44
|
+
scrollRatio: 1,
|
|
45
|
+
trackIsClicked: false,
|
|
46
|
+
dragOptions: {
|
|
47
|
+
startClientPos: 0,
|
|
48
|
+
distance: 0,
|
|
49
|
+
mouseIsDown: false,
|
|
50
|
+
},
|
|
51
|
+
scrollElContentHeight: null,
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
computed: {
|
|
55
|
+
thumbStyles() {
|
|
56
|
+
return {
|
|
57
|
+
height: `${this.thumbHeight}px`,
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
|
|
61
|
+
scrollEl() {
|
|
62
|
+
return this.$slots.default ? this.$slots.default[0].elm : null
|
|
63
|
+
},
|
|
64
|
+
mainClasses() {
|
|
65
|
+
return {
|
|
66
|
+
'mc-fake-scroll': true,
|
|
67
|
+
[`mc-fake-scroll--visible${this.visible && `-${this.visible}`}`]: this.hasScroll,
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
trackClasses() {
|
|
71
|
+
return {
|
|
72
|
+
'mc-fake-scroll__track': true,
|
|
73
|
+
'mc-fake-scroll__track--visible': this.hasScroll,
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
mounted() {
|
|
78
|
+
this.scrollEl && this.scrollEl.addEventListener('scroll', this.onFakeScrollBarContentScroll)
|
|
79
|
+
|
|
80
|
+
this.$nextTick(() => {
|
|
81
|
+
this.updateData()
|
|
82
|
+
})
|
|
83
|
+
window.addEventListener('resize', this.resize)
|
|
84
|
+
|
|
85
|
+
document.documentElement.addEventListener('mousemove', this.onFakeScrollBarMouseMove)
|
|
86
|
+
document.documentElement.addEventListener('mouseup', this.onFakeScrollBarMouseUp)
|
|
87
|
+
},
|
|
88
|
+
|
|
89
|
+
beforeDestroy() {
|
|
90
|
+
this.scrollEl && this.scrollEl.removeEventListener('scroll', this.onFakeScrollBarContentScroll)
|
|
91
|
+
document.documentElement.removeEventListener('mousemove', this.onFakeScrollBarMouseMove)
|
|
92
|
+
document.documentElement.removeEventListener('mouseup', this.onFakeScrollBarMouseUp)
|
|
93
|
+
|
|
94
|
+
window.removeEventListener('resize', this.resize)
|
|
95
|
+
},
|
|
96
|
+
methods: {
|
|
97
|
+
resize() {
|
|
98
|
+
this.updateData()
|
|
99
|
+
},
|
|
100
|
+
updateData() {
|
|
101
|
+
this.checkScroll()
|
|
102
|
+
this.setBoxes()
|
|
103
|
+
this.setThumbHeight()
|
|
104
|
+
this.setScrollRatio()
|
|
105
|
+
this.scrollElContentHeight = this.scrollEl.scrollHeight
|
|
106
|
+
},
|
|
107
|
+
resetData() {
|
|
108
|
+
this.scrollEl.scrollTo(0, 0)
|
|
109
|
+
this.scrollElContentHeight = this.scrollEl.scrollHeight
|
|
110
|
+
setTimeout(() => {
|
|
111
|
+
this.updateData()
|
|
112
|
+
}, 0)
|
|
113
|
+
},
|
|
114
|
+
checkScroll() {
|
|
115
|
+
this.hasScroll = false
|
|
116
|
+
if (this.scrollEl) {
|
|
117
|
+
this.hasScroll = this.scrollEl.clientHeight < this.scrollEl.scrollHeight
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
setThumbHeight() {
|
|
121
|
+
if (this.scrollEl) {
|
|
122
|
+
const thumbRatio = Math.min(this.scrollEl.clientHeight / this.scrollEl.scrollHeight, 1.0)
|
|
123
|
+
this.thumbHeight = this.scrollEl.clientHeight * thumbRatio
|
|
124
|
+
if (this.$refs.thumb) {
|
|
125
|
+
this.thumbBox.height = this.$refs.thumb.getBoundingClientRect().height
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
setScrollRatio() {
|
|
130
|
+
if (this.thumbBox && this.trackBox) {
|
|
131
|
+
const availableTrackWay = this.trackBox.height - this.thumbHeight
|
|
132
|
+
const availableContentWay = this.scrollEl.scrollHeight - this.scrollEl.clientHeight
|
|
133
|
+
this.scrollRatio = Math.min(availableTrackWay / availableContentWay, 1.0)
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
setBoxes() {
|
|
137
|
+
this.thumbBox = this.getBoxPos(this.$refs.thumb)
|
|
138
|
+
this.trackBox = this.getBoxPos(this.$refs.track)
|
|
139
|
+
},
|
|
140
|
+
getBoxPos(el) {
|
|
141
|
+
if (!el) return null
|
|
142
|
+
const box = el.getBoundingClientRect()
|
|
143
|
+
return {
|
|
144
|
+
height: box.height,
|
|
145
|
+
bottom: box.bottom,
|
|
146
|
+
top: box.top + window.pageYOffset,
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
|
|
150
|
+
onFakeScrollBarTrackMouseDown(e) {
|
|
151
|
+
this.updateData()
|
|
152
|
+
let pos = e.clientY - this.trackBox.top
|
|
153
|
+
if (pos > this.trackBox.height - this.thumbBox.height * 0.5) {
|
|
154
|
+
pos -= this.thumbBox.height
|
|
155
|
+
} else if (pos > this.thumbBox.height * 0.5) {
|
|
156
|
+
pos -= this.thumbBox.height * 0.5
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
this.trackIsClicked = true
|
|
160
|
+
this.scrollEl.scrollTo({
|
|
161
|
+
top: pos / this.scrollRatio,
|
|
162
|
+
behavior: 'smooth',
|
|
163
|
+
})
|
|
164
|
+
},
|
|
165
|
+
onFakeScrollBarTrackClick() {
|
|
166
|
+
this.trackIsClicked = false
|
|
167
|
+
},
|
|
168
|
+
onFakeScrollBarMouseDown(e) {
|
|
169
|
+
this.dragOptions.startClientPos = e.clientY
|
|
170
|
+
this.dragOptions.mouseIsDown = true
|
|
171
|
+
this.setBoxes()
|
|
172
|
+
document.body.classList.add('no-user-select')
|
|
173
|
+
},
|
|
174
|
+
onFakeScrollBarMouseMove(e) {
|
|
175
|
+
if (!this.dragOptions.mouseIsDown) return
|
|
176
|
+
|
|
177
|
+
this.setThumbHeight()
|
|
178
|
+
this.setScrollRatio()
|
|
179
|
+
|
|
180
|
+
this.dragOptions.distance = e.clientY - this.dragOptions.startClientPos
|
|
181
|
+
|
|
182
|
+
let calculateTopPos = this.thumbBox.top - this.trackBox.top + this.dragOptions.distance
|
|
183
|
+
this.setThumbPos(calculateTopPos)
|
|
184
|
+
this.scrollEl.scrollTo(0, calculateTopPos / this.scrollRatio)
|
|
185
|
+
},
|
|
186
|
+
setThumbPos(pos) {
|
|
187
|
+
if (pos < 0) {
|
|
188
|
+
this.$refs.thumb.style.top = '0px'
|
|
189
|
+
} else if (pos + this.thumbBox.height > this.trackBox.height) {
|
|
190
|
+
this.$refs.thumb.style.top = `${this.trackBox.height - this.thumbBox.height}px`
|
|
191
|
+
} else {
|
|
192
|
+
this.$refs.thumb.style.top = `${pos}px`
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
onFakeScrollBarMouseUp() {
|
|
196
|
+
this.dragOptions.mouseIsDown = false
|
|
197
|
+
document.body.classList.remove('no-user-select')
|
|
198
|
+
},
|
|
199
|
+
onFakeScrollBarContentScroll(e) {
|
|
200
|
+
const startScrollElContentHeight = this.scrollElContentHeight
|
|
201
|
+
if (this.dragOptions.mouseIsDown || this.trackIsClicked) return
|
|
202
|
+
|
|
203
|
+
this.updateData()
|
|
204
|
+
const topPos = e.target.scrollTop
|
|
205
|
+
this.setThumbPos(topPos * this.scrollRatio)
|
|
206
|
+
|
|
207
|
+
if (startScrollElContentHeight !== e.target.scrollHeight) {
|
|
208
|
+
this.scrollEl.scrollTo(0, e.target.scrollHeight * this.scrollRatio)
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
},
|
|
212
|
+
}
|
|
213
|
+
</script>
|
|
214
|
+
|
|
215
|
+
<style lang="scss">
|
|
216
|
+
@mixin track-visibility() {
|
|
217
|
+
right: 0;
|
|
218
|
+
width: 7px;
|
|
219
|
+
opacity: 1;
|
|
220
|
+
}
|
|
221
|
+
.mc-fake-scroll {
|
|
222
|
+
$block-name: &;
|
|
223
|
+
&__main {
|
|
224
|
+
> * {
|
|
225
|
+
@include hide-scrollbar();
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
position: relative;
|
|
229
|
+
&__track {
|
|
230
|
+
@include position(absolute, 0 -7px 0 null);
|
|
231
|
+
width: 0;
|
|
232
|
+
opacity: 0;
|
|
233
|
+
background-color: $color-transparent;
|
|
234
|
+
z-index: 101;
|
|
235
|
+
display: block;
|
|
236
|
+
}
|
|
237
|
+
&__thumb {
|
|
238
|
+
@include position(absolute, 0 1px null 1px);
|
|
239
|
+
background-color: $color-outline-gray;
|
|
240
|
+
height: 100px;
|
|
241
|
+
border-radius: $radius-100;
|
|
242
|
+
&:hover,
|
|
243
|
+
&:active {
|
|
244
|
+
background-color: $color-gray;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
&:hover {
|
|
248
|
+
#{$block-name}__track--visible {
|
|
249
|
+
@include track-visibility();
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
&__track--visible:active {
|
|
253
|
+
@include track-visibility();
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
&--visible {
|
|
257
|
+
#{$block-name}__track {
|
|
258
|
+
@include track-visibility();
|
|
259
|
+
}
|
|
260
|
+
@each $name, $value in $token-media-queries {
|
|
261
|
+
&-#{$name} {
|
|
262
|
+
@media #{$value} {
|
|
263
|
+
#{$block-name}__track {
|
|
264
|
+
@include track-visibility();
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
.no-user-select {
|
|
272
|
+
-webkit-user-select: none;
|
|
273
|
+
-moz-user-select: none;
|
|
274
|
+
-ms-user-select: none;
|
|
275
|
+
}
|
|
276
|
+
</style>
|