@wgalleti/primevue-components 0.6.0 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/WProgressFlow.vue_vue_type_script_setup_true_lang-B70Uk-1x.cjs +12 -0
- package/dist/WProgressFlow.vue_vue_type_script_setup_true_lang-B70Uk-1x.cjs.map +1 -0
- package/dist/WProgressFlow.vue_vue_type_script_setup_true_lang-BVlG1in1.js +3024 -0
- package/dist/WProgressFlow.vue_vue_type_script_setup_true_lang-BVlG1in1.js.map +1 -0
- package/dist/components/crud/WCrudColumnRenderer.vue.d.ts +1 -1
- package/dist/components/crud/WCrudFormDialog.vue.d.ts +7 -11
- package/dist/components/crud/WCrudView.vue.d.ts +7 -2
- package/dist/components/form/WAutoCompleteFK.vue.d.ts +2 -1
- package/dist/components/form/WFormRenderer.vue.d.ts +1 -1
- package/dist/components/form/WImageCropper.vue.d.ts +57 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/components/ui/WKpiGrid.vue.d.ts +1 -1
- package/dist/components.cjs +2 -0
- package/dist/components.cjs.map +1 -0
- package/dist/components.d.ts +2 -0
- package/dist/components.js +23 -0
- package/dist/components.js.map +1 -0
- package/dist/composables/useCrudManager.d.ts +1 -1
- package/dist/composables.cjs +2 -0
- package/dist/composables.cjs.map +1 -0
- package/dist/composables.d.ts +2 -0
- package/dist/composables.js +12 -0
- package/dist/composables.js.map +1 -0
- package/dist/index.cjs +1 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +122 -3541
- package/dist/index.js.map +1 -1
- package/dist/plugin-BKa0eSEM.js +7 -0
- package/dist/plugin-BKa0eSEM.js.map +1 -0
- package/dist/plugin-D1YvyKXX.cjs +2 -0
- package/dist/plugin-D1YvyKXX.cjs.map +1 -0
- package/dist/primevue-components.css +1 -1
- package/dist/types/action.d.ts +19 -0
- package/dist/types/column.d.ts +30 -0
- package/dist/types/componentMeta.d.ts +33 -0
- package/dist/types/field.d.ts +95 -0
- package/dist/types/index.d.ts +11 -14
- package/dist/types/kpi.d.ts +13 -0
- package/dist/types/labels.d.ts +17 -0
- package/dist/types/manager.d.ts +93 -0
- package/dist/types/plugin.d.ts +24 -2
- package/dist/types.cjs +2 -0
- package/dist/types.cjs.map +1 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.js +23 -0
- package/dist/types.js.map +1 -0
- package/dist/useApi-B692TOWz.js +383 -0
- package/dist/useApi-B692TOWz.js.map +1 -0
- package/dist/useApi-BIlKLud-.cjs +2 -0
- package/dist/useApi-BIlKLud-.cjs.map +1 -0
- package/dist/useApiError-BEbEk2Kq.cjs +3 -0
- package/dist/useApiError-BEbEk2Kq.cjs.map +1 -0
- package/dist/useApiError-C7rPzGrF.js +375 -0
- package/dist/useApiError-C7rPzGrF.js.map +1 -0
- package/dist/utils/csv.d.ts +1 -1
- package/dist/utils/fieldMapper.d.ts +2 -1
- package/package.json +49 -12
- package/dist/types/components/crud/WCrudColumnRenderer.vue.d.ts +0 -8
- package/dist/types/components/crud/WCrudFormDialog.vue.d.ts +0 -52
- package/dist/types/components/crud/WCrudView.vue.d.ts +0 -127
- package/dist/types/components/form/WAutoCompleteFK.vue.d.ts +0 -54
- package/dist/types/components/form/WFormRenderer.vue.d.ts +0 -44
- package/dist/types/components/form/WMoneyInput.vue.d.ts +0 -28
- package/dist/types/components/form/WTransferList.vue.d.ts +0 -25
- package/dist/types/components/index.d.ts +0 -18
- package/dist/types/components/ui/WActionBar.vue.d.ts +0 -25
- package/dist/types/components/ui/WDetailHeader.vue.d.ts +0 -24
- package/dist/types/components/ui/WEmptyState.vue.d.ts +0 -13
- package/dist/types/components/ui/WFormSection.vue.d.ts +0 -19
- package/dist/types/components/ui/WInfoCard.vue.d.ts +0 -11
- package/dist/types/components/ui/WKpiCard.vue.d.ts +0 -32
- package/dist/types/components/ui/WKpiGrid.vue.d.ts +0 -31
- package/dist/types/components/ui/WPageHeader.vue.d.ts +0 -22
- package/dist/types/components/ui/WProgressFlow.vue.d.ts +0 -28
- package/dist/types/components/ui/WSectionHeader.vue.d.ts +0 -22
- package/dist/types/components/ui/WStatusTag.vue.d.ts +0 -10
- package/dist/types/composables/index.d.ts +0 -6
- package/dist/types/composables/useApi.d.ts +0 -2
- package/dist/types/composables/useApiError.d.ts +0 -4
- package/dist/types/composables/useAppConfirm.d.ts +0 -4
- package/dist/types/composables/useAppToast.d.ts +0 -6
- package/dist/types/composables/useCrudManager.d.ts +0 -2
- package/dist/types/composables/useFormatters.d.ts +0 -19
- package/dist/types/crud.d.ts +0 -221
- package/dist/types/data-providers/axiosDataProvider.d.ts +0 -3
- package/dist/types/data-providers/index.d.ts +0 -2
- package/dist/types/data-providers/supabaseDataProvider.d.ts +0 -54
- package/dist/types/types/api.d.ts +0 -60
- package/dist/types/types/crud.d.ts +0 -221
- package/dist/types/types/dataProvider.d.ts +0 -28
- package/dist/types/types/index.d.ts +0 -6
- package/dist/types/types/plugin.d.ts +0 -24
- package/dist/types/utils/cep.d.ts +0 -14
- package/dist/types/utils/csv.d.ts +0 -13
- package/dist/types/utils/dates.d.ts +0 -5
- package/dist/types/utils/fieldMapper.d.ts +0 -20
- package/dist/types/utils/masks.d.ts +0 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-BKa0eSEM.js","sources":["../src/types/plugin.ts"],"sourcesContent":["import type { AxiosInstance } from 'axios'\nimport type { DataProvider } from './dataProvider'\n\nexport interface WPluginOptions {\n axios?: AxiosInstance\n dataProvider?: DataProvider\n defaultPageSize?: number\n dateFormat?: string\n dateTimeFormat?: string\n locale?: string\n currency?: string\n registerComponents?: boolean\n}\n\nexport interface WPluginConfig {\n axios?: AxiosInstance\n dataProvider: DataProvider\n defaultPageSize: number\n dateFormat: string\n dateTimeFormat: string\n locale: string\n currency: string\n}\n\nexport const W_AXIOS_KEY = Symbol('w-axios')\nexport const W_DATA_PROVIDER_KEY = Symbol('w-data-provider')\nexport const W_CONFIG_KEY = Symbol('w-config')\n"],"names":["W_AXIOS_KEY","W_DATA_PROVIDER_KEY","W_CONFIG_KEY"],"mappings":"AAwBO,MAAMA,IAAc,OAAO,SAAS,GAC9BC,IAAsB,OAAO,iBAAiB,GAC9CC,IAAe,OAAO,UAAU;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-D1YvyKXX.cjs","sources":["../src/types/plugin.ts"],"sourcesContent":["import type { AxiosInstance } from 'axios'\nimport type { DataProvider } from './dataProvider'\n\nexport interface WPluginOptions {\n axios?: AxiosInstance\n dataProvider?: DataProvider\n defaultPageSize?: number\n dateFormat?: string\n dateTimeFormat?: string\n locale?: string\n currency?: string\n registerComponents?: boolean\n}\n\nexport interface WPluginConfig {\n axios?: AxiosInstance\n dataProvider: DataProvider\n defaultPageSize: number\n dateFormat: string\n dateTimeFormat: string\n locale: string\n currency: string\n}\n\nexport const W_AXIOS_KEY = Symbol('w-axios')\nexport const W_DATA_PROVIDER_KEY = Symbol('w-data-provider')\nexport const W_CONFIG_KEY = Symbol('w-config')\n"],"names":["W_AXIOS_KEY","W_DATA_PROVIDER_KEY","W_CONFIG_KEY"],"mappings":"aAwBO,MAAMA,EAAc,OAAO,SAAS,EAC9BC,EAAsB,OAAO,iBAAiB,EAC9CC,EAAe,OAAO,UAAU"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.w-crud-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.w-crud-header-content{min-width:0}.w-crud-title{font-size:1.25rem;font-weight:600;letter-spacing:-.015em;color:var(--p-text-color);line-height:1.3}.w-crud-subtitle{margin-top:.125rem;font-size:.8125rem;color:var(--p-text-muted-color)}.w-crud-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.w-crud-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem;margin-bottom:1.25rem}.w-crud-kpi{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-radius:.75rem;border:1px solid var(--p-content-border-color);background:var(--p-content-background)}.w-crud-kpi-icon{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:.75rem;background:color-mix(in srgb,var(--p-primary-color) 10%,transparent);color:var(--p-primary-color);flex-shrink:0;font-size:1.125rem}.w-crud-kpi-icon--primary{background:color-mix(in srgb,var(--p-primary-color) 10%,transparent);color:var(--p-primary-color)}.w-crud-kpi-icon--success{background:color-mix(in srgb,var(--p-green-500, #22c55e) 10%,transparent);color:var(--p-green-500, #22c55e)}.w-crud-kpi-icon--warning{background:color-mix(in srgb,var(--p-yellow-500, #eab308) 10%,transparent);color:var(--p-yellow-500, #eab308)}.w-crud-kpi-icon--danger{background:color-mix(in srgb,var(--p-red-500, #ef4444) 10%,transparent);color:var(--p-red-500, #ef4444)}.w-crud-kpi-icon--info{background:color-mix(in srgb,var(--p-blue-500, #3b82f6) 10%,transparent);color:var(--p-blue-500, #3b82f6)}.w-crud-kpi-content{min-width:0}.w-crud-kpi-label{font-size:.6875rem;font-weight:500;color:var(--p-text-muted-color);text-transform:uppercase;letter-spacing:.05em;line-height:1;margin-bottom:.25rem}.w-crud-kpi-value{font-size:1.25rem;font-weight:700;color:var(--p-text-color);letter-spacing:-.02em;line-height:1}.w-crud-table{border-radius:.75rem;border:1px solid var(--p-content-border-color);background:var(--p-content-background);overflow:hidden}.w-crud-table .p-datatable{font-size:.8125rem}.w-crud-table .p-datatable-header{background:transparent;border-bottom:1px solid var(--p-content-border-color);padding:.75rem 1rem}.w-crud-table .p-datatable-thead>tr>th{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--p-text-muted-color);background:var(--p-content-background)}.w-crud-table .p-datatable-tbody>tr>td{padding-top:.625rem;padding-bottom:.625rem}.w-crud-table .p-datatable-paginator-bottom{border-top:1px solid var(--p-content-border-color)}.w-crud-paginator .p-paginator-content{justify-content:flex-end}.w-crud-paginator .p-paginator-current{font-size:.75rem;color:var(--p-text-muted-color);margin-right:auto!important}.w-crud-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.25rem 0}.w-crud-toolbar-start{display:flex;align-items:center;gap:.75rem}.w-crud-toolbar-end{display:flex;align-items:center;gap:.5rem}.w-crud-actions-header .p-datatable-column-header-content{justify-content:center}.w-crud-actions{display:flex;align-items:center;justify-content:center;gap:.125rem}.w-crud-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 1rem}.w-crud-empty-icon{display:flex;align-items:center;justify-content:center;width:4rem;height:4rem;border-radius:1rem;margin-bottom:1rem;background:var(--p-content-hover-background);color:var(--p-text-muted-color);font-size:1.5rem}.w-crud-empty-title{font-size:.875rem;font-weight:600;color:var(--p-text-color)}.w-crud-empty-text{font-size:.75rem;color:var(--p-text-muted-color);margin-top:.25rem}.p-datatable-header-cell.text-right .p-datatable-column-header-content{justify-content:flex-end}.p-datatable-header-cell.text-center .p-datatable-column-header-content{justify-content:center}.p-dialog.w-crud-form-dialog>.p-dialog-header{padding-bottom:.5rem}.p-dialog.w-crud-form-dialog>.p-dialog-content{padding-bottom:.75rem}.w-crud-form{display:flex;flex-direction:column;gap:1.5rem}.w-crud-form-group-header{margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--p-surface-200)}.dark .w-crud-form-group-header{border-bottom-color:var(--p-surface-700)}.w-crud-form-group-title{font-size:.875rem;font-weight:600;color:var(--p-text-color);margin:0}.w-crud-form-group-desc{font-size:.75rem;color:var(--p-text-muted-color);margin:.25rem 0 0}.w-crud-form-cep-error{display:block;font-size:.75rem;color:var(--p-red-500);margin-top:.25rem}.w-crud-form-cep-spinner{margin-left:.375rem;font-size:.75rem;color:var(--p-text-muted-color)}.w-crud-form-fields{display:grid;grid-template-columns:repeat(var(--w-form-cols, 2),1fr);gap:1rem 1rem}.w-crud-form-col-full{grid-column:span var(--w-col-span, 2)}.w-crud-form-col-half{grid-column:span var(--w-col-span, 1)}@media(max-width:640px){.w-crud-form-fields{grid-template-columns:1fr}.w-crud-form-col-full,.w-crud-form-col-half,.w-crud-form-switch{grid-column:1 / -1}}.w-crud-form-field{display:flex;flex-direction:column}.w-crud-form-required{color:var(--p-red-400, #f87171);margin-left:.125rem}.w-crud-form-label{display:block;font-weight:500;margin-bottom:.375rem;color:var(--p-text-color);font-size:.75rem}.w-crud-form-color-row{display:flex;align-items:center;gap:.5rem}.w-crud-form-switch{grid-column:span var(--w-col-span, 2);display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;border-radius:.5rem;background:var(--p-content-hover-background)}.w-crud-form-switch-label{font-size:.875rem;font-weight:500;color:var(--p-text-color);-webkit-user-select:none;user-select:none}.w-crud-form-error{display:block;font-size:.75rem;color:var(--p-red-400, #f87171);margin-top:.25rem}.w-crud-form-footer{display:flex;justify-content:space-between;gap:.5rem;padding-top:1rem;padding-bottom:.5rem;border-top:1px solid var(--p-content-border-color);margin-top:.25rem}.w-autocompletefk{position:relative;display:flex;align-items:stretch;width:100%}.w-autocompletefk .p-autocomplete{flex:1}.w-autocompletefk .p-autocomplete-input{padding-right:2.5rem}.w-autocompletefk-trigger{position:absolute;right:0;top:0;bottom:0;width:2.5rem;display:flex;align-items:center;justify-content:center;color:var(--p-text-muted-color);cursor:pointer;border:none;background:transparent;border-left:1px solid var(--p-content-border-color);border-radius:0 var(--p-border-radius) var(--p-border-radius) 0;transition:color .15s,background-color .15s;font-size:.875rem}.w-autocompletefk-trigger:hover{color:var(--p-text-color);background:var(--p-content-hover-background)}.w-autocompletefk-trigger:disabled{opacity:.4;cursor:default}.w-autocompletefk-trigger i{font-size:.875rem}.w-autocompletefk-toolbar{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.w-autocompletefk-toolbar-search{flex:1}.w-autocompletefk-toolbar-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.w-autocompletefk-empty{text-align:center;padding:1.5rem;color:var(--p-text-muted-color);font-size:.875rem}.w-autocompletefk-footer{display:flex;justify-content:flex-end;gap:.5rem}.w-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.w-page-header-content{min-width:0}.w-page-header-title{font-size:1.25rem;font-weight:600;letter-spacing:-.015em;color:var(--p-text-color);line-height:1.3}.w-page-header-subtitle{margin-top:.125rem;font-size:.8125rem;color:var(--p-text-muted-color)}.w-page-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.w-detail-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.w-detail-header-left{display:flex;align-items:center;gap:.75rem;min-width:0}.w-detail-header-icon{font-size:1.25rem;color:var(--p-primary-color)}.w-detail-header-content{min-width:0}.w-detail-header-title{font-size:1.125rem;font-weight:600;color:var(--p-text-color);line-height:1.3}.w-detail-header-subtitle{font-size:.75rem;color:var(--p-text-muted-color);margin-top:.125rem}.w-detail-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.w-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center}.w-empty-state-icon{display:flex;align-items:center;justify-content:center;width:4rem;height:4rem;border-radius:1rem;margin-bottom:1rem;background:var(--p-content-hover-background);color:var(--p-text-muted-color);font-size:1.5rem}.w-empty-state-title{font-size:.9375rem;font-weight:600;color:var(--p-text-color)}.w-empty-state-description{font-size:.8125rem;color:var(--p-text-muted-color);margin-top:.25rem;max-width:24rem}.w-info-card{padding:1.25rem;border-radius:.75rem;border:1px solid var(--p-content-border-color);background:var(--p-content-background);margin-bottom:1rem}.w-info-card-title{font-size:.9375rem;font-weight:600;color:var(--p-text-color);margin-bottom:.75rem}.w-info-card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem 1.5rem}.w-info-card-field{display:flex;flex-direction:column;gap:.125rem}.w-info-card-label{font-size:.6875rem;font-weight:500;color:var(--p-text-muted-color);text-transform:uppercase;letter-spacing:.05em}.w-info-card-value{font-size:.875rem;font-weight:500;color:var(--p-text-color)}.w-section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.w-section-header--compact{margin-bottom:.75rem}.w-section-header__main{display:flex;align-items:flex-start;gap:.75rem;min-width:0}.w-section-header__icon{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;flex-shrink:0;border-radius:.75rem;background:color-mix(in srgb,var(--p-primary-color) 10%,transparent);color:var(--p-primary-color)}.w-section-header__content{min-width:0}.w-section-header__title-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.w-section-header__title{font-size:1rem;font-weight:600;color:var(--p-text-color);line-height:1.3}.w-section-header__subtitle{margin-top:.125rem;font-size:.8125rem;color:var(--p-text-muted-color)}.w-section-header__actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.w-form-section{border:1px solid var(--p-content-border-color);border-radius:1rem;background:var(--p-content-background);padding:1rem}.w-form-section--muted{background:color-mix(in srgb,var(--p-content-background) 88%,var(--p-primary-color) 2%)}.w-form-section--outlined{background:transparent}.w-form-section__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.w-form-section__content{min-width:0}.w-form-section__title{font-size:.9375rem;font-weight:600;color:var(--p-text-color)}.w-form-section__description{margin-top:.125rem;font-size:.8125rem;color:var(--p-text-muted-color)}.w-form-section__actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.w-form-section__body{display:flex;flex-direction:column;gap:1rem}.w-action-bar{display:flex;align-items:center;gap:.75rem}.w-action-bar--between{justify-content:space-between}.w-action-bar--start{justify-content:flex-start}.w-action-bar--end{justify-content:flex-end}.w-action-bar__primary,.w-action-bar__secondary,.w-action-bar__filters{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.w-action-bar__primary{min-width:0}.w-action-bar__secondary{justify-content:flex-end}.w-kpi-grid{display:grid;gap:.75rem}.w-kpi-grid--cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.w-kpi-grid--cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.w-kpi-grid--cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.w-kpi-grid--cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.w-kpi-grid--cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.w-kpi-grid--auto{grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr))}.w-kpi-grid--dense{gap:.5rem}.w-kpi-card{display:flex;flex-direction:column;gap:.875rem;min-height:100%;padding:1rem 1.125rem;border:1px solid var(--p-content-border-color);border-radius:1rem;background:var(--p-content-background)}.w-kpi-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.w-kpi-card__icon{display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:.875rem;background:color-mix(in srgb,var(--p-primary-color) 10%,transparent);color:var(--p-primary-color);font-size:1.125rem}.w-kpi-card__content{display:flex;flex-direction:column;gap:.25rem}.w-kpi-card__label{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--p-text-muted-color);font-weight:600}.w-kpi-card__value{font-size:1.5rem;font-weight:700;line-height:1.1;letter-spacing:-.02em;color:var(--p-text-color)}.w-kpi-card__hint{font-size:.8125rem;color:var(--p-text-muted-color)}.w-kpi-card__footer{margin-top:auto}.w-kpi-card__trend{display:flex;justify-content:flex-end}.w-kpi-card__trend-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600;background:var(--p-content-hover-background);color:var(--p-text-muted-color)}.w-kpi-card__trend-badge--up{background:color-mix(in srgb,var(--p-green-500, #22c55e) 10%,transparent);color:var(--p-green-500, #22c55e)}.w-kpi-card__trend-badge--down{background:color-mix(in srgb,var(--p-red-500, #ef4444) 10%,transparent);color:var(--p-red-500, #ef4444)}.w-kpi-card__loading{display:flex;align-items:center;gap:.875rem}.w-kpi-card__loading-content{display:flex;flex:1;flex-direction:column;gap:.5rem}.w-kpi-card--success .w-kpi-card__icon{background:color-mix(in srgb,var(--p-green-500, #22c55e) 10%,transparent);color:var(--p-green-500, #22c55e)}.w-kpi-card--warning .w-kpi-card__icon{background:color-mix(in srgb,var(--p-yellow-500, #eab308) 10%,transparent);color:var(--p-yellow-500, #eab308)}.w-kpi-card--danger .w-kpi-card__icon{background:color-mix(in srgb,var(--p-red-500, #ef4444) 10%,transparent);color:var(--p-red-500, #ef4444)}.w-kpi-card--info .w-kpi-card__icon{background:color-mix(in srgb,var(--p-blue-500, #3b82f6) 10%,transparent);color:var(--p-blue-500, #3b82f6)}.w-kpi-card--neutral .w-kpi-card__icon{background:var(--p-content-hover-background);color:var(--p-text-muted-color)}.w-progress-flow{display:flex;gap:.75rem}.w-progress-flow--horizontal{align-items:stretch;flex-wrap:wrap}.w-progress-flow--vertical{flex-direction:column}.w-progress-flow__step{display:flex;align-items:flex-start;gap:.75rem;min-width:0}.w-progress-flow--horizontal .w-progress-flow__step{flex:1 1 0;min-width:12rem;padding:.875rem 1rem;border:1px solid var(--p-content-border-color);border-radius:1rem;background:var(--p-content-background)}.w-progress-flow__marker{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;flex-shrink:0;border-radius:999px;border:1px solid var(--p-content-border-color);color:var(--p-text-muted-color);background:transparent;font-size:.8125rem;font-weight:700}.w-progress-flow__content{min-width:0}.w-progress-flow__label{font-size:.875rem;font-weight:600;color:var(--p-text-color)}.w-progress-flow__description{margin-top:.125rem;font-size:.75rem;color:var(--p-text-muted-color)}.w-progress-flow__step--current .w-progress-flow__marker{border-color:var(--p-primary-color);background:color-mix(in srgb,var(--p-primary-color) 12%,transparent);color:var(--p-primary-color)}.w-progress-flow__step--done .w-progress-flow__marker{border-color:var(--p-green-500, #22c55e);background:color-mix(in srgb,var(--p-green-500, #22c55e) 12%,transparent);color:var(--p-green-500, #22c55e)}.w-crud-view-toggle{display:inline-flex;align-items:center;gap:.125rem}.w-crud-toolbar--standalone{border:1px solid var(--p-content-border-color);background:var(--p-content-background);border-radius:.75rem;padding:.625rem .75rem;margin-bottom:.75rem}.w-crud-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem}.w-crud-card{display:flex;flex-direction:column;gap:.5rem;padding:1rem;border:1px solid var(--p-content-border-color);border-radius:.75rem;background:var(--p-content-background);cursor:default;transition:border-color .15s,box-shadow .15s}.w-crud-card:hover{border-color:color-mix(in srgb,var(--p-primary-color) 40%,var(--p-content-border-color))}.w-crud-card-body{display:flex;flex-direction:column;gap:.375rem;min-width:0}.w-crud-card-row{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;font-size:.8125rem;min-width:0}.w-crud-card-row--title{font-size:.9375rem;font-weight:600;color:var(--p-text-color);margin-bottom:.125rem}.w-crud-card-label{font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--p-text-muted-color);flex-shrink:0}.w-crud-card-value{min-width:0;text-align:right;color:var(--p-text-color)}.w-crud-card-row--title .w-crud-card-value{text-align:left}.w-crud-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:.125rem;margin-top:.25rem;padding-top:.5rem;border-top:1px solid var(--p-content-border-color)}.w-crud-cards-loading{display:flex;align-items:center;justify-content:center;padding:3rem 1rem;color:var(--p-text-muted-color);font-size:1.5rem}.w-crud-cards-wrap .w-crud-paginator{margin-top:.75rem}.w-crud-card--selected{border-color:var(--p-primary-color);box-shadow:0 0 0 1px var(--p-primary-color)}.w-crud-content--rail{display:flex;align-items:flex-start;gap:.75rem}.w-crud-content-main{min-width:0}.w-crud-content--rail .w-crud-content-main{flex:1}.w-crud-rail{position:sticky;top:1rem;display:flex;flex-direction:column;align-items:center;gap:.375rem;flex-shrink:0;width:52px;padding:.5rem 0;border:1px solid var(--p-content-border-color);border-radius:15px;background:var(--p-content-background);box-shadow:var(--p-overlay-popover-shadow, 0 6px 20px rgba(15, 23, 42, .09))}.w-crud-rail-sep{width:60%;height:1px;background:var(--p-content-border-color);margin:.125rem 0}.w-crud-ctx-danger .p-contextmenu-item-link,.w-crud-ctx-danger .p-contextmenu-item-link .p-contextmenu-item-icon{color:var(--p-red-500, #ef4444)}.w-money-input__field{text-align:right}.w-transfer{display:grid;grid-template-columns:1fr auto 1fr;gap:.75rem;align-items:stretch}.w-transfer--disabled{opacity:.6;pointer-events:none}.w-transfer__pane{display:flex;flex-direction:column;gap:.5rem;border:1px solid var(--p-content-border-color);border-radius:.75rem;background:var(--p-content-background);padding:.625rem;min-width:0}.w-transfer__head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.w-transfer__title{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--p-text-muted-color)}.w-transfer__count{font-size:.6875rem;font-weight:600;color:var(--p-text-muted-color);background:var(--p-content-hover-background);border-radius:999px;padding:.0625rem .5rem}.w-transfer__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.125rem;max-height:14rem;overflow-y:auto}.w-transfer__item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.375rem .5rem;border-radius:.5rem;font-size:.8125rem;color:var(--p-text-color);cursor:pointer;transition:background-color .12s}.w-transfer__item:hover{background:var(--p-content-hover-background)}.w-transfer__item i{color:var(--p-text-muted-color);font-size:.75rem}.w-transfer__empty{padding:.75rem .5rem;text-align:center;font-size:.75rem;color:var(--p-text-muted-color)}.w-transfer__controls{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.375rem}@media(max-width:768px){.w-section-header,.w-form-section__header,.w-action-bar--stack{flex-direction:column;align-items:stretch}.w-action-bar__primary,.w-action-bar__secondary,.w-action-bar__filters{justify-content:flex-start}.w-kpi-grid--cols-2,.w-kpi-grid--cols-3,.w-kpi-grid--cols-4,.w-transfer{grid-template-columns:1fr}.w-transfer__controls{flex-direction:row}}
|
|
1
|
+
.w-imgcropper-preview[data-v-95684d2d]{position:relative;overflow:hidden;border-radius:8px;border:1px solid var(--p-content-border-color, #e2e8f0);background:var(--p-content-background, #f8fafc)}.w-imgcropper-preview.is-circular[data-v-95684d2d]{border-radius:50%}.w-imgcropper-img[data-v-95684d2d]{width:100%;height:100%;object-fit:cover;display:block}.w-imgcropper-actions[data-v-95684d2d]{position:absolute;inset:auto 0 0 0;display:flex;justify-content:center;gap:4px;padding:4px;background:color-mix(in srgb,#000 45%,transparent);opacity:0;transition:opacity .15s ease}.w-imgcropper-preview:hover .w-imgcropper-actions[data-v-95684d2d],.w-imgcropper-preview:focus-within .w-imgcropper-actions[data-v-95684d2d]{opacity:1}.w-imgcropper-empty[data-v-95684d2d]{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer;border:none;background:transparent;color:var(--p-text-muted-color, #64748b);font-size:.85rem}.w-imgcropper-empty i[data-v-95684d2d]{font-size:1.5rem}.w-imgcropper-file[data-v-95684d2d]{display:none}.w-imgcropper-stage[data-v-95684d2d]{display:flex;flex-direction:column;gap:16px;align-items:center}.w-imgcropper-viewport[data-v-95684d2d]{position:relative;overflow:hidden;touch-action:none;cursor:grab;background:#1e1e1e;border-radius:4px}.w-imgcropper-viewport[data-v-95684d2d]:active{cursor:grabbing}.w-imgcropper-viewport.is-circular[data-v-95684d2d]{border-radius:50%}.w-imgcropper-cropimg[data-v-95684d2d]{position:absolute;top:0;left:0;max-width:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.w-imgcropper-stencil[data-v-95684d2d]{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;box-shadow:0 0 0 1px color-mix(in srgb,#fff 60%,transparent) inset}.w-imgcropper-stencil.is-circular[data-v-95684d2d]{border-radius:50%}.w-imgcropper-zoom[data-v-95684d2d]{display:flex;align-items:center;gap:10px;width:100%;color:var(--p-text-muted-color, #64748b)}.w-imgcropper-slider[data-v-95684d2d]{flex:1}.w-crud-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.w-crud-header-content{min-width:0}.w-crud-title{font-size:1.25rem;font-weight:600;letter-spacing:-.015em;color:var(--p-text-color);line-height:1.3}.w-crud-subtitle{margin-top:.125rem;font-size:.8125rem;color:var(--p-text-muted-color)}.w-crud-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.w-crud-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem;margin-bottom:1.25rem}.w-crud-kpi{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-radius:.75rem;border:1px solid var(--p-content-border-color);background:var(--p-content-background)}.w-crud-kpi-icon{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:.75rem;background:color-mix(in srgb,var(--p-primary-color) 10%,transparent);color:var(--p-primary-color);flex-shrink:0;font-size:1.125rem}.w-crud-kpi-icon--primary{background:color-mix(in srgb,var(--p-primary-color) 10%,transparent);color:var(--p-primary-color)}.w-crud-kpi-icon--success{background:color-mix(in srgb,var(--p-green-500, #22c55e) 10%,transparent);color:var(--p-green-500, #22c55e)}.w-crud-kpi-icon--warning{background:color-mix(in srgb,var(--p-yellow-500, #eab308) 10%,transparent);color:var(--p-yellow-500, #eab308)}.w-crud-kpi-icon--danger{background:color-mix(in srgb,var(--p-red-500, #ef4444) 10%,transparent);color:var(--p-red-500, #ef4444)}.w-crud-kpi-icon--info{background:color-mix(in srgb,var(--p-blue-500, #3b82f6) 10%,transparent);color:var(--p-blue-500, #3b82f6)}.w-crud-kpi-content{min-width:0}.w-crud-kpi-label{font-size:.6875rem;font-weight:500;color:var(--p-text-muted-color);text-transform:uppercase;letter-spacing:.05em;line-height:1;margin-bottom:.25rem}.w-crud-kpi-value{font-size:1.25rem;font-weight:700;color:var(--p-text-color);letter-spacing:-.02em;line-height:1}.w-crud-table{border-radius:.75rem;border:1px solid var(--p-content-border-color);background:var(--p-content-background);overflow:hidden}.w-crud-table .p-datatable{font-size:.8125rem}.w-crud-table .p-datatable-header{background:transparent;border-bottom:1px solid var(--p-content-border-color);padding:.75rem 1rem}.w-crud-table .p-datatable-thead>tr>th{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--p-text-muted-color);background:var(--p-content-background)}.w-crud-table .p-datatable-tbody>tr>td{padding-top:.625rem;padding-bottom:.625rem}.w-crud-table .p-datatable-paginator-bottom{border-top:1px solid var(--p-content-border-color)}.w-crud-paginator .p-paginator-content{justify-content:flex-end}.w-crud-paginator .p-paginator-current{font-size:.75rem;color:var(--p-text-muted-color);margin-right:auto!important}.w-crud-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.25rem 0}.w-crud-toolbar-start{display:flex;align-items:center;gap:.75rem}.w-crud-toolbar-end{display:flex;align-items:center;gap:.5rem}.w-crud-actions-header .p-datatable-column-header-content{justify-content:center}.w-crud-actions{display:flex;align-items:center;justify-content:center;gap:.125rem}.w-crud-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 1rem}.w-crud-empty-icon{display:flex;align-items:center;justify-content:center;width:4rem;height:4rem;border-radius:1rem;margin-bottom:1rem;background:var(--p-content-hover-background);color:var(--p-text-muted-color);font-size:1.5rem}.w-crud-empty-title{font-size:.875rem;font-weight:600;color:var(--p-text-color)}.w-crud-empty-text{font-size:.75rem;color:var(--p-text-muted-color);margin-top:.25rem}.p-datatable-header-cell.text-right .p-datatable-column-header-content{justify-content:flex-end}.p-datatable-header-cell.text-center .p-datatable-column-header-content{justify-content:center}.p-dialog.w-crud-form-dialog>.p-dialog-header{padding-bottom:.5rem}.p-dialog.w-crud-form-dialog>.p-dialog-content{padding-bottom:.75rem}.w-crud-form{display:flex;flex-direction:column;gap:1.5rem}.w-crud-form-group-header{margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--p-surface-200)}.dark .w-crud-form-group-header{border-bottom-color:var(--p-surface-700)}.w-crud-form-group-title{font-size:.875rem;font-weight:600;color:var(--p-text-color);margin:0}.w-crud-form-group-desc{font-size:.75rem;color:var(--p-text-muted-color);margin:.25rem 0 0}.w-crud-form-cep-error{display:block;font-size:.75rem;color:var(--p-red-500);margin-top:.25rem}.w-crud-form-cep-spinner{margin-left:.375rem;font-size:.75rem;color:var(--p-text-muted-color)}.w-crud-form-fields{display:grid;grid-template-columns:repeat(var(--w-form-cols, 2),1fr);gap:1rem 1rem}.w-crud-form-col-full{grid-column:span var(--w-col-span, 2)}.w-crud-form-col-half{grid-column:span var(--w-col-span, 1)}@media(max-width:640px){.w-crud-form-fields{grid-template-columns:1fr}.w-crud-form-col-full,.w-crud-form-col-half,.w-crud-form-switch{grid-column:1 / -1}}.w-crud-form-field{display:flex;flex-direction:column}.w-crud-form-required{color:var(--p-red-400, #f87171);margin-left:.125rem}.w-crud-form-label{display:block;font-weight:500;margin-bottom:.375rem;color:var(--p-text-color);font-size:.75rem}.w-crud-form-color-row{display:flex;align-items:center;gap:.5rem}.w-crud-form-switch{grid-column:span var(--w-col-span, 2);display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;border-radius:.5rem;background:var(--p-content-hover-background)}.w-crud-form-switch-label{font-size:.875rem;font-weight:500;color:var(--p-text-color);-webkit-user-select:none;user-select:none}.w-crud-form-error{display:block;font-size:.75rem;color:var(--p-red-400, #f87171);margin-top:.25rem}.w-crud-form-footer{display:flex;justify-content:space-between;gap:.5rem;padding-top:1rem;padding-bottom:.5rem;border-top:1px solid var(--p-content-border-color);margin-top:.25rem}.w-autocompletefk{position:relative;display:flex;align-items:stretch;width:100%}.w-autocompletefk .p-autocomplete{flex:1}.w-autocompletefk .p-autocomplete-input{padding-right:2.5rem}.w-autocompletefk-trigger{position:absolute;right:0;top:0;bottom:0;width:2.5rem;display:flex;align-items:center;justify-content:center;color:var(--p-text-muted-color);cursor:pointer;border:none;background:transparent;border-left:1px solid var(--p-content-border-color);border-radius:0 var(--p-border-radius) var(--p-border-radius) 0;transition:color .15s,background-color .15s;font-size:.875rem}.w-autocompletefk-trigger:hover{color:var(--p-text-color);background:var(--p-content-hover-background)}.w-autocompletefk-trigger:disabled{opacity:.4;cursor:default}.w-autocompletefk-trigger i{font-size:.875rem}.w-autocompletefk-toolbar{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.w-autocompletefk-toolbar-search{flex:1}.w-autocompletefk-toolbar-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.w-autocompletefk-empty{text-align:center;padding:1.5rem;color:var(--p-text-muted-color);font-size:.875rem}.w-autocompletefk-footer{display:flex;justify-content:flex-end;gap:.5rem}.w-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.w-page-header-content{min-width:0}.w-page-header-title{font-size:1.25rem;font-weight:600;letter-spacing:-.015em;color:var(--p-text-color);line-height:1.3}.w-page-header-subtitle{margin-top:.125rem;font-size:.8125rem;color:var(--p-text-muted-color)}.w-page-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.w-detail-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.w-detail-header-left{display:flex;align-items:center;gap:.75rem;min-width:0}.w-detail-header-icon{font-size:1.25rem;color:var(--p-primary-color)}.w-detail-header-content{min-width:0}.w-detail-header-title{font-size:1.125rem;font-weight:600;color:var(--p-text-color);line-height:1.3}.w-detail-header-subtitle{font-size:.75rem;color:var(--p-text-muted-color);margin-top:.125rem}.w-detail-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.w-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center}.w-empty-state-icon{display:flex;align-items:center;justify-content:center;width:4rem;height:4rem;border-radius:1rem;margin-bottom:1rem;background:var(--p-content-hover-background);color:var(--p-text-muted-color);font-size:1.5rem}.w-empty-state-title{font-size:.9375rem;font-weight:600;color:var(--p-text-color)}.w-empty-state-description{font-size:.8125rem;color:var(--p-text-muted-color);margin-top:.25rem;max-width:24rem}.w-info-card{padding:1.25rem;border-radius:.75rem;border:1px solid var(--p-content-border-color);background:var(--p-content-background);margin-bottom:1rem}.w-info-card-title{font-size:.9375rem;font-weight:600;color:var(--p-text-color);margin-bottom:.75rem}.w-info-card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem 1.5rem}.w-info-card-field{display:flex;flex-direction:column;gap:.125rem}.w-info-card-label{font-size:.6875rem;font-weight:500;color:var(--p-text-muted-color);text-transform:uppercase;letter-spacing:.05em}.w-info-card-value{font-size:.875rem;font-weight:500;color:var(--p-text-color)}.w-section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.w-section-header--compact{margin-bottom:.75rem}.w-section-header__main{display:flex;align-items:flex-start;gap:.75rem;min-width:0}.w-section-header__icon{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;flex-shrink:0;border-radius:.75rem;background:color-mix(in srgb,var(--p-primary-color) 10%,transparent);color:var(--p-primary-color)}.w-section-header__content{min-width:0}.w-section-header__title-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.w-section-header__title{font-size:1rem;font-weight:600;color:var(--p-text-color);line-height:1.3}.w-section-header__subtitle{margin-top:.125rem;font-size:.8125rem;color:var(--p-text-muted-color)}.w-section-header__actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.w-form-section{border:1px solid var(--p-content-border-color);border-radius:1rem;background:var(--p-content-background);padding:1rem}.w-form-section--muted{background:color-mix(in srgb,var(--p-content-background) 88%,var(--p-primary-color) 2%)}.w-form-section--outlined{background:transparent}.w-form-section__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.w-form-section__content{min-width:0}.w-form-section__title{font-size:.9375rem;font-weight:600;color:var(--p-text-color)}.w-form-section__description{margin-top:.125rem;font-size:.8125rem;color:var(--p-text-muted-color)}.w-form-section__actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.w-form-section__body{display:flex;flex-direction:column;gap:1rem}.w-action-bar{display:flex;align-items:center;gap:.75rem}.w-action-bar--between{justify-content:space-between}.w-action-bar--start{justify-content:flex-start}.w-action-bar--end{justify-content:flex-end}.w-action-bar__primary,.w-action-bar__secondary,.w-action-bar__filters{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.w-action-bar__primary{min-width:0}.w-action-bar__secondary{justify-content:flex-end}.w-kpi-grid{display:grid;gap:.75rem}.w-kpi-grid--cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.w-kpi-grid--cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.w-kpi-grid--cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.w-kpi-grid--cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.w-kpi-grid--cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.w-kpi-grid--auto{grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr))}.w-kpi-grid--dense{gap:.5rem}.w-kpi-card{display:flex;flex-direction:column;gap:.875rem;min-height:100%;padding:1rem 1.125rem;border:1px solid var(--p-content-border-color);border-radius:1rem;background:var(--p-content-background)}.w-kpi-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.w-kpi-card__icon{display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:.875rem;background:color-mix(in srgb,var(--p-primary-color) 10%,transparent);color:var(--p-primary-color);font-size:1.125rem}.w-kpi-card__content{display:flex;flex-direction:column;gap:.25rem}.w-kpi-card__label{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--p-text-muted-color);font-weight:600}.w-kpi-card__value{font-size:1.5rem;font-weight:700;line-height:1.1;letter-spacing:-.02em;color:var(--p-text-color)}.w-kpi-card__hint{font-size:.8125rem;color:var(--p-text-muted-color)}.w-kpi-card__footer{margin-top:auto}.w-kpi-card__trend{display:flex;justify-content:flex-end}.w-kpi-card__trend-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600;background:var(--p-content-hover-background);color:var(--p-text-muted-color)}.w-kpi-card__trend-badge--up{background:color-mix(in srgb,var(--p-green-500, #22c55e) 10%,transparent);color:var(--p-green-500, #22c55e)}.w-kpi-card__trend-badge--down{background:color-mix(in srgb,var(--p-red-500, #ef4444) 10%,transparent);color:var(--p-red-500, #ef4444)}.w-kpi-card__loading{display:flex;align-items:center;gap:.875rem}.w-kpi-card__loading-content{display:flex;flex:1;flex-direction:column;gap:.5rem}.w-kpi-card--success .w-kpi-card__icon{background:color-mix(in srgb,var(--p-green-500, #22c55e) 10%,transparent);color:var(--p-green-500, #22c55e)}.w-kpi-card--warning .w-kpi-card__icon{background:color-mix(in srgb,var(--p-yellow-500, #eab308) 10%,transparent);color:var(--p-yellow-500, #eab308)}.w-kpi-card--danger .w-kpi-card__icon{background:color-mix(in srgb,var(--p-red-500, #ef4444) 10%,transparent);color:var(--p-red-500, #ef4444)}.w-kpi-card--info .w-kpi-card__icon{background:color-mix(in srgb,var(--p-blue-500, #3b82f6) 10%,transparent);color:var(--p-blue-500, #3b82f6)}.w-kpi-card--neutral .w-kpi-card__icon{background:var(--p-content-hover-background);color:var(--p-text-muted-color)}.w-progress-flow{display:flex;gap:.75rem}.w-progress-flow--horizontal{align-items:stretch;flex-wrap:wrap}.w-progress-flow--vertical{flex-direction:column}.w-progress-flow__step{display:flex;align-items:flex-start;gap:.75rem;min-width:0}.w-progress-flow--horizontal .w-progress-flow__step{flex:1 1 0;min-width:12rem;padding:.875rem 1rem;border:1px solid var(--p-content-border-color);border-radius:1rem;background:var(--p-content-background)}.w-progress-flow__marker{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;flex-shrink:0;border-radius:999px;border:1px solid var(--p-content-border-color);color:var(--p-text-muted-color);background:transparent;font-size:.8125rem;font-weight:700}.w-progress-flow__content{min-width:0}.w-progress-flow__label{font-size:.875rem;font-weight:600;color:var(--p-text-color)}.w-progress-flow__description{margin-top:.125rem;font-size:.75rem;color:var(--p-text-muted-color)}.w-progress-flow__step--current .w-progress-flow__marker{border-color:var(--p-primary-color);background:color-mix(in srgb,var(--p-primary-color) 12%,transparent);color:var(--p-primary-color)}.w-progress-flow__step--done .w-progress-flow__marker{border-color:var(--p-green-500, #22c55e);background:color-mix(in srgb,var(--p-green-500, #22c55e) 12%,transparent);color:var(--p-green-500, #22c55e)}.w-crud-view-toggle{display:inline-flex;align-items:center;gap:.125rem}.w-crud-toolbar--standalone{border:1px solid var(--p-content-border-color);background:var(--p-content-background);border-radius:.75rem;padding:.625rem .75rem;margin-bottom:.75rem}.w-crud-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem}.w-crud-card{display:flex;flex-direction:column;gap:.5rem;padding:1rem;border:1px solid var(--p-content-border-color);border-radius:.75rem;background:var(--p-content-background);cursor:default;transition:border-color .15s,box-shadow .15s}.w-crud-card:hover{border-color:color-mix(in srgb,var(--p-primary-color) 40%,var(--p-content-border-color))}.w-crud-card-body{display:flex;flex-direction:column;gap:.375rem;min-width:0}.w-crud-card-row{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;font-size:.8125rem;min-width:0}.w-crud-card-row--title{font-size:.9375rem;font-weight:600;color:var(--p-text-color);margin-bottom:.125rem}.w-crud-card-label{font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--p-text-muted-color);flex-shrink:0}.w-crud-card-value{min-width:0;text-align:right;color:var(--p-text-color)}.w-crud-card-row--title .w-crud-card-value{text-align:left}.w-crud-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:.125rem;margin-top:.25rem;padding-top:.5rem;border-top:1px solid var(--p-content-border-color)}.w-crud-cards-loading{display:flex;align-items:center;justify-content:center;padding:3rem 1rem;color:var(--p-text-muted-color);font-size:1.5rem}.w-crud-cards-wrap .w-crud-paginator{margin-top:.75rem}.w-crud-card--selected{border-color:var(--p-primary-color);box-shadow:0 0 0 1px var(--p-primary-color)}.w-crud-content--rail{display:flex;align-items:flex-start;gap:.75rem}.w-crud-content-main{min-width:0}.w-crud-content--rail .w-crud-content-main{flex:1}.w-crud-rail{position:sticky;top:1rem;display:flex;flex-direction:column;align-items:center;gap:.375rem;flex-shrink:0;width:52px;padding:.5rem 0;border:1px solid var(--p-content-border-color);border-radius:15px;background:var(--p-content-background);box-shadow:var(--p-overlay-popover-shadow, 0 6px 20px rgba(15, 23, 42, .09))}.w-crud-rail-sep{width:60%;height:1px;background:var(--p-content-border-color);margin:.125rem 0}.w-crud-ctx-danger .p-contextmenu-item-link,.w-crud-ctx-danger .p-contextmenu-item-link .p-contextmenu-item-icon{color:var(--p-red-500, #ef4444)}.w-money-input__field{text-align:right}.w-transfer{display:grid;grid-template-columns:1fr auto 1fr;gap:.75rem;align-items:stretch}.w-transfer--disabled{opacity:.6;pointer-events:none}.w-transfer__pane{display:flex;flex-direction:column;gap:.5rem;border:1px solid var(--p-content-border-color);border-radius:.75rem;background:var(--p-content-background);padding:.625rem;min-width:0}.w-transfer__head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.w-transfer__title{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--p-text-muted-color)}.w-transfer__count{font-size:.6875rem;font-weight:600;color:var(--p-text-muted-color);background:var(--p-content-hover-background);border-radius:999px;padding:.0625rem .5rem}.w-transfer__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.125rem;max-height:14rem;overflow-y:auto}.w-transfer__item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.375rem .5rem;border-radius:.5rem;font-size:.8125rem;color:var(--p-text-color);cursor:pointer;transition:background-color .12s}.w-transfer__item:hover{background:var(--p-content-hover-background)}.w-transfer__item i{color:var(--p-text-muted-color);font-size:.75rem}.w-transfer__empty{padding:.75rem .5rem;text-align:center;font-size:.75rem;color:var(--p-text-muted-color)}.w-transfer__controls{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.375rem}@media(max-width:768px){.w-section-header,.w-form-section__header,.w-action-bar--stack{flex-direction:column;align-items:stretch}.w-action-bar__primary,.w-action-bar__secondary,.w-action-bar__filters{justify-content:flex-start}.w-kpi-grid--cols-2,.w-kpi-grid--cols-3,.w-kpi-grid--cols-4,.w-transfer{grid-template-columns:1fr}.w-transfer__controls{flex-direction:row}}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface RowAction<T = Record<string, unknown>> {
|
|
2
|
+
action: string;
|
|
3
|
+
icon: string;
|
|
4
|
+
tooltip?: string;
|
|
5
|
+
severity?: 'secondary' | 'success' | 'info' | 'warn' | 'danger' | 'contrast';
|
|
6
|
+
visible?: (data: T) => boolean;
|
|
7
|
+
disabled?: (data: T) => boolean;
|
|
8
|
+
handler?: (data: T) => void;
|
|
9
|
+
}
|
|
10
|
+
export interface BulkAction<T = Record<string, unknown>> {
|
|
11
|
+
action: string;
|
|
12
|
+
label: string;
|
|
13
|
+
icon?: string;
|
|
14
|
+
severity?: 'secondary' | 'success' | 'info' | 'warn' | 'danger' | 'contrast';
|
|
15
|
+
/** Desabilita a ação para a seleção atual. */
|
|
16
|
+
disabled?: (items: T[]) => boolean;
|
|
17
|
+
/** Executa a ação sobre os itens selecionados. */
|
|
18
|
+
handler: (items: T[]) => void | Promise<void>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export type ColumnType = 'text' | 'boolean' | 'date' | 'datetime' | 'number' | 'currency' | 'image' | 'custom';
|
|
2
|
+
/** Filtro declarativo de coluna — renderizado na barra de filtros e enviado
|
|
3
|
+
* como parâmetro na requisição de `list`. Opt-in por coluna. */
|
|
4
|
+
export interface ColumnFilter {
|
|
5
|
+
/** Widget do filtro. Default: 'text'. */
|
|
6
|
+
type?: 'text' | 'select' | 'boolean' | 'numeric';
|
|
7
|
+
/** Opções para `type: 'select'`. */
|
|
8
|
+
options?: {
|
|
9
|
+
label: string;
|
|
10
|
+
value: unknown;
|
|
11
|
+
}[];
|
|
12
|
+
/** Nome do parâmetro enviado à API. Default: o `field` da coluna. */
|
|
13
|
+
param?: string;
|
|
14
|
+
placeholder?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface ColumnDef {
|
|
17
|
+
field: string;
|
|
18
|
+
header: string;
|
|
19
|
+
type?: ColumnType;
|
|
20
|
+
style?: string;
|
|
21
|
+
align?: 'left' | 'center' | 'right';
|
|
22
|
+
sortable?: boolean;
|
|
23
|
+
format?: (value: unknown, rowData?: Record<string, unknown>) => string;
|
|
24
|
+
visible?: boolean;
|
|
25
|
+
decimals?: number;
|
|
26
|
+
tagValue?: (value: unknown, rowData?: Record<string, unknown>) => string;
|
|
27
|
+
tagSeverity?: (value: unknown, rowData?: Record<string, unknown>) => string;
|
|
28
|
+
/** Filtro declarativo desta coluna (aparece na barra de filtros). */
|
|
29
|
+
filter?: ColumnFilter;
|
|
30
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** Dica de controle para o workbench quando o tipo da prop não basta. */
|
|
2
|
+
export interface ControlHint {
|
|
3
|
+
type?: 'text' | 'number' | 'boolean' | 'select' | 'color' | 'textarea';
|
|
4
|
+
/** Opções para 'select' quando não dá pra inferir de um union type. */
|
|
5
|
+
options?: (string | number)[];
|
|
6
|
+
min?: number;
|
|
7
|
+
max?: number;
|
|
8
|
+
step?: number;
|
|
9
|
+
}
|
|
10
|
+
/** Um cenário de uso, renderizado ao vivo no workbench e nas docs. */
|
|
11
|
+
export interface ComponentExample {
|
|
12
|
+
/** Título curto (aba/seção). */
|
|
13
|
+
name: string;
|
|
14
|
+
description?: string;
|
|
15
|
+
/** Valores de props deste cenário. */
|
|
16
|
+
props?: Record<string, unknown>;
|
|
17
|
+
/** Conteúdo de slot por nome (template como string, para o snippet). */
|
|
18
|
+
slots?: Record<string, string>;
|
|
19
|
+
}
|
|
20
|
+
export interface ComponentSidecar {
|
|
21
|
+
/** Categoria para agrupar na navegação (ex.: 'CRUD', 'Formulário', 'UI'). */
|
|
22
|
+
category: string;
|
|
23
|
+
/** Ícone PrimeIcons (ex.: 'pi pi-chart-bar'). */
|
|
24
|
+
icon?: string;
|
|
25
|
+
/** Resumo de uma linha (fallback quando o SFC não tem doc de topo). */
|
|
26
|
+
summary?: string;
|
|
27
|
+
/** Exemplos ao vivo; o primeiro é o estado inicial do workbench. */
|
|
28
|
+
examples?: ComponentExample[];
|
|
29
|
+
/** Dicas de controle por prop, quando o tipo não basta para o workbench. */
|
|
30
|
+
controls?: Record<string, ControlHint>;
|
|
31
|
+
}
|
|
32
|
+
/** Helper de autoria: type-check + autocomplete no sidecar. */
|
|
33
|
+
export declare function defineComponentMeta(meta: ComponentSidecar): ComponentSidecar;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
import { ColumnDef } from './column';
|
|
3
|
+
export type FieldType = 'text' | 'email' | 'password' | 'number' | 'currency' | 'date' | 'datetime' | 'select' | 'autocomplete' | 'fk' | 'switch' | 'textarea' | 'color' | 'cpf_cnpj' | 'mask' | 'image' | 'cep' | 'transfer';
|
|
4
|
+
export interface SelectOption {
|
|
5
|
+
[key: string]: unknown;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Filtro em cascata (drill-down) de um campo FK: torna a busca dependente do valor
|
|
9
|
+
* de outro campo do formulário, aplicando-o como filtro na requisição à API.
|
|
10
|
+
*/
|
|
11
|
+
export interface FieldDependency {
|
|
12
|
+
/** Campo do formulário cujo valor alimenta o filtro (ex.: 'unidade_producao'). */
|
|
13
|
+
field: string;
|
|
14
|
+
/** Nome do parâmetro enviado à API. Default: o próprio `field`. */
|
|
15
|
+
param?: string;
|
|
16
|
+
/** Se true, a busca só ocorre quando o valor de origem estiver preenchido
|
|
17
|
+
* (cascata obrigatória). Default: true. */
|
|
18
|
+
required?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface FieldDef {
|
|
21
|
+
field: string;
|
|
22
|
+
label: string;
|
|
23
|
+
type?: FieldType;
|
|
24
|
+
required?: boolean;
|
|
25
|
+
/** Largura do campo no grid do form (ver `columns` do WFormRenderer):
|
|
26
|
+
* - omitido ou 'full' → linha inteira
|
|
27
|
+
* - 0.5 → metade da linha (independe do nº de colunas)
|
|
28
|
+
* - inteiro ≥ 1 → ocupa N colunas do grid (limitado ao total de colunas) */
|
|
29
|
+
colSpan?: number | 'full';
|
|
30
|
+
defaultValue?: unknown | (() => unknown);
|
|
31
|
+
disabled?: boolean | ((formData: Record<string, unknown>, isEditing: boolean) => boolean);
|
|
32
|
+
disabledOnEdit?: boolean;
|
|
33
|
+
visible?: boolean | ((formData: Record<string, unknown>, isEditing: boolean) => boolean);
|
|
34
|
+
placeholder?: string;
|
|
35
|
+
validate?: (value: unknown) => string | null;
|
|
36
|
+
autofocus?: boolean | 'create' | 'edit';
|
|
37
|
+
options?: SelectOption[] | Ref<SelectOption[]>;
|
|
38
|
+
optionLabel?: string;
|
|
39
|
+
optionValue?: string;
|
|
40
|
+
showClear?: boolean;
|
|
41
|
+
/** For 'transfer' fields — option keys to match against when searching
|
|
42
|
+
* (defaults to [optionLabel]). */
|
|
43
|
+
searchFields?: string[];
|
|
44
|
+
endpoint?: string;
|
|
45
|
+
endpointParams?: Record<string, string | number | boolean>;
|
|
46
|
+
/** Filtro em cascata: torna esta FK dependente do valor de outro(s) campo(s) do
|
|
47
|
+
* formulário, aplicando-o(s) como filtro na busca da API (ex.: um "local" que só
|
|
48
|
+
* lista os da "unidade_producao" selecionada). Com `required` (default true), a
|
|
49
|
+
* busca só ocorre após o campo de origem estar preenchido. */
|
|
50
|
+
dependsOn?: FieldDependency | FieldDependency[];
|
|
51
|
+
/** Placeholder da FK enquanto uma cascata obrigatória (`dependsOn`) não estiver
|
|
52
|
+
* preenchida — ex.: "Selecione a unidade primeiro". */
|
|
53
|
+
blockedPlaceholder?: string;
|
|
54
|
+
crudFields?: FieldDef[];
|
|
55
|
+
crudColumns?: ColumnDef[];
|
|
56
|
+
min?: number;
|
|
57
|
+
max?: number;
|
|
58
|
+
minFractionDigits?: number;
|
|
59
|
+
maxFractionDigits?: number;
|
|
60
|
+
prefix?: string;
|
|
61
|
+
suffix?: string;
|
|
62
|
+
/** For 'currency' fields — render WMoneyInput (digit entry filled from the
|
|
63
|
+
* right, like a calculator/POS) instead of the default InputNumber. */
|
|
64
|
+
fillFromRight?: boolean;
|
|
65
|
+
/** Fixed decimal places for 'currency' fillFromRight mode (default: 2). */
|
|
66
|
+
decimals?: number;
|
|
67
|
+
dateFormat?: string;
|
|
68
|
+
hourFormat?: '12' | '24';
|
|
69
|
+
mask?: string;
|
|
70
|
+
rows?: number;
|
|
71
|
+
switchLabel?: string;
|
|
72
|
+
feedback?: boolean;
|
|
73
|
+
accept?: string;
|
|
74
|
+
/** For type 'cep' — maps ViaCEP response fields to form field names.
|
|
75
|
+
* Keys are ViaCEP response names (logradouro, bairro, localidade, uf, complemento).
|
|
76
|
+
* Values are the form field names to populate. Omit keys to skip fields. */
|
|
77
|
+
cepFields?: {
|
|
78
|
+
logradouro?: string;
|
|
79
|
+
bairro?: string;
|
|
80
|
+
localidade?: string;
|
|
81
|
+
uf?: string;
|
|
82
|
+
complemento?: string;
|
|
83
|
+
};
|
|
84
|
+
/** Optional visual grouping. Fields with the same group.id render together
|
|
85
|
+
* under a titled section. Ungrouped fields render in a default section at the top.
|
|
86
|
+
* `order` controls the display order of groups; defaults to the order of first occurrence. */
|
|
87
|
+
fieldGroup?: {
|
|
88
|
+
id: string;
|
|
89
|
+
title: string;
|
|
90
|
+
description?: string;
|
|
91
|
+
order?: number;
|
|
92
|
+
/** Nº de colunas do grid deste grupo — sobrepõe o `columns` do form. */
|
|
93
|
+
columns?: number;
|
|
94
|
+
};
|
|
95
|
+
}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
6
|
-
export
|
|
7
|
-
export type {
|
|
8
|
-
export type {
|
|
9
|
-
export type {
|
|
10
|
-
export {
|
|
11
|
-
export type {
|
|
12
|
-
export { mapApiFieldToFieldDef, mapApiFieldsToFieldDefs, mapApiFieldToColumnDef, mapApiFieldsToColumnDefs, } from './utils/fieldMapper';
|
|
13
|
-
export type { ToCsvOptions } from './utils/csv';
|
|
14
|
-
export { toCsv, downloadCsv } from './utils/csv';
|
|
1
|
+
export type { PaginatedResponse, PaginationState, SortState, UseApiOptions, UseApiReturn, } from './api';
|
|
2
|
+
export type { ColumnDef, ColumnType } from './column';
|
|
3
|
+
export type { FieldDef, FieldType, SelectOption, FieldDependency } from './field';
|
|
4
|
+
export type { RowAction } from './action';
|
|
5
|
+
export type { CrudLabels } from './labels';
|
|
6
|
+
export { DEFAULT_CRUD_LABELS } from './labels';
|
|
7
|
+
export type { KpiItem } from './kpi';
|
|
8
|
+
export type { CrudManagerConfig, CrudManagerReturn } from './manager';
|
|
9
|
+
export type { WPluginOptions, WPluginConfig } from './plugin';
|
|
10
|
+
export { W_AXIOS_KEY, W_CONFIG_KEY, W_DATA_PROVIDER_KEY } from './plugin';
|
|
11
|
+
export type { DataProvider, DataProviderListParams, DataProviderListResponse, DataProviderRequestConfig, DataProviderResponse, } from './dataProvider';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface KpiItem {
|
|
2
|
+
icon: string;
|
|
3
|
+
label: string;
|
|
4
|
+
value: string | number;
|
|
5
|
+
color?: string;
|
|
6
|
+
severity?: 'primary' | 'success' | 'warning' | 'danger' | 'info';
|
|
7
|
+
hint?: string;
|
|
8
|
+
loading?: boolean;
|
|
9
|
+
trend?: {
|
|
10
|
+
value: string;
|
|
11
|
+
direction?: 'up' | 'down' | 'neutral';
|
|
12
|
+
};
|
|
13
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface CrudLabels {
|
|
2
|
+
createTitle: string;
|
|
3
|
+
editTitle: string;
|
|
4
|
+
viewTitle?: string;
|
|
5
|
+
createButton: string;
|
|
6
|
+
saveButton: string;
|
|
7
|
+
updateButton: string;
|
|
8
|
+
cancelButton: string;
|
|
9
|
+
deleteConfirmTitle: string;
|
|
10
|
+
deleteConfirmMessage: string;
|
|
11
|
+
searchPlaceholder: string;
|
|
12
|
+
emptyMessage: string;
|
|
13
|
+
successCreate: string;
|
|
14
|
+
successUpdate: string;
|
|
15
|
+
successDelete: string;
|
|
16
|
+
}
|
|
17
|
+
export declare const DEFAULT_CRUD_LABELS: CrudLabels;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { ComputedRef, Ref } from 'vue';
|
|
2
|
+
import { PaginationState, SortState } from './api';
|
|
3
|
+
import { ColumnDef } from './column';
|
|
4
|
+
import { FieldDef } from './field';
|
|
5
|
+
import { RowAction, BulkAction } from './action';
|
|
6
|
+
import { CrudLabels } from './labels';
|
|
7
|
+
export interface CrudManagerConfig<T> {
|
|
8
|
+
endpoint: string;
|
|
9
|
+
columns: ColumnDef[];
|
|
10
|
+
form: FieldDef[];
|
|
11
|
+
/** Nº de colunas do grid do form dialog (default 2). Campos usam `colSpan`
|
|
12
|
+
* para ocupar frações do grid; grupos podem sobrepor via `fieldGroup.columns`. */
|
|
13
|
+
formColumns?: number;
|
|
14
|
+
pk?: string;
|
|
15
|
+
pageSize?: number;
|
|
16
|
+
searchDebounce?: number;
|
|
17
|
+
/** When editing, send only the changed fields (diff) instead of the whole
|
|
18
|
+
* record. Defaults to `true`. Set `false` to always send the full payload. */
|
|
19
|
+
partialUpdate?: boolean;
|
|
20
|
+
/** After a successful create/update, re-fetch the current page so the list
|
|
21
|
+
* reflects the backend (derived fields, ordering) without losing pagination,
|
|
22
|
+
* search or filter position. Defaults to `true`. Set `false` to keep the
|
|
23
|
+
* optimistic in-place update instead. */
|
|
24
|
+
refetchOnSave?: boolean;
|
|
25
|
+
canCreate?: boolean;
|
|
26
|
+
canEdit?: boolean;
|
|
27
|
+
canDelete?: boolean;
|
|
28
|
+
rowActions?: RowAction<T>[];
|
|
29
|
+
/** Habilita seleção múltipla na tabela (checkbox + barra de ações em lote). */
|
|
30
|
+
selectionMode?: 'multiple';
|
|
31
|
+
/** Ações aplicadas ao conjunto selecionado, exibidas na barra de lote. */
|
|
32
|
+
bulkActions?: BulkAction<T>[];
|
|
33
|
+
filterParams?: () => Record<string, unknown>;
|
|
34
|
+
transformPayload?: (payload: Record<string, unknown>, isEditing: boolean) => Record<string, unknown>;
|
|
35
|
+
createDefaults?: () => Record<string, unknown>;
|
|
36
|
+
onAfterSave?: (data: T, isEditing: boolean) => void;
|
|
37
|
+
onAfterDelete?: (item: T) => void;
|
|
38
|
+
labels?: Partial<CrudLabels>;
|
|
39
|
+
}
|
|
40
|
+
export interface CrudManagerReturn<T> {
|
|
41
|
+
items: Ref<T[]>;
|
|
42
|
+
/** Itens marcados quando `selectionMode: 'multiple'`. */
|
|
43
|
+
selectedItems: Ref<T[]>;
|
|
44
|
+
/** Filtros de coluna ativos (param → valor), enviados na requisição de `list`. */
|
|
45
|
+
columnFilters: Record<string, unknown>;
|
|
46
|
+
extras: Ref<Record<string, unknown>>;
|
|
47
|
+
loading: Ref<boolean>;
|
|
48
|
+
saving: Ref<boolean>;
|
|
49
|
+
search: Ref<string>;
|
|
50
|
+
dialogVisible: Ref<boolean>;
|
|
51
|
+
editingItem: Ref<T | null>;
|
|
52
|
+
formData: Record<string, unknown>;
|
|
53
|
+
pagination: PaginationState;
|
|
54
|
+
sort: SortState;
|
|
55
|
+
isEditing: ComputedRef<boolean>;
|
|
56
|
+
isViewing: ComputedRef<boolean>;
|
|
57
|
+
viewMode: Ref<boolean>;
|
|
58
|
+
dialogTitle: ComputedRef<string>;
|
|
59
|
+
isFirstPage: ComputedRef<boolean>;
|
|
60
|
+
isLastPage: ComputedRef<boolean>;
|
|
61
|
+
init(): Promise<void>;
|
|
62
|
+
fetchItems(params?: Record<string, unknown>): Promise<void>;
|
|
63
|
+
fetchAll(pageSize?: number): Promise<T[]>;
|
|
64
|
+
refresh(): Promise<void>;
|
|
65
|
+
setSearch(value: string): void;
|
|
66
|
+
onSearch(event: Event): void;
|
|
67
|
+
onPage(event: {
|
|
68
|
+
page: number;
|
|
69
|
+
rows: number;
|
|
70
|
+
}): void;
|
|
71
|
+
onSort(event: {
|
|
72
|
+
sortField?: string | null;
|
|
73
|
+
sortOrder?: 1 | -1 | 0 | null;
|
|
74
|
+
}): void;
|
|
75
|
+
openCreateDialog(): void;
|
|
76
|
+
openEditDialog(item: T): void;
|
|
77
|
+
openViewDialog(item: T): void;
|
|
78
|
+
openDuplicateDialog(item: T): void;
|
|
79
|
+
save(): Promise<T | null>;
|
|
80
|
+
confirmDelete(item: T): void;
|
|
81
|
+
setFormField(field: string, value: unknown): void;
|
|
82
|
+
resetForm(): void;
|
|
83
|
+
goToPage(page: number): void;
|
|
84
|
+
firstPage(): void;
|
|
85
|
+
lastPage(): void;
|
|
86
|
+
/** Limpa a seleção múltipla. */
|
|
87
|
+
clearSelection(): void;
|
|
88
|
+
/** Define (ou remove, se vazio) um filtro de coluna e recarrega a lista. */
|
|
89
|
+
setColumnFilter(param: string, value: unknown): void;
|
|
90
|
+
/** Limpa todos os filtros de coluna e recarrega a lista. */
|
|
91
|
+
clearColumnFilters(): void;
|
|
92
|
+
config: CrudManagerConfig<T>;
|
|
93
|
+
}
|
package/dist/types/plugin.d.ts
CHANGED
|
@@ -1,2 +1,24 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import { AxiosInstance } from 'axios';
|
|
2
|
+
import { DataProvider } from './dataProvider';
|
|
3
|
+
export interface WPluginOptions {
|
|
4
|
+
axios?: AxiosInstance;
|
|
5
|
+
dataProvider?: DataProvider;
|
|
6
|
+
defaultPageSize?: number;
|
|
7
|
+
dateFormat?: string;
|
|
8
|
+
dateTimeFormat?: string;
|
|
9
|
+
locale?: string;
|
|
10
|
+
currency?: string;
|
|
11
|
+
registerComponents?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface WPluginConfig {
|
|
14
|
+
axios?: AxiosInstance;
|
|
15
|
+
dataProvider: DataProvider;
|
|
16
|
+
defaultPageSize: number;
|
|
17
|
+
dateFormat: string;
|
|
18
|
+
dateTimeFormat: string;
|
|
19
|
+
locale: string;
|
|
20
|
+
currency: string;
|
|
21
|
+
}
|
|
22
|
+
export declare const W_AXIOS_KEY: unique symbol;
|
|
23
|
+
export declare const W_DATA_PROVIDER_KEY: unique symbol;
|
|
24
|
+
export declare const W_CONFIG_KEY: unique symbol;
|
package/dist/types.cjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./plugin-D1YvyKXX.cjs"),t={createTitle:"Novo Registro",editTitle:"Editar Registro",createButton:"Novo",saveButton:"Salvar",updateButton:"Atualizar",cancelButton:"Cancelar",deleteConfirmTitle:"Confirmar Exclusão",deleteConfirmMessage:"Deseja realmente excluir este registro?",searchPlaceholder:"Buscar...",emptyMessage:"Nenhum registro encontrado",successCreate:"Registro criado com sucesso",successUpdate:"Registro atualizado com sucesso",successDelete:"Registro excluído com sucesso"};exports.W_AXIOS_KEY=e.W_AXIOS_KEY;exports.W_CONFIG_KEY=e.W_CONFIG_KEY;exports.W_DATA_PROVIDER_KEY=e.W_DATA_PROVIDER_KEY;exports.DEFAULT_CRUD_LABELS=t;
|
|
2
|
+
//# sourceMappingURL=types.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.cjs","sources":["../src/types/labels.ts"],"sourcesContent":["// ---------------------------------------------------------------------------\n// Labels\n// ---------------------------------------------------------------------------\n\nexport interface CrudLabels {\n createTitle: string\n editTitle: string\n viewTitle?: string\n createButton: string\n saveButton: string\n updateButton: string\n cancelButton: string\n deleteConfirmTitle: string\n deleteConfirmMessage: string\n searchPlaceholder: string\n emptyMessage: string\n successCreate: string\n successUpdate: string\n successDelete: string\n}\n\nexport const DEFAULT_CRUD_LABELS: CrudLabels = {\n createTitle: 'Novo Registro',\n editTitle: 'Editar Registro',\n createButton: 'Novo',\n saveButton: 'Salvar',\n updateButton: 'Atualizar',\n cancelButton: 'Cancelar',\n deleteConfirmTitle: 'Confirmar Exclusão',\n deleteConfirmMessage: 'Deseja realmente excluir este registro?',\n searchPlaceholder: 'Buscar...',\n emptyMessage: 'Nenhum registro encontrado',\n successCreate: 'Registro criado com sucesso',\n successUpdate: 'Registro atualizado com sucesso',\n successDelete: 'Registro excluído com sucesso',\n}\n"],"names":["DEFAULT_CRUD_LABELS"],"mappings":"yHAqBaA,EAAkC,CAC7C,YAAa,gBACb,UAAW,kBACX,aAAc,OACd,WAAY,SACZ,aAAc,YACd,aAAc,WACd,mBAAoB,qBACpB,qBAAsB,0CACtB,kBAAmB,YACnB,aAAc,6BACd,cAAe,8BACf,cAAe,kCACf,cAAe,+BACjB"}
|
package/dist/types.d.ts
ADDED
package/dist/types.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { b as o, a, W as r } from "./plugin-BKa0eSEM.js";
|
|
2
|
+
const e = {
|
|
3
|
+
createTitle: "Novo Registro",
|
|
4
|
+
editTitle: "Editar Registro",
|
|
5
|
+
createButton: "Novo",
|
|
6
|
+
saveButton: "Salvar",
|
|
7
|
+
updateButton: "Atualizar",
|
|
8
|
+
cancelButton: "Cancelar",
|
|
9
|
+
deleteConfirmTitle: "Confirmar Exclusão",
|
|
10
|
+
deleteConfirmMessage: "Deseja realmente excluir este registro?",
|
|
11
|
+
searchPlaceholder: "Buscar...",
|
|
12
|
+
emptyMessage: "Nenhum registro encontrado",
|
|
13
|
+
successCreate: "Registro criado com sucesso",
|
|
14
|
+
successUpdate: "Registro atualizado com sucesso",
|
|
15
|
+
successDelete: "Registro excluído com sucesso"
|
|
16
|
+
};
|
|
17
|
+
export {
|
|
18
|
+
e as DEFAULT_CRUD_LABELS,
|
|
19
|
+
o as W_AXIOS_KEY,
|
|
20
|
+
a as W_CONFIG_KEY,
|
|
21
|
+
r as W_DATA_PROVIDER_KEY
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../src/types/labels.ts"],"sourcesContent":["// ---------------------------------------------------------------------------\n// Labels\n// ---------------------------------------------------------------------------\n\nexport interface CrudLabels {\n createTitle: string\n editTitle: string\n viewTitle?: string\n createButton: string\n saveButton: string\n updateButton: string\n cancelButton: string\n deleteConfirmTitle: string\n deleteConfirmMessage: string\n searchPlaceholder: string\n emptyMessage: string\n successCreate: string\n successUpdate: string\n successDelete: string\n}\n\nexport const DEFAULT_CRUD_LABELS: CrudLabels = {\n createTitle: 'Novo Registro',\n editTitle: 'Editar Registro',\n createButton: 'Novo',\n saveButton: 'Salvar',\n updateButton: 'Atualizar',\n cancelButton: 'Cancelar',\n deleteConfirmTitle: 'Confirmar Exclusão',\n deleteConfirmMessage: 'Deseja realmente excluir este registro?',\n searchPlaceholder: 'Buscar...',\n emptyMessage: 'Nenhum registro encontrado',\n successCreate: 'Registro criado com sucesso',\n successUpdate: 'Registro atualizado com sucesso',\n successDelete: 'Registro excluído com sucesso',\n}\n"],"names":["DEFAULT_CRUD_LABELS"],"mappings":";AAqBO,MAAMA,IAAkC;AAAA,EAC7C,aAAa;AAAA,EACb,WAAW;AAAA,EACX,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,cAAc;AAAA,EACd,oBAAoB;AAAA,EACpB,sBAAsB;AAAA,EACtB,mBAAmB;AAAA,EACnB,cAAc;AAAA,EACd,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AACjB;"}
|