Socket
Socket
Sign inDemoInstall

@brightspace-ui-labs/multi-select

Package Overview
Dependencies
17
Maintainers
3
Versions
57
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @brightspace-ui-labs/multi-select

Polymer-based web component for D2L multi select and related components


Version published
Weekly downloads
1.1K
increased by29.36%
Maintainers
3
Created
Weekly downloads
 

Readme

Source

d2l-labs-multi-select

NPM version Dependabot badge Build status

Note: this is a "labs" component. While functional, these tasks are prerequisites to promotion to BrightspaceUI "official" status:

Polymer-based web component for D2L multi select and related components.

Installation

npm install @brightspace-ui-labs/multi-select

Usage

Include the webcomponents.js polyfill loader (for browsers who don't natively support web components), then import the appropriate multi-select components as needed:

<head>
	<script src="node_modules/webcomponentsjs/webcomponents-loader.js"></script>
</head>

Inputs

d2l-labs-multi-select-input-text

d2l-labs-multi-select-input-text includes a d2l-input-text that is hooked up to add items when 'Enter' is pressed.

<d2l-labs-multi-select-input-text>
	<d2l-labs-multi-select-list-item deletable text="Item 1"></d2l-labs-multi-select-list-item>
</d2l-labs-multi-select-input-text>
d2l-labs-multi-select-input

You can use your own input component instead by putting it as a child of d2l-labs-multi-select-input and setting slot="input" on your input element. To add items to the list, call addItem with the item text.

<d2l-labs-multi-select-input id="multi-select-input">
	<div slot="input">
		<input>
		<button>Add</button>
	</div>
</d2l-labs-multi-select-input>
button.addEventListener('click', () => {
	multiSelectInput.addItem(input.value)
})

Components

d2l-labs-multi-select-list-item

d2l-labs-multi-select-list-item is a compact representation of information.

A deletable property can be set to enable the option of deleting the item, although there is no wire-up.

<d2l-labs-multi-select-list-item deletable text="List item"></d2l-labs-multi-select-list-item>

A 'show-delete-hover-focus' property can be set to allow delete icon to show on hover or focus only.

<d2l-labs-multi-select-list-item deletable show-delete-hover-focus text="List item"></d2l-labs-multi-select-list-item>

Also the following css variables are exposed to clients and can be use to override some of the appearance of the list item.

--d2l-labs-multi-select-list-item-font
--d2l-labs-multi-select-list-item-padding
--d2l-labs-multi-select-list-item-padding-rtl
--d2l-labs-multi-select-list-item-padding-deletable
--d2l-labs-multi-select-list-item-padding-deletable-rtl
d2l-labs-multi-select-list

d2l-labs-multi-select-list wraps a list of items, and provides spacing between the items, as well as keyboard navigation (arrow keys) and handling of item deletion (backspace/delete).

<d2l-labs-multi-select-list>
	<d2l-labs-multi-select-list-item text="List item 1"></d2l-labs-multi-select-list-item>
	<d2l-labs-multi-select-list-item text="List item 2"></d2l-labs-multi-select-list-item>
	...
</d2l-labs-multi-select-list>

You can opt for a condensed view by adding the collapsable attribute, which limits the element to the first line of items and provides a button for viewing the remaining items.

Events

  • d2l-labs-multi-select-list-item-deleted: fired on item deletion

  • d2l-labs-multi-select-list-item-added: fired on item added to the d2l-labs-multi-select-list

Developing, Testing and Contributing

After cloning the repo, run npm install to install dependencies.

If you don't have it already, install the Polymer CLI globally:

npm install -g polymer-cli

To start a local web server that hosts the demo page and tests:

polymer serve

To lint (eslint and Polymer lint):

npm run lint

To run unit tests locally using Polymer test:

npm run test:polymer:local

To lint AND run local unit tests:

npm test

Versioning, Releasing & Deploying

All version changes should obey semantic versioning rules.

Include either [increment major], [increment minor] or [increment patch] in your merge commit message to automatically increment the package.json version, create a tag, and trigger a deployment to NPM.

FAQs

Last updated on 28 Jul 2020

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc