react-crud-mobile 1.3.51 → 1.3.52

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.
Files changed (32) hide show
  1. package/dist/elements/UI.d.ts +1 -0
  2. package/dist/elements/core/UIOrder.d.ts +3 -0
  3. package/dist/react-crud-mobile.cjs.development.js +158 -2
  4. package/dist/react-crud-mobile.cjs.development.js.map +1 -1
  5. package/dist/react-crud-mobile.cjs.production.min.js +1 -1
  6. package/dist/react-crud-mobile.cjs.production.min.js.map +1 -1
  7. package/dist/react-crud-mobile.esm.js +158 -2
  8. package/dist/react-crud-mobile.esm.js.map +1 -1
  9. package/package.json +76 -75
  10. package/src/elements/UI.tsx +74 -73
  11. package/src/elements/UIChildren.tsx +139 -139
  12. package/src/elements/UIComplete.tsx +14 -14
  13. package/src/elements/UIElement.tsx +707 -701
  14. package/src/elements/UITag.tsx +13 -13
  15. package/src/elements/charts/ElChart.tsx +10 -10
  16. package/src/elements/core/SafeView.tsx +69 -69
  17. package/src/elements/core/UIButton.tsx +139 -139
  18. package/src/elements/core/UIIcon.tsx +25 -25
  19. package/src/elements/core/UIInclude.tsx +40 -40
  20. package/src/elements/core/UIInput.tsx +96 -96
  21. package/src/elements/core/UIList.tsx +168 -168
  22. package/src/elements/core/UIListRow.tsx +123 -123
  23. package/src/elements/core/UIModal.tsx +206 -206
  24. package/src/elements/core/UIOrder.tsx +169 -0
  25. package/src/elements/core/UIQuantity.tsx +98 -98
  26. package/src/elements/core/UISelect.tsx +177 -177
  27. package/src/elements/core/UIToast.tsx +44 -44
  28. package/src/elements/core/UIToggle.tsx +102 -102
  29. package/src/elements/core/UIView.tsx +94 -94
  30. package/src/elements/index.ts +1 -1
  31. package/src/elements/tabs/ElTabs.tsx +178 -178
  32. package/src/index.ts +1 -1
@@ -2,6 +2,7 @@
2
2
  import { ListType, UserType, InputType, ChartType, ContainerType, ListInputType, TabsType, DefineType, ButtonType, IconType, LinkType, SliderType } from 'react-crud-utils';
3
3
  import SafeView from './core/SafeView';
4
4
  declare const UI: {
5
+ Order: (props: ListType) => import("react").JSX.Element;
5
6
  List: (props: ListType) => import("react").JSX.Element;
6
7
  Row: (props: UserType) => import("react").JSX.Element;
7
8
  Value: (props: UserType) => import("react").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { ChildType } from 'react-crud-utils';
3
+ export default function UIOrder(props: ChildType): React.JSX.Element;
@@ -14,6 +14,7 @@ var vectorIcons = require('@expo/vector-icons');
14
14
  var Slider = _interopDefault(require('@react-native-community/slider'));
15
15
  var Toast = require('react-native-toast-message');
16
16
  var Toast__default = _interopDefault(Toast);
17
+ var DraggableFlatList = _interopDefault(require('react-native-draggable-flatlist'));
17
18
  var reactNativeSafeAreaContext = require('react-native-safe-area-context');
18
19
 
19
20
  function _extends() {
@@ -1598,6 +1599,153 @@ var styles$9 = /*#__PURE__*/reactNative.StyleSheet.create({
1598
1599
  view: {}
1599
1600
  });
1600
1601
 
1602
+ function UIOrder(props) {
1603
+ var scope = props.scope;
1604
+ var crud = scope.crud;
1605
+ var original = scope.original;
1606
+ var cols = reactCrudUtils.Utils.nvl(scope.getPart('cols', undefined, 1));
1607
+ var add = reactCrudUtils.ComponentUtils.getDefine(props, 'add');
1608
+ var hideAddWhenEmpty = original.hideAddWhenEmpty;
1609
+ var getStyle = function getStyle(key, extra) {
1610
+ return scope.getStyle(key, _extends({}, extra, styles$a[key]));
1611
+ };
1612
+ var getContainerStyle = function getContainerStyle(extra) {
1613
+ var row = getStyle('container', {});
1614
+ if (cols > 1) {
1615
+ row = _extends({}, row, {
1616
+ flexDirection: 'row',
1617
+ flexWrap: 'wrap'
1618
+ });
1619
+ }
1620
+ return row;
1621
+ };
1622
+ var LocalData = function LocalData() {
1623
+ var _useState = React.useState(scope.updateIndex),
1624
+ index = _useState[0],
1625
+ setIndex = _useState[1];
1626
+ scope.update = function () {
1627
+ scope.updateIndex = ++index;
1628
+ setIndex(index);
1629
+ };
1630
+ var keyData = scope.key('data');
1631
+ var items = reactCrudUtils.Utils.call(function () {
1632
+ var _original$list;
1633
+ var list = reactCrudUtils.Utils.nvl(scope.getItems(), []);
1634
+ if (original.search && !((_original$list = original.list) != null && _original$list.url)) {
1635
+ var query = crud.get('query', '').toLowerCase().trim();
1636
+ if (query.length > 1) {
1637
+ var filters = [];
1638
+ var filterBy = reactCrudUtils.Utils.nvl(original.filterBy, 'label');
1639
+ reactCrudUtils.Utils.each(list, function (o) {
1640
+ var label = o[filterBy];
1641
+ if (label) {
1642
+ if (label.includes(query)) {
1643
+ filters.push(o);
1644
+ }
1645
+ }
1646
+ });
1647
+ return filters;
1648
+ }
1649
+ }
1650
+ return list;
1651
+ });
1652
+ var isShowAdd = function isShowAdd() {
1653
+ if (!reactCrudUtils.Utils.isEmpty(items)) {
1654
+ return true;
1655
+ }
1656
+ return hideAddWhenEmpty !== true;
1657
+ };
1658
+ var Empty = function Empty() {
1659
+ if (!reactCrudUtils.Utils.isEmpty(items)) {
1660
+ return /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {});
1661
+ }
1662
+ var empty = scope.attr('empty', 'Sem registro');
1663
+ if (!empty) {
1664
+ return /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {});
1665
+ }
1666
+ if (typeof empty === 'string') {
1667
+ return /*#__PURE__*/jsxRuntime.jsx(reactNative.Text, {
1668
+ style: scope.getStyle('empty', {
1669
+ flex: 1,
1670
+ fontWeight: 500,
1671
+ fontSize: 20,
1672
+ padding: 10,
1673
+ textAlign: 'center',
1674
+ justifyContent: 'center',
1675
+ alignItems: 'center'
1676
+ }),
1677
+ children: empty
1678
+ });
1679
+ }
1680
+ return /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {
1681
+ children: empty
1682
+ });
1683
+ };
1684
+ var renderItem = function renderItem(_ref) {
1685
+ var item = _ref.item,
1686
+ drag = _ref.drag,
1687
+ isActive = _ref.isActive;
1688
+ return /*#__PURE__*/jsxRuntime.jsx(reactNative.TouchableOpacity, {
1689
+ style: [styles$a.row, {
1690
+ backgroundColor: isActive ? 'lightblue' : 'white'
1691
+ }],
1692
+ onLongPress: drag // Initiate drag on long press
1693
+ ,
1694
+ children: /*#__PURE__*/jsxRuntime.jsx(reactNative.Text, {
1695
+ style: styles$a.text,
1696
+ children: scope.getItemLabel(item)
1697
+ })
1698
+ });
1699
+ };
1700
+ return /*#__PURE__*/jsxRuntime.jsxs(reactNative.View, {
1701
+ style: getContainerStyle(),
1702
+ children: [/*#__PURE__*/jsxRuntime.jsx(Empty, {}), /*#__PURE__*/jsxRuntime.jsx(DraggableFlatList, {
1703
+ data: items,
1704
+ renderItem: renderItem,
1705
+ keyExtractor: function keyExtractor(item) {
1706
+ return scope.getItemValue(item);
1707
+ },
1708
+ onDragEnd: function onDragEnd(_ref2) {
1709
+ var data = _ref2.data;
1710
+ scope.changeValue(data);
1711
+ }
1712
+ }), isShowAdd() && /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {
1713
+ children: add
1714
+ })]
1715
+ }, keyData);
1716
+ };
1717
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
1718
+ children: [original.search !== false && /*#__PURE__*/jsxRuntime.jsx(UI.Text, {
1719
+ placeholder: "Pesquisar...",
1720
+ field: "query",
1721
+ crud: crud,
1722
+ style: {
1723
+ marginBottom: 10
1724
+ },
1725
+ change: {
1726
+ action: function action() {
1727
+ scope.search();
1728
+ }
1729
+ },
1730
+ icon: /*#__PURE__*/jsxRuntime.jsx(vectorIcons.Ionicons, {
1731
+ name: "search",
1732
+ size: 20,
1733
+ color: "#888"
1734
+ })
1735
+ }), /*#__PURE__*/jsxRuntime.jsx(LocalData, {})]
1736
+ });
1737
+ }
1738
+ var styles$a = /*#__PURE__*/reactNative.StyleSheet.create({
1739
+ row: {
1740
+ padding: 20,
1741
+ borderBottomWidth: 1,
1742
+ borderBottomColor: '#ccc'
1743
+ },
1744
+ text: {
1745
+ fontSize: 18
1746
+ }
1747
+ });
1748
+
1601
1749
  var CrudContext = /*#__PURE__*/React.createContext({});
1602
1750
  function UIElement(props) {
1603
1751
  var _original$list, _original$load;
@@ -1738,7 +1886,7 @@ function UIElement(props) {
1738
1886
  var _elementStyle$type;
1739
1887
  var type = reactCrudUtils.Utils.nvl(original.type, 'none');
1740
1888
  var key = reactCrudUtils.Utils.nvl(part, 'root');
1741
- var def = _extends({}, styles$a[key]);
1889
+ var def = _extends({}, styles$b[key]);
1742
1890
  var hasChild = hasChildren();
1743
1891
  type = reactCrudUtils.Utils.nvl(original.layout, type);
1744
1892
  if (!part && !hasChild) {
@@ -1938,6 +2086,9 @@ function UIElement(props) {
1938
2086
  }), scope.isType('list', 'repeat') && /*#__PURE__*/jsxRuntime.jsx(UIList, _extends({}, props, {
1939
2087
  scope: scope,
1940
2088
  crud: crud
2089
+ })), scope.isType('order') && /*#__PURE__*/jsxRuntime.jsx(UIOrder, _extends({}, props, {
2090
+ scope: scope,
2091
+ crud: crud
1941
2092
  })), scope.isType('dialog') && /*#__PURE__*/jsxRuntime.jsx(UIModal, _extends({}, props, {
1942
2093
  scope: scope,
1943
2094
  crud: crud
@@ -2086,7 +2237,7 @@ elementStyle.toggle = /*#__PURE__*/reactNative.StyleSheet.create({
2086
2237
  flexWrap: 'nowrap'
2087
2238
  })
2088
2239
  });
2089
- var styles$a = /*#__PURE__*/reactNative.StyleSheet.create({
2240
+ var styles$b = /*#__PURE__*/reactNative.StyleSheet.create({
2090
2241
  root: {
2091
2242
  gap: 5,
2092
2243
  flexDirection: 'column',
@@ -2196,6 +2347,11 @@ function SafeView(props) {
2196
2347
 
2197
2348
  var _excluded = ["type"];
2198
2349
  var UI = {
2350
+ Order: function Order(props) {
2351
+ return /*#__PURE__*/jsxRuntime.jsx(UIElement, _extends({}, props, {
2352
+ type: "order"
2353
+ }));
2354
+ },
2199
2355
  List: function List(props) {
2200
2356
  return /*#__PURE__*/jsxRuntime.jsx(UIElement, _extends({}, props, {
2201
2357
  type: "list"