@spaceinvoices/react-ui 0.4.10 → 0.4.12
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/README.md +24 -8
- package/cli/dist/index.js +89 -26
- package/package.json +6 -2
- package/registry.json +30 -31
- package/spaceinvoices.schema.json +6 -1
- package/src/common/autocomplete.tsx +41 -25
- package/src/components/activities/locales/bg.ts +21 -0
- package/src/components/activities/locales/cs.ts +21 -0
- package/src/components/activities/locales/en.ts +21 -0
- package/src/components/activities/locales/et.ts +21 -0
- package/src/components/activities/locales/fi.ts +21 -0
- package/src/components/activities/locales/is.ts +21 -0
- package/src/components/activities/locales/nb.ts +21 -0
- package/src/components/activities/locales/sk.ts +21 -0
- package/src/components/activities/locales/sv.ts +21 -0
- package/src/components/advance-invoices/advance-invoices.hooks.ts +2 -3
- package/src/components/advance-invoices/create/create-advance-invoice-form.tsx +290 -69
- package/src/components/advance-invoices/create/locales/bg.ts +48 -0
- package/src/components/advance-invoices/create/locales/cs.ts +48 -0
- package/src/components/advance-invoices/create/locales/en.ts +48 -0
- package/src/components/advance-invoices/create/locales/et.ts +48 -0
- package/src/components/advance-invoices/create/locales/fi.ts +48 -0
- package/src/components/advance-invoices/create/locales/hr.ts +17 -17
- package/src/components/advance-invoices/create/locales/is.ts +48 -0
- package/src/components/advance-invoices/create/locales/nb.ts +48 -0
- package/src/components/advance-invoices/create/locales/sk.ts +48 -0
- package/src/components/advance-invoices/create/locales/sl.ts +9 -7
- package/src/components/advance-invoices/create/locales/sv.ts +48 -0
- package/src/components/advance-invoices/create/prepare-advance-invoice-submission.ts +16 -2
- package/src/components/advance-invoices/list/list-row-actions.tsx +48 -16
- package/src/components/advance-invoices/list/list-table.tsx +33 -8
- package/src/components/advance-invoices/list/locales/bg.ts +51 -0
- package/src/components/advance-invoices/list/locales/cs.ts +51 -0
- package/src/components/advance-invoices/list/locales/en.ts +33 -2
- package/src/components/advance-invoices/list/locales/et.ts +51 -0
- package/src/components/advance-invoices/list/locales/fi.ts +51 -0
- package/src/components/advance-invoices/list/locales/hr.ts +15 -15
- package/src/components/advance-invoices/list/locales/is.ts +51 -0
- package/src/components/advance-invoices/list/locales/nb.ts +51 -0
- package/src/components/advance-invoices/list/locales/sk.ts +51 -0
- package/src/components/advance-invoices/list/locales/sv.ts +51 -0
- package/src/components/advance-invoices/list/use-advance-invoice-download.ts +3 -5
- package/src/components/common/autocomplete-locales.ts +101 -0
- package/src/components/company-registry/company-registry.hooks.ts +3 -7
- package/src/components/credit-notes/create/create-credit-note-form.tsx +211 -22
- package/src/components/credit-notes/create/locales/bg.ts +87 -0
- package/src/components/credit-notes/create/locales/cs.ts +87 -0
- package/src/components/credit-notes/create/locales/en.ts +87 -0
- package/src/components/credit-notes/create/locales/et.ts +87 -0
- package/src/components/credit-notes/create/locales/fi.ts +87 -0
- package/src/components/credit-notes/create/locales/hr.ts +24 -24
- package/src/components/credit-notes/create/locales/is.ts +87 -0
- package/src/components/credit-notes/create/locales/nb.ts +87 -0
- package/src/components/credit-notes/create/locales/sk.ts +87 -0
- package/src/components/credit-notes/create/locales/sl.ts +9 -9
- package/src/components/credit-notes/create/locales/sv.ts +87 -0
- package/src/components/credit-notes/create/prepare-credit-note-submission.ts +32 -0
- package/src/components/credit-notes/credit-notes.hooks.ts +15 -3
- package/src/components/credit-notes/list/list-row-actions.tsx +19 -7
- package/src/components/credit-notes/list/list-table.tsx +58 -7
- package/src/components/credit-notes/list/locales/bg.ts +48 -0
- package/src/components/credit-notes/list/locales/cs.ts +48 -0
- package/src/components/credit-notes/list/locales/en.ts +31 -2
- package/src/components/credit-notes/list/locales/et.ts +48 -0
- package/src/components/credit-notes/list/locales/fi.ts +48 -0
- package/src/components/credit-notes/list/locales/hr.ts +12 -12
- package/src/components/credit-notes/list/locales/is.ts +48 -0
- package/src/components/credit-notes/list/locales/nb.ts +48 -0
- package/src/components/credit-notes/list/locales/sk.ts +48 -0
- package/src/components/credit-notes/list/locales/sv.ts +48 -0
- package/src/components/credit-notes/list/use-credit-note-download.ts +3 -5
- package/src/components/customers/create-customer-form/locales/bg.ts +21 -0
- package/src/components/customers/create-customer-form/locales/cs.ts +21 -0
- package/src/components/customers/create-customer-form/locales/en.ts +21 -0
- package/src/components/customers/create-customer-form/locales/et.ts +21 -0
- package/src/components/customers/create-customer-form/locales/fi.ts +21 -0
- package/src/components/customers/create-customer-form/locales/hr.ts +11 -11
- package/src/components/customers/create-customer-form/locales/is.ts +21 -0
- package/src/components/customers/create-customer-form/locales/nb.ts +21 -0
- package/src/components/customers/create-customer-form/locales/sk.ts +21 -0
- package/src/components/customers/create-customer-form/locales/sv.ts +21 -0
- package/src/components/customers/customer-autocomplete.tsx +32 -4
- package/src/components/customers/customer-list-table/customer-list-table.tsx +8 -6
- package/src/components/customers/customer-list-table/locales/bg.ts +25 -0
- package/src/components/customers/customer-list-table/locales/cs.ts +25 -0
- package/src/components/customers/customer-list-table/locales/en.ts +17 -2
- package/src/components/customers/customer-list-table/locales/et.ts +25 -0
- package/src/components/customers/customer-list-table/locales/fi.ts +25 -0
- package/src/components/customers/customer-list-table/locales/hr.ts +11 -11
- package/src/components/customers/customer-list-table/locales/is.ts +25 -0
- package/src/components/customers/customer-list-table/locales/nb.ts +25 -0
- package/src/components/customers/customer-list-table/locales/sk.ts +25 -0
- package/src/components/customers/customer-list-table/locales/sv.ts +25 -0
- package/src/components/customers/customers.hooks.ts +14 -17
- package/src/components/customers/edit-customer-form/locales/bg.ts +13 -0
- package/src/components/customers/edit-customer-form/locales/cs.ts +13 -0
- package/src/components/customers/edit-customer-form/locales/en.ts +13 -0
- package/src/components/customers/edit-customer-form/locales/et.ts +13 -0
- package/src/components/customers/edit-customer-form/locales/fi.ts +13 -0
- package/src/components/customers/edit-customer-form/locales/hr.ts +5 -5
- package/src/components/customers/edit-customer-form/locales/is.ts +13 -0
- package/src/components/customers/edit-customer-form/locales/nb.ts +13 -0
- package/src/components/customers/edit-customer-form/locales/sk.ts +13 -0
- package/src/components/customers/edit-customer-form/locales/sv.ts +13 -0
- package/src/components/dashboard/collection-rate-card/collection-rate-card.tsx +7 -6
- package/src/components/dashboard/collection-rate-card/locales/en.ts +3 -0
- package/src/components/dashboard/collection-rate-card/use-collection-rate.ts +8 -7
- package/src/components/dashboard/invoice-status-chart/invoice-status-chart.tsx +7 -4
- package/src/components/dashboard/invoice-status-chart/locales/bg.ts +5 -5
- package/src/components/dashboard/invoice-status-chart/locales/cs.ts +5 -5
- package/src/components/dashboard/invoice-status-chart/locales/de.ts +1 -1
- package/src/components/dashboard/invoice-status-chart/locales/en.ts +10 -0
- package/src/components/dashboard/invoice-status-chart/locales/es.ts +1 -1
- package/src/components/dashboard/invoice-status-chart/locales/et.ts +5 -5
- package/src/components/dashboard/invoice-status-chart/locales/fi.ts +5 -5
- package/src/components/dashboard/invoice-status-chart/locales/fr.ts +1 -1
- package/src/components/dashboard/invoice-status-chart/locales/hr.ts +5 -5
- package/src/components/dashboard/invoice-status-chart/locales/is.ts +5 -5
- package/src/components/dashboard/invoice-status-chart/locales/it.ts +1 -1
- package/src/components/dashboard/invoice-status-chart/locales/nb.ts +5 -5
- package/src/components/dashboard/invoice-status-chart/locales/nl.ts +1 -1
- package/src/components/dashboard/invoice-status-chart/locales/pl.ts +1 -1
- package/src/components/dashboard/invoice-status-chart/locales/pt.ts +1 -1
- package/src/components/dashboard/invoice-status-chart/locales/sk.ts +5 -5
- package/src/components/dashboard/invoice-status-chart/locales/sl.ts +1 -1
- package/src/components/dashboard/invoice-status-chart/locales/sv.ts +5 -5
- package/src/components/dashboard/payment-methods-chart/locales/bg.ts +5 -5
- package/src/components/dashboard/payment-methods-chart/locales/cs.ts +5 -5
- package/src/components/dashboard/payment-methods-chart/locales/en.ts +12 -0
- package/src/components/dashboard/payment-methods-chart/locales/et.ts +5 -5
- package/src/components/dashboard/payment-methods-chart/locales/fi.ts +6 -6
- package/src/components/dashboard/payment-methods-chart/locales/hr.ts +3 -3
- package/src/components/dashboard/payment-methods-chart/locales/is.ts +5 -5
- package/src/components/dashboard/payment-methods-chart/locales/nb.ts +5 -5
- package/src/components/dashboard/payment-methods-chart/locales/sk.ts +5 -5
- package/src/components/dashboard/payment-methods-chart/locales/sv.ts +5 -5
- package/src/components/dashboard/payment-methods-chart/payment-methods-chart.tsx +4 -3
- package/src/components/dashboard/payment-trend-chart/locales/bg.ts +1 -1
- package/src/components/dashboard/payment-trend-chart/locales/cs.ts +1 -1
- package/src/components/dashboard/payment-trend-chart/locales/en.ts +6 -0
- package/src/components/dashboard/payment-trend-chart/locales/et.ts +1 -1
- package/src/components/dashboard/payment-trend-chart/locales/fi.ts +1 -1
- package/src/components/dashboard/payment-trend-chart/locales/is.ts +1 -1
- package/src/components/dashboard/payment-trend-chart/locales/nb.ts +1 -1
- package/src/components/dashboard/payment-trend-chart/locales/sk.ts +1 -1
- package/src/components/dashboard/payment-trend-chart/locales/sv.ts +1 -1
- package/src/components/dashboard/payment-trend-chart/payment-trend-chart.tsx +4 -3
- package/src/components/dashboard/payment-trend-chart/use-payment-trend.ts +12 -9
- package/src/components/dashboard/revenue-card.tsx +3 -3
- package/src/components/dashboard/revenue-trend-chart/locales/bg.ts +1 -1
- package/src/components/dashboard/revenue-trend-chart/locales/cs.ts +1 -1
- package/src/components/dashboard/revenue-trend-chart/locales/en.ts +6 -0
- package/src/components/dashboard/revenue-trend-chart/locales/et.ts +1 -1
- package/src/components/dashboard/revenue-trend-chart/locales/fi.ts +1 -1
- package/src/components/dashboard/revenue-trend-chart/locales/is.ts +1 -1
- package/src/components/dashboard/revenue-trend-chart/locales/nb.ts +1 -1
- package/src/components/dashboard/revenue-trend-chart/locales/sk.ts +1 -1
- package/src/components/dashboard/revenue-trend-chart/locales/sv.ts +1 -1
- package/src/components/dashboard/revenue-trend-chart/revenue-trend-chart.tsx +4 -3
- package/src/components/dashboard/revenue-trend-chart/use-revenue-trend.ts +4 -3
- package/src/components/dashboard/shared/local-date.ts +11 -0
- package/src/components/dashboard/shared/use-revenue-data.ts +6 -5
- package/src/components/dashboard/shared/use-stats-query.ts +7 -11
- package/src/components/dashboard/stat-card.tsx +3 -3
- package/src/components/dashboard/tax-collected-card/tax-collected-card.tsx +11 -9
- package/src/components/dashboard/tax-collected-card/use-tax-collected.ts +3 -2
- package/src/components/dashboard/top-customers-chart/locales/bg.ts +2 -2
- package/src/components/dashboard/top-customers-chart/locales/cs.ts +2 -2
- package/src/components/dashboard/top-customers-chart/locales/en.ts +7 -0
- package/src/components/dashboard/top-customers-chart/locales/et.ts +2 -2
- package/src/components/dashboard/top-customers-chart/locales/fi.ts +2 -2
- package/src/components/dashboard/top-customers-chart/locales/is.ts +2 -2
- package/src/components/dashboard/top-customers-chart/locales/nb.ts +2 -2
- package/src/components/dashboard/top-customers-chart/locales/sk.ts +2 -2
- package/src/components/dashboard/top-customers-chart/locales/sv.ts +2 -2
- package/src/components/dashboard/top-customers-chart/top-customers-chart.tsx +4 -3
- package/src/components/dashboard/top-customers-chart/use-top-customers.ts +7 -20
- package/src/components/delivery-notes/create/create-delivery-note-form.tsx +61 -31
- package/src/components/delivery-notes/create/locales/bg.ts +68 -0
- package/src/components/delivery-notes/create/locales/cs.ts +68 -0
- package/src/components/delivery-notes/create/locales/en.ts +68 -0
- package/src/components/delivery-notes/create/locales/et.ts +68 -0
- package/src/components/delivery-notes/create/locales/fi.ts +68 -0
- package/src/components/delivery-notes/create/locales/hr.ts +6 -6
- package/src/components/delivery-notes/create/locales/is.ts +68 -0
- package/src/components/delivery-notes/create/locales/nb.ts +68 -0
- package/src/components/delivery-notes/create/locales/sk.ts +68 -0
- package/src/components/delivery-notes/create/locales/sl.ts +5 -5
- package/src/components/delivery-notes/create/locales/sv.ts +68 -0
- package/src/components/delivery-notes/delivery-notes.hooks.ts +20 -3
- package/src/components/delivery-notes/list/list-row-actions.tsx +62 -16
- package/src/components/delivery-notes/list/list-table.tsx +42 -9
- package/src/components/delivery-notes/list/locales/bg.ts +40 -0
- package/src/components/delivery-notes/list/locales/cs.ts +40 -0
- package/src/components/delivery-notes/list/locales/et.ts +40 -0
- package/src/components/delivery-notes/list/locales/fi.ts +40 -0
- package/src/components/delivery-notes/list/locales/is.ts +40 -0
- package/src/components/delivery-notes/list/locales/nb.ts +40 -0
- package/src/components/delivery-notes/list/locales/sk.ts +40 -0
- package/src/components/delivery-notes/list/locales/sv.ts +40 -0
- package/src/components/delivery-notes/list/use-delivery-note-download.ts +3 -5
- package/src/components/documents/create/document-add-item-form.tsx +256 -147
- package/src/components/documents/create/document-add-item-tax-rate-field.tsx +2 -1
- package/src/components/documents/create/document-details-section.tsx +30 -12
- package/src/components/documents/create/document-item-validation.ts +50 -0
- package/src/components/documents/create/document-items-section.tsx +44 -6
- package/src/components/documents/create/document-recipient-section.tsx +10 -2
- package/src/components/documents/create/linked-documents-info.tsx +4 -3
- package/src/components/documents/create/live-preview.tsx +19 -15
- package/src/components/documents/create/mark-as-paid-section.tsx +77 -20
- package/src/components/documents/create/payment-rows.ts +291 -0
- package/src/components/documents/create/prepare-document-submission.ts +24 -13
- package/src/components/documents/create/scroll-to-first-invalid-field.ts +27 -0
- package/src/components/documents/create/smart-code-insert-button.tsx +5 -53
- package/src/components/documents/create/use-document-customer-form.ts +74 -25
- package/src/components/documents/documents.hooks.ts +3 -5
- package/src/components/documents/index.ts +1 -0
- package/src/components/documents/public/index.ts +1 -0
- package/src/components/documents/public/public-document-summary.tsx +343 -0
- package/src/components/documents/shared/document-preview-display.tsx +65 -39
- package/src/components/documents/shared/index.ts +6 -1
- package/src/components/documents/shared/scaled-document-preview.tsx +33 -19
- package/src/components/documents/types.ts +24 -0
- package/src/components/documents/view/document-actions-bar.tsx +241 -62
- package/src/components/documents/view/document-activities-list.tsx +23 -11
- package/src/components/documents/view/document-details-card.tsx +7 -27
- package/src/components/documents/view/document-payments-list.tsx +114 -57
- package/src/components/documents/view/document-relations-list.tsx +26 -6
- package/src/components/documents/view/document-sidebar.tsx +25 -3
- package/src/components/documents/view/document-version-history.tsx +137 -0
- package/src/components/documents/view/index.ts +1 -0
- package/src/components/documents/view/locales/bg.ts +143 -0
- package/src/components/documents/view/locales/cs.ts +143 -0
- package/src/components/documents/view/locales/de.ts +13 -0
- package/src/components/documents/view/locales/en.ts +143 -0
- package/src/components/documents/view/locales/es.ts +13 -0
- package/src/components/documents/view/locales/et.ts +143 -0
- package/src/components/documents/view/locales/fi.ts +143 -0
- package/src/components/documents/view/locales/fr.ts +13 -0
- package/src/components/documents/view/locales/hr.ts +13 -0
- package/src/components/documents/view/locales/is.ts +143 -0
- package/src/components/documents/view/locales/it.ts +13 -0
- package/src/components/documents/view/locales/nb.ts +143 -0
- package/src/components/documents/view/locales/nl.ts +13 -0
- package/src/components/documents/view/locales/pl.ts +13 -0
- package/src/components/documents/view/locales/pt.ts +13 -0
- package/src/components/documents/view/locales/sk.ts +143 -0
- package/src/components/documents/view/locales/sl.ts +13 -0
- package/src/components/documents/view/locales/sv.ts +143 -0
- package/src/components/documents/view/use-document-download.ts +18 -17
- package/src/components/entities/create-entity-form.tsx +200 -12
- package/src/components/entities/entities.hooks.ts +15 -7
- package/src/components/entities/entity-settings-form/entity-settings-form.tsx +131 -75
- package/src/components/entities/entity-settings-form/input-with-preview.tsx +28 -4
- package/src/components/entities/entity-settings-form/locales/bg.ts +199 -0
- package/src/components/entities/entity-settings-form/locales/cs.ts +199 -0
- package/src/components/entities/entity-settings-form/locales/de.ts +18 -3
- package/src/components/entities/entity-settings-form/locales/en.ts +199 -0
- package/src/components/entities/entity-settings-form/locales/es.ts +18 -3
- package/src/components/entities/entity-settings-form/locales/et.ts +198 -0
- package/src/components/entities/entity-settings-form/locales/fi.ts +199 -0
- package/src/components/entities/entity-settings-form/locales/fr.ts +18 -3
- package/src/components/entities/entity-settings-form/locales/hr.ts +26 -11
- package/src/components/entities/entity-settings-form/locales/is.ts +199 -0
- package/src/components/entities/entity-settings-form/locales/it.ts +18 -3
- package/src/components/entities/entity-settings-form/locales/nb.ts +199 -0
- package/src/components/entities/entity-settings-form/locales/nl.ts +18 -3
- package/src/components/entities/entity-settings-form/locales/pl.ts +18 -3
- package/src/components/entities/entity-settings-form/locales/pt.ts +18 -3
- package/src/components/entities/entity-settings-form/locales/sk.ts +199 -0
- package/src/components/entities/entity-settings-form/locales/sl.ts +30 -15
- package/src/components/entities/entity-settings-form/locales/sv.ts +205 -0
- package/src/components/entities/fina-settings-form/fina-operator-required-dialog.tsx +34 -9
- package/src/components/entities/fina-settings-form/fina-settings-form.tsx +2 -0
- package/src/components/entities/fina-settings-form/fina-settings.hooks.ts +14 -45
- package/src/components/entities/fina-settings-form/locales/bg.ts +163 -0
- package/src/components/entities/fina-settings-form/locales/cs.ts +163 -0
- package/src/components/entities/fina-settings-form/locales/et.ts +163 -0
- package/src/components/entities/fina-settings-form/locales/fi.ts +163 -0
- package/src/components/entities/fina-settings-form/locales/hr.ts +11 -10
- package/src/components/entities/fina-settings-form/locales/is.ts +164 -0
- package/src/components/entities/fina-settings-form/locales/nb.ts +163 -0
- package/src/components/entities/fina-settings-form/locales/sk.ts +163 -0
- package/src/components/entities/fina-settings-form/locales/sl.ts +8 -7
- package/src/components/entities/fina-settings-form/locales/sv.ts +165 -0
- package/src/components/entities/furs-settings-form/furs-operator-required-dialog.tsx +34 -9
- package/src/components/entities/furs-settings-form/furs-settings-form.tsx +13 -1
- package/src/components/entities/furs-settings-form/furs-settings.hooks.ts +141 -42
- package/src/components/entities/furs-settings-form/locales/bg.ts +242 -0
- package/src/components/entities/furs-settings-form/locales/cs.ts +241 -0
- package/src/components/entities/furs-settings-form/locales/de.ts +42 -15
- package/src/components/entities/furs-settings-form/locales/en.ts +24 -0
- package/src/components/entities/furs-settings-form/locales/es.ts +42 -15
- package/src/components/entities/furs-settings-form/locales/et.ts +242 -0
- package/src/components/entities/furs-settings-form/locales/fi.ts +243 -0
- package/src/components/entities/furs-settings-form/locales/fr.ts +43 -15
- package/src/components/entities/furs-settings-form/locales/hr.ts +44 -19
- package/src/components/entities/furs-settings-form/locales/is.ts +242 -0
- package/src/components/entities/furs-settings-form/locales/it.ts +42 -15
- package/src/components/entities/furs-settings-form/locales/nb.ts +242 -0
- package/src/components/entities/furs-settings-form/locales/nl.ts +42 -15
- package/src/components/entities/furs-settings-form/locales/pl.ts +40 -15
- package/src/components/entities/furs-settings-form/locales/pt.ts +42 -15
- package/src/components/entities/furs-settings-form/locales/sk.ts +243 -0
- package/src/components/entities/furs-settings-form/locales/sl.ts +34 -10
- package/src/components/entities/furs-settings-form/locales/sv.ts +242 -0
- package/src/components/entities/furs-settings-form/sections/enable-fiscalization-section.tsx +11 -0
- package/src/components/entities/furs-settings-form/sections/furs-internal-act-download-card.tsx +111 -0
- package/src/components/entities/furs-settings-form/sections/general-settings-section.tsx +27 -0
- package/src/components/entities/furs-settings-form/sections/premises-management-section.tsx +23 -16
- package/src/components/entities/furs-settings-form/sections/register-premise-dialog.tsx +89 -31
- package/src/components/entities/settings/branding-settings-form.tsx +11 -30
- package/src/components/entities/settings/company-settings-form.tsx +2 -1
- package/src/components/entities/settings/defaults-settings-form.tsx +112 -9
- package/src/components/entities/settings/email-settings-form.tsx +245 -3
- package/src/components/entities/settings/eslog-settings-form.tsx +2 -1
- package/src/components/entities/settings/number-format-settings-form.tsx +2 -1
- package/src/components/entities/settings/pdf-template-selector/locales/bg.ts +20 -0
- package/src/components/entities/settings/pdf-template-selector/locales/cs.ts +20 -0
- package/src/components/entities/settings/pdf-template-selector/locales/en.ts +20 -0
- package/src/components/entities/settings/pdf-template-selector/locales/et.ts +19 -0
- package/src/components/entities/settings/pdf-template-selector/locales/fi.ts +20 -0
- package/src/components/entities/settings/pdf-template-selector/locales/is.ts +19 -0
- package/src/components/entities/settings/pdf-template-selector/locales/nb.ts +19 -0
- package/src/components/entities/settings/pdf-template-selector/locales/sk.ts +20 -0
- package/src/components/entities/settings/pdf-template-selector/locales/sv.ts +19 -0
- package/src/components/entities/settings/tax-rules-settings-form.tsx +21 -6
- package/src/components/estimates/create/create-estimate-form.tsx +70 -34
- package/src/components/estimates/create/locales/bg.ts +76 -0
- package/src/components/estimates/create/locales/cs.ts +76 -0
- package/src/components/estimates/create/locales/en.ts +76 -0
- package/src/components/estimates/create/locales/et.ts +76 -0
- package/src/components/estimates/create/locales/fi.ts +76 -0
- package/src/components/estimates/create/locales/hr.ts +8 -8
- package/src/components/estimates/create/locales/is.ts +76 -0
- package/src/components/estimates/create/locales/nb.ts +76 -0
- package/src/components/estimates/create/locales/sk.ts +76 -0
- package/src/components/estimates/create/locales/sl.ts +8 -8
- package/src/components/estimates/create/locales/sv.ts +76 -0
- package/src/components/estimates/create/prepare-estimate-submission.ts +4 -1
- package/src/components/estimates/estimates.hooks.ts +15 -3
- package/src/components/estimates/list/list-row-actions.tsx +34 -7
- package/src/components/estimates/list/list-table.tsx +78 -10
- package/src/components/estimates/list/locales/bg.ts +38 -0
- package/src/components/estimates/list/locales/cs.ts +38 -0
- package/src/components/estimates/list/locales/en.ts +27 -2
- package/src/components/estimates/list/locales/et.ts +38 -0
- package/src/components/estimates/list/locales/fi.ts +38 -0
- package/src/components/estimates/list/locales/hr.ts +2 -2
- package/src/components/estimates/list/locales/is.ts +38 -0
- package/src/components/estimates/list/locales/nb.ts +38 -0
- package/src/components/estimates/list/locales/sk.ts +38 -0
- package/src/components/estimates/list/locales/sv.ts +38 -0
- package/src/components/estimates/list/use-estimate-download.ts +3 -5
- package/src/components/export/document-export-form.tsx +72 -15
- package/src/components/export/sales-per-item-export-form.tsx +3 -2
- package/src/components/invoices/create/create-invoice-form.tsx +294 -76
- package/src/components/invoices/create/eslog-validation.ts +97 -8
- package/src/components/invoices/create/locales/bg.ts +164 -0
- package/src/components/invoices/create/locales/cs.ts +164 -0
- package/src/components/invoices/create/locales/de.ts +24 -0
- package/src/components/invoices/create/locales/en.ts +164 -0
- package/src/components/invoices/create/locales/es.ts +24 -0
- package/src/components/invoices/create/locales/et.ts +164 -0
- package/src/components/invoices/create/locales/fi.ts +164 -0
- package/src/components/invoices/create/locales/fr.ts +23 -0
- package/src/components/invoices/create/locales/hr.ts +32 -9
- package/src/components/invoices/create/locales/is.ts +164 -0
- package/src/components/invoices/create/locales/it.ts +24 -0
- package/src/components/invoices/create/locales/nb.ts +164 -0
- package/src/components/invoices/create/locales/nl.ts +23 -0
- package/src/components/invoices/create/locales/pl.ts +23 -0
- package/src/components/invoices/create/locales/pt.ts +24 -0
- package/src/components/invoices/create/locales/sk.ts +164 -0
- package/src/components/invoices/create/locales/sl.ts +32 -9
- package/src/components/invoices/create/locales/sv.ts +166 -0
- package/src/components/invoices/create/prepare-invoice-submission.ts +19 -2
- package/src/components/invoices/invoices-furs.hooks.ts +11 -8
- package/src/components/invoices/invoices.hooks.ts +27 -10
- package/src/components/invoices/list/list-row-actions.tsx +54 -21
- package/src/components/invoices/list/list-table.tsx +92 -11
- package/src/components/invoices/list/locales/bg.ts +49 -0
- package/src/components/invoices/list/locales/cs.ts +49 -0
- package/src/components/invoices/list/locales/en.ts +34 -2
- package/src/components/invoices/list/locales/et.ts +49 -0
- package/src/components/invoices/list/locales/fi.ts +49 -0
- package/src/components/invoices/list/locales/is.ts +49 -0
- package/src/components/invoices/list/locales/nb.ts +49 -0
- package/src/components/invoices/list/locales/sk.ts +49 -0
- package/src/components/invoices/list/locales/sv.ts +49 -0
- package/src/components/invoices/list/use-invoice-download.ts +3 -5
- package/src/components/invoices/send-email-dialog/locales/bg.ts +58 -0
- package/src/components/invoices/send-email-dialog/locales/cs.ts +58 -0
- package/src/components/invoices/send-email-dialog/locales/de.ts +39 -0
- package/src/components/invoices/send-email-dialog/locales/en.ts +58 -0
- package/src/components/invoices/send-email-dialog/locales/es.ts +39 -0
- package/src/components/invoices/send-email-dialog/locales/et.ts +58 -0
- package/src/components/invoices/send-email-dialog/locales/fi.ts +58 -0
- package/src/components/invoices/send-email-dialog/locales/fr.ts +39 -0
- package/src/components/invoices/send-email-dialog/locales/hr.ts +39 -0
- package/src/components/invoices/send-email-dialog/locales/is.ts +58 -0
- package/src/components/invoices/send-email-dialog/locales/it.ts +39 -0
- package/src/components/invoices/send-email-dialog/locales/nb.ts +58 -0
- package/src/components/invoices/send-email-dialog/locales/nl.ts +39 -0
- package/src/components/invoices/send-email-dialog/locales/pl.ts +39 -0
- package/src/components/invoices/send-email-dialog/locales/pt.ts +39 -0
- package/src/components/invoices/send-email-dialog/locales/sk.ts +58 -0
- package/src/components/invoices/send-email-dialog/locales/sl.ts +39 -0
- package/src/components/invoices/send-email-dialog/locales/sv.ts +58 -0
- package/src/components/invoices/send-email-dialog/send-email-dialog.tsx +188 -93
- package/src/components/invoices/view/eslog-info-display.tsx +2 -0
- package/src/components/invoices/view/fiscalization-status-card.tsx +2 -0
- package/src/components/items/create-item-form/create-item-form.tsx +29 -0
- package/src/components/items/create-item-form/locales/bg.ts +13 -0
- package/src/components/items/create-item-form/locales/cs.ts +13 -0
- package/src/components/items/create-item-form/locales/et.ts +13 -0
- package/src/components/items/create-item-form/locales/fi.ts +13 -0
- package/src/components/items/create-item-form/locales/is.ts +13 -0
- package/src/components/items/create-item-form/locales/nb.ts +13 -0
- package/src/components/items/create-item-form/locales/sk.ts +13 -0
- package/src/components/items/create-item-form/locales/sv.ts +13 -0
- package/src/components/items/edit-item-form/edit-item-form.tsx +39 -1
- package/src/components/items/edit-item-form/locales/bg.ts +12 -0
- package/src/components/items/edit-item-form/locales/cs.ts +12 -0
- package/src/components/items/edit-item-form/locales/en.ts +12 -0
- package/src/components/items/edit-item-form/locales/et.ts +12 -0
- package/src/components/items/edit-item-form/locales/fi.ts +12 -0
- package/src/components/items/edit-item-form/locales/is.ts +12 -0
- package/src/components/items/edit-item-form/locales/nb.ts +12 -0
- package/src/components/items/edit-item-form/locales/sk.ts +12 -0
- package/src/components/items/edit-item-form/locales/sv.ts +12 -0
- package/src/components/items/item-combobox.tsx +51 -18
- package/src/components/items/item-list-table/item-list-table.tsx +47 -23
- package/src/components/items/item-list-table/locales/bg.ts +16 -0
- package/src/components/items/item-list-table/locales/cs.ts +16 -0
- package/src/components/items/item-list-table/locales/en.ts +4 -3
- package/src/components/items/item-list-table/locales/et.ts +16 -0
- package/src/components/items/item-list-table/locales/fi.ts +16 -0
- package/src/components/items/item-list-table/locales/is.ts +16 -0
- package/src/components/items/item-list-table/locales/nb.ts +16 -0
- package/src/components/items/item-list-table/locales/sk.ts +16 -0
- package/src/components/items/item-list-table/locales/sv.ts +16 -0
- package/src/components/items/items.hooks.ts +15 -15
- package/src/components/payments/create-payment-form/create-payment-form.tsx +11 -7
- package/src/components/payments/create-payment-form/index.ts +1 -0
- package/src/components/payments/create-payment-form/locales/bg.ts +20 -0
- package/src/components/payments/create-payment-form/locales/cs.ts +20 -0
- package/src/components/payments/create-payment-form/locales/en.ts +20 -0
- package/src/components/payments/create-payment-form/locales/et.ts +20 -0
- package/src/components/payments/create-payment-form/locales/fi.ts +20 -0
- package/src/components/payments/create-payment-form/locales/hr.ts +2 -2
- package/src/components/payments/create-payment-form/locales/is.ts +20 -0
- package/src/components/payments/create-payment-form/locales/nb.ts +20 -0
- package/src/components/payments/create-payment-form/locales/sk.ts +20 -0
- package/src/components/payments/create-payment-form/locales/sl.ts +4 -4
- package/src/components/payments/create-payment-form/locales/sv.ts +20 -0
- package/src/components/payments/edit-payment-form/edit-payment-form.tsx +5 -1
- package/src/components/payments/edit-payment-form/locales/bg.ts +20 -0
- package/src/components/payments/edit-payment-form/locales/cs.ts +20 -0
- package/src/components/payments/edit-payment-form/locales/en.ts +20 -0
- package/src/components/payments/edit-payment-form/locales/et.ts +20 -0
- package/src/components/payments/edit-payment-form/locales/fi.ts +20 -0
- package/src/components/payments/edit-payment-form/locales/hr.ts +2 -2
- package/src/components/payments/edit-payment-form/locales/is.ts +20 -0
- package/src/components/payments/edit-payment-form/locales/nb.ts +20 -0
- package/src/components/payments/edit-payment-form/locales/sk.ts +20 -0
- package/src/components/payments/edit-payment-form/locales/sl.ts +4 -4
- package/src/components/payments/edit-payment-form/locales/sv.ts +20 -0
- package/src/components/payments/list/list-row-actions.tsx +10 -2
- package/src/components/payments/list/list-table.tsx +51 -45
- package/src/components/payments/list/locales/bg.ts +42 -0
- package/src/components/payments/list/locales/cs.ts +42 -0
- package/src/components/payments/list/locales/de.ts +18 -0
- package/src/components/payments/list/locales/en.ts +37 -2
- package/src/components/payments/list/locales/es.ts +18 -0
- package/src/components/payments/list/locales/et.ts +42 -0
- package/src/components/payments/list/locales/fi.ts +42 -0
- package/src/components/payments/list/locales/fr.ts +18 -0
- package/src/components/payments/list/locales/hr.ts +18 -0
- package/src/components/payments/list/locales/is.ts +42 -0
- package/src/components/payments/list/locales/it.ts +18 -0
- package/src/components/payments/list/locales/nb.ts +42 -0
- package/src/components/payments/list/locales/nl.ts +18 -0
- package/src/components/payments/list/locales/pl.ts +18 -0
- package/src/components/payments/list/locales/pt.ts +18 -0
- package/src/components/payments/list/locales/sk.ts +42 -0
- package/src/components/payments/list/locales/sl.ts +18 -1
- package/src/components/payments/list/locales/sv.ts +42 -0
- package/src/components/payments/payments.hooks.ts +13 -6
- package/src/components/recurring-invoices/create-recurring-invoice-form/create-recurring-invoice-form.tsx +23 -17
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/bg.ts +44 -0
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/cs.ts +44 -0
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/en.ts +44 -0
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/et.ts +44 -0
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/fi.ts +44 -0
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/hr.ts +6 -6
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/is.ts +44 -0
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/nb.ts +44 -0
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/sk.ts +44 -0
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/sl.ts +4 -4
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/sv.ts +44 -0
- package/src/components/recurring-invoices/list/list-row-actions.tsx +3 -5
- package/src/components/recurring-invoices/list/list-table.tsx +10 -7
- package/src/components/recurring-invoices/list/locales/bg.ts +28 -0
- package/src/components/recurring-invoices/list/locales/cs.ts +28 -0
- package/src/components/recurring-invoices/list/locales/en.ts +23 -0
- package/src/components/recurring-invoices/list/locales/et.ts +28 -0
- package/src/components/recurring-invoices/list/locales/fi.ts +28 -0
- package/src/components/recurring-invoices/list/locales/is.ts +28 -0
- package/src/components/recurring-invoices/list/locales/nb.ts +28 -0
- package/src/components/recurring-invoices/list/locales/sk.ts +28 -0
- package/src/components/recurring-invoices/list/locales/sv.ts +28 -0
- package/src/components/recurring-invoices/recurring-invoices.hooks.ts +11 -8
- package/src/components/request-logs/request-log-detail.tsx +30 -23
- package/src/components/request-logs/request-log-list-table.tsx +88 -45
- package/src/components/table/README.md +47 -9
- package/src/components/table/data-table.tsx +232 -92
- package/src/components/table/filter-bar.tsx +1 -1
- package/src/components/table/filter-panel.tsx +51 -22
- package/src/components/table/hooks/use-table-state.ts +64 -11
- package/src/components/table/index.ts +3 -0
- package/src/components/table/locales.ts +119 -4
- package/src/components/table/selection-toolbar.tsx +65 -9
- package/src/components/table/sorting.ts +80 -0
- package/src/components/table/table-skeleton.tsx +15 -9
- package/src/components/table/types.ts +17 -0
- package/src/components/tax-reports/index.ts +8 -0
- package/src/components/tax-reports/kir-export-form.tsx +4 -5
- package/src/components/tax-reports/slovenia-accounting-mappings-fields.tsx +271 -0
- package/src/components/tax-reports/slovenia-tax-profile-step.tsx +21 -10
- package/src/components/tax-reports/slovenia-vod-export-form.tsx +452 -0
- package/src/components/tax-reports/slovenia-yearly-export-form.tsx +17 -16
- package/src/components/tax-reports/slovenia-yearly-review-step.tsx +40 -18
- package/src/components/taxes/create-tax-form/create-tax-form.tsx +48 -2
- package/src/components/taxes/create-tax-form/locales/bg.ts +8 -0
- package/src/components/taxes/create-tax-form/locales/cs.ts +8 -0
- package/src/components/taxes/create-tax-form/locales/et.ts +8 -0
- package/src/components/taxes/create-tax-form/locales/fi.ts +8 -0
- package/src/components/taxes/create-tax-form/locales/is.ts +8 -0
- package/src/components/taxes/create-tax-form/locales/nb.ts +8 -0
- package/src/components/taxes/create-tax-form/locales/sk.ts +8 -0
- package/src/components/taxes/create-tax-form/locales/sv.ts +8 -0
- package/src/components/taxes/edit-tax-form/edit-tax-form.tsx +80 -11
- package/src/components/taxes/edit-tax-form/locales/bg.ts +6 -0
- package/src/components/taxes/edit-tax-form/locales/cs.ts +6 -0
- package/src/components/taxes/edit-tax-form/locales/en.ts +6 -0
- package/src/components/taxes/edit-tax-form/locales/et.ts +6 -0
- package/src/components/taxes/edit-tax-form/locales/fi.ts +6 -0
- package/src/components/taxes/edit-tax-form/locales/is.ts +6 -0
- package/src/components/taxes/edit-tax-form/locales/nb.ts +6 -0
- package/src/components/taxes/edit-tax-form/locales/sk.ts +6 -0
- package/src/components/taxes/edit-tax-form/locales/sv.ts +6 -0
- package/src/components/taxes/tax-list-table/locales/bg.ts +17 -0
- package/src/components/taxes/tax-list-table/locales/cs.ts +17 -0
- package/src/components/taxes/tax-list-table/locales/en.ts +4 -3
- package/src/components/taxes/tax-list-table/locales/et.ts +17 -0
- package/src/components/taxes/tax-list-table/locales/fi.ts +17 -0
- package/src/components/taxes/tax-list-table/locales/is.ts +17 -0
- package/src/components/taxes/tax-list-table/locales/nb.ts +17 -0
- package/src/components/taxes/tax-list-table/locales/sk.ts +17 -0
- package/src/components/taxes/tax-list-table/locales/sv.ts +17 -0
- package/src/components/taxes/tax-list-table/tax-list-table.tsx +53 -19
- package/src/components/taxes/taxes.hooks.ts +53 -12
- package/src/components/ui/badge.tsx +1 -1
- package/src/components/ui/button.tsx +1 -1
- package/src/components/ui/drawer.tsx +2 -2
- package/src/components/ui/form.tsx +118 -2
- package/src/components/ui/progress.tsx +6 -4
- package/src/components/ui/select.tsx +118 -1
- package/src/components/ui/sidebar.tsx +3 -2
- package/src/components/ui/sonner.tsx +17 -36
- package/src/components/ui/sticky-form-footer.tsx +6 -1
- package/src/components/ui/tooltip.tsx +15 -2
- package/src/components/webhook-logs/webhook-delivery-detail.tsx +22 -22
- package/src/components/webhook-logs/webhook-delivery-list-table.tsx +92 -17
- package/src/components/wl-subscription/locked-feature.tsx +11 -10
- package/src/components/wl-subscription/paywall.tsx +184 -72
- package/src/components/wl-subscription/upgrade-modal.tsx +28 -31
- package/src/generate-schemas.ts +17 -7
- package/src/generated/schemas/account_webhook.ts +43 -0
- package/src/generated/schemas/accountwebhook.ts +67 -0
- package/src/generated/schemas/entity.ts +343 -4
- package/src/generated/schemas/exportsloveniavodxml_body.ts +16 -0
- package/src/generated/schemas/exportsloveniayearlynormiranireport_body.ts +27 -0
- package/src/generated/schemas/furssettings.ts +1 -0
- package/src/generated/schemas/incomingpurchasedocument.ts +198 -0
- package/src/generated/schemas/incomingpurchasedocumentpayment.ts +38 -0
- package/src/generated/schemas/index.ts +12 -0
- package/src/generated/schemas/item.ts +36 -0
- package/src/generated/schemas/me.ts +23 -19
- package/src/generated/schemas/order.ts +2 -0
- package/src/generated/schemas/orderintegration.ts +8 -4
- package/src/generated/schemas/payment.ts +5 -0
- package/src/generated/schemas/ptatcudseries.ts +30 -0
- package/src/generated/schemas/renderadvanceinvoicepreview_body.ts +35 -3
- package/src/generated/schemas/rendercreditnotepreview_body.ts +35 -3
- package/src/generated/schemas/renderdeliverynotepreview_body.ts +12 -5
- package/src/generated/schemas/renderestimatepreview_body.ts +38 -5
- package/src/generated/schemas/renderinvoicepreview_body.ts +39 -5
- package/src/generated/schemas/senddocument_body.ts +1 -0
- package/src/generated/schemas/sendemail_body.ts +67 -39
- package/src/generated/schemas/sloveniataxprofile.ts +118 -0
- package/src/generated/schemas/starteslogexport_body.ts +33 -0
- package/src/generated/schemas/startpdfexport_body.ts +94 -78
- package/src/generated/schemas/supplier.ts +59 -0
- package/src/generated/schemas/syncshopifyorders_body.ts +20 -0
- package/src/generated/schemas/tax.ts +2 -0
- package/src/generated/schemas/uploadfile_body.ts +1 -0
- package/src/generated/schemas/userptsettings.ts +26 -0
- package/src/generated/schemas/voidinvoice_body.ts +20 -0
- package/src/generated/schemas/webhook.ts +2 -0
- package/src/hooks/create-resource-hooks.ts +22 -19
- package/src/hooks/use-duplicate-document.ts +10 -8
- package/src/hooks/use-eslog-validation.ts +5 -1
- package/src/hooks/use-next-document-number.ts +13 -6
- package/src/hooks/use-resolved-entity-id.ts +14 -0
- package/src/hooks/use-resource-mutation.ts +11 -30
- package/src/hooks/use-transaction-type-check.ts +3 -8
- package/src/lib/browser-cookies.ts +1 -1
- package/src/lib/country-capabilities.ts +114 -0
- package/src/lib/date-fns-locale.ts +1 -20
- package/src/lib/eslog-export.ts +32 -0
- package/src/lib/fiscalization-options.ts +21 -1
- package/src/lib/formatting.ts +27 -0
- package/src/lib/furs-error-utils.ts +29 -0
- package/src/lib/locale.ts +4 -0
- package/src/lib/payment-display.ts +95 -0
- package/src/lib/pt-document-input.ts +67 -0
- package/src/lib/schemas/shared.ts +1 -0
- package/src/lib/template-variables.tsx +102 -4
- package/src/lib/translation.ts +51 -33
- package/src/lib/white-label-capabilities.ts +626 -0
- package/src/lib/zod-validation-message.ts +291 -0
- package/src/providers/entities-provider.tsx +32 -14
- package/src/providers/sdk-provider.tsx +112 -12
- package/src/providers/space-invoices-provider.tsx +129 -0
- package/src/providers/white-label-provider.tsx +96 -4
- package/src/providers/wl-subscription-provider.tsx +144 -10
|
@@ -11,10 +11,17 @@ import {
|
|
|
11
11
|
DropdownMenuSeparator,
|
|
12
12
|
DropdownMenuTrigger,
|
|
13
13
|
} from "@/ui/components/ui/dropdown-menu";
|
|
14
|
+
import { actionMenuTooltipProps, Tooltip, TooltipContent, TooltipTrigger } from "@/ui/components/ui/tooltip";
|
|
14
15
|
import type { ComponentTranslationProps } from "@/ui/lib/translation";
|
|
15
16
|
import { createTranslation } from "@/ui/lib/translation";
|
|
16
17
|
import { useEstimateDownload } from "./use-estimate-download";
|
|
17
18
|
|
|
19
|
+
const translations = {
|
|
20
|
+
sl: {
|
|
21
|
+
"Create invoice": "Ustvari račun",
|
|
22
|
+
},
|
|
23
|
+
} as const;
|
|
24
|
+
|
|
18
25
|
type EstimateListRowActionsProps = {
|
|
19
26
|
estimate: Estimate;
|
|
20
27
|
onView?: (estimate: Estimate) => void;
|
|
@@ -37,13 +44,26 @@ export default function EstimateListRowActions({
|
|
|
37
44
|
isUnsharing,
|
|
38
45
|
...i18nProps
|
|
39
46
|
}: EstimateListRowActionsProps) {
|
|
40
|
-
const t = createTranslation(i18nProps);
|
|
47
|
+
const t = createTranslation({ ...i18nProps, translations });
|
|
41
48
|
const { isDownloading, downloadPDF } = useEstimateDownload({
|
|
42
49
|
onDownloadStart,
|
|
43
50
|
onDownloadSuccess,
|
|
44
51
|
onDownloadError,
|
|
45
52
|
...i18nProps,
|
|
46
53
|
});
|
|
54
|
+
const createInvoiceDisabledReason = estimate.voided_at
|
|
55
|
+
? t("documents-list-page.copy-to-invoice-voided-not-allowed")
|
|
56
|
+
: undefined;
|
|
57
|
+
const createInvoiceItem = onDuplicate ? (
|
|
58
|
+
<DropdownMenuItem
|
|
59
|
+
className="cursor-pointer"
|
|
60
|
+
onClick={createInvoiceDisabledReason ? undefined : () => onDuplicate(estimate)}
|
|
61
|
+
disabled={!!createInvoiceDisabledReason}
|
|
62
|
+
>
|
|
63
|
+
<Copy className="h-4 w-4" />
|
|
64
|
+
{t("Create invoice")}
|
|
65
|
+
</DropdownMenuItem>
|
|
66
|
+
) : null;
|
|
47
67
|
|
|
48
68
|
return (
|
|
49
69
|
<DropdownMenu>
|
|
@@ -71,12 +91,19 @@ export default function EstimateListRowActions({
|
|
|
71
91
|
<Download className="h-4 w-4" />
|
|
72
92
|
{isDownloading ? t("Downloading...") : t("Download PDF")}
|
|
73
93
|
</DropdownMenuItem>
|
|
74
|
-
{
|
|
75
|
-
|
|
76
|
-
<
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
94
|
+
{createInvoiceItem &&
|
|
95
|
+
(createInvoiceDisabledReason ? (
|
|
96
|
+
<Tooltip>
|
|
97
|
+
<TooltipTrigger asChild>
|
|
98
|
+
<div>{createInvoiceItem}</div>
|
|
99
|
+
</TooltipTrigger>
|
|
100
|
+
<TooltipContent side="left" {...actionMenuTooltipProps}>
|
|
101
|
+
{createInvoiceDisabledReason}
|
|
102
|
+
</TooltipContent>
|
|
103
|
+
</Tooltip>
|
|
104
|
+
) : (
|
|
105
|
+
createInvoiceItem
|
|
106
|
+
))}
|
|
80
107
|
</DropdownMenuGroup>
|
|
81
108
|
{estimate.shareable_id && onUnshare && (
|
|
82
109
|
<>
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Estimate } from "@spaceinvoices/js-sdk";
|
|
2
|
+
import { estimates } from "@spaceinvoices/js-sdk";
|
|
2
3
|
import { useCallback, useMemo, useState } from "react";
|
|
3
4
|
import { DataTable } from "@/ui/components/table/data-table";
|
|
4
5
|
import { FormattedDate } from "@/ui/components/table/date-cell";
|
|
@@ -14,8 +15,8 @@ import type {
|
|
|
14
15
|
} from "@/ui/components/table/types";
|
|
15
16
|
import { Badge } from "@/ui/components/ui/badge";
|
|
16
17
|
import { Button } from "@/ui/components/ui/button";
|
|
18
|
+
import { getEslogSelectionState } from "@/ui/lib/eslog-export";
|
|
17
19
|
import { createTranslation } from "@/ui/lib/translation";
|
|
18
|
-
import { useSDK } from "@/ui/providers/sdk-provider";
|
|
19
20
|
|
|
20
21
|
import EstimateListRowActions from "./list-row-actions";
|
|
21
22
|
import de from "./locales/de";
|
|
@@ -54,6 +55,11 @@ type EstimateListTableProps = {
|
|
|
54
55
|
onDownloadSuccess?: (fileName: string) => void;
|
|
55
56
|
onDownloadError?: (error: string) => void;
|
|
56
57
|
onExportSelected?: (documentIds: string[]) => void;
|
|
58
|
+
onExportEslogSelected?: (documentIds: string[]) => void;
|
|
59
|
+
pdfExportDisabled?: boolean;
|
|
60
|
+
pdfExportDisabledTooltip?: string;
|
|
61
|
+
eslogExportDisabled?: boolean;
|
|
62
|
+
eslogExportDisabledTooltip?: string;
|
|
57
63
|
onCopyToInvoice?: (documentIds: string[]) => void;
|
|
58
64
|
onCreateNew?: () => void;
|
|
59
65
|
} & ListTableProps<Estimate>;
|
|
@@ -69,28 +75,31 @@ export default function EstimateListTable({
|
|
|
69
75
|
onDownloadSuccess,
|
|
70
76
|
onDownloadError,
|
|
71
77
|
onExportSelected,
|
|
78
|
+
onExportEslogSelected,
|
|
79
|
+
pdfExportDisabled,
|
|
80
|
+
pdfExportDisabledTooltip,
|
|
81
|
+
eslogExportDisabled,
|
|
82
|
+
eslogExportDisabledTooltip,
|
|
72
83
|
onCopyToInvoice,
|
|
73
84
|
onCreateNew,
|
|
74
85
|
...i18nProps
|
|
75
86
|
}: EstimateListTableProps) {
|
|
76
87
|
const t = createTranslation({
|
|
77
|
-
translations,
|
|
78
|
-
locale: i18nProps.translationLocale ?? i18nProps.locale,
|
|
79
88
|
...i18nProps,
|
|
89
|
+
translations,
|
|
80
90
|
});
|
|
81
91
|
|
|
82
|
-
const { sdk } = useSDK();
|
|
83
92
|
const [selectedIds, setSelectedIds] = useState<Set<string>>(new Set());
|
|
84
93
|
|
|
85
94
|
const handleFetch = useTableFetch(async (params: TableQueryParams) => {
|
|
86
|
-
if (!sdk) throw new Error("SDK not initialized");
|
|
87
95
|
if (!params.entity_id) throw new Error("Entity ID required");
|
|
88
96
|
|
|
89
|
-
const response = await
|
|
97
|
+
const response = await estimates.list({
|
|
90
98
|
entity_id: params.entity_id,
|
|
91
99
|
limit: params.limit,
|
|
92
100
|
next_cursor: params.next_cursor,
|
|
93
101
|
prev_cursor: params.prev_cursor,
|
|
102
|
+
order_by: params.order_by,
|
|
94
103
|
search: params.search,
|
|
95
104
|
query: params.query,
|
|
96
105
|
});
|
|
@@ -115,6 +124,12 @@ export default function EstimateListTable({
|
|
|
115
124
|
}
|
|
116
125
|
}, [selectedIds, onExportSelected]);
|
|
117
126
|
|
|
127
|
+
const handleExportEslog = useCallback(() => {
|
|
128
|
+
if (selectedIds.size > 0 && onExportEslogSelected) {
|
|
129
|
+
onExportEslogSelected(Array.from(selectedIds));
|
|
130
|
+
}
|
|
131
|
+
}, [selectedIds, onExportEslogSelected]);
|
|
132
|
+
|
|
118
133
|
const handleCopyToInvoice = useCallback(() => {
|
|
119
134
|
if (selectedIds.size > 0 && onCopyToInvoice) {
|
|
120
135
|
onCopyToInvoice(Array.from(selectedIds));
|
|
@@ -127,21 +142,61 @@ export default function EstimateListTable({
|
|
|
127
142
|
|
|
128
143
|
const selectionToolbar = useCallback(
|
|
129
144
|
(count: number, data: Estimate[]) => {
|
|
145
|
+
const selectedDocs = data.filter((d) => selectedIds.has(d.id));
|
|
146
|
+
const eslogSelection = getEslogSelectionState(selectedDocs);
|
|
130
147
|
const hasDrafts = data.some((d) => selectedIds.has(d.id) && (d as any).is_draft);
|
|
148
|
+
const hasVoided = data.some((d) => selectedIds.has(d.id) && !!(d as any).voided_at);
|
|
149
|
+
const copyDisabled = hasDrafts || hasVoided;
|
|
150
|
+
const copyTooltip = hasDrafts
|
|
151
|
+
? t("Finalize draft documents before copying to invoice")
|
|
152
|
+
: hasVoided
|
|
153
|
+
? t("Voided documents cannot be copied to invoices")
|
|
154
|
+
: undefined;
|
|
131
155
|
|
|
132
156
|
return (
|
|
133
157
|
<SelectionToolbar
|
|
134
158
|
selectedCount={count}
|
|
135
159
|
onExportPdfs={onExportSelected ? handleExportPdfs : undefined}
|
|
160
|
+
exportPdfsDisabled={pdfExportDisabled}
|
|
161
|
+
exportPdfsTooltip={pdfExportDisabledTooltip}
|
|
162
|
+
onExportEslog={onExportEslogSelected ? handleExportEslog : undefined}
|
|
163
|
+
exportEslogDisabled={eslogExportDisabled || eslogSelection.noneEligible}
|
|
164
|
+
exportEslogTooltip={
|
|
165
|
+
eslogExportDisabled
|
|
166
|
+
? eslogExportDisabledTooltip
|
|
167
|
+
: eslogSelection.noneEligible
|
|
168
|
+
? t("None of the selected documents are valid for e-SLOG export")
|
|
169
|
+
: undefined
|
|
170
|
+
}
|
|
171
|
+
exportEslogWarning={!eslogExportDisabled && eslogSelection.partiallyEligible}
|
|
172
|
+
exportEslogWarningTooltip={
|
|
173
|
+
!eslogExportDisabled && eslogSelection.partiallyEligible
|
|
174
|
+
? t("Some selected documents are not valid for e-SLOG export and will be skipped")
|
|
175
|
+
: undefined
|
|
176
|
+
}
|
|
136
177
|
onCopyToInvoice={onCopyToInvoice ? handleCopyToInvoice : undefined}
|
|
137
|
-
copyToInvoiceDisabled={
|
|
138
|
-
copyToInvoiceTooltip={
|
|
178
|
+
copyToInvoiceDisabled={copyDisabled}
|
|
179
|
+
copyToInvoiceTooltip={copyTooltip}
|
|
139
180
|
onDeselectAll={handleDeselectAll}
|
|
140
181
|
t={t}
|
|
141
182
|
/>
|
|
142
183
|
);
|
|
143
184
|
},
|
|
144
|
-
[
|
|
185
|
+
[
|
|
186
|
+
handleExportPdfs,
|
|
187
|
+
handleExportEslog,
|
|
188
|
+
handleCopyToInvoice,
|
|
189
|
+
handleDeselectAll,
|
|
190
|
+
onExportSelected,
|
|
191
|
+
onExportEslogSelected,
|
|
192
|
+
pdfExportDisabled,
|
|
193
|
+
pdfExportDisabledTooltip,
|
|
194
|
+
eslogExportDisabled,
|
|
195
|
+
eslogExportDisabledTooltip,
|
|
196
|
+
onCopyToInvoice,
|
|
197
|
+
selectedIds,
|
|
198
|
+
t,
|
|
199
|
+
],
|
|
145
200
|
);
|
|
146
201
|
|
|
147
202
|
const columns: Column<Estimate>[] = useMemo(
|
|
@@ -149,6 +204,9 @@ export default function EstimateListTable({
|
|
|
149
204
|
{
|
|
150
205
|
id: "number",
|
|
151
206
|
header: t("Number"),
|
|
207
|
+
sort: {
|
|
208
|
+
defaultDirection: "desc",
|
|
209
|
+
},
|
|
152
210
|
cell: (estimate) => (
|
|
153
211
|
<div className="flex items-center gap-2">
|
|
154
212
|
<Button variant="link" className="cursor-pointer py-0 underline" onClick={() => onRowClick?.(estimate)}>
|
|
@@ -173,23 +231,33 @@ export default function EstimateListTable({
|
|
|
173
231
|
{
|
|
174
232
|
id: "date",
|
|
175
233
|
header: t("Date"),
|
|
234
|
+
sort: {
|
|
235
|
+
defaultDirection: "desc",
|
|
236
|
+
},
|
|
176
237
|
cell: (estimate) => <FormattedDate date={estimate.date} locale={i18nProps.locale} />,
|
|
177
238
|
},
|
|
178
239
|
{
|
|
179
240
|
id: "date_valid_till",
|
|
180
241
|
header: t("Valid Until"),
|
|
242
|
+
sort: true,
|
|
181
243
|
cell: (estimate) => <FormattedDate date={estimate.date_valid_till} locale={i18nProps.locale} />,
|
|
182
244
|
},
|
|
183
245
|
{
|
|
184
246
|
id: "total",
|
|
185
247
|
header: t("Total"),
|
|
186
248
|
align: "right",
|
|
249
|
+
sort: {
|
|
250
|
+
defaultDirection: "desc",
|
|
251
|
+
},
|
|
187
252
|
cell: (estimate) => estimate.total,
|
|
188
253
|
},
|
|
189
254
|
{
|
|
190
255
|
id: "total_with_tax",
|
|
191
256
|
header: t("Total with Tax"),
|
|
192
257
|
align: "right",
|
|
258
|
+
sort: {
|
|
259
|
+
defaultDirection: "desc",
|
|
260
|
+
},
|
|
193
261
|
cell: (estimate) => estimate.total_with_tax,
|
|
194
262
|
},
|
|
195
263
|
{
|
|
@@ -227,7 +295,7 @@ export default function EstimateListTable({
|
|
|
227
295
|
filterConfig={filterConfig}
|
|
228
296
|
t={t}
|
|
229
297
|
locale={i18nProps.locale}
|
|
230
|
-
selectable={!!(onExportSelected || onCopyToInvoice)}
|
|
298
|
+
selectable={!!(onExportSelected || onExportEslogSelected || onCopyToInvoice)}
|
|
231
299
|
selectedIds={selectedIds}
|
|
232
300
|
onSelectionChange={setSelectedIds}
|
|
233
301
|
selectionToolbar={selectionToolbar}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
"Your list is empty": "Your estimate list is empty",
|
|
3
|
+
"Get started by creating your first entry": "Get started by creating your first estimate",
|
|
4
|
+
"Create new": "Създайте оценка",
|
|
5
|
+
"No results found": "No estimates found",
|
|
6
|
+
selected: "selected",
|
|
7
|
+
"Export PDFs": "Export PDFs",
|
|
8
|
+
"Deselect all": "Deselect all",
|
|
9
|
+
"Copy to Invoice": "Copy to Invoice",
|
|
10
|
+
"Finalize draft documents before copying to invoice": "Finalize draft documents before copying to invoice",
|
|
11
|
+
Draft: "Draft",
|
|
12
|
+
Number: "Номер",
|
|
13
|
+
Customer: "Клиент",
|
|
14
|
+
Date: "Дата",
|
|
15
|
+
"Valid Until": "Valid Until",
|
|
16
|
+
Total: "Общо",
|
|
17
|
+
"Total with Tax": "Total with Tax",
|
|
18
|
+
Actions: "Действия",
|
|
19
|
+
"Open menu": "Отворете менюто",
|
|
20
|
+
"Copy estimate ID": "Copy estimate ID",
|
|
21
|
+
"View estimate": "View estimate",
|
|
22
|
+
"Download PDF": "Изтегли PDF",
|
|
23
|
+
"Downloading...": "Изтегляне...",
|
|
24
|
+
Duplicate: "Duplicate",
|
|
25
|
+
Estimate: "Оферта",
|
|
26
|
+
"Failed to download PDF": "Неуспешно изтегляне на PDF",
|
|
27
|
+
"Search...": "Search...",
|
|
28
|
+
Filters: "Filters",
|
|
29
|
+
"Date Range": "Период",
|
|
30
|
+
From: "From",
|
|
31
|
+
To: "To",
|
|
32
|
+
"Clear filters": "Clear filters",
|
|
33
|
+
"Created At": "Created At",
|
|
34
|
+
Unshare: "Прекрати споделяне",
|
|
35
|
+
"Try adjusting your search criteria": "Try adjusting your search criteria",
|
|
36
|
+
"Clear search": "Clear search",
|
|
37
|
+
"Clear all": "Clear all",
|
|
38
|
+
} as const;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
"Your list is empty": "Your estimate list is empty",
|
|
3
|
+
"Get started by creating your first entry": "Get started by creating your first estimate",
|
|
4
|
+
"Create new": "Vytvořte odhad",
|
|
5
|
+
"No results found": "No estimates found",
|
|
6
|
+
selected: "selected",
|
|
7
|
+
"Export PDFs": "Export PDFs",
|
|
8
|
+
"Deselect all": "Deselect all",
|
|
9
|
+
"Copy to Invoice": "Copy to Invoice",
|
|
10
|
+
"Finalize draft documents before copying to invoice": "Finalize draft documents before copying to invoice",
|
|
11
|
+
Draft: "Draft",
|
|
12
|
+
Number: "Číslo",
|
|
13
|
+
Customer: "Zákazník",
|
|
14
|
+
Date: "Datum",
|
|
15
|
+
"Valid Until": "Valid Until",
|
|
16
|
+
Total: "Celkem",
|
|
17
|
+
"Total with Tax": "Total with Tax",
|
|
18
|
+
Actions: "Akce",
|
|
19
|
+
"Open menu": "Otevřít nabídku",
|
|
20
|
+
"Copy estimate ID": "Copy estimate ID",
|
|
21
|
+
"View estimate": "View estimate",
|
|
22
|
+
"Download PDF": "Stáhnout PDF",
|
|
23
|
+
"Downloading...": "Stahování...",
|
|
24
|
+
Duplicate: "Duplicate",
|
|
25
|
+
Estimate: "Nabídka",
|
|
26
|
+
"Failed to download PDF": "Stažení PDF se nezdařilo",
|
|
27
|
+
"Search...": "Search...",
|
|
28
|
+
Filters: "Filters",
|
|
29
|
+
"Date Range": "Časový rozsah",
|
|
30
|
+
From: "From",
|
|
31
|
+
To: "To",
|
|
32
|
+
"Clear filters": "Clear filters",
|
|
33
|
+
"Created At": "Created At",
|
|
34
|
+
Unshare: "Zrušit sdílení",
|
|
35
|
+
"Try adjusting your search criteria": "Try adjusting your search criteria",
|
|
36
|
+
"Clear search": "Clear search",
|
|
37
|
+
"Clear all": "Clear all",
|
|
38
|
+
} as const;
|
|
@@ -1,13 +1,38 @@
|
|
|
1
1
|
export default {
|
|
2
|
-
// Empty state translations
|
|
3
2
|
"Your list is empty": "Your estimate list is empty",
|
|
4
3
|
"Get started by creating your first entry": "Get started by creating your first estimate",
|
|
5
4
|
"Create new": "Create estimate",
|
|
6
|
-
// No results translations
|
|
7
5
|
"No results found": "No estimates found",
|
|
8
6
|
selected: "selected",
|
|
9
7
|
"Export PDFs": "Export PDFs",
|
|
10
8
|
"Deselect all": "Deselect all",
|
|
11
9
|
"Copy to Invoice": "Copy to Invoice",
|
|
12
10
|
"Finalize draft documents before copying to invoice": "Finalize draft documents before copying to invoice",
|
|
11
|
+
Draft: "Draft",
|
|
12
|
+
Number: "Number",
|
|
13
|
+
Customer: "Customer",
|
|
14
|
+
Date: "Date",
|
|
15
|
+
"Valid Until": "Valid Until",
|
|
16
|
+
Total: "Total",
|
|
17
|
+
"Total with Tax": "Total with Tax",
|
|
18
|
+
Actions: "Actions",
|
|
19
|
+
"Open menu": "Open menu",
|
|
20
|
+
"Copy estimate ID": "Copy estimate ID",
|
|
21
|
+
"View estimate": "View estimate",
|
|
22
|
+
"Download PDF": "Download PDF",
|
|
23
|
+
"Downloading...": "Downloading...",
|
|
24
|
+
Duplicate: "Duplicate",
|
|
25
|
+
Estimate: "Estimate",
|
|
26
|
+
"Failed to download PDF": "Failed to download PDF",
|
|
27
|
+
"Search...": "Search...",
|
|
28
|
+
Filters: "Filters",
|
|
29
|
+
"Date Range": "Date Range",
|
|
30
|
+
From: "From",
|
|
31
|
+
To: "To",
|
|
32
|
+
"Clear filters": "Clear filters",
|
|
33
|
+
"Created At": "Created At",
|
|
34
|
+
Unshare: "Unshare",
|
|
35
|
+
"Try adjusting your search criteria": "Try adjusting your search criteria",
|
|
36
|
+
"Clear search": "Clear search",
|
|
37
|
+
"Clear all": "Clear all",
|
|
13
38
|
} as const;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
"Your list is empty": "Your estimate list is empty",
|
|
3
|
+
"Get started by creating your first entry": "Get started by creating your first estimate",
|
|
4
|
+
"Create new": "Loo prognoos",
|
|
5
|
+
"No results found": "No estimates found",
|
|
6
|
+
selected: "selected",
|
|
7
|
+
"Export PDFs": "Export PDFs",
|
|
8
|
+
"Deselect all": "Deselect all",
|
|
9
|
+
"Copy to Invoice": "Copy to Invoice",
|
|
10
|
+
"Finalize draft documents before copying to invoice": "Finalize draft documents before copying to invoice",
|
|
11
|
+
Draft: "Draft",
|
|
12
|
+
Number: "Number",
|
|
13
|
+
Customer: "Klient",
|
|
14
|
+
Date: "Kuupäev",
|
|
15
|
+
"Valid Until": "Valid Until",
|
|
16
|
+
Total: "Kokku",
|
|
17
|
+
"Total with Tax": "Total with Tax",
|
|
18
|
+
Actions: "Tegevused",
|
|
19
|
+
"Open menu": "Ava menüü",
|
|
20
|
+
"Copy estimate ID": "Copy estimate ID",
|
|
21
|
+
"View estimate": "View estimate",
|
|
22
|
+
"Download PDF": "Laadi PDF alla",
|
|
23
|
+
"Downloading...": "Allalaadimine...",
|
|
24
|
+
Duplicate: "Duplicate",
|
|
25
|
+
Estimate: "Hinnapakkumine",
|
|
26
|
+
"Failed to download PDF": "PDF-i allalaadimine ebaõnnestus",
|
|
27
|
+
"Search...": "Search...",
|
|
28
|
+
Filters: "Filters",
|
|
29
|
+
"Date Range": "Kuupäevavahemik",
|
|
30
|
+
From: "From",
|
|
31
|
+
To: "To",
|
|
32
|
+
"Clear filters": "Clear filters",
|
|
33
|
+
"Created At": "Created At",
|
|
34
|
+
Unshare: "Lõpeta jagamine",
|
|
35
|
+
"Try adjusting your search criteria": "Try adjusting your search criteria",
|
|
36
|
+
"Clear search": "Clear search",
|
|
37
|
+
"Clear all": "Clear all",
|
|
38
|
+
} as const;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
"Your list is empty": "Your estimate list is empty",
|
|
3
|
+
"Get started by creating your first entry": "Get started by creating your first estimate",
|
|
4
|
+
"Create new": "Luo arvio",
|
|
5
|
+
"No results found": "No estimates found",
|
|
6
|
+
selected: "selected",
|
|
7
|
+
"Export PDFs": "Export PDFs",
|
|
8
|
+
"Deselect all": "Deselect all",
|
|
9
|
+
"Copy to Invoice": "Copy to Invoice",
|
|
10
|
+
"Finalize draft documents before copying to invoice": "Finalize draft documents before copying to invoice",
|
|
11
|
+
Draft: "Draft",
|
|
12
|
+
Number: "Number",
|
|
13
|
+
Customer: "Asiakas",
|
|
14
|
+
Date: "Päivämäärä",
|
|
15
|
+
"Valid Until": "Valid Until",
|
|
16
|
+
Total: "Total",
|
|
17
|
+
"Total with Tax": "Total with Tax",
|
|
18
|
+
Actions: "Toiminnot",
|
|
19
|
+
"Open menu": "Avaa valikko",
|
|
20
|
+
"Copy estimate ID": "Copy estimate ID",
|
|
21
|
+
"View estimate": "View estimate",
|
|
22
|
+
"Download PDF": "Lataa PDF",
|
|
23
|
+
"Downloading...": "Ladataan...",
|
|
24
|
+
Duplicate: "Duplicate",
|
|
25
|
+
Estimate: "Tarjous",
|
|
26
|
+
"Failed to download PDF": "PDF:n lataaminen epäonnistui",
|
|
27
|
+
"Search...": "Search...",
|
|
28
|
+
Filters: "Filters",
|
|
29
|
+
"Date Range": "Date Range",
|
|
30
|
+
From: "From",
|
|
31
|
+
To: "To",
|
|
32
|
+
"Clear filters": "Clear filters",
|
|
33
|
+
"Created At": "Created At",
|
|
34
|
+
Unshare: "Poista jakaminen",
|
|
35
|
+
"Try adjusting your search criteria": "Try adjusting your search criteria",
|
|
36
|
+
"Clear search": "Clear search",
|
|
37
|
+
"Clear all": "Clear all",
|
|
38
|
+
} as const;
|
|
@@ -24,8 +24,8 @@ export default {
|
|
|
24
24
|
"Created At": "Kreirano",
|
|
25
25
|
Unshare: "Ukloni dijeljenje",
|
|
26
26
|
"Your list is empty": "Vaš popis predračuna je prazan",
|
|
27
|
-
"Get started by creating your first entry": "Započnite
|
|
28
|
-
"Create new": "
|
|
27
|
+
"Get started by creating your first entry": "Započnite izradom prve ponude",
|
|
28
|
+
"Create new": "Izradi ponudu",
|
|
29
29
|
"No results found": "Nisu pronađeni predračuni",
|
|
30
30
|
"Try adjusting your search criteria": "Pokušajte prilagoditi kriterije pretraživanja",
|
|
31
31
|
"Clear search": "Očisti pretraživanje",
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
"Your list is empty": "Your estimate list is empty",
|
|
3
|
+
"Get started by creating your first entry": "Get started by creating your first estimate",
|
|
4
|
+
"Create new": "Búðu til áætlun",
|
|
5
|
+
"No results found": "No estimates found",
|
|
6
|
+
selected: "selected",
|
|
7
|
+
"Export PDFs": "Export PDFs",
|
|
8
|
+
"Deselect all": "Deselect all",
|
|
9
|
+
"Copy to Invoice": "Copy to Invoice",
|
|
10
|
+
"Finalize draft documents before copying to invoice": "Finalize draft documents before copying to invoice",
|
|
11
|
+
Draft: "Draft",
|
|
12
|
+
Number: "Númer",
|
|
13
|
+
Customer: "Viðskiptavinur",
|
|
14
|
+
Date: "Dagsetning",
|
|
15
|
+
"Valid Until": "Valid Until",
|
|
16
|
+
Total: "Samtals",
|
|
17
|
+
"Total with Tax": "Total with Tax",
|
|
18
|
+
Actions: "Aðgerðir",
|
|
19
|
+
"Open menu": "Opna valmynd",
|
|
20
|
+
"Copy estimate ID": "Copy estimate ID",
|
|
21
|
+
"View estimate": "View estimate",
|
|
22
|
+
"Download PDF": "Hlaða niður PDF",
|
|
23
|
+
"Downloading...": "Hleður niður...",
|
|
24
|
+
Duplicate: "Duplicate",
|
|
25
|
+
Estimate: "Tilboð",
|
|
26
|
+
"Failed to download PDF": "Ekki tókst að hlaða niður PDF",
|
|
27
|
+
"Search...": "Search...",
|
|
28
|
+
Filters: "Filters",
|
|
29
|
+
"Date Range": "Dagsetningarbil",
|
|
30
|
+
From: "From",
|
|
31
|
+
To: "To",
|
|
32
|
+
"Clear filters": "Clear filters",
|
|
33
|
+
"Created At": "Created At",
|
|
34
|
+
Unshare: "Hætta deilingu",
|
|
35
|
+
"Try adjusting your search criteria": "Try adjusting your search criteria",
|
|
36
|
+
"Clear search": "Clear search",
|
|
37
|
+
"Clear all": "Clear all",
|
|
38
|
+
} as const;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
"Your list is empty": "Your estimate list is empty",
|
|
3
|
+
"Get started by creating your first entry": "Get started by creating your first estimate",
|
|
4
|
+
"Create new": "Lag estimat",
|
|
5
|
+
"No results found": "No estimates found",
|
|
6
|
+
selected: "selected",
|
|
7
|
+
"Export PDFs": "Export PDFs",
|
|
8
|
+
"Deselect all": "Deselect all",
|
|
9
|
+
"Copy to Invoice": "Copy to Invoice",
|
|
10
|
+
"Finalize draft documents before copying to invoice": "Finalize draft documents before copying to invoice",
|
|
11
|
+
Draft: "Draft",
|
|
12
|
+
Number: "Nummer",
|
|
13
|
+
Customer: "Kunde",
|
|
14
|
+
Date: "Dato",
|
|
15
|
+
"Valid Until": "Valid Until",
|
|
16
|
+
Total: "Totalt",
|
|
17
|
+
"Total with Tax": "Total with Tax",
|
|
18
|
+
Actions: "Handlinger",
|
|
19
|
+
"Open menu": "Åpne menyen",
|
|
20
|
+
"Copy estimate ID": "Copy estimate ID",
|
|
21
|
+
"View estimate": "View estimate",
|
|
22
|
+
"Download PDF": "Last ned PDF",
|
|
23
|
+
"Downloading...": "Laster ned...",
|
|
24
|
+
Duplicate: "Duplicate",
|
|
25
|
+
Estimate: "Tilbud",
|
|
26
|
+
"Failed to download PDF": "Kunne ikke laste ned PDF",
|
|
27
|
+
"Search...": "Search...",
|
|
28
|
+
Filters: "Filters",
|
|
29
|
+
"Date Range": "Datointervall",
|
|
30
|
+
From: "From",
|
|
31
|
+
To: "To",
|
|
32
|
+
"Clear filters": "Clear filters",
|
|
33
|
+
"Created At": "Created At",
|
|
34
|
+
Unshare: "Fjern deling",
|
|
35
|
+
"Try adjusting your search criteria": "Try adjusting your search criteria",
|
|
36
|
+
"Clear search": "Clear search",
|
|
37
|
+
"Clear all": "Clear all",
|
|
38
|
+
} as const;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
"Your list is empty": "Your estimate list is empty",
|
|
3
|
+
"Get started by creating your first entry": "Get started by creating your first estimate",
|
|
4
|
+
"Create new": "Vytvorte odhad",
|
|
5
|
+
"No results found": "No estimates found",
|
|
6
|
+
selected: "selected",
|
|
7
|
+
"Export PDFs": "Export PDFs",
|
|
8
|
+
"Deselect all": "Deselect all",
|
|
9
|
+
"Copy to Invoice": "Copy to Invoice",
|
|
10
|
+
"Finalize draft documents before copying to invoice": "Finalize draft documents before copying to invoice",
|
|
11
|
+
Draft: "Draft",
|
|
12
|
+
Number: "Číslo",
|
|
13
|
+
Customer: "Zákazník",
|
|
14
|
+
Date: "Dátum",
|
|
15
|
+
"Valid Until": "Valid Until",
|
|
16
|
+
Total: "Celkom",
|
|
17
|
+
"Total with Tax": "Total with Tax",
|
|
18
|
+
Actions: "Akcie",
|
|
19
|
+
"Open menu": "Otvoriť menu",
|
|
20
|
+
"Copy estimate ID": "Copy estimate ID",
|
|
21
|
+
"View estimate": "View estimate",
|
|
22
|
+
"Download PDF": "Stiahnut PDF",
|
|
23
|
+
"Downloading...": "Sťahujem...",
|
|
24
|
+
Duplicate: "Duplicate",
|
|
25
|
+
Estimate: "Cenová ponuka",
|
|
26
|
+
"Failed to download PDF": "Nepodarilo sa stiahnuť PDF",
|
|
27
|
+
"Search...": "Search...",
|
|
28
|
+
Filters: "Filters",
|
|
29
|
+
"Date Range": "Rozsah dátumov",
|
|
30
|
+
From: "From",
|
|
31
|
+
To: "To",
|
|
32
|
+
"Clear filters": "Clear filters",
|
|
33
|
+
"Created At": "Created At",
|
|
34
|
+
Unshare: "Zrušiť zdieľanie",
|
|
35
|
+
"Try adjusting your search criteria": "Try adjusting your search criteria",
|
|
36
|
+
"Clear search": "Clear search",
|
|
37
|
+
"Clear all": "Clear all",
|
|
38
|
+
} as const;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
"Your list is empty": "Your estimate list is empty",
|
|
3
|
+
"Get started by creating your first entry": "Get started by creating your first estimate",
|
|
4
|
+
"Create new": "Skapa uppskattning",
|
|
5
|
+
"No results found": "No estimates found",
|
|
6
|
+
selected: "selected",
|
|
7
|
+
"Export PDFs": "Export PDFs",
|
|
8
|
+
"Deselect all": "Deselect all",
|
|
9
|
+
"Copy to Invoice": "Copy to Invoice",
|
|
10
|
+
"Finalize draft documents before copying to invoice": "Finalize draft documents before copying to invoice",
|
|
11
|
+
Draft: "Draft",
|
|
12
|
+
Number: "Nummer",
|
|
13
|
+
Customer: "Kund",
|
|
14
|
+
Date: "Datum",
|
|
15
|
+
"Valid Until": "Valid Until",
|
|
16
|
+
Total: "Totalt",
|
|
17
|
+
"Total with Tax": "Total with Tax",
|
|
18
|
+
Actions: "Åtgärder",
|
|
19
|
+
"Open menu": "Öppna menyn",
|
|
20
|
+
"Copy estimate ID": "Copy estimate ID",
|
|
21
|
+
"View estimate": "View estimate",
|
|
22
|
+
"Download PDF": "Ladda ner PDF",
|
|
23
|
+
"Downloading...": "Laddar ner...",
|
|
24
|
+
Duplicate: "Duplicate",
|
|
25
|
+
Estimate: "Offert",
|
|
26
|
+
"Failed to download PDF": "Kunde inte ladda ner PDF",
|
|
27
|
+
"Search...": "Search...",
|
|
28
|
+
Filters: "Filters",
|
|
29
|
+
"Date Range": "Datumintervall",
|
|
30
|
+
From: "From",
|
|
31
|
+
To: "To",
|
|
32
|
+
"Clear filters": "Clear filters",
|
|
33
|
+
"Created At": "Created At",
|
|
34
|
+
Unshare: "Sluta dela",
|
|
35
|
+
"Try adjusting your search criteria": "Try adjusting your search criteria",
|
|
36
|
+
"Clear search": "Clear search",
|
|
37
|
+
"Clear all": "Clear all",
|
|
38
|
+
} as const;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { Estimate } from "@spaceinvoices/js-sdk";
|
|
2
|
+
import { invoices } from "@spaceinvoices/js-sdk";
|
|
2
3
|
import { useState } from "react";
|
|
3
4
|
import type { ComponentTranslationProps } from "@/ui/lib/translation";
|
|
4
5
|
import { createTranslation } from "@/ui/lib/translation";
|
|
5
6
|
import { useEntities } from "@/ui/providers/entities-context";
|
|
6
|
-
import { useSDK } from "@/ui/providers/sdk-provider";
|
|
7
7
|
|
|
8
8
|
type UseEstimateDownloadProps = {
|
|
9
9
|
onDownloadStart?: () => void;
|
|
@@ -19,12 +19,10 @@ export function useEstimateDownload({
|
|
|
19
19
|
}: UseEstimateDownloadProps) {
|
|
20
20
|
const [isDownloading, setIsDownloading] = useState(false);
|
|
21
21
|
const { activeEntity } = useEntities();
|
|
22
|
-
const { sdk } = useSDK();
|
|
23
22
|
const t = createTranslation(i18nProps);
|
|
24
23
|
|
|
25
24
|
const downloadPDF = async (estimate: Estimate) => {
|
|
26
|
-
if (!activeEntity?.id
|
|
27
|
-
console.error("Missing SDK or active entity for PDF download");
|
|
25
|
+
if (!activeEntity?.id) {
|
|
28
26
|
onDownloadError?.(t("Failed to download PDF"));
|
|
29
27
|
return;
|
|
30
28
|
}
|
|
@@ -34,7 +32,7 @@ export function useEstimateDownload({
|
|
|
34
32
|
|
|
35
33
|
try {
|
|
36
34
|
const fileName = `${t("Estimate")} ${estimate.number}.pdf`;
|
|
37
|
-
await
|
|
35
|
+
await invoices.downloadPdf(estimate.id, fileName, {}, { entity_id: activeEntity.id });
|
|
38
36
|
|
|
39
37
|
onDownloadSuccess?.(fileName);
|
|
40
38
|
} catch (error) {
|