@bluemarble/bm-components 2.1.2 → 2.2.0

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.cjs CHANGED
@@ -4305,7 +4305,7 @@ var DialogConfirm = (props) => {
4305
4305
  onClick: model.onCancel,
4306
4306
  color: "inherit"
4307
4307
  },
4308
- props.cancelButtonText || "Confirmar"
4308
+ props.cancelButtonText || "Cancelar"
4309
4309
  ))))));
4310
4310
  };
4311
4311
 
@@ -4753,17 +4753,126 @@ function useFormHelper() {
4753
4753
  }
4754
4754
 
4755
4755
  // src/helpers/authHelper.ts
4756
- var _cookie = require('cookie');
4757
- var _nookies = require('nookies');
4756
+ var _cookie = require('cookie'); var cookie = _interopRequireWildcard(_cookie);
4758
4757
  var _uuid = require('uuid');
4759
4758
  var _jsonwebtoken = require('jsonwebtoken'); var _jsonwebtoken2 = _interopRequireDefault(_jsonwebtoken);
4759
+
4760
+ // packages/nookies/index.ts
4761
+
4762
+ var _setcookieparser = require('set-cookie-parser'); var setCookieParser = _interopRequireWildcard(_setcookieparser);
4763
+
4764
+ // packages/nookies/util.ts
4765
+ function isBrowser() {
4766
+ return typeof window !== "undefined";
4767
+ }
4768
+ function createCookie(name, value, options) {
4769
+ let sameSite = options.sameSite;
4770
+ if (sameSite === true) {
4771
+ sameSite = "strict";
4772
+ }
4773
+ if (sameSite === void 0 || sameSite === false) {
4774
+ sameSite = "lax";
4775
+ }
4776
+ const cookieToSet = { ...options, sameSite };
4777
+ delete cookieToSet.encode;
4778
+ return {
4779
+ name,
4780
+ value,
4781
+ ...cookieToSet
4782
+ };
4783
+ }
4784
+ function hasSameProperties(a, b) {
4785
+ const aProps = Object.getOwnPropertyNames(a);
4786
+ const bProps = Object.getOwnPropertyNames(b);
4787
+ if (aProps.length !== bProps.length) {
4788
+ return false;
4789
+ }
4790
+ for (let i = 0; i < aProps.length; i++) {
4791
+ const propName = aProps[i];
4792
+ if (a[propName] !== b[propName]) {
4793
+ return false;
4794
+ }
4795
+ }
4796
+ return true;
4797
+ }
4798
+ function areCookiesEqual(a, b) {
4799
+ let sameSiteSame = a.sameSite === b.sameSite;
4800
+ if (typeof a.sameSite === "string" && typeof b.sameSite === "string") {
4801
+ sameSiteSame = a.sameSite.toLowerCase() === b.sameSite.toLowerCase();
4802
+ }
4803
+ return hasSameProperties(
4804
+ { ...a, sameSite: void 0 },
4805
+ { ...b, sameSite: void 0 }
4806
+ ) && sameSiteSame;
4807
+ }
4808
+
4809
+ // packages/nookies/index.ts
4810
+ function parseCookies(ctx, options) {
4811
+ if (_optionalChain([ctx, 'optionalAccess', _87 => _87.req, 'optionalAccess', _88 => _88.headers, 'optionalAccess', _89 => _89.cookie])) {
4812
+ return cookie.parse(ctx.req.headers.cookie, options);
4813
+ }
4814
+ if (isBrowser()) {
4815
+ return cookie.parse(document.cookie, options);
4816
+ }
4817
+ return {};
4818
+ }
4819
+ function setCookie(ctx, name, value, options = {}) {
4820
+ if (_optionalChain([ctx, 'optionalAccess', _90 => _90.res, 'optionalAccess', _91 => _91.getHeader]) && ctx.res.setHeader) {
4821
+ if (_optionalChain([ctx, 'optionalAccess', _92 => _92.res, 'optionalAccess', _93 => _93.finished])) {
4822
+ console.warn(`Not setting "${name}" cookie. Response has finished.`);
4823
+ console.warn(`You should set cookie before res.send()`);
4824
+ return {};
4825
+ }
4826
+ let cookies = ctx.res.getHeader("Set-Cookie") || [];
4827
+ if (typeof cookies === "string") cookies = [cookies];
4828
+ if (typeof cookies === "number") cookies = [];
4829
+ const parsedCookies = setCookieParser.parse(cookies, {
4830
+ decodeValues: false
4831
+ });
4832
+ const newCookie = createCookie(name, value, options);
4833
+ let cookiesToSet = [];
4834
+ parsedCookies.forEach((parsedCookie) => {
4835
+ if (!areCookiesEqual(parsedCookie, newCookie)) {
4836
+ const serializedCookie = cookie.serialize(
4837
+ parsedCookie.name,
4838
+ parsedCookie.value,
4839
+ {
4840
+ // we prevent reencoding by default, but you might override it
4841
+ encode: (val) => val,
4842
+ ...parsedCookie
4843
+ }
4844
+ );
4845
+ cookiesToSet.push(serializedCookie);
4846
+ }
4847
+ });
4848
+ cookiesToSet.push(cookie.serialize(name, value, options));
4849
+ ctx.res.setHeader("Set-Cookie", cookiesToSet);
4850
+ }
4851
+ if (isBrowser()) {
4852
+ if (options && options.httpOnly) {
4853
+ throw new Error("Can not set a httpOnly cookie in the browser.");
4854
+ }
4855
+ document.cookie = cookie.serialize(name, value, options);
4856
+ }
4857
+ return {};
4858
+ }
4859
+ function destroyCookie(ctx, name, options) {
4860
+ return setCookie(ctx, name, "", { ...options || {}, maxAge: -1 });
4861
+ }
4862
+ var nookies = {
4863
+ set: setCookie,
4864
+ get: parseCookies,
4865
+ destroy: destroyCookie
4866
+ };
4867
+
4868
+ // src/helpers/authHelper.ts
4760
4869
  function decodeSessionToken({
4761
4870
  req,
4762
4871
  res,
4763
4872
  sessionTokenName,
4764
4873
  validate
4765
4874
  }) {
4766
- const token = _optionalChain([req, 'access', _87 => _87.headers, 'access', _88 => _88.authorization, 'optionalAccess', _89 => _89.split, 'call', _90 => _90(" "), 'access', _91 => _91[1]]) || req.cookies[sessionTokenName];
4875
+ const token = _optionalChain([req, 'access', _94 => _94.headers, 'access', _95 => _95.authorization, 'optionalAccess', _96 => _96.split, 'call', _97 => _97(" "), 'access', _98 => _98[1]]) || req.cookies[sessionTokenName];
4767
4876
  if (!token) {
4768
4877
  res.status(401).json({ error: "Token inv\xE1lido", code: "token.invalid" });
4769
4878
  return true;
@@ -4836,14 +4945,14 @@ var AuthHelper = class {
4836
4945
  loginResult.userId,
4837
4946
  {}
4838
4947
  );
4839
- _nookies.setCookie.call(void 0, { res }, this.cookies.sessionToken, token, {
4948
+ setCookie({ res }, this.cookies.sessionToken, token, {
4840
4949
  secure: true,
4841
4950
  maxAge: 60 * 60 * 24 * 30,
4842
4951
  // 30 days
4843
4952
  path: "/",
4844
4953
  sameSite: true
4845
4954
  });
4846
- _nookies.setCookie.call(void 0, { res }, this.cookies.refreshToken, refreshToken, {
4955
+ setCookie({ res }, this.cookies.refreshToken, refreshToken, {
4847
4956
  secure: true,
4848
4957
  maxAge: 60 * 60 * 24 * 30,
4849
4958
  // 30 days
@@ -4867,7 +4976,7 @@ var AuthHelper = class {
4867
4976
  });
4868
4977
  if (error) return;
4869
4978
  const userId = String(req.user);
4870
- const refreshToken = _nookies.parseCookies.call(void 0, { req })[this.cookies.refreshToken];
4979
+ const refreshToken = parseCookies({ req })[this.cookies.refreshToken];
4871
4980
  if (!refreshToken) {
4872
4981
  this.invalidateCookies(res);
4873
4982
  return res.status(400).json({
@@ -4886,14 +4995,14 @@ var AuthHelper = class {
4886
4995
  }
4887
4996
  await this.onInvalidateRefreshToken(userId, refreshToken);
4888
4997
  const { token, refreshToken: newRefreshToken } = await this.generateJwtAndRefreshToken(userId, {});
4889
- _nookies.setCookie.call(void 0, { res }, this.cookies.sessionToken, token, {
4998
+ setCookie({ res }, this.cookies.sessionToken, token, {
4890
4999
  secure: true,
4891
5000
  maxAge: 60 * 60 * 24 * 30,
4892
5001
  // 30 days
4893
5002
  path: "/",
4894
5003
  sameSite: true
4895
5004
  });
4896
- _nookies.setCookie.call(void 0, { res }, this.cookies.refreshToken, newRefreshToken, {
5005
+ setCookie({ res }, this.cookies.refreshToken, newRefreshToken, {
4897
5006
  secure: true,
4898
5007
  maxAge: 60 * 60 * 24 * 30,
4899
5008
  // 30 days
@@ -4958,7 +5067,7 @@ var AuthHelper = class {
4958
5067
  const data = await response.json();
4959
5068
  const decodedToken = _jsonwebtoken2.default.decode(data.access_token);
4960
5069
  const email = decodedToken.upn;
4961
- const fullName = `${_optionalChain([decodedToken, 'optionalAccess', _92 => _92.given_name])} ${_optionalChain([decodedToken, 'optionalAccess', _93 => _93.family_name])}`;
5070
+ const fullName = `${_optionalChain([decodedToken, 'optionalAccess', _99 => _99.given_name])} ${_optionalChain([decodedToken, 'optionalAccess', _100 => _100.family_name])}`;
4962
5071
  return { decodedToken, email, fullName };
4963
5072
  }
4964
5073
  createOauthCallbackGetServerSideProps({
@@ -4987,13 +5096,13 @@ var AuthHelper = class {
4987
5096
  email,
4988
5097
  {}
4989
5098
  );
4990
- _nookies.setCookie.call(void 0, ctx, this.cookies.sessionToken, token, {
5099
+ setCookie(ctx, this.cookies.sessionToken, token, {
4991
5100
  secure: true,
4992
5101
  maxAge: 60 * 60 * 24 * 30,
4993
5102
  // 30 days
4994
5103
  path: "/"
4995
5104
  });
4996
- _nookies.setCookie.call(void 0, ctx, this.cookies.refreshToken, refreshToken, {
5105
+ setCookie(ctx, this.cookies.refreshToken, refreshToken, {
4997
5106
  secure: true,
4998
5107
  maxAge: 60 * 60 * 24 * 30,
4999
5108
  // 30 days
@@ -5042,7 +5151,7 @@ function useFilter(props = { defaultFilters: [] }) {
5042
5151
  return defaultFilters || [];
5043
5152
  });
5044
5153
  const filterBy = _react.useCallback.call(void 0, (newFilter) => {
5045
- const propToCompare = _optionalChain([newFilter, 'optionalAccess', _94 => _94.id]) ? "id" : "prop";
5154
+ const propToCompare = _optionalChain([newFilter, 'optionalAccess', _101 => _101.id]) ? "id" : "prop";
5046
5155
  function removeRepeatedFilters(filter) {
5047
5156
  return filter[propToCompare] !== newFilter[propToCompare];
5048
5157
  }
@@ -5114,8 +5223,26 @@ function createFilter(filters) {
5114
5223
  };
5115
5224
  }
5116
5225
 
5226
+ // src/helpers/sortHelper.ts
5227
+ function SortHelper(...fields) {
5228
+ return (a, b) => {
5229
+ for (const field of fields) {
5230
+ let direction = 1;
5231
+ let key = field;
5232
+ if (field.startsWith("-")) {
5233
+ direction = -1;
5234
+ key = field.slice(1);
5235
+ }
5236
+ const aVal = a[key];
5237
+ const bVal = b[key];
5238
+ if (aVal > bVal) return direction;
5239
+ if (aVal < bVal) return -direction;
5240
+ }
5241
+ return 0;
5242
+ };
5243
+ }
5244
+
5117
5245
  // src/hooks/useGrid.ts
5118
- var _sortby = require('sort-by'); var _sortby2 = _interopRequireDefault(_sortby);
5119
5246
  function useGrid({
5120
5247
  columns,
5121
5248
  filters,
@@ -5185,7 +5312,7 @@ function useGrid({
5185
5312
  const formattedKeys = sortedBy.map(
5186
5313
  ({ prop, direction }) => `${symbolDir[direction]}${prop}`
5187
5314
  );
5188
- return data.sort(_sortby2.default.call(void 0, ...formattedKeys));
5315
+ return data.sort(SortHelper(...formattedKeys));
5189
5316
  } else return data;
5190
5317
  },
5191
5318
  [sortedBy]
@@ -5377,7 +5504,7 @@ function useAsyncGrid({
5377
5504
  const params = new URLSearchParams({
5378
5505
  page: String(page),
5379
5506
  rowsPerPage: String(rowsPerPage2),
5380
- searchText: _optionalChain([search2, 'optionalAccess', _95 => _95.value]) || "",
5507
+ searchText: _optionalChain([search2, 'optionalAccess', _102 => _102.value]) || "",
5381
5508
  sort: sortedBy2.map(({ prop, direction }) => `${prop}:${direction}`).join(","),
5382
5509
  filters: filters2.map(
5383
5510
  (filter) => `${filter.prop}:${filter.compareType}:${filter.value}`
@@ -5486,7 +5613,6 @@ function useEvent(event, handler, passive = false) {
5486
5613
 
5487
5614
 
5488
5615
 
5489
-
5490
5616
  function createAuthContext() {
5491
5617
  return _react.createContext.call(void 0, {});
5492
5618
  }
@@ -5514,7 +5640,7 @@ function CreateAuthProvider({
5514
5640
  setStatus("autenticated");
5515
5641
  return true;
5516
5642
  } catch (error) {
5517
- createAlert(_optionalChain([error, 'optionalAccess', _96 => _96.response, 'optionalAccess', _97 => _97.data, 'optionalAccess', _98 => _98.error]), "error");
5643
+ createAlert(_optionalChain([error, 'optionalAccess', _103 => _103.response, 'optionalAccess', _104 => _104.data, 'optionalAccess', _105 => _105.error]), "error");
5518
5644
  setStatus("unauthenticated");
5519
5645
  throw error;
5520
5646
  }
@@ -5526,7 +5652,7 @@ function CreateAuthProvider({
5526
5652
  setUser(void 0);
5527
5653
  }, [api]);
5528
5654
  _react.useEffect.call(void 0, () => {
5529
- const token = _nookies.parseCookies.call(void 0, )[sessionTokenName];
5655
+ const token = parseCookies()[sessionTokenName];
5530
5656
  if (token) {
5531
5657
  setStatus("loading");
5532
5658
  api.get("/auth/me").then((response) => {
@@ -5598,7 +5724,11 @@ function CreateAuthProvider({
5598
5724
 
5599
5725
 
5600
5726
 
5601
- exports.AlertContext = AlertContext; exports.AlertProvider = AlertProvider; exports.ApiHelper = ApiHelper; exports.AuthHelper = AuthHelper; exports.Autocomplete = Autocomplete2; exports.BaseDialog = BaseDialog; exports.BaseDialogBody = BaseDialogBody; exports.BaseDialogContainer = BaseDialogContainer; exports.BaseDialogCreate = BaseDialogCreate; exports.BaseDialogTrigger = BaseDialogTrigger; 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.useBaseDialog = useBaseDialog; exports.useBaseDialogInstance = useBaseDialogInstance; exports.useEvent = useEvent; exports.useFilter = useFilter; exports.useFormHelper = useFormHelper; exports.useGrid = useGrid; exports.useLoading = useLoading;
5727
+
5728
+
5729
+
5730
+
5731
+ exports.AlertContext = AlertContext; exports.AlertProvider = AlertProvider; exports.ApiHelper = ApiHelper; exports.AuthHelper = AuthHelper; exports.Autocomplete = Autocomplete2; exports.BaseDialog = BaseDialog; exports.BaseDialogBody = BaseDialogBody; exports.BaseDialogContainer = BaseDialogContainer; exports.BaseDialogCreate = BaseDialogCreate; exports.BaseDialogTrigger = BaseDialogTrigger; 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.destroyCookie = destroyCookie; exports.filterData = filterData; exports.getTabProps = getTabProps; exports.nookies = nookies; exports.parseCookies = parseCookies; exports.setCookie = setCookie; exports.useAlert = useAlert; exports.useAsyncGrid = useAsyncGrid; exports.useBaseDialog = useBaseDialog; exports.useBaseDialogInstance = useBaseDialogInstance; exports.useEvent = useEvent; exports.useFilter = useFilter; exports.useFormHelper = useFormHelper; exports.useGrid = useGrid; exports.useLoading = useLoading;
5602
5732
  /*! Bundled license information:
5603
5733
 
5604
5734
  react-is/cjs/react-is.production.min.js: