motor-admin 0.1.42 → 0.1.48
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.
- checksums.yaml +4 -4
- data/LICENSE +1 -1
- data/README.md +129 -9
- data/Rakefile +2 -11
- data/app/controllers/concerns/motor/current_user_method.rb +15 -0
- data/app/controllers/motor/active_storage_attachments_controller.rb +1 -1
- data/app/controllers/motor/api_base_controller.rb +14 -14
- data/app/controllers/motor/application_controller.rb +1 -0
- data/app/controllers/motor/assets_controller.rb +4 -2
- data/app/controllers/motor/data_controller.rb +0 -6
- data/app/controllers/motor/icons_controller.rb +20 -0
- data/app/controllers/motor/ui_controller.rb +2 -0
- data/app/mailers/motor/alerts_mailer.rb +5 -5
- data/app/models/motor/tag.rb +1 -1
- data/app/views/motor/alerts_mailer/alert_email.html.erb +1 -1
- data/app/views/motor/ui/show.html.erb +1 -1
- data/config/routes.rb +1 -2
- data/lib/motor/active_record_utils.rb +1 -0
- data/lib/motor/active_record_utils/active_storage_blob_patch.rb +25 -0
- data/lib/motor/active_record_utils/active_storage_links_extension.rb +1 -1
- data/lib/motor/admin.rb +7 -1
- data/lib/motor/api_query/apply_scope.rb +1 -1
- data/lib/motor/api_query/build_json.rb +2 -2
- data/lib/motor/api_query/search.rb +1 -7
- data/lib/motor/assets.rb +6 -0
- data/lib/motor/build_schema.rb +2 -0
- data/lib/motor/build_schema/active_storage_attachment_schema.rb +30 -1
- data/lib/motor/build_schema/adjust_devise_model_schema.rb +60 -0
- data/lib/motor/build_schema/find_display_column.rb +2 -0
- data/lib/motor/build_schema/find_icon.rb +131 -0
- data/lib/motor/build_schema/load_from_rails.rb +52 -26
- data/lib/motor/build_schema/persist_resource_configs.rb +2 -2
- data/lib/motor/build_schema/utils.rb +13 -0
- data/lib/motor/configs/build_ui_app_tag.rb +6 -6
- data/lib/motor/configs/load_from_cache.rb +1 -1
- data/lib/motor/configs/sync_with_remote.rb +1 -1
- data/lib/motor/queries/run_query.rb +1 -1
- data/lib/motor/tags.rb +1 -1
- data/lib/motor/tasks/motor.rake +4 -0
- data/lib/motor/version.rb +1 -1
- data/ui/dist/icons/2fa.svg.gz +0 -0
- data/ui/dist/icons/3d-cube-sphere.svg.gz +0 -0
- data/ui/dist/icons/a-b.svg.gz +0 -0
- data/ui/dist/icons/access-point-off.svg.gz +0 -0
- data/ui/dist/icons/access-point.svg.gz +0 -0
- data/ui/dist/icons/accessible.svg.gz +0 -0
- data/ui/dist/icons/activity.svg.gz +0 -0
- data/ui/dist/icons/ad.svg.gz +0 -0
- data/ui/dist/icons/adjustments-alt.svg.gz +0 -0
- data/ui/dist/icons/adjustments-horizontal.svg.gz +0 -0
- data/ui/dist/icons/adjustments.svg.gz +0 -0
- data/ui/dist/icons/aerial-lift.svg.gz +0 -0
- data/ui/dist/icons/affiliate.svg.gz +0 -0
- data/ui/dist/icons/alarm.svg.gz +0 -0
- data/ui/dist/icons/alert-circle.svg.gz +0 -0
- data/ui/dist/icons/alert-octagon.svg.gz +0 -0
- data/ui/dist/icons/alert-triangle.svg.gz +0 -0
- data/ui/dist/icons/alien.svg.gz +0 -0
- data/ui/dist/icons/align-center.svg.gz +0 -0
- data/ui/dist/icons/align-justified.svg.gz +0 -0
- data/ui/dist/icons/align-left.svg.gz +0 -0
- data/ui/dist/icons/align-right.svg.gz +0 -0
- data/ui/dist/icons/ambulance.svg.gz +0 -0
- data/ui/dist/icons/anchor.svg.gz +0 -0
- data/ui/dist/icons/antenna-bars-1.svg.gz +0 -0
- data/ui/dist/icons/antenna-bars-2.svg.gz +0 -0
- data/ui/dist/icons/antenna-bars-3.svg.gz +0 -0
- data/ui/dist/icons/antenna-bars-4.svg.gz +0 -0
- data/ui/dist/icons/antenna-bars-5.svg.gz +0 -0
- data/ui/dist/icons/aperture.svg.gz +0 -0
- data/ui/dist/icons/apps.svg.gz +0 -0
- data/ui/dist/icons/archive.svg.gz +0 -0
- data/ui/dist/icons/arrow-back-up.svg.gz +0 -0
- data/ui/dist/icons/arrow-back.svg.gz +0 -0
- data/ui/dist/icons/arrow-bar-down.svg.gz +0 -0
- data/ui/dist/icons/arrow-bar-left.svg.gz +0 -0
- data/ui/dist/icons/arrow-bar-right.svg.gz +0 -0
- data/ui/dist/icons/arrow-bar-to-down.svg.gz +0 -0
- data/ui/dist/icons/arrow-bar-to-left.svg.gz +0 -0
- data/ui/dist/icons/arrow-bar-to-right.svg.gz +0 -0
- data/ui/dist/icons/arrow-bar-to-up.svg.gz +0 -0
- data/ui/dist/icons/arrow-bar-up.svg.gz +0 -0
- data/ui/dist/icons/arrow-big-down.svg.gz +0 -0
- data/ui/dist/icons/arrow-big-left.svg.gz +0 -0
- data/ui/dist/icons/arrow-big-right.svg.gz +0 -0
- data/ui/dist/icons/arrow-big-top.svg.gz +0 -0
- data/ui/dist/icons/arrow-bottom-bar.svg.gz +0 -0
- data/ui/dist/icons/arrow-bottom-circle.svg.gz +0 -0
- data/ui/dist/icons/arrow-bottom-square.svg.gz +0 -0
- data/ui/dist/icons/arrow-bottom-tail.svg.gz +0 -0
- data/ui/dist/icons/arrow-down-circle.svg.gz +0 -0
- data/ui/dist/icons/arrow-down-left-circle.svg.gz +0 -0
- data/ui/dist/icons/arrow-down-left.svg.gz +0 -0
- data/ui/dist/icons/arrow-down-right-circle.svg.gz +0 -0
- data/ui/dist/icons/arrow-down-right.svg.gz +0 -0
- data/ui/dist/icons/arrow-down.svg.gz +0 -0
- data/ui/dist/icons/arrow-forward-up.svg.gz +0 -0
- data/ui/dist/icons/arrow-forward.svg.gz +0 -0
- data/ui/dist/icons/arrow-left-bar.svg.gz +0 -0
- data/ui/dist/icons/arrow-left-circle.svg.gz +0 -0
- data/ui/dist/icons/arrow-left-square.svg.gz +0 -0
- data/ui/dist/icons/arrow-left-tail.svg.gz +0 -0
- data/ui/dist/icons/arrow-left.svg.gz +0 -0
- data/ui/dist/icons/arrow-loop-left.svg.gz +0 -0
- data/ui/dist/icons/arrow-loop-right.svg.gz +0 -0
- data/ui/dist/icons/arrow-narrow-down.svg.gz +0 -0
- data/ui/dist/icons/arrow-narrow-left.svg.gz +0 -0
- data/ui/dist/icons/arrow-narrow-right.svg.gz +0 -0
- data/ui/dist/icons/arrow-narrow-up.svg.gz +0 -0
- data/ui/dist/icons/arrow-ramp-left.svg.gz +0 -0
- data/ui/dist/icons/arrow-ramp-right.svg.gz +0 -0
- data/ui/dist/icons/arrow-right-bar.svg.gz +0 -0
- data/ui/dist/icons/arrow-right-circle.svg.gz +0 -0
- data/ui/dist/icons/arrow-right-square.svg.gz +0 -0
- data/ui/dist/icons/arrow-right-tail.svg.gz +0 -0
- data/ui/dist/icons/arrow-right.svg.gz +0 -0
- data/ui/dist/icons/arrow-top-bar.svg.gz +0 -0
- data/ui/dist/icons/arrow-top-circle.svg.gz +0 -0
- data/ui/dist/icons/arrow-top-square.svg.gz +0 -0
- data/ui/dist/icons/arrow-top-tail.svg.gz +0 -0
- data/ui/dist/icons/arrow-up-circle.svg.gz +0 -0
- data/ui/dist/icons/arrow-up-left-circle.svg.gz +0 -0
- data/ui/dist/icons/arrow-up-left.svg.gz +0 -0
- data/ui/dist/icons/arrow-up-right-circle.svg.gz +0 -0
- data/ui/dist/icons/arrow-up-right.svg.gz +0 -0
- data/ui/dist/icons/arrow-up.svg.gz +0 -0
- data/ui/dist/icons/arrow-wave-left-down.svg.gz +0 -0
- data/ui/dist/icons/arrow-wave-left-up.svg.gz +0 -0
- data/ui/dist/icons/arrow-wave-right-down.svg.gz +0 -0
- data/ui/dist/icons/arrow-wave-right-up.svg.gz +0 -0
- data/ui/dist/icons/arrows-diagonal-2.svg.gz +0 -0
- data/ui/dist/icons/arrows-diagonal.svg.gz +0 -0
- data/ui/dist/icons/arrows-double-ne-sw.svg.gz +0 -0
- data/ui/dist/icons/arrows-double-nw-se.svg.gz +0 -0
- data/ui/dist/icons/arrows-double-se-nw.svg.gz +0 -0
- data/ui/dist/icons/arrows-double-sw-ne.svg.gz +0 -0
- data/ui/dist/icons/arrows-down-up.svg.gz +0 -0
- data/ui/dist/icons/arrows-down.svg.gz +0 -0
- data/ui/dist/icons/arrows-horizontal.svg.gz +0 -0
- data/ui/dist/icons/arrows-join-2.svg.gz +0 -0
- data/ui/dist/icons/arrows-join.svg.gz +0 -0
- data/ui/dist/icons/arrows-left-down.svg.gz +0 -0
- data/ui/dist/icons/arrows-left-right.svg.gz +0 -0
- data/ui/dist/icons/arrows-left.svg.gz +0 -0
- data/ui/dist/icons/arrows-maximize.svg.gz +0 -0
- data/ui/dist/icons/arrows-minimize.svg.gz +0 -0
- data/ui/dist/icons/arrows-right-down.svg.gz +0 -0
- data/ui/dist/icons/arrows-right-left.svg.gz +0 -0
- data/ui/dist/icons/arrows-right.svg.gz +0 -0
- data/ui/dist/icons/arrows-sort.svg.gz +0 -0
- data/ui/dist/icons/arrows-split-2.svg.gz +0 -0
- data/ui/dist/icons/arrows-split.svg.gz +0 -0
- data/ui/dist/icons/arrows-up-down.svg.gz +0 -0
- data/ui/dist/icons/arrows-up-left.svg.gz +0 -0
- data/ui/dist/icons/arrows-up-right.svg.gz +0 -0
- data/ui/dist/icons/arrows-up.svg.gz +0 -0
- data/ui/dist/icons/arrows-vertical.svg.gz +0 -0
- data/ui/dist/icons/artboard.svg.gz +0 -0
- data/ui/dist/icons/aspect-ratio.svg.gz +0 -0
- data/ui/dist/icons/at.svg.gz +0 -0
- data/ui/dist/icons/atom-2.svg.gz +0 -0
- data/ui/dist/icons/atom.svg.gz +0 -0
- data/ui/dist/icons/award.svg.gz +0 -0
- data/ui/dist/icons/backhoe.svg.gz +0 -0
- data/ui/dist/icons/backspace.svg.gz +0 -0
- data/ui/dist/icons/ball-american-football.svg.gz +0 -0
- data/ui/dist/icons/ball-basketball.svg.gz +0 -0
- data/ui/dist/icons/ball-bowling.svg.gz +0 -0
- data/ui/dist/icons/ball-football-off.svg.gz +0 -0
- data/ui/dist/icons/ball-football.svg.gz +0 -0
- data/ui/dist/icons/ball-tennis.svg.gz +0 -0
- data/ui/dist/icons/ball-volleyball.svg.gz +0 -0
- data/ui/dist/icons/ban.svg.gz +0 -0
- data/ui/dist/icons/bandage.svg.gz +0 -0
- data/ui/dist/icons/barcode.svg.gz +0 -0
- data/ui/dist/icons/basket.svg.gz +0 -0
- data/ui/dist/icons/battery-1.svg.gz +0 -0
- data/ui/dist/icons/battery-2.svg.gz +0 -0
- data/ui/dist/icons/battery-3.svg.gz +0 -0
- data/ui/dist/icons/battery-4.svg.gz +0 -0
- data/ui/dist/icons/battery-automotive.svg.gz +0 -0
- data/ui/dist/icons/battery-charging.svg.gz +0 -0
- data/ui/dist/icons/battery-off.svg.gz +0 -0
- data/ui/dist/icons/battery.svg.gz +0 -0
- data/ui/dist/icons/bed.svg.gz +0 -0
- data/ui/dist/icons/bell-minus.svg.gz +0 -0
- data/ui/dist/icons/bell-off.svg.gz +0 -0
- data/ui/dist/icons/bell-plus.svg.gz +0 -0
- data/ui/dist/icons/bell-ringing-2.svg.gz +0 -0
- data/ui/dist/icons/bell-ringing.svg.gz +0 -0
- data/ui/dist/icons/bell-x.svg.gz +0 -0
- data/ui/dist/icons/bell.svg.gz +0 -0
- data/ui/dist/icons/bike.svg.gz +0 -0
- data/ui/dist/icons/binary.svg.gz +0 -0
- data/ui/dist/icons/biohazard.svg.gz +0 -0
- data/ui/dist/icons/blockquote.svg.gz +0 -0
- data/ui/dist/icons/bluetooth-connected.svg.gz +0 -0
- data/ui/dist/icons/bluetooth-off.svg.gz +0 -0
- data/ui/dist/icons/bluetooth.svg.gz +0 -0
- data/ui/dist/icons/bold.svg.gz +0 -0
- data/ui/dist/icons/bolt-off.svg.gz +0 -0
- data/ui/dist/icons/bolt.svg.gz +0 -0
- data/ui/dist/icons/bone.svg.gz +0 -0
- data/ui/dist/icons/book.svg.gz +0 -0
- data/ui/dist/icons/bookmark-off.svg.gz +0 -0
- data/ui/dist/icons/bookmark.svg.gz +0 -0
- data/ui/dist/icons/bookmarks.svg.gz +0 -0
- data/ui/dist/icons/border-all.svg.gz +0 -0
- data/ui/dist/icons/border-bottom.svg.gz +0 -0
- data/ui/dist/icons/border-horizontal.svg.gz +0 -0
- data/ui/dist/icons/border-inner.svg.gz +0 -0
- data/ui/dist/icons/border-left.svg.gz +0 -0
- data/ui/dist/icons/border-none.svg.gz +0 -0
- data/ui/dist/icons/border-outer.svg.gz +0 -0
- data/ui/dist/icons/border-radius.svg.gz +0 -0
- data/ui/dist/icons/border-right.svg.gz +0 -0
- data/ui/dist/icons/border-style.svg.gz +0 -0
- data/ui/dist/icons/border-top.svg.gz +0 -0
- data/ui/dist/icons/border-vertical.svg.gz +0 -0
- data/ui/dist/icons/box-margin.svg.gz +0 -0
- data/ui/dist/icons/box-model.svg.gz +0 -0
- data/ui/dist/icons/box-multiple-0.svg.gz +0 -0
- data/ui/dist/icons/box-multiple-1.svg.gz +0 -0
- data/ui/dist/icons/box-multiple-2.svg.gz +0 -0
- data/ui/dist/icons/box-multiple-3.svg.gz +0 -0
- data/ui/dist/icons/box-multiple-4.svg.gz +0 -0
- data/ui/dist/icons/box-multiple-5.svg.gz +0 -0
- data/ui/dist/icons/box-multiple-6.svg.gz +0 -0
- data/ui/dist/icons/box-multiple-7.svg.gz +0 -0
- data/ui/dist/icons/box-multiple-8.svg.gz +0 -0
- data/ui/dist/icons/box-multiple-9.svg.gz +0 -0
- data/ui/dist/icons/box-multiple.svg.gz +0 -0
- data/ui/dist/icons/box-padding.svg.gz +0 -0
- data/ui/dist/icons/box.svg.gz +0 -0
- data/ui/dist/icons/braces.svg.gz +0 -0
- data/ui/dist/icons/brackets.svg.gz +0 -0
- data/ui/dist/icons/brand-airbnb.svg.gz +0 -0
- data/ui/dist/icons/brand-android.svg.gz +0 -0
- data/ui/dist/icons/brand-apple-arcade.svg.gz +0 -0
- data/ui/dist/icons/brand-apple.svg.gz +0 -0
- data/ui/dist/icons/brand-appstore.svg.gz +0 -0
- data/ui/dist/icons/brand-asana.svg.gz +0 -0
- data/ui/dist/icons/brand-behance.svg.gz +0 -0
- data/ui/dist/icons/brand-bing.svg.gz +0 -0
- data/ui/dist/icons/brand-bitbucket.svg.gz +0 -0
- data/ui/dist/icons/brand-booking.svg.gz +0 -0
- data/ui/dist/icons/brand-chrome.svg.gz +0 -0
- data/ui/dist/icons/brand-codepen.svg.gz +0 -0
- data/ui/dist/icons/brand-codesandbox.svg.gz +0 -0
- data/ui/dist/icons/brand-css3.svg.gz +0 -0
- data/ui/dist/icons/brand-deviantart.svg.gz +0 -0
- data/ui/dist/icons/brand-discord.svg.gz +0 -0
- data/ui/dist/icons/brand-disqus.svg.gz +0 -0
- data/ui/dist/icons/brand-docker.svg.gz +0 -0
- data/ui/dist/icons/brand-dribbble.svg.gz +0 -0
- data/ui/dist/icons/brand-edge.svg.gz +0 -0
- data/ui/dist/icons/brand-facebook.svg.gz +0 -0
- data/ui/dist/icons/brand-figma.svg.gz +0 -0
- data/ui/dist/icons/brand-firefox.svg.gz +0 -0
- data/ui/dist/icons/brand-flickr.svg.gz +0 -0
- data/ui/dist/icons/brand-foursquare.svg.gz +0 -0
- data/ui/dist/icons/brand-framer.svg.gz +0 -0
- data/ui/dist/icons/brand-github.svg.gz +0 -0
- data/ui/dist/icons/brand-gitlab.svg.gz +0 -0
- data/ui/dist/icons/brand-google-analytics.svg.gz +0 -0
- data/ui/dist/icons/brand-google-drive.svg.gz +0 -0
- data/ui/dist/icons/brand-google-play.svg.gz +0 -0
- data/ui/dist/icons/brand-google.svg.gz +0 -0
- data/ui/dist/icons/brand-gravatar.svg.gz +0 -0
- data/ui/dist/icons/brand-hipchat.svg.gz +0 -0
- data/ui/dist/icons/brand-html5.svg.gz +0 -0
- data/ui/dist/icons/brand-instagram.svg.gz +0 -0
- data/ui/dist/icons/brand-kickstarter.svg.gz +0 -0
- data/ui/dist/icons/brand-kotlin.svg.gz +0 -0
- data/ui/dist/icons/brand-linkedin.svg.gz +0 -0
- data/ui/dist/icons/brand-medium.svg.gz +0 -0
- data/ui/dist/icons/brand-messenger.svg.gz +0 -0
- data/ui/dist/icons/brand-netflix.svg.gz +0 -0
- data/ui/dist/icons/brand-open-source.svg.gz +0 -0
- data/ui/dist/icons/brand-opera.svg.gz +0 -0
- data/ui/dist/icons/brand-pagekit.svg.gz +0 -0
- data/ui/dist/icons/brand-patreon.svg.gz +0 -0
- data/ui/dist/icons/brand-paypal.svg.gz +0 -0
- data/ui/dist/icons/brand-pinterest.svg.gz +0 -0
- data/ui/dist/icons/brand-pocket.svg.gz +0 -0
- data/ui/dist/icons/brand-producthunt.svg.gz +0 -0
- data/ui/dist/icons/brand-python.svg.gz +0 -0
- data/ui/dist/icons/brand-reddit.svg.gz +0 -0
- data/ui/dist/icons/brand-safari.svg.gz +0 -0
- data/ui/dist/icons/brand-sass.svg.gz +0 -0
- data/ui/dist/icons/brand-sentry.svg.gz +0 -0
- data/ui/dist/icons/brand-shazam.svg.gz +0 -0
- data/ui/dist/icons/brand-sketch.svg.gz +0 -0
- data/ui/dist/icons/brand-skype.svg.gz +0 -0
- data/ui/dist/icons/brand-slack.svg.gz +0 -0
- data/ui/dist/icons/brand-snapchat.svg.gz +0 -0
- data/ui/dist/icons/brand-soundcloud.svg.gz +0 -0
- data/ui/dist/icons/brand-spotify.svg.gz +0 -0
- data/ui/dist/icons/brand-steam.svg.gz +0 -0
- data/ui/dist/icons/brand-stripe.svg.gz +0 -0
- data/ui/dist/icons/brand-tabler.svg.gz +0 -0
- data/ui/dist/icons/brand-tailwind.svg.gz +0 -0
- data/ui/dist/icons/brand-telegram.svg.gz +0 -0
- data/ui/dist/icons/brand-tidal.svg.gz +0 -0
- data/ui/dist/icons/brand-tiktok.svg.gz +0 -0
- data/ui/dist/icons/brand-tinder.svg.gz +0 -0
- data/ui/dist/icons/brand-tumblr.svg.gz +0 -0
- data/ui/dist/icons/brand-twitch.svg.gz +0 -0
- data/ui/dist/icons/brand-twitter.svg.gz +0 -0
- data/ui/dist/icons/brand-unsplash.svg.gz +0 -0
- data/ui/dist/icons/brand-vimeo.svg.gz +0 -0
- data/ui/dist/icons/brand-vk.svg.gz +0 -0
- data/ui/dist/icons/brand-whatsapp.svg.gz +0 -0
- data/ui/dist/icons/brand-windows.svg.gz +0 -0
- data/ui/dist/icons/brand-yahoo.svg.gz +0 -0
- data/ui/dist/icons/brand-ycombinator.svg.gz +0 -0
- data/ui/dist/icons/brand-youtube.svg.gz +0 -0
- data/ui/dist/icons/briefcase.svg.gz +0 -0
- data/ui/dist/icons/brightness-2.svg.gz +0 -0
- data/ui/dist/icons/brightness-down.svg.gz +0 -0
- data/ui/dist/icons/brightness-half.svg.gz +0 -0
- data/ui/dist/icons/brightness-up.svg.gz +0 -0
- data/ui/dist/icons/brightness.svg.gz +0 -0
- data/ui/dist/icons/browser.svg.gz +0 -0
- data/ui/dist/icons/brush.svg.gz +0 -0
- data/ui/dist/icons/bucket.svg.gz +0 -0
- data/ui/dist/icons/bug.svg.gz +0 -0
- data/ui/dist/icons/building-arch.svg.gz +0 -0
- data/ui/dist/icons/building-bank.svg.gz +0 -0
- data/ui/dist/icons/building-bridge-2.svg.gz +0 -0
- data/ui/dist/icons/building-bridge.svg.gz +0 -0
- data/ui/dist/icons/building-carousel.svg.gz +0 -0
- data/ui/dist/icons/building-castle.svg.gz +0 -0
- data/ui/dist/icons/building-church.svg.gz +0 -0
- data/ui/dist/icons/building-community.svg.gz +0 -0
- data/ui/dist/icons/building-cottage.svg.gz +0 -0
- data/ui/dist/icons/building-factory.svg.gz +0 -0
- data/ui/dist/icons/building-fortress.svg.gz +0 -0
- data/ui/dist/icons/building-hospital.svg.gz +0 -0
- data/ui/dist/icons/building-lighthouse.svg.gz +0 -0
- data/ui/dist/icons/building-monument.svg.gz +0 -0
- data/ui/dist/icons/building-pavilon.svg.gz +0 -0
- data/ui/dist/icons/building-skyscraper.svg.gz +0 -0
- data/ui/dist/icons/building-store.svg.gz +0 -0
- data/ui/dist/icons/building-warehouse.svg.gz +0 -0
- data/ui/dist/icons/building.svg.gz +0 -0
- data/ui/dist/icons/bulb-off.svg.gz +0 -0
- data/ui/dist/icons/bulb.svg.gz +0 -0
- data/ui/dist/icons/bulldozer.svg.gz +0 -0
- data/ui/dist/icons/bus.svg.gz +0 -0
- data/ui/dist/icons/businessplan.svg.gz +0 -0
- data/ui/dist/icons/calculator.svg.gz +0 -0
- data/ui/dist/icons/calendar-event.svg.gz +0 -0
- data/ui/dist/icons/calendar-minus.svg.gz +0 -0
- data/ui/dist/icons/calendar-off.svg.gz +0 -0
- data/ui/dist/icons/calendar-plus.svg.gz +0 -0
- data/ui/dist/icons/calendar-stats.svg.gz +0 -0
- data/ui/dist/icons/calendar-time.svg.gz +0 -0
- data/ui/dist/icons/calendar.svg.gz +0 -0
- data/ui/dist/icons/camera-minus.svg.gz +0 -0
- data/ui/dist/icons/camera-off.svg.gz +0 -0
- data/ui/dist/icons/camera-plus.svg.gz +0 -0
- data/ui/dist/icons/camera-rotate.svg.gz +0 -0
- data/ui/dist/icons/camera-selfie.svg.gz +0 -0
- data/ui/dist/icons/camera.svg.gz +0 -0
- data/ui/dist/icons/capture.svg.gz +0 -0
- data/ui/dist/icons/car.svg.gz +0 -0
- data/ui/dist/icons/caravan.svg.gz +0 -0
- data/ui/dist/icons/cardboards.svg.gz +0 -0
- data/ui/dist/icons/caret-down.svg.gz +0 -0
- data/ui/dist/icons/caret-left.svg.gz +0 -0
- data/ui/dist/icons/caret-right.svg.gz +0 -0
- data/ui/dist/icons/caret-up.svg.gz +0 -0
- data/ui/dist/icons/cash-banknote-off.svg.gz +0 -0
- data/ui/dist/icons/cash-banknote.svg.gz +0 -0
- data/ui/dist/icons/cash.svg.gz +0 -0
- data/ui/dist/icons/cast.svg.gz +0 -0
- data/ui/dist/icons/ce.svg.gz +0 -0
- data/ui/dist/icons/certificate.svg.gz +0 -0
- data/ui/dist/icons/charging-pile.svg.gz +0 -0
- data/ui/dist/icons/chart-arcs-3.svg.gz +0 -0
- data/ui/dist/icons/chart-arcs.svg.gz +0 -0
- data/ui/dist/icons/chart-area-line.svg.gz +0 -0
- data/ui/dist/icons/chart-area.svg.gz +0 -0
- data/ui/dist/icons/chart-arrows-vertical.svg.gz +0 -0
- data/ui/dist/icons/chart-arrows.svg.gz +0 -0
- data/ui/dist/icons/chart-bar.svg.gz +0 -0
- data/ui/dist/icons/chart-bubble.svg.gz +0 -0
- data/ui/dist/icons/chart-candle.svg.gz +0 -0
- data/ui/dist/icons/chart-circles.svg.gz +0 -0
- data/ui/dist/icons/chart-donut-2.svg.gz +0 -0
- data/ui/dist/icons/chart-donut-3.svg.gz +0 -0
- data/ui/dist/icons/chart-donut-4.svg.gz +0 -0
- data/ui/dist/icons/chart-donut.svg.gz +0 -0
- data/ui/dist/icons/chart-dots.svg.gz +0 -0
- data/ui/dist/icons/chart-infographic.svg.gz +0 -0
- data/ui/dist/icons/chart-line.svg.gz +0 -0
- data/ui/dist/icons/chart-pie-2.svg.gz +0 -0
- data/ui/dist/icons/chart-pie-3.svg.gz +0 -0
- data/ui/dist/icons/chart-pie-4.svg.gz +0 -0
- data/ui/dist/icons/chart-pie.svg.gz +0 -0
- data/ui/dist/icons/chart-radar.svg.gz +0 -0
- data/ui/dist/icons/check.svg.gz +0 -0
- data/ui/dist/icons/checkbox.svg.gz +0 -0
- data/ui/dist/icons/checks.svg.gz +0 -0
- data/ui/dist/icons/chevron-down-left.svg.gz +0 -0
- data/ui/dist/icons/chevron-down-right.svg.gz +0 -0
- data/ui/dist/icons/chevron-down.svg.gz +0 -0
- data/ui/dist/icons/chevron-left.svg.gz +0 -0
- data/ui/dist/icons/chevron-right.svg.gz +0 -0
- data/ui/dist/icons/chevron-up-left.svg.gz +0 -0
- data/ui/dist/icons/chevron-up-right.svg.gz +0 -0
- data/ui/dist/icons/chevron-up.svg.gz +0 -0
- data/ui/dist/icons/chevrons-down-left.svg.gz +0 -0
- data/ui/dist/icons/chevrons-down-right.svg.gz +0 -0
- data/ui/dist/icons/chevrons-down.svg.gz +0 -0
- data/ui/dist/icons/chevrons-left.svg.gz +0 -0
- data/ui/dist/icons/chevrons-right.svg.gz +0 -0
- data/ui/dist/icons/chevrons-up-left.svg.gz +0 -0
- data/ui/dist/icons/chevrons-up-right.svg.gz +0 -0
- data/ui/dist/icons/chevrons-up.svg.gz +0 -0
- data/ui/dist/icons/christmas-tree.svg.gz +0 -0
- data/ui/dist/icons/circle-0.svg.gz +0 -0
- data/ui/dist/icons/circle-1.svg.gz +0 -0
- data/ui/dist/icons/circle-2.svg.gz +0 -0
- data/ui/dist/icons/circle-3.svg.gz +0 -0
- data/ui/dist/icons/circle-4.svg.gz +0 -0
- data/ui/dist/icons/circle-5.svg.gz +0 -0
- data/ui/dist/icons/circle-6.svg.gz +0 -0
- data/ui/dist/icons/circle-7.svg.gz +0 -0
- data/ui/dist/icons/circle-8.svg.gz +0 -0
- data/ui/dist/icons/circle-9.svg.gz +0 -0
- data/ui/dist/icons/circle-check.svg.gz +0 -0
- data/ui/dist/icons/circle-dashed.svg.gz +0 -0
- data/ui/dist/icons/circle-dotted.svg.gz +0 -0
- data/ui/dist/icons/circle-half-vertical.svg.gz +0 -0
- data/ui/dist/icons/circle-half.svg.gz +0 -0
- data/ui/dist/icons/circle-minus.svg.gz +0 -0
- data/ui/dist/icons/circle-off.svg.gz +0 -0
- data/ui/dist/icons/circle-plus.svg.gz +0 -0
- data/ui/dist/icons/circle-square.svg.gz +0 -0
- data/ui/dist/icons/circle-x.svg.gz +0 -0
- data/ui/dist/icons/circle.svg.gz +0 -0
- data/ui/dist/icons/circles.svg.gz +0 -0
- data/ui/dist/icons/clear-all.svg.gz +0 -0
- data/ui/dist/icons/clear-formatting.svg.gz +0 -0
- data/ui/dist/icons/click.svg.gz +0 -0
- data/ui/dist/icons/clipboard-check.svg.gz +0 -0
- data/ui/dist/icons/clipboard-list.svg.gz +0 -0
- data/ui/dist/icons/clipboard-x.svg.gz +0 -0
- data/ui/dist/icons/clipboard.svg.gz +0 -0
- data/ui/dist/icons/clock.svg.gz +0 -0
- data/ui/dist/icons/cloud-download.svg.gz +0 -0
- data/ui/dist/icons/cloud-fog.svg.gz +0 -0
- data/ui/dist/icons/cloud-off.svg.gz +0 -0
- data/ui/dist/icons/cloud-rain.svg.gz +0 -0
- data/ui/dist/icons/cloud-snow.svg.gz +0 -0
- data/ui/dist/icons/cloud-storm.svg.gz +0 -0
- data/ui/dist/icons/cloud-upload.svg.gz +0 -0
- data/ui/dist/icons/cloud.svg.gz +0 -0
- data/ui/dist/icons/code-minus.svg.gz +0 -0
- data/ui/dist/icons/code-plus.svg.gz +0 -0
- data/ui/dist/icons/code.svg.gz +0 -0
- data/ui/dist/icons/coin.svg.gz +0 -0
- data/ui/dist/icons/color-picker.svg.gz +0 -0
- data/ui/dist/icons/color-swatch.svg.gz +0 -0
- data/ui/dist/icons/column-insert-left.svg.gz +0 -0
- data/ui/dist/icons/column-insert-right.svg.gz +0 -0
- data/ui/dist/icons/columns.svg.gz +0 -0
- data/ui/dist/icons/comet.svg.gz +0 -0
- data/ui/dist/icons/command.svg.gz +0 -0
- data/ui/dist/icons/compass.svg.gz +0 -0
- data/ui/dist/icons/confetti.svg.gz +0 -0
- data/ui/dist/icons/container.svg.gz +0 -0
- data/ui/dist/icons/contrast.svg.gz +0 -0
- data/ui/dist/icons/copy.svg.gz +0 -0
- data/ui/dist/icons/copyleft.svg.gz +0 -0
- data/ui/dist/icons/copyright.svg.gz +0 -0
- data/ui/dist/icons/corner-down-left-double.svg.gz +0 -0
- data/ui/dist/icons/corner-down-left.svg.gz +0 -0
- data/ui/dist/icons/corner-down-right-double.svg.gz +0 -0
- data/ui/dist/icons/corner-down-right.svg.gz +0 -0
- data/ui/dist/icons/corner-left-down-double.svg.gz +0 -0
- data/ui/dist/icons/corner-left-down.svg.gz +0 -0
- data/ui/dist/icons/corner-left-up-double.svg.gz +0 -0
- data/ui/dist/icons/corner-left-up.svg.gz +0 -0
- data/ui/dist/icons/corner-right-down-double.svg.gz +0 -0
- data/ui/dist/icons/corner-right-down.svg.gz +0 -0
- data/ui/dist/icons/corner-right-up-double.svg.gz +0 -0
- data/ui/dist/icons/corner-right-up.svg.gz +0 -0
- data/ui/dist/icons/corner-up-left-double.svg.gz +0 -0
- data/ui/dist/icons/corner-up-left.svg.gz +0 -0
- data/ui/dist/icons/corner-up-right-double.svg.gz +0 -0
- data/ui/dist/icons/corner-up-right.svg.gz +0 -0
- data/ui/dist/icons/credit-card-off.svg.gz +0 -0
- data/ui/dist/icons/credit-card.svg.gz +0 -0
- data/ui/dist/icons/crop.svg.gz +0 -0
- data/ui/dist/icons/crosshair.svg.gz +0 -0
- data/ui/dist/icons/crown-off.svg.gz +0 -0
- data/ui/dist/icons/crown.svg.gz +0 -0
- data/ui/dist/icons/curly-loop.svg.gz +0 -0
- data/ui/dist/icons/currency-bahraini.svg.gz +0 -0
- data/ui/dist/icons/currency-bath.svg.gz +0 -0
- data/ui/dist/icons/currency-bitcoin.svg.gz +0 -0
- data/ui/dist/icons/currency-cent.svg.gz +0 -0
- data/ui/dist/icons/currency-dinar.svg.gz +0 -0
- data/ui/dist/icons/currency-dirham.svg.gz +0 -0
- data/ui/dist/icons/currency-dollar-australian.svg.gz +0 -0
- data/ui/dist/icons/currency-dollar-canadian.svg.gz +0 -0
- data/ui/dist/icons/currency-dollar-singapore.svg.gz +0 -0
- data/ui/dist/icons/currency-dollar.svg.gz +0 -0
- data/ui/dist/icons/currency-ethereum.svg.gz +0 -0
- data/ui/dist/icons/currency-euro.svg.gz +0 -0
- data/ui/dist/icons/currency-forint.svg.gz +0 -0
- data/ui/dist/icons/currency-frank.svg.gz +0 -0
- data/ui/dist/icons/currency-krone-czech.svg.gz +0 -0
- data/ui/dist/icons/currency-krone-danish.svg.gz +0 -0
- data/ui/dist/icons/currency-krone-swedish.svg.gz +0 -0
- data/ui/dist/icons/currency-leu.svg.gz +0 -0
- data/ui/dist/icons/currency-lira.svg.gz +0 -0
- data/ui/dist/icons/currency-litecoin.svg.gz +0 -0
- data/ui/dist/icons/currency-naira.svg.gz +0 -0
- data/ui/dist/icons/currency-pound.svg.gz +0 -0
- data/ui/dist/icons/currency-real.svg.gz +0 -0
- data/ui/dist/icons/currency-renminbi.svg.gz +0 -0
- data/ui/dist/icons/currency-ripple.svg.gz +0 -0
- data/ui/dist/icons/currency-riyal.svg.gz +0 -0
- data/ui/dist/icons/currency-rubel.svg.gz +0 -0
- data/ui/dist/icons/currency-rupee.svg.gz +0 -0
- data/ui/dist/icons/currency-shekel.svg.gz +0 -0
- data/ui/dist/icons/currency-taka.svg.gz +0 -0
- data/ui/dist/icons/currency-tugrik.svg.gz +0 -0
- data/ui/dist/icons/currency-won.svg.gz +0 -0
- data/ui/dist/icons/currency-yen.svg.gz +0 -0
- data/ui/dist/icons/currency-zloty.svg.gz +0 -0
- data/ui/dist/icons/current-location.svg.gz +0 -0
- data/ui/dist/icons/cursor-text.svg.gz +0 -0
- data/ui/dist/icons/cut.svg.gz +0 -0
- data/ui/dist/icons/dashboard.svg.gz +0 -0
- data/ui/dist/icons/database-export.svg.gz +0 -0
- data/ui/dist/icons/database-import.svg.gz +0 -0
- data/ui/dist/icons/database-off.svg.gz +0 -0
- data/ui/dist/icons/database.svg.gz +0 -0
- data/ui/dist/icons/details.svg.gz +0 -0
- data/ui/dist/icons/device-analytics.svg.gz +0 -0
- data/ui/dist/icons/device-audio-tape.svg.gz +0 -0
- data/ui/dist/icons/device-cctv.svg.gz +0 -0
- data/ui/dist/icons/device-computer-camera-off.svg.gz +0 -0
- data/ui/dist/icons/device-computer-camera.svg.gz +0 -0
- data/ui/dist/icons/device-desktop-analytics.svg.gz +0 -0
- data/ui/dist/icons/device-desktop-off.svg.gz +0 -0
- data/ui/dist/icons/device-desktop.svg.gz +0 -0
- data/ui/dist/icons/device-floppy.svg.gz +0 -0
- data/ui/dist/icons/device-gamepad.svg.gz +0 -0
- data/ui/dist/icons/device-laptop.svg.gz +0 -0
- data/ui/dist/icons/device-mobile-message.svg.gz +0 -0
- data/ui/dist/icons/device-mobile-rotated.svg.gz +0 -0
- data/ui/dist/icons/device-mobile-vibration.svg.gz +0 -0
- data/ui/dist/icons/device-mobile.svg.gz +0 -0
- data/ui/dist/icons/device-speaker.svg.gz +0 -0
- data/ui/dist/icons/device-tablet.svg.gz +0 -0
- data/ui/dist/icons/device-tv.svg.gz +0 -0
- data/ui/dist/icons/device-watch.svg.gz +0 -0
- data/ui/dist/icons/devices-2.svg.gz +0 -0
- data/ui/dist/icons/devices-pc.svg.gz +0 -0
- data/ui/dist/icons/devices.svg.gz +0 -0
- data/ui/dist/icons/diamond.svg.gz +0 -0
- data/ui/dist/icons/dice.svg.gz +0 -0
- data/ui/dist/icons/dimensions.svg.gz +0 -0
- data/ui/dist/icons/direction-horizontal.svg.gz +0 -0
- data/ui/dist/icons/direction.svg.gz +0 -0
- data/ui/dist/icons/directions.svg.gz +0 -0
- data/ui/dist/icons/disabled-2.svg.gz +0 -0
- data/ui/dist/icons/disabled.svg.gz +0 -0
- data/ui/dist/icons/disc.svg.gz +0 -0
- data/ui/dist/icons/discount-2.svg.gz +0 -0
- data/ui/dist/icons/discount.svg.gz +0 -0
- data/ui/dist/icons/divide.svg.gz +0 -0
- data/ui/dist/icons/dna.svg.gz +0 -0
- data/ui/dist/icons/dots-circle-horizontal.svg.gz +0 -0
- data/ui/dist/icons/dots-diagonal-2.svg.gz +0 -0
- data/ui/dist/icons/dots-diagonal.svg.gz +0 -0
- data/ui/dist/icons/dots-vertical.svg.gz +0 -0
- data/ui/dist/icons/dots.svg.gz +0 -0
- data/ui/dist/icons/download.svg.gz +0 -0
- data/ui/dist/icons/drag-drop-2.svg.gz +0 -0
- data/ui/dist/icons/drag-drop.svg.gz +0 -0
- data/ui/dist/icons/drone-off.svg.gz +0 -0
- data/ui/dist/icons/drone.svg.gz +0 -0
- data/ui/dist/icons/droplet-filled-2.svg.gz +0 -0
- data/ui/dist/icons/droplet-filled.svg.gz +0 -0
- data/ui/dist/icons/droplet-half-2.svg.gz +0 -0
- data/ui/dist/icons/droplet-half.svg.gz +0 -0
- data/ui/dist/icons/droplet-off.svg.gz +0 -0
- data/ui/dist/icons/droplet.svg.gz +0 -0
- data/ui/dist/icons/ear-off.svg.gz +0 -0
- data/ui/dist/icons/ear.svg.gz +0 -0
- data/ui/dist/icons/edit-circle.svg.gz +0 -0
- data/ui/dist/icons/edit.svg.gz +0 -0
- data/ui/dist/icons/egg.svg.gz +0 -0
- data/ui/dist/icons/emphasis.svg.gz +0 -0
- data/ui/dist/icons/equal-not.svg.gz +0 -0
- data/ui/dist/icons/equal.svg.gz +0 -0
- data/ui/dist/icons/eraser.svg.gz +0 -0
- data/ui/dist/icons/exchange.svg.gz +0 -0
- data/ui/dist/icons/exposure.svg.gz +0 -0
- data/ui/dist/icons/external-link.svg.gz +0 -0
- data/ui/dist/icons/eye-check.svg.gz +0 -0
- data/ui/dist/icons/eye-off.svg.gz +0 -0
- data/ui/dist/icons/eye.svg.gz +0 -0
- data/ui/dist/icons/eyeglass-2.svg.gz +0 -0
- data/ui/dist/icons/eyeglass.svg.gz +0 -0
- data/ui/dist/icons/face-id.svg.gz +0 -0
- data/ui/dist/icons/fall.svg.gz +0 -0
- data/ui/dist/icons/feather.svg.gz +0 -0
- data/ui/dist/icons/file-alert.svg.gz +0 -0
- data/ui/dist/icons/file-analytics.svg.gz +0 -0
- data/ui/dist/icons/file-certificate.svg.gz +0 -0
- data/ui/dist/icons/file-check.svg.gz +0 -0
- data/ui/dist/icons/file-code-2.svg.gz +0 -0
- data/ui/dist/icons/file-code.svg.gz +0 -0
- data/ui/dist/icons/file-diff.svg.gz +0 -0
- data/ui/dist/icons/file-dislike.svg.gz +0 -0
- data/ui/dist/icons/file-download.svg.gz +0 -0
- data/ui/dist/icons/file-export.svg.gz +0 -0
- data/ui/dist/icons/file-horizontal.svg.gz +0 -0
- data/ui/dist/icons/file-import.svg.gz +0 -0
- data/ui/dist/icons/file-info.svg.gz +0 -0
- data/ui/dist/icons/file-invoice.svg.gz +0 -0
- data/ui/dist/icons/file-like.svg.gz +0 -0
- data/ui/dist/icons/file-minus.svg.gz +0 -0
- data/ui/dist/icons/file-music.svg.gz +0 -0
- data/ui/dist/icons/file-off.svg.gz +0 -0
- data/ui/dist/icons/file-phone.svg.gz +0 -0
- data/ui/dist/icons/file-plus.svg.gz +0 -0
- data/ui/dist/icons/file-report.svg.gz +0 -0
- data/ui/dist/icons/file-search.svg.gz +0 -0
- data/ui/dist/icons/file-shredder.svg.gz +0 -0
- data/ui/dist/icons/file-symlink.svg.gz +0 -0
- data/ui/dist/icons/file-text.svg.gz +0 -0
- data/ui/dist/icons/file-upload.svg.gz +0 -0
- data/ui/dist/icons/file-x.svg.gz +0 -0
- data/ui/dist/icons/file-zip.svg.gz +0 -0
- data/ui/dist/icons/file.svg.gz +0 -0
- data/ui/dist/icons/files-off.svg.gz +0 -0
- data/ui/dist/icons/files.svg.gz +0 -0
- data/ui/dist/icons/filter-off.svg.gz +0 -0
- data/ui/dist/icons/filter.svg.gz +0 -0
- data/ui/dist/icons/fingerprint.svg.gz +0 -0
- data/ui/dist/icons/firetruck.svg.gz +0 -0
- data/ui/dist/icons/flag-2.svg.gz +0 -0
- data/ui/dist/icons/flag-3.svg.gz +0 -0
- data/ui/dist/icons/flag.svg.gz +0 -0
- data/ui/dist/icons/flame.svg.gz +0 -0
- data/ui/dist/icons/flare.svg.gz +0 -0
- data/ui/dist/icons/flask.svg.gz +0 -0
- data/ui/dist/icons/flip-horizontal.svg.gz +0 -0
- data/ui/dist/icons/flip-vertical.svg.gz +0 -0
- data/ui/dist/icons/float-center.svg.gz +0 -0
- data/ui/dist/icons/float-left.svg.gz +0 -0
- data/ui/dist/icons/float-none.svg.gz +0 -0
- data/ui/dist/icons/float-right.svg.gz +0 -0
- data/ui/dist/icons/focus-2.svg.gz +0 -0
- data/ui/dist/icons/focus.svg.gz +0 -0
- data/ui/dist/icons/fold-down.svg.gz +0 -0
- data/ui/dist/icons/fold-up.svg.gz +0 -0
- data/ui/dist/icons/fold.svg.gz +0 -0
- data/ui/dist/icons/folder-minus.svg.gz +0 -0
- data/ui/dist/icons/folder-off.svg.gz +0 -0
- data/ui/dist/icons/folder-plus.svg.gz +0 -0
- data/ui/dist/icons/folder-x.svg.gz +0 -0
- data/ui/dist/icons/folder.svg.gz +0 -0
- data/ui/dist/icons/folders.svg.gz +0 -0
- data/ui/dist/icons/forbid-2.svg.gz +0 -0
- data/ui/dist/icons/forbid.svg.gz +0 -0
- data/ui/dist/icons/forklift.svg.gz +0 -0
- data/ui/dist/icons/forms.svg.gz +0 -0
- data/ui/dist/icons/frame.svg.gz +0 -0
- data/ui/dist/icons/friends.svg.gz +0 -0
- data/ui/dist/icons/gas-station.svg.gz +0 -0
- data/ui/dist/icons/gauge.svg.gz +0 -0
- data/ui/dist/icons/geometry.svg.gz +0 -0
- data/ui/dist/icons/ghost.svg.gz +0 -0
- data/ui/dist/icons/gift.svg.gz +0 -0
- data/ui/dist/icons/git-branch.svg.gz +0 -0
- data/ui/dist/icons/git-commit.svg.gz +0 -0
- data/ui/dist/icons/git-compare.svg.gz +0 -0
- data/ui/dist/icons/git-fork.svg.gz +0 -0
- data/ui/dist/icons/git-merge.svg.gz +0 -0
- data/ui/dist/icons/git-pull-request.svg.gz +0 -0
- data/ui/dist/icons/glass-full.svg.gz +0 -0
- data/ui/dist/icons/glass-off.svg.gz +0 -0
- data/ui/dist/icons/glass.svg.gz +0 -0
- data/ui/dist/icons/globe.svg.gz +0 -0
- data/ui/dist/icons/golf.svg.gz +0 -0
- data/ui/dist/icons/gps.svg.gz +0 -0
- data/ui/dist/icons/grain.svg.gz +0 -0
- data/ui/dist/icons/grid-dots.svg.gz +0 -0
- data/ui/dist/icons/grip-horizontal.svg.gz +0 -0
- data/ui/dist/icons/grip-vertical.svg.gz +0 -0
- data/ui/dist/icons/growth.svg.gz +0 -0
- data/ui/dist/icons/h-1.svg.gz +0 -0
- data/ui/dist/icons/h-2.svg.gz +0 -0
- data/ui/dist/icons/h-3.svg.gz +0 -0
- data/ui/dist/icons/h-4.svg.gz +0 -0
- data/ui/dist/icons/h-5.svg.gz +0 -0
- data/ui/dist/icons/h-6.svg.gz +0 -0
- data/ui/dist/icons/hand-finger.svg.gz +0 -0
- data/ui/dist/icons/hand-little-finger.svg.gz +0 -0
- data/ui/dist/icons/hand-middle-finger.svg.gz +0 -0
- data/ui/dist/icons/hand-off.svg.gz +0 -0
- data/ui/dist/icons/hand-ring-finger.svg.gz +0 -0
- data/ui/dist/icons/hand-rock.svg.gz +0 -0
- data/ui/dist/icons/hand-stop.svg.gz +0 -0
- data/ui/dist/icons/hand-three-fingers.svg.gz +0 -0
- data/ui/dist/icons/hand-two-fingers.svg.gz +0 -0
- data/ui/dist/icons/hanger.svg.gz +0 -0
- data/ui/dist/icons/hash.svg.gz +0 -0
- data/ui/dist/icons/heading.svg.gz +0 -0
- data/ui/dist/icons/headphones-off.svg.gz +0 -0
- data/ui/dist/icons/headphones.svg.gz +0 -0
- data/ui/dist/icons/headset.svg.gz +0 -0
- data/ui/dist/icons/heart-broken.svg.gz +0 -0
- data/ui/dist/icons/heart.svg.gz +0 -0
- data/ui/dist/icons/helicopter-landing.svg.gz +0 -0
- data/ui/dist/icons/helicopter.svg.gz +0 -0
- data/ui/dist/icons/help.svg.gz +0 -0
- data/ui/dist/icons/hexagon-off.svg.gz +0 -0
- data/ui/dist/icons/hexagon.svg.gz +0 -0
- data/ui/dist/icons/hierarchy-2.svg.gz +0 -0
- data/ui/dist/icons/hierarchy.svg.gz +0 -0
- data/ui/dist/icons/history.svg.gz +0 -0
- data/ui/dist/icons/home-2.svg.gz +0 -0
- data/ui/dist/icons/home.svg.gz +0 -0
- data/ui/dist/icons/ice-cream-2.svg.gz +0 -0
- data/ui/dist/icons/ice-cream.svg.gz +0 -0
- data/ui/dist/icons/id.svg.gz +0 -0
- data/ui/dist/icons/inbox.svg.gz +0 -0
- data/ui/dist/icons/indent-decrease.svg.gz +0 -0
- data/ui/dist/icons/indent-increase.svg.gz +0 -0
- data/ui/dist/icons/infinity.svg.gz +0 -0
- data/ui/dist/icons/info-circle.svg.gz +0 -0
- data/ui/dist/icons/info-square.svg.gz +0 -0
- data/ui/dist/icons/italic.svg.gz +0 -0
- data/ui/dist/icons/jump-rope.svg.gz +0 -0
- data/ui/dist/icons/karate.svg.gz +0 -0
- data/ui/dist/icons/key.svg.gz +0 -0
- data/ui/dist/icons/keyboard-hide.svg.gz +0 -0
- data/ui/dist/icons/keyboard-off.svg.gz +0 -0
- data/ui/dist/icons/keyboard-show.svg.gz +0 -0
- data/ui/dist/icons/keyboard.svg.gz +0 -0
- data/ui/dist/icons/language.svg.gz +0 -0
- data/ui/dist/icons/layers-difference.svg.gz +0 -0
- data/ui/dist/icons/layers-intersect.svg.gz +0 -0
- data/ui/dist/icons/layers-linked.svg.gz +0 -0
- data/ui/dist/icons/layers-subtract.svg.gz +0 -0
- data/ui/dist/icons/layers-union.svg.gz +0 -0
- data/ui/dist/icons/layout-2.svg.gz +0 -0
- data/ui/dist/icons/layout-align-bottom.svg.gz +0 -0
- data/ui/dist/icons/layout-align-center.svg.gz +0 -0
- data/ui/dist/icons/layout-align-left.svg.gz +0 -0
- data/ui/dist/icons/layout-align-middle.svg.gz +0 -0
- data/ui/dist/icons/layout-align-right.svg.gz +0 -0
- data/ui/dist/icons/layout-align-top.svg.gz +0 -0
- data/ui/dist/icons/layout-bottombar.svg.gz +0 -0
- data/ui/dist/icons/layout-cards.svg.gz +0 -0
- data/ui/dist/icons/layout-columns.svg.gz +0 -0
- data/ui/dist/icons/layout-distribute-horizontal.svg.gz +0 -0
- data/ui/dist/icons/layout-distribute-vertical.svg.gz +0 -0
- data/ui/dist/icons/layout-grid-add.svg.gz +0 -0
- data/ui/dist/icons/layout-grid.svg.gz +0 -0
- data/ui/dist/icons/layout-kanban.svg.gz +0 -0
- data/ui/dist/icons/layout-list.svg.gz +0 -0
- data/ui/dist/icons/layout-navbar.svg.gz +0 -0
- data/ui/dist/icons/layout-rows.svg.gz +0 -0
- data/ui/dist/icons/layout-sidebar-right.svg.gz +0 -0
- data/ui/dist/icons/layout-sidebar.svg.gz +0 -0
- data/ui/dist/icons/layout.svg.gz +0 -0
- data/ui/dist/icons/leaf.svg.gz +0 -0
- data/ui/dist/icons/lego.svg.gz +0 -0
- data/ui/dist/icons/letter-a.svg.gz +0 -0
- data/ui/dist/icons/letter-b.svg.gz +0 -0
- data/ui/dist/icons/letter-c.svg.gz +0 -0
- data/ui/dist/icons/letter-case-lower.svg.gz +0 -0
- data/ui/dist/icons/letter-case-toggle.svg.gz +0 -0
- data/ui/dist/icons/letter-case-upper.svg.gz +0 -0
- data/ui/dist/icons/letter-case.svg.gz +0 -0
- data/ui/dist/icons/letter-d.svg.gz +0 -0
- data/ui/dist/icons/letter-e.svg.gz +0 -0
- data/ui/dist/icons/letter-f.svg.gz +0 -0
- data/ui/dist/icons/letter-g.svg.gz +0 -0
- data/ui/dist/icons/letter-h.svg.gz +0 -0
- data/ui/dist/icons/letter-i.svg.gz +0 -0
- data/ui/dist/icons/letter-j.svg.gz +0 -0
- data/ui/dist/icons/letter-k.svg.gz +0 -0
- data/ui/dist/icons/letter-l.svg.gz +0 -0
- data/ui/dist/icons/letter-m.svg.gz +0 -0
- data/ui/dist/icons/letter-n.svg.gz +0 -0
- data/ui/dist/icons/letter-o.svg.gz +0 -0
- data/ui/dist/icons/letter-p.svg.gz +0 -0
- data/ui/dist/icons/letter-q.svg.gz +0 -0
- data/ui/dist/icons/letter-r.svg.gz +0 -0
- data/ui/dist/icons/letter-s.svg.gz +0 -0
- data/ui/dist/icons/letter-spacing.svg.gz +0 -0
- data/ui/dist/icons/letter-t.svg.gz +0 -0
- data/ui/dist/icons/letter-u.svg.gz +0 -0
- data/ui/dist/icons/letter-v.svg.gz +0 -0
- data/ui/dist/icons/letter-w.svg.gz +0 -0
- data/ui/dist/icons/letter-x.svg.gz +0 -0
- data/ui/dist/icons/letter-y.svg.gz +0 -0
- data/ui/dist/icons/letter-z.svg.gz +0 -0
- data/ui/dist/icons/letters-case.svg.gz +0 -0
- data/ui/dist/icons/license.svg.gz +0 -0
- data/ui/dist/icons/lifebuoy.svg.gz +0 -0
- data/ui/dist/icons/line-dashed.svg.gz +0 -0
- data/ui/dist/icons/line-dotted.svg.gz +0 -0
- data/ui/dist/icons/line-height.svg.gz +0 -0
- data/ui/dist/icons/line.svg.gz +0 -0
- data/ui/dist/icons/link.svg.gz +0 -0
- data/ui/dist/icons/list-check.svg.gz +0 -0
- data/ui/dist/icons/list-search.svg.gz +0 -0
- data/ui/dist/icons/list.svg.gz +0 -0
- data/ui/dist/icons/live-photo.svg.gz +0 -0
- data/ui/dist/icons/live-view.svg.gz +0 -0
- data/ui/dist/icons/loader-quarter.svg.gz +0 -0
- data/ui/dist/icons/loader.svg.gz +0 -0
- data/ui/dist/icons/location.svg.gz +0 -0
- data/ui/dist/icons/lock-access.svg.gz +0 -0
- data/ui/dist/icons/lock-off.svg.gz +0 -0
- data/ui/dist/icons/lock-open.svg.gz +0 -0
- data/ui/dist/icons/lock.svg.gz +0 -0
- data/ui/dist/icons/login.svg.gz +0 -0
- data/ui/dist/icons/logout.svg.gz +0 -0
- data/ui/dist/icons/macro.svg.gz +0 -0
- data/ui/dist/icons/magnet.svg.gz +0 -0
- data/ui/dist/icons/mail-forward.svg.gz +0 -0
- data/ui/dist/icons/mail-opened.svg.gz +0 -0
- data/ui/dist/icons/mail.svg.gz +0 -0
- data/ui/dist/icons/mailbox.svg.gz +0 -0
- data/ui/dist/icons/man.svg.gz +0 -0
- data/ui/dist/icons/manual-gearbox.svg.gz +0 -0
- data/ui/dist/icons/map-2.svg.gz +0 -0
- data/ui/dist/icons/map-pin-off.svg.gz +0 -0
- data/ui/dist/icons/map-pin.svg.gz +0 -0
- data/ui/dist/icons/map-pins.svg.gz +0 -0
- data/ui/dist/icons/map.svg.gz +0 -0
- data/ui/dist/icons/markdown.svg.gz +0 -0
- data/ui/dist/icons/marquee-2.svg.gz +0 -0
- data/ui/dist/icons/marquee.svg.gz +0 -0
- data/ui/dist/icons/mars.svg.gz +0 -0
- data/ui/dist/icons/mask-off.svg.gz +0 -0
- data/ui/dist/icons/mask.svg.gz +0 -0
- data/ui/dist/icons/massage.svg.gz +0 -0
- data/ui/dist/icons/math-function.svg.gz +0 -0
- data/ui/dist/icons/math-symbols.svg.gz +0 -0
- data/ui/dist/icons/math.svg.gz +0 -0
- data/ui/dist/icons/maximize.svg.gz +0 -0
- data/ui/dist/icons/medal.svg.gz +0 -0
- data/ui/dist/icons/medical-cross.svg.gz +0 -0
- data/ui/dist/icons/menu-2.svg.gz +0 -0
- data/ui/dist/icons/menu.svg.gz +0 -0
- data/ui/dist/icons/message-2.svg.gz +0 -0
- data/ui/dist/icons/message-circle-2.svg.gz +0 -0
- data/ui/dist/icons/message-circle-off.svg.gz +0 -0
- data/ui/dist/icons/message-circle.svg.gz +0 -0
- data/ui/dist/icons/message-dots.svg.gz +0 -0
- data/ui/dist/icons/message-off.svg.gz +0 -0
- data/ui/dist/icons/message-plus.svg.gz +0 -0
- data/ui/dist/icons/message-report.svg.gz +0 -0
- data/ui/dist/icons/message.svg.gz +0 -0
- data/ui/dist/icons/messages-off.svg.gz +0 -0
- data/ui/dist/icons/messages.svg.gz +0 -0
- data/ui/dist/icons/microphone-off.svg.gz +0 -0
- data/ui/dist/icons/microphone.svg.gz +0 -0
- data/ui/dist/icons/minimize.svg.gz +0 -0
- data/ui/dist/icons/minus-vertical.svg.gz +0 -0
- data/ui/dist/icons/minus.svg.gz +0 -0
- data/ui/dist/icons/mist.svg.gz +0 -0
- data/ui/dist/icons/mood-boy.svg.gz +0 -0
- data/ui/dist/icons/mood-confuzed.svg.gz +0 -0
- data/ui/dist/icons/mood-crazy-happy.svg.gz +0 -0
- data/ui/dist/icons/mood-cry.svg.gz +0 -0
- data/ui/dist/icons/mood-empty.svg.gz +0 -0
- data/ui/dist/icons/mood-happy.svg.gz +0 -0
- data/ui/dist/icons/mood-kid.svg.gz +0 -0
- data/ui/dist/icons/mood-neutral.svg.gz +0 -0
- data/ui/dist/icons/mood-sad.svg.gz +0 -0
- data/ui/dist/icons/mood-smile.svg.gz +0 -0
- data/ui/dist/icons/mood-suprised.svg.gz +0 -0
- data/ui/dist/icons/mood-tongue.svg.gz +0 -0
- data/ui/dist/icons/moon-2.svg.gz +0 -0
- data/ui/dist/icons/moon-stars.svg.gz +0 -0
- data/ui/dist/icons/moon.svg.gz +0 -0
- data/ui/dist/icons/moped.svg.gz +0 -0
- data/ui/dist/icons/motorbike.svg.gz +0 -0
- data/ui/dist/icons/mouse.svg.gz +0 -0
- data/ui/dist/icons/movie.svg.gz +0 -0
- data/ui/dist/icons/mug.svg.gz +0 -0
- data/ui/dist/icons/music.svg.gz +0 -0
- data/ui/dist/icons/new-section.svg.gz +0 -0
- data/ui/dist/icons/news.svg.gz +0 -0
- data/ui/dist/icons/nfc.svg.gz +0 -0
- data/ui/dist/icons/note.svg.gz +0 -0
- data/ui/dist/icons/notebook.svg.gz +0 -0
- data/ui/dist/icons/notes.svg.gz +0 -0
- data/ui/dist/icons/notification.svg.gz +0 -0
- data/ui/dist/icons/number-0.svg.gz +0 -0
- data/ui/dist/icons/number-1.svg.gz +0 -0
- data/ui/dist/icons/number-2.svg.gz +0 -0
- data/ui/dist/icons/number-3.svg.gz +0 -0
- data/ui/dist/icons/number-4.svg.gz +0 -0
- data/ui/dist/icons/number-5.svg.gz +0 -0
- data/ui/dist/icons/number-6.svg.gz +0 -0
- data/ui/dist/icons/number-7.svg.gz +0 -0
- data/ui/dist/icons/number-8.svg.gz +0 -0
- data/ui/dist/icons/number-9.svg.gz +0 -0
- data/ui/dist/icons/octagon-off.svg.gz +0 -0
- data/ui/dist/icons/octagon.svg.gz +0 -0
- data/ui/dist/icons/old.svg.gz +0 -0
- data/ui/dist/icons/olympics.svg.gz +0 -0
- data/ui/dist/icons/omega.svg.gz +0 -0
- data/ui/dist/icons/outlet.svg.gz +0 -0
- data/ui/dist/icons/overline.svg.gz +0 -0
- data/ui/dist/icons/package.svg.gz +0 -0
- data/ui/dist/icons/pacman.svg.gz +0 -0
- data/ui/dist/icons/page-break.svg.gz +0 -0
- data/ui/dist/icons/paint.svg.gz +0 -0
- data/ui/dist/icons/palette.svg.gz +0 -0
- data/ui/dist/icons/panorama-horizontal.svg.gz +0 -0
- data/ui/dist/icons/panorama-vertical.svg.gz +0 -0
- data/ui/dist/icons/paperclip.svg.gz +0 -0
- data/ui/dist/icons/parachute.svg.gz +0 -0
- data/ui/dist/icons/parentheses.svg.gz +0 -0
- data/ui/dist/icons/parking.svg.gz +0 -0
- data/ui/dist/icons/peace.svg.gz +0 -0
- data/ui/dist/icons/pencil.svg.gz +0 -0
- data/ui/dist/icons/pennant.svg.gz +0 -0
- data/ui/dist/icons/percentage.svg.gz +0 -0
- data/ui/dist/icons/perspective.svg.gz +0 -0
- data/ui/dist/icons/phone-call.svg.gz +0 -0
- data/ui/dist/icons/phone-calling.svg.gz +0 -0
- data/ui/dist/icons/phone-check.svg.gz +0 -0
- data/ui/dist/icons/phone-incoming.svg.gz +0 -0
- data/ui/dist/icons/phone-off.svg.gz +0 -0
- data/ui/dist/icons/phone-outgoing.svg.gz +0 -0
- data/ui/dist/icons/phone-pause.svg.gz +0 -0
- data/ui/dist/icons/phone-plus.svg.gz +0 -0
- data/ui/dist/icons/phone-x.svg.gz +0 -0
- data/ui/dist/icons/phone.svg.gz +0 -0
- data/ui/dist/icons/photo-off.svg.gz +0 -0
- data/ui/dist/icons/photo.svg.gz +0 -0
- data/ui/dist/icons/physotherapist.svg.gz +0 -0
- data/ui/dist/icons/picture-in-picture-off.svg.gz +0 -0
- data/ui/dist/icons/picture-in-picture-on.svg.gz +0 -0
- data/ui/dist/icons/picture-in-picture.svg.gz +0 -0
- data/ui/dist/icons/pill.svg.gz +0 -0
- data/ui/dist/icons/pin.svg.gz +0 -0
- data/ui/dist/icons/pinned-off.svg.gz +0 -0
- data/ui/dist/icons/pinned.svg.gz +0 -0
- data/ui/dist/icons/pizza.svg.gz +0 -0
- data/ui/dist/icons/plane-arrival.svg.gz +0 -0
- data/ui/dist/icons/plane-departure.svg.gz +0 -0
- data/ui/dist/icons/plane.svg.gz +0 -0
- data/ui/dist/icons/planet.svg.gz +0 -0
- data/ui/dist/icons/plant-2.svg.gz +0 -0
- data/ui/dist/icons/plant.svg.gz +0 -0
- data/ui/dist/icons/play-card.svg.gz +0 -0
- data/ui/dist/icons/player-pause.svg.gz +0 -0
- data/ui/dist/icons/player-play.svg.gz +0 -0
- data/ui/dist/icons/player-record.svg.gz +0 -0
- data/ui/dist/icons/player-skip-back.svg.gz +0 -0
- data/ui/dist/icons/player-skip-forward.svg.gz +0 -0
- data/ui/dist/icons/player-stop.svg.gz +0 -0
- data/ui/dist/icons/player-track-next.svg.gz +0 -0
- data/ui/dist/icons/player-track-prev.svg.gz +0 -0
- data/ui/dist/icons/playlist.svg.gz +0 -0
- data/ui/dist/icons/plug.svg.gz +0 -0
- data/ui/dist/icons/plus.svg.gz +0 -0
- data/ui/dist/icons/point.svg.gz +0 -0
- data/ui/dist/icons/pokeball.svg.gz +0 -0
- data/ui/dist/icons/polaroid.svg.gz +0 -0
- data/ui/dist/icons/pool.svg.gz +0 -0
- data/ui/dist/icons/power.svg.gz +0 -0
- data/ui/dist/icons/pray.svg.gz +0 -0
- data/ui/dist/icons/presentation-analytics.svg.gz +0 -0
- data/ui/dist/icons/presentation.svg.gz +0 -0
- data/ui/dist/icons/printer.svg.gz +0 -0
- data/ui/dist/icons/prompt.svg.gz +0 -0
- data/ui/dist/icons/propeller.svg.gz +0 -0
- data/ui/dist/icons/puzzle.svg.gz +0 -0
- data/ui/dist/icons/pyramid.svg.gz +0 -0
- data/ui/dist/icons/qrcode.svg.gz +0 -0
- data/ui/dist/icons/question-mark.svg.gz +0 -0
- data/ui/dist/icons/radioactive.svg.gz +0 -0
- data/ui/dist/icons/radius-bottom-left.svg.gz +0 -0
- data/ui/dist/icons/radius-bottom-right.svg.gz +0 -0
- data/ui/dist/icons/radius-top-left.svg.gz +0 -0
- data/ui/dist/icons/radius-top-right.svg.gz +0 -0
- data/ui/dist/icons/rainbow.svg.gz +0 -0
- data/ui/dist/icons/receipt-2.svg.gz +0 -0
- data/ui/dist/icons/receipt-off.svg.gz +0 -0
- data/ui/dist/icons/receipt-refund.svg.gz +0 -0
- data/ui/dist/icons/receipt-tax.svg.gz +0 -0
- data/ui/dist/icons/receipt.svg.gz +0 -0
- data/ui/dist/icons/recharging.svg.gz +0 -0
- data/ui/dist/icons/record-mail.svg.gz +0 -0
- data/ui/dist/icons/rectangle-vertical.svg.gz +0 -0
- data/ui/dist/icons/rectangle.svg.gz +0 -0
- data/ui/dist/icons/recycle.svg.gz +0 -0
- data/ui/dist/icons/refresh-alert.svg.gz +0 -0
- data/ui/dist/icons/refresh.svg.gz +0 -0
- data/ui/dist/icons/registered.svg.gz +0 -0
- data/ui/dist/icons/relation-many-to-many.svg.gz +0 -0
- data/ui/dist/icons/relation-one-to-many.svg.gz +0 -0
- data/ui/dist/icons/relation-one-to-one.svg.gz +0 -0
- data/ui/dist/icons/repeat-once.svg.gz +0 -0
- data/ui/dist/icons/repeat.svg.gz +0 -0
- data/ui/dist/icons/replace.svg.gz +0 -0
- data/ui/dist/icons/report-analytics.svg.gz +0 -0
- data/ui/dist/icons/report-medical.svg.gz +0 -0
- data/ui/dist/icons/report-money.svg.gz +0 -0
- data/ui/dist/icons/report.svg.gz +0 -0
- data/ui/dist/icons/resize.svg.gz +0 -0
- data/ui/dist/icons/ripple.svg.gz +0 -0
- data/ui/dist/icons/road-sign.svg.gz +0 -0
- data/ui/dist/icons/rocket.svg.gz +0 -0
- data/ui/dist/icons/rotate-2.svg.gz +0 -0
- data/ui/dist/icons/rotate-clockwise-2.svg.gz +0 -0
- data/ui/dist/icons/rotate-clockwise.svg.gz +0 -0
- data/ui/dist/icons/rotate-rectangle.svg.gz +0 -0
- data/ui/dist/icons/rotate.svg.gz +0 -0
- data/ui/dist/icons/route.svg.gz +0 -0
- data/ui/dist/icons/router.svg.gz +0 -0
- data/ui/dist/icons/row-insert-bottom.svg.gz +0 -0
- data/ui/dist/icons/row-insert-top.svg.gz +0 -0
- data/ui/dist/icons/rss.svg.gz +0 -0
- data/ui/dist/icons/ruler-2.svg.gz +0 -0
- data/ui/dist/icons/ruler.svg.gz +0 -0
- data/ui/dist/icons/run.svg.gz +0 -0
- data/ui/dist/icons/sailboat.svg.gz +0 -0
- data/ui/dist/icons/satellite.svg.gz +0 -0
- data/ui/dist/icons/scale.svg.gz +0 -0
- data/ui/dist/icons/scan.svg.gz +0 -0
- data/ui/dist/icons/school.svg.gz +0 -0
- data/ui/dist/icons/scissors.svg.gz +0 -0
- data/ui/dist/icons/scooter-electric.svg.gz +0 -0
- data/ui/dist/icons/scooter.svg.gz +0 -0
- data/ui/dist/icons/screen-share-off.svg.gz +0 -0
- data/ui/dist/icons/screen-share.svg.gz +0 -0
- data/ui/dist/icons/scuba-mask.svg.gz +0 -0
- data/ui/dist/icons/search.svg.gz +0 -0
- data/ui/dist/icons/section.svg.gz +0 -0
- data/ui/dist/icons/seeding.svg.gz +0 -0
- data/ui/dist/icons/select.svg.gz +0 -0
- data/ui/dist/icons/selector.svg.gz +0 -0
- data/ui/dist/icons/send.svg.gz +0 -0
- data/ui/dist/icons/separator-horizontal.svg.gz +0 -0
- data/ui/dist/icons/separator-vertical.svg.gz +0 -0
- data/ui/dist/icons/separator.svg.gz +0 -0
- data/ui/dist/icons/server.svg.gz +0 -0
- data/ui/dist/icons/servicemark.svg.gz +0 -0
- data/ui/dist/icons/settings-automation.svg.gz +0 -0
- data/ui/dist/icons/settings.svg.gz +0 -0
- data/ui/dist/icons/shadow-off.svg.gz +0 -0
- data/ui/dist/icons/shadow.svg.gz +0 -0
- data/ui/dist/icons/shape-2.svg.gz +0 -0
- data/ui/dist/icons/shape-3.svg.gz +0 -0
- data/ui/dist/icons/shape.svg.gz +0 -0
- data/ui/dist/icons/share.svg.gz +0 -0
- data/ui/dist/icons/shield-check.svg.gz +0 -0
- data/ui/dist/icons/shield-lock.svg.gz +0 -0
- data/ui/dist/icons/shield-off.svg.gz +0 -0
- data/ui/dist/icons/shield-x.svg.gz +0 -0
- data/ui/dist/icons/shield.svg.gz +0 -0
- data/ui/dist/icons/ship.svg.gz +0 -0
- data/ui/dist/icons/shirt.svg.gz +0 -0
- data/ui/dist/icons/shopping-cart-discount.svg.gz +0 -0
- data/ui/dist/icons/shopping-cart-off.svg.gz +0 -0
- data/ui/dist/icons/shopping-cart-plus.svg.gz +0 -0
- data/ui/dist/icons/shopping-cart-x.svg.gz +0 -0
- data/ui/dist/icons/shopping-cart.svg.gz +0 -0
- data/ui/dist/icons/shredder.svg.gz +0 -0
- data/ui/dist/icons/signature.svg.gz +0 -0
- data/ui/dist/icons/sitemap.svg.gz +0 -0
- data/ui/dist/icons/skateboard.svg.gz +0 -0
- data/ui/dist/icons/slice.svg.gz +0 -0
- data/ui/dist/icons/slideshow.svg.gz +0 -0
- data/ui/dist/icons/smart-home.svg.gz +0 -0
- data/ui/dist/icons/smoking-no.svg.gz +0 -0
- data/ui/dist/icons/smoking.svg.gz +0 -0
- data/ui/dist/icons/snowflake.svg.gz +0 -0
- data/ui/dist/icons/soccer-field.svg.gz +0 -0
- data/ui/dist/icons/social.svg.gz +0 -0
- data/ui/dist/icons/sock.svg.gz +0 -0
- data/ui/dist/icons/sort-ascending-2.svg.gz +0 -0
- data/ui/dist/icons/sort-ascending.svg.gz +0 -0
- data/ui/dist/icons/sort-descending-2.svg.gz +0 -0
- data/ui/dist/icons/sort-descending.svg.gz +0 -0
- data/ui/dist/icons/space.svg.gz +0 -0
- data/ui/dist/icons/speakerphone.svg.gz +0 -0
- data/ui/dist/icons/speedboat.svg.gz +0 -0
- data/ui/dist/icons/sport-billard.svg.gz +0 -0
- data/ui/dist/icons/square-0.svg.gz +0 -0
- data/ui/dist/icons/square-1.svg.gz +0 -0
- data/ui/dist/icons/square-2.svg.gz +0 -0
- data/ui/dist/icons/square-3.svg.gz +0 -0
- data/ui/dist/icons/square-4.svg.gz +0 -0
- data/ui/dist/icons/square-5.svg.gz +0 -0
- data/ui/dist/icons/square-6.svg.gz +0 -0
- data/ui/dist/icons/square-7.svg.gz +0 -0
- data/ui/dist/icons/square-8.svg.gz +0 -0
- data/ui/dist/icons/square-9.svg.gz +0 -0
- data/ui/dist/icons/square-check.svg.gz +0 -0
- data/ui/dist/icons/square-dot.svg.gz +0 -0
- data/ui/dist/icons/square-forbid-2.svg.gz +0 -0
- data/ui/dist/icons/square-forbid.svg.gz +0 -0
- data/ui/dist/icons/square-minus.svg.gz +0 -0
- data/ui/dist/icons/square-off.svg.gz +0 -0
- data/ui/dist/icons/square-plus.svg.gz +0 -0
- data/ui/dist/icons/square-root-2.svg.gz +0 -0
- data/ui/dist/icons/square-root.svg.gz +0 -0
- data/ui/dist/icons/square-rotated-off.svg.gz +0 -0
- data/ui/dist/icons/square-rotated.svg.gz +0 -0
- data/ui/dist/icons/square-toggle-horizontal.svg.gz +0 -0
- data/ui/dist/icons/square-toggle.svg.gz +0 -0
- data/ui/dist/icons/square-x.svg.gz +0 -0
- data/ui/dist/icons/square.svg.gz +0 -0
- data/ui/dist/icons/squares-diagonal.svg.gz +0 -0
- data/ui/dist/icons/squares-filled.svg.gz +0 -0
- data/ui/dist/icons/stack-2.svg.gz +0 -0
- data/ui/dist/icons/stack.svg.gz +0 -0
- data/ui/dist/icons/stairs-down.svg.gz +0 -0
- data/ui/dist/icons/stairs-up.svg.gz +0 -0
- data/ui/dist/icons/stairs.svg.gz +0 -0
- data/ui/dist/icons/star-half.svg.gz +0 -0
- data/ui/dist/icons/star-off.svg.gz +0 -0
- data/ui/dist/icons/star.svg.gz +0 -0
- data/ui/dist/icons/stars.svg.gz +0 -0
- data/ui/dist/icons/steering-wheel.svg.gz +0 -0
- data/ui/dist/icons/step-into.svg.gz +0 -0
- data/ui/dist/icons/step-out.svg.gz +0 -0
- data/ui/dist/icons/stethoscope.svg.gz +0 -0
- data/ui/dist/icons/sticker.svg.gz +0 -0
- data/ui/dist/icons/strikethrough.svg.gz +0 -0
- data/ui/dist/icons/submarine.svg.gz +0 -0
- data/ui/dist/icons/subscript.svg.gz +0 -0
- data/ui/dist/icons/subtask.svg.gz +0 -0
- data/ui/dist/icons/sum.svg.gz +0 -0
- data/ui/dist/icons/sun-off.svg.gz +0 -0
- data/ui/dist/icons/sun.svg.gz +0 -0
- data/ui/dist/icons/sunset.svg.gz +0 -0
- data/ui/dist/icons/sunshine.svg.gz +0 -0
- data/ui/dist/icons/superscript.svg.gz +0 -0
- data/ui/dist/icons/swimming.svg.gz +0 -0
- data/ui/dist/icons/switch-2.svg.gz +0 -0
- data/ui/dist/icons/switch-3.svg.gz +0 -0
- data/ui/dist/icons/switch-horizontal.svg.gz +0 -0
- data/ui/dist/icons/switch-vertical.svg.gz +0 -0
- data/ui/dist/icons/switch.svg.gz +0 -0
- data/ui/dist/icons/table-export.svg.gz +0 -0
- data/ui/dist/icons/table-import.svg.gz +0 -0
- data/ui/dist/icons/table-off.svg.gz +0 -0
- data/ui/dist/icons/table.svg.gz +0 -0
- data/ui/dist/icons/tag.svg.gz +0 -0
- data/ui/dist/icons/tallymark-1.svg.gz +0 -0
- data/ui/dist/icons/tallymark-2.svg.gz +0 -0
- data/ui/dist/icons/tallymark-3.svg.gz +0 -0
- data/ui/dist/icons/tallymark-4.svg.gz +0 -0
- data/ui/dist/icons/tallymarks.svg.gz +0 -0
- data/ui/dist/icons/tank.svg.gz +0 -0
- data/ui/dist/icons/target.svg.gz +0 -0
- data/ui/dist/icons/temperature-celsius.svg.gz +0 -0
- data/ui/dist/icons/temperature-fahrenheit.svg.gz +0 -0
- data/ui/dist/icons/temperature-minus.svg.gz +0 -0
- data/ui/dist/icons/temperature-plus.svg.gz +0 -0
- data/ui/dist/icons/temperature.svg.gz +0 -0
- data/ui/dist/icons/template.svg.gz +0 -0
- data/ui/dist/icons/tent.svg.gz +0 -0
- data/ui/dist/icons/terminal-2.svg.gz +0 -0
- data/ui/dist/icons/terminal.svg.gz +0 -0
- data/ui/dist/icons/test-pipe.svg.gz +0 -0
- data/ui/dist/icons/text-direction-ltr.svg.gz +0 -0
- data/ui/dist/icons/text-direction-rtl.svg.gz +0 -0
- data/ui/dist/icons/text-wrap-disabled.svg.gz +0 -0
- data/ui/dist/icons/text-wrap.svg.gz +0 -0
- data/ui/dist/icons/thumb-down.svg.gz +0 -0
- data/ui/dist/icons/thumb-up.svg.gz +0 -0
- data/ui/dist/icons/ticket.svg.gz +0 -0
- data/ui/dist/icons/tilt-shift.svg.gz +0 -0
- data/ui/dist/icons/tir.svg.gz +0 -0
- data/ui/dist/icons/toggle-left.svg.gz +0 -0
- data/ui/dist/icons/toggle-right.svg.gz +0 -0
- data/ui/dist/icons/tool.svg.gz +0 -0
- data/ui/dist/icons/tools-kitchen-2.svg.gz +0 -0
- data/ui/dist/icons/tools-kitchen.svg.gz +0 -0
- data/ui/dist/icons/tools.svg.gz +0 -0
- data/ui/dist/icons/tornado.svg.gz +0 -0
- data/ui/dist/icons/tournament.svg.gz +0 -0
- data/ui/dist/icons/track.svg.gz +0 -0
- data/ui/dist/icons/tractor.svg.gz +0 -0
- data/ui/dist/icons/trademark.svg.gz +0 -0
- data/ui/dist/icons/traffic-cone.svg.gz +0 -0
- data/ui/dist/icons/traffic-lights.svg.gz +0 -0
- data/ui/dist/icons/train.svg.gz +0 -0
- data/ui/dist/icons/trash-off.svg.gz +0 -0
- data/ui/dist/icons/trash.svg.gz +0 -0
- data/ui/dist/icons/tree.svg.gz +0 -0
- data/ui/dist/icons/trees.svg.gz +0 -0
- data/ui/dist/icons/trending-down-2.svg.gz +0 -0
- data/ui/dist/icons/trending-down-3.svg.gz +0 -0
- data/ui/dist/icons/trending-down.svg.gz +0 -0
- data/ui/dist/icons/trending-up-2.svg.gz +0 -0
- data/ui/dist/icons/trending-up-3.svg.gz +0 -0
- data/ui/dist/icons/trending-up.svg.gz +0 -0
- data/ui/dist/icons/triangle-off.svg.gz +0 -0
- data/ui/dist/icons/triangle-square-circle.svg.gz +0 -0
- data/ui/dist/icons/triangle.svg.gz +0 -0
- data/ui/dist/icons/trident.svg.gz +0 -0
- data/ui/dist/icons/trophy.svg.gz +0 -0
- data/ui/dist/icons/truck-delivery.svg.gz +0 -0
- data/ui/dist/icons/truck-off.svg.gz +0 -0
- data/ui/dist/icons/truck-return.svg.gz +0 -0
- data/ui/dist/icons/truck.svg.gz +0 -0
- data/ui/dist/icons/typography.svg.gz +0 -0
- data/ui/dist/icons/umbrella.svg.gz +0 -0
- data/ui/dist/icons/underline.svg.gz +0 -0
- data/ui/dist/icons/unlink.svg.gz +0 -0
- data/ui/dist/icons/upload.svg.gz +0 -0
- data/ui/dist/icons/urgent.svg.gz +0 -0
- data/ui/dist/icons/user-check.svg.gz +0 -0
- data/ui/dist/icons/user-exclamation.svg.gz +0 -0
- data/ui/dist/icons/user-minus.svg.gz +0 -0
- data/ui/dist/icons/user-off.svg.gz +0 -0
- data/ui/dist/icons/user-plus.svg.gz +0 -0
- data/ui/dist/icons/user-x.svg.gz +0 -0
- data/ui/dist/icons/user.svg.gz +0 -0
- data/ui/dist/icons/users.svg.gz +0 -0
- data/ui/dist/icons/vaccine.svg.gz +0 -0
- data/ui/dist/icons/variable.svg.gz +0 -0
- data/ui/dist/icons/vector-beizer-2.svg.gz +0 -0
- data/ui/dist/icons/vector-beizer.svg.gz +0 -0
- data/ui/dist/icons/vector-triangle.svg.gz +0 -0
- data/ui/dist/icons/vector.svg.gz +0 -0
- data/ui/dist/icons/venus.svg.gz +0 -0
- data/ui/dist/icons/versions.svg.gz +0 -0
- data/ui/dist/icons/video-minus.svg.gz +0 -0
- data/ui/dist/icons/video-off.svg.gz +0 -0
- data/ui/dist/icons/video-plus.svg.gz +0 -0
- data/ui/dist/icons/video.svg.gz +0 -0
- data/ui/dist/icons/view-360.svg.gz +0 -0
- data/ui/dist/icons/viewfinder.svg.gz +0 -0
- data/ui/dist/icons/viewport-narrow.svg.gz +0 -0
- data/ui/dist/icons/viewport-wide.svg.gz +0 -0
- data/ui/dist/icons/virus-off.svg.gz +0 -0
- data/ui/dist/icons/virus-search.svg.gz +0 -0
- data/ui/dist/icons/virus.svg.gz +0 -0
- data/ui/dist/icons/volume-2.svg.gz +0 -0
- data/ui/dist/icons/volume-3.svg.gz +0 -0
- data/ui/dist/icons/volume.svg.gz +0 -0
- data/ui/dist/icons/walk.svg.gz +0 -0
- data/ui/dist/icons/wallet.svg.gz +0 -0
- data/ui/dist/icons/wand.svg.gz +0 -0
- data/ui/dist/icons/wave-saw-tool.svg.gz +0 -0
- data/ui/dist/icons/wave-sine.svg.gz +0 -0
- data/ui/dist/icons/wave-square.svg.gz +0 -0
- data/ui/dist/icons/wifi-0.svg.gz +0 -0
- data/ui/dist/icons/wifi-1.svg.gz +0 -0
- data/ui/dist/icons/wifi-2.svg.gz +0 -0
- data/ui/dist/icons/wifi-off.svg.gz +0 -0
- data/ui/dist/icons/wifi.svg.gz +0 -0
- data/ui/dist/icons/wind.svg.gz +0 -0
- data/ui/dist/icons/windmill.svg.gz +0 -0
- data/ui/dist/icons/window.svg.gz +0 -0
- data/ui/dist/icons/wiper-wash.svg.gz +0 -0
- data/ui/dist/icons/wiper.svg.gz +0 -0
- data/ui/dist/icons/woman.svg.gz +0 -0
- data/ui/dist/icons/world-latitude.svg.gz +0 -0
- data/ui/dist/icons/world-longitude.svg.gz +0 -0
- data/ui/dist/icons/world.svg.gz +0 -0
- data/ui/dist/icons/wrecking-ball.svg.gz +0 -0
- data/ui/dist/icons/writing-sign.svg.gz +0 -0
- data/ui/dist/icons/writing.svg.gz +0 -0
- data/ui/dist/icons/x.svg.gz +0 -0
- data/ui/dist/icons/yin-yang.svg.gz +0 -0
- data/ui/dist/icons/zodiac-aquarius.svg.gz +0 -0
- data/ui/dist/icons/zodiac-aries.svg.gz +0 -0
- data/ui/dist/icons/zodiac-cancer.svg.gz +0 -0
- data/ui/dist/icons/zodiac-capricorn.svg.gz +0 -0
- data/ui/dist/icons/zodiac-gemini.svg.gz +0 -0
- data/ui/dist/icons/zodiac-leo.svg.gz +0 -0
- data/ui/dist/icons/zodiac-libra.svg.gz +0 -0
- data/ui/dist/icons/zodiac-pisces.svg.gz +0 -0
- data/ui/dist/icons/zodiac-sagittarius.svg.gz +0 -0
- data/ui/dist/icons/zodiac-scorpio.svg.gz +0 -0
- data/ui/dist/icons/zodiac-taurus.svg.gz +0 -0
- data/ui/dist/icons/zodiac-virgo.svg.gz +0 -0
- data/ui/dist/icons/zoom-cancel.svg.gz +0 -0
- data/ui/dist/icons/zoom-check.svg.gz +0 -0
- data/ui/dist/icons/zoom-in.svg.gz +0 -0
- data/ui/dist/icons/zoom-money.svg.gz +0 -0
- data/ui/dist/icons/zoom-out.svg.gz +0 -0
- data/ui/dist/icons/zoom-question.svg.gz +0 -0
- data/ui/dist/{main-05401628fabd32884fa6.css.gz → main-af386d0c907b80c29f22.css.gz} +0 -0
- data/ui/dist/main-af386d0c907b80c29f22.js.gz +0 -0
- data/ui/dist/manifest.json +2531 -5
- metadata +1273 -34
- data/ui/dist/main-05401628fabd32884fa6.js.gz +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 55c1bf8c2fc221d84cbb142204893b6625d980d9c9966fe08cab12b1b8b9e9f6
|
4
|
+
data.tar.gz: 25c3c29dac2b0abd4414cf5c90ada44e4af357efb43ddd63fad4a632321bf89f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6faa1ebe8212cf8855b064f4c80df93b6f8a4ef93b09ba98d5565a24a86d6e4274f746511c28ffc5fca2da67710572ee53b2aaa384199ef3fa6de908cf774330
|
7
|
+
data.tar.gz: 737e7e1768be0721d825029176e3397007feb21794eb1eeec2ebe777c0a5c3880b3942f23be50476bdf7f12f564fd03fa3aadb8a69a31d8b06ba2dfb1111e845
|
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -1,9 +1,10 @@
|
|
1
|
-
# Motor
|
1
|
+
# ⚡ Motor Admin
|
2
2
|
|
3
|
-
Admin
|
3
|
+
Low-code Admin panel and Business intelligence Rails engine **(no DSL - configurable from the UI)**.
|
4
4
|
|
5
|
-
|
6
|
-
|
5
|
+
🤓 [Demo App](https://motor-admin.herokuapp.com/demo) | [Features overview](https://www.youtube.com/watch?v=ngVoci8Hll4&list=PLu7llEMh0KcOkR3Uy_RJT0cXPZQKAYVsq&index=1)
|
6
|
+
|
7
|
+
[](https://motor-admin.herokuapp.com/demo)
|
7
8
|
|
8
9
|
## Installation
|
9
10
|
Add this line to your application's Gemfile:
|
@@ -17,16 +18,135 @@ And then execute:
|
|
17
18
|
$ bundle install
|
18
19
|
```
|
19
20
|
|
20
|
-
|
21
|
+
Create and run migration:
|
21
22
|
```bash
|
22
|
-
$
|
23
|
+
$ rails motor:install && rake db:migrate
|
23
24
|
```
|
24
25
|
|
25
|
-
|
26
|
+
## Features
|
27
|
+
|
28
|
+
* [Customizable CRUD](#customizable-crud)
|
29
|
+
* [Custom actions](#custom-actions)
|
30
|
+
* [Forms builder](#forms-builder)
|
31
|
+
* [SQL queries](#sql-queries)
|
32
|
+
* [Data visualization](#data-visualization)
|
33
|
+
* [Dashboards](#dashboards)
|
34
|
+
* [Email alerts](#email-alerts)
|
35
|
+
* [Intelligence search](#intelligence-search)
|
36
|
+
* [Optimized for mobile](#optimized-for-mobile)
|
37
|
+
* [Configurations sync between environments](#configurations-sync)
|
38
|
+
|
39
|
+
### Customizable CRUD
|
40
|
+
|
41
|
+

|
42
|
+
|
43
|
+

|
44
|
+
|
45
|
+
Everything in the admin panel can be configured using intuitive settings UI, which can be opened via the icon in the top right corner.
|
46
|
+
|
47
|
+
Data displayed on the resource page can be completely custimized via [SQL queries](#sql-queries) and [dashboards](#dashboards) attached to the resource as a tab. Usually, queries used to display resource data should contain `{{resource_name_id}}` [variable](#sql-queries).
|
48
|
+
|
49
|
+
### Custom Actions
|
50
|
+
|
51
|
+

|
52
|
+
|
53
|
+
Custom resource actions can be added via Active Record method call, API endpoint, or [custom forms](#forms-builder). Also, it's possible to override default create/update/delete actions.
|
54
|
+
|
55
|
+
### Forms Builder
|
56
|
+
|
57
|
+

|
58
|
+
|
59
|
+
Values from the form fields can be used in API path via `{field_name}` syntax: `/api/some-endpoint/{resource_id}/apply`
|
60
|
+
|
61
|
+
### SQL Queries
|
62
|
+
|
63
|
+

|
64
|
+
|
65
|
+
Queries can include embeded variables via `{{variable}}` syntax ([mustache](https://mustache.github.io)). `{{#variable}} ... {{/variable}}` syntax allows to decide if conditions inside the scope should be included in the query.
|
66
|
+
|
67
|
+
### Data Visualization
|
68
|
+
|
69
|
+

|
70
|
+
|
71
|
+
Data from the SQL query can be represented as: [table](https://motor-admin.herokuapp.com/demo/queries/12), [number](https://motor-admin.herokuapp.com/demo/queries/6), [line chart](https://motor-admin.herokuapp.com/demo/queries/3), [bar chart](https://motor-admin.herokuapp.com/demo/queries/1), [pie chart](https://motor-admin.herokuapp.com/demo/queries/9), [funnel](https://motor-admin.herokuapp.com/demo/queries/7), [markdown](https://motor-admin.herokuapp.com/demo/queries/8)
|
72
|
+
|
73
|
+
### Dashboards
|
74
|
+
|
75
|
+

|
76
|
+
|
77
|
+
SQL queries can be organized into dashboards to create a convenient representation of the data.
|
78
|
+
|
79
|
+
### Email Alerts
|
80
|
+
|
81
|
+

|
82
|
+
|
83
|
+
Query data can be sent via email periodically using the alerts feature. Interval of the alert email can be specified using natural language, e.g., `every day at midnight`, `every Monday at 8 PM`, `every weekday at 6AM and 6PM`, `every minute`.
|
84
|
+
|
85
|
+
The sender address can be specified using `MOTOR_ALERTS_FROM_ADDRESS` environment variable.
|
86
|
+
|
87
|
+
### Intelligence Search
|
88
|
+
|
89
|
+

|
90
|
+
|
91
|
+
Intelligence search can be opened via the top right corner button or using <kbd>Cmd</kbd> + <kbd>P</kbd> shortcut.
|
92
|
+
|
93
|
+
|
94
|
+
### Optimized for Mobile
|
95
|
+
|
96
|
+

|
97
|
+
|
98
|
+
|
99
|
+
### Configurations Sync
|
100
|
+
|
101
|
+
All admin panel configurations are automatically stored in the `config/motor.yml` file. It's recommended to include this file in the application git repository to always have the admin panel configurations in sync across different local and remote environments.
|
102
|
+
|
103
|
+
It's possible to sync local development admin panel configurations with remote production application via `rake motor:sync` task:
|
104
|
+
|
105
|
+
```bash
|
106
|
+
MOTOR_SYNC_REMOTE_URL=https://remote-app-url/ MOTOR_SYNC_API_KEY=secure-random-string rake motor:sync
|
107
|
+
```
|
108
|
+
|
109
|
+
|
110
|
+
## Authentication
|
111
|
+
|
112
|
+
Admin panel can be secured with 'Basic authentication' by specifying `MOTOR_AUTH_USERNAME` and `MOTOR_AUTH_PASSWORD` environment variables.
|
113
|
+
|
114
|
+
Alternatively, it can be secured with [devise](https://github.com/heartcombo/devise/wiki/How-To:-Define-resource-actions-that-require-authentication-using-routes.rb) or any other authentication library used by the application:
|
115
|
+
|
116
|
+
```ruby
|
117
|
+
authenticate :admin_user do
|
118
|
+
mount Motor::Admin => '/admin'
|
119
|
+
end
|
120
|
+
```
|
121
|
+
|
122
|
+
## Development
|
123
|
+
|
124
|
+
Start webpack dev server:
|
125
|
+
|
26
126
|
```bash
|
27
|
-
|
127
|
+
yarn install && yarn serve
|
28
128
|
```
|
29
129
|
|
130
|
+
Setup development database:
|
131
|
+
|
132
|
+
```bash
|
133
|
+
rake app:db:create && rake app:db:setup
|
134
|
+
```
|
135
|
+
|
136
|
+
Start example application in development mode:
|
137
|
+
|
138
|
+
```bash
|
139
|
+
MOTOR_DEVELOPMENT=true rails s
|
140
|
+
```
|
141
|
+
|
142
|
+
## Comming Soon
|
143
|
+
|
144
|
+
* User groups
|
145
|
+
* Row-level permissions
|
146
|
+
* Multiple databases
|
147
|
+
* NoSQL data sources
|
148
|
+
* Pro Bussines intelligence features
|
149
|
+
|
30
150
|
## License
|
31
151
|
|
32
|
-
The gem is available as open source under the terms of the [MIT License](https://
|
152
|
+
The gem is available as open source under the terms of the [MIT License](https://github.com/omohokcoj/motor-admin/blob/master/LICENSE).
|
data/Rakefile
CHANGED
@@ -2,19 +2,10 @@
|
|
2
2
|
|
3
3
|
require 'bundler/setup'
|
4
4
|
|
5
|
-
APP_RAKEFILE = File.expand_path('
|
5
|
+
APP_RAKEFILE = File.expand_path('spec/dummy/Rakefile', __dir__)
|
6
|
+
|
6
7
|
load 'rails/tasks/engine.rake'
|
7
8
|
|
8
9
|
load 'rails/tasks/statistics.rake'
|
9
10
|
|
10
11
|
require 'bundler/gem_tasks'
|
11
|
-
|
12
|
-
require 'rake/testtask'
|
13
|
-
|
14
|
-
Rake::TestTask.new(:test) do |t|
|
15
|
-
t.libs << 'test'
|
16
|
-
t.pattern = 'test/**/*_test.rb'
|
17
|
-
t.verbose = false
|
18
|
-
end
|
19
|
-
|
20
|
-
task default: :test
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Motor
|
4
|
+
module CurrentUserMethod
|
5
|
+
def current_user
|
6
|
+
if defined?(current_admin)
|
7
|
+
current_admin
|
8
|
+
elsif defined?(current_admin_user)
|
9
|
+
current_admin_user
|
10
|
+
elsif defined?(super)
|
11
|
+
super
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -2,24 +2,24 @@
|
|
2
2
|
|
3
3
|
module Motor
|
4
4
|
class ApiBaseController < ActionController::API
|
5
|
-
|
6
|
-
if defined?(current_admin)
|
7
|
-
current_admin
|
8
|
-
elsif defined?(current_admin_user)
|
9
|
-
current_admin_user
|
10
|
-
elsif defined?(super)
|
11
|
-
super
|
12
|
-
end
|
13
|
-
end
|
5
|
+
include Motor::CurrentUserMethod
|
14
6
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
7
|
+
class CanCanAbilityManageAll
|
8
|
+
include CanCan::Ability
|
9
|
+
|
10
|
+
def initialize(_)
|
19
11
|
can :manage, :all
|
20
12
|
end
|
13
|
+
end
|
21
14
|
|
22
|
-
|
15
|
+
rescue_from StandardError do |e|
|
16
|
+
Rails.logger.error(e)
|
17
|
+
|
18
|
+
render json: { errors: [e.message] }, status: :internal_server_error
|
19
|
+
end
|
20
|
+
|
21
|
+
def current_ability
|
22
|
+
CanCanAbilityManageAll.new(current_user)
|
23
23
|
end
|
24
24
|
end
|
25
25
|
end
|
@@ -6,19 +6,21 @@ module Motor
|
|
6
6
|
|
7
7
|
GZIP_TYPES = [
|
8
8
|
'application/javascript',
|
9
|
-
'text/css'
|
9
|
+
'text/css',
|
10
|
+
'image/svg+xml'
|
10
11
|
].freeze
|
11
12
|
|
12
13
|
MIME_TYPES = {
|
13
14
|
'.js' => 'application/javascript',
|
14
15
|
'.css' => 'text/css',
|
16
|
+
'.svg' => 'image/svg+xml',
|
15
17
|
'.woff2' => 'font/woff2'
|
16
18
|
}.freeze
|
17
19
|
|
18
20
|
def show
|
19
21
|
filename = params[:filename]
|
20
22
|
|
21
|
-
return [404, {}, ''] unless Motor::Assets.manifest.
|
23
|
+
return [404, {}, ''] unless Motor::Assets.manifest.value?(filename)
|
22
24
|
|
23
25
|
assign_headers(filename)
|
24
26
|
|
@@ -26,8 +26,6 @@ module Motor
|
|
26
26
|
render json: { data: Motor::ApiQuery::BuildJson.call(@resource, params) }
|
27
27
|
rescue ActiveRecord::RecordInvalid
|
28
28
|
render json: { errors: @resource.errors }, status: :unprocessable_entity
|
29
|
-
rescue StandardError => e
|
30
|
-
render json: { errors: [e.message] }, status: :unprocessable_entity
|
31
29
|
end
|
32
30
|
|
33
31
|
def update
|
@@ -36,8 +34,6 @@ module Motor
|
|
36
34
|
render json: { data: Motor::ApiQuery::BuildJson.call(@resource, params) }
|
37
35
|
rescue ActiveRecord::RecordInvalid
|
38
36
|
render json: { errors: @resource.errors }, status: :unprocessable_entity
|
39
|
-
rescue StandardError => e
|
40
|
-
render json: { errors: [e.message] }, status: :unprocessable_entity
|
41
37
|
end
|
42
38
|
|
43
39
|
def destroy
|
@@ -54,8 +50,6 @@ module Motor
|
|
54
50
|
@resource.public_send(params[:method].to_sym)
|
55
51
|
|
56
52
|
head :ok
|
57
|
-
rescue StandardError => e
|
58
|
-
render json: { message: e.message }, status: :unprocessable_entity
|
59
53
|
end
|
60
54
|
|
61
55
|
private
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Motor
|
4
|
+
class IconsController < ApiBaseController
|
5
|
+
CACHE_STORE = ActiveSupport::Cache::MemoryStore.new
|
6
|
+
|
7
|
+
def index
|
8
|
+
data = CACHE_STORE.fetch('icons') do
|
9
|
+
Motor::Assets.icons.map do |icon|
|
10
|
+
svg = Motor::Assets.load_asset("icons/#{icon}", gzip: !Motor.development?)
|
11
|
+
svg = ActiveSupport::Gzip.decompress(svg) unless Motor.development?
|
12
|
+
|
13
|
+
[icon, svg]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
render json: { data: data }
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -26,13 +26,13 @@ module Motor
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def from_address
|
29
|
-
from = ENV['
|
29
|
+
from = ENV['MOTOR_ALERTS_FROM_ADDRESS'].presence
|
30
30
|
|
31
31
|
from ||= application_mailer_default_from
|
32
32
|
from ||= mailer_config_from_address
|
33
|
-
from ||= "reports@#{ENV['HOST'].
|
33
|
+
from ||= "reports@#{ENV['HOST'].delete_prefix('www.')}" if ENV['HOST'].present?
|
34
34
|
|
35
|
-
from
|
35
|
+
from || 'reports@example.com'
|
36
36
|
end
|
37
37
|
|
38
38
|
def application_mailer_default_from
|
@@ -42,9 +42,9 @@ module Motor
|
|
42
42
|
end
|
43
43
|
|
44
44
|
def mailer_config_from_address
|
45
|
-
return if Rails.application.config.action_mailer.default_url_options
|
45
|
+
return if Rails.application.config.action_mailer.default_url_options&.dig(:host).blank?
|
46
46
|
|
47
|
-
"reports@#{Rails.application.config.action_mailer.default_url_options[:host].
|
47
|
+
"reports@#{Rails.application.config.action_mailer.default_url_options[:host].delete_prefix('www.')}"
|
48
48
|
end
|
49
49
|
end
|
50
50
|
end
|
data/app/models/motor/tag.rb
CHANGED
@@ -92,7 +92,7 @@
|
|
92
92
|
<th><%= column[:name] %></th>
|
93
93
|
<% end %>
|
94
94
|
</tr>
|
95
|
-
<% @query_result.data.first(
|
95
|
+
<% @query_result.data.first(40).each do |row| %>
|
96
96
|
<tr>
|
97
97
|
<% row.each do |col| %>
|
98
98
|
<td><%= col.respond_to?(:strftime) ? l(col, format: :long) : col.to_s.truncate(100) %></th>
|
@@ -1 +1 @@
|
|
1
|
-
<%= raw(Motor::Configs::BuildUiAppTag.call) %>
|
1
|
+
<%= raw(Motor::Configs::BuildUiAppTag.call(current_user)) %>
|
data/config/routes.rb
CHANGED
@@ -13,6 +13,7 @@ Motor::Admin.routes.draw do
|
|
13
13
|
resources :dashboards, only: %i[index show create update destroy]
|
14
14
|
resources :forms, only: %i[index show create update destroy]
|
15
15
|
resources :alerts, only: %i[index show create update destroy]
|
16
|
+
resources :icons, only: %i[index]
|
16
17
|
resources :active_storage_attachments, only: %i[create], path: 'data/active_storage__attachments'
|
17
18
|
resource :schema, only: %i[show update]
|
18
19
|
resources :audits, only: %i[index]
|
@@ -47,5 +48,3 @@ Motor::Admin.routes.draw do
|
|
47
48
|
end
|
48
49
|
end
|
49
50
|
end
|
50
|
-
|
51
|
-
ActiveSupport::Notifications.instrument('motor.routes.loaded')
|
@@ -7,3 +7,4 @@ require_relative './active_record_utils/types'
|
|
7
7
|
require_relative './active_record_utils/fetch_methods'
|
8
8
|
require_relative './active_record_utils/defined_scopes_extension'
|
9
9
|
require_relative './active_record_utils/active_storage_links_extension'
|
10
|
+
require_relative './active_record_utils/active_storage_blob_patch'
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Motor
|
4
|
+
module ActiveRecordUtils
|
5
|
+
module ActiveStorageBlobPatch
|
6
|
+
KEYWORD_ARGS = %i[io filename content_type metadata identify].freeze
|
7
|
+
|
8
|
+
def build_after_upload(hash)
|
9
|
+
super(**hash.with_indifferent_access.slice(*KEYWORD_ARGS).symbolize_keys)
|
10
|
+
end
|
11
|
+
|
12
|
+
def build_after_unfurling(hash)
|
13
|
+
super(**hash.with_indifferent_access.slice(*KEYWORD_ARGS).symbolize_keys)
|
14
|
+
end
|
15
|
+
|
16
|
+
def create_after_unfurling!(hash)
|
17
|
+
super(**hash.with_indifferent_access.slice(*KEYWORD_ARGS).symbolize_keys)
|
18
|
+
end
|
19
|
+
|
20
|
+
def create_and_upload!(hash)
|
21
|
+
super(**hash.with_indifferent_access.slice(*KEYWORD_ARGS).symbolize_keys)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|