@vendure/dashboard 3.7.2 → 3.7.3-master-202608050305
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle/chunks/{2SSKDMRQ-CMBxVbIh.js → 2SSKDMRQ-KZUCTCnr.js} +2 -2
- package/dist/bundle/chunks/{AP7HFJJL-PAkY4fBC.js → AP7HFJJL-kxZStlpP.js} +1 -1
- package/dist/bundle/chunks/{WDYDFRGG-xJgIWAuv.js → WDYDFRGG-BZRK2ITZ.js} +2 -2
- package/dist/bundle/chunks/ar-C8HyGurR.js +4 -0
- package/dist/bundle/chunks/bg--aJe6weI.js +4 -0
- package/dist/bundle/chunks/cs-DiORN27q.js +4 -0
- package/dist/bundle/chunks/de-BIbDqHi0.js +4 -0
- package/dist/bundle/chunks/en-BIXvudTL.js +4 -0
- package/dist/bundle/chunks/es-CtrB4rBI.js +4 -0
- package/dist/bundle/chunks/fa-psHxNGfe.js +4 -0
- package/dist/bundle/chunks/fr-C5nCJ4dT.js +4 -0
- package/dist/bundle/chunks/he-Bf9mrxS9.js +4 -0
- package/dist/bundle/chunks/hr-ukhxxcHj.js +4 -0
- package/dist/bundle/chunks/hu-C5Rw37rH.js +4 -0
- package/dist/bundle/chunks/it-9Wz02yYH.js +4 -0
- package/dist/bundle/chunks/ja-Dws9HYMD.js +4 -0
- package/dist/bundle/chunks/ko-BvE54r17.js +4 -0
- package/dist/bundle/chunks/{locale-BSCAi77j.js → locale-CJZpQnsu.js} +1 -1
- package/dist/bundle/chunks/{main-D8aGWlid.js → main-Df4f8P5A.js} +169 -40
- package/dist/bundle/chunks/nb-C5b8s5AZ.js +4 -0
- package/dist/bundle/chunks/ne-DidgSoes.js +4 -0
- package/dist/bundle/chunks/nl-Bs2EmoET.js +4 -0
- package/dist/bundle/chunks/pl-ByMSgi7e.js +4 -0
- package/dist/bundle/chunks/pt_BR-CTGGI34p.js +4 -0
- package/dist/bundle/chunks/pt_PT-BMabWU8-.js +4 -0
- package/dist/bundle/chunks/ro-DLijHEde.js +4 -0
- package/dist/bundle/chunks/ru-sL_M_iwR.js +4 -0
- package/dist/bundle/chunks/sv-C6w42jAh.js +4 -0
- package/dist/bundle/chunks/tr-Lr8P315q.js +4 -0
- package/dist/bundle/chunks/uk-5I_XIBoN.js +4 -0
- package/dist/bundle/chunks/{use-job-queue-polling-D8i6-8rR.js → use-job-queue-polling-BjEkkz66.js} +291 -70
- package/dist/bundle/chunks/uz-BjRS1co1.js +4 -0
- package/dist/bundle/chunks/zh_Hans-Bqmum3_n.js +4 -0
- package/dist/bundle/chunks/zh_Hant-pqbmvylJ.js +4 -0
- package/dist/bundle/dashboard.css +12 -0
- package/dist/bundle/lib.js +2 -2
- package/dist/bundle/main.js +2 -2
- package/package.json +3 -3
- package/src/app/routes/_authenticated/_orders/components/customer-address-selector.tsx +172 -41
- package/src/app/routes/_authenticated/_orders/orders_.$id_.modify.tsx +22 -0
- package/src/app/routes/_authenticated/_orders/orders_.draft.$id.tsx +61 -38
- package/src/app/routes/_authenticated/_orders/utils/use-modify-order.ts +26 -0
- package/src/i18n/locales/ar.po +69 -9
- package/src/i18n/locales/bg.po +69 -9
- package/src/i18n/locales/cs.po +69 -9
- package/src/i18n/locales/de.po +69 -9
- package/src/i18n/locales/en.po +69 -9
- package/src/i18n/locales/es.po +69 -9
- package/src/i18n/locales/fa.po +69 -9
- package/src/i18n/locales/fr.po +69 -9
- package/src/i18n/locales/he.po +69 -9
- package/src/i18n/locales/hr.po +69 -9
- package/src/i18n/locales/hu.po +69 -9
- package/src/i18n/locales/it.po +69 -9
- package/src/i18n/locales/ja.po +69 -9
- package/src/i18n/locales/ko.po +69 -9
- package/src/i18n/locales/nb.po +69 -9
- package/src/i18n/locales/ne.po +69 -9
- package/src/i18n/locales/nl.po +69 -9
- package/src/i18n/locales/pl.po +69 -9
- package/src/i18n/locales/pt_BR.po +69 -9
- package/src/i18n/locales/pt_PT.po +69 -9
- package/src/i18n/locales/ro.po +69 -9
- package/src/i18n/locales/ru.po +69 -9
- package/src/i18n/locales/sv.po +69 -9
- package/src/i18n/locales/tr.po +69 -9
- package/src/i18n/locales/uk.po +69 -9
- package/src/i18n/locales/uz.po +69 -9
- package/src/i18n/locales/zh_Hans.po +69 -9
- package/src/i18n/locales/zh_Hant.po +69 -9
- package/src/lib/components/shared/assign-to-channel-dialog.tsx +56 -31
- package/src/lib/components/shared/assign-to-channels.spec.ts +45 -0
- package/src/lib/components/shared/assign-to-channels.ts +31 -0
- package/src/lib/components/shared/customer-address-form.tsx +51 -36
- package/src/lib/components/shared/customer-selector.tsx +221 -39
- package/src/lib/framework/form-engine/form-schema-tools.spec.ts +48 -0
- package/src/lib/framework/form-engine/form-schema-tools.ts +1 -1
- package/src/lib/framework/page/list-page.spec.tsx +62 -0
- package/src/lib/framework/page/list-page.tsx +27 -0
- package/src/lib/graphql/common-operations.ts +33 -0
- package/dist/bundle/chunks/ar-DATX7H2x.js +0 -4
- package/dist/bundle/chunks/bg-DHS8PDKd.js +0 -4
- package/dist/bundle/chunks/cs-CGhaHD2Z.js +0 -4
- package/dist/bundle/chunks/de-BMtF5EY3.js +0 -4
- package/dist/bundle/chunks/en-DucAVNrv.js +0 -4
- package/dist/bundle/chunks/es-FBktM7AP.js +0 -4
- package/dist/bundle/chunks/fa-Dl5QN-Zp.js +0 -4
- package/dist/bundle/chunks/fr-TPBsPGD2.js +0 -4
- package/dist/bundle/chunks/he-CvNLNPHS.js +0 -4
- package/dist/bundle/chunks/hr-7QRa6pq0.js +0 -4
- package/dist/bundle/chunks/hu-BUCwangz.js +0 -4
- package/dist/bundle/chunks/it-DcVNes47.js +0 -4
- package/dist/bundle/chunks/ja-C-C3Z-2D.js +0 -4
- package/dist/bundle/chunks/ko-B41VP-2G.js +0 -4
- package/dist/bundle/chunks/nb-q5my_SIJ.js +0 -4
- package/dist/bundle/chunks/ne-DksEv0gd.js +0 -4
- package/dist/bundle/chunks/nl-BEWvhJPb.js +0 -4
- package/dist/bundle/chunks/pl-DRf5xQAy.js +0 -4
- package/dist/bundle/chunks/pt_BR-DEOQ9Vgg.js +0 -4
- package/dist/bundle/chunks/pt_PT-DvDBycjC.js +0 -4
- package/dist/bundle/chunks/ro-CNbK5V7l.js +0 -4
- package/dist/bundle/chunks/ru-BJ395nXO.js +0 -4
- package/dist/bundle/chunks/sv-Bxi6B55d.js +0 -4
- package/dist/bundle/chunks/tr-D2FNyrS9.js +0 -4
- package/dist/bundle/chunks/uk-C3iewRAE.js +0 -4
- package/dist/bundle/chunks/uz-DDVd9bpR.js +0 -4
- package/dist/bundle/chunks/zh_Hans-DFK1UiKv.js +0 -4
- package/dist/bundle/chunks/zh_Hant-BWs2-32i.js +0 -4
|
@@ -11,6 +11,7 @@ import { addCustomFields } from '@/vdb/framework/document-introspection/add-cust
|
|
|
11
11
|
import { useCustomFieldConfig } from '@/vdb/hooks/use-custom-field-config.js';
|
|
12
12
|
import { getDetailQueryOptions, useDetailPage } from '@/vdb/framework/page/use-detail-page.js';
|
|
13
13
|
import { api } from '@/vdb/graphql/api.js';
|
|
14
|
+
import { type CreateAddressInput } from '@/vdb/graphql/common-operations.js';
|
|
14
15
|
import { Trans, useLingui } from '@lingui/react/macro';
|
|
15
16
|
import { useQuery, useQueryClient } from '@tanstack/react-query';
|
|
16
17
|
import { createFileRoute, Link, useNavigate } from '@tanstack/react-router';
|
|
@@ -88,6 +89,8 @@ function ModifyOrderPage() {
|
|
|
88
89
|
removeCouponCode,
|
|
89
90
|
updateShippingAddress: updateShippingAddressInInput,
|
|
90
91
|
updateBillingAddress: updateBillingAddressInInput,
|
|
92
|
+
updateShippingAddressRaw: updateShippingAddressRawInInput,
|
|
93
|
+
updateBillingAddressRaw: updateBillingAddressRawInInput,
|
|
91
94
|
addSurcharge,
|
|
92
95
|
setNote,
|
|
93
96
|
setRecalculateShipping,
|
|
@@ -109,6 +112,17 @@ function ModifyOrderPage() {
|
|
|
109
112
|
setEditingBillingAddress(false);
|
|
110
113
|
}
|
|
111
114
|
|
|
115
|
+
function handleSubmitNewShippingAddress({ customFields, ...input }: CreateAddressInput) {
|
|
116
|
+
// `customFields` is not part of `UpdateOrderAddressInput`, so modifyOrder rejects it
|
|
117
|
+
updateShippingAddressRawInInput(input);
|
|
118
|
+
setEditingShippingAddress(false);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
function handleSubmitNewBillingAddress({ customFields, ...input }: CreateAddressInput) {
|
|
122
|
+
updateBillingAddressRawInInput(input);
|
|
123
|
+
setEditingBillingAddress(false);
|
|
124
|
+
}
|
|
125
|
+
|
|
112
126
|
const [previewOpen, setPreviewOpen] = useState(false);
|
|
113
127
|
|
|
114
128
|
if (!entity) {
|
|
@@ -250,7 +264,11 @@ function ModifyOrderPage() {
|
|
|
250
264
|
<CustomerAddressSelector
|
|
251
265
|
customerId={entity.customer?.id}
|
|
252
266
|
onSelect={handleSelectShippingAddress}
|
|
267
|
+
onSubmitNew={handleSubmitNewShippingAddress}
|
|
253
268
|
onCancel={() => setEditingShippingAddress(false)}
|
|
269
|
+
initialAddress={shippingAddress}
|
|
270
|
+
currentAddress={shippingAddress}
|
|
271
|
+
submitLabel={<Trans>Update address</Trans>}
|
|
254
272
|
defaultOpen
|
|
255
273
|
/>
|
|
256
274
|
) : (
|
|
@@ -279,7 +297,11 @@ function ModifyOrderPage() {
|
|
|
279
297
|
<CustomerAddressSelector
|
|
280
298
|
customerId={entity.customer?.id}
|
|
281
299
|
onSelect={handleSelectBillingAddress}
|
|
300
|
+
onSubmitNew={handleSubmitNewBillingAddress}
|
|
282
301
|
onCancel={() => setEditingBillingAddress(false)}
|
|
302
|
+
initialAddress={billingAddress}
|
|
303
|
+
currentAddress={billingAddress}
|
|
304
|
+
submitLabel={<Trans>Update address</Trans>}
|
|
283
305
|
defaultOpen
|
|
284
306
|
/>
|
|
285
307
|
) : (
|
|
@@ -163,7 +163,7 @@ function DraftOrderPage() {
|
|
|
163
163
|
},
|
|
164
164
|
});
|
|
165
165
|
|
|
166
|
-
const {
|
|
166
|
+
const { mutateAsync: setCustomerForDraftOrder } = useMutation({
|
|
167
167
|
mutationFn: api.mutate(setCustomerForDraftOrderDocument),
|
|
168
168
|
onSuccess: async (result: ResultOf<typeof setCustomerForDraftOrderDocument>) => {
|
|
169
169
|
const order = result.setCustomerForDraftOrder;
|
|
@@ -229,7 +229,7 @@ function DraftOrderPage() {
|
|
|
229
229
|
},
|
|
230
230
|
});
|
|
231
231
|
|
|
232
|
-
const {
|
|
232
|
+
const { mutateAsync: setShippingAddressForDraftOrder } = useMutation({
|
|
233
233
|
mutationFn: api.mutate(setShippingAddressForDraftOrderDocument),
|
|
234
234
|
onSuccess: (result: ResultOf<typeof setShippingAddressForDraftOrderDocument>) => {
|
|
235
235
|
toast.success(t`Shipping address set for order`);
|
|
@@ -240,7 +240,7 @@ function DraftOrderPage() {
|
|
|
240
240
|
},
|
|
241
241
|
});
|
|
242
242
|
|
|
243
|
-
const {
|
|
243
|
+
const { mutateAsync: setBillingAddressForDraftOrder } = useMutation({
|
|
244
244
|
mutationFn: api.mutate(setBillingAddressForDraftOrderDocument),
|
|
245
245
|
onSuccess: (result: ResultOf<typeof setBillingAddressForDraftOrderDocument>) => {
|
|
246
246
|
toast.success(t`Billing address set for order`);
|
|
@@ -502,53 +502,78 @@ function DraftOrderPage() {
|
|
|
502
502
|
</Button>
|
|
503
503
|
) : null}
|
|
504
504
|
<CustomerSelector
|
|
505
|
+
allowCreateNew
|
|
505
506
|
onSelect={customer => {
|
|
506
507
|
setCustomerForDraftOrder({ orderId: entity.id, customerId: customer.id });
|
|
507
508
|
}}
|
|
509
|
+
onCreateNew={async input => {
|
|
510
|
+
const result = await setCustomerForDraftOrder({ orderId: entity.id, input });
|
|
511
|
+
if (result.setCustomerForDraftOrder.__typename !== 'Order') {
|
|
512
|
+
// ErrorResult, not a transport error — mutateAsync resolves, so throw to
|
|
513
|
+
// keep the popover open with the entered values.
|
|
514
|
+
throw new Error(result.setCustomerForDraftOrder.message);
|
|
515
|
+
}
|
|
516
|
+
}}
|
|
508
517
|
/>
|
|
509
518
|
</PageBlock>
|
|
510
519
|
<PageBlock column="side" blockId="shipping-address" title={<Trans>Shipping address</Trans>}>
|
|
511
520
|
<div className="flex flex-col">
|
|
512
521
|
<OrderAddress address={entity.shippingAddress ?? undefined} />
|
|
513
|
-
|
|
514
|
-
<
|
|
515
|
-
|
|
522
|
+
<div className="mt-2 flex items-center gap-2">
|
|
523
|
+
<CustomerAddressSelector
|
|
524
|
+
customerId={entity.customer?.id}
|
|
525
|
+
onSelect={address => {
|
|
526
|
+
setShippingAddressForDraftOrder({
|
|
527
|
+
orderId: entity.id,
|
|
528
|
+
input: mapToAddressInput(address),
|
|
529
|
+
});
|
|
530
|
+
}}
|
|
531
|
+
onSubmitNew={async input => {
|
|
532
|
+
await setShippingAddressForDraftOrder({
|
|
533
|
+
orderId: entity.id,
|
|
534
|
+
input,
|
|
535
|
+
});
|
|
536
|
+
}}
|
|
537
|
+
initialAddress={entity.shippingAddress}
|
|
538
|
+
currentAddress={entity.shippingAddress}
|
|
539
|
+
submitLabel={<Trans>Okay</Trans>}
|
|
516
540
|
/>
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
customerId={entity.customer?.id}
|
|
521
|
-
onSelect={address => {
|
|
522
|
-
setShippingAddressForDraftOrder({
|
|
523
|
-
orderId: entity.id,
|
|
524
|
-
input: mapToAddressInput(address),
|
|
525
|
-
});
|
|
526
|
-
}}
|
|
541
|
+
{entity.shippingAddress?.streetLine1 && (
|
|
542
|
+
<RemoveAddressButton
|
|
543
|
+
onClick={() => unsetShippingAddressForDraftOrder({ orderId: entity.id })}
|
|
527
544
|
/>
|
|
528
|
-
|
|
529
|
-
|
|
545
|
+
)}
|
|
546
|
+
</div>
|
|
530
547
|
</div>
|
|
531
548
|
</PageBlock>
|
|
532
549
|
<PageBlock column="side" blockId="billing-address" title={<Trans>Billing address</Trans>}>
|
|
533
550
|
<div className="flex flex-col">
|
|
534
551
|
<OrderAddress address={entity.billingAddress ?? undefined} />
|
|
535
|
-
|
|
536
|
-
<
|
|
537
|
-
|
|
552
|
+
<div className="mt-2 flex items-center gap-2">
|
|
553
|
+
<CustomerAddressSelector
|
|
554
|
+
customerId={entity.customer?.id}
|
|
555
|
+
onSelect={address => {
|
|
556
|
+
setBillingAddressForDraftOrder({
|
|
557
|
+
orderId: entity.id,
|
|
558
|
+
input: mapToAddressInput(address),
|
|
559
|
+
});
|
|
560
|
+
}}
|
|
561
|
+
onSubmitNew={async input => {
|
|
562
|
+
await setBillingAddressForDraftOrder({
|
|
563
|
+
orderId: entity.id,
|
|
564
|
+
input,
|
|
565
|
+
});
|
|
566
|
+
}}
|
|
567
|
+
initialAddress={entity.billingAddress}
|
|
568
|
+
currentAddress={entity.billingAddress}
|
|
569
|
+
submitLabel={<Trans>Okay</Trans>}
|
|
538
570
|
/>
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
customerId={entity.customer?.id}
|
|
543
|
-
onSelect={address => {
|
|
544
|
-
setBillingAddressForDraftOrder({
|
|
545
|
-
orderId: entity.id,
|
|
546
|
-
input: mapToAddressInput(address),
|
|
547
|
-
});
|
|
548
|
-
}}
|
|
571
|
+
{entity.billingAddress?.streetLine1 && (
|
|
572
|
+
<RemoveAddressButton
|
|
573
|
+
onClick={() => unsetBillingAddressForDraftOrder({ orderId: entity.id })}
|
|
549
574
|
/>
|
|
550
|
-
|
|
551
|
-
|
|
575
|
+
)}
|
|
576
|
+
</div>
|
|
552
577
|
</div>
|
|
553
578
|
</PageBlock>
|
|
554
579
|
</PageLayout>
|
|
@@ -574,10 +599,8 @@ function mapToAddressInput(address: ResultOf<typeof addressFragment>) {
|
|
|
574
599
|
|
|
575
600
|
function RemoveAddressButton(props: { onClick: () => void }) {
|
|
576
601
|
return (
|
|
577
|
-
<
|
|
578
|
-
<
|
|
579
|
-
|
|
580
|
-
</Button>
|
|
581
|
-
</div>
|
|
602
|
+
<Button variant="outline" size="sm" onClick={props.onClick}>
|
|
603
|
+
<Trans>Remove</Trans>
|
|
604
|
+
</Button>
|
|
582
605
|
);
|
|
583
606
|
}
|
|
@@ -35,6 +35,8 @@ export interface UseModifyOrderReturn {
|
|
|
35
35
|
removeCouponCode: (params: { couponCode: string }) => void;
|
|
36
36
|
updateShippingAddress: (address: AddressFragment) => void;
|
|
37
37
|
updateBillingAddress: (address: AddressFragment) => void;
|
|
38
|
+
updateShippingAddressRaw: (input: NonNullable<ModifyOrderInput['updateShippingAddress']>) => void;
|
|
39
|
+
updateBillingAddressRaw: (input: NonNullable<ModifyOrderInput['updateBillingAddress']>) => void;
|
|
38
40
|
addSurcharge: (surcharge: SurchargeInput) => void;
|
|
39
41
|
setNote: (note: string) => void;
|
|
40
42
|
setRecalculateShipping: (recalculate: boolean) => void;
|
|
@@ -291,6 +293,28 @@ export function useModifyOrder(order: Order | null | undefined): UseModifyOrderR
|
|
|
291
293
|
}));
|
|
292
294
|
}, []);
|
|
293
295
|
|
|
296
|
+
// Update shipping address from a raw input (e.g. a new ad-hoc address entered inline)
|
|
297
|
+
const updateShippingAddressRaw = useCallback(
|
|
298
|
+
(input: NonNullable<ModifyOrderInput['updateShippingAddress']>) => {
|
|
299
|
+
setModifyOrderInput(prev => ({
|
|
300
|
+
...prev,
|
|
301
|
+
updateShippingAddress: input,
|
|
302
|
+
}));
|
|
303
|
+
},
|
|
304
|
+
[],
|
|
305
|
+
);
|
|
306
|
+
|
|
307
|
+
// Update billing address from a raw input (e.g. a new ad-hoc address entered inline)
|
|
308
|
+
const updateBillingAddressRaw = useCallback(
|
|
309
|
+
(input: NonNullable<ModifyOrderInput['updateBillingAddress']>) => {
|
|
310
|
+
setModifyOrderInput(prev => ({
|
|
311
|
+
...prev,
|
|
312
|
+
updateBillingAddress: input,
|
|
313
|
+
}));
|
|
314
|
+
},
|
|
315
|
+
[],
|
|
316
|
+
);
|
|
317
|
+
|
|
294
318
|
// Add surcharge
|
|
295
319
|
const addSurcharge = useCallback((surcharge: SurchargeInput) => {
|
|
296
320
|
setModifyOrderInput(prev => ({
|
|
@@ -342,6 +366,8 @@ export function useModifyOrder(order: Order | null | undefined): UseModifyOrderR
|
|
|
342
366
|
removeCouponCode,
|
|
343
367
|
updateShippingAddress,
|
|
344
368
|
updateBillingAddress,
|
|
369
|
+
updateShippingAddressRaw,
|
|
370
|
+
updateBillingAddressRaw,
|
|
345
371
|
addSurcharge,
|
|
346
372
|
setNote,
|
|
347
373
|
setRecalculateShipping,
|
package/src/i18n/locales/ar.po
CHANGED
|
@@ -345,6 +345,7 @@ msgstr "اكتب حرفين على الأقل للبحث..."
|
|
|
345
345
|
#: src/app/routes/_authenticated/_administrators/administrators_.$id.tsx
|
|
346
346
|
#: src/app/routes/_authenticated/_customers/customers_.$id.tsx
|
|
347
347
|
#: src/app/routes/_authenticated/_profile/profile.tsx
|
|
348
|
+
#: src/lib/components/shared/customer-selector.tsx
|
|
348
349
|
msgid "Last name"
|
|
349
350
|
msgstr "اسم العائلة"
|
|
350
351
|
|
|
@@ -514,6 +515,10 @@ msgstr "تم إنشاء خيار المنتج بنجاح"
|
|
|
514
515
|
msgid "Parent product"
|
|
515
516
|
msgstr "المنتج الأساسي"
|
|
516
517
|
|
|
518
|
+
#: src/lib/components/shared/customer-selector.tsx
|
|
519
|
+
msgid "Create new customer"
|
|
520
|
+
msgstr ""
|
|
521
|
+
|
|
517
522
|
#: src/app/routes/_authenticated/_shipping-methods/components/test-address-form.tsx
|
|
518
523
|
#: src/lib/components/shared/customer-address-form.tsx
|
|
519
524
|
msgid "City"
|
|
@@ -541,6 +546,14 @@ msgstr "إزالة الرابط"
|
|
|
541
546
|
msgid "This field is readonly"
|
|
542
547
|
msgstr "هذا الحقل للقراءة فقط"
|
|
543
548
|
|
|
549
|
+
#. placeholder {0}: succeeded.length
|
|
550
|
+
#. placeholder {1}: succeeded.length
|
|
551
|
+
#. placeholder {2}: succeeded.length
|
|
552
|
+
#: src/lib/components/shared/assign-to-channel-dialog.tsx
|
|
553
|
+
#: src/lib/components/shared/assign-to-channel-dialog.tsx
|
|
554
|
+
msgid "{0, plural, one {Assigned {entityIdsLength} {entityType} to {1} channel} other {Assigned {entityIdsLength} {entityType} to {2} channels}}"
|
|
555
|
+
msgstr ""
|
|
556
|
+
|
|
544
557
|
#: src/lib/framework/dashboard-widget/metrics-widget/index.tsx
|
|
545
558
|
#: src/lib/framework/dashboard-widget/metrics-widget/index.tsx
|
|
546
559
|
msgid "Order Count"
|
|
@@ -743,6 +756,10 @@ msgstr "تاريخ قصير"
|
|
|
743
756
|
msgid "Available currencies"
|
|
744
757
|
msgstr "العملات المتاحة"
|
|
745
758
|
|
|
759
|
+
#: src/lib/components/shared/customer-selector.tsx
|
|
760
|
+
msgid "Search customers..."
|
|
761
|
+
msgstr ""
|
|
762
|
+
|
|
746
763
|
#. placeholder {0}: selectedIds.size
|
|
747
764
|
#: src/lib/components/data-input/product-multi-selector-input.tsx
|
|
748
765
|
msgid "Select {0} Items"
|
|
@@ -916,6 +933,11 @@ msgstr "فشل إنشاء المنتج"
|
|
|
916
933
|
msgid "Customer"
|
|
917
934
|
msgstr "العميل"
|
|
918
935
|
|
|
936
|
+
#: src/app/routes/_authenticated/_orders/orders_.$id_.modify.tsx
|
|
937
|
+
#: src/app/routes/_authenticated/_orders/orders_.$id_.modify.tsx
|
|
938
|
+
msgid "Update address"
|
|
939
|
+
msgstr ""
|
|
940
|
+
|
|
919
941
|
#. placeholder {0}: error.message
|
|
920
942
|
#: src/app/routes/_authenticated/_orders/components/order-history/order-history-container.tsx
|
|
921
943
|
msgid "Error loading order history: {0}"
|
|
@@ -1164,6 +1186,7 @@ msgid "Assets"
|
|
|
1164
1186
|
msgstr "الملفات"
|
|
1165
1187
|
|
|
1166
1188
|
#: src/app/routes/_authenticated/_customers/customers_.$id.tsx
|
|
1189
|
+
#: src/lib/components/shared/customer-selector.tsx
|
|
1167
1190
|
msgid "Email address"
|
|
1168
1191
|
msgstr "عنوان البريد الإلكتروني"
|
|
1169
1192
|
|
|
@@ -1657,6 +1680,7 @@ msgstr "الانتقال إلى الصفحة الأخيرة"
|
|
|
1657
1680
|
#: src/lib/components/shared/assign-to-channel-dialog.tsx
|
|
1658
1681
|
#: src/lib/components/shared/confirmation-dialog.tsx
|
|
1659
1682
|
#: src/lib/components/shared/customer-address-form.tsx
|
|
1683
|
+
#: src/lib/components/shared/customer-selector.tsx
|
|
1660
1684
|
#: src/lib/components/shared/navigation-confirmation.tsx
|
|
1661
1685
|
#: src/lib/components/shared/rich-text-editor/image-dialog.tsx
|
|
1662
1686
|
#: src/lib/components/shared/rich-text-editor/link-dialog.tsx
|
|
@@ -1754,6 +1778,10 @@ msgstr "فئات الضرائب"
|
|
|
1754
1778
|
msgid "Private collections are not visible in the shop"
|
|
1755
1779
|
msgstr "المجموعات الخاصة غير مرئية في المتجر"
|
|
1756
1780
|
|
|
1781
|
+
#: src/lib/components/shared/customer-selector.tsx
|
|
1782
|
+
msgid "Create customer"
|
|
1783
|
+
msgstr ""
|
|
1784
|
+
|
|
1757
1785
|
#: src/app/routes/_authenticated/_product-variants/product-variants_.$id.tsx
|
|
1758
1786
|
#: src/app/routes/_authenticated/_products/products_.$id.tsx
|
|
1759
1787
|
msgid "When enabled, a product is available in the shop"
|
|
@@ -2658,6 +2686,10 @@ msgstr "عرض البيانات"
|
|
|
2658
2686
|
msgid "Delete View"
|
|
2659
2687
|
msgstr "حذف العرض"
|
|
2660
2688
|
|
|
2689
|
+
#: src/lib/components/shared/assign-to-channel-dialog.tsx
|
|
2690
|
+
msgid "Failed to assign {entityIdsLength} {entityType} to the selected channels"
|
|
2691
|
+
msgstr ""
|
|
2692
|
+
|
|
2661
2693
|
#: src/app/routes/_authenticated/_customers/customers_.$id.tsx
|
|
2662
2694
|
msgid "Add a new address to the customer."
|
|
2663
2695
|
msgstr "أضف عنوانًا جديدًا للعميل."
|
|
@@ -3068,10 +3100,9 @@ msgstr "حفظ التغييرات"
|
|
|
3068
3100
|
msgid "Address updated"
|
|
3069
3101
|
msgstr "تم تحديث العنوان"
|
|
3070
3102
|
|
|
3071
|
-
#. placeholder {0}: selectedChannelIds.length
|
|
3072
3103
|
#: src/lib/components/shared/assign-to-channel-dialog.tsx
|
|
3073
|
-
msgid "Successfully assigned {entityIdsLength} {entityType} to {0} channels"
|
|
3074
|
-
msgstr ""
|
|
3104
|
+
#~ msgid "Successfully assigned {entityIdsLength} {entityType} to {0} channels"
|
|
3105
|
+
#~ msgstr ""
|
|
3075
3106
|
|
|
3076
3107
|
#: src/app/routes/_authenticated/_orders/hooks/use-refund-order.ts
|
|
3077
3108
|
msgid "Refund processed successfully"
|
|
@@ -3324,11 +3355,9 @@ msgstr "تعيين"
|
|
|
3324
3355
|
msgid "Successfully created seller"
|
|
3325
3356
|
msgstr "تم إنشاء البائع بنجاح"
|
|
3326
3357
|
|
|
3327
|
-
#. placeholder {0}: failedChannelIds.length
|
|
3328
|
-
#. placeholder {1}: selectedChannelIds.length
|
|
3329
3358
|
#: src/lib/components/shared/assign-to-channel-dialog.tsx
|
|
3330
|
-
msgid "Failed to assign {entityIdsLength} {entityType} to {0} of {1} channels"
|
|
3331
|
-
msgstr ""
|
|
3359
|
+
#~ msgid "Failed to assign {entityIdsLength} {entityType} to {0} of {1} channels"
|
|
3360
|
+
#~ msgstr ""
|
|
3332
3361
|
|
|
3333
3362
|
#: src/app/routes/_authenticated/_shipping-methods/shipping-methods_.$id.tsx
|
|
3334
3363
|
msgid "Successfully updated shipping method"
|
|
@@ -3450,8 +3479,8 @@ msgid "Shipping Methods"
|
|
|
3450
3479
|
msgstr "طرق الشحن"
|
|
3451
3480
|
|
|
3452
3481
|
#: src/app/routes/_authenticated/_orders/components/customer-address-selector.tsx
|
|
3453
|
-
msgid "Select an address"
|
|
3454
|
-
msgstr "حدد عنوانًا"
|
|
3482
|
+
#~ msgid "Select an address"
|
|
3483
|
+
#~ msgstr "حدد عنوانًا"
|
|
3455
3484
|
|
|
3456
3485
|
#: src/app/routes/_authenticated/_system/settings-store.tsx
|
|
3457
3486
|
msgid "Yes"
|
|
@@ -3508,6 +3537,10 @@ msgstr "لا يساوي"
|
|
|
3508
3537
|
#~ msgid "Refresh"
|
|
3509
3538
|
#~ msgstr "تحديث"
|
|
3510
3539
|
|
|
3540
|
+
#: src/lib/components/shared/customer-selector.tsx
|
|
3541
|
+
msgid "Existing customer"
|
|
3542
|
+
msgstr ""
|
|
3543
|
+
|
|
3511
3544
|
#: src/app/routes/_authenticated/_products/components/create-product-options-dialog.tsx
|
|
3512
3545
|
#~ msgid "e.g. Size"
|
|
3513
3546
|
#~ msgstr "مثل الحجم"
|
|
@@ -3555,6 +3588,10 @@ msgstr "تحديد عنصر"
|
|
|
3555
3588
|
msgid "New product"
|
|
3556
3589
|
msgstr "منتج جديد"
|
|
3557
3590
|
|
|
3591
|
+
#: src/lib/components/shared/assign-to-channel-dialog.tsx
|
|
3592
|
+
msgid "Failed for: {failedCodes}"
|
|
3593
|
+
msgstr ""
|
|
3594
|
+
|
|
3558
3595
|
#: src/app/routes/_authenticated/_assets/components/manage-tags-dialog.tsx
|
|
3559
3596
|
msgid "Manage Tags"
|
|
3560
3597
|
msgstr "إدارة العلامات"
|
|
@@ -3654,6 +3691,10 @@ msgstr "تم إنشاء قيمة الخاصية بنجاح"
|
|
|
3654
3691
|
msgid "Marketing"
|
|
3655
3692
|
msgstr "التسويق"
|
|
3656
3693
|
|
|
3694
|
+
#: src/app/routes/_authenticated/_orders/components/customer-address-selector.tsx
|
|
3695
|
+
msgid "Existing address"
|
|
3696
|
+
msgstr ""
|
|
3697
|
+
|
|
3657
3698
|
#: src/app/routes/_authenticated/_orders/orders_.draft.$id.tsx
|
|
3658
3699
|
msgid "Draft order deleted"
|
|
3659
3700
|
msgstr "تم حذف طلب المسودة"
|
|
@@ -3676,6 +3717,7 @@ msgid "Remove from channel"
|
|
|
3676
3717
|
msgstr "إزالة من القناة"
|
|
3677
3718
|
|
|
3678
3719
|
#: src/app/routes/_authenticated/_customers/customers_.$id.tsx
|
|
3720
|
+
#: src/lib/components/shared/customer-selector.tsx
|
|
3679
3721
|
#: src/lib/components/shared/rich-text-editor/image-dialog.tsx
|
|
3680
3722
|
msgid "Title"
|
|
3681
3723
|
msgstr "العنوان"
|
|
@@ -3715,6 +3757,13 @@ msgstr "{0} متغير"
|
|
|
3715
3757
|
msgid "Failed to settle payment"
|
|
3716
3758
|
msgstr "فشل تسوية الدفع"
|
|
3717
3759
|
|
|
3760
|
+
#. placeholder {0}: failed.length
|
|
3761
|
+
#. placeholder {1}: failed.length
|
|
3762
|
+
#. placeholder {2}: failed.length
|
|
3763
|
+
#: src/lib/components/shared/assign-to-channel-dialog.tsx
|
|
3764
|
+
msgid "{0, plural, one {Failed to assign {entityIdsLength} {entityType} to {1} channel} other {Failed to assign {entityIdsLength} {entityType} to {2} channels}}"
|
|
3765
|
+
msgstr ""
|
|
3766
|
+
|
|
3718
3767
|
#: src/app/routes/_authenticated/_orders/orders_.$id_.modify.tsx
|
|
3719
3768
|
msgid "No billing address"
|
|
3720
3769
|
msgstr "لا يوجد عنوان فوترة"
|
|
@@ -4885,6 +4934,10 @@ msgstr "تحرير الأعضاء"
|
|
|
4885
4934
|
msgid "Stock on hand"
|
|
4886
4935
|
msgstr "المخزون المتاح"
|
|
4887
4936
|
|
|
4937
|
+
#: src/app/routes/_authenticated/_orders/components/customer-address-selector.tsx
|
|
4938
|
+
msgid "New address"
|
|
4939
|
+
msgstr ""
|
|
4940
|
+
|
|
4888
4941
|
#: src/lib/components/data-table/data-table-filter-dialog.tsx
|
|
4889
4942
|
msgid "Filter by {columnId}"
|
|
4890
4943
|
msgstr "تصفية حسب {columnId}"
|
|
@@ -5310,6 +5363,11 @@ msgstr "اللغة الافتراضية"
|
|
|
5310
5363
|
msgid "Status"
|
|
5311
5364
|
msgstr "الحالة"
|
|
5312
5365
|
|
|
5366
|
+
#: src/app/routes/_authenticated/_orders/orders_.draft.$id.tsx
|
|
5367
|
+
#: src/app/routes/_authenticated/_orders/orders_.draft.$id.tsx
|
|
5368
|
+
msgid "Okay"
|
|
5369
|
+
msgstr ""
|
|
5370
|
+
|
|
5313
5371
|
#: src/lib/components/shared/configurable-operation-multi-selector.tsx
|
|
5314
5372
|
#: src/lib/components/shared/configurable-operation-selector.tsx
|
|
5315
5373
|
msgid "No options found"
|
|
@@ -5418,6 +5476,7 @@ msgstr "فشل في معالجة الاسترداد"
|
|
|
5418
5476
|
#: src/app/routes/_authenticated/_administrators/administrators_.$id.tsx
|
|
5419
5477
|
#: src/app/routes/_authenticated/_customers/customers_.$id.tsx
|
|
5420
5478
|
#: src/app/routes/_authenticated/_profile/profile.tsx
|
|
5479
|
+
#: src/lib/components/shared/customer-selector.tsx
|
|
5421
5480
|
msgid "First name"
|
|
5422
5481
|
msgstr "الاسم الأول"
|
|
5423
5482
|
|
|
@@ -6173,6 +6232,7 @@ msgid "Order process"
|
|
|
6173
6232
|
msgstr "عملية الطلب"
|
|
6174
6233
|
|
|
6175
6234
|
#: src/app/routes/_authenticated/_customers/customers_.$id.tsx
|
|
6235
|
+
#: src/lib/components/shared/customer-selector.tsx
|
|
6176
6236
|
msgid "Phone number"
|
|
6177
6237
|
msgstr "رقم الهاتف"
|
|
6178
6238
|
|