@beinformed/ui 1.63.13 → 1.64.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 (88) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/esm/constants/Constants.js +4 -0
  3. package/esm/constants/Constants.js.flow +5 -0
  4. package/esm/constants/Constants.js.map +1 -1
  5. package/esm/hooks/__tests__/UseModularUIModel.spec.js.flow +7 -5
  6. package/esm/hooks/index.js +2 -0
  7. package/esm/hooks/index.js.flow +2 -0
  8. package/esm/hooks/index.js.map +1 -1
  9. package/esm/hooks/useList.js +69 -0
  10. package/esm/hooks/useList.js.flow +90 -0
  11. package/esm/hooks/useList.js.map +1 -0
  12. package/esm/hooks/useModularUIBasic.js +1 -1
  13. package/esm/hooks/useModularUIBasic.js.flow +6 -2
  14. package/esm/hooks/useModularUIBasic.js.map +1 -1
  15. package/esm/hooks/useModularUIModel.js +0 -34
  16. package/esm/hooks/useModularUIModel.js.flow +1 -55
  17. package/esm/hooks/useModularUIModel.js.map +1 -1
  18. package/esm/hooks/usePanel.js +51 -0
  19. package/esm/hooks/usePanel.js.flow +76 -0
  20. package/esm/hooks/usePanel.js.map +1 -0
  21. package/esm/models/filters/BaseFilterModel.js +27 -1
  22. package/esm/models/filters/BaseFilterModel.js.flow +30 -1
  23. package/esm/models/filters/BaseFilterModel.js.map +1 -1
  24. package/esm/models/filters/FilterCollection.js +16 -0
  25. package/esm/models/filters/FilterCollection.js.flow +16 -0
  26. package/esm/models/filters/FilterCollection.js.map +1 -1
  27. package/esm/models/filters/StringFilterModel.js +8 -0
  28. package/esm/models/filters/StringFilterModel.js.flow +8 -0
  29. package/esm/models/filters/StringFilterModel.js.map +1 -1
  30. package/esm/models/href/ListHref.js +3 -1
  31. package/esm/models/href/ListHref.js.flow +11 -8
  32. package/esm/models/href/ListHref.js.map +1 -1
  33. package/esm/models/list/ListModel.js +17 -7
  34. package/esm/models/list/ListModel.js.flow +20 -8
  35. package/esm/models/list/ListModel.js.map +1 -1
  36. package/esm/models/paging/PagesizeModel.js +6 -0
  37. package/esm/models/paging/PagesizeModel.js.flow +6 -0
  38. package/esm/models/paging/PagesizeModel.js.map +1 -1
  39. package/esm/models/paging/PagingModel.js +11 -0
  40. package/esm/models/paging/PagingModel.js.flow +11 -0
  41. package/esm/models/paging/PagingModel.js.map +1 -1
  42. package/esm/redux/actions/SignIn.js +2 -1
  43. package/esm/redux/actions/SignIn.js.flow +3 -2
  44. package/esm/redux/actions/SignIn.js.map +1 -1
  45. package/lib/constants/Constants.js +5 -1
  46. package/lib/constants/Constants.js.map +1 -1
  47. package/lib/hooks/index.js +22 -0
  48. package/lib/hooks/index.js.map +1 -1
  49. package/lib/hooks/useList.js +80 -0
  50. package/lib/hooks/useList.js.map +1 -0
  51. package/lib/hooks/useModularUIBasic.js +2 -2
  52. package/lib/hooks/useModularUIBasic.js.map +1 -1
  53. package/lib/hooks/useModularUIModel.js +1 -39
  54. package/lib/hooks/useModularUIModel.js.map +1 -1
  55. package/lib/hooks/usePanel.js +59 -0
  56. package/lib/hooks/usePanel.js.map +1 -0
  57. package/lib/models/filters/BaseFilterModel.js +26 -0
  58. package/lib/models/filters/BaseFilterModel.js.map +1 -1
  59. package/lib/models/filters/FilterCollection.js +15 -0
  60. package/lib/models/filters/FilterCollection.js.map +1 -1
  61. package/lib/models/filters/StringFilterModel.js +8 -0
  62. package/lib/models/filters/StringFilterModel.js.map +1 -1
  63. package/lib/models/href/ListHref.js +3 -1
  64. package/lib/models/href/ListHref.js.map +1 -1
  65. package/lib/models/list/ListModel.js +17 -7
  66. package/lib/models/list/ListModel.js.map +1 -1
  67. package/lib/models/paging/PagesizeModel.js +6 -0
  68. package/lib/models/paging/PagesizeModel.js.map +1 -1
  69. package/lib/models/paging/PagingModel.js +11 -0
  70. package/lib/models/paging/PagingModel.js.map +1 -1
  71. package/lib/redux/actions/SignIn.js +2 -1
  72. package/lib/redux/actions/SignIn.js.map +1 -1
  73. package/package.json +8 -8
  74. package/src/constants/Constants.js +5 -0
  75. package/src/hooks/__tests__/UseModularUIModel.spec.js +7 -5
  76. package/src/hooks/index.js +2 -0
  77. package/src/hooks/useList.js +90 -0
  78. package/src/hooks/useModularUIBasic.js +6 -2
  79. package/src/hooks/useModularUIModel.js +1 -55
  80. package/src/hooks/usePanel.js +76 -0
  81. package/src/models/filters/BaseFilterModel.js +30 -1
  82. package/src/models/filters/FilterCollection.js +16 -0
  83. package/src/models/filters/StringFilterModel.js +8 -0
  84. package/src/models/href/ListHref.js +11 -8
  85. package/src/models/list/ListModel.js +20 -8
  86. package/src/models/paging/PagesizeModel.js +6 -0
  87. package/src/models/paging/PagingModel.js +11 -0
  88. package/src/redux/actions/SignIn.js +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"useModularUIBasic.js","names":["_react","require","_useModularUI","_useRouter","createUseModularUIOptions","options","href","location","_context","baseOptions","targetModel","undefined","forceTargetModel","isReload","origin","contextPath","cache","state","reload","_startsWith","default","pathname","call","validateModel","model","expectedModels","length","isCorrectModel","some","expectedModel","type","console","warn","useModularUIBasic","key","useLocation","memoizedHref","useMemo","toString","useModularUIOptions","modularUI","useModularUI","exports"],"sources":["../../src/hooks/useModularUIBasic.js"],"sourcesContent":["// @flow\nimport { useMemo } from \"react\";\nimport { useModularUI } from \"./useModularUI\";\nimport { useLocation } from \"./useRouter\";\n\nimport type { ModularUIModel, Href } from \"../models\";\n\nexport type UseModularUIBasicOptions<T: ModularUIModel> = {\n expectedModels?: Array<string>,\n targetModel?: Class<T> | Array<Class<T>>,\n forceTargetModel?: boolean,\n origin?: string,\n contextPath?: string,\n cache?: boolean,\n};\n\n// Helper to create useModularUI options\nconst createUseModularUIOptions = <T: ModularUIModel>(\n options: UseModularUIBasicOptions<T>,\n href: string,\n location: any,\n): Object => {\n const baseOptions = {\n targetModel: undefined,\n forceTargetModel: undefined,\n isReload: false,\n origin: undefined,\n contextPath: undefined,\n cache: false,\n };\n\n // Handle targetModel and forceTargetModel\n if (options.targetModel) {\n baseOptions.targetModel = options.targetModel;\n baseOptions.forceTargetModel = options.forceTargetModel;\n }\n\n // Handle cache option\n if (options.cache) {\n baseOptions.cache = options.cache;\n }\n\n // Check for reload if location matches href\n if (location.state?.reload && location.pathname.startsWith(href)) {\n baseOptions.isReload = true;\n }\n\n // Handle origin and contextPath options\n baseOptions.origin = options.origin ?? baseOptions.origin;\n baseOptions.contextPath = options.contextPath ?? baseOptions.contextPath;\n\n return baseOptions;\n};\n\n// Helper to validate the model against expectedModels\nconst validateModel = (model: any, expectedModels: Array<string>) => {\n if (expectedModels.length > 0) {\n const isCorrectModel = expectedModels.some(\n (expectedModel) => model.type === expectedModel,\n );\n if (!isCorrectModel) {\n console.warn(model, \"is not of instance\", expectedModels);\n }\n }\n};\n\n/**\n * useModularUIBasic Hook\n */\nexport const useModularUIBasic = <T: ModularUIModel>(\n key: string,\n href: string | Href,\n options: UseModularUIBasicOptions<T> = {\n expectedModels: [],\n targetModel: undefined,\n forceTargetModel: false,\n origin: undefined,\n contextPath: undefined,\n },\n): T | null => {\n const location = useLocation();\n const memoizedHref = useMemo(() => href.toString(), [href]);\n const useModularUIOptions = useMemo(\n () => createUseModularUIOptions(options, memoizedHref, location),\n [options, memoizedHref, location],\n );\n\n const modularUI = useModularUI(key, href, useModularUIOptions);\n const expectedModels = useMemo(\n () => options.expectedModels ?? [],\n [options.expectedModels],\n );\n\n return useMemo((): T | null => {\n if (modularUI?.model) {\n validateModel(modularUI.model, expectedModels);\n return modularUI.model;\n }\n return null;\n }, [expectedModels, modularUI]);\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useModularUIBasic.js","names":["_reactRouter","require","_react","_useModularUI","createUseModularUIOptions","options","href","location","_context","baseOptions","targetModel","undefined","forceTargetModel","isReload","origin","contextPath","cache","state","reload","_startsWith","default","pathname","call","validateModel","model","expectedModels","length","isCorrectModel","some","expectedModel","type","console","warn","useModularUIBasic","key","useLocation","memoizedHref","useMemo","toString","useModularUIOptions","modularUI","useModularUI","exports"],"sources":["../../src/hooks/useModularUIBasic.js"],"sourcesContent":["// @flow\nimport type { ModularUIModel, Href } from \"../models\";\nimport { useLocation } from \"react-router\";\nimport { useMemo } from \"react\";\nimport { useModularUI } from \"./useModularUI\";\n\nexport type HookOptions = {\n origin?: string,\n contextPath?: string,\n};\n\nexport type UseModularUIBasicOptions<T: ModularUIModel> = {\n expectedModels?: Array<string>,\n targetModel?: Class<T> | Array<Class<T>>,\n forceTargetModel?: boolean,\n origin?: string,\n contextPath?: string,\n cache?: boolean,\n};\n\n// Helper to create useModularUI options\nconst createUseModularUIOptions = <T: ModularUIModel>(\n options: UseModularUIBasicOptions<T>,\n href: string,\n location: any,\n): Object => {\n const baseOptions = {\n targetModel: undefined,\n forceTargetModel: undefined,\n isReload: false,\n origin: undefined,\n contextPath: undefined,\n cache: false,\n };\n\n // Handle targetModel and forceTargetModel\n if (options.targetModel) {\n baseOptions.targetModel = options.targetModel;\n baseOptions.forceTargetModel = options.forceTargetModel;\n }\n\n // Handle cache option\n if (options.cache) {\n baseOptions.cache = options.cache;\n }\n\n // Check for reload if location matches href\n if (location.state?.reload && location.pathname.startsWith(href)) {\n baseOptions.isReload = true;\n }\n\n // Handle origin and contextPath options\n baseOptions.origin = options.origin ?? baseOptions.origin;\n baseOptions.contextPath = options.contextPath ?? baseOptions.contextPath;\n\n return baseOptions;\n};\n\n// Helper to validate the model against expectedModels\nconst validateModel = (model: any, expectedModels: Array<string>) => {\n if (expectedModels.length > 0) {\n const isCorrectModel = expectedModels.some(\n (expectedModel) => model.type === expectedModel,\n );\n if (!isCorrectModel) {\n console.warn(model, \"is not of instance\", expectedModels);\n }\n }\n};\n\n/**\n * useModularUIBasic Hook\n */\nexport const useModularUIBasic = <T: ModularUIModel>(\n key: string,\n href: string | Href,\n options: UseModularUIBasicOptions<T> = {\n expectedModels: [],\n targetModel: undefined,\n forceTargetModel: false,\n origin: undefined,\n contextPath: undefined,\n },\n): T | null => {\n const location = useLocation();\n const memoizedHref = useMemo(() => href.toString(), [href]);\n const useModularUIOptions = useMemo(\n () => createUseModularUIOptions(options, memoizedHref, location),\n [options, memoizedHref, location],\n );\n\n const modularUI = useModularUI(key, href, useModularUIOptions);\n const expectedModels = useMemo(\n () => options.expectedModels ?? [],\n [options.expectedModels],\n );\n\n return useMemo((): T | null => {\n if (modularUI?.model) {\n validateModel(modularUI.model, expectedModels);\n return modularUI.model;\n }\n return null;\n }, [expectedModels, modularUI]);\n};\n"],"mappings":"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","ignoreList":[]}
@@ -4,15 +4,13 @@ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequ
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.useUserProfile = exports.useTab = exports.useSearch = exports.useQuicksearch = exports.usePanel = exports.useListOrDetail = exports.useListDetail = exports.useList = exports.useGroupingPanel = exports.useDetailPanel = exports.useCaseView = exports.useApplication = void 0;
7
+ exports.useUserProfile = exports.useTab = exports.useSearch = exports.useQuicksearch = exports.useGroupingPanel = exports.useDetailPanel = exports.useCaseView = exports.useApplication = void 0;
8
8
  var _ApplicationModel = _interopRequireDefault(require("../models/application/ApplicationModel"));
9
9
  var _CaseViewModel = _interopRequireDefault(require("../models/caseview/CaseViewModel"));
10
10
  var _TabModel = _interopRequireDefault(require("../models/tab/TabModel"));
11
- var _ListModel = _interopRequireDefault(require("../models/list/ListModel"));
12
11
  var _GroupingPanelModel = _interopRequireDefault(require("../models/panels/GroupingPanelModel"));
13
12
  var _DetailModel = _interopRequireDefault(require("../models/detail/DetailModel"));
14
13
  var _CaseSearchModel = _interopRequireDefault(require("../models/search/CaseSearchModel"));
15
- var _ListDetailModel = _interopRequireDefault(require("../models/list/ListDetailModel"));
16
14
  var _UserProfileModel = _interopRequireDefault(require("../models/user/UserProfileModel"));
17
15
  var _useModularUIBasic = require("./useModularUIBasic");
18
16
  /**
@@ -47,42 +45,6 @@ const useCaseView = (href, options) => (0, _useModularUIBasic.useModularUIBasic)
47
45
  /**
48
46
  */
49
47
  exports.useCaseView = useCaseView;
50
- const usePanel = (href, options) => (0, _useModularUIBasic.useModularUIBasic)("panel", href, {
51
- expectedModels: ["List", "GroupingPanel", "Detail"],
52
- ...options
53
- });
54
-
55
- /**
56
- */
57
- exports.usePanel = usePanel;
58
- const useList = (href, options) => (0, _useModularUIBasic.useModularUIBasic)("list", href, {
59
- expectedModels: ["List"],
60
- targetModel: _ListModel.default,
61
- ...options
62
- });
63
-
64
- /**
65
- */
66
- exports.useList = useList;
67
- const useListOrDetail = (href, options) => (0, _useModularUIBasic.useModularUIBasic)("list", href, {
68
- expectedModels: ["List", "Detail"],
69
- targetModel: [_ListModel.default, _DetailModel.default],
70
- ...options
71
- });
72
-
73
- /**
74
- */
75
- exports.useListOrDetail = useListOrDetail;
76
- const useListDetail = (href, options) => (0, _useModularUIBasic.useModularUIBasic)("listdetail", href, {
77
- expectedModels: ["ListDetail"],
78
- targetModel: _ListDetailModel.default,
79
- forceTargetModel: true,
80
- ...options
81
- });
82
-
83
- /**
84
- */
85
- exports.useListDetail = useListDetail;
86
48
  const useGroupingPanel = (href, options) => (0, _useModularUIBasic.useModularUIBasic)("groupingpanel", href, {
87
49
  expectedModels: ["GroupingPanel"],
88
50
  targetModel: _GroupingPanelModel.default,
@@ -1 +1 @@
1
- {"version":3,"file":"useModularUIModel.js","names":["_ApplicationModel","_interopRequireDefault","require","_CaseViewModel","_TabModel","_ListModel","_GroupingPanelModel","_DetailModel","_CaseSearchModel","_ListDetailModel","_UserProfileModel","_useModularUIBasic","useApplication","options","useModularUIBasic","expectedModels","targetModel","ApplicationModel","exports","useTab","href","TabModel","useCaseView","CaseViewModel","usePanel","useList","ListModel","useListOrDetail","DetailModel","useListDetail","ListDetailModel","forceTargetModel","useGroupingPanel","GroupingPanelModel","useDetailPanel","useQuicksearch","CaseSearchModel","useSearch","useUserProfile","UserProfileModel"],"sources":["../../src/hooks/useModularUIModel.js"],"sourcesContent":["// @flow\nimport ApplicationModel from \"../models/application/ApplicationModel\";\nimport CaseViewModel from \"../models/caseview/CaseViewModel\";\nimport TabModel from \"../models/tab/TabModel\";\nimport ListModel from \"../models/list/ListModel\";\nimport GroupingPanelModel from \"../models/panels/GroupingPanelModel\";\nimport DetailModel from \"../models/detail/DetailModel\";\nimport CaseSearchModel from \"../models/search/CaseSearchModel\";\nimport ListDetailModel from \"../models/list/ListDetailModel\";\nimport UserProfileModel from \"../models/user/UserProfileModel\";\n\nimport { useModularUIBasic } from \"./useModularUIBasic\";\n\nimport type Href from \"../models/href/Href\";\n\ntype HookOptions = {\n origin?: string,\n contextPath?: string,\n};\n\n/**\n * Load application\n */\nexport const useApplication = (\n options?: HookOptions,\n): ApplicationModel | null =>\n useModularUIBasic(\"application\", \"/\", {\n expectedModels: [\"Application\"],\n targetModel: ApplicationModel,\n ...options,\n });\n\n/**\n * Load a tab by href\n */\nexport const useTab = (\n href: string | Href,\n options?: HookOptions,\n): TabModel | null =>\n useModularUIBasic(\"tab\", href, {\n expectedModels: [\"Tab\"],\n targetModel: TabModel,\n ...options,\n });\n\n/**\n * Load caseview by href\n */\nexport const useCaseView = (\n href: string | Href,\n options?: HookOptions,\n): CaseViewModel | null =>\n useModularUIBasic(\"caseview\", href, {\n expectedModels: [\"CaseView\"],\n targetModel: CaseViewModel,\n ...options,\n });\n\n/**\n */\nexport const usePanel = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | GroupingPanelModel | DetailModel | null =>\n useModularUIBasic(\"panel\", href, {\n expectedModels: [\"List\", \"GroupingPanel\", \"Detail\"],\n ...options,\n });\n\n/**\n */\nexport const useList = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | null =>\n useModularUIBasic(\"list\", href, {\n expectedModels: [\"List\"],\n targetModel: ListModel,\n ...options,\n });\n\n/**\n */\nexport const useListOrDetail = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | DetailModel | null =>\n useModularUIBasic(\"list\", href, {\n expectedModels: [\"List\", \"Detail\"],\n targetModel: [ListModel, DetailModel],\n ...options,\n });\n\n/**\n */\nexport const useListDetail = (\n href: string | Href,\n options?: HookOptions,\n): ListDetailModel | null =>\n useModularUIBasic(\"listdetail\", href, {\n expectedModels: [\"ListDetail\"],\n targetModel: ListDetailModel,\n forceTargetModel: true,\n ...options,\n });\n\n/**\n */\nexport const useGroupingPanel = (\n href: string | Href,\n options?: HookOptions,\n): GroupingPanelModel | null =>\n useModularUIBasic(\"groupingpanel\", href, {\n expectedModels: [\"GroupingPanel\"],\n targetModel: GroupingPanelModel,\n ...options,\n });\n\n/**\n */\nexport const useDetailPanel = (\n href: string | Href,\n options?: HookOptions,\n): DetailModel | null =>\n useModularUIBasic(\"detailpanel\", href, {\n expectedModels: [\"Detail\"],\n targetModel: DetailModel,\n ...options,\n });\n\n/**\n */\nexport const useQuicksearch = (\n href: string | Href,\n options?: HookOptions,\n): CaseSearchModel | null =>\n useModularUIBasic(\"quicksearch\", href, {\n expectedModels: [\"CaseSearch\"],\n targetModel: CaseSearchModel,\n ...options,\n });\n\n/**\n */\nexport const useSearch = (\n href: string | Href,\n options?: HookOptions,\n): CaseSearchModel | null =>\n useModularUIBasic(\"search\", href, {\n expectedModels: [\"CaseSearch\"],\n targetModel: CaseSearchModel,\n ...options,\n });\n\n/**\n */\nexport const useUserProfile = (\n href: string | Href,\n options?: HookOptions,\n): UserProfileModel | null =>\n useModularUIBasic(\"userprofile\", href, {\n expectedModels: [\"UserProfile\"],\n targetModel: UserProfileModel,\n ...options,\n });\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useModularUIModel.js","names":["_ApplicationModel","_interopRequireDefault","require","_CaseViewModel","_TabModel","_GroupingPanelModel","_DetailModel","_CaseSearchModel","_UserProfileModel","_useModularUIBasic","useApplication","options","useModularUIBasic","expectedModels","targetModel","ApplicationModel","exports","useTab","href","TabModel","useCaseView","CaseViewModel","useGroupingPanel","GroupingPanelModel","useDetailPanel","DetailModel","useQuicksearch","CaseSearchModel","useSearch","useUserProfile","UserProfileModel"],"sources":["../../src/hooks/useModularUIModel.js"],"sourcesContent":["// @flow\nimport ApplicationModel from \"../models/application/ApplicationModel\";\nimport CaseViewModel from \"../models/caseview/CaseViewModel\";\nimport TabModel from \"../models/tab/TabModel\";\nimport GroupingPanelModel from \"../models/panels/GroupingPanelModel\";\nimport DetailModel from \"../models/detail/DetailModel\";\nimport CaseSearchModel from \"../models/search/CaseSearchModel\";\nimport UserProfileModel from \"../models/user/UserProfileModel\";\n\nimport { useModularUIBasic } from \"./useModularUIBasic\";\n\nimport type Href from \"../models/href/Href\";\nimport type { HookOptions } from \"./useModularUIBasic\";\n\n/**\n * Load application\n */\nexport const useApplication = (\n options?: HookOptions,\n): ApplicationModel | null =>\n useModularUIBasic(\"application\", \"/\", {\n expectedModels: [\"Application\"],\n targetModel: ApplicationModel,\n ...options,\n });\n\n/**\n * Load a tab by href\n */\nexport const useTab = (\n href: string | Href,\n options?: HookOptions,\n): TabModel | null =>\n useModularUIBasic(\"tab\", href, {\n expectedModels: [\"Tab\"],\n targetModel: TabModel,\n ...options,\n });\n\n/**\n * Load caseview by href\n */\nexport const useCaseView = (\n href: string | Href,\n options?: HookOptions,\n): CaseViewModel | null =>\n useModularUIBasic(\"caseview\", href, {\n expectedModels: [\"CaseView\"],\n targetModel: CaseViewModel,\n ...options,\n });\n\n/**\n */\nexport const useGroupingPanel = (\n href: string | Href,\n options?: HookOptions,\n): GroupingPanelModel | null =>\n useModularUIBasic(\"groupingpanel\", href, {\n expectedModels: [\"GroupingPanel\"],\n targetModel: GroupingPanelModel,\n ...options,\n });\n\n/**\n */\nexport const useDetailPanel = (\n href: string | Href,\n options?: HookOptions,\n): DetailModel | null =>\n useModularUIBasic(\"detailpanel\", href, {\n expectedModels: [\"Detail\"],\n targetModel: DetailModel,\n ...options,\n });\n\n/**\n */\nexport const useQuicksearch = (\n href: string | Href,\n options?: HookOptions,\n): CaseSearchModel | null =>\n useModularUIBasic(\"quicksearch\", href, {\n expectedModels: [\"CaseSearch\"],\n targetModel: CaseSearchModel,\n ...options,\n });\n\n/**\n */\nexport const useSearch = (\n href: string | Href,\n options?: HookOptions,\n): CaseSearchModel | null =>\n useModularUIBasic(\"search\", href, {\n expectedModels: [\"CaseSearch\"],\n targetModel: CaseSearchModel,\n ...options,\n });\n\n/**\n */\nexport const useUserProfile = (\n href: string | Href,\n options?: HookOptions,\n): UserProfileModel | null =>\n useModularUIBasic(\"userprofile\", href, {\n expectedModels: [\"UserProfile\"],\n targetModel: UserProfileModel,\n ...options,\n });\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.usePanel = void 0;
8
+ var _startsWith = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/starts-with"));
9
+ var _react = require("react");
10
+ var _reactRouter = require("react-router");
11
+ var _Href = _interopRequireDefault(require("../models/href/Href"));
12
+ var _useModularUIBasic = require("./useModularUIBasic");
13
+ const useUrl = (href, fromRoute = false) => {
14
+ const [previousUrl, setPreviousUrl] = (0, _react.useState)(null);
15
+ const [previousExact, setPreviousExact] = (0, _react.useState)(false);
16
+ const match = (0, _reactRouter.useRouteMatch)();
17
+ const location = (0, _reactRouter.useLocation)();
18
+ return (0, _react.useMemo)(() => {
19
+ var _context;
20
+ if (href == null && previousUrl == null) {
21
+ return new _Href.default("");
22
+ }
23
+ const url = href instanceof _Href.default ? href : new _Href.default(href);
24
+ if (!fromRoute) {
25
+ return url;
26
+ }
27
+ if (match.isExact) {
28
+ url.addParametersFromString(location.search);
29
+ }
30
+
31
+ // Check equality to prevent unnecessary state updates
32
+ if (url.equalsWithParameters(previousUrl)) {
33
+ return previousUrl || url;
34
+ }
35
+ const shouldUpdate = match.isExact === true || previousExact === match.isExact || !((_context = previousUrl) == null ? void 0 : Function.call.bind((0, _startsWith.default)(_context), _context))?.(match.url);
36
+ if (shouldUpdate) {
37
+ setPreviousUrl(url);
38
+ setPreviousExact(match.isExact);
39
+ return url;
40
+ }
41
+ return previousUrl || new _Href.default("");
42
+ }, [href, previousUrl, fromRoute, match.isExact, match.url, previousExact, location.search]);
43
+ };
44
+
45
+ /**
46
+ */
47
+ const usePanel = (href, options) => {
48
+ const {
49
+ fromRoute = false,
50
+ ...modUIOptions
51
+ } = options || {};
52
+ const url = useUrl(href, fromRoute);
53
+ return (0, _useModularUIBasic.useModularUIBasic)("panel", url, {
54
+ expectedModels: ["List", "GroupingPanel", "Detail"],
55
+ ...modUIOptions
56
+ });
57
+ };
58
+ exports.usePanel = usePanel;
59
+ //# sourceMappingURL=usePanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePanel.js","names":["_react","require","_reactRouter","_Href","_interopRequireDefault","_useModularUIBasic","useUrl","href","fromRoute","previousUrl","setPreviousUrl","useState","previousExact","setPreviousExact","match","useRouteMatch","location","useLocation","useMemo","_context","Href","url","isExact","addParametersFromString","search","equalsWithParameters","shouldUpdate","Function","call","bind","_startsWith","default","usePanel","options","modUIOptions","useModularUIBasic","expectedModels","exports"],"sources":["../../src/hooks/usePanel.js"],"sourcesContent":["// @flow\nimport { useState, useMemo } from \"react\";\nimport { useLocation, useRouteMatch } from \"react-router\";\nimport Href from \"../models/href/Href\";\nimport { useModularUIBasic } from \"./useModularUIBasic\";\n\nimport type { HookOptions } from \"./useModularUIBasic\";\nimport type GroupingPanelModel from \"../models/panels/GroupingPanelModel\";\nimport type ListModel from \"../models/list/ListModel\";\nimport type DetailModel from \"../models/detail/DetailModel\";\n\nconst useUrl = (href?: string | Href, fromRoute: boolean = false) => {\n const [previousUrl, setPreviousUrl] = useState(null);\n const [previousExact, setPreviousExact] = useState(false);\n\n const match = useRouteMatch();\n const location = useLocation();\n\n return useMemo(() => {\n if (href == null && previousUrl == null) {\n return new Href(\"\");\n }\n\n const url = href instanceof Href ? href : new Href(href);\n\n if (!fromRoute) {\n return url;\n }\n\n if (match.isExact) {\n url.addParametersFromString(location.search);\n }\n\n // Check equality to prevent unnecessary state updates\n if (url.equalsWithParameters(previousUrl)) {\n return previousUrl || url;\n }\n\n const shouldUpdate =\n match.isExact === true ||\n previousExact === match.isExact ||\n !previousUrl?.startsWith(match.url);\n\n if (shouldUpdate) {\n setPreviousUrl(url);\n setPreviousExact(match.isExact);\n return url;\n }\n\n return previousUrl || new Href(\"\");\n }, [\n href,\n previousUrl,\n fromRoute,\n match.isExact,\n match.url,\n previousExact,\n location.search,\n ]);\n};\n\n/**\n */\nexport const usePanel = (\n href?: string | Href,\n options?: HookOptions & { fromRoute?: boolean },\n): ListModel | GroupingPanelModel | DetailModel | null => {\n const { fromRoute = false, ...modUIOptions } = options || {};\n\n const url = useUrl(href, fromRoute);\n\n return useModularUIBasic(\"panel\", url, {\n expectedModels: [\"List\", \"GroupingPanel\", \"Detail\"],\n ...modUIOptions,\n });\n};\n"],"mappings":";;;;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,kBAAA,GAAAJ,OAAA;AAOA,MAAMK,MAAM,GAAGA,CAACC,IAAoB,EAAEC,SAAkB,GAAG,KAAK,KAAK;EACnE,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAC,eAAQ,EAAC,IAAI,CAAC;EACpD,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAF,eAAQ,EAAC,KAAK,CAAC;EAEzD,MAAMG,KAAK,GAAG,IAAAC,0BAAa,EAAC,CAAC;EAC7B,MAAMC,QAAQ,GAAG,IAAAC,wBAAW,EAAC,CAAC;EAE9B,OAAO,IAAAC,cAAO,EAAC,MAAM;IAAA,IAAAC,QAAA;IACnB,IAAIZ,IAAI,IAAI,IAAI,IAAIE,WAAW,IAAI,IAAI,EAAE;MACvC,OAAO,IAAIW,aAAI,CAAC,EAAE,CAAC;IACrB;IAEA,MAAMC,GAAG,GAAGd,IAAI,YAAYa,aAAI,GAAGb,IAAI,GAAG,IAAIa,aAAI,CAACb,IAAI,CAAC;IAExD,IAAI,CAACC,SAAS,EAAE;MACd,OAAOa,GAAG;IACZ;IAEA,IAAIP,KAAK,CAACQ,OAAO,EAAE;MACjBD,GAAG,CAACE,uBAAuB,CAACP,QAAQ,CAACQ,MAAM,CAAC;IAC9C;;IAEA;IACA,IAAIH,GAAG,CAACI,oBAAoB,CAAChB,WAAW,CAAC,EAAE;MACzC,OAAOA,WAAW,IAAIY,GAAG;IAC3B;IAEA,MAAMK,YAAY,GAChBZ,KAAK,CAACQ,OAAO,KAAK,IAAI,IACtBV,aAAa,KAAKE,KAAK,CAACQ,OAAO,IAC/B,CAAC,EAAAH,QAAA,GAAAV,WAAW,qBAAAkB,QAAA,CAAAC,IAAA,CAAAC,IAAA,KAAAC,WAAA,CAAAC,OAAA,EAAAZ,QAAA,GAAAA,QAAA,KAAaL,KAAK,CAACO,GAAG,CAAC;IAErC,IAAIK,YAAY,EAAE;MAChBhB,cAAc,CAACW,GAAG,CAAC;MACnBR,gBAAgB,CAACC,KAAK,CAACQ,OAAO,CAAC;MAC/B,OAAOD,GAAG;IACZ;IAEA,OAAOZ,WAAW,IAAI,IAAIW,aAAI,CAAC,EAAE,CAAC;EACpC,CAAC,EAAE,CACDb,IAAI,EACJE,WAAW,EACXD,SAAS,EACTM,KAAK,CAACQ,OAAO,EACbR,KAAK,CAACO,GAAG,EACTT,aAAa,EACbI,QAAQ,CAACQ,MAAM,CAChB,CAAC;AACJ,CAAC;;AAED;AACA;AACO,MAAMQ,QAAQ,GAAGA,CACtBzB,IAAoB,EACpB0B,OAA+C,KACS;EACxD,MAAM;IAAEzB,SAAS,GAAG,KAAK;IAAE,GAAG0B;EAAa,CAAC,GAAGD,OAAO,IAAI,CAAC,CAAC;EAE5D,MAAMZ,GAAG,GAAGf,MAAM,CAACC,IAAI,EAAEC,SAAS,CAAC;EAEnC,OAAO,IAAA2B,oCAAiB,EAAC,OAAO,EAAEd,GAAG,EAAE;IACrCe,cAAc,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,CAAC;IACnD,GAAGF;EACL,CAAC,CAAC;AACJ,CAAC;AAACG,OAAA,CAAAL,QAAA,GAAAA,QAAA","ignoreList":[]}
@@ -34,6 +34,19 @@ class BaseFilterModel extends _BaseModel.default {
34
34
  return this.contributions.type ? this.contributions.type.replace("filter", "") : "string";
35
35
  }
36
36
 
37
+ /**
38
+ * Returns the parameter type, when the filter can only be used in a POST request the type is 'bodyParameter', else 'queryParameter'.
39
+ */
40
+ get parameterType() {
41
+ const parameterType = this.getContribution("parameterType");
42
+ switch (parameterType) {
43
+ case "bodyParameter":
44
+ return _Constants.PARAMETER_TYPES.BODY;
45
+ default:
46
+ return _Constants.PARAMETER_TYPES.QUERY;
47
+ }
48
+ }
49
+
37
50
  /**
38
51
  * Create attribute through the attribute factory. Create type based on filter key without the filter suffix
39
52
  */
@@ -150,6 +163,13 @@ class BaseFilterModel extends _BaseModel.default {
150
163
  return this.attribute?.inputvalue;
151
164
  }
152
165
 
166
+ /**
167
+ * Indicates if the filter has a value.
168
+ */
169
+ hasValue() {
170
+ return this.value !== null && this.value !== "";
171
+ }
172
+
153
173
  /**
154
174
  * Reset the value of this filter to undefined
155
175
  */
@@ -205,6 +225,12 @@ class BaseFilterModel extends _BaseModel.default {
205
225
  get assistantMessage() {
206
226
  return this.getContribution("assistant");
207
227
  }
228
+
229
+ /**
230
+ */
231
+ get formdata() {
232
+ return this.attribute.formdata ?? null;
233
+ }
208
234
  }
209
235
  exports.default = BaseFilterModel;
210
236
  //# sourceMappingURL=BaseFilterModel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseFilterModel.js","names":["_BaseModel","_interopRequireDefault","require","_createAttribute","_Constants","_exceptions","BaseFilterModel","BaseModel","constructor","data","contributions","modelOptions","_defineProperty2","default","_attribute","createAttribute","type","param","listKey","listkey","replace","isMultiple","getContribution","context","_context","contextLabel","label","_listKey","key","name","PARAMETER_SEPARATOR","attribute","IllegalStateException","params","value","inputvalue","reset","update","isQuickSearch","quicksearch","isActive","initvalue","isValid","readonlyvalue","assistantMessage","exports"],"sources":["../../../src/models/filters/BaseFilterModel.js"],"sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport createAttribute from \"../attributes/_createAttribute\";\nimport { PARAMETER_SEPARATOR } from \"../../constants/Constants\";\n\nimport type { AttributeType, FilterType, ModelOptions } from \"../types\";\nimport { IllegalStateException } from \"../../exceptions\";\n\n/**\n * Base class for filters\n */\nexport default class BaseFilterModel extends BaseModel {\n _attribute: AttributeType | null = null;\n _context: Object;\n _listKey: string;\n\n /**\n */\n constructor(\n data: Object,\n contributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(data, contributions, modelOptions);\n\n this._attribute = this.createAttribute(\n this.type,\n this.param,\n this.data,\n this.contributions,\n );\n\n if (this.contributions.listKey) {\n this.listkey = this.contributions.listKey;\n }\n }\n\n /**\n * Get the type of a filter.\n */\n get type(): string {\n return this.contributions.type\n ? this.contributions.type.replace(\"filter\", \"\")\n : \"string\";\n }\n\n /**\n * Create attribute through the attribute factory. Create type based on filter key without the filter suffix\n */\n createAttribute(\n type: string,\n param: string,\n data: Object,\n contributions: Object,\n ): AttributeType | null {\n if (type === \"assignment\") {\n return null;\n }\n\n return createAttribute(\n param,\n data,\n {\n ...contributions,\n type: type,\n },\n this.modelOptions,\n );\n }\n\n /**\n * Inidiates if filter is multiplechoice\n */\n get isMultiple(): boolean {\n return this.getContribution(\"multiplechoice\", false);\n }\n\n /**\n * Getting context data\n */\n get context(): Object {\n return this._context;\n }\n\n /**\n * Set context of filter\n */\n set context(context: Object) {\n this._context = context;\n }\n\n /**\n * Getting the context label\n */\n get contextLabel(): string {\n return this.context?.label ?? \"\";\n }\n\n /**\n * Getting key of the list these filters apply to\n */\n get listkey(): string {\n return this._listKey;\n }\n\n /**\n * Set key of list this filter belongs to\n */\n set listkey(key: string) {\n this._listKey = key;\n }\n\n /**\n * Getting the label of the filter\n */\n get label(): string {\n return this.getContribution(\"label\", \"\");\n }\n\n /**\n * Getting the name of the filter\n */\n get name(): string {\n if (this.listkey) {\n return this.listkey + PARAMETER_SEPARATOR + this.param;\n }\n\n return this.param;\n }\n\n /**\n * Getting the param name of the filter\n */\n get param(): string {\n return this.data.param ?? this.data.name;\n }\n\n /**\n * Get attribute of filter\n */\n get attribute(): AttributeType {\n if (!this._attribute) {\n throw new IllegalStateException(\n `Missing filter attribute on filter model: ${this.label}`,\n );\n }\n return this._attribute;\n }\n\n /**\n * Retrieve the parameters with it's value for this filter\n */\n get params(): Array<{ name: string, value: ?string }> {\n if (!this.param) {\n return [];\n }\n\n return [\n {\n name: this.param,\n value: this.attribute?.value,\n },\n ];\n }\n\n /**\n * Getting the value of the filter\n */\n get value(): string | null {\n return this.attribute?.value;\n }\n\n /**\n * Getting the inputvalue of the filter\n */\n get inputvalue(): string {\n return this.attribute?.inputvalue;\n }\n\n /**\n * Reset the value of this filter to undefined\n */\n reset(): FilterType {\n if (this.attribute) {\n this.attribute.reset();\n }\n\n return this;\n }\n\n /**\n * Update this filter with input name and value\n */\n update(attribute: AttributeType, value: string) {\n if (this.attribute) {\n this.attribute.update(value);\n }\n }\n\n /**\n * Inidicates if filter is a quick search filter\n */\n isQuickSearch(): boolean {\n return this.contributions.quicksearch === true;\n }\n\n /**\n * Inidiates if filter is active\n */\n isActive(): boolean {\n return this.attribute !== null && this.attribute.initvalue !== null;\n }\n\n /**\n * Inidiates if filter is valid\n */\n get isValid(): boolean {\n return this.attribute !== null && this.attribute.isValid;\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (this.attribute) {\n return this.attribute.readonlyvalue;\n }\n return \"\";\n }\n\n /**\n * Get assistant message\n */\n get assistantMessage(): string | null {\n return this.getContribution(\"assistant\");\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BaseFilterModel.js","names":["_BaseModel","_interopRequireDefault","require","_createAttribute","_Constants","_exceptions","BaseFilterModel","BaseModel","constructor","data","contributions","modelOptions","_defineProperty2","default","_attribute","createAttribute","type","param","listKey","listkey","replace","parameterType","getContribution","PARAMETER_TYPES","BODY","QUERY","isMultiple","context","_context","contextLabel","label","_listKey","key","name","PARAMETER_SEPARATOR","attribute","IllegalStateException","params","value","inputvalue","hasValue","reset","update","isQuickSearch","quicksearch","isActive","initvalue","isValid","readonlyvalue","assistantMessage","formdata","exports"],"sources":["../../../src/models/filters/BaseFilterModel.js"],"sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport createAttribute from \"../attributes/_createAttribute\";\nimport {\n PARAMETER_SEPARATOR,\n PARAMETER_TYPES,\n} from \"../../constants/Constants\";\n\nimport type { AttributeType, FilterType, ModelOptions } from \"../types\";\nimport { IllegalStateException } from \"../../exceptions\";\n\n/**\n * Base class for filters\n */\nexport default class BaseFilterModel extends BaseModel {\n _attribute: AttributeType | null = null;\n _context: Object;\n _listKey: string;\n\n /**\n */\n constructor(\n data: Object,\n contributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(data, contributions, modelOptions);\n\n this._attribute = this.createAttribute(\n this.type,\n this.param,\n this.data,\n this.contributions,\n );\n\n if (this.contributions.listKey) {\n this.listkey = this.contributions.listKey;\n }\n }\n\n /**\n * Get the type of a filter.\n */\n get type(): string {\n return this.contributions.type\n ? this.contributions.type.replace(\"filter\", \"\")\n : \"string\";\n }\n\n /**\n * Returns the parameter type, when the filter can only be used in a POST request the type is 'bodyParameter', else 'queryParameter'.\n */\n get parameterType(): $Values<typeof PARAMETER_TYPES> {\n const parameterType = this.getContribution(\"parameterType\");\n switch (parameterType) {\n case \"bodyParameter\":\n return PARAMETER_TYPES.BODY;\n default:\n return PARAMETER_TYPES.QUERY;\n }\n }\n\n /**\n * Create attribute through the attribute factory. Create type based on filter key without the filter suffix\n */\n createAttribute(\n type: string,\n param: string,\n data: Object,\n contributions: Object,\n ): AttributeType | null {\n if (type === \"assignment\") {\n return null;\n }\n\n return createAttribute(\n param,\n data,\n {\n ...contributions,\n type: type,\n },\n this.modelOptions,\n );\n }\n\n /**\n * Inidiates if filter is multiplechoice\n */\n get isMultiple(): boolean {\n return this.getContribution(\"multiplechoice\", false);\n }\n\n /**\n * Getting context data\n */\n get context(): Object {\n return this._context;\n }\n\n /**\n * Set context of filter\n */\n set context(context: Object) {\n this._context = context;\n }\n\n /**\n * Getting the context label\n */\n get contextLabel(): string {\n return this.context?.label ?? \"\";\n }\n\n /**\n * Getting key of the list these filters apply to\n */\n get listkey(): string {\n return this._listKey;\n }\n\n /**\n * Set key of list this filter belongs to\n */\n set listkey(key: string) {\n this._listKey = key;\n }\n\n /**\n * Getting the label of the filter\n */\n get label(): string {\n return this.getContribution(\"label\", \"\");\n }\n\n /**\n * Getting the name of the filter\n */\n get name(): string {\n if (this.listkey) {\n return this.listkey + PARAMETER_SEPARATOR + this.param;\n }\n\n return this.param;\n }\n\n /**\n * Getting the param name of the filter\n */\n get param(): string {\n return this.data.param ?? this.data.name;\n }\n\n /**\n * Get attribute of filter\n */\n get attribute(): AttributeType {\n if (!this._attribute) {\n throw new IllegalStateException(\n `Missing filter attribute on filter model: ${this.label}`,\n );\n }\n return this._attribute;\n }\n\n /**\n * Retrieve the parameters with it's value for this filter\n */\n get params(): Array<{ name: string, value: ?string }> {\n if (!this.param) {\n return [];\n }\n\n return [\n {\n name: this.param,\n value: this.attribute?.value,\n },\n ];\n }\n\n /**\n * Getting the value of the filter\n */\n get value(): string | null {\n return this.attribute?.value;\n }\n\n /**\n * Getting the inputvalue of the filter\n */\n get inputvalue(): string {\n return this.attribute?.inputvalue;\n }\n\n /**\n * Indicates if the filter has a value.\n */\n hasValue(): boolean {\n return this.value !== null && this.value !== \"\";\n }\n\n /**\n * Reset the value of this filter to undefined\n */\n reset(): FilterType {\n if (this.attribute) {\n this.attribute.reset();\n }\n\n return this;\n }\n\n /**\n * Update this filter with input name and value\n */\n update(attribute: AttributeType, value: string) {\n if (this.attribute) {\n this.attribute.update(value);\n }\n }\n\n /**\n * Inidicates if filter is a quick search filter\n */\n isQuickSearch(): boolean {\n return this.contributions.quicksearch === true;\n }\n\n /**\n * Inidiates if filter is active\n */\n isActive(): boolean {\n return this.attribute !== null && this.attribute.initvalue !== null;\n }\n\n /**\n * Inidiates if filter is valid\n */\n get isValid(): boolean {\n return this.attribute !== null && this.attribute.isValid;\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (this.attribute) {\n return this.attribute.readonlyvalue;\n }\n return \"\";\n }\n\n /**\n * Get assistant message\n */\n get assistantMessage(): string | null {\n return this.getContribution(\"assistant\");\n }\n\n /**\n */\n get formdata(): { [string]: any } | null {\n return this.attribute.formdata ?? null;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -17,6 +17,7 @@ var _AssignmentFilterModel = _interopRequireDefault(require("../filters/Assignme
17
17
  var _ConceptIndexFilterModel = _interopRequireDefault(require("../filters/ConceptIndexFilterModel"));
18
18
  var _CompositeAttributeModel = _interopRequireDefault(require("../attributes/CompositeAttributeModel"));
19
19
  var _FilterModel = _interopRequireDefault(require("../filters/FilterModel"));
20
+ var _constants = require("../../constants");
20
21
  /**
21
22
  * Contains a collection of filters
22
23
  */
@@ -147,6 +148,20 @@ class FilterCollection extends _BaseCollection.default {
147
148
  hasActiveFilters() {
148
149
  return this.collection.some(filter => filter.isActive());
149
150
  }
151
+
152
+ /**
153
+ */
154
+ get formdata() {
155
+ var _context7;
156
+ let data = {};
157
+ (0, _filter.default)(_context7 = this).call(_context7, f => f.parameterType === _constants.PARAMETER_TYPES.BODY && f.hasValue()).forEach(f => {
158
+ data = {
159
+ ...data,
160
+ ...f.formdata
161
+ };
162
+ });
163
+ return data;
164
+ }
150
165
  }
151
166
  exports.default = FilterCollection;
152
167
  //# sourceMappingURL=FilterCollection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterCollection.js","names":["_BaseCollection","_interopRequireDefault","require","_StringFilterModel","_RangeFilterModel","_AssignmentFilterModel","_ConceptIndexFilterModel","_CompositeAttributeModel","_FilterModel","FilterCollection","BaseCollection","constructor","data","contributions","modelOptions","Array","isArray","_filter","default","_context","_context2","collection","_map","call","filterContribution","_keys","filterKey","filterData","filterContributionByKey","filter","createFilter","dynamicschema","listkey","contexts","contextid","_context3","filterContext","_find","context","id","type","ConceptIndexFilterModel","_includes","RangeFilterModel","AssignmentFilterModel","StringFilterModel","FilterModel","reset","_context4","checkRangeFilterByAttributeKey","key","rangeAttribute","attribute","CompositeAttributeModel","start","end","checkAssignmentFilterByAttributeKey","user","assignmenttype","getFilterByAttributeKey","_context5","update","value","_context6","filterToUpdate","parentKey","Error","newFilter","clone","name","isValid","every","hasActiveFilters","some","isActive","exports"],"sources":["../../../src/models/filters/FilterCollection.js"],"sourcesContent":["// @flow\nimport BaseCollection from \"../base/BaseCollection\";\n\nimport StringFilterModel from \"../filters/StringFilterModel\";\nimport RangeFilterModel from \"../filters/RangeFilterModel\";\nimport AssignmentFilterModel from \"../filters/AssignmentFilterModel\";\nimport ConceptIndexFilterModel from \"../filters/ConceptIndexFilterModel\";\nimport CompositeAttributeModel from \"../attributes/CompositeAttributeModel\";\nimport FilterModel from \"../filters/FilterModel\";\n\nimport type { AttributeType, FilterType, ModelOptions } from \"../types\";\n\n/**\n * Contains a collection of filters\n */\nexport default class FilterCollection extends BaseCollection<FilterType> {\n /**\n * Construct a collection of filters\n */\n constructor(\n data: Object = {},\n contributions: Object = {},\n modelOptions?: ModelOptions,\n ) {\n super();\n\n if (data && contributions && Array.isArray(contributions.filter)) {\n this.collection = contributions.filter\n .filter((filterContribution) => Object.keys(filterContribution)[0])\n .map((filterContribution) => {\n const [filterKey] = Object.keys(filterContribution);\n const filterData = data[filterKey];\n const filterContributionByKey = filterContribution[filterKey];\n\n const filter = this.createFilter(\n filterKey,\n {\n ...filterData,\n dynamicschema: contributions.dynamicschema,\n },\n filterContributionByKey,\n modelOptions,\n );\n\n if (contributions.listkey) {\n filter.listkey = contributions.listkey;\n }\n\n if (contributions.contexts && filterContributionByKey.contextid) {\n const filterContext = contributions.contexts.find(\n (context) => context.id === filterContributionByKey.contextid,\n );\n if (filterContext) {\n filter.context = filterContext;\n }\n }\n\n return filter;\n });\n }\n }\n\n /**\n */\n createFilter(\n filterKey: string,\n data: Object,\n contributions: Object,\n modelOptions?: ModelOptions,\n ): FilterType {\n const type = contributions.type || \"stringfilter\";\n if (type === \"choicefilter\" && filterKey === \"index\") {\n return new ConceptIndexFilterModel(data, contributions, modelOptions);\n }\n\n if (type.includes(\"rangefilter\")) {\n return new RangeFilterModel(data, contributions, modelOptions);\n }\n\n if (type === \"assignmentfilter\") {\n return new AssignmentFilterModel(data, contributions, modelOptions);\n }\n\n if (type === \"stringfilter\") {\n return new StringFilterModel(data, contributions, modelOptions);\n }\n\n return new FilterModel(data, contributions, modelOptions);\n }\n\n /**\n * Call the reset function on all filters\n *\n * @see {FilterType#reset()}\n */\n reset(): FilterCollection {\n this.collection = this.collection.map((filter) => filter.reset());\n\n return this;\n }\n\n /**\n * Checks if range attribute key equals key\n */\n checkRangeFilterByAttributeKey(\n filter: RangeFilterModel,\n key: string,\n ): boolean {\n const rangeAttribute = filter.attribute;\n\n if (rangeAttribute instanceof CompositeAttributeModel) {\n return (\n rangeAttribute.key === key ||\n (rangeAttribute.start && rangeAttribute.start.key === key) ||\n (rangeAttribute.end && rangeAttribute.end.key === key)\n );\n }\n\n return false;\n }\n\n /**\n * Check if assignment filter attribute matches key\n */\n checkAssignmentFilterByAttributeKey(\n filter: AssignmentFilterModel,\n key: string,\n ): boolean {\n return (\n filter.key === key ||\n filter.user?.key === key ||\n filter.assignmenttype?.key === key\n );\n }\n\n /**\n * Getting the filter by name\n */\n getFilterByAttributeKey(key: string): FilterType | null {\n return (\n this.find((filter) => {\n if (filter instanceof RangeFilterModel) {\n return this.checkRangeFilterByAttributeKey(filter, key);\n }\n\n if (filter instanceof AssignmentFilterModel) {\n return this.checkAssignmentFilterByAttributeKey(filter, key);\n }\n\n return filter.attribute?.key === key;\n }) || null\n );\n }\n\n /**\n * Update Filter by input name and value\n */\n update(attribute: AttributeType, value: string): void {\n const filterToUpdate = attribute.parentKey\n ? this.getFilterByAttributeKey(attribute.parentKey)\n : this.getFilterByAttributeKey(attribute.key);\n\n if (!filterToUpdate) {\n throw new Error(`Can not find filter by attribute key: ${attribute.key}`);\n }\n\n const newFilter = filterToUpdate.clone();\n newFilter.update(attribute, value);\n\n this.collection = this.collection.map((filter) => {\n if (filter.name === newFilter.name) {\n return newFilter;\n }\n\n return filter;\n });\n }\n\n /**\n * Retrieve if all filters are valid\n */\n get isValid(): boolean {\n return this.collection.every((filter) => filter.isValid);\n }\n\n /**\n * Indicates if an active filter is present in the collection\n */\n hasActiveFilters(): boolean {\n return this.collection.some((filter) => filter.isActive());\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FilterCollection.js","names":["_BaseCollection","_interopRequireDefault","require","_StringFilterModel","_RangeFilterModel","_AssignmentFilterModel","_ConceptIndexFilterModel","_CompositeAttributeModel","_FilterModel","_constants","FilterCollection","BaseCollection","constructor","data","contributions","modelOptions","Array","isArray","_filter","default","_context","_context2","collection","_map","call","filterContribution","_keys","filterKey","filterData","filterContributionByKey","filter","createFilter","dynamicschema","listkey","contexts","contextid","_context3","filterContext","_find","context","id","type","ConceptIndexFilterModel","_includes","RangeFilterModel","AssignmentFilterModel","StringFilterModel","FilterModel","reset","_context4","checkRangeFilterByAttributeKey","key","rangeAttribute","attribute","CompositeAttributeModel","start","end","checkAssignmentFilterByAttributeKey","user","assignmenttype","getFilterByAttributeKey","_context5","update","value","_context6","filterToUpdate","parentKey","Error","newFilter","clone","name","isValid","every","hasActiveFilters","some","isActive","formdata","_context7","f","parameterType","PARAMETER_TYPES","BODY","hasValue","forEach","exports"],"sources":["../../../src/models/filters/FilterCollection.js"],"sourcesContent":["// @flow\nimport BaseCollection from \"../base/BaseCollection\";\n\nimport StringFilterModel from \"../filters/StringFilterModel\";\nimport RangeFilterModel from \"../filters/RangeFilterModel\";\nimport AssignmentFilterModel from \"../filters/AssignmentFilterModel\";\nimport ConceptIndexFilterModel from \"../filters/ConceptIndexFilterModel\";\nimport CompositeAttributeModel from \"../attributes/CompositeAttributeModel\";\nimport FilterModel from \"../filters/FilterModel\";\n\nimport type { AttributeType, FilterType, ModelOptions } from \"../types\";\nimport { PARAMETER_TYPES } from \"../../constants\";\n\n/**\n * Contains a collection of filters\n */\nexport default class FilterCollection extends BaseCollection<FilterType> {\n /**\n * Construct a collection of filters\n */\n constructor(\n data: Object = {},\n contributions: Object = {},\n modelOptions?: ModelOptions,\n ) {\n super();\n\n if (data && contributions && Array.isArray(contributions.filter)) {\n this.collection = contributions.filter\n .filter((filterContribution) => Object.keys(filterContribution)[0])\n .map((filterContribution) => {\n const [filterKey] = Object.keys(filterContribution);\n const filterData = data[filterKey];\n const filterContributionByKey = filterContribution[filterKey];\n\n const filter = this.createFilter(\n filterKey,\n {\n ...filterData,\n dynamicschema: contributions.dynamicschema,\n },\n filterContributionByKey,\n modelOptions,\n );\n\n if (contributions.listkey) {\n filter.listkey = contributions.listkey;\n }\n\n if (contributions.contexts && filterContributionByKey.contextid) {\n const filterContext = contributions.contexts.find(\n (context) => context.id === filterContributionByKey.contextid,\n );\n if (filterContext) {\n filter.context = filterContext;\n }\n }\n\n return filter;\n });\n }\n }\n\n /**\n */\n createFilter(\n filterKey: string,\n data: Object,\n contributions: Object,\n modelOptions?: ModelOptions,\n ): FilterType {\n const type = contributions.type || \"stringfilter\";\n if (type === \"choicefilter\" && filterKey === \"index\") {\n return new ConceptIndexFilterModel(data, contributions, modelOptions);\n }\n\n if (type.includes(\"rangefilter\")) {\n return new RangeFilterModel(data, contributions, modelOptions);\n }\n\n if (type === \"assignmentfilter\") {\n return new AssignmentFilterModel(data, contributions, modelOptions);\n }\n\n if (type === \"stringfilter\") {\n return new StringFilterModel(data, contributions, modelOptions);\n }\n\n return new FilterModel(data, contributions, modelOptions);\n }\n\n /**\n * Call the reset function on all filters\n *\n * @see {FilterType#reset()}\n */\n reset(): FilterCollection {\n this.collection = this.collection.map((filter) => filter.reset());\n\n return this;\n }\n\n /**\n * Checks if range attribute key equals key\n */\n checkRangeFilterByAttributeKey(\n filter: RangeFilterModel,\n key: string,\n ): boolean {\n const rangeAttribute = filter.attribute;\n\n if (rangeAttribute instanceof CompositeAttributeModel) {\n return (\n rangeAttribute.key === key ||\n (rangeAttribute.start && rangeAttribute.start.key === key) ||\n (rangeAttribute.end && rangeAttribute.end.key === key)\n );\n }\n\n return false;\n }\n\n /**\n * Check if assignment filter attribute matches key\n */\n checkAssignmentFilterByAttributeKey(\n filter: AssignmentFilterModel,\n key: string,\n ): boolean {\n return (\n filter.key === key ||\n filter.user?.key === key ||\n filter.assignmenttype?.key === key\n );\n }\n\n /**\n * Getting the filter by name\n */\n getFilterByAttributeKey(key: string): FilterType | null {\n return (\n this.find((filter) => {\n if (filter instanceof RangeFilterModel) {\n return this.checkRangeFilterByAttributeKey(filter, key);\n }\n\n if (filter instanceof AssignmentFilterModel) {\n return this.checkAssignmentFilterByAttributeKey(filter, key);\n }\n\n return filter.attribute?.key === key;\n }) || null\n );\n }\n\n /**\n * Update Filter by input name and value\n */\n update(attribute: AttributeType, value: string): void {\n const filterToUpdate = attribute.parentKey\n ? this.getFilterByAttributeKey(attribute.parentKey)\n : this.getFilterByAttributeKey(attribute.key);\n\n if (!filterToUpdate) {\n throw new Error(`Can not find filter by attribute key: ${attribute.key}`);\n }\n\n const newFilter = filterToUpdate.clone();\n newFilter.update(attribute, value);\n\n this.collection = this.collection.map((filter) => {\n if (filter.name === newFilter.name) {\n return newFilter;\n }\n\n return filter;\n });\n }\n\n /**\n * Retrieve if all filters are valid\n */\n get isValid(): boolean {\n return this.collection.every((filter) => filter.isValid);\n }\n\n /**\n * Indicates if an active filter is present in the collection\n */\n hasActiveFilters(): boolean {\n return this.collection.some((filter) => filter.isActive());\n }\n\n /**\n */\n get formdata(): { [string]: any } | null {\n let data = {};\n this.filter(\n (f) => f.parameterType === PARAMETER_TYPES.BODY && f.hasValue(),\n ).forEach((f) => {\n data = {\n ...data,\n ...f.formdata,\n };\n });\n return data;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -142,6 +142,14 @@ class StringFilterModel extends _FilterModel.default {
142
142
  shouldHandleFormat() {
143
143
  return (this.operator === "exactly" || this.operator === "isNot") && (this.isIBAN() || this.isZipcode() || this.isBSN());
144
144
  }
145
+
146
+ /**
147
+ */
148
+ get formdata() {
149
+ return {
150
+ [this.param]: this.value
151
+ };
152
+ }
145
153
  }
146
154
  exports.default = StringFilterModel;
147
155
  //# sourceMappingURL=StringFilterModel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StringFilterModel.js","names":["_FilterModel","_interopRequireDefault","require","StringFilterModel","FilterModel","constructor","data","contributions","modelOptions","_defineProperty2","default","update","attribute","value","_inputvalue","_value","params","param","name","removeFormat","inputvalue","reset","isValid","_isValid","toString","shouldHandleFormat","_context","_context2","values","isMultiple","_map","split","call","val","_trim","outputValues","formattedValue","formatValue","push","validate","join","operator","getContribution","isBSN","layouthint","has","isIBAN","isZipcode","replace","exports"],"sources":["../../../src/models/filters/StringFilterModel.js"],"sourcesContent":["// @flow\n\nimport type { AttributeType, FilterType, ModelOptions } from \"../types\";\nimport FilterModel from \"./FilterModel\";\n\n/**\n * StringFilterModel can handle string filters with multiple setting\n */\nexport default class StringFilterModel extends FilterModel {\n _isValid: boolean = true;\n _value: string | null;\n _inputvalue: string;\n\n /**\n */\n constructor(\n data: Object,\n contributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(data, contributions, modelOptions);\n\n this.update(this.attribute, data.value ?? \"\");\n\n // when formatted value set this to initial input value\n this._inputvalue = this._value ?? \"\";\n }\n\n /**\n * Retrieve the parameters with its value for this filter\n */\n get params(): Array<{ name: string, value: ?string }> {\n if (!this.param) {\n return [];\n }\n\n return [\n {\n name: this.param,\n value: this.removeFormat(this.value),\n },\n ];\n }\n\n /**\n * Getting the value of the filter\n */\n get value(): string | null {\n return this._value;\n }\n\n /**\n */\n get inputvalue(): string {\n return this._inputvalue;\n }\n\n /**\n * Reset the value of this filter to undefined\n */\n reset(): FilterType {\n this._inputvalue = \"\";\n this._value = null;\n\n return this;\n }\n\n /**\n */\n get isValid(): boolean {\n return this._isValid;\n }\n\n /**\n * Update this filter with input name and value\n */\n update(attribute: AttributeType, value: string) {\n this._isValid = true;\n this._inputvalue = typeof value !== \"string\" ? value.toString() : value;\n\n if (this.shouldHandleFormat()) {\n const values = this.isMultiple\n ? this._inputvalue.split(\",\").map((val) => val.trim())\n : [this._inputvalue.trim()];\n\n const outputValues = [];\n for (const val of values) {\n const formattedValue = this.formatValue(val);\n if (formattedValue !== \"\") {\n outputValues.push(formattedValue);\n\n if (!this.attribute.validate(formattedValue)) {\n this._isValid = false;\n }\n }\n }\n\n this._value = outputValues.join(\",\");\n } else {\n this._value = value;\n }\n }\n\n /**\n */\n get operator(): string {\n return this.getContribution(\"operator\", \"\");\n }\n\n /**\n */\n formatValue(value: string): string {\n if (this.shouldHandleFormat()) {\n return this.attribute.formatValue(value);\n }\n return value;\n }\n\n /**\n */\n isBSN(): boolean {\n return this.layouthint.has(\"bsn\");\n }\n\n /**\n */\n isIBAN(): boolean {\n return this.layouthint.has(\"iban\");\n }\n\n /**\n */\n isZipcode(): boolean {\n return this.layouthint.has(\"zipcode\");\n }\n\n /**\n */\n removeFormat(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n if (this.shouldHandleFormat()) {\n return value.replace(/[^a-z0-9,]/gi, \"\");\n }\n\n return value;\n }\n\n /**\n */\n shouldHandleFormat(): boolean {\n return (\n (this.operator === \"exactly\" || this.operator === \"isNot\") &&\n (this.isIBAN() || this.isZipcode() || this.isBSN())\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"StringFilterModel.js","names":["_FilterModel","_interopRequireDefault","require","StringFilterModel","FilterModel","constructor","data","contributions","modelOptions","_defineProperty2","default","update","attribute","value","_inputvalue","_value","params","param","name","removeFormat","inputvalue","reset","isValid","_isValid","toString","shouldHandleFormat","_context","_context2","values","isMultiple","_map","split","call","val","_trim","outputValues","formattedValue","formatValue","push","validate","join","operator","getContribution","isBSN","layouthint","has","isIBAN","isZipcode","replace","formdata","exports"],"sources":["../../../src/models/filters/StringFilterModel.js"],"sourcesContent":["// @flow\n\nimport type { AttributeType, FilterType, ModelOptions } from \"../types\";\nimport FilterModel from \"./FilterModel\";\n\n/**\n * StringFilterModel can handle string filters with multiple setting\n */\nexport default class StringFilterModel extends FilterModel {\n _isValid: boolean = true;\n _value: string | null;\n _inputvalue: string;\n\n /**\n */\n constructor(\n data: Object,\n contributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(data, contributions, modelOptions);\n\n this.update(this.attribute, data.value ?? \"\");\n\n // when formatted value set this to initial input value\n this._inputvalue = this._value ?? \"\";\n }\n\n /**\n * Retrieve the parameters with its value for this filter\n */\n get params(): Array<{ name: string, value: ?string }> {\n if (!this.param) {\n return [];\n }\n\n return [\n {\n name: this.param,\n value: this.removeFormat(this.value),\n },\n ];\n }\n\n /**\n * Getting the value of the filter\n */\n get value(): string | null {\n return this._value;\n }\n\n /**\n */\n get inputvalue(): string {\n return this._inputvalue;\n }\n\n /**\n * Reset the value of this filter to undefined\n */\n reset(): FilterType {\n this._inputvalue = \"\";\n this._value = null;\n\n return this;\n }\n\n /**\n */\n get isValid(): boolean {\n return this._isValid;\n }\n\n /**\n * Update this filter with input name and value\n */\n update(attribute: AttributeType, value: string) {\n this._isValid = true;\n this._inputvalue = typeof value !== \"string\" ? value.toString() : value;\n\n if (this.shouldHandleFormat()) {\n const values = this.isMultiple\n ? this._inputvalue.split(\",\").map((val) => val.trim())\n : [this._inputvalue.trim()];\n\n const outputValues = [];\n for (const val of values) {\n const formattedValue = this.formatValue(val);\n if (formattedValue !== \"\") {\n outputValues.push(formattedValue);\n\n if (!this.attribute.validate(formattedValue)) {\n this._isValid = false;\n }\n }\n }\n\n this._value = outputValues.join(\",\");\n } else {\n this._value = value;\n }\n }\n\n /**\n */\n get operator(): string {\n return this.getContribution(\"operator\", \"\");\n }\n\n /**\n */\n formatValue(value: string): string {\n if (this.shouldHandleFormat()) {\n return this.attribute.formatValue(value);\n }\n return value;\n }\n\n /**\n */\n isBSN(): boolean {\n return this.layouthint.has(\"bsn\");\n }\n\n /**\n */\n isIBAN(): boolean {\n return this.layouthint.has(\"iban\");\n }\n\n /**\n */\n isZipcode(): boolean {\n return this.layouthint.has(\"zipcode\");\n }\n\n /**\n */\n removeFormat(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n if (this.shouldHandleFormat()) {\n return value.replace(/[^a-z0-9,]/gi, \"\");\n }\n\n return value;\n }\n\n /**\n */\n shouldHandleFormat(): boolean {\n return (\n (this.operator === \"exactly\" || this.operator === \"isNot\") &&\n (this.isIBAN() || this.isZipcode() || this.isBSN())\n );\n }\n\n /**\n */\n get formdata(): { [string]: any } | null {\n return {\n [this.param]: this.value,\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -5,8 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = void 0;
8
+ var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
8
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
9
10
  var _Href = _interopRequireDefault(require("./Href"));
11
+ var _Constants = require("../../constants/Constants");
10
12
  /**
11
13
  * Class representing the href of a list. It adds paging, sorting and filter parameters where necessary
12
14
  *
@@ -119,7 +121,7 @@ class ListHref extends _Href.default {
119
121
  if (!filters) {
120
122
  return;
121
123
  }
122
- filters.forEach(filter => {
124
+ (0, _filter.default)(filters).call(filters, filter => filter.parameterType === _Constants.PARAMETER_TYPES.QUERY).forEach(filter => {
123
125
  filter.params.forEach(param => {
124
126
  if (param.value != null) {
125
127
  this.setParameter(param.name, param.value, this.prefix);
@@ -1 +1 @@
1
- {"version":3,"file":"ListHref.js","names":["_Href","_interopRequireDefault","require","ListHref","Href","constructor","href","list","isPrefixed","undefined","_defineProperty2","default","_isPrefixed","setParameterNamesFromListModel","setParameterNamesFromHref","_prefix","prefix","_pagingName","pagingName","_pagesizeName","pagesizeName","_sortingName","sortingName","key","paging","name","pagesize","sorting","page","options","length","value","sort","param","filterCollection","pageValue","toString","setParameter","getParameter","pageSizeValue","filters","forEach","filter","params","removeParameter","exports"],"sources":["../../../src/models/href/ListHref.js"],"sourcesContent":["// @flow\nimport Href from \"./Href\";\n\nimport type FilterCollection from \"../filters/FilterCollection\";\nimport type ListModel from \"../list/ListModel\";\nimport type { HrefInput } from \"./Href\";\nimport type Parameter from \"../parameter/Parameter\";\n\n/**\n * Class representing the href of a list. It adds paging, sorting and filter parameters where necessary\n *\n * @augments Href\n */\nexport default class ListHref extends Href {\n _isPrefixed: boolean;\n _prefix: ?string;\n _pagingName: string;\n _pagesizeName: string;\n _sortingName: string;\n\n /**\n * Create a ListHref\n */\n constructor(href?: HrefInput, list?: ListModel, isPrefixed: boolean = true) {\n super(href, undefined);\n\n this._isPrefixed = isPrefixed;\n\n if (list != null) {\n this.setParameterNamesFromListModel(list);\n } else if (href != null && href instanceof ListHref) {\n this.setParameterNamesFromHref(href);\n }\n }\n\n /**\n * Retrieve parameter names from Href\n */\n setParameterNamesFromHref(href: ListHref) {\n this._prefix = this._isPrefixed ? href.prefix : null;\n this._pagingName = href.pagingName;\n this._pagesizeName = href.pagesizeName;\n this._sortingName = href.sortingName;\n }\n\n /**\n * Retrieve parameter names and settings from List model\n */\n setParameterNamesFromListModel(list: ListModel) {\n this._prefix = this._isPrefixed ? list.key : null;\n\n this._pagingName = list.paging ? list.paging.name : \"\";\n this._pagesizeName =\n list.paging && list.paging.pagesize ? list.paging.pagesize.name : \"\";\n\n this._sortingName = list.sorting ? list.sorting.name : \"\";\n\n this.page = list.paging ? list.paging.page : null;\n this.pagesize =\n list.paging && list.paging.pagesize.options.length > 0\n ? list.paging.pagesize.value\n : null;\n\n this.sort = list.sorting && list.sorting.param ? list.sorting.param : null;\n\n this.filterCollection = list.filterCollection;\n }\n\n /**\n * Getting prefix\n */\n get prefix(): ?string {\n return this._prefix;\n }\n\n /**\n * Getting paging name\n */\n get pagingName(): string {\n return this._pagingName;\n }\n\n /**\n * Getting pagesize name\n */\n get pagesizeName(): string {\n return this._pagesizeName;\n }\n\n /**\n * Getting sorting name\n */\n get sortingName(): string {\n return this._sortingName;\n }\n\n /**\n * Setting the current page\n */\n set page(page: ?number) {\n const pageValue = page == null ? null : page.toString();\n\n this.setParameter(this.pagingName, pageValue, this.prefix);\n }\n\n /**\n */\n get page(): ?Parameter {\n return this.getParameter(this.pagingName, this.prefix);\n }\n\n /**\n * Setting the sort value\n */\n set sort(sort: ?string) {\n this.setParameter(this.sortingName, sort, this.prefix);\n }\n\n /**\n * Setting the page size\n */\n set pagesize(pagesize: ?number) {\n const pageSizeValue = pagesize == null ? null : pagesize.toString();\n\n this.setParameter(this.pagesizeName, pageSizeValue, this.prefix);\n }\n\n /**\n * Add filter parameters to the parameter collection\n */\n set filterCollection(filters: FilterCollection) {\n if (!filters) {\n return;\n }\n\n filters.forEach((filter) => {\n filter.params.forEach((param) => {\n if (param.value != null) {\n this.setParameter(param.name, param.value, this.prefix);\n } else {\n this.removeParameter(param.name, this.prefix);\n }\n });\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ListHref.js","names":["_Href","_interopRequireDefault","require","_Constants","ListHref","Href","constructor","href","list","isPrefixed","undefined","_defineProperty2","default","_isPrefixed","setParameterNamesFromListModel","setParameterNamesFromHref","_prefix","prefix","_pagingName","pagingName","_pagesizeName","pagesizeName","_sortingName","sortingName","key","paging","name","pagesize","sorting","page","options","length","value","sort","param","filterCollection","pageValue","toString","setParameter","getParameter","pageSizeValue","filters","_filter","call","filter","parameterType","PARAMETER_TYPES","QUERY","forEach","params","removeParameter","exports"],"sources":["../../../src/models/href/ListHref.js"],"sourcesContent":["// @flow\nimport Href from \"./Href\";\nimport { PARAMETER_TYPES } from \"../../constants/Constants\";\n\nimport type FilterCollection from \"../filters/FilterCollection\";\nimport type ListModel from \"../list/ListModel\";\nimport type { HrefInput } from \"./Href\";\nimport type Parameter from \"../parameter/Parameter\";\n\n/**\n * Class representing the href of a list. It adds paging, sorting and filter parameters where necessary\n *\n * @augments Href\n */\nexport default class ListHref extends Href {\n _isPrefixed: boolean;\n _prefix: ?string;\n _pagingName: string;\n _pagesizeName: string;\n _sortingName: string;\n\n /**\n * Create a ListHref\n */\n constructor(href?: HrefInput, list?: ListModel, isPrefixed: boolean = true) {\n super(href, undefined);\n\n this._isPrefixed = isPrefixed;\n\n if (list != null) {\n this.setParameterNamesFromListModel(list);\n } else if (href != null && href instanceof ListHref) {\n this.setParameterNamesFromHref(href);\n }\n }\n\n /**\n * Retrieve parameter names from Href\n */\n setParameterNamesFromHref(href: ListHref) {\n this._prefix = this._isPrefixed ? href.prefix : null;\n this._pagingName = href.pagingName;\n this._pagesizeName = href.pagesizeName;\n this._sortingName = href.sortingName;\n }\n\n /**\n * Retrieve parameter names and settings from List model\n */\n setParameterNamesFromListModel(list: ListModel) {\n this._prefix = this._isPrefixed ? list.key : null;\n\n this._pagingName = list.paging ? list.paging.name : \"\";\n this._pagesizeName =\n list.paging && list.paging.pagesize ? list.paging.pagesize.name : \"\";\n\n this._sortingName = list.sorting ? list.sorting.name : \"\";\n\n this.page = list.paging ? list.paging.page : null;\n this.pagesize =\n list.paging && list.paging.pagesize.options.length > 0\n ? list.paging.pagesize.value\n : null;\n\n this.sort = list.sorting && list.sorting.param ? list.sorting.param : null;\n\n this.filterCollection = list.filterCollection;\n }\n\n /**\n * Getting prefix\n */\n get prefix(): ?string {\n return this._prefix;\n }\n\n /**\n * Getting paging name\n */\n get pagingName(): string {\n return this._pagingName;\n }\n\n /**\n * Getting pagesize name\n */\n get pagesizeName(): string {\n return this._pagesizeName;\n }\n\n /**\n * Getting sorting name\n */\n get sortingName(): string {\n return this._sortingName;\n }\n\n /**\n * Setting the current page\n */\n set page(page: ?number) {\n const pageValue = page == null ? null : page.toString();\n\n this.setParameter(this.pagingName, pageValue, this.prefix);\n }\n\n /**\n */\n get page(): ?Parameter {\n return this.getParameter(this.pagingName, this.prefix);\n }\n\n /**\n * Setting the sort value\n */\n set sort(sort: ?string) {\n this.setParameter(this.sortingName, sort, this.prefix);\n }\n\n /**\n * Setting the page size\n */\n set pagesize(pagesize: ?number) {\n const pageSizeValue = pagesize == null ? null : pagesize.toString();\n\n this.setParameter(this.pagesizeName, pageSizeValue, this.prefix);\n }\n\n /**\n * Add filter parameters to the parameter collection\n */\n set filterCollection(filters: FilterCollection) {\n if (!filters) {\n return;\n }\n\n filters\n .filter((filter) => filter.parameterType === PARAMETER_TYPES.QUERY)\n .forEach((filter) => {\n filter.params.forEach((param) => {\n if (param.value != null) {\n this.setParameter(param.name, param.value, this.prefix);\n } else {\n this.removeParameter(param.name, this.prefix);\n }\n });\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -11,6 +11,7 @@ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable
11
11
  var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
12
12
  var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
13
13
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
14
+ var _stringify = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/json/stringify"));
14
15
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
15
16
  var _ModularUIResponse = _interopRequireDefault(require("../../modularui/ModularUIResponse"));
16
17
  var _ListItemCollection = _interopRequireDefault(require("../list/ListItemCollection"));
@@ -24,6 +25,7 @@ var _ListItemModel = _interopRequireDefault(require("../list/ListItemModel"));
24
25
  var _PagingModel = _interopRequireDefault(require("../paging/PagingModel"));
25
26
  var _ResourceModel = _interopRequireDefault(require("../base/ResourceModel"));
26
27
  var _SortingModel = _interopRequireDefault(require("../sorting/SortingModel"));
28
+ var _constants = require("../../constants");
27
29
  var _LayoutHints = require("../../constants/LayoutHints");
28
30
  /**
29
31
  * Defines a list object
@@ -39,7 +41,6 @@ class ListModel extends _ResourceModel.default {
39
41
  (0, _defineProperty2.default)(this, "_actionCollection", void 0);
40
42
  (0, _defineProperty2.default)(this, "_listItemCollection", void 0);
41
43
  (0, _defineProperty2.default)(this, "_grouping", void 0);
42
- (0, _defineProperty2.default)(this, "_selfhref", void 0);
43
44
  }
44
45
  /**
45
46
  */
@@ -81,6 +82,13 @@ class ListModel extends _ResourceModel.default {
81
82
  this.detail = (0, _find.default)(models).call(models, childModel => childModel.type === "ListDetail");
82
83
  }
83
84
 
85
+ /**
86
+ */
87
+ get requestMethod() {
88
+ const mustPost = this.filterCollection.some(filter => filter.parameterType === _constants.PARAMETER_TYPES.BODY && filter.hasValue());
89
+ return mustPost ? _constants.HTTP_METHODS.POST : _constants.HTTP_METHODS.GET;
90
+ }
91
+
84
92
  /**
85
93
  * Getting the label of the list
86
94
  */
@@ -141,7 +149,6 @@ class ListModel extends _ResourceModel.default {
141
149
  }
142
150
  this._detail = detail;
143
151
  }
144
- this.setSelfHref();
145
152
  }
146
153
 
147
154
  /**
@@ -292,7 +299,7 @@ class ListModel extends _ResourceModel.default {
292
299
  /**
293
300
  * Sets self href from links collection
294
301
  */
295
- setSelfHref() {
302
+ getSelfHref() {
296
303
  const selfLink = this.links ? this.links.getLinkByKey("self") : null;
297
304
  if (selfLink !== null) {
298
305
  return new _ListHref.default(selfLink.href, this);
@@ -304,10 +311,7 @@ class ListModel extends _ResourceModel.default {
304
311
  * Getting the self link of this list
305
312
  */
306
313
  get selfhref() {
307
- if (!this._selfhref) {
308
- this._selfhref = this.setSelfHref();
309
- }
310
- return this._selfhref;
314
+ return this.getSelfHref();
311
315
  }
312
316
 
313
317
  /**
@@ -381,6 +385,12 @@ class ListModel extends _ResourceModel.default {
381
385
  }
382
386
  return null;
383
387
  }
388
+
389
+ /**
390
+ */
391
+ get formdata() {
392
+ return (0, _stringify.default)(this.filterCollection.formdata);
393
+ }
384
394
  }
385
395
  exports.default = ListModel;
386
396
  //# sourceMappingURL=ListModel.js.map