techsbcn-storybook 0.8.1 → 0.10.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/README.md +0 -1
- package/dist/components/fields/SelectFieldComponent/SelectAsyncField.d.ts +1 -0
- package/dist/components/navigation/VerticalNav/VerticalNav.d.ts +1 -1
- package/dist/components/navigation/VerticalNav/VerticalNavItem.d.ts +1 -1
- package/dist/components/navigation/VerticalNav/VerticalNavItemCollapse.d.ts +1 -1
- package/dist/components/tables/SearchComponent/SearchComponent.d.ts +1 -0
- package/dist/components/wrappers/TabsComponent/TabsComponent.d.ts +17 -0
- package/dist/data/SelectMock.d.ts +1 -1
- package/dist/data/enums/scopes.d.ts +5 -0
- package/dist/data/index.d.ts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/stories/MainWrapper/MainWrapper.stories.d.ts +1 -1
- package/dist/techsbcn-storybook.cjs.development.js +81 -13
- package/dist/techsbcn-storybook.cjs.development.js.map +1 -1
- package/dist/techsbcn-storybook.cjs.production.min.js +1 -1
- package/dist/techsbcn-storybook.cjs.production.min.js.map +1 -1
- package/dist/techsbcn-storybook.esm.js +82 -15
- package/dist/techsbcn-storybook.esm.js.map +1 -1
- package/package.json +4 -1
- package/src/components/fields/SelectFieldComponent/SelectAsyncField.tsx +6 -0
- package/src/components/navigation/VerticalNav/VerticalNav.tsx +1 -1
- package/src/components/navigation/VerticalNav/VerticalNavItem.tsx +1 -1
- package/src/components/navigation/VerticalNav/VerticalNavItemCollapse.tsx +1 -1
- package/src/components/tables/SearchComponent/SearchComponent.tsx +13 -7
- package/src/components/tables/TableComponent/TableComponent.tsx +1 -1
- package/src/components/wrappers/MainWrapperComponent/MainWrapperComponent.scss +2 -5
- package/src/components/wrappers/MainWrapperComponent/MainWrapperComponent.tsx +8 -6
- package/src/components/wrappers/TabsComponent/TabsComponent.scss +22 -0
- package/src/components/wrappers/TabsComponent/TabsComponent.tsx +49 -0
- package/src/data/SelectMock.tsx +1 -1
- package/src/data/enums/scopes.ts +5 -0
- package/src/data/index.ts +1 -0
- package/src/helpers/CheckPermission.tsx +12 -0
- package/src/index.tsx +1 -0
- package/src/stories/Fields/Fields.stories.tsx +9 -0
- package/src/stories/Layouts/MainLayoutSimple.stories.tsx +13 -1
- package/src/stories/MainWrapper/MainWrapper.stories.tsx +70 -2
package/README.md
CHANGED
|
@@ -10,6 +10,7 @@ interface SelectAsyncFieldProps {
|
|
|
10
10
|
disabled?: boolean;
|
|
11
11
|
onChange?: (value: number, name: string) => void;
|
|
12
12
|
onChangeValue?: (value: number) => void;
|
|
13
|
+
onChangeOption?: (value: number, label: string) => void;
|
|
13
14
|
searchPromise: (filters: SearchFilters) => Promise<any>;
|
|
14
15
|
invalid?: boolean;
|
|
15
16
|
isClearable?: boolean;
|
|
@@ -14,7 +14,7 @@ export interface NavigationProps {
|
|
|
14
14
|
}
|
|
15
15
|
interface VerticalNavProps {
|
|
16
16
|
items: NavigationProps[];
|
|
17
|
-
userPermisions?: string[];
|
|
17
|
+
userPermisions?: string[] | string;
|
|
18
18
|
onHide?: () => void;
|
|
19
19
|
}
|
|
20
20
|
export declare const VerticalNav: React.FC<VerticalNavProps>;
|
|
@@ -2,7 +2,7 @@ import { NavigationProps } from './VerticalNav';
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
interface VerticalNavItemProps {
|
|
4
4
|
item: NavigationProps;
|
|
5
|
-
userPermisions?: string[];
|
|
5
|
+
userPermisions?: string[] | string;
|
|
6
6
|
onHide?: () => void;
|
|
7
7
|
}
|
|
8
8
|
declare const _default: React.NamedExoticComponent<VerticalNavItemProps>;
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { NavigationProps } from './VerticalNav';
|
|
3
3
|
interface VerticalNavItemCollapseProps {
|
|
4
4
|
item: NavigationProps;
|
|
5
|
-
userPermisions?: string[];
|
|
5
|
+
userPermisions?: string[] | string;
|
|
6
6
|
onHide?: () => void;
|
|
7
7
|
}
|
|
8
8
|
declare const _default: React.NamedExoticComponent<VerticalNavItemCollapseProps>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './TabsComponent.scss';
|
|
3
|
+
interface TabsComponentProps {
|
|
4
|
+
tabActive: number;
|
|
5
|
+
tabs: TabLabel[];
|
|
6
|
+
tabsComponent: TabComponent[];
|
|
7
|
+
}
|
|
8
|
+
interface TabLabel {
|
|
9
|
+
label: string;
|
|
10
|
+
value: number;
|
|
11
|
+
}
|
|
12
|
+
interface TabComponent {
|
|
13
|
+
component: React.ReactNode;
|
|
14
|
+
value: number;
|
|
15
|
+
}
|
|
16
|
+
export declare const TabsComponent: React.FC<TabsComponentProps>;
|
|
17
|
+
export {};
|
|
@@ -5,5 +5,5 @@ interface ColourOption {
|
|
|
5
5
|
}
|
|
6
6
|
export declare const colourOptions: ColourOption[];
|
|
7
7
|
export declare const ResponseHandler: (response: any) => any;
|
|
8
|
-
export declare const SearchSimple: (
|
|
8
|
+
export declare const SearchSimple: (_filters: SearchFilters) => Promise<SearchResult<SearchSimpleResult>>;
|
|
9
9
|
export {};
|
package/dist/data/index.d.ts
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -16,3 +16,4 @@ export * from './components/forms/LoginForm';
|
|
|
16
16
|
export * from './components/forms/ChangePasswordForm';
|
|
17
17
|
export * from './components/forms/ResetPasswordForm';
|
|
18
18
|
export * from './components/modals/ModalComponent';
|
|
19
|
+
export * from './components/wrappers/TabsComponent/TabsComponent';
|
|
@@ -16,6 +16,7 @@ var reactSelectAsyncPaginate = require('react-select-async-paginate');
|
|
|
16
16
|
var yup = require('yup');
|
|
17
17
|
var reactHookForm = require('react-hook-form');
|
|
18
18
|
var yup$1 = require('@hookform/resolvers/yup');
|
|
19
|
+
var lab = require('@mui/lab');
|
|
19
20
|
|
|
20
21
|
function styleInject(css, ref) {
|
|
21
22
|
if ( ref === void 0 ) ref = {};
|
|
@@ -107,7 +108,7 @@ var DoubleFilter = function DoubleFilter(filters) {
|
|
|
107
108
|
};
|
|
108
109
|
|
|
109
110
|
var SearchComponent = function SearchComponent(props) {
|
|
110
|
-
var _useState = React.useState(
|
|
111
|
+
var _useState = React.useState(!props.searchBar && !!props.filters),
|
|
111
112
|
isOpen = _useState[0],
|
|
112
113
|
setIsOpen = _useState[1];
|
|
113
114
|
|
|
@@ -130,17 +131,17 @@ var SearchComponent = function SearchComponent(props) {
|
|
|
130
131
|
className: "search-component " + props.className
|
|
131
132
|
}, React__default.createElement(material.Grid, {
|
|
132
133
|
container: true,
|
|
133
|
-
spacing: 2,
|
|
134
134
|
alignItems: "center"
|
|
135
135
|
}, React__default.createElement(material.Grid, {
|
|
136
136
|
item: true,
|
|
137
|
-
xs:
|
|
137
|
+
xs: props.actions ? 6 : 12,
|
|
138
|
+
md: 4
|
|
138
139
|
}, React__default.createElement(material.Box, {
|
|
139
|
-
|
|
140
|
-
className:
|
|
140
|
+
px: 1,
|
|
141
|
+
className: (props.enableAfter ? 'main-background-color-after' : '') + " title"
|
|
141
142
|
}, props.title)), props.actions && React__default.createElement(material.Grid, {
|
|
142
143
|
item: true,
|
|
143
|
-
xs:
|
|
144
|
+
xs: props.title ? 6 : 12,
|
|
144
145
|
sx: {
|
|
145
146
|
display: {
|
|
146
147
|
xs: 'block',
|
|
@@ -198,9 +199,15 @@ var SearchComponent = function SearchComponent(props) {
|
|
|
198
199
|
alignItems: "center"
|
|
199
200
|
}, React__default.createElement(material.Box, {
|
|
200
201
|
ml: "auto",
|
|
202
|
+
sx: (props.searchBar || props.filters) && {
|
|
203
|
+
mt: {
|
|
204
|
+
xs: 2,
|
|
205
|
+
md: 0
|
|
206
|
+
}
|
|
207
|
+
},
|
|
201
208
|
display: "flex",
|
|
202
209
|
width: "100%"
|
|
203
|
-
}, props.searchBar, props.filters && React__default.createElement(material.Box, {
|
|
210
|
+
}, props.searchBar, props.filters && props.searchBar && React__default.createElement(material.Box, {
|
|
204
211
|
onClick: function onClick() {
|
|
205
212
|
return setIsOpen(!isOpen);
|
|
206
213
|
},
|
|
@@ -232,7 +239,7 @@ var SearchComponent = function SearchComponent(props) {
|
|
|
232
239
|
})))));
|
|
233
240
|
};
|
|
234
241
|
|
|
235
|
-
var css_248z$2 = ".main-wrapper-component {\n background-color: white;\n box-shadow: 0 1px 20px 0 rgba(69, 90, 100, 0.08);\n}\n.main-wrapper-component .
|
|
242
|
+
var css_248z$2 = ".main-wrapper-component {\n background-color: white;\n box-shadow: 0 1px 20px 0 rgba(69, 90, 100, 0.08);\n}\n.main-wrapper-component .main-background-color-after {\n position: relative;\n}\n.main-wrapper-component .main-background-color-after:after {\n content: \"\";\n position: absolute;\n left: -17px;\n top: -4px;\n width: 4px;\n height: 30px;\n}\n.main-wrapper-component .wrapper-actions .btn-action {\n cursor: pointer;\n}\n.main-wrapper-component .wrapper-actions .btn-action .MuiButton-root {\n width: max-content;\n}\n.main-wrapper-component .wrapper-actions .btn-action svg {\n font-size: 40px;\n}";
|
|
236
243
|
styleInject(css_248z$2);
|
|
237
244
|
|
|
238
245
|
var MainWrapperComponent = function MainWrapperComponent(props) {
|
|
@@ -245,15 +252,20 @@ var MainWrapperComponent = function MainWrapperComponent(props) {
|
|
|
245
252
|
px: 2
|
|
246
253
|
}, React__default.createElement(_.CircularProgress, {
|
|
247
254
|
className: "circular-progress-main-color"
|
|
248
|
-
})) : React__default.createElement(React__default.Fragment, null, React__default.createElement(_.Box, {
|
|
255
|
+
})) : React__default.createElement(React__default.Fragment, null, props.headerProps && React__default.createElement(_.Box, {
|
|
249
256
|
mb: props.divider ? 1 : 0,
|
|
250
257
|
px: 2
|
|
251
|
-
}, React__default.createElement(SearchComponent, Object.assign({}, props.headerProps
|
|
252
|
-
|
|
258
|
+
}, React__default.createElement(SearchComponent, Object.assign({}, props.headerProps, {
|
|
259
|
+
enableAfter: true
|
|
260
|
+
}))), props.divider && React__default.createElement(_.Divider, null), props.children && !props.loadingChildren ? React__default.createElement(_.Box, {
|
|
261
|
+
pt: props.headerProps ? 2 : 0,
|
|
253
262
|
px: 2
|
|
254
|
-
},
|
|
263
|
+
}, React__default.createElement(_.Box, {
|
|
264
|
+
className: "" + (props.headerProps ? '' : 'main-background-color-after')
|
|
265
|
+
}, props.children)) : props.loadingChildren ? React__default.createElement(_.Box, {
|
|
255
266
|
display: "flex",
|
|
256
267
|
justifyContent: "center",
|
|
268
|
+
pt: props.headerProps ? 2 : 0,
|
|
257
269
|
px: 2
|
|
258
270
|
}, React__default.createElement(_.CircularProgress, {
|
|
259
271
|
className: "circular-progress-main-color"
|
|
@@ -465,7 +477,9 @@ var TableComponent = function TableComponent(props) {
|
|
|
465
477
|
overflow: 'inherit !important',
|
|
466
478
|
height: props.rows.length > 0 ? 'auto' : '80px'
|
|
467
479
|
}
|
|
468
|
-
}, React__default.createElement(_.CircularProgress,
|
|
480
|
+
}, React__default.createElement(_.CircularProgress, {
|
|
481
|
+
className: "circular-progress-main-color"
|
|
482
|
+
}))), props.rows && props.rows.length > 0 ? props.rows.map(function (row, index) {
|
|
469
483
|
var rowColor = props.rowsColorColumn && ObjectbyString(row, props.rowsColorColumn.columnName) === props.rowsColorColumn.columnValue ? "row-color-" + props.rowsColorColumn.columnValue : '';
|
|
470
484
|
return React__default.createElement(_.TableRow, {
|
|
471
485
|
className: "table-rows " + rowColor + " " + (props.onClickRow ? 'row-click' : ''),
|
|
@@ -594,6 +608,10 @@ var MainLayoutSimple = function MainLayoutSimple(props) {
|
|
|
594
608
|
var checkPermission = function checkPermission(persmisionAvailable, userRoles) {
|
|
595
609
|
if (persmisionAvailable === null || persmisionAvailable === undefined || persmisionAvailable.length === 0) {
|
|
596
610
|
return true;
|
|
611
|
+
} else {
|
|
612
|
+
if (userRoles === undefined || userRoles === null || userRoles === 0) {
|
|
613
|
+
return false;
|
|
614
|
+
}
|
|
597
615
|
}
|
|
598
616
|
|
|
599
617
|
if (userRoles && Array.isArray(userRoles) && Array.isArray(persmisionAvailable)) {
|
|
@@ -602,6 +620,14 @@ var checkPermission = function checkPermission(persmisionAvailable, userRoles) {
|
|
|
602
620
|
});
|
|
603
621
|
}
|
|
604
622
|
|
|
623
|
+
if (userRoles && !Array.isArray(userRoles) && !Array.isArray(persmisionAvailable)) {
|
|
624
|
+
return userRoles === persmisionAvailable;
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
if (userRoles && !Array.isArray(userRoles) && Array.isArray(persmisionAvailable)) {
|
|
628
|
+
return persmisionAvailable.indexOf(userRoles) >= 0;
|
|
629
|
+
}
|
|
630
|
+
|
|
605
631
|
return userRoles.indexOf(persmisionAvailable) >= 0;
|
|
606
632
|
};
|
|
607
633
|
|
|
@@ -1912,6 +1938,11 @@ var SelectAsyncField = function SelectAsyncField(props) {
|
|
|
1912
1938
|
props.onChangeValue && props.onChangeValue(option && option.length > 0 ? option.map(function (o) {
|
|
1913
1939
|
return o.value;
|
|
1914
1940
|
}) : option ? option.value : option);
|
|
1941
|
+
props.onChangeOption && props.onChangeOption(option && option.length > 0 ? option.map(function (o) {
|
|
1942
|
+
return o.value;
|
|
1943
|
+
}) : option ? option.value : option, option && option.length > 0 ? option.map(function (o) {
|
|
1944
|
+
return o.label;
|
|
1945
|
+
}) : option ? option.label : option);
|
|
1915
1946
|
},
|
|
1916
1947
|
selectRef: props.inputRef,
|
|
1917
1948
|
isDisabled: props.disabled,
|
|
@@ -2238,6 +2269,42 @@ ModalComponent.defaultProps = {
|
|
|
2238
2269
|
dividers: true
|
|
2239
2270
|
};
|
|
2240
2271
|
|
|
2272
|
+
var css_248z$d = ".tabs-component .Mui-selected {\n color: white !important;\n border: none !important;\n background-color: #3299C7;\n}\n.tabs-component .MuiTabs-indicator {\n display: none;\n}\n.tabs-component .MuiTab-root {\n margin: 2px 2px 0px;\n border: 1px solid #00000038;\n border-bottom: none;\n border-radius: 5% 5% 0% 0%;\n color: rgba(0, 0, 0, 0.54);\n}\n.tabs-component .MuiTabPanel-root {\n border: 1px solid #00000038;\n margin: 0px 2px 0px;\n border-radius: 0% 5px 5px 5px;\n}";
|
|
2273
|
+
styleInject(css_248z$d);
|
|
2274
|
+
|
|
2275
|
+
var TabsComponent = function TabsComponent(props) {
|
|
2276
|
+
var _React$useState = React__default.useState(props.tabActive.toString()),
|
|
2277
|
+
value = _React$useState[0],
|
|
2278
|
+
setValue = _React$useState[1];
|
|
2279
|
+
|
|
2280
|
+
var handleChange = function handleChange(_event, newValue) {
|
|
2281
|
+
setValue(newValue);
|
|
2282
|
+
};
|
|
2283
|
+
|
|
2284
|
+
return React__default.createElement(MainWrapperComponent, null, React__default.createElement(material.Box, {
|
|
2285
|
+
className: "tabs-component"
|
|
2286
|
+
}, React__default.createElement(lab.TabContext, {
|
|
2287
|
+
value: value
|
|
2288
|
+
}, React__default.createElement(lab.TabList, {
|
|
2289
|
+
onChange: handleChange
|
|
2290
|
+
}, props.tabs.sort(function (a, b) {
|
|
2291
|
+
return a.value - b.value;
|
|
2292
|
+
}).map(function (tabLabel) {
|
|
2293
|
+
return React__default.createElement(material.Tab, {
|
|
2294
|
+
key: tabLabel.value,
|
|
2295
|
+
label: tabLabel.label,
|
|
2296
|
+
value: tabLabel.value.toString()
|
|
2297
|
+
});
|
|
2298
|
+
})), props.tabsComponent.sort(function (a, b) {
|
|
2299
|
+
return a.value - b.value;
|
|
2300
|
+
}).map(function (tabComponent) {
|
|
2301
|
+
return React__default.createElement(lab.TabPanel, {
|
|
2302
|
+
key: tabComponent.value,
|
|
2303
|
+
value: tabComponent.value.toString()
|
|
2304
|
+
}, tabComponent.component);
|
|
2305
|
+
}))));
|
|
2306
|
+
};
|
|
2307
|
+
|
|
2241
2308
|
exports.AppHeader = AppHeader;
|
|
2242
2309
|
exports.AppSidebar = AppSidebar;
|
|
2243
2310
|
exports.ButtonComponent = ButtonComponent;
|
|
@@ -2253,6 +2320,7 @@ exports.SearchComponent = SearchComponent;
|
|
|
2253
2320
|
exports.SelectAsyncField = SelectAsyncField;
|
|
2254
2321
|
exports.SelectField = SelectField;
|
|
2255
2322
|
exports.TableComponent = TableComponent;
|
|
2323
|
+
exports.TabsComponent = TabsComponent;
|
|
2256
2324
|
exports.TextFieldComponent = TextFieldComponent;
|
|
2257
2325
|
exports.UserInfo = UserInfo;
|
|
2258
2326
|
exports.VerticalNav = VerticalNav;
|