@spaceinvoices/react-ui 0.4.2 → 0.4.4
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/cli/dist/index.js +1 -1
- package/package.json +1 -1
- package/src/common/autocomplete.tsx +18 -2
- package/src/components/advance-invoices/create/create-advance-invoice-form.tsx +0 -1
- package/src/components/advance-invoices/create/locales/de.ts +2 -0
- package/src/components/advance-invoices/create/locales/es.ts +2 -0
- package/src/components/advance-invoices/create/locales/fr.ts +2 -0
- package/src/components/advance-invoices/create/locales/hr.ts +1 -0
- package/src/components/advance-invoices/create/locales/it.ts +2 -0
- package/src/components/advance-invoices/create/locales/nl.ts +2 -0
- package/src/components/advance-invoices/create/locales/pl.ts +1 -0
- package/src/components/advance-invoices/create/locales/pt.ts +1 -0
- package/src/components/advance-invoices/create/locales/sl.ts +1 -0
- package/src/components/advance-invoices/create/prepare-advance-invoice-submission.ts +0 -1
- package/src/components/advance-invoices/list/list-table.tsx +130 -40
- package/src/components/advance-invoices/list/locales/de.ts +6 -0
- package/src/components/advance-invoices/list/locales/en.ts +5 -0
- package/src/components/advance-invoices/list/locales/es.ts +6 -0
- package/src/components/advance-invoices/list/locales/fr.ts +6 -0
- package/src/components/advance-invoices/list/locales/hr.ts +6 -0
- package/src/components/advance-invoices/list/locales/it.ts +6 -0
- package/src/components/advance-invoices/list/locales/nl.ts +6 -0
- package/src/components/advance-invoices/list/locales/pl.ts +6 -0
- package/src/components/advance-invoices/list/locales/pt.ts +6 -0
- package/src/components/advance-invoices/list/locales/sl.ts +6 -0
- package/src/components/credit-notes/create/create-credit-note-form.tsx +114 -3
- package/src/components/credit-notes/create/locales/de.ts +2 -0
- package/src/components/credit-notes/create/locales/es.ts +2 -0
- package/src/components/credit-notes/create/locales/fr.ts +2 -0
- package/src/components/credit-notes/create/locales/hr.ts +1 -0
- package/src/components/credit-notes/create/locales/it.ts +2 -0
- package/src/components/credit-notes/create/locales/nl.ts +2 -0
- package/src/components/credit-notes/create/locales/pl.ts +1 -0
- package/src/components/credit-notes/create/locales/pt.ts +1 -0
- package/src/components/credit-notes/create/locales/sl.ts +1 -0
- package/src/components/credit-notes/credit-notes.hooks.ts +30 -0
- package/src/components/credit-notes/list/list-table.tsx +111 -36
- package/src/components/credit-notes/list/locales/de.ts +6 -1
- package/src/components/credit-notes/list/locales/en.ts +6 -0
- package/src/components/credit-notes/list/locales/es.ts +6 -1
- package/src/components/credit-notes/list/locales/fr.ts +6 -1
- package/src/components/credit-notes/list/locales/hr.ts +6 -1
- package/src/components/credit-notes/list/locales/it.ts +6 -1
- package/src/components/credit-notes/list/locales/nl.ts +6 -1
- package/src/components/credit-notes/list/locales/pl.ts +6 -1
- package/src/components/credit-notes/list/locales/pt.ts +6 -1
- package/src/components/credit-notes/list/locales/sl.ts +6 -1
- package/src/components/customers/customer-list-table/customer-list-table.tsx +0 -3
- package/src/components/customers/customer-list-table/locales/de.ts +1 -0
- package/src/components/customers/customer-list-table/locales/es.ts +1 -0
- package/src/components/customers/customer-list-table/locales/fr.ts +1 -0
- package/src/components/customers/customer-list-table/locales/hr.ts +1 -0
- package/src/components/customers/customer-list-table/locales/it.ts +1 -0
- package/src/components/customers/customer-list-table/locales/nl.ts +1 -0
- package/src/components/customers/customer-list-table/locales/pl.ts +1 -0
- package/src/components/customers/customer-list-table/locales/pt.ts +1 -0
- package/src/components/customers/customer-list-table/locales/sl.ts +1 -0
- package/src/components/dashboard/collection-rate-card/use-collection-rate.ts +2 -2
- package/src/components/dashboard/invoice-status-chart/use-invoice-status.ts +3 -3
- package/src/components/dashboard/payment-methods-chart/use-payment-methods.ts +1 -1
- package/src/components/dashboard/payment-trend-chart/use-payment-trend.ts +1 -1
- package/src/components/dashboard/revenue-trend-chart/use-revenue-trend.ts +1 -1
- package/src/components/dashboard/shared/use-revenue-data.ts +4 -4
- package/src/components/dashboard/shared/use-stats-counts.ts +4 -4
- package/src/components/dashboard/shared/use-stats-query.ts +1 -1
- package/src/components/dashboard/tax-collected-card/use-tax-collected.ts +2 -2
- package/src/components/dashboard/top-customers-chart/use-top-customers.ts +1 -1
- package/src/components/delivery-notes/create/create-delivery-note-form.tsx +332 -0
- package/src/components/delivery-notes/create/locales/de.ts +50 -0
- package/src/components/delivery-notes/create/locales/es.ts +49 -0
- package/src/components/delivery-notes/create/locales/fr.ts +50 -0
- package/src/components/delivery-notes/create/locales/hr.ts +49 -0
- package/src/components/delivery-notes/create/locales/it.ts +49 -0
- package/src/components/delivery-notes/create/locales/nl.ts +50 -0
- package/src/components/delivery-notes/create/locales/pl.ts +49 -0
- package/src/components/delivery-notes/create/locales/pt.ts +50 -0
- package/src/components/delivery-notes/create/locales/sl.ts +49 -0
- package/src/components/delivery-notes/create/prepare-delivery-note-submission.ts +38 -0
- package/src/components/delivery-notes/create/use-delivery-note-customer-form.ts +1 -0
- package/src/components/delivery-notes/delivery-notes.hooks.ts +15 -0
- package/src/components/delivery-notes/list/index.ts +3 -0
- package/src/components/delivery-notes/list/list-row-actions.tsx +122 -0
- package/src/components/delivery-notes/list/list-table.tsx +247 -0
- package/src/components/delivery-notes/list/locales/de.ts +13 -0
- package/src/components/delivery-notes/list/locales/en.ts +13 -0
- package/src/components/delivery-notes/list/locales/es.ts +13 -0
- package/src/components/delivery-notes/list/locales/fr.ts +13 -0
- package/src/components/delivery-notes/list/locales/hr.ts +13 -0
- package/src/components/delivery-notes/list/locales/it.ts +13 -0
- package/src/components/delivery-notes/list/locales/nl.ts +13 -0
- package/src/components/delivery-notes/list/locales/pl.ts +13 -0
- package/src/components/delivery-notes/list/locales/pt.ts +13 -0
- package/src/components/delivery-notes/list/locales/sl.ts +13 -0
- package/src/components/delivery-notes/list/use-delivery-note-download.ts +63 -0
- package/src/components/documents/create/document-details-section.tsx +76 -58
- package/src/components/documents/create/linked-documents-info.tsx +82 -0
- package/src/components/documents/create/live-preview.tsx +38 -11
- package/src/components/documents/create/prepare-document-submission.ts +1 -1
- package/src/components/documents/documents.hooks.ts +2 -1
- package/src/components/documents/shared/document-preview-display.tsx +12 -5
- package/src/components/documents/types.ts +12 -3
- package/src/components/documents/view/document-activities-list.tsx +65 -47
- package/src/components/documents/view/document-details-card.tsx +102 -77
- package/src/components/documents/view/document-payments-list.tsx +102 -68
- package/src/components/documents/view/document-relations-list.tsx +120 -0
- package/src/components/documents/view/document-sidebar.tsx +151 -0
- package/src/components/documents/view/index.ts +2 -0
- package/src/components/documents/view/locales/de.ts +23 -0
- package/src/components/documents/view/locales/es.ts +23 -0
- package/src/components/documents/view/locales/fr.ts +23 -0
- package/src/components/documents/view/locales/hr.ts +23 -0
- package/src/components/documents/view/locales/it.ts +23 -0
- package/src/components/documents/view/locales/nl.ts +23 -0
- package/src/components/documents/view/locales/pl.ts +23 -0
- package/src/components/documents/view/locales/pt.ts +23 -0
- package/src/components/documents/view/locales/sl.ts +23 -0
- package/src/components/documents/view/use-document-download.ts +8 -5
- package/src/components/entities/create-entity-form.tsx +165 -13
- package/src/components/entities/entity-settings-form/entity-settings-form.tsx +101 -1
- package/src/components/entities/entity-settings-form/locales/de.ts +9 -0
- package/src/components/entities/entity-settings-form/locales/es.ts +9 -0
- package/src/components/entities/entity-settings-form/locales/fr.ts +9 -0
- package/src/components/entities/entity-settings-form/locales/hr.ts +9 -0
- package/src/components/entities/entity-settings-form/locales/it.ts +9 -0
- package/src/components/entities/entity-settings-form/locales/nl.ts +9 -0
- package/src/components/entities/entity-settings-form/locales/pl.ts +9 -0
- package/src/components/entities/entity-settings-form/locales/pt.ts +9 -0
- package/src/components/entities/entity-settings-form/locales/sl.ts +9 -0
- package/src/components/entities/fina-settings-form/fina-settings-form.tsx +83 -71
- package/src/components/entities/fina-settings-form/fina-settings.hooks.ts +7 -2
- package/src/components/entities/fina-settings-form/locales/de.ts +2 -2
- package/src/components/entities/fina-settings-form/locales/en.ts +2 -2
- package/src/components/entities/fina-settings-form/locales/es.ts +2 -2
- package/src/components/entities/fina-settings-form/locales/fr.ts +2 -2
- package/src/components/entities/fina-settings-form/locales/hr.ts +2 -2
- package/src/components/entities/fina-settings-form/locales/it.ts +2 -2
- package/src/components/entities/fina-settings-form/locales/nl.ts +2 -2
- package/src/components/entities/fina-settings-form/locales/pl.ts +2 -2
- package/src/components/entities/fina-settings-form/locales/pt.ts +2 -2
- package/src/components/entities/fina-settings-form/locales/sl.ts +2 -2
- package/src/components/entities/furs-settings-form/furs-settings-form.tsx +10 -1
- package/src/components/entities/furs-settings-form/furs-settings.hooks.ts +7 -2
- package/src/components/entities/furs-settings-form/locales/en.ts +0 -1
- package/src/components/entities/furs-settings-form/sections/general-settings-section.tsx +12 -4
- package/src/components/entities/settings/pdf-template-selector/locales/de.ts +3 -1
- package/src/components/entities/settings/pdf-template-selector/locales/es.ts +3 -1
- package/src/components/entities/settings/pdf-template-selector/locales/fr.ts +4 -1
- package/src/components/entities/settings/pdf-template-selector/locales/hr.ts +4 -1
- package/src/components/entities/settings/pdf-template-selector/locales/it.ts +3 -1
- package/src/components/entities/settings/pdf-template-selector/locales/nl.ts +3 -1
- package/src/components/entities/settings/pdf-template-selector/locales/pl.ts +3 -1
- package/src/components/entities/settings/pdf-template-selector/locales/pt.ts +3 -1
- package/src/components/entities/settings/pdf-template-selector/locales/sl.ts +3 -1
- package/src/components/entities/settings/pdf-template-selector/pdf-template-cards.tsx +1 -0
- package/src/components/estimates/create/create-estimate-form.tsx +29 -2
- package/src/components/estimates/list/list-table.tsx +3 -6
- package/src/components/estimates/list/locales/de.ts +1 -0
- package/src/components/estimates/list/locales/es.ts +1 -0
- package/src/components/estimates/list/locales/fr.ts +1 -0
- package/src/components/estimates/list/locales/hr.ts +1 -0
- package/src/components/estimates/list/locales/it.ts +1 -0
- package/src/components/estimates/list/locales/nl.ts +1 -0
- package/src/components/estimates/list/locales/pl.ts +1 -0
- package/src/components/estimates/list/locales/pt.ts +1 -0
- package/src/components/estimates/list/locales/sl.ts +1 -0
- package/src/components/export/document-export-form.tsx +9 -2
- package/src/components/export/index.ts +2 -0
- package/src/components/export/sales-per-item-export-form.tsx +223 -0
- package/src/components/invoices/create/create-invoice-form.tsx +48 -1
- package/src/components/invoices/create/locales/de.ts +11 -0
- package/src/components/invoices/create/locales/es.ts +11 -0
- package/src/components/invoices/create/locales/fr.ts +11 -0
- package/src/components/invoices/create/locales/hr.ts +10 -0
- package/src/components/invoices/create/locales/it.ts +11 -0
- package/src/components/invoices/create/locales/nl.ts +11 -0
- package/src/components/invoices/create/locales/pl.ts +10 -0
- package/src/components/invoices/create/locales/pt.ts +10 -0
- package/src/components/invoices/create/locales/sl.ts +10 -0
- package/src/components/invoices/invoices-furs.hooks.ts +27 -9
- package/src/components/invoices/list/list-row-actions.tsx +3 -3
- package/src/components/invoices/list/list-table.tsx +132 -21
- package/src/components/invoices/list/locales/de.ts +6 -0
- package/src/components/invoices/list/locales/en.ts +5 -0
- package/src/components/invoices/list/locales/es.ts +6 -0
- package/src/components/invoices/list/locales/fr.ts +6 -0
- package/src/components/invoices/list/locales/hr.ts +6 -0
- package/src/components/invoices/list/locales/it.ts +6 -0
- package/src/components/invoices/list/locales/nl.ts +6 -0
- package/src/components/invoices/list/locales/pl.ts +6 -0
- package/src/components/invoices/list/locales/pt.ts +6 -0
- package/src/components/invoices/list/locales/sl.ts +6 -0
- package/src/components/invoices/view/fiscalization-status-card.tsx +42 -24
- package/src/components/items/item-combobox.tsx +5 -3
- package/src/components/items/item-list-table/item-list-header.tsx +4 -17
- package/src/components/items/item-list-table/item-list-row-actions.tsx +3 -2
- package/src/components/items/item-list-table/item-list-row.tsx +3 -2
- package/src/components/items/item-list-table/item-list-table.tsx +3 -3
- package/src/components/items/item-list-table/locales/de.ts +1 -0
- package/src/components/items/item-list-table/locales/es.ts +1 -0
- package/src/components/items/item-list-table/locales/fr.ts +1 -0
- package/src/components/items/item-list-table/locales/hr.ts +1 -0
- package/src/components/items/item-list-table/locales/it.ts +1 -0
- package/src/components/items/item-list-table/locales/nl.ts +1 -0
- package/src/components/items/item-list-table/locales/pl.ts +1 -0
- package/src/components/items/item-list-table/locales/pt.ts +1 -0
- package/src/components/items/item-list-table/locales/sl.ts +1 -0
- package/src/components/payments/list/list-table.tsx +0 -4
- package/src/components/payments/list/locales/de.ts +1 -0
- package/src/components/payments/list/locales/es.ts +1 -0
- package/src/components/payments/list/locales/fr.ts +1 -0
- package/src/components/payments/list/locales/hr.ts +1 -0
- package/src/components/payments/list/locales/it.ts +1 -0
- package/src/components/payments/list/locales/nl.ts +1 -0
- package/src/components/payments/list/locales/pl.ts +1 -0
- package/src/components/payments/list/locales/pt.ts +1 -0
- package/src/components/payments/list/locales/sl.ts +1 -0
- package/src/components/recurring-invoices/list/list-table.tsx +0 -7
- package/src/components/recurring-invoices/list/locales/de.ts +1 -0
- package/src/components/recurring-invoices/list/locales/es.ts +1 -0
- package/src/components/recurring-invoices/list/locales/fr.ts +1 -0
- package/src/components/recurring-invoices/list/locales/hr.ts +1 -0
- package/src/components/recurring-invoices/list/locales/it.ts +1 -0
- package/src/components/recurring-invoices/list/locales/nl.ts +1 -0
- package/src/components/recurring-invoices/list/locales/pl.ts +1 -0
- package/src/components/recurring-invoices/list/locales/pt.ts +1 -0
- package/src/components/recurring-invoices/list/locales/sl.ts +1 -0
- package/src/components/request-logs/request-log-list-table.tsx +0 -3
- package/src/components/table/README.md +14 -121
- package/src/components/table/data-table.tsx +22 -37
- package/src/components/table/hooks/use-table-state.ts +3 -27
- package/src/components/table/index.ts +0 -2
- package/src/components/table/selection-toolbar.tsx +35 -1
- package/src/components/table/table-empty-state.tsx +6 -3
- package/src/components/table/table-no-results.tsx +10 -5
- package/src/components/table/types.ts +0 -5
- package/src/components/taxes/tax-list-table/locales/de.ts +1 -0
- package/src/components/taxes/tax-list-table/locales/es.ts +1 -0
- package/src/components/taxes/tax-list-table/locales/fr.ts +1 -0
- package/src/components/taxes/tax-list-table/locales/hr.ts +1 -0
- package/src/components/taxes/tax-list-table/locales/it.ts +1 -0
- package/src/components/taxes/tax-list-table/locales/nl.ts +1 -0
- package/src/components/taxes/tax-list-table/locales/pl.ts +1 -0
- package/src/components/taxes/tax-list-table/locales/pt.ts +1 -0
- package/src/components/taxes/tax-list-table/locales/sl.ts +1 -0
- package/src/components/taxes/tax-list-table/tax-list-header.tsx +3 -14
- package/src/components/taxes/tax-list-table/tax-list-table.tsx +3 -3
- package/src/components/ui/popover.tsx +3 -1
- package/src/components/ui/tooltip.tsx +3 -1
- package/src/generated/schemas/deliverynote.ts +134 -0
- package/src/generated/schemas/entity.ts +4 -0
- package/src/generated/schemas/index.ts +3 -0
- package/src/generated/schemas/order.ts +5 -3
- package/src/generated/schemas/payment.ts +22 -2
- package/src/generated/schemas/renderadvanceinvoicepreview_body.ts +1 -0
- package/src/generated/schemas/rendercreditnotepreview_body.ts +1 -0
- package/src/generated/schemas/renderdeliverynotepreview_body.ts +185 -0
- package/src/generated/schemas/renderestimatepreview_body.ts +1 -0
- package/src/generated/schemas/renderinvoicepreview_body.ts +1 -0
- package/src/generated/schemas/startpdfexport_body.ts +18 -2
- package/src/generated/schemas/userfinasettings.ts +19 -0
- package/src/generated/schemas/webhook.ts +12 -0
- package/src/hooks/use-duplicate-document.ts +49 -6
- package/src/hooks/use-next-document-number.ts +2 -2
- package/src/lib/fiscalization.ts +12 -0
- package/src/lib/schemas/advance-invoice.ts +0 -1
- package/src/providers/sdk-provider.tsx +5 -7
- package/src/components/table/sortable-header.tsx +0 -56
|
@@ -54,6 +54,11 @@ interface FinaSettingsFormProps extends ComponentTranslationProps {
|
|
|
54
54
|
initialStep?: FinaStepType;
|
|
55
55
|
onStepChange?: (step: FinaStepType) => void;
|
|
56
56
|
renderSection?: (section: FinaSectionType, content: ReactNode) => ReactNode;
|
|
57
|
+
/**
|
|
58
|
+
* Hide user-specific operator section (for embed/API key contexts without user session).
|
|
59
|
+
* When true, the "Advanced Settings" entity-level operator fields are auto-expanded instead.
|
|
60
|
+
*/
|
|
61
|
+
hideUserOperatorSection?: boolean;
|
|
57
62
|
}
|
|
58
63
|
|
|
59
64
|
/**
|
|
@@ -75,6 +80,7 @@ export const FinaSettingsForm: FC<FinaSettingsFormProps> = ({
|
|
|
75
80
|
initialStep = "settings",
|
|
76
81
|
onStepChange,
|
|
77
82
|
renderSection,
|
|
83
|
+
hideUserOperatorSection,
|
|
78
84
|
}) => {
|
|
79
85
|
const [activeStep, setActiveStep] = useState<FinaStepType>(initialStep);
|
|
80
86
|
const [hasInitializedStep, setHasInitializedStep] = useState(false);
|
|
@@ -138,7 +144,9 @@ export const FinaSettingsForm: FC<FinaSettingsFormProps> = ({
|
|
|
138
144
|
});
|
|
139
145
|
|
|
140
146
|
// User FINA operator settings (per-user, stored in user.settings)
|
|
141
|
-
const { data: userFinaSettings, isLoading: userSettingsLoading } = useUserFinaSettings(entity.id
|
|
147
|
+
const { data: userFinaSettings, isLoading: userSettingsLoading } = useUserFinaSettings(entity.id, {
|
|
148
|
+
enabled: !hideUserOperatorSection,
|
|
149
|
+
});
|
|
142
150
|
const [userOperatorOib, setUserOperatorOib] = useState("");
|
|
143
151
|
const [userOperatorLabel, setUserOperatorLabel] = useState("");
|
|
144
152
|
|
|
@@ -166,10 +174,10 @@ export const FinaSettingsForm: FC<FinaSettingsFormProps> = ({
|
|
|
166
174
|
};
|
|
167
175
|
|
|
168
176
|
// Form state for entity-level settings (API default)
|
|
169
|
-
const [isAdvancedOpen, setIsAdvancedOpen] = useState(
|
|
177
|
+
const [isAdvancedOpen, setIsAdvancedOpen] = useState(!!hideUserOperatorSection);
|
|
170
178
|
const [formData, setFormData] = useState({
|
|
171
179
|
enabled: false,
|
|
172
|
-
numbering_sequence: "
|
|
180
|
+
numbering_sequence: "P" as "N" | "P",
|
|
173
181
|
operator_oib: "",
|
|
174
182
|
operator_label: "",
|
|
175
183
|
u_sust_pdv: true,
|
|
@@ -180,7 +188,7 @@ export const FinaSettingsForm: FC<FinaSettingsFormProps> = ({
|
|
|
180
188
|
if (finaSettings) {
|
|
181
189
|
setFormData({
|
|
182
190
|
enabled: finaSettings.enabled || false,
|
|
183
|
-
numbering_sequence: finaSettings.numbering_sequence || "
|
|
191
|
+
numbering_sequence: finaSettings.numbering_sequence || "P",
|
|
184
192
|
operator_oib: finaSettings.operator_oib || "",
|
|
185
193
|
operator_label: finaSettings.operator_label || "",
|
|
186
194
|
u_sust_pdv: finaSettings.u_sust_pdv ?? true,
|
|
@@ -515,12 +523,12 @@ export const FinaSettingsForm: FC<FinaSettingsFormProps> = ({
|
|
|
515
523
|
className="space-y-2"
|
|
516
524
|
>
|
|
517
525
|
<div className="flex items-center space-x-2">
|
|
518
|
-
<RadioGroupItem value="
|
|
519
|
-
<Label htmlFor="seq-
|
|
526
|
+
<RadioGroupItem value="P" id="seq-p" />
|
|
527
|
+
<Label htmlFor="seq-p">{translate("Per Premise (P)")}</Label>
|
|
520
528
|
</div>
|
|
521
529
|
<div className="flex items-center space-x-2">
|
|
522
|
-
<RadioGroupItem value="
|
|
523
|
-
<Label htmlFor="seq-
|
|
530
|
+
<RadioGroupItem value="N" id="seq-n" />
|
|
531
|
+
<Label htmlFor="seq-n">{translate("Per Device (N)")}</Label>
|
|
524
532
|
</div>
|
|
525
533
|
</RadioGroup>
|
|
526
534
|
</div>,
|
|
@@ -553,73 +561,77 @@ export const FinaSettingsForm: FC<FinaSettingsFormProps> = ({
|
|
|
553
561
|
|
|
554
562
|
<Separator />
|
|
555
563
|
|
|
556
|
-
{/* Per-user operator settings */}
|
|
557
|
-
{
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
<div className="
|
|
562
|
-
<
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
564
|
+
{/* Per-user operator settings (hidden in embed/API key mode) */}
|
|
565
|
+
{!hideUserOperatorSection && (
|
|
566
|
+
<>
|
|
567
|
+
{wrapSection(
|
|
568
|
+
"user-operator",
|
|
569
|
+
<div className="space-y-4">
|
|
570
|
+
<div className="flex items-center gap-3">
|
|
571
|
+
<div className="flex h-10 w-10 items-center justify-center rounded-lg bg-blue-500/10">
|
|
572
|
+
<User className="h-5 w-5 text-blue-600 dark:text-blue-400" />
|
|
573
|
+
</div>
|
|
574
|
+
<div>
|
|
575
|
+
<h3 className="font-semibold text-lg">{translate("Your Operator Settings")}</h3>
|
|
576
|
+
<p className="text-muted-foreground text-sm">
|
|
577
|
+
{translate("Your personal operator info for FINA invoices")}
|
|
578
|
+
</p>
|
|
579
|
+
</div>
|
|
580
|
+
</div>
|
|
571
581
|
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
582
|
+
{(!userFinaSettings?.operator_oib || !userFinaSettings?.operator_label) && (
|
|
583
|
+
<Alert variant="destructive">
|
|
584
|
+
<AlertTriangle className="h-4 w-4" />
|
|
585
|
+
<AlertDescription>
|
|
586
|
+
{translate("Operator OIB and label are required for FINA fiscalization")}
|
|
587
|
+
</AlertDescription>
|
|
588
|
+
</Alert>
|
|
589
|
+
)}
|
|
580
590
|
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
591
|
+
<div className="space-y-4">
|
|
592
|
+
<div>
|
|
593
|
+
<Label className="font-medium text-sm">{translate("Operator OIB")}</Label>
|
|
594
|
+
<Input
|
|
595
|
+
type="text"
|
|
596
|
+
value={userOperatorOib}
|
|
597
|
+
onChange={(e) => {
|
|
598
|
+
const val = e.target.value.replace(/[^0-9]/g, "");
|
|
599
|
+
setUserOperatorOib(val);
|
|
600
|
+
}}
|
|
601
|
+
placeholder={translate("OIB of the operator (11 digits)")}
|
|
602
|
+
className={cn("mt-1", userOperatorOibError && "border-destructive")}
|
|
603
|
+
maxLength={11}
|
|
604
|
+
disabled={userSettingsLoading}
|
|
605
|
+
/>
|
|
606
|
+
{userOperatorOibError && <p className="mt-1 text-destructive text-xs">{userOperatorOibError}</p>}
|
|
607
|
+
</div>
|
|
608
|
+
<div>
|
|
609
|
+
<Label className="font-medium text-sm">{translate("Operator Label")}</Label>
|
|
610
|
+
<Input
|
|
611
|
+
type="text"
|
|
612
|
+
value={userOperatorLabel}
|
|
613
|
+
onChange={(e) => setUserOperatorLabel(e.target.value)}
|
|
614
|
+
placeholder={translate("e.g. Cashier 1")}
|
|
615
|
+
className="mt-1"
|
|
616
|
+
disabled={userSettingsLoading}
|
|
617
|
+
/>
|
|
618
|
+
</div>
|
|
609
619
|
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
620
|
+
<Button
|
|
621
|
+
type="button"
|
|
622
|
+
onClick={handleSaveUserSettings}
|
|
623
|
+
disabled={isUserSettingsPending || userSettingsLoading || !!userOperatorOibError}
|
|
624
|
+
className="cursor-pointer"
|
|
625
|
+
>
|
|
626
|
+
{isUserSettingsPending ? translate("Saving...") : translate("Save Operator Settings")}
|
|
627
|
+
</Button>
|
|
628
|
+
</div>
|
|
629
|
+
</div>,
|
|
630
|
+
)}
|
|
621
631
|
|
|
622
|
-
|
|
632
|
+
<Separator />
|
|
633
|
+
</>
|
|
634
|
+
)}
|
|
623
635
|
|
|
624
636
|
{/* API Default Operator (advanced/entity-level) */}
|
|
625
637
|
{wrapSection(
|
|
@@ -251,8 +251,13 @@ function useCurrentUser(options?: Omit<UseQueryOptions<any>, "queryKey" | "query
|
|
|
251
251
|
* Hook: Get user FINA settings for a specific entity
|
|
252
252
|
* Extracts FINA settings from user.settings using the fina_<entity_id> key
|
|
253
253
|
*/
|
|
254
|
-
export function useUserFinaSettings(entityId: string) {
|
|
255
|
-
const {
|
|
254
|
+
export function useUserFinaSettings(entityId: string, options?: { enabled?: boolean }) {
|
|
255
|
+
const {
|
|
256
|
+
data: user,
|
|
257
|
+
isLoading,
|
|
258
|
+
error,
|
|
259
|
+
...rest
|
|
260
|
+
} = useCurrentUser(options?.enabled === false ? { enabled: false } : undefined);
|
|
256
261
|
|
|
257
262
|
const userFinaSettings = useMemo<UserFinaSettings | null>(() => {
|
|
258
263
|
if (!user?.settings) return null;
|
|
@@ -19,8 +19,8 @@ export default {
|
|
|
19
19
|
"Registrieren Sie mindestens einen Geschäftsraum, bevor Sie Rechnungen fiskalisieren",
|
|
20
20
|
"Numbering Sequence": "Nummerierungsfolge",
|
|
21
21
|
"Choose how invoice numbers are sequenced": "Wählen Sie, wie Rechnungsnummern sequenziert werden",
|
|
22
|
-
"Per
|
|
23
|
-
"Per
|
|
22
|
+
"Per Device (N)": "Pro Gerät (N)",
|
|
23
|
+
"Per Premise (P)": "Pro Raum (P)",
|
|
24
24
|
Recommended: "Empfohlen",
|
|
25
25
|
"One sequence per business premise. Simpler to manage.": "Eine Sequenz pro Geschäftsraum. Einfacher zu verwalten.",
|
|
26
26
|
"Separate sequence per electronic device. For multi-device setups.":
|
|
@@ -18,8 +18,8 @@ export default {
|
|
|
18
18
|
"Register at least one business premise before fiscalizing invoices",
|
|
19
19
|
"Numbering Sequence": "Numbering Sequence",
|
|
20
20
|
"Choose how invoice numbers are sequenced": "Choose how invoice numbers are sequenced",
|
|
21
|
-
"Per
|
|
22
|
-
"Per
|
|
21
|
+
"Per Device (N)": "Per Device (N)",
|
|
22
|
+
"Per Premise (P)": "Per Premise (P)",
|
|
23
23
|
Recommended: "Recommended",
|
|
24
24
|
"One sequence per business premise. Simpler to manage.": "One sequence per business premise. Simpler to manage.",
|
|
25
25
|
"Separate sequence per electronic device. For multi-device setups.":
|
|
@@ -18,8 +18,8 @@ export default {
|
|
|
18
18
|
"Registre al menos un local comercial antes de fiscalizar facturas",
|
|
19
19
|
"Numbering Sequence": "Secuencia de numeración",
|
|
20
20
|
"Choose how invoice numbers are sequenced": "Elija cómo se secuencian los números de factura",
|
|
21
|
-
"Per
|
|
22
|
-
"Per
|
|
21
|
+
"Per Device (N)": "Por dispositivo (N)",
|
|
22
|
+
"Per Premise (P)": "Por local (P)",
|
|
23
23
|
Recommended: "Recomendado",
|
|
24
24
|
"One sequence per business premise. Simpler to manage.":
|
|
25
25
|
"Una secuencia por local comercial. Más simple de gestionar.",
|
|
@@ -18,8 +18,8 @@ export default {
|
|
|
18
18
|
"Enregistrez au moins un local commercial avant de fiscaliser les factures",
|
|
19
19
|
"Numbering Sequence": "Séquence de numérotation",
|
|
20
20
|
"Choose how invoice numbers are sequenced": "Choisissez comment les numéros de factures sont séquencés",
|
|
21
|
-
"Per
|
|
22
|
-
"Per
|
|
21
|
+
"Per Device (N)": "Par appareil (N)",
|
|
22
|
+
"Per Premise (P)": "Par local (P)",
|
|
23
23
|
Recommended: "Recommandé",
|
|
24
24
|
"One sequence per business premise. Simpler to manage.": "Une séquence par local commercial. Plus simple à gérer.",
|
|
25
25
|
"Separate sequence per electronic device. For multi-device setups.":
|
|
@@ -18,8 +18,8 @@ export default {
|
|
|
18
18
|
"Registrirajte barem jedan poslovni prostor prije fiskalizacije računa",
|
|
19
19
|
"Numbering Sequence": "Redoslijed numeriranja",
|
|
20
20
|
"Choose how invoice numbers are sequenced": "Odaberite način numeriranja računa",
|
|
21
|
-
"Per
|
|
22
|
-
"Per
|
|
21
|
+
"Per Device (N)": "Po uređaju (N)",
|
|
22
|
+
"Per Premise (P)": "Po prostoru (P)",
|
|
23
23
|
Recommended: "Preporučeno",
|
|
24
24
|
"One sequence per business premise. Simpler to manage.":
|
|
25
25
|
"Jedan redoslijed po poslovnom prostoru. Jednostavnije za upravljanje.",
|
|
@@ -18,8 +18,8 @@ export default {
|
|
|
18
18
|
"Registra almeno un locale commerciale prima di fiscalizzare le fatture",
|
|
19
19
|
"Numbering Sequence": "Sequenza di numerazione",
|
|
20
20
|
"Choose how invoice numbers are sequenced": "Scegli come vengono numerati i documenti",
|
|
21
|
-
"Per
|
|
22
|
-
"Per
|
|
21
|
+
"Per Device (N)": "Per dispositivo (N)",
|
|
22
|
+
"Per Premise (P)": "Per locale (P)",
|
|
23
23
|
Recommended: "Consigliato",
|
|
24
24
|
"One sequence per business premise. Simpler to manage.":
|
|
25
25
|
"Una sequenza per locale commerciale. Più semplice da gestire.",
|
|
@@ -18,8 +18,8 @@ export default {
|
|
|
18
18
|
"Registreer ten minste één bedrijfsruimte voordat u facturen fiscaliseert",
|
|
19
19
|
"Numbering Sequence": "Nummeringsreeks",
|
|
20
20
|
"Choose how invoice numbers are sequenced": "Kies hoe factuurnummers worden gesequenst",
|
|
21
|
-
"Per
|
|
22
|
-
"Per
|
|
21
|
+
"Per Device (N)": "Per apparaat (N)",
|
|
22
|
+
"Per Premise (P)": "Per ruimte (P)",
|
|
23
23
|
Recommended: "Aanbevolen",
|
|
24
24
|
"One sequence per business premise. Simpler to manage.": "Eén reeks per bedrijfsruimte. Eenvoudiger te beheren.",
|
|
25
25
|
"Separate sequence per electronic device. For multi-device setups.":
|
|
@@ -18,8 +18,8 @@ export default {
|
|
|
18
18
|
"Zarejestruj co najmniej jeden lokal użytkowy przed fiskalizacją faktur",
|
|
19
19
|
"Numbering Sequence": "Sekwencja numeracji",
|
|
20
20
|
"Choose how invoice numbers are sequenced": "Wybierz sposób numeracji faktur",
|
|
21
|
-
"Per
|
|
22
|
-
"Per
|
|
21
|
+
"Per Device (N)": "Na urządzenie (N)",
|
|
22
|
+
"Per Premise (P)": "Na lokal (P)",
|
|
23
23
|
Recommended: "Zalecane",
|
|
24
24
|
"One sequence per business premise. Simpler to manage.": "Jedna sekwencja na lokal użytkowy. Łatwiejsze zarządzanie.",
|
|
25
25
|
"Separate sequence per electronic device. For multi-device setups.":
|
|
@@ -18,8 +18,8 @@ export default {
|
|
|
18
18
|
"Registe pelo menos uma instalação comercial antes de fiscalizar faturas",
|
|
19
19
|
"Numbering Sequence": "Sequência de numeração",
|
|
20
20
|
"Choose how invoice numbers are sequenced": "Escolha como os números de fatura são sequenciados",
|
|
21
|
-
"Per
|
|
22
|
-
"Per
|
|
21
|
+
"Per Device (N)": "Por dispositivo (N)",
|
|
22
|
+
"Per Premise (P)": "Por instalação (P)",
|
|
23
23
|
Recommended: "Recomendado",
|
|
24
24
|
"One sequence per business premise. Simpler to manage.":
|
|
25
25
|
"Uma sequência por instalação comercial. Mais simples de gerir.",
|
|
@@ -18,8 +18,8 @@ export default {
|
|
|
18
18
|
"Registrirajte vsaj en poslovni prostor, preden fiskalizirate račune",
|
|
19
19
|
"Numbering Sequence": "Zaporedje številčenja",
|
|
20
20
|
"Choose how invoice numbers are sequenced": "Izberite način številčenja računov",
|
|
21
|
-
"Per
|
|
22
|
-
"Per
|
|
21
|
+
"Per Device (N)": "Po napravi (N)",
|
|
22
|
+
"Per Premise (P)": "Po prostoru (P)",
|
|
23
23
|
Recommended: "Priporočeno",
|
|
24
24
|
"One sequence per business premise. Simpler to manage.":
|
|
25
25
|
"Eno zaporedje na poslovni prostor. Enostavnejše za upravljanje.",
|
|
@@ -69,6 +69,11 @@ interface FursSettingsFormProps extends ComponentTranslationProps {
|
|
|
69
69
|
* Optional render prop to wrap each section with help content
|
|
70
70
|
*/
|
|
71
71
|
renderSection?: (section: SectionType, content: ReactNode) => ReactNode;
|
|
72
|
+
/**
|
|
73
|
+
* Hide user-specific operator section (for embed/API key contexts without user session).
|
|
74
|
+
* When true, the "Advanced Settings" entity-level operator fields are auto-expanded instead.
|
|
75
|
+
*/
|
|
76
|
+
hideUserOperatorSection?: boolean;
|
|
72
77
|
}
|
|
73
78
|
|
|
74
79
|
/**
|
|
@@ -92,6 +97,7 @@ export const FursSettingsForm: FC<FursSettingsFormProps> = ({
|
|
|
92
97
|
initialStep = "settings",
|
|
93
98
|
onStepChange,
|
|
94
99
|
renderSection,
|
|
100
|
+
hideUserOperatorSection,
|
|
95
101
|
}) => {
|
|
96
102
|
// Step navigation state (can be controlled via props for URL sync)
|
|
97
103
|
const [activeStep, setActiveStep] = useState<StepType>(initialStep);
|
|
@@ -117,7 +123,9 @@ export const FursSettingsForm: FC<FursSettingsFormProps> = ({
|
|
|
117
123
|
// Fetch FURS settings and premises
|
|
118
124
|
const { data: fursSettings, isLoading: settingsLoading } = useFursSettings(entity.id);
|
|
119
125
|
const { data: premises, isLoading: premisesLoading } = useFursPremises(entity.id);
|
|
120
|
-
const { data: userFursSettings } = useUserFursSettings(entity.id
|
|
126
|
+
const { data: userFursSettings } = useUserFursSettings(entity.id, {
|
|
127
|
+
enabled: !hideUserOperatorSection,
|
|
128
|
+
});
|
|
121
129
|
|
|
122
130
|
const { mutate: updateSettings, isPending } = useUpdateFursSettings({
|
|
123
131
|
onSuccess: () => {
|
|
@@ -388,6 +396,7 @@ export const FursSettingsForm: FC<FursSettingsFormProps> = ({
|
|
|
388
396
|
onSuccess={onSuccess}
|
|
389
397
|
onError={onError}
|
|
390
398
|
wrapSection={wrapSection}
|
|
399
|
+
hideUserOperatorSection={hideUserOperatorSection}
|
|
391
400
|
/>
|
|
392
401
|
)}
|
|
393
402
|
|
|
@@ -277,8 +277,13 @@ export function useCurrentUser(options?: Omit<UseQueryOptions<User>, "queryKey"
|
|
|
277
277
|
* Hook: Get user FURS settings for a specific entity
|
|
278
278
|
* Extracts FURS settings from user.settings using the furs_<entity_id> key
|
|
279
279
|
*/
|
|
280
|
-
export function useUserFursSettings(entityId: string) {
|
|
281
|
-
const {
|
|
280
|
+
export function useUserFursSettings(entityId: string, options?: { enabled?: boolean }) {
|
|
281
|
+
const {
|
|
282
|
+
data: user,
|
|
283
|
+
isLoading,
|
|
284
|
+
error,
|
|
285
|
+
...rest
|
|
286
|
+
} = useCurrentUser(options?.enabled === false ? { enabled: false } : undefined);
|
|
282
287
|
|
|
283
288
|
const userFursSettings = useMemo<UserFursSettings | null>(() => {
|
|
284
289
|
if (!user?.settings) return null;
|
|
@@ -183,7 +183,6 @@ export default {
|
|
|
183
183
|
"Save Operator Settings": "Save Operator Settings",
|
|
184
184
|
"Your tax number for FURS fiscalization": "Your tax number for FURS fiscalization",
|
|
185
185
|
"Descriptive label for the operator (e.g. Cashier 1)": "Descriptive label for the operator (e.g. Cashier 1)",
|
|
186
|
-
"e.g. Cashier 1": "e.g. Cashier 1",
|
|
187
186
|
"Fiscalization Settings": "Fiscalization Settings",
|
|
188
187
|
"Advanced Settings": "Advanced Settings",
|
|
189
188
|
"API Default Operator": "API Default Operator",
|
|
@@ -20,6 +20,7 @@ interface GeneralSettingsSectionProps {
|
|
|
20
20
|
onSuccess?: () => void;
|
|
21
21
|
onError?: (error: unknown) => void;
|
|
22
22
|
wrapSection?: (section: SectionType, content: ReactNode) => ReactNode;
|
|
23
|
+
hideUserOperatorSection?: boolean;
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
export const GeneralSettingsSection: FC<GeneralSettingsSectionProps> = ({
|
|
@@ -29,9 +30,10 @@ export const GeneralSettingsSection: FC<GeneralSettingsSectionProps> = ({
|
|
|
29
30
|
onSuccess,
|
|
30
31
|
onError,
|
|
31
32
|
wrapSection,
|
|
33
|
+
hideUserOperatorSection,
|
|
32
34
|
}) => {
|
|
33
35
|
const wrap = (section: SectionType, content: ReactNode) => (wrapSection ? wrapSection(section, content) : content);
|
|
34
|
-
const [isAdvancedOpen, setIsAdvancedOpen] = useState(
|
|
36
|
+
const [isAdvancedOpen, setIsAdvancedOpen] = useState(!!hideUserOperatorSection);
|
|
35
37
|
|
|
36
38
|
// Entity info (local state for form)
|
|
37
39
|
const [entityTaxNumber, setEntityTaxNumber] = useState("");
|
|
@@ -65,7 +67,9 @@ export const GeneralSettingsSection: FC<GeneralSettingsSectionProps> = ({
|
|
|
65
67
|
};
|
|
66
68
|
|
|
67
69
|
// User operator settings (local state for form)
|
|
68
|
-
const { data: userFursSettings, isLoading: userSettingsLoading } = useUserFursSettings(entity.id
|
|
70
|
+
const { data: userFursSettings, isLoading: userSettingsLoading } = useUserFursSettings(entity.id, {
|
|
71
|
+
enabled: !hideUserOperatorSection,
|
|
72
|
+
});
|
|
69
73
|
const [operatorTaxNumber, setOperatorTaxNumber] = useState("");
|
|
70
74
|
const [operatorLabel, setOperatorLabel] = useState("");
|
|
71
75
|
|
|
@@ -375,8 +379,12 @@ export const GeneralSettingsSection: FC<GeneralSettingsSectionProps> = ({
|
|
|
375
379
|
<div className="space-y-6">
|
|
376
380
|
{wrap("entity-info", entityInfoContent)}
|
|
377
381
|
<Separator />
|
|
378
|
-
{
|
|
379
|
-
|
|
382
|
+
{!hideUserOperatorSection && (
|
|
383
|
+
<>
|
|
384
|
+
{wrap("operator", operatorContent)}
|
|
385
|
+
<Separator />
|
|
386
|
+
</>
|
|
387
|
+
)}
|
|
380
388
|
{wrap("fiscalization", fiscalizationContent)}
|
|
381
389
|
<Separator />
|
|
382
390
|
{wrap("advanced", advancedContent)}
|
|
@@ -7,7 +7,9 @@ export default {
|
|
|
7
7
|
Modern: "Modern",
|
|
8
8
|
"Modern template description": "Klares, professionelles Design für die meisten Unternehmen geeignet",
|
|
9
9
|
Classic: "Klassisch",
|
|
10
|
-
"Classic template description": "
|
|
10
|
+
"Classic template description": "Lato-Schrift-Design mit farbiger Datenbox und abwechselnden Zeilenhintergründen",
|
|
11
|
+
Condensed: "Kompakt",
|
|
12
|
+
"Condensed template description": "Traditioneller Rechnungsstil mit Rahmen und kompaktem Layout",
|
|
11
13
|
Minimal: "Minimal",
|
|
12
14
|
"Minimal template description": "Typografie-fokussiertes Design mit klarer Ästhetik",
|
|
13
15
|
Fashion: "Mode",
|
|
@@ -7,7 +7,9 @@ export default {
|
|
|
7
7
|
Modern: "Moderna",
|
|
8
8
|
"Modern template description": "Diseño limpio y profesional adecuado para la mayoría de las empresas",
|
|
9
9
|
Classic: "Clásica",
|
|
10
|
-
"Classic template description": "Diseño
|
|
10
|
+
"Classic template description": "Diseño con fuente Lato, caja de datos con color y fondos de filas alternos",
|
|
11
|
+
Condensed: "Compacta",
|
|
12
|
+
"Condensed template description": "Diseño tradicional de factura con bordes y disposición compacta",
|
|
11
13
|
Minimal: "Minimalista",
|
|
12
14
|
"Minimal template description": "Diseño centrado en la tipografía con una estética limpia",
|
|
13
15
|
Fashion: "Fashion",
|
|
@@ -7,7 +7,10 @@ export default {
|
|
|
7
7
|
Modern: "Moderne",
|
|
8
8
|
"Modern template description": "Design épuré et professionnel adapté à la plupart des entreprises",
|
|
9
9
|
Classic: "Classique",
|
|
10
|
-
"Classic template description":
|
|
10
|
+
"Classic template description":
|
|
11
|
+
"Design avec police Lato, boîte de données colorée et arrière-plans de lignes alternés",
|
|
12
|
+
Condensed: "Condensé",
|
|
13
|
+
"Condensed template description": "Mise en page traditionnelle avec bordures et disposition compacte",
|
|
11
14
|
Minimal: "Minimaliste",
|
|
12
15
|
"Minimal template description": "Design axé sur la typographie avec une esthétique épurée",
|
|
13
16
|
Fashion: "Fashion",
|
|
@@ -7,7 +7,10 @@ export default {
|
|
|
7
7
|
Modern: "Moderan",
|
|
8
8
|
"Modern template description": "Čist, profesionalan dizajn prikladan za većinu tvrtki",
|
|
9
9
|
Classic: "Klasičan",
|
|
10
|
-
"Classic template description":
|
|
10
|
+
"Classic template description":
|
|
11
|
+
"Dizajn s Lato fontom, obojenom podatkovnom kutijom i izmjenjujućim pozadinama redaka",
|
|
12
|
+
Condensed: "Kompaktan",
|
|
13
|
+
"Condensed template description": "Tradicionalni raspored računa s okvirima i kompaktnim rasporedom",
|
|
11
14
|
Minimal: "Minimalistički",
|
|
12
15
|
"Minimal template description": "Tipografski usmjeren dizajn s čistom estetikom",
|
|
13
16
|
Fashion: "Fashion",
|
|
@@ -7,7 +7,9 @@ export default {
|
|
|
7
7
|
Modern: "Moderno",
|
|
8
8
|
"Modern template description": "Design pulito e professionale adatto alla maggior parte delle aziende",
|
|
9
9
|
Classic: "Classico",
|
|
10
|
-
"Classic template description": "
|
|
10
|
+
"Classic template description": "Design con font Lato, riquadro dati colorato e sfondi di riga alternati",
|
|
11
|
+
Condensed: "Compatto",
|
|
12
|
+
"Condensed template description": "Layout tradizionale per fatture con bordi e disposizione compatta",
|
|
11
13
|
Minimal: "Minimale",
|
|
12
14
|
"Minimal template description": "Design incentrato sulla tipografia con un'estetica pulita",
|
|
13
15
|
Fashion: "Fashion",
|
|
@@ -6,7 +6,9 @@ export default {
|
|
|
6
6
|
Modern: "Modern",
|
|
7
7
|
"Modern template description": "Strak, professioneel ontwerp geschikt voor de meeste bedrijven",
|
|
8
8
|
Classic: "Klassiek",
|
|
9
|
-
"Classic template description": "
|
|
9
|
+
"Classic template description": "Ontwerp met Lato-lettertype, gekleurd gegevensvak en afwisselende rijachtergronden",
|
|
10
|
+
Condensed: "Compact",
|
|
11
|
+
"Condensed template description": "Traditionele factuurindeling met kaders en compacte weergave",
|
|
10
12
|
Minimal: "Minimalistisch",
|
|
11
13
|
"Minimal template description": "Typografisch gericht ontwerp met een strakke esthetiek",
|
|
12
14
|
Fashion: "Fashion",
|
|
@@ -7,7 +7,9 @@ export default {
|
|
|
7
7
|
Modern: "Nowoczesny",
|
|
8
8
|
"Modern template description": "Czysty, profesjonalny design odpowiedni dla większości firm",
|
|
9
9
|
Classic: "Klasyczny",
|
|
10
|
-
"Classic template description": "
|
|
10
|
+
"Classic template description": "Design z czcionką Lato, kolorowym polem danych i naprzemiennymi tłami wierszy",
|
|
11
|
+
Condensed: "Kompaktowy",
|
|
12
|
+
"Condensed template description": "Tradycyjny układ faktury z ramkami i kompaktowym rozmieszczeniem",
|
|
11
13
|
Minimal: "Minimalistyczny",
|
|
12
14
|
"Minimal template description": "Design skoncentrowany na typografii z czystą estetyką",
|
|
13
15
|
Fashion: "Fashion",
|
|
@@ -7,7 +7,9 @@ export default {
|
|
|
7
7
|
Modern: "Moderno",
|
|
8
8
|
"Modern template description": "Design limpo e profissional adequado para a maioria das empresas",
|
|
9
9
|
Classic: "Clássico",
|
|
10
|
-
"Classic template description": "
|
|
10
|
+
"Classic template description": "Design com fonte Lato, caixa de dados colorida e fundos de linhas alternados",
|
|
11
|
+
Condensed: "Compacto",
|
|
12
|
+
"Condensed template description": "Layout tradicional de fatura com bordas e disposição compacta",
|
|
11
13
|
Minimal: "Minimalista",
|
|
12
14
|
"Minimal template description": "Design focado na tipografia com uma estética limpa",
|
|
13
15
|
Fashion: "Fashion",
|
|
@@ -7,7 +7,9 @@ export default {
|
|
|
7
7
|
Modern: "Moderna",
|
|
8
8
|
"Modern template description": "Čista, profesionalna oblika primerna za večino podjetij",
|
|
9
9
|
Classic: "Klasična",
|
|
10
|
-
"Classic template description": "
|
|
10
|
+
"Classic template description": "Oblika z Lato pisavo, barvnim okvirjem podatkov in izmenjujočimi ozadji vrstic",
|
|
11
|
+
Condensed: "Kompaktna",
|
|
12
|
+
"Condensed template description": "Tradicionalna oblika računa z okvirji in kompaktno postavitvijo",
|
|
11
13
|
Minimal: "Minimalistična",
|
|
12
14
|
"Minimal template description": "Tipografsko osredotočena oblika s čisto estetiko",
|
|
13
15
|
Fashion: "Modna",
|
|
@@ -9,6 +9,7 @@ const TEMPLATES: Array<{
|
|
|
9
9
|
}> = [
|
|
10
10
|
{ id: "modern", nameKey: "Modern", descriptionKey: "Modern template description" },
|
|
11
11
|
{ id: "classic", nameKey: "Classic", descriptionKey: "Classic template description" },
|
|
12
|
+
{ id: "condensed", nameKey: "Condensed", descriptionKey: "Condensed template description" },
|
|
12
13
|
{ id: "minimal", nameKey: "Minimal", descriptionKey: "Minimal template description" },
|
|
13
14
|
{ id: "fashion", nameKey: "Fashion", descriptionKey: "Fashion template description" },
|
|
14
15
|
];
|