@wordpress/dataviews 6.0.0 → 7.0.0
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/CHANGELOG.md +25 -1
- package/README.md +42 -14
- package/build/components/dataviews/index.js +38 -6
- package/build/components/dataviews/index.js.map +1 -1
- package/build/components/dataviews-context/index.js +4 -1
- package/build/components/dataviews-context/index.js.map +1 -1
- package/build/components/dataviews-item-actions/index.js +1 -10
- package/build/components/dataviews-item-actions/index.js.map +1 -1
- package/build/components/dataviews-pagination/index.js +1 -1
- package/build/components/dataviews-pagination/index.js.map +1 -1
- package/build/components/dataviews-view-config/index.js +8 -5
- package/build/components/dataviews-view-config/index.js.map +1 -1
- package/build/components/dataviews-view-config/infinite-scroll-toggle.js +47 -0
- package/build/components/dataviews-view-config/infinite-scroll-toggle.js.map +1 -0
- package/build/dataform-controls/array.js +70 -0
- package/build/dataform-controls/array.js.map +1 -0
- package/build/dataform-controls/boolean.js +15 -7
- package/build/dataform-controls/boolean.js.map +1 -1
- package/build/dataform-controls/email.js +14 -7
- package/build/dataform-controls/email.js.map +1 -1
- package/build/dataform-controls/index.js +3 -1
- package/build/dataform-controls/index.js.map +1 -1
- package/build/dataform-controls/integer.js +14 -7
- package/build/dataform-controls/integer.js.map +1 -1
- package/build/dataform-controls/text.js +14 -7
- package/build/dataform-controls/text.js.map +1 -1
- package/build/dataforms-layouts/card/index.js +137 -0
- package/build/dataforms-layouts/card/index.js.map +1 -0
- package/build/dataforms-layouts/data-form-layout.js +2 -2
- package/build/dataforms-layouts/data-form-layout.js.map +1 -1
- package/build/dataforms-layouts/index.js +4 -0
- package/build/dataforms-layouts/index.js.map +1 -1
- package/build/dataforms-layouts/panel/dropdown.js +124 -0
- package/build/dataforms-layouts/panel/dropdown.js.map +1 -0
- package/build/dataforms-layouts/panel/index.js +34 -149
- package/build/dataforms-layouts/panel/index.js.map +1 -1
- package/build/dataforms-layouts/panel/modal.js +125 -0
- package/build/dataforms-layouts/panel/modal.js.map +1 -0
- package/build/dataforms-layouts/regular/index.js +10 -21
- package/build/dataforms-layouts/regular/index.js.map +1 -1
- package/build/dataviews-layouts/grid/index.js +24 -7
- package/build/dataviews-layouts/grid/index.js.map +1 -1
- package/build/dataviews-layouts/grid/preview-size-picker.js +11 -11
- package/build/dataviews-layouts/grid/preview-size-picker.js.map +1 -1
- package/build/dataviews-layouts/list/index.js +45 -27
- package/build/dataviews-layouts/list/index.js.map +1 -1
- package/build/dataviews-layouts/table/column-header-menu.js +3 -0
- package/build/dataviews-layouts/table/column-header-menu.js.map +1 -1
- package/build/dataviews-layouts/table/index.js +23 -8
- package/build/dataviews-layouts/table/index.js.map +1 -1
- package/build/field-types/array.js +2 -2
- package/build/field-types/array.js.map +1 -1
- package/build/normalize-form-fields.js +52 -13
- package/build/normalize-form-fields.js.map +1 -1
- package/build/types.js.map +1 -1
- package/build-module/components/dataviews/index.js +40 -8
- package/build-module/components/dataviews/index.js.map +1 -1
- package/build-module/components/dataviews-context/index.js +4 -1
- package/build-module/components/dataviews-context/index.js.map +1 -1
- package/build-module/components/dataviews-item-actions/index.js +1 -10
- package/build-module/components/dataviews-item-actions/index.js.map +1 -1
- package/build-module/components/dataviews-pagination/index.js +1 -1
- package/build-module/components/dataviews-pagination/index.js.map +1 -1
- package/build-module/components/dataviews-view-config/index.js +8 -5
- package/build-module/components/dataviews-view-config/index.js.map +1 -1
- package/build-module/components/dataviews-view-config/infinite-scroll-toggle.js +39 -0
- package/build-module/components/dataviews-view-config/infinite-scroll-toggle.js.map +1 -0
- package/build-module/dataform-controls/array.js +63 -0
- package/build-module/dataform-controls/array.js.map +1 -0
- package/build-module/dataform-controls/boolean.js +15 -7
- package/build-module/dataform-controls/boolean.js.map +1 -1
- package/build-module/dataform-controls/email.js +15 -8
- package/build-module/dataform-controls/email.js.map +1 -1
- package/build-module/dataform-controls/index.js +3 -1
- package/build-module/dataform-controls/index.js.map +1 -1
- package/build-module/dataform-controls/integer.js +15 -8
- package/build-module/dataform-controls/integer.js.map +1 -1
- package/build-module/dataform-controls/text.js +15 -8
- package/build-module/dataform-controls/text.js.map +1 -1
- package/build-module/dataforms-layouts/card/index.js +128 -0
- package/build-module/dataforms-layouts/card/index.js.map +1 -0
- package/build-module/dataforms-layouts/data-form-layout.js +2 -2
- package/build-module/dataforms-layouts/data-form-layout.js.map +1 -1
- package/build-module/dataforms-layouts/index.js +4 -0
- package/build-module/dataforms-layouts/index.js.map +1 -1
- package/build-module/dataforms-layouts/panel/dropdown.js +118 -0
- package/build-module/dataforms-layouts/panel/dropdown.js.map +1 -0
- package/build-module/dataforms-layouts/panel/index.js +37 -152
- package/build-module/dataforms-layouts/panel/index.js.map +1 -1
- package/build-module/dataforms-layouts/panel/modal.js +119 -0
- package/build-module/dataforms-layouts/panel/modal.js.map +1 -0
- package/build-module/dataforms-layouts/regular/index.js +10 -21
- package/build-module/dataforms-layouts/regular/index.js.map +1 -1
- package/build-module/dataviews-layouts/grid/index.js +25 -8
- package/build-module/dataviews-layouts/grid/index.js.map +1 -1
- package/build-module/dataviews-layouts/grid/preview-size-picker.js +11 -11
- package/build-module/dataviews-layouts/grid/preview-size-picker.js.map +1 -1
- package/build-module/dataviews-layouts/list/index.js +47 -29
- package/build-module/dataviews-layouts/list/index.js.map +1 -1
- package/build-module/dataviews-layouts/table/column-header-menu.js +3 -0
- package/build-module/dataviews-layouts/table/column-header-menu.js.map +1 -1
- package/build-module/dataviews-layouts/table/index.js +23 -8
- package/build-module/dataviews-layouts/table/index.js.map +1 -1
- package/build-module/field-types/array.js +2 -2
- package/build-module/field-types/array.js.map +1 -1
- package/build-module/normalize-form-fields.js +50 -13
- package/build-module/normalize-form-fields.js.map +1 -1
- package/build-module/types.js.map +1 -1
- package/build-style/style-rtl.css +53 -16
- package/build-style/style.css +53 -16
- package/build-types/components/dataform/stories/index.story.d.ts +41 -17
- package/build-types/components/dataform/stories/index.story.d.ts.map +1 -1
- package/build-types/components/dataviews/index.d.ts +5 -2
- package/build-types/components/dataviews/index.d.ts.map +1 -1
- package/build-types/components/dataviews/stories/fixtures.d.ts.map +1 -1
- package/build-types/components/dataviews/stories/index.story.d.ts +2 -1
- package/build-types/components/dataviews/stories/index.story.d.ts.map +1 -1
- package/build-types/components/dataviews-context/index.d.ts +4 -1
- package/build-types/components/dataviews-context/index.d.ts.map +1 -1
- package/build-types/components/dataviews-item-actions/index.d.ts.map +1 -1
- package/build-types/components/dataviews-view-config/index.d.ts.map +1 -1
- package/build-types/components/dataviews-view-config/infinite-scroll-toggle.d.ts +2 -0
- package/build-types/components/dataviews-view-config/infinite-scroll-toggle.d.ts.map +1 -0
- package/build-types/dataform-controls/array.d.ts +6 -0
- package/build-types/dataform-controls/array.d.ts.map +1 -0
- package/build-types/dataform-controls/boolean.d.ts.map +1 -1
- package/build-types/dataform-controls/email.d.ts.map +1 -1
- package/build-types/dataform-controls/index.d.ts.map +1 -1
- package/build-types/dataform-controls/integer.d.ts.map +1 -1
- package/build-types/dataform-controls/text.d.ts.map +1 -1
- package/build-types/dataforms-layouts/card/index.d.ts +13 -0
- package/build-types/dataforms-layouts/card/index.d.ts.map +1 -0
- package/build-types/dataforms-layouts/index.d.ts.map +1 -1
- package/build-types/dataforms-layouts/panel/dropdown.d.ts +14 -0
- package/build-types/dataforms-layouts/panel/dropdown.d.ts.map +1 -0
- package/build-types/dataforms-layouts/panel/index.d.ts.map +1 -1
- package/build-types/dataforms-layouts/panel/modal.d.ts +13 -0
- package/build-types/dataforms-layouts/panel/modal.d.ts.map +1 -0
- package/build-types/dataforms-layouts/regular/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/grid/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/grid/preview-size-picker.d.ts +1 -1
- package/build-types/dataviews-layouts/grid/preview-size-picker.d.ts.map +1 -1
- package/build-types/dataviews-layouts/list/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/column-header-menu.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/index.d.ts.map +1 -1
- package/build-types/field-types/boolean.d.ts +1 -1
- package/build-types/normalize-form-fields.d.ts +10 -3
- package/build-types/normalize-form-fields.d.ts.map +1 -1
- package/build-types/test/normalize-form-fields.d.ts +2 -0
- package/build-types/test/normalize-form-fields.d.ts.map +1 -0
- package/build-types/types.d.ts +54 -6
- package/build-types/types.d.ts.map +1 -1
- package/build-wp/index.js +3062 -1147
- package/package.json +15 -15
- package/src/components/dataform/stories/index.story.tsx +478 -91
- package/src/components/dataviews/index.tsx +50 -14
- package/src/components/dataviews/stories/fixtures.tsx +98 -7
- package/src/components/dataviews/stories/index.story.tsx +137 -4
- package/src/components/dataviews/style.scss +4 -0
- package/src/components/dataviews-context/index.ts +6 -2
- package/src/components/dataviews-item-actions/index.tsx +7 -16
- package/src/components/dataviews-pagination/index.tsx +1 -1
- package/src/components/dataviews-view-config/index.tsx +13 -5
- package/src/components/dataviews-view-config/infinite-scroll-toggle.tsx +39 -0
- package/src/dataform-controls/array.tsx +85 -0
- package/src/dataform-controls/boolean.tsx +24 -10
- package/src/dataform-controls/email.tsx +24 -11
- package/src/dataform-controls/index.tsx +3 -1
- package/src/dataform-controls/integer.tsx +27 -13
- package/src/dataform-controls/text.tsx +24 -11
- package/src/dataforms-layouts/card/index.tsx +154 -0
- package/src/dataforms-layouts/card/style.scss +3 -0
- package/src/dataforms-layouts/data-form-layout.tsx +2 -2
- package/src/dataforms-layouts/index.tsx +5 -0
- package/src/dataforms-layouts/panel/dropdown.tsx +160 -0
- package/src/dataforms-layouts/panel/index.tsx +49 -189
- package/src/dataforms-layouts/panel/modal.tsx +165 -0
- package/src/dataforms-layouts/panel/style.scss +4 -0
- package/src/dataforms-layouts/regular/index.tsx +20 -23
- package/src/dataviews-layouts/grid/index.tsx +32 -5
- package/src/dataviews-layouts/grid/preview-size-picker.tsx +15 -13
- package/src/dataviews-layouts/grid/style.scss +3 -1
- package/src/dataviews-layouts/list/index.tsx +65 -31
- package/src/dataviews-layouts/list/style.scss +7 -3
- package/src/dataviews-layouts/table/column-header-menu.tsx +4 -0
- package/src/dataviews-layouts/table/index.tsx +27 -1
- package/src/field-types/array.tsx +1 -1
- package/src/normalize-form-fields.ts +63 -17
- package/src/test/dataform.tsx +181 -3
- package/src/test/dataviews.tsx +38 -0
- package/src/test/filter-and-sort-data-view.js +123 -64
- package/src/test/normalize-form-fields.ts +247 -0
- package/src/types.ts +72 -6
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_element","_icons","_warning","_compose","_constants","_dataviewsLayouts","_dataviewsContext","_lockUnlock","_jsxRuntime","Menu","unlock","componentsPrivateApis","DATAVIEWS_CONFIG_POPOVER_PROPS","className","placement","offset","ViewTypeMenu","view","onChangeView","defaultLayouts","useContext","DataViewsContext","availableLayouts","Object","keys","length","activeView","VIEW_LAYOUTS","find","v","type","jsxs","children","jsx","TriggerButton","render","Button","size","icon","label","__","Popover","map","layout","config","RadioItem","value","name","checked","hideOnClick","onChange","e","target","viewWithoutLayout","globalThis","SCRIPT_DEBUG","warning","ItemLabel","SortFieldControl","fields","orderOptions","useMemo","sortableFields","filter","field","enableSorting","id","SelectControl","__nextHasNoMarginBottom","__next40pxDefaultSize","sort","options","direction","showLevels","SortDirectionControl","__experimentalToggleGroupControl","isBlock","newDirection","SORTING_DIRECTIONS","__experimentalToggleGroupControlOptionIcon","sortIcons","sortLabels","ItemsPerPageControl","perPageSizes","perPage","disabled","newItemsPerPage","newItemsPerPageNumber","undefined","parseInt","page","__experimentalToggleGroupControlOption","toString","PreviewOptions","previewOptions","onChangePreviewOption","onMenuOpenChange","activeOption","focusPreviewOptionsField","setTimeout","element","document","querySelector","HTMLElement","focus","onOpenChange","moreVertical","FieldItem","description","isVisible","isFirst","isLast","canMove","onToggleVisibility","onMoveUp","onMoveDown","isChangingPreviewOption","setIsChangingPreviewOption","useState","focusVisibilityField","__experimentalItem","__experimentalHStack","expanded","clsx","justify","enableHiding","Icon","lock","Fragment","accessibleWhenDisabled","onClick","chevronUp","sprintf","chevronDown","unseen","seen","_x","RegularFieldItem","index","_view$fields","visibleFieldIds","includes","fieldId","_visibleFieldIds$slic","slice","_visibleFieldIds$slic2","isDefined","item","FieldControl","_view$fields2","togglableFields","titleField","mediaField","descriptionField","Boolean","hiddenFields","f","visibleFields","previewField","previewFields","previewFieldUI","_view$showMedia","isPreviewFieldVisible","showMedia","newPreviewId","lockedFields","isVisibleFlag","ui","visibleLockedFields","_view$isVisibleFlag","hiddenLockedFields","_view$isVisibleFlag2","__experimentalVStack","spacing","__experimentalItemGroup","isBordered","isSeparated","BaseControl","VisualLabel","style","margin","SettingsSection","title","__experimentalGrid","columns","gap","__experimentalHeading","level","__experimentalText","variant","DataviewsViewConfigDropdown","popoverId","useInstanceId","_DataViewsViewConfig","activeLayout","Dropdown","expandOnMobile","popoverProps","renderToggle","onToggle","isOpen","cog","renderContent","__experimentalDropdownContentWrapper","paddingSize","viewConfigOptions","DataViewsViewConfig","memo","_default","exports","default"],"sources":["@wordpress/dataviews/src/components/dataviews-view-config/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ChangeEvent, ReactNode } from 'react';\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tDropdown,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n\tSelectControl,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalGrid as Grid,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalText as Text,\n\tprivateApis as componentsPrivateApis,\n\tBaseControl,\n\tIcon,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { memo, useContext, useMemo, useState } from '@wordpress/element';\nimport {\n\tchevronDown,\n\tchevronUp,\n\tcog,\n\tseen,\n\tunseen,\n\tlock,\n\tmoreVertical,\n} from '@wordpress/icons';\nimport warning from '@wordpress/warning';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { SORTING_DIRECTIONS, sortIcons, sortLabels } from '../../constants';\nimport { VIEW_LAYOUTS } from '../../dataviews-layouts';\nimport type { NormalizedField, View } from '../../types';\nimport DataViewsContext from '../dataviews-context';\nimport { unlock } from '../../lock-unlock';\n\nconst { Menu } = unlock( componentsPrivateApis );\n\nconst DATAVIEWS_CONFIG_POPOVER_PROPS = {\n\tclassName: 'dataviews-config__popover',\n\tplacement: 'bottom-end',\n\toffset: 9,\n};\n\nexport function ViewTypeMenu() {\n\tconst { view, onChangeView, defaultLayouts } =\n\t\tuseContext( DataViewsContext );\n\tconst availableLayouts = Object.keys( defaultLayouts );\n\tif ( availableLayouts.length <= 1 ) {\n\t\treturn null;\n\t}\n\tconst activeView = VIEW_LAYOUTS.find( ( v ) => view.type === v.type );\n\treturn (\n\t\t<Menu>\n\t\t\t<Menu.TriggerButton\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ticon={ activeView?.icon }\n\t\t\t\t\t\tlabel={ __( 'Layout' ) }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t/>\n\t\t\t<Menu.Popover>\n\t\t\t\t{ availableLayouts.map( ( layout ) => {\n\t\t\t\t\tconst config = VIEW_LAYOUTS.find(\n\t\t\t\t\t\t( v ) => v.type === layout\n\t\t\t\t\t);\n\t\t\t\t\tif ( ! config ) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Menu.RadioItem\n\t\t\t\t\t\t\tkey={ layout }\n\t\t\t\t\t\t\tvalue={ layout }\n\t\t\t\t\t\t\tname=\"view-actions-available-view\"\n\t\t\t\t\t\t\tchecked={ layout === view.type }\n\t\t\t\t\t\t\thideOnClick\n\t\t\t\t\t\t\tonChange={ (\n\t\t\t\t\t\t\t\te: ChangeEvent< HTMLInputElement >\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\tswitch ( e.target.value ) {\n\t\t\t\t\t\t\t\t\tcase 'list':\n\t\t\t\t\t\t\t\t\tcase 'grid':\n\t\t\t\t\t\t\t\t\tcase 'table':\n\t\t\t\t\t\t\t\t\t\tconst viewWithoutLayout = { ...view };\n\t\t\t\t\t\t\t\t\t\tif ( 'layout' in viewWithoutLayout ) {\n\t\t\t\t\t\t\t\t\t\t\tdelete viewWithoutLayout.layout;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\t\t\t\t\t\treturn onChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t...viewWithoutLayout,\n\t\t\t\t\t\t\t\t\t\t\ttype: e.target.value,\n\t\t\t\t\t\t\t\t\t\t\t...defaultLayouts[ e.target.value ],\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twarning( 'Invalid dataview' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Menu.ItemLabel>{ config.label }</Menu.ItemLabel>\n\t\t\t\t\t\t</Menu.RadioItem>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</Menu.Popover>\n\t\t</Menu>\n\t);\n}\n\nfunction SortFieldControl() {\n\tconst { view, fields, onChangeView } = useContext( DataViewsContext );\n\tconst orderOptions = useMemo( () => {\n\t\tconst sortableFields = fields.filter(\n\t\t\t( field ) => field.enableSorting !== false\n\t\t);\n\t\treturn sortableFields.map( ( field ) => {\n\t\t\treturn {\n\t\t\t\tlabel: field.label,\n\t\t\t\tvalue: field.id,\n\t\t\t};\n\t\t} );\n\t}, [ fields ] );\n\n\treturn (\n\t\t<SelectControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Sort by' ) }\n\t\t\tvalue={ view.sort?.field }\n\t\t\toptions={ orderOptions }\n\t\t\tonChange={ ( value: string ) => {\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tsort: {\n\t\t\t\t\t\tdirection: view?.sort?.direction || 'desc',\n\t\t\t\t\t\tfield: value,\n\t\t\t\t\t},\n\t\t\t\t\tshowLevels: false,\n\t\t\t\t} );\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nfunction SortDirectionControl() {\n\tconst { view, fields, onChangeView } = useContext( DataViewsContext );\n\n\tconst sortableFields = fields.filter(\n\t\t( field ) => field.enableSorting !== false\n\t);\n\tif ( sortableFields.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tlet value = view.sort?.direction;\n\tif ( ! value && view.sort?.field ) {\n\t\tvalue = 'desc';\n\t}\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\tclassName=\"dataviews-view-config__sort-direction\"\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tisBlock\n\t\t\tlabel={ __( 'Order' ) }\n\t\t\tvalue={ value }\n\t\t\tonChange={ ( newDirection ) => {\n\t\t\t\tif ( newDirection === 'asc' || newDirection === 'desc' ) {\n\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t...view,\n\t\t\t\t\t\tsort: {\n\t\t\t\t\t\t\tdirection: newDirection,\n\t\t\t\t\t\t\tfield:\n\t\t\t\t\t\t\t\tview.sort?.field ||\n\t\t\t\t\t\t\t\t// If there is no field assigned as the sorting field assign the first sortable field.\n\t\t\t\t\t\t\t\tfields.find(\n\t\t\t\t\t\t\t\t\t( field ) => field.enableSorting !== false\n\t\t\t\t\t\t\t\t)?.id ||\n\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tshowLevels: false,\n\t\t\t\t\t} );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\twarning( 'Invalid direction' );\n\t\t\t} }\n\t\t>\n\t\t\t{ SORTING_DIRECTIONS.map( ( direction ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\tkey={ direction }\n\t\t\t\t\t\tvalue={ direction }\n\t\t\t\t\t\ticon={ sortIcons[ direction ] }\n\t\t\t\t\t\tlabel={ sortLabels[ direction ] }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ToggleGroupControl>\n\t);\n}\n\nfunction ItemsPerPageControl() {\n\tconst { view, perPageSizes, onChangeView } = useContext( DataViewsContext );\n\tif ( perPageSizes.length < 2 || perPageSizes.length > 6 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tisBlock\n\t\t\tlabel={ __( 'Items per page' ) }\n\t\t\tvalue={ view.perPage || 10 }\n\t\t\tdisabled={ ! view?.sort?.field }\n\t\t\tonChange={ ( newItemsPerPage ) => {\n\t\t\t\tconst newItemsPerPageNumber =\n\t\t\t\t\ttypeof newItemsPerPage === 'number' ||\n\t\t\t\t\tnewItemsPerPage === undefined\n\t\t\t\t\t\t? newItemsPerPage\n\t\t\t\t\t\t: parseInt( newItemsPerPage, 10 );\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tperPage: newItemsPerPageNumber,\n\t\t\t\t\tpage: 1,\n\t\t\t\t} );\n\t\t\t} }\n\t\t>\n\t\t\t{ perPageSizes.map( ( value ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tlabel={ value.toString() }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ToggleGroupControl>\n\t);\n}\n\nfunction PreviewOptions( {\n\tpreviewOptions,\n\tonChangePreviewOption,\n\tonMenuOpenChange,\n\tactiveOption,\n}: {\n\tpreviewOptions?: Array< { label: string; id: string } >;\n\tonChangePreviewOption?: ( newPreviewOption: string ) => void;\n\tonMenuOpenChange: ( isOpen: boolean ) => void;\n\tactiveOption?: string;\n} ) {\n\tconst focusPreviewOptionsField = ( id: string ) => {\n\t\t// Focus the visibility button to avoid focus loss.\n\t\t// Our code is safe against the component being unmounted, so we don't need to worry about cleaning the timeout.\n\t\t// eslint-disable-next-line @wordpress/react-no-unsafe-timeout\n\t\tsetTimeout( () => {\n\t\t\tconst element = document.querySelector(\n\t\t\t\t`.dataviews-field-control__field-${ id } .dataviews-field-control__field-preview-options-button`\n\t\t\t);\n\t\t\tif ( element instanceof HTMLElement ) {\n\t\t\t\telement.focus();\n\t\t\t}\n\t\t}, 50 );\n\t};\n\treturn (\n\t\t<Menu onOpenChange={ onMenuOpenChange }>\n\t\t\t<Menu.TriggerButton\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"dataviews-field-control__field-preview-options-button\"\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\tlabel={ __( 'Preview' ) }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t/>\n\t\t\t<Menu.Popover>\n\t\t\t\t{ previewOptions?.map( ( { id, label } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Menu.RadioItem\n\t\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\t\tvalue={ id }\n\t\t\t\t\t\t\tchecked={ id === activeOption }\n\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\tonChangePreviewOption?.( id );\n\t\t\t\t\t\t\t\tfocusPreviewOptionsField( id );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Menu.ItemLabel>{ label }</Menu.ItemLabel>\n\t\t\t\t\t\t</Menu.RadioItem>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</Menu.Popover>\n\t\t</Menu>\n\t);\n}\nfunction FieldItem( {\n\tfield,\n\tlabel,\n\tdescription,\n\tisVisible,\n\tisFirst,\n\tisLast,\n\tcanMove = true,\n\tonToggleVisibility,\n\tonMoveUp,\n\tonMoveDown,\n\tpreviewOptions,\n\tonChangePreviewOption,\n}: {\n\tfield: NormalizedField< any >;\n\tlabel?: string;\n\tdescription?: string;\n\tisVisible: boolean;\n\tisFirst?: boolean;\n\tisLast?: boolean;\n\tcanMove?: boolean;\n\tonToggleVisibility?: () => void;\n\tonMoveUp?: () => void;\n\tonMoveDown?: () => void;\n\tpreviewOptions?: Array< { label: string; id: string } >;\n\tonChangePreviewOption?: ( newPreviewOption: string ) => void;\n} ) {\n\tconst [ isChangingPreviewOption, setIsChangingPreviewOption ] =\n\t\tuseState< boolean >( false );\n\n\tconst focusVisibilityField = () => {\n\t\t// Focus the visibility button to avoid focus loss.\n\t\t// Our code is safe against the component being unmounted, so we don't need to worry about cleaning the timeout.\n\t\t// eslint-disable-next-line @wordpress/react-no-unsafe-timeout\n\t\tsetTimeout( () => {\n\t\t\tconst element = document.querySelector(\n\t\t\t\t`.dataviews-field-control__field-${ field.id } .dataviews-field-control__field-visibility-button`\n\t\t\t);\n\t\t\tif ( element instanceof HTMLElement ) {\n\t\t\t\telement.focus();\n\t\t\t}\n\t\t}, 50 );\n\t};\n\n\treturn (\n\t\t<Item>\n\t\t\t<HStack\n\t\t\t\texpanded\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\t'dataviews-field-control__field',\n\t\t\t\t\t`dataviews-field-control__field-${ field.id }`,\n\t\t\t\t\t// The actions are hidden when the mouse is not hovering the item, or focus\n\t\t\t\t\t// is outside the item.\n\t\t\t\t\t// For actions that require a popover, a menu etc, that would mean that when the interactive element\n\t\t\t\t\t// opens and the focus goes there the actions would be hidden.\n\t\t\t\t\t// To avoid that we add a class to the item, that makes sure actions are visible while there is some\n\t\t\t\t\t// interaction with the item.\n\t\t\t\t\t{ 'is-interacting': isChangingPreviewOption }\n\t\t\t\t) }\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t>\n\t\t\t\t<span className=\"dataviews-field-control__icon\">\n\t\t\t\t\t{ ! canMove && ! field.enableHiding && (\n\t\t\t\t\t\t<Icon icon={ lock } />\n\t\t\t\t\t) }\n\t\t\t\t</span>\n\t\t\t\t<span className=\"dataviews-field-control__label-sub-label-container\">\n\t\t\t\t\t<span className=\"dataviews-field-control__label\">\n\t\t\t\t\t\t{ label || field.label }\n\t\t\t\t\t</span>\n\t\t\t\t\t{ description && (\n\t\t\t\t\t\t<span className=\"dataviews-field-control__sub-label\">\n\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</span>\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tclassName=\"dataviews-field-control__actions\"\n\t\t\t\t>\n\t\t\t\t\t{ isVisible && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tdisabled={ isFirst || ! canMove }\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ onMoveUp }\n\t\t\t\t\t\t\t\ticon={ chevronUp }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tisFirst || ! canMove\n\t\t\t\t\t\t\t\t\t\t? __( \"This field can't be moved up\" )\n\t\t\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t\t\t\t__( 'Move %s up' ),\n\t\t\t\t\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tdisabled={ isLast || ! canMove }\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ onMoveDown }\n\t\t\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tisLast || ! canMove\n\t\t\t\t\t\t\t\t\t\t? __( \"This field can't be moved down\" )\n\t\t\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t\t\t\t__( 'Move %s down' ),\n\t\t\t\t\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t{ onToggleVisibility && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"dataviews-field-control__field-visibility-button\"\n\t\t\t\t\t\t\tdisabled={ ! field.enableHiding }\n\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonToggleVisibility();\n\t\t\t\t\t\t\t\tfocusVisibilityField();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\ticon={ isVisible ? unseen : seen }\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisVisible\n\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t\t\t_x( 'Hide %s', 'field' ),\n\t\t\t\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t\t\t_x( 'Show %s', 'field' ),\n\t\t\t\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ previewOptions && (\n\t\t\t\t\t\t<PreviewOptions\n\t\t\t\t\t\t\tpreviewOptions={ previewOptions }\n\t\t\t\t\t\t\tonChangePreviewOption={ onChangePreviewOption }\n\t\t\t\t\t\t\tonMenuOpenChange={ setIsChangingPreviewOption }\n\t\t\t\t\t\t\tactiveOption={ field.id }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t</Item>\n\t);\n}\n\nfunction RegularFieldItem( {\n\tindex,\n\tfield,\n\tview,\n\tonChangeView,\n}: {\n\tindex?: number;\n\tfield: NormalizedField< any >;\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n} ) {\n\tconst visibleFieldIds = view.fields ?? [];\n\tconst isVisible =\n\t\tindex !== undefined && visibleFieldIds.includes( field.id );\n\n\treturn (\n\t\t<FieldItem\n\t\t\tfield={ field }\n\t\t\tisVisible={ isVisible }\n\t\t\tisFirst={ index !== undefined && index < 1 }\n\t\t\tisLast={\n\t\t\t\tindex !== undefined && index === visibleFieldIds.length - 1\n\t\t\t}\n\t\t\tonToggleVisibility={ () => {\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tfields: isVisible\n\t\t\t\t\t\t? visibleFieldIds.filter(\n\t\t\t\t\t\t\t\t( fieldId ) => fieldId !== field.id\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: [ ...visibleFieldIds, field.id ],\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tonMoveUp={\n\t\t\t\tindex !== undefined\n\t\t\t\t\t? () => {\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\tfields: [\n\t\t\t\t\t\t\t\t\t...( visibleFieldIds.slice(\n\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\tindex - 1\n\t\t\t\t\t\t\t\t\t) ?? [] ),\n\t\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t\tvisibleFieldIds[ index - 1 ],\n\t\t\t\t\t\t\t\t\t...visibleFieldIds.slice( index + 1 ),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tonMoveDown={\n\t\t\t\tindex !== undefined\n\t\t\t\t\t? () => {\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\tfields: [\n\t\t\t\t\t\t\t\t\t...( visibleFieldIds.slice( 0, index ) ??\n\t\t\t\t\t\t\t\t\t\t[] ),\n\t\t\t\t\t\t\t\t\tvisibleFieldIds[ index + 1 ],\n\t\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t\t...visibleFieldIds.slice( index + 2 ),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t/>\n\t);\n}\n\nfunction isDefined< T >( item: T | undefined ): item is T {\n\treturn !! item;\n}\n\nfunction FieldControl() {\n\tconst { view, fields, onChangeView } = useContext( DataViewsContext );\n\n\tconst togglableFields = [\n\t\tview?.titleField,\n\t\tview?.mediaField,\n\t\tview?.descriptionField,\n\t].filter( Boolean );\n\tconst visibleFieldIds = view.fields ?? [];\n\tconst hiddenFields = fields.filter(\n\t\t( f ) =>\n\t\t\t! visibleFieldIds.includes( f.id ) &&\n\t\t\t! togglableFields.includes( f.id ) &&\n\t\t\tf.type !== 'media'\n\t);\n\tconst visibleFields = visibleFieldIds\n\t\t.map( ( fieldId ) => fields.find( ( f ) => f.id === fieldId ) )\n\t\t.filter( isDefined );\n\n\tif ( ! visibleFields?.length && ! hiddenFields?.length ) {\n\t\treturn null;\n\t}\n\tconst titleField = fields.find( ( f ) => f.id === view.titleField );\n\tconst previewField = fields.find( ( f ) => f.id === view.mediaField );\n\tconst descriptionField = fields.find(\n\t\t( f ) => f.id === view.descriptionField\n\t);\n\n\tconst previewFields = fields.filter( ( f ) => f.type === 'media' );\n\n\tlet previewFieldUI;\n\tif ( previewFields.length > 1 ) {\n\t\tconst isPreviewFieldVisible =\n\t\t\tisDefined( previewField ) && ( view.showMedia ?? true );\n\t\tpreviewFieldUI = isDefined( previewField ) && (\n\t\t\t<FieldItem\n\t\t\t\tkey={ previewField.id }\n\t\t\t\tfield={ previewField }\n\t\t\t\tlabel={ __( 'Preview' ) }\n\t\t\t\tdescription={ previewField.label }\n\t\t\t\tisVisible={ isPreviewFieldVisible }\n\t\t\t\tonToggleVisibility={ () => {\n\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t...view,\n\t\t\t\t\t\tshowMedia: ! isPreviewFieldVisible,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tcanMove={ false }\n\t\t\t\tpreviewOptions={ previewFields.map( ( field ) => ( {\n\t\t\t\t\tlabel: field.label,\n\t\t\t\t\tid: field.id,\n\t\t\t\t} ) ) }\n\t\t\t\tonChangePreviewOption={ ( newPreviewId ) =>\n\t\t\t\t\tonChangeView( { ...view, mediaField: newPreviewId } )\n\t\t\t\t}\n\t\t\t/>\n\t\t);\n\t}\n\tconst lockedFields = [\n\t\t{\n\t\t\tfield: titleField,\n\t\t\tisVisibleFlag: 'showTitle',\n\t\t},\n\t\t{\n\t\t\tfield: previewField,\n\t\t\tisVisibleFlag: 'showMedia',\n\t\t\tui: previewFieldUI,\n\t\t},\n\t\t{\n\t\t\tfield: descriptionField,\n\t\t\tisVisibleFlag: 'showDescription',\n\t\t},\n\t].filter( ( { field } ) => isDefined( field ) );\n\tconst visibleLockedFields = lockedFields.filter(\n\t\t( { field, isVisibleFlag } ) =>\n\t\t\t// @ts-expect-error\n\t\t\tisDefined( field ) && ( view[ isVisibleFlag ] ?? true )\n\t) as Array< {\n\t\tfield: NormalizedField< any >;\n\t\tisVisibleFlag: string;\n\t\tui?: ReactNode;\n\t} >;\n\tconst hiddenLockedFields = lockedFields.filter(\n\t\t( { field, isVisibleFlag } ) =>\n\t\t\t// @ts-expect-error\n\t\t\tisDefined( field ) && ! ( view[ isVisibleFlag ] ?? true )\n\t) as Array< {\n\t\tfield: NormalizedField< any >;\n\t\tisVisibleFlag: string;\n\t\tui?: ReactNode;\n\t} >;\n\n\treturn (\n\t\t<VStack className=\"dataviews-field-control\" spacing={ 6 }>\n\t\t\t<VStack className=\"dataviews-view-config__properties\" spacing={ 0 }>\n\t\t\t\t{ ( visibleLockedFields.length > 0 ||\n\t\t\t\t\t!! visibleFields?.length ) && (\n\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t{ visibleLockedFields.map(\n\t\t\t\t\t\t\t( { field, isVisibleFlag, ui } ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\tui ?? (\n\t\t\t\t\t\t\t\t\t\t<FieldItem\n\t\t\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t\t\tisVisible\n\t\t\t\t\t\t\t\t\t\t\tonToggleVisibility={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\t\t[ isVisibleFlag ]: false,\n\t\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\tcanMove={ false }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t{ visibleFields.map( ( field, index ) => (\n\t\t\t\t\t\t\t<RegularFieldItem\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\tindex={ index }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</ItemGroup>\n\t\t\t\t) }\n\t\t\t</VStack>\n\n\t\t\t{ ( !! hiddenFields?.length || !! hiddenLockedFields.length ) && (\n\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t<BaseControl.VisualLabel style={ { margin: 0 } }>\n\t\t\t\t\t\t{ __( 'Hidden' ) }\n\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t<VStack\n\t\t\t\t\t\tclassName=\"dataviews-view-config__properties\"\n\t\t\t\t\t\tspacing={ 0 }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t\t{ hiddenLockedFields.length > 0 &&\n\t\t\t\t\t\t\t\thiddenLockedFields.map(\n\t\t\t\t\t\t\t\t\t( { field, isVisibleFlag, ui } ) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\tui ?? (\n\t\t\t\t\t\t\t\t\t\t\t\t<FieldItem\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t\t\t\t\tisVisible={ false }\n\t\t\t\t\t\t\t\t\t\t\t\t\tonToggleVisibility={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[ isVisibleFlag ]:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\tcanMove={ false }\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ hiddenFields.map( ( field ) => (\n\t\t\t\t\t\t\t\t<RegularFieldItem\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t</VStack>\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nfunction SettingsSection( {\n\ttitle,\n\tdescription,\n\tchildren,\n}: {\n\ttitle: string;\n\tdescription?: string;\n\tchildren: React.ReactNode;\n} ) {\n\treturn (\n\t\t<Grid columns={ 12 } className=\"dataviews-settings-section\" gap={ 4 }>\n\t\t\t<div className=\"dataviews-settings-section__sidebar\">\n\t\t\t\t<Heading\n\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\tclassName=\"dataviews-settings-section__title\"\n\t\t\t\t>\n\t\t\t\t\t{ title }\n\t\t\t\t</Heading>\n\t\t\t\t{ description && (\n\t\t\t\t\t<Text\n\t\t\t\t\t\tvariant=\"muted\"\n\t\t\t\t\t\tclassName=\"dataviews-settings-section__description\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ description }\n\t\t\t\t\t</Text>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t<Grid\n\t\t\t\tcolumns={ 8 }\n\t\t\t\tgap={ 4 }\n\t\t\t\tclassName=\"dataviews-settings-section__content\"\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</Grid>\n\t\t</Grid>\n\t);\n}\n\nexport function DataviewsViewConfigDropdown() {\n\tconst { view } = useContext( DataViewsContext );\n\tconst popoverId = useInstanceId(\n\t\t_DataViewsViewConfig,\n\t\t'dataviews-view-config-dropdown'\n\t);\n\tconst activeLayout = VIEW_LAYOUTS.find(\n\t\t( layout ) => layout.type === view.type\n\t);\n\treturn (\n\t\t<Dropdown\n\t\t\texpandOnMobile\n\t\t\tpopoverProps={ {\n\t\t\t\t...DATAVIEWS_CONFIG_POPOVER_PROPS,\n\t\t\t\tid: popoverId,\n\t\t\t} }\n\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ticon={ cog }\n\t\t\t\t\t\tlabel={ _x( 'View options', 'View is used as a noun' ) }\n\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\taria-expanded={ isOpen ? 'true' : 'false' }\n\t\t\t\t\t\taria-controls={ popoverId }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper\n\t\t\t\t\tpaddingSize=\"medium\"\n\t\t\t\t\tclassName=\"dataviews-config__popover-content-wrapper\"\n\t\t\t\t>\n\t\t\t\t\t<VStack className=\"dataviews-view-config\" spacing={ 6 }>\n\t\t\t\t\t\t<SettingsSection title={ __( 'Appearance' ) }>\n\t\t\t\t\t\t\t<HStack expanded className=\"is-divided-in-two\">\n\t\t\t\t\t\t\t\t<SortFieldControl />\n\t\t\t\t\t\t\t\t<SortDirectionControl />\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t{ !! activeLayout?.viewConfigOptions && (\n\t\t\t\t\t\t\t\t<activeLayout.viewConfigOptions />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<ItemsPerPageControl />\n\t\t\t\t\t\t</SettingsSection>\n\t\t\t\t\t\t<SettingsSection title={ __( 'Properties' ) }>\n\t\t\t\t\t\t\t<FieldControl />\n\t\t\t\t\t\t</SettingsSection>\n\t\t\t\t\t</VStack>\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction _DataViewsViewConfig() {\n\treturn (\n\t\t<>\n\t\t\t<ViewTypeMenu />\n\t\t\t<DataviewsViewConfigDropdown />\n\t\t</>\n\t);\n}\n\nconst DataViewsViewConfig = memo( _DataViewsViewConfig );\n\nexport default DataViewsViewConfig;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_element","_icons","_warning","_compose","_constants","_dataviewsLayouts","_dataviewsContext","_infiniteScrollToggle","_lockUnlock","_jsxRuntime","Menu","unlock","componentsPrivateApis","DATAVIEWS_CONFIG_POPOVER_PROPS","className","placement","offset","ViewTypeMenu","view","onChangeView","defaultLayouts","useContext","DataViewsContext","availableLayouts","Object","keys","length","activeView","VIEW_LAYOUTS","find","v","type","jsxs","children","jsx","TriggerButton","render","Button","size","icon","label","__","Popover","map","layout","config","RadioItem","value","name","checked","hideOnClick","onChange","e","target","viewWithoutLayout","globalThis","SCRIPT_DEBUG","warning","ItemLabel","SortFieldControl","fields","orderOptions","useMemo","sortableFields","filter","field","enableSorting","id","SelectControl","__nextHasNoMarginBottom","__next40pxDefaultSize","sort","options","direction","showLevels","SortDirectionControl","__experimentalToggleGroupControl","isBlock","newDirection","SORTING_DIRECTIONS","__experimentalToggleGroupControlOptionIcon","sortIcons","sortLabels","ItemsPerPageControl","infiniteScrollEnabled","perPageSizes","perPage","disabled","newItemsPerPage","newItemsPerPageNumber","undefined","parseInt","page","__experimentalToggleGroupControlOption","toString","PreviewOptions","previewOptions","onChangePreviewOption","onMenuOpenChange","activeOption","focusPreviewOptionsField","setTimeout","element","document","querySelector","HTMLElement","focus","onOpenChange","moreVertical","FieldItem","description","isVisible","isFirst","isLast","canMove","onToggleVisibility","onMoveUp","onMoveDown","isChangingPreviewOption","setIsChangingPreviewOption","useState","focusVisibilityField","__experimentalItem","__experimentalHStack","expanded","clsx","justify","enableHiding","Icon","lock","Fragment","accessibleWhenDisabled","onClick","chevronUp","sprintf","chevronDown","unseen","seen","_x","RegularFieldItem","index","_view$fields","visibleFieldIds","includes","fieldId","_visibleFieldIds$slic","slice","_visibleFieldIds$slic2","isDefined","item","FieldControl","_view$fields2","togglableFields","titleField","mediaField","descriptionField","Boolean","hiddenFields","f","visibleFields","previewField","previewFields","previewFieldUI","_view$showMedia","isPreviewFieldVisible","showMedia","newPreviewId","lockedFields","isVisibleFlag","ui","visibleLockedFields","_view$isVisibleFlag","hiddenLockedFields","_view$isVisibleFlag2","__experimentalVStack","spacing","__experimentalItemGroup","isBordered","isSeparated","BaseControl","VisualLabel","style","margin","SettingsSection","title","__experimentalGrid","columns","gap","__experimentalHeading","level","__experimentalText","variant","DataviewsViewConfigDropdown","popoverId","useInstanceId","_DataViewsViewConfig","activeLayout","Dropdown","expandOnMobile","popoverProps","renderToggle","onToggle","isOpen","cog","renderContent","__experimentalDropdownContentWrapper","paddingSize","viewConfigOptions","default","DataViewsViewConfig","memo","_default","exports"],"sources":["@wordpress/dataviews/src/components/dataviews-view-config/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ChangeEvent, ReactNode } from 'react';\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tDropdown,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n\tSelectControl,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalGrid as Grid,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalText as Text,\n\tprivateApis as componentsPrivateApis,\n\tBaseControl,\n\tIcon,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { memo, useContext, useMemo, useState } from '@wordpress/element';\nimport {\n\tchevronDown,\n\tchevronUp,\n\tcog,\n\tseen,\n\tunseen,\n\tlock,\n\tmoreVertical,\n} from '@wordpress/icons';\nimport warning from '@wordpress/warning';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { SORTING_DIRECTIONS, sortIcons, sortLabels } from '../../constants';\nimport { VIEW_LAYOUTS } from '../../dataviews-layouts';\nimport type { NormalizedField, View } from '../../types';\nimport DataViewsContext from '../dataviews-context';\nimport InfiniteScrollToggle from './infinite-scroll-toggle';\nimport { unlock } from '../../lock-unlock';\n\nconst { Menu } = unlock( componentsPrivateApis );\n\nconst DATAVIEWS_CONFIG_POPOVER_PROPS = {\n\tclassName: 'dataviews-config__popover',\n\tplacement: 'bottom-end',\n\toffset: 9,\n};\n\nexport function ViewTypeMenu() {\n\tconst { view, onChangeView, defaultLayouts } =\n\t\tuseContext( DataViewsContext );\n\tconst availableLayouts = Object.keys( defaultLayouts );\n\tif ( availableLayouts.length <= 1 ) {\n\t\treturn null;\n\t}\n\tconst activeView = VIEW_LAYOUTS.find( ( v ) => view.type === v.type );\n\treturn (\n\t\t<Menu>\n\t\t\t<Menu.TriggerButton\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ticon={ activeView?.icon }\n\t\t\t\t\t\tlabel={ __( 'Layout' ) }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t/>\n\t\t\t<Menu.Popover>\n\t\t\t\t{ availableLayouts.map( ( layout ) => {\n\t\t\t\t\tconst config = VIEW_LAYOUTS.find(\n\t\t\t\t\t\t( v ) => v.type === layout\n\t\t\t\t\t);\n\t\t\t\t\tif ( ! config ) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Menu.RadioItem\n\t\t\t\t\t\t\tkey={ layout }\n\t\t\t\t\t\t\tvalue={ layout }\n\t\t\t\t\t\t\tname=\"view-actions-available-view\"\n\t\t\t\t\t\t\tchecked={ layout === view.type }\n\t\t\t\t\t\t\thideOnClick\n\t\t\t\t\t\t\tonChange={ (\n\t\t\t\t\t\t\t\te: ChangeEvent< HTMLInputElement >\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\tswitch ( e.target.value ) {\n\t\t\t\t\t\t\t\t\tcase 'list':\n\t\t\t\t\t\t\t\t\tcase 'grid':\n\t\t\t\t\t\t\t\t\tcase 'table':\n\t\t\t\t\t\t\t\t\t\tconst viewWithoutLayout = { ...view };\n\t\t\t\t\t\t\t\t\t\tif ( 'layout' in viewWithoutLayout ) {\n\t\t\t\t\t\t\t\t\t\t\tdelete viewWithoutLayout.layout;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn onChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t...viewWithoutLayout,\n\t\t\t\t\t\t\t\t\t\t\ttype: e.target.value,\n\t\t\t\t\t\t\t\t\t\t\t...defaultLayouts[ e.target.value ],\n\t\t\t\t\t\t\t\t\t\t} as View );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twarning( 'Invalid dataview' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Menu.ItemLabel>{ config.label }</Menu.ItemLabel>\n\t\t\t\t\t\t</Menu.RadioItem>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</Menu.Popover>\n\t\t</Menu>\n\t);\n}\n\nfunction SortFieldControl() {\n\tconst { view, fields, onChangeView } = useContext( DataViewsContext );\n\tconst orderOptions = useMemo( () => {\n\t\tconst sortableFields = fields.filter(\n\t\t\t( field ) => field.enableSorting !== false\n\t\t);\n\t\treturn sortableFields.map( ( field ) => {\n\t\t\treturn {\n\t\t\t\tlabel: field.label,\n\t\t\t\tvalue: field.id,\n\t\t\t};\n\t\t} );\n\t}, [ fields ] );\n\n\treturn (\n\t\t<SelectControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Sort by' ) }\n\t\t\tvalue={ view.sort?.field }\n\t\t\toptions={ orderOptions }\n\t\t\tonChange={ ( value: string ) => {\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tsort: {\n\t\t\t\t\t\tdirection: view?.sort?.direction || 'desc',\n\t\t\t\t\t\tfield: value,\n\t\t\t\t\t},\n\t\t\t\t\tshowLevels: false,\n\t\t\t\t} );\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nfunction SortDirectionControl() {\n\tconst { view, fields, onChangeView } = useContext( DataViewsContext );\n\n\tconst sortableFields = fields.filter(\n\t\t( field ) => field.enableSorting !== false\n\t);\n\tif ( sortableFields.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tlet value = view.sort?.direction;\n\tif ( ! value && view.sort?.field ) {\n\t\tvalue = 'desc';\n\t}\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\tclassName=\"dataviews-view-config__sort-direction\"\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tisBlock\n\t\t\tlabel={ __( 'Order' ) }\n\t\t\tvalue={ value }\n\t\t\tonChange={ ( newDirection ) => {\n\t\t\t\tif ( newDirection === 'asc' || newDirection === 'desc' ) {\n\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t...view,\n\t\t\t\t\t\tsort: {\n\t\t\t\t\t\t\tdirection: newDirection,\n\t\t\t\t\t\t\tfield:\n\t\t\t\t\t\t\t\tview.sort?.field ||\n\t\t\t\t\t\t\t\t// If there is no field assigned as the sorting field assign the first sortable field.\n\t\t\t\t\t\t\t\tfields.find(\n\t\t\t\t\t\t\t\t\t( field ) => field.enableSorting !== false\n\t\t\t\t\t\t\t\t)?.id ||\n\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tshowLevels: false,\n\t\t\t\t\t} );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\twarning( 'Invalid direction' );\n\t\t\t} }\n\t\t>\n\t\t\t{ SORTING_DIRECTIONS.map( ( direction ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\tkey={ direction }\n\t\t\t\t\t\tvalue={ direction }\n\t\t\t\t\t\ticon={ sortIcons[ direction ] }\n\t\t\t\t\t\tlabel={ sortLabels[ direction ] }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ToggleGroupControl>\n\t);\n}\n\nfunction ItemsPerPageControl() {\n\tconst { view, config, onChangeView } = useContext( DataViewsContext );\n\tconst { infiniteScrollEnabled } = view;\n\tif (\n\t\t! config ||\n\t\t! config.perPageSizes ||\n\t\tconfig.perPageSizes.length < 2 ||\n\t\tconfig.perPageSizes.length > 6 ||\n\t\tinfiniteScrollEnabled\n\t) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tisBlock\n\t\t\tlabel={ __( 'Items per page' ) }\n\t\t\tvalue={ view.perPage || 10 }\n\t\t\tdisabled={ ! view?.sort?.field }\n\t\t\tonChange={ ( newItemsPerPage ) => {\n\t\t\t\tconst newItemsPerPageNumber =\n\t\t\t\t\ttypeof newItemsPerPage === 'number' ||\n\t\t\t\t\tnewItemsPerPage === undefined\n\t\t\t\t\t\t? newItemsPerPage\n\t\t\t\t\t\t: parseInt( newItemsPerPage, 10 );\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tperPage: newItemsPerPageNumber,\n\t\t\t\t\tpage: 1,\n\t\t\t\t} );\n\t\t\t} }\n\t\t>\n\t\t\t{ config.perPageSizes.map( ( value ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tlabel={ value.toString() }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ToggleGroupControl>\n\t);\n}\n\nfunction PreviewOptions( {\n\tpreviewOptions,\n\tonChangePreviewOption,\n\tonMenuOpenChange,\n\tactiveOption,\n}: {\n\tpreviewOptions?: Array< { label: string; id: string } >;\n\tonChangePreviewOption?: ( newPreviewOption: string ) => void;\n\tonMenuOpenChange: ( isOpen: boolean ) => void;\n\tactiveOption?: string;\n} ) {\n\tconst focusPreviewOptionsField = ( id: string ) => {\n\t\t// Focus the visibility button to avoid focus loss.\n\t\t// Our code is safe against the component being unmounted, so we don't need to worry about cleaning the timeout.\n\t\t// eslint-disable-next-line @wordpress/react-no-unsafe-timeout\n\t\tsetTimeout( () => {\n\t\t\tconst element = document.querySelector(\n\t\t\t\t`.dataviews-field-control__field-${ id } .dataviews-field-control__field-preview-options-button`\n\t\t\t);\n\t\t\tif ( element instanceof HTMLElement ) {\n\t\t\t\telement.focus();\n\t\t\t}\n\t\t}, 50 );\n\t};\n\treturn (\n\t\t<Menu onOpenChange={ onMenuOpenChange }>\n\t\t\t<Menu.TriggerButton\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"dataviews-field-control__field-preview-options-button\"\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\tlabel={ __( 'Preview' ) }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t/>\n\t\t\t<Menu.Popover>\n\t\t\t\t{ previewOptions?.map( ( { id, label } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Menu.RadioItem\n\t\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\t\tvalue={ id }\n\t\t\t\t\t\t\tchecked={ id === activeOption }\n\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\tonChangePreviewOption?.( id );\n\t\t\t\t\t\t\t\tfocusPreviewOptionsField( id );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Menu.ItemLabel>{ label }</Menu.ItemLabel>\n\t\t\t\t\t\t</Menu.RadioItem>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</Menu.Popover>\n\t\t</Menu>\n\t);\n}\nfunction FieldItem( {\n\tfield,\n\tlabel,\n\tdescription,\n\tisVisible,\n\tisFirst,\n\tisLast,\n\tcanMove = true,\n\tonToggleVisibility,\n\tonMoveUp,\n\tonMoveDown,\n\tpreviewOptions,\n\tonChangePreviewOption,\n}: {\n\tfield: NormalizedField< any >;\n\tlabel?: string;\n\tdescription?: string;\n\tisVisible: boolean;\n\tisFirst?: boolean;\n\tisLast?: boolean;\n\tcanMove?: boolean;\n\tonToggleVisibility?: () => void;\n\tonMoveUp?: () => void;\n\tonMoveDown?: () => void;\n\tpreviewOptions?: Array< { label: string; id: string } >;\n\tonChangePreviewOption?: ( newPreviewOption: string ) => void;\n} ) {\n\tconst [ isChangingPreviewOption, setIsChangingPreviewOption ] =\n\t\tuseState< boolean >( false );\n\n\tconst focusVisibilityField = () => {\n\t\t// Focus the visibility button to avoid focus loss.\n\t\t// Our code is safe against the component being unmounted, so we don't need to worry about cleaning the timeout.\n\t\t// eslint-disable-next-line @wordpress/react-no-unsafe-timeout\n\t\tsetTimeout( () => {\n\t\t\tconst element = document.querySelector(\n\t\t\t\t`.dataviews-field-control__field-${ field.id } .dataviews-field-control__field-visibility-button`\n\t\t\t);\n\t\t\tif ( element instanceof HTMLElement ) {\n\t\t\t\telement.focus();\n\t\t\t}\n\t\t}, 50 );\n\t};\n\n\treturn (\n\t\t<Item>\n\t\t\t<HStack\n\t\t\t\texpanded\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\t'dataviews-field-control__field',\n\t\t\t\t\t`dataviews-field-control__field-${ field.id }`,\n\t\t\t\t\t// The actions are hidden when the mouse is not hovering the item, or focus\n\t\t\t\t\t// is outside the item.\n\t\t\t\t\t// For actions that require a popover, a menu etc, that would mean that when the interactive element\n\t\t\t\t\t// opens and the focus goes there the actions would be hidden.\n\t\t\t\t\t// To avoid that we add a class to the item, that makes sure actions are visible while there is some\n\t\t\t\t\t// interaction with the item.\n\t\t\t\t\t{ 'is-interacting': isChangingPreviewOption }\n\t\t\t\t) }\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t>\n\t\t\t\t<span className=\"dataviews-field-control__icon\">\n\t\t\t\t\t{ ! canMove && ! field.enableHiding && (\n\t\t\t\t\t\t<Icon icon={ lock } />\n\t\t\t\t\t) }\n\t\t\t\t</span>\n\t\t\t\t<span className=\"dataviews-field-control__label-sub-label-container\">\n\t\t\t\t\t<span className=\"dataviews-field-control__label\">\n\t\t\t\t\t\t{ label || field.label }\n\t\t\t\t\t</span>\n\t\t\t\t\t{ description && (\n\t\t\t\t\t\t<span className=\"dataviews-field-control__sub-label\">\n\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</span>\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tclassName=\"dataviews-field-control__actions\"\n\t\t\t\t>\n\t\t\t\t\t{ isVisible && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tdisabled={ isFirst || ! canMove }\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ onMoveUp }\n\t\t\t\t\t\t\t\ticon={ chevronUp }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tisFirst || ! canMove\n\t\t\t\t\t\t\t\t\t\t? __( \"This field can't be moved up\" )\n\t\t\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t\t\t\t__( 'Move %s up' ),\n\t\t\t\t\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tdisabled={ isLast || ! canMove }\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ onMoveDown }\n\t\t\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tisLast || ! canMove\n\t\t\t\t\t\t\t\t\t\t? __( \"This field can't be moved down\" )\n\t\t\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t\t\t\t__( 'Move %s down' ),\n\t\t\t\t\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t{ onToggleVisibility && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"dataviews-field-control__field-visibility-button\"\n\t\t\t\t\t\t\tdisabled={ ! field.enableHiding }\n\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonToggleVisibility();\n\t\t\t\t\t\t\t\tfocusVisibilityField();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\ticon={ isVisible ? unseen : seen }\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisVisible\n\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t\t\t_x( 'Hide %s', 'field' ),\n\t\t\t\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t\t\t_x( 'Show %s', 'field' ),\n\t\t\t\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ previewOptions && (\n\t\t\t\t\t\t<PreviewOptions\n\t\t\t\t\t\t\tpreviewOptions={ previewOptions }\n\t\t\t\t\t\t\tonChangePreviewOption={ onChangePreviewOption }\n\t\t\t\t\t\t\tonMenuOpenChange={ setIsChangingPreviewOption }\n\t\t\t\t\t\t\tactiveOption={ field.id }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t</Item>\n\t);\n}\n\nfunction RegularFieldItem( {\n\tindex,\n\tfield,\n\tview,\n\tonChangeView,\n}: {\n\tindex?: number;\n\tfield: NormalizedField< any >;\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n} ) {\n\tconst visibleFieldIds = view.fields ?? [];\n\tconst isVisible =\n\t\tindex !== undefined && visibleFieldIds.includes( field.id );\n\n\treturn (\n\t\t<FieldItem\n\t\t\tfield={ field }\n\t\t\tisVisible={ isVisible }\n\t\t\tisFirst={ index !== undefined && index < 1 }\n\t\t\tisLast={\n\t\t\t\tindex !== undefined && index === visibleFieldIds.length - 1\n\t\t\t}\n\t\t\tonToggleVisibility={ () => {\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tfields: isVisible\n\t\t\t\t\t\t? visibleFieldIds.filter(\n\t\t\t\t\t\t\t\t( fieldId ) => fieldId !== field.id\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: [ ...visibleFieldIds, field.id ],\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tonMoveUp={\n\t\t\t\tindex !== undefined\n\t\t\t\t\t? () => {\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\tfields: [\n\t\t\t\t\t\t\t\t\t...( visibleFieldIds.slice(\n\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\tindex - 1\n\t\t\t\t\t\t\t\t\t) ?? [] ),\n\t\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t\tvisibleFieldIds[ index - 1 ],\n\t\t\t\t\t\t\t\t\t...visibleFieldIds.slice( index + 1 ),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tonMoveDown={\n\t\t\t\tindex !== undefined\n\t\t\t\t\t? () => {\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\tfields: [\n\t\t\t\t\t\t\t\t\t...( visibleFieldIds.slice( 0, index ) ??\n\t\t\t\t\t\t\t\t\t\t[] ),\n\t\t\t\t\t\t\t\t\tvisibleFieldIds[ index + 1 ],\n\t\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t\t...visibleFieldIds.slice( index + 2 ),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t/>\n\t);\n}\n\nfunction isDefined< T >( item: T | undefined ): item is T {\n\treturn !! item;\n}\n\nfunction FieldControl() {\n\tconst { view, fields, onChangeView } = useContext( DataViewsContext );\n\n\tconst togglableFields = [\n\t\tview?.titleField,\n\t\tview?.mediaField,\n\t\tview?.descriptionField,\n\t].filter( Boolean );\n\tconst visibleFieldIds = view.fields ?? [];\n\tconst hiddenFields = fields.filter(\n\t\t( f ) =>\n\t\t\t! visibleFieldIds.includes( f.id ) &&\n\t\t\t! togglableFields.includes( f.id ) &&\n\t\t\tf.type !== 'media'\n\t);\n\tconst visibleFields = visibleFieldIds\n\t\t.map( ( fieldId ) => fields.find( ( f ) => f.id === fieldId ) )\n\t\t.filter( isDefined );\n\n\tif ( ! visibleFields?.length && ! hiddenFields?.length ) {\n\t\treturn null;\n\t}\n\tconst titleField = fields.find( ( f ) => f.id === view.titleField );\n\tconst previewField = fields.find( ( f ) => f.id === view.mediaField );\n\tconst descriptionField = fields.find(\n\t\t( f ) => f.id === view.descriptionField\n\t);\n\n\tconst previewFields = fields.filter( ( f ) => f.type === 'media' );\n\n\tlet previewFieldUI;\n\tif ( previewFields.length > 1 ) {\n\t\tconst isPreviewFieldVisible =\n\t\t\tisDefined( previewField ) && ( view.showMedia ?? true );\n\t\tpreviewFieldUI = isDefined( previewField ) && (\n\t\t\t<FieldItem\n\t\t\t\tkey={ previewField.id }\n\t\t\t\tfield={ previewField }\n\t\t\t\tlabel={ __( 'Preview' ) }\n\t\t\t\tdescription={ previewField.label }\n\t\t\t\tisVisible={ isPreviewFieldVisible }\n\t\t\t\tonToggleVisibility={ () => {\n\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t...view,\n\t\t\t\t\t\tshowMedia: ! isPreviewFieldVisible,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tcanMove={ false }\n\t\t\t\tpreviewOptions={ previewFields.map( ( field ) => ( {\n\t\t\t\t\tlabel: field.label,\n\t\t\t\t\tid: field.id,\n\t\t\t\t} ) ) }\n\t\t\t\tonChangePreviewOption={ ( newPreviewId ) =>\n\t\t\t\t\tonChangeView( { ...view, mediaField: newPreviewId } )\n\t\t\t\t}\n\t\t\t/>\n\t\t);\n\t}\n\tconst lockedFields = [\n\t\t{\n\t\t\tfield: titleField,\n\t\t\tisVisibleFlag: 'showTitle',\n\t\t},\n\t\t{\n\t\t\tfield: previewField,\n\t\t\tisVisibleFlag: 'showMedia',\n\t\t\tui: previewFieldUI,\n\t\t},\n\t\t{\n\t\t\tfield: descriptionField,\n\t\t\tisVisibleFlag: 'showDescription',\n\t\t},\n\t].filter( ( { field } ) => isDefined( field ) );\n\tconst visibleLockedFields = lockedFields.filter(\n\t\t( { field, isVisibleFlag } ) =>\n\t\t\t// @ts-expect-error\n\t\t\tisDefined( field ) && ( view[ isVisibleFlag ] ?? true )\n\t) as Array< {\n\t\tfield: NormalizedField< any >;\n\t\tisVisibleFlag: string;\n\t\tui?: ReactNode;\n\t} >;\n\tconst hiddenLockedFields = lockedFields.filter(\n\t\t( { field, isVisibleFlag } ) =>\n\t\t\t// @ts-expect-error\n\t\t\tisDefined( field ) && ! ( view[ isVisibleFlag ] ?? true )\n\t) as Array< {\n\t\tfield: NormalizedField< any >;\n\t\tisVisibleFlag: string;\n\t\tui?: ReactNode;\n\t} >;\n\n\treturn (\n\t\t<VStack className=\"dataviews-field-control\" spacing={ 6 }>\n\t\t\t<VStack className=\"dataviews-view-config__properties\" spacing={ 0 }>\n\t\t\t\t{ ( visibleLockedFields.length > 0 ||\n\t\t\t\t\t!! visibleFields?.length ) && (\n\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t{ visibleLockedFields.map(\n\t\t\t\t\t\t\t( { field, isVisibleFlag, ui } ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\tui ?? (\n\t\t\t\t\t\t\t\t\t\t<FieldItem\n\t\t\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t\t\tisVisible\n\t\t\t\t\t\t\t\t\t\t\tonToggleVisibility={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\t\t[ isVisibleFlag ]: false,\n\t\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\tcanMove={ false }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t{ visibleFields.map( ( field, index ) => (\n\t\t\t\t\t\t\t<RegularFieldItem\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\tindex={ index }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</ItemGroup>\n\t\t\t\t) }\n\t\t\t</VStack>\n\n\t\t\t{ ( !! hiddenFields?.length || !! hiddenLockedFields.length ) && (\n\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t<BaseControl.VisualLabel style={ { margin: 0 } }>\n\t\t\t\t\t\t{ __( 'Hidden' ) }\n\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t<VStack\n\t\t\t\t\t\tclassName=\"dataviews-view-config__properties\"\n\t\t\t\t\t\tspacing={ 0 }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t\t{ hiddenLockedFields.length > 0 &&\n\t\t\t\t\t\t\t\thiddenLockedFields.map(\n\t\t\t\t\t\t\t\t\t( { field, isVisibleFlag, ui } ) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\tui ?? (\n\t\t\t\t\t\t\t\t\t\t\t\t<FieldItem\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t\t\t\t\tisVisible={ false }\n\t\t\t\t\t\t\t\t\t\t\t\t\tonToggleVisibility={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[ isVisibleFlag ]:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\tcanMove={ false }\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ hiddenFields.map( ( field ) => (\n\t\t\t\t\t\t\t\t<RegularFieldItem\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t</VStack>\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nfunction SettingsSection( {\n\ttitle,\n\tdescription,\n\tchildren,\n}: {\n\ttitle: string;\n\tdescription?: string;\n\tchildren: React.ReactNode;\n} ) {\n\treturn (\n\t\t<Grid columns={ 12 } className=\"dataviews-settings-section\" gap={ 4 }>\n\t\t\t<div className=\"dataviews-settings-section__sidebar\">\n\t\t\t\t<Heading\n\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\tclassName=\"dataviews-settings-section__title\"\n\t\t\t\t>\n\t\t\t\t\t{ title }\n\t\t\t\t</Heading>\n\t\t\t\t{ description && (\n\t\t\t\t\t<Text\n\t\t\t\t\t\tvariant=\"muted\"\n\t\t\t\t\t\tclassName=\"dataviews-settings-section__description\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ description }\n\t\t\t\t\t</Text>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t<Grid\n\t\t\t\tcolumns={ 8 }\n\t\t\t\tgap={ 4 }\n\t\t\t\tclassName=\"dataviews-settings-section__content\"\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</Grid>\n\t\t</Grid>\n\t);\n}\n\nexport function DataviewsViewConfigDropdown() {\n\tconst { view } = useContext( DataViewsContext );\n\tconst popoverId = useInstanceId(\n\t\t_DataViewsViewConfig,\n\t\t'dataviews-view-config-dropdown'\n\t);\n\tconst activeLayout = VIEW_LAYOUTS.find(\n\t\t( layout ) => layout.type === view.type\n\t);\n\treturn (\n\t\t<Dropdown\n\t\t\texpandOnMobile\n\t\t\tpopoverProps={ {\n\t\t\t\t...DATAVIEWS_CONFIG_POPOVER_PROPS,\n\t\t\t\tid: popoverId,\n\t\t\t} }\n\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ticon={ cog }\n\t\t\t\t\t\tlabel={ _x( 'View options', 'View is used as a noun' ) }\n\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\taria-expanded={ isOpen ? 'true' : 'false' }\n\t\t\t\t\t\taria-controls={ popoverId }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper\n\t\t\t\t\tpaddingSize=\"medium\"\n\t\t\t\t\tclassName=\"dataviews-config__popover-content-wrapper\"\n\t\t\t\t>\n\t\t\t\t\t<VStack className=\"dataviews-view-config\" spacing={ 6 }>\n\t\t\t\t\t\t<SettingsSection title={ __( 'Appearance' ) }>\n\t\t\t\t\t\t\t<HStack expanded className=\"is-divided-in-two\">\n\t\t\t\t\t\t\t\t<SortFieldControl />\n\t\t\t\t\t\t\t\t<SortDirectionControl />\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t{ !! activeLayout?.viewConfigOptions && (\n\t\t\t\t\t\t\t\t<activeLayout.viewConfigOptions />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<InfiniteScrollToggle />\n\t\t\t\t\t\t\t<ItemsPerPageControl />\n\t\t\t\t\t\t</SettingsSection>\n\t\t\t\t\t\t<SettingsSection title={ __( 'Properties' ) }>\n\t\t\t\t\t\t\t<FieldControl />\n\t\t\t\t\t\t</SettingsSection>\n\t\t\t\t\t</VStack>\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction _DataViewsViewConfig() {\n\treturn (\n\t\t<>\n\t\t\t<ViewTypeMenu />\n\t\t\t<DataviewsViewConfigDropdown />\n\t\t</>\n\t);\n}\n\nconst DataViewsViewConfig = memo( _DataViewsViewConfig );\n\nexport default DataViewsViewConfig;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = InfiniteScrollToggle;
|
|
8
|
+
var _components = require("@wordpress/components");
|
|
9
|
+
var _i18n = require("@wordpress/i18n");
|
|
10
|
+
var _element = require("@wordpress/element");
|
|
11
|
+
var _dataviewsContext = _interopRequireDefault(require("../dataviews-context"));
|
|
12
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
+
/**
|
|
14
|
+
* WordPress dependencies
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Internal dependencies
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
function InfiniteScrollToggle() {
|
|
22
|
+
var _view$infiniteScrollE;
|
|
23
|
+
const context = (0, _element.useContext)(_dataviewsContext.default);
|
|
24
|
+
const {
|
|
25
|
+
view,
|
|
26
|
+
onChangeView
|
|
27
|
+
} = context;
|
|
28
|
+
const infiniteScrollEnabled = (_view$infiniteScrollE = view.infiniteScrollEnabled) !== null && _view$infiniteScrollE !== void 0 ? _view$infiniteScrollE : false;
|
|
29
|
+
|
|
30
|
+
// Only render the toggle if an infinite scroll handler is available
|
|
31
|
+
if (!context.hasInfiniteScrollHandler) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ToggleControl, {
|
|
35
|
+
__nextHasNoMarginBottom: true,
|
|
36
|
+
label: (0, _i18n.__)('Enable infinite scroll'),
|
|
37
|
+
help: (0, _i18n.__)('Automatically load more content as you scroll, instead of showing pagination links.'),
|
|
38
|
+
checked: infiniteScrollEnabled,
|
|
39
|
+
onChange: newValue => {
|
|
40
|
+
onChangeView({
|
|
41
|
+
...view,
|
|
42
|
+
infiniteScrollEnabled: newValue
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=infinite-scroll-toggle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_components","require","_i18n","_element","_dataviewsContext","_interopRequireDefault","_jsxRuntime","InfiniteScrollToggle","_view$infiniteScrollE","context","useContext","DataViewsContext","view","onChangeView","infiniteScrollEnabled","hasInfiniteScrollHandler","jsx","ToggleControl","__nextHasNoMarginBottom","label","__","help","checked","onChange","newValue"],"sources":["@wordpress/dataviews/src/components/dataviews-view-config/infinite-scroll-toggle.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { ToggleControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\n\nexport default function InfiniteScrollToggle() {\n\tconst context = useContext( DataViewsContext );\n\tconst { view, onChangeView } = context;\n\tconst infiniteScrollEnabled = view.infiniteScrollEnabled ?? false;\n\n\t// Only render the toggle if an infinite scroll handler is available\n\tif ( ! context.hasInfiniteScrollHandler ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ToggleControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\tlabel={ __( 'Enable infinite scroll' ) }\n\t\t\thelp={ __(\n\t\t\t\t'Automatically load more content as you scroll, instead of showing pagination links.'\n\t\t\t) }\n\t\t\tchecked={ infiniteScrollEnabled }\n\t\t\tonChange={ ( newValue ) => {\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tinfiniteScrollEnabled: newValue,\n\t\t\t\t} );\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAKA,IAAAG,iBAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAAoD,IAAAK,WAAA,GAAAL,OAAA;AAVpD;AACA;AACA;;AAKA;AACA;AACA;;AAGe,SAASM,oBAAoBA,CAAA,EAAG;EAAA,IAAAC,qBAAA;EAC9C,MAAMC,OAAO,GAAG,IAAAC,mBAAU,EAAEC,yBAAiB,CAAC;EAC9C,MAAM;IAAEC,IAAI;IAAEC;EAAa,CAAC,GAAGJ,OAAO;EACtC,MAAMK,qBAAqB,IAAAN,qBAAA,GAAGI,IAAI,CAACE,qBAAqB,cAAAN,qBAAA,cAAAA,qBAAA,GAAI,KAAK;;EAEjE;EACA,IAAK,CAAEC,OAAO,CAACM,wBAAwB,EAAG;IACzC,OAAO,IAAI;EACZ;EAEA,oBACC,IAAAT,WAAA,CAAAU,GAAA,EAAChB,WAAA,CAAAiB,aAAa;IACbC,uBAAuB;IACvBC,KAAK,EAAG,IAAAC,QAAE,EAAE,wBAAyB,CAAG;IACxCC,IAAI,EAAG,IAAAD,QAAE,EACR,qFACD,CAAG;IACHE,OAAO,EAAGR,qBAAuB;IACjCS,QAAQ,EAAKC,QAAQ,IAAM;MAC1BX,YAAY,CAAE;QACb,GAAGD,IAAI;QACPE,qBAAqB,EAAEU;MACxB,CAAE,CAAC;IACJ;EAAG,CACH,CAAC;AAEJ","ignoreList":[]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = ArrayControl;
|
|
7
|
+
var _components = require("@wordpress/components");
|
|
8
|
+
var _element = require("@wordpress/element");
|
|
9
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
+
/**
|
|
11
|
+
* WordPress dependencies
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Internal dependencies
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
function ArrayControl({
|
|
19
|
+
data,
|
|
20
|
+
field,
|
|
21
|
+
onChange,
|
|
22
|
+
hideLabelFromVision
|
|
23
|
+
}) {
|
|
24
|
+
var _elements$map;
|
|
25
|
+
const {
|
|
26
|
+
id,
|
|
27
|
+
label,
|
|
28
|
+
placeholder,
|
|
29
|
+
elements
|
|
30
|
+
} = field;
|
|
31
|
+
const value = field.getValue({
|
|
32
|
+
item: data
|
|
33
|
+
});
|
|
34
|
+
const findElementByValue = (0, _element.useCallback)(suggestionValue => {
|
|
35
|
+
return elements?.find(suggestion => suggestion.value === suggestionValue);
|
|
36
|
+
}, [elements]);
|
|
37
|
+
const findElementByLabel = (0, _element.useCallback)(suggestionLabel => {
|
|
38
|
+
return elements?.find(suggestion => suggestion.label === suggestionLabel);
|
|
39
|
+
}, [elements]);
|
|
40
|
+
|
|
41
|
+
// Ensure value is an array
|
|
42
|
+
const arrayValue = (0, _element.useMemo)(() => Array.isArray(value) ? value.map(token => {
|
|
43
|
+
const tokenLabel = findElementByValue(token)?.label;
|
|
44
|
+
return tokenLabel || token;
|
|
45
|
+
}) : [], [value, findElementByValue]);
|
|
46
|
+
const onChangeControl = (0, _element.useCallback)(tokens => {
|
|
47
|
+
// Convert TokenItem objects to strings
|
|
48
|
+
const stringTokens = tokens.map(token => {
|
|
49
|
+
if (typeof token !== 'string') {
|
|
50
|
+
return token.value;
|
|
51
|
+
}
|
|
52
|
+
const tokenByLabel = findElementByLabel(token);
|
|
53
|
+
return tokenByLabel?.value || token;
|
|
54
|
+
});
|
|
55
|
+
onChange({
|
|
56
|
+
[id]: stringTokens
|
|
57
|
+
});
|
|
58
|
+
}, [id, onChange, findElementByLabel]);
|
|
59
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.FormTokenField, {
|
|
60
|
+
label: hideLabelFromVision ? undefined : label,
|
|
61
|
+
value: arrayValue,
|
|
62
|
+
onChange: onChangeControl,
|
|
63
|
+
placeholder: placeholder,
|
|
64
|
+
suggestions: (_elements$map = elements?.map(suggestion => suggestion.label)) !== null && _elements$map !== void 0 ? _elements$map : [],
|
|
65
|
+
__experimentalExpandOnFocus: elements && elements.length > 0,
|
|
66
|
+
__next40pxDefaultSize: true,
|
|
67
|
+
__nextHasNoMarginBottom: true
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=array.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_components","require","_element","_jsxRuntime","ArrayControl","data","field","onChange","hideLabelFromVision","_elements$map","id","label","placeholder","elements","value","getValue","item","findElementByValue","useCallback","suggestionValue","find","suggestion","findElementByLabel","suggestionLabel","arrayValue","useMemo","Array","isArray","map","token","tokenLabel","onChangeControl","tokens","stringTokens","tokenByLabel","jsx","FormTokenField","undefined","suggestions","__experimentalExpandOnFocus","length","__next40pxDefaultSize","__nextHasNoMarginBottom"],"sources":["@wordpress/dataviews/src/dataform-controls/array.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { FormTokenField } from '@wordpress/components';\nimport { useCallback, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { DataFormControlProps } from '../types';\n\nexport default function ArrayControl< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\thideLabelFromVision,\n}: DataFormControlProps< Item > ) {\n\tconst { id, label, placeholder, elements } = field;\n\tconst value = field.getValue( { item: data } );\n\n\tconst findElementByValue = useCallback(\n\t\t( suggestionValue: string ) => {\n\t\t\treturn elements?.find(\n\t\t\t\t( suggestion ) => suggestion.value === suggestionValue\n\t\t\t);\n\t\t},\n\t\t[ elements ]\n\t);\n\n\tconst findElementByLabel = useCallback(\n\t\t( suggestionLabel: string ) => {\n\t\t\treturn elements?.find(\n\t\t\t\t( suggestion ) => suggestion.label === suggestionLabel\n\t\t\t);\n\t\t},\n\t\t[ elements ]\n\t);\n\n\t// Ensure value is an array\n\tconst arrayValue = useMemo(\n\t\t() =>\n\t\t\tArray.isArray( value )\n\t\t\t\t? value.map( ( token ) => {\n\t\t\t\t\t\tconst tokenLabel = findElementByValue( token )?.label;\n\t\t\t\t\t\treturn tokenLabel || token;\n\t\t\t\t } )\n\t\t\t\t: [],\n\t\t[ value, findElementByValue ]\n\t);\n\n\tconst onChangeControl = useCallback(\n\t\t( tokens: ( string | { value: string } )[] ) => {\n\t\t\t// Convert TokenItem objects to strings\n\t\t\tconst stringTokens = tokens.map( ( token ) => {\n\t\t\t\tif ( typeof token !== 'string' ) {\n\t\t\t\t\treturn token.value;\n\t\t\t\t}\n\n\t\t\t\tconst tokenByLabel = findElementByLabel( token );\n\n\t\t\t\treturn tokenByLabel?.value || token;\n\t\t\t} );\n\n\t\t\tonChange( {\n\t\t\t\t[ id ]: stringTokens,\n\t\t\t} );\n\t\t},\n\t\t[ id, onChange, findElementByLabel ]\n\t);\n\n\treturn (\n\t\t<FormTokenField\n\t\t\tlabel={ hideLabelFromVision ? undefined : label }\n\t\t\tvalue={ arrayValue }\n\t\t\tonChange={ onChangeControl }\n\t\t\tplaceholder={ placeholder }\n\t\t\tsuggestions={\n\t\t\t\telements?.map( ( suggestion ) => suggestion.label ) ?? []\n\t\t\t}\n\t\t\t__experimentalExpandOnFocus={ elements && elements.length > 0 }\n\t\t\t__next40pxDefaultSize\n\t\t\t__nextHasNoMarginBottom\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAA0D,IAAAE,WAAA,GAAAF,OAAA;AAJ1D;AACA;AACA;;AAIA;AACA;AACA;;AAGe,SAASG,YAAYA,CAAU;EAC7CC,IAAI;EACJC,KAAK;EACLC,QAAQ;EACRC;AAC6B,CAAC,EAAG;EAAA,IAAAC,aAAA;EACjC,MAAM;IAAEC,EAAE;IAAEC,KAAK;IAAEC,WAAW;IAAEC;EAAS,CAAC,GAAGP,KAAK;EAClD,MAAMQ,KAAK,GAAGR,KAAK,CAACS,QAAQ,CAAE;IAAEC,IAAI,EAAEX;EAAK,CAAE,CAAC;EAE9C,MAAMY,kBAAkB,GAAG,IAAAC,oBAAW,EACnCC,eAAuB,IAAM;IAC9B,OAAON,QAAQ,EAAEO,IAAI,CAClBC,UAAU,IAAMA,UAAU,CAACP,KAAK,KAAKK,eACxC,CAAC;EACF,CAAC,EACD,CAAEN,QAAQ,CACX,CAAC;EAED,MAAMS,kBAAkB,GAAG,IAAAJ,oBAAW,EACnCK,eAAuB,IAAM;IAC9B,OAAOV,QAAQ,EAAEO,IAAI,CAClBC,UAAU,IAAMA,UAAU,CAACV,KAAK,KAAKY,eACxC,CAAC;EACF,CAAC,EACD,CAAEV,QAAQ,CACX,CAAC;;EAED;EACA,MAAMW,UAAU,GAAG,IAAAC,gBAAO,EACzB,MACCC,KAAK,CAACC,OAAO,CAAEb,KAAM,CAAC,GACnBA,KAAK,CAACc,GAAG,CAAIC,KAAK,IAAM;IACxB,MAAMC,UAAU,GAAGb,kBAAkB,CAAEY,KAAM,CAAC,EAAElB,KAAK;IACrD,OAAOmB,UAAU,IAAID,KAAK;EAC1B,CAAE,CAAC,GACH,EAAE,EACN,CAAEf,KAAK,EAAEG,kBAAkB,CAC5B,CAAC;EAED,MAAMc,eAAe,GAAG,IAAAb,oBAAW,EAChCc,MAAwC,IAAM;IAC/C;IACA,MAAMC,YAAY,GAAGD,MAAM,CAACJ,GAAG,CAAIC,KAAK,IAAM;MAC7C,IAAK,OAAOA,KAAK,KAAK,QAAQ,EAAG;QAChC,OAAOA,KAAK,CAACf,KAAK;MACnB;MAEA,MAAMoB,YAAY,GAAGZ,kBAAkB,CAAEO,KAAM,CAAC;MAEhD,OAAOK,YAAY,EAAEpB,KAAK,IAAIe,KAAK;IACpC,CAAE,CAAC;IAEHtB,QAAQ,CAAE;MACT,CAAEG,EAAE,GAAIuB;IACT,CAAE,CAAC;EACJ,CAAC,EACD,CAAEvB,EAAE,EAAEH,QAAQ,EAAEe,kBAAkB,CACnC,CAAC;EAED,oBACC,IAAAnB,WAAA,CAAAgC,GAAA,EAACnC,WAAA,CAAAoC,cAAc;IACdzB,KAAK,EAAGH,mBAAmB,GAAG6B,SAAS,GAAG1B,KAAO;IACjDG,KAAK,EAAGU,UAAY;IACpBjB,QAAQ,EAAGwB,eAAiB;IAC5BnB,WAAW,EAAGA,WAAa;IAC3B0B,WAAW,GAAA7B,aAAA,GACVI,QAAQ,EAAEe,GAAG,CAAIP,UAAU,IAAMA,UAAU,CAACV,KAAM,CAAC,cAAAF,aAAA,cAAAA,aAAA,GAAI,EACvD;IACD8B,2BAA2B,EAAG1B,QAAQ,IAAIA,QAAQ,CAAC2B,MAAM,GAAG,CAAG;IAC/DC,qBAAqB;IACrBC,uBAAuB;EAAA,CACvB,CAAC;AAEJ","ignoreList":[]}
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = Boolean;
|
|
7
7
|
var _components = require("@wordpress/components");
|
|
8
|
+
var _element = require("@wordpress/element");
|
|
8
9
|
var _lockUnlock = require("../lock-unlock");
|
|
9
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
11
|
/**
|
|
@@ -29,17 +30,24 @@ function Boolean({
|
|
|
29
30
|
getValue,
|
|
30
31
|
label
|
|
31
32
|
} = field;
|
|
33
|
+
const [customValidity, setCustomValidity] = (0, _element.useState)(undefined);
|
|
32
34
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ValidatedToggleControl, {
|
|
33
35
|
required: !!field.isValid.required,
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
onValidate: newValue => {
|
|
37
|
+
const message = field.isValid?.custom?.({
|
|
38
|
+
...data,
|
|
39
|
+
[id]: newValue
|
|
40
|
+
}, field);
|
|
41
|
+
if (message) {
|
|
42
|
+
setCustomValidity({
|
|
43
|
+
type: 'invalid',
|
|
44
|
+
message
|
|
45
|
+
});
|
|
46
|
+
return;
|
|
40
47
|
}
|
|
41
|
-
|
|
48
|
+
setCustomValidity(undefined);
|
|
42
49
|
},
|
|
50
|
+
customValidity: customValidity,
|
|
43
51
|
hidden: hideLabelFromVision,
|
|
44
52
|
__nextHasNoMarginBottom: true,
|
|
45
53
|
label: label,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_lockUnlock","_jsxRuntime","ValidatedToggleControl","unlock","privateApis","Boolean","field","onChange","data","hideLabelFromVision","id","getValue","label","jsx","required","isValid","
|
|
1
|
+
{"version":3,"names":["_components","require","_element","_lockUnlock","_jsxRuntime","ValidatedToggleControl","unlock","privateApis","Boolean","field","onChange","data","hideLabelFromVision","id","getValue","label","customValidity","setCustomValidity","useState","undefined","jsx","required","isValid","onValidate","newValue","message","custom","type","hidden","__nextHasNoMarginBottom","checked","item"],"sources":["@wordpress/dataviews/src/dataform-controls/boolean.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { DataFormControlProps } from '../types';\nimport { unlock } from '../lock-unlock';\n\nconst { ValidatedToggleControl } = unlock( privateApis );\n\nexport default function Boolean< Item >( {\n\tfield,\n\tonChange,\n\tdata,\n\thideLabelFromVision,\n}: DataFormControlProps< Item > ) {\n\tconst { id, getValue, label } = field;\n\tconst [ customValidity, setCustomValidity ] =\n\t\tuseState<\n\t\t\tReact.ComponentProps<\n\t\t\t\ttypeof ValidatedToggleControl\n\t\t\t>[ 'customValidity' ]\n\t\t>( undefined );\n\n\treturn (\n\t\t<ValidatedToggleControl\n\t\t\trequired={ !! field.isValid.required }\n\t\t\tonValidate={ ( newValue: any ) => {\n\t\t\t\tconst message = field.isValid?.custom?.(\n\t\t\t\t\t{\n\t\t\t\t\t\t...data,\n\t\t\t\t\t\t[ id ]: newValue,\n\t\t\t\t\t},\n\t\t\t\t\tfield\n\t\t\t\t);\n\n\t\t\t\tif ( message ) {\n\t\t\t\t\tsetCustomValidity( {\n\t\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\t\tmessage,\n\t\t\t\t\t} );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsetCustomValidity( undefined );\n\t\t\t} }\n\t\t\tcustomValidity={ customValidity }\n\t\t\thidden={ hideLabelFromVision }\n\t\t\t__nextHasNoMarginBottom\n\t\t\tlabel={ label }\n\t\t\tchecked={ getValue( { item: data } ) }\n\t\t\tonChange={ () =>\n\t\t\t\tonChange( { [ id ]: ! getValue( { item: data } ) } )\n\t\t\t}\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAMA,IAAAE,WAAA,GAAAF,OAAA;AAAwC,IAAAG,WAAA,GAAAH,OAAA;AAVxC;AACA;AACA;;AAIA;AACA;AACA;;AAIA,MAAM;EAAEI;AAAuB,CAAC,GAAG,IAAAC,kBAAM,EAAEC,uBAAY,CAAC;AAEzC,SAASC,OAAOA,CAAU;EACxCC,KAAK;EACLC,QAAQ;EACRC,IAAI;EACJC;AAC6B,CAAC,EAAG;EACjC,MAAM;IAAEC,EAAE;IAAEC,QAAQ;IAAEC;EAAM,CAAC,GAAGN,KAAK;EACrC,MAAM,CAAEO,cAAc,EAAEC,iBAAiB,CAAE,GAC1C,IAAAC,iBAAQ,EAILC,SAAU,CAAC;EAEf,oBACC,IAAAf,WAAA,CAAAgB,GAAA,EAACf,sBAAsB;IACtBgB,QAAQ,EAAG,CAAC,CAAEZ,KAAK,CAACa,OAAO,CAACD,QAAU;IACtCE,UAAU,EAAKC,QAAa,IAAM;MACjC,MAAMC,OAAO,GAAGhB,KAAK,CAACa,OAAO,EAAEI,MAAM,GACpC;QACC,GAAGf,IAAI;QACP,CAAEE,EAAE,GAAIW;MACT,CAAC,EACDf,KACD,CAAC;MAED,IAAKgB,OAAO,EAAG;QACdR,iBAAiB,CAAE;UAClBU,IAAI,EAAE,SAAS;UACfF;QACD,CAAE,CAAC;QACH;MACD;MAEAR,iBAAiB,CAAEE,SAAU,CAAC;IAC/B,CAAG;IACHH,cAAc,EAAGA,cAAgB;IACjCY,MAAM,EAAGhB,mBAAqB;IAC9BiB,uBAAuB;IACvBd,KAAK,EAAGA,KAAO;IACfe,OAAO,EAAGhB,QAAQ,CAAE;MAAEiB,IAAI,EAAEpB;IAAK,CAAE,CAAG;IACtCD,QAAQ,EAAGA,CAAA,KACVA,QAAQ,CAAE;MAAE,CAAEG,EAAE,GAAI,CAAEC,QAAQ,CAAE;QAAEiB,IAAI,EAAEpB;MAAK,CAAE;IAAE,CAAE;EACnD,CACD,CAAC;AAEJ","ignoreList":[]}
|
|
@@ -34,20 +34,27 @@ function Email({
|
|
|
34
34
|
const value = field.getValue({
|
|
35
35
|
item: data
|
|
36
36
|
});
|
|
37
|
+
const [customValidity, setCustomValidity] = (0, _element.useState)(undefined);
|
|
37
38
|
const onChangeControl = (0, _element.useCallback)(newValue => onChange({
|
|
38
39
|
[id]: newValue
|
|
39
40
|
}), [id, onChange]);
|
|
40
41
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ValidatedTextControl, {
|
|
41
42
|
required: !!field.isValid?.required,
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
43
|
+
onValidate: newValue => {
|
|
44
|
+
const message = field.isValid?.custom?.({
|
|
45
|
+
...data,
|
|
46
|
+
[id]: newValue
|
|
47
|
+
}, field);
|
|
48
|
+
if (message) {
|
|
49
|
+
setCustomValidity({
|
|
50
|
+
type: 'invalid',
|
|
51
|
+
message
|
|
52
|
+
});
|
|
53
|
+
return;
|
|
48
54
|
}
|
|
49
|
-
|
|
55
|
+
setCustomValidity(undefined);
|
|
50
56
|
},
|
|
57
|
+
customValidity: customValidity,
|
|
51
58
|
type: "email",
|
|
52
59
|
label: label,
|
|
53
60
|
placeholder: placeholder,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_element","_lockUnlock","_jsxRuntime","ValidatedTextControl","unlock","privateApis","Email","data","field","onChange","hideLabelFromVision","id","label","placeholder","description","value","getValue","item","onChangeControl","useCallback","newValue","jsx","required","isValid","
|
|
1
|
+
{"version":3,"names":["_components","require","_element","_lockUnlock","_jsxRuntime","ValidatedTextControl","unlock","privateApis","Email","data","field","onChange","hideLabelFromVision","id","label","placeholder","description","value","getValue","item","customValidity","setCustomValidity","useState","undefined","onChangeControl","useCallback","newValue","jsx","required","isValid","onValidate","message","custom","type","help","__next40pxDefaultSize","__nextHasNoMarginBottom"],"sources":["@wordpress/dataviews/src/dataform-controls/email.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis } from '@wordpress/components';\nimport { useCallback, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { DataFormControlProps } from '../types';\nimport { unlock } from '../lock-unlock';\n\nconst { ValidatedTextControl } = unlock( privateApis );\n\nexport default function Email< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\thideLabelFromVision,\n}: DataFormControlProps< Item > ) {\n\tconst { id, label, placeholder, description } = field;\n\tconst value = field.getValue( { item: data } );\n\tconst [ customValidity, setCustomValidity ] =\n\t\tuseState<\n\t\t\tReact.ComponentProps<\n\t\t\t\ttypeof ValidatedTextControl\n\t\t\t>[ 'customValidity' ]\n\t\t>( undefined );\n\n\tconst onChangeControl = useCallback(\n\t\t( newValue: string ) =>\n\t\t\tonChange( {\n\t\t\t\t[ id ]: newValue,\n\t\t\t} ),\n\t\t[ id, onChange ]\n\t);\n\n\treturn (\n\t\t<ValidatedTextControl\n\t\t\trequired={ !! field.isValid?.required }\n\t\t\tonValidate={ ( newValue: any ) => {\n\t\t\t\tconst message = field.isValid?.custom?.(\n\t\t\t\t\t{\n\t\t\t\t\t\t...data,\n\t\t\t\t\t\t[ id ]: newValue,\n\t\t\t\t\t},\n\t\t\t\t\tfield\n\t\t\t\t);\n\n\t\t\t\tif ( message ) {\n\t\t\t\t\tsetCustomValidity( {\n\t\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\t\tmessage,\n\t\t\t\t\t} );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsetCustomValidity( undefined );\n\t\t\t} }\n\t\t\tcustomValidity={ customValidity }\n\t\t\ttype=\"email\"\n\t\t\tlabel={ label }\n\t\t\tplaceholder={ placeholder }\n\t\t\tvalue={ value ?? '' }\n\t\t\thelp={ description }\n\t\t\tonChange={ onChangeControl }\n\t\t\t__next40pxDefaultSize\n\t\t\t__nextHasNoMarginBottom\n\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAMA,IAAAE,WAAA,GAAAF,OAAA;AAAwC,IAAAG,WAAA,GAAAH,OAAA;AAVxC;AACA;AACA;;AAIA;AACA;AACA;;AAIA,MAAM;EAAEI;AAAqB,CAAC,GAAG,IAAAC,kBAAM,EAAEC,uBAAY,CAAC;AAEvC,SAASC,KAAKA,CAAU;EACtCC,IAAI;EACJC,KAAK;EACLC,QAAQ;EACRC;AAC6B,CAAC,EAAG;EACjC,MAAM;IAAEC,EAAE;IAAEC,KAAK;IAAEC,WAAW;IAAEC;EAAY,CAAC,GAAGN,KAAK;EACrD,MAAMO,KAAK,GAAGP,KAAK,CAACQ,QAAQ,CAAE;IAAEC,IAAI,EAAEV;EAAK,CAAE,CAAC;EAC9C,MAAM,CAAEW,cAAc,EAAEC,iBAAiB,CAAE,GAC1C,IAAAC,iBAAQ,EAILC,SAAU,CAAC;EAEf,MAAMC,eAAe,GAAG,IAAAC,oBAAW,EAChCC,QAAgB,IACjBf,QAAQ,CAAE;IACT,CAAEE,EAAE,GAAIa;EACT,CAAE,CAAC,EACJ,CAAEb,EAAE,EAAEF,QAAQ,CACf,CAAC;EAED,oBACC,IAAAP,WAAA,CAAAuB,GAAA,EAACtB,oBAAoB;IACpBuB,QAAQ,EAAG,CAAC,CAAElB,KAAK,CAACmB,OAAO,EAAED,QAAU;IACvCE,UAAU,EAAKJ,QAAa,IAAM;MACjC,MAAMK,OAAO,GAAGrB,KAAK,CAACmB,OAAO,EAAEG,MAAM,GACpC;QACC,GAAGvB,IAAI;QACP,CAAEI,EAAE,GAAIa;MACT,CAAC,EACDhB,KACD,CAAC;MAED,IAAKqB,OAAO,EAAG;QACdV,iBAAiB,CAAE;UAClBY,IAAI,EAAE,SAAS;UACfF;QACD,CAAE,CAAC;QACH;MACD;MAEAV,iBAAiB,CAAEE,SAAU,CAAC;IAC/B,CAAG;IACHH,cAAc,EAAGA,cAAgB;IACjCa,IAAI,EAAC,OAAO;IACZnB,KAAK,EAAGA,KAAO;IACfC,WAAW,EAAGA,WAAa;IAC3BE,KAAK,EAAGA,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,EAAI;IACrBiB,IAAI,EAAGlB,WAAa;IACpBL,QAAQ,EAAGa,eAAiB;IAC5BW,qBAAqB;IACrBC,uBAAuB;IACvBxB,mBAAmB,EAAGA;EAAqB,CAC3C,CAAC;AAEJ","ignoreList":[]}
|
|
@@ -16,6 +16,7 @@ var _select = _interopRequireDefault(require("./select"));
|
|
|
16
16
|
var _text = _interopRequireDefault(require("./text"));
|
|
17
17
|
var _toggleGroup = _interopRequireDefault(require("./toggle-group"));
|
|
18
18
|
var _boolean = _interopRequireDefault(require("./boolean"));
|
|
19
|
+
var _array = _interopRequireDefault(require("./array"));
|
|
19
20
|
/**
|
|
20
21
|
* External dependencies
|
|
21
22
|
*/
|
|
@@ -25,6 +26,7 @@ var _boolean = _interopRequireDefault(require("./boolean"));
|
|
|
25
26
|
*/
|
|
26
27
|
|
|
27
28
|
const FORM_CONTROLS = {
|
|
29
|
+
array: _array.default,
|
|
28
30
|
boolean: _boolean.default,
|
|
29
31
|
checkbox: _checkbox.default,
|
|
30
32
|
datetime: _datetime.default,
|
|
@@ -43,7 +45,7 @@ function getControl(field, fieldTypeDefinition) {
|
|
|
43
45
|
if (typeof field.Edit === 'string') {
|
|
44
46
|
return getControlByType(field.Edit);
|
|
45
47
|
}
|
|
46
|
-
if (field.elements) {
|
|
48
|
+
if (field.elements && field.type !== 'array') {
|
|
47
49
|
return getControlByType('select');
|
|
48
50
|
}
|
|
49
51
|
if (typeof fieldTypeDefinition.Edit === 'string') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_checkbox","_interopRequireDefault","require","_datetime","_date","_email","_integer","_radio","_select","_text","_toggleGroup","_boolean","FORM_CONTROLS","boolean","checkbox","datetime","date","email","integer","radio","select","text","toggleGroup","getControl","field","fieldTypeDefinition","Edit","getControlByType","elements","type","Object","keys","includes"],"sources":["@wordpress/dataviews/src/dataform-controls/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ComponentType } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tDataFormControlProps,\n\tField,\n\tFieldTypeDefinition,\n} from '../types';\nimport checkbox from './checkbox';\nimport datetime from './datetime';\nimport date from './date';\nimport email from './email';\nimport integer from './integer';\nimport radio from './radio';\nimport select from './select';\nimport text from './text';\nimport toggleGroup from './toggle-group';\nimport boolean from './boolean';\n\ninterface FormControls {\n\t[ key: string ]: ComponentType< DataFormControlProps< any > >;\n}\n\nconst FORM_CONTROLS: FormControls = {\n\tboolean,\n\tcheckbox,\n\tdatetime,\n\tdate,\n\temail,\n\tinteger,\n\tradio,\n\tselect,\n\ttext,\n\ttoggleGroup,\n};\n\nexport function getControl< Item >(\n\tfield: Field< Item >,\n\tfieldTypeDefinition: FieldTypeDefinition< Item >\n) {\n\tif ( typeof field.Edit === 'function' ) {\n\t\treturn field.Edit;\n\t}\n\n\tif ( typeof field.Edit === 'string' ) {\n\t\treturn getControlByType( field.Edit );\n\t}\n\n\tif ( field.elements ) {\n\t\treturn getControlByType( 'select' );\n\t}\n\n\tif ( typeof fieldTypeDefinition.Edit === 'string' ) {\n\t\treturn getControlByType( fieldTypeDefinition.Edit );\n\t}\n\n\treturn fieldTypeDefinition.Edit;\n}\n\nexport function getControlByType( type: string ) {\n\tif ( Object.keys( FORM_CONTROLS ).includes( type ) ) {\n\t\treturn FORM_CONTROLS[ type ];\n\t}\n\n\tthrow 'Control ' + type + ' not found';\n}\n"],"mappings":";;;;;;;;AAaA,IAAAA,SAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,KAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,MAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,QAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,MAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,OAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,KAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,YAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,QAAA,GAAAV,sBAAA,CAAAC,OAAA;
|
|
1
|
+
{"version":3,"names":["_checkbox","_interopRequireDefault","require","_datetime","_date","_email","_integer","_radio","_select","_text","_toggleGroup","_boolean","_array","FORM_CONTROLS","array","boolean","checkbox","datetime","date","email","integer","radio","select","text","toggleGroup","getControl","field","fieldTypeDefinition","Edit","getControlByType","elements","type","Object","keys","includes"],"sources":["@wordpress/dataviews/src/dataform-controls/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ComponentType } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tDataFormControlProps,\n\tField,\n\tFieldTypeDefinition,\n} from '../types';\nimport checkbox from './checkbox';\nimport datetime from './datetime';\nimport date from './date';\nimport email from './email';\nimport integer from './integer';\nimport radio from './radio';\nimport select from './select';\nimport text from './text';\nimport toggleGroup from './toggle-group';\nimport boolean from './boolean';\nimport array from './array';\n\ninterface FormControls {\n\t[ key: string ]: ComponentType< DataFormControlProps< any > >;\n}\n\nconst FORM_CONTROLS: FormControls = {\n\tarray,\n\tboolean,\n\tcheckbox,\n\tdatetime,\n\tdate,\n\temail,\n\tinteger,\n\tradio,\n\tselect,\n\ttext,\n\ttoggleGroup,\n};\n\nexport function getControl< Item >(\n\tfield: Field< Item >,\n\tfieldTypeDefinition: FieldTypeDefinition< Item >\n) {\n\tif ( typeof field.Edit === 'function' ) {\n\t\treturn field.Edit;\n\t}\n\n\tif ( typeof field.Edit === 'string' ) {\n\t\treturn getControlByType( field.Edit );\n\t}\n\n\tif ( field.elements && field.type !== 'array' ) {\n\t\treturn getControlByType( 'select' );\n\t}\n\n\tif ( typeof fieldTypeDefinition.Edit === 'string' ) {\n\t\treturn getControlByType( fieldTypeDefinition.Edit );\n\t}\n\n\treturn fieldTypeDefinition.Edit;\n}\n\nexport function getControlByType( type: string ) {\n\tif ( Object.keys( FORM_CONTROLS ).includes( type ) ) {\n\t\treturn FORM_CONTROLS[ type ];\n\t}\n\n\tthrow 'Control ' + type + ' not found';\n}\n"],"mappings":";;;;;;;;AAaA,IAAAA,SAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,KAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,MAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,QAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,MAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,OAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,KAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,YAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,QAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,MAAA,GAAAX,sBAAA,CAAAC,OAAA;AAvBA;AACA;AACA;;AAGA;AACA;AACA;;AAsBA,MAAMW,aAA2B,GAAG;EACnCC,KAAK,EAALA,cAAK;EACLC,OAAO,EAAPA,gBAAO;EACPC,QAAQ,EAARA,iBAAQ;EACRC,QAAQ,EAARA,iBAAQ;EACRC,IAAI,EAAJA,aAAI;EACJC,KAAK,EAALA,cAAK;EACLC,OAAO,EAAPA,gBAAO;EACPC,KAAK,EAALA,cAAK;EACLC,MAAM,EAANA,eAAM;EACNC,IAAI,EAAJA,aAAI;EACJC,WAAW,EAAXA;AACD,CAAC;AAEM,SAASC,UAAUA,CACzBC,KAAoB,EACpBC,mBAAgD,EAC/C;EACD,IAAK,OAAOD,KAAK,CAACE,IAAI,KAAK,UAAU,EAAG;IACvC,OAAOF,KAAK,CAACE,IAAI;EAClB;EAEA,IAAK,OAAOF,KAAK,CAACE,IAAI,KAAK,QAAQ,EAAG;IACrC,OAAOC,gBAAgB,CAAEH,KAAK,CAACE,IAAK,CAAC;EACtC;EAEA,IAAKF,KAAK,CAACI,QAAQ,IAAIJ,KAAK,CAACK,IAAI,KAAK,OAAO,EAAG;IAC/C,OAAOF,gBAAgB,CAAE,QAAS,CAAC;EACpC;EAEA,IAAK,OAAOF,mBAAmB,CAACC,IAAI,KAAK,QAAQ,EAAG;IACnD,OAAOC,gBAAgB,CAAEF,mBAAmB,CAACC,IAAK,CAAC;EACpD;EAEA,OAAOD,mBAAmB,CAACC,IAAI;AAChC;AAEO,SAASC,gBAAgBA,CAAEE,IAAY,EAAG;EAChD,IAAKC,MAAM,CAACC,IAAI,CAAEpB,aAAc,CAAC,CAACqB,QAAQ,CAAEH,IAAK,CAAC,EAAG;IACpD,OAAOlB,aAAa,CAAEkB,IAAI,CAAE;EAC7B;EAEA,MAAM,UAAU,GAAGA,IAAI,GAAG,YAAY;AACvC","ignoreList":[]}
|
|
@@ -74,6 +74,7 @@ function Integer({
|
|
|
74
74
|
const value = (_field$getValue = field.getValue({
|
|
75
75
|
item: data
|
|
76
76
|
})) !== null && _field$getValue !== void 0 ? _field$getValue : '';
|
|
77
|
+
const [customValidity, setCustomValidity] = (0, _element.useState)(undefined);
|
|
77
78
|
const onChangeControl = (0, _element.useCallback)(newValue => {
|
|
78
79
|
onChange({
|
|
79
80
|
// Do not convert an empty string or undefined to a number,
|
|
@@ -92,15 +93,21 @@ function Integer({
|
|
|
92
93
|
}
|
|
93
94
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ValidatedNumberControl, {
|
|
94
95
|
required: !!field.isValid?.required,
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
96
|
+
onValidate: newValue => {
|
|
97
|
+
const message = field.isValid?.custom?.({
|
|
98
|
+
...data,
|
|
99
|
+
[id]: [undefined, '', null].includes(newValue) ? undefined : Number(newValue)
|
|
100
|
+
}, field);
|
|
101
|
+
if (message) {
|
|
102
|
+
setCustomValidity({
|
|
103
|
+
type: 'invalid',
|
|
104
|
+
message
|
|
105
|
+
});
|
|
106
|
+
return;
|
|
101
107
|
}
|
|
102
|
-
|
|
108
|
+
setCustomValidity(undefined);
|
|
103
109
|
},
|
|
110
|
+
customValidity: customValidity,
|
|
104
111
|
label: label,
|
|
105
112
|
help: description,
|
|
106
113
|
value: value,
|