@mediacubeco/react-native-base 0.1.7 → 2.0.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.
@@ -1,2 +1 @@
1
- "use strict";var t=require("axios"),e=require("@react-native-clipboard/clipboard"),s=require("react-native");function r(t){return t&&t.__esModule?t:{default:t}}var i=r(e);const n=t=>t instanceof Error,a=(t,...e)=>{if(t instanceof Function)return t(...e)},o=t=>{for(let e in t)return!1;return!0},c=(t="?",...e)=>{const s=(t&&(r=t,"string"==typeof r)?t:"?").toUpperCase();var r;const i=e.reduce((t,e,s,{length:r})=>{const i=s===r-1?[]:["|"];return t.push(e,...i),t},e.length?["-"]:[]);return[`[${s}]`,...i]};var u,d,l;(l=u||(u={})).StartGroup="group",l.EndGroup="groupEnd",l.Default="log",function(t){t.Info="%s",t.Success="%s",t.Warning="%s",t.Danger="%s"}(d||(d={}));class f{static formatted={info:(...t)=>f.info(...c(...t)),success:(...t)=>f.success(...c(...t)),warning:(...t)=>f.warning(...c(...t)),danger:(...t)=>f.danger(...c(...t))};static#t(t,...e){console[t](...e)}static startGroup(t,e,...s){f.#t(u.StartGroup,...((t,...e)=>["%c%s",t,...e])(`font-size: 16px;${e}`,...c(t,...s)))}static endGroup(){f.#t(u.EndGroup)}static info(...t){f.#t(u.Default,d.Info,...t)}static success(...t){f.#t(u.Default,d.Success,...t)}static warning(...t){f.#t(u.Default,d.Warning,...t)}static danger(...t){f.#t(u.Default,d.Danger,...t)}}class h{static ignore(t){}static create(t,e){return new Error(t,{cause:e})}static throw(t,e){throw h.create(t,e)}static capture(t,e){const{signal:s,message:r,payload:i,stack:a}=e,o=[r,n(t)?t.message:void 0].filter(Boolean);f.formatted.danger(s,...o,{error:t,payload:i,stack:a})}static forward(t,e){throw h.capture(t,e),t}static parse(e){const s="Some error!",r=0,i={};switch(!0){case t.isAxiosError(e):{const{status:t=r,data:n,config:a}=e.response??{},{message:c=s,errors:u=i}=n??{};return{message:c,status:t,errors:u,isExternal:o(u)}}case n(e):return{message:e.message,status:r,errors:i,isExternal:!0};default:return{message:s,status:r,errors:i,isExternal:!0}}}}class g{isDefaultPrevented=!1;constructor(){this.preventDefault=this.preventDefault.bind(this),this.overrideDefault=this.overrideDefault.bind(this)}preventDefault(){this.isDefaultPrevented=!0}overrideDefault(){this.isDefaultPrevented=!1}}class p{static get windowWidth(){return s.Dimensions.get("window").width}static get windowHeight(){return s.Dimensions.get("window").height}static get statusBarWidth(){return p.windowWidth}static get statusBarHeight(){return s.StatusBar.currentHeight??0}static get ratio(){const t=p.windowWidth/375,e=p.windowHeight/812;return Math.min(t,e)}static byWindowWidth(t){return p.windowWidth*t}static byWindowHeight(t){return p.windowHeight*t}static byRatio(t){return p.ratio*t}}var m;exports.PlatformOS=void 0,(m=exports.PlatformOS||(exports.PlatformOS={})).Ios="ios",m.Android="android";class w{static get OS(){return s.Platform.OS}static get version(){return s.Platform.Version}static get isIos(){return"ios"===w.OS}static get isAndroid(){return"android"===w.OS}static by(t,e=exports.PlatformOS.Ios){return s.Platform.select({...t,default:t[e]})}}exports.Clipboard=class{static copy(t){return f.formatted.info("copy",t),i.default.setString(t.toString())}static async paste(){const t=await i.default.getString();return f.formatted.info("paste",t),t}},exports.Dimensions=p,exports.ErrorHandler=h,exports.EventEmitter=class{#e={};constructor(){this.emit=this.emit.bind(this),this.on=this.on.bind(this),this.off=this.off.bind(this),this.clear=this.clear.bind(this)}get eventNameList(){return Object.keys(this.#e)}emit(t,e,s){const r=this.#e[t];if(!r)return a(s);const{event:i,listenerList:n}=r;n.forEach(t=>a(t,{...i,...e})),!i.isDefaultPrevented&&a(s)}on(t,e){const s=this.#e[t];return s?s.listenerList.push(e):this.#e[t]={event:new g,listenerList:[e]},()=>this.off(t,e)}off(t,e){const s=this.#e[t];if(!s)return;const{event:r,listenerList:i}=s;this.#e[t]={event:r,listenerList:i.filter(t=>t!==e)},r.overrideDefault()}clear(t){delete this.#e[t]}},exports.Log=f,exports.Platform=w;
2
- //# sourceMappingURL=index.cjs.map
1
+ "use strict";var t=require("@mediacubeco/react-base/helpers"),e=require("@react-native-clipboard/clipboard"),r=require("react-native");function i(t){return t&&t.__esModule?t:{default:t}}var o=i(e);class s{static get windowWidth(){return r.Dimensions.get("window").width}static get windowHeight(){return r.Dimensions.get("window").height}static get statusBarWidth(){return s.windowWidth}static get statusBarHeight(){return r.StatusBar.currentHeight??0}static get ratio(){const t=s.windowWidth/375,e=s.windowHeight/812;return Math.min(t,e)}static byWindowWidth(t){return s.windowWidth*t}static byWindowHeight(t){return s.windowHeight*t}static byRatio(t){return s.ratio*t}}var a;exports.PlatformOS=void 0,(a=exports.PlatformOS||(exports.PlatformOS={})).Ios="ios",a.Android="android";class n{static get OS(){return r.Platform.OS}static get version(){return r.Platform.Version}static get isIos(){return"ios"===n.OS}static get isAndroid(){return"android"===n.OS}static get hasLiquidGlass(){const[t]=n.version.toString().split(".");return n.isIos&&Number(t)>=26}static by(t,e=exports.PlatformOS.Ios){return r.Platform.select({...t,default:t[e]})}}exports.Clipboard=class{static copy(e){return t.Log.formatted.info("copy",e),o.default.setString(e.toString())}static async paste(){const e=await o.default.getString();return t.Log.formatted.info("paste",e),e}},exports.Dimensions=s,exports.Platform=n,Object.keys(t).forEach(function(e){"default"===e||Object.prototype.hasOwnProperty.call(exports,e)||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return t[e]}})});
@@ -1,5 +1,5 @@
1
- export * from '@mediacubeco/javascript-base/helpers';
2
- import { Include, BaseRecord } from '@mediacubeco/javascript-base/types';
1
+ export * from '@mediacubeco/react-base/helpers';
2
+ import { Include, BaseRecord } from '@mediacubeco/react-base/types';
3
3
 
4
4
  type ClipboardValue = string;
5
5
 
@@ -37,8 +37,8 @@ declare class Platform {
37
37
  static get version(): string | number;
38
38
  static get isIos(): boolean;
39
39
  static get isAndroid(): boolean;
40
- static by<Value>(data: PlatformByData<Value>, defaultOS?: PlatformRequiredOS): Value;
40
+ static get hasLiquidGlass(): boolean;
41
+ static by<Value>(data: PlatformByData<Value>, defaultOS?: PlatformRequiredOS): unknown;
41
42
  }
42
43
 
43
44
  export { Clipboard, Dimensions, Platform, PlatformOS };
44
- //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1 @@
1
- import{isAxiosError as t}from"axios";import e from"@react-native-clipboard/clipboard";import{Dimensions as s,StatusBar as r,Platform as i}from"react-native";const n=t=>t instanceof Error,a=(t,...e)=>{if(t instanceof Function)return t(...e)},o=t=>{for(let e in t)return!1;return!0},c=(t="?",...e)=>{const s=(t&&(r=t,"string"==typeof r)?t:"?").toUpperCase();var r;const i=e.reduce((t,e,s,{length:r})=>{const i=s===r-1?[]:["|"];return t.push(e,...i),t},e.length?["-"]:[]);return[`[${s}]`,...i]};var u,d,f;(f=u||(u={})).StartGroup="group",f.EndGroup="groupEnd",f.Default="log",function(t){t.Info="%s",t.Success="%s",t.Warning="%s",t.Danger="%s"}(d||(d={}));class h{static formatted={info:(...t)=>h.info(...c(...t)),success:(...t)=>h.success(...c(...t)),warning:(...t)=>h.warning(...c(...t)),danger:(...t)=>h.danger(...c(...t))};static#t(t,...e){console[t](...e)}static startGroup(t,e,...s){h.#t(u.StartGroup,...((t,...e)=>["%c%s",t,...e])(`font-size: 16px;${e}`,...c(t,...s)))}static endGroup(){h.#t(u.EndGroup)}static info(...t){h.#t(u.Default,d.Info,...t)}static success(...t){h.#t(u.Default,d.Success,...t)}static warning(...t){h.#t(u.Default,d.Warning,...t)}static danger(...t){h.#t(u.Default,d.Danger,...t)}}class l{static ignore(t){}static create(t,e){return new Error(t,{cause:e})}static throw(t,e){throw l.create(t,e)}static capture(t,e){const{signal:s,message:r,payload:i,stack:a}=e,o=[r,n(t)?t.message:void 0].filter(Boolean);h.formatted.danger(s,...o,{error:t,payload:i,stack:a})}static forward(t,e){throw l.capture(t,e),t}static parse(e){const s="Some error!",r=0,i={};switch(!0){case t(e):{const{status:t=r,data:n,config:a}=e.response??{},{message:c=s,errors:u=i}=n??{};return{message:c,status:t,errors:u,isExternal:o(u)}}case n(e):return{message:e.message,status:r,errors:i,isExternal:!0};default:return{message:s,status:r,errors:i,isExternal:!0}}}}class g{isDefaultPrevented=!1;constructor(){this.preventDefault=this.preventDefault.bind(this),this.overrideDefault=this.overrideDefault.bind(this)}preventDefault(){this.isDefaultPrevented=!0}overrideDefault(){this.isDefaultPrevented=!1}}class m{#e={};constructor(){this.emit=this.emit.bind(this),this.on=this.on.bind(this),this.off=this.off.bind(this),this.clear=this.clear.bind(this)}get eventNameList(){return Object.keys(this.#e)}emit(t,e,s){const r=this.#e[t];if(!r)return a(s);const{event:i,listenerList:n}=r;n.forEach(t=>a(t,{...i,...e})),!i.isDefaultPrevented&&a(s)}on(t,e){const s=this.#e[t];return s?s.listenerList.push(e):this.#e[t]={event:new g,listenerList:[e]},()=>this.off(t,e)}off(t,e){const s=this.#e[t];if(!s)return;const{event:r,listenerList:i}=s;this.#e[t]={event:r,listenerList:i.filter(t=>t!==e)},r.overrideDefault()}clear(t){delete this.#e[t]}}class p{static copy(t){return h.formatted.info("copy",t),e.setString(t.toString())}static async paste(){const t=await e.getString();return h.formatted.info("paste",t),t}}class w{static get windowWidth(){return s.get("window").width}static get windowHeight(){return s.get("window").height}static get statusBarWidth(){return w.windowWidth}static get statusBarHeight(){return r.currentHeight??0}static get ratio(){const t=w.windowWidth/375,e=w.windowHeight/812;return Math.min(t,e)}static byWindowWidth(t){return w.windowWidth*t}static byWindowHeight(t){return w.windowHeight*t}static byRatio(t){return w.ratio*t}}var v;!function(t){t.Ios="ios",t.Android="android"}(v||(v={}));class D{static get OS(){return i.OS}static get version(){return i.Version}static get isIos(){return"ios"===D.OS}static get isAndroid(){return"android"===D.OS}static by(t,e=v.Ios){return i.select({...t,default:t[e]})}}export{p as Clipboard,w as Dimensions,l as ErrorHandler,m as EventEmitter,h as Log,D as Platform,v as PlatformOS};
2
- //# sourceMappingURL=index.mjs.map
1
+ import{Log as t}from"@mediacubeco/react-base/helpers";export*from"@mediacubeco/react-base/helpers";import i from"@react-native-clipboard/clipboard";import{Dimensions as r,StatusBar as e,Platform as s}from"react-native";class a{static copy(r){return t.formatted.info("copy",r),i.setString(r.toString())}static async paste(){const r=await i.getString();return t.formatted.info("paste",r),r}}class o{static get windowWidth(){return r.get("window").width}static get windowHeight(){return r.get("window").height}static get statusBarWidth(){return o.windowWidth}static get statusBarHeight(){return e.currentHeight??0}static get ratio(){const t=o.windowWidth/375,i=o.windowHeight/812;return Math.min(t,i)}static byWindowWidth(t){return o.windowWidth*t}static byWindowHeight(t){return o.windowHeight*t}static byRatio(t){return o.ratio*t}}var n;!function(t){t.Ios="ios",t.Android="android"}(n||(n={}));class c{static get OS(){return s.OS}static get version(){return s.Version}static get isIos(){return"ios"===c.OS}static get isAndroid(){return"android"===c.OS}static get hasLiquidGlass(){const[t]=c.version.toString().split(".");return c.isIos&&Number(t)>=26}static by(t,i=n.Ios){return s.select({...t,default:t[i]})}}export{a as Clipboard,o as Dimensions,c as Platform,n as PlatformOS};
@@ -1,2 +1 @@
1
- "use strict";var e=require("react"),t=require("react-native");require("axios"),require("@react-native-clipboard/clipboard");const n=e=>(e=>void 0===e)(e)||(e=>null===e)(e),r=(e,...t)=>{if((e=>e instanceof Function)(e))return e(...t)};var o,a,i,s;!function(e){e.StartGroup="group",e.EndGroup="groupEnd",e.Default="log"}(o||(o={})),function(e){e.Info="%s",e.Success="%s",e.Warning="%s",e.Danger="%s"}(a||(a={})),function(e){e.Ios="ios",e.Android="android"}(i||(i={}));class u{static get OS(){return t.Platform.OS}static get version(){return t.Platform.Version}static get isIos(){return"ios"===u.OS}static get isAndroid(){return"android"===u.OS}static by(e,n=i.Ios){return t.Platform.select({...e,default:e[n]})}}!function(e){e.Active="active",e.Inactive="inactive",e.Background="background",e.Extension="extension",e.Unknown="unknown"}(s||(s={}));const c=({onFocus:e,onBlur:n,...o})=>{const a=[];return u.isAndroid&&a.push(t.AppState.addEventListener("focus",t=>r(e,t)),t.AppState.addEventListener("blur",e=>r(n,e))),a.push(t.AppState.addEventListener("change",e=>(({state:e,handlers:t})=>{const{onActive:n,onInactive:o,onBackground:a,onExtension:i,onUnknown:u,onChange:c}=t??{},l={[s.Active]:n,[s.Inactive]:o,[s.Background]:a,[s.Extension]:i,[s.Unknown]:u}[e];r(c,e),r(l,e)})({state:e,handlers:o}))),{remove(){a.forEach(e=>e.remove())}}};var l;!function(e){e.onWillShow="keyboardWillShow",e.onDidShow="keyboardDidShow",e.onWillHide="keyboardWillHide",e.onDidHide="keyboardDidHide",e.onWillChangeFrame="keyboardWillChangeFrame",e.onDidChangeFrame="keyboardDidChangeFrame"}(l||(l={}));const d=e=>{const r=((e,t)=>{const n=Object.entries(e);return Object.fromEntries(n.map(([e,n],r,o)=>[e,t(e,n,r,o)]))})(e,(e,r)=>{if(!n(r))return t.Keyboard.addListener(l[e],r)});return{remove:()=>(e=>e.filter(e=>!n(e)))(Object.values(r)).map(e=>e.remove())}},h={top:0,left:0,width:0,height:0},g={top:null,left:null,width:null,height:null};const p={x:0,y:0,width:0,height:0,pageX:0,pageY:0},f={left:0,top:0,width:0,height:0},m={x:0,y:0,width:0,height:0};exports.DEFAULT_LAYOUT=h,exports.DEFAULT_NULLABLE_LAYOUT=g,exports.getResponder=e=>{const t=e.current?.getScrollResponder()??null,n=t?.getInnerViewRef?.()??null,r=t?.getNativeScrollRef?.()??null;return{responder:t,inner:n,outer:r}},exports.useAppState=t=>{e.useEffect(()=>{const e=c(t);return()=>e.remove()},[t])},exports.useKeyboard=t=>{e.useEffect(()=>{const e=d(t);return()=>{e.remove()}},[t])},exports.useLayout=function({onLayout:t,isNullable:n}={isNullable:!1}){const[o,a]=e.useState(n?g:h),i=e.useCallback(e=>{r(t,e);const{layout:n}=e.nativeEvent,{y:o,x:i,width:s,height:u}=n;a({top:o,left:i,width:s,height:u})},[t]);return[o,i]},exports.useMeasures=()=>{const t=e.useRef(p),r=e.useRef(f),o=e.useRef(m),a=e.useCallback(async(e,t,r)=>new Promise(o=>{n(e)?o(t):r(e,o)}),[]),i=e.useCallback(e=>a(e,p,(e,n)=>{e.measure((e=0,r=0,o=0,a=0,i=0,s=0)=>{t.current={x:e,y:r,width:o,height:a,pageX:i,pageY:s},n(t.current)})}),[]),s=e.useCallback((e,t)=>a(e,f,(e,n)=>{e.measureLayout(t,(e=0,t=0,o=0,a=0)=>{r.current={left:e,top:t,width:o,height:a},n(r.current)})}),[]),u=e.useCallback(e=>a(e,m,(e,t)=>{e.measureInWindow((e=0,n=0,r=0,a=0)=>{o.current={x:e,y:n,width:r,height:a},t(o.current)})}),[]);return{measuresRef:t,measuresInContainerRef:r,measuresInWindowRef:o,calculateMeasures:i,calculateMeasuresInContainer:s,calculateMeasuresInWindow:u}};
2
- //# sourceMappingURL=index.cjs.map
1
+ "use strict";var e,t,n=require("react"),r=require("react-native"),a=require("@mediacubeco/react-base/utils");require("@mediacubeco/react-base/helpers"),require("@react-native-clipboard/clipboard"),function(e){e.Ios="ios",e.Android="android"}(e||(e={}));class o{static get OS(){return r.Platform.OS}static get version(){return r.Platform.Version}static get isIos(){return"ios"===o.OS}static get isAndroid(){return"android"===o.OS}static get hasLiquidGlass(){const[e]=o.version.toString().split(".");return o.isIos&&Number(e)>=26}static by(t,n=e.Ios){return r.Platform.select({...t,default:t[n]})}}!function(e){e.Active="active",e.Inactive="inactive",e.Background="background",e.Extension="extension",e.Unknown="unknown"}(t||(t={}));const s=({onFocus:e,onBlur:n,...s})=>{const i=[];return o.isAndroid&&i.push(r.AppState.addEventListener("focus",t=>a.runCallback(e,t)),r.AppState.addEventListener("blur",e=>a.runCallback(n,e))),i.push(r.AppState.addEventListener("change",e=>(({state:e,handlers:n})=>{const{onActive:r,onInactive:o,onBackground:s,onExtension:i,onUnknown:u,onChange:l}=n??{},c={[t.Active]:r,[t.Inactive]:o,[t.Background]:s,[t.Extension]:i,[t.Unknown]:u}[e];a.runCallback(l,e),a.runCallback(c,e)})({state:e,handlers:s}))),{remove(){i.forEach(e=>e.remove())}}};var i;!function(e){e.onWillShow="keyboardWillShow",e.onDidShow="keyboardDidShow",e.onWillHide="keyboardWillHide",e.onDidHide="keyboardDidHide",e.onWillChangeFrame="keyboardWillChangeFrame",e.onDidChangeFrame="keyboardDidChangeFrame"}(i||(i={}));const u={top:0,left:0,width:0,height:0},l={top:null,left:null,width:null,height:null};const c={x:0,y:0,width:0,height:0,pageX:0,pageY:0},d={left:0,top:0,width:0,height:0},h={x:0,y:0,width:0,height:0};exports.DEFAULT_LAYOUT=u,exports.DEFAULT_NULLABLE_LAYOUT=l,exports.getResponder=e=>{const t=e.current?.getScrollResponder()??null,n=t?.getInnerViewRef?.()??null,r=t?.getNativeScrollRef?.()??null;return{responder:t,inner:n,outer:r}},exports.useAppState=e=>{n.useEffect(()=>{const t=s(e);return()=>t.remove()},[e])},exports.useKeyboard=e=>{n.useEffect(()=>{const t=(e=>{const t=a.mapRecord(e,(e,t)=>{if(!a.isNullable(t))return r.Keyboard.addListener(i[e],t)});return{remove:()=>a.filterNullableValues(Object.values(t)).map(e=>e.remove())}})(e);return()=>t.remove()},[e])},exports.useLayout=function({onLayout:e,isNullable:t}={isNullable:!1}){const[r,o]=n.useState(t?l:u),s=n.useCallback(t=>{a.runCallback(e,t);const{layout:n}=t.nativeEvent,{y:r,x:s,width:i,height:u}=n;o({top:r,left:s,width:i,height:u})},[e]);return[r,s]},exports.useMeasures=()=>{const e=n.useRef(c),t=n.useRef(d),r=n.useRef(h),o=n.useCallback(async(e,t,n)=>new Promise(r=>{a.isNullable(e)?r(t):n(e,r)}),[]),s=n.useCallback(t=>o(t,c,(t,n)=>{t.measure((t=0,r=0,a=0,o=0,s=0,i=0)=>{e.current={x:t,y:r,width:a,height:o,pageX:s,pageY:i},n(e.current)})}),[]),i=n.useCallback((e,n)=>o(e,d,(e,r)=>{e.measureLayout(n,(e=0,n=0,a=0,o=0)=>{t.current={left:e,top:n,width:a,height:o},r(t.current)})}),[]),u=n.useCallback(e=>o(e,h,(e,t)=>{e.measureInWindow((e=0,n=0,a=0,o=0)=>{r.current={x:e,y:n,width:a,height:o},t(r.current)})}),[]);return{measuresRef:e,measuresInContainerRef:t,measuresInWindowRef:r,calculateMeasures:s,calculateMeasuresInContainer:i,calculateMeasuresInWindow:u}};
@@ -1,6 +1,5 @@
1
- import * as react_native from 'react-native';
2
1
  import { AppStateStatus, KeyboardEventListener, LayoutChangeEvent, NativeMethods, View, ScrollView, FlatList, SectionList } from 'react-native';
3
- import { BaseRecord, Callback, KeyOf, Nullable } from '@mediacubeco/javascript-base/types';
2
+ import { BaseRecord, Callback, KeyOf, Nullable } from '@mediacubeco/react-base/types';
4
3
  import * as react from 'react';
5
4
  import { RefObject } from 'react';
6
5
 
@@ -95,11 +94,10 @@ declare const useMeasures: () => {
95
94
  };
96
95
 
97
96
  declare const getResponder: <ScrolledCurrent extends Nullable<ScrollView | FlatList | SectionList>, Current extends Nullable<View>>(scrolledRef: RefObject<ScrolledCurrent>) => {
98
- responder: react_native.ScrollResponderMixin | react.JSX.Element | null;
97
+ responder: any;
99
98
  inner: Current;
100
99
  outer: Current;
101
100
  };
102
101
 
103
102
  export { DEFAULT_LAYOUT, DEFAULT_NULLABLE_LAYOUT, getResponder, useAppState, useKeyboard, useLayout, useMeasures };
104
103
  export type { Layout, Measures, MeasuresInContainer, MeasuresInWindow, NullableLayout };
105
- //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1 @@
1
- import{useEffect as e,useState as n,useCallback as t,useRef as r}from"react";import{Platform as o,AppState as i,Keyboard as a}from"react-native";import"axios";import"@react-native-clipboard/clipboard";const s=e=>(e=>void 0===e)(e)||(e=>null===e)(e),u=(e,...n)=>{if((e=>e instanceof Function)(e))return e(...n)};var c,l,d,h;!function(e){e.StartGroup="group",e.EndGroup="groupEnd",e.Default="log"}(c||(c={})),function(e){e.Info="%s",e.Success="%s",e.Warning="%s",e.Danger="%s"}(l||(l={})),function(e){e.Ios="ios",e.Android="android"}(d||(d={}));class g{static get OS(){return o.OS}static get version(){return o.Version}static get isIos(){return"ios"===g.OS}static get isAndroid(){return"android"===g.OS}static by(e,n=d.Ios){return o.select({...e,default:e[n]})}}!function(e){e.Active="active",e.Inactive="inactive",e.Background="background",e.Extension="extension",e.Unknown="unknown"}(h||(h={}));const m=({onFocus:e,onBlur:n,...t})=>{const r=[];return g.isAndroid&&r.push(i.addEventListener("focus",n=>u(e,n)),i.addEventListener("blur",e=>u(n,e))),r.push(i.addEventListener("change",e=>(({state:e,handlers:n})=>{const{onActive:t,onInactive:r,onBackground:o,onExtension:i,onUnknown:a,onChange:s}=n??{},c={[h.Active]:t,[h.Inactive]:r,[h.Background]:o,[h.Extension]:i,[h.Unknown]:a}[e];u(s,e),u(c,e)})({state:e,handlers:t}))),{remove(){r.forEach(e=>e.remove())}}};var f;!function(e){e.onWillShow="keyboardWillShow",e.onDidShow="keyboardDidShow",e.onWillHide="keyboardWillHide",e.onDidHide="keyboardDidHide",e.onWillChangeFrame="keyboardWillChangeFrame",e.onDidChangeFrame="keyboardDidChangeFrame"}(f||(f={}));const v=e=>{const n=((e,n)=>{const t=Object.entries(e);return Object.fromEntries(t.map(([e,t],r,o)=>[e,n(e,t,r,o)]))})(e,(e,n)=>{if(!s(n))return a.addListener(f[e],n)});return{remove:()=>(e=>e.filter(e=>!s(e)))(Object.values(n)).map(e=>e.remove())}},p=n=>{e(()=>{const e=m(n);return()=>e.remove()},[n])},w=n=>{e(()=>{const e=v(n);return()=>{e.remove()}},[n])},b={top:0,left:0,width:0,height:0},y={top:null,left:null,width:null,height:null};function k({onLayout:e,isNullable:r}={isNullable:!1}){const[o,i]=n(r?y:b),a=t(n=>{u(e,n);const{layout:t}=n.nativeEvent,{y:r,x:o,width:a,height:s}=t;i({top:r,left:o,width:a,height:s})},[e]);return[o,a]}const I={x:0,y:0,width:0,height:0,pageX:0,pageY:0},S={left:0,top:0,width:0,height:0},x={x:0,y:0,width:0,height:0},E=()=>{const e=r(I),n=r(S),o=r(x),i=t(async(e,n,t)=>new Promise(r=>{s(e)?r(n):t(e,r)}),[]),a=t(n=>i(n,I,(n,t)=>{n.measure((n=0,r=0,o=0,i=0,a=0,s=0)=>{e.current={x:n,y:r,width:o,height:i,pageX:a,pageY:s},t(e.current)})}),[]),u=t((e,t)=>i(e,S,(e,r)=>{e.measureLayout(t,(e=0,t=0,o=0,i=0)=>{n.current={left:e,top:t,width:o,height:i},r(n.current)})}),[]),c=t(e=>i(e,x,(e,n)=>{e.measureInWindow((e=0,t=0,r=0,i=0)=>{o.current={x:e,y:t,width:r,height:i},n(o.current)})}),[]);return{measuresRef:e,measuresInContainerRef:n,measuresInWindowRef:o,calculateMeasures:a,calculateMeasuresInContainer:u,calculateMeasuresInWindow:c}},W=e=>{const n=e.current?.getScrollResponder()??null,t=n?.getInnerViewRef?.()??null,r=n?.getNativeScrollRef?.()??null;return{responder:n,inner:t,outer:r}};export{b as DEFAULT_LAYOUT,y as DEFAULT_NULLABLE_LAYOUT,W as getResponder,p as useAppState,w as useKeyboard,k as useLayout,E as useMeasures};
2
- //# sourceMappingURL=index.mjs.map
1
+ import{useEffect as e,useState as t,useCallback as n,useRef as r}from"react";import{Platform as o,AppState as i,Keyboard as a}from"react-native";import{runCallback as s,mapRecord as c,isNullable as u,filterNullableValues as l}from"@mediacubeco/react-base/utils";import"@mediacubeco/react-base/helpers";import"@react-native-clipboard/clipboard";var d,h;!function(e){e.Ios="ios",e.Android="android"}(d||(d={}));class g{static get OS(){return o.OS}static get version(){return o.Version}static get isIos(){return"ios"===g.OS}static get isAndroid(){return"android"===g.OS}static get hasLiquidGlass(){const[e]=g.version.toString().split(".");return g.isIos&&Number(e)>=26}static by(e,t=d.Ios){return o.select({...e,default:e[t]})}}!function(e){e.Active="active",e.Inactive="inactive",e.Background="background",e.Extension="extension",e.Unknown="unknown"}(h||(h={}));const m=({onFocus:e,onBlur:t,...n})=>{const r=[];return g.isAndroid&&r.push(i.addEventListener("focus",t=>s(e,t)),i.addEventListener("blur",e=>s(t,e))),r.push(i.addEventListener("change",e=>(({state:e,handlers:t})=>{const{onActive:n,onInactive:r,onBackground:o,onExtension:i,onUnknown:a,onChange:c}=t??{},u={[h.Active]:n,[h.Inactive]:r,[h.Background]:o,[h.Extension]:i,[h.Unknown]:a}[e];s(c,e),s(u,e)})({state:e,handlers:n}))),{remove(){r.forEach(e=>e.remove())}}};var v;!function(e){e.onWillShow="keyboardWillShow",e.onDidShow="keyboardDidShow",e.onWillHide="keyboardWillHide",e.onDidHide="keyboardDidHide",e.onWillChangeFrame="keyboardWillChangeFrame",e.onDidChangeFrame="keyboardDidChangeFrame"}(v||(v={}));const p=t=>{e(()=>{const e=m(t);return()=>e.remove()},[t])},w=t=>{e(()=>{const e=(e=>{const t=c(e,(e,t)=>{if(!u(t))return a.addListener(v[e],t)});return{remove:()=>l(Object.values(t)).map(e=>e.remove())}})(t);return()=>e.remove()},[t])},f={top:0,left:0,width:0,height:0},b={top:null,left:null,width:null,height:null};function y({onLayout:e,isNullable:r}={isNullable:!1}){const[o,i]=t(r?b:f),a=n(t=>{s(e,t);const{layout:n}=t.nativeEvent,{y:r,x:o,width:a,height:c}=n;i({top:r,left:o,width:a,height:c})},[e]);return[o,a]}const k={x:0,y:0,width:0,height:0,pageX:0,pageY:0},I={left:0,top:0,width:0,height:0},S={x:0,y:0,width:0,height:0},x=()=>{const e=r(k),t=r(I),o=r(S),i=n(async(e,t,n)=>new Promise(r=>{u(e)?r(t):n(e,r)}),[]),a=n(t=>i(t,k,(t,n)=>{t.measure((t=0,r=0,o=0,i=0,a=0,s=0)=>{e.current={x:t,y:r,width:o,height:i,pageX:a,pageY:s},n(e.current)})}),[]),s=n((e,n)=>i(e,I,(e,r)=>{e.measureLayout(n,(e=0,n=0,o=0,i=0)=>{t.current={left:e,top:n,width:o,height:i},r(t.current)})}),[]),c=n(e=>i(e,S,(e,t)=>{e.measureInWindow((e=0,n=0,r=0,i=0)=>{o.current={x:e,y:n,width:r,height:i},t(o.current)})}),[]);return{measuresRef:e,measuresInContainerRef:t,measuresInWindowRef:o,calculateMeasures:a,calculateMeasuresInContainer:s,calculateMeasuresInWindow:c}},W=e=>{const t=e.current?.getScrollResponder()??null,n=t?.getInnerViewRef?.()??null,r=t?.getNativeScrollRef?.()??null;return{responder:t,inner:n,outer:r}};export{f as DEFAULT_LAYOUT,b as DEFAULT_NULLABLE_LAYOUT,W as getResponder,p as useAppState,w as useKeyboard,y as useLayout,x as useMeasures};
package/dist/index.cjs CHANGED
@@ -1,2 +1 @@
1
- "use strict";var t=require("axios"),e=require("@react-native-clipboard/clipboard"),r=require("react-native"),s=require("react");function n(t){return t&&t.__esModule?t:{default:t}}var o=n(e);const i=t=>t instanceof Error,a=(t,...e)=>{if(t instanceof Function)return t(...e)},u=t=>{for(let e in t)return!1;return!0},c=(t="?",...e)=>{const r=(t&&(s=t,"string"==typeof s)?t:"?").toUpperCase();var s;const n=e.reduce((t,e,r,{length:s})=>{const n=r===s-1?[]:["|"];return t.push(e,...n),t},e.length?["-"]:[]);return[`[${r}]`,...n]};var l,p;!function(t){t.StartGroup="group",t.EndGroup="groupEnd",t.Default="log"}(l||(l={})),function(t){t.Info="%s",t.Success="%s",t.Warning="%s",t.Danger="%s"}(p||(p={}));let d=class t{static formatted={info:(...e)=>t.info(...c(...e)),success:(...e)=>t.success(...c(...e)),warning:(...e)=>t.warning(...c(...e)),danger:(...e)=>t.danger(...c(...e))};static#t(t,...e){console[t](...e)}static startGroup(e,r,...s){t.#t(l.StartGroup,...((t,...e)=>["%c%s",t,...e])(`font-size: 16px;${r}`,...c(e,...s)))}static endGroup(){t.#t(l.EndGroup)}static info(...e){t.#t(l.Default,p.Info,...e)}static success(...e){t.#t(l.Default,p.Success,...e)}static warning(...e){t.#t(l.Default,p.Warning,...e)}static danger(...e){t.#t(l.Default,p.Danger,...e)}},f=class{isDefaultPrevented=!1;constructor(){this.preventDefault=this.preventDefault.bind(this),this.overrideDefault=this.overrideDefault.bind(this)}preventDefault(){this.isDefaultPrevented=!0}overrideDefault(){this.isDefaultPrevented=!1}};class h{static get windowWidth(){return r.Dimensions.get("window").width}static get windowHeight(){return r.Dimensions.get("window").height}static get statusBarWidth(){return h.windowWidth}static get statusBarHeight(){return r.StatusBar.currentHeight??0}static get ratio(){const t=h.windowWidth/375,e=h.windowHeight/812;return Math.min(t,e)}static byWindowWidth(t){return h.windowWidth*t}static byWindowHeight(t){return h.windowHeight*t}static byRatio(t){return h.ratio*t}}var g;exports.PlatformOS=void 0,(g=exports.PlatformOS||(exports.PlatformOS={})).Ios="ios",g.Android="android";class m{static get OS(){return r.Platform.OS}static get version(){return r.Platform.Version}static get isIos(){return"ios"===m.OS}static get isAndroid(){return"android"===m.OS}static by(t,e=exports.PlatformOS.Ios){return r.Platform.select({...t,default:t[e]})}}const x=t=>void 0===t,w=t=>null===t,y=t=>x(t)||w(t),b=t=>"object"==typeof t,v=t=>Array.isArray(t),S=t=>t instanceof ArrayBuffer,E=t=>t instanceof Map,D=t=>t instanceof Set,k=t=>t instanceof Map,A=t=>t instanceof Set,L=t=>t instanceof Date,W=t=>t instanceof Error,P=t=>t instanceof RegExp,O=t=>t instanceof Promise,B=t=>t instanceof Function;const C=(t,...e)=>{if(B(t))return t(...e)},I=(t,e)=>{const r=Object.entries(t);return Object.fromEntries(r.map(([t,r],s,n)=>[t,e(t,r,s,n)]))},N=(t,e)=>!(!b(e)||!(t in e)),R=t=>t.filter(t=>!y(t));var H;!function(t){t.Active="active",t.Inactive="inactive",t.Background="background",t.Extension="extension",t.Unknown="unknown"}(H||(H={}));const F=({onFocus:t,onBlur:e,...s})=>{const n=[];return m.isAndroid&&n.push(r.AppState.addEventListener("focus",e=>C(t,e)),r.AppState.addEventListener("blur",t=>C(e,t))),n.push(r.AppState.addEventListener("change",t=>(({state:t,handlers:e})=>{const{onActive:r,onInactive:s,onBackground:n,onExtension:o,onUnknown:i,onChange:a}=e??{},u={[H.Active]:r,[H.Inactive]:s,[H.Background]:n,[H.Extension]:o,[H.Unknown]:i}[t];C(a,t),C(u,t)})({state:t,handlers:s}))),{remove(){n.forEach(t=>t.remove())}}};var M;!function(t){t.onWillShow="keyboardWillShow",t.onDidShow="keyboardDidShow",t.onWillHide="keyboardWillHide",t.onDidHide="keyboardDidHide",t.onWillChangeFrame="keyboardWillChangeFrame",t.onDidChangeFrame="keyboardDidChangeFrame"}(M||(M={}));const U=t=>{const e=I(t,(t,e)=>{if(!y(e))return r.Keyboard.addListener(M[t],e)});return{remove:()=>R(Object.values(e)).map(t=>t.remove())}},j={top:0,left:0,width:0,height:0},T={top:null,left:null,width:null,height:null};const G={x:0,y:0,width:0,height:0,pageX:0,pageY:0},V={left:0,top:0,width:0,height:0},_={x:0,y:0,width:0,height:0};exports.Clipboard=class{static copy(t){return d.formatted.info("copy",t),o.default.setString(t.toString())}static async paste(){const t=await o.default.getString();return d.formatted.info("paste",t),t}},exports.DEFAULT_LAYOUT=j,exports.DEFAULT_NULLABLE_LAYOUT=T,exports.Dimensions=h,exports.ErrorHandler=class e{static ignore(t){}static create(t,e){return new Error(t,{cause:e})}static throw(t,r){throw e.create(t,r)}static capture(t,e){const{signal:r,message:s,payload:n,stack:o}=e,a=[s,i(t)?t.message:void 0].filter(Boolean);d.formatted.danger(r,...a,{error:t,payload:n,stack:o})}static forward(t,r){throw e.capture(t,r),t}static parse(e){const r="Some error!",s=0,n={};switch(!0){case t.isAxiosError(e):{const{status:t=s,data:o,config:i}=e.response??{},{message:a=r,errors:c=n}=o??{};return{message:a,status:t,errors:c,isExternal:u(c)}}case i(e):return{message:e.message,status:s,errors:n,isExternal:!0};default:return{message:r,status:s,errors:n,isExternal:!0}}}},exports.EventEmitter=class{#e={};constructor(){this.emit=this.emit.bind(this),this.on=this.on.bind(this),this.off=this.off.bind(this),this.clear=this.clear.bind(this)}get eventNameList(){return Object.keys(this.#e)}emit(t,e,r){const s=this.#e[t];if(!s)return a(r);const{event:n,listenerList:o}=s;o.forEach(t=>a(t,{...n,...e})),!n.isDefaultPrevented&&a(r)}on(t,e){const r=this.#e[t];return r?r.listenerList.push(e):this.#e[t]={event:new f,listenerList:[e]},()=>this.off(t,e)}off(t,e){const r=this.#e[t];if(!r)return;const{event:s,listenerList:n}=r;this.#e[t]={event:s,listenerList:n.filter(t=>t!==e)},s.overrideDefault()}clear(t){delete this.#e[t]}},exports.Log=d,exports.Platform=m,exports.debounce=(t,e)=>{let r;return(...s)=>{r&&clearTimeout(r),r=setTimeout(()=>C(t,...s),e)}},exports.filterByProperty=(t,e="isVisible")=>t.filter(t=>!N(e,t)||t[e]),exports.filterNullableValues=R,exports.getResponder=t=>{const e=t.current?.getScrollResponder()??null,r=e?.getInnerViewRef?.()??null,s=e?.getNativeScrollRef?.()??null;return{responder:e,inner:r,outer:s}},exports.getValueByProperty=function(t,e,r){return 2===arguments.length?e[t]:e[t]??r},exports.hasProperty=N,exports.isAnyObject=b,exports.isArray=v,exports.isArrayBuffer=S,exports.isArrayEmpty=t=>0===t.length,exports.isBigint=t=>"bigint"==typeof t,exports.isBoolean=t=>"boolean"==typeof t,exports.isDate=L,exports.isError=W,exports.isFunction=B,exports.isMap=E,exports.isNaN=t=>Number.isNaN(t),exports.isNull=w,exports.isNullable=y,exports.isNumber=t=>"number"==typeof t,exports.isObject=t=>{const e=[v,S,E,D,k,A,L,W,P,O,B].some(e=>e(t));return!!t&&"object"==typeof t&&!e},exports.isObjectEmpty=t=>{for(let e in t)return!1;return!0},exports.isPromise=O,exports.isProxy=t=>t instanceof Proxy,exports.isRegExp=P,exports.isSet=D,exports.isString=t=>"string"==typeof t,exports.isSymbol=t=>"symbol"==typeof t,exports.isUndefined=x,exports.isWeakMap=k,exports.isWeakSet=A,exports.listenAppState=F,exports.listenKeyboard=U,exports.mapRecord=I,exports.runCallback=C,exports.throttle=(t,e)=>{let r=!0;return(...s)=>{r&&(C(t,...s),r=!1),setTimeout(()=>r=!0,e)}},exports.useAppState=t=>{s.useEffect(()=>{const e=F(t);return()=>e.remove()},[t])},exports.useKeyboard=t=>{s.useEffect(()=>{const e=U(t);return()=>{e.remove()}},[t])},exports.useLayout=function({onLayout:t,isNullable:e}={isNullable:!1}){const[r,n]=s.useState(e?T:j),o=s.useCallback(e=>{C(t,e);const{layout:r}=e.nativeEvent,{y:s,x:o,width:i,height:a}=r;n({top:s,left:o,width:i,height:a})},[t]);return[r,o]},exports.useMeasures=()=>{const t=s.useRef(G),e=s.useRef(V),r=s.useRef(_),n=s.useCallback(async(t,e,r)=>new Promise(s=>{y(t)?s(e):r(t,s)}),[]),o=s.useCallback(e=>n(e,G,(e,r)=>{e.measure((e=0,s=0,n=0,o=0,i=0,a=0)=>{t.current={x:e,y:s,width:n,height:o,pageX:i,pageY:a},r(t.current)})}),[]),i=s.useCallback((t,r)=>n(t,V,(t,s)=>{t.measureLayout(r,(t=0,r=0,n=0,o=0)=>{e.current={left:t,top:r,width:n,height:o},s(e.current)})}),[]),a=s.useCallback(t=>n(t,_,(t,e)=>{t.measureInWindow((t=0,s=0,n=0,o=0)=>{r.current={x:t,y:s,width:n,height:o},e(r.current)})}),[]);return{measuresRef:t,measuresInContainerRef:e,measuresInWindowRef:r,calculateMeasures:o,calculateMeasuresInContainer:i,calculateMeasuresInWindow:a}};
2
- //# sourceMappingURL=index.cjs.map
1
+ "use strict";var e=require("@mediacubeco/react-base/helpers"),t=require("@react-native-clipboard/clipboard"),r=require("react-native"),n=require("react"),o=require("@mediacubeco/react-base/utils"),a=require("@mediacubeco/react-base/services"),i=require("@mediacubeco/react-base/types");function s(e){return e&&e.__esModule?e:{default:e}}var u=s(t);class c{static get windowWidth(){return r.Dimensions.get("window").width}static get windowHeight(){return r.Dimensions.get("window").height}static get statusBarWidth(){return c.windowWidth}static get statusBarHeight(){return r.StatusBar.currentHeight??0}static get ratio(){const e=c.windowWidth/375,t=c.windowHeight/812;return Math.min(e,t)}static byWindowWidth(e){return c.windowWidth*e}static byWindowHeight(e){return c.windowHeight*e}static byRatio(e){return c.ratio*e}}var l,d;exports.PlatformOS=void 0,(l=exports.PlatformOS||(exports.PlatformOS={})).Ios="ios",l.Android="android";class p{static get OS(){return r.Platform.OS}static get version(){return r.Platform.Version}static get isIos(){return"ios"===p.OS}static get isAndroid(){return"android"===p.OS}static get hasLiquidGlass(){const[e]=p.version.toString().split(".");return p.isIos&&Number(e)>=26}static by(e,t=exports.PlatformOS.Ios){return r.Platform.select({...e,default:e[t]})}}!function(e){e.Active="active",e.Inactive="inactive",e.Background="background",e.Extension="extension",e.Unknown="unknown"}(d||(d={}));const h=({onFocus:e,onBlur:t,...n})=>{const a=[];return p.isAndroid&&a.push(r.AppState.addEventListener("focus",t=>o.runCallback(e,t)),r.AppState.addEventListener("blur",e=>o.runCallback(t,e))),a.push(r.AppState.addEventListener("change",e=>(({state:e,handlers:t})=>{const{onActive:r,onInactive:n,onBackground:a,onExtension:i,onUnknown:s,onChange:u}=t??{},c={[d.Active]:r,[d.Inactive]:n,[d.Background]:a,[d.Extension]:i,[d.Unknown]:s}[e];o.runCallback(u,e),o.runCallback(c,e)})({state:e,handlers:n}))),{remove(){a.forEach(e=>e.remove())}}};var f;!function(e){e.onWillShow="keyboardWillShow",e.onDidShow="keyboardDidShow",e.onWillHide="keyboardWillHide",e.onDidHide="keyboardDidHide",e.onWillChangeFrame="keyboardWillChangeFrame",e.onDidChangeFrame="keyboardDidChangeFrame"}(f||(f={}));const b=e=>{const t=o.mapRecord(e,(e,t)=>{if(!o.isNullable(t))return r.Keyboard.addListener(f[e],t)});return{remove:()=>o.filterNullableValues(Object.values(t)).map(e=>e.remove())}},g={top:0,left:0,width:0,height:0},w={top:null,left:null,width:null,height:null};const y={x:0,y:0,width:0,height:0,pageX:0,pageY:0},m={left:0,top:0,width:0,height:0},x={x:0,y:0,width:0,height:0};exports.Clipboard=class{static copy(t){return e.Log.formatted.info("copy",t),u.default.setString(t.toString())}static async paste(){const t=await u.default.getString();return e.Log.formatted.info("paste",t),t}},exports.DEFAULT_LAYOUT=g,exports.DEFAULT_NULLABLE_LAYOUT=w,exports.Dimensions=c,exports.Platform=p,exports.getResponder=e=>{const t=e.current?.getScrollResponder()??null,r=t?.getInnerViewRef?.()??null,n=t?.getNativeScrollRef?.()??null;return{responder:t,inner:r,outer:n}},exports.listenAppState=h,exports.listenKeyboard=b,exports.useAppState=e=>{n.useEffect(()=>{const t=h(e);return()=>t.remove()},[e])},exports.useKeyboard=e=>{n.useEffect(()=>{const t=b(e);return()=>t.remove()},[e])},exports.useLayout=function({onLayout:e,isNullable:t}={isNullable:!1}){const[r,a]=n.useState(t?w:g),i=n.useCallback(t=>{o.runCallback(e,t);const{layout:r}=t.nativeEvent,{y:n,x:i,width:s,height:u}=r;a({top:n,left:i,width:s,height:u})},[e]);return[r,i]},exports.useMeasures=()=>{const e=n.useRef(y),t=n.useRef(m),r=n.useRef(x),a=n.useCallback(async(e,t,r)=>new Promise(n=>{o.isNullable(e)?n(t):r(e,n)}),[]),i=n.useCallback(t=>a(t,y,(t,r)=>{t.measure((t=0,n=0,o=0,a=0,i=0,s=0)=>{e.current={x:t,y:n,width:o,height:a,pageX:i,pageY:s},r(e.current)})}),[]),s=n.useCallback((e,r)=>a(e,m,(e,n)=>{e.measureLayout(r,(e=0,r=0,o=0,a=0)=>{t.current={left:e,top:r,width:o,height:a},n(t.current)})}),[]),u=n.useCallback(e=>a(e,x,(e,t)=>{e.measureInWindow((e=0,n=0,o=0,a=0)=>{r.current={x:e,y:n,width:o,height:a},t(r.current)})}),[]);return{measuresRef:e,measuresInContainerRef:t,measuresInWindowRef:r,calculateMeasures:i,calculateMeasuresInContainer:s,calculateMeasuresInWindow:u}},Object.keys(e).forEach(function(t){"default"===t||Object.prototype.hasOwnProperty.call(exports,t)||Object.defineProperty(exports,t,{enumerable:!0,get:function(){return e[t]}})}),Object.keys(o).forEach(function(e){"default"===e||Object.prototype.hasOwnProperty.call(exports,e)||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return o[e]}})}),Object.keys(a).forEach(function(e){"default"===e||Object.prototype.hasOwnProperty.call(exports,e)||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return a[e]}})}),Object.keys(i).forEach(function(e){"default"===e||Object.prototype.hasOwnProperty.call(exports,e)||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return i[e]}})});
package/dist/index.d.ts CHANGED
@@ -1,10 +1,11 @@
1
- export * from '@mediacubeco/javascript-base/helpers';
2
- import { Include, BaseRecord, Callback, KeyOf, Nullable } from '@mediacubeco/javascript-base/types';
3
- import * as react_native from 'react-native';
1
+ export * from '@mediacubeco/react-base/helpers';
2
+ import { Include, BaseRecord, Callback, KeyOf, Nullable } from '@mediacubeco/react-base/types';
3
+ export * from '@mediacubeco/react-base/types';
4
4
  import { AppStateStatus, NativeEventSubscription, KeyboardEventListener, LayoutChangeEvent, NativeMethods, View, ScrollView, FlatList, SectionList } from 'react-native';
5
5
  import * as react from 'react';
6
6
  import { RefObject } from 'react';
7
- export * from '@mediacubeco/javascript-base/utils';
7
+ export * from '@mediacubeco/react-base/services';
8
+ export * from '@mediacubeco/react-base/utils';
8
9
 
9
10
  type ClipboardValue = string;
10
11
 
@@ -42,7 +43,8 @@ declare class Platform {
42
43
  static get version(): string | number;
43
44
  static get isIos(): boolean;
44
45
  static get isAndroid(): boolean;
45
- static by<Value>(data: PlatformByData<Value>, defaultOS?: PlatformRequiredOS): Value;
46
+ static get hasLiquidGlass(): boolean;
47
+ static by<Value>(data: PlatformByData<Value>, defaultOS?: PlatformRequiredOS): unknown;
46
48
  }
47
49
 
48
50
  type AppStateAdditionalHandlerName = 'onFocus' | 'onBlur';
@@ -140,11 +142,10 @@ declare const useMeasures: () => {
140
142
  };
141
143
 
142
144
  declare const getResponder: <ScrolledCurrent extends Nullable<ScrollView | FlatList | SectionList>, Current extends Nullable<View>>(scrolledRef: RefObject<ScrolledCurrent>) => {
143
- responder: react_native.ScrollResponderMixin | react.JSX.Element | null;
145
+ responder: any;
144
146
  inner: Current;
145
147
  outer: Current;
146
148
  };
147
149
 
148
150
  export { Clipboard, DEFAULT_LAYOUT, DEFAULT_NULLABLE_LAYOUT, Dimensions, Platform, PlatformOS, getResponder, listenAppState, listenKeyboard, useAppState, useKeyboard, useLayout, useMeasures };
149
151
  export type { AppStateHandlers, KeyboardHandlers, Layout, Measures, MeasuresInContainer, MeasuresInWindow, NullableLayout };
150
- //# sourceMappingURL=index.d.ts.map
package/dist/index.mjs CHANGED
@@ -1,2 +1 @@
1
- import{isAxiosError as t}from"axios";import e from"@react-native-clipboard/clipboard";import{Dimensions as s,StatusBar as r,Platform as n,AppState as i,Keyboard as a}from"react-native";import{useEffect as o,useState as c,useCallback as u,useRef as l}from"react";const d=t=>t instanceof Error,f=(t,...e)=>{if(t instanceof Function)return t(...e)},h=t=>{for(let e in t)return!1;return!0},g=(t="?",...e)=>{const s=(t&&(r=t,"string"==typeof r)?t:"?").toUpperCase();var r;const n=e.reduce((t,e,s,{length:r})=>{const n=s===r-1?[]:["|"];return t.push(e,...n),t},e.length?["-"]:[]);return[`[${s}]`,...n]};var m,p;!function(t){t.StartGroup="group",t.EndGroup="groupEnd",t.Default="log"}(m||(m={})),function(t){t.Info="%s",t.Success="%s",t.Warning="%s",t.Danger="%s"}(p||(p={}));let w=class t{static formatted={info:(...e)=>t.info(...g(...e)),success:(...e)=>t.success(...g(...e)),warning:(...e)=>t.warning(...g(...e)),danger:(...e)=>t.danger(...g(...e))};static#t(t,...e){console[t](...e)}static startGroup(e,s,...r){t.#t(m.StartGroup,...((t,...e)=>["%c%s",t,...e])(`font-size: 16px;${s}`,...g(e,...r)))}static endGroup(){t.#t(m.EndGroup)}static info(...e){t.#t(m.Default,p.Info,...e)}static success(...e){t.#t(m.Default,p.Success,...e)}static warning(...e){t.#t(m.Default,p.Warning,...e)}static danger(...e){t.#t(m.Default,p.Danger,...e)}},y=class e{static ignore(t){}static create(t,e){return new Error(t,{cause:e})}static throw(t,s){throw e.create(t,s)}static capture(t,e){const{signal:s,message:r,payload:n,stack:i}=e,a=[r,d(t)?t.message:void 0].filter(Boolean);w.formatted.danger(s,...a,{error:t,payload:n,stack:i})}static forward(t,s){throw e.capture(t,s),t}static parse(e){const s="Some error!",r=0,n={};switch(!0){case t(e):{const{status:t=r,data:i,config:a}=e.response??{},{message:o=s,errors:c=n}=i??{};return{message:o,status:t,errors:c,isExternal:h(c)}}case d(e):return{message:e.message,status:r,errors:n,isExternal:!0};default:return{message:s,status:r,errors:n,isExternal:!0}}}},v=class{isDefaultPrevented=!1;constructor(){this.preventDefault=this.preventDefault.bind(this),this.overrideDefault=this.overrideDefault.bind(this)}preventDefault(){this.isDefaultPrevented=!0}overrideDefault(){this.isDefaultPrevented=!1}},b=class{#e={};constructor(){this.emit=this.emit.bind(this),this.on=this.on.bind(this),this.off=this.off.bind(this),this.clear=this.clear.bind(this)}get eventNameList(){return Object.keys(this.#e)}emit(t,e,s){const r=this.#e[t];if(!r)return f(s);const{event:n,listenerList:i}=r;i.forEach(t=>f(t,{...n,...e})),!n.isDefaultPrevented&&f(s)}on(t,e){const s=this.#e[t];return s?s.listenerList.push(e):this.#e[t]={event:new v,listenerList:[e]},()=>this.off(t,e)}off(t,e){const s=this.#e[t];if(!s)return;const{event:r,listenerList:n}=s;this.#e[t]={event:r,listenerList:n.filter(t=>t!==e)},r.overrideDefault()}clear(t){delete this.#e[t]}};class D{static copy(t){return w.formatted.info("copy",t),e.setString(t.toString())}static async paste(){const t=await e.getString();return w.formatted.info("paste",t),t}}class E{static get windowWidth(){return s.get("window").width}static get windowHeight(){return s.get("window").height}static get statusBarWidth(){return E.windowWidth}static get statusBarHeight(){return r.currentHeight??0}static get ratio(){const t=E.windowWidth/375,e=E.windowHeight/812;return Math.min(t,e)}static byWindowWidth(t){return E.windowWidth*t}static byWindowHeight(t){return E.windowHeight*t}static byRatio(t){return E.ratio*t}}var S;!function(t){t.Ios="ios",t.Android="android"}(S||(S={}));class W{static get OS(){return n.OS}static get version(){return n.Version}static get isIos(){return"ios"===W.OS}static get isAndroid(){return"android"===W.OS}static by(t,e=S.Ios){return n.select({...t,default:t[e]})}}const k=t=>void 0===t,x=t=>null===t,I=t=>k(t)||x(t),A=t=>"string"==typeof t,B=t=>"number"==typeof t,L=t=>"bigint"==typeof t,N=t=>Number.isNaN(t),P=t=>"boolean"==typeof t,H=t=>"symbol"==typeof t,O=t=>"object"==typeof t,R=t=>{const e=[j,C,F,M,G,U,V,T,Y,$,z].some(e=>e(t));return!!t&&"object"==typeof t&&!e},j=t=>Array.isArray(t),C=t=>t instanceof ArrayBuffer,F=t=>t instanceof Map,M=t=>t instanceof Set,G=t=>t instanceof Map,U=t=>t instanceof Set,V=t=>t instanceof Date,T=t=>t instanceof Error,X=t=>t instanceof Proxy,Y=t=>t instanceof RegExp,$=t=>t instanceof Promise,z=t=>t instanceof Function;function q(t,e,s){return 2===arguments.length?e[t]:e[t]??s}const J=(t,...e)=>{if(z(t))return t(...e)},K=(t,e)=>{const s=Object.entries(t);return Object.fromEntries(s.map(([t,s],r,n)=>[t,e(t,s,r,n)]))},Q=(t,e)=>{let s;return(...r)=>{s&&clearTimeout(s),s=setTimeout(()=>J(t,...r),e)}},Z=(t,e)=>{let s=!0;return(...r)=>{s&&(J(t,...r),s=!1),setTimeout(()=>s=!0,e)}},_=t=>{for(let e in t)return!1;return!0},tt=t=>0===t.length,et=(t,e)=>!(!O(e)||!(t in e)),st=(t,e="isVisible")=>t.filter(t=>!et(e,t)||t[e]),rt=t=>t.filter(t=>!I(t));var nt;!function(t){t.Active="active",t.Inactive="inactive",t.Background="background",t.Extension="extension",t.Unknown="unknown"}(nt||(nt={}));const it=({onFocus:t,onBlur:e,...s})=>{const r=[];return W.isAndroid&&r.push(i.addEventListener("focus",e=>J(t,e)),i.addEventListener("blur",t=>J(e,t))),r.push(i.addEventListener("change",t=>(({state:t,handlers:e})=>{const{onActive:s,onInactive:r,onBackground:n,onExtension:i,onUnknown:a,onChange:o}=e??{},c={[nt.Active]:s,[nt.Inactive]:r,[nt.Background]:n,[nt.Extension]:i,[nt.Unknown]:a}[t];J(o,t),J(c,t)})({state:t,handlers:s}))),{remove(){r.forEach(t=>t.remove())}}};var at;!function(t){t.onWillShow="keyboardWillShow",t.onDidShow="keyboardDidShow",t.onWillHide="keyboardWillHide",t.onDidHide="keyboardDidHide",t.onWillChangeFrame="keyboardWillChangeFrame",t.onDidChangeFrame="keyboardDidChangeFrame"}(at||(at={}));const ot=t=>{const e=K(t,(t,e)=>{if(!I(e))return a.addListener(at[t],e)});return{remove:()=>rt(Object.values(e)).map(t=>t.remove())}},ct=t=>{o(()=>{const e=it(t);return()=>e.remove()},[t])},ut=t=>{o(()=>{const e=ot(t);return()=>{e.remove()}},[t])},lt={top:0,left:0,width:0,height:0},dt={top:null,left:null,width:null,height:null};function ft({onLayout:t,isNullable:e}={isNullable:!1}){const[s,r]=c(e?dt:lt),n=u(e=>{J(t,e);const{layout:s}=e.nativeEvent,{y:n,x:i,width:a,height:o}=s;r({top:n,left:i,width:a,height:o})},[t]);return[s,n]}const ht={x:0,y:0,width:0,height:0,pageX:0,pageY:0},gt={left:0,top:0,width:0,height:0},mt={x:0,y:0,width:0,height:0},pt=()=>{const t=l(ht),e=l(gt),s=l(mt),r=u(async(t,e,s)=>new Promise(r=>{I(t)?r(e):s(t,r)}),[]),n=u(e=>r(e,ht,(e,s)=>{e.measure((e=0,r=0,n=0,i=0,a=0,o=0)=>{t.current={x:e,y:r,width:n,height:i,pageX:a,pageY:o},s(t.current)})}),[]),i=u((t,s)=>r(t,gt,(t,r)=>{t.measureLayout(s,(t=0,s=0,n=0,i=0)=>{e.current={left:t,top:s,width:n,height:i},r(e.current)})}),[]),a=u(t=>r(t,mt,(t,e)=>{t.measureInWindow((t=0,r=0,n=0,i=0)=>{s.current={x:t,y:r,width:n,height:i},e(s.current)})}),[]);return{measuresRef:t,measuresInContainerRef:e,measuresInWindowRef:s,calculateMeasures:n,calculateMeasuresInContainer:i,calculateMeasuresInWindow:a}},wt=t=>{const e=t.current?.getScrollResponder()??null,s=e?.getInnerViewRef?.()??null,r=e?.getNativeScrollRef?.()??null;return{responder:e,inner:s,outer:r}};export{D as Clipboard,lt as DEFAULT_LAYOUT,dt as DEFAULT_NULLABLE_LAYOUT,E as Dimensions,y as ErrorHandler,b as EventEmitter,w as Log,W as Platform,S as PlatformOS,Q as debounce,st as filterByProperty,rt as filterNullableValues,wt as getResponder,q as getValueByProperty,et as hasProperty,O as isAnyObject,j as isArray,C as isArrayBuffer,tt as isArrayEmpty,L as isBigint,P as isBoolean,V as isDate,T as isError,z as isFunction,F as isMap,N as isNaN,x as isNull,I as isNullable,B as isNumber,R as isObject,_ as isObjectEmpty,$ as isPromise,X as isProxy,Y as isRegExp,M as isSet,A as isString,H as isSymbol,k as isUndefined,G as isWeakMap,U as isWeakSet,it as listenAppState,ot as listenKeyboard,K as mapRecord,J as runCallback,Z as throttle,ct as useAppState,ut as useKeyboard,ft as useLayout,pt as useMeasures};
2
- //# sourceMappingURL=index.mjs.map
1
+ import{Log as e}from"@mediacubeco/react-base/helpers";export*from"@mediacubeco/react-base/helpers";import t from"@react-native-clipboard/clipboard";import{Dimensions as n,StatusBar as r,Platform as i,AppState as o,Keyboard as a}from"react-native";import{useEffect as s,useState as c,useCallback as u,useRef as d}from"react";import{runCallback as l,mapRecord as h,isNullable as g,filterNullableValues as w}from"@mediacubeco/react-base/utils";export*from"@mediacubeco/react-base/utils";export*from"@mediacubeco/react-base/services";export*from"@mediacubeco/react-base/types";class m{static copy(n){return e.formatted.info("copy",n),t.setString(n.toString())}static async paste(){const n=await t.getString();return e.formatted.info("paste",n),n}}class p{static get windowWidth(){return n.get("window").width}static get windowHeight(){return n.get("window").height}static get statusBarWidth(){return p.windowWidth}static get statusBarHeight(){return r.currentHeight??0}static get ratio(){const e=p.windowWidth/375,t=p.windowHeight/812;return Math.min(e,t)}static byWindowWidth(e){return p.windowWidth*e}static byWindowHeight(e){return p.windowHeight*e}static byRatio(e){return p.ratio*e}}var f,b;!function(e){e.Ios="ios",e.Android="android"}(f||(f={}));class v{static get OS(){return i.OS}static get version(){return i.Version}static get isIos(){return"ios"===v.OS}static get isAndroid(){return"android"===v.OS}static get hasLiquidGlass(){const[e]=v.version.toString().split(".");return v.isIos&&Number(e)>=26}static by(e,t=f.Ios){return i.select({...e,default:e[t]})}}!function(e){e.Active="active",e.Inactive="inactive",e.Background="background",e.Extension="extension",e.Unknown="unknown"}(b||(b={}));const y=({onFocus:e,onBlur:t,...n})=>{const r=[];return v.isAndroid&&r.push(o.addEventListener("focus",t=>l(e,t)),o.addEventListener("blur",e=>l(t,e))),r.push(o.addEventListener("change",e=>(({state:e,handlers:t})=>{const{onActive:n,onInactive:r,onBackground:i,onExtension:o,onUnknown:a,onChange:s}=t??{},c={[b.Active]:n,[b.Inactive]:r,[b.Background]:i,[b.Extension]:o,[b.Unknown]:a}[e];l(s,e),l(c,e)})({state:e,handlers:n}))),{remove(){r.forEach(e=>e.remove())}}};var W;!function(e){e.onWillShow="keyboardWillShow",e.onDidShow="keyboardDidShow",e.onWillHide="keyboardWillHide",e.onDidHide="keyboardDidHide",e.onWillChangeFrame="keyboardWillChangeFrame",e.onDidChangeFrame="keyboardDidChangeFrame"}(W||(W={}));const k=e=>{const t=h(e,(e,t)=>{if(!g(t))return a.addListener(W[e],t)});return{remove:()=>w(Object.values(t)).map(e=>e.remove())}},x=e=>{s(()=>{const t=y(e);return()=>t.remove()},[e])},S=e=>{s(()=>{const t=k(e);return()=>t.remove()},[e])},I={top:0,left:0,width:0,height:0},H={top:null,left:null,width:null,height:null};function E({onLayout:e,isNullable:t}={isNullable:!1}){const[n,r]=c(t?H:I),i=u(t=>{l(e,t);const{layout:n}=t.nativeEvent,{y:i,x:o,width:a,height:s}=n;r({top:i,left:o,width:a,height:s})},[e]);return[n,i]}const C={x:0,y:0,width:0,height:0,pageX:0,pageY:0},D={left:0,top:0,width:0,height:0},L={x:0,y:0,width:0,height:0},R=()=>{const e=d(C),t=d(D),n=d(L),r=u(async(e,t,n)=>new Promise(r=>{g(e)?r(t):n(e,r)}),[]),i=u(t=>r(t,C,(t,n)=>{t.measure((t=0,r=0,i=0,o=0,a=0,s=0)=>{e.current={x:t,y:r,width:i,height:o,pageX:a,pageY:s},n(e.current)})}),[]),o=u((e,n)=>r(e,D,(e,r)=>{e.measureLayout(n,(e=0,n=0,i=0,o=0)=>{t.current={left:e,top:n,width:i,height:o},r(t.current)})}),[]),a=u(e=>r(e,L,(e,t)=>{e.measureInWindow((e=0,r=0,i=0,o=0)=>{n.current={x:e,y:r,width:i,height:o},t(n.current)})}),[]);return{measuresRef:e,measuresInContainerRef:t,measuresInWindowRef:n,calculateMeasures:i,calculateMeasuresInContainer:o,calculateMeasuresInWindow:a}},A=e=>{const t=e.current?.getScrollResponder()??null,n=t?.getInnerViewRef?.()??null,r=t?.getNativeScrollRef?.()??null;return{responder:t,inner:n,outer:r}};export{m as Clipboard,I as DEFAULT_LAYOUT,H as DEFAULT_NULLABLE_LAYOUT,p as Dimensions,v as Platform,f as PlatformOS,A as getResponder,y as listenAppState,k as listenKeyboard,x as useAppState,S as useKeyboard,E as useLayout,R as useMeasures};
@@ -0,0 +1 @@
1
+ "use strict";var e=require("@mediacubeco/react-base/services");Object.keys(e).forEach(function(r){"default"===r||Object.prototype.hasOwnProperty.call(exports,r)||Object.defineProperty(exports,r,{enumerable:!0,get:function(){return e[r]}})});
@@ -0,0 +1 @@
1
+ export * from '@mediacubeco/react-base/services';
@@ -0,0 +1 @@
1
+ export*from"@mediacubeco/react-base/services";
@@ -1,2 +1 @@
1
- "use strict";
2
- //# sourceMappingURL=index.cjs.map
1
+ "use strict";var e=require("@mediacubeco/react-base/types");Object.keys(e).forEach(function(t){"default"===t||Object.prototype.hasOwnProperty.call(exports,t)||Object.defineProperty(exports,t,{enumerable:!0,get:function(){return e[t]}})});
@@ -1,2 +1 @@
1
- export * from '@mediacubeco/javascript-base/types';
2
- //# sourceMappingURL=index.d.ts.map
1
+ export * from '@mediacubeco/react-base/types';
@@ -1,2 +1 @@
1
-
2
- //# sourceMappingURL=index.mjs.map
1
+ export*from"@mediacubeco/react-base/types";
@@ -1,2 +1 @@
1
- "use strict";var e=require("react-native");require("axios"),require("@react-native-clipboard/clipboard");const t=e=>void 0===e,r=e=>null===e,o=e=>t(e)||r(e),n=e=>"object"==typeof e,s=e=>Array.isArray(e),i=e=>e instanceof ArrayBuffer,a=e=>e instanceof Map,p=e=>e instanceof Set,c=e=>e instanceof Map,u=e=>e instanceof Set,l=e=>e instanceof Date,d=e=>e instanceof Error,f=e=>e instanceof RegExp,x=e=>e instanceof Promise,m=e=>e instanceof Function;const y=(e,...t)=>{if(m(e))return e(...t)},b=(e,t)=>{const r=Object.entries(e);return Object.fromEntries(r.map(([e,r],o,n)=>[e,t(e,r,o,n)]))},g=(e,t)=>!(!n(t)||!(e in t)),v=e=>e.filter(e=>!o(e));var S,h,k,A;!function(e){e.StartGroup="group",e.EndGroup="groupEnd",e.Default="log"}(S||(S={})),function(e){e.Info="%s",e.Success="%s",e.Warning="%s",e.Danger="%s"}(h||(h={})),function(e){e.Ios="ios",e.Android="android"}(k||(k={}));class E{static get OS(){return e.Platform.OS}static get version(){return e.Platform.Version}static get isIos(){return"ios"===E.OS}static get isAndroid(){return"android"===E.OS}static by(t,r=k.Ios){return e.Platform.select({...t,default:t[r]})}}!function(e){e.Active="active",e.Inactive="inactive",e.Background="background",e.Extension="extension",e.Unknown="unknown"}(A||(A={}));var B;!function(e){e.onWillShow="keyboardWillShow",e.onDidShow="keyboardDidShow",e.onWillHide="keyboardWillHide",e.onDidHide="keyboardDidHide",e.onWillChangeFrame="keyboardWillChangeFrame",e.onDidChangeFrame="keyboardDidChangeFrame"}(B||(B={}));exports.debounce=(e,t)=>{let r;return(...o)=>{r&&clearTimeout(r),r=setTimeout(()=>y(e,...o),t)}},exports.filterByProperty=(e,t="isVisible")=>e.filter(e=>!g(t,e)||e[t]),exports.filterNullableValues=v,exports.getValueByProperty=function(e,t,r){return 2===arguments.length?t[e]:t[e]??r},exports.hasProperty=g,exports.isAnyObject=n,exports.isArray=s,exports.isArrayBuffer=i,exports.isArrayEmpty=e=>0===e.length,exports.isBigint=e=>"bigint"==typeof e,exports.isBoolean=e=>"boolean"==typeof e,exports.isDate=l,exports.isError=d,exports.isFunction=m,exports.isMap=a,exports.isNaN=e=>Number.isNaN(e),exports.isNull=r,exports.isNullable=o,exports.isNumber=e=>"number"==typeof e,exports.isObject=e=>{const t=[s,i,a,p,c,u,l,d,f,x,m].some(t=>t(e));return!!e&&"object"==typeof e&&!t},exports.isObjectEmpty=e=>{for(let t in e)return!1;return!0},exports.isPromise=x,exports.isProxy=e=>e instanceof Proxy,exports.isRegExp=f,exports.isSet=p,exports.isString=e=>"string"==typeof e,exports.isSymbol=e=>"symbol"==typeof e,exports.isUndefined=t,exports.isWeakMap=c,exports.isWeakSet=u,exports.listenAppState=({onFocus:t,onBlur:r,...o})=>{const n=[];return E.isAndroid&&n.push(e.AppState.addEventListener("focus",e=>y(t,e)),e.AppState.addEventListener("blur",e=>y(r,e))),n.push(e.AppState.addEventListener("change",e=>(({state:e,handlers:t})=>{const{onActive:r,onInactive:o,onBackground:n,onExtension:s,onUnknown:i,onChange:a}=t??{},p={[A.Active]:r,[A.Inactive]:o,[A.Background]:n,[A.Extension]:s,[A.Unknown]:i}[e];y(a,e),y(p,e)})({state:e,handlers:o}))),{remove(){n.forEach(e=>e.remove())}}},exports.listenKeyboard=t=>{const r=b(t,(t,r)=>{if(!o(r))return e.Keyboard.addListener(B[t],r)});return{remove:()=>v(Object.values(r)).map(e=>e.remove())}},exports.mapRecord=b,exports.runCallback=y,exports.throttle=(e,t)=>{let r=!0;return(...o)=>{r&&(y(e,...o),r=!1),setTimeout(()=>r=!0,t)}};
2
- //# sourceMappingURL=index.cjs.map
1
+ "use strict";var e,n,t=require("@mediacubeco/react-base/utils"),r=require("react-native");require("@mediacubeco/react-base/helpers"),require("@react-native-clipboard/clipboard"),function(e){e.Ios="ios",e.Android="android"}(e||(e={}));class a{static get OS(){return r.Platform.OS}static get version(){return r.Platform.Version}static get isIos(){return"ios"===a.OS}static get isAndroid(){return"android"===a.OS}static get hasLiquidGlass(){const[e]=a.version.toString().split(".");return a.isIos&&Number(e)>=26}static by(n,t=e.Ios){return r.Platform.select({...n,default:n[t]})}}!function(e){e.Active="active",e.Inactive="inactive",e.Background="background",e.Extension="extension",e.Unknown="unknown"}(n||(n={}));var o;!function(e){e.onWillShow="keyboardWillShow",e.onDidShow="keyboardDidShow",e.onWillHide="keyboardWillHide",e.onDidHide="keyboardDidHide",e.onWillChangeFrame="keyboardWillChangeFrame",e.onDidChangeFrame="keyboardDidChangeFrame"}(o||(o={}));exports.listenAppState=({onFocus:e,onBlur:o,...i})=>{const s=[];return a.isAndroid&&s.push(r.AppState.addEventListener("focus",n=>t.runCallback(e,n)),r.AppState.addEventListener("blur",e=>t.runCallback(o,e))),s.push(r.AppState.addEventListener("change",e=>(({state:e,handlers:r})=>{const{onActive:a,onInactive:o,onBackground:i,onExtension:s,onUnknown:c,onChange:d}=r??{},l={[n.Active]:a,[n.Inactive]:o,[n.Background]:i,[n.Extension]:s,[n.Unknown]:c}[e];t.runCallback(d,e),t.runCallback(l,e)})({state:e,handlers:i}))),{remove(){s.forEach(e=>e.remove())}}},exports.listenKeyboard=e=>{const n=t.mapRecord(e,(e,n)=>{if(!t.isNullable(n))return r.Keyboard.addListener(o[e],n)});return{remove:()=>t.filterNullableValues(Object.values(n)).map(e=>e.remove())}},Object.keys(t).forEach(function(e){"default"===e||Object.prototype.hasOwnProperty.call(exports,e)||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return t[e]}})});
@@ -1,6 +1,6 @@
1
- export * from '@mediacubeco/javascript-base/utils';
1
+ export * from '@mediacubeco/react-base/utils';
2
2
  import { AppStateStatus, NativeEventSubscription, KeyboardEventListener } from 'react-native';
3
- import { BaseRecord, Callback, KeyOf } from '@mediacubeco/javascript-base/types';
3
+ import { BaseRecord, Callback, KeyOf } from '@mediacubeco/react-base/types';
4
4
 
5
5
  type AppStateAdditionalHandlerName = 'onFocus' | 'onBlur';
6
6
  type AppStateHandlerName = AppStateAdditionalHandlerName | 'onActive' | 'onInactive' | 'onBackground' | 'onExtension' | 'onUnknown' | 'onChange';
@@ -23,4 +23,3 @@ declare const listenKeyboard: ListenKeyboard;
23
23
 
24
24
  export { listenAppState, listenKeyboard };
25
25
  export type { AppStateHandlers, KeyboardHandlers };
26
- //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1 @@
1
- import{Platform as e,AppState as n,Keyboard as t}from"react-native";import"axios";import"@react-native-clipboard/clipboard";const s=e=>void 0===e,a=e=>null===e,o=e=>s(e)||a(e),r=e=>"string"==typeof e,i=e=>"number"==typeof e,c=e=>"bigint"==typeof e,u=e=>Number.isNaN(e),l=e=>"boolean"==typeof e,d=e=>"symbol"==typeof e,f=e=>"object"==typeof e,m=e=>{const n=[p,y,b,g,v,h,k,E,A,x,B].some(n=>n(e));return!!e&&"object"==typeof e&&!n},p=e=>Array.isArray(e),y=e=>e instanceof ArrayBuffer,b=e=>e instanceof Map,g=e=>e instanceof Set,v=e=>e instanceof Map,h=e=>e instanceof Set,k=e=>e instanceof Date,E=e=>e instanceof Error,S=e=>e instanceof Proxy,A=e=>e instanceof RegExp,x=e=>e instanceof Promise,B=e=>e instanceof Function;function D(e,n,t){return 2===arguments.length?n[e]:n[e]??t}const O=(e,...n)=>{if(B(e))return e(...n)},N=(e,n)=>{const t=Object.entries(e);return Object.fromEntries(t.map(([e,t],s,a)=>[e,n(e,t,s,a)]))},W=(e,n)=>{let t;return(...s)=>{t&&clearTimeout(t),t=setTimeout(()=>O(e,...s),n)}},j=(e,n)=>{let t=!0;return(...s)=>{t&&(O(e,...s),t=!1),setTimeout(()=>t=!0,n)}},w=e=>{for(let n in e)return!1;return!0},P=e=>0===e.length,F=(e,n)=>!(!f(n)||!(e in n)),I=(e,n="isVisible")=>e.filter(e=>!F(n,e)||e[n]),C=e=>e.filter(e=>!o(e));var H,L,M,U;!function(e){e.StartGroup="group",e.EndGroup="groupEnd",e.Default="log"}(H||(H={})),function(e){e.Info="%s",e.Success="%s",e.Warning="%s",e.Danger="%s"}(L||(L={})),function(e){e.Ios="ios",e.Android="android"}(M||(M={}));class V{static get OS(){return e.OS}static get version(){return e.Version}static get isIos(){return"ios"===V.OS}static get isAndroid(){return"android"===V.OS}static by(n,t=M.Ios){return e.select({...n,default:n[t]})}}!function(e){e.Active="active",e.Inactive="inactive",e.Background="background",e.Extension="extension",e.Unknown="unknown"}(U||(U={}));const R=({onFocus:e,onBlur:t,...s})=>{const a=[];return V.isAndroid&&a.push(n.addEventListener("focus",n=>O(e,n)),n.addEventListener("blur",e=>O(t,e))),a.push(n.addEventListener("change",e=>(({state:e,handlers:n})=>{const{onActive:t,onInactive:s,onBackground:a,onExtension:o,onUnknown:r,onChange:i}=n??{},c={[U.Active]:t,[U.Inactive]:s,[U.Background]:a,[U.Extension]:o,[U.Unknown]:r}[e];O(i,e),O(c,e)})({state:e,handlers:s}))),{remove(){a.forEach(e=>e.remove())}}};var T;!function(e){e.onWillShow="keyboardWillShow",e.onDidShow="keyboardDidShow",e.onWillHide="keyboardWillHide",e.onDidHide="keyboardDidHide",e.onWillChangeFrame="keyboardWillChangeFrame",e.onDidChangeFrame="keyboardDidChangeFrame"}(T||(T={}));const G=e=>{const n=N(e,(e,n)=>{if(!o(n))return t.addListener(T[e],n)});return{remove:()=>C(Object.values(n)).map(e=>e.remove())}};export{W as debounce,I as filterByProperty,C as filterNullableValues,D as getValueByProperty,F as hasProperty,f as isAnyObject,p as isArray,y as isArrayBuffer,P as isArrayEmpty,c as isBigint,l as isBoolean,k as isDate,E as isError,B as isFunction,b as isMap,u as isNaN,a as isNull,o as isNullable,i as isNumber,m as isObject,w as isObjectEmpty,x as isPromise,S as isProxy,A as isRegExp,g as isSet,r as isString,d as isSymbol,s as isUndefined,v as isWeakMap,h as isWeakSet,R as listenAppState,G as listenKeyboard,N as mapRecord,O as runCallback,j as throttle};
2
- //# sourceMappingURL=index.mjs.map
1
+ import{runCallback as e,mapRecord as n,isNullable as o,filterNullableValues as t}from"@mediacubeco/react-base/utils";export*from"@mediacubeco/react-base/utils";import{Platform as r,AppState as i,Keyboard as a}from"react-native";import"@mediacubeco/react-base/helpers";import"@react-native-clipboard/clipboard";var s,c;!function(e){e.Ios="ios",e.Android="android"}(s||(s={}));class d{static get OS(){return r.OS}static get version(){return r.Version}static get isIos(){return"ios"===d.OS}static get isAndroid(){return"android"===d.OS}static get hasLiquidGlass(){const[e]=d.version.toString().split(".");return d.isIos&&Number(e)>=26}static by(e,n=s.Ios){return r.select({...e,default:e[n]})}}!function(e){e.Active="active",e.Inactive="inactive",e.Background="background",e.Extension="extension",e.Unknown="unknown"}(c||(c={}));const u=({onFocus:n,onBlur:o,...t})=>{const r=[];return d.isAndroid&&r.push(i.addEventListener("focus",o=>e(n,o)),i.addEventListener("blur",n=>e(o,n))),r.push(i.addEventListener("change",n=>(({state:n,handlers:o})=>{const{onActive:t,onInactive:r,onBackground:i,onExtension:a,onUnknown:s,onChange:d}=o??{},u={[c.Active]:t,[c.Inactive]:r,[c.Background]:i,[c.Extension]:a,[c.Unknown]:s}[n];e(d,n),e(u,n)})({state:n,handlers:t}))),{remove(){r.forEach(e=>e.remove())}}};var l;!function(e){e.onWillShow="keyboardWillShow",e.onDidShow="keyboardDidShow",e.onWillHide="keyboardWillHide",e.onDidHide="keyboardDidHide",e.onWillChangeFrame="keyboardWillChangeFrame",e.onDidChangeFrame="keyboardDidChangeFrame"}(l||(l={}));const v=e=>{const r=n(e,(e,n)=>{if(!o(n))return a.addListener(l[e],n)});return{remove:()=>t(Object.values(r)).map(e=>e.remove())}};export{u as listenAppState,v as listenKeyboard};
package/package.json CHANGED
@@ -1,32 +1,38 @@
1
1
  {
2
2
  "private": false,
3
+ "version": "2.0.0",
3
4
  "name": "@mediacubeco/react-native-base",
4
- "version": "0.1.7",
5
+ "description": "React Native base by Mediacube developers",
5
6
  "license": "MIT",
6
7
  "type": "module",
7
8
  "files": [
8
9
  "dist"
9
10
  ],
11
+ "keywords": [
12
+ "mediacube",
13
+ "mediacubeco",
14
+ "react-native",
15
+ "base",
16
+ "react-native-base"
17
+ ],
10
18
  "dependencies": {
11
- "@mediacubeco/javascript-base": "^0.0.3"
19
+ "@mediacubeco/react-base": "^2.0.0"
12
20
  },
13
21
  "devDependencies": {
14
- "@mediacubeco/react-native-config": "^0.0.1",
22
+ "@mediacubeco/react-native-config": "workspace:*",
15
23
  "@react-native-clipboard/clipboard": "^1.16.3",
16
24
  "@types/react": "^19.1.9",
17
- "axios": "^1.12.2",
25
+ "eslint": "^10.0.3",
26
+ "prettier": "^3.8.1",
18
27
  "react": "19.0.0",
19
- "react-native": "0.78.0"
28
+ "react-native": "0.78.0",
29
+ "typescript": "^5.9.3"
20
30
  },
21
31
  "peerDependencies": {
22
32
  "@react-native-clipboard/clipboard": "^1.16.3",
23
- "axios": "^1.12.2",
24
33
  "react": "19.0.0",
25
34
  "react-native": "0.78.0"
26
35
  },
27
- "main": "./dist/index.cjs",
28
- "module": "./dist/index.mjs",
29
- "types": "./dist/index.d.ts",
30
36
  "exports": {
31
37
  ".": {
32
38
  "require": "./dist/index.cjs",
@@ -52,6 +58,11 @@
52
58
  "import": "./dist/types/index.mjs",
53
59
  "require": "./dist/types/index.cjs",
54
60
  "types": "./dist/types/index.d.ts"
61
+ },
62
+ "./services": {
63
+ "import": "./dist/services/index.mjs",
64
+ "require": "./dist/services/index.cjs",
65
+ "types": "./dist/services/index.d.ts"
55
66
  }
56
67
  }
57
68
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","sources":["../../node_modules/@mediacubeco/javascript-base/dist/helpers/index.mjs","../../src/helpers/Dimensions/Dimensions.ts","../../src/helpers/Dimensions/Dimensions.constants.ts","../../src/helpers/Platform/Platform.constants.ts","../../src/helpers/Platform/Platform.ts","../../src/helpers/Clipboard/Clipboard.ts"],"sourcesContent":["import{isAxiosError as t}from\"axios\";const s=t=>t instanceof Error,e=(t,...s)=>{if(t instanceof Function)return t(...s)},r=t=>{for(let s in t)return!1;return!0},i=(t=\"?\",...s)=>{const e=(t&&(r=t,\"string\"==typeof r)?t:\"?\").toUpperCase();var r;const i=s.reduce((t,s,e,{length:r})=>{const i=e===r-1?[]:[\"|\"];return t.push(s,...i),t},s.length?[\"-\"]:[]);return[`[${e}]`,...i]};var n,a;!function(t){t.StartGroup=\"group\",t.EndGroup=\"groupEnd\",t.Default=\"log\"}(n||(n={})),function(t){t.Info=\"\u001b[36m%s\u001b[0m\",t.Success=\"\u001b[32m%s\u001b[0m\",t.Warning=\"\u001b[33m%s\u001b[0m\",t.Danger=\"\u001b[31m%s\u001b[0m\"}(a||(a={}));class o{static formatted={info:(...t)=>o.info(...i(...t)),success:(...t)=>o.success(...i(...t)),warning:(...t)=>o.warning(...i(...t)),danger:(...t)=>o.danger(...i(...t))};static#t(t,...s){console[t](...s)}static startGroup(t,s,...e){o.#t(n.StartGroup,...((t,...s)=>[\"%c%s\",t,...s])(`font-size: 16px;${s}`,...i(t,...e)))}static endGroup(){o.#t(n.EndGroup)}static info(...t){o.#t(n.Default,a.Info,...t)}static success(...t){o.#t(n.Default,a.Success,...t)}static warning(...t){o.#t(n.Default,a.Warning,...t)}static danger(...t){o.#t(n.Default,a.Danger,...t)}}class c{static ignore(t){}static create(t,s){return new Error(t,{cause:s})}static throw(t,s){throw c.create(t,s)}static capture(t,e){const{signal:r,message:i,payload:n,stack:a}=e,c=[i,s(t)?t.message:void 0].filter(Boolean);o.formatted.danger(r,...c,{error:t,payload:n,stack:a})}static forward(t,s){throw c.capture(t,s),t}static parse(e){const i=\"Some error!\",n=0,a={};switch(!0){case t(e):{const{status:t=n,data:s,config:o}=e.response??{},{message:c=i,errors:u=a}=s??{};return{message:c,status:t,errors:u,isExternal:r(u)}}case s(e):return{message:e.message,status:n,errors:a,isExternal:!0};default:return{message:i,status:n,errors:a,isExternal:!0}}}}class u{isDefaultPrevented=!1;constructor(){this.preventDefault=this.preventDefault.bind(this),this.overrideDefault=this.overrideDefault.bind(this)}preventDefault(){this.isDefaultPrevented=!0}overrideDefault(){this.isDefaultPrevented=!1}}class l{#s={};constructor(){this.emit=this.emit.bind(this),this.on=this.on.bind(this),this.off=this.off.bind(this),this.clear=this.clear.bind(this)}get eventNameList(){return Object.keys(this.#s)}emit(t,s,r){const i=this.#s[t];if(!i)return e(r);const{event:n,listenerList:a}=i;a.forEach(t=>e(t,{...n,...s})),!n.isDefaultPrevented&&e(r)}on(t,s){const e=this.#s[t];return e?e.listenerList.push(s):this.#s[t]={event:new u,listenerList:[s]},()=>this.off(t,s)}off(t,s){const e=this.#s[t];if(!e)return;const{event:r,listenerList:i}=e;this.#s[t]={event:r,listenerList:i.filter(t=>t!==s)},r.overrideDefault()}clear(t){delete this.#s[t]}}export{c as ErrorHandler,l as EventEmitter,o as Log};\n//# sourceMappingURL=index.mjs.map\n","import { Dimensions as NativeDimensions, StatusBar } from 'react-native'\nimport { DIMENSIONS_DESIGN_HEIGHT, DIMENSIONS_DESIGN_WIDTH } from './Dimensions.constants'\n\n/**\n * window: reports width/height without the soft menu bar\n *\n * screen: reports entire screen's width/height\n */\nclass Dimensions {\n static get windowWidth() {\n return NativeDimensions.get('window').width\n }\n\n static get windowHeight() {\n return NativeDimensions.get('window').height\n }\n\n static get statusBarWidth() {\n return Dimensions.windowWidth\n }\n\n static get statusBarHeight() {\n return StatusBar.currentHeight ?? 0\n }\n\n static get ratio() {\n const widthRatio = Dimensions.windowWidth / DIMENSIONS_DESIGN_WIDTH\n const heightRatio = Dimensions.windowHeight / DIMENSIONS_DESIGN_HEIGHT\n\n return Math.min(widthRatio, heightRatio)\n }\n\n static byWindowWidth(value: number) {\n return Dimensions.windowWidth * value\n }\n\n static byWindowHeight(value: number) {\n return Dimensions.windowHeight * value\n }\n\n static byRatio(value: number) {\n return Dimensions.ratio * value\n }\n}\n\nexport default Dimensions\n","const DIMENSIONS_DESIGN_WIDTH = 375\n\nconst DIMENSIONS_DESIGN_HEIGHT = 812\n\nexport { DIMENSIONS_DESIGN_WIDTH, DIMENSIONS_DESIGN_HEIGHT }\n","enum PlatformOS {\n Ios = 'ios',\n Android = 'android'\n // Macos = 'macos',\n // Windows = 'windows',\n // Web = 'web',\n}\n\nexport { PlatformOS }\n","import { Platform as NativePlatform } from 'react-native'\nimport { PlatformOS } from './Platform.constants'\nimport { PlatformByData, PlatformRequiredOS } from './Platform.types'\n\n// Platform.Version\nclass Platform {\n static get OS() {\n return NativePlatform.OS\n }\n\n static get version() {\n return NativePlatform.Version\n }\n\n static get isIos() {\n return Platform.OS === 'ios'\n }\n\n static get isAndroid() {\n return Platform.OS === 'android'\n }\n\n // static get isMac() {\n // return Platform.OS === 'macos'\n // }\n\n // static get isWindows() {\n // return Platform.OS === 'windows'\n // }\n\n // static get isWeb() {\n // return Platform.OS === 'web'\n // }\n\n static by<Value>(data: PlatformByData<Value>, defaultOS: PlatformRequiredOS = PlatformOS.Ios) {\n return NativePlatform.select({ ...data, default: data[defaultOS] })\n }\n}\n\nexport default Platform\n","import NativeClipboard from '@react-native-clipboard/clipboard'\nimport { Log } from '@mediacubeco/javascript-base/helpers'\nimport { ClipboardValue } from './Clipboard.types'\n\nclass Clipboard {\n static copy(value: ClipboardValue) {\n Log.formatted.info('copy', value)\n\n return NativeClipboard.setString(value.toString())\n }\n\n static async paste() {\n const value = await NativeClipboard.getString()\n\n Log.formatted.info('paste', value)\n\n return value\n }\n}\n\nexport default Clipboard\n"],"names":["s","t","Error","e","Function","r","i","toUpperCase","reduce","length","push","n","a","StartGroup","EndGroup","Default","Info","Success","Warning","Danger","o","static","info","success","warning","danger","console","startGroup","endGroup","c","ignore","create","cause","capture","signal","message","payload","stack","filter","Boolean","formatted","error","forward","parse","status","data","config","response","errors","u","isExternal","isDefaultPrevented","constructor","this","preventDefault","bind","overrideDefault","Dimensions","windowWidth","NativeDimensions","get","width","windowHeight","height","statusBarWidth","statusBarHeight","StatusBar","currentHeight","ratio","widthRatio","heightRatio","Math","min","byWindowWidth","value","byWindowHeight","byRatio","PlatformOS","Platform","OS","NativePlatform","version","Version","isIos","isAndroid","by","defaultOS","Ios","select","default","copy","Log","NativeClipboard","setString","toString","paste","getString","emit","on","off","clear","eventNameList","Object","keys","event","listenerList","forEach"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sources":["../../src/helpers/Clipboard/Clipboard.types.ts","../../src/helpers/Clipboard/Clipboard.ts","../../src/helpers/Dimensions/Dimensions.ts","../../src/helpers/Platform/Platform.constants.ts","../../src/helpers/Platform/Platform.types.ts","../../src/helpers/Platform/Platform.ts"],"sourcesContent":["type ClipboardValue = string\n\nexport type { ClipboardValue }\n","import NativeClipboard from '@react-native-clipboard/clipboard'\nimport { Log } from '@mediacubeco/javascript-base/helpers'\nimport { ClipboardValue } from './Clipboard.types'\n\nclass Clipboard {\n static copy(value: ClipboardValue) {\n Log.formatted.info('copy', value)\n\n return NativeClipboard.setString(value.toString())\n }\n\n static async paste() {\n const value = await NativeClipboard.getString()\n\n Log.formatted.info('paste', value)\n\n return value\n }\n}\n\nexport default Clipboard\n","import { Dimensions as NativeDimensions, StatusBar } from 'react-native'\nimport { DIMENSIONS_DESIGN_HEIGHT, DIMENSIONS_DESIGN_WIDTH } from './Dimensions.constants'\n\n/**\n * window: reports width/height without the soft menu bar\n *\n * screen: reports entire screen's width/height\n */\nclass Dimensions {\n static get windowWidth() {\n return NativeDimensions.get('window').width\n }\n\n static get windowHeight() {\n return NativeDimensions.get('window').height\n }\n\n static get statusBarWidth() {\n return Dimensions.windowWidth\n }\n\n static get statusBarHeight() {\n return StatusBar.currentHeight ?? 0\n }\n\n static get ratio() {\n const widthRatio = Dimensions.windowWidth / DIMENSIONS_DESIGN_WIDTH\n const heightRatio = Dimensions.windowHeight / DIMENSIONS_DESIGN_HEIGHT\n\n return Math.min(widthRatio, heightRatio)\n }\n\n static byWindowWidth(value: number) {\n return Dimensions.windowWidth * value\n }\n\n static byWindowHeight(value: number) {\n return Dimensions.windowHeight * value\n }\n\n static byRatio(value: number) {\n return Dimensions.ratio * value\n }\n}\n\nexport default Dimensions\n","enum PlatformOS {\n Ios = 'ios',\n Android = 'android'\n // Macos = 'macos',\n // Windows = 'windows',\n // Web = 'web',\n}\n\nexport { PlatformOS }\n","import { BaseRecord, Include } from '@mediacubeco/javascript-base/types'\nimport { PlatformOS } from './Platform.constants'\n\ntype PlatformRequiredOS = PlatformOS.Ios | PlatformOS.Android\n\ntype PlatformByData<Value> = Include<BaseRecord<Value, PlatformOS>, PlatformRequiredOS>\n\nexport type { PlatformRequiredOS, PlatformByData }\n","import { Platform as NativePlatform } from 'react-native'\nimport { PlatformOS } from './Platform.constants'\nimport { PlatformByData, PlatformRequiredOS } from './Platform.types'\n\n// Platform.Version\nclass Platform {\n static get OS() {\n return NativePlatform.OS\n }\n\n static get version() {\n return NativePlatform.Version\n }\n\n static get isIos() {\n return Platform.OS === 'ios'\n }\n\n static get isAndroid() {\n return Platform.OS === 'android'\n }\n\n // static get isMac() {\n // return Platform.OS === 'macos'\n // }\n\n // static get isWindows() {\n // return Platform.OS === 'windows'\n // }\n\n // static get isWeb() {\n // return Platform.OS === 'web'\n // }\n\n static by<Value>(data: PlatformByData<Value>, defaultOS: PlatformRequiredOS = PlatformOS.Ios) {\n return NativePlatform.select({ ...data, default: data[defaultOS] })\n }\n}\n\nexport default Platform\n"],"names":[],"mappings":";;;AAAA;;ACCA;AACA;AACA;AACA;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;;ACDA;AACA;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":["../../node_modules/@mediacubeco/javascript-base/dist/helpers/index.mjs","../../src/helpers/Clipboard/Clipboard.ts","../../src/helpers/Dimensions/Dimensions.ts","../../src/helpers/Dimensions/Dimensions.constants.ts","../../src/helpers/Platform/Platform.constants.ts","../../src/helpers/Platform/Platform.ts"],"sourcesContent":["import{isAxiosError as t}from\"axios\";const s=t=>t instanceof Error,e=(t,...s)=>{if(t instanceof Function)return t(...s)},r=t=>{for(let s in t)return!1;return!0},i=(t=\"?\",...s)=>{const e=(t&&(r=t,\"string\"==typeof r)?t:\"?\").toUpperCase();var r;const i=s.reduce((t,s,e,{length:r})=>{const i=e===r-1?[]:[\"|\"];return t.push(s,...i),t},s.length?[\"-\"]:[]);return[`[${e}]`,...i]};var n,a;!function(t){t.StartGroup=\"group\",t.EndGroup=\"groupEnd\",t.Default=\"log\"}(n||(n={})),function(t){t.Info=\"\u001b[36m%s\u001b[0m\",t.Success=\"\u001b[32m%s\u001b[0m\",t.Warning=\"\u001b[33m%s\u001b[0m\",t.Danger=\"\u001b[31m%s\u001b[0m\"}(a||(a={}));class o{static formatted={info:(...t)=>o.info(...i(...t)),success:(...t)=>o.success(...i(...t)),warning:(...t)=>o.warning(...i(...t)),danger:(...t)=>o.danger(...i(...t))};static#t(t,...s){console[t](...s)}static startGroup(t,s,...e){o.#t(n.StartGroup,...((t,...s)=>[\"%c%s\",t,...s])(`font-size: 16px;${s}`,...i(t,...e)))}static endGroup(){o.#t(n.EndGroup)}static info(...t){o.#t(n.Default,a.Info,...t)}static success(...t){o.#t(n.Default,a.Success,...t)}static warning(...t){o.#t(n.Default,a.Warning,...t)}static danger(...t){o.#t(n.Default,a.Danger,...t)}}class c{static ignore(t){}static create(t,s){return new Error(t,{cause:s})}static throw(t,s){throw c.create(t,s)}static capture(t,e){const{signal:r,message:i,payload:n,stack:a}=e,c=[i,s(t)?t.message:void 0].filter(Boolean);o.formatted.danger(r,...c,{error:t,payload:n,stack:a})}static forward(t,s){throw c.capture(t,s),t}static parse(e){const i=\"Some error!\",n=0,a={};switch(!0){case t(e):{const{status:t=n,data:s,config:o}=e.response??{},{message:c=i,errors:u=a}=s??{};return{message:c,status:t,errors:u,isExternal:r(u)}}case s(e):return{message:e.message,status:n,errors:a,isExternal:!0};default:return{message:i,status:n,errors:a,isExternal:!0}}}}class u{isDefaultPrevented=!1;constructor(){this.preventDefault=this.preventDefault.bind(this),this.overrideDefault=this.overrideDefault.bind(this)}preventDefault(){this.isDefaultPrevented=!0}overrideDefault(){this.isDefaultPrevented=!1}}class l{#s={};constructor(){this.emit=this.emit.bind(this),this.on=this.on.bind(this),this.off=this.off.bind(this),this.clear=this.clear.bind(this)}get eventNameList(){return Object.keys(this.#s)}emit(t,s,r){const i=this.#s[t];if(!i)return e(r);const{event:n,listenerList:a}=i;a.forEach(t=>e(t,{...n,...s})),!n.isDefaultPrevented&&e(r)}on(t,s){const e=this.#s[t];return e?e.listenerList.push(s):this.#s[t]={event:new u,listenerList:[s]},()=>this.off(t,s)}off(t,s){const e=this.#s[t];if(!e)return;const{event:r,listenerList:i}=e;this.#s[t]={event:r,listenerList:i.filter(t=>t!==s)},r.overrideDefault()}clear(t){delete this.#s[t]}}export{c as ErrorHandler,l as EventEmitter,o as Log};\n//# sourceMappingURL=index.mjs.map\n","import NativeClipboard from '@react-native-clipboard/clipboard'\nimport { Log } from '@mediacubeco/javascript-base/helpers'\nimport { ClipboardValue } from './Clipboard.types'\n\nclass Clipboard {\n static copy(value: ClipboardValue) {\n Log.formatted.info('copy', value)\n\n return NativeClipboard.setString(value.toString())\n }\n\n static async paste() {\n const value = await NativeClipboard.getString()\n\n Log.formatted.info('paste', value)\n\n return value\n }\n}\n\nexport default Clipboard\n","import { Dimensions as NativeDimensions, StatusBar } from 'react-native'\nimport { DIMENSIONS_DESIGN_HEIGHT, DIMENSIONS_DESIGN_WIDTH } from './Dimensions.constants'\n\n/**\n * window: reports width/height without the soft menu bar\n *\n * screen: reports entire screen's width/height\n */\nclass Dimensions {\n static get windowWidth() {\n return NativeDimensions.get('window').width\n }\n\n static get windowHeight() {\n return NativeDimensions.get('window').height\n }\n\n static get statusBarWidth() {\n return Dimensions.windowWidth\n }\n\n static get statusBarHeight() {\n return StatusBar.currentHeight ?? 0\n }\n\n static get ratio() {\n const widthRatio = Dimensions.windowWidth / DIMENSIONS_DESIGN_WIDTH\n const heightRatio = Dimensions.windowHeight / DIMENSIONS_DESIGN_HEIGHT\n\n return Math.min(widthRatio, heightRatio)\n }\n\n static byWindowWidth(value: number) {\n return Dimensions.windowWidth * value\n }\n\n static byWindowHeight(value: number) {\n return Dimensions.windowHeight * value\n }\n\n static byRatio(value: number) {\n return Dimensions.ratio * value\n }\n}\n\nexport default Dimensions\n","const DIMENSIONS_DESIGN_WIDTH = 375\n\nconst DIMENSIONS_DESIGN_HEIGHT = 812\n\nexport { DIMENSIONS_DESIGN_WIDTH, DIMENSIONS_DESIGN_HEIGHT }\n","enum PlatformOS {\n Ios = 'ios',\n Android = 'android'\n // Macos = 'macos',\n // Windows = 'windows',\n // Web = 'web',\n}\n\nexport { PlatformOS }\n","import { Platform as NativePlatform } from 'react-native'\nimport { PlatformOS } from './Platform.constants'\nimport { PlatformByData, PlatformRequiredOS } from './Platform.types'\n\n// Platform.Version\nclass Platform {\n static get OS() {\n return NativePlatform.OS\n }\n\n static get version() {\n return NativePlatform.Version\n }\n\n static get isIos() {\n return Platform.OS === 'ios'\n }\n\n static get isAndroid() {\n return Platform.OS === 'android'\n }\n\n // static get isMac() {\n // return Platform.OS === 'macos'\n // }\n\n // static get isWindows() {\n // return Platform.OS === 'windows'\n // }\n\n // static get isWeb() {\n // return Platform.OS === 'web'\n // }\n\n static by<Value>(data: PlatformByData<Value>, defaultOS: PlatformRequiredOS = PlatformOS.Ios) {\n return NativePlatform.select({ ...data, default: data[defaultOS] })\n }\n}\n\nexport default Platform\n"],"names":["s","t","Error","e","Function","r","i","toUpperCase","reduce","length","push","n","a","StartGroup","EndGroup","Default","Info","Success","Warning","Danger","o","static","info","success","warning","danger","console","startGroup","endGroup","c","ignore","create","cause","capture","signal","message","payload","stack","filter","Boolean","formatted","error","forward","parse","status","data","config","response","errors","u","isExternal","isDefaultPrevented","constructor","this","preventDefault","bind","overrideDefault","l","emit","on","off","clear","eventNameList","Object","keys","event","listenerList","forEach","Clipboard","copy","value","Log","NativeClipboard","setString","toString","paste","getString","Dimensions","windowWidth","NativeDimensions","get","width","windowHeight","height","statusBarWidth","statusBarHeight","StatusBar","currentHeight","ratio","widthRatio","heightRatio","Math","min","byWindowWidth","byWindowHeight","byRatio","PlatformOS","Platform","OS","NativePlatform","version","Version","isIos","isAndroid","by","defaultOS","Ios","select","default"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","sources":["../../node_modules/@mediacubeco/javascript-base/dist/utils/index.mjs","../../node_modules/@mediacubeco/javascript-base/dist/helpers/index.mjs","../../src/helpers/Platform/Platform.constants.ts","../../src/utils/listeners/appState.ts","../../src/helpers/Platform/Platform.ts","../../src/utils/listeners/keyboard.ts","../../src/hooks/useLayout/useLayout.constants.ts","../../src/hooks/useMeasures/useMeasures.constants.ts","../../src/hooks/useMeasures/useMeasures.utils.ts","../../src/hooks/useAppState/useAppState.ts","../../src/hooks/useKeyboard/useKeyboard.ts","../../src/hooks/useLayout/useLayout.ts","../../src/hooks/useMeasures/useMeasures.ts"],"sourcesContent":["const e=e=>void 0===e,t=e=>null===e,n=n=>e(n)||t(n),o=e=>\"string\"==typeof e,r=e=>\"number\"==typeof e,i=e=>\"bigint\"==typeof e,s=e=>Number.isNaN(e),f=e=>\"boolean\"==typeof e,c=e=>\"symbol\"==typeof e,a=e=>\"object\"==typeof e,u=e=>{const t=[l,p,y,b,m,g,j,x,E,N,T].some(t=>t(e));return!!e&&\"object\"==typeof e&&!t},l=e=>Array.isArray(e),p=e=>e instanceof ArrayBuffer,y=e=>e instanceof Map,b=e=>e instanceof Set,m=e=>e instanceof Map,g=e=>e instanceof Set,j=e=>e instanceof Date,x=e=>e instanceof Error,A=e=>e instanceof Proxy,E=e=>e instanceof RegExp,N=e=>e instanceof Promise,T=e=>e instanceof Function;function h(e,t,n){return 2===arguments.length?t[e]:t[e]??n}const M=(e,...t)=>{if(T(e))return e(...t)},O=(e,t)=>{const n=Object.entries(e);return Object.fromEntries(n.map(([e,n],o,r)=>[e,t(e,n,o,r)]))},P=(e,t)=>{let n;return(...o)=>{n&&clearTimeout(n),n=setTimeout(()=>M(e,...o),t)}},S=(e,t)=>{let n=!0;return(...o)=>{n&&(M(e,...o),n=!1),setTimeout(()=>n=!0,t)}},d=e=>{for(let t in e)return!1;return!0},v=e=>0===e.length,B=(e,t)=>!(!a(t)||!(e in t)),D=(e,t=\"isVisible\")=>e.filter(e=>!B(t,e)||e[t]),F=e=>e.filter(e=>!n(e));export{P as debounce,D as filterByProperty,F as filterNullableValues,h as getValueByProperty,B as hasProperty,a as isAnyObject,l as isArray,p as isArrayBuffer,v as isArrayEmpty,i as isBigint,f as isBoolean,j as isDate,x as isError,T as isFunction,y as isMap,s as isNaN,t as isNull,n as isNullable,r as isNumber,u as isObject,d as isObjectEmpty,N as isPromise,A as isProxy,E as isRegExp,b as isSet,o as isString,c as isSymbol,e as isUndefined,m as isWeakMap,g as isWeakSet,O as mapRecord,M as runCallback,S as throttle};\n//# sourceMappingURL=index.mjs.map\n","import{isAxiosError as t}from\"axios\";const s=t=>t instanceof Error,e=(t,...s)=>{if(t instanceof Function)return t(...s)},r=t=>{for(let s in t)return!1;return!0},i=(t=\"?\",...s)=>{const e=(t&&(r=t,\"string\"==typeof r)?t:\"?\").toUpperCase();var r;const i=s.reduce((t,s,e,{length:r})=>{const i=e===r-1?[]:[\"|\"];return t.push(s,...i),t},s.length?[\"-\"]:[]);return[`[${e}]`,...i]};var n,a;!function(t){t.StartGroup=\"group\",t.EndGroup=\"groupEnd\",t.Default=\"log\"}(n||(n={})),function(t){t.Info=\"\u001b[36m%s\u001b[0m\",t.Success=\"\u001b[32m%s\u001b[0m\",t.Warning=\"\u001b[33m%s\u001b[0m\",t.Danger=\"\u001b[31m%s\u001b[0m\"}(a||(a={}));class o{static formatted={info:(...t)=>o.info(...i(...t)),success:(...t)=>o.success(...i(...t)),warning:(...t)=>o.warning(...i(...t)),danger:(...t)=>o.danger(...i(...t))};static#t(t,...s){console[t](...s)}static startGroup(t,s,...e){o.#t(n.StartGroup,...((t,...s)=>[\"%c%s\",t,...s])(`font-size: 16px;${s}`,...i(t,...e)))}static endGroup(){o.#t(n.EndGroup)}static info(...t){o.#t(n.Default,a.Info,...t)}static success(...t){o.#t(n.Default,a.Success,...t)}static warning(...t){o.#t(n.Default,a.Warning,...t)}static danger(...t){o.#t(n.Default,a.Danger,...t)}}class c{static ignore(t){}static create(t,s){return new Error(t,{cause:s})}static throw(t,s){throw c.create(t,s)}static capture(t,e){const{signal:r,message:i,payload:n,stack:a}=e,c=[i,s(t)?t.message:void 0].filter(Boolean);o.formatted.danger(r,...c,{error:t,payload:n,stack:a})}static forward(t,s){throw c.capture(t,s),t}static parse(e){const i=\"Some error!\",n=0,a={};switch(!0){case t(e):{const{status:t=n,data:s,config:o}=e.response??{},{message:c=i,errors:u=a}=s??{};return{message:c,status:t,errors:u,isExternal:r(u)}}case s(e):return{message:e.message,status:n,errors:a,isExternal:!0};default:return{message:i,status:n,errors:a,isExternal:!0}}}}class u{isDefaultPrevented=!1;constructor(){this.preventDefault=this.preventDefault.bind(this),this.overrideDefault=this.overrideDefault.bind(this)}preventDefault(){this.isDefaultPrevented=!0}overrideDefault(){this.isDefaultPrevented=!1}}class l{#s={};constructor(){this.emit=this.emit.bind(this),this.on=this.on.bind(this),this.off=this.off.bind(this),this.clear=this.clear.bind(this)}get eventNameList(){return Object.keys(this.#s)}emit(t,s,r){const i=this.#s[t];if(!i)return e(r);const{event:n,listenerList:a}=i;a.forEach(t=>e(t,{...n,...s})),!n.isDefaultPrevented&&e(r)}on(t,s){const e=this.#s[t];return e?e.listenerList.push(s):this.#s[t]={event:new u,listenerList:[s]},()=>this.off(t,s)}off(t,s){const e=this.#s[t];if(!e)return;const{event:r,listenerList:i}=e;this.#s[t]={event:r,listenerList:i.filter(t=>t!==s)},r.overrideDefault()}clear(t){delete this.#s[t]}}export{c as ErrorHandler,l as EventEmitter,o as Log};\n//# sourceMappingURL=index.mjs.map\n","enum PlatformOS {\n Ios = 'ios',\n Android = 'android'\n // Macos = 'macos',\n // Windows = 'windows',\n // Web = 'web',\n}\n\nexport { PlatformOS }\n","import { AppState, AppStateStatus, NativeEventSubscription } from 'react-native'\nimport { runCallback } from '@mediacubeco/javascript-base/utils'\nimport { BaseRecord, Callback } from '@mediacubeco/javascript-base/types'\nimport { Platform } from '../../helpers'\n\ntype AppStateAdditionalHandlerName = 'onFocus' | 'onBlur'\n\ntype AppStateHandlerName =\n | AppStateAdditionalHandlerName\n | 'onActive'\n | 'onInactive'\n | 'onBackground'\n | 'onExtension'\n | 'onUnknown'\n | 'onChange'\n\ntype AppStateHandlerCallback = Callback<[AppStateStatus]>\n\ntype AppStateHandlers = Partial<BaseRecord<AppStateHandlerCallback, AppStateHandlerName>>\n\ninterface HandleChangeAppStateConfig {\n state: AppStateStatus\n handlers: Omit<AppStateHandlers, AppStateAdditionalHandlerName>\n}\n\ntype HandleChangeAppState = (config: HandleChangeAppStateConfig) => void\n\ntype ListenAppState = (handlers: AppStateHandlers) => NativeEventSubscription\n\nenum AppStatus {\n Active = 'active',\n Inactive = 'inactive',\n Background = 'background',\n Extension = 'extension',\n Unknown = 'unknown'\n}\n\nconst handleChangeAppState: HandleChangeAppState = ({ state, handlers }) => {\n const { onActive, onInactive, onBackground, onExtension, onUnknown, onChange } = handlers ?? {}\n\n const handler = {\n [AppStatus.Active]: onActive,\n [AppStatus.Inactive]: onInactive,\n [AppStatus.Background]: onBackground,\n [AppStatus.Extension]: onExtension,\n [AppStatus.Unknown]: onUnknown\n }[state]\n\n runCallback(onChange, state)\n runCallback(handler, state)\n}\n\nconst listenAppState: ListenAppState = ({ onFocus, onBlur, ...handlers }) => {\n const listenerList: NativeEventSubscription[] = []\n\n if (Platform.isAndroid) {\n listenerList.push(\n AppState.addEventListener('focus', (state) => runCallback(onFocus, state)),\n AppState.addEventListener('blur', (state) => runCallback(onBlur, state))\n )\n }\n\n listenerList.push(\n AppState.addEventListener('change', (state) => handleChangeAppState({ state, handlers }))\n )\n\n return {\n remove() {\n listenerList.forEach((listener) => listener.remove())\n }\n }\n}\n\nexport { listenAppState }\nexport type { AppStateHandlers }\n","import { Platform as NativePlatform } from 'react-native'\nimport { PlatformOS } from './Platform.constants'\nimport { PlatformByData, PlatformRequiredOS } from './Platform.types'\n\n// Platform.Version\nclass Platform {\n static get OS() {\n return NativePlatform.OS\n }\n\n static get version() {\n return NativePlatform.Version\n }\n\n static get isIos() {\n return Platform.OS === 'ios'\n }\n\n static get isAndroid() {\n return Platform.OS === 'android'\n }\n\n // static get isMac() {\n // return Platform.OS === 'macos'\n // }\n\n // static get isWindows() {\n // return Platform.OS === 'windows'\n // }\n\n // static get isWeb() {\n // return Platform.OS === 'web'\n // }\n\n static by<Value>(data: PlatformByData<Value>, defaultOS: PlatformRequiredOS = PlatformOS.Ios) {\n return NativePlatform.select({ ...data, default: data[defaultOS] })\n }\n}\n\nexport default Platform\n","import { Keyboard, KeyboardEventListener, NativeEventSubscription } from 'react-native'\nimport {\n mapRecord,\n filterNullableValues,\n isNullable\n} from '@mediacubeco/javascript-base/utils'\nimport { BaseRecord, KeyOf } from '@mediacubeco/javascript-base/types'\n\nenum KeyboardEventName {\n onWillShow = 'keyboardWillShow',\n onDidShow = 'keyboardDidShow',\n onWillHide = 'keyboardWillHide',\n onDidHide = 'keyboardDidHide',\n onWillChangeFrame = 'keyboardWillChangeFrame',\n onDidChangeFrame = 'keyboardDidChangeFrame'\n}\n\ntype KeyboardHandlers = Partial<BaseRecord<KeyboardEventListener, KeyOf<typeof KeyboardEventName>>>\n\ntype ListenKeyboard = (handlers: KeyboardHandlers) => NativeEventSubscription\n\nconst listenKeyboard: ListenKeyboard = (handlers) => {\n const list = mapRecord(handlers, (key, handler) => {\n if (isNullable(handler)) return\n\n return Keyboard.addListener(KeyboardEventName[key], handler)\n })\n\n return {\n remove() {\n return filterNullableValues(Object.values(list)).map((unsubscribe) => unsubscribe.remove())\n }\n }\n}\n\nexport { listenKeyboard }\nexport type { KeyboardHandlers }\n","import { Layout, NullableLayout } from './useLayout.types'\n\nconst DEFAULT_LAYOUT: Layout = {\n top: 0,\n left: 0,\n width: 0,\n height: 0,\n}\n\nconst DEFAULT_NULLABLE_LAYOUT: NullableLayout = {\n top: null,\n left: null,\n width: null,\n height: null,\n}\n\nexport { DEFAULT_LAYOUT, DEFAULT_NULLABLE_LAYOUT }\n","const DEFAULT_MEASURES = { x: 0, y: 0, width: 0, height: 0, pageX: 0, pageY: 0 }\nconst DEFAULT_MEASURES_IN_CONTAINER = { left: 0, top: 0, width: 0, height: 0 }\nconst DEFAULT_MEASURES_IN_WINDOW = { x: 0, y: 0, width: 0, height: 0 }\n\nexport { DEFAULT_MEASURES, DEFAULT_MEASURES_IN_CONTAINER, DEFAULT_MEASURES_IN_WINDOW }\n","import { RefObject } from 'react'\nimport { FlatList, ScrollView, SectionList, View } from 'react-native'\nimport { Nullable } from '@mediacubeco/javascript-base/types'\n\nconst getResponder = <\n ScrolledCurrent extends Nullable<ScrollView | FlatList | SectionList>,\n Current extends Nullable<View>\n>(\n scrolledRef: RefObject<ScrolledCurrent>\n) => {\n const responder = scrolledRef.current?.getScrollResponder() ?? null\n\n const inner = (responder?.getInnerViewRef?.() ?? null) as Current\n const outer = (responder?.getNativeScrollRef?.() ?? null) as Current\n\n return { responder, inner, outer }\n}\n\nexport { getResponder }\n","import { useEffect } from 'react'\nimport { AppStateHandlers, listenAppState } from '../../utils/listeners'\n\nconst useAppState = (handlers: AppStateHandlers) => {\n useEffect(() => {\n const listener = listenAppState(handlers)\n\n return () => listener.remove()\n }, [handlers])\n}\n\nexport { useAppState }\n","import { useEffect } from 'react'\nimport { KeyboardHandlers, listenKeyboard } from '../../utils/listeners'\n\nconst useKeyboard = (handlers: KeyboardHandlers) => {\n useEffect(() => {\n const listener = listenKeyboard(handlers)\n\n return () => {\n listener.remove()\n }\n }, [handlers])\n}\n\nexport { useKeyboard }\n","import { useCallback, useState } from 'react'\nimport { LayoutChangeEvent } from 'react-native'\nimport { runCallback } from '@mediacubeco/javascript-base/utils'\nimport { DEFAULT_LAYOUT, DEFAULT_NULLABLE_LAYOUT } from './useLayout.constants'\nimport { UseLayoutConfig, HandleLayout, Layout, NullableLayout } from './useLayout.types'\n\nfunction useLayout(config?: UseLayoutConfig<false>): [Layout, HandleLayout]\nfunction useLayout(config?: UseLayoutConfig<true>): [NullableLayout, HandleLayout]\nfunction useLayout({ onLayout, isNullable }: UseLayoutConfig = { isNullable: false }) {\n const [layout, setLayout] = useState(isNullable ? DEFAULT_NULLABLE_LAYOUT : DEFAULT_LAYOUT)\n\n const handleLayout = useCallback(\n (event: LayoutChangeEvent) => {\n runCallback(onLayout, event)\n\n const { layout } = event.nativeEvent\n const { y: top, x: left, width, height } = layout\n\n setLayout({ top, left, width, height })\n },\n [onLayout]\n )\n\n return [layout, handleLayout] as const\n}\n\nexport { useLayout }\n","import { useCallback, useRef } from 'react'\nimport { isNullable } from '@mediacubeco/javascript-base/utils'\nimport {\n DEFAULT_MEASURES,\n DEFAULT_MEASURES_IN_CONTAINER,\n DEFAULT_MEASURES_IN_WINDOW\n} from './useMeasures.constants'\nimport {\n Calculate,\n CalculateMeasures,\n CalculateMeasuresInContainer,\n CalculateMeasuresInWindow,\n Measures,\n MeasuresInContainer,\n MeasuresInWindow,\n OnResolve\n} from './useMeasures.types'\n\nconst useMeasures = () => {\n const measuresRef = useRef(DEFAULT_MEASURES)\n const measuresInContainerRef = useRef(DEFAULT_MEASURES_IN_CONTAINER)\n const measuresInWindowRef = useRef(DEFAULT_MEASURES_IN_WINDOW)\n\n const calculate: Calculate = useCallback(async (current, defaultData, onResolve) => {\n return new Promise((resolve) => {\n if (isNullable(current)) {\n resolve(defaultData)\n } else {\n onResolve(current, resolve)\n }\n })\n }, [])\n\n const calculateMeasures: CalculateMeasures = useCallback((current) => {\n const onResolve: OnResolve<Measures> = (current, resolve) => {\n current.measure((x = 0, y = 0, width = 0, height = 0, pageX = 0, pageY = 0) => {\n measuresRef.current = { x, y, width, height, pageX, pageY }\n\n resolve(measuresRef.current)\n })\n }\n\n return calculate(current, DEFAULT_MEASURES, onResolve)\n }, [])\n\n const calculateMeasuresInContainer: CalculateMeasuresInContainer = useCallback(\n (current, container) => {\n const onResolve: OnResolve<MeasuresInContainer> = (current, resolve) => {\n current.measureLayout(container, (left = 0, top = 0, width = 0, height = 0) => {\n measuresInContainerRef.current = { left, top, width, height }\n\n resolve(measuresInContainerRef.current)\n })\n }\n\n return calculate(current, DEFAULT_MEASURES_IN_CONTAINER, onResolve)\n },\n []\n )\n\n const calculateMeasuresInWindow: CalculateMeasuresInWindow = useCallback((current) => {\n const onResolve: OnResolve<MeasuresInWindow> = (current, resolve) => {\n current.measureInWindow((x = 0, y = 0, width = 0, height = 0) => {\n measuresInWindowRef.current = { x, y, width, height }\n\n resolve(measuresInWindowRef.current)\n })\n }\n\n return calculate(current, DEFAULT_MEASURES_IN_WINDOW, onResolve)\n }, [])\n\n return {\n measuresRef,\n measuresInContainerRef,\n measuresInWindowRef,\n calculateMeasures,\n calculateMeasuresInContainer,\n calculateMeasuresInWindow\n }\n}\n\nexport { useMeasures }\n"],"names":["n","e","t","M","Function","T","a","PlatformOS","AppStatus","StartGroup","EndGroup","Default","Info","Success","Warning","Danger","Platform","OS","NativePlatform","version","Version","isIos","isAndroid","by","data","defaultOS","Ios","select","default","listenAppState","onFocus","onBlur","handlers","listenerList","push","AppState","addEventListener","state","runCallback","handleChangeAppState","onActive","onInactive","onBackground","onExtension","onUnknown","onChange","handler","Active","Inactive","Background","Extension","Unknown","remove","forEach","listener","KeyboardEventName","listenKeyboard","list","Object","entries","fromEntries","map","o","r","mapRecord","key","isNullable","Keyboard","addListener","filter","filterNullableValues","values","unsubscribe","DEFAULT_LAYOUT","top","left","width","height","DEFAULT_NULLABLE_LAYOUT","DEFAULT_MEASURES","x","y","pageX","pageY","DEFAULT_MEASURES_IN_CONTAINER","DEFAULT_MEASURES_IN_WINDOW","scrolledRef","responder","current","getScrollResponder","inner","getInnerViewRef","outer","getNativeScrollRef","useEffect","onLayout","layout","setLayout","useState","handleLayout","useCallback","event","nativeEvent","useMeasures","measuresRef","useRef","measuresInContainerRef","measuresInWindowRef","calculate","async","defaultData","onResolve","Promise","resolve","calculateMeasures","measure","calculateMeasuresInContainer","container","measureLayout","calculateMeasuresInWindow","measureInWindow"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sources":["../../src/utils/listeners/appState.ts","../../src/utils/listeners/keyboard.ts","../../src/hooks/useAppState/useAppState.ts","../../src/hooks/useKeyboard/useKeyboard.ts","../../src/hooks/useLayout/useLayout.types.ts","../../src/hooks/useLayout/useLayout.ts","../../src/hooks/useLayout/useLayout.constants.ts","../../src/hooks/useMeasures/useMeasures.constants.ts","../../src/hooks/useMeasures/useMeasures.types.ts","../../src/hooks/useMeasures/useMeasures.ts","../../src/hooks/useMeasures/useMeasures.utils.ts"],"sourcesContent":["import { AppState, AppStateStatus, NativeEventSubscription } from 'react-native'\nimport { runCallback } from '@mediacubeco/javascript-base/utils'\nimport { BaseRecord, Callback } from '@mediacubeco/javascript-base/types'\nimport { Platform } from '../../helpers'\n\ntype AppStateAdditionalHandlerName = 'onFocus' | 'onBlur'\n\ntype AppStateHandlerName =\n | AppStateAdditionalHandlerName\n | 'onActive'\n | 'onInactive'\n | 'onBackground'\n | 'onExtension'\n | 'onUnknown'\n | 'onChange'\n\ntype AppStateHandlerCallback = Callback<[AppStateStatus]>\n\ntype AppStateHandlers = Partial<BaseRecord<AppStateHandlerCallback, AppStateHandlerName>>\n\ninterface HandleChangeAppStateConfig {\n state: AppStateStatus\n handlers: Omit<AppStateHandlers, AppStateAdditionalHandlerName>\n}\n\ntype HandleChangeAppState = (config: HandleChangeAppStateConfig) => void\n\ntype ListenAppState = (handlers: AppStateHandlers) => NativeEventSubscription\n\nenum AppStatus {\n Active = 'active',\n Inactive = 'inactive',\n Background = 'background',\n Extension = 'extension',\n Unknown = 'unknown'\n}\n\nconst handleChangeAppState: HandleChangeAppState = ({ state, handlers }) => {\n const { onActive, onInactive, onBackground, onExtension, onUnknown, onChange } = handlers ?? {}\n\n const handler = {\n [AppStatus.Active]: onActive,\n [AppStatus.Inactive]: onInactive,\n [AppStatus.Background]: onBackground,\n [AppStatus.Extension]: onExtension,\n [AppStatus.Unknown]: onUnknown\n }[state]\n\n runCallback(onChange, state)\n runCallback(handler, state)\n}\n\nconst listenAppState: ListenAppState = ({ onFocus, onBlur, ...handlers }) => {\n const listenerList: NativeEventSubscription[] = []\n\n if (Platform.isAndroid) {\n listenerList.push(\n AppState.addEventListener('focus', (state) => runCallback(onFocus, state)),\n AppState.addEventListener('blur', (state) => runCallback(onBlur, state))\n )\n }\n\n listenerList.push(\n AppState.addEventListener('change', (state) => handleChangeAppState({ state, handlers }))\n )\n\n return {\n remove() {\n listenerList.forEach((listener) => listener.remove())\n }\n }\n}\n\nexport { listenAppState }\nexport type { AppStateHandlers }\n","import { Keyboard, KeyboardEventListener, NativeEventSubscription } from 'react-native'\nimport {\n mapRecord,\n filterNullableValues,\n isNullable\n} from '@mediacubeco/javascript-base/utils'\nimport { BaseRecord, KeyOf } from '@mediacubeco/javascript-base/types'\n\nenum KeyboardEventName {\n onWillShow = 'keyboardWillShow',\n onDidShow = 'keyboardDidShow',\n onWillHide = 'keyboardWillHide',\n onDidHide = 'keyboardDidHide',\n onWillChangeFrame = 'keyboardWillChangeFrame',\n onDidChangeFrame = 'keyboardDidChangeFrame'\n}\n\ntype KeyboardHandlers = Partial<BaseRecord<KeyboardEventListener, KeyOf<typeof KeyboardEventName>>>\n\ntype ListenKeyboard = (handlers: KeyboardHandlers) => NativeEventSubscription\n\nconst listenKeyboard: ListenKeyboard = (handlers) => {\n const list = mapRecord(handlers, (key, handler) => {\n if (isNullable(handler)) return\n\n return Keyboard.addListener(KeyboardEventName[key], handler)\n })\n\n return {\n remove() {\n return filterNullableValues(Object.values(list)).map((unsubscribe) => unsubscribe.remove())\n }\n }\n}\n\nexport { listenKeyboard }\nexport type { KeyboardHandlers }\n","import { useEffect } from 'react'\nimport { AppStateHandlers, listenAppState } from '../../utils/listeners'\n\nconst useAppState = (handlers: AppStateHandlers) => {\n useEffect(() => {\n const listener = listenAppState(handlers)\n\n return () => listener.remove()\n }, [handlers])\n}\n\nexport { useAppState }\n","import { useEffect } from 'react'\nimport { KeyboardHandlers, listenKeyboard } from '../../utils/listeners'\n\nconst useKeyboard = (handlers: KeyboardHandlers) => {\n useEffect(() => {\n const listener = listenKeyboard(handlers)\n\n return () => {\n listener.remove()\n }\n }, [handlers])\n}\n\nexport { useKeyboard }\n","import { LayoutChangeEvent } from 'react-native'\nimport { Nullable } from '@mediacubeco/javascript-base/types'\n\ntype HandleLayout = (event: LayoutChangeEvent) => void\n\ntype UseLayoutConfig<IsNullable extends boolean = boolean> = {\n isNullable?: IsNullable\n onLayout?: HandleLayout\n}\n\ntype Layout = Record<'top' | 'left' | 'width' | 'height', number>\n\ntype NullableLayout = Record<'top' | 'left' | 'width' | 'height', Nullable<number>>\n\nexport type { UseLayoutConfig, HandleLayout, Layout, NullableLayout }\n","import { useCallback, useState } from 'react'\nimport { LayoutChangeEvent } from 'react-native'\nimport { runCallback } from '@mediacubeco/javascript-base/utils'\nimport { DEFAULT_LAYOUT, DEFAULT_NULLABLE_LAYOUT } from './useLayout.constants'\nimport { UseLayoutConfig, HandleLayout, Layout, NullableLayout } from './useLayout.types'\n\nfunction useLayout(config?: UseLayoutConfig<false>): [Layout, HandleLayout]\nfunction useLayout(config?: UseLayoutConfig<true>): [NullableLayout, HandleLayout]\nfunction useLayout({ onLayout, isNullable }: UseLayoutConfig = { isNullable: false }) {\n const [layout, setLayout] = useState(isNullable ? DEFAULT_NULLABLE_LAYOUT : DEFAULT_LAYOUT)\n\n const handleLayout = useCallback(\n (event: LayoutChangeEvent) => {\n runCallback(onLayout, event)\n\n const { layout } = event.nativeEvent\n const { y: top, x: left, width, height } = layout\n\n setLayout({ top, left, width, height })\n },\n [onLayout]\n )\n\n return [layout, handleLayout] as const\n}\n\nexport { useLayout }\n","import { Layout, NullableLayout } from './useLayout.types'\n\nconst DEFAULT_LAYOUT: Layout = {\n top: 0,\n left: 0,\n width: 0,\n height: 0,\n}\n\nconst DEFAULT_NULLABLE_LAYOUT: NullableLayout = {\n top: null,\n left: null,\n width: null,\n height: null,\n}\n\nexport { DEFAULT_LAYOUT, DEFAULT_NULLABLE_LAYOUT }\n","const DEFAULT_MEASURES = { x: 0, y: 0, width: 0, height: 0, pageX: 0, pageY: 0 }\nconst DEFAULT_MEASURES_IN_CONTAINER = { left: 0, top: 0, width: 0, height: 0 }\nconst DEFAULT_MEASURES_IN_WINDOW = { x: 0, y: 0, width: 0, height: 0 }\n\nexport { DEFAULT_MEASURES, DEFAULT_MEASURES_IN_CONTAINER, DEFAULT_MEASURES_IN_WINDOW }\n","import { NativeMethods, View } from 'react-native'\nimport { NotNullable, Nullable } from '@mediacubeco/javascript-base/types'\nimport type {\n DEFAULT_MEASURES,\n DEFAULT_MEASURES_IN_CONTAINER,\n DEFAULT_MEASURES_IN_WINDOW\n} from './useMeasures.constants'\n\ntype Measures = typeof DEFAULT_MEASURES\n\ntype MeasuresInContainer = typeof DEFAULT_MEASURES_IN_CONTAINER\n\ntype MeasuresInWindow = typeof DEFAULT_MEASURES_IN_WINDOW\n\ntype Current = Nullable<NativeMethods>\n\ninterface Container extends View {}\n\ntype OnResolve<Measures> = (\n current: NotNullable<Current>,\n resolve: (value: Measures) => void\n) => void\n\ntype Calculate = <Measures>(\n current: Current,\n defaultData: Measures,\n onResolve: OnResolve<Measures>\n) => Promise<Measures>\n\ntype CalculateMeasures = (current: Current) => Promise<Measures>\n\ntype CalculateMeasuresInContainer = (\n current: Current,\n container: Container\n) => Promise<MeasuresInContainer>\n\ntype CalculateMeasuresInWindow = (current: Current) => Promise<MeasuresInWindow>\n\nexport type {\n Measures,\n MeasuresInContainer,\n MeasuresInWindow,\n OnResolve,\n Calculate,\n CalculateMeasures,\n CalculateMeasuresInContainer,\n CalculateMeasuresInWindow\n}\n","import { useCallback, useRef } from 'react'\nimport { isNullable } from '@mediacubeco/javascript-base/utils'\nimport {\n DEFAULT_MEASURES,\n DEFAULT_MEASURES_IN_CONTAINER,\n DEFAULT_MEASURES_IN_WINDOW\n} from './useMeasures.constants'\nimport {\n Calculate,\n CalculateMeasures,\n CalculateMeasuresInContainer,\n CalculateMeasuresInWindow,\n Measures,\n MeasuresInContainer,\n MeasuresInWindow,\n OnResolve\n} from './useMeasures.types'\n\nconst useMeasures = () => {\n const measuresRef = useRef(DEFAULT_MEASURES)\n const measuresInContainerRef = useRef(DEFAULT_MEASURES_IN_CONTAINER)\n const measuresInWindowRef = useRef(DEFAULT_MEASURES_IN_WINDOW)\n\n const calculate: Calculate = useCallback(async (current, defaultData, onResolve) => {\n return new Promise((resolve) => {\n if (isNullable(current)) {\n resolve(defaultData)\n } else {\n onResolve(current, resolve)\n }\n })\n }, [])\n\n const calculateMeasures: CalculateMeasures = useCallback((current) => {\n const onResolve: OnResolve<Measures> = (current, resolve) => {\n current.measure((x = 0, y = 0, width = 0, height = 0, pageX = 0, pageY = 0) => {\n measuresRef.current = { x, y, width, height, pageX, pageY }\n\n resolve(measuresRef.current)\n })\n }\n\n return calculate(current, DEFAULT_MEASURES, onResolve)\n }, [])\n\n const calculateMeasuresInContainer: CalculateMeasuresInContainer = useCallback(\n (current, container) => {\n const onResolve: OnResolve<MeasuresInContainer> = (current, resolve) => {\n current.measureLayout(container, (left = 0, top = 0, width = 0, height = 0) => {\n measuresInContainerRef.current = { left, top, width, height }\n\n resolve(measuresInContainerRef.current)\n })\n }\n\n return calculate(current, DEFAULT_MEASURES_IN_CONTAINER, onResolve)\n },\n []\n )\n\n const calculateMeasuresInWindow: CalculateMeasuresInWindow = useCallback((current) => {\n const onResolve: OnResolve<MeasuresInWindow> = (current, resolve) => {\n current.measureInWindow((x = 0, y = 0, width = 0, height = 0) => {\n measuresInWindowRef.current = { x, y, width, height }\n\n resolve(measuresInWindowRef.current)\n })\n }\n\n return calculate(current, DEFAULT_MEASURES_IN_WINDOW, onResolve)\n }, [])\n\n return {\n measuresRef,\n measuresInContainerRef,\n measuresInWindowRef,\n calculateMeasures,\n calculateMeasuresInContainer,\n calculateMeasuresInWindow\n }\n}\n\nexport { useMeasures }\n","import { RefObject } from 'react'\nimport { FlatList, ScrollView, SectionList, View } from 'react-native'\nimport { Nullable } from '@mediacubeco/javascript-base/types'\n\nconst getResponder = <\n ScrolledCurrent extends Nullable<ScrollView | FlatList | SectionList>,\n Current extends Nullable<View>\n>(\n scrolledRef: RefObject<ScrolledCurrent>\n) => {\n const responder = scrolledRef.current?.getScrollResponder() ?? null\n\n const inner = (responder?.getInnerViewRef?.() ?? null) as Current\n const outer = (responder?.getNativeScrollRef?.() ?? null) as Current\n\n return { responder, inner, outer }\n}\n\nexport { getResponder }\n"],"names":[],"mappings":";;;;;;AAEA;AACA;AACA;AACA;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;;ACAA;;ACCA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;;ACDA;AACA;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":["../../node_modules/@mediacubeco/javascript-base/dist/utils/index.mjs","../../node_modules/@mediacubeco/javascript-base/dist/helpers/index.mjs","../../src/helpers/Platform/Platform.constants.ts","../../src/utils/listeners/appState.ts","../../src/helpers/Platform/Platform.ts","../../src/utils/listeners/keyboard.ts","../../src/hooks/useAppState/useAppState.ts","../../src/hooks/useKeyboard/useKeyboard.ts","../../src/hooks/useLayout/useLayout.constants.ts","../../src/hooks/useLayout/useLayout.ts","../../src/hooks/useMeasures/useMeasures.constants.ts","../../src/hooks/useMeasures/useMeasures.ts","../../src/hooks/useMeasures/useMeasures.utils.ts"],"sourcesContent":["const e=e=>void 0===e,t=e=>null===e,n=n=>e(n)||t(n),o=e=>\"string\"==typeof e,r=e=>\"number\"==typeof e,i=e=>\"bigint\"==typeof e,s=e=>Number.isNaN(e),f=e=>\"boolean\"==typeof e,c=e=>\"symbol\"==typeof e,a=e=>\"object\"==typeof e,u=e=>{const t=[l,p,y,b,m,g,j,x,E,N,T].some(t=>t(e));return!!e&&\"object\"==typeof e&&!t},l=e=>Array.isArray(e),p=e=>e instanceof ArrayBuffer,y=e=>e instanceof Map,b=e=>e instanceof Set,m=e=>e instanceof Map,g=e=>e instanceof Set,j=e=>e instanceof Date,x=e=>e instanceof Error,A=e=>e instanceof Proxy,E=e=>e instanceof RegExp,N=e=>e instanceof Promise,T=e=>e instanceof Function;function h(e,t,n){return 2===arguments.length?t[e]:t[e]??n}const M=(e,...t)=>{if(T(e))return e(...t)},O=(e,t)=>{const n=Object.entries(e);return Object.fromEntries(n.map(([e,n],o,r)=>[e,t(e,n,o,r)]))},P=(e,t)=>{let n;return(...o)=>{n&&clearTimeout(n),n=setTimeout(()=>M(e,...o),t)}},S=(e,t)=>{let n=!0;return(...o)=>{n&&(M(e,...o),n=!1),setTimeout(()=>n=!0,t)}},d=e=>{for(let t in e)return!1;return!0},v=e=>0===e.length,B=(e,t)=>!(!a(t)||!(e in t)),D=(e,t=\"isVisible\")=>e.filter(e=>!B(t,e)||e[t]),F=e=>e.filter(e=>!n(e));export{P as debounce,D as filterByProperty,F as filterNullableValues,h as getValueByProperty,B as hasProperty,a as isAnyObject,l as isArray,p as isArrayBuffer,v as isArrayEmpty,i as isBigint,f as isBoolean,j as isDate,x as isError,T as isFunction,y as isMap,s as isNaN,t as isNull,n as isNullable,r as isNumber,u as isObject,d as isObjectEmpty,N as isPromise,A as isProxy,E as isRegExp,b as isSet,o as isString,c as isSymbol,e as isUndefined,m as isWeakMap,g as isWeakSet,O as mapRecord,M as runCallback,S as throttle};\n//# sourceMappingURL=index.mjs.map\n","import{isAxiosError as t}from\"axios\";const s=t=>t instanceof Error,e=(t,...s)=>{if(t instanceof Function)return t(...s)},r=t=>{for(let s in t)return!1;return!0},i=(t=\"?\",...s)=>{const e=(t&&(r=t,\"string\"==typeof r)?t:\"?\").toUpperCase();var r;const i=s.reduce((t,s,e,{length:r})=>{const i=e===r-1?[]:[\"|\"];return t.push(s,...i),t},s.length?[\"-\"]:[]);return[`[${e}]`,...i]};var n,a;!function(t){t.StartGroup=\"group\",t.EndGroup=\"groupEnd\",t.Default=\"log\"}(n||(n={})),function(t){t.Info=\"\u001b[36m%s\u001b[0m\",t.Success=\"\u001b[32m%s\u001b[0m\",t.Warning=\"\u001b[33m%s\u001b[0m\",t.Danger=\"\u001b[31m%s\u001b[0m\"}(a||(a={}));class o{static formatted={info:(...t)=>o.info(...i(...t)),success:(...t)=>o.success(...i(...t)),warning:(...t)=>o.warning(...i(...t)),danger:(...t)=>o.danger(...i(...t))};static#t(t,...s){console[t](...s)}static startGroup(t,s,...e){o.#t(n.StartGroup,...((t,...s)=>[\"%c%s\",t,...s])(`font-size: 16px;${s}`,...i(t,...e)))}static endGroup(){o.#t(n.EndGroup)}static info(...t){o.#t(n.Default,a.Info,...t)}static success(...t){o.#t(n.Default,a.Success,...t)}static warning(...t){o.#t(n.Default,a.Warning,...t)}static danger(...t){o.#t(n.Default,a.Danger,...t)}}class c{static ignore(t){}static create(t,s){return new Error(t,{cause:s})}static throw(t,s){throw c.create(t,s)}static capture(t,e){const{signal:r,message:i,payload:n,stack:a}=e,c=[i,s(t)?t.message:void 0].filter(Boolean);o.formatted.danger(r,...c,{error:t,payload:n,stack:a})}static forward(t,s){throw c.capture(t,s),t}static parse(e){const i=\"Some error!\",n=0,a={};switch(!0){case t(e):{const{status:t=n,data:s,config:o}=e.response??{},{message:c=i,errors:u=a}=s??{};return{message:c,status:t,errors:u,isExternal:r(u)}}case s(e):return{message:e.message,status:n,errors:a,isExternal:!0};default:return{message:i,status:n,errors:a,isExternal:!0}}}}class u{isDefaultPrevented=!1;constructor(){this.preventDefault=this.preventDefault.bind(this),this.overrideDefault=this.overrideDefault.bind(this)}preventDefault(){this.isDefaultPrevented=!0}overrideDefault(){this.isDefaultPrevented=!1}}class l{#s={};constructor(){this.emit=this.emit.bind(this),this.on=this.on.bind(this),this.off=this.off.bind(this),this.clear=this.clear.bind(this)}get eventNameList(){return Object.keys(this.#s)}emit(t,s,r){const i=this.#s[t];if(!i)return e(r);const{event:n,listenerList:a}=i;a.forEach(t=>e(t,{...n,...s})),!n.isDefaultPrevented&&e(r)}on(t,s){const e=this.#s[t];return e?e.listenerList.push(s):this.#s[t]={event:new u,listenerList:[s]},()=>this.off(t,s)}off(t,s){const e=this.#s[t];if(!e)return;const{event:r,listenerList:i}=e;this.#s[t]={event:r,listenerList:i.filter(t=>t!==s)},r.overrideDefault()}clear(t){delete this.#s[t]}}export{c as ErrorHandler,l as EventEmitter,o as Log};\n//# sourceMappingURL=index.mjs.map\n","enum PlatformOS {\n Ios = 'ios',\n Android = 'android'\n // Macos = 'macos',\n // Windows = 'windows',\n // Web = 'web',\n}\n\nexport { PlatformOS }\n","import { AppState, AppStateStatus, NativeEventSubscription } from 'react-native'\nimport { runCallback } from '@mediacubeco/javascript-base/utils'\nimport { BaseRecord, Callback } from '@mediacubeco/javascript-base/types'\nimport { Platform } from '../../helpers'\n\ntype AppStateAdditionalHandlerName = 'onFocus' | 'onBlur'\n\ntype AppStateHandlerName =\n | AppStateAdditionalHandlerName\n | 'onActive'\n | 'onInactive'\n | 'onBackground'\n | 'onExtension'\n | 'onUnknown'\n | 'onChange'\n\ntype AppStateHandlerCallback = Callback<[AppStateStatus]>\n\ntype AppStateHandlers = Partial<BaseRecord<AppStateHandlerCallback, AppStateHandlerName>>\n\ninterface HandleChangeAppStateConfig {\n state: AppStateStatus\n handlers: Omit<AppStateHandlers, AppStateAdditionalHandlerName>\n}\n\ntype HandleChangeAppState = (config: HandleChangeAppStateConfig) => void\n\ntype ListenAppState = (handlers: AppStateHandlers) => NativeEventSubscription\n\nenum AppStatus {\n Active = 'active',\n Inactive = 'inactive',\n Background = 'background',\n Extension = 'extension',\n Unknown = 'unknown'\n}\n\nconst handleChangeAppState: HandleChangeAppState = ({ state, handlers }) => {\n const { onActive, onInactive, onBackground, onExtension, onUnknown, onChange } = handlers ?? {}\n\n const handler = {\n [AppStatus.Active]: onActive,\n [AppStatus.Inactive]: onInactive,\n [AppStatus.Background]: onBackground,\n [AppStatus.Extension]: onExtension,\n [AppStatus.Unknown]: onUnknown\n }[state]\n\n runCallback(onChange, state)\n runCallback(handler, state)\n}\n\nconst listenAppState: ListenAppState = ({ onFocus, onBlur, ...handlers }) => {\n const listenerList: NativeEventSubscription[] = []\n\n if (Platform.isAndroid) {\n listenerList.push(\n AppState.addEventListener('focus', (state) => runCallback(onFocus, state)),\n AppState.addEventListener('blur', (state) => runCallback(onBlur, state))\n )\n }\n\n listenerList.push(\n AppState.addEventListener('change', (state) => handleChangeAppState({ state, handlers }))\n )\n\n return {\n remove() {\n listenerList.forEach((listener) => listener.remove())\n }\n }\n}\n\nexport { listenAppState }\nexport type { AppStateHandlers }\n","import { Platform as NativePlatform } from 'react-native'\nimport { PlatformOS } from './Platform.constants'\nimport { PlatformByData, PlatformRequiredOS } from './Platform.types'\n\n// Platform.Version\nclass Platform {\n static get OS() {\n return NativePlatform.OS\n }\n\n static get version() {\n return NativePlatform.Version\n }\n\n static get isIos() {\n return Platform.OS === 'ios'\n }\n\n static get isAndroid() {\n return Platform.OS === 'android'\n }\n\n // static get isMac() {\n // return Platform.OS === 'macos'\n // }\n\n // static get isWindows() {\n // return Platform.OS === 'windows'\n // }\n\n // static get isWeb() {\n // return Platform.OS === 'web'\n // }\n\n static by<Value>(data: PlatformByData<Value>, defaultOS: PlatformRequiredOS = PlatformOS.Ios) {\n return NativePlatform.select({ ...data, default: data[defaultOS] })\n }\n}\n\nexport default Platform\n","import { Keyboard, KeyboardEventListener, NativeEventSubscription } from 'react-native'\nimport {\n mapRecord,\n filterNullableValues,\n isNullable\n} from '@mediacubeco/javascript-base/utils'\nimport { BaseRecord, KeyOf } from '@mediacubeco/javascript-base/types'\n\nenum KeyboardEventName {\n onWillShow = 'keyboardWillShow',\n onDidShow = 'keyboardDidShow',\n onWillHide = 'keyboardWillHide',\n onDidHide = 'keyboardDidHide',\n onWillChangeFrame = 'keyboardWillChangeFrame',\n onDidChangeFrame = 'keyboardDidChangeFrame'\n}\n\ntype KeyboardHandlers = Partial<BaseRecord<KeyboardEventListener, KeyOf<typeof KeyboardEventName>>>\n\ntype ListenKeyboard = (handlers: KeyboardHandlers) => NativeEventSubscription\n\nconst listenKeyboard: ListenKeyboard = (handlers) => {\n const list = mapRecord(handlers, (key, handler) => {\n if (isNullable(handler)) return\n\n return Keyboard.addListener(KeyboardEventName[key], handler)\n })\n\n return {\n remove() {\n return filterNullableValues(Object.values(list)).map((unsubscribe) => unsubscribe.remove())\n }\n }\n}\n\nexport { listenKeyboard }\nexport type { KeyboardHandlers }\n","import { useEffect } from 'react'\nimport { AppStateHandlers, listenAppState } from '../../utils/listeners'\n\nconst useAppState = (handlers: AppStateHandlers) => {\n useEffect(() => {\n const listener = listenAppState(handlers)\n\n return () => listener.remove()\n }, [handlers])\n}\n\nexport { useAppState }\n","import { useEffect } from 'react'\nimport { KeyboardHandlers, listenKeyboard } from '../../utils/listeners'\n\nconst useKeyboard = (handlers: KeyboardHandlers) => {\n useEffect(() => {\n const listener = listenKeyboard(handlers)\n\n return () => {\n listener.remove()\n }\n }, [handlers])\n}\n\nexport { useKeyboard }\n","import { Layout, NullableLayout } from './useLayout.types'\n\nconst DEFAULT_LAYOUT: Layout = {\n top: 0,\n left: 0,\n width: 0,\n height: 0,\n}\n\nconst DEFAULT_NULLABLE_LAYOUT: NullableLayout = {\n top: null,\n left: null,\n width: null,\n height: null,\n}\n\nexport { DEFAULT_LAYOUT, DEFAULT_NULLABLE_LAYOUT }\n","import { useCallback, useState } from 'react'\nimport { LayoutChangeEvent } from 'react-native'\nimport { runCallback } from '@mediacubeco/javascript-base/utils'\nimport { DEFAULT_LAYOUT, DEFAULT_NULLABLE_LAYOUT } from './useLayout.constants'\nimport { UseLayoutConfig, HandleLayout, Layout, NullableLayout } from './useLayout.types'\n\nfunction useLayout(config?: UseLayoutConfig<false>): [Layout, HandleLayout]\nfunction useLayout(config?: UseLayoutConfig<true>): [NullableLayout, HandleLayout]\nfunction useLayout({ onLayout, isNullable }: UseLayoutConfig = { isNullable: false }) {\n const [layout, setLayout] = useState(isNullable ? DEFAULT_NULLABLE_LAYOUT : DEFAULT_LAYOUT)\n\n const handleLayout = useCallback(\n (event: LayoutChangeEvent) => {\n runCallback(onLayout, event)\n\n const { layout } = event.nativeEvent\n const { y: top, x: left, width, height } = layout\n\n setLayout({ top, left, width, height })\n },\n [onLayout]\n )\n\n return [layout, handleLayout] as const\n}\n\nexport { useLayout }\n","const DEFAULT_MEASURES = { x: 0, y: 0, width: 0, height: 0, pageX: 0, pageY: 0 }\nconst DEFAULT_MEASURES_IN_CONTAINER = { left: 0, top: 0, width: 0, height: 0 }\nconst DEFAULT_MEASURES_IN_WINDOW = { x: 0, y: 0, width: 0, height: 0 }\n\nexport { DEFAULT_MEASURES, DEFAULT_MEASURES_IN_CONTAINER, DEFAULT_MEASURES_IN_WINDOW }\n","import { useCallback, useRef } from 'react'\nimport { isNullable } from '@mediacubeco/javascript-base/utils'\nimport {\n DEFAULT_MEASURES,\n DEFAULT_MEASURES_IN_CONTAINER,\n DEFAULT_MEASURES_IN_WINDOW\n} from './useMeasures.constants'\nimport {\n Calculate,\n CalculateMeasures,\n CalculateMeasuresInContainer,\n CalculateMeasuresInWindow,\n Measures,\n MeasuresInContainer,\n MeasuresInWindow,\n OnResolve\n} from './useMeasures.types'\n\nconst useMeasures = () => {\n const measuresRef = useRef(DEFAULT_MEASURES)\n const measuresInContainerRef = useRef(DEFAULT_MEASURES_IN_CONTAINER)\n const measuresInWindowRef = useRef(DEFAULT_MEASURES_IN_WINDOW)\n\n const calculate: Calculate = useCallback(async (current, defaultData, onResolve) => {\n return new Promise((resolve) => {\n if (isNullable(current)) {\n resolve(defaultData)\n } else {\n onResolve(current, resolve)\n }\n })\n }, [])\n\n const calculateMeasures: CalculateMeasures = useCallback((current) => {\n const onResolve: OnResolve<Measures> = (current, resolve) => {\n current.measure((x = 0, y = 0, width = 0, height = 0, pageX = 0, pageY = 0) => {\n measuresRef.current = { x, y, width, height, pageX, pageY }\n\n resolve(measuresRef.current)\n })\n }\n\n return calculate(current, DEFAULT_MEASURES, onResolve)\n }, [])\n\n const calculateMeasuresInContainer: CalculateMeasuresInContainer = useCallback(\n (current, container) => {\n const onResolve: OnResolve<MeasuresInContainer> = (current, resolve) => {\n current.measureLayout(container, (left = 0, top = 0, width = 0, height = 0) => {\n measuresInContainerRef.current = { left, top, width, height }\n\n resolve(measuresInContainerRef.current)\n })\n }\n\n return calculate(current, DEFAULT_MEASURES_IN_CONTAINER, onResolve)\n },\n []\n )\n\n const calculateMeasuresInWindow: CalculateMeasuresInWindow = useCallback((current) => {\n const onResolve: OnResolve<MeasuresInWindow> = (current, resolve) => {\n current.measureInWindow((x = 0, y = 0, width = 0, height = 0) => {\n measuresInWindowRef.current = { x, y, width, height }\n\n resolve(measuresInWindowRef.current)\n })\n }\n\n return calculate(current, DEFAULT_MEASURES_IN_WINDOW, onResolve)\n }, [])\n\n return {\n measuresRef,\n measuresInContainerRef,\n measuresInWindowRef,\n calculateMeasures,\n calculateMeasuresInContainer,\n calculateMeasuresInWindow\n }\n}\n\nexport { useMeasures }\n","import { RefObject } from 'react'\nimport { FlatList, ScrollView, SectionList, View } from 'react-native'\nimport { Nullable } from '@mediacubeco/javascript-base/types'\n\nconst getResponder = <\n ScrolledCurrent extends Nullable<ScrollView | FlatList | SectionList>,\n Current extends Nullable<View>\n>(\n scrolledRef: RefObject<ScrolledCurrent>\n) => {\n const responder = scrolledRef.current?.getScrollResponder() ?? null\n\n const inner = (responder?.getInnerViewRef?.() ?? null) as Current\n const outer = (responder?.getNativeScrollRef?.() ?? null) as Current\n\n return { responder, inner, outer }\n}\n\nexport { getResponder }\n"],"names":["n","e","t","M","Function","T","a","PlatformOS","AppStatus","StartGroup","EndGroup","Default","Info","Success","Warning","Danger","Platform","OS","NativePlatform","version","Version","isIos","isAndroid","by","data","defaultOS","Ios","select","default","listenAppState","onFocus","onBlur","handlers","listenerList","push","AppState","addEventListener","state","runCallback","handleChangeAppState","onActive","onInactive","onBackground","onExtension","onUnknown","onChange","handler","Active","Inactive","Background","Extension","Unknown","remove","forEach","listener","KeyboardEventName","listenKeyboard","list","Object","entries","fromEntries","map","o","r","mapRecord","key","isNullable","Keyboard","addListener","filter","filterNullableValues","values","unsubscribe","useAppState","useEffect","useKeyboard","DEFAULT_LAYOUT","top","left","width","height","DEFAULT_NULLABLE_LAYOUT","useLayout","onLayout","layout","setLayout","useState","handleLayout","useCallback","event","nativeEvent","y","x","DEFAULT_MEASURES","pageX","pageY","DEFAULT_MEASURES_IN_CONTAINER","DEFAULT_MEASURES_IN_WINDOW","useMeasures","measuresRef","useRef","measuresInContainerRef","measuresInWindowRef","calculate","async","current","defaultData","onResolve","Promise","resolve","calculateMeasures","measure","calculateMeasuresInContainer","container","measureLayout","calculateMeasuresInWindow","measureInWindow","getResponder","scrolledRef","responder","getScrollResponder","inner","getInnerViewRef","outer","getNativeScrollRef"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","sources":["../node_modules/@mediacubeco/javascript-base/dist/helpers/index.mjs","../src/helpers/Dimensions/Dimensions.ts","../src/helpers/Dimensions/Dimensions.constants.ts","../src/helpers/Platform/Platform.constants.ts","../src/helpers/Platform/Platform.ts","../node_modules/@mediacubeco/javascript-base/dist/utils/index.mjs","../src/utils/listeners/appState.ts","../src/utils/listeners/keyboard.ts","../src/hooks/useLayout/useLayout.constants.ts","../src/hooks/useMeasures/useMeasures.constants.ts","../src/helpers/Clipboard/Clipboard.ts","../src/hooks/useMeasures/useMeasures.utils.ts","../src/hooks/useAppState/useAppState.ts","../src/hooks/useKeyboard/useKeyboard.ts","../src/hooks/useLayout/useLayout.ts","../src/hooks/useMeasures/useMeasures.ts"],"sourcesContent":["import{isAxiosError as t}from\"axios\";const s=t=>t instanceof Error,e=(t,...s)=>{if(t instanceof Function)return t(...s)},r=t=>{for(let s in t)return!1;return!0},i=(t=\"?\",...s)=>{const e=(t&&(r=t,\"string\"==typeof r)?t:\"?\").toUpperCase();var r;const i=s.reduce((t,s,e,{length:r})=>{const i=e===r-1?[]:[\"|\"];return t.push(s,...i),t},s.length?[\"-\"]:[]);return[`[${e}]`,...i]};var n,a;!function(t){t.StartGroup=\"group\",t.EndGroup=\"groupEnd\",t.Default=\"log\"}(n||(n={})),function(t){t.Info=\"\u001b[36m%s\u001b[0m\",t.Success=\"\u001b[32m%s\u001b[0m\",t.Warning=\"\u001b[33m%s\u001b[0m\",t.Danger=\"\u001b[31m%s\u001b[0m\"}(a||(a={}));class o{static formatted={info:(...t)=>o.info(...i(...t)),success:(...t)=>o.success(...i(...t)),warning:(...t)=>o.warning(...i(...t)),danger:(...t)=>o.danger(...i(...t))};static#t(t,...s){console[t](...s)}static startGroup(t,s,...e){o.#t(n.StartGroup,...((t,...s)=>[\"%c%s\",t,...s])(`font-size: 16px;${s}`,...i(t,...e)))}static endGroup(){o.#t(n.EndGroup)}static info(...t){o.#t(n.Default,a.Info,...t)}static success(...t){o.#t(n.Default,a.Success,...t)}static warning(...t){o.#t(n.Default,a.Warning,...t)}static danger(...t){o.#t(n.Default,a.Danger,...t)}}class c{static ignore(t){}static create(t,s){return new Error(t,{cause:s})}static throw(t,s){throw c.create(t,s)}static capture(t,e){const{signal:r,message:i,payload:n,stack:a}=e,c=[i,s(t)?t.message:void 0].filter(Boolean);o.formatted.danger(r,...c,{error:t,payload:n,stack:a})}static forward(t,s){throw c.capture(t,s),t}static parse(e){const i=\"Some error!\",n=0,a={};switch(!0){case t(e):{const{status:t=n,data:s,config:o}=e.response??{},{message:c=i,errors:u=a}=s??{};return{message:c,status:t,errors:u,isExternal:r(u)}}case s(e):return{message:e.message,status:n,errors:a,isExternal:!0};default:return{message:i,status:n,errors:a,isExternal:!0}}}}class u{isDefaultPrevented=!1;constructor(){this.preventDefault=this.preventDefault.bind(this),this.overrideDefault=this.overrideDefault.bind(this)}preventDefault(){this.isDefaultPrevented=!0}overrideDefault(){this.isDefaultPrevented=!1}}class l{#s={};constructor(){this.emit=this.emit.bind(this),this.on=this.on.bind(this),this.off=this.off.bind(this),this.clear=this.clear.bind(this)}get eventNameList(){return Object.keys(this.#s)}emit(t,s,r){const i=this.#s[t];if(!i)return e(r);const{event:n,listenerList:a}=i;a.forEach(t=>e(t,{...n,...s})),!n.isDefaultPrevented&&e(r)}on(t,s){const e=this.#s[t];return e?e.listenerList.push(s):this.#s[t]={event:new u,listenerList:[s]},()=>this.off(t,s)}off(t,s){const e=this.#s[t];if(!e)return;const{event:r,listenerList:i}=e;this.#s[t]={event:r,listenerList:i.filter(t=>t!==s)},r.overrideDefault()}clear(t){delete this.#s[t]}}export{c as ErrorHandler,l as EventEmitter,o as Log};\n//# sourceMappingURL=index.mjs.map\n","import { Dimensions as NativeDimensions, StatusBar } from 'react-native'\nimport { DIMENSIONS_DESIGN_HEIGHT, DIMENSIONS_DESIGN_WIDTH } from './Dimensions.constants'\n\n/**\n * window: reports width/height without the soft menu bar\n *\n * screen: reports entire screen's width/height\n */\nclass Dimensions {\n static get windowWidth() {\n return NativeDimensions.get('window').width\n }\n\n static get windowHeight() {\n return NativeDimensions.get('window').height\n }\n\n static get statusBarWidth() {\n return Dimensions.windowWidth\n }\n\n static get statusBarHeight() {\n return StatusBar.currentHeight ?? 0\n }\n\n static get ratio() {\n const widthRatio = Dimensions.windowWidth / DIMENSIONS_DESIGN_WIDTH\n const heightRatio = Dimensions.windowHeight / DIMENSIONS_DESIGN_HEIGHT\n\n return Math.min(widthRatio, heightRatio)\n }\n\n static byWindowWidth(value: number) {\n return Dimensions.windowWidth * value\n }\n\n static byWindowHeight(value: number) {\n return Dimensions.windowHeight * value\n }\n\n static byRatio(value: number) {\n return Dimensions.ratio * value\n }\n}\n\nexport default Dimensions\n","const DIMENSIONS_DESIGN_WIDTH = 375\n\nconst DIMENSIONS_DESIGN_HEIGHT = 812\n\nexport { DIMENSIONS_DESIGN_WIDTH, DIMENSIONS_DESIGN_HEIGHT }\n","enum PlatformOS {\n Ios = 'ios',\n Android = 'android'\n // Macos = 'macos',\n // Windows = 'windows',\n // Web = 'web',\n}\n\nexport { PlatformOS }\n","import { Platform as NativePlatform } from 'react-native'\nimport { PlatformOS } from './Platform.constants'\nimport { PlatformByData, PlatformRequiredOS } from './Platform.types'\n\n// Platform.Version\nclass Platform {\n static get OS() {\n return NativePlatform.OS\n }\n\n static get version() {\n return NativePlatform.Version\n }\n\n static get isIos() {\n return Platform.OS === 'ios'\n }\n\n static get isAndroid() {\n return Platform.OS === 'android'\n }\n\n // static get isMac() {\n // return Platform.OS === 'macos'\n // }\n\n // static get isWindows() {\n // return Platform.OS === 'windows'\n // }\n\n // static get isWeb() {\n // return Platform.OS === 'web'\n // }\n\n static by<Value>(data: PlatformByData<Value>, defaultOS: PlatformRequiredOS = PlatformOS.Ios) {\n return NativePlatform.select({ ...data, default: data[defaultOS] })\n }\n}\n\nexport default Platform\n","const e=e=>void 0===e,t=e=>null===e,n=n=>e(n)||t(n),o=e=>\"string\"==typeof e,r=e=>\"number\"==typeof e,i=e=>\"bigint\"==typeof e,s=e=>Number.isNaN(e),f=e=>\"boolean\"==typeof e,c=e=>\"symbol\"==typeof e,a=e=>\"object\"==typeof e,u=e=>{const t=[l,p,y,b,m,g,j,x,E,N,T].some(t=>t(e));return!!e&&\"object\"==typeof e&&!t},l=e=>Array.isArray(e),p=e=>e instanceof ArrayBuffer,y=e=>e instanceof Map,b=e=>e instanceof Set,m=e=>e instanceof Map,g=e=>e instanceof Set,j=e=>e instanceof Date,x=e=>e instanceof Error,A=e=>e instanceof Proxy,E=e=>e instanceof RegExp,N=e=>e instanceof Promise,T=e=>e instanceof Function;function h(e,t,n){return 2===arguments.length?t[e]:t[e]??n}const M=(e,...t)=>{if(T(e))return e(...t)},O=(e,t)=>{const n=Object.entries(e);return Object.fromEntries(n.map(([e,n],o,r)=>[e,t(e,n,o,r)]))},P=(e,t)=>{let n;return(...o)=>{n&&clearTimeout(n),n=setTimeout(()=>M(e,...o),t)}},S=(e,t)=>{let n=!0;return(...o)=>{n&&(M(e,...o),n=!1),setTimeout(()=>n=!0,t)}},d=e=>{for(let t in e)return!1;return!0},v=e=>0===e.length,B=(e,t)=>!(!a(t)||!(e in t)),D=(e,t=\"isVisible\")=>e.filter(e=>!B(t,e)||e[t]),F=e=>e.filter(e=>!n(e));export{P as debounce,D as filterByProperty,F as filterNullableValues,h as getValueByProperty,B as hasProperty,a as isAnyObject,l as isArray,p as isArrayBuffer,v as isArrayEmpty,i as isBigint,f as isBoolean,j as isDate,x as isError,T as isFunction,y as isMap,s as isNaN,t as isNull,n as isNullable,r as isNumber,u as isObject,d as isObjectEmpty,N as isPromise,A as isProxy,E as isRegExp,b as isSet,o as isString,c as isSymbol,e as isUndefined,m as isWeakMap,g as isWeakSet,O as mapRecord,M as runCallback,S as throttle};\n//# sourceMappingURL=index.mjs.map\n","import { AppState, AppStateStatus, NativeEventSubscription } from 'react-native'\nimport { runCallback } from '@mediacubeco/javascript-base/utils'\nimport { BaseRecord, Callback } from '@mediacubeco/javascript-base/types'\nimport { Platform } from '../../helpers'\n\ntype AppStateAdditionalHandlerName = 'onFocus' | 'onBlur'\n\ntype AppStateHandlerName =\n | AppStateAdditionalHandlerName\n | 'onActive'\n | 'onInactive'\n | 'onBackground'\n | 'onExtension'\n | 'onUnknown'\n | 'onChange'\n\ntype AppStateHandlerCallback = Callback<[AppStateStatus]>\n\ntype AppStateHandlers = Partial<BaseRecord<AppStateHandlerCallback, AppStateHandlerName>>\n\ninterface HandleChangeAppStateConfig {\n state: AppStateStatus\n handlers: Omit<AppStateHandlers, AppStateAdditionalHandlerName>\n}\n\ntype HandleChangeAppState = (config: HandleChangeAppStateConfig) => void\n\ntype ListenAppState = (handlers: AppStateHandlers) => NativeEventSubscription\n\nenum AppStatus {\n Active = 'active',\n Inactive = 'inactive',\n Background = 'background',\n Extension = 'extension',\n Unknown = 'unknown'\n}\n\nconst handleChangeAppState: HandleChangeAppState = ({ state, handlers }) => {\n const { onActive, onInactive, onBackground, onExtension, onUnknown, onChange } = handlers ?? {}\n\n const handler = {\n [AppStatus.Active]: onActive,\n [AppStatus.Inactive]: onInactive,\n [AppStatus.Background]: onBackground,\n [AppStatus.Extension]: onExtension,\n [AppStatus.Unknown]: onUnknown\n }[state]\n\n runCallback(onChange, state)\n runCallback(handler, state)\n}\n\nconst listenAppState: ListenAppState = ({ onFocus, onBlur, ...handlers }) => {\n const listenerList: NativeEventSubscription[] = []\n\n if (Platform.isAndroid) {\n listenerList.push(\n AppState.addEventListener('focus', (state) => runCallback(onFocus, state)),\n AppState.addEventListener('blur', (state) => runCallback(onBlur, state))\n )\n }\n\n listenerList.push(\n AppState.addEventListener('change', (state) => handleChangeAppState({ state, handlers }))\n )\n\n return {\n remove() {\n listenerList.forEach((listener) => listener.remove())\n }\n }\n}\n\nexport { listenAppState }\nexport type { AppStateHandlers }\n","import { Keyboard, KeyboardEventListener, NativeEventSubscription } from 'react-native'\nimport {\n mapRecord,\n filterNullableValues,\n isNullable\n} from '@mediacubeco/javascript-base/utils'\nimport { BaseRecord, KeyOf } from '@mediacubeco/javascript-base/types'\n\nenum KeyboardEventName {\n onWillShow = 'keyboardWillShow',\n onDidShow = 'keyboardDidShow',\n onWillHide = 'keyboardWillHide',\n onDidHide = 'keyboardDidHide',\n onWillChangeFrame = 'keyboardWillChangeFrame',\n onDidChangeFrame = 'keyboardDidChangeFrame'\n}\n\ntype KeyboardHandlers = Partial<BaseRecord<KeyboardEventListener, KeyOf<typeof KeyboardEventName>>>\n\ntype ListenKeyboard = (handlers: KeyboardHandlers) => NativeEventSubscription\n\nconst listenKeyboard: ListenKeyboard = (handlers) => {\n const list = mapRecord(handlers, (key, handler) => {\n if (isNullable(handler)) return\n\n return Keyboard.addListener(KeyboardEventName[key], handler)\n })\n\n return {\n remove() {\n return filterNullableValues(Object.values(list)).map((unsubscribe) => unsubscribe.remove())\n }\n }\n}\n\nexport { listenKeyboard }\nexport type { KeyboardHandlers }\n","import { Layout, NullableLayout } from './useLayout.types'\n\nconst DEFAULT_LAYOUT: Layout = {\n top: 0,\n left: 0,\n width: 0,\n height: 0,\n}\n\nconst DEFAULT_NULLABLE_LAYOUT: NullableLayout = {\n top: null,\n left: null,\n width: null,\n height: null,\n}\n\nexport { DEFAULT_LAYOUT, DEFAULT_NULLABLE_LAYOUT }\n","const DEFAULT_MEASURES = { x: 0, y: 0, width: 0, height: 0, pageX: 0, pageY: 0 }\nconst DEFAULT_MEASURES_IN_CONTAINER = { left: 0, top: 0, width: 0, height: 0 }\nconst DEFAULT_MEASURES_IN_WINDOW = { x: 0, y: 0, width: 0, height: 0 }\n\nexport { DEFAULT_MEASURES, DEFAULT_MEASURES_IN_CONTAINER, DEFAULT_MEASURES_IN_WINDOW }\n","import NativeClipboard from '@react-native-clipboard/clipboard'\nimport { Log } from '@mediacubeco/javascript-base/helpers'\nimport { ClipboardValue } from './Clipboard.types'\n\nclass Clipboard {\n static copy(value: ClipboardValue) {\n Log.formatted.info('copy', value)\n\n return NativeClipboard.setString(value.toString())\n }\n\n static async paste() {\n const value = await NativeClipboard.getString()\n\n Log.formatted.info('paste', value)\n\n return value\n }\n}\n\nexport default Clipboard\n","import { RefObject } from 'react'\nimport { FlatList, ScrollView, SectionList, View } from 'react-native'\nimport { Nullable } from '@mediacubeco/javascript-base/types'\n\nconst getResponder = <\n ScrolledCurrent extends Nullable<ScrollView | FlatList | SectionList>,\n Current extends Nullable<View>\n>(\n scrolledRef: RefObject<ScrolledCurrent>\n) => {\n const responder = scrolledRef.current?.getScrollResponder() ?? null\n\n const inner = (responder?.getInnerViewRef?.() ?? null) as Current\n const outer = (responder?.getNativeScrollRef?.() ?? null) as Current\n\n return { responder, inner, outer }\n}\n\nexport { getResponder }\n","import { useEffect } from 'react'\nimport { AppStateHandlers, listenAppState } from '../../utils/listeners'\n\nconst useAppState = (handlers: AppStateHandlers) => {\n useEffect(() => {\n const listener = listenAppState(handlers)\n\n return () => listener.remove()\n }, [handlers])\n}\n\nexport { useAppState }\n","import { useEffect } from 'react'\nimport { KeyboardHandlers, listenKeyboard } from '../../utils/listeners'\n\nconst useKeyboard = (handlers: KeyboardHandlers) => {\n useEffect(() => {\n const listener = listenKeyboard(handlers)\n\n return () => {\n listener.remove()\n }\n }, [handlers])\n}\n\nexport { useKeyboard }\n","import { useCallback, useState } from 'react'\nimport { LayoutChangeEvent } from 'react-native'\nimport { runCallback } from '@mediacubeco/javascript-base/utils'\nimport { DEFAULT_LAYOUT, DEFAULT_NULLABLE_LAYOUT } from './useLayout.constants'\nimport { UseLayoutConfig, HandleLayout, Layout, NullableLayout } from './useLayout.types'\n\nfunction useLayout(config?: UseLayoutConfig<false>): [Layout, HandleLayout]\nfunction useLayout(config?: UseLayoutConfig<true>): [NullableLayout, HandleLayout]\nfunction useLayout({ onLayout, isNullable }: UseLayoutConfig = { isNullable: false }) {\n const [layout, setLayout] = useState(isNullable ? DEFAULT_NULLABLE_LAYOUT : DEFAULT_LAYOUT)\n\n const handleLayout = useCallback(\n (event: LayoutChangeEvent) => {\n runCallback(onLayout, event)\n\n const { layout } = event.nativeEvent\n const { y: top, x: left, width, height } = layout\n\n setLayout({ top, left, width, height })\n },\n [onLayout]\n )\n\n return [layout, handleLayout] as const\n}\n\nexport { useLayout }\n","import { useCallback, useRef } from 'react'\nimport { isNullable } from '@mediacubeco/javascript-base/utils'\nimport {\n DEFAULT_MEASURES,\n DEFAULT_MEASURES_IN_CONTAINER,\n DEFAULT_MEASURES_IN_WINDOW\n} from './useMeasures.constants'\nimport {\n Calculate,\n CalculateMeasures,\n CalculateMeasuresInContainer,\n CalculateMeasuresInWindow,\n Measures,\n MeasuresInContainer,\n MeasuresInWindow,\n OnResolve\n} from './useMeasures.types'\n\nconst useMeasures = () => {\n const measuresRef = useRef(DEFAULT_MEASURES)\n const measuresInContainerRef = useRef(DEFAULT_MEASURES_IN_CONTAINER)\n const measuresInWindowRef = useRef(DEFAULT_MEASURES_IN_WINDOW)\n\n const calculate: Calculate = useCallback(async (current, defaultData, onResolve) => {\n return new Promise((resolve) => {\n if (isNullable(current)) {\n resolve(defaultData)\n } else {\n onResolve(current, resolve)\n }\n })\n }, [])\n\n const calculateMeasures: CalculateMeasures = useCallback((current) => {\n const onResolve: OnResolve<Measures> = (current, resolve) => {\n current.measure((x = 0, y = 0, width = 0, height = 0, pageX = 0, pageY = 0) => {\n measuresRef.current = { x, y, width, height, pageX, pageY }\n\n resolve(measuresRef.current)\n })\n }\n\n return calculate(current, DEFAULT_MEASURES, onResolve)\n }, [])\n\n const calculateMeasuresInContainer: CalculateMeasuresInContainer = useCallback(\n (current, container) => {\n const onResolve: OnResolve<MeasuresInContainer> = (current, resolve) => {\n current.measureLayout(container, (left = 0, top = 0, width = 0, height = 0) => {\n measuresInContainerRef.current = { left, top, width, height }\n\n resolve(measuresInContainerRef.current)\n })\n }\n\n return calculate(current, DEFAULT_MEASURES_IN_CONTAINER, onResolve)\n },\n []\n )\n\n const calculateMeasuresInWindow: CalculateMeasuresInWindow = useCallback((current) => {\n const onResolve: OnResolve<MeasuresInWindow> = (current, resolve) => {\n current.measureInWindow((x = 0, y = 0, width = 0, height = 0) => {\n measuresInWindowRef.current = { x, y, width, height }\n\n resolve(measuresInWindowRef.current)\n })\n }\n\n return calculate(current, DEFAULT_MEASURES_IN_WINDOW, onResolve)\n }, [])\n\n return {\n measuresRef,\n measuresInContainerRef,\n measuresInWindowRef,\n calculateMeasures,\n calculateMeasuresInContainer,\n calculateMeasuresInWindow\n }\n}\n\nexport { useMeasures }\n"],"names":["s","t","Error","e","Function","r","i","toUpperCase","reduce","length","push","n","a","StartGroup","EndGroup","Default","Info","Success","Warning","Danger","o$1","o","static","info","success","warning","danger","console","startGroup","endGroup","u$1","isDefaultPrevented","constructor","this","preventDefault","bind","overrideDefault","Dimensions","windowWidth","NativeDimensions","get","width","windowHeight","height","statusBarWidth","statusBarHeight","StatusBar","currentHeight","ratio","widthRatio","heightRatio","Math","min","byWindowWidth","value","byWindowHeight","byRatio","PlatformOS","Platform","OS","NativePlatform","version","Version","isIos","isAndroid","by","data","defaultOS","Ios","select","default","l","Array","isArray","p","ArrayBuffer","y","Map","b","Set","m","g","j","Date","x","E","RegExp","N","Promise","T","M","O","Object","entries","fromEntries","map","B","F","filter","AppStatus","listenAppState","onFocus","onBlur","handlers","listenerList","AppState","addEventListener","state","runCallback","handleChangeAppState","onActive","onInactive","onBackground","onExtension","onUnknown","onChange","handler","Active","Inactive","Background","Extension","Unknown","remove","forEach","listener","KeyboardEventName","listenKeyboard","list","mapRecord","key","isNullable","Keyboard","addListener","filterNullableValues","values","unsubscribe","DEFAULT_LAYOUT","top","left","DEFAULT_NULLABLE_LAYOUT","DEFAULT_MEASURES","pageX","pageY","DEFAULT_MEASURES_IN_CONTAINER","DEFAULT_MEASURES_IN_WINDOW","copy","Log","formatted","NativeClipboard","setString","toString","paste","getString","c","ignore","create","cause","capture","signal","message","payload","stack","Boolean","error","forward","parse","status","config","response","errors","u","isExternal","emit","on","off","clear","eventNameList","keys","event","clearTimeout","setTimeout","scrolledRef","responder","current","getScrollResponder","inner","getInnerViewRef","outer","getNativeScrollRef","arguments","Number","isNaN","some","Proxy","useEffect","onLayout","layout","setLayout","useState","handleLayout","useCallback","nativeEvent","useMeasures","measuresRef","useRef","measuresInContainerRef","measuresInWindowRef","calculate","async","defaultData","onResolve","resolve","calculateMeasures","measure","calculateMeasuresInContainer","container","measureLayout","calculateMeasuresInWindow","measureInWindow"],"mappings":"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","x_google_ignoreList":[0,5]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sources":["../src/helpers/Clipboard/Clipboard.types.ts","../src/helpers/Clipboard/Clipboard.ts","../src/helpers/Dimensions/Dimensions.ts","../src/helpers/Platform/Platform.constants.ts","../src/helpers/Platform/Platform.types.ts","../src/helpers/Platform/Platform.ts","../src/utils/listeners/appState.ts","../src/utils/listeners/keyboard.ts","../src/hooks/useAppState/useAppState.ts","../src/hooks/useKeyboard/useKeyboard.ts","../src/hooks/useLayout/useLayout.types.ts","../src/hooks/useLayout/useLayout.ts","../src/hooks/useLayout/useLayout.constants.ts","../src/hooks/useMeasures/useMeasures.constants.ts","../src/hooks/useMeasures/useMeasures.types.ts","../src/hooks/useMeasures/useMeasures.ts","../src/hooks/useMeasures/useMeasures.utils.ts"],"sourcesContent":["type ClipboardValue = string\n\nexport type { ClipboardValue }\n","import NativeClipboard from '@react-native-clipboard/clipboard'\nimport { Log } from '@mediacubeco/javascript-base/helpers'\nimport { ClipboardValue } from './Clipboard.types'\n\nclass Clipboard {\n static copy(value: ClipboardValue) {\n Log.formatted.info('copy', value)\n\n return NativeClipboard.setString(value.toString())\n }\n\n static async paste() {\n const value = await NativeClipboard.getString()\n\n Log.formatted.info('paste', value)\n\n return value\n }\n}\n\nexport default Clipboard\n","import { Dimensions as NativeDimensions, StatusBar } from 'react-native'\nimport { DIMENSIONS_DESIGN_HEIGHT, DIMENSIONS_DESIGN_WIDTH } from './Dimensions.constants'\n\n/**\n * window: reports width/height without the soft menu bar\n *\n * screen: reports entire screen's width/height\n */\nclass Dimensions {\n static get windowWidth() {\n return NativeDimensions.get('window').width\n }\n\n static get windowHeight() {\n return NativeDimensions.get('window').height\n }\n\n static get statusBarWidth() {\n return Dimensions.windowWidth\n }\n\n static get statusBarHeight() {\n return StatusBar.currentHeight ?? 0\n }\n\n static get ratio() {\n const widthRatio = Dimensions.windowWidth / DIMENSIONS_DESIGN_WIDTH\n const heightRatio = Dimensions.windowHeight / DIMENSIONS_DESIGN_HEIGHT\n\n return Math.min(widthRatio, heightRatio)\n }\n\n static byWindowWidth(value: number) {\n return Dimensions.windowWidth * value\n }\n\n static byWindowHeight(value: number) {\n return Dimensions.windowHeight * value\n }\n\n static byRatio(value: number) {\n return Dimensions.ratio * value\n }\n}\n\nexport default Dimensions\n","enum PlatformOS {\n Ios = 'ios',\n Android = 'android'\n // Macos = 'macos',\n // Windows = 'windows',\n // Web = 'web',\n}\n\nexport { PlatformOS }\n","import { BaseRecord, Include } from '@mediacubeco/javascript-base/types'\nimport { PlatformOS } from './Platform.constants'\n\ntype PlatformRequiredOS = PlatformOS.Ios | PlatformOS.Android\n\ntype PlatformByData<Value> = Include<BaseRecord<Value, PlatformOS>, PlatformRequiredOS>\n\nexport type { PlatformRequiredOS, PlatformByData }\n","import { Platform as NativePlatform } from 'react-native'\nimport { PlatformOS } from './Platform.constants'\nimport { PlatformByData, PlatformRequiredOS } from './Platform.types'\n\n// Platform.Version\nclass Platform {\n static get OS() {\n return NativePlatform.OS\n }\n\n static get version() {\n return NativePlatform.Version\n }\n\n static get isIos() {\n return Platform.OS === 'ios'\n }\n\n static get isAndroid() {\n return Platform.OS === 'android'\n }\n\n // static get isMac() {\n // return Platform.OS === 'macos'\n // }\n\n // static get isWindows() {\n // return Platform.OS === 'windows'\n // }\n\n // static get isWeb() {\n // return Platform.OS === 'web'\n // }\n\n static by<Value>(data: PlatformByData<Value>, defaultOS: PlatformRequiredOS = PlatformOS.Ios) {\n return NativePlatform.select({ ...data, default: data[defaultOS] })\n }\n}\n\nexport default Platform\n","import { AppState, AppStateStatus, NativeEventSubscription } from 'react-native'\nimport { runCallback } from '@mediacubeco/javascript-base/utils'\nimport { BaseRecord, Callback } from '@mediacubeco/javascript-base/types'\nimport { Platform } from '../../helpers'\n\ntype AppStateAdditionalHandlerName = 'onFocus' | 'onBlur'\n\ntype AppStateHandlerName =\n | AppStateAdditionalHandlerName\n | 'onActive'\n | 'onInactive'\n | 'onBackground'\n | 'onExtension'\n | 'onUnknown'\n | 'onChange'\n\ntype AppStateHandlerCallback = Callback<[AppStateStatus]>\n\ntype AppStateHandlers = Partial<BaseRecord<AppStateHandlerCallback, AppStateHandlerName>>\n\ninterface HandleChangeAppStateConfig {\n state: AppStateStatus\n handlers: Omit<AppStateHandlers, AppStateAdditionalHandlerName>\n}\n\ntype HandleChangeAppState = (config: HandleChangeAppStateConfig) => void\n\ntype ListenAppState = (handlers: AppStateHandlers) => NativeEventSubscription\n\nenum AppStatus {\n Active = 'active',\n Inactive = 'inactive',\n Background = 'background',\n Extension = 'extension',\n Unknown = 'unknown'\n}\n\nconst handleChangeAppState: HandleChangeAppState = ({ state, handlers }) => {\n const { onActive, onInactive, onBackground, onExtension, onUnknown, onChange } = handlers ?? {}\n\n const handler = {\n [AppStatus.Active]: onActive,\n [AppStatus.Inactive]: onInactive,\n [AppStatus.Background]: onBackground,\n [AppStatus.Extension]: onExtension,\n [AppStatus.Unknown]: onUnknown\n }[state]\n\n runCallback(onChange, state)\n runCallback(handler, state)\n}\n\nconst listenAppState: ListenAppState = ({ onFocus, onBlur, ...handlers }) => {\n const listenerList: NativeEventSubscription[] = []\n\n if (Platform.isAndroid) {\n listenerList.push(\n AppState.addEventListener('focus', (state) => runCallback(onFocus, state)),\n AppState.addEventListener('blur', (state) => runCallback(onBlur, state))\n )\n }\n\n listenerList.push(\n AppState.addEventListener('change', (state) => handleChangeAppState({ state, handlers }))\n )\n\n return {\n remove() {\n listenerList.forEach((listener) => listener.remove())\n }\n }\n}\n\nexport { listenAppState }\nexport type { AppStateHandlers }\n","import { Keyboard, KeyboardEventListener, NativeEventSubscription } from 'react-native'\nimport {\n mapRecord,\n filterNullableValues,\n isNullable\n} from '@mediacubeco/javascript-base/utils'\nimport { BaseRecord, KeyOf } from '@mediacubeco/javascript-base/types'\n\nenum KeyboardEventName {\n onWillShow = 'keyboardWillShow',\n onDidShow = 'keyboardDidShow',\n onWillHide = 'keyboardWillHide',\n onDidHide = 'keyboardDidHide',\n onWillChangeFrame = 'keyboardWillChangeFrame',\n onDidChangeFrame = 'keyboardDidChangeFrame'\n}\n\ntype KeyboardHandlers = Partial<BaseRecord<KeyboardEventListener, KeyOf<typeof KeyboardEventName>>>\n\ntype ListenKeyboard = (handlers: KeyboardHandlers) => NativeEventSubscription\n\nconst listenKeyboard: ListenKeyboard = (handlers) => {\n const list = mapRecord(handlers, (key, handler) => {\n if (isNullable(handler)) return\n\n return Keyboard.addListener(KeyboardEventName[key], handler)\n })\n\n return {\n remove() {\n return filterNullableValues(Object.values(list)).map((unsubscribe) => unsubscribe.remove())\n }\n }\n}\n\nexport { listenKeyboard }\nexport type { KeyboardHandlers }\n","import { useEffect } from 'react'\nimport { AppStateHandlers, listenAppState } from '../../utils/listeners'\n\nconst useAppState = (handlers: AppStateHandlers) => {\n useEffect(() => {\n const listener = listenAppState(handlers)\n\n return () => listener.remove()\n }, [handlers])\n}\n\nexport { useAppState }\n","import { useEffect } from 'react'\nimport { KeyboardHandlers, listenKeyboard } from '../../utils/listeners'\n\nconst useKeyboard = (handlers: KeyboardHandlers) => {\n useEffect(() => {\n const listener = listenKeyboard(handlers)\n\n return () => {\n listener.remove()\n }\n }, [handlers])\n}\n\nexport { useKeyboard }\n","import { LayoutChangeEvent } from 'react-native'\nimport { Nullable } from '@mediacubeco/javascript-base/types'\n\ntype HandleLayout = (event: LayoutChangeEvent) => void\n\ntype UseLayoutConfig<IsNullable extends boolean = boolean> = {\n isNullable?: IsNullable\n onLayout?: HandleLayout\n}\n\ntype Layout = Record<'top' | 'left' | 'width' | 'height', number>\n\ntype NullableLayout = Record<'top' | 'left' | 'width' | 'height', Nullable<number>>\n\nexport type { UseLayoutConfig, HandleLayout, Layout, NullableLayout }\n","import { useCallback, useState } from 'react'\nimport { LayoutChangeEvent } from 'react-native'\nimport { runCallback } from '@mediacubeco/javascript-base/utils'\nimport { DEFAULT_LAYOUT, DEFAULT_NULLABLE_LAYOUT } from './useLayout.constants'\nimport { UseLayoutConfig, HandleLayout, Layout, NullableLayout } from './useLayout.types'\n\nfunction useLayout(config?: UseLayoutConfig<false>): [Layout, HandleLayout]\nfunction useLayout(config?: UseLayoutConfig<true>): [NullableLayout, HandleLayout]\nfunction useLayout({ onLayout, isNullable }: UseLayoutConfig = { isNullable: false }) {\n const [layout, setLayout] = useState(isNullable ? DEFAULT_NULLABLE_LAYOUT : DEFAULT_LAYOUT)\n\n const handleLayout = useCallback(\n (event: LayoutChangeEvent) => {\n runCallback(onLayout, event)\n\n const { layout } = event.nativeEvent\n const { y: top, x: left, width, height } = layout\n\n setLayout({ top, left, width, height })\n },\n [onLayout]\n )\n\n return [layout, handleLayout] as const\n}\n\nexport { useLayout }\n","import { Layout, NullableLayout } from './useLayout.types'\n\nconst DEFAULT_LAYOUT: Layout = {\n top: 0,\n left: 0,\n width: 0,\n height: 0,\n}\n\nconst DEFAULT_NULLABLE_LAYOUT: NullableLayout = {\n top: null,\n left: null,\n width: null,\n height: null,\n}\n\nexport { DEFAULT_LAYOUT, DEFAULT_NULLABLE_LAYOUT }\n","const DEFAULT_MEASURES = { x: 0, y: 0, width: 0, height: 0, pageX: 0, pageY: 0 }\nconst DEFAULT_MEASURES_IN_CONTAINER = { left: 0, top: 0, width: 0, height: 0 }\nconst DEFAULT_MEASURES_IN_WINDOW = { x: 0, y: 0, width: 0, height: 0 }\n\nexport { DEFAULT_MEASURES, DEFAULT_MEASURES_IN_CONTAINER, DEFAULT_MEASURES_IN_WINDOW }\n","import { NativeMethods, View } from 'react-native'\nimport { NotNullable, Nullable } from '@mediacubeco/javascript-base/types'\nimport type {\n DEFAULT_MEASURES,\n DEFAULT_MEASURES_IN_CONTAINER,\n DEFAULT_MEASURES_IN_WINDOW\n} from './useMeasures.constants'\n\ntype Measures = typeof DEFAULT_MEASURES\n\ntype MeasuresInContainer = typeof DEFAULT_MEASURES_IN_CONTAINER\n\ntype MeasuresInWindow = typeof DEFAULT_MEASURES_IN_WINDOW\n\ntype Current = Nullable<NativeMethods>\n\ninterface Container extends View {}\n\ntype OnResolve<Measures> = (\n current: NotNullable<Current>,\n resolve: (value: Measures) => void\n) => void\n\ntype Calculate = <Measures>(\n current: Current,\n defaultData: Measures,\n onResolve: OnResolve<Measures>\n) => Promise<Measures>\n\ntype CalculateMeasures = (current: Current) => Promise<Measures>\n\ntype CalculateMeasuresInContainer = (\n current: Current,\n container: Container\n) => Promise<MeasuresInContainer>\n\ntype CalculateMeasuresInWindow = (current: Current) => Promise<MeasuresInWindow>\n\nexport type {\n Measures,\n MeasuresInContainer,\n MeasuresInWindow,\n OnResolve,\n Calculate,\n CalculateMeasures,\n CalculateMeasuresInContainer,\n CalculateMeasuresInWindow\n}\n","import { useCallback, useRef } from 'react'\nimport { isNullable } from '@mediacubeco/javascript-base/utils'\nimport {\n DEFAULT_MEASURES,\n DEFAULT_MEASURES_IN_CONTAINER,\n DEFAULT_MEASURES_IN_WINDOW\n} from './useMeasures.constants'\nimport {\n Calculate,\n CalculateMeasures,\n CalculateMeasuresInContainer,\n CalculateMeasuresInWindow,\n Measures,\n MeasuresInContainer,\n MeasuresInWindow,\n OnResolve\n} from './useMeasures.types'\n\nconst useMeasures = () => {\n const measuresRef = useRef(DEFAULT_MEASURES)\n const measuresInContainerRef = useRef(DEFAULT_MEASURES_IN_CONTAINER)\n const measuresInWindowRef = useRef(DEFAULT_MEASURES_IN_WINDOW)\n\n const calculate: Calculate = useCallback(async (current, defaultData, onResolve) => {\n return new Promise((resolve) => {\n if (isNullable(current)) {\n resolve(defaultData)\n } else {\n onResolve(current, resolve)\n }\n })\n }, [])\n\n const calculateMeasures: CalculateMeasures = useCallback((current) => {\n const onResolve: OnResolve<Measures> = (current, resolve) => {\n current.measure((x = 0, y = 0, width = 0, height = 0, pageX = 0, pageY = 0) => {\n measuresRef.current = { x, y, width, height, pageX, pageY }\n\n resolve(measuresRef.current)\n })\n }\n\n return calculate(current, DEFAULT_MEASURES, onResolve)\n }, [])\n\n const calculateMeasuresInContainer: CalculateMeasuresInContainer = useCallback(\n (current, container) => {\n const onResolve: OnResolve<MeasuresInContainer> = (current, resolve) => {\n current.measureLayout(container, (left = 0, top = 0, width = 0, height = 0) => {\n measuresInContainerRef.current = { left, top, width, height }\n\n resolve(measuresInContainerRef.current)\n })\n }\n\n return calculate(current, DEFAULT_MEASURES_IN_CONTAINER, onResolve)\n },\n []\n )\n\n const calculateMeasuresInWindow: CalculateMeasuresInWindow = useCallback((current) => {\n const onResolve: OnResolve<MeasuresInWindow> = (current, resolve) => {\n current.measureInWindow((x = 0, y = 0, width = 0, height = 0) => {\n measuresInWindowRef.current = { x, y, width, height }\n\n resolve(measuresInWindowRef.current)\n })\n }\n\n return calculate(current, DEFAULT_MEASURES_IN_WINDOW, onResolve)\n }, [])\n\n return {\n measuresRef,\n measuresInContainerRef,\n measuresInWindowRef,\n calculateMeasures,\n calculateMeasuresInContainer,\n calculateMeasuresInWindow\n }\n}\n\nexport { useMeasures }\n","import { RefObject } from 'react'\nimport { FlatList, ScrollView, SectionList, View } from 'react-native'\nimport { Nullable } from '@mediacubeco/javascript-base/types'\n\nconst getResponder = <\n ScrolledCurrent extends Nullable<ScrollView | FlatList | SectionList>,\n Current extends Nullable<View>\n>(\n scrolledRef: RefObject<ScrolledCurrent>\n) => {\n const responder = scrolledRef.current?.getScrollResponder() ?? null\n\n const inner = (responder?.getInnerViewRef?.() ?? null) as Current\n const outer = (responder?.getNativeScrollRef?.() ?? null) as Current\n\n return { responder, inner, outer }\n}\n\nexport { getResponder }\n"],"names":[],"mappings":";;;;;;;;AAAA;;ACCA;AACA;AACA;AACA;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;;ACDA;AACA;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;;ACAA;;ACCA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;;ACDA;AACA;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":["../node_modules/@mediacubeco/javascript-base/dist/helpers/index.mjs","../src/helpers/Clipboard/Clipboard.ts","../src/helpers/Dimensions/Dimensions.ts","../src/helpers/Dimensions/Dimensions.constants.ts","../src/helpers/Platform/Platform.constants.ts","../src/helpers/Platform/Platform.ts","../node_modules/@mediacubeco/javascript-base/dist/utils/index.mjs","../src/utils/listeners/appState.ts","../src/utils/listeners/keyboard.ts","../src/hooks/useAppState/useAppState.ts","../src/hooks/useKeyboard/useKeyboard.ts","../src/hooks/useLayout/useLayout.constants.ts","../src/hooks/useLayout/useLayout.ts","../src/hooks/useMeasures/useMeasures.constants.ts","../src/hooks/useMeasures/useMeasures.ts","../src/hooks/useMeasures/useMeasures.utils.ts"],"sourcesContent":["import{isAxiosError as t}from\"axios\";const s=t=>t instanceof Error,e=(t,...s)=>{if(t instanceof Function)return t(...s)},r=t=>{for(let s in t)return!1;return!0},i=(t=\"?\",...s)=>{const e=(t&&(r=t,\"string\"==typeof r)?t:\"?\").toUpperCase();var r;const i=s.reduce((t,s,e,{length:r})=>{const i=e===r-1?[]:[\"|\"];return t.push(s,...i),t},s.length?[\"-\"]:[]);return[`[${e}]`,...i]};var n,a;!function(t){t.StartGroup=\"group\",t.EndGroup=\"groupEnd\",t.Default=\"log\"}(n||(n={})),function(t){t.Info=\"\u001b[36m%s\u001b[0m\",t.Success=\"\u001b[32m%s\u001b[0m\",t.Warning=\"\u001b[33m%s\u001b[0m\",t.Danger=\"\u001b[31m%s\u001b[0m\"}(a||(a={}));class o{static formatted={info:(...t)=>o.info(...i(...t)),success:(...t)=>o.success(...i(...t)),warning:(...t)=>o.warning(...i(...t)),danger:(...t)=>o.danger(...i(...t))};static#t(t,...s){console[t](...s)}static startGroup(t,s,...e){o.#t(n.StartGroup,...((t,...s)=>[\"%c%s\",t,...s])(`font-size: 16px;${s}`,...i(t,...e)))}static endGroup(){o.#t(n.EndGroup)}static info(...t){o.#t(n.Default,a.Info,...t)}static success(...t){o.#t(n.Default,a.Success,...t)}static warning(...t){o.#t(n.Default,a.Warning,...t)}static danger(...t){o.#t(n.Default,a.Danger,...t)}}class c{static ignore(t){}static create(t,s){return new Error(t,{cause:s})}static throw(t,s){throw c.create(t,s)}static capture(t,e){const{signal:r,message:i,payload:n,stack:a}=e,c=[i,s(t)?t.message:void 0].filter(Boolean);o.formatted.danger(r,...c,{error:t,payload:n,stack:a})}static forward(t,s){throw c.capture(t,s),t}static parse(e){const i=\"Some error!\",n=0,a={};switch(!0){case t(e):{const{status:t=n,data:s,config:o}=e.response??{},{message:c=i,errors:u=a}=s??{};return{message:c,status:t,errors:u,isExternal:r(u)}}case s(e):return{message:e.message,status:n,errors:a,isExternal:!0};default:return{message:i,status:n,errors:a,isExternal:!0}}}}class u{isDefaultPrevented=!1;constructor(){this.preventDefault=this.preventDefault.bind(this),this.overrideDefault=this.overrideDefault.bind(this)}preventDefault(){this.isDefaultPrevented=!0}overrideDefault(){this.isDefaultPrevented=!1}}class l{#s={};constructor(){this.emit=this.emit.bind(this),this.on=this.on.bind(this),this.off=this.off.bind(this),this.clear=this.clear.bind(this)}get eventNameList(){return Object.keys(this.#s)}emit(t,s,r){const i=this.#s[t];if(!i)return e(r);const{event:n,listenerList:a}=i;a.forEach(t=>e(t,{...n,...s})),!n.isDefaultPrevented&&e(r)}on(t,s){const e=this.#s[t];return e?e.listenerList.push(s):this.#s[t]={event:new u,listenerList:[s]},()=>this.off(t,s)}off(t,s){const e=this.#s[t];if(!e)return;const{event:r,listenerList:i}=e;this.#s[t]={event:r,listenerList:i.filter(t=>t!==s)},r.overrideDefault()}clear(t){delete this.#s[t]}}export{c as ErrorHandler,l as EventEmitter,o as Log};\n//# sourceMappingURL=index.mjs.map\n","import NativeClipboard from '@react-native-clipboard/clipboard'\nimport { Log } from '@mediacubeco/javascript-base/helpers'\nimport { ClipboardValue } from './Clipboard.types'\n\nclass Clipboard {\n static copy(value: ClipboardValue) {\n Log.formatted.info('copy', value)\n\n return NativeClipboard.setString(value.toString())\n }\n\n static async paste() {\n const value = await NativeClipboard.getString()\n\n Log.formatted.info('paste', value)\n\n return value\n }\n}\n\nexport default Clipboard\n","import { Dimensions as NativeDimensions, StatusBar } from 'react-native'\nimport { DIMENSIONS_DESIGN_HEIGHT, DIMENSIONS_DESIGN_WIDTH } from './Dimensions.constants'\n\n/**\n * window: reports width/height without the soft menu bar\n *\n * screen: reports entire screen's width/height\n */\nclass Dimensions {\n static get windowWidth() {\n return NativeDimensions.get('window').width\n }\n\n static get windowHeight() {\n return NativeDimensions.get('window').height\n }\n\n static get statusBarWidth() {\n return Dimensions.windowWidth\n }\n\n static get statusBarHeight() {\n return StatusBar.currentHeight ?? 0\n }\n\n static get ratio() {\n const widthRatio = Dimensions.windowWidth / DIMENSIONS_DESIGN_WIDTH\n const heightRatio = Dimensions.windowHeight / DIMENSIONS_DESIGN_HEIGHT\n\n return Math.min(widthRatio, heightRatio)\n }\n\n static byWindowWidth(value: number) {\n return Dimensions.windowWidth * value\n }\n\n static byWindowHeight(value: number) {\n return Dimensions.windowHeight * value\n }\n\n static byRatio(value: number) {\n return Dimensions.ratio * value\n }\n}\n\nexport default Dimensions\n","const DIMENSIONS_DESIGN_WIDTH = 375\n\nconst DIMENSIONS_DESIGN_HEIGHT = 812\n\nexport { DIMENSIONS_DESIGN_WIDTH, DIMENSIONS_DESIGN_HEIGHT }\n","enum PlatformOS {\n Ios = 'ios',\n Android = 'android'\n // Macos = 'macos',\n // Windows = 'windows',\n // Web = 'web',\n}\n\nexport { PlatformOS }\n","import { Platform as NativePlatform } from 'react-native'\nimport { PlatformOS } from './Platform.constants'\nimport { PlatformByData, PlatformRequiredOS } from './Platform.types'\n\n// Platform.Version\nclass Platform {\n static get OS() {\n return NativePlatform.OS\n }\n\n static get version() {\n return NativePlatform.Version\n }\n\n static get isIos() {\n return Platform.OS === 'ios'\n }\n\n static get isAndroid() {\n return Platform.OS === 'android'\n }\n\n // static get isMac() {\n // return Platform.OS === 'macos'\n // }\n\n // static get isWindows() {\n // return Platform.OS === 'windows'\n // }\n\n // static get isWeb() {\n // return Platform.OS === 'web'\n // }\n\n static by<Value>(data: PlatformByData<Value>, defaultOS: PlatformRequiredOS = PlatformOS.Ios) {\n return NativePlatform.select({ ...data, default: data[defaultOS] })\n }\n}\n\nexport default Platform\n","const e=e=>void 0===e,t=e=>null===e,n=n=>e(n)||t(n),o=e=>\"string\"==typeof e,r=e=>\"number\"==typeof e,i=e=>\"bigint\"==typeof e,s=e=>Number.isNaN(e),f=e=>\"boolean\"==typeof e,c=e=>\"symbol\"==typeof e,a=e=>\"object\"==typeof e,u=e=>{const t=[l,p,y,b,m,g,j,x,E,N,T].some(t=>t(e));return!!e&&\"object\"==typeof e&&!t},l=e=>Array.isArray(e),p=e=>e instanceof ArrayBuffer,y=e=>e instanceof Map,b=e=>e instanceof Set,m=e=>e instanceof Map,g=e=>e instanceof Set,j=e=>e instanceof Date,x=e=>e instanceof Error,A=e=>e instanceof Proxy,E=e=>e instanceof RegExp,N=e=>e instanceof Promise,T=e=>e instanceof Function;function h(e,t,n){return 2===arguments.length?t[e]:t[e]??n}const M=(e,...t)=>{if(T(e))return e(...t)},O=(e,t)=>{const n=Object.entries(e);return Object.fromEntries(n.map(([e,n],o,r)=>[e,t(e,n,o,r)]))},P=(e,t)=>{let n;return(...o)=>{n&&clearTimeout(n),n=setTimeout(()=>M(e,...o),t)}},S=(e,t)=>{let n=!0;return(...o)=>{n&&(M(e,...o),n=!1),setTimeout(()=>n=!0,t)}},d=e=>{for(let t in e)return!1;return!0},v=e=>0===e.length,B=(e,t)=>!(!a(t)||!(e in t)),D=(e,t=\"isVisible\")=>e.filter(e=>!B(t,e)||e[t]),F=e=>e.filter(e=>!n(e));export{P as debounce,D as filterByProperty,F as filterNullableValues,h as getValueByProperty,B as hasProperty,a as isAnyObject,l as isArray,p as isArrayBuffer,v as isArrayEmpty,i as isBigint,f as isBoolean,j as isDate,x as isError,T as isFunction,y as isMap,s as isNaN,t as isNull,n as isNullable,r as isNumber,u as isObject,d as isObjectEmpty,N as isPromise,A as isProxy,E as isRegExp,b as isSet,o as isString,c as isSymbol,e as isUndefined,m as isWeakMap,g as isWeakSet,O as mapRecord,M as runCallback,S as throttle};\n//# sourceMappingURL=index.mjs.map\n","import { AppState, AppStateStatus, NativeEventSubscription } from 'react-native'\nimport { runCallback } from '@mediacubeco/javascript-base/utils'\nimport { BaseRecord, Callback } from '@mediacubeco/javascript-base/types'\nimport { Platform } from '../../helpers'\n\ntype AppStateAdditionalHandlerName = 'onFocus' | 'onBlur'\n\ntype AppStateHandlerName =\n | AppStateAdditionalHandlerName\n | 'onActive'\n | 'onInactive'\n | 'onBackground'\n | 'onExtension'\n | 'onUnknown'\n | 'onChange'\n\ntype AppStateHandlerCallback = Callback<[AppStateStatus]>\n\ntype AppStateHandlers = Partial<BaseRecord<AppStateHandlerCallback, AppStateHandlerName>>\n\ninterface HandleChangeAppStateConfig {\n state: AppStateStatus\n handlers: Omit<AppStateHandlers, AppStateAdditionalHandlerName>\n}\n\ntype HandleChangeAppState = (config: HandleChangeAppStateConfig) => void\n\ntype ListenAppState = (handlers: AppStateHandlers) => NativeEventSubscription\n\nenum AppStatus {\n Active = 'active',\n Inactive = 'inactive',\n Background = 'background',\n Extension = 'extension',\n Unknown = 'unknown'\n}\n\nconst handleChangeAppState: HandleChangeAppState = ({ state, handlers }) => {\n const { onActive, onInactive, onBackground, onExtension, onUnknown, onChange } = handlers ?? {}\n\n const handler = {\n [AppStatus.Active]: onActive,\n [AppStatus.Inactive]: onInactive,\n [AppStatus.Background]: onBackground,\n [AppStatus.Extension]: onExtension,\n [AppStatus.Unknown]: onUnknown\n }[state]\n\n runCallback(onChange, state)\n runCallback(handler, state)\n}\n\nconst listenAppState: ListenAppState = ({ onFocus, onBlur, ...handlers }) => {\n const listenerList: NativeEventSubscription[] = []\n\n if (Platform.isAndroid) {\n listenerList.push(\n AppState.addEventListener('focus', (state) => runCallback(onFocus, state)),\n AppState.addEventListener('blur', (state) => runCallback(onBlur, state))\n )\n }\n\n listenerList.push(\n AppState.addEventListener('change', (state) => handleChangeAppState({ state, handlers }))\n )\n\n return {\n remove() {\n listenerList.forEach((listener) => listener.remove())\n }\n }\n}\n\nexport { listenAppState }\nexport type { AppStateHandlers }\n","import { Keyboard, KeyboardEventListener, NativeEventSubscription } from 'react-native'\nimport {\n mapRecord,\n filterNullableValues,\n isNullable\n} from '@mediacubeco/javascript-base/utils'\nimport { BaseRecord, KeyOf } from '@mediacubeco/javascript-base/types'\n\nenum KeyboardEventName {\n onWillShow = 'keyboardWillShow',\n onDidShow = 'keyboardDidShow',\n onWillHide = 'keyboardWillHide',\n onDidHide = 'keyboardDidHide',\n onWillChangeFrame = 'keyboardWillChangeFrame',\n onDidChangeFrame = 'keyboardDidChangeFrame'\n}\n\ntype KeyboardHandlers = Partial<BaseRecord<KeyboardEventListener, KeyOf<typeof KeyboardEventName>>>\n\ntype ListenKeyboard = (handlers: KeyboardHandlers) => NativeEventSubscription\n\nconst listenKeyboard: ListenKeyboard = (handlers) => {\n const list = mapRecord(handlers, (key, handler) => {\n if (isNullable(handler)) return\n\n return Keyboard.addListener(KeyboardEventName[key], handler)\n })\n\n return {\n remove() {\n return filterNullableValues(Object.values(list)).map((unsubscribe) => unsubscribe.remove())\n }\n }\n}\n\nexport { listenKeyboard }\nexport type { KeyboardHandlers }\n","import { useEffect } from 'react'\nimport { AppStateHandlers, listenAppState } from '../../utils/listeners'\n\nconst useAppState = (handlers: AppStateHandlers) => {\n useEffect(() => {\n const listener = listenAppState(handlers)\n\n return () => listener.remove()\n }, [handlers])\n}\n\nexport { useAppState }\n","import { useEffect } from 'react'\nimport { KeyboardHandlers, listenKeyboard } from '../../utils/listeners'\n\nconst useKeyboard = (handlers: KeyboardHandlers) => {\n useEffect(() => {\n const listener = listenKeyboard(handlers)\n\n return () => {\n listener.remove()\n }\n }, [handlers])\n}\n\nexport { useKeyboard }\n","import { Layout, NullableLayout } from './useLayout.types'\n\nconst DEFAULT_LAYOUT: Layout = {\n top: 0,\n left: 0,\n width: 0,\n height: 0,\n}\n\nconst DEFAULT_NULLABLE_LAYOUT: NullableLayout = {\n top: null,\n left: null,\n width: null,\n height: null,\n}\n\nexport { DEFAULT_LAYOUT, DEFAULT_NULLABLE_LAYOUT }\n","import { useCallback, useState } from 'react'\nimport { LayoutChangeEvent } from 'react-native'\nimport { runCallback } from '@mediacubeco/javascript-base/utils'\nimport { DEFAULT_LAYOUT, DEFAULT_NULLABLE_LAYOUT } from './useLayout.constants'\nimport { UseLayoutConfig, HandleLayout, Layout, NullableLayout } from './useLayout.types'\n\nfunction useLayout(config?: UseLayoutConfig<false>): [Layout, HandleLayout]\nfunction useLayout(config?: UseLayoutConfig<true>): [NullableLayout, HandleLayout]\nfunction useLayout({ onLayout, isNullable }: UseLayoutConfig = { isNullable: false }) {\n const [layout, setLayout] = useState(isNullable ? DEFAULT_NULLABLE_LAYOUT : DEFAULT_LAYOUT)\n\n const handleLayout = useCallback(\n (event: LayoutChangeEvent) => {\n runCallback(onLayout, event)\n\n const { layout } = event.nativeEvent\n const { y: top, x: left, width, height } = layout\n\n setLayout({ top, left, width, height })\n },\n [onLayout]\n )\n\n return [layout, handleLayout] as const\n}\n\nexport { useLayout }\n","const DEFAULT_MEASURES = { x: 0, y: 0, width: 0, height: 0, pageX: 0, pageY: 0 }\nconst DEFAULT_MEASURES_IN_CONTAINER = { left: 0, top: 0, width: 0, height: 0 }\nconst DEFAULT_MEASURES_IN_WINDOW = { x: 0, y: 0, width: 0, height: 0 }\n\nexport { DEFAULT_MEASURES, DEFAULT_MEASURES_IN_CONTAINER, DEFAULT_MEASURES_IN_WINDOW }\n","import { useCallback, useRef } from 'react'\nimport { isNullable } from '@mediacubeco/javascript-base/utils'\nimport {\n DEFAULT_MEASURES,\n DEFAULT_MEASURES_IN_CONTAINER,\n DEFAULT_MEASURES_IN_WINDOW\n} from './useMeasures.constants'\nimport {\n Calculate,\n CalculateMeasures,\n CalculateMeasuresInContainer,\n CalculateMeasuresInWindow,\n Measures,\n MeasuresInContainer,\n MeasuresInWindow,\n OnResolve\n} from './useMeasures.types'\n\nconst useMeasures = () => {\n const measuresRef = useRef(DEFAULT_MEASURES)\n const measuresInContainerRef = useRef(DEFAULT_MEASURES_IN_CONTAINER)\n const measuresInWindowRef = useRef(DEFAULT_MEASURES_IN_WINDOW)\n\n const calculate: Calculate = useCallback(async (current, defaultData, onResolve) => {\n return new Promise((resolve) => {\n if (isNullable(current)) {\n resolve(defaultData)\n } else {\n onResolve(current, resolve)\n }\n })\n }, [])\n\n const calculateMeasures: CalculateMeasures = useCallback((current) => {\n const onResolve: OnResolve<Measures> = (current, resolve) => {\n current.measure((x = 0, y = 0, width = 0, height = 0, pageX = 0, pageY = 0) => {\n measuresRef.current = { x, y, width, height, pageX, pageY }\n\n resolve(measuresRef.current)\n })\n }\n\n return calculate(current, DEFAULT_MEASURES, onResolve)\n }, [])\n\n const calculateMeasuresInContainer: CalculateMeasuresInContainer = useCallback(\n (current, container) => {\n const onResolve: OnResolve<MeasuresInContainer> = (current, resolve) => {\n current.measureLayout(container, (left = 0, top = 0, width = 0, height = 0) => {\n measuresInContainerRef.current = { left, top, width, height }\n\n resolve(measuresInContainerRef.current)\n })\n }\n\n return calculate(current, DEFAULT_MEASURES_IN_CONTAINER, onResolve)\n },\n []\n )\n\n const calculateMeasuresInWindow: CalculateMeasuresInWindow = useCallback((current) => {\n const onResolve: OnResolve<MeasuresInWindow> = (current, resolve) => {\n current.measureInWindow((x = 0, y = 0, width = 0, height = 0) => {\n measuresInWindowRef.current = { x, y, width, height }\n\n resolve(measuresInWindowRef.current)\n })\n }\n\n return calculate(current, DEFAULT_MEASURES_IN_WINDOW, onResolve)\n }, [])\n\n return {\n measuresRef,\n measuresInContainerRef,\n measuresInWindowRef,\n calculateMeasures,\n calculateMeasuresInContainer,\n calculateMeasuresInWindow\n }\n}\n\nexport { useMeasures }\n","import { RefObject } from 'react'\nimport { FlatList, ScrollView, SectionList, View } from 'react-native'\nimport { Nullable } from '@mediacubeco/javascript-base/types'\n\nconst getResponder = <\n ScrolledCurrent extends Nullable<ScrollView | FlatList | SectionList>,\n Current extends Nullable<View>\n>(\n scrolledRef: RefObject<ScrolledCurrent>\n) => {\n const responder = scrolledRef.current?.getScrollResponder() ?? null\n\n const inner = (responder?.getInnerViewRef?.() ?? null) as Current\n const outer = (responder?.getNativeScrollRef?.() ?? null) as Current\n\n return { responder, inner, outer }\n}\n\nexport { getResponder }\n"],"names":["s","t","Error","e","Function","r","i","toUpperCase","reduce","length","push","n","a","StartGroup","EndGroup","Default","Info","Success","Warning","Danger","o$1","o","static","info","success","warning","danger","console","startGroup","endGroup","c$1","c","ignore","create","cause","capture","signal","message","payload","stack","filter","Boolean","formatted","error","forward","parse","status","data","config","response","errors","u","isExternal","u$1","isDefaultPrevented","constructor","this","preventDefault","bind","overrideDefault","l$1","emit","on","off","clear","eventNameList","Object","keys","event","listenerList","forEach","Clipboard","copy","value","Log","NativeClipboard","setString","toString","paste","getString","Dimensions","windowWidth","NativeDimensions","get","width","windowHeight","height","statusBarWidth","statusBarHeight","StatusBar","currentHeight","ratio","widthRatio","heightRatio","Math","min","byWindowWidth","byWindowHeight","byRatio","PlatformOS","Platform","OS","NativePlatform","version","Version","isIos","isAndroid","by","defaultOS","Ios","select","default","Number","isNaN","f","l","p","y","b","m","g","j","x","E","N","T","some","Array","isArray","ArrayBuffer","Map","Set","Date","A","Proxy","RegExp","Promise","h","arguments","M","O","entries","fromEntries","map","P","clearTimeout","setTimeout","S","d","v","B","D","F","AppStatus","listenAppState","onFocus","onBlur","handlers","AppState","addEventListener","state","runCallback","handleChangeAppState","onActive","onInactive","onBackground","onExtension","onUnknown","onChange","handler","Active","Inactive","Background","Extension","Unknown","remove","listener","KeyboardEventName","listenKeyboard","list","mapRecord","key","isNullable","Keyboard","addListener","filterNullableValues","values","unsubscribe","useAppState","useEffect","useKeyboard","DEFAULT_LAYOUT","top","left","DEFAULT_NULLABLE_LAYOUT","useLayout","onLayout","layout","setLayout","useState","handleLayout","useCallback","nativeEvent","DEFAULT_MEASURES","pageX","pageY","DEFAULT_MEASURES_IN_CONTAINER","DEFAULT_MEASURES_IN_WINDOW","useMeasures","measuresRef","useRef","measuresInContainerRef","measuresInWindowRef","calculate","async","current","defaultData","onResolve","resolve","calculateMeasures","measure","calculateMeasuresInContainer","container","measureLayout","calculateMeasuresInWindow","measureInWindow","getResponder","scrolledRef","responder","getScrollResponder","inner","getInnerViewRef","outer","getNativeScrollRef"],"mappings":"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","x_google_ignoreList":[0,6]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","sources":["../../node_modules/@mediacubeco/javascript-base/dist/utils/index.mjs","../../node_modules/@mediacubeco/javascript-base/dist/helpers/index.mjs","../../src/helpers/Platform/Platform.constants.ts","../../src/utils/listeners/appState.ts","../../src/helpers/Platform/Platform.ts","../../src/utils/listeners/keyboard.ts"],"sourcesContent":["const e=e=>void 0===e,t=e=>null===e,n=n=>e(n)||t(n),o=e=>\"string\"==typeof e,r=e=>\"number\"==typeof e,i=e=>\"bigint\"==typeof e,s=e=>Number.isNaN(e),f=e=>\"boolean\"==typeof e,c=e=>\"symbol\"==typeof e,a=e=>\"object\"==typeof e,u=e=>{const t=[l,p,y,b,m,g,j,x,E,N,T].some(t=>t(e));return!!e&&\"object\"==typeof e&&!t},l=e=>Array.isArray(e),p=e=>e instanceof ArrayBuffer,y=e=>e instanceof Map,b=e=>e instanceof Set,m=e=>e instanceof Map,g=e=>e instanceof Set,j=e=>e instanceof Date,x=e=>e instanceof Error,A=e=>e instanceof Proxy,E=e=>e instanceof RegExp,N=e=>e instanceof Promise,T=e=>e instanceof Function;function h(e,t,n){return 2===arguments.length?t[e]:t[e]??n}const M=(e,...t)=>{if(T(e))return e(...t)},O=(e,t)=>{const n=Object.entries(e);return Object.fromEntries(n.map(([e,n],o,r)=>[e,t(e,n,o,r)]))},P=(e,t)=>{let n;return(...o)=>{n&&clearTimeout(n),n=setTimeout(()=>M(e,...o),t)}},S=(e,t)=>{let n=!0;return(...o)=>{n&&(M(e,...o),n=!1),setTimeout(()=>n=!0,t)}},d=e=>{for(let t in e)return!1;return!0},v=e=>0===e.length,B=(e,t)=>!(!a(t)||!(e in t)),D=(e,t=\"isVisible\")=>e.filter(e=>!B(t,e)||e[t]),F=e=>e.filter(e=>!n(e));export{P as debounce,D as filterByProperty,F as filterNullableValues,h as getValueByProperty,B as hasProperty,a as isAnyObject,l as isArray,p as isArrayBuffer,v as isArrayEmpty,i as isBigint,f as isBoolean,j as isDate,x as isError,T as isFunction,y as isMap,s as isNaN,t as isNull,n as isNullable,r as isNumber,u as isObject,d as isObjectEmpty,N as isPromise,A as isProxy,E as isRegExp,b as isSet,o as isString,c as isSymbol,e as isUndefined,m as isWeakMap,g as isWeakSet,O as mapRecord,M as runCallback,S as throttle};\n//# sourceMappingURL=index.mjs.map\n","import{isAxiosError as t}from\"axios\";const s=t=>t instanceof Error,e=(t,...s)=>{if(t instanceof Function)return t(...s)},r=t=>{for(let s in t)return!1;return!0},i=(t=\"?\",...s)=>{const e=(t&&(r=t,\"string\"==typeof r)?t:\"?\").toUpperCase();var r;const i=s.reduce((t,s,e,{length:r})=>{const i=e===r-1?[]:[\"|\"];return t.push(s,...i),t},s.length?[\"-\"]:[]);return[`[${e}]`,...i]};var n,a;!function(t){t.StartGroup=\"group\",t.EndGroup=\"groupEnd\",t.Default=\"log\"}(n||(n={})),function(t){t.Info=\"\u001b[36m%s\u001b[0m\",t.Success=\"\u001b[32m%s\u001b[0m\",t.Warning=\"\u001b[33m%s\u001b[0m\",t.Danger=\"\u001b[31m%s\u001b[0m\"}(a||(a={}));class o{static formatted={info:(...t)=>o.info(...i(...t)),success:(...t)=>o.success(...i(...t)),warning:(...t)=>o.warning(...i(...t)),danger:(...t)=>o.danger(...i(...t))};static#t(t,...s){console[t](...s)}static startGroup(t,s,...e){o.#t(n.StartGroup,...((t,...s)=>[\"%c%s\",t,...s])(`font-size: 16px;${s}`,...i(t,...e)))}static endGroup(){o.#t(n.EndGroup)}static info(...t){o.#t(n.Default,a.Info,...t)}static success(...t){o.#t(n.Default,a.Success,...t)}static warning(...t){o.#t(n.Default,a.Warning,...t)}static danger(...t){o.#t(n.Default,a.Danger,...t)}}class c{static ignore(t){}static create(t,s){return new Error(t,{cause:s})}static throw(t,s){throw c.create(t,s)}static capture(t,e){const{signal:r,message:i,payload:n,stack:a}=e,c=[i,s(t)?t.message:void 0].filter(Boolean);o.formatted.danger(r,...c,{error:t,payload:n,stack:a})}static forward(t,s){throw c.capture(t,s),t}static parse(e){const i=\"Some error!\",n=0,a={};switch(!0){case t(e):{const{status:t=n,data:s,config:o}=e.response??{},{message:c=i,errors:u=a}=s??{};return{message:c,status:t,errors:u,isExternal:r(u)}}case s(e):return{message:e.message,status:n,errors:a,isExternal:!0};default:return{message:i,status:n,errors:a,isExternal:!0}}}}class u{isDefaultPrevented=!1;constructor(){this.preventDefault=this.preventDefault.bind(this),this.overrideDefault=this.overrideDefault.bind(this)}preventDefault(){this.isDefaultPrevented=!0}overrideDefault(){this.isDefaultPrevented=!1}}class l{#s={};constructor(){this.emit=this.emit.bind(this),this.on=this.on.bind(this),this.off=this.off.bind(this),this.clear=this.clear.bind(this)}get eventNameList(){return Object.keys(this.#s)}emit(t,s,r){const i=this.#s[t];if(!i)return e(r);const{event:n,listenerList:a}=i;a.forEach(t=>e(t,{...n,...s})),!n.isDefaultPrevented&&e(r)}on(t,s){const e=this.#s[t];return e?e.listenerList.push(s):this.#s[t]={event:new u,listenerList:[s]},()=>this.off(t,s)}off(t,s){const e=this.#s[t];if(!e)return;const{event:r,listenerList:i}=e;this.#s[t]={event:r,listenerList:i.filter(t=>t!==s)},r.overrideDefault()}clear(t){delete this.#s[t]}}export{c as ErrorHandler,l as EventEmitter,o as Log};\n//# sourceMappingURL=index.mjs.map\n","enum PlatformOS {\n Ios = 'ios',\n Android = 'android'\n // Macos = 'macos',\n // Windows = 'windows',\n // Web = 'web',\n}\n\nexport { PlatformOS }\n","import { AppState, AppStateStatus, NativeEventSubscription } from 'react-native'\nimport { runCallback } from '@mediacubeco/javascript-base/utils'\nimport { BaseRecord, Callback } from '@mediacubeco/javascript-base/types'\nimport { Platform } from '../../helpers'\n\ntype AppStateAdditionalHandlerName = 'onFocus' | 'onBlur'\n\ntype AppStateHandlerName =\n | AppStateAdditionalHandlerName\n | 'onActive'\n | 'onInactive'\n | 'onBackground'\n | 'onExtension'\n | 'onUnknown'\n | 'onChange'\n\ntype AppStateHandlerCallback = Callback<[AppStateStatus]>\n\ntype AppStateHandlers = Partial<BaseRecord<AppStateHandlerCallback, AppStateHandlerName>>\n\ninterface HandleChangeAppStateConfig {\n state: AppStateStatus\n handlers: Omit<AppStateHandlers, AppStateAdditionalHandlerName>\n}\n\ntype HandleChangeAppState = (config: HandleChangeAppStateConfig) => void\n\ntype ListenAppState = (handlers: AppStateHandlers) => NativeEventSubscription\n\nenum AppStatus {\n Active = 'active',\n Inactive = 'inactive',\n Background = 'background',\n Extension = 'extension',\n Unknown = 'unknown'\n}\n\nconst handleChangeAppState: HandleChangeAppState = ({ state, handlers }) => {\n const { onActive, onInactive, onBackground, onExtension, onUnknown, onChange } = handlers ?? {}\n\n const handler = {\n [AppStatus.Active]: onActive,\n [AppStatus.Inactive]: onInactive,\n [AppStatus.Background]: onBackground,\n [AppStatus.Extension]: onExtension,\n [AppStatus.Unknown]: onUnknown\n }[state]\n\n runCallback(onChange, state)\n runCallback(handler, state)\n}\n\nconst listenAppState: ListenAppState = ({ onFocus, onBlur, ...handlers }) => {\n const listenerList: NativeEventSubscription[] = []\n\n if (Platform.isAndroid) {\n listenerList.push(\n AppState.addEventListener('focus', (state) => runCallback(onFocus, state)),\n AppState.addEventListener('blur', (state) => runCallback(onBlur, state))\n )\n }\n\n listenerList.push(\n AppState.addEventListener('change', (state) => handleChangeAppState({ state, handlers }))\n )\n\n return {\n remove() {\n listenerList.forEach((listener) => listener.remove())\n }\n }\n}\n\nexport { listenAppState }\nexport type { AppStateHandlers }\n","import { Platform as NativePlatform } from 'react-native'\nimport { PlatformOS } from './Platform.constants'\nimport { PlatformByData, PlatformRequiredOS } from './Platform.types'\n\n// Platform.Version\nclass Platform {\n static get OS() {\n return NativePlatform.OS\n }\n\n static get version() {\n return NativePlatform.Version\n }\n\n static get isIos() {\n return Platform.OS === 'ios'\n }\n\n static get isAndroid() {\n return Platform.OS === 'android'\n }\n\n // static get isMac() {\n // return Platform.OS === 'macos'\n // }\n\n // static get isWindows() {\n // return Platform.OS === 'windows'\n // }\n\n // static get isWeb() {\n // return Platform.OS === 'web'\n // }\n\n static by<Value>(data: PlatformByData<Value>, defaultOS: PlatformRequiredOS = PlatformOS.Ios) {\n return NativePlatform.select({ ...data, default: data[defaultOS] })\n }\n}\n\nexport default Platform\n","import { Keyboard, KeyboardEventListener, NativeEventSubscription } from 'react-native'\nimport {\n mapRecord,\n filterNullableValues,\n isNullable\n} from '@mediacubeco/javascript-base/utils'\nimport { BaseRecord, KeyOf } from '@mediacubeco/javascript-base/types'\n\nenum KeyboardEventName {\n onWillShow = 'keyboardWillShow',\n onDidShow = 'keyboardDidShow',\n onWillHide = 'keyboardWillHide',\n onDidHide = 'keyboardDidHide',\n onWillChangeFrame = 'keyboardWillChangeFrame',\n onDidChangeFrame = 'keyboardDidChangeFrame'\n}\n\ntype KeyboardHandlers = Partial<BaseRecord<KeyboardEventListener, KeyOf<typeof KeyboardEventName>>>\n\ntype ListenKeyboard = (handlers: KeyboardHandlers) => NativeEventSubscription\n\nconst listenKeyboard: ListenKeyboard = (handlers) => {\n const list = mapRecord(handlers, (key, handler) => {\n if (isNullable(handler)) return\n\n return Keyboard.addListener(KeyboardEventName[key], handler)\n })\n\n return {\n remove() {\n return filterNullableValues(Object.values(list)).map((unsubscribe) => unsubscribe.remove())\n }\n }\n}\n\nexport { listenKeyboard }\nexport type { KeyboardHandlers }\n"],"names":["e","t","n","a","l","Array","isArray","p","ArrayBuffer","y","Map","b","Set","m","g","j","Date","x","Error","E","RegExp","N","Promise","T","Function","M","O","Object","entries","fromEntries","map","o","r","B","F","filter","PlatformOS","AppStatus","StartGroup","EndGroup","Default","Info","Success","Warning","Danger","Platform","OS","NativePlatform","version","Version","isIos","isAndroid","by","data","defaultOS","Ios","select","default","KeyboardEventName","clearTimeout","setTimeout","arguments","length","Number","isNaN","some","Proxy","listenAppState","onFocus","onBlur","handlers","listenerList","push","AppState","addEventListener","state","runCallback","handleChangeAppState","onActive","onInactive","onBackground","onExtension","onUnknown","onChange","handler","Active","Inactive","Background","Extension","Unknown","remove","forEach","listener","list","mapRecord","key","isNullable","Keyboard","addListener","filterNullableValues","values","unsubscribe"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sources":["../../src/utils/listeners/appState.ts","../../src/utils/listeners/keyboard.ts"],"sourcesContent":["import { AppState, AppStateStatus, NativeEventSubscription } from 'react-native'\nimport { runCallback } from '@mediacubeco/javascript-base/utils'\nimport { BaseRecord, Callback } from '@mediacubeco/javascript-base/types'\nimport { Platform } from '../../helpers'\n\ntype AppStateAdditionalHandlerName = 'onFocus' | 'onBlur'\n\ntype AppStateHandlerName =\n | AppStateAdditionalHandlerName\n | 'onActive'\n | 'onInactive'\n | 'onBackground'\n | 'onExtension'\n | 'onUnknown'\n | 'onChange'\n\ntype AppStateHandlerCallback = Callback<[AppStateStatus]>\n\ntype AppStateHandlers = Partial<BaseRecord<AppStateHandlerCallback, AppStateHandlerName>>\n\ninterface HandleChangeAppStateConfig {\n state: AppStateStatus\n handlers: Omit<AppStateHandlers, AppStateAdditionalHandlerName>\n}\n\ntype HandleChangeAppState = (config: HandleChangeAppStateConfig) => void\n\ntype ListenAppState = (handlers: AppStateHandlers) => NativeEventSubscription\n\nenum AppStatus {\n Active = 'active',\n Inactive = 'inactive',\n Background = 'background',\n Extension = 'extension',\n Unknown = 'unknown'\n}\n\nconst handleChangeAppState: HandleChangeAppState = ({ state, handlers }) => {\n const { onActive, onInactive, onBackground, onExtension, onUnknown, onChange } = handlers ?? {}\n\n const handler = {\n [AppStatus.Active]: onActive,\n [AppStatus.Inactive]: onInactive,\n [AppStatus.Background]: onBackground,\n [AppStatus.Extension]: onExtension,\n [AppStatus.Unknown]: onUnknown\n }[state]\n\n runCallback(onChange, state)\n runCallback(handler, state)\n}\n\nconst listenAppState: ListenAppState = ({ onFocus, onBlur, ...handlers }) => {\n const listenerList: NativeEventSubscription[] = []\n\n if (Platform.isAndroid) {\n listenerList.push(\n AppState.addEventListener('focus', (state) => runCallback(onFocus, state)),\n AppState.addEventListener('blur', (state) => runCallback(onBlur, state))\n )\n }\n\n listenerList.push(\n AppState.addEventListener('change', (state) => handleChangeAppState({ state, handlers }))\n )\n\n return {\n remove() {\n listenerList.forEach((listener) => listener.remove())\n }\n }\n}\n\nexport { listenAppState }\nexport type { AppStateHandlers }\n","import { Keyboard, KeyboardEventListener, NativeEventSubscription } from 'react-native'\nimport {\n mapRecord,\n filterNullableValues,\n isNullable\n} from '@mediacubeco/javascript-base/utils'\nimport { BaseRecord, KeyOf } from '@mediacubeco/javascript-base/types'\n\nenum KeyboardEventName {\n onWillShow = 'keyboardWillShow',\n onDidShow = 'keyboardDidShow',\n onWillHide = 'keyboardWillHide',\n onDidHide = 'keyboardDidHide',\n onWillChangeFrame = 'keyboardWillChangeFrame',\n onDidChangeFrame = 'keyboardDidChangeFrame'\n}\n\ntype KeyboardHandlers = Partial<BaseRecord<KeyboardEventListener, KeyOf<typeof KeyboardEventName>>>\n\ntype ListenKeyboard = (handlers: KeyboardHandlers) => NativeEventSubscription\n\nconst listenKeyboard: ListenKeyboard = (handlers) => {\n const list = mapRecord(handlers, (key, handler) => {\n if (isNullable(handler)) return\n\n return Keyboard.addListener(KeyboardEventName[key], handler)\n })\n\n return {\n remove() {\n return filterNullableValues(Object.values(list)).map((unsubscribe) => unsubscribe.remove())\n }\n }\n}\n\nexport { listenKeyboard }\nexport type { KeyboardHandlers }\n"],"names":[],"mappings":";;;;AAEA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":["../../node_modules/@mediacubeco/javascript-base/dist/utils/index.mjs","../../node_modules/@mediacubeco/javascript-base/dist/helpers/index.mjs","../../src/helpers/Platform/Platform.constants.ts","../../src/utils/listeners/appState.ts","../../src/helpers/Platform/Platform.ts","../../src/utils/listeners/keyboard.ts"],"sourcesContent":["const e=e=>void 0===e,t=e=>null===e,n=n=>e(n)||t(n),o=e=>\"string\"==typeof e,r=e=>\"number\"==typeof e,i=e=>\"bigint\"==typeof e,s=e=>Number.isNaN(e),f=e=>\"boolean\"==typeof e,c=e=>\"symbol\"==typeof e,a=e=>\"object\"==typeof e,u=e=>{const t=[l,p,y,b,m,g,j,x,E,N,T].some(t=>t(e));return!!e&&\"object\"==typeof e&&!t},l=e=>Array.isArray(e),p=e=>e instanceof ArrayBuffer,y=e=>e instanceof Map,b=e=>e instanceof Set,m=e=>e instanceof Map,g=e=>e instanceof Set,j=e=>e instanceof Date,x=e=>e instanceof Error,A=e=>e instanceof Proxy,E=e=>e instanceof RegExp,N=e=>e instanceof Promise,T=e=>e instanceof Function;function h(e,t,n){return 2===arguments.length?t[e]:t[e]??n}const M=(e,...t)=>{if(T(e))return e(...t)},O=(e,t)=>{const n=Object.entries(e);return Object.fromEntries(n.map(([e,n],o,r)=>[e,t(e,n,o,r)]))},P=(e,t)=>{let n;return(...o)=>{n&&clearTimeout(n),n=setTimeout(()=>M(e,...o),t)}},S=(e,t)=>{let n=!0;return(...o)=>{n&&(M(e,...o),n=!1),setTimeout(()=>n=!0,t)}},d=e=>{for(let t in e)return!1;return!0},v=e=>0===e.length,B=(e,t)=>!(!a(t)||!(e in t)),D=(e,t=\"isVisible\")=>e.filter(e=>!B(t,e)||e[t]),F=e=>e.filter(e=>!n(e));export{P as debounce,D as filterByProperty,F as filterNullableValues,h as getValueByProperty,B as hasProperty,a as isAnyObject,l as isArray,p as isArrayBuffer,v as isArrayEmpty,i as isBigint,f as isBoolean,j as isDate,x as isError,T as isFunction,y as isMap,s as isNaN,t as isNull,n as isNullable,r as isNumber,u as isObject,d as isObjectEmpty,N as isPromise,A as isProxy,E as isRegExp,b as isSet,o as isString,c as isSymbol,e as isUndefined,m as isWeakMap,g as isWeakSet,O as mapRecord,M as runCallback,S as throttle};\n//# sourceMappingURL=index.mjs.map\n","import{isAxiosError as t}from\"axios\";const s=t=>t instanceof Error,e=(t,...s)=>{if(t instanceof Function)return t(...s)},r=t=>{for(let s in t)return!1;return!0},i=(t=\"?\",...s)=>{const e=(t&&(r=t,\"string\"==typeof r)?t:\"?\").toUpperCase();var r;const i=s.reduce((t,s,e,{length:r})=>{const i=e===r-1?[]:[\"|\"];return t.push(s,...i),t},s.length?[\"-\"]:[]);return[`[${e}]`,...i]};var n,a;!function(t){t.StartGroup=\"group\",t.EndGroup=\"groupEnd\",t.Default=\"log\"}(n||(n={})),function(t){t.Info=\"\u001b[36m%s\u001b[0m\",t.Success=\"\u001b[32m%s\u001b[0m\",t.Warning=\"\u001b[33m%s\u001b[0m\",t.Danger=\"\u001b[31m%s\u001b[0m\"}(a||(a={}));class o{static formatted={info:(...t)=>o.info(...i(...t)),success:(...t)=>o.success(...i(...t)),warning:(...t)=>o.warning(...i(...t)),danger:(...t)=>o.danger(...i(...t))};static#t(t,...s){console[t](...s)}static startGroup(t,s,...e){o.#t(n.StartGroup,...((t,...s)=>[\"%c%s\",t,...s])(`font-size: 16px;${s}`,...i(t,...e)))}static endGroup(){o.#t(n.EndGroup)}static info(...t){o.#t(n.Default,a.Info,...t)}static success(...t){o.#t(n.Default,a.Success,...t)}static warning(...t){o.#t(n.Default,a.Warning,...t)}static danger(...t){o.#t(n.Default,a.Danger,...t)}}class c{static ignore(t){}static create(t,s){return new Error(t,{cause:s})}static throw(t,s){throw c.create(t,s)}static capture(t,e){const{signal:r,message:i,payload:n,stack:a}=e,c=[i,s(t)?t.message:void 0].filter(Boolean);o.formatted.danger(r,...c,{error:t,payload:n,stack:a})}static forward(t,s){throw c.capture(t,s),t}static parse(e){const i=\"Some error!\",n=0,a={};switch(!0){case t(e):{const{status:t=n,data:s,config:o}=e.response??{},{message:c=i,errors:u=a}=s??{};return{message:c,status:t,errors:u,isExternal:r(u)}}case s(e):return{message:e.message,status:n,errors:a,isExternal:!0};default:return{message:i,status:n,errors:a,isExternal:!0}}}}class u{isDefaultPrevented=!1;constructor(){this.preventDefault=this.preventDefault.bind(this),this.overrideDefault=this.overrideDefault.bind(this)}preventDefault(){this.isDefaultPrevented=!0}overrideDefault(){this.isDefaultPrevented=!1}}class l{#s={};constructor(){this.emit=this.emit.bind(this),this.on=this.on.bind(this),this.off=this.off.bind(this),this.clear=this.clear.bind(this)}get eventNameList(){return Object.keys(this.#s)}emit(t,s,r){const i=this.#s[t];if(!i)return e(r);const{event:n,listenerList:a}=i;a.forEach(t=>e(t,{...n,...s})),!n.isDefaultPrevented&&e(r)}on(t,s){const e=this.#s[t];return e?e.listenerList.push(s):this.#s[t]={event:new u,listenerList:[s]},()=>this.off(t,s)}off(t,s){const e=this.#s[t];if(!e)return;const{event:r,listenerList:i}=e;this.#s[t]={event:r,listenerList:i.filter(t=>t!==s)},r.overrideDefault()}clear(t){delete this.#s[t]}}export{c as ErrorHandler,l as EventEmitter,o as Log};\n//# sourceMappingURL=index.mjs.map\n","enum PlatformOS {\n Ios = 'ios',\n Android = 'android'\n // Macos = 'macos',\n // Windows = 'windows',\n // Web = 'web',\n}\n\nexport { PlatformOS }\n","import { AppState, AppStateStatus, NativeEventSubscription } from 'react-native'\nimport { runCallback } from '@mediacubeco/javascript-base/utils'\nimport { BaseRecord, Callback } from '@mediacubeco/javascript-base/types'\nimport { Platform } from '../../helpers'\n\ntype AppStateAdditionalHandlerName = 'onFocus' | 'onBlur'\n\ntype AppStateHandlerName =\n | AppStateAdditionalHandlerName\n | 'onActive'\n | 'onInactive'\n | 'onBackground'\n | 'onExtension'\n | 'onUnknown'\n | 'onChange'\n\ntype AppStateHandlerCallback = Callback<[AppStateStatus]>\n\ntype AppStateHandlers = Partial<BaseRecord<AppStateHandlerCallback, AppStateHandlerName>>\n\ninterface HandleChangeAppStateConfig {\n state: AppStateStatus\n handlers: Omit<AppStateHandlers, AppStateAdditionalHandlerName>\n}\n\ntype HandleChangeAppState = (config: HandleChangeAppStateConfig) => void\n\ntype ListenAppState = (handlers: AppStateHandlers) => NativeEventSubscription\n\nenum AppStatus {\n Active = 'active',\n Inactive = 'inactive',\n Background = 'background',\n Extension = 'extension',\n Unknown = 'unknown'\n}\n\nconst handleChangeAppState: HandleChangeAppState = ({ state, handlers }) => {\n const { onActive, onInactive, onBackground, onExtension, onUnknown, onChange } = handlers ?? {}\n\n const handler = {\n [AppStatus.Active]: onActive,\n [AppStatus.Inactive]: onInactive,\n [AppStatus.Background]: onBackground,\n [AppStatus.Extension]: onExtension,\n [AppStatus.Unknown]: onUnknown\n }[state]\n\n runCallback(onChange, state)\n runCallback(handler, state)\n}\n\nconst listenAppState: ListenAppState = ({ onFocus, onBlur, ...handlers }) => {\n const listenerList: NativeEventSubscription[] = []\n\n if (Platform.isAndroid) {\n listenerList.push(\n AppState.addEventListener('focus', (state) => runCallback(onFocus, state)),\n AppState.addEventListener('blur', (state) => runCallback(onBlur, state))\n )\n }\n\n listenerList.push(\n AppState.addEventListener('change', (state) => handleChangeAppState({ state, handlers }))\n )\n\n return {\n remove() {\n listenerList.forEach((listener) => listener.remove())\n }\n }\n}\n\nexport { listenAppState }\nexport type { AppStateHandlers }\n","import { Platform as NativePlatform } from 'react-native'\nimport { PlatformOS } from './Platform.constants'\nimport { PlatformByData, PlatformRequiredOS } from './Platform.types'\n\n// Platform.Version\nclass Platform {\n static get OS() {\n return NativePlatform.OS\n }\n\n static get version() {\n return NativePlatform.Version\n }\n\n static get isIos() {\n return Platform.OS === 'ios'\n }\n\n static get isAndroid() {\n return Platform.OS === 'android'\n }\n\n // static get isMac() {\n // return Platform.OS === 'macos'\n // }\n\n // static get isWindows() {\n // return Platform.OS === 'windows'\n // }\n\n // static get isWeb() {\n // return Platform.OS === 'web'\n // }\n\n static by<Value>(data: PlatformByData<Value>, defaultOS: PlatformRequiredOS = PlatformOS.Ios) {\n return NativePlatform.select({ ...data, default: data[defaultOS] })\n }\n}\n\nexport default Platform\n","import { Keyboard, KeyboardEventListener, NativeEventSubscription } from 'react-native'\nimport {\n mapRecord,\n filterNullableValues,\n isNullable\n} from '@mediacubeco/javascript-base/utils'\nimport { BaseRecord, KeyOf } from '@mediacubeco/javascript-base/types'\n\nenum KeyboardEventName {\n onWillShow = 'keyboardWillShow',\n onDidShow = 'keyboardDidShow',\n onWillHide = 'keyboardWillHide',\n onDidHide = 'keyboardDidHide',\n onWillChangeFrame = 'keyboardWillChangeFrame',\n onDidChangeFrame = 'keyboardDidChangeFrame'\n}\n\ntype KeyboardHandlers = Partial<BaseRecord<KeyboardEventListener, KeyOf<typeof KeyboardEventName>>>\n\ntype ListenKeyboard = (handlers: KeyboardHandlers) => NativeEventSubscription\n\nconst listenKeyboard: ListenKeyboard = (handlers) => {\n const list = mapRecord(handlers, (key, handler) => {\n if (isNullable(handler)) return\n\n return Keyboard.addListener(KeyboardEventName[key], handler)\n })\n\n return {\n remove() {\n return filterNullableValues(Object.values(list)).map((unsubscribe) => unsubscribe.remove())\n }\n }\n}\n\nexport { listenKeyboard }\nexport type { KeyboardHandlers }\n"],"names":["e","t","n","o","r","i","s","Number","isNaN","f","c","a","u","l","p","y","b","m","g","j","x","E","N","T","some","Array","isArray","ArrayBuffer","Map","Set","Date","Error","A","Proxy","RegExp","Promise","Function","h","arguments","length","M","O","Object","entries","fromEntries","map","P","clearTimeout","setTimeout","S","d","v","B","D","filter","F","PlatformOS","AppStatus","StartGroup","EndGroup","Default","Info","Success","Warning","Danger","Platform","OS","NativePlatform","version","Version","isIos","isAndroid","by","data","defaultOS","Ios","select","default","listenAppState","onFocus","onBlur","handlers","listenerList","push","AppState","addEventListener","state","runCallback","handleChangeAppState","onActive","onInactive","onBackground","onExtension","onUnknown","onChange","handler","Active","Inactive","Background","Extension","Unknown","remove","forEach","listener","KeyboardEventName","listenKeyboard","list","mapRecord","key","isNullable","Keyboard","addListener","filterNullableValues","values","unsubscribe"],"mappings":"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","x_google_ignoreList":[0,1]}