@naniteninja/dashboard-components-lib 2.4.4 → 2.4.5

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.
package/index.d.ts CHANGED
@@ -691,6 +691,23 @@ interface IHomeDashboardInputs {
691
691
  mainSwiperHeight: string;
692
692
  subMainSwiperHeight: string;
693
693
  showRejectMenu: boolean;
694
+ /**
695
+ * Put "Chat Handoff" in the dots menu instead of "Reject".
696
+ *
697
+ * Set on the matcher's dashboard: handing the conversation to the client is the matcher's
698
+ * decision, whereas rejecting a prospect is the client's.
699
+ */
700
+ showHandoffOption?: boolean;
701
+ /**
702
+ * Whether handing off is permitted for this particular match right now.
703
+ *
704
+ * The host answers because it holds the meetup time; the rule is any point within 24 hours of
705
+ * the meetup. Returning false renders the item visible but inert, so the matcher can see the
706
+ * option exists and that it is not yet open to them.
707
+ */
708
+ isHandoffAvailable?: (item: ILibClientMatchOverview) => boolean;
709
+ /** Whether this chat has already been handed off, so the item reads as done. */
710
+ isHandoffDone?: (item: ILibClientMatchOverview) => boolean;
694
711
  /** Full pool of bookable itineraries passed to lib-scheduler as fun choices */
695
712
  itineraryPool: ISchedulerEventSuggestion[];
696
713
  /** Max visible fun choices per free-time slot (default 3, grows as user cancels) */
@@ -2489,6 +2506,7 @@ interface IClientHomeHost {
2489
2506
  removeSuggestion: EventEmitter<ISchedulerAction>;
2490
2507
  handleAppearPopup: EventEmitter<AlertStatusFields>;
2491
2508
  rejectRequest: EventEmitter<ILibClientMatchOverview>;
2509
+ handoffRequest: EventEmitter<ILibClientMatchOverview>;
2492
2510
  dismissPriority: EventEmitter<{
2493
2511
  prospectId: string;
2494
2512
  chatId: string;
@@ -2584,6 +2602,13 @@ declare class LibClientHomeComponent implements OnInit, OnDestroy, OnChanges, IC
2584
2602
  removeSuggestion: EventEmitter<ISchedulerAction>;
2585
2603
  handleAppearPopup: EventEmitter<AlertStatusFields>;
2586
2604
  rejectRequest: EventEmitter<ILibClientMatchOverview>;
2605
+ /**
2606
+ * The matcher asked to hand this chat to their client.
2607
+ *
2608
+ * The host owns the decision to accept it — it knows the meetup time and holds the endpoint —
2609
+ * so this only reports the intent.
2610
+ */
2611
+ handoffRequest: EventEmitter<ILibClientMatchOverview>;
2587
2612
  dismissPriority: EventEmitter<{
2588
2613
  prospectId: string;
2589
2614
  chatId: string;
@@ -2608,7 +2633,7 @@ declare class LibClientHomeComponent implements OnInit, OnDestroy, OnChanges, IC
2608
2633
  ngOnDestroy(): void;
2609
2634
  focus(): void;
2610
2635
  static ɵfac: i0.ɵɵFactoryDeclaration<LibClientHomeComponent, never>;
2611
- static ɵcmp: i0.ɵɵComponentDeclaration<LibClientHomeComponent, "lib-client-home", never, { "config": { "alias": "config"; "required": false; }; "menuPosition": { "alias": "menuPosition"; "required": false; }; "role": { "alias": "role"; "required": false; }; "dimMinStatusRank": { "alias": "dimMinStatusRank"; "required": false; }; }, { "activeIndexChange": "activeIndexChange"; "addMessage": "addMessage"; "getMessages": "getMessages"; "bookEvent": "bookEvent"; "removeSuggestion": "removeSuggestion"; "handleAppearPopup": "handleAppearPopup"; "rejectRequest": "rejectRequest"; "dismissPriority": "dismissPriority"; "remainingPrioritiesChange": "remainingPrioritiesChange"; }, never, never, true, never>;
2636
+ static ɵcmp: i0.ɵɵComponentDeclaration<LibClientHomeComponent, "lib-client-home", never, { "config": { "alias": "config"; "required": false; }; "menuPosition": { "alias": "menuPosition"; "required": false; }; "role": { "alias": "role"; "required": false; }; "dimMinStatusRank": { "alias": "dimMinStatusRank"; "required": false; }; }, { "activeIndexChange": "activeIndexChange"; "addMessage": "addMessage"; "getMessages": "getMessages"; "bookEvent": "bookEvent"; "removeSuggestion": "removeSuggestion"; "handleAppearPopup": "handleAppearPopup"; "rejectRequest": "rejectRequest"; "handoffRequest": "handoffRequest"; "dismissPriority": "dismissPriority"; "remainingPrioritiesChange": "remainingPrioritiesChange"; }, never, never, true, never>;
2612
2637
  }
2613
2638
 
2614
2639
  interface IClientMatchOverviewHost {
@@ -2629,9 +2654,13 @@ interface IClientMatchOverviewHost {
2629
2654
  dimmed: boolean;
2630
2655
  statusProgressOverride: number;
2631
2656
  showValueProportionLabel: boolean;
2657
+ showHandoffOption?: boolean;
2658
+ handoffAvailable?: boolean;
2659
+ handoffDone?: boolean;
2632
2660
  sendConversationFlag: EventEmitter<IConversationFlag>;
2633
2661
  repositionRequest: EventEmitter<void>;
2634
2662
  rejectRequest: EventEmitter<void>;
2663
+ handoffRequest: EventEmitter<void>;
2635
2664
  menuTemplate: TemplateRef<IEmptyTemplateContext>;
2636
2665
  rejectMenuTemplate: TemplateRef<IEmptyTemplateContext>;
2637
2666
  elementRef: ElementRef<HTMLElement>;
@@ -2662,6 +2691,14 @@ declare class ClientMatchOverviewActionsService {
2662
2691
  toggleRejectMenu(event: Event): void;
2663
2692
  closeRejectMenu(): void;
2664
2693
  reject(): void;
2694
+ /**
2695
+ * Hand the conversation to the client.
2696
+ *
2697
+ * Refused before the meetup is within 24 hours, and refused once it has already happened —
2698
+ * checked here as well as in the template so a stray call cannot bypass a disabled item. The
2699
+ * menu closes either way, because leaving it open after a tap reads as the tap not registering.
2700
+ */
2701
+ handoff(): void;
2665
2702
  reposition(): void;
2666
2703
  private createMenu;
2667
2704
  private destroyMenu;
@@ -2796,6 +2833,23 @@ declare class LibClientMatchOverviewComponent implements OnInit, OnDestroy, Afte
2796
2833
  isGrouped: boolean;
2797
2834
  showProgressUnderHead: boolean;
2798
2835
  showRejectMenu: boolean;
2836
+ /**
2837
+ * Show "Chat Handoff" in the dots menu in place of "Reject".
2838
+ *
2839
+ * The matcher's copy of this tab offers handing the conversation to the client rather than
2840
+ * rejecting the prospect — rejecting is the client's decision to make, not the matcher's. The
2841
+ * menu itself, its trigger and its dismissal are shared; only the single item inside it differs.
2842
+ */
2843
+ showHandoffOption: boolean;
2844
+ /**
2845
+ * Whether handing off is allowed yet. False renders the item greyed and inert.
2846
+ *
2847
+ * The host decides this — it owns the meetup time — and the rule is that a matcher may hand off
2848
+ * at any point within 24 hours of the meetup.
2849
+ */
2850
+ handoffAvailable: boolean;
2851
+ /** Already handed off; the item reads as done and cannot be triggered again. */
2852
+ handoffDone: boolean;
2799
2853
  role: AccountTypes;
2800
2854
  dimmed: boolean;
2801
2855
  statusProgressOverride: number;
@@ -2803,6 +2857,8 @@ declare class LibClientMatchOverviewComponent implements OnInit, OnDestroy, Afte
2803
2857
  sendConversationFlag: EventEmitter<IConversationFlag>;
2804
2858
  repositionRequest: EventEmitter<void>;
2805
2859
  rejectRequest: EventEmitter<void>;
2860
+ /** The matcher chose to hand the conversation over. Emitted only when handoff is available. */
2861
+ handoffRequest: EventEmitter<void>;
2806
2862
  menuTemplate: TemplateRef<IEmptyTemplateContext>;
2807
2863
  rejectMenuTemplate: TemplateRef<IEmptyTemplateContext>;
2808
2864
  readonly state: ClientMatchOverviewStateService;
@@ -2817,7 +2873,7 @@ declare class LibClientMatchOverviewComponent implements OnInit, OnDestroy, Afte
2817
2873
  ngOnChanges(changes: SimpleChanges): void;
2818
2874
  ngOnDestroy(): void;
2819
2875
  static ɵfac: i0.ɵɵFactoryDeclaration<LibClientMatchOverviewComponent, never>;
2820
- static ɵcmp: i0.ɵɵComponentDeclaration<LibClientMatchOverviewComponent, "lib-client-match-overview", never, { "overview": { "alias": "overview"; "required": true; }; "meta": { "alias": "meta"; "required": false; }; "expand": { "alias": "expand"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "default": { "alias": "default"; "required": false; }; "hideProgressBar": { "alias": "hideProgressBar"; "required": false; }; "partialColors": { "alias": "partialColors"; "required": false; }; "showExternalPartialCircleProgress": { "alias": "showExternalPartialCircleProgress"; "required": false; }; "maxValue": { "alias": "maxValue"; "required": false; }; "enableChangeOverview": { "alias": "enableChangeOverview"; "required": false; }; "isGrouped": { "alias": "isGrouped"; "required": false; }; "showProgressUnderHead": { "alias": "showProgressUnderHead"; "required": false; }; "showRejectMenu": { "alias": "showRejectMenu"; "required": false; }; "role": { "alias": "role"; "required": false; }; "dimmed": { "alias": "dimmed"; "required": false; }; "statusProgressOverride": { "alias": "statusProgressOverride"; "required": false; }; "showValueProportionLabel": { "alias": "showValueProportionLabel"; "required": false; }; }, { "sendConversationFlag": "sendConversationFlag"; "repositionRequest": "repositionRequest"; "rejectRequest": "rejectRequest"; }, never, never, true, never>;
2876
+ static ɵcmp: i0.ɵɵComponentDeclaration<LibClientMatchOverviewComponent, "lib-client-match-overview", never, { "overview": { "alias": "overview"; "required": true; }; "meta": { "alias": "meta"; "required": false; }; "expand": { "alias": "expand"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "default": { "alias": "default"; "required": false; }; "hideProgressBar": { "alias": "hideProgressBar"; "required": false; }; "partialColors": { "alias": "partialColors"; "required": false; }; "showExternalPartialCircleProgress": { "alias": "showExternalPartialCircleProgress"; "required": false; }; "maxValue": { "alias": "maxValue"; "required": false; }; "enableChangeOverview": { "alias": "enableChangeOverview"; "required": false; }; "isGrouped": { "alias": "isGrouped"; "required": false; }; "showProgressUnderHead": { "alias": "showProgressUnderHead"; "required": false; }; "showRejectMenu": { "alias": "showRejectMenu"; "required": false; }; "showHandoffOption": { "alias": "showHandoffOption"; "required": false; }; "handoffAvailable": { "alias": "handoffAvailable"; "required": false; }; "handoffDone": { "alias": "handoffDone"; "required": false; }; "role": { "alias": "role"; "required": false; }; "dimmed": { "alias": "dimmed"; "required": false; }; "statusProgressOverride": { "alias": "statusProgressOverride"; "required": false; }; "showValueProportionLabel": { "alias": "showValueProportionLabel"; "required": false; }; }, { "sendConversationFlag": "sendConversationFlag"; "repositionRequest": "repositionRequest"; "rejectRequest": "rejectRequest"; "handoffRequest": "handoffRequest"; }, never, never, true, never>;
2821
2877
  }
2822
2878
 
2823
2879
  interface TabStripDragState {
@@ -3842,6 +3898,12 @@ declare class MatcherViewportComponent extends BaseViewportComponent implements
3842
3898
  }>;
3843
3899
  getMessages: EventEmitter<boolean>;
3844
3900
  rejectRequest: EventEmitter<ILibClientMatchOverview>;
3901
+ /**
3902
+ * The matcher chose "Chat Handoff" on a prospect's expanded tab.
3903
+ *
3904
+ * Forwarded untouched to the host app, which owns both the 24-hour rule and the endpoint.
3905
+ */
3906
+ handoffRequest: EventEmitter<ILibClientMatchOverview>;
3845
3907
  dismissPriority: EventEmitter<{
3846
3908
  prospectId: string;
3847
3909
  chatId: string;
@@ -3970,7 +4032,7 @@ declare class MatcherViewportComponent extends BaseViewportComponent implements
3970
4032
  private isChatTarget;
3971
4033
  private attachContentScrollWheelDelegate;
3972
4034
  static ɵfac: i0.ɵɵFactoryDeclaration<MatcherViewportComponent, never>;
3973
- static ɵcmp: i0.ɵɵComponentDeclaration<MatcherViewportComponent, "lib-matcher-viewport", never, { "config": { "alias": "config"; "required": false; }; "showViewportControls": { "alias": "showViewportControls"; "required": false; }; "showViewportHeader": { "alias": "showViewportHeader"; "required": false; }; "showViewportFooter": { "alias": "showViewportFooter"; "required": false; }; "activePageInput": { "alias": "activePageInput"; "required": false; }; "enablePageRouting": { "alias": "enablePageRouting"; "required": false; }; "pageRouteQueryParamKey": { "alias": "pageRouteQueryParamKey"; "required": false; }; "pageRouteParamKey": { "alias": "pageRouteParamKey"; "required": false; }; "pageRouteSegmentName": { "alias": "pageRouteSegmentName"; "required": false; }; }, { "activeIndexChange": "activeIndexChange"; "activePageChange": "activePageChange"; "addMessage": "addMessage"; "getMessages": "getMessages"; "rejectRequest": "rejectRequest"; "dismissPriority": "dismissPriority"; "reactivatePriority": "reactivatePriority"; }, never, never, false, never>;
4035
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatcherViewportComponent, "lib-matcher-viewport", never, { "config": { "alias": "config"; "required": false; }; "showViewportControls": { "alias": "showViewportControls"; "required": false; }; "showViewportHeader": { "alias": "showViewportHeader"; "required": false; }; "showViewportFooter": { "alias": "showViewportFooter"; "required": false; }; "activePageInput": { "alias": "activePageInput"; "required": false; }; "enablePageRouting": { "alias": "enablePageRouting"; "required": false; }; "pageRouteQueryParamKey": { "alias": "pageRouteQueryParamKey"; "required": false; }; "pageRouteParamKey": { "alias": "pageRouteParamKey"; "required": false; }; "pageRouteSegmentName": { "alias": "pageRouteSegmentName"; "required": false; }; }, { "activeIndexChange": "activeIndexChange"; "activePageChange": "activePageChange"; "addMessage": "addMessage"; "getMessages": "getMessages"; "rejectRequest": "rejectRequest"; "handoffRequest": "handoffRequest"; "dismissPriority": "dismissPriority"; "reactivatePriority": "reactivatePriority"; }, never, never, false, never>;
3974
4036
  }
3975
4037
 
3976
4038
  /** Ionic `ion-progress-bar` host (Stencil `el` + shadow root). */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@naniteninja/dashboard-components-lib",
3
- "version": "2.4.4",
3
+ "version": "2.4.5",
4
4
  "author": "naniteninja",
5
5
  "repository": {
6
6
  "type": "git"