@wordpress/components 29.11.0 → 29.13.1-next.719a03cbe.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 +22 -0
- package/build/box-control/input-control.js +2 -2
- package/build/box-control/input-control.js.map +1 -1
- package/build/calendar/date-calendar/index.js +60 -0
- package/build/calendar/date-calendar/index.js.map +1 -0
- package/build/calendar/date-range-calendar/index.js +168 -0
- package/build/calendar/date-range-calendar/index.js.map +1 -0
- package/build/calendar/index.js +27 -0
- package/build/calendar/index.js.map +1 -0
- package/build/calendar/types.js +6 -0
- package/build/calendar/types.js.map +1 -0
- package/build/calendar/utils/constants.js +68 -0
- package/build/calendar/utils/constants.js.map +1 -0
- package/build/calendar/utils/day-cell.js +137 -0
- package/build/calendar/utils/day-cell.js.map +1 -0
- package/build/calendar/utils/misc.js +10 -0
- package/build/calendar/utils/misc.js.map +1 -0
- package/build/calendar/utils/use-controlled-value.js +58 -0
- package/build/calendar/utils/use-controlled-value.js.map +1 -0
- package/build/calendar/utils/use-localization-props.js +162 -0
- package/build/calendar/utils/use-localization-props.js.map +1 -0
- package/build/custom-gradient-picker/gradient-bar/control-points.js +1 -1
- package/build/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
- package/build/custom-select-control-v2/custom-select.js +3 -3
- package/build/custom-select-control-v2/custom-select.js.map +1 -1
- package/build/date-time/date/index.js +1 -1
- package/build/date-time/date/index.js.map +1 -1
- package/build/form-file-upload/index.js +4 -6
- package/build/form-file-upload/index.js.map +1 -1
- package/build/form-token-field/index.js +11 -1
- package/build/form-token-field/index.js.map +1 -1
- package/build/form-token-field/token.js +1 -1
- package/build/form-token-field/token.js.map +1 -1
- package/build/index.js +19 -0
- package/build/index.js.map +1 -1
- package/build/mobile/bottom-sheet/cell.native.js +2 -2
- package/build/mobile/bottom-sheet/cell.native.js.map +1 -1
- package/build/mobile/image/index.native.js +1 -1
- package/build/mobile/image/index.native.js.map +1 -1
- package/build/mobile/link-picker/index.native.js +1 -1
- package/build/mobile/link-picker/index.native.js.map +1 -1
- package/build/navigation/menu/menu-title-search.js +1 -1
- package/build/navigation/menu/menu-title-search.js.map +1 -1
- package/build/palette-edit/index.js +4 -4
- package/build/palette-edit/index.js.map +1 -1
- package/build-module/box-control/input-control.js +2 -2
- package/build-module/box-control/input-control.js.map +1 -1
- package/build-module/calendar/date-calendar/index.js +51 -0
- package/build-module/calendar/date-calendar/index.js.map +1 -0
- package/build-module/calendar/date-range-calendar/index.js +157 -0
- package/build-module/calendar/date-range-calendar/index.js.map +1 -0
- package/build-module/calendar/index.js +4 -0
- package/build-module/calendar/index.js.map +1 -0
- package/build-module/calendar/types.js +2 -0
- package/build-module/calendar/types.js.map +1 -0
- package/build-module/calendar/utils/constants.js +61 -0
- package/build-module/calendar/utils/constants.js.map +1 -0
- package/build-module/calendar/utils/day-cell.js +131 -0
- package/build-module/calendar/utils/day-cell.js.map +1 -0
- package/build-module/calendar/utils/misc.js +4 -0
- package/build-module/calendar/utils/misc.js.map +1 -0
- package/build-module/calendar/utils/use-controlled-value.js +51 -0
- package/build-module/calendar/utils/use-controlled-value.js.map +1 -0
- package/build-module/calendar/utils/use-localization-props.js +154 -0
- package/build-module/calendar/utils/use-localization-props.js.map +1 -0
- package/build-module/custom-gradient-picker/gradient-bar/control-points.js +1 -1
- package/build-module/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
- package/build-module/custom-select-control-v2/custom-select.js +4 -4
- package/build-module/custom-select-control-v2/custom-select.js.map +1 -1
- package/build-module/date-time/date/index.js +1 -1
- package/build-module/date-time/date/index.js.map +1 -1
- package/build-module/form-file-upload/index.js +4 -6
- package/build-module/form-file-upload/index.js.map +1 -1
- package/build-module/form-token-field/index.js +11 -1
- package/build-module/form-token-field/index.js.map +1 -1
- package/build-module/form-token-field/token.js +1 -1
- package/build-module/form-token-field/token.js.map +1 -1
- package/build-module/index.js +1 -0
- package/build-module/index.js.map +1 -1
- package/build-module/mobile/bottom-sheet/cell.native.js +2 -2
- package/build-module/mobile/bottom-sheet/cell.native.js.map +1 -1
- package/build-module/mobile/image/index.native.js +1 -1
- package/build-module/mobile/image/index.native.js.map +1 -1
- package/build-module/mobile/link-picker/index.native.js +1 -1
- package/build-module/mobile/link-picker/index.native.js.map +1 -1
- package/build-module/navigation/menu/menu-title-search.js +1 -1
- package/build-module/navigation/menu/menu-title-search.js.map +1 -1
- package/build-module/palette-edit/index.js +4 -4
- package/build-module/palette-edit/index.js.map +1 -1
- package/build-style/style-rtl.css +358 -5
- package/build-style/style.css +358 -5
- package/build-types/box-control/input-control.d.ts.map +1 -1
- package/build-types/box-control/utils.d.ts +7 -7
- package/build-types/calendar/date-calendar/index.d.ts +11 -0
- package/build-types/calendar/date-calendar/index.d.ts.map +1 -0
- package/build-types/calendar/date-range-calendar/index.d.ts +14 -0
- package/build-types/calendar/date-range-calendar/index.d.ts.map +1 -0
- package/build-types/calendar/index.d.ts +4 -0
- package/build-types/calendar/index.d.ts.map +1 -0
- package/build-types/calendar/stories/date-calendar.story.d.ts +16 -0
- package/build-types/calendar/stories/date-calendar.story.d.ts.map +1 -0
- package/build-types/calendar/stories/date-range-calendar.story.d.ts +16 -0
- package/build-types/calendar/stories/date-range-calendar.story.d.ts.map +1 -0
- package/build-types/calendar/test/__utils__/index.d.ts +10 -0
- package/build-types/calendar/test/__utils__/index.d.ts.map +1 -0
- package/build-types/calendar/test/date-calendar.d.ts +2 -0
- package/build-types/calendar/test/date-calendar.d.ts.map +1 -0
- package/build-types/calendar/test/date-range-calendar.d.ts +2 -0
- package/build-types/calendar/test/date-range-calendar.d.ts.map +1 -0
- package/build-types/calendar/types.d.ts +317 -0
- package/build-types/calendar/types.d.ts.map +1 -0
- package/build-types/calendar/utils/constants.d.ts +52 -0
- package/build-types/calendar/utils/constants.d.ts.map +1 -0
- package/build-types/calendar/utils/day-cell.d.ts +21 -0
- package/build-types/calendar/utils/day-cell.d.ts.map +1 -0
- package/build-types/calendar/utils/misc.d.ts +2 -0
- package/build-types/calendar/utils/misc.d.ts.map +1 -0
- package/build-types/calendar/utils/use-controlled-value.d.ts +27 -0
- package/build-types/calendar/utils/use-controlled-value.d.ts.map +1 -0
- package/build-types/calendar/utils/use-localization-props.d.ts +64 -0
- package/build-types/calendar/utils/use-localization-props.d.ts.map +1 -0
- package/build-types/custom-gradient-picker/constants.d.ts +6 -3
- package/build-types/custom-gradient-picker/constants.d.ts.map +1 -1
- package/build-types/custom-select-control-v2/custom-select.d.ts.map +1 -1
- package/build-types/dimension-control/sizes.d.ts +15 -3
- package/build-types/dimension-control/sizes.d.ts.map +1 -1
- package/build-types/font-size-picker/constants.d.ts +2 -2
- package/build-types/font-size-picker/constants.d.ts.map +1 -1
- package/build-types/form-file-upload/index.d.ts.map +1 -1
- package/build-types/form-token-field/index.d.ts.map +1 -1
- package/build-types/index.d.ts +1 -0
- package/build-types/index.d.ts.map +1 -1
- package/build-types/popover/overlay-middlewares.d.ts +6 -1
- package/build-types/popover/overlay-middlewares.d.ts.map +1 -1
- package/package.json +21 -20
- package/src/box-control/input-control.tsx +14 -5
- package/src/calendar/date-calendar/README.md +250 -0
- package/src/calendar/date-calendar/index.tsx +55 -0
- package/src/calendar/date-range-calendar/README.md +287 -0
- package/src/calendar/date-range-calendar/index.tsx +203 -0
- package/src/calendar/index.tsx +3 -0
- package/src/calendar/stories/date-calendar.story.tsx +221 -0
- package/src/calendar/stories/date-range-calendar.story.tsx +230 -0
- package/src/calendar/style.scss +431 -0
- package/src/calendar/test/__utils__/index.ts +56 -0
- package/src/calendar/test/date-calendar.tsx +975 -0
- package/src/calendar/test/date-range-calendar.tsx +1701 -0
- package/src/calendar/types.ts +342 -0
- package/src/calendar/utils/constants.ts +62 -0
- package/src/calendar/utils/day-cell.tsx +133 -0
- package/src/calendar/utils/misc.ts +3 -0
- package/src/calendar/utils/use-controlled-value.ts +61 -0
- package/src/calendar/utils/use-localization-props.ts +169 -0
- package/src/circular-option-picker/stories/index.story.tsx +2 -2
- package/src/custom-gradient-picker/gradient-bar/control-points.tsx +1 -1
- package/src/custom-select-control-v2/custom-select.tsx +6 -3
- package/src/date-time/date/index.tsx +1 -1
- package/src/form-file-upload/index.tsx +6 -12
- package/src/form-token-field/index.tsx +12 -1
- package/src/form-token-field/token.tsx +1 -1
- package/src/index.ts +1 -0
- package/src/mobile/bottom-sheet/cell.native.js +2 -2
- package/src/mobile/image/index.native.js +1 -1
- package/src/mobile/link-picker/index.native.js +1 -1
- package/src/navigation/menu/menu-title-search.tsx +1 -1
- package/src/palette-edit/index.tsx +4 -4
- package/src/select-control/style.scss +0 -6
- package/src/style.scss +1 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_dateFns","require","_i18n","_icons","_date","_element","_useLilius","_styles","_utils","_button","_interopRequireDefault","_constants","_jsxRuntime","DatePicker","currentDate","onChange","events","isInvalidDate","onMonthPreviewed","startOfWeek","weekStartsOn","date","inputToDate","Date","calendar","viewing","setSelected","setViewing","isSelected","viewPreviousMonth","viewNextMonth","useLilius","selected","startOfDay","focusable","setFocusable","useState","isFocusWithinCalendar","setIsFocusWithinCalendar","prevCurrentDate","setPrevCurrentDate","jsxs","Wrapper","className","role","__","children","Navigator","jsx","default","icon","isRTL","arrowRight","arrowLeft","variant","onClick","subMonths","format","TIMEZONELESS_FORMAT","size","NavigatorHeading","level","dateI18n","getTimezoneOffset","addMonths","Calendar","onFocus","onBlur","map","day","DayOfWeek","toString","week","index","isSameMonth","Day","column","isFocusable","isEqual","isFocusAllowed","isToday","isSameDay","isInvalid","numEvents","filter","event","length","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","onKeyDown","nextFocusable","key","addDays","subWeeks","addWeeks","endOfWeek","preventDefault","ref","useRef","useEffect","current","focus","DayButton","__next40pxDefaultSize","disabled","tabIndex","getDayLabel","hasEvents","formats","getSettings","localizedDate","sprintf","_n","_default","exports"],"sources":["@wordpress/components/src/date-time/date/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tformat,\n\tisSameDay,\n\tsubMonths,\n\taddMonths,\n\tstartOfDay,\n\tisEqual,\n\taddDays,\n\tsubWeeks,\n\taddWeeks,\n\tisSameMonth,\n\tstartOfWeek,\n\tendOfWeek,\n} from 'date-fns';\nimport type { KeyboardEventHandler } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf, isRTL } from '@wordpress/i18n';\nimport { arrowLeft, arrowRight } from '@wordpress/icons';\nimport { dateI18n, getSettings } from '@wordpress/date';\nimport { useState, useRef, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useLilius } from './use-lilius';\nimport type { DatePickerProps } from '../types';\nimport {\n\tWrapper,\n\tNavigator,\n\tNavigatorHeading,\n\tCalendar,\n\tDayOfWeek,\n\tDayButton,\n} from './styles';\nimport { inputToDate } from '../utils';\nimport Button from '../../button';\nimport { TIMEZONELESS_FORMAT } from '../constants';\n\n/**\n * DatePicker is a React component that renders a calendar for date selection.\n *\n * ```jsx\n * import { DatePicker } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyDatePicker = () => {\n * const [ date, setDate ] = useState( new Date() );\n *\n * return (\n * <DatePicker\n * currentDate={ date }\n * onChange={ ( newDate ) => setDate( newDate ) }\n * />\n * );\n * };\n * ```\n */\nexport function DatePicker( {\n\tcurrentDate,\n\tonChange,\n\tevents = [],\n\tisInvalidDate,\n\tonMonthPreviewed,\n\tstartOfWeek: weekStartsOn = 0,\n}: DatePickerProps ) {\n\tconst date = currentDate ? inputToDate( currentDate ) : new Date();\n\n\tconst {\n\t\tcalendar,\n\t\tviewing,\n\t\tsetSelected,\n\t\tsetViewing,\n\t\tisSelected,\n\t\tviewPreviousMonth,\n\t\tviewNextMonth,\n\t} = useLilius( {\n\t\tselected: [ startOfDay( date ) ],\n\t\tviewing: startOfDay( date ),\n\t\tweekStartsOn,\n\t} );\n\n\t// Used to implement a roving tab index. Tracks the day that receives focus\n\t// when the user tabs into the calendar.\n\tconst [ focusable, setFocusable ] = useState( startOfDay( date ) );\n\n\t// Allows us to only programmatically focus() a day when focus was already\n\t// within the calendar. This stops us stealing focus from e.g. a TimePicker\n\t// input.\n\tconst [ isFocusWithinCalendar, setIsFocusWithinCalendar ] =\n\t\tuseState( false );\n\n\t// Update internal state when currentDate prop changes.\n\tconst [ prevCurrentDate, setPrevCurrentDate ] = useState( currentDate );\n\tif ( currentDate !== prevCurrentDate ) {\n\t\tsetPrevCurrentDate( currentDate );\n\t\tsetSelected( [ startOfDay( date ) ] );\n\t\tsetViewing( startOfDay( date ) );\n\t\tsetFocusable( startOfDay( date ) );\n\t}\n\n\treturn (\n\t\t<Wrapper\n\t\t\tclassName=\"components-datetime__date\"\n\t\t\trole=\"application\"\n\t\t\taria-label={ __( 'Calendar' ) }\n\t\t>\n\t\t\t<Navigator>\n\t\t\t\t<Button\n\t\t\t\t\ticon={ isRTL() ? arrowRight : arrowLeft }\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\taria-label={ __( 'View previous month' ) }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tviewPreviousMonth();\n\t\t\t\t\t\tsetFocusable( subMonths( focusable, 1 ) );\n\t\t\t\t\t\tonMonthPreviewed?.(\n\t\t\t\t\t\t\tformat(\n\t\t\t\t\t\t\t\tsubMonths( viewing, 1 ),\n\t\t\t\t\t\t\t\tTIMEZONELESS_FORMAT\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\tsize=\"compact\"\n\t\t\t\t/>\n\t\t\t\t<NavigatorHeading level={ 3 }>\n\t\t\t\t\t<strong>\n\t\t\t\t\t\t{ dateI18n(\n\t\t\t\t\t\t\t'F',\n\t\t\t\t\t\t\tviewing,\n\t\t\t\t\t\t\t-viewing.getTimezoneOffset()\n\t\t\t\t\t\t) }\n\t\t\t\t\t</strong>{ ' ' }\n\t\t\t\t\t{ dateI18n( 'Y', viewing, -viewing.getTimezoneOffset() ) }\n\t\t\t\t</NavigatorHeading>\n\t\t\t\t<Button\n\t\t\t\t\ticon={ isRTL() ? arrowLeft : arrowRight }\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\taria-label={ __( 'View next month' ) }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tviewNextMonth();\n\t\t\t\t\t\tsetFocusable( addMonths( focusable, 1 ) );\n\t\t\t\t\t\tonMonthPreviewed?.(\n\t\t\t\t\t\t\tformat(\n\t\t\t\t\t\t\t\taddMonths( viewing, 1 ),\n\t\t\t\t\t\t\t\tTIMEZONELESS_FORMAT\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\tsize=\"compact\"\n\t\t\t\t/>\n\t\t\t</Navigator>\n\t\t\t<Calendar\n\t\t\t\tonFocus={ () => setIsFocusWithinCalendar( true ) }\n\t\t\t\tonBlur={ () => setIsFocusWithinCalendar( false ) }\n\t\t\t>\n\t\t\t\t{ calendar[ 0 ][ 0 ].map( ( day ) => (\n\t\t\t\t\t<DayOfWeek key={ day.toString() }>\n\t\t\t\t\t\t{ dateI18n( 'D', day, -day.getTimezoneOffset() ) }\n\t\t\t\t\t</DayOfWeek>\n\t\t\t\t) ) }\n\t\t\t\t{ calendar[ 0 ].map( ( week ) =>\n\t\t\t\t\tweek.map( ( day, index ) => {\n\t\t\t\t\t\tif ( ! isSameMonth( day, viewing ) ) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Day\n\t\t\t\t\t\t\t\tkey={ day.toString() }\n\t\t\t\t\t\t\t\tday={ day }\n\t\t\t\t\t\t\t\tcolumn={ index + 1 }\n\t\t\t\t\t\t\t\tisSelected={ isSelected( day ) }\n\t\t\t\t\t\t\t\tisFocusable={ isEqual( day, focusable ) }\n\t\t\t\t\t\t\t\tisFocusAllowed={ isFocusWithinCalendar }\n\t\t\t\t\t\t\t\tisToday={ isSameDay( day, new Date() ) }\n\t\t\t\t\t\t\t\tisInvalid={\n\t\t\t\t\t\t\t\t\tisInvalidDate ? isInvalidDate( day ) : false\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tnumEvents={\n\t\t\t\t\t\t\t\t\tevents.filter( ( event ) =>\n\t\t\t\t\t\t\t\t\t\tisSameDay( event.date, day )\n\t\t\t\t\t\t\t\t\t).length\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetSelected( [ day ] );\n\t\t\t\t\t\t\t\t\tsetFocusable( day );\n\t\t\t\t\t\t\t\t\tonChange?.(\n\t\t\t\t\t\t\t\t\t\tformat(\n\t\t\t\t\t\t\t\t\t\t\t// Don't change the selected date's time fields.\n\t\t\t\t\t\t\t\t\t\t\tnew Date(\n\t\t\t\t\t\t\t\t\t\t\t\tday.getFullYear(),\n\t\t\t\t\t\t\t\t\t\t\t\tday.getMonth(),\n\t\t\t\t\t\t\t\t\t\t\t\tday.getDate(),\n\t\t\t\t\t\t\t\t\t\t\t\tdate.getHours(),\n\t\t\t\t\t\t\t\t\t\t\t\tdate.getMinutes(),\n\t\t\t\t\t\t\t\t\t\t\t\tdate.getSeconds(),\n\t\t\t\t\t\t\t\t\t\t\t\tdate.getMilliseconds()\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\tTIMEZONELESS_FORMAT\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\t\tlet nextFocusable;\n\t\t\t\t\t\t\t\t\tif ( event.key === 'ArrowLeft' ) {\n\t\t\t\t\t\t\t\t\t\tnextFocusable = addDays(\n\t\t\t\t\t\t\t\t\t\t\tday,\n\t\t\t\t\t\t\t\t\t\t\tisRTL() ? 1 : -1\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( event.key === 'ArrowRight' ) {\n\t\t\t\t\t\t\t\t\t\tnextFocusable = addDays(\n\t\t\t\t\t\t\t\t\t\t\tday,\n\t\t\t\t\t\t\t\t\t\t\tisRTL() ? -1 : 1\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( event.key === 'ArrowUp' ) {\n\t\t\t\t\t\t\t\t\t\tnextFocusable = subWeeks( day, 1 );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( event.key === 'ArrowDown' ) {\n\t\t\t\t\t\t\t\t\t\tnextFocusable = addWeeks( day, 1 );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( event.key === 'PageUp' ) {\n\t\t\t\t\t\t\t\t\t\tnextFocusable = subMonths( day, 1 );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( event.key === 'PageDown' ) {\n\t\t\t\t\t\t\t\t\t\tnextFocusable = addMonths( day, 1 );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( event.key === 'Home' ) {\n\t\t\t\t\t\t\t\t\t\tnextFocusable = startOfWeek( day );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( event.key === 'End' ) {\n\t\t\t\t\t\t\t\t\t\tnextFocusable = startOfDay(\n\t\t\t\t\t\t\t\t\t\t\tendOfWeek( day )\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( nextFocusable ) {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\tsetFocusable( nextFocusable );\n\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t! isSameMonth(\n\t\t\t\t\t\t\t\t\t\t\t\tnextFocusable,\n\t\t\t\t\t\t\t\t\t\t\t\tviewing\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewing( nextFocusable );\n\t\t\t\t\t\t\t\t\t\t\tonMonthPreviewed?.(\n\t\t\t\t\t\t\t\t\t\t\t\tformat(\n\t\t\t\t\t\t\t\t\t\t\t\t\tnextFocusable,\n\t\t\t\t\t\t\t\t\t\t\t\t\tTIMEZONELESS_FORMAT\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t) }\n\t\t\t</Calendar>\n\t\t</Wrapper>\n\t);\n}\n\ntype DayProps = {\n\tday: Date;\n\tcolumn: number;\n\tisSelected: boolean;\n\tisFocusable: boolean;\n\tisFocusAllowed: boolean;\n\tisToday: boolean;\n\tnumEvents: number;\n\tisInvalid: boolean;\n\tonClick: () => void;\n\tonKeyDown: KeyboardEventHandler;\n};\n\nfunction Day( {\n\tday,\n\tcolumn,\n\tisSelected,\n\tisFocusable,\n\tisFocusAllowed,\n\tisToday,\n\tisInvalid,\n\tnumEvents,\n\tonClick,\n\tonKeyDown,\n}: DayProps ) {\n\tconst ref = useRef< HTMLButtonElement >();\n\n\t// Focus the day when it becomes focusable, e.g. because an arrow key is\n\t// pressed. Only do this if focus is allowed - this stops us stealing focus\n\t// from e.g. a TimePicker input.\n\tuseEffect( () => {\n\t\tif ( ref.current && isFocusable && isFocusAllowed ) {\n\t\t\tref.current.focus();\n\t\t}\n\t\t// isFocusAllowed is not a dep as there is no point calling focus() on\n\t\t// an already focused element.\n\t}, [ isFocusable ] );\n\n\treturn (\n\t\t<DayButton\n\t\t\t__next40pxDefaultSize\n\t\t\tref={ ref }\n\t\t\tclassName=\"components-datetime__date__day\" // Unused, for backwards compatibility.\n\t\t\tdisabled={ isInvalid }\n\t\t\ttabIndex={ isFocusable ? 0 : -1 }\n\t\t\taria-label={ getDayLabel( day, isSelected, numEvents ) }\n\t\t\tcolumn={ column }\n\t\t\tisSelected={ isSelected }\n\t\t\tisToday={ isToday }\n\t\t\thasEvents={ numEvents > 0 }\n\t\t\tonClick={ onClick }\n\t\t\tonKeyDown={ onKeyDown }\n\t\t>\n\t\t\t{ dateI18n( 'j', day, -day.getTimezoneOffset() ) }\n\t\t</DayButton>\n\t);\n}\n\nfunction getDayLabel( date: Date, isSelected: boolean, numEvents: number ) {\n\tconst { formats } = getSettings();\n\tconst localizedDate = dateI18n(\n\t\tformats.date,\n\t\tdate,\n\t\t-date.getTimezoneOffset()\n\t);\n\tif ( isSelected && numEvents > 0 ) {\n\t\treturn sprintf(\n\t\t\t// translators: 1: The calendar date. 2: Number of events on the calendar date.\n\t\t\t_n(\n\t\t\t\t'%1$s. Selected. There is %2$d event',\n\t\t\t\t'%1$s. Selected. There are %2$d events',\n\t\t\t\tnumEvents\n\t\t\t),\n\t\t\tlocalizedDate,\n\t\t\tnumEvents\n\t\t);\n\t} else if ( isSelected ) {\n\t\treturn sprintf(\n\t\t\t// translators: %s: The calendar date.\n\t\t\t__( '%1$s. Selected' ),\n\t\t\tlocalizedDate\n\t\t);\n\t} else if ( numEvents > 0 ) {\n\t\treturn sprintf(\n\t\t\t// translators: 1: The calendar date. 2: Number of events on the calendar date.\n\t\t\t_n(\n\t\t\t\t'%1$s. There is %2$d event',\n\t\t\t\t'%1$s. There are %2$d events',\n\t\t\t\tnumEvents\n\t\t\t),\n\t\t\tlocalizedDate,\n\t\t\tnumEvents\n\t\t);\n\t}\n\treturn localizedDate;\n}\n\nexport default DatePicker;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_dateFns","require","_i18n","_icons","_date","_element","_useLilius","_styles","_utils","_button","_interopRequireDefault","_constants","_jsxRuntime","DatePicker","currentDate","onChange","events","isInvalidDate","onMonthPreviewed","startOfWeek","weekStartsOn","date","inputToDate","Date","calendar","viewing","setSelected","setViewing","isSelected","viewPreviousMonth","viewNextMonth","useLilius","selected","startOfDay","focusable","setFocusable","useState","isFocusWithinCalendar","setIsFocusWithinCalendar","prevCurrentDate","setPrevCurrentDate","jsxs","Wrapper","className","role","__","children","Navigator","jsx","default","icon","isRTL","arrowRight","arrowLeft","variant","onClick","subMonths","format","TIMEZONELESS_FORMAT","size","NavigatorHeading","level","dateI18n","getTimezoneOffset","addMonths","Calendar","onFocus","onBlur","map","day","DayOfWeek","toString","week","index","isSameMonth","Day","column","isFocusable","isEqual","isFocusAllowed","isToday","isSameDay","isInvalid","numEvents","filter","event","length","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","onKeyDown","nextFocusable","key","addDays","subWeeks","addWeeks","endOfWeek","preventDefault","ref","useRef","useEffect","current","focus","DayButton","__next40pxDefaultSize","disabled","tabIndex","getDayLabel","hasEvents","formats","getSettings","localizedDate","sprintf","_n","_default","exports"],"sources":["@wordpress/components/src/date-time/date/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tformat,\n\tisSameDay,\n\tsubMonths,\n\taddMonths,\n\tstartOfDay,\n\tisEqual,\n\taddDays,\n\tsubWeeks,\n\taddWeeks,\n\tisSameMonth,\n\tstartOfWeek,\n\tendOfWeek,\n} from 'date-fns';\nimport type { KeyboardEventHandler } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf, isRTL } from '@wordpress/i18n';\nimport { arrowLeft, arrowRight } from '@wordpress/icons';\nimport { dateI18n, getSettings } from '@wordpress/date';\nimport { useState, useRef, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useLilius } from './use-lilius';\nimport type { DatePickerProps } from '../types';\nimport {\n\tWrapper,\n\tNavigator,\n\tNavigatorHeading,\n\tCalendar,\n\tDayOfWeek,\n\tDayButton,\n} from './styles';\nimport { inputToDate } from '../utils';\nimport Button from '../../button';\nimport { TIMEZONELESS_FORMAT } from '../constants';\n\n/**\n * DatePicker is a React component that renders a calendar for date selection.\n *\n * ```jsx\n * import { DatePicker } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyDatePicker = () => {\n * const [ date, setDate ] = useState( new Date() );\n *\n * return (\n * <DatePicker\n * currentDate={ date }\n * onChange={ ( newDate ) => setDate( newDate ) }\n * />\n * );\n * };\n * ```\n */\nexport function DatePicker( {\n\tcurrentDate,\n\tonChange,\n\tevents = [],\n\tisInvalidDate,\n\tonMonthPreviewed,\n\tstartOfWeek: weekStartsOn = 0,\n}: DatePickerProps ) {\n\tconst date = currentDate ? inputToDate( currentDate ) : new Date();\n\n\tconst {\n\t\tcalendar,\n\t\tviewing,\n\t\tsetSelected,\n\t\tsetViewing,\n\t\tisSelected,\n\t\tviewPreviousMonth,\n\t\tviewNextMonth,\n\t} = useLilius( {\n\t\tselected: [ startOfDay( date ) ],\n\t\tviewing: startOfDay( date ),\n\t\tweekStartsOn,\n\t} );\n\n\t// Used to implement a roving tab index. Tracks the day that receives focus\n\t// when the user tabs into the calendar.\n\tconst [ focusable, setFocusable ] = useState( startOfDay( date ) );\n\n\t// Allows us to only programmatically focus() a day when focus was already\n\t// within the calendar. This stops us stealing focus from e.g. a TimePicker\n\t// input.\n\tconst [ isFocusWithinCalendar, setIsFocusWithinCalendar ] =\n\t\tuseState( false );\n\n\t// Update internal state when currentDate prop changes.\n\tconst [ prevCurrentDate, setPrevCurrentDate ] = useState( currentDate );\n\tif ( currentDate !== prevCurrentDate ) {\n\t\tsetPrevCurrentDate( currentDate );\n\t\tsetSelected( [ startOfDay( date ) ] );\n\t\tsetViewing( startOfDay( date ) );\n\t\tsetFocusable( startOfDay( date ) );\n\t}\n\n\treturn (\n\t\t<Wrapper\n\t\t\tclassName=\"components-datetime__date\"\n\t\t\trole=\"application\"\n\t\t\taria-label={ __( 'Calendar' ) }\n\t\t>\n\t\t\t<Navigator>\n\t\t\t\t<Button\n\t\t\t\t\ticon={ isRTL() ? arrowRight : arrowLeft }\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\taria-label={ __( 'View previous month' ) }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tviewPreviousMonth();\n\t\t\t\t\t\tsetFocusable( subMonths( focusable, 1 ) );\n\t\t\t\t\t\tonMonthPreviewed?.(\n\t\t\t\t\t\t\tformat(\n\t\t\t\t\t\t\t\tsubMonths( viewing, 1 ),\n\t\t\t\t\t\t\t\tTIMEZONELESS_FORMAT\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\tsize=\"compact\"\n\t\t\t\t/>\n\t\t\t\t<NavigatorHeading level={ 3 }>\n\t\t\t\t\t<strong>\n\t\t\t\t\t\t{ dateI18n(\n\t\t\t\t\t\t\t'F',\n\t\t\t\t\t\t\tviewing,\n\t\t\t\t\t\t\t-viewing.getTimezoneOffset()\n\t\t\t\t\t\t) }\n\t\t\t\t\t</strong>{ ' ' }\n\t\t\t\t\t{ dateI18n( 'Y', viewing, -viewing.getTimezoneOffset() ) }\n\t\t\t\t</NavigatorHeading>\n\t\t\t\t<Button\n\t\t\t\t\ticon={ isRTL() ? arrowLeft : arrowRight }\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\taria-label={ __( 'View next month' ) }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tviewNextMonth();\n\t\t\t\t\t\tsetFocusable( addMonths( focusable, 1 ) );\n\t\t\t\t\t\tonMonthPreviewed?.(\n\t\t\t\t\t\t\tformat(\n\t\t\t\t\t\t\t\taddMonths( viewing, 1 ),\n\t\t\t\t\t\t\t\tTIMEZONELESS_FORMAT\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\tsize=\"compact\"\n\t\t\t\t/>\n\t\t\t</Navigator>\n\t\t\t<Calendar\n\t\t\t\tonFocus={ () => setIsFocusWithinCalendar( true ) }\n\t\t\t\tonBlur={ () => setIsFocusWithinCalendar( false ) }\n\t\t\t>\n\t\t\t\t{ calendar[ 0 ][ 0 ].map( ( day ) => (\n\t\t\t\t\t<DayOfWeek key={ day.toString() }>\n\t\t\t\t\t\t{ dateI18n( 'D', day, -day.getTimezoneOffset() ) }\n\t\t\t\t\t</DayOfWeek>\n\t\t\t\t) ) }\n\t\t\t\t{ calendar[ 0 ].map( ( week ) =>\n\t\t\t\t\tweek.map( ( day, index ) => {\n\t\t\t\t\t\tif ( ! isSameMonth( day, viewing ) ) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Day\n\t\t\t\t\t\t\t\tkey={ day.toString() }\n\t\t\t\t\t\t\t\tday={ day }\n\t\t\t\t\t\t\t\tcolumn={ index + 1 }\n\t\t\t\t\t\t\t\tisSelected={ isSelected( day ) }\n\t\t\t\t\t\t\t\tisFocusable={ isEqual( day, focusable ) }\n\t\t\t\t\t\t\t\tisFocusAllowed={ isFocusWithinCalendar }\n\t\t\t\t\t\t\t\tisToday={ isSameDay( day, new Date() ) }\n\t\t\t\t\t\t\t\tisInvalid={\n\t\t\t\t\t\t\t\t\tisInvalidDate ? isInvalidDate( day ) : false\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tnumEvents={\n\t\t\t\t\t\t\t\t\tevents.filter( ( event ) =>\n\t\t\t\t\t\t\t\t\t\tisSameDay( event.date, day )\n\t\t\t\t\t\t\t\t\t).length\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetSelected( [ day ] );\n\t\t\t\t\t\t\t\t\tsetFocusable( day );\n\t\t\t\t\t\t\t\t\tonChange?.(\n\t\t\t\t\t\t\t\t\t\tformat(\n\t\t\t\t\t\t\t\t\t\t\t// Don't change the selected date's time fields.\n\t\t\t\t\t\t\t\t\t\t\tnew Date(\n\t\t\t\t\t\t\t\t\t\t\t\tday.getFullYear(),\n\t\t\t\t\t\t\t\t\t\t\t\tday.getMonth(),\n\t\t\t\t\t\t\t\t\t\t\t\tday.getDate(),\n\t\t\t\t\t\t\t\t\t\t\t\tdate.getHours(),\n\t\t\t\t\t\t\t\t\t\t\t\tdate.getMinutes(),\n\t\t\t\t\t\t\t\t\t\t\t\tdate.getSeconds(),\n\t\t\t\t\t\t\t\t\t\t\t\tdate.getMilliseconds()\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\tTIMEZONELESS_FORMAT\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\t\tlet nextFocusable;\n\t\t\t\t\t\t\t\t\tif ( event.key === 'ArrowLeft' ) {\n\t\t\t\t\t\t\t\t\t\tnextFocusable = addDays(\n\t\t\t\t\t\t\t\t\t\t\tday,\n\t\t\t\t\t\t\t\t\t\t\tisRTL() ? 1 : -1\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( event.key === 'ArrowRight' ) {\n\t\t\t\t\t\t\t\t\t\tnextFocusable = addDays(\n\t\t\t\t\t\t\t\t\t\t\tday,\n\t\t\t\t\t\t\t\t\t\t\tisRTL() ? -1 : 1\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( event.key === 'ArrowUp' ) {\n\t\t\t\t\t\t\t\t\t\tnextFocusable = subWeeks( day, 1 );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( event.key === 'ArrowDown' ) {\n\t\t\t\t\t\t\t\t\t\tnextFocusable = addWeeks( day, 1 );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( event.key === 'PageUp' ) {\n\t\t\t\t\t\t\t\t\t\tnextFocusable = subMonths( day, 1 );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( event.key === 'PageDown' ) {\n\t\t\t\t\t\t\t\t\t\tnextFocusable = addMonths( day, 1 );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( event.key === 'Home' ) {\n\t\t\t\t\t\t\t\t\t\tnextFocusable = startOfWeek( day );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( event.key === 'End' ) {\n\t\t\t\t\t\t\t\t\t\tnextFocusable = startOfDay(\n\t\t\t\t\t\t\t\t\t\t\tendOfWeek( day )\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( nextFocusable ) {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\tsetFocusable( nextFocusable );\n\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t! isSameMonth(\n\t\t\t\t\t\t\t\t\t\t\t\tnextFocusable,\n\t\t\t\t\t\t\t\t\t\t\t\tviewing\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewing( nextFocusable );\n\t\t\t\t\t\t\t\t\t\t\tonMonthPreviewed?.(\n\t\t\t\t\t\t\t\t\t\t\t\tformat(\n\t\t\t\t\t\t\t\t\t\t\t\t\tnextFocusable,\n\t\t\t\t\t\t\t\t\t\t\t\t\tTIMEZONELESS_FORMAT\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t) }\n\t\t\t</Calendar>\n\t\t</Wrapper>\n\t);\n}\n\ntype DayProps = {\n\tday: Date;\n\tcolumn: number;\n\tisSelected: boolean;\n\tisFocusable: boolean;\n\tisFocusAllowed: boolean;\n\tisToday: boolean;\n\tnumEvents: number;\n\tisInvalid: boolean;\n\tonClick: () => void;\n\tonKeyDown: KeyboardEventHandler;\n};\n\nfunction Day( {\n\tday,\n\tcolumn,\n\tisSelected,\n\tisFocusable,\n\tisFocusAllowed,\n\tisToday,\n\tisInvalid,\n\tnumEvents,\n\tonClick,\n\tonKeyDown,\n}: DayProps ) {\n\tconst ref = useRef< HTMLButtonElement >();\n\n\t// Focus the day when it becomes focusable, e.g. because an arrow key is\n\t// pressed. Only do this if focus is allowed - this stops us stealing focus\n\t// from e.g. a TimePicker input.\n\tuseEffect( () => {\n\t\tif ( ref.current && isFocusable && isFocusAllowed ) {\n\t\t\tref.current.focus();\n\t\t}\n\t\t// isFocusAllowed is not a dep as there is no point calling focus() on\n\t\t// an already focused element.\n\t}, [ isFocusable ] );\n\n\treturn (\n\t\t<DayButton\n\t\t\t__next40pxDefaultSize\n\t\t\tref={ ref }\n\t\t\tclassName=\"components-datetime__date__day\" // Unused, for backwards compatibility.\n\t\t\tdisabled={ isInvalid }\n\t\t\ttabIndex={ isFocusable ? 0 : -1 }\n\t\t\taria-label={ getDayLabel( day, isSelected, numEvents ) }\n\t\t\tcolumn={ column }\n\t\t\tisSelected={ isSelected }\n\t\t\tisToday={ isToday }\n\t\t\thasEvents={ numEvents > 0 }\n\t\t\tonClick={ onClick }\n\t\t\tonKeyDown={ onKeyDown }\n\t\t>\n\t\t\t{ dateI18n( 'j', day, -day.getTimezoneOffset() ) }\n\t\t</DayButton>\n\t);\n}\n\nfunction getDayLabel( date: Date, isSelected: boolean, numEvents: number ) {\n\tconst { formats } = getSettings();\n\tconst localizedDate = dateI18n(\n\t\tformats.date,\n\t\tdate,\n\t\t-date.getTimezoneOffset()\n\t);\n\tif ( isSelected && numEvents > 0 ) {\n\t\treturn sprintf(\n\t\t\t// translators: 1: The calendar date. 2: Number of events on the calendar date.\n\t\t\t_n(\n\t\t\t\t'%1$s. Selected. There is %2$d event',\n\t\t\t\t'%1$s. Selected. There are %2$d events',\n\t\t\t\tnumEvents\n\t\t\t),\n\t\t\tlocalizedDate,\n\t\t\tnumEvents\n\t\t);\n\t} else if ( isSelected ) {\n\t\treturn sprintf(\n\t\t\t// translators: 1: The calendar date.\n\t\t\t__( '%1$s. Selected' ),\n\t\t\tlocalizedDate\n\t\t);\n\t} else if ( numEvents > 0 ) {\n\t\treturn sprintf(\n\t\t\t// translators: 1: The calendar date. 2: Number of events on the calendar date.\n\t\t\t_n(\n\t\t\t\t'%1$s. There is %2$d event',\n\t\t\t\t'%1$s. There are %2$d events',\n\t\t\t\tnumEvents\n\t\t\t),\n\t\t\tlocalizedDate,\n\t\t\tnumEvents\n\t\t);\n\t}\n\treturn localizedDate;\n}\n\nexport default DatePicker;\n"],"mappings":";;;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AAmBA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAKA,IAAAK,UAAA,GAAAL,OAAA;AAEA,IAAAM,OAAA,GAAAN,OAAA;AAQA,IAAAO,MAAA,GAAAP,OAAA;AACA,IAAAQ,OAAA,GAAAC,sBAAA,CAAAT,OAAA;AACA,IAAAU,UAAA,GAAAV,OAAA;AAAmD,IAAAW,WAAA,GAAAX,OAAA;AA1CnD;AACA;AACA;;AAiBA;AACA;AACA;;AAMA;AACA;AACA;;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASY,UAAUA,CAAE;EAC3BC,WAAW;EACXC,QAAQ;EACRC,MAAM,GAAG,EAAE;EACXC,aAAa;EACbC,gBAAgB;EAChBC,WAAW,EAAEC,YAAY,GAAG;AACZ,CAAC,EAAG;EACpB,MAAMC,IAAI,GAAGP,WAAW,GAAG,IAAAQ,kBAAW,EAAER,WAAY,CAAC,GAAG,IAAIS,IAAI,CAAC,CAAC;EAElE,MAAM;IACLC,QAAQ;IACRC,OAAO;IACPC,WAAW;IACXC,UAAU;IACVC,UAAU;IACVC,iBAAiB;IACjBC;EACD,CAAC,GAAG,IAAAC,oBAAS,EAAE;IACdC,QAAQ,EAAE,CAAE,IAAAC,mBAAU,EAAEZ,IAAK,CAAC,CAAE;IAChCI,OAAO,EAAE,IAAAQ,mBAAU,EAAEZ,IAAK,CAAC;IAC3BD;EACD,CAAE,CAAC;;EAEH;EACA;EACA,MAAM,CAAEc,SAAS,EAAEC,YAAY,CAAE,GAAG,IAAAC,iBAAQ,EAAE,IAAAH,mBAAU,EAAEZ,IAAK,CAAE,CAAC;;EAElE;EACA;EACA;EACA,MAAM,CAAEgB,qBAAqB,EAAEC,wBAAwB,CAAE,GACxD,IAAAF,iBAAQ,EAAE,KAAM,CAAC;;EAElB;EACA,MAAM,CAAEG,eAAe,EAAEC,kBAAkB,CAAE,GAAG,IAAAJ,iBAAQ,EAAEtB,WAAY,CAAC;EACvE,IAAKA,WAAW,KAAKyB,eAAe,EAAG;IACtCC,kBAAkB,CAAE1B,WAAY,CAAC;IACjCY,WAAW,CAAE,CAAE,IAAAO,mBAAU,EAAEZ,IAAK,CAAC,CAAG,CAAC;IACrCM,UAAU,CAAE,IAAAM,mBAAU,EAAEZ,IAAK,CAAE,CAAC;IAChCc,YAAY,CAAE,IAAAF,mBAAU,EAAEZ,IAAK,CAAE,CAAC;EACnC;EAEA,oBACC,IAAAT,WAAA,CAAA6B,IAAA,EAAClC,OAAA,CAAAmC,OAAO;IACPC,SAAS,EAAC,2BAA2B;IACrCC,IAAI,EAAC,aAAa;IAClB,cAAa,IAAAC,QAAE,EAAE,UAAW,CAAG;IAAAC,QAAA,gBAE/B,IAAAlC,WAAA,CAAA6B,IAAA,EAAClC,OAAA,CAAAwC,SAAS;MAAAD,QAAA,gBACT,IAAAlC,WAAA,CAAAoC,GAAA,EAACvC,OAAA,CAAAwC,OAAM;QACNC,IAAI,EAAG,IAAAC,WAAK,EAAC,CAAC,GAAGC,iBAAU,GAAGC,gBAAW;QACzCC,OAAO,EAAC,UAAU;QAClB,cAAa,IAAAT,QAAE,EAAE,qBAAsB,CAAG;QAC1CU,OAAO,EAAGA,CAAA,KAAM;UACf1B,iBAAiB,CAAC,CAAC;UACnBM,YAAY,CAAE,IAAAqB,kBAAS,EAAEtB,SAAS,EAAE,CAAE,CAAE,CAAC;UACzChB,gBAAgB,GACf,IAAAuC,eAAM,EACL,IAAAD,kBAAS,EAAE/B,OAAO,EAAE,CAAE,CAAC,EACvBiC,8BACD,CACD,CAAC;QACF,CAAG;QACHC,IAAI,EAAC;MAAS,CACd,CAAC,eACF,IAAA/C,WAAA,CAAA6B,IAAA,EAAClC,OAAA,CAAAqD,gBAAgB;QAACC,KAAK,EAAG,CAAG;QAAAf,QAAA,gBAC5B,IAAAlC,WAAA,CAAAoC,GAAA;UAAAF,QAAA,EACG,IAAAgB,cAAQ,EACT,GAAG,EACHrC,OAAO,EACP,CAACA,OAAO,CAACsC,iBAAiB,CAAC,CAC5B;QAAC,CACM,CAAC,EAAE,GAAG,EACZ,IAAAD,cAAQ,EAAE,GAAG,EAAErC,OAAO,EAAE,CAACA,OAAO,CAACsC,iBAAiB,CAAC,CAAE,CAAC;MAAA,CACvC,CAAC,eACnB,IAAAnD,WAAA,CAAAoC,GAAA,EAACvC,OAAA,CAAAwC,OAAM;QACNC,IAAI,EAAG,IAAAC,WAAK,EAAC,CAAC,GAAGE,gBAAS,GAAGD,iBAAY;QACzCE,OAAO,EAAC,UAAU;QAClB,cAAa,IAAAT,QAAE,EAAE,iBAAkB,CAAG;QACtCU,OAAO,EAAGA,CAAA,KAAM;UACfzB,aAAa,CAAC,CAAC;UACfK,YAAY,CAAE,IAAA6B,kBAAS,EAAE9B,SAAS,EAAE,CAAE,CAAE,CAAC;UACzChB,gBAAgB,GACf,IAAAuC,eAAM,EACL,IAAAO,kBAAS,EAAEvC,OAAO,EAAE,CAAE,CAAC,EACvBiC,8BACD,CACD,CAAC;QACF,CAAG;QACHC,IAAI,EAAC;MAAS,CACd,CAAC;IAAA,CACQ,CAAC,eACZ,IAAA/C,WAAA,CAAA6B,IAAA,EAAClC,OAAA,CAAA0D,QAAQ;MACRC,OAAO,EAAGA,CAAA,KAAM5B,wBAAwB,CAAE,IAAK,CAAG;MAClD6B,MAAM,EAAGA,CAAA,KAAM7B,wBAAwB,CAAE,KAAM,CAAG;MAAAQ,QAAA,GAEhDtB,QAAQ,CAAE,CAAC,CAAE,CAAE,CAAC,CAAE,CAAC4C,GAAG,CAAIC,GAAG,iBAC9B,IAAAzD,WAAA,CAAAoC,GAAA,EAACzC,OAAA,CAAA+D,SAAS;QAAAxB,QAAA,EACP,IAAAgB,cAAQ,EAAE,GAAG,EAAEO,GAAG,EAAE,CAACA,GAAG,CAACN,iBAAiB,CAAC,CAAE;MAAC,GADhCM,GAAG,CAACE,QAAQ,CAAC,CAEnB,CACV,CAAC,EACD/C,QAAQ,CAAE,CAAC,CAAE,CAAC4C,GAAG,CAAII,IAAI,IAC1BA,IAAI,CAACJ,GAAG,CAAE,CAAEC,GAAG,EAAEI,KAAK,KAAM;QAC3B,IAAK,CAAE,IAAAC,oBAAW,EAAEL,GAAG,EAAE5C,OAAQ,CAAC,EAAG;UACpC,OAAO,IAAI;QACZ;QACA,oBACC,IAAAb,WAAA,CAAAoC,GAAA,EAAC2B,GAAG;UAEHN,GAAG,EAAGA,GAAK;UACXO,MAAM,EAAGH,KAAK,GAAG,CAAG;UACpB7C,UAAU,EAAGA,UAAU,CAAEyC,GAAI,CAAG;UAChCQ,WAAW,EAAG,IAAAC,gBAAO,EAAET,GAAG,EAAEnC,SAAU,CAAG;UACzC6C,cAAc,EAAG1C,qBAAuB;UACxC2C,OAAO,EAAG,IAAAC,kBAAS,EAAEZ,GAAG,EAAE,IAAI9C,IAAI,CAAC,CAAE,CAAG;UACxC2D,SAAS,EACRjE,aAAa,GAAGA,aAAa,CAAEoD,GAAI,CAAC,GAAG,KACvC;UACDc,SAAS,EACRnE,MAAM,CAACoE,MAAM,CAAIC,KAAK,IACrB,IAAAJ,kBAAS,EAAEI,KAAK,CAAChE,IAAI,EAAEgD,GAAI,CAC5B,CAAC,CAACiB,MACF;UACD/B,OAAO,EAAGA,CAAA,KAAM;YACf7B,WAAW,CAAE,CAAE2C,GAAG,CAAG,CAAC;YACtBlC,YAAY,CAAEkC,GAAI,CAAC;YACnBtD,QAAQ,GACP,IAAA0C,eAAM;YACL;YACA,IAAIlC,IAAI,CACP8C,GAAG,CAACkB,WAAW,CAAC,CAAC,EACjBlB,GAAG,CAACmB,QAAQ,CAAC,CAAC,EACdnB,GAAG,CAACoB,OAAO,CAAC,CAAC,EACbpE,IAAI,CAACqE,QAAQ,CAAC,CAAC,EACfrE,IAAI,CAACsE,UAAU,CAAC,CAAC,EACjBtE,IAAI,CAACuE,UAAU,CAAC,CAAC,EACjBvE,IAAI,CAACwE,eAAe,CAAC,CACtB,CAAC,EACDnC,8BACD,CACD,CAAC;UACF,CAAG;UACHoC,SAAS,EAAKT,KAAK,IAAM;YACxB,IAAIU,aAAa;YACjB,IAAKV,KAAK,CAACW,GAAG,KAAK,WAAW,EAAG;cAChCD,aAAa,GAAG,IAAAE,gBAAO,EACtB5B,GAAG,EACH,IAAAlB,WAAK,EAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAChB,CAAC;YACF;YACA,IAAKkC,KAAK,CAACW,GAAG,KAAK,YAAY,EAAG;cACjCD,aAAa,GAAG,IAAAE,gBAAO,EACtB5B,GAAG,EACH,IAAAlB,WAAK,EAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAChB,CAAC;YACF;YACA,IAAKkC,KAAK,CAACW,GAAG,KAAK,SAAS,EAAG;cAC9BD,aAAa,GAAG,IAAAG,iBAAQ,EAAE7B,GAAG,EAAE,CAAE,CAAC;YACnC;YACA,IAAKgB,KAAK,CAACW,GAAG,KAAK,WAAW,EAAG;cAChCD,aAAa,GAAG,IAAAI,iBAAQ,EAAE9B,GAAG,EAAE,CAAE,CAAC;YACnC;YACA,IAAKgB,KAAK,CAACW,GAAG,KAAK,QAAQ,EAAG;cAC7BD,aAAa,GAAG,IAAAvC,kBAAS,EAAEa,GAAG,EAAE,CAAE,CAAC;YACpC;YACA,IAAKgB,KAAK,CAACW,GAAG,KAAK,UAAU,EAAG;cAC/BD,aAAa,GAAG,IAAA/B,kBAAS,EAAEK,GAAG,EAAE,CAAE,CAAC;YACpC;YACA,IAAKgB,KAAK,CAACW,GAAG,KAAK,MAAM,EAAG;cAC3BD,aAAa,GAAG,IAAA5E,oBAAW,EAAEkD,GAAI,CAAC;YACnC;YACA,IAAKgB,KAAK,CAACW,GAAG,KAAK,KAAK,EAAG;cAC1BD,aAAa,GAAG,IAAA9D,mBAAU,EACzB,IAAAmE,kBAAS,EAAE/B,GAAI,CAChB,CAAC;YACF;YACA,IAAK0B,aAAa,EAAG;cACpBV,KAAK,CAACgB,cAAc,CAAC,CAAC;cACtBlE,YAAY,CAAE4D,aAAc,CAAC;cAC7B,IACC,CAAE,IAAArB,oBAAW,EACZqB,aAAa,EACbtE,OACD,CAAC,EACA;gBACDE,UAAU,CAAEoE,aAAc,CAAC;gBAC3B7E,gBAAgB,GACf,IAAAuC,eAAM,EACLsC,aAAa,EACbrC,8BACD,CACD,CAAC;cACF;YACD;UACD;QAAG,GAtFGW,GAAG,CAACE,QAAQ,CAAC,CAuFnB,CAAC;MAEJ,CAAE,CACH,CAAC;IAAA,CACQ,CAAC;EAAA,CACH,CAAC;AAEZ;AAeA,SAASI,GAAGA,CAAE;EACbN,GAAG;EACHO,MAAM;EACNhD,UAAU;EACViD,WAAW;EACXE,cAAc;EACdC,OAAO;EACPE,SAAS;EACTC,SAAS;EACT5B,OAAO;EACPuC;AACS,CAAC,EAAG;EACb,MAAMQ,GAAG,GAAG,IAAAC,eAAM,EAAsB,CAAC;;EAEzC;EACA;EACA;EACA,IAAAC,kBAAS,EAAE,MAAM;IAChB,IAAKF,GAAG,CAACG,OAAO,IAAI5B,WAAW,IAAIE,cAAc,EAAG;MACnDuB,GAAG,CAACG,OAAO,CAACC,KAAK,CAAC,CAAC;IACpB;IACA;IACA;EACD,CAAC,EAAE,CAAE7B,WAAW,CAAG,CAAC;EAEpB,oBACC,IAAAjE,WAAA,CAAAoC,GAAA,EAACzC,OAAA,CAAAoG,SAAS;IACTC,qBAAqB;IACrBN,GAAG,EAAGA,GAAK;IACX3D,SAAS,EAAC,gCAAgC,CAAC;IAAA;IAC3CkE,QAAQ,EAAG3B,SAAW;IACtB4B,QAAQ,EAAGjC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAG;IACjC,cAAakC,WAAW,CAAE1C,GAAG,EAAEzC,UAAU,EAAEuD,SAAU,CAAG;IACxDP,MAAM,EAAGA,MAAQ;IACjBhD,UAAU,EAAGA,UAAY;IACzBoD,OAAO,EAAGA,OAAS;IACnBgC,SAAS,EAAG7B,SAAS,GAAG,CAAG;IAC3B5B,OAAO,EAAGA,OAAS;IACnBuC,SAAS,EAAGA,SAAW;IAAAhD,QAAA,EAErB,IAAAgB,cAAQ,EAAE,GAAG,EAAEO,GAAG,EAAE,CAACA,GAAG,CAACN,iBAAiB,CAAC,CAAE;EAAC,CACtC,CAAC;AAEd;AAEA,SAASgD,WAAWA,CAAE1F,IAAU,EAAEO,UAAmB,EAAEuD,SAAiB,EAAG;EAC1E,MAAM;IAAE8B;EAAQ,CAAC,GAAG,IAAAC,iBAAW,EAAC,CAAC;EACjC,MAAMC,aAAa,GAAG,IAAArD,cAAQ,EAC7BmD,OAAO,CAAC5F,IAAI,EACZA,IAAI,EACJ,CAACA,IAAI,CAAC0C,iBAAiB,CAAC,CACzB,CAAC;EACD,IAAKnC,UAAU,IAAIuD,SAAS,GAAG,CAAC,EAAG;IAClC,OAAO,IAAAiC,aAAO;IACb;IACA,IAAAC,QAAE,EACD,qCAAqC,EACrC,uCAAuC,EACvClC,SACD,CAAC,EACDgC,aAAa,EACbhC,SACD,CAAC;EACF,CAAC,MAAM,IAAKvD,UAAU,EAAG;IACxB,OAAO,IAAAwF,aAAO;IACb;IACA,IAAAvE,QAAE,EAAE,gBAAiB,CAAC,EACtBsE,aACD,CAAC;EACF,CAAC,MAAM,IAAKhC,SAAS,GAAG,CAAC,EAAG;IAC3B,OAAO,IAAAiC,aAAO;IACb;IACA,IAAAC,QAAE,EACD,2BAA2B,EAC3B,6BAA6B,EAC7BlC,SACD,CAAC,EACDgC,aAAa,EACbhC,SACD,CAAC;EACF;EACA,OAAOgC,aAAa;AACrB;AAAC,IAAAG,QAAA,GAAAC,OAAA,CAAAtE,OAAA,GAEcpC,UAAU","ignoreList":[]}
|
|
@@ -63,12 +63,10 @@ function FormFileUpload({
|
|
|
63
63
|
...props,
|
|
64
64
|
children: children
|
|
65
65
|
});
|
|
66
|
-
|
|
67
|
-
//
|
|
68
|
-
//
|
|
69
|
-
|
|
70
|
-
const isSafari = globalThis.window?.navigator.userAgent.includes('Safari') && !globalThis.window?.navigator.userAgent.includes('Chrome') && !globalThis.window?.navigator.userAgent.includes('Chromium');
|
|
71
|
-
const compatAccept = !isSafari && !!accept?.includes('image/*') ? `${accept}, image/heic, image/heif` : accept;
|
|
66
|
+
|
|
67
|
+
// iOS browsers may not reliably handle 'audio/*' in the accept attribute.
|
|
68
|
+
// Adding explicit audio MIME types improves compatibility across all devices.
|
|
69
|
+
const compatAccept = accept?.includes('audio/*') ? `${accept}, audio/mp3, audio/x-m4a, audio/x-m4b, audio/x-m4p, audio/x-wav, audio/webm` : accept;
|
|
72
70
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
73
71
|
className: "components-form-file-upload",
|
|
74
72
|
children: [ui, /*#__PURE__*/(0, _jsxRuntime.jsx)("input", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_button","_interopRequireDefault","_deprecated36pxSize","_jsxRuntime","FormFileUpload","accept","children","multiple","onChange","onClick","render","props","ref","useRef","openFileDialog","current","click","maybeWarnDeprecated36pxSize","componentName","__next40pxDefaultSize","size","ui","jsx","default","
|
|
1
|
+
{"version":3,"names":["_element","require","_button","_interopRequireDefault","_deprecated36pxSize","_jsxRuntime","FormFileUpload","accept","children","multiple","onChange","onClick","render","props","ref","useRef","openFileDialog","current","click","maybeWarnDeprecated36pxSize","componentName","__next40pxDefaultSize","size","ui","jsx","default","compatAccept","includes","jsxs","className","type","style","display","_default","exports"],"sources":["@wordpress/components/src/form-file-upload/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport type { WordPressComponentProps } from '../context';\nimport type { FormFileUploadProps } from './types';\nimport { maybeWarnDeprecated36pxSize } from '../utils/deprecated-36px-size';\n\n/**\n * FormFileUpload allows users to select files from their local device.\n *\n * ```jsx\n * import { FormFileUpload } from '@wordpress/components';\n *\n * const MyFormFileUpload = () => (\n * <FormFileUpload\n * __next40pxDefaultSize\n * accept=\"image/*\"\n * onChange={ ( event ) => console.log( event.currentTarget.files ) }\n * >\n * Upload\n * </FormFileUpload>\n * );\n * ```\n */\nexport function FormFileUpload( {\n\taccept,\n\tchildren,\n\tmultiple = false,\n\tonChange,\n\tonClick,\n\trender,\n\t...props\n}: WordPressComponentProps< FormFileUploadProps, 'button', false > ) {\n\tconst ref = useRef< HTMLInputElement >( null );\n\tconst openFileDialog = () => {\n\t\tref.current?.click();\n\t};\n\n\tif ( ! render ) {\n\t\tmaybeWarnDeprecated36pxSize( {\n\t\t\tcomponentName: 'FormFileUpload',\n\t\t\t__next40pxDefaultSize: props.__next40pxDefaultSize,\n\t\t\t// @ts-expect-error - We don't \"officially\" support all Button props but this likely happens.\n\t\t\tsize: props.size,\n\t\t} );\n\t}\n\n\tconst ui = render ? (\n\t\trender( { openFileDialog } )\n\t) : (\n\t\t<Button onClick={ openFileDialog } { ...props }>\n\t\t\t{ children }\n\t\t</Button>\n\t);\n\n\t// iOS browsers may not reliably handle 'audio/*' in the accept attribute.\n\t// Adding explicit audio MIME types improves compatibility across all devices.\n\tconst compatAccept = accept?.includes( 'audio/*' )\n\t\t? `${ accept }, audio/mp3, audio/x-m4a, audio/x-m4b, audio/x-m4p, audio/x-wav, audio/webm`\n\t\t: accept;\n\n\treturn (\n\t\t<div className=\"components-form-file-upload\">\n\t\t\t{ ui }\n\t\t\t<input\n\t\t\t\ttype=\"file\"\n\t\t\t\tref={ ref }\n\t\t\t\tmultiple={ multiple }\n\t\t\t\tstyle={ { display: 'none' } }\n\t\t\t\taccept={ compatAccept }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tdata-testid=\"form-file-upload-input\"\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nexport default FormFileUpload;\n"],"mappings":";;;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AAKA,IAAAC,OAAA,GAAAC,sBAAA,CAAAF,OAAA;AAGA,IAAAG,mBAAA,GAAAH,OAAA;AAA4E,IAAAI,WAAA,GAAAJ,OAAA;AAX5E;AACA;AACA;;AAGA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASK,cAAcA,CAAE;EAC/BC,MAAM;EACNC,QAAQ;EACRC,QAAQ,GAAG,KAAK;EAChBC,QAAQ;EACRC,OAAO;EACPC,MAAM;EACN,GAAGC;AAC6D,CAAC,EAAG;EACpE,MAAMC,GAAG,GAAG,IAAAC,eAAM,EAAsB,IAAK,CAAC;EAC9C,MAAMC,cAAc,GAAGA,CAAA,KAAM;IAC5BF,GAAG,CAACG,OAAO,EAAEC,KAAK,CAAC,CAAC;EACrB,CAAC;EAED,IAAK,CAAEN,MAAM,EAAG;IACf,IAAAO,+CAA2B,EAAE;MAC5BC,aAAa,EAAE,gBAAgB;MAC/BC,qBAAqB,EAAER,KAAK,CAACQ,qBAAqB;MAClD;MACAC,IAAI,EAAET,KAAK,CAACS;IACb,CAAE,CAAC;EACJ;EAEA,MAAMC,EAAE,GAAGX,MAAM,GAChBA,MAAM,CAAE;IAAEI;EAAe,CAAE,CAAC,gBAE5B,IAAAX,WAAA,CAAAmB,GAAA,EAACtB,OAAA,CAAAuB,OAAM;IAACd,OAAO,EAAGK,cAAgB;IAAA,GAAMH,KAAK;IAAAL,QAAA,EAC1CA;EAAQ,CACH,CACR;;EAED;EACA;EACA,MAAMkB,YAAY,GAAGnB,MAAM,EAAEoB,QAAQ,CAAE,SAAU,CAAC,GAC/C,GAAIpB,MAAM,6EAA8E,GACxFA,MAAM;EAET,oBACC,IAAAF,WAAA,CAAAuB,IAAA;IAAKC,SAAS,EAAC,6BAA6B;IAAArB,QAAA,GACzCe,EAAE,eACJ,IAAAlB,WAAA,CAAAmB,GAAA;MACCM,IAAI,EAAC,MAAM;MACXhB,GAAG,EAAGA,GAAK;MACXL,QAAQ,EAAGA,QAAU;MACrBsB,KAAK,EAAG;QAAEC,OAAO,EAAE;MAAO,CAAG;MAC7BzB,MAAM,EAAGmB,YAAc;MACvBhB,QAAQ,EAAGA,QAAU;MACrBC,OAAO,EAAGA,OAAS;MACnB,eAAY;IAAwB,CACpC,CAAC;EAAA,CACE,CAAC;AAER;AAAC,IAAAsB,QAAA,GAAAC,OAAA,CAAAT,OAAA,GAEcnB,cAAc","ignoreList":[]}
|
|
@@ -215,6 +215,9 @@ function FormTokenField(props) {
|
|
|
215
215
|
case 'Escape':
|
|
216
216
|
preventDefault = handleEscapeKey(event);
|
|
217
217
|
break;
|
|
218
|
+
case 'Tab':
|
|
219
|
+
preventDefault = handleTabKey(event);
|
|
220
|
+
break;
|
|
218
221
|
default:
|
|
219
222
|
break;
|
|
220
223
|
}
|
|
@@ -305,15 +308,22 @@ function FormTokenField(props) {
|
|
|
305
308
|
setSelectedSuggestionScroll(true);
|
|
306
309
|
return true; // PreventDefault.
|
|
307
310
|
}
|
|
308
|
-
function
|
|
311
|
+
function collapseSuggestionsList(event) {
|
|
309
312
|
if (event.target instanceof HTMLInputElement) {
|
|
310
313
|
setIncompleteTokenValue(event.target.value);
|
|
311
314
|
setIsExpanded(false);
|
|
312
315
|
setSelectedSuggestionIndex(-1);
|
|
313
316
|
setSelectedSuggestionScroll(false);
|
|
314
317
|
}
|
|
318
|
+
}
|
|
319
|
+
function handleEscapeKey(event) {
|
|
320
|
+
collapseSuggestionsList(event);
|
|
315
321
|
return true; // PreventDefault.
|
|
316
322
|
}
|
|
323
|
+
function handleTabKey(event) {
|
|
324
|
+
collapseSuggestionsList(event);
|
|
325
|
+
return false; // Do not prevent the default behavior.
|
|
326
|
+
}
|
|
317
327
|
function handleCommaKey() {
|
|
318
328
|
if (inputHasValidValue()) {
|
|
319
329
|
addNewToken(incompleteTokenValue);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_i18n","_compose","_a11y","_isShallowEqual","_deprecated","_token","_tokenInput","_styles","_suggestionsList","_flex","_baseControlStyles","_spacer","_useDeprecatedProps","_withIgnoreImeEvents","_deprecated36pxSize","_jsxRuntime","identity","value","FormTokenField","props","autoCapitalize","autoComplete","maxLength","placeholder","label","__","className","suggestions","maxSuggestions","displayTransform","saveTransform","token","trim","onChange","onInputChange","onFocus","undefined","isBorderless","disabled","tokenizeOnSpace","messages","added","removed","remove","__experimentalInvalid","__experimentalRenderItem","__experimentalExpandOnFocus","__experimentalValidateInput","__experimentalShowHowTo","__next40pxDefaultSize","__experimentalAutoSelectFirstMatch","__nextHasNoMarginBottom","tokenizeOnBlur","useDeprecated36pxDefaultSizeProp","deprecated","since","version","hint","maybeWarnDeprecated36pxSize","componentName","size","instanceId","useInstanceId","incompleteTokenValue","setIncompleteTokenValue","useState","inputOffsetFromEnd","setInputOffsetFromEnd","isActive","setIsActive","isExpanded","setIsExpanded","selectedSuggestionIndex","setSelectedSuggestionIndex","selectedSuggestionScroll","setSelectedSuggestionScroll","prevSuggestions","usePrevious","prevValue","input","useRef","tokensAndInput","debouncedSpeak","useDebounce","speak","useEffect","hasFocus","focus","suggestionsDidUpdate","isShallowEqual","updateSuggestions","current","ownerDocument","activeElement","onFocusHandler","event","target","onBlur","inputHasValidValue","addNewToken","hasFocusWithin","relatedTarget","onKeyDown","preventDefault","defaultPrevented","key","handleDeleteKey","deleteTokenBeforeInput","addCurrentToken","handleLeftArrowKey","handleUpArrowKey","handleRightArrowKey","handleDownArrowKey","deleteTokenAfterInput","handleEscapeKey","onKeyPress","handleCommaKey","onContainerTouched","onTokenClickRemove","deleteToken","onSuggestionHovered","suggestion","index","getMatchingSuggestions","indexOf","onSuggestionSelected","onInputChangeHandler","text","separator","items","split","tokenValue","length","addNewTokens","slice","_deleteToken","isInputEmpty","moveInputBeforePreviousToken","moveInputAfterNextToken","HTMLInputElement","moveInputToIndex","Math","max","prevInputOffsetFromEnd","min","getIndexOfInput","selectedSuggestion","getSelectedSuggestion","tokens","tokensToAdd","Set","map","filter","Boolean","valueContainsToken","newValue","splice","newTokens","item","getTokenValue","searchValue","_suggestions","_value","_maxSuggestions","_saveTransform","match","startsWithMatch","containsMatch","normalizedValue","includes","normalize","toLocaleLowerCase","forEach","push","concat","some","resetSelectedSuggestion","inputHasMinimumChars","matchingSuggestions","hasMatchingSuggestions","shouldExpandIfFocuses","message","sprintf","_n","renderTokensAndInput","components","renderToken","renderInput","status","termPosition","termsCount","jsx","FlexItem","children","default","title","onClickRemove","onMouseEnter","onMouseLeave","inputProps","ref","classes","clsx","tokenFieldProps","tabIndex","Object","assign","withIgnoreIMEEvents","jsxs","StyledLabel","htmlFor","onMouseDown","onTouchStart","TokensAndInputWrapperFlex","justify","align","gap","wrap","hasTokens","selectedIndex","scrollIntoView","onHover","onSelect","Spacer","marginBottom","StyledHelp","id","_default","exports"],"sources":["@wordpress/components/src/form-token-field/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport type { KeyboardEvent, MouseEvent, TouchEvent, FocusEvent } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { useDebounce, useInstanceId, usePrevious } from '@wordpress/compose';\nimport { speak } from '@wordpress/a11y';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport Token from './token';\nimport TokenInput from './token-input';\nimport { TokensAndInputWrapperFlex } from './styles';\nimport SuggestionsList from './suggestions-list';\nimport type { FormTokenFieldProps, TokenItem } from './types';\nimport { FlexItem } from '../flex';\nimport {\n\tStyledHelp,\n\tStyledLabel,\n} from '../base-control/styles/base-control-styles';\nimport { Spacer } from '../spacer';\nimport { useDeprecated36pxDefaultSizeProp } from '../utils/use-deprecated-props';\nimport { withIgnoreIMEEvents } from '../utils/with-ignore-ime-events';\nimport { maybeWarnDeprecated36pxSize } from '../utils/deprecated-36px-size';\n\nconst identity = ( value: string ) => value;\n\n/**\n * A `FormTokenField` is a field similar to the tags and categories fields in the interim editor chrome,\n * or the \"to\" field in Mail on OS X. Tokens can be entered by typing them or selecting them from a list of suggested tokens.\n *\n * Up to one hundred suggestions that match what the user has typed so far will be shown from which the user can pick from (auto-complete).\n * Tokens are separated by the \",\" character. Suggestions can be selected with the up or down arrows and added with the tab or enter key.\n *\n * The `value` property is handled in a manner similar to controlled form components.\n * See [Forms](https://react.dev/reference/react-dom/components#form-components) in the React Documentation for more information.\n */\nexport function FormTokenField( props: FormTokenFieldProps ) {\n\tconst {\n\t\tautoCapitalize,\n\t\tautoComplete,\n\t\tmaxLength,\n\t\tplaceholder,\n\t\tlabel = __( 'Add item' ),\n\t\tclassName,\n\t\tsuggestions = [],\n\t\tmaxSuggestions = 100,\n\t\tvalue = [],\n\t\tdisplayTransform = identity,\n\t\tsaveTransform = ( token ) => token.trim(),\n\t\tonChange = () => {},\n\t\tonInputChange = () => {},\n\t\tonFocus = undefined,\n\t\tisBorderless = false,\n\t\tdisabled = false,\n\t\ttokenizeOnSpace = false,\n\t\tmessages = {\n\t\t\tadded: __( 'Item added.' ),\n\t\t\tremoved: __( 'Item removed.' ),\n\t\t\tremove: __( 'Remove item' ),\n\t\t\t__experimentalInvalid: __( 'Invalid item' ),\n\t\t},\n\t\t__experimentalRenderItem,\n\t\t__experimentalExpandOnFocus = false,\n\t\t__experimentalValidateInput = () => true,\n\t\t__experimentalShowHowTo = true,\n\t\t__next40pxDefaultSize = false,\n\t\t__experimentalAutoSelectFirstMatch = false,\n\t\t__nextHasNoMarginBottom = false,\n\t\ttokenizeOnBlur = false,\n\t} = useDeprecated36pxDefaultSizeProp< FormTokenFieldProps >( props );\n\n\tif ( ! __nextHasNoMarginBottom ) {\n\t\tdeprecated( 'Bottom margin styles for wp.components.FormTokenField', {\n\t\t\tsince: '6.7',\n\t\t\tversion: '7.0',\n\t\t\thint: 'Set the `__nextHasNoMarginBottom` prop to true to start opting into the new styles, which will become the default in a future version.',\n\t\t} );\n\t}\n\n\tmaybeWarnDeprecated36pxSize( {\n\t\tcomponentName: 'FormTokenField',\n\t\tsize: undefined,\n\t\t__next40pxDefaultSize,\n\t} );\n\n\tconst instanceId = useInstanceId( FormTokenField );\n\n\t// We reset to these initial values again in the onBlur\n\tconst [ incompleteTokenValue, setIncompleteTokenValue ] = useState( '' );\n\tconst [ inputOffsetFromEnd, setInputOffsetFromEnd ] = useState( 0 );\n\tconst [ isActive, setIsActive ] = useState( false );\n\tconst [ isExpanded, setIsExpanded ] = useState( false );\n\tconst [ selectedSuggestionIndex, setSelectedSuggestionIndex ] =\n\t\tuseState( -1 );\n\tconst [ selectedSuggestionScroll, setSelectedSuggestionScroll ] =\n\t\tuseState( false );\n\n\tconst prevSuggestions = usePrevious< string[] >( suggestions );\n\tconst prevValue = usePrevious< ( string | TokenItem )[] >( value );\n\n\tconst input = useRef< HTMLInputElement >( null );\n\tconst tokensAndInput = useRef< HTMLInputElement >( null );\n\n\tconst debouncedSpeak = useDebounce( speak, 500 );\n\n\tuseEffect( () => {\n\t\t// Make sure to focus the input when the isActive state is true.\n\t\tif ( isActive && ! hasFocus() ) {\n\t\t\tfocus();\n\t\t}\n\t}, [ isActive ] );\n\n\tuseEffect( () => {\n\t\tconst suggestionsDidUpdate = ! isShallowEqual(\n\t\t\tsuggestions,\n\t\t\tprevSuggestions || []\n\t\t);\n\n\t\tif ( suggestionsDidUpdate || value !== prevValue ) {\n\t\t\tupdateSuggestions( suggestionsDidUpdate );\n\t\t}\n\n\t\t// TODO: updateSuggestions() should first be refactored so its actual deps are clearer.\n\t}, [ suggestions, prevSuggestions, value, prevValue ] );\n\n\tuseEffect( () => {\n\t\tupdateSuggestions();\n\t}, [ incompleteTokenValue ] );\n\n\tuseEffect( () => {\n\t\tupdateSuggestions();\n\t}, [ __experimentalAutoSelectFirstMatch ] );\n\n\tif ( disabled && isActive ) {\n\t\tsetIsActive( false );\n\t\tsetIncompleteTokenValue( '' );\n\t}\n\n\tfunction focus() {\n\t\tinput.current?.focus();\n\t}\n\n\tfunction hasFocus() {\n\t\treturn input.current === input.current?.ownerDocument.activeElement;\n\t}\n\n\tfunction onFocusHandler( event: FocusEvent ) {\n\t\t// If focus is on the input or on the container, set the isActive state to true.\n\t\tif ( hasFocus() || event.target === tokensAndInput.current ) {\n\t\t\tsetIsActive( true );\n\t\t\tsetIsExpanded( __experimentalExpandOnFocus || isExpanded );\n\t\t} else {\n\t\t\t/*\n\t\t\t * Otherwise, focus is on one of the token \"remove\" buttons and we\n\t\t\t * set the isActive state to false to prevent the input to be\n\t\t\t * re-focused, see componentDidUpdate().\n\t\t\t */\n\t\t\tsetIsActive( false );\n\t\t}\n\n\t\tif ( 'function' === typeof onFocus ) {\n\t\t\tonFocus( event );\n\t\t}\n\t}\n\n\tfunction onBlur( event: FocusEvent ) {\n\t\tif (\n\t\t\tinputHasValidValue() &&\n\t\t\t__experimentalValidateInput( incompleteTokenValue )\n\t\t) {\n\t\t\tsetIsActive( false );\n\t\t\tif ( tokenizeOnBlur && inputHasValidValue() ) {\n\t\t\t\taddNewToken( incompleteTokenValue );\n\t\t\t}\n\t\t} else {\n\t\t\t// Reset to initial state\n\t\t\tsetIncompleteTokenValue( '' );\n\t\t\tsetInputOffsetFromEnd( 0 );\n\t\t\tsetIsActive( false );\n\n\t\t\tif ( __experimentalExpandOnFocus ) {\n\t\t\t\t// If `__experimentalExpandOnFocus` is true, don't close the suggestions list when\n\t\t\t\t// the user clicks on it (`tokensAndInput` will be the element that caused the blur).\n\t\t\t\tconst hasFocusWithin =\n\t\t\t\t\tevent.relatedTarget === tokensAndInput.current;\n\t\t\t\tsetIsExpanded( hasFocusWithin );\n\t\t\t} else {\n\t\t\t\t// Else collapse the suggestion list. This will result in the suggestion list closing\n\t\t\t\t// after a suggestion has been submitted since that causes a blur.\n\t\t\t\tsetIsExpanded( false );\n\t\t\t}\n\n\t\t\tsetSelectedSuggestionIndex( -1 );\n\t\t\tsetSelectedSuggestionScroll( false );\n\t\t}\n\t}\n\n\tfunction onKeyDown( event: KeyboardEvent ) {\n\t\tlet preventDefault = false;\n\n\t\tif ( event.defaultPrevented ) {\n\t\t\treturn;\n\t\t}\n\t\tswitch ( event.key ) {\n\t\t\tcase 'Backspace':\n\t\t\t\tpreventDefault = handleDeleteKey( deleteTokenBeforeInput );\n\t\t\t\tbreak;\n\t\t\tcase 'Enter':\n\t\t\t\tpreventDefault = addCurrentToken();\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowLeft':\n\t\t\t\tpreventDefault = handleLeftArrowKey();\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowUp':\n\t\t\t\tpreventDefault = handleUpArrowKey();\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowRight':\n\t\t\t\tpreventDefault = handleRightArrowKey();\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowDown':\n\t\t\t\tpreventDefault = handleDownArrowKey();\n\t\t\t\tbreak;\n\t\t\tcase 'Delete':\n\t\t\t\tpreventDefault = handleDeleteKey( deleteTokenAfterInput );\n\t\t\t\tbreak;\n\t\t\tcase 'Space':\n\t\t\t\tif ( tokenizeOnSpace ) {\n\t\t\t\t\tpreventDefault = addCurrentToken();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'Escape':\n\t\t\t\tpreventDefault = handleEscapeKey( event );\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif ( preventDefault ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\tfunction onKeyPress( event: KeyboardEvent ) {\n\t\tlet preventDefault = false;\n\n\t\tswitch ( event.key ) {\n\t\t\tcase ',':\n\t\t\t\tpreventDefault = handleCommaKey();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif ( preventDefault ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\tfunction onContainerTouched( event: MouseEvent | TouchEvent ) {\n\t\t// Prevent clicking/touching the tokensAndInput container from blurring\n\t\t// the input and adding the current token.\n\t\tif ( event.target === tokensAndInput.current && isActive ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\tfunction onTokenClickRemove( event: { value: string } ) {\n\t\tdeleteToken( event.value );\n\t\tfocus();\n\t}\n\n\tfunction onSuggestionHovered( suggestion: string ) {\n\t\tconst index = getMatchingSuggestions().indexOf( suggestion );\n\n\t\tif ( index >= 0 ) {\n\t\t\tsetSelectedSuggestionIndex( index );\n\t\t\tsetSelectedSuggestionScroll( false );\n\t\t}\n\t}\n\n\tfunction onSuggestionSelected( suggestion: string ) {\n\t\taddNewToken( suggestion );\n\t}\n\n\tfunction onInputChangeHandler( event: { value: string } ) {\n\t\tconst text = event.value;\n\t\tconst separator = tokenizeOnSpace ? /[ ,\\t]+/ : /[,\\t]+/;\n\t\tconst items = text.split( separator );\n\t\tconst tokenValue = items[ items.length - 1 ] || '';\n\n\t\tif ( items.length > 1 ) {\n\t\t\taddNewTokens( items.slice( 0, -1 ) );\n\t\t}\n\t\tsetIncompleteTokenValue( tokenValue );\n\t\tonInputChange( tokenValue );\n\t}\n\n\tfunction handleDeleteKey( _deleteToken: () => void ) {\n\t\tlet preventDefault = false;\n\t\tif ( hasFocus() && isInputEmpty() ) {\n\t\t\t_deleteToken();\n\t\t\tpreventDefault = true;\n\t\t}\n\n\t\treturn preventDefault;\n\t}\n\n\tfunction handleLeftArrowKey() {\n\t\tlet preventDefault = false;\n\t\tif ( isInputEmpty() ) {\n\t\t\tmoveInputBeforePreviousToken();\n\t\t\tpreventDefault = true;\n\t\t}\n\n\t\treturn preventDefault;\n\t}\n\n\tfunction handleRightArrowKey() {\n\t\tlet preventDefault = false;\n\t\tif ( isInputEmpty() ) {\n\t\t\tmoveInputAfterNextToken();\n\t\t\tpreventDefault = true;\n\t\t}\n\n\t\treturn preventDefault;\n\t}\n\n\tfunction handleUpArrowKey() {\n\t\tsetSelectedSuggestionIndex( ( index ) => {\n\t\t\treturn (\n\t\t\t\t( index === 0\n\t\t\t\t\t? getMatchingSuggestions(\n\t\t\t\t\t\t\tincompleteTokenValue,\n\t\t\t\t\t\t\tsuggestions,\n\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\tmaxSuggestions,\n\t\t\t\t\t\t\tsaveTransform\n\t\t\t\t\t ).length\n\t\t\t\t\t: index ) - 1\n\t\t\t);\n\t\t} );\n\t\tsetSelectedSuggestionScroll( true );\n\n\t\treturn true; // PreventDefault.\n\t}\n\n\tfunction handleDownArrowKey() {\n\t\tsetSelectedSuggestionIndex( ( index ) => {\n\t\t\treturn (\n\t\t\t\t( index + 1 ) %\n\t\t\t\tgetMatchingSuggestions(\n\t\t\t\t\tincompleteTokenValue,\n\t\t\t\t\tsuggestions,\n\t\t\t\t\tvalue,\n\t\t\t\t\tmaxSuggestions,\n\t\t\t\t\tsaveTransform\n\t\t\t\t).length\n\t\t\t);\n\t\t} );\n\n\t\tsetSelectedSuggestionScroll( true );\n\t\treturn true; // PreventDefault.\n\t}\n\n\tfunction handleEscapeKey( event: KeyboardEvent ) {\n\t\tif ( event.target instanceof HTMLInputElement ) {\n\t\t\tsetIncompleteTokenValue( event.target.value );\n\t\t\tsetIsExpanded( false );\n\t\t\tsetSelectedSuggestionIndex( -1 );\n\t\t\tsetSelectedSuggestionScroll( false );\n\t\t}\n\n\t\treturn true; // PreventDefault.\n\t}\n\n\tfunction handleCommaKey() {\n\t\tif ( inputHasValidValue() ) {\n\t\t\taddNewToken( incompleteTokenValue );\n\t\t}\n\n\t\treturn true; // PreventDefault.\n\t}\n\n\tfunction moveInputToIndex( index: number ) {\n\t\tsetInputOffsetFromEnd( value.length - Math.max( index, -1 ) - 1 );\n\t}\n\n\tfunction moveInputBeforePreviousToken() {\n\t\tsetInputOffsetFromEnd( ( prevInputOffsetFromEnd ) => {\n\t\t\treturn Math.min( prevInputOffsetFromEnd + 1, value.length );\n\t\t} );\n\t}\n\n\tfunction moveInputAfterNextToken() {\n\t\tsetInputOffsetFromEnd( ( prevInputOffsetFromEnd ) => {\n\t\t\treturn Math.max( prevInputOffsetFromEnd - 1, 0 );\n\t\t} );\n\t}\n\n\tfunction deleteTokenBeforeInput() {\n\t\tconst index = getIndexOfInput() - 1;\n\n\t\tif ( index > -1 ) {\n\t\t\tdeleteToken( value[ index ] );\n\t\t}\n\t}\n\n\tfunction deleteTokenAfterInput() {\n\t\tconst index = getIndexOfInput();\n\n\t\tif ( index < value.length ) {\n\t\t\tdeleteToken( value[ index ] );\n\t\t\t// Update input offset since it's the offset from the last token.\n\t\t\tmoveInputToIndex( index );\n\t\t}\n\t}\n\n\tfunction addCurrentToken() {\n\t\tlet preventDefault = false;\n\t\tconst selectedSuggestion = getSelectedSuggestion();\n\n\t\tif ( selectedSuggestion ) {\n\t\t\taddNewToken( selectedSuggestion );\n\t\t\tpreventDefault = true;\n\t\t} else if ( inputHasValidValue() ) {\n\t\t\taddNewToken( incompleteTokenValue );\n\t\t\tpreventDefault = true;\n\t\t}\n\n\t\treturn preventDefault;\n\t}\n\n\tfunction addNewTokens( tokens: string[] ) {\n\t\tconst tokensToAdd = [\n\t\t\t...new Set(\n\t\t\t\ttokens\n\t\t\t\t\t.map( saveTransform )\n\t\t\t\t\t.filter( Boolean )\n\t\t\t\t\t.filter( ( token ) => ! valueContainsToken( token ) )\n\t\t\t),\n\t\t];\n\n\t\tif ( tokensToAdd.length > 0 ) {\n\t\t\tconst newValue = [ ...value ];\n\t\t\tnewValue.splice( getIndexOfInput(), 0, ...tokensToAdd );\n\t\t\tonChange( newValue );\n\t\t}\n\t}\n\n\tfunction addNewToken( token: string ) {\n\t\tif ( ! __experimentalValidateInput( token ) ) {\n\t\t\tspeak( messages.__experimentalInvalid, 'assertive' );\n\t\t\treturn;\n\t\t}\n\t\taddNewTokens( [ token ] );\n\t\tspeak( messages.added, 'assertive' );\n\n\t\tsetIncompleteTokenValue( '' );\n\t\tsetSelectedSuggestionIndex( -1 );\n\t\tsetSelectedSuggestionScroll( false );\n\t\tsetIsExpanded( ! __experimentalExpandOnFocus );\n\n\t\tif ( isActive && ! tokenizeOnBlur ) {\n\t\t\tfocus();\n\t\t}\n\t}\n\n\tfunction deleteToken( token: string | TokenItem ) {\n\t\tconst newTokens = value.filter( ( item ) => {\n\t\t\treturn getTokenValue( item ) !== getTokenValue( token );\n\t\t} );\n\t\tonChange( newTokens );\n\t\tspeak( messages.removed, 'assertive' );\n\t}\n\n\tfunction getTokenValue( token: { value: string } | string ) {\n\t\tif ( 'object' === typeof token ) {\n\t\t\treturn token.value;\n\t\t}\n\n\t\treturn token;\n\t}\n\n\tfunction getMatchingSuggestions(\n\t\tsearchValue = incompleteTokenValue,\n\t\t_suggestions = suggestions,\n\t\t_value = value,\n\t\t_maxSuggestions = maxSuggestions,\n\t\t_saveTransform = saveTransform\n\t) {\n\t\tlet match = _saveTransform( searchValue );\n\t\tconst startsWithMatch: string[] = [];\n\t\tconst containsMatch: string[] = [];\n\t\tconst normalizedValue = _value.map( ( item ) => {\n\t\t\tif ( typeof item === 'string' ) {\n\t\t\t\treturn item;\n\t\t\t}\n\t\t\treturn item.value;\n\t\t} );\n\n\t\tif ( match.length === 0 ) {\n\t\t\t_suggestions = _suggestions.filter(\n\t\t\t\t( suggestion ) => ! normalizedValue.includes( suggestion )\n\t\t\t);\n\t\t} else {\n\t\t\tmatch = match.normalize( 'NFKC' ).toLocaleLowerCase();\n\n\t\t\t_suggestions.forEach( ( suggestion ) => {\n\t\t\t\tconst index = suggestion\n\t\t\t\t\t.normalize( 'NFKC' )\n\t\t\t\t\t.toLocaleLowerCase()\n\t\t\t\t\t.indexOf( match );\n\t\t\t\tif ( normalizedValue.indexOf( suggestion ) === -1 ) {\n\t\t\t\t\tif ( index === 0 ) {\n\t\t\t\t\t\tstartsWithMatch.push( suggestion );\n\t\t\t\t\t} else if ( index > 0 ) {\n\t\t\t\t\t\tcontainsMatch.push( suggestion );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t_suggestions = startsWithMatch.concat( containsMatch );\n\t\t}\n\n\t\treturn _suggestions.slice( 0, _maxSuggestions );\n\t}\n\n\tfunction getSelectedSuggestion() {\n\t\tif ( selectedSuggestionIndex !== -1 ) {\n\t\t\treturn getMatchingSuggestions()[ selectedSuggestionIndex ];\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tfunction valueContainsToken( token: string ) {\n\t\treturn value.some( ( item ) => {\n\t\t\treturn getTokenValue( token ) === getTokenValue( item );\n\t\t} );\n\t}\n\n\tfunction getIndexOfInput() {\n\t\treturn value.length - inputOffsetFromEnd;\n\t}\n\n\tfunction isInputEmpty() {\n\t\treturn incompleteTokenValue.length === 0;\n\t}\n\n\tfunction inputHasValidValue() {\n\t\treturn saveTransform( incompleteTokenValue ).length > 0;\n\t}\n\n\tfunction updateSuggestions( resetSelectedSuggestion = true ) {\n\t\tconst inputHasMinimumChars = incompleteTokenValue.trim().length > 1;\n\t\tconst matchingSuggestions =\n\t\t\tgetMatchingSuggestions( incompleteTokenValue );\n\t\tconst hasMatchingSuggestions = matchingSuggestions.length > 0;\n\n\t\tconst shouldExpandIfFocuses = hasFocus() && __experimentalExpandOnFocus;\n\t\tsetIsExpanded(\n\t\t\tshouldExpandIfFocuses ||\n\t\t\t\t( inputHasMinimumChars && hasMatchingSuggestions )\n\t\t);\n\n\t\tif ( resetSelectedSuggestion ) {\n\t\t\tif (\n\t\t\t\t__experimentalAutoSelectFirstMatch &&\n\t\t\t\tinputHasMinimumChars &&\n\t\t\t\thasMatchingSuggestions\n\t\t\t) {\n\t\t\t\tsetSelectedSuggestionIndex( 0 );\n\t\t\t\tsetSelectedSuggestionScroll( true );\n\t\t\t} else {\n\t\t\t\tsetSelectedSuggestionIndex( -1 );\n\t\t\t\tsetSelectedSuggestionScroll( false );\n\t\t\t}\n\t\t}\n\n\t\tif ( inputHasMinimumChars ) {\n\t\t\tconst message = hasMatchingSuggestions\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: %d: number of results. */\n\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t'%d result found, use up and down arrow keys to navigate.',\n\t\t\t\t\t\t\t'%d results found, use up and down arrow keys to navigate.',\n\t\t\t\t\t\t\tmatchingSuggestions.length\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmatchingSuggestions.length\n\t\t\t\t )\n\t\t\t\t: __( 'No results.' );\n\n\t\t\tdebouncedSpeak( message, 'assertive' );\n\t\t}\n\t}\n\n\tfunction renderTokensAndInput() {\n\t\tconst components = value.map( renderToken );\n\t\tcomponents.splice( getIndexOfInput(), 0, renderInput() );\n\n\t\treturn components;\n\t}\n\n\tfunction renderToken(\n\t\ttoken: string | TokenItem,\n\t\tindex: number,\n\t\ttokens: ( string | TokenItem )[]\n\t) {\n\t\tconst _value = getTokenValue( token );\n\t\tconst status = typeof token !== 'string' ? token.status : undefined;\n\t\tconst termPosition = index + 1;\n\t\tconst termsCount = tokens.length;\n\n\t\treturn (\n\t\t\t<FlexItem key={ 'token-' + _value }>\n\t\t\t\t<Token\n\t\t\t\t\tvalue={ _value }\n\t\t\t\t\tstatus={ status }\n\t\t\t\t\ttitle={\n\t\t\t\t\t\ttypeof token !== 'string' ? token.title : undefined\n\t\t\t\t\t}\n\t\t\t\t\tdisplayTransform={ displayTransform }\n\t\t\t\t\tonClickRemove={ onTokenClickRemove }\n\t\t\t\t\tisBorderless={\n\t\t\t\t\t\t( typeof token !== 'string' && token.isBorderless ) ||\n\t\t\t\t\t\tisBorderless\n\t\t\t\t\t}\n\t\t\t\t\tonMouseEnter={\n\t\t\t\t\t\ttypeof token !== 'string'\n\t\t\t\t\t\t\t? token.onMouseEnter\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\tonMouseLeave={\n\t\t\t\t\t\ttypeof token !== 'string'\n\t\t\t\t\t\t\t? token.onMouseLeave\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\tdisabled={ 'error' !== status && disabled }\n\t\t\t\t\tmessages={ messages }\n\t\t\t\t\ttermsCount={ termsCount }\n\t\t\t\t\ttermPosition={ termPosition }\n\t\t\t\t/>\n\t\t\t</FlexItem>\n\t\t);\n\t}\n\n\tfunction renderInput() {\n\t\tconst inputProps = {\n\t\t\tinstanceId,\n\t\t\tautoCapitalize,\n\t\t\tautoComplete,\n\t\t\tplaceholder: value.length === 0 ? placeholder : '',\n\t\t\tdisabled,\n\t\t\tvalue: incompleteTokenValue,\n\t\t\tonBlur,\n\t\t\tisExpanded,\n\t\t\tselectedSuggestionIndex,\n\t\t};\n\n\t\treturn (\n\t\t\t<TokenInput\n\t\t\t\tkey=\"input\"\n\t\t\t\t{ ...inputProps }\n\t\t\t\tonChange={\n\t\t\t\t\t! ( maxLength && value.length >= maxLength )\n\t\t\t\t\t\t? onInputChangeHandler\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tref={ input }\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst classes = clsx(\n\t\tclassName,\n\t\t'components-form-token-field__input-container',\n\t\t{\n\t\t\t'is-active': isActive,\n\t\t\t'is-disabled': disabled,\n\t\t}\n\t);\n\n\tlet tokenFieldProps = {\n\t\tclassName: 'components-form-token-field',\n\t\ttabIndex: -1,\n\t};\n\tconst matchingSuggestions = getMatchingSuggestions();\n\n\tif ( ! disabled ) {\n\t\ttokenFieldProps = Object.assign( {}, tokenFieldProps, {\n\t\t\tonKeyDown: withIgnoreIMEEvents( onKeyDown ),\n\t\t\tonKeyPress,\n\t\t\tonFocus: onFocusHandler,\n\t\t} );\n\t}\n\n\t// Disable reason: There is no appropriate role which describes the\n\t// input container intended accessible usability.\n\t// TODO: Refactor click detection to use blur to stop propagation.\n\t/* eslint-disable jsx-a11y/no-static-element-interactions */\n\treturn (\n\t\t<div { ...tokenFieldProps }>\n\t\t\t{ label && (\n\t\t\t\t<StyledLabel\n\t\t\t\t\thtmlFor={ `components-form-token-input-${ instanceId }` }\n\t\t\t\t\tclassName=\"components-form-token-field__label\"\n\t\t\t\t>\n\t\t\t\t\t{ label }\n\t\t\t\t</StyledLabel>\n\t\t\t) }\n\t\t\t<div\n\t\t\t\tref={ tokensAndInput }\n\t\t\t\tclassName={ classes }\n\t\t\t\ttabIndex={ -1 }\n\t\t\t\tonMouseDown={ onContainerTouched }\n\t\t\t\tonTouchStart={ onContainerTouched }\n\t\t\t>\n\t\t\t\t<TokensAndInputWrapperFlex\n\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\talign=\"center\"\n\t\t\t\t\tgap={ 1 }\n\t\t\t\t\twrap\n\t\t\t\t\t__next40pxDefaultSize={ __next40pxDefaultSize }\n\t\t\t\t\thasTokens={ !! value.length }\n\t\t\t\t>\n\t\t\t\t\t{ renderTokensAndInput() }\n\t\t\t\t</TokensAndInputWrapperFlex>\n\t\t\t\t{ isExpanded && (\n\t\t\t\t\t<SuggestionsList\n\t\t\t\t\t\tinstanceId={ instanceId }\n\t\t\t\t\t\tmatch={ saveTransform( incompleteTokenValue ) }\n\t\t\t\t\t\tdisplayTransform={ displayTransform }\n\t\t\t\t\t\tsuggestions={ matchingSuggestions }\n\t\t\t\t\t\tselectedIndex={ selectedSuggestionIndex }\n\t\t\t\t\t\tscrollIntoView={ selectedSuggestionScroll }\n\t\t\t\t\t\tonHover={ onSuggestionHovered }\n\t\t\t\t\t\tonSelect={ onSuggestionSelected }\n\t\t\t\t\t\t__experimentalRenderItem={ __experimentalRenderItem }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t{ ! __nextHasNoMarginBottom && <Spacer marginBottom={ 2 } /> }\n\t\t\t{ __experimentalShowHowTo && (\n\t\t\t\t<StyledHelp\n\t\t\t\t\tid={ `components-form-token-suggestions-howto-${ instanceId }` }\n\t\t\t\t\tclassName=\"components-form-token-field__help\"\n\t\t\t\t\t__nextHasNoMarginBottom={ __nextHasNoMarginBottom }\n\t\t\t\t>\n\t\t\t\t\t{ tokenizeOnSpace\n\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t'Separate with commas, spaces, or the Enter key.'\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Separate with commas or the Enter key.' ) }\n\t\t\t\t</StyledHelp>\n\t\t\t) }\n\t\t</div>\n\t);\n\t/* eslint-enable jsx-a11y/no-static-element-interactions */\n}\n\nexport default FormTokenField;\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAMA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,WAAA,GAAAP,sBAAA,CAAAC,OAAA;AAKA,IAAAO,MAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,WAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,OAAA,GAAAT,OAAA;AACA,IAAAU,gBAAA,GAAAX,sBAAA,CAAAC,OAAA;AAEA,IAAAW,KAAA,GAAAX,OAAA;AACA,IAAAY,kBAAA,GAAAZ,OAAA;AAIA,IAAAa,OAAA,GAAAb,OAAA;AACA,IAAAc,mBAAA,GAAAd,OAAA;AACA,IAAAe,oBAAA,GAAAf,OAAA;AACA,IAAAgB,mBAAA,GAAAhB,OAAA;AAA4E,IAAAiB,WAAA,GAAAjB,OAAA;AAhC5E;AACA;AACA;;AAIA;AACA;AACA;;AAQA;AACA;AACA;;AAgBA,MAAMkB,QAAQ,GAAKC,KAAa,IAAMA,KAAK;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,cAAcA,CAAEC,KAA0B,EAAG;EAC5D,MAAM;IACLC,cAAc;IACdC,YAAY;IACZC,SAAS;IACTC,WAAW;IACXC,KAAK,GAAG,IAAAC,QAAE,EAAE,UAAW,CAAC;IACxBC,SAAS;IACTC,WAAW,GAAG,EAAE;IAChBC,cAAc,GAAG,GAAG;IACpBX,KAAK,GAAG,EAAE;IACVY,gBAAgB,GAAGb,QAAQ;IAC3Bc,aAAa,GAAKC,KAAK,IAAMA,KAAK,CAACC,IAAI,CAAC,CAAC;IACzCC,QAAQ,GAAGA,CAAA,KAAM,CAAC,CAAC;IACnBC,aAAa,GAAGA,CAAA,KAAM,CAAC,CAAC;IACxBC,OAAO,GAAGC,SAAS;IACnBC,YAAY,GAAG,KAAK;IACpBC,QAAQ,GAAG,KAAK;IAChBC,eAAe,GAAG,KAAK;IACvBC,QAAQ,GAAG;MACVC,KAAK,EAAE,IAAAhB,QAAE,EAAE,aAAc,CAAC;MAC1BiB,OAAO,EAAE,IAAAjB,QAAE,EAAE,eAAgB,CAAC;MAC9BkB,MAAM,EAAE,IAAAlB,QAAE,EAAE,aAAc,CAAC;MAC3BmB,qBAAqB,EAAE,IAAAnB,QAAE,EAAE,cAAe;IAC3C,CAAC;IACDoB,wBAAwB;IACxBC,2BAA2B,GAAG,KAAK;IACnCC,2BAA2B,GAAGA,CAAA,KAAM,IAAI;IACxCC,uBAAuB,GAAG,IAAI;IAC9BC,qBAAqB,GAAG,KAAK;IAC7BC,kCAAkC,GAAG,KAAK;IAC1CC,uBAAuB,GAAG,KAAK;IAC/BC,cAAc,GAAG;EAClB,CAAC,GAAG,IAAAC,oDAAgC,EAAyBlC,KAAM,CAAC;EAEpE,IAAK,CAAEgC,uBAAuB,EAAG;IAChC,IAAAG,mBAAU,EAAE,uDAAuD,EAAE;MACpEC,KAAK,EAAE,KAAK;MACZC,OAAO,EAAE,KAAK;MACdC,IAAI,EAAE;IACP,CAAE,CAAC;EACJ;EAEA,IAAAC,+CAA2B,EAAE;IAC5BC,aAAa,EAAE,gBAAgB;IAC/BC,IAAI,EAAExB,SAAS;IACfa;EACD,CAAE,CAAC;EAEH,MAAMY,UAAU,GAAG,IAAAC,sBAAa,EAAE5C,cAAe,CAAC;;EAElD;EACA,MAAM,CAAE6C,oBAAoB,EAAEC,uBAAuB,CAAE,GAAG,IAAAC,iBAAQ,EAAE,EAAG,CAAC;EACxE,MAAM,CAAEC,kBAAkB,EAAEC,qBAAqB,CAAE,GAAG,IAAAF,iBAAQ,EAAE,CAAE,CAAC;EACnE,MAAM,CAAEG,QAAQ,EAAEC,WAAW,CAAE,GAAG,IAAAJ,iBAAQ,EAAE,KAAM,CAAC;EACnD,MAAM,CAAEK,UAAU,EAAEC,aAAa,CAAE,GAAG,IAAAN,iBAAQ,EAAE,KAAM,CAAC;EACvD,MAAM,CAAEO,uBAAuB,EAAEC,0BAA0B,CAAE,GAC5D,IAAAR,iBAAQ,EAAE,CAAC,CAAE,CAAC;EACf,MAAM,CAAES,wBAAwB,EAAEC,2BAA2B,CAAE,GAC9D,IAAAV,iBAAQ,EAAE,KAAM,CAAC;EAElB,MAAMW,eAAe,GAAG,IAAAC,oBAAW,EAAclD,WAAY,CAAC;EAC9D,MAAMmD,SAAS,GAAG,IAAAD,oBAAW,EAA8B5D,KAAM,CAAC;EAElE,MAAM8D,KAAK,GAAG,IAAAC,eAAM,EAAsB,IAAK,CAAC;EAChD,MAAMC,cAAc,GAAG,IAAAD,eAAM,EAAsB,IAAK,CAAC;EAEzD,MAAME,cAAc,GAAG,IAAAC,oBAAW,EAAEC,WAAK,EAAE,GAAI,CAAC;EAEhD,IAAAC,kBAAS,EAAE,MAAM;IAChB;IACA,IAAKjB,QAAQ,IAAI,CAAEkB,QAAQ,CAAC,CAAC,EAAG;MAC/BC,KAAK,CAAC,CAAC;IACR;EACD,CAAC,EAAE,CAAEnB,QAAQ,CAAG,CAAC;EAEjB,IAAAiB,kBAAS,EAAE,MAAM;IAChB,MAAMG,oBAAoB,GAAG,CAAE,IAAAC,uBAAc,EAC5C9D,WAAW,EACXiD,eAAe,IAAI,EACpB,CAAC;IAED,IAAKY,oBAAoB,IAAIvE,KAAK,KAAK6D,SAAS,EAAG;MAClDY,iBAAiB,CAAEF,oBAAqB,CAAC;IAC1C;;IAEA;EACD,CAAC,EAAE,CAAE7D,WAAW,EAAEiD,eAAe,EAAE3D,KAAK,EAAE6D,SAAS,CAAG,CAAC;EAEvD,IAAAO,kBAAS,EAAE,MAAM;IAChBK,iBAAiB,CAAC,CAAC;EACpB,CAAC,EAAE,CAAE3B,oBAAoB,CAAG,CAAC;EAE7B,IAAAsB,kBAAS,EAAE,MAAM;IAChBK,iBAAiB,CAAC,CAAC;EACpB,CAAC,EAAE,CAAExC,kCAAkC,CAAG,CAAC;EAE3C,IAAKZ,QAAQ,IAAI8B,QAAQ,EAAG;IAC3BC,WAAW,CAAE,KAAM,CAAC;IACpBL,uBAAuB,CAAE,EAAG,CAAC;EAC9B;EAEA,SAASuB,KAAKA,CAAA,EAAG;IAChBR,KAAK,CAACY,OAAO,EAAEJ,KAAK,CAAC,CAAC;EACvB;EAEA,SAASD,QAAQA,CAAA,EAAG;IACnB,OAAOP,KAAK,CAACY,OAAO,KAAKZ,KAAK,CAACY,OAAO,EAAEC,aAAa,CAACC,aAAa;EACpE;EAEA,SAASC,cAAcA,CAAEC,KAAiB,EAAG;IAC5C;IACA,IAAKT,QAAQ,CAAC,CAAC,IAAIS,KAAK,CAACC,MAAM,KAAKf,cAAc,CAACU,OAAO,EAAG;MAC5DtB,WAAW,CAAE,IAAK,CAAC;MACnBE,aAAa,CAAEzB,2BAA2B,IAAIwB,UAAW,CAAC;IAC3D,CAAC,MAAM;MACN;AACH;AACA;AACA;AACA;MACGD,WAAW,CAAE,KAAM,CAAC;IACrB;IAEA,IAAK,UAAU,KAAK,OAAOlC,OAAO,EAAG;MACpCA,OAAO,CAAE4D,KAAM,CAAC;IACjB;EACD;EAEA,SAASE,MAAMA,CAAEF,KAAiB,EAAG;IACpC,IACCG,kBAAkB,CAAC,CAAC,IACpBnD,2BAA2B,CAAEgB,oBAAqB,CAAC,EAClD;MACDM,WAAW,CAAE,KAAM,CAAC;MACpB,IAAKjB,cAAc,IAAI8C,kBAAkB,CAAC,CAAC,EAAG;QAC7CC,WAAW,CAAEpC,oBAAqB,CAAC;MACpC;IACD,CAAC,MAAM;MACN;MACAC,uBAAuB,CAAE,EAAG,CAAC;MAC7BG,qBAAqB,CAAE,CAAE,CAAC;MAC1BE,WAAW,CAAE,KAAM,CAAC;MAEpB,IAAKvB,2BAA2B,EAAG;QAClC;QACA;QACA,MAAMsD,cAAc,GACnBL,KAAK,CAACM,aAAa,KAAKpB,cAAc,CAACU,OAAO;QAC/CpB,aAAa,CAAE6B,cAAe,CAAC;MAChC,CAAC,MAAM;QACN;QACA;QACA7B,aAAa,CAAE,KAAM,CAAC;MACvB;MAEAE,0BAA0B,CAAE,CAAC,CAAE,CAAC;MAChCE,2BAA2B,CAAE,KAAM,CAAC;IACrC;EACD;EAEA,SAAS2B,SAASA,CAAEP,KAAoB,EAAG;IAC1C,IAAIQ,cAAc,GAAG,KAAK;IAE1B,IAAKR,KAAK,CAACS,gBAAgB,EAAG;MAC7B;IACD;IACA,QAAST,KAAK,CAACU,GAAG;MACjB,KAAK,WAAW;QACfF,cAAc,GAAGG,eAAe,CAAEC,sBAAuB,CAAC;QAC1D;MACD,KAAK,OAAO;QACXJ,cAAc,GAAGK,eAAe,CAAC,CAAC;QAClC;MACD,KAAK,WAAW;QACfL,cAAc,GAAGM,kBAAkB,CAAC,CAAC;QACrC;MACD,KAAK,SAAS;QACbN,cAAc,GAAGO,gBAAgB,CAAC,CAAC;QACnC;MACD,KAAK,YAAY;QAChBP,cAAc,GAAGQ,mBAAmB,CAAC,CAAC;QACtC;MACD,KAAK,WAAW;QACfR,cAAc,GAAGS,kBAAkB,CAAC,CAAC;QACrC;MACD,KAAK,QAAQ;QACZT,cAAc,GAAGG,eAAe,CAAEO,qBAAsB,CAAC;QACzD;MACD,KAAK,OAAO;QACX,IAAK1E,eAAe,EAAG;UACtBgE,cAAc,GAAGK,eAAe,CAAC,CAAC;QACnC;QACA;MACD,KAAK,QAAQ;QACZL,cAAc,GAAGW,eAAe,CAAEnB,KAAM,CAAC;QACzC;MACD;QACC;IACF;IAEA,IAAKQ,cAAc,EAAG;MACrBR,KAAK,CAACQ,cAAc,CAAC,CAAC;IACvB;EACD;EAEA,SAASY,UAAUA,CAAEpB,KAAoB,EAAG;IAC3C,IAAIQ,cAAc,GAAG,KAAK;IAE1B,QAASR,KAAK,CAACU,GAAG;MACjB,KAAK,GAAG;QACPF,cAAc,GAAGa,cAAc,CAAC,CAAC;QACjC;MACD;QACC;IACF;IAEA,IAAKb,cAAc,EAAG;MACrBR,KAAK,CAACQ,cAAc,CAAC,CAAC;IACvB;EACD;EAEA,SAASc,kBAAkBA,CAAEtB,KAA8B,EAAG;IAC7D;IACA;IACA,IAAKA,KAAK,CAACC,MAAM,KAAKf,cAAc,CAACU,OAAO,IAAIvB,QAAQ,EAAG;MAC1D2B,KAAK,CAACQ,cAAc,CAAC,CAAC;IACvB;EACD;EAEA,SAASe,kBAAkBA,CAAEvB,KAAwB,EAAG;IACvDwB,WAAW,CAAExB,KAAK,CAAC9E,KAAM,CAAC;IAC1BsE,KAAK,CAAC,CAAC;EACR;EAEA,SAASiC,mBAAmBA,CAAEC,UAAkB,EAAG;IAClD,MAAMC,KAAK,GAAGC,sBAAsB,CAAC,CAAC,CAACC,OAAO,CAAEH,UAAW,CAAC;IAE5D,IAAKC,KAAK,IAAI,CAAC,EAAG;MACjBjD,0BAA0B,CAAEiD,KAAM,CAAC;MACnC/C,2BAA2B,CAAE,KAAM,CAAC;IACrC;EACD;EAEA,SAASkD,oBAAoBA,CAAEJ,UAAkB,EAAG;IACnDtB,WAAW,CAAEsB,UAAW,CAAC;EAC1B;EAEA,SAASK,oBAAoBA,CAAE/B,KAAwB,EAAG;IACzD,MAAMgC,IAAI,GAAGhC,KAAK,CAAC9E,KAAK;IACxB,MAAM+G,SAAS,GAAGzF,eAAe,GAAG,SAAS,GAAG,QAAQ;IACxD,MAAM0F,KAAK,GAAGF,IAAI,CAACG,KAAK,CAAEF,SAAU,CAAC;IACrC,MAAMG,UAAU,GAAGF,KAAK,CAAEA,KAAK,CAACG,MAAM,GAAG,CAAC,CAAE,IAAI,EAAE;IAElD,IAAKH,KAAK,CAACG,MAAM,GAAG,CAAC,EAAG;MACvBC,YAAY,CAAEJ,KAAK,CAACK,KAAK,CAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CAAC;IACrC;IACAtE,uBAAuB,CAAEmE,UAAW,CAAC;IACrCjG,aAAa,CAAEiG,UAAW,CAAC;EAC5B;EAEA,SAASzB,eAAeA,CAAE6B,YAAwB,EAAG;IACpD,IAAIhC,cAAc,GAAG,KAAK;IAC1B,IAAKjB,QAAQ,CAAC,CAAC,IAAIkD,YAAY,CAAC,CAAC,EAAG;MACnCD,YAAY,CAAC,CAAC;MACdhC,cAAc,GAAG,IAAI;IACtB;IAEA,OAAOA,cAAc;EACtB;EAEA,SAASM,kBAAkBA,CAAA,EAAG;IAC7B,IAAIN,cAAc,GAAG,KAAK;IAC1B,IAAKiC,YAAY,CAAC,CAAC,EAAG;MACrBC,4BAA4B,CAAC,CAAC;MAC9BlC,cAAc,GAAG,IAAI;IACtB;IAEA,OAAOA,cAAc;EACtB;EAEA,SAASQ,mBAAmBA,CAAA,EAAG;IAC9B,IAAIR,cAAc,GAAG,KAAK;IAC1B,IAAKiC,YAAY,CAAC,CAAC,EAAG;MACrBE,uBAAuB,CAAC,CAAC;MACzBnC,cAAc,GAAG,IAAI;IACtB;IAEA,OAAOA,cAAc;EACtB;EAEA,SAASO,gBAAgBA,CAAA,EAAG;IAC3BrC,0BAA0B,CAAIiD,KAAK,IAAM;MACxC,OACC,CAAEA,KAAK,KAAK,CAAC,GACVC,sBAAsB,CACtB5D,oBAAoB,EACpBpC,WAAW,EACXV,KAAK,EACLW,cAAc,EACdE,aACA,CAAC,CAACsG,MAAM,GACRV,KAAK,IAAK,CAAC;IAEhB,CAAE,CAAC;IACH/C,2BAA2B,CAAE,IAAK,CAAC;IAEnC,OAAO,IAAI,CAAC,CAAC;EACd;EAEA,SAASqC,kBAAkBA,CAAA,EAAG;IAC7BvC,0BAA0B,CAAIiD,KAAK,IAAM;MACxC,OACC,CAAEA,KAAK,GAAG,CAAC,IACXC,sBAAsB,CACrB5D,oBAAoB,EACpBpC,WAAW,EACXV,KAAK,EACLW,cAAc,EACdE,aACD,CAAC,CAACsG,MAAM;IAEV,CAAE,CAAC;IAEHzD,2BAA2B,CAAE,IAAK,CAAC;IACnC,OAAO,IAAI,CAAC,CAAC;EACd;EAEA,SAASuC,eAAeA,CAAEnB,KAAoB,EAAG;IAChD,IAAKA,KAAK,CAACC,MAAM,YAAY2C,gBAAgB,EAAG;MAC/C3E,uBAAuB,CAAE+B,KAAK,CAACC,MAAM,CAAC/E,KAAM,CAAC;MAC7CsD,aAAa,CAAE,KAAM,CAAC;MACtBE,0BAA0B,CAAE,CAAC,CAAE,CAAC;MAChCE,2BAA2B,CAAE,KAAM,CAAC;IACrC;IAEA,OAAO,IAAI,CAAC,CAAC;EACd;EAEA,SAASyC,cAAcA,CAAA,EAAG;IACzB,IAAKlB,kBAAkB,CAAC,CAAC,EAAG;MAC3BC,WAAW,CAAEpC,oBAAqB,CAAC;IACpC;IAEA,OAAO,IAAI,CAAC,CAAC;EACd;EAEA,SAAS6E,gBAAgBA,CAAElB,KAAa,EAAG;IAC1CvD,qBAAqB,CAAElD,KAAK,CAACmH,MAAM,GAAGS,IAAI,CAACC,GAAG,CAAEpB,KAAK,EAAE,CAAC,CAAE,CAAC,GAAG,CAAE,CAAC;EAClE;EAEA,SAASe,4BAA4BA,CAAA,EAAG;IACvCtE,qBAAqB,CAAI4E,sBAAsB,IAAM;MACpD,OAAOF,IAAI,CAACG,GAAG,CAAED,sBAAsB,GAAG,CAAC,EAAE9H,KAAK,CAACmH,MAAO,CAAC;IAC5D,CAAE,CAAC;EACJ;EAEA,SAASM,uBAAuBA,CAAA,EAAG;IAClCvE,qBAAqB,CAAI4E,sBAAsB,IAAM;MACpD,OAAOF,IAAI,CAACC,GAAG,CAAEC,sBAAsB,GAAG,CAAC,EAAE,CAAE,CAAC;IACjD,CAAE,CAAC;EACJ;EAEA,SAASpC,sBAAsBA,CAAA,EAAG;IACjC,MAAMe,KAAK,GAAGuB,eAAe,CAAC,CAAC,GAAG,CAAC;IAEnC,IAAKvB,KAAK,GAAG,CAAC,CAAC,EAAG;MACjBH,WAAW,CAAEtG,KAAK,CAAEyG,KAAK,CAAG,CAAC;IAC9B;EACD;EAEA,SAAST,qBAAqBA,CAAA,EAAG;IAChC,MAAMS,KAAK,GAAGuB,eAAe,CAAC,CAAC;IAE/B,IAAKvB,KAAK,GAAGzG,KAAK,CAACmH,MAAM,EAAG;MAC3Bb,WAAW,CAAEtG,KAAK,CAAEyG,KAAK,CAAG,CAAC;MAC7B;MACAkB,gBAAgB,CAAElB,KAAM,CAAC;IAC1B;EACD;EAEA,SAASd,eAAeA,CAAA,EAAG;IAC1B,IAAIL,cAAc,GAAG,KAAK;IAC1B,MAAM2C,kBAAkB,GAAGC,qBAAqB,CAAC,CAAC;IAElD,IAAKD,kBAAkB,EAAG;MACzB/C,WAAW,CAAE+C,kBAAmB,CAAC;MACjC3C,cAAc,GAAG,IAAI;IACtB,CAAC,MAAM,IAAKL,kBAAkB,CAAC,CAAC,EAAG;MAClCC,WAAW,CAAEpC,oBAAqB,CAAC;MACnCwC,cAAc,GAAG,IAAI;IACtB;IAEA,OAAOA,cAAc;EACtB;EAEA,SAAS8B,YAAYA,CAAEe,MAAgB,EAAG;IACzC,MAAMC,WAAW,GAAG,CACnB,GAAG,IAAIC,GAAG,CACTF,MAAM,CACJG,GAAG,CAAEzH,aAAc,CAAC,CACpB0H,MAAM,CAAEC,OAAQ,CAAC,CACjBD,MAAM,CAAIzH,KAAK,IAAM,CAAE2H,kBAAkB,CAAE3H,KAAM,CAAE,CACtD,CAAC,CACD;IAED,IAAKsH,WAAW,CAACjB,MAAM,GAAG,CAAC,EAAG;MAC7B,MAAMuB,QAAQ,GAAG,CAAE,GAAG1I,KAAK,CAAE;MAC7B0I,QAAQ,CAACC,MAAM,CAAEX,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,GAAGI,WAAY,CAAC;MACvDpH,QAAQ,CAAE0H,QAAS,CAAC;IACrB;EACD;EAEA,SAASxD,WAAWA,CAAEpE,KAAa,EAAG;IACrC,IAAK,CAAEgB,2BAA2B,CAAEhB,KAAM,CAAC,EAAG;MAC7C,IAAAqD,WAAK,EAAE5C,QAAQ,CAACI,qBAAqB,EAAE,WAAY,CAAC;MACpD;IACD;IACAyF,YAAY,CAAE,CAAEtG,KAAK,CAAG,CAAC;IACzB,IAAAqD,WAAK,EAAE5C,QAAQ,CAACC,KAAK,EAAE,WAAY,CAAC;IAEpCuB,uBAAuB,CAAE,EAAG,CAAC;IAC7BS,0BAA0B,CAAE,CAAC,CAAE,CAAC;IAChCE,2BAA2B,CAAE,KAAM,CAAC;IACpCJ,aAAa,CAAE,CAAEzB,2BAA4B,CAAC;IAE9C,IAAKsB,QAAQ,IAAI,CAAEhB,cAAc,EAAG;MACnCmC,KAAK,CAAC,CAAC;IACR;EACD;EAEA,SAASgC,WAAWA,CAAExF,KAAyB,EAAG;IACjD,MAAM8H,SAAS,GAAG5I,KAAK,CAACuI,MAAM,CAAIM,IAAI,IAAM;MAC3C,OAAOC,aAAa,CAAED,IAAK,CAAC,KAAKC,aAAa,CAAEhI,KAAM,CAAC;IACxD,CAAE,CAAC;IACHE,QAAQ,CAAE4H,SAAU,CAAC;IACrB,IAAAzE,WAAK,EAAE5C,QAAQ,CAACE,OAAO,EAAE,WAAY,CAAC;EACvC;EAEA,SAASqH,aAAaA,CAAEhI,KAAiC,EAAG;IAC3D,IAAK,QAAQ,KAAK,OAAOA,KAAK,EAAG;MAChC,OAAOA,KAAK,CAACd,KAAK;IACnB;IAEA,OAAOc,KAAK;EACb;EAEA,SAAS4F,sBAAsBA,CAC9BqC,WAAW,GAAGjG,oBAAoB,EAClCkG,YAAY,GAAGtI,WAAW,EAC1BuI,MAAM,GAAGjJ,KAAK,EACdkJ,eAAe,GAAGvI,cAAc,EAChCwI,cAAc,GAAGtI,aAAa,EAC7B;IACD,IAAIuI,KAAK,GAAGD,cAAc,CAAEJ,WAAY,CAAC;IACzC,MAAMM,eAAyB,GAAG,EAAE;IACpC,MAAMC,aAAuB,GAAG,EAAE;IAClC,MAAMC,eAAe,GAAGN,MAAM,CAACX,GAAG,CAAIO,IAAI,IAAM;MAC/C,IAAK,OAAOA,IAAI,KAAK,QAAQ,EAAG;QAC/B,OAAOA,IAAI;MACZ;MACA,OAAOA,IAAI,CAAC7I,KAAK;IAClB,CAAE,CAAC;IAEH,IAAKoJ,KAAK,CAACjC,MAAM,KAAK,CAAC,EAAG;MACzB6B,YAAY,GAAGA,YAAY,CAACT,MAAM,CAC/B/B,UAAU,IAAM,CAAE+C,eAAe,CAACC,QAAQ,CAAEhD,UAAW,CAC1D,CAAC;IACF,CAAC,MAAM;MACN4C,KAAK,GAAGA,KAAK,CAACK,SAAS,CAAE,MAAO,CAAC,CAACC,iBAAiB,CAAC,CAAC;MAErDV,YAAY,CAACW,OAAO,CAAInD,UAAU,IAAM;QACvC,MAAMC,KAAK,GAAGD,UAAU,CACtBiD,SAAS,CAAE,MAAO,CAAC,CACnBC,iBAAiB,CAAC,CAAC,CACnB/C,OAAO,CAAEyC,KAAM,CAAC;QAClB,IAAKG,eAAe,CAAC5C,OAAO,CAAEH,UAAW,CAAC,KAAK,CAAC,CAAC,EAAG;UACnD,IAAKC,KAAK,KAAK,CAAC,EAAG;YAClB4C,eAAe,CAACO,IAAI,CAAEpD,UAAW,CAAC;UACnC,CAAC,MAAM,IAAKC,KAAK,GAAG,CAAC,EAAG;YACvB6C,aAAa,CAACM,IAAI,CAAEpD,UAAW,CAAC;UACjC;QACD;MACD,CAAE,CAAC;MAEHwC,YAAY,GAAGK,eAAe,CAACQ,MAAM,CAAEP,aAAc,CAAC;IACvD;IAEA,OAAON,YAAY,CAAC3B,KAAK,CAAE,CAAC,EAAE6B,eAAgB,CAAC;EAChD;EAEA,SAAShB,qBAAqBA,CAAA,EAAG;IAChC,IAAK3E,uBAAuB,KAAK,CAAC,CAAC,EAAG;MACrC,OAAOmD,sBAAsB,CAAC,CAAC,CAAEnD,uBAAuB,CAAE;IAC3D;IAEA,OAAOpC,SAAS;EACjB;EAEA,SAASsH,kBAAkBA,CAAE3H,KAAa,EAAG;IAC5C,OAAOd,KAAK,CAAC8J,IAAI,CAAIjB,IAAI,IAAM;MAC9B,OAAOC,aAAa,CAAEhI,KAAM,CAAC,KAAKgI,aAAa,CAAED,IAAK,CAAC;IACxD,CAAE,CAAC;EACJ;EAEA,SAASb,eAAeA,CAAA,EAAG;IAC1B,OAAOhI,KAAK,CAACmH,MAAM,GAAGlE,kBAAkB;EACzC;EAEA,SAASsE,YAAYA,CAAA,EAAG;IACvB,OAAOzE,oBAAoB,CAACqE,MAAM,KAAK,CAAC;EACzC;EAEA,SAASlC,kBAAkBA,CAAA,EAAG;IAC7B,OAAOpE,aAAa,CAAEiC,oBAAqB,CAAC,CAACqE,MAAM,GAAG,CAAC;EACxD;EAEA,SAAS1C,iBAAiBA,CAAEsF,uBAAuB,GAAG,IAAI,EAAG;IAC5D,MAAMC,oBAAoB,GAAGlH,oBAAoB,CAAC/B,IAAI,CAAC,CAAC,CAACoG,MAAM,GAAG,CAAC;IACnE,MAAM8C,mBAAmB,GACxBvD,sBAAsB,CAAE5D,oBAAqB,CAAC;IAC/C,MAAMoH,sBAAsB,GAAGD,mBAAmB,CAAC9C,MAAM,GAAG,CAAC;IAE7D,MAAMgD,qBAAqB,GAAG9F,QAAQ,CAAC,CAAC,IAAIxC,2BAA2B;IACvEyB,aAAa,CACZ6G,qBAAqB,IAClBH,oBAAoB,IAAIE,sBAC5B,CAAC;IAED,IAAKH,uBAAuB,EAAG;MAC9B,IACC9H,kCAAkC,IAClC+H,oBAAoB,IACpBE,sBAAsB,EACrB;QACD1G,0BAA0B,CAAE,CAAE,CAAC;QAC/BE,2BAA2B,CAAE,IAAK,CAAC;MACpC,CAAC,MAAM;QACNF,0BAA0B,CAAE,CAAC,CAAE,CAAC;QAChCE,2BAA2B,CAAE,KAAM,CAAC;MACrC;IACD;IAEA,IAAKsG,oBAAoB,EAAG;MAC3B,MAAMI,OAAO,GAAGF,sBAAsB,GACnC,IAAAG,aAAO,EACP;MACA,IAAAC,QAAE,EACD,0DAA0D,EAC1D,2DAA2D,EAC3DL,mBAAmB,CAAC9C,MACrB,CAAC,EACD8C,mBAAmB,CAAC9C,MACpB,CAAC,GACD,IAAA3G,QAAE,EAAE,aAAc,CAAC;MAEtByD,cAAc,CAAEmG,OAAO,EAAE,WAAY,CAAC;IACvC;EACD;EAEA,SAASG,oBAAoBA,CAAA,EAAG;IAC/B,MAAMC,UAAU,GAAGxK,KAAK,CAACsI,GAAG,CAAEmC,WAAY,CAAC;IAC3CD,UAAU,CAAC7B,MAAM,CAAEX,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE0C,WAAW,CAAC,CAAE,CAAC;IAExD,OAAOF,UAAU;EAClB;EAEA,SAASC,WAAWA,CACnB3J,KAAyB,EACzB2F,KAAa,EACb0B,MAAgC,EAC/B;IACD,MAAMc,MAAM,GAAGH,aAAa,CAAEhI,KAAM,CAAC;IACrC,MAAM6J,MAAM,GAAG,OAAO7J,KAAK,KAAK,QAAQ,GAAGA,KAAK,CAAC6J,MAAM,GAAGxJ,SAAS;IACnE,MAAMyJ,YAAY,GAAGnE,KAAK,GAAG,CAAC;IAC9B,MAAMoE,UAAU,GAAG1C,MAAM,CAAChB,MAAM;IAEhC,oBACC,IAAArH,WAAA,CAAAgL,GAAA,EAACtL,KAAA,CAAAuL,QAAQ;MAAAC,QAAA,eACR,IAAAlL,WAAA,CAAAgL,GAAA,EAAC1L,MAAA,CAAA6L,OAAK;QACLjL,KAAK,EAAGiJ,MAAQ;QAChB0B,MAAM,EAAGA,MAAQ;QACjBO,KAAK,EACJ,OAAOpK,KAAK,KAAK,QAAQ,GAAGA,KAAK,CAACoK,KAAK,GAAG/J,SAC1C;QACDP,gBAAgB,EAAGA,gBAAkB;QACrCuK,aAAa,EAAG9E,kBAAoB;QACpCjF,YAAY,EACT,OAAON,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAACM,YAAY,IACjDA,YACA;QACDgK,YAAY,EACX,OAAOtK,KAAK,KAAK,QAAQ,GACtBA,KAAK,CAACsK,YAAY,GAClBjK,SACH;QACDkK,YAAY,EACX,OAAOvK,KAAK,KAAK,QAAQ,GACtBA,KAAK,CAACuK,YAAY,GAClBlK,SACH;QACDE,QAAQ,EAAG,OAAO,KAAKsJ,MAAM,IAAItJ,QAAU;QAC3CE,QAAQ,EAAGA,QAAU;QACrBsJ,UAAU,EAAGA,UAAY;QACzBD,YAAY,EAAGA;MAAc,CAC7B;IAAC,GA3Ba,QAAQ,GAAG3B,MA4BjB,CAAC;EAEb;EAEA,SAASyB,WAAWA,CAAA,EAAG;IACtB,MAAMY,UAAU,GAAG;MAClB1I,UAAU;MACVzC,cAAc;MACdC,YAAY;MACZE,WAAW,EAAEN,KAAK,CAACmH,MAAM,KAAK,CAAC,GAAG7G,WAAW,GAAG,EAAE;MAClDe,QAAQ;MACRrB,KAAK,EAAE8C,oBAAoB;MAC3BkC,MAAM;MACN3B,UAAU;MACVE;IACD,CAAC;IAED,oBACC,IAAAzD,WAAA,CAAAgL,GAAA,EAACzL,WAAA,CAAA4L,OAAU;MAAA,GAELK,UAAU;MACftK,QAAQ,EACP,EAAIX,SAAS,IAAIL,KAAK,CAACmH,MAAM,IAAI9G,SAAS,CAAE,GACzCwG,oBAAoB,GACpB1F,SACH;MACDoK,GAAG,EAAGzH;IAAO,GAPT,OAQJ,CAAC;EAEJ;EAEA,MAAM0H,OAAO,GAAG,IAAAC,aAAI,EACnBhL,SAAS,EACT,8CAA8C,EAC9C;IACC,WAAW,EAAE0C,QAAQ;IACrB,aAAa,EAAE9B;EAChB,CACD,CAAC;EAED,IAAIqK,eAAe,GAAG;IACrBjL,SAAS,EAAE,6BAA6B;IACxCkL,QAAQ,EAAE,CAAC;EACZ,CAAC;EACD,MAAM1B,mBAAmB,GAAGvD,sBAAsB,CAAC,CAAC;EAEpD,IAAK,CAAErF,QAAQ,EAAG;IACjBqK,eAAe,GAAGE,MAAM,CAACC,MAAM,CAAE,CAAC,CAAC,EAAEH,eAAe,EAAE;MACrDrG,SAAS,EAAE,IAAAyG,wCAAmB,EAAEzG,SAAU,CAAC;MAC3Ca,UAAU;MACVhF,OAAO,EAAE2D;IACV,CAAE,CAAC;EACJ;;EAEA;EACA;EACA;EACA;EACA,oBACC,IAAA/E,WAAA,CAAAiM,IAAA;IAAA,GAAUL,eAAe;IAAAV,QAAA,GACtBzK,KAAK,iBACN,IAAAT,WAAA,CAAAgL,GAAA,EAACrL,kBAAA,CAAAuM,WAAW;MACXC,OAAO,EAAG,+BAAgCrJ,UAAU,EAAK;MACzDnC,SAAS,EAAC,oCAAoC;MAAAuK,QAAA,EAE5CzK;IAAK,CACK,CACb,eACD,IAAAT,WAAA,CAAAiM,IAAA;MACCR,GAAG,EAAGvH,cAAgB;MACtBvD,SAAS,EAAG+K,OAAS;MACrBG,QAAQ,EAAG,CAAC,CAAG;MACfO,WAAW,EAAG9F,kBAAoB;MAClC+F,YAAY,EAAG/F,kBAAoB;MAAA4E,QAAA,gBAEnC,IAAAlL,WAAA,CAAAgL,GAAA,EAACxL,OAAA,CAAA8M,yBAAyB;QACzBC,OAAO,EAAC,YAAY;QACpBC,KAAK,EAAC,QAAQ;QACdC,GAAG,EAAG,CAAG;QACTC,IAAI;QACJxK,qBAAqB,EAAGA,qBAAuB;QAC/CyK,SAAS,EAAG,CAAC,CAAEzM,KAAK,CAACmH,MAAQ;QAAA6D,QAAA,EAE3BT,oBAAoB,CAAC;MAAC,CACE,CAAC,EAC1BlH,UAAU,iBACX,IAAAvD,WAAA,CAAAgL,GAAA,EAACvL,gBAAA,CAAA0L,OAAe;QACfrI,UAAU,EAAGA,UAAY;QACzBwG,KAAK,EAAGvI,aAAa,CAAEiC,oBAAqB,CAAG;QAC/ClC,gBAAgB,EAAGA,gBAAkB;QACrCF,WAAW,EAAGuJ,mBAAqB;QACnCyC,aAAa,EAAGnJ,uBAAyB;QACzCoJ,cAAc,EAAGlJ,wBAA0B;QAC3CmJ,OAAO,EAAGrG,mBAAqB;QAC/BsG,QAAQ,EAAGjG,oBAAsB;QACjChF,wBAAwB,EAAGA;MAA0B,CACrD,CACD;IAAA,CACG,CAAC,EACJ,CAAEM,uBAAuB,iBAAI,IAAApC,WAAA,CAAAgL,GAAA,EAACpL,OAAA,CAAAoN,MAAM;MAACC,YAAY,EAAG;IAAG,CAAE,CAAC,EAC1DhL,uBAAuB,iBACxB,IAAAjC,WAAA,CAAAgL,GAAA,EAACrL,kBAAA,CAAAuN,UAAU;MACVC,EAAE,EAAG,2CAA4CrK,UAAU,EAAK;MAChEnC,SAAS,EAAC,mCAAmC;MAC7CyB,uBAAuB,EAAGA,uBAAyB;MAAA8I,QAAA,EAEjD1J,eAAe,GACd,IAAAd,QAAE,EACF,iDACA,CAAC,GACD,IAAAA,QAAE,EAAE,wCAAyC;IAAC,CACtC,CACZ;EAAA,CACG,CAAC;EAEP;AACD;AAAC,IAAA0M,QAAA,GAAAC,OAAA,CAAAlC,OAAA,GAEchL,cAAc","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_i18n","_compose","_a11y","_isShallowEqual","_deprecated","_token","_tokenInput","_styles","_suggestionsList","_flex","_baseControlStyles","_spacer","_useDeprecatedProps","_withIgnoreImeEvents","_deprecated36pxSize","_jsxRuntime","identity","value","FormTokenField","props","autoCapitalize","autoComplete","maxLength","placeholder","label","__","className","suggestions","maxSuggestions","displayTransform","saveTransform","token","trim","onChange","onInputChange","onFocus","undefined","isBorderless","disabled","tokenizeOnSpace","messages","added","removed","remove","__experimentalInvalid","__experimentalRenderItem","__experimentalExpandOnFocus","__experimentalValidateInput","__experimentalShowHowTo","__next40pxDefaultSize","__experimentalAutoSelectFirstMatch","__nextHasNoMarginBottom","tokenizeOnBlur","useDeprecated36pxDefaultSizeProp","deprecated","since","version","hint","maybeWarnDeprecated36pxSize","componentName","size","instanceId","useInstanceId","incompleteTokenValue","setIncompleteTokenValue","useState","inputOffsetFromEnd","setInputOffsetFromEnd","isActive","setIsActive","isExpanded","setIsExpanded","selectedSuggestionIndex","setSelectedSuggestionIndex","selectedSuggestionScroll","setSelectedSuggestionScroll","prevSuggestions","usePrevious","prevValue","input","useRef","tokensAndInput","debouncedSpeak","useDebounce","speak","useEffect","hasFocus","focus","suggestionsDidUpdate","isShallowEqual","updateSuggestions","current","ownerDocument","activeElement","onFocusHandler","event","target","onBlur","inputHasValidValue","addNewToken","hasFocusWithin","relatedTarget","onKeyDown","preventDefault","defaultPrevented","key","handleDeleteKey","deleteTokenBeforeInput","addCurrentToken","handleLeftArrowKey","handleUpArrowKey","handleRightArrowKey","handleDownArrowKey","deleteTokenAfterInput","handleEscapeKey","handleTabKey","onKeyPress","handleCommaKey","onContainerTouched","onTokenClickRemove","deleteToken","onSuggestionHovered","suggestion","index","getMatchingSuggestions","indexOf","onSuggestionSelected","onInputChangeHandler","text","separator","items","split","tokenValue","length","addNewTokens","slice","_deleteToken","isInputEmpty","moveInputBeforePreviousToken","moveInputAfterNextToken","collapseSuggestionsList","HTMLInputElement","moveInputToIndex","Math","max","prevInputOffsetFromEnd","min","getIndexOfInput","selectedSuggestion","getSelectedSuggestion","tokens","tokensToAdd","Set","map","filter","Boolean","valueContainsToken","newValue","splice","newTokens","item","getTokenValue","searchValue","_suggestions","_value","_maxSuggestions","_saveTransform","match","startsWithMatch","containsMatch","normalizedValue","includes","normalize","toLocaleLowerCase","forEach","push","concat","some","resetSelectedSuggestion","inputHasMinimumChars","matchingSuggestions","hasMatchingSuggestions","shouldExpandIfFocuses","message","sprintf","_n","renderTokensAndInput","components","renderToken","renderInput","status","termPosition","termsCount","jsx","FlexItem","children","default","title","onClickRemove","onMouseEnter","onMouseLeave","inputProps","ref","classes","clsx","tokenFieldProps","tabIndex","Object","assign","withIgnoreIMEEvents","jsxs","StyledLabel","htmlFor","onMouseDown","onTouchStart","TokensAndInputWrapperFlex","justify","align","gap","wrap","hasTokens","selectedIndex","scrollIntoView","onHover","onSelect","Spacer","marginBottom","StyledHelp","id","_default","exports"],"sources":["@wordpress/components/src/form-token-field/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport type { KeyboardEvent, MouseEvent, TouchEvent, FocusEvent } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { useDebounce, useInstanceId, usePrevious } from '@wordpress/compose';\nimport { speak } from '@wordpress/a11y';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport Token from './token';\nimport TokenInput from './token-input';\nimport { TokensAndInputWrapperFlex } from './styles';\nimport SuggestionsList from './suggestions-list';\nimport type { FormTokenFieldProps, TokenItem } from './types';\nimport { FlexItem } from '../flex';\nimport {\n\tStyledHelp,\n\tStyledLabel,\n} from '../base-control/styles/base-control-styles';\nimport { Spacer } from '../spacer';\nimport { useDeprecated36pxDefaultSizeProp } from '../utils/use-deprecated-props';\nimport { withIgnoreIMEEvents } from '../utils/with-ignore-ime-events';\nimport { maybeWarnDeprecated36pxSize } from '../utils/deprecated-36px-size';\n\nconst identity = ( value: string ) => value;\n\n/**\n * A `FormTokenField` is a field similar to the tags and categories fields in the interim editor chrome,\n * or the \"to\" field in Mail on OS X. Tokens can be entered by typing them or selecting them from a list of suggested tokens.\n *\n * Up to one hundred suggestions that match what the user has typed so far will be shown from which the user can pick from (auto-complete).\n * Tokens are separated by the \",\" character. Suggestions can be selected with the up or down arrows and added with the tab or enter key.\n *\n * The `value` property is handled in a manner similar to controlled form components.\n * See [Forms](https://react.dev/reference/react-dom/components#form-components) in the React Documentation for more information.\n */\nexport function FormTokenField( props: FormTokenFieldProps ) {\n\tconst {\n\t\tautoCapitalize,\n\t\tautoComplete,\n\t\tmaxLength,\n\t\tplaceholder,\n\t\tlabel = __( 'Add item' ),\n\t\tclassName,\n\t\tsuggestions = [],\n\t\tmaxSuggestions = 100,\n\t\tvalue = [],\n\t\tdisplayTransform = identity,\n\t\tsaveTransform = ( token ) => token.trim(),\n\t\tonChange = () => {},\n\t\tonInputChange = () => {},\n\t\tonFocus = undefined,\n\t\tisBorderless = false,\n\t\tdisabled = false,\n\t\ttokenizeOnSpace = false,\n\t\tmessages = {\n\t\t\tadded: __( 'Item added.' ),\n\t\t\tremoved: __( 'Item removed.' ),\n\t\t\tremove: __( 'Remove item' ),\n\t\t\t__experimentalInvalid: __( 'Invalid item' ),\n\t\t},\n\t\t__experimentalRenderItem,\n\t\t__experimentalExpandOnFocus = false,\n\t\t__experimentalValidateInput = () => true,\n\t\t__experimentalShowHowTo = true,\n\t\t__next40pxDefaultSize = false,\n\t\t__experimentalAutoSelectFirstMatch = false,\n\t\t__nextHasNoMarginBottom = false,\n\t\ttokenizeOnBlur = false,\n\t} = useDeprecated36pxDefaultSizeProp< FormTokenFieldProps >( props );\n\n\tif ( ! __nextHasNoMarginBottom ) {\n\t\tdeprecated( 'Bottom margin styles for wp.components.FormTokenField', {\n\t\t\tsince: '6.7',\n\t\t\tversion: '7.0',\n\t\t\thint: 'Set the `__nextHasNoMarginBottom` prop to true to start opting into the new styles, which will become the default in a future version.',\n\t\t} );\n\t}\n\n\tmaybeWarnDeprecated36pxSize( {\n\t\tcomponentName: 'FormTokenField',\n\t\tsize: undefined,\n\t\t__next40pxDefaultSize,\n\t} );\n\n\tconst instanceId = useInstanceId( FormTokenField );\n\n\t// We reset to these initial values again in the onBlur\n\tconst [ incompleteTokenValue, setIncompleteTokenValue ] = useState( '' );\n\tconst [ inputOffsetFromEnd, setInputOffsetFromEnd ] = useState( 0 );\n\tconst [ isActive, setIsActive ] = useState( false );\n\tconst [ isExpanded, setIsExpanded ] = useState( false );\n\tconst [ selectedSuggestionIndex, setSelectedSuggestionIndex ] =\n\t\tuseState( -1 );\n\tconst [ selectedSuggestionScroll, setSelectedSuggestionScroll ] =\n\t\tuseState( false );\n\n\tconst prevSuggestions = usePrevious< string[] >( suggestions );\n\tconst prevValue = usePrevious< ( string | TokenItem )[] >( value );\n\n\tconst input = useRef< HTMLInputElement >( null );\n\tconst tokensAndInput = useRef< HTMLInputElement >( null );\n\n\tconst debouncedSpeak = useDebounce( speak, 500 );\n\n\tuseEffect( () => {\n\t\t// Make sure to focus the input when the isActive state is true.\n\t\tif ( isActive && ! hasFocus() ) {\n\t\t\tfocus();\n\t\t}\n\t}, [ isActive ] );\n\n\tuseEffect( () => {\n\t\tconst suggestionsDidUpdate = ! isShallowEqual(\n\t\t\tsuggestions,\n\t\t\tprevSuggestions || []\n\t\t);\n\n\t\tif ( suggestionsDidUpdate || value !== prevValue ) {\n\t\t\tupdateSuggestions( suggestionsDidUpdate );\n\t\t}\n\n\t\t// TODO: updateSuggestions() should first be refactored so its actual deps are clearer.\n\t}, [ suggestions, prevSuggestions, value, prevValue ] );\n\n\tuseEffect( () => {\n\t\tupdateSuggestions();\n\t}, [ incompleteTokenValue ] );\n\n\tuseEffect( () => {\n\t\tupdateSuggestions();\n\t}, [ __experimentalAutoSelectFirstMatch ] );\n\n\tif ( disabled && isActive ) {\n\t\tsetIsActive( false );\n\t\tsetIncompleteTokenValue( '' );\n\t}\n\n\tfunction focus() {\n\t\tinput.current?.focus();\n\t}\n\n\tfunction hasFocus() {\n\t\treturn input.current === input.current?.ownerDocument.activeElement;\n\t}\n\n\tfunction onFocusHandler( event: FocusEvent ) {\n\t\t// If focus is on the input or on the container, set the isActive state to true.\n\t\tif ( hasFocus() || event.target === tokensAndInput.current ) {\n\t\t\tsetIsActive( true );\n\t\t\tsetIsExpanded( __experimentalExpandOnFocus || isExpanded );\n\t\t} else {\n\t\t\t/*\n\t\t\t * Otherwise, focus is on one of the token \"remove\" buttons and we\n\t\t\t * set the isActive state to false to prevent the input to be\n\t\t\t * re-focused, see componentDidUpdate().\n\t\t\t */\n\t\t\tsetIsActive( false );\n\t\t}\n\n\t\tif ( 'function' === typeof onFocus ) {\n\t\t\tonFocus( event );\n\t\t}\n\t}\n\n\tfunction onBlur( event: FocusEvent ) {\n\t\tif (\n\t\t\tinputHasValidValue() &&\n\t\t\t__experimentalValidateInput( incompleteTokenValue )\n\t\t) {\n\t\t\tsetIsActive( false );\n\t\t\tif ( tokenizeOnBlur && inputHasValidValue() ) {\n\t\t\t\taddNewToken( incompleteTokenValue );\n\t\t\t}\n\t\t} else {\n\t\t\t// Reset to initial state\n\t\t\tsetIncompleteTokenValue( '' );\n\t\t\tsetInputOffsetFromEnd( 0 );\n\t\t\tsetIsActive( false );\n\n\t\t\tif ( __experimentalExpandOnFocus ) {\n\t\t\t\t// If `__experimentalExpandOnFocus` is true, don't close the suggestions list when\n\t\t\t\t// the user clicks on it (`tokensAndInput` will be the element that caused the blur).\n\t\t\t\tconst hasFocusWithin =\n\t\t\t\t\tevent.relatedTarget === tokensAndInput.current;\n\t\t\t\tsetIsExpanded( hasFocusWithin );\n\t\t\t} else {\n\t\t\t\t// Else collapse the suggestion list. This will result in the suggestion list closing\n\t\t\t\t// after a suggestion has been submitted since that causes a blur.\n\t\t\t\tsetIsExpanded( false );\n\t\t\t}\n\n\t\t\tsetSelectedSuggestionIndex( -1 );\n\t\t\tsetSelectedSuggestionScroll( false );\n\t\t}\n\t}\n\n\tfunction onKeyDown( event: KeyboardEvent ) {\n\t\tlet preventDefault = false;\n\n\t\tif ( event.defaultPrevented ) {\n\t\t\treturn;\n\t\t}\n\t\tswitch ( event.key ) {\n\t\t\tcase 'Backspace':\n\t\t\t\tpreventDefault = handleDeleteKey( deleteTokenBeforeInput );\n\t\t\t\tbreak;\n\t\t\tcase 'Enter':\n\t\t\t\tpreventDefault = addCurrentToken();\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowLeft':\n\t\t\t\tpreventDefault = handleLeftArrowKey();\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowUp':\n\t\t\t\tpreventDefault = handleUpArrowKey();\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowRight':\n\t\t\t\tpreventDefault = handleRightArrowKey();\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowDown':\n\t\t\t\tpreventDefault = handleDownArrowKey();\n\t\t\t\tbreak;\n\t\t\tcase 'Delete':\n\t\t\t\tpreventDefault = handleDeleteKey( deleteTokenAfterInput );\n\t\t\t\tbreak;\n\t\t\tcase 'Space':\n\t\t\t\tif ( tokenizeOnSpace ) {\n\t\t\t\t\tpreventDefault = addCurrentToken();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'Escape':\n\t\t\t\tpreventDefault = handleEscapeKey( event );\n\t\t\t\tbreak;\n\t\t\tcase 'Tab':\n\t\t\t\tpreventDefault = handleTabKey( event );\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif ( preventDefault ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\tfunction onKeyPress( event: KeyboardEvent ) {\n\t\tlet preventDefault = false;\n\n\t\tswitch ( event.key ) {\n\t\t\tcase ',':\n\t\t\t\tpreventDefault = handleCommaKey();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif ( preventDefault ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\tfunction onContainerTouched( event: MouseEvent | TouchEvent ) {\n\t\t// Prevent clicking/touching the tokensAndInput container from blurring\n\t\t// the input and adding the current token.\n\t\tif ( event.target === tokensAndInput.current && isActive ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\tfunction onTokenClickRemove( event: { value: string } ) {\n\t\tdeleteToken( event.value );\n\t\tfocus();\n\t}\n\n\tfunction onSuggestionHovered( suggestion: string ) {\n\t\tconst index = getMatchingSuggestions().indexOf( suggestion );\n\n\t\tif ( index >= 0 ) {\n\t\t\tsetSelectedSuggestionIndex( index );\n\t\t\tsetSelectedSuggestionScroll( false );\n\t\t}\n\t}\n\n\tfunction onSuggestionSelected( suggestion: string ) {\n\t\taddNewToken( suggestion );\n\t}\n\n\tfunction onInputChangeHandler( event: { value: string } ) {\n\t\tconst text = event.value;\n\t\tconst separator = tokenizeOnSpace ? /[ ,\\t]+/ : /[,\\t]+/;\n\t\tconst items = text.split( separator );\n\t\tconst tokenValue = items[ items.length - 1 ] || '';\n\n\t\tif ( items.length > 1 ) {\n\t\t\taddNewTokens( items.slice( 0, -1 ) );\n\t\t}\n\t\tsetIncompleteTokenValue( tokenValue );\n\t\tonInputChange( tokenValue );\n\t}\n\n\tfunction handleDeleteKey( _deleteToken: () => void ) {\n\t\tlet preventDefault = false;\n\t\tif ( hasFocus() && isInputEmpty() ) {\n\t\t\t_deleteToken();\n\t\t\tpreventDefault = true;\n\t\t}\n\n\t\treturn preventDefault;\n\t}\n\n\tfunction handleLeftArrowKey() {\n\t\tlet preventDefault = false;\n\t\tif ( isInputEmpty() ) {\n\t\t\tmoveInputBeforePreviousToken();\n\t\t\tpreventDefault = true;\n\t\t}\n\n\t\treturn preventDefault;\n\t}\n\n\tfunction handleRightArrowKey() {\n\t\tlet preventDefault = false;\n\t\tif ( isInputEmpty() ) {\n\t\t\tmoveInputAfterNextToken();\n\t\t\tpreventDefault = true;\n\t\t}\n\n\t\treturn preventDefault;\n\t}\n\n\tfunction handleUpArrowKey() {\n\t\tsetSelectedSuggestionIndex( ( index ) => {\n\t\t\treturn (\n\t\t\t\t( index === 0\n\t\t\t\t\t? getMatchingSuggestions(\n\t\t\t\t\t\t\tincompleteTokenValue,\n\t\t\t\t\t\t\tsuggestions,\n\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\tmaxSuggestions,\n\t\t\t\t\t\t\tsaveTransform\n\t\t\t\t\t ).length\n\t\t\t\t\t: index ) - 1\n\t\t\t);\n\t\t} );\n\t\tsetSelectedSuggestionScroll( true );\n\n\t\treturn true; // PreventDefault.\n\t}\n\n\tfunction handleDownArrowKey() {\n\t\tsetSelectedSuggestionIndex( ( index ) => {\n\t\t\treturn (\n\t\t\t\t( index + 1 ) %\n\t\t\t\tgetMatchingSuggestions(\n\t\t\t\t\tincompleteTokenValue,\n\t\t\t\t\tsuggestions,\n\t\t\t\t\tvalue,\n\t\t\t\t\tmaxSuggestions,\n\t\t\t\t\tsaveTransform\n\t\t\t\t).length\n\t\t\t);\n\t\t} );\n\n\t\tsetSelectedSuggestionScroll( true );\n\t\treturn true; // PreventDefault.\n\t}\n\n\tfunction collapseSuggestionsList( event: KeyboardEvent ) {\n\t\tif ( event.target instanceof HTMLInputElement ) {\n\t\t\tsetIncompleteTokenValue( event.target.value );\n\t\t\tsetIsExpanded( false );\n\t\t\tsetSelectedSuggestionIndex( -1 );\n\t\t\tsetSelectedSuggestionScroll( false );\n\t\t}\n\t}\n\n\tfunction handleEscapeKey( event: KeyboardEvent ) {\n\t\tcollapseSuggestionsList( event );\n\t\treturn true; // PreventDefault.\n\t}\n\n\tfunction handleTabKey( event: KeyboardEvent ) {\n\t\tcollapseSuggestionsList( event );\n\t\treturn false; // Do not prevent the default behavior.\n\t}\n\n\tfunction handleCommaKey() {\n\t\tif ( inputHasValidValue() ) {\n\t\t\taddNewToken( incompleteTokenValue );\n\t\t}\n\n\t\treturn true; // PreventDefault.\n\t}\n\n\tfunction moveInputToIndex( index: number ) {\n\t\tsetInputOffsetFromEnd( value.length - Math.max( index, -1 ) - 1 );\n\t}\n\n\tfunction moveInputBeforePreviousToken() {\n\t\tsetInputOffsetFromEnd( ( prevInputOffsetFromEnd ) => {\n\t\t\treturn Math.min( prevInputOffsetFromEnd + 1, value.length );\n\t\t} );\n\t}\n\n\tfunction moveInputAfterNextToken() {\n\t\tsetInputOffsetFromEnd( ( prevInputOffsetFromEnd ) => {\n\t\t\treturn Math.max( prevInputOffsetFromEnd - 1, 0 );\n\t\t} );\n\t}\n\n\tfunction deleteTokenBeforeInput() {\n\t\tconst index = getIndexOfInput() - 1;\n\n\t\tif ( index > -1 ) {\n\t\t\tdeleteToken( value[ index ] );\n\t\t}\n\t}\n\n\tfunction deleteTokenAfterInput() {\n\t\tconst index = getIndexOfInput();\n\n\t\tif ( index < value.length ) {\n\t\t\tdeleteToken( value[ index ] );\n\t\t\t// Update input offset since it's the offset from the last token.\n\t\t\tmoveInputToIndex( index );\n\t\t}\n\t}\n\n\tfunction addCurrentToken() {\n\t\tlet preventDefault = false;\n\t\tconst selectedSuggestion = getSelectedSuggestion();\n\n\t\tif ( selectedSuggestion ) {\n\t\t\taddNewToken( selectedSuggestion );\n\t\t\tpreventDefault = true;\n\t\t} else if ( inputHasValidValue() ) {\n\t\t\taddNewToken( incompleteTokenValue );\n\t\t\tpreventDefault = true;\n\t\t}\n\n\t\treturn preventDefault;\n\t}\n\n\tfunction addNewTokens( tokens: string[] ) {\n\t\tconst tokensToAdd = [\n\t\t\t...new Set(\n\t\t\t\ttokens\n\t\t\t\t\t.map( saveTransform )\n\t\t\t\t\t.filter( Boolean )\n\t\t\t\t\t.filter( ( token ) => ! valueContainsToken( token ) )\n\t\t\t),\n\t\t];\n\n\t\tif ( tokensToAdd.length > 0 ) {\n\t\t\tconst newValue = [ ...value ];\n\t\t\tnewValue.splice( getIndexOfInput(), 0, ...tokensToAdd );\n\t\t\tonChange( newValue );\n\t\t}\n\t}\n\n\tfunction addNewToken( token: string ) {\n\t\tif ( ! __experimentalValidateInput( token ) ) {\n\t\t\tspeak( messages.__experimentalInvalid, 'assertive' );\n\t\t\treturn;\n\t\t}\n\t\taddNewTokens( [ token ] );\n\t\tspeak( messages.added, 'assertive' );\n\n\t\tsetIncompleteTokenValue( '' );\n\t\tsetSelectedSuggestionIndex( -1 );\n\t\tsetSelectedSuggestionScroll( false );\n\t\tsetIsExpanded( ! __experimentalExpandOnFocus );\n\n\t\tif ( isActive && ! tokenizeOnBlur ) {\n\t\t\tfocus();\n\t\t}\n\t}\n\n\tfunction deleteToken( token: string | TokenItem ) {\n\t\tconst newTokens = value.filter( ( item ) => {\n\t\t\treturn getTokenValue( item ) !== getTokenValue( token );\n\t\t} );\n\t\tonChange( newTokens );\n\t\tspeak( messages.removed, 'assertive' );\n\t}\n\n\tfunction getTokenValue( token: { value: string } | string ) {\n\t\tif ( 'object' === typeof token ) {\n\t\t\treturn token.value;\n\t\t}\n\n\t\treturn token;\n\t}\n\n\tfunction getMatchingSuggestions(\n\t\tsearchValue = incompleteTokenValue,\n\t\t_suggestions = suggestions,\n\t\t_value = value,\n\t\t_maxSuggestions = maxSuggestions,\n\t\t_saveTransform = saveTransform\n\t) {\n\t\tlet match = _saveTransform( searchValue );\n\t\tconst startsWithMatch: string[] = [];\n\t\tconst containsMatch: string[] = [];\n\t\tconst normalizedValue = _value.map( ( item ) => {\n\t\t\tif ( typeof item === 'string' ) {\n\t\t\t\treturn item;\n\t\t\t}\n\t\t\treturn item.value;\n\t\t} );\n\n\t\tif ( match.length === 0 ) {\n\t\t\t_suggestions = _suggestions.filter(\n\t\t\t\t( suggestion ) => ! normalizedValue.includes( suggestion )\n\t\t\t);\n\t\t} else {\n\t\t\tmatch = match.normalize( 'NFKC' ).toLocaleLowerCase();\n\n\t\t\t_suggestions.forEach( ( suggestion ) => {\n\t\t\t\tconst index = suggestion\n\t\t\t\t\t.normalize( 'NFKC' )\n\t\t\t\t\t.toLocaleLowerCase()\n\t\t\t\t\t.indexOf( match );\n\t\t\t\tif ( normalizedValue.indexOf( suggestion ) === -1 ) {\n\t\t\t\t\tif ( index === 0 ) {\n\t\t\t\t\t\tstartsWithMatch.push( suggestion );\n\t\t\t\t\t} else if ( index > 0 ) {\n\t\t\t\t\t\tcontainsMatch.push( suggestion );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t_suggestions = startsWithMatch.concat( containsMatch );\n\t\t}\n\n\t\treturn _suggestions.slice( 0, _maxSuggestions );\n\t}\n\n\tfunction getSelectedSuggestion() {\n\t\tif ( selectedSuggestionIndex !== -1 ) {\n\t\t\treturn getMatchingSuggestions()[ selectedSuggestionIndex ];\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tfunction valueContainsToken( token: string ) {\n\t\treturn value.some( ( item ) => {\n\t\t\treturn getTokenValue( token ) === getTokenValue( item );\n\t\t} );\n\t}\n\n\tfunction getIndexOfInput() {\n\t\treturn value.length - inputOffsetFromEnd;\n\t}\n\n\tfunction isInputEmpty() {\n\t\treturn incompleteTokenValue.length === 0;\n\t}\n\n\tfunction inputHasValidValue() {\n\t\treturn saveTransform( incompleteTokenValue ).length > 0;\n\t}\n\n\tfunction updateSuggestions( resetSelectedSuggestion = true ) {\n\t\tconst inputHasMinimumChars = incompleteTokenValue.trim().length > 1;\n\t\tconst matchingSuggestions =\n\t\t\tgetMatchingSuggestions( incompleteTokenValue );\n\t\tconst hasMatchingSuggestions = matchingSuggestions.length > 0;\n\n\t\tconst shouldExpandIfFocuses = hasFocus() && __experimentalExpandOnFocus;\n\t\tsetIsExpanded(\n\t\t\tshouldExpandIfFocuses ||\n\t\t\t\t( inputHasMinimumChars && hasMatchingSuggestions )\n\t\t);\n\n\t\tif ( resetSelectedSuggestion ) {\n\t\t\tif (\n\t\t\t\t__experimentalAutoSelectFirstMatch &&\n\t\t\t\tinputHasMinimumChars &&\n\t\t\t\thasMatchingSuggestions\n\t\t\t) {\n\t\t\t\tsetSelectedSuggestionIndex( 0 );\n\t\t\t\tsetSelectedSuggestionScroll( true );\n\t\t\t} else {\n\t\t\t\tsetSelectedSuggestionIndex( -1 );\n\t\t\t\tsetSelectedSuggestionScroll( false );\n\t\t\t}\n\t\t}\n\n\t\tif ( inputHasMinimumChars ) {\n\t\t\tconst message = hasMatchingSuggestions\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: %d: number of results. */\n\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t'%d result found, use up and down arrow keys to navigate.',\n\t\t\t\t\t\t\t'%d results found, use up and down arrow keys to navigate.',\n\t\t\t\t\t\t\tmatchingSuggestions.length\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmatchingSuggestions.length\n\t\t\t\t )\n\t\t\t\t: __( 'No results.' );\n\n\t\t\tdebouncedSpeak( message, 'assertive' );\n\t\t}\n\t}\n\n\tfunction renderTokensAndInput() {\n\t\tconst components = value.map( renderToken );\n\t\tcomponents.splice( getIndexOfInput(), 0, renderInput() );\n\n\t\treturn components;\n\t}\n\n\tfunction renderToken(\n\t\ttoken: string | TokenItem,\n\t\tindex: number,\n\t\ttokens: ( string | TokenItem )[]\n\t) {\n\t\tconst _value = getTokenValue( token );\n\t\tconst status = typeof token !== 'string' ? token.status : undefined;\n\t\tconst termPosition = index + 1;\n\t\tconst termsCount = tokens.length;\n\n\t\treturn (\n\t\t\t<FlexItem key={ 'token-' + _value }>\n\t\t\t\t<Token\n\t\t\t\t\tvalue={ _value }\n\t\t\t\t\tstatus={ status }\n\t\t\t\t\ttitle={\n\t\t\t\t\t\ttypeof token !== 'string' ? token.title : undefined\n\t\t\t\t\t}\n\t\t\t\t\tdisplayTransform={ displayTransform }\n\t\t\t\t\tonClickRemove={ onTokenClickRemove }\n\t\t\t\t\tisBorderless={\n\t\t\t\t\t\t( typeof token !== 'string' && token.isBorderless ) ||\n\t\t\t\t\t\tisBorderless\n\t\t\t\t\t}\n\t\t\t\t\tonMouseEnter={\n\t\t\t\t\t\ttypeof token !== 'string'\n\t\t\t\t\t\t\t? token.onMouseEnter\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\tonMouseLeave={\n\t\t\t\t\t\ttypeof token !== 'string'\n\t\t\t\t\t\t\t? token.onMouseLeave\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\tdisabled={ 'error' !== status && disabled }\n\t\t\t\t\tmessages={ messages }\n\t\t\t\t\ttermsCount={ termsCount }\n\t\t\t\t\ttermPosition={ termPosition }\n\t\t\t\t/>\n\t\t\t</FlexItem>\n\t\t);\n\t}\n\n\tfunction renderInput() {\n\t\tconst inputProps = {\n\t\t\tinstanceId,\n\t\t\tautoCapitalize,\n\t\t\tautoComplete,\n\t\t\tplaceholder: value.length === 0 ? placeholder : '',\n\t\t\tdisabled,\n\t\t\tvalue: incompleteTokenValue,\n\t\t\tonBlur,\n\t\t\tisExpanded,\n\t\t\tselectedSuggestionIndex,\n\t\t};\n\n\t\treturn (\n\t\t\t<TokenInput\n\t\t\t\tkey=\"input\"\n\t\t\t\t{ ...inputProps }\n\t\t\t\tonChange={\n\t\t\t\t\t! ( maxLength && value.length >= maxLength )\n\t\t\t\t\t\t? onInputChangeHandler\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tref={ input }\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst classes = clsx(\n\t\tclassName,\n\t\t'components-form-token-field__input-container',\n\t\t{\n\t\t\t'is-active': isActive,\n\t\t\t'is-disabled': disabled,\n\t\t}\n\t);\n\n\tlet tokenFieldProps = {\n\t\tclassName: 'components-form-token-field',\n\t\ttabIndex: -1,\n\t};\n\tconst matchingSuggestions = getMatchingSuggestions();\n\n\tif ( ! disabled ) {\n\t\ttokenFieldProps = Object.assign( {}, tokenFieldProps, {\n\t\t\tonKeyDown: withIgnoreIMEEvents( onKeyDown ),\n\t\t\tonKeyPress,\n\t\t\tonFocus: onFocusHandler,\n\t\t} );\n\t}\n\n\t// Disable reason: There is no appropriate role which describes the\n\t// input container intended accessible usability.\n\t// TODO: Refactor click detection to use blur to stop propagation.\n\t/* eslint-disable jsx-a11y/no-static-element-interactions */\n\treturn (\n\t\t<div { ...tokenFieldProps }>\n\t\t\t{ label && (\n\t\t\t\t<StyledLabel\n\t\t\t\t\thtmlFor={ `components-form-token-input-${ instanceId }` }\n\t\t\t\t\tclassName=\"components-form-token-field__label\"\n\t\t\t\t>\n\t\t\t\t\t{ label }\n\t\t\t\t</StyledLabel>\n\t\t\t) }\n\t\t\t<div\n\t\t\t\tref={ tokensAndInput }\n\t\t\t\tclassName={ classes }\n\t\t\t\ttabIndex={ -1 }\n\t\t\t\tonMouseDown={ onContainerTouched }\n\t\t\t\tonTouchStart={ onContainerTouched }\n\t\t\t>\n\t\t\t\t<TokensAndInputWrapperFlex\n\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\talign=\"center\"\n\t\t\t\t\tgap={ 1 }\n\t\t\t\t\twrap\n\t\t\t\t\t__next40pxDefaultSize={ __next40pxDefaultSize }\n\t\t\t\t\thasTokens={ !! value.length }\n\t\t\t\t>\n\t\t\t\t\t{ renderTokensAndInput() }\n\t\t\t\t</TokensAndInputWrapperFlex>\n\t\t\t\t{ isExpanded && (\n\t\t\t\t\t<SuggestionsList\n\t\t\t\t\t\tinstanceId={ instanceId }\n\t\t\t\t\t\tmatch={ saveTransform( incompleteTokenValue ) }\n\t\t\t\t\t\tdisplayTransform={ displayTransform }\n\t\t\t\t\t\tsuggestions={ matchingSuggestions }\n\t\t\t\t\t\tselectedIndex={ selectedSuggestionIndex }\n\t\t\t\t\t\tscrollIntoView={ selectedSuggestionScroll }\n\t\t\t\t\t\tonHover={ onSuggestionHovered }\n\t\t\t\t\t\tonSelect={ onSuggestionSelected }\n\t\t\t\t\t\t__experimentalRenderItem={ __experimentalRenderItem }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t{ ! __nextHasNoMarginBottom && <Spacer marginBottom={ 2 } /> }\n\t\t\t{ __experimentalShowHowTo && (\n\t\t\t\t<StyledHelp\n\t\t\t\t\tid={ `components-form-token-suggestions-howto-${ instanceId }` }\n\t\t\t\t\tclassName=\"components-form-token-field__help\"\n\t\t\t\t\t__nextHasNoMarginBottom={ __nextHasNoMarginBottom }\n\t\t\t\t>\n\t\t\t\t\t{ tokenizeOnSpace\n\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t'Separate with commas, spaces, or the Enter key.'\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Separate with commas or the Enter key.' ) }\n\t\t\t\t</StyledHelp>\n\t\t\t) }\n\t\t</div>\n\t);\n\t/* eslint-enable jsx-a11y/no-static-element-interactions */\n}\n\nexport default FormTokenField;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -52,7 +52,7 @@ function Token({
|
|
|
52
52
|
});
|
|
53
53
|
const transformedValue = displayTransform(value);
|
|
54
54
|
const termPositionAndCount = (0, _i18n.sprintf)(/* translators: 1: term name, 2: term position in a set of terms, 3: total term set count. */
|
|
55
|
-
(0, _i18n.__)('%1$s (%2$
|
|
55
|
+
(0, _i18n.__)('%1$s (%2$d of %3$d)'), transformedValue, termPosition, termsCount);
|
|
56
56
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
|
|
57
57
|
className: tokenClasses,
|
|
58
58
|
onMouseEnter: onMouseEnter,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_compose","_i18n","_icons","_button","_visuallyHidden","_jsxRuntime","noop","Token","value","status","title","displayTransform","isBorderless","disabled","onClickRemove","onMouseEnter","onMouseLeave","messages","termPosition","termsCount","instanceId","useInstanceId","tokenClasses","clsx","onClick","transformedValue","termPositionAndCount","sprintf","__","jsxs","className","children","id","jsx","VisuallyHidden","as","default","size","icon","closeSmall","undefined","label","remove"],"sources":["@wordpress/components/src/form-token-field/token.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport { VisuallyHidden } from '../visually-hidden';\nimport type { TokenProps } from './types';\n\nconst noop = () => {};\n\nexport default function Token( {\n\tvalue,\n\tstatus,\n\ttitle,\n\tdisplayTransform,\n\tisBorderless = false,\n\tdisabled = false,\n\tonClickRemove = noop,\n\tonMouseEnter,\n\tonMouseLeave,\n\tmessages,\n\ttermPosition,\n\ttermsCount,\n}: TokenProps ) {\n\tconst instanceId = useInstanceId( Token );\n\tconst tokenClasses = clsx( 'components-form-token-field__token', {\n\t\t'is-error': 'error' === status,\n\t\t'is-success': 'success' === status,\n\t\t'is-validating': 'validating' === status,\n\t\t'is-borderless': isBorderless,\n\t\t'is-disabled': disabled,\n\t} );\n\n\tconst onClick = () => onClickRemove( { value } );\n\n\tconst transformedValue = displayTransform( value );\n\tconst termPositionAndCount = sprintf(\n\t\t/* translators: 1: term name, 2: term position in a set of terms, 3: total term set count. */\n\t\t__( '%1$s (%2$
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_compose","_i18n","_icons","_button","_visuallyHidden","_jsxRuntime","noop","Token","value","status","title","displayTransform","isBorderless","disabled","onClickRemove","onMouseEnter","onMouseLeave","messages","termPosition","termsCount","instanceId","useInstanceId","tokenClasses","clsx","onClick","transformedValue","termPositionAndCount","sprintf","__","jsxs","className","children","id","jsx","VisuallyHidden","as","default","size","icon","closeSmall","undefined","label","remove"],"sources":["@wordpress/components/src/form-token-field/token.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport { VisuallyHidden } from '../visually-hidden';\nimport type { TokenProps } from './types';\n\nconst noop = () => {};\n\nexport default function Token( {\n\tvalue,\n\tstatus,\n\ttitle,\n\tdisplayTransform,\n\tisBorderless = false,\n\tdisabled = false,\n\tonClickRemove = noop,\n\tonMouseEnter,\n\tonMouseLeave,\n\tmessages,\n\ttermPosition,\n\ttermsCount,\n}: TokenProps ) {\n\tconst instanceId = useInstanceId( Token );\n\tconst tokenClasses = clsx( 'components-form-token-field__token', {\n\t\t'is-error': 'error' === status,\n\t\t'is-success': 'success' === status,\n\t\t'is-validating': 'validating' === status,\n\t\t'is-borderless': isBorderless,\n\t\t'is-disabled': disabled,\n\t} );\n\n\tconst onClick = () => onClickRemove( { value } );\n\n\tconst transformedValue = displayTransform( value );\n\tconst termPositionAndCount = sprintf(\n\t\t/* translators: 1: term name, 2: term position in a set of terms, 3: total term set count. */\n\t\t__( '%1$s (%2$d of %3$d)' ),\n\t\ttransformedValue,\n\t\ttermPosition,\n\t\ttermsCount\n\t);\n\n\treturn (\n\t\t<span\n\t\t\tclassName={ tokenClasses }\n\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\ttitle={ title }\n\t\t>\n\t\t\t<span\n\t\t\t\tclassName=\"components-form-token-field__token-text\"\n\t\t\t\tid={ `components-form-token-field__token-text-${ instanceId }` }\n\t\t\t>\n\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t{ termPositionAndCount }\n\t\t\t\t</VisuallyHidden>\n\t\t\t\t<span aria-hidden=\"true\">{ transformedValue }</span>\n\t\t\t</span>\n\n\t\t\t<Button\n\t\t\t\tclassName=\"components-form-token-field__remove-token\"\n\t\t\t\tsize=\"small\"\n\t\t\t\ticon={ closeSmall }\n\t\t\t\tonClick={ ! disabled ? onClick : undefined }\n\t\t\t\t// Disable reason: Even when FormTokenField itself is accessibly disabled, token reset buttons shouldn't be in the tab sequence.\n\t\t\t\t// eslint-disable-next-line no-restricted-syntax\n\t\t\t\tdisabled={ disabled }\n\t\t\t\tlabel={ messages.remove }\n\t\t\t\taria-describedby={ `components-form-token-field__token-text-${ instanceId }` }\n\t\t\t/>\n\t\t</span>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAKA,IAAAI,OAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AAAoD,IAAAM,WAAA,GAAAN,OAAA;AAhBpD;AACA;AACA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;;AAKA,MAAMO,IAAI,GAAGA,CAAA,KAAM,CAAC,CAAC;AAEN,SAASC,KAAKA,CAAE;EAC9BC,KAAK;EACLC,MAAM;EACNC,KAAK;EACLC,gBAAgB;EAChBC,YAAY,GAAG,KAAK;EACpBC,QAAQ,GAAG,KAAK;EAChBC,aAAa,GAAGR,IAAI;EACpBS,YAAY;EACZC,YAAY;EACZC,QAAQ;EACRC,YAAY;EACZC;AACW,CAAC,EAAG;EACf,MAAMC,UAAU,GAAG,IAAAC,sBAAa,EAAEd,KAAM,CAAC;EACzC,MAAMe,YAAY,GAAG,IAAAC,aAAI,EAAE,oCAAoC,EAAE;IAChE,UAAU,EAAE,OAAO,KAAKd,MAAM;IAC9B,YAAY,EAAE,SAAS,KAAKA,MAAM;IAClC,eAAe,EAAE,YAAY,KAAKA,MAAM;IACxC,eAAe,EAAEG,YAAY;IAC7B,aAAa,EAAEC;EAChB,CAAE,CAAC;EAEH,MAAMW,OAAO,GAAGA,CAAA,KAAMV,aAAa,CAAE;IAAEN;EAAM,CAAE,CAAC;EAEhD,MAAMiB,gBAAgB,GAAGd,gBAAgB,CAAEH,KAAM,CAAC;EAClD,MAAMkB,oBAAoB,GAAG,IAAAC,aAAO,EACnC;EACA,IAAAC,QAAE,EAAE,qBAAsB,CAAC,EAC3BH,gBAAgB,EAChBP,YAAY,EACZC,UACD,CAAC;EAED,oBACC,IAAAd,WAAA,CAAAwB,IAAA;IACCC,SAAS,EAAGR,YAAc;IAC1BP,YAAY,EAAGA,YAAc;IAC7BC,YAAY,EAAGA,YAAc;IAC7BN,KAAK,EAAGA,KAAO;IAAAqB,QAAA,gBAEf,IAAA1B,WAAA,CAAAwB,IAAA;MACCC,SAAS,EAAC,yCAAyC;MACnDE,EAAE,EAAG,2CAA4CZ,UAAU,EAAK;MAAAW,QAAA,gBAEhE,IAAA1B,WAAA,CAAA4B,GAAA,EAAC7B,eAAA,CAAA8B,cAAc;QAACC,EAAE,EAAC,MAAM;QAAAJ,QAAA,EACtBL;MAAoB,CACP,CAAC,eACjB,IAAArB,WAAA,CAAA4B,GAAA;QAAM,eAAY,MAAM;QAAAF,QAAA,EAAGN;MAAgB,CAAQ,CAAC;IAAA,CAC/C,CAAC,eAEP,IAAApB,WAAA,CAAA4B,GAAA,EAAC9B,OAAA,CAAAiC,OAAM;MACNN,SAAS,EAAC,2CAA2C;MACrDO,IAAI,EAAC,OAAO;MACZC,IAAI,EAAGC,iBAAY;MACnBf,OAAO,EAAG,CAAEX,QAAQ,GAAGW,OAAO,GAAGgB;MACjC;MACA;MAAA;MACA3B,QAAQ,EAAGA,QAAU;MACrB4B,KAAK,EAAGxB,QAAQ,CAACyB,MAAQ;MACzB,oBAAmB,2CAA4CtB,UAAU;IAAK,CAC9E,CAAC;EAAA,CACG,CAAC;AAET","ignoreList":[]}
|
package/build/index.js
CHANGED
|
@@ -172,12 +172,24 @@ Object.defineProperty(exports, "Dashicon", {
|
|
|
172
172
|
return _dashicon.default;
|
|
173
173
|
}
|
|
174
174
|
});
|
|
175
|
+
Object.defineProperty(exports, "DateCalendar", {
|
|
176
|
+
enumerable: true,
|
|
177
|
+
get: function () {
|
|
178
|
+
return _calendar.DateCalendar;
|
|
179
|
+
}
|
|
180
|
+
});
|
|
175
181
|
Object.defineProperty(exports, "DatePicker", {
|
|
176
182
|
enumerable: true,
|
|
177
183
|
get: function () {
|
|
178
184
|
return _dateTime.DatePicker;
|
|
179
185
|
}
|
|
180
186
|
});
|
|
187
|
+
Object.defineProperty(exports, "DateRangeCalendar", {
|
|
188
|
+
enumerable: true,
|
|
189
|
+
get: function () {
|
|
190
|
+
return _calendar.DateRangeCalendar;
|
|
191
|
+
}
|
|
192
|
+
});
|
|
181
193
|
Object.defineProperty(exports, "DateTimePicker", {
|
|
182
194
|
enumerable: true,
|
|
183
195
|
get: function () {
|
|
@@ -562,6 +574,12 @@ Object.defineProperty(exports, "Spinner", {
|
|
|
562
574
|
return _spinner.default;
|
|
563
575
|
}
|
|
564
576
|
});
|
|
577
|
+
Object.defineProperty(exports, "TZDate", {
|
|
578
|
+
enumerable: true,
|
|
579
|
+
get: function () {
|
|
580
|
+
return _calendar.TZDate;
|
|
581
|
+
}
|
|
582
|
+
});
|
|
565
583
|
Object.defineProperty(exports, "TabPanel", {
|
|
566
584
|
enumerable: true,
|
|
567
585
|
get: function () {
|
|
@@ -1169,6 +1187,7 @@ var _boxControl = _interopRequireWildcard(require("./box-control"));
|
|
|
1169
1187
|
var _button = _interopRequireDefault(require("./button"));
|
|
1170
1188
|
var _buttonGroup = _interopRequireDefault(require("./button-group"));
|
|
1171
1189
|
var _card = require("./card");
|
|
1190
|
+
var _calendar = require("./calendar");
|
|
1172
1191
|
var _checkboxControl = _interopRequireDefault(require("./checkbox-control"));
|
|
1173
1192
|
var _clipboardButton = _interopRequireDefault(require("./clipboard-button"));
|
|
1174
1193
|
var _paletteEdit = _interopRequireDefault(require("./palette-edit"));
|