rexr 0.3.0 → 0.5.0

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/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
- import { EventState } from 'reev';
2
- import { B as BatteryState, C as ClipboardState, G as GeolocationState, O as OnlineState, a as OrientState, W as WindowSizeState } from './types-5626eef1.js';
1
+ import { EventState } from 'reev/src';
2
+ import { B as BatteryState, C as ClipboardState, G as GeolocationState, O as OnlineState, a as OrientState, W as WindowSizeState } from './types-144e414c.js';
3
+ export { b as BatteryArg, c as ClipboardArg, d as GeolocationArg, e as OnlineArg, f as OrientArg, g as WindowSizeArg } from './types-144e414c.js';
3
4
 
4
5
  declare const batteryEvent: () => EventState<BatteryState, any[] | unknown[]>;
5
6
 
@@ -7,6 +8,15 @@ declare const clipboardEvent: () => EventState<ClipboardState, any[]>;
7
8
 
8
9
  declare const geolocationEvent: () => EventState<GeolocationState, any[] | unknown[]>;
9
10
 
11
+ interface MediaQueryState {
12
+ snapshot: [MediaQueryState];
13
+ callback(): void;
14
+ change(): void;
15
+ mount(): void;
16
+ clean(): void;
17
+ }
18
+ declare type MediaQueryArg = Partial<MediaQueryState> | MediaQueryState['change'];
19
+
10
20
  declare const mediaQueryEvent: () => void;
11
21
 
12
22
  declare const onlineEvent: () => EventState<OnlineState, any[]>;
@@ -15,4 +25,4 @@ declare const orientEvent: () => EventState<OrientState, any[] | unknown[]>;
15
25
 
16
26
  declare const windowSizeEvent: () => EventState<WindowSizeState, any[]>;
17
27
 
18
- export { batteryEvent, clipboardEvent, geolocationEvent, mediaQueryEvent, onlineEvent, orientEvent, windowSizeEvent };
28
+ export { BatteryState, ClipboardState, GeolocationState, MediaQueryArg, MediaQueryState, OnlineState, OrientState, WindowSizeState, batteryEvent, clipboardEvent, geolocationEvent, mediaQueryEvent, onlineEvent, orientEvent, windowSizeEvent };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var s=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var w=Object.prototype.hasOwnProperty;var E=(o,t)=>{for(var a in t)s(o,a,{get:t[a],enumerable:!0})},u=(o,t,a,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of C(t))!w.call(o,n)&&n!==a&&s(o,n,{get:()=>t[n],enumerable:!(e=f(t,n))||e.enumerable});return o};var S=o=>u(s({},"__esModule",{value:!0}),o);var z={};E(z,{batteryEvent:()=>x,clipboardEvent:()=>y,geolocationEvent:()=>L,mediaQueryEvent:()=>V,onlineEvent:()=>b,orientEvent:()=>_,windowSizeEvent:()=>k});module.exports=S(z);var v=require("reev"),x=()=>{let e=(0,v.event)({onChange:async()=>{let n=await navigator.getBattery();e.level=n.level,e.charging=n.charging,e.chargingTime=n.chargingTime,e.dischargingTime=n.dischargingTime,e.snapshot=[e],e.callback()},onMount:()=>{navigator.getBattery().then(n=>{e.target=n,n.addEventListener("levelchange",e.onChange),n.addEventListener("chargingchange",e.onChange)}),e.onChange()},onClean:()=>{let n=e.target;n&&(n.removeEventListener("levelchange",e.onChange),n.removeEventListener("chargingchange",e.onChange))}});return e.snapshot=[e],e};var l=require("reev"),y=()=>{let e=(0,l.event)({clipboard:"",onChange:()=>{navigator.clipboard.readText().then(n=>{e.clipboard=n,e.snapshot=[e],e.callback()})},onMount:()=>{window.addEventListener("copy",e.onChange),window.addEventListener("cut",e.onChange),window.addEventListener("paste",e.onChange)},onClean:()=>{window.removeEventListener("copy",e.onChange),window.removeEventListener("cut",e.onChange),window.removeEventListener("paste",e.onChange)}});return e.snapshot=[e],e};var g=require("reev"),L=()=>{let e=(0,g.event)({onChange:()=>{navigator.geolocation.getCurrentPosition(n=>{e.geolocation=n,e.snapshot=[e],e.callback()})},onMount:()=>{e.onChange(),e.id=navigator.geolocation.watchPosition(e.onChange)},onClean:()=>{typeof e.id<"u"&&navigator.geolocation.clearWatch(e.id)}});return e.snapshot=[e],e};var V=()=>{};var h=require("reev"),b=()=>{let e=(0,h.event)({onChange:()=>{e.online=navigator.onLine,e.snapshot=[e],e.callback()},onMount:()=>{e.onChange(),window.addEventListener("online",e.onChange),window.addEventListener("offline",e.onChange)},onClean:()=>{window.removeEventListener("online",e.onChange),window.removeEventListener("offline",e.onChange)}});return e.snapshot=[e],e};var m=require("reev");var M=typeof Float32Array<"u"?Float32Array:Array,r=(o=0,t=0,a=0,e=new M(3))=>(e[0]=o,e[1]=t,e[2]=a,e),c=(o,t,a=r())=>(a[0]=o[0]+t[0],a[1]=o[1]+t[1],a[2]=o[2]+t[2],a),d=(o,t,a=r())=>(a[0]=o[0]-t[0],a[1]=o[1]-t[1],a[2]=o[2]-t[2],a);var _=()=>{let o=()=>{n.active=n._active=!1,r(0,0,0,n.value),r(0,0,0,n._value),r(0,0,0,n.delta),r(0,0,0,n.movement)},t=i=>{n._active=n.active,n._value=n.value,n.value=[90-(i.alpha??90),i.beta??0,i.gamma??0],n._active&&(d(n.value,n._value,n.delta),c(n.offset,n.delta,n.offset),c(n.offset,n.delta,n.movement)),n.snapshot=[n],n.callback()},a=()=>{o(),n.active=!0,window.addEventListener("deviceorientation",n.onChange)},e=()=>{o(),window.removeEventListener("deviceorientation",n.onChange)},n=(0,m.event)({active:!1,_active:!1,_value:r(),value:r(),delta:r(),offset:r(),movement:r(),onMount:a,onClean:e,onChange:t});return n.snapshot=[n],n};var p=require("reev"),k=()=>{let e=(0,p.event)({width:1920,height:1080,onChange:()=>{e.callback(),e.snapshot=[e],e.width=window.innerWidth,e.height=window.innerHeight},onMount:()=>{e.onChange(),window.addEventListener("resize",e.onChange)},onClean:()=>{window.removeEventListener("resize",e.onChange)}});return e.snapshot=[e],e};0&&(module.exports={batteryEvent,clipboardEvent,geolocationEvent,mediaQueryEvent,onlineEvent,orientEvent,windowSizeEvent});
1
+ var i=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var E=Object.prototype.hasOwnProperty;var u=(o,n)=>{for(var a in n)i(o,a,{get:n[a],enumerable:!0})},x=(o,n,a,e)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of w(n))!E.call(o,t)&&t!==a&&i(o,t,{get:()=>n[t],enumerable:!(e=f(n,t))||e.enumerable});return o};var S=o=>x(i({},"__esModule",{value:!0}),o);var B={};u(B,{batteryEvent:()=>y,clipboardEvent:()=>L,geolocationEvent:()=>V,mediaQueryEvent:()=>b,onlineEvent:()=>_,orientEvent:()=>z,windowSizeEvent:()=>T});module.exports=S(B);var v=require("reev/src"),y=()=>{let e=(0,v.event)({change:async()=>{let t=await navigator.getBattery();e.level=t.level,e.charging=t.charging,e.chargingTime=t.chargingTime,e.dischargingTime=t.dischargingTime,e.snapshot=[e],e.callback()},mount:()=>{navigator.getBattery().then(t=>{e.target=t,t.addEventListener("levelchange",e.change),t.addEventListener("chargingchange",e.change)}),e.change()},clean:()=>{let t=e.target;t&&(t.removeEventListener("levelchange",e.change),t.removeEventListener("chargingchange",e.change))}});return e.snapshot=[e],e};var l=require("reev/src"),L=()=>{let e=(0,l.event)({clipboard:"",change:()=>{navigator.clipboard.readText().then(t=>{e.clipboard=t,e.snapshot=[e],e.callback()})},mount:()=>{window.addEventListener("copy",e.change),window.addEventListener("cut",e.change),window.addEventListener("paste",e.change)},clean:()=>{window.removeEventListener("copy",e.change),window.removeEventListener("cut",e.change),window.removeEventListener("paste",e.change)}});return e.snapshot=[e],e};var m=require("reev/src"),V=()=>{let e=(0,m.event)({change:()=>{navigator.geolocation.getCurrentPosition(t=>{e.geolocation=t,e.snapshot=[e],e.callback()})},mount:()=>{e.change(),e.id=navigator.geolocation.watchPosition(e.change)},clean:()=>{typeof e.id<"u"&&navigator.geolocation.clearWatch(e.id)}});return e.snapshot=[e],e};var b=()=>{};var g=require("reev/src"),_=()=>{let e=(0,g.event)({change:()=>{e.online=navigator.onLine,e.snapshot=[e],e.callback()},mount:()=>{e.change(),window.addEventListener("online",e.change),window.addEventListener("offline",e.change)},clean:()=>{window.removeEventListener("online",e.change),window.removeEventListener("offline",e.change)}});return e.snapshot=[e],e};var d=require("reev/src");var k=typeof Float32Array<"u"?Float32Array:Array,r=(o=0,n=0,a=0,e=new k(3))=>(e[0]=o,e[1]=n,e[2]=a,e),s=(o,n,a=r())=>(a[0]=o[0]+n[0],a[1]=o[1]+n[1],a[2]=o[2]+n[2],a),h=(o,n,a=r())=>(a[0]=o[0]-n[0],a[1]=o[1]-n[1],a[2]=o[2]-n[2],a);var z=()=>{let o=()=>{t.active=t._active=!1,r(0,0,0,t.value),r(0,0,0,t._value),r(0,0,0,t.delta),r(0,0,0,t.movement)},n=c=>{t._active=t.active,t._value=t.value,t.value=[90-(c.alpha??90),c.beta??0,c.gamma??0],t._active&&(h(t.value,t._value,t.delta),s(t.offset,t.delta,t.offset),s(t.offset,t.delta,t.movement)),t.snapshot=[t],t.callback()},a=()=>{o(),t.active=!0,window.addEventListener("deviceorientation",t.change)},e=()=>{o(),window.removeEventListener("deviceorientation",t.change)},t=(0,d.event)({active:!1,_active:!1,_value:r(),value:r(),delta:r(),offset:r(),movement:r(),mount:a,clean:e,change:n});return t.snapshot=[t],t};var p=require("reev/src"),T=()=>{let e=(0,p.event)({width:1920,height:1080,change:()=>{e.callback(),e.snapshot=[e],e.width=window.innerWidth,e.height=window.innerHeight},mount:()=>{e.change(),window.addEventListener("resize",e.change)},clean:()=>{window.removeEventListener("resize",e.change)}});return e.snapshot=[e],e};0&&(module.exports={batteryEvent,clipboardEvent,geolocationEvent,mediaQueryEvent,onlineEvent,orientEvent,windowSizeEvent});
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../index.ts","../battery/index.ts","../clipboard/index.ts","../geolocation/index.ts","../mediaQuery/index.ts","../online/index.ts","../orient/index.ts","../orient/utils.ts","../windowSize/index.ts"],"sourcesContent":["export * from './battery'\nexport * from './clipboard'\nexport * from './geolocation'\nexport * from './mediaQuery'\nexport * from './online'\nexport * from './orient'\nexport * from './windowSize'\n","import { EventState, event } from 'reev'\nimport { BatteryState } from './types'\n\nexport const batteryEvent = () => {\n const onChange = async () => {\n // @ts-ignore\n const battery = await navigator.getBattery()\n self.level = battery.level\n self.charging = battery.charging\n self.chargingTime = battery.chargingTime\n self.dischargingTime = battery.dischargingTime\n self.snapshot = [self]\n self.callback()\n }\n\n const onMount = () => {\n // @ts-ignore\n navigator.getBattery().then((target: any) => {\n self.target = target\n target.addEventListener('levelchange', self.onChange)\n target.addEventListener('chargingchange', self.onChange)\n })\n self.onChange()\n }\n\n const onClean = () => {\n const target = self.target\n if (!target) return\n target.removeEventListener('levelchange', self.onChange)\n target.removeEventListener('chargingchange', self.onChange)\n }\n\n const self = event({\n onChange,\n onMount,\n onClean,\n }) as EventState<BatteryState>\n\n self.snapshot = [self]\n\n return self\n}\n","import { EventState, event } from 'reev'\nimport { ClipboardState } from './types'\n\nexport const clipboardEvent = () => {\n const onChange = () => {\n navigator.clipboard.readText().then((clipboard) => {\n self.clipboard = clipboard\n self.snapshot = [self]\n self.callback()\n })\n }\n\n const onMount = () => {\n window.addEventListener('copy', self.onChange)\n window.addEventListener('cut', self.onChange)\n window.addEventListener('paste', self.onChange)\n }\n\n const onClean = () => {\n window.removeEventListener('copy', self.onChange)\n window.removeEventListener('cut', self.onChange)\n window.removeEventListener('paste', self.onChange)\n }\n\n const self = event({\n clipboard: '',\n onChange,\n onMount,\n onClean,\n }) as EventState<ClipboardState>\n\n self.snapshot = [self]\n\n return self\n}\n","import { EventState, event } from 'reev'\nimport { GeolocationState } from './types'\n\nexport const geolocationEvent = () => {\n const onChange = () => {\n navigator.geolocation.getCurrentPosition((geolocation) => {\n self.geolocation = geolocation\n self.snapshot = [self]\n self.callback()\n })\n }\n\n const onMount = () => {\n self.onChange()\n self.id = navigator.geolocation.watchPosition(self.onChange)\n }\n\n const onClean = () => {\n if (typeof self.id !== 'undefined')\n navigator.geolocation.clearWatch(self.id)\n }\n\n const self = event({\n onChange,\n onMount,\n onClean,\n }) as EventState<GeolocationState>\n\n self.snapshot = [self]\n\n return self\n}\n","import { event } from 'reev'\n\nexport const mediaQueryEvent = () => {}\n","import { OnlineState } from './types'\nimport { EventState, event } from 'reev'\n\nexport const onlineEvent = () => {\n const onChange = () => {\n self.online = navigator.onLine\n self.snapshot = [self]\n self.callback()\n }\n\n const onMount = () => {\n self.onChange()\n window.addEventListener('online', self.onChange)\n window.addEventListener('offline', self.onChange)\n }\n const onClean = () => {\n window.removeEventListener('online', self.onChange)\n window.removeEventListener('offline', self.onChange)\n }\n const self = event({\n onChange,\n onMount,\n onClean,\n }) as EventState<OnlineState>\n\n self.snapshot = [self]\n\n return self\n}\n","import { EventState, event } from 'reev'\nimport { OrientState } from './types'\nimport { addVec3, subVec3, vec3 } from './utils'\n\nexport const orientEvent = () => {\n const initValues = () => {\n self.active = self._active = false\n vec3(0, 0, 0, self.value)\n vec3(0, 0, 0, self._value)\n vec3(0, 0, 0, self.delta)\n vec3(0, 0, 0, self.movement)\n }\n\n const onChange = (e: any) => {\n self._active = self.active\n self._value = self.value\n self.value = [90 - (e.alpha ?? 90), e.beta ?? 0, e.gamma ?? 0]\n if (self._active) {\n subVec3(self.value, self._value, self.delta)\n addVec3(self.offset, self.delta, self.offset)\n addVec3(self.offset, self.delta, self.movement)\n }\n self.snapshot = [self]\n self.callback()\n }\n\n const onMount = () => {\n initValues()\n self.active = true\n window.addEventListener(\"deviceorientation\", self.onChange);\n }\n\n const onClean = () => {\n initValues()\n window.removeEventListener(\"deviceorientation\", self.onChange);\n }\n\n const self = event({\n active: false,\n _active: false,\n _value: vec3(),\n value: vec3(),\n delta: vec3(),\n offset: vec3(),\n movement: vec3(),\n onMount,\n onClean,\n onChange,\n }) as EventState<OrientState>\n\n self.snapshot = [self]\n\n return self\n}\n","/**\n * CALCULATE VECTOR\n * REF: https://github.com/toji/gl-matrix/blob/master/src/vec2.js\n */\n\nconst Vec = typeof Float32Array !== 'undefined' ? Float32Array : Array\n\nexport const vec3 = (x = 0, y = 0, z = 0, out = new Vec(3)): Vec3 => {\n out[0] = x\n out[1] = y\n out[2] = z\n return out as Vec3\n}\n\nexport type Vec3 = [x: number, y: number, z: number]\n\nexport const addVec3 = (a: Vec3, b: Vec3, out = vec3()): Vec3 => {\n out[0] = a[0] + b[0]\n out[1] = a[1] + b[1]\n out[2] = a[2] + b[2]\n return out\n}\n\nexport const subVec3 = (a: Vec3, b: Vec3, out = vec3()): Vec3 => {\n out[0] = a[0] - b[0]\n out[1] = a[1] - b[1]\n out[2] = a[2] - b[2]\n return out\n}\n\nexport const cpVec3 = (a: Vec3, out = vec3()): Vec3 => {\n out[0] = a[0]\n out[1] = a[1]\n out[2] = a[2]\n return out\n}\n","import { EventState, event } from 'reev'\nimport { WindowSizeState } from './types'\n\nexport const windowSizeEvent = () => {\n const onMount = () => {\n self.onChange()\n window.addEventListener('resize', self.onChange)\n }\n\n const onClean = () => {\n window.removeEventListener('resize', self.onChange)\n }\n\n const onChange = () => {\n self.callback()\n self.snapshot = [self]\n self.width = window.innerWidth\n self.height = window.innerHeight\n }\n\n const self = event({\n width: 1920,\n height: 1080,\n onChange,\n onMount,\n onClean,\n }) as EventState<WindowSizeState>\n\n self.snapshot = [self]\n\n return self\n}\n"],"mappings":"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","names":["external_exports","__export","batteryEvent","clipboardEvent","geolocationEvent","mediaQueryEvent","onlineEvent","orientEvent","windowSizeEvent","__toCommonJS","import_reev","batteryEvent","self","battery","target","import_reev","clipboardEvent","self","clipboard","import_reev","geolocationEvent","self","geolocation","mediaQueryEvent","import_reev","onlineEvent","self","import_reev","Vec","vec3","x","y","z","out","addVec3","a","b","subVec3","orientEvent","initValues","self","vec3","onChange","e","subVec3","addVec3","onMount","onClean","import_reev","windowSizeEvent","self"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/battery/index.ts","../src/clipboard/index.ts","../src/geolocation/index.ts","../src/mediaQuery/index.ts","../src/online/index.ts","../src/orient/index.ts","../src/orient/utils.ts","../src/windowSize/index.ts"],"sourcesContent":["export * from './battery'\nexport * from './clipboard'\nexport * from './geolocation'\nexport * from './mediaQuery'\nexport * from './online'\nexport * from './orient'\nexport * from './windowSize'\n","import { EventState, event } from 'reev/src'\nimport { BatteryState } from './types'\n\nexport * from './types'\n\nexport const batteryEvent = () => {\n const change = async () => {\n // @ts-ignore\n const battery = await navigator.getBattery()\n self.level = battery.level\n self.charging = battery.charging\n self.chargingTime = battery.chargingTime\n self.dischargingTime = battery.dischargingTime\n self.snapshot = [self]\n self.callback()\n }\n\n const mount = () => {\n // @ts-ignore\n navigator.getBattery().then((target: any) => {\n self.target = target\n target.addEventListener('levelchange', self.change)\n target.addEventListener('chargingchange', self.change)\n })\n self.change()\n }\n\n const clean = () => {\n const target = self.target\n if (!target) return\n target.removeEventListener('levelchange', self.change)\n target.removeEventListener('chargingchange', self.change)\n }\n\n const self = event({\n change,\n mount,\n clean,\n }) as EventState<BatteryState>\n\n self.snapshot = [self]\n\n return self\n}\n","import { EventState, event } from 'reev/src'\nimport { ClipboardState } from './types'\n\nexport * from './types'\n\nexport const clipboardEvent = () => {\n const change = () => {\n navigator.clipboard.readText().then((clipboard) => {\n self.clipboard = clipboard\n self.snapshot = [self]\n self.callback()\n })\n }\n\n const mount = () => {\n window.addEventListener('copy', self.change)\n window.addEventListener('cut', self.change)\n window.addEventListener('paste', self.change)\n }\n\n const clean = () => {\n window.removeEventListener('copy', self.change)\n window.removeEventListener('cut', self.change)\n window.removeEventListener('paste', self.change)\n }\n\n const self = event({\n clipboard: '',\n change,\n mount,\n clean,\n }) as EventState<ClipboardState>\n\n self.snapshot = [self]\n\n return self\n}\n","import { EventState, event } from 'reev/src'\nimport { GeolocationState } from './types'\n\nexport * from './types'\n\nexport const geolocationEvent = () => {\n const change = () => {\n navigator.geolocation.getCurrentPosition((geolocation) => {\n self.geolocation = geolocation\n self.snapshot = [self]\n self.callback()\n })\n }\n\n const mount = () => {\n self.change()\n self.id = navigator.geolocation.watchPosition(self.change)\n }\n\n const clean = () => {\n if (typeof self.id !== 'undefined') navigator.geolocation.clearWatch(self.id)\n }\n\n const self = event({\n change,\n mount,\n clean,\n }) as EventState<GeolocationState>\n\n self.snapshot = [self]\n\n return self\n}\n","import { event } from 'reev/src'\n\nexport * from './types'\n\nexport const mediaQueryEvent = () => {}\n","import { OnlineState } from './types'\nimport { EventState, event } from 'reev/src'\n\nexport * from './types'\n\nexport const onlineEvent = () => {\n const change = () => {\n self.online = navigator.onLine\n self.snapshot = [self]\n self.callback()\n }\n\n const mount = () => {\n self.change()\n window.addEventListener('online', self.change)\n window.addEventListener('offline', self.change)\n }\n const clean = () => {\n window.removeEventListener('online', self.change)\n window.removeEventListener('offline', self.change)\n }\n const self = event({\n change,\n mount,\n clean,\n }) as EventState<OnlineState>\n\n self.snapshot = [self]\n\n return self\n}\n","import { EventState, event } from 'reev/src'\nimport { OrientState } from './types'\nimport { addVec3, subVec3, vec3 } from './utils'\n\nexport * from './types'\n\nexport const orientEvent = () => {\n const initValues = () => {\n self.active = self._active = false\n vec3(0, 0, 0, self.value)\n vec3(0, 0, 0, self._value)\n vec3(0, 0, 0, self.delta)\n vec3(0, 0, 0, self.movement)\n }\n\n const change = (e: any) => {\n self._active = self.active\n self._value = self.value\n self.value = [90 - (e.alpha ?? 90), e.beta ?? 0, e.gamma ?? 0]\n if (self._active) {\n subVec3(self.value, self._value, self.delta)\n addVec3(self.offset, self.delta, self.offset)\n addVec3(self.offset, self.delta, self.movement)\n }\n self.snapshot = [self]\n self.callback()\n }\n\n const mount = () => {\n initValues()\n self.active = true\n window.addEventListener('deviceorientation', self.change)\n }\n\n const clean = () => {\n initValues()\n window.removeEventListener('deviceorientation', self.change)\n }\n\n const self = event({\n active: false,\n _active: false,\n _value: vec3(),\n value: vec3(),\n delta: vec3(),\n offset: vec3(),\n movement: vec3(),\n mount,\n clean,\n change,\n }) as EventState<OrientState>\n\n self.snapshot = [self]\n\n return self\n}\n","/**\n * CALCULATE VECTOR\n * REF: https://github.com/toji/gl-matrix/blob/master/src/vec2.js\n */\n\nconst Vec = typeof Float32Array !== 'undefined' ? Float32Array : Array\n\nexport const vec3 = (x = 0, y = 0, z = 0, out = new Vec(3)): Vec3 => {\n out[0] = x\n out[1] = y\n out[2] = z\n return out as Vec3\n}\n\nexport type Vec3 = [x: number, y: number, z: number]\n\nexport const addVec3 = (a: Vec3, b: Vec3, out = vec3()): Vec3 => {\n out[0] = a[0] + b[0]\n out[1] = a[1] + b[1]\n out[2] = a[2] + b[2]\n return out\n}\n\nexport const subVec3 = (a: Vec3, b: Vec3, out = vec3()): Vec3 => {\n out[0] = a[0] - b[0]\n out[1] = a[1] - b[1]\n out[2] = a[2] - b[2]\n return out\n}\n\nexport const cpVec3 = (a: Vec3, out = vec3()): Vec3 => {\n out[0] = a[0]\n out[1] = a[1]\n out[2] = a[2]\n return out\n}\n","import { EventState, event } from 'reev/src'\nimport { WindowSizeState } from './types'\n\nexport * from './types'\n\nexport const windowSizeEvent = () => {\n const mount = () => {\n self.change()\n window.addEventListener('resize', self.change)\n }\n\n const clean = () => {\n window.removeEventListener('resize', self.change)\n }\n\n const change = () => {\n self.callback()\n self.snapshot = [self]\n self.width = window.innerWidth\n self.height = window.innerHeight\n }\n\n const self = event({\n width: 1920,\n height: 1080,\n change,\n mount,\n clean,\n }) as EventState<WindowSizeState>\n\n self.snapshot = [self]\n\n return self\n}\n"],"mappings":"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","names":["src_exports","__export","batteryEvent","clipboardEvent","geolocationEvent","mediaQueryEvent","onlineEvent","orientEvent","windowSizeEvent","__toCommonJS","import_src","batteryEvent","self","battery","target","import_src","clipboardEvent","self","clipboard","import_src","geolocationEvent","self","geolocation","mediaQueryEvent","import_src","onlineEvent","self","import_src","Vec","vec3","x","y","z","out","addVec3","a","b","subVec3","orientEvent","initValues","self","vec3","change","e","subVec3","addVec3","mount","clean","import_src","windowSizeEvent","self"]}
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{event as v}from"reev";var w=()=>{let e=v({onChange:async()=>{let n=await navigator.getBattery();e.level=n.level,e.charging=n.charging,e.chargingTime=n.chargingTime,e.dischargingTime=n.dischargingTime,e.snapshot=[e],e.callback()},onMount:()=>{navigator.getBattery().then(n=>{e.target=n,n.addEventListener("levelchange",e.onChange),n.addEventListener("chargingchange",e.onChange)}),e.onChange()},onClean:()=>{let n=e.target;n&&(n.removeEventListener("levelchange",e.onChange),n.removeEventListener("chargingchange",e.onChange))}});return e.snapshot=[e],e};import{event as l}from"reev";var x=()=>{let e=l({clipboard:"",onChange:()=>{navigator.clipboard.readText().then(n=>{e.clipboard=n,e.snapshot=[e],e.callback()})},onMount:()=>{window.addEventListener("copy",e.onChange),window.addEventListener("cut",e.onChange),window.addEventListener("paste",e.onChange)},onClean:()=>{window.removeEventListener("copy",e.onChange),window.removeEventListener("cut",e.onChange),window.removeEventListener("paste",e.onChange)}});return e.snapshot=[e],e};import{event as g}from"reev";var b=()=>{let e=g({onChange:()=>{navigator.geolocation.getCurrentPosition(n=>{e.geolocation=n,e.snapshot=[e],e.callback()})},onMount:()=>{e.onChange(),e.id=navigator.geolocation.watchPosition(e.onChange)},onClean:()=>{typeof e.id<"u"&&navigator.geolocation.clearWatch(e.id)}});return e.snapshot=[e],e};var _=()=>{};import{event as h}from"reev";var B=()=>{let e=h({onChange:()=>{e.online=navigator.onLine,e.snapshot=[e],e.callback()},onMount:()=>{e.onChange(),window.addEventListener("online",e.onChange),window.addEventListener("offline",e.onChange)},onClean:()=>{window.removeEventListener("online",e.onChange),window.removeEventListener("offline",e.onChange)}});return e.snapshot=[e],e};import{event as m}from"reev";var d=typeof Float32Array<"u"?Float32Array:Array,r=(o=0,a=0,t=0,e=new d(3))=>(e[0]=o,e[1]=a,e[2]=t,e),s=(o,a,t=r())=>(t[0]=o[0]+a[0],t[1]=o[1]+a[1],t[2]=o[2]+a[2],t),c=(o,a,t=r())=>(t[0]=o[0]-a[0],t[1]=o[1]-a[1],t[2]=o[2]-a[2],t);var P=()=>{let o=()=>{n.active=n._active=!1,r(0,0,0,n.value),r(0,0,0,n._value),r(0,0,0,n.delta),r(0,0,0,n.movement)},a=i=>{n._active=n.active,n._value=n.value,n.value=[90-(i.alpha??90),i.beta??0,i.gamma??0],n._active&&(c(n.value,n._value,n.delta),s(n.offset,n.delta,n.offset),s(n.offset,n.delta,n.movement)),n.snapshot=[n],n.callback()},t=()=>{o(),n.active=!0,window.addEventListener("deviceorientation",n.onChange)},e=()=>{o(),window.removeEventListener("deviceorientation",n.onChange)},n=m({active:!1,_active:!1,_value:r(),value:r(),delta:r(),offset:r(),movement:r(),onMount:t,onClean:e,onChange:a});return n.snapshot=[n],n};import{event as p}from"reev";var q=()=>{let e=p({width:1920,height:1080,onChange:()=>{e.callback(),e.snapshot=[e],e.width=window.innerWidth,e.height=window.innerHeight},onMount:()=>{e.onChange(),window.addEventListener("resize",e.onChange)},onClean:()=>{window.removeEventListener("resize",e.onChange)}});return e.snapshot=[e],e};export{w as batteryEvent,x as clipboardEvent,b as geolocationEvent,_ as mediaQueryEvent,B as onlineEvent,P as orientEvent,q as windowSizeEvent};
1
+ import{event as v}from"reev/src";var E=()=>{let e=v({change:async()=>{let t=await navigator.getBattery();e.level=t.level,e.charging=t.charging,e.chargingTime=t.chargingTime,e.dischargingTime=t.dischargingTime,e.snapshot=[e],e.callback()},mount:()=>{navigator.getBattery().then(t=>{e.target=t,t.addEventListener("levelchange",e.change),t.addEventListener("chargingchange",e.change)}),e.change()},clean:()=>{let t=e.target;t&&(t.removeEventListener("levelchange",e.change),t.removeEventListener("chargingchange",e.change))}});return e.snapshot=[e],e};import{event as l}from"reev/src";var L=()=>{let e=l({clipboard:"",change:()=>{navigator.clipboard.readText().then(t=>{e.clipboard=t,e.snapshot=[e],e.callback()})},mount:()=>{window.addEventListener("copy",e.change),window.addEventListener("cut",e.change),window.addEventListener("paste",e.change)},clean:()=>{window.removeEventListener("copy",e.change),window.removeEventListener("cut",e.change),window.removeEventListener("paste",e.change)}});return e.snapshot=[e],e};import{event as m}from"reev/src";var z=()=>{let e=m({change:()=>{navigator.geolocation.getCurrentPosition(t=>{e.geolocation=t,e.snapshot=[e],e.callback()})},mount:()=>{e.change(),e.id=navigator.geolocation.watchPosition(e.change)},clean:()=>{typeof e.id<"u"&&navigator.geolocation.clearWatch(e.id)}});return e.snapshot=[e],e};var O=()=>{};import{event as g}from"reev/src";var G=()=>{let e=g({change:()=>{e.online=navigator.onLine,e.snapshot=[e],e.callback()},mount:()=>{e.change(),window.addEventListener("online",e.change),window.addEventListener("offline",e.change)},clean:()=>{window.removeEventListener("online",e.change),window.removeEventListener("offline",e.change)}});return e.snapshot=[e],e};import{event as d}from"reev/src";var h=typeof Float32Array<"u"?Float32Array:Array,r=(o=0,a=0,n=0,e=new h(3))=>(e[0]=o,e[1]=a,e[2]=n,e),i=(o,a,n=r())=>(n[0]=o[0]+a[0],n[1]=o[1]+a[1],n[2]=o[2]+a[2],n),s=(o,a,n=r())=>(n[0]=o[0]-a[0],n[1]=o[1]-a[1],n[2]=o[2]-a[2],n);var I=()=>{let o=()=>{t.active=t._active=!1,r(0,0,0,t.value),r(0,0,0,t._value),r(0,0,0,t.delta),r(0,0,0,t.movement)},a=c=>{t._active=t.active,t._value=t.value,t.value=[90-(c.alpha??90),c.beta??0,c.gamma??0],t._active&&(s(t.value,t._value,t.delta),i(t.offset,t.delta,t.offset),i(t.offset,t.delta,t.movement)),t.snapshot=[t],t.callback()},n=()=>{o(),t.active=!0,window.addEventListener("deviceorientation",t.change)},e=()=>{o(),window.removeEventListener("deviceorientation",t.change)},t=d({active:!1,_active:!1,_value:r(),value:r(),delta:r(),offset:r(),movement:r(),mount:n,clean:e,change:a});return t.snapshot=[t],t};import{event as p}from"reev/src";var R=()=>{let e=p({width:1920,height:1080,change:()=>{e.callback(),e.snapshot=[e],e.width=window.innerWidth,e.height=window.innerHeight},mount:()=>{e.change(),window.addEventListener("resize",e.change)},clean:()=>{window.removeEventListener("resize",e.change)}});return e.snapshot=[e],e};export{E as batteryEvent,L as clipboardEvent,z as geolocationEvent,O as mediaQueryEvent,G as onlineEvent,I as orientEvent,R as windowSizeEvent};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../battery/index.ts","../clipboard/index.ts","../geolocation/index.ts","../mediaQuery/index.ts","../online/index.ts","../orient/index.ts","../orient/utils.ts","../windowSize/index.ts"],"sourcesContent":["import { EventState, event } from 'reev'\nimport { BatteryState } from './types'\n\nexport const batteryEvent = () => {\n const onChange = async () => {\n // @ts-ignore\n const battery = await navigator.getBattery()\n self.level = battery.level\n self.charging = battery.charging\n self.chargingTime = battery.chargingTime\n self.dischargingTime = battery.dischargingTime\n self.snapshot = [self]\n self.callback()\n }\n\n const onMount = () => {\n // @ts-ignore\n navigator.getBattery().then((target: any) => {\n self.target = target\n target.addEventListener('levelchange', self.onChange)\n target.addEventListener('chargingchange', self.onChange)\n })\n self.onChange()\n }\n\n const onClean = () => {\n const target = self.target\n if (!target) return\n target.removeEventListener('levelchange', self.onChange)\n target.removeEventListener('chargingchange', self.onChange)\n }\n\n const self = event({\n onChange,\n onMount,\n onClean,\n }) as EventState<BatteryState>\n\n self.snapshot = [self]\n\n return self\n}\n","import { EventState, event } from 'reev'\nimport { ClipboardState } from './types'\n\nexport const clipboardEvent = () => {\n const onChange = () => {\n navigator.clipboard.readText().then((clipboard) => {\n self.clipboard = clipboard\n self.snapshot = [self]\n self.callback()\n })\n }\n\n const onMount = () => {\n window.addEventListener('copy', self.onChange)\n window.addEventListener('cut', self.onChange)\n window.addEventListener('paste', self.onChange)\n }\n\n const onClean = () => {\n window.removeEventListener('copy', self.onChange)\n window.removeEventListener('cut', self.onChange)\n window.removeEventListener('paste', self.onChange)\n }\n\n const self = event({\n clipboard: '',\n onChange,\n onMount,\n onClean,\n }) as EventState<ClipboardState>\n\n self.snapshot = [self]\n\n return self\n}\n","import { EventState, event } from 'reev'\nimport { GeolocationState } from './types'\n\nexport const geolocationEvent = () => {\n const onChange = () => {\n navigator.geolocation.getCurrentPosition((geolocation) => {\n self.geolocation = geolocation\n self.snapshot = [self]\n self.callback()\n })\n }\n\n const onMount = () => {\n self.onChange()\n self.id = navigator.geolocation.watchPosition(self.onChange)\n }\n\n const onClean = () => {\n if (typeof self.id !== 'undefined')\n navigator.geolocation.clearWatch(self.id)\n }\n\n const self = event({\n onChange,\n onMount,\n onClean,\n }) as EventState<GeolocationState>\n\n self.snapshot = [self]\n\n return self\n}\n","import { event } from 'reev'\n\nexport const mediaQueryEvent = () => {}\n","import { OnlineState } from './types'\nimport { EventState, event } from 'reev'\n\nexport const onlineEvent = () => {\n const onChange = () => {\n self.online = navigator.onLine\n self.snapshot = [self]\n self.callback()\n }\n\n const onMount = () => {\n self.onChange()\n window.addEventListener('online', self.onChange)\n window.addEventListener('offline', self.onChange)\n }\n const onClean = () => {\n window.removeEventListener('online', self.onChange)\n window.removeEventListener('offline', self.onChange)\n }\n const self = event({\n onChange,\n onMount,\n onClean,\n }) as EventState<OnlineState>\n\n self.snapshot = [self]\n\n return self\n}\n","import { EventState, event } from 'reev'\nimport { OrientState } from './types'\nimport { addVec3, subVec3, vec3 } from './utils'\n\nexport const orientEvent = () => {\n const initValues = () => {\n self.active = self._active = false\n vec3(0, 0, 0, self.value)\n vec3(0, 0, 0, self._value)\n vec3(0, 0, 0, self.delta)\n vec3(0, 0, 0, self.movement)\n }\n\n const onChange = (e: any) => {\n self._active = self.active\n self._value = self.value\n self.value = [90 - (e.alpha ?? 90), e.beta ?? 0, e.gamma ?? 0]\n if (self._active) {\n subVec3(self.value, self._value, self.delta)\n addVec3(self.offset, self.delta, self.offset)\n addVec3(self.offset, self.delta, self.movement)\n }\n self.snapshot = [self]\n self.callback()\n }\n\n const onMount = () => {\n initValues()\n self.active = true\n window.addEventListener(\"deviceorientation\", self.onChange);\n }\n\n const onClean = () => {\n initValues()\n window.removeEventListener(\"deviceorientation\", self.onChange);\n }\n\n const self = event({\n active: false,\n _active: false,\n _value: vec3(),\n value: vec3(),\n delta: vec3(),\n offset: vec3(),\n movement: vec3(),\n onMount,\n onClean,\n onChange,\n }) as EventState<OrientState>\n\n self.snapshot = [self]\n\n return self\n}\n","/**\n * CALCULATE VECTOR\n * REF: https://github.com/toji/gl-matrix/blob/master/src/vec2.js\n */\n\nconst Vec = typeof Float32Array !== 'undefined' ? Float32Array : Array\n\nexport const vec3 = (x = 0, y = 0, z = 0, out = new Vec(3)): Vec3 => {\n out[0] = x\n out[1] = y\n out[2] = z\n return out as Vec3\n}\n\nexport type Vec3 = [x: number, y: number, z: number]\n\nexport const addVec3 = (a: Vec3, b: Vec3, out = vec3()): Vec3 => {\n out[0] = a[0] + b[0]\n out[1] = a[1] + b[1]\n out[2] = a[2] + b[2]\n return out\n}\n\nexport const subVec3 = (a: Vec3, b: Vec3, out = vec3()): Vec3 => {\n out[0] = a[0] - b[0]\n out[1] = a[1] - b[1]\n out[2] = a[2] - b[2]\n return out\n}\n\nexport const cpVec3 = (a: Vec3, out = vec3()): Vec3 => {\n out[0] = a[0]\n out[1] = a[1]\n out[2] = a[2]\n return out\n}\n","import { EventState, event } from 'reev'\nimport { WindowSizeState } from './types'\n\nexport const windowSizeEvent = () => {\n const onMount = () => {\n self.onChange()\n window.addEventListener('resize', self.onChange)\n }\n\n const onClean = () => {\n window.removeEventListener('resize', self.onChange)\n }\n\n const onChange = () => {\n self.callback()\n self.snapshot = [self]\n self.width = window.innerWidth\n self.height = window.innerHeight\n }\n\n const self = event({\n width: 1920,\n height: 1080,\n onChange,\n onMount,\n onClean,\n }) as EventState<WindowSizeState>\n\n self.snapshot = [self]\n\n return self\n}\n"],"mappings":"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","names":["event","batteryEvent","self","battery","target","event","clipboardEvent","self","clipboard","event","geolocationEvent","self","geolocation","mediaQueryEvent","event","onlineEvent","self","event","Vec","vec3","x","y","z","out","addVec3","a","b","subVec3","orientEvent","initValues","self","vec3","onChange","e","subVec3","addVec3","onMount","onClean","event","event","windowSizeEvent","self"]}
1
+ {"version":3,"sources":["../src/battery/index.ts","../src/clipboard/index.ts","../src/geolocation/index.ts","../src/mediaQuery/index.ts","../src/online/index.ts","../src/orient/index.ts","../src/orient/utils.ts","../src/windowSize/index.ts"],"sourcesContent":["import { EventState, event } from 'reev/src'\nimport { BatteryState } from './types'\n\nexport * from './types'\n\nexport const batteryEvent = () => {\n const change = async () => {\n // @ts-ignore\n const battery = await navigator.getBattery()\n self.level = battery.level\n self.charging = battery.charging\n self.chargingTime = battery.chargingTime\n self.dischargingTime = battery.dischargingTime\n self.snapshot = [self]\n self.callback()\n }\n\n const mount = () => {\n // @ts-ignore\n navigator.getBattery().then((target: any) => {\n self.target = target\n target.addEventListener('levelchange', self.change)\n target.addEventListener('chargingchange', self.change)\n })\n self.change()\n }\n\n const clean = () => {\n const target = self.target\n if (!target) return\n target.removeEventListener('levelchange', self.change)\n target.removeEventListener('chargingchange', self.change)\n }\n\n const self = event({\n change,\n mount,\n clean,\n }) as EventState<BatteryState>\n\n self.snapshot = [self]\n\n return self\n}\n","import { EventState, event } from 'reev/src'\nimport { ClipboardState } from './types'\n\nexport * from './types'\n\nexport const clipboardEvent = () => {\n const change = () => {\n navigator.clipboard.readText().then((clipboard) => {\n self.clipboard = clipboard\n self.snapshot = [self]\n self.callback()\n })\n }\n\n const mount = () => {\n window.addEventListener('copy', self.change)\n window.addEventListener('cut', self.change)\n window.addEventListener('paste', self.change)\n }\n\n const clean = () => {\n window.removeEventListener('copy', self.change)\n window.removeEventListener('cut', self.change)\n window.removeEventListener('paste', self.change)\n }\n\n const self = event({\n clipboard: '',\n change,\n mount,\n clean,\n }) as EventState<ClipboardState>\n\n self.snapshot = [self]\n\n return self\n}\n","import { EventState, event } from 'reev/src'\nimport { GeolocationState } from './types'\n\nexport * from './types'\n\nexport const geolocationEvent = () => {\n const change = () => {\n navigator.geolocation.getCurrentPosition((geolocation) => {\n self.geolocation = geolocation\n self.snapshot = [self]\n self.callback()\n })\n }\n\n const mount = () => {\n self.change()\n self.id = navigator.geolocation.watchPosition(self.change)\n }\n\n const clean = () => {\n if (typeof self.id !== 'undefined') navigator.geolocation.clearWatch(self.id)\n }\n\n const self = event({\n change,\n mount,\n clean,\n }) as EventState<GeolocationState>\n\n self.snapshot = [self]\n\n return self\n}\n","import { event } from 'reev/src'\n\nexport * from './types'\n\nexport const mediaQueryEvent = () => {}\n","import { OnlineState } from './types'\nimport { EventState, event } from 'reev/src'\n\nexport * from './types'\n\nexport const onlineEvent = () => {\n const change = () => {\n self.online = navigator.onLine\n self.snapshot = [self]\n self.callback()\n }\n\n const mount = () => {\n self.change()\n window.addEventListener('online', self.change)\n window.addEventListener('offline', self.change)\n }\n const clean = () => {\n window.removeEventListener('online', self.change)\n window.removeEventListener('offline', self.change)\n }\n const self = event({\n change,\n mount,\n clean,\n }) as EventState<OnlineState>\n\n self.snapshot = [self]\n\n return self\n}\n","import { EventState, event } from 'reev/src'\nimport { OrientState } from './types'\nimport { addVec3, subVec3, vec3 } from './utils'\n\nexport * from './types'\n\nexport const orientEvent = () => {\n const initValues = () => {\n self.active = self._active = false\n vec3(0, 0, 0, self.value)\n vec3(0, 0, 0, self._value)\n vec3(0, 0, 0, self.delta)\n vec3(0, 0, 0, self.movement)\n }\n\n const change = (e: any) => {\n self._active = self.active\n self._value = self.value\n self.value = [90 - (e.alpha ?? 90), e.beta ?? 0, e.gamma ?? 0]\n if (self._active) {\n subVec3(self.value, self._value, self.delta)\n addVec3(self.offset, self.delta, self.offset)\n addVec3(self.offset, self.delta, self.movement)\n }\n self.snapshot = [self]\n self.callback()\n }\n\n const mount = () => {\n initValues()\n self.active = true\n window.addEventListener('deviceorientation', self.change)\n }\n\n const clean = () => {\n initValues()\n window.removeEventListener('deviceorientation', self.change)\n }\n\n const self = event({\n active: false,\n _active: false,\n _value: vec3(),\n value: vec3(),\n delta: vec3(),\n offset: vec3(),\n movement: vec3(),\n mount,\n clean,\n change,\n }) as EventState<OrientState>\n\n self.snapshot = [self]\n\n return self\n}\n","/**\n * CALCULATE VECTOR\n * REF: https://github.com/toji/gl-matrix/blob/master/src/vec2.js\n */\n\nconst Vec = typeof Float32Array !== 'undefined' ? Float32Array : Array\n\nexport const vec3 = (x = 0, y = 0, z = 0, out = new Vec(3)): Vec3 => {\n out[0] = x\n out[1] = y\n out[2] = z\n return out as Vec3\n}\n\nexport type Vec3 = [x: number, y: number, z: number]\n\nexport const addVec3 = (a: Vec3, b: Vec3, out = vec3()): Vec3 => {\n out[0] = a[0] + b[0]\n out[1] = a[1] + b[1]\n out[2] = a[2] + b[2]\n return out\n}\n\nexport const subVec3 = (a: Vec3, b: Vec3, out = vec3()): Vec3 => {\n out[0] = a[0] - b[0]\n out[1] = a[1] - b[1]\n out[2] = a[2] - b[2]\n return out\n}\n\nexport const cpVec3 = (a: Vec3, out = vec3()): Vec3 => {\n out[0] = a[0]\n out[1] = a[1]\n out[2] = a[2]\n return out\n}\n","import { EventState, event } from 'reev/src'\nimport { WindowSizeState } from './types'\n\nexport * from './types'\n\nexport const windowSizeEvent = () => {\n const mount = () => {\n self.change()\n window.addEventListener('resize', self.change)\n }\n\n const clean = () => {\n window.removeEventListener('resize', self.change)\n }\n\n const change = () => {\n self.callback()\n self.snapshot = [self]\n self.width = window.innerWidth\n self.height = window.innerHeight\n }\n\n const self = event({\n width: 1920,\n height: 1080,\n change,\n mount,\n clean,\n }) as EventState<WindowSizeState>\n\n self.snapshot = [self]\n\n return self\n}\n"],"mappings":"AAAA,OAAqB,SAAAA,MAAa,WAK3B,IAAMC,EAAe,IAAM,CA6B1B,IAAMC,EAAOF,EAAM,CACX,OA7BO,SAAY,CAEnB,IAAMG,EAAU,MAAM,UAAU,WAAW,EAC3CD,EAAK,MAAQC,EAAQ,MACrBD,EAAK,SAAWC,EAAQ,SACxBD,EAAK,aAAeC,EAAQ,aAC5BD,EAAK,gBAAkBC,EAAQ,gBAC/BD,EAAK,SAAW,CAACA,CAAI,EACrBA,EAAK,SAAS,CACtB,EAqBQ,MAnBM,IAAM,CAEZ,UAAU,WAAW,EAAE,KAAME,GAAgB,CACrCF,EAAK,OAASE,EACdA,EAAO,iBAAiB,cAAeF,EAAK,MAAM,EAClDE,EAAO,iBAAiB,iBAAkBF,EAAK,MAAM,CAC7D,CAAC,EACDA,EAAK,OAAO,CACpB,EAYQ,MAVM,IAAM,CACZ,IAAME,EAASF,EAAK,OACfE,IACLA,EAAO,oBAAoB,cAAeF,EAAK,MAAM,EACrDE,EAAO,oBAAoB,iBAAkBF,EAAK,MAAM,EAChE,CAMA,CAAC,EAED,OAAAA,EAAK,SAAW,CAACA,CAAI,EAEdA,CACf,EC3CA,OAAqB,SAAAG,MAAa,WAK3B,IAAMC,EAAiB,IAAM,CAqB5B,IAAMC,EAAOF,EAAM,CACX,UAAW,GACX,OAtBO,IAAM,CACb,UAAU,UAAU,SAAS,EAAE,KAAMG,GAAc,CAC3CD,EAAK,UAAYC,EACjBD,EAAK,SAAW,CAACA,CAAI,EACrBA,EAAK,SAAS,CACtB,CAAC,CACT,EAiBQ,MAfM,IAAM,CACZ,OAAO,iBAAiB,OAAQA,EAAK,MAAM,EAC3C,OAAO,iBAAiB,MAAOA,EAAK,MAAM,EAC1C,OAAO,iBAAiB,QAASA,EAAK,MAAM,CACpD,EAYQ,MAVM,IAAM,CACZ,OAAO,oBAAoB,OAAQA,EAAK,MAAM,EAC9C,OAAO,oBAAoB,MAAOA,EAAK,MAAM,EAC7C,OAAO,oBAAoB,QAASA,EAAK,MAAM,CACvD,CAOA,CAAC,EAED,OAAAA,EAAK,SAAW,CAACA,CAAI,EAEdA,CACf,ECpCA,OAAqB,SAAAE,MAAa,WAK3B,IAAMC,EAAmB,IAAM,CAkB9B,IAAMC,EAAOF,EAAM,CACX,OAlBO,IAAM,CACb,UAAU,YAAY,mBAAoBG,GAAgB,CAClDD,EAAK,YAAcC,EACnBD,EAAK,SAAW,CAACA,CAAI,EACrBA,EAAK,SAAS,CACtB,CAAC,CACT,EAaQ,MAXM,IAAM,CACZA,EAAK,OAAO,EACZA,EAAK,GAAK,UAAU,YAAY,cAAcA,EAAK,MAAM,CACjE,EASQ,MAPM,IAAM,CACR,OAAOA,EAAK,GAAO,KAAa,UAAU,YAAY,WAAWA,EAAK,EAAE,CACpF,CAMA,CAAC,EAED,OAAAA,EAAK,SAAW,CAACA,CAAI,EAEdA,CACf,EC5BO,IAAME,EAAkB,IAAM,CAAC,ECHtC,OAAqB,SAAAC,MAAa,WAI3B,IAAMC,EAAc,IAAM,CAgBzB,IAAMC,EAAOF,EAAM,CACX,OAhBO,IAAM,CACbE,EAAK,OAAS,UAAU,OACxBA,EAAK,SAAW,CAACA,CAAI,EACrBA,EAAK,SAAS,CACtB,EAaQ,MAXM,IAAM,CACZA,EAAK,OAAO,EACZ,OAAO,iBAAiB,SAAUA,EAAK,MAAM,EAC7C,OAAO,iBAAiB,UAAWA,EAAK,MAAM,CACtD,EAQQ,MAPM,IAAM,CACZ,OAAO,oBAAoB,SAAUA,EAAK,MAAM,EAChD,OAAO,oBAAoB,UAAWA,EAAK,MAAM,CACzD,CAKA,CAAC,EAED,OAAAA,EAAK,SAAW,CAACA,CAAI,EAEdA,CACf,EC9BA,OAAqB,SAAAC,MAAa,WCKlC,IAAMC,EAAM,OAAO,aAAiB,IAAc,aAAe,MAEpDC,EAAO,CAACC,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAAGC,EAAM,IAAIL,EAAI,CAAC,KACjDK,EAAI,CAAC,EAAIH,EACTG,EAAI,CAAC,EAAIF,EACTE,EAAI,CAAC,EAAID,EACFC,GAKFC,EAAU,CAACC,EAASC,EAASH,EAAMJ,EAAK,KAC7CI,EAAI,CAAC,EAAIE,EAAE,CAAC,EAAIC,EAAE,CAAC,EACnBH,EAAI,CAAC,EAAIE,EAAE,CAAC,EAAIC,EAAE,CAAC,EACnBH,EAAI,CAAC,EAAIE,EAAE,CAAC,EAAIC,EAAE,CAAC,EACZH,GAGFI,EAAU,CAACF,EAASC,EAASH,EAAMJ,EAAK,KAC7CI,EAAI,CAAC,EAAIE,EAAE,CAAC,EAAIC,EAAE,CAAC,EACnBH,EAAI,CAAC,EAAIE,EAAE,CAAC,EAAIC,EAAE,CAAC,EACnBH,EAAI,CAAC,EAAIE,EAAE,CAAC,EAAIC,EAAE,CAAC,EACZH,GDrBR,IAAMK,EAAc,IAAM,CACzB,IAAMC,EAAa,IAAM,CACjBC,EAAK,OAASA,EAAK,QAAU,GAC7BC,EAAK,EAAG,EAAG,EAAGD,EAAK,KAAK,EACxBC,EAAK,EAAG,EAAG,EAAGD,EAAK,MAAM,EACzBC,EAAK,EAAG,EAAG,EAAGD,EAAK,KAAK,EACxBC,EAAK,EAAG,EAAG,EAAGD,EAAK,QAAQ,CACnC,EAEME,EAAUC,GAAW,CACnBH,EAAK,QAAUA,EAAK,OACpBA,EAAK,OAASA,EAAK,MACnBA,EAAK,MAAQ,CAAC,IAAMG,EAAE,OAAS,IAAKA,EAAE,MAAQ,EAAGA,EAAE,OAAS,CAAC,EACzDH,EAAK,UACDI,EAAQJ,EAAK,MAAOA,EAAK,OAAQA,EAAK,KAAK,EAC3CK,EAAQL,EAAK,OAAQA,EAAK,MAAOA,EAAK,MAAM,EAC5CK,EAAQL,EAAK,OAAQA,EAAK,MAAOA,EAAK,QAAQ,GAEtDA,EAAK,SAAW,CAACA,CAAI,EACrBA,EAAK,SAAS,CACtB,EAEMM,EAAQ,IAAM,CACZP,EAAW,EACXC,EAAK,OAAS,GACd,OAAO,iBAAiB,oBAAqBA,EAAK,MAAM,CAChE,EAEMO,EAAQ,IAAM,CACZR,EAAW,EACX,OAAO,oBAAoB,oBAAqBC,EAAK,MAAM,CACnE,EAEMA,EAAOQ,EAAM,CACX,OAAQ,GACR,QAAS,GACT,OAAQP,EAAK,EACb,MAAOA,EAAK,EACZ,MAAOA,EAAK,EACZ,OAAQA,EAAK,EACb,SAAUA,EAAK,EACf,MAAAK,EACA,MAAAC,EACA,OAAAL,CACR,CAAC,EAED,OAAAF,EAAK,SAAW,CAACA,CAAI,EAEdA,CACf,EEvDA,OAAqB,SAAAS,MAAa,WAK3B,IAAMC,EAAkB,IAAM,CAiB7B,IAAMC,EAAOF,EAAM,CACX,MAAO,KACP,OAAQ,KACR,OAVO,IAAM,CACbE,EAAK,SAAS,EACdA,EAAK,SAAW,CAACA,CAAI,EACrBA,EAAK,MAAQ,OAAO,WACpBA,EAAK,OAAS,OAAO,WAC7B,EAMQ,MApBM,IAAM,CACZA,EAAK,OAAO,EACZ,OAAO,iBAAiB,SAAUA,EAAK,MAAM,CACrD,EAkBQ,MAhBM,IAAM,CACZ,OAAO,oBAAoB,SAAUA,EAAK,MAAM,CACxD,CAeA,CAAC,EAED,OAAAA,EAAK,SAAW,CAACA,CAAI,EAEdA,CACf","names":["event","batteryEvent","self","battery","target","event","clipboardEvent","self","clipboard","event","geolocationEvent","self","geolocation","mediaQueryEvent","event","onlineEvent","self","event","Vec","vec3","x","y","z","out","addVec3","a","b","subVec3","orientEvent","initValues","self","vec3","change","e","subVec3","addVec3","mount","clean","event","event","windowSizeEvent","self"]}
package/dist/react.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { B as BatteryState, C as ClipboardState, G as GeolocationState, O as OnlineState, a as OrientState, W as WindowSizeState } from './types-5626eef1.js';
1
+ import { B as BatteryState, C as ClipboardState, G as GeolocationState, O as OnlineState, a as OrientState, W as WindowSizeState } from './types-144e414c.js';
2
2
 
3
3
  declare const useBattery: () => BatteryState;
4
4
 
package/dist/react.js CHANGED
@@ -1,2 +1,2 @@
1
- var f=Object.defineProperty;var j=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var q=Object.prototype.hasOwnProperty;var D=(t,o)=>{for(var r in o)f(t,r,{get:o[r],enumerable:!0})},I=(t,o,r,e)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of k(o))!q.call(t,n)&&n!==r&&f(t,n,{get:()=>o[n],enumerable:!(e=j(o,n))||e.enumerable});return t};var J=t=>I(f({},"__esModule",{value:!0}),t);var ie={};D(ie,{useBattery:()=>N,useClipboard:()=>U,useGeolocation:()=>Y,useMediaQuery:()=>Z,useOnline:()=>ee,useOrient:()=>oe,useWindowSize:()=>ae});module.exports=J(ie);var g=require("reev"),d=()=>{let e=(0,g.event)({onChange:async()=>{let n=await navigator.getBattery();e.level=n.level,e.charging=n.charging,e.chargingTime=n.chargingTime,e.dischargingTime=n.dischargingTime,e.snapshot=[e],e.callback()},onMount:()=>{navigator.getBattery().then(n=>{e.target=n,n.addEventListener("levelchange",e.onChange),n.addEventListener("chargingchange",e.onChange)}),e.onChange()},onClean:()=>{let n=e.target;n&&(n.removeEventListener("levelchange",e.onChange),n.removeEventListener("chargingchange",e.onChange))}});return e.snapshot=[e],e};var u=require("react"),i,K=(t=()=>{})=>(i({callback:t}).onMount(),()=>i({callback:t}).onClean()),S=()=>i.snapshot,N=()=>{i||(i=d());let[t]=(0,u.useSyncExternalStore)(K,S,S);return t};var x=require("react");var E=require("reev"),C=()=>{let e=(0,E.event)({clipboard:"",onChange:()=>{navigator.clipboard.readText().then(n=>{e.clipboard=n,e.snapshot=[e],e.callback()})},onMount:()=>{window.addEventListener("copy",e.onChange),window.addEventListener("cut",e.onChange),window.addEventListener("paste",e.onChange)},onClean:()=>{window.removeEventListener("copy",e.onChange),window.removeEventListener("cut",e.onChange),window.removeEventListener("paste",e.onChange)}});return e.snapshot=[e],e};var s,R=(t=()=>{})=>(s({callback:t}).onMount(),()=>s({callback:t}).onClean()),w=()=>s.snapshot,U=()=>{s||(s=C());let[t]=(0,x.useSyncExternalStore)(R,w,w);return t};var M=require("react");var y=require("reev"),b=()=>{let e=(0,y.event)({onChange:()=>{navigator.geolocation.getCurrentPosition(n=>{e.geolocation=n,e.snapshot=[e],e.callback()})},onMount:()=>{e.onChange(),e.id=navigator.geolocation.watchPosition(e.onChange)},onClean:()=>{typeof e.id<"u"&&navigator.geolocation.clearWatch(e.id)}});return e.snapshot=[e],e};var c,X=(t=()=>{})=>(c({callback:t}).onMount(),()=>c({callback:t}).onClean()),L=()=>c.snapshot,Y=()=>{c||(c=b());let[t]=(0,M.useSyncExternalStore)(X,L,L);return t};var Z=()=>{};var _=require("react");var V=require("reev"),z=()=>{let e=(0,V.event)({onChange:()=>{e.online=navigator.onLine,e.snapshot=[e],e.callback()},onMount:()=>{e.onChange(),window.addEventListener("online",e.onChange),window.addEventListener("offline",e.onChange)},onClean:()=>{window.removeEventListener("online",e.onChange),window.removeEventListener("offline",e.onChange)}});return e.snapshot=[e],e};var m,$=(t=()=>{})=>(m({callback:t}).onMount(),()=>m({callback:t}).onClean()),O=()=>m.snapshot,ee=()=>{m||(m=z());let[t]=(0,_.useSyncExternalStore)($,O,O);return t};var A=require("react");var W=require("reev");var te=typeof Float32Array<"u"?Float32Array:Array,a=(t=0,o=0,r=0,e=new te(3))=>(e[0]=t,e[1]=o,e[2]=r,e),h=(t,o,r=a())=>(r[0]=t[0]+o[0],r[1]=t[1]+o[1],r[2]=t[2]+o[2],r),B=(t,o,r=a())=>(r[0]=t[0]-o[0],r[1]=t[1]-o[1],r[2]=t[2]-o[2],r);var G=()=>{let t=()=>{n.active=n._active=!1,a(0,0,0,n.value),a(0,0,0,n._value),a(0,0,0,n.delta),a(0,0,0,n.movement)},o=v=>{n._active=n.active,n._value=n.value,n.value=[90-(v.alpha??90),v.beta??0,v.gamma??0],n._active&&(B(n.value,n._value,n.delta),h(n.offset,n.delta,n.offset),h(n.offset,n.delta,n.movement)),n.snapshot=[n],n.callback()},r=()=>{t(),n.active=!0,window.addEventListener("deviceorientation",n.onChange)},e=()=>{t(),window.removeEventListener("deviceorientation",n.onChange)},n=(0,W.event)({active:!1,_active:!1,_value:a(),value:a(),delta:a(),offset:a(),movement:a(),onMount:r,onClean:e,onChange:o});return n.snapshot=[n],n};var p,ne=(t=()=>{})=>(p({callback:t}).onMount(),()=>p({callback:t}).onClean()),T=()=>p.snapshot,oe=()=>{p||(p=G());let[t]=(0,A.useSyncExternalStore)(ne,T,T);return t};var Q=require("react");var F=require("reev"),P=()=>{let e=(0,F.event)({width:1920,height:1080,onChange:()=>{e.callback(),e.snapshot=[e],e.width=window.innerWidth,e.height=window.innerHeight},onMount:()=>{e.onChange(),window.addEventListener("resize",e.onChange)},onClean:()=>{window.removeEventListener("resize",e.onChange)}});return e.snapshot=[e],e};var l,re=(t=()=>{})=>(l({callback:t}).onMount(),()=>l({callback:t}).onClean()),H=()=>l.snapshot,ae=()=>{l||(l=P());let[t]=(0,Q.useSyncExternalStore)(re,H,H);return t};0&&(module.exports={useBattery,useClipboard,useGeolocation,useMediaQuery,useOnline,useOrient,useWindowSize});
1
+ var f=Object.defineProperty;var j=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var q=Object.prototype.hasOwnProperty;var D=(t,o)=>{for(var r in o)f(t,r,{get:o[r],enumerable:!0})},I=(t,o,r,e)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of k(o))!q.call(t,n)&&n!==r&&f(t,n,{get:()=>o[n],enumerable:!(e=j(o,n))||e.enumerable});return t};var J=t=>I(f({},"__esModule",{value:!0}),t);var ie={};D(ie,{useBattery:()=>N,useClipboard:()=>U,useGeolocation:()=>Y,useMediaQuery:()=>Z,useOnline:()=>ee,useOrient:()=>oe,useWindowSize:()=>ae});module.exports=J(ie);var g=require("reev/src"),d=()=>{let e=(0,g.event)({change:async()=>{let n=await navigator.getBattery();e.level=n.level,e.charging=n.charging,e.chargingTime=n.chargingTime,e.dischargingTime=n.dischargingTime,e.snapshot=[e],e.callback()},mount:()=>{navigator.getBattery().then(n=>{e.target=n,n.addEventListener("levelchange",e.change),n.addEventListener("chargingchange",e.change)}),e.change()},clean:()=>{let n=e.target;n&&(n.removeEventListener("levelchange",e.change),n.removeEventListener("chargingchange",e.change))}});return e.snapshot=[e],e};var u=require("react"),i,K=(t=()=>{})=>(i({callback:t}).mount(),()=>i({callback:t}).clean()),S=()=>i.snapshot,N=()=>{i||(i=d());let[t]=(0,u.useSyncExternalStore)(K,S,S);return t};var y=require("react");var E=require("reev/src"),w=()=>{let e=(0,E.event)({clipboard:"",change:()=>{navigator.clipboard.readText().then(n=>{e.clipboard=n,e.snapshot=[e],e.callback()})},mount:()=>{window.addEventListener("copy",e.change),window.addEventListener("cut",e.change),window.addEventListener("paste",e.change)},clean:()=>{window.removeEventListener("copy",e.change),window.removeEventListener("cut",e.change),window.removeEventListener("paste",e.change)}});return e.snapshot=[e],e};var c,R=(t=()=>{})=>(c({callback:t}).mount(),()=>c({callback:t}).clean()),x=()=>c.snapshot,U=()=>{c||(c=w());let[t]=(0,y.useSyncExternalStore)(R,x,x);return t};var z=require("react");var b=require("reev/src"),L=()=>{let e=(0,b.event)({change:()=>{navigator.geolocation.getCurrentPosition(n=>{e.geolocation=n,e.snapshot=[e],e.callback()})},mount:()=>{e.change(),e.id=navigator.geolocation.watchPosition(e.change)},clean:()=>{typeof e.id<"u"&&navigator.geolocation.clearWatch(e.id)}});return e.snapshot=[e],e};var s,X=(t=()=>{})=>(s({callback:t}).mount(),()=>s({callback:t}).clean()),V=()=>s.snapshot,Y=()=>{s||(s=L());let[t]=(0,z.useSyncExternalStore)(X,V,V);return t};var Z=()=>{};var W=require("react");var O=require("reev/src"),_=()=>{let e=(0,O.event)({change:()=>{e.online=navigator.onLine,e.snapshot=[e],e.callback()},mount:()=>{e.change(),window.addEventListener("online",e.change),window.addEventListener("offline",e.change)},clean:()=>{window.removeEventListener("online",e.change),window.removeEventListener("offline",e.change)}});return e.snapshot=[e],e};var m,$=(t=()=>{})=>(m({callback:t}).mount(),()=>m({callback:t}).clean()),B=()=>m.snapshot,ee=()=>{m||(m=_());let[t]=(0,W.useSyncExternalStore)($,B,B);return t};var F=require("react");var G=require("reev/src");var te=typeof Float32Array<"u"?Float32Array:Array,a=(t=0,o=0,r=0,e=new te(3))=>(e[0]=t,e[1]=o,e[2]=r,e),h=(t,o,r=a())=>(r[0]=t[0]+o[0],r[1]=t[1]+o[1],r[2]=t[2]+o[2],r),C=(t,o,r=a())=>(r[0]=t[0]-o[0],r[1]=t[1]-o[1],r[2]=t[2]-o[2],r);var T=()=>{let t=()=>{n.active=n._active=!1,a(0,0,0,n.value),a(0,0,0,n._value),a(0,0,0,n.delta),a(0,0,0,n.movement)},o=v=>{n._active=n.active,n._value=n.value,n.value=[90-(v.alpha??90),v.beta??0,v.gamma??0],n._active&&(C(n.value,n._value,n.delta),h(n.offset,n.delta,n.offset),h(n.offset,n.delta,n.movement)),n.snapshot=[n],n.callback()},r=()=>{t(),n.active=!0,window.addEventListener("deviceorientation",n.change)},e=()=>{t(),window.removeEventListener("deviceorientation",n.change)},n=(0,G.event)({active:!1,_active:!1,_value:a(),value:a(),delta:a(),offset:a(),movement:a(),mount:r,clean:e,change:o});return n.snapshot=[n],n};var p,ne=(t=()=>{})=>(p({callback:t}).mount(),()=>p({callback:t}).clean()),A=()=>p.snapshot,oe=()=>{p||(p=T());let[t]=(0,F.useSyncExternalStore)(ne,A,A);return t};var Q=require("react");var P=require("reev/src"),H=()=>{let e=(0,P.event)({width:1920,height:1080,change:()=>{e.callback(),e.snapshot=[e],e.width=window.innerWidth,e.height=window.innerHeight},mount:()=>{e.change(),window.addEventListener("resize",e.change)},clean:()=>{window.removeEventListener("resize",e.change)}});return e.snapshot=[e],e};var l,re=(t=()=>{})=>(l({callback:t}).mount(),()=>l({callback:t}).clean()),M=()=>l.snapshot,ae=()=>{l||(l=H());let[t]=(0,Q.useSyncExternalStore)(re,M,M);return t};0&&(module.exports={useBattery,useClipboard,useGeolocation,useMediaQuery,useOnline,useOrient,useWindowSize});
2
2
  //# sourceMappingURL=react.js.map
package/dist/react.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../react.ts","../battery/index.ts","../battery/react.ts","../clipboard/react.ts","../clipboard/index.ts","../geolocation/react.ts","../geolocation/index.ts","../mediaQuery/react.ts","../online/react.ts","../online/index.ts","../orient/react.ts","../orient/index.ts","../orient/utils.ts","../windowSize/react.ts","../windowSize/index.ts"],"sourcesContent":["export * from './battery/react'\nexport * from './clipboard/react'\nexport * from './geolocation/react'\nexport * from './mediaQuery/react'\nexport * from './online/react'\nexport * from './orient/react'\nexport * from './windowSize/react'\n","import { EventState, event } from 'reev'\nimport { BatteryState } from './types'\n\nexport const batteryEvent = () => {\n const onChange = async () => {\n // @ts-ignore\n const battery = await navigator.getBattery()\n self.level = battery.level\n self.charging = battery.charging\n self.chargingTime = battery.chargingTime\n self.dischargingTime = battery.dischargingTime\n self.snapshot = [self]\n self.callback()\n }\n\n const onMount = () => {\n // @ts-ignore\n navigator.getBattery().then((target: any) => {\n self.target = target\n target.addEventListener('levelchange', self.onChange)\n target.addEventListener('chargingchange', self.onChange)\n })\n self.onChange()\n }\n\n const onClean = () => {\n const target = self.target\n if (!target) return\n target.removeEventListener('levelchange', self.onChange)\n target.removeEventListener('chargingchange', self.onChange)\n }\n\n const self = event({\n onChange,\n onMount,\n onClean,\n }) as EventState<BatteryState>\n\n self.snapshot = [self]\n\n return self\n}\n","import { batteryEvent } from '.'\nimport { useSyncExternalStore } from 'react'\nimport { BatteryState } from './types'\nimport { EventState } from 'reev'\n\nlet self: EventState<BatteryState>\n\nconst subscribe = (callback = () => {}) => {\n self({ callback }).onMount()\n return () => self({ callback }).onClean()\n}\n\nconst getSnapshot = () => self.snapshot\n\nexport const useBattery = () => {\n if (!self) self = batteryEvent()\n const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)\n return ret\n}\n","import { useSyncExternalStore } from 'react'\nimport { clipboardEvent } from '.'\nimport { EventState } from 'reev'\nimport { ClipboardState } from './types'\n\nlet self: EventState<ClipboardState>\n\nconst subscribe = (callback = () => {}) => {\n self({ callback }).onMount()\n return () => self({ callback }).onClean()\n}\n\nconst getSnapshot = () => self.snapshot\n\nexport const useClipboard = () => {\n if (!self) self = clipboardEvent()\n const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)\n return ret\n}\n","import { EventState, event } from 'reev'\nimport { ClipboardState } from './types'\n\nexport const clipboardEvent = () => {\n const onChange = () => {\n navigator.clipboard.readText().then((clipboard) => {\n self.clipboard = clipboard\n self.snapshot = [self]\n self.callback()\n })\n }\n\n const onMount = () => {\n window.addEventListener('copy', self.onChange)\n window.addEventListener('cut', self.onChange)\n window.addEventListener('paste', self.onChange)\n }\n\n const onClean = () => {\n window.removeEventListener('copy', self.onChange)\n window.removeEventListener('cut', self.onChange)\n window.removeEventListener('paste', self.onChange)\n }\n\n const self = event({\n clipboard: '',\n onChange,\n onMount,\n onClean,\n }) as EventState<ClipboardState>\n\n self.snapshot = [self]\n\n return self\n}\n","import { EventState } from 'reev'\nimport { useSyncExternalStore } from 'react'\nimport { GeolocationState } from './types'\nimport { geolocationEvent } from '.'\n\nlet self: EventState<GeolocationState>\n\nconst subscribe = (callback = () => {}) => {\n self({ callback }).onMount()\n return () => self({ callback }).onClean()\n}\n\nconst getSnapshot = () => self.snapshot\n\nexport const useGeolocation = () => {\n if (!self) self = geolocationEvent()\n const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)\n return ret\n}\n","import { EventState, event } from 'reev'\nimport { GeolocationState } from './types'\n\nexport const geolocationEvent = () => {\n const onChange = () => {\n navigator.geolocation.getCurrentPosition((geolocation) => {\n self.geolocation = geolocation\n self.snapshot = [self]\n self.callback()\n })\n }\n\n const onMount = () => {\n self.onChange()\n self.id = navigator.geolocation.watchPosition(self.onChange)\n }\n\n const onClean = () => {\n if (typeof self.id !== 'undefined')\n navigator.geolocation.clearWatch(self.id)\n }\n\n const self = event({\n onChange,\n onMount,\n onClean,\n }) as EventState<GeolocationState>\n\n self.snapshot = [self]\n\n return self\n}\n","export const useMediaQuery = () => {}\n","import { useSyncExternalStore } from 'react'\nimport { onlineEvent } from '.'\nimport { EventState } from 'reev'\nimport { OnlineState } from './types'\n\nlet self: EventState<OnlineState>\n\nconst subscribe = (callback = () => {}) => {\n self({ callback }).onMount()\n return () => self({ callback }).onClean()\n}\n\nconst getSnapshot = () => self.snapshot\n\nexport const useOnline = () => {\n if (!self) self = onlineEvent()\n const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)\n return ret\n}\n","import { OnlineState } from './types'\nimport { EventState, event } from 'reev'\n\nexport const onlineEvent = () => {\n const onChange = () => {\n self.online = navigator.onLine\n self.snapshot = [self]\n self.callback()\n }\n\n const onMount = () => {\n self.onChange()\n window.addEventListener('online', self.onChange)\n window.addEventListener('offline', self.onChange)\n }\n const onClean = () => {\n window.removeEventListener('online', self.onChange)\n window.removeEventListener('offline', self.onChange)\n }\n const self = event({\n onChange,\n onMount,\n onClean,\n }) as EventState<OnlineState>\n\n self.snapshot = [self]\n\n return self\n}\n","import { useSyncExternalStore } from 'react'\nimport { orientEvent } from '.'\nimport { OrientState } from './types'\nimport { EventState } from 'reev'\n\nlet self: EventState<OrientState>\n\nconst subscribe = (callback = () => {}) => {\n self({ callback }).onMount()\n return () => self({ callback }).onClean()\n}\n\nconst getSnapshot = () => self.snapshot\n\nexport const useOrient = () => {\n if (!self) self = orientEvent()\n const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n return ret\n}\n","import { EventState, event } from 'reev'\nimport { OrientState } from './types'\nimport { addVec3, subVec3, vec3 } from './utils'\n\nexport const orientEvent = () => {\n const initValues = () => {\n self.active = self._active = false\n vec3(0, 0, 0, self.value)\n vec3(0, 0, 0, self._value)\n vec3(0, 0, 0, self.delta)\n vec3(0, 0, 0, self.movement)\n }\n\n const onChange = (e: any) => {\n self._active = self.active\n self._value = self.value\n self.value = [90 - (e.alpha ?? 90), e.beta ?? 0, e.gamma ?? 0]\n if (self._active) {\n subVec3(self.value, self._value, self.delta)\n addVec3(self.offset, self.delta, self.offset)\n addVec3(self.offset, self.delta, self.movement)\n }\n self.snapshot = [self]\n self.callback()\n }\n\n const onMount = () => {\n initValues()\n self.active = true\n window.addEventListener(\"deviceorientation\", self.onChange);\n }\n\n const onClean = () => {\n initValues()\n window.removeEventListener(\"deviceorientation\", self.onChange);\n }\n\n const self = event({\n active: false,\n _active: false,\n _value: vec3(),\n value: vec3(),\n delta: vec3(),\n offset: vec3(),\n movement: vec3(),\n onMount,\n onClean,\n onChange,\n }) as EventState<OrientState>\n\n self.snapshot = [self]\n\n return self\n}\n","/**\n * CALCULATE VECTOR\n * REF: https://github.com/toji/gl-matrix/blob/master/src/vec2.js\n */\n\nconst Vec = typeof Float32Array !== 'undefined' ? Float32Array : Array\n\nexport const vec3 = (x = 0, y = 0, z = 0, out = new Vec(3)): Vec3 => {\n out[0] = x\n out[1] = y\n out[2] = z\n return out as Vec3\n}\n\nexport type Vec3 = [x: number, y: number, z: number]\n\nexport const addVec3 = (a: Vec3, b: Vec3, out = vec3()): Vec3 => {\n out[0] = a[0] + b[0]\n out[1] = a[1] + b[1]\n out[2] = a[2] + b[2]\n return out\n}\n\nexport const subVec3 = (a: Vec3, b: Vec3, out = vec3()): Vec3 => {\n out[0] = a[0] - b[0]\n out[1] = a[1] - b[1]\n out[2] = a[2] - b[2]\n return out\n}\n\nexport const cpVec3 = (a: Vec3, out = vec3()): Vec3 => {\n out[0] = a[0]\n out[1] = a[1]\n out[2] = a[2]\n return out\n}\n","import { useSyncExternalStore } from 'react'\nimport { windowSizeEvent } from './index'\nimport { WindowSizeState } from './types'\nimport { EventState } from 'reev'\n\nlet self: EventState<WindowSizeState>\n\nconst subscribe = (callback = () => {}) => {\n self({ callback }).onMount()\n return () => self({ callback }).onClean()\n}\n\nconst getSnapshot = () => self.snapshot\n\nexport const useWindowSize = () => {\n if (!self) self = windowSizeEvent()\n const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)\n return ret\n}\n","import { EventState, event } from 'reev'\nimport { WindowSizeState } from './types'\n\nexport const windowSizeEvent = () => {\n const onMount = () => {\n self.onChange()\n window.addEventListener('resize', self.onChange)\n }\n\n const onClean = () => {\n window.removeEventListener('resize', self.onChange)\n }\n\n const onChange = () => {\n self.callback()\n self.snapshot = [self]\n self.width = window.innerWidth\n self.height = window.innerHeight\n }\n\n const self = event({\n width: 1920,\n height: 1080,\n onChange,\n onMount,\n onClean,\n }) as EventState<WindowSizeState>\n\n self.snapshot = [self]\n\n return self\n}\n"],"mappings":"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","names":["react_exports","__export","useBattery","useClipboard","useGeolocation","useMediaQuery","useOnline","useOrient","useWindowSize","__toCommonJS","import_reev","batteryEvent","self","battery","target","import_react","self","subscribe","callback","getSnapshot","useBattery","batteryEvent","ret","import_react","import_reev","clipboardEvent","self","clipboard","self","subscribe","callback","getSnapshot","useClipboard","clipboardEvent","ret","import_react","import_reev","geolocationEvent","self","geolocation","self","subscribe","callback","getSnapshot","useGeolocation","geolocationEvent","ret","useMediaQuery","import_react","import_reev","onlineEvent","self","self","subscribe","callback","getSnapshot","useOnline","onlineEvent","ret","import_react","import_reev","Vec","vec3","x","y","z","out","addVec3","a","b","subVec3","orientEvent","initValues","self","vec3","onChange","e","subVec3","addVec3","onMount","onClean","self","subscribe","callback","getSnapshot","useOrient","orientEvent","ret","import_react","import_reev","windowSizeEvent","self","self","subscribe","callback","getSnapshot","useWindowSize","windowSizeEvent","ret"]}
1
+ {"version":3,"sources":["../src/react.ts","../src/battery/index.ts","../src/battery/react.ts","../src/clipboard/react.ts","../src/clipboard/index.ts","../src/geolocation/react.ts","../src/geolocation/index.ts","../src/mediaQuery/react.ts","../src/online/react.ts","../src/online/index.ts","../src/orient/react.ts","../src/orient/index.ts","../src/orient/utils.ts","../src/windowSize/react.ts","../src/windowSize/index.ts"],"sourcesContent":["export * from './battery/react'\nexport * from './clipboard/react'\nexport * from './geolocation/react'\nexport * from './mediaQuery/react'\nexport * from './online/react'\nexport * from './orient/react'\nexport * from './windowSize/react'\n","import { EventState, event } from 'reev/src'\nimport { BatteryState } from './types'\n\nexport * from './types'\n\nexport const batteryEvent = () => {\n const change = async () => {\n // @ts-ignore\n const battery = await navigator.getBattery()\n self.level = battery.level\n self.charging = battery.charging\n self.chargingTime = battery.chargingTime\n self.dischargingTime = battery.dischargingTime\n self.snapshot = [self]\n self.callback()\n }\n\n const mount = () => {\n // @ts-ignore\n navigator.getBattery().then((target: any) => {\n self.target = target\n target.addEventListener('levelchange', self.change)\n target.addEventListener('chargingchange', self.change)\n })\n self.change()\n }\n\n const clean = () => {\n const target = self.target\n if (!target) return\n target.removeEventListener('levelchange', self.change)\n target.removeEventListener('chargingchange', self.change)\n }\n\n const self = event({\n change,\n mount,\n clean,\n }) as EventState<BatteryState>\n\n self.snapshot = [self]\n\n return self\n}\n","import { batteryEvent } from '.'\nimport { useSyncExternalStore } from 'react'\nimport { BatteryState } from './types'\nimport { EventState } from 'reev/src'\n\nlet self: EventState<BatteryState>\n\nconst subscribe = (callback = () => {}) => {\n self({ callback }).mount()\n return () => self({ callback }).clean()\n}\n\nconst getSnapshot = () => self.snapshot\n\nexport const useBattery = () => {\n if (!self) self = batteryEvent()\n const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)\n return ret\n}\n","import { useSyncExternalStore } from 'react'\nimport { clipboardEvent } from '.'\nimport { EventState } from 'reev/src'\nimport { ClipboardState } from './types'\n\nlet self: EventState<ClipboardState>\n\nconst subscribe = (callback = () => {}) => {\n self({ callback }).mount()\n return () => self({ callback }).clean()\n}\n\nconst getSnapshot = () => self.snapshot\n\nexport const useClipboard = () => {\n if (!self) self = clipboardEvent()\n const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)\n return ret\n}\n","import { EventState, event } from 'reev/src'\nimport { ClipboardState } from './types'\n\nexport * from './types'\n\nexport const clipboardEvent = () => {\n const change = () => {\n navigator.clipboard.readText().then((clipboard) => {\n self.clipboard = clipboard\n self.snapshot = [self]\n self.callback()\n })\n }\n\n const mount = () => {\n window.addEventListener('copy', self.change)\n window.addEventListener('cut', self.change)\n window.addEventListener('paste', self.change)\n }\n\n const clean = () => {\n window.removeEventListener('copy', self.change)\n window.removeEventListener('cut', self.change)\n window.removeEventListener('paste', self.change)\n }\n\n const self = event({\n clipboard: '',\n change,\n mount,\n clean,\n }) as EventState<ClipboardState>\n\n self.snapshot = [self]\n\n return self\n}\n","import { EventState } from 'reev/src'\nimport { useSyncExternalStore } from 'react'\nimport { GeolocationState } from './types'\nimport { geolocationEvent } from '.'\n\nlet self: EventState<GeolocationState>\n\nconst subscribe = (callback = () => {}) => {\n self({ callback }).mount()\n return () => self({ callback }).clean()\n}\n\nconst getSnapshot = () => self.snapshot\n\nexport const useGeolocation = () => {\n if (!self) self = geolocationEvent()\n const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)\n return ret\n}\n","import { EventState, event } from 'reev/src'\nimport { GeolocationState } from './types'\n\nexport * from './types'\n\nexport const geolocationEvent = () => {\n const change = () => {\n navigator.geolocation.getCurrentPosition((geolocation) => {\n self.geolocation = geolocation\n self.snapshot = [self]\n self.callback()\n })\n }\n\n const mount = () => {\n self.change()\n self.id = navigator.geolocation.watchPosition(self.change)\n }\n\n const clean = () => {\n if (typeof self.id !== 'undefined') navigator.geolocation.clearWatch(self.id)\n }\n\n const self = event({\n change,\n mount,\n clean,\n }) as EventState<GeolocationState>\n\n self.snapshot = [self]\n\n return self\n}\n","export const useMediaQuery = () => {}\n","import { useSyncExternalStore } from 'react'\nimport { onlineEvent } from '.'\nimport { EventState } from 'reev/src'\nimport { OnlineState } from './types'\n\nlet self: EventState<OnlineState>\n\nconst subscribe = (callback = () => {}) => {\n self({ callback }).mount()\n return () => self({ callback }).clean()\n}\n\nconst getSnapshot = () => self.snapshot\n\nexport const useOnline = () => {\n if (!self) self = onlineEvent()\n const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)\n return ret\n}\n","import { OnlineState } from './types'\nimport { EventState, event } from 'reev/src'\n\nexport * from './types'\n\nexport const onlineEvent = () => {\n const change = () => {\n self.online = navigator.onLine\n self.snapshot = [self]\n self.callback()\n }\n\n const mount = () => {\n self.change()\n window.addEventListener('online', self.change)\n window.addEventListener('offline', self.change)\n }\n const clean = () => {\n window.removeEventListener('online', self.change)\n window.removeEventListener('offline', self.change)\n }\n const self = event({\n change,\n mount,\n clean,\n }) as EventState<OnlineState>\n\n self.snapshot = [self]\n\n return self\n}\n","import { useSyncExternalStore } from 'react'\nimport { orientEvent } from '.'\nimport { OrientState } from './types'\nimport { EventState } from 'reev/src'\n\nlet self: EventState<OrientState>\n\nconst subscribe = (callback = () => {}) => {\n self({ callback }).mount()\n return () => self({ callback }).clean()\n}\n\nconst getSnapshot = () => self.snapshot\n\nexport const useOrient = () => {\n if (!self) self = orientEvent()\n const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)\n return ret\n}\n","import { EventState, event } from 'reev/src'\nimport { OrientState } from './types'\nimport { addVec3, subVec3, vec3 } from './utils'\n\nexport * from './types'\n\nexport const orientEvent = () => {\n const initValues = () => {\n self.active = self._active = false\n vec3(0, 0, 0, self.value)\n vec3(0, 0, 0, self._value)\n vec3(0, 0, 0, self.delta)\n vec3(0, 0, 0, self.movement)\n }\n\n const change = (e: any) => {\n self._active = self.active\n self._value = self.value\n self.value = [90 - (e.alpha ?? 90), e.beta ?? 0, e.gamma ?? 0]\n if (self._active) {\n subVec3(self.value, self._value, self.delta)\n addVec3(self.offset, self.delta, self.offset)\n addVec3(self.offset, self.delta, self.movement)\n }\n self.snapshot = [self]\n self.callback()\n }\n\n const mount = () => {\n initValues()\n self.active = true\n window.addEventListener('deviceorientation', self.change)\n }\n\n const clean = () => {\n initValues()\n window.removeEventListener('deviceorientation', self.change)\n }\n\n const self = event({\n active: false,\n _active: false,\n _value: vec3(),\n value: vec3(),\n delta: vec3(),\n offset: vec3(),\n movement: vec3(),\n mount,\n clean,\n change,\n }) as EventState<OrientState>\n\n self.snapshot = [self]\n\n return self\n}\n","/**\n * CALCULATE VECTOR\n * REF: https://github.com/toji/gl-matrix/blob/master/src/vec2.js\n */\n\nconst Vec = typeof Float32Array !== 'undefined' ? Float32Array : Array\n\nexport const vec3 = (x = 0, y = 0, z = 0, out = new Vec(3)): Vec3 => {\n out[0] = x\n out[1] = y\n out[2] = z\n return out as Vec3\n}\n\nexport type Vec3 = [x: number, y: number, z: number]\n\nexport const addVec3 = (a: Vec3, b: Vec3, out = vec3()): Vec3 => {\n out[0] = a[0] + b[0]\n out[1] = a[1] + b[1]\n out[2] = a[2] + b[2]\n return out\n}\n\nexport const subVec3 = (a: Vec3, b: Vec3, out = vec3()): Vec3 => {\n out[0] = a[0] - b[0]\n out[1] = a[1] - b[1]\n out[2] = a[2] - b[2]\n return out\n}\n\nexport const cpVec3 = (a: Vec3, out = vec3()): Vec3 => {\n out[0] = a[0]\n out[1] = a[1]\n out[2] = a[2]\n return out\n}\n","import { useSyncExternalStore } from 'react'\nimport { windowSizeEvent } from './index'\nimport { WindowSizeState } from './types'\nimport { EventState } from 'reev/src'\n\nlet self: EventState<WindowSizeState>\n\nconst subscribe = (callback = () => {}) => {\n self({ callback }).mount()\n return () => self({ callback }).clean()\n}\n\nconst getSnapshot = () => self.snapshot\n\nexport const useWindowSize = () => {\n if (!self) self = windowSizeEvent()\n const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)\n return ret\n}\n","import { EventState, event } from 'reev/src'\nimport { WindowSizeState } from './types'\n\nexport * from './types'\n\nexport const windowSizeEvent = () => {\n const mount = () => {\n self.change()\n window.addEventListener('resize', self.change)\n }\n\n const clean = () => {\n window.removeEventListener('resize', self.change)\n }\n\n const change = () => {\n self.callback()\n self.snapshot = [self]\n self.width = window.innerWidth\n self.height = window.innerHeight\n }\n\n const self = event({\n width: 1920,\n height: 1080,\n change,\n mount,\n clean,\n }) as EventState<WindowSizeState>\n\n self.snapshot = [self]\n\n return self\n}\n"],"mappings":"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","names":["react_exports","__export","useBattery","useClipboard","useGeolocation","useMediaQuery","useOnline","useOrient","useWindowSize","__toCommonJS","import_src","batteryEvent","self","battery","target","import_react","self","subscribe","callback","getSnapshot","useBattery","batteryEvent","ret","import_react","import_src","clipboardEvent","self","clipboard","self","subscribe","callback","getSnapshot","useClipboard","clipboardEvent","ret","import_react","import_src","geolocationEvent","self","geolocation","self","subscribe","callback","getSnapshot","useGeolocation","geolocationEvent","ret","useMediaQuery","import_react","import_src","onlineEvent","self","self","subscribe","callback","getSnapshot","useOnline","onlineEvent","ret","import_react","import_src","Vec","vec3","x","y","z","out","addVec3","a","b","subVec3","orientEvent","initValues","self","vec3","change","e","subVec3","addVec3","mount","clean","self","subscribe","callback","getSnapshot","useOrient","orientEvent","ret","import_react","import_src","windowSizeEvent","self","self","subscribe","callback","getSnapshot","useWindowSize","windowSizeEvent","ret"]}
package/dist/react.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{event as V}from"reev";var h=()=>{let e=V({onChange:async()=>{let n=await navigator.getBattery();e.level=n.level,e.charging=n.charging,e.chargingTime=n.chargingTime,e.dischargingTime=n.dischargingTime,e.snapshot=[e],e.callback()},onMount:()=>{navigator.getBattery().then(n=>{e.target=n,n.addEventListener("levelchange",e.onChange),n.addEventListener("chargingchange",e.onChange)}),e.onChange()},onClean:()=>{let n=e.target;n&&(n.removeEventListener("levelchange",e.onChange),n.removeEventListener("chargingchange",e.onChange))}});return e.snapshot=[e],e};import{useSyncExternalStore as z}from"react";var i,O=(t=()=>{})=>(i({callback:t}).onMount(),()=>i({callback:t}).onClean()),g=()=>i.snapshot,Y=()=>{i||(i=h());let[t]=z(O,g,g);return t};import{useSyncExternalStore as B}from"react";import{event as _}from"reev";var d=()=>{let e=_({clipboard:"",onChange:()=>{navigator.clipboard.readText().then(n=>{e.clipboard=n,e.snapshot=[e],e.callback()})},onMount:()=>{window.addEventListener("copy",e.onChange),window.addEventListener("cut",e.onChange),window.addEventListener("paste",e.onChange)},onClean:()=>{window.removeEventListener("copy",e.onChange),window.removeEventListener("cut",e.onChange),window.removeEventListener("paste",e.onChange)}});return e.snapshot=[e],e};var s,W=(t=()=>{})=>(s({callback:t}).onMount(),()=>s({callback:t}).onClean()),S=()=>s.snapshot,re=()=>{s||(s=d());let[t]=B(W,S,S);return t};import{useSyncExternalStore as T}from"react";import{event as G}from"reev";var u=()=>{let e=G({onChange:()=>{navigator.geolocation.getCurrentPosition(n=>{e.geolocation=n,e.snapshot=[e],e.callback()})},onMount:()=>{e.onChange(),e.id=navigator.geolocation.watchPosition(e.onChange)},onClean:()=>{typeof e.id<"u"&&navigator.geolocation.clearWatch(e.id)}});return e.snapshot=[e],e};var c,A=(t=()=>{})=>(c({callback:t}).onMount(),()=>c({callback:t}).onClean()),E=()=>c.snapshot,le=()=>{c||(c=u());let[t]=T(A,E,E);return t};var fe=()=>{};import{useSyncExternalStore as P}from"react";import{event as F}from"reev";var C=()=>{let e=F({onChange:()=>{e.online=navigator.onLine,e.snapshot=[e],e.callback()},onMount:()=>{e.onChange(),window.addEventListener("online",e.onChange),window.addEventListener("offline",e.onChange)},onClean:()=>{window.removeEventListener("online",e.onChange),window.removeEventListener("offline",e.onChange)}});return e.snapshot=[e],e};var m,H=(t=()=>{})=>(m({callback:t}).onMount(),()=>m({callback:t}).onClean()),w=()=>m.snapshot,Ce=()=>{m||(m=C());let[t]=P(H,w,w);return t};import{useSyncExternalStore as k}from"react";import{event as j}from"reev";var Q=typeof Float32Array<"u"?Float32Array:Array,a=(t=0,r=0,o=0,e=new Q(3))=>(e[0]=t,e[1]=r,e[2]=o,e),f=(t,r,o=a())=>(o[0]=t[0]+r[0],o[1]=t[1]+r[1],o[2]=t[2]+r[2],o),x=(t,r,o=a())=>(o[0]=t[0]-r[0],o[1]=t[1]-r[1],o[2]=t[2]-r[2],o);var y=()=>{let t=()=>{n.active=n._active=!1,a(0,0,0,n.value),a(0,0,0,n._value),a(0,0,0,n.delta),a(0,0,0,n.movement)},r=v=>{n._active=n.active,n._value=n.value,n.value=[90-(v.alpha??90),v.beta??0,v.gamma??0],n._active&&(x(n.value,n._value,n.delta),f(n.offset,n.delta,n.offset),f(n.offset,n.delta,n.movement)),n.snapshot=[n],n.callback()},o=()=>{t(),n.active=!0,window.addEventListener("deviceorientation",n.onChange)},e=()=>{t(),window.removeEventListener("deviceorientation",n.onChange)},n=j({active:!1,_active:!1,_value:a(),value:a(),delta:a(),offset:a(),movement:a(),onMount:o,onClean:e,onChange:r});return n.snapshot=[n],n};var p,q=(t=()=>{})=>(p({callback:t}).onMount(),()=>p({callback:t}).onClean()),b=()=>p.snapshot,Oe=()=>{p||(p=y());let[t]=k(q,b,b);return t};import{useSyncExternalStore as I}from"react";import{event as D}from"reev";var L=()=>{let e=D({width:1920,height:1080,onChange:()=>{e.callback(),e.snapshot=[e],e.width=window.innerWidth,e.height=window.innerHeight},onMount:()=>{e.onChange(),window.addEventListener("resize",e.onChange)},onClean:()=>{window.removeEventListener("resize",e.onChange)}});return e.snapshot=[e],e};var l,J=(t=()=>{})=>(l({callback:t}).onMount(),()=>l({callback:t}).onClean()),M=()=>l.snapshot,Fe=()=>{l||(l=L());let[t]=I(J,M,M);return t};export{Y as useBattery,re as useClipboard,le as useGeolocation,fe as useMediaQuery,Ce as useOnline,Oe as useOrient,Fe as useWindowSize};
1
+ import{event as O}from"reev/src";var h=()=>{let e=O({change:async()=>{let n=await navigator.getBattery();e.level=n.level,e.charging=n.charging,e.chargingTime=n.chargingTime,e.dischargingTime=n.dischargingTime,e.snapshot=[e],e.callback()},mount:()=>{navigator.getBattery().then(n=>{e.target=n,n.addEventListener("levelchange",e.change),n.addEventListener("chargingchange",e.change)}),e.change()},clean:()=>{let n=e.target;n&&(n.removeEventListener("levelchange",e.change),n.removeEventListener("chargingchange",e.change))}});return e.snapshot=[e],e};import{useSyncExternalStore as _}from"react";var i,B=(t=()=>{})=>(i({callback:t}).mount(),()=>i({callback:t}).clean()),g=()=>i.snapshot,Z=()=>{i||(i=h());let[t]=_(B,g,g);return t};import{useSyncExternalStore as C}from"react";import{event as W}from"reev/src";var d=()=>{let e=W({clipboard:"",change:()=>{navigator.clipboard.readText().then(n=>{e.clipboard=n,e.snapshot=[e],e.callback()})},mount:()=>{window.addEventListener("copy",e.change),window.addEventListener("cut",e.change),window.addEventListener("paste",e.change)},clean:()=>{window.removeEventListener("copy",e.change),window.removeEventListener("cut",e.change),window.removeEventListener("paste",e.change)}});return e.snapshot=[e],e};var c,G=(t=()=>{})=>(c({callback:t}).mount(),()=>c({callback:t}).clean()),S=()=>c.snapshot,ie=()=>{c||(c=d());let[t]=C(G,S,S);return t};import{useSyncExternalStore as A}from"react";import{event as T}from"reev/src";var u=()=>{let e=T({change:()=>{navigator.geolocation.getCurrentPosition(n=>{e.geolocation=n,e.snapshot=[e],e.callback()})},mount:()=>{e.change(),e.id=navigator.geolocation.watchPosition(e.change)},clean:()=>{typeof e.id<"u"&&navigator.geolocation.clearWatch(e.id)}});return e.snapshot=[e],e};var s,F=(t=()=>{})=>(s({callback:t}).mount(),()=>s({callback:t}).clean()),E=()=>s.snapshot,he=()=>{s||(s=u());let[t]=A(F,E,E);return t};var de=()=>{};import{useSyncExternalStore as H}from"react";import{event as P}from"reev/src";var w=()=>{let e=P({change:()=>{e.online=navigator.onLine,e.snapshot=[e],e.callback()},mount:()=>{e.change(),window.addEventListener("online",e.change),window.addEventListener("offline",e.change)},clean:()=>{window.removeEventListener("online",e.change),window.removeEventListener("offline",e.change)}});return e.snapshot=[e],e};var m,M=(t=()=>{})=>(m({callback:t}).mount(),()=>m({callback:t}).clean()),x=()=>m.snapshot,Le=()=>{m||(m=w());let[t]=H(M,x,x);return t};import{useSyncExternalStore as k}from"react";import{event as j}from"reev/src";var Q=typeof Float32Array<"u"?Float32Array:Array,a=(t=0,r=0,o=0,e=new Q(3))=>(e[0]=t,e[1]=r,e[2]=o,e),f=(t,r,o=a())=>(o[0]=t[0]+r[0],o[1]=t[1]+r[1],o[2]=t[2]+r[2],o),y=(t,r,o=a())=>(o[0]=t[0]-r[0],o[1]=t[1]-r[1],o[2]=t[2]-r[2],o);var b=()=>{let t=()=>{n.active=n._active=!1,a(0,0,0,n.value),a(0,0,0,n._value),a(0,0,0,n.delta),a(0,0,0,n.movement)},r=v=>{n._active=n.active,n._value=n.value,n.value=[90-(v.alpha??90),v.beta??0,v.gamma??0],n._active&&(y(n.value,n._value,n.delta),f(n.offset,n.delta,n.offset),f(n.offset,n.delta,n.movement)),n.snapshot=[n],n.callback()},o=()=>{t(),n.active=!0,window.addEventListener("deviceorientation",n.change)},e=()=>{t(),window.removeEventListener("deviceorientation",n.change)},n=j({active:!1,_active:!1,_value:a(),value:a(),delta:a(),offset:a(),movement:a(),mount:o,clean:e,change:r});return n.snapshot=[n],n};var p,q=(t=()=>{})=>(p({callback:t}).mount(),()=>p({callback:t}).clean()),L=()=>p.snapshot,Ae=()=>{p||(p=b());let[t]=k(q,L,L);return t};import{useSyncExternalStore as I}from"react";import{event as D}from"reev/src";var V=()=>{let e=D({width:1920,height:1080,change:()=>{e.callback(),e.snapshot=[e],e.width=window.innerWidth,e.height=window.innerHeight},mount:()=>{e.change(),window.addEventListener("resize",e.change)},clean:()=>{window.removeEventListener("resize",e.change)}});return e.snapshot=[e],e};var l,J=(t=()=>{})=>(l({callback:t}).mount(),()=>l({callback:t}).clean()),z=()=>l.snapshot,qe=()=>{l||(l=V());let[t]=I(J,z,z);return t};export{Z as useBattery,ie as useClipboard,he as useGeolocation,de as useMediaQuery,Le as useOnline,Ae as useOrient,qe as useWindowSize};
2
2
  //# sourceMappingURL=react.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../battery/index.ts","../battery/react.ts","../clipboard/react.ts","../clipboard/index.ts","../geolocation/react.ts","../geolocation/index.ts","../mediaQuery/react.ts","../online/react.ts","../online/index.ts","../orient/react.ts","../orient/index.ts","../orient/utils.ts","../windowSize/react.ts","../windowSize/index.ts"],"sourcesContent":["import { EventState, event } from 'reev'\nimport { BatteryState } from './types'\n\nexport const batteryEvent = () => {\n const onChange = async () => {\n // @ts-ignore\n const battery = await navigator.getBattery()\n self.level = battery.level\n self.charging = battery.charging\n self.chargingTime = battery.chargingTime\n self.dischargingTime = battery.dischargingTime\n self.snapshot = [self]\n self.callback()\n }\n\n const onMount = () => {\n // @ts-ignore\n navigator.getBattery().then((target: any) => {\n self.target = target\n target.addEventListener('levelchange', self.onChange)\n target.addEventListener('chargingchange', self.onChange)\n })\n self.onChange()\n }\n\n const onClean = () => {\n const target = self.target\n if (!target) return\n target.removeEventListener('levelchange', self.onChange)\n target.removeEventListener('chargingchange', self.onChange)\n }\n\n const self = event({\n onChange,\n onMount,\n onClean,\n }) as EventState<BatteryState>\n\n self.snapshot = [self]\n\n return self\n}\n","import { batteryEvent } from '.'\nimport { useSyncExternalStore } from 'react'\nimport { BatteryState } from './types'\nimport { EventState } from 'reev'\n\nlet self: EventState<BatteryState>\n\nconst subscribe = (callback = () => {}) => {\n self({ callback }).onMount()\n return () => self({ callback }).onClean()\n}\n\nconst getSnapshot = () => self.snapshot\n\nexport const useBattery = () => {\n if (!self) self = batteryEvent()\n const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)\n return ret\n}\n","import { useSyncExternalStore } from 'react'\nimport { clipboardEvent } from '.'\nimport { EventState } from 'reev'\nimport { ClipboardState } from './types'\n\nlet self: EventState<ClipboardState>\n\nconst subscribe = (callback = () => {}) => {\n self({ callback }).onMount()\n return () => self({ callback }).onClean()\n}\n\nconst getSnapshot = () => self.snapshot\n\nexport const useClipboard = () => {\n if (!self) self = clipboardEvent()\n const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)\n return ret\n}\n","import { EventState, event } from 'reev'\nimport { ClipboardState } from './types'\n\nexport const clipboardEvent = () => {\n const onChange = () => {\n navigator.clipboard.readText().then((clipboard) => {\n self.clipboard = clipboard\n self.snapshot = [self]\n self.callback()\n })\n }\n\n const onMount = () => {\n window.addEventListener('copy', self.onChange)\n window.addEventListener('cut', self.onChange)\n window.addEventListener('paste', self.onChange)\n }\n\n const onClean = () => {\n window.removeEventListener('copy', self.onChange)\n window.removeEventListener('cut', self.onChange)\n window.removeEventListener('paste', self.onChange)\n }\n\n const self = event({\n clipboard: '',\n onChange,\n onMount,\n onClean,\n }) as EventState<ClipboardState>\n\n self.snapshot = [self]\n\n return self\n}\n","import { EventState } from 'reev'\nimport { useSyncExternalStore } from 'react'\nimport { GeolocationState } from './types'\nimport { geolocationEvent } from '.'\n\nlet self: EventState<GeolocationState>\n\nconst subscribe = (callback = () => {}) => {\n self({ callback }).onMount()\n return () => self({ callback }).onClean()\n}\n\nconst getSnapshot = () => self.snapshot\n\nexport const useGeolocation = () => {\n if (!self) self = geolocationEvent()\n const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)\n return ret\n}\n","import { EventState, event } from 'reev'\nimport { GeolocationState } from './types'\n\nexport const geolocationEvent = () => {\n const onChange = () => {\n navigator.geolocation.getCurrentPosition((geolocation) => {\n self.geolocation = geolocation\n self.snapshot = [self]\n self.callback()\n })\n }\n\n const onMount = () => {\n self.onChange()\n self.id = navigator.geolocation.watchPosition(self.onChange)\n }\n\n const onClean = () => {\n if (typeof self.id !== 'undefined')\n navigator.geolocation.clearWatch(self.id)\n }\n\n const self = event({\n onChange,\n onMount,\n onClean,\n }) as EventState<GeolocationState>\n\n self.snapshot = [self]\n\n return self\n}\n","export const useMediaQuery = () => {}\n","import { useSyncExternalStore } from 'react'\nimport { onlineEvent } from '.'\nimport { EventState } from 'reev'\nimport { OnlineState } from './types'\n\nlet self: EventState<OnlineState>\n\nconst subscribe = (callback = () => {}) => {\n self({ callback }).onMount()\n return () => self({ callback }).onClean()\n}\n\nconst getSnapshot = () => self.snapshot\n\nexport const useOnline = () => {\n if (!self) self = onlineEvent()\n const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)\n return ret\n}\n","import { OnlineState } from './types'\nimport { EventState, event } from 'reev'\n\nexport const onlineEvent = () => {\n const onChange = () => {\n self.online = navigator.onLine\n self.snapshot = [self]\n self.callback()\n }\n\n const onMount = () => {\n self.onChange()\n window.addEventListener('online', self.onChange)\n window.addEventListener('offline', self.onChange)\n }\n const onClean = () => {\n window.removeEventListener('online', self.onChange)\n window.removeEventListener('offline', self.onChange)\n }\n const self = event({\n onChange,\n onMount,\n onClean,\n }) as EventState<OnlineState>\n\n self.snapshot = [self]\n\n return self\n}\n","import { useSyncExternalStore } from 'react'\nimport { orientEvent } from '.'\nimport { OrientState } from './types'\nimport { EventState } from 'reev'\n\nlet self: EventState<OrientState>\n\nconst subscribe = (callback = () => {}) => {\n self({ callback }).onMount()\n return () => self({ callback }).onClean()\n}\n\nconst getSnapshot = () => self.snapshot\n\nexport const useOrient = () => {\n if (!self) self = orientEvent()\n const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n return ret\n}\n","import { EventState, event } from 'reev'\nimport { OrientState } from './types'\nimport { addVec3, subVec3, vec3 } from './utils'\n\nexport const orientEvent = () => {\n const initValues = () => {\n self.active = self._active = false\n vec3(0, 0, 0, self.value)\n vec3(0, 0, 0, self._value)\n vec3(0, 0, 0, self.delta)\n vec3(0, 0, 0, self.movement)\n }\n\n const onChange = (e: any) => {\n self._active = self.active\n self._value = self.value\n self.value = [90 - (e.alpha ?? 90), e.beta ?? 0, e.gamma ?? 0]\n if (self._active) {\n subVec3(self.value, self._value, self.delta)\n addVec3(self.offset, self.delta, self.offset)\n addVec3(self.offset, self.delta, self.movement)\n }\n self.snapshot = [self]\n self.callback()\n }\n\n const onMount = () => {\n initValues()\n self.active = true\n window.addEventListener(\"deviceorientation\", self.onChange);\n }\n\n const onClean = () => {\n initValues()\n window.removeEventListener(\"deviceorientation\", self.onChange);\n }\n\n const self = event({\n active: false,\n _active: false,\n _value: vec3(),\n value: vec3(),\n delta: vec3(),\n offset: vec3(),\n movement: vec3(),\n onMount,\n onClean,\n onChange,\n }) as EventState<OrientState>\n\n self.snapshot = [self]\n\n return self\n}\n","/**\n * CALCULATE VECTOR\n * REF: https://github.com/toji/gl-matrix/blob/master/src/vec2.js\n */\n\nconst Vec = typeof Float32Array !== 'undefined' ? Float32Array : Array\n\nexport const vec3 = (x = 0, y = 0, z = 0, out = new Vec(3)): Vec3 => {\n out[0] = x\n out[1] = y\n out[2] = z\n return out as Vec3\n}\n\nexport type Vec3 = [x: number, y: number, z: number]\n\nexport const addVec3 = (a: Vec3, b: Vec3, out = vec3()): Vec3 => {\n out[0] = a[0] + b[0]\n out[1] = a[1] + b[1]\n out[2] = a[2] + b[2]\n return out\n}\n\nexport const subVec3 = (a: Vec3, b: Vec3, out = vec3()): Vec3 => {\n out[0] = a[0] - b[0]\n out[1] = a[1] - b[1]\n out[2] = a[2] - b[2]\n return out\n}\n\nexport const cpVec3 = (a: Vec3, out = vec3()): Vec3 => {\n out[0] = a[0]\n out[1] = a[1]\n out[2] = a[2]\n return out\n}\n","import { useSyncExternalStore } from 'react'\nimport { windowSizeEvent } from './index'\nimport { WindowSizeState } from './types'\nimport { EventState } from 'reev'\n\nlet self: EventState<WindowSizeState>\n\nconst subscribe = (callback = () => {}) => {\n self({ callback }).onMount()\n return () => self({ callback }).onClean()\n}\n\nconst getSnapshot = () => self.snapshot\n\nexport const useWindowSize = () => {\n if (!self) self = windowSizeEvent()\n const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)\n return ret\n}\n","import { EventState, event } from 'reev'\nimport { WindowSizeState } from './types'\n\nexport const windowSizeEvent = () => {\n const onMount = () => {\n self.onChange()\n window.addEventListener('resize', self.onChange)\n }\n\n const onClean = () => {\n window.removeEventListener('resize', self.onChange)\n }\n\n const onChange = () => {\n self.callback()\n self.snapshot = [self]\n self.width = window.innerWidth\n self.height = window.innerHeight\n }\n\n const self = event({\n width: 1920,\n height: 1080,\n onChange,\n onMount,\n onClean,\n }) as EventState<WindowSizeState>\n\n self.snapshot = [self]\n\n return self\n}\n"],"mappings":"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","names":["event","batteryEvent","self","battery","target","useSyncExternalStore","self","subscribe","callback","getSnapshot","useBattery","batteryEvent","ret","useSyncExternalStore","event","clipboardEvent","self","clipboard","self","subscribe","callback","getSnapshot","useClipboard","clipboardEvent","ret","useSyncExternalStore","useSyncExternalStore","event","geolocationEvent","self","geolocation","self","subscribe","callback","getSnapshot","useGeolocation","geolocationEvent","ret","useSyncExternalStore","useMediaQuery","useSyncExternalStore","event","onlineEvent","self","self","subscribe","callback","getSnapshot","useOnline","onlineEvent","ret","useSyncExternalStore","useSyncExternalStore","event","Vec","vec3","x","y","z","out","addVec3","a","b","subVec3","orientEvent","initValues","self","vec3","onChange","e","subVec3","addVec3","onMount","onClean","event","self","subscribe","callback","getSnapshot","useOrient","orientEvent","ret","useSyncExternalStore","useSyncExternalStore","event","windowSizeEvent","self","self","subscribe","callback","getSnapshot","useWindowSize","windowSizeEvent","ret","useSyncExternalStore"]}
1
+ {"version":3,"sources":["../src/battery/index.ts","../src/battery/react.ts","../src/clipboard/react.ts","../src/clipboard/index.ts","../src/geolocation/react.ts","../src/geolocation/index.ts","../src/mediaQuery/react.ts","../src/online/react.ts","../src/online/index.ts","../src/orient/react.ts","../src/orient/index.ts","../src/orient/utils.ts","../src/windowSize/react.ts","../src/windowSize/index.ts"],"sourcesContent":["import { EventState, event } from 'reev/src'\nimport { BatteryState } from './types'\n\nexport * from './types'\n\nexport const batteryEvent = () => {\n const change = async () => {\n // @ts-ignore\n const battery = await navigator.getBattery()\n self.level = battery.level\n self.charging = battery.charging\n self.chargingTime = battery.chargingTime\n self.dischargingTime = battery.dischargingTime\n self.snapshot = [self]\n self.callback()\n }\n\n const mount = () => {\n // @ts-ignore\n navigator.getBattery().then((target: any) => {\n self.target = target\n target.addEventListener('levelchange', self.change)\n target.addEventListener('chargingchange', self.change)\n })\n self.change()\n }\n\n const clean = () => {\n const target = self.target\n if (!target) return\n target.removeEventListener('levelchange', self.change)\n target.removeEventListener('chargingchange', self.change)\n }\n\n const self = event({\n change,\n mount,\n clean,\n }) as EventState<BatteryState>\n\n self.snapshot = [self]\n\n return self\n}\n","import { batteryEvent } from '.'\nimport { useSyncExternalStore } from 'react'\nimport { BatteryState } from './types'\nimport { EventState } from 'reev/src'\n\nlet self: EventState<BatteryState>\n\nconst subscribe = (callback = () => {}) => {\n self({ callback }).mount()\n return () => self({ callback }).clean()\n}\n\nconst getSnapshot = () => self.snapshot\n\nexport const useBattery = () => {\n if (!self) self = batteryEvent()\n const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)\n return ret\n}\n","import { useSyncExternalStore } from 'react'\nimport { clipboardEvent } from '.'\nimport { EventState } from 'reev/src'\nimport { ClipboardState } from './types'\n\nlet self: EventState<ClipboardState>\n\nconst subscribe = (callback = () => {}) => {\n self({ callback }).mount()\n return () => self({ callback }).clean()\n}\n\nconst getSnapshot = () => self.snapshot\n\nexport const useClipboard = () => {\n if (!self) self = clipboardEvent()\n const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)\n return ret\n}\n","import { EventState, event } from 'reev/src'\nimport { ClipboardState } from './types'\n\nexport * from './types'\n\nexport const clipboardEvent = () => {\n const change = () => {\n navigator.clipboard.readText().then((clipboard) => {\n self.clipboard = clipboard\n self.snapshot = [self]\n self.callback()\n })\n }\n\n const mount = () => {\n window.addEventListener('copy', self.change)\n window.addEventListener('cut', self.change)\n window.addEventListener('paste', self.change)\n }\n\n const clean = () => {\n window.removeEventListener('copy', self.change)\n window.removeEventListener('cut', self.change)\n window.removeEventListener('paste', self.change)\n }\n\n const self = event({\n clipboard: '',\n change,\n mount,\n clean,\n }) as EventState<ClipboardState>\n\n self.snapshot = [self]\n\n return self\n}\n","import { EventState } from 'reev/src'\nimport { useSyncExternalStore } from 'react'\nimport { GeolocationState } from './types'\nimport { geolocationEvent } from '.'\n\nlet self: EventState<GeolocationState>\n\nconst subscribe = (callback = () => {}) => {\n self({ callback }).mount()\n return () => self({ callback }).clean()\n}\n\nconst getSnapshot = () => self.snapshot\n\nexport const useGeolocation = () => {\n if (!self) self = geolocationEvent()\n const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)\n return ret\n}\n","import { EventState, event } from 'reev/src'\nimport { GeolocationState } from './types'\n\nexport * from './types'\n\nexport const geolocationEvent = () => {\n const change = () => {\n navigator.geolocation.getCurrentPosition((geolocation) => {\n self.geolocation = geolocation\n self.snapshot = [self]\n self.callback()\n })\n }\n\n const mount = () => {\n self.change()\n self.id = navigator.geolocation.watchPosition(self.change)\n }\n\n const clean = () => {\n if (typeof self.id !== 'undefined') navigator.geolocation.clearWatch(self.id)\n }\n\n const self = event({\n change,\n mount,\n clean,\n }) as EventState<GeolocationState>\n\n self.snapshot = [self]\n\n return self\n}\n","export const useMediaQuery = () => {}\n","import { useSyncExternalStore } from 'react'\nimport { onlineEvent } from '.'\nimport { EventState } from 'reev/src'\nimport { OnlineState } from './types'\n\nlet self: EventState<OnlineState>\n\nconst subscribe = (callback = () => {}) => {\n self({ callback }).mount()\n return () => self({ callback }).clean()\n}\n\nconst getSnapshot = () => self.snapshot\n\nexport const useOnline = () => {\n if (!self) self = onlineEvent()\n const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)\n return ret\n}\n","import { OnlineState } from './types'\nimport { EventState, event } from 'reev/src'\n\nexport * from './types'\n\nexport const onlineEvent = () => {\n const change = () => {\n self.online = navigator.onLine\n self.snapshot = [self]\n self.callback()\n }\n\n const mount = () => {\n self.change()\n window.addEventListener('online', self.change)\n window.addEventListener('offline', self.change)\n }\n const clean = () => {\n window.removeEventListener('online', self.change)\n window.removeEventListener('offline', self.change)\n }\n const self = event({\n change,\n mount,\n clean,\n }) as EventState<OnlineState>\n\n self.snapshot = [self]\n\n return self\n}\n","import { useSyncExternalStore } from 'react'\nimport { orientEvent } from '.'\nimport { OrientState } from './types'\nimport { EventState } from 'reev/src'\n\nlet self: EventState<OrientState>\n\nconst subscribe = (callback = () => {}) => {\n self({ callback }).mount()\n return () => self({ callback }).clean()\n}\n\nconst getSnapshot = () => self.snapshot\n\nexport const useOrient = () => {\n if (!self) self = orientEvent()\n const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)\n return ret\n}\n","import { EventState, event } from 'reev/src'\nimport { OrientState } from './types'\nimport { addVec3, subVec3, vec3 } from './utils'\n\nexport * from './types'\n\nexport const orientEvent = () => {\n const initValues = () => {\n self.active = self._active = false\n vec3(0, 0, 0, self.value)\n vec3(0, 0, 0, self._value)\n vec3(0, 0, 0, self.delta)\n vec3(0, 0, 0, self.movement)\n }\n\n const change = (e: any) => {\n self._active = self.active\n self._value = self.value\n self.value = [90 - (e.alpha ?? 90), e.beta ?? 0, e.gamma ?? 0]\n if (self._active) {\n subVec3(self.value, self._value, self.delta)\n addVec3(self.offset, self.delta, self.offset)\n addVec3(self.offset, self.delta, self.movement)\n }\n self.snapshot = [self]\n self.callback()\n }\n\n const mount = () => {\n initValues()\n self.active = true\n window.addEventListener('deviceorientation', self.change)\n }\n\n const clean = () => {\n initValues()\n window.removeEventListener('deviceorientation', self.change)\n }\n\n const self = event({\n active: false,\n _active: false,\n _value: vec3(),\n value: vec3(),\n delta: vec3(),\n offset: vec3(),\n movement: vec3(),\n mount,\n clean,\n change,\n }) as EventState<OrientState>\n\n self.snapshot = [self]\n\n return self\n}\n","/**\n * CALCULATE VECTOR\n * REF: https://github.com/toji/gl-matrix/blob/master/src/vec2.js\n */\n\nconst Vec = typeof Float32Array !== 'undefined' ? Float32Array : Array\n\nexport const vec3 = (x = 0, y = 0, z = 0, out = new Vec(3)): Vec3 => {\n out[0] = x\n out[1] = y\n out[2] = z\n return out as Vec3\n}\n\nexport type Vec3 = [x: number, y: number, z: number]\n\nexport const addVec3 = (a: Vec3, b: Vec3, out = vec3()): Vec3 => {\n out[0] = a[0] + b[0]\n out[1] = a[1] + b[1]\n out[2] = a[2] + b[2]\n return out\n}\n\nexport const subVec3 = (a: Vec3, b: Vec3, out = vec3()): Vec3 => {\n out[0] = a[0] - b[0]\n out[1] = a[1] - b[1]\n out[2] = a[2] - b[2]\n return out\n}\n\nexport const cpVec3 = (a: Vec3, out = vec3()): Vec3 => {\n out[0] = a[0]\n out[1] = a[1]\n out[2] = a[2]\n return out\n}\n","import { useSyncExternalStore } from 'react'\nimport { windowSizeEvent } from './index'\nimport { WindowSizeState } from './types'\nimport { EventState } from 'reev/src'\n\nlet self: EventState<WindowSizeState>\n\nconst subscribe = (callback = () => {}) => {\n self({ callback }).mount()\n return () => self({ callback }).clean()\n}\n\nconst getSnapshot = () => self.snapshot\n\nexport const useWindowSize = () => {\n if (!self) self = windowSizeEvent()\n const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)\n return ret\n}\n","import { EventState, event } from 'reev/src'\nimport { WindowSizeState } from './types'\n\nexport * from './types'\n\nexport const windowSizeEvent = () => {\n const mount = () => {\n self.change()\n window.addEventListener('resize', self.change)\n }\n\n const clean = () => {\n window.removeEventListener('resize', self.change)\n }\n\n const change = () => {\n self.callback()\n self.snapshot = [self]\n self.width = window.innerWidth\n self.height = window.innerHeight\n }\n\n const self = event({\n width: 1920,\n height: 1080,\n change,\n mount,\n clean,\n }) as EventState<WindowSizeState>\n\n self.snapshot = [self]\n\n return self\n}\n"],"mappings":"AAAA,OAAqB,SAAAA,MAAa,WAK3B,IAAMC,EAAe,IAAM,CA6B1B,IAAMC,EAAOF,EAAM,CACX,OA7BO,SAAY,CAEnB,IAAMG,EAAU,MAAM,UAAU,WAAW,EAC3CD,EAAK,MAAQC,EAAQ,MACrBD,EAAK,SAAWC,EAAQ,SACxBD,EAAK,aAAeC,EAAQ,aAC5BD,EAAK,gBAAkBC,EAAQ,gBAC/BD,EAAK,SAAW,CAACA,CAAI,EACrBA,EAAK,SAAS,CACtB,EAqBQ,MAnBM,IAAM,CAEZ,UAAU,WAAW,EAAE,KAAME,GAAgB,CACrCF,EAAK,OAASE,EACdA,EAAO,iBAAiB,cAAeF,EAAK,MAAM,EAClDE,EAAO,iBAAiB,iBAAkBF,EAAK,MAAM,CAC7D,CAAC,EACDA,EAAK,OAAO,CACpB,EAYQ,MAVM,IAAM,CACZ,IAAME,EAASF,EAAK,OACfE,IACLA,EAAO,oBAAoB,cAAeF,EAAK,MAAM,EACrDE,EAAO,oBAAoB,iBAAkBF,EAAK,MAAM,EAChE,CAMA,CAAC,EAED,OAAAA,EAAK,SAAW,CAACA,CAAI,EAEdA,CACf,EC1CA,OAAS,wBAAAG,MAA4B,QAIrC,IAAIC,EAEEC,EAAY,CAACC,EAAW,IAAM,CAAC,KAC7BF,EAAK,CAAE,SAAAE,CAAS,CAAC,EAAE,MAAM,EAClB,IAAMF,EAAK,CAAE,SAAAE,CAAS,CAAC,EAAE,MAAM,GAGxCC,EAAc,IAAMH,EAAK,SAElBI,EAAa,IAAM,CACnBJ,IAAMA,EAAOK,EAAa,GAC/B,GAAM,CAACC,CAAG,EAAIP,EAAqBE,EAAWE,EAAaA,CAAW,EACtE,OAAOG,CACf,EClBA,OAAS,wBAAAC,MAA4B,QCArC,OAAqB,SAAAC,MAAa,WAK3B,IAAMC,EAAiB,IAAM,CAqB5B,IAAMC,EAAOF,EAAM,CACX,UAAW,GACX,OAtBO,IAAM,CACb,UAAU,UAAU,SAAS,EAAE,KAAMG,GAAc,CAC3CD,EAAK,UAAYC,EACjBD,EAAK,SAAW,CAACA,CAAI,EACrBA,EAAK,SAAS,CACtB,CAAC,CACT,EAiBQ,MAfM,IAAM,CACZ,OAAO,iBAAiB,OAAQA,EAAK,MAAM,EAC3C,OAAO,iBAAiB,MAAOA,EAAK,MAAM,EAC1C,OAAO,iBAAiB,QAASA,EAAK,MAAM,CACpD,EAYQ,MAVM,IAAM,CACZ,OAAO,oBAAoB,OAAQA,EAAK,MAAM,EAC9C,OAAO,oBAAoB,MAAOA,EAAK,MAAM,EAC7C,OAAO,oBAAoB,QAASA,EAAK,MAAM,CACvD,CAOA,CAAC,EAED,OAAAA,EAAK,SAAW,CAACA,CAAI,EAEdA,CACf,ED/BA,IAAIE,EAEEC,EAAY,CAACC,EAAW,IAAM,CAAC,KAC7BF,EAAK,CAAE,SAAAE,CAAS,CAAC,EAAE,MAAM,EAClB,IAAMF,EAAK,CAAE,SAAAE,CAAS,CAAC,EAAE,MAAM,GAGxCC,EAAc,IAAMH,EAAK,SAElBI,GAAe,IAAM,CACrBJ,IAAMA,EAAOK,EAAe,GACjC,GAAM,CAACC,CAAG,EAAIC,EAAqBN,EAAWE,EAAaA,CAAW,EACtE,OAAOG,CACf,EEjBA,OAAS,wBAAAE,MAA4B,QCDrC,OAAqB,SAAAC,MAAa,WAK3B,IAAMC,EAAmB,IAAM,CAkB9B,IAAMC,EAAOF,EAAM,CACX,OAlBO,IAAM,CACb,UAAU,YAAY,mBAAoBG,GAAgB,CAClDD,EAAK,YAAcC,EACnBD,EAAK,SAAW,CAACA,CAAI,EACrBA,EAAK,SAAS,CACtB,CAAC,CACT,EAaQ,MAXM,IAAM,CACZA,EAAK,OAAO,EACZA,EAAK,GAAK,UAAU,YAAY,cAAcA,EAAK,MAAM,CACjE,EASQ,MAPM,IAAM,CACR,OAAOA,EAAK,GAAO,KAAa,UAAU,YAAY,WAAWA,EAAK,EAAE,CACpF,CAMA,CAAC,EAED,OAAAA,EAAK,SAAW,CAACA,CAAI,EAEdA,CACf,ED3BA,IAAIE,EAEEC,EAAY,CAACC,EAAW,IAAM,CAAC,KAC7BF,EAAK,CAAE,SAAAE,CAAS,CAAC,EAAE,MAAM,EAClB,IAAMF,EAAK,CAAE,SAAAE,CAAS,CAAC,EAAE,MAAM,GAGxCC,EAAc,IAAMH,EAAK,SAElBI,GAAiB,IAAM,CACvBJ,IAAMA,EAAOK,EAAiB,GACnC,GAAM,CAACC,CAAG,EAAIC,EAAqBN,EAAWE,EAAaA,CAAW,EACtE,OAAOG,CACf,EElBO,IAAME,GAAgB,IAAM,CAAC,ECApC,OAAS,wBAAAC,MAA4B,QCCrC,OAAqB,SAAAC,MAAa,WAI3B,IAAMC,EAAc,IAAM,CAgBzB,IAAMC,EAAOF,EAAM,CACX,OAhBO,IAAM,CACbE,EAAK,OAAS,UAAU,OACxBA,EAAK,SAAW,CAACA,CAAI,EACrBA,EAAK,SAAS,CACtB,EAaQ,MAXM,IAAM,CACZA,EAAK,OAAO,EACZ,OAAO,iBAAiB,SAAUA,EAAK,MAAM,EAC7C,OAAO,iBAAiB,UAAWA,EAAK,MAAM,CACtD,EAQQ,MAPM,IAAM,CACZ,OAAO,oBAAoB,SAAUA,EAAK,MAAM,EAChD,OAAO,oBAAoB,UAAWA,EAAK,MAAM,CACzD,CAKA,CAAC,EAED,OAAAA,EAAK,SAAW,CAACA,CAAI,EAEdA,CACf,EDzBA,IAAIC,EAEEC,EAAY,CAACC,EAAW,IAAM,CAAC,KAC7BF,EAAK,CAAE,SAAAE,CAAS,CAAC,EAAE,MAAM,EAClB,IAAMF,EAAK,CAAE,SAAAE,CAAS,CAAC,EAAE,MAAM,GAGxCC,EAAc,IAAMH,EAAK,SAElBI,GAAY,IAAM,CAClBJ,IAAMA,EAAOK,EAAY,GAC9B,GAAM,CAACC,CAAG,EAAIC,EAAqBN,EAAWE,EAAaA,CAAW,EACtE,OAAOG,CACf,EElBA,OAAS,wBAAAE,MAA4B,QCArC,OAAqB,SAAAC,MAAa,WCKlC,IAAMC,EAAM,OAAO,aAAiB,IAAc,aAAe,MAEpDC,EAAO,CAACC,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAAGC,EAAM,IAAIL,EAAI,CAAC,KACjDK,EAAI,CAAC,EAAIH,EACTG,EAAI,CAAC,EAAIF,EACTE,EAAI,CAAC,EAAID,EACFC,GAKFC,EAAU,CAACC,EAASC,EAASH,EAAMJ,EAAK,KAC7CI,EAAI,CAAC,EAAIE,EAAE,CAAC,EAAIC,EAAE,CAAC,EACnBH,EAAI,CAAC,EAAIE,EAAE,CAAC,EAAIC,EAAE,CAAC,EACnBH,EAAI,CAAC,EAAIE,EAAE,CAAC,EAAIC,EAAE,CAAC,EACZH,GAGFI,EAAU,CAACF,EAASC,EAASH,EAAMJ,EAAK,KAC7CI,EAAI,CAAC,EAAIE,EAAE,CAAC,EAAIC,EAAE,CAAC,EACnBH,EAAI,CAAC,EAAIE,EAAE,CAAC,EAAIC,EAAE,CAAC,EACnBH,EAAI,CAAC,EAAIE,EAAE,CAAC,EAAIC,EAAE,CAAC,EACZH,GDrBR,IAAMK,EAAc,IAAM,CACzB,IAAMC,EAAa,IAAM,CACjBC,EAAK,OAASA,EAAK,QAAU,GAC7BC,EAAK,EAAG,EAAG,EAAGD,EAAK,KAAK,EACxBC,EAAK,EAAG,EAAG,EAAGD,EAAK,MAAM,EACzBC,EAAK,EAAG,EAAG,EAAGD,EAAK,KAAK,EACxBC,EAAK,EAAG,EAAG,EAAGD,EAAK,QAAQ,CACnC,EAEME,EAAUC,GAAW,CACnBH,EAAK,QAAUA,EAAK,OACpBA,EAAK,OAASA,EAAK,MACnBA,EAAK,MAAQ,CAAC,IAAMG,EAAE,OAAS,IAAKA,EAAE,MAAQ,EAAGA,EAAE,OAAS,CAAC,EACzDH,EAAK,UACDI,EAAQJ,EAAK,MAAOA,EAAK,OAAQA,EAAK,KAAK,EAC3CK,EAAQL,EAAK,OAAQA,EAAK,MAAOA,EAAK,MAAM,EAC5CK,EAAQL,EAAK,OAAQA,EAAK,MAAOA,EAAK,QAAQ,GAEtDA,EAAK,SAAW,CAACA,CAAI,EACrBA,EAAK,SAAS,CACtB,EAEMM,EAAQ,IAAM,CACZP,EAAW,EACXC,EAAK,OAAS,GACd,OAAO,iBAAiB,oBAAqBA,EAAK,MAAM,CAChE,EAEMO,EAAQ,IAAM,CACZR,EAAW,EACX,OAAO,oBAAoB,oBAAqBC,EAAK,MAAM,CACnE,EAEMA,EAAOQ,EAAM,CACX,OAAQ,GACR,QAAS,GACT,OAAQP,EAAK,EACb,MAAOA,EAAK,EACZ,MAAOA,EAAK,EACZ,OAAQA,EAAK,EACb,SAAUA,EAAK,EACf,MAAAK,EACA,MAAAC,EACA,OAAAL,CACR,CAAC,EAED,OAAAF,EAAK,SAAW,CAACA,CAAI,EAEdA,CACf,EDlDA,IAAIS,EAEEC,EAAY,CAACC,EAAW,IAAM,CAAC,KAC7BF,EAAK,CAAE,SAAAE,CAAS,CAAC,EAAE,MAAM,EAClB,IAAMF,EAAK,CAAE,SAAAE,CAAS,CAAC,EAAE,MAAM,GAGxCC,EAAc,IAAMH,EAAK,SAElBI,GAAY,IAAM,CAClBJ,IAAMA,EAAOK,EAAY,GAC9B,GAAM,CAACC,CAAG,EAAIC,EAAqBN,EAAWE,EAAaA,CAAW,EACtE,OAAOG,CACf,EGlBA,OAAS,wBAAAE,MAA4B,QCArC,OAAqB,SAAAC,MAAa,WAK3B,IAAMC,EAAkB,IAAM,CAiB7B,IAAMC,EAAOF,EAAM,CACX,MAAO,KACP,OAAQ,KACR,OAVO,IAAM,CACbE,EAAK,SAAS,EACdA,EAAK,SAAW,CAACA,CAAI,EACrBA,EAAK,MAAQ,OAAO,WACpBA,EAAK,OAAS,OAAO,WAC7B,EAMQ,MApBM,IAAM,CACZA,EAAK,OAAO,EACZ,OAAO,iBAAiB,SAAUA,EAAK,MAAM,CACrD,EAkBQ,MAhBM,IAAM,CACZ,OAAO,oBAAoB,SAAUA,EAAK,MAAM,CACxD,CAeA,CAAC,EAED,OAAAA,EAAK,SAAW,CAACA,CAAI,EAEdA,CACf,ED5BA,IAAIC,EAEEC,EAAY,CAACC,EAAW,IAAM,CAAC,KAC7BF,EAAK,CAAE,SAAAE,CAAS,CAAC,EAAE,MAAM,EAClB,IAAMF,EAAK,CAAE,SAAAE,CAAS,CAAC,EAAE,MAAM,GAGxCC,EAAc,IAAMH,EAAK,SAElBI,GAAgB,IAAM,CACtBJ,IAAMA,EAAOK,EAAgB,GAClC,GAAM,CAACC,CAAG,EAAIC,EAAqBN,EAAWE,EAAaA,CAAW,EACtE,OAAOG,CACf","names":["event","batteryEvent","self","battery","target","useSyncExternalStore","self","subscribe","callback","getSnapshot","useBattery","batteryEvent","ret","useSyncExternalStore","event","clipboardEvent","self","clipboard","self","subscribe","callback","getSnapshot","useClipboard","clipboardEvent","ret","useSyncExternalStore","useSyncExternalStore","event","geolocationEvent","self","geolocation","self","subscribe","callback","getSnapshot","useGeolocation","geolocationEvent","ret","useSyncExternalStore","useMediaQuery","useSyncExternalStore","event","onlineEvent","self","self","subscribe","callback","getSnapshot","useOnline","onlineEvent","ret","useSyncExternalStore","useSyncExternalStore","event","Vec","vec3","x","y","z","out","addVec3","a","b","subVec3","orientEvent","initValues","self","vec3","change","e","subVec3","addVec3","mount","clean","event","self","subscribe","callback","getSnapshot","useOrient","orientEvent","ret","useSyncExternalStore","useSyncExternalStore","event","windowSizeEvent","self","self","subscribe","callback","getSnapshot","useWindowSize","windowSizeEvent","ret","useSyncExternalStore"]}
@@ -6,38 +6,42 @@ interface BatteryState {
6
6
  chargingTime: number;
7
7
  dischargingTime: number;
8
8
  callback(): void;
9
- onChange(): void;
10
- onMount(): void;
11
- onClean(): void;
9
+ change(): void;
10
+ mount(): void;
11
+ clean(): void;
12
12
  }
13
+ declare type BatteryArg = Partial<BatteryState> | BatteryState['change'];
13
14
 
14
15
  interface ClipboardState {
15
16
  snapshot: [ClipboardState];
16
17
  clipboard: string;
17
18
  callback(): void;
18
- onChange(): void;
19
- onMount(): void;
20
- onClean(): void;
19
+ change(): void;
20
+ mount(): void;
21
+ clean(): void;
21
22
  }
23
+ declare type ClipboardArg = Partial<ClipboardState> | ClipboardState['change'];
22
24
 
23
25
  interface GeolocationState {
24
26
  snapshot: [GeolocationState];
25
27
  geolocation: any;
26
28
  id: number;
27
29
  callback(): void;
28
- onChange(): void;
29
- onMount(): void;
30
- onClean(): void;
30
+ change(): void;
31
+ mount(): void;
32
+ clean(): void;
31
33
  }
34
+ declare type GeolocationArg = Partial<GeolocationState> | GeolocationState['change'];
32
35
 
33
36
  interface OnlineState {
34
37
  snapshot: [OnlineState];
35
38
  online: boolean;
36
39
  callback(): void;
37
- onChange(): void;
38
- onMount(): void;
39
- onClean(): void;
40
+ change(): void;
41
+ mount(): void;
42
+ clean(): void;
40
43
  }
44
+ declare type OnlineArg = Partial<OnlineState> | OnlineState['change'];
41
45
 
42
46
  declare type Vec3 = [x: number, y: number, z: number];
43
47
 
@@ -52,19 +56,21 @@ interface OrientState {
52
56
  movement: Vec3;
53
57
  memo: any;
54
58
  callback(): void;
55
- onChange(): void;
56
- onMount(): void;
57
- onClean(): void;
59
+ change(): void;
60
+ mount(): void;
61
+ clean(): void;
58
62
  }
63
+ declare type OrientArg = Partial<OrientState> | OrientState['change'];
59
64
 
60
65
  interface WindowSizeState {
61
66
  snapshot: [WindowSizeState];
62
67
  width: number;
63
68
  height: number;
64
69
  callback(): void;
65
- onChange(): void;
66
- onMount(): void;
67
- onClean(): void;
70
+ change(): void;
71
+ mount(): void;
72
+ clean(): void;
68
73
  }
74
+ declare type WindowSizeArg = Partial<WindowSizeState> | WindowSizeState['change'];
69
75
 
70
- export { BatteryState as B, ClipboardState as C, GeolocationState as G, OnlineState as O, WindowSizeState as W, OrientState as a };
76
+ export { BatteryState as B, ClipboardState as C, GeolocationState as G, OnlineState as O, WindowSizeState as W, OrientState as a, BatteryArg as b, ClipboardArg as c, GeolocationArg as d, OnlineArg as e, OrientArg as f, WindowSizeArg as g };
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "rexr",
3
3
  "author": "tseijp",
4
4
  "license": "MIT",
5
- "version": "0.3.0",
5
+ "version": "0.5.0",
6
6
  "private": false,
7
7
  "sideEffect": false,
8
8
  "publishConfig": {
@@ -29,11 +29,35 @@
29
29
  ],
30
30
  "files": [
31
31
  "dist/**/*.{js,ts,mjs,mts,map}",
32
+ "src/**/*.{js,ts,mjs,mts,map}",
32
33
  "packages.json",
33
34
  "README.md"
34
35
  ],
35
36
  "exports": {
36
37
  "./packages.json": "./packages.json",
38
+ "./src": {
39
+ "types": "./src/index.ts",
40
+ "import": "./src/index.ts",
41
+ "default": "./src/index.ts"
42
+ },
43
+ "./src/react": {
44
+ "types": "./src/react.ts",
45
+ "import": "./src/react.ts",
46
+ "default": "./src/react.ts"
47
+ },
48
+ "./react": {
49
+ "types": "./dist/react.d.ts",
50
+ "import": {
51
+ "types": "./dist/react.d.ts",
52
+ "default": "./dist/react.mjs"
53
+ },
54
+ "module": {
55
+ "types": "./dist/react.d.ts",
56
+ "default": "./dist/react.mjs"
57
+ },
58
+ "require": "./dist/react.js",
59
+ "default": "./dist/react.js"
60
+ },
37
61
  ".": {
38
62
  "types": "./dist/index.d.ts",
39
63
  "import": {
@@ -59,36 +83,10 @@
59
83
  },
60
84
  "require": "./dist/index.js",
61
85
  "default": "./dist/index.js"
62
- },
63
- "./react": {
64
- "types": "./dist/react.d.ts",
65
- "import": {
66
- "types": "./dist/react.d.ts",
67
- "default": "./dist/react.mjs"
68
- },
69
- "module": {
70
- "types": "./dist/react.d.ts",
71
- "default": "./dist/react.mjs"
72
- },
73
- "require": "./dist/react.js",
74
- "default": "./dist/react.js"
75
- },
76
- "./react/*": {
77
- "types": "./dist/react.d.ts",
78
- "import": {
79
- "types": "./dist/react.d.ts",
80
- "default": "./dist/react.mjs"
81
- },
82
- "module": {
83
- "types": "./dist/react.d.ts",
84
- "default": "./dist/react.mjs"
85
- },
86
- "require": "./dist/react.js",
87
- "default": "./dist/react.js"
88
86
  }
89
87
  },
90
88
  "dependencies": {
91
- "reev": "0.12.0"
89
+ "reev": "0.13.0"
92
90
  },
93
91
  "peerDependencies": {
94
92
  "expo": "*",
@@ -0,0 +1,44 @@
1
+ import { EventState, event } from 'reev/src'
2
+ import { BatteryState } from './types'
3
+
4
+ export * from './types'
5
+
6
+ export const batteryEvent = () => {
7
+ const change = async () => {
8
+ // @ts-ignore
9
+ const battery = await navigator.getBattery()
10
+ self.level = battery.level
11
+ self.charging = battery.charging
12
+ self.chargingTime = battery.chargingTime
13
+ self.dischargingTime = battery.dischargingTime
14
+ self.snapshot = [self]
15
+ self.callback()
16
+ }
17
+
18
+ const mount = () => {
19
+ // @ts-ignore
20
+ navigator.getBattery().then((target: any) => {
21
+ self.target = target
22
+ target.addEventListener('levelchange', self.change)
23
+ target.addEventListener('chargingchange', self.change)
24
+ })
25
+ self.change()
26
+ }
27
+
28
+ const clean = () => {
29
+ const target = self.target
30
+ if (!target) return
31
+ target.removeEventListener('levelchange', self.change)
32
+ target.removeEventListener('chargingchange', self.change)
33
+ }
34
+
35
+ const self = event({
36
+ change,
37
+ mount,
38
+ clean,
39
+ }) as EventState<BatteryState>
40
+
41
+ self.snapshot = [self]
42
+
43
+ return self
44
+ }
@@ -0,0 +1,19 @@
1
+ import { batteryEvent } from '.'
2
+ import { useSyncExternalStore } from 'react'
3
+ import { BatteryState } from './types'
4
+ import { EventState } from 'reev/src'
5
+
6
+ let self: EventState<BatteryState>
7
+
8
+ const subscribe = (callback = () => {}) => {
9
+ self({ callback }).mount()
10
+ return () => self({ callback }).clean()
11
+ }
12
+
13
+ const getSnapshot = () => self.snapshot
14
+
15
+ export const useBattery = () => {
16
+ if (!self) self = batteryEvent()
17
+ const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)
18
+ return ret
19
+ }
@@ -0,0 +1,14 @@
1
+ export interface BatteryState {
2
+ snapshot: [BatteryState]
3
+ target: any
4
+ level: number // 0 ~ 1
5
+ charging: boolean
6
+ chargingTime: number // 3180
7
+ dischargingTime: number // Infinity
8
+ callback(): void
9
+ change(): void
10
+ mount(): void
11
+ clean(): void
12
+ }
13
+
14
+ export type BatteryArg = Partial<BatteryState> | BatteryState['change']
@@ -0,0 +1,37 @@
1
+ import { EventState, event } from 'reev/src'
2
+ import { ClipboardState } from './types'
3
+
4
+ export * from './types'
5
+
6
+ export const clipboardEvent = () => {
7
+ const change = () => {
8
+ navigator.clipboard.readText().then((clipboard) => {
9
+ self.clipboard = clipboard
10
+ self.snapshot = [self]
11
+ self.callback()
12
+ })
13
+ }
14
+
15
+ const mount = () => {
16
+ window.addEventListener('copy', self.change)
17
+ window.addEventListener('cut', self.change)
18
+ window.addEventListener('paste', self.change)
19
+ }
20
+
21
+ const clean = () => {
22
+ window.removeEventListener('copy', self.change)
23
+ window.removeEventListener('cut', self.change)
24
+ window.removeEventListener('paste', self.change)
25
+ }
26
+
27
+ const self = event({
28
+ clipboard: '',
29
+ change,
30
+ mount,
31
+ clean,
32
+ }) as EventState<ClipboardState>
33
+
34
+ self.snapshot = [self]
35
+
36
+ return self
37
+ }
@@ -0,0 +1,19 @@
1
+ import { useSyncExternalStore } from 'react'
2
+ import { clipboardEvent } from '.'
3
+ import { EventState } from 'reev/src'
4
+ import { ClipboardState } from './types'
5
+
6
+ let self: EventState<ClipboardState>
7
+
8
+ const subscribe = (callback = () => {}) => {
9
+ self({ callback }).mount()
10
+ return () => self({ callback }).clean()
11
+ }
12
+
13
+ const getSnapshot = () => self.snapshot
14
+
15
+ export const useClipboard = () => {
16
+ if (!self) self = clipboardEvent()
17
+ const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)
18
+ return ret
19
+ }
@@ -0,0 +1,10 @@
1
+ export interface ClipboardState {
2
+ snapshot: [ClipboardState]
3
+ clipboard: string
4
+ callback(): void
5
+ change(): void
6
+ mount(): void
7
+ clean(): void
8
+ }
9
+
10
+ export type ClipboardArg = Partial<ClipboardState> | ClipboardState['change']
@@ -0,0 +1,33 @@
1
+ import { EventState, event } from 'reev/src'
2
+ import { GeolocationState } from './types'
3
+
4
+ export * from './types'
5
+
6
+ export const geolocationEvent = () => {
7
+ const change = () => {
8
+ navigator.geolocation.getCurrentPosition((geolocation) => {
9
+ self.geolocation = geolocation
10
+ self.snapshot = [self]
11
+ self.callback()
12
+ })
13
+ }
14
+
15
+ const mount = () => {
16
+ self.change()
17
+ self.id = navigator.geolocation.watchPosition(self.change)
18
+ }
19
+
20
+ const clean = () => {
21
+ if (typeof self.id !== 'undefined') navigator.geolocation.clearWatch(self.id)
22
+ }
23
+
24
+ const self = event({
25
+ change,
26
+ mount,
27
+ clean,
28
+ }) as EventState<GeolocationState>
29
+
30
+ self.snapshot = [self]
31
+
32
+ return self
33
+ }
@@ -0,0 +1,19 @@
1
+ import { EventState } from 'reev/src'
2
+ import { useSyncExternalStore } from 'react'
3
+ import { GeolocationState } from './types'
4
+ import { geolocationEvent } from '.'
5
+
6
+ let self: EventState<GeolocationState>
7
+
8
+ const subscribe = (callback = () => {}) => {
9
+ self({ callback }).mount()
10
+ return () => self({ callback }).clean()
11
+ }
12
+
13
+ const getSnapshot = () => self.snapshot
14
+
15
+ export const useGeolocation = () => {
16
+ if (!self) self = geolocationEvent()
17
+ const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)
18
+ return ret
19
+ }
@@ -0,0 +1,11 @@
1
+ export interface GeolocationState {
2
+ snapshot: [GeolocationState]
3
+ geolocation: any
4
+ id: number
5
+ callback(): void
6
+ change(): void
7
+ mount(): void
8
+ clean(): void
9
+ }
10
+
11
+ export type GeolocationArg = Partial<GeolocationState> | GeolocationState['change']
package/src/index.ts ADDED
@@ -0,0 +1,7 @@
1
+ export * from './battery'
2
+ export * from './clipboard'
3
+ export * from './geolocation'
4
+ export * from './mediaQuery'
5
+ export * from './online'
6
+ export * from './orient'
7
+ export * from './windowSize'
@@ -0,0 +1,5 @@
1
+ import { event } from 'reev/src'
2
+
3
+ export * from './types'
4
+
5
+ export const mediaQueryEvent = () => {}
@@ -0,0 +1 @@
1
+ export const useMediaQuery = () => {}
@@ -0,0 +1,9 @@
1
+ export interface MediaQueryState {
2
+ snapshot: [MediaQueryState]
3
+ callback(): void
4
+ change(): void
5
+ mount(): void
6
+ clean(): void
7
+ }
8
+
9
+ export type MediaQueryArg = Partial<MediaQueryState> | MediaQueryState['change']
@@ -0,0 +1,31 @@
1
+ import { OnlineState } from './types'
2
+ import { EventState, event } from 'reev/src'
3
+
4
+ export * from './types'
5
+
6
+ export const onlineEvent = () => {
7
+ const change = () => {
8
+ self.online = navigator.onLine
9
+ self.snapshot = [self]
10
+ self.callback()
11
+ }
12
+
13
+ const mount = () => {
14
+ self.change()
15
+ window.addEventListener('online', self.change)
16
+ window.addEventListener('offline', self.change)
17
+ }
18
+ const clean = () => {
19
+ window.removeEventListener('online', self.change)
20
+ window.removeEventListener('offline', self.change)
21
+ }
22
+ const self = event({
23
+ change,
24
+ mount,
25
+ clean,
26
+ }) as EventState<OnlineState>
27
+
28
+ self.snapshot = [self]
29
+
30
+ return self
31
+ }
@@ -0,0 +1,19 @@
1
+ import { useSyncExternalStore } from 'react'
2
+ import { onlineEvent } from '.'
3
+ import { EventState } from 'reev/src'
4
+ import { OnlineState } from './types'
5
+
6
+ let self: EventState<OnlineState>
7
+
8
+ const subscribe = (callback = () => {}) => {
9
+ self({ callback }).mount()
10
+ return () => self({ callback }).clean()
11
+ }
12
+
13
+ const getSnapshot = () => self.snapshot
14
+
15
+ export const useOnline = () => {
16
+ if (!self) self = onlineEvent()
17
+ const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)
18
+ return ret
19
+ }
@@ -0,0 +1,10 @@
1
+ export interface OnlineState {
2
+ snapshot: [OnlineState]
3
+ online: boolean
4
+ callback(): void
5
+ change(): void
6
+ mount(): void
7
+ clean(): void
8
+ }
9
+
10
+ export type OnlineArg = Partial<OnlineState> | OnlineState['change']
@@ -0,0 +1,56 @@
1
+ import { EventState, event } from 'reev/src'
2
+ import { OrientState } from './types'
3
+ import { addVec3, subVec3, vec3 } from './utils'
4
+
5
+ export * from './types'
6
+
7
+ export const orientEvent = () => {
8
+ const initValues = () => {
9
+ self.active = self._active = false
10
+ vec3(0, 0, 0, self.value)
11
+ vec3(0, 0, 0, self._value)
12
+ vec3(0, 0, 0, self.delta)
13
+ vec3(0, 0, 0, self.movement)
14
+ }
15
+
16
+ const change = (e: any) => {
17
+ self._active = self.active
18
+ self._value = self.value
19
+ self.value = [90 - (e.alpha ?? 90), e.beta ?? 0, e.gamma ?? 0]
20
+ if (self._active) {
21
+ subVec3(self.value, self._value, self.delta)
22
+ addVec3(self.offset, self.delta, self.offset)
23
+ addVec3(self.offset, self.delta, self.movement)
24
+ }
25
+ self.snapshot = [self]
26
+ self.callback()
27
+ }
28
+
29
+ const mount = () => {
30
+ initValues()
31
+ self.active = true
32
+ window.addEventListener('deviceorientation', self.change)
33
+ }
34
+
35
+ const clean = () => {
36
+ initValues()
37
+ window.removeEventListener('deviceorientation', self.change)
38
+ }
39
+
40
+ const self = event({
41
+ active: false,
42
+ _active: false,
43
+ _value: vec3(),
44
+ value: vec3(),
45
+ delta: vec3(),
46
+ offset: vec3(),
47
+ movement: vec3(),
48
+ mount,
49
+ clean,
50
+ change,
51
+ }) as EventState<OrientState>
52
+
53
+ self.snapshot = [self]
54
+
55
+ return self
56
+ }
@@ -0,0 +1,19 @@
1
+ import { useSyncExternalStore } from 'react'
2
+ import { orientEvent } from '.'
3
+ import { OrientState } from './types'
4
+ import { EventState } from 'reev/src'
5
+
6
+ let self: EventState<OrientState>
7
+
8
+ const subscribe = (callback = () => {}) => {
9
+ self({ callback }).mount()
10
+ return () => self({ callback }).clean()
11
+ }
12
+
13
+ const getSnapshot = () => self.snapshot
14
+
15
+ export const useOrient = () => {
16
+ if (!self) self = orientEvent()
17
+ const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)
18
+ return ret
19
+ }
@@ -0,0 +1,19 @@
1
+ import { Vec3 } from './utils'
2
+
3
+ export interface OrientState {
4
+ snapshot: [OrientState]
5
+ active: boolean
6
+ _active: boolean
7
+ _value: Vec3
8
+ value: Vec3
9
+ delta: Vec3
10
+ offset: Vec3
11
+ movement: Vec3
12
+ memo: any
13
+ callback(): void
14
+ change(): void
15
+ mount(): void
16
+ clean(): void
17
+ }
18
+
19
+ export type OrientArg = Partial<OrientState> | OrientState['change']
@@ -0,0 +1,36 @@
1
+ /**
2
+ * CALCULATE VECTOR
3
+ * REF: https://github.com/toji/gl-matrix/blob/master/src/vec2.js
4
+ */
5
+
6
+ const Vec = typeof Float32Array !== 'undefined' ? Float32Array : Array
7
+
8
+ export const vec3 = (x = 0, y = 0, z = 0, out = new Vec(3)): Vec3 => {
9
+ out[0] = x
10
+ out[1] = y
11
+ out[2] = z
12
+ return out as Vec3
13
+ }
14
+
15
+ export type Vec3 = [x: number, y: number, z: number]
16
+
17
+ export const addVec3 = (a: Vec3, b: Vec3, out = vec3()): Vec3 => {
18
+ out[0] = a[0] + b[0]
19
+ out[1] = a[1] + b[1]
20
+ out[2] = a[2] + b[2]
21
+ return out
22
+ }
23
+
24
+ export const subVec3 = (a: Vec3, b: Vec3, out = vec3()): Vec3 => {
25
+ out[0] = a[0] - b[0]
26
+ out[1] = a[1] - b[1]
27
+ out[2] = a[2] - b[2]
28
+ return out
29
+ }
30
+
31
+ export const cpVec3 = (a: Vec3, out = vec3()): Vec3 => {
32
+ out[0] = a[0]
33
+ out[1] = a[1]
34
+ out[2] = a[2]
35
+ return out
36
+ }
package/src/react.ts ADDED
@@ -0,0 +1,7 @@
1
+ export * from './battery/react'
2
+ export * from './clipboard/react'
3
+ export * from './geolocation/react'
4
+ export * from './mediaQuery/react'
5
+ export * from './online/react'
6
+ export * from './orient/react'
7
+ export * from './windowSize/react'
package/src/utils.ts ADDED
@@ -0,0 +1 @@
1
+ export const isF = (f: unknown): f is Function => typeof f === 'function'
@@ -0,0 +1,34 @@
1
+ import { EventState, event } from 'reev/src'
2
+ import { WindowSizeState } from './types'
3
+
4
+ export * from './types'
5
+
6
+ export const windowSizeEvent = () => {
7
+ const mount = () => {
8
+ self.change()
9
+ window.addEventListener('resize', self.change)
10
+ }
11
+
12
+ const clean = () => {
13
+ window.removeEventListener('resize', self.change)
14
+ }
15
+
16
+ const change = () => {
17
+ self.callback()
18
+ self.snapshot = [self]
19
+ self.width = window.innerWidth
20
+ self.height = window.innerHeight
21
+ }
22
+
23
+ const self = event({
24
+ width: 1920,
25
+ height: 1080,
26
+ change,
27
+ mount,
28
+ clean,
29
+ }) as EventState<WindowSizeState>
30
+
31
+ self.snapshot = [self]
32
+
33
+ return self
34
+ }
@@ -0,0 +1,19 @@
1
+ import { useSyncExternalStore } from 'react'
2
+ import { windowSizeEvent } from './index'
3
+ import { WindowSizeState } from './types'
4
+ import { EventState } from 'reev/src'
5
+
6
+ let self: EventState<WindowSizeState>
7
+
8
+ const subscribe = (callback = () => {}) => {
9
+ self({ callback }).mount()
10
+ return () => self({ callback }).clean()
11
+ }
12
+
13
+ const getSnapshot = () => self.snapshot
14
+
15
+ export const useWindowSize = () => {
16
+ if (!self) self = windowSizeEvent()
17
+ const [ret] = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)
18
+ return ret
19
+ }
@@ -0,0 +1,11 @@
1
+ export interface WindowSizeState {
2
+ snapshot: [WindowSizeState]
3
+ width: number
4
+ height: number
5
+ callback(): void
6
+ change(): void
7
+ mount(): void
8
+ clean(): void
9
+ }
10
+
11
+ export type WindowSizeArg = Partial<WindowSizeState> | WindowSizeState['change']