@wordpress/dataviews 7.0.1-next.0f6f9d12c.0 → 7.0.1-next.f34ab90e9.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 +4 -1
- package/build/components/dataviews-item-actions/index.js +1 -10
- package/build/components/dataviews-item-actions/index.js.map +1 -1
- 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/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/panel/dropdown.js +124 -0
- package/build/dataforms-layouts/panel/dropdown.js.map +1 -0
- package/build/dataforms-layouts/panel/index.js +19 -127
- 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/normalize-form-fields.js +3 -2
- package/build/normalize-form-fields.js.map +1 -1
- package/build/types.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/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/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/panel/dropdown.js +118 -0
- package/build-module/dataforms-layouts/panel/dropdown.js.map +1 -0
- package/build-module/dataforms-layouts/panel/index.js +23 -131
- 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/normalize-form-fields.js +3 -2
- package/build-module/normalize-form-fields.js.map +1 -1
- package/build-module/types.js.map +1 -1
- package/build-style/style-rtl.css +4 -0
- package/build-style/style.css +4 -0
- package/build-types/components/dataform/stories/index.story.d.ts +58 -25
- package/build-types/components/dataform/stories/index.story.d.ts.map +1 -1
- package/build-types/components/dataviews-item-actions/index.d.ts.map +1 -1
- 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/integer.d.ts.map +1 -1
- package/build-types/dataform-controls/text.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/normalize-form-fields.d.ts.map +1 -1
- package/build-types/types.d.ts +2 -0
- package/build-types/types.d.ts.map +1 -1
- package/build-wp/index.js +394 -178
- package/package.json +15 -15
- package/src/components/dataform/stories/index.story.tsx +354 -219
- package/src/components/dataviews-item-actions/index.tsx +7 -16
- package/src/dataform-controls/boolean.tsx +24 -10
- package/src/dataform-controls/email.tsx +24 -11
- package/src/dataform-controls/integer.tsx +27 -13
- package/src/dataform-controls/text.tsx +24 -11
- package/src/dataforms-layouts/panel/dropdown.tsx +160 -0
- package/src/dataforms-layouts/panel/index.tsx +28 -172
- package/src/dataforms-layouts/panel/modal.tsx +165 -0
- package/src/dataforms-layouts/panel/style.scss +4 -0
- package/src/normalize-form-fields.ts +1 -0
- package/src/test/dataform.tsx +169 -0
- package/src/test/normalize-form-fields.ts +15 -3
- package/src/types.ts +2 -0
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
-
## 7.0.0
|
|
5
|
+
## 7.0.0 (2025-08-20)
|
|
6
6
|
|
|
7
7
|
### Breaking changes
|
|
8
8
|
|
|
@@ -14,14 +14,17 @@
|
|
|
14
14
|
- Introduce a new `array` DataForm Edit control that supports multi-selection. [#71136](https://github.com/WordPress/gutenberg/pull/71136)
|
|
15
15
|
- Add `enableMoving` option to the `table` layout to allow or disallow column moving left and right. [#71120](https://github.com/WordPress/gutenberg/pull/71120)
|
|
16
16
|
- Add infinite scroll support across all layout types (grid, list, table). Enable infinite scroll by providing an `infiniteScrollHandler` function in the `paginationInfo` prop and toggling the feature in the view configuration. ([#70955](https://github.com/WordPress/gutenberg/pull/70955))
|
|
17
|
+
- Add support for modal in DataForm panel layouts. [#71212](https://github.com/WordPress/gutenberg/pull/71212)
|
|
17
18
|
|
|
18
19
|
### Enhancements
|
|
19
20
|
|
|
21
|
+
- Update DataForm stories to better highlight the library's capabilities ([#71268](https://github.com/WordPress/gutenberg/pull/71268)).
|
|
20
22
|
- Add two smaller sizs to the grid layout ([#71077](https://github.com/WordPress/gutenberg/pull/71077)).
|
|
21
23
|
|
|
22
24
|
### Bug Fixes
|
|
23
25
|
|
|
24
26
|
- Do not throw exception when `view.layout.previewSize` is smaller than the smallest available size. [#71218](https://github.com/WordPress/gutenberg/pull/71218)
|
|
27
|
+
- Fix actions horizontal layout consistency when all actions are primary. [#71274](https://github.com/WordPress/gutenberg/pull/71274)
|
|
25
28
|
|
|
26
29
|
## 6.0.0 (2025-08-07)
|
|
27
30
|
|
|
@@ -128,15 +128,6 @@ function ItemActions({
|
|
|
128
128
|
registry: registry
|
|
129
129
|
});
|
|
130
130
|
}
|
|
131
|
-
|
|
132
|
-
// If all actions are primary, there is no need to render the dropdown.
|
|
133
|
-
if (primaryActions.length === eligibleActions.length) {
|
|
134
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(PrimaryActions, {
|
|
135
|
-
item: item,
|
|
136
|
-
actions: primaryActions,
|
|
137
|
-
registry: registry
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
131
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
|
|
141
132
|
spacing: 1,
|
|
142
133
|
justify: "flex-end",
|
|
@@ -149,7 +140,7 @@ function ItemActions({
|
|
|
149
140
|
item: item,
|
|
150
141
|
actions: primaryActions,
|
|
151
142
|
registry: registry
|
|
152
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(CompactItemActions, {
|
|
143
|
+
}), primaryActions.length < eligibleActions.length && /*#__PURE__*/(0, _jsxRuntime.jsx)(CompactItemActions, {
|
|
153
144
|
item: item,
|
|
154
145
|
actions: eligibleActions,
|
|
155
146
|
registry: registry
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_i18n","_element","_icons","_data","_lockUnlock","_jsxRuntime","Menu","kebabCase","unlock","componentsPrivateApis","ButtonTrigger","action","onClick","items","label","jsx","Button","icon","disabled","accessibleWhenDisabled","isDestructive","size","MenuItemTrigger","Item","children","ItemLabel","ActionModal","closeModal","_action$modalFocusOnM","Modal","title","modalHeader","__experimentalHideHeader","hideModalHeader","onRequestClose","focusOnMount","modalFocusOnMount","modalSize","overlayClassName","id","RenderModal","ActionsMenuGroup","actions","item","registry","setActiveModalAction","Group","map","callback","ItemActions","isCompact","useRegistry","primaryActions","eligibleActions","useMemo","_eligibleActions","filter","isEligible","_primaryActions","isPrimary","CompactItemActions","isSmall","length","PrimaryActions","jsxs","__experimentalHStack","spacing","justify","className","style","flexShrink","width","activeModalAction","useState","Fragment","placement","TriggerButton","render","moreVertical","__","Popover","Array","isArray"],"sources":["@wordpress/dataviews/src/components/dataviews-item-actions/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { MouseEventHandler } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tModal,\n\t__experimentalHStack as HStack,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport { moreVertical } from '@wordpress/icons';\nimport { useRegistry } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport type { Action, ActionModal as ActionModalType } from '../../types';\n\nconst { Menu, kebabCase } = unlock( componentsPrivateApis );\n\nexport interface ActionTriggerProps< Item > {\n\taction: Action< Item >;\n\tonClick: MouseEventHandler;\n\tisBusy?: boolean;\n\titems: Item[];\n}\n\nexport interface ActionModalProps< Item > {\n\taction: ActionModalType< Item >;\n\titems: Item[];\n\tcloseModal: () => void;\n}\n\ninterface ActionsMenuGroupProps< Item > {\n\tactions: Action< Item >[];\n\titem: Item;\n\tregistry: ReturnType< typeof useRegistry >;\n\tsetActiveModalAction: ( action: ActionModalType< Item > | null ) => void;\n}\n\ninterface ItemActionsProps< Item > {\n\titem: Item;\n\tactions: Action< Item >[];\n\tisCompact?: boolean;\n}\n\ninterface CompactItemActionsProps< Item > {\n\titem: Item;\n\tactions: Action< Item >[];\n\tisSmall?: boolean;\n\tregistry: ReturnType< typeof useRegistry >;\n}\n\ninterface PrimaryActionsProps< Item > {\n\titem: Item;\n\tactions: Action< Item >[];\n\tregistry: ReturnType< typeof useRegistry >;\n}\n\nfunction ButtonTrigger< Item >( {\n\taction,\n\tonClick,\n\titems,\n}: ActionTriggerProps< Item > ) {\n\tconst label =\n\t\ttypeof action.label === 'string' ? action.label : action.label( items );\n\treturn (\n\t\t<Button\n\t\t\tlabel={ label }\n\t\t\ticon={ action.icon }\n\t\t\tdisabled={ !! action.disabled }\n\t\t\taccessibleWhenDisabled\n\t\t\tisDestructive={ action.isDestructive }\n\t\t\tsize=\"compact\"\n\t\t\tonClick={ onClick }\n\t\t/>\n\t);\n}\n\nfunction MenuItemTrigger< Item >( {\n\taction,\n\tonClick,\n\titems,\n}: ActionTriggerProps< Item > ) {\n\tconst label =\n\t\ttypeof action.label === 'string' ? action.label : action.label( items );\n\treturn (\n\t\t<Menu.Item disabled={ action.disabled } onClick={ onClick }>\n\t\t\t<Menu.ItemLabel>{ label }</Menu.ItemLabel>\n\t\t</Menu.Item>\n\t);\n}\n\nexport function ActionModal< Item >( {\n\taction,\n\titems,\n\tcloseModal,\n}: ActionModalProps< Item > ) {\n\tconst label =\n\t\ttypeof action.label === 'string' ? action.label : action.label( items );\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ action.modalHeader || label }\n\t\t\t__experimentalHideHeader={ !! action.hideModalHeader }\n\t\t\tonRequestClose={ closeModal }\n\t\t\tfocusOnMount={ action.modalFocusOnMount ?? true }\n\t\t\tsize={ action.modalSize || 'medium' }\n\t\t\toverlayClassName={ `dataviews-action-modal dataviews-action-modal__${ kebabCase(\n\t\t\t\taction.id\n\t\t\t) }` }\n\t\t>\n\t\t\t<action.RenderModal items={ items } closeModal={ closeModal } />\n\t\t</Modal>\n\t);\n}\n\nexport function ActionsMenuGroup< Item >( {\n\tactions,\n\titem,\n\tregistry,\n\tsetActiveModalAction,\n}: ActionsMenuGroupProps< Item > ) {\n\treturn (\n\t\t<Menu.Group>\n\t\t\t{ actions.map( ( action ) => (\n\t\t\t\t<MenuItemTrigger\n\t\t\t\t\tkey={ action.id }\n\t\t\t\t\taction={ action }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tif ( 'RenderModal' in action ) {\n\t\t\t\t\t\t\tsetActiveModalAction( action );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\taction.callback( [ item ], { registry } );\n\t\t\t\t\t} }\n\t\t\t\t\titems={ [ item ] }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</Menu.Group>\n\t);\n}\n\nexport default function ItemActions< Item >( {\n\titem,\n\tactions,\n\tisCompact,\n}: ItemActionsProps< Item > ) {\n\tconst registry = useRegistry();\n\tconst { primaryActions, eligibleActions } = useMemo( () => {\n\t\t// If an action is eligible for all items, doesn't need\n\t\t// to provide the `isEligible` function.\n\t\tconst _eligibleActions = actions.filter(\n\t\t\t( action ) => ! action.isEligible || action.isEligible( item )\n\t\t);\n\t\tconst _primaryActions = _eligibleActions.filter(\n\t\t\t( action ) => action.isPrimary && !! action.icon\n\t\t);\n\t\treturn {\n\t\t\tprimaryActions: _primaryActions,\n\t\t\teligibleActions: _eligibleActions,\n\t\t};\n\t}, [ actions, item ] );\n\n\tif ( isCompact ) {\n\t\treturn (\n\t\t\t<CompactItemActions\n\t\t\t\titem={ item }\n\t\t\t\tactions={ eligibleActions }\n\t\t\t\tisSmall\n\t\t\t\tregistry={ registry }\n\t\t\t/>\n\t\t);\n\t}\n\n\t// If all actions are primary, there is no need to render the dropdown.\n\tif ( primaryActions.length === eligibleActions.length ) {\n\t\treturn (\n\t\t\t<PrimaryActions\n\t\t\t\titem={ item }\n\t\t\t\tactions={ primaryActions }\n\t\t\t\tregistry={ registry }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<HStack\n\t\t\tspacing={ 1 }\n\t\t\tjustify=\"flex-end\"\n\t\t\tclassName=\"dataviews-item-actions\"\n\t\t\tstyle={ {\n\t\t\t\tflexShrink: 0,\n\t\t\t\twidth: 'auto',\n\t\t\t} }\n\t\t>\n\t\t\t<PrimaryActions\n\t\t\t\titem={ item }\n\t\t\t\tactions={ primaryActions }\n\t\t\t\tregistry={ registry }\n\t\t\t/>\n\t\t\t<CompactItemActions\n\t\t\t\titem={ item }\n\t\t\t\tactions={ eligibleActions }\n\t\t\t\tregistry={ registry }\n\t\t\t/>\n\t\t</HStack>\n\t);\n}\n\nfunction CompactItemActions< Item >( {\n\titem,\n\tactions,\n\tisSmall,\n\tregistry,\n}: CompactItemActionsProps< Item > ) {\n\tconst [ activeModalAction, setActiveModalAction ] = useState(\n\t\tnull as ActionModalType< Item > | null\n\t);\n\treturn (\n\t\t<>\n\t\t\t<Menu placement=\"bottom-end\">\n\t\t\t\t<Menu.TriggerButton\n\t\t\t\t\trender={\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tsize={ isSmall ? 'small' : 'compact' }\n\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\tdisabled={ ! actions.length }\n\t\t\t\t\t\t\tclassName=\"dataviews-all-actions-button\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<Menu.Popover>\n\t\t\t\t\t<ActionsMenuGroup\n\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tregistry={ registry }\n\t\t\t\t\t\tsetActiveModalAction={ setActiveModalAction }\n\t\t\t\t\t/>\n\t\t\t\t</Menu.Popover>\n\t\t\t</Menu>\n\t\t\t{ !! activeModalAction && (\n\t\t\t\t<ActionModal\n\t\t\t\t\taction={ activeModalAction }\n\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\tcloseModal={ () => setActiveModalAction( null ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction PrimaryActions< Item >( {\n\titem,\n\tactions,\n\tregistry,\n}: PrimaryActionsProps< Item > ) {\n\tconst [ activeModalAction, setActiveModalAction ] = useState( null as any );\n\tif ( ! Array.isArray( actions ) || actions.length === 0 ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<>\n\t\t\t{ actions.map( ( action ) => (\n\t\t\t\t<ButtonTrigger\n\t\t\t\t\tkey={ action.id }\n\t\t\t\t\taction={ action }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tif ( 'RenderModal' in action ) {\n\t\t\t\t\t\t\tsetActiveModalAction( action );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\taction.callback( [ item ], { registry } );\n\t\t\t\t\t} }\n\t\t\t\t\titems={ [ item ] }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t\t{ !! activeModalAction && (\n\t\t\t\t<ActionModal\n\t\t\t\t\taction={ activeModalAction }\n\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\tcloseModal={ () => setActiveModalAction( null ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;;AAQA,IAAAA,WAAA,GAAAC,OAAA;AAMA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AAKA,IAAAK,WAAA,GAAAL,OAAA;AAA2C,IAAAM,WAAA,GAAAN,OAAA;AAtB3C;AACA;AACA;;AAGA;AACA;AACA;;AAYA;AACA;AACA;;AAIA,MAAM;EAAEO,IAAI;EAAEC;AAAU,CAAC,GAAG,IAAAC,kBAAM,EAAEC,uBAAsB,CAAC;AAyC3D,SAASC,aAAaA,CAAU;EAC/BC,MAAM;EACNC,OAAO;EACPC;AAC2B,CAAC,EAAG;EAC/B,MAAMC,KAAK,GACV,OAAOH,MAAM,CAACG,KAAK,KAAK,QAAQ,GAAGH,MAAM,CAACG,KAAK,GAAGH,MAAM,CAACG,KAAK,CAAED,KAAM,CAAC;EACxE,oBACC,IAAAR,WAAA,CAAAU,GAAA,EAACjB,WAAA,CAAAkB,MAAM;IACNF,KAAK,EAAGA,KAAO;IACfG,IAAI,EAAGN,MAAM,CAACM,IAAM;IACpBC,QAAQ,EAAG,CAAC,CAAEP,MAAM,CAACO,QAAU;IAC/BC,sBAAsB;IACtBC,aAAa,EAAGT,MAAM,CAACS,aAAe;IACtCC,IAAI,EAAC,SAAS;IACdT,OAAO,EAAGA;EAAS,CACnB,CAAC;AAEJ;AAEA,SAASU,eAAeA,CAAU;EACjCX,MAAM;EACNC,OAAO;EACPC;AAC2B,CAAC,EAAG;EAC/B,MAAMC,KAAK,GACV,OAAOH,MAAM,CAACG,KAAK,KAAK,QAAQ,GAAGH,MAAM,CAACG,KAAK,GAAGH,MAAM,CAACG,KAAK,CAAED,KAAM,CAAC;EACxE,oBACC,IAAAR,WAAA,CAAAU,GAAA,EAACT,IAAI,CAACiB,IAAI;IAACL,QAAQ,EAAGP,MAAM,CAACO,QAAU;IAACN,OAAO,EAAGA,OAAS;IAAAY,QAAA,eAC1D,IAAAnB,WAAA,CAAAU,GAAA,EAACT,IAAI,CAACmB,SAAS;MAAAD,QAAA,EAAGV;IAAK,CAAkB;EAAC,CAChC,CAAC;AAEd;AAEO,SAASY,WAAWA,CAAU;EACpCf,MAAM;EACNE,KAAK;EACLc;AACyB,CAAC,EAAG;EAAA,IAAAC,qBAAA;EAC7B,MAAMd,KAAK,GACV,OAAOH,MAAM,CAACG,KAAK,KAAK,QAAQ,GAAGH,MAAM,CAACG,KAAK,GAAGH,MAAM,CAACG,KAAK,CAAED,KAAM,CAAC;EACxE,oBACC,IAAAR,WAAA,CAAAU,GAAA,EAACjB,WAAA,CAAA+B,KAAK;IACLC,KAAK,EAAGnB,MAAM,CAACoB,WAAW,IAAIjB,KAAO;IACrCkB,wBAAwB,EAAG,CAAC,CAAErB,MAAM,CAACsB,eAAiB;IACtDC,cAAc,EAAGP,UAAY;IAC7BQ,YAAY,GAAAP,qBAAA,GAAGjB,MAAM,CAACyB,iBAAiB,cAAAR,qBAAA,cAAAA,qBAAA,GAAI,IAAM;IACjDP,IAAI,EAAGV,MAAM,CAAC0B,SAAS,IAAI,QAAU;IACrCC,gBAAgB,EAAG,kDAAmD/B,SAAS,CAC9EI,MAAM,CAAC4B,EACR,CAAC,EAAK;IAAAf,QAAA,eAEN,IAAAnB,WAAA,CAAAU,GAAA,EAACJ,MAAM,CAAC6B,WAAW;MAAC3B,KAAK,EAAGA,KAAO;MAACc,UAAU,EAAGA;IAAY,CAAE;EAAC,CAC1D,CAAC;AAEV;AAEO,SAASc,gBAAgBA,CAAU;EACzCC,OAAO;EACPC,IAAI;EACJC,QAAQ;EACRC;AAC8B,CAAC,EAAG;EAClC,oBACC,IAAAxC,WAAA,CAAAU,GAAA,EAACT,IAAI,CAACwC,KAAK;IAAAtB,QAAA,EACRkB,OAAO,CAACK,GAAG,CAAIpC,MAAM,iBACtB,IAAAN,WAAA,CAAAU,GAAA,EAACO,eAAe;MAEfX,MAAM,EAAGA,MAAQ;MACjBC,OAAO,EAAGA,CAAA,KAAM;QACf,IAAK,aAAa,IAAID,MAAM,EAAG;UAC9BkC,oBAAoB,CAAElC,MAAO,CAAC;UAC9B;QACD;QACAA,MAAM,CAACqC,QAAQ,CAAE,CAAEL,IAAI,CAAE,EAAE;UAAEC;QAAS,CAAE,CAAC;MAC1C,CAAG;MACH/B,KAAK,EAAG,CAAE8B,IAAI;IAAI,GATZhC,MAAM,CAAC4B,EAUb,CACA;EAAC,CACQ,CAAC;AAEf;AAEe,SAASU,WAAWA,CAAU;EAC5CN,IAAI;EACJD,OAAO;EACPQ;AACyB,CAAC,EAAG;EAC7B,MAAMN,QAAQ,GAAG,IAAAO,iBAAW,EAAC,CAAC;EAC9B,MAAM;IAAEC,cAAc;IAAEC;EAAgB,CAAC,GAAG,IAAAC,gBAAO,EAAE,MAAM;IAC1D;IACA;IACA,MAAMC,gBAAgB,GAAGb,OAAO,CAACc,MAAM,CACpC7C,MAAM,IAAM,CAAEA,MAAM,CAAC8C,UAAU,IAAI9C,MAAM,CAAC8C,UAAU,CAAEd,IAAK,CAC9D,CAAC;IACD,MAAMe,eAAe,GAAGH,gBAAgB,CAACC,MAAM,CAC5C7C,MAAM,IAAMA,MAAM,CAACgD,SAAS,IAAI,CAAC,CAAEhD,MAAM,CAACM,IAC7C,CAAC;IACD,OAAO;MACNmC,cAAc,EAAEM,eAAe;MAC/BL,eAAe,EAAEE;IAClB,CAAC;EACF,CAAC,EAAE,CAAEb,OAAO,EAAEC,IAAI,CAAG,CAAC;EAEtB,IAAKO,SAAS,EAAG;IAChB,oBACC,IAAA7C,WAAA,CAAAU,GAAA,EAAC6C,kBAAkB;MAClBjB,IAAI,EAAGA,IAAM;MACbD,OAAO,EAAGW,eAAiB;MAC3BQ,OAAO;MACPjB,QAAQ,EAAGA;IAAU,CACrB,CAAC;EAEJ;;EAEA;EACA,IAAKQ,cAAc,CAACU,MAAM,KAAKT,eAAe,CAACS,MAAM,EAAG;IACvD,oBACC,IAAAzD,WAAA,CAAAU,GAAA,EAACgD,cAAc;MACdpB,IAAI,EAAGA,IAAM;MACbD,OAAO,EAAGU,cAAgB;MAC1BR,QAAQ,EAAGA;IAAU,CACrB,CAAC;EAEJ;EAEA,oBACC,IAAAvC,WAAA,CAAA2D,IAAA,EAAClE,WAAA,CAAAmE,oBAAM;IACNC,OAAO,EAAG,CAAG;IACbC,OAAO,EAAC,UAAU;IAClBC,SAAS,EAAC,wBAAwB;IAClCC,KAAK,EAAG;MACPC,UAAU,EAAE,CAAC;MACbC,KAAK,EAAE;IACR,CAAG;IAAA/C,QAAA,gBAEH,IAAAnB,WAAA,CAAAU,GAAA,EAACgD,cAAc;MACdpB,IAAI,EAAGA,IAAM;MACbD,OAAO,EAAGU,cAAgB;MAC1BR,QAAQ,EAAGA;IAAU,CACrB,CAAC,eACF,IAAAvC,WAAA,CAAAU,GAAA,EAAC6C,kBAAkB;MAClBjB,IAAI,EAAGA,IAAM;MACbD,OAAO,EAAGW,eAAiB;MAC3BT,QAAQ,EAAGA;IAAU,CACrB,CAAC;EAAA,CACK,CAAC;AAEX;AAEA,SAASgB,kBAAkBA,CAAU;EACpCjB,IAAI;EACJD,OAAO;EACPmB,OAAO;EACPjB;AACgC,CAAC,EAAG;EACpC,MAAM,CAAE4B,iBAAiB,EAAE3B,oBAAoB,CAAE,GAAG,IAAA4B,iBAAQ,EAC3D,IACD,CAAC;EACD,oBACC,IAAApE,WAAA,CAAA2D,IAAA,EAAA3D,WAAA,CAAAqE,QAAA;IAAAlD,QAAA,gBACC,IAAAnB,WAAA,CAAA2D,IAAA,EAAC1D,IAAI;MAACqE,SAAS,EAAC,YAAY;MAAAnD,QAAA,gBAC3B,IAAAnB,WAAA,CAAAU,GAAA,EAACT,IAAI,CAACsE,aAAa;QAClBC,MAAM,eACL,IAAAxE,WAAA,CAAAU,GAAA,EAACjB,WAAA,CAAAkB,MAAM;UACNK,IAAI,EAAGwC,OAAO,GAAG,OAAO,GAAG,SAAW;UACtC5C,IAAI,EAAG6D,mBAAc;UACrBhE,KAAK,EAAG,IAAAiE,QAAE,EAAE,SAAU,CAAG;UACzB5D,sBAAsB;UACtBD,QAAQ,EAAG,CAAEwB,OAAO,CAACoB,MAAQ;UAC7BM,SAAS,EAAC;QAA8B,CACxC;MACD,CACD,CAAC,eACF,IAAA/D,WAAA,CAAAU,GAAA,EAACT,IAAI,CAAC0E,OAAO;QAAAxD,QAAA,eACZ,IAAAnB,WAAA,CAAAU,GAAA,EAAC0B,gBAAgB;UAChBC,OAAO,EAAGA,OAAS;UACnBC,IAAI,EAAGA,IAAM;UACbC,QAAQ,EAAGA,QAAU;UACrBC,oBAAoB,EAAGA;QAAsB,CAC7C;MAAC,CACW,CAAC;IAAA,CACV,CAAC,EACL,CAAC,CAAE2B,iBAAiB,iBACrB,IAAAnE,WAAA,CAAAU,GAAA,EAACW,WAAW;MACXf,MAAM,EAAG6D,iBAAmB;MAC5B3D,KAAK,EAAG,CAAE8B,IAAI,CAAI;MAClBhB,UAAU,EAAGA,CAAA,KAAMkB,oBAAoB,CAAE,IAAK;IAAG,CACjD,CACD;EAAA,CACA,CAAC;AAEL;AAEA,SAASkB,cAAcA,CAAU;EAChCpB,IAAI;EACJD,OAAO;EACPE;AAC4B,CAAC,EAAG;EAChC,MAAM,CAAE4B,iBAAiB,EAAE3B,oBAAoB,CAAE,GAAG,IAAA4B,iBAAQ,EAAE,IAAY,CAAC;EAC3E,IAAK,CAAEQ,KAAK,CAACC,OAAO,CAAExC,OAAQ,CAAC,IAAIA,OAAO,CAACoB,MAAM,KAAK,CAAC,EAAG;IACzD,OAAO,IAAI;EACZ;EACA,oBACC,IAAAzD,WAAA,CAAA2D,IAAA,EAAA3D,WAAA,CAAAqE,QAAA;IAAAlD,QAAA,GACGkB,OAAO,CAACK,GAAG,CAAIpC,MAAM,iBACtB,IAAAN,WAAA,CAAAU,GAAA,EAACL,aAAa;MAEbC,MAAM,EAAGA,MAAQ;MACjBC,OAAO,EAAGA,CAAA,KAAM;QACf,IAAK,aAAa,IAAID,MAAM,EAAG;UAC9BkC,oBAAoB,CAAElC,MAAO,CAAC;UAC9B;QACD;QACAA,MAAM,CAACqC,QAAQ,CAAE,CAAEL,IAAI,CAAE,EAAE;UAAEC;QAAS,CAAE,CAAC;MAC1C,CAAG;MACH/B,KAAK,EAAG,CAAE8B,IAAI;IAAI,GATZhC,MAAM,CAAC4B,EAUb,CACA,CAAC,EACD,CAAC,CAAEiC,iBAAiB,iBACrB,IAAAnE,WAAA,CAAAU,GAAA,EAACW,WAAW;MACXf,MAAM,EAAG6D,iBAAmB;MAC5B3D,KAAK,EAAG,CAAE8B,IAAI,CAAI;MAClBhB,UAAU,EAAGA,CAAA,KAAMkB,oBAAoB,CAAE,IAAK;IAAG,CACjD,CACD;EAAA,CACA,CAAC;AAEL","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_components","require","_i18n","_element","_icons","_data","_lockUnlock","_jsxRuntime","Menu","kebabCase","unlock","componentsPrivateApis","ButtonTrigger","action","onClick","items","label","jsx","Button","icon","disabled","accessibleWhenDisabled","isDestructive","size","MenuItemTrigger","Item","children","ItemLabel","ActionModal","closeModal","_action$modalFocusOnM","Modal","title","modalHeader","__experimentalHideHeader","hideModalHeader","onRequestClose","focusOnMount","modalFocusOnMount","modalSize","overlayClassName","id","RenderModal","ActionsMenuGroup","actions","item","registry","setActiveModalAction","Group","map","callback","ItemActions","isCompact","useRegistry","primaryActions","eligibleActions","useMemo","_eligibleActions","filter","isEligible","_primaryActions","isPrimary","CompactItemActions","isSmall","jsxs","__experimentalHStack","spacing","justify","className","style","flexShrink","width","PrimaryActions","length","activeModalAction","useState","Fragment","placement","TriggerButton","render","moreVertical","__","Popover","Array","isArray"],"sources":["@wordpress/dataviews/src/components/dataviews-item-actions/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { MouseEventHandler } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tModal,\n\t__experimentalHStack as HStack,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport { moreVertical } from '@wordpress/icons';\nimport { useRegistry } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport type { Action, ActionModal as ActionModalType } from '../../types';\n\nconst { Menu, kebabCase } = unlock( componentsPrivateApis );\n\nexport interface ActionTriggerProps< Item > {\n\taction: Action< Item >;\n\tonClick: MouseEventHandler;\n\tisBusy?: boolean;\n\titems: Item[];\n}\n\nexport interface ActionModalProps< Item > {\n\taction: ActionModalType< Item >;\n\titems: Item[];\n\tcloseModal: () => void;\n}\n\ninterface ActionsMenuGroupProps< Item > {\n\tactions: Action< Item >[];\n\titem: Item;\n\tregistry: ReturnType< typeof useRegistry >;\n\tsetActiveModalAction: ( action: ActionModalType< Item > | null ) => void;\n}\n\ninterface ItemActionsProps< Item > {\n\titem: Item;\n\tactions: Action< Item >[];\n\tisCompact?: boolean;\n}\n\ninterface CompactItemActionsProps< Item > {\n\titem: Item;\n\tactions: Action< Item >[];\n\tisSmall?: boolean;\n\tregistry: ReturnType< typeof useRegistry >;\n}\n\ninterface PrimaryActionsProps< Item > {\n\titem: Item;\n\tactions: Action< Item >[];\n\tregistry: ReturnType< typeof useRegistry >;\n}\n\nfunction ButtonTrigger< Item >( {\n\taction,\n\tonClick,\n\titems,\n}: ActionTriggerProps< Item > ) {\n\tconst label =\n\t\ttypeof action.label === 'string' ? action.label : action.label( items );\n\treturn (\n\t\t<Button\n\t\t\tlabel={ label }\n\t\t\ticon={ action.icon }\n\t\t\tdisabled={ !! action.disabled }\n\t\t\taccessibleWhenDisabled\n\t\t\tisDestructive={ action.isDestructive }\n\t\t\tsize=\"compact\"\n\t\t\tonClick={ onClick }\n\t\t/>\n\t);\n}\n\nfunction MenuItemTrigger< Item >( {\n\taction,\n\tonClick,\n\titems,\n}: ActionTriggerProps< Item > ) {\n\tconst label =\n\t\ttypeof action.label === 'string' ? action.label : action.label( items );\n\treturn (\n\t\t<Menu.Item disabled={ action.disabled } onClick={ onClick }>\n\t\t\t<Menu.ItemLabel>{ label }</Menu.ItemLabel>\n\t\t</Menu.Item>\n\t);\n}\n\nexport function ActionModal< Item >( {\n\taction,\n\titems,\n\tcloseModal,\n}: ActionModalProps< Item > ) {\n\tconst label =\n\t\ttypeof action.label === 'string' ? action.label : action.label( items );\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ action.modalHeader || label }\n\t\t\t__experimentalHideHeader={ !! action.hideModalHeader }\n\t\t\tonRequestClose={ closeModal }\n\t\t\tfocusOnMount={ action.modalFocusOnMount ?? true }\n\t\t\tsize={ action.modalSize || 'medium' }\n\t\t\toverlayClassName={ `dataviews-action-modal dataviews-action-modal__${ kebabCase(\n\t\t\t\taction.id\n\t\t\t) }` }\n\t\t>\n\t\t\t<action.RenderModal items={ items } closeModal={ closeModal } />\n\t\t</Modal>\n\t);\n}\n\nexport function ActionsMenuGroup< Item >( {\n\tactions,\n\titem,\n\tregistry,\n\tsetActiveModalAction,\n}: ActionsMenuGroupProps< Item > ) {\n\treturn (\n\t\t<Menu.Group>\n\t\t\t{ actions.map( ( action ) => (\n\t\t\t\t<MenuItemTrigger\n\t\t\t\t\tkey={ action.id }\n\t\t\t\t\taction={ action }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tif ( 'RenderModal' in action ) {\n\t\t\t\t\t\t\tsetActiveModalAction( action );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\taction.callback( [ item ], { registry } );\n\t\t\t\t\t} }\n\t\t\t\t\titems={ [ item ] }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</Menu.Group>\n\t);\n}\n\nexport default function ItemActions< Item >( {\n\titem,\n\tactions,\n\tisCompact,\n}: ItemActionsProps< Item > ) {\n\tconst registry = useRegistry();\n\tconst { primaryActions, eligibleActions } = useMemo( () => {\n\t\t// If an action is eligible for all items, doesn't need\n\t\t// to provide the `isEligible` function.\n\t\tconst _eligibleActions = actions.filter(\n\t\t\t( action ) => ! action.isEligible || action.isEligible( item )\n\t\t);\n\t\tconst _primaryActions = _eligibleActions.filter(\n\t\t\t( action ) => action.isPrimary && !! action.icon\n\t\t);\n\t\treturn {\n\t\t\tprimaryActions: _primaryActions,\n\t\t\teligibleActions: _eligibleActions,\n\t\t};\n\t}, [ actions, item ] );\n\n\tif ( isCompact ) {\n\t\treturn (\n\t\t\t<CompactItemActions\n\t\t\t\titem={ item }\n\t\t\t\tactions={ eligibleActions }\n\t\t\t\tisSmall\n\t\t\t\tregistry={ registry }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<HStack\n\t\t\tspacing={ 1 }\n\t\t\tjustify=\"flex-end\"\n\t\t\tclassName=\"dataviews-item-actions\"\n\t\t\tstyle={ {\n\t\t\t\tflexShrink: 0,\n\t\t\t\twidth: 'auto',\n\t\t\t} }\n\t\t>\n\t\t\t<PrimaryActions\n\t\t\t\titem={ item }\n\t\t\t\tactions={ primaryActions }\n\t\t\t\tregistry={ registry }\n\t\t\t/>\n\t\t\t{ primaryActions.length < eligibleActions.length && (\n\t\t\t\t<CompactItemActions\n\t\t\t\t\titem={ item }\n\t\t\t\t\tactions={ eligibleActions }\n\t\t\t\t\tregistry={ registry }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</HStack>\n\t);\n}\n\nfunction CompactItemActions< Item >( {\n\titem,\n\tactions,\n\tisSmall,\n\tregistry,\n}: CompactItemActionsProps< Item > ) {\n\tconst [ activeModalAction, setActiveModalAction ] = useState(\n\t\tnull as ActionModalType< Item > | null\n\t);\n\treturn (\n\t\t<>\n\t\t\t<Menu placement=\"bottom-end\">\n\t\t\t\t<Menu.TriggerButton\n\t\t\t\t\trender={\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tsize={ isSmall ? 'small' : 'compact' }\n\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\tdisabled={ ! actions.length }\n\t\t\t\t\t\t\tclassName=\"dataviews-all-actions-button\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<Menu.Popover>\n\t\t\t\t\t<ActionsMenuGroup\n\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tregistry={ registry }\n\t\t\t\t\t\tsetActiveModalAction={ setActiveModalAction }\n\t\t\t\t\t/>\n\t\t\t\t</Menu.Popover>\n\t\t\t</Menu>\n\t\t\t{ !! activeModalAction && (\n\t\t\t\t<ActionModal\n\t\t\t\t\taction={ activeModalAction }\n\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\tcloseModal={ () => setActiveModalAction( null ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction PrimaryActions< Item >( {\n\titem,\n\tactions,\n\tregistry,\n}: PrimaryActionsProps< Item > ) {\n\tconst [ activeModalAction, setActiveModalAction ] = useState( null as any );\n\tif ( ! Array.isArray( actions ) || actions.length === 0 ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<>\n\t\t\t{ actions.map( ( action ) => (\n\t\t\t\t<ButtonTrigger\n\t\t\t\t\tkey={ action.id }\n\t\t\t\t\taction={ action }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tif ( 'RenderModal' in action ) {\n\t\t\t\t\t\t\tsetActiveModalAction( action );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\taction.callback( [ item ], { registry } );\n\t\t\t\t\t} }\n\t\t\t\t\titems={ [ item ] }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t\t{ !! activeModalAction && (\n\t\t\t\t<ActionModal\n\t\t\t\t\taction={ activeModalAction }\n\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\tcloseModal={ () => setActiveModalAction( null ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;;AAQA,IAAAA,WAAA,GAAAC,OAAA;AAMA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AAKA,IAAAK,WAAA,GAAAL,OAAA;AAA2C,IAAAM,WAAA,GAAAN,OAAA;AAtB3C;AACA;AACA;;AAGA;AACA;AACA;;AAYA;AACA;AACA;;AAIA,MAAM;EAAEO,IAAI;EAAEC;AAAU,CAAC,GAAG,IAAAC,kBAAM,EAAEC,uBAAsB,CAAC;AAyC3D,SAASC,aAAaA,CAAU;EAC/BC,MAAM;EACNC,OAAO;EACPC;AAC2B,CAAC,EAAG;EAC/B,MAAMC,KAAK,GACV,OAAOH,MAAM,CAACG,KAAK,KAAK,QAAQ,GAAGH,MAAM,CAACG,KAAK,GAAGH,MAAM,CAACG,KAAK,CAAED,KAAM,CAAC;EACxE,oBACC,IAAAR,WAAA,CAAAU,GAAA,EAACjB,WAAA,CAAAkB,MAAM;IACNF,KAAK,EAAGA,KAAO;IACfG,IAAI,EAAGN,MAAM,CAACM,IAAM;IACpBC,QAAQ,EAAG,CAAC,CAAEP,MAAM,CAACO,QAAU;IAC/BC,sBAAsB;IACtBC,aAAa,EAAGT,MAAM,CAACS,aAAe;IACtCC,IAAI,EAAC,SAAS;IACdT,OAAO,EAAGA;EAAS,CACnB,CAAC;AAEJ;AAEA,SAASU,eAAeA,CAAU;EACjCX,MAAM;EACNC,OAAO;EACPC;AAC2B,CAAC,EAAG;EAC/B,MAAMC,KAAK,GACV,OAAOH,MAAM,CAACG,KAAK,KAAK,QAAQ,GAAGH,MAAM,CAACG,KAAK,GAAGH,MAAM,CAACG,KAAK,CAAED,KAAM,CAAC;EACxE,oBACC,IAAAR,WAAA,CAAAU,GAAA,EAACT,IAAI,CAACiB,IAAI;IAACL,QAAQ,EAAGP,MAAM,CAACO,QAAU;IAACN,OAAO,EAAGA,OAAS;IAAAY,QAAA,eAC1D,IAAAnB,WAAA,CAAAU,GAAA,EAACT,IAAI,CAACmB,SAAS;MAAAD,QAAA,EAAGV;IAAK,CAAkB;EAAC,CAChC,CAAC;AAEd;AAEO,SAASY,WAAWA,CAAU;EACpCf,MAAM;EACNE,KAAK;EACLc;AACyB,CAAC,EAAG;EAAA,IAAAC,qBAAA;EAC7B,MAAMd,KAAK,GACV,OAAOH,MAAM,CAACG,KAAK,KAAK,QAAQ,GAAGH,MAAM,CAACG,KAAK,GAAGH,MAAM,CAACG,KAAK,CAAED,KAAM,CAAC;EACxE,oBACC,IAAAR,WAAA,CAAAU,GAAA,EAACjB,WAAA,CAAA+B,KAAK;IACLC,KAAK,EAAGnB,MAAM,CAACoB,WAAW,IAAIjB,KAAO;IACrCkB,wBAAwB,EAAG,CAAC,CAAErB,MAAM,CAACsB,eAAiB;IACtDC,cAAc,EAAGP,UAAY;IAC7BQ,YAAY,GAAAP,qBAAA,GAAGjB,MAAM,CAACyB,iBAAiB,cAAAR,qBAAA,cAAAA,qBAAA,GAAI,IAAM;IACjDP,IAAI,EAAGV,MAAM,CAAC0B,SAAS,IAAI,QAAU;IACrCC,gBAAgB,EAAG,kDAAmD/B,SAAS,CAC9EI,MAAM,CAAC4B,EACR,CAAC,EAAK;IAAAf,QAAA,eAEN,IAAAnB,WAAA,CAAAU,GAAA,EAACJ,MAAM,CAAC6B,WAAW;MAAC3B,KAAK,EAAGA,KAAO;MAACc,UAAU,EAAGA;IAAY,CAAE;EAAC,CAC1D,CAAC;AAEV;AAEO,SAASc,gBAAgBA,CAAU;EACzCC,OAAO;EACPC,IAAI;EACJC,QAAQ;EACRC;AAC8B,CAAC,EAAG;EAClC,oBACC,IAAAxC,WAAA,CAAAU,GAAA,EAACT,IAAI,CAACwC,KAAK;IAAAtB,QAAA,EACRkB,OAAO,CAACK,GAAG,CAAIpC,MAAM,iBACtB,IAAAN,WAAA,CAAAU,GAAA,EAACO,eAAe;MAEfX,MAAM,EAAGA,MAAQ;MACjBC,OAAO,EAAGA,CAAA,KAAM;QACf,IAAK,aAAa,IAAID,MAAM,EAAG;UAC9BkC,oBAAoB,CAAElC,MAAO,CAAC;UAC9B;QACD;QACAA,MAAM,CAACqC,QAAQ,CAAE,CAAEL,IAAI,CAAE,EAAE;UAAEC;QAAS,CAAE,CAAC;MAC1C,CAAG;MACH/B,KAAK,EAAG,CAAE8B,IAAI;IAAI,GATZhC,MAAM,CAAC4B,EAUb,CACA;EAAC,CACQ,CAAC;AAEf;AAEe,SAASU,WAAWA,CAAU;EAC5CN,IAAI;EACJD,OAAO;EACPQ;AACyB,CAAC,EAAG;EAC7B,MAAMN,QAAQ,GAAG,IAAAO,iBAAW,EAAC,CAAC;EAC9B,MAAM;IAAEC,cAAc;IAAEC;EAAgB,CAAC,GAAG,IAAAC,gBAAO,EAAE,MAAM;IAC1D;IACA;IACA,MAAMC,gBAAgB,GAAGb,OAAO,CAACc,MAAM,CACpC7C,MAAM,IAAM,CAAEA,MAAM,CAAC8C,UAAU,IAAI9C,MAAM,CAAC8C,UAAU,CAAEd,IAAK,CAC9D,CAAC;IACD,MAAMe,eAAe,GAAGH,gBAAgB,CAACC,MAAM,CAC5C7C,MAAM,IAAMA,MAAM,CAACgD,SAAS,IAAI,CAAC,CAAEhD,MAAM,CAACM,IAC7C,CAAC;IACD,OAAO;MACNmC,cAAc,EAAEM,eAAe;MAC/BL,eAAe,EAAEE;IAClB,CAAC;EACF,CAAC,EAAE,CAAEb,OAAO,EAAEC,IAAI,CAAG,CAAC;EAEtB,IAAKO,SAAS,EAAG;IAChB,oBACC,IAAA7C,WAAA,CAAAU,GAAA,EAAC6C,kBAAkB;MAClBjB,IAAI,EAAGA,IAAM;MACbD,OAAO,EAAGW,eAAiB;MAC3BQ,OAAO;MACPjB,QAAQ,EAAGA;IAAU,CACrB,CAAC;EAEJ;EAEA,oBACC,IAAAvC,WAAA,CAAAyD,IAAA,EAAChE,WAAA,CAAAiE,oBAAM;IACNC,OAAO,EAAG,CAAG;IACbC,OAAO,EAAC,UAAU;IAClBC,SAAS,EAAC,wBAAwB;IAClCC,KAAK,EAAG;MACPC,UAAU,EAAE,CAAC;MACbC,KAAK,EAAE;IACR,CAAG;IAAA7C,QAAA,gBAEH,IAAAnB,WAAA,CAAAU,GAAA,EAACuD,cAAc;MACd3B,IAAI,EAAGA,IAAM;MACbD,OAAO,EAAGU,cAAgB;MAC1BR,QAAQ,EAAGA;IAAU,CACrB,CAAC,EACAQ,cAAc,CAACmB,MAAM,GAAGlB,eAAe,CAACkB,MAAM,iBAC/C,IAAAlE,WAAA,CAAAU,GAAA,EAAC6C,kBAAkB;MAClBjB,IAAI,EAAGA,IAAM;MACbD,OAAO,EAAGW,eAAiB;MAC3BT,QAAQ,EAAGA;IAAU,CACrB,CACD;EAAA,CACM,CAAC;AAEX;AAEA,SAASgB,kBAAkBA,CAAU;EACpCjB,IAAI;EACJD,OAAO;EACPmB,OAAO;EACPjB;AACgC,CAAC,EAAG;EACpC,MAAM,CAAE4B,iBAAiB,EAAE3B,oBAAoB,CAAE,GAAG,IAAA4B,iBAAQ,EAC3D,IACD,CAAC;EACD,oBACC,IAAApE,WAAA,CAAAyD,IAAA,EAAAzD,WAAA,CAAAqE,QAAA;IAAAlD,QAAA,gBACC,IAAAnB,WAAA,CAAAyD,IAAA,EAACxD,IAAI;MAACqE,SAAS,EAAC,YAAY;MAAAnD,QAAA,gBAC3B,IAAAnB,WAAA,CAAAU,GAAA,EAACT,IAAI,CAACsE,aAAa;QAClBC,MAAM,eACL,IAAAxE,WAAA,CAAAU,GAAA,EAACjB,WAAA,CAAAkB,MAAM;UACNK,IAAI,EAAGwC,OAAO,GAAG,OAAO,GAAG,SAAW;UACtC5C,IAAI,EAAG6D,mBAAc;UACrBhE,KAAK,EAAG,IAAAiE,QAAE,EAAE,SAAU,CAAG;UACzB5D,sBAAsB;UACtBD,QAAQ,EAAG,CAAEwB,OAAO,CAAC6B,MAAQ;UAC7BL,SAAS,EAAC;QAA8B,CACxC;MACD,CACD,CAAC,eACF,IAAA7D,WAAA,CAAAU,GAAA,EAACT,IAAI,CAAC0E,OAAO;QAAAxD,QAAA,eACZ,IAAAnB,WAAA,CAAAU,GAAA,EAAC0B,gBAAgB;UAChBC,OAAO,EAAGA,OAAS;UACnBC,IAAI,EAAGA,IAAM;UACbC,QAAQ,EAAGA,QAAU;UACrBC,oBAAoB,EAAGA;QAAsB,CAC7C;MAAC,CACW,CAAC;IAAA,CACV,CAAC,EACL,CAAC,CAAE2B,iBAAiB,iBACrB,IAAAnE,WAAA,CAAAU,GAAA,EAACW,WAAW;MACXf,MAAM,EAAG6D,iBAAmB;MAC5B3D,KAAK,EAAG,CAAE8B,IAAI,CAAI;MAClBhB,UAAU,EAAGA,CAAA,KAAMkB,oBAAoB,CAAE,IAAK;IAAG,CACjD,CACD;EAAA,CACA,CAAC;AAEL;AAEA,SAASyB,cAAcA,CAAU;EAChC3B,IAAI;EACJD,OAAO;EACPE;AAC4B,CAAC,EAAG;EAChC,MAAM,CAAE4B,iBAAiB,EAAE3B,oBAAoB,CAAE,GAAG,IAAA4B,iBAAQ,EAAE,IAAY,CAAC;EAC3E,IAAK,CAAEQ,KAAK,CAACC,OAAO,CAAExC,OAAQ,CAAC,IAAIA,OAAO,CAAC6B,MAAM,KAAK,CAAC,EAAG;IACzD,OAAO,IAAI;EACZ;EACA,oBACC,IAAAlE,WAAA,CAAAyD,IAAA,EAAAzD,WAAA,CAAAqE,QAAA;IAAAlD,QAAA,GACGkB,OAAO,CAACK,GAAG,CAAIpC,MAAM,iBACtB,IAAAN,WAAA,CAAAU,GAAA,EAACL,aAAa;MAEbC,MAAM,EAAGA,MAAQ;MACjBC,OAAO,EAAGA,CAAA,KAAM;QACf,IAAK,aAAa,IAAID,MAAM,EAAG;UAC9BkC,oBAAoB,CAAElC,MAAO,CAAC;UAC9B;QACD;QACAA,MAAM,CAACqC,QAAQ,CAAE,CAAEL,IAAI,CAAE,EAAE;UAAEC;QAAS,CAAE,CAAC;MAC1C,CAAG;MACH/B,KAAK,EAAG,CAAE8B,IAAI;IAAI,GATZhC,MAAM,CAAC4B,EAUb,CACA,CAAC,EACD,CAAC,CAAEiC,iBAAiB,iBACrB,IAAAnE,WAAA,CAAAU,GAAA,EAACW,WAAW;MACXf,MAAM,EAAG6D,iBAAmB;MAC5B3D,KAAK,EAAG,CAAE8B,IAAI,CAAI;MAClBhB,UAAU,EAAGA,CAAA,KAAMkB,oBAAoB,CAAE,IAAK;IAAG,CACjD,CACD;EAAA,CACA,CAAC;AAEL","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":[]}
|
|
@@ -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,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_element","_i18n","_constants","_lockUnlock","_jsxRuntime","ValidatedNumberControl","unlock","privateApis","BetweenControls","id","value","onChange","hideLabelFromVision","min","max","Array","isArray","onChangeMin","useCallback","newValue","Number","onChangeMax","jsx","BaseControl","__nextHasNoMarginBottom","help","__","children","jsxs","Flex","direction","gap","__experimentalNumberControl","label","undefined","__next40pxDefaultSize","Integer","data","field","operator","_field$getValue","description","getValue","item","onChangeControl","includes","OPERATOR_BETWEEN","required","isValid","
|
|
1
|
+
{"version":3,"names":["_components","require","_element","_i18n","_constants","_lockUnlock","_jsxRuntime","ValidatedNumberControl","unlock","privateApis","BetweenControls","id","value","onChange","hideLabelFromVision","min","max","Array","isArray","onChangeMin","useCallback","newValue","Number","onChangeMax","jsx","BaseControl","__nextHasNoMarginBottom","help","__","children","jsxs","Flex","direction","gap","__experimentalNumberControl","label","undefined","__next40pxDefaultSize","Integer","data","field","operator","_field$getValue","description","getValue","item","customValidity","setCustomValidity","useState","onChangeControl","includes","OPERATOR_BETWEEN","required","isValid","onValidate","message","custom","type"],"sources":["@wordpress/dataviews/src/dataform-controls/integer.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tFlex,\n\tBaseControl,\n\t__experimentalNumberControl as NumberControl,\n\tprivateApis,\n} from '@wordpress/components';\nimport { useCallback, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { OPERATOR_BETWEEN } from '../constants';\nimport type { DataFormControlProps } from '../types';\nimport { unlock } from '../lock-unlock';\n\nconst { ValidatedNumberControl } = unlock( privateApis );\n\nfunction BetweenControls< Item >( {\n\tid,\n\tvalue,\n\tonChange,\n\thideLabelFromVision,\n}: {\n\tid: string;\n\tvalue: any;\n\tonChange: DataFormControlProps< Item >[ 'onChange' ];\n\thideLabelFromVision?: boolean;\n} ) {\n\tconst [ min = '', max = '' ] = Array.isArray( value ) ? value : [];\n\n\tconst onChangeMin = useCallback(\n\t\t( newValue: string | undefined ) =>\n\t\t\tonChange( {\n\t\t\t\t[ id ]: [ Number( newValue ), max ],\n\t\t\t} ),\n\t\t[ id, onChange, max ]\n\t);\n\n\tconst onChangeMax = useCallback(\n\t\t( newValue: string | undefined ) =>\n\t\t\tonChange( {\n\t\t\t\t[ id ]: [ min, Number( newValue ) ],\n\t\t\t} ),\n\t\t[ id, onChange, min ]\n\t);\n\n\treturn (\n\t\t<BaseControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\thelp={ __( 'The max. value must be greater than the min. value.' ) }\n\t\t>\n\t\t\t<Flex direction=\"row\" gap={ 4 }>\n\t\t\t\t<NumberControl\n\t\t\t\t\tlabel={ __( 'Min.' ) }\n\t\t\t\t\tvalue={ min }\n\t\t\t\t\tmax={ max ? Number( max ) - 1 : undefined }\n\t\t\t\t\tonChange={ onChangeMin }\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\t\t/>\n\t\t\t\t<NumberControl\n\t\t\t\t\tlabel={ __( 'Max.' ) }\n\t\t\t\t\tvalue={ max }\n\t\t\t\t\tmin={ min ? Number( min ) + 1 : undefined }\n\t\t\t\t\tonChange={ onChangeMax }\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\t\t/>\n\t\t\t</Flex>\n\t\t</BaseControl>\n\t);\n}\n\nexport default function Integer< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\thideLabelFromVision,\n\toperator,\n}: DataFormControlProps< Item > ) {\n\tconst { id, label, 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 ValidatedNumberControl\n\t\t\t>[ 'customValidity' ]\n\t\t>( undefined );\n\n\tconst onChangeControl = useCallback(\n\t\t( newValue: string | undefined ) => {\n\t\t\tonChange( {\n\t\t\t\t// Do not convert an empty string or undefined to a number,\n\t\t\t\t// otherwise there's a mismatch between the UI control (empty)\n\t\t\t\t// and the data relied by onChange (0).\n\t\t\t\t[ id ]: [ '', undefined ].includes( newValue )\n\t\t\t\t\t? undefined\n\t\t\t\t\t: Number( newValue ),\n\t\t\t} );\n\t\t},\n\t\t[ id, onChange ]\n\t);\n\n\tif ( operator === OPERATOR_BETWEEN ) {\n\t\treturn (\n\t\t\t<BetweenControls\n\t\t\t\tid={ id }\n\t\t\t\tvalue={ value }\n\t\t\t\tonChange={ onChange }\n\t\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<ValidatedNumberControl\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 ]: [ undefined, '', null ].includes( newValue )\n\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t: Number( 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\tlabel={ label }\n\t\t\thelp={ description }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChangeControl }\n\t\t\t__next40pxDefaultSize\n\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -34,20 +34,27 @@ function Text({
|
|
|
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
|
label: label,
|
|
52
59
|
placeholder: placeholder,
|
|
53
60
|
value: value !== null && value !== void 0 ? value : '',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_element","_lockUnlock","_jsxRuntime","ValidatedTextControl","unlock","privateApis","Text","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","Text","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/text.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 Text< 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\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,IAAIA,CAAU;EACrCC,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;IACjCN,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":[]}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _components = require("@wordpress/components");
|
|
8
|
+
var _i18n = require("@wordpress/i18n");
|
|
9
|
+
var _element = require("@wordpress/element");
|
|
10
|
+
var _icons = require("@wordpress/icons");
|
|
11
|
+
var _dataFormLayout = require("../data-form-layout");
|
|
12
|
+
var _isCombinedField = require("../is-combined-field");
|
|
13
|
+
var _normalizeFormFields = require("../../normalize-form-fields");
|
|
14
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
+
/**
|
|
16
|
+
* WordPress dependencies
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Internal dependencies
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
function DropdownHeader({
|
|
24
|
+
title,
|
|
25
|
+
onClose
|
|
26
|
+
}) {
|
|
27
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalVStack, {
|
|
28
|
+
className: "dataforms-layouts-panel__dropdown-header",
|
|
29
|
+
spacing: 4,
|
|
30
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
|
|
31
|
+
alignment: "center",
|
|
32
|
+
children: [title && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalHeading, {
|
|
33
|
+
level: 2,
|
|
34
|
+
size: 13,
|
|
35
|
+
children: title
|
|
36
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalSpacer, {}), onClose && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
37
|
+
label: (0, _i18n.__)('Close'),
|
|
38
|
+
icon: _icons.closeSmall,
|
|
39
|
+
onClick: onClose,
|
|
40
|
+
size: "small"
|
|
41
|
+
})]
|
|
42
|
+
})
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
function PanelDropdown({
|
|
46
|
+
fieldDefinition,
|
|
47
|
+
popoverAnchor,
|
|
48
|
+
labelPosition = 'side',
|
|
49
|
+
data,
|
|
50
|
+
onChange,
|
|
51
|
+
field
|
|
52
|
+
}) {
|
|
53
|
+
const fieldLabel = (0, _isCombinedField.isCombinedField)(field) ? field.label : fieldDefinition?.label;
|
|
54
|
+
const form = (0, _element.useMemo)(() => ({
|
|
55
|
+
layout: _normalizeFormFields.DEFAULT_LAYOUT,
|
|
56
|
+
fields: (0, _isCombinedField.isCombinedField)(field) ? field.children :
|
|
57
|
+
// If not explicit children return the field id itself.
|
|
58
|
+
[{
|
|
59
|
+
id: field.id
|
|
60
|
+
}]
|
|
61
|
+
}), [field]);
|
|
62
|
+
|
|
63
|
+
// Memoize popoverProps to avoid returning a new object every time.
|
|
64
|
+
const popoverProps = (0, _element.useMemo)(() => ({
|
|
65
|
+
// Anchor the popover to the middle of the entire row so that it doesn't
|
|
66
|
+
// move around when the label changes.
|
|
67
|
+
anchor: popoverAnchor,
|
|
68
|
+
placement: 'left-start',
|
|
69
|
+
offset: 36,
|
|
70
|
+
shift: true
|
|
71
|
+
}), [popoverAnchor]);
|
|
72
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Dropdown, {
|
|
73
|
+
contentClassName: "dataforms-layouts-panel__field-dropdown",
|
|
74
|
+
popoverProps: popoverProps,
|
|
75
|
+
focusOnMount: true,
|
|
76
|
+
toggleProps: {
|
|
77
|
+
size: 'compact',
|
|
78
|
+
variant: 'tertiary',
|
|
79
|
+
tooltipPosition: 'middle left'
|
|
80
|
+
},
|
|
81
|
+
renderToggle: ({
|
|
82
|
+
isOpen,
|
|
83
|
+
onToggle
|
|
84
|
+
}) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
85
|
+
className: "dataforms-layouts-panel__field-control",
|
|
86
|
+
size: "compact",
|
|
87
|
+
variant: ['none', 'top'].includes(labelPosition) ? 'link' : 'tertiary',
|
|
88
|
+
"aria-expanded": isOpen,
|
|
89
|
+
"aria-label": (0, _i18n.sprintf)(
|
|
90
|
+
// translators: %s: Field name.
|
|
91
|
+
(0, _i18n._x)('Edit %s', 'field'), fieldLabel || ''),
|
|
92
|
+
onClick: onToggle,
|
|
93
|
+
disabled: fieldDefinition.readOnly === true,
|
|
94
|
+
accessibleWhenDisabled: true,
|
|
95
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(fieldDefinition.render, {
|
|
96
|
+
item: data,
|
|
97
|
+
field: fieldDefinition
|
|
98
|
+
})
|
|
99
|
+
}),
|
|
100
|
+
renderContent: ({
|
|
101
|
+
onClose
|
|
102
|
+
}) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
103
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(DropdownHeader, {
|
|
104
|
+
title: fieldLabel,
|
|
105
|
+
onClose: onClose
|
|
106
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataFormLayout.DataFormLayout, {
|
|
107
|
+
data: data,
|
|
108
|
+
form: form,
|
|
109
|
+
onChange: onChange,
|
|
110
|
+
children: (FieldLayout, nestedField) => {
|
|
111
|
+
var _form$fields;
|
|
112
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(FieldLayout, {
|
|
113
|
+
data: data,
|
|
114
|
+
field: nestedField,
|
|
115
|
+
onChange: onChange,
|
|
116
|
+
hideLabelFromVision: ((_form$fields = form?.fields) !== null && _form$fields !== void 0 ? _form$fields : []).length < 2
|
|
117
|
+
}, nestedField.id);
|
|
118
|
+
}
|
|
119
|
+
})]
|
|
120
|
+
})
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
var _default = exports.default = PanelDropdown;
|
|
124
|
+
//# sourceMappingURL=dropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_components","require","_i18n","_element","_icons","_dataFormLayout","_isCombinedField","_normalizeFormFields","_jsxRuntime","DropdownHeader","title","onClose","jsx","__experimentalVStack","className","spacing","children","jsxs","__experimentalHStack","alignment","__experimentalHeading","level","size","__experimentalSpacer","Button","label","__","icon","closeSmall","onClick","PanelDropdown","fieldDefinition","popoverAnchor","labelPosition","data","onChange","field","fieldLabel","isCombinedField","form","useMemo","layout","DEFAULT_LAYOUT","fields","id","popoverProps","anchor","placement","offset","shift","Dropdown","contentClassName","focusOnMount","toggleProps","variant","tooltipPosition","renderToggle","isOpen","onToggle","includes","sprintf","_x","disabled","readOnly","accessibleWhenDisabled","render","item","renderContent","Fragment","DataFormLayout","FieldLayout","nestedField","_form$fields","hideLabelFromVision","length","_default","exports","default"],"sources":["@wordpress/dataviews/src/dataforms-layouts/panel/dropdown.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalSpacer as Spacer,\n\tDropdown,\n\tButton,\n} from '@wordpress/components';\nimport { sprintf, __, _x } from '@wordpress/i18n';\nimport { useMemo } from '@wordpress/element';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport type { Form, FormField, NormalizedField } from '../../types';\nimport { DataFormLayout } from '../data-form-layout';\nimport { isCombinedField } from '../is-combined-field';\nimport { DEFAULT_LAYOUT } from '../../normalize-form-fields';\n\nfunction DropdownHeader( {\n\ttitle,\n\tonClose,\n}: {\n\ttitle?: string;\n\tonClose: () => void;\n} ) {\n\treturn (\n\t\t<VStack\n\t\t\tclassName=\"dataforms-layouts-panel__dropdown-header\"\n\t\t\tspacing={ 4 }\n\t\t>\n\t\t\t<HStack alignment=\"center\">\n\t\t\t\t{ title && (\n\t\t\t\t\t<Heading level={ 2 } size={ 13 }>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</Heading>\n\t\t\t\t) }\n\t\t\t\t<Spacer />\n\t\t\t\t{ onClose && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ __( 'Close' ) }\n\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nfunction PanelDropdown< Item >( {\n\tfieldDefinition,\n\tpopoverAnchor,\n\tlabelPosition = 'side',\n\tdata,\n\tonChange,\n\tfield,\n}: {\n\tfieldDefinition: NormalizedField< Item >;\n\tpopoverAnchor: HTMLElement | null;\n\tlabelPosition: 'side' | 'top' | 'none';\n\tdata: Item;\n\tonChange: ( value: any ) => void;\n\tfield: FormField;\n} ) {\n\tconst fieldLabel = isCombinedField( field )\n\t\t? field.label\n\t\t: fieldDefinition?.label;\n\n\tconst form: Form = useMemo(\n\t\t(): Form => ( {\n\t\t\tlayout: DEFAULT_LAYOUT,\n\t\t\tfields: isCombinedField( field )\n\t\t\t\t? field.children\n\t\t\t\t: // If not explicit children return the field id itself.\n\t\t\t\t [ { id: field.id } ],\n\t\t} ),\n\t\t[ field ]\n\t);\n\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\tplacement: 'left-start',\n\t\t\toffset: 36,\n\t\t\tshift: true,\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\n\treturn (\n\t\t<Dropdown\n\t\t\tcontentClassName=\"dataforms-layouts-panel__field-dropdown\"\n\t\t\tpopoverProps={ popoverProps }\n\t\t\tfocusOnMount\n\t\t\ttoggleProps={ {\n\t\t\t\tsize: 'compact',\n\t\t\t\tvariant: 'tertiary',\n\t\t\t\ttooltipPosition: 'middle left',\n\t\t\t} }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"dataforms-layouts-panel__field-control\"\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tvariant={\n\t\t\t\t\t\t[ 'none', 'top' ].includes( labelPosition )\n\t\t\t\t\t\t\t? 'link'\n\t\t\t\t\t\t\t: 'tertiary'\n\t\t\t\t\t}\n\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t// translators: %s: Field name.\n\t\t\t\t\t\t_x( 'Edit %s', 'field' ),\n\t\t\t\t\t\tfieldLabel || ''\n\t\t\t\t\t) }\n\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\tdisabled={ fieldDefinition.readOnly === true }\n\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t>\n\t\t\t\t\t<fieldDefinition.render\n\t\t\t\t\t\titem={ data }\n\t\t\t\t\t\tfield={ fieldDefinition }\n\t\t\t\t\t/>\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<DropdownHeader title={ fieldLabel } onClose={ onClose } />\n\t\t\t\t\t<DataFormLayout\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tform={ form }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( FieldLayout, nestedField ) => (\n\t\t\t\t\t\t\t<FieldLayout\n\t\t\t\t\t\t\t\tkey={ nestedField.id }\n\t\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\t\tfield={ nestedField }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\thideLabelFromVision={\n\t\t\t\t\t\t\t\t\t( form?.fields ?? [] ).length < 2\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</DataFormLayout>\n\t\t\t\t</>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nexport default PanelDropdown;\n"],"mappings":"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","ignoreList":[]}
|