@cbm-common/cbm-types 0.0.349 → 0.0.350

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.
@@ -1,5 +1,6 @@
1
- import { AfterViewInit, DestroyRef, ElementRef, OnInit } from '@angular/core';
2
- import { AsyncValidatorFn, FormControl, FormGroup, ValidatorFn } from '@angular/forms';
1
+ import { AfterViewInit, DestroyRef, ElementRef, OnDestroy, OnInit } from '@angular/core';
2
+ import { AsyncValidatorFn, FormArray, FormControl, FormGroup, ValidatorFn } from '@angular/forms';
3
+ import { NgSelectComponent } from '@ng-select/ng-select';
3
4
  import { Subject } from 'rxjs';
4
5
  import { ListService, PaginatedListService } from '@cbm-common/data-access';
5
6
  import { CbmClientGroupModel } from '../../domain/models/client-group.domain.model';
@@ -30,8 +31,23 @@ import { CbmPersonTypeUAFERepository } from '../../domain/repositories/person-ty
30
31
  import { GeneralDomainService } from '../../domain/services/general.domain.service';
31
32
  import { CbmEconomicActivitiesDomainRepository } from '../../domain/repositories/economic-activities-uafe.domain.repository';
32
33
  import { CbmEconomicActivitiesDomainModel } from '../../domain/models/economic-activities-uafe.domain.model';
34
+ import { CbmTerritorialOrganizationRepository } from '../../domain/repositories/territorial-organization.domain.repository';
35
+ import { CbmTerritorialOrganizationModel } from '../../domain/models/territorial-organization.domain.model';
36
+ import { CbmSourceIncomeDomainRepository } from '../../domain/repositories/source-income.domain.repository';
37
+ import { CbmSourceIncomeModel } from '../../domain/models/source-income.model';
38
+ import { CbmCountryCodeModel } from '../../domain/models/country-code.domain.model';
39
+ import { ModalMapComponent } from '../modal-map/modal-map.component';
33
40
  export type TSaveOptions = 'new' | 'view' | 'close';
34
- export declare class CbmAddClientComponent implements OnInit, AfterViewInit {
41
+ export type TContactRow = FormGroup<{
42
+ _id: FormControl<string | null>;
43
+ identification_number: FormControl<string | null>;
44
+ full_name: FormControl<string | null>;
45
+ phone_code: FormControl<CbmCountryCodeModel.ListResponse.Data | null>;
46
+ cellphone: FormControl<string | null>;
47
+ email: FormControl<string | null>;
48
+ statusOfGetCi: FormControl<TStatus>;
49
+ }>;
50
+ export declare class CbmAddClientComponent implements OnInit, AfterViewInit, OnDestroy {
35
51
  private destroyRef;
36
52
  private documentTypeRepository;
37
53
  private notificationService;
@@ -48,8 +64,17 @@ export declare class CbmAddClientComponent implements OnInit, AfterViewInit {
48
64
  private personTypeUAFERepository;
49
65
  private readonly accountValidatorsDomainService;
50
66
  private readonly generalService;
51
- constructor(destroyRef: DestroyRef, documentTypeRepository: CbmDocumentTypeDomainRepository, notificationService: CbmNotificationService, billingRepository: CbmBillingDomainRepository, countryCodeRepository: CbmCountryCodeDomainRepository, sellerRepository: CbmSellerDomainRepository, priceListRepository: CbmPriceListDomainRepository, clientGroupRepository: CbmClientGroupRepository, clientRepository: CbmClientDomainRepository, generalSettingsPartnersRepository: CbmGeneralSettingsPartnersDomainRepository, rateRepository: CbmRateDomainRepository, economicActivityRepository: CbmEconomicActivitiesDomainRepository, settingsProfessionsRepository: CbmSettingsProfessionsDomainRepository, personTypeUAFERepository: CbmPersonTypeUAFERepository, accountValidatorsDomainService: AccountValidatorsDomainService, generalService: GeneralDomainService);
67
+ private readonly territorialOrganizationRepository;
68
+ private readonly sourceIncomeRepository;
69
+ constructor(destroyRef: DestroyRef, documentTypeRepository: CbmDocumentTypeDomainRepository, notificationService: CbmNotificationService, billingRepository: CbmBillingDomainRepository, countryCodeRepository: CbmCountryCodeDomainRepository, sellerRepository: CbmSellerDomainRepository, priceListRepository: CbmPriceListDomainRepository, clientGroupRepository: CbmClientGroupRepository, clientRepository: CbmClientDomainRepository, generalSettingsPartnersRepository: CbmGeneralSettingsPartnersDomainRepository, rateRepository: CbmRateDomainRepository, economicActivityRepository: CbmEconomicActivitiesDomainRepository, settingsProfessionsRepository: CbmSettingsProfessionsDomainRepository, personTypeUAFERepository: CbmPersonTypeUAFERepository, accountValidatorsDomainService: AccountValidatorsDomainService, generalService: GeneralDomainService, territorialOrganizationRepository: CbmTerritorialOrganizationRepository, sourceIncomeRepository: CbmSourceIncomeDomainRepository);
70
+ ngOnDestroy(): void;
52
71
  dropdownMenuRef: import("@angular/core").Signal<ElementRef<HTMLUListElement> | undefined>;
72
+ contactDetailsTableContainerRef: import("@angular/core").Signal<ElementRef<HTMLDivElement> | undefined>;
73
+ contactDetailsTableRef: import("@angular/core").Signal<ElementRef<HTMLTableElement> | undefined>;
74
+ contactNgSelectsRefs: import("@angular/core").Signal<readonly NgSelectComponent[]>;
75
+ mapModal: import("@angular/core").Signal<ModalMapComponent | undefined>;
76
+ contactsResizeObserver?: ResizeObserver;
77
+ contactsMutationObserver?: MutationObserver;
53
78
  clientId: import("@angular/core").InputSignal<string | undefined>;
54
79
  isFromOrigin: import("@angular/core").InputSignal<boolean | undefined>;
55
80
  document_type_code: import("@angular/core").InputSignal<string | undefined>;
@@ -78,11 +103,15 @@ export declare class CbmAddClientComponent implements OnInit, AfterViewInit {
78
103
  subjectToSearchCategory$: Subject<string>;
79
104
  sellers$: ListService<CbmSellerModel.ListResponse, CbmSellerModel.ListParams, CbmSellerModel.ListResponse.Data[]>;
80
105
  priceLists$: ListService<CbmPriceListModel.ListResponse, CbmPriceListModel.ListParams, CbmPriceListModel.ListResponse.Data[]>;
81
- countryCodes$: ListService<import("../../domain/models/country-code.domain.model").CbmCountryCodeModel.ListResponse, import("../../domain/models/country-code.domain.model").CbmCountryCodeModel.ListParams, import("../../domain/models/country-code.domain.model").CbmCountryCodeModel.ListResponse.Data[]>;
106
+ countryCodes$: ListService<CbmCountryCodeModel.ListResponse, CbmCountryCodeModel.ListParams, CbmCountryCodeModel.ListResponse.Data[]>;
82
107
  subjectClasses$: PaginatedListService<CbmPersonTypeUAFEModel.ListResponse, CbmPersonTypeUAFEModel.ListParams, CbmPersonTypeUAFEModel.ListResponse.Item[]>;
83
108
  economicActivity$: PaginatedListService<CbmEconomicActivitiesDomainModel.ListResponse, CbmEconomicActivitiesDomainModel.ListParams, CbmEconomicActivitiesDomainModel.ListResponse.Data[]>;
84
109
  rate$: PaginatedListService<CbmRateModel.ListResponse, CbmRateModel.ListParams, CbmRateModel.ListResponse.Item[]>;
85
110
  professions$: PaginatedListService<CbmSettingsProfessionsModel.ListResponse, CbmSettingsProfessionsModel.ListParams, CbmSettingsProfessionsModel.ListResponse.Item[]>;
111
+ provinces$: ListService<CbmTerritorialOrganizationModel.ListProvincesResponse, CbmTerritorialOrganizationModel.ListProvincesParams, CbmTerritorialOrganizationModel.ListProvincesResponse.Data[]>;
112
+ cantons$: ListService<CbmTerritorialOrganizationModel.ListCantonsResponse, CbmTerritorialOrganizationModel.ListCantonsParams, CbmTerritorialOrganizationModel.ListCantonsResponse.Data[]>;
113
+ parishes$: ListService<CbmTerritorialOrganizationModel.ListParishesResponse, CbmTerritorialOrganizationModel.ListParishesParams, CbmTerritorialOrganizationModel.ListParishesResponse.Data[]>;
114
+ sourceIncomes$: PaginatedListService<CbmSourceIncomeModel.ListResponse, CbmSourceIncomeModel.ListParams, CbmSourceIncomeModel.ListResponse.Data[]>;
86
115
  defaultDocumentNumber: string | null;
87
116
  DOCUMENT_TYPES_CODES: {
88
117
  readonly RUC: "04";
@@ -94,6 +123,7 @@ export declare class CbmAddClientComponent implements OnInit, AfterViewInit {
94
123
  saveOption: import("@angular/core").WritableSignal<TSaveOptions | null>;
95
124
  readonly carDelear: import("@angular/core").Signal<boolean>;
96
125
  readonly pms: import("@angular/core").Signal<boolean>;
126
+ readonly additionalInformation: import("@angular/core").Signal<boolean>;
97
127
  modalConfirmRef: import("@angular/core").Signal<CbmModalConfirmComponent | undefined>;
98
128
  clientForm: FormGroup<{
99
129
  documentType: FormControl<CbmDocumentTypeModel.ListResponse.Data | null>;
@@ -120,6 +150,24 @@ export declare class CbmAddClientComponent implements OnInit, AfterViewInit {
120
150
  profession: FormControl<CbmSettingsProfessionsModel.ListResponse.Item | null>;
121
151
  carDealerValue: FormControl<string | null>;
122
152
  }>;
153
+ territorialForm: FormGroup<{
154
+ province: FormControl<CbmTerritorialOrganizationModel.ListProvincesResponse.Data | null>;
155
+ canton: FormControl<CbmTerritorialOrganizationModel.ListCantonsResponse.Data | null>;
156
+ parish: FormControl<CbmTerritorialOrganizationModel.ListParishesResponse.Data | null>;
157
+ latitude: FormControl<string | null>;
158
+ longitude: FormControl<string | null>;
159
+ }>;
160
+ contactForm: FormArray<TContactRow>;
161
+ additionalDataForm: FormGroup<{
162
+ gender: FormControl<string | null>;
163
+ maritalStatus: FormControl<string | null>;
164
+ birthdate: FormControl<string | null>;
165
+ nationality: FormControl<CbmCountryCodeModel.ListResponse.Data | null>;
166
+ commentary: FormControl<string | null>;
167
+ }>;
168
+ dinardapForm: FormGroup<{
169
+ sourceIncome: FormControl<CbmSourceIncomeModel.ListResponse.Data | null>;
170
+ }>;
123
171
  ngOnInit(): void;
124
172
  ngAfterViewInit(): void;
125
173
  documentListener: () => void;
@@ -155,6 +203,10 @@ export declare class CbmAddClientComponent implements OnInit, AfterViewInit {
155
203
  }, b: {
156
204
  _id: string;
157
205
  }): boolean;
206
+ setGeographicalData(coords: {
207
+ lat: number;
208
+ lng: number;
209
+ }): void;
158
210
  cellphoneValidator(): ValidatorFn;
159
211
  noWhitespaceValidator(): ValidatorFn;
160
212
  asyncDocumentNumberValidator(): AsyncValidatorFn;
@@ -175,6 +227,18 @@ export declare class CbmAddClientComponent implements OnInit, AfterViewInit {
175
227
  private checkRelatedDocument;
176
228
  fetchCategories(searchTerm?: string): void;
177
229
  removeEmail(email: string): void;
230
+ private buildContactRow;
231
+ addNewRowToContact(): void;
232
+ deleteRowToContact(index: number): void;
233
+ getCi(detail: TContactRow): void;
234
+ /**
235
+ * Solo cuando `additionalInformation()` está en `true`: arma la información de los navs
236
+ * (datos geográficos y datos adicionales como objeto, contactos como array) con el mismo
237
+ * nombre de campo que ya usan sus pantallas reales equivalentes (`geographical-data`,
238
+ * `management`, `branch/contacts`) — pendiente de confirmar con backend que el endpoint de
239
+ * cliente ya acepta este payload extendido.
240
+ */
241
+ private buildAdditionalInformationPayload;
178
242
  saveClient(callback: (newClientId: string) => void): void;
179
243
  addClientAndNew(): void;
180
244
  addClientAndView(): void;
@@ -186,4 +250,5 @@ export declare class CbmAddClientComponent implements OnInit, AfterViewInit {
186
250
  validateUpdateClientForm(): Promise<void>;
187
251
  onCancelModalConfirm(): void;
188
252
  onCancelPress(): void;
253
+ private resetNavForms;
189
254
  }
@@ -70,7 +70,7 @@ export declare class ItemListComponent implements OnInit {
70
70
  isSmallScreen: import("@angular/core").WritableSignal<boolean>;
71
71
  sortBy: import("@angular/core").WritableSignal<string | null>;
72
72
  sortOrder: import("@angular/core").WritableSignal<"desc" | "asc">;
73
- sortStockBy: import("@angular/core").WritableSignal<"warehouse" | "general" | "transit" | null>;
73
+ sortStockBy: import("@angular/core").WritableSignal<"general" | "warehouse" | "transit" | null>;
74
74
  withStock: import("@angular/core").Signal<boolean>;
75
75
  withProviderCode: import("@angular/core").Signal<boolean>;
76
76
  excludeFilters: import("@angular/core").Signal<string[]>;
@@ -0,0 +1,19 @@
1
+ import { DestroyRef, OnInit } from '@angular/core';
2
+ import { FormControl } from '@angular/forms';
3
+ import { INominatimModel } from '../../domain/models/nominatim.domain.model';
4
+ import { NominatimDomainRepository } from '../../domain/repositories/nominatim.domain.repository';
5
+ import { CbmAuthService } from '../../domain/services/auth/auth.service';
6
+ export declare class LocationSearchComponent implements OnInit {
7
+ private readonly destroyRef;
8
+ private readonly nominatimRepository;
9
+ private readonly authService;
10
+ constructor(destroyRef: DestroyRef, nominatimRepository: NominatimDomainRepository, authService: CbmAuthService);
11
+ searchControl: FormControl<string>;
12
+ nominatimData: import("@angular/core").WritableSignal<INominatimModel.Response[]>;
13
+ stOfLocation: import("@angular/core").WritableSignal<boolean>;
14
+ address: import("@angular/core").OutputEmitterRef<INominatimModel.Response>;
15
+ ngOnInit(): void;
16
+ private makeSubscriptions;
17
+ reverseAddress(lat: string | number, lon: string | number): Promise<void>;
18
+ emitValue(address: INominatimModel.Response): void;
19
+ }
@@ -0,0 +1 @@
1
+ export declare const fadeInOutAnimation: import("@angular/animations").AnimationTriggerMetadata;
@@ -0,0 +1,45 @@
1
+ import { AfterViewInit, DestroyRef, ElementRef, EventEmitter, OnDestroy } from '@angular/core';
2
+ import { FormControl, FormGroup } from '@angular/forms';
3
+ import { CbmNotificationService } from '../../domain/services/notification/notification.service';
4
+ import { GeneralDomainService } from '../../domain/services/general.domain.service';
5
+ import { LeafletjsDomainService } from '../../domain/services/leafletjs.domain.service';
6
+ import { LocationSearchComponent } from '../location-search/location-search.component';
7
+ export declare class ModalMapComponent implements AfterViewInit, OnDestroy {
8
+ private readonly generalService;
9
+ private readonly destroyRef;
10
+ private readonly leafletjsService;
11
+ private readonly notificationService;
12
+ modalId: import("@angular/core").InputSignal<string>;
13
+ origen: 'ver' | 'fijar';
14
+ coordenadasSeleccionadas: EventEmitter<{
15
+ lat: number;
16
+ lng: number;
17
+ }>;
18
+ origenModal: 'ver' | 'fijar';
19
+ coordinates: import("@angular/core").InputSignal<{
20
+ latitude?: number | null;
21
+ longitude?: number | null;
22
+ } | null>;
23
+ private destroyMapClick$;
24
+ private modalElement;
25
+ territorialForm: FormGroup<{
26
+ longitude: FormControl<string | null>;
27
+ latitude: FormControl<string | null>;
28
+ }>;
29
+ mapRef: import("@angular/core").Signal<ElementRef<HTMLDivElement>>;
30
+ locationSearchComp: import("@angular/core").Signal<LocationSearchComponent>;
31
+ readonly stOfGeolocation: import("@angular/core").WritableSignal<boolean>;
32
+ constructor(generalService: GeneralDomainService, destroyRef: DestroyRef, leafletjsService: LeafletjsDomainService, notificationService: CbmNotificationService);
33
+ ngAfterViewInit(): void;
34
+ ngOnDestroy(): void;
35
+ private setupInitialCoordinates;
36
+ subObservers(): void;
37
+ get longitudeControl(): FormControl<string | null>;
38
+ get latitudeControl(): FormControl<string | null>;
39
+ openModal(origen: 'ver' | 'fijar'): void;
40
+ onCloseModal(): void;
41
+ setMarkert(latd: string | number, lngd: string | number): void;
42
+ useCurrentLocation(): void;
43
+ onCoords(latd: string | number, lngd: string | number): void;
44
+ onLngClick(lng: string | number, lati: string | number): void;
45
+ }
@@ -14,6 +14,7 @@ export declare namespace CbmGeneralSettingsPartnersModel {
14
14
  updated_user?: string;
15
15
  pms_configuration?: boolean;
16
16
  delear_configuration?: boolean;
17
+ additional_information?: boolean;
17
18
  }
18
19
  }
19
20
  }
@@ -0,0 +1,66 @@
1
+ export declare namespace INominatimModel {
2
+ interface ParamsConfig {
3
+ format: 'json' | 'xml' | 'jsonv2' | 'geojson';
4
+ limit?: number;
5
+ addressdetails?: 0 | 1;
6
+ extratags?: 0 | 1;
7
+ namedetails?: 0 | 1;
8
+ }
9
+ interface Params extends ParamsConfig {
10
+ q: string;
11
+ countrycodes?: string;
12
+ }
13
+ interface ParamsReverse extends ParamsConfig {
14
+ lat: string | number;
15
+ lon: string | number;
16
+ }
17
+ interface Response {
18
+ place_id: number;
19
+ licence: string;
20
+ osm_type: string;
21
+ osm_id: number;
22
+ lat: string;
23
+ lon: string;
24
+ class: string;
25
+ type: string;
26
+ place_rank: number;
27
+ importance: number;
28
+ addresstype: string;
29
+ name: string;
30
+ display_name: string;
31
+ boundingbox: string[];
32
+ }
33
+ interface ReverseResponse {
34
+ place_id: number;
35
+ licence: string;
36
+ osm_type: string;
37
+ osm_id: number;
38
+ lat: string;
39
+ lon: string;
40
+ category: string;
41
+ type: string;
42
+ place_rank: number;
43
+ importance: number;
44
+ addresstype: string;
45
+ name: string;
46
+ display_name: string;
47
+ address: ReverseResponse.Address;
48
+ boundingbox: string[];
49
+ }
50
+ namespace ReverseResponse {
51
+ interface Address {
52
+ amenity: string;
53
+ road: string;
54
+ quarter: string;
55
+ suburb: string;
56
+ city_district: string;
57
+ city: string;
58
+ county: string;
59
+ plot: string;
60
+ 'ISO3166-2-lvl4': string;
61
+ postcode: string;
62
+ country: string;
63
+ country_code: string;
64
+ }
65
+ }
66
+ }
@@ -0,0 +1,9 @@
1
+ import { Observable } from 'rxjs';
2
+ import { INominatimModel } from '../models/nominatim.domain.model';
3
+ import { INominatimInfrastructureRepository } from '../../infrastructure/repositories/nominatim.infrastructure.repository';
4
+ export declare class NominatimDomainRepository implements INominatimInfrastructureRepository {
5
+ private readonly nominatimApiService;
6
+ constructor(nominatimApiService: INominatimInfrastructureRepository);
7
+ findSearch(params: INominatimModel.Params): Observable<INominatimModel.Response[]>;
8
+ reverse(params: INominatimModel.ParamsReverse): Observable<INominatimModel.ReverseResponse>;
9
+ }
@@ -0,0 +1,13 @@
1
+ import L from 'leaflet';
2
+ import { Observable } from 'rxjs';
3
+ export declare class LeafletjsDomainService {
4
+ leafletjsMap: L.Map | null;
5
+ marker: Map<string, L.Marker<any>>;
6
+ setMap(htmlDivElement: HTMLDivElement, latd: string | null, lngd: string | null): void;
7
+ setMarker(latd: string | number, lngd: string | number, popupContent?: string): string;
8
+ removeMarker(markerId: string): void;
9
+ removeAllMarker(): void;
10
+ onClick(): Observable<L.LeafletMouseEvent>;
11
+ disableMapInteractions(): void;
12
+ enableMapInteractions(): void;
13
+ }
@@ -20,6 +20,10 @@ export declare namespace CbmAiWebSocketModel {
20
20
  lastSeq: number;
21
21
  events: RunEnvelope[];
22
22
  truncated: boolean;
23
+ /** Epoch ms (servidor) en que empezó la corrida; `finishedAt` solo si ya terminó. */
24
+ startedAt?: number;
25
+ finishedAt?: number;
26
+ conversationId?: string;
23
27
  } | {
24
28
  ok: false;
25
29
  error: string;
@@ -0,0 +1,6 @@
1
+ import { Observable } from 'rxjs';
2
+ import { INominatimModel } from '../../domain/models/nominatim.domain.model';
3
+ export interface INominatimInfrastructureRepository {
4
+ findSearch(params: INominatimModel.Params): Observable<INominatimModel.Response[]>;
5
+ reverse(params: INominatimModel.ParamsReverse): Observable<INominatimModel.ReverseResponse>;
6
+ }
@@ -0,0 +1,11 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { Observable } from 'rxjs';
3
+ import { INominatimModel } from '../../domain/models/nominatim.domain.model';
4
+ import { INominatimInfrastructureRepository } from '../repositories/nominatim.infrastructure.repository';
5
+ export declare class NominatimInfrastructureService implements INominatimInfrastructureRepository {
6
+ private readonly httpClient;
7
+ constructor(httpClient: HttpClient);
8
+ private readonly url;
9
+ findSearch(params: INominatimModel.Params): Observable<INominatimModel.Response[]>;
10
+ reverse(params: INominatimModel.ParamsReverse): Observable<INominatimModel.ReverseResponse>;
11
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cbm-common/cbm-types",
3
- "version": "0.0.349",
3
+ "version": "0.0.350",
4
4
  "main": "index.js",
5
5
  "types": "public-api.d.ts",
6
6
  "exports": {