├── index.js
├── readme.md
├── package.json
└── LICENSE
/index.js:
--------------------------------------------------------------------------------
1 | export default function clickOutside(node, onEventFunction) {
2 | const handleClick = event => {
3 | var path = event.composedPath();
4 |
5 | if (!path.includes(node)) {
6 | onEventFunction();
7 | }
8 | }
9 |
10 | document.addEventListener("click", handleClick);
11 |
12 | return {
13 | destroy() {
14 | document.removeEventListener("click", handleClick);
15 | }
16 | }
17 | }
--------------------------------------------------------------------------------
/readme.md:
--------------------------------------------------------------------------------
1 | # Svelte Outside
2 |
3 | Svelte Outside allows you to handle click events that occur outside of an element without having to wrap your elements inside of an component.
4 |
5 | ## Basic Usage
6 |
7 | Using Svelte Outside is as simple as adding two lines of code.
8 |
9 | ```svelte
10 |
13 |
14 |
21 | ```
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "svelte-outside-click",
3 | "version": "1.1.2",
4 | "description": "Handle clicks outside of your specified element.",
5 | "main": "index.js",
6 | "type": "module",
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "author": "rster2002",
11 | "license": "MIT",
12 | "repository": {
13 | "type": "git",
14 | "url": "git+https://github.com/rster2002/svelte-outside-click.git"
15 | },
16 | "keywords": [
17 | "svelte"
18 | ],
19 | "bugs": {
20 | "url": "https://github.com/rster2002/svelte-outside-click/issues"
21 | },
22 | "homepage": "https://github.com/rster2002/svelte-outside-click#readme"
23 | }
24 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 Bjørn Reemer
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------