@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 +150 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +46 -1
- package/dist/index.d.ts +46 -1
- package/dist/index.js +139 -9
- package/dist/index.js.map +1 -1
- package/package.json +8 -7
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 || "
|
|
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',
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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',
|
|
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
|
-
|
|
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
|
-
|
|
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',
|
|
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(
|
|
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',
|
|
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',
|
|
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 =
|
|
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
|
-
|
|
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:
|