UNPKG

@wordpress/components

Version:
8 lines (7 loc) 4.25 kB
{ "version": 3, "sources": ["../../src/range-control/rail.tsx"], "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport RangeMark from './mark';\nimport { MarksWrapper, Rail } from './styles/range-control-styles';\nimport { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { createElement as _createElement } from \"react\";\nexport default function RangeRail(props) {\n const {\n disabled = false,\n marks = false,\n min = 0,\n max = 100,\n step = 1,\n value = 0,\n ...restProps\n } = props;\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(Rail, {\n disabled: disabled,\n ...restProps\n }), marks && /*#__PURE__*/_jsx(Marks, {\n disabled: disabled,\n marks: marks,\n min: min,\n max: max,\n step: step,\n value: value\n })]\n });\n}\nfunction Marks(props) {\n const {\n disabled = false,\n marks = false,\n min = 0,\n max = 100,\n step: stepProp = 1,\n value = 0\n } = props;\n const step = stepProp === 'any' ? 1 : stepProp;\n const marksData = useMarks({\n marks,\n min,\n max,\n step,\n value\n });\n return /*#__PURE__*/_jsx(MarksWrapper, {\n \"aria-hidden\": \"true\",\n className: \"components-range-control__marks\",\n children: marksData.map(mark => /*#__PURE__*/_createElement(RangeMark, {\n ...mark,\n key: mark.key,\n \"aria-hidden\": \"true\",\n disabled: disabled\n }))\n });\n}\nfunction useMarks({\n marks,\n min = 0,\n max = 100,\n step = 1,\n value = 0\n}) {\n if (!marks) {\n return [];\n }\n const range = max - min;\n if (!Array.isArray(marks)) {\n marks = [];\n const count = 1 + Math.round(range / step);\n while (count > marks.push({\n value: step * marks.length + min\n })) {}\n }\n const placedMarks = [];\n marks.forEach((mark, index) => {\n if (mark.value < min || mark.value > max) {\n return;\n }\n const key = `mark-${index}`;\n const isFilled = mark.value <= value;\n const offset = `${(mark.value - min) / range * 100}%`;\n const offsetStyle = {\n [isRTL() ? 'right' : 'left']: offset\n };\n placedMarks.push({\n ...mark,\n isFilled,\n key,\n style: offsetStyle\n });\n });\n return placedMarks;\n}"], "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAsB;AAKtB,kBAAsB;AACtB,kCAAmC;AACnC,yBAAkE;AAClE,mBAAgD;AACjC,SAAR,UAA2B,OAAO;AACvC,QAAM;AAAA,IACJ,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,GAAG;AAAA,EACL,IAAI;AACJ,SAAoB,uCAAAA,MAAM,mBAAAC,UAAW;AAAA,IACnC,UAAU,CAAc,uCAAAC,KAAK,kCAAM;AAAA,MACjC;AAAA,MACA,GAAG;AAAA,IACL,CAAC,GAAG,SAAsB,uCAAAA,KAAK,OAAO;AAAA,MACpC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC,CAAC;AAAA,EACJ,CAAC;AACH;AACA,SAAS,MAAM,OAAO;AACpB,QAAM;AAAA,IACJ,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM,WAAW;AAAA,IACjB,QAAQ;AAAA,EACV,IAAI;AACJ,QAAM,OAAO,aAAa,QAAQ,IAAI;AACtC,QAAM,YAAY,SAAS;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,SAAoB,uCAAAA,KAAK,0CAAc;AAAA,IACrC,eAAe;AAAA,IACf,WAAW;AAAA,IACX,UAAU,UAAU,IAAI,UAAqB,iCAAAC,eAAe,YAAAC,SAAW;AAAA,MACrE,GAAG;AAAA,MACH,KAAK,KAAK;AAAA,MACV,eAAe;AAAA,MACf;AAAA,IACF,CAAC,CAAC;AAAA,EACJ,CAAC;AACH;AACA,SAAS,SAAS;AAAA,EAChB;AAAA,EACA,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AACV,GAAG;AACD,MAAI,CAAC,OAAO;AACV,WAAO,CAAC;AAAA,EACV;AACA,QAAM,QAAQ,MAAM;AACpB,MAAI,CAAC,MAAM,QAAQ,KAAK,GAAG;AACzB,YAAQ,CAAC;AACT,UAAM,QAAQ,IAAI,KAAK,MAAM,QAAQ,IAAI;AACzC,WAAO,QAAQ,MAAM,KAAK;AAAA,MACxB,OAAO,OAAO,MAAM,SAAS;AAAA,IAC/B,CAAC,GAAG;AAAA,IAAC;AAAA,EACP;AACA,QAAM,cAAc,CAAC;AACrB,QAAM,QAAQ,CAAC,MAAM,UAAU;AAC7B,QAAI,KAAK,QAAQ,OAAO,KAAK,QAAQ,KAAK;AACxC;AAAA,IACF;AACA,UAAM,MAAM,QAAQ,KAAK;AACzB,UAAM,WAAW,KAAK,SAAS;AAC/B,UAAM,SAAS,IAAI,KAAK,QAAQ,OAAO,QAAQ,GAAG;AAClD,UAAM,cAAc;AAAA,MAClB,KAAC,mBAAM,IAAI,UAAU,MAAM,GAAG;AAAA,IAChC;AACA,gBAAY,KAAK;AAAA,MACf,GAAG;AAAA,MACH;AAAA,MACA;AAAA,MACA,OAAO;AAAA,IACT,CAAC;AAAA,EACH,CAAC;AACD,SAAO;AACT;", "names": ["_jsxs", "_Fragment", "_jsx", "_createElement", "RangeMark"] }