@wordpress/block-editor 15.9.0 → 15.9.1-next.6deb34194.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/README.md +12 -0
- package/build/components/block-alignment-matrix-control/index.js +1 -8
- package/build/components/block-alignment-matrix-control/index.js.map +2 -2
- package/build/components/block-bindings/attribute-control.js +172 -0
- package/build/components/block-bindings/attribute-control.js.map +7 -0
- package/build/components/block-bindings/index.js +47 -0
- package/build/components/block-bindings/index.js.map +7 -0
- package/build/components/block-bindings/source-fields-list.js +135 -0
- package/build/components/block-bindings/source-fields-list.js.map +7 -0
- package/build/components/block-bindings/use-block-bindings-utils.js +66 -0
- package/build/components/block-bindings/use-block-bindings-utils.js.map +7 -0
- package/build/components/block-edit/edit.js +1 -3
- package/build/components/block-edit/edit.js.map +2 -2
- package/build/components/block-styles/preview-panel.js +3 -5
- package/build/components/block-styles/preview-panel.js.map +2 -2
- package/build/components/block-styles/use-styles-for-block.js +2 -2
- package/build/components/block-styles/use-styles-for-block.js.map +2 -2
- package/build/components/block-toolbar/index.js +1 -8
- package/build/components/block-toolbar/index.js.map +3 -3
- package/build/components/content-only-controls/index.js +2 -25
- package/build/components/content-only-controls/index.js.map +2 -2
- package/build/components/content-only-controls/link/index.js +3 -3
- package/build/components/content-only-controls/link/index.js.map +2 -2
- package/build/components/content-only-controls/media/index.js +3 -3
- package/build/components/content-only-controls/media/index.js.map +2 -2
- package/build/components/content-only-controls/rich-text/index.js +3 -2
- package/build/components/content-only-controls/rich-text/index.js.map +2 -2
- package/build/components/dimensions-tool/width-height-tool.js +4 -16
- package/build/components/dimensions-tool/width-height-tool.js.map +3 -3
- package/build/components/image-editor/cropper.js +3 -34
- package/build/components/image-editor/cropper.js.map +3 -3
- package/build/components/image-editor/index.js +9 -3
- package/build/components/image-editor/index.js.map +2 -2
- package/build/components/image-editor/use-transform-image.js +62 -32
- package/build/components/image-editor/use-transform-image.js.map +2 -2
- package/build/components/image-editor/zoom-dropdown.js +2 -2
- package/build/components/image-editor/zoom-dropdown.js.map +2 -2
- package/build/components/index.js +10 -3
- package/build/components/index.js.map +2 -2
- package/build/components/inserter-draggable-blocks/index.js +8 -4
- package/build/components/inserter-draggable-blocks/index.js.map +2 -2
- package/build/components/inspector-controls-tabs/content-tab.js +3 -2
- package/build/components/inspector-controls-tabs/content-tab.js.map +2 -2
- package/build/components/tool-selector/index.js +46 -0
- package/build/components/tool-selector/index.js.map +7 -0
- package/build/hooks/block-bindings.js +22 -260
- package/build/hooks/block-bindings.js.map +3 -3
- package/build/layouts/grid.js +23 -28
- package/build/layouts/grid.js.map +2 -2
- package/build/utils/block-bindings.js +2 -44
- package/build/utils/block-bindings.js.map +3 -3
- package/build/utils/index.js +2 -5
- package/build/utils/index.js.map +2 -2
- package/build-module/components/block-alignment-matrix-control/index.js +1 -8
- package/build-module/components/block-alignment-matrix-control/index.js.map +2 -2
- package/build-module/components/block-bindings/attribute-control.js +150 -0
- package/build-module/components/block-bindings/attribute-control.js.map +7 -0
- package/build-module/components/block-bindings/index.js +10 -0
- package/build-module/components/block-bindings/index.js.map +7 -0
- package/build-module/components/block-bindings/source-fields-list.js +104 -0
- package/build-module/components/block-bindings/source-fields-list.js.map +7 -0
- package/build-module/components/block-bindings/use-block-bindings-utils.js +45 -0
- package/build-module/components/block-bindings/use-block-bindings-utils.js.map +7 -0
- package/build-module/components/block-edit/edit.js +1 -3
- package/build-module/components/block-edit/edit.js.map +2 -2
- package/build-module/components/block-styles/preview-panel.js +3 -5
- package/build-module/components/block-styles/preview-panel.js.map +2 -2
- package/build-module/components/block-styles/use-styles-for-block.js +2 -2
- package/build-module/components/block-styles/use-styles-for-block.js.map +2 -2
- package/build-module/components/block-toolbar/index.js +1 -8
- package/build-module/components/block-toolbar/index.js.map +2 -2
- package/build-module/components/content-only-controls/index.js +2 -25
- package/build-module/components/content-only-controls/index.js.map +2 -2
- package/build-module/components/content-only-controls/link/index.js +3 -3
- package/build-module/components/content-only-controls/link/index.js.map +2 -2
- package/build-module/components/content-only-controls/media/index.js +3 -3
- package/build-module/components/content-only-controls/media/index.js.map +2 -2
- package/build-module/components/content-only-controls/rich-text/index.js +3 -2
- package/build-module/components/content-only-controls/rich-text/index.js.map +2 -2
- package/build-module/components/dimensions-tool/width-height-tool.js +4 -6
- package/build-module/components/dimensions-tool/width-height-tool.js.map +2 -2
- package/build-module/components/image-editor/cropper.js +3 -34
- package/build-module/components/image-editor/cropper.js.map +2 -2
- package/build-module/components/image-editor/index.js +9 -3
- package/build-module/components/image-editor/index.js.map +2 -2
- package/build-module/components/image-editor/use-transform-image.js +63 -33
- package/build-module/components/image-editor/use-transform-image.js.map +2 -2
- package/build-module/components/image-editor/zoom-dropdown.js +2 -2
- package/build-module/components/image-editor/zoom-dropdown.js.map +2 -2
- package/build-module/components/index.js +74 -66
- package/build-module/components/index.js.map +2 -2
- package/build-module/components/inserter-draggable-blocks/index.js +8 -4
- package/build-module/components/inserter-draggable-blocks/index.js.map +2 -2
- package/build-module/components/inspector-controls-tabs/content-tab.js +3 -2
- package/build-module/components/inspector-controls-tabs/content-tab.js.map +2 -2
- package/build-module/components/tool-selector/index.js +15 -0
- package/build-module/components/tool-selector/index.js.map +7 -0
- package/build-module/hooks/block-bindings.js +27 -270
- package/build-module/hooks/block-bindings.js.map +2 -2
- package/build-module/layouts/grid.js +23 -28
- package/build-module/layouts/grid.js.map +2 -2
- package/build-module/utils/block-bindings.js +1 -42
- package/build-module/utils/block-bindings.js.map +2 -2
- package/build-module/utils/index.js +1 -3
- package/build-module/utils/index.js.map +2 -2
- package/build-style/style-rtl.css +6 -6
- package/build-style/style.css +6 -6
- package/package.json +39 -40
- package/src/components/block-alignment-matrix-control/index.js +1 -5
- package/src/components/block-bindings/attribute-control.js +174 -0
- package/src/components/block-bindings/index.js +6 -0
- package/src/components/block-bindings/source-fields-list.js +130 -0
- package/src/components/block-bindings/use-block-bindings-utils.js +156 -0
- package/src/components/block-edit/edit.js +1 -3
- package/src/components/block-styles/preview-panel.js +3 -5
- package/src/components/block-styles/use-styles-for-block.js +2 -2
- package/src/components/block-toolbar/index.js +1 -6
- package/src/components/block-toolbar/style.scss +6 -6
- package/src/components/content-only-controls/index.js +2 -27
- package/src/components/content-only-controls/link/index.js +3 -3
- package/src/components/content-only-controls/media/index.js +3 -3
- package/src/components/content-only-controls/rich-text/index.js +3 -2
- package/src/components/dimensions-tool/width-height-tool.js +6 -13
- package/src/components/image-editor/cropper.js +3 -32
- package/src/components/image-editor/index.js +34 -29
- package/src/components/image-editor/use-transform-image.js +80 -34
- package/src/components/image-editor/zoom-dropdown.js +2 -2
- package/src/components/index.js +9 -1
- package/src/components/inserter/style.scss +1 -1
- package/src/components/inserter-draggable-blocks/index.js +19 -8
- package/src/components/inspector-controls-tabs/content-tab.js +6 -2
- package/src/components/tool-selector/index.js +19 -0
- package/src/hooks/block-bindings.js +27 -347
- package/src/layouts/grid.js +40 -72
- package/src/layouts/test/grid.js +14 -0
- package/src/utils/block-bindings.js +0 -157
- package/src/utils/index.js +0 -1
- package/tsconfig.json +1 -0
- package/build/components/block-toolbar/block-name-context.js +0 -30
- package/build/components/block-toolbar/block-name-context.js.map +0 -7
- package/build-module/components/block-toolbar/block-name-context.js +0 -9
- package/build-module/components/block-toolbar/block-name-context.js.map +0 -7
- package/src/components/block-toolbar/block-name-context.js +0 -9
- /package/src/{utils → components/block-bindings}/test/use-block-bindings-utils.js +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/components/index.js"],
|
|
4
|
-
"sourcesContent": ["/*\n * Block Creation Components\n */\n\nexport * from './colors';\nexport * from './gradients';\nexport * from './font-sizes';\nexport { AlignmentControl, AlignmentToolbar } from './alignment-control';\nexport { default as Autocomplete } from './autocomplete';\nexport {\n\tBlockAlignmentControl,\n\tBlockAlignmentToolbar,\n} from './block-alignment-control';\nexport { default as __experimentalBlockFullHeightAligmentControl } from './block-full-height-alignment-control';\nexport { default as __experimentalBlockAlignmentMatrixControl } from './block-alignment-matrix-control';\nexport { default as BlockBreadcrumb } from './block-breadcrumb';\nexport { default as __experimentalUseBlockOverlayActive } from './block-content-overlay';\nexport { BlockContextProvider } from './block-context';\nexport { default as BlockCanvas } from './block-canvas';\nexport {\n\tdefault as BlockControls,\n\tBlockFormatControls,\n} from './block-controls';\nexport { default as BlockColorsStyleSelector } from './color-style-selector';\nexport { default as BlockEdit, useBlockEditContext } from './block-edit';\nexport { default as BlockIcon } from './block-icon';\nexport { default as BlockNavigationDropdown } from './block-navigation/dropdown';\nexport { default as BlockStyles } from './block-styles';\nexport { default as HeadingLevelDropdown } from './block-heading-level-dropdown';\nexport { default as __experimentalBlockVariationPicker } from './block-variation-picker';\nexport { default as __experimentalBlockPatternSetup } from './block-pattern-setup';\nexport { default as __experimentalBlockVariationTransforms } from './block-variation-transforms';\nexport {\n\tBlockVerticalAlignmentToolbar,\n\tBlockVerticalAlignmentControl,\n} from './block-vertical-alignment-control';\nexport { default as __experimentalBorderRadiusControl } from './border-radius-control';\nexport {\n\t// This is a typo, but kept here for back-compat.\n\tButtonBlockerAppender,\n\tdefault as ButtonBlockAppender,\n} from './button-block-appender';\nexport { default as ColorPalette } from './color-palette';\nexport { default as ColorPaletteControl } from './color-palette/control';\nexport { default as ContrastChecker } from './contrast-checker';\nexport { default as __experimentalDateFormatPicker } from './date-format-picker';\nexport { default as __experimentalDuotoneControl } from './duotone-control';\nexport { default as __experimentalFontAppearanceControl } from './font-appearance-control';\nexport { default as __experimentalFontFamilyControl } from './font-family';\nexport { default as __experimentalLetterSpacingControl } from './letter-spacing-control';\nexport { default as __experimentalTextDecorationControl } from './text-decoration-control';\nexport { default as __experimentalTextTransformControl } from './text-transform-control';\nexport { default as __experimentalWritingModeControl } from './writing-mode-control';\nexport { default as __experimentalColorGradientControl } from './colors-gradients/control';\nexport { default as __experimentalColorGradientSettingsDropdown } from './colors-gradients/dropdown';\nexport { default as __experimentalPanelColorGradientSettings } from './colors-gradients/panel-color-gradient-settings';\nexport { default as __experimentalUseMultipleOriginColorsAndGradients } from './colors-gradients/use-multiple-origin-colors-and-gradients';\nexport { default as HeightControl } from './height-control';\nexport { default as __experimentalImageEditor } from './image-editor';\nexport { default as __experimentalImageSizeControl } from './image-size-control';\nexport { default as InnerBlocks, useInnerBlocksProps } from './inner-blocks';\nexport {\n\tdefault as InspectorControls,\n\tInspectorAdvancedControls,\n} from './inspector-controls';\nexport {\n\tJustifyToolbar,\n\tJustifyContentControl,\n} from './justify-content-control';\nexport {\n\tdefault as LinkControl,\n\tDeprecatedExperimentalLinkControl as __experimentalLinkControl,\n} from './link-control';\nexport { __experimentalLinkControlSearchInput } from './link-control/search-input';\nexport { __experimentalLinkControlSearchResults } from './link-control/search-results';\nexport { __experimentalLinkControlSearchItem } from './link-control/search-item';\nexport { default as LineHeightControl } from './line-height-control';\nexport { default as __experimentalListView } from './list-view';\nexport { default as MediaReplaceFlow } from './media-replace-flow';\nexport { default as MediaPlaceholder } from './media-placeholder';\nexport { default as MediaUpload } from './media-upload';\nexport { default as MediaUploadCheck } from './media-upload/check';\nexport { default as PanelColorSettings } from './panel-color-settings';\nexport { default as PlainText } from './plain-text';\nexport { default as __experimentalResponsiveBlockControl } from './responsive-block-control';\nexport {\n\tdefault as RichText,\n\tRichTextShortcut,\n\tRichTextToolbarButton,\n\t__unstableRichTextInputEvent,\n} from './rich-text';\nexport { default as __experimentalUnitControl } from './unit-control';\nexport { default as URLInput } from './url-input';\nexport { default as URLInputButton } from './url-input/button';\nexport { default as URLPopover } from './url-popover';\nexport { __experimentalImageURLInputUI } from './url-popover/image-url-input-ui';\nexport { default as withColorContext } from './color-palette/with-color-context';\nexport { default as __experimentalSpacingSizesControl } from './spacing-sizes-control';\nexport {\n\tgetSpacingPresetCssVar,\n\tisValueSpacingPreset,\n\tgetCustomValueFromPreset,\n} from './spacing-sizes-control/utils';\n/*\n * Content Related Components\n */\n\nexport { default as __unstableBlockSettingsMenuFirstItem } from './block-settings-menu/block-settings-menu-first-item';\nexport { default as __unstableBlockToolbarLastItem } from './block-toolbar/block-toolbar-last-item';\nexport { default as
|
|
5
|
-
"mappings": ";AAIA,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAAS,kBAAkB,wBAAwB;AACnD,SAAoB,WAAXA,gBAA+B;AACxC;AAAA,EACC;AAAA,EACA;AAAA,OACM;AACP,SAAoB,WAAXA,gBAA+D;AACxE,SAAoB,WAAXA,gBAA4D;AACrE,SAAoB,WAAXA,gBAAkC;AAC3C,SAAoB,WAAXA,gBAAsD;AAC/D,SAAS,4BAA4B;AACrC,SAAoB,WAAXA,gBAA8B;AACvC;AAAA,EACY,WAAXA;AAAA,EACA;AAAA,OACM;AACP,SAAoB,WAAXA,gBAA2C;AACpD,SAAoB,WAAXA,WAAsB,2BAA2B;AAC1D,SAAoB,WAAXA,iBAA4B;AACrC,SAAoB,WAAXA,iBAA0C;AACnD,SAAoB,WAAXA,iBAA8B;AACvC,SAAoB,WAAXA,iBAAuC;AAChD,SAAoB,WAAXA,iBAAqD;AAC9D,SAAoB,WAAXA,iBAAkD;AAC3D,SAAoB,WAAXA,iBAAyD;AAClE;AAAA,EACC;AAAA,EACA;AAAA,OACM;AACP,SAAoB,WAAXA,iBAAoD;AAC7D;AAAA,EAEC;AAAA,EACW,WAAXA;AAAA,OACM;AACP,SAAoB,WAAXA,iBAA+B;AACxC,SAAoB,WAAXA,iBAAsC;AAC/C,SAAoB,WAAXA,iBAAkC;AAC3C,SAAoB,WAAXA,iBAAiD;AAC1D,SAAoB,WAAXA,iBAA+C;AACxD,SAAoB,WAAXA,iBAAsD;AAC/D,SAAoB,WAAXA,iBAAkD;AAC3D,SAAoB,WAAXA,iBAAqD;AAC9D,SAAoB,WAAXA,iBAAsD;AAC/D,SAAoB,WAAXA,iBAAqD;AAC9D,SAAoB,WAAXA,iBAAmD;AAC5D,SAAoB,WAAXA,iBAAqD;AAC9D,SAAoB,WAAXA,iBAA8D;AACvE,SAAoB,WAAXA,iBAA2D;AACpE,SAAoB,WAAXA,iBAAoE;AAC7E,SAAoB,WAAXA,iBAAgC;AACzC,SAAoB,WAAXA,iBAA4C;AACrD,SAAoB,WAAXA,iBAAiD;AAC1D,SAAoB,WAAXA,WAAwB,2BAA2B;AAC5D;AAAA,EACY,WAAXA;AAAA,EACA;AAAA,OACM;AACP;AAAA,EACC;AAAA,EACA;AAAA,OACM;AACP;AAAA,EACY,WAAXA;AAAA,EACqC;AAAA,OAC/B;AACP,SAAS,4CAA4C;AACrD,SAAS,8CAA8C;AACvD,SAAS,2CAA2C;AACpD,SAAoB,WAAXA,iBAAoC;AAC7C,SAAoB,WAAXA,iBAAyC;AAClD,SAAoB,WAAXA,iBAAmC;AAC5C,SAAoB,WAAXA,iBAAmC;AAC5C,SAAoB,WAAXA,iBAA8B;AACvC,SAAoB,WAAXA,iBAAmC;AAC5C,SAAoB,WAAXA,iBAAqC;AAC9C,SAAoB,WAAXA,iBAA4B;AACrC,SAAoB,WAAXA,iBAAuD;AAChE;AAAA,EACY,WAAXA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAoB,WAAXA,iBAA4C;AACrD,SAAoB,WAAXA,iBAA2B;AACpC,SAAoB,WAAXA,iBAAiC;AAC1C,SAAoB,WAAXA,iBAA6B;AACtC,SAAS,qCAAqC;AAC9C,SAAoB,WAAXA,iBAAmC;AAC5C,SAAoB,WAAXA,iBAAoD;AAC7D;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAKP,SAAoB,WAAXA,iBAAuD;AAChE,SAAoB,WAAXA,iBAAiD;AAC1D,SAAoB,WAAXA,
|
|
4
|
+
"sourcesContent": ["/*\n * Block Creation Components\n */\n\nexport * from './colors';\nexport * from './gradients';\nexport * from './font-sizes';\nexport { AlignmentControl, AlignmentToolbar } from './alignment-control';\nexport { default as Autocomplete } from './autocomplete';\nexport {\n\tBlockAlignmentControl,\n\tBlockAlignmentToolbar,\n} from './block-alignment-control';\nexport {\n\tBlockBindingsAttributeControl,\n\tBlockBindingsSourceFieldsList,\n\tuseBlockBindingsUtils,\n} from './block-bindings';\nexport { default as __experimentalBlockFullHeightAligmentControl } from './block-full-height-alignment-control';\nexport { default as __experimentalBlockAlignmentMatrixControl } from './block-alignment-matrix-control';\nexport { default as BlockBreadcrumb } from './block-breadcrumb';\nexport { default as __experimentalUseBlockOverlayActive } from './block-content-overlay';\nexport { BlockContextProvider } from './block-context';\nexport { default as BlockCanvas } from './block-canvas';\nexport {\n\tdefault as BlockControls,\n\tBlockFormatControls,\n} from './block-controls';\nexport { default as BlockColorsStyleSelector } from './color-style-selector';\nexport { default as BlockEdit, useBlockEditContext } from './block-edit';\nexport { default as BlockIcon } from './block-icon';\nexport { default as BlockNavigationDropdown } from './block-navigation/dropdown';\nexport { default as BlockStyles } from './block-styles';\nexport { default as HeadingLevelDropdown } from './block-heading-level-dropdown';\nexport { default as __experimentalBlockVariationPicker } from './block-variation-picker';\nexport { default as __experimentalBlockPatternSetup } from './block-pattern-setup';\nexport { default as __experimentalBlockVariationTransforms } from './block-variation-transforms';\nexport {\n\tBlockVerticalAlignmentToolbar,\n\tBlockVerticalAlignmentControl,\n} from './block-vertical-alignment-control';\nexport { default as __experimentalBorderRadiusControl } from './border-radius-control';\nexport {\n\t// This is a typo, but kept here for back-compat.\n\tButtonBlockerAppender,\n\tdefault as ButtonBlockAppender,\n} from './button-block-appender';\nexport { default as ColorPalette } from './color-palette';\nexport { default as ColorPaletteControl } from './color-palette/control';\nexport { default as ContrastChecker } from './contrast-checker';\nexport { default as __experimentalDateFormatPicker } from './date-format-picker';\nexport { default as __experimentalDuotoneControl } from './duotone-control';\nexport { default as __experimentalFontAppearanceControl } from './font-appearance-control';\nexport { default as __experimentalFontFamilyControl } from './font-family';\nexport { default as __experimentalLetterSpacingControl } from './letter-spacing-control';\nexport { default as __experimentalTextDecorationControl } from './text-decoration-control';\nexport { default as __experimentalTextTransformControl } from './text-transform-control';\nexport { default as __experimentalWritingModeControl } from './writing-mode-control';\nexport { default as __experimentalColorGradientControl } from './colors-gradients/control';\nexport { default as __experimentalColorGradientSettingsDropdown } from './colors-gradients/dropdown';\nexport { default as __experimentalPanelColorGradientSettings } from './colors-gradients/panel-color-gradient-settings';\nexport { default as __experimentalUseMultipleOriginColorsAndGradients } from './colors-gradients/use-multiple-origin-colors-and-gradients';\nexport { default as HeightControl } from './height-control';\nexport { default as __experimentalImageEditor } from './image-editor';\nexport { default as __experimentalImageSizeControl } from './image-size-control';\nexport { default as InnerBlocks, useInnerBlocksProps } from './inner-blocks';\nexport {\n\tdefault as InspectorControls,\n\tInspectorAdvancedControls,\n} from './inspector-controls';\nexport {\n\tJustifyToolbar,\n\tJustifyContentControl,\n} from './justify-content-control';\nexport {\n\tdefault as LinkControl,\n\tDeprecatedExperimentalLinkControl as __experimentalLinkControl,\n} from './link-control';\nexport { __experimentalLinkControlSearchInput } from './link-control/search-input';\nexport { __experimentalLinkControlSearchResults } from './link-control/search-results';\nexport { __experimentalLinkControlSearchItem } from './link-control/search-item';\nexport { default as LineHeightControl } from './line-height-control';\nexport { default as __experimentalListView } from './list-view';\nexport { default as MediaReplaceFlow } from './media-replace-flow';\nexport { default as MediaPlaceholder } from './media-placeholder';\nexport { default as MediaUpload } from './media-upload';\nexport { default as MediaUploadCheck } from './media-upload/check';\nexport { default as PanelColorSettings } from './panel-color-settings';\nexport { default as PlainText } from './plain-text';\nexport { default as __experimentalResponsiveBlockControl } from './responsive-block-control';\nexport {\n\tdefault as RichText,\n\tRichTextShortcut,\n\tRichTextToolbarButton,\n\t__unstableRichTextInputEvent,\n} from './rich-text';\nexport { default as __experimentalUnitControl } from './unit-control';\nexport { default as URLInput } from './url-input';\nexport { default as URLInputButton } from './url-input/button';\nexport { default as URLPopover } from './url-popover';\nexport { __experimentalImageURLInputUI } from './url-popover/image-url-input-ui';\nexport { default as withColorContext } from './color-palette/with-color-context';\nexport { default as __experimentalSpacingSizesControl } from './spacing-sizes-control';\nexport {\n\tgetSpacingPresetCssVar,\n\tisValueSpacingPreset,\n\tgetCustomValueFromPreset,\n} from './spacing-sizes-control/utils';\n/*\n * Content Related Components\n */\n\nexport { default as __unstableBlockSettingsMenuFirstItem } from './block-settings-menu/block-settings-menu-first-item';\nexport { default as __unstableBlockToolbarLastItem } from './block-toolbar/block-toolbar-last-item';\nexport { default as __unstableInserterMenuExtension } from './inserter-menu-extension';\nexport { default as __experimentalPreviewOptions } from './preview-options';\nexport { default as __experimentalUseResizeCanvas } from './use-resize-canvas';\nexport { default as BlockInspector } from './block-inspector';\nexport { default as BlockList } from './block-list';\nexport { useBlockProps } from './block-list/use-block-props';\nexport { default as BlockMover } from './block-mover';\nexport {\n\tdefault as BlockPreview,\n\tuseBlockPreview as __experimentalUseBlockPreview,\n} from './block-preview';\nexport {\n\tdefault as BlockSelectionClearer,\n\tuseBlockSelectionClearer as __unstableUseBlockSelectionClearer,\n} from './block-selection-clearer';\nexport { default as BlockSettingsMenu } from './block-settings-menu';\nexport { default as BlockSettingsMenuControls } from './block-settings-menu-controls';\nexport { default as BlockTitle } from './block-title';\nexport { default as BlockToolbar } from './block-toolbar';\nexport { default as BlockTools } from './block-tools';\nexport {\n\tdefault as CopyHandler,\n\t__unstableUseClipboardHandler,\n} from './copy-handler';\nexport { default as DefaultBlockAppender } from './default-block-appender';\nexport { default as __unstableEditorStyles } from './editor-styles';\nexport { default as Inserter } from './inserter';\nexport { default as __experimentalLibrary } from './inserter/library';\nexport { default as BlockEditorKeyboardShortcuts } from './keyboard-shortcuts';\nexport { MultiSelectScrollIntoView } from './selection-scroll-into-view';\nexport { default as NavigableToolbar } from './navigable-toolbar';\nexport {\n\tdefault as ObserveTyping,\n\tuseTypingObserver as __unstableUseTypingObserver,\n\tuseMouseMoveTypingReset as __unstableUseMouseMoveTypingReset,\n} from './observe-typing';\nexport { default as SkipToSelectedBlock } from './skip-to-selected-block';\nexport {\n\tdefault as Typewriter,\n\tuseTypewriter as __unstableUseTypewriter,\n} from './typewriter';\nexport { default as Warning } from './warning';\nexport { default as WritingFlow } from './writing-flow';\nexport { default as useBlockDisplayInformation } from './use-block-display-information';\nexport { default as __unstableIframe } from './iframe';\nexport {\n\tRecursionProvider,\n\tDeprecatedExperimentalRecursionProvider as __experimentalRecursionProvider,\n\tuseHasRecursion,\n\tDeprecatedExperimentalUseHasRecursion as __experimentalUseHasRecursion,\n} from './recursion-provider';\nexport { default as __experimentalBlockPatternsList } from './block-patterns-list';\nexport { default as __experimentalPublishDateTimePicker } from './publish-date-time-picker';\nexport { default as __experimentalInspectorPopoverHeader } from './inspector-popover-header';\nexport { default as BlockPopover } from './block-popover';\nexport { useBlockEditingMode } from './block-editing-mode';\n\n/*\n * State Related Components\n */\n\nexport { default as BlockEditorProvider } from './provider';\nexport { useSettings, useSetting } from './use-settings';\nexport { useBlockCommands } from './use-block-commands';\n\n// This component is no longer used in Gutenberg,\n// but kept for backwards compatibility.\nexport { default as ToolSelector } from './tool-selector';\n"],
|
|
5
|
+
"mappings": ";AAIA,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAAS,kBAAkB,wBAAwB;AACnD,SAAoB,WAAXA,gBAA+B;AACxC;AAAA,EACC;AAAA,EACA;AAAA,OACM;AACP;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAoB,WAAXA,gBAA+D;AACxE,SAAoB,WAAXA,gBAA4D;AACrE,SAAoB,WAAXA,gBAAkC;AAC3C,SAAoB,WAAXA,gBAAsD;AAC/D,SAAS,4BAA4B;AACrC,SAAoB,WAAXA,gBAA8B;AACvC;AAAA,EACY,WAAXA;AAAA,EACA;AAAA,OACM;AACP,SAAoB,WAAXA,gBAA2C;AACpD,SAAoB,WAAXA,WAAsB,2BAA2B;AAC1D,SAAoB,WAAXA,iBAA4B;AACrC,SAAoB,WAAXA,iBAA0C;AACnD,SAAoB,WAAXA,iBAA8B;AACvC,SAAoB,WAAXA,iBAAuC;AAChD,SAAoB,WAAXA,iBAAqD;AAC9D,SAAoB,WAAXA,iBAAkD;AAC3D,SAAoB,WAAXA,iBAAyD;AAClE;AAAA,EACC;AAAA,EACA;AAAA,OACM;AACP,SAAoB,WAAXA,iBAAoD;AAC7D;AAAA,EAEC;AAAA,EACW,WAAXA;AAAA,OACM;AACP,SAAoB,WAAXA,iBAA+B;AACxC,SAAoB,WAAXA,iBAAsC;AAC/C,SAAoB,WAAXA,iBAAkC;AAC3C,SAAoB,WAAXA,iBAAiD;AAC1D,SAAoB,WAAXA,iBAA+C;AACxD,SAAoB,WAAXA,iBAAsD;AAC/D,SAAoB,WAAXA,iBAAkD;AAC3D,SAAoB,WAAXA,iBAAqD;AAC9D,SAAoB,WAAXA,iBAAsD;AAC/D,SAAoB,WAAXA,iBAAqD;AAC9D,SAAoB,WAAXA,iBAAmD;AAC5D,SAAoB,WAAXA,iBAAqD;AAC9D,SAAoB,WAAXA,iBAA8D;AACvE,SAAoB,WAAXA,iBAA2D;AACpE,SAAoB,WAAXA,iBAAoE;AAC7E,SAAoB,WAAXA,iBAAgC;AACzC,SAAoB,WAAXA,iBAA4C;AACrD,SAAoB,WAAXA,iBAAiD;AAC1D,SAAoB,WAAXA,WAAwB,2BAA2B;AAC5D;AAAA,EACY,WAAXA;AAAA,EACA;AAAA,OACM;AACP;AAAA,EACC;AAAA,EACA;AAAA,OACM;AACP;AAAA,EACY,WAAXA;AAAA,EACqC;AAAA,OAC/B;AACP,SAAS,4CAA4C;AACrD,SAAS,8CAA8C;AACvD,SAAS,2CAA2C;AACpD,SAAoB,WAAXA,iBAAoC;AAC7C,SAAoB,WAAXA,iBAAyC;AAClD,SAAoB,WAAXA,iBAAmC;AAC5C,SAAoB,WAAXA,iBAAmC;AAC5C,SAAoB,WAAXA,iBAA8B;AACvC,SAAoB,WAAXA,iBAAmC;AAC5C,SAAoB,WAAXA,iBAAqC;AAC9C,SAAoB,WAAXA,iBAA4B;AACrC,SAAoB,WAAXA,iBAAuD;AAChE;AAAA,EACY,WAAXA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAoB,WAAXA,iBAA4C;AACrD,SAAoB,WAAXA,iBAA2B;AACpC,SAAoB,WAAXA,iBAAiC;AAC1C,SAAoB,WAAXA,iBAA6B;AACtC,SAAS,qCAAqC;AAC9C,SAAoB,WAAXA,iBAAmC;AAC5C,SAAoB,WAAXA,iBAAoD;AAC7D;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAKP,SAAoB,WAAXA,iBAAuD;AAChE,SAAoB,WAAXA,iBAAiD;AAC1D,SAAoB,WAAXA,iBAAkD;AAC3D,SAAoB,WAAXA,iBAA+C;AACxD,SAAoB,WAAXA,iBAAgD;AACzD,SAAoB,WAAXA,iBAAiC;AAC1C,SAAoB,WAAXA,iBAA4B;AACrC,SAAS,qBAAqB;AAC9B,SAAoB,WAAXA,iBAA6B;AACtC;AAAA,EACY,WAAXA;AAAA,EACmB;AAAA,OACb;AACP;AAAA,EACY,WAAXA;AAAA,EAC4B;AAAA,OACtB;AACP,SAAoB,WAAXA,iBAAoC;AAC7C,SAAoB,WAAXA,iBAA4C;AACrD,SAAoB,WAAXA,iBAA6B;AACtC,SAAoB,WAAXA,iBAA+B;AACxC,SAAoB,WAAXA,iBAA6B;AACtC;AAAA,EACY,WAAXA;AAAA,EACA;AAAA,OACM;AACP,SAAoB,WAAXA,iBAAuC;AAChD,SAAoB,WAAXA,iBAAyC;AAClD,SAAoB,WAAXA,iBAA2B;AACpC,SAAoB,WAAXA,iBAAwC;AACjD,SAAoB,WAAXA,iBAA+C;AACxD,SAAS,iCAAiC;AAC1C,SAAoB,WAAXA,iBAAmC;AAC5C;AAAA,EACY,WAAXA;AAAA,EACqB;AAAA,EACM;AAAA,OACrB;AACP,SAAoB,WAAXA,iBAAsC;AAC/C;AAAA,EACY,WAAXA;AAAA,EACiB;AAAA,OACX;AACP,SAAoB,WAAXA,iBAA0B;AACnC,SAAoB,WAAXA,iBAA8B;AACvC,SAAoB,WAAXA,iBAA6C;AACtD,SAAoB,WAAXA,iBAAmC;AAC5C;AAAA,EACC;AAAA,EAC2C;AAAA,EAC3C;AAAA,EACyC;AAAA,OACnC;AACP,SAAoB,WAAXA,iBAAkD;AAC3D,SAAoB,WAAXA,iBAAsD;AAC/D,SAAoB,WAAXA,iBAAuD;AAChE,SAAoB,WAAXA,iBAA+B;AACxC,SAAS,2BAA2B;AAMpC,SAAoB,WAAXA,iBAAsC;AAC/C,SAAS,aAAa,kBAAkB;AACxC,SAAS,wBAAwB;AAIjC,SAAoB,WAAXA,iBAA+B;",
|
|
6
6
|
"names": ["default"]
|
|
7
7
|
}
|
|
@@ -15,12 +15,12 @@ var InserterDraggableBlocks = ({
|
|
|
15
15
|
children,
|
|
16
16
|
pattern
|
|
17
17
|
}) => {
|
|
18
|
+
const blockName = blocks.length === 1 ? blocks[0].name : void 0;
|
|
18
19
|
const blockTypeIcon = useSelect(
|
|
19
20
|
(select) => {
|
|
20
|
-
|
|
21
|
-
return blocks.length === 1 && getBlockType(blocks[0].name)?.icon;
|
|
21
|
+
return blockName && select(blocksStore).getBlockType(blockName)?.icon;
|
|
22
22
|
},
|
|
23
|
-
[
|
|
23
|
+
[blockName]
|
|
24
24
|
);
|
|
25
25
|
const { startDragging, stopDragging } = unlock(
|
|
26
26
|
useDispatch(blockEditorStore)
|
|
@@ -43,9 +43,13 @@ var InserterDraggableBlocks = ({
|
|
|
43
43
|
transferData: { type: "inserter", blocks: draggableBlocks },
|
|
44
44
|
onDragStart: (event) => {
|
|
45
45
|
startDragging();
|
|
46
|
+
const addedTypes = /* @__PURE__ */ new Set();
|
|
46
47
|
for (const block of draggableBlocks) {
|
|
47
48
|
const type = `wp-block:${block.name}`;
|
|
48
|
-
|
|
49
|
+
if (!addedTypes.has(type)) {
|
|
50
|
+
event.dataTransfer.items.add("", type);
|
|
51
|
+
addedTypes.add(type);
|
|
52
|
+
}
|
|
49
53
|
}
|
|
50
54
|
},
|
|
51
55
|
onDragEnd: () => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/inserter-draggable-blocks/index.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { Draggable } from '@wordpress/components';\nimport { createBlock, store as blocksStore } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggableChip from '../block-draggable/draggable-chip';\nimport { INSERTER_PATTERN_TYPES } from '../inserter/block-patterns-tab/utils';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst InserterDraggableBlocks = ( {\n\tisEnabled,\n\tblocks,\n\ticon,\n\tchildren,\n\tpattern,\n} ) => {\n\tconst blockTypeIcon = useSelect(\n\t\t( select ) => {\n\t\t\
|
|
5
|
-
"mappings": ";AAGA,SAAS,iBAAiB;AAC1B,SAAS,aAAa,SAAS,mBAAmB;AAClD,SAAS,aAAa,iBAAiB;AACvC,SAAS,eAAe;AAKxB,OAAO,wBAAwB;AAC/B,SAAS,8BAA8B;AACvC,SAAS,SAAS,wBAAwB;AAC1C,SAAS,cAAc;
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { Draggable } from '@wordpress/components';\nimport { createBlock, store as blocksStore } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggableChip from '../block-draggable/draggable-chip';\nimport { INSERTER_PATTERN_TYPES } from '../inserter/block-patterns-tab/utils';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst InserterDraggableBlocks = ( {\n\tisEnabled,\n\tblocks,\n\ticon,\n\tchildren,\n\tpattern,\n} ) => {\n\tconst blockName = blocks.length === 1 ? blocks[ 0 ].name : undefined;\n\tconst blockTypeIcon = useSelect(\n\t\t( select ) => {\n\t\t\treturn (\n\t\t\t\tblockName &&\n\t\t\t\tselect( blocksStore ).getBlockType( blockName )?.icon\n\t\t\t);\n\t\t},\n\t\t[ blockName ]\n\t);\n\n\tconst { startDragging, stopDragging } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\n\tconst patternBlock = useMemo( () => {\n\t\treturn pattern?.type === INSERTER_PATTERN_TYPES.user &&\n\t\t\tpattern?.syncStatus !== 'unsynced'\n\t\t\t? [ createBlock( 'core/block', { ref: pattern.id } ) ]\n\t\t\t: undefined;\n\t}, [ pattern?.type, pattern?.syncStatus, pattern?.id ] );\n\n\tif ( ! isEnabled ) {\n\t\treturn children( {\n\t\t\tdraggable: false,\n\t\t\tonDragStart: undefined,\n\t\t\tonDragEnd: undefined,\n\t\t} );\n\t}\n\n\tconst draggableBlocks = patternBlock ?? blocks;\n\treturn (\n\t\t<Draggable\n\t\t\t__experimentalTransferDataType=\"wp-blocks\"\n\t\t\ttransferData={ { type: 'inserter', blocks: draggableBlocks } }\n\t\t\tonDragStart={ ( event ) => {\n\t\t\t\tstartDragging();\n\t\t\t\tconst addedTypes = new Set();\n\t\t\t\tfor ( const block of draggableBlocks ) {\n\t\t\t\t\tconst type = `wp-block:${ block.name }`;\n\t\t\t\t\t/*\n\t\t\t\t\t * Only add each block type once to avoid DataTransferItemList::add `NotSupportedError`\n\t\t\t\t\t * when patterns contain multiple blocks of the same type.\n\t\t\t\t\t */\n\t\t\t\t\tif ( ! addedTypes.has( type ) ) {\n\t\t\t\t\t\t/*\n\t\t\t\t\t\t * This will fill in the dataTransfer.types array so that\n\t\t\t\t\t\t * the drop zone can check if the draggable is eligible.\n\t\t\t\t\t\t * Unfortuantely, on drag start, we don't have access to the\n\t\t\t\t\t\t * actual data, only the data keys/types.\n\t\t\t\t\t\t */\n\t\t\t\t\t\tevent.dataTransfer.items.add( '', type );\n\t\t\t\t\t\taddedTypes.add( type );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} }\n\t\t\tonDragEnd={ () => {\n\t\t\t\tstopDragging();\n\t\t\t} }\n\t\t\t__experimentalDragComponent={\n\t\t\t\t<BlockDraggableChip\n\t\t\t\t\tcount={ blocks.length }\n\t\t\t\t\ticon={ icon || ( ! pattern && blockTypeIcon ) }\n\t\t\t\t\tisPattern={ !! pattern }\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t{ ( { onDraggableStart, onDraggableEnd } ) => {\n\t\t\t\treturn children( {\n\t\t\t\t\tdraggable: true,\n\t\t\t\t\tonDragStart: onDraggableStart,\n\t\t\t\t\tonDragEnd: onDraggableEnd,\n\t\t\t\t} );\n\t\t\t} }\n\t\t</Draggable>\n\t);\n};\n\nexport default InserterDraggableBlocks;\n"],
|
|
5
|
+
"mappings": ";AAGA,SAAS,iBAAiB;AAC1B,SAAS,aAAa,SAAS,mBAAmB;AAClD,SAAS,aAAa,iBAAiB;AACvC,SAAS,eAAe;AAKxB,OAAO,wBAAwB;AAC/B,SAAS,8BAA8B;AACvC,SAAS,SAAS,wBAAwB;AAC1C,SAAS,cAAc;AAqEnB;AAnEJ,IAAM,0BAA0B,CAAE;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,MAAO;AACN,QAAM,YAAY,OAAO,WAAW,IAAI,OAAQ,CAAE,EAAE,OAAO;AAC3D,QAAM,gBAAgB;AAAA,IACrB,CAAE,WAAY;AACb,aACC,aACA,OAAQ,WAAY,EAAE,aAAc,SAAU,GAAG;AAAA,IAEnD;AAAA,IACA,CAAE,SAAU;AAAA,EACb;AAEA,QAAM,EAAE,eAAe,aAAa,IAAI;AAAA,IACvC,YAAa,gBAAiB;AAAA,EAC/B;AAEA,QAAM,eAAe,QAAS,MAAM;AACnC,WAAO,SAAS,SAAS,uBAAuB,QAC/C,SAAS,eAAe,aACtB,CAAE,YAAa,cAAc,EAAE,KAAK,QAAQ,GAAG,CAAE,CAAE,IACnD;AAAA,EACJ,GAAG,CAAE,SAAS,MAAM,SAAS,YAAY,SAAS,EAAG,CAAE;AAEvD,MAAK,CAAE,WAAY;AAClB,WAAO,SAAU;AAAA,MAChB,WAAW;AAAA,MACX,aAAa;AAAA,MACb,WAAW;AAAA,IACZ,CAAE;AAAA,EACH;AAEA,QAAM,kBAAkB,gBAAgB;AACxC,SACC;AAAA,IAAC;AAAA;AAAA,MACA,gCAA+B;AAAA,MAC/B,cAAe,EAAE,MAAM,YAAY,QAAQ,gBAAgB;AAAA,MAC3D,aAAc,CAAE,UAAW;AAC1B,sBAAc;AACd,cAAM,aAAa,oBAAI,IAAI;AAC3B,mBAAY,SAAS,iBAAkB;AACtC,gBAAM,OAAO,YAAa,MAAM,IAAK;AAKrC,cAAK,CAAE,WAAW,IAAK,IAAK,GAAI;AAO/B,kBAAM,aAAa,MAAM,IAAK,IAAI,IAAK;AACvC,uBAAW,IAAK,IAAK;AAAA,UACtB;AAAA,QACD;AAAA,MACD;AAAA,MACA,WAAY,MAAM;AACjB,qBAAa;AAAA,MACd;AAAA,MACA,6BACC;AAAA,QAAC;AAAA;AAAA,UACA,OAAQ,OAAO;AAAA,UACf,MAAO,QAAU,CAAE,WAAW;AAAA,UAC9B,WAAY,CAAC,CAAE;AAAA;AAAA,MAChB;AAAA,MAGC,WAAE,EAAE,kBAAkB,eAAe,MAAO;AAC7C,eAAO,SAAU;AAAA,UAChB,WAAW;AAAA,UACX,aAAa;AAAA,UACb,WAAW;AAAA,QACZ,CAAE;AAAA,MACH;AAAA;AAAA,EACD;AAEF;AAEA,IAAO,oCAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -8,9 +8,10 @@ var ContentTab = ({ rootClientId, contentClientIds }) => {
|
|
|
8
8
|
if (!contentClientIds || contentClientIds.length === 0) {
|
|
9
9
|
return null;
|
|
10
10
|
}
|
|
11
|
+
const shouldShowContentOnlyControls = window?.__experimentalContentOnlyPatternInsertion && window?.__experimentalContentOnlyInspectorFields;
|
|
11
12
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
12
|
-
!
|
|
13
|
-
|
|
13
|
+
!shouldShowContentOnlyControls && /* @__PURE__ */ jsx(PanelBody, { title: __("Content"), children: /* @__PURE__ */ jsx(BlockQuickNavigation, { clientIds: contentClientIds }) }),
|
|
14
|
+
shouldShowContentOnlyControls && /* @__PURE__ */ jsx(ContentOnlyControls, { rootClientId })
|
|
14
15
|
] });
|
|
15
16
|
};
|
|
16
17
|
var content_tab_default = ContentTab;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/inspector-controls-tabs/content-tab.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { PanelBody } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockQuickNavigation from '../block-quick-navigation';\nimport ContentOnlyControls from '../content-only-controls';\n\nconst ContentTab = ( { rootClientId, contentClientIds } ) => {\n\tif ( ! contentClientIds || contentClientIds.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ !
|
|
5
|
-
"mappings": ";AAGA,SAAS,iBAAiB;AAC1B,SAAS,UAAU;AAKnB,OAAO,0BAA0B;AACjC,OAAO,yBAAyB;
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { PanelBody } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockQuickNavigation from '../block-quick-navigation';\nimport ContentOnlyControls from '../content-only-controls';\n\nconst ContentTab = ( { rootClientId, contentClientIds } ) => {\n\tif ( ! contentClientIds || contentClientIds.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tconst shouldShowContentOnlyControls =\n\t\twindow?.__experimentalContentOnlyPatternInsertion &&\n\t\twindow?.__experimentalContentOnlyInspectorFields;\n\n\treturn (\n\t\t<>\n\t\t\t{ ! shouldShowContentOnlyControls && (\n\t\t\t\t<PanelBody title={ __( 'Content' ) }>\n\t\t\t\t\t<BlockQuickNavigation clientIds={ contentClientIds } />\n\t\t\t\t</PanelBody>\n\t\t\t) }\n\t\t\t{ shouldShowContentOnlyControls && (\n\t\t\t\t<ContentOnlyControls rootClientId={ rootClientId } />\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport default ContentTab;\n"],
|
|
5
|
+
"mappings": ";AAGA,SAAS,iBAAiB;AAC1B,SAAS,UAAU;AAKnB,OAAO,0BAA0B;AACjC,OAAO,yBAAyB;AAY9B,mBAGG,KAHH;AAVF,IAAM,aAAa,CAAE,EAAE,cAAc,iBAAiB,MAAO;AAC5D,MAAK,CAAE,oBAAoB,iBAAiB,WAAW,GAAI;AAC1D,WAAO;AAAA,EACR;AAEA,QAAM,gCACL,QAAQ,6CACR,QAAQ;AAET,SACC,iCACG;AAAA,KAAE,iCACH,oBAAC,aAAU,OAAQ,GAAI,SAAU,GAChC,8BAAC,wBAAqB,WAAY,kBAAmB,GACtD;AAAA,IAEC,iCACD,oBAAC,uBAAoB,cAA8B;AAAA,KAErD;AAEF;AAEA,IAAO,sBAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// packages/block-editor/src/components/tool-selector/index.js
|
|
2
|
+
import deprecated from "@wordpress/deprecated";
|
|
3
|
+
import { forwardRef } from "@wordpress/element";
|
|
4
|
+
function ToolSelector() {
|
|
5
|
+
deprecated("wp.blockEditor.ToolSelector", {
|
|
6
|
+
since: "6.9",
|
|
7
|
+
hint: "The ToolSelector component no longer renders anything."
|
|
8
|
+
});
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
var tool_selector_default = forwardRef(ToolSelector);
|
|
12
|
+
export {
|
|
13
|
+
tool_selector_default as default
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/tool-selector/index.js"],
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\nimport { forwardRef } from '@wordpress/element';\n\nfunction ToolSelector() {\n\tdeprecated( 'wp.blockEditor.ToolSelector', {\n\t\tsince: '6.9',\n\t\thint: 'The ToolSelector component no longer renders anything.',\n\t} );\n\n\treturn null;\n}\n\n/**\n * This component has been deprecated and no longer renders anything.\n */\nexport default forwardRef( ToolSelector );\n"],
|
|
5
|
+
"mappings": ";AAGA,OAAO,gBAAgB;AACvB,SAAS,kBAAkB;AAE3B,SAAS,eAAe;AACvB,aAAY,+BAA+B;AAAA,IAC1C,OAAO;AAAA,IACP,MAAM;AAAA,EACP,CAAE;AAEF,SAAO;AACR;AAKA,IAAO,wBAAQ,WAAY,YAAa;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,35 +1,23 @@
|
|
|
1
1
|
// packages/block-editor/src/hooks/block-bindings.js
|
|
2
|
-
import fastDeepEqual from "fast-deep-equal/es6";
|
|
3
2
|
import { __ } from "@wordpress/i18n";
|
|
4
|
-
import {
|
|
5
|
-
getBlockBindingsSource,
|
|
6
|
-
getBlockType,
|
|
7
|
-
store as blockStore
|
|
8
|
-
} from "@wordpress/blocks";
|
|
3
|
+
import { store as blocksStore } from "@wordpress/blocks";
|
|
9
4
|
import {
|
|
10
5
|
__experimentalItemGroup as ItemGroup,
|
|
11
|
-
__experimentalItem as Item,
|
|
12
6
|
__experimentalText as Text,
|
|
13
|
-
__experimentalToolsPanel as ToolsPanel
|
|
14
|
-
__experimentalToolsPanelItem as ToolsPanelItem,
|
|
15
|
-
__experimentalVStack as VStack,
|
|
16
|
-
privateApis as componentsPrivateApis
|
|
7
|
+
__experimentalToolsPanel as ToolsPanel
|
|
17
8
|
} from "@wordpress/components";
|
|
18
9
|
import { useSelect } from "@wordpress/data";
|
|
19
10
|
import { useContext } from "@wordpress/element";
|
|
20
11
|
import { useViewportMatch } from "@wordpress/compose";
|
|
21
|
-
import {
|
|
12
|
+
import {
|
|
13
|
+
BlockBindingsAttributeControl,
|
|
14
|
+
useBlockBindingsUtils
|
|
15
|
+
} from "../components/block-bindings";
|
|
22
16
|
import { unlock } from "../lock-unlock";
|
|
23
17
|
import InspectorControls from "../components/inspector-controls";
|
|
24
18
|
import BlockContext from "../components/block-context";
|
|
25
|
-
import { useBlockEditContext } from "../components/block-edit";
|
|
26
19
|
import { store as blockEditorStore } from "../store";
|
|
27
20
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
28
|
-
var { Menu } = unlock(componentsPrivateApis);
|
|
29
|
-
var getAttributeType = (blockName, attribute) => {
|
|
30
|
-
const _attributeType = getBlockType(blockName).attributes?.[attribute]?.type;
|
|
31
|
-
return _attributeType === "rich-text" ? "string" : _attributeType;
|
|
32
|
-
};
|
|
33
21
|
var useToolsPanelDropdownMenuProps = () => {
|
|
34
22
|
const isMobile = useViewportMatch("medium", "<");
|
|
35
23
|
return !isMobile ? {
|
|
@@ -40,241 +28,33 @@ var useToolsPanelDropdownMenuProps = () => {
|
|
|
40
28
|
}
|
|
41
29
|
} : {};
|
|
42
30
|
};
|
|
43
|
-
function BlockBindingsPanelMenuContent({ attribute, binding, sources }) {
|
|
44
|
-
const { clientId } = useBlockEditContext();
|
|
45
|
-
const { updateBlockBindings } = useBlockBindingsUtils();
|
|
46
|
-
const isMobile = useViewportMatch("medium", "<");
|
|
47
|
-
const blockContext = useContext(BlockContext);
|
|
48
|
-
const { attributeType, select } = useSelect(
|
|
49
|
-
(_select) => {
|
|
50
|
-
const { name: blockName } = _select(blockEditorStore).getBlock(clientId);
|
|
51
|
-
return {
|
|
52
|
-
attributeType: getAttributeType(blockName, attribute),
|
|
53
|
-
select: _select
|
|
54
|
-
};
|
|
55
|
-
},
|
|
56
|
-
[clientId, attribute]
|
|
57
|
-
);
|
|
58
|
-
return /* @__PURE__ */ jsx(Menu, { placement: isMobile ? "bottom-start" : "left-start", children: Object.entries(sources).map(([sourceKey, data]) => {
|
|
59
|
-
const sourceDataItems = data.filter(
|
|
60
|
-
(item) => item.type === attributeType
|
|
61
|
-
);
|
|
62
|
-
const noItemsAvailable = !sourceDataItems || sourceDataItems.length === 0;
|
|
63
|
-
if (noItemsAvailable) {
|
|
64
|
-
return null;
|
|
65
|
-
}
|
|
66
|
-
const source = getBlockBindingsSource(sourceKey);
|
|
67
|
-
return /* @__PURE__ */ jsxs(
|
|
68
|
-
Menu,
|
|
69
|
-
{
|
|
70
|
-
placement: isMobile ? "bottom-start" : "left-start",
|
|
71
|
-
children: [
|
|
72
|
-
/* @__PURE__ */ jsx(Menu.SubmenuTriggerItem, { children: /* @__PURE__ */ jsx(Menu.ItemLabel, { children: source.label }) }),
|
|
73
|
-
/* @__PURE__ */ jsx(Menu.Popover, { gutter: 8, children: /* @__PURE__ */ jsx(Menu.Group, { children: sourceDataItems.map((item) => {
|
|
74
|
-
const itemBindings = {
|
|
75
|
-
source: sourceKey,
|
|
76
|
-
args: item.args || {
|
|
77
|
-
key: item.key
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
let values = {};
|
|
81
|
-
try {
|
|
82
|
-
values = source.getValues({
|
|
83
|
-
select,
|
|
84
|
-
context: blockContext,
|
|
85
|
-
bindings: {
|
|
86
|
-
[attribute]: itemBindings
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
} catch (e) {
|
|
90
|
-
}
|
|
91
|
-
return /* @__PURE__ */ jsxs(
|
|
92
|
-
Menu.CheckboxItem,
|
|
93
|
-
{
|
|
94
|
-
onChange: () => {
|
|
95
|
-
const isCurrentlySelected = fastDeepEqual(
|
|
96
|
-
binding?.args,
|
|
97
|
-
item.args
|
|
98
|
-
) ?? // Deprecate key dependency in 7.0.
|
|
99
|
-
item.key === binding?.args?.key;
|
|
100
|
-
if (isCurrentlySelected) {
|
|
101
|
-
updateBlockBindings({
|
|
102
|
-
[attribute]: void 0
|
|
103
|
-
});
|
|
104
|
-
} else {
|
|
105
|
-
updateBlockBindings({
|
|
106
|
-
[attribute]: itemBindings
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
},
|
|
110
|
-
name: attribute + "-binding",
|
|
111
|
-
value: values[attribute],
|
|
112
|
-
checked: fastDeepEqual(
|
|
113
|
-
binding?.args,
|
|
114
|
-
item.args
|
|
115
|
-
) ?? // Deprecate key dependency in 7.0.
|
|
116
|
-
item.key === binding?.args?.key,
|
|
117
|
-
children: [
|
|
118
|
-
/* @__PURE__ */ jsx(Menu.ItemLabel, { children: item.label }),
|
|
119
|
-
/* @__PURE__ */ jsx(Menu.ItemHelpText, { children: values[attribute] })
|
|
120
|
-
]
|
|
121
|
-
},
|
|
122
|
-
sourceKey + JSON.stringify(
|
|
123
|
-
item.args
|
|
124
|
-
) || item.key
|
|
125
|
-
);
|
|
126
|
-
}) }) })
|
|
127
|
-
]
|
|
128
|
-
},
|
|
129
|
-
sourceKey
|
|
130
|
-
);
|
|
131
|
-
}) });
|
|
132
|
-
}
|
|
133
|
-
function BlockBindingsAttribute({ attribute, binding, sources, blockName }) {
|
|
134
|
-
const { source: sourceName, args } = binding || {};
|
|
135
|
-
const data = sources?.[sourceName];
|
|
136
|
-
const source = getBlockBindingsSource(sourceName);
|
|
137
|
-
let displayText;
|
|
138
|
-
let isValid = true;
|
|
139
|
-
const isNotBound = binding === void 0;
|
|
140
|
-
if (isNotBound) {
|
|
141
|
-
const attributeType = getAttributeType(blockName, attribute);
|
|
142
|
-
const hasCompatibleSources = Object.values(sources).some(
|
|
143
|
-
(items) => items.some((item) => item.type === attributeType)
|
|
144
|
-
);
|
|
145
|
-
if (!hasCompatibleSources) {
|
|
146
|
-
displayText = __("No sources available");
|
|
147
|
-
} else {
|
|
148
|
-
displayText = __("Not connected");
|
|
149
|
-
}
|
|
150
|
-
isValid = true;
|
|
151
|
-
} else if (!source) {
|
|
152
|
-
isValid = false;
|
|
153
|
-
displayText = __("Source not registered");
|
|
154
|
-
} else {
|
|
155
|
-
displayText = data?.find((item) => fastDeepEqual(item.args, args))?.label || source?.label || sourceName;
|
|
156
|
-
}
|
|
157
|
-
return /* @__PURE__ */ jsxs(VStack, { className: "block-editor-bindings__item", spacing: 0, children: [
|
|
158
|
-
/* @__PURE__ */ jsx(Text, { truncate: true, children: attribute }),
|
|
159
|
-
/* @__PURE__ */ jsx(
|
|
160
|
-
Text,
|
|
161
|
-
{
|
|
162
|
-
truncate: true,
|
|
163
|
-
variant: isValid ? "muted" : void 0,
|
|
164
|
-
isDestructive: !isValid,
|
|
165
|
-
children: displayText
|
|
166
|
-
}
|
|
167
|
-
)
|
|
168
|
-
] });
|
|
169
|
-
}
|
|
170
|
-
function ReadOnlyBlockBindingsPanelItem({
|
|
171
|
-
attribute,
|
|
172
|
-
binding,
|
|
173
|
-
sources,
|
|
174
|
-
blockName
|
|
175
|
-
}) {
|
|
176
|
-
const isMobile = useViewportMatch("medium", "<");
|
|
177
|
-
return /* @__PURE__ */ jsx(ToolsPanelItem, { hasValue: () => !!binding, label: attribute, children: /* @__PURE__ */ jsx(Menu, { placement: isMobile ? "bottom-start" : "left-start", children: /* @__PURE__ */ jsx(Menu.TriggerButton, { render: /* @__PURE__ */ jsx(Item, {}), disabled: true, children: /* @__PURE__ */ jsx(
|
|
178
|
-
BlockBindingsAttribute,
|
|
179
|
-
{
|
|
180
|
-
attribute,
|
|
181
|
-
binding,
|
|
182
|
-
sources,
|
|
183
|
-
blockName
|
|
184
|
-
}
|
|
185
|
-
) }) }) });
|
|
186
|
-
}
|
|
187
|
-
function EditableBlockBindingsPanelItem({
|
|
188
|
-
attribute,
|
|
189
|
-
binding,
|
|
190
|
-
sources,
|
|
191
|
-
blockName
|
|
192
|
-
}) {
|
|
193
|
-
const { updateBlockBindings } = useBlockBindingsUtils();
|
|
194
|
-
const isMobile = useViewportMatch("medium", "<");
|
|
195
|
-
return /* @__PURE__ */ jsx(
|
|
196
|
-
ToolsPanelItem,
|
|
197
|
-
{
|
|
198
|
-
hasValue: () => !!binding,
|
|
199
|
-
label: attribute,
|
|
200
|
-
onDeselect: () => {
|
|
201
|
-
updateBlockBindings({
|
|
202
|
-
[attribute]: void 0
|
|
203
|
-
});
|
|
204
|
-
},
|
|
205
|
-
children: /* @__PURE__ */ jsxs(Menu, { placement: isMobile ? "bottom-start" : "left-start", children: [
|
|
206
|
-
/* @__PURE__ */ jsx(Menu.TriggerButton, { render: /* @__PURE__ */ jsx(Item, {}), children: /* @__PURE__ */ jsx(
|
|
207
|
-
BlockBindingsAttribute,
|
|
208
|
-
{
|
|
209
|
-
attribute,
|
|
210
|
-
binding,
|
|
211
|
-
sources,
|
|
212
|
-
blockName
|
|
213
|
-
}
|
|
214
|
-
) }),
|
|
215
|
-
/* @__PURE__ */ jsx(Menu.Popover, { gutter: isMobile ? 8 : 36, children: /* @__PURE__ */ jsx(
|
|
216
|
-
BlockBindingsPanelMenuContent,
|
|
217
|
-
{
|
|
218
|
-
attribute,
|
|
219
|
-
binding,
|
|
220
|
-
sources
|
|
221
|
-
}
|
|
222
|
-
) })
|
|
223
|
-
] })
|
|
224
|
-
}
|
|
225
|
-
);
|
|
226
|
-
}
|
|
227
31
|
var BlockBindingsPanel = ({ name: blockName, metadata }) => {
|
|
228
32
|
const blockContext = useContext(BlockContext);
|
|
229
33
|
const { removeAllBlockBindings } = useBlockBindingsUtils();
|
|
230
34
|
const dropdownMenuProps = useToolsPanelDropdownMenuProps();
|
|
231
|
-
const {
|
|
35
|
+
const { bindableAttributes, hasCompatibleFields } = useSelect(
|
|
232
36
|
(select) => {
|
|
233
37
|
const { __experimentalBlockBindingsSupportedAttributes } = select(blockEditorStore).getSettings();
|
|
38
|
+
const {
|
|
39
|
+
getAllBlockBindingsSources,
|
|
40
|
+
getBlockBindingsSourceFieldsList
|
|
41
|
+
} = unlock(select(blocksStore));
|
|
234
42
|
return {
|
|
235
|
-
|
|
236
|
-
|
|
43
|
+
bindableAttributes: __experimentalBlockBindingsSupportedAttributes?.[blockName],
|
|
44
|
+
hasCompatibleFields: Object.values(
|
|
45
|
+
getAllBlockBindingsSources()
|
|
46
|
+
).some(
|
|
47
|
+
(source) => getBlockBindingsSourceFieldsList(source, blockContext)?.length > 0
|
|
48
|
+
)
|
|
237
49
|
};
|
|
238
50
|
},
|
|
239
|
-
[blockName]
|
|
240
|
-
);
|
|
241
|
-
const sources = useSelect(
|
|
242
|
-
(select) => {
|
|
243
|
-
const { getAllBlockBindingsSources } = unlock(
|
|
244
|
-
select(blockStore)
|
|
245
|
-
);
|
|
246
|
-
const data = {};
|
|
247
|
-
Object.entries(getAllBlockBindingsSources()).forEach(
|
|
248
|
-
([sourceName, source]) => {
|
|
249
|
-
if (!source.getFieldsList) {
|
|
250
|
-
return;
|
|
251
|
-
}
|
|
252
|
-
const context = {};
|
|
253
|
-
if (source.usesContext?.length) {
|
|
254
|
-
for (const key of source.usesContext) {
|
|
255
|
-
context[key] = blockContext[key];
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
const items = source.getFieldsList({
|
|
259
|
-
select,
|
|
260
|
-
context
|
|
261
|
-
});
|
|
262
|
-
if (items?.length) {
|
|
263
|
-
data[sourceName] = items;
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
);
|
|
267
|
-
return data;
|
|
268
|
-
},
|
|
269
|
-
[blockContext]
|
|
51
|
+
[blockName, blockContext]
|
|
270
52
|
);
|
|
271
53
|
if (!bindableAttributes || bindableAttributes.length === 0) {
|
|
272
54
|
return null;
|
|
273
55
|
}
|
|
274
56
|
const { bindings } = metadata || {};
|
|
275
|
-
|
|
276
|
-
const readOnly = !canUpdateBlockBindings || !hasCompatibleData;
|
|
277
|
-
if (bindings === void 0 && !hasCompatibleData) {
|
|
57
|
+
if (bindings === void 0 && !hasCompatibleFields) {
|
|
278
58
|
return null;
|
|
279
59
|
}
|
|
280
60
|
return /* @__PURE__ */ jsx(InspectorControls, { group: "bindings", children: /* @__PURE__ */ jsxs(
|
|
@@ -287,38 +67,15 @@ var BlockBindingsPanel = ({ name: blockName, metadata }) => {
|
|
|
287
67
|
dropdownMenuProps,
|
|
288
68
|
className: "block-editor-bindings__panel",
|
|
289
69
|
children: [
|
|
290
|
-
/* @__PURE__ */ jsx(ItemGroup, { isBordered: true, isSeparated: true, children: bindableAttributes.map((attribute) =>
|
|
291
|
-
|
|
292
|
-
|
|
70
|
+
/* @__PURE__ */ jsx(ItemGroup, { isBordered: true, isSeparated: true, children: bindableAttributes.map((attribute) => /* @__PURE__ */ jsx(
|
|
71
|
+
BlockBindingsAttributeControl,
|
|
72
|
+
{
|
|
73
|
+
attribute,
|
|
293
74
|
blockName,
|
|
294
|
-
attribute
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
).some(
|
|
299
|
-
(data) => data.some((item) => item.type === attributeType)
|
|
300
|
-
);
|
|
301
|
-
const isAttributeReadOnly = readOnly || !hasCompatibleDataForAttribute;
|
|
302
|
-
return isAttributeReadOnly ? /* @__PURE__ */ jsx(
|
|
303
|
-
ReadOnlyBlockBindingsPanelItem,
|
|
304
|
-
{
|
|
305
|
-
attribute,
|
|
306
|
-
binding,
|
|
307
|
-
sources,
|
|
308
|
-
blockName
|
|
309
|
-
},
|
|
310
|
-
attribute
|
|
311
|
-
) : /* @__PURE__ */ jsx(
|
|
312
|
-
EditableBlockBindingsPanelItem,
|
|
313
|
-
{
|
|
314
|
-
attribute,
|
|
315
|
-
binding,
|
|
316
|
-
sources,
|
|
317
|
-
blockName
|
|
318
|
-
},
|
|
319
|
-
attribute
|
|
320
|
-
);
|
|
321
|
-
}) }),
|
|
75
|
+
binding: bindings?.[attribute]
|
|
76
|
+
},
|
|
77
|
+
attribute
|
|
78
|
+
)) }),
|
|
322
79
|
/* @__PURE__ */ jsx(Text, { as: "div", variant: "muted", children: /* @__PURE__ */ jsx("p", { children: __(
|
|
323
80
|
"Attributes connected to custom fields or other dynamic data."
|
|
324
81
|
) }) })
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/hooks/block-bindings.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockBindingsSource,\n\tgetBlockType,\n\tstore as blockStore,\n} from '@wordpress/blocks';\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalText as Text,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalVStack as VStack,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { useContext } from '@wordpress/element';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { useBlockBindingsUtils } from '../utils/block-bindings';\nimport { unlock } from '../lock-unlock';\nimport InspectorControls from '../components/inspector-controls';\nimport BlockContext from '../components/block-context';\nimport { useBlockEditContext } from '../components/block-edit';\nimport { store as blockEditorStore } from '../store';\n\nconst { Menu } = unlock( componentsPrivateApis );\n\n/**\n * Get the normalized attribute type for block bindings.\n * Converts 'rich-text' to 'string' since rich-text is stored as string.\n *\n * @param {string} blockName The block name.\n * @param {string} attribute The attribute name.\n * @return {string} The normalized attribute type.\n */\nconst getAttributeType = ( blockName, attribute ) => {\n\tconst _attributeType =\n\t\tgetBlockType( blockName ).attributes?.[ attribute ]?.type;\n\treturn _attributeType === 'rich-text' ? 'string' : _attributeType;\n};\n\nconst useToolsPanelDropdownMenuProps = () => {\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\treturn ! isMobile\n\t\t? {\n\t\t\t\tpopoverProps: {\n\t\t\t\t\tplacement: 'left-start',\n\t\t\t\t\t// For non-mobile, inner sidebar width (248px) - button width (24px) - border (1px) + padding (16px) + spacing (20px)\n\t\t\t\t\toffset: 259,\n\t\t\t\t},\n\t\t }\n\t\t: {};\n};\n\nfunction BlockBindingsPanelMenuContent( { attribute, binding, sources } ) {\n\tconst { clientId } = useBlockEditContext();\n\tconst { updateBlockBindings } = useBlockBindingsUtils();\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\tconst blockContext = useContext( BlockContext );\n\tconst { attributeType, select } = useSelect(\n\t\t( _select ) => {\n\t\t\tconst { name: blockName } =\n\t\t\t\t_select( blockEditorStore ).getBlock( clientId );\n\t\t\treturn {\n\t\t\t\tattributeType: getAttributeType( blockName, attribute ),\n\t\t\t\tselect: _select,\n\t\t\t};\n\t\t},\n\t\t[ clientId, attribute ]\n\t);\n\treturn (\n\t\t<Menu placement={ isMobile ? 'bottom-start' : 'left-start' }>\n\t\t\t{ Object.entries( sources ).map( ( [ sourceKey, data ] ) => {\n\t\t\t\t// Only show sources that have compatible data for this specific attribute.\n\t\t\t\tconst sourceDataItems = data.filter(\n\t\t\t\t\t( item ) => item.type === attributeType\n\t\t\t\t);\n\n\t\t\t\tconst noItemsAvailable =\n\t\t\t\t\t! sourceDataItems || sourceDataItems.length === 0;\n\n\t\t\t\tif ( noItemsAvailable ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst source = getBlockBindingsSource( sourceKey );\n\n\t\t\t\treturn (\n\t\t\t\t\t<Menu\n\t\t\t\t\t\tkey={ sourceKey }\n\t\t\t\t\t\tplacement={ isMobile ? 'bottom-start' : 'left-start' }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Menu.SubmenuTriggerItem>\n\t\t\t\t\t\t\t<Menu.ItemLabel>{ source.label }</Menu.ItemLabel>\n\t\t\t\t\t\t</Menu.SubmenuTriggerItem>\n\t\t\t\t\t\t<Menu.Popover gutter={ 8 }>\n\t\t\t\t\t\t\t<Menu.Group>\n\t\t\t\t\t\t\t\t{ sourceDataItems.map( ( item ) => {\n\t\t\t\t\t\t\t\t\tconst itemBindings = {\n\t\t\t\t\t\t\t\t\t\tsource: sourceKey,\n\t\t\t\t\t\t\t\t\t\targs: item.args || {\n\t\t\t\t\t\t\t\t\t\t\tkey: item.key,\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\tlet values = {};\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tvalues = source.getValues( {\n\t\t\t\t\t\t\t\t\t\t\tselect,\n\t\t\t\t\t\t\t\t\t\t\tcontext: blockContext,\n\t\t\t\t\t\t\t\t\t\t\tbindings: {\n\t\t\t\t\t\t\t\t\t\t\t\t[ attribute ]: itemBindings,\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} catch ( e ) {}\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<Menu.CheckboxItem\n\t\t\t\t\t\t\t\t\t\t\tkey={\n\t\t\t\t\t\t\t\t\t\t\t\tsourceKey +\n\t\t\t\t\t\t\t\t\t\t\t\t\tJSON.stringify(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\titem.args\n\t\t\t\t\t\t\t\t\t\t\t\t\t) || item.key\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\tconst isCurrentlySelected =\n\t\t\t\t\t\t\t\t\t\t\t\t\tfastDeepEqual(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbinding?.args,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\titem.args\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\t// Deprecate key dependency in 7.0.\n\t\t\t\t\t\t\t\t\t\t\t\t\titem.key ===\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbinding?.args?.key;\n\n\t\t\t\t\t\t\t\t\t\t\t\tif ( isCurrentlySelected ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Unset if the same item is selected again.\n\t\t\t\t\t\t\t\t\t\t\t\t\tupdateBlockBindings( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[ attribute ]:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tundefined,\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} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\tupdateBlockBindings( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[ attribute ]:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\titemBindings,\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}\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\tname={ attribute + '-binding' }\n\t\t\t\t\t\t\t\t\t\t\tvalue={ values[ attribute ] }\n\t\t\t\t\t\t\t\t\t\t\tchecked={\n\t\t\t\t\t\t\t\t\t\t\t\tfastDeepEqual(\n\t\t\t\t\t\t\t\t\t\t\t\t\tbinding?.args,\n\t\t\t\t\t\t\t\t\t\t\t\t\titem.args\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\t// Deprecate key dependency in 7.0.\n\t\t\t\t\t\t\t\t\t\t\t\titem.key === binding?.args?.key\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\t\t<Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t\t{ item.label }\n\t\t\t\t\t\t\t\t\t\t\t</Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t<Menu.ItemHelpText>\n\t\t\t\t\t\t\t\t\t\t\t\t{ values[ attribute ] }\n\t\t\t\t\t\t\t\t\t\t\t</Menu.ItemHelpText>\n\t\t\t\t\t\t\t\t\t\t</Menu.CheckboxItem>\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</Menu.Group>\n\t\t\t\t\t\t</Menu.Popover>\n\t\t\t\t\t</Menu>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</Menu>\n\t);\n}\n\nfunction BlockBindingsAttribute( { attribute, binding, sources, blockName } ) {\n\tconst { source: sourceName, args } = binding || {};\n\tconst data = sources?.[ sourceName ];\n\tconst source = getBlockBindingsSource( sourceName );\n\n\tlet displayText;\n\tlet isValid = true;\n\tconst isNotBound = binding === undefined;\n\n\tif ( isNotBound ) {\n\t\t// Check if there are any compatible sources for this attribute type.\n\t\tconst attributeType = getAttributeType( blockName, attribute );\n\n\t\tconst hasCompatibleSources = Object.values( sources ).some( ( items ) =>\n\t\t\titems.some( ( item ) => item.type === attributeType )\n\t\t);\n\n\t\tif ( ! hasCompatibleSources ) {\n\t\t\tdisplayText = __( 'No sources available' );\n\t\t} else {\n\t\t\tdisplayText = __( 'Not connected' );\n\t\t}\n\t\tisValid = true;\n\t} else if ( ! source ) {\n\t\t// If there's a binding but the source is not found, it's invalid.\n\t\tisValid = false;\n\t\tdisplayText = __( 'Source not registered' );\n\t} else {\n\t\tdisplayText =\n\t\t\tdata?.find( ( item ) => fastDeepEqual( item.args, args ) )?.label ||\n\t\t\tsource?.label ||\n\t\t\tsourceName;\n\t}\n\n\treturn (\n\t\t<VStack className=\"block-editor-bindings__item\" spacing={ 0 }>\n\t\t\t<Text truncate>{ attribute }</Text>\n\t\t\t<Text\n\t\t\t\ttruncate\n\t\t\t\tvariant={ isValid ? 'muted' : undefined }\n\t\t\t\tisDestructive={ ! isValid }\n\t\t\t>\n\t\t\t\t{ displayText }\n\t\t\t</Text>\n\t\t</VStack>\n\t);\n}\n\nfunction ReadOnlyBlockBindingsPanelItem( {\n\tattribute,\n\tbinding,\n\tsources,\n\tblockName,\n} ) {\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\n\treturn (\n\t\t<ToolsPanelItem hasValue={ () => !! binding } label={ attribute }>\n\t\t\t<Menu placement={ isMobile ? 'bottom-start' : 'left-start' }>\n\t\t\t\t<Menu.TriggerButton render={ <Item /> } disabled>\n\t\t\t\t\t<BlockBindingsAttribute\n\t\t\t\t\t\tattribute={ attribute }\n\t\t\t\t\t\tbinding={ binding }\n\t\t\t\t\t\tsources={ sources }\n\t\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\t/>\n\t\t\t\t</Menu.TriggerButton>\n\t\t\t</Menu>\n\t\t</ToolsPanelItem>\n\t);\n}\n\nfunction EditableBlockBindingsPanelItem( {\n\tattribute,\n\tbinding,\n\tsources,\n\tblockName,\n} ) {\n\tconst { updateBlockBindings } = useBlockBindingsUtils();\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\n\treturn (\n\t\t<ToolsPanelItem\n\t\t\thasValue={ () => !! binding }\n\t\t\tlabel={ attribute }\n\t\t\tonDeselect={ () => {\n\t\t\t\tupdateBlockBindings( {\n\t\t\t\t\t[ attribute ]: undefined,\n\t\t\t\t} );\n\t\t\t} }\n\t\t>\n\t\t\t<Menu placement={ isMobile ? 'bottom-start' : 'left-start' }>\n\t\t\t\t<Menu.TriggerButton render={ <Item /> }>\n\t\t\t\t\t<BlockBindingsAttribute\n\t\t\t\t\t\tattribute={ attribute }\n\t\t\t\t\t\tbinding={ binding }\n\t\t\t\t\t\tsources={ sources }\n\t\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\t/>\n\t\t\t\t</Menu.TriggerButton>\n\t\t\t\t<Menu.Popover gutter={ isMobile ? 8 : 36 }>\n\t\t\t\t\t<BlockBindingsPanelMenuContent\n\t\t\t\t\t\tattribute={ attribute }\n\t\t\t\t\t\tbinding={ binding }\n\t\t\t\t\t\tsources={ sources }\n\t\t\t\t\t/>\n\t\t\t\t</Menu.Popover>\n\t\t\t</Menu>\n\t\t</ToolsPanelItem>\n\t);\n}\n\nexport const BlockBindingsPanel = ( { name: blockName, metadata } ) => {\n\tconst blockContext = useContext( BlockContext );\n\tconst { removeAllBlockBindings } = useBlockBindingsUtils();\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\t// Use useSelect to ensure sources are updated whenever there are updates in block context\n\t// or when underlying data changes.\n\tconst { canUpdateBlockBindings, bindableAttributes } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { __experimentalBlockBindingsSupportedAttributes } =\n\t\t\t\tselect( blockEditorStore ).getSettings();\n\n\t\t\treturn {\n\t\t\t\tcanUpdateBlockBindings:\n\t\t\t\t\tselect( blockEditorStore ).getSettings()\n\t\t\t\t\t\t.canUpdateBlockBindings,\n\t\t\t\tbindableAttributes:\n\t\t\t\t\t__experimentalBlockBindingsSupportedAttributes?.[\n\t\t\t\t\t\tblockName\n\t\t\t\t\t],\n\t\t\t};\n\t\t},\n\t\t[ blockName ]\n\t);\n\n\tconst sources = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getAllBlockBindingsSources } = unlock(\n\t\t\t\tselect( blockStore )\n\t\t\t);\n\t\t\tconst data = {};\n\t\t\tObject.entries( getAllBlockBindingsSources() ).forEach(\n\t\t\t\t( [ sourceName, source ] ) => {\n\t\t\t\t\tif ( ! source.getFieldsList ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst context = {};\n\t\t\t\t\tif ( source.usesContext?.length ) {\n\t\t\t\t\t\tfor ( const key of source.usesContext ) {\n\t\t\t\t\t\t\tcontext[ key ] = blockContext[ key ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tconst items = source.getFieldsList( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t} );\n\t\t\t\t\tif ( items?.length ) {\n\t\t\t\t\t\tdata[ sourceName ] = items;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t\treturn data;\n\t\t},\n\t\t[ blockContext ]\n\t);\n\n\t// Return early if there are no bindable attributes.\n\tif ( ! bindableAttributes || bindableAttributes.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tconst { bindings } = metadata || {};\n\n\tconst hasCompatibleData = Object.keys( sources ).length > 0;\n\n\t// Lock the UI when the user can't update bindings or there are no fields to connect to.\n\tconst readOnly = ! canUpdateBlockBindings || ! hasCompatibleData;\n\n\tif ( bindings === undefined && ! hasCompatibleData ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<InspectorControls group=\"bindings\">\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Attributes' ) }\n\t\t\t\tresetAll={ () => {\n\t\t\t\t\tremoveAllBlockBindings();\n\t\t\t\t} }\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\tclassName=\"block-editor-bindings__panel\"\n\t\t\t>\n\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t{ bindableAttributes.map( ( attribute ) => {\n\t\t\t\t\t\tconst binding = bindings?.[ attribute ];\n\n\t\t\t\t\t\t// Check if this specific attribute has compatible data from any source.\n\t\t\t\t\t\tconst attributeType = getAttributeType(\n\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\tattribute\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst hasCompatibleDataForAttribute = Object.values(\n\t\t\t\t\t\t\tsources\n\t\t\t\t\t\t).some( ( data ) =>\n\t\t\t\t\t\t\tdata.some( ( item ) => item.type === attributeType )\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst isAttributeReadOnly =\n\t\t\t\t\t\t\treadOnly || ! hasCompatibleDataForAttribute;\n\n\t\t\t\t\t\treturn isAttributeReadOnly ? (\n\t\t\t\t\t\t\t<ReadOnlyBlockBindingsPanelItem\n\t\t\t\t\t\t\t\tkey={ attribute }\n\t\t\t\t\t\t\t\tattribute={ attribute }\n\t\t\t\t\t\t\t\tbinding={ binding }\n\t\t\t\t\t\t\t\tsources={ sources }\n\t\t\t\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<EditableBlockBindingsPanelItem\n\t\t\t\t\t\t\t\tkey={ attribute }\n\t\t\t\t\t\t\t\tattribute={ attribute }\n\t\t\t\t\t\t\t\tbinding={ binding }\n\t\t\t\t\t\t\t\tsources={ sources }\n\t\t\t\t\t\t\t\tblockName={ blockName }\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</ItemGroup>\n\t\t\t\t{ /*\n\t\t\t\t\tUse a div element to make the ToolsPanelHiddenInnerWrapper\n\t\t\t\t\ttoggle the visibility of this help text automatically.\n\t\t\t\t*/ }\n\t\t\t\t<Text as=\"div\" variant=\"muted\">\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Attributes connected to custom fields or other dynamic data.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t</Text>\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n};\n\nexport default {\n\tedit: BlockBindingsPanel,\n\tattributeKeys: [ 'metadata' ],\n\thasSupport( name ) {\n\t\treturn ! [\n\t\t\t'core/post-date',\n\t\t\t'core/navigation-link',\n\t\t\t'core/navigation-submenu',\n\t\t].includes( name );\n\t},\n};\n"],
|
|
5
|
-
"mappings": ";AAGA,
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalText as Text,\n\t__experimentalToolsPanel as ToolsPanel,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { useContext } from '@wordpress/element';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport {\n\tBlockBindingsAttributeControl,\n\tuseBlockBindingsUtils,\n} from '../components/block-bindings';\nimport { unlock } from '../lock-unlock';\nimport InspectorControls from '../components/inspector-controls';\nimport BlockContext from '../components/block-context';\nimport { store as blockEditorStore } from '../store';\n\nconst useToolsPanelDropdownMenuProps = () => {\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\treturn ! isMobile\n\t\t? {\n\t\t\t\tpopoverProps: {\n\t\t\t\t\tplacement: 'left-start',\n\t\t\t\t\t// For non-mobile, inner sidebar width (248px) - button width (24px) - border (1px) + padding (16px) + spacing (20px)\n\t\t\t\t\toffset: 259,\n\t\t\t\t},\n\t\t }\n\t\t: {};\n};\n\nexport const BlockBindingsPanel = ( { name: blockName, metadata } ) => {\n\tconst blockContext = useContext( BlockContext );\n\tconst { removeAllBlockBindings } = useBlockBindingsUtils();\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst { bindableAttributes, hasCompatibleFields } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { __experimentalBlockBindingsSupportedAttributes } =\n\t\t\t\tselect( blockEditorStore ).getSettings();\n\t\t\tconst {\n\t\t\t\tgetAllBlockBindingsSources,\n\t\t\t\tgetBlockBindingsSourceFieldsList,\n\t\t\t} = unlock( select( blocksStore ) );\n\n\t\t\treturn {\n\t\t\t\tbindableAttributes:\n\t\t\t\t\t__experimentalBlockBindingsSupportedAttributes?.[\n\t\t\t\t\t\tblockName\n\t\t\t\t\t],\n\t\t\t\thasCompatibleFields: Object.values(\n\t\t\t\t\tgetAllBlockBindingsSources()\n\t\t\t\t).some(\n\t\t\t\t\t( source ) =>\n\t\t\t\t\t\tgetBlockBindingsSourceFieldsList( source, blockContext )\n\t\t\t\t\t\t\t?.length > 0\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ blockName, blockContext ]\n\t);\n\n\t// Return early if there are no bindable attributes.\n\tif ( ! bindableAttributes || bindableAttributes.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tconst { bindings } = metadata || {};\n\n\tif ( bindings === undefined && ! hasCompatibleFields ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<InspectorControls group=\"bindings\">\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Attributes' ) }\n\t\t\t\tresetAll={ () => {\n\t\t\t\t\tremoveAllBlockBindings();\n\t\t\t\t} }\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\tclassName=\"block-editor-bindings__panel\"\n\t\t\t>\n\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t{ bindableAttributes.map( ( attribute ) => (\n\t\t\t\t\t\t<BlockBindingsAttributeControl\n\t\t\t\t\t\t\tkey={ attribute }\n\t\t\t\t\t\t\tattribute={ attribute }\n\t\t\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\t\t\tbinding={ bindings?.[ attribute ] }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t</ItemGroup>\n\t\t\t\t{ /*\n\t\t\t\t\tUse a div element to make the ToolsPanelHiddenInnerWrapper\n\t\t\t\t\ttoggle the visibility of this help text automatically.\n\t\t\t\t*/ }\n\t\t\t\t<Text as=\"div\" variant=\"muted\">\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Attributes connected to custom fields or other dynamic data.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t</Text>\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n};\n\nexport default {\n\tedit: BlockBindingsPanel,\n\tattributeKeys: [ 'metadata' ],\n\thasSupport( name ) {\n\t\treturn ! [\n\t\t\t'core/post-date',\n\t\t\t'core/navigation-link',\n\t\t\t'core/navigation-submenu',\n\t\t].includes( name );\n\t},\n};\n"],
|
|
5
|
+
"mappings": ";AAGA,SAAS,UAAU;AACnB,SAAS,SAAS,mBAAmB;AACrC;AAAA,EACC,2BAA2B;AAAA,EAC3B,sBAAsB;AAAA,EACtB,4BAA4B;AAAA,OACtB;AACP,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB;AAC3B,SAAS,wBAAwB;AAKjC;AAAA,EACC;AAAA,EACA;AAAA,OACM;AACP,SAAS,cAAc;AACvB,OAAO,uBAAuB;AAC9B,OAAO,kBAAkB;AACzB,SAAS,SAAS,wBAAwB;AA2DvC,SAUG,KAVH;AAzDH,IAAM,iCAAiC,MAAM;AAC5C,QAAM,WAAW,iBAAkB,UAAU,GAAI;AACjD,SAAO,CAAE,WACN;AAAA,IACA,cAAc;AAAA,MACb,WAAW;AAAA;AAAA,MAEX,QAAQ;AAAA,IACT;AAAA,EACA,IACA,CAAC;AACL;AAEO,IAAM,qBAAqB,CAAE,EAAE,MAAM,WAAW,SAAS,MAAO;AACtE,QAAM,eAAe,WAAY,YAAa;AAC9C,QAAM,EAAE,uBAAuB,IAAI,sBAAsB;AACzD,QAAM,oBAAoB,+BAA+B;AAEzD,QAAM,EAAE,oBAAoB,oBAAoB,IAAI;AAAA,IACnD,CAAE,WAAY;AACb,YAAM,EAAE,+CAA+C,IACtD,OAAQ,gBAAiB,EAAE,YAAY;AACxC,YAAM;AAAA,QACL;AAAA,QACA;AAAA,MACD,IAAI,OAAQ,OAAQ,WAAY,CAAE;AAElC,aAAO;AAAA,QACN,oBACC,iDACC,SACD;AAAA,QACD,qBAAqB,OAAO;AAAA,UAC3B,2BAA2B;AAAA,QAC5B,EAAE;AAAA,UACD,CAAE,WACD,iCAAkC,QAAQ,YAAa,GACpD,SAAS;AAAA,QACd;AAAA,MACD;AAAA,IACD;AAAA,IACA,CAAE,WAAW,YAAa;AAAA,EAC3B;AAGA,MAAK,CAAE,sBAAsB,mBAAmB,WAAW,GAAI;AAC9D,WAAO;AAAA,EACR;AAEA,QAAM,EAAE,SAAS,IAAI,YAAY,CAAC;AAElC,MAAK,aAAa,UAAa,CAAE,qBAAsB;AACtD,WAAO;AAAA,EACR;AAEA,SACC,oBAAC,qBAAkB,OAAM,YACxB;AAAA,IAAC;AAAA;AAAA,MACA,OAAQ,GAAI,YAAa;AAAA,MACzB,UAAW,MAAM;AAChB,+BAAuB;AAAA,MACxB;AAAA,MACA;AAAA,MACA,WAAU;AAAA,MAEV;AAAA,4BAAC,aAAU,YAAU,MAAC,aAAW,MAC9B,6BAAmB,IAAK,CAAE,cAC3B;AAAA,UAAC;AAAA;AAAA,YAEA;AAAA,YACA;AAAA,YACA,SAAU,WAAY,SAAU;AAAA;AAAA,UAH1B;AAAA,QAIP,CACC,GACH;AAAA,QAKA,oBAAC,QAAK,IAAG,OAAM,SAAQ,SACtB,8BAAC,OACE;AAAA,UACD;AAAA,QACD,GACD,GACD;AAAA;AAAA;AAAA,EACD,GACD;AAEF;AAEA,IAAO,yBAAQ;AAAA,EACd,MAAM;AAAA,EACN,eAAe,CAAE,UAAW;AAAA,EAC5B,WAAY,MAAO;AAClB,WAAO,CAAE;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,IACD,EAAE,SAAU,IAAK;AAAA,EAClB;AACD;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|