Skip to content

Commit 19cbe82

Browse files
author
Jeff
committed
- support scoped and non-scoped slots
- namespace dev files
1 parent eee3a01 commit 19cbe82

File tree

7 files changed

+82
-15
lines changed

7 files changed

+82
-15
lines changed

src/Dev.vue renamed to dev/Dev.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
</template>
1212

1313
<script>
14-
import Toggle from './components/Toggle';
15-
import Target from './components/Target';
14+
import Toggle from '../src/components/Toggle';
15+
import Target from '../src/components/Target';
1616
1717
export default {
1818
components: {Toggle, Target},

src/main.js renamed to dev/dev.js

File renamed without changes.

package.json

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
2-
"name": "vue-dropdown",
3-
"version": "0.1.0",
4-
"private": true,
2+
"name": "vueable",
3+
"version": "0.0.1",
4+
"main": "src/index.js",
55
"scripts": {
6-
"serve": "vue-cli-service serve",
7-
"build": "vue-cli-service build",
6+
"serve": "vue-cli-service serve ./dev/dev.js",
7+
"build": "vue-cli-service build --target lib ./src/index.js",
88
"lint": "vue-cli-service lint",
99
"test:unit": "vue-cli-service test:unit"
1010
},
@@ -25,6 +25,7 @@
2525
"eslint-plugin-vue": "^5.0.0-0",
2626
"node-sass": "^4.9.0",
2727
"sass-loader": "^7.0.1",
28+
"vue-cli-plugin-webpack-bundle-analyzer": "^1.2.0",
2829
"vue-template-compiler": "^2.5.17"
2930
},
3031
"eslintConfig": {

src/components/Target.vue

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ export default {
3030
if (arguments.length) {
3131
return this.active = arguments[0];
3232
}
33-
3433
this.active = !this.active;
3534
},
3635
},

src/components/Toggle.vue

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,21 @@ export default {
2525
},
2626
},
2727
render (h) {
28+
let slot = this.$slots['default'];
29+
30+
if (this.$scopedSlots.hasOwnProperty('default')) {
31+
slot = this.$scopedSlots.default({
32+
active: this.active,
33+
toggle: this.toggle,
34+
clickAway: this.clickAway,
35+
});
36+
}
37+
2838
return h(this.tag, {
2939
on: {
3040
click: this.toggle,
3141
},
32-
}, this.$slots.default);
42+
}, slot);
3343
},
3444
mounted () {
3545
this.target = this.$children.find(child => {
@@ -41,7 +51,8 @@ export default {
4151
return this.target.toggle();
4252
},
4353
clickAway (event) {
44-
if (!event.composedPath().includes(this.$el)) {
54+
const $el = arguments[1] ? arguments[1] : this.$el;
55+
if (!event.composedPath().includes($el)) {
4556
this.target.toggle(false);
4657
}
4758
},

src/index.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import Toggle from './components/Toggle';
2+
import Target from './components/Target';
3+
4+
export default {
5+
Toggle, Target,
6+
};

yarn.lock

Lines changed: 55 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1063,7 +1063,7 @@ acorn@^3.0.4:
10631063
resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
10641064
integrity sha1-ReN/s56No/JbruP/U2niu18iAXo=
10651065

1066-
acorn@^5.0.0, acorn@^5.5.0, acorn@^5.5.3, acorn@^5.6.2, acorn@^5.7.3:
1066+
acorn@^5.0.0, acorn@^5.3.0, acorn@^5.5.0, acorn@^5.5.3, acorn@^5.6.2, acorn@^5.7.3:
10671067
version "5.7.3"
10681068
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279"
10691069
integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==
@@ -1646,6 +1646,15 @@ bcrypt-pbkdf@^1.0.0:
16461646
dependencies:
16471647
tweetnacl "^0.14.3"
16481648

1649+
bfj-node4@^5.2.0:
1650+
version "5.3.1"
1651+
resolved "https://registry.yarnpkg.com/bfj-node4/-/bfj-node4-5.3.1.tgz#e23d8b27057f1d0214fc561142ad9db998f26830"
1652+
integrity sha512-SOmOsowQWfXc7ybFARsK3C4MCOWzERaOMV/Fl3Tgjs+5dJWyzo3oa127jL44eMbQiAN17J7SvAs2TRxEScTUmg==
1653+
dependencies:
1654+
bluebird "^3.5.1"
1655+
check-types "^7.3.0"
1656+
tryer "^1.0.0"
1657+
16491658
bfj@^6.1.1:
16501659
version "6.1.1"
16511660
resolved "https://registry.yarnpkg.com/bfj/-/bfj-6.1.1.tgz#05a3b7784fbd72cfa3c22e56002ef99336516c48"
@@ -2296,7 +2305,7 @@ [email protected], commander@~2.17.1:
22962305
resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf"
22972306
integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==
22982307

2299-
commander@^2.18.0, commander@^2.19.0:
2308+
commander@^2.13.0, commander@^2.18.0, commander@^2.19.0:
23002309
version "2.19.0"
23012310
resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
23022311
integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==
@@ -3148,7 +3157,7 @@ [email protected]:
31483157
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
31493158
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
31503159

3151-
ejs@^2.6.1:
3160+
ejs@^2.5.7, ejs@^2.6.1:
31523161
version "2.6.1"
31533162
resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0"
31543163
integrity sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==
@@ -3820,7 +3829,7 @@ fileset@^2.0.2:
38203829
glob "^7.0.3"
38213830
minimatch "^3.0.3"
38223831

3823-
filesize@^3.6.1:
3832+
filesize@^3.5.11, filesize@^3.6.1:
38243833
version "3.6.1"
38253834
resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317"
38263835
integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==
@@ -4232,6 +4241,14 @@ growly@^1.3.0:
42324241
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
42334242
integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
42344243

4244+
gzip-size@^4.1.0:
4245+
version "4.1.0"
4246+
resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-4.1.0.tgz#8ae096257eabe7d69c45be2b67c448124ffb517c"
4247+
integrity sha1-iuCWJX6r59acRb4rZ8RIEk/7UXw=
4248+
dependencies:
4249+
duplexer "^0.1.1"
4250+
pify "^3.0.0"
4251+
42354252
gzip-size@^5.0.0:
42364253
version "5.0.0"
42374254
resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.0.0.tgz#a55ecd99222f4c48fd8c01c625ce3b349d0a0e80"
@@ -6690,7 +6707,7 @@ onetime@^2.0.0:
66906707
dependencies:
66916708
mimic-fn "^1.0.0"
66926709

6693-
opener@^1.5.1:
6710+
opener@^1.4.3, opener@^1.5.1:
66946711
version "1.5.1"
66956712
resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed"
66966713
integrity sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==
@@ -9264,6 +9281,13 @@ [email protected]:
92649281
dependencies:
92659282
indexof "0.0.1"
92669283

9284+
vue-cli-plugin-webpack-bundle-analyzer@^1.2.0:
9285+
version "1.2.0"
9286+
resolved "https://registry.yarnpkg.com/vue-cli-plugin-webpack-bundle-analyzer/-/vue-cli-plugin-webpack-bundle-analyzer-1.2.0.tgz#8dd050008965bc029a3ae7c7b4c1ec762b601919"
9287+
integrity sha512-x8mhU5eFXpQ9PJuV+Ja8y9moi2veSPwyceepJaVjqVNKBEydRTgg458CWbEx2xay784Xy62LTK4XSYcVtPPglA==
9288+
dependencies:
9289+
webpack-bundle-analyzer "^2.13.1"
9290+
92679291
vue-eslint-parser@^2.0.3:
92689292
version "2.0.3"
92699293
resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz#c268c96c6d94cfe3d938a5f7593959b0ca3360d1"
@@ -9396,6 +9420,24 @@ webidl-conversions@^4.0.2:
93969420
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
93979421
integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==
93989422

9423+
webpack-bundle-analyzer@^2.13.1:
9424+
version "2.13.1"
9425+
resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-2.13.1.tgz#07d2176c6e86c3cdce4c23e56fae2a7b6b4ad526"
9426+
integrity sha512-rwxyfecTAxoarCC9VlHlIpfQCmmJ/qWD5bpbjkof+7HrNhTNZIwZITxN6CdlYL2axGmwNUQ+tFgcSOiNXMf/sQ==
9427+
dependencies:
9428+
acorn "^5.3.0"
9429+
bfj-node4 "^5.2.0"
9430+
chalk "^2.3.0"
9431+
commander "^2.13.0"
9432+
ejs "^2.5.7"
9433+
express "^4.16.2"
9434+
filesize "^3.5.11"
9435+
gzip-size "^4.1.0"
9436+
lodash "^4.17.4"
9437+
mkdirp "^0.5.1"
9438+
opener "^1.4.3"
9439+
ws "^4.0.0"
9440+
93999441
webpack-bundle-analyzer@^3.0.3:
94009442
version "3.0.3"
94019443
resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.0.3.tgz#dbc7fff8f52058b6714a20fddf309d0790e3e0a0"
@@ -9632,6 +9674,14 @@ write@^0.2.1:
96329674
dependencies:
96339675
mkdirp "^0.5.1"
96349676

9677+
ws@^4.0.0:
9678+
version "4.1.0"
9679+
resolved "https://registry.yarnpkg.com/ws/-/ws-4.1.0.tgz#a979b5d7d4da68bf54efe0408967c324869a7289"
9680+
integrity sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==
9681+
dependencies:
9682+
async-limiter "~1.0.0"
9683+
safe-buffer "~5.1.0"
9684+
96359685
ws@^5.2.0:
96369686
version "5.2.2"
96379687
resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f"

0 commit comments

Comments
 (0)