Home
Softono
a

akryum

Professional software vendor delivering innovative solutions on the Softono platform. Specialized in both open-source and proprietary software development.

Total Products
5

Software by akryum

vue-virtual-scroller
Open Source

vue-virtual-scroller

# vue-virtual-scroller [![npm](https://img.shields.io/npm/v/vue-virtual-scroller.svg) ![npm](https://img.shields.io/npm/dm/vue-virtual-scroller.svg)](https://www.npmjs.com/package/vue-virtual-scroller) [![vue3](https://img.shields.io/badge/vue-3.x-brightgreen.svg)](https://vuejs.org/) [Documentation](https://vue-virtual-scroller.netlify.app/) Blazing fast scrolling of any amount of data | [Live demo](https://vue-virtual-scroller-demo.netlify.app/) | [Video demo](https://www.youtube.com/watch?v=Uzq1KQV8f4k) For Vue 2 support, see [here](https://github.com/Akryum/vue-virtual-scroller/tree/v1/packages/vue-virtual-scroller) This package ships ESM only in the current Vue 3 line. Use it with an ESM-aware toolchain such as Vite, Nuxt, Rollup, or webpack 5. [💚️ Become a Sponsor](https://github.com/sponsors/Akryum) ## Sponsors <p align="center"> <a href="https://guillaume-chau.info/sponsors/" target="_blank"> <img src='https://akryum.netlify.app/sponsors.svg' alt="sponsors" /> </a> </p>

JavaScript Libraries & Components Web Components & Widgets
10.8K Github Stars
vue-mention
Open Source

vue-mention

<p align="center"> <a href="https://vue-mention.netlify.app/" target="_blank"> <img src="./packages/docs/src/.vuepress/public/vue-mention.svg" alt="logo" width="128"> </a> </p> <p align="center"> <a href="https://www.npmjs.com/package/vue-mention"> <img src="https://img.shields.io/npm/v/vue-mention.svg" alt="Version"> </a> <a href="https://www.npmjs.com/package/vue-mention"> <img src="https://img.shields.io/npm/dm/vue-mention.svg" alt="Downloads"> </a> </p> # vue-mention Mention popper for input and textarea [Documentation](https://vue-mention.netlify.app/) ## Vue 3 support Install the v2 for Vue 3 support: ``` pnpm i vue-mention@next ``` You also need to install `floating-vue`: ``` pnpm i floating-vue ``` And add the default `floating-vue` styles: ```js import 'floating-vue/dist/style.css' ``` ## floating-vue 1 (Vue 2) Install the special version for floating-vue v1 (for Vue 2) support: ``` pnpm i [email protected] ``` **:warning: Use the exact version range `1.0.0-floating-vue1` otherwise you'll install `v1.1.0` which is for v-tooltip 2.** You also need to install `floating-vue` v1: ``` pnpm i floating-vue@vue2 ``` And add the default `floating-vue` styles: ```js import 'floating-vue/dist/style.css' ``` ## Sponsors <p align="center"> <a href="https://guillaume-chau.info/sponsors/" target="_blank"> <img src='https://akryum.netlify.app/sponsors.svg'/> </a> </p> ## Quick start ```vue <script> import { Mentionable } from 'vue-mention' const users = [ { value: 'akryum', firstName: 'Guillaume', }, { value: 'posva', firstName: 'Eduardo', }, { value: 'atinux', firstName: 'Sébastien', }, ] const issues = [ { value: 123, label: 'Error with foo bar', searchText: 'foo bar' }, { value: 42, label: 'Cannot read line', searchText: 'foo bar line' }, { value: 77, label: 'I have a feature suggestion', searchText: 'feature' } ] export default { components: { Mentionable, }, data () { return { text: '', items: [], } }, methods: { onOpen (key) { this.items = key === '@' ? users : issues }, }, } </script> <template> <Mentionable :keys="['@', '#']" :items="items" offset="6" insert-space @open="onOpen" > <textarea v-model="text" /> <template #no-result> <div class="dim"> No result </div> </template> <template #item-@="{ item }"> <div class="user"> {{ item.value }} <span class="dim"> ({{ item.firstName }}) </span> </div> </template> <template #item-#="{ item }"> <div class="issue"> <span class="number"> #{{ item.value }} </span> <span class="dim"> {{ item.label }} </span> </div> </template> </Mentionable> </template> ```

JavaScript Libraries & Components Web Components & Widgets
556 Github Stars
vue-googlemaps
Open Source

vue-googlemaps

# vue-googlemaps [![npm](https://img.shields.io/npm/v/vue-googlemaps.svg) ![npm](https://img.shields.io/npm/dm/vue-googlemaps.svg)](https://www.npmjs.com/package/vue-googlemaps) [![vue2](https://img.shields.io/badge/vue-2.x-brightgreen.svg)](https://vuejs.org/) Integrate Google Maps in your Vue application in a "Vue-way". > This library is Work In Progress. > More components will be available in the 1.0 release. [Live demo](https://akryum.github.io/vue-googlemaps/) The main objective of the library is to use Google Maps using Vue components in a way that feels natural to Vue developpers (with props, events, slots...). <p> <a href="https://www.patreon.com/akryum" target="_blank"> <img src="https://c5.patreon.com/external/logo/become_a_patron_button.png" alt="Become a Patreon"> </a> </p> ## Sponsors ### Gold <p align="center"> <a href="https://www.sumcumo.com/en/" target="_blank"> <img src="https://cdn.discordapp.com/attachments/258614093362102272/570728242399674380/logo-sumcumo.png" alt="sum.cumo logo" width="400px"> </a> </p> ### Silver <p align="center"> <a href="https://vueschool.io/" target="_blank"> <img src="https://vueschool.io/img/logo/vueschool_logo_multicolor.svg" alt="VueSchool logo" width="200px"> </a> <a href="https://www.vuemastery.com/" target="_blank"> <img src="https://cdn.discordapp.com/attachments/258614093362102272/557267759130607630/Vue-Mastery-Big.png" alt="Vue Mastery logo" width="200px"> </a> </p> ### Bronze <p align="center"> <a href="https://vuetifyjs.com" target="_blank"> <img src="https://cdn.discordapp.com/attachments/537832759985700914/537832771691872267/Horizontal_Logo_-_Dark.png" width="100"> </a> <a href="https://www.frontenddeveloperlove.com/" target="_blank" title="Frontend Developer Love"> <img src="https://cdn.discordapp.com/attachments/258614093362102272/557267744249085953/frontend_love-logo.png" width="56"> </a> </p> <br> ## Table of Contents - [Installation](#installation) - [Usage](#usage) - [Builtin components](#builtin-components) - [Create you own components](#create-you-own-components) - [Quick Examples](#quick-examples) ## Installation ``` npm i -S vue-googlemaps ``` ``` yarn add vue-googlemaps ``` *You need to [polyfill](https://babeljs.io/docs/usage/polyfill/) some ES2015 features in old browsers.* ## Usage You need a Google API key from the [developer console](http://console.developers.google.com/). ```js import 'vue-googlemaps/dist/vue-googlemaps.css' import VueGoogleMaps from 'vue-googlemaps' Vue.use(VueGoogleMaps, { load: { // Google API key apiKey: 'your-google-api-key', // Enable more Google Maps libraries here libraries: ['places'], // Use new renderer useBetaRenderer: false, }, }) ``` ## Builtin components (Documentation is work-in-progress) - Circle - Geocoder - Map - Marker - NearbyPlaces - PlaceDetails - UserPosition - *More to come!* ## Create you own components Here is an example of what a `Marker` component would look like: ```js import { MapElement } from 'vue-googlemaps' // Those Vue props will update automatically // (Two-way binding with .sync modifier) const boundProps = [ 'animation', 'clickable', 'cursor', 'draggable', // ... ] // Events from Google Maps emitted as Vue events const redirectedEvents = [ 'click', 'rightclick', 'dblclick', 'drag', // ... ] export default { mixins: [ // You need to use this mixin MapElement, ], // When Google Maps is ready googleMapsReady () { const options = Object.assign({}, this.$props) options.map = this.$_map // Create Google Maps objects this.$_marker = new window.google.maps.Marker(options) // Bind the Vue props this.bindProps(this.$_marker, boundProps) // Emit the events from Google Maps this.redirectEvents(this.$_marker, redirectedEvents) }, beforeDestroy () { // Teardown if (this.$_marker) { this.$_marker.setMap(null) } }, } ``` ## Quick Examples ### Map with markers ```html <googlemaps-map :center.sync="center" :zoom.sync="zoom" :options="mapOptions" @idle="onIdle" @click="onMapClick"> <!-- User Position --> <googlemaps-user-position @update:position="setUserPosition" /> <googlemaps-marker v-for="marker of markers" :key="marker._id" :label="{ color: marker === currentmarker ? 'white' : 'black', fontFamily: 'Material Icons', fontSize: '20px', text: 'star_rate', }" :position="marker.position" @click="selectMarker(marker._id)" /> </googlemaps-map> ``` ### Place Details ```html <googlemaps-place-details :request="{ placeId: placeId }" @results="results => ..." > <template slot-scope="props"> <div class="name">{{ props.results.name }}</div> <div class="address">{{ props.results.formatted_address }}</div> </template> </googlemaps-place-details> ``` ### Geocoder ```html <googlemaps-geocoder :request="{ location: latLng, }" @results="results => ..." > <template slot-scope="props"> <div class="name">{{ props.results[1].name }}</div> <div class="address">{{ props.results[0].formatted_address }}</div> </template> </googlemaps-geocoder> ``` ### Nearby places ```html <googlemaps-map @idle="map => mapBounds = map.getBounds()" /> <googlemaps-nearby-places :request="{ bounds: mapBounds }" :filter="result => !result.types.includes('locality')" @results="results => ..." > <template slot-scope="props"> <div v-if="props.loading">Loading...</div> <div v-for="result of props.result"> <div> <img v-if="result.photos" :src="result.photos[0].getUrl({ maxWidth: 80, maxHeight: 80 })" /> {{ result.name }} </div> <div>{{ result.vicinity }}</div> </div> </template> </googlemaps-nearby-places> ```

Maps & Location JavaScript Libraries & Components
532 Github Stars
vue-resize
Open Source

vue-resize

# vue-resize See the [package README](./packages/vue-resize/README.md).

Utilities & System JavaScript Libraries & Components
507 Github Stars
vue-progress-path
Open Source

vue-progress-path

# vue-progress-path [![npm](https://img.shields.io/npm/v/vue-progress-path.svg) ![npm](https://img.shields.io/npm/dm/vue-progress-path.svg)](https://www.npmjs.com/package/vue-progress-path) [![vue2](https://img.shields.io/badge/vue-2.x-brightgreen.svg)](https://vuejs.org/) Progress bars and loading indicators that can take any form! > This library is Work In Progress. [Live Demo](https://akryum.github.io/vue-progress-path/) <p> <a href="https://www.patreon.com/akryum" target="_blank"> <img src="https://c5.patreon.com/external/logo/become_a_patron_button.png" alt="Become a Patreon"> </a> </p> ## Sponsors ### Gold <p align="center"> <a href="https://www.sumcumo.com/en/" target="_blank"> <img src="https://cdn.discordapp.com/attachments/258614093362102272/570728242399674380/logo-sumcumo.png" alt="sum.cumo logo" width="400px"> </a> </p> ### Silver <p align="center"> <a href="https://vueschool.io/" target="_blank"> <img src="https://vueschool.io/img/logo/vueschool_logo_multicolor.svg" alt="VueSchool logo" width="200px"> </a> <a href="https://www.vuemastery.com/" target="_blank"> <img src="https://cdn.discordapp.com/attachments/258614093362102272/557267759130607630/Vue-Mastery-Big.png" alt="Vue Mastery logo" width="200px"> </a> </p> ### Bronze <p align="center"> <a href="https://vuetifyjs.com" target="_blank"> <img src="https://cdn.discordapp.com/attachments/537832759985700914/537832771691872267/Horizontal_Logo_-_Dark.png" width="100"> </a> <a href="https://www.frontenddeveloperlove.com/" target="_blank" title="Frontend Developer Love"> <img src="https://cdn.discordapp.com/attachments/258614093362102272/557267744249085953/frontend_love-logo.png" width="56"> </a> </p> ## Installation ``` npm i -S vue-progress-path ``` ``` yarn add vue-progress-path ``` ## Usage ```js import 'vue-progress-path/dist/vue-progress-path.css' import VueProgress from 'vue-progress-path' Vue.use(VueProgress, { // defaultShape: 'circle', }) ``` You can now use the `<loading-progress>` component. ## CSS customization example You can customize the progress components with CSS: ```css .vue-progress-path path { stroke-width: 12; } .vue-progress-path .progress { stroke: red; } .vue-progress-path .background { stroke: #edd; } ``` ## Examples Google Material Design-like spinner: ```html <loading-progress :progress="progress" :indeterminate="indeterminate" :counter-clockwise="counterClockwise" :hide-background="hideBackground" size="64" rotate fillDuration="2" rotationDuration="1" /> ``` Semi-circle: ```html <loading-progress :progress="progress" :indeterminate="indeterminate" :counter-clockwise="counterClockwise" :hide-background="hideBackground" shape="semicircle" size="64" /> ``` Custom SVG path: ```html <loading-progress :progress="progress" :indeterminate="indeterminate" :counter-clockwise="counterClockwise" :hide-background="hideBackground" shape="M10 80 C 40 10, 65 10, 95 80 S 150 150, 180 80" size="180" fill-duration="2" /> ```

JavaScript Libraries & Components
421 Github Stars