@vueuse/integrations 6.3.2 → 6.5.3

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.
@@ -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 };
@@ -0,0 +1,186 @@
1
+ ;(function (window) {
2
+ if (window.VueDemi) {
3
+ return
4
+ }
5
+ var VueDemi = {}
6
+ var Vue = window.Vue
7
+ if (Vue) {
8
+ if (Vue.version.slice(0, 2) === '2.') {
9
+ var VueCompositionAPI = window.VueCompositionAPI
10
+ if (VueCompositionAPI) {
11
+ for (var key in VueCompositionAPI) {
12
+ VueDemi[key] = VueCompositionAPI[key]
13
+ }
14
+ VueDemi.isVue2 = true
15
+ VueDemi.isVue3 = false
16
+ VueDemi.install = function (){}
17
+ VueDemi.Vue = Vue
18
+ VueDemi.Vue2 = Vue
19
+ VueDemi.version = Vue.version
20
+ } else {
21
+ console.error(
22
+ '[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.'
23
+ )
24
+ }
25
+ } else if (Vue.version.slice(0, 2) === '3.') {
26
+ for (var key in Vue) {
27
+ VueDemi[key] = Vue[key]
28
+ }
29
+ VueDemi.isVue2 = false
30
+ VueDemi.isVue3 = true
31
+ VueDemi.install = function (){}
32
+ VueDemi.Vue = Vue
33
+ VueDemi.Vue2 = undefined
34
+ VueDemi.version = Vue.version
35
+ VueDemi.set = function(target, key, val) {
36
+ if (Array.isArray(target)) {
37
+ target.length = Math.max(target.length, key)
38
+ target.splice(key, 1, val)
39
+ return val
40
+ }
41
+ target[key] = val
42
+ return val
43
+ }
44
+ VueDemi.del = function(target, key) {
45
+ if (Array.isArray(target)) {
46
+ target.splice(key, 1)
47
+ return
48
+ }
49
+ delete target[key]
50
+ }
51
+ } else {
52
+ console.error('[vue-demi] Vue version ' + Vue.version + ' is unsupported.')
53
+ }
54
+ } else {
55
+ console.error(
56
+ '[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`.'
57
+ )
58
+ }
59
+ window.VueDemi = VueDemi
60
+ })(window)
61
+ ;
62
+ ;(function (exports, vueDemi, drauu, core, shared) {
63
+ 'use strict';
64
+
65
+ var __defProp = Object.defineProperty;
66
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
67
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
68
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
69
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
70
+ var __spreadValues = (a, b) => {
71
+ for (var prop in b || (b = {}))
72
+ if (__hasOwnProp.call(b, prop))
73
+ __defNormalProp(a, prop, b[prop]);
74
+ if (__getOwnPropSymbols)
75
+ for (var prop of __getOwnPropSymbols(b)) {
76
+ if (__propIsEnum.call(b, prop))
77
+ __defNormalProp(a, prop, b[prop]);
78
+ }
79
+ return a;
80
+ };
81
+ function useDrauu(target, options) {
82
+ const drauuInstance = vueDemi.ref();
83
+ let disposables = [];
84
+ const onChangedHook = core.createEventHook();
85
+ const onCanceledHook = core.createEventHook();
86
+ const onCommittedHook = core.createEventHook();
87
+ const onStartHook = core.createEventHook();
88
+ const onEndHook = core.createEventHook();
89
+ const canUndo = vueDemi.ref(false);
90
+ const canRedo = vueDemi.ref(false);
91
+ const altPressed = vueDemi.ref(false);
92
+ const shiftPressed = vueDemi.ref(false);
93
+ const brush = vueDemi.ref({
94
+ color: "black",
95
+ size: 3,
96
+ arrowEnd: false,
97
+ cornerRadius: 0,
98
+ dasharray: void 0,
99
+ fill: "transparent",
100
+ mode: "draw"
101
+ });
102
+ vueDemi.watch(brush, () => {
103
+ const instance = drauuInstance.value;
104
+ if (instance)
105
+ instance.brush = brush.value;
106
+ }, { deep: true });
107
+ const undo = () => {
108
+ var _a;
109
+ return (_a = drauuInstance.value) == null ? void 0 : _a.undo();
110
+ };
111
+ const redo = () => {
112
+ var _a;
113
+ return (_a = drauuInstance.value) == null ? void 0 : _a.redo();
114
+ };
115
+ const clear = () => {
116
+ var _a;
117
+ return (_a = drauuInstance.value) == null ? void 0 : _a.clear();
118
+ };
119
+ const cancel = () => {
120
+ var _a;
121
+ return (_a = drauuInstance.value) == null ? void 0 : _a.cancel();
122
+ };
123
+ const load = (svg) => {
124
+ var _a;
125
+ return (_a = drauuInstance.value) == null ? void 0 : _a.load(svg);
126
+ };
127
+ const dump = () => {
128
+ var _a;
129
+ return (_a = drauuInstance.value) == null ? void 0 : _a.dump();
130
+ };
131
+ const cleanup = () => {
132
+ var _a;
133
+ disposables.forEach((dispose) => dispose());
134
+ (_a = drauuInstance.value) == null ? void 0 : _a.unmount();
135
+ };
136
+ const syncStatus = () => {
137
+ if (drauuInstance.value) {
138
+ canUndo.value = drauuInstance.value.canUndo();
139
+ canRedo.value = drauuInstance.value.canRedo();
140
+ altPressed.value = drauuInstance.value.altPressed;
141
+ shiftPressed.value = drauuInstance.value.shiftPressed;
142
+ }
143
+ };
144
+ vueDemi.watch(() => core.unrefElement(target), (el) => {
145
+ if (!el || !(el instanceof SVGSVGElement))
146
+ return;
147
+ if (drauuInstance.value)
148
+ cleanup();
149
+ drauuInstance.value = drauu.createDrauu(__spreadValues({ el }, options));
150
+ syncStatus();
151
+ disposables = [
152
+ drauuInstance.value.on("canceled", () => onCanceledHook.trigger()),
153
+ drauuInstance.value.on("committed", () => onCommittedHook.trigger()),
154
+ drauuInstance.value.on("start", () => onStartHook.trigger()),
155
+ drauuInstance.value.on("end", () => onEndHook.trigger()),
156
+ drauuInstance.value.on("changed", () => {
157
+ syncStatus();
158
+ onChangedHook.trigger();
159
+ })
160
+ ];
161
+ }, { flush: "post" });
162
+ shared.tryOnScopeDispose(() => cleanup());
163
+ return {
164
+ drauuInstance,
165
+ load,
166
+ dump,
167
+ clear,
168
+ cancel,
169
+ undo,
170
+ redo,
171
+ canUndo,
172
+ canRedo,
173
+ brush,
174
+ onChanged: onChangedHook.on,
175
+ onCommitted: onCommittedHook.on,
176
+ onStart: onStartHook.on,
177
+ onEnd: onEndHook.on,
178
+ onCanceled: onCanceledHook.on
179
+ };
180
+ }
181
+
182
+ exports.useDrauu = useDrauu;
183
+
184
+ Object.defineProperty(exports, '__esModule', { value: true });
185
+
186
+ })(this.VueUse = this.VueUse || {}, VueDemi, Drauu, VueUse, VueUse);
@@ -0,0 +1 @@
1
+ (function(i){if(!i.VueDemi){var n={},o=i.Vue;if(o)if(o.version.slice(0,2)==="2."){var t=i.VueCompositionAPI;if(t){for(var c in t)n[c]=t[c];n.isVue2=!0,n.isVue3=!1,n.install=function(){},n.Vue=o,n.Vue2=o,n.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 c in o)n[c]=o[c];n.isVue2=!1,n.isVue3=!0,n.install=function(){},n.Vue=o,n.Vue2=void 0,n.version=o.version,n.set=function(u,s,v){return Array.isArray(u)?(u.length=Math.max(u.length,s),u.splice(s,1,v),v):(u[s]=v,v)},n.del=function(u,s){if(Array.isArray(u)){u.splice(s,1);return}delete u[s]}}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`.");i.VueDemi=n}})(window),function(i,n,o,t,c){"use strict";var u=Object.defineProperty,s=Object.getOwnPropertySymbols,v=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable,p=(l,a,e)=>a in l?u(l,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):l[a]=e,S=(l,a)=>{for(var e in a||(a={}))v.call(a,e)&&p(l,e,a[e]);if(s)for(var e of s(a))O.call(a,e)&&p(l,e,a[e]);return l};function k(l,a){const e=n.ref();let m=[];const V=t.createEventHook(),_=t.createEventHook(),h=t.createEventHook(),E=t.createEventHook(),g=t.createEventHook(),P=n.ref(!1),b=n.ref(!1),C=n.ref(!1),U=n.ref(!1),f=n.ref({color:"black",size:3,arrowEnd:!1,cornerRadius:0,dasharray:void 0,fill:"transparent",mode:"draw"});n.watch(f,()=>{const r=e.value;r&&(r.brush=f.value)},{deep:!0});const w=()=>{var r;return(r=e.value)==null?void 0:r.undo()},A=()=>{var r;return(r=e.value)==null?void 0:r.redo()},j=()=>{var r;return(r=e.value)==null?void 0:r.clear()},I=()=>{var r;return(r=e.value)==null?void 0:r.cancel()},R=r=>{var d;return(d=e.value)==null?void 0:d.load(r)},D=()=>{var r;return(r=e.value)==null?void 0:r.dump()},y=()=>{var r;m.forEach(d=>d()),(r=e.value)==null||r.unmount()},H=()=>{e.value&&(P.value=e.value.canUndo(),b.value=e.value.canRedo(),C.value=e.value.altPressed,U.value=e.value.shiftPressed)};return n.watch(()=>t.unrefElement(l),r=>{!r||!(r instanceof SVGSVGElement)||(e.value&&y(),e.value=o.createDrauu(S({el:r},a)),H(),m=[e.value.on("canceled",()=>_.trigger()),e.value.on("committed",()=>h.trigger()),e.value.on("start",()=>E.trigger()),e.value.on("end",()=>g.trigger()),e.value.on("changed",()=>{H(),V.trigger()})])},{flush:"post"}),c.tryOnScopeDispose(()=>y()),{drauuInstance:e,load:R,dump:D,clear:j,cancel:I,undo:w,redo:A,canUndo:P,canRedo:b,brush:f,onChanged:V.on,onCommitted:h.on,onStart:E.on,onEnd:g.on,onCanceled:_.on}}i.useDrauu=k,Object.defineProperty(i,"__esModule",{value:!0})}(this.VueUse=this.VueUse||{},VueDemi,Drauu,VueUse,VueUse);