{"version":3,"file":"js/app-d87c119a.js?t=1793697283758","mappings":"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","sources":["webpack://Novadoc/./src/components/v2/common/ConfirmModal.vue?c63a","webpack://Novadoc/./src/components/v2/common/ConfirmModal.vue","webpack://Novadoc/./src/components/v2/common/ConfirmModal.vue?491b","webpack://Novadoc/./src/components/v2/common/DemoRequestForm.vue?c7ca","webpack://Novadoc/./src/components/v2/common/DemoRequestForm.vue","webpack://Novadoc/./src/components/v2/common/DemoRequestForm.vue?8bdb","webpack://Novadoc/./src/components/v2/common/ToastNotifications.vue?0536","webpack://Novadoc/./src/components/v2/common/ToastNotifications.vue","webpack://Novadoc/./src/components/v2/common/ToastNotifications.vue?9b8a"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, createVNode as _createVNode, resolveDirective as _resolveDirective, openBlock as _openBlock, createElementBlock as _createElementBlock, withDirectives as _withDirectives, withCtx as _withCtx, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"confirm-modal__body ND-modal__body\" }\nconst _hoisted_2 = [\"src\"]\nconst _hoisted_3 = { class: \"confirm-modal__title\" }\nconst _hoisted_4 = { class: \"confirm-modal__text\" }\nconst _hoisted_5 = { class: \"modal__footer ND-modal__footer\" }\n\nimport { ref } from 'vue';\nimport { NdButton, ENdButtonTypes } from '@/components/v2/ui';\nimport { useUiModule, EModalNames } from '@/modules/store/ui';\nimport ModalWrapper from '@/components/v2/ui/Modal/ModalWrapper.vue';\n\n\nexport default /*@__PURE__*/_defineComponent({\n  __name: 'ConfirmModal',\n  setup(__props) {\n\nconst loading = ref(false);\nconst { confirmDialogConfig, closeModal } = useUiModule();\n\nconst imagePaths = {\n  // eslint-disable-next-line global-require\n  welcomeImage: require('@/assets/images/ImageWelcomeMessageReminder_300.png'),\n  // eslint-disable-next-line global-require\n  ideasImage: require('@/assets/images/ImageIdeas.png'),\n  // eslint-disable-next-line global-require\n  rateUserLimitExceededImage: require('@/assets/images/RateUserLimitExceeded.svg'),\n};\n\nconst submit = async (): Promise<void> => {\n  loading.value = true;\n  try {\n    await confirmDialogConfig.action();\n    loading.value = false;\n  } catch (error) {\n    loading.value = false;\n    console.error(error);\n  }\n};\n\nconst back = async (): Promise<void> => {\n  if (confirmDialogConfig.backAction) {\n    await confirmDialogConfig.backAction();\n    return;\n  }\n\n  closeModal(EModalNames.confirmModal);\n};\n\nconst close = (): void => {\n  closeModal(EModalNames.confirmModal);\n};\n\nreturn (_ctx: any,_cache: any) => {\n  const _component_InlineSvg = _resolveComponent(\"InlineSvg\")!\n  const _directive_tooltip = _resolveDirective(\"tooltip\")!\n\n  return (_openBlock(), _createBlock(ModalWrapper, {\n    title: '',\n    \"modal-name\": _unref(EModalNames).confirmModal,\n    class: \"confirm-modal\",\n    \"background-color\": '#cde1ee',\n    \"header-height\": '1rem'\n  }, {\n    default: _withCtx(() => [\n      _createElementVNode(\"div\", _hoisted_1, [\n        _createElementVNode(\"img\", {\n          class: \"confirm-modal__image\",\n          src: imagePaths[_unref(confirmDialogConfig).image],\n          alt: \"\"\n        }, null, 8, _hoisted_2),\n        _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_unref(confirmDialogConfig).title), 1),\n        _createElementVNode(\"div\", _hoisted_4, _toDisplayString(_unref(confirmDialogConfig).message), 1)\n      ]),\n      _createElementVNode(\"div\", _hoisted_5, [\n        _withDirectives((_openBlock(), _createElementBlock(\"div\", {\n          class: \"modal__button-left\",\n          onClick: back\n        }, [\n          _createVNode(_component_InlineSvg, {\n            class: \"nd-button__icon-back\",\n            src: require('@/assets/icons/IconArrowToRight.svg')\n          }, null, 8, [\"src\"])\n        ])), [\n          [_directive_tooltip, { theme: 'nd-tooltip', content: 'Назад'}]\n        ]),\n        _createVNode(_unref(NdButton), {\n          class: \"modal__button-right\",\n          text: _unref(confirmDialogConfig).actionButtonText,\n          type: _unref(ENdButtonTypes).gray0,\n          onClick: submit,\n          \"is-loading\": loading.value\n        }, null, 8, [\"text\", \"type\", \"is-loading\"])\n      ])\n    ]),\n    _: 1\n  }, 8, [\"modal-name\"]))\n}\n}\n\n})","<template>\n  <ModalWrapper\n    :title=\"''\"\n    :modal-name=\"EModalNames.confirmModal\"\n    class=\"confirm-modal\"\n    :background-color=\"'#cde1ee'\"\n    :header-height=\"'1rem'\"\n  >\n    <div class=\"confirm-modal__body ND-modal__body\">\n      <img\n        class=\"confirm-modal__image\"\n        :src=\"imagePaths[confirmDialogConfig.image]\"\n        alt=\"\"\n      >\n      <div class=\"confirm-modal__title\">{{ confirmDialogConfig.title }}</div>\n      <div class=\"confirm-modal__text\">{{ confirmDialogConfig.message }}</div>\n    </div>\n    <div class=\"modal__footer ND-modal__footer\">\n      <div\n        class=\"modal__button-left\"\n        @click=\"back\"\n        v-tooltip=\"{ theme: 'nd-tooltip', content: 'Назад'}\"\n      >\n        <InlineSvg\n          class=\"nd-button__icon-back\"\n          :src=\"require('@/assets/icons/IconArrowToRight.svg')\"\n        />\n      </div>\n      <NdButton\n        class=\"modal__button-right\"\n        :text=\"confirmDialogConfig.actionButtonText\"\n        :type=\"ENdButtonTypes.gray0\"\n        @click=\"submit\"\n        :is-loading=\"loading\"\n      />\n    </div>\n  </ModalWrapper>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { NdButton, ENdButtonTypes } from '@/components/v2/ui';\nimport { useUiModule, EModalNames } from '@/modules/store/ui';\nimport ModalWrapper from '@/components/v2/ui/Modal/ModalWrapper.vue';\n\nconst loading = ref(false);\nconst { confirmDialogConfig, closeModal } = useUiModule();\n\nconst imagePaths = {\n  // eslint-disable-next-line global-require\n  welcomeImage: require('@/assets/images/ImageWelcomeMessageReminder_300.png'),\n  // eslint-disable-next-line global-require\n  ideasImage: require('@/assets/images/ImageIdeas.png'),\n  // eslint-disable-next-line global-require\n  rateUserLimitExceededImage: require('@/assets/images/RateUserLimitExceeded.svg'),\n};\n\nconst submit = async (): Promise<void> => {\n  loading.value = true;\n  try {\n    await confirmDialogConfig.action();\n    loading.value = false;\n  } catch (error) {\n    loading.value = false;\n    console.error(error);\n  }\n};\n\nconst back = async (): Promise<void> => {\n  if (confirmDialogConfig.backAction) {\n    await confirmDialogConfig.backAction();\n    return;\n  }\n\n  closeModal(EModalNames.confirmModal);\n};\n\nconst close = (): void => {\n  closeModal(EModalNames.confirmModal);\n};\n</script>\n\n<style scoped lang=\"scss\">\n@import \"confirmModalStyle\";\n</style>\n","import script from \"./ConfirmModal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ConfirmModal.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ConfirmModal.vue?vue&type=style&index=0&id=48dd010e&scoped=true&lang=scss\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-48dd010e\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\nimport _imports_0 from '@/assets/images/UAflag.png'\n\n\nconst _hoisted_1 = { class: \"demo-form__row demo-form__row--full\" }\nconst _hoisted_2 = { class: \"demo-form__row demo-form__row--part\" }\nconst _hoisted_3 = { class: \"mobile-field-block\" }\nconst _hoisted_4 = { class: \"mobile-code-block\" }\nconst _hoisted_5 = { class: \"email-code-block\" }\n\n\nimport { ENdButtonTypes, NdButton } from '@/components/v2/ui';\nimport NdInput from '@/components/NdInput.vue';\nimport { useDemoRequestForm } from '@/lib/core/composables/useDemoRequestForm';\n\ninterface IDemoRequestFormProps {\n  variant?: 'page' | 'modal';\n}\n\ninterface IDemoRequestFormEmits {\n  (e: 'success'): void;\n}\n\n\nexport default /*@__PURE__*/_defineComponent({\n  __name: 'DemoRequestForm',\n  props: {\n    variant: { default: 'page' }\n  },\n  emits: [\"success\"],\n  setup(__props: any, { expose: __expose, emit: __emit }) {\n\n\n\nconst emit = __emit;\n\nconst {\n  fields,\n  validator,\n  phoneMask,\n  isSubmitting,\n  isDisabledForm,\n  shakeField,\n  phoneIsValid,\n  phoneIsTouched,\n  emailIsValid,\n  emailIsTouched,\n  helperNameFieldText,\n  helperPhoneFieldText,\n  helperEmailFieldText,\n  validateRulePhone,\n  validateRuleEmail,\n  validateRuleName,\n  demoRequest,\n  resetForm,\n} = useDemoRequestForm();\n\nconst onSubmit = async () => {\n  const success = await demoRequest();\n  if (success) {\n    emit('success');\n  }\n};\n\n__expose({\n  resetForm,\n});\n\nreturn (_ctx: any,_cache: any) => {\n  return (_openBlock(), _createElementBlock(\"div\", {\n    class: _normalizeClass(['demo-form', `demo-form--${_ctx.variant}`])\n  }, [\n    _createElementVNode(\"div\", _hoisted_1, [\n      _createVNode(NdInput, {\n        class: \"input-field\",\n        label: 'Ім\\'я',\n        filled: \"\",\n        error: _unref(validator).fields.nameField.$error,\n        modelValue: _unref(fields).nameField,\n        \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_unref(fields).nameField) = $event)),\n        modelModifiers: { trim: true },\n        rules: [_unref(validateRuleName)],\n        onFocusout: _cache[1] || (_cache[1] = ($event: any) => (_unref(validator).fields.nameField.$touch()))\n      }, null, 8, [\"error\", \"modelValue\", \"rules\"]),\n      _createElementVNode(\"span\", {\n        class: _normalizeClass([\"helper-text\", { 'helper-text--shake': _unref(shakeField) }])\n      }, _toDisplayString(_unref(helperNameFieldText)), 3)\n    ]),\n    _createElementVNode(\"div\", _hoisted_2, [\n      _createElementVNode(\"div\", _hoisted_3, [\n        _createElementVNode(\"div\", _hoisted_4, [\n          _cache[6] || (_cache[6] = _createElementVNode(\"div\", { class: \"mobile-code-block__prepend\" }, [\n            _createElementVNode(\"div\", { class: \"uaflag\" }, [\n              _createElementVNode(\"img\", {\n                src: _imports_0,\n                alt: \"UAflag\"\n              })\n            ]),\n            _createElementVNode(\"div\", { class: \"mobile-code-text\" }, \"+380\")\n          ], -1)),\n          _createVNode(NdInput, {\n            class: \"input-field\",\n            filled: \"\",\n            modelValue: _unref(fields).phoneField,\n            \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_unref(fields).phoneField) = $event)),\n            mask: _unref(phoneMask),\n            type: \"tel\",\n            placeholder: '00 000 00 00',\n            rules: [_unref(validateRulePhone)],\n            error: _unref(validator).fields.phoneField.$error,\n            onFocusout: _cache[3] || (_cache[3] = ($event: any) => (_unref(validator).fields.phoneField.$touch()))\n          }, null, 8, [\"modelValue\", \"mask\", \"rules\", \"error\"])\n        ]),\n        (_unref(phoneIsTouched) || !_unref(phoneIsValid))\n          ? (_openBlock(), _createElementBlock(\"span\", {\n              key: 0,\n              class: _normalizeClass([\"helper-text\", { 'helper-text--shake': _unref(shakeField) }])\n            }, _toDisplayString(_unref(helperPhoneFieldText)), 3))\n          : _createCommentVNode(\"\", true)\n      ]),\n      _createElementVNode(\"div\", _hoisted_5, [\n        _createVNode(NdInput, {\n          class: \"input-field\",\n          label: 'Email',\n          filled: \"\",\n          modelValue: _unref(fields).emailField,\n          \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((_unref(fields).emailField) = $event)),\n          rules: [_unref(validateRuleEmail)],\n          error: _unref(validator).fields.emailField.$error,\n          onFocusout: _cache[5] || (_cache[5] = ($event: any) => (_unref(validator).fields.emailField.$touch()))\n        }, null, 8, [\"modelValue\", \"rules\", \"error\"]),\n        (_unref(emailIsTouched) || !_unref(emailIsValid))\n          ? (_openBlock(), _createElementBlock(\"span\", {\n              key: 0,\n              class: _normalizeClass([\"helper-text\", { 'helper-text--shake': _unref(shakeField) }])\n            }, _toDisplayString(_unref(helperEmailFieldText)), 3))\n          : _createCommentVNode(\"\", true)\n      ])\n    ]),\n    _createVNode(_unref(NdButton), {\n      type: _unref(ENdButtonTypes).maximumred,\n      text: \"Запланувати демо\",\n      class: _normalizeClass([\n        'demo-form__button',\n        { 'demo-form__button--disabled': _ctx.variant === 'page' && (_unref(isDisabledForm) || _unref(isSubmitting)) },\n      ]),\n      disabled: _ctx.variant === 'page' ? (_unref(isDisabledForm) || _unref(isSubmitting)) : _unref(isSubmitting),\n      onClick: onSubmit\n    }, null, 8, [\"type\", \"class\", \"disabled\"])\n  ], 2))\n}\n}\n\n})","<template>\n  <div :class=\"['demo-form', `demo-form--${variant}`]\">\n    <div class=\"demo-form__row demo-form__row--full\">\n      <NdInput\n        class=\"input-field\"\n        :label=\"'Ім\\'я'\"\n        filled\n        :error=\"validator.fields.nameField.$error\"\n        v-model.trim=\"fields.nameField\"\n        :rules=\"[validateRuleName]\"\n        @focusout=\"validator.fields.nameField.$touch()\"\n      />\n      <span class=\"helper-text\" :class=\"{ 'helper-text--shake': shakeField }\">{{ helperNameFieldText }}</span>\n    </div>\n\n    <div class=\"demo-form__row demo-form__row--part\">\n      <div class=\"mobile-field-block\">\n        <div class=\"mobile-code-block\">\n          <div class=\"mobile-code-block__prepend\">\n            <div class=\"uaflag\">\n              <img src=\"@/assets/images/UAflag.png\" alt=\"UAflag\">\n            </div>\n            <div class=\"mobile-code-text\">+380</div>\n          </div>\n          <NdInput\n            class=\"input-field\"\n            filled\n            v-model=\"fields.phoneField\"\n            :mask=\"phoneMask\"\n            type=\"tel\"\n            :placeholder=\"'00 000 00 00'\"\n            :rules=\"[validateRulePhone]\"\n            :error=\"validator.fields.phoneField.$error\"\n            @focusout=\"validator.fields.phoneField.$touch()\"\n          />\n        </div>\n        <span\n          class=\"helper-text\"\n          :class=\"{ 'helper-text--shake': shakeField }\"\n          v-if=\"phoneIsTouched || !phoneIsValid\"\n        >\n          {{ helperPhoneFieldText }}\n        </span>\n      </div>\n      <div class=\"email-code-block\">\n        <NdInput\n          class=\"input-field\"\n          :label=\"'Email'\"\n          filled\n          v-model=\"fields.emailField\"\n          :rules=\"[validateRuleEmail]\"\n          :error=\"validator.fields.emailField.$error\"\n          @focusout=\"validator.fields.emailField.$touch()\"\n        />\n        <span\n          class=\"helper-text\"\n          :class=\"{ 'helper-text--shake': shakeField }\"\n          v-if=\"emailIsTouched || !emailIsValid\"\n        >\n          {{ helperEmailFieldText }}\n        </span>\n      </div>\n    </div>\n\n    <NdButton\n      :type=\"ENdButtonTypes.maximumred\"\n      text=\"Запланувати демо\"\n      :class=\"[\n        'demo-form__button',\n        { 'demo-form__button--disabled': variant === 'page' && (isDisabledForm || isSubmitting) },\n      ]\"\n      :disabled=\"variant === 'page' ? (isDisabledForm || isSubmitting) : isSubmitting\"\n      @click=\"onSubmit\"\n    />\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n  defineEmits,\n  defineExpose,\n  defineProps,\n  withDefaults,\n} from 'vue';\nimport { ENdButtonTypes, NdButton } from '@/components/v2/ui';\nimport NdInput from '@/components/NdInput.vue';\nimport { useDemoRequestForm } from '@/lib/core/composables/useDemoRequestForm';\n\ninterface IDemoRequestFormProps {\n  variant?: 'page' | 'modal';\n}\n\ninterface IDemoRequestFormEmits {\n  (e: 'success'): void;\n}\n\nwithDefaults(defineProps<IDemoRequestFormProps>(), {\n  variant: 'page',\n});\n\nconst emit = defineEmits<IDemoRequestFormEmits>();\n\nconst {\n  fields,\n  validator,\n  phoneMask,\n  isSubmitting,\n  isDisabledForm,\n  shakeField,\n  phoneIsValid,\n  phoneIsTouched,\n  emailIsValid,\n  emailIsTouched,\n  helperNameFieldText,\n  helperPhoneFieldText,\n  helperEmailFieldText,\n  validateRulePhone,\n  validateRuleEmail,\n  validateRuleName,\n  demoRequest,\n  resetForm,\n} = useDemoRequestForm();\n\nconst onSubmit = async () => {\n  const success = await demoRequest();\n  if (success) {\n    emit('success');\n  }\n};\n\ndefineExpose({\n  resetForm,\n});\n</script>\n\n<style scoped lang=\"scss\">\n.demo-form--page {\n  max-width: 48rem;\n}\n\n.demo-form--modal {\n  padding: 1.875rem 1.875rem;\n  background-color: $light_000;\n  border-radius: 1.75rem;\n}\n\n.demo-form__row {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  margin-bottom: 2.5rem;\n\n  :deep(.q-field__native) {\n    @include typography('inter-16');\n    font-weight: 400;\n  }\n\n  :deep(.q-field--dense .q-field__label) {\n    @include typography('inter-16');\n    font-weight: 400;\n    top: 1.125rem;\n  }\n\n  :deep(.q-field--dense.q-field--float .q-field__label) {\n    transform: translateY(-50%) scale(0.75);\n  }\n\n  .mobile-code-block {\n    position: relative;\n    @include flex(row, center, center);\n\n    .mobile-code-block__prepend {\n      position: absolute;\n      left: 1rem;\n      @include flex(row, center, center);\n      z-index: 1;\n\n      .uaflag {\n        margin-right: 0.5rem;\n\n        img {\n          height: 1.5rem;\n        }\n      }\n\n      .mobile-code-text {\n        @include typography('inter-16');\n        font-weight: 400;\n      }\n    }\n\n    :deep(.q-field__native) {\n      padding-left: 5rem;\n    }\n\n    :deep(.q-field__control) {\n      align-items: center;\n    }\n  }\n\n  .input-field {\n    height: 3.5rem !important;\n  }\n\n  .helper-text {\n    display: inline-block;\n    @include typography('inter-12');\n    font-weight: 400;\n    color: $orange_1100;\n    position: absolute;\n    bottom: -1.25rem;\n    left: .125rem;\n  }\n\n  .helper-text--shake {\n    animation: shake 0.35s ease-in-out;\n  }\n}\n\n.demo-form--modal .demo-form__row {\n  :deep(.q-field__native) {\n    height: auto !important;\n  }\n}\n\n@keyframes shake {\n  0% { transform: translateX(0); }\n  20% { transform: translateX(-5px); }\n  40% { transform: translateX(5px); }\n  60% { transform: translateX(-4px); }\n  80% { transform: translateX(4px); }\n  100% { transform: translateX(0); }\n}\n\n.mobile-field-block,\n.email-code-block,\n.demo-form__row--full {\n  position: relative;\n}\n\n.demo-form__row--full {\n  grid-template-columns: 1fr;\n}\n\n.demo-form__row--part {\n  gap: 1.25rem;\n}\n\n.nd-button.demo-form__button {\n  width: 21.4375rem;\n  max-width: 100%;\n  height: 3.5rem;\n  border-radius: .5rem;\n  @include typography('nova-poshta-bold-16');\n  font-weight: 700;\n  text-transform: uppercase;\n\n  &--disabled {\n    background-color: $light_000;\n    color: $maximum_red;\n  }\n}\n\n.nd-button.demo-form--modal .demo-form__button {\n  margin-top: 2rem;\n}\n\n@media (max-width: $breakpoint_tablet) {\n  .demo-form__row--part {\n    grid-template-columns: 1fr;\n  }\n\n  .nd-button.demo-form__button {\n    width: 100%;\n  }\n}\n\n@media (max-width: $breakpoint_mobile) {\n  .demo-form__row {\n    margin-bottom: 2rem;\n  }\n}\n</style>\n","import script from \"./DemoRequestForm.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./DemoRequestForm.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./DemoRequestForm.vue?vue&type=style&index=0&id=4d64207d&scoped=true&lang=scss\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4d64207d\"]])\n\nexport default __exports__\nimport QField from 'quasar/src/components/field/QField.js';\nimport qInstall from \"../../../../node_modules/vue-cli-plugin-quasar/lib/runtime.auto-import.js\";\nqInstall(script, 'components', {QField});\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = [\"onClick\"]\nconst _hoisted_2 = { class: \"notification__icon-container\" }\nconst _hoisted_3 = { class: \"notification__text-container\" }\nconst _hoisted_4 = { class: \"notification-title\" }\nconst _hoisted_5 = { class: \"notification-content\" }\nconst _hoisted_6 = [\"onClick\"]\n\nimport { reactive } from 'vue';\nimport { useGetBreakpoints } from '@/lib/core/composables';\n\n\nexport default /*@__PURE__*/_defineComponent({\n  __name: 'ToastNotifications',\n  setup(__props) {\n\nconst { isMobile } = useGetBreakpoints();\n\nconst icons = reactive({\n  success: 'IconThinCheckmark.svg',\n  info: 'IconInfo.svg',\n  warning: 'IconInfo.svg',\n  error: 'IconDocumentRejected.svg',\n});\n\nreturn (_ctx: any,_cache: any) => {\n  const _component_InlineSvg = _resolveComponent(\"InlineSvg\")!\n  const _component_Notifications = _resolveComponent(\"Notifications\")!\n\n  return (_openBlock(), _createBlock(_component_Notifications, {\n    position: \"top center\",\n    width: _unref(isMobile) ? '337px' : '640px'\n  }, {\n    body: _withCtx((props) => [\n      _createElementVNode(\"div\", {\n        class: _normalizeClass(['vue-notification', props.item.type]),\n        onClick: ($event: any) => (_ctx.$notify.close(props.item.id))\n      }, [\n        _createElementVNode(\"div\", _hoisted_2, [\n          _createVNode(_component_InlineSvg, {\n            class: \"notification__icon\",\n            src: require(`@/assets/icons/${icons[props.item.type]}`)\n          }, null, 8, [\"src\"])\n        ]),\n        _createElementVNode(\"div\", _hoisted_3, [\n          _createElementVNode(\"div\", _hoisted_4, _toDisplayString(props.item.title), 1),\n          _createElementVNode(\"div\", _hoisted_5, _toDisplayString(props.item.text), 1)\n        ]),\n        _createElementVNode(\"div\", {\n          class: \"notification__close\",\n          onClick: ($event: any) => (_ctx.$notify.close(props.item.id))\n        }, [\n          _createVNode(_component_InlineSvg, {\n            src: require(`@/assets/icons/IconCross.svg`)\n          }, null, 8, [\"src\"])\n        ], 8, _hoisted_6)\n      ], 10, _hoisted_1)\n    ]),\n    _: 1\n  }, 8, [\"width\"]))\n}\n}\n\n})","<template>\n  <Notifications position=\"top center\" :width=\"isMobile ? '337px' : '640px'\">\n    <template v-slot:body=\"props\">\n      <div :class=\"['vue-notification', props.item.type]\" @click=\"$notify.close(props.item.id)\">\n        <div class=\"notification__icon-container\">\n          <InlineSvg class=\"notification__icon\" :src=\"require(`@/assets/icons/${icons[props.item.type]}`)\"/>\n        </div>\n        <div class=\"notification__text-container\">\n          <div class=\"notification-title\">{{ props.item.title }}</div>\n          <div class=\"notification-content\">{{ props.item.text }}</div>\n        </div>\n        <div class=\"notification__close\" @click=\"$notify.close(props.item.id)\">\n          <InlineSvg :src=\"require(`@/assets/icons/IconCross.svg`)\"/>\n        </div>\n      </div>\n    </template>\n  </Notifications>\n</template>\n\n<script setup lang=\"ts\">\nimport { reactive } from 'vue';\nimport { useGetBreakpoints } from '@/lib/core/composables';\n\nconst { isMobile } = useGetBreakpoints();\n\nconst icons = reactive({\n  success: 'IconThinCheckmark.svg',\n  info: 'IconInfo.svg',\n  warning: 'IconInfo.svg',\n  error: 'IconDocumentRejected.svg',\n});\n</script>\n\n<style scoped lang=\"scss\">\n.vue-notification-group {\n  display: flex;\n  overflow: visible;\n  padding-top: 1.25rem;\n  justify-content: center;\n  border-radius: 0.375rem;\n  background-color: transparent;\n\n  :deep(.vue-notification-wrapper) {\n    display: flex;\n    overflow: visible;\n    justify-content: center;\n  }\n}\n\n.vue-notification {\n  @include size(fit-content, auto);\n  @include flex(row, flex-start, center);\n  box-shadow: $shadow_01;\n  border-radius: .5rem;\n  background-color: $light_500;\n  border: 0;\n  padding: 1rem;\n\n  &.success {\n    .notification__icon-container {\n      background-color: $green_800;\n    }\n  }\n  &.info {\n    .notification__icon-container {\n      background-color: $orange_900;\n    }\n  }\n  &.warning {\n    .notification__icon-container {\n      background-color: $steel_blue_dark;\n    }\n  }\n  &.error {\n    .notification__icon-container {\n      background-color: $maximum_red;\n    }\n  }\n}\n\n.notification__close {\n  @include size(2.2rem, 2.2rem);\n  @include flex(row, center, center);\n  flex: 0 0 2.2rem;\n  border-radius: 0.5rem;\n  background-color: $light_000;\n  cursor: pointer;\n\n  svg {\n    filter: $filter-svg-jet;\n  }\n}\n\n.notification__text-container {\n  padding: 0 0.75rem;\n\n  .notification-content {\n    @include typography('inter-12');\n  }\n}\n\n.notification__icon-container {\n  flex: 0 0 1.5rem;\n  border-radius: 50%;\n  @include size(1.5rem, 1.5rem);\n  @include flex(row, center, center);\n}\n\n.notification__icon {\n  @include size(.75rem, .75rem);\n  flex: 0 0 .75rem;\n  filter: $filter-svg-white;\n}\n\n</style>\n","import script from \"./ToastNotifications.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ToastNotifications.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ToastNotifications.vue?vue&type=style&index=0&id=5758b2b4&scoped=true&lang=scss\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5758b2b4\"]])\n\nexport default __exports__"],"names":["_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","ConfirmModalvue_type_script_setup_true_lang_ts","_defineComponent","__name","setup","__props","loading","ref","confirmDialogConfig","closeModal","useUiModule","imagePaths","welcomeImage","require","ideasImage","rateUserLimitExceededImage","submit","async","value","action","error","console","back","backAction","EModalNames","confirmModal","_ctx","_cache","_component_InlineSvg","_resolveComponent","_directive_tooltip","_resolveDirective","_openBlock","_createBlock","ModalWrapper","title","_unref","default","_withCtx","_createElementVNode","src","image","alt","_toDisplayString","message","_withDirectives","_createElementBlock","onClick","_createVNode","theme","content","NdButton","text","actionButtonText","type","ENdButtonTypes","gray0","_","__exports__","exportHelper","A","ConfirmModal","DemoRequestFormvue_type_script_setup_true_lang_ts","props","variant","emits","expose","__expose","emit","__emit","fields","validator","phoneMask","isSubmitting","isDisabledForm","shakeField","phoneIsValid","phoneIsTouched","emailIsValid","emailIsTouched","helperNameFieldText","helperPhoneFieldText","helperEmailFieldText","validateRulePhone","validateRuleEmail","validateRuleName","demoRequest","resetForm","useDemoRequestForm","onSubmit","success","_normalizeClass","NdInput","label","filled","nameField","$error","modelValue","$event","modelModifiers","trim","rules","onFocusout","$touch","_imports_0","phoneField","mask","placeholder","key","_createCommentVNode","emailField","maximumred","disabled","DemoRequestForm","runtime_auto_import_default","QField","_hoisted_6","ToastNotificationsvue_type_script_setup_true_lang_ts","isMobile","useGetBreakpoints","icons","reactive","info","warning","_component_Notifications","position","width","body","item","$notify","close","id","ToastNotifications"],"sourceRoot":""}