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