@vendure/dashboard 3.7.2-master-202607180305 → 3.7.2-master-202607220305
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-DlWAmBpQ.js → 2SSKDMRQ-BYUZEDFM.js} +2 -2
- package/dist/bundle/chunks/{AP7HFJJL-CcAoLsul.js → AP7HFJJL-C9ElHHxz.js} +1 -1
- package/dist/bundle/chunks/{WDYDFRGG-Cvm1r2UU.js → WDYDFRGG-Bfnowo_y.js} +2 -2
- package/dist/bundle/chunks/{locale-Dhjo0zFV.js → locale-M7cbtrsA.js} +1 -1
- package/dist/bundle/chunks/{main-BHusMbtB.js → main-B51h5LxL.js} +12 -4
- package/dist/bundle/chunks/{use-job-queue-polling-DKUd4UP0.js → use-job-queue-polling-Dhe9AG6q.js} +28 -10
- package/dist/bundle/lib.js +2 -2
- package/dist/bundle/main.js +2 -2
- package/package.json +3 -3
- package/src/app/routes/_authenticated/_customers/components/customer-history/use-customer-history.ts +7 -3
- package/src/app/routes/_authenticated/_customers/customers_.$id.tsx +5 -1
- package/src/lib/components/data-input/configurable-operation-list-input.tsx +9 -1
- package/src/lib/framework/form-engine/form-control-adapter.tsx +19 -19
- package/src/lib/framework/form-engine/list-input-selection.ts +26 -0
- /package/dist/vite/.vendure-dashboard-temp/compiler/{4053-d06e1a0e-f4b3-4b2f-a8bc-71c69c8b79a6 → 3166-bc154fe9-9702-405a-90f5-1d05d7b6883a}/dev-config.js +0 -0
- /package/dist/vite/.vendure-dashboard-temp/compiler/{4053-d06e1a0e-f4b3-4b2f-a8bc-71c69c8b79a6 → 3166-bc154fe9-9702-405a-90f5-1d05d7b6883a}/package.json +0 -0
- /package/dist/vite/.vendure-dashboard-temp/compiler/{4053-d06e1a0e-f4b3-4b2f-a8bc-71c69c8b79a6 → 3166-bc154fe9-9702-405a-90f5-1d05d7b6883a}/test-plugins/nav-modifier-plugin/nav-modifier-plugin.js +0 -0
- /package/dist/vite/.vendure-dashboard-temp/compiler/{4053-d06e1a0e-f4b3-4b2f-a8bc-71c69c8b79a6 → 3166-bc154fe9-9702-405a-90f5-1d05d7b6883a}/test-plugins/reviews/api/api-extensions.js +0 -0
- /package/dist/vite/.vendure-dashboard-temp/compiler/{4053-d06e1a0e-f4b3-4b2f-a8bc-71c69c8b79a6 → 3166-bc154fe9-9702-405a-90f5-1d05d7b6883a}/test-plugins/reviews/api/product-entity.resolver.js +0 -0
- /package/dist/vite/.vendure-dashboard-temp/compiler/{4053-d06e1a0e-f4b3-4b2f-a8bc-71c69c8b79a6 → 3166-bc154fe9-9702-405a-90f5-1d05d7b6883a}/test-plugins/reviews/api/product-review-admin.resolver.js +0 -0
- /package/dist/vite/.vendure-dashboard-temp/compiler/{4053-d06e1a0e-f4b3-4b2f-a8bc-71c69c8b79a6 → 3166-bc154fe9-9702-405a-90f5-1d05d7b6883a}/test-plugins/reviews/api/product-review-entity.resolver.js +0 -0
- /package/dist/vite/.vendure-dashboard-temp/compiler/{4053-d06e1a0e-f4b3-4b2f-a8bc-71c69c8b79a6 → 3166-bc154fe9-9702-405a-90f5-1d05d7b6883a}/test-plugins/reviews/api/product-review-shop.resolver.js +0 -0
- /package/dist/vite/.vendure-dashboard-temp/compiler/{4053-d06e1a0e-f4b3-4b2f-a8bc-71c69c8b79a6 → 3166-bc154fe9-9702-405a-90f5-1d05d7b6883a}/test-plugins/reviews/entities/product-review-translation.entity.js +0 -0
- /package/dist/vite/.vendure-dashboard-temp/compiler/{4053-d06e1a0e-f4b3-4b2f-a8bc-71c69c8b79a6 → 3166-bc154fe9-9702-405a-90f5-1d05d7b6883a}/test-plugins/reviews/entities/product-review.entity.js +0 -0
- /package/dist/vite/.vendure-dashboard-temp/compiler/{4053-d06e1a0e-f4b3-4b2f-a8bc-71c69c8b79a6 → 3166-bc154fe9-9702-405a-90f5-1d05d7b6883a}/test-plugins/reviews/generated-admin-types.js +0 -0
- /package/dist/vite/.vendure-dashboard-temp/compiler/{4053-d06e1a0e-f4b3-4b2f-a8bc-71c69c8b79a6 → 3166-bc154fe9-9702-405a-90f5-1d05d7b6883a}/test-plugins/reviews/generated-shop-types.js +0 -0
- /package/dist/vite/.vendure-dashboard-temp/compiler/{4053-d06e1a0e-f4b3-4b2f-a8bc-71c69c8b79a6 → 3166-bc154fe9-9702-405a-90f5-1d05d7b6883a}/test-plugins/reviews/reviews-plugin.js +0 -0
- /package/dist/vite/.vendure-dashboard-temp/compiler/{4053-d06e1a0e-f4b3-4b2f-a8bc-71c69c8b79a6 → 3166-bc154fe9-9702-405a-90f5-1d05d7b6883a}/test-plugins/reviews/types.js +0 -0
- /package/dist/vite/.vendure-dashboard-temp/compiler/{4985-6bda4df3-a17a-46c9-9338-842214222507 → 4123-4e97be61-5f56-4e62-9209-73d66356817b}/dev-config.js +0 -0
- /package/dist/vite/.vendure-dashboard-temp/compiler/{4985-6bda4df3-a17a-46c9-9338-842214222507 → 4123-4e97be61-5f56-4e62-9209-73d66356817b}/package.json +0 -0
- /package/dist/vite/.vendure-dashboard-temp/compiler/{4985-6bda4df3-a17a-46c9-9338-842214222507 → 4123-4e97be61-5f56-4e62-9209-73d66356817b}/test-plugins/nav-modifier-plugin/nav-modifier-plugin.js +0 -0
- /package/dist/vite/.vendure-dashboard-temp/compiler/{4985-6bda4df3-a17a-46c9-9338-842214222507 → 4123-4e97be61-5f56-4e62-9209-73d66356817b}/test-plugins/reviews/api/api-extensions.js +0 -0
- /package/dist/vite/.vendure-dashboard-temp/compiler/{4985-6bda4df3-a17a-46c9-9338-842214222507 → 4123-4e97be61-5f56-4e62-9209-73d66356817b}/test-plugins/reviews/api/product-entity.resolver.js +0 -0
- /package/dist/vite/.vendure-dashboard-temp/compiler/{4985-6bda4df3-a17a-46c9-9338-842214222507 → 4123-4e97be61-5f56-4e62-9209-73d66356817b}/test-plugins/reviews/api/product-review-admin.resolver.js +0 -0
- /package/dist/vite/.vendure-dashboard-temp/compiler/{4985-6bda4df3-a17a-46c9-9338-842214222507 → 4123-4e97be61-5f56-4e62-9209-73d66356817b}/test-plugins/reviews/api/product-review-entity.resolver.js +0 -0
- /package/dist/vite/.vendure-dashboard-temp/compiler/{4985-6bda4df3-a17a-46c9-9338-842214222507 → 4123-4e97be61-5f56-4e62-9209-73d66356817b}/test-plugins/reviews/api/product-review-shop.resolver.js +0 -0
- /package/dist/vite/.vendure-dashboard-temp/compiler/{4985-6bda4df3-a17a-46c9-9338-842214222507 → 4123-4e97be61-5f56-4e62-9209-73d66356817b}/test-plugins/reviews/entities/product-review-translation.entity.js +0 -0
- /package/dist/vite/.vendure-dashboard-temp/compiler/{4985-6bda4df3-a17a-46c9-9338-842214222507 → 4123-4e97be61-5f56-4e62-9209-73d66356817b}/test-plugins/reviews/entities/product-review.entity.js +0 -0
- /package/dist/vite/.vendure-dashboard-temp/compiler/{4985-6bda4df3-a17a-46c9-9338-842214222507 → 4123-4e97be61-5f56-4e62-9209-73d66356817b}/test-plugins/reviews/generated-admin-types.js +0 -0
- /package/dist/vite/.vendure-dashboard-temp/compiler/{4985-6bda4df3-a17a-46c9-9338-842214222507 → 4123-4e97be61-5f56-4e62-9209-73d66356817b}/test-plugins/reviews/generated-shop-types.js +0 -0
- /package/dist/vite/.vendure-dashboard-temp/compiler/{4985-6bda4df3-a17a-46c9-9338-842214222507 → 4123-4e97be61-5f56-4e62-9209-73d66356817b}/test-plugins/reviews/reviews-plugin.js +0 -0
- /package/dist/vite/.vendure-dashboard-temp/compiler/{4985-6bda4df3-a17a-46c9-9338-842214222507 → 4123-4e97be61-5f56-4e62-9209-73d66356817b}/test-plugins/reviews/types.js +0 -0
- /package/dist/vite/.vendure-dashboard-temp/gql-tada/{4053-d06e1a0e-f4b3-4b2f-a8bc-71c69c8b79a6 → 3166-bc154fe9-9702-405a-90f5-1d05d7b6883a}/schema.graphql +0 -0
- /package/dist/vite/.vendure-dashboard-temp/gql-tada/{4053-d06e1a0e-f4b3-4b2f-a8bc-71c69c8b79a6 → 3166-bc154fe9-9702-405a-90f5-1d05d7b6883a}/tsconfig.json +0 -0
- /package/dist/vite/.vendure-dashboard-temp/gql-tada/{4985-6bda4df3-a17a-46c9-9338-842214222507 → 4123-4e97be61-5f56-4e62-9209-73d66356817b}/schema.graphql +0 -0
- /package/dist/vite/.vendure-dashboard-temp/gql-tada/{4985-6bda4df3-a17a-46c9-9338-842214222507 → 4123-4e97be61-5f56-4e62-9209-73d66356817b}/tsconfig.json +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { c as createLocalStorage, T as THEME_PREFERENCE, P as PiPProvider, a as ThemeContext, b as ParentPanel, C as ContentView, Q as QueryDevtoolsContext } from "./AP7HFJJL-
|
|
2
|
-
import { g as getPreferredColorScheme, c as createMemo, a as createComponent } from "./main-
|
|
1
|
+
import { c as createLocalStorage, T as THEME_PREFERENCE, P as PiPProvider, a as ThemeContext, b as ParentPanel, C as ContentView, Q as QueryDevtoolsContext } from "./AP7HFJJL-C9ElHHxz.js";
|
|
2
|
+
import { g as getPreferredColorScheme, c as createMemo, a as createComponent } from "./main-B51h5LxL.js";
|
|
3
3
|
var DevtoolsPanelComponent = (props) => {
|
|
4
4
|
const [localStore, setLocalStore] = createLocalStorage({
|
|
5
5
|
prefix: "TanstackQueryDevtools"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { b as createContext, d as createSignal, o as onMount, e as createEffect, c as createMemo, a as createComponent, P as Portal, m as memo, S as Show, t as template, i as insert, f as createRenderEffect, h as className, j as clearDelegatedEvents, k as delegateEvents, u as useContext, l as onCleanup, s as sortFns, n as mutationSortFns, p as on, q as setAttribute, r as getSidedProp, v as use, w as convertRemToPixels, x as createUniqueId, y as batch, z as getQueryStatusLabel, A as getMutationStatusColor, B as getQueryStatusColor, C as getQueryStatusColorByLabel, D as displayValue, F as For, E as untrack, $ as $TRACK, G as useTransition, H as spread, I as mergeProps, J as createRoot, K as serialize, L as Index, M as updateNestedDataByPath, N as addEventListener, O as stringify, Q as Match, R as Switch, T as deleteNestedDataByPath, U as splitProps, V as Dynamic, W as createComputed } from "./main-
|
|
1
|
+
import { b as createContext, d as createSignal, o as onMount, e as createEffect, c as createMemo, a as createComponent, P as Portal, m as memo, S as Show, t as template, i as insert, f as createRenderEffect, h as className, j as clearDelegatedEvents, k as delegateEvents, u as useContext, l as onCleanup, s as sortFns, n as mutationSortFns, p as on, q as setAttribute, r as getSidedProp, v as use, w as convertRemToPixels, x as createUniqueId, y as batch, z as getQueryStatusLabel, A as getMutationStatusColor, B as getQueryStatusColor, C as getQueryStatusColorByLabel, D as displayValue, F as For, E as untrack, $ as $TRACK, G as useTransition, H as spread, I as mergeProps, J as createRoot, K as serialize, L as Index, M as updateNestedDataByPath, N as addEventListener, O as stringify, Q as Match, R as Switch, T as deleteNestedDataByPath, U as splitProps, V as Dynamic, W as createComputed } from "./main-B51h5LxL.js";
|
|
2
2
|
var isNonNullable = (i2) => i2 != null;
|
|
3
3
|
var filterNonNullable = (arr) => arr.filter(isNonNullable);
|
|
4
4
|
function chain(callbacks) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { c as createLocalStorage, T as THEME_PREFERENCE, P as PiPProvider, a as ThemeContext, D as Devtools, Q as QueryDevtoolsContext } from "./AP7HFJJL-
|
|
2
|
-
import { g as getPreferredColorScheme, c as createMemo, a as createComponent } from "./main-
|
|
1
|
+
import { c as createLocalStorage, T as THEME_PREFERENCE, P as PiPProvider, a as ThemeContext, D as Devtools, Q as QueryDevtoolsContext } from "./AP7HFJJL-C9ElHHxz.js";
|
|
2
|
+
import { g as getPreferredColorScheme, c as createMemo, a as createComponent } from "./main-B51h5LxL.js";
|
|
3
3
|
var DevtoolsComponent = (props) => {
|
|
4
4
|
const [localStore, setLocalStore] = createLocalStorage({
|
|
5
5
|
prefix: "TanstackQueryDevtools"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { om as normalizeDates$1, on as startOfWeek$1, oo as buildFormatLongFn$1, op as buildLocalizeFn$1, oq as buildMatchFn$1, or as buildMatchPatternFn$1, os as toDate$1, ot as match$1l, ou as localize$1n, ov as formatRelative$1n, ow as formatDistance$1n, ox as DateLib, oy as enUS$1 } from "./use-job-queue-polling-
|
|
1
|
+
import { om as normalizeDates$1, on as startOfWeek$1, oo as buildFormatLongFn$1, op as buildLocalizeFn$1, oq as buildMatchFn$1, or as buildMatchPatternFn$1, os as toDate$1, ot as match$1l, ou as localize$1n, ov as formatRelative$1n, ow as formatDistance$1n, ox as DateLib, oy as enUS$1 } from "./use-job-queue-polling-Dhe9AG6q.js";
|
|
2
2
|
function isSameWeek$1(laterDate, earlierDate, options2) {
|
|
3
3
|
const [laterDate_, earlierDate_] = normalizeDates$1(
|
|
4
4
|
options2?.in,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { c as createLucideIcon, nt as loadI18nMessages, nD as UserSettingsProvider, nE as ThemeProvider, nF as AuthProvider, nG as ServerConfigProvider, nH as ChannelProvider, nI as AlertsProvider, l5 as CustomProviders, df as objectType, du as stringType, mU as useAuth, gv as LoginForm, hq as LoginBranding, gk as AppLayout, nJ as endOfDay, nK as startOfMonth, bD as useUserSettings, nb as usePermissions, kx as getDashboardWidgetRegistry, eL as Page, eM as PageTitle, eN as PageActionBar, md as ActionBarItem, gi as DateRangePicker, dP as Button, eP as PageLayout, mo as FullWidthPageBlock, kA as WidgetFiltersProvider, i$ as GridLayout, ky as getDashboardWidget, na as usePaginatedList, mE as api, kV as getMutationName, fA as DataTableBulkActionItem, nL as Trash, mM as graphql, gf as useGeneratedColumns, fU as DataTable, gY as CountrySelector, jt as Sheet, jA as SheetTrigger, jv as SheetContent, jy as SheetHeader, jz as SheetTitle, jw as SheetDescription, jm as ScrollArea, mw as ListPage, dQ as Plus, h3 as DetailPageButton, eX as BooleanDisplayBadge, dR as Badge, mR as setSettingsStoreValueDocument, nM as createColumnHelper, gX as CopyableText, jV as Switch$1, iE as Dialog, iM as DialogTrigger, iG as DialogContent, iJ as DialogHeader, iD as DialogTitle, iH as DialogDescription, eZ as JsonViewer, iI as DialogFooter, dO as Input, n6 as useLocalFormat, bR as DropdownMenu, bS as DropdownMenuTrigger, bT as Ellipsis, bV as DropdownMenuContent, bW as DropdownMenuItem, nN as Clock, nO as Check, nP as RefreshCw, nQ as ChevronDown, nR as EllipsisVertical, gJ as AssignToChannelBulkAction, mV as useChannel, hs as RemoveFromChannelBulkAction, mI as configurableOperationFragment, np as LS_KEY_SHIPPING_TEST_ADDRESS, hR as AccordionItem, hS as AccordionTrigger, hQ as AccordionContent, i_ as Form, eS as FormFieldWrapper, bF as Select, bG as SelectTrigger, bI as SelectValue, bJ as SelectContent, bK as SelectItem, nq as LS_KEY_SHIPPING_TEST_ORDER, nS as useReactTable, nT as getCoreRowModel, jW as Table, k0 as TableHeader, k1 as TableRow, j$ as TableHead, nU as flexRender, jX as TableBody, jZ as TableCell, hr as ProductVariantSelector, hJ as VendureImage, bZ as Trash2, e$ as Money, ij as Card, ip as CardHeader, iq as CardTitle, il as CardContent, i3 as Alert, i4 as AlertDescription, hP as Accordion, hG as RichTextDescriptionCell, ns as SUPER_ADMIN_ROLE_CODE, nk as CUSTOMER_ROLE_CODE, nV as Layers, gP as ChannelCodeLabel, hz as RoleCodeLabel, mG as getEntityDuplicatorsDocument, nW as getInitialConfigArgValue, gS as ConfigurableOperationInput, mF as duplicateEntityDocument, nX as Copy, h5 as ErrorPage, kI as extendDetailFormQuery, kP as addCustomFields, mz as getDetailQueryOptions, eJ as useDetailPage, eQ as PageBlock, eR as DetailFormGrid, jd as PasswordInput, eU as CustomFieldsPageBlock, mH as assetFragment, h7 as FacetValueSelector, h6 as FacetValueChip, gL as usePriceFactor, fF as FacetValueFacetedFilter, hC as StockLevelLabel, mL as errorResultFragment, mK as configurableOperationDefFragment, bC as useServerConfig, hD as CustomerCell, hE as OrderStateCell, hF as OrderMoneyCell, eH as NEW_ENTITY_PATH, hh as LanguageSelector, mO as schemaLanguageCodes, fb as NumberInput, hn as PaginatedListDataTable, hm as PaginatedListDataTableKey, h2 as CustomerSelector, nY as useDebounce, bX as Folder, nZ as Search, n_ as ChevronRight, n$ as getExpandedRowModel, fO as getItemParentId, fR as calculateDragTargetPosition, fQ as isCircularReference, fS as calculateSiblingIndex, o0 as deleteAssetsDocument, cW as enumType, cP as coerce, gD as AssetGallery, mv as detailPageRouteLoader, hH as TaxCategorySelector, hO as ZoneSelector, k7 as Textarea, gV as ConfigurableOperationSelector, eT as TranslatableFormFieldWrapper, fq as RichTextInput, n4 as useGroupedPermissions, ke as TooltipProvider, kc as Tooltip, kf as TooltipTrigger, o1 as Info, kd as TooltipContent, gQ as ChannelSelector, gU as ConfigurableOperationMultiSelector, f7 as DateTimeInput, dS as X, cM as arrayType, nC as a, k2 as Tabs, k4 as TabsList, k5 as TabsTrigger, o2 as Link$1, k3 as TabsContent, iu as Command, iy as CommandInput, iA as CommandList, iw as CommandEmpty, iz as CommandItem, cO as booleanType, cl as ZodIssueCode, dq as recordType, C as Checkbox, iQ as Field, iT as FieldError, fa as MoneyInput, gW as ConfirmationDialog, hU as AlertDialog, hX as AlertDialogContent, h_ as AlertDialogHeader, hT as AlertDialogTitle, hY as AlertDialogDescription, hZ as AlertDialogFooter, hW as AlertDialogCancel, hV as AlertDialogAction, ho as PermissionGuard, n9 as usePage, fs as SlugInput, gN as AssignedFacetValues, gM as AssignedChannels, h4 as EntityAssets, dV as Separator, g_ as CustomFieldsForm, iV as FieldLabel, m_ as useDynamicTranslations, o3 as getTypeForState, bH as cn, nm as DEFAULT_CHANNEL_CODE, fp as createRelationSelectorConfig, fo as RelationSelector, j5 as Label, o4 as CircleAlert, mW as useCustomFieldConfig, gj as LabeledData, ir as Collapsible, is as CollapsibleTrigger, it as CollapsibleContent, o5 as Globe, mc as HistoryEntry, o6 as SquarePen, hf as useHistoryNoteEditor, hd as HistoryTimelineWithGrouping, hc as HistoryNoteInput, ha as HistoryNoteEditor, hb as HistoryNoteEntry, jS as Skeleton, kR as getFieldsFromDocumentNode, fL as getColumnVisibility, o7 as Pencil, o8 as stateTypeToBadgeVariant, o9 as ChevronLeft, g$ as CustomerAddressForm$1, oa as Users, h0 as CustomerGroupChip, h1 as CustomerGroupSelector, ob as Eye, i5 as AlertTitle, n5 as useJobQueuePolling, hB as SellerSelector, gZ as CurrencySelector, oc as tagListDocument, od as updateTagDocument, oe as deleteTagDocument, of as createTagDocument, je as Popover, jj as PopoverTrigger, og as ChevronsUpDown, jf as PopoverContent, ix as CommandGroup, oh as Settings2, oi as assetDetailDocument, oj as assetUpdateDocument, gB as AssetFocalPointEditor, gI as AssetProperties, gG as AssetPreviewSelector, ok as Focus, hA as RoleSelector, hj as MultiSelect, ol as useRedirectToListOnNotFound, fh as SingleRelationInput, lD as useGeneratedForm, de as numberType, f0 as AffixedInput, iF as DialogClose, jU as Spinner, lq as useDashboardExtensions, kH as registerDefaults, l7 as executeDashboardExtensionCallbacks, jT as Toaster, mA as useExtendedRouter, mY as useDisplayLocale, ng as useUiLanguageLoader, kL as setCustomFieldsMap, iN as DirectionProvider, kM as clearCustomFieldsMap } from "./use-job-queue-polling-
|
|
2
|
+
import { c as createLucideIcon, nt as loadI18nMessages, nD as UserSettingsProvider, nE as ThemeProvider, nF as AuthProvider, nG as ServerConfigProvider, nH as ChannelProvider, nI as AlertsProvider, l5 as CustomProviders, df as objectType, du as stringType, mU as useAuth, gv as LoginForm, hq as LoginBranding, gk as AppLayout, nJ as endOfDay, nK as startOfMonth, bD as useUserSettings, nb as usePermissions, kx as getDashboardWidgetRegistry, eL as Page, eM as PageTitle, eN as PageActionBar, md as ActionBarItem, gi as DateRangePicker, dP as Button, eP as PageLayout, mo as FullWidthPageBlock, kA as WidgetFiltersProvider, i$ as GridLayout, ky as getDashboardWidget, na as usePaginatedList, mE as api, kV as getMutationName, fA as DataTableBulkActionItem, nL as Trash, mM as graphql, gf as useGeneratedColumns, fU as DataTable, gY as CountrySelector, jt as Sheet, jA as SheetTrigger, jv as SheetContent, jy as SheetHeader, jz as SheetTitle, jw as SheetDescription, jm as ScrollArea, mw as ListPage, dQ as Plus, h3 as DetailPageButton, eX as BooleanDisplayBadge, dR as Badge, mR as setSettingsStoreValueDocument, nM as createColumnHelper, gX as CopyableText, jV as Switch$1, iE as Dialog, iM as DialogTrigger, iG as DialogContent, iJ as DialogHeader, iD as DialogTitle, iH as DialogDescription, eZ as JsonViewer, iI as DialogFooter, dO as Input, n6 as useLocalFormat, bR as DropdownMenu, bS as DropdownMenuTrigger, bT as Ellipsis, bV as DropdownMenuContent, bW as DropdownMenuItem, nN as Clock, nO as Check, nP as RefreshCw, nQ as ChevronDown, nR as EllipsisVertical, gJ as AssignToChannelBulkAction, mV as useChannel, hs as RemoveFromChannelBulkAction, mI as configurableOperationFragment, np as LS_KEY_SHIPPING_TEST_ADDRESS, hR as AccordionItem, hS as AccordionTrigger, hQ as AccordionContent, i_ as Form, eS as FormFieldWrapper, bF as Select, bG as SelectTrigger, bI as SelectValue, bJ as SelectContent, bK as SelectItem, nq as LS_KEY_SHIPPING_TEST_ORDER, nS as useReactTable, nT as getCoreRowModel, jW as Table, k0 as TableHeader, k1 as TableRow, j$ as TableHead, nU as flexRender, jX as TableBody, jZ as TableCell, hr as ProductVariantSelector, hJ as VendureImage, bZ as Trash2, e$ as Money, ij as Card, ip as CardHeader, iq as CardTitle, il as CardContent, i3 as Alert, i4 as AlertDescription, hP as Accordion, hG as RichTextDescriptionCell, ns as SUPER_ADMIN_ROLE_CODE, nk as CUSTOMER_ROLE_CODE, nV as Layers, gP as ChannelCodeLabel, hz as RoleCodeLabel, mG as getEntityDuplicatorsDocument, nW as getInitialConfigArgValue, gS as ConfigurableOperationInput, mF as duplicateEntityDocument, nX as Copy, h5 as ErrorPage, kI as extendDetailFormQuery, kP as addCustomFields, mz as getDetailQueryOptions, eJ as useDetailPage, eQ as PageBlock, eR as DetailFormGrid, jd as PasswordInput, eU as CustomFieldsPageBlock, mH as assetFragment, h7 as FacetValueSelector, h6 as FacetValueChip, gL as usePriceFactor, fF as FacetValueFacetedFilter, hC as StockLevelLabel, mL as errorResultFragment, mK as configurableOperationDefFragment, bC as useServerConfig, hD as CustomerCell, hE as OrderStateCell, hF as OrderMoneyCell, eH as NEW_ENTITY_PATH, hh as LanguageSelector, mO as schemaLanguageCodes, fb as NumberInput, hn as PaginatedListDataTable, hm as PaginatedListDataTableKey, h2 as CustomerSelector, nY as useDebounce, bX as Folder, nZ as Search, n_ as ChevronRight, n$ as getExpandedRowModel, fO as getItemParentId, fR as calculateDragTargetPosition, fQ as isCircularReference, fS as calculateSiblingIndex, o0 as deleteAssetsDocument, cW as enumType, cP as coerce, gD as AssetGallery, mv as detailPageRouteLoader, hH as TaxCategorySelector, hO as ZoneSelector, k7 as Textarea, gV as ConfigurableOperationSelector, eT as TranslatableFormFieldWrapper, fq as RichTextInput, n4 as useGroupedPermissions, ke as TooltipProvider, kc as Tooltip, kf as TooltipTrigger, o1 as Info, kd as TooltipContent, gQ as ChannelSelector, gU as ConfigurableOperationMultiSelector, f7 as DateTimeInput, dS as X, cM as arrayType, nC as a, k2 as Tabs, k4 as TabsList, k5 as TabsTrigger, o2 as Link$1, k3 as TabsContent, iu as Command, iy as CommandInput, iA as CommandList, iw as CommandEmpty, iz as CommandItem, cO as booleanType, cl as ZodIssueCode, dq as recordType, C as Checkbox, iQ as Field, iT as FieldError, fa as MoneyInput, gW as ConfirmationDialog, hU as AlertDialog, hX as AlertDialogContent, h_ as AlertDialogHeader, hT as AlertDialogTitle, hY as AlertDialogDescription, hZ as AlertDialogFooter, hW as AlertDialogCancel, hV as AlertDialogAction, ho as PermissionGuard, n9 as usePage, fs as SlugInput, gN as AssignedFacetValues, gM as AssignedChannels, h4 as EntityAssets, dV as Separator, g_ as CustomFieldsForm, iV as FieldLabel, m_ as useDynamicTranslations, o3 as getTypeForState, bH as cn, nm as DEFAULT_CHANNEL_CODE, fp as createRelationSelectorConfig, fo as RelationSelector, j5 as Label, o4 as CircleAlert, mW as useCustomFieldConfig, gj as LabeledData, ir as Collapsible, is as CollapsibleTrigger, it as CollapsibleContent, o5 as Globe, mc as HistoryEntry, o6 as SquarePen, hf as useHistoryNoteEditor, hd as HistoryTimelineWithGrouping, hc as HistoryNoteInput, ha as HistoryNoteEditor, hb as HistoryNoteEntry, jS as Skeleton, kR as getFieldsFromDocumentNode, fL as getColumnVisibility, o7 as Pencil, o8 as stateTypeToBadgeVariant, o9 as ChevronLeft, g$ as CustomerAddressForm$1, oa as Users, h0 as CustomerGroupChip, h1 as CustomerGroupSelector, ob as Eye, i5 as AlertTitle, n5 as useJobQueuePolling, hB as SellerSelector, gZ as CurrencySelector, oc as tagListDocument, od as updateTagDocument, oe as deleteTagDocument, of as createTagDocument, je as Popover, jj as PopoverTrigger, og as ChevronsUpDown, jf as PopoverContent, ix as CommandGroup, oh as Settings2, oi as assetDetailDocument, oj as assetUpdateDocument, gB as AssetFocalPointEditor, gI as AssetProperties, gG as AssetPreviewSelector, ok as Focus, hA as RoleSelector, hj as MultiSelect, ol as useRedirectToListOnNotFound, fh as SingleRelationInput, lD as useGeneratedForm, de as numberType, f0 as AffixedInput, iF as DialogClose, jU as Spinner, lq as useDashboardExtensions, kH as registerDefaults, l7 as executeDashboardExtensionCallbacks, jT as Toaster, mA as useExtendedRouter, mY as useDisplayLocale, ng as useUiLanguageLoader, kL as setCustomFieldsMap, iN as DirectionProvider, kM as clearCustomFieldsMap } from "./use-job-queue-polling-Dhe9AG6q.js";
|
|
3
3
|
import { toast } from "sonner";
|
|
4
4
|
import { i18n } from "@lingui/core";
|
|
5
5
|
import { I18nProvider as I18nProvider$1, useLingui, Trans } from "@lingui/react";
|
|
@@ -2932,7 +2932,7 @@ var TanstackQueryDevtools = class {
|
|
|
2932
2932
|
if (this.#Component) {
|
|
2933
2933
|
Devtools = this.#Component;
|
|
2934
2934
|
} else {
|
|
2935
|
-
Devtools = lazy(() => import("./WDYDFRGG-
|
|
2935
|
+
Devtools = lazy(() => import("./WDYDFRGG-Bfnowo_y.js"));
|
|
2936
2936
|
this.#Component = Devtools;
|
|
2937
2937
|
}
|
|
2938
2938
|
setupStyleSheet(this.#styleNonce, this.#shadowDOMTarget);
|
|
@@ -3070,7 +3070,7 @@ var TanstackQueryDevtoolsPanel = class {
|
|
|
3070
3070
|
if (this.#Component) {
|
|
3071
3071
|
Devtools = this.#Component;
|
|
3072
3072
|
} else {
|
|
3073
|
-
Devtools = lazy(() => import("./2SSKDMRQ-
|
|
3073
|
+
Devtools = lazy(() => import("./2SSKDMRQ-BYUZEDFM.js"));
|
|
3074
3074
|
this.#Component = Devtools;
|
|
3075
3075
|
}
|
|
3076
3076
|
setupStyleSheet(this.#styleNonce, this.#shadowDOMTarget);
|
|
@@ -20278,6 +20278,9 @@ const deleteCustomerNoteDocument = graphql(`
|
|
|
20278
20278
|
}
|
|
20279
20279
|
}
|
|
20280
20280
|
`);
|
|
20281
|
+
function customerHistoryQueryKey(customerId) {
|
|
20282
|
+
return ["CustomerHistory", customerId];
|
|
20283
|
+
}
|
|
20281
20284
|
function useCustomerHistory({
|
|
20282
20285
|
customerId,
|
|
20283
20286
|
pageSize = 10
|
|
@@ -20306,7 +20309,7 @@ function useCustomerHistory({
|
|
|
20306
20309
|
take: pageSize
|
|
20307
20310
|
}
|
|
20308
20311
|
}),
|
|
20309
|
-
queryKey:
|
|
20312
|
+
queryKey: customerHistoryQueryKey(customerId),
|
|
20310
20313
|
initialPageParam: 0,
|
|
20311
20314
|
getNextPageParam: (lastPage, pages, lastPageParam) => {
|
|
20312
20315
|
const totalItems = lastPage.customer?.history?.totalItems ?? 0;
|
|
@@ -20549,6 +20552,7 @@ function CustomerDetailPage() {
|
|
|
20549
20552
|
const {
|
|
20550
20553
|
_: _t
|
|
20551
20554
|
} = useLingui();
|
|
20555
|
+
const queryClient2 = useQueryClient();
|
|
20552
20556
|
const [newAddressOpen, setNewAddressOpen] = useState(false);
|
|
20553
20557
|
const {
|
|
20554
20558
|
form,
|
|
@@ -20600,6 +20604,10 @@ function CustomerDetailPage() {
|
|
|
20600
20604
|
id: data.id
|
|
20601
20605
|
}
|
|
20602
20606
|
});
|
|
20607
|
+
} else {
|
|
20608
|
+
await queryClient2.invalidateQueries({
|
|
20609
|
+
queryKey: customerHistoryQueryKey(data.id)
|
|
20610
|
+
});
|
|
20603
20611
|
}
|
|
20604
20612
|
} else {
|
|
20605
20613
|
toast.error(creatingNewEntity ? _t(
|
package/dist/bundle/chunks/{use-job-queue-polling-DKUd4UP0.js → use-job-queue-polling-Dhe9AG6q.js}
RENAMED
|
@@ -39245,7 +39245,7 @@ function useDayPickerLocale() {
|
|
|
39245
39245
|
} = useDisplayLocale();
|
|
39246
39246
|
const [calendarLocale, setCalendarLocale] = useState(void 0);
|
|
39247
39247
|
useEffect(() => {
|
|
39248
|
-
import("./locale-
|
|
39248
|
+
import("./locale-M7cbtrsA.js").then((mod) => {
|
|
39249
39249
|
setCalendarLocale(bcpTagToDatePickerLocale(bcp47Tag, mod));
|
|
39250
39250
|
});
|
|
39251
39251
|
}, [bcp47Tag]);
|
|
@@ -78361,6 +78361,18 @@ const renderStructFieldInput = (structField, inputField, isReadonly = false) =>
|
|
|
78361
78361
|
}
|
|
78362
78362
|
return renderSingleStructInput(inputField);
|
|
78363
78363
|
};
|
|
78364
|
+
function selectListInputComponent(fieldDef, valueMode) {
|
|
78365
|
+
if (fieldDef.type === "string") {
|
|
78366
|
+
return "string";
|
|
78367
|
+
}
|
|
78368
|
+
if (valueMode === "json-string") {
|
|
78369
|
+
return "configurable-operation";
|
|
78370
|
+
}
|
|
78371
|
+
if (fieldDef.type === "relation") {
|
|
78372
|
+
return "relation";
|
|
78373
|
+
}
|
|
78374
|
+
return "custom-field";
|
|
78375
|
+
}
|
|
78364
78376
|
const nativeValueTransformer = {
|
|
78365
78377
|
parse: (value2, fieldDef) => {
|
|
78366
78378
|
return value2;
|
|
@@ -78498,16 +78510,16 @@ function renderStructField(fieldDef, field, fieldWithTransform, isList2, isReado
|
|
|
78498
78510
|
return /* @__PURE__ */ jsx(StructFormInput, { ...fieldWithTransform, fieldDef });
|
|
78499
78511
|
}
|
|
78500
78512
|
function renderListField(fieldDef, field, fieldWithTransform, valueMode, isReadonly) {
|
|
78501
|
-
|
|
78502
|
-
|
|
78503
|
-
|
|
78504
|
-
|
|
78505
|
-
|
|
78506
|
-
|
|
78507
|
-
|
|
78508
|
-
|
|
78513
|
+
switch (selectListInputComponent(fieldDef, valueMode)) {
|
|
78514
|
+
case "string":
|
|
78515
|
+
return /* @__PURE__ */ jsx(StringListInput, { ...fieldWithTransform, fieldDef });
|
|
78516
|
+
case "configurable-operation":
|
|
78517
|
+
return /* @__PURE__ */ jsx(ConfigurableOperationListInput, { ...fieldWithTransform, fieldDef });
|
|
78518
|
+
case "relation":
|
|
78519
|
+
return /* @__PURE__ */ jsx(DefaultInputForType, { ...fieldWithTransform, fieldDef });
|
|
78520
|
+
case "custom-field":
|
|
78521
|
+
return /* @__PURE__ */ jsx(CustomFieldListInput, { ...field, disabled: isReadonly, renderInput: (index2, inputField) => /* @__PURE__ */ jsx(DefaultInputForType, { ...inputField, fieldDef }), defaultValue: getDefaultValueForType(fieldDef.type) });
|
|
78509
78522
|
}
|
|
78510
|
-
return /* @__PURE__ */ jsx(CustomFieldListInput, { ...field, disabled: isReadonly, renderInput: (index2, inputField) => /* @__PURE__ */ jsx(DefaultInputForType, { ...inputField, fieldDef }), defaultValue: getDefaultValueForType(fieldDef.type) });
|
|
78511
78523
|
}
|
|
78512
78524
|
function FormControlAdapter({
|
|
78513
78525
|
fieldDef,
|
|
@@ -78570,7 +78582,13 @@ function ConfigurableOperationListInput({
|
|
|
78570
78582
|
}) });
|
|
78571
78583
|
}
|
|
78572
78584
|
function parseArrayValue(value2) {
|
|
78585
|
+
if (Array.isArray(value2)) {
|
|
78586
|
+
return value2.map(String);
|
|
78587
|
+
}
|
|
78573
78588
|
if (!value2) return [];
|
|
78589
|
+
if (typeof value2 !== "string") {
|
|
78590
|
+
return [String(value2)];
|
|
78591
|
+
}
|
|
78574
78592
|
try {
|
|
78575
78593
|
const parsed = JSON.parse(value2);
|
|
78576
78594
|
return Array.isArray(parsed) ? parsed.map(String) : [String(parsed)];
|
package/dist/bundle/lib.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { c as createLucideIcon, g as getComputedStyle$1, i as isHTMLElement, r as round, a as createLucideIcon$1, b as isFieldDisabled, C as Checkbox, u as useBaseUiId, d as useIsoLayoutEffect, f as formatErrorMessage, e as useRenderElement, N as NOOP, h as useTransitionStatus, j as useStableCallback, k as useOpenChangeComplete, t as transitionStatusMapping, l as useTimeout, m as createSelector, n as compareItemEquality, o as hasNullItemLabel, s as stringifyAsLabel, p as defaultItemEquality, q as useFormContext, v as useFieldRootContext, w as useLabelableId, x as useControlled, E as EMPTY_ARRAY, y as useRefWithInit, z as isGroupedItems, S as Store, A as EMPTY_OBJECT, B as stringifyAsValue, D as useStore, F as useValueAsRef, G as useOpenInteractionType, H as useField, I as createGenericEventDetails, J as inputClear, K as inputChange, L as createChangeEventDetails, M as focusOut, O as outsidePress, P as getTarget, Q as itemPress, R as selectedValueIncludes, T as removeItem, U as none, V as findItemIndex, W as useValueChanged, X as useFloatingRootContext, Y as useClick, Z as inputPress, _ as useDismiss, $ as contains, a0 as useListNavigation, a1 as useInteractions, a2 as useOnFirstRender, a3 as useMergedRefs, a4 as visuallyHiddenInput, a5 as visuallyHidden, a6 as resolveMultipleLabels, a7 as resolveSelectedLabel, a8 as fieldValidityMapping, a9 as pressableTriggerOpenStateMapping, aa as useButton, ab as closePress, ac as useLabelableContext, ad as useDirection, ae as DEFAULT_FIELD_STATE_ATTRIBUTES, af as resolveAriaLabelledBy, ag as stopEvent, ah as isFirefox, ai as escapeKey, aj as isAndroid, ak as useTypeahead, al as listNavigation, am as ownerDocument, an as getPseudoElementBounds, ao as CompositeList, ap as FloatingPortal, aq as DROPDOWN_COLLISION_AVOIDANCE, ar as useAnchorPositioning, as as useScrollLock, at as InternalBackdrop, au as inertValue, av as getDisabledMountTransitionStyles, aw as popupStateMapping, ax as FloatingFocusManager, ay as useCompositeListItem, az as IndexGuessBehavior, aA as chipRemovePress, aB as triggerOpenStateMapping, aC as clearPress, aD as useId, aE as ContextMenuRootContext, aF as MenuRootContext, aG as MenuRoot, aH as useContextMenuRootContext, aI as useMenuRootContext, aJ as findRootOwnerId, aK as cancelOpen, aL as triggerPress, aM as MenubarContext, aN as FloatingTree, aO as CompositeRoot, aP as useFloatingNodeId, aQ as useFloatingTree, aR as useMenubarContext, aS as FloatingNode, aT as useFloatingParentNodeId, aU as linkPress, aV as activeElement, aW as triggerHover, aX as getEmptyRootContext, aY as useHoverFloatingInteraction, aZ as getNodeChildren, a_ as useAnimationFrame, a$ as useAnimationsFinished, b0 as getWindow, b1 as TransitionStatusDataAttributes, b2 as useHoverInteractionSharedState, b3 as clearSafePolygonPointerEventsMutation, b4 as useHoverReferenceInteraction, b5 as safePolygon, b6 as isWebKit, b7 as CompositeItem, b8 as FocusGuard, b9 as isOutsideEvent, ba as getPreviousTabbable, bb as ownerVisuallyHidden, bc as isTabbable, bd as getNextTabbable, be as getTabbableAfterElement, bf as applySafePolygonPointerEventsMutation, bg as PATIENT_CLICK_THRESHOLD, bh as POPUP_COLLISION_AVOIDANCE, bi as adaptiveOrigin, bj as enableFocusInside, bk as disableFocusInside, bl as clamp, bm as warn, bn as getDefaultLabelId, bo as keyboard, bp as isElement, bq as drag, br as trackPress, bs as useCSPContext, bt as useOnMount, bu as mergeProps, bv as COMPOSITE_KEYS, bw as HOME, bx as END, by as ARROW_LEFT, bz as ARROW_DOWN, bA as ARROW_RIGHT, bB as ARROW_UP, bC as useServerConfig, bD as useUserSettings, bE as useSortedLanguages, bF as Select, bG as SelectTrigger, bH as cn, bI as SelectValue, bJ as SelectContent, bK as SelectItem, bL as useSidebar, bM as SidebarGroup, bN as SidebarGroupLabel, bO as SidebarMenu, bP as SidebarMenuItem, bQ as SidebarMenuButton, bR as DropdownMenu, bS as DropdownMenuTrigger, bT as Ellipsis, bU as SidebarMenuAction, bV as DropdownMenuContent, bW as DropdownMenuItem, bX as Folder, bY as DropdownMenuSeparator, bZ as Trash2, b_ as BRAND, b$ as DIRTY, c0 as EMPTY_PATH, c1 as INVALID, c2 as NEVER, c3 as OK, c4 as ParseStatus, c5 as ZodType, c6 as ZodAny, c7 as ZodArray, c8 as ZodBigInt, c9 as ZodBoolean, ca as ZodBranded, cb as ZodCatch, cc as ZodDate, cd as ZodDefault, ce as ZodDiscriminatedUnion, cf as ZodEffects, cg as ZodEnum, ch as ZodError, ci as ZodFirstPartyTypeKind, cj as ZodFunction, ck as ZodIntersection, cl as ZodIssueCode, cm as ZodLazy, cn as ZodLiteral, co as ZodMap, cp as ZodNaN, cq as ZodNativeEnum, cr as ZodNever, cs as ZodNull, ct as ZodNullable, cu as ZodNumber, cv as ZodObject, cw as ZodOptional, cx as ZodParsedType, cy as ZodPipeline, cz as ZodPromise, cA as ZodReadonly, cB as ZodRecord, cC as ZodSet, cD as ZodString, cE as ZodSymbol, cF as ZodTuple, cG as ZodUndefined, cH as ZodUnion, cI as ZodUnknown, cJ as ZodVoid, cK as addIssueToContext, cL as anyType, cM as arrayType, cN as bigIntType, cO as booleanType, cP as coerce, cQ as custom, cR as dateType, cS as datetimeRegex, cT as errorMap, cU as discriminatedUnionType, cV as effectsType, cW as enumType, cX as functionType, cY as getErrorMap, cZ as getParsedType, c_ as instanceOfType, c$ as intersectionType, d0 as isAborted, d1 as isAsync, d2 as isDirty, d3 as isValid, d4 as late, d5 as lazyType, d6 as literalType, d7 as makeIssue, d8 as mapType, d9 as nanType, da as nativeEnumType, db as neverType, dc as nullType, dd as nullableType, de as numberType, df as objectType, dg as objectUtil, dh as oboolean, di as onumber, dj as optionalType, dk as ostring, dl as pipelineType, dm as preprocessType, dn as promiseType, dp as quotelessJson, dq as recordType, dr as setType, ds as setErrorMap, dt as strictObjectType, du as stringType, dv as symbolType, dw as tupleType, dx as undefinedType, dy as unionType, dz as unknownType, dA as util, dB as voidType, dC as MotionConfigContext, dD as isHTMLElement$1, dE as useConstant, dF as PresenceContext, dG as usePresence, dH as useIsomorphicLayoutEffect$1, dI as LayoutGroupContext, dJ as frame, dK as animateVisualElement, dL as setTarget, dM as invariant, dN as resolveElements, dO as Input, dP as Button, dQ as Plus, dR as Badge, dS as X, dT as cn$1, dU as cva, dV as Separator, dW as useRender, dX as Button$1, dY as ChevronLeft, dZ as ChevronRight, d_ as throttle, d$ as warn$1, e0 as isPercent, e1 as getDisplayName, e2 as clsx, e3 as Tooltip, e4 as Legend, e5 as X$1, e6 as InputGroup, e7 as InputGroupInput, e8 as InputGroupAddon, e9 as InputGroupButton, ea as Check, eb as Separator$1, ec as ChevronDown, ed as MenuCheckboxItem, ee as MenuCheckboxItemIndicator, ef as MenuPortal, eg as MenuPositioner, eh as MenuPopup, ei as MenuGroup, ej as MenuItem, ek as MenuGroupLabel, el as MenuRadioGroup, em as MenuRadioItem, en as MenuRadioItemIndicator, eo as MenuSubmenuRoot, ep as MenuSubmenuTrigger, eq as Close, er as Description, es as Title, et as Trigger, eu as Root$1, ev as Content$1, ew as Overlay$1, ex as Portal$1, ey as DropdownMenuContent$1, ez as DropdownMenuGroup, eA as DropdownMenuLabel, eB as DropdownMenuPortal, eC as DropdownMenuRadioGroup, eD as DropdownMenuShortcut, eE as DropdownMenuSub, eF as DropdownMenuSubContent, eG as DropdownMenuSubTrigger, eH as NEW_ENTITY_PATH, eI as getEntityName, eJ as useDetailPage, eK as getOperationVariablesFields, eL as Page, eM as PageTitle, eN as PageActionBar, eO as PageActionBarRight, eP as PageLayout, eQ as PageBlock, eR as DetailFormGrid, eS as FormFieldWrapper, eT as TranslatableFormFieldWrapper, eU as CustomFieldsPageBlock, eV as DefaultInputForType } from "./chunks/use-job-queue-polling-
|
|
2
|
-
import { nj, hP, hQ, hR, hS, md, me, fz, fx, f0, i3, i6, i4, hU, hV, hW, hX, hY, hZ, h_, h$, i0, i1, hT, i2, kj, i5, gw, kk, gy, gx, gk, gl, gA, gB, gD, gE, gH, gF, gG, gI, gJ, gK, gM, gN, fV, eX, eW, f1, i8, i9, ia, ib, ic, id, ie, nk, ih, ii, ij, ik, il, im, io, ip, iq, gO, gP, gQ, gm, ir, it, is, fy, f2, iu, iv, iw, ix, iy, iz, iA, iB, iC, gR, gS, f3, gU, gV, gW, gX, gY, hM, nl, gZ, f4, g_, lu, l5, g$, hD, h0, f5, h1, h2, fX, nm, kq, fU, fW, fA, fB, fC, fD, f_, fG, fI, fH, fJ, g0, g2, fK, fE, g4, fT, gi, eY, f7, f8, h3, mf, gn, gu, iE, iF, iG, iH, iI, iJ, iK, iL, iD, iM, iN, ko, iO, iP, h4, h5, h6, fF, f9, h7, iQ, iR, iS, iT, iU, iV, iW, iX, iY, iZ, i_, lv, mo, go, g5, g6, i$, mc, h8, h9, ha, hb, hc, he, hd, j0, j1, j2, g7, f$, hg, ht, j3, j4, e_, eZ, nn, no, np, nq, nr, j5, gj, gp, hh, hu, mw, mk, hq, gv, hi, g8, gq, hp, kt, e$, fa, fi, hj, g9, g1, gr, gs, gt, hk, fb, hF, hE, lC, mn, ml, mm, mq, hl, hn, hm, j6, j7, j8, j9, ja, jb, jc, fc, jd, ho, hK, je, jf, jg, jh, ji, jj, fg, ff, hr, jk, jl, ga, fo, fm, hs, hN, hv, hG, hw, fq, hz, hA, g3, ns, gb, gc, jm, jn, jo, jp, jq, jr, js, fr, hB, jt, ju, jv, jw, jx, jy, jz, jA, jB, jC, jD, jE, jF, jG, jH, jI, jJ, jK, jL, jM, jN, jO, jP, jQ, jR, fh, jS, fs, jU, hC, ft, fu, jV, jW, jX, jY, jZ, hx, hy, j_, j$, k0, k1, k2, k3, k4, k5, hH, fv, k7, fw, hL, jT, ka, k8, k9, kc, kd, ke, kf, hI, gg, hJ, gh, kp, kz, kA, hO, kC, lf, kP, kO, lt, lb, le, kE, mt, mu, kG, mE, gz, ly, mH, i7, fZ, ig, fR, fS, ny, kM, fl, mJ, mK, mI, lG, gC, lw, fp, fk, l8, mv, mF, mL, l7, kI, kJ, mx, lY, nz, la, ld, ki, kh, kB, fL, kN, mb, mh, l1, mj, ky, kx, lz, lx, ls, mz, l9, mG, k_, n1, kR, lB, lc, fO, fP, kD, kQ, kV, mr, kU, kW, kS, kT, mQ, fN, mD, kX, m9, kF, lA, mB, kK, mM, m6, m3, l0, gT, lP, l$, fQ, lJ, lI, lS, m0, kZ, m5, lR, l_, lQ, lZ, m1, lM, lO, m4, mp, m2, lT, kY, lK, lL, lW, lX, lU, lV, lN, m8, kr, ks, nt, fd, fe, nu, m7, gd, nA, l6, ku, kv, fY, fM, fj, mN, kg, lg, mg, l2, l3, mi, kw, lh, kH, li, lj, lk, ll, lm, ln, my, lo, mC, lp, lF, nB, l4, kl, mP, mO, km, kL, ms, mR, lH, k6, kb, lE, ma, mT, mS, ge, mU, mV, kn, mW, lq, mX, f6, mY, mZ, m_, m$, n0, mA, n2, n3, gf, lD, n4, hf, n7, nd, n5, k$, n6, lr, nv, n9, n8, na, nb, gL, fn, nf, nc, nw, ne, nx, ng, nh, ni, nC } from "./chunks/use-job-queue-polling-
|
|
1
|
+
import { c as createLucideIcon, g as getComputedStyle$1, i as isHTMLElement, r as round, a as createLucideIcon$1, b as isFieldDisabled, C as Checkbox, u as useBaseUiId, d as useIsoLayoutEffect, f as formatErrorMessage, e as useRenderElement, N as NOOP, h as useTransitionStatus, j as useStableCallback, k as useOpenChangeComplete, t as transitionStatusMapping, l as useTimeout, m as createSelector, n as compareItemEquality, o as hasNullItemLabel, s as stringifyAsLabel, p as defaultItemEquality, q as useFormContext, v as useFieldRootContext, w as useLabelableId, x as useControlled, E as EMPTY_ARRAY, y as useRefWithInit, z as isGroupedItems, S as Store, A as EMPTY_OBJECT, B as stringifyAsValue, D as useStore, F as useValueAsRef, G as useOpenInteractionType, H as useField, I as createGenericEventDetails, J as inputClear, K as inputChange, L as createChangeEventDetails, M as focusOut, O as outsidePress, P as getTarget, Q as itemPress, R as selectedValueIncludes, T as removeItem, U as none, V as findItemIndex, W as useValueChanged, X as useFloatingRootContext, Y as useClick, Z as inputPress, _ as useDismiss, $ as contains, a0 as useListNavigation, a1 as useInteractions, a2 as useOnFirstRender, a3 as useMergedRefs, a4 as visuallyHiddenInput, a5 as visuallyHidden, a6 as resolveMultipleLabels, a7 as resolveSelectedLabel, a8 as fieldValidityMapping, a9 as pressableTriggerOpenStateMapping, aa as useButton, ab as closePress, ac as useLabelableContext, ad as useDirection, ae as DEFAULT_FIELD_STATE_ATTRIBUTES, af as resolveAriaLabelledBy, ag as stopEvent, ah as isFirefox, ai as escapeKey, aj as isAndroid, ak as useTypeahead, al as listNavigation, am as ownerDocument, an as getPseudoElementBounds, ao as CompositeList, ap as FloatingPortal, aq as DROPDOWN_COLLISION_AVOIDANCE, ar as useAnchorPositioning, as as useScrollLock, at as InternalBackdrop, au as inertValue, av as getDisabledMountTransitionStyles, aw as popupStateMapping, ax as FloatingFocusManager, ay as useCompositeListItem, az as IndexGuessBehavior, aA as chipRemovePress, aB as triggerOpenStateMapping, aC as clearPress, aD as useId, aE as ContextMenuRootContext, aF as MenuRootContext, aG as MenuRoot, aH as useContextMenuRootContext, aI as useMenuRootContext, aJ as findRootOwnerId, aK as cancelOpen, aL as triggerPress, aM as MenubarContext, aN as FloatingTree, aO as CompositeRoot, aP as useFloatingNodeId, aQ as useFloatingTree, aR as useMenubarContext, aS as FloatingNode, aT as useFloatingParentNodeId, aU as linkPress, aV as activeElement, aW as triggerHover, aX as getEmptyRootContext, aY as useHoverFloatingInteraction, aZ as getNodeChildren, a_ as useAnimationFrame, a$ as useAnimationsFinished, b0 as getWindow, b1 as TransitionStatusDataAttributes, b2 as useHoverInteractionSharedState, b3 as clearSafePolygonPointerEventsMutation, b4 as useHoverReferenceInteraction, b5 as safePolygon, b6 as isWebKit, b7 as CompositeItem, b8 as FocusGuard, b9 as isOutsideEvent, ba as getPreviousTabbable, bb as ownerVisuallyHidden, bc as isTabbable, bd as getNextTabbable, be as getTabbableAfterElement, bf as applySafePolygonPointerEventsMutation, bg as PATIENT_CLICK_THRESHOLD, bh as POPUP_COLLISION_AVOIDANCE, bi as adaptiveOrigin, bj as enableFocusInside, bk as disableFocusInside, bl as clamp, bm as warn, bn as getDefaultLabelId, bo as keyboard, bp as isElement, bq as drag, br as trackPress, bs as useCSPContext, bt as useOnMount, bu as mergeProps, bv as COMPOSITE_KEYS, bw as HOME, bx as END, by as ARROW_LEFT, bz as ARROW_DOWN, bA as ARROW_RIGHT, bB as ARROW_UP, bC as useServerConfig, bD as useUserSettings, bE as useSortedLanguages, bF as Select, bG as SelectTrigger, bH as cn, bI as SelectValue, bJ as SelectContent, bK as SelectItem, bL as useSidebar, bM as SidebarGroup, bN as SidebarGroupLabel, bO as SidebarMenu, bP as SidebarMenuItem, bQ as SidebarMenuButton, bR as DropdownMenu, bS as DropdownMenuTrigger, bT as Ellipsis, bU as SidebarMenuAction, bV as DropdownMenuContent, bW as DropdownMenuItem, bX as Folder, bY as DropdownMenuSeparator, bZ as Trash2, b_ as BRAND, b$ as DIRTY, c0 as EMPTY_PATH, c1 as INVALID, c2 as NEVER, c3 as OK, c4 as ParseStatus, c5 as ZodType, c6 as ZodAny, c7 as ZodArray, c8 as ZodBigInt, c9 as ZodBoolean, ca as ZodBranded, cb as ZodCatch, cc as ZodDate, cd as ZodDefault, ce as ZodDiscriminatedUnion, cf as ZodEffects, cg as ZodEnum, ch as ZodError, ci as ZodFirstPartyTypeKind, cj as ZodFunction, ck as ZodIntersection, cl as ZodIssueCode, cm as ZodLazy, cn as ZodLiteral, co as ZodMap, cp as ZodNaN, cq as ZodNativeEnum, cr as ZodNever, cs as ZodNull, ct as ZodNullable, cu as ZodNumber, cv as ZodObject, cw as ZodOptional, cx as ZodParsedType, cy as ZodPipeline, cz as ZodPromise, cA as ZodReadonly, cB as ZodRecord, cC as ZodSet, cD as ZodString, cE as ZodSymbol, cF as ZodTuple, cG as ZodUndefined, cH as ZodUnion, cI as ZodUnknown, cJ as ZodVoid, cK as addIssueToContext, cL as anyType, cM as arrayType, cN as bigIntType, cO as booleanType, cP as coerce, cQ as custom, cR as dateType, cS as datetimeRegex, cT as errorMap, cU as discriminatedUnionType, cV as effectsType, cW as enumType, cX as functionType, cY as getErrorMap, cZ as getParsedType, c_ as instanceOfType, c$ as intersectionType, d0 as isAborted, d1 as isAsync, d2 as isDirty, d3 as isValid, d4 as late, d5 as lazyType, d6 as literalType, d7 as makeIssue, d8 as mapType, d9 as nanType, da as nativeEnumType, db as neverType, dc as nullType, dd as nullableType, de as numberType, df as objectType, dg as objectUtil, dh as oboolean, di as onumber, dj as optionalType, dk as ostring, dl as pipelineType, dm as preprocessType, dn as promiseType, dp as quotelessJson, dq as recordType, dr as setType, ds as setErrorMap, dt as strictObjectType, du as stringType, dv as symbolType, dw as tupleType, dx as undefinedType, dy as unionType, dz as unknownType, dA as util, dB as voidType, dC as MotionConfigContext, dD as isHTMLElement$1, dE as useConstant, dF as PresenceContext, dG as usePresence, dH as useIsomorphicLayoutEffect$1, dI as LayoutGroupContext, dJ as frame, dK as animateVisualElement, dL as setTarget, dM as invariant, dN as resolveElements, dO as Input, dP as Button, dQ as Plus, dR as Badge, dS as X, dT as cn$1, dU as cva, dV as Separator, dW as useRender, dX as Button$1, dY as ChevronLeft, dZ as ChevronRight, d_ as throttle, d$ as warn$1, e0 as isPercent, e1 as getDisplayName, e2 as clsx, e3 as Tooltip, e4 as Legend, e5 as X$1, e6 as InputGroup, e7 as InputGroupInput, e8 as InputGroupAddon, e9 as InputGroupButton, ea as Check, eb as Separator$1, ec as ChevronDown, ed as MenuCheckboxItem, ee as MenuCheckboxItemIndicator, ef as MenuPortal, eg as MenuPositioner, eh as MenuPopup, ei as MenuGroup, ej as MenuItem, ek as MenuGroupLabel, el as MenuRadioGroup, em as MenuRadioItem, en as MenuRadioItemIndicator, eo as MenuSubmenuRoot, ep as MenuSubmenuTrigger, eq as Close, er as Description, es as Title, et as Trigger, eu as Root$1, ev as Content$1, ew as Overlay$1, ex as Portal$1, ey as DropdownMenuContent$1, ez as DropdownMenuGroup, eA as DropdownMenuLabel, eB as DropdownMenuPortal, eC as DropdownMenuRadioGroup, eD as DropdownMenuShortcut, eE as DropdownMenuSub, eF as DropdownMenuSubContent, eG as DropdownMenuSubTrigger, eH as NEW_ENTITY_PATH, eI as getEntityName, eJ as useDetailPage, eK as getOperationVariablesFields, eL as Page, eM as PageTitle, eN as PageActionBar, eO as PageActionBarRight, eP as PageLayout, eQ as PageBlock, eR as DetailFormGrid, eS as FormFieldWrapper, eT as TranslatableFormFieldWrapper, eU as CustomFieldsPageBlock, eV as DefaultInputForType } from "./chunks/use-job-queue-polling-Dhe9AG6q.js";
|
|
2
|
+
import { nj, hP, hQ, hR, hS, md, me, fz, fx, f0, i3, i6, i4, hU, hV, hW, hX, hY, hZ, h_, h$, i0, i1, hT, i2, kj, i5, gw, kk, gy, gx, gk, gl, gA, gB, gD, gE, gH, gF, gG, gI, gJ, gK, gM, gN, fV, eX, eW, f1, i8, i9, ia, ib, ic, id, ie, nk, ih, ii, ij, ik, il, im, io, ip, iq, gO, gP, gQ, gm, ir, it, is, fy, f2, iu, iv, iw, ix, iy, iz, iA, iB, iC, gR, gS, f3, gU, gV, gW, gX, gY, hM, nl, gZ, f4, g_, lu, l5, g$, hD, h0, f5, h1, h2, fX, nm, kq, fU, fW, fA, fB, fC, fD, f_, fG, fI, fH, fJ, g0, g2, fK, fE, g4, fT, gi, eY, f7, f8, h3, mf, gn, gu, iE, iF, iG, iH, iI, iJ, iK, iL, iD, iM, iN, ko, iO, iP, h4, h5, h6, fF, f9, h7, iQ, iR, iS, iT, iU, iV, iW, iX, iY, iZ, i_, lv, mo, go, g5, g6, i$, mc, h8, h9, ha, hb, hc, he, hd, j0, j1, j2, g7, f$, hg, ht, j3, j4, e_, eZ, nn, no, np, nq, nr, j5, gj, gp, hh, hu, mw, mk, hq, gv, hi, g8, gq, hp, kt, e$, fa, fi, hj, g9, g1, gr, gs, gt, hk, fb, hF, hE, lC, mn, ml, mm, mq, hl, hn, hm, j6, j7, j8, j9, ja, jb, jc, fc, jd, ho, hK, je, jf, jg, jh, ji, jj, fg, ff, hr, jk, jl, ga, fo, fm, hs, hN, hv, hG, hw, fq, hz, hA, g3, ns, gb, gc, jm, jn, jo, jp, jq, jr, js, fr, hB, jt, ju, jv, jw, jx, jy, jz, jA, jB, jC, jD, jE, jF, jG, jH, jI, jJ, jK, jL, jM, jN, jO, jP, jQ, jR, fh, jS, fs, jU, hC, ft, fu, jV, jW, jX, jY, jZ, hx, hy, j_, j$, k0, k1, k2, k3, k4, k5, hH, fv, k7, fw, hL, jT, ka, k8, k9, kc, kd, ke, kf, hI, gg, hJ, gh, kp, kz, kA, hO, kC, lf, kP, kO, lt, lb, le, kE, mt, mu, kG, mE, gz, ly, mH, i7, fZ, ig, fR, fS, ny, kM, fl, mJ, mK, mI, lG, gC, lw, fp, fk, l8, mv, mF, mL, l7, kI, kJ, mx, lY, nz, la, ld, ki, kh, kB, fL, kN, mb, mh, l1, mj, ky, kx, lz, lx, ls, mz, l9, mG, k_, n1, kR, lB, lc, fO, fP, kD, kQ, kV, mr, kU, kW, kS, kT, mQ, fN, mD, kX, m9, kF, lA, mB, kK, mM, m6, m3, l0, gT, lP, l$, fQ, lJ, lI, lS, m0, kZ, m5, lR, l_, lQ, lZ, m1, lM, lO, m4, mp, m2, lT, kY, lK, lL, lW, lX, lU, lV, lN, m8, kr, ks, nt, fd, fe, nu, m7, gd, nA, l6, ku, kv, fY, fM, fj, mN, kg, lg, mg, l2, l3, mi, kw, lh, kH, li, lj, lk, ll, lm, ln, my, lo, mC, lp, lF, nB, l4, kl, mP, mO, km, kL, ms, mR, lH, k6, kb, lE, ma, mT, mS, ge, mU, mV, kn, mW, lq, mX, f6, mY, mZ, m_, m$, n0, mA, n2, n3, gf, lD, n4, hf, n7, nd, n5, k$, n6, lr, nv, n9, n8, na, nb, gL, fn, nf, nc, nw, ne, nx, ng, nh, ni, nC } from "./chunks/use-job-queue-polling-Dhe9AG6q.js";
|
|
3
3
|
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
4
4
|
import * as React from "react";
|
|
5
5
|
import React__default, { useId as useId$1, useRef, useContext, useInsertionEffect, useMemo, Children, isValidElement, useState, createContext, useCallback, useEffect, forwardRef, useImperativeHandle, cloneElement, useLayoutEffect, useSyncExternalStore } from "react";
|
package/dist/bundle/main.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "react/jsx-runtime";
|
|
2
|
-
import "./chunks/use-job-queue-polling-
|
|
2
|
+
import "./chunks/use-job-queue-polling-Dhe9AG6q.js";
|
|
3
3
|
import "sonner";
|
|
4
|
-
import "./chunks/main-
|
|
4
|
+
import "./chunks/main-B51h5LxL.js";
|
|
5
5
|
import "@tanstack/react-router";
|
|
6
6
|
import "react";
|
|
7
7
|
import "react-dom";
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vendure/dashboard",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "3.7.2-master-
|
|
4
|
+
"version": "3.7.2-master-202607220305",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -139,8 +139,8 @@
|
|
|
139
139
|
"@storybook/addon-vitest": "^10.3.1",
|
|
140
140
|
"@storybook/react-vite": "^10.3.1",
|
|
141
141
|
"@types/node": "^22.19.0",
|
|
142
|
-
"@vendure/common": "^3.7.2-master-
|
|
143
|
-
"@vendure/core": "^3.7.2-master-
|
|
142
|
+
"@vendure/common": "^3.7.2-master-202607220305",
|
|
143
|
+
"@vendure/core": "^3.7.2-master-202607220305",
|
|
144
144
|
"@vitest/browser": "^3.2.4",
|
|
145
145
|
"@vitest/coverage-v8": "^3.2.4",
|
|
146
146
|
"eslint": "^9.39.0",
|
package/src/app/routes/_authenticated/_customers/components/customer-history/use-customer-history.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { api } from '@/vdb/graphql/api.js';
|
|
2
2
|
import { graphql, ResultOf } from '@/vdb/graphql/graphql.js';
|
|
3
3
|
import { useLingui } from '@lingui/react/macro';
|
|
4
|
-
import { useInfiniteQuery, useMutation } from '@tanstack/react-query';
|
|
4
|
+
import { QueryKey, useInfiniteQuery, useMutation } from '@tanstack/react-query';
|
|
5
5
|
import { useState } from 'react';
|
|
6
6
|
import { toast } from 'sonner';
|
|
7
7
|
|
|
@@ -54,6 +54,10 @@ export interface UseCustomerHistoryResult {
|
|
|
54
54
|
hasNextPage: boolean;
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
+
export function customerHistoryQueryKey(customerId: string): QueryKey {
|
|
58
|
+
return ['CustomerHistory', customerId];
|
|
59
|
+
}
|
|
60
|
+
|
|
57
61
|
export function useCustomerHistory({
|
|
58
62
|
customerId,
|
|
59
63
|
pageSize = 10,
|
|
@@ -64,7 +68,7 @@ export function useCustomerHistory({
|
|
|
64
68
|
const [isLoading, setIsLoading] = useState(false);
|
|
65
69
|
const { i18n } = useLingui();
|
|
66
70
|
|
|
67
|
-
// Fetch
|
|
71
|
+
// Fetch customer history
|
|
68
72
|
const {
|
|
69
73
|
data,
|
|
70
74
|
isLoading: isLoadingQuery,
|
|
@@ -82,7 +86,7 @@ export function useCustomerHistory({
|
|
|
82
86
|
take: pageSize,
|
|
83
87
|
},
|
|
84
88
|
}),
|
|
85
|
-
queryKey:
|
|
89
|
+
queryKey: customerHistoryQueryKey(customerId),
|
|
86
90
|
initialPageParam: 0,
|
|
87
91
|
getNextPageParam: (lastPage, pages, lastPageParam) => {
|
|
88
92
|
const totalItems = lastPage.customer?.history?.totalItems ?? 0;
|
|
@@ -28,7 +28,7 @@ import { detailPageRouteLoader } from '@/vdb/framework/page/detail-page-route-lo
|
|
|
28
28
|
import { useDetailPage } from '@/vdb/framework/page/use-detail-page.js';
|
|
29
29
|
import { api } from '@/vdb/graphql/api.js';
|
|
30
30
|
import { Trans, useLingui } from '@lingui/react/macro';
|
|
31
|
-
import { useMutation } from '@tanstack/react-query';
|
|
31
|
+
import { useMutation, useQueryClient } from '@tanstack/react-query';
|
|
32
32
|
import { createFileRoute, useNavigate } from '@tanstack/react-router';
|
|
33
33
|
import { Plus } from 'lucide-react';
|
|
34
34
|
import { useState } from 'react';
|
|
@@ -36,6 +36,7 @@ import { toast } from 'sonner';
|
|
|
36
36
|
import { CustomerAddressCard } from './components/customer-address-card.js';
|
|
37
37
|
import { CustomerAddressForm } from './components/customer-address-form.js';
|
|
38
38
|
import { CustomerHistoryContainer } from './components/customer-history/customer-history-container.js';
|
|
39
|
+
import { customerHistoryQueryKey } from './components/customer-history/use-customer-history.js';
|
|
39
40
|
import { CustomerOrderTable } from './components/customer-order-table.js';
|
|
40
41
|
import { CustomerStatusBadge } from './components/customer-status-badge.js';
|
|
41
42
|
import {
|
|
@@ -70,6 +71,7 @@ function CustomerDetailPage() {
|
|
|
70
71
|
const navigate = useNavigate();
|
|
71
72
|
const creatingNewEntity = params.id === NEW_ENTITY_PATH;
|
|
72
73
|
const { t } = useLingui();
|
|
74
|
+
const queryClient = useQueryClient();
|
|
73
75
|
const [newAddressOpen, setNewAddressOpen] = useState(false);
|
|
74
76
|
|
|
75
77
|
const { form, submitHandler, entity, isPending, refreshEntity, resetForm } = useDetailPage({
|
|
@@ -100,6 +102,8 @@ function CustomerDetailPage() {
|
|
|
100
102
|
resetForm();
|
|
101
103
|
if (creatingNewEntity) {
|
|
102
104
|
await navigate({ to: `../$id`, params: { id: data.id } });
|
|
105
|
+
} else {
|
|
106
|
+
await queryClient.invalidateQueries({ queryKey: customerHistoryQueryKey(data.id) });
|
|
103
107
|
}
|
|
104
108
|
} else {
|
|
105
109
|
toast.error(creatingNewEntity ? t`Failed to create customer` : t`Failed to update customer`, {
|
|
@@ -39,8 +39,16 @@ export function ConfigurableOperationListInput({
|
|
|
39
39
|
);
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
function parseArrayValue(value:
|
|
42
|
+
function parseArrayValue(value: unknown): string[] {
|
|
43
|
+
// FormControlAdapter passes list values already parsed into an array. Serializing
|
|
44
|
+
// and re-parsing them here dropped numeric-looking entries, so return them as-is.
|
|
45
|
+
if (Array.isArray(value)) {
|
|
46
|
+
return value.map(String);
|
|
47
|
+
}
|
|
43
48
|
if (!value) return [];
|
|
49
|
+
if (typeof value !== 'string') {
|
|
50
|
+
return [String(value)];
|
|
51
|
+
}
|
|
44
52
|
|
|
45
53
|
try {
|
|
46
54
|
const parsed = JSON.parse(value);
|
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
} from '@/vdb/framework/form-engine/form-engine-types.js';
|
|
14
14
|
import { isCustomFieldConfig } from '@/vdb/framework/form-engine/utils.js';
|
|
15
15
|
import { DefaultInputForType } from './default-input-for-type.js';
|
|
16
|
+
import { selectListInputComponent } from './list-input-selection.js';
|
|
16
17
|
import { transformValue, ValueMode } from './value-transformers.js';
|
|
17
18
|
|
|
18
19
|
export interface FormControlAdapterProps {
|
|
@@ -116,26 +117,25 @@ function renderListField(
|
|
|
116
117
|
valueMode: ValueMode,
|
|
117
118
|
isReadonly: boolean,
|
|
118
119
|
): JSX.Element {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
120
|
+
switch (selectListInputComponent(fieldDef, valueMode)) {
|
|
121
|
+
case 'string':
|
|
122
|
+
return <StringListInput {...fieldWithTransform} fieldDef={fieldDef} />;
|
|
123
|
+
case 'configurable-operation':
|
|
124
|
+
return <ConfigurableOperationListInput {...fieldWithTransform} fieldDef={fieldDef} />;
|
|
125
|
+
case 'relation':
|
|
126
|
+
return <DefaultInputForType {...fieldWithTransform} fieldDef={fieldDef} />;
|
|
127
|
+
case 'custom-field':
|
|
128
|
+
return (
|
|
129
|
+
<CustomFieldListInput
|
|
130
|
+
{...field}
|
|
131
|
+
disabled={isReadonly}
|
|
132
|
+
renderInput={(index, inputField) => (
|
|
133
|
+
<DefaultInputForType {...inputField} fieldDef={fieldDef} />
|
|
134
|
+
)}
|
|
135
|
+
defaultValue={getDefaultValueForType(fieldDef.type)}
|
|
136
|
+
/>
|
|
137
|
+
);
|
|
129
138
|
}
|
|
130
|
-
|
|
131
|
-
return (
|
|
132
|
-
<CustomFieldListInput
|
|
133
|
-
{...field}
|
|
134
|
-
disabled={isReadonly}
|
|
135
|
-
renderInput={(index, inputField) => <DefaultInputForType {...inputField} fieldDef={fieldDef} />}
|
|
136
|
-
defaultValue={getDefaultValueForType(fieldDef.type)}
|
|
137
|
-
/>
|
|
138
|
-
);
|
|
139
139
|
}
|
|
140
140
|
|
|
141
141
|
/**
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ConfigurableFieldDef } from '@/vdb/framework/form-engine/form-engine-types.js';
|
|
2
|
+
|
|
3
|
+
import { ValueMode } from './value-transformers.js';
|
|
4
|
+
|
|
5
|
+
export type ListInputComponentKind = 'string' | 'configurable-operation' | 'relation' | 'custom-field';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* String lists are checked before the json-string mode so they always reach the
|
|
9
|
+
* tag-style StringListInput, which owns the entire array. ConfigurableOperationListInput
|
|
10
|
+
* splits the array into one input per element and loses numeric-looking values.
|
|
11
|
+
*/
|
|
12
|
+
export function selectListInputComponent(
|
|
13
|
+
fieldDef: ConfigurableFieldDef,
|
|
14
|
+
valueMode: ValueMode,
|
|
15
|
+
): ListInputComponentKind {
|
|
16
|
+
if (fieldDef.type === 'string') {
|
|
17
|
+
return 'string';
|
|
18
|
+
}
|
|
19
|
+
if (valueMode === 'json-string') {
|
|
20
|
+
return 'configurable-operation';
|
|
21
|
+
}
|
|
22
|
+
if (fieldDef.type === 'relation') {
|
|
23
|
+
return 'relation';
|
|
24
|
+
}
|
|
25
|
+
return 'custom-field';
|
|
26
|
+
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|