2.0.5 • Published 2 years ago

@ticnat/nativescript-searchable-select v2.0.5

Weekly downloads
42
License
Apache-2.0
Repository
github
Last release
2 years ago

@ticnat/nativescript-searchable-select

Since nativescript changed the way it fill up ObservableArray and breaking changes so For nativescript >= 8.3.0

ns plugin add @ticnat/nativescript-searchable-select

For nativescript < 8.3.0

ns plugin add @ticnat/nativescript-searchable-select@1.0.7

FilterSelect

npm npm

A NativeScript plugin to provide an listview widget to select AND filter items.

Sample Screenshots

Android and ios

Sample 1Sample 2
Sample1Sample2

Installation

NativeScript 7.x
  • tns plugin add @ticnat/nativescript-searchable-select

import css

@import '@ticnat/nativescript-searchable-select/styles.css';

*Be sure to run a new build after adding plugins to avoid any issues

Vanilla NativeScript

IMPORTANT: Make sure you include xmlns:SS="@ticnat/nativescript-searchable-select" on the Page element

XML

<Page xmlns:SS="@ticnat/nativescript-searchable-select">
   <StackLayout>
     <SS:SearchableSelect
     items="{{ countries }}"
     hint="Please select some countries"
     modal_title="Countries" search_param="name"
     primary_key="code"
     change="{{ onSelect }}"
     />
   </StackLayout>
</Page>

or with inner template option:

<Page xmlns:SS="@ticnat/nativescript-searchable-select">
    <SS:SearchableSelect render="label" selected="{{ selected }}" items="{{ countries }}" hint="Please select some countries" modal_title="Countries" search_param="name" primary_key="code" change="{{ onSelect }}">
          <SS:SearchableSelect.itemTemplate>
            <GridLayout class="item" height="50" columns="*,100">
              <Label col="0" class="text-center" text="{{ name }}" textWrap="true" />
              <Label col="1" class="text-center" text="{{ code }}" textWrap="true" />
            </GridLayout>
          </SS:SearchableSelect.itemTemplate>
        </SS:SearchableSelect>
</Page>

Angular NativeScript

Regiter plugin in Component class

import { registerElement } from 'nativescript-angular/element-registry';
import { FilterSelect } from '@ticnat/nativescript-searchable-select';
registerElement('FilterSelect', () => FilterSelect);

HTML

    <FilterSelect
        height="100%"
        [items]="items"
        (change)="onitemselected($event)"
        hint="Please select some items"
        modal_title="item" search_param="name"
        primary_key="id">

    </FilterSelect>

Attributes

see demo examples for more information

AttributeDescriptionDefault
renderto render "tags" or "label" or "drop"string : tags
multipleto limit the options selected to one if set to falseboolean : true
search_paramindex of the string value in the items object to search on itstring : name
item_templatexml template for the listview itemsstring : <Label col="0" text="{{ ${this._search_param} }}" textWrap="true" />
changechange event treger when select is donefunction : optional change(args) and selected item can be accessed as args.selected
modal_titletitle of the filter modalString : Please select items
hintstring to show when no items selectedPlease select some items
itemsarray of objects to populate the list of optionsObservableArray :[]
primary_keyunique index of the items objectstring : id
selectedarray of objects to mark some options as selected and it will be the result when select is doneArray: []
disabledto disable select bottonboolean : false
allowSearchto enable/disable search bar in the modalboolean : true
windowHeightto specify the height of the select windownumber : 70
refreshto refresh the filter select with new values good with remote datafunction
searchHintsearch placeholder or hint in the items modal"Search for item"
xbtnremove tag text you can use tag icon here"x"
closeTextclose button text"Close"
doneTextdone button text"Done"
clearTextclear button text"Clear"
selectTextselect button text"Select"
autofocuskeyboard up when you open modal so you can start searchfalse
open()open modal programmaticallyfunction
closeclose event treger when modal is closedyou can get the selected array by args.selected if the modal closed without any selection the array will be empty

CSS core-theme styles is required for modal page if you dont have them just make your own

see styles.css so you can override or make your own

  • and don't forget to share with us your nice styles :D

font icons

  • font icons are required if you are using dropdown render

    and you can add fontawsome icon as a select triger ( hint="{{'fa-list-ul' | fonticon}}" )

    see demo

License

This plugin is built and maintained based on this plugin and many thanks for @moayadnajd

For contributing

just do a pull request with description of your changes or open issue with your ideas

Need velocity on your NativeScript projects? I'm available to build beautiful and performant NativeScript applications for your business requirements. Email me direct: m.opada.albosh@gmail.com to discuss project details.

2.0.5

2 years ago

2.0.3

2 years ago

2.0.2

2 years ago

2.0.4

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago