hl-core 0.0.8-beta.26 → 0.0.8-beta.27

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.
@@ -4,7 +4,7 @@
4
4
  <div class="flex justify-between mr-5">
5
5
  <p :class="[$libStyles.textTitle, $libStyles.greenText]">{{ title }}</p>
6
6
  <div
7
- v-if="isMultiple && more && !isShort"
7
+ v-if="isMultiple && more && !isShort && isActionsAvailable"
8
8
  :class="[$libStyles.blueBg, $libStyles.whiteText, $libStyles.textSimple, disabled ? $libStyles.disabled : 'cursor-pointer']"
9
9
  class="hidden lg:flex transition-all rounded-lg h-[36px] flex items-center font-medium justify-center opacity-50 hover:opacity-90 w-[120px]"
10
10
  @click="!disabled && memberStore.addMember(whichForm)"
@@ -69,7 +69,7 @@
69
69
  </div>
70
70
  </div>
71
71
  <div
72
- v-if="isMultiple && more && !isShort"
72
+ v-if="isMultiple && more && !isShort && isActionsAvailable"
73
73
  :class="[$libStyles.blueBg, $libStyles.whiteText, $libStyles.textSimple, disabled ? $libStyles.disabled : 'cursor-pointer']"
74
74
  class="block lg:hidden transition-all rounded-b-lg h-[36px] flex items-center font-medium justify-center opacity-50 hover:opacity-90"
75
75
  @click="!disabled && memberStore.addMember(whichForm)"
@@ -119,6 +119,7 @@ export default defineComponent({
119
119
  const member: Member = formStore[props.whichForm as MemberKeys];
120
120
 
121
121
  const isShort = computed(() => props.type === 'short');
122
+ const isActionsAvailable = computed(() => memberStore.isStatementEditible(props.whichForm) && memberStore.validateInitiator(false));
122
123
 
123
124
  const getMemberInfo = (memberData: Member) => {
124
125
  return {
@@ -140,6 +141,7 @@ export default defineComponent({
140
141
 
141
142
  // Computed
142
143
  isShort,
144
+ isActionsAvailable,
143
145
 
144
146
  // Functions
145
147
  getMemberInfo,
@@ -31,11 +31,16 @@
31
31
  >
32
32
  <template v-if="appendInnerIcon && appendInnerIcon.length" v-slot:append-inner>
33
33
  <v-icon
34
- v-if="appendInnerIcon !== 'mdi mdi-calendar-blank-outline'"
34
+ v-if="appendInnerIcon.includes('mdi-calendar-blank-outline') === false"
35
35
  :icon="appendInnerIcon"
36
36
  @click="appendInnerIcon.includes('mdi-magnify') ? $emit('append') : !props.readonly && $emit('append')"
37
37
  ></v-icon>
38
- <base-datepicker v-else :model-value="modelValue" @update:modelValue="$emit('update:modelValue', $event)" :teleport="teleport"></base-datepicker>
38
+ <base-datepicker
39
+ v-if="appendInnerIcon.includes('mdi-calendar-blank-outline') && !props.readonly"
40
+ :model-value="modelValue"
41
+ @update:modelValue="$emit('update:modelValue', $event)"
42
+ :teleport="teleport"
43
+ ></base-datepicker>
39
44
  </template>
40
45
  <template v-if="loading" #loader>
41
46
  <v-progress-linear :active="loading" :color="color" absolute height="1" indeterminate></v-progress-linear>
@@ -148,9 +153,9 @@ export default defineComponent({
148
153
  border: none !important;
149
154
  outline: none !important;
150
155
  }
151
- .form-input input {
156
+ /* .form-input input {
152
157
  padding-top: 30px;
153
- }
158
+ } */
154
159
  .form-input .v-field {
155
160
  box-shadow: none;
156
161
  font-size: 14px;
@@ -159,7 +164,6 @@ export default defineComponent({
159
164
  top: 20px;
160
165
  }
161
166
  .form-input .v-field__append-inner {
162
- padding-top: 18px;
163
167
  padding-right: 6px;
164
168
  }
165
169
  .form-input .v-field__append-inner i {
@@ -7,10 +7,13 @@
7
7
  $libStyles.textSimple,
8
8
  disabled ? 'cursor-not-allowed opacity-50' : '',
9
9
  ]"
10
- class="h-[60px] flex items-center justify-between hover:bg-[#A0B3D8] hover:!text-white pl-4 cursor-pointer transition-all"
10
+ class="h-[60px] flex items-center justify-between hover:bg-[#A0B3D8] hover:!text-white pl-4 cursor-pointer transition-all group"
11
11
  >
12
12
  <span>{{ menuItem.title }}</span>
13
- <i v-if="menuItem.icon" class="mdi text-xl pr-4" :class="[menuItem.icon]"></i>
13
+ <div class="flex items-center">
14
+ <i v-if="menuItem.icon" class="mdi text-xl pr-4" :class="[menuItem.icon]"></i>
15
+ <base-chip :chip="menuItem.chip"></base-chip>
16
+ </div>
14
17
  <v-tooltip v-if="menuItem.description" activator="parent" location="bottom">{{ menuItem.description }}</v-tooltip>
15
18
  </div>
16
19
  </template>
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <section class="flex h-full" :class="$libStyles.blueBgLight">
3
+ <!-- @vue-ignore -->
3
4
  <aside :class="{ '!hidden': !$display().lgAndUp.value }" class="w-full lg:w-1/4 bg-white flex flex-col justify-between border-r-2 relative px-8">
4
5
  <img draggable="false" class="w-[50%] mt-8" src="~/assets/auth-logo.svg" />
5
6
  <div class="self-center flex flex-col items-center justify-center base-auth">
@@ -16,6 +17,7 @@
16
17
  <base-btn :text="$t('buttons.more')" :disabled="true" class="mb-28"></base-btn>
17
18
  </aside>
18
19
  <section v-if="isLogin" class="w-full lg:w-3/4 flex flex-col justify-center">
20
+ <!-- @vue-ignore -->
19
21
  <img :class="{ '!block': !$display().lgAndUp.value }" draggable="false" class="hidden w-2/4 sm:w-1/3 mb-10 self-center" src="~/assets/auth-logo.svg" />
20
22
  <div class="flex flex-col items-center mb-8 text-center">
21
23
  <h1 class="text-[28px] font-medium mb-1">{{ $t('labels.welcomeHL') }}</h1>
@@ -158,7 +160,7 @@ export default defineComponent({
158
160
  numAttempts.value++;
159
161
  authLoading.value = false;
160
162
  if (!!dataStore.user.id) {
161
- router.push({ name: 'index' });
163
+ await router.push({ name: 'index' });
162
164
  }
163
165
  } else {
164
166
  // TODO Reset password
@@ -6,7 +6,7 @@
6
6
  v-model="member.phoneNumber"
7
7
  :label="$t('form.phoneNumber')"
8
8
  :maska="$maska.phone"
9
- :readonly="isDisabled || isIinPhoneDisabled"
9
+ :readonly="!!isDisabled || !!isIinPhoneDisabled"
10
10
  :clearable="!isDisabled"
11
11
  :append-inner-icon="otpCondition ? 'mdi mdi-phone-message' : ''"
12
12
  @append="openCustomPanel('otp')"
@@ -17,7 +17,7 @@
17
17
  v-model="member.iin"
18
18
  :label="$t('form.iin')"
19
19
  :maska="$maska.iin"
20
- :readonly="isDisabled || isIinPhoneDisabled"
20
+ :readonly="!!isDisabled || !!isIinPhoneDisabled"
21
21
  :clearable="!isDisabled"
22
22
  :append-inner-icon="showSaveButton ? 'mdi mdi-magnify' : ''"
23
23
  @append="searchMember"
@@ -689,7 +689,7 @@ export default {
689
689
  const searchMember = async () => {
690
690
  if (!isDisabled.value) {
691
691
  dataStore.panelAction = null;
692
- dataStore.panel.title = 'Поиск клиента';
692
+ dataStore.panel.title = 'Поиск контрагента';
693
693
  dataStore.panel.open = true;
694
694
  isSearchOpen.value = true;
695
695
  isDocumentOpen.value = false;
@@ -1019,6 +1019,7 @@ export default {
1019
1019
  if (typeof member.value.id !== 'number' || (typeof member.value.id === 'number' && member.value.id > 0 === false)) {
1020
1020
  return false;
1021
1021
  }
1022
+ const wasInsuredAction = ref<boolean>(false);
1022
1023
  const isSaved = await dataStore.saveMember(member.value, memberStore.getMemberCode(whichForm.value as MemberKeys), memberFromApplicaiton);
1023
1024
  if (!isSaved) return false;
1024
1025
  if (whichForm.value === formStore.policyholderFormKey) {
@@ -1030,13 +1031,17 @@ export default {
1030
1031
  memberStore.getMemberFromApplication(formStore.insuredFormKey as MemberKeys, formStore.insuredFormIndex),
1031
1032
  );
1032
1033
  if (!isInsuredSaved) return false;
1034
+ wasInsuredAction.value = true;
1033
1035
  }
1034
1036
  }
1037
+ if (whichForm.value === formStore.insuredFormKey) {
1038
+ wasInsuredAction.value = true;
1039
+ }
1035
1040
  await router.replace({
1036
1041
  name: route.name!,
1037
1042
  query: { ...route.query, id: member.value.id },
1038
1043
  });
1039
- await dataStore.getApplicationData(route.params.taskId, false, false, true, false);
1044
+ await dataStore.getApplicationData(route.params.taskId, false, false, true, wasInsuredAction.value);
1040
1045
  if (dataStore.controls.hasCalculator) {
1041
1046
  if (formStore.additionalInsuranceTermsWithout && formStore.additionalInsuranceTermsWithout.length !== 0) {
1042
1047
  formStore.additionalInsuranceTerms.forEach((term: any) => {
@@ -670,6 +670,7 @@ export default defineComponent({
670
670
  }
671
671
  isCalculating.value = true;
672
672
  if (props.isRecalculation) {
673
+ //@ts-ignore
673
674
  await dataStore.calculateWithoutApplication(true, whichProduct.value);
674
675
  additionalTerms.value = formStore.additionalInsuranceTermsWithout;
675
676
  } else {
@@ -735,7 +736,7 @@ export default defineComponent({
735
736
  whichSum.value = 'requestedSumInsured';
736
737
  }
737
738
  if (dataStore.isCalculator) {
738
- dataStore.processCode = constants.products[whichProduct.value];
739
+ dataStore.processCode = constants.products[whichProduct.value as keyof typeof constants.products];
739
740
  await dataStore.getProcessPaymentPeriod();
740
741
  }
741
742
  if (whichProduct.value === 'halykkazyna') {
@@ -0,0 +1,28 @@
1
+ <template>
2
+ <label v-if="chip && chip.title" class="transition-all leading-6 px-3 py-1 rounded-pill border-[1px] border-white mr-4 whitespace-nowrap" :class="[textSize, color]"
3
+ >{{ chip.title }}<v-tooltip v-if="chip.description" activator="parent" location="bottom" :max-width="maxWidth">{{ chip.description }}</v-tooltip></label
4
+ >
5
+ </template>
6
+
7
+ <script lang="ts">
8
+ export default defineComponent({
9
+ props: {
10
+ chip: {
11
+ type: Object as PropType<ChipComponent>,
12
+ required: true,
13
+ },
14
+ color: {
15
+ type: String,
16
+ default: 'bg-[#A0B3D8] text-white group-hover:bg-white group-hover:!text-black',
17
+ },
18
+ textSize: {
19
+ type: String,
20
+ default: '!text-[11px]',
21
+ },
22
+ maxWidth: {
23
+ type: [String, Number],
24
+ default: 230,
25
+ },
26
+ },
27
+ });
28
+ </script>
@@ -16,6 +16,7 @@ class MenuItemConfig {
16
16
  disabled?: ComputedRef;
17
17
  color?: string;
18
18
  show?: ComputedRef;
19
+ chip?: ChipComponent;
19
20
 
20
21
  constructor(
21
22
  id: any = null,
@@ -30,6 +31,7 @@ class MenuItemConfig {
30
31
  disabled?: ComputedRef,
31
32
  color?: string,
32
33
  show?: ComputedRef,
34
+ chip?: ChipComponent,
33
35
  ) {
34
36
  this.id = id;
35
37
  this.title = title;
@@ -43,12 +45,13 @@ class MenuItemConfig {
43
45
  this.disabled = disabled;
44
46
  this.color = color;
45
47
  this.show = show;
48
+ this.chip = chip;
46
49
  }
47
50
  }
48
51
 
49
52
  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);
53
+ constructor({ id, title, link, hasLine, description, url, initial, icon, action, disabled, color, show, chip }: MenuItemConfig = new MenuItemConfig()) {
54
+ super(id, title, link, hasLine, description, url, initial, icon, action, disabled, color, show, chip);
52
55
  }
53
56
  }
54
57
 
@@ -141,10 +141,11 @@ export const parseXML = (xml: boolean | string = true, withTag = false, tag: str
141
141
  };
142
142
 
143
143
  export const ESBDMessage = (ESBDObject: any, initialPoint: any) => {
144
+ return ESBDObject.errorMsg;
144
145
  let result;
145
146
  if (ESBDObject.errorCode === 2) {
146
147
  if (ESBDObject.errorMsg.indexOf('EMSG') === -1) {
147
- result = 'Клиент не является резидентом РК!';
148
+ result = 'Контрагент не является резидентом РК!';
148
149
  } else {
149
150
  result = ESBDObject.errorMsg.substring(ESBDObject.errorMsg.indexOf('EMSG') + 6, ESBDObject.errorMsg.lastIndexOf('EWS-100')).replace(initialPoint, '');
150
151
  }
package/locales/en.json CHANGED
@@ -23,7 +23,7 @@
23
23
  "toaster": {
24
24
  "noIinOrPhone": "Missing data to send SMS",
25
25
  "ESBDErrorMessage": "Incorrect data entered for this IIN",
26
- "phoneNotFoundInBMG": "Enter a number registered in BMG or register the client in BMG",
26
+ "phoneNotFoundInBMG": "Enter a number registered in BMG or register the contragent in BMG",
27
27
  "errorSumOrPercentage": "The percentage of payout amount cannot be less than or greater than 100",
28
28
  "fileWasDeleted": "File successfully deleted",
29
29
  "attachManagerError": "Attach the request to the manager",
@@ -55,7 +55,7 @@
55
55
  "fillOneFieldError": "You need to fill in at least one of the {text} fields",
56
56
  "notSavedMember": "You need to save the current {text} data",
57
57
  "copied": "Copied",
58
- "clientNotFound": "Client with this IIN not found",
58
+ "clientNotFound": "Contragent with this IIN not found",
59
59
  "needCalculate": "You need to calculate the insurance premium",
60
60
  "incorrectInput": "The value entered is incorrect",
61
61
  "error": "An error occurred",
@@ -74,15 +74,15 @@
74
74
  "reloadEverySeconds": "Refresh can be done every {text} seconds",
75
75
  "successReload": "Refreshed",
76
76
  "sendEverySeconds": "SMS can be sent every {text} seconds",
77
- "waitForClient": "Awaiting client confirmation",
77
+ "waitForClient": "Awaiting contragent confirmation",
78
78
  "noSuchProduct": "Error when navigating: incorrect link",
79
79
  "affiliationDocumentNotUploaded": "File not attached in the underwriting board decision",
80
80
  "documentNumberWasNotFilled": "Document number and date were not filled",
81
81
  "valueShouldBeHigher": "The value should be higher than {text} percent",
82
82
  "valueShouldBeBetween": "The value should be between {floor} and {ceil} percent",
83
- "needAgreement": "You need to obtain client's consent",
83
+ "needAgreement": "You need to obtain contragent's consent",
84
84
  "successOtp": "Confirmation code sent successfully",
85
- "hasSuccessOtp": "Client has already provided consent",
85
+ "hasSuccessOtp": "Contragent has already provided consent",
86
86
  "tokenExpire": "Waiting time has expired",
87
87
  "requiredBeneficiary": "You need to specify beneficiary's data",
88
88
  "requiredInsured": "You need to specify insured person's data",
@@ -221,20 +221,20 @@
221
221
  "isMemberIPDL": "Indication of belonging to and/or connections to a public official, their spouse, and close relatives?",
222
222
  "isPolicyholderBeneficiary": "Is the policyholder also the beneficiary?",
223
223
  "hasRepresentative": "Is the contract signed by a representative?",
224
- "isActOwnBehalf": "Is the client acting on their own behalf and in their own interests?",
224
+ "isActOwnBehalf": "Is the contragent acting on their own behalf and in their own interests?",
225
225
  "coverPeriod": "Coverage Period",
226
226
  "requestedSumInsured": "Requested Sum Insured",
227
227
  "insurancePremiumPerMonth": "Insurance Premium per Month",
228
228
  "noStatementCalculator": "Cost calculator without entering data",
229
229
  "calculator": "Calculator",
230
230
  "agreement": "Agreement",
231
- "clientsStatement": "Client's Statement",
231
+ "clientsStatement": "Contragent's Statement",
232
232
  "document": "Document",
233
233
  "documents": "Documents",
234
234
  "invoiceData": "Payment info",
235
235
  "statementAndSurvey": "Statement and Questionnaire",
236
236
  "underwriterDecisionDocument": "",
237
- "clientsCard": "Client Card",
237
+ "clientsCard": "Contragent Card",
238
238
  "insuranceProduct": "Insurance Product",
239
239
  "historyStatementsAndStatuses": "Application History and Statuses",
240
240
  "applicationNumber": "Application Number: ",
@@ -282,6 +282,7 @@
282
282
  "number": "Application Number",
283
283
  "iin": "IIN",
284
284
  "client": "Client",
285
+ "contragent": "Contrangent",
285
286
  "product": "Product",
286
287
  "status": "Application Status",
287
288
  "assignee": "Assignee",
@@ -463,7 +464,7 @@
463
464
  "numbers": "Field should contain only numbers",
464
465
  "numbersSymbols": "Field should contain numbers",
465
466
  "ageExceeds": "Year cannot exceed 50 years",
466
- "age18": "Client should be adult",
467
+ "age18": "Contragent should be adult",
467
468
  "sums": "Field should contain only numbers",
468
469
  "iinRight": "IIN must consist of 12 digits",
469
470
  "onlySymbols": "Field should not contain numbers",
package/locales/kz.json CHANGED
@@ -23,7 +23,7 @@
23
23
  "toaster": {
24
24
  "noIinOrPhone": "SMS жіберу үшін дереккөз мәліметтер жоқ",
25
25
  "ESBDErrorMessage": "Бұл ЖСН бойынша дұрыс мәліметтер енгізілмеді",
26
- "phoneNotFoundInBMG": "БМГ-де тіркелген нөмірді енгізіңіз немесе клиентті БМГ-де тіркеу",
26
+ "phoneNotFoundInBMG": "БМГ-де тіркелген нөмірді енгізіңіз немесе контрагентті БМГ-де тіркеу",
27
27
  "errorSumOrPercentage": "Төлемдің пайызы 100-ден аз немесе асушыдан көп болмауы керек",
28
28
  "fileWasDeleted": "Файл сәтті өшірілді",
29
29
  "attachManagerError": "Менеджерге өтініші байланыстырыңыз",
@@ -55,7 +55,7 @@
55
55
  "fillOneFieldError": "{text} деректерін бірін толтыру қажет",
56
56
  "notSavedMember": "{text} мәліметтерін сақтау қажет",
57
57
  "copied": "Көшірілді",
58
- "clientNotFound": "Бұл ЖСН-ге қойылатын клиент табылмады",
58
+ "clientNotFound": "Бұл ЖСН-ге қойылатын контрагент табылмады",
59
59
  "needCalculate": "Сақтандыру сыйлықақысысын қайта есептеу қажет",
60
60
  "incorrectInput": "Енгізілген мән дұрыс емес",
61
61
  "error": "Қате пайда болды",
@@ -74,15 +74,15 @@
74
74
  "reloadEverySeconds": "Көшірме еткілеу үшін {text} секунд күту мүмкін",
75
75
  "successReload": "Жаңартылды",
76
76
  "sendEverySeconds": "SMS жіберу үшін {text} секунд күту мүмкін",
77
- "waitForClient": "Клиенттің растауын күтіңіз",
77
+ "waitForClient": "Контрагенттің растауын күтіңіз",
78
78
  "noSuchProduct": "Жолды өту кезінде қате: дұрыссыз сілтеме",
79
79
  "affiliationDocumentNotUploaded": "Төлем туралы кеңес сізбен бірге берілген файл жоқ",
80
80
  "documentNumberWasNotFilled": "Документ нөмірі және күні толтырылмаған",
81
81
  "valueShouldBeHigher": "Мән {text} пайыздан асуы керек",
82
82
  "valueShouldBeBetween": "Мән {floor} және {ceil} пайыз аралығында болуы керек",
83
- "needAgreement": "Мүмкіндікті клиентпен келісу керек",
83
+ "needAgreement": "Мүмкіндікті контрагентпен келісу керек",
84
84
  "successOtp": "Растау коды сәтті жіберілді",
85
- "hasSuccessOtp": "Клиенттің келісімі бар",
85
+ "hasSuccessOtp": "Контрагенттің келісімі бар",
86
86
  "tokenExpire": "Күту уақыты аяқталды",
87
87
  "requiredBeneficiary": "Бенефициар деректері керек",
88
88
  "requiredInsured": "Зақыпталу қажет",
@@ -221,20 +221,20 @@
221
221
  "isMemberIPDL": "Социальдық тұлғалар мен олардың отбасының арасындағы өзара байланыстықты және байланысты екендігі туралы белгіленіш болатыны",
222
222
  "isPolicyholderBeneficiary": "Сақтанушы азаматтарға арналғаны екенін ма?",
223
223
  "hasRepresentative": "Шарттың имзаға алушысы - представитель екеніні білдіреді ме?",
224
- "isActOwnBehalf": "Клиент өзінің атымен және өз мүлкіншілігімен өзі жасайды ма?",
224
+ "isActOwnBehalf": "Контрагент өзінің атымен және өз мүлкіншілігімен өзі жасайды ма?",
225
225
  "coverPeriod": "Мөлшер",
226
226
  "requestedSumInsured": "Сұраулы сақталған сомасы",
227
227
  "insurancePremiumPerMonth": "Айына шығыру",
228
228
  "noStatementCalculator": "Деректерді енгізбей калғанда бағасыны таңдамау калькуляторы",
229
229
  "calculator": "Калькулятор",
230
230
  "agreement": "Келісім",
231
- "clientsStatement": "Клиенттің заявы",
231
+ "clientsStatement": "Контрагенттің заявы",
232
232
  "document": "Деректер",
233
233
  "documents": "Деректер",
234
234
  "invoiceData": "Төлем туралы ақпарат",
235
235
  "statementAndSurvey": "Заявление және сауалнама",
236
236
  "underwriterDecisionDocument": "",
237
- "clientsCard": "Клиенттің картасы",
237
+ "clientsCard": "Контрагенттің картасы",
238
238
  "insuranceProduct": "Страховой продукт",
239
239
  "historyStatementsAndStatuses": "Тарихи заявкалар және статустар",
240
240
  "applicationNumber": "Өтініш нөмірі: ",
@@ -282,6 +282,7 @@
282
282
  "number": "Өтінім нөмірі",
283
283
  "iin": "ЖСН",
284
284
  "client": "Клиент",
285
+ "contragent": "Контрагент",
285
286
  "product": "Өнім",
286
287
  "status": "Өтінім статусы",
287
288
  "assignee": "Орындаушы",
@@ -463,7 +464,7 @@
463
464
  "numbers": "Тек сандарды енгізіңіз",
464
465
  "numbersSymbols": "Сандарды енгізіңіз",
465
466
  "ageExceeds": "Жылдың 50-ден асапауы керек",
466
- "age18": "Клиент 18 жас болуы керек",
467
+ "age18": "Контрагент 18 жас болуы керек",
467
468
  "sums": "Тек сандарды енгізіңіз",
468
469
  "iinRight": "ЖСН/БИН 12 сандан тұруы керек",
469
470
  "onlySymbols": "Өрісте сан болмауы керек",
package/locales/ru.json CHANGED
@@ -23,7 +23,7 @@
23
23
  "toaster": {
24
24
  "noIinOrPhone": "Отсутствуют данные для отправки СМС",
25
25
  "ESBDErrorMessage": "Введены не корректные данные по этому ИИН",
26
- "phoneNotFoundInBMG": "Введите номер зарегистрированный в БМГ или зарегистрируйте клиента в БМГ",
26
+ "phoneNotFoundInBMG": "Введите номер зарегистрированный в БМГ или зарегистрируйте контрагента в БМГ",
27
27
  "errorSumOrPercentage": "Процент от суммы выплат не может быть меньше или больше 100",
28
28
  "fileWasDeleted": "Файл успешно удален",
29
29
  "attachManagerError": "Прикрепите заявку менеджеру",
@@ -55,7 +55,7 @@
55
55
  "fillOneFieldError": "Нужно заполнить одно из полей {text}",
56
56
  "notSavedMember": "Нужно сохранить актуальные данные {text}",
57
57
  "copied": "Скопировано",
58
- "clientNotFound": "Клиент с таким ИИН не обнаружен",
58
+ "clientNotFound": "Контрагент с таким ИИН не обнаружен",
59
59
  "needCalculate": "Нужно рассчитать страховую премию",
60
60
  "incorrectInput": "Значение введено некорректно",
61
61
  "error": "Произошла ошибка ",
@@ -74,15 +74,15 @@
74
74
  "reloadEverySeconds": "Обновление можно делать каждые {text} секунд",
75
75
  "successReload": "Обновлено",
76
76
  "sendEverySeconds": "СМС можно отправлять каждые {text} секунд ",
77
- "waitForClient": "Ожидайте подтверждения клиента",
77
+ "waitForClient": "Ожидайте подтверждения контрагента",
78
78
  "noSuchProduct": "Ошибка при переходе: неправильная ссылка",
79
79
  "affiliationDocumentNotUploaded": "Не прикреплен файл в решении андеррайтингового совета",
80
80
  "documentNumberWasNotFilled": "Номер документа и дата не были заполнены",
81
81
  "valueShouldBeHigher": "Значение должно быть больше {text} процентов",
82
82
  "valueShouldBeBetween": "Значение должно быть в промежутке от {floor} до {ceil} процентов",
83
- "needAgreement": "Нужно получить согласие клиента",
83
+ "needAgreement": "Нужно получить согласие контрагента",
84
84
  "successOtp": "Код подтверждения отправлен успешно",
85
- "hasSuccessOtp": "По клиенту уже имеется согласие",
85
+ "hasSuccessOtp": "По контрагенту уже имеется согласие",
86
86
  "tokenExpire": "Истекло время ожидания",
87
87
  "requiredBeneficiary": "Необходимо указать данные выгодоприобретателя",
88
88
  "requiredInsured": "Необходимо указать данные застрахованного",
@@ -142,7 +142,7 @@
142
142
  "fromGBDFL": "Государственная база данных физических лиц",
143
143
  "fromGKB": "Государственное кредитное бюро",
144
144
  "sendSMS": "Отправить СМС",
145
- "sendOtp": "Отправить OTP",
145
+ "sendOtp": "Отправить код подтверждения",
146
146
  "check": "Проверить",
147
147
  "toPayment": "Перейти к оплате",
148
148
  "calcSum": "Рассчитать сумму",
@@ -221,20 +221,20 @@
221
221
  "isMemberIPDL": "Отметка о принадлежности и/или причастности к публичному должностному лицу, его супруге (супругу) и близким родственникам?",
222
222
  "isPolicyholderBeneficiary": "Является ли страхователь выгодоприобретателем?",
223
223
  "hasRepresentative": "Подписантом договора выступает представитель? ",
224
- "isActOwnBehalf": " Клиент действует от своего имени и в своих интересах?",
224
+ "isActOwnBehalf": " Контрагент действует от своего имени и в своих интересах?",
225
225
  "coverPeriod": "Срок",
226
226
  "requestedSumInsured": "Запрашиваемая сумма",
227
227
  "insurancePremiumPerMonth": "Премия в месяц",
228
228
  "noStatementCalculator": "Калькулятор стоимости без ввода данных",
229
229
  "calculator": "Калькулятор",
230
230
  "agreement": "Согласие",
231
- "clientsStatement": "Заявление клиента",
231
+ "clientsStatement": "Заявление контрагента",
232
232
  "document": "Документ",
233
233
  "documents": "Документы",
234
234
  "invoiceData": "Данные об оплате",
235
235
  "statementAndSurvey": "Заявление и анкета",
236
236
  "underwriterDecisionDocument": "",
237
- "clientsCard": "Карта клиента",
237
+ "clientsCard": "Карта контрагента",
238
238
  "insuranceProduct": "Страховой продукт",
239
239
  "historyStatementsAndStatuses": "История заявок и статусы",
240
240
  "applicationNumber": "Номер заявки: ",
@@ -282,6 +282,7 @@
282
282
  "number": "Номер заявки",
283
283
  "iin": "ИИН",
284
284
  "client": "Клиент",
285
+ "contragent": "Контрагент",
285
286
  "product": "Продукт",
286
287
  "status": "Статус заявки",
287
288
  "assignee": "Исполнитель",
@@ -463,7 +464,7 @@
463
464
  "numbers": "Поле должно содержать только цифры",
464
465
  "numbersSymbols": "Поле должно содержать цифры",
465
466
  "ageExceeds": "Год не может превышать больше 50 лет",
466
- "age18": "Клиент должен быть совершеннолетним",
467
+ "age18": "Контрагент должен быть совершеннолетним",
467
468
  "sums": "Поле должно содержать только цифры",
468
469
  "iinRight": "ИИН/БИН должен состоять из 12 цифр",
469
470
  "onlySymbols": "Поле не должно содержать число",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hl-core",
3
- "version": "0.0.8-beta.26",
3
+ "version": "0.0.8-beta.27",
4
4
  "license": "MIT",
5
5
  "private": false,
6
6
  "main": "nuxt.config.ts",
@@ -44,11 +44,13 @@
44
44
  "jwt-decode": "^3.1.2",
45
45
  "maska": "1.5.0",
46
46
  "pinia": "^2.1.4",
47
+ "typedoc": "^0.24.8",
48
+ "typescript": "5.0.4",
47
49
  "v-idle-3": "^0.3.14",
48
50
  "vue-i18n": "^9.2.2",
49
51
  "vue-json-pretty": "^2.2.4",
50
52
  "vue-toastification": "^2.0.0-rc.5",
51
53
  "vue-uuid": "^3.0.0",
52
- "vuetify": "^3.3.4"
54
+ "vuetify": "^3.3.6"
53
55
  }
54
56
  }
@@ -8,6 +8,7 @@ import Maska from 'maska';
8
8
  import i18n from '@/configs/i18n';
9
9
 
10
10
  export default defineNuxtPlugin(nuxtApp => {
11
+ //@ts-ignore
11
12
  nuxtApp.vueApp.use(Vidle, {});
12
13
  nuxtApp.vueApp.use(Maska);
13
14
  nuxtApp.vueApp.use(i18n);
@@ -828,12 +828,15 @@ export const useDataStore = defineStore('data', {
828
828
  if (
829
829
  this.formStore.applicationData &&
830
830
  this.formStore.applicationData.insuredApp &&
831
- this.formStore.applicationData.insuredApp.length &&
832
- this.formStore.applicationData.insuredApp.every(i => i.iin !== data.iin) &&
833
- data.id !== null
831
+ this.formStore.applicationData.insuredApp.length
834
832
  ) {
835
- await this.api.deleteMember('Insured', data.id);
836
- delete data.id;
833
+ await this.deleteInsuredLogic();
834
+ if(
835
+ this.formStore.applicationData.insuredApp.every(i => i.iin !== data.iin) &&
836
+ data.id !== null) {
837
+ await this.api.deleteMember('Insured', data.id);
838
+ delete data.id;
839
+ }
837
840
  }
838
841
  data.isDisability = this.formStore.isPolicyholderInsured ? false : member.isDisability.nameRu == 'Да';
839
842
  data.disabilityGroupId = data.isDisability ? member.disabilityGroupId.id : null;
@@ -1331,6 +1334,83 @@ export const useDataStore = defineStore('data', {
1331
1334
  }
1332
1335
  return this.formStore.definedAnswersId[whichSurvey];
1333
1336
  },
1337
+ getConditionsData() {
1338
+ const conditionsData = {
1339
+ policyAppDto: {
1340
+ id: this.formStore.applicationData.policyAppDto.id,
1341
+ processInstanceId: this.formStore.applicationData.policyAppDto.processInstanceId,
1342
+ policyId: null,
1343
+ policyNumber: null,
1344
+ contractDate: this.currentDate(),
1345
+ amount: this.formStore.productConditionsForm.requestedSumInsured != null ? Number(this.formStore.productConditionsForm.requestedSumInsured.replace(/\s/g, '')) : null,
1346
+ premium:
1347
+ this.formStore.productConditionsForm.insurancePremiumPerMonth != null ? Number(this.formStore.productConditionsForm.insurancePremiumPerMonth.replace(/\s/g, '')) : null,
1348
+ isSpokesman: this.formStore.hasRepresentative,
1349
+ coverPeriod: this.formStore.productConditionsForm.coverPeriod,
1350
+ payPeriod: this.formStore.productConditionsForm.coverPeriod,
1351
+ annualIncome: this.formStore.productConditionsForm.annualIncome ? Number(this.formStore.productConditionsForm.annualIncome.replace(/\s/g, '')) : null,
1352
+ indexRateId: this.formStore.productConditionsForm.processIndexRate?.id
1353
+ ? this.formStore.productConditionsForm.processIndexRate.id
1354
+ : this.processIndexRate.find(i => i.code === '0')?.id,
1355
+ paymentPeriodId: this.formStore.productConditionsForm.paymentPeriod.id,
1356
+ lifeMultiply: formatProcents(this.formStore.productConditionsForm.lifeMultiply),
1357
+ lifeAdditive: formatProcents(this.formStore.productConditionsForm.lifeAdditive),
1358
+ adbMultiply: formatProcents(this.formStore.productConditionsForm.adbMultiply),
1359
+ adbAdditive: formatProcents(this.formStore.productConditionsForm.adbAdditive),
1360
+ disabilityMultiply: formatProcents(this.formStore.productConditionsForm.disabilityMultiply),
1361
+ disabilityAdditive: formatProcents(this.formStore.productConditionsForm.adbAdditive),
1362
+ riskGroup: this.formStore.productConditionsForm.riskGroup?.id ? this.formStore.productConditionsForm.riskGroup.id : 1,
1363
+ },
1364
+ addCoversDto: this.formStore.additionalInsuranceTerms,
1365
+ };
1366
+ if (this.isKazyna) {
1367
+ conditionsData.policyAppDto.premiumInCurrency = getNumber(this.formStore.productConditionsForm.insurancePremiumPerMonthInDollar);
1368
+ conditionsData.policyAppDto.amountInCurrency = getNumber(this.formStore.productConditionsForm.requestedSumInsuredInDollar);
1369
+ conditionsData.policyAppDto.currencyExchangeRate = this.currencies.usd;
1370
+ }
1371
+ if (this.isLiferenta) {
1372
+ conditionsData.policyAppDto.guaranteedPaymentPeriod = this.formStore.productConditionsForm.guaranteedPeriod || 0;
1373
+ conditionsData.policyAppDto.annuityTypeId = this.formStore.productConditionsForm.typeAnnuityInsurance.id;
1374
+ conditionsData.policyAppDto.paymentPeriod = this.formStore.productConditionsForm.termAnnuityPayments;
1375
+ conditionsData.policyAppDto.annuityPaymentPeriodId = this.formStore.productConditionsForm.periodAnnuityPayment.id;
1376
+ }
1377
+ return conditionsData;
1378
+ },
1379
+ async clearAddCovers(coverCode, coverValue) {
1380
+ if (!coverCode || !coverValue) return;
1381
+ const termCoverIndex = applicationData.addCoversDto.findIndex(i => i.coverTypeCode === coverCode);
1382
+ if (termCoverIndex !== -1) {
1383
+ const answers = await this.getAdditionalInsuranceTermsAnswers(applicationData.addCoversDto[termCoverIndex].coverTypeId);
1384
+ if (answers.length) {
1385
+ const newCover = answers.find(i => i.code === coverValue);
1386
+ if (newCover) {
1387
+ applicationData.addCoversDto[termCoverIndex].coverSumId = newCover.id;
1388
+ applicationData.addCoversDto[termCoverIndex].coverSumName = newCover.nameRu;
1389
+ }
1390
+ }
1391
+ }
1392
+ },
1393
+ async deleteInsuredLogic() {
1394
+ const applicationData = this.getConditionsData();
1395
+ const clearCovers = [{ code: 10, value: 'excluded' }];
1396
+ await Promise.allSettled(
1397
+ clearCovers.map(async cover => {
1398
+ await this.clearAddCovers(cover.code, cover.value);
1399
+ }),
1400
+ );
1401
+ if (!!this.formStore.productConditionsForm.insurancePremiumPerMonth) {
1402
+ applicationData.policyAppDto.premium = null;
1403
+ }
1404
+ if (!!this.formStore.productConditionsForm.requestedSumInsured) {
1405
+ applicationData.policyAppDto.amount = null;
1406
+ }
1407
+ try {
1408
+ await this.api.setApplication(applicationData);
1409
+ this.showToaster('info', this.t('toaster.needToRecalculate'));
1410
+ } catch (err) {
1411
+ ErrorHandler(err);
1412
+ }
1413
+ },
1334
1414
  async getPaymentTable(id) {
1335
1415
  try {
1336
1416
  const paymentResultTable = await this.api.calculatePremuim(id);
@@ -1407,80 +1487,29 @@ export const useDataStore = defineStore('data', {
1407
1487
  async calculate(taskId) {
1408
1488
  this.isLoading = true;
1409
1489
  try {
1410
- let form1 = {
1411
- policyAppDto: {
1412
- id: this.formStore.applicationData.policyAppDto.id,
1413
- processInstanceId: this.formStore.applicationData.policyAppDto.processInstanceId,
1414
- policyId: null,
1415
- policyNumber: null,
1416
- contractDate: this.currentDate(),
1417
- amount: this.formStore.productConditionsForm.requestedSumInsured != null ? Number(this.formStore.productConditionsForm.requestedSumInsured.replace(/\s/g, '')) : null,
1418
- premium:
1419
- this.formStore.productConditionsForm.insurancePremiumPerMonth != null
1420
- ? Number(this.formStore.productConditionsForm.insurancePremiumPerMonth.replace(/\s/g, ''))
1421
- : null,
1422
- isSpokesman: this.formStore.hasRepresentative,
1423
- coverPeriod: this.formStore.productConditionsForm.coverPeriod,
1424
- payPeriod: this.formStore.productConditionsForm.coverPeriod,
1425
- annualIncome: this.formStore.productConditionsForm.annualIncome ? Number(this.formStore.productConditionsForm.annualIncome.replace(/\s/g, '')) : null,
1426
- indexRateId: this.formStore.productConditionsForm.processIndexRate?.id
1427
- ? this.formStore.productConditionsForm.processIndexRate.id
1428
- : this.processIndexRate.find(i => i.code === '0')?.id,
1429
- paymentPeriodId: this.formStore.productConditionsForm.paymentPeriod.id,
1430
- lifeMultiply: formatProcents(this.formStore.productConditionsForm.lifeMultiply),
1431
- lifeAdditive: formatProcents(this.formStore.productConditionsForm.lifeAdditive),
1432
- adbMultiply: formatProcents(this.formStore.productConditionsForm.adbMultiply),
1433
- adbAdditive: formatProcents(this.formStore.productConditionsForm.adbAdditive),
1434
- disabilityMultiply: formatProcents(this.formStore.productConditionsForm.disabilityMultiply),
1435
- disabilityAdditive: formatProcents(this.formStore.productConditionsForm.adbAdditive),
1436
- riskGroup: this.formStore.productConditionsForm.riskGroup?.id ? this.formStore.productConditionsForm.riskGroup.id : 1,
1437
- },
1438
- addCoversDto: this.formStore.additionalInsuranceTerms,
1439
- };
1490
+ const id = this.formStore.applicationData.processInstanceId;
1491
+ await this.api.setApplication(this.getConditionsData());
1492
+ const result = ref();
1493
+ result.value = await this.api.getCalculation(id);
1494
+ const applicationData = await this.api.getApplicationData(taskId);
1495
+ this.formStore.applicationData = applicationData;
1496
+ this.formStore.additionalInsuranceTerms = this.formStore.applicationData.addCoverDto;
1440
1497
  if (this.isKazyna) {
1441
- form1.policyAppDto.premiumInCurrency = getNumber(this.formStore.productConditionsForm.insurancePremiumPerMonthInDollar);
1442
- form1.policyAppDto.amountInCurrency = getNumber(this.formStore.productConditionsForm.requestedSumInsuredInDollar);
1443
- form1.policyAppDto.currencyExchangeRate = this.currencies.usd;
1444
- }
1445
- if (this.isLiferenta) {
1446
- form1.policyAppDto.guaranteedPaymentPeriod = this.formStore.productConditionsForm.guaranteedPeriod || 0;
1447
- form1.policyAppDto.annuityTypeId = this.formStore.productConditionsForm.typeAnnuityInsurance.id;
1448
- form1.policyAppDto.paymentPeriod = this.formStore.productConditionsForm.termAnnuityPayments;
1449
- form1.policyAppDto.annuityPaymentPeriodId = this.formStore.productConditionsForm.periodAnnuityPayment.id;
1450
- }
1451
- try {
1452
- let id = this.formStore.applicationData.processInstanceId;
1453
-
1454
- await this.api.setApplication(form1);
1455
- let result;
1456
- try {
1457
- result = await this.api.getCalculation(id);
1458
- } catch (err) {
1459
- ErrorHandler(err);
1460
- }
1461
-
1462
- const applicationData = await this.api.getApplicationData(taskId);
1463
- this.formStore.applicationData = applicationData;
1464
- this.formStore.additionalInsuranceTerms = this.formStore.applicationData.addCoverDto;
1465
- if (this.isKazyna) {
1466
- if (this.formStore.productConditionsForm.insurancePremiumPerMonthInDollar != null) {
1467
- this.formStore.productConditionsForm.requestedSumInsuredInDollar = this.getNumberWithSpaces(result / this.currencies.usd);
1468
- } else {
1469
- this.formStore.productConditionsForm.insurancePremiumPerMonthInDollar = this.getNumberWithSpaces(result / this.currencies.usd);
1470
- }
1471
- }
1472
- if (this.formStore.productConditionsForm.insurancePremiumPerMonth != null) {
1473
- this.formStore.productConditionsForm.requestedSumInsured = this.getNumberWithSpaces(result);
1498
+ if (this.formStore.productConditionsForm.insurancePremiumPerMonthInDollar != null) {
1499
+ this.formStore.productConditionsForm.requestedSumInsuredInDollar = this.getNumberWithSpaces(result.value / this.currencies.usd);
1474
1500
  } else {
1475
- this.formStore.productConditionsForm.insurancePremiumPerMonth = this.getNumberWithSpaces(result);
1501
+ this.formStore.productConditionsForm.insurancePremiumPerMonthInDollar = this.getNumberWithSpaces(result.value / this.currencies.usd);
1476
1502
  }
1477
- if (this.isLiferenta) {
1478
- this.formStore.productConditionsForm.amountAnnuityPayments = this.getNumberWithSpaces(applicationData.policyAppDto.annuityMonthPay);
1479
- }
1480
- this.showToaster('success', this.t('toaster.calculated'), 1000);
1481
- } catch (err) {
1482
- ErrorHandler(err);
1483
1503
  }
1504
+ if (this.formStore.productConditionsForm.insurancePremiumPerMonth != null) {
1505
+ this.formStore.productConditionsForm.requestedSumInsured = this.getNumberWithSpaces(result.value);
1506
+ } else {
1507
+ this.formStore.productConditionsForm.insurancePremiumPerMonth = this.getNumberWithSpaces(result.value);
1508
+ }
1509
+ if (this.isLiferenta) {
1510
+ this.formStore.productConditionsForm.amountAnnuityPayments = this.getNumberWithSpaces(applicationData.policyAppDto.annuityMonthPay);
1511
+ }
1512
+ this.showToaster('success', this.t('toaster.calculated'), 1000);
1484
1513
  } catch (err) {
1485
1514
  ErrorHandler(err);
1486
1515
  }
@@ -1727,13 +1756,6 @@ export const useDataStore = defineStore('data', {
1727
1756
  ErrorHandler(err);
1728
1757
  }
1729
1758
  },
1730
- async setApplication() {
1731
- try {
1732
- await this.api.setApplication(this.formStore.applicationData);
1733
- } catch (err) {
1734
- console.log(err);
1735
- }
1736
- },
1737
1759
  async deleteTask(taskId) {
1738
1760
  this.isLoading = true;
1739
1761
  try {
@@ -1774,7 +1796,7 @@ export const useDataStore = defineStore('data', {
1774
1796
  try {
1775
1797
  this.isLoading = true;
1776
1798
  await this.api.claimTask(this.formStore.applicationTaskId);
1777
- await this.getApplicationData(taskId, false, false, false);
1799
+ await this.getApplicationData(taskId, false, false, false, false);
1778
1800
  this.showToaster('success', this.t('toaster.successOperation'), 3000);
1779
1801
  } catch (err) {
1780
1802
  ErrorHandler(err);
@@ -1883,10 +1905,6 @@ export const useDataStore = defineStore('data', {
1883
1905
  this.formStore[whichForm][index].jobPlace = this.formStore.applicationData[whichMember][index].jobName;
1884
1906
  }
1885
1907
  },
1886
- findObject(from, key, searchKey) {
1887
- const found = this[from].find(i => i[key] == searchKey);
1888
- return found || new Value();
1889
- },
1890
1908
  async signDocument() {
1891
1909
  try {
1892
1910
  if (this.formStore.signUrls.length) {
@@ -1979,7 +1997,7 @@ export const useDataStore = defineStore('data', {
1979
1997
  };
1980
1998
  const recalculatedValue = await this.api.reCalculate(data);
1981
1999
  if (!!recalculatedValue) {
1982
- await this.getApplicationData(taskId, false, false, false);
2000
+ await this.getApplicationData(taskId, false, false, false, true);
1983
2001
  this.showToaster(
1984
2002
  'success',
1985
2003
  `${this.t('toaster.successRecalculation')}. ${whichSum == 'insurancePremiumPerMonth' ? 'Страховая премия' : 'Страховая сумма'}: ${this.getNumberWithSpaces(
@@ -162,10 +162,15 @@ export const useMemberStore = defineStore('members', {
162
162
  await this.dataStore.api.deleteMember(memberCode, this.formStore.applicationData.processInstanceId);
163
163
  }
164
164
  } else {
165
- if (memberData) await this.dataStore.api.deleteMember(memberCode, memberData.id as number);
165
+ if (memberData) {
166
+ if (whichForm === this.formStore.insuredFormKey) {
167
+ await this.dataStore.deleteInsuredLogic();
168
+ }
169
+ await this.dataStore.api.deleteMember(memberCode, memberData.id as number);
170
+ }
166
171
  }
167
172
  const cleared = this.clearMember(whichForm, whichIndex);
168
- if (memberData && refetch) await this.dataStore.getApplicationData(taskId, true, true, true, false);
173
+ if (memberData && refetch) await this.dataStore.getApplicationData(taskId, true, true, true, true);
169
174
  return cleared;
170
175
  } catch (err) {
171
176
  console.log(err);
@@ -179,10 +184,11 @@ export const useMemberStore = defineStore('members', {
179
184
  const successTranser = ref<boolean>(false);
180
185
  const toIndex = ref<number | null>(null);
181
186
  const taskId = useRoute().params.taskId as string;
187
+ const deletedBefore = ref<boolean>(false);
182
188
 
183
189
  if (this.dataStore.members[this.getMemberApplicationCode(to)!].isMultiple === false) {
184
190
  if (this.formStore[to][0].id !== 0 && this.formStore[to][0].iin !== fromMember.iin) {
185
- await this.deleteMember(taskId, to, 0, false);
191
+ deletedBefore.value = await this.deleteMember(taskId, to, 0, false);
186
192
  }
187
193
  this.formStore[to][0] = fromMember;
188
194
  toIndex.value = 0;
@@ -216,9 +222,9 @@ export const useMemberStore = defineStore('members', {
216
222
  }
217
223
  const hasSaved = await this.dataStore.saveMember(this.formStore[to][toIndex.value], this.getMemberCode(to), this.getMemberFromApplication(to, toIndex.value));
218
224
  if (hasSaved) {
219
- await this.dataStore.getApplicationData(taskId, false, true, true, false);
225
+ await this.dataStore.getApplicationData(taskId, false, true, true, deletedBefore.value);
226
+ this.dataStore.showToaster('warning', this.dataStore.t('toaster.formFieldEmptyWarning'));
220
227
  this.dataStore.showToaster('success', this.dataStore.t('toaster.successSaved'));
221
- this.dataStore.showToaster('warning', this.dataStore.t('toaster.formFieldEmptyWarning'), 3000);
222
228
  return true;
223
229
  } else {
224
230
  this.dataStore.showToaster('error', this.dataStore.t('error.memberSave'));
package/types/index.ts CHANGED
@@ -334,4 +334,9 @@ declare global {
334
334
  verifyType: string;
335
335
  verifyDate: string;
336
336
  };
337
+
338
+ type ChipComponent = {
339
+ title: string;
340
+ description?: string;
341
+ };
337
342
  }