@naniteninja/dashboard-components-lib 2.1.92 → 2.1.94

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
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { TemplateRef, OnInit, AfterViewInit, ElementRef, EventEmitter, ChangeDetectorRef, PipeTransform, ModuleWithProviders, OnDestroy, OnChanges, SimpleChanges, Renderer2, ViewContainerRef, NgZone, QueryList, InjectionToken } from '@angular/core';
3
3
  import * as i6 from '@naniteninja/ionic-lib';
4
- import { LibMenuItem, LocationModel, SelectOption, ImageModel, PopupModalService, BaseComponent, ILocationSearchResult, EmojiPickerConfig, InputFieldComponent, Profile } from '@naniteninja/ionic-lib';
4
+ import { LibMenuItem, LocationModel, SelectOption, ImageModel, PopupModalService, BaseComponent, ILocationSearchResult, EmojiPickerConfig, Profile } from '@naniteninja/ionic-lib';
5
5
  import * as rxjs from 'rxjs';
6
6
  import { Observable, BehaviorSubject, Subject } from 'rxjs';
7
7
  import * as i2 from '@angular/common';
@@ -562,6 +562,22 @@ interface IDashboardMatchRequest {
562
562
  clientId: string;
563
563
  clientName: string;
564
564
  clientImages: string;
565
+ paymentLocation?: any;
566
+ status?: string;
567
+ locationTimePriorities?: {
568
+ places: {
569
+ address: string;
570
+ coordinates?: number[];
571
+ rank: number;
572
+ }[];
573
+ timeSlots: {
574
+ day: string;
575
+ startHour: number;
576
+ endHour: number;
577
+ rank: number;
578
+ }[];
579
+ recurring: string;
580
+ };
565
581
  }
566
582
 
567
583
  interface IDataset {
@@ -671,6 +687,9 @@ interface IHandoffPanelInputs {
671
687
  hideTabs?: boolean;
672
688
  showInitBubble?: boolean;
673
689
  disabled?: boolean;
690
+ directSend?: boolean;
691
+ initBubbleText?: string;
692
+ disableSwipe?: boolean;
674
693
  }
675
694
 
676
695
  interface IProspect {
@@ -737,6 +756,7 @@ interface IHomeDashboardInputs {
737
756
  * lib-matcher-statuses and other content components are never mounted.
738
757
  */
739
758
  tabsOnly?: boolean;
759
+ role?: 'client' | 'matcher';
740
760
  }
741
761
 
742
762
  interface IInnerPartialCircleProgressColors {
@@ -966,6 +986,13 @@ interface IMeetupIndicator {
966
986
  time: string;
967
987
  date: string;
968
988
  status: 'pending' | 'accepted' | 'rejected';
989
+ locationStatus?: 'pending' | 'accepted' | 'rejected' | 'auto_accepted';
990
+ timeStatus?: 'pending' | 'accepted' | 'rejected' | 'unknown' | 'auto_accepted';
991
+ isInZone?: boolean;
992
+ sentToClientAt?: string | Date;
993
+ respondedAt?: string | Date;
994
+ matcherNotifiedAt?: string | Date;
995
+ matcherAcknowledgedAt?: string | Date;
969
996
  };
970
997
  }
971
998
 
@@ -1542,15 +1569,17 @@ declare class ChatComponent implements OnInit, AfterViewInit, OnChanges, OnDestr
1542
1569
  enableGifPicker: boolean;
1543
1570
  prospectJoinDate: Date | null;
1544
1571
  showInitBubble: boolean;
1572
+ initBubbleText: string;
1545
1573
  sendMessage: EventEmitter<IMessage>;
1546
1574
  getMessages: EventEmitter<boolean>;
1547
1575
  disabled: boolean;
1576
+ directSend: boolean;
1548
1577
  hasShadow: boolean;
1549
1578
  hasMore: boolean;
1550
1579
  inputPlaceholder: string;
1551
1580
  emojiPickerRef?: ElementRef<HTMLElement>;
1552
1581
  scrollableContainer?: ElementRef<HTMLElement>;
1553
- chatInput?: InputFieldComponent;
1582
+ nativeTextarea?: ElementRef<HTMLTextAreaElement>;
1554
1583
  emojiContainer?: ElementRef<HTMLElement>;
1555
1584
  messageSender?: ElementRef<HTMLElement>;
1556
1585
  private cdr;
@@ -1587,7 +1616,9 @@ declare class ChatComponent implements OnInit, AfterViewInit, OnChanges, OnDestr
1587
1616
  private styleEmojiPickerShadow;
1588
1617
  ngOnInit(): void;
1589
1618
  ngOnDestroy(): void;
1619
+ private wheelHandler;
1590
1620
  ngAfterViewInit(): void;
1621
+ private setupWheelScroll;
1591
1622
  ngOnChanges(changes: SimpleChanges): void;
1592
1623
  onScrollChats(): void;
1593
1624
  handleScrollNewMessage(): void;
@@ -1599,6 +1630,7 @@ declare class ChatComponent implements OnInit, AfterViewInit, OnChanges, OnDestr
1599
1630
  onEmojiclick(event: CustomEvent<{
1600
1631
  unicode: string;
1601
1632
  }>): void;
1633
+ autoResize(): void;
1602
1634
  handleEmojiPickerClick(): void;
1603
1635
  onInputFocus(): void;
1604
1636
  handleGifPickerClick(): void;
@@ -1617,7 +1649,7 @@ declare class ChatComponent implements OnInit, AfterViewInit, OnChanges, OnDestr
1617
1649
  private removeEmojiPickerClickListener;
1618
1650
  focus(): void;
1619
1651
  static ɵfac: i0.ɵɵFactoryDeclaration<ChatComponent, never>;
1620
- static ɵcmp: i0.ɵɵComponentDeclaration<ChatComponent, "lib-chat", never, { "default": { "alias": "default"; "required": false; }; "responseTime": { "alias": "responseTime"; "required": false; }; "inputValue": { "alias": "inputValue"; "required": false; }; "emojiPickerConfig": { "alias": "emojiPickerConfig"; "required": false; }; "includeGifMessage": { "alias": "includeGifMessage"; "required": false; }; "includeTime": { "alias": "includeTime"; "required": false; }; "dateMessages": { "alias": "dateMessages"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "enableGifPicker": { "alias": "enableGifPicker"; "required": false; }; "prospectJoinDate": { "alias": "prospectJoinDate"; "required": false; }; "showInitBubble": { "alias": "showInitBubble"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "hasShadow": { "alias": "hasShadow"; "required": false; }; "hasMore": { "alias": "hasMore"; "required": false; }; "inputPlaceholder": { "alias": "inputPlaceholder"; "required": false; }; }, { "sendMessage": "sendMessage"; "getMessages": "getMessages"; }, never, never, false, never>;
1652
+ static ɵcmp: i0.ɵɵComponentDeclaration<ChatComponent, "lib-chat", never, { "default": { "alias": "default"; "required": false; }; "responseTime": { "alias": "responseTime"; "required": false; }; "inputValue": { "alias": "inputValue"; "required": false; }; "emojiPickerConfig": { "alias": "emojiPickerConfig"; "required": false; }; "includeGifMessage": { "alias": "includeGifMessage"; "required": false; }; "includeTime": { "alias": "includeTime"; "required": false; }; "dateMessages": { "alias": "dateMessages"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "enableGifPicker": { "alias": "enableGifPicker"; "required": false; }; "prospectJoinDate": { "alias": "prospectJoinDate"; "required": false; }; "showInitBubble": { "alias": "showInitBubble"; "required": false; }; "initBubbleText": { "alias": "initBubbleText"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "directSend": { "alias": "directSend"; "required": false; }; "hasShadow": { "alias": "hasShadow"; "required": false; }; "hasMore": { "alias": "hasMore"; "required": false; }; "inputPlaceholder": { "alias": "inputPlaceholder"; "required": false; }; }, { "sendMessage": "sendMessage"; "getMessages": "getMessages"; }, never, never, false, never>;
1621
1653
  }
1622
1654
 
1623
1655
  declare class GifSelectorComponent implements OnInit, OnDestroy {
@@ -1684,7 +1716,7 @@ declare class CircleProgressModule {
1684
1716
 
1685
1717
  declare const MATCHER_STATUSES: IStatus[];
1686
1718
 
1687
- declare class MatcherStatusesComponent implements OnChanges {
1719
+ declare class MatcherStatusesComponent implements OnChanges, OnDestroy {
1688
1720
  private cdr;
1689
1721
  adsTemplate?: TemplateRef<HTMLElement>;
1690
1722
  status: MatcherStatuses;
@@ -1737,7 +1769,9 @@ declare class MatcherStatusesComponent implements OnChanges {
1737
1769
  }[];
1738
1770
  rank: number;
1739
1771
  }[];
1772
+ private rejectionTimerId;
1740
1773
  constructor(cdr: ChangeDetectorRef);
1774
+ ngOnDestroy(): void;
1741
1775
  ngOnChanges(changes: SimpleChanges): void;
1742
1776
  private updateIndicatorDisplay;
1743
1777
  private buildAllPrioritiesGrouped;
@@ -1752,6 +1786,7 @@ declare class MatcherStatusesComponent implements OnChanges {
1752
1786
  handleGetMessages(event: boolean): void;
1753
1787
  handleSendMessage(event: IMessage): void;
1754
1788
  focus(): void;
1789
+ private buildSplitSuggestionText;
1755
1790
  static ɵfac: i0.ɵɵFactoryDeclaration<MatcherStatusesComponent, never>;
1756
1791
  static ɵcmp: i0.ɵɵComponentDeclaration<MatcherStatusesComponent, "lib-matcher-statuses", never, { "adsTemplate": { "alias": "adsTemplate"; "required": false; }; "status": { "alias": "status"; "required": false; }; "hideStatuses": { "alias": "hideStatuses"; "required": false; }; "messages": { "alias": "messages"; "required": false; }; "inputValue": { "alias": "inputValue"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "responseTime": { "alias": "responseTime"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "prospectJoinDate": { "alias": "prospectJoinDate"; "required": false; }; "meetupIndicator": { "alias": "meetupIndicator"; "required": false; }; "hasMore": { "alias": "hasMore"; "required": false; }; "includeTime": { "alias": "includeTime"; "required": false; }; "includeGifMessage": { "alias": "includeGifMessage"; "required": false; }; "inputPlaceholder": { "alias": "inputPlaceholder"; "required": false; }; }, { "getMessages": "getMessages"; "sendMessage": "sendMessage"; "dismissPriority": "dismissPriority"; "suggestionClicked": "suggestionClicked"; "remainingPrioritiesChange": "remainingPrioritiesChange"; }, never, never, true, never>;
1757
1792
  }
@@ -1814,6 +1849,8 @@ declare class LibDashboardSwipeableTabsComponent implements AfterViewInit, OnCha
1814
1849
  set activeIndex(val: number);
1815
1850
  get activeIndex(): number;
1816
1851
  private _activeIndex;
1852
+ private _initialScrollDone;
1853
+ private _programmaticSlide;
1817
1854
  bottomThumbs: boolean;
1818
1855
  slideContentMaxHeight: string;
1819
1856
  mainSwiperHeight: string;
@@ -1930,6 +1967,16 @@ declare class LibDashboardSwipeableTabsComponent implements AfterViewInit, OnCha
1930
1967
  expandedItemId: string | null;
1931
1968
  expandedItemLeft: number;
1932
1969
  expandedItemRef: ILibClientMatchOverview | null;
1970
+ private _expandLock;
1971
+ /**
1972
+ * Centralised setter: prevents re-entrant / feedback-loop expansion
1973
+ * changes. Every code path that wants to change the expanded tab
1974
+ * MUST go through this method.
1975
+ *
1976
+ * Returns true when the expansion actually changed, false when
1977
+ * it was suppressed (same id, or lock held).
1978
+ */
1979
+ private setExpandedItem;
1933
1980
  constructor(cdr: ChangeDetectorRef, elementRef: ElementRef, renderer: Renderer2, viewContainerRef: ViewContainerRef, ngZone: NgZone);
1934
1981
  /** Called by the host when a tab's ring color changes. */
1935
1982
  notifyItemColorChange(itemId: string, flag: CONVERSATION_FLAG): void;
@@ -1972,6 +2019,13 @@ declare class LibDashboardSwipeableTabsComponent implements AfterViewInit, OnCha
1972
2019
  private mergeNewItems;
1973
2020
  private syncTabNodesToItems;
1974
2021
  private canMergeInPlace;
2022
+ /**
2023
+ * Order-independent check: returns true when both arrays contain the
2024
+ * exact same set of item IDs (regardless of position).
2025
+ * Used to short-circuit heavy rebuild paths when only data — not the
2026
+ * prospect list itself — has changed.
2027
+ */
2028
+ private sameItemIds;
1975
2029
  private updateItemsInPlace;
1976
2030
  /**
1977
2031
  * After Restore: re-integrate items created since the Store.
@@ -2874,6 +2928,7 @@ declare class ClientViewportComponent extends BaseViewportComponent implements O
2874
2928
  profileSwiperEl?: ElementRef;
2875
2929
  onProfileSlideChange(event: any): void;
2876
2930
  onProfileEdgeDrag(direction: 'left' | 'right'): void;
2931
+ onHandoffPanelMessage(message: IMessage): void;
2877
2932
  onHandoffSwipeNext(): void;
2878
2933
  onHandoffSwipePrev(): void;
2879
2934
  onReject(match: ILibClientMatchOverview): void;
@@ -3142,6 +3197,7 @@ declare class MatcherViewportComponent extends BaseViewportComponent implements
3142
3197
  }>;
3143
3198
  private _tabStripRef;
3144
3199
  private tabStripContentRef;
3200
+ private contentScrollEl?;
3145
3201
  protected get tabStripRef(): ElementRef<HTMLElement> | undefined;
3146
3202
  prefMatchManagerTemplate: TemplateRef<unknown>;
3147
3203
  schedulerSwiperEl: ElementRef<HTMLElement>;
@@ -3203,6 +3259,13 @@ declare class MatcherViewportComponent extends BaseViewportComponent implements
3203
3259
  rank: number;
3204
3260
  }[];
3205
3261
  readonly clientMatches$: BehaviorSubject<ILibClientMatchOverview[]>;
3262
+ /**
3263
+ * Rebuild meetupRemainingPriorities from the currently active prospect's
3264
+ * meetupIndicator so the Plans tab always shows the correct per-request data.
3265
+ */
3266
+ refreshPlansForActiveProspect(): void;
3267
+ private formatHourForPlans;
3268
+ private formatShortDateForPlans;
3206
3269
  onPlansPriorityClick(priority: {
3207
3270
  rank: number;
3208
3271
  }): void;
@@ -3222,7 +3285,12 @@ declare class MatcherViewportComponent extends BaseViewportComponent implements
3222
3285
  hasSuggestions: boolean;
3223
3286
  Array: ArrayConstructor;
3224
3287
  ngOnInit(): void;
3288
+ private contentScrollWheelHandler;
3225
3289
  ngAfterViewInit(): void;
3290
+ private contentScrollTouchStartY;
3291
+ private contentScrollTouchStartHandler;
3292
+ private contentScrollTouchMoveHandler;
3293
+ private attachContentScrollWheelDelegate;
3226
3294
  protected shouldIgnoreTabStripEvent(target: Element | null): boolean;
3227
3295
  protected tabStripDragStart(pageX: number): void;
3228
3296
  protected tabStripDragMove(pageX: number): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@naniteninja/dashboard-components-lib",
3
- "version": "2.1.92",
3
+ "version": "2.1.94",
4
4
  "author": "naniteninja",
5
5
  "repository": {
6
6
  "type": "git"