diff --git a/.github/workflows/nextjs_bundle_analysis.yml b/.github/workflows/nextjs_bundle_analysis.yml index 51e4fd512..c77840bcd 100644 --- a/.github/workflows/nextjs_bundle_analysis.yml +++ b/.github/workflows/nextjs_bundle_analysis.yml @@ -1,3 +1,6 @@ +# Copyright (c) HashiCorp, Inc. +# SPDX-License-Identifier: MPL-2.0 + name: 'Next.js Bundle Analysis' on: @@ -12,24 +15,36 @@ defaults: # change this if your nextjs app does not live at the root of the repo working-directory: ./ +permissions: + contents: read # for checkout repository + actions: read # for fetching base branch bundle stats + pull-requests: write # for comments + jobs: analyze: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - - name: Set up node - uses: actions/setup-node@v1 + - name: Install Node.js + uses: actions/setup-node@v3 with: - node-version: '15.x' + node-version: 18 - name: Install dependencies uses: bahmutov/npm-install@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + # If pnpm is used, you need to switch the previous step with the following one. pnpm does not create a package-lock.json + # so the step above will fail to pull dependencies + # - uses: pnpm/action-setup@v2 + # name: Install pnpm + # id: pnpm-install + # with: + # version: 7 + # run_install: true - name: Restore next build - uses: actions/cache@v2 + uses: actions/cache@v3 id: restore-build-cache env: cache-name: cache-next-build @@ -42,12 +57,7 @@ jobs: - name: Build next.js app # change this if your site requires a custom build command - run: npm run build - env: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - ANALYZE: 'true' - + run: ./node_modules/.bin/next build # Here's the first place where next-bundle-analysis' own script is used # This step pulls the raw bundle stats for the current bundle @@ -55,17 +65,11 @@ jobs: run: npx -p nextjs-bundle-analysis report - name: Upload bundle - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 with: name: bundle path: .next/analyze/__bundle_analysis.json - - name: Upload packages analyzer - uses: actions/upload-artifact@v4 - with: - name: bundle-packages - path: .next/analyze/ - - name: Download base branch bundle stats uses: dawidd6/action-download-artifact@v2 if: success() && github.event.number @@ -91,18 +95,17 @@ jobs: if: success() && github.event.number run: ls -laR .next/analyze/base && npx -p nextjs-bundle-analysis compare - - name: Get comment body + - name: Get Comment Body id: get-comment-body if: success() && github.event.number + # https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings run: | - body=$(cat .next/analyze/__bundle_analysis_comment.txt) - body="${body//'%'/'%25'}" - body="${body//$'\n'/'%0A'}" - body="${body//$'\r'/'%0D'}" - echo ::set-output name=body::$body + echo "body<> $GITHUB_OUTPUT + echo "$(cat .next/analyze/__bundle_analysis_comment.txt)" >> $GITHUB_OUTPUT + echo EOF >> $GITHUB_OUTPUT - name: Find Comment - uses: peter-evans/find-comment@v1 + uses: peter-evans/find-comment@v2 if: success() && github.event.number id: fc with: @@ -110,14 +113,14 @@ jobs: body-includes: '' - name: Create Comment - uses: peter-evans/create-or-update-comment@v1.4.4 + uses: peter-evans/create-or-update-comment@v2 if: success() && github.event.number && steps.fc.outputs.comment-id == 0 with: issue-number: ${{ github.event.number }} body: ${{ steps.get-comment-body.outputs.body }} - name: Update Comment - uses: peter-evans/create-or-update-comment@v1.4.4 + uses: peter-evans/create-or-update-comment@v2 if: success() && github.event.number && steps.fc.outputs.comment-id != 0 with: issue-number: ${{ github.event.number }} diff --git a/lang/es-AR.json b/lang/es-AR.json new file mode 100644 index 000000000..77b0f9587 --- /dev/null +++ b/lang/es-AR.json @@ -0,0 +1,3870 @@ +{ + "+/9Nj7": { + "defaultMessage": "Tu avatar", + "description": "The title text of our image icon in our settings account page, it is displayed when an user hover the icon itself" + }, + "+14i/d": { + "defaultMessage": "Empieza con un verbo de acción (alcanzar, conseguir, conquistar...).", + "description": "The first description of the tip when you are creating a KR." + }, + "+4HFc4": { + "defaultMessage": "Haga clic para empezar a escribir", + "description": "This message appears as a placeholder in the input where the user types their response." + }, + "+F+WGI": { + "defaultMessage": "Alcanzado", + "description": "This message is displayed alongisde with the key-result name, as the prefix for our last update text component when the key-result is achieved" + }, + "+G9goh": { + "defaultMessage": "Ver más...", + "description": "This text is displayed in the button that expands a truncated text" + }, + "+IK11v": { + "defaultMessage": "El dibujo de un fantasma, que indica que estás en una página que no existe", + "description": "This message is the alt message for our box drawing in the unknown error page" + }, + "+O5SW4": { + "defaultMessage": "Un ícono con una serie de trazos verticales. Haz clic y arrástralo para reordenar tus resultados clave", + "description": "The alternative text explaining our reorder icon" + }, + "+OsA1N": { + "defaultMessage": "¿Te ha gustado el contenido?", + "description": "The title of the feedback line" + }, + "+XSqc3": { + "defaultMessage": "Última actualización", + "description": "This prefix is displayed as default in our last updated component" + }, + "+ajAuo": { + "defaultMessage": "No se ha encontrado a nadie", + "description": "This message appears in our user search when we try to search for a given user without any results" + }, + "+avOYN": { + "defaultMessage": "Rutinas", + "description": "The title of the first section of My Week notification tab." + }, + "+kQOSG": { + "defaultMessage": "Buscar equipos", + "description": "The placeholder in explore page" + }, + "+o53JX": { + "defaultMessage": "{quantityofmembers} miembros agregados al equipo con éxito.", + "description": "This message appears in a successful toast when we add more than one user to a team." + }, + "+r3NGz": { + "defaultMessage": "Progreso", + "description": "The title of the second column in our body table at the teams overview report in our dashboard" + }, + "+r5To1": { + "defaultMessage": "Actualizar", + "description": "This message is displayed in a tooltip above the SliderThumb on our sliders" + }, + "/2GFGI": { + "defaultMessage": "El plazo de este objetivo", + "description": "The title text of our calendar icon in our objective accordion, it is displayed when an user hover the icon itself" + }, + "/6mxm9": { + "defaultMessage": "Nombre de la empresa", + "description": "The label of the company name while creating a new workspace" + }, + "/9JMMz": { + "defaultMessage": "Estado", + "description": "This text is displayed in our check-in card, as a title for the right column in the progress increase section" + }, + "/Duwsm": { + "defaultMessage": "Invitar al usuario automáticamente", + "description": "This is the label that defines if we should automatically invite the new user while creating a new workspace" + }, + "/H4hHb": { + "defaultMessage": "Buscar subgrupos", + "description": "This message is displayed inside the child teams section, on the search bar" + }, + "/K30xB": { + "defaultMessage": "No tienes ningún resultado clave", + "description": "The label message that is displayed below our team at work image when the user has no key results in her/his key result view list" + }, + "/Kf8kO": { + "defaultMessage": "Toda la información anterior ha sido generada por Inteligencia Artificial y se basa en las interacciones que se han realizado hasta el momento", + "description": "The message under the Summarized Key Result" + }, + "/SbmLm": { + "defaultMessage": "Una flecha dentro de un círculo, que indica que al hacer clic aquí se restablecerá esta acción", + "description": "This is the desc attribute of our reset icon. It is used by screen readers" + }, + "/VrdI0": { + "defaultMessage": "Un ícono de carpeta", + "description": "The desc message for the Folder icon. This icon is used to ilustrate our key results" + }, + "/aK0UI": { + "defaultMessage": "Un ícono de un avión de papel. Al hacer clic en él, enviarás un comentario", + "description": "The alternative text explaining our paper plane icon" + }, + "/cw+5N": { + "defaultMessage": "Un botón que, al hacer clic en él, dirige al usuario a la pregunta anterior del formulario de rutinas.", + "description": "This message is the description of a button icon that, when clicked, directs the user to the previous question in the routines form." + }, + "/pxKno": { + "defaultMessage": "Despriorizado", + "description": "We use this tag to group every key result that has been deprioritized" + }, + "/uYO8t": { + "defaultMessage": "Perfil", + "description": "The page meta title" + }, + "/vJzGe": { + "defaultMessage": "Un ícono de marcador de página", + "description": "The desc message for the Bookmark icon. This icon is used to ilustrate our key results" + }, + "/xx1Eb": { + "defaultMessage": "Descripción", + "description": "This message is displayed as the label for the second input in our insert key-result drawer" + }, + "0/VsDs": { + "defaultMessage": "Con barrera", + "description": "We use this tag to group every key result with confidence lower than 0" + }, + "02eAuB": { + "defaultMessage": "Esta semana:", + "description": "The text displayed as a prefix in our progress tag label in the team objective accordion button" + }, + "02lpnJ": { + "defaultMessage": "Comentario", + "description": "This text is displayed in some places in our timeline card, showing the type of the card in a friendly name" + }, + "03yPkn": { + "defaultMessage": "Un ícono de brújula", + "description": "The desc message for the Discovery icon. This icon is used to ilustrate our key results" + }, + "0BeMry": { + "defaultMessage": "Modo borrador", + "description": "This message appears how the title of the third card in the Spotlight intro screen." + }, + "0ETGK9": { + "defaultMessage": "Te ha etiquetado en un comentario de una rutina:", + "description": "This message is displayed to describe a notification that occurs when a user is tagged in a comment on a routine." + }, + "0GnOhy": { + "defaultMessage": "Crear un nuevo entorno", + "description": "The page title that our users should see in this page" + }, + "0N9lO8": { + "defaultMessage": "Centro de ayuda", + "description": "MainAppBar user menu second item option" + }, + "0OH4ZL": { + "defaultMessage": "Descripción", + "description": "The label text above the Description section in our key result single page or drawers" + }, + "0OHE6C": { + "defaultMessage": "Numérico", + "description": "This message is displayed inside our key-result format select as the title of the number format" + }, + "0PaRUc": { + "defaultMessage": "No hay nadie aquí", + "description": "This message appears when there is no user in a given list" + }, + "0QlqtQ": { + "defaultMessage": "Última edición en Key Result", + "description": "This string is used as the description for the icon that the last key-result update." + }, + "0R+aEr": { + "defaultMessage": "El resultado clave se ha eliminado correctamente", + "description": "This message appears in a toast after the user removes a key-result" + }, + "0SQt21": { + "defaultMessage": "Nuevo valor", + "description": "This is the label of the check-in form that indicates to which value the user would update her/his key result" + }, + "0d1/rp": { + "defaultMessage": "Indica cuánto ha evolucionado este resultado clave hasta el momento", + "description": "This tooltip explains the fourth column of the key result list" + }, + "0dk0bw": { + "defaultMessage": "El logotipo de LinkedIn. Al hacer clic, visitarás el perfil de LinkedIn de este usuario", + "description": "This message is displayed to screen readers to explain our LinkedIn icon" + }, + "0kNbEF": { + "defaultMessage": "Has desactivado {name} con éxito", + "description": "This message is used as a toast message when we finish deactivating a given user" + }, + "0kb3ea": { + "defaultMessage": "Crear un subequipo", + "description": "This text appears inside the create subteam empty state, a button to create subteams" + }, + "0nY7VZ": { + "defaultMessage": "¡Ahora tu objetivo está en modo borrador!", + "description": "This message appears in a toast when a objective is created." + }, + "0s+qty": { + "defaultMessage": "Cerrar", + "description": "The text is displayed as a heading in the add team modal" + }, + "0t238C": { + "defaultMessage": "Formato del resultado clave", + "description": "This label appears above the third input in our insert key-result drawer" + }, + "0xI/K7": { + "defaultMessage": "Un ícono de micrófono", + "description": "The desc message for the Voice icon. This icon is used to ilustrate our key results" + }, + "1/KiNE": { + "defaultMessage": "Añadir nuevas tareas", + "description": "This text is used as a button when the key-result has no check-marks" + }, + "15BMJI": { + "defaultMessage": "Valor inicial", + "description": "This text is used as a label on the update goal form inside the key-result drawers. That is the first label of that form" + }, + "1B6FoV": { + "defaultMessage": "Alcanzado", + "description": "We use this tag to group every key result with confidence achieved" + }, + "1C5Zpe": { + "defaultMessage": "Añadir nueva tarea", + "description": "This label appears in our key-result sidebar drawer, in the end of our checklist" + }, + "1Dc9iL": { + "defaultMessage": "A última hora", + "description": "This label is displayed if the date difference is less than 1 hour" + }, + "1EdvvO": { + "defaultMessage": "Ahora también puedes gestionar las actividades rutinarias de tu equipo en bud. ¡Visita la página de tu equipo y explora la pestaña de tareas! Crea tareas y realiza un seguimiento del progreso de tus proyectos en un solo lugar :)", + "description": "This message appears on action button that redirect the user to company page on Spotlight tab" + }, + "1IAVGz": { + "defaultMessage": "Tareas pendientes", + "description": "Label for pending tasks selector item" + }, + "1IedeB": { + "defaultMessage": "Un ícono de ubicación que aparece junto a la columna de registro de un usuario en la tabla de indicadores de un equipo", + "description": "A checklist icon that appears next to a user checkin column in a team indicators table" + }, + "1Ve0Ag": { + "defaultMessage": "Un ícono de calendario, que indica que esa es la fecha límite de su resultado clave", + "description": "The description text for the key-result section goal icon" + }, + "1bgaUB": { + "defaultMessage": "Meta", + "description": "This text is used as a label on the update goal form inside the key-result drawers. That is the second label of that form" + }, + "1lccXL": { + "defaultMessage": "¡Esta pregunta es obligatoria!", + "description": "This message appears to indicate that a required question has not been answered." + }, + "1q4B+N": { + "defaultMessage": "Un dibujo de un gato sobre una computadora.", + "description": "The alternative text explaining our cat hanging out image" + }, + "1rAwNV": { + "defaultMessage": "Algunas páginas, que también muestran algunos íconos y otros diseños", + "description": "The alternative text explaining the pages image" + }, + "1ss4IX": { + "defaultMessage": "Un ícono de mensaje", + "description": "The desc message for the Message icon. This icon is used to ilustrate our key results" + }, + "2+RDgf": { + "defaultMessage": "Añadir persona", + "description": "The label text for the add button in our support team popover" + }, + "29ODQz": { + "defaultMessage": "Pero no te preocupes, ¡todo va a salir bien! Mientras trabajamos en ello, puedes hacer clic en el botón de abajo para volver al panel :)", + "description": "The description displayed in our unknown error page" + }, + "2FcRLo": { + "defaultMessage": "CHECK-LISTS", + "description": "The title of the checkLists column." + }, + "2GMiov": { + "defaultMessage": "{user} {key, select, createdTask {creó} active {} other {alteró}} {value, select, true {desarchivó} false {archivó} other {}} {key, select, description {la} goal {la} createdTask {la} priority {la} active {la} other {el}} {key, select, title {título} initialValue {valor inicial} description {descripción} goal {meta} format {formato} type {tipo} ownerId {responsable} owner {responsable} createdTask {tarea} status {status} dueDate {plazo} initialDate {inicio} supportTeamMembers {equipo de apoyo} priority {prioridad} active {tarea} other {}}", + "description": "dsa" + }, + "2Hlwn7": { + "defaultMessage": "EVOLUCIÓN DE LOS RESULTADOS CLAVE", + "description": "The section of the summarize button title" + }, + "2IBj4Z": { + "defaultMessage": "Justo ahora", + "description": "This label is displayed if the date difference is less than 1 minute" + }, + "2QbXJB": { + "defaultMessage": "Lo sentimos, se ha producido un error inesperado. Inténtalo de nuevo más tarde", + "description": "This message appears as an error toast when we have an unknown error while creating a new user" + }, + "2RoJ81": { + "defaultMessage": "Femenino", + "description": "This text is used accross our platform to identify the female gender" + }, + "2Vtwxl": { + "defaultMessage": "Historial de respuestas", + "description": "This message appears as the title of the card that lists the history of retrospectives answered by a user." + }, + "2ao/tW": { + "defaultMessage": "Apellido del usuario inicial", + "description": "The user last name while creating a new workspace" + }, + "2chQA0": { + "defaultMessage": "Hace tiempo que nadie interactúa en este resultado clave. ¿Qué tal si compartes información relevante con el equipo? :)", + "description": "This text gives more details regarding our empty state card in the key result drawers" + }, + "2iSLX9": { + "defaultMessage": "Inglés", + "description": "This message is used as the label for the english language in our locale switcher" + }, + "2idxvz": { + "defaultMessage": "Ver todos", + "description": "MainAppBar user menu first item option" + }, + "2leAvr": { + "defaultMessage": "Mis tareas", + "description": "The header in my tasks title, inside my things page" + }, + "2nlZ3v": { + "defaultMessage": "Visualice y modifique la configuración de su cuenta.", + "description": "The page description that is displayed in Google and screen readers for the settings page." + }, + "2vOg9s": { + "defaultMessage": "Sin acceso", + "description": "The message returned if the user didn't access Bud yet." + }, + "30/f+o": { + "defaultMessage": "¿Está seguro de que desea desactivar {gender, select, MALE {el} FEMALE {la} other {el}} usuari{gender, select, MALE {o} FEMALE {a} other {o}} {name}?", + "description": "This text is used in our delete dialog confirmation to explain to the user what will happen" + }, + "30/oaM": { + "defaultMessage": "OKRs {companypreposition} {company}", + "description": "Company OKR title on the navigation tab" + }, + "32UR9m": { + "defaultMessage": "Se ha incorporado inteligencia artificial para facilitar su comprensión y la de su equipo en relación con la planificación y la estrategia de su empresa.", + "description": "This message appears as the description of the first card in the Spotlight intro screen and talks about the artificial intelligence resources available in Spotlight." + }, + "32YYOa": { + "defaultMessage": "Los OKRs del Plan Individual los define cada persona. No interfieren en el progreso de la empresa.", + "description": "Individual OKR subtitle of the page" + }, + "39q6ig": { + "defaultMessage": "OKRs", + "description": "This message is displayed above the empty state inside the active cycles section at the Team page" + }, + "3AEvLQ": { + "defaultMessage": "¡Atención! {breakline} Estás a punto de publicar este OKR.", + "description": "This message appears in the title of the modal that the user uses to confirm their action of posting an OKR." + }, + "3IsNOi": { + "defaultMessage": "¡Qué gusto verte de nuevo, {name}! :)", + "description": "The page title that our users should see in the dashboard page" + }, + "3MleM/": { + "defaultMessage": "¿Convertirse en equipo principal?", + "description": "The label of the button that makes the team the main team" + }, + "3Vp6v4": { + "defaultMessage": "{priority, select, 1 {Baja prioridad} 2 {Prioridad media} 3 {Alta prioridad} other {Prioridad máxima}}", + "description": "This message appears as the title of the insert Task drawer" + }, + "3XEc2H": { + "defaultMessage": "Género del usuario inicial", + "description": "The user gender while creating a new workspace" + }, + "3cM4+o": { + "defaultMessage": "¡Listo!", + "description": "This text appears on the team redirection page after the user responds to the routines form" + }, + "3dAyni": { + "defaultMessage": "Dibujo de una mujer con un café en la mano y trabajando en una computadora, aparentemente feliz.", + "description": "The alternative text explaining the zen girl image" + }, + "3e+zPY": { + "defaultMessage": "Finalizar", + "description": "This button is displayed with our crop picture modal to submit the form" + }, + "3eSDet": { + "defaultMessage": "Comentario", + "description": "This text refers to feedbacks with comment." + }, + "3gAggt": { + "defaultMessage": "Check-in", + "description": "This is the title of our progress slider popover. It appears when the user moves the slider thumb" + }, + "3maJd0": { + "defaultMessage": "También pueden editar información como el título, la descripción y la meta.", + "description": "The tooltip text for the edition access description" + }, + "3n0bhJ": { + "defaultMessage": "Estos son los resultados clave que forman parte de este objetivo.", + "description": "This tooltip explains the first column of the key result list" + }, + "3q/E0t": { + "defaultMessage": "Ciclos de OKR", + "description": "The subtitle page." + }, + "3rnKj8": { + "defaultMessage": "Comprueba cómo aparecerá tu tarjeta para otros usuarios.", + "description": "This subtitle is displayed as the subtitle of the user card preview section in our user account settings page" + }, + "3vQ6G9": { + "defaultMessage": "Icono de calendario", + "description": "This is the description of the calendar icon." + }, + "3xZZCI": { + "defaultMessage": "Esperado: {progress}%", + "description": "Message to show the expetected progress of the project" + }, + "3ye3aF": { + "defaultMessage": "Significativos", + "description": "This title guides the creation of Objectives." + }, + "44uWtn": { + "defaultMessage": "Un ícono redondeado con un gráfico de líneas en el centro", + "description": "The desc message for the Activity icon. This icon is used to ilustrate our key results" + }, + "4Ac1ls": { + "defaultMessage": "{team} | bud", + "description": "The page title that is displayed in the browser tab" + }, + "4JN6AF": { + "defaultMessage": "Baja productividad", + "description": "The title in the low productivity modal" + }, + "4MCOg+": { + "defaultMessage": "Progreso anual", + "description": "User's yearly progress title" + }, + "4N1d+U": { + "defaultMessage": "Últimas actividades", + "description": "This text is displayed at the top of our timeline, as its title" + }, + "4QPhgQ": { + "defaultMessage": "RETROSPECTIVA SENTIMIENTO", + "description": "The title of the feeling column." + }, + "4WREAh": { + "defaultMessage": "{columnAccessor, select, user {Usuário} team {Equipo} productivity {Productividad semanal} roadblock {Bloqueos en la semana} feeling {Sentimientos de la semana} lastRetrospective {Última retrospectiva} lastAccess {Último acceso} other {OKRs}}", + "description": "This message appears in the header of each column of a Team Indicators table." + }, + "4XHRhd": { + "defaultMessage": "Meta", + "description": "The heading text of the goal section in our key-result drawers" + }, + "4cmOYV": { + "defaultMessage": "Panel", + "description": "MainAppBar menu item that links to \"Dashboard\" page" + }, + "4f4cWE": { + "defaultMessage": "Alto", + "description": "We use this tag to group every key result with confidence higher than 66" + }, + "4iiGjr": { + "defaultMessage": "Empresa", + "description": "This title is displayed as the heading of the definitions menu section" + }, + "4npgR9": { + "defaultMessage": "Usuari{gender, select, MALE {o} FEMALE {a} other {o}} cread{gender, select, MALE {o} FEMALE {a} other {o}} con éxito", + "description": "This message appears when we create a new user as a toast" + }, + "4uGYvu": { + "defaultMessage": "Clima de los equipos {companypreposition} {company}", + "description": "Title of the metrics card" + }, + "53vwrZ": { + "defaultMessage": "Este resultado clave aún es un borrador", + "description": "This message appears as a header in the key result drawer in draft mode." + }, + "59sgdb": { + "defaultMessage": "custom emoji with happy expression", + "description": "This message is used as a description of emoji feeling 4" + }, + "5OEJ9F": { + "defaultMessage": "Al realizar esta acción, el OKR entrará en el ciclo actual y comenzará a contabilizarse su progreso. Todos los comentarios se mantendrán dentro de los KR.", + "description": "This message appears in the description of the modal that the user uses to confirm their action of posting an OKR." + }, + "5Vuq/6": { + "defaultMessage": "{title} Tu respuesta ha sido registrada y ya está disponible para su visualización en los equipos de los que formas parte. ¿A la página de cuál de ellos deseas ir?", + "description": "This text appears on the team redirection page after the user responds to the routines form" + }, + "5XBq+p": { + "defaultMessage": "Mis resultados clave | bud", + "description": "The page title that is displayed in the browser tab" + }, + "5fB6ei": { + "defaultMessage": "Lo sentimos, se ha producido un error inesperado. Inténtalo de nuevo más tarde", + "description": "This message appears in an error toast after the user creates a new key-result but an unexpected error occurred" + }, + "5llJzq": { + "defaultMessage": "¿Está seguro de que desea borrar este {type}?", + "description": "This text is used in our delete modal confirmation to explain to the user what will happen" + }, + "5o6tYt": { + "defaultMessage": "Explorar ciclos anteriores", + "description": "This message appears below the time machine title, as an auxiliary title in a team's page" + }, + "5r52/T": { + "defaultMessage": "una barrera en el", + "description": "This message appears as notification in confidence check in with barrier." + }, + "5th5LY": { + "defaultMessage": "¡Eh! ¿Dónde está la pantalla que estaba aquí?", + "description": "The title displayed in our unknown error page" + }, + "5uf2Lq": { + "defaultMessage": "Estas son las personas que están ayudando a {name} en este resultado clave.", + "description": "The message to guide and describe on what is a support team" + }, + "5yQyMg": { + "defaultMessage": "Explorar", + "description": "The page title that our users should see in the teams explore page" + }, + "608lDc": { + "defaultMessage": "Consulte sus resultados clave y las tareas relacionadas con la estrategia de la empresa.", + "description": "Company OKR subtitle of the page" + }, + "612Wwz": { + "defaultMessage": "Añadir uno OKR {cadence} en el ciclo {cycle} {parent}", + "description": "This message is displayed inside the team page, on the options menu of a cycle" + }, + "61S7n7": { + "defaultMessage": "Ver detalles", + "description": "This message is the description of the option to view details of a user." + }, + "68qL+a": { + "defaultMessage": "Género de la empresa", + "description": "The label of the company gender while creating a new workspace" + }, + "6E9X3c": { + "defaultMessage": "Redefinir", + "description": "This is the button label that is displayed in our reset button" + }, + "6J+ZAo": { + "defaultMessage": "Título", + "description": "This label is displayed above the first input of our form inside the key-result insert drawer" + }, + "6P2s5k": { + "defaultMessage": "Semana actual", + "description": "The title of the current week indicator" + }, + "6RzNYt": { + "defaultMessage": "Un círculo con un signo de interrogación en el centro.", + "description": "This message explains our tooltip icon for screen readers" + }, + "6Syzud": { + "defaultMessage": "Nuevo objetivo", + "description": "This message is used as the draft title of a new objective when an objective is created inside the team page" + }, + "6XgcX8": { + "defaultMessage": "El equipo de apoyo también puede realizar un seguimiento de los resultados clave en los que participa.", + "description": "The tooltip text for the check-ins description" + }, + "6aChVs": { + "defaultMessage": "Esta semana", + "description": "This label is displayed if the date difference is 1 week or less" + }, + "6cUb9x": { + "defaultMessage": "Aspectos destacados de los resultados clave", + "description": "This message appears in the title of the team KRs attention points section." + }, + "6gyBBo": { + "defaultMessage": "Sentimiento", + "description": "This message appears on feeling chart tooltip as the title that suggests what the data means." + }, + "6hOcnz": { + "defaultMessage": "Título obligatorio.", + "description": "The error message that appears in the insert or updated drawer." + }, + "6spUEn": { + "defaultMessage": "Hacer el check-in", + "description": "This message is displayed as a label button when the check-in form is closed in our key result section" + }, + "6uAE86": { + "defaultMessage": "Crear resultado clave", + "description": "This message is used as the label to the create key-result button inside the objective accordion" + }, + "6vXlkc": { + "defaultMessage": "Visualice los datos de avance de la empresa en su conjunto, sus prioridades, un gráfico de expectativas de avance y el nivel de confianza general.", + "description": "The page description that is displayed in Google and screen readers" + }, + "6ws/gr": { + "defaultMessage": "Equipo principal", + "description": "The title of the main team section" + }, + "728+oa": { + "defaultMessage": "Todas las tareas", + "description": "Label for all tasks selector item" + }, + "77LX/s": { + "defaultMessage": "¡Vincula tu perfil a tus redes sociales para facilitar la conexión con tus compañeros!", + "description": "This subtitle is displayed as the subtitle of the social media section in our user account settings page" + }, + "77VQfc": { + "defaultMessage": "para hacer un salto de línea", + "description": "This message appears in the instruction on how to do a line break in the input." + }, + "78OHKs": { + "defaultMessage": "Las notificaciones relacionadas con este resultado clave, como nuevos comentarios, también se enviarán al equipo de soporte.", + "description": "The tooltip text for the notifications description" + }, + "7Czhi+": { + "defaultMessage": "Responder", + "description": "This message appears on action button of the notices banner" + }, + "7GDhfH": { + "defaultMessage": "El ciclo está activo, la función de registro está disponible y se está midiendo el progreso.", + "description": "This string is used to describe the cycles active status option." + }, + "7VhC49": { + "defaultMessage": "Descripción general de los OKRs", + "description": "The title of the OKRs overview" + }, + "7WlK+y": { + "defaultMessage": "Un ícono con forma de diana, que aparece junto con la pregunta sobre cuáles son los objetivos del usuario para la próxima semana.", + "description": "This message appears as the title of the card that lists the history of retrospectives answered by a user." + }, + "7Yw26b": { + "defaultMessage": "Seleccione el año", + "description": "This message is displayed when no year filter was selected" + }, + "7d+540": { + "defaultMessage": "Una flecha hacia arriba, que indica que el menú de selección de ciclos está abierto.", + "description": "This message is displayed to the user screen reader when the year select menu is opened" + }, + "7uQQbf": { + "defaultMessage": "Nombre del período anual", + "description": "The label of the company yearly period while creating a new workspace" + }, + "7xrfSX": { + "defaultMessage": "Con barrera", + "description": "Title of barrier health strategy" + }, + "8+y0VC": { + "defaultMessage": "Nadie", + "description": "This message appears when there is no user to display in a given user list" + }, + "8/Eg3L": { + "defaultMessage": "100", + "description": "This message is displayed inside our key-result format select as the example of the number format" + }, + "81Bqza": { + "defaultMessage": "Un ícono con una X. Al hacer clic en él, cerrarás la máquina del tiempo", + "description": "This message is used by screen readers to explain our time machine close button inside a team's page" + }, + "84XFCQ": { + "defaultMessage": "Porcentaje", + "description": "This message is displayed inside our key-result format select as the title of the percent format" + }, + "8693wE": { + "defaultMessage": "Último check-in", + "description": "This message is displayed alongisde with the header, as the prefix for our last update text component" + }, + "89ola3": { + "defaultMessage": "Un ícono de flecha hacia abajo, que representa cuánto ha retrocedido su empresa en la última semana.", + "description": "This message is used by screen readers to explain our arrow down icon" + }, + "8Ay4MQ": { + "defaultMessage": "No se ha realizado ningún check-in", + "description": "This label is displayed if we do not have any update date to display" + }, + "8B+4Un": { + "defaultMessage": "Utilice este panel para configurar los usuarios de la plataforma.", + "description": "The description page." + }, + "8CjDR7": { + "defaultMessage": "Cancelar", + "description": "This message is used in the cancel button when we are in the confirmation dialog" + }, + "8Cn1Wy": { + "defaultMessage": "{isEditing, select, true {Guardar} other {Crear resultado clave} }", + "description": "This is a button label displayed inside the insert key-result drawer. This is the second button" + }, + "8EZRzi": { + "defaultMessage": "Día de inicio del trimestre", + "description": "The label of the company quarterly date start while creating a new workspace" + }, + "8HUHbX": { + "defaultMessage": "te ha asignado una tarea:", + "description": "This message appears as describe on notification where a user is assigned to a task." + }, + "8LTdv4": { + "defaultMessage": "Objetivo", + "description": "The text of the table head related to the Objective column" + }, + "8PcB2d": { + "defaultMessage": "Sin KR", + "description": "This message appears on table that shows the no members no related KRs." + }, + "8Qz7RP": { + "defaultMessage": "Progreso general de los objetivos en el ciclo actual", + "description": "Subtitle to show on the team ranking page when gamification is disabled" + }, + "8Tdgj3": { + "defaultMessage": "Felicidades", + "description": "This text refers to feedbacks with praisal." + }, + "8YI1Fn": { + "defaultMessage": "Financiero (Real)", + "description": "This message is displayed inside our key-result format select as the title of the coin BRL format" + }, + "8gbub2": { + "defaultMessage": "Status", + "description": "This message is displayed as the column header for the cycle table in the status column" + }, + "8kcr+g": { + "defaultMessage": "Usuario", + "description": "This message is displayed as the user name whenever the user is not defined" + }, + "8l7xtl": { + "defaultMessage": "Salir", + "description": "The label displayed in the user logout button" + }, + "8o0/Bc": { + "defaultMessage": "The arrow icon to the right", + "description": "MainAppBar user menu first item option" + }, + "8wF7XZ": { + "defaultMessage": "Problema", + "description": "This text refers to feedbacks that report a issue." + }, + "91fiAW": { + "defaultMessage": "Icono de campana roja", + "description": "The description of bell icon that warns you to answer the routine. " + }, + "97e4V+": { + "defaultMessage": "¿Creamos una tarea personal?", + "description": "Personal tasks empty state title" + }, + "987MLd": { + "defaultMessage": "Explorar", + "description": "The name of the Explore page, located at \"/explore\"" + }, + "9CP8fU": { + "defaultMessage": "Un ícono de un lápiz, que aparece junto con la pregunta de algún mensaje que el usuario dejó para el equipo.", + "description": "The alternative text explaining our graphic icon" + }, + "9Ni88b": { + "defaultMessage": "Icono que muestra a tres personas, representando un equipo", + "description": "This message is the description of an icon that is presented as the title of the component that presents the Indicators of a team." + }, + "9O5Xaa": { + "defaultMessage": "Su equipo aún no tiene ningún resultado clave anual.", + "description": "Message to show when there are no summary results" + }, + "9OSi6W": { + "defaultMessage": "Fecha de finalización", + "description": "The company quarterly date end input placeholder while creating a new workspace" + }, + "9Y9dS0": { + "defaultMessage": "Nombre del ciclo", + "description": "The description for name cycle field" + }, + "9dXuLd": { + "defaultMessage": "R$ 100", + "description": "This message is displayed inside our key-result format select as the example of the coin BRL format" + }, + "9eQWJv": { + "defaultMessage": "Correo electrónico del usuario inicial", + "description": "The user email while creating a new workspace" + }, + "9iN0R8": { + "defaultMessage": "¡Atención! Esta acción no se puede deshacer", + "description": "This message is used as the default message in our dangerous action confirmation modal" + }, + "9sw0lJ": { + "defaultMessage": "Seleccione su género", + "description": "This is the fallback value that goes on our user account settings page, at the sixth field to update the user informations. The fallback value appears if the user has no data at that field" + }, + "A+zcmM": { + "defaultMessage": "Seleccionar", + "description": "This is the default placeholder while selecting a given value in a select menu" + }, + "A5ct4X": { + "defaultMessage": "Un ícono de documento de texto", + "description": "The desc message for the Document icon. This icon is used to ilustrate our key results" + }, + "A6+vC/": { + "defaultMessage": "El progreso del objetivo refleja el promedio de sus resultados clave y la menor confianza entre ellos.", + "description": "This tooltip explains how the progress of the objective is calculated" + }, + "A6/DXF": { + "defaultMessage": "Guardar", + "description": "This text appears as a browser tooltip above the icon. This icon appears below an EditableTextArea. It is used to save the edition of that field" + }, + "ADoBmy": { + "defaultMessage": "Icono de maletín que representa el índice de productividad", + "description": "The description of the productivty icon" + }, + "AFjRlx": { + "defaultMessage": "sin respuesta", + "description": "The text that appears in the user list, if the user hasn't answered yet" + }, + "AII0ao": { + "defaultMessage": "Visualice sus resultados clave y sus detalles, actualice su progreso y su nivel de confianza.", + "description": "The page description that is displayed in Google and screen readers" + }, + "AO/RyT": { + "defaultMessage": "Copiar título de este resultado clave", + "description": "This message appears in the button that copies the title of the key result" + }, + "AQkkKh": { + "defaultMessage": "Has reactivado {name} con éxito.", + "description": "This message appears in a toast after reactivating a user." + }, + "ATbiBE": { + "defaultMessage": "comentó en su resultado clave:", + "description": "This message is displayed to describe a notification that occurs when someone comments on a user`s KR." + }, + "AjIgUB": { + "defaultMessage": "Busque o seleccione de la lista la {option} que desea vincular a este OKR.", + "description": "This message appears on update modal body." + }, + "AngG7m": { + "defaultMessage": "{today, select, true {hoy a las} false {las} other {las}}", + "description": "The prefix of the hour description" + }, + "B0G29o": { + "defaultMessage": "Bajo", + "description": "We use this tag to group every key result with confidence that is 0 or higher and lower than 25" + }, + "B17Dy1": { + "defaultMessage": "Ok", + "description": "Routine notification settings modal button label" + }, + "B1P9ld": { + "defaultMessage": "Productividad", + "description": "This message appears on productivity chart tooltip as the title that suggests what the data means." + }, + "B2t3EA": { + "defaultMessage": "¡Todo tranquilo por aquí! {breakline}No se han realizado comentarios ni modificaciones en este resultado clave.", + "description": "The emptyState message." + }, + "B3oV9s": { + "defaultMessage": "Objetivo actualizado con éxito", + "description": "This text is displayed as a toast when the user clicks on the check button to update a given objective title" + }, + "B8EqZN": { + "defaultMessage": "Publicar", + "description": "This message is displayed as label of the button used to publish a OKR." + }, + "BEo9Xi": { + "defaultMessage": "Desactivar usuari{gender, select, MALE {o} FEMALE {a} other {o}}", + "description": "This text is used in our deactivate user button in the profile sidebar in our team page" + }, + "BOJlqi": { + "defaultMessage": "Progreso Trimestral", + "description": "User's quarterly progress title" + }, + "BQha3x": { + "defaultMessage": "Tareas", + "description": "This is the title of our checklist section inside the key-result sidebar" + }, + "BTaFbJ": { + "defaultMessage": "Son atrevidos, desafiantes y deben generar cierto nivel de incomodidad por no ser fáciles de alcanzar.", + "description": "This card guides the creation of Objectives." + }, + "BYO0eO": { + "defaultMessage": "Un ícono de papel toro. Al hacer clic en él, eliminará este resultado clave.", + "description": "This text is used by screen readers to explain our trash can icon, used to remove that line in the key-result table" + }, + "BeFobb": { + "defaultMessage": "Esto también eliminará todos los OKRs creados en este ciclo. Esta acción no se puede deshacer.", + "description": "This message is used as the description in our first dialog while removing a cycle" + }, + "BfuWxA": { + "defaultMessage": "Historial de ciclos", + "description": "History, historic, archived items" + }, + "BipZgy": { + "defaultMessage": "Lo sentimos, se ha producido un error inesperado. Inténtalo de nuevo más tarde", + "description": "This text is displayed as a toast when the user tries to update an objective but an error occur" + }, + "BydeYi": { + "defaultMessage": "Inicio", + "description": "The label text inside the Cycle section, above the start date in our key result single page or drawers" + }, + "C+pEn4": { + "defaultMessage": "Usuario", + "description": "The title of the user column" + }, + "C6YmFo": { + "defaultMessage": "Consejos para redactar un buen resultado clave:", + "description": "The title of the tip when you are creating a KR." + }, + "CDO5jp": { + "defaultMessage": "Inactivo", + "description": "This option makes an not-active cycle" + }, + "CEhx3c": { + "defaultMessage": "Información personal", + "description": "This label defines the text on the first menu section option" + }, + "CMMxiV": { + "defaultMessage": "Enviar comentario", + "description": "The title displayed in the tooltip when the user hovers our paper plane icon in our add comment form" + }, + "CQAFfW": { + "defaultMessage": "Si todo sigue así, esperamos alcanzar el resultado.", + "description": "This text explains our tag to the user" + }, + "CQPpEV": { + "defaultMessage": "Activo", + "description": "This string is used to select the active cycles option." + }, + "CS3a8I": { + "defaultMessage": "Activo", + "description": "This option makes an active cycle" + }, + "CWzl6a": { + "defaultMessage": "Sin información", + "description": "The fallback value appears if no value is defined for that text area. This text area is customizable, so it will only appears if no value is defined, and no custom fallback value was provided" + }, + "CgwzlN": { + "defaultMessage": "Un ícono de pausa, que representa bloqueos.", + "description": "The pause icon description" + }, + "CkCxOl": { + "defaultMessage": "Posición del equipo", + "description": "The title of the first column in our body table at the teams overview report in our dashboard" + }, + "Cli69X": { + "defaultMessage": "Fecha de inicio", + "description": "The company quarterly date start input placeholder while creating a new workspace" + }, + "CmE1a+": { + "defaultMessage": "Un ícono de búsqueda. Al hacer clic en él, se abrirá una barra de búsqueda.", + "description": "The alternative text explaining our search icon" + }, + "CmYkJk": { + "defaultMessage": "Productividad", + "description": "The title of the productivity chart" + }, + "CoBhGc": { + "defaultMessage": "Bloqueo", + "description": "The title in the roadblock modal" + }, + "Cr1hEp": { + "defaultMessage": "Check-in", + "description": "This text is displayed as the title of our check-in cards" + }, + "Cu5tci": { + "defaultMessage": "Si lo desea, incluya una descripción para ayudar a sus colegas a comprender por qué este resultado clave es importante y cómo pretende alcanzarlo.", + "description": "This message is displayed as the placeholder for our second input in our key-result drawer" + }, + "D22TnL": { + "defaultMessage": "Responder", + "description": "The text that goes in the answer routine button" + }, + "D7gTso": { + "defaultMessage": "Puede realizar un seguimiento de todo el historial de modificaciones de sus objetivos y resultados clave en un solo lugar.", + "description": "This message appears as the description of the first card in the Spotlight intro screen and talks about the change history in Spotlight." + }, + "D8ZyT4": { + "defaultMessage": "Un ícono de corona que representa a su empresa", + "description": "This message is used by screen readers to explain our crown icon" + }, + "D9XMWI": { + "defaultMessage": "Meta", + "description": "This tooltip is displayed when the user hovers the right side value of our progress bar" + }, + "DB7Ai9": { + "defaultMessage": "Guardar", + "description": "Text in the save action button" + }, + "DEMBaq": { + "defaultMessage": "Un ícono con el signo más, que indica que al hacer clic aquí se abrirá el panel para introducir un resultado clave.", + "description": "This message is used inside the objective accordion panel, on the insert key-result button" + }, + "DHoDPU": { + "defaultMessage": "Guardar", + "description": "This text is displayed as the button that will save the update for our goal update popover inside the key-result drawers" + }, + "DIQdct": { + "defaultMessage": "El objetivo se ha trasladado con éxito.", + "description": "This message appears on a successful toast when update objective team." + }, + "DRKiQR": { + "defaultMessage": "¡Felicidades! Has completado este resultado clave.", + "description": "The text is displayed as a heading in the add team modal" + }, + "DRyY0A": { + "defaultMessage": "Establezca un reto ambicioso pero realista.", + "description": "The third description of the tip when you are creating a KR." + }, + "DWCNAb": { + "defaultMessage": "Paso 3", + "description": "The label of the third step while creating a new workspace" + }, + "DaEVzP": { + "defaultMessage": "Cargar más", + "description": "Button title to load more rows" + }, + "DarZer": { + "defaultMessage": "El plazo no puede ser posterior a 2030.", + "description": "The error message that appears in the insert or updated drawer." + }, + "Dnh8iG": { + "defaultMessage": "de {confidence}", + "description": "This text is displayed as the first line of our confidence tooltip" + }, + "DrLml8": { + "defaultMessage": "Haga clic aquí para cerrar el check-in", + "description": "This message is displayed as the alternative text for the close button in our check-in form" + }, + "DrWtMs": { + "defaultMessage": "Crear equipo", + "description": "The text displayed inside create team button in explore page" + }, + "DsPsDZ": { + "defaultMessage": "Este equipo no tiene ningún subequipo.", + "description": "This message is displayed in our team plage inside the child teams section when that team has no child teams" + }, + "Du7aqJ": { + "defaultMessage": "Cargando...", + "description": "The message in the download button when the CSV is loading" + }, + "Dxj0ms": { + "defaultMessage": "Email", + "description": "This is the label that goes on our user account settings page, at the email field to update the user informations" + }, + "E+0+QH": { + "defaultMessage": "¿Está seguro de que desea eliminar este resultado clave?", + "description": "This message is used as the title in our first dialog while removing a key-result" + }, + "EF3Wh/": { + "defaultMessage": "Descripción obligatoria.", + "description": "The error message that appears in the insert or updated drawer." + }, + "EJLLb9": { + "defaultMessage": "{type, select, feeling {Sentimiento} productivity {Productividad semanal} roadblock {Bloqueos en la semana} other {OKRs}}", + "description": "The title of the modal" + }, + "EZ8KCj": { + "defaultMessage": "Email", + "description": "The user email input placeholder while creating a new workspace" + }, + "EkoIl2": { + "defaultMessage": "Crear nuevo subequipo", + "description": "This message appears as an option in the team page while adding a new user" + }, + "ErVh0y": { + "defaultMessage": "Valor actual", + "description": "This is the label of the check-in form that indicates from which value the user would update her/his key result" + }, + "EvtBM8": { + "defaultMessage": "Progreso acumulado de esta semana", + "description": "This message is displayed weekly progress tag" + }, + "F33Lyk": { + "defaultMessage": "Color del nivel de confianza", + "description": "The text of the table head related to the Confidence Level color column" + }, + "F5kY8c": { + "defaultMessage": "Financeiro (Euro)", + "description": "This message is displayed inside our key-result format select as the title of the coin EUR format" + }, + "F9UdBv": { + "defaultMessage": "Acciones", + "description": "This message is displayed as the column header for the cycle table in the actions column" + }, + "FEd9u8": { + "defaultMessage": "Guardar", + "description": "This message is displayed in the \"SAVE\" button in the checkin form" + }, + "FMvbXp": { + "defaultMessage": "En el ciclo {cadence} {cycle} {parent}", + "description": "This message is displayed inside the team page, on the options menu of a cycle" + }, + "FPhsI3": { + "defaultMessage": "Seleccione sus equipos", + "description": "This is the fallback value that goes on our user account settings page, at the fourth field to update the user informations. The fallback value appears if the user has no data at that field" + }, + "FQaST6": { + "defaultMessage": "Un ícono con una X. Al hacer clic en él, cancelará la edición de este campo.", + "description": "This text is used by screen readers to explain the X icon. This icon appears below an EditableTextArea. It is used to cancel the edition of that field" + }, + "FQpqK8": { + "defaultMessage": "OKRs Anuales Empresa", + "description": "The summary title for the yearly OKRs" + }, + "FRO0CY": { + "defaultMessage": "Perderás todos los registros y comentarios realizados hasta ahora.", + "description": "This message is used as the description in our first dialog while removing a key-result" + }, + "FUoyU3": { + "defaultMessage": "PUBLICAR", + "description": "This is the keyword that the user needs to enter to confirm their action of publishing an OKR." + }, + "FVnpVq": { + "defaultMessage": "Un ícono de flecha hacia la derecha, meramente ilustrativo", + "description": "The alternative text explaining our arrow right icon" + }, + "FWsiRf": { + "defaultMessage": "{confidence, select, barrier {Todos los resultados clave {confidencetext}} other {Todos los resultados clave de {confidencetext}}}", + "description": "The title for the dashboard key results modal" + }, + "Fb0ZAK": { + "defaultMessage": "Deben describir una visión de futuro atractiva y motivadora que merezca la pena el esfuerzo necesario para alcanzarla.", + "description": "This card guides the creation of Objectives." + }, + "FoCix/": { + "defaultMessage": "Buscar", + "description": "The text is displayed as the default placeholder for all our search inputs" + }, + "G/bGAZ": { + "defaultMessage": "Ambiente creado con éxito", + "description": "The title of the toast that appears when we create a new workspace" + }, + "G9m+Ed": { + "defaultMessage": "El acceso de esta persona a Bud ha sido desactivado.", + "description": "This message appears in the tooltip of users with inactive account state." + }, + "GBh0Xf": { + "defaultMessage": "Lo sentimos, ya existe un usuario con este correo electrónico", + "description": "This message is used as an toast error message when we try to create an user with an existing e-mail" + }, + "GHu/pe": { + "defaultMessage": "Un ícono de video", + "description": "The desc message for the Video icon. This icon is used to ilustrate our key results" + }, + "GKl+a6": { + "defaultMessage": "Desactivar cuenta", + "description": "This message is the description of the option to deactivate a user account." + }, + "GQGCSQ": { + "defaultMessage": "Sus equipos", + "description": "MainAppBar user menu first item option" + }, + "GYE/N/": { + "defaultMessage": "{user} Está pasando por un momento difícil. ¿Qué tal si hablamos?", + "description": "This message appears how a call to action when the feeling answer refer the bad something." + }, + "GeAU92": { + "defaultMessage": "Un ícono de configuración. Al hacer clic en él, accederá a la pantalla de configuración de nuestra plataforma.", + "description": "The alternative text explaining our settings icon" + }, + "GeIXxi": { + "defaultMessage": "Este equipo estará vinculado a {teamname}", + "description": "The text is displayed as header description in the add team modal" + }, + "GepLaP": { + "defaultMessage": "Una mano presionando un botón con un ícono de selección de una tarea", + "description": "The alternative text explaining the check item image" + }, + "Gk28Al": { + "defaultMessage": "nuevo!", + "description": "Tag new item" + }, + "GlsTIu": { + "defaultMessage": "{hasBlock, select, y {Si} n {No} other {}}", + "description": "This message appears as a label on the icon representing the user lock status in the last retrospective." + }, + "GnbGX+": { + "defaultMessage": "Sin respuesta la semana pasada", + "description": "The outdated text that goes in the update text, below the routine title, when the routine is outdated." + }, + "GqZyEx": { + "defaultMessage": "POR EQUIPO", + "description": "The title of the team metrics rows" + }, + "GrPUMn": { + "defaultMessage": "Mes de", + "description": "The prefix that appears in our chart tooltip in the key-result sidebar while seeing an yearly key-result" + }, + "Gt9Z3F": { + "defaultMessage": "Página no encontrada | bud", + "description": "The page title of our not found error page that is displayed in the browser tab" + }, + "GuD4W6": { + "defaultMessage": "Plan Individual", + "description": "Individual OKR title of the page" + }, + "GyV44g": { + "defaultMessage": "Resultados-clave", + "description": "Title of key results" + }, + "GzrbYC": { + "defaultMessage": "Confirmación de seguridad", + "description": "This message is displayed as the input label for the danger confirmation resource dialog" + }, + "H/aZym": { + "defaultMessage": "Elige cómo aparecerá tu información para los demás usuarios.", + "description": "This subtitle is displayed as the subtitle of the personal informations section in our user account settings page" + }, + "H/tYPn": { + "defaultMessage": "{name} perderás el acceso a Bud y serás eliminado de los equipos a los que perteneces, pero conservaremos el historial de registros y comentarios realizados hasta ahora.", + "description": "This message appears in the confirmation dialog when we try to deactivate an user." + }, + "H0xYvz": { + "defaultMessage": "Estos son los resultados clave y las tareas asignadas a {username}.", + "description": "The page subtitle for users profile" + }, + "H1CBmX": { + "defaultMessage": "A calendar icon", + "description": "The calendar icon description that goes in the routine reminder notification" + }, + "HAQ+JV": { + "defaultMessage": "Un círculo rojo, que indica que la confianza es baja", + "description": "A brief explanation for screen readers regarding the red status circle" + }, + "HEYvPI": { + "defaultMessage": "Crear Resultado-clave", + "description": "This message appears as the title of the insert Key Result drawer" + }, + "HGE7UV": { + "defaultMessage": "{columnAccessor, select, userKeyResultsOverview {Progreso en krs} lastAccess {Último acceso} checkin {Check-in} checklist {Check-list} lastRetrospectiveAnswer {Retrospectiva} other {}}", + "description": "This message appears in the header of each column of a Team Indicators table." + }, + "HQfOOa": { + "defaultMessage": "Ciclo", + "description": "The label text above the Cycle section in our key result single page or drawers" + }, + "HSCaRw": { + "defaultMessage": "Añadir miembro al equipo", + "description": "This is the title of the modal that is used to add members to a team." + }, + "HhSnBG": { + "defaultMessage": "DESACTIVAR", + "description": "This is the keyword that the user needs to type to deactivate a given user" + }, + "HsEMwj": { + "defaultMessage": "Una flecha larga hacia la derecha, que separa el progreso anterior (a la izquierda) del nuevo progreso del check-in (a la derecha).", + "description": "This text is displayed to screen readers, explaining the right arrow icon in our check-in card" + }, + "I+MSuS": { + "defaultMessage": "Ver menos...", + "description": "This text is displayed in the button that collapses the truncated text" + }, + "I+bKe4": { + "defaultMessage": "Editar este objetivo", + "description": "This is the second option that appears when you open the menu of a given objective inside the accordion button" + }, + "I1Yqrr": { + "defaultMessage": "El botón de señal negativa para el resumen generado.", + "description": "The description for the thumbs down button" + }, + "I3ms2g": { + "defaultMessage": "Icono de filtro con tres líneas", + "description": "The description of three layer icon that filters the answer search." + }, + "I4xjsb": { + "defaultMessage": "Despriorizado", + "description": "Title of deprioritized health strategy" + }, + "I7MY1s": { + "defaultMessage": "Notificaciones", + "description": "Tooltip title of the notification bell." + }, + "I8NCD3": { + "defaultMessage": "Check-in realizado", + "description": "This string is used as the description for the icon that indicates that the key-result is updated" + }, + "ICcB35": { + "defaultMessage": "Mi semana", + "description": "This message appears as the title of the Check-ins and routine option in the notifications modal." + }, + "IGHT6z": { + "defaultMessage": "Perderás todos los resultados clave de este OKR, incluyendo todos los registros y comentarios realizados hasta ahora.", + "description": "This message is used as the modal description while removing a given objective" + }, + "IGODpK": { + "defaultMessage": "Ciclo", + "description": "The text of the table head related to the Cycle column" + }, + "IHNvqx": { + "defaultMessage": "Responsable", + "description": "The label text above the Owner section in our key result single page or drawers" + }, + "INlfvg": { + "defaultMessage": "El plazo no puede ser posterior al inicio.", + "description": "The error message that appears in the insert or updated drawer." + }, + "INrEzv": { + "defaultMessage": "Masculino", + "description": "This is the male option while selecting a gender to create a new user" + }, + "IU2bu6": { + "defaultMessage": "Escriba {keyword} para confirmar su acción", + "description": "This message appears as a placeholder on the input in the danger confirmation modal while deleting a given resource" + }, + "IWr6NM": { + "defaultMessage": "€ 100", + "description": "This message is displayed inside our key-result format select as the example of the coin EUR format" + }, + "IcfW7m": { + "defaultMessage": "Sugerencia", + "description": "This text refers to feedbacks with suggestions." + }, + "IfVw1+": { + "defaultMessage": "Semana", + "description": "The text that appears at the week description" + }, + "Ii3n+d": { + "defaultMessage": "para {confidence}", + "description": "This text is displayed as the second line of our confidence tooltip" + }, + "IldkUk": { + "defaultMessage": "Filtros", + "description": "This is the default placeholder while selecting a given value in a select menu" + }, + "IoZbDV": { + "defaultMessage": "¿Desea eliminar este comentario?", + "description": "This message appears in delete modal confirmation." + }, + "IsUZSc": { + "defaultMessage": "Eliminar este resultado clave", + "description": "This message appears in the button that deletes the key result" + }, + "ItLQef": { + "defaultMessage": "Check-in realizado", + "description": "This message is displayed alongisde with the key-result name, as the prefix for our last update text component" + }, + "J+UxkH": { + "defaultMessage": "{progress, select, 0 {Sin variación} other {variación de {signal}{progress}%}}", + "description": "This label appears in our stamp title. It represents how much your company has increased since last week" + }, + "J0sAff": { + "defaultMessage": "Ciclo {period} eliminado con éxito.", + "description": "This message appears in a toast after the user removes an cycle." + }, + "J3ARiQ": { + "defaultMessage": "OKR Master", + "description": "This string is used to select the user edit role." + }, + "J5Rfuu": { + "defaultMessage": "Cree nuevas tareas desde la barra lateral de los resultados clave en los que trabaja.", + "description": "The empty state message when you have no tasks" + }, + "JB7c65": { + "defaultMessage": "¡Escribe algo para comentar! :)", + "description": "This text is displayed if the user try comment with empty input." + }, + "JBA9+L": { + "defaultMessage": "Explorar ciclos anteriores", + "description": "This text is displayed as a tab where the user can click to change the view below it" + }, + "JHyn+l": { + "defaultMessage": "Esta acción no se puede deshacer", + "description": "This text is giving more details regarding the delete alert in our drawers" + }, + "JItuU0": { + "defaultMessage": "Cosas de {username}", + "description": "The page title for users profile" + }, + "JKqe2t": { + "defaultMessage": "Una caja vacía.", + "description": "The alternative text explain the empty state message from notifications list." + }, + "JNiINj": { + "defaultMessage": "Vea nuestros ejemplos de OKRs", + "description": "This button redirects to the page that teaches about OKRs." + }, + "JXXHeP": { + "defaultMessage": "Mejora", + "description": "This text refers to feedbacks with improvement suggestion." + }, + "JZJeBS": { + "defaultMessage": "Ayer", + "description": "This label is displayed if the last is yesterday" + }, + "Jc/lcm": { + "defaultMessage": "Progreso esperado: {progress}%", + "description": "The tooltip content for the projected progress thumb" + }, + "JcoCf/": { + "defaultMessage": "Promedio semanal", + "description": "The description of the radial graph that indicates the week mean" + }, + "Jdklxm": { + "defaultMessage": "El dibujo de un fantasma, que indica que estás en una página que no existe.", + "description": "This message is the alt message for our box drawing in the not found error page" + }, + "Jj0rRJ": { + "defaultMessage": "Los administradores tienen acceso total para crear, editar y eliminar OKR, usuarios y ciclos estratégicos.", + "description": "This string is used to describe the user admin role selection." + }, + "Jk/gDc": { + "defaultMessage": "Crear objetivo", + "description": "Title of the create objective button" + }, + "Jkg7nT": { + "defaultMessage": "US$ 100", + "description": "This message is displayed inside our key-result format select as the example of the coin USD format" + }, + "Jl5nlI": { + "defaultMessage": "custom emoji with sad expression", + "description": "This message is used as a description of emoji feeling 1" + }, + "Joj9R9": { + "defaultMessage": "PROGRESO", + "description": "The title of the progress column." + }, + "Jw9V43": { + "defaultMessage": "Opciones", + "description": "This message appears how description to menu action options" + }, + "Jx/tRY": { + "defaultMessage": "Nombre del equipo:", + "description": "The label to the team name field in team add/edit modal" + }, + "K03Z5V": { + "defaultMessage": "Periodo", + "description": "The company quarterly period input placeholder while creating a new workspace" + }, + "K04poX": { + "defaultMessage": "NOTIFICACIONES", + "description": "The tooltip text for the notifications text" + }, + "K2Hthp": { + "defaultMessage": "Bajo", + "description": "The description of the pie chart graph that indicates the low status" + }, + "K4Rjji": { + "defaultMessage": "Histórico", + "description": "Title of the history button" + }, + "K8KvrI": { + "defaultMessage": "Mis cosas", + "description": "MainAppBar menu item that links to \"My Things\" page" + }, + "KDE9dq": { + "defaultMessage": "Si realmente está seguro de que desea eliminar el ciclo {period} y todos sus OKR, confirme su acción escribiendo 'ELIMINAR' en el campo siguiente:", + "description": "This message is used as the description in our second dialog while removing a cycle" + }, + "KGQV/U": { + "defaultMessage": "Nombre", + "description": "The company name input placeholder while creating a new workspace" + }, + "KSjqcC": { + "defaultMessage": "%", + "description": "The text of the table head related to the percentual progress column" + }, + "KdYFbe": { + "defaultMessage": "Borrar", + "description": "This text is displayed in our menu, as an anchor to remove that given card" + }, + "KlhDYs": { + "defaultMessage": "Mover este OKR a otro ciclo", + "description": "This is the fourth option that appears when you open the menu of a given objective inside the accordion button" + }, + "L/b/G/": { + "defaultMessage": "Un dibujo de una carpeta abierta sin nada dentro", + "description": "The alternative text explaining the empty folder image" + }, + "L0c5bp": { + "defaultMessage": "Meta", + "description": "This label appears above the fifth input in our insert key-result drawer" + }, + "L2l/Rw": { + "defaultMessage": "CONFIANZA", + "description": "The title of the confidence column." + }, + "L3D4+H": { + "defaultMessage": "Utilice los campos siguientes para realizar{breakline} cambios en este ciclo:", + "description": "The description for cycle modal" + }, + "L4PJe8": { + "defaultMessage": "Editar tarea", + "description": "This message appears as the title of the insert Task drawer when the task is editing" + }, + "L5w0P3": { + "defaultMessage": "Femenino", + "description": "This is the female option while selecting a gender to create a new user" + }, + "LAEhNz": { + "defaultMessage": "Añadir nueva tarea a este KR", + "description": "The label for create KR task button" + }, + "LBZ+5U": { + "defaultMessage": "{mode, select, FILLED {Crear objetivo} other {Continuar}}", + "description": " This message appears on the button to move to the next step in the workflow for creating or editing an objective." + }, + "LDLFtf": { + "defaultMessage": "Acerca de {isMyUser, select, true {usted} other {{gender, select, MALE {o} FEMALE {a} other {o}} {firstName}}}", + "description": "This is the label that goes on our user account settings page, at the seventh field to update the user informations" + }, + "LLhNT/": { + "defaultMessage": "Fecha límite obligatoria.", + "description": "The error message that appears in the insert or updated drawer." + }, + "LQfRhU": { + "defaultMessage": "Ir al perfil", + "description": "This message is the description of the option to redirect to profile of a user." + }, + "LXalbg": { + "defaultMessage": "Alineación", + "description": "This text refers to feedbacks with alignment." + }, + "LavvSV": { + "defaultMessage": "ÚLTIMO CHECK-IN", + "description": "The title of the latestCheckInDate column." + }, + "Lc60Nd": { + "defaultMessage": "Posición actual", + "description": "This message is displayed below the current progress thumb" + }, + "LeHFjM": { + "defaultMessage": "RETROSPECTIVA BLOQUEO", + "description": "The title of the roadBlock column." + }, + "LhZDKa": { + "defaultMessage": "Enviar", + "description": "The label of the button used to submit a new workspace" + }, + "Ln2GmC": { + "defaultMessage": "Género", + "description": "The user gender input placeholder while creating a new workspace" + }, + "Lt+YEZ": { + "defaultMessage": "Fin", + "description": "This message is displayed as the column header for the cycle table in the date end column" + }, + "LvI+KK": { + "defaultMessage": "Idioma", + "description": "This message is the label of our locale switcher in the settings page" + }, + "Lxrv+d": { + "defaultMessage": "Crear ciclo", + "description": "This button is used to create a new cycle." + }, + "M0RYZa": { + "defaultMessage": "Guardar", + "description": "This is a button label displayed inside the insert key-result drawer. This is the second button" + }, + "M2QJC/": { + "defaultMessage": "Sin check-in", + "description": "This message is displayed alongisde with the key-result name, as the prefix for our last update text component" + }, + "M9Jejl": { + "defaultMessage": "Panel | bud", + "description": "The page title that is displayed in the browser tab" + }, + "MAAXnt": { + "defaultMessage": "te incluyó como equipo de apoyo en un KR:", + "description": "This message appears as describe on notification where a user is included on support team of a key-result." + }, + "MANxqE": { + "defaultMessage": "en curso", + "description": "This message appears on header of the doing column" + }, + "MBvlAH": { + "defaultMessage": "cuenta desactivada", + "description": "This string is used to select the not-active cycles option." + }, + "MHv/ZI": { + "defaultMessage": "Este equipo no tiene miembros", + "description": "This message is displayed when there is no users in a given team" + }, + "MIYGie": { + "defaultMessage": "Flecha hacia la derecha", + "description": "The description of the arrow icon." + }, + "MNn3/r": { + "defaultMessage": "Ingrese una descripción haciendo clic aquí", + "description": "This text is displayed as a placeholder for the description section of a key-result, only when that key-result don't have a description" + }, + "Me1wRC": { + "defaultMessage": "Notificaciones", + "description": "This message appears as the title of the Notifications option in the notifications modal." + }, + "MgJJAJ": { + "defaultMessage": "¡Comenta aquí! Para etiquetar a alguien, usa @ :)", + "description": "This text is displayed in our comment input in our key result drawers when it has no value" + }, + "MmRy3Z": { + "defaultMessage": "¡Tarea {isEditing, select, true {editada} other {creada}} con éxito!", + "description": "This message appears after the user creates a new key-result as a toast" + }, + "MpjjOt": { + "defaultMessage": "Bud", + "description": "The default title for our page head meta title value" + }, + "MyqmeF": { + "defaultMessage": "No se pudo crear el ciclo.", + "description": "This message is used as an toast error message when we try to create an cycle" + }, + "N+Tad7": { + "defaultMessage": "Icono de un engranaje. Al hacer clic en él, accederás a nuestra página de configuración", + "description": "GearButton icon desc. This is used by screen readers for accessibility" + }, + "N/fRMX": { + "defaultMessage": "Responder", + "description": "Button to Reply routine on the teams page." + }, + "N70n39": { + "defaultMessage": "Progreso individual basado en el promedio de los resultados clave de este trimestre.", + "description": "Quarterly progress chart tooltip message" + }, + "N8Xs+4": { + "defaultMessage": "ELIMINAR", + "description": "This message is used as a keyword to remove a given objective" + }, + "NADPP1": { + "defaultMessage": "Un ícono de la basura", + "description": "The desc message for the Delete icon. This icon is used to ilustrate our key results" + }, + "NAsOFG": { + "defaultMessage": "Un ícono de flecha. Al hacer clic, se abrirá el gráfico de progreso", + "description": "This text is used by screen readers to explain the arrow icon to open the progress chart in our key-result sidebar" + }, + "ND5T6U": { + "defaultMessage": "Una flecha hacia arriba. Al hacer clic en ella, cerrarás el menú de selección", + "description": "This is the desc attribute of our chevron up icon. It is used by screen readers" + }, + "NMWZmv": { + "defaultMessage": "Este campo debe contener algún valor.", + "description": "This text is used inside the update objective fields when the user tries to make blank a given required field" + }, + "NOqI9i": { + "defaultMessage": "¿Cómo está su confianza?", + "description": "This is the label of the check-in form that indicates to which confidence level the user would update her/his key result" + }, + "NYGW+N": { + "defaultMessage": "Cargo", + "description": "This is the label that goes on our user account settings page, at the fifth field to update the user informations" + }, + "NaLzV2": { + "defaultMessage": "Un botón que, al hacer clic en él, dirige al usuario a la siguiente pregunta del formulario de rutinas.", + "description": "This message is the description of a button icon that, when clicked, directs the user to the next question in the routines form." + }, + "Nafqgw": { + "defaultMessage": "Cancelar check-in", + "description": "This message is displayed as a label button when the check-in form is opened in our key result section" + }, + "Nh5OeF": { + "defaultMessage": "Miembros de este equipo {type, select, feeling {con bajo sentimiento en la semana} productivity {con baja productividad durante la semana} roadblock {con bloqueo semanal} other {sin resultados clave}}", + "description": "The title of the routines modals" + }, + "Nls8gh": { + "defaultMessage": "¡Este resultado clave ha llegado a su fin! :)", + "description": "This text explains our tag to the user" + }, + "NojznG": { + "defaultMessage": "Subgrupos {isLoaded, select, true {({totalTeamsCount})} other{}}", + "description": "This message is displayed inside the explore page, above the child teams section" + }, + "Ny2Pia": { + "defaultMessage": "Los subciclos son los horizontes temporales definidos para la estrategia.{breakingline}Recomendamos crear un ciclo anual para la empresa y un ciclo trimestral para los equipos.", + "description": "The description page." + }, + "O13rH5": { + "defaultMessage": "{completed}/{total}", + "description": "This messages is displayed in our our key-result drawer above the checklist as the count of total completed checkmarks" + }, + "O4iDCM": { + "defaultMessage": "Progreso", + "description": "The title of the progress section in our key-result sidebar" + }, + "O60mSP": { + "defaultMessage": "Eliminar", + "description": "This message appears as a label on the button used to exclude a comment." + }, + "OA7DUJ": { + "defaultMessage": "Nuevo objetivo", + "description": "create new key result" + }, + "OEPd1+": { + "defaultMessage": "¡Estas han sido sus notificaciones recientes!", + "description": "This message appears when no more notifications to listing." + }, + "OEfoTC": { + "defaultMessage": "Un ícono de flechas entrelazadas. Al hacer clic aquí, editarás este campo", + "description": "This message is used by screen readers when the user is focusing on the component which contains the user name and picture. This component is used in multiple places, like: our header, the key-result drawers, and other" + }, + "OErdYA": { + "defaultMessage": "Un ícono de tres puntos, que indica que al hacer clic aquí se expandirá un menú.", + "description": "The description for screen readers regarding the three dots above the objectives accordion" + }, + "OMUZ7w": { + "defaultMessage": "Femenino", + "description": "The female gender for the company while creating a new workspace" + }, + "OS8mCA": { + "defaultMessage": "Cadencia", + "description": "The description for cadence cycle field" + }, + "ObFHxY": { + "defaultMessage": "Cancelar", + "description": "This text appears as a browser tooltip above the icon. This icon appears below an EditableTextArea. It is used to cancel the edition of that field" + }, + "ObeR3M": { + "defaultMessage": "Sentimiento", + "description": "The feeling tooltip label." + }, + "OdFISq": { + "defaultMessage": "¡Tu OKR se ha publicado correctamente!", + "description": "This message appears in the toast messat that indicates the success on publish an OKR." + }, + "OrqJud": { + "defaultMessage": "Un ícono de corona que indica al líder del equipo", + "description": "The crown icon description" + }, + "OwHPoA": { + "defaultMessage": "Aún no se han creado OKR en este Plan Individual", + "description": "This message is displayed as the empty state message inside the User page" + }, + "OwWiN7": { + "defaultMessage": "Crear nuevo usuario", + "description": "This message appears as an option in the team page while adding a new user" + }, + "P+AGjw": { + "defaultMessage": "¿Cómo va el progreso de los equipos?", + "description": "The title of the header section in our teams overview report" + }, + "P/ujgo": { + "defaultMessage": "Un ícono del control de videojuegos", + "description": "The desc message for the Game icon. This icon is used to ilustrate our key results" + }, + "P0g9QE": { + "defaultMessage": "Día de inicio del período anual", + "description": "The label of the company yearly date start while creating a new workspace" + }, + "PFysOr": { + "defaultMessage": "Una flecha hacia abajo. Indica que al hacer clic aquí editarás el objetivo de este resultado clave", + "description": "This message is displayed for screen readers as the description of the arrow down icon inside the key-result drawers. That icon is only displayed when the user hovers the mouse over the goal" + }, + "PINk2C": { + "defaultMessage": "envió un comentario sobre su resultado clave:", + "description": "This message appears as describe on notification where a user sent a feedback on your key-result " + }, + "PKRdQG": { + "defaultMessage": "Enviar", + "description": "This message appears in the button to send routine form answers." + }, + "PSCS+h": { + "defaultMessage": "Nombre", + "description": "The label of the first name field in the create user form" + }, + "PWVeP0": { + "defaultMessage": "Mover este Resultado-Clave a otro objetivo", + "description": "This message appears in the button that copies the title of the key result" + }, + "PYLIcI": { + "defaultMessage": "Meta", + "description": "This message is displayed below the goal thumb" + }, + "Pf0TwP": { + "defaultMessage": "Eliminar objetivo", + "description": "This message is used in the confirmation button while removing a given objective" + }, + "Pkdkh4": { + "defaultMessage": "Mis resultados clave", + "description": "The name of the Key Results page, located at \"/keyResults\"" + }, + "PmauyJ": { + "defaultMessage": "Eliminar este objetivo", + "description": "This is the third option that appears when you open the menu of a given objective inside the accordion button" + }, + "PtUosx": { + "defaultMessage": "Masculino", + "description": "The user gender male option while creating a new workspace" + }, + "PxWBQZ": { + "defaultMessage": "Cargo", + "description": "The label of the role field in the create user form" + }, + "Q+5Uuc": { + "defaultMessage": "Português", + "description": "This is the name of the portuguese language while we are creating a new user" + }, + "Q+b5ro": { + "defaultMessage": "Indicadores de equipo", + "description": "This message is the title of the Indicators section within a team page." + }, + "Q2diI+": { + "defaultMessage": "Icono de flotador. Al hacer clic en él, accederá a nuestra página de soporte técnico", + "description": "SupportButton icon desc. This is used by screen readers for accessibility" + }, + "Q70h6c": { + "defaultMessage": "Português", + "description": "The user locale pt-BR option while creating a new workspace" + }, + "QAyFQz": { + "defaultMessage": "custom emoji with neutral expression", + "description": "This message is used as a description of emoji feeling 3" + }, + "QEsnT8": { + "defaultMessage": "Porcentaje de progreso entre el valor inicial y el objetivo", + "description": "This tooltip explains the fifth column of the key result list" + }, + "QKUmFp": { + "defaultMessage": "Cerrar", + "description": "This message is displayed when an user hovers the close button of our progress slider popover" + }, + "QKkwxU": { + "defaultMessage": "Acciones", + "description": "This message is displayed as the column header for the key-result table in the actions column" + }, + "QMM2q6": { + "defaultMessage": "Área", + "description": "The text that is displayed in the \"team\" values of the metaTitle message whiel the team name is being fetched" + }, + "QOiwwe": { + "defaultMessage": "Icono del reloj", + "description": "The description of the clock icon" + }, + "QP2ffL": { + "defaultMessage": "Recordatorios de rutina", + "description": "Routine notification settings description title" + }, + "QPGUqB": { + "defaultMessage": "Alta confianza", + "description": "We use this tag to group every key result with confidence higher than 66" + }, + "QRn560": { + "defaultMessage": "Progreso", + "description": "This text is used inside our key-result sidebar, in the chart, as the metric name of a key-result progress" + }, + "QRy8b9": { + "defaultMessage": "Se ha creado correctamente un nuevo objetivo", + "description": "This message appears as a toast as soon as the the user clicks to add a new objective in the team page" + }, + "QT4yaV": { + "defaultMessage": "Excelente", + "description": "The description of the pie chart graph that indicates the excellent status" + }, + "QcCy51": { + "defaultMessage": "Valor actual", + "description": "This tooltip is displayed when the user hovers the left side value of our progress bar" + }, + "QcWe3c": { + "defaultMessage": "Un ícono gráfico que aparece junto a la lista del historial de respuestas de un usuario.", + "description": "The alternative text explaining our graphic icon" + }, + "QjDvOT": { + "defaultMessage": "Volver", + "description": "This message appears on the back to previous step button in the workflow for creating or editing an objective." + }, + "QoIlCT": { + "defaultMessage": "OKRs {quarter} Times", + "description": "The summery title for the quarterly OKRs" + }, + "QpkwoM": { + "defaultMessage": "¿Está seguro de que desea eliminar este objetivo?", + "description": "This message is used as the first dialog title while removing an objective" + }, + "Qt52rN": { + "defaultMessage": "Idioma", + "description": "This message appears as a label while we are creating a new user" + }, + "R/9LlP": { + "defaultMessage": "Objetivos", + "description": "Title of objectives" + }, + "R5fgoj": { + "defaultMessage": "Siguiente", + "description": "This message appears on the button to move to the next question in the routines form." + }, + "R6SREn": { + "defaultMessage": "Estos usuarios pueden crear, editar y eliminar cualquier objetivo o resultado clave en Bud.", + "description": "This string is used to describe the user edit role selection." + }, + "R7I25V": { + "defaultMessage": "No tienes ninguna notificación.", + "description": "This message appears in the empty state of the notifications listing." + }, + "R8hOYh": { + "defaultMessage": "Este equipo no tiene OKRs", + "description": "This message is displayed as the empty state message inside the team page" + }, + "RN1J2p": { + "defaultMessage": "Esta semana", + "description": "The title of the third column in our body table at the teams overview report in our dashboard" + }, + "RWaMNF": { + "defaultMessage": "Un ícono de corazón", + "description": "The desc message for the Heart icon. This icon is used to ilustrate our key results" + }, + "RZrZdZ": { + "defaultMessage": "Home", + "description": "The name of the Home page, located at \"/\"" + }, + "RojqOy": { + "defaultMessage": "Responder ahora", + "description": "The text in the button to answer the routine" + }, + "RrW2fc": { + "defaultMessage": "Actualice su cargo", + "description": "This is the fallback value that goes on our user account settings page, at the fifth field to update the user informations. The fallback value appears if the user has no data at that field" + }, + "RwKPpx": { + "defaultMessage": "ELIMINAR", + "description": "This message is used as keyword to delete a key-result" + }, + "S/L2jr": { + "defaultMessage": "Sentimiento", + "description": "The title of the feeling chart" + }, + "S9cIsW": { + "defaultMessage": "Editar equipo", + "description": "The text is displayed as a heading in the add team modal" + }, + "SDzYq9": { + "defaultMessage": "Lo sentimos, se ha producido un error inesperado. Inténtalo de nuevo más tarde.", + "description": "This message appears when the user tries to remove a given objective, but receives an error" + }, + "SE9cO0": { + "defaultMessage": "Editar equipo", + "description": "Team edit button label" + }, + "SK6+Sz": { + "defaultMessage": "Resumen de los equipos", + "description": "The title of the teams overview" + }, + "SL45P4": { + "defaultMessage": "Género", + "description": "The label of the gender field in the create user form" + }, + "SRIfUY": { + "defaultMessage": "Equipo", + "description": "The label of the team field in the create user form" + }, + "SU+pQ8": { + "defaultMessage": "Haga clic en el botón ... para crear el primer resultado clave de este objetivo.", + "description": "This message is displayed in the key-results empty state inside the team page when an objective has no key-results" + }, + "SWl7UB": { + "defaultMessage": "Un ícono con una \"x\". Al hacer clic en él, se cerrará el cuadro de actualización del progreso.", + "description": "This description is used for accessibility. Screen readers uses it when they hover the close icon button in our progress slider popover close button" + }, + "Sau4Na": { + "defaultMessage": "Nombre", + "description": "The user first name input placeholder while creating a new workspace" + }, + "Sb6dkV": { + "defaultMessage": "Ver detalles", + "description": "This option will show a sidebar with the details of the selected user." + }, + "SdgM/R": { + "defaultMessage": "Mi cuenta", + "description": "This title is displayed as the heading of the definitions menu section" + }, + "SenoB2": { + "defaultMessage": "¡La página que está buscando no se ha encontrado!", + "description": "The title displayed in our not found error page" + }, + "ShzOP9": { + "defaultMessage": "Icono de historial", + "description": "Icon description for history icon" + }, + "SiJuyU": { + "defaultMessage": "Un ícono de calendario, que indica que aquí seleccionas el año que deseas filtrar", + "description": "This message is used by screen readers to explain the icon to the user" + }, + "Sm4xi7": { + "defaultMessage": "Máquina del tiempo", + "description": "This message is displayed as the title of the time machine section in a team's page" + }, + "Smwz9L": { + "defaultMessage": "Describe el período en el que se inscribe este resultado clave.", + "description": "This tooltip explains the sixth column of the key result list" + }, + "Sn7K6v": { + "defaultMessage": "Un ícono de campana, al hacer clic en él verás tus notificaciones.", + "description": "The alternative text explaining our notification bell icon" + }, + "SpAXmO": { + "defaultMessage": "Un ícono de calendario. Indica que en ese campo se encuentra el plazo del objetivo.", + "description": "The alternative text explaining our calendar icon in the objective accordion item" + }, + "SrOZ1m": { + "defaultMessage": "Crear usuario", + "description": "The sidebar title on our create user sidebar" + }, + "SsQRcF": { + "defaultMessage": "Una flecha que, al hacer clic en ella, expande la lista de verificación de este resultado clave.", + "description": "This message is used by screen readers to explain the collapse icon in our key-result sidebar on the checklist section" + }, + "SxsVDt": { + "defaultMessage": "Meta", + "description": "This is the label of the check-in form that indicates the goal for her/his key result" + }, + "Sz6ZOB": { + "defaultMessage": "para hacer", + "description": "This message appears on header of the todo column" + }, + "T5iKmP": { + "defaultMessage": "{prefix} {cycle} {suffix}", + "description": "This message displays the cycle name with a given prefix" + }, + "TCJuuU": { + "defaultMessage": "Seleccione al menos un miembro para completar la acción.", + "description": "This message appears as an error Toast when a user tries to add members to a team without selecting at least one." + }, + "TGP9cN": { + "defaultMessage": "Guardar", + "description": "The button to create or edit a cycle on modal" + }, + "TIorHN": { + "defaultMessage": "Existe el riesgo de que no alcancemos el resultado clave, pero seguimos siendo optimistas.", + "description": "This text explains our tag to the user" + }, + "TN6PhK": { + "defaultMessage": "Mi perfil", + "description": "MainAppBar user menu first item option" + }, + "TRwumR": { + "defaultMessage": "Resultado clave publicado", + "description": "dsa" + }, + "TYmE01": { + "defaultMessage": "Progreso actual", + "description": "This tooltip is displayed when the user hovers the percentage progress above the bar" + }, + "TaXVmY": { + "defaultMessage": "Añadir un OKR en este ciclo", + "description": "This message is displayed inside the team page, on the options menu of a cycle" + }, + "TzHlPJ": { + "defaultMessage": "En mantenimiento | bud", + "description": "The page title of our under maintenance error page that is displayed in the browser tab" + }, + "U1tYhb": { + "defaultMessage": "Añadir", + "description": "The label text for the add button in our key result single page or drawers" + }, + "U2EgRG": { + "defaultMessage": "Explorar | bud", + "description": "The page title that is displayed in the browser tab" + }, + "UBruoq": { + "defaultMessage": "Un ícono con varias superficies, una encima de otra", + "description": "The alternative text explaining our stack icon" + }, + "UHVzDU": { + "defaultMessage": "Sin respuesta", + "description": "The message returned if the user has no routine answer." + }, + "UHZQHg": { + "defaultMessage": "Respuestas", + "description": "This message appears in the subtitle of the menu that allows users to browse responses through the history." + }, + "UMWm2g": { + "defaultMessage": "Con Spotlight, la planificación de su estrategia es más colaborativa y accesible para su equipo. Los comentarios son visibles y didácticos.", + "description": "This message appears as the description of the first card in the Spotlight intro screen and talks about feedback in Spotlight." + }, + "UNfjU2": { + "defaultMessage": "desactivado", + "description": "This message appears when we have successfully activate/deactivate a cycle." + }, + "UU1FXI": { + "defaultMessage": "Vincula el ciclo trimestral al ciclo anual al que pertenece.", + "description": "This message appears on tooltip that explain the parent cycle select field." + }, + "UUo+Pt": { + "defaultMessage": "Este equipo es una empresa.", + "description": "The title message for the crown icon. This icon is used to ilustrate when a team card is actually a company" + }, + "UYwpSr": { + "defaultMessage": "Equipo", + "description": "This message is displayed as the column header for the key-result table in the team column" + }, + "UZnhGI": { + "defaultMessage": "Paso 1", + "description": "The label of the first step while creating a new workspace" + }, + "Ua7Hgq": { + "defaultMessage": "Volver", + "description": "Return to overview page icon description" + }, + "UozvhV": { + "defaultMessage": "Usuarios", + "description": "This label defines the text on the first menu section option" + }, + "Uu0OJV": { + "defaultMessage": "Un ícono de imagen. Indica que en ese campo se encuentra su avatar.", + "description": "The alternative text explaining our image icon in the settings account page" + }, + "VBdX86": { + "defaultMessage": "{username} todavía no tiene ninguna tarea a su nombre en los OKR de la empresa.", + "description": "The empty state message header when a user have no tasks" + }, + "VDLkuO": { + "defaultMessage": "Mostrar más", + "description": "This text is displayed in the button that expands a truncated text" + }, + "VFj8OD": { + "defaultMessage": "Título copiado correctamente.", + "description": "This message appears in the toast when you successfully copies the title of the key result" + }, + "VGBT63": { + "defaultMessage": "Despriorizado", + "description": "This message is displayed alongisde with the key-result name, as the prefix for our last update text component when the key-result is deprioritized" + }, + "VHOea1": { + "defaultMessage": "Eliminar resultado clave", + "description": "This message is used as the label in the confirmation button while removing a key-result" + }, + "VLU792": { + "defaultMessage": "Check-in", + "description": "The title of the button to create a check-in in the check-in notifications tab, when clicked it opens the key result drawer." + }, + "VNHZWm": { + "defaultMessage": "Periodo", + "description": "The name label. It is displayed in the Cycle section, as a label of the name property" + }, + "VO76hY": { + "defaultMessage": "Crear resultado clave", + "description": "This is the first option that appears when you open the menu of a given objective inside the accordion button" + }, + "VPJIpc": { + "defaultMessage": "OKRs", + "description": "This message is displayed above the empty state inside the active cycles section at the User page" + }, + "VSS4F8": { + "defaultMessage": "{unit, select, fallback {desde {date}} other {{date}}}", + "description": "This text displays the latest report status for a given component, using a given date logic" + }, + "VUKPKt": { + "defaultMessage": "Cancelar", + "description": "This is a button label displayed inside the insert key-result drawer. This is the first button" + }, + "VW9LHA": { + "defaultMessage": "Correo electrónico para restablecer la contraseña enviado correctamente.", + "description": "This message appears in a toast after the user ask to reset password." + }, + "VWlRuQ": { + "defaultMessage": "Resultado clave", + "description": "This message appears as the title of the insert Key Result drawer" + }, + "VltGNp": { + "defaultMessage": "Un dibujo de fantasma, que indica que este resultado clave no tiene ninguna tarjeta de actividad", + "description": "This text is used by screen readers to explain our ghost image inside our key result drawers" + }, + "VmMAw2": { + "defaultMessage": "Informe {interval, select, current {semanal} quartely {trimestral} other {}}", + "description": "This message is the title of the selected range for team Indicators Download." + }, + "Vytr8A": { + "defaultMessage": "Editar ciclo", + "description": "The title for cycle modal" + }, + "W/yMJH": { + "defaultMessage": "Financiero (Libra)", + "description": "This message is displayed inside our key-result format select as the title of the coin GBP format" + }, + "W37c+K": { + "defaultMessage": "Un ícono de verificación. Representa la cantidad de elementos marcados como completados en su lista de verificación.", + "description": "This text is used by screen readers to explain the check icon in our key-result drawer checklist section" + }, + "W9swHV": { + "defaultMessage": "Configuraciones", + "description": "This tooltip is displayed when the user hovers the settings icon" + }, + "WBbFfE": { + "defaultMessage": "OKRs {quarter} {team}", + "description": "The summery title for the quarterly OKRs" + }, + "WEXvlm": { + "defaultMessage": "Prueba a utilizar este espacio para enumerar tus prioridades del día, por ejemplo :)", + "description": "Personal tasks empty state sub title" + }, + "WIR0FJ": { + "defaultMessage": "Masculino", + "description": "The male gender for the company while creating a new workspace" + }, + "WKevJy": { + "defaultMessage": "Haga clic aquí para editar este campo", + "description": "The title for our pen icon. This message is displayed in our UI as a tooltip" + }, + "WOYUb/": { + "defaultMessage": "Eliminar", + "description": "The text that appears when the task is done." + }, + "WR43/0": { + "defaultMessage": "Aún no tienes ninguna tarea.", + "description": "The empty state message header when you have no tasks" + }, + "Wa22G2": { + "defaultMessage": "Confianza media", + "description": "Title of medium confidence health strategy" + }, + "Wf8no6": { + "defaultMessage": "Resultado clave {isEditing, select, true {editado} other {creado}} com sucesso!", + "description": "This message appears after the user creates a new key-result as a toast" + }, + "WiYOXK": { + "defaultMessage": "Valor inicial", + "description": "This label appears above the fourth input in our insert key-result drawer" + }, + "Wk0KQD": { + "defaultMessage": "Recordatorio desactivado", + "description": "Message displayed when the routine notifications are inactive." + }, + "WkvrVY": { + "defaultMessage": "Buscar equipos", + "description": "The text is displayed as a placeholder in any search input regarding teams" + }, + "Ww9A1r": { + "defaultMessage": "Rellene los campos obligatorios para poder guardar esta tarea.", + "description": "This message appears in an error toast after the users tries to create a key-result but there are some validation errors in the form" + }, + "X+heBq": { + "defaultMessage": "Routine notification settings button", + "description": "Label for routine notification settings button" + }, + "X2V7x7": { + "defaultMessage": "Confianza", + "description": "The text of the table head related to the Confidence Level column" + }, + "X4pt1L": { + "defaultMessage": "Introduce el título de tu objetivo.", + "description": "The description box placeholder" + }, + "X9J+2h": { + "defaultMessage": "Destacados", + "description": "This message is displayed inside the explore page, above the highlights section" + }, + "XCDzMo": { + "defaultMessage": "Botón de opciones", + "description": "This button allows you to choose an option that can allow you to copy the title ou exclude the KR." + }, + "XD8spZ": { + "defaultMessage": "Productividad", + "description": "The productivity tooltip label." + }, + "XENgso": { + "defaultMessage": "Medio", + "description": "We use this tag to group every key result with confidence higher than 33 but lower than 66" + }, + "XEey8C": { + "defaultMessage": "Arrastra hasta el nuevo valor para iniciar un check-in.", + "description": "This tooltip is displayed when the user hovers the thumb of our progress bar" + }, + "XN0ZEi": { + "defaultMessage": "Paso 2", + "description": "The label of the second step while creating a new workspace" + }, + "XNkzYe": { + "defaultMessage": "Un ícono de pin de ubicación", + "description": "The desc message for the Location icon. This icon is used to ilustrate our key results" + }, + "XOLhDn": { + "defaultMessage": "Añadir", + "description": "This message appears on the add a user to the team button when the team is empty." + }, + "XYg5xf": { + "defaultMessage": "Haga clic aquí para editar su configuración", + "description": "The title text of our settings icon, it is displayed when an user hover the icon itself" + }, + "XZF51J": { + "defaultMessage": "Una imagen que representa la ausencia de nuevas notificaciones.", + "description": "The alternative text explain the empty state message when no more notifications to listing." + }, + "XZcPVc": { + "defaultMessage": "Una mujer analizando gráficos y señalando con un dedo.", + "description": "The alternative text explaining the empty item image" + }, + "XbzHtU": { + "defaultMessage": "custom emoji with smile on face", + "description": "This message is used as a description of emoji feeling 5" + }, + "Xcxvrr": { + "defaultMessage": "A calendar icon", + "description": "The description of the calendar icon at the routine notification component." + }, + "XgYpmY": { + "defaultMessage": "Bloqueo", + "description": "The roadblock tooltip label." + }, + "XiSFEr": { + "defaultMessage": "Error inesperado | bud", + "description": "The page title of our unknown error page that is displayed in the browser tab" + }, + "XtA5dv": { + "defaultMessage": "{mode, select, DRAFT {Continuar} other {Concluir}}", + "description": "Submit button title" + }, + "XvdEsU": { + "defaultMessage": "Un ícono de tres puntos, que indica que al hacer clic aquí se expandirá un menú.", + "description": "The description for screen readers regarding the three dots icon in the objectives accordion" + }, + "XyhQJo": { + "defaultMessage": "El ciclo se ha eliminado correctamente", + "description": "This message appears in a toast after the user removes a cycle" + }, + "Y+MtZe": { + "defaultMessage": "Nombre", + "description": "This is the label that goes on our user account settings page, at the first field to update the user informations" + }, + "Y0d9br": { + "defaultMessage": "¡Organice sus actividades en el nuevo módulo de gestión de tareas!", + "description": "This message appears on the news banner to invite the user to learn about the Spotlight feature." + }, + "Y1oyYG": { + "defaultMessage": "Un ícono de flecha hacia arriba, que indica que el progreso ha aumentado.", + "description": "This desc message explains the increase icon for screen readers" + }, + "Y8TWo2": { + "defaultMessage": "Plan Individual", + "description": "Individual OKR title on the navigation tab" + }, + "YFb9UA": { + "defaultMessage": "Ir al perfil", + "description": "This option will redirect the user to the selected user profile." + }, + "YUvWwS": { + "defaultMessage": "Registro", + "description": "It is used as a fallback if the component has no card type defined for it" + }, + "Yc4eh9": { + "defaultMessage": "Hoy", + "description": "This message appears if the user last access is today." + }, + "Ykg0Jh": { + "defaultMessage": "Realizado por {author} {unit, select, fallback {en} other {}} {time}", + "description": "This text is displayed as a helper text, below the check-in card title" + }, + "YmUBcv": { + "defaultMessage": "Editar equipo", + "description": "The tooltip on the gear icon that edits the team" + }, + "Yn5Xbd": { + "defaultMessage": "Duda", + "description": "This text refers to feedbacks with a question." + }, + "YxNkP6": { + "defaultMessage": "Check-in", + "description": "This text is displayed in some places in our timeline card, showing the type of the card in a friendly name" + }, + "YzN13f": { + "defaultMessage": "Un ícono de una diana, que indica que ese es el objetivo de su resultado clave.", + "description": "The description text for the key-result section goal icon" + }, + "Z9w45E": { + "defaultMessage": "Los usuarios con este permiso pueden editar y registrar únicamente los resultados clave de los que forman parte.", + "description": "This string is used to describe the user default role selection." + }, + "ZCWI2f": { + "defaultMessage": "Crear nuevo ciclo", + "description": "The title for cycle modal" + }, + "ZPSK4M": { + "defaultMessage": "Introduzca un título para este resultado clave.", + "description": "The placeholder for the first input in our key-result insert drawer form" + }, + "ZTu/g+": { + "defaultMessage": "Elegir el mejor mazo para magia", + "description": "The message when the Summarized Key Result is loading." + }, + "ZVTdlV": { + "defaultMessage": "Un ícono de boleto de cine", + "description": "The desc message for the TicketStar icon. This icon is used to ilustrate our key results" + }, + "ZXpNJ2": { + "defaultMessage": "Un ícono de gráfico circular", + "description": "The desc message for the Graph icon. This icon is used to ilustrate our key results" + }, + "ZYZI50": { + "defaultMessage": "Compañeros con plan individual {isLoaded, select, true {({totalMembersCount})} other{}}", + "description": "Friends with individual OKRs title" + }, + "ZZ+KxU": { + "defaultMessage": "Sin respuesta", + "description": "This message is displayed inside the empty state on last retrospective overview" + }, + "ZkqTBK": { + "defaultMessage": "AÑADIR", + "description": "This button is used to add selected members to a team." + }, + "ZmSQ0o": { + "defaultMessage": "Aún no has respondido esta semana.", + "description": "The text that appears at the bottom of the answer component if you didn't answer the routine yet" + }, + "Zmffm0": { + "defaultMessage": "Cerrar", + "description": "This message is displayed as the title text for our close icon in our check-in form" + }, + "Zmw2VE": { + "defaultMessage": "Usuarios", + "description": "The subtitle page." + }, + "Zn0eYa": { + "defaultMessage": "Un dibujo de una mujer y un hombre, cada uno con una pieza de un rompecabezas, colaborando para armarlo.", + "description": "The alternative text explaining our team at work image" + }, + "ZvutBL": { + "defaultMessage": "Cadencia", + "description": "This message is displayed as the column header for the cycles table in the cadence column" + }, + "a7sp2+": { + "defaultMessage": "Si", + "description": "This message appears as a description of the first option." + }, + "a8O2l+": { + "defaultMessage": "Un ícono con el signo \"más\". Al hacer clic aquí, se abrirá el menú para introducir un nuevo usuario.", + "description": "This message is used in our new user button while seeing the user list" + }, + "aIGly+": { + "defaultMessage": "Género", + "description": "The company gender input placeholder while creating a new workspace" + }, + "aKyktL": { + "defaultMessage": "Q2", + "description": "This button appears as an empty state while the user is selecting the cycle filter" + }, + "aO+w74": { + "defaultMessage": "La confianza ha cambiado en este check-in:", + "description": "This text is the first line of our icon tooltip when the check-in has a different confidence from the previous check-in" + }, + "aVLR+w": { + "defaultMessage": "100%", + "description": "This message is displayed inside our key-result format select as the example of the percent format" + }, + "acYrvm": { + "defaultMessage": "Un ícono de maletín, que representa la productividad.", + "description": "The suiticase icon description" + }, + "acrz2t": { + "defaultMessage": "Cancelar", + "description": "The label of the cancel button of the create user form" + }, + "agEavf": { + "defaultMessage": "¡Comenta lo que {user} ha compartido!", + "description": "This message appears as placeholder of input." + }, + "ah2n1K": { + "defaultMessage": "Nombre del trimestre", + "description": "The label of the company quarterly period while creating a new workspace" + }, + "aqlUkl": { + "defaultMessage": "Buscar tarea", + "description": "Placeholder of the search task input on the teams page." + }, + "atQu7S": { + "defaultMessage": "Miembro agregado al equipo con éxito.", + "description": "This message appears on a successful toast when we add a user to a team." + }, + "awPBSY": { + "defaultMessage": "ÚLTIMO ACCESO", + "description": "The title of the lastAccess column." + }, + "axEJFy": { + "defaultMessage": "Sin acceso", + "description": "This message appears if the user never accessed the Bud." + }, + "az3ncM": { + "defaultMessage": "¡Atención!{breakline}Esta acción no se puede deshacer.", + "description": "This message is used as the title in our second dialog while removing a cycle" + }, + "bEPnHR": { + "defaultMessage": "responsable", + "description": "This message appears as describe on notification where a user is marked as owner" + }, + "bPInC0": { + "defaultMessage": "Editar ciclo", + "description": "This message is the description of the edit cycle option." + }, + "bZXWCR": { + "defaultMessage": "Patrón", + "description": "This string is used to select the user default role." + }, + "bZYEAl": { + "defaultMessage": "Un círculo con un signo de resta en el centro, que indica que el progreso se ha mantenido igual", + "description": "This desc message explains the neutral icon for screen readers" + }, + "bdYpnS": { + "defaultMessage": "CANCELAR", + "description": "This button is used to close the modal to add team members." + }, + "bdkUKs": { + "defaultMessage": "Equipos", + "description": "This is the label that goes on our user account settings page, at the fourth field to update the user informations" + }, + "bh8jgN": { + "defaultMessage": "nuevo!", + "description": "The text inside the tag to inform new buttons" + }, + "biDODR": { + "defaultMessage": "Un ícono de lupa, que indica que se trata de un campo de búsqueda", + "description": "This text is used by screen readers to explain the search icon in all our search inputs" + }, + "bqCVp4": { + "defaultMessage": "Haga clic aquí para comenzar a escribir un comentario.", + "description": "This is the title text that is displayed if the user hovers the mouse in it" + }, + "c1bily": { + "defaultMessage": "El botón de señal positiva para el resumen generado.", + "description": "The description for the thumbs up button" + }, + "c8KQhI": { + "defaultMessage": "Semana de", + "description": "The prefix that appears in our chart tooltip in the key-result sidebar while seeing a quarterly key-result" + }, + "c8UE59": { + "defaultMessage": "Un ícono de búsqueda", + "description": "The desc message for the Search icon. This icon is used to ilustrate our key results" + }, + "c8x6gV": { + "defaultMessage": "Explorar ciclos anteriores", + "description": "This message is displayed when the user opens the menu inside a given cycle at the team page" + }, + "cGFQsk": { + "defaultMessage": "Lo sentimos, se ha producido un error inesperado. Inténtalo de nuevo más tarde.", + "description": "This message appears as an error toast when we have an unknown error while creating a new cycle" + }, + "cRj0sI": { + "defaultMessage": "Lo sentimos, se ha producido un error inesperado. Inténtalo de nuevo más tarde.", + "description": "This message appears when the user tries to remove a given key-result, but receives an error" + }, + "cVQ/Xo": { + "defaultMessage": "Equipo", + "description": "The title of the team column" + }, + "cbYPl0": { + "defaultMessage": "Otros equipos", + "description": "MainAppBar user menu first item option" + }, + "chwy/J": { + "defaultMessage": "Responder hoy", + "description": "The text that goes in the update text, below the routine title, when the routine is up to date." + }, + "cz6EUM": { + "defaultMessage": "Foto", + "description": "The label of the picture field in the create user form" + }, + "d3sTZR": { + "defaultMessage": "El Resultado Clave se ha trasladado con éxito.", + "description": "This message appears on a successful toast when update objective team." + }, + "d62Bt/": { + "defaultMessage": "Icono de un globo de diálogo", + "description": "The description of the thinking balloon icon" + }, + "dB4Sbq": { + "defaultMessage": "Calculado por el promedio del progreso de todos los objetivos de un equipo y de los \"sub equipos\" que están por debajo de él.", + "description": "This tooltip appears when the user hovers the second column title" + }, + "dBGugM": { + "defaultMessage": "SPOTLIGHT", + "description": "The title of the history in the draft mode." + }, + "dLMgRx": { + "defaultMessage": "Apriete", + "description": "This message appears in the description of the submit the response button in the routines form." + }, + "dRKPeV": { + "defaultMessage": "comentó en su respuesta rutinaria:", + "description": "This message is displayed to describe a notification that occurs when someone comments on a user`s routine." + }, + "dbh5MZ": { + "defaultMessage": "OKRs {companypreposition} {company}", + "description": "Company OKR title of the page" + }, + "dgMLta": { + "defaultMessage": "Enviar comentario", + "description": "This label is displayed in the submit button in our drawers" + }, + "dlYnI1": { + "defaultMessage": "El equipo de apoyo está formado por una o más personas que apoyan al responsable en un resultado clave. En Bud, esto significa", + "description": "The message to guide and describe on what is a support team" + }, + "duv/6P": { + "defaultMessage": "SENTIMIENTO", + "description": "The title of the feeling graph" + }, + "dymB9a": { + "defaultMessage": "Cada resultado clave pertenece a un objetivo.", + "description": "This tooltip explains the second column of the key result list" + }, + "e+r00n": { + "defaultMessage": "Más información", + "description": "A link to a page that talks about the retrospective routine." + }, + "e/i9Ml": { + "defaultMessage": "Icono con tres puntos utilizado en un botón que abre un menú de opciones.", + "description": "Icon with three dots used on a button that opens an options menu." + }, + "e24rnu": { + "defaultMessage": "Cancelar", + "description": "Cancel button title" + }, + "e2FL3I": { + "defaultMessage": "Un ícono con el signo más que, al hacer clic en él, añadirá un nuevo elemento a la checklist", + "description": "This is used by screen readers to understand the insert new check mark icon in our key-result drawer" + }, + "e37pvj": { + "defaultMessage": "Una flecha hacia abajo, que indica que al hacer clic se abrirá la lista de ciclos.", + "description": "This message is displayed to the user screen reader when the year select menu is closed" + }, + "e9PG+t": { + "defaultMessage": "por {author}", + "description": "This message displays the latest report author for a given component" + }, + "eI6jYw": { + "defaultMessage": "Sin información", + "description": "The fallback value appears if no value is defined for that input. This input is customizable, so it will only appears if no value is defined, and no custom fallback value was provided" + }, + "eJH8kc": { + "defaultMessage": "Icono de pausa que representa la cantidad de bloqueos que tiene la empresa.", + "description": "The description of the with barrier icon" + }, + "eQ1tuY": { + "defaultMessage": "¡El objetivo está listo! Ahora es el momento de crear un resultado clave para poder medir y seguir el progreso de ese objetivo.", + "description": "This message is displayed in the draft key-results empty state inside the team page when an objective has no draft key-results" + }, + "eQSkLB": { + "defaultMessage": "Esta semana", + "description": "This message appears with a subtitle in the cad that informs the user feeling status for the current week." + }, + "eUCb55": { + "defaultMessage": "Fin", + "description": "The label text inside the Cycle section, above the end date in our key result single page or drawers" + }, + "eVsyB5": { + "defaultMessage": "Email", + "description": "The label of the email field in the create user form" + }, + "eYhGZW": { + "defaultMessage": "Ninguna opción disponible", + "description": "This message is displayed when the user tries to list the cycles, but none is defined" + }, + "ej/Q3X": { + "defaultMessage": "Cancelar", + "description": "The button to close the modal cycle" + }, + "epM1Xt": { + "defaultMessage": "Añadir", + "description": "This button is used to create a new cycle." + }, + "f2OulU": { + "defaultMessage": "Inicio", + "description": "This message is displayed as the column header for the cycle table in the date start column" + }, + "f6/kwR": { + "defaultMessage": "Este es el progreso acumulado de esta semana", + "description": "This tooltip appears when the user hovers the third column title" + }, + "f6KTde": { + "defaultMessage": "Acciones", + "description": "This message is displayed as the column header for the users table in the actions column" + }, + "fFkPeH": { + "defaultMessage": "Cargo", + "description": "The user role input placeholder while creating a new workspace" + }, + "fI4P80": { + "defaultMessage": "Q1", + "description": "This button appears as an empty state while the user is selecting the cycle filter" + }, + "fSrztQ": { + "defaultMessage": "Comparte tus prioridades, logros y obstáculos con tu equipo. Acompaña e interactúa con tus compañeros sobre su trayectoria. {link}", + "description": "Description of the content of the Retrospective tab on the teams page." + }, + "fVyP58": { + "defaultMessage": "Visualice los objetivos y resultados clave de todos los equipos de esta área, profundice en los detalles del progreso, el nivel de confianza y el propietario.", + "description": "The page description that is displayed in Google and screen readers" + }, + "fW5djG": { + "defaultMessage": "Le permite refinar y modificar sus objetivos y resultados clave antes de publicarlos oficialmente.", + "description": "This message appears as the description of the first card in the Spotlight intro screen and talks about the new draft mode in Spotlight." + }, + "fYQCBk": { + "defaultMessage": "{user} está teniendo dificultades para ser {gender, select, MALE {productivo.} FEMALE {productiva.} other {productivo.}} ¿Qué tal si hablamos de ello?", + "description": "This message appears how a call to action when the productivity is smaller that 4." + }, + "fYwrtN": { + "defaultMessage": "Esta semana", + "description": "This message appears with a subtitle in the cad that informs the user productivity status for the current week." + }, + "faL9vf": { + "defaultMessage": "Un círculo verde, que indica que la confianza es alta", + "description": "A brief explanation for screen readers regarding the green status circle" + }, + "fd6kjy": { + "defaultMessage": "Resultado clave", + "description": "The text of the table head related to the KeyResult column" + }, + "ff3h07": { + "defaultMessage": "Baja confianza", + "description": "We use this tag to group every key result with confidence higher than 33 but lower than 66" + }, + "fsAK9T": { + "defaultMessage": "Seleccionar...", + "description": "This message appears in the input when no user is selected." + }, + "fx39XE": { + "defaultMessage": "Ayuda", + "description": "This tooltip is displayed when the user hovers the support button" + }, + "g0YzvA": { + "defaultMessage": "Alcanzado", + "description": "Title of achieved health strategy" + }, + "g9n6ja": { + "defaultMessage": "Exportar informe del equipo", + "description": "This message is the title of the team Indicators Download Report within a team page." + }, + "gMArPa": { + "defaultMessage": "Bud enviará recordatorios a este equipo por correo electrónico y mediante notificaciones para que todos respondan.", + "description": "Routine notification settings description subtitle" + }, + "gOltd4": { + "defaultMessage": "Un ícono de flecha hacia la derecha que indica que el usuario puede avanzar en el historial para ver otras respuestas de la rutina.", + "description": "The alternative text explaining our graphic icon" + }, + "gTym4f": { + "defaultMessage": "Progreso individual basado en el promedio de los resultados clave de este año.", + "description": "Yearly progress chart tooltip message" + }, + "gUHlz3": { + "defaultMessage": "Sé el primero en comentar la respuesta de {user}!", + "description": "This message appears in the empty state of comments in a user retrospective reply." + }, + "gXiIKg": { + "defaultMessage": "Baja confianza", + "description": "Title of low confidence health strategy" + }, + "gZstKN": { + "defaultMessage": "Estado inicial", + "description": "The description for state cycle field on create cycle form" + }, + "gbO+eS": { + "defaultMessage": "Si realmente está seguro de que desea hacerlo, confirme su acción escribiendo \"{keyword}\" en el campo siguiente:", + "description": "This message is used as our default second stage description in our dangerous confirmation modal" + }, + "gm1hfm": { + "defaultMessage": "Progreso del objetivo acumulado en la semana", + "description": "This tooltip explains regarding our progress tag" + }, + "goSPM7": { + "defaultMessage": "Has eliminado un {type}", + "description": "This text is displayed as the alert title, explaining what resource the user removed" + }, + "gpJ3OX": { + "defaultMessage": "Comprenda el compromiso y el progreso de los miembros de este equipo en Bud", + "description": "This message is the subtitle of the component that presents the Indicators of a team." + }, + "gu4aCE": { + "defaultMessage": "Anual", + "description": "This text is used as prefix for our yearly cadences" + }, + "h4VH9f": { + "defaultMessage": "desactivar usuario", + "description": "This message appears in button to confirm the deactivate user action." + }, + "h6wsCP": { + "defaultMessage": "Un ícono de flecha hacia la izquierda que indica que el usuario puede retroceder en el historial para consultar otras respuestas de la rutina.", + "description": "The alternative text explaining our graphic icon" + }, + "hFma0o": { + "defaultMessage": "Error al crear el entorno", + "description": "The title of the toast that appears when we have an error while creating a new workspace" + }, + "hKx+8w": { + "defaultMessage": "¡Celebra por todo lo alto! Tu esfuerzo y el de tu equipo han valido la pena, ahora estáis aún más cerca de alcanzar vuestros objetivos. Bud ya no te notificará sobre este resultado clave.", + "description": "The text is displayed as a heading in the add team modal" + }, + "hL/jUm": { + "defaultMessage": "TAREAS EN OKRs", + "description": "The title for tasks section in the profile page" + }, + "hMD8CO": { + "defaultMessage": "Anterior", + "description": "The label of the button used to go back while creating a new workspace" + }, + "hMXuTX": { + "defaultMessage": "Masculino", + "description": "This text is used accross our platform to identify the male gender" + }, + "hPJxpx": { + "defaultMessage": "Confianza media", + "description": "We use this tag to group every key result with confidence higher than 33 but lower than 66" + }, + "hUA7Fo": { + "defaultMessage": "Un ícono de verificación que aparece junto a la columna de la lista de verificación de un usuario en la tabla de indicadores de un equipo.", + "description": "A checklist icon that appears next to a user checklist column in a team indicators table" + }, + "hX8RAc": { + "defaultMessage": "¡Atención! Has sido marcado como", + "description": "This message appears as describe on notification where a user is marked as owner" + }, + "hXlVqV": { + "defaultMessage": "Mis tareas personales", + "description": "The heading for the personal tasks section" + }, + "hdWCC9": { + "defaultMessage": "Siguiente", + "description": "The label of the button used to go forward while creating a new workspace" + }, + "hfxyjh": { + "defaultMessage": "Vea nuestros ejemplos de OKRs", + "description": "This is a external link that goes to OKR examples made by Bud." + }, + "hhH9fH": { + "defaultMessage": "Cargo del usuario inicial", + "description": "The user role while creating a new workspace" + }, + "hn3cE7": { + "defaultMessage": "Progreso acumulado de esta semana", + "description": "This helper texts explains since when we are calculating your company progress" + }, + "hohkHN": { + "defaultMessage": "Crear equipo", + "description": "The text is displayed as a heading in the add team modal" + }, + "how6b8": { + "defaultMessage": "Un ícono de flecha hacia la derecha, utilizado en el contexto de un enlace que redirige al usuario a la página donde se habla de la rutina de retrospectiva.", + "description": "A right arrow icon, used in the context of a link that redirects the user to the page where the retrospective routine is discussed." + }, + "huUzRi": { + "defaultMessage": "custom emoji with apathetic expression", + "description": "This message is used as a description of emoji feeling 2" + }, + "hwBdQ9": { + "defaultMessage": "Comenzar", + "description": "This message appears on the button the user uses to start responding to the routine form." + }, + "i3PQl+": { + "defaultMessage": "¡Ciclo {period} {status} con éxito!", + "description": "This message appears when we create a new cycle as a toast" + }, + "i7i3Ew": { + "defaultMessage": "informó {specific} resultado clave:", + "description": "This message is the wrapper that appears on both types of confidence check ins." + }, + "i915bK": { + "defaultMessage": "Los líderes pueden crear, editar y eliminar objetivos y resultados clave de los equipos a los que pertenecen.", + "description": "This string is used to describe the user edit role selection." + }, + "i9bdpU": { + "defaultMessage": "Se ha producido un error inesperado al crear su objetivo. Inténtelo de nuevo más tarde.", + "description": "This message appears as an error toast when the users tries to create a new objective but an error appears" + }, + "iIm/1E": { + "defaultMessage": "te ha mencionado en un comentario:", + "description": "This message is displayed to describe a notification that occurs when a user is tagged in a comment." + }, + "iLO8sl": { + "defaultMessage": "Estas tareas no están directamente relacionadas con un resultado clave. Úsalas para organizar mejor tu día y hacerlo más productivo :)", + "description": "The tooltip that shows when hovering over the personal tasks accordion title" + }, + "iPv+uj": { + "defaultMessage": "Un ícono de una línea recta horizontal, que representa que su empresa no ha evolucionado desde el último evento de check-in", + "description": "This message is used by screen readers to explain our line icon" + }, + "iVxx6N": { + "defaultMessage": "Esta semana", + "description": "This message appears with a subtitle in the cad that informs the user barrier status for the current week." + }, + "iWDn4y": { + "defaultMessage": "Equipo de Apoyo", + "description": "The label text above Support Team section in our key resulg single page or drawers" + }, + "iXbJc5": { + "defaultMessage": "RESULTADOS-CLAVE", + "description": "The title of the keyResults column." + }, + "iXij4+": { + "defaultMessage": "Este resultado clave se ha dejado de lado y se le ha quitado prioridad por el momento.", + "description": "This text explains our tag to the user" + }, + "iZcwRX": { + "defaultMessage": "ACCESO DE EDICIÓN", + "description": "The tooltip text for the edition access text" + }, + "idDZg9": { + "defaultMessage": "Informe del equipo", + "description": "This message is the title of download team report button." + }, + "ie2eTm": { + "defaultMessage": "Resultados-clave de este equipo con {confidence, select, barrier {barrera} confidence {baja confianza} other {check-in tardío}}", + "description": "The title for the dashboard key results modal" + }, + "iivI51": { + "defaultMessage": "Este mes", + "description": "This label is displayed if the date difference is 1 month or less" + }, + "ijCibq": { + "defaultMessage": "Financiero (Dólar)", + "description": "This message is displayed inside our key-result format select as the title of the coin USD format" + }, + "ivvae0": { + "defaultMessage": "Puntos a tener en cuenta en los miembros del equipo", + "description": "This message appears in the title of the team member attention points section." + }, + "j1c4SD": { + "defaultMessage": "PRODUCTIVIDAD", + "description": "The title of the productivity graph" + }, + "j8vYyP": { + "defaultMessage": "Las rutinas de la empresa siempre están disponibles para quien quiera responder, pero los líderes pueden desactivar los recordatorios para que las respuestas sean opcionales en su equipo.", + "description": "Routine notification settings modal subtitle" + }, + "jCjr1X": { + "defaultMessage": "Rellene los campos obligatorios para poder guardar este resultado clave.", + "description": "This message appears in an error toast after the users tries to create a key-result but there are some validation errors in the form" + }, + "jNuy4b": { + "defaultMessage": "Esta persona tiene acceso a Bud.", + "description": "This message appears in the tooltip of users with active account state." + }, + "jRsXuq": { + "defaultMessage": "CHECK-INS", + "description": "The tooltip text for the check-ins text" + }, + "jSUqyI": { + "defaultMessage": "Editar", + "description": "This button allow the user edit the Key Result." + }, + "jV4VhD": { + "defaultMessage": "Eliminar ciclo", + "description": "This message is used as the label in the confirmation button while removing a cycle" + }, + "jXZZd6": { + "defaultMessage": "Volver al presente", + "description": "go back to the present button description" + }, + "jYw0F3": { + "defaultMessage": "Miembros del equipo {isLoaded, select, true {({totalMembersCount})} other{}}", + "description": "This message is displayed inside the explore page, above the members section" + }, + "jjr+Ye": { + "defaultMessage": "El objetivo se ha eliminado correctamente.", + "description": "This message appears in a toast after the user removes an objective" + }, + "jwsMer": { + "defaultMessage": "Último check-in", + "description": "the prefix that is displayed in the last update checkmark." + }, + "jxyYl3": { + "defaultMessage": "Ordenada por el progreso", + "description": "This tooltip appears when the user hovers the first column title" + }, + "jzx+Hl": { + "defaultMessage": "Botón de opciones", + "description": "This button allows you to choose an option that directs the user to the users profile or details." + }, + "k3EFXK": { + "defaultMessage": "El nivel de confianza describe cómo ves tus posibilidades de alcanzar ese resultado clave dentro del plazo establecido.", + "description": "The tooltip of the check-in form. It appears when the user hovers the question mark icon" + }, + "k4LTU8": { + "defaultMessage": "Último día del trimestre", + "description": "The label of the company quarterly date end while creating a new workspace" + }, + "kDC8d3": { + "defaultMessage": "Configuraciones", + "description": "The page title that our users should see in the settings page" + }, + "kHg/gs": { + "defaultMessage": "No tienes ningún resultado clave en ciclos anteriores", + "description": "The label message that is displayed below our team at work image when the user has no key results in her/his key result view list" + }, + "kLkKtK": { + "defaultMessage": "Un círculo amarillo, que indica que la confianza es media", + "description": "A brief explanation for screen readers regarding the yellow status circle" + }, + "kPjmgU": { + "defaultMessage": "Tareas", + "description": "This is the title of the tasks or project tab on the team page." + }, + "kXNgkQ": { + "defaultMessage": "Progreso", + "description": "The text of the table head related to the Progress column" + }, + "kawRcN": { + "defaultMessage": "Cancelar", + "description": "This message is displayed in the \"CANCEL\" button in the checkin form" + }, + "kbccVO": { + "defaultMessage": "Flecha hacia la izquierda", + "description": "The description of the arrow icon." + }, + "kjKwCU": { + "defaultMessage": "Comentarios:", + "description": "This message appears as the empty state title of comments in a user retrospective reply" + }, + "ktxOrA": { + "defaultMessage": "Última retrospectiva", + "description": "The title of the last routine column" + }, + "kynYpx": { + "defaultMessage": "Mis resultados clave", + "description": "The page title that our users should see in the my key results page" + }, + "l+HPdy": { + "defaultMessage": "Líder", + "description": "The tag title that is displayed when that user is the leader of the team" + }, + "l+s/aT": { + "defaultMessage": "beta", + "description": "The tag that indicates the beta version of the feature" + }, + "lApj0K": { + "defaultMessage": "Un ícono de cartera", + "description": "The desc message for the Wallet icon. This icon is used to ilustrate our key results" + }, + "lBc00A": { + "defaultMessage": "Describe el grado de confianza que tiene la persona responsable de un resultado clave:", + "description": "This message is displayed as an introduction to our rich tooltip regarding the confidence level at the head of our key-results table" + }, + "lCQz97": { + "defaultMessage": "Periodo", + "description": "The company yearly period input placeholder while creating a new workspace" + }, + "lHI54p": { + "defaultMessage": "Para agregar a este equipo a una persona que ya tiene acceso a Bud, utilice el campo siguiente:", + "description": "This is the description of the modal that is used to add members to a team." + }, + "lI5vJI": { + "defaultMessage": "Un ícono con tres puntos. Al hacer clic en él, se abrirán algunas opciones", + "description": "This text is displayed as the tree dots desc text in our timeline cards" + }, + "lIb14q": { + "defaultMessage": "COLABORADOR", + "description": "The title of the colaborator column." + }, + "lMYmAU": { + "defaultMessage": "Haga clic en el botón de abajo para volver al Panel :)", + "description": "This message is displayed above the button in our not found error page" + }, + "lMwPEm": { + "defaultMessage": "Inglés", + "description": "This is the name of the english language while we are creating a new user" + }, + "lMxUF9": { + "defaultMessage": "Un ícono de flecha hacia abajo, que indica que el progreso se ha reducido.", + "description": "This desc message explains the decrease icon for screen readers" + }, + "lQkUTL": { + "defaultMessage": "Inspiradores", + "description": "This title guides the creation of Objectives." + }, + "lWcm/y": { + "defaultMessage": "No hay resultados clave con este nivel de confianza.", + "description": "Tooltip content for health strategy box without key results" + }, + "lhIu1G": { + "defaultMessage": "€ 100", + "description": "This message is displayed inside our key-result format select as the example of the coin GBP format" + }, + "ll4kYl": { + "defaultMessage": "Fecha de finalización", + "description": "The description for date-end cycle field" + }, + "lm9HAr": { + "defaultMessage": "Un ícono de calendario", + "description": "The desc message for the Calendar icon. This icon is used to ilustrate our key results" + }, + "loAGsF": { + "defaultMessage": "Variación", + "description": "This text is displayed in our check-in card, as a title for the left column in the progress increase section" + }, + "loTYpj": { + "defaultMessage": "Inglés", + "description": "The user locale en-US option while creating a new workspace" + }, + "lvyLZA": { + "defaultMessage": "Borrar esta respuesta", + "description": "This message is used in the button where the user can delete a routine response." + }, + "m4igWj": { + "defaultMessage": "Añadir comentario", + "description": "This is the label text that is displayed as a button as soon the check in form is displayed" + }, + "m8Extk": { + "defaultMessage": "Un ícono de escáner", + "description": "The desc message for the Scan icon. This icon is used to ilustrate our key results" + }, + "mK9HFR": { + "defaultMessage": "Último día del período anual", + "description": "The label of the company yearly date end while creating a new workspace" + }, + "mXb4/b": { + "defaultMessage": "Configuraciones | bud", + "description": "The page title that is displayed in the browser tab for the settings page" + }, + "mbJq/U": { + "defaultMessage": "¿Está seguro de que desea eliminar el ciclo {period}?", + "description": "This message is used as the title in our first dialog while removing a cycle" + }, + "mdG+CG": { + "defaultMessage": "Ciclos activos", + "description": "This text is displayed as a tab where the user can click to change the view below it" + }, + "mfowjk": { + "defaultMessage": "Un ícono de una estrella, que aparece junto con la pregunta sobre los principales logros que el usuario ha tenido durante la semana.", + "description": "The alternative text explaining our graphic icon" + }, + "minQA9": { + "defaultMessage": "Restablecer contraseña", + "description": "This message is the description of the option to alter password of a user." + }, + "mkTrvf": { + "defaultMessage": "Un ícono de pausa, que aparece junto con la pregunta de si el usuario tiene alguna barrera.", + "description": "The alternative text explaining our graphic icon" + }, + "mkxm93": { + "defaultMessage": "Bud es una plataforma para la gestión de OKRs.", + "description": "The default description for our page head meta description value" + }, + "mnors5": { + "defaultMessage": "Sobre {nickname}", + "description": "The about section title for the user in the user card" + }, + "mxk1xU": { + "defaultMessage": "¡Activa los recordatorios para esta rutina!", + "description": "Routine notification settings modal title" + }, + "n3PYQR": { + "defaultMessage": "Escriba sobre {isMyUser, select, true {usted} other {{gender, select, MALE {el} FEMALE {la} other {el}} {firstName}}}", + "description": "This is the fallback value that goes on our user account settings page, at the seventh field to update the user informations. The fallback value appears if the user has no data at that field" + }, + "n6hyQa": { + "defaultMessage": "Último acceso", + "description": "The title in the last access column" + }, + "n8OKn4": { + "defaultMessage": "Resultados clave", + "description": "The title of the second section of My Week notification tab." + }, + "nJ7CuJ": { + "defaultMessage": "Un ícono de reloj", + "description": "The desc message for the TimesSquare icon. This icon is used to ilustrate our key results" + }, + "nPCTf0": { + "defaultMessage": "Redes sociales", + "description": "This title is displayed as the heading of the social media section in our user account settings page" + }, + "nPjrcU": { + "defaultMessage": "Editar", + "description": "This message is displayer as soon as our user hovers the avatar" + }, + "nWz8Nt": { + "defaultMessage": "Neutro", + "description": "The neutral gender for the company while creating a new workspace" + }, + "ndABHM": { + "defaultMessage": "Admin", + "description": "This string is used to select the user admin role." + }, + "nfdvr1": { + "defaultMessage": "Esperado", + "description": "This message is displayed in the chart tooltip of our key-result sidebar" + }, + "nnWr7M": { + "defaultMessage": "Género", + "description": "This is the label that goes on our user account settings page, at the sixth field to update the user informations" + }, + "npWxt7": { + "defaultMessage": "Un botón con un ícono en forma de X. Al hacer clic en él, cancelarás la actualización del objetivo.", + "description": "This text is displayed inside the objective accordion at the team page. It is used by screen readers to explain the cancel button" + }, + "nqlxOI": { + "defaultMessage": "Estás al día con tus compromisos en Bud.", + "description": "The page description that is displayed if the user has no key result in the this week notifications tab." + }, + "nrToz/": { + "defaultMessage": "Volver", + "description": "This message is displayed as a label in the button on our unknown error page" + }, + "nriJkh": { + "defaultMessage": "Si!", + "description": "This message appears when the user has a blockage during the week." + }, + "nx5pvZ": { + "defaultMessage": "Clasificación de equipos", + "description": "Title to show on the team ranking page" + }, + "oAW5Gy": { + "defaultMessage": "Tareas {team}", + "description": "Header of the board tab on the teams page." + }, + "oWLFIj": { + "defaultMessage": "Descripción general del equipo", + "description": "This message is the title of the component that presents the Indicators of a team." + }, + "oh+3Gh": { + "defaultMessage": "Anual", + "description": "This option makes an cycle with yearly cadence" + }, + "on7/f2": { + "defaultMessage": "Lista con todos los miembros de su equipo organizados según los que necesitan más apoyo de los altos mandos y los que están dentro de la normalidad para el final.", + "description": "This message appears in a tootip that explain the feature to user." + }, + "ooNWJL": { + "defaultMessage": "Añadir equipo de apoyo", + "description": "The label text for the add button icon in our key result single page or drawers" + }, + "or8fId": { + "defaultMessage": "Volver", + "description": "This message is displayed as a label in the button on our not found error page" + }, + "ot1J/+": { + "defaultMessage": "Sin check-in", + "description": "The message returned if the user has no check-in" + }, + "p2UjMZ": { + "defaultMessage": "Mis cosas | bud", + "description": "The page title that is displayed in the browser tab" + }, + "pAXjHu": { + "defaultMessage": "Retrospectiva", + "description": "This is the title of the retrospectives tab on the team page." + }, + "pB9cMu": { + "defaultMessage": "No", + "description": "This message appears as a description of the second option." + }, + "pD5/TL": { + "defaultMessage": "pendientes", + "description": "This message appears on header of the pending column" + }, + "pLYuso": { + "defaultMessage": "Un ícono de pluma. Al hacer clic en él, podrás editar este campo.", + "description": "The description for our pen icon. This message is used by screen readers to improve our accesibility" + }, + "pQnPZP": { + "defaultMessage": "Ciclo padre", + "description": "The description for parent cycle field" + }, + "pTXAs1": { + "defaultMessage": "Un ícono de flecha hacia la derecha. Al hacer clic aquí, se le redirigirá a la página de este equipo.", + "description": "This message is used by screen readers to explain the right arrow at our team lists component" + }, + "pVkTLM": { + "defaultMessage": "Un ícono de corona", + "description": "The desc message for the crown icon. This icon is used to ilustrate when a team card is actually a company" + }, + "pXeDLf": { + "defaultMessage": "Apellido", + "description": "This is the label that goes on our user account settings page, at the second field to update the user informations" + }, + "pbBzqW": { + "defaultMessage": "Recordatorio activo", + "description": "Message displayed when the routine notifications are active." + }, + "pbVToL": { + "defaultMessage": "Crear un usuario", + "description": "This message appears as a button when a team has no members yet" + }, + "pfygkg": { + "defaultMessage": "nueva tarea", + "description": "This message appears on the add task button" + }, + "piM/9+": { + "defaultMessage": "Explora este objetivo completo en el Plan Individual de {user}", + "description": "This message appears in the individual objective tooltip" + }, + "pmuG/e": { + "defaultMessage": "Líder", + "description": "This string is used to select the user edit role." + }, + "poN086": { + "defaultMessage": "Un ícono circular, con bordes y un símbolo de más en el centro.", + "description": "This is the desc text that is displayed for screen readers" + }, + "pzFSON": { + "defaultMessage": "SPOTLIGHT", + "description": "This message appears how the title of the introduction to spotlight." + }, + "q6A4Ae": { + "defaultMessage": "Regular", + "description": "The description of the pie chart graph that indicates the regular status" + }, + "qGLpBy": { + "defaultMessage": "Fecha de inicio", + "description": "The description for date-start cycle field" + }, + "qLRP2R": { + "defaultMessage": "Equipos", + "description": "MainAppBar menu item that links to teams \"Explore\" page" + }, + "qQKiDF": { + "defaultMessage": "Bueno", + "description": "The description of the pie chart graph that indicates the good status" + }, + "qhchMM": { + "defaultMessage": "Representan las prioridades más importantes y comunican esa dirección con bastante claridad.", + "description": "This card guides the creation of Objectives." + }, + "ql0LOi": { + "defaultMessage": "Buscar personas", + "description": "This message appears as a label in users search input." + }, + "qp4Qmm": { + "defaultMessage": "Ir al perfil de {username}", + "description": "This button redirects to the selected user." + }, + "qrgfik": { + "defaultMessage": "En una frase, ¿cuál es la misión de este equipo?", + "description": "The placeholder to the description field in team add/edit modal" + }, + "qsn7TW": { + "defaultMessage": "Añadir nueva tarea personal", + "description": "The add new personal task button label" + }, + "qytqsj": { + "defaultMessage": "Trimestral", + "description": "This text is used as prefix for our quarterly cadences" + }, + "r1mfc1": { + "defaultMessage": "Información personal", + "description": "This title is displayed as the heading of the personal informations section in our user account settings page" + }, + "r2E/o2": { + "defaultMessage": "Editar este resultado clave", + "description": "This button allow the user edit the Key Result." + }, + "rDaIQ2": { + "defaultMessage": "Resumen de la semana", + "description": "The title of the routine reminder notification" + }, + "rFUuVv": { + "defaultMessage": "Para crear un nuevo ciclo de OKR,{breakline} complete los campos a continuación:", + "description": "The description for cycle modal" + }, + "rH+dGv": { + "defaultMessage": "Una flecha hacia abajo. Al hacer clic en ella, se abrirá el menú de selección.", + "description": "This is the desc attribute of our chevron down icon. It is used by screen readers" + }, + "rZUL1Q": { + "defaultMessage": "baja confianza en un", + "description": "This message appears as notification in confidence check in with low-confidence." + }, + "ra0NlX": { + "defaultMessage": "{type, select, feeling {bajo sentimiento} productivity {baja productividad} roadblock {bloqueo} checkin {check-in atrasado} confidence {baja confianza} krmembers {miembros sin krs} barrier {barrera} other {}}", + "description": "The title of the cards" + }, + "rpLZ2J": { + "defaultMessage": "Bud - Gestión de OKR y estrategia", + "description": "The title text of our logotype, it is displayed when an user hover the icon itself" + }, + "rsHltm": { + "defaultMessage": "No lograremos el resultado a menos que cambiemos nuestro enfoque.", + "description": "This text explains our tag to the user" + }, + "rvZQ2D": { + "defaultMessage": "Progreso", + "description": "This message is displayed as the title of the progress section inside check-in card" + }, + "rw4RIa": { + "defaultMessage": "terminado", + "description": "This message appears on header of the done column" + }, + "s0wK0Y": { + "defaultMessage": "Muy bueno", + "description": "The description of the pie chart graph that indicates the very good status" + }, + "s6b2FE": { + "defaultMessage": "Fecha límite", + "description": "The heading text of the goal section in our key-result drawers" + }, + "s6f/IS": { + "defaultMessage": "¡La pantalla que está buscando ha sido secuestrada!", + "description": "This message is displayed below the title in our unknown error page" + }, + "s8fzur": { + "defaultMessage": "cuenta activa", + "description": "This string is used to select the active cycles option." + }, + "sFYaLE": { + "defaultMessage": "Check-in", + "description": "This message is displayed as the form title, above the check-in form" + }, + "sJMgjv": { + "defaultMessage": "Añadir miembro al equipo", + "description": "This message appears as an option in the team page while adding a user to team" + }, + "sP2MCY": { + "defaultMessage": "Mostrar menos", + "description": "This text is displayed in the button that collapses the truncated text" + }, + "sQAoOl": { + "defaultMessage": "¡Relájate! Aquí todo está bien.", + "description": "The page title that is displayed if the user has no key result in the this week notifications tab." + }, + "sSCvSb": { + "defaultMessage": "Un ícono con una \"x\". Al hacer clic en él, eliminará ese elemento de la checklist", + "description": "This text is used by screen readers inside our key-result drawer to describe the X icon to remove a given item from the checklist" + }, + "sX1k+9": { + "defaultMessage": "¡Respuesta eliminada con éxito!", + "description": "This message appears in a toast indicating success in deleting a routines response." + }, + "sgr1cM": { + "defaultMessage": "Crear usuari{gender, select, MALE {o} FEMALE {a} other {o}}", + "description": "The label of the submit button of the create user form" + }, + "si4MfT": { + "defaultMessage": "La magia de la inteligencia artificial", + "description": "This message appears how the title of the fourth card in the Spotlight intro screen." + }, + "sp/6lg": { + "defaultMessage": "Sobre", + "description": "This text is displayed in our check-in card, above the user comment if it exists" + }, + "sp7xYz": { + "defaultMessage": "RETROSPECTIVA PRODUCTIVIDAD", + "description": "The title of the productivity column." + }, + "ssM7Lj": { + "defaultMessage": "Pertenece al objetivo", + "description": "The label text above the Objective section in our key result single page or drawers" + }, + "t0YKyV": { + "defaultMessage": "Confirmar", + "description": "This message is used as the confirmation button when we are in the confirmation dialog" + }, + "t0t6MQ": { + "defaultMessage": "Volver al presente", + "description": "The button title to go back to the present" + }, + "t3VVHw": { + "defaultMessage": "Un ícono en forma de X que indica que los datos de este campo no son válidos", + "description": "This is used by screen readers to explain the X that appears when the users types a non-valid data in a given controlled field" + }, + "t6KyQZ": { + "defaultMessage": "Un ícono de flecha hacia arriba, que representa cuánto ha evolucionado su empresa en la última semana.", + "description": "This message is used by screen readers to explain our arrow up icon" + }, + "t7xKJo": { + "defaultMessage": "¡Ciclo {period} editado con éxito!", + "description": "This message appears when we create a new cycle as a toast" + }, + "tIbXUc": { + "defaultMessage": "Publicar OKR", + "description": "This message appears on the button the user uses to confirm their action of posting an OKR." + }, + "tcWO3v": { + "defaultMessage": "El logotipo de Bud. Es simplemente el nombre Bud escrito en minúsculas en color morado", + "description": "The alternative text explaining our logotype" + }, + "th1Ney": { + "defaultMessage": "Hoy", + "description": "This label is displayed if the date is today" + }, + "tj3TRS": { + "defaultMessage": "Audaces", + "description": "This title guides the creation of Objectives." + }, + "tjSA87": { + "defaultMessage": "Nombre del ciclo", + "description": "This message is displayed as the column header for the cycle table in the cycle name column" + }, + "tmyaek": { + "defaultMessage": "Estado", + "description": "This message is displayed as the column header for the users table in the state column" + }, + "tp3vDN": { + "defaultMessage": "Sin KR", + "description": "The message returned if the user has no key result." + }, + "tvj+/n": { + "defaultMessage": "Descripción general del equipo", + "description": "The title of the team overview" + }, + "txi+kN": { + "defaultMessage": "Idioma", + "description": "The user locale input placeholder while creating a new workspace" + }, + "tydp5X": { + "defaultMessage": "Buenas prácticas", + "description": "The description of the pie chart graph that indicates the label" + }, + "u4rqek": { + "defaultMessage": "Q4", + "description": "This button appears as an empty state while the user is selecting the cycle filter" + }, + "u7Yaxx": { + "defaultMessage": "Responsable", + "description": "The text of the table head related to the Owner column" + }, + "u90W4w": { + "defaultMessage": "Crear resultado clave", + "description": "This message is displayed as label of the button used to create a new key-result in a draft okr card." + }, + "uIY7F5": { + "defaultMessage": "Retrospectiva de la semana", + "description": "Title of the content of the Retrospective tab on the teams page." + }, + "uM5lpV": { + "defaultMessage": "Tarea realizada", + "description": "The text that appears when the task is done." + }, + "uNo8rw": { + "defaultMessage": "Nueva tarea", + "description": "This message appears as the title of the insert Task drawer" + }, + "uQUReU": { + "defaultMessage": "Estado actual", + "description": "The description for state cycle field on update cycle form" + }, + "uSZ2US": { + "defaultMessage": "Historial de modificaciones", + "description": "This message appears how the title of the second card in the Spotlight intro screen." + }, + "uUn4LH": { + "defaultMessage": "ELIMINAR", + "description": "This message is used as keyword to delete a cycle" + }, + "uXQE/x": { + "defaultMessage": "Visualice el avance general de todas las áreas de la empresa y los respectivos equipos que las componen a través de las barras de evolución.", + "description": "The page description that is displayed in Google and screen readers" + }, + "ub6rlW": { + "defaultMessage": "Alta confianza", + "description": "Title of high confidence health strategy" + }, + "ui441M": { + "defaultMessage": "Un ícono cuadrado redondeado con un lápiz.", + "description": "The desc message for the EditSquare icon. This icon is used to ilustrate our key results" + }, + "ukvrDN": { + "defaultMessage": "Retroalimentación colaborativa y visual", + "description": "This message appears how the title of the first card in the Spotlight intro screen." + }, + "ulMLmp": { + "defaultMessage": "Retrospectiva de la semana", + "description": "The week retrospective notification title." + }, + "ulnySu": { + "defaultMessage": "Ciclos de OKR", + "description": "This label defines the text on the first menu section option" + }, + "unuB2s": { + "defaultMessage": "Acerca de este check-in", + "description": "This is the label text that is displayed above the input" + }, + "upeS+T": { + "defaultMessage": "Bud estará fuera del aire durante unas horas mientras ponemos la casa en orden. Esperamos estar de vuelta antes de las: {date} às {hour}h ¡Hasta entonces! :)", + "description": "This message is displayed as a description in our under maintenance error page" + }, + "urN1WV": { + "defaultMessage": "Cambiar el {type} de este OKR", + "description": "This message appears on update modal title." + }, + "usAoP+": { + "defaultMessage": "Trimestral", + "description": "This option makes an cycle with quarterly cadence" + }, + "uw/x8G": { + "defaultMessage": "{user} está con {count, plural, one {una barrera} other {barreira{count, plural, one {# semana} other { hace # semanas}}}}. Talvez {gender, select, MALE {necesita ayuda.} FEMALE {ella necesita ayuda.} other {¿Qué tal si le ofrezco ayuda?}}", + "description": "This message appears how a call to action when the feeling answer refer the bad something." + }, + "uxjg0W": { + "defaultMessage": "¡No se pudo eliminar la respuesta!", + "description": "This message appears in a toast indicating that it was not possible to delete a routines response." + }, + "v0PKmP": { + "defaultMessage": "{user} creó la tarea", + "description": "dsa" + }, + "v9xuBO": { + "defaultMessage": "Sentimiento", + "description": "The title in the feeling modal" + }, + "vCWYpE": { + "defaultMessage": "Este equipo está dentro de:", + "description": "The label to the parent team field in team add/edit modal" + }, + "vDa/w5": { + "defaultMessage": "Está todo muy tranquilo por aquí", + "description": "This text is the title of our empty state card inside our key result drawers" + }, + "vERqrq": { + "defaultMessage": "EVOLUCIÓN", + "description": "The title of the delta column." + }, + "vEzcix": { + "defaultMessage": "Equipos", + "description": "This message is displayed as the column header for the users table in the teams column" + }, + "vHTPEb": { + "defaultMessage": "¡Ciclo {period} creado con éxito!", + "description": "This message appears when we create a new cycle as a toast" + }, + "vJ/603": { + "defaultMessage": "Es posible que este enlace haya caducado o que la URL sea incorrecta.", + "description": "The description displayed in our not found error page" + }, + "vO+kQj": { + "defaultMessage": "El ciclo está cerrado. No es posible editar ni actualizar los OKR, pero se pueden consultar en el historial.", + "description": "This string is used to describe the cycles not-active status option." + }, + "vbnV7B": { + "defaultMessage": "Portugués", + "description": "This message is used as the label for the portuguese language in our locale switcher" + }, + "vfstY8": { + "defaultMessage": "Hazlo medible definiendo un número como indicador de éxito.", + "description": "The second description of the tip when you are creating a KR." + }, + "vgU7fC": { + "defaultMessage": "Check-in pendiente", + "description": "This string is used as the description for the icon that indicates that the key-result has not been updated" + }, + "vhq3gt": { + "defaultMessage": "Femenino", + "description": "The user gender female option while creating a new workspace" + }, + "vnjJt9": { + "defaultMessage": "Mover este OKR a otro equipo", + "description": "This is the fourth option that appears when you open the menu of a given objective inside the accordion button" + }, + "vqeE5J": { + "defaultMessage": "Recordatorios de rutina", + "description": "Description for routine notification settings modal icon" + }, + "vrROtV": { + "defaultMessage": "Botón de opciones.", + "description": "This button allows you to view details, reset password or deactivate a users account." + }, + "vv49le": { + "defaultMessage": "Nombre de usuario inicial", + "description": "The user first name while creating a new workspace" + }, + "vzHp1e": { + "defaultMessage": "¿Necesitas inspiración? Recuerda: los mejores objetivos son...", + "description": "This is the title presented in the component that guides you in creating Objectives." + }, + "w+FqA/": { + "defaultMessage": "Comprenda mejor este resultado clave.", + "description": "The message in the button that when clicked, loads the generated summarized key result." + }, + "w/3frD": { + "defaultMessage": "Líder:", + "description": "The label to the leader field in team add/edit modal" + }, + "w9Qh/X": { + "defaultMessage": "Echa un vistazo a las nuevas respuestas en {team}.", + "description": "The subtitle of the routine reminder notification" + }, + "wJjuae": { + "defaultMessage": "La persona responsable de garantizar que se logre este resultado clave", + "description": "This tooltip explains the seventh column of the key result list" + }, + "wWbkGb": { + "defaultMessage": "OKRs", + "description": "This is the title of the okrs tab on the team page." + }, + "waPxPB": { + "defaultMessage": "Idioma del usuario inicial", + "description": "The user locale while creating a new workspace" + }, + "wat5HS": { + "defaultMessage": "Nombre", + "description": "This message is displayed as the column header for the users table in the user name column" + }, + "weTDNo": { + "defaultMessage": "Volver", + "description": "Label for return to overview icon" + }, + "wiFglx": { + "defaultMessage": "Responsable", + "description": "This label appears above the sixth input in our insert key-result drawer" + }, + "wlDJNs": { + "defaultMessage": "Título de la tarea", + "description": "The placeholder for the first input in our key-result insert drawer form" + }, + "wlwyTd": { + "defaultMessage": "Buscar miembros", + "description": "This message is used in the search input while searching for users" + }, + "ws7tAT": { + "defaultMessage": "El objetivo se ha trasladado con éxito.", + "description": "This message appears on a successful toast when update objective team." + }, + "wsXNFt": { + "defaultMessage": "Responder", + "description": "This message appears as a label on the button used to reply to a comment." + }, + "wtGWF6": { + "defaultMessage": "Descripción:", + "description": "The label to the description field in team add/edit modal" + }, + "wwt9p1": { + "defaultMessage": "Un círculo con un signo de interrogación en el centro.", + "description": "This message describes the info circle icon to our screen readers" + }, + "x/2y46": { + "defaultMessage": "Vea nuestros ejemplos de OKRs", + "description": "This link takes you to the page with guidelines on creating OKRs." + }, + "x24wfc": { + "defaultMessage": "Explora este objetivo completo en el equipo de {team}", + "description": "This message appears in the objective tooltip" + }, + "x30AaU": { + "defaultMessage": "Haga clic aquí para realizar una búsqueda", + "description": "The title text of our search icon, it is displayed when an user hover the icon itself" + }, + "x4dJoK": { + "defaultMessage": "Según las respuestas de la Retrospectiva de la Semana", + "description": "Subtitle of the metrics card" + }, + "x7doNg": { + "defaultMessage": "Visualice el perfil de otro miembro de la empresa, interactúe con sus resultados clave relacionados con la estrategia y explore también los resultados clave individuales", + "description": "The page meta description" + }, + "x8ytCP": { + "defaultMessage": "Cancelar", + "description": "This text is displayed as the button that will cancel the update for ou goal update popover inside the key-result drawers" + }, + "xIe3i6": { + "defaultMessage": "Reactivar cuenta", + "description": "This message is the description of the option to reactivate a user account." + }, + "xJJ9uE": { + "defaultMessage": "Lo sentimos, se ha producido un error inesperado. Inténtalo de nuevo más tarde.", + "description": "This message appears when the user tries to remove a given cycle, but receives an error" + }, + "xPoUwI": { + "defaultMessage": "Un diseño de un engranaje para el botón de edición de tiempo.", + "description": "The gear icon description" + }, + "xSSnsF": { + "defaultMessage": "Lo sentimos, se ha producido un error inesperado. Inténtalo de nuevo más tarde.", + "description": "This message appears on a error toast when update objective team." + }, + "xVR0F1": { + "defaultMessage": "Apellido", + "description": "This is the label that goes on our user account settings page, at the third field to update the user informations" + }, + "xXhMFZ": { + "defaultMessage": "Bloqueo", + "description": "The title of the with roadblock chart" + }, + "xXxjVp": { + "defaultMessage": "Hay un factor externo que impide el avance de este resultado clave", + "description": "This text explains our tag to the user" + }, + "xaHzA0": { + "defaultMessage": "Apellido", + "description": "The user last name input placeholder while creating a new workspace" + }, + "xabV3g": { + "defaultMessage": "Más información", + "description": "This message appears on action button that redirect the user to company page on Spotlight tab" + }, + "xe74UT": { + "defaultMessage": "En los OKRs, se suele aspirar a alcanzar al menos el 70 % de los objetivos. Para alcanzar este nivel al final del ciclo, el progreso actual esperado es del {progress}%.", + "description": "Tooltip message to show when hovering the help icon on projected progress" + }, + "xfx/rc": { + "defaultMessage": "Un botón con un ícono de confirmación. Al hacer clic en él, guardará su actualización del objetivo.", + "description": "This text is displayed inside the objective accordion at the team page. It is used by screen readers to explain the check button" + }, + "xq1mQp": { + "defaultMessage": "CONFIRME SU ACCIÓN", + "description": "This message appears in the label of input that the user uses to confirm their action of posting an OKR." + }, + "xywRWB": { + "defaultMessage": "Un ícono de verificación. Al hacer clic en él, guardará los cambios.", + "description": "This text is used by screen readers to explain the check icon. This icon appears below the EditableTextArea. It is used to save the edition of the field" + }, + "y18Ymm": { + "defaultMessage": "¡Todo está bien por aquí! Navega por los equipos para explorar los resultados clave con alta confianza.", + "description": "Tooltip content for high confidence health strategy box" + }, + "yK87+y": { + "defaultMessage": "Fecha de inicio", + "description": "The company yearly date start input placeholder while creating a new workspace" + }, + "yO19dV": { + "defaultMessage": "Central de buddies", + "description": "MainAppBar user menu third item option" + }, + "yP9yyI": { + "defaultMessage": "Para obtener un resultado clave, consulte:", + "description": "This message appears as describe on notification where a user is marked as owner" + }, + "yRU1Bz": { + "defaultMessage": "{username} todavía no está involucrado en ningún resultado clave.", + "description": "The label message that is displayed below our team at work image when a user has no key results in her/his key result view list" + }, + "yfhIM+": { + "defaultMessage": "Cancelar", + "description": "Text in the cancel action button" + }, + "yh+jAH": { + "defaultMessage": "Progreso de los equipos", + "description": "Title to show on the team ranking page when gamification is disabled" + }, + "yw+DGB": { + "defaultMessage": "Apellido", + "description": "The label of the last name field in the create user form" + }, + "ywBP21": { + "defaultMessage": "Inactivo", + "description": "This string is used to select the not-active cycles option." + }, + "z2jAqq": { + "defaultMessage": "Un ícono con el signo \"más\". Al hacer clic aquí, se abrirá el menú para introducir un nuevo subtítulo.", + "description": "This message is used in our new subteam button while seeing the team list" + }, + "z4Qy+J": { + "defaultMessage": "El diseño de una caja cerrada, que indica que estamos en mantenimiento", + "description": "This message is the alt message for our box drawing in the under maintenance error page" + }, + "z4STCs": { + "defaultMessage": "¿Cómo va el desempeño de{gender, select, MALE {o} FEMALE {a} other {o}} {company} en este trimestre?", + "description": "The title of the header section in our company overview report" + }, + "zEyzo8": { + "defaultMessage": "Un círculo morado, que indica que el resultado clave tiene una barrera", + "description": "A brief explanation for screen readers regarding the purple status circle" + }, + "zFQPs9": { + "defaultMessage": "Fecha de finalización", + "description": "The company yearly date end input placeholder while creating a new workspace" + }, + "zHAPqJ": { + "defaultMessage": "LinkedIn", + "description": "This is the label that goes on our user account settings page, at the first field to update the user social media accounts" + }, + "zIx/gZ": { + "defaultMessage": "Haga clic aquí para ver sus notificaciones.", + "description": "The title text of our notification bell, it is displayed when an user hover the icon itself" + }, + "zUEhBk": { + "defaultMessage": "Un banco vacío, que representa que no hay nadie aquí.", + "description": "The alternative text explaining the empty bench image" + }, + "zVdCV2": { + "defaultMessage": "{selectedusersquantity} personas", + "description": "This message appears in the input when multiple users are selected." + }, + "zWpOXa": { + "defaultMessage": "Crear", + "description": "The button to create or edit a cycle on modal" + }, + "zZwIvy": { + "defaultMessage": "Cuéntanos cómo está siendo tu experiencia con la velocidad de la plataforma:", + "description": "This message appears on the notices banner." + }, + "zaC3Cb": { + "defaultMessage": "activado", + "description": "This message appears when we are unable to activate/deactivate a cycle" + }, + "zaMkef": { + "defaultMessage": "Introduzca una descripción detallada de su objetivo.", + "description": "The description box placeholder" + }, + "zcIxrk": { + "defaultMessage": "Eliminar ciclo", + "description": "This message is the description of the option to delete a cycle." + }, + "ze3hqu": { + "defaultMessage": "¡Estamos trabajando en mejoras para usted! :)", + "description": "The title displayed in our under maintenance error page" + }, + "zev4wl": { + "defaultMessage": "Un ícono de bandera que indica el objetivo del resultado clave en el que estás registrando.", + "description": "This is a message explaining the flag icon in our check-in form" + }, + "zmPWcg": { + "defaultMessage": "Papel", + "description": "This message is displayed as the column header for the users table in the role column" + }, + "znpwST": { + "defaultMessage": "Q3", + "description": "This button appears as an empty state while the user is selecting the cycle filter" + }, + "zsB72A": { + "defaultMessage": "Vista previa", + "description": "This title is displayed as the heading of the user card preview section in our user account settings page" + }, + "3LGCOy": { + "defaultMessage": "Español", + "description": "This message is used as the label for the espanish language in our locale switcher" + } +} diff --git a/lang/pt-BR.json b/lang/pt-BR.json index 03f14e217..5123ac07f 100644 --- a/lang/pt-BR.json +++ b/lang/pt-BR.json @@ -355,6 +355,10 @@ "defaultMessage": "Que bom te ver novamente, {name}! :)", "description": "The page title that our users should see in the dashboard page" }, + "3LGCOy": { + "defaultMessage": "Espanhol", + "description": "This message is used as the label for the espanish language in our locale switcher" + }, "3MleM/": { "defaultMessage": "Tornar time principal?", "description": "The label of the button that makes the team the main team" @@ -467,6 +471,10 @@ "defaultMessage": "Clima dos Times {companypreposition} {company}", "description": "Title of the metrics card" }, + "4xiLc/": { + "defaultMessage": "Espanhol", + "description": "The user locale es-AR option while creating a new workspace" + }, "53vwrZ": { "defaultMessage": "Este resultado-chave ainda é um rascunho", "description": "This message appears as a header in the key result drawer in draft mode." @@ -811,6 +819,10 @@ "defaultMessage": "comentou no seu resultado-chave:", "description": "This message is displayed to describe a notification that occurs when someone comments on a user`s KR." }, + "AjIgUB": { + "defaultMessage": "Pesquise ou selecione na lista o {option} que deseja vincular esse OKR", + "description": "This message appears on update modal body." + }, "AngG7m": { "defaultMessage": "{today, select, true {hoje às} false {às} other {às}}", "description": "The prefix of the hour description" @@ -971,6 +983,10 @@ "defaultMessage": "Salvar", "description": "This text is displayed as the button that will save the update for our goal update popover inside the key-result drawers" }, + "DIQdct": { + "defaultMessage": "O objetivo foi movido de ciclo com sucesso.", + "description": "This message appears on a successful toast when update objective team." + }, "DRKiQR": { "defaultMessage": "Parabéns! Você completou este resultado chave.", "description": "The text is displayed as a heading in the add team modal" @@ -1291,6 +1307,10 @@ "defaultMessage": "para {confidence}", "description": "This text is displayed as the second line of our confidence tooltip" }, + "IldkUk": { + "defaultMessage": "Filtros", + "description": "This is the default placeholder while selecting a given value in a select menu" + }, "IoZbDV": { "defaultMessage": "Deseja excluir esse comentário?", "description": "This message appears in delete modal confirmation." @@ -1427,6 +1447,10 @@ "defaultMessage": "Apagar", "description": "This text is displayed in our menu, as an anchor to remove that given card" }, + "KlhDYs": { + "defaultMessage": "Mover este OKR para outro Ciclo", + "description": "This is the fourth option that appears when you open the menu of a given objective inside the accordion button" + }, "L/b/G/": { "defaultMessage": "Um desenho de uma pasta aberta sem nada dentro", "description": "The alternative text explaining the empty folder image" @@ -1715,6 +1739,10 @@ "defaultMessage": "Nome", "description": "The label of the first name field in the create user form" }, + "PWVeP0": { + "defaultMessage": "Mover este Resultado-Chave para outro objetivo", + "description": "This message appears in the button that copies the title of the key result" + }, "PYLIcI": { "defaultMessage": "Meta", "description": "This message is displayed below the goal thumb" @@ -2499,6 +2527,10 @@ "defaultMessage": "Foto", "description": "The label of the picture field in the create user form" }, + "d3sTZR": { + "defaultMessage": "O Resultado-Chave foi movido de objetivo com sucesso.", + "description": "This message appears on a successful toast when update objective team." + }, "d62Bt/": { "defaultMessage": "Ícone de um balão de fala", "description": "The description of the thinking balloon icon" @@ -3503,6 +3535,10 @@ "defaultMessage": "O Bud vai ficar fora do ar durante algumas horas enquanto arrumamos a casa. Esperamos estar de volta até: {date} às {hour}h Até lá! :)", "description": "This message is displayed as a description in our under maintenance error page" }, + "urN1WV": { + "defaultMessage": "Alterar o {type} deste OKR", + "description": "This message appears on update modal title." + }, "usAoP+": { "defaultMessage": "Trimestral", "description": "This option makes an cycle with quarterly cadence" @@ -3567,6 +3603,10 @@ "defaultMessage": "Feminino", "description": "The user gender female option while creating a new workspace" }, + "vnjJt9": { + "defaultMessage": "Mover este OKR para outro Time", + "description": "This is the fourth option that appears when you open the menu of a given objective inside the accordion button" + }, "vqeE5J": { "defaultMessage": "Lembretes de rotina", "description": "Description for routine notification settings modal icon" @@ -3627,6 +3667,10 @@ "defaultMessage": "Buscar membros", "description": "This message is used in the search input while searching for users" }, + "ws7tAT": { + "defaultMessage": "O objetivo foi movido de time com sucesso.", + "description": "This message appears on a successful toast when update objective team." + }, "wsXNFt": { "defaultMessage": "Responder", "description": "This message appears as a label on the button used to reply to a comment." @@ -3675,6 +3719,10 @@ "defaultMessage": "Um desenho de uma engrenagem para o botão de edição de time", "description": "The gear icon description" }, + "xSSnsF": { + "defaultMessage": "Desculpe, mas houve um erro inesperado. Tente novamente mais tarde.", + "description": "This message appears on a error toast when update objective team." + }, "xVR0F1": { "defaultMessage": "Apelido", "description": "This is the label that goes on our user account settings page, at the third field to update the user informations" diff --git a/lib/fake-api/db.task-management.json b/lib/fake-api/db.task-management.json deleted file mode 100644 index ac1e04b75..000000000 --- a/lib/fake-api/db.task-management.json +++ /dev/null @@ -1,155 +0,0 @@ -{ - "board": [ - { - "id": "1", - "title": "Tarefas Produto", - "type": "teamTasks", - "teamsIds": [ - "d6310cc8-cc17-499b-a28c-5c600dd9714a" - ], - "tasks": [ - "1", - "2", - "3", - "4", - "5" - ], - "createdAt": "2020-01-01", - "updateadAt": "2020-01-01" - }, - { - "id": "2", - "title": "Tarefas Customer Success", - "type": "teamTasks", - "teamsIds": [ - "0788abd6-4996-4224-8f24-094b2d3c0d3a" - ], - "tasks": [ - 1 - ], - "createdAt": "2020-01-01", - "updateadAt": "2020-01-01" - }, - { - "id": "3", - "title": "Tarefas Financeiro", - "type": "teamTasks", - "teamsIds": [ - "41a0de90-216d-4092-9d5f-1e889ec0a7cb" - ], - "tasks": [ - "6" - ], - "createdAt": "2020-01-01", - "updateadAt": "2020-01-01" - } - ], - "tasks": [ - { - "id": "1", - "boardId": "1", - "status": "pending", - "title": "Marcar reunião com fornecedores de camisetas", - "description": "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500", - "dueDate": "2023-05-12", - "initialDate": "2023-11-01", - "priority": 1, - "owner": "922ef72a-6c3c-4075-926a-3245cdeea75f", - "attachments": "http://arquivo.pdf", - "supportTeamMembers": [ - "9ce87eda-64d1-4bfb-80a5-aa7811a04ea9", - "f120ec45-150d-4e24-b99d-34df20a80c64" - ], - "tags": "COZINHA", - "nextTaskId": "2" - }, - { - "id": "2", - "boardId": "1", - "status": "pending", - "title": "Enviar mailing de cadastramento de conferencias e eventos", - "description": "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500", - "dueDate": "2023-12-12", - "initialDate": "2023-11-01", - "priority": 3, - "owner": "9ce87eda-64d1-4bfb-80a5-aa7811a04ea9", - "attachments": "http://arquivo.pdf", - "supportTeamMembers": [ - "b159ef12-9062-49c6-8afc-372e8848fb15" - ], - "tags": "COZINHA", - "nextTaskId": "" - }, - { - "id": "3", - "boardId": "1", - "status": "toDo", - "title": "Entrar em contato com empresa XYZ de eventos", - "description": "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500", - "dueDate": "2023-10-12", - "initialDate": "2023-11-01", - "priority": 4, - "owner": "9ce87eda-64d1-4bfb-80a5-aa7811a04ea9", - "attachments": "http://arquivo.pdf", - "supportTeamMembers": [ - "b159ef12-9062-49c6-8afc-372e8848fb15" - ], - "tags": "COZINHA", - "nextTaskId": "" - }, - { - "id": "4", - "boardId": "1", - "status": "doing", - "title": "Marcar reunião com fornecedores de camisetas", - "description": "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500", - "dueDate": "2023-02-21", - "initialDate": "2023-11-01", - "priority": 1, - "owner": "9ce87eda-64d1-4bfb-80a5-aa7811a04ea9", - "attachments": "http://arquivo.pdf", - "supportTeamMembers": [ - "b159ef12-9062-49c6-8afc-372e8848fb15" - ], - "tags": "COZINHA", - "nextTaskId": "" - }, - { - "id": "5", - "boardId": "1", - "status": "done", - "title": "Enviar mailing de cadastramento de conferencias e eventos", - "description": "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500", - "dueDate": "2023-02-21", - "initialDate": "2023-11-01", - "priority": 2, - "owner": "f120ec45-150d-4e24-b99d-34df20a80c64", - "attachments": "http://arquivo.pdf", - "supportTeamMembers": [ - "b159ef12-9062-49c6-8afc-372e8848fb15", - "9ce87eda-64d1-4bfb-80a5-aa7811a04ea9" - ], - "tags": "COZINHA", - "nextTaskId": "" - }, - { - "id": "6", - "boardId": "3", - "status": "doing", - "title": "Enviar mailing de cadastramento de conferencias e eventos", - "description": "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500", - "dueDate": "2023-12-01", - "initialDate": "2023-11-01", - "priority": 3, - "owner": "b159ef12-9062-49c6-8afc-372e8848fb15", - "attachments": "http://arquivo.pdf", - "supportTeamMembers": [ - "f120ec45-150d-4e24-b99d-34df20a80c64", - "9ce87eda-64d1-4bfb-80a5-aa7811a04ea9", - "922ef72a-6c3c-4075-926a-3245cdeea75f" - ], - "tags": "COZINHA", - "nextTaskId": "" - } - ] -} diff --git a/lib/fake-api/routes.json b/lib/fake-api/routes.json deleted file mode 100644 index db530c160..000000000 --- a/lib/fake-api/routes.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "/board/:teamId": "/board?teamsIds[0]=:teamId&_embed=tasks" -} diff --git a/package.json b/package.json index ee81b91cc..671e0e390 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "start:watch": "next dev", "build": "npm-run-all -s clean compile:intl build:app", "build:app": "next build", - "compile:intl": "npm-run-all -p intl:compile:ptBR intl:compile:enUS", + "compile:intl": "npm-run-all -p intl:compile:ptBR intl:compile:enUS intl:compile:esAR", "clean": "rimraf -rf .next", "copy": "cp README.md LICENSE package.json", "format": "prettier --write 'src/**/*.ts'", @@ -25,6 +25,7 @@ "intl:extract": "formatjs extract './src/**/*.ts(x)?' --out-file lang/pt-BR.json --id-interpolation-pattern '[sha512:contenthash:base64:6]'", "intl:compile:ptBR": "formatjs compile lang/pt-BR.json --ast --out-file compiled-lang/pt-BR.json", "intl:compile:enUS": "formatjs compile lang/en-US.json --ast --out-file compiled-lang/en-US.json", + "intl:compile:esAR": "formatjs compile lang/es-AR.json --ast --out-file compiled-lang/es-AR.json", "deploy": "run-s git:tag:canary waypoint:build waypoint:deploy", "release": "run-s git:tag:remove-canary git:tag:stable waypoint:up", "git:tag:canary": "git tag canary -f && git push origin canary -f", diff --git a/public/icons/check.svg b/public/icons/check.svg new file mode 100644 index 000000000..42829d01f --- /dev/null +++ b/public/icons/check.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Base/KanbanTaskCard/kanban-task-card-metadata.tsx b/src/components/Base/KanbanTaskCard/kanban-task-card-metadata.tsx index b5f6f3d0d..d3cc8d4ac 100644 --- a/src/components/Base/KanbanTaskCard/kanban-task-card-metadata.tsx +++ b/src/components/Base/KanbanTaskCard/kanban-task-card-metadata.tsx @@ -9,7 +9,7 @@ import ClockIcon from 'src/components/Icon/Clock' import LowPriorityIcon from 'src/components/Icon/LowPriorityIcon' import MediumPriorityIcon from 'src/components/Icon/MediumPriorityIcon' import { User } from 'src/components/User/types' -import { TASK_STATUS } from 'src/services/task-management/task-management.service' +import { TASK_STATUS } from 'src/services/task-management/@types/task-status.enum' import selectUser from 'src/state/recoil/user/selector' import { TaskPriority } from './kanban-task-card-root' diff --git a/src/components/Base/LocaleSwitcher/messages.ts b/src/components/Base/LocaleSwitcher/messages.ts index 3da6081d8..b6ad2e46d 100644 --- a/src/components/Base/LocaleSwitcher/messages.ts +++ b/src/components/Base/LocaleSwitcher/messages.ts @@ -1,6 +1,6 @@ import { defineMessages } from 'react-intl' -type LocaleSwitcherMessage = 'ptBRLabel' | 'enUSLabel' +type LocaleSwitcherMessage = 'ptBRLabel' | 'enUSLabel' | 'esARLabel' export default defineMessages({ ptBRLabel: { @@ -16,4 +16,11 @@ export default defineMessages({ description: 'This message is used as the label for the english language in our locale switcher', }, + + esARLabel: { + defaultMessage: 'Espanhol', + id: '3LGCOy', + description: + 'This message is used as the label for the espanish language in our locale switcher', + }, }) diff --git a/src/components/Base/LocaleSwitcher/wrapper.tsx b/src/components/Base/LocaleSwitcher/wrapper.tsx index 5c984822f..718625405 100644 --- a/src/components/Base/LocaleSwitcher/wrapper.tsx +++ b/src/components/Base/LocaleSwitcher/wrapper.tsx @@ -49,6 +49,11 @@ export const LocaleSwitcherWrapper = ({ code: 'en-US', label: intl.formatMessage(messages.enUSLabel), }, + + 'es-AR': { + code: 'es-AR', + label: intl.formatMessage(messages.esARLabel), + }, }), [intl], ) diff --git a/src/components/Base/SelectMenu/select-menu.tsx b/src/components/Base/SelectMenu/select-menu.tsx index b1ae42e57..374b44329 100644 --- a/src/components/Base/SelectMenu/select-menu.tsx +++ b/src/components/Base/SelectMenu/select-menu.tsx @@ -9,6 +9,7 @@ import { Spinner, StyleProps, BoxProps, + Text, } from '@chakra-ui/react' import React, { ReactElement, ReactNode } from 'react' import { useIntl } from 'react-intl' @@ -118,7 +119,15 @@ const SelectMenu = ({ transition="none" {...rest} > - {valueLabel ?? placeholder} + + {valueLabel ?? placeholder} + { const { cycle } = await servicesPromise - const data = await cycle.getCycleTeam(teamId) + const data = await cycle.getTeamCycle(teamId) return data }, }) diff --git a/src/components/KeyResult/List/Body/Columns/Actions/actions.tsx b/src/components/KeyResult/List/Body/Columns/Actions/actions.tsx index 424f41494..eddbeac56 100644 --- a/src/components/KeyResult/List/Body/Columns/Actions/actions.tsx +++ b/src/components/KeyResult/List/Body/Columns/Actions/actions.tsx @@ -16,7 +16,10 @@ import { GraphQLEffect } from '../../../../../types' import { CopyAction } from './copy-action' import { DeleteAction } from './delete-action' import EditAction from './edit-action' +import { useGetKeyResult } from './hooks/get-key-result' +import { useListObjectives } from './hooks/get-list-team-objectives' import messages from './messages' +import { UpdateKeyResultObjectiveOption } from './update-key-result-objective' export interface KeyResultListBodyColumnActionsProperties extends KeyResultListBodyColumnBaseProperties { @@ -43,6 +46,9 @@ const KeyResultListBodyColumnActions = ({ ? keyResult?.owner?.id === myID : keyResult?.policy?.update === GraphQLEffect.ALLOW + const { data: objectives } = useListObjectives(isPersonalKr, myID, keyResult?.teamId) + const { data: apiKeyResult } = useGetKeyResult(id) + return ( @@ -64,6 +70,13 @@ const KeyResultListBodyColumnActions = ({ {keyResult?.title && } {canEdit && } {canDelete && } + {canEdit && id && apiKeyResult?.objectiveId && ( + + )} diff --git a/src/components/KeyResult/List/Body/Columns/Actions/hooks/get-key-result.tsx b/src/components/KeyResult/List/Body/Columns/Actions/hooks/get-key-result.tsx new file mode 100644 index 000000000..133f7e8f8 --- /dev/null +++ b/src/components/KeyResult/List/Body/Columns/Actions/hooks/get-key-result.tsx @@ -0,0 +1,23 @@ +import { useQuery } from '@tanstack/react-query' +import { useContext } from 'react' + +import { ServicesContext } from 'src/components/Base/ServicesProvider/services-provider' + +const MODULE = 'keyResult' +const ACTION = 'getKeyResult' + +export function useGetKeyResult(id?: string) { + const { servicesPromise } = useContext(ServicesContext) + + const query = useQuery({ + queryKey: [`${MODULE}:${ACTION}`, id], + queryFn: async () => { + const { keyResult } = await servicesPromise + const data = await keyResult.getKeyResultById(id ?? '') + return data + }, + enabled: Boolean(id), + }) + + return query +} diff --git a/src/components/KeyResult/List/Body/Columns/Actions/hooks/get-list-team-objectives.tsx b/src/components/KeyResult/List/Body/Columns/Actions/hooks/get-list-team-objectives.tsx new file mode 100644 index 000000000..d5d9888c8 --- /dev/null +++ b/src/components/KeyResult/List/Body/Columns/Actions/hooks/get-list-team-objectives.tsx @@ -0,0 +1,25 @@ +import { useQuery } from '@tanstack/react-query' +import { useContext } from 'react' + +import { ServicesContext } from 'src/components/Base/ServicesProvider/services-provider' + +const MODULE = 'keyResult' +const ACTION = 'getTeamObjectives' + +export function useListObjectives(isPersonal: boolean, userId: string, teamId?: string) { + const { servicesPromise } = useContext(ServicesContext) + + const query = useQuery({ + queryKey: [`${MODULE}:${ACTION}`, teamId], + queryFn: async () => { + const { objective } = await servicesPromise + const data = isPersonal + ? await objective.listPersonalObjectives(userId) + : await objective.listObjectivesByTeamId(teamId ?? '') + return data + }, + enabled: Boolean(teamId), + }) + + return query +} diff --git a/src/components/KeyResult/List/Body/Columns/Actions/hooks/get-update-key-result.tsx b/src/components/KeyResult/List/Body/Columns/Actions/hooks/get-update-key-result.tsx new file mode 100644 index 000000000..9a10e51f5 --- /dev/null +++ b/src/components/KeyResult/List/Body/Columns/Actions/hooks/get-update-key-result.tsx @@ -0,0 +1,29 @@ +import { useMutation } from '@tanstack/react-query' +import { useRouter } from 'next/router' +import { useContext } from 'react' + +import { ServicesContext } from 'src/components/Base/ServicesProvider/services-provider' +import { KeyResult } from 'src/services/key-result/@types' + +export function useUpdateKeyResult() { + const { servicesPromise } = useContext(ServicesContext) + const router = useRouter() + + const updateObjectiveMutate = useMutation({ + mutationFn: async ({ + keyResultId, + data, + }: { + keyResultId: string + data: Partial + }) => { + const { keyResult } = await servicesPromise + const response = await keyResult.patch(keyResultId, data) + return response + }, + onSuccess: (_data, _variables) => { + router.reload() + }, + }) + return updateObjectiveMutate +} diff --git a/src/components/KeyResult/List/Body/Columns/Actions/messages.ts b/src/components/KeyResult/List/Body/Columns/Actions/messages.ts index cfac20322..98c02e236 100644 --- a/src/components/KeyResult/List/Body/Columns/Actions/messages.ts +++ b/src/components/KeyResult/List/Body/Columns/Actions/messages.ts @@ -11,8 +11,10 @@ type KeyResultListBodyColumnActionsMessage = | 'deleteButtonMessage' | 'successfulCopyMessage' | 'copyButtonMessage' + | 'transferButtonMessage' | 'optionsButtonDesc' | 'editButtonLabelMessage' + | 'updateKeyResultObjectiveSucessToastMessage' export default defineMessages({ deleteIconDesc: { @@ -71,6 +73,11 @@ export default defineMessages({ id: 'AO/RyT', description: 'This message appears in the button that copies the title of the key result', }, + transferButtonMessage: { + defaultMessage: 'Mover este Resultado-Chave para outro objetivo', + id: 'PWVeP0', + description: 'This message appears in the button that copies the title of the key result', + }, successfulCopyMessage: { defaultMessage: 'Título copiado com sucesso.', id: 'VFj8OD', @@ -88,4 +95,10 @@ export default defineMessages({ id: 'r2E/o2', description: 'This button allow the user edit the Key Result.', }, + + updateKeyResultObjectiveSucessToastMessage: { + defaultMessage: 'O Resultado-Chave foi movido de objetivo com sucesso.', + id: 'd3sTZR', + description: 'This message appears on a successful toast when update objective team.', + }, }) diff --git a/src/components/KeyResult/List/Body/Columns/Actions/update-key-result-objective.tsx b/src/components/KeyResult/List/Body/Columns/Actions/update-key-result-objective.tsx new file mode 100644 index 000000000..beea82025 --- /dev/null +++ b/src/components/KeyResult/List/Body/Columns/Actions/update-key-result-objective.tsx @@ -0,0 +1,81 @@ +import { MenuItem, useToast } from '@chakra-ui/react' +import React, { useState } from 'react' +import { useIntl } from 'react-intl' + +import { UpdateModal } from 'src/components/KeyResult/UpdateModal' +import { KeyResult } from 'src/services/key-result/@types' +import { Objective } from 'src/services/objective/@types' + +import { useUpdateKeyResult } from './hooks/get-update-key-result' +import messages from './messages' + +interface UpdateKeyResultObjectiveOptionProperties { + keyResultId: KeyResult['id'] + value?: string + data?: Objective[] +} + +const transformObjectiveToMap = (objective: Objective[]) => { + const objectEntries = Object.values(objective) + + return new Map(objectEntries.map((object) => [object.id, object.title])) +} + +export const UpdateKeyResultObjectiveOption = ({ + keyResultId, + value, + data, +}: UpdateKeyResultObjectiveOptionProperties) => { + const intl = useIntl() + const toast = useToast() + + const { mutateAsync: updateKR } = useUpdateKeyResult() + + const [isDialogOpen, setIsDialogOpen] = useState(false) + + const handleClose = () => { + if (isDialogOpen) setIsDialogOpen(false) + } + + const handleClick = (event: React.MouseEvent) => { + if (!isDialogOpen) setIsDialogOpen(true) + event.stopPropagation() + } + + const handleSelect = async (objectiveId: string) => { + const kr = await updateKR({ + keyResultId, + data: { objectiveId }, + }) + + if (kr) { + toast({ + status: 'success', + title: intl.formatMessage(messages.updateKeyResultObjectiveSucessToastMessage), + }) + } else { + toast({ + status: 'error', + title: intl.formatMessage(messages.deleteErrorToastMessage), + }) + } + } + + return ( + <> + + {intl.formatMessage(messages.transferButtonMessage)} + + {data && value && ( + + )} + + ) +} diff --git a/src/components/KeyResult/Single/Sections/Checklist/ActionButtons/create-task-in-kr.tsx b/src/components/KeyResult/Single/Sections/Checklist/ActionButtons/create-task-in-kr.tsx index df2dcbacb..811df2468 100644 --- a/src/components/KeyResult/Single/Sections/Checklist/ActionButtons/create-task-in-kr.tsx +++ b/src/components/KeyResult/Single/Sections/Checklist/ActionButtons/create-task-in-kr.tsx @@ -6,9 +6,9 @@ import { useRecoilValue } from 'recoil' import { EditableInputField } from 'src/components/Base' import { PlusOutline } from 'src/components/Icon' +import { useAddTask } from 'src/components/KeyResult/hooks/use-add-task-new' import { NewTask } from 'src/components/Task/types' -import { useAddTask } from 'src/components/TaskManagement/hooks/use-add-task-new' -import { TASK_STATUS } from 'src/services/new-task-management/@types/task-status.enum' +import { TASK_STATUS } from 'src/services/task-management/@types/task-status.enum' import { keyResultAtomFamily } from 'src/state/recoil/key-result' import meAtom from 'src/state/recoil/user/me' @@ -80,7 +80,7 @@ export const CreateTaskButton = ({ supportTeam: [], tags: [], orderindex: 0, - key_result: keyResultID, + keyResult: keyResultID, cycle: '', }) } diff --git a/src/components/KeyResult/Single/Sections/Checklist/ActionButtons/delete-task.tsx b/src/components/KeyResult/Single/Sections/Checklist/ActionButtons/delete-task.tsx index f779998d4..ee6bb5246 100644 --- a/src/components/KeyResult/Single/Sections/Checklist/ActionButtons/delete-task.tsx +++ b/src/components/KeyResult/Single/Sections/Checklist/ActionButtons/delete-task.tsx @@ -2,7 +2,7 @@ import React, { Ref } from 'react' import { useIntl } from 'react-intl' import { DeleteButton } from 'src/components/Base/Button/delete-button' -import { useDeleteTaskByKr } from 'src/components/TaskManagement/hooks/use-delete-tasks' +import { useDeleteTaskByKr } from 'src/components/KeyResult/hooks/use-delete-tasks' import messages from './messages' diff --git a/src/components/KeyResult/Single/Sections/Checklist/checklist.tsx b/src/components/KeyResult/Single/Sections/Checklist/checklist.tsx index f1fa50fae..f77154b01 100644 --- a/src/components/KeyResult/Single/Sections/Checklist/checklist.tsx +++ b/src/components/KeyResult/Single/Sections/Checklist/checklist.tsx @@ -2,8 +2,8 @@ import { Stack, StyleProps } from '@chakra-ui/react' import styled from '@emotion/styled' import React, { useRef } from 'react' -import { Task } from 'src/services/new-task-management/@types/task.type' -import { TaskSummary } from 'src/services/okr/key-result/@types' +import { TaskSummary } from 'src/services/key-result/@types' +import { Task } from 'src/services/task-management/@types/task.type' import { CreateTaskButton } from './ActionButtons/create-task-in-kr' import { InlineTaskList } from './inline-tasklist' diff --git a/src/components/KeyResult/Single/Sections/Checklist/hooks/use-delete-task.ts b/src/components/KeyResult/Single/Sections/Checklist/hooks/use-delete-task.ts index 995e77e68..320e8b37b 100644 --- a/src/components/KeyResult/Single/Sections/Checklist/hooks/use-delete-task.ts +++ b/src/components/KeyResult/Single/Sections/Checklist/hooks/use-delete-task.ts @@ -12,8 +12,8 @@ export const useDeleteTask = () => { return useMutation({ mutationFn: async ({ taskId }: { taskId: string }) => { - const { newTaskManagement } = await servicesPromise - return newTaskManagement.removeTask(taskId) + const { taskManagement } = await servicesPromise + return taskManagement.removeTask(taskId) }, onSuccess: (_data, variables) => { queryClient.invalidateQueries({ queryKey: [`${MODULE}:${ACTION}:${variables.taskId}`] }) diff --git a/src/components/KeyResult/Single/Sections/Checklist/hooks/use-update-task.ts b/src/components/KeyResult/Single/Sections/Checklist/hooks/use-update-task.ts index d2a3142cc..b3f116c53 100644 --- a/src/components/KeyResult/Single/Sections/Checklist/hooks/use-update-task.ts +++ b/src/components/KeyResult/Single/Sections/Checklist/hooks/use-update-task.ts @@ -2,7 +2,7 @@ import { useMutation, useQueryClient } from '@tanstack/react-query' import { useContext } from 'react' import { ServicesContext } from 'src/components/Base/ServicesProvider/services-provider' -import { TaskUpdate } from 'src/services/new-task-management/@types/task-update.type' +import { TaskUpdate } from 'src/services/task-management/@types/task-update.type' export function useUpdateTask({ userId }: { userId: string }) { const { servicesPromise } = useContext(ServicesContext) @@ -10,8 +10,8 @@ export function useUpdateTask({ userId }: { userId: string }) { const updateTaskMutate = useMutation({ mutationFn: async ({ taskId, data }: { taskId: string; data: Partial }) => { - const { newTaskManagement } = await servicesPromise - const response = await newTaskManagement.updateTask(taskId, data) + const { taskManagement } = await servicesPromise + const response = await taskManagement.updateTask(taskId, data) return response }, onSuccess: (_data, _variables) => { diff --git a/src/components/KeyResult/Single/Sections/Checklist/inline-tasklist.tsx b/src/components/KeyResult/Single/Sections/Checklist/inline-tasklist.tsx index 123bbe451..11bc0fa03 100644 --- a/src/components/KeyResult/Single/Sections/Checklist/inline-tasklist.tsx +++ b/src/components/KeyResult/Single/Sections/Checklist/inline-tasklist.tsx @@ -22,9 +22,9 @@ import { useRecoilValue } from 'recoil' import { EditableInputField } from 'src/components/Base' import { NamedAvatar } from 'src/components/User' import { AllReachableUsers } from 'src/components/User/AllReachableUsers/wrapper' -import { TASK_STATUS } from 'src/services/new-task-management/@types/task-status.enum' -import { Task } from 'src/services/new-task-management/@types/task.type' -import { TaskSummary } from 'src/services/okr/key-result/@types' +import { TaskSummary } from 'src/services/key-result/@types' +import { TASK_STATUS } from 'src/services/task-management/@types/task-status.enum' +import { Task } from 'src/services/task-management/@types/task.type' import meAtom from 'src/state/recoil/user/me' import { DeleteTaskButton } from './ActionButtons/delete-task' diff --git a/src/components/KeyResult/Single/Sections/Checklist/wrapper.tsx b/src/components/KeyResult/Single/Sections/Checklist/wrapper.tsx index e7f9feb0e..1fd568466 100644 --- a/src/components/KeyResult/Single/Sections/Checklist/wrapper.tsx +++ b/src/components/KeyResult/Single/Sections/Checklist/wrapper.tsx @@ -7,9 +7,9 @@ import { useRecoilValue, useResetRecoilState, useSetRecoilState } from 'recoil' import { IntlLink } from 'src/components/Base' import { KeyResult } from 'src/components/KeyResult/types' -import { useTeamTasksData } from 'src/components/TaskManagement/hooks/new-task/use-get-team-tasks' -import { TASK_STATUS } from 'src/services/new-task-management/@types/task-status.enum' -import { Task } from 'src/services/new-task-management/@types/task.type' +import { useTeamTasksData } from 'src/components/TaskManagement/hooks/use-get-team-tasks' +import { TASK_STATUS } from 'src/services/task-management/@types/task-status.enum' +import { Task } from 'src/services/task-management/@types/task.type' import { keyResultAtomFamily } from 'src/state/recoil/key-result' import buildPartialSelector from 'src/state/recoil/key-result/build-partial-selector' import { @@ -68,7 +68,7 @@ export const KeyResultChecklistWrapper = ({ isFetching, isSuccess, refetch, - } = useTeamTasksData({ key_result_id__id: keyResultID } as ParsedUrlQuery) + } = useTeamTasksData({ key_result_id: keyResultID } as ParsedUrlQuery) const handleChecklistCreation = () => { refetch() @@ -114,7 +114,7 @@ export const KeyResultChecklistWrapper = ({ { isFetching, isSuccess, refetch, - } = useTeamTasksData({ key_result_id__id: keyResultID } as ParsedUrlQuery) + } = useTeamTasksData({ key_result_id: keyResultID } as ParsedUrlQuery) // Refetch tasks after creation const handleChecklistCreation = () => { diff --git a/src/components/KeyResult/UpdateModal/DataSelectMenu/index.tsx b/src/components/KeyResult/UpdateModal/DataSelectMenu/index.tsx new file mode 100644 index 000000000..fee8067a9 --- /dev/null +++ b/src/components/KeyResult/UpdateModal/DataSelectMenu/index.tsx @@ -0,0 +1,37 @@ +import { Heading, MenuItemOption } from '@chakra-ui/react' +import React from 'react' + +import { SelectMenu } from 'src/components/Base' + +interface DataSelectMenuProperties { + value: string + options: Map + onChange?: (newFormat: string) => void +} + +export const DataSelectMenu = ({ value, options, onChange }: DataSelectMenuProperties) => { + const currentOption = options.get(value) + const handleChange = (newFormat: string | string[]) => { + if (Array.isArray(newFormat)) throw new Error('Cannot parse string array') + if (onChange) onChange(newFormat as any) + } + + return ( + + {[...options].map(([key, value]) => ( + + + {value} + + + ))} + + ) +} diff --git a/src/components/KeyResult/UpdateModal/index.tsx b/src/components/KeyResult/UpdateModal/index.tsx new file mode 100644 index 000000000..322e91fb7 --- /dev/null +++ b/src/components/KeyResult/UpdateModal/index.tsx @@ -0,0 +1,105 @@ +import { + Box, + Button, + Flex, + Heading, + Modal, + ModalBody, + ModalContent, + ModalOverlay, + Text, +} from '@chakra-ui/react' +import React, { useState } from 'react' +import { useIntl } from 'react-intl' + +import ThreeUsersIcon from 'src/components/Icon/Users' + +import { DataSelectMenu } from './DataSelectMenu' +import messages from './messages' + +interface UpdateModalProprerties { + value: string + data: Map + updateType: string + isOpen: boolean + onClose: () => void + onSubmit: (teamId: string) => void +} + +export const UpdateModal = ({ + value, + data, + updateType, + isOpen, + onClose, + onSubmit, +}: UpdateModalProprerties) => { + const intl = useIntl() + + const [selectedItem, setSelectedItem] = useState(value) + + const handleSelect = () => { + onSubmit(selectedItem) + onClose() + } + + return ( + + + + + + + + + {intl.formatMessage(messages.modalTitle, { type: updateType })} + + + {intl.formatMessage(messages.modalBody, { option: updateType })} + + + + setSelectedItem(newFormat)} + /> + + + + + + + + + + ) +} diff --git a/src/components/KeyResult/UpdateModal/messages.ts b/src/components/KeyResult/UpdateModal/messages.ts new file mode 100644 index 000000000..d3b09bd0f --- /dev/null +++ b/src/components/KeyResult/UpdateModal/messages.ts @@ -0,0 +1,29 @@ +import { defineMessages } from 'react-intl' + +type UpdateModalMessages = 'modalBody' | 'confirmModalButton' | 'closeModalButton' | 'modalTitle' + +export default defineMessages({ + modalBody: { + defaultMessage: 'Pesquise ou selecione na lista o {option} que deseja vincular esse OKR', + id: 'AjIgUB', + description: 'This message appears on update modal body.', + }, + + modalTitle: { + defaultMessage: 'Alterar o {type} deste OKR', + id: 'urN1WV', + description: 'This message appears on update modal title.', + }, + + confirmModalButton: { + defaultMessage: 'ADICIONAR', + id: 'ZkqTBK', + description: 'This button is used to add selected members to a team.', + }, + + closeModalButton: { + defaultMessage: 'CANCELAR', + id: 'bdYpnS', + description: 'This button is used to close the modal to add team members.', + }, +}) diff --git a/src/components/TaskManagement/hooks/use-add-task-new.ts b/src/components/KeyResult/hooks/use-add-task-new.ts similarity index 75% rename from src/components/TaskManagement/hooks/use-add-task-new.ts rename to src/components/KeyResult/hooks/use-add-task-new.ts index 2f64fa1fb..b62fa9f5b 100644 --- a/src/components/TaskManagement/hooks/use-add-task-new.ts +++ b/src/components/KeyResult/hooks/use-add-task-new.ts @@ -2,7 +2,7 @@ import { useMutation, useQueryClient } from '@tanstack/react-query' import { useContext } from 'react' import { ServicesContext } from 'src/components/Base/ServicesProvider/services-provider' -import { TaskInsert } from 'src/services/new-task-management/new-task-management.service' +import { TaskInsert } from 'src/services/task-management/task-management.service' export function useAddTask() { const { servicesPromise } = useContext(ServicesContext) @@ -10,8 +10,8 @@ export function useAddTask() { const addTaskToKrMutate = useMutation({ mutationFn: async (data: TaskInsert) => { - const { newTaskManagement } = await servicesPromise - const response = await newTaskManagement.addTask(data) + const { taskManagement } = await servicesPromise + const response = await taskManagement.addTask(data) return response }, onSuccess: (_data, _variables) => { diff --git a/src/components/TaskManagement/hooks/use-delete-tasks.ts b/src/components/KeyResult/hooks/use-delete-tasks.ts similarity index 77% rename from src/components/TaskManagement/hooks/use-delete-tasks.ts rename to src/components/KeyResult/hooks/use-delete-tasks.ts index a40841018..48ccbc83f 100644 --- a/src/components/TaskManagement/hooks/use-delete-tasks.ts +++ b/src/components/KeyResult/hooks/use-delete-tasks.ts @@ -8,8 +8,8 @@ export const useDeleteTaskByKr = () => { return useMutation({ mutationFn: async ({ taskID }: { taskID: string }) => { - const { newTaskManagement } = await servicesPromise - return newTaskManagement.removeTask(taskID) + const { taskManagement } = await servicesPromise + return taskManagement.removeTask(taskID) }, }) } diff --git a/src/components/KeyResult/hooks/use-get-owner-key-results.ts b/src/components/KeyResult/hooks/use-get-owner-key-results.ts index 5a792b72c..3948607fc 100644 --- a/src/components/KeyResult/hooks/use-get-owner-key-results.ts +++ b/src/components/KeyResult/hooks/use-get-owner-key-results.ts @@ -6,14 +6,14 @@ import { ServicesContext } from 'src/components/Base/ServicesProvider/services-p const MODULE = 'KeyResult' const ACTION = 'getAllOwnerKR' -export function useOwnerKRData(owner: string, objectiveId: string) { +export function useOwnerKRData(owner: string) { const { servicesPromise } = useContext(ServicesContext) const query = useQuery({ queryKey: [`${MODULE}:${ACTION}:${owner}`], queryFn: async () => { const { keyResult } = await servicesPromise - const data = await keyResult.getKeyResultByOwner(owner, objectiveId) + const data = await keyResult.getKeyResultByOwner(owner) return data }, }) diff --git a/src/components/KeyResult/hooks/use-get-team-key-result.ts b/src/components/KeyResult/hooks/use-get-team-key-result.ts index d3c75d1d6..c3ac2d921 100644 --- a/src/components/KeyResult/hooks/use-get-team-key-result.ts +++ b/src/components/KeyResult/hooks/use-get-team-key-result.ts @@ -6,14 +6,14 @@ import { ServicesContext } from 'src/components/Base/ServicesProvider/services-p const MODULE = 'KeyResult' const ACTION = 'getAllTeamKR' -export function useTeamKRData(teamId: string, objectiveId: string) { +export function useTeamKRData(teamId: string, cycleFilter: string) { const { servicesPromise } = useContext(ServicesContext) const query = useQuery({ - queryKey: [`${MODULE}:${ACTION}:${teamId}`], + queryKey: [`${MODULE}:${ACTION}:${teamId}`, cycleFilter], queryFn: async () => { const { keyResult } = await servicesPromise - const data = await keyResult.getKeyResultTeam(teamId, objectiveId) + const data = await keyResult.getKeyResultTeam(teamId, cycleFilter) return data }, }) diff --git a/src/components/Objective/Accordion/Menu/hooks/get-company-cycles-by-team.tsx b/src/components/Objective/Accordion/Menu/hooks/get-company-cycles-by-team.tsx new file mode 100644 index 000000000..267cf42e0 --- /dev/null +++ b/src/components/Objective/Accordion/Menu/hooks/get-company-cycles-by-team.tsx @@ -0,0 +1,23 @@ +import { useQuery } from '@tanstack/react-query' +import { useContext } from 'react' + +import { ServicesContext } from 'src/components/Base/ServicesProvider/services-provider' + +const MODULE = 'cycle' +const ACTION = 'getCompanyCycles' + +export function useCycleByCompany(company_id?: string) { + const { servicesPromise } = useContext(ServicesContext) + + const query = useQuery({ + queryKey: [`${MODULE}:${ACTION}`, company_id], + queryFn: async () => { + const { cycle } = await servicesPromise + const data = await cycle.getTeamCycle(company_id ?? '') + return data + }, + enabled: Boolean(company_id), + }) + + return query +} diff --git a/src/components/Objective/Accordion/Menu/hooks/get-company-teams-by-team.tsx b/src/components/Objective/Accordion/Menu/hooks/get-company-teams-by-team.tsx new file mode 100644 index 000000000..cef36e0a9 --- /dev/null +++ b/src/components/Objective/Accordion/Menu/hooks/get-company-teams-by-team.tsx @@ -0,0 +1,23 @@ +import { useQuery } from '@tanstack/react-query' +import { useContext } from 'react' + +import { ServicesContext } from 'src/components/Base/ServicesProvider/services-provider' + +const MODULE = 'team' +const ACTION = 'getCompanyTeams' + +export function useTeamByCompany(company_id?: string) { + const { servicesPromise } = useContext(ServicesContext) + + const query = useQuery({ + queryKey: [`${MODULE}:${ACTION}`, company_id], + queryFn: async () => { + const { team } = await servicesPromise + const data = await team.getTeamByCompany(company_id ?? '') + return data + }, + enabled: Boolean(company_id), + }) + + return query +} diff --git a/src/components/Objective/Accordion/Menu/hooks/get-update-objective.tsx b/src/components/Objective/Accordion/Menu/hooks/get-update-objective.tsx new file mode 100644 index 000000000..5b78da394 --- /dev/null +++ b/src/components/Objective/Accordion/Menu/hooks/get-update-objective.tsx @@ -0,0 +1,31 @@ +import { useMutation } from '@tanstack/react-query' +import { useContext } from 'react' +import { useRecoilState } from 'recoil' + +import { ServicesContext } from 'src/components/Base/ServicesProvider/services-provider' +import { Objective } from 'src/services/objective/@types' +import { isReloadNecessary } from 'src/state/recoil/objective' + +export function useUpdateObjective() { + const { servicesPromise } = useContext(ServicesContext) + + const [_, setShouldUpdateObjectives] = useRecoilState(isReloadNecessary) + + const updateObjectiveMutate = useMutation({ + mutationFn: async ({ + objectiveId, + data, + }: { + objectiveId: string + data: Partial + }) => { + const { objective } = await servicesPromise + const response = await objective.patch(objectiveId, data) + return response + }, + onSuccess: (_data, _variables) => { + setShouldUpdateObjectives(true) + }, + }) + return updateObjectiveMutate +} diff --git a/src/components/Objective/Accordion/Menu/messages.ts b/src/components/Objective/Accordion/Menu/messages.ts index a5fa88fd1..d56a808e9 100644 --- a/src/components/Objective/Accordion/Menu/messages.ts +++ b/src/components/Objective/Accordion/Menu/messages.ts @@ -5,12 +5,17 @@ type ObjectiveAccordionMenuMessage = | 'firstMenuOption' | 'secondMenuOption' | 'thirdMenuOption' + | 'fourthMenuOption' + | 'fifthMenuOption' | 'deleteDialogKeyword' | 'deleteObjectiveFirstStageTitle' | 'deleteObjectiveFirstStageDescription' | 'deleteDialogConfirmationLabel' | 'deleteObjectiveSuccessToastMessage' | 'deleteObjectiveErrorToastMessage' + | 'updateObjectiveSucessToastTeamMessage' + | 'updateObjectiveSucessToastCycleMessage' + | 'updateObjectiveErrorToastMessage' export default defineMessages({ optionsButtonIconDesc: { @@ -41,6 +46,20 @@ export default defineMessages({ 'This is the third option that appears when you open the menu of a given objective inside the accordion button', }, + fourthMenuOption: { + defaultMessage: 'Mover este OKR para outro Time', + id: 'vnjJt9', + description: + 'This is the fourth option that appears when you open the menu of a given objective inside the accordion button', + }, + + fifthMenuOption: { + defaultMessage: 'Mover este OKR para outro Ciclo', + id: 'KlhDYs', + description: + 'This is the fourth option that appears when you open the menu of a given objective inside the accordion button', + }, + deleteDialogKeyword: { defaultMessage: 'EXCLUIR', id: 'N8Xs+4', @@ -78,4 +97,22 @@ export default defineMessages({ description: 'This message appears when the user tries to remove a given objective, but receives an error', }, + + updateObjectiveSucessToastTeamMessage: { + defaultMessage: 'O objetivo foi movido de time com sucesso.', + id: 'ws7tAT', + description: 'This message appears on a successful toast when update objective team.', + }, + + updateObjectiveSucessToastCycleMessage: { + defaultMessage: 'O objetivo foi movido de ciclo com sucesso.', + id: 'DIQdct', + description: 'This message appears on a successful toast when update objective team.', + }, + + updateObjectiveErrorToastMessage: { + defaultMessage: 'Desculpe, mas houve um erro inesperado. Tente novamente mais tarde.', + id: 'xSSnsF', + description: 'This message appears on a error toast when update objective team.', + }, }) diff --git a/src/components/Objective/Accordion/Menu/option-create-key-result.tsx b/src/components/Objective/Accordion/Menu/options/option-create-key-result.tsx similarity index 74% rename from src/components/Objective/Accordion/Menu/option-create-key-result.tsx rename to src/components/Objective/Accordion/Menu/options/option-create-key-result.tsx index 146e63cf0..fb87c5010 100644 --- a/src/components/Objective/Accordion/Menu/option-create-key-result.tsx +++ b/src/components/Objective/Accordion/Menu/options/option-create-key-result.tsx @@ -3,11 +3,10 @@ import React from 'react' import { useIntl } from 'react-intl' import { useSetRecoilState } from 'recoil' -import { keyResultInsertDrawerObjectiveID } from '../../../../state/recoil/key-result/drawers/insert/objective-id' -import { Objective } from '../../types' -import { stopAccordionOpen } from '../handlers' - -import messages from './messages' +import { keyResultInsertDrawerObjectiveID } from '../../../../../state/recoil/key-result/drawers/insert/objective-id' +import { Objective } from '../../../types' +import { stopAccordionOpen } from '../../handlers' +import messages from '../messages' interface CreateKeyResultOptionProperties { objectiveID?: Objective['id'] diff --git a/src/components/Objective/Accordion/Menu/option-delete-objective.tsx b/src/components/Objective/Accordion/Menu/options/option-delete-objective.tsx similarity index 90% rename from src/components/Objective/Accordion/Menu/option-delete-objective.tsx rename to src/components/Objective/Accordion/Menu/options/option-delete-objective.tsx index 5a8523fab..96a435c3f 100644 --- a/src/components/Objective/Accordion/Menu/option-delete-objective.tsx +++ b/src/components/Objective/Accordion/Menu/options/option-delete-objective.tsx @@ -10,13 +10,12 @@ import { Team } from 'src/components/Team/types' import { User } from 'src/components/User/types' import { userActiveObjectives } from 'src/state/recoil/user/active-objectives' -import { teamActiveObjectives } from '../../../../state/recoil/team/active-objectives' -import { DeleteResult } from '../../../types' -import { Objective } from '../../types' -import { stopAccordionOpen } from '../handlers' - -import messages from './messages' -import queries from './queries.gql' +import { teamActiveObjectives } from '../../../../../state/recoil/team/active-objectives' +import { DeleteResult } from '../../../../types' +import { Objective } from '../../../types' +import { stopAccordionOpen } from '../../handlers' +import messages from '../messages' +import queries from '../queries.gql' interface DeleteObjectiveOptionProperties { objectiveID?: Objective['id'] diff --git a/src/components/Objective/Accordion/Menu/options/option-update-objective-cycle.tsx b/src/components/Objective/Accordion/Menu/options/option-update-objective-cycle.tsx new file mode 100644 index 000000000..1fd3d2ff6 --- /dev/null +++ b/src/components/Objective/Accordion/Menu/options/option-update-objective-cycle.tsx @@ -0,0 +1,79 @@ +import { MenuItem, useToast } from '@chakra-ui/react' +import React, { useState } from 'react' +import { useIntl } from 'react-intl' + +import { UpdateModal } from 'src/components/KeyResult/UpdateModal' +import { Objective } from 'src/components/Objective/types' +import { Cycle } from 'src/services/cycle/@types' + +import { useUpdateObjective } from '../hooks/get-update-objective' +import messages from '../messages' + +interface UpdateObjectiveCycleOptionProperties { + objectiveId: Objective['id'] + value?: string + data?: Cycle[] +} + +const transformCycleToMap = (cycle: Cycle[]) => { + const objectEntries = Object.values(cycle) + + return new Map(objectEntries.map((object) => [object.id, object.period])) +} + +export const UpdateObjectiveCycleOption = ({ + objectiveId, + value, + data, +}: UpdateObjectiveCycleOptionProperties) => { + const intl = useIntl() + const toast = useToast() + + const { mutateAsync: updateObjective } = useUpdateObjective() + + const [isDialogOpen, setIsDialogOpen] = useState(false) + + const handleClose = () => { + if (isDialogOpen) setIsDialogOpen(false) + } + + const handleClick = (event: React.MouseEvent) => { + if (!isDialogOpen) setIsDialogOpen(true) + event.stopPropagation() + } + + const handleSelect = async (cycleId: string) => { + const objective = await updateObjective({ + objectiveId, + data: { cycleId }, + }) + + if (objective) { + toast({ + status: 'success', + title: intl.formatMessage(messages.updateObjectiveSucessToastCycleMessage), + }) + } else { + toast({ + status: 'error', + title: intl.formatMessage(messages.updateObjectiveErrorToastMessage), + }) + } + } + + return ( + <> + {intl.formatMessage(messages.fifthMenuOption)} + {value && data && ( + + )} + + ) +} diff --git a/src/components/Objective/Accordion/Menu/options/option-update-objective-team.tsx b/src/components/Objective/Accordion/Menu/options/option-update-objective-team.tsx new file mode 100644 index 000000000..fa435d603 --- /dev/null +++ b/src/components/Objective/Accordion/Menu/options/option-update-objective-team.tsx @@ -0,0 +1,79 @@ +import { MenuItem, useToast } from '@chakra-ui/react' +import React, { useState } from 'react' +import { useIntl } from 'react-intl' + +import { UpdateModal } from 'src/components/KeyResult/UpdateModal' +import { Objective } from 'src/components/Objective/types' +import { Team } from 'src/services/team/@types' + +import { useUpdateObjective } from '../hooks/get-update-objective' +import messages from '../messages' + +interface UpdateObjectiveTeamOptionProperties { + objectiveId: Objective['id'] + value?: string + data?: Team[] +} + +const transformTeamToMap = (team: Team[]) => { + const objectEntries = Object.values(team) + + return new Map(objectEntries.map((object) => [object.id, object.name])) +} + +export const UpdateObjectiveTeamOption = ({ + objectiveId, + value, + data, +}: UpdateObjectiveTeamOptionProperties) => { + const intl = useIntl() + const toast = useToast() + + const { mutateAsync: updateObjective } = useUpdateObjective() + + const [isDialogOpen, setIsDialogOpen] = useState(false) + + const handleClose = () => { + if (isDialogOpen) setIsDialogOpen(false) + } + + const handleClick = (event: React.MouseEvent) => { + if (!isDialogOpen) setIsDialogOpen(true) + event.stopPropagation() + } + + const handleSelect = async (teamId: string) => { + const objective = await updateObjective({ + objectiveId, + data: { teamId }, + }) + + if (objective) { + toast({ + status: 'success', + title: intl.formatMessage(messages.updateObjectiveSucessToastTeamMessage), + }) + } else { + toast({ + status: 'error', + title: intl.formatMessage(messages.updateObjectiveErrorToastMessage), + }) + } + } + + return ( + <> + {intl.formatMessage(messages.fourthMenuOption)} + {data && value && ( + + )} + + ) +} diff --git a/src/components/Objective/Accordion/Menu/option-update-objective.tsx b/src/components/Objective/Accordion/Menu/options/option-update-objective.tsx similarity index 90% rename from src/components/Objective/Accordion/Menu/option-update-objective.tsx rename to src/components/Objective/Accordion/Menu/options/option-update-objective.tsx index 294cc45f1..91cf91a02 100644 --- a/src/components/Objective/Accordion/Menu/option-update-objective.tsx +++ b/src/components/Objective/Accordion/Menu/options/option-update-objective.tsx @@ -5,9 +5,8 @@ import { useSetRecoilState } from 'recoil' import { ObjectiveViewMode, setObjectiveToMode } from 'src/state/recoil/objective/context' -import { stopAccordionOpen } from '../handlers' - -import messages from './messages' +import { stopAccordionOpen } from '../../handlers' +import messages from '../messages' interface UpdateObjectiveOptionProperties { objectiveID?: string diff --git a/src/components/Objective/Accordion/Menu/wrapper.tsx b/src/components/Objective/Accordion/Menu/wrapper.tsx index 8c1ab2c25..078d20ae4 100644 --- a/src/components/Objective/Accordion/Menu/wrapper.tsx +++ b/src/components/Objective/Accordion/Menu/wrapper.tsx @@ -14,10 +14,14 @@ import { teamAtomFamily } from '../../../../state/recoil/team' import { GraphQLEffect } from '../../../types' import { stopAccordionOpen } from '../handlers' +import { useCycleByCompany } from './hooks/get-company-cycles-by-team' +import { useTeamByCompany } from './hooks/get-company-teams-by-team' import messages from './messages' -import { CreateKeyResultOption } from './option-create-key-result' -import { DeleteObjectiveOption } from './option-delete-objective' -import { UpdateObjectiveOption } from './option-update-objective' +import { CreateKeyResultOption } from './options/option-create-key-result' +import { DeleteObjectiveOption } from './options/option-delete-objective' +import { UpdateObjectiveOption } from './options/option-update-objective' +import { UpdateObjectiveCycleOption } from './options/option-update-objective-cycle' +import { UpdateObjectiveTeamOption } from './options/option-update-objective-team' interface ObjectiveAccordionMenuProperties { teamID?: Team['id'] @@ -45,11 +49,18 @@ export const ObjectiveAccordionMenu = ({ const canCreateKeyResult = policyHolder?.keyResults?.policy?.create === GraphQLEffect.ALLOW const canUpdateObjective = objective?.policy?.update === GraphQLEffect.ALLOW // Const canDeleteObjective = objective?.policy?.delete === GraphQLEffect.ALLOW - const canDeleteObjective = userAuthzRole?.name !== AuthzUserRoles.teamMember + const canDeleteObjective = userAuthzRole?.name !== AuthzUserRoles.teamMember || isPersonalOkr + const isOwner = userID === myID && objective?.owner?.id === userID + const hasManagementRole = userAuthzRole?.name !== AuthzUserRoles.teamMember || isOwner const hasAnyOptions = isPersonalOkr ? userID === myID : !isLoaded || canCreateKeyResult || canUpdateObjective || canDeleteObjective + const teamId = teamID ?? objective?.teamId ?? team?.id + + const { data: teamList } = useTeamByCompany(teamId) + const { data: cycleList } = useCycleByCompany(teamId) + return ( @@ -80,6 +91,16 @@ export const ObjectiveAccordionMenu = ({ {canDeleteObjective && ( )} + {canUpdateObjective && hasManagementRole && !isPersonalOkr && objectiveID && ( + <> + + + + )} diff --git a/src/components/Page/MyThings/ActiveCycles/my-tasks/tasks.tsx b/src/components/Page/MyThings/ActiveCycles/my-tasks/tasks.tsx index c7953d647..cfa3ae639 100644 --- a/src/components/Page/MyThings/ActiveCycles/my-tasks/tasks.tsx +++ b/src/components/Page/MyThings/ActiveCycles/my-tasks/tasks.tsx @@ -5,7 +5,7 @@ import { useIntl } from 'react-intl' import { Accordion } from 'src/components/Base/Accordion' import { KeyResultDynamicIcon } from 'src/components/KeyResult' import { KeyResultChecklist } from 'src/components/KeyResult/Single/Sections/Checklist/checklist' -import { KeyResultWithTasks } from 'src/services/okr/key-result/@types' +import { KeyResultWithTasks } from 'src/services/key-result/@types' import messages from './messages' diff --git a/src/components/Page/Team/Tabs/BoardFilters/Modal/CycleModal/index.tsx b/src/components/Page/Team/Tabs/BoardFilters/Modal/CycleModal/index.tsx new file mode 100644 index 000000000..e564c4e62 --- /dev/null +++ b/src/components/Page/Team/Tabs/BoardFilters/Modal/CycleModal/index.tsx @@ -0,0 +1,74 @@ +import React, { ChangeEvent, useMemo } from 'react' + +import { useGetTeamCyclesDate } from 'src/components/TaskManagement/hooks/use-get-team-cycles-date' + +import styles from '../../filters.module.css' + +interface CycleModalProperties { + isOpen: boolean + teamId: string + value?: { + year?: string + quarter?: string + } + handleChange: (filter: string) => (event: ChangeEvent) => void +} + +export const CycleModal = ({ isOpen, value, teamId, handleChange }: CycleModalProperties) => { + const { data: cycles } = useGetTeamCyclesDate(teamId) + + const anualCycles = useMemo( + () => cycles?.filter((cycle) => cycle.cadence === 'YEARLY') ?? [], + [cycles], + ) + + const quarterCycles = useMemo( + () => cycles?.filter((cycle) => cycle.cadence === 'QUARTERLY') ?? [], + [cycles], + ) + + return isOpen ? ( +
+

Ciclo Anual

+
+ {anualCycles + ?.sort((a, b) => (a.date_start > b.date_start ? 1 : -1)) + .map((cycle) => ( + + ))} +
+ {value?.year && ( + <> + +

Trimestre

+
+ {quarterCycles + .filter((cycle) => cycle.parent === value.year) + .map((cycle) => ( + + ))} +
+ + )} +
+ ) : // eslint-disable-next-line unicorn/no-null + null +} diff --git a/src/components/Page/Team/Tabs/BoardFilters/Modal/DoneModal/index.tsx b/src/components/Page/Team/Tabs/BoardFilters/Modal/DoneModal/index.tsx new file mode 100644 index 000000000..d911e4f87 --- /dev/null +++ b/src/components/Page/Team/Tabs/BoardFilters/Modal/DoneModal/index.tsx @@ -0,0 +1,57 @@ +import React, { ChangeEvent } from 'react' + +import styles from '../../filters.module.css' + +interface DoneModalProperties { + isOpen: boolean + value?: string + handleChange: (filter: string) => (event: ChangeEvent) => void +} + +export const DoneModal = ({ isOpen, value, handleChange }: DoneModalProperties) => { + return isOpen ? ( +
+ + + + +
+ ) : // eslint-disable-next-line unicorn/no-null + null +} diff --git a/src/components/Page/Team/Tabs/BoardFilters/Modal/KeyResultModal/index.tsx b/src/components/Page/Team/Tabs/BoardFilters/Modal/KeyResultModal/index.tsx new file mode 100644 index 000000000..67d52bc9b --- /dev/null +++ b/src/components/Page/Team/Tabs/BoardFilters/Modal/KeyResultModal/index.tsx @@ -0,0 +1,80 @@ +import { Spinner } from '@chakra-ui/react' +import React, { ChangeEvent, useMemo, useState } from 'react' + +import { SearchBar } from 'src/components/Base/SearchBar/wrapper' +import { useTeamKRData } from 'src/components/KeyResult/hooks/use-get-team-key-result' +import { + KeyResult, + KeyResultFormat, + KeyResultMode, + KeyResultType, +} from 'src/services/key-result/@types' + +import styles from '../../filters.module.css' + +interface KeyResultModalProperties { + isOpen: boolean + teamId: string + cycleFilter: string + value?: string + handleChange: (filter: string) => (event: ChangeEvent) => void +} + +export const KeyResultModal = ({ + isOpen, + value, + teamId, + cycleFilter, + handleChange, +}: KeyResultModalProperties) => { + const [search, setSearch] = useState('') + + const { data: KeyResultData, isFetching: krFetching } = useTeamKRData(teamId, cycleFilter) + + const KeyResult = useMemo(() => { + // Solução não inteligente, mas funcional por enquanto + const EmptyKeyResult: KeyResult = { + id: 'empty', + title: 'Tarefas sem Resultado-Chave', + goal: 100, + initialValue: 0, + description: '', + format: KeyResultFormat.NUMBER, + objectiveId: '', + team: '', + ownerId: '', + type: KeyResultType.ASCENDING, + mode: KeyResultMode.PUBLISHED, + commentCount: JSON.parse('{}'), + createdAt: new Date(), + updatedAt: new Date(), + lastUpdatedBy: '', + } + return [EmptyKeyResult, ...(KeyResultData?.filter((kr) => kr.title.includes(search)) ?? [])] + }, [KeyResultData, search]) + + return isOpen ? ( +
+ + {krFetching ? ( + + ) : KeyResult?.length === 0 ? ( +

Nenhum Resultado-chave Encontrado

+ ) : ( + KeyResult?.map((kr) => ( + + )) + )} +
+ ) : // eslint-disable-next-line unicorn/no-null + null +} diff --git a/src/components/Page/Team/Tabs/BoardFilters/Modal/index.tsx b/src/components/Page/Team/Tabs/BoardFilters/Modal/index.tsx new file mode 100644 index 000000000..c343ed3f8 --- /dev/null +++ b/src/components/Page/Team/Tabs/BoardFilters/Modal/index.tsx @@ -0,0 +1,189 @@ +/* eslint-disable react/jsx-no-useless-fragment */ +import React, { ChangeEvent, useState } from 'react' +import { useIntl } from 'react-intl' + +import ChevronDownIcon from 'src/components/Icon/ChevronDown' + +import { FiltersData } from '..' +import styles from '../filters.module.css' +import messages from '../messages' + +import { CycleModal } from './CycleModal' +import { DoneModal } from './DoneModal' +import { KeyResultModal } from './KeyResultModal' + +interface FilterModalProperties { + isOpen: boolean + teamId: string + filterData: FiltersData + setFilterData: React.Dispatch> + handleQuery: (key: string, newValue?: string) => boolean +} + +const checkValue = (oldValue: string | undefined, newValue: string) => { + return oldValue === newValue ? undefined : newValue +} + +export const FilterModal = ({ + isOpen, + filterData, + setFilterData, + teamId, + handleQuery, +}: FilterModalProperties) => { + const intl = useIntl() + + const [isKrOpen, setIsKrOpen] = useState(false) + const [isCycleOpen, setIsCycleOpen] = useState(false) + const [isDoneOpen, setIsDoneOpen] = useState(false) + + const closeAll = () => { + setIsKrOpen(false) + setIsCycleOpen(false) + setIsDoneOpen(false) + } + + const handleChange = (filter: string) => (event: ChangeEvent) => { + setFilterData((previousValue) => { + const data = event.target.value + if (filter === 'kr') { + handleQuery('key_result_id', checkValue(previousValue.kr, data)) + return { + ...previousValue, + kr: checkValue(previousValue.kr, data), + } + } + + if (filter === 'cycleYear') { + handleQuery( + 'cy', + `${checkValue(previousValue.cycle?.year, data) ?? ''} + ${ + previousValue.cycle?.quarter ?? '' + }`, + ) + return { + ...previousValue, + cycle: { + year: checkValue(previousValue.cycle?.year, data), + quarter: previousValue.cycle?.quarter, + }, + } + } + + if (filter === 'cycleQuarter') { + handleQuery( + 'cy', + `${previousValue.cycle?.year ?? ''} + ${ + checkValue(previousValue.cycle?.quarter, data) ?? '' + }`, + ) + return { + ...previousValue, + cycle: { + quarter: checkValue(previousValue.cycle?.quarter, data), + year: previousValue.cycle?.year, + }, + } + } + + if (filter === 'showDone') { + handleQuery('show_done', data) + + return { + ...previousValue, + showDone: data === 'none' ? undefined : data, + } + } + + return previousValue + }) + } + + return ( + <> + {isOpen && ( +
+ {/* KR */} + + + + {/* CYCLE */} + + + + {/* DONE */} + + +
+ )} + + ) +} diff --git a/src/components/Page/Team/Tabs/BoardFilters/filters.module.css b/src/components/Page/Team/Tabs/BoardFilters/filters.module.css new file mode 100644 index 000000000..c936a09ea --- /dev/null +++ b/src/components/Page/Team/Tabs/BoardFilters/filters.module.css @@ -0,0 +1,147 @@ +.modal_button { + display: flex; + align-items: baseline; + color: var(--chakra-colors-brand-500); + border: 1px solid var(--chakra-colors-brand-200); + font-weight: 500; + font-size: 15px; + border-radius: 4px; + padding: 5px 11px; + margin-right: 10px; + transition: 300ms; +} + +.modal_text { + margin: 0; + margin-right: 5px; +} + +.modal_content { + position: absolute; + background-color: #fff; + width: 170px; + border: 1px solid var(--chakra-colors-new-gray-200); + display: flex; + flex-direction: column; + padding: 5px; + border-radius: 4px; + transition: 300ms; + box-shadow: 0px 5px 10px 5px #B5C0DB1A; + z-index: 9; +} + +.modal_inner_button { + display: flex; + width: 100%; + padding: 10px; + font-size: 14px; + font-weight: 450; + align-items: center; + justify-content: space-between; + border-radius: 4px; +} + +.modal_inner_button_text { + color: var(--chakra-colors-gray-500); +} + +.sub_modal_content { + position: absolute; + display: flex; + flex-direction: column; + top: 15px; + left: 100%; + min-width: 225px; + max-height: 350px; + margin-left: 10px; + padding: 10px; + background-color: #fff; + border: 1px solid var(--chakra-colors-new-gray-200); + overflow: auto; +} + +.sub_modal_title { + padding: 0 8px; + font-weight: 450; + font-size: 12px; + color: #8193AB; +} + +.checkbox { + display: inline-block; + margin: 15px 10px; + cursor: pointer; +} + +.checkbox input { + display: none; +} + +.checkbox span { + position: relative; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; /* Limita a 2 linhas */ + overflow: hidden; + text-overflow: ellipsis; + min-height: 25px; + line-height: 18px; + font-weight: 450; + font-size: 14px; + /* Adicione padding-left para compensar a largura do :before */ + padding-left: 34px; +} + +.checkbox span:before, +.checkbox span:after { + content: ''; +} + +.checkbox span:before { + border: 1px solid var(--chakra-colors-gray-100); + width: 24px; + height: 24px; + position: absolute; + left: 0; + top: 0; + border-radius: 5px; +} + +.checkbox span:hover:before { + border-color: var(--chakra-colors-brand-500); + transition: 300ms; +} + +.checkbox span:after { + background: var(--chakra-colors-brand-500); + width: 24px; + height: 24px; + border-radius: 5px; + position: absolute; + left: 0; + top: 0; + transition: 300ms; + opacity: 0; + content: ''; /* Precisa ser vazio se usar background-image */ + background-image: url('/icons/check.svg'); /* Ou .png */ + background-size: auto; /* Garante que a imagem se ajuste */ + background-repeat: no-repeat; + background-position: center; +} + +.checkbox input:checked+span:after { + opacity: 1; +} + +.no_kr_text { + color: var(--chakra-colors-gray-500); + text-align: center; + padding: 20px 0; +} + +.divider { + margin: 8px 0; + width: 100%; + border: 1px solid #F3F5FA; + height: 1px +} diff --git a/src/components/Page/Team/Tabs/BoardFilters/index.tsx b/src/components/Page/Team/Tabs/BoardFilters/index.tsx new file mode 100644 index 000000000..f925846ae --- /dev/null +++ b/src/components/Page/Team/Tabs/BoardFilters/index.tsx @@ -0,0 +1,91 @@ +import { useRouter } from 'next/router' +import React, { useEffect, useState } from 'react' +import { useIntl } from 'react-intl' + +import ChevronDownIcon from 'src/components/Icon/ChevronDown' + +import { FilterModal } from './Modal' +import styles from './filters.module.css' +import messages from './messages' + +interface BoardFiltersProperties { + teamId: string +} + +export interface FiltersData { + kr?: string + cycle?: { + year?: string + quarter?: string + } + showDone?: string +} + +export const BoardFilters = ({ teamId }: BoardFiltersProperties) => { + const intl = useIntl() + const router = useRouter() + + const [isOpen, setIsOpen] = useState(false) + + const [filterData, setFilterData] = useState({ + kr: undefined, + cycle: { + year: undefined, + quarter: undefined, + }, + showDone: undefined, + }) + + // Update site Query Params + const handleQuery = (key: string, newValue?: string) => { + router.query[key] = newValue === 'none' ? undefined : newValue + router.push(router, undefined, { shallow: true }) + return true + } + + const checkQuery = (index: string) => { + return router.query[index] === '' || router.query[index] === 'none' + ? undefined + : (router.query[index] as string) + } + + useEffect(() => { + const cycle = checkQuery('cy') + + setFilterData({ + kr: checkQuery('key_result_id'), + cycle: { + year: cycle && cycle.length > 0 ? cycle.split('+')[0].replace(/\s/g, '') : undefined, + quarter: cycle && cycle.length > 1 ? cycle.split('+')[1].replace(/\s/g, '') : undefined, + }, + showDone: checkQuery('show_done'), + }) + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [router.query]) + + return ( +
+ + +
+ ) +} diff --git a/src/components/Page/Team/Tabs/BoardFilters/messages.ts b/src/components/Page/Team/Tabs/BoardFilters/messages.ts new file mode 100644 index 000000000..f31b2b799 --- /dev/null +++ b/src/components/Page/Team/Tabs/BoardFilters/messages.ts @@ -0,0 +1,24 @@ +import { defineMessages } from 'react-intl' + +type SelectMenuMessage = 'iconChevronDownDesc' | 'iconChevronUpDesc' | 'defaultPlaceholder' + +export default defineMessages({ + iconChevronDownDesc: { + defaultMessage: 'Uma seta para baixo. Ao clicar nela você abrirá o menu de seleção', + id: 'rH+dGv', + description: + 'This is the desc attribute of our chevron down icon. It is used by screen readers', + }, + + iconChevronUpDesc: { + defaultMessage: 'Uma seta para cima. Ao clicar nela você fechará o menu de seleção', + id: 'ND5T6U', + description: 'This is the desc attribute of our chevron up icon. It is used by screen readers', + }, + + defaultPlaceholder: { + defaultMessage: 'Filtros', + id: 'IldkUk', + description: 'This is the default placeholder while selecting a given value in a select menu', + }, +}) diff --git a/src/components/Page/Team/Tabs/content/board-tab-content.tsx b/src/components/Page/Team/Tabs/content/board-tab-content.tsx index 709c11b99..0dd03d428 100644 --- a/src/components/Page/Team/Tabs/content/board-tab-content.tsx +++ b/src/components/Page/Team/Tabs/content/board-tab-content.tsx @@ -1,12 +1,10 @@ -import { Box, HStack, MenuItemOption, Stack, Text } from '@chakra-ui/react' +import { Box, HStack, Stack, Text } from '@chakra-ui/react' import { useRouter } from 'next/router' import React, { useEffect, useState } from 'react' import { useIntl } from 'react-intl' import { useRecoilValue, useSetRecoilState } from 'recoil' -import { SelectMenu } from 'src/components/Base' import { SearchBar } from 'src/components/Base/SearchBar/wrapper' -import { useTeamKRData } from 'src/components/KeyResult/hooks/use-get-team-key-result' import BoardWrapper from 'src/components/TaskManagement/Board/wrapper' import { TaskInsertDrawer } from 'src/components/TaskManagement/InsertDrawer/wrapper' import { TaskDrawer } from 'src/components/TaskManagement/TaskDrawer' @@ -14,6 +12,8 @@ import { Team } from 'src/components/Team/types' import { teamAtomFamily } from 'src/state/recoil/team' import { selectedTeamIdHighlight } from 'src/state/recoil/team/highlight/selected-team-id-highlight' +import { BoardFilters } from '../BoardFilters' + import messages from './messages' interface BoardTabContentProperties { @@ -21,40 +21,36 @@ interface BoardTabContentProperties { } const TasksTabContent = ({ teamId }: BoardTabContentProperties) => { - const router = useRouter() - const setSelectedTeamId = useSetRecoilState(selectedTeamIdHighlight) const team = useRecoilValue(teamAtomFamily(teamId)) const [searchTaskInput, setSearchTaskInput] = useState() - const { data: KeyResultData, isFetching: krFetching } = useTeamKRData(teamId, '0') + const [resetFilters, setResetFilters] = useState(false) const intl = useIntl() + const router = useRouter() + + useEffect(() => { + if ( + router.query.key_result_id || + router.query.cy || + router.query.cy || + router.query.show_done + ) { + setResetFilters(true) + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [router.query]) useEffect(() => { setSelectedTeamId(teamId) }, [setSelectedTeamId, teamId]) - const handleQuery = (key: string) => (newValue: string | string[]) => { - if (newValue !== 'none') { - router.query[key] = newValue - router.push(router) - return true - } - - router.query[key] = undefined + const onResetFilters = () => { + router.query.key_result_id = undefined + router.query.show_done = undefined + router.query.cy = undefined router.push(router) - return true - } - - const krSelected = (): string | undefined => { - const key = router.query.kr ? router.query.kr : undefined - if (key) { - const selectedKr = KeyResultData?.find((kr) => kr.id === key) - return selectedKr ? selectedKr.title : undefined - } - - return key } return ( @@ -64,25 +60,18 @@ const TasksTabContent = ({ teamId }: BoardTabContentProperties) => { {intl.formatMessage(messages.boardTabHeaderTitle, { team: team?.name })} - - Selecionar - {KeyResultData?.map((keyResult) => ( - - {keyResult.title} - - ))} - + {resetFilters && ( + onResetFilters()} + > + Limpar filtros + + )} + { - const { mutate: archiveMutate } = useArchiveColumn(boardDomain, teamId) - const { mutate: deleteMutate } = useDeleteColumn(boardDomain, teamId) - - const [isDialogOpen, setDialogOpen] = useState(false) - - const archiveSubmit = useCallback(() => { - archiveMutate({ ids }) - }, [archiveMutate, ids]) - - const deleteSubmit = useCallback(() => { - deleteMutate({ ids }) - }, [deleteMutate, ids]) - - return ( - - setDialogOpen(false)} - /> - - - - - Arquivar todas as tarefas - setDialogOpen(true)}> - Excluir todas as tarefas - - - - ) -} - -export default ArchiveAndDeleteMenu diff --git a/src/components/TaskManagement/Board/components/auto-resize-text-area.tsx b/src/components/TaskManagement/Board/components/auto-resize-text-area.tsx deleted file mode 100644 index 20e412d5e..000000000 --- a/src/components/TaskManagement/Board/components/auto-resize-text-area.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { Textarea, TextareaProps } from '@chakra-ui/react' -import React from 'react' -import ResizeTextarea from 'react-textarea-autosize' - -const AutoResizeTextarea = React.forwardRef( - (properties, reference) => { - return