@wordpress/components 25.1.4 → 25.3.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 +20 -5
- package/build/guide/index.js +10 -11
- package/build/guide/index.js.map +1 -1
- package/build/mobile/bottom-sheet/cell.native.js +2 -1
- package/build/mobile/bottom-sheet/cell.native.js.map +1 -1
- package/build/number-control/index.js.map +1 -1
- package/build/range-control/index.js +7 -1
- package/build/range-control/index.js.map +1 -1
- package/build/range-control/input-range.js.map +1 -1
- package/build/range-control/styles/range-control-styles.js +35 -36
- package/build/range-control/styles/range-control-styles.js.map +1 -1
- package/build/unit-control/index.js +4 -2
- package/build/unit-control/index.js.map +1 -1
- package/build-module/guide/index.js +10 -10
- package/build-module/guide/index.js.map +1 -1
- package/build-module/mobile/bottom-sheet/cell.native.js +2 -1
- package/build-module/mobile/bottom-sheet/cell.native.js.map +1 -1
- package/build-module/number-control/index.js.map +1 -1
- package/build-module/range-control/index.js +6 -1
- package/build-module/range-control/index.js.map +1 -1
- package/build-module/range-control/input-range.js.map +1 -1
- package/build-module/range-control/styles/range-control-styles.js +35 -36
- package/build-module/range-control/styles/range-control-styles.js.map +1 -1
- package/build-module/unit-control/index.js +3 -2
- package/build-module/unit-control/index.js.map +1 -1
- package/build-style/style-rtl.css +3 -7
- package/build-style/style.css +3 -7
- package/build-types/color-picker/styles.d.ts +2 -1
- package/build-types/color-picker/styles.d.ts.map +1 -1
- package/build-types/guide/index.d.ts.map +1 -1
- package/build-types/number-control/index.d.ts.map +1 -1
- package/build-types/range-control/index.d.ts +15 -2
- package/build-types/range-control/index.d.ts.map +1 -1
- package/build-types/range-control/input-range.d.ts.map +1 -1
- package/build-types/range-control/styles/range-control-styles.d.ts +4 -2
- package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
- package/build-types/range-control/types.d.ts +6 -0
- package/build-types/range-control/types.d.ts.map +1 -1
- package/build-types/unit-control/index.d.ts.map +1 -1
- package/package.json +19 -19
- package/src/dropdown-menu/style.scss +9 -13
- package/src/guide/index.tsx +10 -13
- package/src/mobile/bottom-sheet/cell.native.js +1 -0
- package/src/number-control/index.tsx +0 -1
- package/src/range-control/index.tsx +14 -2
- package/src/range-control/input-range.tsx +0 -1
- package/src/range-control/styles/range-control-styles.ts +12 -3
- package/src/range-control/types.ts +6 -0
- package/src/unit-control/index.tsx +3 -2
- package/src/unit-control/test/index.tsx +5 -2
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/components/src/range-control/styles/range-control-styles.ts"],"names":["rangeHeightValue","railHeight","rangeHeight","height","minHeight","thumbSize","Root","wrapperColor","color","COLORS","ui","borderFocus","wrapperMargin","marks","__nextHasNoMarginBottom","marginBottom","undefined","Wrapper","BeforeIconWrapper","marginRight","AfterIconWrapper","marginLeft","railBackgroundColor","disabled","railColor","background","backgroundDisabled","Rail","gray","trackBackgroundColor","trackColor","Track","MarksWrapper","markFill","isFilled","backgroundColor","Mark","markLabelFill","MarkLabel","thumbColor","css","theme","ThumbWrapper","transform","thumbFocus","isFocused","Thumb","InputRange","tooltipShow","show","opacity","tooltipPosition","position","isBottom","Tooltip","InputNumber","NumberControl","ActionRightWrapper"],"mappings":";;;;;;;;;;;AAGA;;AAMA;;AACA;;AACA;;;;AAWA,MAAMA,gBAAgB,GAAG,EAAzB;AACA,MAAMC,UAAU,GAAG,CAAnB;;AACA,MAAMC,WAAW,GAAG,mBACnB,gBAAK;AAAEC,EAAAA,MAAM,EAAEH,gBAAV;AAA4BI,EAAAA,SAAS,EAAEJ;AAAvC,CAAL,ynTADD;;AAEA,MAAMK,SAAS,GAAG,EAAlB;AAEO,MAAMC,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAV;;;AAWP,MAAMC,YAAY,GAAG,CAAE;AAAEC,EAAAA,KAAK,GAAGC,cAAOC,EAAP,CAAUC;AAApB,CAAF,kBACpB,gBAAK;AAAEH,EAAAA;AAAF,CAAL,0nTADD;;AAGA,MAAMI,aAAa,GAAG,CAAE;AAAEC,EAAAA,KAAF;AAASC,EAAAA;AAAT,CAAF,KAAwD;AAC7E,MAAK,CAAEA,uBAAP,EAAiC;AAChC,wBAAO,gBAAK;AAAEC,MAAAA,YAAY,EAAEF,KAAK,GAAG,EAAH,GAAQG;AAA7B,KAAL,2nTAAP;AACA;;AACD,SAAO,EAAP;AACA,CALD;;AAOO,MAAMC,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,yDAMhBV,YANgB,OAOhBL,WAPgB,OAQhBU,aARgB,6jTAAb;;AAWA,MAAMM,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA,+BAEdjB,UAFc,SAI1B,gBAAK;AAAEkB,EAAAA,WAAW,EAAE;AAAf,CAAL,CAJ0B,6jTAAvB;;AAOA,MAAMC,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,+BAEbnB,UAFa,SAIzB,gBAAK;AAAEoB,EAAAA,UAAU,EAAE;AAAd,CAAL,CAJyB,6jTAAtB;;;AAOP,MAAMC,mBAAmB,GAAG,CAAE;AAAEC,EAAAA,QAAF;AAAYC,EAAAA;AAAZ,CAAF,KAA0C;AACrE,MAAIC,UAAU,GAAGD,SAAS,IAAI,EAA9B;;AAEA,MAAKD,QAAL,EAAgB;AACfE,IAAAA,UAAU,GAAGhB,cAAOC,EAAP,CAAUgB,kBAAvB;AACA;;AAED,sBAAO,gBAAK;AAAED,IAAAA;AAAF,GAAL,ioTAAP;AACA,CARD;;AAUO,MAAME,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA,wBACKlB,cAAOmB,IAAP,CAAa,GAAb,CADL,+DAML3B,UANK,sCAQD,CAAED,gBAAgB,GAAGC,UAArB,IAAoC,CARnC,6BAUEA,UAVF,SAYbqB,mBAZa,6jTAAV;;;AAeP,MAAMO,oBAAoB,GAAG,CAAE;AAAEN,EAAAA,QAAF;AAAYO,EAAAA;AAAZ,CAAF,KAA4C;AACxE,MAAIL,UAAU,GAAGK,UAAU,IAAI,cAA/B;;AAEA,MAAKP,QAAL,EAAgB;AACfE,IAAAA,UAAU,GAAGhB,cAAOmB,IAAP,CAAa,GAAb,CAAb;AACA;;AAED,sBAAO,gBAAK;AAAEH,IAAAA;AAAF,GAAL,koTAAP;AACA,CARD;;AAUO,MAAMM,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,mDAEC9B,UAFD,gBAGNA,UAHM,wEAOF,CAAED,gBAAgB,GAAGC,UAArB,IAAoC,CAPlC,eAUd4B,oBAVc,6jTAAX;;AAaA,MAAMG,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAlB;;;AAQP,MAAMC,QAAQ,GAAG,CAAE;AAAEV,EAAAA,QAAF;AAAYW,EAAAA;AAAZ,CAAF,KAA8C;AAC9D,MAAIC,eAAe,GAAGD,QAAQ,GAAG,cAAH,GAAoBzB,cAAOmB,IAAP,CAAa,GAAb,CAAlD;;AAEA,MAAKL,QAAL,EAAgB;AACfY,IAAAA,eAAe,GAAG1B,cAAOmB,IAAP,CAAa,GAAb,CAAlB;AACA;;AAED,sBAAO,gBAAK;AACXO,IAAAA;AADW,GAAL,snTAAP;AAGA,CAVD;;AAYO,MAAMC,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA,cACL/B,SADK,qDAOb4B,QAPa,6jTAAV;;;AAUP,MAAMI,aAAa,GAAG,CAAE;AAAEH,EAAAA;AAAF,CAAF,KAAoC;AACzD,sBAAO,gBAAK;AACX1B,IAAAA,KAAK,EAAE0B,QAAQ,GAAGzB,cAAOmB,IAAP,CAAa,GAAb,CAAH,GAAwBnB,cAAOmB,IAAP,CAAa,GAAb;AAD5B,GAAL,2nTAAP;AAGA,CAJD;;AAMO,MAAMU,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,aACX7B,cAAOmB,IAAP,CAAa,GAAb,CADW,wGASlBS,aATkB,6jTAAf;;;AAYP,MAAME,UAAU,GAAG,CAAE;AAAEhB,EAAAA;AAAF,CAAF,KAClBA,QAAQ,oBACLiB,UADK,uBAEgB/B,cAAOmB,IAAP,CAAa,GAAb,CAFhB,opTAILY,UAJK,uBAKgB/B,cAAOC,EAAP,CAAU+B,KAL1B,goTADT;;AASO,MAAMC,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA,8CAGbrC,SAHa,2CAKT,CAAEL,gBAAgB,GAAGK,SAArB,IAAmC,CAL1B,sFAWdA,SAXc,2BAcrBkC,UAdqB,OAerB,gBAAK;AAAElB,EAAAA,UAAU,EAAE,CAAC;AAAf,CAAL,CAfqB,OAgBrB,gBACF;AAAEsB,EAAAA,SAAS,EAAE;AAAb,CADE,EAEF;AAAEA,EAAAA,SAAS,EAAE;AAAb,CAFE,CAhBqB,6jTAAlB;;;AAsBP,MAAMC,UAAU,GAAG,CAAE;AAAEC,EAAAA;AAAF,CAAF,KAAiC;AACnD,SAAOA,SAAS,oBACbL,UADa,+DAKS/B,cAAOC,EAAP,CAAU+B,KALnB,4CAQDpC,SAAS,GAAG,CARX,eASFA,SAAS,GAAG,CATV,ypTAcb,EAdH;AAeA,CAhBD;;AAkBO,MAAMyC,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,gHASdP,UATc,OAUdK,UAVc,6jTAAX;;AAaA,MAAMG,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,uFAMR1C,SAAS,GAAG,CANJ,mFAYCA,SAZD,ikTAAhB;;;AAeP,MAAM2C,WAAW,GAAG,CAAE;AAAEC,EAAAA;AAAF,CAAF,KAA8B;AACjD,sBAAO,gBAAK;AACXC,IAAAA,OAAO,EAAED,IAAI,GAAG,CAAH,GAAO;AADT,GAAL,ynTAAP;AAGA,CAJD;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAME,eAAe,GAAG,CAAE;AAAEC,EAAAA;AAAF,CAAF,KAAkC;AACzD,QAAMC,QAAQ,GAAGD,QAAQ,KAAK,QAA9B;;AAEA,MAAKC,QAAL,EAAgB;AACf;AAGA;;AAED;AAGA,CAZD;;AAcO,MAAMC,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,yQAgBhBN,WAhBgB,OAiBhBG,eAjBgB,OAkBhB,yBAAc,YAAd,CAlBgB,OAmBhB,gBACF;AAAER,EAAAA,SAAS,EAAE;AAAb,CADE,EAEF;AAAEA,EAAAA,SAAS,EAAE;AAAb,CAFE,CAnBgB,6jTAAb,C,CAyBP;AACA;;;AACO,MAAMY,WAAW,GAAG,iCAAQC,sBAAR;AAAA;AAAA;AAAA;AAAA;AAAA,EAAH,4DAIb,kBAAO,EAAP,CAJa,uCAOnBtD,WAPmB,QAUpB,gBAAK;AAAEmB,EAAAA,UAAU,EAAG,GAAG,kBAAO,CAAP,CAAY;AAA9B,CAAL,CAVoB,6jTAAjB;;AAaA,MAAMoC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,uEAO1BvD,WAP0B,QAU3B,gBAAK;AAAEmB,EAAAA,UAAU,EAAE;AAAd,CAAL,CAV2B,6jTAAxB","sourcesContent":["/**\n * External dependencies\n */\nimport { css } from '@emotion/react';\nimport styled from '@emotion/styled';\n\n/**\n * Internal dependencies\n */\nimport NumberControl from '../../number-control';\nimport { COLORS, reduceMotion, rtl } from '../../utils';\nimport { space } from '../../ui/utils/space';\n\nimport type {\n\tRangeMarkProps,\n\tRailProps,\n\tThumbProps,\n\tTooltipProps,\n\tTrackProps,\n\tWrapperProps,\n} from '../types';\n\nconst rangeHeightValue = 30;\nconst railHeight = 4;\nconst rangeHeight = () =>\n\tcss( { height: rangeHeightValue, minHeight: rangeHeightValue } );\nconst thumbSize = 12;\n\nexport const Root = styled.div`\n\t-webkit-tap-highlight-color: transparent;\n\talign-items: flex-start;\n\tdisplay: flex;\n\tjustify-content: flex-start;\n\tpadding: 0;\n\tposition: relative;\n\ttouch-action: none;\n\twidth: 100%;\n`;\n\nconst wrapperColor = ( { color = COLORS.ui.borderFocus }: WrapperProps ) =>\n\tcss( { color } );\n\nconst wrapperMargin = ( { marks, __nextHasNoMarginBottom }: WrapperProps ) => {\n\tif ( ! __nextHasNoMarginBottom ) {\n\t\treturn css( { marginBottom: marks ? 16 : undefined } );\n\t}\n\treturn '';\n};\n\nexport const Wrapper = styled.div< WrapperProps >`\n\tdisplay: block;\n\tflex: 1;\n\tposition: relative;\n\twidth: 100%;\n\n\t${ wrapperColor };\n\t${ rangeHeight };\n\t${ wrapperMargin };\n`;\n\nexport const BeforeIconWrapper = styled.span`\n\tdisplay: flex; // ensures the height isn't affected by line-height\n\tmargin-top: ${ railHeight }px;\n\n\t${ rtl( { marginRight: 6 } ) }\n`;\n\nexport const AfterIconWrapper = styled.span`\n\tdisplay: flex; // ensures the height isn't affected by line-height\n\tmargin-top: ${ railHeight }px;\n\n\t${ rtl( { marginLeft: 6 } ) }\n`;\n\nconst railBackgroundColor = ( { disabled, railColor }: RailProps ) => {\n\tlet background = railColor || '';\n\n\tif ( disabled ) {\n\t\tbackground = COLORS.ui.backgroundDisabled;\n\t}\n\n\treturn css( { background } );\n};\n\nexport const Rail = styled.span`\n\tbackground-color: ${ COLORS.gray[ 300 ] };\n\tleft: 0;\n\tpointer-events: none;\n\tright: 0;\n\tdisplay: block;\n\theight: ${ railHeight }px;\n\tposition: absolute;\n\tmargin-top: ${ ( rangeHeightValue - railHeight ) / 2 }px;\n\ttop: 0;\n\tborder-radius: ${ railHeight }px;\n\n\t${ railBackgroundColor };\n`;\n\nconst trackBackgroundColor = ( { disabled, trackColor }: TrackProps ) => {\n\tlet background = trackColor || 'currentColor';\n\n\tif ( disabled ) {\n\t\tbackground = COLORS.gray[ 400 ];\n\t}\n\n\treturn css( { background } );\n};\n\nexport const Track = styled.span`\n\tbackground-color: currentColor;\n\tborder-radius: ${ railHeight }px;\n\theight: ${ railHeight }px;\n\tpointer-events: none;\n\tdisplay: block;\n\tposition: absolute;\n\tmargin-top: ${ ( rangeHeightValue - railHeight ) / 2 }px;\n\ttop: 0;\n\n\t${ trackBackgroundColor };\n`;\n\nexport const MarksWrapper = styled.span`\n\tdisplay: block;\n\tpointer-events: none;\n\tposition: relative;\n\twidth: 100%;\n\tuser-select: none;\n`;\n\nconst markFill = ( { disabled, isFilled }: RangeMarkProps ) => {\n\tlet backgroundColor = isFilled ? 'currentColor' : COLORS.gray[ 300 ];\n\n\tif ( disabled ) {\n\t\tbackgroundColor = COLORS.gray[ 400 ];\n\t}\n\n\treturn css( {\n\t\tbackgroundColor,\n\t} );\n};\n\nexport const Mark = styled.span`\n\theight: ${ thumbSize }px;\n\tleft: 0;\n\tposition: absolute;\n\ttop: -4px;\n\twidth: 1px;\n\n\t${ markFill };\n`;\n\nconst markLabelFill = ( { isFilled }: RangeMarkProps ) => {\n\treturn css( {\n\t\tcolor: isFilled ? COLORS.gray[ 700 ] : COLORS.gray[ 300 ],\n\t} );\n};\n\nexport const MarkLabel = styled.span`\n\tcolor: ${ COLORS.gray[ 300 ] };\n\tleft: 0;\n\tfont-size: 11px;\n\tposition: absolute;\n\ttop: 12px;\n\ttransform: translateX( -50% );\n\twhite-space: nowrap;\n\n\t${ markLabelFill };\n`;\n\nconst thumbColor = ( { disabled }: ThumbProps ) =>\n\tdisabled\n\t\t? css`\n\t\t\t\tbackground-color: ${ COLORS.gray[ 400 ] };\n\t\t `\n\t\t: css`\n\t\t\t\tbackground-color: ${ COLORS.ui.theme };\n\t\t `;\n\nexport const ThumbWrapper = styled.span`\n\talign-items: center;\n\tdisplay: flex;\n\theight: ${ thumbSize }px;\n\tjustify-content: center;\n\tmargin-top: ${ ( rangeHeightValue - thumbSize ) / 2 }px;\n\toutline: 0;\n\tpointer-events: none;\n\tposition: absolute;\n\ttop: 0;\n\tuser-select: none;\n\twidth: ${ thumbSize }px;\n\tborder-radius: 50%;\n\n\t${ thumbColor };\n\t${ rtl( { marginLeft: -10 } ) };\n\t${ rtl(\n\t\t{ transform: 'translateX( 4.5px )' },\n\t\t{ transform: 'translateX( -4.5px )' }\n\t) };\n`;\n\nconst thumbFocus = ( { isFocused }: ThumbProps ) => {\n\treturn isFocused\n\t\t? css`\n\t\t\t\t&::before {\n\t\t\t\t\tcontent: ' ';\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\tbackground-color: ${ COLORS.ui.theme };\n\t\t\t\t\topacity: 0.4;\n\t\t\t\t\tborder-radius: 50%;\n\t\t\t\t\theight: ${ thumbSize + 8 }px;\n\t\t\t\t\twidth: ${ thumbSize + 8 }px;\n\t\t\t\t\ttop: -4px;\n\t\t\t\t\tleft: -4px;\n\t\t\t\t}\n\t\t `\n\t\t: '';\n};\n\nexport const Thumb = styled.span< ThumbProps >`\n\talign-items: center;\n\tborder-radius: 50%;\n\theight: 100%;\n\toutline: 0;\n\tposition: absolute;\n\tuser-select: none;\n\twidth: 100%;\n\n\t${ thumbColor };\n\t${ thumbFocus };\n`;\n\nexport const InputRange = styled.input`\n\tbox-sizing: border-box;\n\tcursor: pointer;\n\tdisplay: block;\n\theight: 100%;\n\tleft: 0;\n\tmargin: 0 -${ thumbSize / 2 }px;\n\topacity: 0;\n\toutline: none;\n\tposition: absolute;\n\tright: 0;\n\ttop: 0;\n\twidth: calc( 100% + ${ thumbSize }px );\n`;\n\nconst tooltipShow = ( { show }: TooltipProps ) => {\n\treturn css( {\n\t\topacity: show ? 1 : 0,\n\t} );\n};\n\nconst tooltipPosition = ( { position }: TooltipProps ) => {\n\tconst isBottom = position === 'bottom';\n\n\tif ( isBottom ) {\n\t\treturn css`\n\t\t\tbottom: -80%;\n\t\t`;\n\t}\n\n\treturn css`\n\t\ttop: -80%;\n\t`;\n};\n\nexport const Tooltip = styled.span< TooltipProps >`\n\tbackground: rgba( 0, 0, 0, 0.8 );\n\tborder-radius: 2px;\n\tcolor: white;\n\tdisplay: inline-block;\n\tfont-size: 12px;\n\tmin-width: 32px;\n\topacity: 0;\n\tpadding: 4px 8px;\n\tpointer-events: none;\n\tposition: absolute;\n\ttext-align: center;\n\ttransition: opacity 120ms ease;\n\tuser-select: none;\n\tline-height: 1.4;\n\n\t${ tooltipShow };\n\t${ tooltipPosition };\n\t${ reduceMotion( 'transition' ) };\n\t${ rtl(\n\t\t{ transform: 'translateX(-50%)' },\n\t\t{ transform: 'translateX(50%)' }\n\t) }\n`;\n\n// @todo: Refactor RangeControl with latest HStack configuration\n// @wordpress/components/ui/hstack.\nexport const InputNumber = styled( NumberControl )`\n\tdisplay: inline-block;\n\tfont-size: 13px;\n\tmargin-top: 0;\n\twidth: ${ space( 16 ) } !important;\n\n\tinput[type='number']& {\n\t\t${ rangeHeight };\n\t}\n\n\t${ rtl( { marginLeft: `${ space( 4 ) } !important` } ) }\n`;\n\nexport const ActionRightWrapper = styled.span`\n\tdisplay: block;\n\tmargin-top: 0;\n\n\tbutton,\n\tbutton.is-small {\n\t\tmargin-left: 0;\n\t\t${ rangeHeight };\n\t}\n\n\t${ rtl( { marginLeft: 8 } ) }\n`;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/range-control/styles/range-control-styles.ts"],"names":["rangeHeightValue","railHeight","rangeHeight","height","minHeight","thumbSize","deprecatedHeight","__next40pxDefaultSize","Root","wrapperColor","color","COLORS","ui","borderFocus","wrapperMargin","marks","__nextHasNoMarginBottom","marginBottom","undefined","Wrapper","BeforeIconWrapper","marginRight","AfterIconWrapper","marginLeft","railBackgroundColor","disabled","railColor","background","backgroundDisabled","Rail","gray","trackBackgroundColor","trackColor","Track","MarksWrapper","markFill","isFilled","backgroundColor","Mark","markLabelFill","MarkLabel","thumbColor","css","theme","ThumbWrapper","transform","thumbFocus","isFocused","Thumb","InputRange","tooltipShow","show","opacity","tooltipPosition","position","isBottom","Tooltip","InputNumber","NumberControl","ActionRightWrapper"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { css } from '@emotion/react';\nimport styled from '@emotion/styled';\n\n/**\n * Internal dependencies\n */\nimport NumberControl from '../../number-control';\nimport { COLORS, reduceMotion, rtl } from '../../utils';\nimport { space } from '../../ui/utils/space';\n\nimport type {\n\tRangeMarkProps,\n\tRailProps,\n\tThumbProps,\n\tTooltipProps,\n\tTrackProps,\n\tWrapperProps,\n\tRangeControlProps,\n} from '../types';\n\nconst rangeHeightValue = 30;\nconst railHeight = 4;\nconst rangeHeight = () =>\n\tcss( { height: rangeHeightValue, minHeight: rangeHeightValue } );\nconst thumbSize = 12;\n\nconst deprecatedHeight = ( {\n\t__next40pxDefaultSize,\n}: Pick< RangeControlProps, '__next40pxDefaultSize' > ) =>\n\t! __next40pxDefaultSize && css( { minHeight: rangeHeightValue } );\n\ntype RootProps = Pick< RangeControlProps, '__next40pxDefaultSize' >;\nexport const Root = styled.div< RootProps >`\n\t-webkit-tap-highlight-color: transparent;\n\talign-items: center;\n\tdisplay: flex;\n\tjustify-content: flex-start;\n\tpadding: 0;\n\tposition: relative;\n\ttouch-action: none;\n\twidth: 100%;\n\tmin-height: 40px;\n\t/* TODO: remove after removing the __next40pxDefaultSize prop */\n\t${ deprecatedHeight };\n`;\n\nconst wrapperColor = ( { color = COLORS.ui.borderFocus }: WrapperProps ) =>\n\tcss( { color } );\n\nconst wrapperMargin = ( { marks, __nextHasNoMarginBottom }: WrapperProps ) => {\n\tif ( ! __nextHasNoMarginBottom ) {\n\t\treturn css( { marginBottom: marks ? 16 : undefined } );\n\t}\n\treturn '';\n};\n\nexport const Wrapper = styled.div< WrapperProps >`\n\tdisplay: block;\n\tflex: 1;\n\tposition: relative;\n\twidth: 100%;\n\n\t${ wrapperColor };\n\t${ rangeHeight };\n\t${ wrapperMargin };\n`;\n\nexport const BeforeIconWrapper = styled.span`\n\tdisplay: flex; // ensures the height isn't affected by line-height\n\tmargin-top: ${ railHeight }px;\n\n\t${ rtl( { marginRight: 6 } ) }\n`;\n\nexport const AfterIconWrapper = styled.span`\n\tdisplay: flex; // ensures the height isn't affected by line-height\n\tmargin-top: ${ railHeight }px;\n\n\t${ rtl( { marginLeft: 6 } ) }\n`;\n\nconst railBackgroundColor = ( { disabled, railColor }: RailProps ) => {\n\tlet background = railColor || '';\n\n\tif ( disabled ) {\n\t\tbackground = COLORS.ui.backgroundDisabled;\n\t}\n\n\treturn css( { background } );\n};\n\nexport const Rail = styled.span`\n\tbackground-color: ${ COLORS.gray[ 300 ] };\n\tleft: 0;\n\tpointer-events: none;\n\tright: 0;\n\tdisplay: block;\n\theight: ${ railHeight }px;\n\tposition: absolute;\n\tmargin-top: ${ ( rangeHeightValue - railHeight ) / 2 }px;\n\ttop: 0;\n\tborder-radius: ${ railHeight }px;\n\n\t${ railBackgroundColor };\n`;\n\nconst trackBackgroundColor = ( { disabled, trackColor }: TrackProps ) => {\n\tlet background = trackColor || 'currentColor';\n\n\tif ( disabled ) {\n\t\tbackground = COLORS.gray[ 400 ];\n\t}\n\n\treturn css( { background } );\n};\n\nexport const Track = styled.span`\n\tbackground-color: currentColor;\n\tborder-radius: ${ railHeight }px;\n\theight: ${ railHeight }px;\n\tpointer-events: none;\n\tdisplay: block;\n\tposition: absolute;\n\tmargin-top: ${ ( rangeHeightValue - railHeight ) / 2 }px;\n\ttop: 0;\n\n\t${ trackBackgroundColor };\n`;\n\nexport const MarksWrapper = styled.span`\n\tdisplay: block;\n\tpointer-events: none;\n\tposition: relative;\n\twidth: 100%;\n\tuser-select: none;\n`;\n\nconst markFill = ( { disabled, isFilled }: RangeMarkProps ) => {\n\tlet backgroundColor = isFilled ? 'currentColor' : COLORS.gray[ 300 ];\n\n\tif ( disabled ) {\n\t\tbackgroundColor = COLORS.gray[ 400 ];\n\t}\n\n\treturn css( {\n\t\tbackgroundColor,\n\t} );\n};\n\nexport const Mark = styled.span`\n\theight: ${ thumbSize }px;\n\tleft: 0;\n\tposition: absolute;\n\ttop: -4px;\n\twidth: 1px;\n\n\t${ markFill };\n`;\n\nconst markLabelFill = ( { isFilled }: RangeMarkProps ) => {\n\treturn css( {\n\t\tcolor: isFilled ? COLORS.gray[ 700 ] : COLORS.gray[ 300 ],\n\t} );\n};\n\nexport const MarkLabel = styled.span`\n\tcolor: ${ COLORS.gray[ 300 ] };\n\tleft: 0;\n\tfont-size: 11px;\n\tposition: absolute;\n\ttop: 12px;\n\ttransform: translateX( -50% );\n\twhite-space: nowrap;\n\n\t${ markLabelFill };\n`;\n\nconst thumbColor = ( { disabled }: ThumbProps ) =>\n\tdisabled\n\t\t? css`\n\t\t\t\tbackground-color: ${ COLORS.gray[ 400 ] };\n\t\t `\n\t\t: css`\n\t\t\t\tbackground-color: ${ COLORS.ui.theme };\n\t\t `;\n\nexport const ThumbWrapper = styled.span`\n\talign-items: center;\n\tdisplay: flex;\n\theight: ${ thumbSize }px;\n\tjustify-content: center;\n\tmargin-top: ${ ( rangeHeightValue - thumbSize ) / 2 }px;\n\toutline: 0;\n\tpointer-events: none;\n\tposition: absolute;\n\ttop: 0;\n\tuser-select: none;\n\twidth: ${ thumbSize }px;\n\tborder-radius: 50%;\n\n\t${ thumbColor };\n\t${ rtl( { marginLeft: -10 } ) };\n\t${ rtl(\n\t\t{ transform: 'translateX( 4.5px )' },\n\t\t{ transform: 'translateX( -4.5px )' }\n\t) };\n`;\n\nconst thumbFocus = ( { isFocused }: ThumbProps ) => {\n\treturn isFocused\n\t\t? css`\n\t\t\t\t&::before {\n\t\t\t\t\tcontent: ' ';\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\tbackground-color: ${ COLORS.ui.theme };\n\t\t\t\t\topacity: 0.4;\n\t\t\t\t\tborder-radius: 50%;\n\t\t\t\t\theight: ${ thumbSize + 8 }px;\n\t\t\t\t\twidth: ${ thumbSize + 8 }px;\n\t\t\t\t\ttop: -4px;\n\t\t\t\t\tleft: -4px;\n\t\t\t\t}\n\t\t `\n\t\t: '';\n};\n\nexport const Thumb = styled.span< ThumbProps >`\n\talign-items: center;\n\tborder-radius: 50%;\n\theight: 100%;\n\toutline: 0;\n\tposition: absolute;\n\tuser-select: none;\n\twidth: 100%;\n\n\t${ thumbColor };\n\t${ thumbFocus };\n`;\n\nexport const InputRange = styled.input`\n\tbox-sizing: border-box;\n\tcursor: pointer;\n\tdisplay: block;\n\theight: 100%;\n\tleft: 0;\n\tmargin: 0 -${ thumbSize / 2 }px;\n\topacity: 0;\n\toutline: none;\n\tposition: absolute;\n\tright: 0;\n\ttop: 0;\n\twidth: calc( 100% + ${ thumbSize }px );\n`;\n\nconst tooltipShow = ( { show }: TooltipProps ) => {\n\treturn css( {\n\t\topacity: show ? 1 : 0,\n\t} );\n};\n\nconst tooltipPosition = ( { position }: TooltipProps ) => {\n\tconst isBottom = position === 'bottom';\n\n\tif ( isBottom ) {\n\t\treturn css`\n\t\t\tbottom: -80%;\n\t\t`;\n\t}\n\n\treturn css`\n\t\ttop: -80%;\n\t`;\n};\n\nexport const Tooltip = styled.span< TooltipProps >`\n\tbackground: rgba( 0, 0, 0, 0.8 );\n\tborder-radius: 2px;\n\tcolor: white;\n\tdisplay: inline-block;\n\tfont-size: 12px;\n\tmin-width: 32px;\n\topacity: 0;\n\tpadding: 4px 8px;\n\tpointer-events: none;\n\tposition: absolute;\n\ttext-align: center;\n\ttransition: opacity 120ms ease;\n\tuser-select: none;\n\tline-height: 1.4;\n\n\t${ tooltipShow };\n\t${ tooltipPosition };\n\t${ reduceMotion( 'transition' ) };\n\t${ rtl(\n\t\t{ transform: 'translateX(-50%)' },\n\t\t{ transform: 'translateX(50%)' }\n\t) }\n`;\n\n// @todo: Refactor RangeControl with latest HStack configuration\n// @wordpress/components/ui/hstack.\nexport const InputNumber = styled( NumberControl )`\n\tdisplay: inline-block;\n\tfont-size: 13px;\n\tmargin-top: 0;\n\n\tinput[type='number']& {\n\t\t${ rangeHeight };\n\t}\n\n\t${ rtl( { marginLeft: `${ space( 4 ) } !important` } ) }\n`;\n\nexport const ActionRightWrapper = styled.span`\n\tdisplay: block;\n\tmargin-top: 0;\n\n\tbutton,\n\tbutton.is-small {\n\t\tmargin-left: 0;\n\t\t${ rangeHeight };\n\t}\n\n\t${ rtl( { marginLeft: 8 } ) }\n`;\n"]}
|
|
@@ -35,6 +35,8 @@ var _utils = require("./utils");
|
|
|
35
35
|
|
|
36
36
|
var _hooks = require("../utils/hooks");
|
|
37
37
|
|
|
38
|
+
var _strings = require("../utils/strings");
|
|
39
|
+
|
|
38
40
|
/**
|
|
39
41
|
* External dependencies
|
|
40
42
|
*/
|
|
@@ -85,9 +87,9 @@ function UnforwardedUnitControl(unitControlProps, forwardedRef) {
|
|
|
85
87
|
const firstCharacters = rest.reduce((carry, {
|
|
86
88
|
value
|
|
87
89
|
}) => {
|
|
88
|
-
const first = value?.substring(0, 1) || '';
|
|
90
|
+
const first = (0, _strings.escapeRegExp)(value?.substring(0, 1) || '');
|
|
89
91
|
return carry.includes(first) ? carry : `${carry}|${first}`;
|
|
90
|
-
}, firstUnitValue.substring(0, 1));
|
|
92
|
+
}, (0, _strings.escapeRegExp)(firstUnitValue.substring(0, 1)));
|
|
91
93
|
return [list, new RegExp(`^(?:${firstCharacters})$`, 'i')];
|
|
92
94
|
}, [nonNullValueProp, unitProp, unitsProp]);
|
|
93
95
|
const [parsedQuantity, parsedUnit] = (0, _utils.getParsedQuantityAndUnit)(nonNullValueProp, unitProp, units);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/components/src/unit-control/index.tsx"],"names":["UnforwardedUnitControl","unitControlProps","forwardedRef","__unstableStateReducer","autoComplete","children","className","disabled","disableUnits","isPressEnterToChange","isResetValueOnUnitChange","isUnitSelectTabbable","label","onChange","onChangeProp","onUnitChange","size","unit","unitProp","units","unitsProp","CSS_UNITS","value","valueProp","onFocus","onFocusProp","props","since","hint","version","nonNullValueProp","undefined","reFirstCharacterOfUnits","list","firstUnitValue","rest","firstCharacters","reduce","carry","first","substring","includes","RegExp","parsedQuantity","parsedUnit","setUnit","length","initial","fallback","classes","handleOnQuantityChange","nextQuantityValue","changeProps","onChangeValue","join","handleOnUnitChange","nextUnitValue","data","nextValue","default","handleOnKeyDown","event","onKeyDown","metaKey","test","key","refInputSuffix","current","focus","inputSuffix","onBlur","step","activeUnit","find","option","UnitControl"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport type { KeyboardEvent, ForwardedRef, SyntheticEvent } from 'react';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\nimport { forwardRef, useMemo, useRef, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { WordPressComponentProps } from '../ui/context';\nimport { ValueInput } from './styles/unit-control-styles';\nimport UnitSelectControl from './unit-select-control';\nimport {\n\tCSS_UNITS,\n\tgetParsedQuantityAndUnit,\n\tgetUnitsWithCurrentUnit,\n\tgetValidParsedQuantityAndUnit,\n} from './utils';\nimport { useControlledState } from '../utils/hooks';\nimport type { UnitControlProps, UnitControlOnChangeCallback } from './types';\n\nfunction UnforwardedUnitControl(\n\tunitControlProps: WordPressComponentProps<\n\t\tUnitControlProps,\n\t\t'input',\n\t\tfalse\n\t>,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst {\n\t\t__unstableStateReducer,\n\t\tautoComplete = 'off',\n\t\t// @ts-expect-error Ensure that children is omitted from restProps\n\t\tchildren,\n\t\tclassName,\n\t\tdisabled = false,\n\t\tdisableUnits = false,\n\t\tisPressEnterToChange = false,\n\t\tisResetValueOnUnitChange = false,\n\t\tisUnitSelectTabbable = true,\n\t\tlabel,\n\t\tonChange: onChangeProp,\n\t\tonUnitChange,\n\t\tsize = 'default',\n\t\tunit: unitProp,\n\t\tunits: unitsProp = CSS_UNITS,\n\t\tvalue: valueProp,\n\t\tonFocus: onFocusProp,\n\t\t...props\n\t} = unitControlProps;\n\n\tif ( 'unit' in unitControlProps ) {\n\t\tdeprecated( 'UnitControl unit prop', {\n\t\t\tsince: '5.6',\n\t\t\thint: 'The unit should be provided within the `value` prop.',\n\t\t\tversion: '6.2',\n\t\t} );\n\t}\n\n\t// The `value` prop, in theory, should not be `null`, but the following line\n\t// ensures it fallback to `undefined` in case a consumer of `UnitControl`\n\t// still passes `null` as a `value`.\n\tconst nonNullValueProp = valueProp ?? undefined;\n\tconst [ units, reFirstCharacterOfUnits ] = useMemo( () => {\n\t\tconst list = getUnitsWithCurrentUnit(\n\t\t\tnonNullValueProp,\n\t\t\tunitProp,\n\t\t\tunitsProp\n\t\t);\n\t\tconst [ { value: firstUnitValue = '' } = {}, ...rest ] = list;\n\t\tconst firstCharacters = rest.reduce( ( carry, { value } ) => {\n\t\t\tconst first = value?.substring( 0, 1 ) || '';\n\t\t\treturn carry.includes( first ) ? carry : `${ carry }|${ first }`;\n\t\t}, firstUnitValue.substring( 0, 1 ) );\n\t\treturn [ list, new RegExp( `^(?:${ firstCharacters })$`, 'i' ) ];\n\t}, [ nonNullValueProp, unitProp, unitsProp ] );\n\tconst [ parsedQuantity, parsedUnit ] = getParsedQuantityAndUnit(\n\t\tnonNullValueProp,\n\t\tunitProp,\n\t\tunits\n\t);\n\n\tconst [ unit, setUnit ] = useControlledState< string | undefined >(\n\t\tunits.length === 1 ? units[ 0 ].value : unitProp,\n\t\t{\n\t\t\tinitial: parsedUnit,\n\t\t\tfallback: '',\n\t\t}\n\t);\n\n\tuseEffect( () => {\n\t\tif ( parsedUnit !== undefined ) {\n\t\t\tsetUnit( parsedUnit );\n\t\t}\n\t}, [ parsedUnit, setUnit ] );\n\n\tconst classes = classnames(\n\t\t'components-unit-control',\n\t\t// This class is added for legacy purposes to maintain it on the outer\n\t\t// wrapper. See: https://github.com/WordPress/gutenberg/pull/45139\n\t\t'components-unit-control-wrapper',\n\t\tclassName\n\t);\n\n\tconst handleOnQuantityChange = (\n\t\tnextQuantityValue: number | string | undefined,\n\t\tchangeProps: {\n\t\t\tevent: SyntheticEvent;\n\t\t}\n\t) => {\n\t\tif (\n\t\t\tnextQuantityValue === '' ||\n\t\t\ttypeof nextQuantityValue === 'undefined' ||\n\t\t\tnextQuantityValue === null\n\t\t) {\n\t\t\tonChangeProp?.( '', changeProps );\n\t\t\treturn;\n\t\t}\n\n\t\t/*\n\t\t * Customizing the onChange callback.\n\t\t * This allows as to broadcast a combined value+unit to onChange.\n\t\t */\n\t\tconst onChangeValue = getValidParsedQuantityAndUnit(\n\t\t\tnextQuantityValue,\n\t\t\tunits,\n\t\t\tparsedQuantity,\n\t\t\tunit\n\t\t).join( '' );\n\n\t\tonChangeProp?.( onChangeValue, changeProps );\n\t};\n\n\tconst handleOnUnitChange: UnitControlOnChangeCallback = (\n\t\tnextUnitValue,\n\t\tchangeProps\n\t) => {\n\t\tconst { data } = changeProps;\n\n\t\tlet nextValue = `${ parsedQuantity ?? '' }${ nextUnitValue }`;\n\n\t\tif ( isResetValueOnUnitChange && data?.default !== undefined ) {\n\t\t\tnextValue = `${ data.default }${ nextUnitValue }`;\n\t\t}\n\n\t\tonChangeProp?.( nextValue, changeProps );\n\t\tonUnitChange?.( nextUnitValue, changeProps );\n\n\t\tsetUnit( nextUnitValue );\n\t};\n\n\tlet handleOnKeyDown;\n\tif ( ! disableUnits && isUnitSelectTabbable && units.length ) {\n\t\thandleOnKeyDown = ( event: KeyboardEvent< HTMLInputElement > ) => {\n\t\t\tprops.onKeyDown?.( event );\n\t\t\t// Unless the meta key was pressed (to avoid interfering with\n\t\t\t// shortcuts, e.g. pastes), moves focus to the unit select if a key\n\t\t\t// matches the first character of a unit.\n\t\t\tif ( ! event.metaKey && reFirstCharacterOfUnits.test( event.key ) )\n\t\t\t\trefInputSuffix.current?.focus();\n\t\t};\n\t}\n\n\tconst refInputSuffix = useRef< HTMLSelectElement >( null );\n\tconst inputSuffix = ! disableUnits ? (\n\t\t<UnitSelectControl\n\t\t\tref={ refInputSuffix }\n\t\t\taria-label={ __( 'Select unit' ) }\n\t\t\tdisabled={ disabled }\n\t\t\tisUnitSelectTabbable={ isUnitSelectTabbable }\n\t\t\tonChange={ handleOnUnitChange }\n\t\t\tsize={ size }\n\t\t\tunit={ unit }\n\t\t\tunits={ units }\n\t\t\tonFocus={ onFocusProp }\n\t\t\tonBlur={ unitControlProps.onBlur }\n\t\t/>\n\t) : null;\n\n\tlet step = props.step;\n\n\t/*\n\t * If no step prop has been passed, lookup the active unit and\n\t * try to get step from `units`, or default to a value of `1`\n\t */\n\tif ( ! step && units ) {\n\t\tconst activeUnit = units.find( ( option ) => option.value === unit );\n\t\tstep = activeUnit?.step ?? 1;\n\t}\n\n\treturn (\n\t\t<ValueInput\n\t\t\t{ ...props }\n\t\t\tautoComplete={ autoComplete }\n\t\t\tclassName={ classes }\n\t\t\tdisabled={ disabled }\n\t\t\tspinControls=\"none\"\n\t\t\tisPressEnterToChange={ isPressEnterToChange }\n\t\t\tlabel={ label }\n\t\t\tonKeyDown={ handleOnKeyDown }\n\t\t\tonChange={ handleOnQuantityChange }\n\t\t\tref={ forwardedRef }\n\t\t\tsize={ size }\n\t\t\tsuffix={ inputSuffix }\n\t\t\ttype={ isPressEnterToChange ? 'text' : 'number' }\n\t\t\tvalue={ parsedQuantity ?? '' }\n\t\t\tstep={ step }\n\t\t\tonFocus={ onFocusProp }\n\t\t\t__unstableStateReducer={ __unstableStateReducer }\n\t\t/>\n\t);\n}\n\n/**\n * `UnitControl` allows the user to set a numeric quantity as well as a unit (e.g. `px`).\n *\n *\n * @example\n * ```jsx\n * import { __experimentalUnitControl as UnitControl } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const Example = () => {\n * const [ value, setValue ] = useState( '10px' );\n *\n * return <UnitControl onChange={ setValue } value={ value } />;\n * };\n * ```\n */\nexport const UnitControl = forwardRef( UnforwardedUnitControl );\n\nexport { parseQuantityAndUnitFromRawValue, useCustomUnits } from './utils';\nexport default UnitControl;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/unit-control/index.tsx"],"names":["UnforwardedUnitControl","unitControlProps","forwardedRef","__unstableStateReducer","autoComplete","children","className","disabled","disableUnits","isPressEnterToChange","isResetValueOnUnitChange","isUnitSelectTabbable","label","onChange","onChangeProp","onUnitChange","size","unit","unitProp","units","unitsProp","CSS_UNITS","value","valueProp","onFocus","onFocusProp","props","since","hint","version","nonNullValueProp","undefined","reFirstCharacterOfUnits","list","firstUnitValue","rest","firstCharacters","reduce","carry","first","substring","includes","RegExp","parsedQuantity","parsedUnit","setUnit","length","initial","fallback","classes","handleOnQuantityChange","nextQuantityValue","changeProps","onChangeValue","join","handleOnUnitChange","nextUnitValue","data","nextValue","default","handleOnKeyDown","event","onKeyDown","metaKey","test","key","refInputSuffix","current","focus","inputSuffix","onBlur","step","activeUnit","find","option","UnitControl"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport type { KeyboardEvent, ForwardedRef, SyntheticEvent } from 'react';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\nimport { forwardRef, useMemo, useRef, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { WordPressComponentProps } from '../ui/context';\nimport { ValueInput } from './styles/unit-control-styles';\nimport UnitSelectControl from './unit-select-control';\nimport {\n\tCSS_UNITS,\n\tgetParsedQuantityAndUnit,\n\tgetUnitsWithCurrentUnit,\n\tgetValidParsedQuantityAndUnit,\n} from './utils';\nimport { useControlledState } from '../utils/hooks';\nimport { escapeRegExp } from '../utils/strings';\nimport type { UnitControlProps, UnitControlOnChangeCallback } from './types';\n\nfunction UnforwardedUnitControl(\n\tunitControlProps: WordPressComponentProps<\n\t\tUnitControlProps,\n\t\t'input',\n\t\tfalse\n\t>,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst {\n\t\t__unstableStateReducer,\n\t\tautoComplete = 'off',\n\t\t// @ts-expect-error Ensure that children is omitted from restProps\n\t\tchildren,\n\t\tclassName,\n\t\tdisabled = false,\n\t\tdisableUnits = false,\n\t\tisPressEnterToChange = false,\n\t\tisResetValueOnUnitChange = false,\n\t\tisUnitSelectTabbable = true,\n\t\tlabel,\n\t\tonChange: onChangeProp,\n\t\tonUnitChange,\n\t\tsize = 'default',\n\t\tunit: unitProp,\n\t\tunits: unitsProp = CSS_UNITS,\n\t\tvalue: valueProp,\n\t\tonFocus: onFocusProp,\n\t\t...props\n\t} = unitControlProps;\n\n\tif ( 'unit' in unitControlProps ) {\n\t\tdeprecated( 'UnitControl unit prop', {\n\t\t\tsince: '5.6',\n\t\t\thint: 'The unit should be provided within the `value` prop.',\n\t\t\tversion: '6.2',\n\t\t} );\n\t}\n\n\t// The `value` prop, in theory, should not be `null`, but the following line\n\t// ensures it fallback to `undefined` in case a consumer of `UnitControl`\n\t// still passes `null` as a `value`.\n\tconst nonNullValueProp = valueProp ?? undefined;\n\tconst [ units, reFirstCharacterOfUnits ] = useMemo( () => {\n\t\tconst list = getUnitsWithCurrentUnit(\n\t\t\tnonNullValueProp,\n\t\t\tunitProp,\n\t\t\tunitsProp\n\t\t);\n\t\tconst [ { value: firstUnitValue = '' } = {}, ...rest ] = list;\n\t\tconst firstCharacters = rest.reduce( ( carry, { value } ) => {\n\t\t\tconst first = escapeRegExp( value?.substring( 0, 1 ) || '' );\n\t\t\treturn carry.includes( first ) ? carry : `${ carry }|${ first }`;\n\t\t}, escapeRegExp( firstUnitValue.substring( 0, 1 ) ) );\n\t\treturn [ list, new RegExp( `^(?:${ firstCharacters })$`, 'i' ) ];\n\t}, [ nonNullValueProp, unitProp, unitsProp ] );\n\tconst [ parsedQuantity, parsedUnit ] = getParsedQuantityAndUnit(\n\t\tnonNullValueProp,\n\t\tunitProp,\n\t\tunits\n\t);\n\n\tconst [ unit, setUnit ] = useControlledState< string | undefined >(\n\t\tunits.length === 1 ? units[ 0 ].value : unitProp,\n\t\t{\n\t\t\tinitial: parsedUnit,\n\t\t\tfallback: '',\n\t\t}\n\t);\n\n\tuseEffect( () => {\n\t\tif ( parsedUnit !== undefined ) {\n\t\t\tsetUnit( parsedUnit );\n\t\t}\n\t}, [ parsedUnit, setUnit ] );\n\n\tconst classes = classnames(\n\t\t'components-unit-control',\n\t\t// This class is added for legacy purposes to maintain it on the outer\n\t\t// wrapper. See: https://github.com/WordPress/gutenberg/pull/45139\n\t\t'components-unit-control-wrapper',\n\t\tclassName\n\t);\n\n\tconst handleOnQuantityChange = (\n\t\tnextQuantityValue: number | string | undefined,\n\t\tchangeProps: {\n\t\t\tevent: SyntheticEvent;\n\t\t}\n\t) => {\n\t\tif (\n\t\t\tnextQuantityValue === '' ||\n\t\t\ttypeof nextQuantityValue === 'undefined' ||\n\t\t\tnextQuantityValue === null\n\t\t) {\n\t\t\tonChangeProp?.( '', changeProps );\n\t\t\treturn;\n\t\t}\n\n\t\t/*\n\t\t * Customizing the onChange callback.\n\t\t * This allows as to broadcast a combined value+unit to onChange.\n\t\t */\n\t\tconst onChangeValue = getValidParsedQuantityAndUnit(\n\t\t\tnextQuantityValue,\n\t\t\tunits,\n\t\t\tparsedQuantity,\n\t\t\tunit\n\t\t).join( '' );\n\n\t\tonChangeProp?.( onChangeValue, changeProps );\n\t};\n\n\tconst handleOnUnitChange: UnitControlOnChangeCallback = (\n\t\tnextUnitValue,\n\t\tchangeProps\n\t) => {\n\t\tconst { data } = changeProps;\n\n\t\tlet nextValue = `${ parsedQuantity ?? '' }${ nextUnitValue }`;\n\n\t\tif ( isResetValueOnUnitChange && data?.default !== undefined ) {\n\t\t\tnextValue = `${ data.default }${ nextUnitValue }`;\n\t\t}\n\n\t\tonChangeProp?.( nextValue, changeProps );\n\t\tonUnitChange?.( nextUnitValue, changeProps );\n\n\t\tsetUnit( nextUnitValue );\n\t};\n\n\tlet handleOnKeyDown;\n\tif ( ! disableUnits && isUnitSelectTabbable && units.length ) {\n\t\thandleOnKeyDown = ( event: KeyboardEvent< HTMLInputElement > ) => {\n\t\t\tprops.onKeyDown?.( event );\n\t\t\t// Unless the meta key was pressed (to avoid interfering with\n\t\t\t// shortcuts, e.g. pastes), moves focus to the unit select if a key\n\t\t\t// matches the first character of a unit.\n\t\t\tif ( ! event.metaKey && reFirstCharacterOfUnits.test( event.key ) )\n\t\t\t\trefInputSuffix.current?.focus();\n\t\t};\n\t}\n\n\tconst refInputSuffix = useRef< HTMLSelectElement >( null );\n\tconst inputSuffix = ! disableUnits ? (\n\t\t<UnitSelectControl\n\t\t\tref={ refInputSuffix }\n\t\t\taria-label={ __( 'Select unit' ) }\n\t\t\tdisabled={ disabled }\n\t\t\tisUnitSelectTabbable={ isUnitSelectTabbable }\n\t\t\tonChange={ handleOnUnitChange }\n\t\t\tsize={ size }\n\t\t\tunit={ unit }\n\t\t\tunits={ units }\n\t\t\tonFocus={ onFocusProp }\n\t\t\tonBlur={ unitControlProps.onBlur }\n\t\t/>\n\t) : null;\n\n\tlet step = props.step;\n\n\t/*\n\t * If no step prop has been passed, lookup the active unit and\n\t * try to get step from `units`, or default to a value of `1`\n\t */\n\tif ( ! step && units ) {\n\t\tconst activeUnit = units.find( ( option ) => option.value === unit );\n\t\tstep = activeUnit?.step ?? 1;\n\t}\n\n\treturn (\n\t\t<ValueInput\n\t\t\t{ ...props }\n\t\t\tautoComplete={ autoComplete }\n\t\t\tclassName={ classes }\n\t\t\tdisabled={ disabled }\n\t\t\tspinControls=\"none\"\n\t\t\tisPressEnterToChange={ isPressEnterToChange }\n\t\t\tlabel={ label }\n\t\t\tonKeyDown={ handleOnKeyDown }\n\t\t\tonChange={ handleOnQuantityChange }\n\t\t\tref={ forwardedRef }\n\t\t\tsize={ size }\n\t\t\tsuffix={ inputSuffix }\n\t\t\ttype={ isPressEnterToChange ? 'text' : 'number' }\n\t\t\tvalue={ parsedQuantity ?? '' }\n\t\t\tstep={ step }\n\t\t\tonFocus={ onFocusProp }\n\t\t\t__unstableStateReducer={ __unstableStateReducer }\n\t\t/>\n\t);\n}\n\n/**\n * `UnitControl` allows the user to set a numeric quantity as well as a unit (e.g. `px`).\n *\n *\n * @example\n * ```jsx\n * import { __experimentalUnitControl as UnitControl } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const Example = () => {\n * const [ value, setValue ] = useState( '10px' );\n *\n * return <UnitControl onChange={ setValue } value={ value } />;\n * };\n * ```\n */\nexport const UnitControl = forwardRef( UnforwardedUnitControl );\n\nexport { parseQuantityAndUnitFromRawValue, useCustomUnits } from './utils';\nexport default UnitControl;\n"]}
|
|
@@ -11,7 +11,6 @@ import classnames from 'classnames';
|
|
|
11
11
|
import { useState, useEffect, Children, useRef } from '@wordpress/element';
|
|
12
12
|
import deprecated from '@wordpress/deprecated';
|
|
13
13
|
import { __ } from '@wordpress/i18n';
|
|
14
|
-
import { focus } from '@wordpress/dom';
|
|
15
14
|
/**
|
|
16
15
|
* Internal dependencies
|
|
17
16
|
*/
|
|
@@ -60,8 +59,16 @@ function Guide({
|
|
|
60
59
|
onFinish,
|
|
61
60
|
pages = []
|
|
62
61
|
}) {
|
|
63
|
-
const
|
|
62
|
+
const ref = useRef(null);
|
|
64
63
|
const [currentPage, setCurrentPage] = useState(0);
|
|
64
|
+
useEffect(() => {
|
|
65
|
+
// Place focus at the top of the guide on mount and when the page changes.
|
|
66
|
+
const frame = ref.current?.querySelector('.components-guide');
|
|
67
|
+
|
|
68
|
+
if (frame instanceof HTMLElement) {
|
|
69
|
+
frame.focus();
|
|
70
|
+
}
|
|
71
|
+
}, [currentPage]);
|
|
65
72
|
useEffect(() => {
|
|
66
73
|
if (Children.count(children)) {
|
|
67
74
|
deprecated('Passing children to <Guide>', {
|
|
@@ -70,13 +77,6 @@ function Guide({
|
|
|
70
77
|
});
|
|
71
78
|
}
|
|
72
79
|
}, [children]);
|
|
73
|
-
useEffect(() => {
|
|
74
|
-
// Each time we change the current page, start from the first element of the page.
|
|
75
|
-
// This also solves any focus loss that can happen.
|
|
76
|
-
if (guideContainer.current) {
|
|
77
|
-
focus.tabbable.find(guideContainer.current)[0]?.focus();
|
|
78
|
-
}
|
|
79
|
-
}, [currentPage]);
|
|
80
80
|
|
|
81
81
|
if (Children.count(children)) {
|
|
82
82
|
var _Children$map;
|
|
@@ -121,7 +121,7 @@ function Guide({
|
|
|
121
121
|
event.preventDefault();
|
|
122
122
|
}
|
|
123
123
|
},
|
|
124
|
-
ref:
|
|
124
|
+
ref: ref
|
|
125
125
|
}, createElement("div", {
|
|
126
126
|
className: "components-guide__container"
|
|
127
127
|
}, createElement("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/components/src/guide/index.tsx"],"names":["classnames","useState","useEffect","Children","useRef","deprecated","__","
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/guide/index.tsx"],"names":["classnames","useState","useEffect","Children","useRef","deprecated","__","Modal","Button","PageControl","Guide","children","className","contentLabel","finishButtonText","onFinish","pages","ref","currentPage","setCurrentPage","frame","current","querySelector","HTMLElement","focus","count","since","alternative","map","child","content","canGoBack","canGoForward","length","goBack","goForward","event","code","preventDefault","image"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect, Children, useRef } from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport Modal from '../modal';\nimport Button from '../button';\nimport PageControl from './page-control';\nimport type { GuideProps } from './types';\n\n/**\n * `Guide` is a React component that renders a _user guide_ in a modal. The guide consists of several pages which the user can step through one by one. The guide is finished when the modal is closed or when the user clicks _Finish_ on the last page of the guide.\n *\n * ```jsx\n * function MyTutorial() {\n * \tconst [ isOpen, setIsOpen ] = useState( true );\n *\n * \tif ( ! isOpen ) {\n * \t\treturn null;\n * \t}\n *\n * \treturn (\n * \t\t<Guide\n * \t\t\tonFinish={ () => setIsOpen( false ) }\n * \t\t\tpages={ [\n * \t\t\t\t{\n * \t\t\t\t\tcontent: <p>Welcome to the ACME Store!</p>,\n * \t\t\t\t},\n * \t\t\t\t{\n * \t\t\t\t\timage: <img src=\"https://acmestore.com/add-to-cart.png\" />,\n * \t\t\t\t\tcontent: (\n * \t\t\t\t\t\t<p>\n * \t\t\t\t\t\t\tClick <i>Add to Cart</i> to buy a product.\n * \t\t\t\t\t\t</p>\n * \t\t\t\t\t),\n * \t\t\t\t},\n * \t\t\t] }\n * \t\t/>\n * \t);\n * }\n * ```\n */\nfunction Guide( {\n\tchildren,\n\tclassName,\n\tcontentLabel,\n\tfinishButtonText = __( 'Finish' ),\n\tonFinish,\n\tpages = [],\n}: GuideProps ) {\n\tconst ref = useRef< HTMLDivElement >( null );\n\tconst [ currentPage, setCurrentPage ] = useState( 0 );\n\n\tuseEffect( () => {\n\t\t// Place focus at the top of the guide on mount and when the page changes.\n\t\tconst frame = ref.current?.querySelector( '.components-guide' );\n\t\tif ( frame instanceof HTMLElement ) {\n\t\t\tframe.focus();\n\t\t}\n\t}, [ currentPage ] );\n\n\tuseEffect( () => {\n\t\tif ( Children.count( children ) ) {\n\t\t\tdeprecated( 'Passing children to <Guide>', {\n\t\t\t\tsince: '5.5',\n\t\t\t\talternative: 'the `pages` prop',\n\t\t\t} );\n\t\t}\n\t}, [ children ] );\n\n\tif ( Children.count( children ) ) {\n\t\tpages =\n\t\t\tChildren.map( children, ( child ) => ( {\n\t\t\t\tcontent: child,\n\t\t\t} ) ) ?? [];\n\t}\n\n\tconst canGoBack = currentPage > 0;\n\tconst canGoForward = currentPage < pages.length - 1;\n\n\tconst goBack = () => {\n\t\tif ( canGoBack ) {\n\t\t\tsetCurrentPage( currentPage - 1 );\n\t\t}\n\t};\n\n\tconst goForward = () => {\n\t\tif ( canGoForward ) {\n\t\t\tsetCurrentPage( currentPage + 1 );\n\t\t}\n\t};\n\n\tif ( pages.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Modal\n\t\t\tclassName={ classnames( 'components-guide', className ) }\n\t\t\tcontentLabel={ contentLabel }\n\t\t\tisDismissible={ pages.length > 1 }\n\t\t\tonRequestClose={ onFinish }\n\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\tif ( event.code === 'ArrowLeft' ) {\n\t\t\t\t\tgoBack();\n\t\t\t\t\t// Do not scroll the modal's contents.\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t} else if ( event.code === 'ArrowRight' ) {\n\t\t\t\t\tgoForward();\n\t\t\t\t\t// Do not scroll the modal's contents.\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t} }\n\t\t\tref={ ref }\n\t\t>\n\t\t\t<div className=\"components-guide__container\">\n\t\t\t\t<div className=\"components-guide__page\">\n\t\t\t\t\t{ pages[ currentPage ].image }\n\n\t\t\t\t\t{ pages.length > 1 && (\n\t\t\t\t\t\t<PageControl\n\t\t\t\t\t\t\tcurrentPage={ currentPage }\n\t\t\t\t\t\t\tnumberOfPages={ pages.length }\n\t\t\t\t\t\t\tsetCurrentPage={ setCurrentPage }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ pages[ currentPage ].content }\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"components-guide__footer\">\n\t\t\t\t\t{ canGoBack && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"components-guide__back-button\"\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ goBack }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Previous' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t\t{ canGoForward && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"components-guide__forward-button\"\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tonClick={ goForward }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Next' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! canGoForward && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"components-guide__finish-button\"\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tonClick={ onFinish }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ finishButtonText }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Modal>\n\t);\n}\n\nexport default Guide;\n"]}
|
|
@@ -300,7 +300,8 @@ class BottomSheetCell extends Component {
|
|
|
300
300
|
style: resetButtonStyle
|
|
301
301
|
}, title))), isSelected && createElement(Icon, {
|
|
302
302
|
icon: check,
|
|
303
|
-
fill: platformStyles.isSelected.color
|
|
303
|
+
fill: platformStyles.isSelected.color,
|
|
304
|
+
testID: "bottom-sheet-cell-selected-icon"
|
|
304
305
|
}), showValue && getValueComponent(), createElement(View, {
|
|
305
306
|
style: [disabled && disabledStyle, styles.cellRowContainer],
|
|
306
307
|
pointerEvents: disabled ? 'none' : 'auto'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/components/src/mobile/bottom-sheet/cell.native.js"],"names":["TouchableOpacity","Text","View","TextInput","I18nManager","AccessibilityInfo","Platform","Icon","check","Component","__","_x","sprintf","withPreferredColorScheme","styles","platformStyles","TouchableRipple","LockIcon","isIOS","OS","BottomSheetCell","constructor","props","arguments","state","isEditingValue","autoFocus","isScreenReaderEnabled","handleScreenReaderToggled","bind","isCurrent","componentDidUpdate","prevProps","prevState","_valueTextInput","focus","componentDidMount","a11yInfoChangeSubscription","addEventListener","then","setState","componentWillUnmount","remove","typeToKeyboardType","type","step","keyboardType","Math","abs","render","accessible","accessibilityLabel","accessibilityHint","accessibilityRole","disabled","disabledStyle","cellDisabled","showLockIcon","activeOpacity","onPress","onLongPress","label","subLabel","value","valuePlaceholder","icon","leftAlign","iconStyle","labelStyle","valueStyle","cellContainerStyle","cellRowContainerStyle","onChangeValue","onSubmit","children","editable","isSelected","separatorType","style","getStylesFromColorScheme","customActionButton","borderless","help","valueProps","showValue","undefined","isValueEditable","cellLabelStyle","cellLabel","cellTextDark","cellLabelCenteredStyle","cellLabelCentered","cellLabelLeftAlignNoIconStyle","cellLabelLeftAlignNoIcon","defaultMissingIconAndValue","defaultLabelStyle","defaultSubLabelStyleText","cellSubLabelText","cellSubLabelTextDark","drawSeparator","separatorStyle","drawTopSeparator","cellContainerStyles","cellContainer","rowContainerStyles","cellRowContainer","isInteractive","onCellPress","startEditing","finishEditing","defaultSeparatorStyle","separator","separatorDark","cellSeparatorStyle","cellSeparator","cellSeparatorDark","leftMarginStyle","separatorMarginLeft","getValueComponent","styleRTL","isRTL","cellValueRTL","cellValueStyle","cellValue","textInputStyle","placeholderTextColor","placeholderColorDisabled","placeholderColorDisabledDark","color","placeholderColor","textStyle","shouldShowPlaceholder","c","getAccessibilityLabel","iconStyleBase","iconDark","resetButtonStyle","resetButton","resetButtonDark","cellHelpStyle","cellHelpLabel","cellHelpLabelIOS","containerPointerEvents","title","handler","opacity","clipToBounds","cellRowIcon","labelIconSeparator"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tTouchableOpacity,\n\tText,\n\tView,\n\tTextInput,\n\tI18nManager,\n\tAccessibilityInfo,\n\tPlatform,\n} from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Icon } from '@wordpress/components';\nimport { check } from '@wordpress/icons';\nimport { Component } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { withPreferredColorScheme } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport styles from './styles.scss';\nimport platformStyles from './cellStyles.scss';\nimport TouchableRipple from './ripple';\nimport LockIcon from './lock-icon';\n\nconst isIOS = Platform.OS === 'ios';\nclass BottomSheetCell extends Component {\n\tconstructor( props ) {\n\t\tsuper( ...arguments );\n\t\tthis.state = {\n\t\t\tisEditingValue: props.autoFocus || false,\n\t\t\tisScreenReaderEnabled: false,\n\t\t};\n\n\t\tthis.handleScreenReaderToggled =\n\t\t\tthis.handleScreenReaderToggled.bind( this );\n\n\t\tthis.isCurrent = false;\n\t}\n\n\tcomponentDidUpdate( prevProps, prevState ) {\n\t\tif ( ! prevState.isEditingValue && this.state.isEditingValue ) {\n\t\t\tthis._valueTextInput.focus();\n\t\t}\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.isCurrent = true;\n\t\tthis.a11yInfoChangeSubscription = AccessibilityInfo.addEventListener(\n\t\t\t'screenReaderChanged',\n\t\t\tthis.handleScreenReaderToggled\n\t\t);\n\n\t\tAccessibilityInfo.isScreenReaderEnabled().then(\n\t\t\t( isScreenReaderEnabled ) => {\n\t\t\t\tif ( this.isCurrent && isScreenReaderEnabled ) {\n\t\t\t\t\tthis.setState( { isScreenReaderEnabled } );\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.isCurrent = false;\n\t\tthis.a11yInfoChangeSubscription.remove();\n\t}\n\n\thandleScreenReaderToggled( isScreenReaderEnabled ) {\n\t\tthis.setState( { isScreenReaderEnabled } );\n\t}\n\n\ttypeToKeyboardType( type, step ) {\n\t\tlet keyboardType = `default`;\n\t\tif ( type === `number` ) {\n\t\t\tif ( step && Math.abs( step ) < 1 ) {\n\t\t\t\tkeyboardType = `decimal-pad`;\n\t\t\t} else {\n\t\t\t\tkeyboardType = `number-pad`;\n\t\t\t}\n\t\t}\n\t\treturn keyboardType;\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\taccessible,\n\t\t\taccessibilityLabel,\n\t\t\taccessibilityHint,\n\t\t\taccessibilityRole,\n\t\t\tdisabled = false,\n\t\t\tdisabledStyle = styles.cellDisabled,\n\t\t\tshowLockIcon = true,\n\t\t\tactiveOpacity,\n\t\t\tonPress,\n\t\t\tonLongPress,\n\t\t\tlabel,\n\t\t\tsubLabel,\n\t\t\tvalue,\n\t\t\tvaluePlaceholder = '',\n\t\t\ticon,\n\t\t\tleftAlign,\n\t\t\ticonStyle = {},\n\t\t\tlabelStyle = {},\n\t\t\tvalueStyle = {},\n\t\t\tcellContainerStyle = {},\n\t\t\tcellRowContainerStyle = {},\n\t\t\tonChangeValue,\n\t\t\tonSubmit,\n\t\t\tchildren,\n\t\t\teditable = true,\n\t\t\tisSelected = false,\n\t\t\tseparatorType,\n\t\t\tstyle = {},\n\t\t\tgetStylesFromColorScheme,\n\t\t\tcustomActionButton,\n\t\t\ttype,\n\t\t\tstep,\n\t\t\tborderless,\n\t\t\thelp,\n\t\t\t...valueProps\n\t\t} = this.props;\n\n\t\tconst showValue = value !== undefined;\n\t\tconst isValueEditable = editable && onChangeValue !== undefined;\n\t\tconst cellLabelStyle = getStylesFromColorScheme(\n\t\t\tstyles.cellLabel,\n\t\t\tstyles.cellTextDark\n\t\t);\n\t\tconst cellLabelCenteredStyle = getStylesFromColorScheme(\n\t\t\tstyles.cellLabelCentered,\n\t\t\tstyles.cellTextDark\n\t\t);\n\t\tconst cellLabelLeftAlignNoIconStyle = getStylesFromColorScheme(\n\t\t\tstyles.cellLabelLeftAlignNoIcon,\n\t\t\tstyles.cellTextDark\n\t\t);\n\t\tconst defaultMissingIconAndValue = leftAlign\n\t\t\t? cellLabelLeftAlignNoIconStyle\n\t\t\t: cellLabelCenteredStyle;\n\t\tconst defaultLabelStyle =\n\t\t\tshowValue || customActionButton || icon\n\t\t\t\t? cellLabelStyle\n\t\t\t\t: defaultMissingIconAndValue;\n\n\t\tconst defaultSubLabelStyleText = getStylesFromColorScheme(\n\t\t\tstyles.cellSubLabelText,\n\t\t\tstyles.cellSubLabelTextDark\n\t\t);\n\n\t\tconst drawSeparator =\n\t\t\t( separatorType && separatorType !== 'none' ) ||\n\t\t\tseparatorStyle === undefined;\n\t\tconst drawTopSeparator =\n\t\t\tdrawSeparator && separatorType === 'topFullWidth';\n\n\t\tconst cellContainerStyles = [\n\t\t\tstyles.cellContainer,\n\t\t\tcellContainerStyle,\n\t\t];\n\t\tconst rowContainerStyles = [\n\t\t\tstyles.cellRowContainer,\n\t\t\tcellRowContainerStyle,\n\t\t];\n\n\t\tconst isInteractive =\n\t\t\tisValueEditable ||\n\t\t\tonPress !== undefined ||\n\t\t\tonLongPress !== undefined;\n\n\t\tconst onCellPress = () => {\n\t\t\tif ( isValueEditable ) {\n\t\t\t\tstartEditing();\n\t\t\t} else if ( onPress !== undefined ) {\n\t\t\t\tonPress();\n\t\t\t}\n\t\t};\n\n\t\tconst finishEditing = () => {\n\t\t\tthis.setState( { isEditingValue: false } );\n\t\t};\n\n\t\tconst startEditing = () => {\n\t\t\tif ( this.state.isEditingValue === false ) {\n\t\t\t\tthis.setState( { isEditingValue: true } );\n\t\t\t}\n\t\t};\n\n\t\tconst separatorStyle = () => {\n\t\t\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\t\t\tconst defaultSeparatorStyle = this.props.getStylesFromColorScheme(\n\t\t\t\tstyles.separator,\n\t\t\t\tstyles.separatorDark\n\t\t\t);\n\t\t\tconst cellSeparatorStyle = this.props.getStylesFromColorScheme(\n\t\t\t\tstyles.cellSeparator,\n\t\t\t\tstyles.cellSeparatorDark\n\t\t\t);\n\t\t\tconst leftMarginStyle = {\n\t\t\t\t...cellSeparatorStyle,\n\t\t\t\t...platformStyles.separatorMarginLeft,\n\t\t\t};\n\t\t\tswitch ( separatorType ) {\n\t\t\t\tcase 'leftMargin':\n\t\t\t\t\treturn leftMarginStyle;\n\t\t\t\tcase 'fullWidth':\n\t\t\t\tcase 'topFullWidth':\n\t\t\t\t\treturn defaultSeparatorStyle;\n\t\t\t\tcase 'none':\n\t\t\t\t\treturn undefined;\n\t\t\t\tcase undefined:\n\t\t\t\t\tif ( showValue && icon ) {\n\t\t\t\t\t\treturn leftMarginStyle;\n\t\t\t\t\t}\n\t\t\t\t\treturn defaultSeparatorStyle;\n\t\t\t}\n\t\t};\n\n\t\tconst getValueComponent = () => {\n\t\t\tconst styleRTL = I18nManager.isRTL && styles.cellValueRTL;\n\t\t\tconst cellValueStyle = this.props.getStylesFromColorScheme(\n\t\t\t\tstyles.cellValue,\n\t\t\t\tstyles.cellTextDark\n\t\t\t);\n\t\t\tconst textInputStyle = {\n\t\t\t\t...cellValueStyle,\n\t\t\t\t...valueStyle,\n\t\t\t\t...styleRTL,\n\t\t\t};\n\t\t\tconst placeholderTextColor = disabled\n\t\t\t\t? this.props.getStylesFromColorScheme(\n\t\t\t\t\t\tstyles.placeholderColorDisabled,\n\t\t\t\t\t\tstyles.placeholderColorDisabledDark\n\t\t\t\t ).color\n\t\t\t\t: styles.placeholderColor.color;\n\t\t\tconst textStyle = {\n\t\t\t\t...( disabled && styles.cellDisabled ),\n\t\t\t\t...cellValueStyle,\n\t\t\t\t...valueStyle,\n\t\t\t};\n\n\t\t\t// To be able to show the `middle` ellipsizeMode on editable cells\n\t\t\t// we show the TextInput just when the user wants to edit the value,\n\t\t\t// and the Text component to display it.\n\t\t\t// We also show the TextInput to display placeholder.\n\t\t\tconst shouldShowPlaceholder = isInteractive && value === '';\n\t\t\treturn this.state.isEditingValue || shouldShowPlaceholder ? (\n\t\t\t\t<TextInput\n\t\t\t\t\tref={ ( c ) => ( this._valueTextInput = c ) }\n\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\tstyle={ textInputStyle }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tplaceholder={ valuePlaceholder }\n\t\t\t\t\tplaceholderTextColor={ placeholderTextColor }\n\t\t\t\t\tonChangeText={ onChangeValue }\n\t\t\t\t\teditable={ isValueEditable && ! disabled }\n\t\t\t\t\tpointerEvents={\n\t\t\t\t\t\tthis.state.isEditingValue ? 'auto' : 'none'\n\t\t\t\t\t}\n\t\t\t\t\tonFocus={ startEditing }\n\t\t\t\t\tonBlur={ finishEditing }\n\t\t\t\t\tonSubmitEditing={ onSubmit }\n\t\t\t\t\tkeyboardType={ this.typeToKeyboardType( type, step ) }\n\t\t\t\t\tdisabled={ disabled }\n\t\t\t\t\t{ ...valueProps }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<Text\n\t\t\t\t\tstyle={ textStyle }\n\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\tellipsizeMode={ 'middle' }\n\t\t\t\t>\n\t\t\t\t\t{ value }\n\t\t\t\t</Text>\n\t\t\t);\n\t\t};\n\n\t\tconst getAccessibilityLabel = () => {\n\t\t\tif ( accessible === false ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( accessibilityLabel || ! showValue ) {\n\t\t\t\treturn accessibilityLabel || label;\n\t\t\t}\n\n\t\t\tif ( ! value ) {\n\t\t\t\treturn ! help\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t/* translators: accessibility text. Empty state of a inline textinput cell. %s: The cell's title */\n\t\t\t\t\t\t\t_x( '%s. Empty', 'inline textinput cell' ),\n\t\t\t\t\t\t\tlabel\n\t\t\t\t\t )\n\t\t\t\t\t: // Separating by ',' is necessary to make a pause on urls (non-capitalized text)\n\t\t\t\t\t sprintf(\n\t\t\t\t\t\t\t/* translators: accessibility text. Empty state of a inline textinput cell. %1: Cell title, %2: cell help. */\n\t\t\t\t\t\t\t_x( '%1$s, %2$s. Empty', 'inline textinput cell' ),\n\t\t\t\t\t\t\tlabel,\n\t\t\t\t\t\t\thelp\n\t\t\t\t\t );\n\t\t\t}\n\t\t\treturn ! help\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: accessibility text. Inline textinput title and value.%1: Cell title, %2: cell value. */\n\t\t\t\t\t\t_x( '%1$s, %2$s', 'inline textinput cell' ),\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\tvalue\n\t\t\t\t ) // Separating by ',' is necessary to make a pause on urls (non-capitalized text)\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: accessibility text. Inline textinput title, value and help text.%1: Cell title, %2: cell value, , %3: cell help. */\n\t\t\t\t\t\t_x( '%1$s, %2$s, %3$s', 'inline textinput cell' ),\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\thelp\n\t\t\t\t );\n\t\t};\n\n\t\tconst iconStyleBase = getStylesFromColorScheme(\n\t\t\tstyles.icon,\n\t\t\tstyles.iconDark\n\t\t);\n\t\tconst resetButtonStyle = getStylesFromColorScheme(\n\t\t\tstyles.resetButton,\n\t\t\tstyles.resetButtonDark\n\t\t);\n\t\tconst cellHelpStyle = [\n\t\t\tstyles.cellHelpLabel,\n\t\t\tisIOS && styles.cellHelpLabelIOS,\n\t\t];\n\t\tconst containerPointerEvents =\n\t\t\tthis.state.isScreenReaderEnabled && accessible ? 'none' : 'auto';\n\t\tconst { title, handler } = customActionButton || {};\n\n\t\tconst opacity =\n\t\t\tactiveOpacity !== undefined\n\t\t\t\t? activeOpacity\n\t\t\t\t: platformStyles.activeOpacity?.opacity;\n\n\t\treturn (\n\t\t\t<TouchableRipple\n\t\t\t\taccessible={\n\t\t\t\t\taccessible !== undefined\n\t\t\t\t\t\t? accessible\n\t\t\t\t\t\t: ! this.state.isEditingValue\n\t\t\t\t}\n\t\t\t\taccessibilityLabel={ getAccessibilityLabel() }\n\t\t\t\taccessibilityRole={ accessibilityRole || 'button' }\n\t\t\t\taccessibilityHint={\n\t\t\t\t\tisValueEditable\n\t\t\t\t\t\t? /* translators: accessibility text */\n\t\t\t\t\t\t __( 'Double tap to edit this value' )\n\t\t\t\t\t\t: accessibilityHint\n\t\t\t\t}\n\t\t\t\tdisabled={ disabled || ! isInteractive }\n\t\t\t\tactiveOpacity={ opacity }\n\t\t\t\tonPress={ onCellPress }\n\t\t\t\tonLongPress={ onLongPress }\n\t\t\t\tstyle={ [ styles.clipToBounds, style ] }\n\t\t\t\tborderless={ borderless }\n\t\t\t>\n\t\t\t\t{ drawTopSeparator && <View style={ separatorStyle() } /> }\n\t\t\t\t<View\n\t\t\t\t\tstyle={ cellContainerStyles }\n\t\t\t\t\tpointerEvents={ containerPointerEvents }\n\t\t\t\t>\n\t\t\t\t\t<View style={ rowContainerStyles }>\n\t\t\t\t\t\t<View style={ styles.cellRowContainer }>\n\t\t\t\t\t\t\t{ icon && (\n\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\t\tstyles.cellRowContainer,\n\t\t\t\t\t\t\t\t\t\tstyles.cellRowIcon,\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\t\t<Icon\n\t\t\t\t\t\t\t\t\t\tlock\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t\t\t\t\tfill={\n\t\t\t\t\t\t\t\t\t\t\ticonStyle.color ||\n\t\t\t\t\t\t\t\t\t\t\ticonStyleBase.color\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tstyle={ iconStyle }\n\t\t\t\t\t\t\t\t\t\tisPressed={ false }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\t\tplatformStyles.labelIconSeparator\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</View>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ subLabel && label && (\n\t\t\t\t\t\t\t\t<View>\n\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\t\t\tdefaultLabelStyle,\n\t\t\t\t\t\t\t\t\t\t\tlabelStyle,\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\t\t{ label }\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t<Text style={ defaultSubLabelStyleText }>\n\t\t\t\t\t\t\t\t\t\t{ subLabel }\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ ! subLabel && label && (\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\tstyle={ [ defaultLabelStyle, labelStyle ] }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</View>\n\t\t\t\t\t\t{ customActionButton && (\n\t\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\t\tonPress={ handler }\n\t\t\t\t\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Text style={ resetButtonStyle }>\n\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</View>\n\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\ticon={ check }\n\t\t\t\t\t\t\tfill={ platformStyles.isSelected.color }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showValue && getValueComponent() }\n\t\t\t\t\t<View\n\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\tdisabled && disabledStyle,\n\t\t\t\t\t\t\tstyles.cellRowContainer,\n\t\t\t\t\t\t] }\n\t\t\t\t\t\tpointerEvents={ disabled ? 'none' : 'auto' }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</View>\n\t\t\t\t\t{ disabled && showLockIcon && (\n\t\t\t\t\t\t<View style={ styles.cellDisabled }>\n\t\t\t\t\t\t\t<LockIcon />\n\t\t\t\t\t\t</View>\n\t\t\t\t\t) }\n\t\t\t\t</View>\n\t\t\t\t{ help && (\n\t\t\t\t\t<Text style={ [ cellHelpStyle, styles.placeholderColor ] }>\n\t\t\t\t\t\t{ help }\n\t\t\t\t\t</Text>\n\t\t\t\t) }\n\t\t\t\t{ ! drawTopSeparator && <View style={ separatorStyle() } /> }\n\t\t\t</TouchableRipple>\n\t\t);\n\t}\n}\n\nexport default withPreferredColorScheme( BottomSheetCell );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/mobile/bottom-sheet/cell.native.js"],"names":["TouchableOpacity","Text","View","TextInput","I18nManager","AccessibilityInfo","Platform","Icon","check","Component","__","_x","sprintf","withPreferredColorScheme","styles","platformStyles","TouchableRipple","LockIcon","isIOS","OS","BottomSheetCell","constructor","props","arguments","state","isEditingValue","autoFocus","isScreenReaderEnabled","handleScreenReaderToggled","bind","isCurrent","componentDidUpdate","prevProps","prevState","_valueTextInput","focus","componentDidMount","a11yInfoChangeSubscription","addEventListener","then","setState","componentWillUnmount","remove","typeToKeyboardType","type","step","keyboardType","Math","abs","render","accessible","accessibilityLabel","accessibilityHint","accessibilityRole","disabled","disabledStyle","cellDisabled","showLockIcon","activeOpacity","onPress","onLongPress","label","subLabel","value","valuePlaceholder","icon","leftAlign","iconStyle","labelStyle","valueStyle","cellContainerStyle","cellRowContainerStyle","onChangeValue","onSubmit","children","editable","isSelected","separatorType","style","getStylesFromColorScheme","customActionButton","borderless","help","valueProps","showValue","undefined","isValueEditable","cellLabelStyle","cellLabel","cellTextDark","cellLabelCenteredStyle","cellLabelCentered","cellLabelLeftAlignNoIconStyle","cellLabelLeftAlignNoIcon","defaultMissingIconAndValue","defaultLabelStyle","defaultSubLabelStyleText","cellSubLabelText","cellSubLabelTextDark","drawSeparator","separatorStyle","drawTopSeparator","cellContainerStyles","cellContainer","rowContainerStyles","cellRowContainer","isInteractive","onCellPress","startEditing","finishEditing","defaultSeparatorStyle","separator","separatorDark","cellSeparatorStyle","cellSeparator","cellSeparatorDark","leftMarginStyle","separatorMarginLeft","getValueComponent","styleRTL","isRTL","cellValueRTL","cellValueStyle","cellValue","textInputStyle","placeholderTextColor","placeholderColorDisabled","placeholderColorDisabledDark","color","placeholderColor","textStyle","shouldShowPlaceholder","c","getAccessibilityLabel","iconStyleBase","iconDark","resetButtonStyle","resetButton","resetButtonDark","cellHelpStyle","cellHelpLabel","cellHelpLabelIOS","containerPointerEvents","title","handler","opacity","clipToBounds","cellRowIcon","labelIconSeparator"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tTouchableOpacity,\n\tText,\n\tView,\n\tTextInput,\n\tI18nManager,\n\tAccessibilityInfo,\n\tPlatform,\n} from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Icon } from '@wordpress/components';\nimport { check } from '@wordpress/icons';\nimport { Component } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { withPreferredColorScheme } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport styles from './styles.scss';\nimport platformStyles from './cellStyles.scss';\nimport TouchableRipple from './ripple';\nimport LockIcon from './lock-icon';\n\nconst isIOS = Platform.OS === 'ios';\nclass BottomSheetCell extends Component {\n\tconstructor( props ) {\n\t\tsuper( ...arguments );\n\t\tthis.state = {\n\t\t\tisEditingValue: props.autoFocus || false,\n\t\t\tisScreenReaderEnabled: false,\n\t\t};\n\n\t\tthis.handleScreenReaderToggled =\n\t\t\tthis.handleScreenReaderToggled.bind( this );\n\n\t\tthis.isCurrent = false;\n\t}\n\n\tcomponentDidUpdate( prevProps, prevState ) {\n\t\tif ( ! prevState.isEditingValue && this.state.isEditingValue ) {\n\t\t\tthis._valueTextInput.focus();\n\t\t}\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.isCurrent = true;\n\t\tthis.a11yInfoChangeSubscription = AccessibilityInfo.addEventListener(\n\t\t\t'screenReaderChanged',\n\t\t\tthis.handleScreenReaderToggled\n\t\t);\n\n\t\tAccessibilityInfo.isScreenReaderEnabled().then(\n\t\t\t( isScreenReaderEnabled ) => {\n\t\t\t\tif ( this.isCurrent && isScreenReaderEnabled ) {\n\t\t\t\t\tthis.setState( { isScreenReaderEnabled } );\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.isCurrent = false;\n\t\tthis.a11yInfoChangeSubscription.remove();\n\t}\n\n\thandleScreenReaderToggled( isScreenReaderEnabled ) {\n\t\tthis.setState( { isScreenReaderEnabled } );\n\t}\n\n\ttypeToKeyboardType( type, step ) {\n\t\tlet keyboardType = `default`;\n\t\tif ( type === `number` ) {\n\t\t\tif ( step && Math.abs( step ) < 1 ) {\n\t\t\t\tkeyboardType = `decimal-pad`;\n\t\t\t} else {\n\t\t\t\tkeyboardType = `number-pad`;\n\t\t\t}\n\t\t}\n\t\treturn keyboardType;\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\taccessible,\n\t\t\taccessibilityLabel,\n\t\t\taccessibilityHint,\n\t\t\taccessibilityRole,\n\t\t\tdisabled = false,\n\t\t\tdisabledStyle = styles.cellDisabled,\n\t\t\tshowLockIcon = true,\n\t\t\tactiveOpacity,\n\t\t\tonPress,\n\t\t\tonLongPress,\n\t\t\tlabel,\n\t\t\tsubLabel,\n\t\t\tvalue,\n\t\t\tvaluePlaceholder = '',\n\t\t\ticon,\n\t\t\tleftAlign,\n\t\t\ticonStyle = {},\n\t\t\tlabelStyle = {},\n\t\t\tvalueStyle = {},\n\t\t\tcellContainerStyle = {},\n\t\t\tcellRowContainerStyle = {},\n\t\t\tonChangeValue,\n\t\t\tonSubmit,\n\t\t\tchildren,\n\t\t\teditable = true,\n\t\t\tisSelected = false,\n\t\t\tseparatorType,\n\t\t\tstyle = {},\n\t\t\tgetStylesFromColorScheme,\n\t\t\tcustomActionButton,\n\t\t\ttype,\n\t\t\tstep,\n\t\t\tborderless,\n\t\t\thelp,\n\t\t\t...valueProps\n\t\t} = this.props;\n\n\t\tconst showValue = value !== undefined;\n\t\tconst isValueEditable = editable && onChangeValue !== undefined;\n\t\tconst cellLabelStyle = getStylesFromColorScheme(\n\t\t\tstyles.cellLabel,\n\t\t\tstyles.cellTextDark\n\t\t);\n\t\tconst cellLabelCenteredStyle = getStylesFromColorScheme(\n\t\t\tstyles.cellLabelCentered,\n\t\t\tstyles.cellTextDark\n\t\t);\n\t\tconst cellLabelLeftAlignNoIconStyle = getStylesFromColorScheme(\n\t\t\tstyles.cellLabelLeftAlignNoIcon,\n\t\t\tstyles.cellTextDark\n\t\t);\n\t\tconst defaultMissingIconAndValue = leftAlign\n\t\t\t? cellLabelLeftAlignNoIconStyle\n\t\t\t: cellLabelCenteredStyle;\n\t\tconst defaultLabelStyle =\n\t\t\tshowValue || customActionButton || icon\n\t\t\t\t? cellLabelStyle\n\t\t\t\t: defaultMissingIconAndValue;\n\n\t\tconst defaultSubLabelStyleText = getStylesFromColorScheme(\n\t\t\tstyles.cellSubLabelText,\n\t\t\tstyles.cellSubLabelTextDark\n\t\t);\n\n\t\tconst drawSeparator =\n\t\t\t( separatorType && separatorType !== 'none' ) ||\n\t\t\tseparatorStyle === undefined;\n\t\tconst drawTopSeparator =\n\t\t\tdrawSeparator && separatorType === 'topFullWidth';\n\n\t\tconst cellContainerStyles = [\n\t\t\tstyles.cellContainer,\n\t\t\tcellContainerStyle,\n\t\t];\n\t\tconst rowContainerStyles = [\n\t\t\tstyles.cellRowContainer,\n\t\t\tcellRowContainerStyle,\n\t\t];\n\n\t\tconst isInteractive =\n\t\t\tisValueEditable ||\n\t\t\tonPress !== undefined ||\n\t\t\tonLongPress !== undefined;\n\n\t\tconst onCellPress = () => {\n\t\t\tif ( isValueEditable ) {\n\t\t\t\tstartEditing();\n\t\t\t} else if ( onPress !== undefined ) {\n\t\t\t\tonPress();\n\t\t\t}\n\t\t};\n\n\t\tconst finishEditing = () => {\n\t\t\tthis.setState( { isEditingValue: false } );\n\t\t};\n\n\t\tconst startEditing = () => {\n\t\t\tif ( this.state.isEditingValue === false ) {\n\t\t\t\tthis.setState( { isEditingValue: true } );\n\t\t\t}\n\t\t};\n\n\t\tconst separatorStyle = () => {\n\t\t\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\t\t\tconst defaultSeparatorStyle = this.props.getStylesFromColorScheme(\n\t\t\t\tstyles.separator,\n\t\t\t\tstyles.separatorDark\n\t\t\t);\n\t\t\tconst cellSeparatorStyle = this.props.getStylesFromColorScheme(\n\t\t\t\tstyles.cellSeparator,\n\t\t\t\tstyles.cellSeparatorDark\n\t\t\t);\n\t\t\tconst leftMarginStyle = {\n\t\t\t\t...cellSeparatorStyle,\n\t\t\t\t...platformStyles.separatorMarginLeft,\n\t\t\t};\n\t\t\tswitch ( separatorType ) {\n\t\t\t\tcase 'leftMargin':\n\t\t\t\t\treturn leftMarginStyle;\n\t\t\t\tcase 'fullWidth':\n\t\t\t\tcase 'topFullWidth':\n\t\t\t\t\treturn defaultSeparatorStyle;\n\t\t\t\tcase 'none':\n\t\t\t\t\treturn undefined;\n\t\t\t\tcase undefined:\n\t\t\t\t\tif ( showValue && icon ) {\n\t\t\t\t\t\treturn leftMarginStyle;\n\t\t\t\t\t}\n\t\t\t\t\treturn defaultSeparatorStyle;\n\t\t\t}\n\t\t};\n\n\t\tconst getValueComponent = () => {\n\t\t\tconst styleRTL = I18nManager.isRTL && styles.cellValueRTL;\n\t\t\tconst cellValueStyle = this.props.getStylesFromColorScheme(\n\t\t\t\tstyles.cellValue,\n\t\t\t\tstyles.cellTextDark\n\t\t\t);\n\t\t\tconst textInputStyle = {\n\t\t\t\t...cellValueStyle,\n\t\t\t\t...valueStyle,\n\t\t\t\t...styleRTL,\n\t\t\t};\n\t\t\tconst placeholderTextColor = disabled\n\t\t\t\t? this.props.getStylesFromColorScheme(\n\t\t\t\t\t\tstyles.placeholderColorDisabled,\n\t\t\t\t\t\tstyles.placeholderColorDisabledDark\n\t\t\t\t ).color\n\t\t\t\t: styles.placeholderColor.color;\n\t\t\tconst textStyle = {\n\t\t\t\t...( disabled && styles.cellDisabled ),\n\t\t\t\t...cellValueStyle,\n\t\t\t\t...valueStyle,\n\t\t\t};\n\n\t\t\t// To be able to show the `middle` ellipsizeMode on editable cells\n\t\t\t// we show the TextInput just when the user wants to edit the value,\n\t\t\t// and the Text component to display it.\n\t\t\t// We also show the TextInput to display placeholder.\n\t\t\tconst shouldShowPlaceholder = isInteractive && value === '';\n\t\t\treturn this.state.isEditingValue || shouldShowPlaceholder ? (\n\t\t\t\t<TextInput\n\t\t\t\t\tref={ ( c ) => ( this._valueTextInput = c ) }\n\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\tstyle={ textInputStyle }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tplaceholder={ valuePlaceholder }\n\t\t\t\t\tplaceholderTextColor={ placeholderTextColor }\n\t\t\t\t\tonChangeText={ onChangeValue }\n\t\t\t\t\teditable={ isValueEditable && ! disabled }\n\t\t\t\t\tpointerEvents={\n\t\t\t\t\t\tthis.state.isEditingValue ? 'auto' : 'none'\n\t\t\t\t\t}\n\t\t\t\t\tonFocus={ startEditing }\n\t\t\t\t\tonBlur={ finishEditing }\n\t\t\t\t\tonSubmitEditing={ onSubmit }\n\t\t\t\t\tkeyboardType={ this.typeToKeyboardType( type, step ) }\n\t\t\t\t\tdisabled={ disabled }\n\t\t\t\t\t{ ...valueProps }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<Text\n\t\t\t\t\tstyle={ textStyle }\n\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\tellipsizeMode={ 'middle' }\n\t\t\t\t>\n\t\t\t\t\t{ value }\n\t\t\t\t</Text>\n\t\t\t);\n\t\t};\n\n\t\tconst getAccessibilityLabel = () => {\n\t\t\tif ( accessible === false ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( accessibilityLabel || ! showValue ) {\n\t\t\t\treturn accessibilityLabel || label;\n\t\t\t}\n\n\t\t\tif ( ! value ) {\n\t\t\t\treturn ! help\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t/* translators: accessibility text. Empty state of a inline textinput cell. %s: The cell's title */\n\t\t\t\t\t\t\t_x( '%s. Empty', 'inline textinput cell' ),\n\t\t\t\t\t\t\tlabel\n\t\t\t\t\t )\n\t\t\t\t\t: // Separating by ',' is necessary to make a pause on urls (non-capitalized text)\n\t\t\t\t\t sprintf(\n\t\t\t\t\t\t\t/* translators: accessibility text. Empty state of a inline textinput cell. %1: Cell title, %2: cell help. */\n\t\t\t\t\t\t\t_x( '%1$s, %2$s. Empty', 'inline textinput cell' ),\n\t\t\t\t\t\t\tlabel,\n\t\t\t\t\t\t\thelp\n\t\t\t\t\t );\n\t\t\t}\n\t\t\treturn ! help\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: accessibility text. Inline textinput title and value.%1: Cell title, %2: cell value. */\n\t\t\t\t\t\t_x( '%1$s, %2$s', 'inline textinput cell' ),\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\tvalue\n\t\t\t\t ) // Separating by ',' is necessary to make a pause on urls (non-capitalized text)\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: accessibility text. Inline textinput title, value and help text.%1: Cell title, %2: cell value, , %3: cell help. */\n\t\t\t\t\t\t_x( '%1$s, %2$s, %3$s', 'inline textinput cell' ),\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\thelp\n\t\t\t\t );\n\t\t};\n\n\t\tconst iconStyleBase = getStylesFromColorScheme(\n\t\t\tstyles.icon,\n\t\t\tstyles.iconDark\n\t\t);\n\t\tconst resetButtonStyle = getStylesFromColorScheme(\n\t\t\tstyles.resetButton,\n\t\t\tstyles.resetButtonDark\n\t\t);\n\t\tconst cellHelpStyle = [\n\t\t\tstyles.cellHelpLabel,\n\t\t\tisIOS && styles.cellHelpLabelIOS,\n\t\t];\n\t\tconst containerPointerEvents =\n\t\t\tthis.state.isScreenReaderEnabled && accessible ? 'none' : 'auto';\n\t\tconst { title, handler } = customActionButton || {};\n\n\t\tconst opacity =\n\t\t\tactiveOpacity !== undefined\n\t\t\t\t? activeOpacity\n\t\t\t\t: platformStyles.activeOpacity?.opacity;\n\n\t\treturn (\n\t\t\t<TouchableRipple\n\t\t\t\taccessible={\n\t\t\t\t\taccessible !== undefined\n\t\t\t\t\t\t? accessible\n\t\t\t\t\t\t: ! this.state.isEditingValue\n\t\t\t\t}\n\t\t\t\taccessibilityLabel={ getAccessibilityLabel() }\n\t\t\t\taccessibilityRole={ accessibilityRole || 'button' }\n\t\t\t\taccessibilityHint={\n\t\t\t\t\tisValueEditable\n\t\t\t\t\t\t? /* translators: accessibility text */\n\t\t\t\t\t\t __( 'Double tap to edit this value' )\n\t\t\t\t\t\t: accessibilityHint\n\t\t\t\t}\n\t\t\t\tdisabled={ disabled || ! isInteractive }\n\t\t\t\tactiveOpacity={ opacity }\n\t\t\t\tonPress={ onCellPress }\n\t\t\t\tonLongPress={ onLongPress }\n\t\t\t\tstyle={ [ styles.clipToBounds, style ] }\n\t\t\t\tborderless={ borderless }\n\t\t\t>\n\t\t\t\t{ drawTopSeparator && <View style={ separatorStyle() } /> }\n\t\t\t\t<View\n\t\t\t\t\tstyle={ cellContainerStyles }\n\t\t\t\t\tpointerEvents={ containerPointerEvents }\n\t\t\t\t>\n\t\t\t\t\t<View style={ rowContainerStyles }>\n\t\t\t\t\t\t<View style={ styles.cellRowContainer }>\n\t\t\t\t\t\t\t{ icon && (\n\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\t\tstyles.cellRowContainer,\n\t\t\t\t\t\t\t\t\t\tstyles.cellRowIcon,\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\t\t<Icon\n\t\t\t\t\t\t\t\t\t\tlock\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t\t\t\t\tfill={\n\t\t\t\t\t\t\t\t\t\t\ticonStyle.color ||\n\t\t\t\t\t\t\t\t\t\t\ticonStyleBase.color\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tstyle={ iconStyle }\n\t\t\t\t\t\t\t\t\t\tisPressed={ false }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\t\tplatformStyles.labelIconSeparator\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</View>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ subLabel && label && (\n\t\t\t\t\t\t\t\t<View>\n\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\t\t\tdefaultLabelStyle,\n\t\t\t\t\t\t\t\t\t\t\tlabelStyle,\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\t\t{ label }\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t<Text style={ defaultSubLabelStyleText }>\n\t\t\t\t\t\t\t\t\t\t{ subLabel }\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ ! subLabel && label && (\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\tstyle={ [ defaultLabelStyle, labelStyle ] }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</View>\n\t\t\t\t\t\t{ customActionButton && (\n\t\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\t\tonPress={ handler }\n\t\t\t\t\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Text style={ resetButtonStyle }>\n\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</View>\n\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\ticon={ check }\n\t\t\t\t\t\t\tfill={ platformStyles.isSelected.color }\n\t\t\t\t\t\t\ttestID=\"bottom-sheet-cell-selected-icon\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showValue && getValueComponent() }\n\t\t\t\t\t<View\n\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\tdisabled && disabledStyle,\n\t\t\t\t\t\t\tstyles.cellRowContainer,\n\t\t\t\t\t\t] }\n\t\t\t\t\t\tpointerEvents={ disabled ? 'none' : 'auto' }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</View>\n\t\t\t\t\t{ disabled && showLockIcon && (\n\t\t\t\t\t\t<View style={ styles.cellDisabled }>\n\t\t\t\t\t\t\t<LockIcon />\n\t\t\t\t\t\t</View>\n\t\t\t\t\t) }\n\t\t\t\t</View>\n\t\t\t\t{ help && (\n\t\t\t\t\t<Text style={ [ cellHelpStyle, styles.placeholderColor ] }>\n\t\t\t\t\t\t{ help }\n\t\t\t\t\t</Text>\n\t\t\t\t) }\n\t\t\t\t{ ! drawTopSeparator && <View style={ separatorStyle() } /> }\n\t\t\t</TouchableRipple>\n\t\t);\n\t}\n}\n\nexport default withPreferredColorScheme( BottomSheetCell );\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/components/src/number-control/index.tsx"],"names":["classNames","useRef","forwardRef","isRTL","__","plus","plusIcon","reset","resetIcon","useMergeRefs","deprecated","Input","SpinButton","styles","inputControlActionTypes","add","subtract","roundClamp","ensureNumber","isValueEmpty","HStack","Spacer","useCx","noop","UnforwardedNumberControl","__unstableStateReducer","stateReducerProp","className","dragDirection","hideHTMLArrows","spinControls","isDragEnabled","isShiftStepEnabled","label","max","Infinity","min","required","shiftStep","step","type","typeProp","value","valueProp","size","suffix","onChange","props","forwardedRef","alternative","since","version","inputRef","mergedRef","isStepAny","baseStep","baseValue","constrainValue","stepOverride","Math","autoComplete","undefined","classes","cx","spinButtonClasses","smallSpinButtons","spinValue","direction","event","preventDefault","shift","shiftKey","delta","nextValue","numberControlStateReducer","state","action","nextState","payload","currentValue","PRESS_UP","PRESS_DOWN","DRAG","x","y","enableShift","modifier","directionModifier","ceil","abs","sign","distance","PRESS_ENTER","COMMIT","applyEmptyValue","buildSpinButtonClickHandler","String","target","current","baseState","NumberControl"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\nimport type { ForwardedRef, KeyboardEvent, MouseEvent } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, forwardRef } from '@wordpress/element';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport { plus as plusIcon, reset as resetIcon } from '@wordpress/icons';\nimport { useMergeRefs } from '@wordpress/compose';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport { Input, SpinButton, styles } from './styles/number-control-styles';\nimport * as inputControlActionTypes from '../input-control/reducer/actions';\nimport { add, subtract, roundClamp } from '../utils/math';\nimport { ensureNumber, isValueEmpty } from '../utils/values';\nimport type { WordPressComponentProps } from '../ui/context/wordpress-component';\nimport type { NumberControlProps } from './types';\nimport { HStack } from '../h-stack';\nimport { Spacer } from '../spacer';\nimport { useCx } from '../utils';\n\nconst noop = () => {};\n\nfunction UnforwardedNumberControl(\n\t{\n\t\t__unstableStateReducer: stateReducerProp,\n\t\tclassName,\n\t\tdragDirection = 'n',\n\t\thideHTMLArrows = false,\n\t\tspinControls = 'native',\n\t\tisDragEnabled = true,\n\t\tisShiftStepEnabled = true,\n\t\tlabel,\n\t\tmax = Infinity,\n\t\tmin = -Infinity,\n\t\trequired = false,\n\t\tshiftStep = 10,\n\t\tstep = 1,\n\t\ttype: typeProp = 'number',\n\t\tvalue: valueProp,\n\t\tsize = 'default',\n\t\tsuffix,\n\t\tonChange = noop,\n\t\t...props\n\t}: WordPressComponentProps< NumberControlProps, 'input', false >,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tif ( hideHTMLArrows ) {\n\t\tdeprecated( 'wp.components.NumberControl hideHTMLArrows prop ', {\n\t\t\talternative: 'spinControls=\"none\"',\n\t\t\tsince: '6.2',\n\t\t\tversion: '6.3',\n\t\t} );\n\t\tspinControls = 'none';\n\t}\n\n\tconst inputRef = useRef< HTMLInputElement >();\n\tconst mergedRef = useMergeRefs( [ inputRef, forwardedRef ] );\n\n\tconst isStepAny = step === 'any';\n\tconst baseStep = isStepAny ? 1 : ensureNumber( step );\n\tconst baseValue = roundClamp( 0, min, max, baseStep );\n\tconst constrainValue = (\n\t\tvalue: number | string,\n\t\tstepOverride?: number\n\t) => {\n\t\t// When step is \"any\" clamp the value, otherwise round and clamp it.\n\t\treturn isStepAny\n\t\t\t? Math.min( max, Math.max( min, ensureNumber( value ) ) )\n\t\t\t: roundClamp( value, min, max, stepOverride ?? baseStep );\n\t};\n\n\tconst autoComplete = typeProp === 'number' ? 'off' : undefined;\n\tconst classes = classNames( 'components-number-control', className );\n\tconst cx = useCx();\n\tconst spinButtonClasses = cx( size === 'small' && styles.smallSpinButtons );\n\n\tconst spinValue = (\n\t\tvalue: string | number | undefined,\n\t\tdirection: 'up' | 'down',\n\t\tevent: KeyboardEvent | MouseEvent | undefined\n\t) => {\n\t\tevent?.preventDefault();\n\t\tconst shift = event?.shiftKey && isShiftStepEnabled;\n\t\tconst delta = shift ? ensureNumber( shiftStep ) * baseStep : baseStep;\n\t\tlet nextValue = isValueEmpty( value ) ? baseValue : value;\n\t\tif ( direction === 'up' ) {\n\t\t\tnextValue = add( nextValue, delta );\n\t\t} else if ( direction === 'down' ) {\n\t\t\tnextValue = subtract( nextValue, delta );\n\t\t}\n\t\treturn constrainValue( nextValue, shift ? delta : undefined );\n\t};\n\n\t/**\n\t * \"Middleware\" function that intercepts updates from InputControl.\n\t * This allows us to tap into actions to transform the (next) state for\n\t * InputControl.\n\t *\n\t * @return The updated state to apply to InputControl\n\t */\n\tconst numberControlStateReducer: NumberControlProps[ '__unstableStateReducer' ] =\n\t\t( state, action ) => {\n\t\t\tconst nextState = { ...state };\n\n\t\t\tconst { type, payload } = action;\n\t\t\tconst event = payload.event;\n\t\t\tconst currentValue = nextState.value;\n\n\t\t\t/**\n\t\t\t * Handles custom UP and DOWN Keyboard events\n\t\t\t */\n\t\t\tif (\n\t\t\t\ttype === inputControlActionTypes.PRESS_UP ||\n\t\t\t\ttype === inputControlActionTypes.PRESS_DOWN\n\t\t\t) {\n\t\t\t\t// @ts-expect-error TODO: Resolve discrepancy between `value` types in InputControl based components\n\t\t\t\tnextState.value = spinValue(\n\t\t\t\t\tcurrentValue,\n\t\t\t\t\ttype === inputControlActionTypes.PRESS_UP ? 'up' : 'down',\n\t\t\t\t\tevent as KeyboardEvent | undefined\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Handles drag to update events\n\t\t\t */\n\t\t\tif ( type === inputControlActionTypes.DRAG && isDragEnabled ) {\n\t\t\t\tconst [ x, y ] = payload.delta;\n\t\t\t\tconst enableShift = payload.shiftKey && isShiftStepEnabled;\n\t\t\t\tconst modifier = enableShift\n\t\t\t\t\t? ensureNumber( shiftStep ) * baseStep\n\t\t\t\t\t: baseStep;\n\n\t\t\t\tlet directionModifier;\n\t\t\t\tlet delta;\n\n\t\t\t\tswitch ( dragDirection ) {\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tdelta = y;\n\t\t\t\t\t\tdirectionModifier = -1;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'e':\n\t\t\t\t\t\tdelta = x;\n\t\t\t\t\t\tdirectionModifier = isRTL() ? -1 : 1;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 's':\n\t\t\t\t\t\tdelta = y;\n\t\t\t\t\t\tdirectionModifier = 1;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'w':\n\t\t\t\t\t\tdelta = x;\n\t\t\t\t\t\tdirectionModifier = isRTL() ? 1 : -1;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif ( delta !== 0 ) {\n\t\t\t\t\tdelta = Math.ceil( Math.abs( delta ) ) * Math.sign( delta );\n\t\t\t\t\tconst distance = delta * modifier * directionModifier;\n\n\t\t\t\t\t// @ts-expect-error TODO: Resolve discrepancy between `value` types in InputControl based components\n\t\t\t\t\tnextState.value = constrainValue(\n\t\t\t\t\t\t// @ts-expect-error TODO: Investigate if it's ok for currentValue to be undefined\n\t\t\t\t\t\tadd( currentValue, distance ),\n\t\t\t\t\t\tenableShift ? modifier : undefined\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Handles commit (ENTER key press or blur)\n\t\t\t */\n\t\t\tif (\n\t\t\t\ttype === inputControlActionTypes.PRESS_ENTER ||\n\t\t\t\ttype === inputControlActionTypes.COMMIT\n\t\t\t) {\n\t\t\t\tconst applyEmptyValue =\n\t\t\t\t\trequired === false && currentValue === '';\n\n\t\t\t\t// @ts-expect-error TODO: Resolve discrepancy between `value` types in InputControl based components\n\t\t\t\tnextState.value = applyEmptyValue\n\t\t\t\t\t? currentValue\n\t\t\t\t\t: // @ts-expect-error TODO: Investigate if it's ok for currentValue to be undefined\n\t\t\t\t\t constrainValue( currentValue );\n\t\t\t}\n\n\t\t\treturn nextState;\n\t\t};\n\n\tconst buildSpinButtonClickHandler =\n\t\t( direction: 'up' | 'down' ) =>\n\t\t( event: MouseEvent< HTMLButtonElement > ) =>\n\t\t\tonChange( String( spinValue( valueProp, direction, event ) ), {\n\t\t\t\t// Set event.target to the <input> so that consumers can use\n\t\t\t\t// e.g. event.target.validity.\n\t\t\t\tevent: {\n\t\t\t\t\t...event,\n\t\t\t\t\ttarget: inputRef.current!,\n\t\t\t\t},\n\t\t\t} );\n\n\treturn (\n\t\t<Input\n\t\t\tautoComplete={ autoComplete }\n\t\t\tinputMode=\"numeric\"\n\t\t\t{ ...props }\n\t\t\tclassName={ classes }\n\t\t\tdragDirection={ dragDirection }\n\t\t\thideHTMLArrows={ spinControls !== 'native' }\n\t\t\tisDragEnabled={ isDragEnabled }\n\t\t\tlabel={ label }\n\t\t\tmax={ max }\n\t\t\tmin={ min }\n\t\t\tref={ mergedRef }\n\t\t\trequired={ required }\n\t\t\tstep={ step }\n\t\t\ttype={ typeProp }\n\t\t\t// @ts-expect-error TODO: Resolve discrepancy between `value` types in InputControl based components\n\t\t\tvalue={ valueProp }\n\t\t\t__unstableStateReducer={ ( state, action ) => {\n\t\t\t\tconst baseState = numberControlStateReducer( state, action );\n\t\t\t\treturn stateReducerProp?.( baseState, action ) ?? baseState;\n\t\t\t} }\n\t\t\tsize={ size }\n\t\t\tsuffix={\n\t\t\t\tspinControls === 'custom' ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ suffix }\n\t\t\t\t\t\t<Spacer marginBottom={ 0 } marginRight={ 2 }>\n\t\t\t\t\t\t\t<HStack spacing={ 1 }>\n\t\t\t\t\t\t\t\t<SpinButton\n\t\t\t\t\t\t\t\t\tclassName={ spinButtonClasses }\n\t\t\t\t\t\t\t\t\ticon={ plusIcon }\n\t\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\taria-label={ __( 'Increment' ) }\n\t\t\t\t\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\t\t\t\t\tonClick={ buildSpinButtonClickHandler(\n\t\t\t\t\t\t\t\t\t\t'up'\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\t<SpinButton\n\t\t\t\t\t\t\t\t\tclassName={ spinButtonClasses }\n\t\t\t\t\t\t\t\t\ticon={ resetIcon }\n\t\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\taria-label={ __( 'Decrement' ) }\n\t\t\t\t\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\t\t\t\t\tonClick={ buildSpinButtonClickHandler(\n\t\t\t\t\t\t\t\t\t\t'down'\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</HStack>\n\t\t\t\t\t\t</Spacer>\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\tsuffix\n\t\t\t\t)\n\t\t\t}\n\t\t\tonChange={ onChange }\n\t\t/>\n\t);\n}\n\nexport const NumberControl = forwardRef( UnforwardedNumberControl );\n\nexport default NumberControl;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/number-control/index.tsx"],"names":["classNames","useRef","forwardRef","isRTL","__","plus","plusIcon","reset","resetIcon","useMergeRefs","deprecated","Input","SpinButton","styles","inputControlActionTypes","add","subtract","roundClamp","ensureNumber","isValueEmpty","HStack","Spacer","useCx","noop","UnforwardedNumberControl","__unstableStateReducer","stateReducerProp","className","dragDirection","hideHTMLArrows","spinControls","isDragEnabled","isShiftStepEnabled","label","max","Infinity","min","required","shiftStep","step","type","typeProp","value","valueProp","size","suffix","onChange","props","forwardedRef","alternative","since","version","inputRef","mergedRef","isStepAny","baseStep","baseValue","constrainValue","stepOverride","Math","autoComplete","undefined","classes","cx","spinButtonClasses","smallSpinButtons","spinValue","direction","event","preventDefault","shift","shiftKey","delta","nextValue","numberControlStateReducer","state","action","nextState","payload","currentValue","PRESS_UP","PRESS_DOWN","DRAG","x","y","enableShift","modifier","directionModifier","ceil","abs","sign","distance","PRESS_ENTER","COMMIT","applyEmptyValue","buildSpinButtonClickHandler","String","target","current","baseState","NumberControl"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\nimport type { ForwardedRef, KeyboardEvent, MouseEvent } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, forwardRef } from '@wordpress/element';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport { plus as plusIcon, reset as resetIcon } from '@wordpress/icons';\nimport { useMergeRefs } from '@wordpress/compose';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport { Input, SpinButton, styles } from './styles/number-control-styles';\nimport * as inputControlActionTypes from '../input-control/reducer/actions';\nimport { add, subtract, roundClamp } from '../utils/math';\nimport { ensureNumber, isValueEmpty } from '../utils/values';\nimport type { WordPressComponentProps } from '../ui/context/wordpress-component';\nimport type { NumberControlProps } from './types';\nimport { HStack } from '../h-stack';\nimport { Spacer } from '../spacer';\nimport { useCx } from '../utils';\n\nconst noop = () => {};\n\nfunction UnforwardedNumberControl(\n\t{\n\t\t__unstableStateReducer: stateReducerProp,\n\t\tclassName,\n\t\tdragDirection = 'n',\n\t\thideHTMLArrows = false,\n\t\tspinControls = 'native',\n\t\tisDragEnabled = true,\n\t\tisShiftStepEnabled = true,\n\t\tlabel,\n\t\tmax = Infinity,\n\t\tmin = -Infinity,\n\t\trequired = false,\n\t\tshiftStep = 10,\n\t\tstep = 1,\n\t\ttype: typeProp = 'number',\n\t\tvalue: valueProp,\n\t\tsize = 'default',\n\t\tsuffix,\n\t\tonChange = noop,\n\t\t...props\n\t}: WordPressComponentProps< NumberControlProps, 'input', false >,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tif ( hideHTMLArrows ) {\n\t\tdeprecated( 'wp.components.NumberControl hideHTMLArrows prop ', {\n\t\t\talternative: 'spinControls=\"none\"',\n\t\t\tsince: '6.2',\n\t\t\tversion: '6.3',\n\t\t} );\n\t\tspinControls = 'none';\n\t}\n\tconst inputRef = useRef< HTMLInputElement >();\n\tconst mergedRef = useMergeRefs( [ inputRef, forwardedRef ] );\n\n\tconst isStepAny = step === 'any';\n\tconst baseStep = isStepAny ? 1 : ensureNumber( step );\n\tconst baseValue = roundClamp( 0, min, max, baseStep );\n\tconst constrainValue = (\n\t\tvalue: number | string,\n\t\tstepOverride?: number\n\t) => {\n\t\t// When step is \"any\" clamp the value, otherwise round and clamp it.\n\t\treturn isStepAny\n\t\t\t? Math.min( max, Math.max( min, ensureNumber( value ) ) )\n\t\t\t: roundClamp( value, min, max, stepOverride ?? baseStep );\n\t};\n\n\tconst autoComplete = typeProp === 'number' ? 'off' : undefined;\n\tconst classes = classNames( 'components-number-control', className );\n\tconst cx = useCx();\n\tconst spinButtonClasses = cx( size === 'small' && styles.smallSpinButtons );\n\n\tconst spinValue = (\n\t\tvalue: string | number | undefined,\n\t\tdirection: 'up' | 'down',\n\t\tevent: KeyboardEvent | MouseEvent | undefined\n\t) => {\n\t\tevent?.preventDefault();\n\t\tconst shift = event?.shiftKey && isShiftStepEnabled;\n\t\tconst delta = shift ? ensureNumber( shiftStep ) * baseStep : baseStep;\n\t\tlet nextValue = isValueEmpty( value ) ? baseValue : value;\n\t\tif ( direction === 'up' ) {\n\t\t\tnextValue = add( nextValue, delta );\n\t\t} else if ( direction === 'down' ) {\n\t\t\tnextValue = subtract( nextValue, delta );\n\t\t}\n\t\treturn constrainValue( nextValue, shift ? delta : undefined );\n\t};\n\n\t/**\n\t * \"Middleware\" function that intercepts updates from InputControl.\n\t * This allows us to tap into actions to transform the (next) state for\n\t * InputControl.\n\t *\n\t * @return The updated state to apply to InputControl\n\t */\n\tconst numberControlStateReducer: NumberControlProps[ '__unstableStateReducer' ] =\n\t\t( state, action ) => {\n\t\t\tconst nextState = { ...state };\n\n\t\t\tconst { type, payload } = action;\n\t\t\tconst event = payload.event;\n\t\t\tconst currentValue = nextState.value;\n\n\t\t\t/**\n\t\t\t * Handles custom UP and DOWN Keyboard events\n\t\t\t */\n\t\t\tif (\n\t\t\t\ttype === inputControlActionTypes.PRESS_UP ||\n\t\t\t\ttype === inputControlActionTypes.PRESS_DOWN\n\t\t\t) {\n\t\t\t\t// @ts-expect-error TODO: Resolve discrepancy between `value` types in InputControl based components\n\t\t\t\tnextState.value = spinValue(\n\t\t\t\t\tcurrentValue,\n\t\t\t\t\ttype === inputControlActionTypes.PRESS_UP ? 'up' : 'down',\n\t\t\t\t\tevent as KeyboardEvent | undefined\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Handles drag to update events\n\t\t\t */\n\t\t\tif ( type === inputControlActionTypes.DRAG && isDragEnabled ) {\n\t\t\t\tconst [ x, y ] = payload.delta;\n\t\t\t\tconst enableShift = payload.shiftKey && isShiftStepEnabled;\n\t\t\t\tconst modifier = enableShift\n\t\t\t\t\t? ensureNumber( shiftStep ) * baseStep\n\t\t\t\t\t: baseStep;\n\n\t\t\t\tlet directionModifier;\n\t\t\t\tlet delta;\n\n\t\t\t\tswitch ( dragDirection ) {\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tdelta = y;\n\t\t\t\t\t\tdirectionModifier = -1;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'e':\n\t\t\t\t\t\tdelta = x;\n\t\t\t\t\t\tdirectionModifier = isRTL() ? -1 : 1;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 's':\n\t\t\t\t\t\tdelta = y;\n\t\t\t\t\t\tdirectionModifier = 1;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'w':\n\t\t\t\t\t\tdelta = x;\n\t\t\t\t\t\tdirectionModifier = isRTL() ? 1 : -1;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif ( delta !== 0 ) {\n\t\t\t\t\tdelta = Math.ceil( Math.abs( delta ) ) * Math.sign( delta );\n\t\t\t\t\tconst distance = delta * modifier * directionModifier;\n\n\t\t\t\t\t// @ts-expect-error TODO: Resolve discrepancy between `value` types in InputControl based components\n\t\t\t\t\tnextState.value = constrainValue(\n\t\t\t\t\t\t// @ts-expect-error TODO: Investigate if it's ok for currentValue to be undefined\n\t\t\t\t\t\tadd( currentValue, distance ),\n\t\t\t\t\t\tenableShift ? modifier : undefined\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Handles commit (ENTER key press or blur)\n\t\t\t */\n\t\t\tif (\n\t\t\t\ttype === inputControlActionTypes.PRESS_ENTER ||\n\t\t\t\ttype === inputControlActionTypes.COMMIT\n\t\t\t) {\n\t\t\t\tconst applyEmptyValue =\n\t\t\t\t\trequired === false && currentValue === '';\n\n\t\t\t\t// @ts-expect-error TODO: Resolve discrepancy between `value` types in InputControl based components\n\t\t\t\tnextState.value = applyEmptyValue\n\t\t\t\t\t? currentValue\n\t\t\t\t\t: // @ts-expect-error TODO: Investigate if it's ok for currentValue to be undefined\n\t\t\t\t\t constrainValue( currentValue );\n\t\t\t}\n\n\t\t\treturn nextState;\n\t\t};\n\n\tconst buildSpinButtonClickHandler =\n\t\t( direction: 'up' | 'down' ) =>\n\t\t( event: MouseEvent< HTMLButtonElement > ) =>\n\t\t\tonChange( String( spinValue( valueProp, direction, event ) ), {\n\t\t\t\t// Set event.target to the <input> so that consumers can use\n\t\t\t\t// e.g. event.target.validity.\n\t\t\t\tevent: {\n\t\t\t\t\t...event,\n\t\t\t\t\ttarget: inputRef.current!,\n\t\t\t\t},\n\t\t\t} );\n\n\treturn (\n\t\t<Input\n\t\t\tautoComplete={ autoComplete }\n\t\t\tinputMode=\"numeric\"\n\t\t\t{ ...props }\n\t\t\tclassName={ classes }\n\t\t\tdragDirection={ dragDirection }\n\t\t\thideHTMLArrows={ spinControls !== 'native' }\n\t\t\tisDragEnabled={ isDragEnabled }\n\t\t\tlabel={ label }\n\t\t\tmax={ max }\n\t\t\tmin={ min }\n\t\t\tref={ mergedRef }\n\t\t\trequired={ required }\n\t\t\tstep={ step }\n\t\t\ttype={ typeProp }\n\t\t\t// @ts-expect-error TODO: Resolve discrepancy between `value` types in InputControl based components\n\t\t\tvalue={ valueProp }\n\t\t\t__unstableStateReducer={ ( state, action ) => {\n\t\t\t\tconst baseState = numberControlStateReducer( state, action );\n\t\t\t\treturn stateReducerProp?.( baseState, action ) ?? baseState;\n\t\t\t} }\n\t\t\tsize={ size }\n\t\t\tsuffix={\n\t\t\t\tspinControls === 'custom' ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ suffix }\n\t\t\t\t\t\t<Spacer marginBottom={ 0 } marginRight={ 2 }>\n\t\t\t\t\t\t\t<HStack spacing={ 1 }>\n\t\t\t\t\t\t\t\t<SpinButton\n\t\t\t\t\t\t\t\t\tclassName={ spinButtonClasses }\n\t\t\t\t\t\t\t\t\ticon={ plusIcon }\n\t\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\taria-label={ __( 'Increment' ) }\n\t\t\t\t\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\t\t\t\t\tonClick={ buildSpinButtonClickHandler(\n\t\t\t\t\t\t\t\t\t\t'up'\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\t<SpinButton\n\t\t\t\t\t\t\t\t\tclassName={ spinButtonClasses }\n\t\t\t\t\t\t\t\t\ticon={ resetIcon }\n\t\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\taria-label={ __( 'Decrement' ) }\n\t\t\t\t\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\t\t\t\t\tonClick={ buildSpinButtonClickHandler(\n\t\t\t\t\t\t\t\t\t\t'down'\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</HStack>\n\t\t\t\t\t\t</Spacer>\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\tsuffix\n\t\t\t\t)\n\t\t\t}\n\t\t\tonChange={ onChange }\n\t\t/>\n\t);\n}\n\nexport const NumberControl = forwardRef( UnforwardedNumberControl );\n\nexport default NumberControl;\n"]}
|
|
@@ -25,6 +25,7 @@ import InputRange from './input-range';
|
|
|
25
25
|
import RangeRail from './rail';
|
|
26
26
|
import SimpleTooltip from './tooltip';
|
|
27
27
|
import { ActionRightWrapper, AfterIconWrapper, BeforeIconWrapper, InputNumber, Root, Track, ThumbWrapper, Thumb, Wrapper } from './styles/range-control-styles';
|
|
28
|
+
import { space } from '../ui/utils/space';
|
|
28
29
|
|
|
29
30
|
const noop = () => {};
|
|
30
31
|
|
|
@@ -54,6 +55,7 @@ function UnforwardedRangeControl(props, forwardedRef) {
|
|
|
54
55
|
railColor,
|
|
55
56
|
renderTooltipContent = v => v,
|
|
56
57
|
resetFallbackValue,
|
|
58
|
+
__next40pxDefaultSize = false,
|
|
57
59
|
shiftStep = 10,
|
|
58
60
|
showTooltip: showTooltipProp,
|
|
59
61
|
step = 1,
|
|
@@ -185,7 +187,8 @@ function UnforwardedRangeControl(props, forwardedRef) {
|
|
|
185
187
|
id: `${id}`,
|
|
186
188
|
help: help
|
|
187
189
|
}, createElement(Root, {
|
|
188
|
-
className: "components-range-control__root"
|
|
190
|
+
className: "components-range-control__root",
|
|
191
|
+
__next40pxDefaultSize: __next40pxDefaultSize
|
|
189
192
|
}, beforeIcon && createElement(BeforeIconWrapper, null, createElement(Icon, {
|
|
190
193
|
icon: beforeIcon
|
|
191
194
|
})), createElement(Wrapper, {
|
|
@@ -255,6 +258,8 @@ function UnforwardedRangeControl(props, forwardedRef) {
|
|
|
255
258
|
onBlur: handleOnInputNumberBlur,
|
|
256
259
|
onChange: handleOnChange,
|
|
257
260
|
shiftStep: shiftStep,
|
|
261
|
+
size: __next40pxDefaultSize ? '__unstable-large' : 'default',
|
|
262
|
+
__unstableInputWidth: __next40pxDefaultSize ? space(20) : space(16),
|
|
258
263
|
step: step // @ts-expect-error TODO: Investigate if the `null` value is necessary
|
|
259
264
|
,
|
|
260
265
|
value: inputSliderValue
|