Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
makeup-expander
Advanced tools
Creates the basic interactivity for an element that expands and collapses another element.
Creates the basic interactivity for an element that expands and collapses another element.
This module is still in an experimental state, until it reaches v1.0.0 you must consider all minor releases as breaking changes. Patch releases may introduce new features, but will be backwards compatible.
// via npm
npm install makeup-expander
// via yarn
yarn add makeup-expander
<div class="expander">
<button class="expander__host">Click for Flyout</button>
<div class="expander__content">
<p>Any kind of HTML control can go inside...</p>
<p>A link: <a id="foo" href="http://www.ebay.com">www.ebay.com</a></p>
<p>A button: <button>Click Me</button></p>
<p>An input: <input type="text" aria-label="Dummy textbox"></p>
<p>A checkbox: <input type="checkbox" aria-label="Dummy checkbox"></p>
</div>
</div>
// import the module
const Expander = require('makeup-expander');
// get an element reference
const widgetEl = document.querySelector('.expander');
// options
const options = {
expandOnClick: true
};
// get widget instance
const widget = new Expander(widgetEl, options);
Clicking the button will now toggle it's aria-expanded state. CSS can be used to display the content accordingly, for example:
.expander__content {
display: none;
}
.expander__host[aria-expanded="true"] ~ .expander__content {
display: block;
}
el
: the root widget eloptions.autoCollapse
: applies a collapse behavior (collapseOnClick
, collapseOnFocusOut
, collapseOnMouseOut
) based on expand behaviour (default: false)options.collapseOnClickOut
: whether the content should collapse when clicking outside of content (default: false)options.collapseOnFocusOut
: whether the content should collapse when focus leaves the content (default: false)options.collapseOnMouseOut
: whether the content should collapse when mouse leaves the content (default: false)options.contentSelector
: the query selector for the expandee element in relation to the widget (default: '.expander__content')options.expandOnClick
: whether the host should be click activated (default: false)options.expandOnFocus
: whether the host should be focus activated (default: false)options.expandOnHover
: whether the host should be hover activated (default: false)options.focusManagement
: where focus should go (null, 'content', 'focusable', 'interactive', or ID reference) when click expander is activated with keyboard (default: null)options.hostSelector
: the query selector for the host element in relation to the widget (default: '.expander__host')Set the following properties to true or false to enable or disable the behaviour.
collapseOnClickOut
collapseOnFocusOut
collapseOnMouseOut
expandOnClick
expandOnFocus
expandOnHover
collapse()
: set state to collapsedexpand()
: set state to expandedisExpanded()
: returns expanded statetoggle()
: toggle expanded/collapsed stateexpander-collapse
expander-expand
npm start
npm test
npm run lint
npm run fix
npm run build
npm run clean
The following hooks exist, and do not need to be invoked manually:
npm prepublish
cleans, lints, tests and builds on every npm publish
commandpre-commit
cleans, lints, tests and builds on every git commit
commandEach test run will generate the following reports:
/reports/coverage
contains Istanbul code coverage report/reports/html
contains HTML test reporthttps://travis-ci.org/makeup-js/makeup-expander
FAQs
Creates the basic interactivity for an element that expands and collapses another element.
The npm package makeup-expander receives a total of 265 weekly downloads. As such, makeup-expander popularity was classified as not popular.
We found that makeup-expander demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
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.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.