pne-ui 4.0.45 → 4.0.46

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 (40) hide show
  1. package/README.md +17 -0
  2. package/cjs/component/search-ui/SearchUI.js +14 -11
  3. package/cjs/component/search-ui/SearchUI.js.map +1 -1
  4. package/cjs/component/search-ui/filters/SearchUIFilters.d.ts +1 -0
  5. package/cjs/component/search-ui/filters/SearchUIFilters.js +28 -11
  6. package/cjs/component/search-ui/filters/SearchUIFilters.js.map +1 -1
  7. package/cjs/component/search-ui/filters/state/SearchUIFiltersStoreProvider.d.ts +7 -0
  8. package/cjs/component/search-ui/filters/state/SearchUIFiltersStoreProvider.js +30 -0
  9. package/cjs/component/search-ui/filters/state/SearchUIFiltersStoreProvider.js.map +1 -0
  10. package/cjs/component/search-ui/filters/state/actions.js +139 -41
  11. package/cjs/component/search-ui/filters/state/actions.js.map +1 -1
  12. package/cjs/component/search-ui/filters/state/initial.js +5 -0
  13. package/cjs/component/search-ui/filters/state/initial.js.map +1 -1
  14. package/cjs/component/search-ui/filters/state/retention.d.ts +5 -0
  15. package/cjs/component/search-ui/filters/state/retention.js +106 -0
  16. package/cjs/component/search-ui/filters/state/retention.js.map +1 -0
  17. package/cjs/component/search-ui/filters/state/store.d.ts +11 -1068
  18. package/cjs/component/search-ui/filters/state/store.js +22 -2
  19. package/cjs/component/search-ui/filters/state/store.js.map +1 -1
  20. package/cjs/component/search-ui/filters/state/type.d.ts +16 -1
  21. package/esm/component/search-ui/SearchUI.js +12 -9
  22. package/esm/component/search-ui/SearchUI.js.map +1 -1
  23. package/esm/component/search-ui/filters/SearchUIFilters.d.ts +1 -0
  24. package/esm/component/search-ui/filters/SearchUIFilters.js +26 -10
  25. package/esm/component/search-ui/filters/SearchUIFilters.js.map +1 -1
  26. package/esm/component/search-ui/filters/state/SearchUIFiltersStoreProvider.d.ts +7 -0
  27. package/esm/component/search-ui/filters/state/SearchUIFiltersStoreProvider.js +25 -0
  28. package/esm/component/search-ui/filters/state/SearchUIFiltersStoreProvider.js.map +1 -0
  29. package/esm/component/search-ui/filters/state/actions.js +139 -41
  30. package/esm/component/search-ui/filters/state/actions.js.map +1 -1
  31. package/esm/component/search-ui/filters/state/initial.js +5 -0
  32. package/esm/component/search-ui/filters/state/initial.js.map +1 -1
  33. package/esm/component/search-ui/filters/state/retention.d.ts +5 -0
  34. package/esm/component/search-ui/filters/state/retention.js +98 -0
  35. package/esm/component/search-ui/filters/state/retention.js.map +1 -0
  36. package/esm/component/search-ui/filters/state/store.d.ts +11 -1068
  37. package/esm/component/search-ui/filters/state/store.js +18 -2
  38. package/esm/component/search-ui/filters/state/store.js.map +1 -1
  39. package/esm/component/search-ui/filters/state/type.d.ts +16 -1
  40. package/package.json +1 -1
@@ -1,11 +1,27 @@
1
- import { create } from 'zustand';
1
+ import { createContext, useContext } from 'react';
2
+ import { useStore } from 'zustand';
3
+ import { createStore } from 'zustand/vanilla';
2
4
  import { immer } from 'zustand/middleware/immer';
3
5
  import { enableMapSet } from 'immer';
4
6
  import { getSearchUIFiltersActions } from './actions';
5
7
  import { getSearchUIFiltersInitialState } from './initial';
6
8
  enableMapSet();
7
- export const useSearchUIFiltersStore = create()(immer((set, get) => ({
9
+ export const createSearchUIFiltersStore = () => createStore()(immer((set, get) => ({
8
10
  ...getSearchUIFiltersInitialState(),
9
11
  ...getSearchUIFiltersActions(set, get),
10
12
  })));
13
+ export const SearchUIFiltersStoreContext = createContext(null);
14
+ export const useSearchUIFiltersStoreContext = () => {
15
+ const context = useContext(SearchUIFiltersStoreContext);
16
+ if (!context) {
17
+ throw new Error('SearchUI store is missing. Render SearchUI components inside their store scope.');
18
+ }
19
+ return context;
20
+ };
21
+ export const useSearchUIFiltersStoreApi = () => {
22
+ return useSearchUIFiltersStoreContext().store;
23
+ };
24
+ export const useSearchUIFiltersStore = (selector) => {
25
+ return useStore(useSearchUIFiltersStoreApi(), selector);
26
+ };
11
27
  //# sourceMappingURL=store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../../src/component/search-ui/filters/state/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAC,KAAK,EAAC,MAAM,0BAA0B,CAAA;AAC9C,OAAO,EAAC,YAAY,EAAC,MAAM,OAAO,CAAA;AAElC,OAAO,EAAC,yBAAyB,EAAC,MAAM,WAAW,CAAC;AACpD,OAAO,EAAC,8BAA8B,EAAC,MAAM,WAAW,CAAC;AAEzD,YAAY,EAAE,CAAA;AAEd,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,EAAwB,CACjE,KAAK,CACD,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACX,GAAG,8BAA8B,EAAE;IACnC,GAAG,yBAAyB,CAAC,GAAG,EAAE,GAAG,CAAC;CACzC,CAAC,CACL,CACJ,CAAA"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../../src/component/search-ui/filters/state/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,OAAO,CAAA;AAC/C,OAAO,EAAC,QAAQ,EAAC,MAAM,SAAS,CAAA;AAChC,OAAO,EAAC,WAAW,EAAW,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAC,KAAK,EAAC,MAAM,0BAA0B,CAAA;AAC9C,OAAO,EAAC,YAAY,EAAC,MAAM,OAAO,CAAA;AAElC,OAAO,EAAC,yBAAyB,EAAC,MAAM,WAAW,CAAC;AACpD,OAAO,EAAC,8BAA8B,EAAC,MAAM,WAAW,CAAC;AAEzD,YAAY,EAAE,CAAA;AAId,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAA4B,EAAE,CAAC,WAAW,EAAwB,CACxG,KAAK,CACD,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACX,GAAG,8BAA8B,EAAE;IACnC,GAAG,yBAAyB,CAAC,GAAG,EAAE,GAAG,CAAC;CACzC,CAAC,CACL,CACJ,CAAA;AAOD,MAAM,CAAC,MAAM,2BAA2B,GAAG,aAAa,CAA0C,IAAI,CAAC,CAAA;AAEvG,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAqC,EAAE;IACjF,MAAM,OAAO,GAAG,UAAU,CAAC,2BAA2B,CAAC,CAAA;IACvD,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAA;IACtG,CAAC;IACD,OAAO,OAAO,CAAA;AAClB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAA4B,EAAE;IACpE,OAAO,8BAA8B,EAAE,CAAC,KAAK,CAAA;AACjD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAM,QAA4C,EAAK,EAAE;IAC5F,OAAO,QAAQ,CAAC,0BAA0B,EAAE,EAAE,QAAQ,CAAC,CAAA;AAC3D,CAAC,CAAA"}
@@ -3,6 +3,16 @@ import { AbstractEntity, AbstractEntityAllableCollection, AutoCompleteChoice } f
3
3
  import { SearchUIFiltersConfig } from '../SearchUIFilters';
4
4
  import { SearchUIDefaults } from '../../SearchUIProvider';
5
5
  export type SearchUIFiltersStore = SearchUIFiltersState & SearchUIFiltersActions;
6
+ export type SearchUIRetentionSnapshot = {
7
+ searchConditions: SearchUIConditions;
8
+ appliedSearchCriteria: SearchCriteria | null;
9
+ activeTemplateName: string | null;
10
+ hasUnappliedFilters: boolean;
11
+ possibleCriteria: CriterionTypeEnum[];
12
+ predefinedCriteria: CriterionTypeEnum[];
13
+ exactSearchLabels: ExactCriterionSearchLabelEnum[];
14
+ manualSearch: boolean;
15
+ };
6
16
  export type SearchUIPrefetchedTransactionSessionStatuses = Map<TransactionSessionGroup, TransactionSessionStatus[]>;
7
17
  export type SearchUIPrefetchedData = {
8
18
  transactionSessionStatuses?: SearchUIPrefetchedTransactionSessionStatuses;
@@ -18,24 +28,29 @@ export type SearchUIClearCriteriaUndoSnapshot = SearchUIConditions & {
18
28
  hasUnappliedFilters: boolean;
19
29
  };
20
30
  export type SearchUIFiltersState = SearchUIConditions & {
31
+ initialized: boolean;
21
32
  defaults: SearchUIDefaults;
22
33
  settingsContextName: string;
23
34
  possibleCriteria: CriterionTypeEnum[];
24
35
  predefinedCriteria: CriterionTypeEnum[];
25
36
  exactSearchLabels: ExactCriterionSearchLabelEnum[];
26
37
  template: SearchUITemplate | null;
38
+ activeTemplateName: string | null;
27
39
  templates: SearchUITemplate[];
28
40
  justAddedCriterion: CriterionTypeEnum | null;
29
41
  config?: SearchUIFiltersConfig;
30
42
  prevSearchCriteria: SearchCriteria | null;
43
+ appliedSearchCriteria: SearchCriteria | null;
31
44
  hasUnappliedFilters: boolean;
45
+ restoredFromRetention: boolean;
46
+ skipLastTemplateAutoApply: boolean;
32
47
  onFiltersUpdate: (searchCriteria: SearchCriteria) => void;
33
48
  prefetchedData: SearchUIPrefetchedData;
34
49
  prefetchedDataLoading: SearchUIPrefetchedDataLoading;
35
50
  prefetchedDataMeta: SearchUIPrefetchedDataMeta;
36
51
  };
37
52
  export type SearchUIFiltersActions = {
38
- setInitialState: (state: Partial<SearchUIFiltersState> & Pick<SearchUIFiltersState, 'defaults'>) => void;
53
+ setInitialState: (state: Partial<SearchUIFiltersState> & Pick<SearchUIFiltersState, 'defaults'>, retainedSnapshot?: SearchUIRetentionSnapshot) => void;
39
54
  updateConditions: (conditions: Partial<SearchUIConditions>, options?: {
40
55
  forceSearch?: boolean;
41
56
  resetTemplate?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pne-ui",
3
- "version": "4.0.45",
3
+ "version": "4.0.46",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",