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.
Files changed (37) hide show
  1. package/README.md +0 -1
  2. package/dist/components/fields/SelectFieldComponent/SelectAsyncField.d.ts +1 -0
  3. package/dist/components/navigation/VerticalNav/VerticalNav.d.ts +1 -1
  4. package/dist/components/navigation/VerticalNav/VerticalNavItem.d.ts +1 -1
  5. package/dist/components/navigation/VerticalNav/VerticalNavItemCollapse.d.ts +1 -1
  6. package/dist/components/tables/SearchComponent/SearchComponent.d.ts +1 -0
  7. package/dist/components/wrappers/TabsComponent/TabsComponent.d.ts +17 -0
  8. package/dist/data/SelectMock.d.ts +1 -1
  9. package/dist/data/enums/scopes.d.ts +5 -0
  10. package/dist/data/index.d.ts +1 -0
  11. package/dist/index.d.ts +1 -0
  12. package/dist/stories/MainWrapper/MainWrapper.stories.d.ts +1 -1
  13. package/dist/techsbcn-storybook.cjs.development.js +81 -13
  14. package/dist/techsbcn-storybook.cjs.development.js.map +1 -1
  15. package/dist/techsbcn-storybook.cjs.production.min.js +1 -1
  16. package/dist/techsbcn-storybook.cjs.production.min.js.map +1 -1
  17. package/dist/techsbcn-storybook.esm.js +82 -15
  18. package/dist/techsbcn-storybook.esm.js.map +1 -1
  19. package/package.json +4 -1
  20. package/src/components/fields/SelectFieldComponent/SelectAsyncField.tsx +6 -0
  21. package/src/components/navigation/VerticalNav/VerticalNav.tsx +1 -1
  22. package/src/components/navigation/VerticalNav/VerticalNavItem.tsx +1 -1
  23. package/src/components/navigation/VerticalNav/VerticalNavItemCollapse.tsx +1 -1
  24. package/src/components/tables/SearchComponent/SearchComponent.tsx +13 -7
  25. package/src/components/tables/TableComponent/TableComponent.tsx +1 -1
  26. package/src/components/wrappers/MainWrapperComponent/MainWrapperComponent.scss +2 -5
  27. package/src/components/wrappers/MainWrapperComponent/MainWrapperComponent.tsx +8 -6
  28. package/src/components/wrappers/TabsComponent/TabsComponent.scss +22 -0
  29. package/src/components/wrappers/TabsComponent/TabsComponent.tsx +49 -0
  30. package/src/data/SelectMock.tsx +1 -1
  31. package/src/data/enums/scopes.ts +5 -0
  32. package/src/data/index.ts +1 -0
  33. package/src/helpers/CheckPermission.tsx +12 -0
  34. package/src/index.tsx +1 -0
  35. package/src/stories/Fields/Fields.stories.tsx +9 -0
  36. package/src/stories/Layouts/MainLayoutSimple.stories.tsx +13 -1
  37. package/src/stories/MainWrapper/MainWrapper.stories.tsx +70 -2
package/README.md CHANGED
@@ -116,7 +116,6 @@ declare var __DEV__: boolean;
116
116
 
117
117
  // inside your code...
118
118
  if (__DEV__) {
119
- console.log('foo');
120
119
  }
121
120
  ```
122
121
 
@@ -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>;
@@ -11,6 +11,7 @@ export interface SearchComponentProps {
11
11
  singleFilter?: any;
12
12
  doubleFilter?: DoubleFilter;
13
13
  }[];
14
+ enableAfter?: boolean;
14
15
  }
15
16
  interface DoubleFilter {
16
17
  label?: string;
@@ -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: (filters: SearchFilters) => Promise<SearchResult<SearchSimpleResult>>;
8
+ export declare const SearchSimple: (_filters: SearchFilters) => Promise<SearchResult<SearchSimpleResult>>;
9
9
  export {};
@@ -0,0 +1,5 @@
1
+ export declare enum Scope {
2
+ SUPERADMIN = 1,
3
+ ADMIN = 2,
4
+ DRIVER = 3
5
+ }
@@ -1,3 +1,4 @@
1
1
  export * from './SelectMock';
2
2
  export * from './UserList';
3
3
  export * from './Values';
4
+ export * from './enums/scopes';
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';
@@ -1,4 +1,4 @@
1
1
  import { Meta, Story } from '@storybook/react';
2
2
  declare const meta: Meta;
3
3
  export default meta;
4
- export declare const Default: Story<import("@storybook/react").Args>;
4
+ export declare const Examples: Story<import("@storybook/react").Args>;
@@ -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(false),
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: 4
137
+ xs: props.actions ? 6 : 12,
138
+ md: 4
138
139
  }, React__default.createElement(material.Box, {
139
- pl: 1,
140
- className: "main-background-color-after title"
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: 8,
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 .title.main-background-color-after {\n color: #000;\n font-size: calc(21px + (23 - 21) * calc(100vw - 300px)/1300) !important;\n font-weight: 400;\n position: relative;\n}\n.main-wrapper-component .title.main-background-color-after:after {\n content: \"\";\n position: absolute;\n left: -17px;\n top: 0;\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}";
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))), props.divider && React__default.createElement(_.Divider, null), props.children && !props.loadingChildren ? React__default.createElement(_.Box, {
252
- py: props.headerProps ? 2 : 1,
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
- }, props.children) : props.loadingChildren ? React__default.createElement(_.Box, {
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, null))), props.rows && props.rows.length > 0 ? props.rows.map(function (row, index) {
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;