@bluemarble/bm-components 1.16.0 → 1.16.2

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.d.mts CHANGED
@@ -4,6 +4,7 @@ import * as _mui_material from '@mui/material';
4
4
  import { TableCellProps, TableCell, TextFieldProps, StandardTextFieldProps, SelectProps as SelectProps$1, FormControlProps, InputLabelProps, AutocompleteRenderInputParams, AutocompleteProps as AutocompleteProps$1, CheckboxProps as CheckboxProps$1, FormControlLabelProps, SwitchProps as SwitchProps$1, RadioGroupProps, ButtonProps, CircularProgressProps, Theme, SxProps, TableSortLabelProps, BoxProps, PaperProps, TableProps, TableHeadProps, TableBodyProps, ModalProps as ModalProps$1, DialogProps, AlertColor } from '@mui/material';
5
5
  import * as _mui_material_OverridableComponent from '@mui/material/OverridableComponent';
6
6
  import IMask$1 from 'imask';
7
+ import { IconType } from 'react-icons';
7
8
  import { NextApiRequest, NextApiResponse, GetServerSidePropsContext } from 'next';
8
9
  import { ZodTypeDef, ZodSchema } from 'zod';
9
10
  import { AxiosInstance } from 'axios';
@@ -329,6 +330,30 @@ interface DialogCustomProps extends DialogProps {
329
330
  }
330
331
  declare const Dialog: ({ open, title, loading, body, options, ...rest }: DialogCustomProps) => React__default.JSX.Element;
331
332
 
333
+ interface IDialogChildrenProps {
334
+ onConfirm: (fn: (...params: any[]) => Promise<void>) => (...params: any[]) => Promise<void>;
335
+ onCancel: () => void;
336
+ }
337
+ interface IDialogConfirmProps {
338
+ icon?: IconType;
339
+ title?: string;
340
+ body?: string;
341
+ children: (props: IDialogChildrenProps) => ReactNode;
342
+ confirmButtonText?: string;
343
+ cancelButtonText?: string;
344
+ }
345
+ type TUseDialogConfirm = ReturnType<typeof UseDialogConfirm>;
346
+ declare function UseDialogConfirm(): {
347
+ isLoading: boolean;
348
+ opened: boolean;
349
+ onConfirm: (fn: (...params: any) => Promise<any>) => (...params: any[]) => Promise<void>;
350
+ onCloseModal: () => void;
351
+ onCancel: (event?: any) => void;
352
+ onProceed: (event: any) => Promise<void>;
353
+ };
354
+
355
+ declare const DialogConfirm: (props: IDialogConfirmProps) => React__default.JSX.Element;
356
+
332
357
  declare class HttpError extends Error {
333
358
  status: number;
334
359
  constructor(status: number, message: any);
@@ -551,4 +576,4 @@ declare function CreateAuthProvider<T>({ api, children, sessionTokenName, Provid
551
576
  sessionTokenName: string;
552
577
  }): React__default.JSX.Element;
553
578
 
554
- export { AlertContext, AlertProvider, ApiHelper, type AuthContextProps, AuthHelper, Autocomplete, BaseGrid, BaseGridAutoRows, Checkbox, type ColumnTitleProps, type ColumnsProps, CreateAuthProvider, Dialog, DomainError, EditableTableCell, type FilterCompareType, type FilterProps, FormHelperContext, FormHelperProvider, GetInputLabel, Grid, HttpError, type IFilter, Input, InputMask, LargeButton, Modal, Radio, Select, type SortedByProps$1 as SortedByProps, Switch, TabPanel, type TabPanelProps, Td, Tr, createAuthContext, createFilter, filterData, getTabProps, useAlert, useAsyncGrid, useEvent, useFilter, useFormHelper, useGrid, useLoading };
579
+ export { AlertContext, AlertProvider, ApiHelper, type AuthContextProps, AuthHelper, Autocomplete, BaseGrid, BaseGridAutoRows, Checkbox, type ColumnTitleProps, type ColumnsProps, CreateAuthProvider, Dialog, DialogConfirm, DomainError, EditableTableCell, type FilterCompareType, type FilterProps, FormHelperContext, FormHelperProvider, GetInputLabel, Grid, HttpError, type IDialogConfirmProps, type IFilter, Input, InputMask, LargeButton, Modal, Radio, Select, type SortedByProps$1 as SortedByProps, Switch, type TUseDialogConfirm, TabPanel, type TabPanelProps, Td, Tr, UseDialogConfirm, createAuthContext, createFilter, filterData, getTabProps, useAlert, useAsyncGrid, useEvent, useFilter, useFormHelper, useGrid, useLoading };
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@ import * as _mui_material from '@mui/material';
4
4
  import { TableCellProps, TableCell, TextFieldProps, StandardTextFieldProps, SelectProps as SelectProps$1, FormControlProps, InputLabelProps, AutocompleteRenderInputParams, AutocompleteProps as AutocompleteProps$1, CheckboxProps as CheckboxProps$1, FormControlLabelProps, SwitchProps as SwitchProps$1, RadioGroupProps, ButtonProps, CircularProgressProps, Theme, SxProps, TableSortLabelProps, BoxProps, PaperProps, TableProps, TableHeadProps, TableBodyProps, ModalProps as ModalProps$1, DialogProps, AlertColor } from '@mui/material';
5
5
  import * as _mui_material_OverridableComponent from '@mui/material/OverridableComponent';
6
6
  import IMask$1 from 'imask';
7
+ import { IconType } from 'react-icons';
7
8
  import { NextApiRequest, NextApiResponse, GetServerSidePropsContext } from 'next';
8
9
  import { ZodTypeDef, ZodSchema } from 'zod';
9
10
  import { AxiosInstance } from 'axios';
@@ -329,6 +330,30 @@ interface DialogCustomProps extends DialogProps {
329
330
  }
330
331
  declare const Dialog: ({ open, title, loading, body, options, ...rest }: DialogCustomProps) => React__default.JSX.Element;
331
332
 
333
+ interface IDialogChildrenProps {
334
+ onConfirm: (fn: (...params: any[]) => Promise<void>) => (...params: any[]) => Promise<void>;
335
+ onCancel: () => void;
336
+ }
337
+ interface IDialogConfirmProps {
338
+ icon?: IconType;
339
+ title?: string;
340
+ body?: string;
341
+ children: (props: IDialogChildrenProps) => ReactNode;
342
+ confirmButtonText?: string;
343
+ cancelButtonText?: string;
344
+ }
345
+ type TUseDialogConfirm = ReturnType<typeof UseDialogConfirm>;
346
+ declare function UseDialogConfirm(): {
347
+ isLoading: boolean;
348
+ opened: boolean;
349
+ onConfirm: (fn: (...params: any) => Promise<any>) => (...params: any[]) => Promise<void>;
350
+ onCloseModal: () => void;
351
+ onCancel: (event?: any) => void;
352
+ onProceed: (event: any) => Promise<void>;
353
+ };
354
+
355
+ declare const DialogConfirm: (props: IDialogConfirmProps) => React__default.JSX.Element;
356
+
332
357
  declare class HttpError extends Error {
333
358
  status: number;
334
359
  constructor(status: number, message: any);
@@ -551,4 +576,4 @@ declare function CreateAuthProvider<T>({ api, children, sessionTokenName, Provid
551
576
  sessionTokenName: string;
552
577
  }): React__default.JSX.Element;
553
578
 
554
- export { AlertContext, AlertProvider, ApiHelper, type AuthContextProps, AuthHelper, Autocomplete, BaseGrid, BaseGridAutoRows, Checkbox, type ColumnTitleProps, type ColumnsProps, CreateAuthProvider, Dialog, DomainError, EditableTableCell, type FilterCompareType, type FilterProps, FormHelperContext, FormHelperProvider, GetInputLabel, Grid, HttpError, type IFilter, Input, InputMask, LargeButton, Modal, Radio, Select, type SortedByProps$1 as SortedByProps, Switch, TabPanel, type TabPanelProps, Td, Tr, createAuthContext, createFilter, filterData, getTabProps, useAlert, useAsyncGrid, useEvent, useFilter, useFormHelper, useGrid, useLoading };
579
+ export { AlertContext, AlertProvider, ApiHelper, type AuthContextProps, AuthHelper, Autocomplete, BaseGrid, BaseGridAutoRows, Checkbox, type ColumnTitleProps, type ColumnsProps, CreateAuthProvider, Dialog, DialogConfirm, DomainError, EditableTableCell, type FilterCompareType, type FilterProps, FormHelperContext, FormHelperProvider, GetInputLabel, Grid, HttpError, type IDialogConfirmProps, type IFilter, Input, InputMask, LargeButton, Modal, Radio, Select, type SortedByProps$1 as SortedByProps, Switch, type TUseDialogConfirm, TabPanel, type TabPanelProps, Td, Tr, UseDialogConfirm, createAuthContext, createFilter, filterData, getTabProps, useAlert, useAsyncGrid, useEvent, useFilter, useFormHelper, useGrid, useLoading };
package/dist/index.js CHANGED
@@ -258,7 +258,7 @@ var require_react_is_development = __commonJS({
258
258
  var Fragment3 = REACT_FRAGMENT_TYPE;
259
259
  var Lazy = REACT_LAZY_TYPE;
260
260
  var Memo = REACT_MEMO_TYPE;
261
- var Portal = REACT_PORTAL_TYPE;
261
+ var Portal2 = REACT_PORTAL_TYPE;
262
262
  var Profiler = REACT_PROFILER_TYPE;
263
263
  var StrictMode = REACT_STRICT_MODE_TYPE;
264
264
  var Suspense = REACT_SUSPENSE_TYPE;
@@ -317,7 +317,7 @@ var require_react_is_development = __commonJS({
317
317
  exports.Fragment = Fragment3;
318
318
  exports.Lazy = Lazy;
319
319
  exports.Memo = Memo;
320
- exports.Portal = Portal;
320
+ exports.Portal = Portal2;
321
321
  exports.Profiler = Profiler;
322
322
  exports.StrictMode = StrictMode;
323
323
  exports.Suspense = Suspense;
@@ -2404,7 +2404,7 @@ function createBox(options = {}) {
2404
2404
  const BoxRoot = styled("div", {
2405
2405
  shouldForwardProp: (prop) => prop !== "theme" && prop !== "sx" && prop !== "as"
2406
2406
  })(styleFunctionSx_default);
2407
- const Box7 = /* @__PURE__ */ React3.forwardRef(function Box8(inProps, ref) {
2407
+ const Box8 = /* @__PURE__ */ React3.forwardRef(function Box9(inProps, ref) {
2408
2408
  const theme = useTheme_default(defaultTheme);
2409
2409
  const _extendSxProp = extendSxProp(inProps), {
2410
2410
  className,
@@ -2417,7 +2417,7 @@ function createBox(options = {}) {
2417
2417
  theme: themeId ? theme[themeId] || theme : theme
2418
2418
  }, other));
2419
2419
  });
2420
- return Box7;
2420
+ return Box8;
2421
2421
  }
2422
2422
 
2423
2423
  // node_modules/@mui/utils/generateUtilityClass/generateUtilityClass.js
@@ -3202,7 +3202,7 @@ var BaseInputMask = (_a) => {
3202
3202
  const { ref, value, setValue, maskRef, unmaskedValue } = _reactimask.useIMask.call(void 0,
3203
3203
  mask,
3204
3204
  {
3205
- onComplete: (...params) => {
3205
+ onAccept: (...params) => {
3206
3206
  if (onChangeValue)
3207
3207
  onChangeValue(params[0], unmaskedValue);
3208
3208
  }
@@ -4062,6 +4062,101 @@ var Dialog = (_a) => {
4062
4062
  }))));
4063
4063
  };
4064
4064
 
4065
+ // src/components/DialogConfirm/DialogConfirm.view.tsx
4066
+
4067
+
4068
+ var _colors = require('@mui/material/colors');
4069
+
4070
+
4071
+ // src/components/DialogConfirm/DialogConfirm.model.ts
4072
+
4073
+ function UseDialogConfirm() {
4074
+ const [opened, setOpened] = _react.useState.call(void 0, false);
4075
+ const [isLoading, setLoading] = _react.useState.call(void 0, false);
4076
+ const onConfirmFn = _react.useRef.call(void 0, );
4077
+ const paramsFn = _react.useRef.call(void 0, []);
4078
+ const onConfirm = (fn) => {
4079
+ onConfirmFn.current = fn;
4080
+ return (...params) => __async(this, null, function* () {
4081
+ paramsFn.current = params;
4082
+ setOpened(true);
4083
+ });
4084
+ };
4085
+ const onProceed = (event) => __async(this, null, function* () {
4086
+ event == null ? void 0 : event.preventDefault();
4087
+ event == null ? void 0 : event.stopPropagation();
4088
+ setLoading(true);
4089
+ try {
4090
+ if (!onConfirmFn.current)
4091
+ return;
4092
+ yield onConfirmFn.current(...paramsFn.current);
4093
+ } finally {
4094
+ setOpened(false);
4095
+ setLoading(false);
4096
+ }
4097
+ });
4098
+ const onCancel = (event) => {
4099
+ event == null ? void 0 : event.preventDefault();
4100
+ event == null ? void 0 : event.stopPropagation();
4101
+ setOpened(false);
4102
+ };
4103
+ const onCloseModal = () => {
4104
+ if (isLoading)
4105
+ return;
4106
+ setOpened(false);
4107
+ };
4108
+ return {
4109
+ isLoading,
4110
+ opened,
4111
+ onConfirm,
4112
+ onCloseModal,
4113
+ onCancel,
4114
+ onProceed
4115
+ };
4116
+ }
4117
+
4118
+ // src/components/DialogConfirm/DialogConfirm.view.tsx
4119
+ var DEFAULT_ICON = _md.MdOutlineWarningAmber;
4120
+ var DialogConfirm = (props) => {
4121
+ const model = UseDialogConfirm();
4122
+ const Icon = props.icon || DEFAULT_ICON;
4123
+ return /* @__PURE__ */ React2.default.createElement(React2.default.Fragment, null, props.children({
4124
+ onConfirm: model.onConfirm,
4125
+ onCancel: model.onCancel
4126
+ }), /* @__PURE__ */ React2.default.createElement(_material.Portal, null, /* @__PURE__ */ React2.default.createElement(Modal, { open: model.opened, onClose: model.onCloseModal }, /* @__PURE__ */ React2.default.createElement(_material.Box, { sx: { p: 2, maxWidth: 400, textAlign: "center" } }, /* @__PURE__ */ React2.default.createElement(
4127
+ _material.Stack,
4128
+ {
4129
+ mx: "auto",
4130
+ color: _colors.orange[800],
4131
+ bgcolor: _colors.orange[50],
4132
+ borderRadius: "50%",
4133
+ height: 8 * 5,
4134
+ width: 8 * 5,
4135
+ direction: "row",
4136
+ justifyContent: "center",
4137
+ alignItems: "center"
4138
+ },
4139
+ /* @__PURE__ */ React2.default.createElement(Icon, { size: 8 * 3 })
4140
+ ), /* @__PURE__ */ React2.default.createElement(_material.Typography, { fontWeight: "bold", variant: "h6", mt: 1 }, props.title || "Aten\xE7\xE3o"), /* @__PURE__ */ React2.default.createElement(_material.Typography, { my: 1 }, props.body || "Tem certeza que deseja realizar essa a\xE7\xE3o?"), /* @__PURE__ */ React2.default.createElement(_material.Stack, { gap: 1, mt: 3, color: _colors.grey[600] }, /* @__PURE__ */ React2.default.createElement(
4141
+ LargeButton,
4142
+ {
4143
+ color: "warning",
4144
+ loading: model.isLoading,
4145
+ onClick: model.onProceed
4146
+ },
4147
+ props.confirmButtonText || "Confirmar"
4148
+ ), /* @__PURE__ */ React2.default.createElement(
4149
+ LargeButton,
4150
+ {
4151
+ variant: "outlined",
4152
+ disabled: model.isLoading,
4153
+ onClick: model.onCancel,
4154
+ color: "inherit"
4155
+ },
4156
+ props.cancelButtonText || "Confirmar"
4157
+ ))))));
4158
+ };
4159
+
4065
4160
  // src/errors/HttpError.ts
4066
4161
  var HttpError = class extends Error {
4067
4162
  constructor(status, message) {
@@ -4876,8 +4971,15 @@ function useGrid({
4876
4971
  },
4877
4972
  [currentPage]
4878
4973
  );
4974
+ const orderedData = _react.useMemo.call(void 0, () => {
4975
+ if (sortedBy.length === 0)
4976
+ return defaultData;
4977
+ const newData = defaultData.slice(0);
4978
+ const sortedData = sortData(newData);
4979
+ return sortedData;
4980
+ }, [defaultData, sortData, sortedBy]);
4879
4981
  const filteredData = _react.useMemo.call(void 0, () => {
4880
- let newData = defaultData.slice(0);
4982
+ let newData = orderedData.slice(0);
4881
4983
  if (search && search.value !== "") {
4882
4984
  const searchBy = createSearch(search);
4883
4985
  newData = newData.filter(searchBy);
@@ -4886,16 +4988,12 @@ function useGrid({
4886
4988
  return newData;
4887
4989
  const newFilter = createFilter(filters);
4888
4990
  return newData.filter(newFilter.apply);
4889
- }, [defaultData, search, filters]);
4890
- const orderedData = _react.useMemo.call(void 0, () => {
4891
- const sortedData = sortData(filteredData);
4892
- return sortedData;
4893
- }, [filteredData, sortData]);
4991
+ }, [orderedData, search, filters]);
4894
4992
  const paginatedData = _react.useMemo.call(void 0, () => {
4895
4993
  const startPage = currentPage * rowsPerPage;
4896
4994
  const endPage = startPage + rowsPerPage;
4897
- return orderedData.slice(startPage, endPage);
4898
- }, [currentPage, rowsPerPage, orderedData]);
4995
+ return filteredData.slice(startPage, endPage);
4996
+ }, [currentPage, rowsPerPage, filteredData]);
4899
4997
  const totalNumberOfPages = Math.ceil(filteredData.length / rowsPerPage) - 1;
4900
4998
  _react.useEffect.call(void 0, () => {
4901
4999
  if (externalDefaultData)
@@ -5254,7 +5352,9 @@ function CreateAuthProvider({
5254
5352
 
5255
5353
 
5256
5354
 
5257
- exports.AlertContext = AlertContext; exports.AlertProvider = AlertProvider; exports.ApiHelper = ApiHelper; exports.AuthHelper = AuthHelper; exports.Autocomplete = Autocomplete2; exports.BaseGrid = BaseGrid; exports.BaseGridAutoRows = BaseGridAutoRows; exports.Checkbox = Checkbox; exports.CreateAuthProvider = CreateAuthProvider; exports.Dialog = Dialog; exports.DomainError = DomainError; exports.EditableTableCell = EditableTableCell; exports.FormHelperContext = FormHelperContext; exports.FormHelperProvider = FormHelperProvider; exports.GetInputLabel = GetInputLabel; exports.Grid = Grid_default; exports.HttpError = HttpError; exports.Input = Input; exports.InputMask = InputMask2; exports.LargeButton = LargeButton; exports.Modal = Modal; exports.Radio = Radio; exports.Select = Select; exports.Switch = Switch; exports.TabPanel = TabPanel; exports.Td = Td; exports.Tr = Tr; exports.createAuthContext = createAuthContext; exports.createFilter = createFilter; exports.filterData = filterData; exports.getTabProps = getTabProps; exports.useAlert = useAlert; exports.useAsyncGrid = useAsyncGrid; exports.useEvent = useEvent; exports.useFilter = useFilter; exports.useFormHelper = useFormHelper; exports.useGrid = useGrid; exports.useLoading = useLoading;
5355
+
5356
+
5357
+ exports.AlertContext = AlertContext; exports.AlertProvider = AlertProvider; exports.ApiHelper = ApiHelper; exports.AuthHelper = AuthHelper; exports.Autocomplete = Autocomplete2; exports.BaseGrid = BaseGrid; exports.BaseGridAutoRows = BaseGridAutoRows; exports.Checkbox = Checkbox; exports.CreateAuthProvider = CreateAuthProvider; exports.Dialog = Dialog; exports.DialogConfirm = DialogConfirm; exports.DomainError = DomainError; exports.EditableTableCell = EditableTableCell; exports.FormHelperContext = FormHelperContext; exports.FormHelperProvider = FormHelperProvider; exports.GetInputLabel = GetInputLabel; exports.Grid = Grid_default; exports.HttpError = HttpError; exports.Input = Input; exports.InputMask = InputMask2; exports.LargeButton = LargeButton; exports.Modal = Modal; exports.Radio = Radio; exports.Select = Select; exports.Switch = Switch; exports.TabPanel = TabPanel; exports.Td = Td; exports.Tr = Tr; exports.UseDialogConfirm = UseDialogConfirm; exports.createAuthContext = createAuthContext; exports.createFilter = createFilter; exports.filterData = filterData; exports.getTabProps = getTabProps; exports.useAlert = useAlert; exports.useAsyncGrid = useAsyncGrid; exports.useEvent = useEvent; exports.useFilter = useFilter; exports.useFormHelper = useFormHelper; exports.useGrid = useGrid; exports.useLoading = useLoading;
5258
5358
  /*! Bundled license information:
5259
5359
 
5260
5360
  react-is/cjs/react-is.production.min.js: