ferns-ui 0.45.1 → 0.45.3

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/Common.d.ts CHANGED
@@ -246,18 +246,27 @@ export interface PillProps {
246
246
  enabled?: boolean;
247
247
  onClick: (enabled: boolean) => void;
248
248
  }
249
- export interface SegmentedControlProps {
249
+ type BaseSegmentedControlProps = {
250
250
  items: string[];
251
- onChange?: ({ activeIndex }: {
252
- activeIndex: number | number[];
253
- }) => void;
254
- selectedItemIndex?: number;
255
- selectedItemIndexes?: number[];
256
251
  responsive?: boolean;
257
252
  size?: "md" | "lg";
258
- multiselect?: boolean;
259
253
  selectLimit?: number;
260
- }
254
+ };
255
+ export type SegmentedControlPropsSingleSelect = BaseSegmentedControlProps & {
256
+ multiselect?: false;
257
+ onChange: ({ activeIndex }: {
258
+ activeIndex: number;
259
+ }) => void;
260
+ selectedItemIndex?: number;
261
+ };
262
+ export type SegmentedControlPropsMultiSelect = BaseSegmentedControlProps & {
263
+ multiselect: true;
264
+ onChange: ({ activeIndex }: {
265
+ activeIndex: number[];
266
+ }) => void;
267
+ selectedItemIndexes?: number[];
268
+ };
269
+ export type SegmentedControlProps = SegmentedControlPropsSingleSelect | SegmentedControlPropsMultiSelect;
261
270
  export interface FieldWithLabelsProps {
262
271
  testID?: string;
263
272
  errorMessage?: string;
@@ -1100,6 +1109,10 @@ export interface SpinnerProps {
1100
1109
  size?: "sm" | "md";
1101
1110
  color?: Color;
1102
1111
  }
1112
+ export type ColumnSortInterface = {
1113
+ column: number;
1114
+ direction: "asc" | "desc";
1115
+ };
1103
1116
  export interface TableProps {
1104
1117
  /**
1105
1118
  * Must be instances of TableHeader, TableRow, and/or TableFooter components.
@@ -1126,6 +1139,26 @@ export interface TableProps {
1126
1139
  * If true, alternate rows will have a light gray background. Defaults to true.
1127
1140
  */
1128
1141
  alternateRowBackground?: boolean;
1142
+ /**
1143
+ * Control sort outside of the Table
1144
+ */
1145
+ sort?: ColumnSortInterface;
1146
+ /**
1147
+ * Set the page outside of the Table
1148
+ */
1149
+ page?: number;
1150
+ /**
1151
+ * Set the page outside of the Table
1152
+ */
1153
+ setPage?: (page: number) => void;
1154
+ /**
1155
+ * If true, the table will render a next page button. Defaults to true.
1156
+ */
1157
+ more?: boolean;
1158
+ /**
1159
+ * Extra controls to render below the table next to pagination
1160
+ */
1161
+ extraControls?: React.ReactElement;
1129
1162
  }
1130
1163
  export interface TableHeaderProps {
1131
1164
  /**
@@ -1175,6 +1208,24 @@ export interface TableRowProps {
1175
1208
  */
1176
1209
  color?: BoxColor;
1177
1210
  }
1211
+ export type TableFilters = Record<string, string[]>;
1212
+ export type TableSearch = {
1213
+ search: string;
1214
+ field: string;
1215
+ };
1216
+ export interface TableContextType {
1217
+ columns: Array<number | string>;
1218
+ hasDrawerContents: boolean;
1219
+ sortColumn?: ColumnSortInterface | undefined;
1220
+ setSortColumn?: (sort: ColumnSortInterface | undefined) => void;
1221
+ stickyHeader?: boolean;
1222
+ borderStyle?: "sm" | "none";
1223
+ alternateRowBackground?: boolean;
1224
+ page?: number;
1225
+ }
1226
+ export interface TableContextProviderProps extends TableContextType {
1227
+ children: React.ReactElement;
1228
+ }
1178
1229
  export interface TextProps {
1179
1230
  align?: "left" | "right" | "center" | "justify";
1180
1231
  children?: React.ReactNode;
@@ -1245,6 +1296,7 @@ export interface TapToEditProps extends Omit<FieldProps, "onChange" | "value"> {
1245
1296
  openApiModel?: string;
1246
1297
  openApiField?: string;
1247
1298
  showDescriptionAsTooltip?: boolean;
1299
+ onlyShowDescriptionWhileEditing?: boolean;
1248
1300
  }
1249
1301
  export interface APIError {
1250
1302
  status: number;
@@ -1264,4 +1316,52 @@ export interface APIError {
1264
1316
  };
1265
1317
  };
1266
1318
  }
1319
+ export type OpenApiPropertyType = "string" | "date" | "datetime" | "boolean" | "array" | "object" | "number" | "any";
1320
+ export type OpenApiProperty = {
1321
+ type?: OpenApiPropertyType;
1322
+ format?: string;
1323
+ properties?: OpenApiProperty;
1324
+ items?: OpenApiProperty[];
1325
+ description?: string;
1326
+ required?: string[];
1327
+ enum?: string[];
1328
+ };
1329
+ export type ModelFields = {
1330
+ type: "object" | "array";
1331
+ required: string[];
1332
+ properties: {
1333
+ [name: string]: OpenApiProperty;
1334
+ };
1335
+ };
1336
+ export interface OpenAPISpec {
1337
+ paths: {
1338
+ [key: string]: any;
1339
+ };
1340
+ }
1341
+ export type ModelFieldConfig = any;
1342
+ export interface OpenAPIProviderProps {
1343
+ children: React.ReactElement;
1344
+ specUrl?: string;
1345
+ }
1346
+ export interface OpenAPIContextType {
1347
+ spec: OpenAPISpec | null;
1348
+ getModelFields: (modelName: string) => ModelFields | null;
1349
+ getModelField: (modelName: string, field: string) => OpenApiProperty | null;
1350
+ }
1351
+ export interface ModelAdminFieldConfig {
1352
+ fieldKey: string;
1353
+ title: string;
1354
+ description?: string;
1355
+ type: OpenApiPropertyType;
1356
+ width?: number;
1357
+ minWidth?: number;
1358
+ options?: string[];
1359
+ sort?: string;
1360
+ CustomComponent?: (props: ModelAdminCustomComponentProps) => React.ReactElement | null;
1361
+ }
1362
+ export interface ModelAdminCustomComponentProps extends Omit<FieldProps, "name"> {
1363
+ doc: any;
1364
+ fieldKey: string;
1365
+ editing: boolean;
1366
+ }
1267
1367
  export {};
@@ -1,4 +1,5 @@
1
1
  import React from "react";
2
- export declare const FernsProvider: ({ children }: {
2
+ export declare const FernsProvider: ({ children, openAPISpecUrl, }: {
3
3
  children: React.ReactNode;
4
+ openAPISpecUrl?: string | undefined;
4
5
  }) => React.ReactElement;
@@ -1,11 +1,13 @@
1
1
  import React from "react";
2
2
  import { Host } from "react-native-portalize";
3
3
  import { ToastProvider } from "react-native-toast-notifications";
4
+ import { OpenAPIProvider } from "./OpenAPIContext";
4
5
  import { ThemeProvider } from "./Theme";
5
6
  import { Toast } from "./Toast";
6
- export const FernsProvider = ({ children }) => {
7
+ export const FernsProvider = ({ children, openAPISpecUrl, }) => {
7
8
  return (React.createElement(ThemeProvider, null,
8
9
  React.createElement(ToastProvider, { animationDuration: 250, animationType: "slide-in", duration: 50000, offset: 50, placement: "bottom", renderToast: (toastOptions) => React.createElement(Toast, Object.assign({}, toastOptions)), swipeEnabled: true },
9
- React.createElement(Host, null, children))));
10
+ React.createElement(OpenAPIProvider, { specUrl: openAPISpecUrl },
11
+ React.createElement(Host, null, children)))));
10
12
  };
11
13
  //# sourceMappingURL=FernsProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FernsProvider.js","sourceRoot":"","sources":["../src/FernsProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,IAAI,EAAC,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAC,aAAa,EAAC,MAAM,kCAAkC,CAAC;AAE/D,OAAO,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AACtC,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAE9B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAC,QAAQ,EAA8B,EAAsB,EAAE;IAC3F,OAAO,CACL,oBAAC,aAAa;QACZ,oBAAC,aAAa,IACZ,iBAAiB,EAAE,GAAG,EACtB,aAAa,EAAC,UAAU,EACxB,QAAQ,EAAE,KAAK,EACf,MAAM,EAAE,EAAE,EACV,SAAS,EAAC,QAAQ,EAClB,WAAW,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,oBAAC,KAAK,oBAAM,YAAoB,EAAI,EACnE,YAAY;YAEZ,oBAAC,IAAI,QAAE,QAAQ,CAAQ,CACT,CACF,CACjB,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"FernsProvider.js","sourceRoot":"","sources":["../src/FernsProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,IAAI,EAAC,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAC,aAAa,EAAC,MAAM,kCAAkC,CAAC;AAE/D,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AACtC,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAE9B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,QAAQ,EACR,cAAc,GAIf,EAAsB,EAAE;IACvB,OAAO,CACL,oBAAC,aAAa;QACZ,oBAAC,aAAa,IACZ,iBAAiB,EAAE,GAAG,EACtB,aAAa,EAAC,UAAU,EACxB,QAAQ,EAAE,KAAK,EACf,MAAM,EAAE,EAAE,EACV,SAAS,EAAC,QAAQ,EAClB,WAAW,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,oBAAC,KAAK,oBAAM,YAAoB,EAAI,EACnE,YAAY;YAEZ,oBAAC,eAAe,IAAC,OAAO,EAAE,cAAc;gBACtC,oBAAC,IAAI,QAAE,QAAQ,CAAQ,CACP,CACJ,CACF,CACjB,CAAC;AACJ,CAAC,CAAC"}
@@ -1,34 +1,4 @@
1
1
  import React from "react";
2
- interface OpenAPISpec {
3
- paths: {
4
- [key: string]: any;
5
- };
6
- }
7
- export type ModelFieldConfig = any;
8
- export type OpenApiPropertyType = "string" | "number" | "boolean" | "array" | "object";
9
- export type OpenApiProperty = {
10
- type?: OpenApiPropertyType;
11
- format?: string;
12
- properties?: OpenApiProperty;
13
- items?: OpenApiProperty[];
14
- description?: string;
15
- };
16
- export type ModelFields = {
17
- type: "object" | "array";
18
- required: string[];
19
- properties: {
20
- [name: string]: OpenApiProperty;
21
- };
22
- };
23
- interface OpenAPIContextType {
24
- spec: OpenAPISpec | null;
25
- getModelFields: (modelName: string) => ModelFields | null;
26
- getModelField: (modelName: string, field: string) => OpenApiProperty;
27
- }
28
- interface OpenAPIProviderProps {
29
- children: React.ReactElement;
30
- specUrl?: string;
31
- }
2
+ import { OpenAPIContextType, OpenAPIProviderProps } from "./Common";
32
3
  export declare const OpenAPIProvider: ({ children, specUrl }: OpenAPIProviderProps) => React.ReactElement;
33
4
  export declare const useOpenAPISpec: () => OpenAPIContextType;
34
- export {};
@@ -13,8 +13,7 @@ export const OpenAPIProvider = ({ children, specUrl }) => {
13
13
  }
14
14
  return null;
15
15
  }
16
- const items = (_j = (_h = (_g = (_f = (_e = (_d = (_c = (_b = rootConfig === null || rootConfig === void 0 ? void 0 : rootConfig.get) === null || _b === void 0 ? void 0 : _b.responses) === null || _c === void 0 ? void 0 : _c["200"]) === null || _d === void 0 ? void 0 : _d.content) === null || _e === void 0 ? void 0 : _e["application/json"]) === null || _f === void 0 ? void 0 : _f.schema) === null || _g === void 0 ? void 0 : _g.properties) === null || _h === void 0 ? void 0 : _h.data) === null || _j === void 0 ? void 0 : _j.items;
17
- return items;
16
+ return (_j = (_h = (_g = (_f = (_e = (_d = (_c = (_b = rootConfig === null || rootConfig === void 0 ? void 0 : rootConfig.get) === null || _b === void 0 ? void 0 : _b.responses) === null || _c === void 0 ? void 0 : _c["200"]) === null || _d === void 0 ? void 0 : _d.content) === null || _e === void 0 ? void 0 : _e["application/json"]) === null || _f === void 0 ? void 0 : _f.schema) === null || _g === void 0 ? void 0 : _g.properties) === null || _h === void 0 ? void 0 : _h.data) === null || _j === void 0 ? void 0 : _j.items;
18
17
  };
19
18
  const getModelField = (modelName, fieldName) => {
20
19
  var _a, _b;
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAPIContext.js","sourceRoot":"","sources":["../src/OpenAPIContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OpenAPIContext.js","sourceRoot":"","sources":["../src/OpenAPIContext.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { ReactElement } from "react";
2
+ interface PaginationControlProps {
3
+ shouldDisableBackButton: boolean;
4
+ shouldDisableNextButton: boolean;
5
+ page: number;
6
+ setPage: (page: number) => void;
7
+ }
8
+ export declare const PaginationControl: ({ shouldDisableBackButton, shouldDisableNextButton, page, setPage, }: PaginationControlProps) => ReactElement;
9
+ export {};
@@ -0,0 +1,16 @@
1
+ import React from "react";
2
+ import { Box } from "./Box";
3
+ import { Button } from "./Button";
4
+ import { Text } from "./Text";
5
+ export const PaginationControl = ({ shouldDisableBackButton, shouldDisableNextButton, page, setPage, }) => {
6
+ return (React.createElement(Box, { direction: "row", paddingY: 2 },
7
+ React.createElement(Box, null,
8
+ React.createElement(Button, { color: "blue", disabled: shouldDisableBackButton, text: "Prev Page", onClick: () => setPage(Number(page) - 1) })),
9
+ React.createElement(Box, { justifyContent: "center", paddingX: 4 },
10
+ React.createElement(Text, null,
11
+ "Page: ",
12
+ page)),
13
+ React.createElement(Box, null,
14
+ React.createElement(Button, { color: "blue", disabled: shouldDisableNextButton, text: "Next Page", onClick: () => setPage(Number(page) + 1) }))));
15
+ };
16
+ //# sourceMappingURL=Pagination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pagination.js","sourceRoot":"","sources":["../src/Pagination.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAChC,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAS5B,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAChC,uBAAuB,EACvB,uBAAuB,EACvB,IAAI,EACJ,OAAO,GACgB,EAAgB,EAAE;IACzC,OAAO,CACL,oBAAC,GAAG,IAAC,SAAS,EAAC,KAAK,EAAC,QAAQ,EAAE,CAAC;QAC9B,oBAAC,GAAG;YACF,oBAAC,MAAM,IACL,KAAK,EAAC,MAAM,EACZ,QAAQ,EAAE,uBAAuB,EACjC,IAAI,EAAC,WAAW,EAChB,OAAO,EAAE,GAAS,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAC9C,CACE;QACN,oBAAC,GAAG,IAAC,cAAc,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC;YACtC,oBAAC,IAAI;;gBAAQ,IAAI,CAAQ,CACrB;QACN,oBAAC,GAAG;YACF,oBAAC,MAAM,IACL,KAAK,EAAC,MAAM,EACZ,QAAQ,EAAE,uBAAuB,EACjC,IAAI,EAAC,WAAW,EAChB,OAAO,EAAE,GAAS,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAC9C,CACE,CACF,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import React from "react";
2
2
  import { SegmentedControlProps } from "./Common";
3
- export declare const SegmentedControl: ({ items, onChange, selectedItemIndexes, selectedItemIndex, multiselect, selectLimit, }: SegmentedControlProps) => React.JSX.Element | null;
3
+ export declare const SegmentedControl: ({ items, onChange, multiselect, selectLimit, ...props }: SegmentedControlProps) => React.JSX.Element | null;
@@ -1,7 +1,21 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
1
12
  import React from "react";
2
13
  import { Box } from "./Box";
3
14
  import { Text } from "./Text";
4
- export const SegmentedControl = ({ items, onChange = () => { }, selectedItemIndexes = undefined, selectedItemIndex = undefined, multiselect = false, selectLimit = 1, }) => {
15
+ export const SegmentedControl = (_a) => {
16
+ var { items, onChange = () => { }, multiselect = false, selectLimit = 1 } = _a, props = __rest(_a, ["items", "onChange", "multiselect", "selectLimit"]);
17
+ const selectedItemIndex = props.selectedItemIndex;
18
+ const selectedItemIndexes = props.selectedItemIndexes;
5
19
  const renderItem = (item) => {
6
20
  return (React.createElement(Text, { align: "center", weight: "bold" }, item));
7
21
  // if (typeof item === "string") {
@@ -38,17 +52,19 @@ export const SegmentedControl = ({ items, onChange = () => { }, selectedItemInde
38
52
  return;
39
53
  }
40
54
  if (multiselect) {
55
+ const typedOnChange = onChange;
41
56
  if (selectedItemIndexes === null || selectedItemIndexes === void 0 ? void 0 : selectedItemIndexes.includes(index)) {
42
- onChange({ activeIndex: selectedItemIndexes.filter((i) => i !== index) });
57
+ typedOnChange({ activeIndex: selectedItemIndexes.filter((i) => i !== index) });
43
58
  }
44
59
  else {
45
60
  const currentIndexes = [...selectedItemIndexes];
46
61
  currentIndexes === null || currentIndexes === void 0 ? void 0 : currentIndexes.push(index);
47
- onChange({ activeIndex: currentIndexes === null || currentIndexes === void 0 ? void 0 : currentIndexes.sort() });
62
+ typedOnChange({ activeIndex: currentIndexes === null || currentIndexes === void 0 ? void 0 : currentIndexes.sort() });
48
63
  }
49
64
  }
50
65
  else {
51
- onChange({ activeIndex: index });
66
+ const typedOnChange = onChange;
67
+ typedOnChange({ activeIndex: index });
52
68
  }
53
69
  } }, renderItem(item)))))));
54
70
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SegmentedControl.js","sourceRoot":"","sources":["../src/SegmentedControl.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SegmentedControl.js","sourceRoot":"","sources":["../src/SegmentedControl.tsx"],"names":[],"mappings":"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"}
package/dist/Table.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import React, { ReactElement } from "react";
2
2
  import { TableProps } from "./Common";
3
- export declare const Table: ({ children, columns, borderStyle, alternateRowBackground, maxHeight, stickyHeader, }: TableProps) => React.ReactElement;
3
+ export declare const Table: ({ children, columns, borderStyle, alternateRowBackground, maxHeight, stickyHeader, sort, page: propsPage, setPage: propsSetPage, more, extraControls, }: TableProps) => React.ReactElement;
package/dist/Table.js CHANGED
@@ -1,9 +1,14 @@
1
1
  import React, { Children } from "react";
2
- import { ScrollView } from "./ScrollView";
2
+ import { ScrollView } from "react-native";
3
+ import { Box } from "./Box";
4
+ import { PaginationControl } from "./Pagination";
3
5
  import { TableContextProvider } from "./tableContext";
4
- export const Table = ({ children, columns, borderStyle, alternateRowBackground = true, maxHeight, stickyHeader = true, }) => {
6
+ export const Table = ({ children, columns, borderStyle, alternateRowBackground = true, maxHeight, stickyHeader = true, sort, page: propsPage, setPage: propsSetPage, more, extraControls, }) => {
5
7
  const arrayChildren = Children.toArray(children);
6
- const [sortColumn, setSortColumn] = React.useState(undefined);
8
+ // Check if any of the rows below have a drawerContents prop to see if we need to render space
9
+ // for the caret.
10
+ const [sortColumn, setSortColumn] = React.useState(sort);
11
+ const [page, setPage] = React.useState(propsPage !== null && propsPage !== void 0 ? propsPage : 1);
7
12
  // Check if any of the rows below have a drawerContents prop to see if we need to render space
8
13
  // for the caret.
9
14
  const hasDrawerContents = arrayChildren.some((child) => {
@@ -24,10 +29,17 @@ export const Table = ({ children, columns, borderStyle, alternateRowBackground =
24
29
  else {
25
30
  width = "100%";
26
31
  }
27
- return (React.createElement(TableContextProvider, { alternateRowBackground: alternateRowBackground, borderStyle: borderStyle, columns: columns, hasDrawerContents: hasDrawerContents, setSortColumn: setSortColumn, sortColumn: sortColumn, stickyHeader: stickyHeader },
28
- React.createElement(ScrollView, { horizontal: true, style: { width, maxWidth: "100%" } },
29
- React.createElement(ScrollView, { stickyHeaderIndices: stickyHeader ? [0] : undefined, style: { width, maxWidth: "100%", flex: 1, maxHeight } }, Children.map(children, (child, index) => React.cloneElement(child, {
30
- color: index % 2 === 1 && alternateRowBackground ? "lightGray" : "white",
31
- }))))));
32
+ const shouldPaginate = more || page > 1;
33
+ return (React.createElement(TableContextProvider, { alternateRowBackground: alternateRowBackground, borderStyle: borderStyle, columns: columns, hasDrawerContents: hasDrawerContents, page: page, setSortColumn: setSortColumn, sortColumn: sortColumn, stickyHeader: stickyHeader },
34
+ React.createElement(React.Fragment, null,
35
+ React.createElement(Box, { flex: "grow", maxWidth: "100%", width: width },
36
+ React.createElement(ScrollView, { horizontal: true, style: { width, maxWidth: "100%" } },
37
+ React.createElement(ScrollView, { stickyHeaderIndices: stickyHeader ? [0] : undefined, style: { width, maxWidth: "100%", flex: 1, maxHeight } }, Children.map(children, (child, index) => Boolean(child) &&
38
+ React.cloneElement(child, {
39
+ color: index % 2 === 1 && alternateRowBackground ? "lightGray" : "white",
40
+ }))))),
41
+ Boolean(shouldPaginate) && (React.createElement(Box, { alignItems: "center", borderTop: "gray", direction: "row", height: 60, paddingX: 8 },
42
+ React.createElement(PaginationControl, { page: propsPage !== null && propsPage !== void 0 ? propsPage : page, setPage: propsSetPage !== null && propsSetPage !== void 0 ? propsSetPage : setPage, shouldDisableBackButton: (propsPage !== null && propsPage !== void 0 ? propsPage : page) <= 1, shouldDisableNextButton: !more }),
43
+ Boolean(extraControls) && extraControls)))));
32
44
  };
33
45
  //# sourceMappingURL=Table.js.map
package/dist/Table.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sourceRoot":"","sources":["../src/Table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,QAAQ,EAAe,MAAM,OAAO,CAAC;AAIpD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAsB,oBAAoB,EAAC,MAAM,gBAAgB,CAAC;AAEzE,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EACpB,QAAQ,EACR,OAAO,EACP,WAAW,EACX,sBAAsB,GAAG,IAAI,EAC7B,SAAS,EACT,YAAY,GAAG,IAAI,GACR,EAAsB,EAAE;IACnC,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAkC,SAAS,CAAC,CAAC;IAE/F,8FAA8F;IAC9F,iBAAiB;IACjB,MAAM,iBAAiB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;;QACrD,OAAO,MAAC,KAAsB,CAAC,KAAK,0CAAE,cAAc,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,2FAA2F;IAC3F,6BAA6B;IAC7B,IAAI,KAAqB,CAAC;IAC1B,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC1D,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACnC,OAAQ,GAAc,GAAI,IAAe,CAAC;QAC5C,CAAC,EAAE,CAAC,CAAW,CAAC;QAChB,IAAI,iBAAiB,EAAE,CAAC;YACtB,KAAK,GAAI,KAAgB,GAAG,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,MAAM,CAAC;IACjB,CAAC;IAED,OAAO,CACL,oBAAC,oBAAoB,IACnB,sBAAsB,EAAE,sBAAsB,EAC9C,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY;QAE1B,oBAAC,UAAU,IAAC,UAAU,QAAC,KAAK,EAAE,EAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAC;YACrD,oBAAC,UAAU,IACT,mBAAmB,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EACnD,KAAK,EAAE,EAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAC,IAEnD,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACvC,KAAK,CAAC,YAAY,CAAC,KAAY,EAAE;gBAC/B,KAAK,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,sBAAsB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO;aACzE,CAAC,CACH,CACU,CACF,CACQ,CACxB,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Table.js","sourceRoot":"","sources":["../src/Table.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { ReactElement } from "react";
2
2
  import { TapToEditProps } from "./Common";
3
3
  export declare function formatAddress(address: any, asString?: boolean): string;
4
- export declare const TapToEdit: ({ value, setValue, placeholder, title, onSave, editable, isEditing, rowBoxProps, transform, fieldComponent, withConfirmation, confirmationText, confirmationHeading, description: propsDescription, showDescriptionAsTooltip, ...fieldProps }: TapToEditProps) => ReactElement;
4
+ export declare const TapToEdit: ({ value, setValue, placeholder, title, onSave, editable, isEditing, rowBoxProps, transform, fieldComponent, withConfirmation, confirmationText, confirmationHeading, description: propsDescription, showDescriptionAsTooltip, onlyShowDescriptionWhileEditing, ...fieldProps }: TapToEditProps) => ReactElement;
package/dist/TapToEdit.js CHANGED
@@ -48,7 +48,7 @@ export const TapToEdit = (_a) => {
48
48
  var { value, setValue, placeholder, title, onSave, editable = true, isEditing = false, rowBoxProps, transform, fieldComponent, withConfirmation = false, confirmationText = "Are you sure you want to save your changes?", confirmationHeading = "Confirm", description: propsDescription,
49
49
  // openApiModel,
50
50
  // openApiField,
51
- showDescriptionAsTooltip = false } = _a, fieldProps = __rest(_a, ["value", "setValue", "placeholder", "title", "onSave", "editable", "isEditing", "rowBoxProps", "transform", "fieldComponent", "withConfirmation", "confirmationText", "confirmationHeading", "description", "showDescriptionAsTooltip"]);
51
+ showDescriptionAsTooltip = false, onlyShowDescriptionWhileEditing = true } = _a, fieldProps = __rest(_a, ["value", "setValue", "placeholder", "title", "onSave", "editable", "isEditing", "rowBoxProps", "transform", "fieldComponent", "withConfirmation", "confirmationText", "confirmationHeading", "description", "showDescriptionAsTooltip", "onlyShowDescriptionWhileEditing"]);
52
52
  const [editing, setEditing] = useState(false);
53
53
  const [initialValue] = useState(value);
54
54
  // const {getModelField} = useOpenAPISpec();
@@ -141,7 +141,7 @@ export const TapToEdit = (_a) => {
141
141
  React.createElement(Text, { weight: "bold" },
142
142
  title,
143
143
  ":"),
144
- Boolean(description && !showDescriptionAsTooltip) && React.createElement(Text, null, description)));
144
+ Boolean(description && !showDescriptionAsTooltip && !onlyShowDescriptionWhileEditing) && (React.createElement(Text, { color: "gray", size: "sm" }, description))));
145
145
  };
146
146
  return (React.createElement(Box, Object.assign({ direction: "row", justifyContent: "between", paddingX: 3, paddingY: 2, width: "100%" }, rowBoxProps),
147
147
  showDescriptionAsTooltip ? (React.createElement(Tooltip, { idealDirection: "top", text: description }, renderTitleDescription())) : (renderTitleDescription()),
@@ -1 +1 @@
1
- {"version":3,"file":"TapToEdit.js","sourceRoot":"","sources":["../src/TapToEdit.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TapToEdit.js","sourceRoot":"","sources":["../src/TapToEdit.tsx"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -48,6 +48,7 @@ export * from "./Spinner";
48
48
  export * from "./SplitPage";
49
49
  export * from "./Switch";
50
50
  export * from "./Table";
51
+ export * from "./tableContext";
51
52
  export * from "./TableHeader";
52
53
  export * from "./TableHeaderCell";
53
54
  export * from "./TableRow";
package/dist/index.js CHANGED
@@ -48,6 +48,7 @@ export * from "./Spinner";
48
48
  export * from "./SplitPage";
49
49
  export * from "./Switch";
50
50
  export * from "./Table";
51
+ export * from "./tableContext";
51
52
  export * from "./TableHeader";
52
53
  export * from "./TableHeaderCell";
53
54
  export * from "./TableRow";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC"}
@@ -1,21 +1,5 @@
1
1
  import React from "react";
2
- export interface ColumnSortInterface {
3
- column: number | undefined;
4
- direction: "asc" | "desc" | undefined;
5
- }
6
- interface TableContextType {
7
- columns: Array<number | string>;
8
- hasDrawerContents: boolean;
9
- sortColumn?: ColumnSortInterface | undefined;
10
- setSortColumn?: (sort: ColumnSortInterface | undefined) => void;
11
- stickyHeader?: boolean;
12
- borderStyle?: "sm" | "none";
13
- alternateRowBackground?: boolean;
14
- }
15
- interface Props extends TableContextType {
16
- children: React.ReactElement;
17
- }
2
+ import { TableContextProviderProps, TableContextType } from "./Common";
18
3
  export declare const Provider: React.Provider<TableContextType>;
19
- export declare const TableContextProvider: ({ children, columns, hasDrawerContents, sortColumn, setSortColumn, stickyHeader, borderStyle, alternateRowBackground, }: Props) => React.ReactElement<typeof Provider>;
4
+ export declare const TableContextProvider: ({ children, columns, hasDrawerContents, sortColumn, setSortColumn, stickyHeader, borderStyle, alternateRowBackground, page, }: TableContextProviderProps) => React.ReactElement<typeof Provider>;
20
5
  export declare function useTableContext(): TableContextType;
21
- export {};
@@ -7,9 +7,10 @@ const TableContext = createContext({
7
7
  stickyHeader: true,
8
8
  borderStyle: "sm",
9
9
  alternateRowBackground: true,
10
+ page: 1,
10
11
  });
11
12
  export const { Provider } = TableContext;
12
- export const TableContextProvider = ({ children, columns, hasDrawerContents, sortColumn, setSortColumn, stickyHeader, borderStyle, alternateRowBackground, }) => {
13
+ export const TableContextProvider = ({ children, columns, hasDrawerContents, sortColumn, setSortColumn, stickyHeader, borderStyle, alternateRowBackground, page, }) => {
13
14
  return (React.createElement(Provider, { value: {
14
15
  columns,
15
16
  alternateRowBackground,
@@ -18,6 +19,7 @@ export const TableContextProvider = ({ children, columns, hasDrawerContents, sor
18
19
  sortColumn,
19
20
  setSortColumn,
20
21
  stickyHeader,
22
+ page,
21
23
  } }, children));
22
24
  };
23
25
  export function useTableContext() {
@@ -1 +1 @@
1
- {"version":3,"file":"tableContext.js","sourceRoot":"","sources":["../src/tableContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAU,aAAa,EAAE,UAAU,EAAC,MAAM,OAAO,CAAC;AAqBhE,MAAM,YAAY,GAA8B,aAAa,CAAmB;IAC9E,OAAO,EAAE,EAAE;IACX,iBAAiB,EAAE,KAAK;IACxB,UAAU,EAAE,SAAS;IACrB,aAAa,EAAE,GAAG,EAAE,GAAE,CAAC;IACvB,YAAY,EAAE,IAAI;IAClB,WAAW,EAAE,IAAI;IACjB,sBAAsB,EAAE,IAAI;CAC7B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,EAAC,QAAQ,EAAC,GAAG,YAAY,CAAC;AAEvC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EACnC,QAAQ,EACR,OAAO,EACP,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,YAAY,EACZ,WAAW,EACX,sBAAsB,GAChB,EAAuC,EAAE;IAC/C,OAAO,CACL,oBAAC,QAAQ,IACP,KAAK,EAAE;YACL,OAAO;YACP,sBAAsB;YACtB,WAAW;YACX,iBAAiB;YACjB,UAAU;YACV,aAAa;YACb,YAAY;SACb,IAEA,QAAQ,CACA,CACZ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,eAAe;IAC7B,MAAM,EACJ,OAAO,EACP,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,YAAY,EACZ,sBAAsB,EACtB,WAAW,GACZ,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAC7B,OAAO;QACL,OAAO;QACP,iBAAiB;QACjB,aAAa;QACb,UAAU;QACV,YAAY;QACZ,sBAAsB;QACtB,WAAW;KACZ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"tableContext.js","sourceRoot":"","sources":["../src/tableContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAU,aAAa,EAAE,UAAU,EAAC,MAAM,OAAO,CAAC;AAIhE,MAAM,YAAY,GAA8B,aAAa,CAAmB;IAC9E,OAAO,EAAE,EAAE;IACX,iBAAiB,EAAE,KAAK;IACxB,UAAU,EAAE,SAAS;IACrB,aAAa,EAAE,GAAG,EAAE,GAAE,CAAC;IACvB,YAAY,EAAE,IAAI;IAClB,WAAW,EAAE,IAAI;IACjB,sBAAsB,EAAE,IAAI;IAC5B,IAAI,EAAE,CAAC;CACR,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,EAAC,QAAQ,EAAC,GAAG,YAAY,CAAC;AAEvC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EACnC,QAAQ,EACR,OAAO,EACP,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,IAAI,GACsB,EAAuC,EAAE;IACnE,OAAO,CACL,oBAAC,QAAQ,IACP,KAAK,EAAE;YACL,OAAO;YACP,sBAAsB;YACtB,WAAW;YACX,iBAAiB;YACjB,UAAU;YACV,aAAa;YACb,YAAY;YACZ,IAAI;SACL,IAEA,QAAQ,CACA,CACZ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,eAAe;IAC7B,MAAM,EACJ,OAAO,EACP,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,YAAY,EACZ,sBAAsB,EACtB,WAAW,GACZ,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAC7B,OAAO;QACL,OAAO;QACP,iBAAiB;QACjB,aAAa;QACb,UAAU;QACV,YAAY;QACZ,sBAAsB;QACtB,WAAW;KACZ,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ferns-ui",
3
- "version": "0.45.1",
3
+ "version": "0.45.3",
4
4
  "main": "dist/index.js",
5
5
  "license": "Apache-2.0",
6
6
  "scripts": {
package/src/Common.ts CHANGED
@@ -1878,16 +1878,28 @@ export interface PillProps {
1878
1878
  onClick: (enabled: boolean) => void;
1879
1879
  }
1880
1880
 
1881
- export interface SegmentedControlProps {
1881
+ type BaseSegmentedControlProps = {
1882
1882
  items: string[];
1883
- onChange?: ({activeIndex}: {activeIndex: number | number[]}) => void;
1884
- selectedItemIndex?: number;
1885
- selectedItemIndexes?: number[];
1886
1883
  responsive?: boolean;
1887
- size?: "md" | "lg"; // defaults to md
1888
- multiselect?: boolean;
1884
+ size?: "md" | "lg";
1889
1885
  selectLimit?: number;
1890
- }
1886
+ };
1887
+
1888
+ export type SegmentedControlPropsSingleSelect = BaseSegmentedControlProps & {
1889
+ multiselect?: false;
1890
+ onChange: ({activeIndex}: {activeIndex: number}) => void;
1891
+ selectedItemIndex?: number;
1892
+ };
1893
+
1894
+ export type SegmentedControlPropsMultiSelect = BaseSegmentedControlProps & {
1895
+ multiselect: true;
1896
+ onChange: ({activeIndex}: {activeIndex: number[]}) => void;
1897
+ selectedItemIndexes?: number[];
1898
+ };
1899
+
1900
+ export type SegmentedControlProps =
1901
+ | SegmentedControlPropsSingleSelect
1902
+ | SegmentedControlPropsMultiSelect;
1891
1903
 
1892
1904
  // Shared props for fields with labels, subtext, and error messages.
1893
1905
  export interface FieldWithLabelsProps {
@@ -2902,6 +2914,11 @@ export interface SpinnerProps {
2902
2914
  color?: Color;
2903
2915
  }
2904
2916
 
2917
+ export type ColumnSortInterface = {
2918
+ column: number;
2919
+ direction: "asc" | "desc";
2920
+ };
2921
+
2905
2922
  export interface TableProps {
2906
2923
  /**
2907
2924
  * Must be instances of TableHeader, TableRow, and/or TableFooter components.
@@ -2928,6 +2945,27 @@ export interface TableProps {
2928
2945
  * If true, alternate rows will have a light gray background. Defaults to true.
2929
2946
  */
2930
2947
  alternateRowBackground?: boolean;
2948
+
2949
+ /**
2950
+ * Control sort outside of the Table
2951
+ */
2952
+ sort?: ColumnSortInterface;
2953
+ /**
2954
+ * Set the page outside of the Table
2955
+ */
2956
+ page?: number;
2957
+ /**
2958
+ * Set the page outside of the Table
2959
+ */
2960
+ setPage?: (page: number) => void;
2961
+ /**
2962
+ * If true, the table will render a next page button. Defaults to true.
2963
+ */
2964
+ more?: boolean;
2965
+ /**
2966
+ * Extra controls to render below the table next to pagination
2967
+ */
2968
+ extraControls?: React.ReactElement;
2931
2969
  }
2932
2970
 
2933
2971
  export interface TableHeaderProps {
@@ -2981,6 +3019,25 @@ export interface TableRowProps {
2981
3019
  color?: BoxColor;
2982
3020
  }
2983
3021
 
3022
+ export type TableFilters = Record<string, string[]>;
3023
+
3024
+ export type TableSearch = {search: string; field: string};
3025
+
3026
+ export interface TableContextType {
3027
+ columns: Array<number | string>;
3028
+ hasDrawerContents: boolean;
3029
+ sortColumn?: ColumnSortInterface | undefined;
3030
+ setSortColumn?: (sort: ColumnSortInterface | undefined) => void;
3031
+ stickyHeader?: boolean;
3032
+ borderStyle?: "sm" | "none";
3033
+ alternateRowBackground?: boolean;
3034
+ page?: number;
3035
+ }
3036
+
3037
+ export interface TableContextProviderProps extends TableContextType {
3038
+ children: React.ReactElement;
3039
+ }
3040
+
2984
3041
  export interface TextProps {
2985
3042
  align?: "left" | "right" | "center" | "justify"; // default "left"
2986
3043
  children?: React.ReactNode;
@@ -3063,6 +3120,8 @@ export interface TapToEditProps extends Omit<FieldProps, "onChange" | "value"> {
3063
3120
  openApiModel?: string;
3064
3121
  openApiField?: string;
3065
3122
  showDescriptionAsTooltip?: boolean;
3123
+ // Default true. If false, description is shown below the value always.
3124
+ onlyShowDescriptionWhileEditing?: boolean;
3066
3125
  }
3067
3126
 
3068
3127
  export interface APIError {
@@ -3081,3 +3140,70 @@ export interface APIError {
3081
3140
  meta?: {[id: string]: any};
3082
3141
  };
3083
3142
  }
3143
+
3144
+ export type OpenApiPropertyType =
3145
+ | "string"
3146
+ | "date"
3147
+ | "datetime"
3148
+ | "boolean"
3149
+ | "array"
3150
+ | "object"
3151
+ | "number"
3152
+ | "any";
3153
+
3154
+ export type OpenApiProperty = {
3155
+ type?: OpenApiPropertyType;
3156
+ format?: string;
3157
+ properties?: OpenApiProperty;
3158
+ items?: OpenApiProperty[];
3159
+ description?: string;
3160
+ // TODO: is this actually there?
3161
+ required?: string[];
3162
+ enum?: string[];
3163
+ };
3164
+
3165
+ export type ModelFields = {
3166
+ type: "object" | "array";
3167
+ required: string[];
3168
+ properties: {[name: string]: OpenApiProperty};
3169
+ };
3170
+
3171
+ export interface OpenAPISpec {
3172
+ paths: {
3173
+ [key: string]: any;
3174
+ };
3175
+ }
3176
+
3177
+ export type ModelFieldConfig = any;
3178
+
3179
+ export interface OpenAPIProviderProps {
3180
+ children: React.ReactElement;
3181
+ specUrl?: string;
3182
+ }
3183
+
3184
+ export interface OpenAPIContextType {
3185
+ spec: OpenAPISpec | null;
3186
+ getModelFields: (modelName: string) => ModelFields | null;
3187
+ getModelField: (modelName: string, field: string) => OpenApiProperty | null;
3188
+ }
3189
+
3190
+ // The config for a single column in the table display of a model.
3191
+ export interface ModelAdminFieldConfig {
3192
+ fieldKey: string; // Dot notation representation of the field.
3193
+ title: string;
3194
+ description?: string;
3195
+ type: OpenApiPropertyType;
3196
+ width?: number;
3197
+ minWidth?: number;
3198
+ options?: string[];
3199
+ sort?: string;
3200
+ CustomComponent?: (props: ModelAdminCustomComponentProps) => React.ReactElement | null;
3201
+ }
3202
+
3203
+ // The props for a custom column component for ModelAdmin.
3204
+ export interface ModelAdminCustomComponentProps extends Omit<FieldProps, "name"> {
3205
+ doc: any; // The rest of the document.
3206
+ fieldKey: string; // Dot notation representation of the field.
3207
+ // user: User;
3208
+ editing: boolean; // Allow for inline editing of the field.
3209
+ }
@@ -2,10 +2,17 @@ import React from "react";
2
2
  import {Host} from "react-native-portalize";
3
3
  import {ToastProvider} from "react-native-toast-notifications";
4
4
 
5
+ import {OpenAPIProvider} from "./OpenAPIContext";
5
6
  import {ThemeProvider} from "./Theme";
6
7
  import {Toast} from "./Toast";
7
8
 
8
- export const FernsProvider = ({children}: {children: React.ReactNode}): React.ReactElement => {
9
+ export const FernsProvider = ({
10
+ children,
11
+ openAPISpecUrl,
12
+ }: {
13
+ children: React.ReactNode;
14
+ openAPISpecUrl?: string;
15
+ }): React.ReactElement => {
9
16
  return (
10
17
  <ThemeProvider>
11
18
  <ToastProvider
@@ -17,7 +24,9 @@ export const FernsProvider = ({children}: {children: React.ReactNode}): React.Re
17
24
  renderToast={(toastOptions) => <Toast {...(toastOptions as any)} />}
18
25
  swipeEnabled
19
26
  >
20
- <Host>{children}</Host>
27
+ <OpenAPIProvider specUrl={openAPISpecUrl}>
28
+ <Host>{children}</Host>
29
+ </OpenAPIProvider>
21
30
  </ToastProvider>
22
31
  </ThemeProvider>
23
32
  );
@@ -1,42 +1,16 @@
1
1
  import camelCase from "lodash/camelCase";
2
2
  import React, {createContext, useContext, useEffect, useState} from "react";
3
3
 
4
- interface OpenAPISpec {
5
- paths: {
6
- [key: string]: any;
7
- };
8
- }
9
-
10
- export type ModelFieldConfig = any;
11
-
12
- export type OpenApiPropertyType = "string" | "number" | "boolean" | "array" | "object";
13
- export type OpenApiProperty = {
14
- type?: OpenApiPropertyType;
15
- format?: string;
16
- properties?: OpenApiProperty;
17
- items?: OpenApiProperty[];
18
- description?: string;
19
- };
20
-
21
- export type ModelFields = {
22
- type: "object" | "array";
23
- required: string[];
24
- properties: {[name: string]: OpenApiProperty};
25
- };
26
-
27
- interface OpenAPIContextType {
28
- spec: OpenAPISpec | null;
29
- getModelFields: (modelName: string) => ModelFields | null;
30
- getModelField: (modelName: string, field: string) => OpenApiProperty;
31
- }
4
+ import {
5
+ ModelFieldConfig,
6
+ ModelFields,
7
+ OpenAPIContextType,
8
+ OpenAPIProviderProps,
9
+ OpenAPISpec,
10
+ } from "./Common";
32
11
 
33
12
  const OpenAPIContext = createContext<OpenAPIContextType | null>(null);
34
13
 
35
- interface OpenAPIProviderProps {
36
- children: React.ReactElement;
37
- specUrl?: string;
38
- }
39
-
40
14
  export const OpenAPIProvider = ({children, specUrl}: OpenAPIProviderProps): React.ReactElement => {
41
15
  const [spec, setSpec] = useState<OpenAPISpec | null>(null);
42
16
 
@@ -50,10 +24,8 @@ export const OpenAPIProvider = ({children, specUrl}: OpenAPIProviderProps): Reac
50
24
  return null;
51
25
  }
52
26
 
53
- const items =
54
- rootConfig?.get?.responses?.["200"]?.content?.["application/json"]?.schema?.properties?.data
55
- ?.items;
56
- return items;
27
+ return rootConfig?.get?.responses?.["200"]?.content?.["application/json"]?.schema?.properties
28
+ ?.data?.items;
57
29
  };
58
30
 
59
31
  const getModelField = (modelName: string, fieldName: string): ModelFieldConfig => {
@@ -0,0 +1,43 @@
1
+ import React, {ReactElement} from "react";
2
+
3
+ import {Box} from "./Box";
4
+ import {Button} from "./Button";
5
+ import {Text} from "./Text";
6
+
7
+ interface PaginationControlProps {
8
+ shouldDisableBackButton: boolean;
9
+ shouldDisableNextButton: boolean;
10
+ page: number;
11
+ setPage: (page: number) => void;
12
+ }
13
+
14
+ export const PaginationControl = ({
15
+ shouldDisableBackButton,
16
+ shouldDisableNextButton,
17
+ page,
18
+ setPage,
19
+ }: PaginationControlProps): ReactElement => {
20
+ return (
21
+ <Box direction="row" paddingY={2}>
22
+ <Box>
23
+ <Button
24
+ color="blue"
25
+ disabled={shouldDisableBackButton}
26
+ text="Prev Page"
27
+ onClick={(): void => setPage(Number(page) - 1)}
28
+ />
29
+ </Box>
30
+ <Box justifyContent="center" paddingX={4}>
31
+ <Text>Page: {page}</Text>
32
+ </Box>
33
+ <Box>
34
+ <Button
35
+ color="blue"
36
+ disabled={shouldDisableNextButton}
37
+ text="Next Page"
38
+ onClick={(): void => setPage(Number(page) + 1)}
39
+ />
40
+ </Box>
41
+ </Box>
42
+ );
43
+ };
@@ -1,17 +1,23 @@
1
1
  import React from "react";
2
2
 
3
3
  import {Box} from "./Box";
4
- import {SegmentedControlProps} from "./Common";
4
+ import {
5
+ SegmentedControlProps,
6
+ SegmentedControlPropsMultiSelect,
7
+ SegmentedControlPropsSingleSelect,
8
+ } from "./Common";
5
9
  import {Text} from "./Text";
6
10
 
7
11
  export const SegmentedControl = ({
8
12
  items,
9
13
  onChange = () => {},
10
- selectedItemIndexes = undefined,
11
- selectedItemIndex = undefined,
12
14
  multiselect = false,
13
15
  selectLimit = 1,
16
+ ...props
14
17
  }: SegmentedControlProps) => {
18
+ const selectedItemIndex = (props as SegmentedControlPropsSingleSelect).selectedItemIndex;
19
+ const selectedItemIndexes = (props as SegmentedControlPropsMultiSelect).selectedItemIndexes;
20
+
15
21
  const renderItem = (item: string | React.ReactNode) => {
16
22
  return (
17
23
  <Text align="center" weight="bold">
@@ -81,15 +87,19 @@ export const SegmentedControl = ({
81
87
  return;
82
88
  }
83
89
  if (multiselect) {
90
+ const typedOnChange =
91
+ onChange as unknown as SegmentedControlPropsMultiSelect["onChange"];
84
92
  if (selectedItemIndexes?.includes(index)) {
85
- onChange({activeIndex: selectedItemIndexes.filter((i) => i !== index)});
93
+ typedOnChange({activeIndex: selectedItemIndexes.filter((i) => i !== index)});
86
94
  } else {
87
95
  const currentIndexes = [...(selectedItemIndexes as number[])];
88
96
  currentIndexes?.push(index);
89
- onChange({activeIndex: currentIndexes?.sort() as number[]});
97
+ typedOnChange({activeIndex: currentIndexes?.sort() as number[]});
90
98
  }
91
99
  } else {
92
- onChange({activeIndex: index});
100
+ const typedOnChange =
101
+ onChange as unknown as SegmentedControlPropsSingleSelect["onChange"];
102
+ typedOnChange({activeIndex: index});
93
103
  }
94
104
  }}
95
105
  >
package/src/Table.tsx CHANGED
@@ -1,9 +1,11 @@
1
1
  import React, {Children, ReactElement} from "react";
2
+ import {ScrollView} from "react-native";
2
3
  import {DimensionValue} from "react-native/Libraries/StyleSheet/StyleSheetTypes";
3
4
 
4
- import {TableProps} from "./Common";
5
- import {ScrollView} from "./ScrollView";
6
- import {ColumnSortInterface, TableContextProvider} from "./tableContext";
5
+ import {Box} from "./Box";
6
+ import {ColumnSortInterface, TableProps} from "./Common";
7
+ import {PaginationControl} from "./Pagination";
8
+ import {TableContextProvider} from "./tableContext";
7
9
 
8
10
  export const Table = ({
9
11
  children,
@@ -12,10 +14,18 @@ export const Table = ({
12
14
  alternateRowBackground = true,
13
15
  maxHeight,
14
16
  stickyHeader = true,
17
+ sort,
18
+ page: propsPage,
19
+ setPage: propsSetPage,
20
+ more,
21
+ extraControls,
15
22
  }: TableProps): React.ReactElement => {
16
23
  const arrayChildren = Children.toArray(children);
17
- const [sortColumn, setSortColumn] = React.useState<ColumnSortInterface | undefined>(undefined);
18
24
 
25
+ // Check if any of the rows below have a drawerContents prop to see if we need to render space
26
+ // for the caret.
27
+ const [sortColumn, setSortColumn] = React.useState<ColumnSortInterface | undefined>(sort);
28
+ const [page, setPage] = React.useState<number>(propsPage ?? 1);
19
29
  // Check if any of the rows below have a drawerContents prop to see if we need to render space
20
30
  // for the caret.
21
31
  const hasDrawerContents = arrayChildren.some((child) => {
@@ -36,28 +46,49 @@ export const Table = ({
36
46
  width = "100%";
37
47
  }
38
48
 
49
+ const shouldPaginate = more || page > 1;
50
+
39
51
  return (
40
52
  <TableContextProvider
41
53
  alternateRowBackground={alternateRowBackground}
42
54
  borderStyle={borderStyle}
43
55
  columns={columns}
44
56
  hasDrawerContents={hasDrawerContents}
57
+ page={page}
45
58
  setSortColumn={setSortColumn}
46
59
  sortColumn={sortColumn}
47
60
  stickyHeader={stickyHeader}
48
61
  >
49
- <ScrollView horizontal style={{width, maxWidth: "100%"}}>
50
- <ScrollView
51
- stickyHeaderIndices={stickyHeader ? [0] : undefined}
52
- style={{width, maxWidth: "100%", flex: 1, maxHeight}}
53
- >
54
- {Children.map(children, (child, index) =>
55
- React.cloneElement(child as any, {
56
- color: index % 2 === 1 && alternateRowBackground ? "lightGray" : "white",
57
- })
58
- )}
59
- </ScrollView>
60
- </ScrollView>
62
+ <>
63
+ <Box flex="grow" maxWidth="100%" width={width}>
64
+ <ScrollView horizontal style={{width, maxWidth: "100%"}}>
65
+ <ScrollView
66
+ stickyHeaderIndices={stickyHeader ? [0] : undefined}
67
+ style={{width, maxWidth: "100%", flex: 1, maxHeight}}
68
+ >
69
+ {Children.map(
70
+ children,
71
+ (child, index) =>
72
+ Boolean(child) &&
73
+ React.cloneElement(child as any, {
74
+ color: index % 2 === 1 && alternateRowBackground ? "lightGray" : "white",
75
+ })
76
+ )}
77
+ </ScrollView>
78
+ </ScrollView>
79
+ </Box>
80
+ {Boolean(shouldPaginate) && (
81
+ <Box alignItems="center" borderTop="gray" direction="row" height={60} paddingX={8}>
82
+ <PaginationControl
83
+ page={propsPage ?? page}
84
+ setPage={propsSetPage ?? setPage}
85
+ shouldDisableBackButton={(propsPage ?? page) <= 1}
86
+ shouldDisableNextButton={!more}
87
+ />
88
+ {Boolean(extraControls) && extraControls}
89
+ </Box>
90
+ )}
91
+ </>
61
92
  </TableContextProvider>
62
93
  );
63
94
  };
package/src/TapToEdit.tsx CHANGED
@@ -66,6 +66,7 @@ export const TapToEdit = ({
66
66
  // openApiModel,
67
67
  // openApiField,
68
68
  showDescriptionAsTooltip = false,
69
+ onlyShowDescriptionWhileEditing = true,
69
70
  ...fieldProps
70
71
  }: TapToEditProps): ReactElement => {
71
72
  const [editing, setEditing] = useState(false);
@@ -189,7 +190,13 @@ export const TapToEdit = ({
189
190
  return (
190
191
  <Box flex="grow">
191
192
  <Text weight="bold">{title}:</Text>
192
- {Boolean(description && !showDescriptionAsTooltip) && <Text>{description}</Text>}
193
+ {Boolean(
194
+ description && !showDescriptionAsTooltip && !onlyShowDescriptionWhileEditing
195
+ ) && (
196
+ <Text color="gray" size="sm">
197
+ {description}
198
+ </Text>
199
+ )}
193
200
  </Box>
194
201
  );
195
202
  };
package/src/index.tsx CHANGED
@@ -48,6 +48,7 @@ export * from "./Spinner";
48
48
  export * from "./SplitPage";
49
49
  export * from "./Switch";
50
50
  export * from "./Table";
51
+ export * from "./tableContext";
51
52
  export * from "./TableHeader";
52
53
  export * from "./TableHeaderCell";
53
54
  export * from "./TableRow";
@@ -1,23 +1,6 @@
1
1
  import React, {Context, createContext, useContext} from "react";
2
2
 
3
- export interface ColumnSortInterface {
4
- column: number | undefined;
5
- direction: "asc" | "desc" | undefined;
6
- }
7
-
8
- interface TableContextType {
9
- columns: Array<number | string>;
10
- hasDrawerContents: boolean;
11
- sortColumn?: ColumnSortInterface | undefined;
12
- setSortColumn?: (sort: ColumnSortInterface | undefined) => void;
13
- stickyHeader?: boolean;
14
- borderStyle?: "sm" | "none";
15
- alternateRowBackground?: boolean;
16
- }
17
-
18
- interface Props extends TableContextType {
19
- children: React.ReactElement;
20
- }
3
+ import {TableContextProviderProps, TableContextType} from "./Common";
21
4
 
22
5
  const TableContext: Context<TableContextType> = createContext<TableContextType>({
23
6
  columns: [],
@@ -27,6 +10,7 @@ const TableContext: Context<TableContextType> = createContext<TableContextType>(
27
10
  stickyHeader: true,
28
11
  borderStyle: "sm",
29
12
  alternateRowBackground: true,
13
+ page: 1,
30
14
  });
31
15
 
32
16
  export const {Provider} = TableContext;
@@ -40,7 +24,8 @@ export const TableContextProvider = ({
40
24
  stickyHeader,
41
25
  borderStyle,
42
26
  alternateRowBackground,
43
- }: Props): React.ReactElement<typeof Provider> => {
27
+ page,
28
+ }: TableContextProviderProps): React.ReactElement<typeof Provider> => {
44
29
  return (
45
30
  <Provider
46
31
  value={{
@@ -51,6 +36,7 @@ export const TableContextProvider = ({
51
36
  sortColumn,
52
37
  setSortColumn,
53
38
  stickyHeader,
39
+ page,
54
40
  }}
55
41
  >
56
42
  {children}