{"version":3,"sources":["webpack:///./src/lib/composables/useAuthInfo.ts","webpack:///./src/lib/composables/useContextSidebar.ts","webpack:///./src/components/sidebars/context/ContextSidebar.tsx","webpack:///./src/modules/pacientes/components/forms/PacienteDadosComplementares.tsx","webpack:///./src/modules/pacientes/pages/PacienteDadosComplementaresPage.tsx","webpack:///./src/modules/pacientes/pages/PacienteLogAlteracoesPage.tsx","webpack:///./src/components/form/fields/EnderecoFields.tsx","webpack:///./src/modules/pacientes/components/convenio/PacienteConvenioForm.tsx","webpack:///./src/modules/pacientes/components/convenio/PacienteConvenios.tsx","webpack:///./src/modules/pacientes/pages/PacienteConveniosPage.tsx","webpack:///./src/components/sidebars/context/ContextSidebarMenuSubheader.tsx","webpack:///./src/components/sidebars/context/ContextSidebarMenuTileAction.tsx","webpack:///./src/components/sidebars/context/ContextSidebarMenu.tsx","webpack:///./src/components/perfil/PerfilImagem.tsx","webpack:///./src/modules/pacientes/components/sidebars/PacienteNewSidebar.tsx","webpack:///./src/components/sidebars/context/ContextSidebarMenuTileLink.tsx","webpack:///./src/modules/pacientes/components/forms/PacienteForm.tsx","webpack:///./src/lib/composables/usePaciente.ts","webpack:///./src/modules/pacientes/pages/PacienteHistoricoConsultasPage.tsx","webpack:///./src/components/sidebars/context/ContextSidebarMenuHeader.tsx","webpack:///./src/components/buttons/BtnSelectedRows.tsx","webpack:///./src/modules/pacientes/pages/PacientesPage.tsx","webpack:///./src/lib/helpers/jsx.ts","webpack:///./src/components/datatable/IndexDataTable.tsx","webpack:///./src/modules/pacientes/components/parentes/PacienteParentesForm.tsx","webpack:///./src/modules/pacientes/components/parentes/PacienteParentes.tsx","webpack:///./src/modules/pacientes/pages/PacienteParentesPage.tsx","webpack:///./src/modules/pacientes/components/forms/PacienteDadosPessoais.tsx","webpack:///./src/modules/pacientes/pages/PacienteDadosPessoaisPage.tsx","webpack:///./src/modules/pacientes/components/sidebars/PacienteEditSidebar.tsx"],"names":["useAuthInfo","$user","s","auth","user","$clinica","clinica","$userIsProfissionalSaude","value","tipo","PROFISSIONAL_SAUDE","$userIsRecepcionista","RECEPCIONISTA","$userIsAdmin","adminAccount","adminClinica","clinicaId","id","useContextSidebar","ctx","width","miniWidth","$temporarySidebarOpen","layout","temporarySidebar","open","$showMiniSidebar","$currentWidth","$width","$miniVariant","$mini","contextSidebar","mini","useUpdateAppLeft","checkNoSidebar","fullPath","routesNoSidebar","includes","updateAppLeft","vuetify","application","left","ContextSidebar","name","setup","props","$miniIcon","sidebarExpand","sidebarCollapse","defaultSlot","slots","default","coolGray800","stop","toggleContext","PacienteDadosComplementares","form","type","Object","required","useComputeds","$model","$schema","useEvents","handleInputDadosComplementares","handleInputOutrasInformacoes","dadosComplementares","outrasInformacoes","paciente","model","naturalidade","label","sm","naturalidadeUf","items","estados","itemLabel","itemValue","clearable","maxWidth","nacionalidade","paises","etnia","list","etnias","religiao","estadoCivil","estadosCivis","escolaridade","escolaridades","profissao","obito","causaMortis","hidden","lookup","cid10Lookup","cns","maxLength","informacoesAdicionais","setModel","modelChanged","usePaciente","page","$title","handleSubmit","handleDelete","$form","$items","headers","text","EnderecoFields","noPais","Boolean","$cepLoading","setCepLoading","enderecoCep","mask","loading","xs","enderecoLogradouro","enderecoNumero","enderecoComplemento","enderecoBairro","enderecoCidade","enderecoUf","enderecoPais","searchCep","searchValue","submitting","cep","emitInput","logradouro","bairro","cidade","uf","emit","newValue","PacienteConvenioForm","initialValue","useForm","emitSubmit","emitCancel","carteirinha","semVencimento","vencimento","convenio","defaultValue","convenioId","convenioNome","planoId","planoNome","acomodacao","numeroCarteirinha","mapSchema","noParticular","onModelChange","nome","validations","convenioPlano","noCache","disabled","hideDetails","PacienteConvenios","mapValue","v","formatDate","useFormPage","submitCallback","dialogModel","handleCreate","handleUpdate","useActions","btn","actions","convenios","showDialog","title","system","onSubmit","handleNew","handleEdit","updateModel","removeMany","allIds","ids","filter","f","new","map","deleteManyConvenios","result","outlined","onClick","edit","uuid","createConvenio","updateConvenio","ContextSidebarMenuSubheader","String","ContextSidebarMenuTileAction","menu","errorText","hasError","action","active","icon","ContextSidebarMenu","menus","Array","$menus","index","header","subheader","divider","to","PerfilImagem","logo","emitRemove","openUploadDialog","size","image","account","gray300","gray50","imageEdit","imageInsert","imageRemove","payload","uploadImage","mode","confirmed","upload","$hasError","pacienteDadosPessoais","app","pacientes","pacienteDadosComplementares","pacienteParentes","parentes","ContextSidebarMenuTileLink","errorClass","noExact","listItemAction","imageUrl","cyan800","PacienteForm","noDelete","$showDelete","indexRoute","handleCancel","resetModel","push","usePacienteForm","emitDelete","incompleto","$modelChanged","$requireFones","telefones","celular","telefoneCasa","mapValueToValidate","loadEditCallback","getById","editValue","createdAt","geral","codigo","dataNascimento","sexo","email","cpf","rg","comoConheceu","observacao","telefoneTrabalho","aceitaSms","endereco","imagem","imagemId","url","thumbnailUrl","validationErrorCallback","setHasError","agendamentoId","query","aid","pacienteId","params","setId","delete","update","create","isEdit","ContextSidebarMenuHeader","BtnSelectedRows","selected","$show","length","$label","num","$ids","activator","menuActivator","listMenus","on","selectedRows","menuDown","onNovoPaciente","editRouteFn","useData","$search","editRoute","deleteMany","prontuario","telefone","usePacientesQuery","PacientesQuery","variables","where","mapData","nodes","join","$data","$loading","scopedSlots","entries","reduce","obj","slotName","slot","IndexDataTable","titleText","selectable","noSearch","draggable","$selected","setSelected","$button","$selectedMenus","$showActionsRow","emitReorder","MyIcons","color","selecionado","remove","selectedMenus","actionsSlot","PacienteParentesForm","useParentesForm","parentesco","parentescos","menuProps","maxHeight","PacienteParentes","deleteManyParentes","createParente","parente","updateParente","PacienteDadosPessoais","handleInputEndereco","GeralFields","schema","handleInputGeral","handleImagemInput","setImagem","handleImagemRemove","formatDateAndHour","Telefones","handleInputTelefones","$pacienteId","historico","historicoConsultas","pacienteLogAlteracoes","logAlteracoes"],"mappings":"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","file":"js/pacientes.a4cc4f9c.js","sourcesContent":["import { UserTipo } from '@/typings';\nimport { computed } from '@vue/composition-api';\nimport { useState } from '.';\n\nexport function useAuthInfo() {\n const $user = useState(s => s.auth.user);\n\n const $clinica = useState(s => s.auth.clinica);\n\n const $userIsProfissionalSaude = computed(\n () => $user.value?.tipo === UserTipo.PROFISSIONAL_SAUDE,\n );\n\n const $userIsRecepcionista = computed(\n () => $user.value?.tipo === UserTipo.RECEPCIONISTA,\n );\n\n const $userIsAdmin = computed(\n () => !!$user.value?.adminAccount || !!$clinica.value?.adminClinica,\n );\n\n return {\n clinicaId: $clinica.value?.id,\n $user,\n $clinica,\n $userIsProfissionalSaude,\n $userIsRecepcionista,\n $userIsAdmin,\n };\n}\n","import { computed, SetupContext } from '@vue/composition-api';\nimport { useState } from '.';\nimport { watchRun } from '../vue';\nimport { useBreakpoints } from './utils/useBreakpoints';\nimport { useRoute } from './utils/useRouter';\nimport { useVuetify } from './utils/useVuetify';\n\nexport function useContextSidebar(ctx: SetupContext) {\n const width = 300;\n\n const miniWidth = 40;\n\n const $temporarySidebarOpen = useState(s => s.layout.temporarySidebar.open);\n\n const { $showMiniSidebar, $width: $currentWidth } = useBreakpoints();\n\n const $miniVariant = computed(() =>\n $showMiniSidebar.value ? $mini.value : false,\n );\n\n const $mini = useState(s => s.layout.contextSidebar.mini);\n\n return {\n $currentWidth,\n width,\n miniWidth,\n $temporarySidebarOpen,\n $showMiniSidebar,\n $miniVariant,\n $mini,\n };\n}\n\nexport function useUpdateAppLeft(ctx: SetupContext) {\n const {\n $miniVariant,\n miniWidth,\n width,\n $temporarySidebarOpen,\n $currentWidth,\n } = useContextSidebar(ctx);\n\n function checkNoSidebar() {\n const fullPath = useRoute().fullPath;\n\n const routesNoSidebar = [\n '/pacientes',\n '/configuracoes/meu-perfil',\n '/contatos',\n '/cid',\n ];\n\n return (\n routesNoSidebar.includes(fullPath) ||\n // routes => /cid/*\n fullPath.includes('/cid/') ||\n // routes => /contatos/*\n fullPath.includes('/contatos/') ||\n // routes => /erro/*\n fullPath.includes('/erro/')\n );\n }\n\n function updateAppLeft() {\n const vuetify = useVuetify();\n\n if (checkNoSidebar()) {\n return (vuetify.application.left = 0);\n }\n\n // fix the left padding issue\n vuetify.application.left = $miniVariant.value ? miniWidth : width;\n }\n\n watchRun($temporarySidebarOpen, updateAppLeft);\n\n watchRun($currentWidth, updateAppLeft);\n\n watchRun(() => useRoute().fullPath, updateAppLeft);\n}\n","import { useContextSidebar } from '@/lib/composables/useContextSidebar';\nimport { MyIcons } from '@/lib/helpers/MyIcons';\nimport { MyTheme } from '@/lib/helpers/MyTheme';\nimport { createComponent, modifiers } from '@/lib/vue';\nimport { LayoutState } from '@/store/modules/layout.store';\nimport { computed } from '@vue/composition-api';\n\nexport const ContextSidebar = createComponent({\n name: 'ContextSidebar',\n setup(props, ctx) {\n const { $mini, width, miniWidth, $miniVariant, $showMiniSidebar } =\n useContextSidebar(ctx);\n\n const $miniIcon = computed(() =>\n $mini.value ? MyIcons.sidebarExpand : MyIcons.sidebarCollapse,\n );\n\n return () => {\n const defaultSlot = ctx.slots.default?.();\n\n return (\n
\n \n {$showMiniSidebar.value && (\n \n {$miniIcon.value}\n \n )}\n\n {!$miniVariant.value && defaultSlot}\n \n
\n );\n };\n },\n});\n\nexport default ContextSidebar;\n","import { FormFields } from '@/components/form/fields/FormFields';\nimport { PageSection } from '@/components/page/PageSection';\nimport { useState } from '@/lib/composables';\nimport { ConstantsHelper } from '@/lib/constants/helper';\nimport { LookupsConfigs } from '@/lib/form/lookups';\nimport { createComponent } from '@/lib/vue';\nimport { PacienteState } from '@/store/modules/paciente.store';\nimport {\n IForm,\n IPacienteDadosComplementaresFormSchema,\n IPacienteDadosComplementaresModel,\n IPacienteFormModel,\n IPacienteOutrasInformacoesModel,\n} from '@/typings';\nimport { computed, Ref } from '@vue/composition-api';\n\ninterface IProps {\n form: IForm;\n}\n\nexport const PacienteDadosComplementares = createComponent({\n name: 'PacienteDadosComplementares',\n props: {\n form: { type: Object, required: true },\n },\n setup(props, ctx) {\n const { $model, $schema } = useComputeds();\n\n const { handleInputDadosComplementares, handleInputOutrasInformacoes } =\n useEvents($model);\n\n return () => (\n
\n \n \n \n\n \n \n \n
\n );\n },\n});\n\nfunction useComputeds() {\n const $model = useState(s => s.paciente.model);\n\n const $schema = computed(() => ({\n dadosComplementares: {\n naturalidade: {\n label: 'Naturalidade',\n type: 'text',\n layout: { sm: 6 },\n },\n naturalidadeUf: {\n label: 'Naturalidade UF',\n type: 'select',\n items: ConstantsHelper.estados,\n itemLabel: 'sigla',\n itemValue: 'sigla',\n clearable: true,\n layout: { maxWidth: 200 },\n },\n nacionalidade: {\n label: 'Nacionalidade',\n type: 'autocomplete',\n items: ConstantsHelper.paises,\n itemLabel: 'nome',\n itemValue: 'nome',\n layout: { sm: 6 },\n },\n etnia: {\n label: 'Etnia',\n type: 'autocomplete',\n list: ConstantsHelper.etnias,\n layout: { sm: 6 },\n },\n religiao: {\n label: 'Religião',\n type: 'text',\n layout: { sm: 6 },\n },\n estadoCivil: {\n label: 'Estado civil',\n type: 'autocomplete',\n list: ConstantsHelper.estadosCivis,\n layout: { sm: 6 },\n },\n escolaridade: {\n label: 'Escolaridade',\n type: 'autocomplete',\n list: ConstantsHelper.escolaridades,\n layout: { sm: 6 },\n },\n profissao: {\n label: 'Profissão',\n type: 'text',\n layout: { sm: 6 },\n },\n obito: {\n label: 'Óbito',\n type: 'checkbox',\n layout: { sm: 6 },\n },\n causaMortis: {\n label: 'Causa mortis',\n type: 'autocomplete',\n itemLabel: 'descricao',\n hidden: !$model.value.dadosComplementares.obito,\n lookup: LookupsConfigs.cid10Lookup(),\n layout: { sm: 6 },\n },\n },\n outrasInformacoes: {\n cns: {\n label: 'CNS',\n type: 'text',\n maxLength: 15,\n layout: { width: 260 },\n },\n informacoesAdicionais: {\n label: 'Informações adicionais',\n type: 'textarea',\n },\n },\n }));\n\n return { $model, $schema };\n}\n\nfunction useEvents($model: Ref) {\n function handleInputDadosComplementares(\n dadosComplementares: IPacienteDadosComplementaresModel,\n ) {\n return PacienteState.setModel({\n model: {\n ...$model.value,\n dadosComplementares,\n },\n modelChanged: true,\n });\n }\n\n function handleInputOutrasInformacoes(\n outrasInformacoes: IPacienteOutrasInformacoesModel,\n ) {\n return PacienteState.setModel({\n model: {\n ...$model.value,\n outrasInformacoes,\n },\n modelChanged: true,\n });\n }\n\n return {\n handleInputDadosComplementares,\n handleInputOutrasInformacoes,\n };\n}\n","import { usePaciente } from '@/lib/composables/usePaciente';\nimport { createComponent } from '@/lib/vue';\nimport { PacienteDadosComplementares } from '../components/forms/PacienteDadosComplementares';\nimport { PacienteForm } from '../components/forms/PacienteForm';\n\nexport default createComponent({\n name: 'PacienteDadosComplementaresPage',\n setup(props, ctx) {\n const { page, $title, handleSubmit, handleDelete } = usePaciente(ctx);\n\n return () => (\n [\n ,\n ],\n }}\n />\n );\n },\n});\n","import { IndexDataTable } from '@/components/datatable/IndexDataTable';\nimport { MyPage } from '@/components/page/MyPage';\nimport { useValue } from '@/lib/composables';\nimport { usePaciente } from '@/lib/composables/usePaciente';\nimport { createComponent } from '@/lib/vue';\nimport { IDataTableHeader } from '@/typings';\n\nexport default createComponent({\n name: 'PacienteLogAlteracoesPage',\n setup(props, ctx) {\n const { $title } = usePaciente(ctx);\n\n const [$items] = useValue([]);\n\n const headers: IDataTableHeader[] = [\n {\n text: 'Data da alteração',\n value: 'dataAlteracao',\n },\n {\n text: 'Alterado por',\n value: 'alteradoPor',\n },\n {\n text: 'Alteração',\n value: 'alteracao',\n },\n ];\n\n return () => (\n \n \n \n );\n },\n});\n","import { PageSection } from '@/components/page/PageSection';\nimport { useValue } from '@/lib/composables';\nimport { ConstantsHelper } from '@/lib/constants/helper';\nimport { CepService } from '@/lib/services';\nimport { createComponent, watchRun } from '@/lib/vue';\nimport { IEnderecoModel, IForm, IFormSchema, IRequireField } from '@/typings';\nimport { computed } from '@vue/composition-api';\nimport { FormFields } from './FormFields';\n\ninterface IJsxProps {\n // model\n value?: IEnderecoModel;\n form: IForm;\n noPais?: boolean;\n}\n\ntype IProps = IRequireField;\n\ninterface IEvents {\n onInput: (endereco: IEnderecoModel) => void;\n}\n\nexport const EnderecoFields = createComponent({\n name: 'EnderecoFields',\n props: {\n value: { type: Object, required: true },\n form: { type: Object, required: true },\n noPais: { type: Boolean, default: false },\n },\n setup(props: IProps, ctx) {\n const [$cepLoading, setCepLoading] = useValue(false);\n\n const $schema = computed>(() => {\n return {\n enderecoCep: {\n label: 'CEP',\n type: 'text',\n mask: 'cep',\n loading: $cepLoading.value,\n clearable: true,\n layout: {\n maxWidth: 150,\n xs: 12,\n },\n },\n enderecoLogradouro: {\n label: 'Logradouro',\n type: 'text',\n layout: { sm: 8 },\n },\n enderecoNumero: {\n label: 'Número',\n type: 'text',\n layout: { sm: 4 },\n },\n enderecoComplemento: {\n label: 'Complemento',\n type: 'text',\n layout: { sm: 6 },\n },\n enderecoBairro: {\n label: 'Bairro',\n type: 'text',\n layout: { sm: 6 },\n },\n enderecoCidade: {\n label: 'Cidade',\n type: 'text',\n layout: {\n sm: 8,\n maxWidth: 500,\n },\n },\n enderecoUf: {\n label: 'UF',\n type: 'select',\n items: ConstantsHelper.estados,\n itemLabel: 'sigla',\n itemValue: 'sigla',\n layout: { maxWidth: 100 },\n },\n enderecoPais: {\n label: 'País',\n type: 'autocomplete',\n items: ConstantsHelper.paises,\n itemLabel: 'nome',\n itemValue: 'nome',\n hidden: props.noPais,\n layout: {\n maxWidth: 380,\n xs: 12,\n },\n },\n };\n });\n\n async function searchCep(searchValue: string | null | undefined) {\n if (\n !searchValue ||\n !props.value ||\n props.form.loading ||\n props.form.page.submitting\n ) {\n return;\n }\n\n setCepLoading(true);\n\n const cep = await CepService.cep(searchValue);\n\n setCepLoading(false);\n\n if (cep) {\n emitInput({\n enderecoCep: searchValue,\n enderecoLogradouro: cep.logradouro,\n enderecoNumero: props.value.enderecoNumero,\n enderecoComplemento: '', // cep.complemento,\n enderecoBairro: cep.bairro,\n enderecoCidade: cep.cidade,\n enderecoUf: cep.uf,\n enderecoPais: props.value.enderecoPais,\n });\n }\n }\n\n function emitInput(value: IEnderecoModel) {\n ctx.emit('input', value);\n }\n\n watchRun(\n () => props.value.enderecoCep,\n newValue => searchCep(newValue),\n );\n\n return () => (\n \n \n \n );\n },\n});\n","import { FormFields } from '@/components/form/fields/FormFields';\nimport { MyForm } from '@/components/form/MyForm';\nimport { PageSection } from '@/components/page/PageSection';\nimport { FormHeader } from '@/components/typography/FormHeader';\nimport {\n IDialogFormProps,\n IFormEvents,\n useDialogFormConfig,\n} from '@/lib/composables/form/useFormConfig';\nimport { LookupsConfigs } from '@/lib/form/lookups';\nimport { createComponent, watchRun } from '@/lib/vue';\nimport {\n IPacienteConvenioFormModel,\n IPacienteConvenioFormSchema,\n} from '@/typings';\nimport { SetupContext } from '@vue/composition-api';\n\ninterface IProps extends IDialogFormProps {}\n\ninterface IEvents extends IFormEvents {}\n\nexport const PacienteConvenioForm = createComponent({\n name: 'PacienteConvenioForm',\n props: {\n page: { type: Object, required: true },\n initialValue: { type: Object },\n },\n setup(props, ctx) {\n const { $form, $schema, emitSubmit, emitCancel } = useForm(props, ctx);\n\n watchRun(\n () => $form.value.model.carteirinha.semVencimento,\n semVencimento => {\n if (semVencimento) {\n $form.value.model.carteirinha.vencimento = null;\n }\n },\n );\n\n return () => (\n \n \n \n\n \n \n\n \n \n\n \n \n \n );\n },\n});\n\nfunction useForm(props: IProps, ctx: SetupContext) {\n const defaultValue: IPacienteConvenioFormModel = {\n convenio: {\n convenioId: null,\n convenioNome: null,\n planoId: null,\n planoNome: null,\n acomodacao: null,\n },\n carteirinha: {\n vencimento: null,\n semVencimento: false,\n numeroCarteirinha: null,\n },\n };\n\n return useDialogFormConfig<\n IPacienteConvenioFormModel,\n IPacienteConvenioFormSchema\n >({\n page: props.page,\n ctx,\n initialValue: props.initialValue || defaultValue,\n mapSchema: (model, $form) => ({\n convenio: {\n convenioId: {\n label: 'Convênio',\n type: 'autocomplete',\n itemLabel: 'nome',\n lookup: LookupsConfigs.convenio({\n noParticular: true,\n onModelChange(value) {\n $form.value.model.convenio.convenioNome = value?.nome;\n $form.value.model.convenio.planoId = null;\n $form.value.model.convenio.planoNome = null;\n },\n }),\n validations: {\n required: true,\n },\n },\n planoId: {\n label: 'Plano',\n type: 'autocomplete',\n itemLabel: 'nome',\n lookup: LookupsConfigs.convenioPlano({\n convenioId: model.convenio.convenioId!,\n onModelChange(value) {\n $form.value.model.convenio.planoNome = value?.nome;\n },\n noCache: true,\n }),\n disabled: !model.convenio.convenioId,\n },\n acomodacao: {\n label: 'Acomodação',\n type: 'text',\n hideDetails: true,\n },\n },\n carteirinha: {\n numeroCarteirinha: {\n label: 'Número carteirinha',\n type: 'text',\n maxLength: 20,\n validations: { required: true },\n },\n vencimento: {\n label: 'Vencimento',\n type: 'date',\n disabled: model.carteirinha.semVencimento,\n validations: {\n required: !model.carteirinha.semVencimento,\n },\n layout: { xs: 6 },\n },\n semVencimento: {\n label: 'Sem vencimento',\n type: 'checkbox',\n layout: { xs: 6 },\n },\n },\n }),\n });\n}\n","import { IndexDataTable } from '@/components/datatable/IndexDataTable';\nimport { useState } from '@/lib/composables';\nimport { useFormPage } from '@/lib/composables/form/useFormPage';\nimport { getEditValue, pacienteConvenioToFormModel } from '@/lib/form';\nimport { DateHelpers } from '@/lib/helpers/date.helpers';\nimport { DialogHelpers } from '@/lib/helpers/dialogs/dialog.helpers';\nimport { uuid } from '@/lib/helpers/uuid';\nimport { PacienteService } from '@/lib/services';\nimport { createComponent } from '@/lib/vue';\nimport { PacienteState } from '@/store/modules/paciente.store';\nimport {\n IFormPage,\n IIndexDataTableActions,\n IIndexDataTableButton,\n IPacienteConvenioFormModel,\n IPacienteFormModel,\n IDataTableHeader,\n} from '@/typings';\nimport { Ref } from '@vue/composition-api';\nimport { PacienteConvenioForm } from './PacienteConvenioForm';\n\nexport const PacienteConvenios = createComponent({\n name: 'PacienteConvenios',\n setup(props, ctx) {\n const $model = useState(s => s.paciente.model);\n\n const headers: Array> = [\n {\n text: 'Convênio',\n value: 'convenio',\n mapValue: v => v.convenio.convenioNome,\n },\n {\n text: 'Plano',\n value: 'plano',\n mapValue: v => v.convenio.planoNome,\n },\n {\n text: 'Número da carteirinha',\n value: 'numeroCarteirinha',\n mapValue: v => v.carteirinha.numeroCarteirinha,\n },\n {\n text: 'Vencimento',\n value: 'vencimento',\n mapValue: v => DateHelpers.formatDate(v.carteirinha.vencimento),\n },\n ];\n\n const { page, handleSubmit } = useFormPage({\n ctx,\n async submitCallback(dialogModel: IPacienteConvenioFormModel) {\n if (!dialogModel.id) {\n return handleCreate(dialogModel);\n }\n return handleUpdate(dialogModel);\n },\n });\n\n const { btn, actions, handleCreate, handleUpdate } = useActions({\n $model,\n page,\n handleSubmit,\n });\n\n return () => (\n \n );\n },\n});\n\nfunction useActions({\n $model,\n page,\n handleSubmit,\n}: {\n $model: Ref;\n page: IFormPage;\n handleSubmit: (model: IPacienteConvenioFormModel) => Promise;\n}) {\n function showDialog({\n title,\n initialValue,\n }: {\n title: string;\n initialValue: IPacienteConvenioFormModel | null;\n }) {\n return DialogHelpers.system.form({\n title,\n form: PacienteConvenioForm,\n page,\n initialValue,\n onSubmit: handleSubmit,\n });\n }\n\n function handleNew() {\n return showDialog({\n title: 'Novo convênio',\n initialValue: null,\n });\n }\n\n function handleEdit(id?: string | null) {\n const initialValue = getEditValue(id, $model.value.convenios);\n\n if (!initialValue) return handleNew();\n\n return showDialog({\n title: 'Editar convênio',\n initialValue,\n });\n }\n\n function updateModel(convenios: IPacienteConvenioFormModel[]) {\n return PacienteState.setModel({\n model: {\n ...$model.value,\n convenios,\n },\n modelChanged: true,\n });\n }\n\n async function removeMany(\n allIds: string[],\n items: IPacienteConvenioFormModel[],\n ) {\n const ids = items.filter(f => !f.new && !!f.id).map(v => v.id!);\n\n const result = await PacienteService.deleteManyConvenios(ids, allIds);\n\n if (result) {\n updateModel($model.value.convenios.filter(f => !allIds.includes(f.id!)));\n }\n }\n\n const btn: IIndexDataTableButton = {\n text: 'Novo Convênio',\n outlined: true,\n onClick: handleNew,\n };\n\n const actions: IIndexDataTableActions = {\n edit: handleEdit,\n removeMany,\n };\n\n return {\n btn,\n actions,\n\n async handleCreate(dialogModel: IPacienteConvenioFormModel) {\n dialogModel.id = uuid();\n dialogModel.new = true;\n\n updateModel([...$model.value.convenios, dialogModel]);\n\n if ($model.value.id) {\n const convenio = await PacienteService.createConvenio(\n $model.value.id,\n dialogModel,\n );\n\n if (convenio) {\n updateModel([\n ...$model.value.convenios.filter(f => f.id !== dialogModel.id),\n pacienteConvenioToFormModel(convenio),\n ]);\n }\n }\n },\n\n async handleUpdate(dialogModel: IPacienteConvenioFormModel) {\n updateModel([\n ...$model.value.convenios.filter(v => v.id !== dialogModel.id),\n dialogModel,\n ]);\n\n if ($model.value.id && !dialogModel.new && dialogModel.id) {\n const convenio = await PacienteService.updateConvenio(\n dialogModel.id,\n dialogModel,\n );\n\n if (convenio) {\n updateModel([\n ...$model.value.convenios.filter(f => f.id !== dialogModel.id),\n pacienteConvenioToFormModel(convenio),\n ]);\n }\n }\n },\n };\n}\n","import { usePaciente } from '@/lib/composables/usePaciente';\nimport { createComponent } from '@/lib/vue';\nimport { PacienteConvenios } from '../components/convenio/PacienteConvenios';\nimport { PacienteForm } from '../components/forms/PacienteForm';\n\nexport default createComponent({\n name: 'PacienteConveniosPage',\n setup(props, ctx) {\n const { page, handleSubmit, $title } = usePaciente(ctx);\n\n return () => (\n \n \n \n );\n },\n});\n","import { createComponent } from '@/lib/vue';\n\ninterface IProps {\n title: string;\n}\n\nexport const ContextSidebarMenuSubheader = createComponent({\n name: 'ContextSidebarMenuSubheader',\n props: {\n title: { type: String, required: true },\n },\n setup(props, ctx) {\n return () => {props.title};\n },\n});\n","import { createComponent } from '@/lib/vue';\nimport { IMenu } from '@/typings';\n\ninterface IProps {\n menu: IMenu;\n}\n\nexport const ContextSidebarMenuTileAction = createComponent({\n name: 'ContextSidebarMenuTileAction',\n props: {\n menu: { type: Object, required: true },\n },\n setup(props, ctx) {\n return () => {\n const { menu } = props;\n\n const errorText = { 'text-error': !!menu.hasError };\n\n return (\n \n {menu.icon && (\n \n {menu.icon}\n \n )}\n\n \n {menu.text}\n \n \n );\n };\n },\n});\n","import { createComponent } from '@/lib/vue';\nimport { IMenu } from '@/typings';\nimport { computed } from '@vue/composition-api';\nimport { ContextSidebarMenuHeader } from './ContextSidebarMenuHeader';\nimport { ContextSidebarMenuSubheader } from './ContextSidebarMenuSubheader';\nimport { ContextSidebarMenuTileAction } from './ContextSidebarMenuTileAction';\nimport { ContextSidebarMenuTileLink } from './ContextSidebarMenuTileLink';\n\ninterface IProps {\n menus: readonly IMenu[];\n}\n\nexport const ContextSidebarMenu = createComponent({\n name: 'ContextSidebarMenu',\n props: {\n menus: { type: Array, required: true },\n },\n setup(props, ctx) {\n const $menus = computed(() => props.menus.filter(f => !f.hidden));\n\n return () => {$menus.value.map(menuItem)};\n },\n});\n\nconst menuItem = (menu: IMenu, index: number) => {\n if (menu.header && menu.text) {\n return ;\n } else if (menu.subheader && menu.text) {\n return ;\n } else if (menu.divider) {\n return ;\n } else if (menu.action) {\n return ;\n } else if (menu.to) {\n return ;\n }\n};\n","import { DialogHelpers } from '@/lib/helpers/dialogs/dialog.helpers';\nimport { MyIcons } from '@/lib/helpers/MyIcons';\nimport { MyTheme } from '@/lib/helpers/MyTheme';\nimport { createComponent } from '@/lib/vue';\nimport { IImageUploadDialogConfirmation } from '@/typings';\nimport { SetupContext } from '@vue/composition-api';\n\ninterface IProps {\n value: string | null | undefined;\n name: string | null | undefined;\n logo?: boolean;\n}\n\nexport type IPerfilImagem = Omit;\n\ninterface IEvents {\n onInput(payload: IPerfilImagem): void;\n onRemove(): void;\n}\n\nexport const PerfilImagem = createComponent({\n name: 'PerfilImagem',\n props: {\n value: { type: String },\n name: { type: String },\n logo: { type: Boolean, default: false },\n },\n setup(props, ctx) {\n const { emitRemove, openUploadDialog } = useEvents(ctx);\n\n const title = props.logo ? 'Imagem do logo' : 'Foto';\n const size = props.logo ? 100 : 80;\n const icon = props.logo ? MyIcons.image : MyIcons.account;\n\n return () => (\n
\n
{title}
\n\n
\n
\n \n {props.value ? (\n {props.name\n ) : (\n {icon}\n )}\n \n
\n\n
\n \n \n {props.value ? MyIcons.imageEdit : MyIcons.imageInsert}\n \n\n {props.value ? 'Editar' : 'Inserir'}\n \n\n {props.value && (\n \n {MyIcons.imageRemove}\n Remover\n \n )}\n
\n
\n\n {props.logo && (\n
\n Dimensão: 200x200 px\n
\n )}\n
\n );\n },\n});\n\nfunction useEvents(ctx: SetupContext) {\n function emitInput(payload: IPerfilImagem) {\n ctx.emit('input', payload);\n }\n return {\n emitInput,\n\n emitRemove() {\n ctx.emit('remove');\n },\n\n async openUploadDialog() {\n const { confirmed, image, upload } =\n await DialogHelpers.system.uploadImage({\n mode: 'tabs',\n });\n\n if (confirmed) {\n emitInput({ image, upload });\n }\n },\n };\n}\n","import { ContextSidebar } from '@/components/sidebars/context/ContextSidebar';\nimport { ContextSidebarMenu } from '@/components/sidebars/context/ContextSidebarMenu';\nimport { useState } from '@/lib/composables';\nimport { MyIcons } from '@/lib/helpers/MyIcons';\nimport { createComponent } from '@/lib/vue';\nimport { Routes } from '@/routes/routes';\nimport { IMenu } from '@/typings';\nimport { computed } from '@vue/composition-api';\n\nexport default createComponent({\n name: 'PacienteNewSidebar',\n setup(props, ctx) {\n const $hasError = useState(s => s.paciente.hasError);\n\n const $menus = computed(() => [\n {\n text: 'Novo Paciente',\n header: true,\n },\n {\n text: 'Dados pessoais',\n icon: MyIcons.pacienteDadosPessoais,\n to: Routes.app.pacientes.new.index,\n hasError: $hasError.value,\n },\n {\n text: 'Dados complementares',\n icon: MyIcons.pacienteDadosComplementares,\n to: Routes.app.pacientes.new.dadosComplementares,\n },\n {\n text: 'Parentes',\n icon: MyIcons.pacienteParentes,\n to: Routes.app.pacientes.new.parentes,\n },\n {\n text: 'Convênios',\n icon: MyIcons.convenio,\n to: Routes.app.pacientes.new.convenios,\n },\n ]);\n\n return () => (\n \n \n \n );\n },\n});\n","import { createComponent } from '@/lib/vue';\nimport { IMenu } from '@/typings';\nimport { MyTheme } from '@/lib/helpers/MyTheme';\n\ninterface IProps {\n menu: IMenu;\n}\n\nexport const ContextSidebarMenuTileLink = createComponent({\n name: 'ContextSidebarMenuTileLink',\n props: {\n menu: { type: Object, required: true },\n },\n setup(props, ctx) {\n return () => {\n const { menu } = props;\n\n const errorClass = menu.hasError ? 'text-error' : '';\n\n return (\n \n {listItemAction({ menu, errorClass })}\n\n \n {menu.text}\n \n \n );\n };\n },\n});\n\nfunction listItemAction({\n menu,\n errorClass,\n}: {\n menu: IMenu;\n errorClass: string;\n}) {\n if (menu.imageUrl) {\n return (\n \n \n {menu.text}\n \n \n );\n } else if (menu.icon) {\n return (\n \n {menu.icon}\n \n );\n }\n\n return null;\n}\n","import { MyForm } from '@/components/form/MyForm';\nimport { MyPage } from '@/components/page/MyPage';\nimport { useState } from '@/lib/composables';\nimport {\n IFormEvents,\n IFormProps,\n useFormConfig,\n} from '@/lib/composables/form/useFormConfig';\nimport { useAuthInfo } from '@/lib/composables/useAuthInfo';\nimport { useRouter } from '@/lib/composables/utils/useRouter';\nimport {\n pacienteConvenioToFormModel,\n pacienteDadosPessoaisForm,\n} from '@/lib/form';\nimport { PacienteService } from '@/lib/services';\nimport { createComponent } from '@/lib/vue';\nimport { Routes } from '@/routes/routes';\nimport { redirectError } from '@/routes/utils';\nimport { PacienteState } from '@/store/modules/paciente.store';\nimport {\n IPacienteConvenioFormModel,\n IPacienteDadosPessoaisFormSchema,\n IPacienteFormModel,\n IPacienteParenteModel,\n} from '@/typings';\nimport { computed, ComputedRef, SetupContext } from '@vue/composition-api';\n\ninterface IProps extends IFormProps {\n title: string;\n noDelete?: boolean;\n}\n\ninterface IEvents extends IFormEvents {}\n\nexport const PacienteForm = createComponent({\n name: 'PacienteForm',\n props: {\n page: { type: Object, required: true },\n title: { type: String, required: true },\n noDelete: { type: Boolean, default: false },\n },\n setup(props, ctx) {\n const { $model, $showDelete, indexRoute } = useComputeds(props, ctx);\n\n function handleCancel() {\n PacienteState.resetModel();\n\n return useRouter().push(indexRoute);\n }\n\n const { $form, emitSubmit, emitDelete } = usePacienteForm({\n props,\n ctx,\n $model,\n });\n\n return () => {\n const defaultSlot = ctx.slots.default?.({ $form });\n\n return (\n \n \n {defaultSlot}\n \n \n );\n };\n },\n});\n\nfunction useComputeds(props: IProps, ctx: SetupContext) {\n const indexRoute = Routes.app.pacientes.index;\n\n const $model = useState(s => s.paciente.model);\n\n const { $userIsAdmin } = useAuthInfo();\n\n const $showDelete = computed(\n () => $userIsAdmin.value && !props.noDelete && !$model.value.incompleto,\n );\n\n return {\n $model,\n indexRoute,\n $userIsAdmin,\n $showDelete,\n };\n}\n\nfunction usePacienteForm({\n props,\n ctx,\n $model,\n}: {\n props: IProps;\n ctx: SetupContext;\n $model: ComputedRef;\n}) {\n const $modelChanged = useState(s => s.paciente.modelChanged);\n\n const $requireFones = computed(\n () =>\n !$model.value.telefones.celular && !$model.value.telefones.telefoneCasa,\n );\n\n return useFormConfig({\n page: props.page,\n ctx,\n initialValue: $model.value,\n mapValueToValidate: () => $model.value,\n mapSchema: () => pacienteDadosPessoaisForm($requireFones),\n async loadEditCallback({ id }) {\n if ($modelChanged.value) return;\n\n const editValue = await PacienteService.getById(id);\n\n if (!editValue) return redirectError(404);\n\n const parentes: IPacienteParenteModel[] = editValue.parentes || [];\n const convenios: IPacienteConvenioFormModel[] = (\n editValue.convenios || []\n ).map(pacienteConvenioToFormModel);\n\n PacienteState.setModel({\n model: {\n id: editValue.id,\n createdAt: editValue.createdAt,\n incompleto: editValue.incompleto,\n parentes,\n convenios,\n geral: {\n nome: editValue.nome,\n codigo: editValue.codigo,\n dataNascimento: editValue.dataNascimento,\n sexo: editValue.sexo,\n email: editValue.email,\n cpf: editValue.cpf,\n rg: editValue.rg,\n comoConheceu: editValue.comoConheceu,\n observacao: editValue.observacao,\n },\n telefones: {\n celular: editValue.celular,\n telefoneCasa: editValue.telefoneCasa,\n telefoneTrabalho: editValue.telefoneTrabalho,\n aceitaSms: editValue.aceitaSms,\n },\n endereco: {\n enderecoCep: editValue.enderecoCep,\n enderecoLogradouro: editValue.enderecoLogradouro,\n enderecoNumero: editValue.enderecoNumero,\n enderecoComplemento: editValue.enderecoComplemento,\n enderecoBairro: editValue.enderecoBairro,\n enderecoCidade: editValue.enderecoCidade,\n enderecoUf: editValue.enderecoUf,\n enderecoPais: editValue.enderecoPais,\n },\n dadosComplementares: {\n naturalidade: editValue.naturalidade,\n naturalidadeUf: editValue.naturalidadeUf,\n nacionalidade: editValue.nacionalidade,\n etnia: editValue.etnia,\n religiao: editValue.religiao,\n estadoCivil: editValue.estadoCivil,\n escolaridade: editValue.escolaridade,\n profissao: editValue.profissao,\n obito: editValue.obito,\n causaMortis: editValue.causaMortis,\n },\n outrasInformacoes: {\n cns: editValue.cns,\n informacoesAdicionais: editValue.informacoesAdicionais,\n },\n imagem: {\n imagemId: editValue.imagem?.id || null,\n url:\n editValue.imagem?.thumbnailUrl || editValue.imagem?.url || null,\n },\n },\n modelChanged: false,\n });\n },\n validationErrorCallback: () => PacienteState.setHasError(true),\n });\n}\n","import { PacienteService } from '@/lib/services';\nimport { PacienteState } from '@/store/modules/paciente.store';\nimport { computed, SetupContext } from '@vue/composition-api';\nimport { useState } from '.';\nimport { useFormPage } from './form/useFormPage';\nimport { useRoute } from './utils/useRouter';\n\nexport function usePaciente(ctx: SetupContext) {\n const $model = useState(s => s.paciente.model);\n\n const agendamentoId = useRoute().query.aid as string | null;\n\n const pacienteId = useRoute().params.id || null;\n\n PacienteState.setId(pacienteId);\n\n const $title = computed(() => {\n if ($model.value.geral.nome) {\n return `Paciente: ${$model.value.geral.nome}`;\n }\n return pacienteId ? 'Editar Paciente' : 'Novo Paciente';\n });\n\n async function handleDelete(id: string) {\n return PacienteService.delete(id);\n }\n\n const { page, handleSubmit, isEdit } = useFormPage({\n ctx,\n async submitCallback() {\n if (pacienteId) {\n return PacienteService.update({\n id: pacienteId,\n model: $model.value,\n agendamentoId,\n });\n } else {\n return PacienteService.create($model.value);\n }\n },\n });\n\n return {\n agendamentoId,\n pacienteId,\n $model,\n $title,\n page,\n isEdit,\n handleSubmit,\n handleDelete,\n };\n}\n","import { IndexDataTable } from '@/components/datatable/IndexDataTable';\nimport { MyPage } from '@/components/page/MyPage';\nimport { useValue } from '@/lib/composables';\nimport { usePaciente } from '@/lib/composables/usePaciente';\nimport { createComponent } from '@/lib/vue';\nimport { IDataTableHeader } from '@/typings';\n\nexport default createComponent({\n name: 'PacienteHistoricoConsultasPage',\n setup(props, ctx) {\n const { $title } = usePaciente(ctx);\n\n const [$items] = useValue([]);\n\n const headers: IDataTableHeader[] = [\n {\n text: 'Data',\n value: 'data',\n },\n {\n text: 'Horário',\n value: 'hora',\n },\n {\n text: 'Profissional',\n value: 'profissional',\n },\n {\n text: 'Procedimento',\n value: 'procedimento',\n },\n {\n text: 'Status',\n value: 'status',\n },\n ];\n\n return () => (\n \n \n \n );\n },\n});\n","import { createComponent } from '@/lib/vue';\n\ninterface IProps {\n title: string;\n}\n\nexport const ContextSidebarMenuHeader = createComponent({\n name: 'ContextSidebarMenuHeader',\n props: {\n title: { type: String, required: true },\n },\n setup(props, ctx) {\n return () => (\n
\n \n {props.title}\n \n\n \n
\n );\n },\n});\n\nexport default ContextSidebarMenuHeader;\n","import { MyIcons } from '@/lib/helpers/MyIcons';\nimport { createComponent } from '@/lib/vue';\nimport { IItem, IMenuSelected } from '@/typings';\nimport { computed, ComputedRef, Ref } from '@vue/composition-api';\nimport isString from 'lodash/isString';\n\ninterface IProps {\n selected: Array;\n menus: readonly IMenuSelected[];\n}\n\nexport const BtnSelectedRows = createComponent({\n name: 'BtnSelectedRows',\n props: {\n selected: { type: Array, required: true },\n menus: { type: Array, required: true },\n },\n setup(props, ctx) {\n const $show = computed(\n () => !!props.selected.length && !!props.menus.length,\n );\n\n const $label = computed(() => {\n const num = props.selected.length;\n const label = num > 1 ? 'selecionados' : 'selecionado';\n\n return `${num} ${label}`;\n });\n\n const $ids = computed(() =>\n props.selected.map(v => (isString(v) ? v : v.id)),\n );\n\n return () => (\n \n {$show.value && (\n \n {listMenus({ props, $ids })}\n \n )}\n \n );\n },\n});\n\nconst menuActivator =\n ($label: Ref) =>\n ({ on }) =>\n (\n \n {MyIcons.selectedRows}\n\n {$label.value}\n\n {MyIcons.menuDown}\n \n );\n\nconst listMenus = ({\n props,\n $ids,\n}: {\n props: IProps;\n $ids: ComputedRef;\n}) => (\n \n {props.menus.map(menu => (\n menu.action($ids.value, props.selected)}\n >\n \n {menu.icon}\n \n\n \n {menu.text}\n \n \n ))}\n \n);\n","import { IndexDataTable } from '@/components/datatable/IndexDataTable';\nimport { InputSearch } from '@/components/form/inputs/InputSearch';\nimport { MyPage } from '@/components/page/MyPage';\nimport { QueryGraphql } from '@/graphql/query';\nimport { useValue } from '@/lib/composables';\nimport { useQueryConfig } from '@/lib/composables/useQueryConfig';\nimport { useRouter } from '@/lib/composables/utils/useRouter';\nimport { formatTelefone } from '@/lib/form';\nimport { DateHelpers } from '@/lib/helpers/date.helpers';\nimport { pacienteWhere } from '@/lib/helpers/models/paciente';\nimport { PacienteService } from '@/lib/services';\nimport { createComponent } from '@/lib/vue';\nimport { Routes } from '@/routes/routes';\nimport { PacienteState } from '@/store/modules/paciente.store';\nimport {\n IDataTableHeader,\n IIndexDataTableActions,\n IIndexDataTableButton,\n IPacienteItem,\n IPacientesQuery,\n IPacientesQueryVariables,\n} from '@/typings';\nimport { Ref, SetupContext } from '@vue/composition-api';\n\nexport default createComponent({\n name: 'PacientesPage',\n setup(props, ctx) {\n const { $search, actions, btn, headers } = useData(ctx);\n\n const { $data, $loading } = usePacientesQuery($search);\n\n return () => (\n \n \n\n \n \n );\n },\n});\n\nfunction useEvents() {\n function onNovoPaciente() {\n PacienteState.resetModel();\n\n useRouter().push(Routes.app.pacientes.new.index);\n }\n\n function editRouteFn(id: string) {\n return Routes.app.pacientes.edit.index(id);\n }\n\n PacienteState.resetModel();\n\n return { onNovoPaciente, editRouteFn };\n}\n\nfunction useData(ctx: SetupContext) {\n const { onNovoPaciente, editRouteFn } = useEvents();\n\n const [$search] = useValue('');\n\n const btn: IIndexDataTableButton = {\n text: 'Novo Paciente',\n onClick: onNovoPaciente,\n };\n\n const actions: IIndexDataTableActions = {\n editRoute: editRouteFn,\n removeMany: PacienteService.deleteMany,\n };\n\n const headers: IDataTableHeader[] = [\n {\n text: 'Nome',\n value: 'nome',\n mapValue: v => v.nome,\n to: Routes.app.prontuario,\n },\n {\n text: 'Telefone',\n value: 'telefone',\n mapValue: v => v.telefone,\n },\n {\n text: 'Código',\n value: 'codigo',\n mapValue: v => v.codigo,\n },\n {\n text: 'Data de nascimento',\n value: 'dataNascimento',\n mapValue: v => v.dataNascimento,\n },\n {\n text: 'Convênios',\n value: 'convenios',\n mapValue: v => v.convenios,\n },\n ];\n\n return { $search, btn, actions, headers };\n}\n\nfunction usePacientesQuery($search: Ref) {\n return useQueryConfig<\n IPacientesQuery,\n IPacienteItem[],\n IPacientesQueryVariables\n >({\n query: QueryGraphql.PacientesQuery,\n variables: () => ({ where: pacienteWhere($search.value) }),\n mapData: result =>\n result?.pacientes.nodes.map(v => ({\n id: v.id,\n nome: v.nome,\n telefone: formatTelefone(v.celular || v.telefoneCasa),\n codigo: v.codigo,\n dataNascimento: DateHelpers.formatDate(v.dataNascimento),\n convenios: v.convenios?.map(v => v.convenio.nome).join(', '),\n })) || [],\n });\n}\n","import { SetupContext } from '@vue/composition-api';\n\nexport const bindProps = props => ({ attrs: props });\n\nexport const passDownScopedSlots = (scopedSlots: SetupContext['slots']) =>\n Object.entries(scopedSlots).reduce(\n (obj, [slotName, slot]) => ({\n ...obj,\n [slotName]: props => slot && slot(props),\n }),\n {} as any,\n );\n","import { useValue } from '@/lib/composables';\nimport { passDownScopedSlots } from '@/lib/helpers/jsx';\nimport { MyIcons } from '@/lib/helpers/MyIcons';\nimport { createComponent } from '@/lib/vue';\nimport {\n IIndexDataTableActions,\n IIndexDataTableButton,\n IMenuSelected,\n IDataTableHeader,\n} from '@/typings';\nimport { computed, ComputedRef, Ref, SetupContext } from '@vue/composition-api';\nimport { BtnSelectedRows } from '../buttons/BtnSelectedRows';\nimport { PageSection } from '../page/PageSection';\nimport { FormHeader } from '../typography/FormHeader';\nimport { DataTable } from './DataTable';\n\ninterface IProps {\n title?: string | null;\n titleText?: string | null;\n btn?: IIndexDataTableButton | null;\n headers: readonly IDataTableHeader[];\n items?: readonly any[] | null;\n loading?: boolean;\n selectable?: boolean;\n actions?: IIndexDataTableActions | null;\n noSearch?: boolean;\n divider?: boolean;\n draggable?: boolean;\n}\n\ninterface IEvents {\n onReorder: (items: any[]) => void;\n}\n\nexport const IndexDataTable = createComponent({\n name: 'IndexDataTable',\n props: {\n title: { type: String },\n titleText: { type: String },\n btn: { type: Object },\n headers: { type: Array, required: true },\n items: { type: Array, default: () => [] },\n loading: { type: Boolean, default: false },\n selectable: { type: Boolean, default: true },\n actions: { type: Object },\n noSearch: { type: Boolean, default: false },\n divider: { type: Boolean, default: false },\n draggable: { type: Boolean, default: false },\n },\n setup(props, ctx) {\n const [$selected, setSelected] = useValue([]);\n\n const { $button, $selectedMenus, $showActionsRow } = useComputeds({\n props,\n $selected,\n });\n\n const { emitReorder } = useEvents(ctx);\n\n return () => (\n \n {(props.title || props.titleText) && (\n \n )}\n\n {actionsRow({\n ctx,\n $selected,\n $showActionsRow,\n $button,\n $selectedMenus,\n })}\n\n \n \n );\n },\n});\n\nfunction useComputeds({\n props,\n $selected,\n}: {\n props: IProps;\n $selected: Ref;\n}) {\n const $button = computed(() => ({\n to: null,\n onClick: () => null,\n icon: MyIcons.new,\n text: '',\n color: 'primary',\n outlined: false,\n ...props.btn,\n }));\n\n const $showActionsRow = computed(\n () => !!props.btn || (!!props.selectable && !!props.actions?.removeMany),\n );\n\n const $selectedMenus = computed(() => {\n let menus: IMenuSelected[] = [];\n\n const selecionado =\n $selected.value.length > 1 ? 'selecionados' : 'selecionado';\n\n if (props.actions) {\n if (props.actions.removeMany) {\n menus.push({\n text: `Excluir ${selecionado}`,\n icon: MyIcons.remove,\n action: props.actions.removeMany,\n });\n }\n\n if (props.actions.selectedMenus) {\n menus = [...menus, ...props.actions.selectedMenus];\n }\n }\n\n return menus;\n });\n\n return {\n $button,\n $showActionsRow,\n $selectedMenus,\n };\n}\n\nfunction useEvents(ctx: SetupContext) {\n function emitReorder(items: any[]) {\n ctx.emit('reorder', items);\n }\n\n return { emitReorder };\n}\n\nconst actionsRow = ({\n ctx,\n $selected,\n $showActionsRow,\n $button,\n $selectedMenus,\n}: {\n ctx: SetupContext;\n $selected: Ref;\n $showActionsRow: Ref;\n $button: Ref;\n $selectedMenus: ComputedRef;\n}) => {\n const actionsSlot = ctx.slots.actions?.();\n\n return (\n $showActionsRow.value && (\n
\n \n\n \n\n {actionsSlot || (\n \n {$button.value.icon}\n {$button.value.text}\n \n )}\n
\n )\n );\n};\n","import { FormFields } from '@/components/form/fields/FormFields';\nimport { MyForm } from '@/components/form/MyForm';\nimport { PageSection } from '@/components/page/PageSection';\nimport {\n IDialogFormProps,\n IFormEvents,\n useDialogFormConfig,\n} from '@/lib/composables/form/useFormConfig';\nimport { ConstantsHelper } from '@/lib/constants/helper';\nimport { createComponent } from '@/lib/vue';\nimport { IFormSchema, IPacienteParenteModel } from '@/typings';\nimport { SetupContext } from '@vue/composition-api';\n\ninterface IProps extends IDialogFormProps {}\n\ninterface IEvents extends IFormEvents {}\n\nexport const PacienteParentesForm = createComponent({\n name: 'PacienteParentesForm',\n props: {\n page: { type: Object, required: true },\n initialValue: { type: Object },\n },\n setup(props, ctx) {\n const { $form, $schema, emitSubmit, emitCancel } = useParentesForm(\n props,\n ctx,\n );\n\n return () => (\n \n \n \n \n \n );\n },\n});\n\nfunction useParentesForm(props: IProps, ctx: SetupContext) {\n const defaultValue: IPacienteParenteModel = {\n nome: null,\n parentesco: null,\n profissao: null,\n };\n\n return useDialogFormConfig<\n IPacienteParenteModel,\n IFormSchema\n >({\n page: props.page,\n ctx,\n initialValue: props.initialValue || defaultValue,\n mapSchema: () => ({\n nome: {\n label: 'Nome',\n type: 'text',\n validations: {\n required: true,\n },\n },\n parentesco: {\n label: 'Parentesco',\n type: 'autocomplete',\n list: ConstantsHelper.parentescos,\n menuProps: { maxHeight: 150 },\n validations: { required: true },\n },\n profissao: {\n label: 'Profissão',\n type: 'text',\n },\n }),\n });\n}\n","import { IndexDataTable } from '@/components/datatable/IndexDataTable';\nimport { useState } from '@/lib/composables';\nimport { useFormPage } from '@/lib/composables/form/useFormPage';\nimport { getEditValue } from '@/lib/form/edit';\nimport { DialogHelpers } from '@/lib/helpers/dialogs/dialog.helpers';\nimport { uuid } from '@/lib/helpers/uuid';\nimport { PacienteService } from '@/lib/services';\nimport { createComponent } from '@/lib/vue';\nimport { PacienteState } from '@/store/modules/paciente.store';\nimport {\n IFormPage,\n IIndexDataTableActions,\n IIndexDataTableButton,\n IPacienteFormModel,\n IPacienteParenteModel,\n IDataTableHeader,\n} from '@/typings';\nimport { Ref } from '@vue/composition-api';\nimport { PacienteParentesForm } from './PacienteParentesForm';\n\nexport const PacienteParentes = createComponent({\n name: 'PacienteParentes',\n setup(props, ctx) {\n const headers: IDataTableHeader[] = [\n {\n text: 'Nome',\n value: 'nome',\n mapValue: v => v.nome,\n },\n {\n text: 'Parentesco',\n value: 'parentesco',\n mapValue: v => v.parentesco,\n },\n {\n text: 'Profissão',\n value: 'profissao',\n mapValue: v => v.profissao,\n },\n ];\n\n const $model = useState(s => s.paciente.model);\n\n const { page, handleSubmit } = useFormPage({\n ctx,\n async submitCallback(dialogModel: IPacienteParenteModel) {\n if (!dialogModel.id) {\n return handleCreate(dialogModel);\n }\n\n return handleUpdate(dialogModel);\n },\n });\n\n const { btn, actions, handleCreate, handleUpdate } = useActions({\n page,\n handleSubmit,\n $model,\n });\n\n return () => (\n \n );\n },\n});\n\nfunction useActions({\n page,\n handleSubmit,\n $model,\n}: {\n page: IFormPage;\n handleSubmit: (model: IPacienteParenteModel) => Promise;\n $model: Ref;\n}) {\n function showDialog({\n title,\n initialValue,\n }: {\n title: string;\n initialValue: IPacienteParenteModel | null;\n }) {\n return DialogHelpers.system.form({\n title,\n form: PacienteParentesForm,\n page,\n initialValue,\n onSubmit: handleSubmit,\n });\n }\n\n function handleNew() {\n return showDialog({\n title: 'Novo parente',\n initialValue: null,\n });\n }\n\n function handleEdit(id?: string | null) {\n const initialValue = getEditValue(id, $model.value.parentes);\n\n if (!initialValue) return handleNew();\n\n return showDialog({\n title: 'Editar parente',\n initialValue,\n });\n }\n\n function updateModel(parentes: IPacienteParenteModel[]) {\n return PacienteState.setModel({\n model: {\n ...$model.value,\n parentes,\n },\n modelChanged: true,\n });\n }\n\n async function removeMany(allIds: string[], items: IPacienteParenteModel[]) {\n const ids = items.filter(f => !f.new && !!f.id).map(v => v.id!);\n\n const result = await PacienteService.deleteManyParentes(ids, allIds);\n\n if (result) {\n updateModel($model.value.parentes.filter(f => !allIds.includes(f.id!)));\n }\n }\n\n const btn: IIndexDataTableButton = {\n text: 'Novo Parente',\n outlined: true,\n onClick: handleNew,\n };\n\n const actions: IIndexDataTableActions = {\n edit: handleEdit,\n removeMany,\n };\n\n return {\n btn,\n actions,\n\n async handleCreate(dialogModel: IPacienteParenteModel) {\n dialogModel.id = uuid();\n dialogModel.new = true;\n\n updateModel([...$model.value.parentes, dialogModel]);\n\n if ($model.value.id) {\n const parente = await PacienteService.createParente(\n $model.value.id,\n dialogModel,\n );\n\n if (parente) {\n updateModel([\n ...$model.value.parentes.filter(f => f.id !== dialogModel.id),\n parente,\n ]);\n }\n }\n },\n\n async handleUpdate(dialogModel: IPacienteParenteModel) {\n updateModel([\n ...$model.value.parentes.filter(v => v.id !== dialogModel.id),\n dialogModel,\n ]);\n\n if ($model.value.id && !dialogModel.new && dialogModel.id) {\n const parente = await PacienteService.updateParente(\n dialogModel.id,\n dialogModel,\n );\n\n if (parente) {\n updateModel([\n ...$model.value.parentes.filter(f => f.id !== dialogModel.id),\n parente,\n ]);\n }\n }\n },\n };\n}\n","import { usePaciente } from '@/lib/composables/usePaciente';\nimport { createComponent } from '@/lib/vue';\nimport { PacienteForm } from '../components/forms/PacienteForm';\nimport { PacienteParentes } from '../components/parentes/PacienteParentes';\n\nexport default createComponent({\n name: 'PacienteParentesPage',\n setup(props, ctx) {\n const { page, $title, handleSubmit } = usePaciente(ctx);\n return () => (\n \n \n \n );\n },\n});\n","import { EnderecoFields } from '@/components/form/fields/EnderecoFields';\nimport { FormFields } from '@/components/form/fields/FormFields';\nimport { PageSection } from '@/components/page/PageSection';\nimport { IPerfilImagem, PerfilImagem } from '@/components/perfil/PerfilImagem';\nimport { FormHeader } from '@/components/typography/FormHeader';\nimport { useState } from '@/lib/composables';\nimport { pacienteDadosPessoaisForm } from '@/lib/form';\nimport { DateHelpers } from '@/lib/helpers/date.helpers';\nimport { createComponent } from '@/lib/vue';\nimport { Routes } from '@/routes/routes';\nimport { PacienteState } from '@/store/modules/paciente.store';\nimport {\n IEnderecoModel,\n IForm,\n IPacienteDadosPessoaisFormSchema,\n IPacienteFormModel,\n IPacienteGeralModel,\n IPacienteTelefonesModel,\n} from '@/typings';\nimport { computed } from '@vue/composition-api';\n\ninterface IProps {\n form: IForm;\n}\n\nexport const PacienteDadosPessoais = createComponent({\n name: 'PacienteDadosPessoais',\n props: {\n form: { type: Object, required: true },\n },\n setup(props, ctx) {\n const $model = useState(s => s.paciente.model);\n\n const $requireFones = computed(\n () =>\n !$model.value.telefones.celular && !$model.value.telefones.telefoneCasa,\n );\n\n const $schema = computed(() =>\n pacienteDadosPessoaisForm($requireFones),\n );\n\n function handleInputEndereco(endereco: IEnderecoModel) {\n return PacienteState.setModel({\n model: {\n ...$model.value,\n endereco,\n },\n modelChanged: true,\n });\n }\n\n return () => (\n
\n \n\n \n\n \n
\n );\n },\n});\n\ninterface IFieldsProps {\n form: IForm;\n schema: IPacienteDadosPessoaisFormSchema;\n}\n\nconst GeralFields = createComponent({\n name: 'PacienteGeralFields',\n props: {\n form: { type: Object, required: true },\n schema: { type: Object, required: true },\n },\n setup(props, ctx) {\n const $model = useState(s => s.paciente.model);\n\n function handleInputGeral(geral: IPacienteGeralModel) {\n return PacienteState.setModel({\n model: {\n ...$model.value,\n geral,\n },\n modelChanged: true,\n });\n }\n\n async function handleImagemInput({ image, upload }: IPerfilImagem) {\n PacienteState.setImagem({ imagemId: null, url: image });\n\n props.form.page.submitting = true;\n\n PacienteState.setImagem({\n imagemId: await upload,\n url: image,\n });\n\n props.form.page.submitting = false;\n }\n\n function handleImagemRemove() {\n PacienteState.setImagem({ imagemId: null, url: null });\n }\n\n return () => {\n const id = props.form.page.id;\n const createdAt = DateHelpers.formatDateAndHour($model.value.createdAt);\n\n return (\n \n
\n \n\n \n\n {id && (\n \n Ver prontuário\n \n )}\n\n {createdAt && (\n
\n Cadastrado em {createdAt}\n
\n )}\n
\n\n \n
\n );\n };\n },\n});\n\nconst Telefones = createComponent({\n name: 'PacienteTelefones',\n props: {\n form: { type: Object, required: true },\n schema: { type: Object, required: true },\n },\n setup(props, ctx) {\n const $model = useState(s => s.paciente.model);\n\n function handleInputTelefones(telefones: IPacienteTelefonesModel) {\n return PacienteState.setModel({\n model: {\n ...$model.value,\n telefones,\n },\n modelChanged: true,\n });\n }\n\n return () => (\n \n \n \n );\n },\n});\n","import { usePaciente } from '@/lib/composables/usePaciente';\nimport { createComponent } from '@/lib/vue';\nimport { PacienteDadosPessoais } from '../components/forms/PacienteDadosPessoais';\nimport { PacienteForm } from '../components/forms/PacienteForm';\n\nexport default createComponent({\n name: 'PacienteDadosPessoaisPage',\n setup(props, ctx) {\n const { page, $title, handleDelete, handleSubmit } = usePaciente(ctx);\n\n return () => (\n [\n ,\n ],\n }}\n />\n );\n },\n});\n","import { ContextSidebar } from '@/components/sidebars/context/ContextSidebar';\nimport { ContextSidebarMenu } from '@/components/sidebars/context/ContextSidebarMenu';\nimport { useState } from '@/lib/composables';\nimport { MyIcons } from '@/lib/helpers/MyIcons';\nimport { createComponent } from '@/lib/vue';\nimport { Routes } from '@/routes/routes';\nimport { IMenu } from '@/typings';\nimport { computed } from '@vue/composition-api';\n\nexport default createComponent({\n name: 'PacienteEditSidebar',\n setup(props, ctx) {\n const $pacienteId = useState(s => s.paciente.model.id!);\n\n const $hasError = useState(s => s.paciente.hasError);\n\n const $menus = computed(() => {\n const pacienteId = $pacienteId.value;\n\n return [\n {\n text: 'Editar Paciente',\n header: true,\n },\n {\n text: 'Dados pessoais',\n icon: MyIcons.pacienteDadosPessoais,\n to: Routes.app.pacientes.edit.index(pacienteId),\n hasError: $hasError.value,\n },\n {\n text: 'Dados complementares',\n icon: MyIcons.pacienteDadosComplementares,\n to: Routes.app.pacientes.edit.dadosComplementares(pacienteId),\n },\n {\n text: 'Parentes',\n icon: MyIcons.pacienteParentes,\n to: Routes.app.pacientes.edit.parentes(pacienteId),\n },\n {\n text: 'Convênios',\n icon: MyIcons.convenio,\n to: Routes.app.pacientes.edit.convenios(pacienteId),\n },\n {\n text: 'Histórico de consultas',\n icon: MyIcons.historico,\n to: Routes.app.pacientes.edit.historicoConsultas(pacienteId),\n },\n {\n text: 'Log de alterações',\n icon: MyIcons.pacienteLogAlteracoes,\n to: Routes.app.pacientes.edit.logAlteracoes(pacienteId),\n },\n ];\n });\n\n return () => (\n \n \n \n );\n },\n});\n"],"sourceRoot":""}