react-crud-mobile 1.3.556 → 1.3.558

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 +1 @@
1
- {"version":3,"sources":["../src/elements/UIElement.tsx","../src/elements/UIChildren.tsx","../src/elements/tabs/ElTabs.tsx","../src/elements/charts/ElChart.tsx","../src/elements/core/UIAutoComplete.tsx","../src/elements/UIComplete.tsx","../src/elements/core/UILink.tsx","../src/elements/core/UIIcon.tsx","../src/elements/core/UIButton.tsx","../src/elements/core/LoadingIcon.tsx","../src/elements/core/UISelect.tsx","../src/elements/core/UISwitch.tsx","../src/elements/core/UISlider.tsx","../src/elements/core/UIOption.tsx","../src/elements/core/UIRadio.tsx","../src/elements/core/UIInput.tsx","../src/elements/core/UIList.tsx","../src/elements/core/UIListData.tsx","../src/elements/core/UIListRow.tsx","../src/hooks/useIsVisible.ts","../src/elements/core/UIToggle.tsx","../src/elements/core/UIQuantity.tsx","../src/elements/core/UIModal.tsx","../src/elements/core/UIToast.tsx","../src/elements/core/UIView.tsx","../src/elements/core/UIHeader.tsx","../src/elements/core/UIOrder.tsx","../src/elements/core/UIInclude.tsx","../src/elements/core/SafeView.tsx","../src/elements/UI.tsx"],"sourcesContent":["import React, { createContext, useContext, useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport UIChildren from './UIChildren';\nimport ElTabs from './tabs/ElTabs';\nimport ElChart from './charts/ElChart';\nimport UIComplete from './UIComplete';\nimport {\n Crud,\n HtmlUtils,\n ScopeUtils,\n Utils,\n ElementType,\n MethodType,\n ActionType,\n ComponentUtils,\n CrudUtils,\n ViewUtils,\n Scope,\n} from 'react-crud-utils';\nimport UILink from './core/UILink';\nimport UIIcon from './core/UIIcon';\nimport UIButton from './core/UIButton';\nimport UISelect from './core/UISelect';\nimport UISwitch from './core/UISwitch';\nimport UISlider from './core/UISlider';\nimport UIOption from './core/UIOption';\nimport UIRadio from './core/UIRadio';\nimport UIInput from './core/UIInput';\nimport { Alert, Image, Linking, StyleSheet, Text, TouchableHighlight, View } from 'react-native';\nimport UIList from './core/UIList';\nimport UIToggle from './core/UIToggle';\nimport UIQuantity from './core/UIQuantity';\nimport UIModal from './core/UIModal';\nimport { Ionicons } from '@expo/vector-icons';\nimport UIView from './core/UIView';\nimport Toast from 'react-native-toast-message';\nimport UIOrder from './core/UIOrder';\n\nconst CrudContext = createContext<any>({});\n\nexport default function UIElement(props: ElementType) {\n const ctx = useContext(CrudContext);\n const theme = Utils.nvl(props.theme, ctx?.theme);\n\n let crud: Crud = Utils.nvl(props.crud, ctx?.crud);\n let [scope] = useState<Scope>(ScopeUtils.create({ crud, ...props, theme }));\n let [index, setIndex] = useState(0);\n let [error, setError]: string | any = useState(null);\n\n scope.compile(props);\n\n crud = scope.crud;\n\n let options: any = scope.getOptions();\n\n let original = scope.original;\n let ref = useRef(null);\n\n scope.update = () => {\n setIndex(++index);\n };\n\n scope.updateElement = () => {\n setIndex(++index);\n };\n\n scope.toast = (message: string, type = 'info', args?: any) => {\n Toast.show({\n type, // 'success' | 'error' | 'info'\n text1: message,\n position: 'bottom', // 'top' é outra opção\n visibilityTime: 3000, // tempo que fica visível em ms\n ...args,\n });\n };\n\n scope.prompt = (args: MethodType) => {\n let event = args.event as ActionType;\n\n if (event) {\n let message = 'Você tem certeza que deseja continuar?';\n let title = 'Atenção';\n let prompt = event.prompt;\n\n if (typeof prompt === 'string') {\n message = prompt;\n }\n\n if (typeof prompt === 'object') {\n message = Utils.nvl(prompt.message, message);\n title = Utils.nvl(prompt.title, title);\n }\n\n Alert.alert(\n title,\n message,\n [\n {\n text: 'Cancelar',\n style: 'cancel',\n },\n {\n text: 'Confirmar',\n onPress: () => scope.execute(args),\n },\n ],\n { cancelable: false },\n );\n }\n };\n const Custom = () => {\n let c: any = original.custom;\n\n if (c) {\n if (typeof c === 'string') {\n return <UIElement element={{ value: c, type: 'dummy' }} crud={crud}></UIElement>;\n }\n\n return <UIElement type={c.type} tag={c.type} {...c.props} crud={crud}></UIElement>;\n }\n\n return <></>;\n };\n\n if (scope.is('type', 'dummy')) {\n return <>{scope.getDisplayValue()}</>;\n }\n\n let onCheck = () => {\n let v = scope.getValue();\n let check = !(v === true);\n\n onChange({ target: { value: check } });\n };\n\n let onChange = (e: any) => {\n let val = e.target.value;\n\n if (scope.isType('integer', 'int', 'number')) {\n val = parseInt(val);\n } else if (scope.isType('decimal')) {\n val = parseFloat(val);\n }\n\n if (scope.isType('select', 'complete')) {\n val = scope.getSelectedItem(val);\n }\n\n scope.changeValue(val);\n scope.update();\n };\n\n let onClick = (e: any) => {\n if (scope.currentDialog?.component) return;\n\n scope.call('click');\n };\n\n let defaultsInput: any = {\n scope,\n crud,\n onChange: onChange,\n };\n\n if (scope.isType('password')) {\n defaultsInput.type = 'password';\n }\n\n let isChecked = () => {\n let v = scope.getValue();\n\n return v === true;\n };\n\n let hasChildren = () => {\n if (scope.isInput()) {\n return false;\n }\n\n return !Utils.isEmpty(props.children) || !Utils.isEmpty(props.elements);\n };\n\n let isInput = scope.is(\n 'type',\n 'text',\n 'textarea',\n 'number',\n 'integer',\n 'int',\n 'phone',\n 'postalCode',\n 'money',\n 'password',\n 'email',\n );\n\n const getStyle = (part?: string, extra?: any) => {\n let type = Utils.nvl(original.type, 'none');\n let key = Utils.nvl(part, 'root');\n let def = { ...styles[key] };\n let hasChild = hasChildren();\n\n type = Utils.nvl(original.layout, type);\n\n if (!part && !hasChild) {\n def = { ...def };\n }\n\n if (scope.isInput()) {\n def = { ...def, ...elementStyle.input[key] };\n }\n\n def = { ...def, ...elementStyle?.[type]?.[key] };\n\n if (hasChild && part) {\n def = { ...def, ...withChildStyles[part] };\n }\n\n return { ...def, ...scope.getStyle(part, { ...def, ...extra }) };\n };\n\n let elStyle = getStyle('element');\n\n let defaultsUI: any = {\n required: scope.isRequired(),\n size: 'small',\n scope,\n crud,\n style: elStyle,\n placeholder: scope.attr('placeholder', 'Digite aqui'),\n };\n\n scope.error = (msg: string) => {\n error = msg;\n setError(msg);\n };\n\n if (!original.list?.url && !original.load?.url) {\n scope.start();\n }\n\n useEffect(() => {\n scope.start();\n });\n\n const CustomIcon = () => {\n if (typeof original.icon === 'string') {\n return <Ionicons name={original.icon} style={scope.getStyle('icon')} />;\n }\n return <>{original.icon}</>;\n };\n\n scope.open = (args: any) => {\n Linking.openURL(args.url);\n };\n\n useLayoutEffect(() => {\n if (ref?.current && scope.is('type', 'card', 'list', 'tabs', 'stepper')) {\n let el: any = ref?.current;\n\n if (el?.classList) {\n let bg = HtmlUtils.getBGColor(el);\n\n if (bg === 'rgb(255, 255, 255)') {\n el.classList.add('ui-dark');\n } else {\n el.classList.add('ui-light');\n }\n }\n }\n });\n\n const isShowLabel = () => {\n if (\n typeof original.label !== 'undefined' &&\n original.label !== false &&\n !scope.isType('button', 'dialog', 'modal', 'view')\n ) {\n return true;\n }\n\n return false;\n };\n\n const isShowInner = () => {\n if (scope.isType('icon')) return false;\n if (hasChildren()) {\n return false;\n }\n return true;\n };\n\n if (!scope.isRendered() || scope.is('type', 'define')) {\n return <></>;\n }\n\n const isShowChild = () => {\n if (scope.isType('tabs', 'view', 'grid', 'list', 'define', 'repeat', 'modal', 'dialog', 'chart', 'button')) {\n return false;\n }\n\n return true;\n };\n\n let isTouch = !scope.isType('input', 'grid', 'list', 'order', 'repeat') && original.click;\n let custom: any = {};\n\n if (isTouch) {\n custom.underlayColor = 'transparent';\n custom.onPress = onClick;\n }\n\n let Tag = (props: any) => {\n let Aux: any = View;\n\n if (isTouch) {\n Aux = TouchableHighlight;\n }\n\n if (scope.isType('dialog', 'order') || original.transient) {\n return <>{props.children}</>;\n }\n\n return <Aux {...props} />;\n };\n\n let Inner = () => {\n return (\n <>\n {scope.getPart('render', null, <></>)}\n {scope.is('type', 'button') && (\n <UIButton {...defaultsUI} onClick={onClick} variant={scope.attr('variant', 'outlined')}>\n {original.icon && <CustomIcon />}\n {original.label && <Text style={scope.getPart('label', 'button')}>{scope.getLabel()}</Text>}\n </UIButton>\n )}\n {scope.is('type', 'link') && (\n <UILink {...defaultsUI} onClick={onClick} variant={scope.attr('variant', 'outlined')}>\n {original.icon && <CustomIcon />}\n {original.label && <Text style={scope.getPart('label', 'link')}>{scope.getLabel()}</Text>}\n </UILink>\n )}\n {isInput && <UIInput {...defaultsInput} {...defaultsUI} InputProps={{ ...original.inputProps }} />}\n {scope.is('type', 'complete', 'autocomplete') && (\n <UIComplete scope={scope} defaultsInput={defaultsInput} defaultsUI={defaultsUI} />\n )}\n {scope.is('type', 'quantity') && (\n <UIQuantity scope={scope} defaultsInput={defaultsInput} defaultsUI={defaultsUI} />\n )}\n {scope.is('type', 'checkbox', 'boolean', 'switch') && (\n <UISwitch checked={isChecked()} {...defaultsInput} onChange={onCheck} />\n )}\n {scope.isType('slider') && <UISlider {...defaultsInput} onChange={onCheck} />}\n {scope.is('type', 'select') && (\n <UISelect {...defaultsInput} {...defaultsUI} value={scope.getSelectedValue()} />\n )}\n {scope.is('type', 'toggle') && (\n <UIToggle {...defaultsInput} {...defaultsUI} value={scope.getSelectedValue()} />\n )}\n {scope.is('type', 'radio') && (\n <UIRadio {...defaultsInput} {...defaultsUI} row>\n {options.map((row: any, i: number) => (\n <UIOption\n key={'i' + i}\n control={<UIRadio {...defaultsUI} />}\n label={row.label}\n value={row.value}\n />\n ))}\n </UIRadio>\n )}\n {scope.is('type', 'custom') && <Custom />}\n {scope.is('type', 'column') && (\n <>\n {scope.is('format', 'img') && <Image source={scope.getDisplayValue()} />}\n {scope.is('format', 'icon') && <UIIcon scope={scope} crud={crud} />}\n {!scope.is('format', 'icon', 'img') && <Text>{scope.getDisplayValue()}</Text>}\n </>\n )}\n {scope.is('type', 'output', 'value') && <Text style={getStyle('value')}>{scope.getDisplayValue()}</Text>}\n </>\n );\n };\n\n let Include = ({ name, style }: any) => {\n if (props[name]) {\n let define = ComponentUtils.getDefine(props, name);\n\n if (!Utils.isEmpty(define)) {\n return (\n <UIChildren {...props} scope={scope} crud={crud} style={getStyle(name, style)}>\n {define}\n </UIChildren>\n );\n }\n }\n return <></>;\n };\n\n let Container = () => {\n return (\n <>\n {isShowLabel() && (\n <View\n style={getStyle('outerLabel', {\n alignSelf: 'flex-start',\n flexDirection: 'row',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n })}\n >\n <Text style={getStyle('label')}>{scope.getLabel()}</Text>\n <Include name=\"actions\" style={{ width: 'auto' }} />\n </View>\n )}\n {isShowInner() && (\n <>\n <View style={getStyle('inner')}>\n <Inner />\n </View>\n {error && (\n <View\n style={getStyle('error', {\n fontSize: 12,\n paddingTop: 4,\n color: '#e55b5b',\n })}\n >\n {error}\n </View>\n )}\n </>\n )}\n {scope.isType('list', 'repeat') && <UIList {...props} scope={scope} crud={crud} />}\n {scope.isType('order') && <UIOrder {...props} scope={scope} crud={crud} />}\n\n {scope.isType('chart') && <ElChart {...props} scope={scope} crud={crud} />}\n {scope.isType('tabs') && <ElTabs {...props} scope={scope} crud={crud} />}\n\n {scope.isType('view') && <UIView {...props} scope={scope} crud={crud} />}\n\n {scope.is('type', 'icon') && (\n <UIIcon {...defaultsUI} onClick={onClick} variant={scope.attr('variant', 'outlined')}>\n {scope.getDisplayValue()}\n </UIIcon>\n )}\n\n {isShowChild() && <UIChildren {...props} scope={scope} crud={crud} style={getStyle('inner')} />}\n <UIModal {...props} scope={scope} crud={crud} />\n {original.help && (\n <View\n style={getStyle('help', {\n alignSelf: 'flex-start',\n flexDirection: 'row',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n })}\n >\n <Text style={getStyle('helpText')}>{scope.getHelp()}</Text>\n </View>\n )}\n </>\n );\n };\n\n let Card = (props: any) => {\n let isCard = scope.is('type|layout', 'card');\n\n if (scope.isType('list')) {\n let empty = scope.getPart('empty', null, undefined);\n let items = scope.getItems();\n\n if (empty === false && Utils.isEmpty(items)) {\n isCard = false;\n }\n }\n\n if (isCard) {\n let scopeTheme = scope.getTheme();\n let isShadown = Utils.nvl(original.shadow, scopeTheme?.shadow, true);\n let shadow = isShadown ? boxStyle.box : boxStyle.card;\n let box = {\n ...getStyle('card', { ...shadow, alignSelf: 'stretch' }),\n };\n\n let borderWidth = original.boxBorder;\n\n if (borderWidth || borderWidth === 0) {\n if (borderWidth === true) {\n borderWidth = 1;\n }\n\n box = { ...box, borderWidth };\n }\n\n return (\n <View style={getStyle('card', { ...box })}>\n <View\n style={getStyle('boxInner', {\n paddingHorizontal: 15,\n paddingVertical: 10,\n })}\n >\n {props.children}\n </View>\n </View>\n );\n }\n\n if (scope.isInput() || original.container) {\n return <View style={getStyle('container', { paddingVertical: 5, width: '100%' })}>{props.children}</View>;\n }\n return <>{props.children}</>;\n };\n\n scope.dialogShow = (args?: MethodType) => {\n let event = Utils.nvl(args?.event, {});\n\n if (event?.debug) console.log(args);\n\n let caller = args.caller;\n let main = ViewUtils.getCrud('view');\n let parent = main.dialog;\n let { crud } = args;\n let name = scope.getName('modal');\n let edit = args.edit === true;\n let def: any = {};\n let rowItem = null;\n let component = event?.component;\n let elo = Utils.nvl(caller?.original, original);\n let localScope = Utils.nvl(event?.scope, scope);\n\n if (crud.is('row')) {\n def.parent = crud.parent.parent;\n def.search = crud.parent;\n\n rowItem = crud.data;\n } else if (crud.is('search')) {\n def.parent = crud.parent;\n def.search = crud;\n }\n\n let crudData = crud.data;\n let eventData = Utils.nvl(event.data, event.send);\n\n if (typeof eventData === 'function') {\n eventData = eventData.call(this, args);\n }\n\n let data = {};\n\n if (event.send === false || event.data === false) {\n crudData = {};\n } else {\n data = Utils.nvl(eventData, args.item, rowItem, crudData, {});\n }\n\n let d = CrudUtils.create('dialog', {\n parent: crud,\n root: crud,\n name,\n data,\n edit,\n view: crud.view,\n scope: localScope,\n ...def,\n });\n\n let el: any = {\n label: elo.label,\n icon: elo.icon,\n type: 'dialog',\n };\n\n let close = event.dialog?.close;\n\n if (typeof event.dialog === 'object') {\n el = { ...el, ...event.dialog };\n }\n\n if (event.header) el.header = event.header;\n if (event.label) el.label = event.label;\n if (event.title) el.title = event.title;\n\n let label = Utils.nvl(el.title, el.label);\n\n el.label = label;\n\n let extra: any = {};\n\n if (!component) {\n extra = { ...localScope?.original };\n\n delete extra.scope;\n delete extra.crud;\n delete extra.owner;\n }\n\n let dialogScope = ScopeUtils.create({\n parent: localScope,\n crud: d,\n ...el,\n ...extra,\n owner: localScope,\n });\n\n let dialog = {\n crud: d,\n label,\n parent,\n component,\n children: extra.children,\n scope: dialogScope,\n close,\n props: event.props,\n debug: event.debug,\n };\n\n main.dialog = dialog;\n scope.currentDialog = dialog;\n\n if (parent) parent.update?.();\n scope.update();\n };\n\n scope.dialogHide = (args?: MethodType) => {\n let main = ViewUtils.getCrud('view');\n let current = main.dialog;\n let next = Utils.nvl(current.parent, null);\n\n main.dialog = next;\n scope.currentDialog = next;\n\n let nextScope = next?.scope?.parent;\n let currScope = current?.scope?.parent;\n\n if (currScope) {\n const close = current.close;\n\n currScope.update();\n\n if (close) {\n if (close?.debug) console.log('Fechando');\n current.scope.call('close', { close });\n }\n }\n\n if (nextScope) {\n nextScope.update();\n }\n };\n\n if (original.hideEmpty && !scope.isType('list', 'select', 'complete')) {\n let value = scope.getValue();\n\n if (Utils.isEmpty(value)) return <></>;\n }\n\n return (\n <CrudContext.Provider value={{ crud, theme }}>\n <Tag ref={ref} style={getStyle()} {...custom}>\n <Card>\n <Container />\n </Card>\n </Tag>\n </CrudContext.Provider>\n );\n}\n\nlet boxStyle = StyleSheet.create({\n card: {\n borderWidth: 1,\n borderColor: '#dedede',\n borderStyle: 'solid',\n backgroundColor: 'white',\n borderRadius: 10,\n width: '100%',\n },\n box: {\n borderWidth: 1,\n borderColor: '#dedede',\n borderStyle: 'solid',\n backgroundColor: 'white',\n borderRadius: 10,\n width: '100%',\n shadowColor: '#000',\n shadowOpacity: 0.1,\n shadowRadius: 8,\n elevation: 3,\n },\n});\n\nconst box: any = {\n ...boxStyle.box,\n};\n//v5\nconst elementStyle: any = {};\n\nelementStyle.view = {\n inner: {\n width: '100%',\n alignItems: 'normal',\n flex: 1,\n },\n container: {\n width: '100%',\n backgroundColor: 'background',\n flex: 1,\n gap: 10,\n },\n root: {\n width: '100%',\n flex: 1,\n alignItems: 'normal',\n padding: 0,\n },\n};\n\nelementStyle.input = StyleSheet.create({\n label: {\n paddingLeft: 0,\n },\n inner: {\n flex: 1,\n width: '100%',\n padding: 0,\n gap: 10,\n alignSelf: 'flex-start',\n flexDirection: 'row',\n flexWrap: 'wrap',\n },\n});\n\nelementStyle.quantity = {\n inner: {\n ...box,\n backgroundColor: 'primarySoft',\n fontWeight: 600,\n fontSize: 16,\n borderRadius: 25,\n borderWidth: 0,\n paddingHorizontal: 5,\n paddingVertical: 5,\n flexWrap: 'nowrap',\n flex: 1,\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n },\n};\n\nelementStyle.toggle = StyleSheet.create({\n root: {\n height: 'auto',\n },\n inner: {\n ...box,\n flex: 1,\n width: '100%',\n gap: 10,\n borderRadius: 2,\n justifyContent: 'center',\n flexDirection: 'row',\n alignSelf: 'flex-start',\n flexWrap: 'nowrap',\n },\n});\n\nconst styles = StyleSheet.create({\n root: {\n gap: 5,\n flexDirection: 'column',\n flexWrap: 'wrap',\n width: '100%',\n alignItems: 'flex-start',\n },\n label: {\n fontWeight: 600,\n fontSize: 12,\n paddingVertical: 3,\n color: 'labelColor',\n },\n inner: { width: '100%', justifyContent: 'space-between' },\n});\n\nconst withChildStyles = StyleSheet.create({\n root: {\n gap: 10,\n },\n label: {\n width: '100%',\n fontWeight: 500,\n fontSize: 24,\n },\n});\n","import React, { useState } from 'react';\nimport UIElement from './UIElement';\nimport { Crud, Scope, ScopeUtils, Utils } from 'react-crud-utils';\nimport { StyleSheet, View } from 'react-native';\n\ninterface UIChildrenType {\n scope: Scope;\n crud?: Crud;\n validateScope?: String;\n children?: any;\n elements?: any;\n transient?: boolean;\n part?: string;\n style?: any;\n childProps?: any;\n}\n\nexport default function UIChildren(props: UIChildrenType) {\n let [scope] = useState(Utils.nvl(props.scope, ScopeUtils.create(props)));\n let crud = Utils.nvl(props.crud, scope.crud);\n let validateScope = Utils.nvl(props.validateScope, 'global');\n let name = Utils.nvl(props.part, 'child');\n\n if (scope.isInput()) {\n return <></>;\n }\n\n let Paint = ({ child }: any) => {\n if (!child) {\n return <></>;\n }\n if (typeof child === 'string') {\n return <>{child}</>;\n }\n\n let Custom = child.type;\n let pps = { ...child.props };\n\n delete pps.children;\n\n if (typeof Custom === 'string') {\n if (Utils.isEmpty(child.props.children)) {\n return <Custom {...pps} />;\n }\n return (\n <Custom {...pps}>\n <UIChildren\n transient\n validateScope={validateScope}\n {...child.props}\n scope={scope}\n crud={crud}\n ></UIChildren>\n </Custom>\n );\n } else if (typeof Custom === 'function') {\n return (\n <Custom\n validateScope={validateScope}\n {...child.props}\n parent={scope}\n crud={crud}\n ></Custom>\n );\n }\n\n if (!Utils.isEmpty(child.props?.children)) {\n return (\n <UIChildren\n validateScope={validateScope}\n {...child.props}\n scope={scope}\n crud={crud}\n transient\n ></UIChildren>\n );\n }\n return <></>;\n };\n\n const Draw = () => {\n if (props.elements) {\n return (\n <>\n {Object.entries(props.elements).map((t: any, k) => {\n return <UIElement crud={crud} {...t[1]} />;\n })}\n </>\n );\n }\n return (\n <>\n {React.Children.map(props.children, child => {\n return <Paint child={child}></Paint>;\n })}\n </>\n );\n };\n\n if (props.transient) {\n return <Draw />;\n }\n\n if (Utils.isEmpty(props.children) && Utils.isEmpty(props.elements)) {\n return <></>;\n }\n\n const getStyle = (part?: string) => {\n let key = Utils.nvl(part, 'root');\n let def = styles[key];\n let css = {};\n\n if (!Utils.isEmpty(props.style)) {\n if (props.style?.push) {\n Utils.each(props.style, s => {\n if (s) {\n css = { ...css, ...s };\n }\n });\n } else {\n css = { ...props.style };\n }\n }\n return { ...def, ...css, ...scope.getStyle(part) };\n };\n\n if (props.transient) {\n return <Draw />;\n }\n return (\n <>\n <View style={getStyle(name)}>\n <Draw />\n </View>\n </>\n );\n}\n\nconst styles = StyleSheet.create({\n child: { width: '100%' },\n inner: { width: '100%' },\n});\n","import React, { useState, useEffect } from 'react';\nimport UIChildren from '../UIChildren';\nimport UI from '../UI';\n\nimport Ionicons from '@expo/vector-icons/Ionicons';\nimport { ChildType, CrudUtils, Utils } from 'react-crud-utils';\n\nexport default function ElTabs(props: ChildType) {\n let scope = props.scope;\n let [selectedIndex, setSelectedIndex]: any = useState(0);\n let element = scope.original;\n let items = scope.getItems();\n let counter = 0;\n\n let tabs: any = [];\n let [selected, setSelected]: any = useState(null);\n\n const onChangeTab = (tab: any, validate = true) => {\n if (tab) {\n scope.execute({\n event: {\n validate,\n validateScope: element.validateScope,\n action: () => {\n scope.changeValue(tab.data);\n\n selected = tab;\n selectedIndex = tab.index;\n\n setSelectedIndex(selectedIndex);\n setSelected(tab);\n },\n },\n });\n }\n };\n\n const getStyleClass = (t: any) => {\n let s = 'ui-tabs-item ui-click';\n\n if (selected?.index === t.index) {\n s = s + ' ui-tab-selected';\n }\n return s;\n };\n\n const addTab = (child: any, item: any) => {\n let original = { ...child.props };\n\n if (!item) {\n item = scope.crud.data;\n }\n\n let crudTab = CrudUtils.create('tabs', {\n data: item,\n changed: item,\n parent: scope.crud,\n });\n\n let element = Utils.resolve(original, crudTab);\n\n if (element.rendered === false) {\n return;\n }\n\n tabs.push({\n ...element,\n child,\n element,\n original,\n index: counter++,\n data: item,\n });\n };\n\n React.Children.map(props.children, (child, index) => {\n if (Utils.isEmpty(items)) {\n addTab(child, {});\n } else {\n for (const i in items) {\n let o = items[i];\n\n addTab(child, o);\n }\n }\n });\n\n if (!selected) {\n onChangeTab(tabs[selectedIndex], false);\n }\n\n const nav = (i: any) => {\n let t = tabs[selectedIndex + i];\n\n onChangeTab(t);\n };\n\n const previous = () => {\n nav(-1);\n };\n\n const next = () => {\n nav(1);\n };\n\n let isStepper = element.layout === 'stepper';\n\n return (\n <div\n className={scope.getStyleClass('inner')}\n style={scope.getStyle('inner')}\n >\n <div className=\"ui-tabs-content\">\n <div className=\"ui-tabs-items\">\n {tabs.map((t: any, i: number) => (\n <div\n key={Utils.key(element.id, 'tab', i)}\n className={getStyleClass(t)}\n onClick={() => {\n onChangeTab(t);\n }}\n >\n {isStepper && <div className=\"ui-tab-item-divisor\" />}\n <div className=\"ui-tab-item-inner\">\n {isStepper && <div className=\"ui-step-line\" />}\n <div className=\"ui-tab-item-label\">\n {isStepper ? t.index + 1 : t.label}\n </div>\n </div>\n </div>\n ))}\n </div>\n {selected && (\n <>\n {isStepper && <div className=\"ui-tabs-label\">{selected.label}</div>}\n <div className=\"ui-tabs-area\">\n <UIChildren {...props} scope={scope}>\n {selected.child}\n </UIChildren>\n </div>\n {element.layout === 'stepper' && (\n <div className=\"ui-tabs-actions\">\n <UI.Output space={6} layout=\"left\">\n <UI.Include\n {...props}\n transient\n name=\"left\"\n default={\n <UI.Button\n rendered={selectedIndex > 0}\n icon={<Ionicons />}\n click={previous}\n />\n }\n />\n </UI.Output>\n <UI.Output space={6} layout=\"right\">\n <UI.Include\n {...props}\n transient\n name=\"right\"\n default={\n <UI.Button\n rendered={selectedIndex < tabs.length - 1}\n icon={<Ionicons />}\n click={next}\n />\n }\n />\n </UI.Output>\n </div>\n )}\n </>\n )}\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport { ChildType, Scope, Utils } from \"react-crud-utils\";\n\nexport default function ElChart(props: ChildType) {\n let scope: Scope = props.scope;\n let items: any = scope.getItems();\n let columns = Utils.asList(scope.original.columns);\n\n return <div className=\"ui-chart-data\"></div>;\n}\n","import { Text, TouchableOpacity, Linking, StyleSheet } from 'react-native';\n\nexport default function UIAutoComplete(props: any) {\n const handlePress = () => {\n Linking.openURL('https://reactnative.dev/');\n };\n\n return (\n <TouchableOpacity onPress={handlePress}>\n <Text style={styles.link}>Clique aqui para acessar o React Native</Text>\n </TouchableOpacity>\n );\n}\n\nconst styles = {\n link: {},\n};\n","import { ChildType } from 'react-crud-utils';\nimport AutoComplete from './core/UIAutoComplete';\n\nexport default function UIComplete({\n defaultsInput,\n defaultsUI,\n scope,\n}: ChildType) {\n return (\n <>\n <AutoComplete {...defaultsInput} {...defaultsUI} />\n </>\n );\n}\n","import { Text, TouchableOpacity, Linking, StyleSheet } from 'react-native';\n\nexport default function UILink(props: any) {\n const handlePress = () => {\n Linking.openURL('https://reactnative.dev/');\n };\n\n return (\n <TouchableOpacity onPress={handlePress}>\n <Text style={styles.link}>Clique aqui para acessar o React Native</Text>\n </TouchableOpacity>\n );\n}\n\nconst styles = {\n link: {},\n};\n","import { Ionicons, MaterialCommunityIcons, AntDesign, Entypo, EvilIcons, FontAwesome } from '@expo/vector-icons';\n\nimport { ChildType, Utils } from 'react-crud-utils';\n\nexport default function UIIcon({ scope }: ChildType) {\n let name = scope.getValue() as string;\n let libs: any = {\n ion: Ionicons,\n fa: FontAwesome,\n ant: AntDesign,\n entypo: Entypo,\n evil: EvilIcons,\n material: MaterialCommunityIcons,\n };\n\n let library = Utils.nvl(scope.original.library, 'ion');\n let icon = name.trim();\n\n if (!icon) return <></>;\n\n if (name.includes(' ')) {\n let split = name.split(/\\s+/);\n\n library = split[0];\n icon = split[1];\n }\n\n let Aux = libs[library];\n let css: any = scope.getStyle('icon');\n let fontSize = scope.part('size', undefined);\n let size = scope.part('iconSize', fontSize);\n\n if (scope.original?.transient) {\n css = { ...css, ...scope.getStyle() };\n }\n\n if (size) css.fontSize = size;\n\n return <Aux size={size} name={name} style={css} />;\n}\n","import { ChildType, ComponentUtils, Utils } from 'react-crud-utils';\nimport { Pressable, Text, Modal, View, TouchableWithoutFeedback } from 'react-native';\nimport UI from '../UI';\nimport { useState } from 'react';\nimport LoadingIcon from './LoadingIcon';\nimport Animated, { useSharedValue, useAnimatedStyle, withSpring, withTiming } from 'react-native-reanimated';\n\nconst BUTTONS_SIZE: any = { small: { minWidth: 30, height: 30 } };\n\nexport default function UIButton(props: ChildType) {\n let scope = props.scope;\n let element = scope.original;\n let size = Utils.nvl(element.size, 'default');\n let align = Utils.nvl(element.align, 'center');\n let variant = Utils.nvl(element.variant, 'default');\n let [loaderIndex, setLoaderIndex] = useState(-1);\n let [open, setOpen] = useState(false);\n\n let color = element.color;\n let label = scope.getLabel();\n let icon = scope.getPart('icon');\n let children = ComponentUtils.getChild(props, 'button');\n\n const pressed = useSharedValue(0);\n const animatedStyle = useAnimatedStyle(() => ({\n transform: [{ translateY: withTiming(pressed.value ? 2 : 0, { duration: 80 }) }],\n opacity: withTiming(pressed.value ? 0.9 : 1, { duration: 80 }),\n }));\n\n if (!color) color = 'primaryLight';\n\n const styles: any = {\n buttonLabel: {\n color: '#ffffff',\n fontWeight: 400,\n fontSize: 15,\n },\n buttonInner: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n height: 44,\n minWidth: 44,\n },\n buttonIcon: {\n color: '#fff',\n fontSize: 16,\n },\n button: {\n backgroundColor: color,\n borderRadius: 20,\n gap: 10,\n justifyContent: 'center',\n alignItems: 'center',\n flexDirection: 'row',\n },\n overlay: {\n flex: 1,\n backgroundColor: 'rgba(0,0,0,0.5)',\n justifyContent: 'center',\n alignItems: 'center',\n },\n modal: {\n backgroundColor: '#fff',\n borderRadius: 12,\n padding: 20,\n minWidth: '80%',\n },\n };\n\n const onClick = () => {\n if (!Utils.isEmpty(children)) {\n setOpen(true);\n return;\n }\n\n setTimeout(() => {\n scope.call('click', {});\n }, 0);\n };\n\n const style = (part: string, extra?: any) => {\n let css = { ...styles[part], ...extra };\n\n if (variant === 'text' || variant === 'outlined') {\n css.backgroundColor = 'transparent';\n css.color = Utils.nvl(color, 'text');\n }\n\n if (size === 'small') {\n css.fontSize = 12;\n css.fontWeight = 500;\n }\n\n if (size === 'medium') {\n css.fontSize = 14;\n css.fontWeight = 500;\n }\n\n if (align === 'left') {\n css.justifyContent = 'flex-start';\n }\n\n return scope.getStyle(part, css);\n };\n\n let extra: any = {};\n\n if (icon) {\n extra.button = { height: 40, padding: 0 };\n } else {\n extra.button = { height: 50 };\n }\n\n const buttonStyle = Utils.call(() => {\n let def: any = { ...extra?.button };\n\n if (variant === 'outlined') {\n def.borderWidth = 1;\n def.borderColor = Utils.nvl(color, 'text');\n }\n\n if (size) {\n def = { ...def, ...BUTTONS_SIZE[size] };\n }\n\n if (!label) {\n def = { ...def, borderRadius: 20 };\n }\n\n let css = style('button', def);\n\n if (!css.width) {\n let h = css.height;\n if (typeof h === 'number') css.minWidth = h;\n }\n\n return css;\n });\n\n const buttonLabel = style('buttonLabel');\n\n const iconStyle = Utils.call(() => {\n let css: any = style('buttonIcon', extra.icon);\n css.fontSize = Utils.nvl(buttonLabel.fontSize, css.fontSize);\n return css;\n });\n\n scope.updaters.loader = () => {\n setLoaderIndex((i) => i + 1);\n };\n\n let iconSize = Utils.nvl(element.iconSize, buttonLabel.fontSize, 15);\n\n if (scope.loading) {\n return (\n <Pressable style={buttonStyle}>\n <>\n {icon && <LoadingIcon />}\n {label && <Text style={buttonLabel}>{scope.lng('loading', 'Aguarde...')}</Text>}\n </>\n </Pressable>\n );\n }\n\n return (\n <>\n <Pressable onPress={onClick} onPressIn={() => (pressed.value = 1)} onPressOut={() => (pressed.value = 0)}>\n <Animated.View style={[buttonStyle, animatedStyle]}>\n {icon && <UI.Icon size={iconSize} style={iconStyle} value={icon} />}\n {label && <Text style={buttonLabel}>{label}</Text>}\n </Animated.View>\n </Pressable>\n\n {/* 🔥 MODAL */}\n {children && (\n <Modal visible={open} transparent animationType=\"fade\">\n <TouchableWithoutFeedback onPress={() => setOpen(false)}>\n <View style={styles.overlay}>\n <TouchableWithoutFeedback>\n <View style={styles.modal}>{children}</View>\n </TouchableWithoutFeedback>\n </View>\n </TouchableWithoutFeedback>\n </Modal>\n )}\n </>\n );\n}\n","import React from 'react';\nimport { View, Animated, Easing } from 'react-native';\nimport { Ionicons } from '@expo/vector-icons';\n\nexport default function LoadingIcon({ color }: any) {\n const spinValue = new Animated.Value(0);\n\n React.useEffect(() => {\n Animated.loop(\n Animated.timing(spinValue, {\n toValue: 1,\n duration: 1000,\n easing: Easing.linear,\n useNativeDriver: true,\n }),\n ).start();\n }, []);\n\n const spin = spinValue.interpolate({\n inputRange: [0, 1],\n outputRange: ['0deg', '360deg'],\n });\n\n return (\n <View style={{ justifyContent: 'center', alignItems: 'center', flex: 1 }}>\n <Animated.View style={{ transform: [{ rotate: spin }] }}>\n <Ionicons name=\"refresh\" size={25} color={color} />\n </Animated.View>\n </View>\n );\n}\n","import { useRef, useState } from 'react';\nimport { ChildType, MethodType, Utils, ViewUtils } from 'react-crud-utils';\nimport {\n Text,\n TouchableOpacity,\n StyleSheet,\n Modal,\n View,\n ScrollView,\n} from 'react-native';\nimport { Ionicons } from '@expo/vector-icons';\nimport UI from '../UI';\nimport { SafeAreaView } from 'react-native-safe-area-context';\n\nexport default function UISelect(props: ChildType) {\n const [modalVisible, setModalVisible] = useState(false);\n const scope = props.scope;\n const original = scope.original;\n const items = Utils.nvl(scope.getOptions(), []);\n const placeholder = scope.attr('placeholder', 'Selecione...');\n const value = scope.getDisplayValue();\n const theme = scope.getTheme();\n const headerStyle = Utils.nvl(theme.styles?.defaults?.header, {});\n const handlePress = () => {\n setModalVisible(!modalVisible);\n };\n\n const scrollRef = useRef(null);\n const iconColor = Utils.nvl(theme.colors?.text, '#100e0e');\n const modalColor = Utils.nvl(headerStyle.color, 'white');\n const defaults = { color: modalColor };\n const onClick = ({ crud, value }: MethodType) => {\n let val = value as any;\n\n if (original.isObject && val?.object) {\n scope.changeValue(val?.object);\n } else if (val?.value) {\n scope.changeValue(val?.value);\n } else {\n scope.changeValue(value);\n }\n\n setModalVisible(false);\n };\n\n const style = (part: string, extra?: any) => {\n let all = { ...styles[part], ...extra };\n\n return scope.getStyle(part, all);\n };\n\n const isModalVisible = () => {\n return modalVisible;\n };\n\n const getLabelStyle = () => {\n const css: any = style('selectLabel');\n let fs = parseInt(css.fontSize);\n\n if (!fs) {\n fs = 14;\n }\n\n let lh = Utils.nvl(css.lineHeight, fs + 2);\n\n css.fontSize = fs;\n css.lineHeight = lh;\n\n return css;\n };\n\n const labelStyle = getLabelStyle();\n const defIconSize = Utils.nvl(labelStyle.fontSize, 14) + 2;\n const iconSize = scope.getPart('iconSize', null, defIconSize);\n\n //v4\n\n return (\n <View\n key={scope.getName(`${scope.getPart('modal')}_${modalVisible}`)}\n style={style('selectRoot')}\n >\n <TouchableOpacity onPress={handlePress} style={style('selectInput')}>\n <Text style={labelStyle}>{Utils.nvl(value, placeholder)}</Text>\n <Ionicons\n name=\"chevron-down-outline\"\n size={iconSize}\n color={scope.getPart('iconColor', null, iconColor)}\n style={style('iconStyle', {})}\n />\n </TouchableOpacity>\n <Modal\n animationType=\"slide\"\n transparent={true}\n visible={isModalVisible()}\n onRequestClose={() => setModalVisible(false)}\n >\n <SafeAreaView style={style('modalTop')} />\n <SafeAreaView style={style('modalSafe')}>\n <View style={scope.getStyle('header', headerStyle)}>\n <TouchableOpacity\n onPress={handlePress}\n style={style('modalCloseButton')}\n >\n <Ionicons\n name=\"close\"\n size={24}\n color={modalColor}\n style={style('modalCloseText', defaults)}\n />\n </TouchableOpacity>\n <Text style={style('modalTitle', defaults)}>{placeholder}</Text>\n </View>\n <ScrollView\n contentContainerStyle={{ flexGrow: 1, paddingBottom: 50 }}\n style={style('modalContent')}\n nestedScrollEnabled={true}\n ref={scrollRef}\n >\n <View\n style={{\n flex: 1,\n paddingLeft: 15,\n paddingRight: 15,\n paddingTop: 10,\n paddingBottom: 10,\n }}\n >\n <UI.List\n data={items}\n name={scope.getName('list')}\n layout=\"card\"\n search={original.search === true}\n click={onClick}\n rowStyle={{\n paddingLeft: 15,\n paddinRight: 15,\n ...original?.rowStyle,\n }}\n {...original?.listProps}\n >\n <UI.Value value=\"#{@this.label}\" />\n </UI.List>\n </View>\n </ScrollView>\n </SafeAreaView>\n </Modal>\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n selectRoot: {\n justifyContent: 'flex-start',\n alignItems: 'flex-start',\n flex: 1,\n },\n selectInput: {\n width: '100%',\n flexDirection: 'row',\n borderRadius: 5,\n paddingHorizontal: 15,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: '#dedede',\n paddingVertical: 10,\n },\n selectLabel: { flex: 1, fontSize: 14 },\n modalTop: {\n backgroundColor: 'primary',\n width: '100%',\n },\n modalSafe: {\n flex: 1,\n width: '100%',\n backgroundColor: 'background',\n },\n modalCloseButton: {\n padding: 10,\n },\n modalCloseText: {\n fontSize: 18,\n color: 'white',\n },\n modalTitle: {\n fontSize: 18,\n fontWeight: 'bold',\n marginLeft: 10,\n },\n modalContent: {\n flex: 1,\n backgroundColor: 'background',\n },\n});\n","import { useState } from 'react';\nimport { ChildType, Utils } from 'react-crud-utils';\nimport { Switch } from 'react-native';\n\nexport default function UISwitch(props: ChildType) {\n const scope = props.scope;\n const initial = Utils.nvl(scope.getValue(), false) as boolean;\n const [value, setValue] = useState(initial);\n\n let onChange = v => {\n scope.changeValue(v);\n\n setValue(v);\n };\n\n return (\n <Switch\n value={value}\n style={scope.getStyle('element')}\n onValueChange={onChange} // Alterna o estado\n />\n );\n}\n\nconst styles = {\n link: {},\n};\n","import { useState } from 'react';\nimport { ChildType, ComponentUtils, Utils } from 'react-crud-utils';\nimport { Switch } from 'react-native';\nimport Slider from '@react-native-community/slider';\n\nexport default function UISlider(props: ChildType) {\n const scope = props.scope;\n const initial = Utils.nvl(scope.getValue(), 0);\n const [value, setValue] = useState(initial);\n\n //redeploy 0\n\n let onChange = v => {\n v = Utils.nvl(v, 0);\n\n console.log(v);\n\n scope.changeValue(v);\n\n setValue(v);\n };\n\n let step = scope.attr('step', 1);\n let min = scope.attr('min', 0);\n let max = scope.attr('min', 100);\n\n let onSlideScroll = (scrollEnabled: boolean) => {\n let viewScope = ComponentUtils.getViewScope();\n\n if (scope.original.debug) {\n console.log(viewScope);\n }\n\n if (viewScope) {\n let scrollRef = viewScope.get('scrollRef');\n\n if (scrollRef) scrollRef.current?.setNativeProps?.({ scrollEnabled });\n }\n };\n return (\n <>\n <Slider\n minimumValue={min}\n maximumValue={max}\n step={step}\n minimumTrackTintColor=\"#1EB1FC\"\n maximumTrackTintColor=\"#d3d3d3\"\n thumbTintColor=\"#1EB1FC\"\n value={value}\n onSlidingStart={() => onSlideScroll(false)}\n onSlidingComplete={() => onSlideScroll(true)}\n style={{ width: '100%', height: 40, ...scope.getStyle('element') }}\n onValueChange={onChange} // Alterna o estado\n />\n </>\n );\n}\n\nconst styles = {\n link: {},\n};\n","import { Text, TouchableOpacity, Linking, StyleSheet } from 'react-native';\n\nexport default function UIOption(props: any) {\n const handlePress = () => {\n Linking.openURL('https://reactnative.dev/');\n };\n\n return (\n <TouchableOpacity onPress={handlePress}>\n <Text style={styles.link}>Clique aqui para acessar o React Native</Text>\n </TouchableOpacity>\n );\n}\n\nconst styles = {\n link: {},\n};\n","import { Text, TouchableOpacity, Linking, StyleSheet } from 'react-native';\n\nexport default function UIRadio(props: any) {\n const handlePress = () => {\n Linking.openURL('https://reactnative.dev/');\n };\n\n return (\n <TouchableOpacity onPress={handlePress}>\n <Text style={styles.link}>Clique aqui para acessar o React Native</Text>\n </TouchableOpacity>\n );\n}\n\nconst styles = {\n link: {},\n};\n","import { useState } from 'react';\nimport { ChildType, Utils } from 'react-crud-utils';\nimport { StyleSheet, TextInput, View } from 'react-native';\nimport { Ionicons } from '@expo/vector-icons';\n\nexport default function UIInput(props: ChildType) {\n let scope = props.scope;\n let initial = Utils.call(() => {\n let val = Utils.nvl(scope.getValue(), '');\n\n if (val && val?.push) {\n return val.join(', ').trim();\n }\n return val;\n });\n\n let label = scope.getLabel();\n let placeholder = scope.getPart('placeholder', null, label);\n let el = scope.original;\n\n const element = scope.original;\n const [height, setHeight] = useState(80);\n const [value, setValue] = useState(initial);\n\n let onChange = v => {\n v = scope.changeValue(v);\n\n setValue(v);\n };\n\n const style = (part: string, extra?: any) => {\n return { ...scope.getStyle(part, { ...styles[part], ...extra }) };\n };\n\n const CustomIcon = () => {\n let icon = el.icon;\n\n if (icon) {\n if (typeof icon === 'string') {\n return (\n <>\n {el.icon && (\n <Ionicons\n name={el.icon}\n size={scope.attr('iconSize', 20)}\n color={scope.attr('iconColor', '#888')}\n />\n )}\n </>\n );\n }\n return <>{icon}</>;\n }\n return <></>;\n };\n\n let type = scope.getPart('type', null, 'text');\n let decode = {\n textarea: {\n multiline: true,\n autoHeight: element.autoHeight !== false,\n textAlignVertical: 'top',\n numberOfLines: 5,\n style: { height: Math.max(80, height) },\n baseStyle: { paddingVertical: 10 },\n },\n };\n\n //v5\n let defs = { ...Utils.nvl(decode[type], {}), ...element.inputProps };\n let inputStyle = Utils.call(() => {\n let size = element.size;\n let css: any = {};\n\n if (size === 'small') {\n css.height = 30;\n css.fontSize = 12;\n }\n\n css.fontSize = Utils.nvl(element.fontSize, css.fontSize);\n css = { ...style('input'), ...style(type, css) };\n css.lineHeight = parseInt(css.fontSize) + 2;\n //v1\n return css;\n });\n\n if (defs.autoHeight) {\n defs.onContentSizeChange = event => {\n setHeight(event.nativeEvent.contentSize.height);\n };\n\n inputStyle = { ...inputStyle, ...defs.style };\n }\n\n return (\n <>\n <View style={style('base', defs?.baseStyle)}>\n {scope.getPart('left')}\n <TextInput\n onChangeText={onChange}\n value={value}\n placeholder={placeholder}\n {...defs}\n style={inputStyle}\n />\n <CustomIcon />\n </View>\n {scope.getPart('right')}\n </>\n );\n}\n\nconst styles = StyleSheet.create({\n base: {\n flex: 1,\n width: '100%',\n paddingBottom: 0,\n paddingTop: 0,\n alignItems: 'center',\n borderWidth: 1,\n borderColor: 'borderColor',\n borderRadius: 5,\n paddingHorizontal: 10,\n alignSelf: 'flex-start',\n flexDirection: 'row',\n flexWrap: 'wrap',\n gap: 10,\n },\n icon: {\n marginRight: 10, // Espaço entre ícone e input\n },\n input: {\n marginHorizontal: 0,\n marginVertical: 0,\n paddingVertical: 0,\n height: 40,\n width: '100%',\n flex: 1, // Para o input ocupar o espaço restante\n },\n textarea: {\n marginHorizontal: 0,\n marginVertical: 0,\n paddingVertical: 10,\n width: '100%',\n height: 'auto',\n alignSelf: 'stretch',\n flex: 1, // Para o input ocupar o espaço restante\n },\n});\n","import { ChildType, Utils } from 'react-crud-utils';\nimport UI from '../UI';\nimport { Ionicons } from '@expo/vector-icons';\nimport UIListData from './UIListData';\n\nexport default function UIList(props: ChildType) {\n const scope = props.scope;\n const crud = scope.crud;\n const original = scope.original;\n const hideEmpty = original.hideEmpty;\n\n //v2\n let items = Utils.nvl(scope.getItems(), []);\n\n if (hideEmpty && Utils.isEmpty(items)) {\n return <></>;\n }\n\n return (\n <>\n {original.search !== false && (\n <UI.Text\n placeholder=\"Pesquisar...\"\n field=\"query\"\n crud={crud}\n style={{ marginBottom: 10 }}\n change={{\n action: () => {\n scope.search();\n },\n }}\n icon={<Ionicons name=\"search\" size={20} color=\"#888\" />}\n />\n )}\n <UIListData {...props} />\n </>\n );\n}\n","import React, { useState } from 'react';\nimport { ChildType, ComponentUtils, Utils } from 'react-crud-utils';\nimport { StyleSheet, Text, View } from 'react-native';\nimport UIListRow from './UIListRow';\n\nexport default function UIListData(props: ChildType) {\n const scope = props.scope;\n const crud = scope.crud;\n const original = scope.original;\n const cols = Utils.nvl(scope.getPart('cols', undefined, 1));\n const styles = { repeat: stylesRepeat, list: stylesList }?.[original.type];\n const add = ComponentUtils.getDefine(props, 'add');\n const hideAddWhenEmpty = original.hideAddWhenEmpty;\n\n //v2\n const getStyle = (key: string, extra?: any) => {\n return scope.getStyle(key, { ...extra, ...styles[key] });\n };\n\n const getContainerStyle = (extra?: any) => {\n let row = getStyle('container', {});\n\n if (cols > 1) {\n row = { ...row, flexDirection: 'row', flexWrap: 'wrap' };\n }\n\n return row;\n };\n let [index, setIndex] = useState(scope.updateIndex);\n let empty = scope.attr('empty', 'Sem registro');\n\n scope.update = () => {\n scope.updateIndex = ++index;\n\n setIndex(index);\n };\n\n const items = Utils.call(() => {\n let list = Utils.nvl(scope.getItems(), []);\n\n if (original.search !== false && !original.list?.url) {\n let query = crud.get('query', '').toLowerCase().trim() as string;\n\n if (query.length > 1) {\n let filters: any[] = [];\n let filterBy = Utils.nvl(original.filterBy, 'label');\n\n Utils.each(list, (o) => {\n let label = Utils.getValue(filterBy, 'none', o).toLowerCase();\n\n if (label) {\n if (label.includes(query)) {\n filters.push(o);\n }\n }\n });\n\n return filters;\n }\n }\n return list;\n });\n\n let isEmpty = Utils.isEmpty(items);\n\n const isShowAdd = () => {\n if (!isEmpty) {\n return true;\n }\n return hideAddWhenEmpty !== true;\n };\n\n let Empty = () => {\n if (!isEmpty) {\n return <></>;\n }\n\n if (!empty) {\n return <></>;\n }\n\n if (typeof empty === 'string') {\n return (\n <Text\n style={scope.getStyle('empty', {\n flex: 1,\n fontWeight: 400,\n fontSize: 18,\n padding: 10,\n textAlign: 'center',\n width: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n })}\n >\n {empty}\n </Text>\n );\n }\n\n return <>{empty}</>;\n };\n\n if (empty === false && isEmpty) {\n return <></>;\n }\n\n return (\n <View style={getContainerStyle()}>\n <Empty />\n {items.map((item: any, i: number) => (\n <UIListRow index={i} item={item} scope={scope}>\n {props.children}\n </UIListRow>\n ))}\n {isShowAdd() && <>{add}</>}\n </View>\n );\n}\n\nconst stylesList = StyleSheet.create({\n container: {\n display: 'flex',\n flexWrap: 'wrap',\n gap: 10,\n width: '100%',\n },\n text: {\n fontSize: 18,\n fontWeight: 'bold',\n },\n});\n\nconst stylesRepeat = StyleSheet.create({\n container: {\n display: 'flex',\n flexWrap: 'wrap',\n gap: 10,\n width: '100%',\n },\n text: {\n fontSize: 18,\n fontWeight: 'bold',\n },\n});\n","import React, { useRef, useState } from 'react';\nimport { ChildType, ScopeUtils, Utils } from 'react-crud-utils';\nimport UIChildren from '../UIChildren';\nimport { Pressable, StyleSheet, TouchableHighlight, View } from 'react-native';\nimport { useIsVisible } from '../../hooks/useIsVisible';\n\ninterface UIListRowType extends ChildType {\n item: any;\n index: number;\n children?: any;\n}\n\nexport default function UIListRow(props: UIListRowType) {\n const scope = props.scope;\n const index = props.index;\n const original = scope.original;\n const item = props.item;\n const cols = scope.getPart('cols', undefined, -1);\n const rowWidth = Math.floor(100 / cols) + '%';\n const styles = { repeat: stylesRepeat, list: stylesList }?.[original.type];\n const listIndex = scope.updateIndex;\n const name = `${scope.key('row', index, '')}`;\n const row = ScopeUtils.create({\n ...original,\n parent: scope,\n name,\n crud: scope.crud,\n index,\n type: 'row',\n data: item,\n });\n\n row.crud.data = item;\n\n //v5\n const targetRef = useRef(null);\n const isVisible = useIsVisible(targetRef, row);\n const key = scope.key('item', listIndex);\n\n const onClick = (item: any) => {\n row.call('click', { value: item, item, edit: true, index });\n };\n\n const Child = () => {\n if (!isVisible && original.useIsInView && !row.visible && index > 20) {\n return <></>;\n }\n return (\n <>\n <UIChildren key={key} transient scope={row} crud={row.crud}>\n {props.children}\n </UIChildren>\n </>\n );\n };\n\n const ListItem = () => {\n let [updateIndex, setUpdateIndex] = useState(0);\n\n row.selected = row.getPart('isSelectedRow', undefined, false);\n\n const getRowStyle = () => {\n let css = row.getStyle('row', { ...styles.row, minHeight: 30 });\n\n if (row.selected) {\n css = { ...css, ...row.getStyle('rowSelected', {}) };\n } else {\n css = { ...css, ...row.getStyle('rowUnSelected', {}) };\n }\n\n if (cols > 0) {\n css.width = rowWidth;\n }\n\n return css;\n };\n\n row.update = () => {\n scope.updateIndex = scope.updateIndex + 1;\n\n setUpdateIndex(++updateIndex);\n };\n\n let renderedRow = row.getPart('renderedItem', undefined, true);\n\n if (renderedRow === false) {\n return <></>;\n }\n\n if (!original.click) {\n return (\n <View key={key} style={getRowStyle()} ref={targetRef}>\n <Child />\n </View>\n );\n }\n const rowStyle = getRowStyle();\n\n return (\n <Pressable\n key={key}\n style={({ pressed }) => [\n rowStyle,\n pressed && { opacity: 0.5 }, // ⭐ Aqui entra o efeito!\n ]}\n ref={targetRef}\n onPress={(e) => {\n e.stopPropagation();\n onClick(item);\n }}\n >\n <Child />\n </Pressable>\n );\n };\n\n return <ListItem />;\n}\n\nconst stylesList = StyleSheet.create({\n row: {\n padding: 5,\n margin: 0,\n width: '100%',\n backgroundColor: 'background',\n gap: 10,\n borderRadius: 8,\n justifyContent: 'center',\n },\n});\n\nconst stylesRepeat = StyleSheet.create({\n row: {\n padding: 0,\n width: '100%',\n justifyContent: 'center',\n },\n});\n","import { useEffect, useState } from 'react';\nimport { Scope } from 'react-crud-utils';\nimport { Dimensions, Platform } from 'react-native';\n\nexport function useIsVisible(ref: any, scope: Scope) {\n const [isVisible, setIsVisible] = useState(scope.visible === true);\n\n useEffect(() => {\n const checkVisibility = () => {\n if (!ref.current || isVisible || !scope.original?.useIsInView) return;\n\n if (Platform.OS === 'web') {\n const rect = ref.current.getBoundingClientRect?.();\n\n if (rect && typeof window !== 'undefined') {\n const windowHeight = window.innerHeight;\n const visible = rect.top < windowHeight && rect.bottom > 0;\n\n if (visible) scope.visible = visible;\n\n setIsVisible(visible);\n }\n } else {\n ref.current.measureInWindow?.((x, y, width, height) => {\n const windowHeight = Dimensions.get('window').height;\n const visible = y < windowHeight && y + height > 0;\n\n if (visible) scope.visible = visible;\n setIsVisible(visible);\n });\n }\n };\n\n const interval = setInterval(checkVisibility, 300); // roda a cada 300ms\n return () => clearInterval(interval);\n }, [ref]);\n\n return isVisible;\n}\n","import React, { useState } from 'react';\nimport { ChildType, Utils } from 'react-crud-utils';\nimport { StyleSheet, Text, TouchableHighlight, View } from 'react-native';\nimport UIListRow from './UIListRow';\n\nexport default function UIToggle(props: ChildType) {\n const scope = props.scope;\n const options = Utils.nvl(scope.getOptions(), []);\n const value = scope.getInputValue();\n\n let [index, setIndex] = useState(0);\n\n const isSelected = (item: any) => {\n return item?.value === value;\n };\n\n const onClick = (item: any) => {\n scope.changeValue(item.object);\n setIndex(++index);\n };\n\n const Item = ({ item, index }) => {\n let selected = isSelected(item);\n let style: any = { ...styles.text, ...scope.getStyle('text') };\n\n if (selected) style.color = '#ffffff';\n\n if (Utils.isEmpty(props.children)) {\n return <Text style={style}>{item.label}</Text>;\n }\n\n return (\n <UIListRow scope={scope} item={item.object} index={index}>\n {props.children}\n </UIListRow>\n );\n };\n\n const getItemStyle = (item: any) => {\n let style = { ...styles.item, ...scope.getStyle('item') };\n\n let wPart = 100 / options.length;\n let width = Math.floor(wPart) + '%';\n\n if (isSelected(item)) {\n let selectedColor = scope.getPart('selectedColor', undefined, 'primary');\n let st = scope.getStyle('selected', {\n backgroundColor: selectedColor,\n color: '#ffffff',\n });\n\n style = { ...style, ...st };\n\n if (!style.color) {\n style.color = '#ffffff';\n }\n\n const backgroundColor = item.backgroundColor;\n const color = item.color;\n\n if (item.backgroundColor) style = { ...style, backgroundColor };\n if (item.color) style = { ...style, color };\n } else {\n style.backgroundColor = '#fff';\n style.color = '#000';\n }\n\n style.width = width;\n\n return style;\n };\n\n return (\n <View style={{ ...styles.container, ...scope.getStyle('items') }}>\n {options.map((item: any, i: number) => (\n <TouchableHighlight\n key={`k-${i}`}\n style={getItemStyle(item)}\n onPress={e => {\n onClick(item);\n }}\n >\n <Item item={item} index={i} />\n </TouchableHighlight>\n ))}\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n width: '100%',\n justifyContent: 'center',\n flexDirection: 'row',\n alignItems: 'center',\n margin: 3,\n gap: 5,\n },\n item: {\n backgroundColor: 'background',\n justifyContent: 'center',\n alignItems: 'center',\n width: 'auto',\n flexDirection: 'row',\n flex: 1,\n padding: 5,\n borderRadius: 2,\n },\n text: {\n fontSize: 13,\n fontWeight: '400',\n },\n});\n","import { Ionicons } from '@expo/vector-icons';\nimport { useState } from 'react';\nimport { ChildType, Utils } from 'react-crud-utils';\nimport { Text, TouchableHighlight, View } from 'react-native';\n\nexport default function UIQuantity(props: ChildType) {\n const scope = props.scope;\n const element = scope.original;\n\n let [index, setIndex] = useState(0);\n\n const value = scope.getValue(0);\n\n let color = element.color;\n\n if (!color) color = 'primary';\n\n const btn = {\n padding: 0,\n alignItems: 'center',\n height: 30,\n width: 30,\n textAlign: 'center',\n verticalAling: 'middle',\n borderRadius: 24,\n backgroundColor: color,\n color: '#ffffff',\n justifyContent: 'center',\n };\n\n const styles: any = {\n buttonLabel: {\n color: '#ffffff',\n fontWeight: '500',\n fontSize: 16,\n },\n value: {\n flex: 1,\n flexDirection: 'row',\n textAlign: 'center',\n fontWeight: '500',\n },\n buttonInner: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n buttonIcon: {\n color: '#fff',\n fontSize: 18,\n },\n button: btn,\n addButton: {\n ...btn,\n },\n delButton: {\n ...btn,\n },\n };\n\n const change = (val: number) => {\n scope.changeValue(value + val);\n setIndex(++index);\n };\n\n const onClickAdd = () => {\n change(1);\n };\n\n const onClickDel = () => {\n change(-1);\n };\n\n const style = (part: string, extra?: any) => {\n let s = { ...styles[part], ...extra };\n return scope.getStyle(part, s);\n };\n\n return (\n <>\n <TouchableHighlight\n underlayColor={'transparent'}\n onPress={onClickDel}\n style={style('delButton')}\n >\n <Ionicons size={30} style={style('buttonIcon')} name=\"remove\" />\n </TouchableHighlight>\n <Text style={style('value')}>{Utils.nvl(value, 0)}</Text>\n <TouchableHighlight\n underlayColor={'transparent'}\n onPress={onClickAdd}\n style={style('addButton')}\n >\n <Ionicons size={30} style={style('buttonIcon')} name=\"add\" />\n </TouchableHighlight>\n </>\n );\n}\n","import { useRef, useState } from 'react';\nimport { ChildType, ComponentUtils, ViewUtils } from 'react-crud-utils';\nimport UIToast from './UIToast';\nimport { SafeAreaView } from 'react-native-safe-area-context';\nimport UIChildren from '../UIChildren';\nimport { Modal, StyleSheet } from 'react-native';\ninterface UIModalType extends ChildType {\n open?: boolean;\n dialog?: any;\n}\n\nexport default function UIModal(props: UIModalType) {\n const scrollRef = useRef(null);\n const main = ViewUtils.getCrud('view');\n\n let owner = props.scope;\n let [index, setIndex] = useState(0);\n let dialog = owner.currentDialog;\n //v2\n\n let curr = dialog?.crud;\n\n if (!dialog) {\n return <></>;\n }\n\n dialog.update = () => {\n setIndex(++index);\n };\n\n const modalVisible = curr.uuid === main.dialog?.crud?.uuid;\n\n if (!modalVisible) return <></>;\n\n const scope = dialog.scope;\n const style = (part: string, extra?: any) => {\n let st = { ...styles[part], ...extra };\n\n return { ...scope.getStyle(part, st) };\n };\n\n const onClose = () => {\n scope.close({ scope, crud: dialog?.crud, event: {} });\n };\n\n const cprops = dialog.props;\n const Component = dialog.component;\n\n if (!Component) return <></>;\n\n const custom = <Component {...{ key: curr.uuid, crud: curr, ...cprops }} />;\n\n scope.put('scrollRef', scrollRef);\n\n ComponentUtils.setViewScope(scope);\n\n let key = `${curr.name}-${index}`;\n\n const ModalInner = () => {\n let area = {};\n\n return (\n <SafeAreaView style={style('modalSafe', area)}>\n <UIChildren transient scope={scope}>\n {custom}\n </UIChildren>\n <UIToast />\n </SafeAreaView>\n );\n };\n return (\n <Modal key={key} animationType=\"slide\" transparent={true} visible={true} onRequestClose={onClose}>\n <ModalInner />\n </Modal>\n );\n}\n\nconst styles = StyleSheet.create({\n modalTop: {\n backgroundColor: 'background',\n width: '100%',\n },\n modalSafe: {\n flex: 1,\n width: '100%',\n backgroundColor: 'background',\n },\n modalCloseButton: {\n padding: 10,\n },\n modalCloseText: {\n fontSize: 18,\n color: 'white',\n },\n modalTitle: {\n fontSize: 22,\n fontWeight: 600,\n marginLeft: 10,\n },\n});\n","import { StyleSheet } from 'react-native';\nimport Toast, { BaseToast, ErrorToast } from 'react-native-toast-message';\n\nexport default function UIToast() {\n const toastConfig = {\n success: props => (\n <BaseToast\n {...props}\n style={styles.darkToast}\n contentContainerStyle={{ paddingHorizontal: 15 }}\n text1Style={styles.text}\n text2Style={styles.text}\n />\n ),\n error: props => (\n <ErrorToast\n {...props}\n style={styles.darkToast}\n text1Style={styles.text}\n text2Style={styles.text}\n />\n ),\n info: props => (\n <BaseToast\n {...props}\n style={styles.darkToast}\n text1Style={styles.text}\n text2Style={styles.text}\n />\n ),\n };\n\n const styles = StyleSheet.create({\n darkToast: {\n backgroundColor: 'rgba(34, 34, 34, 0.85)',\n borderLeftColor: '#222', // borda mais escura\n },\n text: {\n color: '#fff', // letras brancas\n textAlign: 'center',\n },\n });\n return <Toast config={toastConfig} />;\n}\n","import { ScrollView, StyleSheet, Text, View } from 'react-native';\n\nimport UIChildren from '../UIChildren';\nimport { ChildType, ComponentUtils, Utils, ViewUtils } from 'react-crud-utils';\nimport { useRef } from 'react';\nimport UIToast from './UIToast';\nimport UIHeader from './UIHeader';\n\nexport default function UIView({ scope, children }: ChildType) {\n const scrollRef = useRef(null);\n const original = scope.original;\n const crud = scope.crud;\n\n const onScroll = () => {\n const crud = ViewUtils.getCrud();\n\n Utils.each(crud.scroll, (s) => {\n if (s.onScroll) {\n s.onScroll.call(s);\n }\n });\n };\n\n //v5\n scope.put('scrollRef', scrollRef);\n\n if (!crud.is('dialog')) crud.view = scope;\n\n ComponentUtils.setViewScope(scope);\n\n let Container = () => {\n if (original.scroll === false) {\n return <UIChildren scope={scope}>{children}</UIChildren>;\n }\n\n return (\n <View style={scope.getStyle('container', styles.container)}>\n <ScrollView\n onScroll={onScroll}\n scrollEventThrottle={16}\n ref={scrollRef}\n nestedScrollEnabled={true}\n keyboardShouldPersistTaps=\"handled\"\n contentContainerStyle={scope.getStyle('contentContainer', {\n paddingBottom: 50,\n flexGrow: 1,\n })}\n style={scope.getStyle('scroll', styles.scroll)}\n >\n <UIChildren scope={scope}>{children}</UIChildren>\n </ScrollView>\n </View>\n );\n };\n return (\n <>\n <UIHeader scope={scope}>{children}</UIHeader>\n <Container />\n <UIToast /> {/* <- este componente precisa estar aqui */}\n </>\n );\n}\n\nconst styles = StyleSheet.create({\n scroll: {\n paddingTop: 10,\n paddingBottom: 10,\n paddingLeft: 15,\n paddingRight: 15,\n },\n container: {},\n view: {},\n});\n","import { Text, TouchableOpacity, View } from 'react-native';\n\nimport { ChildType, ComponentUtils, HtmlUtils, Utils } from 'react-crud-utils';\nimport { Ionicons } from '@expo/vector-icons';\nimport UIChildren from '../UIChildren';\nimport { useState } from 'react';\n\nexport default function UIHeader({ scope, ...props }: ChildType) {\n const theme = scope.getTheme();\n const label = scope.getLabel();\n const header = scope.getPart('header', null, label);\n const headerRight = ComponentUtils.getDefine(props, 'header', 'right');\n const headerStyle = Utils.nvl(theme.styles?.defaults?.header, {});\n\n let [index, setIndex] = useState(0);\n let headerTextStyle = Utils.nvl(theme.styles?.defaults?.headerText, {});\n let headerStyleFull = Utils.call(() => {\n let css = scope.getStyle('header', { ...headerStyle, gap: 10 });\n let bg = css.backgroundColor;\n\n if (bg) {\n css.color = HtmlUtils.getTextColor(bg);\n }\n return css;\n });\n\n let crud = scope.crud;\n\n crud.updaters.header = () => {\n setIndex(++index);\n };\n\n let isDialog = crud.is('dialog') || crud.is('modal');\n let hasHeader = !Utils.isEmpty(header) || isDialog;\n let HeaderTitle = () => {\n if (typeof header === 'string') {\n //v1\n if (isDialog) {\n headerTextStyle = { ...headerTextStyle, ...scope.getStyle('modalHeaderText', { textAlign: 'left' }) };\n }\n return <Text style={headerTextStyle}>{header}</Text>;\n }\n return <>{header}</>;\n };\n\n let onClose = () => {\n scope.close({ scope, crud, event: {} });\n };\n\n let HeaderLeft = () => {\n return (\n <>\n {isDialog && (\n <TouchableOpacity onPress={onClose} style={scope.getStyle('modalCloseButton')}>\n <Ionicons name=\"chevron-back-outline\" size={24} style={scope.getStyle('modalCloseText', {})} />\n </TouchableOpacity>\n )}\n </>\n );\n };\n\n let HeaderRight = () => {\n if (headerRight) {\n return (\n <UIChildren scope={scope} crud={crud} transient>\n {headerRight}\n </UIChildren>\n );\n }\n return <></>;\n };\n\n return (\n <>\n {hasHeader && (\n <View style={headerStyleFull}>\n <HeaderLeft />\n <HeaderTitle />\n <HeaderRight />\n </View>\n )}\n </>\n );\n}\n","import React, { useRef, useState, useEffect } from 'react';\nimport { ChildType, OptionType, Utils } from 'react-crud-utils';\nimport {\n View,\n Text,\n StyleSheet,\n Animated,\n PanResponder,\n TouchableOpacity,\n} from 'react-native';\n\nconst ITEM_HEIGHT = 70;\n\nexport default function UIOrder(props: ChildType) {\n const scope = props.scope;\n const element = scope.original;\n const initial: OptionType[] = scope.getOptions();\n\n const [items, setItems] = useState<OptionType[]>(initial);\n const [draggingId, setDraggingId] = useState<string | null>(null);\n\n // O tipo Animated.Value em um ambiente TypeScript puro não tem o método ._value,\n // mas é a propriedade interna usada para acessar o valor diretamente.\n // Usamos 'any' no acesso para suprimir o erro TS.\n const positions = useRef<Record<string, Animated.Value>>(\n Object.fromEntries(\n initial.map((it, i) => [it.value, new Animated.Value(i * ITEM_HEIGHT)])\n )\n ).current;\n\n const panRespondersRef = useRef<Record<string, any>>({});\n\n const activeItem = useRef<OptionType | null>(null);\n const activeIndex = useRef<number>(-1);\n const offsetY = useRef(0);\n\n // Armazena a lista mais recente em uma ref para uso em funções de PanResponder\n const itemsRef = useRef(items);\n useEffect(() => {\n itemsRef.current = items;\n }, [items]);\n\n // 1. Atualiza posições apenas para itens existentes\n useEffect(() => {\n items.forEach((it, idx) => {\n if (!positions[it.value])\n positions[it.value] = new Animated.Value(idx * ITEM_HEIGHT);\n\n Animated.spring(positions[it.value], {\n toValue: idx * ITEM_HEIGHT,\n useNativeDriver: false,\n }).start();\n });\n }, [items]);\n\n const onChange = (updated: any[]) => {\n const array: any[] = [];\n const items = scope.getItems();\n\n items.splice(0);\n\n Utils.each(updated, o => {\n const v = o.object;\n\n array.push(v);\n items.push(v);\n });\n\n scope.changeValue(array);\n };\n\n const createPanResponder = (item: OptionType) =>\n PanResponder.create({\n onStartShouldSetPanResponder: () => true,\n onPanResponderGrant: () => {\n // Use itemsRef.current para obter a lista mais recente no momento do arrasto.\n const currentItems = itemsRef.current;\n if (\n !positions[item.value] ||\n !currentItems.find(it => it.value === item.value)\n )\n return;\n\n activeItem.current = item;\n activeIndex.current = currentItems.findIndex(\n it => it.value === item.value\n );\n // CORREÇÃO: Usa a propriedade interna _value para acessar o valor atual\n offsetY.current = (positions[item.value] as any)._value; // 👈 CORREÇÃO APLICADA\n setDraggingId(item.value);\n },\n onPanResponderMove: (_, gesture) => {\n const currentItems = itemsRef.current;\n if (\n !positions[item.value] ||\n !currentItems.find(it => it.value === item.value)\n )\n return;\n\n const y = offsetY.current + gesture.dy;\n positions[item.value].setValue(y);\n\n const targetIndex = Math.max(\n 0,\n Math.min(\n currentItems.length - 1,\n Math.floor((y + ITEM_HEIGHT / 2) / ITEM_HEIGHT)\n )\n );\n\n currentItems.forEach((other, idx) => {\n if (other.value === item.value || !positions[other.value]) return;\n let targetY = idx * ITEM_HEIGHT;\n if (idx > activeIndex.current && idx <= targetIndex)\n targetY = (idx - 1) * ITEM_HEIGHT;\n else if (idx < activeIndex.current && idx >= targetIndex)\n targetY = (idx + 1) * ITEM_HEIGHT;\n\n Animated.timing(positions[other.value], {\n toValue: targetY,\n duration: 120,\n useNativeDriver: false,\n }).start();\n });\n },\n onPanResponderRelease: () => {\n const moved = activeItem.current;\n const currentItems = itemsRef.current;\n\n if (\n !moved ||\n !positions[moved.value] ||\n !currentItems.find(it => it.value === moved.value)\n )\n return;\n\n // CORREÇÃO: Usa a propriedade interna _value para obter a posição final\n const finalY = (positions[moved.value] as any)._value; // 👈 CORREÇÃO APLICADA\n const newIndex = Math.max(\n 0,\n Math.min(\n currentItems.length - 1,\n Math.floor((finalY + ITEM_HEIGHT / 2) / ITEM_HEIGHT)\n )\n );\n\n const oldIndex = activeIndex.current;\n const updated = [...currentItems];\n const [removed] = updated.splice(oldIndex, 1);\n updated.splice(newIndex, 0, removed);\n\n // Atualiza o state com a nova ordem.\n setItems(updated);\n onChange(updated);\n\n // A animação final agora está no useEffect, mas fazemos a limpeza das refs.\n setDraggingId(null);\n activeItem.current = null;\n activeIndex.current = -1;\n },\n });\n\n // Cria/Reusa os PanResponders\n items.forEach(it => {\n if (!panRespondersRef.current[it.value]) {\n panRespondersRef.current[it.value] = createPanResponder(it);\n }\n });\n\n const removeItem = (id: string) => {\n if (draggingId === id) {\n setDraggingId(null);\n activeItem.current = null;\n activeIndex.current = -1;\n }\n\n // CORREÇÃO: Delete a referência Animated.Value *e* a referência PanResponder\n if (positions[id]) {\n delete positions[id];\n }\n if (panRespondersRef.current[id]) {\n delete panRespondersRef.current[id];\n }\n\n setItems(prev => {\n const updated = prev.filter(it => it.value !== id);\n\n // Anima os itens restantes para seus novos índices\n updated.forEach((it, idx) => {\n if (positions[it.value])\n Animated.spring(positions[it.value], {\n toValue: idx * ITEM_HEIGHT,\n useNativeDriver: false,\n }).start();\n });\n\n onChange(updated);\n return updated;\n });\n };\n\n const Empty = () => {\n if (Utils.isEmpty(items)) {\n let empty = scope.part('empty', 'Sem registro');\n\n if (empty !== false) return <>{empty}</>;\n }\n\n return <></>;\n };\n\n return (\n <View style={styles.container}>\n <Empty />\n <View style={{ height: items.length * ITEM_HEIGHT, width: '100%' }}>\n {items.map(item => {\n const y = positions[item.value];\n if (!y) return null;\n\n const isDragging = draggingId === item.value;\n const itemStyle = scope.getStyle('row', { ...styles.item });\n\n return (\n <Animated.View\n key={item.value}\n {...(panRespondersRef.current[item.value]?.panHandlers ?? {})}\n style={[\n itemStyle,\n {\n position: 'absolute',\n left: 0,\n right: 0,\n height: ITEM_HEIGHT - 8,\n transform: [{ translateY: y }],\n zIndex: isDragging ? 999 : 0,\n elevation: isDragging ? 999 : 0,\n },\n ]}\n >\n <View style={styles.handle}>\n <Text style={styles.handleText}>≡</Text>\n </View>\n <Text style={styles.itemText}>{item.label}</Text>\n {element.remove && (\n <TouchableOpacity\n onPress={() => removeItem(item.value)}\n style={styles.del}\n >\n <Text style={{ color: '#fff' }}>X</Text>\n </TouchableOpacity>\n )}\n </Animated.View>\n );\n })}\n </View>\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n container: { flex: 1 },\n title: { fontSize: 18, fontWeight: '600', marginBottom: 12 },\n item: {\n backgroundColor: '#fff',\n borderRadius: 10,\n marginVertical: 4,\n paddingHorizontal: 12,\n alignItems: 'center',\n flexDirection: 'row',\n elevation: 3,\n shadowColor: '#000',\n shadowOpacity: 0.05,\n shadowRadius: 6,\n },\n handle: { width: 40, alignItems: 'center', justifyContent: 'center' },\n handleText: { fontSize: 22, color: '#666' },\n itemText: { fontSize: 16, flex: 1 },\n del: {\n backgroundColor: '#e74c3c',\n height: 34,\n width: 34,\n borderRadius: 6,\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n","import UIChildren from '../UIChildren';\nimport { ComponentUtils, DefineType, Utils } from 'react-crud-utils';\n\nexport default function UIInclude(props: DefineType) {\n if (props.rendered === false) {\n return <></>;\n }\n\n let includes = ComponentUtils.getDefine(props, props.name, props.position);\n\n if (Utils.isEmpty(includes)) {\n includes = props.default;\n }\n\n if (!Utils.isEmpty(includes)) {\n let Aux = (tagProp: any) => {\n let Tag: any = props.tag;\n\n if (!Utils.isEmpty(Tag)) {\n return <Tag {...tagProp}>{tagProp.children}</Tag>;\n }\n return <>{tagProp.children}</>;\n };\n\n return (\n <Aux {...props.tagProps}>\n <UIChildren\n transient\n {...props}\n scope={props.scope}\n crud={props.crud}\n part={props.name}\n >\n {includes}\n </UIChildren>\n </Aux>\n );\n }\n return <>{includes}</>;\n}\n","import {\n Keyboard,\n KeyboardAvoidingView,\n Platform,\n StatusBar,\n StyleProp,\n TouchableWithoutFeedback,\n ViewStyle,\n} from 'react-native';\nimport {\n SafeAreaProvider,\n SafeAreaView as SafeAreaContextView,\n} from 'react-native-safe-area-context';\nimport { ThemeUtils, useTheme, Utils } from 'react-crud-utils';\n\ninterface SafeViewType {\n safeStyle?: StyleProp<ViewStyle> | any;\n viewStyle?: StyleProp<ViewStyle> | any;\n children?: any;\n}\n\nexport default function SafeView(props: SafeViewType) {\n let theme = ThemeUtils.getCurrentTheme();\n //v2\n\n if (Utils.isEmpty(theme)) {\n theme = useTheme();\n }\n\n const dismissKeyboard = () => {\n if (Platform.OS !== 'web') {\n Keyboard.dismiss();\n }\n };\n\n return (\n <SafeAreaProvider>\n <SafeAreaContextView\n style={{\n backgroundColor: theme.colors?.theme,\n ...props.viewStyle,\n flex: 1,\n }}\n >\n <StatusBar barStyle=\"dark-content\" backgroundColor=\"#f5f5f5\" />\n <KeyboardAvoidingView\n behavior={Platform.OS === 'ios' ? 'padding' : 'height'}\n style={{\n flex: 1, // 🔹 Ocupa 100% da tela\n justifyContent: 'flex-start',\n }}\n >\n <TouchableWithoutFeedback\n onPress={dismissKeyboard}\n accessible={false}\n >\n <>{props.children}</>\n </TouchableWithoutFeedback>\n </KeyboardAvoidingView>\n </SafeAreaContextView>\n </SafeAreaProvider>\n );\n}\n","import {\n ListType,\n UserType,\n InputType,\n ChartType,\n ContainerType,\n ListInputType,\n TabsType,\n DefineType,\n ButtonType,\n IconType,\n LinkType,\n SliderType,\n} from 'react-crud-utils';\nimport UIElement from './UIElement';\n\nimport UIInclude from './core/UIInclude';\nimport SafeView from './core/SafeView';\nimport UIToast from './core/UIToast';\n\nconst UI = {\n Toast: UIToast,\n Order: (props: ListType) => <UIElement {...props} type=\"order\" />,\n List: (props: ListType) => <UIElement {...props} type=\"list\" />,\n Row: (props: UserType) => <UIElement {...props} type=\"row\" />,\n Value: (props: UserType) => <UIElement {...props} type=\"value\" />,\n Label: (props: UserType) => <UIElement {...props} type=\"label\" />,\n Repeat: (props: ListType) => <UIElement {...props} type=\"repeat\" props={{ search: false }} />,\n Define: (props: DefineType) => <UIElement {...props} type=\"define\" />,\n Include: (props: DefineType) => <UIInclude {...props} />,\n Column: ({ type = 'column', ...props }: UserType) => <UIElement {...props} type=\"column\" />,\n Input: (props: InputType) => <UIElement {...props} />,\n Text: (props: InputType) => <UIElement {...props} type=\"text\" />,\n Textarea: (props: InputType) => <UIElement {...props} type=\"textarea\" />,\n Email: (props: InputType) => <UIElement {...props} type=\"email\" />,\n Button: (props: ButtonType) => <UIElement {...props} type=\"button\" />,\n Link: (props: LinkType) => <UIElement {...props} type=\"link\" />,\n Icon: (props: IconType) => <UIElement {...props} type=\"icon\" transient />,\n Output: (props: ContainerType) => <UIElement {...props} type=\"output\" />,\n Form: (props: ContainerType) => <UIElement {...props} type=\"form\" />,\n Crud: (props: ContainerType) => <UIElement {...props} type=\"crud\" />,\n View: (props: ContainerType) => <UIElement {...props} type=\"view\" transient />,\n Bottom: (props: ContainerType) => <UIElement {...props} type=\"bottom\" />,\n Dialog: (props: ContainerType) => <UIElement {...props} type=\"dialog\" />,\n Content: (props: ContainerType) => <UIElement {...props} type=\"content\" />,\n Top: (props: ContainerType) => <UIElement {...props} type=\"top\" />,\n Card: (props: ContainerType) => <UIElement {...props} type=\"card\" />,\n Tab: (props: ContainerType) => <UIElement {...props} type=\"tab\" />,\n Tabs: (props: TabsType) => <UIElement {...props} type=\"tabs\" />,\n Step: (props: ContainerType) => <UIElement {...props} type=\"tab\" layout=\"step\" />,\n Stepper: (props: TabsType) => <UIElement {...props} type=\"tabs\" layout=\"stepper\" />,\n Money: (props: InputType) => <UIElement {...props} type=\"money\" />,\n Chart: (props: ChartType) => <UIElement {...props} type=\"chart\" />,\n Password: (props: InputType) => <UIElement {...props} type=\"password\" />,\n Complete: (props: InputType) => <UIElement {...props} type=\"complete\" />,\n Checkbox: (props: InputType) => <UIElement {...props} type=\"switch\" />,\n Switch: (props: InputType) => <UIElement {...props} type=\"switch\" />,\n Radio: (props: ListInputType) => <UIElement {...props} type=\"radio\" />,\n Select: (props: ListInputType) => <UIElement {...props} type=\"select\" />,\n Toggle: (props: ListInputType) => <UIElement {...props} type=\"toggle\" />,\n Entity: (props: ListInputType) => <UIElement {...props} type=\"entity\" />,\n Element: (props: ListInputType) => <UIElement {...props} type=\"element\" />,\n Quantity: (props: ListInputType) => <UIElement {...props} type=\"quantity\" />,\n Slider: (props: SliderType) => <UIElement {...props} type=\"slider\" />,\n SafeView: SafeView,\n};\nexport default UI;\n"],"mappings":"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","names":["useEffect","useRef","useState","React","useState","Utils","Fragment","jsx","useState","element","React","Utils","jsx","jsx","styles","Fragment","jsx","HtmlUtils","ScopeUtils","Utils","ComponentUtils","CrudUtils","ViewUtils","Text","TouchableOpacity","Linking","jsx","styles","Ionicons","Utils","Fragment","jsx","Utils","Text","View","useState","React","View","Ionicons","jsx","Animated","Fragment","jsx","jsxs","Utils","useState","styles","extra","Text","View","useState","Utils","Text","TouchableOpacity","StyleSheet","Modal","View","Ionicons","jsx","jsxs","useState","Utils","value","styles","View","TouchableOpacity","Text","Ionicons","Modal","StyleSheet","useState","Utils","jsx","useState","ComponentUtils","Utils","Fragment","jsx","Text","TouchableOpacity","Linking","jsx","styles","Text","TouchableOpacity","Linking","jsx","styles","useState","Utils","StyleSheet","View","Ionicons","Fragment","jsx","jsxs","styles","Linking","StyleSheet","Text","TouchableHighlight","View","Utils","Ionicons","useState","ComponentUtils","Utils","StyleSheet","Text","View","useRef","useState","ScopeUtils","Pressable","StyleSheet","View","useEffect","useState","Fragment","jsx","styles","ScopeUtils","useRef","item","useState","View","Pressable","StyleSheet","Fragment","jsx","jsxs","Utils","styles","stylesRepeat","stylesList","ComponentUtils","useState","Text","View","StyleSheet","Fragment","jsx","jsxs","Utils","Ionicons","useState","Utils","StyleSheet","Text","TouchableHighlight","View","jsx","Utils","useState","index","styles","Text","View","TouchableHighlight","StyleSheet","Ionicons","useState","Utils","Text","TouchableHighlight","Fragment","jsx","jsxs","styles","useRef","useState","ComponentUtils","ViewUtils","StyleSheet","jsx","styles","SafeAreaView","Modal","StyleSheet","Fragment","jsx","jsxs","useRef","ViewUtils","useState","styles","ComponentUtils","SafeAreaView","Ionicons","ScrollView","StyleSheet","View","ComponentUtils","Utils","ViewUtils","useRef","Text","TouchableOpacity","View","ComponentUtils","Utils","Ionicons","useState","Fragment","jsx","jsxs","ComponentUtils","Utils","Text","TouchableOpacity","Ionicons","View","Fragment","jsx","jsxs","useRef","crud","ViewUtils","Utils","ComponentUtils","View","styles","ScrollView","StyleSheet","Toast","useRef","useState","useEffect","Utils","View","Text","StyleSheet","Animated","TouchableOpacity","Fragment","jsx","jsxs","items","styles","Fragment","jsx","jsxs","Utils","useState","ScopeUtils","useRef","Toast","styles","useEffect","Ionicons","Linking","HtmlUtils","props","View","TouchableHighlight","Text","ComponentUtils","box","ViewUtils","crud","CrudUtils","StyleSheet","ComponentUtils","Utils","Fragment","jsx","Platform","TouchableWithoutFeedback","Utils","Fragment","jsx","jsxs","jsx"]}
1
+ {"version":3,"sources":["../src/elements/UIElement.tsx","../src/elements/UIChildren.tsx","../src/elements/tabs/ElTabs.tsx","../src/elements/charts/ElChart.tsx","../src/elements/core/UIAutoComplete.tsx","../src/elements/UIComplete.tsx","../src/elements/core/UILink.tsx","../src/elements/core/UIIcon.tsx","../src/elements/core/UIButton.tsx","../src/elements/core/LoadingIcon.tsx","../src/elements/core/UISelect.tsx","../src/elements/core/UISwitch.tsx","../src/elements/core/UISlider.tsx","../src/elements/core/UIOption.tsx","../src/elements/core/UIRadio.tsx","../src/elements/core/UIInput.tsx","../src/elements/core/UIList.tsx","../src/elements/core/UIListData.tsx","../src/elements/core/UIListRow.tsx","../src/hooks/useIsVisible.ts","../src/elements/core/UIToggle.tsx","../src/elements/core/UIQuantity.tsx","../src/elements/core/UIModal.tsx","../src/elements/core/UIToast.tsx","../src/elements/core/UIView.tsx","../src/elements/core/UIHeader.tsx","../src/elements/core/UIOrder.tsx","../src/elements/core/UIInclude.tsx","../src/elements/core/SafeView.tsx","../src/elements/UI.tsx"],"sourcesContent":["import React, { createContext, useContext, useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport UIChildren from './UIChildren';\nimport ElTabs from './tabs/ElTabs';\nimport ElChart from './charts/ElChart';\nimport UIComplete from './UIComplete';\nimport {\n Crud,\n HtmlUtils,\n ScopeUtils,\n Utils,\n ElementType,\n MethodType,\n ActionType,\n ComponentUtils,\n CrudUtils,\n ViewUtils,\n Scope,\n} from 'react-crud-utils';\nimport UILink from './core/UILink';\nimport UIIcon from './core/UIIcon';\nimport UIButton from './core/UIButton';\nimport UISelect from './core/UISelect';\nimport UISwitch from './core/UISwitch';\nimport UISlider from './core/UISlider';\nimport UIOption from './core/UIOption';\nimport UIRadio from './core/UIRadio';\nimport UIInput from './core/UIInput';\nimport { Alert, Image, Linking, StyleSheet, Text, TouchableHighlight, View } from 'react-native';\nimport UIList from './core/UIList';\nimport UIToggle from './core/UIToggle';\nimport UIQuantity from './core/UIQuantity';\nimport UIModal from './core/UIModal';\nimport { Ionicons } from '@expo/vector-icons';\nimport UIView from './core/UIView';\nimport Toast from 'react-native-toast-message';\nimport UIOrder from './core/UIOrder';\n\nconst CrudContext = createContext<any>({});\n\nexport default function UIElement(props: ElementType) {\n const ctx = useContext(CrudContext);\n const theme = Utils.nvl(props.theme, ctx?.theme);\n\n let crud: Crud = Utils.nvl(props.crud, ctx?.crud);\n let [scope] = useState<Scope>(ScopeUtils.create({ crud, ...props, theme }));\n let [index, setIndex] = useState(0);\n let [error, setError]: string | any = useState(null);\n\n scope.compile(props);\n\n crud = scope.crud;\n\n let options: any = scope.getOptions();\n\n let original = scope.original;\n let ref = useRef(null);\n\n scope.update = () => {\n setIndex(++index);\n };\n\n scope.updateElement = () => {\n setIndex(++index);\n };\n\n scope.toast = (message: string, type = 'info', args?: any) => {\n Toast.show({\n type, // 'success' | 'error' | 'info'\n text1: message,\n position: 'bottom', // 'top' é outra opção\n visibilityTime: 3000, // tempo que fica visível em ms\n ...args,\n });\n };\n\n scope.prompt = (args: MethodType) => {\n let event = args.event as ActionType;\n\n if (event) {\n let message = 'Você tem certeza que deseja continuar?';\n let title = 'Atenção';\n let prompt = event.prompt;\n\n if (typeof prompt === 'string') {\n message = prompt;\n }\n\n if (typeof prompt === 'object') {\n message = Utils.nvl(prompt.message, message);\n title = Utils.nvl(prompt.title, title);\n }\n\n Alert.alert(\n title,\n message,\n [\n {\n text: 'Cancelar',\n style: 'cancel',\n },\n {\n text: 'Confirmar',\n onPress: () => scope.execute(args),\n },\n ],\n { cancelable: false },\n );\n }\n };\n const Custom = () => {\n let c: any = original.custom;\n\n if (c) {\n if (typeof c === 'string') {\n return <UIElement element={{ value: c, type: 'dummy' }} crud={crud}></UIElement>;\n }\n\n return <UIElement type={c.type} tag={c.type} {...c.props} crud={crud}></UIElement>;\n }\n\n return <></>;\n };\n\n if (scope.is('type', 'dummy')) {\n return <>{scope.getDisplayValue()}</>;\n }\n\n let onCheck = () => {\n let v = scope.getValue();\n let check = !(v === true);\n\n onChange({ target: { value: check } });\n };\n\n let onChange = (e: any) => {\n let val = e.target.value;\n\n if (scope.isType('integer', 'int', 'number')) {\n val = parseInt(val);\n } else if (scope.isType('decimal')) {\n val = parseFloat(val);\n }\n\n if (scope.isType('select', 'complete')) {\n val = scope.getSelectedItem(val);\n }\n\n scope.changeValue(val);\n scope.update();\n };\n\n let onClick = (e: any) => {\n if (scope.currentDialog?.component) return;\n\n scope.call('click');\n };\n\n let defaultsInput: any = {\n scope,\n crud,\n onChange: onChange,\n };\n\n if (scope.isType('password')) {\n defaultsInput.type = 'password';\n }\n\n let isChecked = () => {\n let v = scope.getValue();\n\n return v === true;\n };\n\n let hasChildren = () => {\n if (scope.isInput()) {\n return false;\n }\n\n return !Utils.isEmpty(props.children) || !Utils.isEmpty(props.elements);\n };\n\n let isInput = scope.is(\n 'type',\n 'text',\n 'textarea',\n 'number',\n 'integer',\n 'int',\n 'phone',\n 'postalCode',\n 'money',\n 'password',\n 'email',\n );\n\n const getStyle = (part?: string, extra?: any) => {\n let type = Utils.nvl(original.type, 'none');\n let key = Utils.nvl(part, 'root');\n let def = { ...styles[key] };\n let hasChild = hasChildren();\n\n type = Utils.nvl(original.layout, type);\n\n if (!part && !hasChild) {\n def = { ...def };\n }\n\n if (scope.isInput()) {\n def = { ...def, ...elementStyle.input[key] };\n }\n\n def = { ...def, ...elementStyle?.[type]?.[key] };\n\n if (hasChild && part) {\n def = { ...def, ...withChildStyles[part] };\n }\n\n return { ...def, ...scope.getStyle(part, { ...def, ...extra }) };\n };\n\n let elStyle = getStyle('element');\n\n let defaultsUI: any = {\n required: scope.isRequired(),\n size: 'small',\n scope,\n crud,\n style: elStyle,\n placeholder: scope.attr('placeholder', 'Digite aqui'),\n };\n\n scope.error = (msg: string) => {\n error = msg;\n setError(msg);\n };\n\n if (!original.list?.url && !original.load?.url) {\n scope.start();\n }\n\n useEffect(() => {\n scope.start();\n });\n\n const CustomIcon = () => {\n if (typeof original.icon === 'string') {\n return <Ionicons name={original.icon} style={scope.getStyle('icon')} />;\n }\n return <>{original.icon}</>;\n };\n\n scope.open = (args: any) => {\n Linking.openURL(args.url);\n };\n\n useLayoutEffect(() => {\n if (ref?.current && scope.is('type', 'card', 'list', 'tabs', 'stepper')) {\n let el: any = ref?.current;\n\n if (el?.classList) {\n let bg = HtmlUtils.getBGColor(el);\n\n if (bg === 'rgb(255, 255, 255)') {\n el.classList.add('ui-dark');\n } else {\n el.classList.add('ui-light');\n }\n }\n }\n });\n\n const isShowLabel = () => {\n if (\n typeof original.label !== 'undefined' &&\n original.label !== false &&\n !scope.isType('button', 'dialog', 'modal', 'view')\n ) {\n return true;\n }\n\n return false;\n };\n\n const isShowInner = () => {\n if (scope.isType('icon')) return false;\n if (hasChildren()) {\n return false;\n }\n return true;\n };\n\n if (!scope.isRendered() || scope.is('type', 'define')) {\n return <></>;\n }\n\n const isShowChild = () => {\n if (scope.isType('tabs', 'view', 'grid', 'list', 'define', 'repeat', 'modal', 'dialog', 'chart', 'button')) {\n return false;\n }\n\n return true;\n };\n\n let isTouch = !scope.isType('input', 'grid', 'list', 'order', 'repeat') && original.click;\n let custom: any = {};\n\n if (isTouch) {\n custom.underlayColor = 'transparent';\n custom.onPress = onClick;\n }\n\n let Tag = (props: any) => {\n let Aux: any = View;\n\n if (isTouch) {\n Aux = TouchableHighlight;\n }\n\n if (scope.isType('dialog', 'order') || original.transient) {\n return <>{props.children}</>;\n }\n\n return <Aux {...props} />;\n };\n\n let Inner = () => {\n return (\n <>\n {scope.getPart('render', null, <></>)}\n {scope.is('type', 'button') && (\n <UIButton {...defaultsUI} onClick={onClick} variant={scope.attr('variant', 'outlined')}>\n {original.icon && <CustomIcon />}\n {original.label && <Text style={scope.getPart('label', 'button')}>{scope.getLabel()}</Text>}\n </UIButton>\n )}\n {scope.is('type', 'link') && (\n <UILink {...defaultsUI} onClick={onClick} variant={scope.attr('variant', 'outlined')}>\n {original.icon && <CustomIcon />}\n {original.label && <Text style={scope.getPart('label', 'link')}>{scope.getLabel()}</Text>}\n </UILink>\n )}\n {isInput && <UIInput {...defaultsInput} {...defaultsUI} InputProps={{ ...original.inputProps }} />}\n {scope.is('type', 'complete', 'autocomplete') && (\n <UIComplete scope={scope} defaultsInput={defaultsInput} defaultsUI={defaultsUI} />\n )}\n {scope.is('type', 'quantity') && (\n <UIQuantity scope={scope} defaultsInput={defaultsInput} defaultsUI={defaultsUI} />\n )}\n {scope.is('type', 'checkbox', 'boolean', 'switch') && (\n <UISwitch checked={isChecked()} {...defaultsInput} onChange={onCheck} />\n )}\n {scope.isType('slider') && <UISlider {...defaultsInput} onChange={onCheck} />}\n {scope.is('type', 'select') && (\n <UISelect {...defaultsInput} {...defaultsUI} value={scope.getSelectedValue()} />\n )}\n {scope.is('type', 'toggle') && (\n <UIToggle {...defaultsInput} {...defaultsUI} value={scope.getSelectedValue()} />\n )}\n {scope.is('type', 'radio') && (\n <UIRadio {...defaultsInput} {...defaultsUI} row>\n {options.map((row: any, i: number) => (\n <UIOption\n key={'i' + i}\n control={<UIRadio {...defaultsUI} />}\n label={row.label}\n value={row.value}\n />\n ))}\n </UIRadio>\n )}\n {scope.is('type', 'custom') && <Custom />}\n {scope.is('type', 'column') && (\n <>\n {scope.is('format', 'img') && <Image source={scope.getDisplayValue()} />}\n {scope.is('format', 'icon') && <UIIcon scope={scope} crud={crud} />}\n {!scope.is('format', 'icon', 'img') && <Text>{scope.getDisplayValue()}</Text>}\n </>\n )}\n {scope.is('type', 'output', 'value') && <Text style={getStyle('value')}>{scope.getDisplayValue()}</Text>}\n </>\n );\n };\n\n let Include = ({ name, style }: any) => {\n if (props[name]) {\n let define = ComponentUtils.getDefine(props, name);\n\n if (!Utils.isEmpty(define)) {\n return (\n <UIChildren {...props} scope={scope} crud={crud} style={getStyle(name, style)}>\n {define}\n </UIChildren>\n );\n }\n }\n return <></>;\n };\n\n let Container = () => {\n return (\n <>\n {isShowLabel() && (\n <View\n style={getStyle('outerLabel', {\n alignSelf: 'flex-start',\n flexDirection: 'row',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n })}\n >\n <Text style={getStyle('label')}>{scope.getLabel()}</Text>\n <Include name=\"actions\" style={{ width: 'auto' }} />\n </View>\n )}\n {isShowInner() && (\n <>\n <View style={getStyle('inner')}>\n <Inner />\n </View>\n {error && (\n <View\n style={getStyle('error', {\n fontSize: 12,\n paddingTop: 4,\n color: '#e55b5b',\n })}\n >\n {error}\n </View>\n )}\n </>\n )}\n {scope.isType('list', 'repeat') && <UIList {...props} scope={scope} crud={crud} />}\n {scope.isType('order') && <UIOrder {...props} scope={scope} crud={crud} />}\n\n {scope.isType('chart') && <ElChart {...props} scope={scope} crud={crud} />}\n {scope.isType('tabs') && <ElTabs {...props} scope={scope} crud={crud} />}\n\n {scope.isType('view') && <UIView {...props} scope={scope} crud={crud} />}\n\n {scope.is('type', 'icon') && (\n <UIIcon {...defaultsUI} onClick={onClick} variant={scope.attr('variant', 'outlined')}>\n {scope.getDisplayValue()}\n </UIIcon>\n )}\n\n {isShowChild() && <UIChildren {...props} scope={scope} crud={crud} style={getStyle('inner')} />}\n <UIModal {...props} scope={scope} crud={crud} />\n {original.help && (\n <View\n style={getStyle('help', {\n alignSelf: 'flex-start',\n flexDirection: 'row',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n })}\n >\n <Text style={getStyle('helpText')}>{scope.getHelp()}</Text>\n </View>\n )}\n </>\n );\n };\n\n let Card = (props: any) => {\n let isCard = scope.is('type|layout', 'card');\n\n if (scope.isType('list')) {\n let empty = scope.getPart('empty', null, undefined);\n let items = scope.getItems();\n\n if (empty === false && Utils.isEmpty(items)) {\n isCard = false;\n }\n }\n\n if (isCard) {\n let scopeTheme = scope.getTheme();\n let isShadown = Utils.nvl(original.shadow, scopeTheme?.shadow, true);\n let shadow = isShadown ? boxStyle.box : boxStyle.card;\n let box = {\n ...getStyle('card', { ...shadow, alignSelf: 'stretch' }),\n };\n\n let borderWidth = original.boxBorder;\n\n if (borderWidth || borderWidth === 0) {\n if (borderWidth === true) {\n borderWidth = 1;\n }\n\n box = { ...box, borderWidth };\n }\n\n return (\n <View style={getStyle('card', { ...box })}>\n <View\n style={getStyle('boxInner', {\n paddingHorizontal: 15,\n paddingVertical: 10,\n })}\n >\n {props.children}\n </View>\n </View>\n );\n }\n\n if (scope.isInput() || original.container) {\n return <View style={getStyle('container', { paddingVertical: 5, width: '100%' })}>{props.children}</View>;\n }\n return <>{props.children}</>;\n };\n\n scope.dialogShow = (args?: MethodType) => {\n let event = Utils.nvl(args?.event, {});\n\n if (event?.debug) console.log(args);\n\n let caller = args.caller;\n let main = ViewUtils.getCrud('view');\n let parent = main.dialog;\n let { crud } = args;\n let name = scope.getName('modal');\n let edit = args.edit === true;\n let def: any = {};\n let rowItem = null;\n let component = event?.component;\n let elo = Utils.nvl(caller?.original, original);\n let localScope = Utils.nvl(event?.scope, scope);\n\n if (crud.is('row')) {\n def.parent = crud.parent.parent;\n def.search = crud.parent;\n\n rowItem = crud.data;\n } else if (crud.is('search')) {\n def.parent = crud.parent;\n def.search = crud;\n }\n\n let crudData = crud.data;\n let eventData = Utils.nvl(event.data, event.send);\n\n if (typeof eventData === 'function') {\n eventData = eventData.call(this, args);\n }\n\n let data = {};\n\n if (event.send === false || event.data === false) {\n crudData = {};\n } else {\n data = Utils.nvl(eventData, args.item, rowItem, crudData, {});\n }\n\n let d = CrudUtils.create('dialog', {\n parent: crud,\n root: crud,\n name,\n data,\n edit,\n view: crud.view,\n scope: localScope,\n ...def,\n });\n\n let el: any = {\n label: elo.label,\n icon: elo.icon,\n type: 'dialog',\n };\n\n let close = event.dialog?.close;\n\n if (typeof event.dialog === 'object') {\n el = { ...el, ...event.dialog };\n }\n\n if (event.header) el.header = event.header;\n if (event.label) el.label = event.label;\n if (event.title) el.title = event.title;\n\n let label = Utils.nvl(el.title, el.label);\n\n el.label = label;\n\n let extra: any = {};\n\n if (!component) {\n extra = { ...localScope?.original };\n\n delete extra.scope;\n delete extra.crud;\n delete extra.owner;\n }\n\n let dialogScope = ScopeUtils.create({\n parent: localScope,\n crud: d,\n ...el,\n ...extra,\n owner: localScope,\n });\n\n let dialog = {\n crud: d,\n label,\n parent,\n component,\n children: extra.children,\n scope: dialogScope,\n close,\n props: event.props,\n debug: event.debug,\n };\n\n main.dialog = dialog;\n scope.currentDialog = dialog;\n\n if (parent) parent.update?.();\n scope.update();\n };\n\n scope.dialogHide = (args?: MethodType) => {\n let main = ViewUtils.getCrud('view');\n let current = main.dialog;\n let next = Utils.nvl(current.parent, null);\n\n main.dialog = next;\n scope.currentDialog = next;\n\n let nextScope = next?.scope?.parent;\n let currScope = current?.scope?.parent;\n\n if (currScope) {\n const close = current.close;\n\n currScope.update();\n\n if (close) {\n if (close?.debug) console.log('Fechando');\n current.scope.call('close', { close });\n }\n }\n\n if (nextScope) {\n nextScope.update();\n }\n };\n\n if (original.hideEmpty && !scope.isType('list', 'select', 'complete')) {\n let value = scope.getValue();\n\n if (Utils.isEmpty(value)) return <></>;\n }\n\n return (\n <CrudContext.Provider value={{ crud, theme }}>\n <Tag ref={ref} style={getStyle()} {...custom}>\n <Card>\n <Container />\n </Card>\n </Tag>\n </CrudContext.Provider>\n );\n}\n\nlet boxStyle = StyleSheet.create({\n card: {\n borderWidth: 1,\n borderColor: '#dedede',\n borderStyle: 'solid',\n backgroundColor: 'white',\n borderRadius: 10,\n width: '100%',\n },\n box: {\n borderWidth: 1,\n borderColor: '#dedede',\n borderStyle: 'solid',\n backgroundColor: 'white',\n borderRadius: 10,\n width: '100%',\n shadowColor: '#000',\n shadowOpacity: 0.1,\n shadowRadius: 8,\n elevation: 3,\n },\n});\n\nconst box: any = {\n ...boxStyle.box,\n};\n//v5\nconst elementStyle: any = {};\n\nelementStyle.view = {\n inner: {\n width: '100%',\n alignItems: 'normal',\n flex: 1,\n },\n container: {\n width: '100%',\n backgroundColor: 'background',\n flex: 1,\n gap: 10,\n },\n root: {\n width: '100%',\n flex: 1,\n alignItems: 'normal',\n padding: 0,\n },\n};\n\nelementStyle.input = StyleSheet.create({\n label: {\n paddingLeft: 0,\n },\n inner: {\n flex: 1,\n width: '100%',\n padding: 0,\n gap: 10,\n alignSelf: 'flex-start',\n flexDirection: 'row',\n flexWrap: 'wrap',\n },\n});\n\nelementStyle.quantity = {\n inner: {\n ...box,\n backgroundColor: 'primarySoft',\n fontWeight: 600,\n fontSize: 16,\n borderRadius: 25,\n borderWidth: 0,\n paddingHorizontal: 5,\n paddingVertical: 5,\n flexWrap: 'nowrap',\n flex: 1,\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n },\n};\n\nelementStyle.toggle = StyleSheet.create({\n root: {\n height: 'auto',\n },\n inner: {\n ...box,\n flex: 1,\n width: '100%',\n gap: 10,\n borderRadius: 2,\n justifyContent: 'center',\n flexDirection: 'row',\n alignSelf: 'flex-start',\n flexWrap: 'nowrap',\n },\n});\n\nconst styles = StyleSheet.create({\n root: {\n gap: 5,\n flexDirection: 'column',\n flexWrap: 'wrap',\n width: '100%',\n alignItems: 'flex-start',\n },\n label: {\n fontWeight: 600,\n fontSize: 12,\n paddingVertical: 3,\n color: 'labelColor',\n },\n inner: { width: '100%', justifyContent: 'space-between' },\n});\n\nconst withChildStyles = StyleSheet.create({\n root: {\n gap: 10,\n },\n label: {\n width: '100%',\n fontWeight: 500,\n fontSize: 24,\n },\n});\n","import React, { useState } from 'react';\nimport UIElement from './UIElement';\nimport { Crud, Scope, ScopeUtils, Utils } from 'react-crud-utils';\nimport { StyleSheet, View } from 'react-native';\n\ninterface UIChildrenType {\n scope: Scope;\n crud?: Crud;\n validateScope?: String;\n children?: any;\n elements?: any;\n transient?: boolean;\n part?: string;\n style?: any;\n childProps?: any;\n}\n\nexport default function UIChildren(props: UIChildrenType) {\n let [scope] = useState(Utils.nvl(props.scope, ScopeUtils.create(props)));\n let crud = Utils.nvl(props.crud, scope.crud);\n let validateScope = Utils.nvl(props.validateScope, 'global');\n let name = Utils.nvl(props.part, 'child');\n\n if (scope.isInput()) {\n return <></>;\n }\n\n let Paint = ({ child }: any) => {\n if (!child) {\n return <></>;\n }\n if (typeof child === 'string') {\n return <>{child}</>;\n }\n\n let Custom = child.type;\n let pps = { ...child.props };\n\n delete pps.children;\n\n if (typeof Custom === 'string') {\n if (Utils.isEmpty(child.props.children)) {\n return <Custom {...pps} />;\n }\n return (\n <Custom {...pps}>\n <UIChildren\n transient\n validateScope={validateScope}\n {...child.props}\n scope={scope}\n crud={crud}\n ></UIChildren>\n </Custom>\n );\n } else if (typeof Custom === 'function') {\n return (\n <Custom\n validateScope={validateScope}\n {...child.props}\n parent={scope}\n crud={crud}\n ></Custom>\n );\n }\n\n if (!Utils.isEmpty(child.props?.children)) {\n return (\n <UIChildren\n validateScope={validateScope}\n {...child.props}\n scope={scope}\n crud={crud}\n transient\n ></UIChildren>\n );\n }\n return <></>;\n };\n\n const Draw = () => {\n if (props.elements) {\n return (\n <>\n {Object.entries(props.elements).map((t: any, k) => {\n return <UIElement crud={crud} {...t[1]} />;\n })}\n </>\n );\n }\n return (\n <>\n {React.Children.map(props.children, child => {\n return <Paint child={child}></Paint>;\n })}\n </>\n );\n };\n\n if (props.transient) {\n return <Draw />;\n }\n\n if (Utils.isEmpty(props.children) && Utils.isEmpty(props.elements)) {\n return <></>;\n }\n\n const getStyle = (part?: string) => {\n let key = Utils.nvl(part, 'root');\n let def = styles[key];\n let css = {};\n\n if (!Utils.isEmpty(props.style)) {\n if (props.style?.push) {\n Utils.each(props.style, s => {\n if (s) {\n css = { ...css, ...s };\n }\n });\n } else {\n css = { ...props.style };\n }\n }\n return { ...def, ...css, ...scope.getStyle(part) };\n };\n\n if (props.transient) {\n return <Draw />;\n }\n return (\n <>\n <View style={getStyle(name)}>\n <Draw />\n </View>\n </>\n );\n}\n\nconst styles = StyleSheet.create({\n child: { width: '100%' },\n inner: { width: '100%' },\n});\n","import React, { useState, useEffect } from 'react';\nimport UIChildren from '../UIChildren';\nimport UI from '../UI';\n\nimport Ionicons from '@expo/vector-icons/Ionicons';\nimport { ChildType, CrudUtils, Utils } from 'react-crud-utils';\n\nexport default function ElTabs(props: ChildType) {\n let scope = props.scope;\n let [selectedIndex, setSelectedIndex]: any = useState(0);\n let element = scope.original;\n let items = scope.getItems();\n let counter = 0;\n\n let tabs: any = [];\n let [selected, setSelected]: any = useState(null);\n\n const onChangeTab = (tab: any, validate = true) => {\n if (tab) {\n scope.execute({\n event: {\n validate,\n validateScope: element.validateScope,\n action: () => {\n scope.changeValue(tab.data);\n\n selected = tab;\n selectedIndex = tab.index;\n\n setSelectedIndex(selectedIndex);\n setSelected(tab);\n },\n },\n });\n }\n };\n\n const getStyleClass = (t: any) => {\n let s = 'ui-tabs-item ui-click';\n\n if (selected?.index === t.index) {\n s = s + ' ui-tab-selected';\n }\n return s;\n };\n\n const addTab = (child: any, item: any) => {\n let original = { ...child.props };\n\n if (!item) {\n item = scope.crud.data;\n }\n\n let crudTab = CrudUtils.create('tabs', {\n data: item,\n changed: item,\n parent: scope.crud,\n });\n\n let element = Utils.resolve(original, crudTab);\n\n if (element.rendered === false) {\n return;\n }\n\n tabs.push({\n ...element,\n child,\n element,\n original,\n index: counter++,\n data: item,\n });\n };\n\n React.Children.map(props.children, (child, index) => {\n if (Utils.isEmpty(items)) {\n addTab(child, {});\n } else {\n for (const i in items) {\n let o = items[i];\n\n addTab(child, o);\n }\n }\n });\n\n if (!selected) {\n onChangeTab(tabs[selectedIndex], false);\n }\n\n const nav = (i: any) => {\n let t = tabs[selectedIndex + i];\n\n onChangeTab(t);\n };\n\n const previous = () => {\n nav(-1);\n };\n\n const next = () => {\n nav(1);\n };\n\n let isStepper = element.layout === 'stepper';\n\n return (\n <div\n className={scope.getStyleClass('inner')}\n style={scope.getStyle('inner')}\n >\n <div className=\"ui-tabs-content\">\n <div className=\"ui-tabs-items\">\n {tabs.map((t: any, i: number) => (\n <div\n key={Utils.key(element.id, 'tab', i)}\n className={getStyleClass(t)}\n onClick={() => {\n onChangeTab(t);\n }}\n >\n {isStepper && <div className=\"ui-tab-item-divisor\" />}\n <div className=\"ui-tab-item-inner\">\n {isStepper && <div className=\"ui-step-line\" />}\n <div className=\"ui-tab-item-label\">\n {isStepper ? t.index + 1 : t.label}\n </div>\n </div>\n </div>\n ))}\n </div>\n {selected && (\n <>\n {isStepper && <div className=\"ui-tabs-label\">{selected.label}</div>}\n <div className=\"ui-tabs-area\">\n <UIChildren {...props} scope={scope}>\n {selected.child}\n </UIChildren>\n </div>\n {element.layout === 'stepper' && (\n <div className=\"ui-tabs-actions\">\n <UI.Output space={6} layout=\"left\">\n <UI.Include\n {...props}\n transient\n name=\"left\"\n default={\n <UI.Button\n rendered={selectedIndex > 0}\n icon={<Ionicons />}\n click={previous}\n />\n }\n />\n </UI.Output>\n <UI.Output space={6} layout=\"right\">\n <UI.Include\n {...props}\n transient\n name=\"right\"\n default={\n <UI.Button\n rendered={selectedIndex < tabs.length - 1}\n icon={<Ionicons />}\n click={next}\n />\n }\n />\n </UI.Output>\n </div>\n )}\n </>\n )}\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport { ChildType, Scope, Utils } from \"react-crud-utils\";\n\nexport default function ElChart(props: ChildType) {\n let scope: Scope = props.scope;\n let items: any = scope.getItems();\n let columns = Utils.asList(scope.original.columns);\n\n return <div className=\"ui-chart-data\"></div>;\n}\n","import { Text, TouchableOpacity, Linking, StyleSheet } from 'react-native';\n\nexport default function UIAutoComplete(props: any) {\n const handlePress = () => {\n Linking.openURL('https://reactnative.dev/');\n };\n\n return (\n <TouchableOpacity onPress={handlePress}>\n <Text style={styles.link}>Clique aqui para acessar o React Native</Text>\n </TouchableOpacity>\n );\n}\n\nconst styles = {\n link: {},\n};\n","import { ChildType } from 'react-crud-utils';\nimport AutoComplete from './core/UIAutoComplete';\n\nexport default function UIComplete({\n defaultsInput,\n defaultsUI,\n scope,\n}: ChildType) {\n return (\n <>\n <AutoComplete {...defaultsInput} {...defaultsUI} />\n </>\n );\n}\n","import { Text, TouchableOpacity, Linking, StyleSheet } from 'react-native';\n\nexport default function UILink(props: any) {\n const handlePress = () => {\n Linking.openURL('https://reactnative.dev/');\n };\n\n return (\n <TouchableOpacity onPress={handlePress}>\n <Text style={styles.link}>Clique aqui para acessar o React Native</Text>\n </TouchableOpacity>\n );\n}\n\nconst styles = {\n link: {},\n};\n","import { Ionicons, MaterialCommunityIcons, AntDesign, Entypo, EvilIcons, FontAwesome } from '@expo/vector-icons';\n\nimport { ChildType, Utils } from 'react-crud-utils';\n\nexport default function UIIcon({ scope }: ChildType) {\n let name = scope.getValue() as string;\n let libs: any = {\n ion: Ionicons,\n fa: FontAwesome,\n ant: AntDesign,\n entypo: Entypo,\n evil: EvilIcons,\n material: MaterialCommunityIcons,\n };\n\n let library = Utils.nvl(scope.original.library, 'ion');\n let icon = name.trim();\n\n if (!icon) return <></>;\n\n if (name.includes(' ')) {\n let split = name.split(/\\s+/);\n\n library = split[0];\n icon = split[1];\n }\n\n let Aux = libs[library];\n let css: any = scope.getStyle('icon');\n let fontSize = scope.part('size', undefined);\n let size = scope.part('iconSize', fontSize);\n\n if (scope.original?.transient) {\n css = { ...css, ...scope.getStyle() };\n }\n\n if (size) css.fontSize = size;\n\n return <Aux size={size} name={name} style={css} />;\n}\n","import { ChildType, ComponentUtils, Utils } from 'react-crud-utils';\nimport { Pressable, Text, Modal, View, TouchableWithoutFeedback } from 'react-native';\nimport UI from '../UI';\nimport { useState } from 'react';\nimport LoadingIcon from './LoadingIcon';\n\nconst BUTTONS_SIZE: any = { small: { minWidth: 30, height: 30 } };\n\nexport default function UIButton(props: ChildType) {\n let scope = props.scope;\n let element = scope.original;\n let size = Utils.nvl(element.size, 'default');\n let align = Utils.nvl(element.align, 'center');\n let variant = Utils.nvl(element.variant, 'default');\n let [loaderIndex, setLoaderIndex] = useState(-1);\n let [open, setOpen] = useState(false);\n\n let color = element.color;\n let label = scope.getLabel();\n let icon = scope.getPart('icon');\n let children = ComponentUtils.getChild(props, 'button');\n\n if (!color) color = 'primaryLight';\n\n const styles: any = {\n buttonLabel: {\n color: '#ffffff',\n fontWeight: 400,\n fontSize: 15,\n },\n buttonInner: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n height: 44,\n minWidth: 44,\n },\n buttonIcon: {\n color: '#fff',\n fontSize: 16,\n },\n button: {\n backgroundColor: color,\n borderRadius: 20,\n gap: 10,\n justifyContent: 'center',\n alignItems: 'center',\n flexDirection: 'row',\n },\n overlay: {\n flex: 1,\n backgroundColor: 'rgba(0,0,0,0.5)',\n justifyContent: 'center',\n alignItems: 'center',\n },\n modal: {\n backgroundColor: '#fff',\n borderRadius: 12,\n padding: 20,\n minWidth: '80%',\n },\n };\n\n const onClick = () => {\n // 👉 Se tiver children, abre modal\n if (!Utils.isEmpty(children)) {\n setOpen(true);\n return;\n }\n\n setTimeout(() => {\n scope.call('click', {});\n }, 0);\n };\n\n const style = (part: string, extra?: any) => {\n let css = { ...styles[part], ...extra };\n\n if (variant === 'text' || variant === 'outlined') {\n css.backgroundColor = 'transparent';\n css.color = Utils.nvl(color, 'text');\n }\n\n if (size === 'small') {\n css.fontSize = 12;\n css.fontWeight = 500;\n }\n\n if (size === 'medium') {\n css.fontSize = 14;\n css.fontWeight = 500;\n }\n\n if (align === 'left') {\n css.justifyContent = 'flex-start';\n }\n\n return scope.getStyle(part, css);\n };\n\n let extra: any = {};\n\n if (icon) {\n extra.button = { height: 40, padding: 0 };\n } else {\n extra.button = { height: 50 };\n }\n\n const buttonStyle = Utils.call(() => {\n let def: any = { ...extra?.button };\n\n if (variant === 'outlined') {\n def.borderWidth = 1;\n def.borderColor = Utils.nvl(color, 'text');\n }\n\n if (size) {\n def = { ...def, ...BUTTONS_SIZE[size] };\n }\n\n if (!label) {\n def = { ...def, borderRadius: 20 };\n }\n\n let css = style('button', def);\n\n if (!css.width) {\n let h = css.height;\n if (typeof h === 'number') css.minWidth = h;\n }\n\n return css;\n });\n\n const buttonLabel = style('buttonLabel');\n\n const iconStyle = Utils.call(() => {\n let css: any = style('buttonIcon', extra.icon);\n css.fontSize = Utils.nvl(buttonLabel.fontSize, css.fontSize);\n return css;\n });\n\n scope.updaters.loader = () => {\n setLoaderIndex((i) => i + 1);\n };\n\n let iconSize = Utils.nvl(element.iconSize, buttonLabel.fontSize, 15);\n\n if (scope.loading) {\n return (\n <Pressable style={buttonStyle}>\n <>\n {icon && <LoadingIcon />}\n {label && <Text style={buttonLabel}>{scope.lng('loading', 'Aguarde...')}</Text>}\n </>\n </Pressable>\n );\n }\n\n return (\n <>\n <Pressable onPress={onClick} style={({ pressed }) => [buttonStyle, pressed && { opacity: 0.5 }]}>\n <>\n {icon && <UI.Icon size={iconSize} style={iconStyle} value={icon} />}\n {label && <Text style={buttonLabel}>{label}</Text>}\n </>\n </Pressable>\n\n {/* 🔥 MODAL */}\n {children && (\n <Modal visible={open} transparent animationType=\"fade\">\n <TouchableWithoutFeedback onPress={() => setOpen(false)}>\n <View style={styles.overlay}>\n <TouchableWithoutFeedback>\n <View style={styles.modal}>{children}</View>\n </TouchableWithoutFeedback>\n </View>\n </TouchableWithoutFeedback>\n </Modal>\n )}\n </>\n );\n}\n","import React from 'react';\nimport { View, Animated, Easing } from 'react-native';\nimport { Ionicons } from '@expo/vector-icons';\n\nexport default function LoadingIcon({ color }: any) {\n const spinValue = new Animated.Value(0);\n\n React.useEffect(() => {\n Animated.loop(\n Animated.timing(spinValue, {\n toValue: 1,\n duration: 1000,\n easing: Easing.linear,\n useNativeDriver: true,\n }),\n ).start();\n }, []);\n\n const spin = spinValue.interpolate({\n inputRange: [0, 1],\n outputRange: ['0deg', '360deg'],\n });\n\n return (\n <View style={{ justifyContent: 'center', alignItems: 'center', flex: 1 }}>\n <Animated.View style={{ transform: [{ rotate: spin }] }}>\n <Ionicons name=\"refresh\" size={25} color={color} />\n </Animated.View>\n </View>\n );\n}\n","import { useRef, useState } from 'react';\nimport { ChildType, MethodType, Utils, ViewUtils } from 'react-crud-utils';\nimport {\n Text,\n TouchableOpacity,\n StyleSheet,\n Modal,\n View,\n ScrollView,\n} from 'react-native';\nimport { Ionicons } from '@expo/vector-icons';\nimport UI from '../UI';\nimport { SafeAreaView } from 'react-native-safe-area-context';\n\nexport default function UISelect(props: ChildType) {\n const [modalVisible, setModalVisible] = useState(false);\n const scope = props.scope;\n const original = scope.original;\n const items = Utils.nvl(scope.getOptions(), []);\n const placeholder = scope.attr('placeholder', 'Selecione...');\n const value = scope.getDisplayValue();\n const theme = scope.getTheme();\n const headerStyle = Utils.nvl(theme.styles?.defaults?.header, {});\n const handlePress = () => {\n setModalVisible(!modalVisible);\n };\n\n const scrollRef = useRef(null);\n const iconColor = Utils.nvl(theme.colors?.text, '#100e0e');\n const modalColor = Utils.nvl(headerStyle.color, 'white');\n const defaults = { color: modalColor };\n const onClick = ({ crud, value }: MethodType) => {\n let val = value as any;\n\n if (original.isObject && val?.object) {\n scope.changeValue(val?.object);\n } else if (val?.value) {\n scope.changeValue(val?.value);\n } else {\n scope.changeValue(value);\n }\n\n setModalVisible(false);\n };\n\n const style = (part: string, extra?: any) => {\n let all = { ...styles[part], ...extra };\n\n return scope.getStyle(part, all);\n };\n\n const isModalVisible = () => {\n return modalVisible;\n };\n\n const getLabelStyle = () => {\n const css: any = style('selectLabel');\n let fs = parseInt(css.fontSize);\n\n if (!fs) {\n fs = 14;\n }\n\n let lh = Utils.nvl(css.lineHeight, fs + 2);\n\n css.fontSize = fs;\n css.lineHeight = lh;\n\n return css;\n };\n\n const labelStyle = getLabelStyle();\n const defIconSize = Utils.nvl(labelStyle.fontSize, 14) + 2;\n const iconSize = scope.getPart('iconSize', null, defIconSize);\n\n //v4\n\n return (\n <View\n key={scope.getName(`${scope.getPart('modal')}_${modalVisible}`)}\n style={style('selectRoot')}\n >\n <TouchableOpacity onPress={handlePress} style={style('selectInput')}>\n <Text style={labelStyle}>{Utils.nvl(value, placeholder)}</Text>\n <Ionicons\n name=\"chevron-down-outline\"\n size={iconSize}\n color={scope.getPart('iconColor', null, iconColor)}\n style={style('iconStyle', {})}\n />\n </TouchableOpacity>\n <Modal\n animationType=\"slide\"\n transparent={true}\n visible={isModalVisible()}\n onRequestClose={() => setModalVisible(false)}\n >\n <SafeAreaView style={style('modalTop')} />\n <SafeAreaView style={style('modalSafe')}>\n <View style={scope.getStyle('header', headerStyle)}>\n <TouchableOpacity\n onPress={handlePress}\n style={style('modalCloseButton')}\n >\n <Ionicons\n name=\"close\"\n size={24}\n color={modalColor}\n style={style('modalCloseText', defaults)}\n />\n </TouchableOpacity>\n <Text style={style('modalTitle', defaults)}>{placeholder}</Text>\n </View>\n <ScrollView\n contentContainerStyle={{ flexGrow: 1, paddingBottom: 50 }}\n style={style('modalContent')}\n nestedScrollEnabled={true}\n ref={scrollRef}\n >\n <View\n style={{\n flex: 1,\n paddingLeft: 15,\n paddingRight: 15,\n paddingTop: 10,\n paddingBottom: 10,\n }}\n >\n <UI.List\n data={items}\n name={scope.getName('list')}\n layout=\"card\"\n search={original.search === true}\n click={onClick}\n rowStyle={{\n paddingLeft: 15,\n paddinRight: 15,\n ...original?.rowStyle,\n }}\n {...original?.listProps}\n >\n <UI.Value value=\"#{@this.label}\" />\n </UI.List>\n </View>\n </ScrollView>\n </SafeAreaView>\n </Modal>\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n selectRoot: {\n justifyContent: 'flex-start',\n alignItems: 'flex-start',\n flex: 1,\n },\n selectInput: {\n width: '100%',\n flexDirection: 'row',\n borderRadius: 5,\n paddingHorizontal: 15,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: '#dedede',\n paddingVertical: 10,\n },\n selectLabel: { flex: 1, fontSize: 14 },\n modalTop: {\n backgroundColor: 'primary',\n width: '100%',\n },\n modalSafe: {\n flex: 1,\n width: '100%',\n backgroundColor: 'background',\n },\n modalCloseButton: {\n padding: 10,\n },\n modalCloseText: {\n fontSize: 18,\n color: 'white',\n },\n modalTitle: {\n fontSize: 18,\n fontWeight: 'bold',\n marginLeft: 10,\n },\n modalContent: {\n flex: 1,\n backgroundColor: 'background',\n },\n});\n","import { useState } from 'react';\nimport { ChildType, Utils } from 'react-crud-utils';\nimport { Switch } from 'react-native';\n\nexport default function UISwitch(props: ChildType) {\n const scope = props.scope;\n const initial = Utils.nvl(scope.getValue(), false) as boolean;\n const [value, setValue] = useState(initial);\n\n let onChange = v => {\n scope.changeValue(v);\n\n setValue(v);\n };\n\n return (\n <Switch\n value={value}\n style={scope.getStyle('element')}\n onValueChange={onChange} // Alterna o estado\n />\n );\n}\n\nconst styles = {\n link: {},\n};\n","import { useState } from 'react';\nimport { ChildType, ComponentUtils, Utils } from 'react-crud-utils';\nimport { Switch } from 'react-native';\nimport Slider from '@react-native-community/slider';\n\nexport default function UISlider(props: ChildType) {\n const scope = props.scope;\n const initial = Utils.nvl(scope.getValue(), 0);\n const [value, setValue] = useState(initial);\n\n //redeploy 0\n\n let onChange = v => {\n v = Utils.nvl(v, 0);\n\n console.log(v);\n\n scope.changeValue(v);\n\n setValue(v);\n };\n\n let step = scope.attr('step', 1);\n let min = scope.attr('min', 0);\n let max = scope.attr('min', 100);\n\n let onSlideScroll = (scrollEnabled: boolean) => {\n let viewScope = ComponentUtils.getViewScope();\n\n if (scope.original.debug) {\n console.log(viewScope);\n }\n\n if (viewScope) {\n let scrollRef = viewScope.get('scrollRef');\n\n if (scrollRef) scrollRef.current?.setNativeProps?.({ scrollEnabled });\n }\n };\n return (\n <>\n <Slider\n minimumValue={min}\n maximumValue={max}\n step={step}\n minimumTrackTintColor=\"#1EB1FC\"\n maximumTrackTintColor=\"#d3d3d3\"\n thumbTintColor=\"#1EB1FC\"\n value={value}\n onSlidingStart={() => onSlideScroll(false)}\n onSlidingComplete={() => onSlideScroll(true)}\n style={{ width: '100%', height: 40, ...scope.getStyle('element') }}\n onValueChange={onChange} // Alterna o estado\n />\n </>\n );\n}\n\nconst styles = {\n link: {},\n};\n","import { Text, TouchableOpacity, Linking, StyleSheet } from 'react-native';\n\nexport default function UIOption(props: any) {\n const handlePress = () => {\n Linking.openURL('https://reactnative.dev/');\n };\n\n return (\n <TouchableOpacity onPress={handlePress}>\n <Text style={styles.link}>Clique aqui para acessar o React Native</Text>\n </TouchableOpacity>\n );\n}\n\nconst styles = {\n link: {},\n};\n","import { Text, TouchableOpacity, Linking, StyleSheet } from 'react-native';\n\nexport default function UIRadio(props: any) {\n const handlePress = () => {\n Linking.openURL('https://reactnative.dev/');\n };\n\n return (\n <TouchableOpacity onPress={handlePress}>\n <Text style={styles.link}>Clique aqui para acessar o React Native</Text>\n </TouchableOpacity>\n );\n}\n\nconst styles = {\n link: {},\n};\n","import { useState } from 'react';\nimport { ChildType, Utils } from 'react-crud-utils';\nimport { StyleSheet, TextInput, View } from 'react-native';\nimport { Ionicons } from '@expo/vector-icons';\n\nexport default function UIInput(props: ChildType) {\n let scope = props.scope;\n let initial = Utils.call(() => {\n let val = Utils.nvl(scope.getValue(), '');\n\n if (val && val?.push) {\n return val.join(', ').trim();\n }\n return val;\n });\n\n let label = scope.getLabel();\n let placeholder = scope.getPart('placeholder', null, label);\n let el = scope.original;\n\n const element = scope.original;\n const [height, setHeight] = useState(80);\n const [value, setValue] = useState(initial);\n\n let onChange = v => {\n v = scope.changeValue(v);\n\n setValue(v);\n };\n\n const style = (part: string, extra?: any) => {\n return { ...scope.getStyle(part, { ...styles[part], ...extra }) };\n };\n\n const CustomIcon = () => {\n let icon = el.icon;\n\n if (icon) {\n if (typeof icon === 'string') {\n return (\n <>\n {el.icon && (\n <Ionicons\n name={el.icon}\n size={scope.attr('iconSize', 20)}\n color={scope.attr('iconColor', '#888')}\n />\n )}\n </>\n );\n }\n return <>{icon}</>;\n }\n return <></>;\n };\n\n let type = scope.getPart('type', null, 'text');\n let decode = {\n textarea: {\n multiline: true,\n autoHeight: element.autoHeight !== false,\n textAlignVertical: 'top',\n numberOfLines: 5,\n style: { height: Math.max(80, height) },\n baseStyle: { paddingVertical: 10 },\n },\n };\n\n //v5\n let defs = { ...Utils.nvl(decode[type], {}), ...element.inputProps };\n let inputStyle = Utils.call(() => {\n let size = element.size;\n let css: any = {};\n\n if (size === 'small') {\n css.height = 30;\n css.fontSize = 12;\n }\n\n css.fontSize = Utils.nvl(element.fontSize, css.fontSize);\n css = { ...style('input'), ...style(type, css) };\n css.lineHeight = parseInt(css.fontSize) + 2;\n //v1\n return css;\n });\n\n if (defs.autoHeight) {\n defs.onContentSizeChange = event => {\n setHeight(event.nativeEvent.contentSize.height);\n };\n\n inputStyle = { ...inputStyle, ...defs.style };\n }\n\n return (\n <>\n <View style={style('base', defs?.baseStyle)}>\n {scope.getPart('left')}\n <TextInput\n onChangeText={onChange}\n value={value}\n placeholder={placeholder}\n {...defs}\n style={inputStyle}\n />\n <CustomIcon />\n </View>\n {scope.getPart('right')}\n </>\n );\n}\n\nconst styles = StyleSheet.create({\n base: {\n flex: 1,\n width: '100%',\n paddingBottom: 0,\n paddingTop: 0,\n alignItems: 'center',\n borderWidth: 1,\n borderColor: 'borderColor',\n borderRadius: 5,\n paddingHorizontal: 10,\n alignSelf: 'flex-start',\n flexDirection: 'row',\n flexWrap: 'wrap',\n gap: 10,\n },\n icon: {\n marginRight: 10, // Espaço entre ícone e input\n },\n input: {\n marginHorizontal: 0,\n marginVertical: 0,\n paddingVertical: 0,\n height: 40,\n width: '100%',\n flex: 1, // Para o input ocupar o espaço restante\n },\n textarea: {\n marginHorizontal: 0,\n marginVertical: 0,\n paddingVertical: 10,\n width: '100%',\n height: 'auto',\n alignSelf: 'stretch',\n flex: 1, // Para o input ocupar o espaço restante\n },\n});\n","import { ChildType, Utils } from 'react-crud-utils';\nimport UI from '../UI';\nimport { Ionicons } from '@expo/vector-icons';\nimport UIListData from './UIListData';\n\nexport default function UIList(props: ChildType) {\n const scope = props.scope;\n const crud = scope.crud;\n const original = scope.original;\n const hideEmpty = original.hideEmpty;\n\n //v2\n let items = Utils.nvl(scope.getItems(), []);\n\n if (hideEmpty && Utils.isEmpty(items)) {\n return <></>;\n }\n\n return (\n <>\n {original.search !== false && (\n <UI.Text\n placeholder=\"Pesquisar...\"\n field=\"query\"\n crud={crud}\n style={{ marginBottom: 10 }}\n change={{\n action: () => {\n scope.search();\n },\n }}\n icon={<Ionicons name=\"search\" size={20} color=\"#888\" />}\n />\n )}\n <UIListData {...props} />\n </>\n );\n}\n","import React, { useState } from 'react';\nimport { ChildType, ComponentUtils, Utils } from 'react-crud-utils';\nimport { StyleSheet, Text, View } from 'react-native';\nimport UIListRow from './UIListRow';\n\nexport default function UIListData(props: ChildType) {\n const scope = props.scope;\n const crud = scope.crud;\n const original = scope.original;\n const cols = Utils.nvl(scope.getPart('cols', undefined, 1));\n const styles = { repeat: stylesRepeat, list: stylesList }?.[original.type];\n const add = ComponentUtils.getDefine(props, 'add');\n const hideAddWhenEmpty = original.hideAddWhenEmpty;\n\n //v2\n const getStyle = (key: string, extra?: any) => {\n return scope.getStyle(key, { ...extra, ...styles[key] });\n };\n\n const getContainerStyle = (extra?: any) => {\n let row = getStyle('container', {});\n\n if (cols > 1) {\n row = { ...row, flexDirection: 'row', flexWrap: 'wrap' };\n }\n\n return row;\n };\n let [index, setIndex] = useState(scope.updateIndex);\n let empty = scope.attr('empty', 'Sem registro');\n\n scope.update = () => {\n scope.updateIndex = ++index;\n\n setIndex(index);\n };\n\n const items = Utils.call(() => {\n let list = Utils.nvl(scope.getItems(), []);\n\n if (original.search !== false && !original.list?.url) {\n let query = crud.get('query', '').toLowerCase().trim() as string;\n\n if (query.length > 1) {\n let filters: any[] = [];\n let filterBy = Utils.nvl(original.filterBy, 'label');\n\n Utils.each(list, (o) => {\n let label = Utils.getValue(filterBy, 'none', o).toLowerCase();\n\n if (label) {\n if (label.includes(query)) {\n filters.push(o);\n }\n }\n });\n\n return filters;\n }\n }\n return list;\n });\n\n let isEmpty = Utils.isEmpty(items);\n\n const isShowAdd = () => {\n if (!isEmpty) {\n return true;\n }\n return hideAddWhenEmpty !== true;\n };\n\n let Empty = () => {\n if (!isEmpty) {\n return <></>;\n }\n\n if (!empty) {\n return <></>;\n }\n\n if (typeof empty === 'string') {\n return (\n <Text\n style={scope.getStyle('empty', {\n flex: 1,\n fontWeight: 400,\n fontSize: 18,\n padding: 10,\n textAlign: 'center',\n width: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n })}\n >\n {empty}\n </Text>\n );\n }\n\n return <>{empty}</>;\n };\n\n if (empty === false && isEmpty) {\n return <></>;\n }\n\n return (\n <View style={getContainerStyle()}>\n <Empty />\n {items.map((item: any, i: number) => (\n <UIListRow index={i} item={item} scope={scope}>\n {props.children}\n </UIListRow>\n ))}\n {isShowAdd() && <>{add}</>}\n </View>\n );\n}\n\nconst stylesList = StyleSheet.create({\n container: {\n display: 'flex',\n flexWrap: 'wrap',\n gap: 10,\n width: '100%',\n },\n text: {\n fontSize: 18,\n fontWeight: 'bold',\n },\n});\n\nconst stylesRepeat = StyleSheet.create({\n container: {\n display: 'flex',\n flexWrap: 'wrap',\n gap: 10,\n width: '100%',\n },\n text: {\n fontSize: 18,\n fontWeight: 'bold',\n },\n});\n","import React, { useRef, useState } from 'react';\nimport { ChildType, ScopeUtils, Utils } from 'react-crud-utils';\nimport UIChildren from '../UIChildren';\nimport { Pressable, StyleSheet, TouchableHighlight, View } from 'react-native';\nimport { useIsVisible } from '../../hooks/useIsVisible';\n\ninterface UIListRowType extends ChildType {\n item: any;\n index: number;\n children?: any;\n}\n\nexport default function UIListRow(props: UIListRowType) {\n const scope = props.scope;\n const index = props.index;\n const original = scope.original;\n const item = props.item;\n const cols = scope.getPart('cols', undefined, -1);\n const rowWidth = Math.floor(100 / cols) + '%';\n const styles = { repeat: stylesRepeat, list: stylesList }?.[original.type];\n const listIndex = scope.updateIndex;\n const name = `${scope.key('row', index, '')}`;\n const row = ScopeUtils.create({\n ...original,\n parent: scope,\n name,\n crud: scope.crud,\n index,\n type: 'row',\n data: item,\n });\n\n row.crud.data = item;\n\n //v5\n const targetRef = useRef(null);\n const isVisible = useIsVisible(targetRef, row);\n const key = scope.key('item', listIndex);\n\n const onClick = (item: any) => {\n row.call('click', { value: item, item, edit: true, index });\n };\n\n const Child = () => {\n if (!isVisible && original.useIsInView && !row.visible && index > 20) {\n return <></>;\n }\n return (\n <>\n <UIChildren key={key} transient scope={row} crud={row.crud}>\n {props.children}\n </UIChildren>\n </>\n );\n };\n\n const ListItem = () => {\n let [updateIndex, setUpdateIndex] = useState(0);\n\n row.selected = row.getPart('isSelectedRow', undefined, false);\n\n const getRowStyle = () => {\n let css = row.getStyle('row', { ...styles.row, minHeight: 30 });\n\n if (row.selected) {\n css = { ...css, ...row.getStyle('rowSelected', {}) };\n } else {\n css = { ...css, ...row.getStyle('rowUnSelected', {}) };\n }\n\n if (cols > 0) {\n css.width = rowWidth;\n }\n\n return css;\n };\n\n row.update = () => {\n scope.updateIndex = scope.updateIndex + 1;\n\n setUpdateIndex(++updateIndex);\n };\n\n let renderedRow = row.getPart('renderedItem', undefined, true);\n\n if (renderedRow === false) {\n return <></>;\n }\n\n if (!original.click) {\n return (\n <View key={key} style={getRowStyle()} ref={targetRef}>\n <Child />\n </View>\n );\n }\n const rowStyle = getRowStyle();\n\n return (\n <Pressable\n key={key}\n style={({ pressed }) => [\n rowStyle,\n pressed && { opacity: 0.5 }, // ⭐ Aqui entra o efeito!\n ]}\n ref={targetRef}\n onPress={(e) => {\n e.stopPropagation();\n onClick(item);\n }}\n >\n <Child />\n </Pressable>\n );\n };\n\n return <ListItem />;\n}\n\nconst stylesList = StyleSheet.create({\n row: {\n padding: 5,\n margin: 0,\n width: '100%',\n backgroundColor: 'background',\n gap: 10,\n borderRadius: 8,\n justifyContent: 'center',\n },\n});\n\nconst stylesRepeat = StyleSheet.create({\n row: {\n padding: 0,\n width: '100%',\n justifyContent: 'center',\n },\n});\n","import { useEffect, useState } from 'react';\nimport { Scope } from 'react-crud-utils';\nimport { Dimensions, Platform } from 'react-native';\n\nexport function useIsVisible(ref: any, scope: Scope) {\n const [isVisible, setIsVisible] = useState(scope.visible === true);\n\n useEffect(() => {\n const checkVisibility = () => {\n if (!ref.current || isVisible || !scope.original?.useIsInView) return;\n\n if (Platform.OS === 'web') {\n const rect = ref.current.getBoundingClientRect?.();\n\n if (rect && typeof window !== 'undefined') {\n const windowHeight = window.innerHeight;\n const visible = rect.top < windowHeight && rect.bottom > 0;\n\n if (visible) scope.visible = visible;\n\n setIsVisible(visible);\n }\n } else {\n ref.current.measureInWindow?.((x, y, width, height) => {\n const windowHeight = Dimensions.get('window').height;\n const visible = y < windowHeight && y + height > 0;\n\n if (visible) scope.visible = visible;\n setIsVisible(visible);\n });\n }\n };\n\n const interval = setInterval(checkVisibility, 300); // roda a cada 300ms\n return () => clearInterval(interval);\n }, [ref]);\n\n return isVisible;\n}\n","import React, { useState } from 'react';\nimport { ChildType, Utils } from 'react-crud-utils';\nimport { StyleSheet, Text, TouchableHighlight, View } from 'react-native';\nimport UIListRow from './UIListRow';\n\nexport default function UIToggle(props: ChildType) {\n const scope = props.scope;\n const options = Utils.nvl(scope.getOptions(), []);\n const value = scope.getInputValue();\n\n let [index, setIndex] = useState(0);\n\n const isSelected = (item: any) => {\n return item?.value === value;\n };\n\n const onClick = (item: any) => {\n scope.changeValue(item.object);\n setIndex(++index);\n };\n\n const Item = ({ item, index }) => {\n let selected = isSelected(item);\n let style: any = { ...styles.text, ...scope.getStyle('text') };\n\n if (selected) style.color = '#ffffff';\n\n if (Utils.isEmpty(props.children)) {\n return <Text style={style}>{item.label}</Text>;\n }\n\n return (\n <UIListRow scope={scope} item={item.object} index={index}>\n {props.children}\n </UIListRow>\n );\n };\n\n const getItemStyle = (item: any) => {\n let style = { ...styles.item, ...scope.getStyle('item') };\n\n let wPart = 100 / options.length;\n let width = Math.floor(wPart) + '%';\n\n if (isSelected(item)) {\n let selectedColor = scope.getPart('selectedColor', undefined, 'primary');\n let st = scope.getStyle('selected', {\n backgroundColor: selectedColor,\n color: '#ffffff',\n });\n\n style = { ...style, ...st };\n\n if (!style.color) {\n style.color = '#ffffff';\n }\n\n const backgroundColor = item.backgroundColor;\n const color = item.color;\n\n if (item.backgroundColor) style = { ...style, backgroundColor };\n if (item.color) style = { ...style, color };\n } else {\n style.backgroundColor = '#fff';\n style.color = '#000';\n }\n\n style.width = width;\n\n return style;\n };\n\n return (\n <View style={{ ...styles.container, ...scope.getStyle('items') }}>\n {options.map((item: any, i: number) => (\n <TouchableHighlight\n key={`k-${i}`}\n style={getItemStyle(item)}\n onPress={e => {\n onClick(item);\n }}\n >\n <Item item={item} index={i} />\n </TouchableHighlight>\n ))}\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n width: '100%',\n justifyContent: 'center',\n flexDirection: 'row',\n alignItems: 'center',\n margin: 3,\n gap: 5,\n },\n item: {\n backgroundColor: 'background',\n justifyContent: 'center',\n alignItems: 'center',\n width: 'auto',\n flexDirection: 'row',\n flex: 1,\n padding: 5,\n borderRadius: 2,\n },\n text: {\n fontSize: 13,\n fontWeight: '400',\n },\n});\n","import { Ionicons } from '@expo/vector-icons';\nimport { useState } from 'react';\nimport { ChildType, Utils } from 'react-crud-utils';\nimport { Text, TouchableHighlight, View } from 'react-native';\n\nexport default function UIQuantity(props: ChildType) {\n const scope = props.scope;\n const element = scope.original;\n\n let [index, setIndex] = useState(0);\n\n const value = scope.getValue(0);\n\n let color = element.color;\n\n if (!color) color = 'primary';\n\n const btn = {\n padding: 0,\n alignItems: 'center',\n height: 30,\n width: 30,\n textAlign: 'center',\n verticalAling: 'middle',\n borderRadius: 24,\n backgroundColor: color,\n color: '#ffffff',\n justifyContent: 'center',\n };\n\n const styles: any = {\n buttonLabel: {\n color: '#ffffff',\n fontWeight: '500',\n fontSize: 16,\n },\n value: {\n flex: 1,\n flexDirection: 'row',\n textAlign: 'center',\n fontWeight: '500',\n },\n buttonInner: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n buttonIcon: {\n color: '#fff',\n fontSize: 18,\n },\n button: btn,\n addButton: {\n ...btn,\n },\n delButton: {\n ...btn,\n },\n };\n\n const change = (val: number) => {\n scope.changeValue(value + val);\n setIndex(++index);\n };\n\n const onClickAdd = () => {\n change(1);\n };\n\n const onClickDel = () => {\n change(-1);\n };\n\n const style = (part: string, extra?: any) => {\n let s = { ...styles[part], ...extra };\n return scope.getStyle(part, s);\n };\n\n return (\n <>\n <TouchableHighlight\n underlayColor={'transparent'}\n onPress={onClickDel}\n style={style('delButton')}\n >\n <Ionicons size={30} style={style('buttonIcon')} name=\"remove\" />\n </TouchableHighlight>\n <Text style={style('value')}>{Utils.nvl(value, 0)}</Text>\n <TouchableHighlight\n underlayColor={'transparent'}\n onPress={onClickAdd}\n style={style('addButton')}\n >\n <Ionicons size={30} style={style('buttonIcon')} name=\"add\" />\n </TouchableHighlight>\n </>\n );\n}\n","import { useRef, useState } from 'react';\nimport { ChildType, ComponentUtils, ViewUtils } from 'react-crud-utils';\nimport UIToast from './UIToast';\nimport { SafeAreaView } from 'react-native-safe-area-context';\nimport UIChildren from '../UIChildren';\nimport { Modal, StyleSheet } from 'react-native';\ninterface UIModalType extends ChildType {\n open?: boolean;\n dialog?: any;\n}\n\nexport default function UIModal(props: UIModalType) {\n const scrollRef = useRef(null);\n const main = ViewUtils.getCrud('view');\n\n let owner = props.scope;\n let [index, setIndex] = useState(0);\n let dialog = owner.currentDialog;\n //v2\n\n let curr = dialog?.crud;\n\n if (!dialog) {\n return <></>;\n }\n\n dialog.update = () => {\n setIndex(++index);\n };\n\n const modalVisible = curr.uuid === main.dialog?.crud?.uuid;\n\n if (!modalVisible) return <></>;\n\n const scope = dialog.scope;\n const style = (part: string, extra?: any) => {\n let st = { ...styles[part], ...extra };\n\n return { ...scope.getStyle(part, st) };\n };\n\n const onClose = () => {\n scope.close({ scope, crud: dialog?.crud, event: {} });\n };\n\n const cprops = dialog.props;\n const Component = dialog.component;\n\n if (!Component) return <></>;\n\n const custom = <Component {...{ key: curr.uuid, crud: curr, ...cprops }} />;\n\n scope.put('scrollRef', scrollRef);\n\n ComponentUtils.setViewScope(scope);\n\n let key = `${curr.name}-${index}`;\n\n const ModalInner = () => {\n let area = {};\n\n return (\n <SafeAreaView style={style('modalSafe', area)}>\n <UIChildren transient scope={scope}>\n {custom}\n </UIChildren>\n <UIToast />\n </SafeAreaView>\n );\n };\n return (\n <Modal key={key} animationType=\"slide\" visible={true} onRequestClose={onClose}>\n <ModalInner />\n </Modal>\n );\n}\n\nconst styles = StyleSheet.create({\n modalTop: {\n backgroundColor: 'background',\n width: '100%',\n },\n modalSafe: {\n flex: 1,\n width: '100%',\n backgroundColor: 'background',\n },\n modalCloseButton: {\n padding: 10,\n },\n modalCloseText: {\n fontSize: 18,\n color: 'white',\n },\n modalTitle: {\n fontSize: 22,\n fontWeight: 600,\n marginLeft: 10,\n },\n});\n","import { StyleSheet } from 'react-native';\nimport Toast, { BaseToast, ErrorToast } from 'react-native-toast-message';\n\nexport default function UIToast() {\n const toastConfig = {\n success: props => (\n <BaseToast\n {...props}\n style={styles.darkToast}\n contentContainerStyle={{ paddingHorizontal: 15 }}\n text1Style={styles.text}\n text2Style={styles.text}\n />\n ),\n error: props => (\n <ErrorToast\n {...props}\n style={styles.darkToast}\n text1Style={styles.text}\n text2Style={styles.text}\n />\n ),\n info: props => (\n <BaseToast\n {...props}\n style={styles.darkToast}\n text1Style={styles.text}\n text2Style={styles.text}\n />\n ),\n };\n\n const styles = StyleSheet.create({\n darkToast: {\n backgroundColor: 'rgba(34, 34, 34, 0.85)',\n borderLeftColor: '#222', // borda mais escura\n },\n text: {\n color: '#fff', // letras brancas\n textAlign: 'center',\n },\n });\n return <Toast config={toastConfig} />;\n}\n","import { ScrollView, StyleSheet, Text, View } from 'react-native';\n\nimport UIChildren from '../UIChildren';\nimport { ChildType, ComponentUtils, Utils, ViewUtils } from 'react-crud-utils';\nimport { useRef } from 'react';\nimport UIToast from './UIToast';\nimport UIHeader from './UIHeader';\n\nexport default function UIView({ scope, children }: ChildType) {\n const scrollRef = useRef(null);\n const original = scope.original;\n const crud = scope.crud;\n\n const onScroll = () => {\n const crud = ViewUtils.getCrud();\n\n Utils.each(crud.scroll, (s) => {\n if (s.onScroll) {\n s.onScroll.call(s);\n }\n });\n };\n\n //v5\n scope.put('scrollRef', scrollRef);\n\n if (!crud.is('dialog')) crud.view = scope;\n\n ComponentUtils.setViewScope(scope);\n\n let Container = () => {\n if (original.scroll === false) {\n return <UIChildren scope={scope}>{children}</UIChildren>;\n }\n\n return (\n <View style={scope.getStyle('container', styles.container)}>\n <ScrollView\n onScroll={onScroll}\n scrollEventThrottle={16}\n ref={scrollRef}\n nestedScrollEnabled={true}\n keyboardShouldPersistTaps=\"handled\"\n contentContainerStyle={scope.getStyle('contentContainer', {\n paddingBottom: 50,\n flexGrow: 1,\n })}\n style={scope.getStyle('scroll', styles.scroll)}\n >\n <UIChildren scope={scope}>{children}</UIChildren>\n </ScrollView>\n </View>\n );\n };\n return (\n <>\n <UIHeader scope={scope}>{children}</UIHeader>\n <Container />\n <UIToast /> {/* <- este componente precisa estar aqui */}\n </>\n );\n}\n\nconst styles = StyleSheet.create({\n scroll: {\n paddingTop: 10,\n paddingBottom: 10,\n paddingLeft: 15,\n paddingRight: 15,\n },\n container: {},\n view: {},\n});\n","import { Text, TouchableOpacity, View } from 'react-native';\n\nimport { ChildType, ComponentUtils, HtmlUtils, Utils } from 'react-crud-utils';\nimport { Ionicons } from '@expo/vector-icons';\nimport UIChildren from '../UIChildren';\nimport { useState } from 'react';\n\nexport default function UIHeader({ scope, ...props }: ChildType) {\n const theme = scope.getTheme();\n const label = scope.getLabel();\n const header = scope.getPart('header', null, label);\n const headerRight = ComponentUtils.getDefine(props, 'header', 'right');\n const headerStyle = Utils.nvl(theme.styles?.defaults?.header, {});\n\n let [index, setIndex] = useState(0);\n let headerTextStyle = Utils.nvl(theme.styles?.defaults?.headerText, {});\n let headerStyleFull = Utils.call(() => {\n let css = scope.getStyle('header', { ...headerStyle, gap: 10 });\n let bg = css.backgroundColor;\n\n if (bg) {\n css.color = HtmlUtils.getTextColor(bg);\n }\n return css;\n });\n\n let crud = scope.crud;\n\n crud.updaters.header = () => {\n setIndex(++index);\n };\n\n let isDialog = crud.is('dialog') || crud.is('modal');\n let hasHeader = !Utils.isEmpty(header) || isDialog;\n let HeaderTitle = () => {\n if (typeof header === 'string') {\n //v1\n if (isDialog) {\n headerTextStyle = { ...headerTextStyle, ...scope.getStyle('modalHeaderText', { textAlign: 'left' }) };\n }\n return <Text style={headerTextStyle}>{header}</Text>;\n }\n return <>{header}</>;\n };\n\n let onClose = () => {\n scope.close({ scope, crud, event: {} });\n };\n\n let HeaderLeft = () => {\n return (\n <>\n {isDialog && (\n <TouchableOpacity onPress={onClose} style={scope.getStyle('modalCloseButton')}>\n <Ionicons name=\"chevron-back-outline\" size={24} style={scope.getStyle('modalCloseText', {})} />\n </TouchableOpacity>\n )}\n </>\n );\n };\n\n let HeaderRight = () => {\n if (headerRight) {\n return (\n <UIChildren scope={scope} crud={crud} transient>\n {headerRight}\n </UIChildren>\n );\n }\n return <></>;\n };\n\n return (\n <>\n {hasHeader && (\n <View style={headerStyleFull}>\n <HeaderLeft />\n <HeaderTitle />\n <HeaderRight />\n </View>\n )}\n </>\n );\n}\n","import React, { useRef, useState, useEffect } from 'react';\nimport { ChildType, OptionType, Utils } from 'react-crud-utils';\nimport {\n View,\n Text,\n StyleSheet,\n Animated,\n PanResponder,\n TouchableOpacity,\n} from 'react-native';\n\nconst ITEM_HEIGHT = 70;\n\nexport default function UIOrder(props: ChildType) {\n const scope = props.scope;\n const element = scope.original;\n const initial: OptionType[] = scope.getOptions();\n\n const [items, setItems] = useState<OptionType[]>(initial);\n const [draggingId, setDraggingId] = useState<string | null>(null);\n\n // O tipo Animated.Value em um ambiente TypeScript puro não tem o método ._value,\n // mas é a propriedade interna usada para acessar o valor diretamente.\n // Usamos 'any' no acesso para suprimir o erro TS.\n const positions = useRef<Record<string, Animated.Value>>(\n Object.fromEntries(\n initial.map((it, i) => [it.value, new Animated.Value(i * ITEM_HEIGHT)])\n )\n ).current;\n\n const panRespondersRef = useRef<Record<string, any>>({});\n\n const activeItem = useRef<OptionType | null>(null);\n const activeIndex = useRef<number>(-1);\n const offsetY = useRef(0);\n\n // Armazena a lista mais recente em uma ref para uso em funções de PanResponder\n const itemsRef = useRef(items);\n useEffect(() => {\n itemsRef.current = items;\n }, [items]);\n\n // 1. Atualiza posições apenas para itens existentes\n useEffect(() => {\n items.forEach((it, idx) => {\n if (!positions[it.value])\n positions[it.value] = new Animated.Value(idx * ITEM_HEIGHT);\n\n Animated.spring(positions[it.value], {\n toValue: idx * ITEM_HEIGHT,\n useNativeDriver: false,\n }).start();\n });\n }, [items]);\n\n const onChange = (updated: any[]) => {\n const array: any[] = [];\n const items = scope.getItems();\n\n items.splice(0);\n\n Utils.each(updated, o => {\n const v = o.object;\n\n array.push(v);\n items.push(v);\n });\n\n scope.changeValue(array);\n };\n\n const createPanResponder = (item: OptionType) =>\n PanResponder.create({\n onStartShouldSetPanResponder: () => true,\n onPanResponderGrant: () => {\n // Use itemsRef.current para obter a lista mais recente no momento do arrasto.\n const currentItems = itemsRef.current;\n if (\n !positions[item.value] ||\n !currentItems.find(it => it.value === item.value)\n )\n return;\n\n activeItem.current = item;\n activeIndex.current = currentItems.findIndex(\n it => it.value === item.value\n );\n // CORREÇÃO: Usa a propriedade interna _value para acessar o valor atual\n offsetY.current = (positions[item.value] as any)._value; // 👈 CORREÇÃO APLICADA\n setDraggingId(item.value);\n },\n onPanResponderMove: (_, gesture) => {\n const currentItems = itemsRef.current;\n if (\n !positions[item.value] ||\n !currentItems.find(it => it.value === item.value)\n )\n return;\n\n const y = offsetY.current + gesture.dy;\n positions[item.value].setValue(y);\n\n const targetIndex = Math.max(\n 0,\n Math.min(\n currentItems.length - 1,\n Math.floor((y + ITEM_HEIGHT / 2) / ITEM_HEIGHT)\n )\n );\n\n currentItems.forEach((other, idx) => {\n if (other.value === item.value || !positions[other.value]) return;\n let targetY = idx * ITEM_HEIGHT;\n if (idx > activeIndex.current && idx <= targetIndex)\n targetY = (idx - 1) * ITEM_HEIGHT;\n else if (idx < activeIndex.current && idx >= targetIndex)\n targetY = (idx + 1) * ITEM_HEIGHT;\n\n Animated.timing(positions[other.value], {\n toValue: targetY,\n duration: 120,\n useNativeDriver: false,\n }).start();\n });\n },\n onPanResponderRelease: () => {\n const moved = activeItem.current;\n const currentItems = itemsRef.current;\n\n if (\n !moved ||\n !positions[moved.value] ||\n !currentItems.find(it => it.value === moved.value)\n )\n return;\n\n // CORREÇÃO: Usa a propriedade interna _value para obter a posição final\n const finalY = (positions[moved.value] as any)._value; // 👈 CORREÇÃO APLICADA\n const newIndex = Math.max(\n 0,\n Math.min(\n currentItems.length - 1,\n Math.floor((finalY + ITEM_HEIGHT / 2) / ITEM_HEIGHT)\n )\n );\n\n const oldIndex = activeIndex.current;\n const updated = [...currentItems];\n const [removed] = updated.splice(oldIndex, 1);\n updated.splice(newIndex, 0, removed);\n\n // Atualiza o state com a nova ordem.\n setItems(updated);\n onChange(updated);\n\n // A animação final agora está no useEffect, mas fazemos a limpeza das refs.\n setDraggingId(null);\n activeItem.current = null;\n activeIndex.current = -1;\n },\n });\n\n // Cria/Reusa os PanResponders\n items.forEach(it => {\n if (!panRespondersRef.current[it.value]) {\n panRespondersRef.current[it.value] = createPanResponder(it);\n }\n });\n\n const removeItem = (id: string) => {\n if (draggingId === id) {\n setDraggingId(null);\n activeItem.current = null;\n activeIndex.current = -1;\n }\n\n // CORREÇÃO: Delete a referência Animated.Value *e* a referência PanResponder\n if (positions[id]) {\n delete positions[id];\n }\n if (panRespondersRef.current[id]) {\n delete panRespondersRef.current[id];\n }\n\n setItems(prev => {\n const updated = prev.filter(it => it.value !== id);\n\n // Anima os itens restantes para seus novos índices\n updated.forEach((it, idx) => {\n if (positions[it.value])\n Animated.spring(positions[it.value], {\n toValue: idx * ITEM_HEIGHT,\n useNativeDriver: false,\n }).start();\n });\n\n onChange(updated);\n return updated;\n });\n };\n\n const Empty = () => {\n if (Utils.isEmpty(items)) {\n let empty = scope.part('empty', 'Sem registro');\n\n if (empty !== false) return <>{empty}</>;\n }\n\n return <></>;\n };\n\n return (\n <View style={styles.container}>\n <Empty />\n <View style={{ height: items.length * ITEM_HEIGHT, width: '100%' }}>\n {items.map(item => {\n const y = positions[item.value];\n if (!y) return null;\n\n const isDragging = draggingId === item.value;\n const itemStyle = scope.getStyle('row', { ...styles.item });\n\n return (\n <Animated.View\n key={item.value}\n {...(panRespondersRef.current[item.value]?.panHandlers ?? {})}\n style={[\n itemStyle,\n {\n position: 'absolute',\n left: 0,\n right: 0,\n height: ITEM_HEIGHT - 8,\n transform: [{ translateY: y }],\n zIndex: isDragging ? 999 : 0,\n elevation: isDragging ? 999 : 0,\n },\n ]}\n >\n <View style={styles.handle}>\n <Text style={styles.handleText}>≡</Text>\n </View>\n <Text style={styles.itemText}>{item.label}</Text>\n {element.remove && (\n <TouchableOpacity\n onPress={() => removeItem(item.value)}\n style={styles.del}\n >\n <Text style={{ color: '#fff' }}>X</Text>\n </TouchableOpacity>\n )}\n </Animated.View>\n );\n })}\n </View>\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n container: { flex: 1 },\n title: { fontSize: 18, fontWeight: '600', marginBottom: 12 },\n item: {\n backgroundColor: '#fff',\n borderRadius: 10,\n marginVertical: 4,\n paddingHorizontal: 12,\n alignItems: 'center',\n flexDirection: 'row',\n elevation: 3,\n shadowColor: '#000',\n shadowOpacity: 0.05,\n shadowRadius: 6,\n },\n handle: { width: 40, alignItems: 'center', justifyContent: 'center' },\n handleText: { fontSize: 22, color: '#666' },\n itemText: { fontSize: 16, flex: 1 },\n del: {\n backgroundColor: '#e74c3c',\n height: 34,\n width: 34,\n borderRadius: 6,\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n","import UIChildren from '../UIChildren';\nimport { ComponentUtils, DefineType, Utils } from 'react-crud-utils';\n\nexport default function UIInclude(props: DefineType) {\n if (props.rendered === false) {\n return <></>;\n }\n\n let includes = ComponentUtils.getDefine(props, props.name, props.position);\n\n if (Utils.isEmpty(includes)) {\n includes = props.default;\n }\n\n if (!Utils.isEmpty(includes)) {\n let Aux = (tagProp: any) => {\n let Tag: any = props.tag;\n\n if (!Utils.isEmpty(Tag)) {\n return <Tag {...tagProp}>{tagProp.children}</Tag>;\n }\n return <>{tagProp.children}</>;\n };\n\n return (\n <Aux {...props.tagProps}>\n <UIChildren\n transient\n {...props}\n scope={props.scope}\n crud={props.crud}\n part={props.name}\n >\n {includes}\n </UIChildren>\n </Aux>\n );\n }\n return <>{includes}</>;\n}\n","import {\n Keyboard,\n KeyboardAvoidingView,\n Platform,\n StatusBar,\n StyleProp,\n TouchableWithoutFeedback,\n ViewStyle,\n} from 'react-native';\nimport {\n SafeAreaProvider,\n SafeAreaView as SafeAreaContextView,\n} from 'react-native-safe-area-context';\nimport { ThemeUtils, useTheme, Utils } from 'react-crud-utils';\n\ninterface SafeViewType {\n safeStyle?: StyleProp<ViewStyle> | any;\n viewStyle?: StyleProp<ViewStyle> | any;\n children?: any;\n}\n\nexport default function SafeView(props: SafeViewType) {\n let theme = ThemeUtils.getCurrentTheme();\n //v2\n\n if (Utils.isEmpty(theme)) {\n theme = useTheme();\n }\n\n const dismissKeyboard = () => {\n if (Platform.OS !== 'web') {\n Keyboard.dismiss();\n }\n };\n\n return (\n <SafeAreaProvider>\n <SafeAreaContextView\n style={{\n backgroundColor: theme.colors?.theme,\n ...props.viewStyle,\n flex: 1,\n }}\n >\n <StatusBar barStyle=\"dark-content\" backgroundColor=\"#f5f5f5\" />\n <KeyboardAvoidingView\n behavior={Platform.OS === 'ios' ? 'padding' : 'height'}\n style={{\n flex: 1, // 🔹 Ocupa 100% da tela\n justifyContent: 'flex-start',\n }}\n >\n <TouchableWithoutFeedback\n onPress={dismissKeyboard}\n accessible={false}\n >\n <>{props.children}</>\n </TouchableWithoutFeedback>\n </KeyboardAvoidingView>\n </SafeAreaContextView>\n </SafeAreaProvider>\n );\n}\n","import {\n ListType,\n UserType,\n InputType,\n ChartType,\n ContainerType,\n ListInputType,\n TabsType,\n DefineType,\n ButtonType,\n IconType,\n LinkType,\n SliderType,\n} from 'react-crud-utils';\nimport UIElement from './UIElement';\n\nimport UIInclude from './core/UIInclude';\nimport SafeView from './core/SafeView';\nimport UIToast from './core/UIToast';\n\nconst UI = {\n Toast: UIToast,\n Order: (props: ListType) => <UIElement {...props} type=\"order\" />,\n List: (props: ListType) => <UIElement {...props} type=\"list\" />,\n Row: (props: UserType) => <UIElement {...props} type=\"row\" />,\n Value: (props: UserType) => <UIElement {...props} type=\"value\" />,\n Label: (props: UserType) => <UIElement {...props} type=\"label\" />,\n Repeat: (props: ListType) => <UIElement {...props} type=\"repeat\" props={{ search: false }} />,\n Define: (props: DefineType) => <UIElement {...props} type=\"define\" />,\n Include: (props: DefineType) => <UIInclude {...props} />,\n Column: ({ type = 'column', ...props }: UserType) => <UIElement {...props} type=\"column\" />,\n Input: (props: InputType) => <UIElement {...props} />,\n Text: (props: InputType) => <UIElement {...props} type=\"text\" />,\n Textarea: (props: InputType) => <UIElement {...props} type=\"textarea\" />,\n Email: (props: InputType) => <UIElement {...props} type=\"email\" />,\n Button: (props: ButtonType) => <UIElement {...props} type=\"button\" />,\n Link: (props: LinkType) => <UIElement {...props} type=\"link\" />,\n Icon: (props: IconType) => <UIElement {...props} type=\"icon\" transient />,\n Output: (props: ContainerType) => <UIElement {...props} type=\"output\" />,\n Form: (props: ContainerType) => <UIElement {...props} type=\"form\" />,\n Crud: (props: ContainerType) => <UIElement {...props} type=\"crud\" />,\n View: (props: ContainerType) => <UIElement {...props} type=\"view\" transient />,\n Bottom: (props: ContainerType) => <UIElement {...props} type=\"bottom\" />,\n Dialog: (props: ContainerType) => <UIElement {...props} type=\"dialog\" />,\n Content: (props: ContainerType) => <UIElement {...props} type=\"content\" />,\n Top: (props: ContainerType) => <UIElement {...props} type=\"top\" />,\n Card: (props: ContainerType) => <UIElement {...props} type=\"card\" />,\n Tab: (props: ContainerType) => <UIElement {...props} type=\"tab\" />,\n Tabs: (props: TabsType) => <UIElement {...props} type=\"tabs\" />,\n Step: (props: ContainerType) => <UIElement {...props} type=\"tab\" layout=\"step\" />,\n Stepper: (props: TabsType) => <UIElement {...props} type=\"tabs\" layout=\"stepper\" />,\n Money: (props: InputType) => <UIElement {...props} type=\"money\" />,\n Chart: (props: ChartType) => <UIElement {...props} type=\"chart\" />,\n Password: (props: InputType) => <UIElement {...props} type=\"password\" />,\n Complete: (props: InputType) => <UIElement {...props} type=\"complete\" />,\n Checkbox: (props: InputType) => <UIElement {...props} type=\"switch\" />,\n Switch: (props: InputType) => <UIElement {...props} type=\"switch\" />,\n Radio: (props: ListInputType) => <UIElement {...props} type=\"radio\" />,\n Select: (props: ListInputType) => <UIElement {...props} type=\"select\" />,\n Toggle: (props: ListInputType) => <UIElement {...props} type=\"toggle\" />,\n Entity: (props: ListInputType) => <UIElement {...props} type=\"entity\" />,\n Element: (props: ListInputType) => <UIElement {...props} type=\"element\" />,\n Quantity: (props: ListInputType) => <UIElement {...props} type=\"quantity\" />,\n Slider: (props: SliderType) => <UIElement {...props} type=\"slider\" />,\n SafeView: SafeView,\n};\nexport default UI;\n"],"mappings":"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","names":["useEffect","useRef","useState","React","useState","Utils","Fragment","jsx","useState","element","React","Utils","jsx","jsx","styles","Fragment","jsx","HtmlUtils","ScopeUtils","Utils","ComponentUtils","CrudUtils","ViewUtils","Text","TouchableOpacity","Linking","jsx","styles","Ionicons","Utils","Fragment","jsx","Utils","Text","View","useState","React","View","Ionicons","jsx","Fragment","jsx","jsxs","Utils","useState","styles","extra","Text","View","useState","Utils","Text","TouchableOpacity","StyleSheet","Modal","View","Ionicons","jsx","jsxs","useState","Utils","value","styles","View","TouchableOpacity","Text","Ionicons","Modal","StyleSheet","useState","Utils","jsx","useState","ComponentUtils","Utils","Fragment","jsx","Text","TouchableOpacity","Linking","jsx","styles","Text","TouchableOpacity","Linking","jsx","styles","useState","Utils","StyleSheet","View","Ionicons","Fragment","jsx","jsxs","styles","Linking","StyleSheet","Text","TouchableHighlight","View","Utils","Ionicons","useState","ComponentUtils","Utils","StyleSheet","Text","View","useRef","useState","ScopeUtils","Pressable","StyleSheet","View","useEffect","useState","Fragment","jsx","styles","ScopeUtils","useRef","item","useState","View","Pressable","StyleSheet","Fragment","jsx","jsxs","Utils","styles","stylesRepeat","stylesList","ComponentUtils","useState","Text","View","StyleSheet","Fragment","jsx","jsxs","Utils","Ionicons","useState","Utils","StyleSheet","Text","TouchableHighlight","View","jsx","Utils","useState","index","styles","Text","View","TouchableHighlight","StyleSheet","Ionicons","useState","Utils","Text","TouchableHighlight","Fragment","jsx","jsxs","styles","useRef","useState","ComponentUtils","ViewUtils","StyleSheet","jsx","styles","SafeAreaView","Modal","StyleSheet","Fragment","jsx","jsxs","useRef","ViewUtils","useState","styles","ComponentUtils","SafeAreaView","Ionicons","ScrollView","StyleSheet","View","ComponentUtils","Utils","ViewUtils","useRef","Text","TouchableOpacity","View","ComponentUtils","Utils","Ionicons","useState","Fragment","jsx","jsxs","ComponentUtils","Utils","Text","TouchableOpacity","Ionicons","View","Fragment","jsx","jsxs","useRef","crud","ViewUtils","Utils","ComponentUtils","View","styles","ScrollView","StyleSheet","Toast","useRef","useState","useEffect","Utils","View","Text","StyleSheet","Animated","TouchableOpacity","Fragment","jsx","jsxs","items","styles","Fragment","jsx","jsxs","Utils","useState","ScopeUtils","useRef","Toast","styles","useEffect","Ionicons","Linking","HtmlUtils","props","View","TouchableHighlight","Text","ComponentUtils","box","ViewUtils","crud","CrudUtils","StyleSheet","ComponentUtils","Utils","Fragment","jsx","Platform","TouchableWithoutFeedback","Utils","Fragment","jsx","jsxs","jsx"]}