pne-ui 3.1.6 → 3.2.1

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 (49) hide show
  1. package/cjs/component/search-ui/SearchUI.js +1 -1
  2. package/cjs/component/search-ui/SearchUI.js.map +1 -1
  3. package/cjs/component/search-ui/filters/SearchUIFilters.d.ts +16 -1
  4. package/cjs/component/search-ui/filters/SearchUIFilters.js +60 -18
  5. package/cjs/component/search-ui/filters/SearchUIFilters.js.map +1 -1
  6. package/cjs/component/search-ui/filters/component/template/SearchUITemplatePanel.js +5 -2
  7. package/cjs/component/search-ui/filters/component/template/SearchUITemplatePanel.js.map +1 -1
  8. package/cjs/component/search-ui/filters/component/template/SearchUITemplatesMenu.js +137 -14
  9. package/cjs/component/search-ui/filters/component/template/SearchUITemplatesMenu.js.map +1 -1
  10. package/cjs/component/search-ui/filters/state/actions.js +192 -96
  11. package/cjs/component/search-ui/filters/state/actions.js.map +1 -1
  12. package/cjs/component/search-ui/filters/state/baseline.d.ts +17 -0
  13. package/cjs/component/search-ui/filters/state/baseline.js +155 -0
  14. package/cjs/component/search-ui/filters/state/baseline.js.map +1 -0
  15. package/cjs/component/search-ui/filters/state/initial.js +4 -0
  16. package/cjs/component/search-ui/filters/state/initial.js.map +1 -1
  17. package/cjs/component/search-ui/filters/state/store.d.ts +302 -4
  18. package/cjs/component/search-ui/filters/state/type.d.ts +35 -7
  19. package/cjs/component/search-ui/filters/state/undo.d.ts +2 -1
  20. package/cjs/component/search-ui/filters/state/undo.js +8 -1
  21. package/cjs/component/search-ui/filters/state/undo.js.map +1 -1
  22. package/cjs/component/search-ui/filters/types.d.ts +12 -0
  23. package/cjs/exports/search.d.ts +1 -1
  24. package/cjs/exports/search.js.map +1 -1
  25. package/esm/component/search-ui/SearchUI.js +1 -1
  26. package/esm/component/search-ui/SearchUI.js.map +1 -1
  27. package/esm/component/search-ui/filters/SearchUIFilters.d.ts +16 -1
  28. package/esm/component/search-ui/filters/SearchUIFilters.js +60 -18
  29. package/esm/component/search-ui/filters/SearchUIFilters.js.map +1 -1
  30. package/esm/component/search-ui/filters/component/template/SearchUITemplatePanel.js +5 -2
  31. package/esm/component/search-ui/filters/component/template/SearchUITemplatePanel.js.map +1 -1
  32. package/esm/component/search-ui/filters/component/template/SearchUITemplatesMenu.js +139 -16
  33. package/esm/component/search-ui/filters/component/template/SearchUITemplatesMenu.js.map +1 -1
  34. package/esm/component/search-ui/filters/state/actions.js +192 -96
  35. package/esm/component/search-ui/filters/state/actions.js.map +1 -1
  36. package/esm/component/search-ui/filters/state/baseline.d.ts +17 -0
  37. package/esm/component/search-ui/filters/state/baseline.js +146 -0
  38. package/esm/component/search-ui/filters/state/baseline.js.map +1 -0
  39. package/esm/component/search-ui/filters/state/initial.js +4 -0
  40. package/esm/component/search-ui/filters/state/initial.js.map +1 -1
  41. package/esm/component/search-ui/filters/state/store.d.ts +302 -4
  42. package/esm/component/search-ui/filters/state/type.d.ts +35 -7
  43. package/esm/component/search-ui/filters/state/undo.d.ts +2 -1
  44. package/esm/component/search-ui/filters/state/undo.js +6 -0
  45. package/esm/component/search-ui/filters/state/undo.js.map +1 -1
  46. package/esm/component/search-ui/filters/types.d.ts +12 -0
  47. package/esm/exports/search.d.ts +1 -1
  48. package/esm/exports/search.js.map +1 -1
  49. package/package.json +1 -1
@@ -339,7 +339,128 @@ export declare const useSearchUIFiltersStore: import("zustand").UseBoundStore<Om
339
339
  description?: string | undefined;
340
340
  } | null;
341
341
  };
342
+ } | {
343
+ key: string;
344
+ descriptionKey?: string | undefined;
345
+ searchConditions: {
346
+ criteria?: import("../types").CriterionTypeEnum[] | undefined;
347
+ multigetCriteria?: {
348
+ entityType: import("../types").LinkedEntityTypeEnum;
349
+ filterType: import("../types").MultichoiceFilterTypeEnum;
350
+ searchString: string;
351
+ selectedItems: string;
352
+ deselectedItems: string;
353
+ selectedItemNames: string;
354
+ deselectedItemNames: string;
355
+ }[] | undefined;
356
+ status?: "ANY" | "DISABLED" | "ENABLED" | undefined;
357
+ threeD?: import("../types").ThreeDCriterionEnum | undefined;
358
+ exactSearchLabel?: import("../types").ExactCriterionSearchLabelEnum | undefined;
359
+ exactSearchValue?: string | undefined;
360
+ ordersSearchLabel?: "merchant_invoice_id" | "order_id" | "processor_order_id" | "purpose" | "transaction_amount" | "session_token" | "customer_phone" | "customer_email" | "customer_ip" | "customer_ip_country" | "customer_billing_country" | "customer_dna_id" | "customer_id" | "batch_id" | "source_bank_name" | "source_country" | "source_from_order_id" | "source_bin" | "source_bin_range_from_order_id" | "source_last4" | "source_bin_last4" | "source_auth_code" | "source_arn" | "source_rrn" | "source_card_holder" | "source_card_ref_id" | "dest_bank_name" | "dest_country" | "dest_from_order_id" | "dest_bin" | "dest_bin_range_from_order_id" | "dest_last4" | "dest_bin_last" | "dest_auth_code" | "dest_arn" | "dest_rrn" | "dest_card_ref_id" | "account_number" | "routing_number" | "reader_key_serial_number" | "reader_device_serial_number" | "device_serial_number" | "phone_serial_number" | "phone_imei" | "reader_id" | "registration_info_id" | "inn" | "mtcn" | "rebill" | "swift_number" | "webmoney_account" | "yamoney_account" | "wire_account" | "card_number_hash_hash" | undefined;
361
+ ordersSearchValue?: string | undefined;
362
+ currencies?: {
363
+ entities?: {
364
+ id: number;
365
+ displayName: string;
366
+ }[] | undefined;
367
+ all: boolean;
368
+ } | undefined;
369
+ countries?: {
370
+ entities?: {
371
+ id: number;
372
+ displayName: string;
373
+ theCode: string;
374
+ theCode3: string;
375
+ }[] | undefined;
376
+ all: boolean;
377
+ } | undefined;
378
+ orderDateType?: "SESSION_CREATED" | "SESSION_STATUS_CHANGED" | "TX_CREATED" | "BANK" | "TX_SETTLED" | "TX_UNSETTLED" | undefined;
379
+ dateRangeSpec?: {
380
+ dateRangeSpecType: "EXACTLY" | "TODAY" | "YESTERDAY" | "THIS_WEEK" | "LAST_WEEK" | "THIS_MONTH" | "LAST_MONTH" | "DAYS_BEFORE" | "HOURS_BEFORE" | "DATE_INDEPENDENT";
381
+ dateFrom: Date | null;
382
+ dateTo: Date | null;
383
+ beforeCount: number;
384
+ } | undefined;
385
+ cardTypes?: {
386
+ entities?: {
387
+ id: number;
388
+ displayName: string;
389
+ }[] | undefined;
390
+ all: boolean;
391
+ } | undefined;
392
+ transactionTypes?: {
393
+ entities?: {
394
+ id: number;
395
+ displayName: string;
396
+ }[] | undefined;
397
+ all: boolean;
398
+ } | undefined;
399
+ transactionStatuses?: {
400
+ entities?: {
401
+ id: number;
402
+ displayName: string;
403
+ }[] | undefined;
404
+ all: boolean;
405
+ } | undefined;
406
+ transactionSessionStatusGroup?: import("../types").TransactionSessionGroup | undefined;
407
+ transactionSessionStatuses?: {
408
+ displayName: string;
409
+ selected: boolean;
410
+ }[] | undefined;
411
+ projectCurrency?: {
412
+ convertToUserCurrency: boolean;
413
+ currency: {
414
+ id: number;
415
+ displayName: string;
416
+ };
417
+ } | undefined;
418
+ grouping?: {
419
+ dateType: "MONTH" | "DAY" | "CLOSE_DAY" | "SETTLEMENT_DAY" | "SETTLEMENT_MONTH";
420
+ availableGroupingTypes: ("CURRENCY" | "MERCHANT" | "ENDPOINT" | "PROCESSOR" | "MANAGER" | "PROJECT" | "GATE" | "MONTH" | "DAY" | "CLOSE_DAY" | "SETTLEMENT_DAY" | "SETTLEMENT_MONTH" | "CARD_TYPE" | "MID" | "COUNTERPARTY" | "PROJECT_CODE" | "DATE")[];
421
+ selectedGroupingTypes: ("CURRENCY" | "MERCHANT" | "ENDPOINT" | "PROCESSOR" | "MANAGER" | "PROJECT" | "GATE" | "MONTH" | "DAY" | "CLOSE_DAY" | "SETTLEMENT_DAY" | "SETTLEMENT_MONTH" | "CARD_TYPE" | "MID" | "COUNTERPARTY" | "PROJECT_CODE" | "DATE")[];
422
+ } | undefined;
423
+ recurrenceTypes?: {
424
+ entities?: {
425
+ id: number;
426
+ displayName: string;
427
+ }[] | undefined;
428
+ all: boolean;
429
+ } | undefined;
430
+ recurrenceStatuses?: {
431
+ entities?: {
432
+ id: number;
433
+ displayName: string;
434
+ }[] | undefined;
435
+ all: boolean;
436
+ } | undefined;
437
+ mfoConfigurationTypes?: {
438
+ entities?: {
439
+ id: number;
440
+ displayName: string;
441
+ }[] | undefined;
442
+ all: boolean;
443
+ } | undefined;
444
+ markerTypes?: {
445
+ entities?: {
446
+ id: number;
447
+ displayName: string;
448
+ }[] | undefined;
449
+ all: boolean;
450
+ } | undefined;
451
+ markerStatus?: "any" | "unprocessed" | "processed" | undefined;
452
+ processorLogEntryType?: {
453
+ id: number;
454
+ displayName: string;
455
+ } | null | undefined;
456
+ errorCode?: {
457
+ displayName: string;
458
+ choiceId: number;
459
+ description?: string | undefined;
460
+ } | null | undefined;
461
+ };
342
462
  } | null;
463
+ templateSource: import("./type").SearchUITemplateSource | null;
343
464
  templates: {
344
465
  name: string;
345
466
  searchConditions: {
@@ -475,6 +596,128 @@ export declare const useSearchUIFiltersStore: import("zustand").UseBoundStore<Om
475
596
  dateRangeSpecTypes?: ("EXACTLY" | "TODAY" | "YESTERDAY" | "THIS_WEEK" | "LAST_WEEK" | "THIS_MONTH" | "LAST_MONTH" | "DAYS_BEFORE" | "HOURS_BEFORE" | "DATE_INDEPENDENT")[] | undefined;
476
597
  } | undefined;
477
598
  manualSearch?: boolean | undefined;
599
+ predefinedTemplates?: {
600
+ key: string;
601
+ descriptionKey?: string | undefined;
602
+ searchConditions: {
603
+ criteria?: import("../types").CriterionTypeEnum[] | undefined;
604
+ multigetCriteria?: {
605
+ entityType: import("../types").LinkedEntityTypeEnum;
606
+ filterType: import("../types").MultichoiceFilterTypeEnum;
607
+ searchString: string;
608
+ selectedItems: string;
609
+ deselectedItems: string;
610
+ selectedItemNames: string;
611
+ deselectedItemNames: string;
612
+ }[] | undefined;
613
+ status?: "ANY" | "DISABLED" | "ENABLED" | undefined;
614
+ threeD?: import("../types").ThreeDCriterionEnum | undefined;
615
+ exactSearchLabel?: import("../types").ExactCriterionSearchLabelEnum | undefined;
616
+ exactSearchValue?: string | undefined;
617
+ ordersSearchLabel?: "merchant_invoice_id" | "order_id" | "processor_order_id" | "purpose" | "transaction_amount" | "session_token" | "customer_phone" | "customer_email" | "customer_ip" | "customer_ip_country" | "customer_billing_country" | "customer_dna_id" | "customer_id" | "batch_id" | "source_bank_name" | "source_country" | "source_from_order_id" | "source_bin" | "source_bin_range_from_order_id" | "source_last4" | "source_bin_last4" | "source_auth_code" | "source_arn" | "source_rrn" | "source_card_holder" | "source_card_ref_id" | "dest_bank_name" | "dest_country" | "dest_from_order_id" | "dest_bin" | "dest_bin_range_from_order_id" | "dest_last4" | "dest_bin_last" | "dest_auth_code" | "dest_arn" | "dest_rrn" | "dest_card_ref_id" | "account_number" | "routing_number" | "reader_key_serial_number" | "reader_device_serial_number" | "device_serial_number" | "phone_serial_number" | "phone_imei" | "reader_id" | "registration_info_id" | "inn" | "mtcn" | "rebill" | "swift_number" | "webmoney_account" | "yamoney_account" | "wire_account" | "card_number_hash_hash" | undefined;
618
+ ordersSearchValue?: string | undefined;
619
+ currencies?: {
620
+ entities?: {
621
+ id: number;
622
+ displayName: string;
623
+ }[] | undefined;
624
+ all: boolean;
625
+ } | undefined;
626
+ countries?: {
627
+ entities?: {
628
+ id: number;
629
+ displayName: string;
630
+ theCode: string;
631
+ theCode3: string;
632
+ }[] | undefined;
633
+ all: boolean;
634
+ } | undefined;
635
+ orderDateType?: "SESSION_CREATED" | "SESSION_STATUS_CHANGED" | "TX_CREATED" | "BANK" | "TX_SETTLED" | "TX_UNSETTLED" | undefined;
636
+ dateRangeSpec?: {
637
+ dateRangeSpecType: "EXACTLY" | "TODAY" | "YESTERDAY" | "THIS_WEEK" | "LAST_WEEK" | "THIS_MONTH" | "LAST_MONTH" | "DAYS_BEFORE" | "HOURS_BEFORE" | "DATE_INDEPENDENT";
638
+ dateFrom: Date | null;
639
+ dateTo: Date | null;
640
+ beforeCount: number;
641
+ } | undefined;
642
+ cardTypes?: {
643
+ entities?: {
644
+ id: number;
645
+ displayName: string;
646
+ }[] | undefined;
647
+ all: boolean;
648
+ } | undefined;
649
+ transactionTypes?: {
650
+ entities?: {
651
+ id: number;
652
+ displayName: string;
653
+ }[] | undefined;
654
+ all: boolean;
655
+ } | undefined;
656
+ transactionStatuses?: {
657
+ entities?: {
658
+ id: number;
659
+ displayName: string;
660
+ }[] | undefined;
661
+ all: boolean;
662
+ } | undefined;
663
+ transactionSessionStatusGroup?: import("../types").TransactionSessionGroup | undefined;
664
+ transactionSessionStatuses?: {
665
+ displayName: string;
666
+ selected: boolean;
667
+ }[] | undefined;
668
+ projectCurrency?: {
669
+ convertToUserCurrency: boolean;
670
+ currency: {
671
+ id: number;
672
+ displayName: string;
673
+ };
674
+ } | undefined;
675
+ grouping?: {
676
+ dateType: "MONTH" | "DAY" | "CLOSE_DAY" | "SETTLEMENT_DAY" | "SETTLEMENT_MONTH";
677
+ availableGroupingTypes: ("CURRENCY" | "MERCHANT" | "ENDPOINT" | "PROCESSOR" | "MANAGER" | "PROJECT" | "GATE" | "MONTH" | "DAY" | "CLOSE_DAY" | "SETTLEMENT_DAY" | "SETTLEMENT_MONTH" | "CARD_TYPE" | "MID" | "COUNTERPARTY" | "PROJECT_CODE" | "DATE")[];
678
+ selectedGroupingTypes: ("CURRENCY" | "MERCHANT" | "ENDPOINT" | "PROCESSOR" | "MANAGER" | "PROJECT" | "GATE" | "MONTH" | "DAY" | "CLOSE_DAY" | "SETTLEMENT_DAY" | "SETTLEMENT_MONTH" | "CARD_TYPE" | "MID" | "COUNTERPARTY" | "PROJECT_CODE" | "DATE")[];
679
+ } | undefined;
680
+ recurrenceTypes?: {
681
+ entities?: {
682
+ id: number;
683
+ displayName: string;
684
+ }[] | undefined;
685
+ all: boolean;
686
+ } | undefined;
687
+ recurrenceStatuses?: {
688
+ entities?: {
689
+ id: number;
690
+ displayName: string;
691
+ }[] | undefined;
692
+ all: boolean;
693
+ } | undefined;
694
+ mfoConfigurationTypes?: {
695
+ entities?: {
696
+ id: number;
697
+ displayName: string;
698
+ }[] | undefined;
699
+ all: boolean;
700
+ } | undefined;
701
+ markerTypes?: {
702
+ entities?: {
703
+ id: number;
704
+ displayName: string;
705
+ }[] | undefined;
706
+ all: boolean;
707
+ } | undefined;
708
+ markerStatus?: "any" | "unprocessed" | "processed" | undefined;
709
+ processorLogEntryType?: {
710
+ id: number;
711
+ displayName: string;
712
+ } | null | undefined;
713
+ errorCode?: {
714
+ displayName: string;
715
+ choiceId: number;
716
+ description?: string | undefined;
717
+ } | null | undefined;
718
+ };
719
+ }[] | undefined;
720
+ defaultPredefinedTemplateKey?: string | undefined;
478
721
  } | undefined;
479
722
  prevSearchCriteria: {
480
723
  initialized: boolean;
@@ -513,7 +756,46 @@ export declare const useSearchUIFiltersStore: import("zustand").UseBoundStore<Om
513
756
  processorLogEntryType: string | null;
514
757
  errorCode: number | null;
515
758
  } | null;
759
+ appliedSearchCriteria: {
760
+ initialized: boolean;
761
+ exactSearchLabel: string | null;
762
+ exactSearchValue: string | null;
763
+ ordersSearchLabel: string | null;
764
+ ordersSearchValue: string | null;
765
+ status: import("../../../..").Status | null;
766
+ threeD: boolean | null;
767
+ currencies: number[];
768
+ countries: number[];
769
+ dateFrom: Date | null;
770
+ dateTo: Date | null;
771
+ orderDateType: "SESSION_CREATED" | "SESSION_STATUS_CHANGED" | "TX_CREATED" | "BANK" | "TX_SETTLED" | "TX_UNSETTLED";
772
+ cardTypes: number[];
773
+ transactionTypes: number[];
774
+ transactionStatuses: number[];
775
+ transactionSessionStatuses: string | null;
776
+ projectCurrencyId: number | null;
777
+ projectCurrencyConvert: boolean | null;
778
+ groupTypes: ("CURRENCY" | "MERCHANT" | "ENDPOINT" | "PROCESSOR" | "MANAGER" | "PROJECT" | "GATE" | "MONTH" | "DAY" | "CLOSE_DAY" | "SETTLEMENT_DAY" | "SETTLEMENT_MONTH" | "CARD_TYPE" | "MID" | "COUNTERPARTY" | "PROJECT_CODE" | "DATE")[];
779
+ multigetCriteria: {
780
+ entityType: import("../types").LinkedEntityTypeEnum;
781
+ filterType: import("../types").MultichoiceFilterTypeEnum;
782
+ searchString: string;
783
+ selectedItems: string;
784
+ deselectedItems: string;
785
+ selectedItemNames: string;
786
+ deselectedItemNames: string;
787
+ }[];
788
+ recurrenceTypes: number[];
789
+ recurrenceStatuses: number[];
790
+ mfoConfigurationTypes: number[];
791
+ markerTypes: number[];
792
+ markerStatus: "any" | "unprocessed" | "processed" | null;
793
+ processorLogEntryType: string | null;
794
+ errorCode: number | null;
795
+ } | null;
516
796
  hasUnappliedFilters: boolean;
797
+ searchRequestInFlight: boolean;
798
+ searchRequestLoadingObserved: boolean;
517
799
  onFiltersUpdate: (searchCriteria: import("../types").SearchCriteria) => void;
518
800
  prefetchedData: {
519
801
  transactionSessionStatuses?: Map<import("../types").TransactionSessionGroup, {
@@ -527,23 +809,37 @@ export declare const useSearchUIFiltersStore: import("zustand").UseBoundStore<Om
527
809
  prefetchedDataMeta: {
528
810
  transactionSessionStatusesPrefilled: boolean;
529
811
  };
530
- setInitialState: (state: Partial<import("./type").SearchUIFiltersState> & Pick<import("./type").SearchUIFiltersState, "defaults">) => void;
812
+ setInitialState: (state: Partial<import("./type").SearchUIFiltersState> & Pick<import("./type").SearchUIFiltersState, "defaults">, options?: {
813
+ skipPostUpdate?: boolean | undefined;
814
+ } | undefined) => void;
531
815
  updateConditions: (conditions: Partial<import("../types").SearchUIConditions>, options?: {
532
816
  forceSearch?: boolean | undefined;
533
817
  resetTemplate?: boolean | undefined;
534
818
  } | undefined) => void;
535
819
  restoreClearCriteriaSnapshot: (snapshot: import("./type").SearchUIClearCriteriaUndoSnapshot) => void;
820
+ restoreTemplateUndoSnapshot: (snapshot: import("./type").SearchUITemplateUndoSnapshot, options?: {
821
+ restoreFilters?: boolean | undefined;
822
+ restoreSelection?: boolean | undefined;
823
+ } | undefined) => void;
536
824
  clearCriteria: () => void;
537
825
  clearCriterion: (criterionType: import("../types").CriterionTypeEnum) => void;
538
826
  addCriterion: (criterionType: import("../types").CriterionTypeEnum) => void;
539
827
  removeCriterion: (criterionType: import("../types").CriterionTypeEnum) => void;
540
828
  createTemplate: (templateName: string) => void;
541
829
  updateTemplate: (templateName: string) => void;
542
- removeTemplate: (template: import("../types").SearchUITemplate) => void;
543
- setTemplate: (template: import("../types").SearchUITemplate, options?: {
830
+ removeTemplate: (template: import("../types").SearchUITemplate) => Promise<void>;
831
+ clearTemplate: (options?: {
544
832
  forceSearch?: boolean | undefined;
545
833
  } | undefined) => void;
546
- loadTemplates: () => void;
834
+ setTemplate: (template: import("./type").SearchUIBaselineTemplate, options?: {
835
+ forceSearch?: boolean | undefined;
836
+ source?: import("./type").SearchUITemplateSource | undefined;
837
+ } | undefined) => void;
838
+ loadTemplates: (options?: {
839
+ applySelection?: boolean | undefined;
840
+ triggerInitialSearch?: boolean | undefined;
841
+ shouldApplySelection?: (() => boolean) | undefined;
842
+ } | undefined) => void;
547
843
  setJustAddedCriterion: (criterion: import("../types").CriterionTypeEnum | null) => void;
548
844
  setMultigetCriterion: (criterion: import("../types").MultigetCriterion) => void;
549
845
  set3DCriterion: (threeD: import("../types").ThreeDCriterionEnum) => void;
@@ -582,6 +878,8 @@ export declare const useSearchUIFiltersStore: import("zustand").UseBoundStore<Om
582
878
  choiceId: number;
583
879
  description?: string | undefined;
584
880
  } | null) => void;
881
+ syncSearchRequestLoading: (loading: boolean) => void;
882
+ releaseSearchRequestLock: () => void;
585
883
  triggerSearch: () => void;
586
884
  }) => void), shouldReplace?: boolean | undefined): void;
587
885
  }>;
@@ -1,8 +1,10 @@
1
- import { CountryAllableCollection, CriterionTypeEnum, DateRangeSpec, ExactCriterionSearchLabelEnum, GroupingDateType, GroupingType, MarkerStatusCriterion, MultigetCriterion, OrderDate, OrderSearchLabel, SearchCriteria, SearchUIConditions, SearchUITemplate, StatusCriterion, ThreeDCriterionEnum, TransactionSessionGroup, TransactionSessionStatus } from '../types';
1
+ import { CountryAllableCollection, CriterionTypeEnum, DateRangeSpec, ExactCriterionSearchLabelEnum, GroupingDateType, GroupingType, MarkerStatusCriterion, MultigetCriterion, OrderDate, OrderSearchLabel, SearchCriteria, SearchUIConditions, SearchUIPredefinedTemplate, SearchUITemplate, StatusCriterion, ThreeDCriterionEnum, TransactionSessionGroup, TransactionSessionStatus } from '../types';
2
2
  import { AbstractEntity, AbstractEntityAllableCollection, AutoCompleteChoice } from '../../../..';
3
3
  import { SearchUIFiltersConfig } from '../SearchUIFilters';
4
4
  import { SearchUIDefaults } from '../../SearchUIProvider';
5
5
  export type SearchUIFiltersStore = SearchUIFiltersState & SearchUIFiltersActions;
6
+ export type SearchUITemplateSource = 'saved' | 'predefined';
7
+ export type SearchUIBaselineTemplate = SearchUITemplate | SearchUIPredefinedTemplate;
6
8
  export type SearchUIPrefetchedTransactionSessionStatuses = Map<TransactionSessionGroup, TransactionSessionStatus[]>;
7
9
  export type SearchUIPrefetchedData = {
8
10
  transactionSessionStatuses?: SearchUIPrefetchedTransactionSessionStatuses;
@@ -14,44 +16,68 @@ export type SearchUIPrefetchedDataMeta = {
14
16
  transactionSessionStatusesPrefilled: boolean;
15
17
  };
16
18
  export type SearchUIClearCriteriaUndoSnapshot = SearchUIConditions & {
17
- template: SearchUITemplate | null;
19
+ template: SearchUIBaselineTemplate | null;
20
+ templateSource: SearchUITemplateSource | null;
21
+ appliedSearchCriteria: SearchCriteria | null;
18
22
  hasUnappliedFilters: boolean;
19
23
  };
24
+ export type SearchUITemplateUndoSnapshot = {
25
+ filters: SearchUIClearCriteriaUndoSnapshot;
26
+ templates: SearchUITemplate[];
27
+ };
20
28
  export type SearchUIFiltersState = SearchUIConditions & {
21
29
  defaults: SearchUIDefaults;
22
30
  settingsContextName: string;
23
31
  possibleCriteria: CriterionTypeEnum[];
24
32
  predefinedCriteria: CriterionTypeEnum[];
25
33
  exactSearchLabels: ExactCriterionSearchLabelEnum[];
26
- template: SearchUITemplate | null;
34
+ template: SearchUIBaselineTemplate | null;
35
+ templateSource: SearchUITemplateSource | null;
27
36
  templates: SearchUITemplate[];
28
37
  justAddedCriterion: CriterionTypeEnum | null;
29
38
  config?: SearchUIFiltersConfig;
30
39
  prevSearchCriteria: SearchCriteria | null;
40
+ appliedSearchCriteria: SearchCriteria | null;
31
41
  hasUnappliedFilters: boolean;
42
+ searchRequestInFlight: boolean;
43
+ searchRequestLoadingObserved: boolean;
32
44
  onFiltersUpdate: (searchCriteria: SearchCriteria) => void;
33
45
  prefetchedData: SearchUIPrefetchedData;
34
46
  prefetchedDataLoading: SearchUIPrefetchedDataLoading;
35
47
  prefetchedDataMeta: SearchUIPrefetchedDataMeta;
36
48
  };
37
49
  export type SearchUIFiltersActions = {
38
- setInitialState: (state: Partial<SearchUIFiltersState> & Pick<SearchUIFiltersState, 'defaults'>) => void;
50
+ setInitialState: (state: Partial<SearchUIFiltersState> & Pick<SearchUIFiltersState, 'defaults'>, options?: {
51
+ skipPostUpdate?: boolean;
52
+ }) => void;
39
53
  updateConditions: (conditions: Partial<SearchUIConditions>, options?: {
40
54
  forceSearch?: boolean;
41
55
  resetTemplate?: boolean;
42
56
  }) => void;
43
57
  restoreClearCriteriaSnapshot: (snapshot: SearchUIClearCriteriaUndoSnapshot) => void;
58
+ restoreTemplateUndoSnapshot: (snapshot: SearchUITemplateUndoSnapshot, options?: {
59
+ restoreFilters?: boolean;
60
+ restoreSelection?: boolean;
61
+ }) => void;
44
62
  clearCriteria: () => void;
45
63
  clearCriterion: (criterionType: CriterionTypeEnum) => void;
46
64
  addCriterion: (criterionType: CriterionTypeEnum) => void;
47
65
  removeCriterion: (criterionType: CriterionTypeEnum) => void;
48
66
  createTemplate: (templateName: string) => void;
49
67
  updateTemplate: (templateName: string) => void;
50
- removeTemplate: (template: SearchUITemplate) => void;
51
- setTemplate: (template: SearchUITemplate, options?: {
68
+ removeTemplate: (template: SearchUITemplate) => Promise<void>;
69
+ clearTemplate: (options?: {
52
70
  forceSearch?: boolean;
53
71
  }) => void;
54
- loadTemplates: () => void;
72
+ setTemplate: (template: SearchUIBaselineTemplate, options?: {
73
+ forceSearch?: boolean;
74
+ source?: SearchUITemplateSource;
75
+ }) => void;
76
+ loadTemplates: (options?: {
77
+ applySelection?: boolean;
78
+ triggerInitialSearch?: boolean;
79
+ shouldApplySelection?: () => boolean;
80
+ }) => void;
55
81
  setJustAddedCriterion: (criterion: CriterionTypeEnum | null) => void;
56
82
  setMultigetCriterion: (criterion: MultigetCriterion) => void;
57
83
  set3DCriterion: (threeD: ThreeDCriterionEnum) => void;
@@ -80,5 +106,7 @@ export type SearchUIFiltersActions = {
80
106
  setMarkerStatusCriterion: (markerStatus: MarkerStatusCriterion) => void;
81
107
  setProcessorLogEntryType: (entryType: AbstractEntity) => void;
82
108
  setErrorCodeCriterion: (errorCode: AutoCompleteChoice | null) => void;
109
+ syncSearchRequestLoading: (loading: boolean) => void;
110
+ releaseSearchRequestLock: () => void;
83
111
  triggerSearch: () => void;
84
112
  };
@@ -1,2 +1,3 @@
1
- import type { SearchUIFiltersState, SearchUIClearCriteriaUndoSnapshot } from './type';
1
+ import type { SearchUIFiltersState, SearchUIClearCriteriaUndoSnapshot, SearchUITemplateUndoSnapshot } from './type';
2
2
  export declare const createClearCriteriaUndoSnapshot: (state: SearchUIFiltersState) => SearchUIClearCriteriaUndoSnapshot;
3
+ export declare const createTemplateUndoSnapshot: (state: SearchUIFiltersState) => SearchUITemplateUndoSnapshot;
@@ -27,6 +27,12 @@ export const createClearCriteriaUndoSnapshot = (state) => cloneDeep({
27
27
  errorCode: state.errorCode,
28
28
  criteria: state.criteria,
29
29
  template: state.template,
30
+ templateSource: state.templateSource,
31
+ appliedSearchCriteria: state.appliedSearchCriteria,
30
32
  hasUnappliedFilters: state.hasUnappliedFilters,
31
33
  });
34
+ export const createTemplateUndoSnapshot = (state) => cloneDeep({
35
+ filters: createClearCriteriaUndoSnapshot(state),
36
+ templates: state.templates,
37
+ });
32
38
  //# sourceMappingURL=undo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"undo.js","sourceRoot":"","sources":["../../../../../src/component/search-ui/filters/state/undo.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,kBAAkB,CAAA;AAGxC,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC3C,KAA2B,EACM,EAAE,CAAC,SAAS,CAAC;IAC9C,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;IACxC,MAAM,EAAE,KAAK,CAAC,MAAM;IACpB,MAAM,EAAE,KAAK,CAAC,MAAM;IACpB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;IACxC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;IACxC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;IAC1C,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;IAC1C,UAAU,EAAE,KAAK,CAAC,UAAU;IAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;IAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;IAClC,aAAa,EAAE,KAAK,CAAC,aAAa;IAClC,SAAS,EAAE,KAAK,CAAC,SAAS;IAC1B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;IACxC,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;IAC9C,6BAA6B,EAAE,KAAK,CAAC,6BAA6B;IAClE,0BAA0B,EAAE,KAAK,CAAC,0BAA0B;IAC5D,eAAe,EAAE,KAAK,CAAC,eAAe;IACtC,QAAQ,EAAE,KAAK,CAAC,QAAQ;IACxB,eAAe,EAAE,KAAK,CAAC,eAAe;IACtC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;IAC5C,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;IAClD,WAAW,EAAE,KAAK,CAAC,WAAW;IAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;IAChC,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;IAClD,SAAS,EAAE,KAAK,CAAC,SAAS;IAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;IACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;IACxB,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;CACjD,CAAC,CAAA"}
1
+ {"version":3,"file":"undo.js","sourceRoot":"","sources":["../../../../../src/component/search-ui/filters/state/undo.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,kBAAkB,CAAA;AAOxC,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC3C,KAA2B,EACM,EAAE,CAAC,SAAS,CAAC;IAC9C,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;IACxC,MAAM,EAAE,KAAK,CAAC,MAAM;IACpB,MAAM,EAAE,KAAK,CAAC,MAAM;IACpB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;IACxC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;IACxC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;IAC1C,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;IAC1C,UAAU,EAAE,KAAK,CAAC,UAAU;IAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;IAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;IAClC,aAAa,EAAE,KAAK,CAAC,aAAa;IAClC,SAAS,EAAE,KAAK,CAAC,SAAS;IAC1B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;IACxC,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;IAC9C,6BAA6B,EAAE,KAAK,CAAC,6BAA6B;IAClE,0BAA0B,EAAE,KAAK,CAAC,0BAA0B;IAC5D,eAAe,EAAE,KAAK,CAAC,eAAe;IACtC,QAAQ,EAAE,KAAK,CAAC,QAAQ;IACxB,eAAe,EAAE,KAAK,CAAC,eAAe;IACtC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;IAC5C,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;IAClD,WAAW,EAAE,KAAK,CAAC,WAAW;IAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;IAChC,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;IAClD,SAAS,EAAE,KAAK,CAAC,SAAS;IAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;IACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;IACxB,cAAc,EAAE,KAAK,CAAC,cAAc;IACpC,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;IAClD,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;CACjD,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACtC,KAA2B,EACC,EAAE,CAAC,SAAS,CAAC;IACzC,OAAO,EAAE,+BAA+B,CAAC,KAAK,CAAC;IAC/C,SAAS,EAAE,KAAK,CAAC,SAAS;CAC7B,CAAC,CAAA"}
@@ -229,3 +229,15 @@ export type SearchUITemplate = {
229
229
  /** Значения условий поиска, сохранённые в шаблоне. */
230
230
  searchConditions: SearchUIConditions;
231
231
  };
232
+ /**
233
+ * Описание page-level predefined шаблона поиска.
234
+ * `key` используется и как стабильный идентификатор preset, и как i18n key для его label.
235
+ */
236
+ export type SearchUIPredefinedTemplate = {
237
+ /** Идентификатор preset и i18n key для отображаемого названия. */
238
+ key: string;
239
+ /** Опциональный i18n key для описания preset. */
240
+ descriptionKey?: string;
241
+ /** Частичное состояние фильтров, которое применяется поверх default baseline. */
242
+ searchConditions: Partial<SearchUIConditions>;
243
+ };
@@ -1,6 +1,6 @@
1
1
  export { SearchUI, type SearchParams, } from '../component/search-ui/SearchUI';
2
2
  export { SearchUIFilters, type SearchUIFiltersConfig, type DateRangeCriterionConfig, } from '../component/search-ui/filters/SearchUIFilters';
3
- export { CriterionTypeEnum, DATE_RANGE_SPEC_TYPES, ExactCriterionSearchLabelEnum, GroupingType, LinkedEntityTypeEnum, MultichoiceFilterTypeEnum, MultigetCriterion, ORDER_SEARCH_LABELS, OrderSearchLabel, SearchCriteria, SearchUICriterionAvailabilityRule, SearchUIConditions, TransactionSessionGroup, TransactionSessionStatus, TransactionSessionStatuses, DateRangeSpec, } from '../component/search-ui/filters/types';
3
+ export { CriterionTypeEnum, DATE_RANGE_SPEC_TYPES, ExactCriterionSearchLabelEnum, GroupingType, LinkedEntityTypeEnum, MultichoiceFilterTypeEnum, MultigetCriterion, ORDER_SEARCH_LABELS, OrderSearchLabel, SearchCriteria, SearchUICriterionAvailabilityRule, SearchUIConditions, SearchUIPredefinedTemplate, TransactionSessionGroup, TransactionSessionStatus, TransactionSessionStatuses, DateRangeSpec, } from '../component/search-ui/filters/types';
4
4
  export { SearchUIProvider, type SearchUIDefaults } from '../component/search-ui/SearchUIProvider';
5
5
  export { MultigetSelect } from '../component/search-ui/multiget_select/MultigetSelect';
6
6
  export { SearchUITemplate } from '../component/search-ui/filters/types';
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/exports/search.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,QAAQ,GAEX,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACH,eAAe,GAGlB,MAAM,gDAAgD,CAAA;AACvD,OAAO,EACH,iBAAiB,EACjB,qBAAqB,EACrB,6BAA6B,EAE7B,oBAAoB,EACpB,yBAAyB,EAEzB,mBAAmB,GAStB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAyB,MAAM,yCAAyC,CAAA;AACjG,OAAO,EAAE,cAAc,EAAE,MAAM,uDAAuD,CAAA;AAEtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAA"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/exports/search.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,QAAQ,GAEX,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACH,eAAe,GAGlB,MAAM,gDAAgD,CAAA;AACvD,OAAO,EACH,iBAAiB,EACjB,qBAAqB,EACrB,6BAA6B,EAE7B,oBAAoB,EACpB,yBAAyB,EAEzB,mBAAmB,GAUtB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAyB,MAAM,yCAAyC,CAAA;AACjG,OAAO,EAAE,cAAc,EAAE,MAAM,uDAAuD,CAAA;AAEtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pne-ui",
3
- "version": "3.1.6",
3
+ "version": "3.2.1",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",