@vueuse/integrations 6.3.3 → 6.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/useCookies.cjs CHANGED
@@ -10,77 +10,65 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
10
10
 
11
11
  var Cookie__default = /*#__PURE__*/_interopDefaultLegacy(Cookie);
12
12
 
13
- /**
14
- * Creates a new {@link useCookies} function
15
- * @param {Object} req - incoming http request (for SSR)
16
- * @see https://github.com/reactivestack/cookies/tree/master/packages/universal-cookie universal-cookie
17
- * @description Creates universal-cookie instance using request (default is window.document.cookie) and returns {@link useCookies} function with provided universal-cookie instance
18
- */
19
- function createCookies(req) {
20
- const universalCookie = new Cookie__default['default'](req ? req.headers.cookie : null);
21
- return (dependencies, { doNotParse = false, autoUpdateDependencies = false } = {}) => useCookies(dependencies, { doNotParse, autoUpdateDependencies }, universalCookie);
22
- }
23
- /**
24
- * Reactive methods to work with cookies (use {@link createCookies} method instead if you are using SSR)
25
- * @param {string[]|null|undefined} dependencies - array of watching cookie's names. Pass empty array if don't want to watch cookies changes.
26
- * @param {Object} options
27
- * @param {boolean} options.doNotParse - don't try parse value as JSON
28
- * @param {boolean} options.autoUpdateDependencies - automatically update watching dependencies
29
- * @param {Object} cookies - universal-cookie instance
30
- */
31
- function useCookies(dependencies, { doNotParse = false, autoUpdateDependencies = false } = {}, cookies = new Cookie__default['default']()) {
32
- const watchingDependencies = autoUpdateDependencies ? [...dependencies || []] : dependencies;
33
- let previousCookies = cookies.getAll({ doNotParse: true });
34
- /**
35
- * Adds reactivity to get/getAll methods
36
- */
37
- const touches = vueDemi.ref(0);
38
- const onChange = () => {
39
- const newCookies = cookies.getAll({ doNotParse: true });
40
- if (shouldUpdate(watchingDependencies || null, newCookies, previousCookies))
41
- touches.value++;
42
- previousCookies = newCookies;
43
- };
44
- cookies.addChangeListener(onChange);
45
- shared.tryOnScopeDispose(() => {
46
- cookies.removeChangeListener(onChange);
47
- });
48
- return {
49
- /**
50
- * Reactive get cookie by name. If **autoUpdateDependencies = true** then it will update watching dependencies
51
- */
52
- get: (...args) => {
53
- /**
54
- * Auto update watching dependencies if needed
55
- */
56
- if (autoUpdateDependencies && watchingDependencies && !watchingDependencies.includes(args[0]))
57
- watchingDependencies.push(args[0]);
58
- // eslint-disable-next-line no-unused-expressions
59
- touches.value; // adds reactivity to method
60
- return cookies.get(args[0], Object.assign({ doNotParse }, args[1]));
61
- },
62
- /**
63
- * Reactive get all cookies
64
- */
65
- getAll: (...args) => {
66
- // eslint-disable-next-line no-unused-expressions
67
- touches.value; // adds reactivity to method
68
- return cookies.getAll(Object.assign({ doNotParse }, args[0]));
69
- },
70
- set: (...args) => cookies.set(...args),
71
- remove: (...args) => cookies.remove(...args),
72
- addChangeListener: (...args) => cookies.addChangeListener(...args),
73
- removeChangeListener: (...args) => cookies.removeChangeListener(...args),
74
- };
75
- }
76
- function shouldUpdate(dependencies, newCookies, oldCookies) {
77
- if (!dependencies)
78
- return true;
79
- for (const dependency of dependencies) {
80
- if (newCookies[dependency] !== oldCookies[dependency])
81
- return true;
82
- }
83
- return false;
13
+ var __defProp = Object.defineProperty;
14
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
15
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
16
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
17
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
18
+ var __spreadValues = (a, b) => {
19
+ for (var prop in b || (b = {}))
20
+ if (__hasOwnProp.call(b, prop))
21
+ __defNormalProp(a, prop, b[prop]);
22
+ if (__getOwnPropSymbols)
23
+ for (var prop of __getOwnPropSymbols(b)) {
24
+ if (__propIsEnum.call(b, prop))
25
+ __defNormalProp(a, prop, b[prop]);
26
+ }
27
+ return a;
28
+ };
29
+ function createCookies(req) {
30
+ const universalCookie = new Cookie__default["default"](req ? req.headers.cookie : null);
31
+ return (dependencies, { doNotParse = false, autoUpdateDependencies = false } = {}) => useCookies(dependencies, { doNotParse, autoUpdateDependencies }, universalCookie);
32
+ }
33
+ function useCookies(dependencies, { doNotParse = false, autoUpdateDependencies = false } = {}, cookies = new Cookie__default["default"]()) {
34
+ const watchingDependencies = autoUpdateDependencies ? [...dependencies || []] : dependencies;
35
+ let previousCookies = cookies.getAll({ doNotParse: true });
36
+ const touches = vueDemi.ref(0);
37
+ const onChange = () => {
38
+ const newCookies = cookies.getAll({ doNotParse: true });
39
+ if (shouldUpdate(watchingDependencies || null, newCookies, previousCookies))
40
+ touches.value++;
41
+ previousCookies = newCookies;
42
+ };
43
+ cookies.addChangeListener(onChange);
44
+ shared.tryOnScopeDispose(() => {
45
+ cookies.removeChangeListener(onChange);
46
+ });
47
+ return {
48
+ get: (...args) => {
49
+ if (autoUpdateDependencies && watchingDependencies && !watchingDependencies.includes(args[0]))
50
+ watchingDependencies.push(args[0]);
51
+ touches.value;
52
+ return cookies.get(args[0], __spreadValues({ doNotParse }, args[1]));
53
+ },
54
+ getAll: (...args) => {
55
+ touches.value;
56
+ return cookies.getAll(__spreadValues({ doNotParse }, args[0]));
57
+ },
58
+ set: (...args) => cookies.set(...args),
59
+ remove: (...args) => cookies.remove(...args),
60
+ addChangeListener: (...args) => cookies.addChangeListener(...args),
61
+ removeChangeListener: (...args) => cookies.removeChangeListener(...args)
62
+ };
63
+ }
64
+ function shouldUpdate(dependencies, newCookies, oldCookies) {
65
+ if (!dependencies)
66
+ return true;
67
+ for (const dependency of dependencies) {
68
+ if (newCookies[dependency] !== oldCookies[dependency])
69
+ return true;
70
+ }
71
+ return false;
84
72
  }
85
73
 
86
74
  exports.createCookies = createCookies;
@@ -66,77 +66,65 @@
66
66
 
67
67
  var Cookie__default = /*#__PURE__*/_interopDefaultLegacy(Cookie);
68
68
 
69
- /**
70
- * Creates a new {@link useCookies} function
71
- * @param {Object} req - incoming http request (for SSR)
72
- * @see https://github.com/reactivestack/cookies/tree/master/packages/universal-cookie universal-cookie
73
- * @description Creates universal-cookie instance using request (default is window.document.cookie) and returns {@link useCookies} function with provided universal-cookie instance
74
- */
75
- function createCookies(req) {
76
- const universalCookie = new Cookie__default['default'](req ? req.headers.cookie : null);
77
- return (dependencies, { doNotParse = false, autoUpdateDependencies = false } = {}) => useCookies(dependencies, { doNotParse, autoUpdateDependencies }, universalCookie);
78
- }
79
- /**
80
- * Reactive methods to work with cookies (use {@link createCookies} method instead if you are using SSR)
81
- * @param {string[]|null|undefined} dependencies - array of watching cookie's names. Pass empty array if don't want to watch cookies changes.
82
- * @param {Object} options
83
- * @param {boolean} options.doNotParse - don't try parse value as JSON
84
- * @param {boolean} options.autoUpdateDependencies - automatically update watching dependencies
85
- * @param {Object} cookies - universal-cookie instance
86
- */
87
- function useCookies(dependencies, { doNotParse = false, autoUpdateDependencies = false } = {}, cookies = new Cookie__default['default']()) {
88
- const watchingDependencies = autoUpdateDependencies ? [...dependencies || []] : dependencies;
89
- let previousCookies = cookies.getAll({ doNotParse: true });
90
- /**
91
- * Adds reactivity to get/getAll methods
92
- */
93
- const touches = vueDemi.ref(0);
94
- const onChange = () => {
95
- const newCookies = cookies.getAll({ doNotParse: true });
96
- if (shouldUpdate(watchingDependencies || null, newCookies, previousCookies))
97
- touches.value++;
98
- previousCookies = newCookies;
99
- };
100
- cookies.addChangeListener(onChange);
101
- shared.tryOnScopeDispose(() => {
102
- cookies.removeChangeListener(onChange);
103
- });
104
- return {
105
- /**
106
- * Reactive get cookie by name. If **autoUpdateDependencies = true** then it will update watching dependencies
107
- */
108
- get: (...args) => {
109
- /**
110
- * Auto update watching dependencies if needed
111
- */
112
- if (autoUpdateDependencies && watchingDependencies && !watchingDependencies.includes(args[0]))
113
- watchingDependencies.push(args[0]);
114
- // eslint-disable-next-line no-unused-expressions
115
- touches.value; // adds reactivity to method
116
- return cookies.get(args[0], Object.assign({ doNotParse }, args[1]));
117
- },
118
- /**
119
- * Reactive get all cookies
120
- */
121
- getAll: (...args) => {
122
- // eslint-disable-next-line no-unused-expressions
123
- touches.value; // adds reactivity to method
124
- return cookies.getAll(Object.assign({ doNotParse }, args[0]));
125
- },
126
- set: (...args) => cookies.set(...args),
127
- remove: (...args) => cookies.remove(...args),
128
- addChangeListener: (...args) => cookies.addChangeListener(...args),
129
- removeChangeListener: (...args) => cookies.removeChangeListener(...args),
130
- };
131
- }
132
- function shouldUpdate(dependencies, newCookies, oldCookies) {
133
- if (!dependencies)
134
- return true;
135
- for (const dependency of dependencies) {
136
- if (newCookies[dependency] !== oldCookies[dependency])
137
- return true;
138
- }
139
- return false;
69
+ var __defProp = Object.defineProperty;
70
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
71
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
72
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
73
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
74
+ var __spreadValues = (a, b) => {
75
+ for (var prop in b || (b = {}))
76
+ if (__hasOwnProp.call(b, prop))
77
+ __defNormalProp(a, prop, b[prop]);
78
+ if (__getOwnPropSymbols)
79
+ for (var prop of __getOwnPropSymbols(b)) {
80
+ if (__propIsEnum.call(b, prop))
81
+ __defNormalProp(a, prop, b[prop]);
82
+ }
83
+ return a;
84
+ };
85
+ function createCookies(req) {
86
+ const universalCookie = new Cookie__default["default"](req ? req.headers.cookie : null);
87
+ return (dependencies, { doNotParse = false, autoUpdateDependencies = false } = {}) => useCookies(dependencies, { doNotParse, autoUpdateDependencies }, universalCookie);
88
+ }
89
+ function useCookies(dependencies, { doNotParse = false, autoUpdateDependencies = false } = {}, cookies = new Cookie__default["default"]()) {
90
+ const watchingDependencies = autoUpdateDependencies ? [...dependencies || []] : dependencies;
91
+ let previousCookies = cookies.getAll({ doNotParse: true });
92
+ const touches = vueDemi.ref(0);
93
+ const onChange = () => {
94
+ const newCookies = cookies.getAll({ doNotParse: true });
95
+ if (shouldUpdate(watchingDependencies || null, newCookies, previousCookies))
96
+ touches.value++;
97
+ previousCookies = newCookies;
98
+ };
99
+ cookies.addChangeListener(onChange);
100
+ shared.tryOnScopeDispose(() => {
101
+ cookies.removeChangeListener(onChange);
102
+ });
103
+ return {
104
+ get: (...args) => {
105
+ if (autoUpdateDependencies && watchingDependencies && !watchingDependencies.includes(args[0]))
106
+ watchingDependencies.push(args[0]);
107
+ touches.value;
108
+ return cookies.get(args[0], __spreadValues({ doNotParse }, args[1]));
109
+ },
110
+ getAll: (...args) => {
111
+ touches.value;
112
+ return cookies.getAll(__spreadValues({ doNotParse }, args[0]));
113
+ },
114
+ set: (...args) => cookies.set(...args),
115
+ remove: (...args) => cookies.remove(...args),
116
+ addChangeListener: (...args) => cookies.addChangeListener(...args),
117
+ removeChangeListener: (...args) => cookies.removeChangeListener(...args)
118
+ };
119
+ }
120
+ function shouldUpdate(dependencies, newCookies, oldCookies) {
121
+ if (!dependencies)
122
+ return true;
123
+ for (const dependency of dependencies) {
124
+ if (newCookies[dependency] !== oldCookies[dependency])
125
+ return true;
126
+ }
127
+ return false;
140
128
  }
141
129
 
142
130
  exports.createCookies = createCookies;
@@ -144,4 +132,4 @@
144
132
 
145
133
  Object.defineProperty(exports, '__esModule', { value: true });
146
134
 
147
- }(this.VueUse = this.VueUse || {}, VueUse, VueDemi, UniversalCookie));
135
+ })(this.VueUse = this.VueUse || {}, VueUse, VueDemi, UniversalCookie);
@@ -1 +1 @@
1
- !function(e){if(!e.VueDemi){var o={},n=e.Vue;if(n)if("2."===n.version.slice(0,2)){var i=e.VueCompositionAPI;if(i){for(var s in i)o[s]=i[s];o.isVue2=!0,o.isVue3=!1,o.install=function(){},o.Vue=n,o.Vue2=n,o.version=n.version}else console.error("[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.")}else if("3."===n.version.slice(0,2)){for(var s in n)o[s]=n[s];o.isVue2=!1,o.isVue3=!0,o.install=function(){},o.Vue=n,o.Vue2=void 0,o.version=n.version,o.set=function(e,o,n){return Array.isArray(e)?(e.length=Math.max(e.length,o),e.splice(o,1,n),n):(e[o]=n,n)},o.del=function(e,o){Array.isArray(e)?e.splice(o,1):delete e[o]}}else console.error("[vue-demi] Vue version "+n.version+" is unsupported.");else console.error("[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`.");e.VueDemi=o}}(window),function(e,o,n,i){"use strict";function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=s(UniversalCookie);function r(e,{doNotParse:i=!1,autoUpdateDependencies:s=!1}={},r=new t.default){const u=s?[...e||[]]:e;let a=r.getAll({doNotParse:!0});const l=n.ref(0),d=()=>{const e=r.getAll({doNotParse:!0});(function(e,o,n){if(!e)return!0;for(const i of e)if(o[i]!==n[i])return!0;return!1})(u||null,e,a)&&l.value++,a=e};return r.addChangeListener(d),o.tryOnScopeDispose((()=>{r.removeChangeListener(d)})),{get:(...e)=>(s&&u&&!u.includes(e[0])&&u.push(e[0]),l.value,r.get(e[0],Object.assign({doNotParse:i},e[1]))),getAll:(...e)=>(l.value,r.getAll(Object.assign({doNotParse:i},e[0]))),set:(...e)=>r.set(...e),remove:(...e)=>r.remove(...e),addChangeListener:(...e)=>r.addChangeListener(...e),removeChangeListener:(...e)=>r.removeChangeListener(...e)}}e.createCookies=function(e){const o=new t.default(e?e.headers.cookie:null);return(e,{doNotParse:n=!1,autoUpdateDependencies:i=!1}={})=>r(e,{doNotParse:n,autoUpdateDependencies:i},o)},e.useCookies=r,Object.defineProperty(e,"__esModule",{value:!0})}(this.VueUse=this.VueUse||{},VueUse,VueDemi);
1
+ (function(l){if(!l.VueDemi){var r={},o=l.Vue;if(o)if(o.version.slice(0,2)==="2."){var d=l.VueCompositionAPI;if(d){for(var f in d)r[f]=d[f];r.isVue2=!0,r.isVue3=!1,r.install=function(){},r.Vue=o,r.Vue2=o,r.version=o.version}else console.error("[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.")}else if(o.version.slice(0,2)==="3."){for(var f in o)r[f]=o[f];r.isVue2=!1,r.isVue3=!0,r.install=function(){},r.Vue=o,r.Vue2=void 0,r.version=o.version,r.set=function(s,a,v){return Array.isArray(s)?(s.length=Math.max(s.length,a),s.splice(a,1,v),v):(s[a]=v,v)},r.del=function(s,a){if(Array.isArray(s)){s.splice(a,1);return}delete s[a]}}else console.error("[vue-demi] Vue version "+o.version+" is unsupported.");else console.error("[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`.");l.VueDemi=r}})(window),function(l,r,o,d){"use strict";function f(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=f(d),a=Object.defineProperty,v=Object.getOwnPropertySymbols,y=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable,m=(e,n,u)=>n in e?a(e,n,{enumerable:!0,configurable:!0,writable:!0,value:u}):e[n]=u,V=(e,n)=>{for(var u in n||(n={}))y.call(n,u)&&m(e,u,n[u]);if(v)for(var u of v(n))g.call(n,u)&&m(e,u,n[u]);return e};function O(e){const n=new s.default(e?e.headers.cookie:null);return(u,{doNotParse:i=!1,autoUpdateDependencies:c=!1}={})=>h(u,{doNotParse:i,autoUpdateDependencies:c},n)}function h(e,{doNotParse:n=!1,autoUpdateDependencies:u=!1}={},i=new s.default){const c=u?[...e||[]]:e;let _=i.getAll({doNotParse:!0});const p=o.ref(0),C=()=>{const t=i.getAll({doNotParse:!0});P(c||null,t,_)&&p.value++,_=t};return i.addChangeListener(C),r.tryOnScopeDispose(()=>{i.removeChangeListener(C)}),{get:(...t)=>(u&&c&&!c.includes(t[0])&&c.push(t[0]),p.value,i.get(t[0],V({doNotParse:n},t[1]))),getAll:(...t)=>(p.value,i.getAll(V({doNotParse:n},t[0]))),set:(...t)=>i.set(...t),remove:(...t)=>i.remove(...t),addChangeListener:(...t)=>i.addChangeListener(...t),removeChangeListener:(...t)=>i.removeChangeListener(...t)}}function P(e,n,u){if(!e)return!0;for(const i of e)if(n[i]!==u[i])return!0;return!1}l.createCookies=O,l.useCookies=h,Object.defineProperty(l,"__esModule",{value:!0})}(this.VueUse=this.VueUse||{},VueUse,VueDemi,UniversalCookie);
package/useCookies.mjs CHANGED
@@ -2,77 +2,65 @@ import { tryOnScopeDispose } from '@vueuse/shared';
2
2
  import { ref } from 'vue-demi';
3
3
  import Cookie from 'universal-cookie';
4
4
 
5
- /**
6
- * Creates a new {@link useCookies} function
7
- * @param {Object} req - incoming http request (for SSR)
8
- * @see https://github.com/reactivestack/cookies/tree/master/packages/universal-cookie universal-cookie
9
- * @description Creates universal-cookie instance using request (default is window.document.cookie) and returns {@link useCookies} function with provided universal-cookie instance
10
- */
11
- function createCookies(req) {
12
- const universalCookie = new Cookie(req ? req.headers.cookie : null);
13
- return (dependencies, { doNotParse = false, autoUpdateDependencies = false } = {}) => useCookies(dependencies, { doNotParse, autoUpdateDependencies }, universalCookie);
14
- }
15
- /**
16
- * Reactive methods to work with cookies (use {@link createCookies} method instead if you are using SSR)
17
- * @param {string[]|null|undefined} dependencies - array of watching cookie's names. Pass empty array if don't want to watch cookies changes.
18
- * @param {Object} options
19
- * @param {boolean} options.doNotParse - don't try parse value as JSON
20
- * @param {boolean} options.autoUpdateDependencies - automatically update watching dependencies
21
- * @param {Object} cookies - universal-cookie instance
22
- */
23
- function useCookies(dependencies, { doNotParse = false, autoUpdateDependencies = false } = {}, cookies = new Cookie()) {
24
- const watchingDependencies = autoUpdateDependencies ? [...dependencies || []] : dependencies;
25
- let previousCookies = cookies.getAll({ doNotParse: true });
26
- /**
27
- * Adds reactivity to get/getAll methods
28
- */
29
- const touches = ref(0);
30
- const onChange = () => {
31
- const newCookies = cookies.getAll({ doNotParse: true });
32
- if (shouldUpdate(watchingDependencies || null, newCookies, previousCookies))
33
- touches.value++;
34
- previousCookies = newCookies;
35
- };
36
- cookies.addChangeListener(onChange);
37
- tryOnScopeDispose(() => {
38
- cookies.removeChangeListener(onChange);
39
- });
40
- return {
41
- /**
42
- * Reactive get cookie by name. If **autoUpdateDependencies = true** then it will update watching dependencies
43
- */
44
- get: (...args) => {
45
- /**
46
- * Auto update watching dependencies if needed
47
- */
48
- if (autoUpdateDependencies && watchingDependencies && !watchingDependencies.includes(args[0]))
49
- watchingDependencies.push(args[0]);
50
- // eslint-disable-next-line no-unused-expressions
51
- touches.value; // adds reactivity to method
52
- return cookies.get(args[0], Object.assign({ doNotParse }, args[1]));
53
- },
54
- /**
55
- * Reactive get all cookies
56
- */
57
- getAll: (...args) => {
58
- // eslint-disable-next-line no-unused-expressions
59
- touches.value; // adds reactivity to method
60
- return cookies.getAll(Object.assign({ doNotParse }, args[0]));
61
- },
62
- set: (...args) => cookies.set(...args),
63
- remove: (...args) => cookies.remove(...args),
64
- addChangeListener: (...args) => cookies.addChangeListener(...args),
65
- removeChangeListener: (...args) => cookies.removeChangeListener(...args),
66
- };
67
- }
68
- function shouldUpdate(dependencies, newCookies, oldCookies) {
69
- if (!dependencies)
70
- return true;
71
- for (const dependency of dependencies) {
72
- if (newCookies[dependency] !== oldCookies[dependency])
73
- return true;
74
- }
75
- return false;
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
+ var __spreadValues = (a, b) => {
11
+ for (var prop in b || (b = {}))
12
+ if (__hasOwnProp.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ if (__getOwnPropSymbols)
15
+ for (var prop of __getOwnPropSymbols(b)) {
16
+ if (__propIsEnum.call(b, prop))
17
+ __defNormalProp(a, prop, b[prop]);
18
+ }
19
+ return a;
20
+ };
21
+ function createCookies(req) {
22
+ const universalCookie = new Cookie(req ? req.headers.cookie : null);
23
+ return (dependencies, { doNotParse = false, autoUpdateDependencies = false } = {}) => useCookies(dependencies, { doNotParse, autoUpdateDependencies }, universalCookie);
24
+ }
25
+ function useCookies(dependencies, { doNotParse = false, autoUpdateDependencies = false } = {}, cookies = new Cookie()) {
26
+ const watchingDependencies = autoUpdateDependencies ? [...dependencies || []] : dependencies;
27
+ let previousCookies = cookies.getAll({ doNotParse: true });
28
+ const touches = ref(0);
29
+ const onChange = () => {
30
+ const newCookies = cookies.getAll({ doNotParse: true });
31
+ if (shouldUpdate(watchingDependencies || null, newCookies, previousCookies))
32
+ touches.value++;
33
+ previousCookies = newCookies;
34
+ };
35
+ cookies.addChangeListener(onChange);
36
+ tryOnScopeDispose(() => {
37
+ cookies.removeChangeListener(onChange);
38
+ });
39
+ return {
40
+ get: (...args) => {
41
+ if (autoUpdateDependencies && watchingDependencies && !watchingDependencies.includes(args[0]))
42
+ watchingDependencies.push(args[0]);
43
+ touches.value;
44
+ return cookies.get(args[0], __spreadValues({ doNotParse }, args[1]));
45
+ },
46
+ getAll: (...args) => {
47
+ touches.value;
48
+ return cookies.getAll(__spreadValues({ doNotParse }, args[0]));
49
+ },
50
+ set: (...args) => cookies.set(...args),
51
+ remove: (...args) => cookies.remove(...args),
52
+ addChangeListener: (...args) => cookies.addChangeListener(...args),
53
+ removeChangeListener: (...args) => cookies.removeChangeListener(...args)
54
+ };
55
+ }
56
+ function shouldUpdate(dependencies, newCookies, oldCookies) {
57
+ if (!dependencies)
58
+ return true;
59
+ for (const dependency of dependencies) {
60
+ if (newCookies[dependency] !== oldCookies[dependency])
61
+ return true;
62
+ }
63
+ return false;
76
64
  }
77
65
 
78
66
  export { createCookies, useCookies };
package/useDrauu.cjs ADDED
@@ -0,0 +1,127 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var vueDemi = require('vue-demi');
6
+ var drauu = require('drauu');
7
+ var core = require('@vueuse/core');
8
+ var shared = require('@vueuse/shared');
9
+
10
+ var __defProp = Object.defineProperty;
11
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
12
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
13
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
14
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
15
+ var __spreadValues = (a, b) => {
16
+ for (var prop in b || (b = {}))
17
+ if (__hasOwnProp.call(b, prop))
18
+ __defNormalProp(a, prop, b[prop]);
19
+ if (__getOwnPropSymbols)
20
+ for (var prop of __getOwnPropSymbols(b)) {
21
+ if (__propIsEnum.call(b, prop))
22
+ __defNormalProp(a, prop, b[prop]);
23
+ }
24
+ return a;
25
+ };
26
+ function useDrauu(target, options) {
27
+ const drauuInstance = vueDemi.ref();
28
+ let disposables = [];
29
+ const onChangedHook = core.createEventHook();
30
+ const onCanceledHook = core.createEventHook();
31
+ const onCommittedHook = core.createEventHook();
32
+ const onStartHook = core.createEventHook();
33
+ const onEndHook = core.createEventHook();
34
+ const canUndo = vueDemi.ref(false);
35
+ const canRedo = vueDemi.ref(false);
36
+ const altPressed = vueDemi.ref(false);
37
+ const shiftPressed = vueDemi.ref(false);
38
+ const brush = vueDemi.ref({
39
+ color: "black",
40
+ size: 3,
41
+ arrowEnd: false,
42
+ cornerRadius: 0,
43
+ dasharray: void 0,
44
+ fill: "transparent",
45
+ mode: "draw"
46
+ });
47
+ vueDemi.watch(brush, () => {
48
+ const instance = drauuInstance.value;
49
+ if (instance)
50
+ instance.brush = brush.value;
51
+ }, { deep: true });
52
+ const undo = () => {
53
+ var _a;
54
+ return (_a = drauuInstance.value) == null ? void 0 : _a.undo();
55
+ };
56
+ const redo = () => {
57
+ var _a;
58
+ return (_a = drauuInstance.value) == null ? void 0 : _a.redo();
59
+ };
60
+ const clear = () => {
61
+ var _a;
62
+ return (_a = drauuInstance.value) == null ? void 0 : _a.clear();
63
+ };
64
+ const cancel = () => {
65
+ var _a;
66
+ return (_a = drauuInstance.value) == null ? void 0 : _a.cancel();
67
+ };
68
+ const load = (svg) => {
69
+ var _a;
70
+ return (_a = drauuInstance.value) == null ? void 0 : _a.load(svg);
71
+ };
72
+ const dump = () => {
73
+ var _a;
74
+ return (_a = drauuInstance.value) == null ? void 0 : _a.dump();
75
+ };
76
+ const cleanup = () => {
77
+ var _a;
78
+ disposables.forEach((dispose) => dispose());
79
+ (_a = drauuInstance.value) == null ? void 0 : _a.unmount();
80
+ };
81
+ const syncStatus = () => {
82
+ if (drauuInstance.value) {
83
+ canUndo.value = drauuInstance.value.canUndo();
84
+ canRedo.value = drauuInstance.value.canRedo();
85
+ altPressed.value = drauuInstance.value.altPressed;
86
+ shiftPressed.value = drauuInstance.value.shiftPressed;
87
+ }
88
+ };
89
+ vueDemi.watch(() => core.unrefElement(target), (el) => {
90
+ if (!el || !(el instanceof SVGSVGElement))
91
+ return;
92
+ if (drauuInstance.value)
93
+ cleanup();
94
+ drauuInstance.value = drauu.createDrauu(__spreadValues({ el }, options));
95
+ syncStatus();
96
+ disposables = [
97
+ drauuInstance.value.on("canceled", () => onCanceledHook.trigger()),
98
+ drauuInstance.value.on("committed", () => onCommittedHook.trigger()),
99
+ drauuInstance.value.on("start", () => onStartHook.trigger()),
100
+ drauuInstance.value.on("end", () => onEndHook.trigger()),
101
+ drauuInstance.value.on("changed", () => {
102
+ syncStatus();
103
+ onChangedHook.trigger();
104
+ })
105
+ ];
106
+ }, { flush: "post" });
107
+ shared.tryOnScopeDispose(() => cleanup());
108
+ return {
109
+ drauuInstance,
110
+ load,
111
+ dump,
112
+ clear,
113
+ cancel,
114
+ undo,
115
+ redo,
116
+ canUndo,
117
+ canRedo,
118
+ brush,
119
+ onChanged: onChangedHook.on,
120
+ onCommitted: onCommittedHook.on,
121
+ onStart: onStartHook.on,
122
+ onEnd: onEndHook.on,
123
+ onCanceled: onCanceledHook.on
124
+ };
125
+ }
126
+
127
+ exports.useDrauu = useDrauu;
package/useDrauu.d.ts ADDED
@@ -0,0 +1,32 @@
1
+ import { Ref } from 'vue-demi';
2
+ import { Options, Drauu, Brush } from 'drauu';
3
+ import { EventHookOn, MaybeElementRef } from '@vueuse/core';
4
+
5
+ declare type UseDrauuOptions = Omit<Options, 'el'>;
6
+ interface UseDrauuReturn {
7
+ drauuInstance: Ref<Drauu | undefined>;
8
+ load: (svg: string) => void;
9
+ dump: () => string | undefined;
10
+ clear: () => void;
11
+ cancel: () => void;
12
+ undo: () => boolean | undefined;
13
+ redo: () => boolean | undefined;
14
+ canUndo: Ref<boolean>;
15
+ canRedo: Ref<boolean>;
16
+ brush: Ref<Brush>;
17
+ onChanged: EventHookOn;
18
+ onCommitted: EventHookOn;
19
+ onStart: EventHookOn;
20
+ onEnd: EventHookOn;
21
+ onCanceled: EventHookOn;
22
+ }
23
+ /**
24
+ * Reactive drauu
25
+ *
26
+ * @see https://vueuse.org/useDrauu
27
+ * @param target The target svg element
28
+ * @param options Drauu Options
29
+ */
30
+ declare function useDrauu(target: MaybeElementRef, options?: UseDrauuOptions): UseDrauuReturn;
31
+
32
+ export { UseDrauuOptions, UseDrauuReturn, useDrauu };