@wordpress/components 23.7.0 → 23.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +52 -6
- package/build/checkbox-control/index.js +2 -2
- package/build/checkbox-control/index.js.map +1 -1
- package/build/color-palette/index.native.js +12 -0
- package/build/color-palette/index.native.js.map +1 -1
- package/build/custom-gradient-picker/index.native.js +3 -1
- package/build/custom-gradient-picker/index.native.js.map +1 -1
- package/build/custom-gradient-picker/serializer.js +0 -4
- package/build/custom-gradient-picker/serializer.js.map +1 -1
- package/build/draggable/index.js +6 -1
- package/build/draggable/index.js.map +1 -1
- package/build/drop-zone/index.js +8 -8
- package/build/drop-zone/index.js.map +1 -1
- package/build/index.js.map +1 -1
- package/build/mobile/bottom-sheet/cell.native.js +6 -6
- package/build/mobile/bottom-sheet/cell.native.js.map +1 -1
- package/build/mobile/color-settings/palette.screen.native.js +0 -8
- package/build/mobile/color-settings/palette.screen.native.js.map +1 -1
- package/build/mobile/global-styles-context/utils.native.js +21 -4
- package/build/mobile/global-styles-context/utils.native.js.map +1 -1
- package/build/mobile/keyboard-aware-flat-list/index.android.js +0 -4
- package/build/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
- package/build/mobile/keyboard-aware-flat-list/index.ios.js +100 -55
- package/build/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
- package/build/mobile/keyboard-aware-flat-list/use-keyboard-offset.native.js +82 -0
- package/build/mobile/keyboard-aware-flat-list/use-keyboard-offset.native.js.map +1 -0
- package/build/mobile/keyboard-aware-flat-list/use-scroll-to-text-input.native.js +85 -0
- package/build/mobile/keyboard-aware-flat-list/use-scroll-to-text-input.native.js.map +1 -0
- package/build/mobile/keyboard-aware-flat-list/use-text-input-caret-position.native.js +44 -0
- package/build/mobile/keyboard-aware-flat-list/use-text-input-caret-position.native.js.map +1 -0
- package/build/mobile/keyboard-aware-flat-list/use-text-input-offset.native.js +53 -0
- package/build/mobile/keyboard-aware-flat-list/use-text-input-offset.native.js.map +1 -0
- package/build/mobile/segmented-control/index.native.js +4 -2
- package/build/mobile/segmented-control/index.native.js.map +1 -1
- package/build/navigator/navigator-provider/component.js +4 -2
- package/build/navigator/navigator-provider/component.js.map +1 -1
- package/build/navigator/navigator-screen/component.js +4 -3
- package/build/navigator/navigator-screen/component.js.map +1 -1
- package/build/popover/index.js +1 -8
- package/build/popover/index.js.map +1 -1
- package/build/private-apis.js +4 -1
- package/build/private-apis.js.map +1 -1
- package/build/query-controls/author-select.js +2 -1
- package/build/query-controls/author-select.js.map +1 -1
- package/build/query-controls/category-select.js +3 -1
- package/build/query-controls/category-select.js.map +1 -1
- package/build/query-controls/index.js +7 -1
- package/build/query-controls/index.js.map +1 -1
- package/build/sandbox/index.native.js +55 -29
- package/build/sandbox/index.native.js.map +1 -1
- package/build/slot-fill/index.js +20 -7
- package/build/slot-fill/index.js.map +1 -1
- package/build/spinner/styles.js +4 -4
- package/build/spinner/styles.js.map +1 -1
- package/build/tree-grid/index.js +3 -3
- package/build/tree-grid/index.js.map +1 -1
- package/build/view/component.js +1 -2
- package/build/view/component.js.map +1 -1
- package/build-module/checkbox-control/index.js +2 -2
- package/build-module/checkbox-control/index.js.map +1 -1
- package/build-module/color-palette/index.native.js +13 -1
- package/build-module/color-palette/index.native.js.map +1 -1
- package/build-module/custom-gradient-picker/index.native.js +3 -1
- package/build-module/custom-gradient-picker/index.native.js.map +1 -1
- package/build-module/custom-gradient-picker/serializer.js +0 -4
- package/build-module/custom-gradient-picker/serializer.js.map +1 -1
- package/build-module/draggable/index.js +6 -1
- package/build-module/draggable/index.js.map +1 -1
- package/build-module/drop-zone/index.js +8 -8
- package/build-module/drop-zone/index.js.map +1 -1
- package/build-module/index.js.map +1 -1
- package/build-module/mobile/bottom-sheet/cell.native.js +6 -5
- package/build-module/mobile/bottom-sheet/cell.native.js.map +1 -1
- package/build-module/mobile/color-settings/palette.screen.native.js +0 -8
- package/build-module/mobile/color-settings/palette.screen.native.js.map +1 -1
- package/build-module/mobile/global-styles-context/utils.native.js +21 -3
- package/build-module/mobile/global-styles-context/utils.native.js.map +1 -1
- package/build-module/mobile/keyboard-aware-flat-list/index.android.js +0 -4
- package/build-module/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
- package/build-module/mobile/keyboard-aware-flat-list/index.ios.js +97 -54
- package/build-module/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
- package/build-module/mobile/keyboard-aware-flat-list/use-keyboard-offset.native.js +73 -0
- package/build-module/mobile/keyboard-aware-flat-list/use-keyboard-offset.native.js.map +1 -0
- package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-text-input.native.js +76 -0
- package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-text-input.native.js.map +1 -0
- package/build-module/mobile/keyboard-aware-flat-list/use-text-input-caret-position.native.js +33 -0
- package/build-module/mobile/keyboard-aware-flat-list/use-text-input-caret-position.native.js.map +1 -0
- package/build-module/mobile/keyboard-aware-flat-list/use-text-input-offset.native.js +40 -0
- package/build-module/mobile/keyboard-aware-flat-list/use-text-input-offset.native.js.map +1 -0
- package/build-module/mobile/segmented-control/index.native.js +4 -2
- package/build-module/mobile/segmented-control/index.native.js.map +1 -1
- package/build-module/navigator/navigator-provider/component.js +4 -2
- package/build-module/navigator/navigator-provider/component.js.map +1 -1
- package/build-module/navigator/navigator-screen/component.js +4 -3
- package/build-module/navigator/navigator-screen/component.js.map +1 -1
- package/build-module/popover/index.js +1 -8
- package/build-module/popover/index.js.map +1 -1
- package/build-module/private-apis.js +3 -1
- package/build-module/private-apis.js.map +1 -1
- package/build-module/query-controls/author-select.js +2 -1
- package/build-module/query-controls/author-select.js.map +1 -1
- package/build-module/query-controls/category-select.js +3 -1
- package/build-module/query-controls/category-select.js.map +1 -1
- package/build-module/query-controls/index.js +7 -2
- package/build-module/query-controls/index.js.map +1 -1
- package/build-module/sandbox/index.native.js +56 -31
- package/build-module/sandbox/index.native.js.map +1 -1
- package/build-module/slot-fill/index.js +16 -6
- package/build-module/slot-fill/index.js.map +1 -1
- package/build-module/spinner/styles.js +4 -4
- package/build-module/spinner/styles.js.map +1 -1
- package/build-module/tree-grid/index.js +3 -3
- package/build-module/tree-grid/index.js.map +1 -1
- package/build-module/view/component.js +1 -2
- package/build-module/view/component.js.map +1 -1
- package/build-style/style-rtl.css +26 -16
- package/build-style/style.css +26 -16
- package/build-types/angle-picker-control/styles/angle-picker-control-styles.d.ts +1 -1
- package/build-types/border-box-control/border-box-control/hook.d.ts +2 -2
- package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +2 -2
- package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +2 -2
- package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +2 -2
- package/build-types/border-control/border-control/hook.d.ts +2 -2
- package/build-types/border-control/border-control-dropdown/hook.d.ts +2 -2
- package/build-types/border-control/border-control-style-picker/hook.d.ts +2 -2
- package/build-types/box-control/styles/box-control-styles.d.ts +5 -5
- package/build-types/button/deprecated.d.ts +8 -8
- package/build-types/card/card/hook.d.ts +2 -2
- package/build-types/card/card-body/hook.d.ts +2 -2
- package/build-types/card/card-divider/hook.d.ts +2 -2
- package/build-types/card/card-footer/hook.d.ts +2 -2
- package/build-types/card/card-header/hook.d.ts +2 -2
- package/build-types/card/card-media/hook.d.ts +2 -2
- package/build-types/checkbox-control/index.d.ts.map +1 -1
- package/build-types/color-palette/styles.d.ts +1 -1
- package/build-types/color-picker/styles.d.ts +7 -7
- package/build-types/combobox-control/styles.d.ts +1 -1
- package/build-types/custom-gradient-picker/serializer.d.ts +1 -5
- package/build-types/custom-gradient-picker/serializer.d.ts.map +1 -1
- package/build-types/custom-gradient-picker/types.d.ts +0 -2
- package/build-types/custom-gradient-picker/types.d.ts.map +1 -1
- package/build-types/date-time/date/styles.d.ts +2 -2
- package/build-types/date-time/date-time/styles.d.ts +1 -1
- package/build-types/date-time/time/styles.d.ts +8 -8
- package/build-types/draggable/index.d.ts +1 -1
- package/build-types/draggable/index.d.ts.map +1 -1
- package/build-types/draggable/stories/index.d.ts +8 -0
- package/build-types/draggable/stories/index.d.ts.map +1 -1
- package/build-types/draggable/types.d.ts +7 -0
- package/build-types/draggable/types.d.ts.map +1 -1
- package/build-types/drop-zone/index.d.ts.map +1 -1
- package/build-types/elevation/hook.d.ts +2 -2
- package/build-types/external-link/styles/external-link-styles.d.ts +1 -1
- package/build-types/flex/flex/hook.d.ts +2 -2
- package/build-types/flex/flex-block/hook.d.ts +2 -2
- package/build-types/flex/flex-item/hook.d.ts +2 -2
- package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +2 -2
- package/build-types/form-token-field/styles.d.ts +1 -1
- package/build-types/grid/hook.d.ts +2 -2
- package/build-types/h-stack/hook.d.ts +2 -2
- package/build-types/heading/hook.d.ts +2 -2
- package/build-types/index.d.ts +129 -0
- package/build-types/index.d.ts.map +1 -0
- package/build-types/input-control/styles/input-control-styles.d.ts +2 -2
- package/build-types/item-group/item/hook.d.ts +2 -2
- package/build-types/item-group/item-group/hook.d.ts +2 -2
- package/build-types/navigation/styles/navigation-styles.d.ts +2 -2
- package/build-types/navigator/navigator-back-button/component.d.ts +1 -1
- package/build-types/navigator/navigator-back-button/hook.d.ts +3 -3
- package/build-types/navigator/navigator-button/component.d.ts +1 -1
- package/build-types/navigator/navigator-button/hook.d.ts +3 -3
- package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
- package/build-types/navigator/navigator-screen/component.d.ts +1 -1
- package/build-types/navigator/navigator-screen/component.d.ts.map +1 -1
- package/build-types/navigator/navigator-to-parent-button/component.d.ts +1 -1
- package/build-types/navigator/stories/index.d.ts +1 -0
- package/build-types/navigator/stories/index.d.ts.map +1 -1
- package/build-types/navigator/types.d.ts +2 -2
- package/build-types/navigator/types.d.ts.map +1 -1
- package/build-types/number-control/index.d.ts +2 -2
- package/build-types/number-control/stories/index.d.ts +2 -2
- package/build-types/palette-edit/styles.d.ts +18 -12
- package/build-types/palette-edit/styles.d.ts.map +1 -1
- package/build-types/popover/index.d.ts +1 -1
- package/build-types/popover/index.d.ts.map +1 -1
- package/build-types/popover/stories/e2e/index.d.ts +1 -1
- package/build-types/private-apis.d.ts +2 -3
- package/build-types/private-apis.d.ts.map +1 -1
- package/build-types/query-controls/author-select.d.ts.map +1 -1
- package/build-types/query-controls/category-select.d.ts.map +1 -1
- package/build-types/query-controls/index.d.ts.map +1 -1
- package/build-types/range-control/index.d.ts +1 -1
- package/build-types/range-control/styles/range-control-styles.d.ts +2 -2
- package/build-types/resizable-box/index.d.ts +1 -1
- package/build-types/resizable-box/resize-tooltip/index.d.ts +1 -1
- package/build-types/resizable-box/stories/index.d.ts +2 -2
- package/build-types/scrollable/hook.d.ts +2 -2
- package/build-types/search-control/index.d.ts +1 -1
- package/build-types/search-control/stories/index.d.ts +2 -2
- package/build-types/slot-fill/index.d.ts +13 -1
- package/build-types/slot-fill/index.d.ts.map +1 -1
- package/build-types/spacer/hook.d.ts +2 -2
- package/build-types/spinner/index.d.ts +1 -1
- package/build-types/spinner/styles.d.ts.map +1 -1
- package/build-types/surface/hook.d.ts +2 -2
- package/build-types/text/hook.d.ts +2 -2
- package/build-types/text-control/index.d.ts +1 -1
- package/build-types/toolbar/toolbar-button/index.d.ts +8 -8
- package/build-types/tools-panel/tools-panel/hook.d.ts +2 -2
- package/build-types/tools-panel/tools-panel-header/hook.d.ts +2 -2
- package/build-types/tools-panel/tools-panel-item/hook.d.ts +2 -2
- package/build-types/tree-grid/index.d.ts.map +1 -1
- package/build-types/truncate/hook.d.ts +2 -2
- package/build-types/ui/context/wordpress-component.d.ts +1 -1
- package/build-types/ui/context/wordpress-component.d.ts.map +1 -1
- package/build-types/ui/control-group/hook.d.ts +2 -2
- package/build-types/ui/control-label/hook.d.ts +2 -2
- package/build-types/ui/form-group/form-group.d.ts +2 -2
- package/build-types/ui/form-group/use-form-group.d.ts +2 -2
- package/build-types/unit-control/index.d.ts +1 -1
- package/build-types/unit-control/styles/unit-control-styles.d.ts +2 -2
- package/build-types/v-stack/hook.d.ts +2 -2
- package/build-types/view/component.d.ts +1 -1
- package/build-types/view/component.d.ts.map +1 -1
- package/package.json +22 -22
- package/src/autocomplete/README.md +4 -2
- package/src/checkbox-control/index.tsx +6 -2
- package/src/color-palette/index.native.js +20 -1
- package/src/color-picker/test/index.tsx +99 -99
- package/src/custom-gradient-picker/index.native.js +1 -1
- package/src/custom-gradient-picker/serializer.ts +2 -6
- package/src/custom-gradient-picker/types.ts +0 -18
- package/src/dimension-control/README.md +1 -1
- package/src/draggable/README.md +8 -1
- package/src/draggable/index.tsx +6 -1
- package/src/draggable/stories/index.tsx +69 -33
- package/src/draggable/types.ts +7 -0
- package/src/drop-zone/index.tsx +12 -8
- package/src/drop-zone/style.scss +1 -1
- package/src/{index.js → index.ts} +1 -0
- package/src/mobile/bottom-sheet/cell.native.js +4 -5
- package/src/mobile/color-settings/palette.screen.native.js +0 -7
- package/src/mobile/global-styles-context/utils.native.js +18 -3
- package/src/mobile/keyboard-aware-flat-list/index.android.js +0 -4
- package/src/mobile/keyboard-aware-flat-list/index.ios.js +118 -67
- package/src/mobile/keyboard-aware-flat-list/test/use-keyboard-offset.native.js +203 -0
- package/src/mobile/keyboard-aware-flat-list/test/use-scroll-to-text-input.native.js +140 -0
- package/src/mobile/keyboard-aware-flat-list/test/use-text-input-caret-position.native.js +82 -0
- package/src/mobile/keyboard-aware-flat-list/test/use-text-input-offset.native.js +147 -0
- package/src/mobile/keyboard-aware-flat-list/use-keyboard-offset.native.js +87 -0
- package/src/mobile/keyboard-aware-flat-list/use-scroll-to-text-input.native.js +105 -0
- package/src/mobile/keyboard-aware-flat-list/use-text-input-caret-position.native.js +36 -0
- package/src/mobile/keyboard-aware-flat-list/use-text-input-offset.native.js +54 -0
- package/src/mobile/segmented-control/index.native.js +2 -2
- package/src/modal/style.scss +20 -12
- package/src/navigator/navigator-provider/component.tsx +2 -0
- package/src/navigator/navigator-screen/component.tsx +5 -2
- package/src/navigator/stories/index.tsx +68 -0
- package/src/navigator/test/index.tsx +52 -0
- package/src/navigator/types.ts +2 -1
- package/src/popover/index.tsx +2 -15
- package/src/{private-apis.js → private-apis.ts} +2 -0
- package/src/query-controls/author-select.tsx +1 -0
- package/src/query-controls/category-select.tsx +1 -0
- package/src/query-controls/index.tsx +4 -2
- package/src/sandbox/index.native.js +78 -37
- package/src/slot-fill/index.js +14 -6
- package/src/snackbar/style.scss +2 -1
- package/src/spinner/styles.ts +2 -0
- package/src/tree-grid/index.tsx +7 -2
- package/src/ui/context/wordpress-component.ts +1 -1
- package/src/view/component.tsx +2 -2
- package/tsconfig.json +3 -4
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/components/src/mobile/segmented-control/index.native.js"],"names":["ANIMATION_DURATION","isIOS","Platform","OS","Segment","isSelected","title","onPress","onLayout","props","isSelectedIOS","segmentStyle","styles","segment","segmentIOS","textStyle","buttonTextDefault","buttonTextDefaultDark","selectedTextStyle","buttonTextSelected","buttonTextSelectedDark","shadowStyle","shadowIOS","SegmentedControls","segments","segmentHandler","selectedIndex","addonLeft","addonRight","selectedSegmentIndex","activeSegmentIndex","setActiveSegmentIndex","segmentsDimensions","setSegmentsDimensions","width","height","positionAnimationValue","Animated","Value","setValue","calculateEndValue","containerStyle","container","containerDark","performSwatchAnimation","index","timing","toValue","duration","easing","Easing","ease","useNativeDriver","start","paddingLeft","offset","containerIOS","widths","Object","values","map","dimension","widthsDistance","slice","widthsDistanceSum","reduce","sum","n","endValue","onHandlePress","segmentOnLayout","event","nativeEvent","layout","selectedStyle","selected","selectedDark","outlineStyle","outline","outlineIOS","row","flex","length","left"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tView,\n\tTouchableWithoutFeedback,\n\tText,\n\tPlatform,\n\tAnimated,\n\tEasing,\n} from 'react-native';\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { performLayoutAnimation } from '../layout-animation';\nimport styles from './style.scss';\n\nconst ANIMATION_DURATION = 200;\n\nconst isIOS = Platform.OS === 'ios';\n\nconst Segment = ( { isSelected, title, onPress, onLayout, ...props } ) => {\n\tconst isSelectedIOS = isIOS && isSelected;\n\n\tconst segmentStyle = [ styles.segment, isIOS && styles.segmentIOS ];\n\n\tconst textStyle = usePreferredColorSchemeStyle(\n\t\tstyles.buttonTextDefault,\n\t\tstyles.buttonTextDefaultDark\n\t);\n\tconst selectedTextStyle = usePreferredColorSchemeStyle(\n\t\tstyles.buttonTextSelected,\n\t\tstyles.buttonTextSelectedDark\n\t);\n\tconst shadowStyle = usePreferredColorSchemeStyle( styles.shadowIOS, {} );\n\n\treturn (\n\t\t<View style={ isSelectedIOS && shadowStyle }>\n\t\t\t<TouchableWithoutFeedback onPress={ onPress }>\n\t\t\t\t<View style={ segmentStyle } onLayout={ onLayout } { ...props }>\n\t\t\t\t\t<Text\n\t\t\t\t\t\tstyle={ [ textStyle, isSelected && selectedTextStyle ] }\n\t\t\t\t\t\tmaxFontSizeMultiplier={ 2 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</Text>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t</View>\n\t);\n};\n\nconst SegmentedControls = ( {\n\tsegments,\n\tsegmentHandler,\n\tselectedIndex,\n\taddonLeft,\n\taddonRight,\n} ) => {\n\tconst selectedSegmentIndex = selectedIndex || 0;\n\tconst [ activeSegmentIndex, setActiveSegmentIndex ] =\n\t\tuseState( selectedSegmentIndex );\n\tconst [ segmentsDimensions, setSegmentsDimensions ] = useState( {\n\t\t[ activeSegmentIndex ]: { width: 0, height: 0 },\n\t} );\n\tconst [ positionAnimationValue ] = useState( new Animated.Value( 0 ) );\n\n\tuseEffect( () => {\n\t\tsetActiveSegmentIndex( selectedSegmentIndex );\n\t\tsegmentHandler( segments[ selectedSegmentIndex ] );\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tpositionAnimationValue.setValue(\n\t\t\tcalculateEndValue( activeSegmentIndex )\n\t\t);\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ segmentsDimensions ] );\n\n\tconst containerStyle = usePreferredColorSchemeStyle(\n\t\tstyles.container,\n\t\tstyles.containerDark\n\t);\n\n\tfunction performSwatchAnimation( index ) {\n\t\tAnimated.timing( positionAnimationValue, {\n\t\t\ttoValue: calculateEndValue( index ),\n\t\t\tduration: ANIMATION_DURATION,\n\t\t\teasing: Easing.ease,\n\t\t\tuseNativeDriver: false,\n\t\t} ).start();\n\t}\n\n\tfunction calculateEndValue( index ) {\n\t\tconst { paddingLeft: offset } = isIOS\n\t\t\t? styles.containerIOS\n\t\t\t: styles.container;\n\t\tconst widths = Object.values( segmentsDimensions ).map(\n\t\t\t( dimension ) => dimension.width\n\t\t);\n\t\tconst widthsDistance = widths.slice( 0, index );\n\t\tconst widthsDistanceSum = widthsDistance.reduce(\n\t\t\t( sum, n ) => sum + n,\n\t\t\t0\n\t\t);\n\n\t\tconst endValue = index === 0 ? 0 : widthsDistanceSum;\n\t\treturn endValue + offset;\n\t}\n\n\tfunction onHandlePress( segment, index ) {\n\t\tperformLayoutAnimation( ANIMATION_DURATION );\n\t\tsetActiveSegmentIndex( index );\n\t\tsegmentHandler( segment );\n\t\tperformSwatchAnimation( index );\n\t}\n\n\tfunction segmentOnLayout( event, index ) {\n\t\tconst { width, height } = event.nativeEvent.layout;\n\n\t\tsetSegmentsDimensions( {\n\t\t\t...segmentsDimensions,\n\t\t\t[ index ]: { width, height },\n\t\t} );\n\t}\n\n\tconst selectedStyle = usePreferredColorSchemeStyle(\n\t\tstyles.selected,\n\t\tstyles.selectedDark\n\t);\n\n\tconst width = segmentsDimensions[ activeSegmentIndex ].width;\n\tconst height = segmentsDimensions[ activeSegmentIndex ].height;\n\n\tconst outlineStyle = [ styles.outline, isIOS && styles.outlineIOS ];\n\n\treturn (\n\t\t<View style={ styles.row }>\n\t\t\t<View style={ styles.flex }>{ addonLeft }</View>\n\t\t\t<View style={ [ containerStyle, isIOS && styles.containerIOS ] }>\n\t\t\t\t{ segments.map( ( segment, index ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Segment\n\t\t\t\t\t\t\ttitle={ segment }\n\t\t\t\t\t\t\tonPress={ () => onHandlePress( segment, index ) }\n\t\t\t\t\t\t\tisSelected={ activeSegmentIndex === index }\n\t\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\t\tonLayout={ ( event ) =>\n\t\t\t\t\t\t\t\tsegmentOnLayout( event, index )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\taccessibilityState={ {\n\t\t\t\t\t\t\t\tselected: activeSegmentIndex === index,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t\t\t\t\taccessibilityLabel={ segment }\n\t\t\t\t\t\t\taccessibilityHint={ `${ index + 1 } on ${\n\t\t\t\t\t\t\t\tsegments.length\n\t\t\t\t\t\t\t}` }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t\t<Animated.View\n\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\twidth,\n\t\t\t\t\t\t\tleft: positionAnimationValue,\n\t\t\t\t\t\t\theight,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tselectedStyle,\n\t\t\t\t\t\toutlineStyle,\n\t\t\t\t\t] }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t\t<View style={ styles.flex }>{ addonRight }</View>\n\t\t</View>\n\t);\n};\n\nexport default SegmentedControls;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/mobile/segmented-control/index.native.js"],"names":["ANIMATION_DURATION","isIOS","Platform","OS","Segment","isSelected","title","onPress","onLayout","props","isSelectedIOS","segmentStyle","styles","segment","segmentIOS","textStyle","buttonTextDefault","buttonTextDefaultDark","selectedTextStyle","buttonTextSelected","buttonTextSelectedDark","shadowStyle","shadowIOS","SegmentedControls","segments","segmentHandler","selectedIndex","addonLeft","addonRight","selectedSegmentIndex","activeSegmentIndex","setActiveSegmentIndex","segmentsDimensions","setSegmentsDimensions","width","height","positionAnimationValue","Animated","Value","setValue","calculateEndValue","containerStyle","container","containerDark","performSwatchAnimation","index","timing","toValue","duration","easing","Easing","ease","useNativeDriver","start","paddingLeft","offset","containerIOS","widths","Object","values","map","dimension","widthsDistance","slice","widthsDistanceSum","reduce","sum","n","endValue","onHandlePress","segmentOnLayout","event","nativeEvent","layout","selectedStyle","selected","selectedDark","outlineStyle","outline","outlineIOS","row","flex","length","left"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tView,\n\tTouchableWithoutFeedback,\n\tText,\n\tPlatform,\n\tAnimated,\n\tEasing,\n} from 'react-native';\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { performLayoutAnimation } from '../layout-animation';\nimport styles from './style.scss';\n\nconst ANIMATION_DURATION = 200;\n\nconst isIOS = Platform.OS === 'ios';\n\nconst Segment = ( { isSelected, title, onPress, onLayout, ...props } ) => {\n\tconst isSelectedIOS = isIOS && isSelected;\n\n\tconst segmentStyle = [ styles.segment, isIOS && styles.segmentIOS ];\n\n\tconst textStyle = usePreferredColorSchemeStyle(\n\t\tstyles.buttonTextDefault,\n\t\tstyles.buttonTextDefaultDark\n\t);\n\tconst selectedTextStyle = usePreferredColorSchemeStyle(\n\t\tstyles.buttonTextSelected,\n\t\tstyles.buttonTextSelectedDark\n\t);\n\tconst shadowStyle = usePreferredColorSchemeStyle( styles.shadowIOS, {} );\n\n\treturn (\n\t\t<View style={ isSelectedIOS && shadowStyle }>\n\t\t\t<TouchableWithoutFeedback onPress={ onPress }>\n\t\t\t\t<View style={ segmentStyle } onLayout={ onLayout } { ...props }>\n\t\t\t\t\t<Text\n\t\t\t\t\t\tstyle={ [ textStyle, isSelected && selectedTextStyle ] }\n\t\t\t\t\t\tmaxFontSizeMultiplier={ 2 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</Text>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t</View>\n\t);\n};\n\nconst SegmentedControls = ( {\n\tsegments,\n\tsegmentHandler,\n\tselectedIndex,\n\taddonLeft,\n\taddonRight,\n} ) => {\n\tconst selectedSegmentIndex = selectedIndex || 0;\n\tconst [ activeSegmentIndex, setActiveSegmentIndex ] =\n\t\tuseState( selectedSegmentIndex );\n\tconst [ segmentsDimensions, setSegmentsDimensions ] = useState( {\n\t\t[ activeSegmentIndex ]: { width: 0, height: 0 },\n\t} );\n\tconst [ positionAnimationValue ] = useState( new Animated.Value( 0 ) );\n\n\tuseEffect( () => {\n\t\tsetActiveSegmentIndex( selectedSegmentIndex );\n\t\tsegmentHandler( segments[ selectedSegmentIndex ] );\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tpositionAnimationValue.setValue(\n\t\t\tcalculateEndValue( activeSegmentIndex )\n\t\t);\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ segmentsDimensions ] );\n\n\tconst containerStyle = usePreferredColorSchemeStyle(\n\t\tstyles.container,\n\t\tstyles.containerDark\n\t);\n\n\tfunction performSwatchAnimation( index ) {\n\t\tAnimated.timing( positionAnimationValue, {\n\t\t\ttoValue: calculateEndValue( index ),\n\t\t\tduration: ANIMATION_DURATION,\n\t\t\teasing: Easing.ease,\n\t\t\tuseNativeDriver: false,\n\t\t} ).start();\n\t}\n\n\tfunction calculateEndValue( index ) {\n\t\tconst { paddingLeft: offset } = isIOS\n\t\t\t? styles.containerIOS\n\t\t\t: styles.container;\n\t\tconst widths = Object.values( segmentsDimensions ).map(\n\t\t\t( dimension ) => dimension.width\n\t\t);\n\t\tconst widthsDistance = widths.slice( 0, index );\n\t\tconst widthsDistanceSum = widthsDistance.reduce(\n\t\t\t( sum, n ) => sum + n,\n\t\t\t0\n\t\t);\n\n\t\tconst endValue = index === 0 ? 0 : widthsDistanceSum;\n\t\treturn endValue + offset;\n\t}\n\n\tfunction onHandlePress( segment, index ) {\n\t\tperformLayoutAnimation( ANIMATION_DURATION );\n\t\tsetActiveSegmentIndex( index );\n\t\tsegmentHandler( segment );\n\t\tperformSwatchAnimation( index );\n\t}\n\n\tfunction segmentOnLayout( event, index ) {\n\t\tconst { width, height } = event.nativeEvent.layout;\n\n\t\tsetSegmentsDimensions( {\n\t\t\t...segmentsDimensions,\n\t\t\t[ index ]: { width, height },\n\t\t} );\n\t}\n\n\tconst selectedStyle = usePreferredColorSchemeStyle(\n\t\tstyles.selected,\n\t\tstyles.selectedDark\n\t);\n\n\tconst width = segmentsDimensions[ activeSegmentIndex ]?.width;\n\tconst height = segmentsDimensions[ activeSegmentIndex ]?.height;\n\n\tconst outlineStyle = [ styles.outline, isIOS && styles.outlineIOS ];\n\n\treturn (\n\t\t<View style={ styles.row }>\n\t\t\t<View style={ styles.flex }>{ addonLeft }</View>\n\t\t\t<View style={ [ containerStyle, isIOS && styles.containerIOS ] }>\n\t\t\t\t{ segments.map( ( segment, index ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Segment\n\t\t\t\t\t\t\ttitle={ segment }\n\t\t\t\t\t\t\tonPress={ () => onHandlePress( segment, index ) }\n\t\t\t\t\t\t\tisSelected={ activeSegmentIndex === index }\n\t\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\t\tonLayout={ ( event ) =>\n\t\t\t\t\t\t\t\tsegmentOnLayout( event, index )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\taccessibilityState={ {\n\t\t\t\t\t\t\t\tselected: activeSegmentIndex === index,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t\t\t\t\taccessibilityLabel={ segment }\n\t\t\t\t\t\t\taccessibilityHint={ `${ index + 1 } on ${\n\t\t\t\t\t\t\t\tsegments.length\n\t\t\t\t\t\t\t}` }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t\t<Animated.View\n\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\twidth,\n\t\t\t\t\t\t\tleft: positionAnimationValue,\n\t\t\t\t\t\t\theight,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tselectedStyle,\n\t\t\t\t\t\toutlineStyle,\n\t\t\t\t\t] }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t\t<View style={ styles.flex }>{ addonRight }</View>\n\t\t</View>\n\t);\n};\n\nexport default SegmentedControls;\n"]}
|
|
@@ -50,7 +50,7 @@ var _ref = process.env.NODE_ENV === "production" ? {
|
|
|
50
50
|
} : {
|
|
51
51
|
name: "192ebb7-classes",
|
|
52
52
|
styles: "overflow-x:hidden;label:classes;",
|
|
53
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvbmF2aWdhdG9yL25hdmlnYXRvci1wcm92aWRlci9jb21wb25lbnQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFQWSIsImZpbGUiOiJAd29yZHByZXNzL2NvbXBvbmVudHMvc3JjL25hdmlnYXRvci9uYXZpZ2F0b3ItcHJvdmlkZXIvY29tcG9uZW50LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXh0ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB0eXBlIHsgRm9yd2FyZGVkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuXG4vKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHtcblx0dXNlTWVtbyxcblx0dXNlU3RhdGUsXG5cdHVzZUNhbGxiYWNrLFxuXHR1c2VSZWR1Y2VyLFxuXHR1c2VSZWYsXG5cdHVzZUVmZmVjdCxcbn0gZnJvbSAnQHdvcmRwcmVzcy9lbGVtZW50JztcbmltcG9ydCBpc1NoYWxsb3dFcXVhbCBmcm9tICdAd29yZHByZXNzL2lzLXNoYWxsb3ctZXF1YWwnO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQge1xuXHRjb250ZXh0Q29ubmVjdCxcblx0dXNlQ29udGV4dFN5c3RlbSxcblx0V29yZFByZXNzQ29tcG9uZW50UHJvcHMsXG59IGZyb20gJy4uLy4uL3VpL2NvbnRleHQnO1xuaW1wb3J0IHsgdXNlQ3ggfSBmcm9tICcuLi8uLi91dGlscy9ob29rcy91c2UtY3gnO1xuaW1wb3J0IHsgVmlldyB9IGZyb20gJy4uLy4uL3ZpZXcnO1xuaW1wb3J0IHsgTmF2aWdhdG9yQ29udGV4dCB9IGZyb20gJy4uL2NvbnRleHQnO1xuaW1wb3J0IHR5cGUge1xuXHROYXZpZ2F0b3JQcm92aWRlclByb3BzLFxuXHROYXZpZ2F0b3JMb2NhdGlvbixcblx0TmF2aWdhdG9yQ29udGV4dCBhcyBOYXZpZ2F0b3JDb250ZXh0VHlwZSxcblx0U2NyZWVuLFxufSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBwYXR0ZXJuTWF0Y2gsIGZpbmRQYXJlbnQgfSBmcm9tICcuLi91dGlscy9yb3V0ZXInO1xuXG50eXBlIE1hdGNoZWRQYXRoID0gUmV0dXJuVHlwZTwgdHlwZW9mIHBhdHRlcm5NYXRjaCA+O1xudHlwZSBTY3JlZW5BY3Rpb24gPSB7IHR5cGU6IHN0cmluZzsgc2NyZWVuOiBTY3JlZW4gfTtcblxuY29uc3QgTUFYX0hJU1RPUllfTEVOR1RIID0gNTA7XG5cbmZ1bmN0aW9uIHNjcmVlbnNSZWR1Y2VyKFxuXHRzdGF0ZTogU2NyZWVuW10gPSBbXSxcblx0YWN0aW9uOiBTY3JlZW5BY3Rpb25cbik6IFNjcmVlbltdIHtcblx0c3dpdGNoICggYWN0aW9uLnR5cGUgKSB7XG5cdFx0Y2FzZSAnYWRkJzpcblx0XHRcdHJldHVybiBbIC4uLnN0YXRlLCBhY3Rpb24uc2NyZWVuIF07XG5cdFx0Y2FzZSAncmVtb3ZlJzpcblx0XHRcdHJldHVybiBzdGF0ZS5maWx0ZXIoICggczogU2NyZWVuICkgPT4gcy5pZCAhPT0gYWN0aW9uLnNjcmVlbi5pZCApO1xuXHR9XG5cblx0cmV0dXJuIHN0YXRlO1xufVxuXG5mdW5jdGlvbiBVbmNvbm5lY3RlZE5hdmlnYXRvclByb3ZpZGVyKFxuXHRwcm9wczogV29yZFByZXNzQ29tcG9uZW50UHJvcHM8IE5hdmlnYXRvclByb3ZpZGVyUHJvcHMsICdkaXYnID4sXG5cdGZvcndhcmRlZFJlZjogRm9yd2FyZGVkUmVmPCBhbnkgPlxuKSB7XG5cdGNvbnN0IHsgaW5pdGlhbFBhdGgsIGNoaWxkcmVuLCBjbGFzc05hbWUsIC4uLm90aGVyUHJvcHMgfSA9XG5cdFx0dXNlQ29udGV4dFN5c3RlbSggcHJvcHMsICdOYXZpZ2F0b3JQcm92aWRlcicgKTtcblxuXHRjb25zdCBbIGxvY2F0aW9uSGlzdG9yeSwgc2V0TG9jYXRpb25IaXN0b3J5IF0gPSB1c2VTdGF0ZTxcblx0XHROYXZpZ2F0b3JMb2NhdGlvbltdXG5cdD4oIFtcblx0XHR7XG5cdFx0XHRwYXRoOiBpbml0aWFsUGF0aCxcblx0XHR9LFxuXHRdICk7XG5cdGNvbnN0IGN1cnJlbnRMb2NhdGlvbkhpc3RvcnkgPSB1c2VSZWY8IE5hdmlnYXRvckxvY2F0aW9uW10gPiggW10gKTtcblx0Y29uc3QgWyBzY3JlZW5zLCBkaXNwYXRjaCBdID0gdXNlUmVkdWNlciggc2NyZWVuc1JlZHVjZXIsIFtdICk7XG5cdGNvbnN0IGN1cnJlbnRTY3JlZW5zID0gdXNlUmVmPCBTY3JlZW5bXSA+KCBbXSApO1xuXHR1c2VFZmZlY3QoICgpID0+IHtcblx0XHRjdXJyZW50U2NyZWVucy5jdXJyZW50ID0gc2NyZWVucztcblx0fSwgWyBzY3JlZW5zIF0gKTtcblx0dXNlRWZmZWN0KCAoKSA9PiB7XG5cdFx0Y3VycmVudExvY2F0aW9uSGlzdG9yeS5jdXJyZW50ID0gbG9jYXRpb25IaXN0b3J5O1xuXHR9LCBbIGxvY2F0aW9uSGlzdG9yeSBdICk7XG5cdGNvbnN0IGN1cnJlbnRNYXRjaCA9IHVzZVJlZjwgTWF0Y2hlZFBhdGggPigpO1xuXHRjb25zdCBtYXRjaGVkUGF0aCA9IHVzZU1lbW8oICgpID0+IHtcblx0XHRsZXQgY3VycmVudFBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0XHRpZiAoXG5cdFx0XHRsb2NhdGlvbkhpc3RvcnkubGVuZ3RoID09PSAwIHx8XG5cdFx0XHQoIGN1cnJlbnRQYXRoID1cblx0XHRcdFx0bG9jYXRpb25IaXN0b3J5WyBsb2NhdGlvbkhpc3RvcnkubGVuZ3RoIC0gMSBdLnBhdGggKSA9PT1cblx0XHRcdFx0dW5kZWZpbmVkXG5cdFx0KSB7XG5cdFx0XHRjdXJyZW50TWF0Y2guY3VycmVudCA9IHVuZGVmaW5lZDtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXG5cdFx0Y29uc3QgcmVzb2x2ZVBhdGggPSAoIHBhdGg6IHN0cmluZyApID0+IHtcblx0XHRcdGNvbnN0IG5ld01hdGNoID0gcGF0dGVybk1hdGNoKCBwYXRoLCBzY3JlZW5zICk7XG5cblx0XHRcdC8vIElmIHRoZSBuZXcgbWF0Y2ggaXMgdGhlIHNhbWUgYXMgdGhlIGN1cnJlbnQgbWF0Y2gsXG5cdFx0XHQvLyByZXR1cm4gdGhlIHByZXZpb3VzIG9uZSBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy5cblx0XHRcdGlmIChcblx0XHRcdFx0Y3VycmVudE1hdGNoLmN1cnJlbnQgJiZcblx0XHRcdFx0bmV3TWF0Y2ggJiZcblx0XHRcdFx0aXNTaGFsbG93RXF1YWwoXG5cdFx0XHRcdFx0bmV3TWF0Y2gucGFyYW1zLFxuXHRcdFx0XHRcdGN1cnJlbnRNYXRjaC5jdXJyZW50LnBhcmFtc1xuXHRcdFx0XHQpICYmXG5cdFx0XHRcdG5ld01hdGNoLmlkID09PSBjdXJyZW50TWF0Y2guY3VycmVudC5pZFxuXHRcdFx0KSB7XG5cdFx0XHRcdHJldHVybiBjdXJyZW50TWF0Y2guY3VycmVudDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIG5ld01hdGNoO1xuXHRcdH07XG5cblx0XHRjb25zdCBuZXdNYXRjaCA9IHJlc29sdmVQYXRoKCBjdXJyZW50UGF0aCApO1xuXHRcdGN1cnJlbnRNYXRjaC5jdXJyZW50ID0gbmV3TWF0Y2g7XG5cdFx0cmV0dXJuIG5ld01hdGNoO1xuXHR9LCBbIHNjcmVlbnMsIGxvY2F0aW9uSGlzdG9yeSBdICk7XG5cblx0Y29uc3QgYWRkU2NyZWVuID0gdXNlQ2FsbGJhY2soXG5cdFx0KCBzY3JlZW46IFNjcmVlbiApID0+IGRpc3BhdGNoKCB7IHR5cGU6ICdhZGQnLCBzY3JlZW4gfSApLFxuXHRcdFtdXG5cdCk7XG5cblx0Y29uc3QgcmVtb3ZlU2NyZWVuID0gdXNlQ2FsbGJhY2soXG5cdFx0KCBzY3JlZW46IFNjcmVlbiApID0+IGRpc3BhdGNoKCB7IHR5cGU6ICdyZW1vdmUnLCBzY3JlZW4gfSApLFxuXHRcdFtdXG5cdCk7XG5cblx0Y29uc3QgZ29CYWNrOiBOYXZpZ2F0b3JDb250ZXh0VHlwZVsgJ2dvQmFjaycgXSA9IHVzZUNhbGxiYWNrKCAoKSA9PiB7XG5cdFx0c2V0TG9jYXRpb25IaXN0b3J5KCAoIHByZXZMb2NhdGlvbkhpc3RvcnkgKSA9PiB7XG5cdFx0XHRpZiAoIHByZXZMb2NhdGlvbkhpc3RvcnkubGVuZ3RoIDw9IDEgKSB7XG5cdFx0XHRcdHJldHVybiBwcmV2TG9jYXRpb25IaXN0b3J5O1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIFtcblx0XHRcdFx0Li4ucHJldkxvY2F0aW9uSGlzdG9yeS5zbGljZSggMCwgLTIgKSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdC4uLnByZXZMb2NhdGlvbkhpc3RvcnlbIHByZXZMb2NhdGlvbkhpc3RvcnkubGVuZ3RoIC0gMiBdLFxuXHRcdFx0XHRcdGlzQmFjazogdHJ1ZSxcblx0XHRcdFx0XHRoYXNSZXN0b3JlZEZvY3VzOiBmYWxzZSxcblx0XHRcdFx0fSxcblx0XHRcdF07XG5cdFx0fSApO1xuXHR9LCBbXSApO1xuXG5cdGNvbnN0IGdvVG86IE5hdmlnYXRvckNvbnRleHRUeXBlWyAnZ29UbycgXSA9IHVzZUNhbGxiYWNrKFxuXHRcdCggcGF0aCwgb3B0aW9ucyA9IHt9ICkgPT4ge1xuXHRcdFx0Y29uc3Qge1xuXHRcdFx0XHRmb2N1c1RhcmdldFNlbGVjdG9yLFxuXHRcdFx0XHRpc0JhY2sgPSBmYWxzZSxcblx0XHRcdFx0Li4ucmVzdE9wdGlvbnNcblx0XHRcdH0gPSBvcHRpb25zO1xuXG5cdFx0XHRjb25zdCBpc05hdmlnYXRpbmdUb1ByZXZpb3VzUGF0aCA9XG5cdFx0XHRcdGlzQmFjayAmJlxuXHRcdFx0XHRjdXJyZW50TG9jYXRpb25IaXN0b3J5LmN1cnJlbnQubGVuZ3RoID4gMSAmJlxuXHRcdFx0XHRjdXJyZW50TG9jYXRpb25IaXN0b3J5LmN1cnJlbnRbXG5cdFx0XHRcdFx0Y3VycmVudExvY2F0aW9uSGlzdG9yeS5jdXJyZW50Lmxlbmd0aCAtIDJcblx0XHRcdFx0XS5wYXRoID09PSBwYXRoO1xuXG5cdFx0XHRpZiAoIGlzTmF2aWdhdGluZ1RvUHJldmlvdXNQYXRoICkge1xuXHRcdFx0XHRnb0JhY2soKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRzZXRMb2NhdGlvbkhpc3RvcnkoICggcHJldkxvY2F0aW9uSGlzdG9yeSApID0+IHtcblx0XHRcdFx0Y29uc3QgbmV3TG9jYXRpb24gPSB7XG5cdFx0XHRcdFx0Li4ucmVzdE9wdGlvbnMsXG5cdFx0XHRcdFx0cGF0aCxcblx0XHRcdFx0XHRpc0JhY2ssXG5cdFx0XHRcdFx0aGFzUmVzdG9yZWRGb2N1czogZmFsc2UsXG5cdFx0XHRcdH07XG5cblx0XHRcdFx0aWYgKCBwcmV2TG9jYXRpb25IaXN0b3J5Lmxlbmd0aCA8IDEgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIFsgbmV3TG9jYXRpb24gXTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiBbXG5cdFx0XHRcdFx0Li4ucHJldkxvY2F0aW9uSGlzdG9yeS5zbGljZShcblx0XHRcdFx0XHRcdHByZXZMb2NhdGlvbkhpc3RvcnkubGVuZ3RoID4gTUFYX0hJU1RPUllfTEVOR1RIIC0gMVxuXHRcdFx0XHRcdFx0XHQ/IDFcblx0XHRcdFx0XHRcdFx0OiAwLFxuXHRcdFx0XHRcdFx0LTFcblx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdC8vIEFzc2lnbiBgZm9jdXNUYXJnZXRTZWxlY3RvcmAgdG8gdGhlIHByZXZpb3VzIGxvY2F0aW9uIGluIGhpc3Rvcnlcblx0XHRcdFx0XHQvLyAodGhlIG9uZSB3ZSBqdXN0IG5hdmlnYXRlZCBmcm9tKS5cblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHQuLi5wcmV2TG9jYXRpb25IaXN0b3J5W1xuXHRcdFx0XHRcdFx0XHRwcmV2TG9jYXRpb25IaXN0b3J5Lmxlbmd0aCAtIDFcblx0XHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0XHRmb2N1c1RhcmdldFNlbGVjdG9yLFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0bmV3TG9jYXRpb24sXG5cdFx0XHRcdF07XG5cdFx0XHR9ICk7XG5cdFx0fSxcblx0XHRbIGdvQmFjayBdXG5cdCk7XG5cblx0Y29uc3QgZ29Ub1BhcmVudDogTmF2aWdhdG9yQ29udGV4dFR5cGVbICdnb1RvUGFyZW50JyBdID1cblx0XHR1c2VDYWxsYmFjayggKCkgPT4ge1xuXHRcdFx0Y29uc3QgY3VycmVudFBhdGggPVxuXHRcdFx0XHRjdXJyZW50TG9jYXRpb25IaXN0b3J5LmN1cnJlbnRbXG5cdFx0XHRcdFx0Y3VycmVudExvY2F0aW9uSGlzdG9yeS5jdXJyZW50Lmxlbmd0aCAtIDFcblx0XHRcdFx0XS5wYXRoO1xuXHRcdFx0aWYgKCBjdXJyZW50UGF0aCA9PT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBwYXJlbnRQYXRoID0gZmluZFBhcmVudChcblx0XHRcdFx0Y3VycmVudFBhdGgsXG5cdFx0XHRcdGN1cnJlbnRTY3JlZW5zLmN1cnJlbnRcblx0XHRcdCk7XG5cdFx0XHRpZiAoIHBhcmVudFBhdGggPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0Z29UbyggcGFyZW50UGF0aCwgeyBpc0JhY2s6IHRydWUgfSApO1xuXHRcdH0sIFsgZ29UbyBdICk7XG5cblx0Y29uc3QgbmF2aWdhdG9yQ29udGV4dFZhbHVlOiBOYXZpZ2F0b3JDb250ZXh0VHlwZSA9IHVzZU1lbW8oXG5cdFx0KCkgPT4gKCB7XG5cdFx0XHRsb2NhdGlvbjoge1xuXHRcdFx0XHQuLi5sb2NhdGlvbkhpc3RvcnlbIGxvY2F0aW9uSGlzdG9yeS5sZW5ndGggLSAxIF0sXG5cdFx0XHRcdGlzSW5pdGlhbDogbG9jYXRpb25IaXN0b3J5Lmxlbmd0aCA9PT0gMSxcblx0XHRcdH0sXG5cdFx0XHRwYXJhbXM6IG1hdGNoZWRQYXRoID8gbWF0Y2hlZFBhdGgucGFyYW1zIDoge30sXG5cdFx0XHRtYXRjaDogbWF0Y2hlZFBhdGggPyBtYXRjaGVkUGF0aC5pZCA6IHVuZGVmaW5lZCxcblx0XHRcdGdvVG8sXG5cdFx0XHRnb0JhY2ssXG5cdFx0XHRnb1RvUGFyZW50LFxuXHRcdFx0YWRkU2NyZWVuLFxuXHRcdFx0cmVtb3ZlU2NyZWVuLFxuXHRcdH0gKSxcblx0XHRbXG5cdFx0XHRsb2NhdGlvbkhpc3RvcnksXG5cdFx0XHRtYXRjaGVkUGF0aCxcblx0XHRcdGdvVG8sXG5cdFx0XHRnb0JhY2ssXG5cdFx0XHRnb1RvUGFyZW50LFxuXHRcdFx0YWRkU2NyZWVuLFxuXHRcdFx0cmVtb3ZlU2NyZWVuLFxuXHRcdF1cblx0KTtcblxuXHRjb25zdCBjeCA9IHVzZUN4KCk7XG5cdGNvbnN0IGNsYXNzZXMgPSB1c2VNZW1vKFxuXHRcdC8vIFByZXZlbnRzIGhvcml6b250YWwgb3ZlcmZsb3cgd2hpbGUgYW5pbWF0aW5nIHNjcmVlbiB0cmFuc2l0aW9ucy5cblx0XHQoKSA9PiBjeCggY3NzKCB7IG92ZXJmbG93WDogJ2hpZGRlbicgfSApLCBjbGFzc05hbWUgKSxcblx0XHRbIGNsYXNzTmFtZSwgY3ggXVxuXHQpO1xuXG5cdHJldHVybiAoXG5cdFx0PFZpZXcgcmVmPXsgZm9yd2FyZGVkUmVmIH0gY2xhc3NOYW1lPXsgY2xhc3NlcyB9IHsgLi4ub3RoZXJQcm9wcyB9PlxuXHRcdFx0PE5hdmlnYXRvckNvbnRleHQuUHJvdmlkZXIgdmFsdWU9eyBuYXZpZ2F0b3JDb250ZXh0VmFsdWUgfT5cblx0XHRcdFx0eyBjaGlsZHJlbiB9XG5cdFx0XHQ8L05hdmlnYXRvckNvbnRleHQuUHJvdmlkZXI+XG5cdFx0PC9WaWV3PlxuXHQpO1xufVxuXG4vKipcbiAqIFRoZSBgTmF2aWdhdG9yUHJvdmlkZXJgIGNvbXBvbmVudCBhbGxvd3MgcmVuZGVyaW5nIG5lc3RlZCB2aWV3cy9wYW5lbHMvbWVudXNcbiAqICh2aWEgdGhlIGBOYXZpZ2F0b3JTY3JlZW5gIGNvbXBvbmVudCBhbmQgbmF2aWdhdGUgYmV0d2VlbiB0aGVzZSBkaWZmZXJlbnRcbiAqIHZpZXcgKHZpYSB0aGUgYE5hdmlnYXRvckJ1dHRvbmAgYW5kIGBOYXZpZ2F0b3JCYWNrQnV0dG9uYCBjb21wb25lbnRzIG9yIHRoZVxuICogYHVzZU5hdmlnYXRvcmAgaG9vaykuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGpzeFxuICogaW1wb3J0IHtcbiAqICAgX19leHBlcmltZW50YWxOYXZpZ2F0b3JQcm92aWRlciBhcyBOYXZpZ2F0b3JQcm92aWRlcixcbiAqICAgX19leHBlcmltZW50YWxOYXZpZ2F0b3JTY3JlZW4gYXMgTmF2aWdhdG9yU2NyZWVuLFxuICogICBfX2V4cGVyaW1lbnRhbE5hdmlnYXRvckJ1dHRvbiBhcyBOYXZpZ2F0b3JCdXR0b24sXG4gKiAgIF9fZXhwZXJpbWVudGFsTmF2aWdhdG9yQmFja0J1dHRvbiBhcyBOYXZpZ2F0b3JCYWNrQnV0dG9uLFxuICogfSBmcm9tICdAd29yZHByZXNzL2NvbXBvbmVudHMnO1xuICpcbiAqIGNvbnN0IE15TmF2aWdhdGlvbiA9ICgpID0+IChcbiAqICAgPE5hdmlnYXRvclByb3ZpZGVyIGluaXRpYWxQYXRoPVwiL1wiPlxuICogICAgIDxOYXZpZ2F0b3JTY3JlZW4gcGF0aD1cIi9cIj5cbiAqICAgICAgIDxwPlRoaXMgaXMgdGhlIGhvbWUgc2NyZWVuLjwvcD5cbiAqICAgICAgICA8TmF2aWdhdG9yQnV0dG9uIHBhdGg9XCIvY2hpbGRcIj5cbiAqICAgICAgICAgIE5hdmlnYXRlIHRvIGNoaWxkIHNjcmVlbi5cbiAqICAgICAgIDwvTmF2aWdhdG9yQnV0dG9uPlxuICogICAgIDwvTmF2aWdhdG9yU2NyZWVuPlxuICpcbiAqICAgICA8TmF2aWdhdG9yU2NyZWVuIHBhdGg9XCIvY2hpbGRcIj5cbiAqICAgICAgIDxwPlRoaXMgaXMgdGhlIGNoaWxkIHNjcmVlbi48L3A+XG4gKiAgICAgICA8TmF2aWdhdG9yQmFja0J1dHRvbj5cbiAqICAgICAgICAgR28gYmFja1xuICogICAgICAgPC9OYXZpZ2F0b3JCYWNrQnV0dG9uPlxuICogICAgIDwvTmF2aWdhdG9yU2NyZWVuPlxuICogICA8L05hdmlnYXRvclByb3ZpZGVyPlxuICogKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgTmF2aWdhdG9yUHJvdmlkZXIgPSBjb250ZXh0Q29ubmVjdChcblx0VW5jb25uZWN0ZWROYXZpZ2F0b3JQcm92aWRlcixcblx0J05hdmlnYXRvclByb3ZpZGVyJ1xuKTtcblxuZXhwb3J0IGRlZmF1bHQgTmF2aWdhdG9yUHJvdmlkZXI7XG4iXX0= */",
|
|
53
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvbmF2aWdhdG9yL25hdmlnYXRvci1wcm92aWRlci9jb21wb25lbnQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVQWSIsImZpbGUiOiJAd29yZHByZXNzL2NvbXBvbmVudHMvc3JjL25hdmlnYXRvci9uYXZpZ2F0b3ItcHJvdmlkZXIvY29tcG9uZW50LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXh0ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB0eXBlIHsgRm9yd2FyZGVkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuXG4vKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHtcblx0dXNlTWVtbyxcblx0dXNlU3RhdGUsXG5cdHVzZUNhbGxiYWNrLFxuXHR1c2VSZWR1Y2VyLFxuXHR1c2VSZWYsXG5cdHVzZUVmZmVjdCxcbn0gZnJvbSAnQHdvcmRwcmVzcy9lbGVtZW50JztcbmltcG9ydCBpc1NoYWxsb3dFcXVhbCBmcm9tICdAd29yZHByZXNzL2lzLXNoYWxsb3ctZXF1YWwnO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQge1xuXHRjb250ZXh0Q29ubmVjdCxcblx0dXNlQ29udGV4dFN5c3RlbSxcblx0V29yZFByZXNzQ29tcG9uZW50UHJvcHMsXG59IGZyb20gJy4uLy4uL3VpL2NvbnRleHQnO1xuaW1wb3J0IHsgdXNlQ3ggfSBmcm9tICcuLi8uLi91dGlscy9ob29rcy91c2UtY3gnO1xuaW1wb3J0IHsgVmlldyB9IGZyb20gJy4uLy4uL3ZpZXcnO1xuaW1wb3J0IHsgTmF2aWdhdG9yQ29udGV4dCB9IGZyb20gJy4uL2NvbnRleHQnO1xuaW1wb3J0IHR5cGUge1xuXHROYXZpZ2F0b3JQcm92aWRlclByb3BzLFxuXHROYXZpZ2F0b3JMb2NhdGlvbixcblx0TmF2aWdhdG9yQ29udGV4dCBhcyBOYXZpZ2F0b3JDb250ZXh0VHlwZSxcblx0U2NyZWVuLFxufSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBwYXR0ZXJuTWF0Y2gsIGZpbmRQYXJlbnQgfSBmcm9tICcuLi91dGlscy9yb3V0ZXInO1xuXG50eXBlIE1hdGNoZWRQYXRoID0gUmV0dXJuVHlwZTwgdHlwZW9mIHBhdHRlcm5NYXRjaCA+O1xudHlwZSBTY3JlZW5BY3Rpb24gPSB7IHR5cGU6IHN0cmluZzsgc2NyZWVuOiBTY3JlZW4gfTtcblxuY29uc3QgTUFYX0hJU1RPUllfTEVOR1RIID0gNTA7XG5cbmZ1bmN0aW9uIHNjcmVlbnNSZWR1Y2VyKFxuXHRzdGF0ZTogU2NyZWVuW10gPSBbXSxcblx0YWN0aW9uOiBTY3JlZW5BY3Rpb25cbik6IFNjcmVlbltdIHtcblx0c3dpdGNoICggYWN0aW9uLnR5cGUgKSB7XG5cdFx0Y2FzZSAnYWRkJzpcblx0XHRcdHJldHVybiBbIC4uLnN0YXRlLCBhY3Rpb24uc2NyZWVuIF07XG5cdFx0Y2FzZSAncmVtb3ZlJzpcblx0XHRcdHJldHVybiBzdGF0ZS5maWx0ZXIoICggczogU2NyZWVuICkgPT4gcy5pZCAhPT0gYWN0aW9uLnNjcmVlbi5pZCApO1xuXHR9XG5cblx0cmV0dXJuIHN0YXRlO1xufVxuXG5mdW5jdGlvbiBVbmNvbm5lY3RlZE5hdmlnYXRvclByb3ZpZGVyKFxuXHRwcm9wczogV29yZFByZXNzQ29tcG9uZW50UHJvcHM8IE5hdmlnYXRvclByb3ZpZGVyUHJvcHMsICdkaXYnID4sXG5cdGZvcndhcmRlZFJlZjogRm9yd2FyZGVkUmVmPCBhbnkgPlxuKSB7XG5cdGNvbnN0IHsgaW5pdGlhbFBhdGgsIGNoaWxkcmVuLCBjbGFzc05hbWUsIC4uLm90aGVyUHJvcHMgfSA9XG5cdFx0dXNlQ29udGV4dFN5c3RlbSggcHJvcHMsICdOYXZpZ2F0b3JQcm92aWRlcicgKTtcblxuXHRjb25zdCBbIGxvY2F0aW9uSGlzdG9yeSwgc2V0TG9jYXRpb25IaXN0b3J5IF0gPSB1c2VTdGF0ZTxcblx0XHROYXZpZ2F0b3JMb2NhdGlvbltdXG5cdD4oIFtcblx0XHR7XG5cdFx0XHRwYXRoOiBpbml0aWFsUGF0aCxcblx0XHR9LFxuXHRdICk7XG5cdGNvbnN0IGN1cnJlbnRMb2NhdGlvbkhpc3RvcnkgPSB1c2VSZWY8IE5hdmlnYXRvckxvY2F0aW9uW10gPiggW10gKTtcblx0Y29uc3QgWyBzY3JlZW5zLCBkaXNwYXRjaCBdID0gdXNlUmVkdWNlciggc2NyZWVuc1JlZHVjZXIsIFtdICk7XG5cdGNvbnN0IGN1cnJlbnRTY3JlZW5zID0gdXNlUmVmPCBTY3JlZW5bXSA+KCBbXSApO1xuXHR1c2VFZmZlY3QoICgpID0+IHtcblx0XHRjdXJyZW50U2NyZWVucy5jdXJyZW50ID0gc2NyZWVucztcblx0fSwgWyBzY3JlZW5zIF0gKTtcblx0dXNlRWZmZWN0KCAoKSA9PiB7XG5cdFx0Y3VycmVudExvY2F0aW9uSGlzdG9yeS5jdXJyZW50ID0gbG9jYXRpb25IaXN0b3J5O1xuXHR9LCBbIGxvY2F0aW9uSGlzdG9yeSBdICk7XG5cdGNvbnN0IGN1cnJlbnRNYXRjaCA9IHVzZVJlZjwgTWF0Y2hlZFBhdGggPigpO1xuXHRjb25zdCBtYXRjaGVkUGF0aCA9IHVzZU1lbW8oICgpID0+IHtcblx0XHRsZXQgY3VycmVudFBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0XHRpZiAoXG5cdFx0XHRsb2NhdGlvbkhpc3RvcnkubGVuZ3RoID09PSAwIHx8XG5cdFx0XHQoIGN1cnJlbnRQYXRoID1cblx0XHRcdFx0bG9jYXRpb25IaXN0b3J5WyBsb2NhdGlvbkhpc3RvcnkubGVuZ3RoIC0gMSBdLnBhdGggKSA9PT1cblx0XHRcdFx0dW5kZWZpbmVkXG5cdFx0KSB7XG5cdFx0XHRjdXJyZW50TWF0Y2guY3VycmVudCA9IHVuZGVmaW5lZDtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXG5cdFx0Y29uc3QgcmVzb2x2ZVBhdGggPSAoIHBhdGg6IHN0cmluZyApID0+IHtcblx0XHRcdGNvbnN0IG5ld01hdGNoID0gcGF0dGVybk1hdGNoKCBwYXRoLCBzY3JlZW5zICk7XG5cblx0XHRcdC8vIElmIHRoZSBuZXcgbWF0Y2ggaXMgdGhlIHNhbWUgYXMgdGhlIGN1cnJlbnQgbWF0Y2gsXG5cdFx0XHQvLyByZXR1cm4gdGhlIHByZXZpb3VzIG9uZSBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy5cblx0XHRcdGlmIChcblx0XHRcdFx0Y3VycmVudE1hdGNoLmN1cnJlbnQgJiZcblx0XHRcdFx0bmV3TWF0Y2ggJiZcblx0XHRcdFx0aXNTaGFsbG93RXF1YWwoXG5cdFx0XHRcdFx0bmV3TWF0Y2gucGFyYW1zLFxuXHRcdFx0XHRcdGN1cnJlbnRNYXRjaC5jdXJyZW50LnBhcmFtc1xuXHRcdFx0XHQpICYmXG5cdFx0XHRcdG5ld01hdGNoLmlkID09PSBjdXJyZW50TWF0Y2guY3VycmVudC5pZFxuXHRcdFx0KSB7XG5cdFx0XHRcdHJldHVybiBjdXJyZW50TWF0Y2guY3VycmVudDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIG5ld01hdGNoO1xuXHRcdH07XG5cblx0XHRjb25zdCBuZXdNYXRjaCA9IHJlc29sdmVQYXRoKCBjdXJyZW50UGF0aCApO1xuXHRcdGN1cnJlbnRNYXRjaC5jdXJyZW50ID0gbmV3TWF0Y2g7XG5cdFx0cmV0dXJuIG5ld01hdGNoO1xuXHR9LCBbIHNjcmVlbnMsIGxvY2F0aW9uSGlzdG9yeSBdICk7XG5cblx0Y29uc3QgYWRkU2NyZWVuID0gdXNlQ2FsbGJhY2soXG5cdFx0KCBzY3JlZW46IFNjcmVlbiApID0+IGRpc3BhdGNoKCB7IHR5cGU6ICdhZGQnLCBzY3JlZW4gfSApLFxuXHRcdFtdXG5cdCk7XG5cblx0Y29uc3QgcmVtb3ZlU2NyZWVuID0gdXNlQ2FsbGJhY2soXG5cdFx0KCBzY3JlZW46IFNjcmVlbiApID0+IGRpc3BhdGNoKCB7IHR5cGU6ICdyZW1vdmUnLCBzY3JlZW4gfSApLFxuXHRcdFtdXG5cdCk7XG5cblx0Y29uc3QgZ29CYWNrOiBOYXZpZ2F0b3JDb250ZXh0VHlwZVsgJ2dvQmFjaycgXSA9IHVzZUNhbGxiYWNrKCAoKSA9PiB7XG5cdFx0c2V0TG9jYXRpb25IaXN0b3J5KCAoIHByZXZMb2NhdGlvbkhpc3RvcnkgKSA9PiB7XG5cdFx0XHRpZiAoIHByZXZMb2NhdGlvbkhpc3RvcnkubGVuZ3RoIDw9IDEgKSB7XG5cdFx0XHRcdHJldHVybiBwcmV2TG9jYXRpb25IaXN0b3J5O1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIFtcblx0XHRcdFx0Li4ucHJldkxvY2F0aW9uSGlzdG9yeS5zbGljZSggMCwgLTIgKSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdC4uLnByZXZMb2NhdGlvbkhpc3RvcnlbIHByZXZMb2NhdGlvbkhpc3RvcnkubGVuZ3RoIC0gMiBdLFxuXHRcdFx0XHRcdGlzQmFjazogdHJ1ZSxcblx0XHRcdFx0XHRoYXNSZXN0b3JlZEZvY3VzOiBmYWxzZSxcblx0XHRcdFx0fSxcblx0XHRcdF07XG5cdFx0fSApO1xuXHR9LCBbXSApO1xuXG5cdGNvbnN0IGdvVG86IE5hdmlnYXRvckNvbnRleHRUeXBlWyAnZ29UbycgXSA9IHVzZUNhbGxiYWNrKFxuXHRcdCggcGF0aCwgb3B0aW9ucyA9IHt9ICkgPT4ge1xuXHRcdFx0Y29uc3Qge1xuXHRcdFx0XHRmb2N1c1RhcmdldFNlbGVjdG9yLFxuXHRcdFx0XHRpc0JhY2sgPSBmYWxzZSxcblx0XHRcdFx0c2tpcEZvY3VzID0gZmFsc2UsXG5cdFx0XHRcdC4uLnJlc3RPcHRpb25zXG5cdFx0XHR9ID0gb3B0aW9ucztcblxuXHRcdFx0Y29uc3QgaXNOYXZpZ2F0aW5nVG9QcmV2aW91c1BhdGggPVxuXHRcdFx0XHRpc0JhY2sgJiZcblx0XHRcdFx0Y3VycmVudExvY2F0aW9uSGlzdG9yeS5jdXJyZW50Lmxlbmd0aCA+IDEgJiZcblx0XHRcdFx0Y3VycmVudExvY2F0aW9uSGlzdG9yeS5jdXJyZW50W1xuXHRcdFx0XHRcdGN1cnJlbnRMb2NhdGlvbkhpc3RvcnkuY3VycmVudC5sZW5ndGggLSAyXG5cdFx0XHRcdF0ucGF0aCA9PT0gcGF0aDtcblxuXHRcdFx0aWYgKCBpc05hdmlnYXRpbmdUb1ByZXZpb3VzUGF0aCApIHtcblx0XHRcdFx0Z29CYWNrKCk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0c2V0TG9jYXRpb25IaXN0b3J5KCAoIHByZXZMb2NhdGlvbkhpc3RvcnkgKSA9PiB7XG5cdFx0XHRcdGNvbnN0IG5ld0xvY2F0aW9uID0ge1xuXHRcdFx0XHRcdC4uLnJlc3RPcHRpb25zLFxuXHRcdFx0XHRcdHBhdGgsXG5cdFx0XHRcdFx0aXNCYWNrLFxuXHRcdFx0XHRcdGhhc1Jlc3RvcmVkRm9jdXM6IGZhbHNlLFxuXHRcdFx0XHRcdHNraXBGb2N1cyxcblx0XHRcdFx0fTtcblxuXHRcdFx0XHRpZiAoIHByZXZMb2NhdGlvbkhpc3RvcnkubGVuZ3RoIDwgMSApIHtcblx0XHRcdFx0XHRyZXR1cm4gWyBuZXdMb2NhdGlvbiBdO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIFtcblx0XHRcdFx0XHQuLi5wcmV2TG9jYXRpb25IaXN0b3J5LnNsaWNlKFxuXHRcdFx0XHRcdFx0cHJldkxvY2F0aW9uSGlzdG9yeS5sZW5ndGggPiBNQVhfSElTVE9SWV9MRU5HVEggLSAxXG5cdFx0XHRcdFx0XHRcdD8gMVxuXHRcdFx0XHRcdFx0XHQ6IDAsXG5cdFx0XHRcdFx0XHQtMVxuXHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0Ly8gQXNzaWduIGBmb2N1c1RhcmdldFNlbGVjdG9yYCB0byB0aGUgcHJldmlvdXMgbG9jYXRpb24gaW4gaGlzdG9yeVxuXHRcdFx0XHRcdC8vICh0aGUgb25lIHdlIGp1c3QgbmF2aWdhdGVkIGZyb20pLlxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdC4uLnByZXZMb2NhdGlvbkhpc3RvcnlbXG5cdFx0XHRcdFx0XHRcdHByZXZMb2NhdGlvbkhpc3RvcnkubGVuZ3RoIC0gMVxuXHRcdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcdGZvY3VzVGFyZ2V0U2VsZWN0b3IsXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRuZXdMb2NhdGlvbixcblx0XHRcdFx0XTtcblx0XHRcdH0gKTtcblx0XHR9LFxuXHRcdFsgZ29CYWNrIF1cblx0KTtcblxuXHRjb25zdCBnb1RvUGFyZW50OiBOYXZpZ2F0b3JDb250ZXh0VHlwZVsgJ2dvVG9QYXJlbnQnIF0gPVxuXHRcdHVzZUNhbGxiYWNrKCAoKSA9PiB7XG5cdFx0XHRjb25zdCBjdXJyZW50UGF0aCA9XG5cdFx0XHRcdGN1cnJlbnRMb2NhdGlvbkhpc3RvcnkuY3VycmVudFtcblx0XHRcdFx0XHRjdXJyZW50TG9jYXRpb25IaXN0b3J5LmN1cnJlbnQubGVuZ3RoIC0gMVxuXHRcdFx0XHRdLnBhdGg7XG5cdFx0XHRpZiAoIGN1cnJlbnRQYXRoID09PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGNvbnN0IHBhcmVudFBhdGggPSBmaW5kUGFyZW50KFxuXHRcdFx0XHRjdXJyZW50UGF0aCxcblx0XHRcdFx0Y3VycmVudFNjcmVlbnMuY3VycmVudFxuXHRcdFx0KTtcblx0XHRcdGlmICggcGFyZW50UGF0aCA9PT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRnb1RvKCBwYXJlbnRQYXRoLCB7IGlzQmFjazogdHJ1ZSB9ICk7XG5cdFx0fSwgWyBnb1RvIF0gKTtcblxuXHRjb25zdCBuYXZpZ2F0b3JDb250ZXh0VmFsdWU6IE5hdmlnYXRvckNvbnRleHRUeXBlID0gdXNlTWVtbyhcblx0XHQoKSA9PiAoIHtcblx0XHRcdGxvY2F0aW9uOiB7XG5cdFx0XHRcdC4uLmxvY2F0aW9uSGlzdG9yeVsgbG9jYXRpb25IaXN0b3J5Lmxlbmd0aCAtIDEgXSxcblx0XHRcdFx0aXNJbml0aWFsOiBsb2NhdGlvbkhpc3RvcnkubGVuZ3RoID09PSAxLFxuXHRcdFx0fSxcblx0XHRcdHBhcmFtczogbWF0Y2hlZFBhdGggPyBtYXRjaGVkUGF0aC5wYXJhbXMgOiB7fSxcblx0XHRcdG1hdGNoOiBtYXRjaGVkUGF0aCA/IG1hdGNoZWRQYXRoLmlkIDogdW5kZWZpbmVkLFxuXHRcdFx0Z29Ubyxcblx0XHRcdGdvQmFjayxcblx0XHRcdGdvVG9QYXJlbnQsXG5cdFx0XHRhZGRTY3JlZW4sXG5cdFx0XHRyZW1vdmVTY3JlZW4sXG5cdFx0fSApLFxuXHRcdFtcblx0XHRcdGxvY2F0aW9uSGlzdG9yeSxcblx0XHRcdG1hdGNoZWRQYXRoLFxuXHRcdFx0Z29Ubyxcblx0XHRcdGdvQmFjayxcblx0XHRcdGdvVG9QYXJlbnQsXG5cdFx0XHRhZGRTY3JlZW4sXG5cdFx0XHRyZW1vdmVTY3JlZW4sXG5cdFx0XVxuXHQpO1xuXG5cdGNvbnN0IGN4ID0gdXNlQ3goKTtcblx0Y29uc3QgY2xhc3NlcyA9IHVzZU1lbW8oXG5cdFx0Ly8gUHJldmVudHMgaG9yaXpvbnRhbCBvdmVyZmxvdyB3aGlsZSBhbmltYXRpbmcgc2NyZWVuIHRyYW5zaXRpb25zLlxuXHRcdCgpID0+IGN4KCBjc3MoIHsgb3ZlcmZsb3dYOiAnaGlkZGVuJyB9ICksIGNsYXNzTmFtZSApLFxuXHRcdFsgY2xhc3NOYW1lLCBjeCBdXG5cdCk7XG5cblx0cmV0dXJuIChcblx0XHQ8VmlldyByZWY9eyBmb3J3YXJkZWRSZWYgfSBjbGFzc05hbWU9eyBjbGFzc2VzIH0geyAuLi5vdGhlclByb3BzIH0+XG5cdFx0XHQ8TmF2aWdhdG9yQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17IG5hdmlnYXRvckNvbnRleHRWYWx1ZSB9PlxuXHRcdFx0XHR7IGNoaWxkcmVuIH1cblx0XHRcdDwvTmF2aWdhdG9yQ29udGV4dC5Qcm92aWRlcj5cblx0XHQ8L1ZpZXc+XG5cdCk7XG59XG5cbi8qKlxuICogVGhlIGBOYXZpZ2F0b3JQcm92aWRlcmAgY29tcG9uZW50IGFsbG93cyByZW5kZXJpbmcgbmVzdGVkIHZpZXdzL3BhbmVscy9tZW51c1xuICogKHZpYSB0aGUgYE5hdmlnYXRvclNjcmVlbmAgY29tcG9uZW50IGFuZCBuYXZpZ2F0ZSBiZXR3ZWVuIHRoZXNlIGRpZmZlcmVudFxuICogdmlldyAodmlhIHRoZSBgTmF2aWdhdG9yQnV0dG9uYCBhbmQgYE5hdmlnYXRvckJhY2tCdXR0b25gIGNvbXBvbmVudHMgb3IgdGhlXG4gKiBgdXNlTmF2aWdhdG9yYCBob29rKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBganN4XG4gKiBpbXBvcnQge1xuICogICBfX2V4cGVyaW1lbnRhbE5hdmlnYXRvclByb3ZpZGVyIGFzIE5hdmlnYXRvclByb3ZpZGVyLFxuICogICBfX2V4cGVyaW1lbnRhbE5hdmlnYXRvclNjcmVlbiBhcyBOYXZpZ2F0b3JTY3JlZW4sXG4gKiAgIF9fZXhwZXJpbWVudGFsTmF2aWdhdG9yQnV0dG9uIGFzIE5hdmlnYXRvckJ1dHRvbixcbiAqICAgX19leHBlcmltZW50YWxOYXZpZ2F0b3JCYWNrQnV0dG9uIGFzIE5hdmlnYXRvckJhY2tCdXR0b24sXG4gKiB9IGZyb20gJ0B3b3JkcHJlc3MvY29tcG9uZW50cyc7XG4gKlxuICogY29uc3QgTXlOYXZpZ2F0aW9uID0gKCkgPT4gKFxuICogICA8TmF2aWdhdG9yUHJvdmlkZXIgaW5pdGlhbFBhdGg9XCIvXCI+XG4gKiAgICAgPE5hdmlnYXRvclNjcmVlbiBwYXRoPVwiL1wiPlxuICogICAgICAgPHA+VGhpcyBpcyB0aGUgaG9tZSBzY3JlZW4uPC9wPlxuICogICAgICAgIDxOYXZpZ2F0b3JCdXR0b24gcGF0aD1cIi9jaGlsZFwiPlxuICogICAgICAgICAgTmF2aWdhdGUgdG8gY2hpbGQgc2NyZWVuLlxuICogICAgICAgPC9OYXZpZ2F0b3JCdXR0b24+XG4gKiAgICAgPC9OYXZpZ2F0b3JTY3JlZW4+XG4gKlxuICogICAgIDxOYXZpZ2F0b3JTY3JlZW4gcGF0aD1cIi9jaGlsZFwiPlxuICogICAgICAgPHA+VGhpcyBpcyB0aGUgY2hpbGQgc2NyZWVuLjwvcD5cbiAqICAgICAgIDxOYXZpZ2F0b3JCYWNrQnV0dG9uPlxuICogICAgICAgICBHbyBiYWNrXG4gKiAgICAgICA8L05hdmlnYXRvckJhY2tCdXR0b24+XG4gKiAgICAgPC9OYXZpZ2F0b3JTY3JlZW4+XG4gKiAgIDwvTmF2aWdhdG9yUHJvdmlkZXI+XG4gKiApO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBOYXZpZ2F0b3JQcm92aWRlciA9IGNvbnRleHRDb25uZWN0KFxuXHRVbmNvbm5lY3RlZE5hdmlnYXRvclByb3ZpZGVyLFxuXHQnTmF2aWdhdG9yUHJvdmlkZXInXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBOYXZpZ2F0b3JQcm92aWRlcjtcbiJdfQ== */",
|
|
54
54
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
55
55
|
};
|
|
56
56
|
|
|
@@ -122,6 +122,7 @@ function UnconnectedNavigatorProvider(props, forwardedRef) {
|
|
|
122
122
|
const {
|
|
123
123
|
focusTargetSelector,
|
|
124
124
|
isBack = false,
|
|
125
|
+
skipFocus = false,
|
|
125
126
|
...restOptions
|
|
126
127
|
} = options;
|
|
127
128
|
const isNavigatingToPreviousPath = isBack && currentLocationHistory.current.length > 1 && currentLocationHistory.current[currentLocationHistory.current.length - 2].path === path;
|
|
@@ -135,7 +136,8 @@ function UnconnectedNavigatorProvider(props, forwardedRef) {
|
|
|
135
136
|
const newLocation = { ...restOptions,
|
|
136
137
|
path,
|
|
137
138
|
isBack,
|
|
138
|
-
hasRestoredFocus: false
|
|
139
|
+
hasRestoredFocus: false,
|
|
140
|
+
skipFocus
|
|
139
141
|
};
|
|
140
142
|
|
|
141
143
|
if (prevLocationHistory.length < 1) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/components/src/navigator/navigator-provider/component.tsx"],"names":["MAX_HISTORY_LENGTH","screensReducer","state","action","type","screen","filter","s","id","UnconnectedNavigatorProvider","props","forwardedRef","initialPath","children","className","otherProps","locationHistory","setLocationHistory","path","currentLocationHistory","screens","dispatch","currentScreens","current","currentMatch","matchedPath","currentPath","length","undefined","resolvePath","newMatch","params","addScreen","removeScreen","goBack","prevLocationHistory","slice","isBack","hasRestoredFocus","goTo","options","focusTargetSelector","restOptions","isNavigatingToPreviousPath","newLocation","goToParent","parentPath","navigatorContextValue","location","isInitial","match","cx","classes","NavigatorProvider"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\nimport { css } from '@emotion/react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseMemo,\n\tuseState,\n\tuseCallback,\n\tuseReducer,\n\tuseRef,\n\tuseEffect,\n} from '@wordpress/element';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\n\n/**\n * Internal dependencies\n */\nimport {\n\tcontextConnect,\n\tuseContextSystem,\n\tWordPressComponentProps,\n} from '../../ui/context';\nimport { useCx } from '../../utils/hooks/use-cx';\nimport { View } from '../../view';\nimport { NavigatorContext } from '../context';\nimport type {\n\tNavigatorProviderProps,\n\tNavigatorLocation,\n\tNavigatorContext as NavigatorContextType,\n\tScreen,\n} from '../types';\nimport { patternMatch, findParent } from '../utils/router';\n\ntype MatchedPath = ReturnType< typeof patternMatch >;\ntype ScreenAction = { type: string; screen: Screen };\n\nconst MAX_HISTORY_LENGTH = 50;\n\nfunction screensReducer(\n\tstate: Screen[] = [],\n\taction: ScreenAction\n): Screen[] {\n\tswitch ( action.type ) {\n\t\tcase 'add':\n\t\t\treturn [ ...state, action.screen ];\n\t\tcase 'remove':\n\t\t\treturn state.filter( ( s: Screen ) => s.id !== action.screen.id );\n\t}\n\n\treturn state;\n}\n\nfunction UnconnectedNavigatorProvider(\n\tprops: WordPressComponentProps< NavigatorProviderProps, 'div' >,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst { initialPath, children, className, ...otherProps } =\n\t\tuseContextSystem( props, 'NavigatorProvider' );\n\n\tconst [ locationHistory, setLocationHistory ] = useState<\n\t\tNavigatorLocation[]\n\t>( [\n\t\t{\n\t\t\tpath: initialPath,\n\t\t},\n\t] );\n\tconst currentLocationHistory = useRef< NavigatorLocation[] >( [] );\n\tconst [ screens, dispatch ] = useReducer( screensReducer, [] );\n\tconst currentScreens = useRef< Screen[] >( [] );\n\tuseEffect( () => {\n\t\tcurrentScreens.current = screens;\n\t}, [ screens ] );\n\tuseEffect( () => {\n\t\tcurrentLocationHistory.current = locationHistory;\n\t}, [ locationHistory ] );\n\tconst currentMatch = useRef< MatchedPath >();\n\tconst matchedPath = useMemo( () => {\n\t\tlet currentPath: string | undefined;\n\t\tif (\n\t\t\tlocationHistory.length === 0 ||\n\t\t\t( currentPath =\n\t\t\t\tlocationHistory[ locationHistory.length - 1 ].path ) ===\n\t\t\t\tundefined\n\t\t) {\n\t\t\tcurrentMatch.current = undefined;\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst resolvePath = ( path: string ) => {\n\t\t\tconst newMatch = patternMatch( path, screens );\n\n\t\t\t// If the new match is the same as the current match,\n\t\t\t// return the previous one for performance reasons.\n\t\t\tif (\n\t\t\t\tcurrentMatch.current &&\n\t\t\t\tnewMatch &&\n\t\t\t\tisShallowEqual(\n\t\t\t\t\tnewMatch.params,\n\t\t\t\t\tcurrentMatch.current.params\n\t\t\t\t) &&\n\t\t\t\tnewMatch.id === currentMatch.current.id\n\t\t\t) {\n\t\t\t\treturn currentMatch.current;\n\t\t\t}\n\n\t\t\treturn newMatch;\n\t\t};\n\n\t\tconst newMatch = resolvePath( currentPath );\n\t\tcurrentMatch.current = newMatch;\n\t\treturn newMatch;\n\t}, [ screens, locationHistory ] );\n\n\tconst addScreen = useCallback(\n\t\t( screen: Screen ) => dispatch( { type: 'add', screen } ),\n\t\t[]\n\t);\n\n\tconst removeScreen = useCallback(\n\t\t( screen: Screen ) => dispatch( { type: 'remove', screen } ),\n\t\t[]\n\t);\n\n\tconst goBack: NavigatorContextType[ 'goBack' ] = useCallback( () => {\n\t\tsetLocationHistory( ( prevLocationHistory ) => {\n\t\t\tif ( prevLocationHistory.length <= 1 ) {\n\t\t\t\treturn prevLocationHistory;\n\t\t\t}\n\t\t\treturn [\n\t\t\t\t...prevLocationHistory.slice( 0, -2 ),\n\t\t\t\t{\n\t\t\t\t\t...prevLocationHistory[ prevLocationHistory.length - 2 ],\n\t\t\t\t\tisBack: true,\n\t\t\t\t\thasRestoredFocus: false,\n\t\t\t\t},\n\t\t\t];\n\t\t} );\n\t}, [] );\n\n\tconst goTo: NavigatorContextType[ 'goTo' ] = useCallback(\n\t\t( path, options = {} ) => {\n\t\t\tconst {\n\t\t\t\tfocusTargetSelector,\n\t\t\t\tisBack = false,\n\t\t\t\t...restOptions\n\t\t\t} = options;\n\n\t\t\tconst isNavigatingToPreviousPath =\n\t\t\t\tisBack &&\n\t\t\t\tcurrentLocationHistory.current.length > 1 &&\n\t\t\t\tcurrentLocationHistory.current[\n\t\t\t\t\tcurrentLocationHistory.current.length - 2\n\t\t\t\t].path === path;\n\n\t\t\tif ( isNavigatingToPreviousPath ) {\n\t\t\t\tgoBack();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetLocationHistory( ( prevLocationHistory ) => {\n\t\t\t\tconst newLocation = {\n\t\t\t\t\t...restOptions,\n\t\t\t\t\tpath,\n\t\t\t\t\tisBack,\n\t\t\t\t\thasRestoredFocus: false,\n\t\t\t\t};\n\n\t\t\t\tif ( prevLocationHistory.length < 1 ) {\n\t\t\t\t\treturn [ newLocation ];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...prevLocationHistory.slice(\n\t\t\t\t\t\tprevLocationHistory.length > MAX_HISTORY_LENGTH - 1\n\t\t\t\t\t\t\t? 1\n\t\t\t\t\t\t\t: 0,\n\t\t\t\t\t\t-1\n\t\t\t\t\t),\n\t\t\t\t\t// Assign `focusTargetSelector` to the previous location in history\n\t\t\t\t\t// (the one we just navigated from).\n\t\t\t\t\t{\n\t\t\t\t\t\t...prevLocationHistory[\n\t\t\t\t\t\t\tprevLocationHistory.length - 1\n\t\t\t\t\t\t],\n\t\t\t\t\t\tfocusTargetSelector,\n\t\t\t\t\t},\n\t\t\t\t\tnewLocation,\n\t\t\t\t];\n\t\t\t} );\n\t\t},\n\t\t[ goBack ]\n\t);\n\n\tconst goToParent: NavigatorContextType[ 'goToParent' ] =\n\t\tuseCallback( () => {\n\t\t\tconst currentPath =\n\t\t\t\tcurrentLocationHistory.current[\n\t\t\t\t\tcurrentLocationHistory.current.length - 1\n\t\t\t\t].path;\n\t\t\tif ( currentPath === undefined ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst parentPath = findParent(\n\t\t\t\tcurrentPath,\n\t\t\t\tcurrentScreens.current\n\t\t\t);\n\t\t\tif ( parentPath === undefined ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tgoTo( parentPath, { isBack: true } );\n\t\t}, [ goTo ] );\n\n\tconst navigatorContextValue: NavigatorContextType = useMemo(\n\t\t() => ( {\n\t\t\tlocation: {\n\t\t\t\t...locationHistory[ locationHistory.length - 1 ],\n\t\t\t\tisInitial: locationHistory.length === 1,\n\t\t\t},\n\t\t\tparams: matchedPath ? matchedPath.params : {},\n\t\t\tmatch: matchedPath ? matchedPath.id : undefined,\n\t\t\tgoTo,\n\t\t\tgoBack,\n\t\t\tgoToParent,\n\t\t\taddScreen,\n\t\t\tremoveScreen,\n\t\t} ),\n\t\t[\n\t\t\tlocationHistory,\n\t\t\tmatchedPath,\n\t\t\tgoTo,\n\t\t\tgoBack,\n\t\t\tgoToParent,\n\t\t\taddScreen,\n\t\t\tremoveScreen,\n\t\t]\n\t);\n\n\tconst cx = useCx();\n\tconst classes = useMemo(\n\t\t// Prevents horizontal overflow while animating screen transitions.\n\t\t() => cx( css( { overflowX: 'hidden' } ), className ),\n\t\t[ className, cx ]\n\t);\n\n\treturn (\n\t\t<View ref={ forwardedRef } className={ classes } { ...otherProps }>\n\t\t\t<NavigatorContext.Provider value={ navigatorContextValue }>\n\t\t\t\t{ children }\n\t\t\t</NavigatorContext.Provider>\n\t\t</View>\n\t);\n}\n\n/**\n * The `NavigatorProvider` component allows rendering nested views/panels/menus\n * (via the `NavigatorScreen` component and navigate between these different\n * view (via the `NavigatorButton` and `NavigatorBackButton` components or the\n * `useNavigator` hook).\n *\n * @example\n * ```jsx\n * import {\n * __experimentalNavigatorProvider as NavigatorProvider,\n * __experimentalNavigatorScreen as NavigatorScreen,\n * __experimentalNavigatorButton as NavigatorButton,\n * __experimentalNavigatorBackButton as NavigatorBackButton,\n * } from '@wordpress/components';\n *\n * const MyNavigation = () => (\n * <NavigatorProvider initialPath=\"/\">\n * <NavigatorScreen path=\"/\">\n * <p>This is the home screen.</p>\n * <NavigatorButton path=\"/child\">\n * Navigate to child screen.\n * </NavigatorButton>\n * </NavigatorScreen>\n *\n * <NavigatorScreen path=\"/child\">\n * <p>This is the child screen.</p>\n * <NavigatorBackButton>\n * Go back\n * </NavigatorBackButton>\n * </NavigatorScreen>\n * </NavigatorProvider>\n * );\n * ```\n */\nexport const NavigatorProvider = contextConnect(\n\tUnconnectedNavigatorProvider,\n\t'NavigatorProvider'\n);\n\nexport default NavigatorProvider;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/navigator/navigator-provider/component.tsx"],"names":["MAX_HISTORY_LENGTH","screensReducer","state","action","type","screen","filter","s","id","UnconnectedNavigatorProvider","props","forwardedRef","initialPath","children","className","otherProps","locationHistory","setLocationHistory","path","currentLocationHistory","screens","dispatch","currentScreens","current","currentMatch","matchedPath","currentPath","length","undefined","resolvePath","newMatch","params","addScreen","removeScreen","goBack","prevLocationHistory","slice","isBack","hasRestoredFocus","goTo","options","focusTargetSelector","skipFocus","restOptions","isNavigatingToPreviousPath","newLocation","goToParent","parentPath","navigatorContextValue","location","isInitial","match","cx","classes","NavigatorProvider"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\nimport { css } from '@emotion/react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseMemo,\n\tuseState,\n\tuseCallback,\n\tuseReducer,\n\tuseRef,\n\tuseEffect,\n} from '@wordpress/element';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\n\n/**\n * Internal dependencies\n */\nimport {\n\tcontextConnect,\n\tuseContextSystem,\n\tWordPressComponentProps,\n} from '../../ui/context';\nimport { useCx } from '../../utils/hooks/use-cx';\nimport { View } from '../../view';\nimport { NavigatorContext } from '../context';\nimport type {\n\tNavigatorProviderProps,\n\tNavigatorLocation,\n\tNavigatorContext as NavigatorContextType,\n\tScreen,\n} from '../types';\nimport { patternMatch, findParent } from '../utils/router';\n\ntype MatchedPath = ReturnType< typeof patternMatch >;\ntype ScreenAction = { type: string; screen: Screen };\n\nconst MAX_HISTORY_LENGTH = 50;\n\nfunction screensReducer(\n\tstate: Screen[] = [],\n\taction: ScreenAction\n): Screen[] {\n\tswitch ( action.type ) {\n\t\tcase 'add':\n\t\t\treturn [ ...state, action.screen ];\n\t\tcase 'remove':\n\t\t\treturn state.filter( ( s: Screen ) => s.id !== action.screen.id );\n\t}\n\n\treturn state;\n}\n\nfunction UnconnectedNavigatorProvider(\n\tprops: WordPressComponentProps< NavigatorProviderProps, 'div' >,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst { initialPath, children, className, ...otherProps } =\n\t\tuseContextSystem( props, 'NavigatorProvider' );\n\n\tconst [ locationHistory, setLocationHistory ] = useState<\n\t\tNavigatorLocation[]\n\t>( [\n\t\t{\n\t\t\tpath: initialPath,\n\t\t},\n\t] );\n\tconst currentLocationHistory = useRef< NavigatorLocation[] >( [] );\n\tconst [ screens, dispatch ] = useReducer( screensReducer, [] );\n\tconst currentScreens = useRef< Screen[] >( [] );\n\tuseEffect( () => {\n\t\tcurrentScreens.current = screens;\n\t}, [ screens ] );\n\tuseEffect( () => {\n\t\tcurrentLocationHistory.current = locationHistory;\n\t}, [ locationHistory ] );\n\tconst currentMatch = useRef< MatchedPath >();\n\tconst matchedPath = useMemo( () => {\n\t\tlet currentPath: string | undefined;\n\t\tif (\n\t\t\tlocationHistory.length === 0 ||\n\t\t\t( currentPath =\n\t\t\t\tlocationHistory[ locationHistory.length - 1 ].path ) ===\n\t\t\t\tundefined\n\t\t) {\n\t\t\tcurrentMatch.current = undefined;\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst resolvePath = ( path: string ) => {\n\t\t\tconst newMatch = patternMatch( path, screens );\n\n\t\t\t// If the new match is the same as the current match,\n\t\t\t// return the previous one for performance reasons.\n\t\t\tif (\n\t\t\t\tcurrentMatch.current &&\n\t\t\t\tnewMatch &&\n\t\t\t\tisShallowEqual(\n\t\t\t\t\tnewMatch.params,\n\t\t\t\t\tcurrentMatch.current.params\n\t\t\t\t) &&\n\t\t\t\tnewMatch.id === currentMatch.current.id\n\t\t\t) {\n\t\t\t\treturn currentMatch.current;\n\t\t\t}\n\n\t\t\treturn newMatch;\n\t\t};\n\n\t\tconst newMatch = resolvePath( currentPath );\n\t\tcurrentMatch.current = newMatch;\n\t\treturn newMatch;\n\t}, [ screens, locationHistory ] );\n\n\tconst addScreen = useCallback(\n\t\t( screen: Screen ) => dispatch( { type: 'add', screen } ),\n\t\t[]\n\t);\n\n\tconst removeScreen = useCallback(\n\t\t( screen: Screen ) => dispatch( { type: 'remove', screen } ),\n\t\t[]\n\t);\n\n\tconst goBack: NavigatorContextType[ 'goBack' ] = useCallback( () => {\n\t\tsetLocationHistory( ( prevLocationHistory ) => {\n\t\t\tif ( prevLocationHistory.length <= 1 ) {\n\t\t\t\treturn prevLocationHistory;\n\t\t\t}\n\t\t\treturn [\n\t\t\t\t...prevLocationHistory.slice( 0, -2 ),\n\t\t\t\t{\n\t\t\t\t\t...prevLocationHistory[ prevLocationHistory.length - 2 ],\n\t\t\t\t\tisBack: true,\n\t\t\t\t\thasRestoredFocus: false,\n\t\t\t\t},\n\t\t\t];\n\t\t} );\n\t}, [] );\n\n\tconst goTo: NavigatorContextType[ 'goTo' ] = useCallback(\n\t\t( path, options = {} ) => {\n\t\t\tconst {\n\t\t\t\tfocusTargetSelector,\n\t\t\t\tisBack = false,\n\t\t\t\tskipFocus = false,\n\t\t\t\t...restOptions\n\t\t\t} = options;\n\n\t\t\tconst isNavigatingToPreviousPath =\n\t\t\t\tisBack &&\n\t\t\t\tcurrentLocationHistory.current.length > 1 &&\n\t\t\t\tcurrentLocationHistory.current[\n\t\t\t\t\tcurrentLocationHistory.current.length - 2\n\t\t\t\t].path === path;\n\n\t\t\tif ( isNavigatingToPreviousPath ) {\n\t\t\t\tgoBack();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetLocationHistory( ( prevLocationHistory ) => {\n\t\t\t\tconst newLocation = {\n\t\t\t\t\t...restOptions,\n\t\t\t\t\tpath,\n\t\t\t\t\tisBack,\n\t\t\t\t\thasRestoredFocus: false,\n\t\t\t\t\tskipFocus,\n\t\t\t\t};\n\n\t\t\t\tif ( prevLocationHistory.length < 1 ) {\n\t\t\t\t\treturn [ newLocation ];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...prevLocationHistory.slice(\n\t\t\t\t\t\tprevLocationHistory.length > MAX_HISTORY_LENGTH - 1\n\t\t\t\t\t\t\t? 1\n\t\t\t\t\t\t\t: 0,\n\t\t\t\t\t\t-1\n\t\t\t\t\t),\n\t\t\t\t\t// Assign `focusTargetSelector` to the previous location in history\n\t\t\t\t\t// (the one we just navigated from).\n\t\t\t\t\t{\n\t\t\t\t\t\t...prevLocationHistory[\n\t\t\t\t\t\t\tprevLocationHistory.length - 1\n\t\t\t\t\t\t],\n\t\t\t\t\t\tfocusTargetSelector,\n\t\t\t\t\t},\n\t\t\t\t\tnewLocation,\n\t\t\t\t];\n\t\t\t} );\n\t\t},\n\t\t[ goBack ]\n\t);\n\n\tconst goToParent: NavigatorContextType[ 'goToParent' ] =\n\t\tuseCallback( () => {\n\t\t\tconst currentPath =\n\t\t\t\tcurrentLocationHistory.current[\n\t\t\t\t\tcurrentLocationHistory.current.length - 1\n\t\t\t\t].path;\n\t\t\tif ( currentPath === undefined ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst parentPath = findParent(\n\t\t\t\tcurrentPath,\n\t\t\t\tcurrentScreens.current\n\t\t\t);\n\t\t\tif ( parentPath === undefined ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tgoTo( parentPath, { isBack: true } );\n\t\t}, [ goTo ] );\n\n\tconst navigatorContextValue: NavigatorContextType = useMemo(\n\t\t() => ( {\n\t\t\tlocation: {\n\t\t\t\t...locationHistory[ locationHistory.length - 1 ],\n\t\t\t\tisInitial: locationHistory.length === 1,\n\t\t\t},\n\t\t\tparams: matchedPath ? matchedPath.params : {},\n\t\t\tmatch: matchedPath ? matchedPath.id : undefined,\n\t\t\tgoTo,\n\t\t\tgoBack,\n\t\t\tgoToParent,\n\t\t\taddScreen,\n\t\t\tremoveScreen,\n\t\t} ),\n\t\t[\n\t\t\tlocationHistory,\n\t\t\tmatchedPath,\n\t\t\tgoTo,\n\t\t\tgoBack,\n\t\t\tgoToParent,\n\t\t\taddScreen,\n\t\t\tremoveScreen,\n\t\t]\n\t);\n\n\tconst cx = useCx();\n\tconst classes = useMemo(\n\t\t// Prevents horizontal overflow while animating screen transitions.\n\t\t() => cx( css( { overflowX: 'hidden' } ), className ),\n\t\t[ className, cx ]\n\t);\n\n\treturn (\n\t\t<View ref={ forwardedRef } className={ classes } { ...otherProps }>\n\t\t\t<NavigatorContext.Provider value={ navigatorContextValue }>\n\t\t\t\t{ children }\n\t\t\t</NavigatorContext.Provider>\n\t\t</View>\n\t);\n}\n\n/**\n * The `NavigatorProvider` component allows rendering nested views/panels/menus\n * (via the `NavigatorScreen` component and navigate between these different\n * view (via the `NavigatorButton` and `NavigatorBackButton` components or the\n * `useNavigator` hook).\n *\n * @example\n * ```jsx\n * import {\n * __experimentalNavigatorProvider as NavigatorProvider,\n * __experimentalNavigatorScreen as NavigatorScreen,\n * __experimentalNavigatorButton as NavigatorButton,\n * __experimentalNavigatorBackButton as NavigatorBackButton,\n * } from '@wordpress/components';\n *\n * const MyNavigation = () => (\n * <NavigatorProvider initialPath=\"/\">\n * <NavigatorScreen path=\"/\">\n * <p>This is the home screen.</p>\n * <NavigatorButton path=\"/child\">\n * Navigate to child screen.\n * </NavigatorButton>\n * </NavigatorScreen>\n *\n * <NavigatorScreen path=\"/child\">\n * <p>This is the child screen.</p>\n * <NavigatorBackButton>\n * Go back\n * </NavigatorBackButton>\n * </NavigatorScreen>\n * </NavigatorProvider>\n * );\n * ```\n */\nexport const NavigatorProvider = contextConnect(\n\tUnconnectedNavigatorProvider,\n\t'NavigatorProvider'\n);\n\nexport default NavigatorProvider;\n"]}
|
|
@@ -45,7 +45,7 @@ var _ref = process.env.NODE_ENV === "production" ? {
|
|
|
45
45
|
} : {
|
|
46
46
|
name: "1ulogbc-classes",
|
|
47
47
|
styles: "overflow-x:auto;max-height:100%;label:classes;",
|
|
48
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvbmF2aWdhdG9yL25hdmlnYXRvci1zY3JlZW4vY29tcG9uZW50LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE2RUkiLCJmaWxlIjoiQHdvcmRwcmVzcy9jb21wb25lbnRzL3NyYy9uYXZpZ2F0b3IvbmF2aWdhdG9yLXNjcmVlbi9jb21wb25lbnQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFeHRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHR5cGUgeyBGb3J3YXJkZWRSZWYgfSBmcm9tICdyZWFjdCc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1pbXBvcnRzXG5pbXBvcnQgeyBtb3Rpb24sIE1vdGlvblByb3BzIH0gZnJvbSAnZnJhbWVyLW1vdGlvbic7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBmb2N1cyB9IGZyb20gJ0B3b3JkcHJlc3MvZG9tJztcbmltcG9ydCB7XG5cdHVzZUNvbnRleHQsXG5cdHVzZUVmZmVjdCxcblx0dXNlTWVtbyxcblx0dXNlUmVmLFxuXHR1c2VJZCxcbn0gZnJvbSAnQHdvcmRwcmVzcy9lbGVtZW50JztcbmltcG9ydCB7IHVzZVJlZHVjZWRNb3Rpb24sIHVzZU1lcmdlUmVmcyB9IGZyb20gJ0B3b3JkcHJlc3MvY29tcG9zZSc7XG5pbXBvcnQgeyBpc1JUTCB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5pbXBvcnQgeyBlc2NhcGVBdHRyaWJ1dGUgfSBmcm9tICdAd29yZHByZXNzL2VzY2FwZS1odG1sJztcblxuLyoqXG4gKiBJbnRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHtcblx0Y29udGV4dENvbm5lY3QsXG5cdHVzZUNvbnRleHRTeXN0ZW0sXG5cdFdvcmRQcmVzc0NvbXBvbmVudFByb3BzLFxufSBmcm9tICcuLi8uLi91aS9jb250ZXh0JztcbmltcG9ydCB7IHVzZUN4IH0gZnJvbSAnLi4vLi4vdXRpbHMvaG9va3MvdXNlLWN4JztcbmltcG9ydCB7IFZpZXcgfSBmcm9tICcuLi8uLi92aWV3JztcbmltcG9ydCB7IE5hdmlnYXRvckNvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB0eXBlIHsgTmF2aWdhdG9yU2NyZWVuUHJvcHMgfSBmcm9tICcuLi90eXBlcyc7XG5cbmNvbnN0IGFuaW1hdGlvbkVudGVyRGVsYXkgPSAwO1xuY29uc3QgYW5pbWF0aW9uRW50ZXJEdXJhdGlvbiA9IDAuMTQ7XG5jb25zdCBhbmltYXRpb25FeGl0RHVyYXRpb24gPSAwLjE0O1xuY29uc3QgYW5pbWF0aW9uRXhpdERlbGF5ID0gMDtcblxuLy8gUHJvcHMgc3BlY2lmaWMgdG8gYGZyYW1lci1tb3Rpb25gIGNhbid0IGJlIGN1cnJlbnRseSBwYXNzZWQgdG8gYE5hdmlnYXRvclNjcmVlbmAsXG4vLyBhcyBzb21lIG9mIHRoZW0gd291bGQgb3ZlcmxhcCB3aXRoIEhUTUwgcHJvcHMgKGUuZy4gYG9uQW5pbWF0aW9uU3RhcnRgLCAuLi4pXG50eXBlIFByb3BzID0gT21pdDxcblx0V29yZFByZXNzQ29tcG9uZW50UHJvcHM8IE5hdmlnYXRvclNjcmVlblByb3BzLCAnZGl2JywgZmFsc2UgPixcblx0a2V5b2YgTW90aW9uUHJvcHNcbj47XG5cbmZ1bmN0aW9uIFVuY29ubmVjdGVkTmF2aWdhdG9yU2NyZWVuKFxuXHRwcm9wczogUHJvcHMsXG5cdGZvcndhcmRlZFJlZjogRm9yd2FyZGVkUmVmPCBhbnkgPlxuKSB7XG5cdGNvbnN0IHNjcmVlbklkID0gdXNlSWQoKTtcblx0Y29uc3QgeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCBwYXRoLCAuLi5vdGhlclByb3BzIH0gPSB1c2VDb250ZXh0U3lzdGVtKFxuXHRcdHByb3BzLFxuXHRcdCdOYXZpZ2F0b3JTY3JlZW4nXG5cdCk7XG5cblx0Y29uc3QgcHJlZmVyc1JlZHVjZWRNb3Rpb24gPSB1c2VSZWR1Y2VkTW90aW9uKCk7XG5cdGNvbnN0IHsgbG9jYXRpb24sIG1hdGNoLCBhZGRTY3JlZW4sIHJlbW92ZVNjcmVlbiB9ID1cblx0XHR1c2VDb250ZXh0KCBOYXZpZ2F0b3JDb250ZXh0ICk7XG5cdGNvbnN0IGlzTWF0Y2ggPSBtYXRjaCA9PT0gc2NyZWVuSWQ7XG5cdGNvbnN0IHdyYXBwZXJSZWYgPSB1c2VSZWY8IEhUTUxEaXZFbGVtZW50ID4oIG51bGwgKTtcblxuXHR1c2VFZmZlY3QoICgpID0+IHtcblx0XHRjb25zdCBzY3JlZW4gPSB7XG5cdFx0XHRpZDogc2NyZWVuSWQsXG5cdFx0XHRwYXRoOiBlc2NhcGVBdHRyaWJ1dGUoIHBhdGggKSxcblx0XHR9O1xuXHRcdGFkZFNjcmVlbiggc2NyZWVuICk7XG5cdFx0cmV0dXJuICgpID0+IHJlbW92ZVNjcmVlbiggc2NyZWVuICk7XG5cdH0sIFsgc2NyZWVuSWQsIHBhdGgsIGFkZFNjcmVlbiwgcmVtb3ZlU2NyZWVuIF0gKTtcblxuXHRjb25zdCBjeCA9IHVzZUN4KCk7XG5cdGNvbnN0IGNsYXNzZXMgPSB1c2VNZW1vKFxuXHRcdCgpID0+XG5cdFx0XHRjeChcblx0XHRcdFx0Y3NzKCB7XG5cdFx0XHRcdFx0Ly8gRW5zdXJlcyBob3Jpem9udGFsIG92ZXJmbG93IGlzIHZpc3VhbGx5IGFjY2Vzc2libGUuXG5cdFx0XHRcdFx0b3ZlcmZsb3dYOiAnYXV0bycsXG5cdFx0XHRcdFx0Ly8gSW4gY2FzZSB0aGUgcm9vdCBoYXMgYSBoZWlnaHQsIGl0IHNob3VsZCBub3QgYmUgZXhjZWVkZWQuXG5cdFx0XHRcdFx0bWF4SGVpZ2h0OiAnMTAwJScsXG5cdFx0XHRcdH0gKSxcblx0XHRcdFx0Y2xhc3NOYW1lXG5cdFx0XHQpLFxuXHRcdFsgY2xhc3NOYW1lLCBjeCBdXG5cdCk7XG5cblx0Y29uc3QgbG9jYXRpb25SZWYgPSB1c2VSZWYoIGxvY2F0aW9uICk7XG5cblx0dXNlRWZmZWN0KCAoKSA9PiB7XG5cdFx0bG9jYXRpb25SZWYuY3VycmVudCA9IGxvY2F0aW9uO1xuXHR9LCBbIGxvY2F0aW9uIF0gKTtcblxuXHQvLyBGb2N1cyByZXN0b3JhdGlvblxuXHRjb25zdCBpc0luaXRpYWxMb2NhdGlvbiA9IGxvY2F0aW9uLmlzSW5pdGlhbCAmJiAhIGxvY2F0aW9uLmlzQmFjaztcblx0dXNlRWZmZWN0KCAoKSA9PiB7XG5cdFx0Ly8gT25seSBhdHRlbXB0IHRvIHJlc3RvcmUgZm9jdXM6XG5cdFx0Ly8gLSBpZiB0aGUgY3VycmVudCBsb2NhdGlvbiBpcyBub3QgdGhlIGluaXRpYWwgb25lICh0byBhdm9pZCBtb3ZpbmcgZm9jdXMgb24gcGFnZSBsb2FkKVxuXHRcdC8vIC0gd2hlbiB0aGUgc2NyZWVuIGJlY29tZXMgdmlzaWJsZVxuXHRcdC8vIC0gaWYgdGhlIHdyYXBwZXIgcmVmIGhhcyBiZWVuIGFzc2lnbmVkXG5cdFx0Ly8gLSBpZiBmb2N1cyBoYXNuJ3QgYWxyZWFkeSBiZWVuIHJlc3RvcmVkIGZvciB0aGUgY3VycmVudCBsb2NhdGlvblxuXHRcdGlmIChcblx0XHRcdGlzSW5pdGlhbExvY2F0aW9uIHx8XG5cdFx0XHQhIGlzTWF0Y2ggfHxcblx0XHRcdCEgd3JhcHBlclJlZi5jdXJyZW50IHx8XG5cdFx0XHRsb2NhdGlvblJlZi5jdXJyZW50Lmhhc1Jlc3RvcmVkRm9jdXNcblx0XHQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBhY3RpdmVFbGVtZW50ID0gd3JhcHBlclJlZi5jdXJyZW50Lm93bmVyRG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcblxuXHRcdC8vIElmIGFuIGVsZW1lbnQgaXMgYWxyZWFkeSBmb2N1c2VkIHdpdGhpbiB0aGUgd3JhcHBlciBkbyBub3QgZm9jdXMgdGhlXG5cdFx0Ly8gZWxlbWVudC4gVGhpcyBwcmV2ZW50cyBpbnB1dHMgb3IgYnV0dG9ucyBmcm9tIGxvc2luZyBmb2N1cyB1bm5lY2Vzc2FyaWx5LlxuXHRcdGlmICggd3JhcHBlclJlZi5jdXJyZW50LmNvbnRhaW5zKCBhY3RpdmVFbGVtZW50ICkgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0bGV0IGVsZW1lbnRUb0ZvY3VzOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG5cdFx0Ly8gV2hlbiBuYXZpZ2F0aW5nIGJhY2ssIGlmIGEgc2VsZWN0b3IgaXMgcHJvdmlkZWQsIHVzZSBpdCB0byBsb29rIGZvciB0aGVcblx0XHQvLyB0YXJnZXQgZWxlbWVudCAoYXNzdW1lZCB0byBiZSBhIG5vZGUgaW5zaWRlIHRoZSBjdXJyZW50IE5hdmlnYXRvclNjcmVlbilcblx0XHRpZiAoIGxvY2F0aW9uLmlzQmFjayAmJiBsb2NhdGlvbj8uZm9jdXNUYXJnZXRTZWxlY3RvciApIHtcblx0XHRcdGVsZW1lbnRUb0ZvY3VzID0gd3JhcHBlclJlZi5jdXJyZW50LnF1ZXJ5U2VsZWN0b3IoXG5cdFx0XHRcdGxvY2F0aW9uLmZvY3VzVGFyZ2V0U2VsZWN0b3Jcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0Ly8gSWYgdGhlIHByZXZpb3VzIHF1ZXJ5IGRpZG4ndCBydW4gb3IgZmluZCBhbnkgZWxlbWVudCB0byBmb2N1cywgZmFsbGJhY2tcblx0XHQvLyB0byB0aGUgZmlyc3QgdGFiYmFibGUgZWxlbWVudCBpbiB0aGUgc2NyZWVuIChvciB0aGUgc2NyZWVuIGl0c2VsZikuXG5cdFx0aWYgKCAhIGVsZW1lbnRUb0ZvY3VzICkge1xuXHRcdFx0Y29uc3QgZmlyc3RUYWJiYWJsZSA9IChcblx0XHRcdFx0Zm9jdXMudGFiYmFibGUuZmluZCggd3JhcHBlclJlZi5jdXJyZW50ICkgYXMgSFRNTEVsZW1lbnRbXVxuXHRcdFx0IClbIDAgXTtcblx0XHRcdGVsZW1lbnRUb0ZvY3VzID0gZmlyc3RUYWJiYWJsZSA/PyB3cmFwcGVyUmVmLmN1cnJlbnQ7XG5cdFx0fVxuXG5cdFx0bG9jYXRpb25SZWYuY3VycmVudC5oYXNSZXN0b3JlZEZvY3VzID0gdHJ1ZTtcblx0XHRlbGVtZW50VG9Gb2N1cy5mb2N1cygpO1xuXHR9LCBbXG5cdFx0aXNJbml0aWFsTG9jYXRpb24sXG5cdFx0aXNNYXRjaCxcblx0XHRsb2NhdGlvbi5pc0JhY2ssXG5cdFx0bG9jYXRpb24uZm9jdXNUYXJnZXRTZWxlY3Rvcixcblx0XSApO1xuXG5cdGNvbnN0IG1lcmdlZFdyYXBwZXJSZWYgPSB1c2VNZXJnZVJlZnMoIFsgZm9yd2FyZGVkUmVmLCB3cmFwcGVyUmVmIF0gKTtcblxuXHRpZiAoICEgaXNNYXRjaCApIHtcblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdGlmICggcHJlZmVyc1JlZHVjZWRNb3Rpb24gKSB7XG5cdFx0cmV0dXJuIChcblx0XHRcdDxWaWV3XG5cdFx0XHRcdHJlZj17IG1lcmdlZFdyYXBwZXJSZWYgfVxuXHRcdFx0XHRjbGFzc05hbWU9eyBjbGFzc2VzIH1cblx0XHRcdFx0eyAuLi5vdGhlclByb3BzIH1cblx0XHRcdD5cblx0XHRcdFx0eyBjaGlsZHJlbiB9XG5cdFx0XHQ8L1ZpZXc+XG5cdFx0KTtcblx0fVxuXG5cdGNvbnN0IGFuaW1hdGUgPSB7XG5cdFx0b3BhY2l0eTogMSxcblx0XHR0cmFuc2l0aW9uOiB7XG5cdFx0XHRkZWxheTogYW5pbWF0aW9uRW50ZXJEZWxheSxcblx0XHRcdGR1cmF0aW9uOiBhbmltYXRpb25FbnRlckR1cmF0aW9uLFxuXHRcdFx0ZWFzZTogJ2Vhc2VJbk91dCcsXG5cdFx0fSxcblx0XHR4OiAwLFxuXHR9O1xuXHQvLyBEaXNhYmxlIHRoZSBpbml0aWFsIGFuaW1hdGlvbiBpZiB0aGUgc2NyZWVuIGlzIHRoZSB2ZXJ5IGZpcnN0IHNjcmVlbiB0byBiZVxuXHQvLyByZW5kZXJlZCB3aXRoaW4gdGhlIGN1cnJlbnQgYE5hdmlnYXRvclByb3ZpZGVyYC5cblx0Y29uc3QgaW5pdGlhbCA9XG5cdFx0bG9jYXRpb24uaXNJbml0aWFsICYmICEgbG9jYXRpb24uaXNCYWNrXG5cdFx0XHQ/IGZhbHNlXG5cdFx0XHQ6IHtcblx0XHRcdFx0XHRvcGFjaXR5OiAwLFxuXHRcdFx0XHRcdHg6XG5cdFx0XHRcdFx0XHQoIGlzUlRMKCkgJiYgbG9jYXRpb24uaXNCYWNrICkgfHxcblx0XHRcdFx0XHRcdCggISBpc1JUTCgpICYmICEgbG9jYXRpb24uaXNCYWNrIClcblx0XHRcdFx0XHRcdFx0PyA1MFxuXHRcdFx0XHRcdFx0XHQ6IC01MCxcblx0XHRcdCAgfTtcblx0Y29uc3QgZXhpdCA9IHtcblx0XHRkZWxheTogYW5pbWF0aW9uRXhpdERlbGF5LFxuXHRcdG9wYWNpdHk6IDAsXG5cdFx0eDpcblx0XHRcdCggISBpc1JUTCgpICYmIGxvY2F0aW9uLmlzQmFjayApIHx8ICggaXNSVEwoKSAmJiAhIGxvY2F0aW9uLmlzQmFjayApXG5cdFx0XHRcdD8gNTBcblx0XHRcdFx0OiAtNTAsXG5cdFx0dHJhbnNpdGlvbjoge1xuXHRcdFx0ZHVyYXRpb246IGFuaW1hdGlvbkV4aXREdXJhdGlvbixcblx0XHRcdGVhc2U6ICdlYXNlSW5PdXQnLFxuXHRcdH0sXG5cdH07XG5cblx0Y29uc3QgYW5pbWF0ZWRQcm9wcyA9IHtcblx0XHRhbmltYXRlLFxuXHRcdGV4aXQsXG5cdFx0aW5pdGlhbCxcblx0fTtcblxuXHRyZXR1cm4gKFxuXHRcdDxtb3Rpb24uZGl2XG5cdFx0XHRyZWY9eyBtZXJnZWRXcmFwcGVyUmVmIH1cblx0XHRcdGNsYXNzTmFtZT17IGNsYXNzZXMgfVxuXHRcdFx0eyAuLi5vdGhlclByb3BzIH1cblx0XHRcdHsgLi4uYW5pbWF0ZWRQcm9wcyB9XG5cdFx0PlxuXHRcdFx0eyBjaGlsZHJlbiB9XG5cdFx0PC9tb3Rpb24uZGl2PlxuXHQpO1xufVxuXG4vKipcbiAqIFRoZSBgTmF2aWdhdG9yU2NyZWVuYCBjb21wb25lbnQgcmVwcmVzZW50cyBhIHNpbmdsZSB2aWV3L3NjcmVlbi9wYW5lbCBhbmRcbiAqIHNob3VsZCBiZSB1c2VkIGluIGNvbWJpbmF0aW9uIHdpdGggdGhlIGBOYXZpZ2F0b3JQcm92aWRlcmAsIHRoZVxuICogYE5hdmlnYXRvckJ1dHRvbmAgYW5kIHRoZSBgTmF2aWdhdG9yQmFja0J1dHRvbmAgY29tcG9uZW50cyAob3IgdGhlIGB1c2VOYXZpZ2F0b3JgXG4gKiBob29rKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBganN4XG4gKiBpbXBvcnQge1xuICogICBfX2V4cGVyaW1lbnRhbE5hdmlnYXRvclByb3ZpZGVyIGFzIE5hdmlnYXRvclByb3ZpZGVyLFxuICogICBfX2V4cGVyaW1lbnRhbE5hdmlnYXRvclNjcmVlbiBhcyBOYXZpZ2F0b3JTY3JlZW4sXG4gKiAgIF9fZXhwZXJpbWVudGFsTmF2aWdhdG9yQnV0dG9uIGFzIE5hdmlnYXRvckJ1dHRvbixcbiAqICAgX19leHBlcmltZW50YWxOYXZpZ2F0b3JCYWNrQnV0dG9uIGFzIE5hdmlnYXRvckJhY2tCdXR0b24sXG4gKiB9IGZyb20gJ0B3b3JkcHJlc3MvY29tcG9uZW50cyc7XG4gKlxuICogY29uc3QgTXlOYXZpZ2F0aW9uID0gKCkgPT4gKFxuICogICA8TmF2aWdhdG9yUHJvdmlkZXIgaW5pdGlhbFBhdGg9XCIvXCI+XG4gKiAgICAgPE5hdmlnYXRvclNjcmVlbiBwYXRoPVwiL1wiPlxuICogICAgICAgPHA+VGhpcyBpcyB0aGUgaG9tZSBzY3JlZW4uPC9wPlxuICogICAgICAgIDxOYXZpZ2F0b3JCdXR0b24gcGF0aD1cIi9jaGlsZFwiPlxuICogICAgICAgICAgTmF2aWdhdGUgdG8gY2hpbGQgc2NyZWVuLlxuICogICAgICAgPC9OYXZpZ2F0b3JCdXR0b24+XG4gKiAgICAgPC9OYXZpZ2F0b3JTY3JlZW4+XG4gKlxuICogICAgIDxOYXZpZ2F0b3JTY3JlZW4gcGF0aD1cIi9jaGlsZFwiPlxuICogICAgICAgPHA+VGhpcyBpcyB0aGUgY2hpbGQgc2NyZWVuLjwvcD5cbiAqICAgICAgIDxOYXZpZ2F0b3JCYWNrQnV0dG9uPlxuICogICAgICAgICBHbyBiYWNrXG4gKiAgICAgICA8L05hdmlnYXRvckJhY2tCdXR0b24+XG4gKiAgICAgPC9OYXZpZ2F0b3JTY3JlZW4+XG4gKiAgIDwvTmF2aWdhdG9yUHJvdmlkZXI+XG4gKiApO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBOYXZpZ2F0b3JTY3JlZW4gPSBjb250ZXh0Q29ubmVjdChcblx0VW5jb25uZWN0ZWROYXZpZ2F0b3JTY3JlZW4sXG5cdCdOYXZpZ2F0b3JTY3JlZW4nXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBOYXZpZ2F0b3JTY3JlZW47XG4iXX0= */",
|
|
48
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvbmF2aWdhdG9yL25hdmlnYXRvci1zY3JlZW4vY29tcG9uZW50LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE2RUkiLCJmaWxlIjoiQHdvcmRwcmVzcy9jb21wb25lbnRzL3NyYy9uYXZpZ2F0b3IvbmF2aWdhdG9yLXNjcmVlbi9jb21wb25lbnQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFeHRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHR5cGUgeyBGb3J3YXJkZWRSZWYgfSBmcm9tICdyZWFjdCc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1pbXBvcnRzXG5pbXBvcnQgeyBtb3Rpb24sIE1vdGlvblByb3BzIH0gZnJvbSAnZnJhbWVyLW1vdGlvbic7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBmb2N1cyB9IGZyb20gJ0B3b3JkcHJlc3MvZG9tJztcbmltcG9ydCB7XG5cdHVzZUNvbnRleHQsXG5cdHVzZUVmZmVjdCxcblx0dXNlTWVtbyxcblx0dXNlUmVmLFxuXHR1c2VJZCxcbn0gZnJvbSAnQHdvcmRwcmVzcy9lbGVtZW50JztcbmltcG9ydCB7IHVzZVJlZHVjZWRNb3Rpb24sIHVzZU1lcmdlUmVmcyB9IGZyb20gJ0B3b3JkcHJlc3MvY29tcG9zZSc7XG5pbXBvcnQgeyBpc1JUTCB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5pbXBvcnQgeyBlc2NhcGVBdHRyaWJ1dGUgfSBmcm9tICdAd29yZHByZXNzL2VzY2FwZS1odG1sJztcblxuLyoqXG4gKiBJbnRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHtcblx0Y29udGV4dENvbm5lY3QsXG5cdHVzZUNvbnRleHRTeXN0ZW0sXG5cdFdvcmRQcmVzc0NvbXBvbmVudFByb3BzLFxufSBmcm9tICcuLi8uLi91aS9jb250ZXh0JztcbmltcG9ydCB7IHVzZUN4IH0gZnJvbSAnLi4vLi4vdXRpbHMvaG9va3MvdXNlLWN4JztcbmltcG9ydCB7IFZpZXcgfSBmcm9tICcuLi8uLi92aWV3JztcbmltcG9ydCB7IE5hdmlnYXRvckNvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB0eXBlIHsgTmF2aWdhdG9yU2NyZWVuUHJvcHMgfSBmcm9tICcuLi90eXBlcyc7XG5cbmNvbnN0IGFuaW1hdGlvbkVudGVyRGVsYXkgPSAwO1xuY29uc3QgYW5pbWF0aW9uRW50ZXJEdXJhdGlvbiA9IDAuMTQ7XG5jb25zdCBhbmltYXRpb25FeGl0RHVyYXRpb24gPSAwLjE0O1xuY29uc3QgYW5pbWF0aW9uRXhpdERlbGF5ID0gMDtcblxuLy8gUHJvcHMgc3BlY2lmaWMgdG8gYGZyYW1lci1tb3Rpb25gIGNhbid0IGJlIGN1cnJlbnRseSBwYXNzZWQgdG8gYE5hdmlnYXRvclNjcmVlbmAsXG4vLyBhcyBzb21lIG9mIHRoZW0gd291bGQgb3ZlcmxhcCB3aXRoIEhUTUwgcHJvcHMgKGUuZy4gYG9uQW5pbWF0aW9uU3RhcnRgLCAuLi4pXG50eXBlIFByb3BzID0gT21pdDxcblx0V29yZFByZXNzQ29tcG9uZW50UHJvcHM8IE5hdmlnYXRvclNjcmVlblByb3BzLCAnZGl2JywgZmFsc2UgPixcblx0RXhjbHVkZTwga2V5b2YgTW90aW9uUHJvcHMsICdzdHlsZScgfCAnY2hpbGRyZW4nID5cbj47XG5cbmZ1bmN0aW9uIFVuY29ubmVjdGVkTmF2aWdhdG9yU2NyZWVuKFxuXHRwcm9wczogUHJvcHMsXG5cdGZvcndhcmRlZFJlZjogRm9yd2FyZGVkUmVmPCBhbnkgPlxuKSB7XG5cdGNvbnN0IHNjcmVlbklkID0gdXNlSWQoKTtcblx0Y29uc3QgeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCBwYXRoLCAuLi5vdGhlclByb3BzIH0gPSB1c2VDb250ZXh0U3lzdGVtKFxuXHRcdHByb3BzLFxuXHRcdCdOYXZpZ2F0b3JTY3JlZW4nXG5cdCk7XG5cblx0Y29uc3QgcHJlZmVyc1JlZHVjZWRNb3Rpb24gPSB1c2VSZWR1Y2VkTW90aW9uKCk7XG5cdGNvbnN0IHsgbG9jYXRpb24sIG1hdGNoLCBhZGRTY3JlZW4sIHJlbW92ZVNjcmVlbiB9ID1cblx0XHR1c2VDb250ZXh0KCBOYXZpZ2F0b3JDb250ZXh0ICk7XG5cdGNvbnN0IGlzTWF0Y2ggPSBtYXRjaCA9PT0gc2NyZWVuSWQ7XG5cdGNvbnN0IHdyYXBwZXJSZWYgPSB1c2VSZWY8IEhUTUxEaXZFbGVtZW50ID4oIG51bGwgKTtcblxuXHR1c2VFZmZlY3QoICgpID0+IHtcblx0XHRjb25zdCBzY3JlZW4gPSB7XG5cdFx0XHRpZDogc2NyZWVuSWQsXG5cdFx0XHRwYXRoOiBlc2NhcGVBdHRyaWJ1dGUoIHBhdGggKSxcblx0XHR9O1xuXHRcdGFkZFNjcmVlbiggc2NyZWVuICk7XG5cdFx0cmV0dXJuICgpID0+IHJlbW92ZVNjcmVlbiggc2NyZWVuICk7XG5cdH0sIFsgc2NyZWVuSWQsIHBhdGgsIGFkZFNjcmVlbiwgcmVtb3ZlU2NyZWVuIF0gKTtcblxuXHRjb25zdCBjeCA9IHVzZUN4KCk7XG5cdGNvbnN0IGNsYXNzZXMgPSB1c2VNZW1vKFxuXHRcdCgpID0+XG5cdFx0XHRjeChcblx0XHRcdFx0Y3NzKCB7XG5cdFx0XHRcdFx0Ly8gRW5zdXJlcyBob3Jpem9udGFsIG92ZXJmbG93IGlzIHZpc3VhbGx5IGFjY2Vzc2libGUuXG5cdFx0XHRcdFx0b3ZlcmZsb3dYOiAnYXV0bycsXG5cdFx0XHRcdFx0Ly8gSW4gY2FzZSB0aGUgcm9vdCBoYXMgYSBoZWlnaHQsIGl0IHNob3VsZCBub3QgYmUgZXhjZWVkZWQuXG5cdFx0XHRcdFx0bWF4SGVpZ2h0OiAnMTAwJScsXG5cdFx0XHRcdH0gKSxcblx0XHRcdFx0Y2xhc3NOYW1lXG5cdFx0XHQpLFxuXHRcdFsgY2xhc3NOYW1lLCBjeCBdXG5cdCk7XG5cblx0Y29uc3QgbG9jYXRpb25SZWYgPSB1c2VSZWYoIGxvY2F0aW9uICk7XG5cblx0dXNlRWZmZWN0KCAoKSA9PiB7XG5cdFx0bG9jYXRpb25SZWYuY3VycmVudCA9IGxvY2F0aW9uO1xuXHR9LCBbIGxvY2F0aW9uIF0gKTtcblxuXHQvLyBGb2N1cyByZXN0b3JhdGlvblxuXHRjb25zdCBpc0luaXRpYWxMb2NhdGlvbiA9IGxvY2F0aW9uLmlzSW5pdGlhbCAmJiAhIGxvY2F0aW9uLmlzQmFjaztcblx0dXNlRWZmZWN0KCAoKSA9PiB7XG5cdFx0Ly8gT25seSBhdHRlbXB0IHRvIHJlc3RvcmUgZm9jdXM6XG5cdFx0Ly8gLSBpZiB0aGUgY3VycmVudCBsb2NhdGlvbiBpcyBub3QgdGhlIGluaXRpYWwgb25lICh0byBhdm9pZCBtb3ZpbmcgZm9jdXMgb24gcGFnZSBsb2FkKVxuXHRcdC8vIC0gd2hlbiB0aGUgc2NyZWVuIGJlY29tZXMgdmlzaWJsZVxuXHRcdC8vIC0gaWYgdGhlIHdyYXBwZXIgcmVmIGhhcyBiZWVuIGFzc2lnbmVkXG5cdFx0Ly8gLSBpZiBmb2N1cyBoYXNuJ3QgYWxyZWFkeSBiZWVuIHJlc3RvcmVkIGZvciB0aGUgY3VycmVudCBsb2NhdGlvblxuXHRcdC8vIC0gaWYgdGhlIGBza2lwRm9jdXNgIG9wdGlvbiBpcyBub3Qgc2V0IHRvIGB0cnVlYC4gVGhpcyBpcyB1c2VmdWwgd2hlbiB3ZSB0cmlnZ2VyIHRoZSBuYXZpZ2F0aW9uIG91dHNpZGUgb2YgTmF2aWdhdG9yU2NyZWVuLlxuXHRcdGlmIChcblx0XHRcdGlzSW5pdGlhbExvY2F0aW9uIHx8XG5cdFx0XHQhIGlzTWF0Y2ggfHxcblx0XHRcdCEgd3JhcHBlclJlZi5jdXJyZW50IHx8XG5cdFx0XHRsb2NhdGlvblJlZi5jdXJyZW50Lmhhc1Jlc3RvcmVkRm9jdXMgfHxcblx0XHRcdGxvY2F0aW9uLnNraXBGb2N1c1xuXHRcdCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSB3cmFwcGVyUmVmLmN1cnJlbnQub3duZXJEb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuXG5cdFx0Ly8gSWYgYW4gZWxlbWVudCBpcyBhbHJlYWR5IGZvY3VzZWQgd2l0aGluIHRoZSB3cmFwcGVyIGRvIG5vdCBmb2N1cyB0aGVcblx0XHQvLyBlbGVtZW50LiBUaGlzIHByZXZlbnRzIGlucHV0cyBvciBidXR0b25zIGZyb20gbG9zaW5nIGZvY3VzIHVubmVjZXNzYXJpbHkuXG5cdFx0aWYgKCB3cmFwcGVyUmVmLmN1cnJlbnQuY29udGFpbnMoIGFjdGl2ZUVsZW1lbnQgKSApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRsZXQgZWxlbWVudFRvRm9jdXM6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cblx0XHQvLyBXaGVuIG5hdmlnYXRpbmcgYmFjaywgaWYgYSBzZWxlY3RvciBpcyBwcm92aWRlZCwgdXNlIGl0IHRvIGxvb2sgZm9yIHRoZVxuXHRcdC8vIHRhcmdldCBlbGVtZW50IChhc3N1bWVkIHRvIGJlIGEgbm9kZSBpbnNpZGUgdGhlIGN1cnJlbnQgTmF2aWdhdG9yU2NyZWVuKVxuXHRcdGlmICggbG9jYXRpb24uaXNCYWNrICYmIGxvY2F0aW9uPy5mb2N1c1RhcmdldFNlbGVjdG9yICkge1xuXHRcdFx0ZWxlbWVudFRvRm9jdXMgPSB3cmFwcGVyUmVmLmN1cnJlbnQucXVlcnlTZWxlY3Rvcihcblx0XHRcdFx0bG9jYXRpb24uZm9jdXNUYXJnZXRTZWxlY3RvclxuXHRcdFx0KTtcblx0XHR9XG5cblx0XHQvLyBJZiB0aGUgcHJldmlvdXMgcXVlcnkgZGlkbid0IHJ1biBvciBmaW5kIGFueSBlbGVtZW50IHRvIGZvY3VzLCBmYWxsYmFja1xuXHRcdC8vIHRvIHRoZSBmaXJzdCB0YWJiYWJsZSBlbGVtZW50IGluIHRoZSBzY3JlZW4gKG9yIHRoZSBzY3JlZW4gaXRzZWxmKS5cblx0XHRpZiAoICEgZWxlbWVudFRvRm9jdXMgKSB7XG5cdFx0XHRjb25zdCBmaXJzdFRhYmJhYmxlID0gKFxuXHRcdFx0XHRmb2N1cy50YWJiYWJsZS5maW5kKCB3cmFwcGVyUmVmLmN1cnJlbnQgKSBhcyBIVE1MRWxlbWVudFtdXG5cdFx0XHQgKVsgMCBdO1xuXHRcdFx0ZWxlbWVudFRvRm9jdXMgPSBmaXJzdFRhYmJhYmxlID8/IHdyYXBwZXJSZWYuY3VycmVudDtcblx0XHR9XG5cblx0XHRsb2NhdGlvblJlZi5jdXJyZW50Lmhhc1Jlc3RvcmVkRm9jdXMgPSB0cnVlO1xuXHRcdGVsZW1lbnRUb0ZvY3VzLmZvY3VzKCk7XG5cdH0sIFtcblx0XHRpc0luaXRpYWxMb2NhdGlvbixcblx0XHRpc01hdGNoLFxuXHRcdGxvY2F0aW9uLmlzQmFjayxcblx0XHRsb2NhdGlvbi5mb2N1c1RhcmdldFNlbGVjdG9yLFxuXHRcdGxvY2F0aW9uLnNraXBGb2N1cyxcblx0XSApO1xuXG5cdGNvbnN0IG1lcmdlZFdyYXBwZXJSZWYgPSB1c2VNZXJnZVJlZnMoIFsgZm9yd2FyZGVkUmVmLCB3cmFwcGVyUmVmIF0gKTtcblxuXHRpZiAoICEgaXNNYXRjaCApIHtcblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdGlmICggcHJlZmVyc1JlZHVjZWRNb3Rpb24gKSB7XG5cdFx0cmV0dXJuIChcblx0XHRcdDxWaWV3XG5cdFx0XHRcdHJlZj17IG1lcmdlZFdyYXBwZXJSZWYgfVxuXHRcdFx0XHRjbGFzc05hbWU9eyBjbGFzc2VzIH1cblx0XHRcdFx0eyAuLi5vdGhlclByb3BzIH1cblx0XHRcdD5cblx0XHRcdFx0eyBjaGlsZHJlbiB9XG5cdFx0XHQ8L1ZpZXc+XG5cdFx0KTtcblx0fVxuXG5cdGNvbnN0IGFuaW1hdGUgPSB7XG5cdFx0b3BhY2l0eTogMSxcblx0XHR0cmFuc2l0aW9uOiB7XG5cdFx0XHRkZWxheTogYW5pbWF0aW9uRW50ZXJEZWxheSxcblx0XHRcdGR1cmF0aW9uOiBhbmltYXRpb25FbnRlckR1cmF0aW9uLFxuXHRcdFx0ZWFzZTogJ2Vhc2VJbk91dCcsXG5cdFx0fSxcblx0XHR4OiAwLFxuXHR9O1xuXHQvLyBEaXNhYmxlIHRoZSBpbml0aWFsIGFuaW1hdGlvbiBpZiB0aGUgc2NyZWVuIGlzIHRoZSB2ZXJ5IGZpcnN0IHNjcmVlbiB0byBiZVxuXHQvLyByZW5kZXJlZCB3aXRoaW4gdGhlIGN1cnJlbnQgYE5hdmlnYXRvclByb3ZpZGVyYC5cblx0Y29uc3QgaW5pdGlhbCA9XG5cdFx0bG9jYXRpb24uaXNJbml0aWFsICYmICEgbG9jYXRpb24uaXNCYWNrXG5cdFx0XHQ/IGZhbHNlXG5cdFx0XHQ6IHtcblx0XHRcdFx0XHRvcGFjaXR5OiAwLFxuXHRcdFx0XHRcdHg6XG5cdFx0XHRcdFx0XHQoIGlzUlRMKCkgJiYgbG9jYXRpb24uaXNCYWNrICkgfHxcblx0XHRcdFx0XHRcdCggISBpc1JUTCgpICYmICEgbG9jYXRpb24uaXNCYWNrIClcblx0XHRcdFx0XHRcdFx0PyA1MFxuXHRcdFx0XHRcdFx0XHQ6IC01MCxcblx0XHRcdCAgfTtcblx0Y29uc3QgZXhpdCA9IHtcblx0XHRkZWxheTogYW5pbWF0aW9uRXhpdERlbGF5LFxuXHRcdG9wYWNpdHk6IDAsXG5cdFx0eDpcblx0XHRcdCggISBpc1JUTCgpICYmIGxvY2F0aW9uLmlzQmFjayApIHx8ICggaXNSVEwoKSAmJiAhIGxvY2F0aW9uLmlzQmFjayApXG5cdFx0XHRcdD8gNTBcblx0XHRcdFx0OiAtNTAsXG5cdFx0dHJhbnNpdGlvbjoge1xuXHRcdFx0ZHVyYXRpb246IGFuaW1hdGlvbkV4aXREdXJhdGlvbixcblx0XHRcdGVhc2U6ICdlYXNlSW5PdXQnLFxuXHRcdH0sXG5cdH07XG5cblx0Y29uc3QgYW5pbWF0ZWRQcm9wcyA9IHtcblx0XHRhbmltYXRlLFxuXHRcdGV4aXQsXG5cdFx0aW5pdGlhbCxcblx0fTtcblxuXHRyZXR1cm4gKFxuXHRcdDxtb3Rpb24uZGl2XG5cdFx0XHRyZWY9eyBtZXJnZWRXcmFwcGVyUmVmIH1cblx0XHRcdGNsYXNzTmFtZT17IGNsYXNzZXMgfVxuXHRcdFx0eyAuLi5vdGhlclByb3BzIH1cblx0XHRcdHsgLi4uYW5pbWF0ZWRQcm9wcyB9XG5cdFx0PlxuXHRcdFx0eyBjaGlsZHJlbiB9XG5cdFx0PC9tb3Rpb24uZGl2PlxuXHQpO1xufVxuXG4vKipcbiAqIFRoZSBgTmF2aWdhdG9yU2NyZWVuYCBjb21wb25lbnQgcmVwcmVzZW50cyBhIHNpbmdsZSB2aWV3L3NjcmVlbi9wYW5lbCBhbmRcbiAqIHNob3VsZCBiZSB1c2VkIGluIGNvbWJpbmF0aW9uIHdpdGggdGhlIGBOYXZpZ2F0b3JQcm92aWRlcmAsIHRoZVxuICogYE5hdmlnYXRvckJ1dHRvbmAgYW5kIHRoZSBgTmF2aWdhdG9yQmFja0J1dHRvbmAgY29tcG9uZW50cyAob3IgdGhlIGB1c2VOYXZpZ2F0b3JgXG4gKiBob29rKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBganN4XG4gKiBpbXBvcnQge1xuICogICBfX2V4cGVyaW1lbnRhbE5hdmlnYXRvclByb3ZpZGVyIGFzIE5hdmlnYXRvclByb3ZpZGVyLFxuICogICBfX2V4cGVyaW1lbnRhbE5hdmlnYXRvclNjcmVlbiBhcyBOYXZpZ2F0b3JTY3JlZW4sXG4gKiAgIF9fZXhwZXJpbWVudGFsTmF2aWdhdG9yQnV0dG9uIGFzIE5hdmlnYXRvckJ1dHRvbixcbiAqICAgX19leHBlcmltZW50YWxOYXZpZ2F0b3JCYWNrQnV0dG9uIGFzIE5hdmlnYXRvckJhY2tCdXR0b24sXG4gKiB9IGZyb20gJ0B3b3JkcHJlc3MvY29tcG9uZW50cyc7XG4gKlxuICogY29uc3QgTXlOYXZpZ2F0aW9uID0gKCkgPT4gKFxuICogICA8TmF2aWdhdG9yUHJvdmlkZXIgaW5pdGlhbFBhdGg9XCIvXCI+XG4gKiAgICAgPE5hdmlnYXRvclNjcmVlbiBwYXRoPVwiL1wiPlxuICogICAgICAgPHA+VGhpcyBpcyB0aGUgaG9tZSBzY3JlZW4uPC9wPlxuICogICAgICAgIDxOYXZpZ2F0b3JCdXR0b24gcGF0aD1cIi9jaGlsZFwiPlxuICogICAgICAgICAgTmF2aWdhdGUgdG8gY2hpbGQgc2NyZWVuLlxuICogICAgICAgPC9OYXZpZ2F0b3JCdXR0b24+XG4gKiAgICAgPC9OYXZpZ2F0b3JTY3JlZW4+XG4gKlxuICogICAgIDxOYXZpZ2F0b3JTY3JlZW4gcGF0aD1cIi9jaGlsZFwiPlxuICogICAgICAgPHA+VGhpcyBpcyB0aGUgY2hpbGQgc2NyZWVuLjwvcD5cbiAqICAgICAgIDxOYXZpZ2F0b3JCYWNrQnV0dG9uPlxuICogICAgICAgICBHbyBiYWNrXG4gKiAgICAgICA8L05hdmlnYXRvckJhY2tCdXR0b24+XG4gKiAgICAgPC9OYXZpZ2F0b3JTY3JlZW4+XG4gKiAgIDwvTmF2aWdhdG9yUHJvdmlkZXI+XG4gKiApO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBOYXZpZ2F0b3JTY3JlZW4gPSBjb250ZXh0Q29ubmVjdChcblx0VW5jb25uZWN0ZWROYXZpZ2F0b3JTY3JlZW4sXG5cdCdOYXZpZ2F0b3JTY3JlZW4nXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBOYXZpZ2F0b3JTY3JlZW47XG4iXX0= */",
|
|
49
49
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
50
50
|
};
|
|
51
51
|
|
|
@@ -88,7 +88,8 @@ function UnconnectedNavigatorScreen(props, forwardedRef) {
|
|
|
88
88
|
// - when the screen becomes visible
|
|
89
89
|
// - if the wrapper ref has been assigned
|
|
90
90
|
// - if focus hasn't already been restored for the current location
|
|
91
|
-
if
|
|
91
|
+
// - if the `skipFocus` option is not set to `true`. This is useful when we trigger the navigation outside of NavigatorScreen.
|
|
92
|
+
if (isInitialLocation || !isMatch || !wrapperRef.current || locationRef.current.hasRestoredFocus || location.skipFocus) {
|
|
92
93
|
return;
|
|
93
94
|
}
|
|
94
95
|
|
|
@@ -116,7 +117,7 @@ function UnconnectedNavigatorScreen(props, forwardedRef) {
|
|
|
116
117
|
|
|
117
118
|
locationRef.current.hasRestoredFocus = true;
|
|
118
119
|
elementToFocus.focus();
|
|
119
|
-
}, [isInitialLocation, isMatch, location.isBack, location.focusTargetSelector]);
|
|
120
|
+
}, [isInitialLocation, isMatch, location.isBack, location.focusTargetSelector, location.skipFocus]);
|
|
120
121
|
const mergedWrapperRef = (0, _compose.useMergeRefs)([forwardedRef, wrapperRef]);
|
|
121
122
|
|
|
122
123
|
if (!isMatch) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/components/src/navigator/navigator-screen/component.tsx"],"names":["animationEnterDelay","animationEnterDuration","animationExitDuration","animationExitDelay","UnconnectedNavigatorScreen","props","forwardedRef","screenId","children","className","path","otherProps","prefersReducedMotion","location","match","addScreen","removeScreen","NavigatorContext","isMatch","wrapperRef","screen","id","cx","classes","locationRef","current","isInitialLocation","isInitial","isBack","hasRestoredFocus","activeElement","ownerDocument","contains","elementToFocus","focusTargetSelector","querySelector","firstTabbable","focus","tabbable","find","mergedWrapperRef","animate","opacity","transition","delay","duration","ease","x","initial","exit","animatedProps","NavigatorScreen"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\n// eslint-disable-next-line no-restricted-imports\nimport { motion, MotionProps } from 'framer-motion';\nimport { css } from '@emotion/react';\n\n/**\n * WordPress dependencies\n */\nimport { focus } from '@wordpress/dom';\nimport {\n\tuseContext,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseId,\n} from '@wordpress/element';\nimport { useReducedMotion, useMergeRefs } from '@wordpress/compose';\nimport { isRTL } from '@wordpress/i18n';\nimport { escapeAttribute } from '@wordpress/escape-html';\n\n/**\n * Internal dependencies\n */\nimport {\n\tcontextConnect,\n\tuseContextSystem,\n\tWordPressComponentProps,\n} from '../../ui/context';\nimport { useCx } from '../../utils/hooks/use-cx';\nimport { View } from '../../view';\nimport { NavigatorContext } from '../context';\nimport type { NavigatorScreenProps } from '../types';\n\nconst animationEnterDelay = 0;\nconst animationEnterDuration = 0.14;\nconst animationExitDuration = 0.14;\nconst animationExitDelay = 0;\n\n// Props specific to `framer-motion` can't be currently passed to `NavigatorScreen`,\n// as some of them would overlap with HTML props (e.g. `onAnimationStart`, ...)\ntype Props = Omit<\n\tWordPressComponentProps< NavigatorScreenProps, 'div', false >,\n\tkeyof MotionProps\n>;\n\nfunction UnconnectedNavigatorScreen(\n\tprops: Props,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst screenId = useId();\n\tconst { children, className, path, ...otherProps } = useContextSystem(\n\t\tprops,\n\t\t'NavigatorScreen'\n\t);\n\n\tconst prefersReducedMotion = useReducedMotion();\n\tconst { location, match, addScreen, removeScreen } =\n\t\tuseContext( NavigatorContext );\n\tconst isMatch = match === screenId;\n\tconst wrapperRef = useRef< HTMLDivElement >( null );\n\n\tuseEffect( () => {\n\t\tconst screen = {\n\t\t\tid: screenId,\n\t\t\tpath: escapeAttribute( path ),\n\t\t};\n\t\taddScreen( screen );\n\t\treturn () => removeScreen( screen );\n\t}, [ screenId, path, addScreen, removeScreen ] );\n\n\tconst cx = useCx();\n\tconst classes = useMemo(\n\t\t() =>\n\t\t\tcx(\n\t\t\t\tcss( {\n\t\t\t\t\t// Ensures horizontal overflow is visually accessible.\n\t\t\t\t\toverflowX: 'auto',\n\t\t\t\t\t// In case the root has a height, it should not be exceeded.\n\t\t\t\t\tmaxHeight: '100%',\n\t\t\t\t} ),\n\t\t\t\tclassName\n\t\t\t),\n\t\t[ className, cx ]\n\t);\n\n\tconst locationRef = useRef( location );\n\n\tuseEffect( () => {\n\t\tlocationRef.current = location;\n\t}, [ location ] );\n\n\t// Focus restoration\n\tconst isInitialLocation = location.isInitial && ! location.isBack;\n\tuseEffect( () => {\n\t\t// Only attempt to restore focus:\n\t\t// - if the current location is not the initial one (to avoid moving focus on page load)\n\t\t// - when the screen becomes visible\n\t\t// - if the wrapper ref has been assigned\n\t\t// - if focus hasn't already been restored for the current location\n\t\tif (\n\t\t\tisInitialLocation ||\n\t\t\t! isMatch ||\n\t\t\t! wrapperRef.current ||\n\t\t\tlocationRef.current.hasRestoredFocus\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst activeElement = wrapperRef.current.ownerDocument.activeElement;\n\n\t\t// If an element is already focused within the wrapper do not focus the\n\t\t// element. This prevents inputs or buttons from losing focus unnecessarily.\n\t\tif ( wrapperRef.current.contains( activeElement ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet elementToFocus: HTMLElement | null = null;\n\n\t\t// When navigating back, if a selector is provided, use it to look for the\n\t\t// target element (assumed to be a node inside the current NavigatorScreen)\n\t\tif ( location.isBack && location?.focusTargetSelector ) {\n\t\t\telementToFocus = wrapperRef.current.querySelector(\n\t\t\t\tlocation.focusTargetSelector\n\t\t\t);\n\t\t}\n\n\t\t// If the previous query didn't run or find any element to focus, fallback\n\t\t// to the first tabbable element in the screen (or the screen itself).\n\t\tif ( ! elementToFocus ) {\n\t\t\tconst firstTabbable = (\n\t\t\t\tfocus.tabbable.find( wrapperRef.current ) as HTMLElement[]\n\t\t\t )[ 0 ];\n\t\t\telementToFocus = firstTabbable ?? wrapperRef.current;\n\t\t}\n\n\t\tlocationRef.current.hasRestoredFocus = true;\n\t\telementToFocus.focus();\n\t}, [\n\t\tisInitialLocation,\n\t\tisMatch,\n\t\tlocation.isBack,\n\t\tlocation.focusTargetSelector,\n\t] );\n\n\tconst mergedWrapperRef = useMergeRefs( [ forwardedRef, wrapperRef ] );\n\n\tif ( ! isMatch ) {\n\t\treturn null;\n\t}\n\n\tif ( prefersReducedMotion ) {\n\t\treturn (\n\t\t\t<View\n\t\t\t\tref={ mergedWrapperRef }\n\t\t\t\tclassName={ classes }\n\t\t\t\t{ ...otherProps }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</View>\n\t\t);\n\t}\n\n\tconst animate = {\n\t\topacity: 1,\n\t\ttransition: {\n\t\t\tdelay: animationEnterDelay,\n\t\t\tduration: animationEnterDuration,\n\t\t\tease: 'easeInOut',\n\t\t},\n\t\tx: 0,\n\t};\n\t// Disable the initial animation if the screen is the very first screen to be\n\t// rendered within the current `NavigatorProvider`.\n\tconst initial =\n\t\tlocation.isInitial && ! location.isBack\n\t\t\t? false\n\t\t\t: {\n\t\t\t\t\topacity: 0,\n\t\t\t\t\tx:\n\t\t\t\t\t\t( isRTL() && location.isBack ) ||\n\t\t\t\t\t\t( ! isRTL() && ! location.isBack )\n\t\t\t\t\t\t\t? 50\n\t\t\t\t\t\t\t: -50,\n\t\t\t };\n\tconst exit = {\n\t\tdelay: animationExitDelay,\n\t\topacity: 0,\n\t\tx:\n\t\t\t( ! isRTL() && location.isBack ) || ( isRTL() && ! location.isBack )\n\t\t\t\t? 50\n\t\t\t\t: -50,\n\t\ttransition: {\n\t\t\tduration: animationExitDuration,\n\t\t\tease: 'easeInOut',\n\t\t},\n\t};\n\n\tconst animatedProps = {\n\t\tanimate,\n\t\texit,\n\t\tinitial,\n\t};\n\n\treturn (\n\t\t<motion.div\n\t\t\tref={ mergedWrapperRef }\n\t\t\tclassName={ classes }\n\t\t\t{ ...otherProps }\n\t\t\t{ ...animatedProps }\n\t\t>\n\t\t\t{ children }\n\t\t</motion.div>\n\t);\n}\n\n/**\n * The `NavigatorScreen` component represents a single view/screen/panel and\n * should be used in combination with the `NavigatorProvider`, the\n * `NavigatorButton` and the `NavigatorBackButton` components (or the `useNavigator`\n * hook).\n *\n * @example\n * ```jsx\n * import {\n * __experimentalNavigatorProvider as NavigatorProvider,\n * __experimentalNavigatorScreen as NavigatorScreen,\n * __experimentalNavigatorButton as NavigatorButton,\n * __experimentalNavigatorBackButton as NavigatorBackButton,\n * } from '@wordpress/components';\n *\n * const MyNavigation = () => (\n * <NavigatorProvider initialPath=\"/\">\n * <NavigatorScreen path=\"/\">\n * <p>This is the home screen.</p>\n * <NavigatorButton path=\"/child\">\n * Navigate to child screen.\n * </NavigatorButton>\n * </NavigatorScreen>\n *\n * <NavigatorScreen path=\"/child\">\n * <p>This is the child screen.</p>\n * <NavigatorBackButton>\n * Go back\n * </NavigatorBackButton>\n * </NavigatorScreen>\n * </NavigatorProvider>\n * );\n * ```\n */\nexport const NavigatorScreen = contextConnect(\n\tUnconnectedNavigatorScreen,\n\t'NavigatorScreen'\n);\n\nexport default NavigatorScreen;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/navigator/navigator-screen/component.tsx"],"names":["animationEnterDelay","animationEnterDuration","animationExitDuration","animationExitDelay","UnconnectedNavigatorScreen","props","forwardedRef","screenId","children","className","path","otherProps","prefersReducedMotion","location","match","addScreen","removeScreen","NavigatorContext","isMatch","wrapperRef","screen","id","cx","classes","locationRef","current","isInitialLocation","isInitial","isBack","hasRestoredFocus","skipFocus","activeElement","ownerDocument","contains","elementToFocus","focusTargetSelector","querySelector","firstTabbable","focus","tabbable","find","mergedWrapperRef","animate","opacity","transition","delay","duration","ease","x","initial","exit","animatedProps","NavigatorScreen"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\n// eslint-disable-next-line no-restricted-imports\nimport { motion, MotionProps } from 'framer-motion';\nimport { css } from '@emotion/react';\n\n/**\n * WordPress dependencies\n */\nimport { focus } from '@wordpress/dom';\nimport {\n\tuseContext,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseId,\n} from '@wordpress/element';\nimport { useReducedMotion, useMergeRefs } from '@wordpress/compose';\nimport { isRTL } from '@wordpress/i18n';\nimport { escapeAttribute } from '@wordpress/escape-html';\n\n/**\n * Internal dependencies\n */\nimport {\n\tcontextConnect,\n\tuseContextSystem,\n\tWordPressComponentProps,\n} from '../../ui/context';\nimport { useCx } from '../../utils/hooks/use-cx';\nimport { View } from '../../view';\nimport { NavigatorContext } from '../context';\nimport type { NavigatorScreenProps } from '../types';\n\nconst animationEnterDelay = 0;\nconst animationEnterDuration = 0.14;\nconst animationExitDuration = 0.14;\nconst animationExitDelay = 0;\n\n// Props specific to `framer-motion` can't be currently passed to `NavigatorScreen`,\n// as some of them would overlap with HTML props (e.g. `onAnimationStart`, ...)\ntype Props = Omit<\n\tWordPressComponentProps< NavigatorScreenProps, 'div', false >,\n\tExclude< keyof MotionProps, 'style' | 'children' >\n>;\n\nfunction UnconnectedNavigatorScreen(\n\tprops: Props,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst screenId = useId();\n\tconst { children, className, path, ...otherProps } = useContextSystem(\n\t\tprops,\n\t\t'NavigatorScreen'\n\t);\n\n\tconst prefersReducedMotion = useReducedMotion();\n\tconst { location, match, addScreen, removeScreen } =\n\t\tuseContext( NavigatorContext );\n\tconst isMatch = match === screenId;\n\tconst wrapperRef = useRef< HTMLDivElement >( null );\n\n\tuseEffect( () => {\n\t\tconst screen = {\n\t\t\tid: screenId,\n\t\t\tpath: escapeAttribute( path ),\n\t\t};\n\t\taddScreen( screen );\n\t\treturn () => removeScreen( screen );\n\t}, [ screenId, path, addScreen, removeScreen ] );\n\n\tconst cx = useCx();\n\tconst classes = useMemo(\n\t\t() =>\n\t\t\tcx(\n\t\t\t\tcss( {\n\t\t\t\t\t// Ensures horizontal overflow is visually accessible.\n\t\t\t\t\toverflowX: 'auto',\n\t\t\t\t\t// In case the root has a height, it should not be exceeded.\n\t\t\t\t\tmaxHeight: '100%',\n\t\t\t\t} ),\n\t\t\t\tclassName\n\t\t\t),\n\t\t[ className, cx ]\n\t);\n\n\tconst locationRef = useRef( location );\n\n\tuseEffect( () => {\n\t\tlocationRef.current = location;\n\t}, [ location ] );\n\n\t// Focus restoration\n\tconst isInitialLocation = location.isInitial && ! location.isBack;\n\tuseEffect( () => {\n\t\t// Only attempt to restore focus:\n\t\t// - if the current location is not the initial one (to avoid moving focus on page load)\n\t\t// - when the screen becomes visible\n\t\t// - if the wrapper ref has been assigned\n\t\t// - if focus hasn't already been restored for the current location\n\t\t// - if the `skipFocus` option is not set to `true`. This is useful when we trigger the navigation outside of NavigatorScreen.\n\t\tif (\n\t\t\tisInitialLocation ||\n\t\t\t! isMatch ||\n\t\t\t! wrapperRef.current ||\n\t\t\tlocationRef.current.hasRestoredFocus ||\n\t\t\tlocation.skipFocus\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst activeElement = wrapperRef.current.ownerDocument.activeElement;\n\n\t\t// If an element is already focused within the wrapper do not focus the\n\t\t// element. This prevents inputs or buttons from losing focus unnecessarily.\n\t\tif ( wrapperRef.current.contains( activeElement ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet elementToFocus: HTMLElement | null = null;\n\n\t\t// When navigating back, if a selector is provided, use it to look for the\n\t\t// target element (assumed to be a node inside the current NavigatorScreen)\n\t\tif ( location.isBack && location?.focusTargetSelector ) {\n\t\t\telementToFocus = wrapperRef.current.querySelector(\n\t\t\t\tlocation.focusTargetSelector\n\t\t\t);\n\t\t}\n\n\t\t// If the previous query didn't run or find any element to focus, fallback\n\t\t// to the first tabbable element in the screen (or the screen itself).\n\t\tif ( ! elementToFocus ) {\n\t\t\tconst firstTabbable = (\n\t\t\t\tfocus.tabbable.find( wrapperRef.current ) as HTMLElement[]\n\t\t\t )[ 0 ];\n\t\t\telementToFocus = firstTabbable ?? wrapperRef.current;\n\t\t}\n\n\t\tlocationRef.current.hasRestoredFocus = true;\n\t\telementToFocus.focus();\n\t}, [\n\t\tisInitialLocation,\n\t\tisMatch,\n\t\tlocation.isBack,\n\t\tlocation.focusTargetSelector,\n\t\tlocation.skipFocus,\n\t] );\n\n\tconst mergedWrapperRef = useMergeRefs( [ forwardedRef, wrapperRef ] );\n\n\tif ( ! isMatch ) {\n\t\treturn null;\n\t}\n\n\tif ( prefersReducedMotion ) {\n\t\treturn (\n\t\t\t<View\n\t\t\t\tref={ mergedWrapperRef }\n\t\t\t\tclassName={ classes }\n\t\t\t\t{ ...otherProps }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</View>\n\t\t);\n\t}\n\n\tconst animate = {\n\t\topacity: 1,\n\t\ttransition: {\n\t\t\tdelay: animationEnterDelay,\n\t\t\tduration: animationEnterDuration,\n\t\t\tease: 'easeInOut',\n\t\t},\n\t\tx: 0,\n\t};\n\t// Disable the initial animation if the screen is the very first screen to be\n\t// rendered within the current `NavigatorProvider`.\n\tconst initial =\n\t\tlocation.isInitial && ! location.isBack\n\t\t\t? false\n\t\t\t: {\n\t\t\t\t\topacity: 0,\n\t\t\t\t\tx:\n\t\t\t\t\t\t( isRTL() && location.isBack ) ||\n\t\t\t\t\t\t( ! isRTL() && ! location.isBack )\n\t\t\t\t\t\t\t? 50\n\t\t\t\t\t\t\t: -50,\n\t\t\t };\n\tconst exit = {\n\t\tdelay: animationExitDelay,\n\t\topacity: 0,\n\t\tx:\n\t\t\t( ! isRTL() && location.isBack ) || ( isRTL() && ! location.isBack )\n\t\t\t\t? 50\n\t\t\t\t: -50,\n\t\ttransition: {\n\t\t\tduration: animationExitDuration,\n\t\t\tease: 'easeInOut',\n\t\t},\n\t};\n\n\tconst animatedProps = {\n\t\tanimate,\n\t\texit,\n\t\tinitial,\n\t};\n\n\treturn (\n\t\t<motion.div\n\t\t\tref={ mergedWrapperRef }\n\t\t\tclassName={ classes }\n\t\t\t{ ...otherProps }\n\t\t\t{ ...animatedProps }\n\t\t>\n\t\t\t{ children }\n\t\t</motion.div>\n\t);\n}\n\n/**\n * The `NavigatorScreen` component represents a single view/screen/panel and\n * should be used in combination with the `NavigatorProvider`, the\n * `NavigatorButton` and the `NavigatorBackButton` components (or the `useNavigator`\n * hook).\n *\n * @example\n * ```jsx\n * import {\n * __experimentalNavigatorProvider as NavigatorProvider,\n * __experimentalNavigatorScreen as NavigatorScreen,\n * __experimentalNavigatorButton as NavigatorButton,\n * __experimentalNavigatorBackButton as NavigatorBackButton,\n * } from '@wordpress/components';\n *\n * const MyNavigation = () => (\n * <NavigatorProvider initialPath=\"/\">\n * <NavigatorScreen path=\"/\">\n * <p>This is the home screen.</p>\n * <NavigatorButton path=\"/child\">\n * Navigate to child screen.\n * </NavigatorButton>\n * </NavigatorScreen>\n *\n * <NavigatorScreen path=\"/child\">\n * <p>This is the child screen.</p>\n * <NavigatorBackButton>\n * Go back\n * </NavigatorBackButton>\n * </NavigatorScreen>\n * </NavigatorProvider>\n * );\n * ```\n */\nexport const NavigatorScreen = contextConnect(\n\tUnconnectedNavigatorScreen,\n\t'NavigatorScreen'\n);\n\nexport default NavigatorScreen;\n"]}
|
package/build/popover/index.js
CHANGED
|
@@ -83,23 +83,16 @@ const AnimatedWrapper = (0, _element.forwardRef)((_ref, forwardedRef) => {
|
|
|
83
83
|
shouldAnimate = false,
|
|
84
84
|
...props
|
|
85
85
|
} = _ref;
|
|
86
|
-
// When animating, animate only once (i.e. when the popover is opened), and
|
|
87
|
-
// do not animate on subsequent prop changes (as it conflicts with
|
|
88
|
-
// floating-ui's positioning updates).
|
|
89
|
-
const [hasAnimatedOnce, setHasAnimatedOnce] = (0, _element.useState)(false);
|
|
90
86
|
const shouldReduceMotion = (0, _framerMotion.useReducedMotion)();
|
|
91
87
|
const {
|
|
92
88
|
style: motionInlineStyles,
|
|
93
89
|
...otherMotionProps
|
|
94
90
|
} = (0, _element.useMemo)(() => (0, _utils.placementToMotionAnimationProps)(placement), [placement]);
|
|
95
|
-
const onAnimationComplete = (0, _element.useCallback)(() => setHasAnimatedOnce(true), []);
|
|
96
91
|
const computedAnimationProps = shouldAnimate && !shouldReduceMotion ? {
|
|
97
92
|
style: { ...motionInlineStyles,
|
|
98
93
|
...receivedInlineStyles
|
|
99
94
|
},
|
|
100
|
-
...otherMotionProps
|
|
101
|
-
onAnimationComplete,
|
|
102
|
-
animate: hasAnimatedOnce ? false : otherMotionProps.animate
|
|
95
|
+
...otherMotionProps
|
|
103
96
|
} : {
|
|
104
97
|
animate: false,
|
|
105
98
|
style: receivedInlineStyles
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/components/src/popover/index.tsx"],"names":["SLOT_NAME","ArrowTriangle","AnimatedWrapper","forwardedRef","style","receivedInlineStyles","placement","shouldAnimate","props","hasAnimatedOnce","setHasAnimatedOnce","shouldReduceMotion","motionInlineStyles","otherMotionProps","onAnimationComplete","computedAnimationProps","animate","slotNameContext","undefined","UnforwardedPopover","headerTitle","onClose","children","className","noArrow","position","placementProp","offset","offsetProp","focusOnMount","anchor","expandOnMobile","onFocusOutside","__unstableSlotName","flip","resize","shift","variant","__unstableForcePosition","anchorRef","anchorRect","getAnchorRect","isAlternate","contentProps","computedFlipProp","computedResizeProp","since","version","alternative","computedVariant","arrowRef","fallbackReferenceElement","setFallbackReferenceElement","referenceOwnerDocument","setReferenceOwnerDocument","anchorRefFallback","node","isMobileViewport","isExpanded","hasArrow","normalizedPlacementFromProps","frameOffsetRef","middleware","name","fn","x","y","current","data","amount","apply","sizeProps","firstElementChild","refs","floating","HTMLElement","Object","assign","maxHeight","availableHeight","overflow","crossAxis","limiter","padding","element","filter","m","slotName","slot","onDialogClose","type","event","dialogRef","dialogProps","__unstableOnClose","reference","referenceCallbackRef","strategy","update","computedPlacement","middlewareData","arrow","arrowData","whileElementsMounted","referenceParam","floatingParam","updateParam","animationFrame","arrowCallbackRef","anchorRefTop","top","anchorRefBottom","bottom","anchorRefStartContainer","startContainer","anchorRefCurrent","resultingReferenceOwnerDoc","fallbackDocument","document","scale","resultingReferenceElement","ownerDocument","defaultView","frameElement","scrollContainer","updateFrameOffset","addEventListener","removeEventListener","mergedFloatingRef","content","left","Math","round","close","split","join","Number","isFinite","ref","Popover","PopoverSlot","Slot","__unstableSlotNameProvider","Provider"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef, SyntheticEvent, RefCallback } from 'react';\nimport classnames from 'classnames';\nimport {\n\tuseFloating,\n\tflip as flipMiddleware,\n\tshift as shiftMiddleware,\n\tautoUpdate,\n\tarrow,\n\toffset as offsetMiddleware,\n\tsize,\n\tMiddleware,\n\tMiddlewareArguments,\n} from '@floating-ui/react-dom';\n// eslint-disable-next-line no-restricted-imports\nimport {\n\tmotion,\n\tuseReducedMotion,\n\tHTMLMotionProps,\n\tMotionProps,\n} from 'framer-motion';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseLayoutEffect,\n\tforwardRef,\n\tcreateContext,\n\tuseContext,\n\tuseMemo,\n\tuseState,\n\tuseCallback,\n} from '@wordpress/element';\nimport {\n\tuseViewportMatch,\n\tuseMergeRefs,\n\t__experimentalUseDialog as useDialog,\n} from '@wordpress/compose';\nimport { close } from '@wordpress/icons';\nimport deprecated from '@wordpress/deprecated';\nimport { Path, SVG } from '@wordpress/primitives';\nimport { getScrollContainer } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport ScrollLock from '../scroll-lock';\nimport { Slot, Fill, useSlot } from '../slot-fill';\nimport {\n\tgetFrameOffset,\n\tgetFrameScale,\n\tpositionToPlacement,\n\tplacementToMotionAnimationProps,\n\tgetReferenceOwnerDocument,\n\tgetReferenceElement,\n} from './utils';\nimport type { WordPressComponentProps } from '../ui/context';\nimport type {\n\tPopoverProps,\n\tAnimatedWrapperProps,\n\tPopoverAnchorRefReference,\n\tPopoverAnchorRefTopBottom,\n} from './types';\nimport { limitShift as customLimitShift } from './limit-shift';\nimport { overlayMiddlewares } from './overlay-middlewares';\n\n/**\n * Name of slot in which popover should fill.\n *\n * @type {string}\n */\nconst SLOT_NAME = 'Popover';\n\n// An SVG displaying a triangle facing down, filled with a solid\n// color and bordered in such a way to create an arrow-like effect.\n// Keeping the SVG's viewbox squared simplify the arrow positioning\n// calculations.\nconst ArrowTriangle = () => (\n\t<SVG\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tviewBox={ `0 0 100 100` }\n\t\tclassName=\"components-popover__triangle\"\n\t\trole=\"presentation\"\n\t>\n\t\t<Path\n\t\t\tclassName=\"components-popover__triangle-bg\"\n\t\t\td=\"M 0 0 L 50 50 L 100 0\"\n\t\t/>\n\t\t<Path\n\t\t\tclassName=\"components-popover__triangle-border\"\n\t\t\td=\"M 0 0 L 50 50 L 100 0\"\n\t\t\tvectorEffect=\"non-scaling-stroke\"\n\t\t/>\n\t</SVG>\n);\n\nconst AnimatedWrapper = forwardRef(\n\t(\n\t\t{\n\t\t\tstyle: receivedInlineStyles,\n\t\t\tplacement,\n\t\t\tshouldAnimate = false,\n\t\t\t...props\n\t\t}: HTMLMotionProps< 'div' > & AnimatedWrapperProps,\n\t\tforwardedRef: ForwardedRef< any >\n\t) => {\n\t\t// When animating, animate only once (i.e. when the popover is opened), and\n\t\t// do not animate on subsequent prop changes (as it conflicts with\n\t\t// floating-ui's positioning updates).\n\t\tconst [ hasAnimatedOnce, setHasAnimatedOnce ] = useState( false );\n\t\tconst shouldReduceMotion = useReducedMotion();\n\n\t\tconst { style: motionInlineStyles, ...otherMotionProps } = useMemo(\n\t\t\t() => placementToMotionAnimationProps( placement ),\n\t\t\t[ placement ]\n\t\t);\n\n\t\tconst onAnimationComplete = useCallback(\n\t\t\t() => setHasAnimatedOnce( true ),\n\t\t\t[]\n\t\t);\n\n\t\tconst computedAnimationProps: HTMLMotionProps< 'div' > =\n\t\t\tshouldAnimate && ! shouldReduceMotion\n\t\t\t\t? {\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t...motionInlineStyles,\n\t\t\t\t\t\t\t...receivedInlineStyles,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t...otherMotionProps,\n\t\t\t\t\t\tonAnimationComplete,\n\t\t\t\t\t\tanimate: hasAnimatedOnce\n\t\t\t\t\t\t\t? false\n\t\t\t\t\t\t\t: otherMotionProps.animate,\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\tanimate: false,\n\t\t\t\t\t\tstyle: receivedInlineStyles,\n\t\t\t\t };\n\n\t\treturn (\n\t\t\t<motion.div\n\t\t\t\t{ ...computedAnimationProps }\n\t\t\t\t{ ...props }\n\t\t\t\tref={ forwardedRef }\n\t\t\t/>\n\t\t);\n\t}\n);\n\nconst slotNameContext = createContext< string | undefined >( undefined );\n\nconst UnforwardedPopover = (\n\tprops: Omit<\n\t\tWordPressComponentProps< PopoverProps, 'div', false >,\n\t\t// To avoid overlaps between the standard HTML attributes and the props\n\t\t// expected by `framer-motion`, omit all framer motion props from popover\n\t\t// props (except for `animate`, which is re-defined in `PopoverProps`).\n\t\tkeyof Omit< MotionProps, 'animate' >\n\t>,\n\tforwardedRef: ForwardedRef< any >\n) => {\n\tconst {\n\t\tanimate = true,\n\t\theaderTitle,\n\t\tonClose,\n\t\tchildren,\n\t\tclassName,\n\t\tnoArrow = true,\n\t\tposition,\n\t\tplacement: placementProp = 'bottom-start',\n\t\toffset: offsetProp = 0,\n\t\tfocusOnMount = 'firstElement',\n\t\tanchor,\n\t\texpandOnMobile,\n\t\tonFocusOutside,\n\t\t__unstableSlotName = SLOT_NAME,\n\t\tflip = true,\n\t\tresize = true,\n\t\tshift = false,\n\t\tvariant,\n\n\t\t// Deprecated props\n\t\t__unstableForcePosition,\n\t\tanchorRef,\n\t\tanchorRect,\n\t\tgetAnchorRect,\n\t\tisAlternate,\n\n\t\t// Rest\n\t\t...contentProps\n\t} = props;\n\n\tlet computedFlipProp = flip;\n\tlet computedResizeProp = resize;\n\tif ( __unstableForcePosition !== undefined ) {\n\t\tdeprecated( '`__unstableForcePosition` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\tversion: '6.3',\n\t\t\talternative: '`flip={ false }` and `resize={ false }`',\n\t\t} );\n\n\t\t// Back-compat, set the `flip` and `resize` props\n\t\t// to `false` to replicate `__unstableForcePosition`.\n\t\tcomputedFlipProp = ! __unstableForcePosition;\n\t\tcomputedResizeProp = ! __unstableForcePosition;\n\t}\n\n\tif ( anchorRef !== undefined ) {\n\t\tdeprecated( '`anchorRef` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\talternative: '`anchor` prop',\n\t\t} );\n\t}\n\n\tif ( anchorRect !== undefined ) {\n\t\tdeprecated( '`anchorRect` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\talternative: '`anchor` prop',\n\t\t} );\n\t}\n\n\tif ( getAnchorRect !== undefined ) {\n\t\tdeprecated( '`getAnchorRect` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\talternative: '`anchor` prop',\n\t\t} );\n\t}\n\n\tconst computedVariant = isAlternate ? 'toolbar' : variant;\n\tif ( isAlternate !== undefined ) {\n\t\tdeprecated( '`isAlternate` prop in wp.components.Popover', {\n\t\t\tsince: '6.2',\n\t\t\talternative: \"`variant` prop with the `'toolbar'` value\",\n\t\t} );\n\t}\n\n\tconst arrowRef = useRef< HTMLElement | null >( null );\n\n\tconst [ fallbackReferenceElement, setFallbackReferenceElement ] =\n\t\tuseState< HTMLSpanElement | null >( null );\n\tconst [ referenceOwnerDocument, setReferenceOwnerDocument ] = useState<\n\t\tDocument | undefined\n\t>();\n\n\tconst anchorRefFallback: RefCallback< HTMLSpanElement > = useCallback(\n\t\t( node ) => {\n\t\t\tsetFallbackReferenceElement( node );\n\t\t},\n\t\t[]\n\t);\n\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst isExpanded = expandOnMobile && isMobileViewport;\n\tconst hasArrow = ! isExpanded && ! noArrow;\n\tconst normalizedPlacementFromProps = position\n\t\t? positionToPlacement( position )\n\t\t: placementProp;\n\n\t/**\n\t * Offsets the position of the popover when the anchor is inside an iframe.\n\t *\n\t * Store the offset in a ref, due to constraints with floating-ui:\n\t * https://floating-ui.com/docs/react-dom#variables-inside-middleware-functions.\n\t */\n\tconst frameOffsetRef = useRef( getFrameOffset( referenceOwnerDocument ) );\n\n\tconst middleware = [\n\t\t...( placementProp === 'overlay' ? overlayMiddlewares() : [] ),\n\t\t// Custom middleware which adjusts the popover's position by taking into\n\t\t// account the offset of the anchor's iframe (if any) compared to the page.\n\t\t{\n\t\t\tname: 'frameOffset',\n\t\t\tfn( { x, y }: MiddlewareArguments ) {\n\t\t\t\tif ( ! frameOffsetRef.current ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tx,\n\t\t\t\t\t\ty,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tx: x + frameOffsetRef.current.x,\n\t\t\t\t\ty: y + frameOffsetRef.current.y,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\t// This will be used in the customLimitShift() function.\n\t\t\t\t\t\tamount: frameOffsetRef.current,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t},\n\t\t},\n\t\toffsetMiddleware( offsetProp ),\n\t\tcomputedFlipProp ? flipMiddleware() : undefined,\n\t\tcomputedResizeProp\n\t\t\t? size( {\n\t\t\t\t\tapply( sizeProps ) {\n\t\t\t\t\t\tconst { firstElementChild } =\n\t\t\t\t\t\t\trefs.floating.current ?? {};\n\n\t\t\t\t\t\t// Only HTMLElement instances have the `style` property.\n\t\t\t\t\t\tif ( ! ( firstElementChild instanceof HTMLElement ) )\n\t\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Reduce the height of the popover to the available space.\n\t\t\t\t\t\tObject.assign( firstElementChild.style, {\n\t\t\t\t\t\t\tmaxHeight: `${ sizeProps.availableHeight }px`,\n\t\t\t\t\t\t\toverflow: 'auto',\n\t\t\t\t\t\t} );\n\t\t\t\t\t},\n\t\t\t } )\n\t\t\t: undefined,\n\t\tshift\n\t\t\t? shiftMiddleware( {\n\t\t\t\t\tcrossAxis: true,\n\t\t\t\t\tlimiter: customLimitShift(),\n\t\t\t\t\tpadding: 1, // Necessary to avoid flickering at the edge of the viewport.\n\t\t\t } )\n\t\t\t: undefined,\n\t\tarrow( { element: arrowRef } ),\n\t].filter(\n\t\t( m: Middleware | undefined ): m is Middleware => m !== undefined\n\t);\n\tconst slotName = useContext( slotNameContext ) || __unstableSlotName;\n\tconst slot = useSlot( slotName );\n\n\tlet onDialogClose;\n\n\tif ( onClose || onFocusOutside ) {\n\t\tonDialogClose = ( type: string | undefined, event: SyntheticEvent ) => {\n\t\t\t// Ideally the popover should have just a single onClose prop and\n\t\t\t// not three props that potentially do the same thing.\n\t\t\tif ( type === 'focus-outside' && onFocusOutside ) {\n\t\t\t\tonFocusOutside( event );\n\t\t\t} else if ( onClose ) {\n\t\t\t\tonClose();\n\t\t\t}\n\t\t};\n\t}\n\n\tconst [ dialogRef, dialogProps ] = useDialog( {\n\t\tfocusOnMount,\n\t\t__unstableOnClose: onDialogClose,\n\t\t// @ts-expect-error The __unstableOnClose property needs to be deprecated first (see https://github.com/WordPress/gutenberg/pull/27675)\n\t\tonClose: onDialogClose,\n\t} );\n\n\tconst {\n\t\t// Positioning coordinates\n\t\tx,\n\t\ty,\n\t\t// Callback refs (not regular refs). This allows the position to be updated.\n\t\t// when either elements change.\n\t\treference: referenceCallbackRef,\n\t\tfloating,\n\t\t// Object with \"regular\" refs to both \"reference\" and \"floating\"\n\t\trefs,\n\t\t// Type of CSS position property to use (absolute or fixed)\n\t\tstrategy,\n\t\tupdate,\n\t\tplacement: computedPlacement,\n\t\tmiddlewareData: { arrow: arrowData },\n\t} = useFloating( {\n\t\tplacement:\n\t\t\tnormalizedPlacementFromProps === 'overlay'\n\t\t\t\t? undefined\n\t\t\t\t: normalizedPlacementFromProps,\n\t\tmiddleware,\n\t\twhileElementsMounted: ( referenceParam, floatingParam, updateParam ) =>\n\t\t\tautoUpdate( referenceParam, floatingParam, updateParam, {\n\t\t\t\tanimationFrame: true,\n\t\t\t} ),\n\t} );\n\n\tconst arrowCallbackRef = useCallback(\n\t\t( node: HTMLElement | null ) => {\n\t\t\tarrowRef.current = node;\n\t\t\tupdate();\n\t\t},\n\t\t[ update ]\n\t);\n\n\t// When any of the possible anchor \"sources\" change,\n\t// recompute the reference element (real or virtual) and its owner document.\n\n\tconst anchorRefTop = ( anchorRef as PopoverAnchorRefTopBottom | undefined )\n\t\t?.top;\n\tconst anchorRefBottom = (\n\t\tanchorRef as PopoverAnchorRefTopBottom | undefined\n\t )?.bottom;\n\tconst anchorRefStartContainer = ( anchorRef as Range | undefined )\n\t\t?.startContainer;\n\tconst anchorRefCurrent = ( anchorRef as PopoverAnchorRefReference )\n\t\t?.current;\n\n\tuseLayoutEffect( () => {\n\t\tconst resultingReferenceOwnerDoc = getReferenceOwnerDocument( {\n\t\t\tanchor,\n\t\t\tanchorRef,\n\t\t\tanchorRect,\n\t\t\tgetAnchorRect,\n\t\t\tfallbackReferenceElement,\n\t\t\tfallbackDocument: document,\n\t\t} );\n\t\tconst scale = getFrameScale( resultingReferenceOwnerDoc );\n\t\tconst resultingReferenceElement = getReferenceElement( {\n\t\t\tanchor,\n\t\t\tanchorRef,\n\t\t\tanchorRect,\n\t\t\tgetAnchorRect,\n\t\t\tfallbackReferenceElement,\n\t\t\tscale,\n\t\t} );\n\n\t\treferenceCallbackRef( resultingReferenceElement );\n\n\t\tsetReferenceOwnerDocument( resultingReferenceOwnerDoc );\n\t}, [\n\t\tanchor,\n\t\tanchorRef,\n\t\tanchorRefTop,\n\t\tanchorRefBottom,\n\t\tanchorRefStartContainer,\n\t\tanchorRefCurrent,\n\t\tanchorRect,\n\t\tgetAnchorRect,\n\t\tfallbackReferenceElement,\n\t\treferenceCallbackRef,\n\t] );\n\n\t// If the reference element is in a different ownerDocument (e.g. iFrame),\n\t// we need to manually update the floating's position as the reference's owner\n\t// document scrolls. Also update the frame offset if the view resizes.\n\tuseLayoutEffect( () => {\n\t\tif (\n\t\t\t// Reference and root documents are the same.\n\t\t\treferenceOwnerDocument === document ||\n\t\t\t// Reference and floating are in the same document.\n\t\t\treferenceOwnerDocument === refs.floating.current?.ownerDocument ||\n\t\t\t// The reference's document has no view (i.e. window)\n\t\t\t// or frame element (ie. it's not an iframe).\n\t\t\t! referenceOwnerDocument?.defaultView?.frameElement\n\t\t) {\n\t\t\tframeOffsetRef.current = undefined;\n\t\t\treturn;\n\t\t}\n\n\t\tconst { defaultView } = referenceOwnerDocument;\n\t\tconst { frameElement } = defaultView;\n\n\t\tconst scrollContainer = frameElement\n\t\t\t? getScrollContainer( frameElement )\n\t\t\t: null;\n\n\t\tconst updateFrameOffset = () => {\n\t\t\tframeOffsetRef.current = getFrameOffset( referenceOwnerDocument );\n\t\t\tupdate();\n\t\t};\n\t\tdefaultView.addEventListener( 'resize', updateFrameOffset );\n\t\tscrollContainer?.addEventListener( 'scroll', updateFrameOffset );\n\n\t\tupdateFrameOffset();\n\n\t\treturn () => {\n\t\t\tdefaultView.removeEventListener( 'resize', updateFrameOffset );\n\t\t\tscrollContainer?.removeEventListener( 'scroll', updateFrameOffset );\n\t\t};\n\t}, [ referenceOwnerDocument, update, refs.floating ] );\n\n\tconst mergedFloatingRef = useMergeRefs( [\n\t\tfloating,\n\t\tdialogRef,\n\t\tforwardedRef,\n\t] );\n\n\t// Disable reason: We care to capture the _bubbled_ events from inputs\n\t// within popover as inferring close intent.\n\n\tlet content = (\n\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<AnimatedWrapper\n\t\t\tshouldAnimate={ animate && ! isExpanded }\n\t\t\tplacement={ computedPlacement }\n\t\t\tclassName={ classnames( 'components-popover', className, {\n\t\t\t\t'is-expanded': isExpanded,\n\t\t\t\t'is-positioned': x !== null && y !== null,\n\t\t\t\t// Use the 'alternate' classname for 'toolbar' variant for back compat.\n\t\t\t\t[ `is-${\n\t\t\t\t\tcomputedVariant === 'toolbar'\n\t\t\t\t\t\t? 'alternate'\n\t\t\t\t\t\t: computedVariant\n\t\t\t\t}` ]: computedVariant,\n\t\t\t} ) }\n\t\t\t{ ...contentProps }\n\t\t\tref={ mergedFloatingRef }\n\t\t\t{ ...dialogProps }\n\t\t\ttabIndex={ -1 }\n\t\t\tstyle={\n\t\t\t\tisExpanded\n\t\t\t\t\t? undefined\n\t\t\t\t\t: {\n\t\t\t\t\t\t\tposition: strategy,\n\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\t// `x` and `y` are framer-motion specific props and are shorthands\n\t\t\t\t\t\t\t// for `translateX` and `translateY`. Currently it is not possible\n\t\t\t\t\t\t\t// to use `translateX` and `translateY` because those values would\n\t\t\t\t\t\t\t// be overridden by the return value of the\n\t\t\t\t\t\t\t// `placementToMotionAnimationProps` function in `AnimatedWrapper`\n\t\t\t\t\t\t\tx: Math.round( x ?? 0 ) || undefined,\n\t\t\t\t\t\t\ty: Math.round( y ?? 0 ) || undefined,\n\t\t\t\t\t }\n\t\t\t}\n\t\t>\n\t\t\t{ /* Prevents scroll on the document */ }\n\t\t\t{ isExpanded && <ScrollLock /> }\n\t\t\t{ isExpanded && (\n\t\t\t\t<div className=\"components-popover__header\">\n\t\t\t\t\t<span className=\"components-popover__header-title\">\n\t\t\t\t\t\t{ headerTitle }\n\t\t\t\t\t</span>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"components-popover__close\"\n\t\t\t\t\t\ticon={ close }\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<div className=\"components-popover__content\">{ children }</div>\n\t\t\t{ hasArrow && (\n\t\t\t\t<div\n\t\t\t\t\tref={ arrowCallbackRef }\n\t\t\t\t\tclassName={ [\n\t\t\t\t\t\t'components-popover__arrow',\n\t\t\t\t\t\t`is-${ computedPlacement.split( '-' )[ 0 ] }`,\n\t\t\t\t\t].join( ' ' ) }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tleft:\n\t\t\t\t\t\t\ttypeof arrowData?.x !== 'undefined' &&\n\t\t\t\t\t\t\tNumber.isFinite( arrowData.x )\n\t\t\t\t\t\t\t\t? `${\n\t\t\t\t\t\t\t\t\t\tarrowData.x +\n\t\t\t\t\t\t\t\t\t\t( frameOffsetRef.current?.x ?? 0 )\n\t\t\t\t\t\t\t\t }px`\n\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\ttop:\n\t\t\t\t\t\t\ttypeof arrowData?.y !== 'undefined' &&\n\t\t\t\t\t\t\tNumber.isFinite( arrowData.y )\n\t\t\t\t\t\t\t\t? `${\n\t\t\t\t\t\t\t\t\t\tarrowData.y +\n\t\t\t\t\t\t\t\t\t\t( frameOffsetRef.current?.y ?? 0 )\n\t\t\t\t\t\t\t\t }px`\n\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<ArrowTriangle />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</AnimatedWrapper>\n\t);\n\n\tif ( slot.ref ) {\n\t\tcontent = <Fill name={ slotName }>{ content }</Fill>;\n\t}\n\n\tif ( anchorRef || anchorRect || anchor ) {\n\t\treturn content;\n\t}\n\n\treturn <span ref={ anchorRefFallback }>{ content }</span>;\n};\n\n/**\n * `Popover` renders its content in a floating modal. If no explicit anchor is passed via props, it anchors to its parent element by default.\n *\n * ```jsx\n * import { Button, Popover } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyPopover = () => {\n * \tconst [ isVisible, setIsVisible ] = useState( false );\n * \tconst toggleVisible = () => {\n * \t\tsetIsVisible( ( state ) => ! state );\n * \t};\n *\n * \treturn (\n * \t\t<Button variant=\"secondary\" onClick={ toggleVisible }>\n * \t\t\tToggle Popover!\n * \t\t\t{ isVisible && <Popover>Popover is toggled!</Popover> }\n * \t\t</Button>\n * \t);\n * };\n * ```\n *\n */\nexport const Popover = forwardRef( UnforwardedPopover );\n\nfunction PopoverSlot(\n\t{ name = SLOT_NAME }: { name?: string },\n\tref: ForwardedRef< any >\n) {\n\treturn (\n\t\t<Slot\n\t\t\t// @ts-expect-error Need to type `SlotFill`\n\t\t\tbubblesVirtually\n\t\t\tname={ name }\n\t\t\tclassName=\"popover-slot\"\n\t\t\tref={ ref }\n\t\t/>\n\t);\n}\n\n// @ts-expect-error For Legacy Reasons\nPopover.Slot = forwardRef( PopoverSlot );\n// @ts-expect-error For Legacy Reasons\nPopover.__unstableSlotNameProvider = slotNameContext.Provider;\n\nexport default Popover;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/popover/index.tsx"],"names":["SLOT_NAME","ArrowTriangle","AnimatedWrapper","forwardedRef","style","receivedInlineStyles","placement","shouldAnimate","props","shouldReduceMotion","motionInlineStyles","otherMotionProps","computedAnimationProps","animate","slotNameContext","undefined","UnforwardedPopover","headerTitle","onClose","children","className","noArrow","position","placementProp","offset","offsetProp","focusOnMount","anchor","expandOnMobile","onFocusOutside","__unstableSlotName","flip","resize","shift","variant","__unstableForcePosition","anchorRef","anchorRect","getAnchorRect","isAlternate","contentProps","computedFlipProp","computedResizeProp","since","version","alternative","computedVariant","arrowRef","fallbackReferenceElement","setFallbackReferenceElement","referenceOwnerDocument","setReferenceOwnerDocument","anchorRefFallback","node","isMobileViewport","isExpanded","hasArrow","normalizedPlacementFromProps","frameOffsetRef","middleware","name","fn","x","y","current","data","amount","apply","sizeProps","firstElementChild","refs","floating","HTMLElement","Object","assign","maxHeight","availableHeight","overflow","crossAxis","limiter","padding","element","filter","m","slotName","slot","onDialogClose","type","event","dialogRef","dialogProps","__unstableOnClose","reference","referenceCallbackRef","strategy","update","computedPlacement","middlewareData","arrow","arrowData","whileElementsMounted","referenceParam","floatingParam","updateParam","animationFrame","arrowCallbackRef","anchorRefTop","top","anchorRefBottom","bottom","anchorRefStartContainer","startContainer","anchorRefCurrent","resultingReferenceOwnerDoc","fallbackDocument","document","scale","resultingReferenceElement","ownerDocument","defaultView","frameElement","scrollContainer","updateFrameOffset","addEventListener","removeEventListener","mergedFloatingRef","content","left","Math","round","close","split","join","Number","isFinite","ref","Popover","PopoverSlot","Slot","__unstableSlotNameProvider","Provider"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef, SyntheticEvent, RefCallback } from 'react';\nimport classnames from 'classnames';\nimport {\n\tuseFloating,\n\tflip as flipMiddleware,\n\tshift as shiftMiddleware,\n\tautoUpdate,\n\tarrow,\n\toffset as offsetMiddleware,\n\tsize,\n\tMiddleware,\n\tMiddlewareArguments,\n} from '@floating-ui/react-dom';\n// eslint-disable-next-line no-restricted-imports\nimport {\n\tmotion,\n\tuseReducedMotion,\n\tHTMLMotionProps,\n\tMotionProps,\n} from 'framer-motion';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseLayoutEffect,\n\tforwardRef,\n\tcreateContext,\n\tuseContext,\n\tuseMemo,\n\tuseState,\n\tuseCallback,\n} from '@wordpress/element';\nimport {\n\tuseViewportMatch,\n\tuseMergeRefs,\n\t__experimentalUseDialog as useDialog,\n} from '@wordpress/compose';\nimport { close } from '@wordpress/icons';\nimport deprecated from '@wordpress/deprecated';\nimport { Path, SVG } from '@wordpress/primitives';\nimport { getScrollContainer } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport ScrollLock from '../scroll-lock';\nimport { Slot, Fill, useSlot } from '../slot-fill';\nimport {\n\tgetFrameOffset,\n\tgetFrameScale,\n\tpositionToPlacement,\n\tplacementToMotionAnimationProps,\n\tgetReferenceOwnerDocument,\n\tgetReferenceElement,\n} from './utils';\nimport type { WordPressComponentProps } from '../ui/context';\nimport type {\n\tPopoverProps,\n\tAnimatedWrapperProps,\n\tPopoverAnchorRefReference,\n\tPopoverAnchorRefTopBottom,\n} from './types';\nimport { limitShift as customLimitShift } from './limit-shift';\nimport { overlayMiddlewares } from './overlay-middlewares';\n\n/**\n * Name of slot in which popover should fill.\n *\n * @type {string}\n */\nconst SLOT_NAME = 'Popover';\n\n// An SVG displaying a triangle facing down, filled with a solid\n// color and bordered in such a way to create an arrow-like effect.\n// Keeping the SVG's viewbox squared simplify the arrow positioning\n// calculations.\nconst ArrowTriangle = () => (\n\t<SVG\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tviewBox={ `0 0 100 100` }\n\t\tclassName=\"components-popover__triangle\"\n\t\trole=\"presentation\"\n\t>\n\t\t<Path\n\t\t\tclassName=\"components-popover__triangle-bg\"\n\t\t\td=\"M 0 0 L 50 50 L 100 0\"\n\t\t/>\n\t\t<Path\n\t\t\tclassName=\"components-popover__triangle-border\"\n\t\t\td=\"M 0 0 L 50 50 L 100 0\"\n\t\t\tvectorEffect=\"non-scaling-stroke\"\n\t\t/>\n\t</SVG>\n);\n\nconst AnimatedWrapper = forwardRef(\n\t(\n\t\t{\n\t\t\tstyle: receivedInlineStyles,\n\t\t\tplacement,\n\t\t\tshouldAnimate = false,\n\t\t\t...props\n\t\t}: HTMLMotionProps< 'div' > & AnimatedWrapperProps,\n\t\tforwardedRef: ForwardedRef< any >\n\t) => {\n\t\tconst shouldReduceMotion = useReducedMotion();\n\n\t\tconst { style: motionInlineStyles, ...otherMotionProps } = useMemo(\n\t\t\t() => placementToMotionAnimationProps( placement ),\n\t\t\t[ placement ]\n\t\t);\n\n\t\tconst computedAnimationProps: HTMLMotionProps< 'div' > =\n\t\t\tshouldAnimate && ! shouldReduceMotion\n\t\t\t\t? {\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t...motionInlineStyles,\n\t\t\t\t\t\t\t...receivedInlineStyles,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t...otherMotionProps,\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\tanimate: false,\n\t\t\t\t\t\tstyle: receivedInlineStyles,\n\t\t\t\t };\n\n\t\treturn (\n\t\t\t<motion.div\n\t\t\t\t{ ...computedAnimationProps }\n\t\t\t\t{ ...props }\n\t\t\t\tref={ forwardedRef }\n\t\t\t/>\n\t\t);\n\t}\n);\n\nconst slotNameContext = createContext< string | undefined >( undefined );\n\nconst UnforwardedPopover = (\n\tprops: Omit<\n\t\tWordPressComponentProps< PopoverProps, 'div', false >,\n\t\t// To avoid overlaps between the standard HTML attributes and the props\n\t\t// expected by `framer-motion`, omit all framer motion props from popover\n\t\t// props (except for `animate` and `children`, which are re-defined in `PopoverProps`).\n\t\tkeyof Omit< MotionProps, 'animate' | 'children' >\n\t>,\n\tforwardedRef: ForwardedRef< any >\n) => {\n\tconst {\n\t\tanimate = true,\n\t\theaderTitle,\n\t\tonClose,\n\t\tchildren,\n\t\tclassName,\n\t\tnoArrow = true,\n\t\tposition,\n\t\tplacement: placementProp = 'bottom-start',\n\t\toffset: offsetProp = 0,\n\t\tfocusOnMount = 'firstElement',\n\t\tanchor,\n\t\texpandOnMobile,\n\t\tonFocusOutside,\n\t\t__unstableSlotName = SLOT_NAME,\n\t\tflip = true,\n\t\tresize = true,\n\t\tshift = false,\n\t\tvariant,\n\n\t\t// Deprecated props\n\t\t__unstableForcePosition,\n\t\tanchorRef,\n\t\tanchorRect,\n\t\tgetAnchorRect,\n\t\tisAlternate,\n\n\t\t// Rest\n\t\t...contentProps\n\t} = props;\n\n\tlet computedFlipProp = flip;\n\tlet computedResizeProp = resize;\n\tif ( __unstableForcePosition !== undefined ) {\n\t\tdeprecated( '`__unstableForcePosition` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\tversion: '6.3',\n\t\t\talternative: '`flip={ false }` and `resize={ false }`',\n\t\t} );\n\n\t\t// Back-compat, set the `flip` and `resize` props\n\t\t// to `false` to replicate `__unstableForcePosition`.\n\t\tcomputedFlipProp = ! __unstableForcePosition;\n\t\tcomputedResizeProp = ! __unstableForcePosition;\n\t}\n\n\tif ( anchorRef !== undefined ) {\n\t\tdeprecated( '`anchorRef` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\talternative: '`anchor` prop',\n\t\t} );\n\t}\n\n\tif ( anchorRect !== undefined ) {\n\t\tdeprecated( '`anchorRect` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\talternative: '`anchor` prop',\n\t\t} );\n\t}\n\n\tif ( getAnchorRect !== undefined ) {\n\t\tdeprecated( '`getAnchorRect` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\talternative: '`anchor` prop',\n\t\t} );\n\t}\n\n\tconst computedVariant = isAlternate ? 'toolbar' : variant;\n\tif ( isAlternate !== undefined ) {\n\t\tdeprecated( '`isAlternate` prop in wp.components.Popover', {\n\t\t\tsince: '6.2',\n\t\t\talternative: \"`variant` prop with the `'toolbar'` value\",\n\t\t} );\n\t}\n\n\tconst arrowRef = useRef< HTMLElement | null >( null );\n\n\tconst [ fallbackReferenceElement, setFallbackReferenceElement ] =\n\t\tuseState< HTMLSpanElement | null >( null );\n\tconst [ referenceOwnerDocument, setReferenceOwnerDocument ] = useState<\n\t\tDocument | undefined\n\t>();\n\n\tconst anchorRefFallback: RefCallback< HTMLSpanElement > = useCallback(\n\t\t( node ) => {\n\t\t\tsetFallbackReferenceElement( node );\n\t\t},\n\t\t[]\n\t);\n\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst isExpanded = expandOnMobile && isMobileViewport;\n\tconst hasArrow = ! isExpanded && ! noArrow;\n\tconst normalizedPlacementFromProps = position\n\t\t? positionToPlacement( position )\n\t\t: placementProp;\n\n\t/**\n\t * Offsets the position of the popover when the anchor is inside an iframe.\n\t *\n\t * Store the offset in a ref, due to constraints with floating-ui:\n\t * https://floating-ui.com/docs/react-dom#variables-inside-middleware-functions.\n\t */\n\tconst frameOffsetRef = useRef( getFrameOffset( referenceOwnerDocument ) );\n\n\tconst middleware = [\n\t\t...( placementProp === 'overlay' ? overlayMiddlewares() : [] ),\n\t\t// Custom middleware which adjusts the popover's position by taking into\n\t\t// account the offset of the anchor's iframe (if any) compared to the page.\n\t\t{\n\t\t\tname: 'frameOffset',\n\t\t\tfn( { x, y }: MiddlewareArguments ) {\n\t\t\t\tif ( ! frameOffsetRef.current ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tx,\n\t\t\t\t\t\ty,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tx: x + frameOffsetRef.current.x,\n\t\t\t\t\ty: y + frameOffsetRef.current.y,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\t// This will be used in the customLimitShift() function.\n\t\t\t\t\t\tamount: frameOffsetRef.current,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t},\n\t\t},\n\t\toffsetMiddleware( offsetProp ),\n\t\tcomputedFlipProp ? flipMiddleware() : undefined,\n\t\tcomputedResizeProp\n\t\t\t? size( {\n\t\t\t\t\tapply( sizeProps ) {\n\t\t\t\t\t\tconst { firstElementChild } =\n\t\t\t\t\t\t\trefs.floating.current ?? {};\n\n\t\t\t\t\t\t// Only HTMLElement instances have the `style` property.\n\t\t\t\t\t\tif ( ! ( firstElementChild instanceof HTMLElement ) )\n\t\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Reduce the height of the popover to the available space.\n\t\t\t\t\t\tObject.assign( firstElementChild.style, {\n\t\t\t\t\t\t\tmaxHeight: `${ sizeProps.availableHeight }px`,\n\t\t\t\t\t\t\toverflow: 'auto',\n\t\t\t\t\t\t} );\n\t\t\t\t\t},\n\t\t\t } )\n\t\t\t: undefined,\n\t\tshift\n\t\t\t? shiftMiddleware( {\n\t\t\t\t\tcrossAxis: true,\n\t\t\t\t\tlimiter: customLimitShift(),\n\t\t\t\t\tpadding: 1, // Necessary to avoid flickering at the edge of the viewport.\n\t\t\t } )\n\t\t\t: undefined,\n\t\tarrow( { element: arrowRef } ),\n\t].filter(\n\t\t( m: Middleware | undefined ): m is Middleware => m !== undefined\n\t);\n\tconst slotName = useContext( slotNameContext ) || __unstableSlotName;\n\tconst slot = useSlot( slotName );\n\n\tlet onDialogClose;\n\n\tif ( onClose || onFocusOutside ) {\n\t\tonDialogClose = ( type: string | undefined, event: SyntheticEvent ) => {\n\t\t\t// Ideally the popover should have just a single onClose prop and\n\t\t\t// not three props that potentially do the same thing.\n\t\t\tif ( type === 'focus-outside' && onFocusOutside ) {\n\t\t\t\tonFocusOutside( event );\n\t\t\t} else if ( onClose ) {\n\t\t\t\tonClose();\n\t\t\t}\n\t\t};\n\t}\n\n\tconst [ dialogRef, dialogProps ] = useDialog( {\n\t\tfocusOnMount,\n\t\t__unstableOnClose: onDialogClose,\n\t\t// @ts-expect-error The __unstableOnClose property needs to be deprecated first (see https://github.com/WordPress/gutenberg/pull/27675)\n\t\tonClose: onDialogClose,\n\t} );\n\n\tconst {\n\t\t// Positioning coordinates\n\t\tx,\n\t\ty,\n\t\t// Callback refs (not regular refs). This allows the position to be updated.\n\t\t// when either elements change.\n\t\treference: referenceCallbackRef,\n\t\tfloating,\n\t\t// Object with \"regular\" refs to both \"reference\" and \"floating\"\n\t\trefs,\n\t\t// Type of CSS position property to use (absolute or fixed)\n\t\tstrategy,\n\t\tupdate,\n\t\tplacement: computedPlacement,\n\t\tmiddlewareData: { arrow: arrowData },\n\t} = useFloating( {\n\t\tplacement:\n\t\t\tnormalizedPlacementFromProps === 'overlay'\n\t\t\t\t? undefined\n\t\t\t\t: normalizedPlacementFromProps,\n\t\tmiddleware,\n\t\twhileElementsMounted: ( referenceParam, floatingParam, updateParam ) =>\n\t\t\tautoUpdate( referenceParam, floatingParam, updateParam, {\n\t\t\t\tanimationFrame: true,\n\t\t\t} ),\n\t} );\n\n\tconst arrowCallbackRef = useCallback(\n\t\t( node: HTMLElement | null ) => {\n\t\t\tarrowRef.current = node;\n\t\t\tupdate();\n\t\t},\n\t\t[ update ]\n\t);\n\n\t// When any of the possible anchor \"sources\" change,\n\t// recompute the reference element (real or virtual) and its owner document.\n\n\tconst anchorRefTop = ( anchorRef as PopoverAnchorRefTopBottom | undefined )\n\t\t?.top;\n\tconst anchorRefBottom = (\n\t\tanchorRef as PopoverAnchorRefTopBottom | undefined\n\t )?.bottom;\n\tconst anchorRefStartContainer = ( anchorRef as Range | undefined )\n\t\t?.startContainer;\n\tconst anchorRefCurrent = ( anchorRef as PopoverAnchorRefReference )\n\t\t?.current;\n\n\tuseLayoutEffect( () => {\n\t\tconst resultingReferenceOwnerDoc = getReferenceOwnerDocument( {\n\t\t\tanchor,\n\t\t\tanchorRef,\n\t\t\tanchorRect,\n\t\t\tgetAnchorRect,\n\t\t\tfallbackReferenceElement,\n\t\t\tfallbackDocument: document,\n\t\t} );\n\t\tconst scale = getFrameScale( resultingReferenceOwnerDoc );\n\t\tconst resultingReferenceElement = getReferenceElement( {\n\t\t\tanchor,\n\t\t\tanchorRef,\n\t\t\tanchorRect,\n\t\t\tgetAnchorRect,\n\t\t\tfallbackReferenceElement,\n\t\t\tscale,\n\t\t} );\n\n\t\treferenceCallbackRef( resultingReferenceElement );\n\n\t\tsetReferenceOwnerDocument( resultingReferenceOwnerDoc );\n\t}, [\n\t\tanchor,\n\t\tanchorRef,\n\t\tanchorRefTop,\n\t\tanchorRefBottom,\n\t\tanchorRefStartContainer,\n\t\tanchorRefCurrent,\n\t\tanchorRect,\n\t\tgetAnchorRect,\n\t\tfallbackReferenceElement,\n\t\treferenceCallbackRef,\n\t] );\n\n\t// If the reference element is in a different ownerDocument (e.g. iFrame),\n\t// we need to manually update the floating's position as the reference's owner\n\t// document scrolls. Also update the frame offset if the view resizes.\n\tuseLayoutEffect( () => {\n\t\tif (\n\t\t\t// Reference and root documents are the same.\n\t\t\treferenceOwnerDocument === document ||\n\t\t\t// Reference and floating are in the same document.\n\t\t\treferenceOwnerDocument === refs.floating.current?.ownerDocument ||\n\t\t\t// The reference's document has no view (i.e. window)\n\t\t\t// or frame element (ie. it's not an iframe).\n\t\t\t! referenceOwnerDocument?.defaultView?.frameElement\n\t\t) {\n\t\t\tframeOffsetRef.current = undefined;\n\t\t\treturn;\n\t\t}\n\n\t\tconst { defaultView } = referenceOwnerDocument;\n\t\tconst { frameElement } = defaultView;\n\n\t\tconst scrollContainer = frameElement\n\t\t\t? getScrollContainer( frameElement )\n\t\t\t: null;\n\n\t\tconst updateFrameOffset = () => {\n\t\t\tframeOffsetRef.current = getFrameOffset( referenceOwnerDocument );\n\t\t\tupdate();\n\t\t};\n\t\tdefaultView.addEventListener( 'resize', updateFrameOffset );\n\t\tscrollContainer?.addEventListener( 'scroll', updateFrameOffset );\n\n\t\tupdateFrameOffset();\n\n\t\treturn () => {\n\t\t\tdefaultView.removeEventListener( 'resize', updateFrameOffset );\n\t\t\tscrollContainer?.removeEventListener( 'scroll', updateFrameOffset );\n\t\t};\n\t}, [ referenceOwnerDocument, update, refs.floating ] );\n\n\tconst mergedFloatingRef = useMergeRefs( [\n\t\tfloating,\n\t\tdialogRef,\n\t\tforwardedRef,\n\t] );\n\n\t// Disable reason: We care to capture the _bubbled_ events from inputs\n\t// within popover as inferring close intent.\n\n\tlet content = (\n\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<AnimatedWrapper\n\t\t\tshouldAnimate={ animate && ! isExpanded }\n\t\t\tplacement={ computedPlacement }\n\t\t\tclassName={ classnames( 'components-popover', className, {\n\t\t\t\t'is-expanded': isExpanded,\n\t\t\t\t'is-positioned': x !== null && y !== null,\n\t\t\t\t// Use the 'alternate' classname for 'toolbar' variant for back compat.\n\t\t\t\t[ `is-${\n\t\t\t\t\tcomputedVariant === 'toolbar'\n\t\t\t\t\t\t? 'alternate'\n\t\t\t\t\t\t: computedVariant\n\t\t\t\t}` ]: computedVariant,\n\t\t\t} ) }\n\t\t\t{ ...contentProps }\n\t\t\tref={ mergedFloatingRef }\n\t\t\t{ ...dialogProps }\n\t\t\ttabIndex={ -1 }\n\t\t\tstyle={\n\t\t\t\tisExpanded\n\t\t\t\t\t? undefined\n\t\t\t\t\t: {\n\t\t\t\t\t\t\tposition: strategy,\n\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\t// `x` and `y` are framer-motion specific props and are shorthands\n\t\t\t\t\t\t\t// for `translateX` and `translateY`. Currently it is not possible\n\t\t\t\t\t\t\t// to use `translateX` and `translateY` because those values would\n\t\t\t\t\t\t\t// be overridden by the return value of the\n\t\t\t\t\t\t\t// `placementToMotionAnimationProps` function in `AnimatedWrapper`\n\t\t\t\t\t\t\tx: Math.round( x ?? 0 ) || undefined,\n\t\t\t\t\t\t\ty: Math.round( y ?? 0 ) || undefined,\n\t\t\t\t\t }\n\t\t\t}\n\t\t>\n\t\t\t{ /* Prevents scroll on the document */ }\n\t\t\t{ isExpanded && <ScrollLock /> }\n\t\t\t{ isExpanded && (\n\t\t\t\t<div className=\"components-popover__header\">\n\t\t\t\t\t<span className=\"components-popover__header-title\">\n\t\t\t\t\t\t{ headerTitle }\n\t\t\t\t\t</span>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"components-popover__close\"\n\t\t\t\t\t\ticon={ close }\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<div className=\"components-popover__content\">{ children }</div>\n\t\t\t{ hasArrow && (\n\t\t\t\t<div\n\t\t\t\t\tref={ arrowCallbackRef }\n\t\t\t\t\tclassName={ [\n\t\t\t\t\t\t'components-popover__arrow',\n\t\t\t\t\t\t`is-${ computedPlacement.split( '-' )[ 0 ] }`,\n\t\t\t\t\t].join( ' ' ) }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tleft:\n\t\t\t\t\t\t\ttypeof arrowData?.x !== 'undefined' &&\n\t\t\t\t\t\t\tNumber.isFinite( arrowData.x )\n\t\t\t\t\t\t\t\t? `${\n\t\t\t\t\t\t\t\t\t\tarrowData.x +\n\t\t\t\t\t\t\t\t\t\t( frameOffsetRef.current?.x ?? 0 )\n\t\t\t\t\t\t\t\t }px`\n\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\ttop:\n\t\t\t\t\t\t\ttypeof arrowData?.y !== 'undefined' &&\n\t\t\t\t\t\t\tNumber.isFinite( arrowData.y )\n\t\t\t\t\t\t\t\t? `${\n\t\t\t\t\t\t\t\t\t\tarrowData.y +\n\t\t\t\t\t\t\t\t\t\t( frameOffsetRef.current?.y ?? 0 )\n\t\t\t\t\t\t\t\t }px`\n\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<ArrowTriangle />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</AnimatedWrapper>\n\t);\n\n\tif ( slot.ref ) {\n\t\tcontent = <Fill name={ slotName }>{ content }</Fill>;\n\t}\n\n\tif ( anchorRef || anchorRect || anchor ) {\n\t\treturn content;\n\t}\n\n\treturn <span ref={ anchorRefFallback }>{ content }</span>;\n};\n\n/**\n * `Popover` renders its content in a floating modal. If no explicit anchor is passed via props, it anchors to its parent element by default.\n *\n * ```jsx\n * import { Button, Popover } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyPopover = () => {\n * \tconst [ isVisible, setIsVisible ] = useState( false );\n * \tconst toggleVisible = () => {\n * \t\tsetIsVisible( ( state ) => ! state );\n * \t};\n *\n * \treturn (\n * \t\t<Button variant=\"secondary\" onClick={ toggleVisible }>\n * \t\t\tToggle Popover!\n * \t\t\t{ isVisible && <Popover>Popover is toggled!</Popover> }\n * \t\t</Button>\n * \t);\n * };\n * ```\n *\n */\nexport const Popover = forwardRef( UnforwardedPopover );\n\nfunction PopoverSlot(\n\t{ name = SLOT_NAME }: { name?: string },\n\tref: ForwardedRef< any >\n) {\n\treturn (\n\t\t<Slot\n\t\t\t// @ts-expect-error Need to type `SlotFill`\n\t\t\tbubblesVirtually\n\t\t\tname={ name }\n\t\t\tclassName=\"popover-slot\"\n\t\t\tref={ ref }\n\t\t/>\n\t);\n}\n\n// @ts-expect-error For Legacy Reasons\nPopover.Slot = forwardRef( PopoverSlot );\n// @ts-expect-error For Legacy Reasons\nPopover.__unstableSlotNameProvider = slotNameContext.Provider;\n\nexport default Popover;\n"]}
|
package/build/private-apis.js
CHANGED
|
@@ -13,6 +13,8 @@ var _customSelectControl = _interopRequireDefault(require("./custom-select-contr
|
|
|
13
13
|
|
|
14
14
|
var _utils = require("./popover/utils");
|
|
15
15
|
|
|
16
|
+
var _slotFill = require("./slot-fill");
|
|
17
|
+
|
|
16
18
|
/**
|
|
17
19
|
* WordPress dependencies
|
|
18
20
|
*/
|
|
@@ -30,6 +32,7 @@ const privateApis = {};
|
|
|
30
32
|
exports.privateApis = privateApis;
|
|
31
33
|
lock(privateApis, {
|
|
32
34
|
CustomSelectControl: _customSelectControl.default,
|
|
33
|
-
__experimentalPopoverLegacyPositionToPlacement: _utils.positionToPlacement
|
|
35
|
+
__experimentalPopoverLegacyPositionToPlacement: _utils.positionToPlacement,
|
|
36
|
+
createPrivateSlotFill: _slotFill.createPrivateSlotFill
|
|
34
37
|
});
|
|
35
38
|
//# sourceMappingURL=private-apis.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/components/src/private-apis.
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/private-apis.ts"],"names":["lock","unlock","privateApis","CustomSelectControl","__experimentalPopoverLegacyPositionToPlacement","createPrivateSlotFill"],"mappings":";;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AAVA;AACA;AACA;;AAGA;AACA;AACA;AAKO,MAAM;AAAEA,EAAAA,IAAF;AAAQC,EAAAA;AAAR,IACZ,mEACC,8GADD,EAEC,uBAFD,CADM;;;AAMA,MAAMC,WAAW,GAAG,EAApB;;AACPF,IAAI,CAAEE,WAAF,EAAe;AAClBC,EAAAA,mBAAmB,EAAnBA,4BADkB;AAElBC,EAAAA,8CAA8C,EAA9CA,0BAFkB;AAGlBC,EAAAA,qBAAqB,EAArBA;AAHkB,CAAf,CAAJ","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/private-apis';\n\n/**\n * Internal dependencies\n */\nimport { default as CustomSelectControl } from './custom-select-control';\nimport { positionToPlacement as __experimentalPopoverLegacyPositionToPlacement } from './popover/utils';\nimport { createPrivateSlotFill } from './slot-fill';\n\nexport const { lock, unlock } =\n\t__dangerousOptInToUnstableAPIsOnlyForCoreModules(\n\t\t'I know using unstable features means my plugin or theme will inevitably break on the next WordPress release.',\n\t\t'@wordpress/components'\n\t);\n\nexport const privateApis = {};\nlock( privateApis, {\n\tCustomSelectControl,\n\t__experimentalPopoverLegacyPositionToPlacement,\n\tcreatePrivateSlotFill,\n} );\n"]}
|
|
@@ -31,7 +31,8 @@ function AuthorSelect(_ref) {
|
|
|
31
31
|
noOptionLabel,
|
|
32
32
|
onChange: onChangeProp,
|
|
33
33
|
tree: termsTree,
|
|
34
|
-
selectedId: selectedAuthorId !== undefined ? String(selectedAuthorId) : undefined
|
|
34
|
+
selectedId: selectedAuthorId !== undefined ? String(selectedAuthorId) : undefined,
|
|
35
|
+
__nextHasNoMarginBottom: true
|
|
35
36
|
});
|
|
36
37
|
}
|
|
37
38
|
//# sourceMappingURL=author-select.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/components/src/query-controls/author-select.tsx"],"names":["AuthorSelect","label","noOptionLabel","authorList","selectedAuthorId","onChange","onChangeProp","termsTree","undefined","String"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;AAKe,SAASA,YAAT,OAMQ;AAAA,MANe;AACrCC,IAAAA,KADqC;AAErCC,IAAAA,aAFqC;AAGrCC,IAAAA,UAHqC;AAIrCC,IAAAA,gBAJqC;AAKrCC,IAAAA,QAAQ,EAAEC;AAL2B,GAMf;AACtB,MAAK,CAAEH,UAAP,EAAoB,OAAO,IAAP;AACpB,QAAMI,SAAS,GAAG,2BAAgBJ,UAAhB,CAAlB;AACA,SACC,4BAAC,mBAAD;AAEEF,IAAAA,KAFF;AAGEC,IAAAA,aAHF;AAIEG,IAAAA,QAAQ,EAAEC,YAJZ;AAMC,IAAA,IAAI,EAAGC,SANR;AAOC,IAAA,UAAU,EACTH,gBAAgB,KAAKI,SAArB,GACGC,MAAM,CAAEL,gBAAF,CADT,GAEGI;
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/query-controls/author-select.tsx"],"names":["AuthorSelect","label","noOptionLabel","authorList","selectedAuthorId","onChange","onChangeProp","termsTree","undefined","String"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;AAKe,SAASA,YAAT,OAMQ;AAAA,MANe;AACrCC,IAAAA,KADqC;AAErCC,IAAAA,aAFqC;AAGrCC,IAAAA,UAHqC;AAIrCC,IAAAA,gBAJqC;AAKrCC,IAAAA,QAAQ,EAAEC;AAL2B,GAMf;AACtB,MAAK,CAAEH,UAAP,EAAoB,OAAO,IAAP;AACpB,QAAMI,SAAS,GAAG,2BAAgBJ,UAAhB,CAAlB;AACA,SACC,4BAAC,mBAAD;AAEEF,IAAAA,KAFF;AAGEC,IAAAA,aAHF;AAIEG,IAAAA,QAAQ,EAAEC,YAJZ;AAMC,IAAA,IAAI,EAAGC,SANR;AAOC,IAAA,UAAU,EACTH,gBAAgB,KAAKI,SAArB,GACGC,MAAM,CAAEL,gBAAF,CADT,GAEGI,SAVL;AAYC,IAAA,uBAAuB;AAZxB,IADD;AAgBA","sourcesContent":["/**\n * Internal dependencies\n */\nimport { buildTermsTree } from './terms';\nimport TreeSelect from '../tree-select';\nimport type { AuthorSelectProps } from './types';\n\nexport default function AuthorSelect( {\n\tlabel,\n\tnoOptionLabel,\n\tauthorList,\n\tselectedAuthorId,\n\tonChange: onChangeProp,\n}: AuthorSelectProps ) {\n\tif ( ! authorList ) return null;\n\tconst termsTree = buildTermsTree( authorList );\n\treturn (\n\t\t<TreeSelect\n\t\t\t{ ...{\n\t\t\t\tlabel,\n\t\t\t\tnoOptionLabel,\n\t\t\t\tonChange: onChangeProp,\n\t\t\t} }\n\t\t\ttree={ termsTree }\n\t\t\tselectedId={\n\t\t\t\tselectedAuthorId !== undefined\n\t\t\t\t\t? String( selectedAuthorId )\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\t__nextHasNoMarginBottom\n\t\t/>\n\t);\n}\n"]}
|
|
@@ -40,6 +40,8 @@ function CategorySelect(_ref) {
|
|
|
40
40
|
onChange: onChangeProp,
|
|
41
41
|
tree: termsTree,
|
|
42
42
|
selectedId: selectedCategoryId !== undefined ? String(selectedCategoryId) : undefined
|
|
43
|
-
}, props
|
|
43
|
+
}, props, {
|
|
44
|
+
__nextHasNoMarginBottom: true
|
|
45
|
+
}));
|
|
44
46
|
}
|
|
45
47
|
//# sourceMappingURL=category-select.js.map
|