From e00f10f324fea2a1b0d8306784f9eb6847b0fa38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=A1ssio=20Caique=20Dias=20Freire?= Date: Wed, 6 Dec 2023 13:10:46 -0300 Subject: [PATCH 01/44] =?UTF-8?q?fix:=20nome=20da=20aplica=C3=A7=C3=A3o=20?= =?UTF-8?q?no=20package.json?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4767cd93..2c15e721 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "Trelássio", + "name": "trelassio", "version": "4.0.0", "private": true, "description": "", From b439766e826c2fa51ec100423a4abba9dc0ef007 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=A1ssio=20Caique=20Dias=20Freire?= Date: Wed, 6 Dec 2023 13:12:11 -0300 Subject: [PATCH 02/44] feat: adiciona arquivo para suporte ao typescript --- tsconfig.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 tsconfig.json diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..d5ade8a2 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "target": "es2016", + "module": "commonjs", + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "skipLibCheck": true, + }, + "include": ["resources/js-vue-3/**/*"], +} \ No newline at end of file From f28f4d7d706aa917b31dcc1b2e4edb0e4429db3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=A1ssio=20Caique=20Dias=20Freire?= Date: Wed, 6 Dec 2023 13:15:16 -0300 Subject: [PATCH 03/44] =?UTF-8?q?feat:=20configura=20valida=C3=A7=C3=A3o?= =?UTF-8?q?=20de=20formul=C3=A1rios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/js-vue-3/app.js | 9 +++ resources/js-vue-3/package.json | 5 +- resources/js-vue-3/shared/validation/index.js | 34 +++++++++++ resources/js-vue-3/shared/validation/pt_BR.js | 32 +++++++++++ .../shared/validation/pt_BR_validation.js | 28 +++++++++ .../js-vue-3/shared/validation/rules/cnpj.js | 9 +++ .../js-vue-3/shared/validation/utils/cnpj.js | 57 +++++++++++++++++++ 7 files changed, 172 insertions(+), 2 deletions(-) create mode 100644 resources/js-vue-3/shared/validation/index.js create mode 100644 resources/js-vue-3/shared/validation/pt_BR.js create mode 100644 resources/js-vue-3/shared/validation/pt_BR_validation.js create mode 100644 resources/js-vue-3/shared/validation/rules/cnpj.js create mode 100644 resources/js-vue-3/shared/validation/utils/cnpj.js diff --git a/resources/js-vue-3/app.js b/resources/js-vue-3/app.js index 0bcded6f..135c166b 100644 --- a/resources/js-vue-3/app.js +++ b/resources/js-vue-3/app.js @@ -3,6 +3,8 @@ import { createApp } from 'vue'; import { createRouter, createWebHistory } from 'vue-router'; import Cuida from '@sysvale/cuida'; import SHOW from '@sysvale/show'; +import * as VeeValidate from 'vee-validate'; +import validationConfig from './shared/validation'; import App from './App.vue'; @@ -24,6 +26,13 @@ vueApp.use(Cuida); vueApp.use(SHOW); vueApp.use(router); +vueApp.use(VeeValidate, { + inject: true, + fieldsBagName: 'veeFields', +}); + +validationConfig(VeeValidate); + router.isReady().then(() => { vueApp.mount("#app-vue-3"); }) \ No newline at end of file diff --git a/resources/js-vue-3/package.json b/resources/js-vue-3/package.json index c9f07dbf..2cabb517 100644 --- a/resources/js-vue-3/package.json +++ b/resources/js-vue-3/package.json @@ -26,8 +26,8 @@ "vitest": "^0.22.1" }, "dependencies": { - "@sysvale/cuida": "^3.0.0-alpha.109", - "@sysvale/show": "^0.2.0", + "@vee-validate/i18n": "^4.10.5", + "@vee-validate/rules": "^4.10.5", "@vitejs/plugin-vue": "^3.0.3", "chart.js": "^4.0.1", "fibers": "^5.0.3", @@ -42,6 +42,7 @@ "pinia": "^2.0.22", "sweetalert2": "^11.6.7", "tippy.js": "^6.3.7", + "vee-validate": "^4.12.2", "vue": "^3.1.0", "vue-loader": "^17.0.0", "vue-multiselect": "^3.0.0-alpha.2", diff --git a/resources/js-vue-3/shared/validation/index.js b/resources/js-vue-3/shared/validation/index.js new file mode 100644 index 00000000..1ed2049d --- /dev/null +++ b/resources/js-vue-3/shared/validation/index.js @@ -0,0 +1,34 @@ +import { localize } from '@vee-validate/i18n'; +import { + required, email, min, min_value, integer, regex, +} from '@vee-validate/rules'; +import isValidCNPJ from './rules/cnpj'; +import pt_BR_validation from './pt_BR_validation'; + +export default (VeeValidate) => { + VeeValidate.configure({ + // Generates an English message locale generator + generateMessage: localize('pt-BR', { + messages: pt_BR_validation, + }), + }); + + VeeValidate.defineRule('required', required); + VeeValidate.defineRule('not_empty', (value) => { + if (!value || value?.length == 0) { + return 'O campo não pode ser vazio'; + } + return true; + }); + VeeValidate.defineRule('cnpj', (value) => { + if (!isValidCNPJ(value)) { + return 'CNPJ inválido'; + } + return true; + }); + VeeValidate.defineRule('email', email); + VeeValidate.defineRule('min', min); + VeeValidate.defineRule('min_value', min_value); + VeeValidate.defineRule('integer', integer); + VeeValidate.defineRule('regex', regex); +}; diff --git a/resources/js-vue-3/shared/validation/pt_BR.js b/resources/js-vue-3/shared/validation/pt_BR.js new file mode 100644 index 00000000..a53ee8d5 --- /dev/null +++ b/resources/js-vue-3/shared/validation/pt_BR.js @@ -0,0 +1,32 @@ +export default { + after: (field, [target]) => `O ${field} deve estar depois do ${target}.`, + alpha_dash: (field) => `O ${field} deve conter letras, números e traços.`, + alpha_num: (field) => `O ${field} deve conter somente letras e números.`, + alpha_spaces: (field) => `O ${field} só pode conter caracteres alfabéticos e espaços.`, + alpha: (field) => `O ${field} deve conter somente letras.`, + before: (field, [target]) => `O ${field} deve estar antes do ${target}.`, + between: (field, [min, max]) => `O ${field} deve estar entre ${min} e ${max}.`, + confirmed: (field, [confirmedField]) => `O ${field} e ${confirmedField} devem ser iguais.`, + credit_card: (field) => `O ${field} é inválido.`, + date_between: (field, [min, max]) => `O ${field} deve estar entre ${min} e ${max}.`, + date_format: (field, [format]) => `O ${field} deve estar no formato ${format}.`, + decimal: (field) => `O ${field} é obrigatório.`, + digits: (field, [length]) => `O ${field} deve ser numérico e ter ${length} dígitos.`, + dimensions: (field, [width, height]) => `O ${field} deve ter ${width} pixels de largura por ${height} pixels de altura.`, + email: (field) => `O ${field} deve ser um email válido.`, + ext: (field) => `O ${field} deve ser um arquivo válido.`, + image: (field) => `O ${field} deve ser uma imagem.`, + in: (field) => `O ${field} deve ter um valor válido.`, + ip: (field) => `O ${field} deve ser um endereço IP válido.`, + max: (field, [length]) => `O ${field} não deve ter mais que ${length} caracteres.`, + max_value: (field, [max]) => `O ${field} precisa ser ${max} ou menor.`, + mimes: (field) => `O ${field} deve ser um tipo de arquivo válido.`, + min: (field, [length]) => `O ${field} deve conter pelo menos ${length} caracteres.`, + min_value: (field, [min]) => `O ${field} precisa ser ${min} ou maior.`, + not_in: (field) => `O ${field} deve ser um valor válido.`, + numeric: (field) => `O ${field} deve conter apenas números`, + regex: (field) => `O ${field} possui um formato inválido.`, + required: (field) => `O ${field} é obrigatório.`, + size: (field, [size]) => `O ${field} deve ser menor que ${size} KB.`, + url: (field) => `O ${field} não é uma URL válida.`, +}; diff --git a/resources/js-vue-3/shared/validation/pt_BR_validation.js b/resources/js-vue-3/shared/validation/pt_BR_validation.js new file mode 100644 index 00000000..116a39c8 --- /dev/null +++ b/resources/js-vue-3/shared/validation/pt_BR_validation.js @@ -0,0 +1,28 @@ +export default { + alpha: 'O campo {field} deve conter somente letras', + alpha_dash: 'O campo {field} deve conter letras, números e traços', + alpha_num: 'O campo {field} deve conter somente letras e números', + alpha_spaces: 'O campo {field} só pode conter caracteres alfabéticos e espaços', + between: 'O campo {field} deve estar entre 0:{min} e 1:{max}', + confirmed: 'A confirmação do campo {field} deve ser igual', + digits: 'O campo {field} deve ser numérico e ter exatamente 0:{length} dígitos', + dimensions: 'O campo {field} deve ter 0:{width} pixels de largura por 1:{height} pixels de altura', + email: 'O campo {field} deve ser um email válido', + excluded: 'O campo {field} deve ser um valor válido', + ext: 'O campo {field} deve ser um arquivo válido', + image: 'O campo {field} deve ser uma imagem', + integer: 'O campo {field} deve ser um número inteiro', + is: 'O valor inserido no campo {field} não é válido', + one_of: 'O campo {field} deve ter um valor válido', + length: 'O tamanho do campo {field} deve ser 0:{length}', + max: 'O campo {field} não deve ter mais que 0:{length} caracteres', + max_value: 'O campo {field} precisa ser 0:{max} ou menor', + mimes: 'O campo {field} deve ser um tipo de arquivo válido', + min: 'O campo {field} deve conter pelo menos 0:{length} caracteres', + min_value: 'O campo {field} precisa ser 0:{min} ou maior', + numeric: 'O campo {field} deve conter apenas números', + regex: 'O campo {field} possui um formato inválido', + required: 'O campo {field} é obrigatório', + required_if: 'O campo {field} é obrigatório', + size: 'O campo {field} deve ser menor que 0:{size}KB', +}; diff --git a/resources/js-vue-3/shared/validation/rules/cnpj.js b/resources/js-vue-3/shared/validation/rules/cnpj.js new file mode 100644 index 00000000..dc086210 --- /dev/null +++ b/resources/js-vue-3/shared/validation/rules/cnpj.js @@ -0,0 +1,9 @@ +import { defineRule } from 'vee-validate'; +import is_valid from '../utils/cnpj'; + +defineRule('cnpj', (value) => { + if (!is_valid(value)) { + return 'CNPJ inválido'; + } + return true; +}); diff --git a/resources/js-vue-3/shared/validation/utils/cnpj.js b/resources/js-vue-3/shared/validation/utils/cnpj.js new file mode 100644 index 00000000..23db8f1d --- /dev/null +++ b/resources/js-vue-3/shared/validation/utils/cnpj.js @@ -0,0 +1,57 @@ +function validarCNPJ(cnpj) { + + cnpj = cnpj.replace(/[^\d]+/g,''); + + if(cnpj == '') return false; + + if (cnpj.length != 14) + return false; + + // Elimina CNPJs invalidos conhecidos + if (cnpj == "00000000000000" || + cnpj == "11111111111111" || + cnpj == "22222222222222" || + cnpj == "33333333333333" || + cnpj == "44444444444444" || + cnpj == "55555555555555" || + cnpj == "66666666666666" || + cnpj == "77777777777777" || + cnpj == "88888888888888" || + cnpj == "99999999999999") + return false; + + // Valida DVs + let tamanho = cnpj.length - 2 + let numeros = cnpj.substring(0,tamanho); + let digitos = cnpj.substring(tamanho); + let soma = 0; + let pos = tamanho - 7; + for (let i = tamanho; i >= 1; i--) { + soma += numeros.charAt(tamanho - i) * pos--; + if (pos < 2) { + pos = 9; + } + } + let resultado = soma % 11 < 2 ? 0 : 11 - soma % 11; + if (resultado != digitos.charAt(0)) { + return false; + } + + tamanho = tamanho + 1; + numeros = cnpj.substring(0,tamanho); + soma = 0; + pos = tamanho - 7; + for (let i = tamanho; i >= 1; i--) { + soma += numeros.charAt(tamanho - i) * pos--; + if (pos < 2) { + pos = 9; + } + } + resultado = soma % 11 < 2 ? 0 : 11 - soma % 11; + if (resultado != digitos.charAt(1)) + return false; + + return true; +} + +export default validarCNPJ \ No newline at end of file From d18748a0ff376c3a949a3799652604645e44146d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=A1ssio=20Caique=20Dias=20Freire?= Date: Wed, 6 Dec 2023 13:16:57 -0300 Subject: [PATCH 04/44] =?UTF-8?q?feat:=20adiciona=20configura=C3=A7=C3=B5e?= =?UTF-8?q?s=20do=20sweetalert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/js-vue-3/app.js | 5 ++ resources/js-vue-3/shared/utils/senswal.js | 83 ++++++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 resources/js-vue-3/shared/utils/senswal.js diff --git a/resources/js-vue-3/app.js b/resources/js-vue-3/app.js index 135c166b..42b9dfaa 100644 --- a/resources/js-vue-3/app.js +++ b/resources/js-vue-3/app.js @@ -6,6 +6,8 @@ import SHOW from '@sysvale/show'; import * as VeeValidate from 'vee-validate'; import validationConfig from './shared/validation'; +import senswal from './shared/utils/senswal'; + import App from './App.vue'; import PageWrapper from './core/components/PageWrapper.vue'; @@ -33,6 +35,9 @@ vueApp.use(VeeValidate, { validationConfig(VeeValidate); +vueApp.config.globalProperties.$senswal = senswal; + + router.isReady().then(() => { vueApp.mount("#app-vue-3"); }) \ No newline at end of file diff --git a/resources/js-vue-3/shared/utils/senswal.js b/resources/js-vue-3/shared/utils/senswal.js new file mode 100644 index 00000000..26014fb8 --- /dev/null +++ b/resources/js-vue-3/shared/utils/senswal.js @@ -0,0 +1,83 @@ +import Swal from 'sweetalert2'; + +const confirmationDefaultConfig = (customConfig = {}) => ({ + icon: 'warning', + confirmButtonText: 'Sim, excluir', + showCancelButton: true, + customClass: { + confirmButton: 'btn btn--indigo btn--md', + cancelButton: 'btn btn--secondary btn--md', + }, + reverseButtons: true, + ...customConfig, +}); + +const toastDefaultConfig = (customConfig = {}) => ({ + toast: true, + position: 'top-end', + timer: 5000, + timerProgressBar: true, + showConfirmButton: false, + ...customConfig, +}); + +const erouDefaultConfig = (message, response, customConfig = {}) => ({ + title: 'Ops...', + icon: 'error', + showCloseButton: true, + showConfirmButton: false, + html: (() => { + let detailsMessage = ''; + if (process.env.NODE_ENV === 'development' && response) { + detailsMessage = ` + ${response?.status}: ${response?.statusText}

+ `; + } + const isShowInfoMessage = response?.status !== 422 && response?.status !== 400; + const infoMessage = isShowInfoMessage ? 'Se o problema persistir, contate o suporte.' : ''; + return ` + ${message}
+ ${infoMessage}

+ ${detailsMessage}`; + })(), + customClass: { + htmlContainer: 'swal__container', + title: 'swal__title', + actions: 'swal__actions', + }, + buttonsStyling: false, + ...customConfig, +}) + +const confirmation = (title, html, config) => + Swal.fire({ + title, + html, + ...confirmationDefaultConfig(), + ...config, + }); + +const toast = (icon = 'success', title = 'Sucesso!', text = 'Ação concluída', config) => Swal.fire({ + icon, + title, + text, + ...toastDefaultConfig(), + ...config, + }); + +const erou = (message, response, config) => Swal.fire({ + ...erouDefaultConfig(message, response), + ...config, + }); + + +export default { + confirmation, + toast, + erou, + defaultConfig: { + confirmation: confirmationDefaultConfig, + toast: toastDefaultConfig, + erou: erouDefaultConfig, + } +} \ No newline at end of file From 091ed6195bfa5ae0add9dfbc98f06c5c88d82852 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=A1ssio=20Caique=20Dias=20Freire?= Date: Wed, 6 Dec 2023 13:17:55 -0300 Subject: [PATCH 05/44] fea:t adiciona suporte ao typescript --- resources/js-vue-3/package.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resources/js-vue-3/package.json b/resources/js-vue-3/package.json index 2cabb517..1063add1 100644 --- a/resources/js-vue-3/package.json +++ b/resources/js-vue-3/package.json @@ -22,6 +22,7 @@ "resolve-url-loader": "^5.0.0", "sass": "^1.54.4", "sass-loader": "^12.6.0", + "ts-loader": "^9.5.1", "vite": "^3.0.0", "vitest": "^0.22.1" }, @@ -42,6 +43,7 @@ "pinia": "^2.0.22", "sweetalert2": "^11.6.7", "tippy.js": "^6.3.7", + "typescript": "^5.3.2", "vee-validate": "^4.12.2", "vue": "^3.1.0", "vue-loader": "^17.0.0", From b8de54f580ff4b44406361dfe95445697cf615cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=A1ssio=20Caique=20Dias=20Freire?= Date: Wed, 6 Dec 2023 13:18:27 -0300 Subject: [PATCH 06/44] =?UTF-8?q?feat:=20atualiza=20depend=C3=AAncias=20do?= =?UTF-8?q?=20projeto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/js-vue-3/package-lock.json | 356 +++++++++++++++------------ resources/js-vue-3/package.json | 4 +- 2 files changed, 208 insertions(+), 152 deletions(-) diff --git a/resources/js-vue-3/package-lock.json b/resources/js-vue-3/package-lock.json index 88cae4b1..d38db715 100644 --- a/resources/js-vue-3/package-lock.json +++ b/resources/js-vue-3/package-lock.json @@ -5,8 +5,10 @@ "packages": { "": { "dependencies": { - "@sysvale/cuida": "^3.0.0-alpha.109", - "@sysvale/show": "^0.2.0", + "@sysvale/cuida": "3.0.0-beta.110", + "@sysvale/show": "^0.3.0", + "@vee-validate/i18n": "^4.10.5", + "@vee-validate/rules": "^4.10.5", "@vitejs/plugin-vue": "^3.0.3", "chart.js": "^4.0.1", "fibers": "^5.0.3", @@ -19,8 +21,10 @@ "lodash.snakecase": "^4.1.1", "luxon": "^3.1.1", "pinia": "^2.0.22", - "sweetalert2": "^11.6.7", + "sweetalert2": "^11.10.1", "tippy.js": "^6.3.7", + "typescript": "^5.3.2", + "vee-validate": "^4.12.2", "vue": "^3.1.0", "vue-loader": "^17.0.0", "vue-multiselect": "^3.0.0-alpha.2", @@ -37,10 +41,87 @@ "resolve-url-loader": "^5.0.0", "sass": "^1.54.4", "sass-loader": "^12.6.0", + "ts-loader": "^9.5.1", "vite": "^3.0.0", "vitest": "^0.22.1" } }, + "../../../cuida": { + "name": "@sysvale/cuida", + "version": "3.0.0-beta.110", + "extraneous": true, + "dependencies": { + "@popperjs/core": "^2.11.6", + "@sysvale/cuida": "^3.0.0-beta.98", + "@sysvale/cuida-icons": "^1.14.1", + "@sysvale/vue3-long-click": "^0.2.0", + "chart.js": "^4.3.0", + "chromatic": "^6.14.0", + "click-outside-vue3": "^4.0.1", + "create-file": "^1.0.1", + "lodash.clonedeep": "^4.5.0", + "lodash.isempty": "^4.4.0", + "lodash.isequal": "^4.5.0", + "luxon": "^3.2.1", + "tippy.js": "^6.3.7", + "v-calendar": "^3.0.0-alpha.8", + "v-money3": "^3.22.3", + "vue": "^3.2.37", + "vue-chartjs": "^5.2.0", + "vue-input-facade": "^3.0.0-beta.1", + "vue-multiselect": "^3.0.0-alpha.2", + "vue-slider-component": "^4.1.0-beta.7" + }, + "devDependencies": { + "@babel/core": "^7.18.10", + "@rollup/plugin-typescript": "^8.4.0", + "@storybook/addon-essentials": "^6.5.10", + "@storybook/builder-vite": "^0.2.2", + "@storybook/preset-scss": "^1.0.3", + "@storybook/testing-library": "^0.0.13", + "@storybook/vue3": "^6.5.10", + "@vitejs/plugin-vue": "^3.0.3", + "@vue/test-utils": "^2.0.2", + "babel-loader": "^8.2.5", + "concat": "^1.0.3", + "esbuild-linux-64": "^0.15.18", + "eslint": "^8.31.0", + "eslint-plugin-vue": "^9.9.0", + "jsdom": "^20.0.0", + "sass": "^1.55.0", + "typescript": "^4.6.4", + "vite": "^3.0.0", + "vitest": "^0.22.0", + "vue-loader": "^16.8.3", + "vue-tsc": "^0.38.4" + } + }, + ".yalc/@sysvale/cuida": { + "version": "3.0.0-beta.110", + "extraneous": true, + "dependencies": { + "@popperjs/core": "^2.11.6", + "@sysvale/cuida": "^3.0.0-beta.98", + "@sysvale/cuida-icons": "^1.14.1", + "@sysvale/vue3-long-click": "^0.2.0", + "chart.js": "^4.3.0", + "chromatic": "^6.14.0", + "click-outside-vue3": "^4.0.1", + "create-file": "^1.0.1", + "lodash.clonedeep": "^4.5.0", + "lodash.isempty": "^4.4.0", + "lodash.isequal": "^4.5.0", + "luxon": "^3.2.1", + "tippy.js": "^6.3.7", + "v-calendar": "^3.0.0-alpha.8", + "v-money3": "^3.22.3", + "vue": "^3.2.37", + "vue-chartjs": "^5.2.0", + "vue-input-facade": "^3.0.0-beta.1", + "vue-multiselect": "^3.0.0-alpha.2", + "vue-slider-component": "^4.1.0-beta.7" + } + }, "node_modules/@ampproject/remapping": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", @@ -1950,7 +2031,6 @@ "cpu": [ "arm" ], - "dev": true, "optional": true, "os": [ "android" @@ -1966,7 +2046,6 @@ "cpu": [ "loong64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -1996,7 +2075,6 @@ "version": "0.3.3", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -2010,7 +2088,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -2019,7 +2096,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -2028,7 +2104,6 @@ "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", - "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -2043,7 +2118,6 @@ "version": "0.3.20", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", - "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -2121,9 +2195,9 @@ } }, "node_modules/@sysvale/cuida": { - "version": "3.0.0-beta.109", - "resolved": "https://registry.npmjs.org/@sysvale/cuida/-/cuida-3.0.0-beta.109.tgz", - "integrity": "sha512-HEtIC1/7aGSjwj1tDtBPUbYQ14ZlPt6DzeyHt8LcPFM3mpcEsoceVFyj07y/mXMDIszOYrS2Gd5y6RBNWI3opw==", + "version": "3.0.0-beta.110", + "resolved": "https://registry.npmjs.org/@sysvale/cuida/-/cuida-3.0.0-beta.110.tgz", + "integrity": "sha512-eSKqOOs1XzVicHFFMA/6xEFKF56JaxgCGdrAuN6lQeETPhacDlNkrd9NwFvdSV01JGOrnPYCtf5L17oUhw3dmg==", "dependencies": { "@popperjs/core": "^2.11.6", "@sysvale/cuida": "^3.0.0-beta.98", @@ -2153,9 +2227,9 @@ "integrity": "sha512-NfPw16r26YwrpdSrYJhPS+EGyWlzwSEoYC01M7+ZFRaaPpjeG5z7Ex0X7/FJ0O2q+IMZhcwxTiROcRyA4bcWeg==" }, "node_modules/@sysvale/show": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@sysvale/show/-/show-0.2.0.tgz", - "integrity": "sha512-ZpudWPIOaJDtEUsSZaEuxElkXV3KbxCU1WtPs2icscXGTDBgfZGZiObF2owJYzb6KL4Iw+USKMFrIZzlCL9WOw==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@sysvale/show/-/show-0.3.0.tgz", + "integrity": "sha512-Q30nmolKkek/KM2M6GaBWoGQ0ypyX5FtZ7vJ9UgcGVKE/3AP/uyIQtUp8xhb1NFsttaqTf584w4TOoqyI9ldXw==", "dependencies": { "lodash.camelcase": "^4.3.0", "lodash.get": "^4.4.2", @@ -2341,7 +2415,6 @@ "version": "8.44.7", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.7.tgz", "integrity": "sha512-f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ==", - "dev": true, "dependencies": { "@types/estree": "*", "@types/json-schema": "*" @@ -2351,7 +2424,6 @@ "version": "3.7.7", "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "dev": true, "dependencies": { "@types/eslint": "*", "@types/estree": "*" @@ -2360,8 +2432,7 @@ "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" }, "node_modules/@types/express": { "version": "4.17.21", @@ -2461,8 +2532,7 @@ "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" }, "node_modules/@types/lodash": { "version": "4.14.202", @@ -2485,7 +2555,6 @@ "version": "20.10.0", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.0.tgz", "integrity": "sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ==", - "dev": true, "dependencies": { "undici-types": "~5.26.4" } @@ -2582,6 +2651,19 @@ "@types/node": "*" } }, + "node_modules/@vee-validate/i18n": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@vee-validate/i18n/-/i18n-4.12.2.tgz", + "integrity": "sha512-wkepZ8GNYdPMUiTYYYli6bseV9XwOK9cKkQPm9Bdj/ZMUq0cfbTZhvI+/5n8bWwF46IDmlTy3ybxLIE5C46Msw==" + }, + "node_modules/@vee-validate/rules": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@vee-validate/rules/-/rules-4.12.2.tgz", + "integrity": "sha512-eWgXmwazMFXzwkdUzb5OI/qlzYj7NE9lbLS4WIcPSWmfStyGhePeEXpsuOcx0Yl8OKvCP4hB0eEP4JXYZm+C9w==", + "dependencies": { + "vee-validate": "4.12.2" + } + }, "node_modules/@vitejs/plugin-vue": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz", @@ -2724,7 +2806,6 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", - "dev": true, "dependencies": { "@webassemblyjs/helper-numbers": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6" @@ -2733,26 +2814,22 @@ "node_modules/@webassemblyjs/floating-point-hex-parser": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", - "dev": true + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==" }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", - "dev": true, "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.11.6", "@webassemblyjs/helper-api-error": "1.11.6", @@ -2762,14 +2839,12 @@ "node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-buffer": "1.11.6", @@ -2781,7 +2856,6 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", - "dev": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" } @@ -2790,7 +2864,6 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", - "dev": true, "dependencies": { "@xtuc/long": "4.2.2" } @@ -2798,14 +2871,12 @@ "node_modules/@webassemblyjs/utf8": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-buffer": "1.11.6", @@ -2821,7 +2892,6 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", @@ -2834,7 +2904,6 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-buffer": "1.11.6", @@ -2846,7 +2915,6 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-api-error": "1.11.6", @@ -2860,7 +2928,6 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.6", "@xtuc/long": "4.2.2" @@ -2905,14 +2972,12 @@ "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" }, "node_modules/abab": { "version": "2.0.6", @@ -2947,7 +3012,6 @@ "version": "8.11.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", - "dev": true, "bin": { "acorn": "bin/acorn" }, @@ -2969,7 +3033,6 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "dev": true, "peerDependencies": { "acorn": "^8" } @@ -3012,7 +3075,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -3067,7 +3129,6 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, "peerDependencies": { "ajv": "^6.9.1" } @@ -3114,7 +3175,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, + "devOptional": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -3355,7 +3416,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, + "devOptional": true, "engines": { "node": ">=8" } @@ -3460,7 +3521,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, + "devOptional": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -3568,7 +3629,6 @@ "version": "4.22.1", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", - "dev": true, "funding": [ { "type": "opencollective", @@ -3610,8 +3670,7 @@ "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "node_modules/buffer-xor": { "version": "1.0.3", @@ -3683,7 +3742,6 @@ "version": "1.0.30001565", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001565.tgz", "integrity": "sha512-xrE//a3O7TP0vaJ8ikzkD2c2NgcVUvsEe2IvFTntV4Yd1Z9FVzh+gW+enX96L0psrbaFMcVcH2l90xNuGDWc8w==", - "dev": true, "funding": [ { "type": "opencollective", @@ -3768,7 +3826,7 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, + "devOptional": true, "funding": [ { "type": "individual", @@ -3805,7 +3863,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true, "engines": { "node": ">=6.0" } @@ -4967,8 +5024,7 @@ "node_modules/electron-to-chromium": { "version": "1.4.595", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.595.tgz", - "integrity": "sha512-+ozvXuamBhDOKvMNUQvecxfbyICmIAwS4GpLmR0bsiSBlGnLaOcs2Cj7J8XSbW+YEaN3Xl3ffgpm+srTUWFwFQ==", - "dev": true + "integrity": "sha512-+ozvXuamBhDOKvMNUQvecxfbyICmIAwS4GpLmR0bsiSBlGnLaOcs2Cj7J8XSbW+YEaN3Xl3ffgpm+srTUWFwFQ==" }, "node_modules/elliptic": { "version": "6.5.4", @@ -5019,7 +5075,6 @@ "version": "5.15.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", - "dev": true, "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -5061,14 +5116,12 @@ "node_modules/es-module-lexer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", - "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", - "dev": true + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==" }, "node_modules/esbuild": { "version": "0.15.18", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", - "dev": true, "hasInstallScript": true, "bin": { "esbuild": "bin/esbuild" @@ -5108,7 +5161,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "android" @@ -5124,7 +5176,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "android" @@ -5140,7 +5191,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "darwin" @@ -5156,7 +5206,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "darwin" @@ -5172,7 +5221,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "freebsd" @@ -5188,7 +5236,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "freebsd" @@ -5204,7 +5251,6 @@ "cpu": [ "ia32" ], - "dev": true, "optional": true, "os": [ "linux" @@ -5220,7 +5266,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -5236,7 +5281,6 @@ "cpu": [ "arm" ], - "dev": true, "optional": true, "os": [ "linux" @@ -5252,7 +5296,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -5268,7 +5311,6 @@ "cpu": [ "mips64el" ], - "dev": true, "optional": true, "os": [ "linux" @@ -5284,7 +5326,6 @@ "cpu": [ "ppc64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -5300,7 +5341,6 @@ "cpu": [ "riscv64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -5316,7 +5356,6 @@ "cpu": [ "s390x" ], - "dev": true, "optional": true, "os": [ "linux" @@ -5332,7 +5371,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "netbsd" @@ -5348,7 +5386,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "openbsd" @@ -5364,7 +5401,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "sunos" @@ -5380,7 +5416,6 @@ "cpu": [ "ia32" ], - "dev": true, "optional": true, "os": [ "win32" @@ -5396,7 +5431,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "win32" @@ -5412,7 +5446,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "win32" @@ -5425,7 +5458,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, "engines": { "node": ">=6" } @@ -5470,7 +5502,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -5483,7 +5514,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, "engines": { "node": ">=4.0" } @@ -5505,7 +5535,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, "dependencies": { "estraverse": "^5.2.0" }, @@ -5517,7 +5546,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, "engines": { "node": ">=4.0" } @@ -5555,7 +5583,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, "engines": { "node": ">=0.8.x" } @@ -5680,8 +5707,7 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-glob": { "version": "3.3.2", @@ -5702,8 +5728,7 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "node_modules/fastest-levenshtein": { "version": "1.0.16", @@ -5798,7 +5823,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, + "devOptional": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -5989,7 +6014,6 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -6003,7 +6027,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -6088,7 +6111,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, + "devOptional": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -6291,7 +6314,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dev": true, "dependencies": { "function-bind": "^1.1.2" }, @@ -6700,7 +6722,7 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==", - "dev": true + "devOptional": true }, "node_modules/import-fresh": { "version": "3.3.0", @@ -6787,7 +6809,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, + "devOptional": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -6805,7 +6827,6 @@ "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, "dependencies": { "hasown": "^2.0.0" }, @@ -6837,7 +6858,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.10.0" } @@ -6855,7 +6876,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, + "devOptional": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -6867,7 +6888,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.12.0" } @@ -6969,7 +6990,6 @@ "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -6983,7 +7003,6 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -7080,14 +7099,12 @@ "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "node_modules/json5": { "version": "2.2.3", @@ -7331,7 +7348,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true, "engines": { "node": ">=6.11.5" } @@ -7575,8 +7591,7 @@ "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "node_modules/merge2": { "version": "1.4.1", @@ -7644,7 +7659,6 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, "engines": { "node": ">= 0.6" } @@ -7653,7 +7667,6 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, "dependencies": { "mime-db": "1.52.0" }, @@ -7812,8 +7825,7 @@ "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, "node_modules/no-case": { "version": "3.0.4", @@ -7882,8 +7894,7 @@ "node_modules/node-releases": { "version": "2.0.13", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", - "dev": true + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" }, "node_modules/nopt": { "version": "7.2.0", @@ -7904,7 +7915,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.10.0" } @@ -8269,8 +8280,7 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-scurry": { "version": "1.10.1", @@ -8346,7 +8356,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, + "devOptional": true, "engines": { "node": ">=8.6" }, @@ -9115,7 +9125,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, "dependencies": { "safe-buffer": "^5.1.0" } @@ -9197,7 +9206,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, + "devOptional": true, "dependencies": { "picomatch": "^2.2.1" }, @@ -9339,7 +9348,6 @@ "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -9494,7 +9502,6 @@ "version": "2.79.1", "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", - "dev": true, "bin": { "rollup": "dist/bin/rollup" }, @@ -9532,7 +9539,6 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, "funding": [ { "type": "github", @@ -9567,7 +9573,7 @@ "version": "1.69.5", "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.5.tgz", "integrity": "sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==", - "dev": true, + "devOptional": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -9749,7 +9755,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", - "dev": true, "dependencies": { "randombytes": "^2.1.0" } @@ -10007,7 +10012,6 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -10285,7 +10289,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -10342,7 +10345,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, "engines": { "node": ">=6" } @@ -10351,7 +10353,6 @@ "version": "5.24.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz", "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", - "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -10369,7 +10370,6 @@ "version": "5.3.9", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", - "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.17", "jest-worker": "^27.4.5", @@ -10403,7 +10403,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -10420,8 +10419,7 @@ "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, "node_modules/thunky": { "version": "1.1.0", @@ -10486,7 +10484,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, + "devOptional": true, "dependencies": { "is-number": "^7.0.0" }, @@ -10557,6 +10555,35 @@ "node": ">=6" } }, + "node_modules/ts-loader": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz", + "integrity": "sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4", + "source-map": "^0.7.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/ts-loader/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, "node_modules/tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", @@ -10578,6 +10605,17 @@ "node": ">=4" } }, + "node_modules/type-fest": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.8.2.tgz", + "integrity": "sha512-mcvrCjixA5166hSrUoJgGb9gBQN4loMYyj9zxuMs/66ibHNEFd5JXMw37YVDx58L4/QID9jIzdTBB4mDwDJ6KQ==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -10591,11 +10629,22 @@ "node": ">= 0.6" } }, + "node_modules/typescript": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.2.tgz", + "integrity": "sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", @@ -10659,7 +10708,6 @@ "version": "1.0.13", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, "funding": [ { "type": "opencollective", @@ -10689,7 +10737,6 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "dependencies": { "punycode": "^2.1.0" } @@ -10698,7 +10745,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, "engines": { "node": ">=6" } @@ -10796,11 +10842,22 @@ "node": ">= 0.8" } }, + "node_modules/vee-validate": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/vee-validate/-/vee-validate-4.12.2.tgz", + "integrity": "sha512-SF5AOHbyW8vy09FgMRVHxCtK/3D5Jsk0VyvMf/HZhwPgpjGCCBW6ZWDW11/HC6pRbMOjTcg3YueBI6hb3oveYg==", + "dependencies": { + "@vue/devtools-api": "^6.5.1", + "type-fest": "^4.8.2" + }, + "peerDependencies": { + "vue": "^3.3.8" + } + }, "node_modules/vite": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.7.tgz", "integrity": "sha512-29pdXjk49xAP0QBr0xXqu2s5jiQIXNvE/xwd0vUizYT2Hzqe4BksNNoWllFVXJf4eLZ+UlVQmXfB4lWrc+t18g==", - "dev": true, "dependencies": { "esbuild": "^0.15.9", "postcss": "^8.4.18", @@ -11096,7 +11153,6 @@ "version": "5.89.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", - "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.0", @@ -11450,7 +11506,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -11468,7 +11523,6 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, "engines": { "node": ">=10.13.0" } diff --git a/resources/js-vue-3/package.json b/resources/js-vue-3/package.json index 1063add1..974218e4 100644 --- a/resources/js-vue-3/package.json +++ b/resources/js-vue-3/package.json @@ -27,6 +27,8 @@ "vitest": "^0.22.1" }, "dependencies": { + "@sysvale/cuida": "3.0.0-beta.110", + "@sysvale/show": "^0.3.0", "@vee-validate/i18n": "^4.10.5", "@vee-validate/rules": "^4.10.5", "@vitejs/plugin-vue": "^3.0.3", @@ -41,7 +43,7 @@ "lodash.snakecase": "^4.1.1", "luxon": "^3.1.1", "pinia": "^2.0.22", - "sweetalert2": "^11.6.7", + "sweetalert2": "^11.10.1", "tippy.js": "^6.3.7", "typescript": "^5.3.2", "vee-validate": "^4.12.2", From 072f7c1b4ff2a7679040551e75b593c2a0bfe73b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=A1ssio=20Caique=20Dias=20Freire?= Date: Wed, 6 Dec 2023 13:18:58 -0300 Subject: [PATCH 07/44] =?UTF-8?q?feat:=20suporte=20=C3=A0=20trasnpila?= =?UTF-8?q?=C3=A7=C3=A3o=20de=20typescript?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/js-vue-3/webpack.mix.js | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/resources/js-vue-3/webpack.mix.js b/resources/js-vue-3/webpack.mix.js index 3330a6b1..a87728e2 100644 --- a/resources/js-vue-3/webpack.mix.js +++ b/resources/js-vue-3/webpack.mix.js @@ -14,7 +14,7 @@ const mix = require('laravel-mix'); module.exports = { resolve: { - extensions: ['.tsx', '.ts', '.js', '.vue'], + extensions: ["*", ".js", ".jsx", ".vue", ".ts", ".tsx"], }, rules: [ { @@ -27,6 +27,21 @@ module.exports = { }; mix + .webpackConfig({ + module: { + rules: [ + { + test: /\.tsx?$/, + loader: "ts-loader", + exclude: /node_modules/ + } + ] + }, + resolve: { + extensions: ["*", ".js", ".jsx", ".vue", ".ts", ".tsx"], + }, + }) .setPublicPath('../../public') .js('./app.js', 'js/app-vue-3.min.js') - .sass('../sass/app.scss', 'css').vue(); \ No newline at end of file + .sass('../sass/app.scss', 'css') + .vue(); \ No newline at end of file From b6c855352f1b86613e0fe3985d858184b90cd0b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=A1ssio=20Caique=20Dias=20Freire?= Date: Wed, 6 Dec 2023 13:29:56 -0300 Subject: [PATCH 08/44] =?UTF-8?q?feat:=20interface=20para=20definir=20cont?= =?UTF-8?q?rato=20de=20classes=20nos=20quais=20suas=20instancias=20viram?= =?UTF-8?q?=20payload=20de=20requisi=C3=A7o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shared/utils/cuids/interfaces/RequestableInterface.ts | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 resources/js-vue-3/shared/utils/cuids/interfaces/RequestableInterface.ts diff --git a/resources/js-vue-3/shared/utils/cuids/interfaces/RequestableInterface.ts b/resources/js-vue-3/shared/utils/cuids/interfaces/RequestableInterface.ts new file mode 100644 index 00000000..a82fd7e7 --- /dev/null +++ b/resources/js-vue-3/shared/utils/cuids/interfaces/RequestableInterface.ts @@ -0,0 +1,3 @@ +export interface IRequestable { + asRequestPayload(): Object; +} \ No newline at end of file From 359293b254a9cd6bd2b8478beb79be9d9b7c5ba6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=A1ssio=20Caique=20Dias=20Freire?= Date: Wed, 6 Dec 2023 13:30:35 -0300 Subject: [PATCH 09/44] =?UTF-8?q?feat:=20adiciona=20suporte=20no=20CUIDSSe?= =?UTF-8?q?rvice=20=C3=A0=20string=20ou=20objeto=20no=20m=C3=A9todo=20de?= =?UTF-8?q?=20atualiza=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/js-vue-3/shared/utils/cuids/CUIDSService.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/js-vue-3/shared/utils/cuids/CUIDSService.ts b/resources/js-vue-3/shared/utils/cuids/CUIDSService.ts index 6180f20a..31419f02 100644 --- a/resources/js-vue-3/shared/utils/cuids/CUIDSService.ts +++ b/resources/js-vue-3/shared/utils/cuids/CUIDSService.ts @@ -25,7 +25,8 @@ export abstract class CUIDSService implements IRead, IWrite { return this.httpClient.get(`/${this.resource}`, { params }); } - delete = async (id: string): Promise => { + delete = async (param: any): Promise => { + const id = typeof param === 'string' ? param : param.id; return this.httpClient.delete(`/${this.resource}/${id}`); } From 6cea9687544706b4b87230a437ff1b5f77e4b40a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=A1ssio=20Caique=20Dias=20Freire?= Date: Wed, 6 Dec 2023 13:32:29 -0300 Subject: [PATCH 10/44] =?UTF-8?q?feat:=20implementa=20modal=20para=20geren?= =?UTF-8?q?ciar=20requisi=C3=A7=C3=B5es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../js-vue-3/core/components/RequestModal.vue | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 resources/js-vue-3/core/components/RequestModal.vue diff --git a/resources/js-vue-3/core/components/RequestModal.vue b/resources/js-vue-3/core/components/RequestModal.vue new file mode 100644 index 00000000..a10e4bad --- /dev/null +++ b/resources/js-vue-3/core/components/RequestModal.vue @@ -0,0 +1,65 @@ + + \ No newline at end of file From 5182e881d0f364251487b687592abcd612b677fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=A1ssio=20Caique=20Dias=20Freire?= Date: Wed, 6 Dec 2023 13:33:22 -0300 Subject: [PATCH 11/44] =?UTF-8?q?feat:=20implementa=20componente=20de=20p?= =?UTF-8?q?=C3=A1gina=20para=20gerenciar=20crud?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../js-vue-3/core/components/CuidsPage.vue | 183 ++++++++++++++++++ 1 file changed, 183 insertions(+) create mode 100644 resources/js-vue-3/core/components/CuidsPage.vue diff --git a/resources/js-vue-3/core/components/CuidsPage.vue b/resources/js-vue-3/core/components/CuidsPage.vue new file mode 100644 index 00000000..6163aaf2 --- /dev/null +++ b/resources/js-vue-3/core/components/CuidsPage.vue @@ -0,0 +1,183 @@ + + + \ No newline at end of file From 90fbe147e5be50dd6e89235eff1856f8329e8244 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=A1ssio=20Caique=20Dias=20Freire?= Date: Wed, 6 Dec 2023 13:34:32 -0300 Subject: [PATCH 12/44] =?UTF-8?q?feat:=20implementa=20interface=20com=20at?= =?UTF-8?q?ributos=20para=20configura=C3=A7=C3=A3o=20de=20p=C3=A1ginas=20c?= =?UTF-8?q?uids?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../interfaces/CuidsPageSettingsInterface.ts | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 resources/js-vue-3/shared/utils/cuids/interfaces/CuidsPageSettingsInterface.ts diff --git a/resources/js-vue-3/shared/utils/cuids/interfaces/CuidsPageSettingsInterface.ts b/resources/js-vue-3/shared/utils/cuids/interfaces/CuidsPageSettingsInterface.ts new file mode 100644 index 00000000..e741a989 --- /dev/null +++ b/resources/js-vue-3/shared/utils/cuids/interfaces/CuidsPageSettingsInterface.ts @@ -0,0 +1,21 @@ +export interface ICuidsPageSettings { + addItemButtonText: String; + createSuccessFeedbackTitle: String; + createSuccessFeedbackText: String; + createSuccessFeedbackParams: Object; + deleteSuccessFeedbackText: String; + deleteSuccessFeedbackTitle: String; + deleteSuccessFeedbackParams: Object; + deleteConfirmationTitle: String; + deleteConfirmationText: String; + emptyStateImage: String; + emptyStateDescription: String; + emptyStateTitle: String; + emptyStateText: String; + emptyStateActionButtonText: String; + pageTitle: String; + pageSubtitle: String; + updateSuccessFeedbackText: String; + updateSuccessFeedbackTitle: String; + updateSuccessFeedbackParams: Object; +} \ No newline at end of file From 1aa845c5abad88b6b004fe62630f406b282e286d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=A1ssio=20Caique=20Dias=20Freire?= Date: Wed, 6 Dec 2023 13:35:47 -0300 Subject: [PATCH 13/44] =?UTF-8?q?feat:=20implementa=20classes=20do=20dom?= =?UTF-8?q?=C3=ADnio=20para=20gerenciar=20membros?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../js-vue-3/shared/domain/member/entity.ts | 32 +++++++++++++++++++ .../js-vue-3/shared/domain/member/index.ts | 9 ++++++ .../shared/domain/member/pageSettings.ts | 23 +++++++++++++ .../js-vue-3/shared/domain/member/service.ts | 10 ++++++ 4 files changed, 74 insertions(+) create mode 100644 resources/js-vue-3/shared/domain/member/entity.ts create mode 100644 resources/js-vue-3/shared/domain/member/index.ts create mode 100644 resources/js-vue-3/shared/domain/member/pageSettings.ts create mode 100644 resources/js-vue-3/shared/domain/member/service.ts diff --git a/resources/js-vue-3/shared/domain/member/entity.ts b/resources/js-vue-3/shared/domain/member/entity.ts new file mode 100644 index 00000000..8fa3fcce --- /dev/null +++ b/resources/js-vue-3/shared/domain/member/entity.ts @@ -0,0 +1,32 @@ +import { IRequestable } from "../../utils/cuids/interfaces/RequestableInterface"; + +export class Member implements IRequestable { + private id: string; + private name: string; + private email: string; + private teams: Array; + private avatarUrl: string; + + constructor(args?: any) { + this.id = args?.id; + this.name = args?.name; + this.teams = args?.teams || []; + this.email = args?.email; + this.avatarUrl = args?.avatarUrl; + } + + get teamIds(): Array { + return this.teams.map(({ id }) => id); + } + + asRequestPayload = (): Object => { + return { + id: this.id, + name: this.name, + teamIds: this.teamIds, + teams: this.teams, + email: this.email, + avatar: this.avatarUrl, + }; + } +} \ No newline at end of file diff --git a/resources/js-vue-3/shared/domain/member/index.ts b/resources/js-vue-3/shared/domain/member/index.ts new file mode 100644 index 00000000..0d716d09 --- /dev/null +++ b/resources/js-vue-3/shared/domain/member/index.ts @@ -0,0 +1,9 @@ +import { Member } from './entity'; +import MemberService from './service'; +import { MembersPageSettings } from './pageSettings'; + +export { + Member, + MemberService, + MembersPageSettings, +}; diff --git a/resources/js-vue-3/shared/domain/member/pageSettings.ts b/resources/js-vue-3/shared/domain/member/pageSettings.ts new file mode 100644 index 00000000..7bdc0749 --- /dev/null +++ b/resources/js-vue-3/shared/domain/member/pageSettings.ts @@ -0,0 +1,23 @@ +import { ICuidsPageSettings } from "../../utils/cuids/interfaces/CuidsPageSettingsInterface"; + +export class MembersPageSettings implements ICuidsPageSettings { + addItemButtonText = 'Adicionar membro'; + createSuccessFeedbackTitle = 'Sucesso'; + createSuccessFeedbackText = 'Membro criado com sucesso'; + createSuccessFeedbackParams = {}; + deleteSuccessFeedbackText = 'Membro deletado com sucesso'; + deleteSuccessFeedbackTitle = 'Sucesso'; + deleteSuccessFeedbackParams = {}; + deleteConfirmationTitle = 'Tem certeza que deseja deletar?'; + deleteConfirmationText = 'Essa ação não poderá ser desfeita'; + emptyStateImage = ''; + emptyStateDescription = 'Empty state description'; + emptyStateTitle = 'Nenhum membro cadastrado'; + emptyStateText = 'Ainda não ha nenhum membro cadastrado'; + emptyStateActionButtonText = 'Adicionar membro'; + pageTitle = 'Membros'; + pageSubtitle = 'Gerencie membros'; + updateSuccessFeedbackText = 'Membro atualizado com sucesso'; + updateSuccessFeedbackTitle = 'Sucesso'; + updateSuccessFeedbackParams = {}; +} \ No newline at end of file diff --git a/resources/js-vue-3/shared/domain/member/service.ts b/resources/js-vue-3/shared/domain/member/service.ts new file mode 100644 index 00000000..758a0bfa --- /dev/null +++ b/resources/js-vue-3/shared/domain/member/service.ts @@ -0,0 +1,10 @@ +import { CUIDSService } from '../../utils/cuids/CUIDSService'; +import { Member } from './entity'; + +class MemberService extends CUIDSService { + constructor(resource: string) { + super(resource); + } +} + +export default new MemberService('members'); \ No newline at end of file From a742b8ef71596befc9666cf96e83984df0d4d57a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=A1ssio=20Caique=20Dias=20Freire?= Date: Wed, 13 Dec 2023 11:54:18 -0300 Subject: [PATCH 14/44] feat: ajusta resource para retornar os times completos e o os nomes dos times separados --- app/Http/Resources/MemberResource.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/Http/Resources/MemberResource.php b/app/Http/Resources/MemberResource.php index 8ece2bf7..39f6ee65 100644 --- a/app/Http/Resources/MemberResource.php +++ b/app/Http/Resources/MemberResource.php @@ -22,7 +22,8 @@ public function toArray($request) 'has_login' => $this->has_login, 'user_id' => optional($this->user)->id, 'avatar_url' => $this->avatar_url, - 'teams' => implode(', ', $this->getTeams()->pluck('name')->toArray()), + 'teams' => $this->getTeams()->toArray(), + 'teamsNames' => implode(', ', $this->getTeams()->pluck('name')->toArray()), 'team_ids' => $this->team_ids, 'workspace_ids' => $this->workspace_ids, ]; From 174dc934fd193e140439fc34c04450aa5d074f68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=A1ssio=20Caique=20Dias=20Freire?= Date: Wed, 13 Dec 2023 11:54:42 -0300 Subject: [PATCH 15/44] =?UTF-8?q?fix:=20filtro=20para=20n=C3=A3o=20retorna?= =?UTF-8?q?r=20times=20"nulos"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Models/Member.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/Models/Member.php b/app/Models/Member.php index 09a79b90..bd82ba9d 100644 --- a/app/Models/Member.php +++ b/app/Models/Member.php @@ -54,6 +54,8 @@ public function getTeams() { return $this->teamMembers->map(function ($pivot) { return $pivot->team; + })->filter(function ($item) { + return !empty($item); }); } From 5b617cd3f5072f026619846dde1e7ace07cf6786 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=A1ssio=20Caique=20Dias=20Freire?= Date: Wed, 13 Dec 2023 11:55:03 -0300 Subject: [PATCH 16/44] feat: renomeia componente --- .../core/components/{RequestModal.vue => CuidsRequestModal.vue} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename resources/js-vue-3/core/components/{RequestModal.vue => CuidsRequestModal.vue} (100%) diff --git a/resources/js-vue-3/core/components/RequestModal.vue b/resources/js-vue-3/core/components/CuidsRequestModal.vue similarity index 100% rename from resources/js-vue-3/core/components/RequestModal.vue rename to resources/js-vue-3/core/components/CuidsRequestModal.vue From 8c218d7eaab3cde430b3035ffa58adb4e7a2f017 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=A1ssio=20Caique=20Dias=20Freire?= Date: Wed, 13 Dec 2023 11:55:20 -0300 Subject: [PATCH 17/44] fix: corrige nome das propriedades --- resources/js-vue-3/core/components/CuidsPage.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/js-vue-3/core/components/CuidsPage.vue b/resources/js-vue-3/core/components/CuidsPage.vue index 6163aaf2..49c8b556 100644 --- a/resources/js-vue-3/core/components/CuidsPage.vue +++ b/resources/js-vue-3/core/components/CuidsPage.vue @@ -1,7 +1,7 @@