hl-core 0.0.7 → 0.0.8

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 (62) hide show
  1. package/.prettierrc +2 -1
  2. package/api/index.ts +580 -0
  3. package/api/interceptors.ts +38 -0
  4. package/components/Button/Btn.vue +57 -0
  5. package/components/Button/BtnIcon.vue +47 -0
  6. package/components/Button/ScrollButtons.vue +6 -0
  7. package/components/Button/SortArrow.vue +21 -0
  8. package/components/Complex/Content.vue +5 -0
  9. package/components/Complex/ContentBlock.vue +5 -0
  10. package/components/Complex/Page.vue +43 -0
  11. package/components/Dialog/Dialog.vue +76 -0
  12. package/components/Dialog/FamilyDialog.vue +39 -0
  13. package/components/Form/FormBlock.vue +114 -0
  14. package/components/Form/FormSection.vue +18 -0
  15. package/components/Form/FormTextSection.vue +20 -0
  16. package/components/Form/FormToggle.vue +52 -0
  17. package/components/Form/ProductConditionsBlock.vue +68 -0
  18. package/components/Input/EmptyFormField.vue +5 -0
  19. package/components/Input/FileInput.vue +71 -0
  20. package/components/Input/FormInput.vue +171 -0
  21. package/components/Input/PanelInput.vue +133 -0
  22. package/components/Input/RoundedInput.vue +143 -0
  23. package/components/Layout/Drawer.vue +44 -0
  24. package/components/Layout/Header.vue +48 -0
  25. package/components/Layout/Loader.vue +35 -0
  26. package/components/Layout/SettingsPanel.vue +48 -0
  27. package/components/List/ListEmpty.vue +22 -0
  28. package/components/Menu/MenuNav.vue +108 -0
  29. package/components/Menu/MenuNavItem.vue +37 -0
  30. package/components/Pages/Anketa.vue +333 -0
  31. package/components/Pages/Auth.vue +91 -0
  32. package/components/Pages/Documents.vue +108 -0
  33. package/components/Pages/MemberForm.vue +1138 -0
  34. package/components/Pages/ProductAgreement.vue +18 -0
  35. package/components/Pages/ProductConditions.vue +349 -0
  36. package/components/Panel/PanelItem.vue +5 -0
  37. package/components/Panel/PanelSelectItem.vue +20 -0
  38. package/components/Transitions/FadeTransition.vue +5 -0
  39. package/composables/axios.ts +11 -0
  40. package/composables/classes.ts +1129 -0
  41. package/composables/constants.ts +65 -0
  42. package/composables/index.ts +168 -2
  43. package/composables/styles.ts +41 -8
  44. package/layouts/clear.vue +3 -0
  45. package/layouts/default.vue +75 -0
  46. package/layouts/full.vue +6 -0
  47. package/nuxt.config.ts +27 -5
  48. package/package.json +23 -11
  49. package/pages/500.vue +85 -0
  50. package/plugins/helperFunctionsPlugins.ts +14 -2
  51. package/plugins/storePlugin.ts +6 -7
  52. package/plugins/vuetifyPlugin.ts +10 -0
  53. package/store/data.store.js +2460 -6
  54. package/store/form.store.ts +8 -0
  55. package/store/member.store.ts +291 -0
  56. package/store/messages.ts +156 -37
  57. package/store/rules.js +26 -28
  58. package/tailwind.config.js +10 -0
  59. package/types/index.ts +250 -0
  60. package/app.vue +0 -3
  61. package/components/Button/GreenBtn.vue +0 -33
  62. package/store/app.store.js +0 -12
@@ -0,0 +1,1129 @@
1
+ import { formatDate } from '.';
2
+ import { RouteLocationNormalized, RouteLocationNormalizedLoaded } from 'vue-router';
3
+
4
+ type LinkType = Partial<RouteLocationNormalized> | Partial<RouteLocationNormalizedLoaded> | string | null | boolean;
5
+
6
+ class MenuItemConfig {
7
+ id: any;
8
+ title: string | null;
9
+ link?: LinkType;
10
+ hasLine?: boolean;
11
+ description?: string | null;
12
+ url?: string | null;
13
+ initial?: any | null;
14
+ icon?: string | null;
15
+ action?: Function | void;
16
+ disabled?: ComputedRef;
17
+ color?: string;
18
+ show?: ComputedRef;
19
+
20
+ constructor(
21
+ id: any = null,
22
+ title: string | null = null,
23
+ link?: LinkType,
24
+ hasLine?: boolean,
25
+ description?: string | null,
26
+ url?: string | null,
27
+ initial?: any | null,
28
+ icon?: string | null,
29
+ action?: Function | void,
30
+ disabled?: ComputedRef,
31
+ color?: string,
32
+ show?: ComputedRef,
33
+ ) {
34
+ this.id = id;
35
+ this.title = title;
36
+ this.link = link;
37
+ this.hasLine = hasLine;
38
+ this.description = description;
39
+ this.url = url;
40
+ this.initial = initial;
41
+ this.icon = icon;
42
+ this.action = action;
43
+ this.disabled = disabled;
44
+ this.color = color;
45
+ this.show = show;
46
+ }
47
+ }
48
+
49
+ export class MenuItem extends MenuItemConfig {
50
+ constructor({ id, title, link, hasLine, description, url, initial, icon, action, disabled, color, show }: MenuItemConfig = new MenuItemConfig()) {
51
+ super(id, title, link, hasLine, description, url, initial, icon, action, disabled, color, show);
52
+ }
53
+ }
54
+
55
+ export class Value {
56
+ id: string | number | null;
57
+ code: string | number | null;
58
+ nameRu: string | number | null;
59
+ nameKz: string | number | null;
60
+ ids: string | number | null;
61
+
62
+ constructor(id: string | number | null = null, nameRu: string | null = null, nameKz: string | null = null, code: string | null = null, ids: string | null = null) {
63
+ this.id = id;
64
+ this.code = code;
65
+ this.nameRu = nameRu;
66
+ this.nameKz = nameKz;
67
+ this.ids = ids;
68
+ }
69
+ }
70
+
71
+ export class IDocument {
72
+ id?: string;
73
+ processInstanceId?: string;
74
+ iin?: string;
75
+ fileTypeId?: string;
76
+ fileTypeName?: string;
77
+ fileId?: string;
78
+ page?: number;
79
+ fileName?: string;
80
+ fileTypeCode?: string;
81
+ sharedId?: string | null;
82
+ signed?: boolean | null;
83
+ signId?: string | null;
84
+ certificateDate?: string | null;
85
+ constructor(
86
+ id?: string,
87
+ processInstanceId?: string,
88
+ iin?: string,
89
+ fileTypeId?: string,
90
+ fileTypeName?: string,
91
+ fileId?: string,
92
+ page?: number,
93
+ fileName?: string,
94
+ fileTypeCode?: string,
95
+ sharedId?: string | null,
96
+ signed?: boolean | null,
97
+ signId?: string | null,
98
+ certificateDate?: string | null,
99
+ ) {
100
+ this.id = id;
101
+ this.processInstanceId = processInstanceId;
102
+ this.iin = iin;
103
+ this.fileTypeId = fileTypeId;
104
+ this.fileTypeName = fileTypeName;
105
+ this.fileId = fileId;
106
+ this.page = page;
107
+ this.fileName = fileName;
108
+ this.fileTypeCode = fileTypeCode;
109
+ this.sharedId = sharedId;
110
+ this.signed = signed;
111
+ this.signId = signId;
112
+ this.certificateDate = certificateDate;
113
+ }
114
+ }
115
+
116
+ export class DocumentItem extends IDocument {
117
+ constructor(
118
+ { id, processInstanceId, iin, fileTypeId, fileTypeName, fileId, page, fileName, fileTypeCode, sharedId, signed, signId, certificateDate }: IDocument = new IDocument(),
119
+ ) {
120
+ super(id, processInstanceId, iin, fileTypeId, fileTypeName, fileId, page, fileName, fileTypeCode, sharedId, signed, signId, certificateDate);
121
+ }
122
+ }
123
+
124
+ export class MenuOption {
125
+ text: string | null;
126
+ subtitle: string | null;
127
+ icon: string | null;
128
+ variant: string | null;
129
+ size: string | null;
130
+
131
+ constructor(text = 'Text', subtitle = 'Subtitle', icon = 'mdi-content-copy', variant = 'text', size = 'small') {
132
+ this.text = text;
133
+ this.subtitle = subtitle;
134
+ this.icon = icon;
135
+ this.variant = variant;
136
+ this.size = size;
137
+ }
138
+ }
139
+
140
+ export const InitialColumns = () => {
141
+ return {
142
+ addRegNumber: null,
143
+ number: null,
144
+ iin: null,
145
+ longName: null,
146
+ userName: null,
147
+ processCodeTitle: null,
148
+ historyStatusTitle: null,
149
+ dateCreated: null,
150
+ };
151
+ };
152
+
153
+ export class User {
154
+ login: string | null;
155
+ password: string | null;
156
+ roles: string[];
157
+ id: string | null;
158
+ fullName: string | null;
159
+
160
+ constructor(login: string | null = null, password: string | null = null, roles: string[] = [], id: string | null = null, fullName: string | null = null) {
161
+ this.login = login;
162
+ this.password = password;
163
+ this.roles = roles;
164
+ this.id = id;
165
+ this.fullName = fullName;
166
+ }
167
+
168
+ resetUser() {
169
+ this.login = null;
170
+ this.password = null;
171
+ this.roles = [];
172
+ this.id = null;
173
+ this.fullName = null;
174
+ }
175
+ }
176
+
177
+ class Person {
178
+ id: string | number | null;
179
+ type: string | number | null;
180
+ iin: string | null;
181
+ longName: string | null;
182
+ lastName: string | null;
183
+ firstName: string | null;
184
+ middleName: string | null;
185
+ birthDate: string | null;
186
+ gender: Value;
187
+ genderName: string | null;
188
+ birthPlace: Value;
189
+ age: string | null;
190
+ registrationDate: string;
191
+
192
+ constructor(
193
+ id = 0,
194
+ type = 1,
195
+ iin = null,
196
+ longName = null,
197
+ lastName = null,
198
+ firstName = null,
199
+ middleName = null,
200
+ birthDate = null,
201
+ gender = new Value(),
202
+ genderName = null,
203
+ birthPlace = new Value(),
204
+ age = null,
205
+ ) {
206
+ this.id = id;
207
+ this.type = type;
208
+ this.iin = iin;
209
+ this.longName = !!lastName && !!firstName && !!middleName ? (((((lastName as string) + firstName) as string) + middleName) as string) : longName;
210
+ this.lastName = lastName;
211
+ this.firstName = firstName;
212
+ this.middleName = middleName;
213
+ this.birthDate = birthDate;
214
+ this.gender = gender;
215
+ this.genderName = gender && gender.nameRu !== null ? (gender.nameRu as string) : genderName;
216
+ this.birthPlace = birthPlace;
217
+ this.age = age;
218
+ this.registrationDate = new Date(Date.now() - new Date().getTimezoneOffset() * 60 * 1000).toISOString().slice(0, -1);
219
+ }
220
+
221
+ resetPerson(clearIinAndPhone: boolean = true) {
222
+ this.id = 0;
223
+ this.type = 1;
224
+ if (clearIinAndPhone === true) {
225
+ this.iin = null;
226
+ }
227
+ this.longName = null;
228
+ this.lastName = null;
229
+ this.firstName = null;
230
+ this.middleName = null;
231
+ this.birthDate = null;
232
+ this.gender = new Value();
233
+ this.genderName = null;
234
+ this.birthPlace = new Value();
235
+ this.age = null;
236
+ this.registrationDate = new Date(Date.now() - new Date().getTimezoneOffset() * 60 * 1000).toISOString().slice(0, -1);
237
+ }
238
+
239
+ formatDate(date: any): Date | null {
240
+ return formatDate(date);
241
+ }
242
+
243
+ getDateByKey(key: string): string | null {
244
+ const ctxKey = key as keyof typeof this;
245
+ if (this[ctxKey] && this[ctxKey] !== null) {
246
+ const formattedDate = this.formatDate(this[ctxKey]);
247
+ return formattedDate ? formattedDate.toISOString() : null;
248
+ } else {
249
+ return null;
250
+ }
251
+ }
252
+
253
+ getBirthDate() {
254
+ return this.getDateByKey('birthDate');
255
+ }
256
+
257
+ getDocumentExpireDate() {
258
+ return this.getDateByKey('documentExpire');
259
+ }
260
+
261
+ getDocumentDate() {
262
+ return this.getDateByKey('documentDate');
263
+ }
264
+
265
+ getAgeByBirthDate() {
266
+ const date = this.formatDate(this.birthDate);
267
+ if (date) {
268
+ const age = Math.abs(new Date(Date.now() - new Date(date).getTime()).getUTCFullYear() - 1970);
269
+ if (new Date(date) < new Date(Date.now()) && age > 0) {
270
+ return age.toString();
271
+ }
272
+ } else {
273
+ return null;
274
+ }
275
+ }
276
+ }
277
+
278
+ export class Contragent extends Person {
279
+ economySectorCode: Value;
280
+ countryOfCitizenship: Value;
281
+ countryOfTaxResidency: Value;
282
+ registrationCountry: Value;
283
+ registrationProvince: Value;
284
+ registrationRegion: Value;
285
+ registrationRegionType: Value;
286
+ registrationCity: Value;
287
+ registrationQuarter: string | null;
288
+ registrationMicroDistrict: string | null;
289
+ registrationStreet: string | null;
290
+ registrationNumberHouse: string | null;
291
+ registrationNumberApartment: string | null;
292
+ phoneNumber: string | null;
293
+ homePhone: string | null;
294
+ email: string | null;
295
+ signOfResidency: Value;
296
+ documentType: Value;
297
+ documentNumber: string | null;
298
+ documentIssuers: Value;
299
+ documentDate: string | null;
300
+ documentExpire: string | null;
301
+ verifyDate: string | null;
302
+ verifyType: string | null;
303
+ otpTokenId: string | null;
304
+ constructor(
305
+ economySectorCode = new Value(),
306
+ countryOfCitizenship = new Value(),
307
+ countryOfTaxResidency = new Value(),
308
+ registrationCountry = new Value(),
309
+ registrationProvince = new Value(),
310
+ registrationRegion = new Value(),
311
+ registrationRegionType = new Value(),
312
+ registrationCity = new Value(),
313
+ registrationQuarter = null,
314
+ registrationMicroDistrict = null,
315
+ registrationStreet = null,
316
+ registrationNumberHouse = null,
317
+ registrationNumberApartment = null,
318
+ phoneNumber = null,
319
+ homePhone = null,
320
+ email = null,
321
+ signOfResidency = new Value(),
322
+ documentType = new Value(),
323
+ documentNumber = null,
324
+ documentIssuers = new Value(),
325
+ documentDate = null,
326
+ documentExpire = null,
327
+ ...args: any
328
+ ) {
329
+ super(...args);
330
+ this.economySectorCode = economySectorCode;
331
+ this.countryOfCitizenship = countryOfCitizenship;
332
+ this.countryOfTaxResidency = countryOfTaxResidency;
333
+ this.registrationCountry = registrationCountry;
334
+ this.registrationProvince = registrationProvince;
335
+ this.registrationRegion = registrationRegion;
336
+ this.registrationRegionType = registrationRegionType;
337
+ this.registrationCity = registrationCity;
338
+ this.registrationQuarter = registrationQuarter;
339
+ this.registrationMicroDistrict = registrationMicroDistrict;
340
+ this.registrationStreet = registrationStreet;
341
+ this.registrationNumberHouse = registrationNumberHouse;
342
+ this.registrationNumberApartment = registrationNumberApartment;
343
+ this.phoneNumber = phoneNumber;
344
+ this.homePhone = homePhone;
345
+ this.email = email;
346
+ this.signOfResidency = signOfResidency;
347
+ this.documentType = documentType;
348
+ this.documentNumber = documentNumber;
349
+ this.documentIssuers = documentIssuers;
350
+ this.documentDate = documentDate;
351
+ this.documentExpire = documentExpire;
352
+ this.verifyDate = null;
353
+ this.verifyType = null;
354
+ this.otpTokenId = null;
355
+ }
356
+ }
357
+
358
+ export class Member extends Person {
359
+ verifyType: any;
360
+ verifyDate: any;
361
+ postIndex: string | null;
362
+ isPdl: boolean;
363
+ migrationCard: string | null;
364
+ migrationCardIssueDate: string | null;
365
+ migrationCardExpireDate: string | null;
366
+ confirmDocType: string | null;
367
+ confirmDocNumber: string | null;
368
+ confirmDocIssueDate: string | null;
369
+ confirmDocExpireDate: string | null;
370
+ notaryLongName: string | null;
371
+ notaryLicenseNumber: string | null;
372
+ notaryLicenseDate: string | null;
373
+ notaryLicenseIssuer: string | null;
374
+ jurLongName: string | null;
375
+ fullNameRod: string | null;
376
+ confirmDocTypeKz: string | null;
377
+ confirmDocTypeRod: string | null;
378
+ isNotary: boolean;
379
+ insurancePay: Value;
380
+ job: string | null;
381
+ jobPosition: string | null;
382
+ jobPlace: string | null;
383
+ registrationCountry: Value;
384
+ registrationProvince: Value;
385
+ registrationRegion: Value;
386
+ registrationRegionType: Value;
387
+ registrationCity: Value;
388
+ registrationQuarter: string | null;
389
+ registrationMicroDistrict: string | null;
390
+ registrationStreet: string | null;
391
+ registrationNumberHouse: string | null;
392
+ registrationNumberApartment: string | null;
393
+ birthRegion: Value;
394
+ documentType: Value;
395
+ documentNumber: string | null;
396
+ documentIssuers: Value;
397
+ documentDate: string | null;
398
+ documentExpire: string | null;
399
+ signOfResidency: Value;
400
+ signOfIPDL: Value;
401
+ countryOfCitizenship: Value;
402
+ countryOfTaxResidency: Value;
403
+ addTaxResidency: Value;
404
+ economySectorCode: Value;
405
+ phoneNumber: string | null;
406
+ homePhone: string | null;
407
+ email: string | null;
408
+ address: string | null;
409
+ familyStatus: Value;
410
+ isTerror: null;
411
+ relationDegree: Value;
412
+ isDisability: Value;
413
+ disabilityGroup: Value | null;
414
+ percentageOfPayoutAmount: string | number | null;
415
+ _cyrPattern: RegExp;
416
+ _numPattern: RegExp;
417
+ _phonePattern: RegExp;
418
+ _emailPattern: RegExp;
419
+ gotFromInsis: boolean | null;
420
+ gosPersonData: any;
421
+ hasAgreement: boolean | null;
422
+ otpTokenId: string | null;
423
+ otpCode: string | null;
424
+ constructor(
425
+ id = 0,
426
+ type = 1,
427
+ iin = null,
428
+ phoneNumber = null,
429
+ longName = null,
430
+ lastName = null,
431
+ firstName = null,
432
+ middleName = null,
433
+ birthDate = null,
434
+ gender = new Value(),
435
+ genderName = null,
436
+ birthPlace = new Value(),
437
+ age = null,
438
+ registrationDate = null,
439
+ job = null,
440
+ jobPosition = null,
441
+ jobPlace = null,
442
+ registrationCountry = new Value(),
443
+ registrationProvince = new Value(),
444
+ registrationRegion = new Value(),
445
+ registrationRegionType = new Value(),
446
+ registrationCity = new Value(),
447
+ registrationQuarter = null,
448
+ registrationMicroDistrict = null,
449
+ registrationStreet = null,
450
+ registrationNumberHouse = null,
451
+ registrationNumberApartment = null,
452
+ birthRegion = new Value(),
453
+ documentType = new Value(),
454
+ documentNumber = null,
455
+ documentIssuers = new Value(),
456
+ documentDate = null,
457
+ documentExpire = null,
458
+ signOfResidency = new Value(),
459
+ signOfIPDL = new Value(),
460
+ isTerror = null,
461
+ countryOfCitizenship = new Value(),
462
+ countryOfTaxResidency = new Value(),
463
+ addTaxResidency = new Value(),
464
+ economySectorCode = new Value(),
465
+ homePhone = null,
466
+ email = null,
467
+ address = null,
468
+ familyStatus = new Value(),
469
+ relationDegree = new Value(),
470
+ isDisability = new Value(),
471
+ disabilityGroupId = new Value(),
472
+ percentageOfPayoutAmount = null,
473
+ migrationCard = null,
474
+ migrationCardIssueDate = null,
475
+ migrationCardExpireDate = null,
476
+ confirmDocType = null,
477
+ confirmDocNumber = null,
478
+ confirmDocIssueDate = null,
479
+ confirmDocExpireDate = null,
480
+ notaryLongName = null,
481
+ notaryLicenseNumber = null,
482
+ notaryLicenseDate = null,
483
+ notaryLicenseIssuer = null,
484
+ jurLongName = null,
485
+ fullNameRod = null,
486
+ confirmDocTypeKz = null,
487
+ confirmDocTypeRod = null,
488
+ isNotary = false,
489
+ ) {
490
+ super(id, type, iin, longName, lastName, firstName, middleName, birthDate, gender, genderName, birthPlace, age);
491
+ this.postIndex = null;
492
+ this.isPdl = false;
493
+ this.migrationCard = migrationCard;
494
+ this.migrationCardIssueDate = migrationCardIssueDate;
495
+ this.migrationCardExpireDate = migrationCardExpireDate;
496
+ this.confirmDocType = confirmDocType;
497
+ this.confirmDocNumber = confirmDocNumber;
498
+ this.confirmDocIssueDate = confirmDocIssueDate;
499
+ this.confirmDocExpireDate = confirmDocExpireDate;
500
+ this.notaryLongName = notaryLongName;
501
+ this.notaryLicenseNumber = notaryLicenseNumber;
502
+ this.notaryLicenseDate = notaryLicenseDate;
503
+ this.notaryLicenseIssuer = notaryLicenseIssuer;
504
+ this.jurLongName = jurLongName;
505
+ this.fullNameRod = fullNameRod;
506
+ this.confirmDocTypeKz = confirmDocTypeKz;
507
+ this.confirmDocTypeRod = confirmDocTypeRod;
508
+ this.isNotary = isNotary;
509
+ this.insurancePay = new Value();
510
+ this.job = job;
511
+ this.jobPosition = jobPosition;
512
+ this.jobPlace = jobPlace;
513
+ this.registrationCountry = registrationCountry;
514
+ this.registrationProvince = registrationProvince;
515
+ this.registrationRegion = registrationRegion;
516
+ this.registrationRegionType = registrationRegionType;
517
+ this.registrationCity = registrationCity;
518
+ this.registrationQuarter = registrationQuarter;
519
+ this.registrationMicroDistrict = registrationMicroDistrict;
520
+ this.registrationStreet = registrationStreet;
521
+ this.registrationNumberHouse = registrationNumberHouse;
522
+ this.registrationNumberApartment = registrationNumberApartment;
523
+ this.birthRegion = birthRegion;
524
+ this.documentType = documentType;
525
+ this.documentNumber = documentNumber;
526
+ this.documentIssuers = documentIssuers;
527
+ this.documentDate = documentDate;
528
+ this.documentExpire = documentExpire;
529
+ this.signOfResidency = signOfResidency;
530
+ this.signOfIPDL = signOfIPDL;
531
+ this.countryOfCitizenship = countryOfCitizenship;
532
+ this.countryOfTaxResidency = countryOfTaxResidency;
533
+ this.addTaxResidency = addTaxResidency;
534
+ this.economySectorCode = economySectorCode;
535
+ this.phoneNumber = phoneNumber;
536
+ this.homePhone = homePhone;
537
+ this.email = email;
538
+ this.otpTokenId = null;
539
+ this.otpCode = null;
540
+ this.address = address;
541
+ this.familyStatus = familyStatus;
542
+ this.isTerror = isTerror;
543
+ this.relationDegree = relationDegree;
544
+ this.isDisability = isDisability;
545
+ this.disabilityGroup = disabilityGroupId;
546
+ this.percentageOfPayoutAmount = percentageOfPayoutAmount;
547
+ this._cyrPattern = /[\u0400-\u04FF]+/;
548
+ this._numPattern = /[0-9]+/;
549
+ this._phonePattern = /\(?([0-9]{3})\)?([ .-]?)([0-9]{3})\2([0-9]{4})/;
550
+ this._emailPattern = /.+@.+\..+/;
551
+ this.gotFromInsis = true;
552
+ this.gosPersonData = null;
553
+ this.hasAgreement = null;
554
+ }
555
+
556
+ resetMember(clearIinAndPhone: boolean = true) {
557
+ super.resetPerson(clearIinAndPhone);
558
+ this.job = null;
559
+ this.jobPosition = null;
560
+ this.jobPlace = null;
561
+ this.registrationCountry = new Value();
562
+ this.registrationProvince = new Value();
563
+ this.registrationRegion = new Value();
564
+ this.registrationRegionType = new Value();
565
+ this.registrationCity = new Value();
566
+ this.registrationQuarter = null;
567
+ this.registrationMicroDistrict = null;
568
+ this.registrationStreet = null;
569
+ this.registrationNumberHouse = null;
570
+ this.registrationNumberApartment = null;
571
+ this.birthRegion = new Value();
572
+ this.documentType = new Value();
573
+ this.documentNumber = null;
574
+ this.documentIssuers = new Value();
575
+ this.documentDate = null;
576
+ this.documentExpire = null;
577
+ this.signOfResidency = new Value();
578
+ this.signOfIPDL = new Value();
579
+ this.countryOfCitizenship = new Value();
580
+ this.countryOfTaxResidency = new Value();
581
+ this.economySectorCode = new Value();
582
+ if (clearIinAndPhone === true) {
583
+ this.phoneNumber = null;
584
+ }
585
+ this.homePhone = null;
586
+ this.email = null;
587
+ this.address = null;
588
+ this.familyStatus = new Value();
589
+ this.isTerror = null;
590
+ this.relationDegree = new Value();
591
+ this.isDisability = new Value();
592
+ this.disabilityGroup = null;
593
+ this.percentageOfPayoutAmount = null;
594
+ this.gotFromInsis = true;
595
+ this.gosPersonData = null;
596
+ this.hasAgreement = null;
597
+ this.insurancePay = new Value();
598
+ this.migrationCard = null;
599
+ this.migrationCardIssueDate = null;
600
+ this.migrationCardExpireDate = null;
601
+ this.confirmDocType = null;
602
+ this.confirmDocNumber = null;
603
+ this.confirmDocIssueDate = null;
604
+ this.confirmDocExpireDate = null;
605
+ this.notaryLongName = null;
606
+ this.notaryLicenseNumber = null;
607
+ this.notaryLicenseDate = null;
608
+ this.notaryLicenseIssuer = null;
609
+ this.jurLongName = null;
610
+ this.fullNameRod = null;
611
+ this.confirmDocTypeKz = null;
612
+ this.confirmDocTypeRod = null;
613
+ this.isNotary = false;
614
+ }
615
+
616
+ getPattern(pattern: string) {
617
+ const key = `_${pattern}Pattern` as keyof typeof this;
618
+ return this[key];
619
+ }
620
+
621
+ validatedMessage(valid: any, msg = 'Обязательное поле') {
622
+ return {
623
+ error: valid,
624
+ msg,
625
+ };
626
+ }
627
+
628
+ validateFullName() {
629
+ return this.lastName !== null && this.firstName !== null;
630
+ }
631
+
632
+ getFullNameShorted() {
633
+ return this.validateFullName() ? `${this.lastName} ${this.firstName?.charAt(0)}. ${this.middleName != '' ? this.middleName?.charAt(0) + '.' : ''}` : null;
634
+ }
635
+
636
+ getFullName() {
637
+ return this.validateFullName() ? (this.lastName + ' ' + this.firstName + ' ' + this.middleName != '' ? this.middleName?.charAt(0) : '') : null;
638
+ }
639
+ }
640
+
641
+ export class PolicyholderForm extends Member {
642
+ constructor(...args: any) {
643
+ super(...args);
644
+ }
645
+ }
646
+
647
+ export class InsuredForm extends Member {
648
+ constructor(...args: any) {
649
+ super(...args);
650
+ }
651
+ }
652
+
653
+ export class BeneficiaryForm extends Member {
654
+ constructor(...args: any) {
655
+ super(...args);
656
+ }
657
+ }
658
+
659
+ export class BeneficialOwnerForm extends Member {
660
+ constructor(...args: any) {
661
+ super(...args);
662
+ }
663
+ }
664
+
665
+ export class PolicyholdersRepresentativeForm extends Member {
666
+ constructor(...args: any) {
667
+ super(...args);
668
+ }
669
+ }
670
+
671
+ export class ProductConditions {
672
+ signDate: string | null;
673
+ birthDate: string | null;
674
+ gender: Value;
675
+ insuranceCase: string | null;
676
+ coverPeriod: string | null;
677
+ payPeriod: string | null;
678
+ termsOfInsurance: string | null;
679
+ annualIncome: string | null;
680
+ processIndexRate: Value;
681
+ requestedSumInsured: number | string | null;
682
+ insurancePremiumPerMonth: number | string | null;
683
+ establishingGroupDisabilityFromThirdYear: string | null;
684
+ possibilityToChange: string | null;
685
+ deathOfInsuredDueToAccident: Value;
686
+ establishingGroupDisability: Value;
687
+ temporaryDisability: Value;
688
+ bodyInjury: Value;
689
+ criticalIllnessOfTheInsured: Value;
690
+ paymentPeriod: Value;
691
+ amountOfInsurancePremium: string | null;
692
+ lifeMultiply: string | null;
693
+ lifeAdditive: string | null;
694
+ lifeMultiplyClient: string | null;
695
+ lifeAdditiveClient: string | null;
696
+ adbMultiply: string | null;
697
+ adbAdditive: string | null;
698
+ disabilityMultiply: string | null;
699
+ disabilityAdditive: string | null;
700
+ processTariff: Value;
701
+ riskGroup: Value;
702
+ riskGroup2: Value;
703
+ constructor(
704
+ insuranceCase = null,
705
+ coverPeriod = null,
706
+ payPeriod = null,
707
+ termsOfInsurance = null,
708
+ annualIncome = null,
709
+ processIndexRate = new Value(),
710
+ requestedSumInsured = null,
711
+ insurancePremiumPerMonth = null,
712
+ establishingGroupDisabilityFromThirdYear = null,
713
+ possibilityToChange = null,
714
+ deathOfInsuredDueToAccident = new Value(),
715
+ establishingGroupDisability = new Value(),
716
+ temporaryDisability = new Value(),
717
+ bodyInjury = new Value(),
718
+ criticalIllnessOfTheInsured = new Value(),
719
+ paymentPeriod = new Value(),
720
+ amountOfInsurancePremium = null,
721
+ lifeMultiply = null,
722
+ lifeAdditive = null,
723
+ lifeMultiplyClient = null,
724
+ lifeAdditiveClient = null,
725
+ adbMultiply = null,
726
+ adbAdditive = null,
727
+ disabilityMultiply = null,
728
+ disabilityAdditive = null,
729
+ processTariff = new Value(),
730
+ riskGroup = new Value(),
731
+ riskGroup2 = new Value(),
732
+ ) {
733
+ this.signDate = null;
734
+ this.birthDate = null;
735
+ this.gender = new Value();
736
+ this.insuranceCase = insuranceCase;
737
+ this.coverPeriod = coverPeriod;
738
+ this.payPeriod = payPeriod;
739
+ this.termsOfInsurance = termsOfInsurance;
740
+ this.annualIncome = annualIncome;
741
+ this.processIndexRate = processIndexRate;
742
+ this.requestedSumInsured = requestedSumInsured;
743
+ this.insurancePremiumPerMonth = insurancePremiumPerMonth;
744
+ this.establishingGroupDisabilityFromThirdYear = establishingGroupDisabilityFromThirdYear;
745
+ this.possibilityToChange = possibilityToChange;
746
+ this.deathOfInsuredDueToAccident = deathOfInsuredDueToAccident;
747
+ this.establishingGroupDisability = establishingGroupDisability;
748
+ this.temporaryDisability = temporaryDisability;
749
+ this.bodyInjury = bodyInjury;
750
+ this.criticalIllnessOfTheInsured = criticalIllnessOfTheInsured;
751
+ this.paymentPeriod = paymentPeriod;
752
+ this.amountOfInsurancePremium = amountOfInsurancePremium;
753
+ this.lifeMultiply = lifeMultiply;
754
+ this.lifeAdditive = lifeAdditive;
755
+ this.lifeMultiplyClient = lifeMultiplyClient;
756
+ this.lifeAdditiveClient = lifeAdditiveClient;
757
+ this.adbMultiply = adbMultiply;
758
+ this.adbAdditive = adbAdditive;
759
+ this.disabilityMultiply = disabilityMultiply;
760
+ this.disabilityAdditive = disabilityAdditive;
761
+ this.processTariff = processTariff;
762
+ this.riskGroup = riskGroup;
763
+ this.riskGroup2 = riskGroup2;
764
+ }
765
+ }
766
+
767
+ export class DataStoreClass {
768
+ // IMP Контроллер фич
769
+ controls: {
770
+ // Проверка на роль при авторизации
771
+ onAuth: boolean;
772
+ // Согласие на главной странице
773
+ hasAgreement: boolean;
774
+ // Наличие анкеты
775
+ hasAnketa: boolean;
776
+ // Подтягивание с ГБДФЛ
777
+ hasGBDFL: boolean;
778
+ // Подтягивание с ГКБ
779
+ hasGKB: boolean;
780
+ // Подтягивание с ИНСИС
781
+ hasInsis: boolean;
782
+ // Калькулятор без ввода данных
783
+ hasCalculator: boolean;
784
+ };
785
+ hasLayoutMargins: boolean;
786
+ readonly product: string | null;
787
+ showNav: boolean;
788
+ menuItems: MenuItem[];
789
+ menu: {
790
+ title: string;
791
+ hasBack: boolean;
792
+ loading: boolean;
793
+ backIcon: string;
794
+ onBack: any;
795
+ onLink: any;
796
+ selectedItem: MenuItem;
797
+ };
798
+ settings: {
799
+ open: boolean;
800
+ overlay: boolean;
801
+ items: MenuItem[];
802
+ };
803
+ buttons: MenuItem[];
804
+ panelAction: string | null;
805
+ panel: {
806
+ open: boolean;
807
+ overlay: boolean;
808
+ title: string;
809
+ clear: Function | void;
810
+ };
811
+ historyPageIndex: number;
812
+ historyPageSize: number;
813
+ historyTotalItems: number;
814
+ isColumnAsc = { ...InitialColumns() };
815
+ idleKey: number;
816
+ processList: Item[] | null;
817
+ countries: Value[];
818
+ citizenshipCountries: Value[];
819
+ taxCountries: Value[];
820
+ addTaxCountries: Value[];
821
+ states: Value[];
822
+ regions: Value[];
823
+ cities: Value[];
824
+ localityTypes: Value[];
825
+ dicFileTypeList: Value[];
826
+ documentTypes: Value[];
827
+ documentIssuers: Value[];
828
+ familyStatuses: Value[];
829
+ relations: Value[];
830
+ questionRefs: Value[];
831
+ epayLink: string;
832
+ residents: Value[];
833
+ ipdl: Value[];
834
+ economySectorCode: Value[];
835
+ gender: Value[];
836
+ fontSize: number;
837
+ isFontChangerOpen: boolean = false;
838
+ isLoading: boolean = false;
839
+ userNotFound: boolean = false;
840
+ user: User;
841
+ accessToken: string | null = null;
842
+ refreshToken: string | null = null;
843
+ processCoverTypeSum: any[];
844
+ processIndexRate: any[];
845
+ processPaymentPeriod: any[];
846
+ taskList: TaskListItem[];
847
+ processHistory: TaskHistory[];
848
+ contragentList: any[];
849
+ contragentFormKey: string;
850
+ processCode: number | null;
851
+ groupCode: string;
852
+ userGroups: Item[];
853
+ onMainPage: boolean;
854
+ SaleChanellPolicyList: any[];
855
+ RegionPolicyList: any[];
856
+ ManagerPolicyList: any[];
857
+ AgentDataList: any[];
858
+ riskGroup: any[];
859
+ constructor() {
860
+ this.controls = {
861
+ onAuth: false,
862
+ hasAnketa: true,
863
+ hasAgreement: true,
864
+ hasGBDFL: true,
865
+ hasGKB: false,
866
+ hasInsis: false,
867
+ hasCalculator: false,
868
+ };
869
+ this.hasLayoutMargins = true;
870
+ this.processIndexRate = [];
871
+ this.processPaymentPeriod = [];
872
+ this.questionRefs = [];
873
+ this.SaleChanellPolicyList = [];
874
+ this.RegionPolicyList = [];
875
+ this.ManagerPolicyList = [];
876
+ this.AgentDataList = [];
877
+ this.product = import.meta.env.VITE_PRODUCT ? (import.meta.env.VITE_PRODUCT as string) : null;
878
+ this.showNav = true;
879
+ this.menuItems = [];
880
+ this.menu = {
881
+ title: '',
882
+ hasBack: false,
883
+ loading: false,
884
+ backIcon: 'mdi-arrow-left',
885
+ onBack: {},
886
+ onLink: {},
887
+ selectedItem: new MenuItem(),
888
+ };
889
+ this.settings = {
890
+ open: false,
891
+ overlay: false,
892
+ items: [],
893
+ };
894
+ this.buttons = [];
895
+ this.panel = {
896
+ open: false,
897
+ overlay: false,
898
+ title: '',
899
+ clear: function () {
900
+ const panelActions = document.getElementById('panel-actions');
901
+ if (panelActions) {
902
+ panelActions.innerHTML = '';
903
+ }
904
+ },
905
+ };
906
+ this.panelAction = null;
907
+ this.historyPageIndex = 1;
908
+ this.historyPageSize = 10;
909
+ this.historyTotalItems = 0;
910
+ this.isColumnAsc = { ...InitialColumns() };
911
+ this.idleKey = 999;
912
+ this.processList = null;
913
+ this.countries = [];
914
+ this.citizenshipCountries = [];
915
+ this.taxCountries = [];
916
+ this.addTaxCountries = [];
917
+ this.states = [];
918
+ this.regions = [];
919
+ this.cities = [];
920
+ this.localityTypes = [];
921
+ this.dicFileTypeList = [];
922
+ this.documentTypes = [];
923
+ this.documentIssuers = [];
924
+ this.familyStatuses = [];
925
+ this.relations = [];
926
+ this.epayLink = '';
927
+ this.residents = [];
928
+ this.ipdl = [new Value(1, null), new Value(2, 'Да'), new Value(3, 'Нет')];
929
+ this.economySectorCode = [];
930
+ this.gender = [new Value(0, null), new Value(1, 'Мужской'), new Value(2, 'Женский')];
931
+ this.fontSize = 14;
932
+ this.isFontChangerOpen = false;
933
+ this.isLoading = false;
934
+ this.userNotFound = false;
935
+ this.user = new User();
936
+ this.accessToken = null;
937
+ this.refreshToken = null;
938
+ this.processCoverTypeSum = [];
939
+ this.taskList = [];
940
+ this.processHistory = [];
941
+ this.contragentList = [];
942
+ this.contragentFormKey = 'contragentForm';
943
+ this.processCode = null;
944
+ this.groupCode = 'Work';
945
+ this.userGroups = [];
946
+ this.onMainPage = true;
947
+ this.riskGroup = [
948
+ {
949
+ id: '1',
950
+ nameKz: '',
951
+ nameRu: '1',
952
+ isDefault: true,
953
+ },
954
+ {
955
+ id: '2',
956
+ nameKz: '',
957
+ nameRu: '2',
958
+ },
959
+ {
960
+ id: '3',
961
+ nameKz: '',
962
+ nameRu: '3',
963
+ },
964
+ {
965
+ id: '4',
966
+ nameKz: '',
967
+ nameRu: '4',
968
+ },
969
+ {
970
+ id: '5',
971
+ nameKz: '',
972
+ nameRu: '5',
973
+ },
974
+ ];
975
+ }
976
+ }
977
+
978
+ export class FormStoreClass {
979
+ additionalInsuranceTerms: AddCover[];
980
+ additionalInsuranceTermsWithout: AddCover[];
981
+ signUrl: string | null;
982
+ affilationResolution: {
983
+ id: string | number | null;
984
+ processInstanceId: string | number | null;
985
+ number: string | number | null;
986
+ date: string | number | null;
987
+ };
988
+ signedDocumentList: IDocument[];
989
+ surveyByHealthBase: AnketaFirst | null;
990
+ surveyByCriticalBase: AnketaFirst | null;
991
+ surveyByHealthSecond: AnketaSecond[] | null;
992
+ surveyByCriticalSecond: AnketaSecond[] | null;
993
+ definedAnswersId: {
994
+ surveyByHealthBase: any;
995
+ surveyByCriticalBase: any;
996
+ };
997
+ birthInfos: BirthInfoGKB[];
998
+ SaleChanellPolicy: Value;
999
+ AgentData: {
1000
+ agentId: null;
1001
+ manId: number;
1002
+ fullName: string;
1003
+ officeId: null;
1004
+ officeCode: null;
1005
+ saleChannel: string;
1006
+ managerName: string;
1007
+ };
1008
+ RegionPolicy: Value;
1009
+ ManagerPolicy: Value;
1010
+ isDisabled: {
1011
+ policyholderForm: boolean;
1012
+ beneficiaryForm: boolean;
1013
+ beneficialOwnerForm: boolean;
1014
+ insuredForm: boolean;
1015
+ policyholdersRepresentativeForm: boolean;
1016
+ productConditionsForm: boolean;
1017
+ recalculationForm: boolean;
1018
+ surveyByHealthBase: boolean;
1019
+ surveyByCriticalBase: boolean;
1020
+ surveyByHealthBasePolicyholder: boolean;
1021
+ surveyByCriticalBasePolicyholder: boolean;
1022
+ insuranceDocument: boolean;
1023
+ };
1024
+ isPolicyholderInsured: boolean = false;
1025
+ isPolicyholderBeneficiary: boolean = false;
1026
+ isActOwnBehalf: boolean = true;
1027
+ hasRepresentative: boolean = false;
1028
+ isPolicyholderIPDL: boolean = false;
1029
+ applicationData: {
1030
+ processInstanceId: number | string;
1031
+ statusCode?: string | null;
1032
+ clientApp?: any;
1033
+ insuredApp?: any;
1034
+ beneficiaryApp?: any;
1035
+ beneficialOwnerApp?: any;
1036
+ spokesmanApp?: any;
1037
+ isTask?: boolean | null;
1038
+ };
1039
+ policyholderForm: PolicyholderForm;
1040
+ policyholderFormKey: string;
1041
+ policyholdersRepresentativeForm: PolicyholdersRepresentativeForm;
1042
+ policyholdersRepresentativeFormKey: string;
1043
+ beneficiaryForm: BeneficiaryForm[];
1044
+ beneficiaryFormKey: string;
1045
+ beneficiaryFormIndex: number;
1046
+ beneficialOwnerForm: BeneficialOwnerForm[];
1047
+ beneficialOwnerFormIndex: number;
1048
+ beneficialOwnerFormKey: string;
1049
+ insuredForm: InsuredForm[];
1050
+ insuredFormKey: string;
1051
+ insuredFormIndex: number;
1052
+ productConditionsForm: ProductConditions;
1053
+ productConditionsFormKey: string;
1054
+ questionnaireByHealth: any;
1055
+ questionnaireByCritical: any[];
1056
+ canBeClaimed: boolean | null;
1057
+ applicationTaskId: string | null;
1058
+ constructor(procuctConditionsTitle?: string) {
1059
+ this.additionalInsuranceTerms = [];
1060
+ this.additionalInsuranceTermsWithout = [];
1061
+ this.signUrl = null;
1062
+ this.affilationResolution = {
1063
+ id: null,
1064
+ processInstanceId: null,
1065
+ number: null,
1066
+ date: null,
1067
+ };
1068
+ this.signedDocumentList = [];
1069
+ this.surveyByHealthBase = null;
1070
+ this.surveyByCriticalBase = null;
1071
+ this.surveyByHealthSecond = null;
1072
+ this.surveyByCriticalSecond = null;
1073
+ this.definedAnswersId = {
1074
+ surveyByHealthBase: {},
1075
+ surveyByCriticalBase: {},
1076
+ };
1077
+ this.birthInfos = [];
1078
+ this.SaleChanellPolicy = new Value();
1079
+ this.AgentData = {
1080
+ agentId: null,
1081
+ manId: 0,
1082
+ fullName: '',
1083
+ officeId: null,
1084
+ officeCode: null,
1085
+ saleChannel: '',
1086
+ managerName: '',
1087
+ };
1088
+ this.RegionPolicy = new Value();
1089
+ this.ManagerPolicy = new Value();
1090
+ this.isDisabled = {
1091
+ policyholderForm: true,
1092
+ beneficiaryForm: true,
1093
+ beneficialOwnerForm: true,
1094
+ insuredForm: true,
1095
+ policyholdersRepresentativeForm: true,
1096
+ productConditionsForm: true,
1097
+ recalculationForm: true,
1098
+ surveyByHealthBase: true,
1099
+ surveyByCriticalBase: true,
1100
+ surveyByHealthBasePolicyholder: true,
1101
+ surveyByCriticalBasePolicyholder: true,
1102
+ insuranceDocument: true,
1103
+ };
1104
+ this.isPolicyholderInsured = false;
1105
+ this.isPolicyholderBeneficiary = false;
1106
+ this.isActOwnBehalf = true;
1107
+ this.hasRepresentative = false;
1108
+ this.applicationData = { processInstanceId: 0 };
1109
+ this.policyholderForm = new PolicyholderForm();
1110
+ this.policyholderFormKey = 'policyholderForm';
1111
+ this.policyholdersRepresentativeForm = new PolicyholdersRepresentativeForm();
1112
+ this.policyholdersRepresentativeFormKey = 'policyholdersRepresentativeForm';
1113
+ this.beneficiaryForm = [new BeneficiaryForm()];
1114
+ this.beneficiaryFormKey = 'beneficiaryForm';
1115
+ this.beneficiaryFormIndex = 0;
1116
+ this.beneficialOwnerForm = [new BeneficialOwnerForm()];
1117
+ this.beneficialOwnerFormIndex = 0;
1118
+ this.beneficialOwnerFormKey = 'beneficialOwnerForm';
1119
+ this.insuredForm = [new InsuredForm()];
1120
+ this.insuredFormKey = 'insuredForm';
1121
+ this.insuredFormIndex = 0;
1122
+ this.productConditionsForm = new ProductConditions();
1123
+ this.productConditionsFormKey = 'productConditionsForm';
1124
+ this.questionnaireByHealth = {};
1125
+ this.questionnaireByCritical = [];
1126
+ this.canBeClaimed = null;
1127
+ this.applicationTaskId = null;
1128
+ }
1129
+ }