robbyson-frontend-library 0.0.1-rc1 → 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 (151) hide show
  1. package/dist/components/drawer/drawer.interface.js +1 -0
  2. package/dist/components/filter/filter.interface.js +1 -0
  3. package/dist/components/header-context-menu/header-context-menu.interface.js +1 -0
  4. package/dist/components/loading/loading.interface.js +1 -0
  5. package/dist/components/overlay/overlay.interface.js +1 -0
  6. package/dist/components/pages/base-app-page.component.js +20 -5
  7. package/dist/components/pages/base-app-page.styles.js +14 -5
  8. package/dist/components/pdf-viewer/pdf-viewer.interface.js +1 -0
  9. package/dist/components/range-date-picker/range-date-picker.interface.js +1 -0
  10. package/dist/components/sort/sort.interface.js +1 -0
  11. package/dist/components/tab/tab.interface.js +1 -0
  12. package/dist/components/terms-of-use/terms-of-use.interface.js +1 -0
  13. package/dist/components/time-picker/time-picker.interface.js +1 -0
  14. package/dist/components/tree-date-picker/tree-date-picker.interface.js +1 -0
  15. package/dist/constants/layout-dimensions.constants.js +4 -3
  16. package/dist/factories/index.js +1 -0
  17. package/dist/factories/query-params.factory.js +52 -0
  18. package/dist/factories/response.factory.js +3 -2
  19. package/dist/index.js +7 -0
  20. package/dist/models/document.model.js +24 -0
  21. package/dist/models/guidance-category.model.js +24 -0
  22. package/dist/models/guidance-query.model.js +24 -0
  23. package/dist/models/guidance.model.js +40 -0
  24. package/dist/models/http-response.model.js +11 -0
  25. package/dist/models/humor-list.model.js +24 -0
  26. package/dist/models/humor-register.model.js +40 -0
  27. package/dist/models/theme-base.js +4 -0
  28. package/dist/repositories/base.repository.js +9 -0
  29. package/dist/repositories/document.repository.interface.js +1 -0
  30. package/dist/repositories/guidance.repository.interface.js +1 -0
  31. package/dist/repositories/humor.repository.interface.js +1 -0
  32. package/dist/services/document.service.interface.js +1 -0
  33. package/dist/services/dtos/example.dto.js +1 -0
  34. package/dist/services/dtos/index.js +1 -0
  35. package/dist/services/guidance.service.interface.js +1 -0
  36. package/dist/services/humor.service.interface.js +1 -0
  37. package/dist/services/validations.service.interface.js +1 -0
  38. package/dist/utils/build-error/buildError.util.js +1 -1
  39. package/dist/utils/date.utils.js +30 -0
  40. package/dist/utils/index.js +1 -0
  41. package/dist/utils/layout.utils.js +10 -0
  42. package/dist/utils/robbyson-navigate.js +34 -1
  43. package/index.d.ts +18 -5
  44. package/package.json +7 -5
  45. package/src/components/accordion/accordion.interface.ts +2 -1
  46. package/src/components/badge/badge.interface.ts +3 -2
  47. package/src/components/balloon/balloon.interface.ts +2 -2
  48. package/src/components/base-component.prop.interface.ts +2 -0
  49. package/src/components/{base-page.prop.interface.tsx → base-page.prop.interface.ts} +1 -2
  50. package/src/components/basic-button/{basic-button.interface.tsx → basic-button.interface.ts} +4 -1
  51. package/src/components/date-picker/date-picker.interface.ts +13 -0
  52. package/src/components/date-picker/date-picker.types.d.ts +10 -0
  53. package/src/components/date-picker/index.d.ts +1 -0
  54. package/src/components/drawer/drawer.interface.ts +10 -0
  55. package/src/components/drawer/drawer.types.d.ts +10 -0
  56. package/src/components/drawer/index.d.ts +1 -0
  57. package/src/components/filter/basic-button.types.d.ts +9 -0
  58. package/src/components/filter/filter.interface.tsx +61 -0
  59. package/src/components/filter/index.d.ts +1 -0
  60. package/src/components/header-context-menu/header-context-menu.interface.ts +13 -0
  61. package/src/components/header-context-menu/header-context-menu.types.d.ts +9 -0
  62. package/src/components/header-context-menu/index.d.ts +1 -0
  63. package/src/components/loading/index.d.ts +1 -0
  64. package/src/components/loading/loading.interface.ts +10 -0
  65. package/src/components/loading/loading.types.d.ts +9 -0
  66. package/src/components/{menu.interface.tsx → menu.interface.ts} +6 -0
  67. package/src/components/modal/modal.interface.ts +19 -9
  68. package/src/components/mood-button/mood-button.interface.ts +2 -2
  69. package/src/components/overlay/index.d.ts +1 -0
  70. package/src/components/overlay/overlay.interface.ts +7 -0
  71. package/src/components/overlay/overlay.types.d.ts +9 -0
  72. package/src/components/pages/base-app-page.component.tsx +15 -13
  73. package/src/components/pages/base-app-page.styles.ts +53 -7
  74. package/src/components/pagination/pagination.interface.ts +2 -2
  75. package/src/components/pdf-viewer/index.d.ts +1 -0
  76. package/src/components/pdf-viewer/pdf-viewer.interface.ts +5 -0
  77. package/src/components/pdf-viewer/pdf-viewer.types.d.ts +10 -0
  78. package/src/components/range-date-picker/index.d.ts +1 -0
  79. package/src/components/range-date-picker/range-date-picker.interface.ts +16 -0
  80. package/src/components/range-date-picker/range-date-picker.types.d.ts +10 -0
  81. package/src/components/scroll-box/scroll-box.interface.ts +2 -1
  82. package/src/components/sidebar/sidebar.interface.ts +13 -9
  83. package/src/components/sort/index.d.ts +1 -0
  84. package/src/components/sort/sort.interface.ts +28 -0
  85. package/src/components/sort/sort.types.d.ts +9 -0
  86. package/src/components/tab/index.d.ts +1 -0
  87. package/src/components/tab/tab.interface.ts +16 -0
  88. package/src/components/tab/tab.types.d.ts +9 -0
  89. package/src/components/tags/tags.interface.ts +2 -1
  90. package/src/components/terms-of-use/index.d.ts +1 -0
  91. package/src/components/terms-of-use/terms-of-use.interface.tsx +13 -0
  92. package/src/components/terms-of-use/terms-of-use.types.d.ts +11 -0
  93. package/src/components/text-field/text-field.interface.ts +41 -0
  94. package/src/components/time-picker/index.d.ts +1 -0
  95. package/src/components/time-picker/time-picker.interface.ts +15 -0
  96. package/src/components/time-picker/time-picker.types.d.ts +9 -0
  97. package/src/components/toggle-icon-button/toggle-icon-button.interface.ts +1 -1
  98. package/src/components/tree-date-picker/index.d.ts +1 -0
  99. package/src/components/tree-date-picker/tree-date-picker.interface.ts +30 -0
  100. package/src/components/tree-date-picker/tree-date-picker.types.d.ts +10 -0
  101. package/src/constants/layout-dimensions.constants.ts +4 -3
  102. package/src/factories/index.ts +2 -1
  103. package/src/factories/query-params.factory.ts +82 -0
  104. package/src/factories/response.factory.ts +17 -12
  105. package/src/index.ts +9 -1
  106. package/src/models/document.model.ts +27 -0
  107. package/src/models/guidance-category.model.ts +8 -0
  108. package/src/models/guidance-query.model.ts +11 -0
  109. package/src/models/guidance.model.ts +58 -0
  110. package/src/models/http-response.model.ts +14 -0
  111. package/src/models/humor-list.model.ts +23 -0
  112. package/src/models/humor-register.model.ts +35 -0
  113. package/src/models/index.d.ts +7 -0
  114. package/src/models/theme-base.ts +16 -1
  115. package/src/repositories/{base.repository.tsx → base.repository.ts} +11 -0
  116. package/src/repositories/document.repository.interface.ts +17 -0
  117. package/src/repositories/guidance.repository.interface.ts +11 -0
  118. package/src/repositories/humor.repository.interface.ts +10 -0
  119. package/src/repositories/index.d.ts +4 -1
  120. package/src/services/authentication.service.interface.ts +2 -0
  121. package/src/services/document.service.interface.ts +20 -0
  122. package/src/services/dtos/example.dto.ts +1 -0
  123. package/src/services/dtos/index.ts +1 -0
  124. package/src/services/guidance.service.interface.ts +27 -0
  125. package/src/services/humor.service.interface.ts +12 -0
  126. package/src/services/index.d.ts +5 -0
  127. package/src/services/theme.service.interface.ts +2 -1
  128. package/src/services/validations.service.interface.ts +7 -0
  129. package/src/states/main-container/root-app.state.interface.ts +8 -1
  130. package/src/utils/build-error/buildError.util.ts +1 -1
  131. package/src/utils/date.utils.ts +35 -0
  132. package/src/utils/index.ts +2 -1
  133. package/src/utils/layout.utils.ts +7 -0
  134. package/src/utils/robbyson-navigate.ts +45 -2
  135. package/tsconfig.json +4 -1
  136. package/src/components/base-component.prop.interface.tsx +0 -4
  137. package/src/components/snackbar/index.d.ts +0 -1
  138. package/src/components/snackbar/snackbar.interface.ts +0 -16
  139. package/src/components/snackbar/snackbar.types.d.ts +0 -9
  140. package/src/components/text-field/text-field.interface.tsx +0 -27
  141. /package/dist/components/{snackbar/snackbar.interface.js → date-picker/date-picker.interface.js} +0 -0
  142. /package/src/components/assets/{assets.interfaces.tsx → assets.interfaces.ts} +0 -0
  143. /package/src/components/{base-test.prop.interface.tsx → base-test.prop.interface.ts} +0 -0
  144. /package/src/components/colors/{colors.interfaces.tsx → colors.interfaces.ts} +0 -0
  145. /package/src/components/divider/{divider.interface.tsx → divider.interface.ts} +0 -0
  146. /package/src/components/{index.tsx → index.ts} +0 -0
  147. /package/src/components/progress-bar/{progress-bar.interface.tsx → progress-bar.interface.ts} +0 -0
  148. /package/src/components/progress-tracker/{progress-tracker.interface.tsx → progress-tracker.interface.ts} +0 -0
  149. /package/src/components/select/{select.interface.tsx → select.interface.ts} +0 -0
  150. /package/src/components/typography/{typography.interfaces.tsx → typography.interfaces.ts} +0 -0
  151. /package/src/components/upload/{upload.interface.tsx → upload.interface.ts} +0 -0
package/index.d.ts CHANGED
@@ -3,7 +3,7 @@ export * from "./src/models";
3
3
  export * from "./src/factories";
4
4
  export * from "./src/repositories/";
5
5
  export * from "./src/services/";
6
- export * from "./src/utils"
6
+ export * from "./src/utils";
7
7
  export * from "./src/constants";
8
8
  export * from "./src/components/";
9
9
  export * from "./src/components/assets";
@@ -11,17 +11,16 @@ export * from "./src/components/badge";
11
11
  export * from "./src/components/basic-button";
12
12
  export * from "./src/components/colors";
13
13
  export * from "./src/components/checkbox";
14
- export * from "./src/components/divider"
14
+ export * from "./src/components/divider";
15
15
  export * from "./src/components/context-menu";
16
- export * from "./src/components/speed-dial"
16
+ export * from "./src/components/speed-dial";
17
17
  export * from "./src/components/icon-button";
18
18
  export * from "./src/components/mood-button";
19
19
  export * from "./src/components/profile-image";
20
- export * from "./src/components/progress-bar"
20
+ export * from "./src/components/progress-bar";
21
21
  export * from "./src/components/progress-tracker";
22
22
  export * from "./src/components/radio-button";
23
23
  export * from "./src/components/search-input";
24
- export * from "./src/components/snackbar";
25
24
  export * from "./src/components/spin-edit";
26
25
  export * from "./src/components/switch";
27
26
  export * from "./src/components/tag-expand";
@@ -32,6 +31,7 @@ export * from "./src/components/typography";
32
31
  export * from "./src/components/tags";
33
32
  export * from "./src/components/timer";
34
33
  export * from "./src/components/sidebar";
34
+ export * from "./src/components/toggle-icon-button";
35
35
  export * from "./src/components/scroll-box";
36
36
  export * from "./src/components/select";
37
37
  export * from "./src/components/accordion";
@@ -40,4 +40,17 @@ export * from "./src/components/modal";
40
40
  export * from "./src/components/pagination";
41
41
  export * from "./src/components/upload";
42
42
  export * from "./src/components/balloon";
43
+ export * from "./src/components/pdf-viewer";
43
44
  export * from "./src/components/toggle-icon-button";
45
+ export * from "./src/components/terms-of-use";
46
+ export * from "./src/components/overlay";
47
+ export * from "./src/components/header-context-menu";
48
+ export * from "./src/components/sort";
49
+ export * from "./src/components/drawer";
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";
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-rc1",
3
+ "version": "0.0.1-rc11",
4
4
  "description": "Robbyson frontend Library",
5
5
  "main": "./dist/index.js",
6
6
  "license": "MIT",
@@ -19,8 +19,8 @@
19
19
  "devDependencies": {
20
20
  "@types/axios": "^0.14.0",
21
21
  "@types/crypto-js": "^4.1.1",
22
- "@types/history": "^5.0.0",
23
- "@types/react": "^18.0.27",
22
+ "@types/lodash": "^4.14.199",
23
+ "@types/react": "~18.0.24",
24
24
  "@types/styled-components": "^5.1.26",
25
25
  "styled-components": "^5.3.9",
26
26
  "typescript": "^4.9.5"
@@ -28,13 +28,15 @@
28
28
  "dependencies": {
29
29
  "axios": "^1.3.5",
30
30
  "crypto-js": "^4.1.1",
31
+ "history": "^5.3.0",
31
32
  "localforage": "^1.10.0",
33
+ "lodash": "^4.17.21",
32
34
  "moment": "^2.29.4",
35
+ "query-string": "^8.1.0",
33
36
  "react": "^18.2.0",
34
37
  "react-inlinesvg": "^3.0.2",
35
- "query-string": "^8.1.0",
36
38
  "react-toastify": "^9.1.2",
37
39
  "redux-micro-frontend": "^1.3.0",
38
40
  "redux-persist": "^6.0.0"
39
41
  }
40
- }
42
+ }
@@ -20,7 +20,8 @@ export interface IOptionsAccordion {
20
20
  }
21
21
 
22
22
  export interface IOptionsContentAccordion {
23
- text: string;
23
+ text?: string;
24
+ html?: React.ReactNode;
24
25
  checked?: boolean;
25
26
  isCheck?: boolean;
26
27
  }
@@ -1,11 +1,12 @@
1
+ import React from "react";
1
2
  import { IconHandle } from "../../models";
2
3
  import { IBaseComponentProp } from "../base-component.prop.interface";
3
4
 
4
- export interface IBadgeProps extends IBaseComponentProp {
5
+ export interface IBadgeProps extends IBaseComponentProp, React.HTMLAttributes<any> {
5
6
  value?: number;
6
7
  type: 'icon' | 'number';
7
8
  size: 'small' | 'normal'
8
9
  iconHandle?: IconHandle;
9
10
  onUpdate?(value:number):void;
10
11
  color?: string;
11
- }
12
+ }
@@ -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
  }
@@ -0,0 +1,2 @@
1
+ import { IBaseTestProp } from "./base-test.prop.interface";
2
+ export interface IBaseComponentProp extends IBaseTestProp { }
@@ -1,4 +1,3 @@
1
1
  import { IBaseTestProp } from "./base-test.prop.interface";
2
2
 
3
- export interface IBasePageProp extends IBaseTestProp{
4
- }
3
+ export interface IBasePageProp extends IBaseTestProp{ }
@@ -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"
@@ -0,0 +1,10 @@
1
+ import { IBaseComponentProp } from "../base-component.prop.interface";
2
+
3
+ export interface IDrawerProps extends IBaseComponentProp {
4
+ showOverlay: boolean;
5
+ onClick(): void;
6
+ scrollBoxHeight: string;
7
+ children: React.ReactNode;
8
+ overlayZindex?: string;
9
+ titleLocaleHandle?: string;
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';
@@ -0,0 +1,9 @@
1
+ ///<reference types="react" />
2
+ ///<reference types="robbyson-frontend-library" />
3
+
4
+ declare module 'styleguide/Filter' {
5
+ import { IFilterProps } from "robbyson-frontend-library";
6
+ const Filter: React.ComponentType<IFilterProps>;
7
+
8
+ export default Filter;
9
+ }
@@ -0,0 +1,61 @@
1
+ import { IconHandle } from "../../models";
2
+ import { IBaseComponentProp } from "../base-component.prop.interface";
3
+
4
+ export interface IFilterState {
5
+ filters: Array<
6
+ IFilter & {
7
+ searchCategories?: Array<string | undefined>;
8
+ showCategoryFilter?: boolean;
9
+ }
10
+ >;
11
+ width: number;
12
+ changedFilters: Array<
13
+ | {
14
+ id: number;
15
+ variant: IFilter["variant"];
16
+ option: IOption;
17
+ }
18
+ | undefined
19
+ >;
20
+ searchingFilter: number | undefined;
21
+ filterReturn: IFilterReturn;
22
+ openFilter: number | undefined;
23
+ oldFilters: Array<IFilter>
24
+ }
25
+
26
+ export interface IFilterProps extends IBaseComponentProp {
27
+ filters: Array<IFilter>;
28
+ type: "default" | "sidebar";
29
+ showMobileOrSideBar: boolean;
30
+ subtitle?: string;
31
+ onFilter(filter: {}): void;
32
+ onClose?(): void;
33
+ debounceTime?: number;
34
+ }
35
+
36
+ export interface IFilter {
37
+ title: string;
38
+ variant: "radio" | "checkbox";
39
+ id: number;
40
+ options: Array<IOption>;
41
+ searchInput?: boolean;
42
+ searchInputValue?: string;
43
+ }
44
+
45
+ export interface IOption {
46
+ name: string;
47
+ value: string | number;
48
+ hasChildren?: boolean;
49
+ iconHandle?: IconHandle;
50
+ checked?: boolean;
51
+ category?: string;
52
+ bagdeValue?: number;
53
+ }
54
+
55
+ export interface IFilterReturn {
56
+ [key: string]: any;
57
+ }
58
+
59
+ export type IOptionsByCategories = Array<
60
+ { category: string; options: [IOption & { realIndex: number }] } | undefined
61
+ >;
@@ -0,0 +1 @@
1
+ export * from './filter.interface';
@@ -0,0 +1,13 @@
1
+ import { IBaseComponentProp } from "../base-component.prop.interface";
2
+
3
+ export interface IHeaderContextMenuProps extends IBaseComponentProp {
4
+ onClick?(buttonName: string | undefined): void;
5
+ buttons: Array<IHeaderContextMenuButtons>;
6
+ activeButton?: IHeaderContextMenuButtons;
7
+ }
8
+
9
+ export interface IHeaderContextMenuState {
10
+ activeButton: undefined | IHeaderContextMenuButtons;
11
+ }
12
+
13
+ export type IHeaderContextMenuButtons = "notification" | "quiz" | "informative" | "chat" | "guidance_all" | "guidance_favorites";
@@ -0,0 +1,9 @@
1
+ ///<reference types="react" />
2
+ ///<reference types="robbyson-frontend-library" />
3
+
4
+ declare module 'styleguide/HeaderContextMenu' {
5
+ import { IHeaderContextMenuProps } from "robbyson-frontend-library";
6
+ const HeaderContextMenu: React.ComponentType<IHeaderContextMenuProps>;
7
+
8
+ export default HeaderContextMenu;
9
+ }
@@ -0,0 +1 @@
1
+ export * from './header-context-menu.interface';
@@ -0,0 +1 @@
1
+ export * from './loading.interface';
@@ -0,0 +1,10 @@
1
+ import { IBaseComponentProp } from "../base-component.prop.interface";
2
+
3
+ export interface ILoadingProps extends IBaseComponentProp {
4
+ isLoading: boolean;
5
+ overlayZindex?: string;
6
+ }
7
+
8
+ export interface ILoadingState {
9
+ activeIndex: number;
10
+ }
@@ -0,0 +1,9 @@
1
+ ///<reference types="react" />
2
+ ///<reference types="robbyson-frontend-library" />
3
+
4
+ declare module "styleguide/Loader" {
5
+ import { ILoaderProps } from "robbyson-frontend-library";
6
+ const Loader: React.ComponentType<ILoaderProps>;
7
+
8
+ export default Loader;
9
+ }
@@ -3,8 +3,14 @@ export type MenuItem = {
3
3
  iconHandle: string,
4
4
  linkTo: string,
5
5
  disabled?: boolean
6
+ matchPath?: string;
6
7
  }
7
8
 
8
9
  export interface IMenuProps {
9
10
  items: MenuItem[]
11
+ }
12
+
13
+ export interface IMenuState {
14
+ expanded: boolean,
15
+ location: string,
10
16
  }
@@ -1,20 +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
- titleHandleLocale: string;
18
- actionButtons?: ActionButton[];
19
- exitOnOverlay?: boolean;
27
+ export interface IModalActions extends IBaseComponentProp {
28
+ actionButtons?: ActionButton[];
29
+ className?: string;
20
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
  }
@@ -0,0 +1 @@
1
+ export * from './overlay.interface';
@@ -0,0 +1,7 @@
1
+ import { IBaseComponentProp } from "../base-component.prop.interface";
2
+
3
+ export interface IOverlayProps<T> extends React.HTMLAttributes<T>, IBaseComponentProp {
4
+ children: React.ReactNode;
5
+ show: boolean;
6
+ zIndex?: string;
7
+ }
@@ -0,0 +1,9 @@
1
+ ///<reference types="react" />
2
+ ///<reference types="robbyson-frontend-library" />
3
+
4
+ declare module "styleguide/Overlay" {
5
+ import { IOverlayProps } from "robbyson-frontend-library";
6
+ const Overlay: React.ComponentType<IOverlayProps<any>>;
7
+
8
+ export default Overlay;
9
+ }
@@ -1,11 +1,9 @@
1
1
  import React from "react";
2
2
  import { IoC } from "../../ioc";
3
3
  import {
4
- IAuthenticationService,
5
4
  ILocaleService,
6
- IThemeService,
5
+ IThemeService
7
6
  } from "../../services";
8
- import SVG from "react-inlinesvg";
9
7
 
10
8
  import {
11
9
  PageContainer,
@@ -13,45 +11,49 @@ import {
13
11
  Title,
14
12
  ContextMenu,
15
13
  Content,
14
+ LeftArrowLarge,
15
+ Block,
16
16
  } from "./base-app-page.styles";
17
17
  import { RobbysonNavigate } from "../../utils";
18
+ import { QueryParamsFactory } from "../../factories/query-params.factory";
18
19
 
19
20
  export abstract class BaseAppPage<T, T1> extends React.Component<T, T1> {
20
21
  protected headerLocale: string = "Header Locale";
21
-
22
+ protected abstract paramsValidValues: {};
23
+ protected abstract paramsDefaultValues: {};
22
24
  protected _localeService: ILocaleService;
23
- protected _authenticationService: IAuthenticationService;
24
25
  protected _themeService: IThemeService;
25
26
 
26
27
  constructor(props: T) {
27
28
  super(props);
28
29
  this.translate = this.translate.bind(this);
29
30
  this._localeService = IoC.GetInstance<ILocaleService>("LocaleService");
30
- this._authenticationService = IoC.GetInstance<IAuthenticationService>(
31
- "AuthenticationService"
32
- );
33
31
  this._themeService = IoC.GetInstance<IThemeService>("ThemeService");
34
32
  }
35
33
 
36
- public translate(text?: string): string {
37
- return this._localeService.getLocaleByHandle(text || "");
34
+ public translate(text?: string, ...args: string[]): string {
35
+ return this._localeService.getLocaleByHandle(text || "", ...args);
38
36
  }
39
37
 
40
- abstract contextMenu(): React.ReactNode;
38
+ abstract contextMenu(): React.ReactNode;
41
39
 
42
- abstract renderPage(): React.ReactNode;
40
+ abstract renderPage(): React.ReactNode;
43
41
 
44
42
  public render() {
43
+ QueryParamsFactory.validate(this.paramsValidValues, this.paramsDefaultValues)
45
44
  return (
46
45
  <PageContainer>
47
46
  <Header>
48
47
  <div>
49
- <SVG
48
+ <LeftArrowLarge
50
49
  src={this._themeService.getIconAssetUrl(
51
50
  "left-arrow-large"
52
51
  )}
53
52
  onClick={() => RobbysonNavigate.back()}
54
53
  />
54
+
55
+ <Block />
56
+
55
57
  <Title>{this.translate(this.headerLocale)}</Title>
56
58
  </div>
57
59
  <ContextMenu className="body-2-book">
@@ -1,20 +1,20 @@
1
1
  import { LayoutDimensions } from "../../constants";
2
2
  import styled from "styled-components";
3
+ import SVG from "react-inlinesvg";
3
4
 
4
5
  const SIDEBAR_WIDTH = 72;
5
6
 
6
7
  export const PageContainer = styled.div`
7
8
  padding: 32px 55px 47px calc(${SIDEBAR_WIDTH}px + 55px);
8
9
 
9
- background: var(--solid-background);
10
10
  height: 100%;
11
11
 
12
- @media (max-width: ${LayoutDimensions._width.ipadMini}px) {
13
- padding: 32px 24px 24px calc(${SIDEBAR_WIDTH}px + 24px);
12
+ @media (max-width: ${LayoutDimensions.width.horizontalIpadMini}px) {
13
+ padding: 32px 24px;
14
14
  }
15
15
 
16
- @media (max-width: ${LayoutDimensions._width.mobile}px) {
17
- padding: 24px 16px 16px calc(${SIDEBAR_WIDTH}px + 16px);
16
+ @media (max-width: ${LayoutDimensions.width.mobile}px) {
17
+ padding: 24px 16px;
18
18
  }
19
19
  `;
20
20
 
@@ -26,6 +26,11 @@ export const Header = styled.div`
26
26
  padding-bottom: 8px;
27
27
  gap: 16px !important;
28
28
 
29
+ @media (max-width: ${LayoutDimensions.width.horizontalIpadMini}px) {
30
+ flex-direction: column !important;
31
+ align-items: flex-start !important;
32
+ }
33
+
29
34
  & > div {
30
35
  display: flex;
31
36
  align-items: center;
@@ -36,10 +41,51 @@ export const Header = styled.div`
36
41
  }
37
42
  `;
38
43
 
39
- export const ContextMenu = styled.div``;
44
+ export const ContextMenu = styled.div`
45
+ -ms-overflow-style: none;
46
+ scrollbar-width: none;
47
+ overflow-y: scroll;
48
+ &::-webkit-scrollbar {
49
+ display: none;
50
+ }
51
+ @media (max-width: ${LayoutDimensions.width.horizontalIpadMini}px) {
52
+ width: 100%;
53
+ }
54
+ `;
40
55
 
41
56
  export const Title = styled.h4`
42
57
  margin-left: 12px;
43
58
  `;
44
59
 
45
- 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
+ `;
74
+
75
+ export const LeftArrowLarge = styled(SVG)`
76
+ display: none;
77
+
78
+ @media (min-width: ${LayoutDimensions.width.horizontalIpadMini + 1}px) {
79
+ display: block;
80
+ }
81
+ `;
82
+
83
+ export const Block = styled.div`
84
+ display: none;
85
+
86
+ @media (max-width: ${LayoutDimensions.width.horizontalIpadMini}px) {
87
+ display: block;
88
+ width: 24px;
89
+ height: 24px;
90
+ }
91
+ `;
@@ -7,8 +7,8 @@ export interface IPaginationState {
7
7
  }
8
8
 
9
9
  export interface IPaginationProps extends IBaseComponentProp {
10
- totalPages:number;
11
- maxViewPage?: number;
12
10
  activePage?: number;
13
11
  onPageChange?(page:number):void;
12
+ totalDocs: number;
13
+ per?: number;
14
14
  }
@@ -0,0 +1 @@
1
+ export * from './pdf-viewer.interface';
@@ -0,0 +1,5 @@
1
+ import { IBaseComponentProp } from "../base-component.prop.interface";
2
+
3
+ export interface IPDFViewerProps extends IBaseComponentProp {
4
+ publicUrl: string;
5
+ }
@@ -0,0 +1,10 @@
1
+ ///<reference types="react" />
2
+ ///<reference types="robbyson-frontend-library" />
3
+
4
+ declare module "styleguide/PDFViewer" {
5
+ import { IPDFViewerProps } from "robbyson-frontend-library";
6
+ const PDFViewer: React.ComponentType<IPDFViewerProps>;
7
+
8
+ export default PDFViewer;
9
+ }
10
+
@@ -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
+ }