robbyson-frontend-library 0.0.1-rc10 → 0.0.1-rc11

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 (77) hide show
  1. package/dist/components/drawer/drawer.interface.js +1 -0
  2. package/dist/components/pages/base-app-page.styles.js +7 -1
  3. package/dist/components/range-date-picker/range-date-picker.interface.js +1 -0
  4. package/dist/components/tab/tab.interface.js +1 -0
  5. package/dist/components/terms-of-use/terms-of-use.interface.js +1 -0
  6. package/dist/components/time-picker/time-picker.interface.js +1 -0
  7. package/dist/components/tree-date-picker/tree-date-picker.interface.js +1 -0
  8. package/dist/constants/layout-dimensions.constants.js +3 -3
  9. package/dist/factories/response.factory.js +2 -1
  10. package/dist/index.js +3 -0
  11. package/dist/models/document.model.js +24 -0
  12. package/dist/models/humor-list.model.js +24 -0
  13. package/dist/models/humor-register.model.js +40 -0
  14. package/dist/models/theme-base.js +4 -0
  15. package/dist/repositories/document.repository.interface.js +1 -0
  16. package/dist/repositories/humor.repository.interface.js +1 -0
  17. package/dist/services/document.service.interface.js +1 -0
  18. package/dist/services/humor.service.interface.js +1 -0
  19. package/dist/utils/date.utils.js +30 -0
  20. package/dist/utils/index.js +1 -0
  21. package/dist/utils/layout.utils.js +10 -0
  22. package/index.d.ts +7 -1
  23. package/package.json +8 -6
  24. package/src/components/balloon/balloon.interface.ts +2 -2
  25. package/src/components/basic-button/basic-button.interface.ts +4 -1
  26. package/src/components/date-picker/date-picker.interface.ts +13 -0
  27. package/src/components/date-picker/date-picker.types.d.ts +10 -0
  28. package/src/components/date-picker/index.d.ts +1 -0
  29. package/src/components/{mobile-filter/mobile-filter.interface.ts → drawer/drawer.interface.ts} +3 -1
  30. package/src/components/drawer/drawer.types.d.ts +10 -0
  31. package/src/components/drawer/index.d.ts +1 -0
  32. package/src/components/filter/filter.interface.tsx +2 -0
  33. package/src/components/modal/modal.interface.ts +19 -10
  34. package/src/components/mood-button/mood-button.interface.ts +2 -2
  35. package/src/components/pages/base-app-page.styles.ts +14 -1
  36. package/src/components/range-date-picker/index.d.ts +1 -0
  37. package/src/components/range-date-picker/range-date-picker.interface.ts +16 -0
  38. package/src/components/range-date-picker/range-date-picker.types.d.ts +10 -0
  39. package/src/components/sidebar/sidebar.interface.ts +1 -0
  40. package/src/components/sort/sort.interface.ts +10 -3
  41. package/src/components/tab/index.d.ts +1 -0
  42. package/src/components/tab/tab.interface.ts +16 -0
  43. package/src/components/tab/tab.types.d.ts +9 -0
  44. package/src/components/terms-of-use/index.d.ts +1 -0
  45. package/src/components/terms-of-use/terms-of-use.interface.tsx +13 -0
  46. package/src/components/terms-of-use/terms-of-use.types.d.ts +11 -0
  47. package/src/components/text-field/text-field.interface.ts +21 -8
  48. package/src/components/time-picker/index.d.ts +1 -0
  49. package/src/components/time-picker/time-picker.interface.ts +15 -0
  50. package/src/components/time-picker/time-picker.types.d.ts +9 -0
  51. package/src/components/tree-date-picker/index.d.ts +1 -0
  52. package/src/components/tree-date-picker/tree-date-picker.interface.ts +30 -0
  53. package/src/components/tree-date-picker/tree-date-picker.types.d.ts +10 -0
  54. package/src/constants/layout-dimensions.constants.ts +3 -3
  55. package/src/factories/response.factory.ts +16 -11
  56. package/src/index.ts +5 -1
  57. package/src/models/document.model.ts +27 -0
  58. package/src/models/humor-list.model.ts +23 -0
  59. package/src/models/humor-register.model.ts +35 -0
  60. package/src/models/index.d.ts +3 -0
  61. package/src/models/theme-base.ts +13 -0
  62. package/src/repositories/document.repository.interface.ts +17 -0
  63. package/src/repositories/humor.repository.interface.ts +10 -0
  64. package/src/repositories/index.d.ts +3 -1
  65. package/src/services/document.service.interface.ts +20 -0
  66. package/src/services/humor.service.interface.ts +12 -0
  67. package/src/services/index.d.ts +2 -0
  68. package/src/services/theme.service.interface.ts +2 -1
  69. package/src/services/validations.service.interface.ts +3 -1
  70. package/src/states/main-container/root-app.state.interface.ts +9 -2
  71. package/src/utils/date.utils.ts +35 -0
  72. package/src/utils/index.ts +2 -1
  73. package/src/utils/layout.utils.ts +7 -0
  74. package/tsconfig.json +4 -1
  75. package/src/components/mobile-filter/index.d.ts +0 -1
  76. package/src/components/mobile-filter/mobile-filter.types.d.ts +0 -9
  77. /package/dist/components/{mobile-filter/mobile-filter.interface.js → date-picker/date-picker.interface.js} +0 -0
@@ -0,0 +1 @@
1
+ export {};
@@ -10,7 +10,13 @@ export var PageContainer = styled.div(templateObject_1 || (templateObject_1 = __
10
10
  export var Header = styled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n display: flex !important;\n flex-direction: row !important;\n justify-content: space-between !important;\n align-items: center !important;\n padding-bottom: 8px;\n gap: 16px !important;\n\n @media (max-width: ", "px) {\n flex-direction: column !important;\n align-items: flex-start !important;\n }\n\n & > div {\n display: flex;\n align-items: center;\n }\n\n svg {\n cursor: pointer;\n }\n"], ["\n display: flex !important;\n flex-direction: row !important;\n justify-content: space-between !important;\n align-items: center !important;\n padding-bottom: 8px;\n gap: 16px !important;\n\n @media (max-width: ", "px) {\n flex-direction: column !important;\n align-items: flex-start !important;\n }\n\n & > div {\n display: flex;\n align-items: center;\n }\n\n svg {\n cursor: pointer;\n }\n"])), LayoutDimensions.width.horizontalIpadMini);
11
11
  export var ContextMenu = styled.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n -ms-overflow-style: none;\n scrollbar-width: none;\n overflow-y: scroll;\n &::-webkit-scrollbar {\n display: none;\n }\n @media (max-width: ", "px) {\n width: 100%;\n }\n"], ["\n -ms-overflow-style: none;\n scrollbar-width: none;\n overflow-y: scroll;\n &::-webkit-scrollbar {\n display: none;\n }\n @media (max-width: ", "px) {\n width: 100%;\n }\n"])), LayoutDimensions.width.horizontalIpadMini);
12
12
  export var Title = styled.h4(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n margin-left: 12px;\n"], ["\n margin-left: 12px;\n"])));
13
- export var Content = styled.div(templateObject_5 || (templateObject_5 = __makeTemplateObject([""], [""])));
13
+ var PADDING_TOP_DESKTOP = 32;
14
+ var PADDING_TOP_MOBILE = 32;
15
+ var PADDING_BOTTOM_DESKTOP = 47;
16
+ var PADDING_BOTTOM_MOBILE = 32;
17
+ var HEADER_HEIGHT_DESKTOP = 48;
18
+ var HEADER_HEIGHT_MOBILE = 99;
19
+ export var Content = styled.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n height: calc(100vh - ", "px);\n\n @media (max-width: ", "px) {\n height: calc(100vh - ", "px);\n }\n"], ["\n height: calc(100vh - ", "px);\n\n @media (max-width: ", "px) {\n height: calc(100vh - ", "px);\n }\n"])), PADDING_TOP_DESKTOP + PADDING_BOTTOM_DESKTOP + HEADER_HEIGHT_DESKTOP, LayoutDimensions.width.horizontalIpadMini, PADDING_TOP_MOBILE + PADDING_BOTTOM_MOBILE + HEADER_HEIGHT_MOBILE);
14
20
  export var LeftArrowLarge = styled(SVG)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n display: none;\n\n @media (min-width: ", "px) {\n display: block;\n }\n"], ["\n display: none;\n\n @media (min-width: ", "px) {\n display: block;\n }\n"])), LayoutDimensions.width.horizontalIpadMini + 1);
15
21
  export var Block = styled.div(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n display: none;\n\n @media (max-width: ", "px) {\n display: block;\n width: 24px;\n height: 24px;\n }\n"], ["\n display: none;\n\n @media (max-width: ", "px) {\n display: block;\n width: 24px;\n height: 24px;\n }\n"])), LayoutDimensions.width.horizontalIpadMini);
16
22
  var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7;
@@ -0,0 +1 @@
1
+ export {};
@@ -2,9 +2,9 @@ var LayoutDimensions = /** @class */ (function () {
2
2
  function LayoutDimensions() {
3
3
  }
4
4
  LayoutDimensions.width = {
5
- horizontalIpadMini: 1133,
6
- verticalIpadMini: 744,
7
- mobile: 412,
5
+ horizontalIpadMini: 1199,
6
+ verticalIpadMini: 767,
7
+ mobile: 575,
8
8
  };
9
9
  return LayoutDimensions;
10
10
  }());
@@ -65,7 +65,8 @@ var ResponseFactory = /** @class */ (function () {
65
65
  throw new RobbysonResponseError();
66
66
  if (response.data.statusLog &&
67
67
  response.data.statusLog.length &&
68
- response.data.statusLog[0].type !== ResponseStatusLogType.SUCCESS_RESPONSE)
68
+ response.data.statusLog[0].type !==
69
+ ResponseStatusLogType.SUCCESS_RESPONSE)
69
70
  throw new RobbysonResponseError(response.data);
70
71
  };
71
72
  ResponseFactory.Create = function (response) {
package/dist/index.js CHANGED
@@ -7,6 +7,7 @@ export * from "./models/user-mirror.model";
7
7
  export * from "./models/user-session.model";
8
8
  export * from "./models/send-user-to-login.model";
9
9
  export * from "./models/angel-friend-status.model";
10
+ export * from './models/document.model';
10
11
  export * from "./models/guidance-category.model";
11
12
  export * from "./models/guidance.model";
12
13
  export * from "./models/guidance-query.model";
@@ -21,3 +22,5 @@ export * from "./states";
21
22
  export * from "./utils";
22
23
  // Constants
23
24
  export * from "./constants";
25
+ // DTOs
26
+ export * from "./services/dtos";
@@ -0,0 +1,24 @@
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ };
8
+ return function (d, b) {
9
+ if (typeof b !== "function" && b !== null)
10
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
+ extendStatics(d, b);
12
+ function __() { this.constructor = d; }
13
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
+ };
15
+ })();
16
+ import { BaseRepositoryModel } from "./base.repository.model";
17
+ var DocumentModel = /** @class */ (function (_super) {
18
+ __extends(DocumentModel, _super);
19
+ function DocumentModel() {
20
+ return _super !== null && _super.apply(this, arguments) || this;
21
+ }
22
+ return DocumentModel;
23
+ }(BaseRepositoryModel));
24
+ export { DocumentModel };
@@ -0,0 +1,24 @@
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ };
8
+ return function (d, b) {
9
+ if (typeof b !== "function" && b !== null)
10
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
+ extendStatics(d, b);
12
+ function __() { this.constructor = d; }
13
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
+ };
15
+ })();
16
+ import { BaseRepositoryModel } from "./base.repository.model";
17
+ var HumorListModel = /** @class */ (function (_super) {
18
+ __extends(HumorListModel, _super);
19
+ function HumorListModel() {
20
+ return _super !== null && _super.apply(this, arguments) || this;
21
+ }
22
+ return HumorListModel;
23
+ }(BaseRepositoryModel));
24
+ export { HumorListModel };
@@ -0,0 +1,40 @@
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ };
8
+ return function (d, b) {
9
+ if (typeof b !== "function" && b !== null)
10
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
+ extendStatics(d, b);
12
+ function __() { this.constructor = d; }
13
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
+ };
15
+ })();
16
+ import { BaseRepositoryModel } from "./base.repository.model";
17
+ var HumorRegisterModel = /** @class */ (function (_super) {
18
+ __extends(HumorRegisterModel, _super);
19
+ function HumorRegisterModel() {
20
+ return _super !== null && _super.apply(this, arguments) || this;
21
+ }
22
+ return HumorRegisterModel;
23
+ }(BaseRepositoryModel));
24
+ export { HumorRegisterModel };
25
+ var HumorRegisterResponseModel = /** @class */ (function (_super) {
26
+ __extends(HumorRegisterResponseModel, _super);
27
+ function HumorRegisterResponseModel() {
28
+ return _super !== null && _super.apply(this, arguments) || this;
29
+ }
30
+ return HumorRegisterResponseModel;
31
+ }(BaseRepositoryModel));
32
+ export { HumorRegisterResponseModel };
33
+ var HumorLastModel = /** @class */ (function (_super) {
34
+ __extends(HumorLastModel, _super);
35
+ function HumorLastModel() {
36
+ return _super !== null && _super.apply(this, arguments) || this;
37
+ }
38
+ return HumorLastModel;
39
+ }(BaseRepositoryModel));
40
+ export { HumorLastModel };
@@ -34,6 +34,10 @@ var ThemeBase = /** @class */ (function () {
34
34
  logoCompleteNegative: new ThemeAssets(),
35
35
  logoIconNegative: new ThemeAssets(),
36
36
  backgroundLogo: new ThemeAssets(),
37
+ humorAvatar: new ThemeAssets(),
38
+ humorImGoodCircle: new ThemeAssets(),
39
+ humorImTopCircle: new ThemeAssets(),
40
+ humorImbadCircle: new ThemeAssets(),
37
41
  logoMobile: new ThemeAssets(),
38
42
  loginRobbysonAvatar: new ThemeAssets(),
39
43
  };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,30 @@
1
+ import _ from "lodash";
2
+ import moment from "moment";
3
+ var DateUtils = /** @class */ (function () {
4
+ function DateUtils() {
5
+ }
6
+ DateUtils.isSameDateAsNow = function (date) {
7
+ return moment(date).isSame(moment(new Date()), "day");
8
+ };
9
+ DateUtils.isPastDateAsNow = function (date) {
10
+ return moment(date).isBefore(moment(new Date()));
11
+ };
12
+ DateUtils.getDateBetweenDates = function (start, end) {
13
+ var clonedStart = _.cloneDeep(start);
14
+ if (!start ||
15
+ !end ||
16
+ !(start instanceof Date) ||
17
+ !(end instanceof Date)) {
18
+ throw new Error("Invalid date");
19
+ }
20
+ var dates = [];
21
+ var currentDate = clonedStart;
22
+ while (currentDate <= end) {
23
+ dates.push(new Date(currentDate));
24
+ currentDate.setDate(currentDate.getDate() + 1);
25
+ }
26
+ return dates;
27
+ };
28
+ return DateUtils;
29
+ }());
30
+ export { DateUtils };
@@ -3,3 +3,4 @@ export * from './build-error/buildError.util';
3
3
  export * from './query-params';
4
4
  export * from './cache-control';
5
5
  export * from "./robbyson-navigate";
6
+ export * from "./layout.utils";
@@ -0,0 +1,10 @@
1
+ import { LayoutDimensions } from "../constants";
2
+ var LayoutUtils = /** @class */ (function () {
3
+ function LayoutUtils() {
4
+ }
5
+ LayoutUtils.isMobile = function () {
6
+ return window.innerWidth <= LayoutDimensions.width.horizontalIpadMini;
7
+ };
8
+ return LayoutUtils;
9
+ }());
10
+ export { LayoutUtils };
package/index.d.ts CHANGED
@@ -42,9 +42,15 @@ export * from "./src/components/upload";
42
42
  export * from "./src/components/balloon";
43
43
  export * from "./src/components/pdf-viewer";
44
44
  export * from "./src/components/toggle-icon-button";
45
+ export * from "./src/components/terms-of-use";
45
46
  export * from "./src/components/overlay";
46
47
  export * from "./src/components/header-context-menu";
47
48
  export * from "./src/components/sort";
48
- export * from "./src/components/mobile-filter";
49
+ export * from "./src/components/drawer";
49
50
  export * from "./src/components/loading";
51
+ export * from "./src/components/date-picker";
52
+ export * from "./src/components/range-date-picker";
53
+ export * from "./src/components/tree-date-picker";
54
+ export * from "./src/components/tab";
50
55
  export * from "./src/components/filter";
56
+ export * from "./src/components/time-picker";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "robbyson-frontend-library",
3
- "version": "0.0.1-rc10",
3
+ "version": "0.0.1-rc11",
4
4
  "description": "Robbyson frontend Library",
5
5
  "main": "./dist/index.js",
6
6
  "license": "MIT",
@@ -19,7 +19,8 @@
19
19
  "devDependencies": {
20
20
  "@types/axios": "^0.14.0",
21
21
  "@types/crypto-js": "^4.1.1",
22
- "@types/react": "^18.0.27",
22
+ "@types/lodash": "^4.14.199",
23
+ "@types/react": "~18.0.24",
23
24
  "@types/styled-components": "^5.1.26",
24
25
  "styled-components": "^5.3.9",
25
26
  "typescript": "^4.9.5"
@@ -27,14 +28,15 @@
27
28
  "dependencies": {
28
29
  "axios": "^1.3.5",
29
30
  "crypto-js": "^4.1.1",
31
+ "history": "^5.3.0",
30
32
  "localforage": "^1.10.0",
33
+ "lodash": "^4.17.21",
31
34
  "moment": "^2.29.4",
35
+ "query-string": "^8.1.0",
32
36
  "react": "^18.2.0",
33
37
  "react-inlinesvg": "^3.0.2",
34
- "query-string": "^8.1.0",
35
38
  "react-toastify": "^9.1.2",
36
39
  "redux-micro-frontend": "^1.3.0",
37
- "redux-persist": "^6.0.0",
38
- "history": "^5.3.0"
40
+ "redux-persist": "^6.0.0"
39
41
  }
40
- }
42
+ }
@@ -8,7 +8,7 @@ export interface IBalloonProps<T> extends React.HTMLAttributes<T>, IBaseComponen
8
8
  | "bottom-left"
9
9
  | "left-top"
10
10
  | "left-bottom";
11
- width: string;
12
- height: string;
11
+ width?: string;
12
+ height?: string;
13
13
  titleLocaleHandle: string;
14
14
  }
@@ -1,10 +1,13 @@
1
1
  import { IconHandle } from "../../models";
2
2
  import { IBaseComponentProp } from "../base-component.prop.interface";
3
+
4
+ export type BasicButtonVariant = 'primary' | 'secondary' | 'tertiary';
5
+
3
6
  export interface IBasicButtonProps<T> extends React.ButtonHTMLAttributes<T>, IBaseComponentProp {
4
7
  iconAlign?: string;
5
8
  hasIcon?: Boolean;
6
9
  iconHandle?: IconHandle;
7
10
  textLocaleHandle?: string;
8
- variant: 'primary' | 'secondary' | 'tertiary'
11
+ variant: BasicButtonVariant
9
12
  shape?: 'round' | 'square'
10
13
  }
@@ -0,0 +1,13 @@
1
+ import { IBaseComponentProp } from "../base-component.prop.interface";
2
+ import { ITextFieldProps } from "../text-field";
3
+
4
+ export interface IDatePickerProps extends IBaseComponentProp {
5
+ onConfirm: (date: Date) => void;
6
+ selectedDate: Date | null;
7
+ customInputOptions?: Omit<ITextFieldProps, "value">;
8
+ }
9
+
10
+ export interface IDatePickerState {
11
+ selectedDate: Date | null;
12
+ }
13
+
@@ -0,0 +1,10 @@
1
+ ///<reference types="react" />
2
+ ///<reference types="robbyson-frontend-library" />
3
+
4
+ declare module "styleguide/DatePicker" {
5
+ import { IDatePickerProps } from "robbyson-frontend-library";
6
+
7
+ const DatePicker: React.ComponentType<IDatePickerProps>;
8
+
9
+ export default DatePicker;
10
+ }
@@ -0,0 +1 @@
1
+ export * from "./date-picker.interface"
@@ -1,8 +1,10 @@
1
1
  import { IBaseComponentProp } from "../base-component.prop.interface";
2
2
 
3
- export interface IMobileFilterProps extends IBaseComponentProp {
3
+ export interface IDrawerProps extends IBaseComponentProp {
4
4
  showOverlay: boolean;
5
5
  onClick(): void;
6
6
  scrollBoxHeight: string;
7
7
  children: React.ReactNode;
8
+ overlayZindex?: string;
9
+ titleLocaleHandle?: string;
8
10
  }
@@ -0,0 +1,10 @@
1
+ ///<reference types="react" />
2
+ ///<reference types="robbyson-frontend-library" />
3
+
4
+ declare module "styleguide/Drawer" {
5
+ import { IDrawerProps } from "robbyson-frontend-library";
6
+
7
+ const Drawer: React.ComponentType<IDrawerProps>;
8
+
9
+ export default Drawer;
10
+ }
@@ -0,0 +1 @@
1
+ export * from './drawer.interface';
@@ -20,6 +20,7 @@ export interface IFilterState {
20
20
  searchingFilter: number | undefined;
21
21
  filterReturn: IFilterReturn;
22
22
  openFilter: number | undefined;
23
+ oldFilters: Array<IFilter>
23
24
  }
24
25
 
25
26
  export interface IFilterProps extends IBaseComponentProp {
@@ -48,6 +49,7 @@ export interface IOption {
48
49
  iconHandle?: IconHandle;
49
50
  checked?: boolean;
50
51
  category?: string;
52
+ bagdeValue?: number;
51
53
  }
52
54
 
53
55
  export interface IFilterReturn {
@@ -1,21 +1,30 @@
1
1
  import { IBaseComponentProp } from "../base-component.prop.interface";
2
+ import { BasicButtonVariant } from "../basic-button";
2
3
 
3
4
  type ActionButton = {
4
5
  titleLocaleHandle: string;
5
6
  action: any;
6
- }
7
+ variant?: BasicButtonVariant;
8
+ };
7
9
 
8
10
  export interface IModalState {
9
- hidden:boolean;
11
+ hidden: boolean;
10
12
  }
11
13
 
14
+ export interface IModalProps extends IBaseComponentProp {
15
+ children: any;
16
+ width?: number;
17
+ height?: number;
18
+ closeIcon?: boolean;
19
+ titleHandleLocale?: string;
20
+ actionButtons?: ActionButton[];
21
+ overlayZindex?: string;
22
+ onCloseModal?(): void;
23
+ isOpen?: boolean;
24
+ enableDrawer?: boolean;
25
+ }
12
26
 
13
- export interface IModalProps extends IBaseComponentProp {
14
- children: any;
15
- width?: number;
16
- height?: number;
17
- closeIcon?: boolean;
18
- titleHandleLocale?: string;
19
- actionButtons?: ActionButton[];
20
- overlayZindex?: string;
27
+ export interface IModalActions extends IBaseComponentProp {
28
+ actionButtons?: ActionButton[];
29
+ className?: string;
21
30
  }
@@ -1,10 +1,10 @@
1
1
 
2
+ import { IconHandle } from "../../models";
2
3
  import { IBaseComponentProp } from "../base-component.prop.interface";
3
4
 
4
- type IconHandleMoodButton = 'work-bold' | 'family-bold' | 'relationship-bold' | 'health-bold';
5
5
  type SizeMoodButton = 'medium' | 'large';
6
6
 
7
7
  export interface IMoodButtonProps<T> extends React.ButtonHTMLAttributes<T>, IBaseComponentProp {
8
- iconHandle: IconHandleMoodButton;
8
+ iconHandle: IconHandle;
9
9
  size?: SizeMoodButton;
10
10
  }
@@ -57,7 +57,20 @@ export const Title = styled.h4`
57
57
  margin-left: 12px;
58
58
  `;
59
59
 
60
- export const Content = styled.div``;
60
+ const PADDING_TOP_DESKTOP = 32;
61
+ const PADDING_TOP_MOBILE = 32;
62
+ const PADDING_BOTTOM_DESKTOP = 47;
63
+ const PADDING_BOTTOM_MOBILE = 32;
64
+ const HEADER_HEIGHT_DESKTOP = 48;
65
+ const HEADER_HEIGHT_MOBILE = 99;
66
+
67
+ export const Content = styled.div`
68
+ height: calc(100vh - ${PADDING_TOP_DESKTOP + PADDING_BOTTOM_DESKTOP + HEADER_HEIGHT_DESKTOP}px);
69
+
70
+ @media (max-width: ${LayoutDimensions.width.horizontalIpadMini}px) {
71
+ height: calc(100vh - ${PADDING_TOP_MOBILE + PADDING_BOTTOM_MOBILE + HEADER_HEIGHT_MOBILE}px);
72
+ }
73
+ `;
61
74
 
62
75
  export const LeftArrowLarge = styled(SVG)`
63
76
  display: none;
@@ -0,0 +1 @@
1
+ export * from './range-date-picker.interface';
@@ -0,0 +1,16 @@
1
+ import { IBaseComponentProp } from "../base-component.prop.interface";
2
+ import { ITextFieldProps } from "../text-field";
3
+
4
+ export interface IRangeDatePickerProps
5
+ extends IBaseComponentProp {
6
+ onConfirm: (startDate: Date, endDate: Date) => void;
7
+ startDate: Date | null;
8
+ endDate: Date | null;
9
+ customInputOptions?: Omit<ITextFieldProps, "value">,
10
+
11
+ }
12
+
13
+ export interface IRangeDatePickerState {
14
+ startDate: Date | null;
15
+ endDate: Date | null;
16
+ }
@@ -0,0 +1,10 @@
1
+ ///<reference types="react" />
2
+ ///<reference types="robbyson-frontend-library" />
3
+
4
+ declare module "styleguide/RangeDatePicker" {
5
+ import { IRangeDatePickerProps } from "robbyson-frontend-library";
6
+
7
+ const RangeDatePicker: React.ComponentType<IRangeDatePickerProps>;
8
+
9
+ export default RangeDatePicker;
10
+ }
@@ -12,4 +12,5 @@ export interface ISidebarProps extends IBaseComponentProp {
12
12
  overlayZindex?: string;
13
13
  showOverlay?: boolean;
14
14
  subtitle?: string;
15
+ enableDrawer?: boolean;
15
16
  }
@@ -3,8 +3,12 @@ import { IBaseComponentProp } from "../base-component.prop.interface";
3
3
 
4
4
  export interface ISortProps extends IBaseComponentProp {
5
5
  titleLocaleHandle?: string;
6
- options: Array<{ nameLocaleHandle: string; value: string | number }>;
7
- defaultOption: string | number;
6
+ options: Array<{
7
+ nameLocaleHandle: string;
8
+ value: string | number;
9
+ }>;
10
+ defaultOption?: string | number;
11
+ selectedKeys?: string[];
8
12
  icon: IconHandle;
9
13
  onChangeOption?(option: {
10
14
  nameLocaleHandle: string;
@@ -13,9 +17,12 @@ export interface ISortProps extends IBaseComponentProp {
13
17
  hideOnMouseOver?: boolean;
14
18
  hideOnChangeOption?: boolean;
15
19
  width?: string | number;
20
+ type?: "checkbox" | "default";
21
+ className?: string;
22
+ fillIcon?: string;
16
23
  }
17
24
 
18
25
  export interface ISortState {
19
26
  showSort: boolean;
20
- sortValue: string | number;
27
+ sortValue?: string | number;
21
28
  }
@@ -0,0 +1 @@
1
+ export * from './tab.interface';
@@ -0,0 +1,16 @@
1
+ import { IBaseComponentProp } from "../base-component.prop.interface";
2
+
3
+ export interface ITabProps<T> extends IBaseComponentProp {
4
+ onClickTab(tabKey: T): void;
5
+ tabOptions: TabOptions<T>[];
6
+ activeTab: T;
7
+ }
8
+
9
+ interface TabOptions<T> {
10
+ tabKey: T;
11
+ tabLocaleHandle: string;
12
+ suffix?: JSX.Element;
13
+ prefix?: JSX.Element;
14
+ content?: React.ReactNode;
15
+ disabled?: boolean;
16
+ }
@@ -0,0 +1,9 @@
1
+ ///<reference types="react" />
2
+ ///<reference types="robbyson-frontend-library" />
3
+
4
+ declare module 'styleguide/Tab' {
5
+ import { ITabProps } from "robbyson-frontend-library";
6
+ const Tab: React.ComponentType<ITabProps<any>>;
7
+
8
+ export default Tab;
9
+ }
@@ -0,0 +1 @@
1
+ export * from './terms-of-use.interface';
@@ -0,0 +1,13 @@
1
+ import { TermsOfUseModel } from "../../models";
2
+ import { IBaseComponentProp } from "../base-component.prop.interface";
3
+
4
+ export interface ITermsOfUseProps extends IBaseComponentProp {
5
+ termsOfUse: TermsOfUseModel;
6
+ onAccepted(): void;
7
+ buttonLocaleTitle?: string;
8
+ }
9
+
10
+ export interface ITermsOfUseState {
11
+ isRead: boolean;
12
+ disableButton: boolean;
13
+ }
@@ -0,0 +1,11 @@
1
+ ///<reference types="react" />
2
+ ///<reference types="robbyson-frontend-library" />
3
+
4
+ declare module 'terms_of_use_application/TermsOfUse' {
5
+
6
+ import { ITermsOfUseProps } from "robbyson-frontend-library";
7
+ const TermsOfUse: React.ComponentType<ITermsOfUseProps<any>>;
8
+
9
+ export default TermsOfUse;
10
+ }
11
+
@@ -1,18 +1,17 @@
1
1
  import { IconHandle } from "../../models";
2
2
  import { IBaseComponentProp } from "../base-component.prop.interface";
3
+ import { IScrollBoxProps } from "../scroll-box";
3
4
 
4
5
  export interface ITextFieldState {
5
- disabled:boolean;
6
- active:boolean;
7
- hasError:boolean;
8
- empty:boolean;
9
- text: string;
10
- errorText:string;
6
+ isDropdownOpen: boolean;
11
7
  }
12
8
 
13
- export interface ITextFieldProps extends React.InputHTMLAttributes<any>, IBaseComponentProp {
9
+ export interface ITextFieldProps
10
+ extends React.InputHTMLAttributes<any>,
11
+ IBaseComponentProp {
14
12
  placeholderLocaleHandle?: string;
15
13
  prefixIconHandle?: IconHandle;
14
+ dropdownOptions?: DropdownOptions;
16
15
  suffixIconHandle?: IconHandle;
17
16
  helperTextLocaleHandle?: string;
18
17
  errorTextLocaleHandle?: string;
@@ -25,4 +24,18 @@ export interface ITextFieldProps extends React.InputHTMLAttributes<any>, IBaseCo
25
24
  hasError?: boolean;
26
25
  fillPrefixIcon?: string;
27
26
  fillSuffixIcon?: string;
28
- }
27
+ pointerCursor?: boolean;
28
+ }
29
+
30
+ type DropdownOptions = {
31
+ data: {
32
+ labelLocaleHandle: string;
33
+ key: string;
34
+ }[];
35
+ selectedKey?: string;
36
+ selectedKeys?: string[];
37
+ onClickItem( key: string): void;
38
+ scrollBoxProps: Omit<IScrollBoxProps, "children">;
39
+ dataTestId: string;
40
+ value?: string;
41
+ };
@@ -0,0 +1 @@
1
+ export * from './time-picker.interface';
@@ -0,0 +1,15 @@
1
+ import { IBaseComponentProp } from "../base-component.prop.interface";
2
+ import { ITextFieldProps } from "../text-field";
3
+
4
+ export interface ITimePickerProps extends IBaseComponentProp {
5
+ interval?: number;
6
+ startTime?: string;
7
+ endTime?: string;
8
+ onClickTime(hour: string, minutes: string): void;
9
+ timerPickerValue: string;
10
+ inputProps?: Omit<ITextFieldProps, "value" | "dataTestId">;
11
+ }
12
+
13
+ export interface ITimePickerState {
14
+ isDropDownOpen: boolean;
15
+ }
@@ -0,0 +1,9 @@
1
+ ///<reference types="react" />
2
+ ///<reference types="robbyson-frontend-library" />
3
+
4
+ declare module "styleguide/TimePicker" {
5
+ import { ITimePickerProps } from "robbyson-frontend-library";
6
+ const TimePicker: React.ComponentType<ITimePickerProps<any>>;
7
+
8
+ export default TimePicker;
9
+ }
@@ -0,0 +1 @@
1
+ export * from './tree-date-picker.interface';
@@ -0,0 +1,30 @@
1
+ import { IBaseComponentProp } from "../base-component.prop.interface";
2
+ import { ITextFieldProps } from "../text-field";
3
+
4
+ export interface ITreeDatePickerProps extends IBaseComponentProp {
5
+ onConfirm(params: {
6
+ selectedDate?: Date;
7
+ selectedWeek?: Week;
8
+ selectedMonth?: Date;
9
+ }): void;
10
+ customInputOptions?: Omit<ITextFieldProps, "value">;
11
+ selectedDate: Date | null;
12
+ selectedWeek: Week | null;
13
+ selectedMonth: Date | null;
14
+ }
15
+
16
+ export interface ITreeDatePickerState {
17
+ selectedDate: Date | null;
18
+ selectedWeek: Week | null;
19
+ selectedMonth: Date | null;
20
+ activeTab: TabKey;
21
+ }
22
+
23
+ export type Week = {
24
+ from: Date;
25
+ until: Date;
26
+ };
27
+
28
+ export type Weeks = Week[];
29
+
30
+ type TabKey = "day" | "week" | "monthly";
@@ -0,0 +1,10 @@
1
+ ///<reference types="react" />
2
+ ///<reference types="robbyson-frontend-library" />
3
+
4
+ declare module "styleguide/TreeDatePicker" {
5
+ import { ITreeDatePickerProps } from "robbyson-frontend-library";
6
+
7
+ const TreeDatePicker: React.ComponentType<ITreeDatePickerProps>;
8
+
9
+ export default TreeDatePicker;
10
+ }
@@ -1,7 +1,7 @@
1
1
  export class LayoutDimensions {
2
2
  static width = {
3
- horizontalIpadMini: 1133,
4
- verticalIpadMini: 744,
5
- mobile: 412,
3
+ horizontalIpadMini: 1199,
4
+ verticalIpadMini: 767,
5
+ mobile: 575,
6
6
  }
7
7
  }
@@ -25,12 +25,12 @@ export class RobbysonResponse<T> {
25
25
 
26
26
  export class RobbysonResponseError {
27
27
  public data: ResponseStatusLogMessages[];
28
-
28
+
29
29
  constructor(data?: RobbysonResponse<any>) {
30
- if (data && this.isRobbysonError(data)) this.buildRobbysonError(data)
31
- else this.buildGenericError()
30
+ if (data && this.isRobbysonError(data)) this.buildRobbysonError(data);
31
+ else this.buildGenericError();
32
32
  }
33
-
33
+
34
34
  private buildRobbysonError(data: RobbysonResponse<any>): void {
35
35
  this.data = data.statusLog[0].messages.map((message: any) => {
36
36
  if (typeof message === "string") {
@@ -39,7 +39,7 @@ export class RobbysonResponseError {
39
39
  return message;
40
40
  });
41
41
  }
42
-
42
+
43
43
  private buildGenericError(): void {
44
44
  this.data = [
45
45
  {
@@ -55,24 +55,29 @@ export class RobbysonResponseError {
55
55
  data.statusLog.length &&
56
56
  data.statusLog[0].messages?.length
57
57
  ) {
58
- return true
58
+ return true;
59
59
  }
60
- return false
60
+ return false;
61
61
  }
62
62
  }
63
63
  export class ResponseFactory implements BaseFactory {
64
- private static checkResponseError<T>(response: AxiosResponse<any, any>): void {
64
+ private static checkResponseError<T>(
65
+ response: AxiosResponse<any, any>
66
+ ): void {
65
67
  if (response instanceof Error) throw new RobbysonResponseError();
66
68
 
67
69
  if (
68
70
  response.data.statusLog &&
69
71
  response.data.statusLog.length &&
70
- response.data.statusLog[0].type !== ResponseStatusLogType.SUCCESS_RESPONSE
72
+ response.data.statusLog[0].type !==
73
+ ResponseStatusLogType.SUCCESS_RESPONSE
71
74
  )
72
- throw new RobbysonResponseError(response.data as RobbysonResponse<T>);
75
+ throw new RobbysonResponseError(
76
+ response.data as RobbysonResponse<T>
77
+ );
73
78
  }
74
79
 
75
- public static Create<T>(response: AxiosResponse<any, any>):T {
80
+ public static Create<T>(response: AxiosResponse<any, any>): T {
76
81
  this.checkResponseError<T>(response);
77
82
  return response.data as T;
78
83
  }
package/src/index.ts CHANGED
@@ -9,6 +9,7 @@ export * from "./models/user-mirror.model";
9
9
  export * from "./models/user-session.model";
10
10
  export * from "./models/send-user-to-login.model";
11
11
  export * from "./models/angel-friend-status.model";
12
+ export * from './models/document.model';
12
13
  export * from "./models/guidance-category.model";
13
14
  export * from "./models/guidance.model";
14
15
  export * from "./models/guidance-query.model";
@@ -27,4 +28,7 @@ export * from "./states";
27
28
  export * from "./utils";
28
29
 
29
30
  // Constants
30
- export * from "./constants";
31
+ export * from "./constants";
32
+
33
+ // DTOs
34
+ export * from "./services/dtos";
@@ -0,0 +1,27 @@
1
+ import { BaseRepositoryModel } from "./base.repository.model";
2
+
3
+ export class DocumentModel extends BaseRepositoryModel {
4
+ _id: string;
5
+ identification: string;
6
+ document_id: string;
7
+ documentType: {
8
+ _id: string;
9
+ name: string;
10
+ };
11
+ fileUrl?: string;
12
+ sender: {
13
+ identification: string;
14
+ name: string;
15
+ };
16
+ createdAt?: Date;
17
+ publishedAt?: Date;
18
+ title: string;
19
+ text: string;
20
+ observation?: string;
21
+ viewed?: boolean;
22
+ viewedAt?: Date;
23
+ answered?: boolean;
24
+ answeredAt?: Date;
25
+ accepted?: boolean;
26
+ canceled?: boolean;
27
+ }
@@ -0,0 +1,23 @@
1
+ import { BaseRepositoryModel } from "./base.repository.model";
2
+ import { IconHandle } from "./theme-base";
3
+
4
+ export interface IHumorFrases {
5
+ _id: string,
6
+ texto: string
7
+ }
8
+
9
+ export interface IHumorMotives {
10
+ _id: string;
11
+ descricao: string;
12
+ icone: IconHandle;
13
+ frases: IHumorFrases[];
14
+ feedback: string[];
15
+ }
16
+ export class HumorListModel extends BaseRepositoryModel {
17
+ _id: string;
18
+ descricao: string;
19
+ frases: IHumorFrases[];
20
+ icone: IconHandle;
21
+ motivos: IHumorMotives[];
22
+ __v: number;
23
+ }
@@ -0,0 +1,35 @@
1
+ import { BaseRepositoryModel } from "./base.repository.model";
2
+
3
+ export interface IRegistersHumor {
4
+ tipoHumor: number,
5
+ humor: {
6
+ _id: string,
7
+ descricao: string,
8
+ },
9
+ motivo: {
10
+ descricao: string
11
+ } | {}
12
+ dataHoraCriacao: Date,
13
+ }
14
+
15
+ export class HumorRegisterModel extends BaseRepositoryModel {
16
+ _id: string;
17
+ registros: IRegistersHumor[];
18
+ tz: string;
19
+ }
20
+
21
+ export class HumorRegisterResponseModel extends BaseRepositoryModel {
22
+ _id?:string;
23
+ n: number;
24
+ nModified: number;
25
+ ok:number
26
+ }
27
+ export class HumorLastModel extends BaseRepositoryModel {
28
+ _id: string;
29
+ identification: string;
30
+ registros: IRegistersHumor[];
31
+ __v: number;
32
+ }
33
+
34
+
35
+
@@ -5,6 +5,9 @@ export * from "./result-level.model";
5
5
  export * from "./angel-friend-status.model";
6
6
  export * from "./send-user-to-login.model";
7
7
  export * from "./term-of-use.model";
8
+ export * from "./humor-list.model";
9
+ export * from "./humor-register.model";
10
+ export * from "./document.model"
8
11
  export * from "./guidance-category.model";
9
12
  export * from "./guidance-query.model";
10
13
  export * from "./guidance.model";
@@ -125,9 +125,14 @@ export class ThemeBase {
125
125
  typography: {
126
126
  h1: ThemeTypography,
127
127
  h2: ThemeTypography,
128
+ h2Medium: ThemeTypography,
129
+ mobh2Medium: ThemeTypography,
128
130
  h3: ThemeTypography,
131
+ mobh3Medium: ThemeTypography,
129
132
  h4: ThemeTypography,
133
+ mobh4Medium: ThemeTypography,
130
134
  h5: ThemeTypography,
135
+ mobh5Medium: ThemeTypography,
131
136
  h6: ThemeTypography,
132
137
  subtitle1: ThemeTypography,
133
138
  subtitle2: ThemeTypography,
@@ -152,6 +157,10 @@ export class ThemeBase {
152
157
  logoCompleteNegative: ThemeAssets;
153
158
  logoIconNegative: ThemeAssets;
154
159
  backgroundLogo: ThemeAssets;
160
+ humorAvatar: ThemeAssets,
161
+ humorImGoodCircle: ThemeAssets,
162
+ humorImTopCircle: ThemeAssets,
163
+ humorImbadCircle: ThemeAssets,
155
164
  logoMobile: ThemeAssets;
156
165
  loginRobbysonAvatar: ThemeAssets;
157
166
  };
@@ -166,6 +175,10 @@ export class ThemeBase {
166
175
  logoCompleteNegative: new ThemeAssets(),
167
176
  logoIconNegative: new ThemeAssets(),
168
177
  backgroundLogo: new ThemeAssets(),
178
+ humorAvatar: new ThemeAssets(),
179
+ humorImGoodCircle: new ThemeAssets(),
180
+ humorImTopCircle: new ThemeAssets(),
181
+ humorImbadCircle: new ThemeAssets(),
169
182
  logoMobile: new ThemeAssets(),
170
183
  loginRobbysonAvatar: new ThemeAssets(),
171
184
  };
@@ -0,0 +1,17 @@
1
+ import { DocumentModel } from "../models";
2
+
3
+ export interface IDocumentRepository {
4
+ getUnansweredDocuments(): Promise<{
5
+ items: Array<DocumentModel>;
6
+ numTotalItems: number;
7
+ }>;
8
+ updateDocument(
9
+ id: string,
10
+ data: {
11
+ answered?: boolean;
12
+ accepted?: boolean;
13
+ observation?: string;
14
+ viewed?: boolean;
15
+ }
16
+ ): Promise<void>;
17
+ }
@@ -0,0 +1,10 @@
1
+ import { HumorLastModel, HumorListModel, HumorRegisterModel, HumorRegisterResponseModel } from "../models";
2
+
3
+ export interface IHumorRepository {
4
+ getLastHumor(id : number): Promise<HumorLastModel[]>;
5
+ getListHumor(): Promise<HumorListModel[]>;
6
+ registerHumor({ humor }: {
7
+ humor: HumorRegisterModel;
8
+ }): Promise<HumorRegisterResponseModel>;
9
+ answeredHumorToday(id: number, timezone: string): Promise<boolean>;
10
+ }
@@ -5,4 +5,6 @@ export * from './results.repository.interface';
5
5
  export * from './angel-friend.repository.interface';
6
6
  export * from './user.repository.interface';
7
7
  export * from "./terms-of-use.repository.interface";
8
- export * from "./guidance.repository.interface";
8
+ export * from "./guidance.repository.interface";
9
+ export * from "./humor.repository.interface";
10
+ export * from "./document.repository.interface";
@@ -0,0 +1,20 @@
1
+ import { DocumentModel } from "../models";
2
+
3
+ export interface IDocumentService {
4
+ getUnansweredDocuments(): Promise<{
5
+ items: Array<DocumentModel>;
6
+ numTotalItems: number;
7
+ }>;
8
+ updateDocument(
9
+ id: string,
10
+ data: {
11
+ answered?: boolean;
12
+ accepted?: boolean;
13
+ observation?: string;
14
+ viewed?: boolean;
15
+ }
16
+ ): Promise<void>;
17
+
18
+ setDocumentsToAnswer(data: boolean): void;
19
+ hasDocumentsToAnswer(): boolean | undefined;
20
+ }
@@ -0,0 +1,12 @@
1
+ import { HumorLastModel, HumorListModel, HumorRegisterModel } from "../models";
2
+
3
+ export interface IHumorService {
4
+ getLastHumor(id : number): Promise<HumorLastModel[]>;
5
+ getLastHumorUser(): HumorLastModel[] | undefined;
6
+ hasRegisterHumor(): boolean | undefined;
7
+ getListHumor(): Promise<HumorListModel[]>;
8
+ registerHumor({ humor }: {
9
+ humor: HumorRegisterModel;
10
+ }): Promise<boolean>;
11
+ answeredHumorToday(id: number, timezone: string): Promise<boolean>;
12
+ }
@@ -5,6 +5,8 @@ export * from "./results.service.interface";
5
5
  export * from "./angel-friend.service.interface";
6
6
  export * from "./user.service.interface";
7
7
  export * from "./terms-of-use.service.interface";
8
+ export * from "./humor.service.interface";
9
+ export * from "./document.service.interface";
8
10
  export * from "./guidance.service.interface";
9
11
  export * from "./validations.service.interface";
10
12
  export * from "./dtos";
@@ -1,8 +1,9 @@
1
- import { IconHandle } from "../models";
1
+ import { IconHandle, ThemeBase } from "../models";
2
2
 
3
3
  export interface IThemeService {
4
4
  setApplicationTheme(contractorId?: number): Promise<Boolean>;
5
5
  getIconAssetUrl(iconHandle: IconHandle): string;
6
6
  getIconsList(): readonly IconHandle[];
7
7
  getIconsPath(): string;
8
+ getApplicationTheme(): ThemeBase| undefined;
8
9
  }
@@ -1,5 +1,7 @@
1
1
  import { UserSessionModel } from "../models";
2
2
 
3
3
  export interface IValidationsService {
4
- checkTermsOfUse(userSession: UserSessionModel | undefined): void;
4
+ checkTermsOfUse(userSession: UserSessionModel | undefined): boolean;
5
+ checkHumor(): Promise<void>;
6
+ checkDocuments(userSession: UserSessionModel | undefined): Promise<boolean>;
5
7
  }
@@ -1,15 +1,22 @@
1
- import { ThemeBase, UserSessionModel } from "../../models";
2
- import { BrowserHistory } from "history";
1
+ import { HumorLastModel, HumorListModel, ThemeBase, UserSessionModel } from "../../models";
2
+ import { BrowserHistory } from "history"
3
3
 
4
4
  export interface IRootApp {
5
5
  userSession?: UserSessionModel,
6
6
  angelFriendData?: any,
7
7
  ipWhiteList: boolean,
8
+ isTabletOrMobile: boolean,
8
9
  currentLocale?: any,
9
10
  currentTheme: ThemeBase,
10
11
  apisUrls: {
11
12
  private: string
12
13
  },
14
+ hasDocumentsToAnswer: boolean | undefined,
13
15
  history: BrowserHistory,
16
+ humor?: {
17
+ listHumor : HumorListModel[],
18
+ lastHumor : HumorLastModel[],
19
+ hasRegisterMood: boolean,
20
+ }
14
21
  createGlobalImplementations: () => void,
15
22
  }
@@ -0,0 +1,35 @@
1
+ import _ from "lodash";
2
+ import moment from "moment";
3
+
4
+ export class DateUtils {
5
+ static isSameDateAsNow(date: Date): boolean {
6
+ return moment(date).isSame(moment(new Date()), "day");
7
+ }
8
+
9
+ static isPastDateAsNow(date: Date): boolean {
10
+ return moment(date).isBefore(moment(new Date()));
11
+ }
12
+
13
+ static getDateBetweenDates(start: Date, end: Date): Date[] {
14
+ const clonedStart = _.cloneDeep(start);
15
+
16
+ if (
17
+ !start ||
18
+ !end ||
19
+ !(start instanceof Date) ||
20
+ !(end instanceof Date)
21
+ ) {
22
+ throw new Error("Invalid date");
23
+ }
24
+
25
+ const dates = [];
26
+ let currentDate = clonedStart;
27
+
28
+ while (currentDate <= end) {
29
+ dates.push(new Date(currentDate));
30
+ currentDate.setDate(currentDate.getDate() + 1);
31
+ }
32
+
33
+ return dates;
34
+ }
35
+ }
@@ -2,4 +2,5 @@ export * from './build-error/buildError.util.interface';
2
2
  export * from './build-error/buildError.util';
3
3
  export * from './query-params'
4
4
  export * from './cache-control'
5
- export * from "./robbyson-navigate";
5
+ export * from "./robbyson-navigate";
6
+ export * from "./layout.utils";
@@ -0,0 +1,7 @@
1
+ import { LayoutDimensions } from "../constants";
2
+
3
+ export class LayoutUtils {
4
+ static isMobile(): boolean {
5
+ return window.innerWidth <= LayoutDimensions.width.horizontalIpadMini;
6
+ }
7
+ }
package/tsconfig.json CHANGED
@@ -21,7 +21,10 @@
21
21
  "noEmit": false,
22
22
  "strictPropertyInitialization": false,
23
23
  "outDir": "./dist",
24
- "jsx": "react"
24
+ "jsx": "react",
25
+ "paths": {
26
+ "react": ["./node_modules/@types/react"]
27
+ }
25
28
  },
26
29
  "include": [
27
30
  "src",
@@ -1 +0,0 @@
1
- export * from './mobile-filter.interface';
@@ -1,9 +0,0 @@
1
- ///<reference types="react" />
2
- ///<reference types="robbyson-frontend-library" />
3
-
4
- declare module "styleguide/MobileFilter" {
5
- import { IMobileFilterProps } from "robbyson-frontend-library";
6
- const MobileFilter: React.ComponentType<IMobileFilterProps>;
7
-
8
- export default MobileFilter;
9
- }