Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/soft4ti/vue-select-sides

A component for Vue.js to select double-sided data.
https://github.com/soft4ti/vue-select-sides

Last synced: about 2 months ago
JSON representation

A component for Vue.js to select double-sided data.

Lists

README

        


Vue Select Sides


Vue Select Sides



npm


npm


npm

A component for Vue.js to select double-sided data. The customer can select one or more items and ship them from side to side. Values can be displayed grouped or ungrouped.


Demo - Vue Select Sides

## [Live DEMO](https://juliorosseti.github.io/vue-select-sides/demo.html?v=20201113113940)

## Installation

First install it using:

```bash
npm install --save vue-select-sides
```

or

```bash
yarn add vue-select-sides
```

Then you can either use it as a component:

```js
import vueSelectSides from "vue-select-sides";

export default {
components: {
vueSelectSides
}
};
```

Global component:

```javascript
import vueSelectSides from "vue-select-sides";
Vue.use(VueSelectSides);
Vue.component("vue-select-sides", VueSelectSides);
```

Or if you wish to include it in a `script` tag, just include the `vueSelectSides.umd.min.js` file located in the `dist` folder as so:

```html

```

## Usage

The component has support for two types: `mirror` and `grouped`.

#### Import a theme

```scss
// modern
@import "/node_modules/vue-select-sides/styles/themes/soft.scss";
// or dark
@import "/node_modules/vue-select-sides/styles/themes/dark.scss";
// or light
@import "/node_modules/vue-select-sides/styles/themes/light.scss";
```

#### Grouped

Warning: `v-model` must be of type `Object`

```html

```

```javascript
import vueSelectSides from "vue-select-sides";

export default {
components: {
vueSelectSides
},
data() {
return {
selected: {},
list: [
{
value: "sul",
label: "Sul",
disabled: false,
children: [
{
value: "santa-catarina",
label: "Santa Catarina",
disabled: false
},
{
...
}
]
},
{
value: "sudeste",
label: "Sudeste",
disabled: false,
children: [
{
value: "minas-gerais",
label: "Minas Gerais",
disabled: false
},
{
...
}
]
}
]
};
}
};
```

#### Mirror

Warning: `v-model` must be of type `Array`

```html

```

```javascript
import vueSelectSides from "vue-select-sides";

export default {
components: {
vueSelectSides
},
data() {
return {
selected: [],
list: [
{
value: "afghanistan",
label: "Afghanistan",
disabled: true
},
{
value: "brazil",
label: "Brazil"
},
{
value: "fiji",
label: "Fiji",
disabled: true
},
{
value: "ghana",
label: "Ghana"
},
{
...
}
];
}
};
```

## Language/locales

List of locales available for the plugin:

- `en_US` - [English] - Default
- `pt_BR` - [Portuguese] - Contributed by @juliorosseti
- `es_ES` - [Spanish] - Contributed by @etrepat
- `fr_FR` - [French] - Contributed by @MajuTo
- `tr_TR` - [Turkey] - Contributed by @Abdulsametileri
- `pl_PL` - [Polish] - Contributed by @jzapal

### Use global locale

```javascript
import vueSelectSides from "vue-select-sides";

Vue.use(vueSelectSides, {
locale: "pt_BR"
});

Vue.component("vue-select-sides", vueSelectSides);
```

## Props

These are all the props you can pass to the component:

| name | type | example | notes |
| ----------------------------- | ------------------- | ----------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| v-model | `Array` or `Object` | `["xyz"]` or `{xyz: ["abc", "def"]}` | Use **Object** if type is grouped else uses **Array** |
| type | `String` | `grouped` or `mirror` | |
| list | `Array` | `[{ value: "xyz", label: "Label xyz 01", disabled: true/false }]` | You can add the `children` key to type `grouped` |
| search | `Boolean` | `true` or `false` | To show/hide search input. Default is visible (true) |
| total | `Boolean` | `true` or `false` | To show/hide total selected in footer. Default is visible (true) |
| toggle-all | `Boolean` | `true` or `false` | To show/hide toggle in footer. Default is visible (true) |
| sort-selected-up | `Boolean` | `true` or `false` | Show first the pre-selected. Default does not visible (false). _Available only grouped type_ |
| order-by | `String` | `asc` or `desc` | Show first the pre-selected. Default is natural order |
| ~~lang~~ (deprecated in v1.1) | ~~`String`~~ | ~~`en_US`, `pt_BR`, `es_ES` or `fr_FR`~~ | ~~Language default. Default is en_US~~
Use `Use global locale` |
| placeholder-search-left | `String` | "Yay! Search items..." | Placeholder on the left search field. Default is "" |
| placeholder-search-right | `String` | "Or search children items..." | Placeholder on the right search field. Default is "" |

## Bugs and feature requests

If your problem or idea is not addressed yet, please open a new issue.

## Sponsor / Creator


Softdesk - Sponsor

## Contribution / Development

#### Install dependencies

```
yarn install
```

#### Devserver

```
yarn run serve
```

#### Bundling

```
yarn run build
```

## Donate

You can help with a donation on Paypal

## License

Vue select sides is open-sourced software licensed under the the MIT license.