motor-admin 0.1.43 → 0.1.49
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 +1 -0
- data/lib/motor/build_schema/find_icon.rb +131 -0
- data/lib/motor/build_schema/load_from_rails.rb +42 -23
- 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-c3893a249308242d20f5.css.gz → main-918b506ecd64910a5845.css.gz} +0 -0
- data/ui/dist/main-918b506ecd64910a5845.js.gz +0 -0
- data/ui/dist/manifest.json +2531 -5
- metadata +1273 -34
- data/ui/dist/main-c3893a249308242d20f5.js.gz +0 -0
data/lib/motor/admin.rb
CHANGED
@@ -3,9 +3,11 @@
|
|
3
3
|
module Motor
|
4
4
|
class Admin < ::Rails::Engine
|
5
5
|
initializer 'motor.startup_message' do
|
6
|
-
|
6
|
+
config.after_initialize do
|
7
7
|
next unless Motor.server?
|
8
8
|
|
9
|
+
Rails.application.reload_routes!
|
10
|
+
|
9
11
|
if Rails.application.routes.url_helpers.respond_to?(:motor_admin_path)
|
10
12
|
url =
|
11
13
|
begin
|
@@ -67,6 +69,10 @@ module Motor
|
|
67
69
|
ActiveSupport.on_load(:active_storage_attachment) do
|
68
70
|
ActiveStorage::Attachment.include(Motor::ActiveRecordUtils::ActiveStorageLinksExtension)
|
69
71
|
end
|
72
|
+
|
73
|
+
ActiveSupport.on_load(:active_storage_blob) do
|
74
|
+
ActiveStorage::Blob.singleton_class.prepend(Motor::ActiveRecordUtils::ActiveStorageBlobPatch)
|
75
|
+
end
|
70
76
|
end
|
71
77
|
end
|
72
78
|
end
|
@@ -96,8 +96,8 @@ module Motor
|
|
96
96
|
def normalize_include_params(params)
|
97
97
|
case params
|
98
98
|
when Array
|
99
|
-
params.
|
100
|
-
|
99
|
+
params.index_with do |_|
|
100
|
+
{ 'include' => {} }
|
101
101
|
end
|
102
102
|
when String
|
103
103
|
{ params => { 'include' => {} } }
|
@@ -57,13 +57,7 @@ module Motor
|
|
57
57
|
def find_searchable_columns(model)
|
58
58
|
model.columns.map do |column|
|
59
59
|
next unless column.type.in?(COLUMN_TYPES)
|
60
|
-
|
61
|
-
has_inclusion_validator =
|
62
|
-
model.validators_on(column.name).any? do |e|
|
63
|
-
e.is_a?(ActiveModel::Validations::InclusionValidator)
|
64
|
-
end
|
65
|
-
|
66
|
-
next if has_inclusion_validator
|
60
|
+
next if model.validators_on(column.name).any?(ActiveModel::Validations::InclusionValidator)
|
67
61
|
|
68
62
|
column.name
|
69
63
|
end.compact
|
data/lib/motor/assets.rb
CHANGED
@@ -14,6 +14,12 @@ module Motor
|
|
14
14
|
JSON.parse(MANIFEST_PATH.read)
|
15
15
|
end
|
16
16
|
|
17
|
+
def icons
|
18
|
+
manifest.select do |k, v|
|
19
|
+
!k.ends_with?('.gz') && v.starts_with?('icons/') && v.exclude?('DS_Store')
|
20
|
+
end.keys
|
21
|
+
end
|
22
|
+
|
17
23
|
def asset_path(path)
|
18
24
|
Motor::Admin.routes.url_helpers.motor_asset_path(manifest[path])
|
19
25
|
end
|
data/lib/motor/build_schema.rb
CHANGED
@@ -68,8 +68,10 @@ module Motor
|
|
68
68
|
end
|
69
69
|
|
70
70
|
require_relative './build_schema/active_storage_attachment_schema'
|
71
|
+
require_relative './build_schema/adjust_devise_model_schema'
|
71
72
|
require_relative './build_schema/load_from_rails'
|
72
73
|
require_relative './build_schema/find_display_column'
|
74
|
+
require_relative './build_schema/find_icon'
|
73
75
|
require_relative './build_schema/persist_resource_configs'
|
74
76
|
require_relative './build_schema/reorder_schema'
|
75
77
|
require_relative './build_schema/merge_schema_configs'
|
@@ -9,14 +9,18 @@ module Motor
|
|
9
9
|
primary_key: 'id',
|
10
10
|
display_name: 'Attachments',
|
11
11
|
display_column: 'filename',
|
12
|
+
icon: 'paperclip',
|
12
13
|
columns: [
|
13
14
|
{
|
14
15
|
name: 'id',
|
15
|
-
display_name: '
|
16
|
+
display_name: 'ID',
|
16
17
|
column_type: 'integer',
|
17
18
|
access_type: 'read_only',
|
18
19
|
default_value: nil,
|
19
20
|
validators: [],
|
21
|
+
format: {},
|
22
|
+
is_array: false,
|
23
|
+
reference: nil,
|
20
24
|
virtual: false
|
21
25
|
},
|
22
26
|
{
|
@@ -26,6 +30,9 @@ module Motor
|
|
26
30
|
access_type: 'read_only',
|
27
31
|
default_value: nil,
|
28
32
|
validators: [],
|
33
|
+
format: {},
|
34
|
+
is_array: false,
|
35
|
+
reference: nil,
|
29
36
|
virtual: true
|
30
37
|
},
|
31
38
|
{
|
@@ -35,6 +42,9 @@ module Motor
|
|
35
42
|
access_type: 'read_write',
|
36
43
|
default_value: nil,
|
37
44
|
validators: [],
|
45
|
+
format: {},
|
46
|
+
is_array: false,
|
47
|
+
reference: nil,
|
38
48
|
virtual: false
|
39
49
|
},
|
40
50
|
{
|
@@ -44,6 +54,9 @@ module Motor
|
|
44
54
|
access_type: 'read_write',
|
45
55
|
default_value: nil,
|
46
56
|
validators: [],
|
57
|
+
format: {},
|
58
|
+
is_array: false,
|
59
|
+
reference: nil,
|
47
60
|
virtual: false
|
48
61
|
},
|
49
62
|
{
|
@@ -53,6 +66,16 @@ module Motor
|
|
53
66
|
access_type: 'read_write',
|
54
67
|
default_value: nil,
|
55
68
|
validators: [],
|
69
|
+
format: {},
|
70
|
+
is_array: false,
|
71
|
+
reference: {
|
72
|
+
name: 'record',
|
73
|
+
display_name: 'Record',
|
74
|
+
model_name: nil,
|
75
|
+
reference_type: 'belongs_to',
|
76
|
+
foreign_key: 'record_id',
|
77
|
+
polymorphic: true
|
78
|
+
},
|
56
79
|
virtual: false
|
57
80
|
},
|
58
81
|
{
|
@@ -62,6 +85,9 @@ module Motor
|
|
62
85
|
access_type: 'write_only',
|
63
86
|
default_value: nil,
|
64
87
|
validators: [],
|
88
|
+
format: {},
|
89
|
+
is_array: false,
|
90
|
+
reference: nil,
|
65
91
|
virtual: false
|
66
92
|
},
|
67
93
|
{
|
@@ -71,6 +97,9 @@ module Motor
|
|
71
97
|
access_type: 'read_only',
|
72
98
|
default_value: nil,
|
73
99
|
validators: [],
|
100
|
+
format: {},
|
101
|
+
is_array: false,
|
102
|
+
reference: nil,
|
74
103
|
virtual: false
|
75
104
|
}
|
76
105
|
],
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Motor
|
4
|
+
module BuildSchema
|
5
|
+
module AdjustDeviseModelSchema
|
6
|
+
HIDDEN_COLUMNS = %w[
|
7
|
+
encrypted_password
|
8
|
+
reset_password_token
|
9
|
+
confirmation_token
|
10
|
+
].freeze
|
11
|
+
|
12
|
+
READ_ONLY_COLUMNS = %w[
|
13
|
+
reset_password_sent_at
|
14
|
+
remember_created_at
|
15
|
+
sign_in_count
|
16
|
+
current_sign_in_at
|
17
|
+
last_sign_in_at
|
18
|
+
current_sign_in_ip
|
19
|
+
last_sign_in_ip
|
20
|
+
confirmed_at
|
21
|
+
confirmation_sent_at
|
22
|
+
].freeze
|
23
|
+
|
24
|
+
module_function
|
25
|
+
|
26
|
+
def call(schema, devise_modules)
|
27
|
+
modify_column_access_types!(schema[:columns])
|
28
|
+
add_password_column!(schema[:columns]) if devise_modules.include?(:database_authenticatable)
|
29
|
+
|
30
|
+
schema
|
31
|
+
end
|
32
|
+
|
33
|
+
def modify_column_access_types!(columns)
|
34
|
+
columns.each do |column|
|
35
|
+
column[:access_type] =
|
36
|
+
case column[:name]
|
37
|
+
when *HIDDEN_COLUMNS
|
38
|
+
ColumnAccessTypes::HIDDEN
|
39
|
+
when *READ_ONLY_COLUMNS
|
40
|
+
ColumnAccessTypes::READ_ONLY
|
41
|
+
else
|
42
|
+
column[:access_type]
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def add_password_column!(columns)
|
48
|
+
columns << {
|
49
|
+
name: 'password',
|
50
|
+
display_name: 'Password',
|
51
|
+
column_type: 'string',
|
52
|
+
access_type: 'write_only',
|
53
|
+
default_value: nil,
|
54
|
+
validators: [],
|
55
|
+
virtual: true
|
56
|
+
}
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,131 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Motor
|
4
|
+
module FindIcon
|
5
|
+
ICONS_MAP = {
|
6
|
+
'audit' => 'history',
|
7
|
+
'block' => 'ban',
|
8
|
+
'blocked' => 'ban',
|
9
|
+
'blacklisted' => 'ban',
|
10
|
+
'blocklisted' => 'ban',
|
11
|
+
'banned' => 'ban',
|
12
|
+
'website' => 'world',
|
13
|
+
'location' => 'gps',
|
14
|
+
'photo' => 'photo',
|
15
|
+
'image' => 'photo',
|
16
|
+
'screenshot' => 'photo',
|
17
|
+
'picture' => 'photo',
|
18
|
+
'video' => 'video',
|
19
|
+
'file' => 'file',
|
20
|
+
'pdf' => 'file-text',
|
21
|
+
'ad' => 'ad',
|
22
|
+
'shop' => 'building-store',
|
23
|
+
'store' => 'building-store',
|
24
|
+
'seller' => 'building-store',
|
25
|
+
'app' => 'apps',
|
26
|
+
'book' => 'book',
|
27
|
+
'movie' => 'movie',
|
28
|
+
'country' => 'map',
|
29
|
+
'api' => 'tool',
|
30
|
+
'config' => 'tool',
|
31
|
+
'key' => 'key',
|
32
|
+
'phone' => 'phone',
|
33
|
+
'call' => 'phone',
|
34
|
+
'cell' => 'phone',
|
35
|
+
'token' => 'key',
|
36
|
+
'secret' => 'lock',
|
37
|
+
'automation' => 'manual-gearbox',
|
38
|
+
'relationship' => 'hierarchy',
|
39
|
+
'person' => 'user',
|
40
|
+
'people' => 'users',
|
41
|
+
'mail' => 'mail',
|
42
|
+
'user' => 'user',
|
43
|
+
'rating' => 'star',
|
44
|
+
'article' => 'blockquote',
|
45
|
+
'podcast' => 'headphones',
|
46
|
+
'payment' => 'cash',
|
47
|
+
'log' => 'history',
|
48
|
+
'history' => 'history',
|
49
|
+
'rule' => 'manual-gearbox',
|
50
|
+
'tracking' => 'zoom-question',
|
51
|
+
'github' => 'brand-github',
|
52
|
+
'tag' => 'hash',
|
53
|
+
'category' => 'hash',
|
54
|
+
'label' => 'hash',
|
55
|
+
'twitter' => 'brand-twitter',
|
56
|
+
'facebook' => 'brand-facebook',
|
57
|
+
'google' => 'brand-google',
|
58
|
+
'renewal' => 'repeat',
|
59
|
+
'sales' => 'report-money',
|
60
|
+
'telegram' => 'brand-telegram',
|
61
|
+
'whatsapp' => 'brand-whatsapp',
|
62
|
+
'survey' => 'checkbox',
|
63
|
+
'subcategory' => 'hash',
|
64
|
+
'type' => 'hash',
|
65
|
+
'model' => 'hash',
|
66
|
+
'taxon' => 'hash',
|
67
|
+
'affiliate' => 'affiliate',
|
68
|
+
'chat' => 'message-circle',
|
69
|
+
'message' => 'messages',
|
70
|
+
'poll' => 'messages',
|
71
|
+
'feedpack' => 'messages',
|
72
|
+
'attachment' => 'paperclip',
|
73
|
+
'certificate' => 'certificate',
|
74
|
+
'approval' => 'certificate',
|
75
|
+
'bank' => 'building-bank',
|
76
|
+
'bridge' => 'building-bridge',
|
77
|
+
'car' => 'car',
|
78
|
+
'vehicle' => 'car',
|
79
|
+
'analytic' => 'device-analytics',
|
80
|
+
'stat' => 'device-analytics',
|
81
|
+
'statistic' => 'device-analytics',
|
82
|
+
'link' => 'link',
|
83
|
+
'slug' => 'link',
|
84
|
+
'city' => 'building-skyscraper',
|
85
|
+
'region' => 'map',
|
86
|
+
'district' => 'building-community',
|
87
|
+
'community' => 'building-community',
|
88
|
+
'activity' => 'activity',
|
89
|
+
'invoice' => 'invoice',
|
90
|
+
'settlement' => 'invoice',
|
91
|
+
'state' => 'map',
|
92
|
+
'note' => 'note',
|
93
|
+
'order' => 'truck-delivery',
|
94
|
+
'lead' => 'building-lighthouse',
|
95
|
+
'error' => 'file-alert',
|
96
|
+
'page' => 'brand-pagekit',
|
97
|
+
'date' => 'calendar-event',
|
98
|
+
'customer' => 'users',
|
99
|
+
'contact' => 'users',
|
100
|
+
'member' => 'users',
|
101
|
+
'admin' => 'user-check',
|
102
|
+
'notification' => 'bell',
|
103
|
+
'alert' => 'bell',
|
104
|
+
'team' => 'users',
|
105
|
+
'folder' => 'folder',
|
106
|
+
'subscriber' => 'user-plus',
|
107
|
+
'product' => 'building-store',
|
108
|
+
'html' => 'code',
|
109
|
+
'stripe' => 'brand-stripe',
|
110
|
+
'email' => 'mail'
|
111
|
+
}.freeze
|
112
|
+
|
113
|
+
DEFAULT_ICON = 'database'
|
114
|
+
|
115
|
+
module_function
|
116
|
+
|
117
|
+
def call(text)
|
118
|
+
text = text.downcase
|
119
|
+
icon = ICONS_MAP[text] || ICONS_MAP[text.singularize]
|
120
|
+
|
121
|
+
icon ||=
|
122
|
+
text.split(%r{[\s_/]}).reverse.reduce(nil) do |_acc, word|
|
123
|
+
found_icon = ICONS_MAP[word] || ICONS_MAP[word.singularize]
|
124
|
+
|
125
|
+
break found_icon if found_icon
|
126
|
+
end
|
127
|
+
|
128
|
+
icon || DEFAULT_ICON
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
@@ -10,7 +10,15 @@ module Motor
|
|
10
10
|
|
11
11
|
def call
|
12
12
|
models.map do |model|
|
13
|
-
|
13
|
+
Object.const_get(model.name)
|
14
|
+
|
15
|
+
schema = build_model_schema(model)
|
16
|
+
|
17
|
+
if model.respond_to?(:devise_modules)
|
18
|
+
Motor::BuildSchema::AdjustDeviseModelSchema.call(schema, model.devise_modules)
|
19
|
+
end
|
20
|
+
|
21
|
+
schema
|
14
22
|
rescue StandardError, NotImplementedError => e
|
15
23
|
Rails.logger.error(e) if model.name != 'Audited::Audit'
|
16
24
|
|
@@ -47,6 +55,7 @@ module Motor
|
|
47
55
|
display_column: FindDisplayColumn.call(model),
|
48
56
|
columns: fetch_columns(model),
|
49
57
|
associations: fetch_associations(model),
|
58
|
+
icon: Motor::FindIcon.call(model.name.titleize),
|
50
59
|
scopes: fetch_scopes(model),
|
51
60
|
actions: DEFAULT_ACTIONS,
|
52
61
|
tabs: DEFAULT_TABS,
|
@@ -90,7 +99,7 @@ module Motor
|
|
90
99
|
|
91
100
|
{
|
92
101
|
name: column.name,
|
93
|
-
display_name: column.name
|
102
|
+
display_name: Utils.humanize_column_name(column.name),
|
94
103
|
column_type: is_enum ? 'string' : UNIFIED_TYPES[column.type.to_s] || column.type.to_s,
|
95
104
|
is_array: column.array?,
|
96
105
|
access_type: COLUMN_NAME_ACCESS_TYPES.fetch(column.name, ColumnAccessTypes::READ_WRITE),
|
@@ -108,13 +117,15 @@ module Motor
|
|
108
117
|
model.reflections.map do |name, ref|
|
109
118
|
next if !ref.has_one? && !ref.belongs_to?
|
110
119
|
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
120
|
+
unless ref.polymorphic?
|
121
|
+
begin
|
122
|
+
next if ref.klass.name == 'ActiveStorage::Blob'
|
123
|
+
rescue StandardError => e
|
124
|
+
Rails.logger.error(e)
|
116
125
|
|
117
|
-
|
126
|
+
next
|
127
|
+
end
|
128
|
+
end
|
118
129
|
|
119
130
|
build_reflection_column(name, model, ref, default_attrs)
|
120
131
|
end.compact
|
@@ -122,7 +133,7 @@ module Motor
|
|
122
133
|
|
123
134
|
def build_reflection_column(name, model, ref, default_attrs)
|
124
135
|
column_name = ref.belongs_to? ? ref.foreign_key.to_s : name
|
125
|
-
is_attachment = ref.klass.name == 'ActiveStorage::Attachment'
|
136
|
+
is_attachment = !ref.polymorphic? && ref.klass.name == 'ActiveStorage::Attachment'
|
126
137
|
access_type = ref.belongs_to? || is_attachment ? ColumnAccessTypes::READ_WRITE : ColumnAccessTypes::READ_ONLY
|
127
138
|
|
128
139
|
{
|
@@ -139,27 +150,21 @@ module Motor
|
|
139
150
|
end
|
140
151
|
|
141
152
|
def build_reference(name, reflection)
|
142
|
-
is_attachment = reflection.klass.name == 'ActiveStorage::Attachment'
|
143
|
-
|
144
153
|
{
|
145
154
|
name: name,
|
146
155
|
display_name: name.humanize,
|
147
|
-
model_name: reflection.klass.name.underscore,
|
156
|
+
model_name: reflection.polymorphic? ? nil : reflection.klass.name.underscore,
|
148
157
|
reference_type: reflection.belongs_to? ? 'belongs_to' : 'has_one',
|
149
158
|
foreign_key: reflection.foreign_key,
|
150
|
-
|
159
|
+
association_primary_key: reflection.polymorphic? ? 'id' : reflection.association_primary_key,
|
160
|
+
polymorphic: reflection.polymorphic?
|
151
161
|
}
|
152
162
|
end
|
153
163
|
|
154
164
|
def fetch_associations(model)
|
155
165
|
model.reflections.map do |name, ref|
|
156
166
|
next if ref.has_one? || ref.belongs_to?
|
157
|
-
|
158
|
-
begin
|
159
|
-
ref.klass
|
160
|
-
rescue StandardError
|
161
|
-
next
|
162
|
-
end
|
167
|
+
next unless valid_reflection?(ref)
|
163
168
|
|
164
169
|
model_class = ref.klass
|
165
170
|
|
@@ -171,7 +176,8 @@ module Motor
|
|
171
176
|
slug: name.underscore,
|
172
177
|
model_name: model_class.name.underscore,
|
173
178
|
foreign_key: ref.foreign_key,
|
174
|
-
polymorphic: ref.
|
179
|
+
polymorphic: ref.options[:as].present?,
|
180
|
+
icon: Motor::FindIcon.call(name),
|
175
181
|
visible: true
|
176
182
|
}
|
177
183
|
end.compact
|
@@ -197,20 +203,33 @@ module Motor
|
|
197
203
|
end
|
198
204
|
|
199
205
|
def build_validator_hash(validator)
|
206
|
+
options = validator.options.reject { |_, v| v.is_a?(Proc) }
|
207
|
+
|
200
208
|
case validator
|
201
209
|
when ActiveModel::Validations::InclusionValidator
|
202
210
|
{ includes: validator.send(:delimiter) }
|
203
211
|
when ActiveRecord::Validations::PresenceValidator
|
204
212
|
{ required: true }
|
205
213
|
when ActiveModel::Validations::FormatValidator
|
206
|
-
{ format: JsRegex.new(
|
214
|
+
{ format: JsRegex.new(options[:with]).to_h.slice(:source, :options) }
|
207
215
|
when ActiveRecord::Validations::LengthValidator
|
208
|
-
{ length:
|
216
|
+
{ length: options }
|
209
217
|
when ActiveModel::Validations::NumericalityValidator
|
210
|
-
{ numeric:
|
218
|
+
{ numeric: options }
|
211
219
|
end
|
212
220
|
end
|
213
221
|
|
222
|
+
def valid_reflection?(reflection)
|
223
|
+
reflection.klass
|
224
|
+
reflection.foreign_key
|
225
|
+
|
226
|
+
true
|
227
|
+
rescue StandardError => e
|
228
|
+
Rails.logger.error(e)
|
229
|
+
|
230
|
+
false
|
231
|
+
end
|
232
|
+
|
214
233
|
def eager_load_models!
|
215
234
|
MUTEX.synchronize do
|
216
235
|
if Rails::VERSION::MAJOR > 5 && defined?(Zeitwerk::Loader)
|