@mediacubeco/react-native-base 0.1.6 → 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=>{for(let e in t)return!1;return!0},o=(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 c,u,d;(d=c||(c={})).StartGroup="group",d.EndGroup="groupEnd",d.Default="log",function(t){t.Info="%s",t.Success="%s",t.Warning="%s",t.Danger="%s"}(u||(u={}));class l{static formatted={info:(...t)=>l.info(...o(...t)),success:(...t)=>l.success(...o(...t)),warning:(...t)=>l.warning(...o(...t)),danger:(...t)=>l.danger(...o(...t))};static#t(t,...e){console[t](...e)}static startGroup(t,e,...s){l.#t(c.StartGroup,...((t,...e)=>["%c%s",t,...e])(`font-size: 16px;${e}`,...o(t,...s)))}static endGroup(){l.#t(c.EndGroup)}static info(...t){l.#t(c.Default,u.Info,...t)}static success(...t){l.#t(c.Default,u.Success,...t)}static warning(...t){l.#t(c.Default,u.Warning,...t)}static danger(...t){l.#t(c.Default,u.Danger,...t)}}class f{static ignore(t){}static create(t,e){return new Error(t,{cause:e})}static throw(t,e){throw f.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);l.formatted.danger(s,...o,{error:t,payload:i,stack:a})}static forward(t,e){throw f.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:o}=e.response??{},{message:c=s,errors:u=i}=n??{};return{message:c,status:t,errors:u,isExternal:a(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 h{static get windowWidth(){return s.Dimensions.get("window").width}static get windowHeight(){return s.Dimensions.get("window").height}static get statusBarWidth(){return h.windowWidth}static get statusBarHeight(){return s.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}}const g=(t,...e)=>{if((t=>t instanceof Function)(t))return t(...e)};var p,m,w;!function(t){t.Active="active",t.Inactive="inactive",t.Background="background",t.Extension="extension",t.Unknown="unknown"}(p||(p={})),function(t){t.onWillShow="keyboardWillShow",t.onDidShow="keyboardDidShow",t.onWillHide="keyboardWillHide",t.onDidHide="keyboardDidHide",t.onWillChangeFrame="keyboardWillChangeFrame",t.onDidChangeFrame="keyboardDidChangeFrame"}(m||(m={}));class v{isDefaultPrevented=!1;constructor(){this.preventDefault=this.preventDefault.bind(this),this.overrideDefault=this.overrideDefault.bind(this)}preventDefault(){this.isDefaultPrevented=!0}overrideDefault(){this.isDefaultPrevented=!1}}exports.PlatformOS=void 0,(w=exports.PlatformOS||(exports.PlatformOS={})).Ios="ios",w.Android="android";class b{static get OS(){return s.Platform.OS}static get version(){return s.Platform.Version}static get isIos(){return"ios"===b.OS}static get isAndroid(){return"android"===b.OS}static by(t,e=exports.PlatformOS.Ios){return s.Platform.select({...t,default:t[e]})}}exports.Clipboard=class{static copy(t){return l.formatted.info("copy",t),i.default.setString(t.toString())}static async paste(){const t=await i.default.getString();return l.formatted.info("paste",t),t}},exports.Dimensions=h,exports.ErrorHandler=f,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 g(s);const{event:i,listenerList:n}=r;n.forEach(t=>g(t,{...i,...e})),!i.isDefaultPrevented&&g(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:i}=s;this.#e[t]={event:r,listenerList:i.filter(t=>t!==e)},r.overrideDefault()}clear(t){delete this.#e[t]}},exports.Log=l,exports.Platform=b;
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 { Noop, Callback, Nullable, 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
 
@@ -24,79 +24,6 @@ declare class Dimensions {
24
24
  static byRatio(value: number): number;
25
25
  }
26
26
 
27
- declare class Event {
28
- isDefaultPrevented: boolean;
29
- constructor();
30
- preventDefault(): void;
31
- overrideDefault(): void;
32
- }
33
-
34
- type EventEmitterDefaultAction = Noop;
35
- type EventEmitterListener<Params> = Callback<[Event & Params]>;
36
-
37
- /**
38
- * ### Create instance
39
- * **Returns ```EventEmitter```**
40
- * ```
41
- * const emitter = new EventEmitter()
42
- * const testEmitter = new EventEmitter<'test'>()
43
- * const testEmitterWithParam = new EventEmitter<'test', { param: 'param' }>()
44
- * ```
45
- *
46
- * ---
47
- *
48
- * ### EventEmitter.emit
49
- * **Returns ```void```**
50
- * ```
51
- * emitter.emit('test')
52
- * emitter.emit('test', { param: 'param' })
53
- * emitter.emit('test', undefined, () => 'default')
54
- * emitter.emit('test', { param: 'param' }, () => 'default')
55
- * ```
56
- *
57
- * ---
58
- *
59
- * ### EventEmitter.on
60
- * **Returns ```Noop```**
61
- * ```
62
- * const listener = () => null
63
- * emitter.on('test', listener)
64
- *
65
- * emitter.on('test', () => null)
66
- * emitter.on('test', (event) => null)
67
- * emitter.on('test', ({ param }) => null)
68
- * ```
69
- *
70
- * ---
71
- *
72
- * ### EventEmitter.off
73
- * **Returns ```void```**
74
- * ```
75
- * const listener = () => 'event'
76
- * emitter.off(listener)
77
- *
78
- * const unsubscribe = emitter.on('test', () => 'event')
79
- * unsubscribe()
80
- * ```
81
- *
82
- * ---
83
- *
84
- * ### EventEmitter.clear
85
- * **Returns ```void```**
86
- * ```
87
- * EventEmitter.clear('clear')
88
- * ```
89
- */
90
- declare class EventEmitter<EventName extends string = string, EventParam extends Nullable<object> = undefined> {
91
- #private;
92
- constructor();
93
- get eventNameList(): EventName[];
94
- emit(name: EventName, param?: EventParam, defaultAction?: EventEmitterDefaultAction): void;
95
- on(name: EventName, listener: EventEmitterListener<EventParam>): () => void;
96
- off(name: EventName, listener: EventEmitterListener<EventParam>): void;
97
- clear(name: EventName): void;
98
- }
99
-
100
27
  declare enum PlatformOS {
101
28
  Ios = "ios",
102
29
  Android = "android"
@@ -110,8 +37,8 @@ declare class Platform {
110
37
  static get version(): string | number;
111
38
  static get isIos(): boolean;
112
39
  static get isAndroid(): boolean;
113
- static by<Value>(data: PlatformByData<Value>, defaultOS?: PlatformRequiredOS): Value;
40
+ static get hasLiquidGlass(): boolean;
41
+ static by<Value>(data: PlatformByData<Value>, defaultOS?: PlatformRequiredOS): unknown;
114
42
  }
115
43
 
116
- export { Clipboard, Dimensions, EventEmitter, Platform, PlatformOS };
117
- //# sourceMappingURL=index.d.ts.map
44
+ export { Clipboard, Dimensions, Platform, PlatformOS };
@@ -1,2 +1 @@
1
- import{isAxiosError as t}from"axios";import e from"@react-native-clipboard/clipboard";import{Dimensions as s,StatusBar as i,Platform as r}from"react-native";const n=t=>t instanceof Error,a=t=>{for(let e in t)return!1;return!0},o=(t="?",...e)=>{const s=(t&&(i=t,"string"==typeof i)?t:"?").toUpperCase();var i;const r=e.reduce((t,e,s,{length:i})=>{const r=s===i-1?[]:["|"];return t.push(e,...r),t},e.length?["-"]:[]);return[`[${s}]`,...r]};var c,u,d;(d=c||(c={})).StartGroup="group",d.EndGroup="groupEnd",d.Default="log",function(t){t.Info="%s",t.Success="%s",t.Warning="%s",t.Danger="%s"}(u||(u={}));class l{static formatted={info:(...t)=>l.info(...o(...t)),success:(...t)=>l.success(...o(...t)),warning:(...t)=>l.warning(...o(...t)),danger:(...t)=>l.danger(...o(...t))};static#t(t,...e){console[t](...e)}static startGroup(t,e,...s){l.#t(c.StartGroup,...((t,...e)=>["%c%s",t,...e])(`font-size: 16px;${e}`,...o(t,...s)))}static endGroup(){l.#t(c.EndGroup)}static info(...t){l.#t(c.Default,u.Info,...t)}static success(...t){l.#t(c.Default,u.Success,...t)}static warning(...t){l.#t(c.Default,u.Warning,...t)}static danger(...t){l.#t(c.Default,u.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:i,payload:r,stack:a}=e,o=[i,n(t)?t.message:void 0].filter(Boolean);l.formatted.danger(s,...o,{error:t,payload:r,stack:a})}static forward(t,e){throw h.capture(t,e),t}static parse(e){const s="Some error!",i=0,r={};switch(!0){case t(e):{const{status:t=i,data:n,config:o}=e.response??{},{message:c=s,errors:u=r}=n??{};return{message:c,status:t,errors:u,isExternal:a(u)}}case n(e):return{message:e.message,status:i,errors:r,isExternal:!0};default:return{message:s,status:i,errors:r,isExternal:!0}}}}class f{static copy(t){return l.formatted.info("copy",t),e.setString(t.toString())}static async paste(){const t=await e.getString();return l.formatted.info("paste",t),t}}class g{static get windowWidth(){return s.get("window").width}static get windowHeight(){return s.get("window").height}static get statusBarWidth(){return g.windowWidth}static get statusBarHeight(){return i.currentHeight??0}static get ratio(){const t=g.windowWidth/375,e=g.windowHeight/812;return Math.min(t,e)}static byWindowWidth(t){return g.windowWidth*t}static byWindowHeight(t){return g.windowHeight*t}static byRatio(t){return g.ratio*t}}const p=(t,...e)=>{if((t=>t instanceof Function)(t))return t(...e)};var w,m,b;!function(t){t.Active="active",t.Inactive="inactive",t.Background="background",t.Extension="extension",t.Unknown="unknown"}(w||(w={})),function(t){t.onWillShow="keyboardWillShow",t.onDidShow="keyboardDidShow",t.onWillHide="keyboardWillHide",t.onDidHide="keyboardDidHide",t.onWillChangeFrame="keyboardWillChangeFrame",t.onDidChangeFrame="keyboardDidChangeFrame"}(m||(m={}));class v{isDefaultPrevented=!1;constructor(){this.preventDefault=this.preventDefault.bind(this),this.overrideDefault=this.overrideDefault.bind(this)}preventDefault(){this.isDefaultPrevented=!0}overrideDefault(){this.isDefaultPrevented=!1}}class D{#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 i=this.#e[t];if(!i)return p(s);const{event:r,listenerList:n}=i;n.forEach(t=>p(t,{...r,...e})),!r.isDefaultPrevented&&p(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:i,listenerList:r}=s;this.#e[t]={event:i,listenerList:r.filter(t=>t!==e)},i.overrideDefault()}clear(t){delete this.#e[t]}}!function(t){t.Ios="ios",t.Android="android"}(b||(b={}));class y{static get OS(){return r.OS}static get version(){return r.Version}static get isIos(){return"ios"===y.OS}static get isAndroid(){return"android"===y.OS}static by(t,e=b.Ios){return r.select({...t,default:t[e]})}}export{f as Clipboard,g as Dimensions,h as ErrorHandler,D as EventEmitter,l as Log,y as Platform,b 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 i=n(e);const o=t=>t instanceof Error,a=t=>{for(let e in t)return!1;return!0},u=(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 c,l;!function(t){t.StartGroup="group",t.EndGroup="groupEnd",t.Default="log"}(c||(c={})),function(t){t.Info="%s",t.Success="%s",t.Warning="%s",t.Danger="%s"}(l||(l={}));let p=class t{static formatted={info:(...e)=>t.info(...u(...e)),success:(...e)=>t.success(...u(...e)),warning:(...e)=>t.warning(...u(...e)),danger:(...e)=>t.danger(...u(...e))};static#t(t,...e){console[t](...e)}static startGroup(e,r,...s){t.#t(c.StartGroup,...((t,...e)=>["%c%s",t,...e])(`font-size: 16px;${r}`,...u(e,...s)))}static endGroup(){t.#t(c.EndGroup)}static info(...e){t.#t(c.Default,l.Info,...e)}static success(...e){t.#t(c.Default,l.Success,...e)}static warning(...e){t.#t(c.Default,l.Warning,...e)}static danger(...e){t.#t(c.Default,l.Danger,...e)}};class d{static get windowWidth(){return r.Dimensions.get("window").width}static get windowHeight(){return r.Dimensions.get("window").height}static get statusBarWidth(){return d.windowWidth}static get statusBarHeight(){return r.StatusBar.currentHeight??0}static get ratio(){const t=d.windowWidth/375,e=d.windowHeight/812;return Math.min(t,e)}static byWindowWidth(t){return d.windowWidth*t}static byWindowHeight(t){return d.windowHeight*t}static byRatio(t){return d.ratio*t}}const f=t=>void 0===t,h=t=>null===t,g=t=>f(t)||h(t),m=t=>"object"==typeof t,x=t=>Array.isArray(t),b=t=>t instanceof ArrayBuffer,w=t=>t instanceof Map,y=t=>t instanceof Set,v=t=>t instanceof Map,S=t=>t instanceof Set,E=t=>t instanceof Date,D=t=>t instanceof Error,k=t=>t instanceof RegExp,A=t=>t instanceof Promise,L=t=>t instanceof Function;const W=(t,...e)=>{if(L(t))return t(...e)},P=(t,e)=>{const r=Object.entries(t);return Object.fromEntries(r.map(([t,r],s,n)=>[t,e(t,r,s,n)]))},O=(t,e)=>!(!m(e)||!(t in e)),B=t=>t.filter(t=>!g(t));var C;!function(t){t.Active="active",t.Inactive="inactive",t.Background="background",t.Extension="extension",t.Unknown="unknown"}(C||(C={}));const I=({onFocus:t,onBlur:e,...s})=>{const n=[];return U.isAndroid&&n.push(r.AppState.addEventListener("focus",e=>W(t,e)),r.AppState.addEventListener("blur",t=>W(e,t))),n.push(r.AppState.addEventListener("change",t=>(({state:t,handlers:e})=>{const{onActive:r,onInactive:s,onBackground:n,onExtension:i,onUnknown:o,onChange:a}=e??{},u={[C.Active]:r,[C.Inactive]:s,[C.Background]:n,[C.Extension]:i,[C.Unknown]:o}[t];W(a,t),W(u,t)})({state:t,handlers:s}))),{remove(){n.forEach(t=>t.remove())}}};var N;!function(t){t.onWillShow="keyboardWillShow",t.onDidShow="keyboardDidShow",t.onWillHide="keyboardWillHide",t.onDidHide="keyboardDidHide",t.onWillChangeFrame="keyboardWillChangeFrame",t.onDidChangeFrame="keyboardDidChangeFrame"}(N||(N={}));const R=t=>{const e=P(t,(t,e)=>{if(!g(e))return r.Keyboard.addListener(N[t],e)});return{remove:()=>B(Object.values(e)).map(t=>t.remove())}};class H{isDefaultPrevented=!1;constructor(){this.preventDefault=this.preventDefault.bind(this),this.overrideDefault=this.overrideDefault.bind(this)}preventDefault(){this.isDefaultPrevented=!0}overrideDefault(){this.isDefaultPrevented=!1}}var M;exports.PlatformOS=void 0,(M=exports.PlatformOS||(exports.PlatformOS={})).Ios="ios",M.Android="android";class U{static get OS(){return r.Platform.OS}static get version(){return r.Platform.Version}static get isIos(){return"ios"===U.OS}static get isAndroid(){return"android"===U.OS}static by(t,e=exports.PlatformOS.Ios){return r.Platform.select({...t,default:t[e]})}}const j={top:0,left:0,width:0,height:0},F={top:null,left:null,width:null,height:null};const T={x:0,y:0,width:0,height:0,pageX:0,pageY:0},G={left:0,top:0,width:0,height:0},V={x:0,y:0,width:0,height:0};exports.Clipboard=class{static copy(t){return p.formatted.info("copy",t),i.default.setString(t.toString())}static async paste(){const t=await i.default.getString();return p.formatted.info("paste",t),t}},exports.DEFAULT_LAYOUT=j,exports.DEFAULT_NULLABLE_LAYOUT=F,exports.Dimensions=d,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:i}=e,a=[s,o(t)?t.message:void 0].filter(Boolean);p.formatted.danger(r,...a,{error:t,payload:n,stack:i})}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:i,config:o}=e.response??{},{message:u=r,errors:c=n}=i??{};return{message:u,status:t,errors:c,isExternal:a(c)}}case o(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 W(r);const{event:n,listenerList:i}=s;i.forEach(t=>W(t,{...n,...e})),!n.isDefaultPrevented&&W(r)}on(t,e){const r=this.#e[t];return r?r.listenerList.push(e):this.#e[t]={event:new H,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=p,exports.Platform=U,exports.debounce=(t,e)=>{let r;return(...s)=>{r&&clearTimeout(r),r=setTimeout(()=>W(t,...s),e)}},exports.filterByProperty=(t,e="isVisible")=>t.filter(t=>!O(e,t)||t[e]),exports.filterNullableValues=B,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=O,exports.isAnyObject=m,exports.isArray=x,exports.isArrayBuffer=b,exports.isArrayEmpty=t=>0===t.length,exports.isBigint=t=>"bigint"==typeof t,exports.isBoolean=t=>"boolean"==typeof t,exports.isDate=E,exports.isError=D,exports.isFunction=L,exports.isMap=w,exports.isNaN=t=>Number.isNaN(t),exports.isNull=h,exports.isNullable=g,exports.isNumber=t=>"number"==typeof t,exports.isObject=t=>{const e=[x,b,w,y,v,S,E,D,k,A,L].some(e=>e(t));return!!t&&"object"==typeof t&&!e},exports.isObjectEmpty=t=>{for(let e in t)return!1;return!0},exports.isPromise=A,exports.isProxy=t=>t instanceof Proxy,exports.isRegExp=k,exports.isSet=y,exports.isString=t=>"string"==typeof t,exports.isSymbol=t=>"symbol"==typeof t,exports.isUndefined=f,exports.isWeakMap=v,exports.isWeakSet=S,exports.listenAppState=I,exports.listenKeyboard=R,exports.mapRecord=P,exports.runCallback=W,exports.throttle=(t,e)=>{let r=!0;return(...s)=>{r&&(W(t,...s),r=!1),setTimeout(()=>r=!0,e)}},exports.useAppState=t=>{s.useEffect(()=>{const e=I(t);return()=>e.remove()},[t])},exports.useKeyboard=t=>{s.useEffect(()=>{const e=R(t);return()=>{e.remove()}},[t])},exports.useLayout=function({onLayout:t,isNullable:e}={isNullable:!1}){const[r,n]=s.useState(e?F:j),i=s.useCallback(e=>{W(t,e);const{layout:r}=e.nativeEvent,{y:s,x:i,width:o,height:a}=r;n({top:s,left:i,width:o,height:a})},[t]);return[r,i]},exports.useMeasures=()=>{const t=s.useRef(T),e=s.useRef(G),r=s.useRef(V),n=s.useCallback(async(t,e,r)=>new Promise(s=>{g(t)?s(e):r(t,s)}),[]),i=s.useCallback(e=>n(e,T,(e,r)=>{e.measure((e=0,s=0,n=0,i=0,o=0,a=0)=>{t.current={x:e,y:s,width:n,height:i,pageX:o,pageY:a},r(t.current)})}),[]),o=s.useCallback((t,r)=>n(t,G,(t,s)=>{t.measureLayout(r,(t=0,r=0,n=0,i=0)=>{e.current={left:t,top:r,width:n,height:i},s(e.current)})}),[]),a=s.useCallback(t=>n(t,V,(t,e)=>{t.measureInWindow((t=0,s=0,n=0,i=0)=>{r.current={x:t,y:s,width:n,height:i},e(r.current)})}),[]);return{measuresRef:t,measuresInContainerRef:e,measuresInWindowRef:r,calculateMeasures:i,calculateMeasuresInContainer:o,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 { Noop, Callback, Nullable, Include, BaseRecord, KeyOf } 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
 
@@ -29,79 +30,6 @@ declare class Dimensions {
29
30
  static byRatio(value: number): number;
30
31
  }
31
32
 
32
- declare class Event {
33
- isDefaultPrevented: boolean;
34
- constructor();
35
- preventDefault(): void;
36
- overrideDefault(): void;
37
- }
38
-
39
- type EventEmitterDefaultAction = Noop;
40
- type EventEmitterListener<Params> = Callback<[Event & Params]>;
41
-
42
- /**
43
- * ### Create instance
44
- * **Returns ```EventEmitter```**
45
- * ```
46
- * const emitter = new EventEmitter()
47
- * const testEmitter = new EventEmitter<'test'>()
48
- * const testEmitterWithParam = new EventEmitter<'test', { param: 'param' }>()
49
- * ```
50
- *
51
- * ---
52
- *
53
- * ### EventEmitter.emit
54
- * **Returns ```void```**
55
- * ```
56
- * emitter.emit('test')
57
- * emitter.emit('test', { param: 'param' })
58
- * emitter.emit('test', undefined, () => 'default')
59
- * emitter.emit('test', { param: 'param' }, () => 'default')
60
- * ```
61
- *
62
- * ---
63
- *
64
- * ### EventEmitter.on
65
- * **Returns ```Noop```**
66
- * ```
67
- * const listener = () => null
68
- * emitter.on('test', listener)
69
- *
70
- * emitter.on('test', () => null)
71
- * emitter.on('test', (event) => null)
72
- * emitter.on('test', ({ param }) => null)
73
- * ```
74
- *
75
- * ---
76
- *
77
- * ### EventEmitter.off
78
- * **Returns ```void```**
79
- * ```
80
- * const listener = () => 'event'
81
- * emitter.off(listener)
82
- *
83
- * const unsubscribe = emitter.on('test', () => 'event')
84
- * unsubscribe()
85
- * ```
86
- *
87
- * ---
88
- *
89
- * ### EventEmitter.clear
90
- * **Returns ```void```**
91
- * ```
92
- * EventEmitter.clear('clear')
93
- * ```
94
- */
95
- declare class EventEmitter<EventName extends string = string, EventParam extends Nullable<object> = undefined> {
96
- #private;
97
- constructor();
98
- get eventNameList(): EventName[];
99
- emit(name: EventName, param?: EventParam, defaultAction?: EventEmitterDefaultAction): void;
100
- on(name: EventName, listener: EventEmitterListener<EventParam>): () => void;
101
- off(name: EventName, listener: EventEmitterListener<EventParam>): void;
102
- clear(name: EventName): void;
103
- }
104
-
105
33
  declare enum PlatformOS {
106
34
  Ios = "ios",
107
35
  Android = "android"
@@ -115,7 +43,8 @@ declare class Platform {
115
43
  static get version(): string | number;
116
44
  static get isIos(): boolean;
117
45
  static get isAndroid(): boolean;
118
- static by<Value>(data: PlatformByData<Value>, defaultOS?: PlatformRequiredOS): Value;
46
+ static get hasLiquidGlass(): boolean;
47
+ static by<Value>(data: PlatformByData<Value>, defaultOS?: PlatformRequiredOS): unknown;
119
48
  }
120
49
 
121
50
  type AppStateAdditionalHandlerName = 'onFocus' | 'onBlur';
@@ -213,11 +142,10 @@ declare const useMeasures: () => {
213
142
  };
214
143
 
215
144
  declare const getResponder: <ScrolledCurrent extends Nullable<ScrollView | FlatList | SectionList>, Current extends Nullable<View>>(scrolledRef: RefObject<ScrolledCurrent>) => {
216
- responder: react_native.ScrollResponderMixin | react.JSX.Element | null;
145
+ responder: any;
217
146
  inner: Current;
218
147
  outer: Current;
219
148
  };
220
149
 
221
- export { Clipboard, DEFAULT_LAYOUT, DEFAULT_NULLABLE_LAYOUT, Dimensions, EventEmitter, Platform, PlatformOS, getResponder, listenAppState, listenKeyboard, useAppState, useKeyboard, useLayout, useMeasures };
150
+ export { Clipboard, DEFAULT_LAYOUT, DEFAULT_NULLABLE_LAYOUT, Dimensions, Platform, PlatformOS, getResponder, listenAppState, listenKeyboard, useAppState, useKeyboard, useLayout, useMeasures };
222
151
  export type { AppStateHandlers, KeyboardHandlers, Layout, Measures, MeasuresInContainer, MeasuresInWindow, NullableLayout };
223
- //# 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,AppState as n,Keyboard as i,Platform 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=>{for(let e in t)return!1;return!0},h=(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 g,p;!function(t){t.StartGroup="group",t.EndGroup="groupEnd",t.Default="log"}(g||(g={})),function(t){t.Info="%s",t.Success="%s",t.Warning="%s",t.Danger="%s"}(p||(p={}));let m=class t{static formatted={info:(...e)=>t.info(...h(...e)),success:(...e)=>t.success(...h(...e)),warning:(...e)=>t.warning(...h(...e)),danger:(...e)=>t.danger(...h(...e))};static#t(t,...e){console[t](...e)}static startGroup(e,s,...r){t.#t(g.StartGroup,...((t,...e)=>["%c%s",t,...e])(`font-size: 16px;${s}`,...h(e,...r)))}static endGroup(){t.#t(g.EndGroup)}static info(...e){t.#t(g.Default,p.Info,...e)}static success(...e){t.#t(g.Default,p.Success,...e)}static warning(...e){t.#t(g.Default,p.Warning,...e)}static danger(...e){t.#t(g.Default,p.Danger,...e)}},w=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);m.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:f(c)}}case d(e):return{message:e.message,status:r,errors:n,isExternal:!0};default:return{message:s,status:r,errors:n,isExternal:!0}}}};class b{static copy(t){return m.formatted.info("copy",t),e.setString(t.toString())}static async paste(){const t=await e.getString();return m.formatted.info("paste",t),t}}class y{static get windowWidth(){return s.get("window").width}static get windowHeight(){return s.get("window").height}static get statusBarWidth(){return y.windowWidth}static get statusBarHeight(){return r.currentHeight??0}static get ratio(){const t=y.windowWidth/375,e=y.windowHeight/812;return Math.min(t,e)}static byWindowWidth(t){return y.windowWidth*t}static byWindowHeight(t){return y.windowHeight*t}static byRatio(t){return y.ratio*t}}const v=t=>void 0===t,D=t=>null===t,E=t=>v(t)||D(t),S=t=>"string"==typeof t,W=t=>"number"==typeof t,k=t=>"bigint"==typeof t,x=t=>Number.isNaN(t),I=t=>"boolean"==typeof t,A=t=>"symbol"==typeof t,B=t=>"object"==typeof t,L=t=>{const e=[N,P,H,O,R,j,C,M,G,U,V].some(e=>e(t));return!!t&&"object"==typeof t&&!e},N=t=>Array.isArray(t),P=t=>t instanceof ArrayBuffer,H=t=>t instanceof Map,O=t=>t instanceof Set,R=t=>t instanceof Map,j=t=>t instanceof Set,C=t=>t instanceof Date,M=t=>t instanceof Error,F=t=>t instanceof Proxy,G=t=>t instanceof RegExp,U=t=>t instanceof Promise,V=t=>t instanceof Function;function T(t,e,s){return 2===arguments.length?e[t]:e[t]??s}const X=(t,...e)=>{if(V(t))return t(...e)},Y=(t,e)=>{const s=Object.entries(t);return Object.fromEntries(s.map(([t,s],r,n)=>[t,e(t,s,r,n)]))},$=(t,e)=>{let s;return(...r)=>{s&&clearTimeout(s),s=setTimeout(()=>X(t,...r),e)}},z=(t,e)=>{let s=!0;return(...r)=>{s&&(X(t,...r),s=!1),setTimeout(()=>s=!0,e)}},q=t=>{for(let e in t)return!1;return!0},J=t=>0===t.length,K=(t,e)=>!(!B(e)||!(t in e)),Q=(t,e="isVisible")=>t.filter(t=>!K(e,t)||t[e]),Z=t=>t.filter(t=>!E(t));var _;!function(t){t.Active="active",t.Inactive="inactive",t.Background="background",t.Extension="extension",t.Unknown="unknown"}(_||(_={}));const tt=({onFocus:t,onBlur:e,...s})=>{const r=[];return at.isAndroid&&r.push(n.addEventListener("focus",e=>X(t,e)),n.addEventListener("blur",t=>X(e,t))),r.push(n.addEventListener("change",t=>(({state:t,handlers:e})=>{const{onActive:s,onInactive:r,onBackground:n,onExtension:i,onUnknown:a,onChange:o}=e??{},c={[_.Active]:s,[_.Inactive]:r,[_.Background]:n,[_.Extension]:i,[_.Unknown]:a}[t];X(o,t),X(c,t)})({state:t,handlers:s}))),{remove(){r.forEach(t=>t.remove())}}};var et;!function(t){t.onWillShow="keyboardWillShow",t.onDidShow="keyboardDidShow",t.onWillHide="keyboardWillHide",t.onDidHide="keyboardDidHide",t.onWillChangeFrame="keyboardWillChangeFrame",t.onDidChangeFrame="keyboardDidChangeFrame"}(et||(et={}));const st=t=>{const e=Y(t,(t,e)=>{if(!E(e))return i.addListener(et[t],e)});return{remove:()=>Z(Object.values(e)).map(t=>t.remove())}};class rt{isDefaultPrevented=!1;constructor(){this.preventDefault=this.preventDefault.bind(this),this.overrideDefault=this.overrideDefault.bind(this)}preventDefault(){this.isDefaultPrevented=!0}overrideDefault(){this.isDefaultPrevented=!1}}class nt{#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 X(s);const{event:n,listenerList:i}=r;i.forEach(t=>X(t,{...n,...e})),!n.isDefaultPrevented&&X(s)}on(t,e){const s=this.#e[t];return s?s.listenerList.push(e):this.#e[t]={event:new rt,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]}}var it;!function(t){t.Ios="ios",t.Android="android"}(it||(it={}));class at{static get OS(){return a.OS}static get version(){return a.Version}static get isIos(){return"ios"===at.OS}static get isAndroid(){return"android"===at.OS}static by(t,e=it.Ios){return a.select({...t,default:t[e]})}}const ot=t=>{o(()=>{const e=tt(t);return()=>e.remove()},[t])},ct=t=>{o(()=>{const e=st(t);return()=>{e.remove()}},[t])},ut={top:0,left:0,width:0,height:0},lt={top:null,left:null,width:null,height:null};function dt({onLayout:t,isNullable:e}={isNullable:!1}){const[s,r]=c(e?lt:ut),n=u(e=>{X(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 ft={x:0,y:0,width:0,height:0,pageX:0,pageY:0},ht={left:0,top:0,width:0,height:0},gt={x:0,y:0,width:0,height:0},pt=()=>{const t=l(ft),e=l(ht),s=l(gt),r=u(async(t,e,s)=>new Promise(r=>{E(t)?r(e):s(t,r)}),[]),n=u(e=>r(e,ft,(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,ht,(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,gt,(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}},mt=t=>{const e=t.current?.getScrollResponder()??null,s=e?.getInnerViewRef?.()??null,r=e?.getNativeScrollRef?.()??null;return{responder:e,inner:s,outer:r}};export{b as Clipboard,ut as DEFAULT_LAYOUT,lt as DEFAULT_NULLABLE_LAYOUT,y as Dimensions,w as ErrorHandler,nt as EventEmitter,m as Log,at as Platform,it as PlatformOS,$ as debounce,Q as filterByProperty,Z as filterNullableValues,mt as getResponder,T as getValueByProperty,K as hasProperty,B as isAnyObject,N as isArray,P as isArrayBuffer,J as isArrayEmpty,k as isBigint,I as isBoolean,C as isDate,M as isError,V as isFunction,H as isMap,x as isNaN,D as isNull,E as isNullable,W as isNumber,L as isObject,q as isObjectEmpty,U as isPromise,F as isProxy,G as isRegExp,O as isSet,S as isString,A as isSymbol,v as isUndefined,R as isWeakMap,j as isWeakSet,tt as listenAppState,st as listenKeyboard,Y as mapRecord,X as runCallback,z as throttle,ot as useAppState,ct as useKeyboard,dt 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.6",
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.2"
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
+ }