├── .nvmrc ├── .gitattributes ├── .npmignore ├── src_docs ├── markdown │ ├── keys │ │ ├── space.md │ │ ├── escape.md │ │ ├── end.md │ │ ├── home.md │ │ ├── tab.md │ │ ├── up.md │ │ ├── down.md │ │ └── enter.md │ ├── properties │ │ ├── inputProps.md │ │ ├── onClear.md │ │ ├── onBlur.md │ │ ├── disabled.md │ │ ├── onOpenDropdown.md │ │ ├── onSearchInputBlur.md │ │ ├── onCloseDropdown.md │ │ ├── openOnMount.md │ │ ├── placeholder.md │ │ ├── deselectOnSelectedOptionClick.md │ │ ├── tags.md │ │ ├── multiple.md │ │ ├── clearable.md │ │ ├── closeOnSelectedOptionClick.md │ │ ├── focusToSelectedValue.md │ │ ├── searchable.md │ │ ├── tagRemoveLabelString.md │ │ ├── clearSelectedValueOnDataSourceChange.md │ │ ├── initialValue.md │ │ ├── searchPlaceholder.md │ │ ├── onSearchInputChange.md │ │ ├── customGroupHeadingClass.md │ │ ├── customClass.md │ │ ├── ajaxErrorString.md │ │ ├── noResultsString.md │ │ ├── clearSelectionLabelString.md │ │ ├── customSearchIconClass.md │ │ ├── groupBy.md │ │ ├── clearSearchLabelString.md │ │ ├── optionLabelKey.md │ │ ├── focusOnMount.md │ │ ├── clearSearchOnSelection.md │ │ ├── customLoaderClass.md │ │ ├── hasMorePages.md │ │ ├── onChange.md │ │ ├── keepOpenOnSelection.md │ │ ├── customTagClass.md │ │ ├── controlId.md │ │ ├── customSelectedValueTemplateFunction.md │ │ ├── forceDefaultBrowserScrolling.md │ │ ├── optionValueKey.md │ │ ├── customGroupHeadingTemplateFunction.md │ │ ├── customFilterFunction.md │ │ ├── customOptionTemplateFunction.md │ │ ├── ajaxDataFetch.md │ │ ├── pageDataFetch.md │ │ └── dataSource.md │ ├── js │ │ ├── keys │ │ │ ├── space.json │ │ │ ├── escape.json │ │ │ ├── end.json │ │ │ ├── home.json │ │ │ ├── tab.json │ │ │ ├── up.json │ │ │ ├── down.json │ │ │ └── enter.json │ │ ├── properties │ │ │ ├── inputProps.json │ │ │ ├── onClear.json │ │ │ ├── onBlur.json │ │ │ ├── disabled.json │ │ │ ├── onOpenDropdown.json │ │ │ ├── onSearchInputBlur.json │ │ │ ├── onCloseDropdown.json │ │ │ ├── openOnMount.json │ │ │ ├── placeholder.json │ │ │ ├── tags.json │ │ │ ├── deselectOnSelectedOptionClick.json │ │ │ ├── multiple.json │ │ │ ├── clearable.json │ │ │ ├── closeOnSelectedOptionClick.json │ │ │ ├── focusToSelectedValue.json │ │ │ ├── searchable.json │ │ │ ├── initialValue.json │ │ │ ├── onSearchInputChange.json │ │ │ ├── searchPlaceholder.json │ │ │ ├── tagRemoveLabelString.json │ │ │ ├── clearSelectedValueOnDataSourceChange.json │ │ │ ├── customGroupHeadingClass.json │ │ │ ├── customClass.json │ │ │ ├── clearSelectionLabelString.json │ │ │ ├── ajaxErrorString.json │ │ │ ├── noResultsString.json │ │ │ ├── customSearchIconClass.json │ │ │ ├── optionLabelKey.json │ │ │ ├── clearSearchLabelString.json │ │ │ ├── focusOnMount.json │ │ │ ├── groupBy.json │ │ │ ├── keepOpenOnSelection.json │ │ │ ├── onChange.json │ │ │ ├── clearSearchOnSelection.json │ │ │ ├── customLoaderClass.json │ │ │ ├── hasMorePages.json │ │ │ ├── controlId.json │ │ │ ├── customTagClass.json │ │ │ ├── customSelectedValueTemplateFunction.json │ │ │ ├── forceDefaultBrowserScrolling.json │ │ │ ├── customGroupHeadingTemplateFunction.json │ │ │ ├── optionValueKey.json │ │ │ ├── customFilterFunction.json │ │ │ ├── customOptionTemplateFunction.json │ │ │ ├── ajaxDataFetch.json │ │ │ ├── pageDataFetch.json │ │ │ └── dataSource.json │ │ └── examples │ │ │ ├── basic-example.json │ │ │ ├── disabled-example.json │ │ │ ├── basic-searchable.json │ │ │ ├── multiselect.json │ │ │ ├── tags-example.json │ │ │ ├── custom-filter-function.json │ │ │ ├── on-open-example.json │ │ │ ├── custom-selected-value-template.json │ │ │ ├── basic-ajax.json │ │ │ ├── open-on-mount.json │ │ │ ├── group-by.json │ │ │ ├── custom-template.json │ │ │ ├── paging.json │ │ │ └── localized.json │ └── examples │ │ ├── basic-example.md │ │ ├── disabled-example.md │ │ ├── basic-searchable.md │ │ ├── tags-example.md │ │ ├── multiselect.md │ │ ├── on-open-example.md │ │ ├── custom-filter-function.md │ │ ├── basic-ajax.md │ │ ├── custom-selected-value-template.md │ │ ├── open-on-mount.md │ │ ├── group-by.md │ │ ├── custom-template.md │ │ ├── paging.md │ │ └── localized.md ├── fonts │ ├── aller-bold.eot │ ├── aller-bold.ttf │ ├── aller-bold.woff │ ├── aller-light.eot │ ├── aller-light.ttf │ ├── aller-light.woff │ ├── novecento-bold.eot │ ├── novecento-bold.ttf │ ├── roboto-black.eot │ ├── roboto-black.ttf │ ├── roboto-black.woff │ └── novecento-bold.woff ├── images │ ├── arrow-down.png │ └── octocat-small.png ├── index-bundle.js ├── properties │ ├── tags.js │ ├── onBlur.js │ ├── groupBy.js │ ├── onClear.js │ ├── disabled.js │ ├── multiple.js │ ├── onChange.js │ ├── clearable.js │ ├── controlId.js │ ├── dataSource.js │ ├── searchable.js │ ├── inputProps.js │ ├── customClass.js │ ├── openOnMount.js │ ├── placeholder.js │ ├── focusOnMount.js │ ├── hasMorePages.js │ ├── initialValue.js │ ├── ajaxDataFetch.js │ ├── pageDataFetch.js │ ├── customTagClass.js │ ├── onOpenDropdown.js │ ├── optionLabelKey.js │ ├── optionValueKey.js │ ├── ajaxErrorString.js │ ├── noResultsString.js │ ├── onCloseDropdown.js │ ├── customLoaderClass.js │ ├── onSearchInputBlur.js │ ├── searchPlaceholder.js │ ├── keepOpenOnSelection.js │ ├── onSearchInputChange.js │ ├── customFilterFunction.js │ ├── focusToSelectedValue.js │ ├── tagRemoveLabelString.js │ ├── customSearchIconClass.js │ ├── clearSearchLabelString.js │ ├── clearSearchOnSelection.js │ ├── customGroupHeadingClass.js │ ├── clearSelectionLabelString.js │ ├── closeOnSelectedOptionClick.js │ ├── customOptionTemplateFunction.js │ ├── forceDefaultBrowserScrolling.js │ ├── deselectOnSelectedOptionClick.js │ ├── customGroupHeadingTemplateFunction.js │ ├── customSelectedValueTemplateFunction.js │ └── clearSelectedValueOnDataSourceChange.js ├── keys │ ├── end.js │ ├── tab.js │ ├── up.js │ ├── home.js │ ├── down.js │ ├── enter.js │ ├── space.js │ └── escape.js ├── version-printer.js ├── super-selects │ ├── support │ │ ├── example-output.js │ │ ├── test-page-example-option-template.js │ │ └── groceries.js │ ├── basic-example.js │ ├── disabled.js │ ├── basic-searchable.js │ ├── tags-example.js │ ├── multiselect.js │ ├── basic-ajax.js │ ├── open-on-mount.js │ ├── on-open-callback.js │ ├── custom-selected-value-template.js │ ├── group-by.js │ ├── custom-filter-function.js │ ├── custom-template.js │ ├── paging.js │ └── localized.js ├── all-keys.js ├── scale.fix.js ├── all-examples.js ├── react-super-select-examples.html ├── keyboard-navigation-app.js ├── stylesheets │ ├── rss-docs.css │ └── pygment_trac.css ├── props-app.js ├── live-examples-app.js ├── test-page-app.js ├── test-page.html └── index.html ├── scripts ├── docco_clean.sh ├── docco_build.sh ├── support │ └── version-printer-base.txt └── copy_docco_docs.sh ├── preprocessor.js ├── .babelrc ├── .editorconfig ├── TODO.txt ├── tasks ├── bump.js ├── dev.js ├── release.js └── linting.js ├── .gitignore ├── gulpfile.js ├── bower.json ├── LICENSE.txt ├── gulpconfig.js ├── .eslintrc.json ├── README.md └── package.json /.nvmrc: -------------------------------------------------------------------------------- 1 | v4.1.2 2 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | lib/* linguist-vendored 2 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | docs_generated/ 2 | src_docs/ 3 | tmp/ 4 | example/ 5 | tasks/ 6 | scripts/ 7 | 8 | -------------------------------------------------------------------------------- /src_docs/markdown/keys/space.md: -------------------------------------------------------------------------------- 1 | The space key mimics the behavior of the [enter](#enter) key 2 | -------------------------------------------------------------------------------- /scripts/docco_clean.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env sh 2 | 3 | echo 'removing docco-generated docs/ directory' 4 | rm -rf ./docs 5 | -------------------------------------------------------------------------------- /src_docs/fonts/aller-bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alsoscotland/react-super-select/HEAD/src_docs/fonts/aller-bold.eot -------------------------------------------------------------------------------- /src_docs/fonts/aller-bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alsoscotland/react-super-select/HEAD/src_docs/fonts/aller-bold.ttf -------------------------------------------------------------------------------- /src_docs/fonts/aller-bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alsoscotland/react-super-select/HEAD/src_docs/fonts/aller-bold.woff -------------------------------------------------------------------------------- /src_docs/fonts/aller-light.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alsoscotland/react-super-select/HEAD/src_docs/fonts/aller-light.eot -------------------------------------------------------------------------------- /src_docs/fonts/aller-light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alsoscotland/react-super-select/HEAD/src_docs/fonts/aller-light.ttf -------------------------------------------------------------------------------- /src_docs/images/arrow-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alsoscotland/react-super-select/HEAD/src_docs/images/arrow-down.png -------------------------------------------------------------------------------- /src_docs/index-bundle.js: -------------------------------------------------------------------------------- 1 | require('./props-app'); 2 | require('./keyboard-navigation-app'); 3 | require('./version-printer'); 4 | -------------------------------------------------------------------------------- /src_docs/fonts/aller-light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alsoscotland/react-super-select/HEAD/src_docs/fonts/aller-light.woff -------------------------------------------------------------------------------- /src_docs/fonts/novecento-bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alsoscotland/react-super-select/HEAD/src_docs/fonts/novecento-bold.eot -------------------------------------------------------------------------------- /src_docs/fonts/novecento-bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alsoscotland/react-super-select/HEAD/src_docs/fonts/novecento-bold.ttf -------------------------------------------------------------------------------- /src_docs/fonts/roboto-black.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alsoscotland/react-super-select/HEAD/src_docs/fonts/roboto-black.eot -------------------------------------------------------------------------------- /src_docs/fonts/roboto-black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alsoscotland/react-super-select/HEAD/src_docs/fonts/roboto-black.ttf -------------------------------------------------------------------------------- /src_docs/fonts/roboto-black.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alsoscotland/react-super-select/HEAD/src_docs/fonts/roboto-black.woff -------------------------------------------------------------------------------- /src_docs/images/octocat-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alsoscotland/react-super-select/HEAD/src_docs/images/octocat-small.png -------------------------------------------------------------------------------- /scripts/docco_build.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env sh 2 | 3 | echo 'building annotated source with docco' 4 | docco ./src/react-super-select.js 5 | -------------------------------------------------------------------------------- /src_docs/fonts/novecento-bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alsoscotland/react-super-select/HEAD/src_docs/fonts/novecento-bold.woff -------------------------------------------------------------------------------- /src_docs/markdown/keys/escape.md: -------------------------------------------------------------------------------- 1 | #### (Closed Control State) 2 | - *no effect* 3 | 4 | #### (Opened Control State) 5 | - **Close the dropdown** 6 | -------------------------------------------------------------------------------- /src_docs/markdown/properties/inputProps.md: -------------------------------------------------------------------------------- 1 | 2 | (**Object**) *optional* 3 | 4 | Custom props to be applied directly to the input component. 5 | -------------------------------------------------------------------------------- /src_docs/markdown/js/keys/space.json: -------------------------------------------------------------------------------- 1 | {"body":"

The space key mimics the behavior of the enter key

\n","updatedAt":"2017-08-07T19:42:41.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/properties/onClear.md: -------------------------------------------------------------------------------- 1 | 2 | (**Function**) 3 | 4 | A callback which will be fired when a user manaually clears the selection(s). 5 | -------------------------------------------------------------------------------- /preprocessor.js: -------------------------------------------------------------------------------- 1 | var ReactTools = require('react-tools'); 2 | 3 | module.exports = { 4 | process: function(src) { 5 | return ReactTools.transform(src); 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /src_docs/markdown/properties/onBlur.md: -------------------------------------------------------------------------------- 1 | 2 | (**Function**) *required* 3 | 4 | A callback which will fire anytime a blur event occurs on the main trigger div 5 | -------------------------------------------------------------------------------- /src_docs/markdown/properties/disabled.md: -------------------------------------------------------------------------------- 1 | 2 | (**Boolean**) **(Default: false)** *optional* 3 | 4 | Whether or not the control is in a disabled state 5 | 6 | -------------------------------------------------------------------------------- /src_docs/markdown/properties/onOpenDropdown.md: -------------------------------------------------------------------------------- 1 | 2 | (**Function**) *optional* 3 | 4 | A callback which will be fired every time the react super select dropdown is opened. -------------------------------------------------------------------------------- /src_docs/markdown/properties/onSearchInputBlur.md: -------------------------------------------------------------------------------- 1 | 2 | (**Function**) *required* 3 | 4 | A callback which will fire anytime a blur event occurs on the search input 5 | -------------------------------------------------------------------------------- /src_docs/markdown/properties/onCloseDropdown.md: -------------------------------------------------------------------------------- 1 | 2 | (**Function**) *optional* 3 | 4 | A callback which will be fired every time the react super select dropdown is closed. 5 | -------------------------------------------------------------------------------- /src_docs/markdown/properties/openOnMount.md: -------------------------------------------------------------------------------- 1 | 2 | (**openOnMount**) (**Boolean**) *optional* 3 | 4 | When set to true, The component will render with the dropdown open on initial render. 5 | 6 | 7 | -------------------------------------------------------------------------------- /src_docs/markdown/properties/placeholder.md: -------------------------------------------------------------------------------- 1 | 2 | (**String**) *optional* 3 | 4 | This string value will be displayed in the main display area of your control when the user has no selected values 5 | -------------------------------------------------------------------------------- /src_docs/markdown/properties/deselectOnSelectedOptionClick.md: -------------------------------------------------------------------------------- 1 | 2 | (**Boolean**) **(Default: true)** *optional* 3 | 4 | Whether clicking an already-selected option will deselect it 5 | -------------------------------------------------------------------------------- /src_docs/markdown/properties/tags.md: -------------------------------------------------------------------------------- 1 | 2 | (**Boolean**) *optional* 3 | 4 | Whether or not to display your chosen multi-select values as tags. 5 | 6 | (When set, there is no need to set the **multiple** option) 7 | -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/inputProps.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(Object) optional

\n

Custom props to be applied directly to the input component.

\n","updatedAt":"2018-06-20T14:29:40.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/onClear.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(Function)

\n

A callback which will be fired when a user manaually clears the selection(s).

\n","updatedAt":"2017-08-24T03:18:18.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/properties/multiple.md: -------------------------------------------------------------------------------- 1 | 2 | (**Boolean**) *optional* 3 | 4 | Whether or not the control supports multi-selection. 5 | 6 | When using the **tags** display option, this option is redundant 7 | -------------------------------------------------------------------------------- /src_docs/markdown/keys/end.md: -------------------------------------------------------------------------------- 1 | #### (Closed Control State) 2 | - *no effect* 3 | 4 | #### (Opened Control State) 5 | - **Move focus to the last available option** 6 | 7 | Pressing the end key moves focus to the last option in the dropdown 8 | -------------------------------------------------------------------------------- /src_docs/markdown/properties/clearable.md: -------------------------------------------------------------------------------- 1 | 2 | (**Boolean**) **(Default: true)** *optional* 3 | 4 | Whether or not the control will render a button in the dropdown trigger which will clear its selected values 5 | -------------------------------------------------------------------------------- /src_docs/markdown/properties/closeOnSelectedOptionClick.md: -------------------------------------------------------------------------------- 1 | 2 | (**Boolean**) **(Default: true)** *optional* 3 | 4 | Whether clicking an already-selected option will cause the control to close 5 | -------------------------------------------------------------------------------- /src_docs/markdown/properties/focusToSelectedValue.md: -------------------------------------------------------------------------------- 1 | 2 | (**Boolean**) **(Default: true)** *optional* 3 | 4 | whether or not the dropdown list should scroll to (focus) the most recently clicked value 5 | -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ "react", 3 | ["es2015"], 4 | ["minify", {"mangle": false}] 5 | ], 6 | "plugins": [ 7 | "lodash", 8 | "transform-react-constant-elements" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src_docs/markdown/keys/home.md: -------------------------------------------------------------------------------- 1 | #### (Closed Control State) 2 | - *no effect* 3 | 4 | #### (Opened Control State) 5 | - **Move focus to first available option** 6 | 7 | Pressing the home key moves focus to the first option in the dropdown 8 | 9 | -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/onBlur.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(Function) required

\n

A callback which will fire anytime a blur event occurs on the main trigger div

\n","updatedAt":"2018-02-22T03:49:38.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/properties/searchable.md: -------------------------------------------------------------------------------- 1 | 2 | (**Boolean**) *optional* 3 | 4 | Whether or not to show a search bar in the dropdown area which offers text-based filtering of the dataSource options (by label **optionLabelKey**) 5 | -------------------------------------------------------------------------------- /src_docs/properties/tags.js: -------------------------------------------------------------------------------- 1 | var tagsMarkdown = require('../markdown/js/properties/tags').body; 2 | 3 | var tagsProp = { 4 | 5 | nameAttr: "tags", 6 | 7 | renderString: tagsMarkdown 8 | 9 | }; 10 | 11 | module.exports = tagsProp; 12 | -------------------------------------------------------------------------------- /src_docs/keys/end.js: -------------------------------------------------------------------------------- 1 | var endMarkdown = require('../markdown/js/keys/end').body; 2 | 3 | var endKey = { 4 | 5 | nameAttr: "end", 6 | displayName: "End Key", 7 | 8 | renderString: endMarkdown 9 | 10 | }; 11 | 12 | module.exports = endKey; 13 | -------------------------------------------------------------------------------- /src_docs/keys/tab.js: -------------------------------------------------------------------------------- 1 | var tabMarkdown = require('../markdown/js/keys/tab').body; 2 | 3 | var tabKey = { 4 | 5 | nameAttr: "tab", 6 | displayName: "Tab Key", 7 | 8 | renderString: tabMarkdown 9 | 10 | }; 11 | 12 | module.exports = tabKey; 13 | -------------------------------------------------------------------------------- /src_docs/keys/up.js: -------------------------------------------------------------------------------- 1 | var upMarkdown = require('../markdown/js/keys/up').body; 2 | 3 | var upKey = { 4 | 5 | nameAttr: "up", 6 | displayName: "Up Arrow Key", 7 | 8 | renderString: upMarkdown 9 | 10 | }; 11 | 12 | module.exports = upKey; 13 | -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/disabled.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(Boolean) (Default: false) optional

\n

Whether or not the control is in a disabled state

\n","updatedAt":"2017-08-24T03:18:18.000Z"} -------------------------------------------------------------------------------- /src_docs/properties/onBlur.js: -------------------------------------------------------------------------------- 1 | var onBlurMarkdown = require('../markdown/js/properties/onBlur').body; 2 | 3 | var onBlurProp = { 4 | 5 | nameAttr: "onBlur", 6 | 7 | renderString: onBlurMarkdown 8 | 9 | }; 10 | 11 | module.exports = onBlurProp; 12 | -------------------------------------------------------------------------------- /src_docs/keys/home.js: -------------------------------------------------------------------------------- 1 | var homeMarkdown = require('../markdown/js/keys/home').body; 2 | 3 | var homeKey = { 4 | 5 | nameAttr: "home", 6 | displayName: "Home Key", 7 | 8 | renderString: homeMarkdown 9 | 10 | }; 11 | 12 | module.exports = homeKey; 13 | -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/onOpenDropdown.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(Function) optional

\n

A callback which will be fired every time the react super select dropdown is opened.

\n","updatedAt":"2017-08-24T03:18:18.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/onSearchInputBlur.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(Function) required

\n

A callback which will fire anytime a blur event occurs on the search input

\n","updatedAt":"2018-02-22T03:49:38.000Z"} -------------------------------------------------------------------------------- /src_docs/properties/groupBy.js: -------------------------------------------------------------------------------- 1 | var groupByMarkdown = require('../markdown/js/properties/groupBy').body; 2 | 3 | var groupByProp = { 4 | 5 | nameAttr: "groupBy", 6 | 7 | renderString: groupByMarkdown 8 | 9 | }; 10 | 11 | module.exports = groupByProp; 12 | -------------------------------------------------------------------------------- /src_docs/properties/onClear.js: -------------------------------------------------------------------------------- 1 | var onClearMarkdown = require('../markdown/js/properties/onClear').body; 2 | 3 | var onClearProp = { 4 | 5 | nameAttr: "onClear", 6 | 7 | renderString: onClearMarkdown 8 | 9 | }; 10 | 11 | module.exports = onClearProp; 12 | -------------------------------------------------------------------------------- /src_docs/keys/down.js: -------------------------------------------------------------------------------- 1 | var downMarkdown = require('../markdown/js/keys/down').body; 2 | 3 | var downKey = { 4 | 5 | nameAttr: "down", 6 | displayName: "Down Arrow Key", 7 | 8 | renderString: downMarkdown 9 | 10 | }; 11 | 12 | module.exports = downKey; 13 | -------------------------------------------------------------------------------- /src_docs/keys/enter.js: -------------------------------------------------------------------------------- 1 | var enterMarkdown = require('../markdown/js/keys/enter').body; 2 | 3 | var enterKey = { 4 | 5 | nameAttr: "enter", 6 | displayName: "Enter Key", 7 | 8 | renderString: enterMarkdown 9 | 10 | }; 11 | 12 | module.exports = enterKey; 13 | -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/onCloseDropdown.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(Function) optional

\n

A callback which will be fired every time the react super select dropdown is closed.

\n","updatedAt":"2017-08-24T03:18:18.000Z"} -------------------------------------------------------------------------------- /src_docs/keys/space.js: -------------------------------------------------------------------------------- 1 | var spaceMarkdown = require('../markdown/js/keys/space').body; 2 | 3 | var spaceKey = { 4 | 5 | nameAttr: "space", 6 | displayName: "Space Bar Key", 7 | 8 | renderString: spaceMarkdown 9 | 10 | }; 11 | 12 | module.exports = spaceKey; 13 | -------------------------------------------------------------------------------- /src_docs/properties/disabled.js: -------------------------------------------------------------------------------- 1 | var disabledMarkdown = require('../markdown/js/properties/disabled').body; 2 | 3 | var disabledProp = { 4 | 5 | nameAttr: "disabled", 6 | 7 | renderString: disabledMarkdown 8 | 9 | }; 10 | 11 | module.exports = disabledProp; 12 | -------------------------------------------------------------------------------- /src_docs/properties/multiple.js: -------------------------------------------------------------------------------- 1 | var multipleMarkdown = require('../markdown/js/properties/multiple').body; 2 | 3 | var multipleProp = { 4 | 5 | nameAttr: "multiple", 6 | 7 | renderString: multipleMarkdown 8 | 9 | }; 10 | 11 | module.exports = multipleProp; 12 | -------------------------------------------------------------------------------- /src_docs/properties/onChange.js: -------------------------------------------------------------------------------- 1 | var onChangeMarkdown = require('../markdown/js/properties/onChange').body; 2 | 3 | var onChangeProp = { 4 | 5 | nameAttr: "onChange", 6 | 7 | renderString: onChangeMarkdown 8 | 9 | }; 10 | 11 | module.exports = onChangeProp; 12 | -------------------------------------------------------------------------------- /src_docs/keys/escape.js: -------------------------------------------------------------------------------- 1 | var escapeMarkdown = require('../markdown/js/keys/escape').body; 2 | 3 | var escapeKey = { 4 | 5 | nameAttr: "escape", 6 | displayName: "Escape Key", 7 | 8 | renderString: escapeMarkdown 9 | 10 | }; 11 | 12 | module.exports = escapeKey; 13 | -------------------------------------------------------------------------------- /src_docs/markdown/properties/tagRemoveLabelString.md: -------------------------------------------------------------------------------- 1 | 2 | (**tagRemoveLabelString**) *optional* 3 | 4 | (Used in conjunction with the **tags** option) 5 | 6 | This string will be used as an aria-label for the remove-tag button on each tag (for accesibility). 7 | -------------------------------------------------------------------------------- /src_docs/properties/clearable.js: -------------------------------------------------------------------------------- 1 | var clearableMarkdown = require('../markdown/js/properties/clearable').body; 2 | 3 | var clearableProp = { 4 | 5 | nameAttr: "clearable", 6 | 7 | renderString: clearableMarkdown 8 | 9 | }; 10 | 11 | module.exports = clearableProp; 12 | -------------------------------------------------------------------------------- /src_docs/properties/controlId.js: -------------------------------------------------------------------------------- 1 | var controlIdMarkdown = require('../markdown/js/properties/controlId').body; 2 | 3 | var controlIdProp = { 4 | 5 | nameAttr: "controlId", 6 | 7 | renderString: controlIdMarkdown 8 | 9 | }; 10 | 11 | module.exports = controlIdProp; 12 | -------------------------------------------------------------------------------- /src_docs/markdown/properties/clearSelectedValueOnDataSourceChange.md: -------------------------------------------------------------------------------- 1 | 2 | (**Boolean**) **(Default: false)** *optional* 3 | 4 | Whether or not the control's selected value will be cleared if the dataSource prop's value is changed 5 | 6 | -------------------------------------------------------------------------------- /src_docs/markdown/properties/initialValue.md: -------------------------------------------------------------------------------- 1 | 2 | (**Array**|**Object**) *optional* 3 | 4 | The selected value the control will be initialized with 5 | 6 | Must be either an array of option objects or a single option object from your dataSource collection 7 | -------------------------------------------------------------------------------- /src_docs/markdown/properties/searchPlaceholder.md: -------------------------------------------------------------------------------- 1 | 2 | (**String**) *optional* 3 | 4 | (Used in conjunction with the **searchable** option) 5 | 6 | This string will be shown in the dropdown area’s search input field when a user has not entered any characters 7 | -------------------------------------------------------------------------------- /src_docs/properties/dataSource.js: -------------------------------------------------------------------------------- 1 | var dataSourceMarkdown = require('../markdown/js/properties/dataSource').body; 2 | 3 | var dataSourceProp = { 4 | 5 | nameAttr: "dataSource", 6 | 7 | renderString: dataSourceMarkdown 8 | 9 | }; 10 | 11 | module.exports = dataSourceProp; 12 | -------------------------------------------------------------------------------- /src_docs/properties/searchable.js: -------------------------------------------------------------------------------- 1 | var searchableMarkdown = require('../markdown/js/properties/searchable').body; 2 | 3 | var searchableProp = { 4 | 5 | nameAttr: "searchable", 6 | 7 | renderString: searchableMarkdown 8 | 9 | }; 10 | 11 | module.exports = searchableProp; 12 | -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/openOnMount.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(openOnMount) (Boolean) optional

\n

When set to true, The component will render with the dropdown open on initial render.

\n","updatedAt":"2017-08-24T03:18:18.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/placeholder.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(String) optional

\n

This string value will be displayed in the main display area of your control when the user has no selected values

\n","updatedAt":"2017-08-07T19:42:41.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/properties/onSearchInputChange.md: -------------------------------------------------------------------------------- 1 | 2 | (**Function**) *optional* 3 | 4 | A callback which will be fired every time the react super select's search input field changes. 5 | 6 | It receives one argument, the string value of the current search term 7 | -------------------------------------------------------------------------------- /src_docs/properties/inputProps.js: -------------------------------------------------------------------------------- 1 | var inputPropsMarkdown = require('../markdown/js/properties/inputProps').body; 2 | 3 | var initialValueProp = { 4 | 5 | nameAttr: "inputProps", 6 | 7 | renderString: inputPropsMarkdown 8 | 9 | }; 10 | 11 | module.exports = initialValueProp; 12 | -------------------------------------------------------------------------------- /src_docs/markdown/properties/customGroupHeadingClass.md: -------------------------------------------------------------------------------- 1 | 2 | (**String**) *optional* 3 | 4 | Used in conjunction with the **groupBy** option. 5 | 6 | This string value will be added as a custom css class to the group headings which are rendered into the dropdown 7 | -------------------------------------------------------------------------------- /src_docs/properties/customClass.js: -------------------------------------------------------------------------------- 1 | var customClassMarkdown = require('../markdown/js/properties/customClass').body; 2 | 3 | var customClassProp = { 4 | 5 | nameAttr: "customClass", 6 | 7 | renderString: customClassMarkdown 8 | 9 | }; 10 | 11 | module.exports = customClassProp; 12 | -------------------------------------------------------------------------------- /src_docs/properties/openOnMount.js: -------------------------------------------------------------------------------- 1 | var openOnMountMarkdown = require('../markdown/js/properties/openOnMount').body; 2 | 3 | var openOnMountProp = { 4 | 5 | nameAttr: "openOnMount", 6 | 7 | renderString: openOnMountMarkdown 8 | 9 | }; 10 | 11 | module.exports = openOnMountProp; 12 | -------------------------------------------------------------------------------- /src_docs/properties/placeholder.js: -------------------------------------------------------------------------------- 1 | var placeholderMarkdown = require('../markdown/js/properties/placeholder').body; 2 | 3 | var placeholderProp = { 4 | 5 | nameAttr: "placeholder", 6 | 7 | renderString: placeholderMarkdown 8 | 9 | }; 10 | 11 | module.exports = placeholderProp; 12 | -------------------------------------------------------------------------------- /src_docs/markdown/properties/customClass.md: -------------------------------------------------------------------------------- 1 | 2 | (**String**) *optional* 3 | 4 | This value will be added as a css class to the control’s main wrapping element.You should be able to overide all styling by leading your rules with 5 | 6 | ```css 7 | .r-ss-wrap.{customClass} 8 | ``` 9 | -------------------------------------------------------------------------------- /src_docs/properties/focusOnMount.js: -------------------------------------------------------------------------------- 1 | var focusOnMountMarkdown = require('../markdown/js/properties/focusOnMount').body; 2 | 3 | var focusOnMountProp = { 4 | 5 | nameAttr: "focusOnMount", 6 | 7 | renderString: focusOnMountMarkdown 8 | 9 | }; 10 | 11 | module.exports = focusOnMountProp; 12 | -------------------------------------------------------------------------------- /src_docs/properties/hasMorePages.js: -------------------------------------------------------------------------------- 1 | var hasMorePagesMarkdown = require('../markdown/js/properties/hasMorePages').body; 2 | 3 | var hasMorePagesProp = { 4 | 5 | nameAttr: "hasMorePages", 6 | 7 | renderString: hasMorePagesMarkdown 8 | 9 | }; 10 | 11 | module.exports = hasMorePagesProp; 12 | -------------------------------------------------------------------------------- /src_docs/properties/initialValue.js: -------------------------------------------------------------------------------- 1 | var initialValueMarkdown = require('../markdown/js/properties/initialValue').body; 2 | 3 | var initialValueProp = { 4 | 5 | nameAttr: "initialValue", 6 | 7 | renderString: initialValueMarkdown 8 | 9 | }; 10 | 11 | module.exports = initialValueProp; 12 | -------------------------------------------------------------------------------- /src_docs/markdown/js/keys/escape.json: -------------------------------------------------------------------------------- 1 | {"body":"

(Closed Control State)

\n\n

(Opened Control State)

\n\n","updatedAt":"2017-08-07T19:42:41.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/tags.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(Boolean) optional

\n

Whether or not to display your chosen multi-select values as tags.

\n

(When set, there is no need to set the multiple option)

\n","updatedAt":"2017-08-07T19:42:41.000Z"} -------------------------------------------------------------------------------- /src_docs/properties/ajaxDataFetch.js: -------------------------------------------------------------------------------- 1 | var ajaxDataFetchMarkdown = require('../markdown/js/properties/ajaxDataFetch').body; 2 | 3 | var ajaxDataFetchProp = { 4 | 5 | nameAttr: "ajaxDataFetch", 6 | 7 | renderString: ajaxDataFetchMarkdown 8 | 9 | }; 10 | 11 | module.exports = ajaxDataFetchProp; 12 | -------------------------------------------------------------------------------- /src_docs/properties/pageDataFetch.js: -------------------------------------------------------------------------------- 1 | var pageDataFetchMarkdown = require('../markdown/js/properties/pageDataFetch').body; 2 | 3 | var pageDataFetchProp = { 4 | 5 | nameAttr: "pageDataFetch", 6 | 7 | renderString: pageDataFetchMarkdown 8 | 9 | }; 10 | 11 | module.exports = pageDataFetchProp; 12 | -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/deselectOnSelectedOptionClick.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(Boolean) (Default: true) optional

\n

Whether clicking an already-selected option will deselect it

\n","updatedAt":"2017-08-24T03:18:18.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/multiple.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(Boolean) optional

\n

Whether or not the control supports multi-selection.

\n

When using the tags display option, this option is redundant

\n","updatedAt":"2017-08-07T19:42:41.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/properties/ajaxErrorString.md: -------------------------------------------------------------------------------- 1 | 2 | (**String**) *optional* 3 | 4 | (Used in conjunction with the **ajaxDataFetch** & **pageDataFetch** options) 5 | 6 | This string will be shown as a message in the dropdown area in the event that an ajax request for options data fails 7 | 8 | -------------------------------------------------------------------------------- /src_docs/markdown/properties/noResultsString.md: -------------------------------------------------------------------------------- 1 | 2 | (**String** or **React Element**) *optional* 3 | 4 | A string or React Element value which will be displayed when your dropdown shows no results. (i.e. **dataSource** collection is empty , or **ajaxDataFetch** returns an empty collection) 5 | -------------------------------------------------------------------------------- /src_docs/properties/customTagClass.js: -------------------------------------------------------------------------------- 1 | var customTagClassMarkdown = require('../markdown/js/properties/customTagClass').body; 2 | 3 | var customTagClassProp = { 4 | 5 | nameAttr: "customTagClass", 6 | 7 | renderString: customTagClassMarkdown 8 | 9 | }; 10 | 11 | module.exports = customTagClassProp; 12 | -------------------------------------------------------------------------------- /src_docs/properties/onOpenDropdown.js: -------------------------------------------------------------------------------- 1 | var onOpenDropdownMarkdown = require('../markdown/js/properties/onOpenDropdown').body; 2 | 3 | var onOpenDropdownProp = { 4 | 5 | nameAttr: "onOpenDropdown", 6 | 7 | renderString: onOpenDropdownMarkdown 8 | 9 | }; 10 | 11 | module.exports = onOpenDropdownProp; 12 | -------------------------------------------------------------------------------- /src_docs/properties/optionLabelKey.js: -------------------------------------------------------------------------------- 1 | var optionLabelKeyMarkdown = require('../markdown/js/properties/optionLabelKey').body; 2 | 3 | var optionLabelKeyProp = { 4 | 5 | nameAttr: "optionLabelKey", 6 | 7 | renderString: optionLabelKeyMarkdown 8 | 9 | }; 10 | 11 | module.exports = optionLabelKeyProp; 12 | -------------------------------------------------------------------------------- /src_docs/properties/optionValueKey.js: -------------------------------------------------------------------------------- 1 | var optionValueKeyMarkdown = require('../markdown/js/properties/optionValueKey').body; 2 | 3 | var optionValueKeyProp = { 4 | 5 | nameAttr: "optionValueKey", 6 | 7 | renderString: optionValueKeyMarkdown 8 | 9 | }; 10 | 11 | module.exports = optionValueKeyProp; 12 | -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/clearable.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(Boolean) (Default: true) optional

\n

Whether or not the control will render a button in the dropdown trigger which will clear its selected values

\n","updatedAt":"2017-08-24T03:18:18.000Z"} -------------------------------------------------------------------------------- /src_docs/properties/ajaxErrorString.js: -------------------------------------------------------------------------------- 1 | var ajaxErrorStringMarkdown = require('../markdown/js/properties/ajaxErrorString').body; 2 | 3 | var ajaxErrorStringProp = { 4 | 5 | nameAttr: "ajaxErrorString", 6 | 7 | renderString: ajaxErrorStringMarkdown 8 | 9 | }; 10 | 11 | module.exports = ajaxErrorStringProp; 12 | -------------------------------------------------------------------------------- /src_docs/properties/noResultsString.js: -------------------------------------------------------------------------------- 1 | var noResultsStringMarkdown = require('../markdown/js/properties/noResultsString').body; 2 | 3 | var noResultsStringProp = { 4 | 5 | nameAttr: "noResultsString", 6 | 7 | renderString: noResultsStringMarkdown 8 | 9 | }; 10 | 11 | module.exports = noResultsStringProp; 12 | -------------------------------------------------------------------------------- /src_docs/properties/onCloseDropdown.js: -------------------------------------------------------------------------------- 1 | var onCloseDropdownMarkdown = require('../markdown/js/properties/onCloseDropdown').body; 2 | 3 | var onCloseDropdownProp = { 4 | 5 | nameAttr: "onCloseDropdown", 6 | 7 | renderString: onCloseDropdownMarkdown 8 | 9 | }; 10 | 11 | module.exports = onCloseDropdownProp; 12 | -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/closeOnSelectedOptionClick.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(Boolean) (Default: true) optional

\n

Whether clicking an already-selected option will cause the control to close

\n","updatedAt":"2017-08-24T03:18:18.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/focusToSelectedValue.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(Boolean) (Default: true) optional

\n

whether or not the dropdown list should scroll to (focus) the most recently clicked value

\n","updatedAt":"2018-06-29T04:40:00.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/properties/clearSelectionLabelString.md: -------------------------------------------------------------------------------- 1 | 2 | (**clearSelectionLabelString**) *optional* 3 | 4 | (Used in conjunction with the **clearable** option - which defaults to true) 5 | 6 | This string will be used as an aria-label for the clear selection button (for accesibility). 7 | -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/searchable.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(Boolean) optional

\n

Whether or not to show a search bar in the dropdown area which offers text-based filtering of the dataSource options (by label optionLabelKey)

\n","updatedAt":"2017-08-07T19:42:41.000Z"} -------------------------------------------------------------------------------- /src_docs/properties/customLoaderClass.js: -------------------------------------------------------------------------------- 1 | var customLoaderClassMarkdown = require('../markdown/js/properties/customLoaderClass').body; 2 | 3 | var customLoaderClassProp = { 4 | 5 | nameAttr: "customLoaderClass", 6 | 7 | renderString: customLoaderClassMarkdown 8 | 9 | }; 10 | 11 | module.exports = customLoaderClassProp; 12 | -------------------------------------------------------------------------------- /src_docs/properties/onSearchInputBlur.js: -------------------------------------------------------------------------------- 1 | var onSearchInputBlurMarkdown = require('../markdown/js/properties/onSearchInputBlur').body; 2 | 3 | var onSearchInputBlurProp = { 4 | 5 | nameAttr: "onSearchInputBlur", 6 | 7 | renderString: onSearchInputBlurMarkdown 8 | 9 | }; 10 | 11 | module.exports = onSearchInputBlurProp; 12 | -------------------------------------------------------------------------------- /src_docs/properties/searchPlaceholder.js: -------------------------------------------------------------------------------- 1 | var searchPlaceholderMarkdown = require('../markdown/js/properties/searchPlaceholder').body; 2 | 3 | var searchPlaceholderProp = { 4 | 5 | nameAttr: "searchPlaceholder", 6 | 7 | renderString: searchPlaceholderMarkdown 8 | 9 | }; 10 | 11 | module.exports = searchPlaceholderProp; 12 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # This file is for unifying the coding style for different editors and IDEs 2 | # editorconfig.org 3 | root = true 4 | 5 | [*] 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = false 9 | insert_final_newline = true 10 | indent_style = tab 11 | 12 | [*.json] 13 | indent_style = space 14 | indent_size = 2 15 | -------------------------------------------------------------------------------- /src_docs/properties/keepOpenOnSelection.js: -------------------------------------------------------------------------------- 1 | var keepOpenOnSelectionMarkdown = require('../markdown/js/properties/keepOpenOnSelection').body; 2 | 3 | var keepOpenOnSelectionProp = { 4 | 5 | nameAttr: "keepOpenOnSelection", 6 | 7 | renderString: keepOpenOnSelectionMarkdown 8 | 9 | }; 10 | 11 | module.exports = keepOpenOnSelectionProp; 12 | -------------------------------------------------------------------------------- /src_docs/properties/onSearchInputChange.js: -------------------------------------------------------------------------------- 1 | var onSearchInputChangeMarkdown = require('../markdown/js/properties/onSearchInputChange').body; 2 | 3 | var onSearchInputChangeProp = { 4 | 5 | nameAttr: "onSearchInputChange", 6 | 7 | renderString: onSearchInputChangeMarkdown 8 | 9 | }; 10 | 11 | module.exports = onSearchInputChangeProp; 12 | -------------------------------------------------------------------------------- /src_docs/properties/customFilterFunction.js: -------------------------------------------------------------------------------- 1 | var customFilterFunctionMarkdown = require('../markdown/js/properties/customFilterFunction').body; 2 | 3 | var customFilterFunctionProp = { 4 | 5 | nameAttr: "customFilterFunction", 6 | 7 | renderString: customFilterFunctionMarkdown 8 | 9 | }; 10 | 11 | module.exports = customFilterFunctionProp; 12 | -------------------------------------------------------------------------------- /src_docs/properties/focusToSelectedValue.js: -------------------------------------------------------------------------------- 1 | var focusToSelectedValueMarkdown = require('../markdown/js/properties/focusToSelectedValue').body; 2 | 3 | var focusToSelectedValueProp = { 4 | 5 | nameAttr: "focusToSelectedValue", 6 | 7 | renderString: focusToSelectedValueMarkdown 8 | 9 | }; 10 | 11 | module.exports = focusToSelectedValueProp; 12 | -------------------------------------------------------------------------------- /src_docs/properties/tagRemoveLabelString.js: -------------------------------------------------------------------------------- 1 | var tagRemoveLabelStringMarkdown = require('../markdown/js/properties/tagRemoveLabelString').body; 2 | 3 | var tagRemoveLabelStringProp = { 4 | 5 | nameAttr: "tagRemoveLabelString", 6 | 7 | renderString: tagRemoveLabelStringMarkdown 8 | 9 | }; 10 | 11 | module.exports = tagRemoveLabelStringProp; 12 | -------------------------------------------------------------------------------- /src_docs/markdown/properties/customSearchIconClass.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | (**String**) *optional* 4 | 5 | This value will be added as a css class to the icon element in the search-filtering bar (when **searchable** is true). 6 | This allows you to override the default search icon. 7 | 8 | (By default the icon will be a magnifying glass) 9 | -------------------------------------------------------------------------------- /src_docs/markdown/properties/groupBy.md: -------------------------------------------------------------------------------- 1 | 2 | (**String**|**Object**|**Function**) *optional* 3 | 4 | Allows you to sort your dropdown options into groups by leveraging Lodash’s groupBy function. 5 | 6 | Please reference the [Lodash documentation](https://lodash.com/docs#groupBy) for behavior of groupBy when passed different argument types 7 | 8 | -------------------------------------------------------------------------------- /src_docs/properties/customSearchIconClass.js: -------------------------------------------------------------------------------- 1 | var customSearchIconClassMarkdown = require('../markdown/js/properties/customSearchIconClass').body; 2 | 3 | var customSearchIconClassProp = { 4 | 5 | nameAttr: "customSearchIconClass", 6 | 7 | renderString: customSearchIconClassMarkdown 8 | 9 | }; 10 | 11 | module.exports = customSearchIconClassProp; 12 | -------------------------------------------------------------------------------- /scripts/support/version-printer-base.txt: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom"; 3 | 4 | class VersionPrinter extends React.Component { 5 | render() { 6 | return({RSS_VERSION}); 7 | } 8 | } 9 | 10 | module.exports = VersionPrinter; 11 | ReactDOM.render(, document.getElementById('r_ss_version')); 12 | -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/initialValue.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(Array|Object) optional

\n

The selected value the control will be initialized with

\n

Must be either an array of option objects or a single option object from your dataSource collection

\n","updatedAt":"2017-08-24T03:18:18.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/onSearchInputChange.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(Function) optional

\n

A callback which will be fired every time the react super select's search input field changes.

\n

It receives one argument, the string value of the current search term

\n","updatedAt":"2017-08-24T03:18:18.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/searchPlaceholder.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(String) optional

\n

(Used in conjunction with the searchable option)

\n

This string will be shown in the dropdown area’s search input field when a user has not entered any characters

\n","updatedAt":"2017-08-07T19:42:41.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/tagRemoveLabelString.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(tagRemoveLabelString) optional

\n

(Used in conjunction with the tags option)

\n

This string will be used as an aria-label for the remove-tag button on each tag (for accesibility).

\n","updatedAt":"2017-08-24T03:18:18.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/properties/clearSearchLabelString.md: -------------------------------------------------------------------------------- 1 | 2 | (**clearSearchLabelString**) *optional* 3 | 4 | (Used in conjunction with the **searchable** option - which defaults to true) 5 | 6 | This string will be used as an aria-label for the clear search button when a user has entered a value into the search field (for accesibility). 7 | -------------------------------------------------------------------------------- /src_docs/markdown/properties/optionLabelKey.md: -------------------------------------------------------------------------------- 1 | 2 | (**String**) *optional* 3 | 4 | (defaults to using ‘name’ as the key if left undefined) 5 | 6 | This value represents the key in each option object (from the **dataSource** collection) 7 | 8 | This key should map to the value you would like displayed as a label for each option. 9 | 10 | -------------------------------------------------------------------------------- /src_docs/properties/clearSearchLabelString.js: -------------------------------------------------------------------------------- 1 | var clearSearchLabelStringMarkdown = require('../markdown/js/properties/clearSearchLabelString').body; 2 | 3 | var clearSearchLabelStringProp = { 4 | 5 | nameAttr: "clearSearchLabelString", 6 | 7 | renderString: clearSearchLabelStringMarkdown 8 | 9 | }; 10 | 11 | module.exports = clearSearchLabelStringProp; 12 | -------------------------------------------------------------------------------- /src_docs/properties/clearSearchOnSelection.js: -------------------------------------------------------------------------------- 1 | var clearSearchOnSelectionMarkdown = require('../markdown/js/properties/clearSearchOnSelection').body; 2 | 3 | var clearSearchOnSelectionProp = { 4 | 5 | nameAttr: "clearSearchOnSelection", 6 | 7 | renderString: clearSearchOnSelectionMarkdown 8 | 9 | }; 10 | 11 | module.exports = clearSearchOnSelectionProp; 12 | -------------------------------------------------------------------------------- /scripts/copy_docco_docs.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env sh 2 | 3 | echo 'copying docco css from docs/docco.css to src_docs/stylesheets/docco.css' 4 | cp ./docs/docco.css ./src_docs/stylesheets/docco.css 5 | 6 | echo 'copying annotated src html file from docs/react-super-select.html to src_docs/annotated-source.html' 7 | cp ./docs/react-super-select.html ./src_docs/annotated-source.html 8 | -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/clearSelectedValueOnDataSourceChange.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(Boolean) (Default: false) optional

\n

Whether or not the control's selected value will be cleared if the dataSource prop's value is changed

\n","updatedAt":"2017-08-24T03:18:18.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/customGroupHeadingClass.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(String) optional

\n

Used in conjunction with the groupBy option.

\n

This string value will be added as a custom css class to the group headings which are rendered into the dropdown

\n","updatedAt":"2017-08-07T19:42:41.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/properties/focusOnMount.md: -------------------------------------------------------------------------------- 1 | 2 | (**focusOnMount**) (**Boolean**) *optional* (Used in conjunction with the **openOnMount** option) 3 | 4 | When set to true, The component will be given document focus after it mounts 5 | (Forcing focus is only advisable if the user input from the super select control is the main purpose of your page) 6 | 7 | 8 | -------------------------------------------------------------------------------- /src_docs/properties/customGroupHeadingClass.js: -------------------------------------------------------------------------------- 1 | var customGroupHeadingClassMarkdown = require('../markdown/js/properties/customGroupHeadingClass').body; 2 | 3 | var customGroupHeadingClassProp = { 4 | 5 | nameAttr: "customGroupHeadingClass", 6 | 7 | renderString: customGroupHeadingClassMarkdown 8 | 9 | }; 10 | 11 | module.exports = customGroupHeadingClassProp; 12 | -------------------------------------------------------------------------------- /src_docs/properties/clearSelectionLabelString.js: -------------------------------------------------------------------------------- 1 | var clearSelectionLabelStringMarkdown = require('../markdown/js/properties/clearSelectionLabelString').body; 2 | 3 | var clearSelectionLabelStringProp = { 4 | 5 | nameAttr: "clearSelectionLabelString", 6 | 7 | renderString: clearSelectionLabelStringMarkdown 8 | 9 | }; 10 | 11 | module.exports = clearSelectionLabelStringProp; 12 | -------------------------------------------------------------------------------- /src_docs/version-printer.js: -------------------------------------------------------------------------------- 1 | var RSS_VERSION = "1.0.23"; 2 | import React from "react"; 3 | import ReactDOM from "react-dom"; 4 | 5 | class VersionPrinter extends React.Component { 6 | render() { 7 | return({RSS_VERSION}); 8 | } 9 | } 10 | 11 | module.exports = VersionPrinter; 12 | ReactDOM.render(, document.getElementById('r_ss_version')); 13 | -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/customClass.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(String) optional

\n

This value will be added as a css class to the control’s main wrapping element.You should be able to overide all styling by leading your rules with

\n
.r-ss-wrap.{customClass}\n
\n","updatedAt":"2017-08-07T19:42:41.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/js/keys/end.json: -------------------------------------------------------------------------------- 1 | {"body":"

(Closed Control State)

\n\n

(Opened Control State)

\n\n

Pressing the end key moves focus to the last option in the dropdown

\n","updatedAt":"2017-08-07T19:42:41.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/js/keys/home.json: -------------------------------------------------------------------------------- 1 | {"body":"

(Closed Control State)

\n\n

(Opened Control State)

\n\n

Pressing the home key moves focus to the first option in the dropdown

\n","updatedAt":"2017-08-07T19:42:41.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/properties/clearSearchOnSelection.md: -------------------------------------------------------------------------------- 1 | 2 | (**clearSearchOnSelection**) (**Boolean**) *optional* 3 | 4 | (Used in conjunction with the **searchable** option) 5 | 6 | When set to true, If a user has entered a search string into the search input and then makes a selection from the filtered result set, the search field will be automatically cleared. 7 | 8 | -------------------------------------------------------------------------------- /src_docs/markdown/properties/customLoaderClass.md: -------------------------------------------------------------------------------- 1 | 2 | (**String**) *optional* 3 | 4 | (Used in conjunction with the **ajaxDataFetch** and **pageDataFetch** options) 5 | 6 | This string value will be added as a css class to the loading icon allowing css overrides. 7 | 8 | (By default the control uses an animated gif spinner which is a base64 background image in css) 9 | -------------------------------------------------------------------------------- /src_docs/properties/closeOnSelectedOptionClick.js: -------------------------------------------------------------------------------- 1 | var closeOnSelectedOptionClickMarkdown = require('../markdown/js/properties/closeOnSelectedOptionClick').body; 2 | 3 | var closeOnSelectedOptionClickProp = { 4 | 5 | nameAttr: "closeOnSelectedOptionClick", 6 | 7 | renderString: closeOnSelectedOptionClickMarkdown 8 | 9 | }; 10 | 11 | module.exports = closeOnSelectedOptionClickProp; 12 | -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/clearSelectionLabelString.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(clearSelectionLabelString) optional

\n

(Used in conjunction with the clearable option - which defaults to true)

\n

This string will be used as an aria-label for the clear selection button (for accesibility).

\n","updatedAt":"2017-08-24T03:18:18.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/properties/hasMorePages.md: -------------------------------------------------------------------------------- 1 | 2 | (**Function**) *optional* 3 | 4 | (should be provided when using the **pageDataFetch** option) 5 | 6 | This function accepts one argument, a value as described by the **dataSource** option documentation. 7 | 8 | It should return a Boolean value that indicates whether the option data collection has any more pages available for fetching 9 | -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/ajaxErrorString.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(String) optional

\n

(Used in conjunction with the ajaxDataFetch & pageDataFetch options)

\n

This string will be shown as a message in the dropdown area in the event that an ajax request for options data fails

\n","updatedAt":"2017-08-07T19:42:41.000Z"} -------------------------------------------------------------------------------- /src_docs/properties/customOptionTemplateFunction.js: -------------------------------------------------------------------------------- 1 | var customOptionTemplateFunctionMarkdown = require('../markdown/js/properties/customOptionTemplateFunction').body; 2 | 3 | var customOptionTemplateFunctionProp = { 4 | 5 | nameAttr: "customOptionTemplateFunction", 6 | 7 | renderString: customOptionTemplateFunctionMarkdown 8 | 9 | }; 10 | 11 | module.exports = customOptionTemplateFunctionProp; 12 | -------------------------------------------------------------------------------- /src_docs/properties/forceDefaultBrowserScrolling.js: -------------------------------------------------------------------------------- 1 | var forceDefaultBrowserScrollingMarkdown = require('../markdown/js/properties/forceDefaultBrowserScrolling').body; 2 | 3 | var forceDefaultBrowserScrollingProp = { 4 | 5 | nameAttr: "forceDefaultBrowserScrolling", 6 | 7 | renderString: forceDefaultBrowserScrollingMarkdown 8 | 9 | }; 10 | 11 | module.exports = forceDefaultBrowserScrollingProp; 12 | -------------------------------------------------------------------------------- /src_docs/markdown/properties/onChange.md: -------------------------------------------------------------------------------- 1 | 2 | (**Function**) *required* 3 | 4 | This is the main callback handler for the control. 5 | 6 | When a user makes selection(s), this handler will be called, the selected option (or when multiple or tags an array of selected values) will be passed to the handler as an argument. 7 | 8 | (The values passed are option objects from the dataSource collection) 9 | -------------------------------------------------------------------------------- /src_docs/properties/deselectOnSelectedOptionClick.js: -------------------------------------------------------------------------------- 1 | var deselectOnSelectedOptionClickMarkdown = require('../markdown/js/properties/deselectOnSelectedOptionClick').body; 2 | 3 | var deselectOnSelectedOptionClickProp = { 4 | 5 | nameAttr: "deselectOnSelectedOptionClick", 6 | 7 | renderString: deselectOnSelectedOptionClickMarkdown 8 | 9 | }; 10 | 11 | module.exports = deselectOnSelectedOptionClickProp; 12 | -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/noResultsString.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(String or React Element) optional

\n

A string or React Element value which will be displayed when your dropdown shows no results. (i.e. dataSource collection is empty , or ajaxDataFetch returns an empty collection)

\n","updatedAt":"2017-08-24T13:33:52.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/properties/keepOpenOnSelection.md: -------------------------------------------------------------------------------- 1 | 2 | (**Boolean**) *optional* 3 | 4 | Whether or not the control should stay open when selections are made 5 | 6 | By default. The control will close when a selection is made. 7 | (In the case of multiple, when a single selection is chosen without the command-key) 8 | 9 | Set this option to true to keep the control open 10 | 11 | -------------------------------------------------------------------------------- /src_docs/markdown/properties/customTagClass.md: -------------------------------------------------------------------------------- 1 | 2 | (**String**) *optional* 3 | 4 | (Used in conjunction with the **tags** option) 5 | 6 | This value will be added as a css class to the wrapper of user-selected options display element when it is displayed as a tag. 7 | 8 | You should be able to overide all tag styling by leading your css rules with 9 | ```css 10 | .r-ss-tag.{customTagClass} 11 | ``` 12 | -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/customSearchIconClass.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(String) optional

\n

This value will be added as a css class to the icon element in the search-filtering bar (when searchable is true). \nThis allows you to override the default search icon.

\n

(By default the icon will be a magnifying glass)

\n","updatedAt":"2017-08-07T19:42:41.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/optionLabelKey.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(String) optional

\n

(defaults to using ‘name’ as the key if left undefined)

\n

This value represents the key in each option object (from the dataSource collection)

\n

This key should map to the value you would like displayed as a label for each option.

\n","updatedAt":"2017-08-07T19:42:41.000Z"} -------------------------------------------------------------------------------- /TODO.txt: -------------------------------------------------------------------------------- 1 | TASKS 2 | 3 | 1) tweak/adjust build sequence via npm 4 | 5 | 2) sass watch while working. - possibly with foreman? 6 | 7 | 3) research other aria control options 8 | 9 | 10 | TENTATIVE 11 | 1) list groups should be separately focus-able and navigable? 12 | Change groups to http://www.w3.org/TR/WCAG20-TECHS/H85.html 13 | ex: \n

(clearSearchLabelString) optional

\n

(Used in conjunction with the searchable option - which defaults to true)

\n

This string will be used as an aria-label for the clear search button when a user has entered a value into the search field (for accesibility).

\n","updatedAt":"2017-08-24T03:18:18.000Z"} -------------------------------------------------------------------------------- /src_docs/properties/customGroupHeadingTemplateFunction.js: -------------------------------------------------------------------------------- 1 | var customGroupHeadingTemplateFunctionMarkdown = require('../markdown/js/properties/customGroupHeadingTemplateFunction').body; 2 | 3 | var customGroupHeadingTemplateFunctionProp = { 4 | 5 | nameAttr: "customGroupHeadingTemplateFunction", 6 | 7 | renderString: customGroupHeadingTemplateFunctionMarkdown 8 | 9 | }; 10 | 11 | module.exports = customGroupHeadingTemplateFunctionProp; 12 | -------------------------------------------------------------------------------- /src_docs/properties/customSelectedValueTemplateFunction.js: -------------------------------------------------------------------------------- 1 | var customSelectedValueTemplateFunctionMarkdown = require('../markdown/js/properties/customSelectedValueTemplateFunction').body; 2 | 3 | var customSelectedValueTemplateFunctionProp = { 4 | 5 | nameAttr: "customSelectedValueTemplateFunction", 6 | 7 | renderString: customSelectedValueTemplateFunctionMarkdown 8 | 9 | }; 10 | 11 | module.exports = customSelectedValueTemplateFunctionProp; 12 | -------------------------------------------------------------------------------- /src_docs/super-selects/support/example-output.js: -------------------------------------------------------------------------------- 1 | var exampleOutput = function(id, content) { 2 | var outputDiv = document.getElementById(id); 3 | 4 | if (outputDiv && outputDiv.childNodes && outputDiv.childNodes[0]) { 5 | outputDiv.replaceChild(document.createTextNode(content), outputDiv.childNodes[0]); 6 | } else { 7 | outputDiv.appendChild(document.createTextNode(content)); 8 | } 9 | 10 | }; 11 | 12 | module.exports = exampleOutput; 13 | -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/focusOnMount.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(focusOnMount) (Boolean) optional (Used in conjunction with the openOnMount option)

\n

When set to true, The component will be given document focus after it mounts\n(Forcing focus is only advisable if the user input from the super select control is the main purpose of your page)

\n","updatedAt":"2017-08-24T03:18:18.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/groupBy.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(String|Object|Function) optional

\n

Allows you to sort your dropdown options into groups by leveraging Lodash’s groupBy function.

\n

Please reference the Lodash documentation for behavior of groupBy when passed different argument types

\n","updatedAt":"2017-08-07T19:42:41.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/properties/controlId.md: -------------------------------------------------------------------------------- 1 | 2 | (**String**) *optional* 3 | 4 | This string value will be used to generate aria accessibility labels. 5 | 6 | This prop should be used in apps with isomorphic rendering. 7 | 8 | By default, the control will generate a default value using lodash uniqueId when This prop is left undefined 9 | 10 | The value must conform to the character-rules for allowed characters for an html id attribute 11 | -------------------------------------------------------------------------------- /src_docs/properties/clearSelectedValueOnDataSourceChange.js: -------------------------------------------------------------------------------- 1 | var clearSelectedValueOnDataSourceChangeMarkdown = require('../markdown/js/properties/clearSelectedValueOnDataSourceChange').body; 2 | 3 | var clearSelectedValueOnDataSourceChangeProp = { 4 | 5 | nameAttr: "clearSelectedValueOnDataSourceChange", 6 | 7 | renderString: clearSelectedValueOnDataSourceChangeMarkdown 8 | 9 | }; 10 | 11 | module.exports = clearSelectedValueOnDataSourceChangeProp; 12 | -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/keepOpenOnSelection.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(Boolean) optional

\n

Whether or not the control should stay open when selections are made

\n

By default. The control will close when a selection is made.
(In the case of multiple, when a single selection is chosen without the command-key)

\n

Set this option to true to keep the control open

\n","updatedAt":"2017-08-24T03:18:18.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/onChange.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(Function) required

\n

This is the main callback handler for the control.

\n

When a user makes selection(s), this handler will be called, the selected option (or when multiple or tags an array of selected values) will be passed to the handler as an argument.

\n

(The values passed are option objects from the dataSource collection)

\n","updatedAt":"2017-08-07T19:42:41.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/clearSearchOnSelection.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(clearSearchOnSelection) (Boolean) optional

\n

(Used in conjunction with the searchable option)

\n

When set to true, If a user has entered a search string into the search input and then makes a selection from the filtered result set, the search field will be automatically cleared.

\n","updatedAt":"2017-08-24T03:18:18.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/customLoaderClass.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(String) optional

\n

(Used in conjunction with the ajaxDataFetch and pageDataFetch options)

\n

This string value will be added as a css class to the loading icon allowing css overrides.

\n

(By default the control uses an animated gif spinner which is a base64 background image in css)

\n","updatedAt":"2017-08-07T19:42:41.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/properties/customSelectedValueTemplateFunction.md: -------------------------------------------------------------------------------- 1 | 2 | (**Function**) *optional* 3 | 4 | This function provides custom templating capability for how the selected items will display inside the control trigger. It will be used to render the display of selected values. 5 | 6 | The function should accept one parameter, 7 | - the current state value of the control 8 | 9 | It should return your desired markup based on that value 10 | -------------------------------------------------------------------------------- /src_docs/markdown/properties/forceDefaultBrowserScrolling.md: -------------------------------------------------------------------------------- 1 | 2 | (**Boolean**) **(Default: false)** *optional* 3 | 4 | Whether or not the control allows browser default onWheel scroll handling in an open dropdown. 5 | 6 | By default, mousewheel events are arrested so that the control will not scroll out of view as the end of its results set is reached. When this prop is set to true, the handler that stops the page scrolling will be bypassed. 7 | 8 | -------------------------------------------------------------------------------- /tasks/bump.js: -------------------------------------------------------------------------------- 1 | var bump = require('gulp-bump'); 2 | 3 | module.exports = function(gulp) { 4 | 5 | function getBumpTask(type) { 6 | return function() { 7 | return gulp.src(['./package.json', './bower.json']) 8 | .pipe(bump({ type: type })) 9 | .pipe(gulp.dest('./')); 10 | }; 11 | } 12 | 13 | gulp.task('bump', getBumpTask('patch')); 14 | gulp.task('bump:minor', getBumpTask('minor')); 15 | gulp.task('bump:major', getBumpTask('major')); 16 | 17 | }; 18 | -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/hasMorePages.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(Function) optional

\n

(should be provided when using the pageDataFetch option)

\n

This function accepts one argument, a value as described by the dataSource option documentation.

\n

It should return a Boolean value that indicates whether the option data collection has any more pages available for fetching

\n","updatedAt":"2017-08-07T19:42:41.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/js/properties/controlId.json: -------------------------------------------------------------------------------- 1 | {"body":"\n

(String) optional

\n

This string value will be used to generate aria accessibility labels.

\n

This prop should be used in apps with isomorphic rendering.

\n

By default, the control will generate a default value using lodash uniqueId when This prop is left undefined

\n

The value must conform to the character-rules for allowed characters for an html id attribute

\n","updatedAt":"2017-08-24T03:18:18.000Z"} -------------------------------------------------------------------------------- /src_docs/markdown/properties/optionValueKey.md: -------------------------------------------------------------------------------- 1 | 2 | (**String**) *optional* 3 | 4 | (defaults to using ‘id’ as the key if left undefined) 5 | 6 | This value represents the key in each option object (from the **dataSource** collection), which represents the value that uniquely identifies that option across the dataSource collection. 7 | 8 | Think of it in terms of the value attribute of the html option tag (inside a select) 9 | ```html 10 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 |

Multiple select control for reference

46 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-super-select", 3 | "version": "1.0.23", 4 | "description": "A flexible replacement for the html select control built with React", 5 | "main": "./lib/react-super-select.js", 6 | "author": "Scotland Stephenson", 7 | "homepage": "https://github.com/alsoscotland/react-super-select", 8 | "repository": { 9 | "type": "git", 10 | "url": "https://github.com/alsoscotland/react-super-select.git" 11 | }, 12 | "bugs": { 13 | "url": "https://github.com/alsoscotland/react-super-select/issues" 14 | }, 15 | "files": [ 16 | "lib/" 17 | ], 18 | "jest": { 19 | "unmockedModulePathPatterns": [ 20 | "./node_modules/react", 21 | "./node_modules/react-dom" 22 | ], 23 | "roots": [ 24 | "./src/" 25 | ], 26 | "transform": { 27 | ".*": "./node_modules/babel-jest" 28 | }, 29 | "moduleFileExtensions": [ 30 | "js", 31 | "json", 32 | "es6" 33 | ] 34 | }, 35 | "peerDependencies": { 36 | "classnames": "*", 37 | "lodash": "*", 38 | "prop-types": "*", 39 | "react": ">=0.14.0" 40 | }, 41 | "devDependencies": { 42 | "babel": "^6.23.0", 43 | "babel-cli": "^6.24.1", 44 | "babel-core": "^6.24.1", 45 | "babel-eslint": "^7.2.3", 46 | "babel-jest": "^20.0.3", 47 | "babel-plugin-lodash": "^3.3.2", 48 | "babel-plugin-object-assign": "^1.2.1", 49 | "babel-plugin-transform-react-constant-elements": "^6.23.0", 50 | "babel-preset-es2015": "^6.24.1", 51 | "babel-preset-minify": "^0.3.0", 52 | "babel-preset-react": "^6.24.1", 53 | "babelify": "^7.3.0", 54 | "browserify": "^14.5.0", 55 | "classnames": "^2.2.5", 56 | "docco": "^0.7.0", 57 | "eslint": "^4.18.2", 58 | "eslint-plugin-react": "^7.0.1", 59 | "exorcist": "^0.4.0", 60 | "gulp": "^3.9.1", 61 | "gulp-browserify": "^0.5.1", 62 | "gulp-bump": "^2.7.0", 63 | "gulp-concat": "^2.6.1", 64 | "gulp-connect": "^5.0.0", 65 | "gulp-eslint": "^3.0.1", 66 | "gulp-gh-pages": "^0.5.4", 67 | "gulp-git": "^2.2.0", 68 | "gulp-less": "^3.3.0", 69 | "gulp-markdown-to-json": "^1.0.3", 70 | "gulp-minify-css": "^1.2.4", 71 | "gulp-recess": "^1.2.0", 72 | "gulp-rename": "^1.2.2", 73 | "gulp-task-listing": "^1.0.1", 74 | "gulp-util": "^3.0.8", 75 | "jest-cli": "^20.0.3", 76 | "less": "^2.7.2", 77 | "marked": "^0.3.6", 78 | "prop-types": "^15.5.10", 79 | "react": "^15.5.4", 80 | "react-dom": ">=15.5.4", 81 | "run-sequence": "^1.2.2", 82 | "uglifyify": "^3.0.4" 83 | }, 84 | "scripts": { 85 | "build": "npm run clean && npm run npm:build:css && npm run npm:babel:js && npm run docs:build-sequence", 86 | "clean": "rm -rf ./lib && mkdir ./lib", 87 | "docs:build-sequence": "npm run docs:clean && $(npm bin)/gulp build:docs-gulp-sequence", 88 | "docs:clean": "rm -rf ./src_docs/markdown/js/**/* docs_generated/*", 89 | "npm:babel:js": "$(npm bin)/babel src/react-super-select.js --out-file lib/react-super-select.js", 90 | "npm:build:css": "lessc ./src/react-super-select.less ./lib/react-super-select.css", 91 | "test": "$(npm bin)/jest" 92 | }, 93 | "browserify-shim": { 94 | "classnames": "global:classNames", 95 | "lodash": "global:_", 96 | "react": "global:React" 97 | }, 98 | "readmeFilename": "README.md", 99 | "keywords": [ 100 | "react", 101 | "react-component", 102 | "select", 103 | "UI-control", 104 | "UI", 105 | "accessible", 106 | "multiselect", 107 | "tagging", 108 | "tags" 109 | ], 110 | "license": "MIT" 111 | } 112 | -------------------------------------------------------------------------------- /src_docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | React-super-select by alsoscotland 7 | 8 | 9 | 10 | 11 | 12 | 15 | 16 | 17 |
18 |
19 |

react-super-select

20 | 21 | 28 | 29 |

This project is maintained by alsoscotland

30 | 31 |
32 |
33 |

react-super-select

34 |

version:

35 |

A flexible replacement for the html select control built with React

36 |

Features:

37 |
    38 |
  • template capability for options
  • 39 |
  • aria-compliant keyboard navigation
  • 40 |
  • multiselect & tags
  • 41 |
  • ajax support
  • 42 |
  • ajax paging/load-more support
  • 43 |
  • grouped options under headings
  • 44 |
  • easy style customization
  • 45 |
  • localization support
  • 46 |
47 | 48 |

Dependencies:

49 |

All dependencies are globally shimmed. They will need to be available in global scope as React, classNames, and _ respectively

50 | 55 | 56 |

install from npm

57 |
$ npm install react-super-select
58 |         
59 | 60 | 61 | 62 |

API Docs

63 | 64 | View API Documentation 65 | 66 | 67 |

Live Examples Page

68 | 69 | View Live Examples Page 70 | 71 | 72 |

Keyboard Navigation

73 | 74 | View Keyboard Navigation Docs 75 | 76 | 77 | 78 |
79 | 80 | 81 |
82 | 83 |
84 | 87 |
88 | 89 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /src_docs/stylesheets/pygment_trac.css: -------------------------------------------------------------------------------- 1 | .highlight { background: #ffffff; } 2 | .highlight .c { color: #999988; font-style: italic } /* Comment */ 3 | .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ 4 | .highlight .k { font-weight: bold } /* Keyword */ 5 | .highlight .o { font-weight: bold } /* Operator */ 6 | .highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */ 7 | .highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */ 8 | .highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */ 9 | .highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */ 10 | .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ 11 | .highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */ 12 | .highlight .ge { font-style: italic } /* Generic.Emph */ 13 | .highlight .gr { color: #aa0000 } /* Generic.Error */ 14 | .highlight .gh { color: #999999 } /* Generic.Heading */ 15 | .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ 16 | .highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */ 17 | .highlight .go { color: #888888 } /* Generic.Output */ 18 | .highlight .gp { color: #555555 } /* Generic.Prompt */ 19 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 20 | .highlight .gu { color: #800080; font-weight: bold; } /* Generic.Subheading */ 21 | .highlight .gt { color: #aa0000 } /* Generic.Traceback */ 22 | .highlight .kc { font-weight: bold } /* Keyword.Constant */ 23 | .highlight .kd { font-weight: bold } /* Keyword.Declaration */ 24 | .highlight .kn { font-weight: bold } /* Keyword.Namespace */ 25 | .highlight .kp { font-weight: bold } /* Keyword.Pseudo */ 26 | .highlight .kr { font-weight: bold } /* Keyword.Reserved */ 27 | .highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */ 28 | .highlight .m { color: #009999 } /* Literal.Number */ 29 | .highlight .s { color: #d14 } /* Literal.String */ 30 | .highlight .na { color: #008080 } /* Name.Attribute */ 31 | .highlight .nb { color: #0086B3 } /* Name.Builtin */ 32 | .highlight .nc { color: #445588; font-weight: bold } /* Name.Class */ 33 | .highlight .no { color: #008080 } /* Name.Constant */ 34 | .highlight .ni { color: #800080 } /* Name.Entity */ 35 | .highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */ 36 | .highlight .nf { color: #990000; font-weight: bold } /* Name.Function */ 37 | .highlight .nn { color: #555555 } /* Name.Namespace */ 38 | .highlight .nt { color: #000080 } /* Name.Tag */ 39 | .highlight .nv { color: #008080 } /* Name.Variable */ 40 | .highlight .ow { font-weight: bold } /* Operator.Word */ 41 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */ 42 | .highlight .mf { color: #009999 } /* Literal.Number.Float */ 43 | .highlight .mh { color: #009999 } /* Literal.Number.Hex */ 44 | .highlight .mi { color: #009999 } /* Literal.Number.Integer */ 45 | .highlight .mo { color: #009999 } /* Literal.Number.Oct */ 46 | .highlight .sb { color: #d14 } /* Literal.String.Backtick */ 47 | .highlight .sc { color: #d14 } /* Literal.String.Char */ 48 | .highlight .sd { color: #d14 } /* Literal.String.Doc */ 49 | .highlight .s2 { color: #d14 } /* Literal.String.Double */ 50 | .highlight .se { color: #d14 } /* Literal.String.Escape */ 51 | .highlight .sh { color: #d14 } /* Literal.String.Heredoc */ 52 | .highlight .si { color: #d14 } /* Literal.String.Interpol */ 53 | .highlight .sx { color: #d14 } /* Literal.String.Other */ 54 | .highlight .sr { color: #009926 } /* Literal.String.Regex */ 55 | .highlight .s1 { color: #d14 } /* Literal.String.Single */ 56 | .highlight .ss { color: #990073 } /* Literal.String.Symbol */ 57 | .highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */ 58 | .highlight .vc { color: #008080 } /* Name.Variable.Class */ 59 | .highlight .vg { color: #008080 } /* Name.Variable.Global */ 60 | .highlight .vi { color: #008080 } /* Name.Variable.Instance */ 61 | .highlight .il { color: #009999 } /* Literal.Number.Integer.Long */ 62 | 63 | .type-csharp .highlight .k { color: #0000FF } 64 | .type-csharp .highlight .kt { color: #0000FF } 65 | .type-csharp .highlight .nf { color: #000000; font-weight: normal } 66 | .type-csharp .highlight .nc { color: #2B91AF } 67 | .type-csharp .highlight .nn { color: #000000 } 68 | .type-csharp .highlight .s { color: #A31515 } 69 | .type-csharp .highlight .sc { color: #A31515 } 70 | --------------------------------------------------------------------------------