@bahmni/widgets 0.0.1-dev.358 → 0.0.1-dev.361

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 (31) hide show
  1. package/dist/{DocumentsTable-B_UBdjOK.js → DocumentsTable-hIN-dz3z.js} +1 -1
  2. package/dist/{FormsTable-CObdn-7l.js → FormsTable-D1m7h119.js} +1 -1
  3. package/dist/{Observations-D5XOCWhp.js → Observations-CyhP-oyY.js} +1 -1
  4. package/dist/{index-BaQlViao.js → index-DPA_ps7F.js} +22725 -22271
  5. package/dist/index.css +1 -1
  6. package/dist/index.js +1 -1
  7. package/dist/search/commonSearch/CommonSearchWidget.d.ts.map +1 -1
  8. package/dist/search/commonSearch/ResultsTable.d.ts +3 -2
  9. package/dist/search/commonSearch/ResultsTable.d.ts.map +1 -1
  10. package/dist/search/commonSearch/__tests__/__mocks__/resultsTableMocks.d.ts +5 -1
  11. package/dist/search/commonSearch/__tests__/__mocks__/resultsTableMocks.d.ts.map +1 -1
  12. package/dist/search/commonSearch/__tests__/__mocks__/utilsMocks.d.ts +6 -1
  13. package/dist/search/commonSearch/__tests__/__mocks__/utilsMocks.d.ts.map +1 -1
  14. package/dist/search/commonSearch/models.d.ts +9 -0
  15. package/dist/search/commonSearch/models.d.ts.map +1 -1
  16. package/dist/search/commonSearch/schema.json.d.ts +40 -0
  17. package/dist/search/commonSearch/utils.d.ts +2 -0
  18. package/dist/search/commonSearch/utils.d.ts.map +1 -1
  19. package/dist/searchPatient/PatientSearchResults.d.ts +15 -0
  20. package/dist/searchPatient/PatientSearchResults.d.ts.map +1 -0
  21. package/dist/searchPatient/SearchPatient.d.ts +3 -3
  22. package/dist/searchPatient/SearchPatient.d.ts.map +1 -1
  23. package/dist/searchPatient/SearchPatientInput.d.ts +20 -0
  24. package/dist/searchPatient/SearchPatientInput.d.ts.map +1 -0
  25. package/dist/searchPatient/appointmentSearchResultActionHandler.d.ts +13 -0
  26. package/dist/searchPatient/appointmentSearchResultActionHandler.d.ts.map +1 -0
  27. package/dist/searchPatient/index.d.ts +1 -0
  28. package/dist/searchPatient/index.d.ts.map +1 -1
  29. package/dist/searchPatient/utils.d.ts +8 -0
  30. package/dist/searchPatient/utils.d.ts.map +1 -0
  31. package/package.json +3 -2
@@ -65,6 +65,12 @@ declare const _default: {
65
65
  "items": { "$ref": "#/definitions/resultFieldConfig" },
66
66
  "minItems": 1,
67
67
  "description": "Defines the columns shown in the results table after a successful search"
68
+ },
69
+ "actions": {
70
+ "type": "array",
71
+ "minItems": 1,
72
+ "items": { "$ref": "#/definitions/actionConfig" },
73
+ "description": "Actions available in this context. Optional at the context level, but required when any resultField references an action key. Each action key must be unique within the context."
68
74
  }
69
75
  }
70
76
  },
@@ -97,6 +103,10 @@ declare const _default: {
97
103
  "enum": ["text", "select", "dateRange", "numeric"],
98
104
  "description": "When present, a filter control appears for this column"
99
105
  },
106
+ "action": {
107
+ "type": "string",
108
+ "description": "Key of an action defined in the context's actions array. When the referenced action has type navigate, the cell renders as a link. If the user holds none of the action's required privileges, the cell renders as plain text. Referencing a key not present in the actions array is a config error and blocks the widget."
109
+ },
100
110
  "transform": {
101
111
  "type": "string",
102
112
  "enum": ["formatDate", "formatTime", "formatDateTime", "formatAge", "formatGender", "formatCountry", "formatSearchResult"],
@@ -241,6 +251,36 @@ declare const _default: {
241
251
  "description": "UUID of the concept value set to restrict lookup results"
242
252
  }
243
253
  }
254
+ },
255
+ "actionConfig": {
256
+ "oneOf": [
257
+ { "$ref": "#/definitions/navigateAction" }
258
+ ]
259
+ },
260
+ "navigateAction": {
261
+ "type": "object",
262
+ "required": ["key", "type", "navigationURL"],
263
+ "additionalProperties": true,
264
+ "properties": {
265
+ "key": {
266
+ "type": "string",
267
+ "description": "Unique identifier for this action within the context. Referenced by resultField entries via their action field."
268
+ },
269
+ "type": {
270
+ "type": "string",
271
+ "const": "navigate",
272
+ "description": "Renders the column cell as a link navigating to navigationURL."
273
+ },
274
+ "navigationURL": {
275
+ "type": "string",
276
+ "description": "URL template for navigation. Placeholders use {expression} syntax where the content must be a valid JSONata expression evaluated against the result row. For example, {uuid} resolves the uuid field; {patient.uuid} resolves a nested field."
277
+ },
278
+ "requiredPrivileges": {
279
+ "type": "array",
280
+ "items": { "type": "string" },
281
+ "description": "Privileges required to activate this action. Any one suffices. An empty array makes the action available to all users."
282
+ }
283
+ }
244
284
  }
245
285
  }
246
286
  }
@@ -19,4 +19,6 @@ export declare const buildPayload: (resolvedRows: ResolvedRow[], entity: string,
19
19
  export declare const validateRows: (rows: CriterionRow[], criteria: CriterionConfig[], criterionError: string, valueError: string, rangeOrderMessage: string, t: (key: string, options?: {
20
20
  defaultValue?: string;
21
21
  }) => string) => CriterionRow[];
22
+ export declare const validateConfigForActions: (contexts: SearchContextConfig[]) => string | null;
23
+ export declare const resolveNavigationURL: (template: string, rowData: unknown) => Promise<string | null>;
22
24
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/search/commonSearch/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAQd,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAS1B,OAAO,EACL,eAAe,EACf,YAAY,EACZ,cAAc,EAEd,WAAW,EACX,WAAW,EAGX,aAAa,EACb,mBAAmB,EACnB,SAAS,EACV,MAAM,UAAU,CAAC;AAElB,MAAM,MAAM,eAAe,GAAG,CAC5B,KAAK,EAAE,MAAM,EACb,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,KACvB,MAAM,GAAG,IAAI,CAAC;AAEnB,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC;AAEnD,eAAO,MAAM,kBAAkB,GAC7B,OAAO,MAAM,EACb,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,KACzB,MAAM,GAAG,IAIX,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAa5D,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,SAAS,mBAAmB,CAAC,SAAS,CAAC,KACtC,cACiE,CAAC;AAOrE,eAAO,MAAM,aAAa,GACxB,OAAO,cAAc,GAAG,IAAI,EAC5B,OAAO,WAAW,EAClB,cAAc,MAAM,KACnB,MAAM,GAAG,IAOX,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,OAAO,cAAc,GAAG,IAAI,EAC5B,OAAO,SAAS,EAChB,cAAc,MAAM,KACnB,MAAM,GAAG,IAIX,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,OAAO,cAAc,GAAG,IAAI,EAC5B,OAAO,WAAW,EAClB,cAAc,MAAM,KACnB,MAAM,GAAG,IAaX,CAAC;AAKF,eAAO,MAAM,qBAAqB,GAChC,UAAU,mBAAmB,EAAE,EAC/B,gBAAgB,aAAa,EAAE,GAAG,IAAI,KACrC,mBAAmB,EASf,CAAC;AAER,eAAO,MAAM,OAAO,GAAI,cAAc,MAAM,GAAG,IAAI,KAAG,YAMpD,CAAC;AAEH,eAAO,MAAM,WAAW,GAAI,SAAS,mBAAmB,KAAG,YAAY,EAItE,CAAC;AAeF,eAAO,MAAM,uBAAuB,GAClC,UAAU,eAAe,EAAE,EAC3B,MAAM,YAAY,EAAE,EACpB,cAAc,MAAM,KACnB,eAAe,EAGjB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,UAAU,eAAe,EAAE,EAC3B,MAAM,YAAY,EAAE,KACnB,eAAe,EAGjB,CAAC;AAEF,eAAO,MAAM,SAAS,GACpB,MAAM,YAAY,EAAE,EACpB,OAAO,MAAM,EACb,SAAS,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,YAAY,CAAC,KACpD,YAAY,EACqD,CAAC;AAoFrE,eAAO,MAAM,WAAW,GACtB,MAAM,YAAY,EAAE,EACpB,UAAU,eAAe,EAAE,KAC1B,WAAW,EAcR,CAAC;AAEP,eAAO,MAAM,YAAY,GACvB,cAAc,WAAW,EAAE,EAC3B,QAAQ,MAAM,EACd,cAAc,MAAM,KACnB,aASD,CAAC;AAEH,eAAO,MAAM,YAAY,GACvB,MAAM,YAAY,EAAE,EACpB,UAAU,eAAe,EAAE,EAC3B,gBAAgB,MAAM,EACtB,YAAY,MAAM,EAClB,mBAAmB,MAAM,EACzB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,MAAM,KAC9D,YAAY,EAwBX,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/search/commonSearch/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { PatientSearchField, PatientSearchResultBundle } from '@bahmni/services';
2
+ interface PatientSearchResultsProps {
3
+ data: PatientSearchResultBundle | undefined;
4
+ searchTerm: string;
5
+ isLoading: boolean;
6
+ isError: boolean;
7
+ isAdvancedSearch: boolean;
8
+ searchFields: PatientSearchField[];
9
+ selectedFieldType: string;
10
+ patientDetailUrl?: string;
11
+ setData: (data: PatientSearchResultBundle) => void;
12
+ }
13
+ declare const PatientSearchResults: ({ data, searchTerm, isLoading, isError, isAdvancedSearch, searchFields, selectedFieldType, patientDetailUrl, setData, }: PatientSearchResultsProps) => import("react/jsx-runtime").JSX.Element;
14
+ export default PatientSearchResults;
15
+ //# sourceMappingURL=PatientSearchResults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PatientSearchResults.d.ts","sourceRoot":"","sources":["../../src/searchPatient/PatientSearchResults.tsx"],"names":[],"mappings":"AAQA,OAAO,EAEL,kBAAkB,EAElB,yBAAyB,EAG1B,MAAM,kBAAkB,CAAC;AAmB1B,UAAU,yBAAyB;IACjC,IAAI,EAAE,yBAAyB,GAAG,SAAS,CAAC;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,kBAAkB,EAAE,CAAC;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,CAAC,IAAI,EAAE,yBAAyB,KAAK,IAAI,CAAC;CACpD;AAED,QAAA,MAAM,oBAAoB,GAAI,yHAU3B,yBAAyB,4CA8L3B,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -1,13 +1,13 @@
1
- import { AppointmentSearchField, PatientSearchField, PatientSearchResultBundle } from '@bahmni/services';
1
+ import { AppointmentSearchField, PatientSearchField } from '@bahmni/services';
2
2
  interface SearchPatientProps {
3
3
  buttonTitle: string;
4
4
  searchBarPlaceholder: string;
5
5
  patientSearch?: {
6
+ patientDetailUrl?: string;
6
7
  customAttributes: PatientSearchField[];
7
8
  appointment: AppointmentSearchField[];
8
9
  };
9
- onSearch: (data: PatientSearchResultBundle | undefined, searchTerm: string, isLoading: boolean, isError: boolean, isAdvancedSearch: boolean, selectedFieldType?: string) => void;
10
10
  }
11
- declare const SearchPatient: ({ buttonTitle, searchBarPlaceholder, patientSearch, onSearch, }: SearchPatientProps) => import("react/jsx-runtime").JSX.Element;
11
+ declare const SearchPatient: ({ buttonTitle, searchBarPlaceholder, patientSearch, }: SearchPatientProps) => import("react/jsx-runtime").JSX.Element;
12
12
  export default SearchPatient;
13
13
  //# sourceMappingURL=SearchPatient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SearchPatient.d.ts","sourceRoot":"","sources":["../../src/searchPatient/SearchPatient.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,yBAAyB,EAE1B,MAAM,kBAAkB,CAAC;AAQ1B,UAAU,kBAAkB;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE;QACd,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;QACvC,WAAW,EAAE,sBAAsB,EAAE,CAAC;KACvC,CAAC;IACF,QAAQ,EAAE,CACR,IAAI,EAAE,yBAAyB,GAAG,SAAS,EAC3C,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,OAAO,EACzB,iBAAiB,CAAC,EAAE,MAAM,KACvB,IAAI,CAAC;CACX;AAED,QAAA,MAAM,aAAa,GAAI,iEAKpB,kBAAkB,4CA+TpB,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"SearchPatient.d.ts","sourceRoot":"","sources":["../../src/searchPatient/SearchPatient.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAGnB,MAAM,kBAAkB,CAAC;AAS1B,UAAU,kBAAkB;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE;QACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;QACvC,WAAW,EAAE,sBAAsB,EAAE,CAAC;KACvC,CAAC;CACH;AAED,QAAA,MAAM,aAAa,GAAI,uDAIpB,kBAAkB,4CAsOpB,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,20 @@
1
+ interface SearchPatientInputProps {
2
+ buttonTitle: string;
3
+ searchBarPlaceholder: string;
4
+ isLoading: boolean;
5
+ searchInput: string;
6
+ advanceSearchInput: string;
7
+ validationError: string;
8
+ dropdownItems: string[];
9
+ selectedDropdownItem: string;
10
+ onNameChange: (value: string) => void;
11
+ onAdvanceChange: (value: string) => void;
12
+ onNameSearch: () => void;
13
+ onAdvanceSearch: () => void;
14
+ onNameClear: () => void;
15
+ onAdvanceClear: () => void;
16
+ onDropdownChange: (item: string) => void;
17
+ }
18
+ declare const SearchPatientInput: ({ buttonTitle, searchBarPlaceholder, isLoading, searchInput, advanceSearchInput, validationError, dropdownItems, selectedDropdownItem, onNameChange, onAdvanceChange, onNameSearch, onAdvanceSearch, onNameClear, onAdvanceClear, onDropdownChange, }: SearchPatientInputProps) => import("react/jsx-runtime").JSX.Element;
19
+ export default SearchPatientInput;
20
+ //# sourceMappingURL=SearchPatientInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchPatientInput.d.ts","sourceRoot":"","sources":["../../src/searchPatient/SearchPatientInput.tsx"],"names":[],"mappings":"AAIA,UAAU,uBAAuB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAED,QAAA,MAAM,kBAAkB,GAAI,uPAgBzB,uBAAuB,4CAmGzB,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { AppointmentSearchResult, SearchActionConfig, UserPrivilege, PatientSearchResultBundle, Notification } from '@bahmni/services';
2
+ import { NavigateFunction } from 'react-router-dom';
3
+ import { PatientSearchViewModel } from './utils';
4
+ export declare const getAppointmentStatusClassName: (status: string) => string;
5
+ export declare const updateAppointmentStatusInResults: (appointmentPatientData: AppointmentSearchResult[], responseUuid: string, responseStatus: string) => AppointmentSearchResult[];
6
+ export declare const handleActionNavigation: (navigationUrl: string, options: Record<string, string>, navigate: NavigateFunction) => void;
7
+ export declare const handleActionButtonClick: (action: SearchActionConfig, row: PatientSearchViewModel<AppointmentSearchResult>, patientSearchData: PatientSearchResultBundle, setPatientSearchData: (data: PatientSearchResultBundle) => void, navigate: NavigateFunction, addNotification: (notification: Omit<Notification, "id">) => void, t: (key: string) => string) => Promise<void>;
8
+ export declare const shouldRenderActionButton: (action: SearchActionConfig, userPrivileges: UserPrivilege[], row: PatientSearchViewModel<AppointmentSearchResult>) => boolean;
9
+ export declare const appointmentServiceValidator: (values: string[] | undefined, excludeValues: string[] | undefined, row: PatientSearchViewModel<AppointmentSearchResult>) => boolean;
10
+ export declare const privilegeValidator: (userPrivileges: UserPrivilege[]) => (rules: string[]) => boolean;
11
+ export declare const statusValidator: (rules: string[], row: PatientSearchViewModel<AppointmentSearchResult>) => boolean;
12
+ export declare const appDateValidator: (rules: string[], row: PatientSearchViewModel<AppointmentSearchResult>) => boolean;
13
+ //# sourceMappingURL=appointmentSearchResultActionHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appointmentSearchResultActionHandler.d.ts","sourceRoot":"","sources":["../../src/searchPatient/appointmentSearchResultActionHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAGlB,aAAa,EAEb,yBAAyB,EAEzB,KAAK,YAAY,EAClB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEjD,eAAO,MAAM,6BAA6B,GAAI,QAAQ,MAAM,KAAG,MAkB9D,CAAC;AAEF,eAAO,MAAM,gCAAgC,GAC3C,wBAAwB,uBAAuB,EAAE,EACjD,cAAc,MAAM,EACpB,gBAAgB,MAAM,KACrB,uBAAuB,EAOzB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,eAAe,MAAM,EACrB,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,UAAU,gBAAgB,SAU3B,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,QAAQ,kBAAkB,EAC1B,KAAK,sBAAsB,CAAC,uBAAuB,CAAC,EACpD,mBAAmB,yBAAyB,EAC5C,sBAAsB,CAAC,IAAI,EAAE,yBAAyB,KAAK,IAAI,EAC/D,UAAU,gBAAgB,EAC1B,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,IAAI,EACjE,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,kBAiE3B,CAAC;AAQF,eAAO,MAAM,wBAAwB,GACnC,QAAQ,kBAAkB,EAC1B,gBAAgB,aAAa,EAAE,EAC/B,KAAK,sBAAsB,CAAC,uBAAuB,CAAC,KACnD,OAcF,CAAC;AAEF,eAAO,MAAM,2BAA2B,GACtC,QAAQ,MAAM,EAAE,GAAG,SAAS,EAC5B,eAAe,MAAM,EAAE,GAAG,SAAS,EACnC,KAAK,sBAAsB,CAAC,uBAAuB,CAAC,KACnD,OASF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC5B,gBAAgB,aAAa,EAAE,MAAM,OAAO,MAAM,EAAE,YAEpD,CAAC;AAEJ,eAAO,MAAM,eAAe,GAC1B,OAAO,MAAM,EAAE,EACf,KAAK,sBAAsB,CAAC,uBAAuB,CAAC,YAIrD,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,OAAO,MAAM,EAAE,EACf,KAAK,sBAAsB,CAAC,uBAAuB,CAAC,YAkBrD,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export { default as SearchPatient } from './SearchPatient';
2
+ export type { PatientSearchViewModel } from './utils';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/searchPatient/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/searchPatient/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { PatientSearchResult, PatientSearchResultBundle, PatientSearchField } from '@bahmni/services';
2
+ export type PatientSearchViewModel<T extends PatientSearchResult> = T & {
3
+ id: string;
4
+ name: string;
5
+ [key: string]: unknown;
6
+ };
7
+ export declare const formatPatientSearchResult: (patientSearchResultBundle: PatientSearchResultBundle | undefined, patientSearchFields?: PatientSearchField[]) => PatientSearchViewModel<PatientSearchResult>[];
8
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/searchPatient/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,mBAAmB,IAAI,CAAC,GAAG;IACtE,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAgBF,eAAO,MAAM,yBAAyB,GACpC,2BAA2B,yBAAyB,GAAG,SAAS,EAChE,sBAAqB,kBAAkB,EAAO,KAC7C,sBAAsB,CAAC,mBAAmB,CAAC,EAkC7C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bahmni/widgets",
3
- "version": "0.0.1-dev.358",
3
+ "version": "0.0.1-dev.361",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -34,7 +34,8 @@
34
34
  "@bahmni/services": "^0.0.1-0",
35
35
  "@tanstack/react-query": "^5.85.5",
36
36
  "react": ">=18.0.0",
37
- "react-dom": ">=18.0.0"
37
+ "react-dom": ">=18.0.0",
38
+ "react-router-dom": ">=6.0.0"
38
39
  },
39
40
  "description": "Reusable React display controls and components extracted for sharing across Bahmni modules. Includes common clinical widgets and notification provider to avoid duplication across different Bahmni applications.",
40
41
  "files": [