@wordpress/block-editor 8.2.0 → 8.2.1-next.a55ed9455a.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 +6 -2
- package/build/autocompleters/link.js +78 -0
- package/build/autocompleters/link.js.map +1 -0
- package/build/components/autocomplete/index.js +3 -1
- package/build/components/autocomplete/index.js.map +1 -1
- package/build/components/block-actions/index.js +1 -1
- package/build/components/block-actions/index.js.map +1 -1
- package/build/components/block-breadcrumb/index.js +4 -2
- package/build/components/block-breadcrumb/index.js.map +1 -1
- package/build/components/block-compare/index.js +2 -2
- package/build/components/block-compare/index.js.map +1 -1
- package/build/components/block-controls/index.js +1 -1
- package/build/components/block-controls/index.js.map +1 -1
- package/build/components/block-draggable/index.js +1 -1
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-edit/edit.js +1 -1
- package/build/components/block-edit/edit.js.map +1 -1
- package/build/components/block-list/block-html.js +1 -1
- package/build/components/block-list/block-html.js.map +1 -1
- package/build/components/block-list/block-invalid-warning.js +1 -1
- package/build/components/block-list/block-invalid-warning.js.map +1 -1
- package/build/components/block-list/block-list-item.native.js +4 -4
- package/build/components/block-list/block-list-item.native.js.map +1 -1
- package/build/components/block-list/block-selection-button.native.js +4 -3
- package/build/components/block-list/block-selection-button.native.js.map +1 -1
- package/build/components/block-list/block.js +1 -1
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +5 -5
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/index.native.js +5 -5
- package/build/components/block-list/index.native.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-class-names.js +1 -1
- package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
- package/build/components/block-media-update-progress/index.native.js +4 -4
- package/build/components/block-media-update-progress/index.native.js.map +1 -1
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js +3 -3
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build/components/block-mobile-toolbar/index.native.js +1 -1
- package/build/components/block-mobile-toolbar/index.native.js.map +1 -1
- package/build/components/block-mover/mover-description.js +4 -4
- package/build/components/block-mover/mover-description.js.map +1 -1
- package/build/components/block-mover/mover-description.native.js +5 -5
- package/build/components/block-mover/mover-description.native.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +7 -12
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-styles/preview.native.js +1 -1
- package/build/components/block-styles/preview.native.js.map +1 -1
- package/build/components/block-switcher/index.js +2 -1
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-switcher/use-transformed-patterns.js +0 -1
- package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
- package/build/components/block-title/index.js +7 -62
- package/build/components/block-title/index.js.map +1 -1
- package/build/components/block-title/use-block-display-title.js +94 -0
- package/build/components/block-title/use-block-display-title.js.map +1 -0
- package/build/components/block-toolbar/utils.js +9 -1
- package/build/components/block-toolbar/utils.js.map +1 -1
- package/build/components/block-tools/block-popover.js +1 -1
- package/build/components/block-tools/block-popover.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +2 -1
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-types-list/index.native.js +1 -1
- package/build/components/block-types-list/index.native.js.map +1 -1
- package/build/components/border-radius-control/index.js +2 -2
- package/build/components/border-radius-control/index.js.map +1 -1
- package/build/components/border-radius-control/utils.js +10 -6
- package/build/components/border-radius-control/utils.js.map +1 -1
- package/build/components/contrast-checker/index.js +3 -3
- package/build/components/contrast-checker/index.js.map +1 -1
- package/build/components/convert-to-group-buttons/index.js +1 -1
- package/build/components/convert-to-group-buttons/index.js.map +1 -1
- package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js +1 -3
- package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
- package/build/components/copy-handler/index.js +3 -3
- package/build/components/copy-handler/index.js.map +1 -1
- package/build/components/font-sizes/with-font-sizes.js +3 -3
- package/build/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build/components/index.native.js +29 -1
- package/build/components/index.native.js.map +1 -1
- package/build/components/inserter/block-patterns-tab.js +1 -1
- package/build/components/inserter/block-patterns-tab.js.map +1 -1
- package/build/components/inserter/block-types-tab.js +1 -1
- package/build/components/inserter/block-types-tab.js.map +1 -1
- package/build/components/inserter/hooks/use-block-type-impressions.native.js +2 -2
- package/build/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
- package/build/components/inserter/index.js +3 -3
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/index.native.js +7 -7
- package/build/components/inserter/index.native.js.map +1 -1
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/menu.native.js +3 -3
- package/build/components/inserter/menu.native.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +1 -1
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter/search-items.js +1 -1
- package/build/components/inserter/search-items.js.map +1 -1
- package/build/components/inserter/search-results.js +1 -1
- package/build/components/inserter/search-results.js.map +1 -1
- package/build/components/keyboard-shortcuts/index.js +1 -1
- package/build/components/keyboard-shortcuts/index.js.map +1 -1
- package/build/components/letter-spacing-control/index.js +3 -3
- package/build/components/letter-spacing-control/index.js.map +1 -1
- package/build/components/line-height-control/index.js +4 -4
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/line-height-control/index.native.js +3 -1
- package/build/components/line-height-control/index.native.js.map +1 -1
- package/build/components/link-control/index.js +2 -2
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/search-input.js +1 -1
- package/build/components/link-control/search-input.js.map +1 -1
- package/build/components/link-control/search-results.js +2 -2
- package/build/components/link-control/search-results.js.map +1 -1
- package/build/components/link-control/use-rich-url-data.js +1 -1
- package/build/components/link-control/use-rich-url-data.js.map +1 -1
- package/build/components/link-control/use-search-handler.js +2 -2
- package/build/components/link-control/use-search-handler.js.map +1 -1
- package/build/components/list-view/block-select-button.js +2 -1
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +1 -1
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/media-placeholder/index.native.js +7 -5
- package/build/components/media-placeholder/index.native.js.map +1 -1
- package/build/components/media-replace-flow/index.js +20 -24
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/media-upload/index.native.js +4 -3
- package/build/components/media-upload/index.native.js.map +1 -1
- package/build/components/media-upload-progress/index.native.js +1 -1
- package/build/components/media-upload-progress/index.native.js.map +1 -1
- package/build/components/navigable-toolbar/index.js +3 -3
- package/build/components/navigable-toolbar/index.js.map +1 -1
- package/build/components/plain-text/index.native.js +3 -3
- package/build/components/plain-text/index.native.js.map +1 -1
- package/build/components/rich-text/format-toolbar-container.js +2 -2
- package/build/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build/components/rich-text/format-toolbar-container.native.js +1 -1
- package/build/components/rich-text/format-toolbar-container.native.js.map +1 -1
- package/build/components/rich-text/index.native.js +3 -3
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/use-paste-handler.js +7 -11
- package/build/components/rich-text/use-paste-handler.js.map +1 -1
- package/build/components/url-input/index.js +11 -11
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/use-moving-animation/index.js +1 -1
- package/build/components/use-moving-animation/index.js.map +1 -1
- package/build/components/use-on-block-drop/index.js +2 -2
- package/build/components/use-on-block-drop/index.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +4 -3
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/hooks/align.js +1 -1
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/anchor.js +1 -1
- package/build/hooks/anchor.js.map +1 -1
- package/build/hooks/border.js +2 -14
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color.js +2 -2
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/generated-class-name.js +3 -3
- package/build/hooks/generated-class-name.js.map +1 -1
- package/build/hooks/lock.js +1 -1
- package/build/hooks/lock.js.map +1 -1
- package/build/hooks/style.js +5 -2
- package/build/hooks/style.js.map +1 -1
- package/build/store/actions.js +4 -4
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.js +1 -1
- package/build/store/defaults.js.map +1 -1
- package/build/store/reducer.js +11 -11
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +6 -6
- package/build/store/selectors.js.map +1 -1
- package/build/utils/parse-css-unit-to-px.js +3 -3
- package/build/utils/parse-css-unit-to-px.js.map +1 -1
- package/build/utils/pasting.js +91 -0
- package/build/utils/pasting.js.map +1 -0
- package/build/utils/transform-styles/ast/parse.js +5 -5
- package/build/utils/transform-styles/ast/parse.js.map +1 -1
- package/build/utils/transform-styles/transforms/url-rewrite.js +2 -2
- package/build/utils/transform-styles/transforms/url-rewrite.js.map +1 -1
- package/build-module/autocompleters/link.js +64 -0
- package/build-module/autocompleters/link.js.map +1 -0
- package/build-module/components/autocomplete/index.js +2 -1
- package/build-module/components/autocomplete/index.js.map +1 -1
- package/build-module/components/block-actions/index.js +1 -1
- package/build-module/components/block-actions/index.js.map +1 -1
- package/build-module/components/block-breadcrumb/index.js +4 -2
- package/build-module/components/block-breadcrumb/index.js.map +1 -1
- package/build-module/components/block-compare/index.js +2 -2
- package/build-module/components/block-compare/index.js.map +1 -1
- package/build-module/components/block-controls/index.js +1 -1
- package/build-module/components/block-controls/index.js.map +1 -1
- package/build-module/components/block-draggable/index.js +1 -1
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-edit/edit.js +1 -1
- package/build-module/components/block-edit/edit.js.map +1 -1
- package/build-module/components/block-list/block-html.js +1 -1
- package/build-module/components/block-list/block-html.js.map +1 -1
- package/build-module/components/block-list/block-invalid-warning.js +1 -1
- package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
- package/build-module/components/block-list/block-list-item.native.js +4 -4
- package/build-module/components/block-list/block-list-item.native.js.map +1 -1
- package/build-module/components/block-list/block-selection-button.native.js +4 -3
- package/build-module/components/block-list/block-selection-button.native.js.map +1 -1
- package/build-module/components/block-list/block.js +1 -1
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +5 -5
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/index.native.js +5 -5
- package/build-module/components/block-list/index.native.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-block-class-names.js +1 -1
- package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
- package/build-module/components/block-media-update-progress/index.native.js +4 -4
- package/build-module/components/block-media-update-progress/index.native.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +3 -3
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/index.native.js +1 -1
- package/build-module/components/block-mobile-toolbar/index.native.js.map +1 -1
- package/build-module/components/block-mover/mover-description.js +4 -4
- package/build-module/components/block-mover/mover-description.js.map +1 -1
- package/build-module/components/block-mover/mover-description.native.js +5 -5
- package/build-module/components/block-mover/mover-description.native.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +7 -13
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-styles/preview.native.js +1 -1
- package/build-module/components/block-styles/preview.native.js.map +1 -1
- package/build-module/components/block-switcher/index.js +2 -1
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-switcher/use-transformed-patterns.js +0 -1
- package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
- package/build-module/components/block-title/index.js +7 -58
- package/build-module/components/block-title/index.js.map +1 -1
- package/build-module/components/block-title/use-block-display-title.js +80 -0
- package/build-module/components/block-title/use-block-display-title.js.map +1 -0
- package/build-module/components/block-toolbar/utils.js +9 -1
- package/build-module/components/block-toolbar/utils.js.map +1 -1
- package/build-module/components/block-tools/block-popover.js +1 -1
- package/build-module/components/block-tools/block-popover.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +2 -1
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-types-list/index.native.js +1 -1
- package/build-module/components/block-types-list/index.native.js.map +1 -1
- package/build-module/components/border-radius-control/index.js +3 -3
- package/build-module/components/border-radius-control/index.js.map +1 -1
- package/build-module/components/border-radius-control/utils.js +11 -7
- package/build-module/components/border-radius-control/utils.js.map +1 -1
- package/build-module/components/contrast-checker/index.js +3 -3
- package/build-module/components/contrast-checker/index.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/index.js +1 -1
- package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +1 -3
- package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
- package/build-module/components/copy-handler/index.js +2 -2
- package/build-module/components/copy-handler/index.js.map +1 -1
- package/build-module/components/font-sizes/with-font-sizes.js +3 -3
- package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build-module/components/index.native.js +4 -4
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab.js +1 -1
- package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.js +1 -1
- package/build-module/components/inserter/block-types-tab.js.map +1 -1
- package/build-module/components/inserter/hooks/use-block-type-impressions.native.js +2 -2
- package/build-module/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
- package/build-module/components/inserter/index.js +3 -3
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/index.native.js +7 -7
- package/build-module/components/inserter/index.native.js.map +1 -1
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/menu.native.js +3 -3
- package/build-module/components/inserter/menu.native.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +1 -1
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter/search-items.js +1 -1
- package/build-module/components/inserter/search-items.js.map +1 -1
- package/build-module/components/inserter/search-results.js +1 -1
- package/build-module/components/inserter/search-results.js.map +1 -1
- package/build-module/components/keyboard-shortcuts/index.js +1 -1
- package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
- package/build-module/components/letter-spacing-control/index.js +3 -3
- package/build-module/components/letter-spacing-control/index.js.map +1 -1
- package/build-module/components/line-height-control/index.js +4 -4
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/line-height-control/index.native.js +3 -1
- package/build-module/components/line-height-control/index.native.js.map +1 -1
- package/build-module/components/link-control/index.js +2 -2
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/search-input.js +1 -1
- package/build-module/components/link-control/search-input.js.map +1 -1
- package/build-module/components/link-control/search-results.js +2 -2
- package/build-module/components/link-control/search-results.js.map +1 -1
- package/build-module/components/link-control/use-rich-url-data.js +1 -1
- package/build-module/components/link-control/use-rich-url-data.js.map +1 -1
- package/build-module/components/link-control/use-search-handler.js +2 -2
- package/build-module/components/link-control/use-search-handler.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +2 -1
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +1 -1
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/media-placeholder/index.native.js +7 -5
- package/build-module/components/media-placeholder/index.native.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +22 -27
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/media-upload/index.native.js +4 -3
- package/build-module/components/media-upload/index.native.js.map +1 -1
- package/build-module/components/media-upload-progress/index.native.js +1 -1
- package/build-module/components/media-upload-progress/index.native.js.map +1 -1
- package/build-module/components/navigable-toolbar/index.js +3 -3
- package/build-module/components/navigable-toolbar/index.js.map +1 -1
- package/build-module/components/plain-text/index.native.js +3 -3
- package/build-module/components/plain-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar-container.js +2 -2
- package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar-container.native.js +1 -1
- package/build-module/components/rich-text/format-toolbar-container.native.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +3 -3
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/use-paste-handler.js +6 -11
- package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
- package/build-module/components/url-input/index.js +11 -11
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/use-moving-animation/index.js +1 -1
- package/build-module/components/use-moving-animation/index.js.map +1 -1
- package/build-module/components/use-on-block-drop/index.js +2 -2
- package/build-module/components/use-on-block-drop/index.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +4 -3
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/hooks/align.js +1 -1
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/anchor.js +1 -1
- package/build-module/hooks/anchor.js.map +1 -1
- package/build-module/hooks/border.js +2 -14
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color.js +2 -2
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/generated-class-name.js +3 -3
- package/build-module/hooks/generated-class-name.js.map +1 -1
- package/build-module/hooks/lock.js +1 -1
- package/build-module/hooks/lock.js.map +1 -1
- package/build-module/hooks/style.js +5 -2
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/store/actions.js +4 -4
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.js +1 -1
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/reducer.js +11 -11
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +6 -6
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/parse-css-unit-to-px.js +3 -3
- package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
- package/build-module/utils/pasting.js +80 -0
- package/build-module/utils/pasting.js.map +1 -0
- package/build-module/utils/transform-styles/ast/parse.js +5 -5
- package/build-module/utils/transform-styles/ast/parse.js.map +1 -1
- package/build-module/utils/transform-styles/transforms/url-rewrite.js +2 -2
- package/build-module/utils/transform-styles/transforms/url-rewrite.js.map +1 -1
- package/build-style/style-rtl.css +7 -0
- package/build-style/style.css +7 -0
- package/package.json +27 -27
- package/src/autocompleters/link.js +62 -0
- package/src/autocompleters/style.scss +8 -0
- package/src/components/alignment-control/test/index.js +2 -2
- package/src/components/autocomplete/index.js +2 -0
- package/src/components/block-actions/index.js +1 -1
- package/src/components/block-alignment-control/test/index.js +1 -1
- package/src/components/block-breadcrumb/index.js +5 -2
- package/src/components/block-compare/index.js +2 -2
- package/src/components/block-controls/index.js +1 -1
- package/src/components/block-draggable/index.js +1 -1
- package/src/components/block-draggable/stories/index.js +1 -1
- package/src/components/block-edit/edit.js +1 -1
- package/src/components/block-list/block-html.js +1 -1
- package/src/components/block-list/block-invalid-warning.js +1 -1
- package/src/components/block-list/block-list-item.native.js +4 -4
- package/src/components/block-list/block-selection-button.native.js +3 -3
- package/src/components/block-list/block.js +1 -1
- package/src/components/block-list/block.native.js +5 -5
- package/src/components/block-list/index.native.js +5 -5
- package/src/components/block-list/use-block-props/use-block-class-names.js +1 -1
- package/src/components/block-media-update-progress/index.native.js +4 -4
- package/src/components/block-media-update-progress/test/index.native.js +2 -2
- package/src/components/block-mobile-toolbar/block-actions-menu.native.js +3 -3
- package/src/components/block-mobile-toolbar/index.native.js +2 -2
- package/src/components/block-mover/mover-description.js +4 -4
- package/src/components/block-mover/mover-description.native.js +5 -5
- package/src/components/block-settings-menu/block-settings-dropdown.js +7 -8
- package/src/components/block-styles/preview.native.js +1 -1
- package/src/components/block-switcher/index.js +4 -1
- package/src/components/block-switcher/use-transformed-patterns.js +0 -1
- package/src/components/block-title/README.md +17 -1
- package/src/components/block-title/index.js +7 -62
- package/src/components/block-title/test/index.js +21 -3
- package/src/components/block-title/use-block-display-title.js +83 -0
- package/src/components/block-toolbar/utils.js +12 -2
- package/src/components/block-tools/block-popover.js +1 -1
- package/src/components/block-tools/block-selection-button.js +4 -1
- package/src/components/block-types-list/index.native.js +1 -1
- package/src/components/border-radius-control/index.js +5 -3
- package/src/components/border-radius-control/test/utils.js +10 -10
- package/src/components/border-radius-control/utils.js +10 -8
- package/src/components/contrast-checker/index.js +3 -3
- package/src/components/convert-to-group-buttons/index.js +1 -1
- package/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js +1 -6
- package/src/components/copy-handler/index.js +2 -2
- package/src/components/font-sizes/with-font-sizes.js +3 -3
- package/src/components/image-size-control/test/index.js +1 -1
- package/src/components/index.native.js +10 -4
- package/src/components/inserter/block-patterns-tab.js +1 -1
- package/src/components/inserter/block-types-tab.js +1 -1
- package/src/components/inserter/hooks/use-block-type-impressions.native.js +2 -2
- package/src/components/inserter/index.js +3 -3
- package/src/components/inserter/index.native.js +7 -7
- package/src/components/inserter/menu.js +1 -1
- package/src/components/inserter/menu.native.js +3 -3
- package/src/components/inserter/quick-inserter.js +1 -1
- package/src/components/inserter/search-items.js +1 -1
- package/src/components/inserter/search-results.js +1 -1
- package/src/components/inserter/test/fixtures/index.native.js +1 -1
- package/src/components/inserter/test/reusable-blocks-tab.js +2 -2
- package/src/components/justify-content-control/README.md +1 -1
- package/src/components/keyboard-shortcuts/index.js +1 -1
- package/src/components/letter-spacing-control/index.js +1 -1
- package/src/components/line-height-control/index.js +4 -4
- package/src/components/line-height-control/index.native.js +2 -0
- package/src/components/link-control/index.js +2 -2
- package/src/components/link-control/search-input.js +1 -1
- package/src/components/link-control/search-results.js +2 -2
- package/src/components/link-control/test/index.js +142 -144
- package/src/components/link-control/use-rich-url-data.js +1 -1
- package/src/components/link-control/use-search-handler.js +2 -2
- package/src/components/list-view/block-select-button.js +1 -1
- package/src/components/list-view/block.js +1 -1
- package/src/components/media-placeholder/index.native.js +11 -9
- package/src/components/media-replace-flow/README.md +7 -0
- package/src/components/media-replace-flow/index.js +20 -26
- package/src/components/media-replace-flow/test/index.js +100 -0
- package/src/components/media-upload/index.native.js +3 -2
- package/src/components/media-upload-progress/index.native.js +1 -1
- package/src/components/navigable-toolbar/index.js +3 -3
- package/src/components/plain-text/index.native.js +3 -3
- package/src/components/responsive-block-control/test/index.js +6 -6
- package/src/components/rich-text/format-toolbar-container.js +2 -2
- package/src/components/rich-text/format-toolbar-container.native.js +1 -1
- package/src/components/rich-text/index.native.js +3 -3
- package/src/components/rich-text/use-paste-handler.js +7 -13
- package/src/components/url-input/index.js +11 -11
- package/src/components/use-block-drop-zone/test/index.js +1 -1
- package/src/components/use-moving-animation/index.js +1 -1
- package/src/components/use-on-block-drop/index.js +2 -2
- package/src/components/writing-flow/use-tab-nav.js +6 -3
- package/src/hooks/align.js +1 -1
- package/src/hooks/anchor.js +1 -1
- package/src/hooks/border.js +8 -19
- package/src/hooks/color.js +2 -2
- package/src/hooks/generated-class-name.js +3 -3
- package/src/hooks/lock.js +1 -1
- package/src/hooks/style.js +5 -2
- package/src/hooks/test/align.js +1 -1
- package/src/store/actions.js +4 -4
- package/src/store/defaults.js +1 -2
- package/src/store/reducer.js +11 -11
- package/src/store/selectors.js +6 -6
- package/src/store/test/actions.js +1 -1
- package/src/store/test/reducer.js +1 -1
- package/src/store/test/selectors.js +1 -1
- package/src/utils/parse-css-unit-to-px.js +3 -3
- package/src/utils/pasting.js +77 -0
- package/src/utils/test/parse-css-unit-to-px.js +5 -5
- package/src/utils/test/pasting.js +84 -0
- package/src/utils/transform-styles/ast/parse.js +5 -5
- package/src/utils/transform-styles/transforms/url-rewrite.js +2 -2
- package/build/utils/get-paste-event-data.js +0 -56
- package/build/utils/get-paste-event-data.js.map +0 -1
- package/build-module/utils/get-paste-event-data.js +0 -47
- package/build-module/utils/get-paste-event-data.js.map +0 -1
- package/src/utils/get-paste-event-data.js +0 -42
|
@@ -104,7 +104,7 @@ function parseUnitFunction(cssUnit) {
|
|
|
104
104
|
if (matches[0]) {
|
|
105
105
|
const functionUnitValue = getFunctionUnitValue(matches[0]);
|
|
106
106
|
cssUnit = cssUnit.replace(matches[0], functionUnitValue);
|
|
107
|
-
} //
|
|
107
|
+
} // If the unit hasn't been modified or we have a single value break free.
|
|
108
108
|
|
|
109
109
|
|
|
110
110
|
if (cssUnit === currentCssUnit || parseFloat(cssUnit)) {
|
|
@@ -149,7 +149,7 @@ function evalMathExpression(cssUnit) {
|
|
|
149
149
|
const parsedUnit = parseUnit(getPxFromCssUnit(unit));
|
|
150
150
|
|
|
151
151
|
if (!parseFloat(parsedUnit.value)) {
|
|
152
|
-
errorFound = true; //
|
|
152
|
+
errorFound = true; // End early since we are dealing with a null value.
|
|
153
153
|
|
|
154
154
|
break;
|
|
155
155
|
}
|
|
@@ -190,7 +190,7 @@ function convertParsedUnitToPx(parsedUnit, options) {
|
|
|
190
190
|
ch: 8,
|
|
191
191
|
// The advance measure (width) of the glyph "0" of the element's font. Approximate
|
|
192
192
|
ex: 7.15625,
|
|
193
|
-
//
|
|
193
|
+
// X-height of the element's font. Approximate.
|
|
194
194
|
lh: setOptions.lineHeight
|
|
195
195
|
};
|
|
196
196
|
const absoluteUnits = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/utils/parse-css-unit-to-px.js"],"names":["parseUnit","cssUnit","match","trim","isNaN","parseFloat","value","unit","undefined","calculate","expression","Function","getFunctionUnitValue","functionUnitValue","options","functionUnit","split","filter","Boolean","units","slice","map","getPxFromCssUnit","Math","min","max","length","parseUnitFunction","currentCssUnit","regExp","matches","exec","replace","isMathExpression","i","includes","evalMathExpression","errorFound","cssUnitsBits","parsedUnit","toFixed","convertParsedUnitToPx","PIXELS_PER_INCH","ONE_PERCENT","defaultProperties","fontSize","lineHeight","width","height","type","setOptions","Object","assign","relativeUnits","em","rem","vh","vw","vmin","vmax","ch","ex","lh","absoluteUnits","in","cm","mm","pt","pc","px","Q","Number","isFinite","cache","memoizedGetPxFromCssUnit","hash","hashOptions","hasOwnProperty"],"mappings":"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","sourcesContent":["/**\n * Converts string to object { value, unit }.\n *\n * @param {string} cssUnit\n * @return {Object} parsedUnit\n */\nfunction parseUnit( cssUnit ) {\n\tconst match = cssUnit\n\t\t?.trim()\n\t\t.match(\n\t\t\t/^(0?[-.]?\\d*\\.?\\d+)(r?e[m|x]|v[h|w|min|max]+|p[x|t|c]|[c|m]m|%|in|ch|Q|lh)$/\n\t\t);\n\tif ( ! isNaN( cssUnit ) && ! isNaN( parseFloat( cssUnit ) ) ) {\n\t\treturn { value: parseFloat( cssUnit ), unit: 'px' };\n\t}\n\treturn match\n\t\t? { value: parseFloat( match[ 1 ] ) || match[ 1 ], unit: match[ 2 ] }\n\t\t: { value: cssUnit, unit: undefined };\n}\n/**\n * Evaluate a math expression.\n *\n * @param {string} expression\n * @return {number} evaluated expression.\n */\nfunction calculate( expression ) {\n\treturn Function( `'use strict'; return (${ expression })` )();\n}\n\n/**\n * Calculates the css function value for the supported css functions such as max, min, clamp and calc.\n *\n * @param {string} functionUnitValue string should be in a particular format (for example min(12px,12px) ) no nested loops.\n * @param {Object} options\n * @return {string} unit containing the unit in PX.\n */\nfunction getFunctionUnitValue( functionUnitValue, options ) {\n\tconst functionUnit = functionUnitValue.split( /[(),]/g ).filter( Boolean );\n\n\tconst units = functionUnit\n\t\t.slice( 1 )\n\t\t.map( ( unit ) => parseUnit( getPxFromCssUnit( unit, options ) ).value )\n\t\t.filter( Boolean );\n\n\tswitch ( functionUnit[ 0 ] ) {\n\t\tcase 'min':\n\t\t\treturn Math.min( ...units ) + 'px';\n\t\tcase 'max':\n\t\t\treturn Math.max( ...units ) + 'px';\n\t\tcase 'clamp':\n\t\t\tif ( units.length !== 3 ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tif ( units[ 1 ] < units[ 0 ] ) {\n\t\t\t\treturn units[ 0 ] + 'px';\n\t\t\t}\n\t\t\tif ( units[ 1 ] > units[ 2 ] ) {\n\t\t\t\treturn units[ 2 ] + 'px';\n\t\t\t}\n\t\t\treturn units[ 1 ] + 'px';\n\t\tcase 'calc':\n\t\t\treturn units[ 0 ] + 'px';\n\t}\n}\n\n/**\n * Take a css function such as min, max, calc, clamp and returns parsedUnit\n *\n * How this works for the nested function is that it first replaces the inner function call.\n * Then it tackles the outer onces.\n * So for example: min( max(25px, 35px), 40px )\n * in the first pass we would replace max(25px, 35px) with 35px.\n * then we would try to evaluate min( 35px, 40px )\n * and then finally return 35px.\n *\n * @param {string} cssUnit\n * @return {Object} parsedUnit object.\n */\nfunction parseUnitFunction( cssUnit ) {\n\twhile ( true ) {\n\t\tconst currentCssUnit = cssUnit;\n\t\tconst regExp = /(max|min|calc|clamp)\\(([^()]*)\\)/g;\n\t\tconst matches = regExp.exec( cssUnit ) || [];\n\t\tif ( matches[ 0 ] ) {\n\t\t\tconst functionUnitValue = getFunctionUnitValue( matches[ 0 ] );\n\t\t\tcssUnit = cssUnit.replace( matches[ 0 ], functionUnitValue );\n\t\t}\n\n\t\t// if the unit hasn't been modified or we have a single value break free.\n\t\tif ( cssUnit === currentCssUnit || parseFloat( cssUnit ) ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn parseUnit( cssUnit );\n}\n/**\n * Return true if we think this is a math expression.\n *\n * @param {string} cssUnit the cssUnit value being evaluted.\n * @return {boolean} Whether the cssUnit is a math expression.\n */\nfunction isMathExpression( cssUnit ) {\n\tfor ( let i = 0; i < cssUnit.length; i++ ) {\n\t\tif ( [ '+', '-', '/', '*' ].includes( cssUnit[ i ] ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n/**\n * Evaluates the math expression and return a px value.\n *\n * @param {string} cssUnit the cssUnit value being evaluted.\n * @return {string} return a converfted value to px.\n */\nfunction evalMathExpression( cssUnit ) {\n\tlet errorFound = false;\n\t// Convert every part of the expression to px values.\n\tconst cssUnitsBits = cssUnit.split( /[+-/*/]/g ).filter( Boolean );\n\tfor ( const unit of cssUnitsBits ) {\n\t\t// Standardize the unit to px and extract the value.\n\t\tconst parsedUnit = parseUnit( getPxFromCssUnit( unit ) );\n\t\tif ( ! parseFloat( parsedUnit.value ) ) {\n\t\t\terrorFound = true;\n\t\t\t// end early since we are dealing with a null value.\n\t\t\tbreak;\n\t\t}\n\t\tcssUnit = cssUnit.replace( unit, parsedUnit.value );\n\t}\n\n\treturn errorFound ? null : calculate( cssUnit ).toFixed( 0 ) + 'px';\n}\n\n/**\n * Convert a parsedUnit object to px value.\n *\n * @param {Object} parsedUnit\n * @param {Object} options\n * @return {string} or {null} returns the converted with in a px value format.\n */\nfunction convertParsedUnitToPx( parsedUnit, options ) {\n\tconst PIXELS_PER_INCH = 96;\n\tconst ONE_PERCENT = 0.01;\n\n\tconst defaultProperties = {\n\t\tfontSize: 16,\n\t\tlineHeight: 16,\n\t\twidth: 375,\n\t\theight: 812,\n\t\ttype: 'font',\n\t};\n\n\tconst setOptions = Object.assign( {}, defaultProperties, options );\n\n\tconst relativeUnits = {\n\t\tem: setOptions.fontSize,\n\t\trem: setOptions.fontSize,\n\t\tvh: setOptions.height * ONE_PERCENT,\n\t\tvw: setOptions.width * ONE_PERCENT,\n\t\tvmin:\n\t\t\t( setOptions.width < setOptions.height\n\t\t\t\t? setOptions.width\n\t\t\t\t: setOptions.height ) * ONE_PERCENT,\n\t\tvmax:\n\t\t\t( setOptions.width > setOptions.height\n\t\t\t\t? setOptions.width\n\t\t\t\t: setOptions.height ) * ONE_PERCENT,\n\t\t'%':\n\t\t\t( setOptions.type === 'font'\n\t\t\t\t? setOptions.fontSize\n\t\t\t\t: setOptions.width ) * ONE_PERCENT,\n\t\tch: 8, // The advance measure (width) of the glyph \"0\" of the element's font. Approximate\n\t\tex: 7.15625, // x-height of the element's font. Approximate\n\t\tlh: setOptions.lineHeight,\n\t};\n\n\tconst absoluteUnits = {\n\t\tin: PIXELS_PER_INCH,\n\t\tcm: PIXELS_PER_INCH / 2.54,\n\t\tmm: PIXELS_PER_INCH / 25.4,\n\t\tpt: PIXELS_PER_INCH / 72,\n\t\tpc: PIXELS_PER_INCH / 6,\n\t\tpx: 1,\n\t\tQ: PIXELS_PER_INCH / 2.54 / 40,\n\t};\n\n\tif ( relativeUnits[ parsedUnit.unit ] ) {\n\t\treturn (\n\t\t\t( relativeUnits[ parsedUnit.unit ] * parsedUnit.value ).toFixed(\n\t\t\t\t0\n\t\t\t) + 'px'\n\t\t);\n\t}\n\n\tif ( absoluteUnits[ parsedUnit.unit ] ) {\n\t\treturn (\n\t\t\t( absoluteUnits[ parsedUnit.unit ] * parsedUnit.value ).toFixed(\n\t\t\t\t0\n\t\t\t) + 'px'\n\t\t);\n\t}\n\n\treturn null;\n}\n\n/**\n * Returns the px value of a cssUnit.\n *\n * @param {string} cssUnit\n * @param {Object} options\n * @return {string} returns the cssUnit value in a simple px format.\n */\nexport function getPxFromCssUnit( cssUnit, options = {} ) {\n\tif ( Number.isFinite( cssUnit ) ) {\n\t\treturn cssUnit.toFixed( 0 ) + 'px';\n\t}\n\tif ( cssUnit === undefined ) {\n\t\treturn null;\n\t}\n\tlet parsedUnit = parseUnit( cssUnit );\n\n\tif ( ! parsedUnit.unit ) {\n\t\tparsedUnit = parseUnitFunction( cssUnit, options );\n\t}\n\n\tif ( isMathExpression( cssUnit ) && ! parsedUnit.unit ) {\n\t\treturn evalMathExpression( cssUnit );\n\t}\n\n\treturn convertParsedUnitToPx( parsedUnit, options );\n}\n\n// Use simple cache.\nconst cache = {};\n/**\n * Returns the px value of a cssUnit. The memoized version of getPxFromCssUnit;\n *\n * @param {string} cssUnit\n * @param {Object} options\n * @return {string} returns the cssUnit value in a simple px format.\n */\nfunction memoizedGetPxFromCssUnit( cssUnit, options = {} ) {\n\tconst hash = cssUnit + hashOptions( options );\n\n\tif ( ! cache[ hash ] ) {\n\t\tcache[ hash ] = getPxFromCssUnit( cssUnit, options );\n\t}\n\treturn cache[ hash ];\n}\n\nfunction hashOptions( options ) {\n\tlet hash = '';\n\tif ( options.hasOwnProperty( 'fontSize' ) ) {\n\t\thash = ':' + options.width;\n\t}\n\tif ( options.hasOwnProperty( 'lineHeight' ) ) {\n\t\thash = ':' + options.lineHeight;\n\t}\n\tif ( options.hasOwnProperty( 'width' ) ) {\n\t\thash = ':' + options.width;\n\t}\n\tif ( options.hasOwnProperty( 'height' ) ) {\n\t\thash = ':' + options.height;\n\t}\n\tif ( options.hasOwnProperty( 'type' ) ) {\n\t\thash = ':' + options.type;\n\t}\n\treturn hash;\n}\n\nexport default memoizedGetPxFromCssUnit;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/utils/parse-css-unit-to-px.js"],"names":["parseUnit","cssUnit","match","trim","isNaN","parseFloat","value","unit","undefined","calculate","expression","Function","getFunctionUnitValue","functionUnitValue","options","functionUnit","split","filter","Boolean","units","slice","map","getPxFromCssUnit","Math","min","max","length","parseUnitFunction","currentCssUnit","regExp","matches","exec","replace","isMathExpression","i","includes","evalMathExpression","errorFound","cssUnitsBits","parsedUnit","toFixed","convertParsedUnitToPx","PIXELS_PER_INCH","ONE_PERCENT","defaultProperties","fontSize","lineHeight","width","height","type","setOptions","Object","assign","relativeUnits","em","rem","vh","vw","vmin","vmax","ch","ex","lh","absoluteUnits","in","cm","mm","pt","pc","px","Q","Number","isFinite","cache","memoizedGetPxFromCssUnit","hash","hashOptions","hasOwnProperty"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,SAAT,CAAoBC,OAApB,EAA8B;AAC7B,QAAMC,KAAK,GAAGD,OAAH,aAAGA,OAAH,uBAAGA,OAAO,CAClBE,IADW,GAEZD,KAFY,CAGZ,6EAHY,CAAd;;AAKA,MAAK,CAAEE,KAAK,CAAEH,OAAF,CAAP,IAAsB,CAAEG,KAAK,CAAEC,UAAU,CAAEJ,OAAF,CAAZ,CAAlC,EAA8D;AAC7D,WAAO;AAAEK,MAAAA,KAAK,EAAED,UAAU,CAAEJ,OAAF,CAAnB;AAAgCM,MAAAA,IAAI,EAAE;AAAtC,KAAP;AACA;;AACD,SAAOL,KAAK,GACT;AAAEI,IAAAA,KAAK,EAAED,UAAU,CAAEH,KAAK,CAAE,CAAF,CAAP,CAAV,IAA4BA,KAAK,CAAE,CAAF,CAA1C;AAAiDK,IAAAA,IAAI,EAAEL,KAAK,CAAE,CAAF;AAA5D,GADS,GAET;AAAEI,IAAAA,KAAK,EAAEL,OAAT;AAAkBM,IAAAA,IAAI,EAAEC;AAAxB,GAFH;AAGA;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,SAAT,CAAoBC,UAApB,EAAiC;AAChC,SAAOC,QAAQ,CAAG,yBAAyBD,UAAY,GAAxC,CAAR,EAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASE,oBAAT,CAA+BC,iBAA/B,EAAkDC,OAAlD,EAA4D;AAC3D,QAAMC,YAAY,GAAGF,iBAAiB,CAACG,KAAlB,CAAyB,QAAzB,EAAoCC,MAApC,CAA4CC,OAA5C,CAArB;AAEA,QAAMC,KAAK,GAAGJ,YAAY,CACxBK,KADY,CACL,CADK,EAEZC,GAFY,CAELd,IAAF,IAAYP,SAAS,CAAEsB,gBAAgB,CAAEf,IAAF,EAAQO,OAAR,CAAlB,CAAT,CAA+CR,KAFpD,EAGZW,MAHY,CAGJC,OAHI,CAAd;;AAKA,UAASH,YAAY,CAAE,CAAF,CAArB;AACC,SAAK,KAAL;AACC,aAAOQ,IAAI,CAACC,GAAL,CAAU,GAAGL,KAAb,IAAuB,IAA9B;;AACD,SAAK,KAAL;AACC,aAAOI,IAAI,CAACE,GAAL,CAAU,GAAGN,KAAb,IAAuB,IAA9B;;AACD,SAAK,OAAL;AACC,UAAKA,KAAK,CAACO,MAAN,KAAiB,CAAtB,EAA0B;AACzB,eAAO,IAAP;AACA;;AACD,UAAKP,KAAK,CAAE,CAAF,CAAL,GAAaA,KAAK,CAAE,CAAF,CAAvB,EAA+B;AAC9B,eAAOA,KAAK,CAAE,CAAF,CAAL,GAAa,IAApB;AACA;;AACD,UAAKA,KAAK,CAAE,CAAF,CAAL,GAAaA,KAAK,CAAE,CAAF,CAAvB,EAA+B;AAC9B,eAAOA,KAAK,CAAE,CAAF,CAAL,GAAa,IAApB;AACA;;AACD,aAAOA,KAAK,CAAE,CAAF,CAAL,GAAa,IAApB;;AACD,SAAK,MAAL;AACC,aAAOA,KAAK,CAAE,CAAF,CAAL,GAAa,IAApB;AAjBF;AAmBA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASQ,iBAAT,CAA4B1B,OAA5B,EAAsC;AACrC,SAAQ,IAAR,EAAe;AACd,UAAM2B,cAAc,GAAG3B,OAAvB;AACA,UAAM4B,MAAM,GAAG,mCAAf;AACA,UAAMC,OAAO,GAAGD,MAAM,CAACE,IAAP,CAAa9B,OAAb,KAA0B,EAA1C;;AACA,QAAK6B,OAAO,CAAE,CAAF,CAAZ,EAAoB;AACnB,YAAMjB,iBAAiB,GAAGD,oBAAoB,CAAEkB,OAAO,CAAE,CAAF,CAAT,CAA9C;AACA7B,MAAAA,OAAO,GAAGA,OAAO,CAAC+B,OAAR,CAAiBF,OAAO,CAAE,CAAF,CAAxB,EAA+BjB,iBAA/B,CAAV;AACA,KAPa,CASd;;;AACA,QAAKZ,OAAO,KAAK2B,cAAZ,IAA8BvB,UAAU,CAAEJ,OAAF,CAA7C,EAA2D;AAC1D;AACA;AACD;;AAED,SAAOD,SAAS,CAAEC,OAAF,CAAhB;AACA;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASgC,gBAAT,CAA2BhC,OAA3B,EAAqC;AACpC,OAAM,IAAIiC,CAAC,GAAG,CAAd,EAAiBA,CAAC,GAAGjC,OAAO,CAACyB,MAA7B,EAAqCQ,CAAC,EAAtC,EAA2C;AAC1C,QAAK,CAAE,GAAF,EAAO,GAAP,EAAY,GAAZ,EAAiB,GAAjB,EAAuBC,QAAvB,CAAiClC,OAAO,CAAEiC,CAAF,CAAxC,CAAL,EAAuD;AACtD,aAAO,IAAP;AACA;AACD;;AACD,SAAO,KAAP;AACA;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASE,kBAAT,CAA6BnC,OAA7B,EAAuC;AACtC,MAAIoC,UAAU,GAAG,KAAjB,CADsC,CAEtC;;AACA,QAAMC,YAAY,GAAGrC,OAAO,CAACe,KAAR,CAAe,UAAf,EAA4BC,MAA5B,CAAoCC,OAApC,CAArB;;AACA,OAAM,MAAMX,IAAZ,IAAoB+B,YAApB,EAAmC;AAClC;AACA,UAAMC,UAAU,GAAGvC,SAAS,CAAEsB,gBAAgB,CAAEf,IAAF,CAAlB,CAA5B;;AACA,QAAK,CAAEF,UAAU,CAAEkC,UAAU,CAACjC,KAAb,CAAjB,EAAwC;AACvC+B,MAAAA,UAAU,GAAG,IAAb,CADuC,CAEvC;;AACA;AACA;;AACDpC,IAAAA,OAAO,GAAGA,OAAO,CAAC+B,OAAR,CAAiBzB,IAAjB,EAAuBgC,UAAU,CAACjC,KAAlC,CAAV;AACA;;AAED,SAAO+B,UAAU,GAAG,IAAH,GAAU5B,SAAS,CAAER,OAAF,CAAT,CAAqBuC,OAArB,CAA8B,CAA9B,IAAoC,IAA/D;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,qBAAT,CAAgCF,UAAhC,EAA4CzB,OAA5C,EAAsD;AACrD,QAAM4B,eAAe,GAAG,EAAxB;AACA,QAAMC,WAAW,GAAG,IAApB;AAEA,QAAMC,iBAAiB,GAAG;AACzBC,IAAAA,QAAQ,EAAE,EADe;AAEzBC,IAAAA,UAAU,EAAE,EAFa;AAGzBC,IAAAA,KAAK,EAAE,GAHkB;AAIzBC,IAAAA,MAAM,EAAE,GAJiB;AAKzBC,IAAAA,IAAI,EAAE;AALmB,GAA1B;AAQA,QAAMC,UAAU,GAAGC,MAAM,CAACC,MAAP,CAAe,EAAf,EAAmBR,iBAAnB,EAAsC9B,OAAtC,CAAnB;AAEA,QAAMuC,aAAa,GAAG;AACrBC,IAAAA,EAAE,EAAEJ,UAAU,CAACL,QADM;AAErBU,IAAAA,GAAG,EAAEL,UAAU,CAACL,QAFK;AAGrBW,IAAAA,EAAE,EAAEN,UAAU,CAACF,MAAX,GAAoBL,WAHH;AAIrBc,IAAAA,EAAE,EAAEP,UAAU,CAACH,KAAX,GAAmBJ,WAJF;AAKrBe,IAAAA,IAAI,EACH,CAAER,UAAU,CAACH,KAAX,GAAmBG,UAAU,CAACF,MAA9B,GACCE,UAAU,CAACH,KADZ,GAECG,UAAU,CAACF,MAFd,IAEyBL,WARL;AASrBgB,IAAAA,IAAI,EACH,CAAET,UAAU,CAACH,KAAX,GAAmBG,UAAU,CAACF,MAA9B,GACCE,UAAU,CAACH,KADZ,GAECG,UAAU,CAACF,MAFd,IAEyBL,WAZL;AAarB,SACC,CAAEO,UAAU,CAACD,IAAX,KAAoB,MAApB,GACCC,UAAU,CAACL,QADZ,GAECK,UAAU,CAACH,KAFd,IAEwBJ,WAhBJ;AAiBrBiB,IAAAA,EAAE,EAAE,CAjBiB;AAiBd;AACPC,IAAAA,EAAE,EAAE,OAlBiB;AAkBR;AACbC,IAAAA,EAAE,EAAEZ,UAAU,CAACJ;AAnBM,GAAtB;AAsBA,QAAMiB,aAAa,GAAG;AACrBC,IAAAA,EAAE,EAAEtB,eADiB;AAErBuB,IAAAA,EAAE,EAAEvB,eAAe,GAAG,IAFD;AAGrBwB,IAAAA,EAAE,EAAExB,eAAe,GAAG,IAHD;AAIrByB,IAAAA,EAAE,EAAEzB,eAAe,GAAG,EAJD;AAKrB0B,IAAAA,EAAE,EAAE1B,eAAe,GAAG,CALD;AAMrB2B,IAAAA,EAAE,EAAE,CANiB;AAOrBC,IAAAA,CAAC,EAAE5B,eAAe,GAAG,IAAlB,GAAyB;AAPP,GAAtB;;AAUA,MAAKW,aAAa,CAAEd,UAAU,CAAChC,IAAb,CAAlB,EAAwC;AACvC,WACC,CAAE8C,aAAa,CAAEd,UAAU,CAAChC,IAAb,CAAb,GAAmCgC,UAAU,CAACjC,KAAhD,EAAwDkC,OAAxD,CACC,CADD,IAEI,IAHL;AAKA;;AAED,MAAKuB,aAAa,CAAExB,UAAU,CAAChC,IAAb,CAAlB,EAAwC;AACvC,WACC,CAAEwD,aAAa,CAAExB,UAAU,CAAChC,IAAb,CAAb,GAAmCgC,UAAU,CAACjC,KAAhD,EAAwDkC,OAAxD,CACC,CADD,IAEI,IAHL;AAKA;;AAED,SAAO,IAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASlB,gBAAT,CAA2BrB,OAA3B,EAAmD;AAAA,MAAfa,OAAe,uEAAL,EAAK;;AACzD,MAAKyD,MAAM,CAACC,QAAP,CAAiBvE,OAAjB,CAAL,EAAkC;AACjC,WAAOA,OAAO,CAACuC,OAAR,CAAiB,CAAjB,IAAuB,IAA9B;AACA;;AACD,MAAKvC,OAAO,KAAKO,SAAjB,EAA6B;AAC5B,WAAO,IAAP;AACA;;AACD,MAAI+B,UAAU,GAAGvC,SAAS,CAAEC,OAAF,CAA1B;;AAEA,MAAK,CAAEsC,UAAU,CAAChC,IAAlB,EAAyB;AACxBgC,IAAAA,UAAU,GAAGZ,iBAAiB,CAAE1B,OAAF,EAAWa,OAAX,CAA9B;AACA;;AAED,MAAKmB,gBAAgB,CAAEhC,OAAF,CAAhB,IAA+B,CAAEsC,UAAU,CAAChC,IAAjD,EAAwD;AACvD,WAAO6B,kBAAkB,CAAEnC,OAAF,CAAzB;AACA;;AAED,SAAOwC,qBAAqB,CAAEF,UAAF,EAAczB,OAAd,CAA5B;AACA,C,CAED;;;AACA,MAAM2D,KAAK,GAAG,EAAd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,wBAAT,CAAmCzE,OAAnC,EAA2D;AAAA,MAAfa,OAAe,uEAAL,EAAK;AAC1D,QAAM6D,IAAI,GAAG1E,OAAO,GAAG2E,WAAW,CAAE9D,OAAF,CAAlC;;AAEA,MAAK,CAAE2D,KAAK,CAAEE,IAAF,CAAZ,EAAuB;AACtBF,IAAAA,KAAK,CAAEE,IAAF,CAAL,GAAgBrD,gBAAgB,CAAErB,OAAF,EAAWa,OAAX,CAAhC;AACA;;AACD,SAAO2D,KAAK,CAAEE,IAAF,CAAZ;AACA;;AAED,SAASC,WAAT,CAAsB9D,OAAtB,EAAgC;AAC/B,MAAI6D,IAAI,GAAG,EAAX;;AACA,MAAK7D,OAAO,CAAC+D,cAAR,CAAwB,UAAxB,CAAL,EAA4C;AAC3CF,IAAAA,IAAI,GAAG,MAAM7D,OAAO,CAACiC,KAArB;AACA;;AACD,MAAKjC,OAAO,CAAC+D,cAAR,CAAwB,YAAxB,CAAL,EAA8C;AAC7CF,IAAAA,IAAI,GAAG,MAAM7D,OAAO,CAACgC,UAArB;AACA;;AACD,MAAKhC,OAAO,CAAC+D,cAAR,CAAwB,OAAxB,CAAL,EAAyC;AACxCF,IAAAA,IAAI,GAAG,MAAM7D,OAAO,CAACiC,KAArB;AACA;;AACD,MAAKjC,OAAO,CAAC+D,cAAR,CAAwB,QAAxB,CAAL,EAA0C;AACzCF,IAAAA,IAAI,GAAG,MAAM7D,OAAO,CAACkC,MAArB;AACA;;AACD,MAAKlC,OAAO,CAAC+D,cAAR,CAAwB,MAAxB,CAAL,EAAwC;AACvCF,IAAAA,IAAI,GAAG,MAAM7D,OAAO,CAACmC,IAArB;AACA;;AACD,SAAO0B,IAAP;AACA;;eAEcD,wB","sourcesContent":["/**\n * Converts string to object { value, unit }.\n *\n * @param {string} cssUnit\n * @return {Object} parsedUnit\n */\nfunction parseUnit( cssUnit ) {\n\tconst match = cssUnit\n\t\t?.trim()\n\t\t.match(\n\t\t\t/^(0?[-.]?\\d*\\.?\\d+)(r?e[m|x]|v[h|w|min|max]+|p[x|t|c]|[c|m]m|%|in|ch|Q|lh)$/\n\t\t);\n\tif ( ! isNaN( cssUnit ) && ! isNaN( parseFloat( cssUnit ) ) ) {\n\t\treturn { value: parseFloat( cssUnit ), unit: 'px' };\n\t}\n\treturn match\n\t\t? { value: parseFloat( match[ 1 ] ) || match[ 1 ], unit: match[ 2 ] }\n\t\t: { value: cssUnit, unit: undefined };\n}\n/**\n * Evaluate a math expression.\n *\n * @param {string} expression\n * @return {number} evaluated expression.\n */\nfunction calculate( expression ) {\n\treturn Function( `'use strict'; return (${ expression })` )();\n}\n\n/**\n * Calculates the css function value for the supported css functions such as max, min, clamp and calc.\n *\n * @param {string} functionUnitValue string should be in a particular format (for example min(12px,12px) ) no nested loops.\n * @param {Object} options\n * @return {string} unit containing the unit in PX.\n */\nfunction getFunctionUnitValue( functionUnitValue, options ) {\n\tconst functionUnit = functionUnitValue.split( /[(),]/g ).filter( Boolean );\n\n\tconst units = functionUnit\n\t\t.slice( 1 )\n\t\t.map( ( unit ) => parseUnit( getPxFromCssUnit( unit, options ) ).value )\n\t\t.filter( Boolean );\n\n\tswitch ( functionUnit[ 0 ] ) {\n\t\tcase 'min':\n\t\t\treturn Math.min( ...units ) + 'px';\n\t\tcase 'max':\n\t\t\treturn Math.max( ...units ) + 'px';\n\t\tcase 'clamp':\n\t\t\tif ( units.length !== 3 ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tif ( units[ 1 ] < units[ 0 ] ) {\n\t\t\t\treturn units[ 0 ] + 'px';\n\t\t\t}\n\t\t\tif ( units[ 1 ] > units[ 2 ] ) {\n\t\t\t\treturn units[ 2 ] + 'px';\n\t\t\t}\n\t\t\treturn units[ 1 ] + 'px';\n\t\tcase 'calc':\n\t\t\treturn units[ 0 ] + 'px';\n\t}\n}\n\n/**\n * Take a css function such as min, max, calc, clamp and returns parsedUnit\n *\n * How this works for the nested function is that it first replaces the inner function call.\n * Then it tackles the outer onces.\n * So for example: min( max(25px, 35px), 40px )\n * in the first pass we would replace max(25px, 35px) with 35px.\n * then we would try to evaluate min( 35px, 40px )\n * and then finally return 35px.\n *\n * @param {string} cssUnit\n * @return {Object} parsedUnit object.\n */\nfunction parseUnitFunction( cssUnit ) {\n\twhile ( true ) {\n\t\tconst currentCssUnit = cssUnit;\n\t\tconst regExp = /(max|min|calc|clamp)\\(([^()]*)\\)/g;\n\t\tconst matches = regExp.exec( cssUnit ) || [];\n\t\tif ( matches[ 0 ] ) {\n\t\t\tconst functionUnitValue = getFunctionUnitValue( matches[ 0 ] );\n\t\t\tcssUnit = cssUnit.replace( matches[ 0 ], functionUnitValue );\n\t\t}\n\n\t\t// If the unit hasn't been modified or we have a single value break free.\n\t\tif ( cssUnit === currentCssUnit || parseFloat( cssUnit ) ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn parseUnit( cssUnit );\n}\n/**\n * Return true if we think this is a math expression.\n *\n * @param {string} cssUnit the cssUnit value being evaluted.\n * @return {boolean} Whether the cssUnit is a math expression.\n */\nfunction isMathExpression( cssUnit ) {\n\tfor ( let i = 0; i < cssUnit.length; i++ ) {\n\t\tif ( [ '+', '-', '/', '*' ].includes( cssUnit[ i ] ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n/**\n * Evaluates the math expression and return a px value.\n *\n * @param {string} cssUnit the cssUnit value being evaluted.\n * @return {string} return a converfted value to px.\n */\nfunction evalMathExpression( cssUnit ) {\n\tlet errorFound = false;\n\t// Convert every part of the expression to px values.\n\tconst cssUnitsBits = cssUnit.split( /[+-/*/]/g ).filter( Boolean );\n\tfor ( const unit of cssUnitsBits ) {\n\t\t// Standardize the unit to px and extract the value.\n\t\tconst parsedUnit = parseUnit( getPxFromCssUnit( unit ) );\n\t\tif ( ! parseFloat( parsedUnit.value ) ) {\n\t\t\terrorFound = true;\n\t\t\t// End early since we are dealing with a null value.\n\t\t\tbreak;\n\t\t}\n\t\tcssUnit = cssUnit.replace( unit, parsedUnit.value );\n\t}\n\n\treturn errorFound ? null : calculate( cssUnit ).toFixed( 0 ) + 'px';\n}\n\n/**\n * Convert a parsedUnit object to px value.\n *\n * @param {Object} parsedUnit\n * @param {Object} options\n * @return {string} or {null} returns the converted with in a px value format.\n */\nfunction convertParsedUnitToPx( parsedUnit, options ) {\n\tconst PIXELS_PER_INCH = 96;\n\tconst ONE_PERCENT = 0.01;\n\n\tconst defaultProperties = {\n\t\tfontSize: 16,\n\t\tlineHeight: 16,\n\t\twidth: 375,\n\t\theight: 812,\n\t\ttype: 'font',\n\t};\n\n\tconst setOptions = Object.assign( {}, defaultProperties, options );\n\n\tconst relativeUnits = {\n\t\tem: setOptions.fontSize,\n\t\trem: setOptions.fontSize,\n\t\tvh: setOptions.height * ONE_PERCENT,\n\t\tvw: setOptions.width * ONE_PERCENT,\n\t\tvmin:\n\t\t\t( setOptions.width < setOptions.height\n\t\t\t\t? setOptions.width\n\t\t\t\t: setOptions.height ) * ONE_PERCENT,\n\t\tvmax:\n\t\t\t( setOptions.width > setOptions.height\n\t\t\t\t? setOptions.width\n\t\t\t\t: setOptions.height ) * ONE_PERCENT,\n\t\t'%':\n\t\t\t( setOptions.type === 'font'\n\t\t\t\t? setOptions.fontSize\n\t\t\t\t: setOptions.width ) * ONE_PERCENT,\n\t\tch: 8, // The advance measure (width) of the glyph \"0\" of the element's font. Approximate\n\t\tex: 7.15625, // X-height of the element's font. Approximate.\n\t\tlh: setOptions.lineHeight,\n\t};\n\n\tconst absoluteUnits = {\n\t\tin: PIXELS_PER_INCH,\n\t\tcm: PIXELS_PER_INCH / 2.54,\n\t\tmm: PIXELS_PER_INCH / 25.4,\n\t\tpt: PIXELS_PER_INCH / 72,\n\t\tpc: PIXELS_PER_INCH / 6,\n\t\tpx: 1,\n\t\tQ: PIXELS_PER_INCH / 2.54 / 40,\n\t};\n\n\tif ( relativeUnits[ parsedUnit.unit ] ) {\n\t\treturn (\n\t\t\t( relativeUnits[ parsedUnit.unit ] * parsedUnit.value ).toFixed(\n\t\t\t\t0\n\t\t\t) + 'px'\n\t\t);\n\t}\n\n\tif ( absoluteUnits[ parsedUnit.unit ] ) {\n\t\treturn (\n\t\t\t( absoluteUnits[ parsedUnit.unit ] * parsedUnit.value ).toFixed(\n\t\t\t\t0\n\t\t\t) + 'px'\n\t\t);\n\t}\n\n\treturn null;\n}\n\n/**\n * Returns the px value of a cssUnit.\n *\n * @param {string} cssUnit\n * @param {Object} options\n * @return {string} returns the cssUnit value in a simple px format.\n */\nexport function getPxFromCssUnit( cssUnit, options = {} ) {\n\tif ( Number.isFinite( cssUnit ) ) {\n\t\treturn cssUnit.toFixed( 0 ) + 'px';\n\t}\n\tif ( cssUnit === undefined ) {\n\t\treturn null;\n\t}\n\tlet parsedUnit = parseUnit( cssUnit );\n\n\tif ( ! parsedUnit.unit ) {\n\t\tparsedUnit = parseUnitFunction( cssUnit, options );\n\t}\n\n\tif ( isMathExpression( cssUnit ) && ! parsedUnit.unit ) {\n\t\treturn evalMathExpression( cssUnit );\n\t}\n\n\treturn convertParsedUnitToPx( parsedUnit, options );\n}\n\n// Use simple cache.\nconst cache = {};\n/**\n * Returns the px value of a cssUnit. The memoized version of getPxFromCssUnit;\n *\n * @param {string} cssUnit\n * @param {Object} options\n * @return {string} returns the cssUnit value in a simple px format.\n */\nfunction memoizedGetPxFromCssUnit( cssUnit, options = {} ) {\n\tconst hash = cssUnit + hashOptions( options );\n\n\tif ( ! cache[ hash ] ) {\n\t\tcache[ hash ] = getPxFromCssUnit( cssUnit, options );\n\t}\n\treturn cache[ hash ];\n}\n\nfunction hashOptions( options ) {\n\tlet hash = '';\n\tif ( options.hasOwnProperty( 'fontSize' ) ) {\n\t\thash = ':' + options.width;\n\t}\n\tif ( options.hasOwnProperty( 'lineHeight' ) ) {\n\t\thash = ':' + options.lineHeight;\n\t}\n\tif ( options.hasOwnProperty( 'width' ) ) {\n\t\thash = ':' + options.width;\n\t}\n\tif ( options.hasOwnProperty( 'height' ) ) {\n\t\thash = ':' + options.height;\n\t}\n\tif ( options.hasOwnProperty( 'type' ) ) {\n\t\thash = ':' + options.type;\n\t}\n\treturn hash;\n}\n\nexport default memoizedGetPxFromCssUnit;\n"]}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getPasteEventData = getPasteEventData;
|
|
7
|
+
exports.shouldDismissPastedFiles = shouldDismissPastedFiles;
|
|
8
|
+
|
|
9
|
+
var _blob = require("@wordpress/blob");
|
|
10
|
+
|
|
11
|
+
var _dom = require("@wordpress/dom");
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* WordPress dependencies
|
|
15
|
+
*/
|
|
16
|
+
function getPasteEventData(_ref) {
|
|
17
|
+
let {
|
|
18
|
+
clipboardData
|
|
19
|
+
} = _ref;
|
|
20
|
+
let plainText = '';
|
|
21
|
+
let html = ''; // IE11 only supports `Text` as an argument for `getData` and will
|
|
22
|
+
// otherwise throw an invalid argument error, so we try the standard
|
|
23
|
+
// arguments first, then fallback to `Text` if they fail.
|
|
24
|
+
|
|
25
|
+
try {
|
|
26
|
+
plainText = clipboardData.getData('text/plain');
|
|
27
|
+
html = clipboardData.getData('text/html');
|
|
28
|
+
} catch (error1) {
|
|
29
|
+
try {
|
|
30
|
+
html = clipboardData.getData('Text');
|
|
31
|
+
} catch (error2) {
|
|
32
|
+
// Some browsers like UC Browser paste plain text by default and
|
|
33
|
+
// don't support clipboardData at all, so allow default
|
|
34
|
+
// behaviour.
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const files = (0, _dom.getFilesFromDataTransfer)(clipboardData).filter(_ref2 => {
|
|
40
|
+
let {
|
|
41
|
+
type
|
|
42
|
+
} = _ref2;
|
|
43
|
+
return /^image\/(?:jpe?g|png|gif|webp)$/.test(type);
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
if (files.length && !shouldDismissPastedFiles(files, html, plainText)) {
|
|
47
|
+
html = files.map(file => `<img src="${(0, _blob.createBlobURL)(file)}">`).join('');
|
|
48
|
+
plainText = '';
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return {
|
|
52
|
+
html,
|
|
53
|
+
plainText
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Given a collection of DataTransfer files and HTML and plain text strings,
|
|
58
|
+
* determine whether the files are to be dismissed in favor of the HTML.
|
|
59
|
+
*
|
|
60
|
+
* Certain office-type programs, like Microsoft Word or Apple Numbers,
|
|
61
|
+
* will, upon copy, generate a screenshot of the content being copied and
|
|
62
|
+
* attach it to the clipboard alongside the actual rich text that the user
|
|
63
|
+
* sought to copy. In those cases, we should let Gutenberg handle the rich text
|
|
64
|
+
* content and not the screenshot, since this allows Gutenberg to insert
|
|
65
|
+
* meaningful blocks, like paragraphs, lists or even tables.
|
|
66
|
+
*
|
|
67
|
+
* @param {File[]} files File objects obtained from a paste event
|
|
68
|
+
* @param {string} html HTML content obtained from a paste event
|
|
69
|
+
* @return {boolean} True if the files should be dismissed
|
|
70
|
+
*/
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
function shouldDismissPastedFiles(files, html
|
|
74
|
+
/*, plainText */
|
|
75
|
+
) {
|
|
76
|
+
// The question is only relevant when there is actual HTML content and when
|
|
77
|
+
// there is exactly one image file.
|
|
78
|
+
if (html && (files === null || files === void 0 ? void 0 : files.length) === 1 && files[0].type.indexOf('image/') === 0) {
|
|
79
|
+
var _html$match;
|
|
80
|
+
|
|
81
|
+
// A single <img> tag found in the HTML source suggests that the
|
|
82
|
+
// content being pasted revolves around an image. Sometimes there are
|
|
83
|
+
// other elements found, like <figure>, but we assume that the user's
|
|
84
|
+
// intention is to paste the actual image file.
|
|
85
|
+
const IMAGE_TAG = /<\s*img\b/gi;
|
|
86
|
+
return ((_html$match = html.match(IMAGE_TAG)) === null || _html$match === void 0 ? void 0 : _html$match.length) !== 1;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=pasting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/utils/pasting.js"],"names":["getPasteEventData","clipboardData","plainText","html","getData","error1","error2","files","filter","type","test","length","shouldDismissPastedFiles","map","file","join","indexOf","IMAGE_TAG","match"],"mappings":";;;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;AAIO,SAASA,iBAAT,OAAgD;AAAA,MAApB;AAAEC,IAAAA;AAAF,GAAoB;AACtD,MAAIC,SAAS,GAAG,EAAhB;AACA,MAAIC,IAAI,GAAG,EAAX,CAFsD,CAItD;AACA;AACA;;AACA,MAAI;AACHD,IAAAA,SAAS,GAAGD,aAAa,CAACG,OAAd,CAAuB,YAAvB,CAAZ;AACAD,IAAAA,IAAI,GAAGF,aAAa,CAACG,OAAd,CAAuB,WAAvB,CAAP;AACA,GAHD,CAGE,OAAQC,MAAR,EAAiB;AAClB,QAAI;AACHF,MAAAA,IAAI,GAAGF,aAAa,CAACG,OAAd,CAAuB,MAAvB,CAAP;AACA,KAFD,CAEE,OAAQE,MAAR,EAAiB;AAClB;AACA;AACA;AACA;AACA;AACD;;AAED,QAAMC,KAAK,GAAG,mCACbN,aADa,EAEZO,MAFY,CAEJ;AAAA,QAAE;AAAEC,MAAAA;AAAF,KAAF;AAAA,WAAgB,kCAAkCC,IAAlC,CAAwCD,IAAxC,CAAhB;AAAA,GAFI,CAAd;;AAIA,MACCF,KAAK,CAACI,MAAN,IACA,CAAEC,wBAAwB,CAAEL,KAAF,EAASJ,IAAT,EAAeD,SAAf,CAF3B,EAGE;AACDC,IAAAA,IAAI,GAAGI,KAAK,CACVM,GADK,CACEC,IAAF,IAAa,aAAa,yBAAeA,IAAf,CAAuB,IADjD,EAELC,IAFK,CAEC,EAFD,CAAP;AAGAb,IAAAA,SAAS,GAAG,EAAZ;AACA;;AAED,SAAO;AAAEC,IAAAA,IAAF;AAAQD,IAAAA;AAAR,GAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASU,wBAAT,CAAmCL,KAAnC,EAA0CJ;AAAK;AAA/C,EAAkE;AACxE;AACA;AACA,MACCA,IAAI,IACJ,CAAAI,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEI,MAAP,MAAkB,CADlB,IAEAJ,KAAK,CAAE,CAAF,CAAL,CAAWE,IAAX,CAAgBO,OAAhB,CAAyB,QAAzB,MAAwC,CAHzC,EAIE;AAAA;;AACD;AACA;AACA;AACA;AACA,UAAMC,SAAS,GAAG,aAAlB;AACA,WAAO,gBAAAd,IAAI,CAACe,KAAL,CAAYD,SAAZ,6DAAyBN,MAAzB,MAAoC,CAA3C;AACA;;AAED,SAAO,KAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlobURL } from '@wordpress/blob';\nimport { getFilesFromDataTransfer } from '@wordpress/dom';\n\nexport function getPasteEventData( { clipboardData } ) {\n\tlet plainText = '';\n\tlet html = '';\n\n\t// IE11 only supports `Text` as an argument for `getData` and will\n\t// otherwise throw an invalid argument error, so we try the standard\n\t// arguments first, then fallback to `Text` if they fail.\n\ttry {\n\t\tplainText = clipboardData.getData( 'text/plain' );\n\t\thtml = clipboardData.getData( 'text/html' );\n\t} catch ( error1 ) {\n\t\ttry {\n\t\t\thtml = clipboardData.getData( 'Text' );\n\t\t} catch ( error2 ) {\n\t\t\t// Some browsers like UC Browser paste plain text by default and\n\t\t\t// don't support clipboardData at all, so allow default\n\t\t\t// behaviour.\n\t\t\treturn;\n\t\t}\n\t}\n\n\tconst files = getFilesFromDataTransfer(\n\t\tclipboardData\n\t).filter( ( { type } ) => /^image\\/(?:jpe?g|png|gif|webp)$/.test( type ) );\n\n\tif (\n\t\tfiles.length &&\n\t\t! shouldDismissPastedFiles( files, html, plainText )\n\t) {\n\t\thtml = files\n\t\t\t.map( ( file ) => `<img src=\"${ createBlobURL( file ) }\">` )\n\t\t\t.join( '' );\n\t\tplainText = '';\n\t}\n\n\treturn { html, plainText };\n}\n\n/**\n * Given a collection of DataTransfer files and HTML and plain text strings,\n * determine whether the files are to be dismissed in favor of the HTML.\n *\n * Certain office-type programs, like Microsoft Word or Apple Numbers,\n * will, upon copy, generate a screenshot of the content being copied and\n * attach it to the clipboard alongside the actual rich text that the user\n * sought to copy. In those cases, we should let Gutenberg handle the rich text\n * content and not the screenshot, since this allows Gutenberg to insert\n * meaningful blocks, like paragraphs, lists or even tables.\n *\n * @param {File[]} files File objects obtained from a paste event\n * @param {string} html HTML content obtained from a paste event\n * @return {boolean} True if the files should be dismissed\n */\nexport function shouldDismissPastedFiles( files, html /*, plainText */ ) {\n\t// The question is only relevant when there is actual HTML content and when\n\t// there is exactly one image file.\n\tif (\n\t\thtml &&\n\t\tfiles?.length === 1 &&\n\t\tfiles[ 0 ].type.indexOf( 'image/' ) === 0\n\t) {\n\t\t// A single <img> tag found in the HTML source suggests that the\n\t\t// content being pasted revolves around an image. Sometimes there are\n\t\t// other elements found, like <figure>, but we assume that the user's\n\t\t// intention is to paste the actual image file.\n\t\tconst IMAGE_TAG = /<\\s*img\\b/gi;\n\t\treturn html.match( IMAGE_TAG )?.length !== 1;\n\t}\n\n\treturn false;\n}\n"]}
|
|
@@ -243,7 +243,7 @@ function _default(css, options) {
|
|
|
243
243
|
|
|
244
244
|
|
|
245
245
|
function declaration() {
|
|
246
|
-
const pos = position(); // prop
|
|
246
|
+
const pos = position(); // prop.
|
|
247
247
|
|
|
248
248
|
let prop = match(/^(\*?[-#\/\*\\\w]+(\[[0-9a-z_-]+\])?)\s*/);
|
|
249
249
|
|
|
@@ -255,7 +255,7 @@ function _default(css, options) {
|
|
|
255
255
|
|
|
256
256
|
if (!match(/^:\s*/)) {
|
|
257
257
|
return error("property missing ':'");
|
|
258
|
-
} // val
|
|
258
|
+
} // val.
|
|
259
259
|
|
|
260
260
|
|
|
261
261
|
const val = match(/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^\)]*?\)|[^};])+)/);
|
|
@@ -280,7 +280,7 @@ function _default(css, options) {
|
|
|
280
280
|
return error("missing '{'");
|
|
281
281
|
}
|
|
282
282
|
|
|
283
|
-
comments(decls); // declarations
|
|
283
|
+
comments(decls); // declarations.
|
|
284
284
|
|
|
285
285
|
let decl; // eslint-disable-next-line no-cond-assign
|
|
286
286
|
|
|
@@ -496,7 +496,7 @@ function _default(css, options) {
|
|
|
496
496
|
return error("@page missing '{'");
|
|
497
497
|
}
|
|
498
498
|
|
|
499
|
-
let decls = comments(); // declarations
|
|
499
|
+
let decls = comments(); // declarations.
|
|
500
500
|
|
|
501
501
|
let decl; // eslint-disable-next-line no-cond-assign
|
|
502
502
|
|
|
@@ -565,7 +565,7 @@ function _default(css, options) {
|
|
|
565
565
|
return error("@font-face missing '{'");
|
|
566
566
|
}
|
|
567
567
|
|
|
568
|
-
let decls = comments(); // declarations
|
|
568
|
+
let decls = comments(); // declarations.
|
|
569
569
|
|
|
570
570
|
let decl; // eslint-disable-next-line no-cond-assign
|
|
571
571
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/utils/transform-styles/ast/parse.js"],"names":["commentre","css","options","lineno","column","updatePosition","str","lines","match","length","i","lastIndexOf","position","start","line","node","Position","whitespace","end","source","prototype","content","errorsList","error","msg","err","Error","reason","filename","silent","push","stylesheet","rulesList","rules","type","parsingErrors","open","close","accumulator","comments","charAt","atrule","rule","re","m","exec","slice","c","comment","pos","selector","trim","replace","matched","split","map","s","declaration","prop","val","ret","property","value","declarations","decls","decl","keyframe","vals","values","atkeyframes","vendor","name","frame","frames","concat","keyframes","atsupports","supports","style","athost","atmedia","media","atcustommedia","atpage","sel","selectors","atdocument","doc","document","atfontface","atimport","_compileAtrule","atcharset","atnamespace","RegExp","addParent","obj","parent","isNode","childParent","k","Array","isArray","forEach","v","Object","defineProperty","configurable","writable","enumerable"],"mappings":"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","sourcesContent":["/* eslint-disable @wordpress/no-unused-vars-before-return */\n\n// Adapted from https://github.com/reworkcss/css\n// because we needed to remove source map support.\n\n// http://www.w3.org/TR/CSS21/grammar.htm\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nconst commentre = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nexport default function ( css, options ) {\n\toptions = options || {};\n\n\t/**\n\t * Positional.\n\t */\n\n\tlet lineno = 1;\n\tlet column = 1;\n\n\t/**\n\t * Update lineno and column based on `str`.\n\t */\n\n\tfunction updatePosition( str ) {\n\t\tconst lines = str.match( /\\n/g );\n\t\tif ( lines ) {\n\t\t\tlineno += lines.length;\n\t\t}\n\t\tconst i = str.lastIndexOf( '\\n' );\n\t\t// eslint-disable-next-line no-bitwise\n\t\tcolumn = ~i ? str.length - i : column + str.length;\n\t}\n\n\t/**\n\t * Mark position and patch `node.position`.\n\t */\n\n\tfunction position() {\n\t\tconst start = { line: lineno, column };\n\t\treturn function ( node ) {\n\t\t\tnode.position = new Position( start );\n\t\t\twhitespace();\n\t\t\treturn node;\n\t\t};\n\t}\n\n\t/**\n\t * Store position information for a node\n\t */\n\n\tfunction Position( start ) {\n\t\tthis.start = start;\n\t\tthis.end = { line: lineno, column };\n\t\tthis.source = options.source;\n\t}\n\n\t/**\n\t * Non-enumerable source string\n\t */\n\n\tPosition.prototype.content = css;\n\n\t/**\n\t * Error `msg`.\n\t */\n\n\tconst errorsList = [];\n\n\tfunction error( msg ) {\n\t\tconst err = new Error(\n\t\t\toptions.source + ':' + lineno + ':' + column + ': ' + msg\n\t\t);\n\t\terr.reason = msg;\n\t\terr.filename = options.source;\n\t\terr.line = lineno;\n\t\terr.column = column;\n\t\terr.source = css;\n\n\t\tif ( options.silent ) {\n\t\t\terrorsList.push( err );\n\t\t} else {\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\t/**\n\t * Parse stylesheet.\n\t */\n\n\tfunction stylesheet() {\n\t\tconst rulesList = rules();\n\n\t\treturn {\n\t\t\ttype: 'stylesheet',\n\t\t\tstylesheet: {\n\t\t\t\tsource: options.source,\n\t\t\t\trules: rulesList,\n\t\t\t\tparsingErrors: errorsList,\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * Opening brace.\n\t */\n\n\tfunction open() {\n\t\treturn match( /^{\\s*/ );\n\t}\n\n\t/**\n\t * Closing brace.\n\t */\n\n\tfunction close() {\n\t\treturn match( /^}/ );\n\t}\n\n\t/**\n\t * Parse ruleset.\n\t */\n\n\tfunction rules() {\n\t\tlet node;\n\t\tconst accumulator = [];\n\t\twhitespace();\n\t\tcomments( accumulator );\n\t\twhile (\n\t\t\tcss.length &&\n\t\t\tcss.charAt( 0 ) !== '}' &&\n\t\t\t( node = atrule() || rule() )\n\t\t) {\n\t\t\tif ( node !== false ) {\n\t\t\t\taccumulator.push( node );\n\t\t\t\tcomments( accumulator );\n\t\t\t}\n\t\t}\n\t\treturn accumulator;\n\t}\n\n\t/**\n\t * Match `re` and return captures.\n\t */\n\n\tfunction match( re ) {\n\t\tconst m = re.exec( css );\n\t\tif ( ! m ) {\n\t\t\treturn;\n\t\t}\n\t\tconst str = m[ 0 ];\n\t\tupdatePosition( str );\n\t\tcss = css.slice( str.length );\n\t\treturn m;\n\t}\n\n\t/**\n\t * Parse whitespace.\n\t */\n\n\tfunction whitespace() {\n\t\tmatch( /^\\s*/ );\n\t}\n\n\t/**\n\t * Parse comments;\n\t */\n\n\tfunction comments( accumulator ) {\n\t\tlet c;\n\t\taccumulator = accumulator || [];\n\t\t// eslint-disable-next-line no-cond-assign\n\t\twhile ( ( c = comment() ) ) {\n\t\t\tif ( c !== false ) {\n\t\t\t\taccumulator.push( c );\n\t\t\t}\n\t\t}\n\t\treturn accumulator;\n\t}\n\n\t/**\n\t * Parse comment.\n\t */\n\n\tfunction comment() {\n\t\tconst pos = position();\n\t\tif ( '/' !== css.charAt( 0 ) || '*' !== css.charAt( 1 ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet i = 2;\n\t\twhile (\n\t\t\t'' !== css.charAt( i ) &&\n\t\t\t( '*' !== css.charAt( i ) || '/' !== css.charAt( i + 1 ) )\n\t\t) {\n\t\t\t++i;\n\t\t}\n\t\ti += 2;\n\n\t\tif ( '' === css.charAt( i - 1 ) ) {\n\t\t\treturn error( 'End of comment missing' );\n\t\t}\n\n\t\tconst str = css.slice( 2, i - 2 );\n\t\tcolumn += 2;\n\t\tupdatePosition( str );\n\t\tcss = css.slice( i );\n\t\tcolumn += 2;\n\n\t\treturn pos( {\n\t\t\ttype: 'comment',\n\t\t\tcomment: str,\n\t\t} );\n\t}\n\n\t/**\n\t * Parse selector.\n\t */\n\n\tfunction selector() {\n\t\tconst m = match( /^([^{]+)/ );\n\t\tif ( ! m ) {\n\t\t\treturn;\n\t\t}\n\t\t// FIXME: Remove all comments from selectors http://ostermiller.org/findcomment.html\n\t\treturn trim( m[ 0 ] )\n\t\t\t.replace( /\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*\\/+/g, '' )\n\t\t\t.replace( /\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'/g, function ( matched ) {\n\t\t\t\treturn matched.replace( /,/g, '\\u200C' );\n\t\t\t} )\n\t\t\t.split( /\\s*(?![^(]*\\)),\\s*/ )\n\t\t\t.map( function ( s ) {\n\t\t\t\treturn s.replace( /\\u200C/g, ',' );\n\t\t\t} );\n\t}\n\n\t/**\n\t * Parse declaration.\n\t */\n\n\tfunction declaration() {\n\t\tconst pos = position();\n\n\t\t// prop\n\t\tlet prop = match( /^(\\*?[-#\\/\\*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/ );\n\t\tif ( ! prop ) {\n\t\t\treturn;\n\t\t}\n\t\tprop = trim( prop[ 0 ] );\n\n\t\t// :\n\t\tif ( ! match( /^:\\s*/ ) ) {\n\t\t\treturn error( \"property missing ':'\" );\n\t\t}\n\n\t\t// val\n\t\tconst val = match(\n\t\t\t/^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^\\)]*?\\)|[^};])+)/\n\t\t);\n\n\t\tconst ret = pos( {\n\t\t\ttype: 'declaration',\n\t\t\tproperty: prop.replace( commentre, '' ),\n\t\t\tvalue: val ? trim( val[ 0 ] ).replace( commentre, '' ) : '',\n\t\t} );\n\n\t\t// ;\n\t\tmatch( /^[;\\s]*/ );\n\n\t\treturn ret;\n\t}\n\n\t/**\n\t * Parse declarations.\n\t */\n\n\tfunction declarations() {\n\t\tconst decls = [];\n\n\t\tif ( ! open() ) {\n\t\t\treturn error( \"missing '{'\" );\n\t\t}\n\t\tcomments( decls );\n\n\t\t// declarations\n\t\tlet decl;\n\t\t// eslint-disable-next-line no-cond-assign\n\t\twhile ( ( decl = declaration() ) ) {\n\t\t\tif ( decl !== false ) {\n\t\t\t\tdecls.push( decl );\n\t\t\t\tcomments( decls );\n\t\t\t}\n\t\t}\n\n\t\tif ( ! close() ) {\n\t\t\treturn error( \"missing '}'\" );\n\t\t}\n\t\treturn decls;\n\t}\n\n\t/**\n\t * Parse keyframe.\n\t */\n\n\tfunction keyframe() {\n\t\tlet m;\n\t\tconst vals = [];\n\t\tconst pos = position();\n\n\t\t// eslint-disable-next-line no-cond-assign\n\t\twhile ( ( m = match( /^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/ ) ) ) {\n\t\t\tvals.push( m[ 1 ] );\n\t\t\tmatch( /^,\\s*/ );\n\t\t}\n\n\t\tif ( ! vals.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn pos( {\n\t\t\ttype: 'keyframe',\n\t\t\tvalues: vals,\n\t\t\tdeclarations: declarations(),\n\t\t} );\n\t}\n\n\t/**\n\t * Parse keyframes.\n\t */\n\n\tfunction atkeyframes() {\n\t\tconst pos = position();\n\t\tlet m = match( /^@([-\\w]+)?keyframes\\s*/ );\n\n\t\tif ( ! m ) {\n\t\t\treturn;\n\t\t}\n\t\tconst vendor = m[ 1 ];\n\n\t\t// identifier\n\t\tm = match( /^([-\\w]+)\\s*/ );\n\t\tif ( ! m ) {\n\t\t\treturn error( '@keyframes missing name' );\n\t\t}\n\t\tconst name = m[ 1 ];\n\n\t\tif ( ! open() ) {\n\t\t\treturn error( \"@keyframes missing '{'\" );\n\t\t}\n\n\t\tlet frame;\n\t\tlet frames = comments();\n\t\t// eslint-disable-next-line no-cond-assign\n\t\twhile ( ( frame = keyframe() ) ) {\n\t\t\tframes.push( frame );\n\t\t\tframes = frames.concat( comments() );\n\t\t}\n\n\t\tif ( ! close() ) {\n\t\t\treturn error( \"@keyframes missing '}'\" );\n\t\t}\n\n\t\treturn pos( {\n\t\t\ttype: 'keyframes',\n\t\t\tname,\n\t\t\tvendor,\n\t\t\tkeyframes: frames,\n\t\t} );\n\t}\n\n\t/**\n\t * Parse supports.\n\t */\n\n\tfunction atsupports() {\n\t\tconst pos = position();\n\t\tconst m = match( /^@supports *([^{]+)/ );\n\n\t\tif ( ! m ) {\n\t\t\treturn;\n\t\t}\n\t\tconst supports = trim( m[ 1 ] );\n\n\t\tif ( ! open() ) {\n\t\t\treturn error( \"@supports missing '{'\" );\n\t\t}\n\n\t\tconst style = comments().concat( rules() );\n\n\t\tif ( ! close() ) {\n\t\t\treturn error( \"@supports missing '}'\" );\n\t\t}\n\n\t\treturn pos( {\n\t\t\ttype: 'supports',\n\t\t\tsupports,\n\t\t\trules: style,\n\t\t} );\n\t}\n\n\t/**\n\t * Parse host.\n\t */\n\n\tfunction athost() {\n\t\tconst pos = position();\n\t\tconst m = match( /^@host\\s*/ );\n\n\t\tif ( ! m ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! open() ) {\n\t\t\treturn error( \"@host missing '{'\" );\n\t\t}\n\n\t\tconst style = comments().concat( rules() );\n\n\t\tif ( ! close() ) {\n\t\t\treturn error( \"@host missing '}'\" );\n\t\t}\n\n\t\treturn pos( {\n\t\t\ttype: 'host',\n\t\t\trules: style,\n\t\t} );\n\t}\n\n\t/**\n\t * Parse media.\n\t */\n\n\tfunction atmedia() {\n\t\tconst pos = position();\n\t\tconst m = match( /^@media *([^{]+)/ );\n\n\t\tif ( ! m ) {\n\t\t\treturn;\n\t\t}\n\t\tconst media = trim( m[ 1 ] );\n\n\t\tif ( ! open() ) {\n\t\t\treturn error( \"@media missing '{'\" );\n\t\t}\n\n\t\tconst style = comments().concat( rules() );\n\n\t\tif ( ! close() ) {\n\t\t\treturn error( \"@media missing '}'\" );\n\t\t}\n\n\t\treturn pos( {\n\t\t\ttype: 'media',\n\t\t\tmedia,\n\t\t\trules: style,\n\t\t} );\n\t}\n\n\t/**\n\t * Parse custom-media.\n\t */\n\n\tfunction atcustommedia() {\n\t\tconst pos = position();\n\t\tconst m = match( /^@custom-media\\s+(--[^\\s]+)\\s*([^{;]+);/ );\n\t\tif ( ! m ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn pos( {\n\t\t\ttype: 'custom-media',\n\t\t\tname: trim( m[ 1 ] ),\n\t\t\tmedia: trim( m[ 2 ] ),\n\t\t} );\n\t}\n\n\t/**\n\t * Parse paged media.\n\t */\n\n\tfunction atpage() {\n\t\tconst pos = position();\n\t\tconst m = match( /^@page */ );\n\t\tif ( ! m ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst sel = selector() || [];\n\n\t\tif ( ! open() ) {\n\t\t\treturn error( \"@page missing '{'\" );\n\t\t}\n\t\tlet decls = comments();\n\n\t\t// declarations\n\t\tlet decl;\n\t\t// eslint-disable-next-line no-cond-assign\n\t\twhile ( ( decl = declaration() ) ) {\n\t\t\tdecls.push( decl );\n\t\t\tdecls = decls.concat( comments() );\n\t\t}\n\n\t\tif ( ! close() ) {\n\t\t\treturn error( \"@page missing '}'\" );\n\t\t}\n\n\t\treturn pos( {\n\t\t\ttype: 'page',\n\t\t\tselectors: sel,\n\t\t\tdeclarations: decls,\n\t\t} );\n\t}\n\n\t/**\n\t * Parse document.\n\t */\n\n\tfunction atdocument() {\n\t\tconst pos = position();\n\t\tconst m = match( /^@([-\\w]+)?document *([^{]+)/ );\n\t\tif ( ! m ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst vendor = trim( m[ 1 ] );\n\t\tconst doc = trim( m[ 2 ] );\n\n\t\tif ( ! open() ) {\n\t\t\treturn error( \"@document missing '{'\" );\n\t\t}\n\n\t\tconst style = comments().concat( rules() );\n\n\t\tif ( ! close() ) {\n\t\t\treturn error( \"@document missing '}'\" );\n\t\t}\n\n\t\treturn pos( {\n\t\t\ttype: 'document',\n\t\t\tdocument: doc,\n\t\t\tvendor,\n\t\t\trules: style,\n\t\t} );\n\t}\n\n\t/**\n\t * Parse font-face.\n\t */\n\n\tfunction atfontface() {\n\t\tconst pos = position();\n\t\tconst m = match( /^@font-face\\s*/ );\n\t\tif ( ! m ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! open() ) {\n\t\t\treturn error( \"@font-face missing '{'\" );\n\t\t}\n\t\tlet decls = comments();\n\n\t\t// declarations\n\t\tlet decl;\n\t\t// eslint-disable-next-line no-cond-assign\n\t\twhile ( ( decl = declaration() ) ) {\n\t\t\tdecls.push( decl );\n\t\t\tdecls = decls.concat( comments() );\n\t\t}\n\n\t\tif ( ! close() ) {\n\t\t\treturn error( \"@font-face missing '}'\" );\n\t\t}\n\n\t\treturn pos( {\n\t\t\ttype: 'font-face',\n\t\t\tdeclarations: decls,\n\t\t} );\n\t}\n\n\t/**\n\t * Parse import\n\t */\n\n\tconst atimport = _compileAtrule( 'import' );\n\n\t/**\n\t * Parse charset\n\t */\n\n\tconst atcharset = _compileAtrule( 'charset' );\n\n\t/**\n\t * Parse namespace\n\t */\n\n\tconst atnamespace = _compileAtrule( 'namespace' );\n\n\t/**\n\t * Parse non-block at-rules\n\t */\n\n\tfunction _compileAtrule( name ) {\n\t\tconst re = new RegExp( '^@' + name + '\\\\s*([^;]+);' );\n\t\treturn function () {\n\t\t\tconst pos = position();\n\t\t\tconst m = match( re );\n\t\t\tif ( ! m ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst ret = { type: name };\n\t\t\tret[ name ] = m[ 1 ].trim();\n\t\t\treturn pos( ret );\n\t\t};\n\t}\n\n\t/**\n\t * Parse at rule.\n\t */\n\n\tfunction atrule() {\n\t\tif ( css[ 0 ] !== '@' ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn (\n\t\t\tatkeyframes() ||\n\t\t\tatmedia() ||\n\t\t\tatcustommedia() ||\n\t\t\tatsupports() ||\n\t\t\tatimport() ||\n\t\t\tatcharset() ||\n\t\t\tatnamespace() ||\n\t\t\tatdocument() ||\n\t\t\tatpage() ||\n\t\t\tathost() ||\n\t\t\tatfontface()\n\t\t);\n\t}\n\n\t/**\n\t * Parse rule.\n\t */\n\n\tfunction rule() {\n\t\tconst pos = position();\n\t\tconst sel = selector();\n\n\t\tif ( ! sel ) {\n\t\t\treturn error( 'selector missing' );\n\t\t}\n\t\tcomments();\n\n\t\treturn pos( {\n\t\t\ttype: 'rule',\n\t\t\tselectors: sel,\n\t\t\tdeclarations: declarations(),\n\t\t} );\n\t}\n\n\treturn addParent( stylesheet() );\n}\n\n/**\n * Trim `str`.\n */\n\nfunction trim( str ) {\n\treturn str ? str.replace( /^\\s+|\\s+$/g, '' ) : '';\n}\n\n/**\n * Adds non-enumerable parent node reference to each node.\n */\n\nfunction addParent( obj, parent ) {\n\tconst isNode = obj && typeof obj.type === 'string';\n\tconst childParent = isNode ? obj : parent;\n\n\tfor ( const k in obj ) {\n\t\tconst value = obj[ k ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\tvalue.forEach( function ( v ) {\n\t\t\t\taddParent( v, childParent );\n\t\t\t} );\n\t\t} else if ( value && typeof value === 'object' ) {\n\t\t\taddParent( value, childParent );\n\t\t}\n\t}\n\n\tif ( isNode ) {\n\t\tObject.defineProperty( obj, 'parent', {\n\t\t\tconfigurable: true,\n\t\t\twritable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: parent || null,\n\t\t} );\n\t}\n\n\treturn obj;\n}\n\n/* eslint-enable @wordpress/no-unused-vars-before-return */\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/utils/transform-styles/ast/parse.js"],"names":["commentre","css","options","lineno","column","updatePosition","str","lines","match","length","i","lastIndexOf","position","start","line","node","Position","whitespace","end","source","prototype","content","errorsList","error","msg","err","Error","reason","filename","silent","push","stylesheet","rulesList","rules","type","parsingErrors","open","close","accumulator","comments","charAt","atrule","rule","re","m","exec","slice","c","comment","pos","selector","trim","replace","matched","split","map","s","declaration","prop","val","ret","property","value","declarations","decls","decl","keyframe","vals","values","atkeyframes","vendor","name","frame","frames","concat","keyframes","atsupports","supports","style","athost","atmedia","media","atcustommedia","atpage","sel","selectors","atdocument","doc","document","atfontface","atimport","_compileAtrule","atcharset","atnamespace","RegExp","addParent","obj","parent","isNode","childParent","k","Array","isArray","forEach","v","Object","defineProperty","configurable","writable","enumerable"],"mappings":"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","sourcesContent":["/* eslint-disable @wordpress/no-unused-vars-before-return */\n\n// Adapted from https://github.com/reworkcss/css\n// because we needed to remove source map support.\n\n// http://www.w3.org/TR/CSS21/grammar.htm\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nconst commentre = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nexport default function ( css, options ) {\n\toptions = options || {};\n\n\t/**\n\t * Positional.\n\t */\n\n\tlet lineno = 1;\n\tlet column = 1;\n\n\t/**\n\t * Update lineno and column based on `str`.\n\t */\n\n\tfunction updatePosition( str ) {\n\t\tconst lines = str.match( /\\n/g );\n\t\tif ( lines ) {\n\t\t\tlineno += lines.length;\n\t\t}\n\t\tconst i = str.lastIndexOf( '\\n' );\n\t\t// eslint-disable-next-line no-bitwise\n\t\tcolumn = ~i ? str.length - i : column + str.length;\n\t}\n\n\t/**\n\t * Mark position and patch `node.position`.\n\t */\n\n\tfunction position() {\n\t\tconst start = { line: lineno, column };\n\t\treturn function ( node ) {\n\t\t\tnode.position = new Position( start );\n\t\t\twhitespace();\n\t\t\treturn node;\n\t\t};\n\t}\n\n\t/**\n\t * Store position information for a node\n\t */\n\n\tfunction Position( start ) {\n\t\tthis.start = start;\n\t\tthis.end = { line: lineno, column };\n\t\tthis.source = options.source;\n\t}\n\n\t/**\n\t * Non-enumerable source string\n\t */\n\n\tPosition.prototype.content = css;\n\n\t/**\n\t * Error `msg`.\n\t */\n\n\tconst errorsList = [];\n\n\tfunction error( msg ) {\n\t\tconst err = new Error(\n\t\t\toptions.source + ':' + lineno + ':' + column + ': ' + msg\n\t\t);\n\t\terr.reason = msg;\n\t\terr.filename = options.source;\n\t\terr.line = lineno;\n\t\terr.column = column;\n\t\terr.source = css;\n\n\t\tif ( options.silent ) {\n\t\t\terrorsList.push( err );\n\t\t} else {\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\t/**\n\t * Parse stylesheet.\n\t */\n\n\tfunction stylesheet() {\n\t\tconst rulesList = rules();\n\n\t\treturn {\n\t\t\ttype: 'stylesheet',\n\t\t\tstylesheet: {\n\t\t\t\tsource: options.source,\n\t\t\t\trules: rulesList,\n\t\t\t\tparsingErrors: errorsList,\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * Opening brace.\n\t */\n\n\tfunction open() {\n\t\treturn match( /^{\\s*/ );\n\t}\n\n\t/**\n\t * Closing brace.\n\t */\n\n\tfunction close() {\n\t\treturn match( /^}/ );\n\t}\n\n\t/**\n\t * Parse ruleset.\n\t */\n\n\tfunction rules() {\n\t\tlet node;\n\t\tconst accumulator = [];\n\t\twhitespace();\n\t\tcomments( accumulator );\n\t\twhile (\n\t\t\tcss.length &&\n\t\t\tcss.charAt( 0 ) !== '}' &&\n\t\t\t( node = atrule() || rule() )\n\t\t) {\n\t\t\tif ( node !== false ) {\n\t\t\t\taccumulator.push( node );\n\t\t\t\tcomments( accumulator );\n\t\t\t}\n\t\t}\n\t\treturn accumulator;\n\t}\n\n\t/**\n\t * Match `re` and return captures.\n\t */\n\n\tfunction match( re ) {\n\t\tconst m = re.exec( css );\n\t\tif ( ! m ) {\n\t\t\treturn;\n\t\t}\n\t\tconst str = m[ 0 ];\n\t\tupdatePosition( str );\n\t\tcss = css.slice( str.length );\n\t\treturn m;\n\t}\n\n\t/**\n\t * Parse whitespace.\n\t */\n\n\tfunction whitespace() {\n\t\tmatch( /^\\s*/ );\n\t}\n\n\t/**\n\t * Parse comments;\n\t */\n\n\tfunction comments( accumulator ) {\n\t\tlet c;\n\t\taccumulator = accumulator || [];\n\t\t// eslint-disable-next-line no-cond-assign\n\t\twhile ( ( c = comment() ) ) {\n\t\t\tif ( c !== false ) {\n\t\t\t\taccumulator.push( c );\n\t\t\t}\n\t\t}\n\t\treturn accumulator;\n\t}\n\n\t/**\n\t * Parse comment.\n\t */\n\n\tfunction comment() {\n\t\tconst pos = position();\n\t\tif ( '/' !== css.charAt( 0 ) || '*' !== css.charAt( 1 ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet i = 2;\n\t\twhile (\n\t\t\t'' !== css.charAt( i ) &&\n\t\t\t( '*' !== css.charAt( i ) || '/' !== css.charAt( i + 1 ) )\n\t\t) {\n\t\t\t++i;\n\t\t}\n\t\ti += 2;\n\n\t\tif ( '' === css.charAt( i - 1 ) ) {\n\t\t\treturn error( 'End of comment missing' );\n\t\t}\n\n\t\tconst str = css.slice( 2, i - 2 );\n\t\tcolumn += 2;\n\t\tupdatePosition( str );\n\t\tcss = css.slice( i );\n\t\tcolumn += 2;\n\n\t\treturn pos( {\n\t\t\ttype: 'comment',\n\t\t\tcomment: str,\n\t\t} );\n\t}\n\n\t/**\n\t * Parse selector.\n\t */\n\n\tfunction selector() {\n\t\tconst m = match( /^([^{]+)/ );\n\t\tif ( ! m ) {\n\t\t\treturn;\n\t\t}\n\t\t// FIXME: Remove all comments from selectors http://ostermiller.org/findcomment.html\n\t\treturn trim( m[ 0 ] )\n\t\t\t.replace( /\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*\\/+/g, '' )\n\t\t\t.replace( /\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'/g, function ( matched ) {\n\t\t\t\treturn matched.replace( /,/g, '\\u200C' );\n\t\t\t} )\n\t\t\t.split( /\\s*(?![^(]*\\)),\\s*/ )\n\t\t\t.map( function ( s ) {\n\t\t\t\treturn s.replace( /\\u200C/g, ',' );\n\t\t\t} );\n\t}\n\n\t/**\n\t * Parse declaration.\n\t */\n\n\tfunction declaration() {\n\t\tconst pos = position();\n\n\t\t// prop.\n\t\tlet prop = match( /^(\\*?[-#\\/\\*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/ );\n\t\tif ( ! prop ) {\n\t\t\treturn;\n\t\t}\n\t\tprop = trim( prop[ 0 ] );\n\n\t\t// :\n\t\tif ( ! match( /^:\\s*/ ) ) {\n\t\t\treturn error( \"property missing ':'\" );\n\t\t}\n\n\t\t// val.\n\t\tconst val = match(\n\t\t\t/^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^\\)]*?\\)|[^};])+)/\n\t\t);\n\n\t\tconst ret = pos( {\n\t\t\ttype: 'declaration',\n\t\t\tproperty: prop.replace( commentre, '' ),\n\t\t\tvalue: val ? trim( val[ 0 ] ).replace( commentre, '' ) : '',\n\t\t} );\n\n\t\t// ;\n\t\tmatch( /^[;\\s]*/ );\n\n\t\treturn ret;\n\t}\n\n\t/**\n\t * Parse declarations.\n\t */\n\n\tfunction declarations() {\n\t\tconst decls = [];\n\n\t\tif ( ! open() ) {\n\t\t\treturn error( \"missing '{'\" );\n\t\t}\n\t\tcomments( decls );\n\n\t\t// declarations.\n\t\tlet decl;\n\t\t// eslint-disable-next-line no-cond-assign\n\t\twhile ( ( decl = declaration() ) ) {\n\t\t\tif ( decl !== false ) {\n\t\t\t\tdecls.push( decl );\n\t\t\t\tcomments( decls );\n\t\t\t}\n\t\t}\n\n\t\tif ( ! close() ) {\n\t\t\treturn error( \"missing '}'\" );\n\t\t}\n\t\treturn decls;\n\t}\n\n\t/**\n\t * Parse keyframe.\n\t */\n\n\tfunction keyframe() {\n\t\tlet m;\n\t\tconst vals = [];\n\t\tconst pos = position();\n\n\t\t// eslint-disable-next-line no-cond-assign\n\t\twhile ( ( m = match( /^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/ ) ) ) {\n\t\t\tvals.push( m[ 1 ] );\n\t\t\tmatch( /^,\\s*/ );\n\t\t}\n\n\t\tif ( ! vals.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn pos( {\n\t\t\ttype: 'keyframe',\n\t\t\tvalues: vals,\n\t\t\tdeclarations: declarations(),\n\t\t} );\n\t}\n\n\t/**\n\t * Parse keyframes.\n\t */\n\n\tfunction atkeyframes() {\n\t\tconst pos = position();\n\t\tlet m = match( /^@([-\\w]+)?keyframes\\s*/ );\n\n\t\tif ( ! m ) {\n\t\t\treturn;\n\t\t}\n\t\tconst vendor = m[ 1 ];\n\n\t\t// identifier\n\t\tm = match( /^([-\\w]+)\\s*/ );\n\t\tif ( ! m ) {\n\t\t\treturn error( '@keyframes missing name' );\n\t\t}\n\t\tconst name = m[ 1 ];\n\n\t\tif ( ! open() ) {\n\t\t\treturn error( \"@keyframes missing '{'\" );\n\t\t}\n\n\t\tlet frame;\n\t\tlet frames = comments();\n\t\t// eslint-disable-next-line no-cond-assign\n\t\twhile ( ( frame = keyframe() ) ) {\n\t\t\tframes.push( frame );\n\t\t\tframes = frames.concat( comments() );\n\t\t}\n\n\t\tif ( ! close() ) {\n\t\t\treturn error( \"@keyframes missing '}'\" );\n\t\t}\n\n\t\treturn pos( {\n\t\t\ttype: 'keyframes',\n\t\t\tname,\n\t\t\tvendor,\n\t\t\tkeyframes: frames,\n\t\t} );\n\t}\n\n\t/**\n\t * Parse supports.\n\t */\n\n\tfunction atsupports() {\n\t\tconst pos = position();\n\t\tconst m = match( /^@supports *([^{]+)/ );\n\n\t\tif ( ! m ) {\n\t\t\treturn;\n\t\t}\n\t\tconst supports = trim( m[ 1 ] );\n\n\t\tif ( ! open() ) {\n\t\t\treturn error( \"@supports missing '{'\" );\n\t\t}\n\n\t\tconst style = comments().concat( rules() );\n\n\t\tif ( ! close() ) {\n\t\t\treturn error( \"@supports missing '}'\" );\n\t\t}\n\n\t\treturn pos( {\n\t\t\ttype: 'supports',\n\t\t\tsupports,\n\t\t\trules: style,\n\t\t} );\n\t}\n\n\t/**\n\t * Parse host.\n\t */\n\n\tfunction athost() {\n\t\tconst pos = position();\n\t\tconst m = match( /^@host\\s*/ );\n\n\t\tif ( ! m ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! open() ) {\n\t\t\treturn error( \"@host missing '{'\" );\n\t\t}\n\n\t\tconst style = comments().concat( rules() );\n\n\t\tif ( ! close() ) {\n\t\t\treturn error( \"@host missing '}'\" );\n\t\t}\n\n\t\treturn pos( {\n\t\t\ttype: 'host',\n\t\t\trules: style,\n\t\t} );\n\t}\n\n\t/**\n\t * Parse media.\n\t */\n\n\tfunction atmedia() {\n\t\tconst pos = position();\n\t\tconst m = match( /^@media *([^{]+)/ );\n\n\t\tif ( ! m ) {\n\t\t\treturn;\n\t\t}\n\t\tconst media = trim( m[ 1 ] );\n\n\t\tif ( ! open() ) {\n\t\t\treturn error( \"@media missing '{'\" );\n\t\t}\n\n\t\tconst style = comments().concat( rules() );\n\n\t\tif ( ! close() ) {\n\t\t\treturn error( \"@media missing '}'\" );\n\t\t}\n\n\t\treturn pos( {\n\t\t\ttype: 'media',\n\t\t\tmedia,\n\t\t\trules: style,\n\t\t} );\n\t}\n\n\t/**\n\t * Parse custom-media.\n\t */\n\n\tfunction atcustommedia() {\n\t\tconst pos = position();\n\t\tconst m = match( /^@custom-media\\s+(--[^\\s]+)\\s*([^{;]+);/ );\n\t\tif ( ! m ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn pos( {\n\t\t\ttype: 'custom-media',\n\t\t\tname: trim( m[ 1 ] ),\n\t\t\tmedia: trim( m[ 2 ] ),\n\t\t} );\n\t}\n\n\t/**\n\t * Parse paged media.\n\t */\n\n\tfunction atpage() {\n\t\tconst pos = position();\n\t\tconst m = match( /^@page */ );\n\t\tif ( ! m ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst sel = selector() || [];\n\n\t\tif ( ! open() ) {\n\t\t\treturn error( \"@page missing '{'\" );\n\t\t}\n\t\tlet decls = comments();\n\n\t\t// declarations.\n\t\tlet decl;\n\t\t// eslint-disable-next-line no-cond-assign\n\t\twhile ( ( decl = declaration() ) ) {\n\t\t\tdecls.push( decl );\n\t\t\tdecls = decls.concat( comments() );\n\t\t}\n\n\t\tif ( ! close() ) {\n\t\t\treturn error( \"@page missing '}'\" );\n\t\t}\n\n\t\treturn pos( {\n\t\t\ttype: 'page',\n\t\t\tselectors: sel,\n\t\t\tdeclarations: decls,\n\t\t} );\n\t}\n\n\t/**\n\t * Parse document.\n\t */\n\n\tfunction atdocument() {\n\t\tconst pos = position();\n\t\tconst m = match( /^@([-\\w]+)?document *([^{]+)/ );\n\t\tif ( ! m ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst vendor = trim( m[ 1 ] );\n\t\tconst doc = trim( m[ 2 ] );\n\n\t\tif ( ! open() ) {\n\t\t\treturn error( \"@document missing '{'\" );\n\t\t}\n\n\t\tconst style = comments().concat( rules() );\n\n\t\tif ( ! close() ) {\n\t\t\treturn error( \"@document missing '}'\" );\n\t\t}\n\n\t\treturn pos( {\n\t\t\ttype: 'document',\n\t\t\tdocument: doc,\n\t\t\tvendor,\n\t\t\trules: style,\n\t\t} );\n\t}\n\n\t/**\n\t * Parse font-face.\n\t */\n\n\tfunction atfontface() {\n\t\tconst pos = position();\n\t\tconst m = match( /^@font-face\\s*/ );\n\t\tif ( ! m ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! open() ) {\n\t\t\treturn error( \"@font-face missing '{'\" );\n\t\t}\n\t\tlet decls = comments();\n\n\t\t// declarations.\n\t\tlet decl;\n\t\t// eslint-disable-next-line no-cond-assign\n\t\twhile ( ( decl = declaration() ) ) {\n\t\t\tdecls.push( decl );\n\t\t\tdecls = decls.concat( comments() );\n\t\t}\n\n\t\tif ( ! close() ) {\n\t\t\treturn error( \"@font-face missing '}'\" );\n\t\t}\n\n\t\treturn pos( {\n\t\t\ttype: 'font-face',\n\t\t\tdeclarations: decls,\n\t\t} );\n\t}\n\n\t/**\n\t * Parse import\n\t */\n\n\tconst atimport = _compileAtrule( 'import' );\n\n\t/**\n\t * Parse charset\n\t */\n\n\tconst atcharset = _compileAtrule( 'charset' );\n\n\t/**\n\t * Parse namespace\n\t */\n\n\tconst atnamespace = _compileAtrule( 'namespace' );\n\n\t/**\n\t * Parse non-block at-rules\n\t */\n\n\tfunction _compileAtrule( name ) {\n\t\tconst re = new RegExp( '^@' + name + '\\\\s*([^;]+);' );\n\t\treturn function () {\n\t\t\tconst pos = position();\n\t\t\tconst m = match( re );\n\t\t\tif ( ! m ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst ret = { type: name };\n\t\t\tret[ name ] = m[ 1 ].trim();\n\t\t\treturn pos( ret );\n\t\t};\n\t}\n\n\t/**\n\t * Parse at rule.\n\t */\n\n\tfunction atrule() {\n\t\tif ( css[ 0 ] !== '@' ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn (\n\t\t\tatkeyframes() ||\n\t\t\tatmedia() ||\n\t\t\tatcustommedia() ||\n\t\t\tatsupports() ||\n\t\t\tatimport() ||\n\t\t\tatcharset() ||\n\t\t\tatnamespace() ||\n\t\t\tatdocument() ||\n\t\t\tatpage() ||\n\t\t\tathost() ||\n\t\t\tatfontface()\n\t\t);\n\t}\n\n\t/**\n\t * Parse rule.\n\t */\n\n\tfunction rule() {\n\t\tconst pos = position();\n\t\tconst sel = selector();\n\n\t\tif ( ! sel ) {\n\t\t\treturn error( 'selector missing' );\n\t\t}\n\t\tcomments();\n\n\t\treturn pos( {\n\t\t\ttype: 'rule',\n\t\t\tselectors: sel,\n\t\t\tdeclarations: declarations(),\n\t\t} );\n\t}\n\n\treturn addParent( stylesheet() );\n}\n\n/**\n * Trim `str`.\n */\n\nfunction trim( str ) {\n\treturn str ? str.replace( /^\\s+|\\s+$/g, '' ) : '';\n}\n\n/**\n * Adds non-enumerable parent node reference to each node.\n */\n\nfunction addParent( obj, parent ) {\n\tconst isNode = obj && typeof obj.type === 'string';\n\tconst childParent = isNode ? obj : parent;\n\n\tfor ( const k in obj ) {\n\t\tconst value = obj[ k ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\tvalue.forEach( function ( v ) {\n\t\t\t\taddParent( v, childParent );\n\t\t\t} );\n\t\t} else if ( value && typeof value === 'object' ) {\n\t\t\taddParent( value, childParent );\n\t\t}\n\t}\n\n\tif ( isNode ) {\n\t\tObject.defineProperty( obj, 'parent', {\n\t\t\tconfigurable: true,\n\t\t\twritable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: parent || null,\n\t\t} );\n\t}\n\n\treturn obj;\n}\n\n/* eslint-enable @wordpress/no-unused-vars-before-return */\n"]}
|
|
@@ -37,14 +37,14 @@ function isAbsolutePath(filePath) {
|
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
function isValidURL(meta) {
|
|
40
|
-
//
|
|
40
|
+
// Ignore hashes or data uris.
|
|
41
41
|
if (meta.value.indexOf('data:') === 0 || meta.value.indexOf('#') === 0) {
|
|
42
42
|
return false;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
if (isAbsolutePath(meta.value)) {
|
|
46
46
|
return false;
|
|
47
|
-
} //
|
|
47
|
+
} // Do not handle the http/https urls if `includeRemote` is false.
|
|
48
48
|
|
|
49
49
|
|
|
50
50
|
if (isRemotePath(meta.value)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/utils/transform-styles/transforms/url-rewrite.js"],"names":["isRemotePath","filePath","test","isAbsolutePath","isValidURL","meta","value","indexOf","getResourcePath","str","baseURL","URL","toString","processURL","newUrl","before","quote","after","getURLs","reg","match","URLs","exec","source","push","replaceURLs","raw","forEach","item","replace","rewrite","rootURL","node","type","updatedURLs","map"],"mappings":"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","sourcesContent":["/**\n * Return `true` if the given path is http/https.\n *\n * @param {string} filePath path\n *\n * @return {boolean} is remote path.\n */\nfunction isRemotePath( filePath ) {\n\treturn /^(?:https?:)?\\/\\//.test( filePath );\n}\n\n/**\n * Return `true` if the given filePath is an absolute url.\n *\n * @param {string} filePath path\n *\n * @return {boolean} is absolute path.\n */\nfunction isAbsolutePath( filePath ) {\n\treturn /^\\/(?!\\/)/.test( filePath );\n}\n\n/**\n * Whether or not the url should be inluded.\n *\n * @param {Object} meta url meta info\n *\n * @return {boolean} is valid.\n */\nfunction isValidURL( meta ) {\n\t//
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/utils/transform-styles/transforms/url-rewrite.js"],"names":["isRemotePath","filePath","test","isAbsolutePath","isValidURL","meta","value","indexOf","getResourcePath","str","baseURL","URL","toString","processURL","newUrl","before","quote","after","getURLs","reg","match","URLs","exec","source","push","replaceURLs","raw","forEach","item","replace","rewrite","rootURL","node","type","updatedURLs","map"],"mappings":"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","sourcesContent":["/**\n * Return `true` if the given path is http/https.\n *\n * @param {string} filePath path\n *\n * @return {boolean} is remote path.\n */\nfunction isRemotePath( filePath ) {\n\treturn /^(?:https?:)?\\/\\//.test( filePath );\n}\n\n/**\n * Return `true` if the given filePath is an absolute url.\n *\n * @param {string} filePath path\n *\n * @return {boolean} is absolute path.\n */\nfunction isAbsolutePath( filePath ) {\n\treturn /^\\/(?!\\/)/.test( filePath );\n}\n\n/**\n * Whether or not the url should be inluded.\n *\n * @param {Object} meta url meta info\n *\n * @return {boolean} is valid.\n */\nfunction isValidURL( meta ) {\n\t// Ignore hashes or data uris.\n\tif (\n\t\tmeta.value.indexOf( 'data:' ) === 0 ||\n\t\tmeta.value.indexOf( '#' ) === 0\n\t) {\n\t\treturn false;\n\t}\n\n\tif ( isAbsolutePath( meta.value ) ) {\n\t\treturn false;\n\t}\n\n\t// Do not handle the http/https urls if `includeRemote` is false.\n\tif ( isRemotePath( meta.value ) ) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n\n/**\n * Get the absolute path of the url, relative to the basePath\n *\n * @param {string} str the url\n * @param {string} baseURL base URL\n *\n * @return {string} the full path to the file\n */\nfunction getResourcePath( str, baseURL ) {\n\treturn new URL( str, baseURL ).toString();\n}\n\n/**\n * Process the single `url()` pattern\n *\n * @param {string} baseURL the base URL for relative URLs.\n *\n * @return {Promise} the Promise.\n */\nfunction processURL( baseURL ) {\n\treturn ( meta ) => ( {\n\t\t...meta,\n\t\tnewUrl:\n\t\t\t'url(' +\n\t\t\tmeta.before +\n\t\t\tmeta.quote +\n\t\t\tgetResourcePath( meta.value, baseURL ) +\n\t\t\tmeta.quote +\n\t\t\tmeta.after +\n\t\t\t')',\n\t} );\n}\n\n/**\n * Get all `url()`s, and return the meta info\n *\n * @param {string} value decl.value.\n *\n * @return {Array} the urls.\n */\nfunction getURLs( value ) {\n\tconst reg = /url\\((\\s*)(['\"]?)(.+?)\\2(\\s*)\\)/g;\n\tlet match;\n\tconst URLs = [];\n\n\twhile ( ( match = reg.exec( value ) ) !== null ) {\n\t\tconst meta = {\n\t\t\tsource: match[ 0 ],\n\t\t\tbefore: match[ 1 ],\n\t\t\tquote: match[ 2 ],\n\t\t\tvalue: match[ 3 ],\n\t\t\tafter: match[ 4 ],\n\t\t};\n\t\tif ( isValidURL( meta ) ) {\n\t\t\tURLs.push( meta );\n\t\t}\n\t}\n\treturn URLs;\n}\n\n/**\n * Replace the raw value's `url()` segment to the new value\n *\n * @param {string} raw the raw value.\n * @param {Array} URLs the URLs to replace.\n *\n * @return {string} the new value.\n */\nfunction replaceURLs( raw, URLs ) {\n\tURLs.forEach( ( item ) => {\n\t\traw = raw.replace( item.source, item.newUrl );\n\t} );\n\n\treturn raw;\n}\n\nconst rewrite = ( rootURL ) => ( node ) => {\n\tif ( node.type === 'declaration' ) {\n\t\tconst updatedURLs = getURLs( node.value ).map( processURL( rootURL ) );\n\t\treturn {\n\t\t\t...node,\n\t\t\tvalue: replaceURLs( node.value, updatedURLs ),\n\t\t};\n\t}\n\n\treturn node;\n};\n\nexport default rewrite;\n"]}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { createElement, Fragment } from "@wordpress/element";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* WordPress dependencies
|
|
5
|
+
*/
|
|
6
|
+
import apiFetch from '@wordpress/api-fetch';
|
|
7
|
+
import { addQueryArgs } from '@wordpress/url';
|
|
8
|
+
import { Icon, page, post } from '@wordpress/icons';
|
|
9
|
+
const SHOWN_SUGGESTIONS = 10;
|
|
10
|
+
/** @typedef {import('@wordpress/components').WPCompleter} WPCompleter */
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Creates a suggestion list for links to posts or pages.
|
|
14
|
+
*
|
|
15
|
+
* @return {WPCompleter} A links completer.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
function createLinkCompleter() {
|
|
19
|
+
return {
|
|
20
|
+
name: 'links',
|
|
21
|
+
className: 'block-editor-autocompleters__link',
|
|
22
|
+
triggerPrefix: '[[',
|
|
23
|
+
options: async letters => {
|
|
24
|
+
let options = await apiFetch({
|
|
25
|
+
path: addQueryArgs('/wp/v2/search', {
|
|
26
|
+
per_page: SHOWN_SUGGESTIONS,
|
|
27
|
+
search: letters,
|
|
28
|
+
type: 'post',
|
|
29
|
+
order_by: 'menu_order'
|
|
30
|
+
})
|
|
31
|
+
});
|
|
32
|
+
options = options.filter(option => option.title !== '');
|
|
33
|
+
return options;
|
|
34
|
+
},
|
|
35
|
+
|
|
36
|
+
getOptionKeywords(item) {
|
|
37
|
+
const expansionWords = item.title.split(/\s+/);
|
|
38
|
+
return [...expansionWords];
|
|
39
|
+
},
|
|
40
|
+
|
|
41
|
+
getOptionLabel(item) {
|
|
42
|
+
return createElement(Fragment, null, createElement(Icon, {
|
|
43
|
+
key: "icon",
|
|
44
|
+
icon: item.subtype === 'page' ? page : post
|
|
45
|
+
}), item.title);
|
|
46
|
+
},
|
|
47
|
+
|
|
48
|
+
getOptionCompletion(item) {
|
|
49
|
+
return createElement("a", {
|
|
50
|
+
href: item.url
|
|
51
|
+
}, item.title);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Creates a suggestion list for links to posts or pages..
|
|
58
|
+
*
|
|
59
|
+
* @return {WPCompleter} A link completer.
|
|
60
|
+
*/
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
export default createLinkCompleter();
|
|
64
|
+
//# sourceMappingURL=link.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/autocompleters/link.js"],"names":["apiFetch","addQueryArgs","Icon","page","post","SHOWN_SUGGESTIONS","createLinkCompleter","name","className","triggerPrefix","options","letters","path","per_page","search","type","order_by","filter","option","title","getOptionKeywords","item","expansionWords","split","getOptionLabel","subtype","getOptionCompletion","url"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,QAAP,MAAqB,sBAArB;AACA,SAASC,YAAT,QAA6B,gBAA7B;AACA,SAASC,IAAT,EAAeC,IAAf,EAAqBC,IAArB,QAAiC,kBAAjC;AAEA,MAAMC,iBAAiB,GAAG,EAA1B;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AACA,SAASC,mBAAT,GAA+B;AAC9B,SAAO;AACNC,IAAAA,IAAI,EAAE,OADA;AAENC,IAAAA,SAAS,EAAE,mCAFL;AAGNC,IAAAA,aAAa,EAAE,IAHT;AAINC,IAAAA,OAAO,EAAE,MAAQC,OAAR,IAAqB;AAC7B,UAAID,OAAO,GAAG,MAAMV,QAAQ,CAAE;AAC7BY,QAAAA,IAAI,EAAEX,YAAY,CAAE,eAAF,EAAmB;AACpCY,UAAAA,QAAQ,EAAER,iBAD0B;AAEpCS,UAAAA,MAAM,EAAEH,OAF4B;AAGpCI,UAAAA,IAAI,EAAE,MAH8B;AAIpCC,UAAAA,QAAQ,EAAE;AAJ0B,SAAnB;AADW,OAAF,CAA5B;AASAN,MAAAA,OAAO,GAAGA,OAAO,CAACO,MAAR,CAAkBC,MAAF,IAAcA,MAAM,CAACC,KAAP,KAAiB,EAA/C,CAAV;AAEA,aAAOT,OAAP;AACA,KAjBK;;AAkBNU,IAAAA,iBAAiB,CAAEC,IAAF,EAAS;AACzB,YAAMC,cAAc,GAAGD,IAAI,CAACF,KAAL,CAAWI,KAAX,CAAkB,KAAlB,CAAvB;AACA,aAAO,CAAE,GAAGD,cAAL,CAAP;AACA,KArBK;;AAsBNE,IAAAA,cAAc,CAAEH,IAAF,EAAS;AACtB,aACC,8BACC,cAAC,IAAD;AACC,QAAA,GAAG,EAAC,MADL;AAEC,QAAA,IAAI,EAAGA,IAAI,CAACI,OAAL,KAAiB,MAAjB,GAA0BtB,IAA1B,GAAiCC;AAFzC,QADD,EAKGiB,IAAI,CAACF,KALR,CADD;AASA,KAhCK;;AAiCNO,IAAAA,mBAAmB,CAAEL,IAAF,EAAS;AAC3B,aAAO;AAAG,QAAA,IAAI,EAAGA,IAAI,CAACM;AAAf,SAAuBN,IAAI,CAACF,KAA5B,CAAP;AACA;;AAnCK,GAAP;AAqCA;AAED;AACA;AACA;AACA;AACA;;;AACA,eAAeb,mBAAmB,EAAlC","sourcesContent":["/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\nimport { Icon, page, post } from '@wordpress/icons';\n\nconst SHOWN_SUGGESTIONS = 10;\n\n/** @typedef {import('@wordpress/components').WPCompleter} WPCompleter */\n\n/**\n * Creates a suggestion list for links to posts or pages.\n *\n * @return {WPCompleter} A links completer.\n */\nfunction createLinkCompleter() {\n\treturn {\n\t\tname: 'links',\n\t\tclassName: 'block-editor-autocompleters__link',\n\t\ttriggerPrefix: '[[',\n\t\toptions: async ( letters ) => {\n\t\t\tlet options = await apiFetch( {\n\t\t\t\tpath: addQueryArgs( '/wp/v2/search', {\n\t\t\t\t\tper_page: SHOWN_SUGGESTIONS,\n\t\t\t\t\tsearch: letters,\n\t\t\t\t\ttype: 'post',\n\t\t\t\t\torder_by: 'menu_order',\n\t\t\t\t} ),\n\t\t\t} );\n\n\t\t\toptions = options.filter( ( option ) => option.title !== '' );\n\n\t\t\treturn options;\n\t\t},\n\t\tgetOptionKeywords( item ) {\n\t\t\tconst expansionWords = item.title.split( /\\s+/ );\n\t\t\treturn [ ...expansionWords ];\n\t\t},\n\t\tgetOptionLabel( item ) {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tkey=\"icon\"\n\t\t\t\t\t\ticon={ item.subtype === 'page' ? page : post }\n\t\t\t\t\t/>\n\t\t\t\t\t{ item.title }\n\t\t\t\t</>\n\t\t\t);\n\t\t},\n\t\tgetOptionCompletion( item ) {\n\t\t\treturn <a href={ item.url }>{ item.title }</a>;\n\t\t},\n\t};\n}\n\n/**\n * Creates a suggestion list for links to posts or pages..\n *\n * @return {WPCompleter} A link completer.\n */\nexport default createLinkCompleter();\n"]}
|
|
@@ -19,6 +19,7 @@ import { getDefaultBlockName, getBlockSupport } from '@wordpress/blocks';
|
|
|
19
19
|
|
|
20
20
|
import { useBlockEditContext } from '../block-edit/context';
|
|
21
21
|
import blockAutocompleter from '../../autocompleters/block';
|
|
22
|
+
import linkAutocompleter from '../../autocompleters/link';
|
|
22
23
|
/**
|
|
23
24
|
* Shared reference to an empty array for cases where it is important to avoid
|
|
24
25
|
* returning a new array reference on every invocation.
|
|
@@ -39,7 +40,7 @@ function useCompleters(_ref) {
|
|
|
39
40
|
let filteredCompleters = completers;
|
|
40
41
|
|
|
41
42
|
if (name === getDefaultBlockName() || getBlockSupport(name, '__experimentalSlashInserter', false)) {
|
|
42
|
-
filteredCompleters = filteredCompleters.concat([blockAutocompleter]);
|
|
43
|
+
filteredCompleters = filteredCompleters.concat([blockAutocompleter, linkAutocompleter]);
|
|
43
44
|
}
|
|
44
45
|
|
|
45
46
|
if (hasFilter('editor.Autocomplete.completers')) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/autocomplete/index.js"],"names":["clone","applyFilters","hasFilter","Autocomplete","__unstableUseAutocompleteProps","useAutocompleteProps","useMemo","getDefaultBlockName","getBlockSupport","useBlockEditContext","blockAutocompleter","EMPTY_ARRAY","useCompleters","completers","name","filteredCompleters","concat","map","useBlockEditorAutocompleteProps","props","BlockEditorAutocomplete"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,KAAT,QAAsB,QAAtB;AAEA;AACA;AACA;;AACA,SAASC,YAAT,EAAuBC,SAAvB,QAAwC,kBAAxC;AACA,SACCC,YADD,EAECC,8BAA8B,IAAIC,oBAFnC,QAGO,uBAHP;AAIA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SAASC,mBAAT,EAA8BC,eAA9B,QAAqD,mBAArD;AAEA;AACA;AACA;;AACA,SAASC,mBAAT,QAAoC,uBAApC;AACA,OAAOC,kBAAP,MAA+B,4BAA/B;AAEA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,WAAW,GAAG,EAApB;;AAEA,SAASC,aAAT,OAAuD;AAAA,MAA/B;AAAEC,IAAAA,UAAU,GAAGF;AAAf,GAA+B;AACtD,QAAM;AAAEG,IAAAA;AAAF,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/autocomplete/index.js"],"names":["clone","applyFilters","hasFilter","Autocomplete","__unstableUseAutocompleteProps","useAutocompleteProps","useMemo","getDefaultBlockName","getBlockSupport","useBlockEditContext","blockAutocompleter","linkAutocompleter","EMPTY_ARRAY","useCompleters","completers","name","filteredCompleters","concat","map","useBlockEditorAutocompleteProps","props","BlockEditorAutocomplete"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,KAAT,QAAsB,QAAtB;AAEA;AACA;AACA;;AACA,SAASC,YAAT,EAAuBC,SAAvB,QAAwC,kBAAxC;AACA,SACCC,YADD,EAECC,8BAA8B,IAAIC,oBAFnC,QAGO,uBAHP;AAIA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SAASC,mBAAT,EAA8BC,eAA9B,QAAqD,mBAArD;AAEA;AACA;AACA;;AACA,SAASC,mBAAT,QAAoC,uBAApC;AACA,OAAOC,kBAAP,MAA+B,4BAA/B;AACA,OAAOC,iBAAP,MAA8B,2BAA9B;AAEA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,WAAW,GAAG,EAApB;;AAEA,SAASC,aAAT,OAAuD;AAAA,MAA/B;AAAEC,IAAAA,UAAU,GAAGF;AAAf,GAA+B;AACtD,QAAM;AAAEG,IAAAA;AAAF,MAAWN,mBAAmB,EAApC;AACA,SAAOH,OAAO,CAAE,MAAM;AACrB,QAAIU,kBAAkB,GAAGF,UAAzB;;AAEA,QACCC,IAAI,KAAKR,mBAAmB,EAA5B,IACAC,eAAe,CAAEO,IAAF,EAAQ,6BAAR,EAAuC,KAAvC,CAFhB,EAGE;AACDC,MAAAA,kBAAkB,GAAGA,kBAAkB,CAACC,MAAnB,CAA2B,CAC/CP,kBAD+C,EAE/CC,iBAF+C,CAA3B,CAArB;AAIA;;AAED,QAAKT,SAAS,CAAE,gCAAF,CAAd,EAAqD;AACpD;AACA,UAAKc,kBAAkB,KAAKF,UAA5B,EAAyC;AACxCE,QAAAA,kBAAkB,GAAGA,kBAAkB,CAACE,GAAnB,CAAwBlB,KAAxB,CAArB;AACA;;AAEDgB,MAAAA,kBAAkB,GAAGf,YAAY,CAChC,gCADgC,EAEhCe,kBAFgC,EAGhCD,IAHgC,CAAjC;AAKA;;AAED,WAAOC,kBAAP;AACA,GA3Ba,EA2BX,CAAEF,UAAF,EAAcC,IAAd,CA3BW,CAAd;AA4BA;;AAED,OAAO,SAASI,+BAAT,CAA0CC,KAA1C,EAAkD;AACxD,SAAOf,oBAAoB,CAAE,EAC5B,GAAGe,KADyB;AAE5BN,IAAAA,UAAU,EAAED,aAAa,CAAEO,KAAF;AAFG,GAAF,CAA3B;AAIA;AAED;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,uBAAT,CAAkCD,KAAlC,EAA0C;AACzC,SAAO,cAAC,YAAD,eAAmBA,KAAnB;AAA2B,IAAA,UAAU,EAAGP,aAAa,CAAEO,KAAF;AAArD,KAAP;AACA;AAED;AACA;AACA;;;AACA,eAAeC,uBAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { clone } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { applyFilters, hasFilter } from '@wordpress/hooks';\nimport {\n\tAutocomplete,\n\t__unstableUseAutocompleteProps as useAutocompleteProps,\n} from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\nimport { getDefaultBlockName, getBlockSupport } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditContext } from '../block-edit/context';\nimport blockAutocompleter from '../../autocompleters/block';\nimport linkAutocompleter from '../../autocompleters/link';\n\n/**\n * Shared reference to an empty array for cases where it is important to avoid\n * returning a new array reference on every invocation.\n *\n * @type {Array}\n */\nconst EMPTY_ARRAY = [];\n\nfunction useCompleters( { completers = EMPTY_ARRAY } ) {\n\tconst { name } = useBlockEditContext();\n\treturn useMemo( () => {\n\t\tlet filteredCompleters = completers;\n\n\t\tif (\n\t\t\tname === getDefaultBlockName() ||\n\t\t\tgetBlockSupport( name, '__experimentalSlashInserter', false )\n\t\t) {\n\t\t\tfilteredCompleters = filteredCompleters.concat( [\n\t\t\t\tblockAutocompleter,\n\t\t\t\tlinkAutocompleter,\n\t\t\t] );\n\t\t}\n\n\t\tif ( hasFilter( 'editor.Autocomplete.completers' ) ) {\n\t\t\t// Provide copies so filters may directly modify them.\n\t\t\tif ( filteredCompleters === completers ) {\n\t\t\t\tfilteredCompleters = filteredCompleters.map( clone );\n\t\t\t}\n\n\t\t\tfilteredCompleters = applyFilters(\n\t\t\t\t'editor.Autocomplete.completers',\n\t\t\t\tfilteredCompleters,\n\t\t\t\tname\n\t\t\t);\n\t\t}\n\n\t\treturn filteredCompleters;\n\t}, [ completers, name ] );\n}\n\nexport function useBlockEditorAutocompleteProps( props ) {\n\treturn useAutocompleteProps( {\n\t\t...props,\n\t\tcompleters: useCompleters( props ),\n\t} );\n}\n\n/**\n * Wrap the default Autocomplete component with one that supports a filter hook\n * for customizing its list of autocompleters.\n *\n * @type {import('react').FC}\n */\nfunction BlockEditorAutocomplete( props ) {\n\treturn <Autocomplete { ...props } completers={ useCompleters( props ) } />;\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/autocomplete/README.md\n */\nexport default BlockEditorAutocomplete;\n"]}
|
|
@@ -86,7 +86,7 @@ export default function BlockActions(_ref) {
|
|
|
86
86
|
return;
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
const groupingBlockName = getGroupingBlockName(); // Activate the `transform` on `core/group` which does the conversion
|
|
89
|
+
const groupingBlockName = getGroupingBlockName(); // Activate the `transform` on `core/group` which does the conversion.
|
|
90
90
|
|
|
91
91
|
const newBlocks = switchToBlockType(blocks, groupingBlockName);
|
|
92
92
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-actions/index.js"],"names":["castArray","first","last","every","useDispatch","useSelect","hasBlockSupport","switchToBlockType","store","blocksStore","useNotifyCopy","blockEditorStore","BlockActions","clientIds","children","__experimentalUpdateSelection","updateSelection","canInsertBlockType","getBlockRootClientId","getBlocksByClientId","canMoveBlocks","canRemoveBlocks","getDefaultBlockName","getGroupingBlockName","blocks","rootClientId","canDuplicate","block","name","canInsertDefaultBlock","canMove","canRemove","removeBlocks","replaceBlocks","duplicateBlocks","insertAfterBlock","insertBeforeBlock","flashBlock","setBlockMovingClientId","setNavigationMode","selectBlock","notifyCopy","onDuplicate","onRemove","onInsertBefore","onInsertAfter","onMoveTo","onGroup","length","groupingBlockName","newBlocks","onUngroup","innerBlocks","onCopy","selectedBlockClientIds","map","clientId"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { castArray, first, last, every } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\thasBlockSupport,\n\tswitchToBlockType,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { useNotifyCopy } from '../copy-handler';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockActions( {\n\tclientIds,\n\tchildren,\n\t__experimentalUpdateSelection: updateSelection,\n} ) {\n\tconst {\n\t\tcanInsertBlockType,\n\t\tgetBlockRootClientId,\n\t\tgetBlocksByClientId,\n\t\tcanMoveBlocks,\n\t\tcanRemoveBlocks,\n\t} = useSelect( blockEditorStore );\n\tconst { getDefaultBlockName, getGroupingBlockName } = useSelect(\n\t\tblocksStore\n\t);\n\n\tconst blocks = getBlocksByClientId( clientIds );\n\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\tconst canDuplicate = every( blocks, ( block ) => {\n\t\treturn (\n\t\t\t!! block &&\n\t\t\thasBlockSupport( block.name, 'multiple', true ) &&\n\t\t\tcanInsertBlockType( block.name, rootClientId )\n\t\t);\n\t} );\n\n\tconst canInsertDefaultBlock = canInsertBlockType(\n\t\tgetDefaultBlockName(),\n\t\trootClientId\n\t);\n\n\tconst canMove = canMoveBlocks( clientIds, rootClientId );\n\tconst canRemove = canRemoveBlocks( clientIds, rootClientId );\n\n\tconst {\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\tduplicateBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t\tflashBlock,\n\t\tsetBlockMovingClientId,\n\t\tsetNavigationMode,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\n\tconst notifyCopy = useNotifyCopy();\n\n\treturn children( {\n\t\tcanDuplicate,\n\t\tcanInsertDefaultBlock,\n\t\tcanMove,\n\t\tcanRemove,\n\t\trootClientId,\n\t\tblocks,\n\t\tonDuplicate() {\n\t\t\treturn duplicateBlocks( clientIds, updateSelection );\n\t\t},\n\t\tonRemove() {\n\t\t\treturn removeBlocks( clientIds, updateSelection );\n\t\t},\n\t\tonInsertBefore() {\n\t\t\tinsertBeforeBlock( first( castArray( clientIds ) ) );\n\t\t},\n\t\tonInsertAfter() {\n\t\t\tinsertAfterBlock( last( castArray( clientIds ) ) );\n\t\t},\n\t\tonMoveTo() {\n\t\t\tsetNavigationMode( true );\n\t\t\tselectBlock( clientIds[ 0 ] );\n\t\t\tsetBlockMovingClientId( clientIds[ 0 ] );\n\t\t},\n\t\tonGroup() {\n\t\t\tif ( ! blocks.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst groupingBlockName = getGroupingBlockName();\n\n\t\t\t// Activate the `transform` on `core/group` which does the conversion
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-actions/index.js"],"names":["castArray","first","last","every","useDispatch","useSelect","hasBlockSupport","switchToBlockType","store","blocksStore","useNotifyCopy","blockEditorStore","BlockActions","clientIds","children","__experimentalUpdateSelection","updateSelection","canInsertBlockType","getBlockRootClientId","getBlocksByClientId","canMoveBlocks","canRemoveBlocks","getDefaultBlockName","getGroupingBlockName","blocks","rootClientId","canDuplicate","block","name","canInsertDefaultBlock","canMove","canRemove","removeBlocks","replaceBlocks","duplicateBlocks","insertAfterBlock","insertBeforeBlock","flashBlock","setBlockMovingClientId","setNavigationMode","selectBlock","notifyCopy","onDuplicate","onRemove","onInsertBefore","onInsertAfter","onMoveTo","onGroup","length","groupingBlockName","newBlocks","onUngroup","innerBlocks","onCopy","selectedBlockClientIds","map","clientId"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { castArray, first, last, every } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\thasBlockSupport,\n\tswitchToBlockType,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { useNotifyCopy } from '../copy-handler';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockActions( {\n\tclientIds,\n\tchildren,\n\t__experimentalUpdateSelection: updateSelection,\n} ) {\n\tconst {\n\t\tcanInsertBlockType,\n\t\tgetBlockRootClientId,\n\t\tgetBlocksByClientId,\n\t\tcanMoveBlocks,\n\t\tcanRemoveBlocks,\n\t} = useSelect( blockEditorStore );\n\tconst { getDefaultBlockName, getGroupingBlockName } = useSelect(\n\t\tblocksStore\n\t);\n\n\tconst blocks = getBlocksByClientId( clientIds );\n\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\tconst canDuplicate = every( blocks, ( block ) => {\n\t\treturn (\n\t\t\t!! block &&\n\t\t\thasBlockSupport( block.name, 'multiple', true ) &&\n\t\t\tcanInsertBlockType( block.name, rootClientId )\n\t\t);\n\t} );\n\n\tconst canInsertDefaultBlock = canInsertBlockType(\n\t\tgetDefaultBlockName(),\n\t\trootClientId\n\t);\n\n\tconst canMove = canMoveBlocks( clientIds, rootClientId );\n\tconst canRemove = canRemoveBlocks( clientIds, rootClientId );\n\n\tconst {\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\tduplicateBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t\tflashBlock,\n\t\tsetBlockMovingClientId,\n\t\tsetNavigationMode,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\n\tconst notifyCopy = useNotifyCopy();\n\n\treturn children( {\n\t\tcanDuplicate,\n\t\tcanInsertDefaultBlock,\n\t\tcanMove,\n\t\tcanRemove,\n\t\trootClientId,\n\t\tblocks,\n\t\tonDuplicate() {\n\t\t\treturn duplicateBlocks( clientIds, updateSelection );\n\t\t},\n\t\tonRemove() {\n\t\t\treturn removeBlocks( clientIds, updateSelection );\n\t\t},\n\t\tonInsertBefore() {\n\t\t\tinsertBeforeBlock( first( castArray( clientIds ) ) );\n\t\t},\n\t\tonInsertAfter() {\n\t\t\tinsertAfterBlock( last( castArray( clientIds ) ) );\n\t\t},\n\t\tonMoveTo() {\n\t\t\tsetNavigationMode( true );\n\t\t\tselectBlock( clientIds[ 0 ] );\n\t\t\tsetBlockMovingClientId( clientIds[ 0 ] );\n\t\t},\n\t\tonGroup() {\n\t\t\tif ( ! blocks.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst groupingBlockName = getGroupingBlockName();\n\n\t\t\t// Activate the `transform` on `core/group` which does the conversion.\n\t\t\tconst newBlocks = switchToBlockType( blocks, groupingBlockName );\n\n\t\t\tif ( ! newBlocks ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treplaceBlocks( clientIds, newBlocks );\n\t\t},\n\t\tonUngroup() {\n\t\t\tif ( ! blocks.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst innerBlocks = blocks[ 0 ].innerBlocks;\n\n\t\t\tif ( ! innerBlocks.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\treplaceBlocks( clientIds, innerBlocks );\n\t\t},\n\t\tonCopy() {\n\t\t\tconst selectedBlockClientIds = blocks.map(\n\t\t\t\t( { clientId } ) => clientId\n\t\t\t);\n\t\t\tif ( blocks.length === 1 ) {\n\t\t\t\tflashBlock( selectedBlockClientIds[ 0 ] );\n\t\t\t}\n\t\t\tnotifyCopy( 'copy', selectedBlockClientIds );\n\t\t},\n\t} );\n}\n"]}
|